Merge "Add basic documentation about cec key handling" into rvc-dev
diff --git a/Android.bp b/Android.bp
index 48d9559..6653bd4 100644
--- a/Android.bp
+++ b/Android.bp
@@ -239,6 +239,7 @@
         ":framework-sax-sources",
         ":framework-telecomm-sources",
         ":framework-telephony-common-sources",
+        ":framework-telephony-sources",
         ":framework-wifi-annotations",
         ":framework-wifi-non-updatable-sources",
         ":PacProcessor-aidl-sources",
@@ -285,7 +286,6 @@
         ":framework-permission-sources",
         ":framework-sdkextensions-sources",
         ":framework-statsd-sources",
-        ":framework-telephony-sources",
         ":framework-tethering-srcs",
         ":framework-wifi-updatable-sources",
         ":updatable-media-srcs",
@@ -300,7 +300,6 @@
         "framework-permission-stubs-module_libs_api",
         "framework-sdkextensions-stubs-module_libs_api",
         "framework-statsd-stubs-module_libs_api",
-        "framework-telephony-stubs", // TODO: Update to module_libs_api when there is one.
         "framework-tethering-stubs-module_libs_api",
         "framework-wifi-stubs-module_libs_api",
     ],
@@ -418,7 +417,6 @@
         "app-compat-annotations",
         "ext",
         "unsupportedappusage",
-        "framework-updatable-stubs-module_libs_api",
     ],
 
     jarjar_rules: ":framework-jarjar-rules",
@@ -492,6 +490,7 @@
         "services-platform-compat-config",
         "documents-ui-compat-config",
     ],
+    libs: ["framework-updatable-stubs-module_libs_api"],
     static_libs: [
         // If MimeMap ever becomes its own APEX, then this dependency would need to be removed
         // in favor of an API stubs dependency in java_library "framework" below.
@@ -523,9 +522,8 @@
     defaults: ["framework-aidl-export-defaults"],
     installable: false, // this lib is a build-only library
     static_libs: [
+        "app-compat-annotations",
         "framework-minus-apex",
-        // TODO (b/147688669) should be removed
-        "framework-telephony",
         "framework-updatable-stubs-module_libs_api",
     ],
     sdk_version: "core_platform",
@@ -545,6 +543,7 @@
     visibility: [
         // DO NOT ADD ANY MORE ENTRIES TO THIS LIST
         "//external/robolectric-shadows:__subpackages__",
+        "//frameworks/base",
         "//frameworks/layoutlib:__subpackages__",
     ],
 }
@@ -564,7 +563,6 @@
 
     installable: false,
     plugins: [
-        "unsupportedappusage-annotation-processor",
         "compat-changeid-annotation-processor",
     ],
     static_libs: [
@@ -579,25 +577,6 @@
     src: ":framework-annotation-proc",
 }
 
-// A library including just UnsupportedAppUsage.java classes.
-//
-// Provided for target so that libraries can use it without depending on
-// the whole of framework or the core platform API.
-//
-// Built for host so that the annotation processor can also use this annotation.
-java_library {
-    name: "unsupportedappusage-annotation",
-    host_supported: true,
-    srcs: [
-        "core/java/android/annotation/IntDef.java",
-    ],
-    static_libs: [
-        "art.module.api.annotations",
-    ],
-
-    sdk_version: "core_current",
-}
-
 // A temporary build target that is conditionally included on the bootclasspath if
 // android.test.base library has been removed and which provides support for
 // maintaining backwards compatibility for APKs that target pre-P and depend on
@@ -724,6 +703,7 @@
     srcs: [
         "core/java/android/annotation/StringDef.java",
         "core/java/android/net/annotations/PolicyDirection.java",
+        "core/java/com/android/internal/util/HexDump.java",
         "core/java/com/android/internal/util/IState.java",
         "core/java/com/android/internal/util/State.java",
         "core/java/com/android/internal/util/StateMachine.java",
@@ -972,7 +952,6 @@
         "core/java/android/content/pm/InstallationFileLocation.aidl",
         "core/java/android/content/pm/IDataLoaderStatusListener.aidl",
         "core/java/android/content/pm/IPackageInstallerSessionFileSystemConnector.aidl",
-        "core/java/android/content/pm/NamedParcelFileDescriptor.aidl",
     ],
     path: "core/java",
 }
@@ -1135,16 +1114,6 @@
     output: "framework-aidl-mappings.txt",
 }
 
-genrule {
-    name: "framework-annotation-proc-index",
-    srcs: [":framework-annotation-proc"],
-    cmd: "unzip -qp $(in) unsupportedappusage/unsupportedappusage_index.csv > $(out)",
-    out: ["unsupportedappusage_index.csv"],
-    dist: {
-        targets: ["droidcore"],
-    },
-}
-
 // Avoid including Parcelable classes as we don't want to have two copies of
 // Parcelable cross the libraries. This is used by telephony-common (frameworks/opt/telephony)
 // and TeleService app (packages/services/Telephony).
@@ -1323,41 +1292,6 @@
     libs: ["android_system_stubs_current"],
 }
 
-java_library {
-    name: "framework-telephony",
-    srcs: [
-        ":framework-telephony-sources",
-        ":framework-telephony-shared-srcs",
-    ],
-    // TODO: change to framework-system-stub to build against system APIs.
-    libs: [
-        "framework-minus-apex",
-        "unsupportedappusage",
-    ],
-    static_libs: [
-        "libphonenumber-platform",
-        "app-compat-annotations",
-    ],
-    sdk_version: "core_platform",
-    aidl: {
-        export_include_dirs: ["telephony/java"],
-        include_dirs: [
-            "frameworks/native/aidl/binder",
-            "frameworks/native/aidl/gui",
-        ]
-    },
-    jarjar_rules: ":framework-telephony-jarjar-rules",
-    dxflags: [
-        "--core-library",
-        "--multi-dex",
-    ],
-    // This is to break the dependency from boot jars.
-    dex_preopt: {
-        enabled: false,
-    },
-    installable: true,
-}
-
 filegroup {
     // TODO (b/147690217): move to frameworks/base/telephony/common.
     name: "framework-telephony-annotations",
diff --git a/Android.mk b/Android.mk
index 815a169..3b30714 100644
--- a/Android.mk
+++ b/Android.mk
@@ -39,9 +39,6 @@
 $(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_API_FILE))
 $(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_SYSTEM_API_FILE))
 $(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_TEST_API_FILE))
-$(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_API_FILE):apistubs/android/public/api/android.txt)
-$(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_SYSTEM_API_FILE):apistubs/android/system/api/android.txt)
-$(call dist-for-goals,sdk,$(INTERNAL_PLATFORM_TEST_API_FILE):apistubs/android/test/api/android.txt)
 
 # sdk.atree needs to copy the whole dir: $(OUT_DOCS)/offline-sdk to the final zip.
 # So keep offline-sdk-timestamp target here, and unzip offline-sdk-docs.zip to
@@ -75,12 +72,6 @@
 # Run this for checkbuild
 checkbuild: doc-comment-check-docs
 
-# ==== hiddenapi lists =======================================
-ifneq ($(UNSAFE_DISABLE_HIDDENAPI_FLAGS),true)
-$(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_FLAGS))
-$(call dist-for-goals,droidcore,$(INTERNAL_PLATFORM_HIDDENAPI_GREYLIST_METADATA))
-endif  # UNSAFE_DISABLE_HIDDENAPI_FLAGS
-
 # Include subdirectory makefiles
 # ============================================================
 
diff --git a/StubLibraries.bp b/StubLibraries.bp
index da9f165..ccd87335 100644
--- a/StubLibraries.bp
+++ b/StubLibraries.bp
@@ -61,11 +61,7 @@
     merge_annotations_dirs: [
         "metalava-manual",
     ],
-    api_levels_annotations_enabled: true,
-    api_levels_annotations_dirs: [
-        "sdk-dir",
-        "api-versions-jars-dir",
-    ],
+    api_levels_annotations_enabled: false,
     filter_packages: packages_to_document,
 }
 
@@ -79,7 +75,11 @@
 stubs_defaults {
     name: "metalava-non-updatable-api-stubs-default",
     defaults: ["metalava-base-api-stubs-default"],
-    sdk_version: "system_current",
+    sdk_version: "core_platform",
+    libs: ["framework-all"],
+    aidl: {
+        local_include_dirs: ["apex/media/framework/java"],
+    },
 }
 
 /////////////////////////////////////////////////////////////////////
@@ -115,6 +115,11 @@
             baseline_file: "api/lint-baseline.txt",
         },
     },
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/public/api",
+        dest: "android.txt",
+    },
     jdiff_enabled: true,
 }
 
@@ -156,6 +161,11 @@
             baseline_file: "api/system-lint-baseline.txt",
         },
     },
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/system/api",
+        dest: "android.txt",
+    },
     jdiff_enabled: true,
 }
 
@@ -179,6 +189,11 @@
             baseline_file: "api/test-lint-baseline.txt",
         },
     },
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/test/api",
+        dest: "android.txt",
+    },
 }
 
 /////////////////////////////////////////////////////////////////////
@@ -195,6 +210,7 @@
 droidstubs {
     name: "module-lib-api",
     defaults: ["metalava-full-api-stubs-default"],
+    api_tag_name: "MODULE_LIB",
     arg_files: ["core/res/AndroidManifest.xml"],
     args: metalava_framework_docs_args + module_libs,
     check_api: {
@@ -213,6 +229,11 @@
             baseline_file: "api/module-lib-lint-baseline.txt",
         },
     },
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/module-lib/api",
+        dest: "android.txt",
+    },
 }
 
 
diff --git a/apex/Android.bp b/apex/Android.bp
index 1943940..d0889ef 100644
--- a/apex/Android.bp
+++ b/apex/Android.bp
@@ -26,8 +26,10 @@
     "--hide Typo " +
     "--hide UnavailableSymbol "
 
-// TODO: remove this server classes are cleaned up.
-mainline_stubs_args += "--hide-package com.android.server "
+// TODO: remove the hiding when server classes are cleaned up.
+mainline_framework_stubs_args =
+    mainline_stubs_args +
+    "--hide-package com.android.server "
 
 priv_apps = " " +
     "--show-annotation android.annotation.SystemApi\\(" +
@@ -39,9 +41,17 @@
         "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" +
     "\\) "
 
+mainline_service_stubs_args =
+    mainline_stubs_args +
+    "--show-annotation android.annotation.SystemApi\\(" +
+        "client=android.annotation.SystemApi.Client.SYSTEM_SERVER" +
+    "\\) " +
+    "--hide-annotation android.annotation.Hide " +
+    "--hide InternalClasses " // com.android.* classes are okay in this interface
+
 stubs_defaults {
     name: "framework-module-stubs-defaults-publicapi",
-    args: mainline_stubs_args,
+    args: mainline_framework_stubs_args,
     installable: false,
     sdk_version: "current",
     check_api: {
@@ -50,11 +60,15 @@
             removed_api_file: "api/removed.txt",
         },
     },
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/public/api",
+    },
 }
 
 stubs_defaults {
     name: "framework-module-stubs-defaults-systemapi",
-    args: mainline_stubs_args + priv_apps,
+    args: mainline_framework_stubs_args + priv_apps,
     libs: ["framework-annotations-lib"],
     installable: false,
     sdk_version: "system_current",
@@ -64,6 +78,40 @@
             removed_api_file: "api/system-removed.txt",
         },
     },
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/system/api",
+    },
+}
+
+java_defaults {
+    name: "framework-module-stubs-lib-defaults-publicapi",
+    installable: false,
+    sdk_version: "module_current",
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/public",
+    },
+}
+
+java_defaults {
+    name: "framework-module-stubs-lib-defaults-systemapi",
+    installable: false,
+    sdk_version: "module_current",
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/system",
+    },
+}
+
+java_defaults {
+    name: "framework-module-stubs-lib-defaults-module_libs_api",
+    installable: false,
+    sdk_version: "module_current",
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/module-lib",
+    },
 }
 
 // The defaults for module_libs comes in two parts - defaults for API checks
@@ -73,7 +121,7 @@
 
 stubs_defaults {
     name: "framework-module-api-defaults-module_libs_api",
-    args: mainline_stubs_args + module_libs,
+    args: mainline_framework_stubs_args + module_libs,
     libs: ["framework-annotations-lib"],
     installable: false,
     sdk_version: "module_current",
@@ -83,12 +131,43 @@
             removed_api_file: "api/module-lib-removed.txt",
         },
     },
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/module-lib/api",
+    },
 }
 
 stubs_defaults {
     name: "framework-module-stubs-defaults-module_libs_api",
-    args: mainline_stubs_args + module_libs + priv_apps,
+    args: mainline_framework_stubs_args + module_libs + priv_apps,
     libs: ["framework-annotations-lib"],
     installable: false,
     sdk_version: "module_current",
 }
+
+stubs_defaults {
+    name: "service-module-stubs-srcs-defaults",
+    args: mainline_service_stubs_args,
+    installable: false,
+    filter_packages: ["com.android."],
+    check_api: {
+        current: {
+            api_file: "api/current.txt",
+            removed_api_file: "api/removed.txt",
+        },
+    },
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/system-server/api",
+    },
+}
+
+// Empty for now, but a convenient place to add rules for all
+// module java_library system_server stub libs.
+java_defaults {
+    name: "service-module-stubs-defaults",
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/system-server",
+    },
+}
diff --git a/apex/blobstore/framework/java/android/app/blob/BlobStoreManager.java b/apex/blobstore/framework/java/android/app/blob/BlobStoreManager.java
index c339351..3f254c0 100644
--- a/apex/blobstore/framework/java/android/app/blob/BlobStoreManager.java
+++ b/apex/blobstore/framework/java/android/app/blob/BlobStoreManager.java
@@ -25,6 +25,7 @@
 import android.annotation.SystemService;
 import android.annotation.TestApi;
 import android.content.Context;
+import android.os.LimitExceededException;
 import android.os.ParcelFileDescriptor;
 import android.os.ParcelableException;
 import android.os.RemoteCallback;
@@ -167,6 +168,12 @@
      * finalized (either committed or abandoned) within a reasonable period of
      * time, typically about a week.
      *
+     * <p> If an app is planning to acquire a lease on this data (using
+     * {@link #acquireLease(BlobHandle, int)} or one of it's other variants) after committing
+     * this data (using {@link Session#commit(Executor, Consumer)}), it is recommended that
+     * the app checks the remaining quota for acquiring a lease first using
+     * {@link #getRemainingLeaseQuotaBytes()} and can skip contributing this data if needed.
+     *
      * @param blobHandle the {@link BlobHandle} identifier for which a new session
      *                   needs to be created.
      * @return positive, non-zero unique id that represents the created session.
@@ -294,8 +301,11 @@
      * @throws IllegalArgumentException when {@code blobHandle} is invalid or
      *                                  if the {@code leaseExpiryTimeMillis} is greater than the
      *                                  {@link BlobHandle#getExpiryTimeMillis()}.
-     * @throws IllegalStateException when a lease could not be acquired, such as when the
-     *                               caller is trying to acquire too many leases.
+     * @throws LimitExceededException when a lease could not be acquired, such as when the
+     *                                caller is trying to acquire leases on too much data. Apps
+     *                                can avoid this by checking the remaining quota using
+     *                                {@link #getRemainingLeaseQuotaBytes()} before trying to
+     *                                acquire a lease.
      *
      * @see {@link #acquireLease(BlobHandle, int)}
      * @see {@link #acquireLease(BlobHandle, CharSequence)}
@@ -307,6 +317,7 @@
                     mContext.getOpPackageName());
         } catch (ParcelableException e) {
             e.maybeRethrow(IOException.class);
+            e.maybeRethrow(LimitExceededException.class);
             throw new RuntimeException(e);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
@@ -350,8 +361,11 @@
      * @throws IllegalArgumentException when {@code blobHandle} is invalid or
      *                                  if the {@code leaseExpiryTimeMillis} is greater than the
      *                                  {@link BlobHandle#getExpiryTimeMillis()}.
-     * @throws IllegalStateException when a lease could not be acquired, such as when the
-     *                               caller is trying to acquire too many leases.
+     * @throws LimitExceededException when a lease could not be acquired, such as when the
+     *                                caller is trying to acquire leases on too much data. Apps
+     *                                can avoid this by checking the remaining quota using
+     *                                {@link #getRemainingLeaseQuotaBytes()} before trying to
+     *                                acquire a lease.
      *
      * @see {@link #acquireLease(BlobHandle, int, long)}
      * @see {@link #acquireLease(BlobHandle, CharSequence)}
@@ -363,6 +377,7 @@
                     mContext.getOpPackageName());
         } catch (ParcelableException e) {
             e.maybeRethrow(IOException.class);
+            e.maybeRethrow(LimitExceededException.class);
             throw new RuntimeException(e);
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
@@ -399,8 +414,11 @@
      * @throws SecurityException when the blob represented by the {@code blobHandle} does not
      *                           exist or the caller does not have access to it.
      * @throws IllegalArgumentException when {@code blobHandle} is invalid.
-     * @throws IllegalStateException when a lease could not be acquired, such as when the
-     *                               caller is trying to acquire too many leases.
+     * @throws LimitExceededException when a lease could not be acquired, such as when the
+     *                                caller is trying to acquire leases on too much data. Apps
+     *                                can avoid this by checking the remaining quota using
+     *                                {@link #getRemainingLeaseQuotaBytes()} before trying to
+     *                                acquire a lease.
      *
      * @see {@link #acquireLease(BlobHandle, int, long)}
      * @see {@link #acquireLease(BlobHandle, CharSequence, long)}
@@ -443,8 +461,11 @@
      * @throws SecurityException when the blob represented by the {@code blobHandle} does not
      *                           exist or the caller does not have access to it.
      * @throws IllegalArgumentException when {@code blobHandle} is invalid.
-     * @throws IllegalStateException when a lease could not be acquired, such as when the
-     *                               caller is trying to acquire too many leases.
+     * @throws LimitExceededException when a lease could not be acquired, such as when the
+     *                                caller is trying to acquire leases on too much data. Apps
+     *                                can avoid this by checking the remaining quota using
+     *                                {@link #getRemainingLeaseQuotaBytes()} before trying to
+     *                                acquire a lease.
      *
      * @see {@link #acquireLease(BlobHandle, int)}
      * @see {@link #acquireLease(BlobHandle, CharSequence, long)}
@@ -478,6 +499,24 @@
     }
 
     /**
+     * Return the remaining quota size for acquiring a lease (in bytes) which indicates the
+     * remaining amount of data that an app can acquire a lease on before the System starts
+     * rejecting lease requests.
+     *
+     * If an app wants to acquire a lease on a blob but the remaining quota size is not sufficient,
+     * then it can try releasing leases on any older blobs which are not needed anymore.
+     *
+     * @return the remaining quota size for acquiring a lease.
+     */
+    public @IntRange(from = 0) long getRemainingLeaseQuotaBytes() {
+        try {
+            return mService.getRemainingLeaseQuotaBytes(mContext.getOpPackageName());
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
      * Wait until any pending tasks (like persisting data to disk) have finished.
      *
      * @hide
@@ -524,12 +563,10 @@
 
     /**
      * Return the {@link BlobHandle BlobHandles} corresponding to the data blobs that
-     * the calling app has acquired a lease on using {@link #acquireLease(BlobHandle, int)} or
-     * one of it's other variants.
+     * the calling app currently has a lease on.
      *
-     * @hide
+     * @return a list of {@link BlobHandle BlobHandles} that the caller has a lease on.
      */
-    @TestApi
     @NonNull
     public List<BlobHandle> getLeasedBlobs() throws IOException {
         try {
diff --git a/apex/blobstore/framework/java/android/app/blob/IBlobStoreManager.aidl b/apex/blobstore/framework/java/android/app/blob/IBlobStoreManager.aidl
index 20c15ab..39a9fb4 100644
--- a/apex/blobstore/framework/java/android/app/blob/IBlobStoreManager.aidl
+++ b/apex/blobstore/framework/java/android/app/blob/IBlobStoreManager.aidl
@@ -31,6 +31,7 @@
     void acquireLease(in BlobHandle handle, int descriptionResId, in CharSequence description,
             long leaseTimeoutMillis, in String packageName);
     void releaseLease(in BlobHandle handle, in String packageName);
+    long getRemainingLeaseQuotaBytes(String packageName);
 
     void waitForIdle(in RemoteCallback callback);
 
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java b/apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java
index 8b640ca..c8ca44b 100644
--- a/apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java
@@ -32,6 +32,7 @@
 import static com.android.server.blob.BlobStoreConfig.TAG;
 import static com.android.server.blob.BlobStoreConfig.XML_VERSION_ADD_DESC_RES_NAME;
 import static com.android.server.blob.BlobStoreConfig.XML_VERSION_ADD_STRING_DESC;
+import static com.android.server.blob.BlobStoreConfig.hasLeaseWaitTimeElapsed;
 import static com.android.server.blob.BlobStoreUtils.getDescriptionResourceId;
 import static com.android.server.blob.BlobStoreUtils.getPackageResources;
 
@@ -115,7 +116,7 @@
         return mUserId;
     }
 
-    void addCommitter(@NonNull Committer committer) {
+    void addOrReplaceCommitter(@NonNull Committer committer) {
         synchronized (mMetadataLock) {
             // We need to override the committer data, so first remove any existing
             // committer before adding the new one.
@@ -138,6 +139,12 @@
         }
     }
 
+    void removeCommitter(@NonNull Committer committer) {
+        synchronized (mMetadataLock) {
+            mCommitters.remove(committer);
+        }
+    }
+
     void removeInvalidCommitters(SparseArray<String> packages) {
         synchronized (mMetadataLock) {
             mCommitters.removeIf(committer ->
@@ -153,7 +160,7 @@
         }
     }
 
-    void addLeasee(String callingPackage, int callingUid, int descriptionResId,
+    void addOrReplaceLeasee(String callingPackage, int callingUid, int descriptionResId,
             CharSequence description, long leaseExpiryTimeMillis) {
         synchronized (mMetadataLock) {
             // We need to override the leasee data, so first remove any existing
@@ -227,6 +234,35 @@
         return false;
     }
 
+    boolean isACommitter(@NonNull String packageName, int uid) {
+        synchronized (mMetadataLock) {
+            return isAnAccessor(mCommitters, packageName, uid);
+        }
+    }
+
+    boolean isALeasee(@Nullable String packageName, int uid) {
+        synchronized (mMetadataLock) {
+            return isAnAccessor(mLeasees, packageName, uid);
+        }
+    }
+
+    private static <T extends Accessor> boolean isAnAccessor(@NonNull ArraySet<T> accessors,
+            @Nullable String packageName, int uid) {
+        // Check if the package is an accessor of the data blob.
+        for (int i = 0, size = accessors.size(); i < size; ++i) {
+            final Accessor accessor = accessors.valueAt(i);
+            if (packageName != null && uid != INVALID_UID
+                    && accessor.equals(packageName, uid)) {
+                return true;
+            } else if (packageName != null && accessor.packageName.equals(packageName)) {
+                return true;
+            } else if (uid != INVALID_UID && accessor.uid == uid) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     boolean isALeasee(@NonNull String packageName) {
         return isALeasee(packageName, INVALID_UID);
     }
@@ -243,24 +279,6 @@
         return hasOtherLeasees(null, uid);
     }
 
-    boolean isALeasee(@Nullable String packageName, int uid) {
-        synchronized (mMetadataLock) {
-            // Check if the package is a leasee of the data blob.
-            for (int i = 0, size = mLeasees.size(); i < size; ++i) {
-                final Leasee leasee = mLeasees.valueAt(i);
-                if (packageName != null && uid != INVALID_UID
-                        && leasee.equals(packageName, uid)) {
-                    return true;
-                } else if (packageName != null && leasee.packageName.equals(packageName)) {
-                    return true;
-                } else if (uid != INVALID_UID && leasee.uid == uid) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
     private boolean hasOtherLeasees(@Nullable String packageName, int uid) {
         synchronized (mMetadataLock) {
             if (mCommitters.size() > 1 || mLeasees.size() > 1) {
@@ -346,12 +364,31 @@
                         mRevocableFds.get(callingPackage);
                 if (revocableFdsForPkg != null) {
                     revocableFdsForPkg.remove(revocableFd);
+                    if (revocableFdsForPkg.isEmpty()) {
+                        mRevocableFds.remove(callingPackage);
+                    }
                 }
             }
         });
         return revocableFd.getRevocableFileDescriptor();
     }
 
+    boolean shouldBeDeleted(boolean respectLeaseWaitTime) {
+        // Expired data blobs
+        if (getBlobHandle().isExpired()) {
+            return true;
+        }
+
+        // Blobs with no active leases
+        // TODO: Track commit time instead of using last modified time.
+        if ((!respectLeaseWaitTime || hasLeaseWaitTimeElapsed(getBlobFile().lastModified()))
+                && !hasLeases()) {
+            return true;
+        }
+
+        return false;
+    }
+
     void dump(IndentingPrintWriter fout, DumpArgs dumpArgs) {
         fout.println("blobHandle:");
         fout.increaseIndent();
@@ -360,27 +397,47 @@
 
         fout.println("Committers:");
         fout.increaseIndent();
-        for (int i = 0, count = mCommitters.size(); i < count; ++i) {
-            final Committer committer = mCommitters.valueAt(i);
-            fout.println("committer " + committer.toString());
-            fout.increaseIndent();
-            committer.dump(fout);
-            fout.decreaseIndent();
+        if (mCommitters.isEmpty()) {
+            fout.println("<empty>");
+        } else {
+            for (int i = 0, count = mCommitters.size(); i < count; ++i) {
+                final Committer committer = mCommitters.valueAt(i);
+                fout.println("committer " + committer.toString());
+                fout.increaseIndent();
+                committer.dump(fout);
+                fout.decreaseIndent();
+            }
         }
         fout.decreaseIndent();
 
         fout.println("Leasees:");
         fout.increaseIndent();
-        for (int i = 0, count = mLeasees.size(); i < count; ++i) {
-            final Leasee leasee = mLeasees.valueAt(i);
-            fout.println("leasee " + leasee.toString());
-            fout.increaseIndent();
-            leasee.dump(mContext, fout);
-            fout.decreaseIndent();
+        if (mLeasees.isEmpty()) {
+            fout.println("<empty>");
+        } else {
+            for (int i = 0, count = mLeasees.size(); i < count; ++i) {
+                final Leasee leasee = mLeasees.valueAt(i);
+                fout.println("leasee " + leasee.toString());
+                fout.increaseIndent();
+                leasee.dump(mContext, fout);
+                fout.decreaseIndent();
+            }
         }
         fout.decreaseIndent();
 
-        fout.println("Open fds: #" + mRevocableFds.size());
+        fout.println("Open fds:");
+        fout.increaseIndent();
+        if (mRevocableFds.isEmpty()) {
+            fout.println("<empty>");
+        } else {
+            for (int i = 0, count = mRevocableFds.size(); i < count; ++i) {
+                final String packageName = mRevocableFds.keyAt(i);
+                final ArraySet<RevocableFileDescriptor> packageFds =
+                        mRevocableFds.valueAt(i);
+                fout.println(packageName + "#" + packageFds.size());
+            }
+        }
+        fout.decreaseIndent();
     }
 
     void writeToXml(XmlSerializer out) throws IOException {
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreConfig.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreConfig.java
index 5e8ea7a..f2c1586 100644
--- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreConfig.java
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreConfig.java
@@ -29,6 +29,7 @@
 import android.util.DataUnit;
 import android.util.Log;
 import android.util.Slog;
+import android.util.TimeUtils;
 
 import com.android.internal.util.IndentingPrintWriter;
 
@@ -88,6 +89,17 @@
         public static float TOTAL_BYTES_PER_APP_LIMIT_FRACTION =
                 DEFAULT_TOTAL_BYTES_PER_APP_LIMIT_FRACTION;
 
+        /**
+         * Denotes the duration from the time a blob is committed that we wait for a lease to
+         * be acquired before deciding to delete the blob for having no leases.
+         */
+        public static final String KEY_LEASE_ACQUISITION_WAIT_DURATION_MS =
+                "lease_acquisition_wait_time_ms";
+        public static final long DEFAULT_LEASE_ACQUISITION_WAIT_DURATION_MS =
+                TimeUnit.HOURS.toMillis(6);
+        public static long LEASE_ACQUISITION_WAIT_DURATION_MS =
+                DEFAULT_LEASE_ACQUISITION_WAIT_DURATION_MS;
+
         static void refresh(Properties properties) {
             if (!NAMESPACE_BLOBSTORE.equals(properties.getNamespace())) {
                 return;
@@ -102,6 +114,10 @@
                         TOTAL_BYTES_PER_APP_LIMIT_FRACTION = properties.getFloat(key,
                                 DEFAULT_TOTAL_BYTES_PER_APP_LIMIT_FRACTION);
                         break;
+                    case KEY_LEASE_ACQUISITION_WAIT_DURATION_MS:
+                        LEASE_ACQUISITION_WAIT_DURATION_MS = properties.getLong(key,
+                                DEFAULT_LEASE_ACQUISITION_WAIT_DURATION_MS);
+                        break;
                     default:
                         Slog.wtf(TAG, "Unknown key in device config properties: " + key);
                 }
@@ -117,6 +133,9 @@
             fout.println(String.format(dumpFormat, KEY_TOTAL_BYTES_PER_APP_LIMIT_FRACTION,
                     TOTAL_BYTES_PER_APP_LIMIT_FRACTION,
                     DEFAULT_TOTAL_BYTES_PER_APP_LIMIT_FRACTION));
+            fout.println(String.format(dumpFormat, KEY_LEASE_ACQUISITION_WAIT_DURATION_MS,
+                    TimeUtils.formatDuration(LEASE_ACQUISITION_WAIT_DURATION_MS),
+                    TimeUtils.formatDuration(DEFAULT_LEASE_ACQUISITION_WAIT_DURATION_MS)));
         }
     }
 
@@ -136,6 +155,14 @@
         return Math.max(DeviceConfigProperties.TOTAL_BYTES_PER_APP_LIMIT_FLOOR, totalBytesLimit);
     }
 
+    /**
+     * Returns whether the wait time for lease acquisition for a blob has elapsed.
+     */
+    public static boolean hasLeaseWaitTimeElapsed(long commitTimeMs) {
+        return commitTimeMs + DeviceConfigProperties.LEASE_ACQUISITION_WAIT_DURATION_MS
+                < System.currentTimeMillis();
+    }
+
     @Nullable
     public static File prepareBlobFile(long sessionId) {
         final File blobsDir = prepareBlobsDir();
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
index f4b8f0f..e472d05 100644
--- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
@@ -62,7 +62,9 @@
 import android.os.Binder;
 import android.os.Handler;
 import android.os.HandlerThread;
+import android.os.LimitExceededException;
 import android.os.ParcelFileDescriptor;
+import android.os.ParcelableException;
 import android.os.Process;
 import android.os.RemoteCallback;
 import android.os.SystemClock;
@@ -394,12 +396,12 @@
                 throw new IllegalArgumentException(
                         "Lease expiry cannot be later than blobs expiry time");
             }
-            if (getTotalUsageBytesLocked(callingUid, callingPackage)
-                    + blobMetadata.getSize() > BlobStoreConfig.getAppDataBytesLimit()) {
-                throw new IllegalStateException("Total amount of data with an active lease"
+            if (blobMetadata.getSize()
+                    > getRemainingLeaseQuotaBytesInternal(callingUid, callingPackage)) {
+                throw new LimitExceededException("Total amount of data with an active lease"
                         + " is exceeding the max limit");
             }
-            blobMetadata.addLeasee(callingPackage, callingUid,
+            blobMetadata.addOrReplaceLeasee(callingPackage, callingUid,
                     descriptionResId, description, leaseExpiryTimeMillis);
             if (LOGV) {
                 Slog.v(TAG, "Acquired lease on " + blobHandle
@@ -424,8 +426,9 @@
     private void releaseLeaseInternal(BlobHandle blobHandle, int callingUid,
             String callingPackage) {
         synchronized (mBlobsLock) {
-            final BlobMetadata blobMetadata = getUserBlobsLocked(UserHandle.getUserId(callingUid))
-                    .get(blobHandle);
+            final ArrayMap<BlobHandle, BlobMetadata> userBlobs =
+                    getUserBlobsLocked(UserHandle.getUserId(callingUid));
+            final BlobMetadata blobMetadata = userBlobs.get(blobHandle);
             if (blobMetadata == null || !blobMetadata.isAccessAllowedForCaller(
                     callingPackage, callingUid)) {
                 throw new SecurityException("Caller not allowed to access " + blobHandle
@@ -436,10 +439,22 @@
                 Slog.v(TAG, "Released lease on " + blobHandle
                         + "; callingUid=" + callingUid + ", callingPackage=" + callingPackage);
             }
+            if (blobMetadata.shouldBeDeleted(true /* respectLeaseWaitTime */)) {
+                deleteBlobLocked(blobMetadata);
+                userBlobs.remove(blobHandle);
+            }
             writeBlobsInfoAsync();
         }
     }
 
+    private long getRemainingLeaseQuotaBytesInternal(int callingUid, String callingPackage) {
+        synchronized (mBlobsLock) {
+            final long remainingQuota = BlobStoreConfig.getAppDataBytesLimit()
+                    - getTotalUsageBytesLocked(callingUid, callingPackage);
+            return remainingQuota > 0 ? remainingQuota : 0;
+        }
+    }
+
     private List<BlobInfo> queryBlobsForUserInternal(int userId) {
         final ArrayList<BlobInfo> blobInfos = new ArrayList<>();
         synchronized (mBlobsLock) {
@@ -558,12 +573,16 @@
                     final Committer newCommitter = new Committer(session.getOwnerPackageName(),
                             session.getOwnerUid(), session.getBlobAccessMode());
                     final Committer existingCommitter = blob.getExistingCommitter(newCommitter);
-                    blob.addCommitter(newCommitter);
+                    blob.addOrReplaceCommitter(newCommitter);
                     try {
                         writeBlobsInfoLocked();
                         session.sendCommitCallbackResult(COMMIT_RESULT_SUCCESS);
                     } catch (Exception e) {
-                        blob.addCommitter(existingCommitter);
+                        if (existingCommitter == null) {
+                            blob.removeCommitter(newCommitter);
+                        } else {
+                            blob.addOrReplaceCommitter(existingCommitter);
+                        }
                         session.sendCommitCallbackResult(COMMIT_RESULT_ERROR);
                     }
                     getUserSessionsLocked(UserHandle.getUserId(session.getOwnerUid()))
@@ -863,12 +882,15 @@
                     getUserBlobsLocked(UserHandle.getUserId(uid));
             userBlobs.entrySet().removeIf(entry -> {
                 final BlobMetadata blobMetadata = entry.getValue();
-                blobMetadata.removeCommitter(packageName, uid);
+                final boolean isACommitter = blobMetadata.isACommitter(packageName, uid);
+                if (isACommitter) {
+                    blobMetadata.removeCommitter(packageName, uid);
+                }
                 blobMetadata.removeLeasee(packageName, uid);
-                // Delete the blob if it doesn't have any active leases.
-                if (!blobMetadata.hasLeases()) {
-                    blobMetadata.getBlobFile().delete();
-                    mActiveBlobIds.remove(blobMetadata.getBlobId());
+                // Regardless of when the blob is committed, we need to delete
+                // it if it was from the deleted package to ensure we delete all traces of it.
+                if (blobMetadata.shouldBeDeleted(isACommitter /* respectLeaseWaitTime */)) {
+                    deleteBlobLocked(blobMetadata);
                     return true;
                 }
                 return false;
@@ -899,8 +921,7 @@
             if (userBlobs != null) {
                 for (int i = 0, count = userBlobs.size(); i < count; ++i) {
                     final BlobMetadata blobMetadata = userBlobs.valueAt(i);
-                    blobMetadata.getBlobFile().delete();
-                    mActiveBlobIds.remove(blobMetadata.getBlobId());
+                    deleteBlobLocked(blobMetadata);
                 }
             }
             if (LOGV) {
@@ -938,27 +959,14 @@
         for (int i = 0, userCount = mBlobsMap.size(); i < userCount; ++i) {
             final ArrayMap<BlobHandle, BlobMetadata> userBlobs = mBlobsMap.valueAt(i);
             userBlobs.entrySet().removeIf(entry -> {
-                final BlobHandle blobHandle = entry.getKey();
                 final BlobMetadata blobMetadata = entry.getValue();
-                boolean shouldRemove = false;
 
-                // Cleanup expired data blobs.
-                if (blobHandle.isExpired()) {
-                    shouldRemove = true;
-                }
-
-                // Cleanup blobs with no active leases.
-                // TODO: Exclude blobs which were just committed.
-                if (!blobMetadata.hasLeases()) {
-                    shouldRemove = true;
-                }
-
-                if (shouldRemove) {
-                    blobMetadata.getBlobFile().delete();
-                    mActiveBlobIds.remove(blobMetadata.getBlobId());
+                if (blobMetadata.shouldBeDeleted(true /* respectLeaseWaitTime */)) {
+                    deleteBlobLocked(blobMetadata);
                     deletedBlobIds.add(blobMetadata.getBlobId());
+                    return true;
                 }
-                return shouldRemove;
+                return false;
             });
         }
         writeBlobsInfoAsync();
@@ -995,6 +1003,12 @@
         writeBlobSessionsAsync();
     }
 
+    @GuardedBy("mBlobsLock")
+    private void deleteBlobLocked(BlobMetadata blobMetadata) {
+        blobMetadata.getBlobFile().delete();
+        mActiveBlobIds.remove(blobMetadata.getBlobId());
+    }
+
     void runClearAllSessions(@UserIdInt int userId) {
         synchronized (mBlobsLock) {
             if (userId == UserHandle.USER_ALL) {
@@ -1024,9 +1038,8 @@
             if (blobMetadata == null) {
                 return;
             }
-            blobMetadata.getBlobFile().delete();
+            deleteBlobLocked(blobMetadata);
             userBlobs.remove(blobHandle);
-            mActiveBlobIds.remove(blobMetadata.getBlobId());
             writeBlobsInfoAsync();
         }
     }
@@ -1303,6 +1316,8 @@
                         leaseExpiryTimeMillis, callingUid, packageName);
             } catch (Resources.NotFoundException e) {
                 throw new IllegalArgumentException(e);
+            } catch (LimitExceededException e) {
+                throw new ParcelableException(e);
             }
         }
 
@@ -1325,13 +1340,28 @@
         }
 
         @Override
+        public long getRemainingLeaseQuotaBytes(@NonNull String packageName) {
+            final int callingUid = Binder.getCallingUid();
+            verifyCallingPackage(callingUid, packageName);
+
+            return getRemainingLeaseQuotaBytesInternal(callingUid, packageName);
+        }
+
+        @Override
         public void waitForIdle(@NonNull RemoteCallback remoteCallback) {
             Objects.requireNonNull(remoteCallback, "remoteCallback must not be null");
 
             mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP,
                     "Caller is not allowed to call this; caller=" + Binder.getCallingUid());
-            mHandler.post(PooledLambda.obtainRunnable(remoteCallback::sendResult, null)
-                    .recycleOnUse());
+            // We post messages back and forth between mHandler thread and mBackgroundHandler
+            // thread while committing a blob. We need to replicate the same pattern here to
+            // ensure pending messages have been handled.
+            mHandler.post(() -> {
+                mBackgroundHandler.post(() -> {
+                    mHandler.post(PooledLambda.obtainRunnable(remoteCallback::sendResult, null)
+                            .recycleOnUse());
+                });
+            });
         }
 
         @Override
diff --git a/apex/jobscheduler/service/java/com/android/server/TEST_MAPPING b/apex/jobscheduler/service/java/com/android/server/TEST_MAPPING
index 8fbfb1d..d99830dc4 100644
--- a/apex/jobscheduler/service/java/com/android/server/TEST_MAPPING
+++ b/apex/jobscheduler/service/java/com/android/server/TEST_MAPPING
@@ -7,6 +7,7 @@
       ],
       "options": [
         {"include-filter": "com.android.server.DeviceIdleControllerTest"},
+        {"exclude-annotation": "android.platform.test.annotations.FlakyTest"},
         {"exclude-annotation": "androidx.test.filters.FlakyTest"}
       ]
     }
diff --git a/apex/jobscheduler/service/java/com/android/server/deviceidle/TEST_MAPPING b/apex/jobscheduler/service/java/com/android/server/deviceidle/TEST_MAPPING
index bc7a7d3..b76c582 100644
--- a/apex/jobscheduler/service/java/com/android/server/deviceidle/TEST_MAPPING
+++ b/apex/jobscheduler/service/java/com/android/server/deviceidle/TEST_MAPPING
@@ -4,6 +4,7 @@
       "name": "FrameworksMockingServicesTests",
       "options": [
         {"include-filter": "com.android.server.DeviceIdleControllerTest"},
+        {"exclude-annotation": "android.platform.test.annotations.FlakyTest"},
         {"exclude-annotation": "androidx.test.filters.FlakyTest"}
       ]
     }
diff --git a/apex/jobscheduler/service/java/com/android/server/job/TEST_MAPPING b/apex/jobscheduler/service/java/com/android/server/job/TEST_MAPPING
index e2e1180..484fec3 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/TEST_MAPPING
+++ b/apex/jobscheduler/service/java/com/android/server/job/TEST_MAPPING
@@ -3,6 +3,7 @@
         {
             "name": "CtsJobSchedulerTestCases",
             "options": [
+                {"exclude-annotation": "android.platform.test.annotations.FlakyTest"},
                 {"exclude-annotation": "androidx.test.filters.FlakyTest"},
                 {"exclude-annotation": "androidx.test.filters.LargeTest"}
             ]
@@ -11,6 +12,7 @@
             "name": "FrameworksMockingServicesTests",
             "options": [
                 {"include-filter": "com.android.server.job"},
+                {"exclude-annotation": "android.platform.test.annotations.FlakyTest"},
                 {"exclude-annotation": "androidx.test.filters.FlakyTest"}
             ]
         },
@@ -18,6 +20,7 @@
             "name": "FrameworksServicesTests",
             "options": [
                 {"include-filter": "com.android.server.job"},
+                {"exclude-annotation": "android.platform.test.annotations.FlakyTest"},
                 {"exclude-annotation": "androidx.test.filters.FlakyTest"}
             ]
         }
diff --git a/apex/jobscheduler/service/java/com/android/server/usage/TEST_MAPPING b/apex/jobscheduler/service/java/com/android/server/usage/TEST_MAPPING
index ba7572a..c5dc51c 100644
--- a/apex/jobscheduler/service/java/com/android/server/usage/TEST_MAPPING
+++ b/apex/jobscheduler/service/java/com/android/server/usage/TEST_MAPPING
@@ -4,6 +4,7 @@
       "name": "CtsUsageStatsTestCases",
       "options": [
         {"include-filter": "android.app.usage.cts.UsageStatsTest"},
+        {"exclude-annotation": "android.platform.test.annotations.FlakyTest"},
         {"exclude-annotation": "androidx.test.filters.FlakyTest"}
       ]
     },
@@ -11,6 +12,7 @@
       "name": "FrameworksServicesTests",
       "options": [
         {"include-filter": "com.android.server.usage"},
+        {"exclude-annotation": "android.platform.test.annotations.FlakyTest"},
         {"exclude-annotation": "androidx.test.filters.FlakyTest"}
       ]
     }
diff --git a/apex/media/framework/Android.bp b/apex/media/framework/Android.bp
index 821dd9e..99e82e7 100644
--- a/apex/media/framework/Android.bp
+++ b/apex/media/framework/Android.bp
@@ -132,19 +132,19 @@
 java_library {
     name: "framework-media-stubs-publicapi",
     srcs: [":framework-media-stubs-srcs-publicapi"],
-    sdk_version: "current",
+    defaults: ["framework-module-stubs-lib-defaults-publicapi"],
 }
 
 java_library {
     name: "framework-media-stubs-systemapi",
     srcs: [":framework-media-stubs-srcs-systemapi"],
-    sdk_version: "system_current",
+    defaults: ["framework-module-stubs-lib-defaults-systemapi"],
 }
 
 java_library {
     name: "framework-media-stubs-module_libs_api",
     srcs: [":framework-media-stubs-srcs-module_libs_api"],
-    sdk_version: "system_current",
+    defaults: ["framework-module-stubs-lib-defaults-module_libs_api"],
 }
 
 java_library {
diff --git a/apex/media/framework/TEST_MAPPING b/apex/media/framework/TEST_MAPPING
new file mode 100644
index 0000000..ec2d2e2
--- /dev/null
+++ b/apex/media/framework/TEST_MAPPING
@@ -0,0 +1,7 @@
+{
+  "presubmit": [
+    {
+      "name": "CtsMediaParserTestCases"
+    }
+  ]
+}
diff --git a/apex/media/framework/api/current.txt b/apex/media/framework/api/current.txt
index 2b7dcd33..9cec748 100644
--- a/apex/media/framework/api/current.txt
+++ b/apex/media/framework/api/current.txt
@@ -29,7 +29,7 @@
     method public boolean advance(@NonNull android.media.MediaParser.SeekableInputReader) throws java.io.IOException;
     method @NonNull public static android.media.MediaParser create(@NonNull android.media.MediaParser.OutputConsumer, @NonNull java.lang.String...);
     method @NonNull public static android.media.MediaParser createByName(@NonNull String, @NonNull android.media.MediaParser.OutputConsumer);
-    method @Nullable public String getParserName();
+    method @NonNull public String getParserName();
     method @NonNull public static java.util.List<java.lang.String> getParserNames(@NonNull android.media.MediaFormat);
     method public void release();
     method public void seek(@NonNull android.media.MediaParser.SeekPoint);
@@ -52,6 +52,21 @@
     field public static final String PARAMETER_TS_IGNORE_AVC_STREAM = "android.media.mediaparser.ts.ignoreAvcStream";
     field public static final String PARAMETER_TS_IGNORE_SPLICE_INFO_STREAM = "android.media.mediaparser.ts.ignoreSpliceInfoStream";
     field public static final String PARAMETER_TS_MODE = "android.media.mediaparser.ts.mode";
+    field public static final String PARSER_NAME_AC3 = "android.media.mediaparser.Ac3Parser";
+    field public static final String PARSER_NAME_AC4 = "android.media.mediaparser.Ac4Parser";
+    field public static final String PARSER_NAME_ADTS = "android.media.mediaparser.AdtsParser";
+    field public static final String PARSER_NAME_AMR = "android.media.mediaparser.AmrParser";
+    field public static final String PARSER_NAME_FLAC = "android.media.mediaparser.FlacParser";
+    field public static final String PARSER_NAME_FLV = "android.media.mediaparser.FlvParser";
+    field public static final String PARSER_NAME_FMP4 = "android.media.mediaparser.FragmentedMp4Parser";
+    field public static final String PARSER_NAME_MATROSKA = "android.media.mediaparser.MatroskaParser";
+    field public static final String PARSER_NAME_MP3 = "android.media.mediaparser.Mp3Parser";
+    field public static final String PARSER_NAME_MP4 = "android.media.mediaparser.Mp4Parser";
+    field public static final String PARSER_NAME_OGG = "android.media.mediaparser.OggParser";
+    field public static final String PARSER_NAME_PS = "android.media.mediaparser.PsParser";
+    field public static final String PARSER_NAME_TS = "android.media.mediaparser.TsParser";
+    field public static final String PARSER_NAME_UNKNOWN = "android.media.mediaparser.UNKNOWN";
+    field public static final String PARSER_NAME_WAV = "android.media.mediaparser.WavParser";
   }
 
   public static interface MediaParser.InputReader {
diff --git a/apex/media/framework/java/android/media/MediaParser.java b/apex/media/framework/java/android/media/MediaParser.java
index bb3f4e9..d8ae485 100644
--- a/apex/media/framework/java/android/media/MediaParser.java
+++ b/apex/media/framework/java/android/media/MediaParser.java
@@ -18,6 +18,7 @@
 import android.annotation.CheckResult;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.StringDef;
 import android.net.Uri;
 import android.text.TextUtils;
 import android.util.Pair;
@@ -44,6 +45,7 @@
 import com.google.android.exoplayer2.extractor.ts.Ac3Extractor;
 import com.google.android.exoplayer2.extractor.ts.Ac4Extractor;
 import com.google.android.exoplayer2.extractor.ts.AdtsExtractor;
+import com.google.android.exoplayer2.extractor.ts.DefaultTsPayloadReaderFactory;
 import com.google.android.exoplayer2.extractor.ts.PsExtractor;
 import com.google.android.exoplayer2.extractor.ts.TsExtractor;
 import com.google.android.exoplayer2.extractor.wav.WavExtractor;
@@ -51,12 +53,16 @@
 import com.google.android.exoplayer2.upstream.DataSpec;
 import com.google.android.exoplayer2.upstream.TransferListener;
 import com.google.android.exoplayer2.util.ParsableByteArray;
+import com.google.android.exoplayer2.util.Util;
 import com.google.android.exoplayer2.video.ColorInfo;
 
 import java.io.EOFException;
 import java.io.IOException;
 import java.io.InterruptedIOException;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.nio.ByteBuffer;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
@@ -440,7 +446,73 @@
         }
     }
 
-    // Public constants.
+    // Parser implementation names.
+
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @StringDef(
+            prefix = {"PARSER_NAME_"},
+            value = {
+                PARSER_NAME_UNKNOWN,
+                PARSER_NAME_MATROSKA,
+                PARSER_NAME_FMP4,
+                PARSER_NAME_MP4,
+                PARSER_NAME_MP3,
+                PARSER_NAME_ADTS,
+                PARSER_NAME_AC3,
+                PARSER_NAME_TS,
+                PARSER_NAME_FLV,
+                PARSER_NAME_OGG,
+                PARSER_NAME_PS,
+                PARSER_NAME_WAV,
+                PARSER_NAME_AMR,
+                PARSER_NAME_AC4,
+                PARSER_NAME_FLAC
+            })
+    public @interface ParserName {}
+
+    public static final String PARSER_NAME_UNKNOWN = "android.media.mediaparser.UNKNOWN";
+    public static final String PARSER_NAME_MATROSKA = "android.media.mediaparser.MatroskaParser";
+    public static final String PARSER_NAME_FMP4 = "android.media.mediaparser.FragmentedMp4Parser";
+    public static final String PARSER_NAME_MP4 = "android.media.mediaparser.Mp4Parser";
+    public static final String PARSER_NAME_MP3 = "android.media.mediaparser.Mp3Parser";
+    public static final String PARSER_NAME_ADTS = "android.media.mediaparser.AdtsParser";
+    public static final String PARSER_NAME_AC3 = "android.media.mediaparser.Ac3Parser";
+    public static final String PARSER_NAME_TS = "android.media.mediaparser.TsParser";
+    public static final String PARSER_NAME_FLV = "android.media.mediaparser.FlvParser";
+    public static final String PARSER_NAME_OGG = "android.media.mediaparser.OggParser";
+    public static final String PARSER_NAME_PS = "android.media.mediaparser.PsParser";
+    public static final String PARSER_NAME_WAV = "android.media.mediaparser.WavParser";
+    public static final String PARSER_NAME_AMR = "android.media.mediaparser.AmrParser";
+    public static final String PARSER_NAME_AC4 = "android.media.mediaparser.Ac4Parser";
+    public static final String PARSER_NAME_FLAC = "android.media.mediaparser.FlacParser";
+
+    // MediaParser parameters.
+
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @StringDef(
+            prefix = {"PARAMETER_"},
+            value = {
+                PARAMETER_ADTS_ENABLE_CBR_SEEKING,
+                PARAMETER_AMR_ENABLE_CBR_SEEKING,
+                PARAMETER_FLAC_DISABLE_ID3,
+                PARAMETER_MP4_IGNORE_EDIT_LISTS,
+                PARAMETER_MP4_IGNORE_TFDT_BOX,
+                PARAMETER_MP4_TREAT_VIDEO_FRAMES_AS_KEYFRAMES,
+                PARAMETER_MATROSKA_DISABLE_CUES_SEEKING,
+                PARAMETER_MP3_DISABLE_ID3,
+                PARAMETER_MP3_ENABLE_CBR_SEEKING,
+                PARAMETER_MP3_ENABLE_INDEX_SEEKING,
+                PARAMETER_TS_MODE,
+                PARAMETER_TS_ALLOW_NON_IDR_AVC_KEYFRAMES,
+                PARAMETER_TS_IGNORE_AAC_STREAM,
+                PARAMETER_TS_IGNORE_AVC_STREAM,
+                PARAMETER_TS_IGNORE_SPLICE_INFO_STREAM,
+                PARAMETER_TS_DETECT_ACCESS_UNITS,
+                PARAMETER_TS_ENABLE_HDMV_DTS_AUDIO_STREAMS
+            })
+    public @interface ParameterName {}
 
     /**
      * Sets whether constant bitrate seeking should be enabled for ADTS parsing. {@code boolean}
@@ -575,6 +647,9 @@
 
     private static final Map<String, ExtractorFactory> EXTRACTOR_FACTORIES_BY_NAME;
     private static final Map<String, Class> EXPECTED_TYPE_BY_PARAMETER_NAME;
+    private static final String TS_MODE_SINGLE_PMT = "single_pmt";
+    private static final String TS_MODE_MULTI_PMT = "multi_pmt";
+    private static final String TS_MODE_HLS = "hls";
 
     // Instance creation methods.
 
@@ -589,7 +664,7 @@
      */
     @NonNull
     public static MediaParser createByName(
-            @NonNull String name, @NonNull OutputConsumer outputConsumer) {
+            @NonNull @ParserName String name, @NonNull OutputConsumer outputConsumer) {
         String[] nameAsArray = new String[] {name};
         assertValidNames(nameAsArray);
         return new MediaParser(outputConsumer, /* sniff= */ false, name);
@@ -607,7 +682,7 @@
      */
     @NonNull
     public static MediaParser create(
-            @NonNull OutputConsumer outputConsumer, @NonNull String... parserNames) {
+            @NonNull OutputConsumer outputConsumer, @NonNull @ParserName String... parserNames) {
         assertValidNames(parserNames);
         if (parserNames.length == 0) {
             parserNames = EXTRACTOR_FACTORIES_BY_NAME.keySet().toArray(new String[0]);
@@ -621,11 +696,83 @@
      * Returns an immutable list with the names of the parsers that are suitable for container
      * formats with the given {@link MediaFormat}.
      *
-     * <p>TODO: List which properties are taken into account. E.g. MimeType.
+     * <p>A parser supports a {@link MediaFormat} if the mime type associated with {@link
+     * MediaFormat#KEY_MIME} corresponds to the supported container format.
+     *
+     * @param mediaFormat The {@link MediaFormat} to check support for.
+     * @return The parser names that support the given {@code mediaFormat}, or the list of all
+     *     parsers available if no container specific format information is provided.
      */
     @NonNull
+    @ParserName
     public static List<String> getParserNames(@NonNull MediaFormat mediaFormat) {
-        throw new UnsupportedOperationException();
+        String mimeType = mediaFormat.getString(MediaFormat.KEY_MIME);
+        mimeType = mimeType == null ? null : Util.toLowerInvariant(mimeType.trim());
+        if (TextUtils.isEmpty(mimeType)) {
+            // No MIME type provided. Return all.
+            return Collections.unmodifiableList(
+                    new ArrayList<>(EXTRACTOR_FACTORIES_BY_NAME.keySet()));
+        }
+        ArrayList<String> result = new ArrayList<>();
+        switch (mimeType) {
+            case "video/x-matroska":
+            case "audio/x-matroska":
+            case "video/x-webm":
+            case "audio/x-webm":
+                result.add(PARSER_NAME_MATROSKA);
+                break;
+            case "video/mp4":
+            case "audio/mp4":
+            case "application/mp4":
+                result.add(PARSER_NAME_MP4);
+                result.add(PARSER_NAME_FMP4);
+                break;
+            case "audio/mpeg":
+                result.add(PARSER_NAME_MP3);
+                break;
+            case "audio/aac":
+                result.add(PARSER_NAME_ADTS);
+                break;
+            case "audio/ac3":
+                result.add(PARSER_NAME_AC3);
+                break;
+            case "video/mp2t":
+            case "audio/mp2t":
+                result.add(PARSER_NAME_TS);
+                break;
+            case "video/x-flv":
+                result.add(PARSER_NAME_FLV);
+                break;
+            case "video/ogg":
+            case "audio/ogg":
+            case "application/ogg":
+                result.add(PARSER_NAME_OGG);
+                break;
+            case "video/mp2p":
+            case "video/mp1s":
+                result.add(PARSER_NAME_PS);
+                break;
+            case "audio/vnd.wave":
+            case "audio/wav":
+            case "audio/wave":
+            case "audio/x-wav":
+                result.add(PARSER_NAME_WAV);
+                break;
+            case "audio/amr":
+                result.add(PARSER_NAME_AMR);
+                break;
+            case "audio/ac4":
+                result.add(PARSER_NAME_AC4);
+                break;
+            case "audio/flac":
+            case "audio/x-flac":
+                result.add(PARSER_NAME_FLAC);
+                break;
+            default:
+                // No parsers support the given mime type. Do nothing.
+                break;
+        }
+        return Collections.unmodifiableList(result);
     }
 
     // Private fields.
@@ -658,7 +805,8 @@
      * @throws IllegalStateException If called after calling {@link #advance} on the same instance.
      */
     @NonNull
-    public MediaParser setParameter(@NonNull String parameterName, @NonNull Object value) {
+    public MediaParser setParameter(
+            @NonNull @ParameterName String parameterName, @NonNull Object value) {
         if (mExtractor != null) {
             throw new IllegalStateException(
                     "setParameters() must be called before the first advance() call.");
@@ -675,6 +823,12 @@
                             + value.getClass().getSimpleName()
                             + " was passed.");
         }
+        if (PARAMETER_TS_MODE.equals(parameterName)
+                && !TS_MODE_SINGLE_PMT.equals(value)
+                && !TS_MODE_HLS.equals(value)
+                && !TS_MODE_MULTI_PMT.equals(value)) {
+            throw new IllegalArgumentException(PARAMETER_TS_MODE + " does not accept: " + value);
+        }
         mParserParameters.put(parameterName, value);
         return this;
     }
@@ -686,7 +840,7 @@
      *     constants.
      * @return Whether the given {@code parameterName} is supported.
      */
-    public boolean supportsParameter(@NonNull String parameterName) {
+    public boolean supportsParameter(@NonNull @ParameterName String parameterName) {
         return EXPECTED_TYPE_BY_PARAMETER_NAME.containsKey(parameterName);
     }
 
@@ -694,14 +848,15 @@
      * Returns the name of the backing parser implementation.
      *
      * <p>If this instance was creating using {@link #createByName}, the provided name is returned.
-     * If this instance was created using {@link #create}, this method will return null until the
-     * first call to {@link #advance}, after which the name of the backing parser implementation is
-     * returned.
+     * If this instance was created using {@link #create}, this method will return {@link
+     * #PARSER_NAME_UNKNOWN} until the first call to {@link #advance}, after which the name of the
+     * backing parser implementation is returned.
      *
      * @return The name of the backing parser implementation, or null if the backing parser
      *     implementation has not yet been selected.
      */
-    @Nullable
+    @NonNull
+    @ParserName
     public String getParserName() {
         return mExtractorName;
     }
@@ -737,13 +892,12 @@
 
         // TODO: Apply parameters when creating extractor instances.
         if (mExtractor == null) {
-            if (mExtractorName != null) {
+            if (!mExtractorName.equals(PARSER_NAME_UNKNOWN)) {
                 mExtractor = EXTRACTOR_FACTORIES_BY_NAME.get(mExtractorName).createInstance();
                 mExtractor.init(new ExtractorOutputAdapter());
             } else {
                 for (String parserName : mParserNamesPool) {
-                    Extractor extractor =
-                            EXTRACTOR_FACTORIES_BY_NAME.get(parserName).createInstance();
+                    Extractor extractor = createExtractor(parserName);
                     try {
                         if (extractor.sniff(mExtractorInput)) {
                             mExtractorName = parserName;
@@ -831,9 +985,7 @@
         mParserParameters = new HashMap<>();
         mOutputConsumer = outputConsumer;
         mParserNamesPool = parserNamesPool;
-        if (!sniff) {
-            mExtractorName = parserNamesPool[0];
-        }
+        mExtractorName = sniff ? PARSER_NAME_UNKNOWN : parserNamesPool[0];
         mPositionHolder = new PositionHolder();
         mDataSource = new InputReadingDataSource();
         removePendingSeek();
@@ -850,6 +1002,124 @@
         mPendingSeekTimeMicros = -1;
     }
 
+    private Extractor createExtractor(String parserName) {
+        int flags = 0;
+        switch (parserName) {
+            case PARSER_NAME_MATROSKA:
+                flags =
+                        getBooleanParameter(PARAMETER_MATROSKA_DISABLE_CUES_SEEKING)
+                                ? MatroskaExtractor.FLAG_DISABLE_SEEK_FOR_CUES
+                                : 0;
+                return new MatroskaExtractor(flags);
+            case PARSER_NAME_FMP4:
+                flags |=
+                        getBooleanParameter(PARAMETER_MP4_IGNORE_EDIT_LISTS)
+                                ? FragmentedMp4Extractor.FLAG_WORKAROUND_IGNORE_EDIT_LISTS
+                                : 0;
+                flags |=
+                        getBooleanParameter(PARAMETER_MP4_IGNORE_TFDT_BOX)
+                                ? FragmentedMp4Extractor.FLAG_WORKAROUND_IGNORE_TFDT_BOX
+                                : 0;
+                flags |=
+                        getBooleanParameter(PARAMETER_MP4_TREAT_VIDEO_FRAMES_AS_KEYFRAMES)
+                                ? FragmentedMp4Extractor
+                                        .FLAG_WORKAROUND_EVERY_VIDEO_FRAME_IS_SYNC_FRAME
+                                : 0;
+                return new FragmentedMp4Extractor(flags);
+            case PARSER_NAME_MP4:
+                flags |=
+                        getBooleanParameter(PARAMETER_MP4_IGNORE_EDIT_LISTS)
+                                ? Mp4Extractor.FLAG_WORKAROUND_IGNORE_EDIT_LISTS
+                                : 0;
+                return new Mp4Extractor();
+            case PARSER_NAME_MP3:
+                flags |=
+                        getBooleanParameter(PARAMETER_MP3_DISABLE_ID3)
+                                ? Mp3Extractor.FLAG_DISABLE_ID3_METADATA
+                                : 0;
+                flags |=
+                        getBooleanParameter(PARAMETER_MP3_ENABLE_CBR_SEEKING)
+                                ? Mp3Extractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING
+                                : 0;
+                // TODO: Add index seeking once we update the ExoPlayer version.
+                return new Mp3Extractor(flags);
+            case PARSER_NAME_ADTS:
+                flags |=
+                        getBooleanParameter(PARAMETER_ADTS_ENABLE_CBR_SEEKING)
+                                ? AdtsExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING
+                                : 0;
+                return new AdtsExtractor(flags);
+            case PARSER_NAME_AC3:
+                return new Ac3Extractor();
+            case PARSER_NAME_TS:
+                flags |=
+                        getBooleanParameter(PARAMETER_TS_ALLOW_NON_IDR_AVC_KEYFRAMES)
+                                ? DefaultTsPayloadReaderFactory.FLAG_ALLOW_NON_IDR_KEYFRAMES
+                                : 0;
+                flags |=
+                        getBooleanParameter(PARAMETER_TS_DETECT_ACCESS_UNITS)
+                                ? DefaultTsPayloadReaderFactory.FLAG_DETECT_ACCESS_UNITS
+                                : 0;
+                flags |=
+                        getBooleanParameter(PARAMETER_TS_ENABLE_HDMV_DTS_AUDIO_STREAMS)
+                                ? DefaultTsPayloadReaderFactory.FLAG_ENABLE_HDMV_DTS_AUDIO_STREAMS
+                                : 0;
+                flags |=
+                        getBooleanParameter(PARAMETER_TS_IGNORE_AAC_STREAM)
+                                ? DefaultTsPayloadReaderFactory.FLAG_IGNORE_AAC_STREAM
+                                : 0;
+                flags |=
+                        getBooleanParameter(PARAMETER_TS_IGNORE_AVC_STREAM)
+                                ? DefaultTsPayloadReaderFactory.FLAG_IGNORE_H264_STREAM
+                                : 0;
+                flags |=
+                        getBooleanParameter(PARAMETER_TS_IGNORE_SPLICE_INFO_STREAM)
+                                ? DefaultTsPayloadReaderFactory.FLAG_IGNORE_SPLICE_INFO_STREAM
+                                : 0;
+                String tsMode = getStringParameter(PARAMETER_TS_MODE, TS_MODE_SINGLE_PMT);
+                int hlsMode =
+                        TS_MODE_SINGLE_PMT.equals(tsMode)
+                                ? TsExtractor.MODE_SINGLE_PMT
+                                : TS_MODE_HLS.equals(tsMode)
+                                        ? TsExtractor.MODE_HLS
+                                        : TsExtractor.MODE_MULTI_PMT;
+                return new TsExtractor(hlsMode, flags);
+            case PARSER_NAME_FLV:
+                return new FlvExtractor();
+            case PARSER_NAME_OGG:
+                return new OggExtractor();
+            case PARSER_NAME_PS:
+                return new PsExtractor();
+            case PARSER_NAME_WAV:
+                return new WavExtractor();
+            case PARSER_NAME_AMR:
+                flags |=
+                        getBooleanParameter(PARAMETER_AMR_ENABLE_CBR_SEEKING)
+                                ? AmrExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING
+                                : 0;
+                return new AmrExtractor(flags);
+            case PARSER_NAME_AC4:
+                return new Ac4Extractor();
+            case PARSER_NAME_FLAC:
+                flags |=
+                        getBooleanParameter(PARAMETER_FLAC_DISABLE_ID3)
+                                ? FlacExtractor.FLAG_DISABLE_ID3_METADATA
+                                : 0;
+                return new FlacExtractor(flags);
+            default:
+                // Should never happen.
+                throw new IllegalStateException("Unexpected attempt to create: " + parserName);
+        }
+    }
+
+    private boolean getBooleanParameter(String name) {
+        return (boolean) mParserParameters.getOrDefault(name, false);
+    }
+
+    private String getStringParameter(String name, String defaultValue) {
+        return (String) mParserParameters.getOrDefault(name, defaultValue);
+    }
+
     // Private classes.
 
     private static final class InputReadingDataSource implements DataSource {
@@ -1165,20 +1435,20 @@
         LinkedHashMap<String, ExtractorFactory> extractorFactoriesByName = new LinkedHashMap<>();
         // Parsers are ordered to match ExoPlayer's DefaultExtractorsFactory extractor ordering,
         // which in turn aims to minimize the chances of incorrect extractor selections.
-        extractorFactoriesByName.put("exo.MatroskaParser", MatroskaExtractor::new);
-        extractorFactoriesByName.put("exo.FragmentedMp4Parser", FragmentedMp4Extractor::new);
-        extractorFactoriesByName.put("exo.Mp4Parser", Mp4Extractor::new);
-        extractorFactoriesByName.put("exo.Mp3Parser", Mp3Extractor::new);
-        extractorFactoriesByName.put("exo.AdtsParser", AdtsExtractor::new);
-        extractorFactoriesByName.put("exo.Ac3Parser", Ac3Extractor::new);
-        extractorFactoriesByName.put("exo.TsParser", TsExtractor::new);
-        extractorFactoriesByName.put("exo.FlvParser", FlvExtractor::new);
-        extractorFactoriesByName.put("exo.OggParser", OggExtractor::new);
-        extractorFactoriesByName.put("exo.PsParser", PsExtractor::new);
-        extractorFactoriesByName.put("exo.WavParser", WavExtractor::new);
-        extractorFactoriesByName.put("exo.AmrParser", AmrExtractor::new);
-        extractorFactoriesByName.put("exo.Ac4Parser", Ac4Extractor::new);
-        extractorFactoriesByName.put("exo.FlacParser", FlacExtractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_MATROSKA, MatroskaExtractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_FMP4, FragmentedMp4Extractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_MP4, Mp4Extractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_MP3, Mp3Extractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_ADTS, AdtsExtractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_AC3, Ac3Extractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_TS, TsExtractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_FLV, FlvExtractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_OGG, OggExtractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_PS, PsExtractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_WAV, WavExtractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_AMR, AmrExtractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_AC4, Ac4Extractor::new);
+        extractorFactoriesByName.put(PARSER_NAME_FLAC, FlacExtractor::new);
         EXTRACTOR_FACTORIES_BY_NAME = Collections.unmodifiableMap(extractorFactoriesByName);
 
         HashMap<String, Class> expectedTypeByParameterName = new HashMap<>();
diff --git a/apex/permission/framework/Android.bp b/apex/permission/framework/Android.bp
index 6d96200..793247e 100644
--- a/apex/permission/framework/Android.bp
+++ b/apex/permission/framework/Android.bp
@@ -31,6 +31,10 @@
         "com.android.permission",
         "test_com.android.permission",
     ],
+    permitted_packages: [
+        "android.permission",
+        "android.app.role",
+    ],
     hostdex: true,
     installable: true,
     visibility: [
@@ -84,20 +88,17 @@
 java_library {
     name: "framework-permission-stubs-publicapi",
     srcs: [ ":framework-permission-stubs-srcs-publicapi" ],
-    sdk_version: "system_current",
-    installable: false,
+    defaults: ["framework-module-stubs-lib-defaults-publicapi"],
 }
 
 java_library {
     name: "framework-permission-stubs-systemapi",
     srcs: [ ":framework-permission-stubs-srcs-systemapi" ],
-    sdk_version: "system_current",
-    installable: false,
+    defaults: ["framework-module-stubs-lib-defaults-systemapi"],
 }
 
 java_library {
     name: "framework-permission-stubs-module_libs_api",
     srcs: [ ":framework-permission-stubs-srcs-module_libs_api" ],
-    sdk_version: "system_current",
-    installable: false,
+    defaults: ["framework-module-stubs-lib-defaults-module_libs_api"],
 }
diff --git a/apex/permission/service/Android.bp b/apex/permission/service/Android.bp
index 8d66431..5cdcdd3 100644
--- a/apex/permission/service/Android.bp
+++ b/apex/permission/service/Android.bp
@@ -17,6 +17,7 @@
     srcs: [
         "java/**/*.java",
     ],
+    path: "java",
 }
 
 java_library {
@@ -35,3 +36,17 @@
     ],
     installable: true,
 }
+
+droidstubs {
+    name: "service-permission-stubs-srcs",
+    srcs: [ ":service-permission-sources" ],
+    defaults: ["service-module-stubs-srcs-defaults"],
+    visibility: ["//visibility:private"]
+}
+
+java_library {
+    name: "service-permission-stubs",
+    srcs: [":service-permission-stubs-srcs"],
+    defaults: ["service-module-stubs-defaults"],
+    visibility: ["//visibility:private"]
+}
diff --git a/apex/permission/service/api/current.txt b/apex/permission/service/api/current.txt
new file mode 100644
index 0000000..c76cc32
--- /dev/null
+++ b/apex/permission/service/api/current.txt
@@ -0,0 +1,46 @@
+// Signature format: 2.0
+package com.android.permission.persistence {
+
+  public interface RuntimePermissionsPersistence {
+    method @NonNull public static com.android.permission.persistence.RuntimePermissionsPersistence createInstance();
+    method public void deleteForUser(@NonNull android.os.UserHandle);
+    method @Nullable public com.android.permission.persistence.RuntimePermissionsState readForUser(@NonNull android.os.UserHandle);
+    method public void writeForUser(@NonNull com.android.permission.persistence.RuntimePermissionsState, @NonNull android.os.UserHandle);
+  }
+
+  public final class RuntimePermissionsState {
+    ctor public RuntimePermissionsState(int, @Nullable String, @NonNull java.util.Map<java.lang.String,java.util.List<com.android.permission.persistence.RuntimePermissionsState.PermissionState>>, @NonNull java.util.Map<java.lang.String,java.util.List<com.android.permission.persistence.RuntimePermissionsState.PermissionState>>);
+    method @Nullable public String getFingerprint();
+    method @NonNull public java.util.Map<java.lang.String,java.util.List<com.android.permission.persistence.RuntimePermissionsState.PermissionState>> getPackagePermissions();
+    method @NonNull public java.util.Map<java.lang.String,java.util.List<com.android.permission.persistence.RuntimePermissionsState.PermissionState>> getSharedUserPermissions();
+    method public int getVersion();
+    field public static final int NO_VERSION = -1; // 0xffffffff
+  }
+
+  public static final class RuntimePermissionsState.PermissionState {
+    ctor public RuntimePermissionsState.PermissionState(@NonNull String, boolean, int);
+    method public int getFlags();
+    method @NonNull public String getName();
+    method public boolean isGranted();
+  }
+
+}
+
+package com.android.role.persistence {
+
+  public interface RolesPersistence {
+    method @NonNull public static com.android.role.persistence.RolesPersistence createInstance();
+    method public void deleteForUser(@NonNull android.os.UserHandle);
+    method @Nullable public com.android.role.persistence.RolesState readForUser(@NonNull android.os.UserHandle);
+    method public void writeForUser(@NonNull com.android.role.persistence.RolesState, @NonNull android.os.UserHandle);
+  }
+
+  public final class RolesState {
+    ctor public RolesState(int, @Nullable String, @NonNull java.util.Map<java.lang.String,java.util.Set<java.lang.String>>);
+    method @Nullable public String getPackagesHash();
+    method @NonNull public java.util.Map<java.lang.String,java.util.Set<java.lang.String>> getRoles();
+    method public int getVersion();
+  }
+
+}
+
diff --git a/apex/permission/service/api/removed.txt b/apex/permission/service/api/removed.txt
new file mode 100644
index 0000000..d802177
--- /dev/null
+++ b/apex/permission/service/api/removed.txt
@@ -0,0 +1 @@
+// Signature format: 2.0
diff --git a/apex/sdkextensions/framework/Android.bp b/apex/sdkextensions/framework/Android.bp
index 86f4ab7..707113b 100644
--- a/apex/sdkextensions/framework/Android.bp
+++ b/apex/sdkextensions/framework/Android.bp
@@ -86,7 +86,7 @@
 java_library {
     name: "framework-sdkextensions-stubs-publicapi",
     srcs: [":framework-sdkextensions-stubs-srcs-publicapi"],
-    sdk_version: "current",
+    defaults: ["framework-module-stubs-lib-defaults-publicapi"],
     visibility: [
         "//frameworks/base", // Framework
         "//frameworks/base/apex/sdkextensions", // sdkextensions SDK
@@ -96,7 +96,7 @@
 java_library {
     name: "framework-sdkextensions-stubs-systemapi",
     srcs: [":framework-sdkextensions-stubs-srcs-systemapi"],
-    sdk_version: "system_current",
+    defaults: ["framework-module-stubs-lib-defaults-systemapi"],
     visibility: [
         "//frameworks/base", // Framework
         "//frameworks/base/apex/sdkextensions", // sdkextensions SDK
@@ -106,7 +106,7 @@
 java_library {
     name: "framework-sdkextensions-stubs-module_libs_api",
     srcs: [":framework-sdkextensions-stubs-srcs-module_libs_api"],
-    sdk_version: "system_current",
+    defaults: ["framework-module-stubs-lib-defaults-module_libs_api"],
     visibility: [
         "//frameworks/base", // Framework
         "//frameworks/base/apex/sdkextensions", // sdkextensions SDK
diff --git a/apex/statsd/framework/test/TEST_MAPPING b/apex/statsd/TEST_MAPPING
similarity index 60%
rename from apex/statsd/framework/test/TEST_MAPPING
rename to apex/statsd/TEST_MAPPING
index f387958..93f1087 100644
--- a/apex/statsd/framework/test/TEST_MAPPING
+++ b/apex/statsd/TEST_MAPPING
@@ -2,6 +2,9 @@
   "presubmit" : [
     {
       "name" : "FrameworkStatsdTest"
+    },
+    {
+      "name" : "LibStatsPullTests"
     }
   ]
 }
diff --git a/apex/statsd/aidl/android/os/IStatsd.aidl b/apex/statsd/aidl/android/os/IStatsd.aidl
index c8aec53..d5b5949 100644
--- a/apex/statsd/aidl/android/os/IStatsd.aidl
+++ b/apex/statsd/aidl/android/os/IStatsd.aidl
@@ -190,11 +190,13 @@
                                          long timeoutMillis,in int[] additiveFields,
                                          IPullAtomCallback pullerCallback);
 
-   /**
-    * Registers a puller callback function that, when invoked, pulls the data
-    * for the specified atom tag.
-    */
-    oneway void registerNativePullAtomCallback(int atomTag, long coolDownNs, long timeoutNs,
+    /**
+     * Registers a puller callback function that, when invoked, pulls the data
+     * for the specified atom tag.
+     *
+     * Enforces the REGISTER_STATS_PULL_ATOM permission.
+     */
+    oneway void registerNativePullAtomCallback(int atomTag, long coolDownMillis, long timeoutMillis,
                            in int[] additiveFields, IPullAtomCallback pullerCallback);
 
     /**
@@ -203,7 +205,9 @@
     oneway void unregisterPullAtomCallback(int uid, int atomTag);
 
     /**
-     * Unregisters any pullAtomCallback for the given atom.
+     * Unregisters any pullAtomCallback for the given atom + caller.
+     *
+     * Enforces the REGISTER_STATS_PULL_ATOM permission.
      */
     oneway void unregisterNativePullAtomCallback(int atomTag);
 
diff --git a/apex/statsd/aidl/android/os/StatsDimensionsValueParcel.aidl b/apex/statsd/aidl/android/os/StatsDimensionsValueParcel.aidl
index a8685e3..05f78d0 100644
--- a/apex/statsd/aidl/android/os/StatsDimensionsValueParcel.aidl
+++ b/apex/statsd/aidl/android/os/StatsDimensionsValueParcel.aidl
@@ -4,12 +4,12 @@
  * @hide
  */
 parcelable StatsDimensionsValueParcel {
-    /**
-     * Field equals:
-     *      - atomTag for top level StatsDimensionsValueParcel
-     *      - position in dimension for all other levels
-     */
+    // Field equals atomTag for top level StatsDimensionsValueParcels or
+    // positions in depth (1-indexed) for lower level parcels.
     int field;
+
+    // Indicator for which type of value is stored. Should be set to one
+    // of the constants in StatsDimensionsValue.java.
     int valueType;
 
     String stringValue;
diff --git a/apex/statsd/framework/Android.bp b/apex/statsd/framework/Android.bp
index 986682e..804eb03 100644
--- a/apex/statsd/framework/Android.bp
+++ b/apex/statsd/framework/Android.bp
@@ -46,19 +46,11 @@
         "//frameworks/base/apex/statsd:__subpackages__",
     ],
 }
-
-java_defaults {
-    name: "framework-statsd-defaults",
-    sdk_version: "module_current",
-    libs: [ "framework-annotations-lib" ],
-}
-
 java_library {
     name: "framework-statsd",
-    defaults: [
-        "framework-statsd-defaults",
-    ],
     installable: true,
+    sdk_version: "module_current",
+    libs: [ "framework-annotations-lib" ],
 
     srcs: [
         ":framework-statsd-sources",
@@ -129,45 +121,41 @@
 
 java_library {
     name: "framework-statsd-stubs-publicapi",
-    defaults: [
-        "framework-statsd-defaults",
-    ],
+    defaults: ["framework-module-stubs-lib-defaults-publicapi"],
     srcs: [ ":framework-statsd-stubs-srcs-publicapi" ],
     visibility: [
         "//frameworks/base", // Framework
         "//frameworks/base/apex/statsd", // statsd apex
-    ]
+    ],
 }
 
 java_library {
     name: "framework-statsd-stubs-systemapi",
-    defaults: [
-        "framework-statsd-defaults",
-    ],
+    defaults: ["framework-module-stubs-lib-defaults-systemapi"],
     srcs: [ ":framework-statsd-stubs-srcs-systemapi" ],
     visibility: [
         "//frameworks/base", // Framework
         "//frameworks/base/apex/statsd", // statsd apex
-    ]
+    ],
 }
 
 java_library {
     name: "framework-statsd-stubs-module_libs_api",
-    defaults: [
-        "framework-statsd-defaults",
-    ],
+    defaults: ["framework-module-stubs-lib-defaults-module_libs_api"],
     srcs: [ ":framework-statsd-stubs-srcs-module_libs_api" ],
     visibility: [
         "//frameworks/base", // Framework
         "//frameworks/base/apex/statsd", // statsd apex
         "//frameworks/opt/net/wifi/service" // wifi service
-    ]
+    ],
 }
 
 android_test {
     name: "FrameworkStatsdTest",
-    sdk_version: "module_current",
+    platform_apis: true,
     srcs: [
+        // TODO(b/147705194): Use framework-statsd as a lib dependency instead.
+        ":framework-statsd-sources",
         "test/**/*.java",
     ],
     manifest: "test/AndroidManifest.xml",
@@ -178,7 +166,6 @@
     libs: [
         "android.test.runner.stubs",
         "android.test.base.stubs",
-        "framework-statsd",
     ],
     test_suites: [
         "device-tests",
diff --git a/apex/statsd/framework/java/android/os/StatsDimensionsValue.java b/apex/statsd/framework/java/android/os/StatsDimensionsValue.java
index 35273da..7d9349c 100644
--- a/apex/statsd/framework/java/android/os/StatsDimensionsValue.java
+++ b/apex/statsd/framework/java/android/os/StatsDimensionsValue.java
@@ -58,7 +58,7 @@
     private static final String TAG = "StatsDimensionsValue";
 
     // Values of the value type correspond to stats_log.proto's DimensionValue fields.
-    // Keep constants in sync with services/include/android/os/StatsDimensionsValue.h.
+    // Keep constants in sync with frameworks/base/cmds/statsd/src/HashableDimensionKey.cpp.
     /** Indicates that this holds a String. */
     public static final int STRING_VALUE_TYPE = 2;
     /** Indicates that this holds an int. */
@@ -72,17 +72,7 @@
     /** Indicates that this holds a List of StatsDimensionsValues. */
     public static final int TUPLE_VALUE_TYPE = 7;
 
-    /** Value of a stats_log.proto DimensionsValue.field. */
-    private final int mField;
-
-    /** Type of stats_log.proto DimensionsValue.value, according to the VALUE_TYPEs above. */
-    private final int mValueType;
-
-    /**
-     * Value of a stats_log.proto DimensionsValue.value.
-     * String, Integer, Long, Boolean, Float, or StatsDimensionsValue[].
-     */
-    private final Object mValue; // immutable or array of immutables
+    private final StatsDimensionsValueParcel mInner;
 
     /**
      * Creates a {@code StatsDimensionValue} from a parcel.
@@ -90,59 +80,25 @@
      * @hide
      */
     public StatsDimensionsValue(Parcel in) {
-        mField = in.readInt();
-        mValueType = in.readInt();
-        mValue = readValueFromParcel(mValueType, in);
+        mInner = StatsDimensionsValueParcel.CREATOR.createFromParcel(in);
     }
 
     /**
      * Creates a {@code StatsDimensionsValue} from a StatsDimensionsValueParcel
-     * TODO(b/149103391): Make StatsDimensionsValue a wrapper on top of
-     * StatsDimensionsValueParcel.
      *
      * @hide
      */
     public StatsDimensionsValue(StatsDimensionsValueParcel parcel) {
-        mField = parcel.field;
-        mValueType = parcel.valueType;
-        switch (mValueType) {
-            case STRING_VALUE_TYPE:
-                mValue = parcel.stringValue;
-                break;
-            case INT_VALUE_TYPE:
-                mValue = parcel.intValue;
-                break;
-            case LONG_VALUE_TYPE:
-                mValue = parcel.longValue;
-                break;
-            case BOOLEAN_VALUE_TYPE:
-                mValue = parcel.boolValue;
-                break;
-            case FLOAT_VALUE_TYPE:
-                mValue = parcel.floatValue;
-                break;
-            case TUPLE_VALUE_TYPE:
-                StatsDimensionsValue[] values = new StatsDimensionsValue[parcel.tupleValue.length];
-                for (int i = 0; i < parcel.tupleValue.length; i++) {
-                    values[i] = new StatsDimensionsValue(parcel.tupleValue[i]);
-                }
-                mValue = values;
-                break;
-            default:
-                Log.w(TAG, "StatsDimensionsValueParcel contains bad valueType: " + mValueType);
-                mValue = null;
-                break;
-        }
+        mInner = parcel;
     }
 
-
     /**
      * Return the field, i.e. the tag of a statsd atom.
      *
      * @return the field
      */
     public int getField() {
-        return mField;
+        return mInner.field;
     }
 
     /**
@@ -152,12 +108,12 @@
      *         null otherwise
      */
     public String getStringValue() {
-        try {
-            if (mValueType == STRING_VALUE_TYPE) return (String) mValue;
-        } catch (ClassCastException e) {
-            Log.w(TAG, "Failed to successfully get value", e);
+        if (mInner.valueType == STRING_VALUE_TYPE) {
+            return mInner.stringValue;
+        } else {
+            Log.w(TAG, "Value type is " + getValueTypeAsString() + ", not string.");
+            return null;
         }
-        return null;
     }
 
     /**
@@ -166,12 +122,12 @@
      * @return the int held if {@link #getValueType()} == {@link #INT_VALUE_TYPE}, 0 otherwise
      */
     public int getIntValue() {
-        try {
-            if (mValueType == INT_VALUE_TYPE) return (Integer) mValue;
-        } catch (ClassCastException e) {
-            Log.w(TAG, "Failed to successfully get value", e);
+        if (mInner.valueType == INT_VALUE_TYPE) {
+            return mInner.intValue;
+        } else {
+            Log.w(TAG, "Value type is " + getValueTypeAsString() + ", not int.");
+            return 0;
         }
-        return 0;
     }
 
     /**
@@ -180,12 +136,12 @@
      * @return the long held if {@link #getValueType()} == {@link #LONG_VALUE_TYPE}, 0 otherwise
      */
     public long getLongValue() {
-        try {
-            if (mValueType == LONG_VALUE_TYPE) return (Long) mValue;
-        } catch (ClassCastException e) {
-            Log.w(TAG, "Failed to successfully get value", e);
+        if (mInner.valueType == LONG_VALUE_TYPE) {
+            return mInner.longValue;
+        } else {
+            Log.w(TAG, "Value type is " + getValueTypeAsString() + ", not long.");
+            return 0;
         }
-        return 0;
     }
 
     /**
@@ -195,12 +151,12 @@
      *         false otherwise
      */
     public boolean getBooleanValue() {
-        try {
-            if (mValueType == BOOLEAN_VALUE_TYPE) return (Boolean) mValue;
-        } catch (ClassCastException e) {
-            Log.w(TAG, "Failed to successfully get value", e);
+        if (mInner.valueType == BOOLEAN_VALUE_TYPE) {
+            return mInner.boolValue;
+        } else {
+            Log.w(TAG, "Value type is " + getValueTypeAsString() + ", not boolean.");
+            return false;
         }
-        return false;
     }
 
     /**
@@ -209,12 +165,12 @@
      * @return the float held if {@link #getValueType()} == {@link #FLOAT_VALUE_TYPE}, 0 otherwise
      */
     public float getFloatValue() {
-        try {
-            if (mValueType == FLOAT_VALUE_TYPE) return (Float) mValue;
-        } catch (ClassCastException e) {
-            Log.w(TAG, "Failed to successfully get value", e);
+        if (mInner.valueType == FLOAT_VALUE_TYPE) {
+            return mInner.floatValue;
+        } else {
+            Log.w(TAG, "Value type is " + getValueTypeAsString() + ", not float.");
+            return 0;
         }
-        return 0;
     }
 
     /**
@@ -226,19 +182,15 @@
      *         null otherwise
      */
     public List<StatsDimensionsValue> getTupleValueList() {
-        if (mValueType != TUPLE_VALUE_TYPE) {
-            return null;
-        }
-        try {
-            StatsDimensionsValue[] orig = (StatsDimensionsValue[]) mValue;
-            List<StatsDimensionsValue> copy = new ArrayList<>(orig.length);
-            // Shallow copy since StatsDimensionsValue is immutable anyway
-            for (int i = 0; i < orig.length; i++) {
-                copy.add(orig[i]);
+        if (mInner.valueType == TUPLE_VALUE_TYPE) {
+            int length = (mInner.tupleValue == null) ? 0 : mInner.tupleValue.length;
+            List<StatsDimensionsValue> tupleValues = new ArrayList<>(length);
+            for (int i = 0; i < length; i++) {
+                tupleValues.add(new StatsDimensionsValue(mInner.tupleValue[i]));
             }
-            return copy;
-        } catch (ClassCastException e) {
-            Log.w(TAG, "Failed to successfully get value", e);
+            return tupleValues;
+        } else {
+            Log.w(TAG, "Value type is " + getValueTypeAsString() + ", not tuple.");
             return null;
         }
     }
@@ -257,7 +209,7 @@
      * @return the constant representing the type of value stored
      */
     public int getValueType() {
-        return mValueType;
+        return mInner.valueType;
     }
 
     /**
@@ -267,7 +219,7 @@
      * @return true if {@link #getValueType()} is equal to {@code valueType}.
      */
     public boolean isValueType(int valueType) {
-        return mValueType == valueType;
+        return mInner.valueType == valueType;
     }
 
     /**
@@ -280,26 +232,40 @@
      */
     // Follows the format of statsd's dimension.h toString.
     public String toString() {
-        try {
-            StringBuilder sb = new StringBuilder();
-            sb.append(mField);
-            sb.append(":");
-            if (mValueType == TUPLE_VALUE_TYPE) {
+        StringBuilder sb = new StringBuilder();
+        sb.append(mInner.field);
+        sb.append(":");
+        switch (mInner.valueType) {
+            case STRING_VALUE_TYPE:
+                sb.append(mInner.stringValue);
+                break;
+            case INT_VALUE_TYPE:
+                sb.append(String.valueOf(mInner.intValue));
+                break;
+            case LONG_VALUE_TYPE:
+                sb.append(String.valueOf(mInner.longValue));
+                break;
+            case BOOLEAN_VALUE_TYPE:
+                sb.append(String.valueOf(mInner.boolValue));
+                break;
+            case FLOAT_VALUE_TYPE:
+                sb.append(String.valueOf(mInner.floatValue));
+                break;
+            case TUPLE_VALUE_TYPE:
                 sb.append("{");
-                StatsDimensionsValue[] sbvs = (StatsDimensionsValue[]) mValue;
-                for (int i = 0; i < sbvs.length; i++) {
-                    sb.append(sbvs[i].toString());
+                int length = (mInner.tupleValue == null) ? 0 : mInner.tupleValue.length;
+                for (int i = 0; i < length; i++) {
+                    StatsDimensionsValue child = new StatsDimensionsValue(mInner.tupleValue[i]);
+                    sb.append(child.toString());
                     sb.append("|");
                 }
                 sb.append("}");
-            } else {
-                sb.append(mValue.toString());
-            }
-            return sb.toString();
-        } catch (ClassCastException e) {
-            Log.w(TAG, "Failed to successfully get value", e);
+                break;
+            default:
+                Log.w(TAG, "Incorrect value type");
+                break;
         }
-        return "";
+        return sb.toString();
     }
 
     /**
@@ -324,72 +290,28 @@
 
     @Override
     public void writeToParcel(Parcel out, int flags) {
-        out.writeInt(mField);
-        out.writeInt(mValueType);
-        writeValueToParcel(mValueType, mValue, out, flags);
+        mInner.writeToParcel(out, flags);
     }
 
-    /** Writes mValue to a parcel. Returns true if succeeds. */
-    private static boolean writeValueToParcel(int valueType, Object value, Parcel out, int flags) {
-        try {
-            switch (valueType) {
-                case STRING_VALUE_TYPE:
-                    out.writeString((String) value);
-                    return true;
-                case INT_VALUE_TYPE:
-                    out.writeInt((Integer) value);
-                    return true;
-                case LONG_VALUE_TYPE:
-                    out.writeLong((Long) value);
-                    return true;
-                case BOOLEAN_VALUE_TYPE:
-                    out.writeBoolean((Boolean) value);
-                    return true;
-                case FLOAT_VALUE_TYPE:
-                    out.writeFloat((Float) value);
-                    return true;
-                case TUPLE_VALUE_TYPE: {
-                    StatsDimensionsValue[] values = (StatsDimensionsValue[]) value;
-                    out.writeInt(values.length);
-                    for (int i = 0; i < values.length; i++) {
-                        values[i].writeToParcel(out, flags);
-                    }
-                    return true;
-                }
-                default:
-                    Log.w(TAG, "readValue of an impossible type " + valueType);
-                    return false;
-            }
-        } catch (ClassCastException e) {
-            Log.w(TAG, "writeValue cast failed", e);
-            return false;
-        }
-    }
-
-    /** Reads mValue from a parcel. */
-    private static Object readValueFromParcel(int valueType, Parcel parcel) {
-        switch (valueType) {
+    /**
+     * Returns a string representation of the type of value stored.
+     */
+    private String getValueTypeAsString() {
+        switch (mInner.valueType) {
             case STRING_VALUE_TYPE:
-                return parcel.readString();
+                return "string";
             case INT_VALUE_TYPE:
-                return parcel.readInt();
+                return "int";
             case LONG_VALUE_TYPE:
-                return parcel.readLong();
+                return "long";
             case BOOLEAN_VALUE_TYPE:
-                return parcel.readBoolean();
+                return "boolean";
             case FLOAT_VALUE_TYPE:
-                return parcel.readFloat();
-            case TUPLE_VALUE_TYPE: {
-                final int sz = parcel.readInt();
-                StatsDimensionsValue[] values = new StatsDimensionsValue[sz];
-                for (int i = 0; i < sz; i++) {
-                    values[i] = new StatsDimensionsValue(parcel);
-                }
-                return values;
-            }
+                return "float";
+            case TUPLE_VALUE_TYPE:
+                return "tuple";
             default:
-                Log.w(TAG, "readValue of an impossible type " + valueType);
-                return null;
+                return "unknown";
         }
     }
 }
diff --git a/apex/statsd/framework/java/android/util/StatsEvent.java b/apex/statsd/framework/java/android/util/StatsEvent.java
index 1a45c4a..8bd36a5 100644
--- a/apex/statsd/framework/java/android/util/StatsEvent.java
+++ b/apex/statsd/framework/java/android/util/StatsEvent.java
@@ -188,6 +188,12 @@
     @VisibleForTesting
     public static final int ERROR_ATTRIBUTION_UIDS_TAGS_SIZES_NOT_EQUAL = 0x1000;
 
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int ERROR_ATOM_ID_INVALID_POSITION = 0x2000;
+
     // Size limits.
 
     /**
@@ -350,19 +356,32 @@
             mPos = 0;
             writeTypeId(TYPE_OBJECT);
 
-            // Set mPos to after atom id's location in the buffer.
-            // First 2 elements in the buffer are event timestamp followed by the atom id.
-            mPos = POS_ATOM_ID + Byte.BYTES + Integer.BYTES;
-            mPosLastField = 0;
-            mLastType = 0;
+            // Write timestamp.
+            mPos = POS_TIMESTAMP_NS;
+            writeLong(mTimestampNs);
         }
 
         /**
          * Sets the atom id for this StatsEvent.
+         *
+         * This should be called immediately after StatsEvent.newBuilder()
+         * and should only be called once.
+         * Not calling setAtomId will result in ERROR_NO_ATOM_ID.
+         * Calling setAtomId out of order will result in ERROR_ATOM_ID_INVALID_POSITION.
          **/
         @NonNull
         public Builder setAtomId(final int atomId) {
-            mAtomId = atomId;
+            if (0 == mAtomId) {
+                mAtomId = atomId;
+
+                if (1 == mNumElements) { // Only timestamp is written so far.
+                    writeInt(atomId);
+                } else {
+                    // setAtomId called out of order.
+                    mErrorMask |= ERROR_ATOM_ID_INVALID_POSITION;
+                }
+            }
+
             return this;
         }
 
@@ -557,7 +576,7 @@
         public Builder addBooleanAnnotation(
                 final byte annotationId, final boolean value) {
             // Ensure there's a field written to annotate.
-            if (0 == mPosLastField) {
+            if (mNumElements < 2) {
                 mErrorMask |= ERROR_ANNOTATION_DOES_NOT_FOLLOW_FIELD;
             } else if (mCurrentAnnotationCount >= MAX_ANNOTATION_COUNT) {
                 mErrorMask |= ERROR_TOO_MANY_ANNOTATIONS;
@@ -568,6 +587,7 @@
                 mCurrentAnnotationCount++;
                 writeAnnotationCount();
             }
+
             return this;
         }
 
@@ -576,7 +596,7 @@
          **/
         @NonNull
         public Builder addIntAnnotation(final byte annotationId, final int value) {
-            if (0 == mPosLastField) {
+            if (mNumElements < 2) {
                 mErrorMask |= ERROR_ANNOTATION_DOES_NOT_FOLLOW_FIELD;
             } else if (mCurrentAnnotationCount >= MAX_ANNOTATION_COUNT) {
                 mErrorMask |= ERROR_TOO_MANY_ANNOTATIONS;
@@ -587,6 +607,7 @@
                 mCurrentAnnotationCount++;
                 writeAnnotationCount();
             }
+
             return this;
         }
 
@@ -619,19 +640,20 @@
                 mErrorMask |= ERROR_TOO_MANY_FIELDS;
             }
 
-            int size = mPos;
-            mPos = POS_TIMESTAMP_NS;
-            writeLong(mTimestampNs);
-            writeInt(mAtomId);
             if (0 == mErrorMask) {
                 mBuffer.putByte(POS_NUM_ELEMENTS, (byte) mNumElements);
             } else {
+                // Write atom id and error mask. Overwrite any annotations for atom Id.
+                mPos = POS_ATOM_ID;
+                mPos += mBuffer.putByte(mPos, TYPE_INT);
+                mPos += mBuffer.putInt(mPos, mAtomId);
                 mPos += mBuffer.putByte(mPos, TYPE_ERRORS);
                 mPos += mBuffer.putInt(mPos, mErrorMask);
                 mBuffer.putByte(POS_NUM_ELEMENTS, (byte) 3);
-                size = mPos;
             }
 
+            final int size = mPos;
+
             if (mUsePooledBuffer) {
                 return new StatsEvent(mAtomId, mBuffer, mBuffer.getBytes(), size);
             } else {
diff --git a/apex/statsd/framework/test/src/android/os/StatsDimensionsValueTest.java b/apex/statsd/framework/test/src/android/os/StatsDimensionsValueTest.java
new file mode 100644
index 0000000..db25911
--- /dev/null
+++ b/apex/statsd/framework/test/src/android/os/StatsDimensionsValueTest.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.os;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import java.util.List;
+
+@RunWith(JUnit4.class)
+public final class StatsDimensionsValueTest {
+
+    @Test
+    public void testConversionFromStructuredParcel() {
+        int tupleField = 100; // atom id
+        String stringValue = "Hello";
+        int intValue = 123;
+        long longValue = 123456789L;
+        float floatValue = 1.1f;
+        boolean boolValue = true;
+
+        // Construct structured parcel
+        StatsDimensionsValueParcel sdvp = new StatsDimensionsValueParcel();
+        sdvp.field = tupleField;
+        sdvp.valueType = StatsDimensionsValue.TUPLE_VALUE_TYPE;
+        sdvp.tupleValue = new StatsDimensionsValueParcel[5];
+
+        for (int i = 0; i < 5; i++) {
+            sdvp.tupleValue[i] = new StatsDimensionsValueParcel();
+            sdvp.tupleValue[i].field = i + 1;
+        }
+
+        sdvp.tupleValue[0].valueType = StatsDimensionsValue.STRING_VALUE_TYPE;
+        sdvp.tupleValue[1].valueType = StatsDimensionsValue.INT_VALUE_TYPE;
+        sdvp.tupleValue[2].valueType = StatsDimensionsValue.LONG_VALUE_TYPE;
+        sdvp.tupleValue[3].valueType = StatsDimensionsValue.FLOAT_VALUE_TYPE;
+        sdvp.tupleValue[4].valueType = StatsDimensionsValue.BOOLEAN_VALUE_TYPE;
+
+        sdvp.tupleValue[0].stringValue = stringValue;
+        sdvp.tupleValue[1].intValue = intValue;
+        sdvp.tupleValue[2].longValue = longValue;
+        sdvp.tupleValue[3].floatValue = floatValue;
+        sdvp.tupleValue[4].boolValue = boolValue;
+
+        // Convert to StatsDimensionsValue and check result
+        StatsDimensionsValue sdv = new StatsDimensionsValue(sdvp);
+
+        assertThat(sdv.getField()).isEqualTo(tupleField);
+        assertThat(sdv.getValueType()).isEqualTo(StatsDimensionsValue.TUPLE_VALUE_TYPE);
+        List<StatsDimensionsValue> sdvChildren = sdv.getTupleValueList();
+        assertThat(sdvChildren.size()).isEqualTo(5);
+
+        for (int i = 0; i < 5; i++) {
+            assertThat(sdvChildren.get(i).getField()).isEqualTo(i + 1);
+        }
+
+        assertThat(sdvChildren.get(0).getValueType())
+              .isEqualTo(StatsDimensionsValue.STRING_VALUE_TYPE);
+        assertThat(sdvChildren.get(1).getValueType())
+              .isEqualTo(StatsDimensionsValue.INT_VALUE_TYPE);
+        assertThat(sdvChildren.get(2).getValueType())
+              .isEqualTo(StatsDimensionsValue.LONG_VALUE_TYPE);
+        assertThat(sdvChildren.get(3).getValueType())
+              .isEqualTo(StatsDimensionsValue.FLOAT_VALUE_TYPE);
+        assertThat(sdvChildren.get(4).getValueType())
+              .isEqualTo(StatsDimensionsValue.BOOLEAN_VALUE_TYPE);
+
+        assertThat(sdvChildren.get(0).getStringValue()).isEqualTo(stringValue);
+        assertThat(sdvChildren.get(1).getIntValue()).isEqualTo(intValue);
+        assertThat(sdvChildren.get(2).getLongValue()).isEqualTo(longValue);
+        assertThat(sdvChildren.get(3).getFloatValue()).isEqualTo(floatValue);
+        assertThat(sdvChildren.get(4).getBooleanValue()).isEqualTo(boolValue);
+
+        // Ensure that StatsDimensionsValue and StatsDimensionsValueParcel are
+        // parceled equivalently
+        Parcel sdvpParcel = Parcel.obtain();
+        Parcel sdvParcel = Parcel.obtain();
+        sdvp.writeToParcel(sdvpParcel, 0);
+        sdv.writeToParcel(sdvParcel, 0);
+        assertThat(sdvpParcel.dataSize()).isEqualTo(sdvParcel.dataSize());
+    }
+
+    @Test
+    public void testNullTupleArray() {
+        int tupleField = 100; // atom id
+
+        StatsDimensionsValueParcel parcel = new StatsDimensionsValueParcel();
+        parcel.field = tupleField;
+        parcel.valueType = StatsDimensionsValue.TUPLE_VALUE_TYPE;
+        parcel.tupleValue = null;
+
+        StatsDimensionsValue sdv = new StatsDimensionsValue(parcel);
+        assertThat(sdv.getField()).isEqualTo(tupleField);
+        assertThat(sdv.getValueType()).isEqualTo(StatsDimensionsValue.TUPLE_VALUE_TYPE);
+        List<StatsDimensionsValue> sdvChildren = sdv.getTupleValueList();
+        assertThat(sdvChildren.size()).isEqualTo(0);
+    }
+}
diff --git a/apex/statsd/framework/test/src/android/util/StatsEventTest.java b/apex/statsd/framework/test/src/android/util/StatsEventTest.java
index ac25e27..7b51155 100644
--- a/apex/statsd/framework/test/src/android/util/StatsEventTest.java
+++ b/apex/statsd/framework/test/src/android/util/StatsEventTest.java
@@ -85,6 +85,45 @@
     }
 
     @Test
+    public void testOnlyAtomId() {
+        final int expectedAtomId = 109;
+
+        final long minTimestamp = SystemClock.elapsedRealtimeNanos();
+        final StatsEvent statsEvent = StatsEvent.newBuilder()
+                .setAtomId(expectedAtomId)
+                .usePooledBuffer()
+                .build();
+        final long maxTimestamp = SystemClock.elapsedRealtimeNanos();
+
+        assertThat(statsEvent.getAtomId()).isEqualTo(expectedAtomId);
+
+        final ByteBuffer buffer =
+                ByteBuffer.wrap(statsEvent.getBytes()).order(ByteOrder.LITTLE_ENDIAN);
+
+        assertWithMessage("Root element in buffer is not TYPE_OBJECT")
+                .that(buffer.get()).isEqualTo(StatsEvent.TYPE_OBJECT);
+
+        assertWithMessage("Incorrect number of elements in root object")
+                .that(buffer.get()).isEqualTo(2);
+
+        assertWithMessage("First element is not timestamp")
+                .that(buffer.get()).isEqualTo(StatsEvent.TYPE_LONG);
+
+        assertWithMessage("Incorrect timestamp")
+                .that(buffer.getLong()).isIn(Range.closed(minTimestamp, maxTimestamp));
+
+        assertWithMessage("Second element is not atom id")
+                .that(buffer.get()).isEqualTo(StatsEvent.TYPE_INT);
+
+        assertWithMessage("Incorrect atom id")
+                .that(buffer.getInt()).isEqualTo(expectedAtomId);
+
+        assertThat(statsEvent.getNumBytes()).isEqualTo(buffer.position());
+
+        statsEvent.release();
+    }
+
+    @Test
     public void testIntBooleanIntInt() {
         final int expectedAtomId = 109;
         final int field1 = 1;
@@ -460,6 +499,151 @@
         statsEvent.release();
     }
 
+    @Test
+    public void testAtomIdAnnotations() {
+        final int expectedAtomId = 109;
+        final byte atomAnnotationId = 84;
+        final int atomAnnotationValue = 9;
+        final int field1 = 1;
+        final byte field1AnnotationId = 45;
+        final boolean field1AnnotationValue = false;
+        final boolean field2 = true;
+        final byte field2AnnotationId = 1;
+        final int field2AnnotationValue = 23;
+
+        final long minTimestamp = SystemClock.elapsedRealtimeNanos();
+        final StatsEvent statsEvent = StatsEvent.newBuilder()
+                .setAtomId(expectedAtomId)
+                .addIntAnnotation(atomAnnotationId, atomAnnotationValue)
+                .writeInt(field1)
+                .addBooleanAnnotation(field1AnnotationId, field1AnnotationValue)
+                .writeBoolean(field2)
+                .addIntAnnotation(field2AnnotationId, field2AnnotationValue)
+                .usePooledBuffer()
+                .build();
+        final long maxTimestamp = SystemClock.elapsedRealtimeNanos();
+
+        assertThat(statsEvent.getAtomId()).isEqualTo(expectedAtomId);
+
+        final ByteBuffer buffer =
+                ByteBuffer.wrap(statsEvent.getBytes()).order(ByteOrder.LITTLE_ENDIAN);
+
+        assertWithMessage("Root element in buffer is not TYPE_OBJECT")
+                .that(buffer.get()).isEqualTo(StatsEvent.TYPE_OBJECT);
+
+        assertWithMessage("Incorrect number of elements in root object")
+                .that(buffer.get()).isEqualTo(4);
+
+        assertWithMessage("First element is not timestamp")
+                .that(buffer.get()).isEqualTo(StatsEvent.TYPE_LONG);
+
+        assertWithMessage("Incorrect timestamp")
+                .that(buffer.getLong()).isIn(Range.closed(minTimestamp, maxTimestamp));
+
+        final byte atomIdHeader = buffer.get();
+        final int atomIdAnnotationValueCount = atomIdHeader >> 4;
+        final byte atomIdValueType = (byte) (atomIdHeader & 0x0F);
+        assertWithMessage("Second element is not atom id")
+                .that(atomIdValueType).isEqualTo(StatsEvent.TYPE_INT);
+        assertWithMessage("Atom id annotation count is wrong")
+                .that(atomIdAnnotationValueCount).isEqualTo(1);
+        assertWithMessage("Incorrect atom id")
+                .that(buffer.getInt()).isEqualTo(expectedAtomId);
+        assertWithMessage("Atom id's annotation id is wrong")
+                .that(buffer.get()).isEqualTo(atomAnnotationId);
+        assertWithMessage("Atom id's annotation type is wrong")
+                .that(buffer.get()).isEqualTo(StatsEvent.TYPE_INT);
+        assertWithMessage("Atom id's annotation value is wrong")
+                .that(buffer.getInt()).isEqualTo(atomAnnotationValue);
+
+        final byte field1Header = buffer.get();
+        final int field1AnnotationValueCount = field1Header >> 4;
+        final byte field1Type = (byte) (field1Header & 0x0F);
+        assertWithMessage("First field is not Int")
+                .that(field1Type).isEqualTo(StatsEvent.TYPE_INT);
+        assertWithMessage("First field annotation count is wrong")
+                .that(field1AnnotationValueCount).isEqualTo(1);
+        assertWithMessage("Incorrect field 1")
+                .that(buffer.getInt()).isEqualTo(field1);
+        assertWithMessage("First field's annotation id is wrong")
+                .that(buffer.get()).isEqualTo(field1AnnotationId);
+        assertWithMessage("First field's annotation type is wrong")
+                .that(buffer.get()).isEqualTo(StatsEvent.TYPE_BOOLEAN);
+        assertWithMessage("First field's annotation value is wrong")
+                .that(buffer.get()).isEqualTo(field1AnnotationValue ? 1 : 0);
+
+        final byte field2Header = buffer.get();
+        final int field2AnnotationValueCount = field2Header >> 4;
+        final byte field2Type = (byte) (field2Header & 0x0F);
+        assertWithMessage("Second field is not boolean")
+                .that(field2Type).isEqualTo(StatsEvent.TYPE_BOOLEAN);
+        assertWithMessage("Second field annotation count is wrong")
+                .that(field2AnnotationValueCount).isEqualTo(1);
+        assertWithMessage("Incorrect field 2")
+                .that(buffer.get()).isEqualTo(field2 ? 1 : 0);
+        assertWithMessage("Second field's annotation id is wrong")
+                .that(buffer.get()).isEqualTo(field2AnnotationId);
+        assertWithMessage("Second field's annotation type is wrong")
+                .that(buffer.get()).isEqualTo(StatsEvent.TYPE_INT);
+        assertWithMessage("Second field's annotation value is wrong")
+                .that(buffer.getInt()).isEqualTo(field2AnnotationValue);
+
+        assertThat(statsEvent.getNumBytes()).isEqualTo(buffer.position());
+
+        statsEvent.release();
+    }
+
+    @Test
+    public void testSetAtomIdNotCalledImmediately() {
+        final int expectedAtomId = 109;
+        final int field1 = 25;
+        final boolean field2 = true;
+
+        final long minTimestamp = SystemClock.elapsedRealtimeNanos();
+        final StatsEvent statsEvent = StatsEvent.newBuilder()
+                .writeInt(field1)
+                .setAtomId(expectedAtomId)
+                .writeBoolean(field2)
+                .usePooledBuffer()
+                .build();
+        final long maxTimestamp = SystemClock.elapsedRealtimeNanos();
+
+        assertThat(statsEvent.getAtomId()).isEqualTo(expectedAtomId);
+
+        final ByteBuffer buffer =
+                ByteBuffer.wrap(statsEvent.getBytes()).order(ByteOrder.LITTLE_ENDIAN);
+
+        assertWithMessage("Root element in buffer is not TYPE_OBJECT")
+                .that(buffer.get()).isEqualTo(StatsEvent.TYPE_OBJECT);
+
+        assertWithMessage("Incorrect number of elements in root object")
+                .that(buffer.get()).isEqualTo(3);
+
+        assertWithMessage("First element is not timestamp")
+                .that(buffer.get()).isEqualTo(StatsEvent.TYPE_LONG);
+
+        assertWithMessage("Incorrect timestamp")
+                .that(buffer.getLong()).isIn(Range.closed(minTimestamp, maxTimestamp));
+
+        assertWithMessage("Second element is not atom id")
+                .that(buffer.get()).isEqualTo(StatsEvent.TYPE_INT);
+
+        assertWithMessage("Incorrect atom id")
+                .that(buffer.getInt()).isEqualTo(expectedAtomId);
+
+        assertWithMessage("Third element is not errors type")
+                .that(buffer.get()).isEqualTo(StatsEvent.TYPE_ERRORS);
+
+        final int errorMask = buffer.getInt();
+
+        assertWithMessage("ERROR_ATOM_ID_INVALID_POSITION should be the only error in the mask")
+                .that(errorMask).isEqualTo(StatsEvent.ERROR_ATOM_ID_INVALID_POSITION);
+
+        assertThat(statsEvent.getNumBytes()).isEqualTo(buffer.position());
+
+        statsEvent.release();
+    }
+
     private static byte[] getByteArrayFromByteBuffer(final ByteBuffer buffer) {
         final int numBytes = buffer.getInt();
         byte[] bytes = new byte[numBytes];
diff --git a/apex/statsd/service/Android.bp b/apex/statsd/service/Android.bp
index ff56bb5..df0ccfc 100644
--- a/apex/statsd/service/Android.bp
+++ b/apex/statsd/service/Android.bp
@@ -1,6 +1,16 @@
-// Statsd Service jar, which will eventually be put in the statsd mainline apex.
-// service-statsd needs to be added to PRODUCT_UPDATABLE_SYSTEM_SERVER_JARS.
-// This jar will contain StatsCompanionService
+// Copyright (C) 2020 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
 
 filegroup {
     name: "service-statsd-sources",
@@ -11,28 +21,13 @@
 
 java_library {
     name: "service-statsd",
-    installable: true,
-
-    srcs: [
-        ":service-statsd-sources",
-    ],
-
-    // TODO(b/146757305) should be "module_current" since not allowed to use
-    // @CorePlatformApi's
-    sdk_version: "core_platform",
-
+    srcs: [ ":service-statsd-sources" ],
+    sdk_version: "system_server_current",
     libs: [
         "framework-annotations-lib",
-        "services-stubs",
         "framework-statsd",
-
-        // TODO(b/146757305): should be unnecessary once
-        // sdk_version="module_lib_current" or "module_current"
-        "android_module_lib_stubs_current",
     ],
-
     plugins: ["java_api_finder"],
-
     apex_available: [
         "com.android.os.statsd",
         "test_com.android.os.statsd",
diff --git a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
index c84627d..aad5112 100644
--- a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
+++ b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
@@ -30,6 +30,7 @@
 import android.content.pm.ResolveInfo;
 import android.os.Binder;
 import android.os.Bundle;
+import android.os.FileUtils;
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.IBinder;
@@ -37,6 +38,7 @@
 import android.os.IStatsd;
 import android.os.Looper;
 import android.os.ParcelFileDescriptor;
+import android.os.PowerManager;
 import android.os.RemoteException;
 import android.os.StatsFrameworkInitializer;
 import android.os.SystemClock;
@@ -47,8 +49,6 @@
 
 import com.android.internal.annotations.GuardedBy;
 
-import libcore.io.IoUtils;
-
 import java.io.File;
 import java.io.FileDescriptor;
 import java.io.FileOutputStream;
@@ -100,9 +100,9 @@
     private static IStatsd sStatsd;
     private static final Object sStatsdLock = new Object();
 
-    private final OnAlarmListener mAnomalyAlarmListener = new AnomalyAlarmListener();
-    private final OnAlarmListener mPullingAlarmListener = new PullingAlarmListener();
-    private final OnAlarmListener mPeriodicAlarmListener = new PeriodicAlarmListener();
+    private final OnAlarmListener mAnomalyAlarmListener;
+    private final OnAlarmListener mPullingAlarmListener;
+    private final OnAlarmListener mPeriodicAlarmListener;
 
     private StatsManagerService mStatsManagerService;
 
@@ -121,6 +121,9 @@
         handlerThread.start();
         mHandler = new CompanionHandler(handlerThread.getLooper());
 
+        mAnomalyAlarmListener = new AnomalyAlarmListener(context);
+        mPullingAlarmListener = new PullingAlarmListener(context);
+        mPeriodicAlarmListener = new PeriodicAlarmListener(context);
     }
 
     private final static int[] toIntArray(List<Integer> list) {
@@ -226,13 +229,38 @@
                     Log.d(TAG, "Sent data for " + numRecords + " apps");
                 }
             } finally {
-                IoUtils.closeQuietly(fout);
+                FileUtils.closeQuietly(fout);
                 backgroundThread.quit();
                 backgroundThread.interrupt();
             }
         });
     }
 
+    private static class WakelockThread extends Thread {
+        private final PowerManager.WakeLock mWl;
+        private final Runnable mRunnable;
+
+        WakelockThread(Context context, String wakelockName, Runnable runnable) {
+            PowerManager powerManager = (PowerManager)
+                    context.getSystemService(Context.POWER_SERVICE);
+            mWl = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, wakelockName);
+            mRunnable = runnable;
+        }
+        @Override
+        public void run() {
+            try {
+                mRunnable.run();
+            } finally {
+                mWl.release();
+            }
+        }
+        @Override
+        public void start() {
+            mWl.acquire();
+            super.start();
+        }
+    }
+
     private final static class AppUpdateReceiver extends BroadcastReceiver {
         @Override
         public void onReceive(Context context, Intent intent) {
@@ -308,6 +336,12 @@
     }
 
     public static final class AnomalyAlarmListener implements OnAlarmListener {
+        private final Context mContext;
+
+        AnomalyAlarmListener(Context context) {
+            mContext = context;
+        }
+
         @Override
         public void onAlarm() {
             if (DEBUG) {
@@ -319,17 +353,30 @@
                 Log.w(TAG, "Could not access statsd to inform it of anomaly alarm firing");
                 return;
             }
-            try {
-                // Two-way call to statsd to retain AlarmManager wakelock
-                statsd.informAnomalyAlarmFired();
-            } catch (RemoteException e) {
-                Log.w(TAG, "Failed to inform statsd of anomaly alarm firing", e);
-            }
-            // AlarmManager releases its own wakelock here.
+
+            // Wakelock needs to be retained while calling statsd.
+            Thread thread = new WakelockThread(mContext,
+                    AnomalyAlarmListener.class.getCanonicalName(), new Runnable() {
+                        @Override
+                        public void run() {
+                            try {
+                                statsd.informAnomalyAlarmFired();
+                            } catch (RemoteException e) {
+                                Log.w(TAG, "Failed to inform statsd of anomaly alarm firing", e);
+                            }
+                        }
+                    });
+            thread.start();
         }
     }
 
     public final static class PullingAlarmListener implements OnAlarmListener {
+        private final Context mContext;
+
+        PullingAlarmListener(Context context) {
+            mContext = context;
+        }
+
         @Override
         public void onAlarm() {
             if (DEBUG) {
@@ -340,16 +387,30 @@
                 Log.w(TAG, "Could not access statsd to inform it of pulling alarm firing.");
                 return;
             }
-            try {
-                // Two-way call to statsd to retain AlarmManager wakelock
-                statsd.informPollAlarmFired();
-            } catch (RemoteException e) {
-                Log.w(TAG, "Failed to inform statsd of pulling alarm firing.", e);
-            }
+
+            // Wakelock needs to be retained while calling statsd.
+            Thread thread = new WakelockThread(mContext,
+                    PullingAlarmListener.class.getCanonicalName(), new Runnable() {
+                        @Override
+                        public void run() {
+                            try {
+                                statsd.informPollAlarmFired();
+                            } catch (RemoteException e) {
+                                Log.w(TAG, "Failed to inform statsd of pulling alarm firing.", e);
+                            }
+                        }
+                    });
+            thread.start();
         }
     }
 
     public final static class PeriodicAlarmListener implements OnAlarmListener {
+        private final Context mContext;
+
+        PeriodicAlarmListener(Context context) {
+            mContext = context;
+        }
+
         @Override
         public void onAlarm() {
             if (DEBUG) {
@@ -360,13 +421,20 @@
                 Log.w(TAG, "Could not access statsd to inform it of periodic alarm firing.");
                 return;
             }
-            try {
-                // Two-way call to statsd to retain AlarmManager wakelock
-                statsd.informAlarmForSubscriberTriggeringFired();
-            } catch (RemoteException e) {
-                Log.w(TAG, "Failed to inform statsd of periodic alarm firing.", e);
-            }
-            // AlarmManager releases its own wakelock here.
+
+            // Wakelock needs to be retained while calling statsd.
+            Thread thread = new WakelockThread(mContext,
+                    PeriodicAlarmListener.class.getCanonicalName(), new Runnable() {
+                        @Override
+                        public void run() {
+                            try {
+                                statsd.informAlarmForSubscriberTriggeringFired();
+                            } catch (RemoteException e) {
+                                Log.w(TAG, "Failed to inform statsd of periodic alarm firing.", e);
+                            }
+                        }
+                    });
+            thread.start();
         }
     }
 
diff --git a/apex/statsd/tests/libstatspull/AndroidManifest.xml b/apex/statsd/tests/libstatspull/AndroidManifest.xml
index bffd400..0c669b0 100644
--- a/apex/statsd/tests/libstatspull/AndroidManifest.xml
+++ b/apex/statsd/tests/libstatspull/AndroidManifest.xml
@@ -21,6 +21,7 @@
 
     <uses-permission android:name="android.permission.DUMP" />
     <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
+    <uses-permission android:name="android.permission.REGISTER_STATS_PULL_ATOM" />
 
     <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
                      android:targetPackage="com.android.internal.os.statsd.libstats"
diff --git a/apex/statsd/tests/libstatspull/TEST_MAPPING b/apex/statsd/tests/libstatspull/TEST_MAPPING
deleted file mode 100644
index 5e1178c..0000000
--- a/apex/statsd/tests/libstatspull/TEST_MAPPING
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  "presubmit" : [
-    {
-      "name" : "LibStatsPullTests"
-    }
-  ]
-}
\ No newline at end of file
diff --git a/apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp b/apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp
index 9e5aa95..166592d 100644
--- a/apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp
+++ b/apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp
@@ -44,30 +44,27 @@
     return sPullReturnVal;
 }
 
-extern "C"
-JNIEXPORT void JNICALL
-Java_com_android_internal_os_statsd_libstats_LibStatsPullTests_registerStatsPuller(
-        JNIEnv* /*env*/, jobject /* this */, jint atomTag, jlong timeoutNs, jlong coolDownNs,
-        jint pullRetVal, jlong latencyMillis, int atomsPerPull)
-{
+extern "C" JNIEXPORT void JNICALL
+Java_com_android_internal_os_statsd_libstats_LibStatsPullTests_setStatsPuller(
+        JNIEnv* /*env*/, jobject /* this */, jint atomTag, jlong timeoutMillis,
+        jlong coolDownMillis, jint pullRetVal, jlong latencyMillis, int atomsPerPull) {
     sAtomTag = atomTag;
     sPullReturnVal = pullRetVal;
     sLatencyMillis = latencyMillis;
     sAtomsPerPull = atomsPerPull;
     sNumPulls = 0;
     AStatsManager_PullAtomMetadata* metadata = AStatsManager_PullAtomMetadata_obtain();
-    AStatsManager_PullAtomMetadata_setCoolDownNs(metadata, coolDownNs);
-    AStatsManager_PullAtomMetadata_setTimeoutNs(metadata, timeoutNs);
+    AStatsManager_PullAtomMetadata_setCoolDownMillis(metadata, coolDownMillis);
+    AStatsManager_PullAtomMetadata_setTimeoutMillis(metadata, timeoutMillis);
 
-    AStatsManager_registerPullAtomCallback(sAtomTag, &pullAtomCallback, metadata, nullptr);
+    AStatsManager_setPullAtomCallback(sAtomTag, metadata, &pullAtomCallback, nullptr);
     AStatsManager_PullAtomMetadata_release(metadata);
 }
 
-extern "C"
-JNIEXPORT void JNICALL
-Java_com_android_internal_os_statsd_libstats_LibStatsPullTests_unregisterStatsPuller(
-        JNIEnv* /*env*/, jobject /* this */, jint /*atomTag*/)
-{
-    AStatsManager_unregisterPullAtomCallback(sAtomTag);
+extern "C" JNIEXPORT void JNICALL
+Java_com_android_internal_os_statsd_libstats_LibStatsPullTests_clearStatsPuller(JNIEnv* /*env*/,
+                                                                                jobject /* this */,
+                                                                                jint /*atomTag*/) {
+    AStatsManager_clearPullAtomCallback(sAtomTag);
 }
 } // namespace
diff --git a/apex/statsd/tests/libstatspull/src/com/android/internal/os/statsd/libstats/LibStatsPullTests.java b/apex/statsd/tests/libstatspull/src/com/android/internal/os/statsd/libstats/LibStatsPullTests.java
index d4e51e0..240222e 100644
--- a/apex/statsd/tests/libstatspull/src/com/android/internal/os/statsd/libstats/LibStatsPullTests.java
+++ b/apex/statsd/tests/libstatspull/src/com/android/internal/os/statsd/libstats/LibStatsPullTests.java
@@ -29,6 +29,7 @@
 import com.android.internal.os.StatsdConfigProto.AtomMatcher;
 import com.android.internal.os.StatsdConfigProto.FieldFilter;
 import com.android.internal.os.StatsdConfigProto.GaugeMetric;
+import com.android.internal.os.StatsdConfigProto.PullAtomPackages;
 import com.android.internal.os.StatsdConfigProto.SimpleAtomMatcher;
 import com.android.internal.os.StatsdConfigProto.StatsdConfig;
 import com.android.internal.os.StatsdConfigProto.TimeUnit;
@@ -58,8 +59,8 @@
     private static int sPullReturnValue;
     private static long sConfigId;
     private static long sPullLatencyMillis;
-    private static long sPullTimeoutNs;
-    private static long sCoolDownNs;
+    private static long sPullTimeoutMillis;
+    private static long sCoolDownMillis;
     private static int sAtomsPerPull;
 
     static {
@@ -75,8 +76,8 @@
         assertThat(InstrumentationRegistry.getInstrumentation()).isNotNull();
         sPullReturnValue = StatsManager.PULL_SUCCESS;
         sPullLatencyMillis = 0;
-        sPullTimeoutNs = 10_000_000_000L;
-        sCoolDownNs = 1_000_000_000L;
+        sPullTimeoutMillis = 10_000L;
+        sCoolDownMillis = 1_000L;
         sAtomsPerPull = 1;
     }
 
@@ -85,7 +86,7 @@
      */
     @After
     public void tearDown() throws Exception {
-        unregisterStatsPuller(PULL_ATOM_TAG);
+        clearStatsPuller(PULL_ATOM_TAG);
         StatsManager statsManager = (StatsManager) mContext.getSystemService(
                 Context.STATS_MANAGER);
         statsManager.removeConfig(sConfigId);
@@ -102,14 +103,14 @@
         createAndAddConfigToStatsd(statsManager);
 
         // Add the puller.
-        registerStatsPuller(PULL_ATOM_TAG, sPullTimeoutNs, sCoolDownNs, sPullReturnValue,
+        setStatsPuller(PULL_ATOM_TAG, sPullTimeoutMillis, sCoolDownMillis, sPullReturnValue,
                 sPullLatencyMillis, sAtomsPerPull);
         Thread.sleep(SHORT_SLEEP_MILLIS);
         StatsLog.logStart(APP_BREADCRUMB_LABEL);
         // Let the current bucket finish.
         Thread.sleep(LONG_SLEEP_MILLIS);
         List<Atom> data = StatsConfigUtils.getGaugeMetricDataList(statsManager, sConfigId);
-        unregisterStatsPuller(PULL_ATOM_TAG);
+        clearStatsPuller(PULL_ATOM_TAG);
         assertThat(data.size()).isEqualTo(1);
         TestAtoms.PullCallbackAtomWrapper atomWrapper = null;
         try {
@@ -135,14 +136,14 @@
         createAndAddConfigToStatsd(statsManager);
         sPullReturnValue = StatsManager.PULL_SKIP;
         // Add the puller.
-        registerStatsPuller(PULL_ATOM_TAG, sPullTimeoutNs, sCoolDownNs, sPullReturnValue,
+        setStatsPuller(PULL_ATOM_TAG, sPullTimeoutMillis, sCoolDownMillis, sPullReturnValue,
                 sPullLatencyMillis, sAtomsPerPull);
         Thread.sleep(SHORT_SLEEP_MILLIS);
         StatsLog.logStart(APP_BREADCRUMB_LABEL);
         // Let the current bucket finish.
         Thread.sleep(LONG_SLEEP_MILLIS);
         List<Atom> data = StatsConfigUtils.getGaugeMetricDataList(statsManager, sConfigId);
-        unregisterStatsPuller(PULL_ATOM_TAG);
+        clearStatsPuller(PULL_ATOM_TAG);
         assertThat(data.size()).isEqualTo(0);
     }
 
@@ -157,17 +158,17 @@
         // The puller will sleep for 1.5 sec.
         sPullLatencyMillis = 1_500;
         // 1 second timeout
-        sPullTimeoutNs = 1_000_000_000;
+        sPullTimeoutMillis = 1_000;
 
         // Add the puller.
-        registerStatsPuller(PULL_ATOM_TAG, sPullTimeoutNs, sCoolDownNs, sPullReturnValue,
+        setStatsPuller(PULL_ATOM_TAG, sPullTimeoutMillis, sCoolDownMillis, sPullReturnValue,
                 sPullLatencyMillis, sAtomsPerPull);
         Thread.sleep(SHORT_SLEEP_MILLIS);
         StatsLog.logStart(APP_BREADCRUMB_LABEL);
         // Let the current bucket finish and the pull timeout.
         Thread.sleep(sPullLatencyMillis * 2);
         List<Atom> data = StatsConfigUtils.getGaugeMetricDataList(statsManager, sConfigId);
-        unregisterStatsPuller(PULL_ATOM_TAG);
+        clearStatsPuller(PULL_ATOM_TAG);
         assertThat(data.size()).isEqualTo(0);
     }
 
@@ -181,9 +182,9 @@
         createAndAddConfigToStatsd(statsManager);
 
         // Set the cooldown to 10 seconds
-        sCoolDownNs = 10_000_000_000L;
+        sCoolDownMillis = 10_000L;
         // Add the puller.
-        registerStatsPuller(PULL_ATOM_TAG, sPullTimeoutNs, sCoolDownNs, sPullReturnValue,
+        setStatsPuller(PULL_ATOM_TAG, sPullTimeoutMillis, sCoolDownMillis, sPullReturnValue,
                 sPullLatencyMillis, sAtomsPerPull);
 
         Thread.sleep(SHORT_SLEEP_MILLIS);
@@ -192,7 +193,7 @@
         StatsLog.logStart(APP_BREADCRUMB_LABEL);
         Thread.sleep(LONG_SLEEP_MILLIS);
         List<Atom> data = StatsConfigUtils.getGaugeMetricDataList(statsManager, sConfigId);
-        unregisterStatsPuller(PULL_ATOM_TAG);
+        clearStatsPuller(PULL_ATOM_TAG);
         assertThat(data.size()).isEqualTo(2);
         for (int i = 0; i < data.size(); i++) {
             TestAtoms.PullCallbackAtomWrapper atomWrapper = null;
@@ -221,7 +222,7 @@
         createAndAddConfigToStatsd(statsManager);
         sAtomsPerPull = 1000;
         // Add the puller.
-        registerStatsPuller(PULL_ATOM_TAG, sPullTimeoutNs, sCoolDownNs, sPullReturnValue,
+        setStatsPuller(PULL_ATOM_TAG, sPullTimeoutMillis, sCoolDownMillis, sPullReturnValue,
                 sPullLatencyMillis, sAtomsPerPull);
 
         Thread.sleep(SHORT_SLEEP_MILLIS);
@@ -229,7 +230,7 @@
         // Let the current bucket finish.
         Thread.sleep(LONG_SLEEP_MILLIS);
         List<Atom> data = StatsConfigUtils.getGaugeMetricDataList(statsManager, sConfigId);
-        unregisterStatsPuller(PULL_ATOM_TAG);
+        clearStatsPuller(PULL_ATOM_TAG);
         assertThat(data.size()).isEqualTo(sAtomsPerPull);
 
         for (int i = 0; i < data.size(); i++) {
@@ -271,14 +272,17 @@
                         .setSamplingType(GaugeMetric.SamplingType.FIRST_N_SAMPLES)
                         .setMaxNumGaugeAtomsPerBucket(1000)
                 )
+                .addPullAtomPackages(PullAtomPackages.newBuilder()
+                        .setAtomId(PULL_ATOM_TAG)
+                        .addPackages(LibStatsPullTests.class.getPackage().getName()))
                 .build();
         statsManager.addConfig(sConfigId, config.toByteArray());
         assertThat(StatsConfigUtils.verifyValidConfigExists(statsManager, sConfigId)).isTrue();
     }
 
-    private native void registerStatsPuller(int atomTag, long timeoutNs, long coolDownNs,
+    private native void setStatsPuller(int atomTag, long timeoutMillis, long coolDownMillis,
             int pullReturnVal, long latencyMillis, int atomPerPull);
 
-    private native void unregisterStatsPuller(int atomTag);
+    private native void clearStatsPuller(int atomTag);
 }
 
diff --git a/api/current.txt b/api/current.txt
index 61b427c..785925e 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -9,7 +9,6 @@
     ctor public Manifest.permission();
     field public static final String ACCEPT_HANDOVER = "android.permission.ACCEPT_HANDOVER";
     field public static final String ACCESS_BACKGROUND_LOCATION = "android.permission.ACCESS_BACKGROUND_LOCATION";
-    field public static final String ACCESS_CALL_AUDIO = "android.permission.ACCESS_CALL_AUDIO";
     field public static final String ACCESS_CHECKIN_PROPERTIES = "android.permission.ACCESS_CHECKIN_PROPERTIES";
     field public static final String ACCESS_COARSE_LOCATION = "android.permission.ACCESS_COARSE_LOCATION";
     field public static final String ACCESS_FINE_LOCATION = "android.permission.ACCESS_FINE_LOCATION";
@@ -290,7 +289,6 @@
     field public static final int allowAudioPlaybackCapture = 16844289; // 0x1010601
     field public static final int allowBackup = 16843392; // 0x1010280
     field public static final int allowClearUserData = 16842757; // 0x1010005
-    field public static final int allowDontAutoRevokePermissions = 16844309; // 0x1010615
     field public static final int allowEmbedded = 16843765; // 0x10103f5
     field public static final int allowNativeHeapPointerTagging = 16844307; // 0x1010613
     field public static final int allowParallelSyncs = 16843570; // 0x1010332
@@ -328,6 +326,7 @@
     field public static final int autoLink = 16842928; // 0x10100b0
     field public static final int autoMirrored = 16843754; // 0x10103ea
     field public static final int autoRemoveFromRecents = 16843847; // 0x1010447
+    field public static final int autoRevokePermissions = 16844309; // 0x1010615
     field public static final int autoSizeMaxTextSize = 16844102; // 0x1010546
     field public static final int autoSizeMinTextSize = 16844088; // 0x1010538
     field public static final int autoSizePresetSizes = 16844087; // 0x1010537
@@ -573,7 +572,6 @@
     field public static final int elevation = 16843840; // 0x1010440
     field public static final int ellipsize = 16842923; // 0x10100ab
     field public static final int ems = 16843096; // 0x1010158
-    field public static final int enableGwpAsan = 16844312; // 0x1010618
     field public static final int enableVrMode = 16844069; // 0x1010525
     field public static final int enabled = 16842766; // 0x101000e
     field public static final int end = 16843996; // 0x10104dc
@@ -710,6 +708,7 @@
     field public static final int gravity = 16842927; // 0x10100af
     field public static final int gridViewStyle = 16842865; // 0x1010071
     field public static final int groupIndicator = 16843019; // 0x101010b
+    field public static final int gwpAsanMode = 16844312; // 0x1010618
     field public static final int hand_hour = 16843011; // 0x1010103
     field public static final int hand_minute = 16843012; // 0x1010104
     field public static final int handle = 16843354; // 0x101025a
@@ -1140,7 +1139,6 @@
     field public static final int reqKeyboardType = 16843304; // 0x1010228
     field public static final int reqNavigation = 16843306; // 0x101022a
     field public static final int reqTouchScreen = 16843303; // 0x1010227
-    field public static final int requestDontAutoRevokePermissions = 16844308; // 0x1010614
     field public static final int requestLegacyExternalStorage = 16844291; // 0x1010603
     field public static final int requireDeviceUnlock = 16843756; // 0x10103ec
     field public static final int required = 16843406; // 0x101028e
@@ -2879,7 +2877,11 @@
     method public void setGestureDetectionPassthroughRegion(int, @NonNull android.graphics.Region);
     method public final void setServiceInfo(android.accessibilityservice.AccessibilityServiceInfo);
     method public void setTouchExplorationPassthroughRegion(int, @NonNull android.graphics.Region);
-    method public boolean takeScreenshot(int, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.accessibilityservice.AccessibilityService.ScreenshotResult>);
+    method public void takeScreenshot(int, @NonNull java.util.concurrent.Executor, @NonNull android.accessibilityservice.AccessibilityService.TakeScreenshotCallback);
+    field public static final int ERROR_TAKE_SCREENSHOT_INTERNAL_ERROR = 1; // 0x1
+    field public static final int ERROR_TAKE_SCREENSHOT_INTERVAL_TIME_SHORT = 3; // 0x3
+    field public static final int ERROR_TAKE_SCREENSHOT_INVALID_DISPLAY = 4; // 0x4
+    field public static final int ERROR_TAKE_SCREENSHOT_NO_ACCESSIBILITY_ACCESS = 2; // 0x2
     field public static final int GESTURE_2_FINGER_DOUBLE_TAP = 20; // 0x14
     field public static final int GESTURE_2_FINGER_DOUBLE_TAP_AND_HOLD = 40; // 0x28
     field public static final int GESTURE_2_FINGER_SINGLE_TAP = 19; // 0x13
@@ -2980,6 +2982,11 @@
     method public void onShowModeChanged(@NonNull android.accessibilityservice.AccessibilityService.SoftKeyboardController, int);
   }
 
+  public static interface AccessibilityService.TakeScreenshotCallback {
+    method public void onFailure(int);
+    method public void onSuccess(@NonNull android.accessibilityservice.AccessibilityService.ScreenshotResult);
+  }
+
   public class AccessibilityServiceInfo implements android.os.Parcelable {
     ctor public AccessibilityServiceInfo();
     method public static String capabilityToString(int);
@@ -4049,6 +4056,7 @@
     method @RequiresPermission(android.Manifest.permission.REORDER_TASKS) public void moveTaskToFront(int, int);
     method @RequiresPermission(android.Manifest.permission.REORDER_TASKS) public void moveTaskToFront(int, int, android.os.Bundle);
     method @Deprecated public void restartPackage(String);
+    method public void setProcessStateSummary(@Nullable byte[]);
     method public static void setVrThread(int);
     method public void setWatchHeapLimit(long);
     field public static final String ACTION_REPORT_HEAP_LIMIT = "android.app.action.REPORT_HEAP_LIMIT";
@@ -4561,12 +4569,14 @@
     method public int getPackageUid();
     method public int getPid();
     method @NonNull public String getProcessName();
+    method @Nullable public byte[] getProcessStateSummary();
     method public long getPss();
     method public int getRealUid();
     method public int getReason();
     method public long getRss();
     method public int getStatus();
     method public long getTimestamp();
+    method @Nullable public java.io.InputStream getTraceInputStream() throws java.io.IOException;
     method @NonNull public android.os.UserHandle getUserHandle();
     method public void writeToParcel(@NonNull android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.app.ApplicationExitInfo> CREATOR;
@@ -5656,13 +5666,13 @@
   public static final class Notification.BubbleMetadata implements android.os.Parcelable {
     method public int describeContents();
     method public boolean getAutoExpandBubble();
-    method @Nullable public android.graphics.drawable.Icon getBubbleIcon();
-    method @Nullable public android.app.PendingIntent getBubbleIntent();
+    method @Deprecated @Nullable public android.graphics.drawable.Icon getBubbleIcon();
+    method @Deprecated @Nullable public android.app.PendingIntent getBubbleIntent();
     method @Nullable public android.app.PendingIntent getDeleteIntent();
     method @Dimension(unit=android.annotation.Dimension.DP) public int getDesiredHeight();
     method @DimenRes public int getDesiredHeightResId();
-    method @Deprecated @NonNull public android.graphics.drawable.Icon getIcon();
-    method @Deprecated @NonNull public android.app.PendingIntent getIntent();
+    method @Nullable public android.graphics.drawable.Icon getIcon();
+    method @Nullable public android.app.PendingIntent getIntent();
     method @Nullable public String getShortcutId();
     method public boolean isNotificationSuppressed();
     method public void writeToParcel(android.os.Parcel, int);
@@ -5670,16 +5680,18 @@
   }
 
   public static final class Notification.BubbleMetadata.Builder {
-    ctor public Notification.BubbleMetadata.Builder();
+    ctor @Deprecated public Notification.BubbleMetadata.Builder();
+    ctor public Notification.BubbleMetadata.Builder(@NonNull String);
+    ctor public Notification.BubbleMetadata.Builder(@NonNull android.app.PendingIntent, @NonNull android.graphics.drawable.Icon);
     method @NonNull public android.app.Notification.BubbleMetadata build();
-    method @NonNull public android.app.Notification.BubbleMetadata.Builder createIntentBubble(@NonNull android.app.PendingIntent, @NonNull android.graphics.drawable.Icon);
-    method @NonNull public android.app.Notification.BubbleMetadata.Builder createShortcutBubble(@NonNull String);
+    method @Deprecated @NonNull public android.app.Notification.BubbleMetadata.Builder createIntentBubble(@NonNull android.app.PendingIntent, @NonNull android.graphics.drawable.Icon);
+    method @Deprecated @NonNull public android.app.Notification.BubbleMetadata.Builder createShortcutBubble(@NonNull String);
     method @NonNull public android.app.Notification.BubbleMetadata.Builder setAutoExpandBubble(boolean);
     method @NonNull public android.app.Notification.BubbleMetadata.Builder setDeleteIntent(@Nullable android.app.PendingIntent);
     method @NonNull public android.app.Notification.BubbleMetadata.Builder setDesiredHeight(@Dimension(unit=android.annotation.Dimension.DP) int);
     method @NonNull public android.app.Notification.BubbleMetadata.Builder setDesiredHeightResId(@DimenRes int);
-    method @Deprecated @NonNull public android.app.Notification.BubbleMetadata.Builder setIcon(@NonNull android.graphics.drawable.Icon);
-    method @Deprecated @NonNull public android.app.Notification.BubbleMetadata.Builder setIntent(@NonNull android.app.PendingIntent);
+    method @NonNull public android.app.Notification.BubbleMetadata.Builder setIcon(@NonNull android.graphics.drawable.Icon);
+    method @NonNull public android.app.Notification.BubbleMetadata.Builder setIntent(@NonNull android.app.PendingIntent);
     method @NonNull public android.app.Notification.BubbleMetadata.Builder setSuppressNotification(boolean);
   }
 
@@ -6829,7 +6841,7 @@
     ctor public DevicePolicyKeyguardService();
     method @Nullable public void dismiss();
     method @Nullable public final android.os.IBinder onBind(@Nullable android.content.Intent);
-    method @Nullable public android.view.SurfaceControlViewHost.SurfacePackage onSurfaceReady(@Nullable android.os.IBinder);
+    method @Nullable public android.view.SurfaceControlViewHost.SurfacePackage onCreateKeyguardSurface(@NonNull android.os.IBinder);
   }
 
   public class DevicePolicyManager {
@@ -7590,6 +7602,8 @@
     method public void acquireLease(@NonNull android.app.blob.BlobHandle, @IdRes int) throws java.io.IOException;
     method public void acquireLease(@NonNull android.app.blob.BlobHandle, @NonNull CharSequence) throws java.io.IOException;
     method @IntRange(from=1) public long createSession(@NonNull android.app.blob.BlobHandle) throws java.io.IOException;
+    method @NonNull public java.util.List<android.app.blob.BlobHandle> getLeasedBlobs() throws java.io.IOException;
+    method @IntRange(from=0) public long getRemainingLeaseQuotaBytes();
     method @NonNull public android.os.ParcelFileDescriptor openBlob(@NonNull android.app.blob.BlobHandle) throws java.io.IOException;
     method @NonNull public android.app.blob.BlobStoreManager.Session openSession(@IntRange(from=1) long) throws java.io.IOException;
     method public void releaseLease(@NonNull android.app.blob.BlobHandle) throws java.io.IOException;
@@ -10202,7 +10216,6 @@
     field public static final String MEDIA_ROUTER_SERVICE = "media_router";
     field public static final String MEDIA_SESSION_SERVICE = "media_session";
     field public static final String MIDI_SERVICE = "midi";
-    field public static final String MMS_SERVICE = "mms";
     field public static final int MODE_APPEND = 32768; // 0x8000
     field public static final int MODE_ENABLE_WRITE_AHEAD_LOGGING = 8; // 0x8
     field @Deprecated public static final int MODE_MULTI_PROCESS = 4; // 0x4
@@ -11441,7 +11454,7 @@
     method public int describeContents();
     method public void dump(android.util.Printer, String);
     method public static CharSequence getCategoryTitle(android.content.Context, int);
-    method @Nullable public Boolean isGwpAsanEnabled();
+    method public int getGwpAsanMode();
     method public boolean isProfileableByShell();
     method public boolean isResourceOverlay();
     method public boolean isVirtualPreload();
@@ -11488,6 +11501,9 @@
     field public static final int FLAG_UPDATED_SYSTEM_APP = 128; // 0x80
     field public static final int FLAG_USES_CLEARTEXT_TRAFFIC = 134217728; // 0x8000000
     field public static final int FLAG_VM_SAFE_MODE = 16384; // 0x4000
+    field public static final int GWP_ASAN_ALWAYS = 1; // 0x1
+    field public static final int GWP_ASAN_DEFAULT = -1; // 0xffffffff
+    field public static final int GWP_ASAN_NEVER = 0; // 0x0
     field public String appComponentFactory;
     field public String backupAgentName;
     field public int category;
@@ -11570,7 +11586,7 @@
   public class CrossProfileApps {
     method public boolean canInteractAcrossProfiles();
     method public boolean canRequestInteractAcrossProfiles();
-    method @Nullable public android.content.Intent createRequestInteractAcrossProfilesIntent();
+    method @NonNull public android.content.Intent createRequestInteractAcrossProfilesIntent();
     method @NonNull public android.graphics.drawable.Drawable getProfileSwitchingIconDrawable(@NonNull android.os.UserHandle);
     method @NonNull public CharSequence getProfileSwitchingLabel(@NonNull android.os.UserHandle);
     method @NonNull public java.util.List<android.os.UserHandle> getTargetUserProfiles();
@@ -11954,7 +11970,6 @@
     method @CheckResult public abstract int checkSignatures(@NonNull String, @NonNull String);
     method @CheckResult public abstract int checkSignatures(int, int);
     method public abstract void clearInstantAppCookie();
-    method public void clearMimeGroup(@NonNull String);
     method @Deprecated public abstract void clearPackagePreferredActivities(@NonNull String);
     method public abstract String[] currentToCanonicalPackageNames(@NonNull String[]);
     method public abstract void extendVerificationTimeout(int, int, long);
@@ -11990,7 +12005,7 @@
     method @NonNull public abstract android.content.pm.InstrumentationInfo getInstrumentationInfo(@NonNull android.content.ComponentName, int) throws android.content.pm.PackageManager.NameNotFoundException;
     method @Nullable public abstract android.content.Intent getLaunchIntentForPackage(@NonNull String);
     method @Nullable public abstract android.content.Intent getLeanbackLaunchIntentForPackage(@NonNull String);
-    method @Nullable public java.util.Set<java.lang.String> getMimeGroup(@NonNull String);
+    method @NonNull public java.util.Set<java.lang.String> getMimeGroup(@NonNull String);
     method @NonNull public android.content.pm.ModuleInfo getModuleInfo(@NonNull String, int) throws android.content.pm.PackageManager.NameNotFoundException;
     method @Nullable public abstract String getNameForUid(int);
     method @Nullable public android.content.pm.PackageInfo getPackageArchiveInfo(@NonNull String, int);
@@ -12856,14 +12871,7 @@
 package android.content.res.loader {
 
   public interface AssetsProvider {
-    method @Nullable public default java.io.InputStream loadAsset(@NonNull String, int) throws java.io.IOException;
-    method @Nullable public default android.os.ParcelFileDescriptor loadAssetParcelFd(@NonNull String) throws java.io.IOException;
-  }
-
-  public class DirectoryAssetsProvider implements android.content.res.loader.AssetsProvider {
-    ctor public DirectoryAssetsProvider(@NonNull java.io.File);
-    method @Nullable public java.io.File findFile(@NonNull String);
-    method @NonNull public java.io.File getDirectory();
+    method @Nullable public default android.content.res.AssetFileDescriptor loadAssetFd(@NonNull String, int);
   }
 
   public class ResourcesLoader {
@@ -12878,14 +12886,11 @@
   public class ResourcesProvider implements java.lang.AutoCloseable java.io.Closeable {
     method public void close();
     method @NonNull public static android.content.res.loader.ResourcesProvider empty(@NonNull android.content.res.loader.AssetsProvider);
-    method @Nullable public android.content.res.loader.AssetsProvider getAssetsProvider();
     method @NonNull public static android.content.res.loader.ResourcesProvider loadFromApk(@NonNull android.os.ParcelFileDescriptor) throws java.io.IOException;
     method @NonNull public static android.content.res.loader.ResourcesProvider loadFromApk(@NonNull android.os.ParcelFileDescriptor, @Nullable android.content.res.loader.AssetsProvider) throws java.io.IOException;
-    method @NonNull public static android.content.res.loader.ResourcesProvider loadFromApk(@NonNull android.os.SharedMemory) throws java.io.IOException;
-    method @NonNull public static android.content.res.loader.ResourcesProvider loadFromApk(@NonNull android.os.SharedMemory, @Nullable android.content.res.loader.AssetsProvider) throws java.io.IOException;
+    method @NonNull public static android.content.res.loader.ResourcesProvider loadFromDirectory(@NonNull String, @Nullable android.content.res.loader.AssetsProvider) throws java.io.IOException;
     method @NonNull public static android.content.res.loader.ResourcesProvider loadFromSplit(@NonNull android.content.Context, @NonNull String) throws java.io.IOException;
     method @NonNull public static android.content.res.loader.ResourcesProvider loadFromTable(@NonNull android.os.ParcelFileDescriptor, @Nullable android.content.res.loader.AssetsProvider) throws java.io.IOException;
-    method @NonNull public static android.content.res.loader.ResourcesProvider loadFromTable(@NonNull android.os.SharedMemory, @Nullable android.content.res.loader.AssetsProvider) throws java.io.IOException;
   }
 
 }
@@ -16803,6 +16808,7 @@
     field public static final long USAGE_PROTECTED_CONTENT = 16384L; // 0x4000L
     field public static final long USAGE_SENSOR_DIRECT_DATA = 8388608L; // 0x800000L
     field public static final long USAGE_VIDEO_ENCODE = 65536L; // 0x10000L
+    field public static final int YCBCR_420_888 = 35; // 0x23
   }
 
   public final class Sensor {
@@ -17223,8 +17229,8 @@
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<android.util.Rational> CONTROL_AE_COMPENSATION_STEP;
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Boolean> CONTROL_AE_LOCK_AVAILABLE;
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AF_AVAILABLE_MODES;
-    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.Capability[]> CONTROL_AVAILABLE_BOKEH_CAPABILITIES;
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AVAILABLE_EFFECTS;
+    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.Capability[]> CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_CAPABILITIES;
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AVAILABLE_MODES;
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AVAILABLE_SCENE_MODES;
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES;
@@ -17268,7 +17274,6 @@
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> REQUEST_PARTIAL_RESULT_COUNT;
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Byte> REQUEST_PIPELINE_MAX_DEPTH;
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Float> SCALER_AVAILABLE_MAX_DIGITAL_ZOOM;
-    field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> SCALER_AVAILABLE_ROTATE_AND_CROP_MODES;
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> SCALER_CROPPING_TYPE;
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.MandatoryStreamCombination[]> SCALER_MANDATORY_CONCURRENT_STREAM_COMBINATIONS;
     field @NonNull public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.MandatoryStreamCombination[]> SCALER_MANDATORY_STREAM_COMBINATIONS;
@@ -17446,9 +17451,6 @@
     field public static final int CONTROL_AWB_STATE_INACTIVE = 0; // 0x0
     field public static final int CONTROL_AWB_STATE_LOCKED = 3; // 0x3
     field public static final int CONTROL_AWB_STATE_SEARCHING = 1; // 0x1
-    field public static final int CONTROL_BOKEH_MODE_CONTINUOUS = 2; // 0x2
-    field public static final int CONTROL_BOKEH_MODE_OFF = 0; // 0x0
-    field public static final int CONTROL_BOKEH_MODE_STILL_CAPTURE = 1; // 0x1
     field public static final int CONTROL_CAPTURE_INTENT_CUSTOM = 0; // 0x0
     field public static final int CONTROL_CAPTURE_INTENT_MANUAL = 6; // 0x6
     field public static final int CONTROL_CAPTURE_INTENT_MOTION_TRACKING = 7; // 0x7
@@ -17466,9 +17468,13 @@
     field public static final int CONTROL_EFFECT_MODE_SEPIA = 4; // 0x4
     field public static final int CONTROL_EFFECT_MODE_SOLARIZE = 3; // 0x3
     field public static final int CONTROL_EFFECT_MODE_WHITEBOARD = 6; // 0x6
+    field public static final int CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS = 2; // 0x2
+    field public static final int CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE = 1; // 0x1
+    field public static final int CONTROL_EXTENDED_SCENE_MODE_DISABLED = 0; // 0x0
     field public static final int CONTROL_MODE_AUTO = 1; // 0x1
     field public static final int CONTROL_MODE_OFF = 0; // 0x0
     field public static final int CONTROL_MODE_OFF_KEEP_STATE = 3; // 0x3
+    field public static final int CONTROL_MODE_USE_EXTENDED_SCENE_MODE = 4; // 0x4
     field public static final int CONTROL_MODE_USE_SCENE_MODE = 2; // 0x2
     field public static final int CONTROL_SCENE_MODE_ACTION = 2; // 0x2
     field public static final int CONTROL_SCENE_MODE_BARCODE = 16; // 0x10
@@ -17552,11 +17558,6 @@
     field public static final int REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING = 7; // 0x7
     field public static final int SCALER_CROPPING_TYPE_CENTER_ONLY = 0; // 0x0
     field public static final int SCALER_CROPPING_TYPE_FREEFORM = 1; // 0x1
-    field public static final int SCALER_ROTATE_AND_CROP_180 = 2; // 0x2
-    field public static final int SCALER_ROTATE_AND_CROP_270 = 3; // 0x3
-    field public static final int SCALER_ROTATE_AND_CROP_90 = 1; // 0x1
-    field public static final int SCALER_ROTATE_AND_CROP_AUTO = 4; // 0x4
-    field public static final int SCALER_ROTATE_AND_CROP_NONE = 0; // 0x0
     field public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR = 3; // 0x3
     field public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG = 2; // 0x2
     field public static final int SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG = 1; // 0x1
@@ -17665,10 +17666,10 @@
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Boolean> CONTROL_AWB_LOCK;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_AWB_MODE;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<android.hardware.camera2.params.MeteringRectangle[]> CONTROL_AWB_REGIONS;
-    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_BOKEH_MODE;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_CAPTURE_INTENT;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_EFFECT_MODE;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Boolean> CONTROL_ENABLE_ZSL;
+    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_EXTENDED_SCENE_MODE;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_MODE;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_POST_RAW_SENSITIVITY_BOOST;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_SCENE_MODE;
@@ -17692,7 +17693,6 @@
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> NOISE_REDUCTION_MODE;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Float> REPROCESS_EFFECTIVE_EXPOSURE_FACTOR;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<android.graphics.Rect> SCALER_CROP_REGION;
-    field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> SCALER_ROTATE_AND_CROP;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Long> SENSOR_EXPOSURE_TIME;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Long> SENSOR_FRAME_DURATION;
     field @NonNull public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> SENSOR_SENSITIVITY;
@@ -17753,10 +17753,10 @@
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AWB_MODE;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<android.hardware.camera2.params.MeteringRectangle[]> CONTROL_AWB_REGIONS;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AWB_STATE;
-    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_BOKEH_MODE;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_CAPTURE_INTENT;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_EFFECT_MODE;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Boolean> CONTROL_ENABLE_ZSL;
+    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_EXTENDED_SCENE_MODE;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_MODE;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_POST_RAW_SENSITIVITY_BOOST;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_SCENE_MODE;
@@ -17789,7 +17789,6 @@
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> REPROCESS_EFFECTIVE_EXPOSURE_FACTOR;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Byte> REQUEST_PIPELINE_DEPTH;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<android.graphics.Rect> SCALER_CROP_REGION;
-    field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> SCALER_ROTATE_AND_CROP;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<float[]> SENSOR_DYNAMIC_BLACK_LEVEL;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> SENSOR_DYNAMIC_WHITE_LEVEL;
     field @NonNull public static final android.hardware.camera2.CaptureResult.Key<java.lang.Long> SENSOR_EXPOSURE_TIME;
@@ -24357,7 +24356,7 @@
   }
 
   public final class AudioMetadata {
-    method @NonNull public static android.media.AudioMetadata.Map createMap();
+    method @NonNull public static android.media.AudioMetadataMap createMap();
   }
 
   public static class AudioMetadata.Format {
@@ -24375,16 +24374,16 @@
     method @NonNull public Class<T> getValueClass();
   }
 
-  public static interface AudioMetadata.Map extends android.media.AudioMetadata.ReadMap {
+  public interface AudioMetadataMap extends android.media.AudioMetadataReadMap {
     method @Nullable public <T> T remove(@NonNull android.media.AudioMetadata.Key<T>);
     method @Nullable public <T> T set(@NonNull android.media.AudioMetadata.Key<T>, @NonNull T);
   }
 
-  public static interface AudioMetadata.ReadMap {
+  public interface AudioMetadataReadMap {
     method public <T> boolean containsKey(@NonNull android.media.AudioMetadata.Key<T>);
-    method @NonNull public android.media.AudioMetadata.Map dup();
+    method @NonNull public android.media.AudioMetadataMap dup();
     method @Nullable public <T> T get(@NonNull android.media.AudioMetadata.Key<T>);
-    method public int size();
+    method @IntRange(from=0) public int size();
   }
 
   public final class AudioPlaybackCaptureConfiguration {
@@ -24656,7 +24655,6 @@
     field public static final int ENCAPSULATION_METADATA_TYPE_DVB_AD_DESCRIPTOR = 2; // 0x2
     field public static final int ENCAPSULATION_METADATA_TYPE_FRAMEWORK_TUNER = 1; // 0x1
     field public static final int ENCAPSULATION_MODE_ELEMENTARY_STREAM = 1; // 0x1
-    field public static final int ENCAPSULATION_MODE_HANDLE = 2; // 0x2
     field public static final int ENCAPSULATION_MODE_NONE = 0; // 0x0
     field public static final int ERROR = -1; // 0xffffffff
     field public static final int ERROR_BAD_VALUE = -2; // 0xfffffffe
@@ -24689,7 +24687,6 @@
     method @NonNull public android.media.AudioTrack.Builder setPerformanceMode(int);
     method @NonNull public android.media.AudioTrack.Builder setSessionId(@IntRange(from=1) int) throws java.lang.IllegalArgumentException;
     method @NonNull public android.media.AudioTrack.Builder setTransferMode(int) throws java.lang.IllegalArgumentException;
-    method @NonNull public android.media.AudioTrack.Builder setTunerConfiguration(@NonNull android.media.AudioTrack.TunerConfiguration);
   }
 
   public static final class AudioTrack.MetricsConstants {
@@ -24701,7 +24698,7 @@
   }
 
   public static interface AudioTrack.OnCodecFormatChangedListener {
-    method public void onCodecFormatChanged(@NonNull android.media.AudioTrack, @Nullable android.media.AudioMetadata.ReadMap);
+    method public void onCodecFormatChanged(@NonNull android.media.AudioTrack, @Nullable android.media.AudioMetadataReadMap);
   }
 
   public static interface AudioTrack.OnPlaybackPositionUpdateListener {
@@ -24721,18 +24718,6 @@
     method public void onTearDown(@NonNull android.media.AudioTrack);
   }
 
-  public static class AudioTrack.TunerConfiguration {
-    method public int getContentId();
-    method public int getSyncId();
-  }
-
-  public static class AudioTrack.TunerConfiguration.Builder {
-    ctor public AudioTrack.TunerConfiguration.Builder();
-    method @NonNull public android.media.AudioTrack.TunerConfiguration build();
-    method @NonNull public android.media.AudioTrack.TunerConfiguration.Builder setContentId(@IntRange(from=1) int);
-    method @NonNull public android.media.AudioTrack.TunerConfiguration.Builder setSyncId(@IntRange(from=1) int);
-  }
-
   public class CamcorderProfile {
     method public static android.media.CamcorderProfile get(int);
     method public static android.media.CamcorderProfile get(int, int);
@@ -25211,6 +25196,7 @@
     method @NonNull public android.media.MediaCodec.OutputFrame getOutputFrame(int);
     method @Nullable public android.media.Image getOutputImage(int);
     method @NonNull public android.media.MediaCodec.QueueRequest getQueueRequest(int);
+    method @Nullable public static android.media.Image mapHardwareBuffer(@NonNull android.hardware.HardwareBuffer);
     method public void queueInputBuffer(int, int, int, long, int) throws android.media.MediaCodec.CryptoException;
     method public void queueSecureInputBuffer(int, int, @NonNull android.media.MediaCodec.CryptoInfo, long, int) throws android.media.MediaCodec.CryptoException;
     method public void release();
@@ -25311,17 +25297,7 @@
     method public void set(int, int);
   }
 
-  public static final class MediaCodec.GraphicBlock {
-    method protected void finalize();
-    method public static boolean isCodecCopyFreeCompatible(@NonNull String[]);
-    method public boolean isMappable();
-    method @NonNull public android.media.Image map();
-    method @NonNull public static android.media.MediaCodec.GraphicBlock obtain(int, int, int, long, @NonNull String[]);
-    method public void recycle();
-  }
-
   public class MediaCodec.IncompatibleWithBlockModelException extends java.lang.RuntimeException {
-    ctor public MediaCodec.IncompatibleWithBlockModelException();
   }
 
   public static final class MediaCodec.LinearBlock {
@@ -25351,22 +25327,23 @@
   }
 
   public static final class MediaCodec.OutputFrame {
+    method @NonNull public java.util.Set<java.lang.String> getChangedKeys();
     method public int getFlags();
     method @NonNull public android.media.MediaFormat getFormat();
-    method @Nullable public android.media.MediaCodec.GraphicBlock getGraphicBlock();
+    method @Nullable public android.hardware.HardwareBuffer getHardwareBuffer();
     method @Nullable public android.media.MediaCodec.LinearBlock getLinearBlock();
     method public long getPresentationTimeUs();
-    method public void retrieveChangedKeys(@NonNull java.util.Set<java.lang.String>);
   }
 
   public final class MediaCodec.QueueRequest {
     method public void queue();
     method @NonNull public android.media.MediaCodec.QueueRequest setByteBufferParameter(@NonNull String, @NonNull java.nio.ByteBuffer);
+    method @NonNull public android.media.MediaCodec.QueueRequest setEncryptedLinearBlock(@NonNull android.media.MediaCodec.LinearBlock, int, int, @NonNull android.media.MediaCodec.CryptoInfo);
     method @NonNull public android.media.MediaCodec.QueueRequest setFlags(int);
     method @NonNull public android.media.MediaCodec.QueueRequest setFloatParameter(@NonNull String, float);
-    method @NonNull public android.media.MediaCodec.QueueRequest setGraphicBlock(@NonNull android.media.MediaCodec.GraphicBlock);
+    method @NonNull public android.media.MediaCodec.QueueRequest setHardwareBuffer(@NonNull android.hardware.HardwareBuffer);
     method @NonNull public android.media.MediaCodec.QueueRequest setIntegerParameter(@NonNull String, int);
-    method @NonNull public android.media.MediaCodec.QueueRequest setLinearBlock(@NonNull android.media.MediaCodec.LinearBlock, int, int, @Nullable android.media.MediaCodec.CryptoInfo);
+    method @NonNull public android.media.MediaCodec.QueueRequest setLinearBlock(@NonNull android.media.MediaCodec.LinearBlock, int, int);
     method @NonNull public android.media.MediaCodec.QueueRequest setLongParameter(@NonNull String, long);
     method @NonNull public android.media.MediaCodec.QueueRequest setPresentationTimeUs(long);
     method @NonNull public android.media.MediaCodec.QueueRequest setStringParameter(@NonNull String, @NonNull String);
@@ -26422,7 +26399,7 @@
     method public boolean advance(@NonNull android.media.MediaParser.SeekableInputReader) throws java.io.IOException;
     method @NonNull public static android.media.MediaParser create(@NonNull android.media.MediaParser.OutputConsumer, @NonNull java.lang.String...);
     method @NonNull public static android.media.MediaParser createByName(@NonNull String, @NonNull android.media.MediaParser.OutputConsumer);
-    method @Nullable public String getParserName();
+    method @NonNull public String getParserName();
     method @NonNull public static java.util.List<java.lang.String> getParserNames(@NonNull android.media.MediaFormat);
     method public void release();
     method public void seek(@NonNull android.media.MediaParser.SeekPoint);
@@ -26445,6 +26422,21 @@
     field public static final String PARAMETER_TS_IGNORE_AVC_STREAM = "android.media.mediaparser.ts.ignoreAvcStream";
     field public static final String PARAMETER_TS_IGNORE_SPLICE_INFO_STREAM = "android.media.mediaparser.ts.ignoreSpliceInfoStream";
     field public static final String PARAMETER_TS_MODE = "android.media.mediaparser.ts.mode";
+    field public static final String PARSER_NAME_AC3 = "android.media.mediaparser.Ac3Parser";
+    field public static final String PARSER_NAME_AC4 = "android.media.mediaparser.Ac4Parser";
+    field public static final String PARSER_NAME_ADTS = "android.media.mediaparser.AdtsParser";
+    field public static final String PARSER_NAME_AMR = "android.media.mediaparser.AmrParser";
+    field public static final String PARSER_NAME_FLAC = "android.media.mediaparser.FlacParser";
+    field public static final String PARSER_NAME_FLV = "android.media.mediaparser.FlvParser";
+    field public static final String PARSER_NAME_FMP4 = "android.media.mediaparser.FragmentedMp4Parser";
+    field public static final String PARSER_NAME_MATROSKA = "android.media.mediaparser.MatroskaParser";
+    field public static final String PARSER_NAME_MP3 = "android.media.mediaparser.Mp3Parser";
+    field public static final String PARSER_NAME_MP4 = "android.media.mediaparser.Mp4Parser";
+    field public static final String PARSER_NAME_OGG = "android.media.mediaparser.OggParser";
+    field public static final String PARSER_NAME_PS = "android.media.mediaparser.PsParser";
+    field public static final String PARSER_NAME_TS = "android.media.mediaparser.TsParser";
+    field public static final String PARSER_NAME_UNKNOWN = "android.media.mediaparser.UNKNOWN";
+    field public static final String PARSER_NAME_WAV = "android.media.mediaparser.WavParser";
   }
 
   public static interface MediaParser.InputReader {
@@ -26880,9 +26872,11 @@
     field public static final int CONNECTION_STATE_CONNECTING = 1; // 0x1
     field public static final int CONNECTION_STATE_DISCONNECTED = 0; // 0x0
     field @NonNull public static final android.os.Parcelable.Creator<android.media.MediaRoute2Info> CREATOR;
-    field public static final String FEATURE_LIVE_AUDIO = "android.media.intent.category.LIVE_AUDIO";
-    field public static final String FEATURE_LIVE_VIDEO = "android.media.intent.category.LIVE_VIDEO";
-    field public static final String FEATURE_REMOTE_PLAYBACK = "android.media.intent.category.REMOTE_PLAYBACK";
+    field public static final String FEATURE_LIVE_AUDIO = "android.media.route.feature.LIVE_AUDIO";
+    field public static final String FEATURE_LIVE_VIDEO = "android.media.route.feature.LIVE_VIDEO";
+    field public static final String FEATURE_REMOTE_AUDIO_PLAYBACK = "android.media.route.feature.REMOTE_AUDIO_PLAYBACK";
+    field public static final String FEATURE_REMOTE_PLAYBACK = "android.media.route.feature.REMOTE_PLAYBACK";
+    field public static final String FEATURE_REMOTE_VIDEO_PLAYBACK = "android.media.route.feature.REMOTE_VIDEO_PLAYBACK";
     field public static final int PLAYBACK_VOLUME_FIXED = 0; // 0x0
     field public static final int PLAYBACK_VOLUME_VARIABLE = 1; // 0x1
   }
@@ -27104,9 +27098,9 @@
 
   public abstract static class MediaRouter2.TransferCallback {
     ctor public MediaRouter2.TransferCallback();
-    method public void onStopped(@NonNull android.media.MediaRouter2.RoutingController);
-    method public void onTransferFailed(@NonNull android.media.MediaRoute2Info);
-    method public void onTransferred(@NonNull android.media.MediaRouter2.RoutingController, @NonNull android.media.MediaRouter2.RoutingController);
+    method public void onStop(@NonNull android.media.MediaRouter2.RoutingController);
+    method public void onTransfer(@NonNull android.media.MediaRouter2.RoutingController, @NonNull android.media.MediaRouter2.RoutingController);
+    method public void onTransferFailure(@NonNull android.media.MediaRoute2Info);
   }
 
   public class MediaScannerConnection implements android.content.ServiceConnection {
@@ -30258,9 +30252,6 @@
   public final class NetworkCapabilities implements android.os.Parcelable {
     ctor public NetworkCapabilities();
     ctor public NetworkCapabilities(android.net.NetworkCapabilities);
-    method @NonNull public android.net.NetworkCapabilities addCapability(int);
-    method @NonNull public android.net.NetworkCapabilities addTransportType(int);
-    method public void clearAll();
     method public int describeContents();
     method public int getLinkDownstreamBandwidthKbps();
     method public int getLinkUpstreamBandwidthKbps();
@@ -30270,13 +30261,6 @@
     method @Nullable public android.net.TransportInfo getTransportInfo();
     method public boolean hasCapability(int);
     method public boolean hasTransport(int);
-    method @NonNull public android.net.NetworkCapabilities removeCapability(int);
-    method @NonNull public android.net.NetworkCapabilities setCapability(int, boolean);
-    method @NonNull public android.net.NetworkCapabilities setLinkDownstreamBandwidthKbps(int);
-    method @NonNull public android.net.NetworkCapabilities setLinkUpstreamBandwidthKbps(int);
-    method @NonNull public android.net.NetworkCapabilities setNetworkSpecifier(@NonNull android.net.NetworkSpecifier);
-    method @NonNull public android.net.NetworkCapabilities setOwnerUid(int);
-    method @NonNull public android.net.NetworkCapabilities setSignalStrength(int);
     method public void writeToParcel(android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkCapabilities> CREATOR;
     field public static final int NET_CAPABILITY_CAPTIVE_PORTAL = 17; // 0x11
@@ -30359,6 +30343,7 @@
   }
 
   public class NetworkRequest implements android.os.Parcelable {
+    method public boolean canBeSatisfiedBy(@Nullable android.net.NetworkCapabilities);
     method public int describeContents();
     method @Nullable public android.net.NetworkSpecifier getNetworkSpecifier();
     method public boolean hasCapability(int);
@@ -31116,7 +31101,7 @@
     field public static final int EASY_CONNECT_EVENT_FAILURE_TIMEOUT = -6; // 0xfffffffa
   }
 
-  public class ScanResult implements android.os.Parcelable {
+  public final class ScanResult implements android.os.Parcelable {
     ctor public ScanResult(@NonNull android.net.wifi.ScanResult);
     ctor public ScanResult();
     method public int describeContents();
@@ -36334,6 +36319,11 @@
     method public android.os.IBinder asBinder();
   }
 
+  public class LimitExceededException extends java.lang.IllegalStateException {
+    ctor public LimitExceededException();
+    ctor public LimitExceededException(@NonNull String);
+  }
+
   public final class LocaleList implements android.os.Parcelable {
     ctor public LocaleList(@NonNull java.util.Locale...);
     method public int describeContents();
@@ -37156,11 +37146,10 @@
     field public static final int EFFECT_TICK = 2; // 0x2
   }
 
-  public static class VibrationEffect.Composition {
-    ctor public VibrationEffect.Composition();
-    method @Nullable public android.os.VibrationEffect.Composition addPrimitive(int);
-    method @Nullable public android.os.VibrationEffect.Composition addPrimitive(int, @FloatRange(from=0.0f, to=1.0f) float);
-    method @Nullable public android.os.VibrationEffect.Composition addPrimitive(int, @FloatRange(from=0.0f, to=1.0f) float, @IntRange(from=0) int);
+  public static final class VibrationEffect.Composition {
+    method @NonNull public android.os.VibrationEffect.Composition addPrimitive(int);
+    method @NonNull public android.os.VibrationEffect.Composition addPrimitive(int, @FloatRange(from=0.0f, to=1.0f) float);
+    method @NonNull public android.os.VibrationEffect.Composition addPrimitive(int, @FloatRange(from=0.0f, to=1.0f) float, @IntRange(from=0) int);
     method @NonNull public android.os.VibrationEffect compose();
     field public static final int PRIMITIVE_CLICK = 1; // 0x1
     field public static final int PRIMITIVE_QUICK_FALL = 6; // 0x6
@@ -37170,9 +37159,9 @@
   }
 
   public abstract class Vibrator {
-    method @Nullable public Boolean areAllEffectsSupported(@NonNull int...);
-    method public boolean areAllPrimitivesSupported(@NonNull int...);
-    method @Nullable public boolean[] areEffectsSupported(@NonNull int...);
+    method public final int areAllEffectsSupported(@NonNull int...);
+    method public final boolean areAllPrimitivesSupported(@NonNull int...);
+    method @NonNull public int[] areEffectsSupported(@NonNull int...);
     method @NonNull public boolean[] arePrimitivesSupported(@NonNull int...);
     method @RequiresPermission(android.Manifest.permission.VIBRATE) public abstract void cancel();
     method public abstract boolean hasAmplitudeControl();
@@ -37183,6 +37172,9 @@
     method @Deprecated @RequiresPermission(android.Manifest.permission.VIBRATE) public void vibrate(long[], int, android.media.AudioAttributes);
     method @RequiresPermission(android.Manifest.permission.VIBRATE) public void vibrate(android.os.VibrationEffect);
     method @RequiresPermission(android.Manifest.permission.VIBRATE) public void vibrate(android.os.VibrationEffect, android.media.AudioAttributes);
+    field public static final int VIBRATION_EFFECT_SUPPORT_NO = 2; // 0x2
+    field public static final int VIBRATION_EFFECT_SUPPORT_UNKNOWN = 0; // 0x0
+    field public static final int VIBRATION_EFFECT_SUPPORT_YES = 1; // 0x1
   }
 
   public class WorkSource implements android.os.Parcelable {
@@ -43121,7 +43113,6 @@
   public static final class FillResponse.Builder {
     ctor public FillResponse.Builder();
     method @NonNull public android.service.autofill.FillResponse.Builder addDataset(@Nullable android.service.autofill.Dataset);
-    method @NonNull public android.service.autofill.FillResponse.Builder addInlineAction(@NonNull android.service.autofill.InlineAction);
     method @NonNull public android.service.autofill.FillResponse build();
     method @NonNull public android.service.autofill.FillResponse.Builder disableAutofill(long);
     method @NonNull public android.service.autofill.FillResponse.Builder setAuthentication(@NonNull android.view.autofill.AutofillId[], @Nullable android.content.IntentSender, @Nullable android.widget.RemoteViews);
@@ -43151,15 +43142,6 @@
     method public android.service.autofill.ImageTransformation build();
   }
 
-  public final class InlineAction implements android.os.Parcelable {
-    ctor public InlineAction(@NonNull android.service.autofill.InlinePresentation, @NonNull android.content.IntentSender);
-    method public int describeContents();
-    method @NonNull public android.content.IntentSender getAction();
-    method @NonNull public android.service.autofill.InlinePresentation getInlinePresentation();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.service.autofill.InlineAction> CREATOR;
-  }
-
   public final class InlinePresentation implements android.os.Parcelable {
     ctor public InlinePresentation(@NonNull android.app.slice.Slice, @NonNull android.view.inline.InlinePresentationSpec, boolean);
     method public int describeContents();
@@ -45943,13 +45925,9 @@
     method public void onConference(android.telecom.Connection, android.telecom.Connection);
     method public void onConnectionServiceFocusGained();
     method public void onConnectionServiceFocusLost();
-    method @Nullable public android.telecom.Conference onCreateIncomingConference(@Nullable android.telecom.PhoneAccountHandle, @Nullable android.telecom.ConnectionRequest);
-    method public void onCreateIncomingConferenceFailed(@Nullable android.telecom.PhoneAccountHandle, @Nullable android.telecom.ConnectionRequest);
     method public android.telecom.Connection onCreateIncomingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
     method public void onCreateIncomingConnectionFailed(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
     method public android.telecom.Connection onCreateIncomingHandoverConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
-    method @Nullable public android.telecom.Conference onCreateOutgoingConference(@Nullable android.telecom.PhoneAccountHandle, @Nullable android.telecom.ConnectionRequest);
-    method public void onCreateOutgoingConferenceFailed(@Nullable android.telecom.PhoneAccountHandle, @Nullable android.telecom.ConnectionRequest);
     method public android.telecom.Connection onCreateOutgoingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
     method public void onCreateOutgoingConnectionFailed(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
     method public android.telecom.Connection onCreateOutgoingHandoverConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
@@ -46439,14 +46417,26 @@
     field public static final int BAND_46 = 46; // 0x2e
     field public static final int BAND_47 = 47; // 0x2f
     field public static final int BAND_48 = 48; // 0x30
+    field public static final int BAND_49 = 49; // 0x31
     field public static final int BAND_5 = 5; // 0x5
+    field public static final int BAND_50 = 50; // 0x32
+    field public static final int BAND_51 = 51; // 0x33
+    field public static final int BAND_52 = 52; // 0x34
+    field public static final int BAND_53 = 53; // 0x35
     field public static final int BAND_6 = 6; // 0x6
     field public static final int BAND_65 = 65; // 0x41
     field public static final int BAND_66 = 66; // 0x42
     field public static final int BAND_68 = 68; // 0x44
     field public static final int BAND_7 = 7; // 0x7
     field public static final int BAND_70 = 70; // 0x46
+    field public static final int BAND_71 = 71; // 0x47
+    field public static final int BAND_72 = 72; // 0x48
+    field public static final int BAND_73 = 73; // 0x49
+    field public static final int BAND_74 = 74; // 0x4a
     field public static final int BAND_8 = 8; // 0x8
+    field public static final int BAND_85 = 85; // 0x55
+    field public static final int BAND_87 = 87; // 0x57
+    field public static final int BAND_88 = 88; // 0x58
     field public static final int BAND_9 = 9; // 0x9
   }
 
@@ -46510,7 +46500,13 @@
     field public static final int BAND_83 = 83; // 0x53
     field public static final int BAND_84 = 84; // 0x54
     field public static final int BAND_86 = 86; // 0x56
+    field public static final int BAND_89 = 89; // 0x59
     field public static final int BAND_90 = 90; // 0x5a
+    field public static final int BAND_91 = 91; // 0x5b
+    field public static final int BAND_92 = 92; // 0x5c
+    field public static final int BAND_93 = 93; // 0x5d
+    field public static final int BAND_94 = 94; // 0x5e
+    field public static final int BAND_95 = 95; // 0x5f
   }
 
   public static final class AccessNetworkConstants.UtranBand {
@@ -47027,7 +47023,6 @@
     method public abstract int getAsuLevel();
     method public abstract int getDbm();
     method @IntRange(from=android.telephony.CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN, to=android.telephony.CellSignalStrength.SIGNAL_STRENGTH_GREAT) public abstract int getLevel();
-    method public static final int getNumSignalStrengthLevels();
     method public abstract int hashCode();
     field public static final int SIGNAL_STRENGTH_GOOD = 3; // 0x3
     field public static final int SIGNAL_STRENGTH_GREAT = 4; // 0x4
@@ -47467,19 +47462,6 @@
     field public static final int VSNCP_TIMEOUT = 2236; // 0x8bc
   }
 
-  public final class DisplayInfo implements android.os.Parcelable {
-    method public int describeContents();
-    method public int getNetworkType();
-    method public int getOverrideNetworkType();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.DisplayInfo> CREATOR;
-    field public static final int OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO = 2; // 0x2
-    field public static final int OVERRIDE_NETWORK_TYPE_LTE_CA = 1; // 0x1
-    field public static final int OVERRIDE_NETWORK_TYPE_NONE = 0; // 0x0
-    field public static final int OVERRIDE_NETWORK_TYPE_NR_NSA = 3; // 0x3
-    field public static final int OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE = 4; // 0x4
-  }
-
   public class IccOpenLogicalChannelResponse implements android.os.Parcelable {
     method public int describeContents();
     method public int getChannel();
@@ -47545,11 +47527,6 @@
     method @Nullable public android.telephony.mbms.StreamingService startStreaming(android.telephony.mbms.StreamingServiceInfo, @NonNull java.util.concurrent.Executor, android.telephony.mbms.StreamingServiceCallback);
   }
 
-  public class MmsManager {
-    method public void downloadMultimediaMessage(int, @NonNull String, @NonNull android.net.Uri, @Nullable android.os.Bundle, @Nullable android.app.PendingIntent, long);
-    method public void sendMultimediaMessage(int, @NonNull android.net.Uri, @Nullable String, @Nullable android.os.Bundle, @Nullable android.app.PendingIntent, long);
-  }
-
   @Deprecated public class NeighboringCellInfo implements android.os.Parcelable {
     ctor @Deprecated public NeighboringCellInfo();
     ctor @Deprecated public NeighboringCellInfo(int, int);
@@ -47626,12 +47603,6 @@
     field public static final int SCAN_TYPE_PERIODIC = 1; // 0x1
   }
 
-  public final class PhoneCapability implements android.os.Parcelable {
-    method public int describeContents();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.PhoneCapability> CREATOR;
-  }
-
   public class PhoneNumberFormattingTextWatcher implements android.text.TextWatcher {
     ctor public PhoneNumberFormattingTextWatcher();
     ctor public PhoneNumberFormattingTextWatcher(String);
@@ -47711,7 +47682,7 @@
     method public void onDataActivity(int);
     method public void onDataConnectionStateChanged(int);
     method public void onDataConnectionStateChanged(int, int);
-    method @RequiresPermission("android.permission.READ_PHONE_STATE") public void onDisplayInfoChanged(@NonNull android.telephony.DisplayInfo);
+    method @RequiresPermission("android.permission.READ_PHONE_STATE") public void onDisplayInfoChanged(@NonNull android.telephony.TelephonyDisplayInfo);
     method @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public void onImsCallDisconnectCauseChanged(@NonNull android.telephony.ims.ImsReasonInfo);
     method public void onMessageWaitingIndicatorChanged(boolean);
     method @RequiresPermission("android.permission.MODIFY_PHONE_STATE") public void onPreciseDataConnectionStateChanged(@NonNull android.telephony.PreciseDataConnectionState);
@@ -47823,7 +47794,7 @@
     method public String createAppSpecificSmsToken(android.app.PendingIntent);
     method @Nullable public String createAppSpecificSmsTokenWithPackageInfo(@Nullable String, @NonNull android.app.PendingIntent);
     method public java.util.ArrayList<java.lang.String> divideMessage(String);
-    method @Deprecated public void downloadMultimediaMessage(android.content.Context, String, android.net.Uri, android.os.Bundle, android.app.PendingIntent);
+    method public void downloadMultimediaMessage(android.content.Context, String, android.net.Uri, android.os.Bundle, android.app.PendingIntent);
     method @NonNull public android.os.Bundle getCarrierConfigValues();
     method public static android.telephony.SmsManager getDefault();
     method public static int getDefaultSmsSubscriptionId();
@@ -47833,10 +47804,10 @@
     method public int getSubscriptionId();
     method public void injectSmsPdu(byte[], String, android.app.PendingIntent);
     method public void sendDataMessage(String, String, short, byte[], android.app.PendingIntent, android.app.PendingIntent);
-    method @Deprecated public void sendMultimediaMessage(android.content.Context, android.net.Uri, String, android.os.Bundle, android.app.PendingIntent);
+    method public void sendMultimediaMessage(android.content.Context, android.net.Uri, String, android.os.Bundle, android.app.PendingIntent);
     method public void sendMultipartTextMessage(String, String, java.util.ArrayList<java.lang.String>, java.util.ArrayList<android.app.PendingIntent>, java.util.ArrayList<android.app.PendingIntent>);
     method public void sendMultipartTextMessage(@NonNull String, @Nullable String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, long);
-    method public void sendMultipartTextMessage(@NonNull String, @Nullable String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, @NonNull String);
+    method public void sendMultipartTextMessage(@NonNull String, @Nullable String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, @NonNull String, @Nullable String);
     method public void sendTextMessage(String, String, String, android.app.PendingIntent, android.app.PendingIntent);
     method public void sendTextMessage(@NonNull String, @Nullable String, @NonNull String, @Nullable android.app.PendingIntent, @Nullable android.app.PendingIntent, long);
     method @RequiresPermission(allOf={android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.SEND_SMS}) public void sendTextMessageWithoutPersisting(String, String, String, android.app.PendingIntent, android.app.PendingIntent);
@@ -47972,7 +47943,6 @@
     method public byte[] getPdu();
     method public int getProtocolIdentifier();
     method public String getPseudoSubject();
-    method @Nullable public String getRecipientAddress();
     method public String getServiceCenterAddress();
     method public int getStatus();
     method public int getStatusOnIcc();
@@ -48128,6 +48098,7 @@
     method public android.telephony.SubscriptionPlan build();
     method public static android.telephony.SubscriptionPlan.Builder createNonrecurring(java.time.ZonedDateTime, java.time.ZonedDateTime);
     method public static android.telephony.SubscriptionPlan.Builder createRecurring(java.time.ZonedDateTime, java.time.Period);
+    method @NonNull public android.telephony.SubscriptionPlan.Builder resetNetworkTypes();
     method public android.telephony.SubscriptionPlan.Builder setDataLimit(long, int);
     method public android.telephony.SubscriptionPlan.Builder setDataUsage(long, long);
     method @NonNull public android.telephony.SubscriptionPlan.Builder setNetworkTypes(@NonNull int[]);
@@ -48135,6 +48106,19 @@
     method public android.telephony.SubscriptionPlan.Builder setTitle(@Nullable CharSequence);
   }
 
+  public final class TelephonyDisplayInfo implements android.os.Parcelable {
+    method public int describeContents();
+    method public int getNetworkType();
+    method public int getOverrideNetworkType();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.TelephonyDisplayInfo> CREATOR;
+    field public static final int OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO = 2; // 0x2
+    field public static final int OVERRIDE_NETWORK_TYPE_LTE_CA = 1; // 0x1
+    field public static final int OVERRIDE_NETWORK_TYPE_NONE = 0; // 0x0
+    field public static final int OVERRIDE_NETWORK_TYPE_NR_NSA = 3; // 0x3
+    field public static final int OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE = 4; // 0x4
+  }
+
   public class TelephonyManager {
     method public boolean canChangeDtmfToneLength();
     method @Nullable public android.telephony.TelephonyManager createForPhoneAccountHandle(android.telecom.PhoneAccountHandle);
@@ -48142,7 +48126,6 @@
     method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean doesSwitchMultiSimConfigTriggerReboot();
     method public int getActiveModemCount();
     method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public java.util.List<android.telephony.CellInfo> getAllCellInfo();
-    method @NonNull public static int[] getAllNetworkTypes();
     method public int getCallState();
     method public int getCardIdForDefaultEuicc();
     method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @WorkerThread public android.os.PersistableBundle getCarrierConfig();
@@ -55777,7 +55760,7 @@
     field public int softInputMode;
     field @Deprecated public int systemUiVisibility;
     field public android.os.IBinder token;
-    field @android.view.ViewDebug.ExportedProperty(mapping={@android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION, to="BASE_APPLICATION"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION, to="APPLICATION"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING, to="APPLICATION_STARTING"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_DRAWN_APPLICATION, to="DRAWN_APPLICATION"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_PANEL, to="APPLICATION_PANEL"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA, to="APPLICATION_MEDIA"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL, to="APPLICATION_SUB_PANEL"), @android.view.ViewDebug.IntToString(from=0x3ed, to="APPLICATION_ABOVE_SUB_PANEL"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG, to="APPLICATION_ATTACHED_DIALOG"), @android.view.ViewDebug.IntToString(from=0x3ec, to="APPLICATION_MEDIA_OVERLAY"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR, to="STATUS_BAR"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SEARCH_BAR, to="SEARCH_BAR"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_PHONE, to="PHONE"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, to="SYSTEM_ALERT"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_TOAST, to="TOAST"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, to="SYSTEM_OVERLAY"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_PRIORITY_PHONE, to="PRIORITY_PHONE"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG, to="SYSTEM_DIALOG"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG, to="KEYGUARD_DIALOG"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ERROR, to="SYSTEM_ERROR"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD, to="INPUT_METHOD"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG, to="INPUT_METHOD_DIALOG"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_WALLPAPER, to="WALLPAPER"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL, to="STATUS_BAR_PANEL"), @android.view.ViewDebug.IntToString(from=0x7df, to="SECURE_SYSTEM_OVERLAY"), @android.view.ViewDebug.IntToString(from=0x7e0, to="DRAG"), @android.view.ViewDebug.IntToString(from=0x7e1, to="STATUS_BAR_SUB_PANEL"), @android.view.ViewDebug.IntToString(from=0x7e2, to="POINTER"), @android.view.ViewDebug.IntToString(from=0x7e3, to="NAVIGATION_BAR"), @android.view.ViewDebug.IntToString(from=0x7e4, to="VOLUME_OVERLAY"), @android.view.ViewDebug.IntToString(from=0x7e5, to="BOOT_PROGRESS"), @android.view.ViewDebug.IntToString(from=0x7e6, to="INPUT_CONSUMER"), @android.view.ViewDebug.IntToString(from=0x7e7, to="DREAM"), @android.view.ViewDebug.IntToString(from=0x7e8, to="NAVIGATION_BAR_PANEL"), @android.view.ViewDebug.IntToString(from=0x7ea, to="DISPLAY_OVERLAY"), @android.view.ViewDebug.IntToString(from=0x7eb, to="MAGNIFICATION_OVERLAY"), @android.view.ViewDebug.IntToString(from=0x7f5, to="PRESENTATION"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION, to="PRIVATE_PRESENTATION"), @android.view.ViewDebug.IntToString(from=0x7ef, to="VOICE_INTERACTION"), @android.view.ViewDebug.IntToString(from=0x7f1, to="VOICE_INTERACTION_STARTING"), @android.view.ViewDebug.IntToString(from=0x7f2, to="DOCK_DIVIDER"), @android.view.ViewDebug.IntToString(from=0x7f3, to="QS_DIALOG"), @android.view.ViewDebug.IntToString(from=0x7f4, to="SCREENSHOT"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, to="APPLICATION_OVERLAY")}) public int type;
+    field @android.view.ViewDebug.ExportedProperty(mapping={@android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION, to="BASE_APPLICATION"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION, to="APPLICATION"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING, to="APPLICATION_STARTING"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_DRAWN_APPLICATION, to="DRAWN_APPLICATION"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_PANEL, to="APPLICATION_PANEL"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_MEDIA, to="APPLICATION_MEDIA"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL, to="APPLICATION_SUB_PANEL"), @android.view.ViewDebug.IntToString(from=0x3ed, to="APPLICATION_ABOVE_SUB_PANEL"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG, to="APPLICATION_ATTACHED_DIALOG"), @android.view.ViewDebug.IntToString(from=0x3ec, to="APPLICATION_MEDIA_OVERLAY"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR, to="STATUS_BAR"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SEARCH_BAR, to="SEARCH_BAR"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_PHONE, to="PHONE"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, to="SYSTEM_ALERT"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_TOAST, to="TOAST"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, to="SYSTEM_OVERLAY"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_PRIORITY_PHONE, to="PRIORITY_PHONE"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG, to="SYSTEM_DIALOG"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG, to="KEYGUARD_DIALOG"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ERROR, to="SYSTEM_ERROR"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD, to="INPUT_METHOD"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG, to="INPUT_METHOD_DIALOG"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_WALLPAPER, to="WALLPAPER"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL, to="STATUS_BAR_PANEL"), @android.view.ViewDebug.IntToString(from=0x7df, to="SECURE_SYSTEM_OVERLAY"), @android.view.ViewDebug.IntToString(from=0x7e0, to="DRAG"), @android.view.ViewDebug.IntToString(from=0x7e1, to="STATUS_BAR_SUB_PANEL"), @android.view.ViewDebug.IntToString(from=0x7e2, to="POINTER"), @android.view.ViewDebug.IntToString(from=0x7e3, to="NAVIGATION_BAR"), @android.view.ViewDebug.IntToString(from=0x7e4, to="VOLUME_OVERLAY"), @android.view.ViewDebug.IntToString(from=0x7e5, to="BOOT_PROGRESS"), @android.view.ViewDebug.IntToString(from=0x7e6, to="INPUT_CONSUMER"), @android.view.ViewDebug.IntToString(from=0x7e8, to="NAVIGATION_BAR_PANEL"), @android.view.ViewDebug.IntToString(from=0x7ea, to="DISPLAY_OVERLAY"), @android.view.ViewDebug.IntToString(from=0x7eb, to="MAGNIFICATION_OVERLAY"), @android.view.ViewDebug.IntToString(from=0x7f5, to="PRESENTATION"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION, to="PRIVATE_PRESENTATION"), @android.view.ViewDebug.IntToString(from=0x7ef, to="VOICE_INTERACTION"), @android.view.ViewDebug.IntToString(from=0x7f1, to="VOICE_INTERACTION_STARTING"), @android.view.ViewDebug.IntToString(from=0x7f2, to="DOCK_DIVIDER"), @android.view.ViewDebug.IntToString(from=0x7f3, to="QS_DIALOG"), @android.view.ViewDebug.IntToString(from=0x7f4, to="SCREENSHOT"), @android.view.ViewDebug.IntToString(from=android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, to="APPLICATION_OVERLAY")}) public int type;
     field public float verticalMargin;
     field @android.view.ViewDebug.ExportedProperty public float verticalWeight;
     field public int windowAnimations;
@@ -55786,8 +55769,8 @@
   }
 
   public final class WindowMetrics {
-    ctor public WindowMetrics(@NonNull android.util.Size, @NonNull android.view.WindowInsets);
-    method @NonNull public android.util.Size getSize();
+    ctor public WindowMetrics(@NonNull android.graphics.Rect, @NonNull android.view.WindowInsets);
+    method @NonNull public android.graphics.Rect getBounds();
     method @NonNull public android.view.WindowInsets getWindowInsets();
   }
 
@@ -56806,6 +56789,19 @@
 
 package android.view.inline {
 
+  public class InlineContentView extends android.view.ViewGroup {
+    method @Nullable public android.view.SurfaceControl getSurfaceControl();
+    method public boolean isZOrderedOnTop();
+    method public void onLayout(boolean, int, int, int, int);
+    method public void setSurfaceControlCallback(@Nullable android.view.inline.InlineContentView.SurfaceControlCallback);
+    method public boolean setZOrderedOnTop(boolean);
+  }
+
+  public static interface InlineContentView.SurfaceControlCallback {
+    method public void onCreated(@NonNull android.view.SurfaceControl);
+    method public void onDestroyed(@NonNull android.view.SurfaceControl);
+  }
+
   public final class InlinePresentationSpec implements android.os.Parcelable {
     method public int describeContents();
     method @NonNull public android.util.Size getMaxSize();
@@ -56994,7 +56990,7 @@
   public final class InlineSuggestion implements android.os.Parcelable {
     method public int describeContents();
     method @NonNull public android.view.inputmethod.InlineSuggestionInfo getInfo();
-    method public void inflate(@NonNull android.content.Context, @NonNull android.util.Size, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.view.View>);
+    method public void inflate(@NonNull android.content.Context, @NonNull android.util.Size, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.view.inline.InlineContentView>);
     method public void writeToParcel(@NonNull android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.view.inputmethod.InlineSuggestion> CREATOR;
   }
diff --git a/api/module-lib-current.txt b/api/module-lib-current.txt
index ee997f1..a1d9967 100644
--- a/api/module-lib-current.txt
+++ b/api/module-lib-current.txt
@@ -72,19 +72,20 @@
     field public static final int TETHERING_WIFI = 0; // 0x0
     field public static final int TETHERING_WIFI_P2P = 3; // 0x3
     field public static final int TETHER_ERROR_DHCPSERVER_ERROR = 12; // 0xc
-    field public static final int TETHER_ERROR_DISABLE_NAT_ERROR = 9; // 0x9
-    field public static final int TETHER_ERROR_ENABLE_NAT_ERROR = 8; // 0x8
+    field public static final int TETHER_ERROR_DISABLE_FORWARDING_ERROR = 9; // 0x9
+    field public static final int TETHER_ERROR_ENABLE_FORWARDING_ERROR = 8; // 0x8
     field public static final int TETHER_ERROR_ENTITLEMENT_UNKNOWN = 13; // 0xd
     field public static final int TETHER_ERROR_IFACE_CFG_ERROR = 10; // 0xa
-    field public static final int TETHER_ERROR_MASTER_ERROR = 5; // 0x5
+    field public static final int TETHER_ERROR_INTERNAL_ERROR = 5; // 0x5
     field public static final int TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION = 15; // 0xf
     field public static final int TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION = 14; // 0xe
     field public static final int TETHER_ERROR_NO_ERROR = 0; // 0x0
-    field public static final int TETHER_ERROR_PROVISION_FAILED = 11; // 0xb
+    field public static final int TETHER_ERROR_PROVISIONING_FAILED = 11; // 0xb
     field public static final int TETHER_ERROR_SERVICE_UNAVAIL = 2; // 0x2
     field public static final int TETHER_ERROR_TETHER_IFACE_ERROR = 6; // 0x6
     field public static final int TETHER_ERROR_UNAVAIL_IFACE = 4; // 0x4
     field public static final int TETHER_ERROR_UNKNOWN_IFACE = 1; // 0x1
+    field public static final int TETHER_ERROR_UNKNOWN_TYPE = 16; // 0x10
     field public static final int TETHER_ERROR_UNSUPPORTED = 3; // 0x3
     field public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR = 7; // 0x7
     field public static final int TETHER_HARDWARE_OFFLOAD_FAILED = 2; // 0x2
@@ -96,40 +97,42 @@
     method public void onTetheringEntitlementResult(int);
   }
 
-  public abstract static class TetheringManager.StartTetheringCallback {
-    ctor public TetheringManager.StartTetheringCallback();
-    method public void onTetheringFailed(int);
-    method public void onTetheringStarted();
+  public static interface TetheringManager.StartTetheringCallback {
+    method public default void onTetheringFailed(int);
+    method public default void onTetheringStarted();
   }
 
-  public abstract static class TetheringManager.TetheringEventCallback {
-    ctor public TetheringManager.TetheringEventCallback();
-    method public void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
-    method public void onError(@NonNull String, int);
-    method public void onOffloadStatusChanged(int);
-    method @Deprecated public void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps);
-    method public void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
-    method public void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
-    method public void onTetheringSupported(boolean);
-    method public void onUpstreamChanged(@Nullable android.net.Network);
+  public static interface TetheringManager.TetheringEventCallback {
+    method public default void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
+    method public default void onError(@NonNull String, int);
+    method public default void onOffloadStatusChanged(int);
+    method public default void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps);
+    method public default void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
+    method public default void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
+    method public default void onTetheringSupported(boolean);
+    method public default void onUpstreamChanged(@Nullable android.net.Network);
   }
 
-  @Deprecated public static class TetheringManager.TetheringInterfaceRegexps {
-    ctor @Deprecated public TetheringManager.TetheringInterfaceRegexps(@NonNull String[], @NonNull String[], @NonNull String[]);
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableBluetoothRegexs();
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableUsbRegexs();
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
+  public static class TetheringManager.TetheringInterfaceRegexps {
+    method @NonNull public java.util.List<java.lang.String> getTetherableBluetoothRegexs();
+    method @NonNull public java.util.List<java.lang.String> getTetherableUsbRegexs();
+    method @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
   }
 
   public static class TetheringManager.TetheringRequest {
+    method @Nullable public android.net.LinkAddress getClientStaticIpv4Address();
+    method @Nullable public android.net.LinkAddress getLocalIpv4Address();
+    method public boolean getShouldShowEntitlementUi();
+    method public int getTetheringType();
+    method public boolean isExemptFromEntitlementCheck();
   }
 
   public static class TetheringManager.TetheringRequest.Builder {
     ctor public TetheringManager.TetheringRequest.Builder(int);
     method @NonNull public android.net.TetheringManager.TetheringRequest build();
     method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder setExemptFromEntitlementCheck(boolean);
-    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder setSilentProvisioning(boolean);
-    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder useStaticIpv4Addresses(@NonNull android.net.LinkAddress);
+    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder setShouldShowEntitlementUi(boolean);
+    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder setStaticIpv4Addresses(@NonNull android.net.LinkAddress, @NonNull android.net.LinkAddress);
   }
 
 }
diff --git a/api/system-current.txt b/api/system-current.txt
index f4e2a93..eb017b0 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -10,7 +10,6 @@
     field @Deprecated public static final String ACCESS_FM_RADIO = "android.permission.ACCESS_FM_RADIO";
     field public static final String ACCESS_INSTANT_APPS = "android.permission.ACCESS_INSTANT_APPS";
     field public static final String ACCESS_LOCUS_ID_USAGE_STATS = "android.permission.ACCESS_LOCUS_ID_USAGE_STATS";
-    field public static final String ACCESS_MESSAGES_ON_ICC = "android.permission.ACCESS_MESSAGES_ON_ICC";
     field public static final String ACCESS_MOCK_LOCATION = "android.permission.ACCESS_MOCK_LOCATION";
     field public static final String ACCESS_MTP = "android.permission.ACCESS_MTP";
     field public static final String ACCESS_NETWORK_CONDITIONS = "android.permission.ACCESS_NETWORK_CONDITIONS";
@@ -104,7 +103,6 @@
     field public static final String INTERNAL_SYSTEM_WINDOW = "android.permission.INTERNAL_SYSTEM_WINDOW";
     field public static final String INVOKE_CARRIER_SETUP = "android.permission.INVOKE_CARRIER_SETUP";
     field public static final String KILL_UID = "android.permission.KILL_UID";
-    field public static final String LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH = "android.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH";
     field public static final String LOCAL_MAC_ADDRESS = "android.permission.LOCAL_MAC_ADDRESS";
     field public static final String LOCK_DEVICE = "android.permission.LOCK_DEVICE";
     field public static final String LOOP_RADIO = "android.permission.LOOP_RADIO";
@@ -253,7 +251,6 @@
 
   public static final class R.array {
     field public static final int config_keySystemUuidMapping = 17235973; // 0x1070005
-    field public static final int simColors = 17235974; // 0x1070006
   }
 
   public static final class R.attr {
@@ -342,15 +339,12 @@
     method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public int getPackageImportance(String);
     method @NonNull public java.util.Collection<java.util.Locale> getSupportedLocales();
     method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public int getUidImportance(int);
-    method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public boolean isProfileForeground(@NonNull android.os.UserHandle);
     method @RequiresPermission(android.Manifest.permission.FORCE_STOP_PACKAGES) public void killProcessesWhenImperceptible(@NonNull int[], @NonNull String);
     method @RequiresPermission(android.Manifest.permission.KILL_UID) public void killUid(int, String);
-    method public void registerHomeVisibilityObserver(@NonNull android.app.HomeVisibilityObserver);
     method @RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS) public void removeOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener);
     method public void setDeviceLocales(@NonNull android.os.LocaleList);
     method @RequiresPermission(android.Manifest.permission.RESTRICTED_VR_ACCESS) public static void setPersistentVrThread(int);
     method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean switchUser(@NonNull android.os.UserHandle);
-    method public void unregisterHomeVisibilityObserver(@NonNull android.app.HomeVisibilityObserver);
   }
 
   public static interface ActivityManager.OnUidImportanceListener {
@@ -374,7 +368,6 @@
     method @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setUidMode(@NonNull String, int, int);
     field public static final String OPSTR_ACCEPT_HANDOVER = "android:accept_handover";
     field public static final String OPSTR_ACCESS_ACCESSIBILITY = "android:access_accessibility";
-    field public static final String OPSTR_ACCESS_CALL_AUDIO = "android:access_call_audio";
     field public static final String OPSTR_ACCESS_NOTIFICATIONS = "android:access_notifications";
     field public static final String OPSTR_ACTIVATE_VPN = "android:activate_vpn";
     field public static final String OPSTR_ASSIST_SCREENSHOT = "android:assist_screenshot";
@@ -603,11 +596,6 @@
     field public static final String ACTION_DOWNLOAD_COMPLETED = "android.intent.action.DOWNLOAD_COMPLETED";
   }
 
-  public abstract class HomeVisibilityObserver {
-    ctor public HomeVisibilityObserver();
-    method public abstract void onHomeVisibilityChanged(boolean);
-  }
-
   public abstract class InstantAppResolverService extends android.app.Service {
     ctor public InstantAppResolverService();
     method public final void attachBaseContext(android.content.Context);
@@ -615,11 +603,11 @@
     method @Deprecated public void onGetInstantAppIntentFilter(@Nullable int[], @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
     method @Deprecated public void onGetInstantAppIntentFilter(@NonNull android.content.Intent, @Nullable int[], @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
     method @Deprecated public void onGetInstantAppIntentFilter(@NonNull android.content.Intent, @Nullable int[], @NonNull android.os.UserHandle, @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
-    method public void onGetInstantAppIntentFilter(@NonNull android.content.pm.InstantAppRequestInfo, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
+    method @MainThread public void onGetInstantAppIntentFilter(@NonNull android.content.pm.InstantAppRequestInfo, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
     method @Deprecated public void onGetInstantAppResolveInfo(@Nullable int[], @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
     method @Deprecated public void onGetInstantAppResolveInfo(@NonNull android.content.Intent, @Nullable int[], @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
     method @Deprecated public void onGetInstantAppResolveInfo(@NonNull android.content.Intent, @Nullable int[], @NonNull android.os.UserHandle, @NonNull String, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
-    method public void onGetInstantAppResolveInfo(@NonNull android.content.pm.InstantAppRequestInfo, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
+    method @MainThread public void onGetInstantAppResolveInfo(@NonNull android.content.pm.InstantAppRequestInfo, @NonNull android.app.InstantAppResolverService.InstantAppResolutionCallback);
   }
 
   public static final class InstantAppResolverService.InstantAppResolutionCallback {
@@ -665,7 +653,7 @@
     method public int getUserLockedFields();
     method public boolean isDeleted();
     method public void populateFromXml(org.xmlpull.v1.XmlPullParser);
-    method public void setBlockableSystem(boolean);
+    method public void setBlockable(boolean);
     method public org.json.JSONObject toJson() throws org.json.JSONException;
     method public void writeXml(org.xmlpull.v1.XmlSerializer) throws java.io.IOException;
     field public static final int USER_LOCKED_SOUND = 32; // 0x20
@@ -872,12 +860,11 @@
     method @Nullable public android.content.ComponentName getProfileOwner() throws java.lang.IllegalArgumentException;
     method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public String getProfileOwnerNameAsUser(int) throws java.lang.IllegalArgumentException;
     method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public int getUserProvisioningState();
-    method public boolean hasDeviceIdentifierAccess(@NonNull String, int, int);
     method public boolean isDeviceManaged();
     method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isDeviceProvisioned();
     method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isDeviceProvisioningConfigApplied();
     method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isManagedKiosk();
-    method public boolean isSecondaryLockscreenEnabled(int);
+    method public boolean isSecondaryLockscreenEnabled(@NonNull android.os.UserHandle);
     method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isUnattendedManagedKiosk();
     method @RequiresPermission("android.permission.NOTIFY_PENDING_SYSTEM_UPDATE") public void notifyPendingSystemUpdate(long);
     method @RequiresPermission("android.permission.NOTIFY_PENDING_SYSTEM_UPDATE") public void notifyPendingSystemUpdate(long, boolean);
@@ -1463,16 +1450,8 @@
 package android.bluetooth {
 
   public final class BluetoothA2dp implements android.bluetooth.BluetoothProfile {
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void disableOptionalCodecs(@NonNull android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void enableOptionalCodecs(@NonNull android.bluetooth.BluetoothDevice);
-    method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothDevice getActiveDevice();
-    method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothCodecStatus getCodecStatus(@NonNull android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public int isOptionalCodecsEnabled(@NonNull android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public int isOptionalCodecsSupported(@NonNull android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setCodecConfigPreference(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothCodecConfig);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setOptionalCodecsEnabled(@NonNull android.bluetooth.BluetoothDevice, int);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
     field public static final int OPTIONAL_CODECS_NOT_SUPPORTED = 0; // 0x0
     field public static final int OPTIONAL_CODECS_PREF_DISABLED = 0; // 0x0
     field public static final int OPTIONAL_CODECS_PREF_ENABLED = 1; // 0x1
@@ -1483,28 +1462,23 @@
 
   public final class BluetoothA2dpSink implements android.bluetooth.BluetoothProfile {
     method public void finalize();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isAudioPlaying(@Nullable android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice, int);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isAudioPlaying(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
     field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.a2dp-sink.profile.action.CONNECTION_STATE_CHANGED";
   }
 
   public final class BluetoothAdapter {
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean addOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean connectAllEnabledProfiles(@NonNull android.bluetooth.BluetoothDevice);
     method public boolean disableBLE();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean disconnectAllEnabledProfiles(@NonNull android.bluetooth.BluetoothDevice);
     method public boolean enableBLE();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean enableNoAutoConnect();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean factoryReset();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public long getDiscoveryEndMillis();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public long getDiscoveryEndMillis();
     method public boolean isBleScanAlwaysAvailable();
     method public boolean isLeEnabled();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeActiveDevice(int);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setActiveDevice(@NonNull android.bluetooth.BluetoothDevice, int);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setScanMode(int, long);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setScanMode(int);
     field public static final String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED";
     field public static final String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE = "android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE";
     field public static final int ACTIVE_DEVICE_ALL = 2; // 0x2
@@ -1516,70 +1490,17 @@
     method public void onMetadataChanged(@NonNull android.bluetooth.BluetoothDevice, int, @Nullable byte[]);
   }
 
-  public final class BluetoothCodecConfig implements android.os.Parcelable {
-    ctor public BluetoothCodecConfig(int, int, int, int, int, long, long, long, long);
-    ctor public BluetoothCodecConfig(int);
-    method public int getBitsPerSample();
-    method @NonNull public String getCodecName();
-    method public int getCodecPriority();
-    method public long getCodecSpecific1();
-    method public int getCodecType();
-    method public int getSampleRate();
-    method public boolean isMandatoryCodec();
-    field public static final int BITS_PER_SAMPLE_16 = 1; // 0x1
-    field public static final int BITS_PER_SAMPLE_24 = 2; // 0x2
-    field public static final int BITS_PER_SAMPLE_32 = 4; // 0x4
-    field public static final int BITS_PER_SAMPLE_NONE = 0; // 0x0
-    field public static final int CHANNEL_MODE_MONO = 1; // 0x1
-    field public static final int CHANNEL_MODE_NONE = 0; // 0x0
-    field public static final int CHANNEL_MODE_STEREO = 2; // 0x2
-    field public static final int CODEC_PRIORITY_DEFAULT = 0; // 0x0
-    field public static final int CODEC_PRIORITY_DISABLED = -1; // 0xffffffff
-    field public static final int CODEC_PRIORITY_HIGHEST = 1000000; // 0xf4240
-    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothCodecConfig> CREATOR;
-    field public static final int SAMPLE_RATE_176400 = 16; // 0x10
-    field public static final int SAMPLE_RATE_192000 = 32; // 0x20
-    field public static final int SAMPLE_RATE_44100 = 1; // 0x1
-    field public static final int SAMPLE_RATE_48000 = 2; // 0x2
-    field public static final int SAMPLE_RATE_88200 = 4; // 0x4
-    field public static final int SAMPLE_RATE_96000 = 8; // 0x8
-    field public static final int SAMPLE_RATE_NONE = 0; // 0x0
-    field public static final int SOURCE_CODEC_TYPE_AAC = 1; // 0x1
-    field public static final int SOURCE_CODEC_TYPE_APTX = 2; // 0x2
-    field public static final int SOURCE_CODEC_TYPE_APTX_HD = 3; // 0x3
-    field public static final int SOURCE_CODEC_TYPE_INVALID = 1000000; // 0xf4240
-    field public static final int SOURCE_CODEC_TYPE_LDAC = 4; // 0x4
-    field public static final int SOURCE_CODEC_TYPE_MAX = 5; // 0x5
-    field public static final int SOURCE_CODEC_TYPE_SBC = 0; // 0x0
-  }
-
-  public final class BluetoothCodecStatus implements android.os.Parcelable {
-    ctor public BluetoothCodecStatus(@Nullable android.bluetooth.BluetoothCodecConfig, @Nullable android.bluetooth.BluetoothCodecConfig[], @Nullable android.bluetooth.BluetoothCodecConfig[]);
-    method @Nullable public android.bluetooth.BluetoothCodecConfig getCodecConfig();
-    method @Nullable public android.bluetooth.BluetoothCodecConfig[] getCodecsLocalCapabilities();
-    method @Nullable public android.bluetooth.BluetoothCodecConfig[] getCodecsSelectableCapabilities();
-    field @NonNull public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothCodecStatus> CREATOR;
-    field public static final String EXTRA_CODEC_STATUS = "android.bluetooth.extra.CODEC_STATUS";
-  }
-
   public final class BluetoothDevice implements android.os.Parcelable {
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean cancelBondProcess();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean cancelPairing();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getBatteryLevel();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getMessageAccessPermission();
     method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public byte[] getMetadata(int);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getPhonebookAccessPermission();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getSimAccessPermission();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isBondingInitiatedLocally();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getSimAccessPermission();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isConnected();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isEncrypted();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isInSilenceMode();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeBond();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setAlias(@NonNull String);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMessageAccessPermission(int);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMetadata(int, @NonNull byte[]);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setPhonebookAccessPermission(int);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setPin(@NonNull String);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSilenceMode(boolean);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSimAccessPermission(int);
     field public static final int ACCESS_ALLOWED = 1; // 0x1
@@ -1609,17 +1530,15 @@
   public final class BluetoothHeadset implements android.bluetooth.BluetoothProfile {
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean connect(android.bluetooth.BluetoothDevice);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean disconnect(android.bluetooth.BluetoothDevice);
-    method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothDevice getActiveDevice();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
     method @Deprecated @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setPriority(android.bluetooth.BluetoothDevice, int);
   }
 
   public final class BluetoothHearingAid implements android.bluetooth.BluetoothProfile {
-    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH) public java.util.List<android.bluetooth.BluetoothDevice> getActiveDevices();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public long getHiSyncId(@Nullable android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public long getHiSyncId(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
   }
 
   public final class BluetoothHidDevice implements android.bluetooth.BluetoothProfile {
@@ -1628,9 +1547,9 @@
 
   public final class BluetoothHidHost implements android.bluetooth.BluetoothProfile {
     method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
     field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.input.profile.action.CONNECTION_STATE_CHANGED";
   }
 
@@ -1638,19 +1557,17 @@
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void close();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) protected void finalize();
     method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@Nullable android.bluetooth.BluetoothDevice, int);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
     field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.map.profile.action.CONNECTION_STATE_CHANGED";
   }
 
-  public final class BluetoothPan implements java.lang.AutoCloseable android.bluetooth.BluetoothProfile {
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public void close();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) protected void finalize();
-    method @NonNull public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getConnectionState(@Nullable android.bluetooth.BluetoothDevice);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isTetheringOn();
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public void setBluetoothTethering(boolean);
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
+  public final class BluetoothPan implements android.bluetooth.BluetoothProfile {
+    method @NonNull @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isTetheringOn();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public void setBluetoothTethering(boolean);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
     field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pan.profile.action.CONNECTION_STATE_CHANGED";
     field public static final String EXTRA_LOCAL_ROLE = "android.bluetooth.pan.extra.LOCAL_ROLE";
     field public static final int LOCAL_NAP_ROLE = 1; // 0x1
@@ -1661,7 +1578,7 @@
   }
 
   public class BluetoothPbap implements android.bluetooth.BluetoothProfile {
-    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionState(@Nullable android.bluetooth.BluetoothDevice);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public int getConnectionState(@NonNull android.bluetooth.BluetoothDevice);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
     field @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pbap.profile.action.CONNECTION_STATE_CHANGED";
   }
@@ -1777,6 +1694,7 @@
   }
 
   public abstract class ContentResolver {
+    method public int checkUriPermission(@NonNull android.net.Uri, int, int);
     method @NonNull public static android.net.Uri decodeFromFile(@NonNull java.io.File);
     method @NonNull public static java.io.File encodeToFile(@NonNull android.net.Uri);
     method @Nullable @RequiresPermission("android.permission.CACHE_CONTENT") public android.os.Bundle getCache(@NonNull android.net.Uri);
@@ -1805,9 +1723,7 @@
     field public static final String EUICC_CARD_SERVICE = "euicc_card";
     field public static final String HDMI_CONTROL_SERVICE = "hdmi_control";
     field public static final String NETD_SERVICE = "netd";
-    field public static final String NETWORK_POLICY_SERVICE = "netpolicy";
     field public static final String NETWORK_SCORE_SERVICE = "network_score";
-    field public static final String NETWORK_STACK_SERVICE = "network_stack";
     field public static final String OEM_LOCK_SERVICE = "oem_lock";
     field public static final String PERMISSION_SERVICE = "permission";
     field public static final String PERSISTENT_DATA_BLOCK_SERVICE = "persistent_data_block";
@@ -1817,7 +1733,6 @@
     field public static final String STATUS_BAR_SERVICE = "statusbar";
     field public static final String SYSTEM_CONFIG_SERVICE = "system_config";
     field public static final String SYSTEM_UPDATE_SERVICE = "system_update";
-    field public static final String TELEPHONY_REGISTRY_SERVICE = "telephony_registry";
     field public static final String TETHERING_SERVICE = "tethering";
     field public static final String VR_SERVICE = "vrmanager";
     field public static final String WIFI_NL80211_SERVICE = "wifinl80211";
@@ -1871,7 +1786,6 @@
     field public static final String ACTION_UPGRADE_SETUP = "android.intent.action.UPGRADE_SETUP";
     field public static final String ACTION_USER_ADDED = "android.intent.action.USER_ADDED";
     field public static final String ACTION_USER_REMOVED = "android.intent.action.USER_REMOVED";
-    field @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public static final String ACTION_USER_SWITCHED = "android.intent.action.USER_SWITCHED";
     field public static final String ACTION_VOICE_ASSIST = "android.intent.action.VOICE_ASSIST";
     field public static final String CATEGORY_LEANBACK_SETTINGS = "android.intent.category.LEANBACK_SETTINGS";
     field public static final String EXTRA_CALLING_PACKAGE = "android.intent.extra.CALLING_PACKAGE";
@@ -2004,11 +1918,10 @@
   }
 
   public class DataLoaderParams {
-    method @NonNull public static final android.content.pm.DataLoaderParams forIncremental(@NonNull android.content.ComponentName, @NonNull String, @Nullable java.util.Map<java.lang.String,android.os.ParcelFileDescriptor>);
+    method @NonNull public static final android.content.pm.DataLoaderParams forIncremental(@NonNull android.content.ComponentName, @NonNull String);
     method @NonNull public static final android.content.pm.DataLoaderParams forStreaming(@NonNull android.content.ComponentName, @NonNull String);
     method @NonNull public final String getArguments();
     method @NonNull public final android.content.ComponentName getComponentName();
-    method @NonNull public final java.util.Map<java.lang.String,android.os.ParcelFileDescriptor> getDynamicArgs();
     method @NonNull public final int getType();
   }
 
@@ -2046,13 +1959,13 @@
   public final class InstantAppRequestInfo implements android.os.Parcelable {
     ctor public InstantAppRequestInfo(@NonNull android.content.Intent, @Nullable int[], @NonNull android.os.UserHandle, boolean, @NonNull String);
     method public int describeContents();
+    method @Nullable public int[] getHostDigestPrefix();
+    method @NonNull public android.content.Intent getIntent();
+    method @NonNull public String getToken();
+    method @NonNull public android.os.UserHandle getUserHandle();
+    method public boolean isRequesterInstantApp();
     method public void writeToParcel(@NonNull android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.InstantAppRequestInfo> CREATOR;
-    field @Nullable public final int[] hostDigestPrefix;
-    field @NonNull public final android.content.Intent intent;
-    field public final boolean isRequesterInstantApp;
-    field @NonNull public final String token;
-    field @NonNull public final android.os.UserHandle userHandle;
   }
 
   public final class InstantAppResolveInfo implements android.os.Parcelable {
@@ -2116,10 +2029,10 @@
   }
 
   public static class PackageInstaller.Session implements java.io.Closeable {
-    method public void addFile(int, @NonNull String, long, @NonNull byte[], @Nullable byte[]);
+    method @RequiresPermission("com.android.permission.USE_INSTALLER_V2") public void addFile(int, @NonNull String, long, @NonNull byte[], @Nullable byte[]);
     method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void commitTransferred(@NonNull android.content.IntentSender);
-    method @Nullable public android.content.pm.DataLoaderParams getDataLoaderParams();
-    method public void removeFile(int, @NonNull String);
+    method @Nullable @RequiresPermission("com.android.permission.USE_INSTALLER_V2") public android.content.pm.DataLoaderParams getDataLoaderParams();
+    method @RequiresPermission("com.android.permission.USE_INSTALLER_V2") public void removeFile(int, @NonNull String);
   }
 
   public static class PackageInstaller.SessionInfo implements android.os.Parcelable {
@@ -2140,7 +2053,7 @@
   public static class PackageInstaller.SessionParams implements android.os.Parcelable {
     method @RequiresPermission(android.Manifest.permission.ALLOCATE_AGGRESSIVE) public void setAllocateAggressive(boolean);
     method @Deprecated public void setAllowDowngrade(boolean);
-    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setDataLoaderParams(@NonNull android.content.pm.DataLoaderParams);
+    method @RequiresPermission(allOf={android.Manifest.permission.INSTALL_PACKAGES, "com.android.permission.USE_INSTALLER_V2"}) public void setDataLoaderParams(@NonNull android.content.pm.DataLoaderParams);
     method public void setDontKillApp(boolean);
     method public void setEnableRollback(boolean);
     method public void setEnableRollback(boolean, int);
@@ -2196,7 +2109,6 @@
     method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable String);
     method @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable android.content.pm.SuspendDialogInfo);
     method @RequiresPermission(value=android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional=true) public void setSyntheticAppDetailsActivityEnabled(@NonNull String, boolean);
-    method public void setSystemAppState(@NonNull String, int);
     method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public abstract void setUpdateAvailable(@NonNull String, boolean);
     method @RequiresPermission(android.Manifest.permission.SET_PREFERRED_APPLICATIONS) public abstract boolean updateIntentVerificationStatusAsUser(@NonNull String, int, int);
     method @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS}) public abstract void updatePermissionFlags(@NonNull String, @NonNull String, @android.content.pm.PackageManager.PermissionFlags int, @android.content.pm.PackageManager.PermissionFlags int, @NonNull android.os.UserHandle);
@@ -2279,10 +2191,6 @@
     field public static final int RESTRICTION_HIDE_FROM_SUGGESTIONS = 1; // 0x1
     field public static final int RESTRICTION_HIDE_NOTIFICATIONS = 2; // 0x2
     field public static final int RESTRICTION_NONE = 0; // 0x0
-    field public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_HIDDEN = 0; // 0x0
-    field public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_VISIBLE = 1; // 0x1
-    field public static final int SYSTEM_APP_STATE_INSTALLED = 2; // 0x2
-    field public static final int SYSTEM_APP_STATE_UNINSTALLED = 3; // 0x3
   }
 
   public abstract static class PackageManager.DexModuleRegisterCallback {
@@ -3667,23 +3575,23 @@
 
   public static final class SoundTrigger.Keyphrase implements android.os.Parcelable {
     ctor public SoundTrigger.Keyphrase(int, int, @NonNull java.util.Locale, @NonNull String, @Nullable int[]);
+    method public int getId();
+    method @NonNull public java.util.Locale getLocale();
+    method public int getRecognitionModes();
+    method @NonNull public String getText();
+    method @NonNull public int[] getUsers();
     method @NonNull public static android.hardware.soundtrigger.SoundTrigger.Keyphrase readFromParcel(@NonNull android.os.Parcel);
     method public void writeToParcel(@NonNull android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.hardware.soundtrigger.SoundTrigger.Keyphrase> CREATOR;
-    field public final int id;
-    field @NonNull public final java.util.Locale locale;
-    field public final int recognitionModes;
-    field @NonNull public final String text;
-    field @NonNull public final int[] users;
   }
 
   public static final class SoundTrigger.KeyphraseSoundModel extends android.hardware.soundtrigger.SoundTrigger.SoundModel implements android.os.Parcelable {
     ctor public SoundTrigger.KeyphraseSoundModel(@NonNull java.util.UUID, @NonNull java.util.UUID, @Nullable byte[], @Nullable android.hardware.soundtrigger.SoundTrigger.Keyphrase[], int);
     ctor public SoundTrigger.KeyphraseSoundModel(@NonNull java.util.UUID, @NonNull java.util.UUID, @Nullable byte[], @Nullable android.hardware.soundtrigger.SoundTrigger.Keyphrase[]);
+    method @NonNull public android.hardware.soundtrigger.SoundTrigger.Keyphrase[] getKeyphrases();
     method @NonNull public static android.hardware.soundtrigger.SoundTrigger.KeyphraseSoundModel readFromParcel(@NonNull android.os.Parcel);
     method public void writeToParcel(@NonNull android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.hardware.soundtrigger.SoundTrigger.KeyphraseSoundModel> CREATOR;
-    field @NonNull public final android.hardware.soundtrigger.SoundTrigger.Keyphrase[] keyphrases;
   }
 
   public static final class SoundTrigger.ModelParamRange implements android.os.Parcelable {
@@ -3695,26 +3603,26 @@
 
   public static final class SoundTrigger.ModuleProperties implements android.os.Parcelable {
     method public int describeContents();
+    method public int getAudioCapabilities();
+    method @NonNull public String getDescription();
+    method public int getId();
+    method @NonNull public String getImplementor();
+    method public int getMaxBufferMillis();
+    method public int getMaxKeyphrases();
+    method public int getMaxSoundModels();
+    method public int getMaxUsers();
+    method public int getPowerConsumptionMw();
+    method public int getRecognitionModes();
+    method @NonNull public String getSupportedModelArch();
+    method @NonNull public java.util.UUID getUuid();
+    method public int getVersion();
+    method public boolean isCaptureTransitionSupported();
+    method public boolean isConcurrentCaptureSupported();
+    method public boolean isTriggerReturnedInEvent();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int AUDIO_CAPABILITY_ECHO_CANCELLATION = 1; // 0x1
     field public static final int AUDIO_CAPABILITY_NOISE_SUPPRESSION = 2; // 0x2
     field @NonNull public static final android.os.Parcelable.Creator<android.hardware.soundtrigger.SoundTrigger.ModuleProperties> CREATOR;
-    field public final int audioCapabilities;
-    field @NonNull public final String description;
-    field public final int id;
-    field @NonNull public final String implementor;
-    field public final int maxBufferMs;
-    field public final int maxKeyphrases;
-    field public final int maxSoundModels;
-    field public final int maxUsers;
-    field public final int powerConsumptionMw;
-    field public final int recognitionModes;
-    field public final boolean returnsTriggerInEvent;
-    field @NonNull public final String supportedModelArch;
-    field public final boolean supportsCaptureTransition;
-    field public final boolean supportsConcurrentCapture;
-    field @NonNull public final java.util.UUID uuid;
-    field public final int version;
   }
 
   public static class SoundTrigger.RecognitionEvent {
@@ -3725,13 +3633,13 @@
   }
 
   public static class SoundTrigger.SoundModel {
+    method @NonNull public byte[] getData();
+    method public int getType();
+    method @NonNull public java.util.UUID getUuid();
+    method @NonNull public java.util.UUID getVendorUuid();
+    method public int getVersion();
     field public static final int TYPE_GENERIC_SOUND = 1; // 0x1
     field public static final int TYPE_KEYPHRASE = 0; // 0x0
-    field @NonNull public final byte[] data;
-    field public final int type;
-    field @NonNull public final java.util.UUID uuid;
-    field @NonNull public final java.util.UUID vendorUuid;
-    field public final int version;
   }
 
 }
@@ -4270,11 +4178,11 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void addOnPreferredDeviceForStrategyChangedListener(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.OnPreferredDeviceForStrategyChangedListener) throws java.lang.SecurityException;
     method public void clearAudioServerStateCallback();
     method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int dispatchAudioFocusChange(@NonNull android.media.AudioFocusInfo, int, @NonNull android.media.audiopolicy.AudioPolicy);
-    method @IntRange(from=0) public int getAdditionalOutputDeviceDelay(@NonNull android.media.AudioDeviceInfo);
+    method @IntRange(from=0) public long getAdditionalOutputDeviceDelay(@NonNull android.media.AudioDeviceInfo);
     method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static java.util.List<android.media.audiopolicy.AudioProductStrategy> getAudioProductStrategies();
     method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static java.util.List<android.media.audiopolicy.AudioVolumeGroup> getAudioVolumeGroups();
     method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public java.util.List<android.media.AudioDeviceAttributes> getDevicesForAttributes(@NonNull android.media.AudioAttributes);
-    method @IntRange(from=0) public int getMaxAdditionalOutputDeviceDelay(@NonNull android.media.AudioDeviceInfo);
+    method @IntRange(from=0) public long getMaxAdditionalOutputDeviceDelay(@NonNull android.media.AudioDeviceInfo);
     method @IntRange(from=0) @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int getMaxVolumeIndexForAttributes(@NonNull android.media.AudioAttributes);
     method @IntRange(from=0) @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int getMinVolumeIndexForAttributes(@NonNull android.media.AudioAttributes);
     method @Nullable @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public android.media.AudioDeviceAttributes getPreferredDeviceForStrategy(@NonNull android.media.audiopolicy.AudioProductStrategy);
@@ -4289,7 +4197,7 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, @NonNull android.media.AudioAttributes, int, int) throws java.lang.IllegalArgumentException;
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.MODIFY_AUDIO_ROUTING}) public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, @NonNull android.media.AudioAttributes, int, int, android.media.audiopolicy.AudioPolicy) throws java.lang.IllegalArgumentException;
     method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int requestAudioFocus(@NonNull android.media.AudioFocusRequest, @Nullable android.media.audiopolicy.AudioPolicy);
-    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public boolean setAdditionalOutputDeviceDelay(@NonNull android.media.AudioDeviceInfo, @IntRange(from=0) int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public boolean setAdditionalOutputDeviceDelay(@NonNull android.media.AudioDeviceInfo, @IntRange(from=0) long);
     method public void setAudioServerStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.AudioServerStateCallback);
     method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setFocusRequestResult(@NonNull android.media.AudioFocusInfo, int, @NonNull android.media.audiopolicy.AudioPolicy);
     method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public boolean setPreferredDeviceForStrategy(@NonNull android.media.audiopolicy.AudioProductStrategy, @NonNull android.media.AudioDeviceAttributes);
@@ -4355,6 +4263,20 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int getClientUid();
   }
 
+  public class AudioTrack implements android.media.AudioRouting android.media.VolumeAutomation {
+    field @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int ENCAPSULATION_MODE_HANDLE = 2; // 0x2
+  }
+
+  public static class AudioTrack.Builder {
+    method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public android.media.AudioTrack.Builder setTunerConfiguration(@NonNull android.media.AudioTrack.TunerConfiguration);
+  }
+
+  public static class AudioTrack.TunerConfiguration {
+    ctor @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public AudioTrack.TunerConfiguration(@IntRange(from=1) int, @IntRange(from=1) int);
+    method @IntRange(from=1) @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int getContentId();
+    method @IntRange(from=1) @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int getSyncId();
+  }
+
   public class HwAudioSource {
     method public boolean isPlaying();
     method public void start();
@@ -4393,6 +4315,7 @@
 
   public class AudioEffect {
     ctor @RequiresPermission("android.permission.MODIFY_DEFAULT_AUDIO_EFFECTS") public AudioEffect(@NonNull java.util.UUID, @NonNull android.media.AudioDeviceAttributes);
+    method @RequiresPermission("android.permission.MODIFY_DEFAULT_AUDIO_EFFECTS") public static boolean isEffectSupportedForDevice(@NonNull java.util.UUID, @NonNull android.media.AudioDeviceAttributes);
   }
 
 }
@@ -4828,11 +4751,11 @@
   }
 
   public class Lnb implements java.lang.AutoCloseable {
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void close();
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int sendDiseqcMessage(@NonNull byte[]);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int setSatellitePosition(int);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int setTone(int);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int setVoltage(int);
+    method public void close();
+    method public int sendDiseqcMessage(@NonNull byte[]);
+    method public int setSatellitePosition(int);
+    method public int setTone(int);
+    method public int setVoltage(int);
     field public static final int EVENT_TYPE_DISEQC_RX_OVERFLOW = 0; // 0x0
     field public static final int EVENT_TYPE_DISEQC_RX_PARITY_ERROR = 2; // 0x2
     field public static final int EVENT_TYPE_DISEQC_RX_TIMEOUT = 1; // 0x1
@@ -4860,32 +4783,32 @@
 
   public class Tuner implements java.lang.AutoCloseable {
     ctor @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public Tuner(@NonNull android.content.Context, @Nullable String, int);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int cancelScanning();
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int cancelTuning();
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void clearOnTuneEventListener();
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void clearResourceLostListener();
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void close();
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int connectCiCam(int);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int disconnectCiCam();
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int getAvSyncHwId(@NonNull android.media.tv.tuner.filter.Filter);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public long getAvSyncTime(int);
-    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.DemuxCapabilities getDemuxCapabilities(@NonNull android.content.Context);
-    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.frontend.FrontendInfo getFrontendInfo();
+    method public int cancelScanning();
+    method public int cancelTuning();
+    method public void clearOnTuneEventListener();
+    method public void clearResourceLostListener();
+    method public void close();
+    method public int connectCiCam(int);
+    method public int disconnectCiCam();
+    method public int getAvSyncHwId(@NonNull android.media.tv.tuner.filter.Filter);
+    method public long getAvSyncTime(int);
+    method @Nullable public android.media.tv.tuner.DemuxCapabilities getDemuxCapabilities();
+    method @Nullable public android.media.tv.tuner.frontend.FrontendInfo getFrontendInfo();
     method @Nullable public android.media.tv.tuner.frontend.FrontendStatus getFrontendStatus(@NonNull int[]);
     method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_DESCRAMBLER) public android.media.tv.tuner.Descrambler openDescrambler();
-    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.dvr.DvrPlayback openDvrPlayback(long, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.dvr.OnPlaybackStatusChangedListener);
-    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.dvr.DvrRecorder openDvrRecorder(long, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.dvr.OnRecordStatusChangedListener);
-    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.filter.Filter openFilter(int, int, long, @Nullable java.util.concurrent.Executor, @Nullable android.media.tv.tuner.filter.FilterCallback);
-    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.Lnb openLnb(@NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.LnbCallback);
-    method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public android.media.tv.tuner.Lnb openLnbByName(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.LnbCallback);
+    method @Nullable public android.media.tv.tuner.dvr.DvrPlayback openDvrPlayback(long, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.dvr.OnPlaybackStatusChangedListener);
+    method @Nullable public android.media.tv.tuner.dvr.DvrRecorder openDvrRecorder(long, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.dvr.OnRecordStatusChangedListener);
+    method @Nullable public android.media.tv.tuner.filter.Filter openFilter(int, int, long, @Nullable java.util.concurrent.Executor, @Nullable android.media.tv.tuner.filter.FilterCallback);
+    method @Nullable public android.media.tv.tuner.Lnb openLnb(@NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.LnbCallback);
+    method @Nullable public android.media.tv.tuner.Lnb openLnbByName(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.LnbCallback);
     method @Nullable public android.media.tv.tuner.filter.TimeFilter openTimeFilter();
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int scan(@NonNull android.media.tv.tuner.frontend.FrontendSettings, int, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.frontend.ScanCallback);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int setLnaEnabled(boolean);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void setOnTuneEventListener(@NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.frontend.OnTuneEventListener);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void setResourceLostListener(@NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.Tuner.OnResourceLostListener);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void shareFrontendFromTuner(@NonNull android.media.tv.tuner.Tuner);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public int tune(@NonNull android.media.tv.tuner.frontend.FrontendSettings);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public void updateResourcePriority(int, int);
+    method public int scan(@NonNull android.media.tv.tuner.frontend.FrontendSettings, int, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.frontend.ScanCallback);
+    method public int setLnaEnabled(boolean);
+    method public void setOnTuneEventListener(@NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.frontend.OnTuneEventListener);
+    method public void setResourceLostListener(@NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.Tuner.OnResourceLostListener);
+    method public void shareFrontendFromTuner(@NonNull android.media.tv.tuner.Tuner);
+    method public int tune(@NonNull android.media.tv.tuner.frontend.FrontendSettings);
+    method public void updateResourcePriority(int, int);
     field public static final int INVALID_AV_SYNC_ID = -1; // 0xffffffff
     field public static final int INVALID_FILTER_ID = -1; // 0xffffffff
     field public static final int INVALID_STREAM_ID = 65535; // 0xffff
@@ -4942,7 +4865,7 @@
   }
 
   public class DvrSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.dvr.DvrSettings.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.dvr.DvrSettings.Builder builder();
     method public int getDataFormat();
     method public long getHighThreshold();
     method public long getLowThreshold();
@@ -4977,7 +4900,7 @@
 package android.media.tv.tuner.filter {
 
   public final class AlpFilterConfiguration extends android.media.tv.tuner.filter.FilterConfiguration {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.AlpFilterConfiguration.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.filter.AlpFilterConfiguration.Builder builder();
     method public int getLengthType();
     method public int getPacketType();
     method public int getType();
@@ -5008,11 +4931,11 @@
   }
 
   public class AvSettings extends android.media.tv.tuner.filter.Settings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.AvSettings.Builder builder(@NonNull android.content.Context, int, boolean);
+    method @NonNull public static android.media.tv.tuner.filter.AvSettings.Builder builder(int, boolean);
     method public boolean isPassthrough();
   }
 
-  public static class AvSettings.Builder extends android.media.tv.tuner.filter.Settings.Builder<android.media.tv.tuner.filter.AvSettings.Builder> {
+  public static class AvSettings.Builder {
     method @NonNull public android.media.tv.tuner.filter.AvSettings build();
     method @NonNull public android.media.tv.tuner.filter.AvSettings.Builder setPassthrough(boolean);
   }
@@ -5026,11 +4949,11 @@
   }
 
   public class DownloadSettings extends android.media.tv.tuner.filter.Settings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.DownloadSettings.Builder builder(@NonNull android.content.Context, int);
+    method @NonNull public static android.media.tv.tuner.filter.DownloadSettings.Builder builder(int);
     method public int getDownloadId();
   }
 
-  public static class DownloadSettings.Builder extends android.media.tv.tuner.filter.Settings.Builder<android.media.tv.tuner.filter.DownloadSettings.Builder> {
+  public static class DownloadSettings.Builder {
     method @NonNull public android.media.tv.tuner.filter.DownloadSettings build();
     method @NonNull public android.media.tv.tuner.filter.DownloadSettings.Builder setDownloadId(int);
   }
@@ -5088,7 +5011,7 @@
   }
 
   public final class IpFilterConfiguration extends android.media.tv.tuner.filter.FilterConfiguration {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.IpFilterConfiguration.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.filter.IpFilterConfiguration.Builder builder();
     method @NonNull @Size(min=4, max=16) public byte[] getDstIpAddress();
     method public int getDstPort();
     method @NonNull @Size(min=4, max=16) public byte[] getSrcIpAddress();
@@ -5127,7 +5050,7 @@
   }
 
   public final class MmtpFilterConfiguration extends android.media.tv.tuner.filter.FilterConfiguration {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.MmtpFilterConfiguration.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.filter.MmtpFilterConfiguration.Builder builder();
     method public int getMmtpPacketId();
     method public int getType();
   }
@@ -5150,7 +5073,7 @@
   }
 
   public class PesSettings extends android.media.tv.tuner.filter.Settings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.PesSettings.Builder builder(@NonNull android.content.Context, int);
+    method @NonNull public static android.media.tv.tuner.filter.PesSettings.Builder builder(int);
     method public int getStreamId();
     method public boolean isRaw();
   }
@@ -5162,7 +5085,7 @@
   }
 
   public class RecordSettings extends android.media.tv.tuner.filter.Settings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.RecordSettings.Builder builder(@NonNull android.content.Context, int);
+    method @NonNull public static android.media.tv.tuner.filter.RecordSettings.Builder builder(int);
     method public int getScIndexMask();
     method public int getScIndexType();
     method public int getTsIndexMask();
@@ -5196,7 +5119,7 @@
     field public static final int TS_INDEX_SPLICING_POINT_FLAG = 1024; // 0x400
   }
 
-  public static class RecordSettings.Builder extends android.media.tv.tuner.filter.Settings.Builder<android.media.tv.tuner.filter.RecordSettings.Builder> {
+  public static class RecordSettings.Builder {
     method @NonNull public android.media.tv.tuner.filter.RecordSettings build();
     method @NonNull public android.media.tv.tuner.filter.RecordSettings.Builder setScIndexMask(int);
     method @NonNull public android.media.tv.tuner.filter.RecordSettings.Builder setScIndexType(int);
@@ -5216,14 +5139,14 @@
     method public boolean isRepeat();
   }
 
-  public abstract static class SectionSettings.Builder<T extends android.media.tv.tuner.filter.SectionSettings.Builder<T>> extends android.media.tv.tuner.filter.Settings.Builder<android.media.tv.tuner.filter.SectionSettings.Builder<T>> {
+  public abstract static class SectionSettings.Builder<T extends android.media.tv.tuner.filter.SectionSettings.Builder<T>> {
     method @NonNull public T setCrcEnabled(boolean);
     method @NonNull public T setRaw(boolean);
     method @NonNull public T setRepeat(boolean);
   }
 
   public class SectionSettingsWithSectionBits extends android.media.tv.tuner.filter.SectionSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.SectionSettingsWithSectionBits.Builder builder(@NonNull android.content.Context, int);
+    method @NonNull public static android.media.tv.tuner.filter.SectionSettingsWithSectionBits.Builder builder(int);
     method @NonNull public byte[] getFilterBytes();
     method @NonNull public byte[] getMask();
     method @NonNull public byte[] getMode();
@@ -5237,7 +5160,7 @@
   }
 
   public class SectionSettingsWithTableInfo extends android.media.tv.tuner.filter.SectionSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.SectionSettingsWithTableInfo.Builder builder(@NonNull android.content.Context, int);
+    method @NonNull public static android.media.tv.tuner.filter.SectionSettingsWithTableInfo.Builder builder(int);
     method public int getTableId();
     method public int getVersion();
   }
@@ -5252,9 +5175,6 @@
     method public int getType();
   }
 
-  public abstract static class Settings.Builder<T extends android.media.tv.tuner.filter.Settings.Builder<T>> {
-  }
-
   public class TemiEvent extends android.media.tv.tuner.filter.FilterEvent {
     method @NonNull public byte[] getDescriptorData();
     method public byte getDescriptorTag();
@@ -5270,7 +5190,7 @@
   }
 
   public final class TlvFilterConfiguration extends android.media.tv.tuner.filter.FilterConfiguration {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.TlvFilterConfiguration.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.filter.TlvFilterConfiguration.Builder builder();
     method public int getPacketType();
     method public int getType();
     method public boolean isCompressedIpPacket();
@@ -5291,7 +5211,7 @@
   }
 
   public final class TsFilterConfiguration extends android.media.tv.tuner.filter.FilterConfiguration {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.filter.TsFilterConfiguration.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.filter.TsFilterConfiguration.Builder builder();
     method public int getTpid();
     method public int getType();
   }
@@ -5319,7 +5239,7 @@
   }
 
   public class AnalogFrontendSettings extends android.media.tv.tuner.frontend.FrontendSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.frontend.AnalogFrontendSettings.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.frontend.AnalogFrontendSettings.Builder builder();
     method public int getSifStandard();
     method public int getSignalType();
     method public int getType();
@@ -5370,7 +5290,7 @@
   }
 
   public class Atsc3FrontendSettings extends android.media.tv.tuner.frontend.FrontendSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder builder();
     method public int getBandwidth();
     method public int getDemodOutputFormat();
     method @NonNull public android.media.tv.tuner.frontend.Atsc3PlpSettings[] getPlpSettings();
@@ -5433,7 +5353,7 @@
   }
 
   public class Atsc3PlpSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.frontend.Atsc3PlpSettings.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.frontend.Atsc3PlpSettings.Builder builder();
     method public int getCodeRate();
     method public int getFec();
     method public int getInterleaveMode();
@@ -5455,7 +5375,7 @@
   }
 
   public class AtscFrontendSettings extends android.media.tv.tuner.frontend.FrontendSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.frontend.AtscFrontendSettings.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.frontend.AtscFrontendSettings.Builder builder();
     method public int getModulation();
     method public int getType();
     field public static final int MODULATION_AUTO = 1; // 0x1
@@ -5477,7 +5397,7 @@
   }
 
   public class DvbcFrontendSettings extends android.media.tv.tuner.frontend.FrontendSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder builder();
     method public int getAnnex();
     method public long getInnerFec();
     method public int getModulation();
@@ -5516,7 +5436,7 @@
   }
 
   public class DvbsCodeRate {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.frontend.DvbsCodeRate.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.frontend.DvbsCodeRate.Builder builder();
     method public int getBitsPer1000Symbol();
     method public long getInnerFec();
     method public boolean isLinear();
@@ -5538,7 +5458,7 @@
   }
 
   public class DvbsFrontendSettings extends android.media.tv.tuner.frontend.FrontendSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder builder();
     method @Nullable public android.media.tv.tuner.frontend.DvbsCodeRate getCodeRate();
     method public int getInputStreamId();
     method public int getModulation();
@@ -5608,7 +5528,7 @@
   }
 
   public class DvbtFrontendSettings extends android.media.tv.tuner.frontend.FrontendSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.frontend.DvbtFrontendSettings.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.frontend.DvbtFrontendSettings.Builder builder();
     method public int getBandwidth();
     method public int getConstellation();
     method public int getGuardInterval();
@@ -5709,7 +5629,7 @@
     method public int getAcquireRange();
     method public int getExclusiveGroupId();
     method @NonNull public android.util.Range<java.lang.Integer> getFrequencyRange();
-    method @NonNull public android.media.tv.tuner.frontend.FrontendCapabilities getFrontendCapability();
+    method @NonNull public android.media.tv.tuner.frontend.FrontendCapabilities getFrontendCapabilities();
     method public int getId();
     method @NonNull public int[] getStatusCapabilities();
     method @NonNull public android.util.Range<java.lang.Integer> getSymbolRateRange();
@@ -5770,7 +5690,7 @@
 
   public class FrontendStatus {
     method public int getAgc();
-    method @NonNull public android.media.tv.tuner.frontend.FrontendStatus.Atsc3PlpInfo[] getAtsc3PlpInfo();
+    method @NonNull public android.media.tv.tuner.frontend.FrontendStatus.Atsc3PlpTuningInfo[] getAtsc3PlpTuningInfo();
     method public int getBer();
     method public int getFreqOffset();
     method public int getHierarchy();
@@ -5790,7 +5710,7 @@
     method public boolean isDemodLocked();
     method public boolean isEwbs();
     method public boolean isLnaOn();
-    method public boolean isRfLock();
+    method public boolean isRfLocked();
     field public static final int FRONTEND_STATUS_TYPE_AGC = 14; // 0xe
     field public static final int FRONTEND_STATUS_TYPE_ATSC3_PLP_INFO = 21; // 0x15
     field public static final int FRONTEND_STATUS_TYPE_BER = 2; // 0x2
@@ -5815,10 +5735,10 @@
     field public static final int FRONTEND_STATUS_TYPE_SYMBOL_RATE = 7; // 0x7
   }
 
-  public static class FrontendStatus.Atsc3PlpInfo {
+  public static class FrontendStatus.Atsc3PlpTuningInfo {
     method public int getPlpId();
     method public int getUec();
-    method public boolean isLock();
+    method public boolean isLocked();
   }
 
   public class Isdbs3FrontendCapabilities extends android.media.tv.tuner.frontend.FrontendCapabilities {
@@ -5827,7 +5747,7 @@
   }
 
   public class Isdbs3FrontendSettings extends android.media.tv.tuner.frontend.FrontendSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.frontend.Isdbs3FrontendSettings.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.frontend.Isdbs3FrontendSettings.Builder builder();
     method public int getCodeRate();
     method public int getModulation();
     method public int getRolloff();
@@ -5876,7 +5796,7 @@
   }
 
   public class IsdbsFrontendSettings extends android.media.tv.tuner.frontend.FrontendSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.frontend.IsdbsFrontendSettings.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.frontend.IsdbsFrontendSettings.Builder builder();
     method public int getCodeRate();
     method public int getModulation();
     method public int getRolloff();
@@ -5922,7 +5842,7 @@
   }
 
   public class IsdbtFrontendSettings extends android.media.tv.tuner.frontend.FrontendSettings {
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.frontend.IsdbtFrontendSettings.Builder builder(@NonNull android.content.Context);
+    method @NonNull public static android.media.tv.tuner.frontend.IsdbtFrontendSettings.Builder builder();
     method public int getBandwidth();
     method public int getCodeRate();
     method public int getGuardInterval();
@@ -5967,20 +5887,20 @@
   }
 
   public interface ScanCallback {
-    method public void onAnalogSifStandard(int);
-    method public void onAtsc3PlpInfos(@NonNull android.media.tv.tuner.frontend.Atsc3PlpInfo[]);
-    method public void onDvbsStandard(int);
-    method public void onDvbtStandard(int);
-    method public void onFrequenciesReport(@NonNull int[]);
-    method public void onGroupIds(@NonNull int[]);
-    method public void onHierarchy(int);
-    method public void onInputStreamIds(@NonNull int[]);
+    method public void onAnalogSifStandardReported(int);
+    method public void onAtsc3PlpInfosReported(@NonNull android.media.tv.tuner.frontend.Atsc3PlpInfo[]);
+    method public void onDvbsStandardReported(int);
+    method public void onDvbtStandardReported(int);
+    method public void onFrequenciesReported(@NonNull int[]);
+    method public void onGroupIdsReported(@NonNull int[]);
+    method public void onHierarchyReported(int);
+    method public void onInputStreamIdsReported(@NonNull int[]);
     method public void onLocked();
-    method public void onPlpIds(@NonNull int[]);
+    method public void onPlpIdsReported(@NonNull int[]);
     method public void onProgress(@IntRange(from=0, to=100) int);
     method public void onScanStopped();
-    method public void onSignalType(int);
-    method public void onSymbolRates(@NonNull int[]);
+    method public void onSignalTypeReported(int);
+    method public void onSymbolRatesReported(@NonNull int[]);
   }
 
 }
@@ -6085,7 +6005,7 @@
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public boolean isTetheringSupported();
     method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_FACTORY}) public int registerNetworkProvider(@NonNull android.net.NetworkProvider);
     method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
-    method @Deprecated public void requestNetwork(@NonNull android.net.NetworkRequest, @NonNull android.net.ConnectivityManager.NetworkCallback, int, int, @NonNull android.os.Handler);
+    method @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public void requestNetwork(@NonNull android.net.NetworkRequest, int, int, @NonNull android.os.Handler, @NonNull android.net.ConnectivityManager.NetworkCallback);
     method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_AIRPLANE_MODE, android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void setAirplaneMode(boolean);
     method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public boolean shouldAvoidBadWifi();
     method @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public void startCaptivePortalApp(@NonNull android.net.Network, @NonNull android.os.Bundle);
@@ -6134,12 +6054,12 @@
     method public void release();
   }
 
-  public class InvalidPacketException extends java.lang.Exception {
+  public final class InvalidPacketException extends java.lang.Exception {
     ctor public InvalidPacketException(int);
+    method public int getError();
     field public static final int ERROR_INVALID_IP_ADDRESS = -21; // 0xffffffeb
     field public static final int ERROR_INVALID_LENGTH = -23; // 0xffffffe9
     field public static final int ERROR_INVALID_PORT = -22; // 0xffffffea
-    field public final int error;
   }
 
   public final class IpConfiguration implements android.os.Parcelable {
@@ -6193,12 +6113,12 @@
   }
 
   public class KeepalivePacketData {
-    ctor protected KeepalivePacketData(@NonNull java.net.InetAddress, int, @NonNull java.net.InetAddress, int, @NonNull byte[]) throws android.net.InvalidPacketException;
+    ctor protected KeepalivePacketData(@NonNull java.net.InetAddress, @IntRange(from=0, to=65535) int, @NonNull java.net.InetAddress, @IntRange(from=0, to=65535) int, @NonNull byte[]) throws android.net.InvalidPacketException;
+    method @NonNull public java.net.InetAddress getDstAddress();
+    method public int getDstPort();
     method @NonNull public byte[] getPacket();
-    field @NonNull public final java.net.InetAddress dstAddress;
-    field public final int dstPort;
-    field @NonNull public final java.net.InetAddress srcAddress;
-    field public final int srcPort;
+    method @NonNull public java.net.InetAddress getSrcAddress();
+    method public int getSrcPort();
   }
 
   public class LinkAddress implements android.os.Parcelable {
@@ -6219,6 +6139,7 @@
 
   public final class LinkProperties implements android.os.Parcelable {
     ctor public LinkProperties(@Nullable android.net.LinkProperties);
+    ctor public LinkProperties(@Nullable android.net.LinkProperties, boolean);
     method public boolean addDnsServer(@NonNull java.net.InetAddress);
     method public boolean addLinkAddress(@NonNull android.net.LinkAddress);
     method public boolean addPcscfServer(@NonNull java.net.InetAddress);
@@ -6241,7 +6162,6 @@
     method public boolean isIpv6Provisioned();
     method public boolean isProvisioned();
     method public boolean isReachable(@NonNull java.net.InetAddress);
-    method @NonNull public android.net.LinkProperties makeSensitiveFieldsParcelingCopy();
     method public boolean removeDnsServer(@NonNull java.net.InetAddress);
     method public boolean removeLinkAddress(@NonNull android.net.LinkAddress);
     method public boolean removeRoute(@NonNull android.net.RouteInfo);
@@ -6257,7 +6177,6 @@
   public final class MatchAllNetworkSpecifier extends android.net.NetworkSpecifier implements android.os.Parcelable {
     ctor public MatchAllNetworkSpecifier();
     method public int describeContents();
-    method public boolean satisfiedBy(android.net.NetworkSpecifier);
     method public void writeToParcel(@NonNull android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.net.MatchAllNetworkSpecifier> CREATOR;
   }
@@ -6271,28 +6190,28 @@
 
   public class Network implements android.os.Parcelable {
     ctor public Network(@NonNull android.net.Network);
+    method public int getNetId();
     method @NonNull public android.net.Network getPrivateDnsBypassingCopy();
-    field public final int netId;
   }
 
   public abstract class NetworkAgent {
     ctor public NetworkAgent(@NonNull android.content.Context, @NonNull android.os.Looper, @NonNull String, @NonNull android.net.NetworkCapabilities, @NonNull android.net.LinkProperties, int, @NonNull android.net.NetworkAgentConfig, @Nullable android.net.NetworkProvider);
     method @Nullable public android.net.Network getNetwork();
+    method public void markConnected();
     method public void onAddKeepalivePacketFilter(int, @NonNull android.net.KeepalivePacketData);
     method public void onAutomaticReconnectDisabled();
     method public void onNetworkUnwanted();
     method public void onRemoveKeepalivePacketFilter(int);
     method public void onSaveAcceptUnvalidated(boolean);
     method public void onSignalStrengthThresholdsUpdated(@NonNull int[]);
-    method public void onStartSocketKeepalive(int, int, @NonNull android.net.KeepalivePacketData);
+    method public void onStartSocketKeepalive(int, @NonNull java.time.Duration, @NonNull android.net.KeepalivePacketData);
     method public void onStopSocketKeepalive(int);
-    method public void onValidationStatus(int, @Nullable String);
+    method public void onValidationStatus(int, @Nullable android.net.Uri);
     method @NonNull public android.net.Network register();
-    method public void sendLinkProperties(@NonNull android.net.LinkProperties);
-    method public void sendNetworkCapabilities(@NonNull android.net.NetworkCapabilities);
-    method public void sendNetworkScore(int);
-    method public void sendSocketKeepaliveEvent(int, int);
-    method public void setConnected();
+    method public final void sendLinkProperties(@NonNull android.net.LinkProperties);
+    method public final void sendNetworkCapabilities(@NonNull android.net.NetworkCapabilities);
+    method public final void sendNetworkScore(@IntRange(from=0, to=99) int);
+    method public final void sendSocketKeepaliveEvent(int, int);
     method public void unregister();
     field public static final int VALIDATION_STATUS_NOT_VALID = 2; // 0x2
     field public static final int VALIDATION_STATUS_VALID = 1; // 0x1
@@ -6309,7 +6228,7 @@
     field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkAgentConfig> CREATOR;
   }
 
-  public static class NetworkAgentConfig.Builder {
+  public static final class NetworkAgentConfig.Builder {
     ctor public NetworkAgentConfig.Builder();
     method @NonNull public android.net.NetworkAgentConfig build();
     method @NonNull public android.net.NetworkAgentConfig.Builder setExplicitlySelected(boolean);
@@ -6321,18 +6240,33 @@
 
   public final class NetworkCapabilities implements android.os.Parcelable {
     method @NonNull public int[] getAdministratorUids();
-    method @Nullable public String getSSID();
+    method @Nullable public String getSsid();
     method @NonNull public int[] getTransportTypes();
     method public boolean satisfiedByNetworkCapabilities(@Nullable android.net.NetworkCapabilities);
-    method @NonNull public android.net.NetworkCapabilities setAdministratorUids(@NonNull int[]);
-    method @NonNull public android.net.NetworkCapabilities setRequestorPackageName(@NonNull String);
-    method @NonNull public android.net.NetworkCapabilities setRequestorUid(int);
-    method @NonNull public android.net.NetworkCapabilities setSSID(@Nullable String);
-    method @NonNull public android.net.NetworkCapabilities setTransportInfo(@NonNull android.net.TransportInfo);
     field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16
     field public static final int NET_CAPABILITY_PARTIAL_CONNECTIVITY = 24; // 0x18
   }
 
+  public static final class NetworkCapabilities.Builder {
+    ctor public NetworkCapabilities.Builder();
+    ctor public NetworkCapabilities.Builder(@NonNull android.net.NetworkCapabilities);
+    method @NonNull public android.net.NetworkCapabilities.Builder addCapability(int);
+    method @NonNull public android.net.NetworkCapabilities.Builder addTransportType(int);
+    method @NonNull public android.net.NetworkCapabilities build();
+    method @NonNull public android.net.NetworkCapabilities.Builder removeCapability(int);
+    method @NonNull public android.net.NetworkCapabilities.Builder removeTransportType(int);
+    method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public android.net.NetworkCapabilities.Builder setAdministratorUids(@NonNull int[]);
+    method @NonNull public android.net.NetworkCapabilities.Builder setLinkDownstreamBandwidthKbps(int);
+    method @NonNull public android.net.NetworkCapabilities.Builder setLinkUpstreamBandwidthKbps(int);
+    method @NonNull public android.net.NetworkCapabilities.Builder setNetworkSpecifier(@Nullable android.net.NetworkSpecifier);
+    method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public android.net.NetworkCapabilities.Builder setOwnerUid(int);
+    method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public android.net.NetworkCapabilities.Builder setRequestorPackageName(@Nullable String);
+    method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public android.net.NetworkCapabilities.Builder setRequestorUid(int);
+    method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_SIGNAL_STRENGTH_WAKEUP) public android.net.NetworkCapabilities.Builder setSignalStrength(int);
+    method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public android.net.NetworkCapabilities.Builder setSsid(@Nullable String);
+    method @NonNull public android.net.NetworkCapabilities.Builder setTransportInfo(@Nullable android.net.TransportInfo);
+  }
+
   public class NetworkKey implements android.os.Parcelable {
     ctor public NetworkKey(android.net.WifiKey);
     method @Nullable public static android.net.NetworkKey createFromScanResult(@NonNull android.net.wifi.ScanResult);
@@ -6348,8 +6282,8 @@
     ctor public NetworkProvider(@NonNull android.content.Context, @NonNull android.os.Looper, @NonNull String);
     method @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public void declareNetworkRequestUnfulfillable(@NonNull android.net.NetworkRequest);
     method public int getProviderId();
-    method public void onNetworkRequested(@NonNull android.net.NetworkRequest, int, int);
-    method public void onRequestWithdrawn(@NonNull android.net.NetworkRequest);
+    method public void onNetworkRequestWithdrawn(@NonNull android.net.NetworkRequest);
+    method public void onNetworkRequested(@NonNull android.net.NetworkRequest, @IntRange(from=0, to=99) int, int);
     field public static final int ID_NONE = -1; // 0xffffffff
   }
 
@@ -6362,7 +6296,6 @@
   public class NetworkRequest implements android.os.Parcelable {
     method @Nullable public String getRequestorPackageName();
     method public int getRequestorUid();
-    method public boolean satisfiedBy(@Nullable android.net.NetworkCapabilities);
   }
 
   public static class NetworkRequest.Builder {
@@ -6397,11 +6330,12 @@
   }
 
   public abstract class NetworkSpecifier {
+    method public boolean canBeSatisfiedBy(@Nullable android.net.NetworkSpecifier);
     method @Nullable public android.net.NetworkSpecifier redact();
-    method public abstract boolean satisfiedBy(@Nullable android.net.NetworkSpecifier);
   }
 
   public class NetworkStack {
+    method @Nullable public static android.os.IBinder getService();
     field public static final String PERMISSION_MAINLINE_NETWORK_STACK = "android.permission.MAINLINE_NETWORK_STACK";
   }
 
@@ -6500,10 +6434,6 @@
     method @NonNull public android.net.StaticIpConfiguration.Builder setIpAddress(@Nullable android.net.LinkAddress);
   }
 
-  public final class TelephonyNetworkSpecifier extends android.net.NetworkSpecifier implements android.os.Parcelable {
-    method public boolean satisfiedBy(android.net.NetworkSpecifier);
-  }
-
   public final class TetheredClient implements android.os.Parcelable {
     ctor public TetheredClient(@NonNull android.net.MacAddress, @NonNull java.util.Collection<android.net.TetheredClient.AddressInfo>, int);
     method public int describeContents();
@@ -6526,7 +6456,6 @@
     method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
     method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void requestLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.OnTetheringEntitlementResultListener);
     method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(@NonNull android.net.TetheringManager.TetheringRequest, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
-    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(int, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
     method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopAllTethering();
     method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopTethering(int);
     method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.ACCESS_NETWORK_STATE}) public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback);
@@ -6543,19 +6472,20 @@
     field public static final int TETHERING_WIFI = 0; // 0x0
     field public static final int TETHERING_WIFI_P2P = 3; // 0x3
     field public static final int TETHER_ERROR_DHCPSERVER_ERROR = 12; // 0xc
-    field public static final int TETHER_ERROR_DISABLE_NAT_ERROR = 9; // 0x9
-    field public static final int TETHER_ERROR_ENABLE_NAT_ERROR = 8; // 0x8
+    field public static final int TETHER_ERROR_DISABLE_FORWARDING_ERROR = 9; // 0x9
+    field public static final int TETHER_ERROR_ENABLE_FORWARDING_ERROR = 8; // 0x8
     field public static final int TETHER_ERROR_ENTITLEMENT_UNKNOWN = 13; // 0xd
     field public static final int TETHER_ERROR_IFACE_CFG_ERROR = 10; // 0xa
-    field public static final int TETHER_ERROR_MASTER_ERROR = 5; // 0x5
+    field public static final int TETHER_ERROR_INTERNAL_ERROR = 5; // 0x5
     field public static final int TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION = 15; // 0xf
     field public static final int TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION = 14; // 0xe
     field public static final int TETHER_ERROR_NO_ERROR = 0; // 0x0
-    field public static final int TETHER_ERROR_PROVISION_FAILED = 11; // 0xb
+    field public static final int TETHER_ERROR_PROVISIONING_FAILED = 11; // 0xb
     field public static final int TETHER_ERROR_SERVICE_UNAVAIL = 2; // 0x2
     field public static final int TETHER_ERROR_TETHER_IFACE_ERROR = 6; // 0x6
     field public static final int TETHER_ERROR_UNAVAIL_IFACE = 4; // 0x4
     field public static final int TETHER_ERROR_UNKNOWN_IFACE = 1; // 0x1
+    field public static final int TETHER_ERROR_UNKNOWN_TYPE = 16; // 0x10
     field public static final int TETHER_ERROR_UNSUPPORTED = 3; // 0x3
     field public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR = 7; // 0x7
     field public static final int TETHER_HARDWARE_OFFLOAD_FAILED = 2; // 0x2
@@ -6567,40 +6497,35 @@
     method public void onTetheringEntitlementResult(int);
   }
 
-  public abstract static class TetheringManager.StartTetheringCallback {
-    ctor public TetheringManager.StartTetheringCallback();
-    method public void onTetheringFailed(int);
-    method public void onTetheringStarted();
+  public static interface TetheringManager.StartTetheringCallback {
+    method public default void onTetheringFailed(int);
+    method public default void onTetheringStarted();
   }
 
-  public abstract static class TetheringManager.TetheringEventCallback {
-    ctor public TetheringManager.TetheringEventCallback();
-    method public void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
-    method public void onError(@NonNull String, int);
-    method public void onOffloadStatusChanged(int);
-    method @Deprecated public void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps);
-    method public void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
-    method public void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
-    method public void onTetheringSupported(boolean);
-    method public void onUpstreamChanged(@Nullable android.net.Network);
-  }
-
-  @Deprecated public static class TetheringManager.TetheringInterfaceRegexps {
-    ctor @Deprecated public TetheringManager.TetheringInterfaceRegexps(@NonNull String[], @NonNull String[], @NonNull String[]);
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableBluetoothRegexs();
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableUsbRegexs();
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
+  public static interface TetheringManager.TetheringEventCallback {
+    method public default void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
+    method public default void onError(@NonNull String, int);
+    method public default void onOffloadStatusChanged(int);
+    method public default void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
+    method public default void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
+    method public default void onTetheringSupported(boolean);
+    method public default void onUpstreamChanged(@Nullable android.net.Network);
   }
 
   public static class TetheringManager.TetheringRequest {
+    method @Nullable public android.net.LinkAddress getClientStaticIpv4Address();
+    method @Nullable public android.net.LinkAddress getLocalIpv4Address();
+    method public boolean getShouldShowEntitlementUi();
+    method public int getTetheringType();
+    method public boolean isExemptFromEntitlementCheck();
   }
 
   public static class TetheringManager.TetheringRequest.Builder {
     ctor public TetheringManager.TetheringRequest.Builder(int);
     method @NonNull public android.net.TetheringManager.TetheringRequest build();
     method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setExemptFromEntitlementCheck(boolean);
-    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setSilentProvisioning(boolean);
-    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder useStaticIpv4Addresses(@NonNull android.net.LinkAddress);
+    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setShouldShowEntitlementUi(boolean);
+    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setStaticIpv4Addresses(@NonNull android.net.LinkAddress, @NonNull android.net.LinkAddress);
   }
 
   public class TrafficStats {
@@ -7071,7 +6996,7 @@
     field @Deprecated public byte id;
   }
 
-  public class ScanResult implements android.os.Parcelable {
+  public final class ScanResult implements android.os.Parcelable {
     field public static final int CIPHER_CCMP = 3; // 0x3
     field public static final int CIPHER_GCMP_256 = 4; // 0x4
     field public static final int CIPHER_NONE = 0; // 0x0
@@ -7495,10 +7420,6 @@
     field public int numUsage;
   }
 
-  public final class WifiNetworkSpecifier extends android.net.NetworkSpecifier implements android.os.Parcelable {
-    method public boolean satisfiedBy(android.net.NetworkSpecifier);
-  }
-
   public final class WifiNetworkSuggestion implements android.os.Parcelable {
     method @NonNull public android.net.wifi.WifiConfiguration getWifiConfiguration();
   }
@@ -7689,10 +7610,6 @@
     method @Deprecated public android.net.NetworkSpecifier createNetworkSpecifierPmk(@NonNull android.net.wifi.aware.PeerHandle, @NonNull byte[]);
   }
 
-  public final class WifiAwareNetworkSpecifier extends android.net.NetworkSpecifier implements android.os.Parcelable {
-    method public boolean satisfiedBy(android.net.NetworkSpecifier);
-  }
-
   public class WifiAwareSession implements java.lang.AutoCloseable {
     method public android.net.NetworkSpecifier createNetworkSpecifierPmk(int, @NonNull byte[], @NonNull byte[]);
   }
@@ -8175,7 +8092,7 @@
     field public static final String ACTION_UPDATE_CARRIER_PROVISIONING_URLS = "android.intent.action.UPDATE_CARRIER_PROVISIONING_URLS";
     field public static final String ACTION_UPDATE_CONVERSATION_ACTIONS = "android.intent.action.UPDATE_CONVERSATION_ACTIONS";
     field public static final String ACTION_UPDATE_CT_LOGS = "android.intent.action.UPDATE_CT_LOGS";
-    field @RequiresPermission("android.permission.UPDATE_CONFIG") public static final String ACTION_UPDATE_EMERGENCY_NUMBER_DB = "android.os.action.UPDATE_EMERGENCY_NUMBER_DB";
+    field public static final String ACTION_UPDATE_EMERGENCY_NUMBER_DB = "android.os.action.UPDATE_EMERGENCY_NUMBER_DB";
     field public static final String ACTION_UPDATE_INTENT_FIREWALL = "android.intent.action.UPDATE_INTENT_FIREWALL";
     field public static final String ACTION_UPDATE_LANG_ID = "android.intent.action.UPDATE_LANG_ID";
     field public static final String ACTION_UPDATE_NETWORK_WATCHLIST = "android.intent.action.UPDATE_NETWORK_WATCHLIST";
@@ -8457,12 +8374,12 @@
 
   public class RecoverySystem {
     method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void cancelScheduledUpdate(android.content.Context) throws java.io.IOException;
-    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static boolean clearPrepareForUnattendedUpdate(@NonNull android.content.Context) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void clearPrepareForUnattendedUpdate(@NonNull android.content.Context) throws java.io.IOException;
     method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void installPackage(android.content.Context, java.io.File, boolean) throws java.io.IOException;
     method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void prepareForUnattendedUpdate(@NonNull android.content.Context, @NonNull String, @Nullable android.content.IntentSender) throws java.io.IOException;
     method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void processPackage(android.content.Context, java.io.File, android.os.RecoverySystem.ProgressListener, android.os.Handler) throws java.io.IOException;
     method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void processPackage(android.content.Context, java.io.File, android.os.RecoverySystem.ProgressListener) throws java.io.IOException;
-    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static boolean rebootAndApply(@NonNull android.content.Context, @NonNull String, @NonNull String) throws java.io.IOException;
+    method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void rebootAndApply(@NonNull android.content.Context, @NonNull String, @NonNull String) throws java.io.IOException;
     method @RequiresPermission(allOf={android.Manifest.permission.RECOVERY, android.Manifest.permission.REBOOT}) public static void rebootWipeAb(android.content.Context, java.io.File, String) throws java.io.IOException;
     method @RequiresPermission(android.Manifest.permission.RECOVERY) public static void scheduleUpdateOnBoot(android.content.Context, java.io.File) throws java.io.IOException;
     method public static boolean verifyPackageCompatibility(java.io.File) throws java.io.IOException;
@@ -8537,31 +8454,6 @@
     field public static final int STATUS_WAITING_REBOOT = 5; // 0x5
   }
 
-  public class TelephonyServiceManager {
-    method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getCarrierConfigServiceRegisterer();
-    method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getEuiccCardControllerServiceRegisterer();
-    method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getEuiccControllerService();
-    method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getIccPhoneBookServiceRegisterer();
-    method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getOpportunisticNetworkServiceRegisterer();
-    method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getPhoneSubServiceRegisterer();
-    method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getSmsServiceRegisterer();
-    method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getSubscriptionServiceRegisterer();
-    method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getTelephonyImsServiceRegisterer();
-    method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getTelephonyRcsMessageServiceRegisterer();
-    method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getTelephonyServiceRegisterer();
-  }
-
-  public static class TelephonyServiceManager.ServiceNotFoundException extends java.lang.Exception {
-    ctor public TelephonyServiceManager.ServiceNotFoundException(@NonNull String);
-  }
-
-  public static final class TelephonyServiceManager.ServiceRegisterer {
-    method @Nullable public android.os.IBinder get();
-    method @NonNull public android.os.IBinder getOrThrow() throws android.os.TelephonyServiceManager.ServiceNotFoundException;
-    method public void register(@NonNull android.os.IBinder);
-    method @Nullable public android.os.IBinder tryGet();
-  }
-
   public class UpdateEngine {
     ctor public UpdateEngine();
     method @NonNull @WorkerThread public android.os.UpdateEngine.AllocateSpaceResult allocateSpace(@NonNull String, @NonNull String[]);
@@ -8746,7 +8638,6 @@
     method public long getSleepTimeMillis();
     method @NonNull public long getTimeInRatMicros(int);
     method @NonNull public long getTimeInRxSignalStrengthLevelMicros(@IntRange(from=android.telephony.CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN, to=android.telephony.CellSignalStrength.SIGNAL_STRENGTH_GREAT) int);
-    method @NonNull public long getTxTimeMillis(@IntRange(from=android.telephony.ModemActivityInfo.TX_POWER_LEVEL_0, to=android.telephony.ModemActivityInfo.TX_POWER_LEVEL_4) int);
     method public void writeToParcel(@NonNull android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.os.connectivity.CellularBatteryStats> CREATOR;
   }
@@ -8893,21 +8784,17 @@
     method @BinderThread public abstract void onRevokeRuntimePermissions(@NonNull java.util.Map<java.lang.String,java.util.List<java.lang.String>>, boolean, int, @NonNull String, @NonNull java.util.function.Consumer<java.util.Map<java.lang.String,java.util.List<java.lang.String>>>);
     method @BinderThread public abstract void onSetRuntimePermissionGrantStateByDeviceAdmin(@NonNull String, @NonNull String, @NonNull String, int, @NonNull java.util.function.Consumer<java.lang.Boolean>);
     method @BinderThread public void onStageAndApplyRuntimePermissionsBackup(@NonNull android.os.UserHandle, @NonNull java.io.InputStream, @NonNull Runnable);
+    method @BinderThread public void onUpdateUserSensitivePermissionFlags(int, @NonNull java.util.concurrent.Executor, @NonNull Runnable);
     method @BinderThread public void onUpdateUserSensitivePermissionFlags(int, @NonNull Runnable);
     field public static final String SERVICE_INTERFACE = "android.permission.PermissionControllerService";
   }
 
   public final class PermissionManager {
+    method public int checkDeviceIdentifierAccess(@Nullable String, @Nullable String, @Nullable String, int, int);
     method @NonNull @RequiresPermission(android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY) public java.util.Set<java.lang.String> getAutoRevokeExemptionGrantedPackages();
     method @NonNull @RequiresPermission(android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY) public java.util.Set<java.lang.String> getAutoRevokeExemptionRequestedPackages();
     method @IntRange(from=0) @RequiresPermission(anyOf={android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY, android.Manifest.permission.UPGRADE_RUNTIME_PERMISSIONS}) public int getRuntimePermissionsVersion();
     method @NonNull public java.util.List<android.permission.PermissionManager.SplitPermissionInfo> getSplitPermissions();
-    method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledCarrierApps(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
-    method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledImsServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
-    method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledTelephonyDataServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
-    method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToLuiApp(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
-    method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void revokeDefaultPermissionsFromDisabledTelephonyDataServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
-    method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void revokeDefaultPermissionsFromLuiApps(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
     method @RequiresPermission(anyOf={android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY, android.Manifest.permission.UPGRADE_RUNTIME_PERMISSIONS}) public void setRuntimePermissionsVersion(@IntRange(from=0) int);
     method @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void startOneTimePermissionSession(@NonNull String, long, int, int);
     method @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void stopOneTimePermissionSession(@NonNull String);
@@ -9416,76 +9303,6 @@
     field @NonNull public static final String ENABLE_TEST_ALERT_PREF = "enable_test_alerts";
   }
 
-  public static final class Telephony.SimInfo {
-    field public static final String ACCESS_RULES = "access_rules";
-    field public static final String ACCESS_RULES_FROM_CARRIER_CONFIGS = "access_rules_from_carrier_configs";
-    field public static final String ALLOWED_NETWORK_TYPES = "allowed_network_types";
-    field public static final String CARD_ID = "card_id";
-    field public static final String CARRIER_ID = "carrier_id";
-    field public static final String CARRIER_NAME = "carrier_name";
-    field public static final String CB_ALERT_REMINDER_INTERVAL = "alert_reminder_interval";
-    field public static final String CB_ALERT_SOUND_DURATION = "alert_sound_duration";
-    field public static final String CB_ALERT_SPEECH = "enable_alert_speech";
-    field public static final String CB_ALERT_VIBRATE = "enable_alert_vibrate";
-    field public static final String CB_AMBER_ALERT = "enable_cmas_amber_alerts";
-    field public static final String CB_CHANNEL_50_ALERT = "enable_channel_50_alerts";
-    field public static final String CB_CMAS_TEST_ALERT = "enable_cmas_test_alerts";
-    field public static final String CB_EMERGENCY_ALERT = "enable_emergency_alerts";
-    field public static final String CB_ETWS_TEST_ALERT = "enable_etws_test_alerts";
-    field public static final String CB_EXTREME_THREAT_ALERT = "enable_cmas_extreme_threat_alerts";
-    field public static final String CB_OPT_OUT_DIALOG = "show_cmas_opt_out_dialog";
-    field public static final String CB_SEVERE_THREAT_ALERT = "enable_cmas_severe_threat_alerts";
-    field public static final String COLOR = "color";
-    field @NonNull public static final android.net.Uri CONTENT_URI;
-    field public static final String DATA_ENABLED_OVERRIDE_RULES = "data_enabled_override_rules";
-    field public static final String DATA_ROAMING = "data_roaming";
-    field public static final int DATA_ROAMING_DEFAULT = 0; // 0x0
-    field public static final int DATA_ROAMING_DISABLE = 0; // 0x0
-    field public static final int DATA_ROAMING_ENABLE = 1; // 0x1
-    field public static final String DISPLAY_NAME = "display_name";
-    field public static final String EHPLMNS = "ehplmns";
-    field public static final String ENHANCED_4G_MODE_ENABLED = "volte_vt_enabled";
-    field public static final String GROUP_OWNER = "group_owner";
-    field public static final String GROUP_UUID = "group_uuid";
-    field public static final String HPLMNS = "hplmns";
-    field public static final String ICC_ID = "icc_id";
-    field public static final String IMSI = "imsi";
-    field public static final String IMS_RCS_UCE_ENABLED = "ims_rcs_uce_enabled";
-    field public static final String ISO_COUNTRY_CODE = "iso_country_code";
-    field public static final String IS_EMBEDDED = "is_embedded";
-    field public static final String IS_OPPORTUNISTIC = "is_opportunistic";
-    field public static final String IS_REMOVABLE = "is_removable";
-    field public static final String MCC = "mcc";
-    field public static final String MCC_STRING = "mcc_string";
-    field public static final String MNC = "mnc";
-    field public static final String MNC_STRING = "mnc_string";
-    field public static final String NAME_SOURCE = "name_source";
-    field public static final int NAME_SOURCE_CARRIER = 3; // 0x3
-    field public static final int NAME_SOURCE_DEFAULT = 0; // 0x0
-    field public static final int NAME_SOURCE_SIM_PNN = 4; // 0x4
-    field public static final int NAME_SOURCE_SIM_SPN = 1; // 0x1
-    field public static final int NAME_SOURCE_USER_INPUT = 2; // 0x2
-    field public static final String NUMBER = "number";
-    field public static final String PROFILE_CLASS = "profile_class";
-    field public static final int PROFILE_CLASS_DEFAULT = -1; // 0xffffffff
-    field public static final int PROFILE_CLASS_OPERATIONAL = 2; // 0x2
-    field public static final int PROFILE_CLASS_PROVISIONING = 1; // 0x1
-    field public static final int PROFILE_CLASS_TESTING = 0; // 0x0
-    field public static final int PROFILE_CLASS_UNSET = -1; // 0xffffffff
-    field public static final int SIM_NOT_INSERTED = -1; // 0xffffffff
-    field public static final String SIM_SLOT_INDEX = "sim_id";
-    field public static final String SUBSCRIPTION_TYPE = "subscription_type";
-    field public static final int SUBSCRIPTION_TYPE_LOCAL_SIM = 0; // 0x0
-    field public static final int SUBSCRIPTION_TYPE_REMOTE_SIM = 1; // 0x1
-    field public static final String UICC_APPLICATIONS_ENABLED = "uicc_applications_enabled";
-    field public static final String UNIQUE_KEY_SUBSCRIPTION_ID = "_id";
-    field public static final String VT_IMS_ENABLED = "vt_ims_enabled";
-    field public static final String WFC_IMS_ENABLED = "wfc_ims_enabled";
-    field public static final String WFC_IMS_MODE = "wfc_ims_mode";
-    field public static final String WFC_IMS_ROAMING_ENABLED = "wfc_ims_roaming_enabled";
-    field public static final String WFC_IMS_ROAMING_MODE = "wfc_ims_roaming_mode";
-  }
-
   public static final class Telephony.Sms.Intents {
     field public static final String ACTION_SMS_EMERGENCY_CB_RECEIVED = "android.provider.action.SMS_EMERGENCY_CB_RECEIVED";
   }
@@ -9728,6 +9545,7 @@
     method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent);
     method @Nullable public android.os.Bundle onGetInlineSuggestionsRendererInfo();
     method @Nullable public android.view.View onRenderSuggestion(@NonNull android.service.autofill.InlinePresentation, int, int);
+    method public final void startIntentSender(@NonNull android.content.IntentSender);
     field public static final String SERVICE_INTERFACE = "android.service.autofill.InlineSuggestionRenderService";
   }
 
@@ -9772,7 +9590,6 @@
     method @NonNull public android.service.autofill.augmented.FillResponse build();
     method @NonNull public android.service.autofill.augmented.FillResponse.Builder setClientState(@NonNull android.os.Bundle);
     method @NonNull public android.service.autofill.augmented.FillResponse.Builder setFillWindow(@NonNull android.service.autofill.augmented.FillWindow);
-    method @NonNull public android.service.autofill.augmented.FillResponse.Builder setInlineActions(@NonNull java.util.List<android.service.autofill.InlineAction>);
     method @NonNull public android.service.autofill.augmented.FillResponse.Builder setInlineSuggestions(@NonNull java.util.List<android.service.autofill.Dataset>);
   }
 
@@ -10243,6 +10060,7 @@
     method @NonNull public final android.os.IBinder onBind(@NonNull android.content.Intent);
     method public abstract void onEndSession(@NonNull String) throws java.io.IOException;
     method public abstract void onStartSession(@NonNull String, int, @NonNull android.os.ParcelFileDescriptor, @NonNull java.io.File, @NonNull java.io.File) throws java.io.IOException;
+    method public abstract void onVolumeStateChanged(@NonNull android.os.storage.StorageVolume) throws java.io.IOException;
     field public static final int FLAG_SESSION_ATTRIBUTE_INDEXABLE = 2; // 0x2
     field public static final int FLAG_SESSION_TYPE_FUSE = 1; // 0x1
     field public static final String SERVICE_INTERFACE = "android.service.storage.ExternalStorageService";
@@ -10645,9 +10463,6 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall();
     method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle);
-    field public static final int CALL_SOURCE_EMERGENCY_DIALPAD = 1; // 0x1
-    field public static final int CALL_SOURCE_EMERGENCY_SHORTCUT = 2; // 0x2
-    field public static final int CALL_SOURCE_UNSPECIFIED = 0; // 0x0
     field public static final String EXTRA_CALL_BACK_INTENT = "android.telecom.extra.CALL_BACK_INTENT";
     field public static final String EXTRA_CLEAR_MISSED_CALLS_INTENT = "android.telecom.extra.CLEAR_MISSED_CALLS_INTENT";
     field public static final String EXTRA_CONNECTION_SERVICE = "android.telecom.extra.CONNECTION_SERVICE";
@@ -10703,8 +10518,8 @@
     method public int getNumRtpPacketsTransmitted();
     method public int getNumRtpPacketsTransmittedLost();
     method public int getUplinkCallQualityLevel();
-    method public boolean isIncomingSilenceDetected();
-    method public boolean isOutgoingSilenceDetected();
+    method public boolean isIncomingSilenceDetectedAtCallSetup();
+    method public boolean isOutgoingSilenceDetectedAtCallSetup();
     method public boolean isRtpInactivityDetected();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int CALL_QUALITY_BAD = 4; // 0x4
@@ -10956,30 +10771,6 @@
     field public static final String MBMS_STREAMING_SERVICE_ACTION = "android.telephony.action.EmbmsStreaming";
   }
 
-  public final class ModemActivityInfo implements android.os.Parcelable {
-    ctor public ModemActivityInfo(long, int, int, @NonNull int[], int);
-    method public int describeContents();
-    method public int getIdleTimeMillis();
-    method public int getReceiveTimeMillis();
-    method public int getSleepTimeMillis();
-    method public long getTimestamp();
-    method @NonNull public java.util.List<android.telephony.ModemActivityInfo.TransmitPower> getTransmitPowerInfo();
-    method public boolean isValid();
-    method public void writeToParcel(android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ModemActivityInfo> CREATOR;
-    field public static final int TX_POWER_LEVELS = 5; // 0x5
-    field public static final int TX_POWER_LEVEL_0 = 0; // 0x0
-    field public static final int TX_POWER_LEVEL_1 = 1; // 0x1
-    field public static final int TX_POWER_LEVEL_2 = 2; // 0x2
-    field public static final int TX_POWER_LEVEL_3 = 3; // 0x3
-    field public static final int TX_POWER_LEVEL_4 = 4; // 0x4
-  }
-
-  public class ModemActivityInfo.TransmitPower {
-    method @NonNull public android.util.Range<java.lang.Integer> getPowerRangeInDbm();
-    method public int getTimeInMillis();
-  }
-
   public final class NetworkRegistrationInfo implements android.os.Parcelable {
     method @Nullable public android.telephony.DataSpecificRegistrationInfo getDataSpecificInfo();
     method public int getRegistrationState();
@@ -11204,21 +10995,15 @@
   }
 
   public class ServiceState implements android.os.Parcelable {
-    method public void fillInNotifierBundle(@NonNull android.os.Bundle);
     method @Nullable public android.telephony.NetworkRegistrationInfo getNetworkRegistrationInfo(int, int);
     method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoListForDomain(int);
     method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoListForTransportType(int);
-    method @NonNull public static android.telephony.ServiceState newFromBundle(@NonNull android.os.Bundle);
     field public static final int ROAMING_TYPE_DOMESTIC = 2; // 0x2
     field public static final int ROAMING_TYPE_INTERNATIONAL = 3; // 0x3
     field public static final int ROAMING_TYPE_NOT_ROAMING = 0; // 0x0
     field public static final int ROAMING_TYPE_UNKNOWN = 1; // 0x1
   }
 
-  public class SignalStrength implements android.os.Parcelable {
-    ctor public SignalStrength(@NonNull android.telephony.SignalStrength);
-  }
-
   public final class SmsCbCmasInfo implements android.os.Parcelable {
     ctor public SmsCbCmasInfo(int, int, int, int, int, int);
     method public int describeContents();
@@ -11343,11 +11128,8 @@
   }
 
   public final class SmsManager {
-    method @RequiresPermission(android.Manifest.permission.ACCESS_MESSAGES_ON_ICC) public boolean copyMessageToIcc(@Nullable byte[], @NonNull byte[], int);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_MESSAGES_ON_ICC) public boolean deleteMessageFromIcc(int);
     method public boolean disableCellBroadcastRange(int, int, int);
     method public boolean enableCellBroadcastRange(int, int, int);
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_MESSAGES_ON_ICC) public java.util.List<android.telephony.SmsMessage> getMessagesFromIcc();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getPremiumSmsConsent(@NonNull String);
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getSmsCapacityOnIcc();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void sendMultipartTextMessageWithoutPersisting(String, String, java.util.List<java.lang.String>, java.util.List<android.app.PendingIntent>, java.util.List<android.app.PendingIntent>);
@@ -11374,10 +11156,10 @@
   public class SubscriptionManager {
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean canDisablePhysicalSubscription();
     method public boolean canManageSubscription(@NonNull android.telephony.SubscriptionInfo, @NonNull String);
-    method @NonNull public int[] getActiveAndHiddenSubscriptionIdList();
-    method @NonNull public int[] getActiveSubscriptionIdList();
+    method @NonNull @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int[] getActiveSubscriptionIdList();
     method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.SubscriptionInfo getActiveSubscriptionInfoForIcc(@NonNull String);
     method public java.util.List<android.telephony.SubscriptionInfo> getAvailableSubscriptionInfoList();
+    method @NonNull @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int[] getCompleteActiveSubscriptionIdList();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getEnabledSubscriptionId(int);
     method @NonNull public static android.content.res.Resources getResourcesForSubId(@NonNull android.content.Context, int);
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isSubscriptionEnabled(int);
@@ -11386,14 +11168,12 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultDataSubId(int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultSmsSubId(int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultVoiceSubscriptionId(int);
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setDisplayName(@Nullable String, int, int);
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setIconTint(@ColorInt int, int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPreferredDataSubscriptionId(int, boolean, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Integer>);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setSubscriptionEnabled(int, boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUiccApplicationsEnabled(int, boolean);
     field @RequiresPermission(android.Manifest.permission.MANAGE_SUBSCRIPTION_PLANS) public static final String ACTION_SUBSCRIPTION_PLANS_CHANGED = "android.telephony.action.SUBSCRIPTION_PLANS_CHANGED";
     field @NonNull public static final android.net.Uri ADVANCED_CALLING_ENABLED_CONTENT_URI;
-    field public static final int PROFILE_CLASS_DEFAULT = -1; // 0xffffffff
+    field @Deprecated public static final int PROFILE_CLASS_DEFAULT = -1; // 0xffffffff
     field public static final int PROFILE_CLASS_OPERATIONAL = 2; // 0x2
     field public static final int PROFILE_CLASS_PROVISIONING = 1; // 0x1
     field public static final int PROFILE_CLASS_TESTING = 0; // 0x0
@@ -11411,11 +11191,6 @@
     method @Deprecated public static android.telephony.SubscriptionPlan.Builder createRecurringWeekly(java.time.ZonedDateTime);
   }
 
-  public class TelephonyFrameworkInitializer {
-    method public static void registerServiceWrappers();
-    method public static void setTelephonyServiceManager(@NonNull android.os.TelephonyServiceManager);
-  }
-
   public final class TelephonyHistogram implements android.os.Parcelable {
     ctor public TelephonyHistogram(int, int, int);
     ctor public TelephonyHistogram(android.telephony.TelephonyHistogram);
@@ -11500,8 +11275,8 @@
     method public boolean isDataConnectivityPossible();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataEnabledForApn(int);
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isEmergencyAssistanceEnabled();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean isIccLockEnabled();
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle();
-    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isInEmergencySmsMode();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isLteCdmaEvdoGsmWcdmaEnabled();
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isOpportunisticNetworkEnabled();
@@ -11514,11 +11289,9 @@
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean matchesCurrentSimOperator(@NonNull String, int, @Nullable String);
     method public boolean needsOtaServiceProvisioning();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyOtaEmergencyNumberDbInstalled();
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyUserActivity();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean rebootRadio();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void reportDefaultNetworkStatus(boolean);
     method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.MODIFY_PHONE_STATE}) public void requestCellInfoUpdate(@NonNull android.os.WorkSource, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CellInfoCallback);
-    method public void requestModemActivityInfo(@NonNull android.os.ResultReceiver);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void requestNumberVerification(@NonNull android.telephony.PhoneNumberRange, long, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.NumberVerificationCallback);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void resetAllCarrierActions();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void resetCarrierKeysForImsiEncryption();
@@ -11528,7 +11301,6 @@
     method @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL) public void resetSettings();
     method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setAllowedCarriers(int, java.util.List<android.service.carrier.CarrierIdentifier>);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setAllowedNetworkTypes(long);
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setAlwaysAllowMmsData(boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setCarrierDataEnabled(boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setCarrierRestrictionRules(@NonNull android.telephony.CarrierRestrictionRules);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataActivationState(int);
@@ -11548,72 +11320,38 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoiceActivationState(int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void shutdownAllRadios();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean supplyPin(String);
-    method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int[] supplyPinReportResult(String);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int[] supplyPinReportResult(String);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean supplyPuk(String, String);
-    method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int[] supplyPukReportResult(String, String);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int[] supplyPukReportResult(String, String);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean switchSlots(int[]);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void toggleRadioOnOff();
     method @RequiresPermission(android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION) public void updateOtaEmergencyNumberDbFilePath(@NonNull android.os.ParcelFileDescriptor);
     method public void updateServiceLocation();
     field @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public static final String ACTION_ANOMALY_REPORTED = "android.telephony.action.ANOMALY_REPORTED";
-    field public static final String ACTION_CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE = "com.android.internal.telephony.CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE";
-    field public static final String ACTION_CARRIER_SIGNAL_PCO_VALUE = "com.android.internal.telephony.CARRIER_SIGNAL_PCO_VALUE";
-    field public static final String ACTION_CARRIER_SIGNAL_REDIRECTED = "com.android.internal.telephony.CARRIER_SIGNAL_REDIRECTED";
-    field public static final String ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED = "com.android.internal.telephony.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED";
-    field public static final String ACTION_CARRIER_SIGNAL_RESET = "com.android.internal.telephony.CARRIER_SIGNAL_RESET";
     field public static final String ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED = "android.intent.action.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED";
     field public static final String ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED = "android.intent.action.ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED";
     field public static final String ACTION_EMERGENCY_ASSISTANCE = "android.telephony.action.EMERGENCY_ASSISTANCE";
     field public static final String ACTION_EMERGENCY_CALLBACK_MODE_CHANGED = "android.intent.action.EMERGENCY_CALLBACK_MODE_CHANGED";
     field public static final String ACTION_EMERGENCY_CALL_STATE_CHANGED = "android.intent.action.EMERGENCY_CALL_STATE_CHANGED";
     field public static final String ACTION_REQUEST_OMADM_CONFIGURATION_UPDATE = "com.android.omadm.service.CONFIGURATION_UPDATE";
-    field public static final String ACTION_SERVICE_PROVIDERS_UPDATED = "android.telephony.action.SERVICE_PROVIDERS_UPDATED";
     field public static final String ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS = "android.telephony.action.SHOW_NOTICE_ECM_BLOCK_OTHERS";
     field public static final String ACTION_SIM_APPLICATION_STATE_CHANGED = "android.telephony.action.SIM_APPLICATION_STATE_CHANGED";
     field public static final String ACTION_SIM_CARD_STATE_CHANGED = "android.telephony.action.SIM_CARD_STATE_CHANGED";
     field public static final String ACTION_SIM_SLOT_STATUS_CHANGED = "android.telephony.action.SIM_SLOT_STATUS_CHANGED";
-    field public static final int CARD_POWER_DOWN = 0; // 0x0
-    field public static final int CARD_POWER_UP = 1; // 0x1
-    field public static final int CARD_POWER_UP_PASS_THROUGH = 2; // 0x2
     field public static final int CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES = -2; // 0xfffffffe
     field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
     field public static final int CARRIER_PRIVILEGE_STATUS_NO_ACCESS = 0; // 0x0
     field public static final int CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED = -1; // 0xffffffff
     field public static final String EXTRA_ANOMALY_DESCRIPTION = "android.telephony.extra.ANOMALY_DESCRIPTION";
     field public static final String EXTRA_ANOMALY_ID = "android.telephony.extra.ANOMALY_ID";
-    field @Deprecated public static final String EXTRA_APN_PROTOCOL = "apnProto";
-    field public static final String EXTRA_APN_PROTOCOL_INT = "apnProtoInt";
-    field @Deprecated public static final String EXTRA_APN_TYPE = "apnType";
-    field public static final String EXTRA_APN_TYPE_INT = "apnTypeInt";
-    field public static final String EXTRA_DATA_SPN = "android.telephony.extra.DATA_SPN";
-    field public static final String EXTRA_DEFAULT_NETWORK_AVAILABLE = "defaultNetworkAvailable";
-    field public static final String EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE = "android.telephony.extra.DEFAULT_SUBSCRIPTION_SELECT_TYPE";
-    field public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_ALL = 4; // 0x4
-    field public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA = 1; // 0x1
-    field public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_NONE = 0; // 0x0
-    field public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_SMS = 3; // 0x3
-    field public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_VOICE = 2; // 0x2
-    field public static final String EXTRA_ERROR_CODE = "errorCode";
-    field public static final String EXTRA_PCO_ID = "pcoId";
-    field public static final String EXTRA_PCO_VALUE = "pcoValue";
     field public static final String EXTRA_PHONE_IN_ECM_STATE = "android.telephony.extra.PHONE_IN_ECM_STATE";
     field public static final String EXTRA_PHONE_IN_EMERGENCY_CALL = "android.telephony.extra.PHONE_IN_EMERGENCY_CALL";
-    field public static final String EXTRA_PLMN = "android.telephony.extra.PLMN";
-    field public static final String EXTRA_REDIRECTION_URL = "redirectionUrl";
-    field public static final String EXTRA_SHOW_PLMN = "android.telephony.extra.SHOW_PLMN";
-    field public static final String EXTRA_SHOW_SPN = "android.telephony.extra.SHOW_SPN";
-    field public static final String EXTRA_SIM_COMBINATION_NAMES = "android.telephony.extra.SIM_COMBINATION_NAMES";
-    field public static final String EXTRA_SIM_COMBINATION_WARNING_TYPE = "android.telephony.extra.SIM_COMBINATION_WARNING_TYPE";
-    field public static final int EXTRA_SIM_COMBINATION_WARNING_TYPE_DUAL_CDMA = 1; // 0x1
-    field public static final int EXTRA_SIM_COMBINATION_WARNING_TYPE_NONE = 0; // 0x0
     field public static final String EXTRA_SIM_STATE = "android.telephony.extra.SIM_STATE";
-    field public static final String EXTRA_SPN = "android.telephony.extra.SPN";
     field public static final String EXTRA_VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL = "android.telephony.extra.VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL";
     field public static final String EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING = "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING";
     field public static final int INVALID_EMERGENCY_NUMBER_DB_VERSION = -1; // 0xffffffff
     field public static final int KEY_TYPE_EPDG = 1; // 0x1
     field public static final int KEY_TYPE_WLAN = 2; // 0x2
-    field public static final String MODEM_ACTIVITY_RESULT_KEY = "controller_activity";
     field public static final long NETWORK_TYPE_BITMASK_1xRTT = 64L; // 0x40L
     field public static final long NETWORK_TYPE_BITMASK_CDMA = 8L; // 0x8L
     field public static final long NETWORK_TYPE_BITMASK_EDGE = 2L; // 0x2L
@@ -12954,9 +12692,6 @@
 
   public final class ContentCaptureManager {
     method public boolean isContentCaptureFeatureEnabled();
-  }
-
-  public abstract class ContentCaptureSession implements java.lang.AutoCloseable {
     field public static final int NO_SESSION_ID = 0; // 0x0
   }
 
diff --git a/api/system-removed.txt b/api/system-removed.txt
index 23e2499..3acc225 100644
--- a/api/system-removed.txt
+++ b/api/system-removed.txt
@@ -136,7 +136,7 @@
     field public boolean truncated;
   }
 
-  public class ScanResult implements android.os.Parcelable {
+  public final class ScanResult implements android.os.Parcelable {
     field public boolean untrusted;
   }
 
diff --git a/api/test-current.txt b/api/test-current.txt
index 286408d..ba6feed 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -111,6 +111,7 @@
     method public void setLaunchActivityType(int);
     method public void setLaunchTaskId(int);
     method public void setLaunchWindowingMode(int);
+    method public void setTaskAlwaysOnTop(boolean);
     method public void setTaskOverlay(boolean, boolean);
   }
 
@@ -425,11 +426,11 @@
 
   public final class NotificationChannel implements android.os.Parcelable {
     method public int getOriginalImportance();
-    method public boolean isBlockableSystem();
+    method public boolean isBlockable();
     method public boolean isImportanceLockedByCriticalDeviceFunction();
     method public boolean isImportanceLockedByOEM();
     method public void lockFields(int);
-    method public void setBlockableSystem(boolean);
+    method public void setBlockable(boolean);
     method public void setDeleted(boolean);
     method public void setFgServiceShown(boolean);
     method public void setImportanceLockedByCriticalDeviceFunction(boolean);
@@ -534,6 +535,7 @@
     method public void setWindowingMode(int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int ACTIVITY_TYPE_ASSISTANT = 4; // 0x4
+    field public static final int ACTIVITY_TYPE_DREAM = 5; // 0x5
     field public static final int ACTIVITY_TYPE_HOME = 2; // 0x2
     field public static final int ACTIVITY_TYPE_RECENTS = 3; // 0x3
     field public static final int ACTIVITY_TYPE_STANDARD = 1; // 0x1
@@ -597,7 +599,6 @@
 
   public class BlobStoreManager {
     method @Nullable public android.app.blob.LeaseInfo getLeaseInfo(@NonNull android.app.blob.BlobHandle) throws java.io.IOException;
-    method @NonNull public java.util.List<android.app.blob.BlobHandle> getLeasedBlobs() throws java.io.IOException;
     method public void waitForIdle(long) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException;
   }
 
@@ -829,7 +830,6 @@
     field public static final String DEVICE_IDLE_CONTROLLER = "deviceidle";
     field public static final String DREAM_SERVICE = "dream";
     field public static final String ETHERNET_SERVICE = "ethernet";
-    field public static final String NETWORK_STACK_SERVICE = "network_stack";
     field public static final String PERMISSION_SERVICE = "permission";
     field public static final String POWER_WHITELIST_MANAGER = "power_whitelist";
     field public static final String ROLLBACK_SERVICE = "rollback";
@@ -974,6 +974,7 @@
     field public static final String FEATURE_FILE_BASED_ENCRYPTION = "android.software.file_based_encryption";
     field public static final int FLAG_PERMISSION_APPLY_RESTRICTION = 16384; // 0x4000
     field public static final int FLAG_PERMISSION_GRANTED_BY_ROLE = 32768; // 0x8000
+    field public static final int FLAG_PERMISSION_ONE_TIME = 65536; // 0x10000
     field public static final int FLAG_PERMISSION_POLICY_FIXED = 4; // 0x4
     field public static final int FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT = 2048; // 0x800
     field public static final int FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT = 4096; // 0x1000
@@ -1754,6 +1755,7 @@
 
   public class EthernetManager {
     method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public android.net.EthernetManager.TetheredInterfaceRequest requestTetheredInterface(@NonNull java.util.concurrent.Executor, @NonNull android.net.EthernetManager.TetheredInterfaceCallback);
+    method public void setIncludeTestInterfaces(boolean);
   }
 
   public static interface EthernetManager.TetheredInterfaceCallback {
@@ -1790,6 +1792,7 @@
 
   public final class LinkProperties implements android.os.Parcelable {
     ctor public LinkProperties(@Nullable android.net.LinkProperties);
+    ctor public LinkProperties(@Nullable android.net.LinkProperties, boolean);
     method public boolean addDnsServer(@NonNull java.net.InetAddress);
     method public boolean addLinkAddress(@NonNull android.net.LinkAddress);
     method @Nullable public android.net.Uri getCaptivePortalApiUrl();
@@ -1804,7 +1807,6 @@
     method public boolean isIpv6Provisioned();
     method public boolean isProvisioned();
     method public boolean isReachable(@NonNull java.net.InetAddress);
-    method @NonNull public android.net.LinkProperties makeSensitiveFieldsParcelingCopy();
     method public boolean removeDnsServer(@NonNull java.net.InetAddress);
     method public boolean removeLinkAddress(@NonNull android.net.LinkAddress);
     method public boolean removeRoute(@NonNull android.net.RouteInfo);
@@ -1819,17 +1821,42 @@
 
   public class Network implements android.os.Parcelable {
     ctor public Network(@NonNull android.net.Network);
+    method public int getNetId();
     method @NonNull public android.net.Network getPrivateDnsBypassingCopy();
   }
 
   public final class NetworkCapabilities implements android.os.Parcelable {
+    method @NonNull public int[] getAdministratorUids();
     method public int[] getCapabilities();
+    method @Nullable public String getSsid();
     method @NonNull public int[] getTransportTypes();
     method public boolean satisfiedByNetworkCapabilities(@Nullable android.net.NetworkCapabilities);
     field public static final int TRANSPORT_TEST = 7; // 0x7
   }
 
+  public static final class NetworkCapabilities.Builder {
+    ctor public NetworkCapabilities.Builder();
+    ctor public NetworkCapabilities.Builder(@NonNull android.net.NetworkCapabilities);
+    method @NonNull public android.net.NetworkCapabilities.Builder addCapability(int);
+    method @NonNull public android.net.NetworkCapabilities.Builder addTransportType(int);
+    method @NonNull public android.net.NetworkCapabilities build();
+    method @NonNull public android.net.NetworkCapabilities.Builder removeCapability(int);
+    method @NonNull public android.net.NetworkCapabilities.Builder removeTransportType(int);
+    method @NonNull @RequiresPermission("android.permission.NETWORK_FACTORY") public android.net.NetworkCapabilities.Builder setAdministratorUids(@NonNull int[]);
+    method @NonNull public android.net.NetworkCapabilities.Builder setLinkDownstreamBandwidthKbps(int);
+    method @NonNull public android.net.NetworkCapabilities.Builder setLinkUpstreamBandwidthKbps(int);
+    method @NonNull public android.net.NetworkCapabilities.Builder setNetworkSpecifier(@Nullable android.net.NetworkSpecifier);
+    method @NonNull @RequiresPermission("android.permission.NETWORK_FACTORY") public android.net.NetworkCapabilities.Builder setOwnerUid(int);
+    method @NonNull @RequiresPermission("android.permission.NETWORK_FACTORY") public android.net.NetworkCapabilities.Builder setRequestorPackageName(@Nullable String);
+    method @NonNull @RequiresPermission("android.permission.NETWORK_FACTORY") public android.net.NetworkCapabilities.Builder setRequestorUid(int);
+    method @NonNull @RequiresPermission("android.permission.NETWORK_SIGNAL_STRENGTH_WAKEUP") public android.net.NetworkCapabilities.Builder setSignalStrength(int);
+    method @NonNull @RequiresPermission("android.permission.NETWORK_FACTORY") public android.net.NetworkCapabilities.Builder setSsid(@Nullable String);
+    method @NonNull public android.net.NetworkCapabilities.Builder setTransportInfo(@Nullable android.net.TransportInfo);
+  }
+
   public class NetworkStack {
+    method @Nullable public static android.os.IBinder getService();
+    method public static void setServiceForTest(@Nullable android.os.IBinder);
     field public static final String PERMISSION_MAINLINE_NETWORK_STACK = "android.permission.MAINLINE_NETWORK_STACK";
   }
 
@@ -1903,7 +1930,6 @@
     method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
     method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void requestLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.OnTetheringEntitlementResultListener);
     method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(@NonNull android.net.TetheringManager.TetheringRequest, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
-    method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(int, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
     method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void stopAllTethering();
     method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.WRITE_SETTINGS}) public void stopTethering(int);
     method @RequiresPermission(anyOf={"android.permission.TETHER_PRIVILEGED", android.Manifest.permission.ACCESS_NETWORK_STATE}) public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback);
@@ -1920,19 +1946,20 @@
     field public static final int TETHERING_WIFI = 0; // 0x0
     field public static final int TETHERING_WIFI_P2P = 3; // 0x3
     field public static final int TETHER_ERROR_DHCPSERVER_ERROR = 12; // 0xc
-    field public static final int TETHER_ERROR_DISABLE_NAT_ERROR = 9; // 0x9
-    field public static final int TETHER_ERROR_ENABLE_NAT_ERROR = 8; // 0x8
+    field public static final int TETHER_ERROR_DISABLE_FORWARDING_ERROR = 9; // 0x9
+    field public static final int TETHER_ERROR_ENABLE_FORWARDING_ERROR = 8; // 0x8
     field public static final int TETHER_ERROR_ENTITLEMENT_UNKNOWN = 13; // 0xd
     field public static final int TETHER_ERROR_IFACE_CFG_ERROR = 10; // 0xa
-    field public static final int TETHER_ERROR_MASTER_ERROR = 5; // 0x5
+    field public static final int TETHER_ERROR_INTERNAL_ERROR = 5; // 0x5
     field public static final int TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION = 15; // 0xf
     field public static final int TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION = 14; // 0xe
     field public static final int TETHER_ERROR_NO_ERROR = 0; // 0x0
-    field public static final int TETHER_ERROR_PROVISION_FAILED = 11; // 0xb
+    field public static final int TETHER_ERROR_PROVISIONING_FAILED = 11; // 0xb
     field public static final int TETHER_ERROR_SERVICE_UNAVAIL = 2; // 0x2
     field public static final int TETHER_ERROR_TETHER_IFACE_ERROR = 6; // 0x6
     field public static final int TETHER_ERROR_UNAVAIL_IFACE = 4; // 0x4
     field public static final int TETHER_ERROR_UNKNOWN_IFACE = 1; // 0x1
+    field public static final int TETHER_ERROR_UNKNOWN_TYPE = 16; // 0x10
     field public static final int TETHER_ERROR_UNSUPPORTED = 3; // 0x3
     field public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR = 7; // 0x7
     field public static final int TETHER_HARDWARE_OFFLOAD_FAILED = 2; // 0x2
@@ -1944,40 +1971,35 @@
     method public void onTetheringEntitlementResult(int);
   }
 
-  public abstract static class TetheringManager.StartTetheringCallback {
-    ctor public TetheringManager.StartTetheringCallback();
-    method public void onTetheringFailed(int);
-    method public void onTetheringStarted();
+  public static interface TetheringManager.StartTetheringCallback {
+    method public default void onTetheringFailed(int);
+    method public default void onTetheringStarted();
   }
 
-  public abstract static class TetheringManager.TetheringEventCallback {
-    ctor public TetheringManager.TetheringEventCallback();
-    method public void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
-    method public void onError(@NonNull String, int);
-    method public void onOffloadStatusChanged(int);
-    method @Deprecated public void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps);
-    method public void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
-    method public void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
-    method public void onTetheringSupported(boolean);
-    method public void onUpstreamChanged(@Nullable android.net.Network);
-  }
-
-  @Deprecated public static class TetheringManager.TetheringInterfaceRegexps {
-    ctor @Deprecated public TetheringManager.TetheringInterfaceRegexps(@NonNull String[], @NonNull String[], @NonNull String[]);
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableBluetoothRegexs();
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableUsbRegexs();
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
+  public static interface TetheringManager.TetheringEventCallback {
+    method public default void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
+    method public default void onError(@NonNull String, int);
+    method public default void onOffloadStatusChanged(int);
+    method public default void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
+    method public default void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
+    method public default void onTetheringSupported(boolean);
+    method public default void onUpstreamChanged(@Nullable android.net.Network);
   }
 
   public static class TetheringManager.TetheringRequest {
+    method @Nullable public android.net.LinkAddress getClientStaticIpv4Address();
+    method @Nullable public android.net.LinkAddress getLocalIpv4Address();
+    method public boolean getShouldShowEntitlementUi();
+    method public int getTetheringType();
+    method public boolean isExemptFromEntitlementCheck();
   }
 
   public static class TetheringManager.TetheringRequest.Builder {
     ctor public TetheringManager.TetheringRequest.Builder(int);
     method @NonNull public android.net.TetheringManager.TetheringRequest build();
     method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder setExemptFromEntitlementCheck(boolean);
-    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder setSilentProvisioning(boolean);
-    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder useStaticIpv4Addresses(@NonNull android.net.LinkAddress);
+    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder setShouldShowEntitlementUi(boolean);
+    method @NonNull @RequiresPermission("android.permission.TETHER_PRIVILEGED") public android.net.TetheringManager.TetheringRequest.Builder setStaticIpv4Addresses(@NonNull android.net.LinkAddress, @NonNull android.net.LinkAddress);
   }
 
   public class TrafficStats {
@@ -2999,6 +3021,7 @@
     field public static final String DOZE_ALWAYS_ON = "doze_always_on";
     field @Deprecated public static final String ENABLED_NOTIFICATION_POLICY_ACCESS_PACKAGES = "enabled_notification_policy_access_packages";
     field public static final String ENABLED_VR_LISTENERS = "enabled_vr_listeners";
+    field public static final String IMMERSIVE_MODE_CONFIRMATIONS = "immersive_mode_confirmations";
     field public static final String LOCATION_ACCESS_CHECK_DELAY_MILLIS = "location_access_check_delay_millis";
     field public static final String LOCATION_ACCESS_CHECK_INTERVAL_MILLIS = "location_access_check_interval_millis";
     field public static final String LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS = "lock_screen_allow_private_notifications";
@@ -3171,6 +3194,7 @@
     method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent);
     method @Nullable public android.os.Bundle onGetInlineSuggestionsRendererInfo();
     method @Nullable public android.view.View onRenderSuggestion(@NonNull android.service.autofill.InlinePresentation, int, int);
+    method public final void startIntentSender(@NonNull android.content.IntentSender);
     field public static final String SERVICE_INTERFACE = "android.service.autofill.InlineSuggestionRenderService";
   }
 
@@ -3260,7 +3284,6 @@
     method @NonNull public android.service.autofill.augmented.FillResponse build();
     method @NonNull public android.service.autofill.augmented.FillResponse.Builder setClientState(@NonNull android.os.Bundle);
     method @NonNull public android.service.autofill.augmented.FillResponse.Builder setFillWindow(@NonNull android.service.autofill.augmented.FillWindow);
-    method @NonNull public android.service.autofill.augmented.FillResponse.Builder setInlineActions(@NonNull java.util.List<android.service.autofill.InlineAction>);
     method @NonNull public android.service.autofill.augmented.FillResponse.Builder setInlineSuggestions(@NonNull java.util.List<android.service.autofill.Dataset>);
   }
 
@@ -3625,8 +3648,8 @@
     method public int getNumRtpPacketsTransmitted();
     method public int getNumRtpPacketsTransmittedLost();
     method public int getUplinkCallQualityLevel();
-    method public boolean isIncomingSilenceDetected();
-    method public boolean isOutgoingSilenceDetected();
+    method public boolean isIncomingSilenceDetectedAtCallSetup();
+    method public boolean isOutgoingSilenceDetectedAtCallSetup();
     method public boolean isRtpInactivityDetected();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int CALL_QUALITY_BAD = 4; // 0x4
@@ -3779,43 +3802,6 @@
     field public static final int UNKNOWN_CARRIER_ID_LIST_VERSION = -1; // 0xffffffff
   }
 
-  public class TelephonyRegistryManager {
-    method public void addOnOpportunisticSubscriptionsChangedListener(@NonNull android.telephony.SubscriptionManager.OnOpportunisticSubscriptionsChangedListener, @NonNull java.util.concurrent.Executor);
-    method public void addOnSubscriptionsChangedListener(@NonNull android.telephony.SubscriptionManager.OnSubscriptionsChangedListener, @NonNull java.util.concurrent.Executor);
-    method public void listenForSubscriber(int, @NonNull String, @NonNull String, @NonNull android.telephony.PhoneStateListener, int, boolean);
-    method public void notifyActiveDataSubIdChanged(int);
-    method public void notifyBarringInfoChanged(int, int, @NonNull android.telephony.BarringInfo);
-    method public void notifyCallForwardingChanged(int, boolean);
-    method public void notifyCallQualityChanged(int, int, @NonNull android.telephony.CallQuality, int);
-    method public void notifyCallStateChanged(int, int, int, @Nullable String);
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyCallStateChangedForAllSubscriptions(int, @Nullable String);
-    method public void notifyCarrierNetworkChange(boolean);
-    method public void notifyCellInfoChanged(int, @NonNull java.util.List<android.telephony.CellInfo>);
-    method public void notifyCellLocation(int, @NonNull android.telephony.CellIdentity);
-    method public void notifyDataActivationStateChanged(int, int, int);
-    method public void notifyDataActivityChanged(int, int);
-    method public void notifyDataConnectionForSubscriber(int, int, int, @Nullable android.telephony.PreciseDataConnectionState);
-    method public void notifyDisconnectCause(int, int, int, int);
-    method public void notifyDisplayInfoChanged(int, int, @NonNull android.telephony.DisplayInfo);
-    method public void notifyEmergencyNumberList(int, int);
-    method public void notifyImsDisconnectCause(int, @NonNull android.telephony.ims.ImsReasonInfo);
-    method public void notifyMessageWaitingChanged(int, int, boolean);
-    method public void notifyOutgoingEmergencyCall(int, int, @NonNull android.telephony.emergency.EmergencyNumber);
-    method public void notifyOutgoingEmergencySms(int, int, @NonNull android.telephony.emergency.EmergencyNumber);
-    method public void notifyPhoneCapabilityChanged(@NonNull android.telephony.PhoneCapability);
-    method public void notifyPreciseCallState(int, int, int, int, int);
-    method public void notifyPreciseDataConnectionFailed(int, int, int, @Nullable String, int);
-    method public void notifyRadioPowerStateChanged(int, int, int);
-    method public void notifyRegistrationFailed(int, int, @NonNull android.telephony.CellIdentity, @NonNull String, int, int, int);
-    method public void notifyServiceStateChanged(int, int, @NonNull android.telephony.ServiceState);
-    method public void notifySignalStrengthChanged(int, int, @NonNull android.telephony.SignalStrength);
-    method public void notifySrvccStateChanged(int, int);
-    method public void notifyUserMobileDataStateChanged(int, int, boolean);
-    method public void notifyVoiceActivationStateChanged(int, int, int);
-    method public void removeOnOpportunisticSubscriptionsChangedListener(@NonNull android.telephony.SubscriptionManager.OnOpportunisticSubscriptionsChangedListener);
-    method public void removeOnSubscriptionsChangedListener(@NonNull android.telephony.SubscriptionManager.OnSubscriptionsChangedListener);
-  }
-
 }
 
 package android.telephony.emergency {
diff --git a/cmds/content/src/com/android/commands/content/Content.java b/cmds/content/src/com/android/commands/content/Content.java
index 59544a9..ca1d598 100644
--- a/cmds/content/src/com/android/commands/content/Content.java
+++ b/cmds/content/src/com/android/commands/content/Content.java
@@ -32,8 +32,11 @@
 import android.os.Process;
 import android.os.UserHandle;
 import android.text.TextUtils;
+import android.util.Pair;
 
 import java.io.FileDescriptor;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * This class is a command line utility for manipulating content. A client
@@ -72,7 +75,7 @@
             "usage: adb shell content [subcommand] [options]\n"
                     + "\n"
                     + "usage: adb shell content insert --uri <URI> [--user <USER_ID>]"
-                    + " --bind <BINDING> [--bind <BINDING>...]\n"
+                    + " --bind <BINDING> [--bind <BINDING>...] [--extra <BINDING>...]\n"
                     + "  <URI> a content provider URI.\n"
                     + "  <BINDING> binds a typed value to a column and is formatted:\n"
                     + "  <COLUMN_NAME>:<TYPE>:<COLUMN_VALUE> where:\n"
@@ -84,7 +87,8 @@
                     + "  adb shell content insert --uri content://settings/secure --bind name:s:new_setting"
                     + " --bind value:s:new_value\n"
                     + "\n"
-                    + "usage: adb shell content update --uri <URI> [--user <USER_ID>] [--where <WHERE>]\n"
+                    + "usage: adb shell content update --uri <URI> [--user <USER_ID>]"
+                    + " [--where <WHERE>] [--extra <BINDING>...]\n"
                     + "  <WHERE> is a SQL style where clause in quotes (You have to escape single quotes"
                     + " - see example below).\n"
                     + "  Example:\n"
@@ -93,14 +97,15 @@
                     + " value:s:newer_value --where \"name=\'new_setting\'\"\n"
                     + "\n"
                     + "usage: adb shell content delete --uri <URI> [--user <USER_ID>] --bind <BINDING>"
-                    + " [--bind <BINDING>...] [--where <WHERE>]\n"
+                    + " [--bind <BINDING>...] [--where <WHERE>] [--extra <BINDING>...]\n"
                     + "  Example:\n"
                     + "  # Remove \"new_setting\" secure setting.\n"
                     + "  adb shell content delete --uri content://settings/secure "
                     + "--where \"name=\'new_setting\'\"\n"
                     + "\n"
                     + "usage: adb shell content query --uri <URI> [--user <USER_ID>]"
-                    + " [--projection <PROJECTION>] [--where <WHERE>] [--sort <SORT_ORDER>]\n"
+                    + " [--projection <PROJECTION>] [--where <WHERE>] [--sort <SORT_ORDER>]"
+                    + " [--extra <BINDING>...]\n"
                     + "  <PROJECTION> is a list of colon separated column names and is formatted:\n"
                     + "  <COLUMN_NAME>[:<COLUMN_NAME>...]\n"
                     + "  <SORT_ORDER> is the order in which rows in the result should be sorted.\n"
@@ -196,6 +201,7 @@
             Uri uri = null;
             int userId = UserHandle.USER_SYSTEM;
             ContentValues values = new ContentValues();
+            Bundle extras = new Bundle();
             for (String argument; (argument = mTokenizer.nextArg()) != null;) {
                 if (ARGUMENT_URI.equals(argument)) {
                     uri = Uri.parse(argumentValueRequired(argument));
@@ -203,6 +209,8 @@
                     userId = Integer.parseInt(argumentValueRequired(argument));
                 } else if (ARGUMENT_BIND.equals(argument)) {
                     parseBindValue(values);
+                } else if (ARGUMENT_EXTRA.equals(argument)) {
+                    parseBindValue(extras);
                 } else {
                     throw new IllegalArgumentException("Unsupported argument: " + argument);
                 }
@@ -215,20 +223,23 @@
                 throw new IllegalArgumentException("Bindings not specified."
                         + " Did you specify --bind argument(s)?");
             }
-            return new InsertCommand(uri, userId, values);
+            return new InsertCommand(uri, userId, values, extras);
         }
 
         private DeleteCommand parseDeleteCommand() {
             Uri uri = null;
             int userId = UserHandle.USER_SYSTEM;
-            String where = null;
+            Bundle extras = new Bundle();
             for (String argument; (argument = mTokenizer.nextArg())!= null;) {
                 if (ARGUMENT_URI.equals(argument)) {
                     uri = Uri.parse(argumentValueRequired(argument));
                 } else if (ARGUMENT_USER.equals(argument)) {
                     userId = Integer.parseInt(argumentValueRequired(argument));
                 } else if (ARGUMENT_WHERE.equals(argument)) {
-                    where = argumentValueRequired(argument);
+                    extras.putString(ContentResolver.QUERY_ARG_SQL_SELECTION,
+                            argumentValueRequired(argument));
+                } else if (ARGUMENT_EXTRA.equals(argument)) {
+                    parseBindValue(extras);
                 } else {
                     throw new IllegalArgumentException("Unsupported argument: " + argument);
                 }
@@ -237,23 +248,26 @@
                 throw new IllegalArgumentException("Content provider URI not specified."
                         + " Did you specify --uri argument?");
             }
-            return new DeleteCommand(uri, userId, where);
+            return new DeleteCommand(uri, userId, extras);
         }
 
         private UpdateCommand parseUpdateCommand() {
             Uri uri = null;
             int userId = UserHandle.USER_SYSTEM;
-            String where = null;
             ContentValues values = new ContentValues();
+            Bundle extras = new Bundle();
             for (String argument; (argument = mTokenizer.nextArg())!= null;) {
                 if (ARGUMENT_URI.equals(argument)) {
                     uri = Uri.parse(argumentValueRequired(argument));
                 } else if (ARGUMENT_USER.equals(argument)) {
                     userId = Integer.parseInt(argumentValueRequired(argument));
                 } else if (ARGUMENT_WHERE.equals(argument)) {
-                    where = argumentValueRequired(argument);
+                    extras.putString(ContentResolver.QUERY_ARG_SQL_SELECTION,
+                            argumentValueRequired(argument));
                 } else if (ARGUMENT_BIND.equals(argument)) {
                     parseBindValue(values);
+                } else if (ARGUMENT_EXTRA.equals(argument)) {
+                    parseBindValue(extras);
                 } else {
                     throw new IllegalArgumentException("Unsupported argument: " + argument);
                 }
@@ -266,7 +280,7 @@
                 throw new IllegalArgumentException("Bindings not specified."
                         + " Did you specify --bind argument(s)?");
             }
-            return new UpdateCommand(uri, userId, values, where);
+            return new UpdateCommand(uri, userId, values, extras);
         }
 
         public CallCommand parseCallCommand() {
@@ -274,7 +288,7 @@
             int userId = UserHandle.USER_SYSTEM;
             String arg = null;
             Uri uri = null;
-            ContentValues values = new ContentValues();
+            Bundle extras = new Bundle();
             for (String argument; (argument = mTokenizer.nextArg())!= null;) {
                 if (ARGUMENT_URI.equals(argument)) {
                     uri = Uri.parse(argumentValueRequired(argument));
@@ -285,11 +299,10 @@
                 } else if (ARGUMENT_ARG.equals(argument)) {
                     arg = argumentValueRequired(argument);
                 } else if (ARGUMENT_EXTRA.equals(argument)) {
-                    parseBindValue(values);
+                    parseBindValue(extras);
                 } else {
                     throw new IllegalArgumentException("Unsupported argument: " + argument);
                 }
-
             }
             if (uri == null) {
                 throw new IllegalArgumentException("Content provider URI not specified."
@@ -298,7 +311,7 @@
             if (method == null) {
                 throw new IllegalArgumentException("Content provider method not specified.");
             }
-            return new CallCommand(uri, userId, method, arg, values);
+            return new CallCommand(uri, userId, method, arg, extras);
         }
 
         private GetTypeCommand parseGetTypeCommand() {
@@ -363,19 +376,22 @@
             Uri uri = null;
             int userId = UserHandle.USER_SYSTEM;
             String[] projection = null;
-            String sort = null;
-            String where = null;
+            Bundle extras = new Bundle();
             for (String argument; (argument = mTokenizer.nextArg())!= null;) {
                 if (ARGUMENT_URI.equals(argument)) {
                     uri = Uri.parse(argumentValueRequired(argument));
                 } else if (ARGUMENT_USER.equals(argument)) {
                     userId = Integer.parseInt(argumentValueRequired(argument));
                 } else if (ARGUMENT_WHERE.equals(argument)) {
-                    where = argumentValueRequired(argument);
+                    extras.putString(ContentResolver.QUERY_ARG_SQL_SELECTION,
+                            argumentValueRequired(argument));
                 } else if (ARGUMENT_SORT.equals(argument)) {
-                    sort = argumentValueRequired(argument);
+                    extras.putString(ContentResolver.QUERY_ARG_SQL_SORT_ORDER,
+                            argumentValueRequired(argument));
                 } else if (ARGUMENT_PROJECTION.equals(argument)) {
                     projection = argumentValueRequired(argument).split("[\\s]*:[\\s]*");
+                } else if (ARGUMENT_EXTRA.equals(argument)) {
+                    parseBindValue(extras);
                 } else {
                     throw new IllegalArgumentException("Unsupported argument: " + argument);
                 }
@@ -384,40 +400,76 @@
                 throw new IllegalArgumentException("Content provider URI not specified."
                         + " Did you specify --uri argument?");
             }
-            return new QueryCommand(uri, userId, projection, where, sort);
+            return new QueryCommand(uri, userId, projection, extras);
         }
 
-        private void parseBindValue(ContentValues values) {
+        private List<String> splitWithEscaping(String argument, char splitChar) {
+            final List<String> res = new ArrayList<>();
+            final StringBuilder cur = new StringBuilder();
+            for (int i = 0; i < argument.length(); i++) {
+                char c = argument.charAt(i);
+                if (c == '\\') {
+                    if (++i == argument.length()) {
+                        throw new IllegalArgumentException("Invalid escaping");
+                    } else {
+                        // Skip escaping char and insert next
+                        c = argument.charAt(i);
+                        cur.append(c);
+                    }
+                } else if (c == splitChar) {
+                    // Splitting char means next string
+                    res.add(cur.toString());
+                    cur.setLength(0);
+                } else {
+                    // Copy non-escaping and non-splitting char
+                    cur.append(c);
+                }
+            }
+            res.add(cur.toString());
+            return res;
+        }
+
+        private Pair<String, Object> parseBindValue() {
             String argument = mTokenizer.nextArg();
             if (TextUtils.isEmpty(argument)) {
                 throw new IllegalArgumentException("Binding not well formed: " + argument);
             }
-            final int firstColonIndex = argument.indexOf(COLON);
-            if (firstColonIndex < 0) {
+            final List<String> split = splitWithEscaping(argument, COLON.charAt(0));
+            if (split.size() != 3) {
                 throw new IllegalArgumentException("Binding not well formed: " + argument);
             }
-            final int secondColonIndex = argument.indexOf(COLON, firstColonIndex + 1);
-            if (secondColonIndex < 0) {
-                throw new IllegalArgumentException("Binding not well formed: " + argument);
-            }
-            String column = argument.substring(0, firstColonIndex);
-            String type = argument.substring(firstColonIndex + 1, secondColonIndex);
-            String value = argument.substring(secondColonIndex + 1);
+            String column = split.get(0);
+            String type = split.get(1);
+            String value = split.get(2);
             if (TYPE_STRING.equals(type)) {
-                values.put(column, value);
+                return Pair.create(column, value);
             } else if (TYPE_BOOLEAN.equalsIgnoreCase(type)) {
-                values.put(column, Boolean.parseBoolean(value));
-            } else if (TYPE_INTEGER.equalsIgnoreCase(type) || TYPE_LONG.equalsIgnoreCase(type)) {
-                values.put(column, Long.parseLong(value));
-            } else if (TYPE_FLOAT.equalsIgnoreCase(type) || TYPE_DOUBLE.equalsIgnoreCase(type)) {
-                values.put(column, Double.parseDouble(value));
+                return Pair.create(column, Boolean.parseBoolean(value));
+            } else if (TYPE_INTEGER.equalsIgnoreCase(type)) {
+                return Pair.create(column, Integer.parseInt(value));
+            } else if (TYPE_LONG.equalsIgnoreCase(type)) {
+                return Pair.create(column, Long.parseLong(value));
+            } else if (TYPE_FLOAT.equalsIgnoreCase(type)) {
+                return Pair.create(column, Float.parseFloat(value));
+            } else if (TYPE_DOUBLE.equalsIgnoreCase(type)) {
+                return Pair.create(column, Double.parseDouble(value));
             } else if (TYPE_NULL.equalsIgnoreCase(type)) {
-                values.putNull(column);
+                return Pair.create(column, null);
             } else {
                 throw new IllegalArgumentException("Unsupported type: " + type);
             }
         }
 
+        private void parseBindValue(ContentValues values) {
+            final Pair<String, Object> columnValue = parseBindValue();
+            values.putObject(columnValue.first, columnValue.second);
+        }
+
+        private void parseBindValue(Bundle extras) {
+            final Pair<String, Object> columnValue = parseBindValue();
+            extras.putObject(columnValue.first, columnValue.second);
+        }
+
         private String argumentValueRequired(String argument) {
             String value = mTokenizer.nextArg();
             if (TextUtils.isEmpty(value) || value.startsWith(ARGUMENT_PREFIX)) {
@@ -500,60 +552,43 @@
 
     private static class InsertCommand extends Command {
         final ContentValues mContentValues;
+        final Bundle mExtras;
 
-        public InsertCommand(Uri uri, int userId, ContentValues contentValues) {
+        public InsertCommand(Uri uri, int userId, ContentValues contentValues, Bundle extras) {
             super(uri, userId);
             mContentValues = contentValues;
+            mExtras = extras;
         }
 
         @Override
         public void onExecute(IContentProvider provider) throws Exception {
-            provider.insert(resolveCallingPackage(), null, mUri, mContentValues, null);
+            provider.insert(resolveCallingPackage(), null, mUri, mContentValues, mExtras);
         }
     }
 
     private static class DeleteCommand extends Command {
-        final String mWhere;
+        final Bundle mExtras;
 
-        public DeleteCommand(Uri uri, int userId, String where) {
+        public DeleteCommand(Uri uri, int userId, Bundle extras) {
             super(uri, userId);
-            mWhere = where;
+            mExtras = extras;
         }
 
         @Override
         public void onExecute(IContentProvider provider) throws Exception {
-            provider.delete(resolveCallingPackage(), null, mUri,
-                    ContentResolver.createSqlQueryBundle(mWhere, null));
+            provider.delete(resolveCallingPackage(), null, mUri, mExtras);
         }
     }
 
     private static class CallCommand extends Command {
         final String mMethod, mArg;
-        Bundle mExtras = null;
+        final Bundle mExtras;
 
-        public CallCommand(Uri uri, int userId, String method, String arg, ContentValues values) {
+        public CallCommand(Uri uri, int userId, String method, String arg, Bundle extras) {
             super(uri, userId);
             mMethod = method;
             mArg = arg;
-            if (values != null) {
-                mExtras = new Bundle();
-                for (String key : values.keySet()) {
-                    final Object val = values.get(key);
-                    if (val instanceof String) {
-                        mExtras.putString(key, (String) val);
-                    } else if (val instanceof Float) {
-                        mExtras.putFloat(key, (Float) val);
-                    } else if (val instanceof Double) {
-                        mExtras.putDouble(key, (Double) val);
-                    } else if (val instanceof Boolean) {
-                        mExtras.putBoolean(key, (Boolean) val);
-                    } else if (val instanceof Integer) {
-                        mExtras.putInt(key, (Integer) val);
-                    } else if (val instanceof Long) {
-                        mExtras.putLong(key, (Long) val);
-                    }
-                }
-            }
+            mExtras = extras;
         }
 
         @Override
@@ -604,21 +639,20 @@
         }
     }
 
-    private static class QueryCommand extends DeleteCommand {
+    private static class QueryCommand extends Command {
         final String[] mProjection;
-        final String mSortOrder;
+        final Bundle mExtras;
 
-        public QueryCommand(
-                Uri uri, int userId, String[] projection, String where, String sortOrder) {
-            super(uri, userId, where);
+        public QueryCommand(Uri uri, int userId, String[] projection, Bundle extras) {
+            super(uri, userId);
             mProjection = projection;
-            mSortOrder = sortOrder;
+            mExtras = extras;
         }
 
         @Override
         public void onExecute(IContentProvider provider) throws Exception {
             Cursor cursor = provider.query(resolveCallingPackage(), null, mUri, mProjection,
-                    ContentResolver.createSqlQueryBundle(mWhere, null, mSortOrder), null);
+                    mExtras, null);
             if (cursor == null) {
                 System.out.println("No result found.");
                 return;
@@ -670,18 +704,19 @@
         }
     }
 
-    private static class UpdateCommand extends InsertCommand {
-        final String mWhere;
+    private static class UpdateCommand extends Command {
+        final ContentValues mValues;
+        final Bundle mExtras;
 
-        public UpdateCommand(Uri uri, int userId, ContentValues contentValues, String where) {
-            super(uri, userId, contentValues);
-            mWhere = where;
+        public UpdateCommand(Uri uri, int userId, ContentValues values, Bundle extras) {
+            super(uri, userId);
+            mValues = values;
+            mExtras = extras;
         }
 
         @Override
         public void onExecute(IContentProvider provider) throws Exception {
-            provider.update(resolveCallingPackage(), null, mUri, mContentValues,
-                    ContentResolver.createSqlQueryBundle(mWhere, null));
+            provider.update(resolveCallingPackage(), null, mUri, mValues, mExtras);
         }
     }
 
diff --git a/cmds/incidentd/src/FdBuffer.cpp b/cmds/incidentd/src/FdBuffer.cpp
index d295b84..78c322e 100644
--- a/cmds/incidentd/src/FdBuffer.cpp
+++ b/cmds/incidentd/src/FdBuffer.cpp
@@ -17,6 +17,7 @@
 #include "Log.h"
 
 #include "FdBuffer.h"
+#include "incidentd_util.h"
 
 #include <log/log.h>
 #include <utils/SystemClock.h>
@@ -31,17 +32,24 @@
 namespace incidentd {
 
 const ssize_t BUFFER_SIZE = 16 * 1024;  // 16 KB
-const ssize_t MAX_BUFFER_COUNT = 6144;   // 96 MB max
+const ssize_t MAX_BUFFER_SIZE = 96 * 1024 * 1024;  // 96 MB
 
-FdBuffer::FdBuffer()
-        :mBuffer(new EncodedBuffer(BUFFER_SIZE)),
+FdBuffer::FdBuffer(): FdBuffer(get_buffer_from_pool(), /* isBufferPooled= */ true)  {
+}
+
+FdBuffer::FdBuffer(sp<EncodedBuffer> buffer, bool isBufferPooled)
+        :mBuffer(buffer),
          mStartTime(-1),
          mFinishTime(-1),
          mTimedOut(false),
-         mTruncated(false) {
+         mTruncated(false),
+         mIsBufferPooled(isBufferPooled) {
 }
 
 FdBuffer::~FdBuffer() {
+    if (mIsBufferPooled) {
+        return_buffer_to_pool(mBuffer);
+    }
 }
 
 status_t FdBuffer::read(int fd, int64_t timeout) {
@@ -51,7 +59,7 @@
     fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) | O_NONBLOCK);
 
     while (true) {
-        if (mBuffer->size() >= MAX_BUFFER_COUNT * BUFFER_SIZE) {
+        if (mBuffer->size() >= MAX_BUFFER_SIZE) {
             mTruncated = true;
             VLOG("Truncating data");
             break;
@@ -106,7 +114,7 @@
     mStartTime = uptimeMillis();
 
     while (true) {
-        if (mBuffer->size() >= MAX_BUFFER_COUNT * BUFFER_SIZE) {
+        if (mBuffer->size() >= MAX_BUFFER_SIZE) {
             // Don't let it get too big.
             mTruncated = true;
             VLOG("Truncating data");
@@ -156,7 +164,7 @@
 
     // This is the buffer used to store processed data
     while (true) {
-        if (mBuffer->size() >= MAX_BUFFER_COUNT * BUFFER_SIZE) {
+        if (mBuffer->size() >= MAX_BUFFER_SIZE) {
             VLOG("Truncating data");
             mTruncated = true;
             break;
diff --git a/cmds/incidentd/src/FdBuffer.h b/cmds/incidentd/src/FdBuffer.h
index a349360..9b2794d 100644
--- a/cmds/incidentd/src/FdBuffer.h
+++ b/cmds/incidentd/src/FdBuffer.h
@@ -35,6 +35,7 @@
 class FdBuffer {
 public:
     FdBuffer();
+    FdBuffer(sp<EncodedBuffer> buffer, bool isBufferPooled = false);
     ~FdBuffer();
 
     /**
@@ -114,6 +115,7 @@
     int64_t mFinishTime;
     bool mTimedOut;
     bool mTruncated;
+    bool mIsBufferPooled;
 };
 
 }  // namespace incidentd
diff --git a/cmds/incidentd/src/PrivacyFilter.cpp b/cmds/incidentd/src/PrivacyFilter.cpp
index d00ecdd..0d427d1 100644
--- a/cmds/incidentd/src/PrivacyFilter.cpp
+++ b/cmds/incidentd/src/PrivacyFilter.cpp
@@ -19,9 +19,6 @@
 #include "incidentd_util.h"
 #include "PrivacyFilter.h"
 #include "proto_util.h"
-
-#include "incidentd_util.h"
-#include "proto_util.h"
 #include "Section.h"
 
 #include <android-base/file.h>
@@ -129,6 +126,8 @@
     FieldStripper(const Privacy* restrictions, const sp<ProtoReader>& data,
             uint8_t bufferLevel);
 
+    ~FieldStripper();
+
     /**
      * Take the data that we have, and filter it down so that no fields
      * are more sensitive than the given privacy policy.
@@ -167,6 +166,7 @@
      */
     uint8_t mCurrentLevel;
 
+    sp<EncodedBuffer> mEncodedBuffer;
 };
 
 FieldStripper::FieldStripper(const Privacy* restrictions, const sp<ProtoReader>& data,
@@ -174,19 +174,25 @@
         :mRestrictions(restrictions),
          mData(data),
          mSize(data->size()),
-         mCurrentLevel(bufferLevel) {
+         mCurrentLevel(bufferLevel),
+         mEncodedBuffer(get_buffer_from_pool()) {
     if (mSize < 0) {
         ALOGW("FieldStripper constructed with a ProtoReader that doesn't support size."
                 " Data will be missing.");
     }
 }
 
+FieldStripper::~FieldStripper() {
+    return_buffer_to_pool(mEncodedBuffer);
+}
+
 status_t FieldStripper::strip(const uint8_t privacyPolicy) {
     // If the current strip level is less (fewer fields retained) than what's already in the
     // buffer, then we can skip it.
     if (mCurrentLevel < privacyPolicy) {
         PrivacySpec spec(privacyPolicy);
-        ProtoOutputStream proto;
+        mEncodedBuffer->clear();
+        ProtoOutputStream proto(mEncodedBuffer);
 
         // Optimization when no strip happens.
         if (mRestrictions == NULL || spec.RequireAll()) {
@@ -267,7 +273,7 @@
     // Order the writes by privacy filter, with increasing levels of filtration,k
     // so we can do the filter once, and then write many times.
     sort(mOutputs.begin(), mOutputs.end(),
-        [](const sp<FilterFd>& a, const sp<FilterFd>& b) -> bool { 
+        [](const sp<FilterFd>& a, const sp<FilterFd>& b) -> bool {
             return a->getPrivacyPolicy() < b->getPrivacyPolicy();
         });
 
@@ -370,7 +376,7 @@
             write_field_or_skip(NULL, reader, fieldTag, true);
         }
     }
-
+    clear_buffer_pool();
     err = reader->getError();
     if (err != NO_ERROR) {
         ALOGW("filter_and_write_report reader had an error: %s", strerror(-err));
diff --git a/cmds/incidentd/src/Reporter.cpp b/cmds/incidentd/src/Reporter.cpp
index ad25342..86a78f0 100644
--- a/cmds/incidentd/src/Reporter.cpp
+++ b/cmds/incidentd/src/Reporter.cpp
@@ -698,7 +698,7 @@
             listener->onReportFailed();
         });
     }
-
+    clear_buffer_pool();
     ALOGI("Done taking incident report err=%s", strerror(-err));
 }
 
diff --git a/cmds/incidentd/src/Section.cpp b/cmds/incidentd/src/Section.cpp
index 60d1ac7..dec9cb0 100644
--- a/cmds/incidentd/src/Section.cpp
+++ b/cmds/incidentd/src/Section.cpp
@@ -36,6 +36,7 @@
 #include <log/log_read.h>
 #include <log/logprint.h>
 #include <private/android_logger.h>
+#include <sys/mman.h>
 
 #include "FdBuffer.h"
 #include "Privacy.h"
@@ -106,7 +107,6 @@
         return NO_ERROR;
     }
 
-    FdBuffer buffer;
     Fpipe p2cPipe;
     Fpipe c2pPipe;
     // initiate pipes to pass data to/from incident_helper
@@ -122,6 +122,7 @@
     }
 
     // parent process
+    FdBuffer buffer;
     status_t readStatus = buffer.readProcessedDataInStream(fd.get(), std::move(p2cPipe.writeFd()),
                                                            std::move(c2pPipe.readFd()),
                                                            this->timeoutMs, mIsSysfs);
@@ -263,10 +264,6 @@
 }
 
 status_t WorkerThreadSection::Execute(ReportWriter* writer) const {
-    status_t err = NO_ERROR;
-    bool workerDone = false;
-    FdBuffer buffer;
-
     // Create shared data and pipe. Don't put data on the stack since this thread may exit early.
     sp<WorkerThreadData> data = new WorkerThreadData(this);
     if (!data->pipe.init()) {
@@ -289,6 +286,9 @@
     }).detach();
 
     // Loop reading until either the timeout or the worker side is done (i.e. eof).
+    status_t err = NO_ERROR;
+    bool workerDone = false;
+    FdBuffer buffer;
     err = buffer.read(data->pipe.readFd().get(), this->timeoutMs);
     if (err != NO_ERROR) {
         ALOGE("[%s] reader failed with error '%s'", this->name.string(), strerror(-err));
@@ -357,7 +357,6 @@
 CommandSection::~CommandSection() { free(mCommand); }
 
 status_t CommandSection::Execute(ReportWriter* writer) const {
-    FdBuffer buffer;
     Fpipe cmdPipe;
     Fpipe ihPipe;
 
@@ -378,6 +377,7 @@
     }
 
     cmdPipe.writeFd().reset();
+    FdBuffer buffer;
     status_t readStatus = buffer.read(ihPipe.readFd().get(), this->timeoutMs);
     writer->setSectionStats(buffer);
     if (readStatus != NO_ERROR || buffer.timedOut()) {
@@ -440,7 +440,7 @@
 
 // ================================================================================
 TextDumpsysSection::TextDumpsysSection(int id, const char* service, ...)
-    : WorkerThreadSection(id, REMOTE_CALL_TIMEOUT_MS), mService(service) {
+        :Section(id), mService(service) {
     name = "dumpsys ";
     name += service;
 
@@ -460,7 +460,7 @@
 
 TextDumpsysSection::~TextDumpsysSection() {}
 
-status_t TextDumpsysSection::BlockingCall(unique_fd& pipeWriteFd) const {
+status_t TextDumpsysSection::Execute(ReportWriter* writer) const {
     // checkService won't wait for the service to show up like getService will.
     sp<IBinder> service = defaultServiceManager()->checkService(mService);
     if (service == NULL) {
@@ -488,25 +488,36 @@
     });
 
     // Collect dump content
-    std::string content;
-    bool success = ReadFdToString(dumpPipe.readFd(), &content);
-    worker.join(); // Wait for worker to finish
-    dumpPipe.readFd().reset();
-    if (!success) {
-        ALOGW("[%s] failed to read data from pipe", this->name.string());
-        return -1;
-    }
-
+    FdBuffer buffer;
     ProtoOutputStream proto;
-    proto.write(util::TextDumpProto::COMMAND, std::string(name.string()));
-    proto.write(util::TextDumpProto::CONTENT, content);
-    proto.write(util::TextDumpProto::DUMP_DURATION_NS, int64_t(Nanotime() - start));
+    proto.write(TextDumpProto::COMMAND, std::string(name.string()));
+    proto.write(TextDumpProto::DUMP_DURATION_NS, int64_t(Nanotime() - start));
+    buffer.write(proto.data());
 
-    if (!proto.flush(pipeWriteFd.get()) && errno == EPIPE) {
-        ALOGE("[%s] wrote to a broken pipe\n", this->name.string());
-        return EPIPE;
+    sp<EncodedBuffer> internalBuffer = buffer.data();
+    internalBuffer->writeHeader((uint32_t)TextDumpProto::CONTENT, WIRE_TYPE_LENGTH_DELIMITED);
+    size_t editPos = internalBuffer->wp()->pos();
+    internalBuffer->wp()->move(8); // reserve 8 bytes for the varint of the data size
+    size_t dataBeginPos = internalBuffer->wp()->pos();
+
+    status_t readStatus = buffer.read(dumpPipe.readFd(), this->timeoutMs);
+    dumpPipe.readFd().reset();
+    writer->setSectionStats(buffer);
+    if (readStatus != OK || buffer.timedOut()) {
+        ALOGW("[%s] failed to read from dumpsys: %s, timedout: %s", this->name.string(),
+              strerror(-readStatus), buffer.timedOut() ? "true" : "false");
+        worker.detach();
+        return readStatus;
     }
-    return OK;
+    worker.join(); // wait for worker to finish
+
+    // Revisit the actual size from dumpsys and edit the internal buffer accordingly.
+    size_t dumpSize = buffer.size() - dataBeginPos;
+    internalBuffer->wp()->rewind()->move(editPos);
+    internalBuffer->writeRawVarint32(dumpSize);
+    internalBuffer->copy(dataBeginPos, dumpSize);
+
+    return writer->writeSection(buffer);
 }
 
 // ================================================================================
@@ -564,6 +575,16 @@
 }
 
 status_t LogSection::BlockingCall(unique_fd& pipeWriteFd) const {
+    // heap profile shows that liblog malloc & free significant amount of memory in this process.
+    // Hence forking a new process to prevent memory fragmentation.
+    pid_t pid = fork();
+    if (pid < 0) {
+        ALOGW("[%s] failed to fork", this->name.string());
+        return errno;
+    }
+    if (pid > 0) {
+        return wait_child(pid, this->timeoutMs);
+    }
     // Open log buffer and getting logs since last retrieved time if any.
     unique_ptr<logger_list, void (*)(logger_list*)> loggers(
             gLastLogsRetrieved.find(mLogID) == gLastLogsRetrieved.end()
@@ -573,31 +594,31 @@
 
     if (android_logger_open(loggers.get(), mLogID) == NULL) {
         ALOGE("[%s] Can't get logger.", this->name.string());
-        return -1;
+        _exit(EXIT_FAILURE);
     }
 
     log_msg msg;
     log_time lastTimestamp(0);
 
     ProtoOutputStream proto;
+    status_t err = OK;
     while (true) {  // keeps reading until logd buffer is fully read.
-        status_t err = android_logger_list_read(loggers.get(), &msg);
-        // err = 0 - no content, unexpected connection drop or EOF.
-        // err = +ive number - size of retrieved data from logger
-        // err = -ive number, OS supplied error _except_ for -EAGAIN
-        // err = -EAGAIN, graceful indication for ANDRODI_LOG_NONBLOCK that this is the end of data.
-        if (err <= 0) {
-            if (err != -EAGAIN) {
+        status_t status = android_logger_list_read(loggers.get(), &msg);
+        // status = 0 - no content, unexpected connection drop or EOF.
+        // status = +ive number - size of retrieved data from logger
+        // status = -ive number, OS supplied error _except_ for -EAGAIN
+        // status = -EAGAIN, graceful indication for ANDRODI_LOG_NONBLOCK that this is the end.
+        if (status <= 0) {
+            if (status != -EAGAIN) {
                 ALOGW("[%s] fails to read a log_msg.\n", this->name.string());
+                err = -status;
             }
-            // dump previous logs and don't consider this error a failure.
             break;
         }
         if (mBinary) {
             // remove the first uint32 which is tag's index in event log tags
             android_log_context context = create_android_log_parser(msg.msg() + sizeof(uint32_t),
                                                                     msg.len() - sizeof(uint32_t));
-            ;
             android_log_list_element elem;
 
             lastTimestamp.tv_sec = msg.entry.sec;
@@ -657,9 +678,10 @@
             }
         } else {
             AndroidLogEntry entry;
-            err = android_log_processLogBuffer(&msg.entry, &entry);
-            if (err != NO_ERROR) {
+            status = android_log_processLogBuffer(&msg.entry, &entry);
+            if (status != OK) {
                 ALOGW("[%s] fails to process to an entry.\n", this->name.string());
+                err = status;
                 break;
             }
             lastTimestamp.tv_sec = entry.tv_sec;
@@ -678,17 +700,24 @@
                         trimTail(entry.message, entry.messageLen));
             proto.end(token);
         }
+        if (!proto.flush(pipeWriteFd.get())) {
+            if (errno == EPIPE) {
+                ALOGW("[%s] wrote to a broken pipe\n", this->name.string());
+            }
+            err = errno;
+            break;
+        }
+        proto.clear();
     }
     gLastLogsRetrieved[mLogID] = lastTimestamp;
-    if (!proto.flush(pipeWriteFd.get()) && errno == EPIPE) {
-        ALOGE("[%s] wrote to a broken pipe\n", this->name.string());
-        return EPIPE;
-    }
-    return NO_ERROR;
+    _exit(err);
 }
 
 // ================================================================================
 
+const int LINK_NAME_LEN = 64;
+const int EXE_NAME_LEN = 1024;
+
 TombstoneSection::TombstoneSection(int id, const char* type, const int64_t timeoutMs)
     : WorkerThreadSection(id, timeoutMs), mType(type) {
     name = "tombstone ";
@@ -706,25 +735,37 @@
 
     const std::set<int> hal_pids = get_interesting_hal_pids();
 
-    ProtoOutputStream proto;
+    auto pooledBuffer = get_buffer_from_pool();
+    ProtoOutputStream proto(pooledBuffer);
+    // dumpBufferSize should be a multiple of page size (4 KB) to reduce memory fragmentation
+    size_t dumpBufferSize = 64 * 1024; // 64 KB is enough for most tombstone dump
+    char* dumpBuffer = (char*)mmap(NULL, dumpBufferSize, PROT_READ | PROT_WRITE,
+                MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
     struct dirent* d;
+    char link_name[LINK_NAME_LEN];
+    char exe_name[EXE_NAME_LEN];
     status_t err = NO_ERROR;
     while ((d = readdir(proc.get()))) {
         int pid = atoi(d->d_name);
         if (pid <= 0) {
             continue;
         }
-
-        const std::string link_name = android::base::StringPrintf("/proc/%d/exe", pid);
-        std::string exe;
-        if (!android::base::Readlink(link_name, &exe)) {
-            ALOGE("Section %s: Can't read '%s': %s\n", name.string(),
-                    link_name.c_str(), strerror(errno));
+        snprintf(link_name, LINK_NAME_LEN, "/proc/%d/exe", pid);
+        struct stat fileStat;
+        if (stat(link_name, &fileStat) != OK) {
             continue;
         }
+        size_t exe_name_len = readlink(link_name, exe_name, EXE_NAME_LEN);
+        if (exe_name_len < 0 || exe_name_len >= EXE_NAME_LEN) {
+            ALOGE("[%s] Can't read '%s': %s", name.string(), link_name, strerror(errno));
+            continue;
+        }
+        // readlink(2) does not put a null terminator at the end
+        exe_name[exe_name_len] = '\0';
 
         bool is_java_process;
-        if (exe == "/system/bin/app_process32" || exe == "/system/bin/app_process64") {
+        if (strncmp(exe_name, "/system/bin/app_process32", LINK_NAME_LEN) == 0 ||
+                strncmp(exe_name, "/system/bin/app_process64", LINK_NAME_LEN) == 0) {
             if (mType != "java") continue;
             // Don't bother dumping backtraces for the zygote.
             if (IsZygote(pid)) {
@@ -733,7 +774,7 @@
             }
 
             is_java_process = true;
-        } else if (should_dump_native_traces(exe.c_str())) {
+        } else if (should_dump_native_traces(exe_name)) {
             if (mType != "native") continue;
             is_java_process = false;
         } else if (hal_pids.find(pid) != hal_pids.end()) {
@@ -789,29 +830,37 @@
             ALOGE("[%s] child had an issue: %s\n", this->name.string(), strerror(-cStatus));
         }
 
-        auto dump = std::make_unique<char[]>(buffer.size());
+        // Resize dump buffer
+        if (dumpBufferSize < buffer.size()) {
+            munmap(dumpBuffer, dumpBufferSize);
+            while(dumpBufferSize < buffer.size()) dumpBufferSize = dumpBufferSize << 1;
+            dumpBuffer = (char*)mmap(NULL, dumpBufferSize, PROT_READ | PROT_WRITE,
+                    MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+        }
         sp<ProtoReader> reader = buffer.data()->read();
         int i = 0;
         while (reader->hasNext()) {
-            dump[i] = reader->next();
+            dumpBuffer[i] = reader->next();
             i++;
         }
         uint64_t token = proto.start(android::os::BackTraceProto::TRACES);
         proto.write(android::os::BackTraceProto::Stack::PID, pid);
-        proto.write(android::os::BackTraceProto::Stack::DUMP, dump.get(), i);
+        proto.write(android::os::BackTraceProto::Stack::DUMP, dumpBuffer, i);
         proto.write(android::os::BackTraceProto::Stack::DUMP_DURATION_NS,
                     static_cast<long long>(Nanotime() - start));
         proto.end(token);
         dumpPipe.readFd().reset();
-    }
-
-    if (!proto.flush(pipeWriteFd.get()) && errno == EPIPE) {
-        ALOGE("[%s] wrote to a broken pipe\n", this->name.string());
-        if (err != NO_ERROR) {
-            return EPIPE;
+        if (!proto.flush(pipeWriteFd.get())) {
+            if (errno == EPIPE) {
+                ALOGE("[%s] wrote to a broken pipe\n", this->name.string());
+            }
+            err = errno;
+            break;
         }
+        proto.clear();
     }
-
+    munmap(dumpBuffer, dumpBufferSize);
+    return_buffer_to_pool(pooledBuffer);
     return err;
 }
 
diff --git a/cmds/incidentd/src/Section.h b/cmds/incidentd/src/Section.h
index 6162b3a..2ce45ed 100644
--- a/cmds/incidentd/src/Section.h
+++ b/cmds/incidentd/src/Section.h
@@ -130,12 +130,12 @@
 /**
  * Section that calls text dumpsys on a system service, usually "dumpsys [service_name]".
  */
-class TextDumpsysSection : public WorkerThreadSection {
+class TextDumpsysSection : public Section {
 public:
     TextDumpsysSection(int id, const char* service, ...);
     virtual ~TextDumpsysSection();
 
-    virtual status_t BlockingCall(unique_fd& pipeWriteFd) const;
+    virtual status_t Execute(ReportWriter* writer) const;
 
 private:
     String16 mService;
diff --git a/cmds/incidentd/src/incidentd_util.cpp b/cmds/incidentd/src/incidentd_util.cpp
index 2649fb9..150ab99 100644
--- a/cmds/incidentd/src/incidentd_util.cpp
+++ b/cmds/incidentd/src/incidentd_util.cpp
@@ -18,6 +18,7 @@
 
 #include "incidentd_util.h"
 
+#include <android/util/EncodedBuffer.h>
 #include <fcntl.h>
 #include <sys/prctl.h>
 #include <wait.h>
@@ -28,8 +29,6 @@
 namespace os {
 namespace incidentd {
 
-using namespace android::base;
-
 const Privacy* get_privacy_of_section(int id) {
     int l = 0;
     int r = PRIVACY_POLICY_COUNT - 1;
@@ -48,6 +47,30 @@
     return NULL;
 }
 
+std::vector<sp<EncodedBuffer>> gBufferPool;
+std::mutex gBufferPoolLock;
+
+sp<EncodedBuffer> get_buffer_from_pool() {
+    std::scoped_lock<std::mutex> lock(gBufferPoolLock);
+    if (gBufferPool.size() == 0) {
+        return new EncodedBuffer();
+    }
+    sp<EncodedBuffer> buffer = gBufferPool.back();
+    gBufferPool.pop_back();
+    return buffer;
+}
+
+void return_buffer_to_pool(sp<EncodedBuffer> buffer) {
+    buffer->clear();
+    std::scoped_lock<std::mutex> lock(gBufferPoolLock);
+    gBufferPool.push_back(buffer);
+}
+
+void clear_buffer_pool() {
+    std::scoped_lock<std::mutex> lock(gBufferPoolLock);
+    gBufferPool.clear();
+}
+
 // ================================================================================
 Fpipe::Fpipe() : mRead(), mWrite() {}
 
@@ -84,7 +107,7 @@
         status = &dummy_status;
     }
     *status = 0;
-    pid_t pid = fork();
+    pid_t pid = vfork();
     if (pid < 0) {
         *status = -errno;
         return -1;
diff --git a/cmds/incidentd/src/incidentd_util.h b/cmds/incidentd/src/incidentd_util.h
index a54993fe..8499889 100644
--- a/cmds/incidentd/src/incidentd_util.h
+++ b/cmds/incidentd/src/incidentd_util.h
@@ -19,18 +19,21 @@
 #define INCIDENTD_UTIL_H
 
 #include <stdarg.h>
-#include <unistd.h>
-
-#include <android-base/unique_fd.h>
 #include <utils/Errors.h>
 
 #include "Privacy.h"
 
 namespace android {
+
+namespace util {
+class EncodedBuffer;
+}
+
 namespace os {
 namespace incidentd {
 
-using namespace android::base;
+using android::base::unique_fd;
+using android::util::EncodedBuffer;
 
 /**
  * Looks up Privacy of a section in the auto-gen PRIVACY_POLICY_LIST;
@@ -38,6 +41,25 @@
 const Privacy* get_privacy_of_section(int id);
 
 /**
+ * Get an EncodedBuffer from an internal pool, or create and return a new one if the pool is empty.
+ * The EncodedBuffer should be returned after use.
+ * Thread safe.
+ */
+sp<EncodedBuffer> get_buffer_from_pool();
+
+/**
+ * Return the EncodedBuffer back to the pool for reuse.
+ * Thread safe.
+ */
+void return_buffer_to_pool(sp<EncodedBuffer> buffer);
+
+/**
+ * Clear the buffer pool to free memory, after taking an incident report.
+ * Thread safe.
+ */
+void clear_buffer_pool();
+
+/**
  * This class wraps android::base::Pipe.
  */
 class Fpipe {
diff --git a/cmds/statsd/Android.bp b/cmds/statsd/Android.bp
index 4529dff..776593d 100644
--- a/cmds/statsd/Android.bp
+++ b/cmds/statsd/Android.bp
@@ -97,6 +97,7 @@
         "src/stats_log_util.cpp",
         "src/statscompanion_util.cpp",
         "src/statsd_config.proto",
+        "src/statsd_metadata.proto",
         "src/StatsLogProcessor.cpp",
         "src/StatsService.cpp",
         "src/storage/StorageManager.cpp",
@@ -332,6 +333,7 @@
         "tests/external/puller_util_test.cpp",
         "tests/external/StatsCallbackPuller_test.cpp",
         "tests/external/StatsPuller_test.cpp",
+        "tests/external/StatsPullerManager_test.cpp",
         "tests/FieldValue_test.cpp",
         "tests/guardrail/StatsdStats_test.cpp",
         "tests/indexed_priority_queue_test.cpp",
@@ -378,55 +380,55 @@
 // statsd micro benchmark
 //#############################
 
-//cc_benchmark {
-//    name: "statsd_benchmark",
-//    defaults: ["statsd_defaults"],
-//
-//    srcs: [
-//        // atom_field_options.proto needs field_options.proto, but that is
-//        // not included in libprotobuf-cpp-lite, so compile it here.
-//        ":libprotobuf-internal-protos",
-//
-//        "benchmark/duration_metric_benchmark.cpp",
-//        "benchmark/filter_value_benchmark.cpp",
-//        "benchmark/get_dimensions_for_condition_benchmark.cpp",
-//        "benchmark/hello_world_benchmark.cpp",
-//        "benchmark/log_event_benchmark.cpp",
-//        "benchmark/main.cpp",
-//        "benchmark/metric_util.cpp",
-//        "benchmark/stats_write_benchmark.cpp",
-//        "src/atom_field_options.proto",
-//        "src/atoms.proto",
-//        "src/stats_log.proto",
-//    ],
-//
-//    proto: {
-//        type: "lite",
-//        include_dirs: ["external/protobuf/src"],
-//    },
-//
-//    cflags: [
-//        "-Wall",
-//        "-Werror",
-//        "-Wno-unused-parameter",
-//        "-Wno-unused-variable",
-//        "-Wno-unused-function",
-//
-//        // Bug: http://b/29823425 Disable -Wvarargs for Clang update to r271374
-//        "-Wno-varargs",
-//    ],
-//
-//    static_libs: [
-//        "libplatformprotos",
-//    ],
-//
-//    shared_libs: [
-//        "libgtest_prod",
-//        "libprotobuf-cpp-lite",
-//        "libstatslog",
-//        "libstatssocket",
-//    ],
-//}
+cc_benchmark {
+    name: "statsd_benchmark",
+    defaults: ["statsd_defaults"],
+
+    srcs: [
+        // atom_field_options.proto needs field_options.proto, but that is
+        // not included in libprotobuf-cpp-lite, so compile it here.
+        ":libprotobuf-internal-protos",
+
+        "benchmark/duration_metric_benchmark.cpp",
+        "benchmark/filter_value_benchmark.cpp",
+        "benchmark/get_dimensions_for_condition_benchmark.cpp",
+        "benchmark/hello_world_benchmark.cpp",
+        "benchmark/log_event_benchmark.cpp",
+        "benchmark/main.cpp",
+        "benchmark/metric_util.cpp",
+        "benchmark/stats_write_benchmark.cpp",
+        "src/atom_field_options.proto",
+        "src/atoms.proto",
+        "src/stats_log.proto",
+    ],
+
+    proto: {
+        type: "lite",
+        include_dirs: ["external/protobuf/src"],
+    },
+
+    cflags: [
+        "-Wall",
+        "-Werror",
+        "-Wno-unused-parameter",
+        "-Wno-unused-variable",
+        "-Wno-unused-function",
+
+        // Bug: http://b/29823425 Disable -Wvarargs for Clang update to r271374
+        "-Wno-varargs",
+    ],
+
+    static_libs: [
+        "libplatformprotos",
+        "libstatssocket_private",
+    ],
+
+    shared_libs: [
+        "libgtest_prod",
+        "libprotobuf-cpp-lite",
+        "libstatslog",
+    ],
+}
 
 // ====  java proto device library (for test only)  ==============================
 java_library {
diff --git a/cmds/statsd/benchmark/duration_metric_benchmark.cpp b/cmds/statsd/benchmark/duration_metric_benchmark.cpp
index 2631009..2d315d9 100644
--- a/cmds/statsd/benchmark/duration_metric_benchmark.cpp
+++ b/cmds/statsd/benchmark/duration_metric_benchmark.cpp
@@ -137,77 +137,74 @@
     int64_t bucketSizeNs =
             TimeUnitToBucketSizeInMillis(config.duration_metric(0).bucket()) * 1000000LL;
 
-
-    std::vector<AttributionNodeInternal> attributions1 = {
-            CreateAttribution(111, "App1"), CreateAttribution(222, "GMSCoreModule1"),
-            CreateAttribution(222, "GMSCoreModule2")};
-
-    std::vector<AttributionNodeInternal> attributions2 = {
-            CreateAttribution(333, "App2"), CreateAttribution(222, "GMSCoreModule1"),
-            CreateAttribution(555, "GMSCoreModule2")};
-
     std::vector<std::unique_ptr<LogEvent>> events;
 
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_OFF,
-                                                   bucketStartTimeNs + 11));
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_ON,
-                                                   bucketStartTimeNs + 40));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + 11,
+                                                   android::view::DISPLAY_STATE_OFF));
+    events.push_back(
+            CreateScreenStateChangedEvent(bucketStartTimeNs + 40, android::view::DISPLAY_STATE_ON));
 
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_OFF,
-                                                   bucketStartTimeNs + 102));
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_ON,
-                                                   bucketStartTimeNs + 450));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + 102,
+                                                   android::view::DISPLAY_STATE_OFF));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + 450,
+                                                   android::view::DISPLAY_STATE_ON));
 
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_OFF,
-                                                   bucketStartTimeNs + 650));
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_ON,
-                                                   bucketStartTimeNs + bucketSizeNs + 100));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + 650,
+                                                   android::view::DISPLAY_STATE_OFF));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + bucketSizeNs + 100,
+                                                   android::view::DISPLAY_STATE_ON));
 
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_OFF,
-                                                   bucketStartTimeNs + bucketSizeNs + 640));
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_ON,
-                                                   bucketStartTimeNs + bucketSizeNs + 650));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + bucketSizeNs + 640,
+                                                   android::view::DISPLAY_STATE_OFF));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + bucketSizeNs + 650,
+                                                   android::view::DISPLAY_STATE_ON));
 
-    events.push_back(CreateStartScheduledJobEvent(
-            {CreateAttribution(9999, "")}, "job0", bucketStartTimeNs + 2));
-    events.push_back(CreateFinishScheduledJobEvent(
-            {CreateAttribution(9999, "")}, "job0",bucketStartTimeNs + 101));
+    vector<int> attributionUids1 = {9999};
+    vector<string> attributionTags1 = {""};
+    events.push_back(CreateStartScheduledJobEvent(bucketStartTimeNs + 2, attributionUids1,
+                                                  attributionTags1, "job0"));
+    events.push_back(CreateFinishScheduledJobEvent(bucketStartTimeNs + 101, attributionUids1,
+                                                   attributionTags1, "job0"));
 
-    events.push_back(CreateStartScheduledJobEvent(
-            {CreateAttribution(9999, "")}, "job2", bucketStartTimeNs + 201));
-    events.push_back(CreateFinishScheduledJobEvent(
-            {CreateAttribution(9999, "")}, "job2",bucketStartTimeNs + 500));
+    events.push_back(CreateStartScheduledJobEvent(bucketStartTimeNs + 201, attributionUids1,
+                                                  attributionTags1, "job2"));
+    events.push_back(CreateFinishScheduledJobEvent(bucketStartTimeNs + 500, attributionUids1,
+                                                   attributionTags1, "job2"));
 
-    events.push_back(CreateStartScheduledJobEvent(
-            {CreateAttribution(8888, "")}, "job2", bucketStartTimeNs + 600));
-    events.push_back(CreateFinishScheduledJobEvent(
-            {CreateAttribution(8888, "")}, "job2",bucketStartTimeNs + bucketSizeNs + 850));
+    vector<int> attributionUids2 = {8888};
+    events.push_back(CreateStartScheduledJobEvent(bucketStartTimeNs + 600, attributionUids2,
+                                                  attributionTags1, "job2"));
+    events.push_back(CreateFinishScheduledJobEvent(bucketStartTimeNs + bucketSizeNs + 850,
+                                                   attributionUids2, attributionTags1, "job2"));
 
-    events.push_back(CreateStartScheduledJobEvent(
-            {CreateAttribution(8888, "")}, "job1", bucketStartTimeNs + bucketSizeNs + 600));
-    events.push_back(CreateFinishScheduledJobEvent(
-            {CreateAttribution(8888, "")}, "job1", bucketStartTimeNs + bucketSizeNs + 900));
+    events.push_back(CreateStartScheduledJobEvent(bucketStartTimeNs + bucketSizeNs + 600,
+                                                  attributionUids2, attributionTags1, "job1"));
+    events.push_back(CreateFinishScheduledJobEvent(bucketStartTimeNs + bucketSizeNs + 900,
+                                                   attributionUids2, attributionTags1, "job1"));
 
-    events.push_back(CreateSyncStartEvent(attributions1, "ReadEmail",
-                                          bucketStartTimeNs + 10));
-    events.push_back(CreateSyncEndEvent(attributions1, "ReadEmail",
-                                        bucketStartTimeNs + 50));
+    vector<int> attributionUids3 = {111, 222, 222};
+    vector<string> attributionTags3 = {"App1", "GMSCoreModule1", "GMSCoreModule2"};
+    events.push_back(CreateSyncStartEvent(bucketStartTimeNs + 10, attributionUids3,
+                                          attributionTags3, "ReadEmail"));
+    events.push_back(CreateSyncEndEvent(bucketStartTimeNs + 50, attributionUids3, attributionTags3,
+                                        "ReadEmail"));
 
-    events.push_back(CreateSyncStartEvent(attributions1, "ReadEmail",
-                                          bucketStartTimeNs + 200));
-    events.push_back(CreateSyncEndEvent(attributions1, "ReadEmail",
-                                        bucketStartTimeNs + bucketSizeNs + 300));
+    events.push_back(CreateSyncStartEvent(bucketStartTimeNs + 200, attributionUids3,
+                                          attributionTags3, "ReadEmail"));
+    events.push_back(CreateSyncEndEvent(bucketStartTimeNs + bucketSizeNs + 300, attributionUids3,
+                                        attributionTags3, "ReadEmail"));
 
-    events.push_back(CreateSyncStartEvent(attributions1, "ReadDoc",
-                                          bucketStartTimeNs + 400));
-    events.push_back(CreateSyncEndEvent(attributions1, "ReadDoc",
-                                        bucketStartTimeNs + bucketSizeNs - 1));
+    events.push_back(CreateSyncStartEvent(bucketStartTimeNs + 400, attributionUids3,
+                                          attributionTags3, "ReadDoc"));
+    events.push_back(CreateSyncEndEvent(bucketStartTimeNs + bucketSizeNs - 1, attributionUids3,
+                                        attributionTags3, "ReadDoc"));
 
-    events.push_back(CreateSyncStartEvent(attributions2, "ReadEmail",
-                                          bucketStartTimeNs + 401));
-    events.push_back(CreateSyncEndEvent(attributions2, "ReadEmail",
-                                        bucketStartTimeNs + bucketSizeNs + 700));
-
+    vector<int> attributionUids4 = {333, 222, 555};
+    vector<string> attributionTags4 = {"App2", "GMSCoreModule1", "GMSCoreModule2"};
+    events.push_back(CreateSyncStartEvent(bucketStartTimeNs + 401, attributionUids4,
+                                          attributionTags4, "ReadEmail"));
+    events.push_back(CreateSyncEndEvent(bucketStartTimeNs + bucketSizeNs + 700, attributionUids4,
+                                        attributionTags4, "ReadEmail"));
     sortLogEventsByTimestamp(&events);
 
     while (state.KeepRunning()) {
@@ -230,78 +227,75 @@
     int64_t bucketSizeNs =
             TimeUnitToBucketSizeInMillis(config.duration_metric(0).bucket()) * 1000000LL;
 
-    std::vector<AttributionNodeInternal> attributions1 = {
-            CreateAttribution(111, "App1"), CreateAttribution(222, "GMSCoreModule1"),
-            CreateAttribution(222, "GMSCoreModule2")};
-
-    std::vector<AttributionNodeInternal> attributions2 = {
-            CreateAttribution(333, "App2"), CreateAttribution(222, "GMSCoreModule1"),
-            CreateAttribution(555, "GMSCoreModule2")};
-
-    std::vector<AttributionNodeInternal> attributions3 = {
-            CreateAttribution(444, "App3"), CreateAttribution(222, "GMSCoreModule1"),
-            CreateAttribution(555, "GMSCoreModule2")};
-
     std::vector<std::unique_ptr<LogEvent>> events;
 
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_OFF,
-                                                   bucketStartTimeNs + 55));
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_ON,
-                                                   bucketStartTimeNs + 120));
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_OFF,
-                                                   bucketStartTimeNs + 121));
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_ON,
-                                                   bucketStartTimeNs + 450));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + 55,
+                                                   android::view::DISPLAY_STATE_OFF));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + 120,
+                                                   android::view::DISPLAY_STATE_ON));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + 121,
+                                                   android::view::DISPLAY_STATE_OFF));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + 450,
+                                                   android::view::DISPLAY_STATE_ON));
 
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_OFF,
-                                                   bucketStartTimeNs + 501));
-    events.push_back(CreateScreenStateChangedEvent(android::view::DISPLAY_STATE_ON,
-                                                   bucketStartTimeNs + bucketSizeNs + 100));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + 501,
+                                                   android::view::DISPLAY_STATE_OFF));
+    events.push_back(CreateScreenStateChangedEvent(bucketStartTimeNs + bucketSizeNs + 100,
+                                                   android::view::DISPLAY_STATE_ON));
 
-    events.push_back(CreateStartScheduledJobEvent(
-            {CreateAttribution(111, "App1")}, "job1", bucketStartTimeNs + 1));
-    events.push_back(CreateFinishScheduledJobEvent(
-            {CreateAttribution(111, "App1")}, "job1",bucketStartTimeNs + 101));
+    vector<int> attributionUids1 = {111};
+    vector<string> attributionTags1 = {"App1"};
+    events.push_back(CreateStartScheduledJobEvent(bucketStartTimeNs + 1, attributionUids1,
+                                                  attributionTags1, "job1"));
+    events.push_back(CreateFinishScheduledJobEvent(bucketStartTimeNs + 101, attributionUids1,
+                                                   attributionTags1, "job1"));
 
-    events.push_back(CreateStartScheduledJobEvent(
-            {CreateAttribution(333, "App2")}, "job2", bucketStartTimeNs + 201));
-    events.push_back(CreateFinishScheduledJobEvent(
-            {CreateAttribution(333, "App2")}, "job2",bucketStartTimeNs + 500));
-    events.push_back(CreateStartScheduledJobEvent(
-            {CreateAttribution(333, "App2")}, "job2", bucketStartTimeNs + 600));
-    events.push_back(CreateFinishScheduledJobEvent(
-            {CreateAttribution(333, "App2")}, "job2",
-            bucketStartTimeNs + bucketSizeNs + 850));
+    vector<int> attributionUids2 = {333};
+    vector<string> attributionTags2 = {"App2"};
+    events.push_back(CreateStartScheduledJobEvent(bucketStartTimeNs + 201, attributionUids2,
+                                                  attributionTags2, "job2"));
+    events.push_back(CreateFinishScheduledJobEvent(bucketStartTimeNs + 500, attributionUids2,
+                                                   attributionTags2, "job2"));
+    events.push_back(CreateStartScheduledJobEvent(bucketStartTimeNs + 600, attributionUids2,
+                                                  attributionTags2, "job2"));
+    events.push_back(CreateFinishScheduledJobEvent(bucketStartTimeNs + bucketSizeNs + 850,
+                                                   attributionUids2, attributionTags2, "job2"));
 
-    events.push_back(
-        CreateStartScheduledJobEvent({CreateAttribution(444, "App3")}, "job3",
-                                     bucketStartTimeNs + bucketSizeNs - 2));
-    events.push_back(
-        CreateFinishScheduledJobEvent({CreateAttribution(444, "App3")}, "job3",
-                                      bucketStartTimeNs + bucketSizeNs + 900));
+    vector<int> attributionUids3 = {444};
+    vector<string> attributionTags3 = {"App3"};
+    events.push_back(CreateStartScheduledJobEvent(bucketStartTimeNs + bucketSizeNs - 2,
+                                                  attributionUids3, attributionTags3, "job3"));
+    events.push_back(CreateFinishScheduledJobEvent(bucketStartTimeNs + bucketSizeNs + 900,
+                                                   attributionUids3, attributionTags3, "job3"));
 
-    events.push_back(CreateSyncStartEvent(attributions1, "ReadEmail",
-                                          bucketStartTimeNs + 50));
-    events.push_back(CreateSyncEndEvent(attributions1, "ReadEmail",
-                                        bucketStartTimeNs + 110));
+    vector<int> attributionUids4 = {111, 222, 222};
+    vector<string> attributionTags4 = {"App1", "GMSCoreModule1", "GMSCoreModule2"};
+    events.push_back(CreateSyncStartEvent(bucketStartTimeNs + 50, attributionUids4,
+                                          attributionTags4, "ReadEmail"));
+    events.push_back(CreateSyncEndEvent(bucketStartTimeNs + 110, attributionUids4, attributionTags4,
+                                        "ReadEmail"));
 
-    events.push_back(CreateSyncStartEvent(attributions2, "ReadEmail",
-                                          bucketStartTimeNs + 300));
-    events.push_back(CreateSyncEndEvent(attributions2, "ReadEmail",
-                                        bucketStartTimeNs + bucketSizeNs + 700));
-    events.push_back(CreateSyncStartEvent(attributions2, "ReadDoc",
-                                          bucketStartTimeNs + 400));
-    events.push_back(CreateSyncEndEvent(attributions2, "ReadDoc",
-                                        bucketStartTimeNs + bucketSizeNs - 1));
+    vector<int> attributionUids5 = {333, 222, 555};
+    vector<string> attributionTags5 = {"App2", "GMSCoreModule1", "GMSCoreModule2"};
+    events.push_back(CreateSyncStartEvent(bucketStartTimeNs + 300, attributionUids5,
+                                          attributionTags5, "ReadEmail"));
+    events.push_back(CreateSyncEndEvent(bucketStartTimeNs + bucketSizeNs + 700, attributionUids5,
+                                        attributionTags5, "ReadEmail"));
+    events.push_back(CreateSyncStartEvent(bucketStartTimeNs + 400, attributionUids5,
+                                          attributionTags5, "ReadDoc"));
+    events.push_back(CreateSyncEndEvent(bucketStartTimeNs + bucketSizeNs - 1, attributionUids5,
+                                        attributionTags5, "ReadDoc"));
 
-    events.push_back(CreateSyncStartEvent(attributions3, "ReadDoc",
-                                          bucketStartTimeNs + 550));
-    events.push_back(CreateSyncEndEvent(attributions3, "ReadDoc",
-                                        bucketStartTimeNs + 800));
-    events.push_back(CreateSyncStartEvent(attributions3, "ReadDoc",
-                                          bucketStartTimeNs + bucketSizeNs - 1));
-    events.push_back(CreateSyncEndEvent(attributions3, "ReadDoc",
-                                        bucketStartTimeNs + bucketSizeNs + 700));
+    vector<int> attributionUids6 = {444, 222, 555};
+    vector<string> attributionTags6 = {"App3", "GMSCoreModule1", "GMSCoreModule2"};
+    events.push_back(CreateSyncStartEvent(bucketStartTimeNs + 550, attributionUids6,
+                                          attributionTags6, "ReadDoc"));
+    events.push_back(CreateSyncEndEvent(bucketStartTimeNs + 800, attributionUids6, attributionTags6,
+                                        "ReadDoc"));
+    events.push_back(CreateSyncStartEvent(bucketStartTimeNs + bucketSizeNs - 1, attributionUids6,
+                                          attributionTags6, "ReadDoc"));
+    events.push_back(CreateSyncEndEvent(bucketStartTimeNs + bucketSizeNs + 700, attributionUids6,
+                                        attributionTags6, "ReadDoc"));
     sortLogEventsByTimestamp(&events);
 
     while (state.KeepRunning()) {
diff --git a/cmds/statsd/benchmark/filter_value_benchmark.cpp b/cmds/statsd/benchmark/filter_value_benchmark.cpp
index cfe477d..28bf21a 100644
--- a/cmds/statsd/benchmark/filter_value_benchmark.cpp
+++ b/cmds/statsd/benchmark/filter_value_benchmark.cpp
@@ -19,6 +19,7 @@
 #include "HashableDimensionKey.h"
 #include "logd/LogEvent.h"
 #include "stats_log_util.h"
+#include "stats_event.h"
 
 namespace android {
 namespace os {
@@ -26,17 +27,31 @@
 
 using std::vector;
 
-static void createLogEventAndMatcher(LogEvent* event, FieldMatcher *field_matcher) {
-    AttributionNodeInternal node;
-    node.set_uid(100);
-    node.set_tag("LOCATION");
+static void createLogEventAndMatcher(LogEvent* event, FieldMatcher* field_matcher) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, 1);
+    AStatsEvent_overwriteTimestamp(statsEvent, 100000);
 
-    std::vector<AttributionNodeInternal> nodes = {node, node};
-    event->write(nodes);
-    event->write(3.2f);
-    event->write("LOCATION");
-    event->write((int64_t)990);
-    event->init();
+    std::vector<int> attributionUids = {100, 100};
+    std::vector<string> attributionTags = {"LOCATION", "LOCATION"};
+
+    vector<const char*> cTags(attributionTags.size());
+    for (int i = 0; i < cTags.size(); i++) {
+        cTags[i] = attributionTags[i].c_str();
+    }
+
+    AStatsEvent_writeAttributionChain(statsEvent,
+                                      reinterpret_cast<const uint32_t*>(attributionUids.data()),
+                                      cTags.data(), attributionUids.size());
+    AStatsEvent_writeFloat(statsEvent, 3.2f);
+    AStatsEvent_writeString(statsEvent, "LOCATION");
+    AStatsEvent_writeInt64(statsEvent, 990);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    event->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
 
     field_matcher->set_field(1);
     auto child = field_matcher->add_child();
@@ -46,7 +61,7 @@
 }
 
 static void BM_FilterValue(benchmark::State& state) {
-    LogEvent event(1, 100000);
+    LogEvent event(/*uid=*/0, /*pid=*/0);
     FieldMatcher field_matcher;
     createLogEventAndMatcher(&event, &field_matcher);
 
diff --git a/cmds/statsd/benchmark/get_dimensions_for_condition_benchmark.cpp b/cmds/statsd/benchmark/get_dimensions_for_condition_benchmark.cpp
index 2a4403e..c7d01cc 100644
--- a/cmds/statsd/benchmark/get_dimensions_for_condition_benchmark.cpp
+++ b/cmds/statsd/benchmark/get_dimensions_for_condition_benchmark.cpp
@@ -19,6 +19,7 @@
 #include "HashableDimensionKey.h"
 #include "logd/LogEvent.h"
 #include "stats_log_util.h"
+#include "stats_event.h"
 
 namespace android {
 namespace os {
@@ -27,16 +28,30 @@
 using std::vector;
 
 static void createLogEventAndLink(LogEvent* event, Metric2Condition *link) {
-    AttributionNodeInternal node;
-    node.set_uid(100);
-    node.set_tag("LOCATION");
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, 1);
+    AStatsEvent_overwriteTimestamp(statsEvent, 100000);
 
-    std::vector<AttributionNodeInternal> nodes = {node, node};
-    event->write(nodes);
-    event->write(3.2f);
-    event->write("LOCATION");
-    event->write((int64_t)990);
-    event->init();
+    std::vector<int> attributionUids = {100, 100};
+    std::vector<string> attributionTags = {"LOCATION", "LOCATION"};
+
+    vector<const char*> cTags(attributionTags.size());
+    for (int i = 0; i < cTags.size(); i++) {
+        cTags[i] = attributionTags[i].c_str();
+    }
+
+    AStatsEvent_writeAttributionChain(statsEvent,
+                                      reinterpret_cast<const uint32_t*>(attributionUids.data()),
+                                      cTags.data(), attributionUids.size());
+    AStatsEvent_writeFloat(statsEvent, 3.2f);
+    AStatsEvent_writeString(statsEvent, "LOCATION");
+    AStatsEvent_writeInt64(statsEvent, 990);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    event->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
 
     link->conditionId = 1;
 
@@ -54,7 +69,7 @@
 
 static void BM_GetDimensionInCondition(benchmark::State& state) {
     Metric2Condition link;
-    LogEvent event(1, 100000);
+    LogEvent event(/*uid=*/0, /*pid=*/0);
     createLogEventAndLink(&event, &link);
 
     while (state.KeepRunning()) {
diff --git a/cmds/statsd/benchmark/log_event_benchmark.cpp b/cmds/statsd/benchmark/log_event_benchmark.cpp
index 8b68743..057e00b 100644
--- a/cmds/statsd/benchmark/log_event_benchmark.cpp
+++ b/cmds/statsd/benchmark/log_event_benchmark.cpp
@@ -39,7 +39,8 @@
     uint8_t msg[LOGGER_ENTRY_MAX_PAYLOAD];
     size_t size = createAndParseStatsEvent(msg);
     while (state.KeepRunning()) {
-        benchmark::DoNotOptimize(LogEvent(msg, size, /*uid=*/ 1000, /*pid=*/ 1001));
+        LogEvent event(/*uid=*/ 1000, /*pid=*/ 1001);
+        benchmark::DoNotOptimize(event.parseBuffer(msg, size));
     }
 }
 BENCHMARK(BM_LogEventCreation);
diff --git a/cmds/statsd/benchmark/metric_util.cpp b/cmds/statsd/benchmark/metric_util.cpp
index cca6d52..4bce89f 100644
--- a/cmds/statsd/benchmark/metric_util.cpp
+++ b/cmds/statsd/benchmark/metric_util.cpp
@@ -14,6 +14,8 @@
 
 #include "metric_util.h"
 
+#include "stats_event.h"
+
 namespace android {
 namespace os {
 namespace statsd {
@@ -246,117 +248,112 @@
 }
 
 std::unique_ptr<LogEvent> CreateScreenStateChangedEvent(
-    const android::view::DisplayStateEnum state, uint64_t timestampNs) {
-    auto event = std::make_unique<LogEvent>(android::util::SCREEN_STATE_CHANGED, timestampNs);
-    event->write(state);
-    event->init();
-    return event;
-}
+        uint64_t timestampNs, const android::view::DisplayStateEnum state) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, util::SCREEN_STATE_CHANGED);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
 
-std::unique_ptr<LogEvent> CreateScreenBrightnessChangedEvent(
-    int level, uint64_t timestampNs) {
-    auto event = std::make_unique<LogEvent>(android::util::SCREEN_BRIGHTNESS_CHANGED, timestampNs);
-    (event->write(level));
-    event->init();
-    return event;
+    AStatsEvent_writeInt32(statsEvent, state);
+    AStatsEvent_build(statsEvent);
 
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+
+    std::unique_ptr<LogEvent> logEvent = std::make_unique<LogEvent>(/*uid=*/0, /*pid=*/0);
+    logEvent->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
+    return logEvent;
 }
 
 std::unique_ptr<LogEvent> CreateScheduledJobStateChangedEvent(
-        const std::vector<AttributionNodeInternal>& attributions, const string& jobName,
-        const ScheduledJobStateChanged::State state, uint64_t timestampNs) {
-    auto event = std::make_unique<LogEvent>(android::util::SCHEDULED_JOB_STATE_CHANGED, timestampNs);
-    event->write(attributions);
-    event->write(jobName);
-    event->write(state);
-    event->init();
-    return event;
+        const vector<int>& attributionUids, const vector<string>& attributionTags,
+        const string& jobName, const ScheduledJobStateChanged::State state, uint64_t timestampNs) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, util::SCHEDULED_JOB_STATE_CHANGED);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
+
+    vector<const char*> cTags(attributionTags.size());
+    for (int i = 0; i < cTags.size(); i++) {
+        cTags[i] = attributionTags[i].c_str();
+    }
+
+    AStatsEvent_writeAttributionChain(statsEvent,
+                                      reinterpret_cast<const uint32_t*>(attributionUids.data()),
+                                      cTags.data(), attributionUids.size());
+    AStatsEvent_writeString(statsEvent, jobName.c_str());
+    AStatsEvent_writeInt32(statsEvent, state);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+
+    std::unique_ptr<LogEvent> logEvent = std::make_unique<LogEvent>(/*uid=*/0, /*pid=*/0);
+    logEvent->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
+    return logEvent;
 }
 
-std::unique_ptr<LogEvent> CreateStartScheduledJobEvent(
-    const std::vector<AttributionNodeInternal>& attributions,
-    const string& name, uint64_t timestampNs) {
-    return CreateScheduledJobStateChangedEvent(
-            attributions, name, ScheduledJobStateChanged::STARTED, timestampNs);
+std::unique_ptr<LogEvent> CreateStartScheduledJobEvent(uint64_t timestampNs,
+                                                       const vector<int>& attributionUids,
+                                                       const vector<string>& attributionTags,
+                                                       const string& jobName) {
+    return CreateScheduledJobStateChangedEvent(attributionUids, attributionTags, jobName,
+                                               ScheduledJobStateChanged::STARTED, timestampNs);
 }
 
 // Create log event when scheduled job finishes.
-std::unique_ptr<LogEvent> CreateFinishScheduledJobEvent(
-    const std::vector<AttributionNodeInternal>& attributions,
-    const string& name, uint64_t timestampNs) {
-    return CreateScheduledJobStateChangedEvent(
-            attributions, name, ScheduledJobStateChanged::FINISHED, timestampNs);
+std::unique_ptr<LogEvent> CreateFinishScheduledJobEvent(uint64_t timestampNs,
+                                                        const vector<int>& attributionUids,
+                                                        const vector<string>& attributionTags,
+                                                        const string& jobName) {
+    return CreateScheduledJobStateChangedEvent(attributionUids, attributionTags, jobName,
+                                               ScheduledJobStateChanged::FINISHED, timestampNs);
 }
 
-std::unique_ptr<LogEvent> CreateWakelockStateChangedEvent(
-        const std::vector<AttributionNodeInternal>& attributions, const string& wakelockName,
-        const WakelockStateChanged::State state, uint64_t timestampNs) {
-    auto event = std::make_unique<LogEvent>(android::util::WAKELOCK_STATE_CHANGED, timestampNs);
-    event->write(attributions);
-    event->write(android::os::WakeLockLevelEnum::PARTIAL_WAKE_LOCK);
-    event->write(wakelockName);
-    event->write(state);
-    event->init();
-    return event;
+std::unique_ptr<LogEvent> CreateSyncStateChangedEvent(uint64_t timestampNs,
+                                                      const vector<int>& attributionUids,
+                                                      const vector<string>& attributionTags,
+                                                      const string& name,
+                                                      const SyncStateChanged::State state) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, util::SYNC_STATE_CHANGED);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
+
+    vector<const char*> cTags(attributionTags.size());
+    for (int i = 0; i < cTags.size(); i++) {
+        cTags[i] = attributionTags[i].c_str();
+    }
+
+    AStatsEvent_writeAttributionChain(statsEvent,
+                                      reinterpret_cast<const uint32_t*>(attributionUids.data()),
+                                      cTags.data(), attributionUids.size());
+    AStatsEvent_writeString(statsEvent, name.c_str());
+    AStatsEvent_writeInt32(statsEvent, state);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+
+    std::unique_ptr<LogEvent> logEvent = std::make_unique<LogEvent>(/*uid=*/0, /*pid=*/0);
+    logEvent->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
+    return logEvent;
 }
 
-std::unique_ptr<LogEvent> CreateAcquireWakelockEvent(
-        const std::vector<AttributionNodeInternal>& attributions, const string& wakelockName,
-        uint64_t timestampNs) {
-    return CreateWakelockStateChangedEvent(
-        attributions, wakelockName, WakelockStateChanged::ACQUIRE, timestampNs);
+std::unique_ptr<LogEvent> CreateSyncStartEvent(uint64_t timestampNs,
+                                               const vector<int>& attributionUids,
+                                               const vector<string>& attributionTags,
+                                               const string& name) {
+    return CreateSyncStateChangedEvent(timestampNs, attributionUids, attributionTags, name,
+                                       SyncStateChanged::ON);
 }
 
-std::unique_ptr<LogEvent> CreateReleaseWakelockEvent(
-        const std::vector<AttributionNodeInternal>& attributions, const string& wakelockName,
-        uint64_t timestampNs) {
-    return CreateWakelockStateChangedEvent(
-        attributions, wakelockName, WakelockStateChanged::RELEASE, timestampNs);
-}
-
-std::unique_ptr<LogEvent> CreateActivityForegroundStateChangedEvent(
-    const int uid, const ActivityForegroundStateChanged::State state, uint64_t timestampNs) {
-    auto event = std::make_unique<LogEvent>(
-        android::util::ACTIVITY_FOREGROUND_STATE_CHANGED, timestampNs);
-    event->write(uid);
-    event->write("pkg_name");
-    event->write("class_name");
-    event->write(state);
-    event->init();
-    return event;
-}
-
-std::unique_ptr<LogEvent> CreateMoveToBackgroundEvent(const int uid, uint64_t timestampNs) {
-    return CreateActivityForegroundStateChangedEvent(
-        uid, ActivityForegroundStateChanged::BACKGROUND, timestampNs);
-}
-
-std::unique_ptr<LogEvent> CreateMoveToForegroundEvent(const int uid, uint64_t timestampNs) {
-    return CreateActivityForegroundStateChangedEvent(
-        uid, ActivityForegroundStateChanged::FOREGROUND, timestampNs);
-}
-
-std::unique_ptr<LogEvent> CreateSyncStateChangedEvent(
-        const std::vector<AttributionNodeInternal>& attributions, const string& name,
-        const SyncStateChanged::State state, uint64_t timestampNs) {
-    auto event = std::make_unique<LogEvent>(android::util::SYNC_STATE_CHANGED, timestampNs);
-    event->write(attributions);
-    event->write(name);
-    event->write(state);
-    event->init();
-    return event;
-}
-
-std::unique_ptr<LogEvent> CreateSyncStartEvent(
-        const std::vector<AttributionNodeInternal>& attributions, const string& name,
-        uint64_t timestampNs) {
-    return CreateSyncStateChangedEvent(attributions, name, SyncStateChanged::ON, timestampNs);
-}
-
-std::unique_ptr<LogEvent> CreateSyncEndEvent(
-        const std::vector<AttributionNodeInternal>& attributions, const string& name,
-        uint64_t timestampNs) {
-    return CreateSyncStateChangedEvent(attributions, name, SyncStateChanged::OFF, timestampNs);
+std::unique_ptr<LogEvent> CreateSyncEndEvent(uint64_t timestampNs,
+                                             const vector<int>& attributionUids,
+                                             const vector<string>& attributionTags,
+                                             const string& name) {
+    return CreateSyncStateChangedEvent(timestampNs, attributionUids, attributionTags, name,
+                                       SyncStateChanged::OFF);
 }
 
 sp<StatsLogProcessor> CreateStatsLogProcessor(const long timeBaseSec, const StatsdConfig& config,
diff --git a/cmds/statsd/benchmark/metric_util.h b/cmds/statsd/benchmark/metric_util.h
index 9b28d60..6199fa9 100644
--- a/cmds/statsd/benchmark/metric_util.h
+++ b/cmds/statsd/benchmark/metric_util.h
@@ -94,55 +94,31 @@
 
 // Create log event for screen state changed.
 std::unique_ptr<LogEvent> CreateScreenStateChangedEvent(
-    const android::view::DisplayStateEnum state, uint64_t timestampNs);
-
-// Create log event for screen brightness state changed.
-std::unique_ptr<LogEvent> CreateScreenBrightnessChangedEvent(
-   int level, uint64_t timestampNs);
+        uint64_t timestampNs, const android::view::DisplayStateEnum state);
 
 // Create log event when scheduled job starts.
-std::unique_ptr<LogEvent> CreateStartScheduledJobEvent(
-    const std::vector<AttributionNodeInternal>& attributions,
-    const string& name, uint64_t timestampNs);
+std::unique_ptr<LogEvent> CreateStartScheduledJobEvent(uint64_t timestampNs,
+                                                       const vector<int>& attributionUids,
+                                                       const vector<string>& attributionTags,
+                                                       const string& jobName);
 
 // Create log event when scheduled job finishes.
-std::unique_ptr<LogEvent> CreateFinishScheduledJobEvent(
-    const std::vector<AttributionNodeInternal>& attributions,
-    const string& name, uint64_t timestampNs);
-
-// Create log event for app moving to background.
-std::unique_ptr<LogEvent> CreateMoveToBackgroundEvent(const int uid, uint64_t timestampNs);
-
-// Create log event for app moving to foreground.
-std::unique_ptr<LogEvent> CreateMoveToForegroundEvent(const int uid, uint64_t timestampNs);
+std::unique_ptr<LogEvent> CreateFinishScheduledJobEvent(uint64_t timestampNs,
+                                                        const vector<int>& attributionUids,
+                                                        const vector<string>& attributionTags,
+                                                        const string& jobName);
 
 // Create log event when the app sync starts.
-std::unique_ptr<LogEvent> CreateSyncStartEvent(
-        const std::vector<AttributionNodeInternal>& attributions, const string& name,
-        uint64_t timestampNs);
+std::unique_ptr<LogEvent> CreateSyncStartEvent(uint64_t timestampNs,
+                                               const vector<int>& attributionUids,
+                                               const vector<string>& attributionTags,
+                                               const string& name);
 
 // Create log event when the app sync ends.
-std::unique_ptr<LogEvent> CreateSyncEndEvent(
-        const std::vector<AttributionNodeInternal>& attributions, const string& name,
-        uint64_t timestampNs);
-
-// Create log event when the app sync ends.
-std::unique_ptr<LogEvent> CreateAppCrashEvent(
-    const int uid, uint64_t timestampNs);
-
-// Create log event for acquiring wakelock.
-std::unique_ptr<LogEvent> CreateAcquireWakelockEvent(
-        const std::vector<AttributionNodeInternal>& attributions, const string& wakelockName,
-        uint64_t timestampNs);
-
-// Create log event for releasing wakelock.
-std::unique_ptr<LogEvent> CreateReleaseWakelockEvent(
-        const std::vector<AttributionNodeInternal>& attributions, const string& wakelockName,
-        uint64_t timestampNs);
-
-// Create log event for releasing wakelock.
-std::unique_ptr<LogEvent> CreateIsolatedUidChangedEvent(
-    int isolatedUid, int hostUid, bool is_create, uint64_t timestampNs);
+std::unique_ptr<LogEvent> CreateSyncEndEvent(uint64_t timestampNs,
+                                             const vector<int>& attributionUids,
+                                             const vector<string>& attributionTags,
+                                             const string& name);
 
 // Helper function to create an AttributionNodeInternal proto.
 AttributionNodeInternal CreateAttribution(const int& uid, const string& tag);
@@ -158,4 +134,4 @@
 
 }  // namespace statsd
 }  // namespace os
-}  // namespace android
\ No newline at end of file
+}  // namespace android
diff --git a/cmds/statsd/src/StatsLogProcessor.cpp b/cmds/statsd/src/StatsLogProcessor.cpp
index 69b9fc7..4966b2e 100644
--- a/cmds/statsd/src/StatsLogProcessor.cpp
+++ b/cmds/statsd/src/StatsLogProcessor.cpp
@@ -536,6 +536,7 @@
             new MetricsManager(key, config, mTimeBaseNs, timestampNs, mUidMap, mPullerManager,
                                mAnomalyAlarmMonitor, mPeriodicAlarmMonitor);
     if (newMetricsManager->isConfigValid()) {
+        newMetricsManager->init();
         mUidMap->OnConfigUpdated(key);
         newMetricsManager->refreshTtl(timestampNs);
         mMetricsManagers[key] = newMetricsManager;
diff --git a/cmds/statsd/src/StatsService.cpp b/cmds/statsd/src/StatsService.cpp
index 07579bb..98879a0 100644
--- a/cmds/statsd/src/StatsService.cpp
+++ b/cmds/statsd/src/StatsService.cpp
@@ -53,6 +53,8 @@
 
 constexpr const char* kPermissionDump = "android.permission.DUMP";
 
+constexpr const char* kPermissionRegisterPullAtom = "android.permission.REGISTER_STATS_PULL_ATOM";
+
 #define STATS_SERVICE_DIR "/data/misc/stats-service"
 
 // for StatsDataDumpProto
@@ -60,7 +62,7 @@
 
 static Status exception(int32_t code, const std::string& msg) {
     ALOGE("%s (%d)", msg.c_str(), code);
-    return ::ndk::ScopedAStatus(AStatus_fromExceptionCodeWithMessage(code, msg.c_str()));
+    return Status::fromExceptionCodeWithMessage(code, msg.c_str());
 }
 
 static bool checkPermission(const char* permission) {
@@ -383,9 +385,11 @@
     dprintf(out, "  PKG           Optional package name to print the uids of the package\n");
     dprintf(out, "\n");
     dprintf(out, "\n");
-    dprintf(out, "usage: adb shell cmd stats pull-source [int] \n");
+    dprintf(out, "usage: adb shell cmd stats pull-source ATOM_TAG [PACKAGE] \n");
     dprintf(out, "\n");
-    dprintf(out, "  Prints the output of a pulled metrics source (int indicates source)\n");
+    dprintf(out, "  Prints the output of a pulled atom\n");
+    dprintf(out, "  UID           The atom to pull\n");
+    dprintf(out, "  PACKAGE       The package to pull from. Default is AID_SYSTEM\n");
     dprintf(out, "\n");
     dprintf(out, "\n");
     dprintf(out, "usage: adb shell cmd stats write-to-disk \n");
@@ -804,8 +808,21 @@
 
 status_t StatsService::cmd_print_pulled_metrics(int out, const Vector<String8>& args) {
     int s = atoi(args[1].c_str());
-    vector<shared_ptr<LogEvent> > stats;
-    if (mPullerManager->Pull(s, &stats)) {
+    vector<int32_t> uids;
+    if (args.size() > 2) {
+        string package = string(args[2].c_str());
+        auto it = UidMap::sAidToUidMapping.find(package);
+        if (it != UidMap::sAidToUidMapping.end()) {
+            uids.push_back(it->second);
+        } else {
+            set<int32_t> uids_set = mUidMap->getAppUid(package);
+            uids.insert(uids.end(), uids_set.begin(), uids_set.end());
+        }
+    } else {
+        uids.push_back(AID_SYSTEM);
+    }
+    vector<shared_ptr<LogEvent>> stats;
+    if (mPullerManager->Pull(s, uids, &stats)) {
         for (const auto& it : stats) {
             dprintf(out, "Pull from %d: %s\n", s, it->ToString().c_str());
         }
@@ -1207,13 +1224,20 @@
     return Status::ok();
 }
 
-Status StatsService::registerNativePullAtomCallback(int32_t atomTag, int64_t coolDownNs,
-                                    int64_t timeoutNs, const std::vector<int32_t>& additiveFields,
-                                    const shared_ptr<IPullAtomCallback>& pullerCallback) {
-
+Status StatsService::registerNativePullAtomCallback(
+        int32_t atomTag, int64_t coolDownMillis, int64_t timeoutMillis,
+        const std::vector<int32_t>& additiveFields,
+        const shared_ptr<IPullAtomCallback>& pullerCallback) {
+    if (!checkPermission(kPermissionRegisterPullAtom)) {
+        return exception(
+                EX_SECURITY,
+                StringPrintf("Uid %d does not have the %s permission when registering atom %d",
+                             AIBinder_getCallingUid(), kPermissionRegisterPullAtom, atomTag));
+    }
     VLOG("StatsService::registerNativePullAtomCallback called.");
     int32_t uid = AIBinder_getCallingUid();
-    mPullerManager->RegisterPullAtomCallback(uid, atomTag, coolDownNs, timeoutNs, additiveFields,
+    mPullerManager->RegisterPullAtomCallback(uid, atomTag, MillisToNano(coolDownMillis),
+                                             MillisToNano(timeoutMillis), additiveFields,
                                              pullerCallback);
     return Status::ok();
 }
@@ -1226,6 +1250,12 @@
 }
 
 Status StatsService::unregisterNativePullAtomCallback(int32_t atomTag) {
+    if (!checkPermission(kPermissionRegisterPullAtom)) {
+        return exception(
+                EX_SECURITY,
+                StringPrintf("Uid %d does not have the %s permission when unregistering atom %d",
+                             AIBinder_getCallingUid(), kPermissionRegisterPullAtom, atomTag));
+    }
     VLOG("StatsService::unregisterNativePullAtomCallback called.");
     int32_t uid = AIBinder_getCallingUid();
     mPullerManager->UnregisterPullAtomCallback(uid, atomTag);
diff --git a/cmds/statsd/src/StatsService.h b/cmds/statsd/src/StatsService.h
index c256e1f..114c84f 100644
--- a/cmds/statsd/src/StatsService.h
+++ b/cmds/statsd/src/StatsService.h
@@ -175,8 +175,9 @@
     /**
      * Binder call to register a callback function for a pulled atom.
      */
-    virtual Status registerNativePullAtomCallback(int32_t atomTag, int64_t coolDownNs,
-            int64_t timeoutNs, const std::vector<int32_t>& additiveFields,
+    virtual Status registerNativePullAtomCallback(
+            int32_t atomTag, int64_t coolDownMillis, int64_t timeoutMillis,
+            const std::vector<int32_t>& additiveFields,
             const shared_ptr<IPullAtomCallback>& pullerCallback) override;
 
     /**
diff --git a/cmds/statsd/src/atom_field_options.proto b/cmds/statsd/src/atom_field_options.proto
index 40a24dc..afee79d 100644
--- a/cmds/statsd/src/atom_field_options.proto
+++ b/cmds/statsd/src/atom_field_options.proto
@@ -117,4 +117,6 @@
     optional bool allow_from_any_uid = 50003 [default = false];
 
     repeated string module = 50004;
+
+    optional bool truncate_timestamp = 50005 [default = false];
 }
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index f0a5b51..9bba69c 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -78,7 +78,8 @@
     // Pushed atoms start at 2.
     oneof pushed {
         // For StatsLog reasons, 1 is illegal and will not work. Must start at 2.
-        BleScanStateChanged ble_scan_state_changed = 2 [(module) = "bluetooth"];
+        BleScanStateChanged ble_scan_state_changed = 2
+                [(module) = "bluetooth", (module) = "statsdtest"];
         ProcessStateChanged process_state_changed = 3 [(module) = "framework"];
         BleScanResultReceived ble_scan_result_received = 4 [(module) = "bluetooth"];
         SensorStateChanged sensor_state_changed =
@@ -93,7 +94,8 @@
                 10 [(module) = "framework", (module) = "statsdtest"];
         LongPartialWakelockStateChanged long_partial_wakelock_state_changed =
                 11 [(module) = "framework"];
-        MobileRadioPowerStateChanged mobile_radio_power_state_changed = 12 [(module) = "framework"];
+        MobileRadioPowerStateChanged mobile_radio_power_state_changed =
+                12 [(module) = "framework", (truncate_timestamp) = true];
         WifiRadioPowerStateChanged wifi_radio_power_state_changed = 13 [(module) = "framework"];
         ActivityManagerSleepStateChanged activity_manager_sleep_state_changed =
                 14 [(module) = "framework"];
@@ -106,7 +108,8 @@
                 20 [(module) = "framework", (module) = "statsdtest"];
         DeviceIdleModeStateChanged device_idle_mode_state_changed = 21 [(module) = "framework"];
         DeviceIdlingModeStateChanged device_idling_mode_state_changed = 22 [(module) = "framework"];
-        AudioStateChanged audio_state_changed = 23 [(module) = "framework"];
+        AudioStateChanged audio_state_changed =
+                23 [(module) = "framework", (truncate_timestamp) = true];
         MediaCodecStateChanged media_codec_state_changed = 24 [(module) = "framework"];
         CameraStateChanged camera_state_changed = 25 [(module) = "framework"];
         FlashlightStateChanged flashlight_state_changed = 26 [(module) = "framework"];
@@ -127,7 +130,8 @@
         WifiLockStateChanged wifi_lock_state_changed = 37 [(module) = "wifi"];
         WifiSignalStrengthChanged wifi_signal_strength_changed = 38 [(module) = "wifi"];
         WifiScanStateChanged wifi_scan_state_changed = 39 [(module) = "wifi"];
-        PhoneSignalStrengthChanged phone_signal_strength_changed = 40 [(module) = "framework"];
+        PhoneSignalStrengthChanged phone_signal_strength_changed =
+                40 [(module) = "framework", (truncate_timestamp) = true];
         SettingChanged setting_changed = 41 [(module) = "framework"];
         ActivityForegroundStateChanged activity_foreground_state_changed =
                 42 [(module) = "framework", (module) = "statsdtest"];
@@ -153,7 +157,8 @@
                 59 [(module) = "framework", (module) = "statsdtest"];
         ForegroundServiceStateChanged foreground_service_state_changed
                 = 60 [(module) = "framework"];
-        CallStateChanged call_state_changed = 61 [(module) = "telecom"];
+        CallStateChanged call_state_changed =
+                61 [(module) = "telecom", (truncate_timestamp) = true];
         KeyguardStateChanged keyguard_state_changed = 62 [(module) = "sysui"];
         KeyguardBouncerStateChanged keyguard_bouncer_state_changed = 63 [(module) = "sysui"];
         KeyguardBouncerPasswordEntered keyguard_bouncer_password_entered = 64 [(module) = "sysui"];
@@ -419,8 +424,10 @@
     oneof pulled {
         WifiBytesTransfer wifi_bytes_transfer = 10000 [(module) = "framework"];
         WifiBytesTransferByFgBg wifi_bytes_transfer_by_fg_bg = 10001 [(module) = "framework"];
-        MobileBytesTransfer mobile_bytes_transfer = 10002 [(module) = "framework"];
-        MobileBytesTransferByFgBg mobile_bytes_transfer_by_fg_bg = 10003 [(module) = "framework"];
+        MobileBytesTransfer mobile_bytes_transfer =
+                10002 [(module) = "framework", (truncate_timestamp) = true];
+        MobileBytesTransferByFgBg mobile_bytes_transfer_by_fg_bg =
+                10003 [(module) = "framework", (truncate_timestamp) = true];
         BluetoothBytesTransfer bluetooth_bytes_transfer = 10006 [(module) = "framework"];
         KernelWakelock kernel_wakelock = 10004 [(module) = "framework"];
         SubsystemSleepState subsystem_sleep_state = 10005 [(module) = "statsdtest"];
@@ -434,7 +441,7 @@
         ProcessMemoryState process_memory_state = 10013 [(module) = "framework"];
         SystemElapsedRealtime system_elapsed_realtime = 10014 [(module) = "framework"];
         SystemUptime system_uptime = 10015 [(module) = "framework", (module) = "statsdtest"];
-        CpuActiveTime cpu_active_time = 10016 [(module) = "framework"];
+        CpuActiveTime cpu_active_time = 10016 [(module) = "framework", (module) = "statsdtest"];
         CpuClusterTime cpu_cluster_time = 10017 [(module) = "framework", (module) = "statsdtest"];
         DiskSpace disk_space = 10018 [deprecated=true, (module) = "statsdtest"];
         RemainingBatteryCapacity remaining_battery_capacity = 10019 [(module) = "framework"];
@@ -503,6 +510,7 @@
         VoiceCallRatUsage voice_call_rat_usage = 10077 [(module) = "telephony"];
         SimSlotState sim_slot_state = 10078 [(module) = "telephony"];
         SupportedRadioAccessFamily supported_radio_access_family = 10079 [(module) = "telephony"];
+        SettingSnapshot setting_snapshot = 10080 [(module) = "framework"];
     }
 
     // DO NOT USE field numbers above 100,000 in AOSP.
@@ -1717,7 +1725,7 @@
  * Logged from:
  *    packages/apps/Bluetooth/src/com/android/bluetooth/btservice/RemoteDevices.java
  *
- * Next Tag: 5
+ * Next Tag: 6
  */
 message BluetoothConnectionStateChanged {
     // The state of the connection.
@@ -1739,6 +1747,15 @@
     // Size: 32 byte
     // Default: null or empty if the device identifier is not known
     optional bytes new_obfuscated_id = 4 [(android.os.statsd.log_mode) = MODE_BYTES];
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 5;
 }
 
 /**
@@ -1747,7 +1764,7 @@
  * Logged from:
  *    packages/apps/Bluetooth/src/com/android/bluetooth/btservice/AdapterProperties.java
  *
- * Next Tag: 3
+ * Next Tag: 4
  */
 message BluetoothAclConnectionStateChanged {
     // An identifier that can be used to match events for this device.
@@ -1760,6 +1777,15 @@
     // The state of the connection.
     // Eg: CONNECTING, CONNECTED, DISCONNECTING, DISCONNECTED.
     optional android.bluetooth.ConnectionStateEnum state = 2;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 3;
 }
 
 /**
@@ -1769,7 +1795,7 @@
  *    packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
  *    packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetClientStateMachine.java
  *
- * Next Tag: 4
+ * Next Tag: 5
  */
 message BluetoothScoConnectionStateChanged {
     // An identifier that can be used to match events for this device.
@@ -1785,6 +1811,15 @@
     // Codec used for this SCO connection
     // Default: UNKNOWN
     optional android.bluetooth.hfp.ScoCodec codec = 3;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 4;
 }
 
 /**
@@ -1806,6 +1841,15 @@
     // Size: 32 byte
     // Default: null or empty if there is no active device for this profile
     optional bytes obfuscated_id = 2 [(android.os.statsd.log_mode) = MODE_BYTES];
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 3;
 }
 
 // Logs when there is an event affecting Bluetooth device's link layer connection.
@@ -1889,6 +1933,15 @@
     // HCI reason code associated with this event
     // Default: STATUS_UNKNOWN
     optional android.bluetooth.hci.StatusEnum reason_code = 9;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 10;
 }
 
 /**
@@ -1947,6 +2000,15 @@
     // Current audio coding mode
     // Default: AUDIO_CODING_MODE_UNKNOWN
     optional android.bluetooth.a2dp.AudioCodingModeEnum audio_coding_mode = 3;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 4;
 }
 
 /**
@@ -1985,6 +2047,15 @@
     optional int64 codec_specific_2 = 8;
     optional int64 codec_specific_3 = 9;
     optional int64 codec_specific_4 = 10;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 11;
 }
 
 /**
@@ -2027,6 +2098,15 @@
     optional int64 codec_specific_2 = 8;
     optional int64 codec_specific_3 = 9;
     optional int64 codec_specific_4 = 10;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 11;
 }
 
 /**
@@ -2050,6 +2130,15 @@
     // Number of bytes of PCM data that could not be read from the source
     // Default: 0
     optional int32 num_missing_pcm_bytes = 3;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 4;
 }
 
 /**
@@ -2080,6 +2169,15 @@
     // Number of encoded bytes dropped in this event
     // Default: 0
     optional int32 num_dropped_encoded_bytes = 5;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 6;
 }
 
 /**
@@ -2111,6 +2209,15 @@
     //   Units: dBm
     // Invalid when an out of range value is reported
     optional int32 rssi = 4;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 5;
 }
 
 /**
@@ -2138,6 +2245,15 @@
     // Range: uint16_t, 0-0xFFFF
     // Default: 0xFFFFF
     optional int32 failed_contact_counter = 4;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 5;
 }
 
 /**
@@ -2165,6 +2281,15 @@
     // Units: dBm
     // Invalid when an out of range value is reported
     optional int32 transmit_power_level = 4;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 5;
 }
 
 /**
@@ -2294,6 +2419,15 @@
     optional string hardware_version = 6;
     // Software version of this device
     optional string software_version = 7;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 8;
 }
 
 /**
@@ -2347,6 +2481,15 @@
     optional int32 attribute_id = 3;
     // Attribute value for the particular attribute
     optional bytes attribute_value = 4 [(android.os.statsd.log_mode) = MODE_BYTES];
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 5;
 }
 
 /**
@@ -2379,6 +2522,15 @@
     // Unbond Reason
     // Default: UNBOND_REASON_UNKNOWN
     optional android.bluetooth.UnbondReasonEnum unbond_reason = 6;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 7;
 }
 
 /**
@@ -2414,6 +2566,15 @@
     // A status value related to this specific event
     // Default: 0
     optional int64 event_value = 7;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 8;
 }
 
 /**
@@ -2439,6 +2600,15 @@
     // SMP failure reason code
     // Default: PAIRING_FAIL_REASON_DEFAULT
     optional android.bluetooth.smp.PairingFailReasonEnum smp_fail_reason = 4;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 5;
 }
 
 /**
@@ -2477,6 +2647,15 @@
     optional int32 server_port = 8;
     // Whether this is a server listener socket
     optional android.bluetooth.SocketRoleEnum is_server = 9;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 10;
 }
 
 /**
@@ -2500,6 +2679,15 @@
     // Also defined in: https://developer.android.com/reference/android/bluetooth/BluetoothClass
     // Default: 0
     optional int32 class_of_device = 2;
+    // An identifier that can be used to match events for this device.
+    // The incremental identifier is locally generated and guaranteed not derived
+    // from any globally unique hardware id.
+    // For paired devices, it stays consistent between Bluetooth toggling for the
+    // same remote device.
+    // For unpaired devices, it stays consistent within the same Bluetooth adapter
+    // session for the same remote device.
+    // Default: 0 if the device's metric id is unknown.
+    optional int32 metric_id = 3;
 }
 
 /**
@@ -2745,21 +2933,32 @@
 
 message BackGesture {
     enum BackType {
-          DEFAULT_BACK_TYPE = 0;
-          COMPLETED = 1;
-          COMPLETED_REJECTED = 2; // successful because coming from rejected area
-          INCOMPLETE_EXCLUDED = 3; // would have been successful but in the exclusion area
-          INCOMPLETE = 4;
+        DEFAULT_BACK_TYPE = 0;
+        COMPLETED = 1;
+        COMPLETED_REJECTED = 2; // successful because coming from rejected area
+        INCOMPLETE_EXCLUDED = 3; // would have been successful but in the exclusion area
+        INCOMPLETE = 4;  // Unsuccessful, for reasons other than below.
+        INCOMPLETE_FAR_FROM_EDGE = 5;  // Unsuccessful, far from the edge.
+        INCOMPLETE_MULTI_TOUCH = 6;  // Unsuccessful, multi touch.
+        INCOMPLETE_LONG_PRESS = 7;  // Unsuccessful, long press.
+        INCOMPLETE_VERTICAL_MOVE = 8;  // Unsuccessful, move vertically.
     }
     optional BackType type = 1;
 
-    optional int32 y_coordinate = 2; // y coordinate for ACTION_DOWN event
+    optional int32 y_coordinate = 2 [deprecated = true]; // y coordinate for ACTION_DOWN event
+    optional int32 start_x = 4;  // X coordinate for ACTION_DOWN event.
+    optional int32 start_y = 5;  // Y coordinate for ACTION_DOWN event.
+    optional int32 end_x = 6;   // X coordinate for ACTION_MOVE event.
+    optional int32 end_y = 7;  // Y coordinate for ACTION_MOVE event.
+    optional int32 left_boundary = 8;  // left edge width + left inset
+    optional int32 right_boundary = 9;  // screen width - (right edge width + right inset)
+
     enum WindowHorizontalLocation {
         DEFAULT_LOCATION = 0;
         LEFT = 1;
         RIGHT = 2;
     }
-    optional WindowHorizontalLocation x_location = 3;
+    optional WindowHorizontalLocation x_location = 3 [deprecated = true];
 }
 
 message ExclusionRectStateChanged {
@@ -3020,7 +3219,7 @@
     optional string process_name = 3;
 
     // The pid if available. -1 means not available.
-    optional sint32 pid = 4;
+    optional int32 pid = 4;
 
     optional string package_name = 5;
 
@@ -3056,7 +3255,7 @@
     optional string process_name = 3;
 
     // The pid if available. -1 means not available.
-    optional sint32 pid = 4;
+    optional int32 pid = 4;
 
     optional android.server.ErrorSource error_source = 5;
 }
@@ -4589,6 +4788,8 @@
     optional int64 tx_bytes = 4;
 
     optional int64 tx_packets = 5;
+
+    optional int32 rat_type = 6;
 }
 
 /**
@@ -4611,6 +4812,8 @@
     optional int64 tx_bytes = 5;
 
     optional int64 tx_packets = 6;
+
+    optional int32 rat_type = 7;
 }
 
 /**
@@ -8988,3 +9191,37 @@
     // Which of the ranked targets got picked, default starting position 0.
     optional int32 position_picked = 4;
 }
+
+/**
+ * Logs settings provider values.
+ *
+ * Use DeviceConfig.getProperties to get a list Setting key, query the data from content provider,
+ * then write the value to proto.
+ *
+ */
+message SettingSnapshot {
+
+    // Setting key
+    optional string name = 1;
+
+    enum SettingsValueType {
+        NOTASSIGNED = 0;
+        ASSIGNED_BOOL_TYPE = 1;
+        ASSIGNED_INT_TYPE = 2;
+        ASSIGNED_FLOAT_TYPE = 3;
+        ASSIGNED_STRING_TYPE = 4;
+    };
+    // Setting value type
+    optional SettingsValueType type = 2;
+
+    optional bool bool_value = 3;
+
+    optional int32 int_value = 4;
+
+    optional float float_value = 5;
+
+    optional string str_value = 6;
+
+    // Android user index. 0 for primary user, 10, 11 for secondary or profile user
+    optional int32 user_id = 7;
+}
diff --git a/cmds/statsd/src/external/PullUidProvider.h b/cmds/statsd/src/external/PullUidProvider.h
new file mode 100644
index 0000000..2318c50
--- /dev/null
+++ b/cmds/statsd/src/external/PullUidProvider.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+#include <utils/RefBase.h>
+
+#include "StatsPuller.h"
+#include "logd/LogEvent.h"
+
+namespace android {
+namespace os {
+namespace statsd {
+
+class PullUidProvider : virtual public RefBase {
+public:
+    virtual ~PullUidProvider() {}
+
+    /**
+     * @param atomId The atom for which to get the uids.
+     */
+    virtual vector<int32_t> getPullAtomUids(int32_t atomId) = 0;
+};
+
+}  // namespace statsd
+}  // namespace os
+}  // namespace android
diff --git a/cmds/statsd/src/external/StatsPullerManager.cpp b/cmds/statsd/src/external/StatsPullerManager.cpp
index 8b6a5a1..4ffa3d8 100644
--- a/cmds/statsd/src/external/StatsPullerManager.cpp
+++ b/cmds/statsd/src/external/StatsPullerManager.cpp
@@ -47,27 +47,73 @@
 StatsPullerManager::StatsPullerManager()
     : kAllPullAtomInfo({
               // TrainInfo.
-              {{.atomTag = util::TRAIN_INFO}, new TrainInfoPuller()},
+              {{.atomTag = util::TRAIN_INFO, .uid = -1}, new TrainInfoPuller()},
       }),
       mNextPullTimeNs(NO_ALARM_UPDATE) {
 }
 
-bool StatsPullerManager::Pull(int tagId, vector<shared_ptr<LogEvent>>* data) {
-    AutoMutex _l(mLock);
-    return PullLocked(tagId, data);
+bool StatsPullerManager::Pull(int tagId, const ConfigKey& configKey,
+                              vector<shared_ptr<LogEvent>>* data, bool useUids) {
+    std::lock_guard<std::mutex> _l(mLock);
+    return PullLocked(tagId, configKey, data, useUids);
 }
 
-bool StatsPullerManager::PullLocked(int tagId, vector<shared_ptr<LogEvent>>* data) {
-    VLOG("Initiating pulling %d", tagId);
+bool StatsPullerManager::Pull(int tagId, const vector<int32_t>& uids,
+                              vector<std::shared_ptr<LogEvent>>* data, bool useUids) {
+    std::lock_guard<std::mutex> _l(mLock);
+    return PullLocked(tagId, uids, data, useUids);
+}
 
-    if (kAllPullAtomInfo.find({.atomTag = tagId}) != kAllPullAtomInfo.end()) {
-        bool ret = kAllPullAtomInfo.find({.atomTag = tagId})->second->Pull(data);
-        VLOG("pulled %d items", (int)data->size());
-        if (!ret) {
-            StatsdStats::getInstance().notePullFailed(tagId);
+bool StatsPullerManager::PullLocked(int tagId, const ConfigKey& configKey,
+                                    vector<shared_ptr<LogEvent>>* data, bool useUids) {
+    vector<int32_t> uids;
+    if (useUids) {
+        auto uidProviderIt = mPullUidProviders.find(configKey);
+        if (uidProviderIt == mPullUidProviders.end()) {
+            ALOGE("Error pulling tag %d. No pull uid provider for config key %s", tagId,
+                  configKey.ToString().c_str());
+            return false;
         }
-        return ret;
+        sp<PullUidProvider> pullUidProvider = uidProviderIt->second.promote();
+        if (pullUidProvider == nullptr) {
+            ALOGE("Error pulling tag %d, pull uid provider for config %s is gone.", tagId,
+                  configKey.ToString().c_str());
+            return false;
+        }
+        uids = pullUidProvider->getPullAtomUids(tagId);
+    }
+    return PullLocked(tagId, uids, data, useUids);
+}
+
+bool StatsPullerManager::PullLocked(int tagId, const vector<int32_t>& uids,
+                                    vector<shared_ptr<LogEvent>>* data, bool useUids) {
+    VLOG("Initiating pulling %d", tagId);
+    if (useUids) {
+        for (int32_t uid : uids) {
+            PullerKey key = {.atomTag = tagId, .uid = uid};
+            auto pullerIt = kAllPullAtomInfo.find(key);
+            if (pullerIt != kAllPullAtomInfo.end()) {
+                bool ret = pullerIt->second->Pull(data);
+                VLOG("pulled %zu items", data->size());
+                if (!ret) {
+                    StatsdStats::getInstance().notePullFailed(tagId);
+                }
+                return ret;
+            }
+        }
+        ALOGW("StatsPullerManager: Unknown tagId %d", tagId);
+        return false;  // Return early since we don't know what to pull.
     } else {
+        PullerKey key = {.atomTag = tagId, .uid = -1};
+        auto pullerIt = kAllPullAtomInfo.find(key);
+        if (pullerIt != kAllPullAtomInfo.end()) {
+            bool ret = pullerIt->second->Pull(data);
+            VLOG("pulled %zu items", data->size());
+            if (!ret) {
+                StatsdStats::getInstance().notePullFailed(tagId);
+            }
+            return ret;
+        }
         ALOGW("StatsPullerManager: Unknown tagId %d", tagId);
         return false;  // Return early since we don't know what to pull.
     }
@@ -96,7 +142,7 @@
 
 void StatsPullerManager::SetStatsCompanionService(
         shared_ptr<IStatsCompanionService> statsCompanionService) {
-    AutoMutex _l(mLock);
+    std::lock_guard<std::mutex> _l(mLock);
     shared_ptr<IStatsCompanionService> tmpForLock = mStatsCompanionService;
     mStatsCompanionService = statsCompanionService;
     for (const auto& pulledAtom : kAllPullAtomInfo) {
@@ -107,10 +153,11 @@
     }
 }
 
-void StatsPullerManager::RegisterReceiver(int tagId, wp<PullDataReceiver> receiver,
-                                              int64_t nextPullTimeNs, int64_t intervalNs) {
-    AutoMutex _l(mLock);
-    auto& receivers = mReceivers[tagId];
+void StatsPullerManager::RegisterReceiver(int tagId, const ConfigKey& configKey,
+                                          wp<PullDataReceiver> receiver, int64_t nextPullTimeNs,
+                                          int64_t intervalNs) {
+    std::lock_guard<std::mutex> _l(mLock);
+    auto& receivers = mReceivers[{.atomTag = tagId, .configKey = configKey}];
     for (auto it = receivers.begin(); it != receivers.end(); it++) {
         if (it->receiver == receiver) {
             VLOG("Receiver already registered of %d", (int)receivers.size());
@@ -142,13 +189,15 @@
     VLOG("Puller for tagId %d registered of %d", tagId, (int)receivers.size());
 }
 
-void StatsPullerManager::UnRegisterReceiver(int tagId, wp<PullDataReceiver> receiver) {
-    AutoMutex _l(mLock);
-    if (mReceivers.find(tagId) == mReceivers.end()) {
+void StatsPullerManager::UnRegisterReceiver(int tagId, const ConfigKey& configKey,
+                                            wp<PullDataReceiver> receiver) {
+    std::lock_guard<std::mutex> _l(mLock);
+    auto receiversIt = mReceivers.find({.atomTag = tagId, .configKey = configKey});
+    if (receiversIt == mReceivers.end()) {
         VLOG("Unknown pull code or no receivers: %d", tagId);
         return;
     }
-    auto& receivers = mReceivers.find(tagId)->second;
+    std::list<ReceiverInfo>& receivers = receiversIt->second;
     for (auto it = receivers.begin(); it != receivers.end(); it++) {
         if (receiver == it->receiver) {
             receivers.erase(it);
@@ -158,16 +207,26 @@
     }
 }
 
+void StatsPullerManager::RegisterPullUidProvider(const ConfigKey& configKey,
+                                                 wp<PullUidProvider> provider) {
+    std::lock_guard<std::mutex> _l(mLock);
+    mPullUidProviders[configKey] = provider;
+}
+
+void StatsPullerManager::UnregisterPullUidProvider(const ConfigKey& configKey) {
+    std::lock_guard<std::mutex> _l(mLock);
+    mPullUidProviders.erase(configKey);
+}
+
 void StatsPullerManager::OnAlarmFired(int64_t elapsedTimeNs) {
-    AutoMutex _l(mLock);
+    std::lock_guard<std::mutex> _l(mLock);
     int64_t wallClockNs = getWallClockNs();
 
     int64_t minNextPullTimeNs = NO_ALARM_UPDATE;
 
-    vector<pair<int, vector<ReceiverInfo*>>> needToPull =
-            vector<pair<int, vector<ReceiverInfo*>>>();
+    vector<pair<const ReceiverKey*, vector<ReceiverInfo*>>> needToPull;
     for (auto& pair : mReceivers) {
-        vector<ReceiverInfo*> receivers = vector<ReceiverInfo*>();
+        vector<ReceiverInfo*> receivers;
         if (pair.second.size() != 0) {
             for (ReceiverInfo& receiverInfo : pair.second) {
                 if (receiverInfo.nextPullTimeNs <= elapsedTimeNs) {
@@ -179,17 +238,16 @@
                 }
             }
             if (receivers.size() > 0) {
-                needToPull.push_back(make_pair(pair.first, receivers));
+                needToPull.push_back(make_pair(&pair.first, receivers));
             }
         }
     }
-
     for (const auto& pullInfo : needToPull) {
         vector<shared_ptr<LogEvent>> data;
-        bool pullSuccess = PullLocked(pullInfo.first, &data);
+        bool pullSuccess = PullLocked(pullInfo.first->atomTag, pullInfo.first->configKey, &data);
         if (pullSuccess) {
-            StatsdStats::getInstance().notePullDelay(
-                    pullInfo.first, getElapsedRealtimeNs() - elapsedTimeNs);
+            StatsdStats::getInstance().notePullDelay(pullInfo.first->atomTag,
+                                                     getElapsedRealtimeNs() - elapsedTimeNs);
         } else {
             VLOG("pull failed at %lld, will try again later", (long long)elapsedTimeNs);
         }
@@ -248,18 +306,19 @@
 void StatsPullerManager::RegisterPullAtomCallback(const int uid, const int32_t atomTag,
                                                   const int64_t coolDownNs, const int64_t timeoutNs,
                                                   const vector<int32_t>& additiveFields,
-                                                  const shared_ptr<IPullAtomCallback>& callback) {
-    AutoMutex _l(mLock);
+                                                  const shared_ptr<IPullAtomCallback>& callback,
+                                                  bool useUid) {
+    std::lock_guard<std::mutex> _l(mLock);
     VLOG("RegisterPullerCallback: adding puller for tag %d", atomTag);
     // TODO(b/146439412): linkToDeath with the callback so that we can remove it
     // and delete the puller.
     StatsdStats::getInstance().notePullerCallbackRegistrationChanged(atomTag, /*registered=*/true);
-    kAllPullAtomInfo[{.atomTag = atomTag}] =
+    kAllPullAtomInfo[{.atomTag = atomTag, .uid = useUid ? uid : -1}] =
             new StatsCallbackPuller(atomTag, callback, coolDownNs, timeoutNs, additiveFields);
 }
 
 void StatsPullerManager::UnregisterPullAtomCallback(const int uid, const int32_t atomTag) {
-    AutoMutex _l(mLock);
+    std::lock_guard<std::mutex> _l(mLock);
     StatsdStats::getInstance().notePullerCallbackRegistrationChanged(atomTag, /*registered=*/false);
     kAllPullAtomInfo.erase({.atomTag = atomTag});
 }
diff --git a/cmds/statsd/src/external/StatsPullerManager.h b/cmds/statsd/src/external/StatsPullerManager.h
index e067766..714b0ae 100644
--- a/cmds/statsd/src/external/StatsPullerManager.h
+++ b/cmds/statsd/src/external/StatsPullerManager.h
@@ -19,15 +19,16 @@
 #include <aidl/android/os/IPullAtomCallback.h>
 #include <aidl/android/os/IStatsCompanionService.h>
 #include <utils/RefBase.h>
-#include <utils/threads.h>
 
 #include <list>
 #include <vector>
 
 #include "PullDataReceiver.h"
+#include "PullUidProvider.h"
 #include "StatsPuller.h"
 #include "guardrail/StatsdStats.h"
 #include "logd/LogEvent.h"
+#include "packages/UidMap.h"
 
 using aidl::android::os::IPullAtomCallback;
 using aidl::android::os::IStatsCompanionService;
@@ -67,11 +68,20 @@
 
     // Registers a receiver for tagId. It will be pulled on the nextPullTimeNs
     // and then every intervalNs thereafter.
-    virtual void RegisterReceiver(int tagId, wp<PullDataReceiver> receiver, int64_t nextPullTimeNs,
+    virtual void RegisterReceiver(int tagId, const ConfigKey& configKey,
+                                  wp<PullDataReceiver> receiver, int64_t nextPullTimeNs,
                                   int64_t intervalNs);
 
     // Stop listening on a tagId.
-    virtual void UnRegisterReceiver(int tagId, wp<PullDataReceiver> receiver);
+    virtual void UnRegisterReceiver(int tagId, const ConfigKey& configKey,
+                                    wp<PullDataReceiver> receiver);
+
+    // Registers a pull uid provider for the config key. When pulling atoms, it will be used to
+    // determine which atoms to pull from.
+    virtual void RegisterPullUidProvider(const ConfigKey& configKey, wp<PullUidProvider> provider);
+
+    // Unregister a pull uid provider.
+    virtual void UnregisterPullUidProvider(const ConfigKey& configKey);
 
     // Verify if we know how to pull for this matcher
     bool PullerForMatcherExists(int tagId) const;
@@ -85,9 +95,16 @@
     // Returns false when
     //   1) the pull fails
     //   2) pull takes longer than mPullTimeoutNs (intrinsic to puller)
+    //   3) Either a PullUidProvider was not registered for the config, or the there was no puller
+    //      registered for any of the uids for this atom.
     // If the metric wants to make any change to the data, like timestamps, they
     // should make a copy as this data may be shared with multiple metrics.
-    virtual bool Pull(int tagId, vector<std::shared_ptr<LogEvent>>* data);
+    virtual bool Pull(int tagId, const ConfigKey& configKey,
+                      vector<std::shared_ptr<LogEvent>>* data, bool useUids = false);
+
+    // Same as above, but directly specify the allowed uids to pull from.
+    virtual bool Pull(int tagId, const vector<int32_t>& uids,
+                      vector<std::shared_ptr<LogEvent>>* data, bool useUids = false);
 
     // Clear pull data cache immediately.
     int ForceClearPullerCache();
@@ -99,7 +116,8 @@
 
     void RegisterPullAtomCallback(const int uid, const int32_t atomTag, const int64_t coolDownNs,
                                   const int64_t timeoutNs, const vector<int32_t>& additiveFields,
-                                  const shared_ptr<IPullAtomCallback>& callback);
+                                  const shared_ptr<IPullAtomCallback>& callback,
+                                  bool useUid = false);
 
     void UnregisterPullAtomCallback(const int uid, const int32_t atomTag);
 
@@ -108,19 +126,36 @@
 private:
     shared_ptr<IStatsCompanionService> mStatsCompanionService = nullptr;
 
+    // A struct containing an atom id and a Config Key
+    typedef struct ReceiverKey {
+        const int atomTag;
+        const ConfigKey configKey;
+
+        inline bool operator<(const ReceiverKey& that) const {
+            return atomTag == that.atomTag ? configKey < that.configKey : atomTag < that.atomTag;
+        }
+    } ReceiverKey;
+
     typedef struct {
         int64_t nextPullTimeNs;
         int64_t intervalNs;
         wp<PullDataReceiver> receiver;
     } ReceiverInfo;
 
-    // mapping from simple matcher tagId to receivers
-    std::map<int, std::list<ReceiverInfo>> mReceivers;
+    // mapping from Receiver Key to receivers
+    std::map<ReceiverKey, std::list<ReceiverInfo>> mReceivers;
 
-    bool PullLocked(int tagId, vector<std::shared_ptr<LogEvent>>* data);
+    // mapping from Config Key to the PullUidProvider for that config
+    std::map<ConfigKey, wp<PullUidProvider>> mPullUidProviders;
+
+    bool PullLocked(int tagId, const ConfigKey& configKey, vector<std::shared_ptr<LogEvent>>* data,
+                    bool useUids = false);
+
+    bool PullLocked(int tagId, const vector<int32_t>& uids, vector<std::shared_ptr<LogEvent>>* data,
+                    bool useUids);
 
     // locks for data receiver and StatsCompanionService changes
-    Mutex mLock;
+    std::mutex mLock;
 
     void updateAlarmLocked();
 
diff --git a/cmds/statsd/src/guardrail/StatsdStats.h b/cmds/statsd/src/guardrail/StatsdStats.h
index df810aa..25794c8 100644
--- a/cmds/statsd/src/guardrail/StatsdStats.h
+++ b/cmds/statsd/src/guardrail/StatsdStats.h
@@ -119,6 +119,8 @@
 
     const static int kMaxLogSourceCount = 50;
 
+    const static int kMaxPullAtomPackages = 100;
+
     // Max memory allowed for storing metrics per configuration. If this limit is exceeded, statsd
     // drops the metrics data in memory.
     static const size_t kMaxMetricsBytesPerConfig = 2 * 1024 * 1024;
diff --git a/cmds/statsd/src/logd/LogEvent.cpp b/cmds/statsd/src/logd/LogEvent.cpp
index b515d0a..3b3d0b6 100644
--- a/cmds/statsd/src/logd/LogEvent.cpp
+++ b/cmds/statsd/src/logd/LogEvent.cpp
@@ -504,12 +504,12 @@
     typeInfo = readNextValue<uint8_t>();
     if (getTypeId(typeInfo) != INT64_TYPE) mValid = false;
     mElapsedTimestampNs = readNextValue<int64_t>();
-    parseAnnotations(getNumAnnotations(typeInfo)); // atom-level annotations
     numElements--;
 
     typeInfo = readNextValue<uint8_t>();
     if (getTypeId(typeInfo) != INT32_TYPE) mValid = false;
     mTagId = readNextValue<int32_t>();
+    parseAnnotations(getNumAnnotations(typeInfo)); // atom-level annotations
     numElements--;
 
 
diff --git a/cmds/statsd/src/metrics/GaugeMetricProducer.cpp b/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
index 5c606bc..42bbd8e 100644
--- a/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
+++ b/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
@@ -75,11 +75,9 @@
         const int atomId, const int64_t timeBaseNs, const int64_t startTimeNs,
         const sp<StatsPullerManager>& pullerManager,
         const unordered_map<int, shared_ptr<Activation>>& eventActivationMap,
-        const unordered_map<int, vector<shared_ptr<Activation>>>& eventDeactivationMap,
-        const vector<int>& slicedStateAtoms,
-        const unordered_map<int, unordered_map<int, int64_t>>& stateGroupMap)
+        const unordered_map<int, vector<shared_ptr<Activation>>>& eventDeactivationMap)
     : MetricProducer(metric.id(), key, timeBaseNs, conditionIndex, wizard, eventActivationMap,
-                     eventDeactivationMap, slicedStateAtoms, stateGroupMap),
+                     eventDeactivationMap, /*slicedStateAtoms=*/{}, /*stateGroupMap=*/{}),
       mWhatMatcherIndex(whatMatcherIndex),
       mEventMatcherWizard(matcherWizard),
       mPullerManager(pullerManager),
@@ -135,15 +133,12 @@
     flushIfNeededLocked(startTimeNs);
     // Kicks off the puller immediately.
     if (mIsPulled && mSamplingType == GaugeMetric::RANDOM_ONE_SAMPLE) {
-        mPullerManager->RegisterReceiver(mPullTagId, this, getCurrentBucketEndTimeNs(),
+        mPullerManager->RegisterReceiver(mPullTagId, mConfigKey, this, getCurrentBucketEndTimeNs(),
                                          mBucketSizeNs);
     }
 
     // Adjust start for partial first bucket and then pull if needed
     mCurrentBucketStartTimeNs = startTimeNs;
-    if (mIsActive && mIsPulled && mSamplingType == GaugeMetric::RANDOM_ONE_SAMPLE) {
-        pullAndMatchEventsLocked(mCurrentBucketStartTimeNs);
-    }
 
     VLOG("Gauge metric %lld created. bucket size %lld start_time: %lld sliced %d",
          (long long)metric.id(), (long long)mBucketSizeNs, (long long)mTimeBaseNs,
@@ -153,7 +148,7 @@
 GaugeMetricProducer::~GaugeMetricProducer() {
     VLOG("~GaugeMetricProducer() called");
     if (mIsPulled && mSamplingType == GaugeMetric::RANDOM_ONE_SAMPLE) {
-        mPullerManager->UnRegisterReceiver(mPullTagId, this);
+        mPullerManager->UnRegisterReceiver(mPullTagId, mConfigKey, this);
     }
 }
 
@@ -298,6 +293,11 @@
     }
 }
 
+void GaugeMetricProducer::prepareFirstBucketLocked() {
+    if (mIsActive && mIsPulled && mSamplingType == GaugeMetric::RANDOM_ONE_SAMPLE) {
+        pullAndMatchEventsLocked(mCurrentBucketStartTimeNs);
+    }
+}
 
 void GaugeMetricProducer::pullAndMatchEventsLocked(const int64_t timestampNs) {
     bool triggerPuller = false;
@@ -323,7 +323,7 @@
         return;
     }
     vector<std::shared_ptr<LogEvent>> allData;
-    if (!mPullerManager->Pull(mPullTagId, &allData)) {
+    if (!mPullerManager->Pull(mPullTagId, mConfigKey, &allData)) {
         ALOGE("Gauge Stats puller failed for tag: %d at %lld", mPullTagId, (long long)timestampNs);
         return;
     }
diff --git a/cmds/statsd/src/metrics/GaugeMetricProducer.h b/cmds/statsd/src/metrics/GaugeMetricProducer.h
index 284bcc5..79ec711 100644
--- a/cmds/statsd/src/metrics/GaugeMetricProducer.h
+++ b/cmds/statsd/src/metrics/GaugeMetricProducer.h
@@ -64,9 +64,7 @@
             const int64_t startTimeNs, const sp<StatsPullerManager>& pullerManager,
             const std::unordered_map<int, std::shared_ptr<Activation>>& eventActivationMap = {},
             const std::unordered_map<int, std::vector<std::shared_ptr<Activation>>>&
-                    eventDeactivationMap = {},
-            const vector<int>& slicedStateAtoms = {},
-            const unordered_map<int, unordered_map<int, int64_t>>& stateGroupMap = {});
+                    eventDeactivationMap = {});
 
     virtual ~GaugeMetricProducer();
 
@@ -129,6 +127,8 @@
     void flushCurrentBucketLocked(const int64_t& eventTimeNs,
                                   const int64_t& nextBucketStartTimeNs) override;
 
+    void prepareFirstBucketLocked() override;
+
     void pullAndMatchEventsLocked(const int64_t timestampNs);
 
     const int mWhatMatcherIndex;
diff --git a/cmds/statsd/src/metrics/MetricProducer.h b/cmds/statsd/src/metrics/MetricProducer.h
index d721514..4c4cd89 100644
--- a/cmds/statsd/src/metrics/MetricProducer.h
+++ b/cmds/statsd/src/metrics/MetricProducer.h
@@ -207,6 +207,11 @@
         return clearPastBucketsLocked(dumpTimeNs);
     }
 
+    void prepareFirstBucket() {
+        std::lock_guard<std::mutex> lock(mMutex);
+        prepareFirstBucketLocked();
+    }
+
     // Returns the memory in bytes currently used to store this metric's data. Does not change
     // state.
     size_t byteSize() const {
@@ -344,6 +349,7 @@
                                     std::set<string> *str_set,
                                     android::util::ProtoOutputStream* protoOutput) = 0;
     virtual void clearPastBucketsLocked(const int64_t dumpTimeNs) = 0;
+    virtual void prepareFirstBucketLocked(){};
     virtual size_t byteSizeLocked() const = 0;
     virtual void dumpStatesLocked(FILE* out, bool verbose) const = 0;
     virtual void dropDataLocked(const int64_t dropTimeNs) = 0;
diff --git a/cmds/statsd/src/metrics/MetricsManager.cpp b/cmds/statsd/src/metrics/MetricsManager.cpp
index 6f54ea7..8ed0cbc 100644
--- a/cmds/statsd/src/metrics/MetricsManager.cpp
+++ b/cmds/statsd/src/metrics/MetricsManager.cpp
@@ -70,6 +70,7 @@
       mTtlEndNs(-1),
       mLastReportTimeNs(currentTimeNs),
       mLastReportWallClockNs(getWallClockNs()),
+      mPullerManager(pullerManager),
       mShouldPersistHistory(config.persist_locally()) {
     // Init the ttl end timestamp.
     refreshTtl(timeBaseNs);
@@ -80,12 +81,13 @@
             mAllMetricProducers, mAllAnomalyTrackers, mAllPeriodicAlarmTrackers,
             mConditionToMetricMap, mTrackerToMetricMap, mTrackerToConditionMap,
             mActivationAtomTrackerToMetricMap, mDeactivationAtomTrackerToMetricMap,
-            mMetricIndexesWithActivation, mNoReportMetricIds);
+            mAlertTrackerMap, mMetricIndexesWithActivation, mNoReportMetricIds);
 
     mHashStringsInReport = config.hash_strings_in_metric_report();
     mVersionStringsInReport = config.version_strings_in_metric_report();
     mInstallerInReport = config.installer_in_metric_report();
 
+    // Init allowed pushed atom uids.
     if (config.allowed_log_source_size() == 0) {
         mConfigValid = false;
         ALOGE("Log source whitelist is empty! This config won't get any data. Suggest adding at "
@@ -108,6 +110,40 @@
         }
     }
 
+    // Init default allowed pull atom uids.
+    int numPullPackages = 0;
+    for (const string& pullSource : config.default_pull_packages()) {
+        auto it = UidMap::sAidToUidMapping.find(pullSource);
+        if (it != UidMap::sAidToUidMapping.end()) {
+            numPullPackages++;
+            mDefaultPullUids.insert(it->second);
+        } else {
+            ALOGE("Default pull atom packages must be in sAidToUidMapping");
+            mConfigValid = false;
+        }
+    }
+    // Init per-atom pull atom packages.
+    for (const PullAtomPackages& pullAtomPackages : config.pull_atom_packages()) {
+        int32_t atomId = pullAtomPackages.atom_id();
+        for (const string& pullPackage : pullAtomPackages.packages()) {
+            numPullPackages++;
+            auto it = UidMap::sAidToUidMapping.find(pullPackage);
+            if (it != UidMap::sAidToUidMapping.end()) {
+                mPullAtomUids[atomId].insert(it->second);
+            } else {
+                mPullAtomPackages[atomId].insert(pullPackage);
+            }
+        }
+    }
+    if (numPullPackages > StatsdStats::kMaxPullAtomPackages) {
+        ALOGE("Too many sources in default_pull_packages and pull_atom_packages. This is likely to "
+              "be an error in the config");
+        mConfigValid = false;
+    } else {
+        initPullAtomSources();
+    }
+    mPullerManager->RegisterPullUidProvider(mConfigKey, this);
+
     // Store the sub-configs used.
     for (const auto& annotation : config.annotation()) {
         mAnnotations.emplace_back(annotation.field_int64(), annotation.field_int32());
@@ -153,6 +189,7 @@
             StateManager::getInstance().unregisterListener(atomId, it);
         }
     }
+    mPullerManager->UnregisterPullUidProvider(mConfigKey);
 
     VLOG("~MetricsManager()");
 }
@@ -173,6 +210,20 @@
     }
 }
 
+void MetricsManager::initPullAtomSources() {
+    std::lock_guard<std::mutex> lock(mAllowedLogSourcesMutex);
+    mCombinedPullAtomUids.clear();
+    for (const auto& [atomId, uids] : mPullAtomUids) {
+        mCombinedPullAtomUids[atomId].insert(uids.begin(), uids.end());
+    }
+    for (const auto& [atomId, packages] : mPullAtomPackages) {
+        for (const string& pkg : packages) {
+            set<int32_t> uids = mUidMap->getAppUid(pkg);
+            mCombinedPullAtomUids[atomId].insert(uids.begin(), uids.end());
+        }
+    }
+}
+
 bool MetricsManager::isConfigValid() const {
     return mConfigValid;
 }
@@ -184,12 +235,18 @@
         it->notifyAppUpgrade(eventTimeNs, apk, uid, version);
     }
     // check if we care this package
-    if (std::find(mAllowedPkg.begin(), mAllowedPkg.end(), apk) == mAllowedPkg.end()) {
-        return;
+    if (std::find(mAllowedPkg.begin(), mAllowedPkg.end(), apk) != mAllowedPkg.end()) {
+        // We will re-initialize the whole list because we don't want to keep the multi mapping of
+        // UID<->pkg inside MetricsManager to reduce the memory usage.
+        initLogSourceWhiteList();
     }
-    // We will re-initialize the whole list because we don't want to keep the multi mapping of
-    // UID<->pkg inside MetricsManager to reduce the memory usage.
-    initLogSourceWhiteList();
+
+    for (const auto& it : mPullAtomPackages) {
+        if (it.second.find(apk) != it.second.end()) {
+            initPullAtomSources();
+            return;
+        }
+    }
 }
 
 void MetricsManager::notifyAppRemoved(const int64_t& eventTimeNs, const string& apk,
@@ -199,24 +256,49 @@
         it->notifyAppRemoved(eventTimeNs, apk, uid);
     }
     // check if we care this package
-    if (std::find(mAllowedPkg.begin(), mAllowedPkg.end(), apk) == mAllowedPkg.end()) {
-        return;
+    if (std::find(mAllowedPkg.begin(), mAllowedPkg.end(), apk) != mAllowedPkg.end()) {
+        // We will re-initialize the whole list because we don't want to keep the multi mapping of
+        // UID<->pkg inside MetricsManager to reduce the memory usage.
+        initLogSourceWhiteList();
     }
-    // We will re-initialize the whole list because we don't want to keep the multi mapping of
-    // UID<->pkg inside MetricsManager to reduce the memory usage.
-    initLogSourceWhiteList();
+
+    for (const auto& it : mPullAtomPackages) {
+        if (it.second.find(apk) != it.second.end()) {
+            initPullAtomSources();
+            return;
+        }
+    }
 }
 
 void MetricsManager::onUidMapReceived(const int64_t& eventTimeNs) {
     // Purposefully don't inform metric producers on a new snapshot
     // because we don't need to flush partial buckets.
     // This occurs if a new user is added/removed or statsd crashes.
+    initPullAtomSources();
+
     if (mAllowedPkg.size() == 0) {
         return;
     }
     initLogSourceWhiteList();
 }
 
+void MetricsManager::init() {
+    for (const auto& producer : mAllMetricProducers) {
+        producer->prepareFirstBucket();
+    }
+}
+
+vector<int32_t> MetricsManager::getPullAtomUids(int32_t atomId) {
+    std::lock_guard<std::mutex> lock(mAllowedLogSourcesMutex);
+    vector<int32_t> uids;
+    const auto& it = mCombinedPullAtomUids.find(atomId);
+    if (it != mCombinedPullAtomUids.end()) {
+        uids.insert(uids.end(), it->second.begin(), it->second.end());
+    }
+    uids.insert(uids.end(), mDefaultPullUids.begin(), mDefaultPullUids.end());
+    return uids;
+}
+
 void MetricsManager::dumpStates(FILE* out, bool verbose) {
     fprintf(out, "ConfigKey %s, allowed source:", mConfigKey.ToString().c_str());
     {
diff --git a/cmds/statsd/src/metrics/MetricsManager.h b/cmds/statsd/src/metrics/MetricsManager.h
index 6d20822..291f97b 100644
--- a/cmds/statsd/src/metrics/MetricsManager.h
+++ b/cmds/statsd/src/metrics/MetricsManager.h
@@ -35,7 +35,7 @@
 namespace statsd {
 
 // A MetricsManager is responsible for managing metrics from one single config source.
-class MetricsManager : public virtual android::RefBase {
+class MetricsManager : public virtual android::RefBase, public virtual PullUidProvider {
 public:
     MetricsManager(const ConfigKey& configKey, const StatsdConfig& config, const int64_t timeBaseNs,
                    const int64_t currentTimeNs, const sp<UidMap>& uidMap,
@@ -69,6 +69,10 @@
 
     void onUidMapReceived(const int64_t& eventTimeNs);
 
+    void init();
+
+    vector<int32_t> getPullAtomUids(int32_t atomId) override;
+
     bool shouldWriteToDisk() const {
         return mNoReportMetricIds.size() != mAllMetricProducers.size();
     }
@@ -159,6 +163,8 @@
     int64_t mLastReportTimeNs;
     int64_t mLastReportWallClockNs;
 
+    sp<StatsPullerManager> mPullerManager;
+
     // The uid log sources from StatsdConfig.
     std::vector<int32_t> mAllowedUid;
 
@@ -169,13 +175,27 @@
     // Logs from uids that are not in the list will be ignored to avoid spamming.
     std::set<int32_t> mAllowedLogSources;
 
+    // To guard access to mAllowedLogSources
+    mutable std::mutex mAllowedLogSourcesMutex;
+
+    // We can pull any atom from these uids.
+    std::set<int32_t> mDefaultPullUids;
+
+    // Uids that specific atoms can pull from.
+    // This is a map<atom id, set<uids>>
+    std::map<int32_t, std::set<int32_t>> mPullAtomUids;
+
+    // Packages that specific atoms can be pulled from.
+    std::map<int32_t, std::set<std::string>> mPullAtomPackages;
+
+    // All uids to pull for this atom. NOTE: Does not include the default uids for memory.
+    std::map<int32_t, std::set<int32_t>> mCombinedPullAtomUids;
+
     // Contains the annotations passed in with StatsdConfig.
     std::list<std::pair<const int64_t, const int32_t>> mAnnotations;
 
     const bool mShouldPersistHistory;
 
-    // To guard access to mAllowedLogSources
-    mutable std::mutex mAllowedLogSourcesMutex;
 
     // All event tags that are interesting to my metrics.
     std::set<int> mTagIds;
@@ -230,10 +250,16 @@
     // Maps deactivation triggering event to MetricProducers.
     std::unordered_map<int, std::vector<int>> mDeactivationAtomTrackerToMetricMap;
 
+    // Maps AlertIds to the index of the corresponding AnomalyTracker stored in mAllAnomalyTrackers.
+    // The map is used in LoadMetadata to more efficiently lookup AnomalyTrackers from an AlertId.
+    std::unordered_map<int64_t, int> mAlertTrackerMap;
+
     std::vector<int> mMetricIndexesWithActivation;
 
     void initLogSourceWhiteList();
 
+    void initPullAtomSources();
+
     // The metrics that don't need to be uploaded or even reported.
     std::set<int64_t> mNoReportMetricIds;
 
@@ -271,6 +297,8 @@
     FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithSameDeactivation);
     FRIEND_TEST(MetricActivationE2eTest, TestCountMetricWithTwoMetricsTwoDeactivations);
 
+    FRIEND_TEST(MetricsManagerTest, TestLogSources);
+
     FRIEND_TEST(StatsLogProcessorTest, TestActiveConfigMetricDiskWriteRead);
     FRIEND_TEST(StatsLogProcessorTest, TestActivationOnBoot);
     FRIEND_TEST(StatsLogProcessorTest, TestActivationOnBootMultipleActivations);
diff --git a/cmds/statsd/src/metrics/ValueMetricProducer.cpp b/cmds/statsd/src/metrics/ValueMetricProducer.cpp
index dc9b413..f34423a 100644
--- a/cmds/statsd/src/metrics/ValueMetricProducer.cpp
+++ b/cmds/statsd/src/metrics/ValueMetricProducer.cpp
@@ -156,7 +156,7 @@
     flushIfNeededLocked(startTimeNs);
 
     if (mIsPulled) {
-        mPullerManager->RegisterReceiver(mPullTagId, this, getCurrentBucketEndTimeNs(),
+        mPullerManager->RegisterReceiver(mPullTagId, mConfigKey, this, getCurrentBucketEndTimeNs(),
                                          mBucketSizeNs);
     }
 
@@ -166,10 +166,6 @@
     mCurrentBucketStartTimeNs = startTimeNs;
     mConditionTimer.newBucketStart(mCurrentBucketStartTimeNs);
 
-     // Kicks off the puller immediately if condition is true and diff based.
-    if (mIsActive && mIsPulled && mCondition == ConditionState::kTrue && mUseDiff) {
-        pullAndMatchEventsLocked(mCurrentBucketStartTimeNs);
-    }
     // Now that activations are processed, start the condition timer if needed.
     mConditionTimer.onConditionChanged(mIsActive && mCondition == ConditionState::kTrue,
                                        mCurrentBucketStartTimeNs);
@@ -181,7 +177,7 @@
 ValueMetricProducer::~ValueMetricProducer() {
     VLOG("~ValueMetricProducer() called");
     if (mIsPulled) {
-        mPullerManager->UnRegisterReceiver(mPullTagId, this);
+        mPullerManager->UnRegisterReceiver(mPullTagId, mConfigKey, this);
     }
 }
 
@@ -503,9 +499,16 @@
     mConditionTimer.onConditionChanged(mCondition, eventTimeNs);
 }
 
+void ValueMetricProducer::prepareFirstBucketLocked() {
+    // Kicks off the puller immediately if condition is true and diff based.
+    if (mIsActive && mIsPulled && mCondition == ConditionState::kTrue && mUseDiff) {
+        pullAndMatchEventsLocked(mCurrentBucketStartTimeNs);
+    }
+}
+
 void ValueMetricProducer::pullAndMatchEventsLocked(const int64_t timestampNs) {
     vector<std::shared_ptr<LogEvent>> allData;
-    if (!mPullerManager->Pull(mPullTagId, &allData)) {
+    if (!mPullerManager->Pull(mPullTagId, mConfigKey, &allData)) {
         ALOGE("Stats puller failed for tag: %d at %lld", mPullTagId, (long long)timestampNs);
         invalidateCurrentBucket(timestampNs, BucketDropReason::PULL_FAILED);
         return;
diff --git a/cmds/statsd/src/metrics/ValueMetricProducer.h b/cmds/statsd/src/metrics/ValueMetricProducer.h
index 50317b3..e9273dc 100644
--- a/cmds/statsd/src/metrics/ValueMetricProducer.h
+++ b/cmds/statsd/src/metrics/ValueMetricProducer.h
@@ -122,6 +122,8 @@
     void flushCurrentBucketLocked(const int64_t& eventTimeNs,
                                   const int64_t& nextBucketStartTimeNs) override;
 
+    void prepareFirstBucketLocked() override;
+
     void dropDataLocked(const int64_t dropTimeNs) override;
 
     // Calculate previous bucket end time based on current time.
diff --git a/cmds/statsd/src/metrics/metrics_manager_util.cpp b/cmds/statsd/src/metrics/metrics_manager_util.cpp
index 40a313a..3810c48 100644
--- a/cmds/statsd/src/metrics/metrics_manager_util.cpp
+++ b/cmds/statsd/src/metrics/metrics_manager_util.cpp
@@ -803,9 +803,8 @@
         if (!success) return false;
 
         sp<MetricProducer> gaugeProducer = new GaugeMetricProducer(
-                key, metric, conditionIndex, wizard,
-                trackerIndex, matcherWizard, pullTagId, triggerAtomId, atomTagId,
-                timeBaseTimeNs, currentTimeNs, pullerManager,
+                key, metric, conditionIndex, wizard, trackerIndex, matcherWizard, pullTagId,
+                triggerAtomId, atomTagId, timeBaseTimeNs, currentTimeNs, pullerManager,
                 eventActivationMap, eventDeactivationMap);
         allMetricProducers.push_back(gaugeProducer);
     }
@@ -830,10 +829,10 @@
 
 bool initAlerts(const StatsdConfig& config,
                 const unordered_map<int64_t, int>& metricProducerMap,
+                unordered_map<int64_t, int>& alertTrackerMap,
                 const sp<AlarmMonitor>& anomalyAlarmMonitor,
                 vector<sp<MetricProducer>>& allMetricProducers,
                 vector<sp<AnomalyTracker>>& allAnomalyTrackers) {
-    unordered_map<int64_t, int> anomalyTrackerMap;
     for (int i = 0; i < config.alert_size(); i++) {
         const Alert& alert = config.alert(i);
         const auto& itr = metricProducerMap.find(alert.metric_id());
@@ -858,7 +857,7 @@
             // The ALOGW for this invalid alert was already displayed in addAnomalyTracker().
             return false;
         }
-        anomalyTrackerMap.insert(std::make_pair(alert.id(), allAnomalyTrackers.size()));
+        alertTrackerMap.insert(std::make_pair(alert.id(), allAnomalyTrackers.size()));
         allAnomalyTrackers.push_back(anomalyTracker);
     }
     for (int i = 0; i < config.subscription_size(); ++i) {
@@ -872,8 +871,8 @@
                 (long long)subscription.id());
             return false;
         }
-        const auto& itr = anomalyTrackerMap.find(subscription.rule_id());
-        if (itr == anomalyTrackerMap.end()) {
+        const auto& itr = alertTrackerMap.find(subscription.rule_id());
+        if (itr == alertTrackerMap.end()) {
             ALOGW("subscription \"%lld\" has unknown rule id: \"%lld\"",
                 (long long)subscription.id(), (long long)subscription.rule_id());
             return false;
@@ -944,6 +943,7 @@
                       unordered_map<int, std::vector<int>>& trackerToConditionMap,
                       unordered_map<int, std::vector<int>>& activationAtomTrackerToMetricMap,
                       unordered_map<int, std::vector<int>>& deactivationAtomTrackerToMetricMap,
+                      unordered_map<int64_t, int>& alertTrackerMap,
                       vector<int>& metricsWithActivation,
                       std::set<int64_t>& noReportMetricIds) {
     unordered_map<int64_t, int> logTrackerMap;
@@ -963,6 +963,7 @@
         ALOGE("initConditionTrackers failed");
         return false;
     }
+
     if (!initStates(config, stateAtomIdMap, allStateGroupMaps)) {
         ALOGE("initStates failed");
         return false;
@@ -976,8 +977,8 @@
         ALOGE("initMetricProducers failed");
         return false;
     }
-    if (!initAlerts(config, metricProducerMap, anomalyAlarmMonitor, allMetricProducers,
-                    allAnomalyTrackers)) {
+    if (!initAlerts(config, metricProducerMap, alertTrackerMap, anomalyAlarmMonitor,
+                    allMetricProducers, allAnomalyTrackers)) {
         ALOGE("initAlerts failed");
         return false;
     }
diff --git a/cmds/statsd/src/metrics/metrics_manager_util.h b/cmds/statsd/src/metrics/metrics_manager_util.h
index 5ebb232..a8ccc62 100644
--- a/cmds/statsd/src/metrics/metrics_manager_util.h
+++ b/cmds/statsd/src/metrics/metrics_manager_util.h
@@ -128,6 +128,7 @@
                       std::unordered_map<int, std::vector<int>>& trackerToConditionMap,
                       unordered_map<int, std::vector<int>>& activationAtomTrackerToMetricMap,
                       unordered_map<int, std::vector<int>>& deactivationAtomTrackerToMetricMap,
+                      std::unordered_map<int64_t, int>& alertTrackerMap,
                       vector<int>& metricsWithActivation,
                       std::set<int64_t>& noReportMetricIds);
 
diff --git a/cmds/statsd/src/packages/UidMap.cpp b/cmds/statsd/src/packages/UidMap.cpp
index ab0e86e..acf40c8 100644
--- a/cmds/statsd/src/packages/UidMap.cpp
+++ b/cmds/statsd/src/packages/UidMap.cpp
@@ -545,7 +545,15 @@
                                                              {"AID_LMKD", 1069},
                                                              {"AID_LLKD", 1070},
                                                              {"AID_IORAPD", 1071},
+                                                             {"AID_GPU_SERVICE", 1072},
                                                              {"AID_NETWORK_STACK", 1073},
+                                                             {"AID_GSID", 1074},
+                                                             {"AID_FSVERITY_CERT", 1075},
+                                                             {"AID_CREDSTORE", 1076},
+                                                             {"AID_EXTERNAL_STORAGE", 1077},
+                                                             {"AID_EXT_DATA_RW", 1078},
+                                                             {"AID_EXT_OBB_RW", 1079},
+                                                             {"AID_CONTEXT_HUB", 1080},
                                                              {"AID_SHELL", 2000},
                                                              {"AID_CACHE", 2001},
                                                              {"AID_DIAG", 2002}};
diff --git a/cmds/statsd/src/packages/UidMap.h b/cmds/statsd/src/packages/UidMap.h
index 02fe7b1..22250ae 100644
--- a/cmds/statsd/src/packages/UidMap.h
+++ b/cmds/statsd/src/packages/UidMap.h
@@ -149,7 +149,7 @@
     // Get currently cached value of memory used by UID map.
     size_t getBytesUsed() const;
 
-    std::set<int32_t> getAppUid(const string& package) const;
+    virtual std::set<int32_t> getAppUid(const string& package) const;
 
     // Write current PackageInfoSnapshot to ProtoOutputStream.
     // interestingUids: If not empty, only write the package info for these uids. If empty, write
diff --git a/cmds/statsd/src/shell/ShellSubscriber.cpp b/cmds/statsd/src/shell/ShellSubscriber.cpp
index a861a3b..1cee4d9 100644
--- a/cmds/statsd/src/shell/ShellSubscriber.cpp
+++ b/cmds/statsd/src/shell/ShellSubscriber.cpp
@@ -18,6 +18,7 @@
 
 #include "ShellSubscriber.h"
 
+#include <android-base/file.h>
 #include "matchers/matcher_util.h"
 #include "stats_log_util.h"
 
@@ -30,154 +31,151 @@
 const static int FIELD_ID_ATOM = 1;
 
 void ShellSubscriber::startNewSubscription(int in, int out, int timeoutSec) {
-    VLOG("start new shell subscription");
-    int64_t subscriberId = getElapsedRealtimeNs();
+    int myToken = claimToken();
+    mSubscriptionShouldEnd.notify_one();
 
-    {
-        std::lock_guard<std::mutex> lock(mMutex);
-        if (mSubscriberId> 0) {
-            VLOG("Only one shell subscriber is allowed.");
-            return;
-        }
-        mSubscriberId = subscriberId;
-        mInput = in;
-        mOutput = out;
+    shared_ptr<SubscriptionInfo> mySubscriptionInfo = make_shared<SubscriptionInfo>(in, out);
+    if (!readConfig(mySubscriptionInfo)) {
+        return;
     }
 
-    bool success = readConfig();
-    if (!success) {
-        std::lock_guard<std::mutex> lock(mMutex);
-        cleanUpLocked();
+    // critical-section
+    std::unique_lock<std::mutex> lock(mMutex);
+    if (myToken != mToken) {
+        // Some other subscription has already come in. Stop.
+        return;
+    }
+    mSubscriptionInfo = mySubscriptionInfo;
+
+    if (mySubscriptionInfo->mPulledInfo.size() > 0 && mySubscriptionInfo->mPullIntervalMin > 0) {
+        // This thread terminates after it detects that mToken has changed.
+        std::thread puller([this, myToken] { startPull(myToken); });
+        puller.detach();
     }
 
-    VLOG("Wait for client to exit or timeout (%d sec)", timeoutSec);
-    std::unique_lock<std::mutex> lk(mMutex);
-
-    // Note that the following is blocking, and it's intended as we cannot return until the shell
-    // cmd exits or we time out.
+    // Block until subscription has ended.
     if (timeoutSec > 0) {
-        mShellDied.wait_for(lk, timeoutSec * 1s,
-                            [this, subscriberId] { return mSubscriberId != subscriberId; });
+        mSubscriptionShouldEnd.wait_for(
+                lock, timeoutSec * 1s, [this, myToken, &mySubscriptionInfo] {
+                    return mToken != myToken || !mySubscriptionInfo->mClientAlive;
+                });
     } else {
-        mShellDied.wait(lk, [this, subscriberId] { return mSubscriberId != subscriberId; });
+        mSubscriptionShouldEnd.wait(lock, [this, myToken, &mySubscriptionInfo] {
+            return mToken != myToken || !mySubscriptionInfo->mClientAlive;
+        });
+    }
+
+    if (mSubscriptionInfo == mySubscriptionInfo) {
+        mSubscriptionInfo = nullptr;
     }
 }
 
+// Atomically claim the next token. Token numbers denote subscriber ordering.
+int ShellSubscriber::claimToken() {
+    std::unique_lock<std::mutex> lock(mMutex);
+    int myToken = ++mToken;
+    return myToken;
+}
 
-// Read configs until EOF is reached. There may be multiple configs in the input
-// -- each new config should replace the previous one.
-//
-// Returns a boolean indicating whether the input was read successfully.
-bool ShellSubscriber::readConfig() {
-    if (mInput < 0) {
+// Read and parse single config. There should only one config per input.
+bool ShellSubscriber::readConfig(shared_ptr<SubscriptionInfo> subscriptionInfo) {
+    // Read the size of the config.
+    size_t bufferSize;
+    if (!android::base::ReadFully(subscriptionInfo->mInputFd, &bufferSize, sizeof(bufferSize))) {
         return false;
     }
 
-    while (true) {
-        // Read the size of the config.
-        size_t bufferSize = 0;
-        ssize_t bytesRead = read(mInput, &bufferSize, sizeof(bufferSize));
-        if (bytesRead == 0) {
-            VLOG("We have reached the end of the input.");
-            return true;
-        } else if (bytesRead < 0 || (size_t)bytesRead != sizeof(bufferSize)) {
-            ALOGE("Error reading config size");
-            return false;
-        }
-
-        // Read and parse the config.
-        vector<uint8_t> buffer(bufferSize);
-        bytesRead = read(mInput, buffer.data(), bufferSize);
-        if (bytesRead > 0 && (size_t)bytesRead == bufferSize) {
-            ShellSubscription config;
-            if (config.ParseFromArray(buffer.data(), bufferSize)) {
-                updateConfig(config);
-            } else {
-                ALOGE("Error parsing the config");
-                return false;
-            }
-        } else {
-            VLOG("Error reading the config, expected bytes: %zu, actual bytes: %zu", bufferSize, 
-                 bytesRead);
-            return false;
-        }
+    // Read the config.
+    vector<uint8_t> buffer(bufferSize);
+    if (!android::base::ReadFully(subscriptionInfo->mInputFd, buffer.data(), bufferSize)) {
+        return false;
     }
-}
 
-void ShellSubscriber::updateConfig(const ShellSubscription& config) {
-    mPushedMatchers.clear();
-    mPulledInfo.clear();
+    // Parse the config.
+    ShellSubscription config;
+    if (!config.ParseFromArray(buffer.data(), bufferSize)) {
+        return false;
+    }
 
+    // Update SubscriptionInfo with state from config
     for (const auto& pushed : config.pushed()) {
-        mPushedMatchers.push_back(pushed);
-        VLOG("adding matcher for pushed atom %d", pushed.atom_id());
+        subscriptionInfo->mPushedMatchers.push_back(pushed);
     }
 
-    int64_t token = getElapsedRealtimeNs();
-    mPullToken = token;
-
-    int64_t minInterval = -1;
+    int minInterval = -1;
     for (const auto& pulled : config.pulled()) {
         // All intervals need to be multiples of the min interval.
         if (minInterval < 0 || pulled.freq_millis() < minInterval) {
             minInterval = pulled.freq_millis();
         }
 
-        mPulledInfo.emplace_back(pulled.matcher(), pulled.freq_millis());
-        VLOG("adding matcher for pulled atom %d", pulled.matcher().atom_id());
-    }
-
-    if (mPulledInfo.size() > 0 && minInterval > 0) {
-        // This thread is guaranteed to terminate after it detects the token is
-        // different.
-        std::thread puller([token, minInterval, this] { startPull(token, minInterval); });
-        puller.detach();
-    }
-}
-
-void ShellSubscriber::startPull(int64_t token, int64_t intervalMillis) {
-    while (true) {
-        int64_t nowMillis = getElapsedRealtimeMillis();
-        {
-            std::lock_guard<std::mutex> lock(mMutex);
-            // If the token has changed, the config has changed, so this
-            // puller can now stop.
-            if (mPulledInfo.size() == 0 || mPullToken != token) {
-                VLOG("Pulling thread %lld done!", (long long)token);
-                return;
-            }
-            for (auto& pullInfo : mPulledInfo) {
-                if (pullInfo.mPrevPullElapsedRealtimeMs + pullInfo.mInterval < nowMillis) {
-                    VLOG("pull atom %d now", pullInfo.mPullerMatcher.atom_id());
-
-                    vector<std::shared_ptr<LogEvent>> data;
-                    mPullerMgr->Pull(pullInfo.mPullerMatcher.atom_id(), &data);
-                    VLOG("pulled %zu atoms", data.size());
-                    if (data.size() > 0) {
-                        writeToOutputLocked(data, pullInfo.mPullerMatcher);
-                    }
-                    pullInfo.mPrevPullElapsedRealtimeMs = nowMillis;
-                }
+        vector<string> packages;
+        vector<int32_t> uids;
+        for (const string& pkg : pulled.packages()) {
+            auto it = UidMap::sAidToUidMapping.find(pkg);
+            if (it != UidMap::sAidToUidMapping.end()) {
+                uids.push_back(it->second);
+            } else {
+                packages.push_back(pkg);
             }
         }
-        VLOG("Pulling thread %lld sleep....", (long long)token);
-        std::this_thread::sleep_for(std::chrono::milliseconds(intervalMillis));
+
+        subscriptionInfo->mPulledInfo.emplace_back(pulled.matcher(), pulled.freq_millis(), packages,
+                                                   uids);
+        VLOG("adding matcher for pulled atom %d", pulled.matcher().atom_id());
+    }
+    subscriptionInfo->mPullIntervalMin = minInterval;
+
+    return true;
+}
+
+void ShellSubscriber::startPull(int64_t myToken) {
+    while (true) {
+        std::lock_guard<std::mutex> lock(mMutex);
+        if (!mSubscriptionInfo || mToken != myToken) {
+            VLOG("Pulling thread %lld done!", (long long)myToken);
+            return;
+        }
+
+        int64_t nowMillis = getElapsedRealtimeMillis();
+        for (auto& pullInfo : mSubscriptionInfo->mPulledInfo) {
+            if (pullInfo.mPrevPullElapsedRealtimeMs + pullInfo.mInterval < nowMillis) {
+                vector<std::shared_ptr<LogEvent>> data;
+                vector<int32_t> uids;
+                uids.insert(uids.end(), pullInfo.mPullUids.begin(), pullInfo.mPullUids.end());
+                // This is slow. Consider storing the uids per app and listening to uidmap updates.
+                for (const string& pkg : pullInfo.mPullPackages) {
+                    set<int32_t> uidsForPkg = mUidMap->getAppUid(pkg);
+                    uids.insert(uids.end(), uidsForPkg.begin(), uidsForPkg.end());
+                }
+                uids.push_back(DEFAULT_PULL_UID);
+                mPullerMgr->Pull(pullInfo.mPullerMatcher.atom_id(), uids, &data);
+                VLOG("pulled %zu atoms with id %d", data.size(), pullInfo.mPullerMatcher.atom_id());
+
+                // TODO(b/150969574): Don't write to a pipe while holding a lock.
+                if (!writePulledAtomsLocked(data, pullInfo.mPullerMatcher)) {
+                    mSubscriptionInfo->mClientAlive = false;
+                    mSubscriptionShouldEnd.notify_one();
+                    return;
+                }
+                pullInfo.mPrevPullElapsedRealtimeMs = nowMillis;
+            }
+        }
+
+        VLOG("Pulling thread %lld sleep....", (long long)myToken);
+        std::this_thread::sleep_for(std::chrono::milliseconds(mSubscriptionInfo->mPullIntervalMin));
     }
 }
 
-// Must be called with the lock acquired, so that mProto isn't being written to
-// at the same time by multiple threads.
-void ShellSubscriber::writeToOutputLocked(const vector<std::shared_ptr<LogEvent>>& data,
-                                          const SimpleAtomMatcher& matcher) {
-    if (mOutput < 0) {
-        return;
-    }
-    int count = 0;
+// \return boolean indicating if writes were successful (will return false if
+// client dies)
+bool ShellSubscriber::writePulledAtomsLocked(const vector<std::shared_ptr<LogEvent>>& data,
+                                             const SimpleAtomMatcher& matcher) {
     mProto.clear();
+    int count = 0;
     for (const auto& event : data) {
         VLOG("%s", event->ToString().c_str());
         if (matchesSimple(*mUidMap, matcher, *event)) {
-            VLOG("matched");
             count++;
             uint64_t atomToken = mProto.start(util::FIELD_TYPE_MESSAGE |
                                               util::FIELD_COUNT_REPEATED | FIELD_ID_ATOM);
@@ -189,24 +187,29 @@
     if (count > 0) {
         // First write the payload size.
         size_t bufferSize = mProto.size();
-        write(mOutput, &bufferSize, sizeof(bufferSize));
+        if (!android::base::WriteFully(mSubscriptionInfo->mOutputFd, &bufferSize,
+                                       sizeof(bufferSize))) {
+            return false;
+        }
 
         VLOG("%d atoms, proto size: %zu", count, bufferSize);
         // Then write the payload.
-        mProto.flush(mOutput);
+        if (!mProto.flush(mSubscriptionInfo->mOutputFd)) {
+            return false;
+        }
     }
+
+    return true;
 }
 
 void ShellSubscriber::onLogEvent(const LogEvent& event) {
-    // Acquire a lock to prevent corruption from multiple threads writing to
-    // mProto.
     std::lock_guard<std::mutex> lock(mMutex);
-    if (mOutput < 0) {
+    if (!mSubscriptionInfo) {
         return;
     }
 
     mProto.clear();
-    for (const auto& matcher : mPushedMatchers) {
+    for (const auto& matcher : mSubscriptionInfo->mPushedMatchers) {
         if (matchesSimple(*mUidMap, matcher, event)) {
             VLOG("%s", event.ToString().c_str());
             uint64_t atomToken = mProto.start(util::FIELD_TYPE_MESSAGE |
@@ -216,26 +219,23 @@
 
             // First write the payload size.
             size_t bufferSize = mProto.size();
-            write(mOutput, &bufferSize, sizeof(bufferSize));
+            if (!android::base::WriteFully(mSubscriptionInfo->mOutputFd, &bufferSize,
+                                           sizeof(bufferSize))) {
+                mSubscriptionInfo->mClientAlive = false;
+                mSubscriptionShouldEnd.notify_one();
+                return;
+            }
 
             // Then write the payload.
-            mProto.flush(mOutput);
+            if (!mProto.flush(mSubscriptionInfo->mOutputFd)) {
+                mSubscriptionInfo->mClientAlive = false;
+                mSubscriptionShouldEnd.notify_one();
+                return;
+            }
         }
     }
 }
 
-void ShellSubscriber::cleanUpLocked() {
-    // The file descriptors will be closed by binder.
-    mInput = -1;
-    mOutput = -1;
-    mSubscriberId = 0;
-    mPushedMatchers.clear();
-    mPulledInfo.clear();
-    // Setting mPullToken == 0 tells pull thread that its work is done.
-    mPullToken = 0;
-    VLOG("done clean up");
-}
-
 }  // namespace statsd
 }  // namespace os
 }  // namespace android
diff --git a/cmds/statsd/src/shell/ShellSubscriber.h b/cmds/statsd/src/shell/ShellSubscriber.h
index eaf2ad1..61457d8 100644
--- a/cmds/statsd/src/shell/ShellSubscriber.h
+++ b/cmds/statsd/src/shell/ShellSubscriber.h
@@ -16,15 +16,17 @@
 
 #pragma once
 
-#include "logd/LogEvent.h"
-
 #include <android/util/ProtoOutputStream.h>
+#include <private/android_filesystem_config.h>
+
 #include <condition_variable>
 #include <mutex>
 #include <thread>
+
 #include "external/StatsPullerManager.h"
 #include "frameworks/base/cmds/statsd/src/shell/shell_config.pb.h"
 #include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
+#include "logd/LogEvent.h"
 #include "packages/UidMap.h"
 
 namespace android {
@@ -60,32 +62,48 @@
     ShellSubscriber(sp<UidMap> uidMap, sp<StatsPullerManager> pullerMgr)
         : mUidMap(uidMap), mPullerMgr(pullerMgr){};
 
-    /**
-     * Start a new subscription.
-     */
     void startNewSubscription(int inFd, int outFd, int timeoutSec);
 
     void onLogEvent(const LogEvent& event);
 
 private:
     struct PullInfo {
-        PullInfo(const SimpleAtomMatcher& matcher, int64_t interval)
-            : mPullerMatcher(matcher), mInterval(interval), mPrevPullElapsedRealtimeMs(0) {
+        PullInfo(const SimpleAtomMatcher& matcher, int64_t interval,
+                 const std::vector<std::string>& packages, const std::vector<int32_t>& uids)
+            : mPullerMatcher(matcher),
+              mInterval(interval),
+              mPrevPullElapsedRealtimeMs(0),
+              mPullPackages(packages),
+              mPullUids(uids) {
         }
         SimpleAtomMatcher mPullerMatcher;
         int64_t mInterval;
         int64_t mPrevPullElapsedRealtimeMs;
+        std::vector<std::string> mPullPackages;
+        std::vector<int32_t> mPullUids;
     };
-    bool readConfig();
 
-    void updateConfig(const ShellSubscription& config);
+    struct SubscriptionInfo {
+        SubscriptionInfo(const int& inputFd, const int& outputFd)
+            : mInputFd(inputFd), mOutputFd(outputFd), mClientAlive(true) {
+        }
 
-    void startPull(int64_t token, int64_t intervalMillis);
+        int mInputFd;
+        int mOutputFd;
+        std::vector<SimpleAtomMatcher> mPushedMatchers;
+        std::vector<PullInfo> mPulledInfo;
+        int mPullIntervalMin;
+        bool mClientAlive;
+    };
 
-    void cleanUpLocked();
+    int claimToken();
 
-    void writeToOutputLocked(const vector<std::shared_ptr<LogEvent>>& data,
-                             const SimpleAtomMatcher& matcher);
+    bool readConfig(std::shared_ptr<SubscriptionInfo> subscriptionInfo);
+
+    void startPull(int64_t myToken);
+
+    bool writePulledAtomsLocked(const vector<std::shared_ptr<LogEvent>>& data,
+                                const SimpleAtomMatcher& matcher);
 
     sp<UidMap> mUidMap;
 
@@ -95,19 +113,13 @@
 
     mutable std::mutex mMutex;
 
-    std::condition_variable mShellDied;  // semaphore for waiting until shell exits.
+    std::condition_variable mSubscriptionShouldEnd;
 
-    int mInput = -1;  // The input file descriptor
+    std::shared_ptr<SubscriptionInfo> mSubscriptionInfo = nullptr;
 
-    int mOutput = -1;  // The output file descriptor
+    int mToken = 0;
 
-    std::vector<SimpleAtomMatcher> mPushedMatchers;
-
-    std::vector<PullInfo> mPulledInfo;
-
-    int64_t mSubscriberId = 0; // A unique id to identify a subscriber.
-
-    int64_t mPullToken = 0;  // A unique token to identify a puller thread.
+    const int32_t DEFAULT_PULL_UID = AID_SYSTEM;
 };
 
 }  // namespace statsd
diff --git a/cmds/statsd/src/shell/shell_config.proto b/cmds/statsd/src/shell/shell_config.proto
index 73cb49a..07d0310 100644
--- a/cmds/statsd/src/shell/shell_config.proto
+++ b/cmds/statsd/src/shell/shell_config.proto
@@ -28,6 +28,9 @@
 
     /* gap between two pulls in milliseconds */
     optional int32 freq_millis = 2;
+
+    /* Packages that the pull is requested from */
+    repeated string packages = 3;
 }
 
 message ShellSubscription {
diff --git a/cmds/statsd/src/stats_log_util.cpp b/cmds/statsd/src/stats_log_util.cpp
index 3d02ffb..77a3eb3 100644
--- a/cmds/statsd/src/stats_log_util.cpp
+++ b/cmds/statsd/src/stats_log_util.cpp
@@ -357,30 +357,7 @@
                     protoOutput->write(FIELD_TYPE_FLOAT | fieldNum, dim.mValue.float_value);
                     break;
                 case STRING: {
-                    bool isBytesField = false;
-                    // Bytes field is logged via string format in log_msg format. So here we check
-                    // if this string field is a byte field.
-                    std::map<int, std::vector<int>>::const_iterator itr;
-                    if (depth == 0 && (itr = AtomsInfo::kBytesFieldAtoms.find(tagId)) !=
-                                              AtomsInfo::kBytesFieldAtoms.end()) {
-                        const std::vector<int>& bytesFields = itr->second;
-                        for (int bytesField : bytesFields) {
-                            if (bytesField == fieldNum) {
-                                // This is a bytes field
-                                isBytesField = true;
-                                break;
-                            }
-                        }
-                    }
-                    if (isBytesField) {
-                        if (dim.mValue.str_value.length() > 0) {
-                            protoOutput->write(FIELD_TYPE_MESSAGE | fieldNum,
-                                               (const char*)dim.mValue.str_value.c_str(),
-                                               dim.mValue.str_value.length());
-                        }
-                    } else {
-                        protoOutput->write(FIELD_TYPE_STRING | fieldNum, dim.mValue.str_value);
-                    }
+                    protoOutput->write(FIELD_TYPE_STRING | fieldNum, dim.mValue.str_value);
                     break;
                 }
                 case STORAGE:
diff --git a/cmds/statsd/src/statsd_config.proto b/cmds/statsd/src/statsd_config.proto
index 736aa9b..83d9484 100644
--- a/cmds/statsd/src/statsd_config.proto
+++ b/cmds/statsd/src/statsd_config.proto
@@ -428,6 +428,12 @@
   repeated EventActivation event_activation = 2;
 }
 
+message PullAtomPackages {
+    optional int32 atom_id = 1;
+
+    repeated string packages = 2;
+}
+
 message StatsdConfig {
   optional int64 id = 1;
 
@@ -475,6 +481,10 @@
 
   repeated State state = 21;
 
+  repeated string default_pull_packages = 22;
+
+  repeated PullAtomPackages pull_atom_packages = 23;
+
   // Field number 1000 is reserved for later use.
   reserved 1000;
 }
diff --git a/cmds/statsd/src/statsd_metadata.proto b/cmds/statsd/src/statsd_metadata.proto
new file mode 100644
index 0000000..e00fe336
--- /dev/null
+++ b/cmds/statsd/src/statsd_metadata.proto
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+package android.os.statsd.metadata;
+
+message ConfigKey {
+  optional int64 config_id = 1;
+  optional int32 uid = 2;
+}
+
+message Field {
+  optional int32 tag = 1;
+  optional int32 field = 2;
+}
+
+message FieldValue {
+  optional Field field = 1;
+  oneof value {
+    int32 value_int = 2;
+    int64 value_long = 3;
+    float value_float = 4;
+    double value_double = 5;
+    string value_str = 6;
+    bytes value_storage = 7;
+  }
+}
+
+message MetricDimensionKey {
+  repeated FieldValue dimension_key_in_what = 1;
+  repeated FieldValue state_values_key = 2;
+}
+
+message AlertMetadata {
+  optional int64 alert_id = 1;
+  // The earliest time the alert can be fired again in wall clock time.
+  optional int32 last_refractory_ends_sec = 2;
+  optional MetricDimensionKey dimension_key = 3;
+}
+
+// All metadata for a config in statsd
+message StatsMetadata {
+  optional ConfigKey config_key = 1;
+  repeated AlertMetadata alert_metadata = 2;
+}
+
+message StatsMetadataList {
+  repeated StatsMetadata stats_metadata = 1;
+}
\ No newline at end of file
diff --git a/cmds/statsd/src/subscriber/IncidentdReporter.cpp b/cmds/statsd/src/subscriber/IncidentdReporter.cpp
index 30c90b1..1d77513 100644
--- a/cmds/statsd/src/subscriber/IncidentdReporter.cpp
+++ b/cmds/statsd/src/subscriber/IncidentdReporter.cpp
@@ -130,15 +130,15 @@
         return false;
     }
 
-    android::os::IncidentReportRequest incidentReport;
+    AIncidentReportArgs* args = AIncidentReportArgs_init();
 
     vector<uint8_t> protoData;
     getProtoData(rule_id, metricId, dimensionKey, metricValue, configKey,
                  config.alert_description(), &protoData);
-    incidentReport.addHeader(protoData);
+    AIncidentReportArgs_addHeader(args, protoData.data(), protoData.size());
 
     for (int i = 0; i < config.section_size(); i++) {
-        incidentReport.addSection(config.section(i));
+        AIncidentReportArgs_addSection(args, config.section(i));
     }
 
     uint8_t dest;
@@ -152,13 +152,16 @@
         default:
             dest = INCIDENT_REPORT_PRIVACY_POLICY_AUTOMATIC;
     }
-    incidentReport.setPrivacyPolicy(dest);
+    AIncidentReportArgs_setPrivacyPolicy(args, dest);
 
-    incidentReport.setReceiverPackage(config.receiver_pkg());
+    AIncidentReportArgs_setReceiverPackage(args, config.receiver_pkg().c_str());
 
-    incidentReport.setReceiverClass(config.receiver_cls());
+    AIncidentReportArgs_setReceiverClass(args, config.receiver_cls().c_str());
 
-    return incidentReport.takeReport() == NO_ERROR;
+    int err = AIncidentReportArgs_takeReport(args);
+    AIncidentReportArgs_delete(args);
+
+    return err == NO_ERROR;
 }
 
 }  // namespace statsd
diff --git a/cmds/statsd/tests/FieldValue_test.cpp b/cmds/statsd/tests/FieldValue_test.cpp
index a5ff067..0bf24f1 100644
--- a/cmds/statsd/tests/FieldValue_test.cpp
+++ b/cmds/statsd/tests/FieldValue_test.cpp
@@ -14,13 +14,16 @@
  * limitations under the License.
  */
 #include <gtest/gtest.h>
+
 #include "frameworks/base/cmds/statsd/src/stats_log.pb.h"
 #include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
 #include "matchers/matcher_util.h"
 #include "src/logd/LogEvent.h"
+#include "stats_event.h"
 #include "stats_log_util.h"
 #include "stats_util.h"
 #include "subscriber/SubscriberReporter.h"
+#include "tests/statsd_test_util.h"
 
 #ifdef __ANDROID__
 
@@ -30,6 +33,58 @@
 namespace os {
 namespace statsd {
 
+namespace {
+void makeLogEvent(LogEvent* logEvent, const int32_t atomId, const int64_t timestamp,
+                  const vector<int>& attributionUids, const vector<string>& attributionTags,
+                  const string& name) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, atomId);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestamp);
+
+    vector<const char*> cTags(attributionTags.size());
+    for (int i = 0; i < cTags.size(); i++) {
+        cTags[i] = attributionTags[i].c_str();
+    }
+
+    AStatsEvent_writeAttributionChain(statsEvent,
+                                      reinterpret_cast<const uint32_t*>(attributionUids.data()),
+                                      cTags.data(), attributionUids.size());
+    AStatsEvent_writeString(statsEvent, name.c_str());
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    logEvent->parseBuffer(buf, size);
+
+    AStatsEvent_release(statsEvent);
+}
+
+void makeLogEvent(LogEvent* logEvent, const int32_t atomId, const int64_t timestamp,
+                  const vector<int>& attributionUids, const vector<string>& attributionTags,
+                  const int32_t value) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, atomId);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestamp);
+
+    vector<const char*> cTags(attributionTags.size());
+    for (int i = 0; i < cTags.size(); i++) {
+        cTags[i] = attributionTags[i].c_str();
+    }
+
+    AStatsEvent_writeAttributionChain(statsEvent,
+                                      reinterpret_cast<const uint32_t*>(attributionUids.data()),
+                                      cTags.data(), attributionUids.size());
+    AStatsEvent_writeInt32(statsEvent, value);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    logEvent->parseBuffer(buf, size);
+
+    AStatsEvent_release(statsEvent);
+}
+}  // anonymous namespace
+
 TEST(AtomMatcherTest, TestFieldTranslation) {
     FieldMatcher matcher1;
     matcher1.set_field(10);
@@ -72,66 +127,50 @@
     EXPECT_EQ((int32_t)0xff7f7f7f, matcher12.mMask);
 }
 
-// TODO(b/149590301): Update this test to use new socket schema.
-//TEST(AtomMatcherTest, TestFilter_ALL) {
-//    FieldMatcher matcher1;
-//    matcher1.set_field(10);
-//    FieldMatcher* child = matcher1.add_child();
-//    child->set_field(1);
-//    child->set_position(Position::ALL);
-//
-//    child->add_child()->set_field(1);
-//    child->add_child()->set_field(2);
-//
-//    child = matcher1.add_child();
-//    child->set_field(2);
-//
-//    vector<Matcher> matchers;
-//    translateFieldMatcher(matcher1, &matchers);
-//
-//    AttributionNodeInternal attribution_node1;
-//    attribution_node1.set_uid(1111);
-//    attribution_node1.set_tag("location1");
-//
-//    AttributionNodeInternal attribution_node2;
-//    attribution_node2.set_uid(2222);
-//    attribution_node2.set_tag("location2");
-//
-//    AttributionNodeInternal attribution_node3;
-//    attribution_node3.set_uid(3333);
-//    attribution_node3.set_tag("location3");
-//    std::vector<AttributionNodeInternal> attribution_nodes = {attribution_node1, attribution_node2,
-//                                                              attribution_node3};
-//
-//    // Set up the event
-//    LogEvent event(10, 12345);
-//    event.write(attribution_nodes);
-//    event.write("some value");
-//    // Convert to a LogEvent
-//    event.init();
-//    HashableDimensionKey output;
-//
-//    filterValues(matchers, event.getValues(), &output);
-//
-//    EXPECT_EQ((size_t)7, output.getValues().size());
-//    EXPECT_EQ((int32_t)0x02010101, output.getValues()[0].mField.getField());
-//    EXPECT_EQ((int32_t)1111, output.getValues()[0].mValue.int_value);
-//    EXPECT_EQ((int32_t)0x02010102, output.getValues()[1].mField.getField());
-//    EXPECT_EQ("location1", output.getValues()[1].mValue.str_value);
-//
-//    EXPECT_EQ((int32_t)0x02010201, output.getValues()[2].mField.getField());
-//    EXPECT_EQ((int32_t)2222, output.getValues()[2].mValue.int_value);
-//    EXPECT_EQ((int32_t)0x02010202, output.getValues()[3].mField.getField());
-//    EXPECT_EQ("location2", output.getValues()[3].mValue.str_value);
-//
-//    EXPECT_EQ((int32_t)0x02010301, output.getValues()[4].mField.getField());
-//    EXPECT_EQ((int32_t)3333, output.getValues()[4].mValue.int_value);
-//    EXPECT_EQ((int32_t)0x02010302, output.getValues()[5].mField.getField());
-//    EXPECT_EQ("location3", output.getValues()[5].mValue.str_value);
-//
-//    EXPECT_EQ((int32_t)0x00020000, output.getValues()[6].mField.getField());
-//    EXPECT_EQ("some value", output.getValues()[6].mValue.str_value);
-//}
+TEST(AtomMatcherTest, TestFilter_ALL) {
+    FieldMatcher matcher1;
+    matcher1.set_field(10);
+    FieldMatcher* child = matcher1.add_child();
+    child->set_field(1);
+    child->set_position(Position::ALL);
+
+    child->add_child()->set_field(1);
+    child->add_child()->set_field(2);
+
+    child = matcher1.add_child();
+    child->set_field(2);
+
+    vector<Matcher> matchers;
+    translateFieldMatcher(matcher1, &matchers);
+
+    std::vector<int> attributionUids = {1111, 2222, 3333};
+    std::vector<string> attributionTags = {"location1", "location2", "location3"};
+
+    LogEvent event(/*uid=*/0, /*pid=*/0);
+    makeLogEvent(&event, 10 /*atomId*/, 1012345, attributionUids, attributionTags, "some value");
+    HashableDimensionKey output;
+
+    filterValues(matchers, event.getValues(), &output);
+
+    EXPECT_EQ((size_t)7, output.getValues().size());
+    EXPECT_EQ((int32_t)0x02010101, output.getValues()[0].mField.getField());
+    EXPECT_EQ((int32_t)1111, output.getValues()[0].mValue.int_value);
+    EXPECT_EQ((int32_t)0x02010102, output.getValues()[1].mField.getField());
+    EXPECT_EQ("location1", output.getValues()[1].mValue.str_value);
+
+    EXPECT_EQ((int32_t)0x02010201, output.getValues()[2].mField.getField());
+    EXPECT_EQ((int32_t)2222, output.getValues()[2].mValue.int_value);
+    EXPECT_EQ((int32_t)0x02010202, output.getValues()[3].mField.getField());
+    EXPECT_EQ("location2", output.getValues()[3].mValue.str_value);
+
+    EXPECT_EQ((int32_t)0x02010301, output.getValues()[4].mField.getField());
+    EXPECT_EQ((int32_t)3333, output.getValues()[4].mValue.int_value);
+    EXPECT_EQ((int32_t)0x02010302, output.getValues()[5].mField.getField());
+    EXPECT_EQ("location3", output.getValues()[5].mValue.str_value);
+
+    EXPECT_EQ((int32_t)0x00020000, output.getValues()[6].mField.getField());
+    EXPECT_EQ("some value", output.getValues()[6].mValue.str_value);
+}
 
 TEST(AtomMatcherTest, TestSubDimension) {
     HashableDimensionKey dim;
@@ -174,61 +213,45 @@
     EXPECT_TRUE(dim.contains(subDim4));
 }
 
-// TODO(b/149590301): Update this test to use new socket schema.
-//TEST(AtomMatcherTest, TestMetric2ConditionLink) {
-//    AttributionNodeInternal attribution_node1;
-//    attribution_node1.set_uid(1111);
-//    attribution_node1.set_tag("location1");
-//
-//    AttributionNodeInternal attribution_node2;
-//    attribution_node2.set_uid(2222);
-//    attribution_node2.set_tag("location2");
-//
-//    AttributionNodeInternal attribution_node3;
-//    attribution_node3.set_uid(3333);
-//    attribution_node3.set_tag("location3");
-//    std::vector<AttributionNodeInternal> attribution_nodes = {attribution_node1, attribution_node2,
-//                                                              attribution_node3};
-//
-//    // Set up the event
-//    LogEvent event(10, 12345);
-//    event.write(attribution_nodes);
-//    event.write("some value");
-//    // Convert to a LogEvent
-//    event.init();
-//
-//    FieldMatcher whatMatcher;
-//    whatMatcher.set_field(10);
-//    FieldMatcher* child11 = whatMatcher.add_child();
-//    child11->set_field(1);
-//    child11->set_position(Position::ANY);
-//    child11 = child11->add_child();
-//    child11->set_field(1);
-//
-//    FieldMatcher conditionMatcher;
-//    conditionMatcher.set_field(27);
-//    FieldMatcher* child2 = conditionMatcher.add_child();
-//    child2->set_field(2);
-//    child2->set_position(Position::LAST);
-//
-//    child2 = child2->add_child();
-//    child2->set_field(2);
-//
-//    Metric2Condition link;
-//
-//    translateFieldMatcher(whatMatcher, &link.metricFields);
-//    translateFieldMatcher(conditionMatcher, &link.conditionFields);
-//
-//    EXPECT_EQ((size_t)1, link.metricFields.size());
-//    EXPECT_EQ((int32_t)0x02010001, link.metricFields[0].mMatcher.getField());
-//    EXPECT_EQ((int32_t)0xff7f007f, link.metricFields[0].mMask);
-//    EXPECT_EQ((int32_t)10, link.metricFields[0].mMatcher.getTag());
-//
-//    EXPECT_EQ((size_t)1, link.conditionFields.size());
-//    EXPECT_EQ((int32_t)0x02028002, link.conditionFields[0].mMatcher.getField());
-//    EXPECT_EQ((int32_t)0xff7f807f, link.conditionFields[0].mMask);
-//    EXPECT_EQ((int32_t)27, link.conditionFields[0].mMatcher.getTag());
-//}
+TEST(AtomMatcherTest, TestMetric2ConditionLink) {
+    std::vector<int> attributionUids = {1111, 2222, 3333};
+    std::vector<string> attributionTags = {"location1", "location2", "location3"};
+
+    LogEvent event(/*uid=*/0, /*pid=*/0);
+    makeLogEvent(&event, 10 /*atomId*/, 12345, attributionUids, attributionTags, "some value");
+
+    FieldMatcher whatMatcher;
+    whatMatcher.set_field(10);
+    FieldMatcher* child11 = whatMatcher.add_child();
+    child11->set_field(1);
+    child11->set_position(Position::ANY);
+    child11 = child11->add_child();
+    child11->set_field(1);
+
+    FieldMatcher conditionMatcher;
+    conditionMatcher.set_field(27);
+    FieldMatcher* child2 = conditionMatcher.add_child();
+    child2->set_field(2);
+    child2->set_position(Position::LAST);
+
+    child2 = child2->add_child();
+    child2->set_field(2);
+
+    Metric2Condition link;
+
+    translateFieldMatcher(whatMatcher, &link.metricFields);
+    translateFieldMatcher(conditionMatcher, &link.conditionFields);
+
+    EXPECT_EQ((size_t)1, link.metricFields.size());
+    EXPECT_EQ((int32_t)0x02010001, link.metricFields[0].mMatcher.getField());
+    EXPECT_EQ((int32_t)0xff7f007f, link.metricFields[0].mMask);
+    EXPECT_EQ((int32_t)10, link.metricFields[0].mMatcher.getTag());
+
+    EXPECT_EQ((size_t)1, link.conditionFields.size());
+    EXPECT_EQ((int32_t)0x02028002, link.conditionFields[0].mMatcher.getField());
+    EXPECT_EQ((int32_t)0xff7f807f, link.conditionFields[0].mMask);
+    EXPECT_EQ((int32_t)27, link.conditionFields[0].mMatcher.getTag());
+}
 
 TEST(AtomMatcherTest, TestWriteDimensionPath) {
     for (auto position : {Position::ANY, Position::ALL, Position::FIRST, Position::LAST}) {
@@ -439,50 +462,38 @@
     EXPECT_EQ(99999, dim4.value_long());
 }
 
-// TODO(b/149590301): Update this test to use new socket schema.
-//TEST(AtomMatcherTest, TestWriteAtomToProto) {
-//    AttributionNodeInternal attribution_node1;
-//    attribution_node1.set_uid(1111);
-//    attribution_node1.set_tag("location1");
-//
-//    AttributionNodeInternal attribution_node2;
-//    attribution_node2.set_uid(2222);
-//    attribution_node2.set_tag("location2");
-//
-//    std::vector<AttributionNodeInternal> attribution_nodes = {attribution_node1, attribution_node2};
-//
-//    // Set up the event
-//    LogEvent event(4, 12345);
-//    event.write(attribution_nodes);
-//    event.write((int32_t)999);
-//    // Convert to a LogEvent
-//    event.init();
-//
-//    android::util::ProtoOutputStream protoOutput;
-//    writeFieldValueTreeToStream(event.GetTagId(), event.getValues(), &protoOutput);
-//
-//    vector<uint8_t> outData;
-//    outData.resize(protoOutput.size());
-//    size_t pos = 0;
-//    sp<ProtoReader> reader = protoOutput.data();
-//    while (reader->readBuffer() != NULL) {
-//        size_t toRead = reader->currentToRead();
-//        std::memcpy(&(outData[pos]), reader->readBuffer(), toRead);
-//        pos += toRead;
-//        reader->move(toRead);
-//    }
-//
-//    Atom result;
-//    EXPECT_EQ(true, result.ParseFromArray(&outData[0], outData.size()));
-//    EXPECT_EQ(Atom::PushedCase::kBleScanResultReceived, result.pushed_case());
-//    const auto& atom = result.ble_scan_result_received();
-//    EXPECT_EQ(2, atom.attribution_node_size());
-//    EXPECT_EQ(1111, atom.attribution_node(0).uid());
-//    EXPECT_EQ("location1", atom.attribution_node(0).tag());
-//    EXPECT_EQ(2222, atom.attribution_node(1).uid());
-//    EXPECT_EQ("location2", atom.attribution_node(1).tag());
-//    EXPECT_EQ(999, atom.num_results());
-//}
+TEST(AtomMatcherTest, TestWriteAtomToProto) {
+    std::vector<int> attributionUids = {1111, 2222};
+    std::vector<string> attributionTags = {"location1", "location2"};
+
+    LogEvent event(/*uid=*/0, /*pid=*/0);
+    makeLogEvent(&event, 4 /*atomId*/, 12345, attributionUids, attributionTags, 999);
+
+    android::util::ProtoOutputStream protoOutput;
+    writeFieldValueTreeToStream(event.GetTagId(), event.getValues(), &protoOutput);
+
+    vector<uint8_t> outData;
+    outData.resize(protoOutput.size());
+    size_t pos = 0;
+    sp<ProtoReader> reader = protoOutput.data();
+    while (reader->readBuffer() != NULL) {
+        size_t toRead = reader->currentToRead();
+        std::memcpy(&(outData[pos]), reader->readBuffer(), toRead);
+        pos += toRead;
+        reader->move(toRead);
+    }
+
+    Atom result;
+    EXPECT_EQ(true, result.ParseFromArray(&outData[0], outData.size()));
+    EXPECT_EQ(Atom::PushedCase::kBleScanResultReceived, result.pushed_case());
+    const auto& atom = result.ble_scan_result_received();
+    EXPECT_EQ(2, atom.attribution_node_size());
+    EXPECT_EQ(1111, atom.attribution_node(0).uid());
+    EXPECT_EQ("location1", atom.attribution_node(0).tag());
+    EXPECT_EQ(2222, atom.attribution_node(1).uid());
+    EXPECT_EQ("location2", atom.attribution_node(1).tag());
+    EXPECT_EQ(999, atom.num_results());
+}
 
 /*
  * Test two Matchers is not a subset of one Matcher.
diff --git a/cmds/statsd/tests/LogEntryMatcher_test.cpp b/cmds/statsd/tests/LogEntryMatcher_test.cpp
index 2de6377..6f4c8e4 100644
--- a/cmds/statsd/tests/LogEntryMatcher_test.cpp
+++ b/cmds/statsd/tests/LogEntryMatcher_test.cpp
@@ -12,18 +12,19 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
-#include "matchers/matcher_util.h"
-#include "stats_log_util.h"
-#include "stats_util.h"
-
 #include <gtest/gtest.h>
 #include <log/log_event_list.h>
 #include <log/log_read.h>
 #include <log/logprint.h>
-
 #include <stdio.h>
 
+#include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
+#include "matchers/matcher_util.h"
+#include "stats_event.h"
+#include "stats_log_util.h"
+#include "stats_util.h"
+#include "statsd_test_util.h"
+
 using namespace android::os::statsd;
 using std::unordered_map;
 using std::vector;
@@ -39,646 +40,691 @@
 
 
 #ifdef __ANDROID__
-// TODO(b/149590301): Update these tests to use new socket schema.
-//TEST(AtomMatcherTest, TestSimpleMatcher) {
-//    UidMap uidMap;
-//
-//    // Set up the matcher
-//    AtomMatcher matcher;
-//    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
-//    simpleMatcher->set_atom_id(TAG_ID);
-//
-//    LogEvent event(TAG_ID, 0);
-//    EXPECT_TRUE(event.write(11));
-//    event.init();
-//
-//    // Test
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    // Wrong tag id.
-//    simpleMatcher->set_atom_id(TAG_ID + 1);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//}
-//
-//TEST(AtomMatcherTest, TestAttributionMatcher) {
-//    UidMap uidMap;
-//    AttributionNodeInternal attribution_node1;
-//    attribution_node1.set_uid(1111);
-//    attribution_node1.set_tag("location1");
-//
-//    AttributionNodeInternal attribution_node2;
-//    attribution_node2.set_uid(2222);
-//    attribution_node2.set_tag("location2");
-//
-//    AttributionNodeInternal attribution_node3;
-//    attribution_node3.set_uid(3333);
-//    attribution_node3.set_tag("location3");
-//    std::vector<AttributionNodeInternal> attribution_nodes = {attribution_node1, attribution_node2,
-//                                                              attribution_node3};
-//
-//    // Set up the event
-//    LogEvent event(TAG_ID, 0);
-//    event.write(attribution_nodes);
-//    event.write("some value");
-//    // Convert to a LogEvent
-//    event.init();
-//
-//    // Set up the matcher
-//    AtomMatcher matcher;
-//    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
-//    simpleMatcher->set_atom_id(TAG_ID);
-//
-//    // Match first node.
-//    auto attributionMatcher = simpleMatcher->add_field_value_matcher();
-//    attributionMatcher->set_field(FIELD_ID_1);
-//    attributionMatcher->set_position(Position::FIRST);
-//    attributionMatcher->mutable_matches_tuple()->add_field_value_matcher()->set_field(
-//        ATTRIBUTION_TAG_FIELD_ID);
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string("tag");
-//
-//    auto fieldMatcher = simpleMatcher->add_field_value_matcher();
-//    fieldMatcher->set_field(FIELD_ID_2);
-//    fieldMatcher->set_eq_string("some value");
-//
-//    // Tag not matched.
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("location3");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("location1");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    // Match last node.
-//    attributionMatcher->set_position(Position::LAST);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("location3");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    // Match any node.
-//    attributionMatcher->set_position(Position::ANY);
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("location1");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("location2");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("location3");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("location4");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    // Attribution match but primitive field not match.
-//    attributionMatcher->set_position(Position::ANY);
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("location2");
-//    fieldMatcher->set_eq_string("wrong value");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    fieldMatcher->set_eq_string("some value");
-//
-//    // Uid match.
-//    attributionMatcher->set_position(Position::ANY);
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_field(
-//        ATTRIBUTION_UID_FIELD_ID);
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string("pkg0");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    uidMap.updateMap(
-//            1, {1111, 1111, 2222, 3333, 3333} /* uid list */, {1, 1, 2, 1, 2} /* version list */,
-//            {android::String16("v1"), android::String16("v1"), android::String16("v2"),
-//             android::String16("v1"), android::String16("v2")},
-//            {android::String16("pkg0"), android::String16("pkg1"), android::String16("pkg1"),
-//             android::String16("Pkg2"), android::String16("PkG3")} /* package name list */,
-//            {android::String16(""), android::String16(""), android::String16(""),
-//             android::String16(""), android::String16("")});
-//
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg3");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg2");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg1");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg0");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    attributionMatcher->set_position(Position::FIRST);
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg0");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg3");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg2");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg1");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    attributionMatcher->set_position(Position::LAST);
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg0");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg3");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg2");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg1");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    // Uid + tag.
-//    attributionMatcher->set_position(Position::ANY);
-//    attributionMatcher->mutable_matches_tuple()->add_field_value_matcher()->set_field(
-//        ATTRIBUTION_TAG_FIELD_ID);
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg0");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location1");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg1");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location1");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg1");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location2");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg2");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location3");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg3");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location3");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg3");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location1");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    attributionMatcher->set_position(Position::FIRST);
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg0");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location1");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg1");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location1");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg1");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location2");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg2");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location3");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg3");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location3");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg3");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location1");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    attributionMatcher->set_position(Position::LAST);
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg0");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location1");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg1");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location1");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg1");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location2");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg2");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location3");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg3");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location3");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)
-//        ->set_eq_string("pkg3");
-//    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)
-//        ->set_eq_string("location1");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//}
-//
-//TEST(AtomMatcherTest, TestUidFieldMatcher) {
-//    UidMap uidMap;
-//    uidMap.updateMap(
-//        1, {1111, 1111, 2222, 3333, 3333} /* uid list */, {1, 1, 2, 1, 2} /* version list */,
-//        {android::String16("v1"), android::String16("v1"), android::String16("v2"),
-//         android::String16("v1"), android::String16("v2")},
-//        {android::String16("pkg0"), android::String16("pkg1"), android::String16("pkg1"),
-//         android::String16("Pkg2"), android::String16("PkG3")} /* package name list */,
-//        {android::String16(""), android::String16(""), android::String16(""),
-//         android::String16(""), android::String16("")});
-//
-//    // Set up matcher
-//    AtomMatcher matcher;
-//    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
-//    simpleMatcher->set_atom_id(TAG_ID);
-//    simpleMatcher->add_field_value_matcher()->set_field(1);
-//    simpleMatcher->mutable_field_value_matcher(0)->set_eq_string("pkg0");
-//
-//    // Set up the event
-//    LogEvent event(TAG_ID, 0);
-//    event.write(1111);
-//    event.init();
-//
-//    LogEvent event2(TAG_ID_2, 0);
-//    event2.write(1111);
-//    event2.write("some value");
-//    event2.init();
-//
-//    // Tag not in kAtomsWithUidField
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    // Tag found in kAtomsWithUidField and has matching uid
-//    simpleMatcher->set_atom_id(TAG_ID_2);
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event2));
-//
-//    // Tag found in kAtomsWithUidField but has non-matching uid
-//    simpleMatcher->mutable_field_value_matcher(0)->set_eq_string("Pkg2");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event2));
-//}
-//
-//TEST(AtomMatcherTest, TestNeqAnyStringMatcher) {
-//    UidMap uidMap;
-//    uidMap.updateMap(
-//            1, {1111, 1111, 2222, 3333, 3333} /* uid list */, {1, 1, 2, 1, 2} /* version list */,
-//            {android::String16("v1"), android::String16("v1"), android::String16("v2"),
-//             android::String16("v1"), android::String16("v2")},
-//            {android::String16("pkg0"), android::String16("pkg1"), android::String16("pkg1"),
-//             android::String16("Pkg2"), android::String16("PkG3")} /* package name list */,
-//            {android::String16(""), android::String16(""), android::String16(""),
-//             android::String16(""), android::String16("")});
-//
-//    AttributionNodeInternal attribution_node1;
-//    attribution_node1.set_uid(1111);
-//    attribution_node1.set_tag("location1");
-//
-//    AttributionNodeInternal attribution_node2;
-//    attribution_node2.set_uid(2222);
-//    attribution_node2.set_tag("location2");
-//
-//    AttributionNodeInternal attribution_node3;
-//    attribution_node3.set_uid(3333);
-//    attribution_node3.set_tag("location3");
-//
-//    AttributionNodeInternal attribution_node4;
-//    attribution_node4.set_uid(1066);
-//    attribution_node4.set_tag("location3");
-//    std::vector<AttributionNodeInternal> attribution_nodes = {attribution_node1, attribution_node2,
-//                                                              attribution_node3, attribution_node4};
-//
-//    // Set up the event
-//    LogEvent event(TAG_ID, 0);
-//    event.write(attribution_nodes);
-//    event.write("some value");
-//    // Convert to a LogEvent
-//    event.init();
-//
-//    // Set up the matcher
-//    AtomMatcher matcher;
-//    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
-//    simpleMatcher->set_atom_id(TAG_ID);
-//
-//    // Match first node.
-//    auto attributionMatcher = simpleMatcher->add_field_value_matcher();
-//    attributionMatcher->set_field(FIELD_ID_1);
-//    attributionMatcher->set_position(Position::FIRST);
-//    attributionMatcher->mutable_matches_tuple()->add_field_value_matcher()->set_field(
-//            ATTRIBUTION_UID_FIELD_ID);
-//    auto neqStringList = attributionMatcher->mutable_matches_tuple()
-//                                 ->mutable_field_value_matcher(0)
-//                                 ->mutable_neq_any_string();
-//    neqStringList->add_str_value("pkg2");
-//    neqStringList->add_str_value("pkg3");
-//
-//    auto fieldMatcher = simpleMatcher->add_field_value_matcher();
-//    fieldMatcher->set_field(FIELD_ID_2);
-//    fieldMatcher->set_eq_string("some value");
-//
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    neqStringList->Clear();
-//    neqStringList->add_str_value("pkg1");
-//    neqStringList->add_str_value("pkg3");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    attributionMatcher->set_position(Position::ANY);
-//    neqStringList->Clear();
-//    neqStringList->add_str_value("maps.com");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    neqStringList->Clear();
-//    neqStringList->add_str_value("PkG3");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    attributionMatcher->set_position(Position::LAST);
-//    neqStringList->Clear();
-//    neqStringList->add_str_value("AID_STATSD");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//}
-//
-//TEST(AtomMatcherTest, TestEqAnyStringMatcher) {
-//    UidMap uidMap;
-//    uidMap.updateMap(
-//            1, {1111, 1111, 2222, 3333, 3333} /* uid list */, {1, 1, 2, 1, 2} /* version list */,
-//            {android::String16("v1"), android::String16("v1"), android::String16("v2"),
-//             android::String16("v1"), android::String16("v2")},
-//            {android::String16("pkg0"), android::String16("pkg1"), android::String16("pkg1"),
-//             android::String16("Pkg2"), android::String16("PkG3")} /* package name list */,
-//            {android::String16(""), android::String16(""), android::String16(""),
-//             android::String16(""), android::String16("")});
-//
-//    AttributionNodeInternal attribution_node1;
-//    attribution_node1.set_uid(1067);
-//    attribution_node1.set_tag("location1");
-//
-//    AttributionNodeInternal attribution_node2;
-//    attribution_node2.set_uid(2222);
-//    attribution_node2.set_tag("location2");
-//
-//    AttributionNodeInternal attribution_node3;
-//    attribution_node3.set_uid(3333);
-//    attribution_node3.set_tag("location3");
-//
-//    AttributionNodeInternal attribution_node4;
-//    attribution_node4.set_uid(1066);
-//    attribution_node4.set_tag("location3");
-//    std::vector<AttributionNodeInternal> attribution_nodes = {attribution_node1, attribution_node2,
-//                                                              attribution_node3, attribution_node4};
-//
-//    // Set up the event
-//    LogEvent event(TAG_ID, 0);
-//    event.write(attribution_nodes);
-//    event.write("some value");
-//    // Convert to a LogEvent
-//    event.init();
-//
-//    // Set up the matcher
-//    AtomMatcher matcher;
-//    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
-//    simpleMatcher->set_atom_id(TAG_ID);
-//
-//    // Match first node.
-//    auto attributionMatcher = simpleMatcher->add_field_value_matcher();
-//    attributionMatcher->set_field(FIELD_ID_1);
-//    attributionMatcher->set_position(Position::FIRST);
-//    attributionMatcher->mutable_matches_tuple()->add_field_value_matcher()->set_field(
-//            ATTRIBUTION_UID_FIELD_ID);
-//    auto eqStringList = attributionMatcher->mutable_matches_tuple()
-//                                ->mutable_field_value_matcher(0)
-//                                ->mutable_eq_any_string();
-//    eqStringList->add_str_value("AID_ROOT");
-//    eqStringList->add_str_value("AID_INCIDENTD");
-//
-//    auto fieldMatcher = simpleMatcher->add_field_value_matcher();
-//    fieldMatcher->set_field(FIELD_ID_2);
-//    fieldMatcher->set_eq_string("some value");
-//
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    attributionMatcher->set_position(Position::ANY);
-//    eqStringList->Clear();
-//    eqStringList->add_str_value("AID_STATSD");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    eqStringList->Clear();
-//    eqStringList->add_str_value("pkg1");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    auto normalStringField = fieldMatcher->mutable_eq_any_string();
-//    normalStringField->add_str_value("some value123");
-//    normalStringField->add_str_value("some value");
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    normalStringField->Clear();
-//    normalStringField->add_str_value("AID_STATSD");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    eqStringList->Clear();
-//    eqStringList->add_str_value("maps.com");
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//}
-//
-//TEST(AtomMatcherTest, TestBoolMatcher) {
-//    UidMap uidMap;
-//    // Set up the matcher
-//    AtomMatcher matcher;
-//    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
-//    simpleMatcher->set_atom_id(TAG_ID);
-//    auto keyValue1 = simpleMatcher->add_field_value_matcher();
-//    keyValue1->set_field(FIELD_ID_1);
-//    auto keyValue2 = simpleMatcher->add_field_value_matcher();
-//    keyValue2->set_field(FIELD_ID_2);
-//
-//    // Set up the event
-//    LogEvent event(TAG_ID, 0);
-//    EXPECT_TRUE(event.write(true));
-//    EXPECT_TRUE(event.write(false));
-//    // Convert to a LogEvent
-//    event.init();
-//
-//    // Test
-//    keyValue1->set_eq_bool(true);
-//    keyValue2->set_eq_bool(false);
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    keyValue1->set_eq_bool(false);
-//    keyValue2->set_eq_bool(false);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    keyValue1->set_eq_bool(false);
-//    keyValue2->set_eq_bool(true);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    keyValue1->set_eq_bool(true);
-//    keyValue2->set_eq_bool(true);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//}
-//
-//TEST(AtomMatcherTest, TestStringMatcher) {
-//    UidMap uidMap;
-//    // Set up the matcher
-//    AtomMatcher matcher;
-//    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
-//    simpleMatcher->set_atom_id(TAG_ID);
-//    auto keyValue = simpleMatcher->add_field_value_matcher();
-//    keyValue->set_field(FIELD_ID_1);
-//    keyValue->set_eq_string("some value");
-//
-//    // Set up the event
-//    LogEvent event(TAG_ID, 0);
-//    event.write("some value");
-//    // Convert to a LogEvent
-//    event.init();
-//
-//    // Test
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//}
-//
-//TEST(AtomMatcherTest, TestMultiFieldsMatcher) {
-//    UidMap uidMap;
-//    // Set up the matcher
-//    AtomMatcher matcher;
-//    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
-//    simpleMatcher->set_atom_id(TAG_ID);
-//    auto keyValue1 = simpleMatcher->add_field_value_matcher();
-//    keyValue1->set_field(FIELD_ID_1);
-//    auto keyValue2 = simpleMatcher->add_field_value_matcher();
-//    keyValue2->set_field(FIELD_ID_2);
-//
-//    // Set up the event
-//    LogEvent event(TAG_ID, 0);
-//    event.write(2);
-//    event.write(3);
-//
-//    // Convert to a LogEvent
-//    event.init();
-//
-//    // Test
-//    keyValue1->set_eq_int(2);
-//    keyValue2->set_eq_int(3);
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    keyValue1->set_eq_int(2);
-//    keyValue2->set_eq_int(4);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    keyValue1->set_eq_int(4);
-//    keyValue2->set_eq_int(3);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//}
-//
-//TEST(AtomMatcherTest, TestIntComparisonMatcher) {
-//    UidMap uidMap;
-//    // Set up the matcher
-//    AtomMatcher matcher;
-//    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
-//
-//    simpleMatcher->set_atom_id(TAG_ID);
-//    auto keyValue = simpleMatcher->add_field_value_matcher();
-//    keyValue->set_field(FIELD_ID_1);
-//
-//    // Set up the event
-//    LogEvent event(TAG_ID, 0);
-//    event.write(11);
-//    event.init();
-//
-//    // Test
-//
-//    // eq_int
-//    keyValue->set_eq_int(10);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    keyValue->set_eq_int(11);
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    keyValue->set_eq_int(12);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    // lt_int
-//    keyValue->set_lt_int(10);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    keyValue->set_lt_int(11);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    keyValue->set_lt_int(12);
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    // lte_int
-//    keyValue->set_lte_int(10);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    keyValue->set_lte_int(11);
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    keyValue->set_lte_int(12);
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    // gt_int
-//    keyValue->set_gt_int(10);
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    keyValue->set_gt_int(11);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//    keyValue->set_gt_int(12);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//
-//    // gte_int
-//    keyValue->set_gte_int(10);
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    keyValue->set_gte_int(11);
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
-//    keyValue->set_gte_int(12);
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
-//}
-//
-//TEST(AtomMatcherTest, TestFloatComparisonMatcher) {
-//    UidMap uidMap;
-//    // Set up the matcher
-//    AtomMatcher matcher;
-//    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
-//    simpleMatcher->set_atom_id(TAG_ID);
-//
-//    auto keyValue = simpleMatcher->add_field_value_matcher();
-//    keyValue->set_field(FIELD_ID_1);
-//
-//    LogEvent event1(TAG_ID, 0);
-//    keyValue->set_lt_float(10.0);
-//    event1.write(10.1f);
-//    event1.init();
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event1));
-//
-//    LogEvent event2(TAG_ID, 0);
-//    event2.write(9.9f);
-//    event2.init();
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event2));
-//
-//    LogEvent event3(TAG_ID, 0);
-//    event3.write(10.1f);
-//    event3.init();
-//    keyValue->set_gt_float(10.0);
-//    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event3));
-//
-//    LogEvent event4(TAG_ID, 0);
-//    event4.write(9.9f);
-//    event4.init();
-//    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event4));
-//}
+
+namespace {
+
+void makeIntLogEvent(LogEvent* logEvent, const int32_t atomId, const int64_t timestamp,
+                     const int32_t value) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, atomId);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestamp);
+
+    AStatsEvent_writeInt32(statsEvent, value);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    logEvent->parseBuffer(buf, size);
+
+    AStatsEvent_release(statsEvent);
+}
+
+void makeFloatLogEvent(LogEvent* logEvent, const int32_t atomId, const int64_t timestamp,
+                       const float floatValue) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, atomId);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestamp);
+
+    AStatsEvent_writeFloat(statsEvent, floatValue);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    logEvent->parseBuffer(buf, size);
+
+    AStatsEvent_release(statsEvent);
+}
+
+void makeStringLogEvent(LogEvent* logEvent, const int32_t atomId, const int64_t timestamp,
+                        const string& name) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, atomId);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestamp);
+
+    AStatsEvent_writeString(statsEvent, name.c_str());
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    logEvent->parseBuffer(buf, size);
+
+    AStatsEvent_release(statsEvent);
+}
+
+void makeIntStringLogEvent(LogEvent* logEvent, const int32_t atomId, const int64_t timestamp,
+                           const int32_t value, const string& name) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, atomId);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestamp);
+
+    AStatsEvent_writeInt32(statsEvent, value);
+    AStatsEvent_writeString(statsEvent, name.c_str());
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    logEvent->parseBuffer(buf, size);
+
+    AStatsEvent_release(statsEvent);
+}
+
+void makeAttributionLogEvent(LogEvent* logEvent, const int32_t atomId, const int64_t timestamp,
+                             const vector<int>& attributionUids,
+                             const vector<string>& attributionTags, const string& name) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, atomId);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestamp);
+
+    vector<const char*> cTags(attributionTags.size());
+    for (int i = 0; i < cTags.size(); i++) {
+        cTags[i] = attributionTags[i].c_str();
+    }
+
+    AStatsEvent_writeAttributionChain(statsEvent,
+                                      reinterpret_cast<const uint32_t*>(attributionUids.data()),
+                                      cTags.data(), attributionUids.size());
+    AStatsEvent_writeString(statsEvent, name.c_str());
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    logEvent->parseBuffer(buf, size);
+
+    AStatsEvent_release(statsEvent);
+}
+
+void makeBoolLogEvent(LogEvent* logEvent, const int32_t atomId, const int64_t timestamp,
+                      const bool bool1, const bool bool2) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, atomId);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestamp);
+
+    AStatsEvent_writeBool(statsEvent, bool1);
+    AStatsEvent_writeBool(statsEvent, bool2);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    logEvent->parseBuffer(buf, size);
+
+    AStatsEvent_release(statsEvent);
+}
+
+}  // anonymous namespace
+
+TEST(AtomMatcherTest, TestSimpleMatcher) {
+    UidMap uidMap;
+
+    // Set up the matcher
+    AtomMatcher matcher;
+    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
+    simpleMatcher->set_atom_id(TAG_ID);
+
+    LogEvent event(/*uid=*/0, /*pid=*/0);
+    makeIntLogEvent(&event, TAG_ID, 0, 11);
+
+    // Test
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    // Wrong tag id.
+    simpleMatcher->set_atom_id(TAG_ID + 1);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+}
+
+TEST(AtomMatcherTest, TestAttributionMatcher) {
+    UidMap uidMap;
+    std::vector<int> attributionUids = {1111, 2222, 3333};
+    std::vector<string> attributionTags = {"location1", "location2", "location3"};
+
+    // Set up the log event.
+    LogEvent event(/*uid=*/0, /*pid=*/0);
+    makeAttributionLogEvent(&event, TAG_ID, 0, attributionUids, attributionTags, "some value");
+
+    // Set up the matcher
+    AtomMatcher matcher;
+    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
+    simpleMatcher->set_atom_id(TAG_ID);
+
+    // Match first node.
+    auto attributionMatcher = simpleMatcher->add_field_value_matcher();
+    attributionMatcher->set_field(FIELD_ID_1);
+    attributionMatcher->set_position(Position::FIRST);
+    attributionMatcher->mutable_matches_tuple()->add_field_value_matcher()->set_field(
+            ATTRIBUTION_TAG_FIELD_ID);
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "tag");
+
+    auto fieldMatcher = simpleMatcher->add_field_value_matcher();
+    fieldMatcher->set_field(FIELD_ID_2);
+    fieldMatcher->set_eq_string("some value");
+
+    // Tag not matched.
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "location3");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "location1");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    // Match last node.
+    attributionMatcher->set_position(Position::LAST);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "location3");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    // Match any node.
+    attributionMatcher->set_position(Position::ANY);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "location1");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "location2");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "location3");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "location4");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    // Attribution match but primitive field not match.
+    attributionMatcher->set_position(Position::ANY);
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "location2");
+    fieldMatcher->set_eq_string("wrong value");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    fieldMatcher->set_eq_string("some value");
+
+    // Uid match.
+    attributionMatcher->set_position(Position::ANY);
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_field(
+            ATTRIBUTION_UID_FIELD_ID);
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg0");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    uidMap.updateMap(
+            1, {1111, 1111, 2222, 3333, 3333} /* uid list */, {1, 1, 2, 1, 2} /* version list */,
+            {android::String16("v1"), android::String16("v1"), android::String16("v2"),
+             android::String16("v1"), android::String16("v2")},
+            {android::String16("pkg0"), android::String16("pkg1"), android::String16("pkg1"),
+             android::String16("Pkg2"), android::String16("PkG3")} /* package name list */,
+            {android::String16(""), android::String16(""), android::String16(""),
+             android::String16(""), android::String16("")});
+
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg3");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg2");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg1");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg0");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    attributionMatcher->set_position(Position::FIRST);
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg0");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg3");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg2");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg1");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    attributionMatcher->set_position(Position::LAST);
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg0");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg3");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg2");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg1");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    // Uid + tag.
+    attributionMatcher->set_position(Position::ANY);
+    attributionMatcher->mutable_matches_tuple()->add_field_value_matcher()->set_field(
+            ATTRIBUTION_TAG_FIELD_ID);
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg0");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location1");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg1");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location1");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg1");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location2");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg2");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location3");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg3");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location3");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg3");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location1");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    attributionMatcher->set_position(Position::FIRST);
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg0");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location1");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg1");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location1");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg1");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location2");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg2");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location3");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg3");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location3");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg3");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location1");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    attributionMatcher->set_position(Position::LAST);
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg0");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location1");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg1");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location1");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg1");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location2");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg2");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location3");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg3");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location3");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(0)->set_eq_string(
+            "pkg3");
+    attributionMatcher->mutable_matches_tuple()->mutable_field_value_matcher(1)->set_eq_string(
+            "location1");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+}
+
+TEST(AtomMatcherTest, TestUidFieldMatcher) {
+    UidMap uidMap;
+    uidMap.updateMap(
+            1, {1111, 1111, 2222, 3333, 3333} /* uid list */, {1, 1, 2, 1, 2} /* version list */,
+            {android::String16("v1"), android::String16("v1"), android::String16("v2"),
+             android::String16("v1"), android::String16("v2")},
+            {android::String16("pkg0"), android::String16("pkg1"), android::String16("pkg1"),
+             android::String16("Pkg2"), android::String16("PkG3")} /* package name list */,
+            {android::String16(""), android::String16(""), android::String16(""),
+             android::String16(""), android::String16("")});
+
+    // Set up matcher
+    AtomMatcher matcher;
+    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
+    simpleMatcher->set_atom_id(TAG_ID);
+    simpleMatcher->add_field_value_matcher()->set_field(1);
+    simpleMatcher->mutable_field_value_matcher(0)->set_eq_string("pkg0");
+
+    // Set up the event
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    makeIntLogEvent(&event1, TAG_ID, 0, 1111);
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    makeIntStringLogEvent(&event2, TAG_ID_2, 0, 1111, "some value");
+
+    // Tag not in kAtomsWithUidField
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event1));
+
+    // Tag found in kAtomsWithUidField and has matching uid
+    simpleMatcher->set_atom_id(TAG_ID_2);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event2));
+
+    // Tag found in kAtomsWithUidField but has non-matching uid
+    simpleMatcher->mutable_field_value_matcher(0)->set_eq_string("Pkg2");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event2));
+}
+
+TEST(AtomMatcherTest, TestNeqAnyStringMatcher) {
+    UidMap uidMap;
+    uidMap.updateMap(
+            1, {1111, 1111, 2222, 3333, 3333} /* uid list */, {1, 1, 2, 1, 2} /* version list */,
+            {android::String16("v1"), android::String16("v1"), android::String16("v2"),
+             android::String16("v1"), android::String16("v2")},
+            {android::String16("pkg0"), android::String16("pkg1"), android::String16("pkg1"),
+             android::String16("Pkg2"), android::String16("PkG3")} /* package name list */,
+            {android::String16(""), android::String16(""), android::String16(""),
+             android::String16(""), android::String16("")});
+
+    std::vector<int> attributionUids = {1111, 2222, 3333, 1066};
+    std::vector<string> attributionTags = {"location1", "location2", "location3", "location3"};
+
+    // Set up the event
+    LogEvent event(/*uid=*/0, /*pid=*/0);
+    makeAttributionLogEvent(&event, TAG_ID, 0, attributionUids, attributionTags, "some value");
+
+    // Set up the matcher
+    AtomMatcher matcher;
+    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
+    simpleMatcher->set_atom_id(TAG_ID);
+
+    // Match first node.
+    auto attributionMatcher = simpleMatcher->add_field_value_matcher();
+    attributionMatcher->set_field(FIELD_ID_1);
+    attributionMatcher->set_position(Position::FIRST);
+    attributionMatcher->mutable_matches_tuple()->add_field_value_matcher()->set_field(
+            ATTRIBUTION_UID_FIELD_ID);
+    auto neqStringList = attributionMatcher->mutable_matches_tuple()
+                                 ->mutable_field_value_matcher(0)
+                                 ->mutable_neq_any_string();
+    neqStringList->add_str_value("pkg2");
+    neqStringList->add_str_value("pkg3");
+
+    auto fieldMatcher = simpleMatcher->add_field_value_matcher();
+    fieldMatcher->set_field(FIELD_ID_2);
+    fieldMatcher->set_eq_string("some value");
+
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    neqStringList->Clear();
+    neqStringList->add_str_value("pkg1");
+    neqStringList->add_str_value("pkg3");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    attributionMatcher->set_position(Position::ANY);
+    neqStringList->Clear();
+    neqStringList->add_str_value("maps.com");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    neqStringList->Clear();
+    neqStringList->add_str_value("PkG3");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    attributionMatcher->set_position(Position::LAST);
+    neqStringList->Clear();
+    neqStringList->add_str_value("AID_STATSD");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+}
+
+TEST(AtomMatcherTest, TestEqAnyStringMatcher) {
+    UidMap uidMap;
+    uidMap.updateMap(
+            1, {1111, 1111, 2222, 3333, 3333} /* uid list */, {1, 1, 2, 1, 2} /* version list */,
+            {android::String16("v1"), android::String16("v1"), android::String16("v2"),
+             android::String16("v1"), android::String16("v2")},
+            {android::String16("pkg0"), android::String16("pkg1"), android::String16("pkg1"),
+             android::String16("Pkg2"), android::String16("PkG3")} /* package name list */,
+            {android::String16(""), android::String16(""), android::String16(""),
+             android::String16(""), android::String16("")});
+
+    std::vector<int> attributionUids = {1067, 2222, 3333, 1066};
+    std::vector<string> attributionTags = {"location1", "location2", "location3", "location3"};
+
+    // Set up the event
+    LogEvent event(/*uid=*/0, /*pid=*/0);
+    makeAttributionLogEvent(&event, TAG_ID, 0, attributionUids, attributionTags, "some value");
+
+    // Set up the matcher
+    AtomMatcher matcher;
+    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
+    simpleMatcher->set_atom_id(TAG_ID);
+
+    // Match first node.
+    auto attributionMatcher = simpleMatcher->add_field_value_matcher();
+    attributionMatcher->set_field(FIELD_ID_1);
+    attributionMatcher->set_position(Position::FIRST);
+    attributionMatcher->mutable_matches_tuple()->add_field_value_matcher()->set_field(
+            ATTRIBUTION_UID_FIELD_ID);
+    auto eqStringList = attributionMatcher->mutable_matches_tuple()
+                                ->mutable_field_value_matcher(0)
+                                ->mutable_eq_any_string();
+    eqStringList->add_str_value("AID_ROOT");
+    eqStringList->add_str_value("AID_INCIDENTD");
+
+    auto fieldMatcher = simpleMatcher->add_field_value_matcher();
+    fieldMatcher->set_field(FIELD_ID_2);
+    fieldMatcher->set_eq_string("some value");
+
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    attributionMatcher->set_position(Position::ANY);
+    eqStringList->Clear();
+    eqStringList->add_str_value("AID_STATSD");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    eqStringList->Clear();
+    eqStringList->add_str_value("pkg1");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    auto normalStringField = fieldMatcher->mutable_eq_any_string();
+    normalStringField->add_str_value("some value123");
+    normalStringField->add_str_value("some value");
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    normalStringField->Clear();
+    normalStringField->add_str_value("AID_STATSD");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    eqStringList->Clear();
+    eqStringList->add_str_value("maps.com");
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+}
+
+TEST(AtomMatcherTest, TestBoolMatcher) {
+    UidMap uidMap;
+    // Set up the matcher
+    AtomMatcher matcher;
+    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
+    simpleMatcher->set_atom_id(TAG_ID);
+    auto keyValue1 = simpleMatcher->add_field_value_matcher();
+    keyValue1->set_field(FIELD_ID_1);
+    auto keyValue2 = simpleMatcher->add_field_value_matcher();
+    keyValue2->set_field(FIELD_ID_2);
+
+    // Set up the event
+    LogEvent event(/*uid=*/0, /*pid=*/0);
+    makeBoolLogEvent(&event, TAG_ID, 0, true, false);
+
+    // Test
+    keyValue1->set_eq_bool(true);
+    keyValue2->set_eq_bool(false);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    keyValue1->set_eq_bool(false);
+    keyValue2->set_eq_bool(false);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    keyValue1->set_eq_bool(false);
+    keyValue2->set_eq_bool(true);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    keyValue1->set_eq_bool(true);
+    keyValue2->set_eq_bool(true);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+}
+
+TEST(AtomMatcherTest, TestStringMatcher) {
+    UidMap uidMap;
+    // Set up the matcher
+    AtomMatcher matcher;
+    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
+    simpleMatcher->set_atom_id(TAG_ID);
+    auto keyValue = simpleMatcher->add_field_value_matcher();
+    keyValue->set_field(FIELD_ID_1);
+    keyValue->set_eq_string("some value");
+
+    // Set up the event
+    LogEvent event(/*uid=*/0, /*pid=*/0);
+    makeStringLogEvent(&event, TAG_ID, 0, "some value");
+
+    // Test
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+}
+
+TEST(AtomMatcherTest, TestMultiFieldsMatcher) {
+    UidMap uidMap;
+    // Set up the matcher
+    AtomMatcher matcher;
+    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
+    simpleMatcher->set_atom_id(TAG_ID);
+    auto keyValue1 = simpleMatcher->add_field_value_matcher();
+    keyValue1->set_field(FIELD_ID_1);
+    auto keyValue2 = simpleMatcher->add_field_value_matcher();
+    keyValue2->set_field(FIELD_ID_2);
+
+    // Set up the event
+    LogEvent event(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event, TAG_ID, 0, 2, 3);
+
+    // Test
+    keyValue1->set_eq_int(2);
+    keyValue2->set_eq_int(3);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    keyValue1->set_eq_int(2);
+    keyValue2->set_eq_int(4);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    keyValue1->set_eq_int(4);
+    keyValue2->set_eq_int(3);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+}
+
+TEST(AtomMatcherTest, TestIntComparisonMatcher) {
+    UidMap uidMap;
+    // Set up the matcher
+    AtomMatcher matcher;
+    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
+
+    simpleMatcher->set_atom_id(TAG_ID);
+    auto keyValue = simpleMatcher->add_field_value_matcher();
+    keyValue->set_field(FIELD_ID_1);
+
+    // Set up the event
+    LogEvent event(/*uid=*/0, /*pid=*/0);
+    makeIntLogEvent(&event, TAG_ID, 0, 11);
+
+    // Test
+
+    // eq_int
+    keyValue->set_eq_int(10);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    keyValue->set_eq_int(11);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    keyValue->set_eq_int(12);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    // lt_int
+    keyValue->set_lt_int(10);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    keyValue->set_lt_int(11);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    keyValue->set_lt_int(12);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    // lte_int
+    keyValue->set_lte_int(10);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    keyValue->set_lte_int(11);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    keyValue->set_lte_int(12);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    // gt_int
+    keyValue->set_gt_int(10);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    keyValue->set_gt_int(11);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+    keyValue->set_gt_int(12);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+
+    // gte_int
+    keyValue->set_gte_int(10);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    keyValue->set_gte_int(11);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event));
+    keyValue->set_gte_int(12);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event));
+}
+
+TEST(AtomMatcherTest, TestFloatComparisonMatcher) {
+    UidMap uidMap;
+    // Set up the matcher
+    AtomMatcher matcher;
+    auto simpleMatcher = matcher.mutable_simple_atom_matcher();
+    simpleMatcher->set_atom_id(TAG_ID);
+
+    auto keyValue = simpleMatcher->add_field_value_matcher();
+    keyValue->set_field(FIELD_ID_1);
+
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    makeFloatLogEvent(&event1, TAG_ID, 0, 10.1f);
+    keyValue->set_lt_float(10.0);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event1));
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    makeFloatLogEvent(&event2, TAG_ID, 0, 9.9f);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event2));
+
+    LogEvent event3(/*uid=*/0, /*pid=*/0);
+    makeFloatLogEvent(&event3, TAG_ID, 0, 10.1f);
+    keyValue->set_gt_float(10.0);
+    EXPECT_TRUE(matchesSimple(uidMap, *simpleMatcher, event3));
+
+    LogEvent event4(/*uid=*/0, /*pid=*/0);
+    makeFloatLogEvent(&event4, TAG_ID, 0, 9.9f);
+    EXPECT_FALSE(matchesSimple(uidMap, *simpleMatcher, event4));
+}
 
 // Helper for the composite matchers.
 void addSimpleMatcher(SimpleAtomMatcher* simpleMatcher, int tag, int key, int val) {
diff --git a/cmds/statsd/tests/MetricsManager_test.cpp b/cmds/statsd/tests/MetricsManager_test.cpp
index 71adc57..1075fe4 100644
--- a/cmds/statsd/tests/MetricsManager_test.cpp
+++ b/cmds/statsd/tests/MetricsManager_test.cpp
@@ -13,7 +13,15 @@
 // limitations under the License.
 
 #include <gtest/gtest.h>
+#include <private/android_filesystem_config.h>
+#include <stdio.h>
 
+#include <set>
+#include <unordered_map>
+#include <vector>
+
+#include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
+#include "metrics/metrics_test_helper.h"
 #include "src/condition/ConditionTracker.h"
 #include "src/matchers/LogMatchingTracker.h"
 #include "src/metrics/CountMetricProducer.h"
@@ -23,23 +31,23 @@
 #include "src/metrics/metrics_manager_util.h"
 #include "statsd_test_util.h"
 
-#include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
-
-#include <stdio.h>
-#include <set>
-#include <unordered_map>
-#include <vector>
-
-using namespace android::os::statsd;
+using namespace testing;
 using android::sp;
+using android::os::statsd::Predicate;
+using std::map;
 using std::set;
 using std::unordered_map;
 using std::vector;
-using android::os::statsd::Predicate;
 
 #ifdef __ANDROID__
 
+namespace android {
+namespace os {
+namespace statsd {
+
+namespace {
 const ConfigKey kConfigKey(0, 12345);
+const long kAlertId = 3;
 
 const long timeBaseSec = 1000;
 
@@ -85,7 +93,7 @@
     config.add_no_report_metric(3);
 
     auto alert = config.add_alert();
-    alert->set_id(3);
+    alert->set_id(kAlertId);
     alert->set_metric_id(3);
     alert->set_num_buckets(10);
     alert->set_refractory_period_secs(100);
@@ -218,7 +226,7 @@
     metric->mutable_dimensions_in_what()->add_child()->set_field(1);
 
     auto alert = config.add_alert();
-    alert->set_id(103);
+    alert->set_id(kAlertId);
     alert->set_metric_id(3);
     alert->set_num_buckets(10);
     alert->set_refractory_period_secs(100);
@@ -267,6 +275,11 @@
     return config;
 }
 
+bool isSubset(const set<int32_t>& set1, const set<int32_t>& set2) {
+    return std::includes(set2.begin(), set2.end(), set1.begin(), set1.end());
+}
+}  // anonymous namespace
+
 TEST(MetricsManagerTest, TestGoodConfig) {
     UidMap uidMap;
     sp<StatsPullerManager> pullerManager = new StatsPullerManager();
@@ -284,6 +297,7 @@
     unordered_map<int, std::vector<int>> trackerToConditionMap;
     unordered_map<int, std::vector<int>> activationAtomTrackerToMetricMap;
     unordered_map<int, std::vector<int>> deactivationAtomTrackerToMetricMap;
+    unordered_map<int64_t, int> alertTrackerMap;
     vector<int> metricsWithActivation;
     std::set<int64_t> noReportMetricIds;
 
@@ -293,10 +307,14 @@
                                  allAnomalyTrackers, allAlarmTrackers, conditionToMetricMap,
                                  trackerToMetricMap, trackerToConditionMap,
                                  activationAtomTrackerToMetricMap, deactivationAtomTrackerToMetricMap,
-                                 metricsWithActivation, noReportMetricIds));
+                                 alertTrackerMap, metricsWithActivation,
+                                 noReportMetricIds));
     EXPECT_EQ(1u, allMetricProducers.size());
     EXPECT_EQ(1u, allAnomalyTrackers.size());
     EXPECT_EQ(1u, noReportMetricIds.size());
+    EXPECT_EQ(1u, alertTrackerMap.size());
+    EXPECT_NE(alertTrackerMap.find(kAlertId), alertTrackerMap.end());
+    EXPECT_EQ(alertTrackerMap.find(kAlertId)->second, 0);
 }
 
 TEST(MetricsManagerTest, TestDimensionMetricsWithMultiTags) {
@@ -316,6 +334,7 @@
     unordered_map<int, std::vector<int>> trackerToConditionMap;
     unordered_map<int, std::vector<int>> activationAtomTrackerToMetricMap;
     unordered_map<int, std::vector<int>> deactivationAtomTrackerToMetricMap;
+    unordered_map<int64_t, int> alertTrackerMap;
     vector<int> metricsWithActivation;
     std::set<int64_t> noReportMetricIds;
 
@@ -325,7 +344,8 @@
                                   allAnomalyTrackers, allAlarmTrackers, conditionToMetricMap,
                                   trackerToMetricMap, trackerToConditionMap,
                                   activationAtomTrackerToMetricMap, deactivationAtomTrackerToMetricMap,
-                                  metricsWithActivation, noReportMetricIds));
+                                  alertTrackerMap, metricsWithActivation,
+                                  noReportMetricIds));
 }
 
 TEST(MetricsManagerTest, TestCircleLogMatcherDependency) {
@@ -345,6 +365,7 @@
     unordered_map<int, std::vector<int>> trackerToConditionMap;
     unordered_map<int, std::vector<int>> activationAtomTrackerToMetricMap;
     unordered_map<int, std::vector<int>> deactivationAtomTrackerToMetricMap;
+    unordered_map<int64_t, int> alertTrackerMap;
     vector<int> metricsWithActivation;
     std::set<int64_t> noReportMetricIds;
 
@@ -354,7 +375,8 @@
                                   allAnomalyTrackers, allAlarmTrackers, conditionToMetricMap,
                                   trackerToMetricMap, trackerToConditionMap,
                                   activationAtomTrackerToMetricMap, deactivationAtomTrackerToMetricMap,
-                                  metricsWithActivation, noReportMetricIds));
+                                  alertTrackerMap, metricsWithActivation,
+                                  noReportMetricIds));
 }
 
 TEST(MetricsManagerTest, TestMissingMatchers) {
@@ -374,6 +396,7 @@
     unordered_map<int, std::vector<int>> trackerToConditionMap;
     unordered_map<int, std::vector<int>> activationAtomTrackerToMetricMap;
     unordered_map<int, std::vector<int>> deactivationAtomTrackerToMetricMap;
+    unordered_map<int64_t, int> alertTrackerMap;
     vector<int> metricsWithActivation;
     std::set<int64_t> noReportMetricIds;
     EXPECT_FALSE(initStatsdConfig(kConfigKey, config, uidMap, pullerManager, anomalyAlarmMonitor,
@@ -382,7 +405,8 @@
                                   allAnomalyTrackers, allAlarmTrackers, conditionToMetricMap,
                                   trackerToMetricMap, trackerToConditionMap,
                                   activationAtomTrackerToMetricMap, deactivationAtomTrackerToMetricMap,
-                                  metricsWithActivation, noReportMetricIds));
+                                  alertTrackerMap, metricsWithActivation,
+                                  noReportMetricIds));
 }
 
 TEST(MetricsManagerTest, TestMissingPredicate) {
@@ -402,6 +426,7 @@
     unordered_map<int, std::vector<int>> trackerToConditionMap;
     unordered_map<int, std::vector<int>> activationAtomTrackerToMetricMap;
     unordered_map<int, std::vector<int>> deactivationAtomTrackerToMetricMap;
+    unordered_map<int64_t, int> alertTrackerMap;
     vector<int> metricsWithActivation;
     std::set<int64_t> noReportMetricIds;
     EXPECT_FALSE(initStatsdConfig(kConfigKey, config, uidMap, pullerManager, anomalyAlarmMonitor,
@@ -410,7 +435,7 @@
                                   allAnomalyTrackers, allAlarmTrackers, conditionToMetricMap,
                                   trackerToMetricMap, trackerToConditionMap,
                                   activationAtomTrackerToMetricMap, deactivationAtomTrackerToMetricMap,
-                                  metricsWithActivation, noReportMetricIds));
+                                  alertTrackerMap, metricsWithActivation, noReportMetricIds));
 }
 
 TEST(MetricsManagerTest, TestCirclePredicateDependency) {
@@ -430,6 +455,7 @@
     unordered_map<int, std::vector<int>> trackerToConditionMap;
     unordered_map<int, std::vector<int>> activationAtomTrackerToMetricMap;
     unordered_map<int, std::vector<int>> deactivationAtomTrackerToMetricMap;
+    unordered_map<int64_t, int> alertTrackerMap;
     vector<int> metricsWithActivation;
     std::set<int64_t> noReportMetricIds;
 
@@ -439,7 +465,8 @@
                                   allAnomalyTrackers, allAlarmTrackers, conditionToMetricMap,
                                   trackerToMetricMap, trackerToConditionMap,
                                   activationAtomTrackerToMetricMap, deactivationAtomTrackerToMetricMap,
-                                  metricsWithActivation, noReportMetricIds));
+                                  alertTrackerMap, metricsWithActivation,
+                                  noReportMetricIds));
 }
 
 TEST(MetricsManagerTest, testAlertWithUnknownMetric) {
@@ -459,6 +486,7 @@
     unordered_map<int, std::vector<int>> trackerToConditionMap;
     unordered_map<int, std::vector<int>> activationAtomTrackerToMetricMap;
     unordered_map<int, std::vector<int>> deactivationAtomTrackerToMetricMap;
+    unordered_map<int64_t, int> alertTrackerMap;
     vector<int> metricsWithActivation;
     std::set<int64_t> noReportMetricIds;
 
@@ -468,9 +496,105 @@
                                   allAnomalyTrackers, allAlarmTrackers, conditionToMetricMap,
                                   trackerToMetricMap, trackerToConditionMap,
                                   activationAtomTrackerToMetricMap, deactivationAtomTrackerToMetricMap,
-                                  metricsWithActivation, noReportMetricIds));
+                                  alertTrackerMap, metricsWithActivation,
+                                  noReportMetricIds));
 }
 
+TEST(MetricsManagerTest, TestLogSources) {
+    string app1 = "app1";
+    set<int32_t> app1Uids = {1111, 11111};
+    string app2 = "app2";
+    set<int32_t> app2Uids = {2222};
+    string app3 = "app3";
+    set<int32_t> app3Uids = {3333, 1111};
+
+    map<string, set<int32_t>> pkgToUids;
+    pkgToUids[app1] = app1Uids;
+    pkgToUids[app2] = app2Uids;
+    pkgToUids[app3] = app3Uids;
+
+    int32_t atom1 = 10;
+    int32_t atom2 = 20;
+    int32_t atom3 = 30;
+    sp<MockUidMap> uidMap = new StrictMock<MockUidMap>();
+    EXPECT_CALL(*uidMap, getAppUid(_))
+            .Times(4)
+            .WillRepeatedly(Invoke([&pkgToUids](const string& pkg) {
+                const auto& it = pkgToUids.find(pkg);
+                if (it != pkgToUids.end()) {
+                    return it->second;
+                }
+                return set<int32_t>();
+            }));
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, RegisterPullUidProvider(kConfigKey, _)).Times(1);
+    EXPECT_CALL(*pullerManager, UnregisterPullUidProvider(kConfigKey)).Times(1);
+
+    sp<AlarmMonitor> anomalyAlarmMonitor;
+    sp<AlarmMonitor> periodicAlarmMonitor;
+
+    StatsdConfig config = buildGoodConfig();
+    config.add_allowed_log_source("AID_SYSTEM");
+    config.add_allowed_log_source(app1);
+    config.add_default_pull_packages("AID_SYSTEM");
+    config.add_default_pull_packages("AID_ROOT");
+
+    const set<int32_t> defaultPullUids = {AID_SYSTEM, AID_ROOT};
+
+    PullAtomPackages* pullAtomPackages = config.add_pull_atom_packages();
+    pullAtomPackages->set_atom_id(atom1);
+    pullAtomPackages->add_packages(app1);
+    pullAtomPackages->add_packages(app3);
+
+    pullAtomPackages = config.add_pull_atom_packages();
+    pullAtomPackages->set_atom_id(atom2);
+    pullAtomPackages->add_packages(app2);
+    pullAtomPackages->add_packages("AID_STATSD");
+
+    MetricsManager metricsManager(kConfigKey, config, timeBaseSec, timeBaseSec, uidMap,
+                                  pullerManager, anomalyAlarmMonitor, periodicAlarmMonitor);
+
+    EXPECT_TRUE(metricsManager.isConfigValid());
+
+    ASSERT_EQ(metricsManager.mAllowedUid.size(), 1);
+    EXPECT_EQ(metricsManager.mAllowedUid[0], AID_SYSTEM);
+
+    ASSERT_EQ(metricsManager.mAllowedPkg.size(), 1);
+    EXPECT_EQ(metricsManager.mAllowedPkg[0], app1);
+
+    ASSERT_EQ(metricsManager.mAllowedLogSources.size(), 3);
+    EXPECT_TRUE(isSubset({AID_SYSTEM}, metricsManager.mAllowedLogSources));
+    EXPECT_TRUE(isSubset(app1Uids, metricsManager.mAllowedLogSources));
+
+    ASSERT_EQ(metricsManager.mDefaultPullUids.size(), 2);
+    EXPECT_TRUE(isSubset(defaultPullUids, metricsManager.mDefaultPullUids));
+    ;
+
+    vector<int32_t> atom1Uids = metricsManager.getPullAtomUids(atom1);
+    ASSERT_EQ(atom1Uids.size(), 5);
+    set<int32_t> expectedAtom1Uids;
+    expectedAtom1Uids.insert(defaultPullUids.begin(), defaultPullUids.end());
+    expectedAtom1Uids.insert(app1Uids.begin(), app1Uids.end());
+    expectedAtom1Uids.insert(app3Uids.begin(), app3Uids.end());
+    EXPECT_TRUE(isSubset(expectedAtom1Uids, set<int32_t>(atom1Uids.begin(), atom1Uids.end())));
+
+    vector<int32_t> atom2Uids = metricsManager.getPullAtomUids(atom2);
+    ASSERT_EQ(atom2Uids.size(), 4);
+    set<int32_t> expectedAtom2Uids;
+    expectedAtom1Uids.insert(defaultPullUids.begin(), defaultPullUids.end());
+    expectedAtom1Uids.insert(app2Uids.begin(), app2Uids.end());
+    expectedAtom1Uids.insert(AID_STATSD);
+    EXPECT_TRUE(isSubset(expectedAtom2Uids, set<int32_t>(atom2Uids.begin(), atom2Uids.end())));
+
+    vector<int32_t> atom3Uids = metricsManager.getPullAtomUids(atom3);
+    ASSERT_EQ(atom3Uids.size(), 2);
+    EXPECT_TRUE(isSubset(defaultPullUids, set<int32_t>(atom3Uids.begin(), atom3Uids.end())));
+}
+
+}  // namespace statsd
+}  // namespace os
+}  // namespace android
+
 #else
 GTEST_LOG_(INFO) << "This test does nothing.\n";
 #endif
diff --git a/cmds/statsd/tests/StatsLogProcessor_test.cpp b/cmds/statsd/tests/StatsLogProcessor_test.cpp
index d6498f4..9e7b7c8 100644
--- a/cmds/statsd/tests/StatsLogProcessor_test.cpp
+++ b/cmds/statsd/tests/StatsLogProcessor_test.cpp
@@ -253,1416 +253,1420 @@
     EXPECT_EQ(2, report.annotation(0).field_int32());
 }
 
-// TODO(b/149590301): Update this test to use new socket schema.
-//TEST(StatsLogProcessorTest, TestOnDumpReportEraseData) {
-//    // Setup a simple config.
-//    StatsdConfig config;
-//    config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
-//    auto wakelockAcquireMatcher = CreateAcquireWakelockAtomMatcher();
-//    *config.add_atom_matcher() = wakelockAcquireMatcher;
-//
-//    auto countMetric = config.add_count_metric();
-//    countMetric->set_id(123456);
-//    countMetric->set_what(wakelockAcquireMatcher.id());
-//    countMetric->set_bucket(FIVE_MINUTES);
-//
-//    ConfigKey cfgKey;
-//    sp<StatsLogProcessor> processor = CreateStatsLogProcessor(1, 1, config, cfgKey);
-//
-//    std::vector<AttributionNodeInternal> attributions1 = {CreateAttribution(111, "App1")};
-//    auto event = CreateAcquireWakelockEvent(attributions1, "wl1", 2);
-//    processor->OnLogEvent(event.get());
-//
-//    vector<uint8_t> bytes;
-//    ConfigMetricsReportList output;
-//
-//    // Dump report WITHOUT erasing data.
-//    processor->onDumpReport(cfgKey, 3, true, false /* Do NOT erase data. */, ADB_DUMP, FAST, &bytes);
-//    output.ParseFromArray(bytes.data(), bytes.size());
-//    EXPECT_EQ(output.reports_size(), 1);
-//    EXPECT_EQ(output.reports(0).metrics_size(), 1);
-//    EXPECT_EQ(output.reports(0).metrics(0).count_metrics().data_size(), 1);
-//
-//    // Dump report WITH erasing data. There should be data since we didn't previously erase it.
-//    processor->onDumpReport(cfgKey, 4, true, true /* DO erase data. */, ADB_DUMP, FAST, &bytes);
-//    output.ParseFromArray(bytes.data(), bytes.size());
-//    EXPECT_EQ(output.reports_size(), 1);
-//    EXPECT_EQ(output.reports(0).metrics_size(), 1);
-//    EXPECT_EQ(output.reports(0).metrics(0).count_metrics().data_size(), 1);
-//
-//    // Dump report again. There should be no data since we erased it.
-//    processor->onDumpReport(cfgKey, 5, true, true /* DO erase data. */, ADB_DUMP, FAST, &bytes);
-//    output.ParseFromArray(bytes.data(), bytes.size());
-//    // We don't care whether statsd has a report, as long as it has no count metrics in it.
-//    bool noData = output.reports_size() == 0
-//            || output.reports(0).metrics_size() == 0
-//            || output.reports(0).metrics(0).count_metrics().data_size() == 0;
-//    EXPECT_TRUE(noData);
-//}
-//
-//TEST(StatsLogProcessorTest, TestActiveConfigMetricDiskWriteRead) {
-//    int uid = 1111;
-//
-//    // Setup a simple config, no activation
-//    StatsdConfig config1;
-//    int64_t cfgId1 = 12341;
-//    config1.set_id(cfgId1);
-//    config1.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
-//    auto wakelockAcquireMatcher = CreateAcquireWakelockAtomMatcher();
-//    *config1.add_atom_matcher() = wakelockAcquireMatcher;
-//
-//    long metricId1 = 1234561;
-//    long metricId2 = 1234562;
-//    auto countMetric1 = config1.add_count_metric();
-//    countMetric1->set_id(metricId1);
-//    countMetric1->set_what(wakelockAcquireMatcher.id());
-//    countMetric1->set_bucket(FIVE_MINUTES);
-//
-//    auto countMetric2 = config1.add_count_metric();
-//    countMetric2->set_id(metricId2);
-//    countMetric2->set_what(wakelockAcquireMatcher.id());
-//    countMetric2->set_bucket(FIVE_MINUTES);
-//
-//    ConfigKey cfgKey1(uid, cfgId1);
-//
-//    // Add another config, with two metrics, one with activation
-//    StatsdConfig config2;
-//    int64_t cfgId2 = 12342;
-//    config2.set_id(cfgId2);
-//    config2.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
-//    *config2.add_atom_matcher() = wakelockAcquireMatcher;
-//
-//    long metricId3 = 1234561;
-//    long metricId4 = 1234562;
-//
-//    auto countMetric3 = config2.add_count_metric();
-//    countMetric3->set_id(metricId3);
-//    countMetric3->set_what(wakelockAcquireMatcher.id());
-//    countMetric3->set_bucket(FIVE_MINUTES);
-//
-//    auto countMetric4 = config2.add_count_metric();
-//    countMetric4->set_id(metricId4);
-//    countMetric4->set_what(wakelockAcquireMatcher.id());
-//    countMetric4->set_bucket(FIVE_MINUTES);
-//
-//    auto metric3Activation = config2.add_metric_activation();
-//    metric3Activation->set_metric_id(metricId3);
-//    metric3Activation->set_activation_type(ACTIVATE_IMMEDIATELY);
-//    auto metric3ActivationTrigger = metric3Activation->add_event_activation();
-//    metric3ActivationTrigger->set_atom_matcher_id(wakelockAcquireMatcher.id());
-//    metric3ActivationTrigger->set_ttl_seconds(100);
-//
-//    ConfigKey cfgKey2(uid, cfgId2);
-//
-//    // Add another config, with two metrics, both with activations
-//    StatsdConfig config3;
-//    int64_t cfgId3 = 12343;
-//    config3.set_id(cfgId3);
-//    config3.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
-//    *config3.add_atom_matcher() = wakelockAcquireMatcher;
-//
-//    long metricId5 = 1234565;
-//    long metricId6 = 1234566;
-//    auto countMetric5 = config3.add_count_metric();
-//    countMetric5->set_id(metricId5);
-//    countMetric5->set_what(wakelockAcquireMatcher.id());
-//    countMetric5->set_bucket(FIVE_MINUTES);
-//
-//    auto countMetric6 = config3.add_count_metric();
-//    countMetric6->set_id(metricId6);
-//    countMetric6->set_what(wakelockAcquireMatcher.id());
-//    countMetric6->set_bucket(FIVE_MINUTES);
-//
-//    auto metric5Activation = config3.add_metric_activation();
-//    metric5Activation->set_metric_id(metricId5);
-//    metric5Activation->set_activation_type(ACTIVATE_IMMEDIATELY);
-//    auto metric5ActivationTrigger = metric5Activation->add_event_activation();
-//    metric5ActivationTrigger->set_atom_matcher_id(wakelockAcquireMatcher.id());
-//    metric5ActivationTrigger->set_ttl_seconds(100);
-//
-//    auto metric6Activation = config3.add_metric_activation();
-//    metric6Activation->set_metric_id(metricId6);
-//    metric6Activation->set_activation_type(ACTIVATE_IMMEDIATELY);
-//    auto metric6ActivationTrigger = metric6Activation->add_event_activation();
-//    metric6ActivationTrigger->set_atom_matcher_id(wakelockAcquireMatcher.id());
-//    metric6ActivationTrigger->set_ttl_seconds(200);
-//
-//    ConfigKey cfgKey3(uid, cfgId3);
-//
-//    sp<UidMap> m = new UidMap();
-//    sp<StatsPullerManager> pullerManager = new StatsPullerManager();
-//    sp<AlarmMonitor> anomalyAlarmMonitor;
-//    sp<AlarmMonitor> subscriberAlarmMonitor;
-//    vector<int64_t> activeConfigsBroadcast;
-//
-//    long timeBase1 = 1;
-//    int broadcastCount = 0;
-//    StatsLogProcessor processor(m, pullerManager, anomalyAlarmMonitor, subscriberAlarmMonitor,
-//            timeBase1, [](const ConfigKey& key) { return true; },
-//            [&uid, &broadcastCount, &activeConfigsBroadcast](const int& broadcastUid,
-//                    const vector<int64_t>& activeConfigs) {
-//                broadcastCount++;
-//                EXPECT_EQ(broadcastUid, uid);
-//                activeConfigsBroadcast.clear();
-//                activeConfigsBroadcast.insert(activeConfigsBroadcast.end(),
-//                        activeConfigs.begin(), activeConfigs.end());
-//                return true;
-//            });
-//
-//    processor.OnConfigUpdated(1, cfgKey1, config1);
-//    processor.OnConfigUpdated(2, cfgKey2, config2);
-//    processor.OnConfigUpdated(3, cfgKey3, config3);
-//
-//    EXPECT_EQ(3, processor.mMetricsManagers.size());
-//
-//    // Expect the first config and both metrics in it to be active.
-//    auto it = processor.mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor.mMetricsManagers.end());
-//    auto& metricsManager1 = it->second;
-//    EXPECT_TRUE(metricsManager1->isActive());
-//
-//    auto metricIt = metricsManager1->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId1) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1->mAllMetricProducers.end());
-//    auto& metricProducer1 = *metricIt;
-//    EXPECT_TRUE(metricProducer1->isActive());
-//
-//    metricIt = metricsManager1->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId2) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1->mAllMetricProducers.end());
-//    auto& metricProducer2 = *metricIt;
-//    EXPECT_TRUE(metricProducer2->isActive());
-//
-//    // Expect config 2 to be active. Metric 3 shouldn't be active, metric 4 should be active.
-//    it = processor.mMetricsManagers.find(cfgKey2);
-//    EXPECT_TRUE(it != processor.mMetricsManagers.end());
-//    auto& metricsManager2 = it->second;
-//    EXPECT_TRUE(metricsManager2->isActive());
-//
-//    metricIt = metricsManager2->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager2->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId3) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager2->mAllMetricProducers.end());
-//    auto& metricProducer3 = *metricIt;
-//    EXPECT_FALSE(metricProducer3->isActive());
-//
-//    metricIt = metricsManager2->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager2->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId4) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager2->mAllMetricProducers.end());
-//    auto& metricProducer4 = *metricIt;
-//    EXPECT_TRUE(metricProducer4->isActive());
-//
-//    // Expect the third config and both metrics in it to be inactive.
-//    it = processor.mMetricsManagers.find(cfgKey3);
-//    EXPECT_TRUE(it != processor.mMetricsManagers.end());
-//    auto& metricsManager3 = it->second;
-//    EXPECT_FALSE(metricsManager3->isActive());
-//
-//    metricIt = metricsManager3->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager2->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId5) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager3->mAllMetricProducers.end());
-//    auto& metricProducer5 = *metricIt;
-//    EXPECT_FALSE(metricProducer5->isActive());
-//
-//    metricIt = metricsManager3->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager3->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId6) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager3->mAllMetricProducers.end());
-//    auto& metricProducer6 = *metricIt;
-//    EXPECT_FALSE(metricProducer6->isActive());
-//
-//    // No broadcast for active configs should have happened yet.
-//    EXPECT_EQ(broadcastCount, 0);
-//
-//    // Activate all 3 metrics that were not active.
-//    std::vector<AttributionNodeInternal> attributions1 = {CreateAttribution(111, "App1")};
-//    auto event = CreateAcquireWakelockEvent(attributions1, "wl1", 100 + timeBase1);
-//    processor.OnLogEvent(event.get());
-//
-//    // Assert that all 3 configs are active.
-//    EXPECT_TRUE(metricsManager1->isActive());
-//    EXPECT_TRUE(metricsManager2->isActive());
-//    EXPECT_TRUE(metricsManager3->isActive());
-//
-//    // A broadcast should have happened, and all 3 configs should be active in the broadcast.
-//    EXPECT_EQ(broadcastCount, 1);
-//    EXPECT_EQ(activeConfigsBroadcast.size(), 3);
-//    EXPECT_TRUE(std::find(activeConfigsBroadcast.begin(), activeConfigsBroadcast.end(), cfgId1)
-//            != activeConfigsBroadcast.end());
-//    EXPECT_TRUE(std::find(activeConfigsBroadcast.begin(), activeConfigsBroadcast.end(), cfgId2)
-//            != activeConfigsBroadcast.end());
-//    EXPECT_TRUE(std::find(activeConfigsBroadcast.begin(), activeConfigsBroadcast.end(), cfgId3)
-//            != activeConfigsBroadcast.end());
-//
-//    // When we shut down, metrics 3 & 5 have 100ns remaining, metric 6 has 100s + 100ns.
-//    int64_t shutDownTime = timeBase1 + 100 * NS_PER_SEC;
-//    processor.SaveActiveConfigsToDisk(shutDownTime);
-//    const int64_t ttl3 = event->GetElapsedTimestampNs() +
-//            metric3ActivationTrigger->ttl_seconds() * NS_PER_SEC - shutDownTime;
-//    const int64_t ttl5 = event->GetElapsedTimestampNs() +
-//            metric5ActivationTrigger->ttl_seconds() * NS_PER_SEC - shutDownTime;
-//    const int64_t ttl6 = event->GetElapsedTimestampNs() +
-//            metric6ActivationTrigger->ttl_seconds() * NS_PER_SEC - shutDownTime;
-//
-//    // Create a second StatsLogProcessor and push the same 3 configs.
-//    long timeBase2 = 1000;
-//    sp<StatsLogProcessor> processor2 =
-//            CreateStatsLogProcessor(timeBase2, timeBase2, config1, cfgKey1);
-//    processor2->OnConfigUpdated(timeBase2, cfgKey2, config2);
-//    processor2->OnConfigUpdated(timeBase2, cfgKey3, config3);
-//
-//    EXPECT_EQ(3, processor2->mMetricsManagers.size());
-//
-//    // First config and both metrics are active.
-//    it = processor2->mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor2->mMetricsManagers.end());
-//    auto& metricsManager1001 = it->second;
-//    EXPECT_TRUE(metricsManager1001->isActive());
-//
-//    metricIt = metricsManager1001->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1001->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId1) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1001->mAllMetricProducers.end());
-//    auto& metricProducer1001 = *metricIt;
-//    EXPECT_TRUE(metricProducer1001->isActive());
-//
-//    metricIt = metricsManager1001->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1001->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId2) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1001->mAllMetricProducers.end());
-//    auto& metricProducer1002 = *metricIt;
-//    EXPECT_TRUE(metricProducer1002->isActive());
-//
-//    // Second config is active. Metric 3 is inactive, metric 4 is active.
-//    it = processor2->mMetricsManagers.find(cfgKey2);
-//    EXPECT_TRUE(it != processor2->mMetricsManagers.end());
-//    auto& metricsManager1002 = it->second;
-//    EXPECT_TRUE(metricsManager1002->isActive());
-//
-//    metricIt = metricsManager1002->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1002->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId3) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1002->mAllMetricProducers.end());
-//    auto& metricProducer1003 = *metricIt;
-//    EXPECT_FALSE(metricProducer1003->isActive());
-//
-//    metricIt = metricsManager1002->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1002->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId4) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1002->mAllMetricProducers.end());
-//    auto& metricProducer1004 = *metricIt;
-//    EXPECT_TRUE(metricProducer1004->isActive());
-//
-//    // Config 3 is inactive. both metrics are inactive.
-//    it = processor2->mMetricsManagers.find(cfgKey3);
-//    EXPECT_TRUE(it != processor2->mMetricsManagers.end());
-//    auto& metricsManager1003 = it->second;
-//    EXPECT_FALSE(metricsManager1003->isActive());
-//    EXPECT_EQ(2, metricsManager1003->mAllMetricProducers.size());
-//
-//    metricIt = metricsManager1003->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1002->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId5) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1003->mAllMetricProducers.end());
-//    auto& metricProducer1005 = *metricIt;
-//    EXPECT_FALSE(metricProducer1005->isActive());
-//
-//    metricIt = metricsManager1003->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1003->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId6) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1003->mAllMetricProducers.end());
-//    auto& metricProducer1006 = *metricIt;
-//    EXPECT_FALSE(metricProducer1006->isActive());
-//
-//    // Assert that all 3 metrics with activation are inactive and that the ttls were properly set.
-//    EXPECT_FALSE(metricProducer1003->isActive());
-//    const auto& activation1003 = metricProducer1003->mEventActivationMap.begin()->second;
-//    EXPECT_EQ(100 * NS_PER_SEC, activation1003->ttl_ns);
-//    EXPECT_EQ(0, activation1003->start_ns);
-//    EXPECT_FALSE(metricProducer1005->isActive());
-//    const auto& activation1005 = metricProducer1005->mEventActivationMap.begin()->second;
-//    EXPECT_EQ(100 * NS_PER_SEC, activation1005->ttl_ns);
-//    EXPECT_EQ(0, activation1005->start_ns);
-//    EXPECT_FALSE(metricProducer1006->isActive());
-//    const auto& activation1006 = metricProducer1006->mEventActivationMap.begin()->second;
-//    EXPECT_EQ(200 * NS_PER_SEC, activation1006->ttl_ns);
-//    EXPECT_EQ(0, activation1006->start_ns);
-//
-//    processor2->LoadActiveConfigsFromDisk();
-//
-//    // After loading activations from disk, assert that all 3 metrics are active.
-//    EXPECT_TRUE(metricProducer1003->isActive());
-//    EXPECT_EQ(timeBase2 + ttl3 - activation1003->ttl_ns, activation1003->start_ns);
-//    EXPECT_TRUE(metricProducer1005->isActive());
-//    EXPECT_EQ(timeBase2 + ttl5 - activation1005->ttl_ns, activation1005->start_ns);
-//    EXPECT_TRUE(metricProducer1006->isActive());
-//    EXPECT_EQ(timeBase2 + ttl6 - activation1006->ttl_ns, activation1003->start_ns);
-//
-//    // Make sure no more broadcasts have happened.
-//    EXPECT_EQ(broadcastCount, 1);
-//}
-//
-//TEST(StatsLogProcessorTest, TestActivationOnBoot) {
-//    int uid = 1111;
-//
-//    StatsdConfig config1;
-//    config1.set_id(12341);
-//    config1.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
-//    auto wakelockAcquireMatcher = CreateAcquireWakelockAtomMatcher();
-//    *config1.add_atom_matcher() = wakelockAcquireMatcher;
-//
-//    long metricId1 = 1234561;
-//    long metricId2 = 1234562;
-//    auto countMetric1 = config1.add_count_metric();
-//    countMetric1->set_id(metricId1);
-//    countMetric1->set_what(wakelockAcquireMatcher.id());
-//    countMetric1->set_bucket(FIVE_MINUTES);
-//
-//    auto countMetric2 = config1.add_count_metric();
-//    countMetric2->set_id(metricId2);
-//    countMetric2->set_what(wakelockAcquireMatcher.id());
-//    countMetric2->set_bucket(FIVE_MINUTES);
-//
-//    auto metric1Activation = config1.add_metric_activation();
-//    metric1Activation->set_metric_id(metricId1);
-//    metric1Activation->set_activation_type(ACTIVATE_ON_BOOT);
-//    auto metric1ActivationTrigger = metric1Activation->add_event_activation();
-//    metric1ActivationTrigger->set_atom_matcher_id(wakelockAcquireMatcher.id());
-//    metric1ActivationTrigger->set_ttl_seconds(100);
-//
-//    ConfigKey cfgKey1(uid, 12341);
-//    long timeBase1 = 1;
-//    sp<StatsLogProcessor> processor =
-//            CreateStatsLogProcessor(timeBase1, timeBase1, config1, cfgKey1);
-//
-//    EXPECT_EQ(1, processor->mMetricsManagers.size());
-//    auto it = processor->mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor->mMetricsManagers.end());
-//    auto& metricsManager1 = it->second;
-//    EXPECT_TRUE(metricsManager1->isActive());
-//
-//    auto metricIt = metricsManager1->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId1) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1->mAllMetricProducers.end());
-//    auto& metricProducer1 = *metricIt;
-//    EXPECT_FALSE(metricProducer1->isActive());
-//
-//    metricIt = metricsManager1->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId2) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1->mAllMetricProducers.end());
-//    auto& metricProducer2 = *metricIt;
-//    EXPECT_TRUE(metricProducer2->isActive());
-//
-//    const auto& activation1 = metricProducer1->mEventActivationMap.begin()->second;
-//    EXPECT_EQ(100 * NS_PER_SEC, activation1->ttl_ns);
-//    EXPECT_EQ(0, activation1->start_ns);
-//    EXPECT_EQ(kNotActive, activation1->state);
-//
-//    std::vector<AttributionNodeInternal> attributions1 = {CreateAttribution(111, "App1")};
-//    auto event = CreateAcquireWakelockEvent(attributions1, "wl1", 100 + timeBase1);
-//    processor->OnLogEvent(event.get());
-//
-//    EXPECT_FALSE(metricProducer1->isActive());
-//    EXPECT_EQ(0, activation1->start_ns);
-//    EXPECT_EQ(kActiveOnBoot, activation1->state);
-//
-//    int64_t shutDownTime = timeBase1 + 100 * NS_PER_SEC;
-//    processor->SaveActiveConfigsToDisk(shutDownTime);
-//    EXPECT_FALSE(metricProducer1->isActive());
-//    const int64_t ttl1 = metric1ActivationTrigger->ttl_seconds() * NS_PER_SEC;
-//
-//    long timeBase2 = 1000;
-//    sp<StatsLogProcessor> processor2 =
-//            CreateStatsLogProcessor(timeBase2, timeBase2, config1, cfgKey1);
-//
-//    EXPECT_EQ(1, processor2->mMetricsManagers.size());
-//    it = processor2->mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor2->mMetricsManagers.end());
-//    auto& metricsManager1001 = it->second;
-//    EXPECT_TRUE(metricsManager1001->isActive());
-//
-//    metricIt = metricsManager1001->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1001->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId1) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1001->mAllMetricProducers.end());
-//    auto& metricProducer1001 = *metricIt;
-//    EXPECT_FALSE(metricProducer1001->isActive());
-//
-//    metricIt = metricsManager1001->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1001->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId2) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1001->mAllMetricProducers.end());
-//    auto& metricProducer1002 = *metricIt;
-//    EXPECT_TRUE(metricProducer1002->isActive());
-//
-//    const auto& activation1001 = metricProducer1001->mEventActivationMap.begin()->second;
-//    EXPECT_EQ(100 * NS_PER_SEC, activation1001->ttl_ns);
-//    EXPECT_EQ(0, activation1001->start_ns);
-//    EXPECT_EQ(kNotActive, activation1001->state);
-//
-//    processor2->LoadActiveConfigsFromDisk();
-//
-//    EXPECT_TRUE(metricProducer1001->isActive());
-//    EXPECT_EQ(timeBase2 + ttl1 - activation1001->ttl_ns, activation1001->start_ns);
-//    EXPECT_EQ(kActive, activation1001->state);
-//}
-//
-//TEST(StatsLogProcessorTest, TestActivationOnBootMultipleActivations) {
-//    int uid = 1111;
-//
-//    // Create config with 2 metrics:
-//    // Metric 1: Activate on boot with 2 activations
-//    // Metric 2: Always active
-//    StatsdConfig config1;
-//    config1.set_id(12341);
-//    config1.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
-//    auto wakelockAcquireMatcher = CreateAcquireWakelockAtomMatcher();
-//    auto screenOnMatcher = CreateScreenTurnedOnAtomMatcher();
-//    *config1.add_atom_matcher() = wakelockAcquireMatcher;
-//    *config1.add_atom_matcher() = screenOnMatcher;
-//
-//    long metricId1 = 1234561;
-//    long metricId2 = 1234562;
-//
-//    auto countMetric1 = config1.add_count_metric();
-//    countMetric1->set_id(metricId1);
-//    countMetric1->set_what(wakelockAcquireMatcher.id());
-//    countMetric1->set_bucket(FIVE_MINUTES);
-//
-//    auto countMetric2 = config1.add_count_metric();
-//    countMetric2->set_id(metricId2);
-//    countMetric2->set_what(wakelockAcquireMatcher.id());
-//    countMetric2->set_bucket(FIVE_MINUTES);
-//
-//    auto metric1Activation = config1.add_metric_activation();
-//    metric1Activation->set_metric_id(metricId1);
-//    metric1Activation->set_activation_type(ACTIVATE_ON_BOOT);
-//    auto metric1ActivationTrigger1 = metric1Activation->add_event_activation();
-//    metric1ActivationTrigger1->set_atom_matcher_id(wakelockAcquireMatcher.id());
-//    metric1ActivationTrigger1->set_ttl_seconds(100);
-//    auto metric1ActivationTrigger2 = metric1Activation->add_event_activation();
-//    metric1ActivationTrigger2->set_atom_matcher_id(screenOnMatcher.id());
-//    metric1ActivationTrigger2->set_ttl_seconds(200);
-//
-//    ConfigKey cfgKey1(uid, 12341);
-//    long timeBase1 = 1;
-//    sp<StatsLogProcessor> processor =
-//            CreateStatsLogProcessor(timeBase1, timeBase1, config1, cfgKey1);
-//
-//    // Metric 1 is not active.
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_EQ(1, processor->mMetricsManagers.size());
-//    auto it = processor->mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor->mMetricsManagers.end());
-//    auto& metricsManager1 = it->second;
-//    EXPECT_TRUE(metricsManager1->isActive());
-//
-//    auto metricIt = metricsManager1->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId1) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1->mAllMetricProducers.end());
-//    auto& metricProducer1 = *metricIt;
-//    EXPECT_FALSE(metricProducer1->isActive());
-//
-//    metricIt = metricsManager1->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId2) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1->mAllMetricProducers.end());
-//    auto& metricProducer2 = *metricIt;
-//    EXPECT_TRUE(metricProducer2->isActive());
-//
-//    int i = 0;
-//    for (; i < metricsManager1->mAllAtomMatchers.size(); i++) {
-//        if (metricsManager1->mAllAtomMatchers[i]->getId() ==
-//                metric1ActivationTrigger1->atom_matcher_id()) {
-//            break;
-//        }
-//    }
-//    const auto& activation1 = metricProducer1->mEventActivationMap.at(i);
-//    EXPECT_EQ(100 * NS_PER_SEC, activation1->ttl_ns);
-//    EXPECT_EQ(0, activation1->start_ns);
-//    EXPECT_EQ(kNotActive, activation1->state);
-//
-//    i = 0;
-//    for (; i < metricsManager1->mAllAtomMatchers.size(); i++) {
-//        if (metricsManager1->mAllAtomMatchers[i]->getId() ==
-//                metric1ActivationTrigger2->atom_matcher_id()) {
-//            break;
-//        }
-//    }
-//    const auto& activation2 = metricProducer1->mEventActivationMap.at(i);
-//    EXPECT_EQ(200 * NS_PER_SEC, activation2->ttl_ns);
-//    EXPECT_EQ(0, activation2->start_ns);
-//    EXPECT_EQ(kNotActive, activation2->state);
-//    // }}}------------------------------------------------------------------------------
-//
-//    // Trigger Activation 1 for Metric 1
-//    std::vector<AttributionNodeInternal> attributions1 = {CreateAttribution(111, "App1")};
-//    auto event = CreateAcquireWakelockEvent(attributions1, "wl1", 100 + timeBase1);
-//    processor->OnLogEvent(event.get());
-//
-//    // Metric 1 is not active; Activation 1 set to kActiveOnBoot
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_FALSE(metricProducer1->isActive());
-//    EXPECT_EQ(0, activation1->start_ns);
-//    EXPECT_EQ(kActiveOnBoot, activation1->state);
-//    EXPECT_EQ(0, activation2->start_ns);
-//    EXPECT_EQ(kNotActive, activation2->state);
-//
-//    EXPECT_TRUE(metricProducer2->isActive());
-//    // }}}-----------------------------------------------------------------------------
-//
-//    // Simulate shutdown by saving state to disk
-//    int64_t shutDownTime = timeBase1 + 100 * NS_PER_SEC;
-//    processor->SaveActiveConfigsToDisk(shutDownTime);
-//    EXPECT_FALSE(metricProducer1->isActive());
-//    int64_t ttl1 = metric1ActivationTrigger1->ttl_seconds() * NS_PER_SEC;
-//
-//    // Simulate device restarted state by creating new instance of StatsLogProcessor with the
-//    // same config.
-//    long timeBase2 = 1000;
-//    sp<StatsLogProcessor> processor2 =
-//            CreateStatsLogProcessor(timeBase2, timeBase2, config1, cfgKey1);
-//
-//    // Metric 1 is not active.
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_EQ(1, processor2->mMetricsManagers.size());
-//    it = processor2->mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor2->mMetricsManagers.end());
-//    auto& metricsManager1001 = it->second;
-//    EXPECT_TRUE(metricsManager1001->isActive());
-//
-//    metricIt = metricsManager1001->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1001->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId1) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1001->mAllMetricProducers.end());
-//    auto& metricProducer1001 = *metricIt;
-//    EXPECT_FALSE(metricProducer1001->isActive());
-//
-//    metricIt = metricsManager1001->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManager1001->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId2) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManager1001->mAllMetricProducers.end());
-//    auto& metricProducer1002 = *metricIt;
-//    EXPECT_TRUE(metricProducer1002->isActive());
-//
-//    i = 0;
-//    for (; i < metricsManager1001->mAllAtomMatchers.size(); i++) {
-//        if (metricsManager1001->mAllAtomMatchers[i]->getId() ==
-//                metric1ActivationTrigger1->atom_matcher_id()) {
-//            break;
-//        }
-//    }
-//    const auto& activation1001_1 = metricProducer1001->mEventActivationMap.at(i);
-//    EXPECT_EQ(100 * NS_PER_SEC, activation1001_1->ttl_ns);
-//    EXPECT_EQ(0, activation1001_1->start_ns);
-//    EXPECT_EQ(kNotActive, activation1001_1->state);
-//
-//    i = 0;
-//    for (; i < metricsManager1001->mAllAtomMatchers.size(); i++) {
-//        if (metricsManager1001->mAllAtomMatchers[i]->getId() ==
-//                metric1ActivationTrigger2->atom_matcher_id()) {
-//            break;
-//        }
-//    }
-//
-//    const auto& activation1001_2 = metricProducer1001->mEventActivationMap.at(i);
-//    EXPECT_EQ(200 * NS_PER_SEC, activation1001_2->ttl_ns);
-//    EXPECT_EQ(0, activation1001_2->start_ns);
-//    EXPECT_EQ(kNotActive, activation1001_2->state);
-//    // }}}-----------------------------------------------------------------------------------
-//
-//    // Load saved state from disk.
-//    processor2->LoadActiveConfigsFromDisk();
-//
-//    // Metric 1 active; Activation 1 is active, Activation 2 is not active
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_TRUE(metricProducer1001->isActive());
-//    EXPECT_EQ(timeBase2 + ttl1 - activation1001_1->ttl_ns, activation1001_1->start_ns);
-//    EXPECT_EQ(kActive, activation1001_1->state);
-//    EXPECT_EQ(0, activation1001_2->start_ns);
-//    EXPECT_EQ(kNotActive, activation1001_2->state);
-//
-//    EXPECT_TRUE(metricProducer1002->isActive());
-//    // }}}--------------------------------------------------------------------------------
-//
-//    // Trigger Activation 2 for Metric 1.
-//    auto screenOnEvent = CreateScreenStateChangedEvent(
-//            android::view::DISPLAY_STATE_ON,
-//            timeBase2 + 200
-//    );
-//    processor2->OnLogEvent(screenOnEvent.get());
-//
-//    // Metric 1 active; Activation 1 is active, Activation 2 is set to kActiveOnBoot
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_TRUE(metricProducer1001->isActive());
-//    EXPECT_EQ(timeBase2 + ttl1 - activation1001_1->ttl_ns, activation1001_1->start_ns);
-//    EXPECT_EQ(kActive, activation1001_1->state);
-//    EXPECT_EQ(0, activation1001_2->start_ns);
-//    EXPECT_EQ(kActiveOnBoot, activation1001_2->state);
-//
-//    EXPECT_TRUE(metricProducer1002->isActive());
-//    // }}}---------------------------------------------------------------------------
-//
-//    // Simulate shutdown by saving state to disk
-//    shutDownTime = timeBase2 + 50 * NS_PER_SEC;
-//    processor2->SaveActiveConfigsToDisk(shutDownTime);
-//    EXPECT_TRUE(metricProducer1001->isActive());
-//    EXPECT_TRUE(metricProducer1002->isActive());
-//    ttl1 = timeBase2 + metric1ActivationTrigger1->ttl_seconds() * NS_PER_SEC - shutDownTime;
-//    int64_t ttl2 = metric1ActivationTrigger2->ttl_seconds() * NS_PER_SEC;
-//
-//    // Simulate device restarted state by creating new instance of StatsLogProcessor with the
-//    // same config.
-//    long timeBase3 = timeBase2 + 120 * NS_PER_SEC;
-//    sp<StatsLogProcessor> processor3 =
-//            CreateStatsLogProcessor(timeBase3, timeBase3, config1, cfgKey1);
-//
-//    // Metric 1 is not active.
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_EQ(1, processor3->mMetricsManagers.size());
-//    it = processor3->mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor3->mMetricsManagers.end());
-//    auto& metricsManagerTimeBase3 = it->second;
-//    EXPECT_TRUE(metricsManagerTimeBase3->isActive());
-//
-//    metricIt = metricsManagerTimeBase3->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManagerTimeBase3->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId1) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManagerTimeBase3->mAllMetricProducers.end());
-//    auto& metricProducerTimeBase3_1 = *metricIt;
-//    EXPECT_FALSE(metricProducerTimeBase3_1->isActive());
-//
-//    metricIt = metricsManagerTimeBase3->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManagerTimeBase3->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId2) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManagerTimeBase3->mAllMetricProducers.end());
-//    auto& metricProducerTimeBase3_2 = *metricIt;
-//    EXPECT_TRUE(metricProducerTimeBase3_2->isActive());
-//
-//    i = 0;
-//    for (; i < metricsManagerTimeBase3->mAllAtomMatchers.size(); i++) {
-//        if (metricsManagerTimeBase3->mAllAtomMatchers[i]->getId() ==
-//                metric1ActivationTrigger1->atom_matcher_id()) {
-//            break;
-//        }
-//    }
-//    const auto& activationTimeBase3_1 = metricProducerTimeBase3_1->mEventActivationMap.at(i);
-//    EXPECT_EQ(100 * NS_PER_SEC, activationTimeBase3_1->ttl_ns);
-//    EXPECT_EQ(0, activationTimeBase3_1->start_ns);
-//    EXPECT_EQ(kNotActive, activationTimeBase3_1->state);
-//
-//    i = 0;
-//    for (; i < metricsManagerTimeBase3->mAllAtomMatchers.size(); i++) {
-//        if (metricsManagerTimeBase3->mAllAtomMatchers[i]->getId() ==
-//                metric1ActivationTrigger2->atom_matcher_id()) {
-//            break;
-//        }
-//    }
-//
-//    const auto& activationTimeBase3_2 = metricProducerTimeBase3_1->mEventActivationMap.at(i);
-//    EXPECT_EQ(200 * NS_PER_SEC, activationTimeBase3_2->ttl_ns);
-//    EXPECT_EQ(0, activationTimeBase3_2->start_ns);
-//    EXPECT_EQ(kNotActive, activationTimeBase3_2->state);
-//
-//    EXPECT_TRUE(metricProducerTimeBase3_2->isActive());
-//    // }}}----------------------------------------------------------------------------------
-//
-//    // Load saved state from disk.
-//    processor3->LoadActiveConfigsFromDisk();
-//
-//    // Metric 1 active: Activation 1 is active, Activation 2 is active
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_TRUE(metricProducerTimeBase3_1->isActive());
-//    EXPECT_EQ(timeBase3 + ttl1 - activationTimeBase3_1->ttl_ns, activationTimeBase3_1->start_ns);
-//    EXPECT_EQ(kActive, activationTimeBase3_1->state);
-//    EXPECT_EQ(timeBase3 + ttl2 - activationTimeBase3_2->ttl_ns, activationTimeBase3_2->start_ns);
-//    EXPECT_EQ(kActive, activationTimeBase3_2->state);
-//
-//    EXPECT_TRUE(metricProducerTimeBase3_2->isActive());
-//    // }}}-------------------------------------------------------------------------------
-//
-//    // Trigger Activation 2 for Metric 1 again.
-//    screenOnEvent = CreateScreenStateChangedEvent(
-//            android::view::DISPLAY_STATE_ON,
-//            timeBase3 + 100 * NS_PER_SEC
-//    );
-//    processor3->OnLogEvent(screenOnEvent.get());
-//
-//    // Metric 1 active; Activation 1 is not active, Activation 2 is set to active
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_TRUE(metricProducerTimeBase3_1->isActive());
-//    EXPECT_EQ(kNotActive, activationTimeBase3_1->state);
-//    EXPECT_EQ(timeBase3 + ttl2 - activationTimeBase3_2->ttl_ns, activationTimeBase3_2->start_ns);
-//    EXPECT_EQ(kActive, activationTimeBase3_2->state);
-//
-//    EXPECT_TRUE(metricProducerTimeBase3_2->isActive());
-//    // }}}---------------------------------------------------------------------------
-//
-//    // Simulate shutdown by saving state to disk.
-//    shutDownTime = timeBase3 + 500 * NS_PER_SEC;
-//    processor3->SaveActiveConfigsToDisk(shutDownTime);
-//    EXPECT_TRUE(metricProducer1001->isActive());
-//    EXPECT_TRUE(metricProducer1002->isActive());
-//    ttl1 = timeBase3 + ttl1 - shutDownTime;
-//    ttl2 = timeBase3 + metric1ActivationTrigger2->ttl_seconds() * NS_PER_SEC - shutDownTime;
-//
-//    // Simulate device restarted state by creating new instance of StatsLogProcessor with the
-//    // same config.
-//    long timeBase4 = timeBase3 + 600 * NS_PER_SEC;
-//    sp<StatsLogProcessor> processor4 =
-//            CreateStatsLogProcessor(timeBase4, timeBase4, config1, cfgKey1);
-//
-//    // Metric 1 is not active.
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_EQ(1, processor4->mMetricsManagers.size());
-//    it = processor4->mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor4->mMetricsManagers.end());
-//    auto& metricsManagerTimeBase4 = it->second;
-//    EXPECT_TRUE(metricsManagerTimeBase4->isActive());
-//
-//    metricIt = metricsManagerTimeBase4->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManagerTimeBase4->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId1) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManagerTimeBase4->mAllMetricProducers.end());
-//    auto& metricProducerTimeBase4_1 = *metricIt;
-//    EXPECT_FALSE(metricProducerTimeBase4_1->isActive());
-//
-//    metricIt = metricsManagerTimeBase4->mAllMetricProducers.begin();
-//    for (; metricIt != metricsManagerTimeBase4->mAllMetricProducers.end(); metricIt++) {
-//        if ((*metricIt)->getMetricId() == metricId2) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(metricIt != metricsManagerTimeBase4->mAllMetricProducers.end());
-//    auto& metricProducerTimeBase4_2 = *metricIt;
-//    EXPECT_TRUE(metricProducerTimeBase4_2->isActive());
-//
-//    i = 0;
-//    for (; i < metricsManagerTimeBase4->mAllAtomMatchers.size(); i++) {
-//        if (metricsManagerTimeBase4->mAllAtomMatchers[i]->getId() ==
-//                metric1ActivationTrigger1->atom_matcher_id()) {
-//            break;
-//        }
-//    }
-//    const auto& activationTimeBase4_1 = metricProducerTimeBase4_1->mEventActivationMap.at(i);
-//    EXPECT_EQ(100 * NS_PER_SEC, activationTimeBase4_1->ttl_ns);
-//    EXPECT_EQ(0, activationTimeBase4_1->start_ns);
-//    EXPECT_EQ(kNotActive, activationTimeBase4_1->state);
-//
-//    i = 0;
-//    for (; i < metricsManagerTimeBase4->mAllAtomMatchers.size(); i++) {
-//        if (metricsManagerTimeBase4->mAllAtomMatchers[i]->getId() ==
-//                metric1ActivationTrigger2->atom_matcher_id()) {
-//            break;
-//        }
-//    }
-//
-//    const auto& activationTimeBase4_2 = metricProducerTimeBase4_1->mEventActivationMap.at(i);
-//    EXPECT_EQ(200 * NS_PER_SEC, activationTimeBase4_2->ttl_ns);
-//    EXPECT_EQ(0, activationTimeBase4_2->start_ns);
-//    EXPECT_EQ(kNotActive, activationTimeBase4_2->state);
-//
-//    EXPECT_TRUE(metricProducerTimeBase4_2->isActive());
-//    // }}}----------------------------------------------------------------------------------
-//
-//    // Load saved state from disk.
-//    processor4->LoadActiveConfigsFromDisk();
-//
-//    // Metric 1 active: Activation 1 is not active, Activation 2 is not active
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_FALSE(metricProducerTimeBase4_1->isActive());
-//    EXPECT_EQ(kNotActive, activationTimeBase4_1->state);
-//    EXPECT_EQ(kNotActive, activationTimeBase4_2->state);
-//
-//    EXPECT_TRUE(metricProducerTimeBase4_2->isActive());
-//    // }}}-------------------------------------------------------------------------------
-//}
-//
-//TEST(StatsLogProcessorTest, TestActivationOnBootMultipleActivationsDifferentActivationTypes) {
-//    int uid = 1111;
-//
-//    // Create config with 2 metrics:
-//    // Metric 1: Activate on boot with 2 activations
-//    // Metric 2: Always active
-//    StatsdConfig config1;
-//    config1.set_id(12341);
-//    config1.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
-//    auto wakelockAcquireMatcher = CreateAcquireWakelockAtomMatcher();
-//    auto screenOnMatcher = CreateScreenTurnedOnAtomMatcher();
-//    *config1.add_atom_matcher() = wakelockAcquireMatcher;
-//    *config1.add_atom_matcher() = screenOnMatcher;
-//
-//    long metricId1 = 1234561;
-//    long metricId2 = 1234562;
-//
-//    auto countMetric1 = config1.add_count_metric();
-//    countMetric1->set_id(metricId1);
-//    countMetric1->set_what(wakelockAcquireMatcher.id());
-//    countMetric1->set_bucket(FIVE_MINUTES);
-//
-//    auto countMetric2 = config1.add_count_metric();
-//    countMetric2->set_id(metricId2);
-//    countMetric2->set_what(wakelockAcquireMatcher.id());
-//    countMetric2->set_bucket(FIVE_MINUTES);
-//
-//    auto metric1Activation = config1.add_metric_activation();
-//    metric1Activation->set_metric_id(metricId1);
-//    metric1Activation->set_activation_type(ACTIVATE_ON_BOOT);
-//    auto metric1ActivationTrigger1 = metric1Activation->add_event_activation();
-//    metric1ActivationTrigger1->set_atom_matcher_id(wakelockAcquireMatcher.id());
-//    metric1ActivationTrigger1->set_ttl_seconds(100);
-//    auto metric1ActivationTrigger2 = metric1Activation->add_event_activation();
-//    metric1ActivationTrigger2->set_atom_matcher_id(screenOnMatcher.id());
-//    metric1ActivationTrigger2->set_ttl_seconds(200);
-//    metric1ActivationTrigger2->set_activation_type(ACTIVATE_IMMEDIATELY);
-//
-//    ConfigKey cfgKey1(uid, 12341);
-//    long timeBase1 = 1;
-//    sp<StatsLogProcessor> processor1 =
-//            CreateStatsLogProcessor(timeBase1, timeBase1, config1, cfgKey1);
-//
-//    // Metric 1 is not active.
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_EQ(1, processor1->mMetricsManagers.size());
-//    auto it = processor1->mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor1->mMetricsManagers.end());
-//    auto& metricsManager1 = it->second;
-//    EXPECT_TRUE(metricsManager1->isActive());
-//
-//    EXPECT_EQ(metricsManager1->mAllMetricProducers.size(), 2);
-//    // We assume that the index of a MetricProducer within the mAllMetricProducers
-//    // array follows the order in which metrics are added to the config.
-//    auto& metricProducer1_1 = metricsManager1->mAllMetricProducers[0];
-//    EXPECT_EQ(metricProducer1_1->getMetricId(), metricId1);
-//    EXPECT_FALSE(metricProducer1_1->isActive());  // inactive due to associated MetricActivation
-//
-//    auto& metricProducer1_2 = metricsManager1->mAllMetricProducers[1];
-//    EXPECT_EQ(metricProducer1_2->getMetricId(), metricId2);
-//    EXPECT_TRUE(metricProducer1_2->isActive());
-//
-//    EXPECT_EQ(metricProducer1_1->mEventActivationMap.size(), 2);
-//    // The key in mEventActivationMap is the index of the associated atom matcher. We assume
-//    // that matchers are indexed in the order that they are added to the config.
-//    const auto& activation1_1_1 = metricProducer1_1->mEventActivationMap.at(0);
-//    EXPECT_EQ(100 * NS_PER_SEC, activation1_1_1->ttl_ns);
-//    EXPECT_EQ(0, activation1_1_1->start_ns);
-//    EXPECT_EQ(kNotActive, activation1_1_1->state);
-//    EXPECT_EQ(ACTIVATE_ON_BOOT, activation1_1_1->activationType);
-//
-//    const auto& activation1_1_2 = metricProducer1_1->mEventActivationMap.at(1);
-//    EXPECT_EQ(200 * NS_PER_SEC, activation1_1_2->ttl_ns);
-//    EXPECT_EQ(0, activation1_1_2->start_ns);
-//    EXPECT_EQ(kNotActive, activation1_1_2->state);
-//    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation1_1_2->activationType);
-//    // }}}------------------------------------------------------------------------------
-//
-//    // Trigger Activation 1 for Metric 1
-//    std::vector<AttributionNodeInternal> attributions1 = {CreateAttribution(111, "App1")};
-//    auto event = CreateAcquireWakelockEvent(attributions1, "wl1", 100 + timeBase1);
-//    processor1->OnLogEvent(event.get());
-//
-//    // Metric 1 is not active; Activation 1 set to kActiveOnBoot
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_FALSE(metricProducer1_1->isActive());
-//    EXPECT_EQ(0, activation1_1_1->start_ns);
-//    EXPECT_EQ(kActiveOnBoot, activation1_1_1->state);
-//    EXPECT_EQ(0, activation1_1_2->start_ns);
-//    EXPECT_EQ(kNotActive, activation1_1_2->state);
-//
-//    EXPECT_TRUE(metricProducer1_2->isActive());
-//    // }}}-----------------------------------------------------------------------------
-//
-//    // Simulate shutdown by saving state to disk
-//    int64_t shutDownTime = timeBase1 + 100 * NS_PER_SEC;
-//    processor1->SaveActiveConfigsToDisk(shutDownTime);
-//    EXPECT_FALSE(metricProducer1_1->isActive());
-//
-//    // Simulate device restarted state by creating new instance of StatsLogProcessor with the
-//    // same config.
-//    long timeBase2 = 1000;
-//    sp<StatsLogProcessor> processor2 =
-//            CreateStatsLogProcessor(timeBase2, timeBase2, config1, cfgKey1);
-//
-//    // Metric 1 is not active.
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_EQ(1, processor2->mMetricsManagers.size());
-//    it = processor2->mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor2->mMetricsManagers.end());
-//    auto& metricsManager2 = it->second;
-//    EXPECT_TRUE(metricsManager2->isActive());
-//
-//    EXPECT_EQ(metricsManager2->mAllMetricProducers.size(), 2);
-//    // We assume that the index of a MetricProducer within the mAllMetricProducers
-//    // array follows the order in which metrics are added to the config.
-//    auto& metricProducer2_1 = metricsManager2->mAllMetricProducers[0];
-//    EXPECT_EQ(metricProducer2_1->getMetricId(), metricId1);
-//    EXPECT_FALSE(metricProducer2_1->isActive());
-//
-//    auto& metricProducer2_2 = metricsManager2->mAllMetricProducers[1];
-//    EXPECT_EQ(metricProducer2_2->getMetricId(), metricId2);
-//    EXPECT_TRUE(metricProducer2_2->isActive());
-//
-//    EXPECT_EQ(metricProducer2_1->mEventActivationMap.size(), 2);
-//    // The key in mEventActivationMap is the index of the associated atom matcher. We assume
-//    // that matchers are indexed in the order that they are added to the config.
-//    const auto& activation2_1_1 = metricProducer2_1->mEventActivationMap.at(0);
-//    EXPECT_EQ(100 * NS_PER_SEC, activation2_1_1->ttl_ns);
-//    EXPECT_EQ(0, activation2_1_1->start_ns);
-//    EXPECT_EQ(kNotActive, activation2_1_1->state);
-//    EXPECT_EQ(ACTIVATE_ON_BOOT, activation2_1_1->activationType);
-//
-//    const auto& activation2_1_2 = metricProducer2_1->mEventActivationMap.at(1);
-//    EXPECT_EQ(200 * NS_PER_SEC, activation2_1_2->ttl_ns);
-//    EXPECT_EQ(0, activation2_1_2->start_ns);
-//    EXPECT_EQ(kNotActive, activation2_1_2->state);
-//    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation2_1_2->activationType);
-//    // }}}-----------------------------------------------------------------------------------
-//
-//    // Load saved state from disk.
-//    processor2->LoadActiveConfigsFromDisk();
-//
-//    // Metric 1 active; Activation 1 is active, Activation 2 is not active
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_TRUE(metricProducer2_1->isActive());
-//    int64_t ttl1 = metric1ActivationTrigger1->ttl_seconds() * NS_PER_SEC;
-//    EXPECT_EQ(timeBase2 + ttl1 - activation2_1_1->ttl_ns, activation2_1_1->start_ns);
-//    EXPECT_EQ(kActive, activation2_1_1->state);
-//    EXPECT_EQ(0, activation2_1_2->start_ns);
-//    EXPECT_EQ(kNotActive, activation2_1_2->state);
-//
-//    EXPECT_TRUE(metricProducer2_2->isActive());
-//    // }}}--------------------------------------------------------------------------------
-//
-//    // Trigger Activation 2 for Metric 1.
-//    auto screenOnEvent = CreateScreenStateChangedEvent(
-//            android::view::DISPLAY_STATE_ON,
-//            timeBase2 + 200
-//    );
-//    processor2->OnLogEvent(screenOnEvent.get());
-//
-//    // Metric 1 active; Activation 1 is active, Activation 2 is active
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_TRUE(metricProducer2_1->isActive());
-//    EXPECT_EQ(timeBase2 + ttl1 - activation2_1_1->ttl_ns, activation2_1_1->start_ns);
-//    EXPECT_EQ(kActive, activation2_1_1->state);
-//    EXPECT_EQ(screenOnEvent->GetElapsedTimestampNs(), activation2_1_2->start_ns);
-//    EXPECT_EQ(kActive, activation2_1_2->state);
-//
-//    EXPECT_TRUE(metricProducer2_2->isActive());
-//    // }}}---------------------------------------------------------------------------
-//
-//    // Simulate shutdown by saving state to disk
-//    shutDownTime = timeBase2 + 50 * NS_PER_SEC;
-//    processor2->SaveActiveConfigsToDisk(shutDownTime);
-//    EXPECT_TRUE(metricProducer2_1->isActive());
-//    EXPECT_TRUE(metricProducer2_2->isActive());
-//    ttl1 -= shutDownTime - timeBase2;
-//    int64_t ttl2 = metric1ActivationTrigger2->ttl_seconds() * NS_PER_SEC
-//            - (shutDownTime - screenOnEvent->GetElapsedTimestampNs());
-//
-//    // Simulate device restarted state by creating new instance of StatsLogProcessor with the
-//    // same config.
-//    long timeBase3 = timeBase2 + 120 * NS_PER_SEC;
-//    sp<StatsLogProcessor> processor3 =
-//            CreateStatsLogProcessor(timeBase3, timeBase3, config1, cfgKey1);
-//
-//    // Metric 1 is not active.
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_EQ(1, processor3->mMetricsManagers.size());
-//    it = processor3->mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor3->mMetricsManagers.end());
-//    auto& metricsManager3 = it->second;
-//    EXPECT_TRUE(metricsManager3->isActive());
-//
-//    EXPECT_EQ(metricsManager3->mAllMetricProducers.size(), 2);
-//    // We assume that the index of a MetricProducer within the mAllMetricProducers
-//    // array follows the order in which metrics are added to the config.
-//    auto& metricProducer3_1 = metricsManager3->mAllMetricProducers[0];
-//    EXPECT_EQ(metricProducer3_1->getMetricId(), metricId1);
-//    EXPECT_FALSE(metricProducer3_1->isActive());
-//
-//    auto& metricProducer3_2 = metricsManager3->mAllMetricProducers[1];
-//    EXPECT_EQ(metricProducer3_2->getMetricId(), metricId2);
-//    EXPECT_TRUE(metricProducer3_2->isActive());
-//
-//    EXPECT_EQ(metricProducer3_1->mEventActivationMap.size(), 2);
-//    // The key in mEventActivationMap is the index of the associated atom matcher. We assume
-//    // that matchers are indexed in the order that they are added to the config.
-//    const auto& activation3_1_1 = metricProducer3_1->mEventActivationMap.at(0);
-//    EXPECT_EQ(100 * NS_PER_SEC, activation3_1_1->ttl_ns);
-//    EXPECT_EQ(0, activation3_1_1->start_ns);
-//    EXPECT_EQ(kNotActive, activation3_1_1->state);
-//    EXPECT_EQ(ACTIVATE_ON_BOOT, activation3_1_1->activationType);
-//
-//    const auto& activation3_1_2 = metricProducer3_1->mEventActivationMap.at(1);
-//    EXPECT_EQ(200 * NS_PER_SEC, activation3_1_2->ttl_ns);
-//    EXPECT_EQ(0, activation3_1_2->start_ns);
-//    EXPECT_EQ(kNotActive, activation3_1_2->state);
-//    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation3_1_2->activationType);
-//    // }}}----------------------------------------------------------------------------------
-//
-//    // Load saved state from disk.
-//    processor3->LoadActiveConfigsFromDisk();
-//
-//    // Metric 1 active: Activation 1 is active, Activation 2 is active
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_TRUE(metricProducer3_1->isActive());
-//    EXPECT_EQ(timeBase3 + ttl1 - activation3_1_1->ttl_ns, activation3_1_1->start_ns);
-//    EXPECT_EQ(kActive, activation3_1_1->state);
-//    EXPECT_EQ(timeBase3 + ttl2 - activation3_1_2->ttl_ns, activation3_1_2->start_ns);
-//    EXPECT_EQ(kActive, activation3_1_2->state);
-//
-//    EXPECT_TRUE(metricProducer3_2->isActive());
-//    // }}}-------------------------------------------------------------------------------
-//
-//
-//    // Trigger Activation 2 for Metric 1 again.
-//    screenOnEvent = CreateScreenStateChangedEvent(
-//            android::view::DISPLAY_STATE_ON,
-//            timeBase3 + 100 * NS_PER_SEC
-//    );
-//    processor3->OnLogEvent(screenOnEvent.get());
-//
-//    // Metric 1 active; Activation 1 is inactive (above screenOnEvent causes ttl1 to expire),
-//    //                  Activation 2 is set to active
-//    // Metric 2 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_TRUE(metricProducer3_1->isActive());
-//    EXPECT_EQ(kNotActive, activation3_1_1->state);
-//    EXPECT_EQ(screenOnEvent->GetElapsedTimestampNs(), activation3_1_2->start_ns);
-//    EXPECT_EQ(kActive, activation3_1_2->state);
-//
-//    EXPECT_TRUE(metricProducer3_2->isActive());
-//    // }}}---------------------------------------------------------------------------
-//}
-//
-//TEST(StatsLogProcessorTest, TestActivationsPersistAcrossSystemServerRestart) {
-//    int uid = 9876;
-//    long configId = 12341;
-//
-//    // Create config with 3 metrics:
-//    // Metric 1: Activate on 2 activations, 1 on boot, 1 immediate.
-//    // Metric 2: Activate on 2 activations, 1 on boot, 1 immediate.
-//    // Metric 3: Always active
-//    StatsdConfig config1;
-//    config1.set_id(configId);
-//    config1.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
-//    auto wakelockAcquireMatcher = CreateAcquireWakelockAtomMatcher();
-//    auto screenOnMatcher = CreateScreenTurnedOnAtomMatcher();
-//    auto jobStartMatcher = CreateStartScheduledJobAtomMatcher();
-//    auto jobFinishMatcher = CreateFinishScheduledJobAtomMatcher();
-//    *config1.add_atom_matcher() = wakelockAcquireMatcher;
-//    *config1.add_atom_matcher() = screenOnMatcher;
-//    *config1.add_atom_matcher() = jobStartMatcher;
-//    *config1.add_atom_matcher() = jobFinishMatcher;
-//
-//    long metricId1 = 1234561;
-//    long metricId2 = 1234562;
-//    long metricId3 = 1234563;
-//
-//    auto countMetric1 = config1.add_count_metric();
-//    countMetric1->set_id(metricId1);
-//    countMetric1->set_what(wakelockAcquireMatcher.id());
-//    countMetric1->set_bucket(FIVE_MINUTES);
-//
-//    auto countMetric2 = config1.add_count_metric();
-//    countMetric2->set_id(metricId2);
-//    countMetric2->set_what(wakelockAcquireMatcher.id());
-//    countMetric2->set_bucket(FIVE_MINUTES);
-//
-//    auto countMetric3 = config1.add_count_metric();
-//    countMetric3->set_id(metricId3);
-//    countMetric3->set_what(wakelockAcquireMatcher.id());
-//    countMetric3->set_bucket(FIVE_MINUTES);
-//
-//    // Metric 1 activates on boot for wakelock acquire, immediately for screen on.
-//    auto metric1Activation = config1.add_metric_activation();
-//    metric1Activation->set_metric_id(metricId1);
-//    auto metric1ActivationTrigger1 = metric1Activation->add_event_activation();
-//    metric1ActivationTrigger1->set_atom_matcher_id(wakelockAcquireMatcher.id());
-//    metric1ActivationTrigger1->set_ttl_seconds(100);
-//    metric1ActivationTrigger1->set_activation_type(ACTIVATE_ON_BOOT);
-//    auto metric1ActivationTrigger2 = metric1Activation->add_event_activation();
-//    metric1ActivationTrigger2->set_atom_matcher_id(screenOnMatcher.id());
-//    metric1ActivationTrigger2->set_ttl_seconds(200);
-//    metric1ActivationTrigger2->set_activation_type(ACTIVATE_IMMEDIATELY);
-//
-//    // Metric 2 activates on boot for scheduled job start, immediately for scheduled job finish.
-//    auto metric2Activation = config1.add_metric_activation();
-//    metric2Activation->set_metric_id(metricId2);
-//    auto metric2ActivationTrigger1 = metric2Activation->add_event_activation();
-//    metric2ActivationTrigger1->set_atom_matcher_id(jobStartMatcher.id());
-//    metric2ActivationTrigger1->set_ttl_seconds(100);
-//    metric2ActivationTrigger1->set_activation_type(ACTIVATE_ON_BOOT);
-//    auto metric2ActivationTrigger2 = metric2Activation->add_event_activation();
-//    metric2ActivationTrigger2->set_atom_matcher_id(jobFinishMatcher.id());
-//    metric2ActivationTrigger2->set_ttl_seconds(200);
-//    metric2ActivationTrigger2->set_activation_type(ACTIVATE_IMMEDIATELY);
-//
-//    // Send the config.
-//    shared_ptr<StatsService> service = SharedRefBase::make<StatsService>(nullptr, nullptr);
-//    string serialized = config1.SerializeAsString();
-//    service->addConfigurationChecked(uid, configId, {serialized.begin(), serialized.end()});
-//
-//    // Make sure the config is stored on disk. Otherwise, we will not reset on system server death.
-//    StatsdConfig tmpConfig;
-//    ConfigKey cfgKey1(uid, configId);
-//    EXPECT_TRUE(StorageManager::readConfigFromDisk(cfgKey1, &tmpConfig));
-//
-//    // Metric 1 is not active.
-//    // Metric 2 is not active.
-//    // Metric 3 is active.
-//    // {{{---------------------------------------------------------------------------
-//    sp<StatsLogProcessor> processor = service->mProcessor;
-//    EXPECT_EQ(1, processor->mMetricsManagers.size());
-//    auto it = processor->mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor->mMetricsManagers.end());
-//    auto& metricsManager1 = it->second;
-//    EXPECT_TRUE(metricsManager1->isActive());
-//    EXPECT_EQ(3, metricsManager1->mAllMetricProducers.size());
-//
-//    auto& metricProducer1 = metricsManager1->mAllMetricProducers[0];
-//    EXPECT_EQ(metricId1, metricProducer1->getMetricId());
-//    EXPECT_FALSE(metricProducer1->isActive());
-//
-//    auto& metricProducer2 = metricsManager1->mAllMetricProducers[1];
-//    EXPECT_EQ(metricId2, metricProducer2->getMetricId());
-//    EXPECT_FALSE(metricProducer2->isActive());
-//
-//    auto& metricProducer3 = metricsManager1->mAllMetricProducers[2];
-//    EXPECT_EQ(metricId3, metricProducer3->getMetricId());
-//    EXPECT_TRUE(metricProducer3->isActive());
-//
-//    // Check event activations.
-//    EXPECT_EQ(metricsManager1->mAllAtomMatchers.size(), 4);
-//    EXPECT_EQ(metricsManager1->mAllAtomMatchers[0]->getId(),
-//              metric1ActivationTrigger1->atom_matcher_id());
-//    const auto& activation1 = metricProducer1->mEventActivationMap.at(0);
-//    EXPECT_EQ(100 * NS_PER_SEC, activation1->ttl_ns);
-//    EXPECT_EQ(0, activation1->start_ns);
-//    EXPECT_EQ(kNotActive, activation1->state);
-//    EXPECT_EQ(ACTIVATE_ON_BOOT, activation1->activationType);
-//
-//    EXPECT_EQ(metricsManager1->mAllAtomMatchers[1]->getId(),
-//              metric1ActivationTrigger2->atom_matcher_id());
-//    const auto& activation2 = metricProducer1->mEventActivationMap.at(1);
-//    EXPECT_EQ(200 * NS_PER_SEC, activation2->ttl_ns);
-//    EXPECT_EQ(0, activation2->start_ns);
-//    EXPECT_EQ(kNotActive, activation2->state);
-//    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation2->activationType);
-//
-//    EXPECT_EQ(metricsManager1->mAllAtomMatchers[2]->getId(),
-//              metric2ActivationTrigger1->atom_matcher_id());
-//    const auto& activation3 = metricProducer2->mEventActivationMap.at(2);
-//    EXPECT_EQ(100 * NS_PER_SEC, activation3->ttl_ns);
-//    EXPECT_EQ(0, activation3->start_ns);
-//    EXPECT_EQ(kNotActive, activation3->state);
-//    EXPECT_EQ(ACTIVATE_ON_BOOT, activation3->activationType);
-//
-//    EXPECT_EQ(metricsManager1->mAllAtomMatchers[3]->getId(),
-//              metric2ActivationTrigger2->atom_matcher_id());
-//    const auto& activation4 = metricProducer2->mEventActivationMap.at(3);
-//    EXPECT_EQ(200 * NS_PER_SEC, activation4->ttl_ns);
-//    EXPECT_EQ(0, activation4->start_ns);
-//    EXPECT_EQ(kNotActive, activation4->state);
-//    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation4->activationType);
-//    // }}}------------------------------------------------------------------------------
-//
-//    // Trigger Activation 1 for Metric 1. Should activate on boot.
-//    // Trigger Activation 4 for Metric 2. Should activate immediately.
-//    long configAddedTimeNs = metricsManager1->mLastReportTimeNs;
-//    std::vector<AttributionNodeInternal> attributions1 = {CreateAttribution(111, "App1")};
-//    auto event = CreateAcquireWakelockEvent(attributions1, "wl1", 1 + configAddedTimeNs);
-//    processor->OnLogEvent(event.get());
-//
-//    event = CreateFinishScheduledJobEvent(attributions1, "finish1", 2 + configAddedTimeNs);
-//    processor->OnLogEvent(event.get());
-//
-//    // Metric 1 is not active; Activation 1 set to kActiveOnBoot
-//    // Metric 2 is active. Activation 4 set to kActive
-//    // Metric 3 is active.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_FALSE(metricProducer1->isActive());
-//    EXPECT_EQ(0, activation1->start_ns);
-//    EXPECT_EQ(kActiveOnBoot, activation1->state);
-//    EXPECT_EQ(0, activation2->start_ns);
-//    EXPECT_EQ(kNotActive, activation2->state);
-//
-//    EXPECT_TRUE(metricProducer2->isActive());
-//    EXPECT_EQ(0, activation3->start_ns);
-//    EXPECT_EQ(kNotActive, activation3->state);
-//    EXPECT_EQ(2 + configAddedTimeNs, activation4->start_ns);
-//    EXPECT_EQ(kActive, activation4->state);
-//
-//    EXPECT_TRUE(metricProducer3->isActive());
-//    // }}}-----------------------------------------------------------------------------
-//
-//    // Can't fake time with StatsService.
-//    // Lets get a time close to the system server death time and make sure it's sane.
-//    int64_t approximateSystemServerDeath = getElapsedRealtimeNs();
-//    EXPECT_TRUE(approximateSystemServerDeath > 2 + configAddedTimeNs);
-//    EXPECT_TRUE(approximateSystemServerDeath < NS_PER_SEC + configAddedTimeNs);
-//
-//    // System server dies.
-//    service->statsCompanionServiceDiedImpl();
-//
-//    // We should have a new metrics manager. Lets get it and ensure activation status is restored.
-//    // {{{---------------------------------------------------------------------------
-//    EXPECT_EQ(1, processor->mMetricsManagers.size());
-//    it = processor->mMetricsManagers.find(cfgKey1);
-//    EXPECT_TRUE(it != processor->mMetricsManagers.end());
-//    auto& metricsManager2 = it->second;
-//    EXPECT_TRUE(metricsManager2->isActive());
-//    EXPECT_EQ(3, metricsManager2->mAllMetricProducers.size());
-//
-//    auto& metricProducer1001 = metricsManager2->mAllMetricProducers[0];
-//    EXPECT_EQ(metricId1, metricProducer1001->getMetricId());
-//    EXPECT_FALSE(metricProducer1001->isActive());
-//
-//    auto& metricProducer1002 = metricsManager2->mAllMetricProducers[1];
-//    EXPECT_EQ(metricId2, metricProducer1002->getMetricId());
-//    EXPECT_TRUE(metricProducer1002->isActive());
-//
-//    auto& metricProducer1003 = metricsManager2->mAllMetricProducers[2];
-//    EXPECT_EQ(metricId3, metricProducer1003->getMetricId());
-//    EXPECT_TRUE(metricProducer1003->isActive());
-//
-//    // Check event activations.
-//    // Activation 1 is kActiveOnBoot.
-//    // Activation 2 and 3 are not active.
-//    // Activation 4 is active.
-//    EXPECT_EQ(metricsManager2->mAllAtomMatchers.size(), 4);
-//    EXPECT_EQ(metricsManager2->mAllAtomMatchers[0]->getId(),
-//              metric1ActivationTrigger1->atom_matcher_id());
-//    const auto& activation1001 = metricProducer1001->mEventActivationMap.at(0);
-//    EXPECT_EQ(100 * NS_PER_SEC, activation1001->ttl_ns);
-//    EXPECT_EQ(0, activation1001->start_ns);
-//    EXPECT_EQ(kActiveOnBoot, activation1001->state);
-//    EXPECT_EQ(ACTIVATE_ON_BOOT, activation1001->activationType);
-//
-//    EXPECT_EQ(metricsManager2->mAllAtomMatchers[1]->getId(),
-//              metric1ActivationTrigger2->atom_matcher_id());
-//    const auto& activation1002 = metricProducer1001->mEventActivationMap.at(1);
-//    EXPECT_EQ(200 * NS_PER_SEC, activation1002->ttl_ns);
-//    EXPECT_EQ(0, activation1002->start_ns);
-//    EXPECT_EQ(kNotActive, activation1002->state);
-//    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation1002->activationType);
-//
-//    EXPECT_EQ(metricsManager2->mAllAtomMatchers[2]->getId(),
-//              metric2ActivationTrigger1->atom_matcher_id());
-//    const auto& activation1003 = metricProducer1002->mEventActivationMap.at(2);
-//    EXPECT_EQ(100 * NS_PER_SEC, activation1003->ttl_ns);
-//    EXPECT_EQ(0, activation1003->start_ns);
-//    EXPECT_EQ(kNotActive, activation1003->state);
-//    EXPECT_EQ(ACTIVATE_ON_BOOT, activation1003->activationType);
-//
-//    EXPECT_EQ(metricsManager2->mAllAtomMatchers[3]->getId(),
-//              metric2ActivationTrigger2->atom_matcher_id());
-//    const auto& activation1004 = metricProducer1002->mEventActivationMap.at(3);
-//    EXPECT_EQ(200 * NS_PER_SEC, activation1004->ttl_ns);
-//    EXPECT_EQ(2 + configAddedTimeNs, activation1004->start_ns);
-//    EXPECT_EQ(kActive, activation1004->state);
-//    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation1004->activationType);
-//    // }}}------------------------------------------------------------------------------
-//
-//    // Clear the data stored on disk as a result of the system server death.
-//    vector<uint8_t> buffer;
-//    processor->onDumpReport(cfgKey1, configAddedTimeNs + NS_PER_SEC, false, true,
-//                                ADB_DUMP, FAST, &buffer);
-//}
+TEST(StatsLogProcessorTest, TestOnDumpReportEraseData) {
+    // Setup a simple config.
+    StatsdConfig config;
+    config.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
+    auto wakelockAcquireMatcher = CreateAcquireWakelockAtomMatcher();
+    *config.add_atom_matcher() = wakelockAcquireMatcher;
+
+    auto countMetric = config.add_count_metric();
+    countMetric->set_id(123456);
+    countMetric->set_what(wakelockAcquireMatcher.id());
+    countMetric->set_bucket(FIVE_MINUTES);
+
+    ConfigKey cfgKey;
+    sp<StatsLogProcessor> processor = CreateStatsLogProcessor(1, 1, config, cfgKey);
+
+    std::vector<int> attributionUids = {111};
+    std::vector<string> attributionTags = {"App1"};
+    std::unique_ptr<LogEvent> event =
+            CreateAcquireWakelockEvent(2 /*timestamp*/, attributionUids, attributionTags, "wl1");
+    processor->OnLogEvent(event.get());
+
+    vector<uint8_t> bytes;
+    ConfigMetricsReportList output;
+
+    // Dump report WITHOUT erasing data.
+    processor->onDumpReport(cfgKey, 3, true, false /* Do NOT erase data. */, ADB_DUMP, FAST,
+                            &bytes);
+    output.ParseFromArray(bytes.data(), bytes.size());
+    EXPECT_EQ(output.reports_size(), 1);
+    EXPECT_EQ(output.reports(0).metrics_size(), 1);
+    EXPECT_EQ(output.reports(0).metrics(0).count_metrics().data_size(), 1);
+
+    // Dump report WITH erasing data. There should be data since we didn't previously erase it.
+    processor->onDumpReport(cfgKey, 4, true, true /* DO erase data. */, ADB_DUMP, FAST, &bytes);
+    output.ParseFromArray(bytes.data(), bytes.size());
+    EXPECT_EQ(output.reports_size(), 1);
+    EXPECT_EQ(output.reports(0).metrics_size(), 1);
+    EXPECT_EQ(output.reports(0).metrics(0).count_metrics().data_size(), 1);
+
+    // Dump report again. There should be no data since we erased it.
+    processor->onDumpReport(cfgKey, 5, true, true /* DO erase data. */, ADB_DUMP, FAST, &bytes);
+    output.ParseFromArray(bytes.data(), bytes.size());
+    // We don't care whether statsd has a report, as long as it has no count metrics in it.
+    bool noData = output.reports_size() == 0 || output.reports(0).metrics_size() == 0 ||
+                  output.reports(0).metrics(0).count_metrics().data_size() == 0;
+    EXPECT_TRUE(noData);
+}
+
+TEST(StatsLogProcessorTest, TestActiveConfigMetricDiskWriteRead) {
+    int uid = 1111;
+
+    // Setup a simple config, no activation
+    StatsdConfig config1;
+    int64_t cfgId1 = 12341;
+    config1.set_id(cfgId1);
+    config1.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
+    auto wakelockAcquireMatcher = CreateAcquireWakelockAtomMatcher();
+    *config1.add_atom_matcher() = wakelockAcquireMatcher;
+
+    long metricId1 = 1234561;
+    long metricId2 = 1234562;
+    auto countMetric1 = config1.add_count_metric();
+    countMetric1->set_id(metricId1);
+    countMetric1->set_what(wakelockAcquireMatcher.id());
+    countMetric1->set_bucket(FIVE_MINUTES);
+
+    auto countMetric2 = config1.add_count_metric();
+    countMetric2->set_id(metricId2);
+    countMetric2->set_what(wakelockAcquireMatcher.id());
+    countMetric2->set_bucket(FIVE_MINUTES);
+
+    ConfigKey cfgKey1(uid, cfgId1);
+
+    // Add another config, with two metrics, one with activation
+    StatsdConfig config2;
+    int64_t cfgId2 = 12342;
+    config2.set_id(cfgId2);
+    config2.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
+    *config2.add_atom_matcher() = wakelockAcquireMatcher;
+
+    long metricId3 = 1234561;
+    long metricId4 = 1234562;
+
+    auto countMetric3 = config2.add_count_metric();
+    countMetric3->set_id(metricId3);
+    countMetric3->set_what(wakelockAcquireMatcher.id());
+    countMetric3->set_bucket(FIVE_MINUTES);
+
+    auto countMetric4 = config2.add_count_metric();
+    countMetric4->set_id(metricId4);
+    countMetric4->set_what(wakelockAcquireMatcher.id());
+    countMetric4->set_bucket(FIVE_MINUTES);
+
+    auto metric3Activation = config2.add_metric_activation();
+    metric3Activation->set_metric_id(metricId3);
+    metric3Activation->set_activation_type(ACTIVATE_IMMEDIATELY);
+    auto metric3ActivationTrigger = metric3Activation->add_event_activation();
+    metric3ActivationTrigger->set_atom_matcher_id(wakelockAcquireMatcher.id());
+    metric3ActivationTrigger->set_ttl_seconds(100);
+
+    ConfigKey cfgKey2(uid, cfgId2);
+
+    // Add another config, with two metrics, both with activations
+    StatsdConfig config3;
+    int64_t cfgId3 = 12343;
+    config3.set_id(cfgId3);
+    config3.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
+    *config3.add_atom_matcher() = wakelockAcquireMatcher;
+
+    long metricId5 = 1234565;
+    long metricId6 = 1234566;
+    auto countMetric5 = config3.add_count_metric();
+    countMetric5->set_id(metricId5);
+    countMetric5->set_what(wakelockAcquireMatcher.id());
+    countMetric5->set_bucket(FIVE_MINUTES);
+
+    auto countMetric6 = config3.add_count_metric();
+    countMetric6->set_id(metricId6);
+    countMetric6->set_what(wakelockAcquireMatcher.id());
+    countMetric6->set_bucket(FIVE_MINUTES);
+
+    auto metric5Activation = config3.add_metric_activation();
+    metric5Activation->set_metric_id(metricId5);
+    metric5Activation->set_activation_type(ACTIVATE_IMMEDIATELY);
+    auto metric5ActivationTrigger = metric5Activation->add_event_activation();
+    metric5ActivationTrigger->set_atom_matcher_id(wakelockAcquireMatcher.id());
+    metric5ActivationTrigger->set_ttl_seconds(100);
+
+    auto metric6Activation = config3.add_metric_activation();
+    metric6Activation->set_metric_id(metricId6);
+    metric6Activation->set_activation_type(ACTIVATE_IMMEDIATELY);
+    auto metric6ActivationTrigger = metric6Activation->add_event_activation();
+    metric6ActivationTrigger->set_atom_matcher_id(wakelockAcquireMatcher.id());
+    metric6ActivationTrigger->set_ttl_seconds(200);
+
+    ConfigKey cfgKey3(uid, cfgId3);
+
+    sp<UidMap> m = new UidMap();
+    sp<StatsPullerManager> pullerManager = new StatsPullerManager();
+    sp<AlarmMonitor> anomalyAlarmMonitor;
+    sp<AlarmMonitor> subscriberAlarmMonitor;
+    vector<int64_t> activeConfigsBroadcast;
+
+    long timeBase1 = 1;
+    int broadcastCount = 0;
+    StatsLogProcessor processor(
+            m, pullerManager, anomalyAlarmMonitor, subscriberAlarmMonitor, timeBase1,
+            [](const ConfigKey& key) { return true; },
+            [&uid, &broadcastCount, &activeConfigsBroadcast](const int& broadcastUid,
+                                                             const vector<int64_t>& activeConfigs) {
+                broadcastCount++;
+                EXPECT_EQ(broadcastUid, uid);
+                activeConfigsBroadcast.clear();
+                activeConfigsBroadcast.insert(activeConfigsBroadcast.end(), activeConfigs.begin(),
+                                              activeConfigs.end());
+                return true;
+            });
+
+    processor.OnConfigUpdated(1, cfgKey1, config1);
+    processor.OnConfigUpdated(2, cfgKey2, config2);
+    processor.OnConfigUpdated(3, cfgKey3, config3);
+
+    EXPECT_EQ(3, processor.mMetricsManagers.size());
+
+    // Expect the first config and both metrics in it to be active.
+    auto it = processor.mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor.mMetricsManagers.end());
+    auto& metricsManager1 = it->second;
+    EXPECT_TRUE(metricsManager1->isActive());
+
+    auto metricIt = metricsManager1->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId1) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1->mAllMetricProducers.end());
+    auto& metricProducer1 = *metricIt;
+    EXPECT_TRUE(metricProducer1->isActive());
+
+    metricIt = metricsManager1->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId2) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1->mAllMetricProducers.end());
+    auto& metricProducer2 = *metricIt;
+    EXPECT_TRUE(metricProducer2->isActive());
+
+    // Expect config 2 to be active. Metric 3 shouldn't be active, metric 4 should be active.
+    it = processor.mMetricsManagers.find(cfgKey2);
+    EXPECT_TRUE(it != processor.mMetricsManagers.end());
+    auto& metricsManager2 = it->second;
+    EXPECT_TRUE(metricsManager2->isActive());
+
+    metricIt = metricsManager2->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager2->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId3) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager2->mAllMetricProducers.end());
+    auto& metricProducer3 = *metricIt;
+    EXPECT_FALSE(metricProducer3->isActive());
+
+    metricIt = metricsManager2->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager2->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId4) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager2->mAllMetricProducers.end());
+    auto& metricProducer4 = *metricIt;
+    EXPECT_TRUE(metricProducer4->isActive());
+
+    // Expect the third config and both metrics in it to be inactive.
+    it = processor.mMetricsManagers.find(cfgKey3);
+    EXPECT_TRUE(it != processor.mMetricsManagers.end());
+    auto& metricsManager3 = it->second;
+    EXPECT_FALSE(metricsManager3->isActive());
+
+    metricIt = metricsManager3->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager2->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId5) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager3->mAllMetricProducers.end());
+    auto& metricProducer5 = *metricIt;
+    EXPECT_FALSE(metricProducer5->isActive());
+
+    metricIt = metricsManager3->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager3->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId6) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager3->mAllMetricProducers.end());
+    auto& metricProducer6 = *metricIt;
+    EXPECT_FALSE(metricProducer6->isActive());
+
+    // No broadcast for active configs should have happened yet.
+    EXPECT_EQ(broadcastCount, 0);
+
+    // Activate all 3 metrics that were not active.
+    std::vector<int> attributionUids = {111};
+    std::vector<string> attributionTags = {"App1"};
+    std::unique_ptr<LogEvent> event =
+            CreateAcquireWakelockEvent(timeBase1 + 100, attributionUids, attributionTags, "wl1");
+    processor.OnLogEvent(event.get());
+
+    // Assert that all 3 configs are active.
+    EXPECT_TRUE(metricsManager1->isActive());
+    EXPECT_TRUE(metricsManager2->isActive());
+    EXPECT_TRUE(metricsManager3->isActive());
+
+    // A broadcast should have happened, and all 3 configs should be active in the broadcast.
+    EXPECT_EQ(broadcastCount, 1);
+    EXPECT_EQ(activeConfigsBroadcast.size(), 3);
+    EXPECT_TRUE(std::find(activeConfigsBroadcast.begin(), activeConfigsBroadcast.end(), cfgId1) !=
+                activeConfigsBroadcast.end());
+    EXPECT_TRUE(std::find(activeConfigsBroadcast.begin(), activeConfigsBroadcast.end(), cfgId2) !=
+                activeConfigsBroadcast.end());
+    EXPECT_TRUE(std::find(activeConfigsBroadcast.begin(), activeConfigsBroadcast.end(), cfgId3) !=
+                activeConfigsBroadcast.end());
+
+    // When we shut down, metrics 3 & 5 have 100ns remaining, metric 6 has 100s + 100ns.
+    int64_t shutDownTime = timeBase1 + 100 * NS_PER_SEC;
+    processor.SaveActiveConfigsToDisk(shutDownTime);
+    const int64_t ttl3 = event->GetElapsedTimestampNs() +
+                         metric3ActivationTrigger->ttl_seconds() * NS_PER_SEC - shutDownTime;
+    const int64_t ttl5 = event->GetElapsedTimestampNs() +
+                         metric5ActivationTrigger->ttl_seconds() * NS_PER_SEC - shutDownTime;
+    const int64_t ttl6 = event->GetElapsedTimestampNs() +
+                         metric6ActivationTrigger->ttl_seconds() * NS_PER_SEC - shutDownTime;
+
+    // Create a second StatsLogProcessor and push the same 3 configs.
+    long timeBase2 = 1000;
+    sp<StatsLogProcessor> processor2 =
+            CreateStatsLogProcessor(timeBase2, timeBase2, config1, cfgKey1);
+    processor2->OnConfigUpdated(timeBase2, cfgKey2, config2);
+    processor2->OnConfigUpdated(timeBase2, cfgKey3, config3);
+
+    EXPECT_EQ(3, processor2->mMetricsManagers.size());
+
+    // First config and both metrics are active.
+    it = processor2->mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor2->mMetricsManagers.end());
+    auto& metricsManager1001 = it->second;
+    EXPECT_TRUE(metricsManager1001->isActive());
+
+    metricIt = metricsManager1001->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1001->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId1) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1001->mAllMetricProducers.end());
+    auto& metricProducer1001 = *metricIt;
+    EXPECT_TRUE(metricProducer1001->isActive());
+
+    metricIt = metricsManager1001->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1001->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId2) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1001->mAllMetricProducers.end());
+    auto& metricProducer1002 = *metricIt;
+    EXPECT_TRUE(metricProducer1002->isActive());
+
+    // Second config is active. Metric 3 is inactive, metric 4 is active.
+    it = processor2->mMetricsManagers.find(cfgKey2);
+    EXPECT_TRUE(it != processor2->mMetricsManagers.end());
+    auto& metricsManager1002 = it->second;
+    EXPECT_TRUE(metricsManager1002->isActive());
+
+    metricIt = metricsManager1002->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1002->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId3) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1002->mAllMetricProducers.end());
+    auto& metricProducer1003 = *metricIt;
+    EXPECT_FALSE(metricProducer1003->isActive());
+
+    metricIt = metricsManager1002->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1002->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId4) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1002->mAllMetricProducers.end());
+    auto& metricProducer1004 = *metricIt;
+    EXPECT_TRUE(metricProducer1004->isActive());
+
+    // Config 3 is inactive. both metrics are inactive.
+    it = processor2->mMetricsManagers.find(cfgKey3);
+    EXPECT_TRUE(it != processor2->mMetricsManagers.end());
+    auto& metricsManager1003 = it->second;
+    EXPECT_FALSE(metricsManager1003->isActive());
+    EXPECT_EQ(2, metricsManager1003->mAllMetricProducers.size());
+
+    metricIt = metricsManager1003->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1002->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId5) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1003->mAllMetricProducers.end());
+    auto& metricProducer1005 = *metricIt;
+    EXPECT_FALSE(metricProducer1005->isActive());
+
+    metricIt = metricsManager1003->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1003->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId6) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1003->mAllMetricProducers.end());
+    auto& metricProducer1006 = *metricIt;
+    EXPECT_FALSE(metricProducer1006->isActive());
+
+    // Assert that all 3 metrics with activation are inactive and that the ttls were properly set.
+    EXPECT_FALSE(metricProducer1003->isActive());
+    const auto& activation1003 = metricProducer1003->mEventActivationMap.begin()->second;
+    EXPECT_EQ(100 * NS_PER_SEC, activation1003->ttl_ns);
+    EXPECT_EQ(0, activation1003->start_ns);
+    EXPECT_FALSE(metricProducer1005->isActive());
+    const auto& activation1005 = metricProducer1005->mEventActivationMap.begin()->second;
+    EXPECT_EQ(100 * NS_PER_SEC, activation1005->ttl_ns);
+    EXPECT_EQ(0, activation1005->start_ns);
+    EXPECT_FALSE(metricProducer1006->isActive());
+    const auto& activation1006 = metricProducer1006->mEventActivationMap.begin()->second;
+    EXPECT_EQ(200 * NS_PER_SEC, activation1006->ttl_ns);
+    EXPECT_EQ(0, activation1006->start_ns);
+
+    processor2->LoadActiveConfigsFromDisk();
+
+    // After loading activations from disk, assert that all 3 metrics are active.
+    EXPECT_TRUE(metricProducer1003->isActive());
+    EXPECT_EQ(timeBase2 + ttl3 - activation1003->ttl_ns, activation1003->start_ns);
+    EXPECT_TRUE(metricProducer1005->isActive());
+    EXPECT_EQ(timeBase2 + ttl5 - activation1005->ttl_ns, activation1005->start_ns);
+    EXPECT_TRUE(metricProducer1006->isActive());
+    EXPECT_EQ(timeBase2 + ttl6 - activation1006->ttl_ns, activation1003->start_ns);
+
+    // Make sure no more broadcasts have happened.
+    EXPECT_EQ(broadcastCount, 1);
+}
+
+TEST(StatsLogProcessorTest, TestActivationOnBoot) {
+    int uid = 1111;
+
+    StatsdConfig config1;
+    config1.set_id(12341);
+    config1.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
+    auto wakelockAcquireMatcher = CreateAcquireWakelockAtomMatcher();
+    *config1.add_atom_matcher() = wakelockAcquireMatcher;
+
+    long metricId1 = 1234561;
+    long metricId2 = 1234562;
+    auto countMetric1 = config1.add_count_metric();
+    countMetric1->set_id(metricId1);
+    countMetric1->set_what(wakelockAcquireMatcher.id());
+    countMetric1->set_bucket(FIVE_MINUTES);
+
+    auto countMetric2 = config1.add_count_metric();
+    countMetric2->set_id(metricId2);
+    countMetric2->set_what(wakelockAcquireMatcher.id());
+    countMetric2->set_bucket(FIVE_MINUTES);
+
+    auto metric1Activation = config1.add_metric_activation();
+    metric1Activation->set_metric_id(metricId1);
+    metric1Activation->set_activation_type(ACTIVATE_ON_BOOT);
+    auto metric1ActivationTrigger = metric1Activation->add_event_activation();
+    metric1ActivationTrigger->set_atom_matcher_id(wakelockAcquireMatcher.id());
+    metric1ActivationTrigger->set_ttl_seconds(100);
+
+    ConfigKey cfgKey1(uid, 12341);
+    long timeBase1 = 1;
+    sp<StatsLogProcessor> processor =
+            CreateStatsLogProcessor(timeBase1, timeBase1, config1, cfgKey1);
+
+    EXPECT_EQ(1, processor->mMetricsManagers.size());
+    auto it = processor->mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor->mMetricsManagers.end());
+    auto& metricsManager1 = it->second;
+    EXPECT_TRUE(metricsManager1->isActive());
+
+    auto metricIt = metricsManager1->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId1) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1->mAllMetricProducers.end());
+    auto& metricProducer1 = *metricIt;
+    EXPECT_FALSE(metricProducer1->isActive());
+
+    metricIt = metricsManager1->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId2) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1->mAllMetricProducers.end());
+    auto& metricProducer2 = *metricIt;
+    EXPECT_TRUE(metricProducer2->isActive());
+
+    const auto& activation1 = metricProducer1->mEventActivationMap.begin()->second;
+    EXPECT_EQ(100 * NS_PER_SEC, activation1->ttl_ns);
+    EXPECT_EQ(0, activation1->start_ns);
+    EXPECT_EQ(kNotActive, activation1->state);
+
+    std::vector<int> attributionUids = {111};
+    std::vector<string> attributionTags = {"App1"};
+    std::unique_ptr<LogEvent> event =
+            CreateAcquireWakelockEvent(timeBase1 + 100, attributionUids, attributionTags, "wl1");
+    processor->OnLogEvent(event.get());
+
+    EXPECT_FALSE(metricProducer1->isActive());
+    EXPECT_EQ(0, activation1->start_ns);
+    EXPECT_EQ(kActiveOnBoot, activation1->state);
+
+    int64_t shutDownTime = timeBase1 + 100 * NS_PER_SEC;
+    processor->SaveActiveConfigsToDisk(shutDownTime);
+    EXPECT_FALSE(metricProducer1->isActive());
+    const int64_t ttl1 = metric1ActivationTrigger->ttl_seconds() * NS_PER_SEC;
+
+    long timeBase2 = 1000;
+    sp<StatsLogProcessor> processor2 =
+            CreateStatsLogProcessor(timeBase2, timeBase2, config1, cfgKey1);
+
+    EXPECT_EQ(1, processor2->mMetricsManagers.size());
+    it = processor2->mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor2->mMetricsManagers.end());
+    auto& metricsManager1001 = it->second;
+    EXPECT_TRUE(metricsManager1001->isActive());
+
+    metricIt = metricsManager1001->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1001->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId1) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1001->mAllMetricProducers.end());
+    auto& metricProducer1001 = *metricIt;
+    EXPECT_FALSE(metricProducer1001->isActive());
+
+    metricIt = metricsManager1001->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1001->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId2) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1001->mAllMetricProducers.end());
+    auto& metricProducer1002 = *metricIt;
+    EXPECT_TRUE(metricProducer1002->isActive());
+
+    const auto& activation1001 = metricProducer1001->mEventActivationMap.begin()->second;
+    EXPECT_EQ(100 * NS_PER_SEC, activation1001->ttl_ns);
+    EXPECT_EQ(0, activation1001->start_ns);
+    EXPECT_EQ(kNotActive, activation1001->state);
+
+    processor2->LoadActiveConfigsFromDisk();
+
+    EXPECT_TRUE(metricProducer1001->isActive());
+    EXPECT_EQ(timeBase2 + ttl1 - activation1001->ttl_ns, activation1001->start_ns);
+    EXPECT_EQ(kActive, activation1001->state);
+}
+
+TEST(StatsLogProcessorTest, TestActivationOnBootMultipleActivations) {
+    int uid = 1111;
+
+    // Create config with 2 metrics:
+    // Metric 1: Activate on boot with 2 activations
+    // Metric 2: Always active
+    StatsdConfig config1;
+    config1.set_id(12341);
+    config1.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
+    auto wakelockAcquireMatcher = CreateAcquireWakelockAtomMatcher();
+    auto screenOnMatcher = CreateScreenTurnedOnAtomMatcher();
+    *config1.add_atom_matcher() = wakelockAcquireMatcher;
+    *config1.add_atom_matcher() = screenOnMatcher;
+
+    long metricId1 = 1234561;
+    long metricId2 = 1234562;
+
+    auto countMetric1 = config1.add_count_metric();
+    countMetric1->set_id(metricId1);
+    countMetric1->set_what(wakelockAcquireMatcher.id());
+    countMetric1->set_bucket(FIVE_MINUTES);
+
+    auto countMetric2 = config1.add_count_metric();
+    countMetric2->set_id(metricId2);
+    countMetric2->set_what(wakelockAcquireMatcher.id());
+    countMetric2->set_bucket(FIVE_MINUTES);
+
+    auto metric1Activation = config1.add_metric_activation();
+    metric1Activation->set_metric_id(metricId1);
+    metric1Activation->set_activation_type(ACTIVATE_ON_BOOT);
+    auto metric1ActivationTrigger1 = metric1Activation->add_event_activation();
+    metric1ActivationTrigger1->set_atom_matcher_id(wakelockAcquireMatcher.id());
+    metric1ActivationTrigger1->set_ttl_seconds(100);
+    auto metric1ActivationTrigger2 = metric1Activation->add_event_activation();
+    metric1ActivationTrigger2->set_atom_matcher_id(screenOnMatcher.id());
+    metric1ActivationTrigger2->set_ttl_seconds(200);
+
+    ConfigKey cfgKey1(uid, 12341);
+    long timeBase1 = 1;
+    sp<StatsLogProcessor> processor =
+            CreateStatsLogProcessor(timeBase1, timeBase1, config1, cfgKey1);
+
+    // Metric 1 is not active.
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_EQ(1, processor->mMetricsManagers.size());
+    auto it = processor->mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor->mMetricsManagers.end());
+    auto& metricsManager1 = it->second;
+    EXPECT_TRUE(metricsManager1->isActive());
+
+    auto metricIt = metricsManager1->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId1) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1->mAllMetricProducers.end());
+    auto& metricProducer1 = *metricIt;
+    EXPECT_FALSE(metricProducer1->isActive());
+
+    metricIt = metricsManager1->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId2) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1->mAllMetricProducers.end());
+    auto& metricProducer2 = *metricIt;
+    EXPECT_TRUE(metricProducer2->isActive());
+
+    int i = 0;
+    for (; i < metricsManager1->mAllAtomMatchers.size(); i++) {
+        if (metricsManager1->mAllAtomMatchers[i]->getId() ==
+            metric1ActivationTrigger1->atom_matcher_id()) {
+            break;
+        }
+    }
+    const auto& activation1 = metricProducer1->mEventActivationMap.at(i);
+    EXPECT_EQ(100 * NS_PER_SEC, activation1->ttl_ns);
+    EXPECT_EQ(0, activation1->start_ns);
+    EXPECT_EQ(kNotActive, activation1->state);
+
+    i = 0;
+    for (; i < metricsManager1->mAllAtomMatchers.size(); i++) {
+        if (metricsManager1->mAllAtomMatchers[i]->getId() ==
+            metric1ActivationTrigger2->atom_matcher_id()) {
+            break;
+        }
+    }
+    const auto& activation2 = metricProducer1->mEventActivationMap.at(i);
+    EXPECT_EQ(200 * NS_PER_SEC, activation2->ttl_ns);
+    EXPECT_EQ(0, activation2->start_ns);
+    EXPECT_EQ(kNotActive, activation2->state);
+    // }}}------------------------------------------------------------------------------
+
+    // Trigger Activation 1 for Metric 1
+    std::vector<int> attributionUids = {111};
+    std::vector<string> attributionTags = {"App1"};
+    std::unique_ptr<LogEvent> event =
+            CreateAcquireWakelockEvent(timeBase1 + 100, attributionUids, attributionTags, "wl1");
+    processor->OnLogEvent(event.get());
+
+    // Metric 1 is not active; Activation 1 set to kActiveOnBoot
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_FALSE(metricProducer1->isActive());
+    EXPECT_EQ(0, activation1->start_ns);
+    EXPECT_EQ(kActiveOnBoot, activation1->state);
+    EXPECT_EQ(0, activation2->start_ns);
+    EXPECT_EQ(kNotActive, activation2->state);
+
+    EXPECT_TRUE(metricProducer2->isActive());
+    // }}}-----------------------------------------------------------------------------
+
+    // Simulate shutdown by saving state to disk
+    int64_t shutDownTime = timeBase1 + 100 * NS_PER_SEC;
+    processor->SaveActiveConfigsToDisk(shutDownTime);
+    EXPECT_FALSE(metricProducer1->isActive());
+    int64_t ttl1 = metric1ActivationTrigger1->ttl_seconds() * NS_PER_SEC;
+
+    // Simulate device restarted state by creating new instance of StatsLogProcessor with the
+    // same config.
+    long timeBase2 = 1000;
+    sp<StatsLogProcessor> processor2 =
+            CreateStatsLogProcessor(timeBase2, timeBase2, config1, cfgKey1);
+
+    // Metric 1 is not active.
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_EQ(1, processor2->mMetricsManagers.size());
+    it = processor2->mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor2->mMetricsManagers.end());
+    auto& metricsManager1001 = it->second;
+    EXPECT_TRUE(metricsManager1001->isActive());
+
+    metricIt = metricsManager1001->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1001->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId1) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1001->mAllMetricProducers.end());
+    auto& metricProducer1001 = *metricIt;
+    EXPECT_FALSE(metricProducer1001->isActive());
+
+    metricIt = metricsManager1001->mAllMetricProducers.begin();
+    for (; metricIt != metricsManager1001->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId2) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManager1001->mAllMetricProducers.end());
+    auto& metricProducer1002 = *metricIt;
+    EXPECT_TRUE(metricProducer1002->isActive());
+
+    i = 0;
+    for (; i < metricsManager1001->mAllAtomMatchers.size(); i++) {
+        if (metricsManager1001->mAllAtomMatchers[i]->getId() ==
+            metric1ActivationTrigger1->atom_matcher_id()) {
+            break;
+        }
+    }
+    const auto& activation1001_1 = metricProducer1001->mEventActivationMap.at(i);
+    EXPECT_EQ(100 * NS_PER_SEC, activation1001_1->ttl_ns);
+    EXPECT_EQ(0, activation1001_1->start_ns);
+    EXPECT_EQ(kNotActive, activation1001_1->state);
+
+    i = 0;
+    for (; i < metricsManager1001->mAllAtomMatchers.size(); i++) {
+        if (metricsManager1001->mAllAtomMatchers[i]->getId() ==
+            metric1ActivationTrigger2->atom_matcher_id()) {
+            break;
+        }
+    }
+
+    const auto& activation1001_2 = metricProducer1001->mEventActivationMap.at(i);
+    EXPECT_EQ(200 * NS_PER_SEC, activation1001_2->ttl_ns);
+    EXPECT_EQ(0, activation1001_2->start_ns);
+    EXPECT_EQ(kNotActive, activation1001_2->state);
+    // }}}-----------------------------------------------------------------------------------
+
+    // Load saved state from disk.
+    processor2->LoadActiveConfigsFromDisk();
+
+    // Metric 1 active; Activation 1 is active, Activation 2 is not active
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_TRUE(metricProducer1001->isActive());
+    EXPECT_EQ(timeBase2 + ttl1 - activation1001_1->ttl_ns, activation1001_1->start_ns);
+    EXPECT_EQ(kActive, activation1001_1->state);
+    EXPECT_EQ(0, activation1001_2->start_ns);
+    EXPECT_EQ(kNotActive, activation1001_2->state);
+
+    EXPECT_TRUE(metricProducer1002->isActive());
+    // }}}--------------------------------------------------------------------------------
+
+    // Trigger Activation 2 for Metric 1.
+    auto screenOnEvent =
+            CreateScreenStateChangedEvent(timeBase2 + 200, android::view::DISPLAY_STATE_ON);
+    processor2->OnLogEvent(screenOnEvent.get());
+
+    // Metric 1 active; Activation 1 is active, Activation 2 is set to kActiveOnBoot
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_TRUE(metricProducer1001->isActive());
+    EXPECT_EQ(timeBase2 + ttl1 - activation1001_1->ttl_ns, activation1001_1->start_ns);
+    EXPECT_EQ(kActive, activation1001_1->state);
+    EXPECT_EQ(0, activation1001_2->start_ns);
+    EXPECT_EQ(kActiveOnBoot, activation1001_2->state);
+
+    EXPECT_TRUE(metricProducer1002->isActive());
+    // }}}---------------------------------------------------------------------------
+
+    // Simulate shutdown by saving state to disk
+    shutDownTime = timeBase2 + 50 * NS_PER_SEC;
+    processor2->SaveActiveConfigsToDisk(shutDownTime);
+    EXPECT_TRUE(metricProducer1001->isActive());
+    EXPECT_TRUE(metricProducer1002->isActive());
+    ttl1 = timeBase2 + metric1ActivationTrigger1->ttl_seconds() * NS_PER_SEC - shutDownTime;
+    int64_t ttl2 = metric1ActivationTrigger2->ttl_seconds() * NS_PER_SEC;
+
+    // Simulate device restarted state by creating new instance of StatsLogProcessor with the
+    // same config.
+    long timeBase3 = timeBase2 + 120 * NS_PER_SEC;
+    sp<StatsLogProcessor> processor3 =
+            CreateStatsLogProcessor(timeBase3, timeBase3, config1, cfgKey1);
+
+    // Metric 1 is not active.
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_EQ(1, processor3->mMetricsManagers.size());
+    it = processor3->mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor3->mMetricsManagers.end());
+    auto& metricsManagerTimeBase3 = it->second;
+    EXPECT_TRUE(metricsManagerTimeBase3->isActive());
+
+    metricIt = metricsManagerTimeBase3->mAllMetricProducers.begin();
+    for (; metricIt != metricsManagerTimeBase3->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId1) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManagerTimeBase3->mAllMetricProducers.end());
+    auto& metricProducerTimeBase3_1 = *metricIt;
+    EXPECT_FALSE(metricProducerTimeBase3_1->isActive());
+
+    metricIt = metricsManagerTimeBase3->mAllMetricProducers.begin();
+    for (; metricIt != metricsManagerTimeBase3->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId2) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManagerTimeBase3->mAllMetricProducers.end());
+    auto& metricProducerTimeBase3_2 = *metricIt;
+    EXPECT_TRUE(metricProducerTimeBase3_2->isActive());
+
+    i = 0;
+    for (; i < metricsManagerTimeBase3->mAllAtomMatchers.size(); i++) {
+        if (metricsManagerTimeBase3->mAllAtomMatchers[i]->getId() ==
+            metric1ActivationTrigger1->atom_matcher_id()) {
+            break;
+        }
+    }
+    const auto& activationTimeBase3_1 = metricProducerTimeBase3_1->mEventActivationMap.at(i);
+    EXPECT_EQ(100 * NS_PER_SEC, activationTimeBase3_1->ttl_ns);
+    EXPECT_EQ(0, activationTimeBase3_1->start_ns);
+    EXPECT_EQ(kNotActive, activationTimeBase3_1->state);
+
+    i = 0;
+    for (; i < metricsManagerTimeBase3->mAllAtomMatchers.size(); i++) {
+        if (metricsManagerTimeBase3->mAllAtomMatchers[i]->getId() ==
+            metric1ActivationTrigger2->atom_matcher_id()) {
+            break;
+        }
+    }
+
+    const auto& activationTimeBase3_2 = metricProducerTimeBase3_1->mEventActivationMap.at(i);
+    EXPECT_EQ(200 * NS_PER_SEC, activationTimeBase3_2->ttl_ns);
+    EXPECT_EQ(0, activationTimeBase3_2->start_ns);
+    EXPECT_EQ(kNotActive, activationTimeBase3_2->state);
+
+    EXPECT_TRUE(metricProducerTimeBase3_2->isActive());
+    // }}}----------------------------------------------------------------------------------
+
+    // Load saved state from disk.
+    processor3->LoadActiveConfigsFromDisk();
+
+    // Metric 1 active: Activation 1 is active, Activation 2 is active
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_TRUE(metricProducerTimeBase3_1->isActive());
+    EXPECT_EQ(timeBase3 + ttl1 - activationTimeBase3_1->ttl_ns, activationTimeBase3_1->start_ns);
+    EXPECT_EQ(kActive, activationTimeBase3_1->state);
+    EXPECT_EQ(timeBase3 + ttl2 - activationTimeBase3_2->ttl_ns, activationTimeBase3_2->start_ns);
+    EXPECT_EQ(kActive, activationTimeBase3_2->state);
+
+    EXPECT_TRUE(metricProducerTimeBase3_2->isActive());
+    // }}}-------------------------------------------------------------------------------
+
+    // Trigger Activation 2 for Metric 1 again.
+    screenOnEvent = CreateScreenStateChangedEvent(timeBase3 + 100 * NS_PER_SEC,
+                                                  android::view::DISPLAY_STATE_ON);
+    processor3->OnLogEvent(screenOnEvent.get());
+
+    // Metric 1 active; Activation 1 is not active, Activation 2 is set to active
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_TRUE(metricProducerTimeBase3_1->isActive());
+    EXPECT_EQ(kNotActive, activationTimeBase3_1->state);
+    EXPECT_EQ(timeBase3 + ttl2 - activationTimeBase3_2->ttl_ns, activationTimeBase3_2->start_ns);
+    EXPECT_EQ(kActive, activationTimeBase3_2->state);
+
+    EXPECT_TRUE(metricProducerTimeBase3_2->isActive());
+    // }}}---------------------------------------------------------------------------
+
+    // Simulate shutdown by saving state to disk.
+    shutDownTime = timeBase3 + 500 * NS_PER_SEC;
+    processor3->SaveActiveConfigsToDisk(shutDownTime);
+    EXPECT_TRUE(metricProducer1001->isActive());
+    EXPECT_TRUE(metricProducer1002->isActive());
+    ttl1 = timeBase3 + ttl1 - shutDownTime;
+    ttl2 = timeBase3 + metric1ActivationTrigger2->ttl_seconds() * NS_PER_SEC - shutDownTime;
+
+    // Simulate device restarted state by creating new instance of StatsLogProcessor with the
+    // same config.
+    long timeBase4 = timeBase3 + 600 * NS_PER_SEC;
+    sp<StatsLogProcessor> processor4 =
+            CreateStatsLogProcessor(timeBase4, timeBase4, config1, cfgKey1);
+
+    // Metric 1 is not active.
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_EQ(1, processor4->mMetricsManagers.size());
+    it = processor4->mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor4->mMetricsManagers.end());
+    auto& metricsManagerTimeBase4 = it->second;
+    EXPECT_TRUE(metricsManagerTimeBase4->isActive());
+
+    metricIt = metricsManagerTimeBase4->mAllMetricProducers.begin();
+    for (; metricIt != metricsManagerTimeBase4->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId1) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManagerTimeBase4->mAllMetricProducers.end());
+    auto& metricProducerTimeBase4_1 = *metricIt;
+    EXPECT_FALSE(metricProducerTimeBase4_1->isActive());
+
+    metricIt = metricsManagerTimeBase4->mAllMetricProducers.begin();
+    for (; metricIt != metricsManagerTimeBase4->mAllMetricProducers.end(); metricIt++) {
+        if ((*metricIt)->getMetricId() == metricId2) {
+            break;
+        }
+    }
+    EXPECT_TRUE(metricIt != metricsManagerTimeBase4->mAllMetricProducers.end());
+    auto& metricProducerTimeBase4_2 = *metricIt;
+    EXPECT_TRUE(metricProducerTimeBase4_2->isActive());
+
+    i = 0;
+    for (; i < metricsManagerTimeBase4->mAllAtomMatchers.size(); i++) {
+        if (metricsManagerTimeBase4->mAllAtomMatchers[i]->getId() ==
+            metric1ActivationTrigger1->atom_matcher_id()) {
+            break;
+        }
+    }
+    const auto& activationTimeBase4_1 = metricProducerTimeBase4_1->mEventActivationMap.at(i);
+    EXPECT_EQ(100 * NS_PER_SEC, activationTimeBase4_1->ttl_ns);
+    EXPECT_EQ(0, activationTimeBase4_1->start_ns);
+    EXPECT_EQ(kNotActive, activationTimeBase4_1->state);
+
+    i = 0;
+    for (; i < metricsManagerTimeBase4->mAllAtomMatchers.size(); i++) {
+        if (metricsManagerTimeBase4->mAllAtomMatchers[i]->getId() ==
+            metric1ActivationTrigger2->atom_matcher_id()) {
+            break;
+        }
+    }
+
+    const auto& activationTimeBase4_2 = metricProducerTimeBase4_1->mEventActivationMap.at(i);
+    EXPECT_EQ(200 * NS_PER_SEC, activationTimeBase4_2->ttl_ns);
+    EXPECT_EQ(0, activationTimeBase4_2->start_ns);
+    EXPECT_EQ(kNotActive, activationTimeBase4_2->state);
+
+    EXPECT_TRUE(metricProducerTimeBase4_2->isActive());
+    // }}}----------------------------------------------------------------------------------
+
+    // Load saved state from disk.
+    processor4->LoadActiveConfigsFromDisk();
+
+    // Metric 1 active: Activation 1 is not active, Activation 2 is not active
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_FALSE(metricProducerTimeBase4_1->isActive());
+    EXPECT_EQ(kNotActive, activationTimeBase4_1->state);
+    EXPECT_EQ(kNotActive, activationTimeBase4_2->state);
+
+    EXPECT_TRUE(metricProducerTimeBase4_2->isActive());
+    // }}}-------------------------------------------------------------------------------
+}
+
+TEST(StatsLogProcessorTest, TestActivationOnBootMultipleActivationsDifferentActivationTypes) {
+    int uid = 1111;
+
+    // Create config with 2 metrics:
+    // Metric 1: Activate on boot with 2 activations
+    // Metric 2: Always active
+    StatsdConfig config1;
+    config1.set_id(12341);
+    config1.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
+    auto wakelockAcquireMatcher = CreateAcquireWakelockAtomMatcher();
+    auto screenOnMatcher = CreateScreenTurnedOnAtomMatcher();
+    *config1.add_atom_matcher() = wakelockAcquireMatcher;
+    *config1.add_atom_matcher() = screenOnMatcher;
+
+    long metricId1 = 1234561;
+    long metricId2 = 1234562;
+
+    auto countMetric1 = config1.add_count_metric();
+    countMetric1->set_id(metricId1);
+    countMetric1->set_what(wakelockAcquireMatcher.id());
+    countMetric1->set_bucket(FIVE_MINUTES);
+
+    auto countMetric2 = config1.add_count_metric();
+    countMetric2->set_id(metricId2);
+    countMetric2->set_what(wakelockAcquireMatcher.id());
+    countMetric2->set_bucket(FIVE_MINUTES);
+
+    auto metric1Activation = config1.add_metric_activation();
+    metric1Activation->set_metric_id(metricId1);
+    metric1Activation->set_activation_type(ACTIVATE_ON_BOOT);
+    auto metric1ActivationTrigger1 = metric1Activation->add_event_activation();
+    metric1ActivationTrigger1->set_atom_matcher_id(wakelockAcquireMatcher.id());
+    metric1ActivationTrigger1->set_ttl_seconds(100);
+    auto metric1ActivationTrigger2 = metric1Activation->add_event_activation();
+    metric1ActivationTrigger2->set_atom_matcher_id(screenOnMatcher.id());
+    metric1ActivationTrigger2->set_ttl_seconds(200);
+    metric1ActivationTrigger2->set_activation_type(ACTIVATE_IMMEDIATELY);
+
+    ConfigKey cfgKey1(uid, 12341);
+    long timeBase1 = 1;
+    sp<StatsLogProcessor> processor1 =
+            CreateStatsLogProcessor(timeBase1, timeBase1, config1, cfgKey1);
+
+    // Metric 1 is not active.
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_EQ(1, processor1->mMetricsManagers.size());
+    auto it = processor1->mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor1->mMetricsManagers.end());
+    auto& metricsManager1 = it->second;
+    EXPECT_TRUE(metricsManager1->isActive());
+
+    EXPECT_EQ(metricsManager1->mAllMetricProducers.size(), 2);
+    // We assume that the index of a MetricProducer within the mAllMetricProducers
+    // array follows the order in which metrics are added to the config.
+    auto& metricProducer1_1 = metricsManager1->mAllMetricProducers[0];
+    EXPECT_EQ(metricProducer1_1->getMetricId(), metricId1);
+    EXPECT_FALSE(metricProducer1_1->isActive());  // inactive due to associated MetricActivation
+
+    auto& metricProducer1_2 = metricsManager1->mAllMetricProducers[1];
+    EXPECT_EQ(metricProducer1_2->getMetricId(), metricId2);
+    EXPECT_TRUE(metricProducer1_2->isActive());
+
+    EXPECT_EQ(metricProducer1_1->mEventActivationMap.size(), 2);
+    // The key in mEventActivationMap is the index of the associated atom matcher. We assume
+    // that matchers are indexed in the order that they are added to the config.
+    const auto& activation1_1_1 = metricProducer1_1->mEventActivationMap.at(0);
+    EXPECT_EQ(100 * NS_PER_SEC, activation1_1_1->ttl_ns);
+    EXPECT_EQ(0, activation1_1_1->start_ns);
+    EXPECT_EQ(kNotActive, activation1_1_1->state);
+    EXPECT_EQ(ACTIVATE_ON_BOOT, activation1_1_1->activationType);
+
+    const auto& activation1_1_2 = metricProducer1_1->mEventActivationMap.at(1);
+    EXPECT_EQ(200 * NS_PER_SEC, activation1_1_2->ttl_ns);
+    EXPECT_EQ(0, activation1_1_2->start_ns);
+    EXPECT_EQ(kNotActive, activation1_1_2->state);
+    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation1_1_2->activationType);
+    // }}}------------------------------------------------------------------------------
+
+    // Trigger Activation 1 for Metric 1
+    std::vector<int> attributionUids = {111};
+    std::vector<string> attributionTags = {"App1"};
+    std::unique_ptr<LogEvent> event =
+            CreateAcquireWakelockEvent(timeBase1 + 100, attributionUids, attributionTags, "wl1");
+    processor1->OnLogEvent(event.get());
+
+    // Metric 1 is not active; Activation 1 set to kActiveOnBoot
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_FALSE(metricProducer1_1->isActive());
+    EXPECT_EQ(0, activation1_1_1->start_ns);
+    EXPECT_EQ(kActiveOnBoot, activation1_1_1->state);
+    EXPECT_EQ(0, activation1_1_2->start_ns);
+    EXPECT_EQ(kNotActive, activation1_1_2->state);
+
+    EXPECT_TRUE(metricProducer1_2->isActive());
+    // }}}-----------------------------------------------------------------------------
+
+    // Simulate shutdown by saving state to disk
+    int64_t shutDownTime = timeBase1 + 100 * NS_PER_SEC;
+    processor1->SaveActiveConfigsToDisk(shutDownTime);
+    EXPECT_FALSE(metricProducer1_1->isActive());
+
+    // Simulate device restarted state by creating new instance of StatsLogProcessor with the
+    // same config.
+    long timeBase2 = 1000;
+    sp<StatsLogProcessor> processor2 =
+            CreateStatsLogProcessor(timeBase2, timeBase2, config1, cfgKey1);
+
+    // Metric 1 is not active.
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_EQ(1, processor2->mMetricsManagers.size());
+    it = processor2->mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor2->mMetricsManagers.end());
+    auto& metricsManager2 = it->second;
+    EXPECT_TRUE(metricsManager2->isActive());
+
+    EXPECT_EQ(metricsManager2->mAllMetricProducers.size(), 2);
+    // We assume that the index of a MetricProducer within the mAllMetricProducers
+    // array follows the order in which metrics are added to the config.
+    auto& metricProducer2_1 = metricsManager2->mAllMetricProducers[0];
+    EXPECT_EQ(metricProducer2_1->getMetricId(), metricId1);
+    EXPECT_FALSE(metricProducer2_1->isActive());
+
+    auto& metricProducer2_2 = metricsManager2->mAllMetricProducers[1];
+    EXPECT_EQ(metricProducer2_2->getMetricId(), metricId2);
+    EXPECT_TRUE(metricProducer2_2->isActive());
+
+    EXPECT_EQ(metricProducer2_1->mEventActivationMap.size(), 2);
+    // The key in mEventActivationMap is the index of the associated atom matcher. We assume
+    // that matchers are indexed in the order that they are added to the config.
+    const auto& activation2_1_1 = metricProducer2_1->mEventActivationMap.at(0);
+    EXPECT_EQ(100 * NS_PER_SEC, activation2_1_1->ttl_ns);
+    EXPECT_EQ(0, activation2_1_1->start_ns);
+    EXPECT_EQ(kNotActive, activation2_1_1->state);
+    EXPECT_EQ(ACTIVATE_ON_BOOT, activation2_1_1->activationType);
+
+    const auto& activation2_1_2 = metricProducer2_1->mEventActivationMap.at(1);
+    EXPECT_EQ(200 * NS_PER_SEC, activation2_1_2->ttl_ns);
+    EXPECT_EQ(0, activation2_1_2->start_ns);
+    EXPECT_EQ(kNotActive, activation2_1_2->state);
+    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation2_1_2->activationType);
+    // }}}-----------------------------------------------------------------------------------
+
+    // Load saved state from disk.
+    processor2->LoadActiveConfigsFromDisk();
+
+    // Metric 1 active; Activation 1 is active, Activation 2 is not active
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_TRUE(metricProducer2_1->isActive());
+    int64_t ttl1 = metric1ActivationTrigger1->ttl_seconds() * NS_PER_SEC;
+    EXPECT_EQ(timeBase2 + ttl1 - activation2_1_1->ttl_ns, activation2_1_1->start_ns);
+    EXPECT_EQ(kActive, activation2_1_1->state);
+    EXPECT_EQ(0, activation2_1_2->start_ns);
+    EXPECT_EQ(kNotActive, activation2_1_2->state);
+
+    EXPECT_TRUE(metricProducer2_2->isActive());
+    // }}}--------------------------------------------------------------------------------
+
+    // Trigger Activation 2 for Metric 1.
+    auto screenOnEvent =
+            CreateScreenStateChangedEvent(timeBase2 + 200, android::view::DISPLAY_STATE_ON);
+    processor2->OnLogEvent(screenOnEvent.get());
+
+    // Metric 1 active; Activation 1 is active, Activation 2 is active
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_TRUE(metricProducer2_1->isActive());
+    EXPECT_EQ(timeBase2 + ttl1 - activation2_1_1->ttl_ns, activation2_1_1->start_ns);
+    EXPECT_EQ(kActive, activation2_1_1->state);
+    EXPECT_EQ(screenOnEvent->GetElapsedTimestampNs(), activation2_1_2->start_ns);
+    EXPECT_EQ(kActive, activation2_1_2->state);
+
+    EXPECT_TRUE(metricProducer2_2->isActive());
+    // }}}---------------------------------------------------------------------------
+
+    // Simulate shutdown by saving state to disk
+    shutDownTime = timeBase2 + 50 * NS_PER_SEC;
+    processor2->SaveActiveConfigsToDisk(shutDownTime);
+    EXPECT_TRUE(metricProducer2_1->isActive());
+    EXPECT_TRUE(metricProducer2_2->isActive());
+    ttl1 -= shutDownTime - timeBase2;
+    int64_t ttl2 = metric1ActivationTrigger2->ttl_seconds() * NS_PER_SEC -
+                   (shutDownTime - screenOnEvent->GetElapsedTimestampNs());
+
+    // Simulate device restarted state by creating new instance of StatsLogProcessor with the
+    // same config.
+    long timeBase3 = timeBase2 + 120 * NS_PER_SEC;
+    sp<StatsLogProcessor> processor3 =
+            CreateStatsLogProcessor(timeBase3, timeBase3, config1, cfgKey1);
+
+    // Metric 1 is not active.
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_EQ(1, processor3->mMetricsManagers.size());
+    it = processor3->mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor3->mMetricsManagers.end());
+    auto& metricsManager3 = it->second;
+    EXPECT_TRUE(metricsManager3->isActive());
+
+    EXPECT_EQ(metricsManager3->mAllMetricProducers.size(), 2);
+    // We assume that the index of a MetricProducer within the mAllMetricProducers
+    // array follows the order in which metrics are added to the config.
+    auto& metricProducer3_1 = metricsManager3->mAllMetricProducers[0];
+    EXPECT_EQ(metricProducer3_1->getMetricId(), metricId1);
+    EXPECT_FALSE(metricProducer3_1->isActive());
+
+    auto& metricProducer3_2 = metricsManager3->mAllMetricProducers[1];
+    EXPECT_EQ(metricProducer3_2->getMetricId(), metricId2);
+    EXPECT_TRUE(metricProducer3_2->isActive());
+
+    EXPECT_EQ(metricProducer3_1->mEventActivationMap.size(), 2);
+    // The key in mEventActivationMap is the index of the associated atom matcher. We assume
+    // that matchers are indexed in the order that they are added to the config.
+    const auto& activation3_1_1 = metricProducer3_1->mEventActivationMap.at(0);
+    EXPECT_EQ(100 * NS_PER_SEC, activation3_1_1->ttl_ns);
+    EXPECT_EQ(0, activation3_1_1->start_ns);
+    EXPECT_EQ(kNotActive, activation3_1_1->state);
+    EXPECT_EQ(ACTIVATE_ON_BOOT, activation3_1_1->activationType);
+
+    const auto& activation3_1_2 = metricProducer3_1->mEventActivationMap.at(1);
+    EXPECT_EQ(200 * NS_PER_SEC, activation3_1_2->ttl_ns);
+    EXPECT_EQ(0, activation3_1_2->start_ns);
+    EXPECT_EQ(kNotActive, activation3_1_2->state);
+    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation3_1_2->activationType);
+    // }}}----------------------------------------------------------------------------------
+
+    // Load saved state from disk.
+    processor3->LoadActiveConfigsFromDisk();
+
+    // Metric 1 active: Activation 1 is active, Activation 2 is active
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_TRUE(metricProducer3_1->isActive());
+    EXPECT_EQ(timeBase3 + ttl1 - activation3_1_1->ttl_ns, activation3_1_1->start_ns);
+    EXPECT_EQ(kActive, activation3_1_1->state);
+    EXPECT_EQ(timeBase3 + ttl2 - activation3_1_2->ttl_ns, activation3_1_2->start_ns);
+    EXPECT_EQ(kActive, activation3_1_2->state);
+
+    EXPECT_TRUE(metricProducer3_2->isActive());
+    // }}}-------------------------------------------------------------------------------
+
+    // Trigger Activation 2 for Metric 1 again.
+    screenOnEvent = CreateScreenStateChangedEvent(timeBase3 + 100 * NS_PER_SEC,
+                                                  android::view::DISPLAY_STATE_ON);
+    processor3->OnLogEvent(screenOnEvent.get());
+
+    // Metric 1 active; Activation 1 is inactive (above screenOnEvent causes ttl1 to expire),
+    //                  Activation 2 is set to active
+    // Metric 2 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_TRUE(metricProducer3_1->isActive());
+    EXPECT_EQ(kNotActive, activation3_1_1->state);
+    EXPECT_EQ(screenOnEvent->GetElapsedTimestampNs(), activation3_1_2->start_ns);
+    EXPECT_EQ(kActive, activation3_1_2->state);
+
+    EXPECT_TRUE(metricProducer3_2->isActive());
+    // }}}---------------------------------------------------------------------------
+}
+
+TEST(StatsLogProcessorTest, TestActivationsPersistAcrossSystemServerRestart) {
+    int uid = 9876;
+    long configId = 12341;
+
+    // Create config with 3 metrics:
+    // Metric 1: Activate on 2 activations, 1 on boot, 1 immediate.
+    // Metric 2: Activate on 2 activations, 1 on boot, 1 immediate.
+    // Metric 3: Always active
+    StatsdConfig config1;
+    config1.set_id(configId);
+    config1.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
+    auto wakelockAcquireMatcher = CreateAcquireWakelockAtomMatcher();
+    auto screenOnMatcher = CreateScreenTurnedOnAtomMatcher();
+    auto jobStartMatcher = CreateStartScheduledJobAtomMatcher();
+    auto jobFinishMatcher = CreateFinishScheduledJobAtomMatcher();
+    *config1.add_atom_matcher() = wakelockAcquireMatcher;
+    *config1.add_atom_matcher() = screenOnMatcher;
+    *config1.add_atom_matcher() = jobStartMatcher;
+    *config1.add_atom_matcher() = jobFinishMatcher;
+
+    long metricId1 = 1234561;
+    long metricId2 = 1234562;
+    long metricId3 = 1234563;
+
+    auto countMetric1 = config1.add_count_metric();
+    countMetric1->set_id(metricId1);
+    countMetric1->set_what(wakelockAcquireMatcher.id());
+    countMetric1->set_bucket(FIVE_MINUTES);
+
+    auto countMetric2 = config1.add_count_metric();
+    countMetric2->set_id(metricId2);
+    countMetric2->set_what(wakelockAcquireMatcher.id());
+    countMetric2->set_bucket(FIVE_MINUTES);
+
+    auto countMetric3 = config1.add_count_metric();
+    countMetric3->set_id(metricId3);
+    countMetric3->set_what(wakelockAcquireMatcher.id());
+    countMetric3->set_bucket(FIVE_MINUTES);
+
+    // Metric 1 activates on boot for wakelock acquire, immediately for screen on.
+    auto metric1Activation = config1.add_metric_activation();
+    metric1Activation->set_metric_id(metricId1);
+    auto metric1ActivationTrigger1 = metric1Activation->add_event_activation();
+    metric1ActivationTrigger1->set_atom_matcher_id(wakelockAcquireMatcher.id());
+    metric1ActivationTrigger1->set_ttl_seconds(100);
+    metric1ActivationTrigger1->set_activation_type(ACTIVATE_ON_BOOT);
+    auto metric1ActivationTrigger2 = metric1Activation->add_event_activation();
+    metric1ActivationTrigger2->set_atom_matcher_id(screenOnMatcher.id());
+    metric1ActivationTrigger2->set_ttl_seconds(200);
+    metric1ActivationTrigger2->set_activation_type(ACTIVATE_IMMEDIATELY);
+
+    // Metric 2 activates on boot for scheduled job start, immediately for scheduled job finish.
+    auto metric2Activation = config1.add_metric_activation();
+    metric2Activation->set_metric_id(metricId2);
+    auto metric2ActivationTrigger1 = metric2Activation->add_event_activation();
+    metric2ActivationTrigger1->set_atom_matcher_id(jobStartMatcher.id());
+    metric2ActivationTrigger1->set_ttl_seconds(100);
+    metric2ActivationTrigger1->set_activation_type(ACTIVATE_ON_BOOT);
+    auto metric2ActivationTrigger2 = metric2Activation->add_event_activation();
+    metric2ActivationTrigger2->set_atom_matcher_id(jobFinishMatcher.id());
+    metric2ActivationTrigger2->set_ttl_seconds(200);
+    metric2ActivationTrigger2->set_activation_type(ACTIVATE_IMMEDIATELY);
+
+    // Send the config.
+    shared_ptr<StatsService> service = SharedRefBase::make<StatsService>(nullptr, nullptr);
+    string serialized = config1.SerializeAsString();
+    service->addConfigurationChecked(uid, configId, {serialized.begin(), serialized.end()});
+
+    // Make sure the config is stored on disk. Otherwise, we will not reset on system server death.
+    StatsdConfig tmpConfig;
+    ConfigKey cfgKey1(uid, configId);
+    EXPECT_TRUE(StorageManager::readConfigFromDisk(cfgKey1, &tmpConfig));
+
+    // Metric 1 is not active.
+    // Metric 2 is not active.
+    // Metric 3 is active.
+    // {{{---------------------------------------------------------------------------
+    sp<StatsLogProcessor> processor = service->mProcessor;
+    EXPECT_EQ(1, processor->mMetricsManagers.size());
+    auto it = processor->mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor->mMetricsManagers.end());
+    auto& metricsManager1 = it->second;
+    EXPECT_TRUE(metricsManager1->isActive());
+    EXPECT_EQ(3, metricsManager1->mAllMetricProducers.size());
+
+    auto& metricProducer1 = metricsManager1->mAllMetricProducers[0];
+    EXPECT_EQ(metricId1, metricProducer1->getMetricId());
+    EXPECT_FALSE(metricProducer1->isActive());
+
+    auto& metricProducer2 = metricsManager1->mAllMetricProducers[1];
+    EXPECT_EQ(metricId2, metricProducer2->getMetricId());
+    EXPECT_FALSE(metricProducer2->isActive());
+
+    auto& metricProducer3 = metricsManager1->mAllMetricProducers[2];
+    EXPECT_EQ(metricId3, metricProducer3->getMetricId());
+    EXPECT_TRUE(metricProducer3->isActive());
+
+    // Check event activations.
+    EXPECT_EQ(metricsManager1->mAllAtomMatchers.size(), 4);
+    EXPECT_EQ(metricsManager1->mAllAtomMatchers[0]->getId(),
+              metric1ActivationTrigger1->atom_matcher_id());
+    const auto& activation1 = metricProducer1->mEventActivationMap.at(0);
+    EXPECT_EQ(100 * NS_PER_SEC, activation1->ttl_ns);
+    EXPECT_EQ(0, activation1->start_ns);
+    EXPECT_EQ(kNotActive, activation1->state);
+    EXPECT_EQ(ACTIVATE_ON_BOOT, activation1->activationType);
+
+    EXPECT_EQ(metricsManager1->mAllAtomMatchers[1]->getId(),
+              metric1ActivationTrigger2->atom_matcher_id());
+    const auto& activation2 = metricProducer1->mEventActivationMap.at(1);
+    EXPECT_EQ(200 * NS_PER_SEC, activation2->ttl_ns);
+    EXPECT_EQ(0, activation2->start_ns);
+    EXPECT_EQ(kNotActive, activation2->state);
+    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation2->activationType);
+
+    EXPECT_EQ(metricsManager1->mAllAtomMatchers[2]->getId(),
+              metric2ActivationTrigger1->atom_matcher_id());
+    const auto& activation3 = metricProducer2->mEventActivationMap.at(2);
+    EXPECT_EQ(100 * NS_PER_SEC, activation3->ttl_ns);
+    EXPECT_EQ(0, activation3->start_ns);
+    EXPECT_EQ(kNotActive, activation3->state);
+    EXPECT_EQ(ACTIVATE_ON_BOOT, activation3->activationType);
+
+    EXPECT_EQ(metricsManager1->mAllAtomMatchers[3]->getId(),
+              metric2ActivationTrigger2->atom_matcher_id());
+    const auto& activation4 = metricProducer2->mEventActivationMap.at(3);
+    EXPECT_EQ(200 * NS_PER_SEC, activation4->ttl_ns);
+    EXPECT_EQ(0, activation4->start_ns);
+    EXPECT_EQ(kNotActive, activation4->state);
+    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation4->activationType);
+    // }}}------------------------------------------------------------------------------
+
+    // Trigger Activation 1 for Metric 1. Should activate on boot.
+    // Trigger Activation 4 for Metric 2. Should activate immediately.
+    long configAddedTimeNs = metricsManager1->mLastReportTimeNs;
+    std::vector<int> attributionUids = {111};
+    std::vector<string> attributionTags = {"App1"};
+    std::unique_ptr<LogEvent> event1 = CreateAcquireWakelockEvent(
+            1 + configAddedTimeNs, attributionUids, attributionTags, "wl1");
+    processor->OnLogEvent(event1.get());
+
+    std::unique_ptr<LogEvent> event2 = CreateFinishScheduledJobEvent(
+            2 + configAddedTimeNs, attributionUids, attributionTags, "finish1");
+    processor->OnLogEvent(event2.get());
+
+    // Metric 1 is not active; Activation 1 set to kActiveOnBoot
+    // Metric 2 is active. Activation 4 set to kActive
+    // Metric 3 is active.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_FALSE(metricProducer1->isActive());
+    EXPECT_EQ(0, activation1->start_ns);
+    EXPECT_EQ(kActiveOnBoot, activation1->state);
+    EXPECT_EQ(0, activation2->start_ns);
+    EXPECT_EQ(kNotActive, activation2->state);
+
+    EXPECT_TRUE(metricProducer2->isActive());
+    EXPECT_EQ(0, activation3->start_ns);
+    EXPECT_EQ(kNotActive, activation3->state);
+    EXPECT_EQ(2 + configAddedTimeNs, activation4->start_ns);
+    EXPECT_EQ(kActive, activation4->state);
+
+    EXPECT_TRUE(metricProducer3->isActive());
+    // }}}-----------------------------------------------------------------------------
+
+    // Can't fake time with StatsService.
+    // Lets get a time close to the system server death time and make sure it's sane.
+    int64_t approximateSystemServerDeath = getElapsedRealtimeNs();
+    EXPECT_TRUE(approximateSystemServerDeath > 2 + configAddedTimeNs);
+    EXPECT_TRUE(approximateSystemServerDeath < NS_PER_SEC + configAddedTimeNs);
+
+    // System server dies.
+    service->statsCompanionServiceDiedImpl();
+
+    // We should have a new metrics manager. Lets get it and ensure activation status is restored.
+    // {{{---------------------------------------------------------------------------
+    EXPECT_EQ(1, processor->mMetricsManagers.size());
+    it = processor->mMetricsManagers.find(cfgKey1);
+    EXPECT_TRUE(it != processor->mMetricsManagers.end());
+    auto& metricsManager2 = it->second;
+    EXPECT_TRUE(metricsManager2->isActive());
+    EXPECT_EQ(3, metricsManager2->mAllMetricProducers.size());
+
+    auto& metricProducer1001 = metricsManager2->mAllMetricProducers[0];
+    EXPECT_EQ(metricId1, metricProducer1001->getMetricId());
+    EXPECT_FALSE(metricProducer1001->isActive());
+
+    auto& metricProducer1002 = metricsManager2->mAllMetricProducers[1];
+    EXPECT_EQ(metricId2, metricProducer1002->getMetricId());
+    EXPECT_TRUE(metricProducer1002->isActive());
+
+    auto& metricProducer1003 = metricsManager2->mAllMetricProducers[2];
+    EXPECT_EQ(metricId3, metricProducer1003->getMetricId());
+    EXPECT_TRUE(metricProducer1003->isActive());
+
+    // Check event activations.
+    // Activation 1 is kActiveOnBoot.
+    // Activation 2 and 3 are not active.
+    // Activation 4 is active.
+    EXPECT_EQ(metricsManager2->mAllAtomMatchers.size(), 4);
+    EXPECT_EQ(metricsManager2->mAllAtomMatchers[0]->getId(),
+              metric1ActivationTrigger1->atom_matcher_id());
+    const auto& activation1001 = metricProducer1001->mEventActivationMap.at(0);
+    EXPECT_EQ(100 * NS_PER_SEC, activation1001->ttl_ns);
+    EXPECT_EQ(0, activation1001->start_ns);
+    EXPECT_EQ(kActiveOnBoot, activation1001->state);
+    EXPECT_EQ(ACTIVATE_ON_BOOT, activation1001->activationType);
+
+    EXPECT_EQ(metricsManager2->mAllAtomMatchers[1]->getId(),
+              metric1ActivationTrigger2->atom_matcher_id());
+    const auto& activation1002 = metricProducer1001->mEventActivationMap.at(1);
+    EXPECT_EQ(200 * NS_PER_SEC, activation1002->ttl_ns);
+    EXPECT_EQ(0, activation1002->start_ns);
+    EXPECT_EQ(kNotActive, activation1002->state);
+    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation1002->activationType);
+
+    EXPECT_EQ(metricsManager2->mAllAtomMatchers[2]->getId(),
+              metric2ActivationTrigger1->atom_matcher_id());
+    const auto& activation1003 = metricProducer1002->mEventActivationMap.at(2);
+    EXPECT_EQ(100 * NS_PER_SEC, activation1003->ttl_ns);
+    EXPECT_EQ(0, activation1003->start_ns);
+    EXPECT_EQ(kNotActive, activation1003->state);
+    EXPECT_EQ(ACTIVATE_ON_BOOT, activation1003->activationType);
+
+    EXPECT_EQ(metricsManager2->mAllAtomMatchers[3]->getId(),
+              metric2ActivationTrigger2->atom_matcher_id());
+    const auto& activation1004 = metricProducer1002->mEventActivationMap.at(3);
+    EXPECT_EQ(200 * NS_PER_SEC, activation1004->ttl_ns);
+    EXPECT_EQ(2 + configAddedTimeNs, activation1004->start_ns);
+    EXPECT_EQ(kActive, activation1004->state);
+    EXPECT_EQ(ACTIVATE_IMMEDIATELY, activation1004->activationType);
+    // }}}------------------------------------------------------------------------------
+
+    // Clear the data stored on disk as a result of the system server death.
+    vector<uint8_t> buffer;
+    processor->onDumpReport(cfgKey1, configAddedTimeNs + NS_PER_SEC, false, true, ADB_DUMP, FAST,
+                            &buffer);
+}
 
 #else
 GTEST_LOG_(INFO) << "This test does nothing.\n";
diff --git a/cmds/statsd/tests/UidMap_test.cpp b/cmds/statsd/tests/UidMap_test.cpp
index a49c18f..29005a2 100644
--- a/cmds/statsd/tests/UidMap_test.cpp
+++ b/cmds/statsd/tests/UidMap_test.cpp
@@ -39,35 +39,28 @@
 const string kApp1 = "app1.sharing.1";
 const string kApp2 = "app2.sharing.1";
 
-// TODO(b/149590301): Update this test to use new socket schema.
-//TEST(UidMapTest, TestIsolatedUID) {
-//    sp<UidMap> m = new UidMap();
-//    sp<StatsPullerManager> pullerManager = new StatsPullerManager();
-//    sp<AlarmMonitor> anomalyAlarmMonitor;
-//    sp<AlarmMonitor> subscriberAlarmMonitor;
-//    // Construct the processor with a dummy sendBroadcast function that does nothing.
-//    StatsLogProcessor p(m, pullerManager, anomalyAlarmMonitor, subscriberAlarmMonitor, 0,
-//                        [](const ConfigKey& key) { return true; },
-//                        [](const int&, const vector<int64_t>&) {return true;});
-//    LogEvent addEvent(util::ISOLATED_UID_CHANGED, 1);
-//    addEvent.write(100);  // parent UID
-//    addEvent.write(101);  // isolated UID
-//    addEvent.write(1);    // Indicates creation.
-//    addEvent.init();
-//
-//    EXPECT_EQ(101, m->getHostUidOrSelf(101));
-//
-//    p.OnLogEvent(&addEvent);
-//    EXPECT_EQ(100, m->getHostUidOrSelf(101));
-//
-//    LogEvent removeEvent(util::ISOLATED_UID_CHANGED, 1);
-//    removeEvent.write(100);  // parent UID
-//    removeEvent.write(101);  // isolated UID
-//    removeEvent.write(0);    // Indicates removal.
-//    removeEvent.init();
-//    p.OnLogEvent(&removeEvent);
-//    EXPECT_EQ(101, m->getHostUidOrSelf(101));
-//}
+TEST(UidMapTest, TestIsolatedUID) {
+    sp<UidMap> m = new UidMap();
+    sp<StatsPullerManager> pullerManager = new StatsPullerManager();
+    sp<AlarmMonitor> anomalyAlarmMonitor;
+    sp<AlarmMonitor> subscriberAlarmMonitor;
+    // Construct the processor with a dummy sendBroadcast function that does nothing.
+    StatsLogProcessor p(
+            m, pullerManager, anomalyAlarmMonitor, subscriberAlarmMonitor, 0,
+            [](const ConfigKey& key) { return true; },
+            [](const int&, const vector<int64_t>&) { return true; });
+
+    std::unique_ptr<LogEvent> addEvent = CreateIsolatedUidChangedEvent(
+            1 /*timestamp*/, 100 /*hostUid*/, 101 /*isolatedUid*/, 1 /*is_create*/);
+    EXPECT_EQ(101, m->getHostUidOrSelf(101));
+    p.OnLogEvent(addEvent.get());
+    EXPECT_EQ(100, m->getHostUidOrSelf(101));
+
+    std::unique_ptr<LogEvent> removeEvent = CreateIsolatedUidChangedEvent(
+            1 /*timestamp*/, 100 /*hostUid*/, 101 /*isolatedUid*/, 0 /*is_create*/);
+    p.OnLogEvent(removeEvent.get());
+    EXPECT_EQ(101, m->getHostUidOrSelf(101));
+}
 
 TEST(UidMapTest, TestMatching) {
     UidMap m;
diff --git a/cmds/statsd/tests/e2e/GaugeMetric_e2e_pull_test.cpp b/cmds/statsd/tests/e2e/GaugeMetric_e2e_pull_test.cpp
index ca4de6d..c234b14 100644
--- a/cmds/statsd/tests/e2e/GaugeMetric_e2e_pull_test.cpp
+++ b/cmds/statsd/tests/e2e/GaugeMetric_e2e_pull_test.cpp
@@ -38,6 +38,7 @@
                                 bool useCondition = true) {
     StatsdConfig config;
     config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
+    config.add_default_pull_packages("AID_ROOT");  // Fake puller is registered with root.
     auto atomMatcher = CreateSimpleAtomMatcher("TestMatcher", ATOM_TAG);
     *config.add_atom_matcher() = atomMatcher;
     *config.add_atom_matcher() = CreateScreenTurnedOnAtomMatcher();
diff --git a/cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp b/cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp
index 371a346..b173ee0 100644
--- a/cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp
+++ b/cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp
@@ -71,6 +71,7 @@
 StatsdConfig MakeValueMetricConfig(int64_t minTime) {
     StatsdConfig config;
     config.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
+    config.add_default_pull_packages("AID_ROOT");  // Fake puller is registered with root.
 
     auto pulledAtomMatcher =
             CreateSimpleAtomMatcher("TestMatcher", util::SUBSYSTEM_SLEEP_STATE);
@@ -94,6 +95,7 @@
 StatsdConfig MakeGaugeMetricConfig(int64_t minTime) {
     StatsdConfig config;
     config.add_allowed_log_source("AID_ROOT");  // LogEvent defaults to UID of root.
+    config.add_default_pull_packages("AID_ROOT");  // Fake puller is registered with root.
 
     auto pulledAtomMatcher =
                 CreateSimpleAtomMatcher("TestMatcher", util::SUBSYSTEM_SLEEP_STATE);
diff --git a/cmds/statsd/tests/e2e/ValueMetric_pull_e2e_test.cpp b/cmds/statsd/tests/e2e/ValueMetric_pull_e2e_test.cpp
index a5ef733..0c4a7c6 100644
--- a/cmds/statsd/tests/e2e/ValueMetric_pull_e2e_test.cpp
+++ b/cmds/statsd/tests/e2e/ValueMetric_pull_e2e_test.cpp
@@ -36,6 +36,7 @@
 StatsdConfig CreateStatsdConfig(bool useCondition = true) {
     StatsdConfig config;
     config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
+    config.add_default_pull_packages("AID_ROOT");  // Fake puller is registered with root.
     auto pulledAtomMatcher =
             CreateSimpleAtomMatcher("TestMatcher", util::SUBSYSTEM_SLEEP_STATE);
     *config.add_atom_matcher() = pulledAtomMatcher;
diff --git a/cmds/statsd/tests/external/StatsCallbackPuller_test.cpp b/cmds/statsd/tests/external/StatsCallbackPuller_test.cpp
index 1ff6621..6aff9ef 100644
--- a/cmds/statsd/tests/external/StatsCallbackPuller_test.cpp
+++ b/cmds/statsd/tests/external/StatsCallbackPuller_test.cpp
@@ -187,15 +187,16 @@
     pullDelayNs = 500000000;  // 500 ms.
     pullTimeoutNs = 10000;    // 10 microsseconds.
     int64_t value = 4321;
+    int32_t uid = 123;
     values.push_back(value);
 
     StatsPullerManager pullerManager;
-    pullerManager.RegisterPullAtomCallback(/*uid=*/-1, pullTagId, pullCoolDownNs, pullTimeoutNs,
+    pullerManager.RegisterPullAtomCallback(uid, pullTagId, pullCoolDownNs, pullTimeoutNs,
                                            vector<int32_t>(), cb);
     vector<shared_ptr<LogEvent>> dataHolder;
     int64_t startTimeNs = getElapsedRealtimeNs();
     // Returns false, since StatsPuller code will evaluate the timeout.
-    EXPECT_FALSE(pullerManager.Pull(pullTagId, &dataHolder));
+    EXPECT_FALSE(pullerManager.Pull(pullTagId, {uid}, &dataHolder));
     int64_t endTimeNs = getElapsedRealtimeNs();
     int64_t actualPullDurationNs = endTimeNs - startTimeNs;
 
diff --git a/cmds/statsd/tests/external/StatsPullerManager_test.cpp b/cmds/statsd/tests/external/StatsPullerManager_test.cpp
new file mode 100644
index 0000000..6b3f4cc
--- /dev/null
+++ b/cmds/statsd/tests/external/StatsPullerManager_test.cpp
@@ -0,0 +1,150 @@
+// Copyright (C) 2020 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "src/external/StatsPullerManager.h"
+
+#include <aidl/android/os/IPullAtomResultReceiver.h>
+#include <aidl/android/util/StatsEventParcel.h>
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
+#include "stats_event.h"
+#include "tests/statsd_test_util.h"
+
+using aidl::android::util::StatsEventParcel;
+using ::ndk::SharedRefBase;
+using std::make_shared;
+using std::shared_ptr;
+using std::vector;
+
+namespace android {
+namespace os {
+namespace statsd {
+
+namespace {
+
+int pullTagId1 = 10101;
+int pullTagId2 = 10102;
+int uid1 = 9999;
+int uid2 = 8888;
+ConfigKey configKey(50, 12345);
+ConfigKey badConfigKey(60, 54321);
+int unregisteredUid = 98765;
+int64_t coolDownNs = NS_PER_SEC;
+int64_t timeoutNs = NS_PER_SEC / 2;
+
+AStatsEvent* createSimpleEvent(int32_t atomId, int32_t value) {
+    AStatsEvent* event = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(event, atomId);
+    AStatsEvent_writeInt32(event, value);
+    AStatsEvent_build(event);
+    return event;
+}
+
+class FakePullAtomCallback : public BnPullAtomCallback {
+public:
+    FakePullAtomCallback(int32_t uid) : mUid(uid){};
+    Status onPullAtom(int atomTag,
+                      const shared_ptr<IPullAtomResultReceiver>& resultReceiver) override {
+        vector<StatsEventParcel> parcels;
+        AStatsEvent* event = createSimpleEvent(atomTag, mUid);
+        size_t size;
+        uint8_t* buffer = AStatsEvent_getBuffer(event, &size);
+
+        StatsEventParcel p;
+        // vector.assign() creates a copy, but this is inevitable unless
+        // stats_event.h/c uses a vector as opposed to a buffer.
+        p.buffer.assign(buffer, buffer + size);
+        parcels.push_back(std::move(p));
+        AStatsEvent_release(event);
+        resultReceiver->pullFinished(atomTag, /*success*/ true, parcels);
+        return Status::ok();
+    }
+    int32_t mUid;
+};
+
+class FakePullUidProvider : public PullUidProvider {
+public:
+    vector<int32_t> getPullAtomUids(int atomId) override {
+        if (atomId == pullTagId1) {
+            return {uid2, uid1};
+        } else if (atomId == pullTagId2) {
+            return {uid2};
+        }
+        return {};
+    }
+};
+
+sp<StatsPullerManager> createPullerManagerAndRegister() {
+    sp<StatsPullerManager> pullerManager = new StatsPullerManager();
+    shared_ptr<FakePullAtomCallback> cb1 = SharedRefBase::make<FakePullAtomCallback>(uid1);
+    pullerManager->RegisterPullAtomCallback(uid1, pullTagId1, coolDownNs, timeoutNs, {}, cb1, true);
+    shared_ptr<FakePullAtomCallback> cb2 = SharedRefBase::make<FakePullAtomCallback>(uid2);
+    pullerManager->RegisterPullAtomCallback(uid2, pullTagId1, coolDownNs, timeoutNs, {}, cb2, true);
+    pullerManager->RegisterPullAtomCallback(uid1, pullTagId2, coolDownNs, timeoutNs, {}, cb1, true);
+    return pullerManager;
+}
+}  // anonymous namespace
+
+TEST(StatsPullerManagerTest, TestPullInvalidUid) {
+    sp<StatsPullerManager> pullerManager = createPullerManagerAndRegister();
+
+    vector<shared_ptr<LogEvent>> data;
+    EXPECT_FALSE(pullerManager->Pull(pullTagId1, {unregisteredUid}, &data, true));
+}
+
+TEST(StatsPullerManagerTest, TestPullChoosesCorrectUid) {
+    sp<StatsPullerManager> pullerManager = createPullerManagerAndRegister();
+
+    vector<shared_ptr<LogEvent>> data;
+    EXPECT_TRUE(pullerManager->Pull(pullTagId1, {uid1}, &data, true));
+    ASSERT_EQ(data.size(), 1);
+    EXPECT_EQ(data[0]->GetTagId(), pullTagId1);
+    ASSERT_EQ(data[0]->getValues().size(), 1);
+    EXPECT_EQ(data[0]->getValues()[0].mValue.int_value, uid1);
+}
+
+TEST(StatsPullerManagerTest, TestPullInvalidConfigKey) {
+    sp<StatsPullerManager> pullerManager = createPullerManagerAndRegister();
+    sp<FakePullUidProvider> uidProvider = new FakePullUidProvider();
+    pullerManager->RegisterPullUidProvider(configKey, uidProvider);
+
+    vector<shared_ptr<LogEvent>> data;
+    EXPECT_FALSE(pullerManager->Pull(pullTagId1, badConfigKey, &data, true));
+}
+
+TEST(StatsPullerManagerTest, TestPullConfigKeyGood) {
+    sp<StatsPullerManager> pullerManager = createPullerManagerAndRegister();
+    sp<FakePullUidProvider> uidProvider = new FakePullUidProvider();
+    pullerManager->RegisterPullUidProvider(configKey, uidProvider);
+
+    vector<shared_ptr<LogEvent>> data;
+    EXPECT_TRUE(pullerManager->Pull(pullTagId1, configKey, &data, true));
+    EXPECT_EQ(data[0]->GetTagId(), pullTagId1);
+    ASSERT_EQ(data[0]->getValues().size(), 1);
+    EXPECT_EQ(data[0]->getValues()[0].mValue.int_value, uid2);
+}
+
+TEST(StatsPullerManagerTest, TestPullConfigKeyNoPullerWithUid) {
+    sp<StatsPullerManager> pullerManager = createPullerManagerAndRegister();
+    sp<FakePullUidProvider> uidProvider = new FakePullUidProvider();
+    pullerManager->RegisterPullUidProvider(configKey, uidProvider);
+
+    vector<shared_ptr<LogEvent>> data;
+    EXPECT_FALSE(pullerManager->Pull(pullTagId2, configKey, &data, true));
+}
+
+}  // namespace statsd
+}  // namespace os
+}  // namespace android
\ No newline at end of file
diff --git a/cmds/statsd/tests/metrics/EventMetricProducer_test.cpp b/cmds/statsd/tests/metrics/EventMetricProducer_test.cpp
index 0f39efd5..e58bbb7 100644
--- a/cmds/statsd/tests/metrics/EventMetricProducer_test.cpp
+++ b/cmds/statsd/tests/metrics/EventMetricProducer_test.cpp
@@ -13,14 +13,17 @@
 // limitations under the License.
 
 #include "src/metrics/EventMetricProducer.h"
-#include "metrics_test_helper.h"
-#include "tests/statsd_test_util.h"
 
 #include <gmock/gmock.h>
 #include <gtest/gtest.h>
 #include <stdio.h>
+
 #include <vector>
 
+#include "metrics_test_helper.h"
+#include "stats_event.h"
+#include "tests/statsd_test_util.h"
+
 using namespace testing;
 using android::sp;
 using std::set;
@@ -35,6 +38,22 @@
 
 const ConfigKey kConfigKey(0, 12345);
 
+namespace {
+void makeLogEvent(LogEvent* logEvent, int32_t atomId, int64_t timestampNs, string str) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, atomId);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
+
+    AStatsEvent_writeString(statsEvent, str.c_str());
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    logEvent->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
+}
+}  // anonymous namespace
+
 TEST(EventMetricProducerTest, TestNoCondition) {
     int64_t bucketStartTimeNs = 10000000000;
     int64_t eventStartTimeNs = bucketStartTimeNs + 1;
@@ -43,8 +62,11 @@
     EventMetric metric;
     metric.set_id(1);
 
-    LogEvent event1(1 /*tag id*/, bucketStartTimeNs + 1);
-    LogEvent event2(1 /*tag id*/, bucketStartTimeNs + 2);
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    CreateNoValuesLogEvent(&event1, 1 /*tagId*/, bucketStartTimeNs + 1);
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    CreateNoValuesLogEvent(&event2, 1 /*tagId*/, bucketStartTimeNs + 2);
 
     sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
 
@@ -54,8 +76,17 @@
     eventProducer.onMatchedLogEvent(1 /*matcher index*/, event1);
     eventProducer.onMatchedLogEvent(1 /*matcher index*/, event2);
 
-    // TODO(b/110561136): get the report and check the content after the ProtoOutputStream change
-    // is done eventProducer.onDumpReport();
+    // Check dump report content.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    eventProducer.onDumpReport(bucketStartTimeNs + 20, true /*include current partial bucket*/,
+                               true /*erase data*/, FAST, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_event_metrics());
+    EXPECT_EQ(2, report.event_metrics().data_size());
+    EXPECT_EQ(bucketStartTimeNs + 1, report.event_metrics().data(0).elapsed_timestamp_nanos());
+    EXPECT_EQ(bucketStartTimeNs + 2, report.event_metrics().data(1).elapsed_timestamp_nanos());
 }
 
 TEST(EventMetricProducerTest, TestEventsWithNonSlicedCondition) {
@@ -67,8 +98,11 @@
     metric.set_id(1);
     metric.set_condition(StringToId("SCREEN_ON"));
 
-    LogEvent event1(1, bucketStartTimeNs + 1);
-    LogEvent event2(1, bucketStartTimeNs + 10);
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    CreateNoValuesLogEvent(&event1, 1 /*tagId*/, bucketStartTimeNs + 1);
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    CreateNoValuesLogEvent(&event2, 1 /*tagId*/, bucketStartTimeNs + 10);
 
     sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
 
@@ -81,51 +115,67 @@
 
     eventProducer.onMatchedLogEvent(1 /*matcher index*/, event2);
 
-    // TODO: get the report and check the content after the ProtoOutputStream change is done.
-    // eventProducer.onDumpReport();
+    // Check dump report content.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    eventProducer.onDumpReport(bucketStartTimeNs + 20, true /*include current partial bucket*/,
+                               true /*erase data*/, FAST, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_event_metrics());
+    EXPECT_EQ(1, report.event_metrics().data_size());
+    EXPECT_EQ(bucketStartTimeNs + 1, report.event_metrics().data(0).elapsed_timestamp_nanos());
 }
 
-// TODO(b/149590301): Update this test to use new socket schema.
-//TEST(EventMetricProducerTest, TestEventsWithSlicedCondition) {
-//    int64_t bucketStartTimeNs = 10000000000;
-//    int64_t bucketSizeNs = 30 * 1000 * 1000 * 1000LL;
-//
-//    int tagId = 1;
-//    int conditionTagId = 2;
-//
-//    EventMetric metric;
-//    metric.set_id(1);
-//    metric.set_condition(StringToId("APP_IN_BACKGROUND_PER_UID_AND_SCREEN_ON"));
-//    MetricConditionLink* link = metric.add_links();
-//    link->set_condition(StringToId("APP_IN_BACKGROUND_PER_UID"));
-//    buildSimpleAtomFieldMatcher(tagId, 1, link->mutable_fields_in_what());
-//    buildSimpleAtomFieldMatcher(conditionTagId, 2, link->mutable_fields_in_condition());
-//
-//    LogEvent event1(tagId, bucketStartTimeNs + 1);
-//    EXPECT_TRUE(event1.write("111"));
-//    event1.init();
-//    ConditionKey key1;
-//    key1[StringToId("APP_IN_BACKGROUND_PER_UID")] = {getMockedDimensionKey(conditionTagId, 2, "111")};
-//
-//    LogEvent event2(tagId, bucketStartTimeNs + 10);
-//    EXPECT_TRUE(event2.write("222"));
-//    event2.init();
-//    ConditionKey key2;
-//    key2[StringToId("APP_IN_BACKGROUND_PER_UID")] = {getMockedDimensionKey(conditionTagId, 2, "222")};
-//
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    EXPECT_CALL(*wizard, query(_, key1, _)).WillOnce(Return(ConditionState::kFalse));
-//
-//    EXPECT_CALL(*wizard, query(_, key2, _)).WillOnce(Return(ConditionState::kTrue));
-//
-//    EventMetricProducer eventProducer(kConfigKey, metric, 1, wizard, bucketStartTimeNs);
-//
-//    eventProducer.onMatchedLogEvent(1 /*matcher index*/, event1);
-//    eventProducer.onMatchedLogEvent(1 /*matcher index*/, event2);
-//
-//    // TODO: get the report and check the content after the ProtoOutputStream change is done.
-//    // eventProducer.onDumpReport();
-//}
+TEST(EventMetricProducerTest, TestEventsWithSlicedCondition) {
+    int64_t bucketStartTimeNs = 10000000000;
+    int64_t bucketSizeNs = 30 * 1000 * 1000 * 1000LL;
+
+    int tagId = 1;
+    int conditionTagId = 2;
+
+    EventMetric metric;
+    metric.set_id(1);
+    metric.set_condition(StringToId("APP_IN_BACKGROUND_PER_UID_AND_SCREEN_ON"));
+    MetricConditionLink* link = metric.add_links();
+    link->set_condition(StringToId("APP_IN_BACKGROUND_PER_UID"));
+    buildSimpleAtomFieldMatcher(tagId, 1, link->mutable_fields_in_what());
+    buildSimpleAtomFieldMatcher(conditionTagId, 2, link->mutable_fields_in_condition());
+
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    makeLogEvent(&event1, 1 /*tagId*/, bucketStartTimeNs + 1, "111");
+    ConditionKey key1;
+    key1[StringToId("APP_IN_BACKGROUND_PER_UID")] = {
+            getMockedDimensionKey(conditionTagId, 2, "111")};
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    makeLogEvent(&event2, 1 /*tagId*/, bucketStartTimeNs + 10, "222");
+    ConditionKey key2;
+    key2[StringToId("APP_IN_BACKGROUND_PER_UID")] = {
+            getMockedDimensionKey(conditionTagId, 2, "222")};
+
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    // Condition is false for first event.
+    EXPECT_CALL(*wizard, query(_, key1, _)).WillOnce(Return(ConditionState::kFalse));
+    // Condition is true for second event.
+    EXPECT_CALL(*wizard, query(_, key2, _)).WillOnce(Return(ConditionState::kTrue));
+
+    EventMetricProducer eventProducer(kConfigKey, metric, 1, wizard, bucketStartTimeNs);
+
+    eventProducer.onMatchedLogEvent(1 /*matcher index*/, event1);
+    eventProducer.onMatchedLogEvent(1 /*matcher index*/, event2);
+
+    // Check dump report content.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    eventProducer.onDumpReport(bucketStartTimeNs + 20, true /*include current partial bucket*/,
+                               true /*erase data*/, FAST, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_event_metrics());
+    EXPECT_EQ(1, report.event_metrics().data_size());
+    EXPECT_EQ(bucketStartTimeNs + 10, report.event_metrics().data(0).elapsed_timestamp_nanos());
+}
 
 }  // namespace statsd
 }  // namespace os
diff --git a/cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp b/cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp
index 609324e..2fe05a4 100644
--- a/cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp
+++ b/cmds/statsd/tests/metrics/GaugeMetricProducer_test.cpp
@@ -26,6 +26,7 @@
 #include "src/matchers/SimpleLogMatchingTracker.h"
 #include "src/metrics/MetricProducer.h"
 #include "src/stats_log_util.h"
+#include "stats_event.h"
 #include "tests/statsd_test_util.h"
 
 using namespace testing;
@@ -53,6 +54,28 @@
 const int64_t bucket4StartTimeNs = bucketStartTimeNs + 3 * bucketSizeNs;
 const int64_t eventUpgradeTimeNs = bucketStartTimeNs + 15 * NS_PER_SEC;
 
+namespace {
+shared_ptr<LogEvent> makeLogEvent(int32_t atomId, int64_t timestampNs, int32_t value1, string str1,
+                                  int32_t value2) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, atomId);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
+
+    AStatsEvent_writeInt32(statsEvent, value1);
+    AStatsEvent_writeString(statsEvent, str1.c_str());
+    AStatsEvent_writeInt32(statsEvent, value2);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    shared_ptr<LogEvent> logEvent = std::make_shared<LogEvent>(/*uid=*/0, /*pid=*/0);
+    logEvent->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
+
+    return logEvent;
+}
+}  // anonymous namespace
+
 /*
  * Tests that the first bucket works correctly
  */
@@ -82,775 +105,712 @@
                                       logEventMatcherIndex, eventMatcherWizard,
                                       -1, -1, tagId, 5, 600 * NS_PER_SEC + NS_PER_SEC / 2,
                                       pullerManager);
+    gaugeProducer.prepareFirstBucket();
 
     EXPECT_EQ(600500000000, gaugeProducer.mCurrentBucketStartTimeNs);
     EXPECT_EQ(10, gaugeProducer.mCurrentBucketNum);
     EXPECT_EQ(660000000005, gaugeProducer.getCurrentBucketEndTimeNs());
 }
 
-// TODO(b/149590301): Update these tests to use new socket schema.
-//TEST(GaugeMetricProducerTest, TestPulledEventsNoCondition) {
-//    GaugeMetric metric;
-//    metric.set_id(metricId);
-//    metric.set_bucket(ONE_MINUTE);
-//    metric.mutable_gauge_fields_filter()->set_include_all(false);
-//    metric.set_max_pull_delay_sec(INT_MAX);
-//    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
-//    gaugeFieldMatcher->set_field(tagId);
-//    gaugeFieldMatcher->add_child()->set_field(1);
-//    gaugeFieldMatcher->add_child()->set_field(3);
-//
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard = new EventMatcherWizard({
-//        new SimpleLogMatchingTracker(atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//                event->write(3);
-//                event->write("some value");
-//                event->write(11);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
-//                                      logEventMatcherIndex, eventMatcherWizard,
-//                                      tagId, -1, tagId, bucketStartTimeNs, bucketStartTimeNs,
-//                                      pullerManager);
-//
-//    vector<shared_ptr<LogEvent>> allData;
-//    allData.clear();
-//    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event->write(10);
-//    event->write("some value");
-//    event->write(11);
-//    event->init();
-//    allData.push_back(event);
-//
-//    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    auto it = gaugeProducer.mCurrentSlicedBucket->begin()->second.front().mFields->begin();
-//    EXPECT_EQ(INT, it->mValue.getType());
-//    EXPECT_EQ(10, it->mValue.int_value);
-//    it++;
-//    EXPECT_EQ(11, it->mValue.int_value);
-//    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
-//    EXPECT_EQ(3, gaugeProducer.mPastBuckets.begin()->second.back().mGaugeAtoms
-//        .front().mFields->begin()->mValue.int_value);
-//
-//    allData.clear();
-//    std::shared_ptr<LogEvent> event2 = std::make_shared<LogEvent>(tagId, bucket3StartTimeNs + 10);
-//    event2->write(24);
-//    event2->write("some value");
-//    event2->write(25);
-//    event2->init();
-//    allData.push_back(event2);
-//    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucket3StartTimeNs);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    it = gaugeProducer.mCurrentSlicedBucket->begin()->second.front().mFields->begin();
-//    EXPECT_EQ(INT, it->mValue.getType());
-//    EXPECT_EQ(24, it->mValue.int_value);
-//    it++;
-//    EXPECT_EQ(INT, it->mValue.getType());
-//    EXPECT_EQ(25, it->mValue.int_value);
-//    // One dimension.
-//    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
-//    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets.begin()->second.size());
-//    it = gaugeProducer.mPastBuckets.begin()->second.back().mGaugeAtoms.front().mFields->begin();
-//    EXPECT_EQ(INT, it->mValue.getType());
-//    EXPECT_EQ(10L, it->mValue.int_value);
-//    it++;
-//    EXPECT_EQ(INT, it->mValue.getType());
-//    EXPECT_EQ(11L, it->mValue.int_value);
-//
-//    gaugeProducer.flushIfNeededLocked(bucket4StartTimeNs);
-//    EXPECT_EQ(0UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    // One dimension.
-//    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
-//    EXPECT_EQ(3UL, gaugeProducer.mPastBuckets.begin()->second.size());
-//    it = gaugeProducer.mPastBuckets.begin()->second.back().mGaugeAtoms.front().mFields->begin();
-//    EXPECT_EQ(INT, it->mValue.getType());
-//    EXPECT_EQ(24L, it->mValue.int_value);
-//    it++;
-//    EXPECT_EQ(INT, it->mValue.getType());
-//    EXPECT_EQ(25L, it->mValue.int_value);
-//}
-//
-//TEST(GaugeMetricProducerTest, TestPushedEventsWithUpgrade) {
-//    sp<AlarmMonitor> alarmMonitor;
-//    GaugeMetric metric;
-//    metric.set_id(metricId);
-//    metric.set_bucket(ONE_MINUTE);
-//    metric.mutable_gauge_fields_filter()->set_include_all(true);
-//
-//    Alert alert;
-//    alert.set_id(101);
-//    alert.set_metric_id(metricId);
-//    alert.set_trigger_if_sum_gt(25);
-//    alert.set_num_buckets(100);
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard = new EventMatcherWizard({
-//        new SimpleLogMatchingTracker(atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//
-//    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
-//                                      logEventMatcherIndex, eventMatcherWizard,
-//                                      -1 /* -1 means no pulling */, -1, tagId, bucketStartTimeNs,
-//                                      bucketStartTimeNs, pullerManager);
-//
-//    sp<AnomalyTracker> anomalyTracker = gaugeProducer.addAnomalyTracker(alert, alarmMonitor);
-//    EXPECT_TRUE(anomalyTracker != nullptr);
-//
-//    shared_ptr<LogEvent> event1 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//    event1->write(1);
-//    event1->write(10);
-//    event1->init();
-//    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, *event1);
-//    EXPECT_EQ(1UL, (*gaugeProducer.mCurrentSlicedBucket).count(DEFAULT_METRIC_DIMENSION_KEY));
-//
-//    gaugeProducer.notifyAppUpgrade(eventUpgradeTimeNs, "ANY.APP", 1, 1);
-//    EXPECT_EQ(0UL, (*gaugeProducer.mCurrentSlicedBucket).count(DEFAULT_METRIC_DIMENSION_KEY));
-//    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
-//    EXPECT_EQ(0L, gaugeProducer.mCurrentBucketNum);
-//    EXPECT_EQ(eventUpgradeTimeNs, gaugeProducer.mCurrentBucketStartTimeNs);
-//    // Partial buckets are not sent to anomaly tracker.
-//    EXPECT_EQ(0, anomalyTracker->getSumOverPastBuckets(DEFAULT_METRIC_DIMENSION_KEY));
-//
-//    // Create an event in the same partial bucket.
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 59 * NS_PER_SEC);
-//    event2->write(1);
-//    event2->write(10);
-//    event2->init();
-//    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, *event2);
-//    EXPECT_EQ(0L, gaugeProducer.mCurrentBucketNum);
-//    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
-//    EXPECT_EQ((int64_t)eventUpgradeTimeNs, gaugeProducer.mCurrentBucketStartTimeNs);
-//    // Partial buckets are not sent to anomaly tracker.
-//    EXPECT_EQ(0, anomalyTracker->getSumOverPastBuckets(DEFAULT_METRIC_DIMENSION_KEY));
-//
-//    // Next event should trigger creation of new bucket and send previous full bucket to anomaly
-//    // tracker.
-//    shared_ptr<LogEvent> event3 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 65 * NS_PER_SEC);
-//    event3->write(1);
-//    event3->write(10);
-//    event3->init();
-//    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, *event3);
-//    EXPECT_EQ(1L, gaugeProducer.mCurrentBucketNum);
-//    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
-//    EXPECT_EQ((int64_t)bucketStartTimeNs + bucketSizeNs, gaugeProducer.mCurrentBucketStartTimeNs);
-//    EXPECT_EQ(1, anomalyTracker->getSumOverPastBuckets(DEFAULT_METRIC_DIMENSION_KEY));
-//
-//    // Next event should trigger creation of new bucket.
-//    shared_ptr<LogEvent> event4 =
-//            make_shared<LogEvent>(tagId, bucketStartTimeNs + 125 * NS_PER_SEC);
-//    event4->write(1);
-//    event4->write(10);
-//    event4->init();
-//    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, *event4);
-//    EXPECT_EQ(2L, gaugeProducer.mCurrentBucketNum);
-//    EXPECT_EQ(3UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
-//    EXPECT_EQ(2, anomalyTracker->getSumOverPastBuckets(DEFAULT_METRIC_DIMENSION_KEY));
-//}
-//
-//TEST(GaugeMetricProducerTest, TestPulledWithUpgrade) {
-//    GaugeMetric metric;
-//    metric.set_id(metricId);
-//    metric.set_bucket(ONE_MINUTE);
-//    metric.set_max_pull_delay_sec(INT_MAX);
-//    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
-//    gaugeFieldMatcher->set_field(tagId);
-//    gaugeFieldMatcher->add_child()->set_field(2);
-//
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard =
-//            new EventMatcherWizard({new SimpleLogMatchingTracker(
-//                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Return(false))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, eventUpgradeTimeNs);
-//                event->write("some value");
-//                event->write(2);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
-//                                      logEventMatcherIndex, eventMatcherWizard, tagId, -1, tagId,
-//                                      bucketStartTimeNs, bucketStartTimeNs, pullerManager);
-//
-//    vector<shared_ptr<LogEvent>> allData;
-//    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 1);
-//    event->write("some value");
-//    event->write(1);
-//    event->init();
-//    allData.push_back(event);
-//    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucketStartTimeNs);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_EQ(1, gaugeProducer.mCurrentSlicedBucket->begin()
-//                         ->second.front()
-//                         .mFields->begin()
-//                         ->mValue.int_value);
-//
-//    gaugeProducer.notifyAppUpgrade(eventUpgradeTimeNs, "ANY.APP", 1, 1);
-//    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
-//    EXPECT_EQ(0L, gaugeProducer.mCurrentBucketNum);
-//    EXPECT_EQ((int64_t)eventUpgradeTimeNs, gaugeProducer.mCurrentBucketStartTimeNs);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_EQ(2, gaugeProducer.mCurrentSlicedBucket->begin()
-//                         ->second.front()
-//                         .mFields->begin()
-//                         ->mValue.int_value);
-//
-//    allData.clear();
-//    event = make_shared<LogEvent>(tagId, bucketStartTimeNs + bucketSizeNs + 1);
-//    event->write("some value");
-//    event->write(3);
-//    event->init();
-//    allData.push_back(event);
-//    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucketStartTimeNs + bucketSizeNs);
-//    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_EQ(3, gaugeProducer.mCurrentSlicedBucket->begin()
-//                         ->second.front()
-//                         .mFields->begin()
-//                         ->mValue.int_value);
-//}
-//
-//TEST(GaugeMetricProducerTest, TestPulledWithAppUpgradeDisabled) {
-//    GaugeMetric metric;
-//    metric.set_id(metricId);
-//    metric.set_bucket(ONE_MINUTE);
-//    metric.set_max_pull_delay_sec(INT_MAX);
-//    metric.set_split_bucket_for_app_upgrade(false);
-//    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
-//    gaugeFieldMatcher->set_field(tagId);
-//    gaugeFieldMatcher->add_child()->set_field(2);
-//
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard = new EventMatcherWizard({
-//        new SimpleLogMatchingTracker(atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _)).WillOnce(Return(false));
-//
-//    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
-//                                      logEventMatcherIndex, eventMatcherWizard,
-//                                      tagId, -1, tagId, bucketStartTimeNs, bucketStartTimeNs,
-//                                      pullerManager);
-//
-//    vector<shared_ptr<LogEvent>> allData;
-//    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 1);
-//    event->write("some value");
-//    event->write(1);
-//    event->init();
-//    allData.push_back(event);
-//    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucketStartTimeNs);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_EQ(1, gaugeProducer.mCurrentSlicedBucket->begin()
-//                         ->second.front()
-//                         .mFields->begin()
-//                         ->mValue.int_value);
-//
-//    gaugeProducer.notifyAppUpgrade(eventUpgradeTimeNs, "ANY.APP", 1, 1);
-//    EXPECT_EQ(0UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
-//    EXPECT_EQ(0L, gaugeProducer.mCurrentBucketNum);
-//    EXPECT_EQ(bucketStartTimeNs, gaugeProducer.mCurrentBucketStartTimeNs);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_EQ(1, gaugeProducer.mCurrentSlicedBucket->begin()
-//                         ->second.front()
-//                         .mFields->begin()
-//                         ->mValue.int_value);
-//}
-//
-//TEST(GaugeMetricProducerTest, TestPulledEventsWithCondition) {
-//    GaugeMetric metric;
-//    metric.set_id(metricId);
-//    metric.set_bucket(ONE_MINUTE);
-//    metric.set_max_pull_delay_sec(INT_MAX);
-//    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
-//    gaugeFieldMatcher->set_field(tagId);
-//    gaugeFieldMatcher->add_child()->set_field(2);
-//    metric.set_condition(StringToId("SCREEN_ON"));
-//
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard = new EventMatcherWizard({
-//        new SimpleLogMatchingTracker(atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//                event->write("some value");
-//                event->write(100);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    GaugeMetricProducer gaugeProducer(kConfigKey, metric, 1, wizard,
-//                                      logEventMatcherIndex, eventMatcherWizard, tagId, -1, tagId,
-//                                      bucketStartTimeNs, bucketStartTimeNs, pullerManager);
-//
-//    gaugeProducer.onConditionChanged(true, bucketStartTimeNs + 8);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_EQ(100, gaugeProducer.mCurrentSlicedBucket->begin()
-//                           ->second.front()
-//                           .mFields->begin()
-//                           ->mValue.int_value);
-//    EXPECT_EQ(0UL, gaugeProducer.mPastBuckets.size());
-//
-//    vector<shared_ptr<LogEvent>> allData;
-//    allData.clear();
-//    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event->write("some value");
-//    event->write(110);
-//    event->init();
-//    allData.push_back(event);
-//    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
-//
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_EQ(110, gaugeProducer.mCurrentSlicedBucket->begin()
-//                           ->second.front()
-//                           .mFields->begin()
-//                           ->mValue.int_value);
-//    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
-//    EXPECT_EQ(100, gaugeProducer.mPastBuckets.begin()
-//                           ->second.back()
-//                           .mGaugeAtoms.front()
-//                           .mFields->begin()
-//                           ->mValue.int_value);
-//
-//    gaugeProducer.onConditionChanged(false, bucket2StartTimeNs + 10);
-//    gaugeProducer.flushIfNeededLocked(bucket3StartTimeNs + 10);
-//    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
-//    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets.begin()->second.size());
-//    EXPECT_EQ(110L, gaugeProducer.mPastBuckets.begin()
-//                            ->second.back()
-//                            .mGaugeAtoms.front()
-//                            .mFields->begin()
-//                            ->mValue.int_value);
-//}
-//
-//TEST(GaugeMetricProducerTest, TestPulledEventsWithSlicedCondition) {
-//    const int conditionTag = 65;
-//    GaugeMetric metric;
-//    metric.set_id(1111111);
-//    metric.set_bucket(ONE_MINUTE);
-//    metric.mutable_gauge_fields_filter()->set_include_all(true);
-//    metric.set_condition(StringToId("APP_DIED"));
-//    metric.set_max_pull_delay_sec(INT_MAX);
-//    auto dim = metric.mutable_dimensions_in_what();
-//    dim->set_field(tagId);
-//    dim->add_child()->set_field(1);
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard = new EventMatcherWizard({
-//        new SimpleLogMatchingTracker(atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    EXPECT_CALL(*wizard, query(_, _, _))
-//            .WillRepeatedly(
-//                    Invoke([](const int conditionIndex, const ConditionKey& conditionParameters,
-//                              const bool isPartialLink) {
-//                        int pos[] = {1, 0, 0};
-//                        Field f(conditionTag, pos, 0);
-//                        HashableDimensionKey key;
-//                        key.mutableValues()->emplace_back(f, Value((int32_t)1000000));
-//
-//                        return ConditionState::kTrue;
-//                    }));
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//                event->write(1000);
-//                event->write(100);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    GaugeMetricProducer gaugeProducer(kConfigKey, metric, 1, wizard,
-//                                      logEventMatcherIndex, eventMatcherWizard, tagId, -1, tagId,
-//                                      bucketStartTimeNs, bucketStartTimeNs, pullerManager);
-//
-//    gaugeProducer.onSlicedConditionMayChange(true, bucketStartTimeNs + 8);
-//
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    const auto& key = gaugeProducer.mCurrentSlicedBucket->begin()->first;
-//    EXPECT_EQ(1UL, key.getDimensionKeyInWhat().getValues().size());
-//    EXPECT_EQ(1000, key.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//
-//    EXPECT_EQ(0UL, gaugeProducer.mPastBuckets.size());
-//
-//    vector<shared_ptr<LogEvent>> allData;
-//    allData.clear();
-//    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event->write(1000);
-//    event->write(110);
-//    event->init();
-//    allData.push_back(event);
-//    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
-//
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
-//}
-//
-//TEST(GaugeMetricProducerTest, TestPulledEventsAnomalyDetection) {
-//    sp<AlarmMonitor> alarmMonitor;
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _)).WillOnce(Return(false));
-//
-//    GaugeMetric metric;
-//    metric.set_id(metricId);
-//    metric.set_bucket(ONE_MINUTE);
-//    metric.set_max_pull_delay_sec(INT_MAX);
-//    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
-//    gaugeFieldMatcher->set_field(tagId);
-//    gaugeFieldMatcher->add_child()->set_field(2);
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard = new EventMatcherWizard({
-//        new SimpleLogMatchingTracker(atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//
-//    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
-//                                      logEventMatcherIndex, eventMatcherWizard,
-//                                      tagId, -1, tagId, bucketStartTimeNs, bucketStartTimeNs,
-//                                      pullerManager);
-//
-//    Alert alert;
-//    alert.set_id(101);
-//    alert.set_metric_id(metricId);
-//    alert.set_trigger_if_sum_gt(25);
-//    alert.set_num_buckets(2);
-//    const int32_t refPeriodSec = 60;
-//    alert.set_refractory_period_secs(refPeriodSec);
-//    sp<AnomalyTracker> anomalyTracker = gaugeProducer.addAnomalyTracker(alert, alarmMonitor);
-//
-//    int tagId = 1;
-//    std::shared_ptr<LogEvent> event1 = std::make_shared<LogEvent>(tagId, bucketStartTimeNs + 1);
-//    event1->write("some value");
-//    event1->write(13);
-//    event1->init();
-//
-//    gaugeProducer.onDataPulled({event1}, /** succeed */ true, bucketStartTimeNs);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_EQ(13L, gaugeProducer.mCurrentSlicedBucket->begin()
-//                           ->second.front()
-//                           .mFields->begin()
-//                           ->mValue.int_value);
-//    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY), 0U);
-//
-//    std::shared_ptr<LogEvent> event2 =
-//            std::make_shared<LogEvent>(tagId, bucketStartTimeNs + bucketSizeNs + 20);
-//    event2->write("some value");
-//    event2->write(15);
-//    event2->init();
-//
-//    gaugeProducer.onDataPulled({event2}, /** succeed */ true, bucketStartTimeNs + bucketSizeNs);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_EQ(15L, gaugeProducer.mCurrentSlicedBucket->begin()
-//                           ->second.front()
-//                           .mFields->begin()
-//                           ->mValue.int_value);
-//    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
-//              std::ceil(1.0 * event2->GetElapsedTimestampNs() / NS_PER_SEC) + refPeriodSec);
-//
-//    std::shared_ptr<LogEvent> event3 =
-//            std::make_shared<LogEvent>(tagId, bucketStartTimeNs + 2 * bucketSizeNs + 10);
-//    event3->write("some value");
-//    event3->write(26);
-//    event3->init();
-//
-//    gaugeProducer.onDataPulled({event3}, /** succeed */ true, bucket2StartTimeNs + 2 * bucketSizeNs);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_EQ(26L, gaugeProducer.mCurrentSlicedBucket->begin()
-//                           ->second.front()
-//                           .mFields->begin()
-//                           ->mValue.int_value);
-//    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
-//              std::ceil(1.0 * event2->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
-//
-//    // The event4 does not have the gauge field. Thus the current bucket value is 0.
-//    std::shared_ptr<LogEvent> event4 =
-//            std::make_shared<LogEvent>(tagId, bucketStartTimeNs + 3 * bucketSizeNs + 10);
-//    event4->write("some value");
-//    event4->init();
-//    gaugeProducer.onDataPulled({event4}, /** succeed */ true, bucketStartTimeNs + 3 * bucketSizeNs);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_TRUE(gaugeProducer.mCurrentSlicedBucket->begin()->second.front().mFields->empty());
-//}
-//
-//TEST(GaugeMetricProducerTest, TestPullOnTrigger) {
-//    GaugeMetric metric;
-//    metric.set_id(metricId);
-//    metric.set_bucket(ONE_MINUTE);
-//    metric.set_sampling_type(GaugeMetric::FIRST_N_SAMPLES);
-//    metric.mutable_gauge_fields_filter()->set_include_all(false);
-//    metric.set_max_pull_delay_sec(INT_MAX);
-//    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
-//    gaugeFieldMatcher->set_field(tagId);
-//    gaugeFieldMatcher->add_child()->set_field(1);
-//
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard = new EventMatcherWizard({
-//        new SimpleLogMatchingTracker(atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//                event->write(4);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 20);
-//                event->write(5);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            .WillOnce(Return(true));
-//
-//    int triggerId = 5;
-//    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
-//                                      logEventMatcherIndex, eventMatcherWizard,
-//                                      tagId, triggerId, tagId, bucketStartTimeNs, bucketStartTimeNs,
-//                                      pullerManager);
-//
-//    vector<shared_ptr<LogEvent>> allData;
-//
-//    EXPECT_EQ(0UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    LogEvent trigger(triggerId, bucketStartTimeNs + 10);
-//    trigger.init();
-//    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
-//    trigger.setElapsedTimestampNs(bucketStartTimeNs + 20);
-//    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
-//    EXPECT_EQ(2UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
-//    trigger.setElapsedTimestampNs(bucket2StartTimeNs + 1);
-//    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
-//
-//    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
-//    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets.begin()->second.back().mGaugeAtoms.size());
-//    EXPECT_EQ(4, gaugeProducer.mPastBuckets.begin()
-//                         ->second.back()
-//                         .mGaugeAtoms[0]
-//                         .mFields->begin()
-//                         ->mValue.int_value);
-//    EXPECT_EQ(5, gaugeProducer.mPastBuckets.begin()
-//                         ->second.back()
-//                         .mGaugeAtoms[1]
-//                         .mFields->begin()
-//                         ->mValue.int_value);
-//}
-//
-//TEST(GaugeMetricProducerTest, TestRemoveDimensionInOutput) {
-//    GaugeMetric metric;
-//    metric.set_id(metricId);
-//    metric.set_bucket(ONE_MINUTE);
-//    metric.set_sampling_type(GaugeMetric::FIRST_N_SAMPLES);
-//    metric.mutable_gauge_fields_filter()->set_include_all(true);
-//    metric.set_max_pull_delay_sec(INT_MAX);
-//    auto dimensionMatcher = metric.mutable_dimensions_in_what();
-//    // use field 1 as dimension.
-//    dimensionMatcher->set_field(tagId);
-//    dimensionMatcher->add_child()->set_field(1);
-//
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard = new EventMatcherWizard({
-//        new SimpleLogMatchingTracker(atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 3);
-//                event->write(3);
-//                event->write(4);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//                event->write(4);
-//                event->write(5);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 20);
-//                event->write(4);
-//                event->write(6);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            .WillOnce(Return(true));
-//
-//    int triggerId = 5;
-//    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
-//                                      logEventMatcherIndex, eventMatcherWizard,
-//                                      tagId, triggerId, tagId, bucketStartTimeNs, bucketStartTimeNs,
-//                                      pullerManager);
-//
-//    vector<shared_ptr<LogEvent>> allData;
-//
-//    LogEvent trigger(triggerId, bucketStartTimeNs + 3);
-//    trigger.init();
-//    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    trigger.setElapsedTimestampNs(bucketStartTimeNs + 10);
-//    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
-//    EXPECT_EQ(2UL, gaugeProducer.mCurrentSlicedBucket->size());
-//    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
-//    trigger.setElapsedTimestampNs(bucketStartTimeNs + 20);
-//    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
-//    EXPECT_EQ(2UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
-//    trigger.setElapsedTimestampNs(bucket2StartTimeNs + 1);
-//    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
-//
-//    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets.size());
-//    auto bucketIt = gaugeProducer.mPastBuckets.begin();
-//    EXPECT_EQ(1UL, bucketIt->second.back().mGaugeAtoms.size());
-//    EXPECT_EQ(3, bucketIt->first.getDimensionKeyInWhat().getValues().begin()->mValue.int_value);
-//    EXPECT_EQ(4, bucketIt->second.back().mGaugeAtoms[0].mFields->begin()->mValue.int_value);
-//    bucketIt++;
-//    EXPECT_EQ(2UL, bucketIt->second.back().mGaugeAtoms.size());
-//    EXPECT_EQ(4, bucketIt->first.getDimensionKeyInWhat().getValues().begin()->mValue.int_value);
-//    EXPECT_EQ(5, bucketIt->second.back().mGaugeAtoms[0].mFields->begin()->mValue.int_value);
-//    EXPECT_EQ(6, bucketIt->second.back().mGaugeAtoms[1].mFields->begin()->mValue.int_value);
-//}
-//
-///*
-// * Test that BUCKET_TOO_SMALL dump reason is logged when a flushed bucket size
-// * is smaller than the "min_bucket_size_nanos" specified in the metric config.
-// */
-//TEST(GaugeMetricProducerTest_BucketDrop, TestBucketDropWhenBucketTooSmall) {
-//    GaugeMetric metric;
-//    metric.set_id(metricId);
-//    metric.set_bucket(FIVE_MINUTES);
-//    metric.set_sampling_type(GaugeMetric::FIRST_N_SAMPLES);
-//    metric.set_min_bucket_size_nanos(10000000000);  // 10 seconds
-//
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard = new EventMatcherWizard({
-//        new SimpleLogMatchingTracker(atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // Bucket start.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs);
-//                event->write("field1");
-//                event->write(10);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    int triggerId = 5;
-//    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
-//                                      logEventMatcherIndex, eventMatcherWizard,
-//                                      tagId, triggerId, tagId, bucketStartTimeNs, bucketStartTimeNs,
-//                                      pullerManager);
-//
-//    LogEvent trigger(triggerId, bucketStartTimeNs + 3);
-//    trigger.init();
-//    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, trigger);
-//
-//    // Check dump report.
-//    ProtoOutputStream output;
-//    std::set<string> strSet;
-//    gaugeProducer.onDumpReport(bucketStartTimeNs + 9000000, true /* include recent buckets */,
-//                                true, FAST /* dump_latency */, &strSet, &output);
-//
-//    StatsLogReport report = outputStreamToProto(&output);
-//    EXPECT_TRUE(report.has_gauge_metrics());
-//    EXPECT_EQ(0, report.gauge_metrics().data_size());
-//    EXPECT_EQ(1, report.gauge_metrics().skipped_size());
-//
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
-//              report.gauge_metrics().skipped(0).start_bucket_elapsed_millis());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 9000000),
-//              report.gauge_metrics().skipped(0).end_bucket_elapsed_millis());
-//    EXPECT_EQ(1, report.gauge_metrics().skipped(0).drop_event_size());
-//
-//    auto dropEvent = report.gauge_metrics().skipped(0).drop_event(0);
-//    EXPECT_EQ(BucketDropReason::BUCKET_TOO_SMALL, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 9000000), dropEvent.drop_time_millis());
-//}
+TEST(GaugeMetricProducerTest, TestPulledEventsNoCondition) {
+    GaugeMetric metric;
+    metric.set_id(metricId);
+    metric.set_bucket(ONE_MINUTE);
+    metric.mutable_gauge_fields_filter()->set_include_all(false);
+    metric.set_max_pull_delay_sec(INT_MAX);
+    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
+    gaugeFieldMatcher->set_field(tagId);
+    gaugeFieldMatcher->add_child()->set_field(1);
+    gaugeFieldMatcher->add_child()->set_field(3);
+
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(makeLogEvent(tagId, bucketStartTimeNs + 10, 3, "some value", 11));
+                return true;
+            }));
+
+    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
+                                      logEventMatcherIndex, eventMatcherWizard, tagId, -1, tagId,
+                                      bucketStartTimeNs, bucketStartTimeNs, pullerManager);
+    gaugeProducer.prepareFirstBucket();
+
+    vector<shared_ptr<LogEvent>> allData;
+    allData.clear();
+    allData.push_back(makeLogEvent(tagId, bucket2StartTimeNs + 1, 10, "some value", 11));
+
+    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    auto it = gaugeProducer.mCurrentSlicedBucket->begin()->second.front().mFields->begin();
+    EXPECT_EQ(INT, it->mValue.getType());
+    EXPECT_EQ(10, it->mValue.int_value);
+    it++;
+    EXPECT_EQ(11, it->mValue.int_value);
+    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
+    EXPECT_EQ(3, gaugeProducer.mPastBuckets.begin()
+                         ->second.back()
+                         .mGaugeAtoms.front()
+                         .mFields->begin()
+                         ->mValue.int_value);
+
+    allData.clear();
+    allData.push_back(makeLogEvent(tagId, bucket3StartTimeNs + 10, 24, "some value", 25));
+    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucket3StartTimeNs);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    it = gaugeProducer.mCurrentSlicedBucket->begin()->second.front().mFields->begin();
+    EXPECT_EQ(INT, it->mValue.getType());
+    EXPECT_EQ(24, it->mValue.int_value);
+    it++;
+    EXPECT_EQ(INT, it->mValue.getType());
+    EXPECT_EQ(25, it->mValue.int_value);
+    // One dimension.
+    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
+    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets.begin()->second.size());
+    it = gaugeProducer.mPastBuckets.begin()->second.back().mGaugeAtoms.front().mFields->begin();
+    EXPECT_EQ(INT, it->mValue.getType());
+    EXPECT_EQ(10L, it->mValue.int_value);
+    it++;
+    EXPECT_EQ(INT, it->mValue.getType());
+    EXPECT_EQ(11L, it->mValue.int_value);
+
+    gaugeProducer.flushIfNeededLocked(bucket4StartTimeNs);
+    EXPECT_EQ(0UL, gaugeProducer.mCurrentSlicedBucket->size());
+    // One dimension.
+    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
+    EXPECT_EQ(3UL, gaugeProducer.mPastBuckets.begin()->second.size());
+    it = gaugeProducer.mPastBuckets.begin()->second.back().mGaugeAtoms.front().mFields->begin();
+    EXPECT_EQ(INT, it->mValue.getType());
+    EXPECT_EQ(24L, it->mValue.int_value);
+    it++;
+    EXPECT_EQ(INT, it->mValue.getType());
+    EXPECT_EQ(25L, it->mValue.int_value);
+}
+
+TEST(GaugeMetricProducerTest, TestPushedEventsWithUpgrade) {
+    sp<AlarmMonitor> alarmMonitor;
+    GaugeMetric metric;
+    metric.set_id(metricId);
+    metric.set_bucket(ONE_MINUTE);
+    metric.mutable_gauge_fields_filter()->set_include_all(true);
+
+    Alert alert;
+    alert.set_id(101);
+    alert.set_metric_id(metricId);
+    alert.set_trigger_if_sum_gt(25);
+    alert.set_num_buckets(100);
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+
+    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
+                                      logEventMatcherIndex, eventMatcherWizard,
+                                      -1 /* -1 means no pulling */, -1, tagId, bucketStartTimeNs,
+                                      bucketStartTimeNs, pullerManager);
+    gaugeProducer.prepareFirstBucket();
+
+    sp<AnomalyTracker> anomalyTracker = gaugeProducer.addAnomalyTracker(alert, alarmMonitor);
+    EXPECT_TRUE(anomalyTracker != nullptr);
+
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event1, tagId, bucketStartTimeNs + 10, 1, 10);
+    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, event1);
+    EXPECT_EQ(1UL, (*gaugeProducer.mCurrentSlicedBucket).count(DEFAULT_METRIC_DIMENSION_KEY));
+
+    gaugeProducer.notifyAppUpgrade(eventUpgradeTimeNs, "ANY.APP", 1, 1);
+    EXPECT_EQ(0UL, (*gaugeProducer.mCurrentSlicedBucket).count(DEFAULT_METRIC_DIMENSION_KEY));
+    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
+    EXPECT_EQ(0L, gaugeProducer.mCurrentBucketNum);
+    EXPECT_EQ(eventUpgradeTimeNs, gaugeProducer.mCurrentBucketStartTimeNs);
+    // Partial buckets are not sent to anomaly tracker.
+    EXPECT_EQ(0, anomalyTracker->getSumOverPastBuckets(DEFAULT_METRIC_DIMENSION_KEY));
+
+    // Create an event in the same partial bucket.
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event2, tagId, bucketStartTimeNs + 59 * NS_PER_SEC, 1, 10);
+    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, event2);
+    EXPECT_EQ(0L, gaugeProducer.mCurrentBucketNum);
+    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
+    EXPECT_EQ((int64_t)eventUpgradeTimeNs, gaugeProducer.mCurrentBucketStartTimeNs);
+    // Partial buckets are not sent to anomaly tracker.
+    EXPECT_EQ(0, anomalyTracker->getSumOverPastBuckets(DEFAULT_METRIC_DIMENSION_KEY));
+
+    // Next event should trigger creation of new bucket and send previous full bucket to anomaly
+    // tracker.
+    LogEvent event3(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event3, tagId, bucketStartTimeNs + 65 * NS_PER_SEC, 1, 10);
+    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, event3);
+    EXPECT_EQ(1L, gaugeProducer.mCurrentBucketNum);
+    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
+    EXPECT_EQ((int64_t)bucketStartTimeNs + bucketSizeNs, gaugeProducer.mCurrentBucketStartTimeNs);
+    EXPECT_EQ(1, anomalyTracker->getSumOverPastBuckets(DEFAULT_METRIC_DIMENSION_KEY));
+
+    // Next event should trigger creation of new bucket.
+    LogEvent event4(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event4, tagId, bucketStartTimeNs + 125 * NS_PER_SEC, 1, 10);
+    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, event4);
+    EXPECT_EQ(2L, gaugeProducer.mCurrentBucketNum);
+    EXPECT_EQ(3UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
+    EXPECT_EQ(2, anomalyTracker->getSumOverPastBuckets(DEFAULT_METRIC_DIMENSION_KEY));
+}
+
+TEST(GaugeMetricProducerTest, TestPulledWithUpgrade) {
+    GaugeMetric metric;
+    metric.set_id(metricId);
+    metric.set_bucket(ONE_MINUTE);
+    metric.set_max_pull_delay_sec(INT_MAX);
+    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
+    gaugeFieldMatcher->set_field(tagId);
+    gaugeFieldMatcher->add_child()->set_field(2);
+
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Return(false))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, eventUpgradeTimeNs, 2));
+                        return true;
+                    }));
+
+    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
+                                      logEventMatcherIndex, eventMatcherWizard, tagId, -1, tagId,
+                                      bucketStartTimeNs, bucketStartTimeNs, pullerManager);
+    gaugeProducer.prepareFirstBucket();
+
+    vector<shared_ptr<LogEvent>> allData;
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 1, 1));
+    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucketStartTimeNs);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(1, gaugeProducer.mCurrentSlicedBucket->begin()
+                         ->second.front()
+                         .mFields->begin()
+                         ->mValue.int_value);
+
+    gaugeProducer.notifyAppUpgrade(eventUpgradeTimeNs, "ANY.APP", 1, 1);
+    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
+    EXPECT_EQ(0L, gaugeProducer.mCurrentBucketNum);
+    EXPECT_EQ((int64_t)eventUpgradeTimeNs, gaugeProducer.mCurrentBucketStartTimeNs);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(2, gaugeProducer.mCurrentSlicedBucket->begin()
+                         ->second.front()
+                         .mFields->begin()
+                         ->mValue.int_value);
+
+    allData.clear();
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + bucketSizeNs + 1, 3));
+    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucketStartTimeNs + bucketSizeNs);
+    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(3, gaugeProducer.mCurrentSlicedBucket->begin()
+                         ->second.front()
+                         .mFields->begin()
+                         ->mValue.int_value);
+}
+
+TEST(GaugeMetricProducerTest, TestPulledWithAppUpgradeDisabled) {
+    GaugeMetric metric;
+    metric.set_id(metricId);
+    metric.set_bucket(ONE_MINUTE);
+    metric.set_max_pull_delay_sec(INT_MAX);
+    metric.set_split_bucket_for_app_upgrade(false);
+    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
+    gaugeFieldMatcher->set_field(tagId);
+    gaugeFieldMatcher->add_child()->set_field(2);
+
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _)).WillOnce(Return(false));
+
+    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
+                                      logEventMatcherIndex, eventMatcherWizard, tagId, -1, tagId,
+                                      bucketStartTimeNs, bucketStartTimeNs, pullerManager);
+    gaugeProducer.prepareFirstBucket();
+
+    vector<shared_ptr<LogEvent>> allData;
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 1, 1));
+    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucketStartTimeNs);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(1, gaugeProducer.mCurrentSlicedBucket->begin()
+                         ->second.front()
+                         .mFields->begin()
+                         ->mValue.int_value);
+
+    gaugeProducer.notifyAppUpgrade(eventUpgradeTimeNs, "ANY.APP", 1, 1);
+    EXPECT_EQ(0UL, gaugeProducer.mPastBuckets[DEFAULT_METRIC_DIMENSION_KEY].size());
+    EXPECT_EQ(0L, gaugeProducer.mCurrentBucketNum);
+    EXPECT_EQ(bucketStartTimeNs, gaugeProducer.mCurrentBucketStartTimeNs);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(1, gaugeProducer.mCurrentSlicedBucket->begin()
+                         ->second.front()
+                         .mFields->begin()
+                         ->mValue.int_value);
+}
+
+TEST(GaugeMetricProducerTest, TestPulledEventsWithCondition) {
+    GaugeMetric metric;
+    metric.set_id(metricId);
+    metric.set_bucket(ONE_MINUTE);
+    metric.set_max_pull_delay_sec(INT_MAX);
+    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
+    gaugeFieldMatcher->set_field(tagId);
+    gaugeFieldMatcher->add_child()->set_field(2);
+    metric.set_condition(StringToId("SCREEN_ON"));
+
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 10, 100));
+                return true;
+            }));
+
+    GaugeMetricProducer gaugeProducer(kConfigKey, metric, 1, wizard, logEventMatcherIndex,
+                                      eventMatcherWizard, tagId, -1, tagId, bucketStartTimeNs,
+                                      bucketStartTimeNs, pullerManager);
+    gaugeProducer.prepareFirstBucket();
+
+    gaugeProducer.onConditionChanged(true, bucketStartTimeNs + 8);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(100, gaugeProducer.mCurrentSlicedBucket->begin()
+                           ->second.front()
+                           .mFields->begin()
+                           ->mValue.int_value);
+    EXPECT_EQ(0UL, gaugeProducer.mPastBuckets.size());
+
+    vector<shared_ptr<LogEvent>> allData;
+    allData.clear();
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 1, 110));
+    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
+
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(110, gaugeProducer.mCurrentSlicedBucket->begin()
+                           ->second.front()
+                           .mFields->begin()
+                           ->mValue.int_value);
+    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
+    EXPECT_EQ(100, gaugeProducer.mPastBuckets.begin()
+                           ->second.back()
+                           .mGaugeAtoms.front()
+                           .mFields->begin()
+                           ->mValue.int_value);
+
+    gaugeProducer.onConditionChanged(false, bucket2StartTimeNs + 10);
+    gaugeProducer.flushIfNeededLocked(bucket3StartTimeNs + 10);
+    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
+    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets.begin()->second.size());
+    EXPECT_EQ(110L, gaugeProducer.mPastBuckets.begin()
+                            ->second.back()
+                            .mGaugeAtoms.front()
+                            .mFields->begin()
+                            ->mValue.int_value);
+}
+
+TEST(GaugeMetricProducerTest, TestPulledEventsWithSlicedCondition) {
+    const int conditionTag = 65;
+    GaugeMetric metric;
+    metric.set_id(1111111);
+    metric.set_bucket(ONE_MINUTE);
+    metric.mutable_gauge_fields_filter()->set_include_all(true);
+    metric.set_condition(StringToId("APP_DIED"));
+    metric.set_max_pull_delay_sec(INT_MAX);
+    auto dim = metric.mutable_dimensions_in_what();
+    dim->set_field(tagId);
+    dim->add_child()->set_field(1);
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    EXPECT_CALL(*wizard, query(_, _, _))
+            .WillRepeatedly(
+                    Invoke([](const int conditionIndex, const ConditionKey& conditionParameters,
+                              const bool isPartialLink) {
+                        int pos[] = {1, 0, 0};
+                        Field f(conditionTag, pos, 0);
+                        HashableDimensionKey key;
+                        key.mutableValues()->emplace_back(f, Value((int32_t)1000000));
+
+                        return ConditionState::kTrue;
+                    }));
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateTwoValueLogEvent(tagId, bucketStartTimeNs + 10, 1000, 100));
+                return true;
+            }));
+
+    GaugeMetricProducer gaugeProducer(kConfigKey, metric, 1, wizard, logEventMatcherIndex,
+                                      eventMatcherWizard, tagId, -1, tagId, bucketStartTimeNs,
+                                      bucketStartTimeNs, pullerManager);
+    gaugeProducer.prepareFirstBucket();
+
+    gaugeProducer.onSlicedConditionMayChange(true, bucketStartTimeNs + 8);
+
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    const auto& key = gaugeProducer.mCurrentSlicedBucket->begin()->first;
+    EXPECT_EQ(1UL, key.getDimensionKeyInWhat().getValues().size());
+    EXPECT_EQ(1000, key.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+
+    EXPECT_EQ(0UL, gaugeProducer.mPastBuckets.size());
+
+    vector<shared_ptr<LogEvent>> allData;
+    allData.clear();
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 1, 1000, 110));
+    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
+
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
+}
+
+TEST(GaugeMetricProducerTest, TestPulledEventsAnomalyDetection) {
+    sp<AlarmMonitor> alarmMonitor;
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _)).WillOnce(Return(false));
+
+    GaugeMetric metric;
+    metric.set_id(metricId);
+    metric.set_bucket(ONE_MINUTE);
+    metric.set_max_pull_delay_sec(INT_MAX);
+    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
+    gaugeFieldMatcher->set_field(tagId);
+    gaugeFieldMatcher->add_child()->set_field(2);
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+
+    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
+                                      logEventMatcherIndex, eventMatcherWizard, tagId, -1, tagId,
+                                      bucketStartTimeNs, bucketStartTimeNs, pullerManager);
+    gaugeProducer.prepareFirstBucket();
+
+    Alert alert;
+    alert.set_id(101);
+    alert.set_metric_id(metricId);
+    alert.set_trigger_if_sum_gt(25);
+    alert.set_num_buckets(2);
+    const int32_t refPeriodSec = 60;
+    alert.set_refractory_period_secs(refPeriodSec);
+    sp<AnomalyTracker> anomalyTracker = gaugeProducer.addAnomalyTracker(alert, alarmMonitor);
+
+    int tagId = 1;
+    vector<shared_ptr<LogEvent>> allData;
+    allData.clear();
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 1, 13));
+    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucketStartTimeNs);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(13L, gaugeProducer.mCurrentSlicedBucket->begin()
+                           ->second.front()
+                           .mFields->begin()
+                           ->mValue.int_value);
+    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY), 0U);
+
+    std::shared_ptr<LogEvent> event2 =
+            CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + bucketSizeNs + 20, 15);
+
+    allData.clear();
+    allData.push_back(event2);
+    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucketStartTimeNs + bucketSizeNs);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(15L, gaugeProducer.mCurrentSlicedBucket->begin()
+                           ->second.front()
+                           .mFields->begin()
+                           ->mValue.int_value);
+    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
+              std::ceil(1.0 * event2->GetElapsedTimestampNs() / NS_PER_SEC) + refPeriodSec);
+
+    allData.clear();
+    allData.push_back(
+            CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 2 * bucketSizeNs + 10, 26));
+    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs + 2 * bucketSizeNs);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(26L, gaugeProducer.mCurrentSlicedBucket->begin()
+                           ->second.front()
+                           .mFields->begin()
+                           ->mValue.int_value);
+    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
+              std::ceil(1.0 * event2->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
+
+    // This event does not have the gauge field. Thus the current bucket value is 0.
+    allData.clear();
+    allData.push_back(CreateNoValuesLogEvent(tagId, bucketStartTimeNs + 3 * bucketSizeNs + 10));
+    gaugeProducer.onDataPulled(allData, /** succeed */ true, bucketStartTimeNs + 3 * bucketSizeNs);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_TRUE(gaugeProducer.mCurrentSlicedBucket->begin()->second.front().mFields->empty());
+}
+
+TEST(GaugeMetricProducerTest, TestPullOnTrigger) {
+    GaugeMetric metric;
+    metric.set_id(metricId);
+    metric.set_bucket(ONE_MINUTE);
+    metric.set_sampling_type(GaugeMetric::FIRST_N_SAMPLES);
+    metric.mutable_gauge_fields_filter()->set_include_all(false);
+    metric.set_max_pull_delay_sec(INT_MAX);
+    auto gaugeFieldMatcher = metric.mutable_gauge_fields_filter()->mutable_fields();
+    gaugeFieldMatcher->set_field(tagId);
+    gaugeFieldMatcher->add_child()->set_field(1);
+
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 10, 4));
+                return true;
+            }))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 20, 5));
+                return true;
+            }))
+            .WillOnce(Return(true));
+
+    int triggerId = 5;
+    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
+                                      logEventMatcherIndex, eventMatcherWizard, tagId, triggerId,
+                                      tagId, bucketStartTimeNs, bucketStartTimeNs, pullerManager);
+    gaugeProducer.prepareFirstBucket();
+
+    EXPECT_EQ(0UL, gaugeProducer.mCurrentSlicedBucket->size());
+
+    LogEvent triggerEvent(/*uid=*/0, /*pid=*/0);
+    CreateNoValuesLogEvent(&triggerEvent, triggerId, bucketStartTimeNs + 10);
+    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, triggerEvent);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
+    triggerEvent.setElapsedTimestampNs(bucketStartTimeNs + 20);
+    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, triggerEvent);
+    EXPECT_EQ(2UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
+    triggerEvent.setElapsedTimestampNs(bucket2StartTimeNs + 1);
+    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, triggerEvent);
+
+    EXPECT_EQ(1UL, gaugeProducer.mPastBuckets.size());
+    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets.begin()->second.back().mGaugeAtoms.size());
+    EXPECT_EQ(4, gaugeProducer.mPastBuckets.begin()
+                         ->second.back()
+                         .mGaugeAtoms[0]
+                         .mFields->begin()
+                         ->mValue.int_value);
+    EXPECT_EQ(5, gaugeProducer.mPastBuckets.begin()
+                         ->second.back()
+                         .mGaugeAtoms[1]
+                         .mFields->begin()
+                         ->mValue.int_value);
+}
+
+TEST(GaugeMetricProducerTest, TestRemoveDimensionInOutput) {
+    GaugeMetric metric;
+    metric.set_id(metricId);
+    metric.set_bucket(ONE_MINUTE);
+    metric.set_sampling_type(GaugeMetric::FIRST_N_SAMPLES);
+    metric.mutable_gauge_fields_filter()->set_include_all(true);
+    metric.set_max_pull_delay_sec(INT_MAX);
+    auto dimensionMatcher = metric.mutable_dimensions_in_what();
+    // use field 1 as dimension.
+    dimensionMatcher->set_field(tagId);
+    dimensionMatcher->add_child()->set_field(1);
+
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateTwoValueLogEvent(tagId, bucketStartTimeNs + 3, 3, 4));
+                        return true;
+                    }))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateTwoValueLogEvent(tagId, bucketStartTimeNs + 10, 4, 5));
+                return true;
+            }))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateTwoValueLogEvent(tagId, bucketStartTimeNs + 20, 4, 6));
+                return true;
+            }))
+            .WillOnce(Return(true));
+
+    int triggerId = 5;
+    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
+                                      logEventMatcherIndex, eventMatcherWizard, tagId, triggerId,
+                                      tagId, bucketStartTimeNs, bucketStartTimeNs, pullerManager);
+    gaugeProducer.prepareFirstBucket();
+
+    LogEvent triggerEvent(/*uid=*/0, /*pid=*/0);
+    CreateNoValuesLogEvent(&triggerEvent, triggerId, bucketStartTimeNs + 3);
+    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, triggerEvent);
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->size());
+    triggerEvent.setElapsedTimestampNs(bucketStartTimeNs + 10);
+    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, triggerEvent);
+    EXPECT_EQ(2UL, gaugeProducer.mCurrentSlicedBucket->size());
+    EXPECT_EQ(1UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
+    triggerEvent.setElapsedTimestampNs(bucketStartTimeNs + 20);
+    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, triggerEvent);
+    EXPECT_EQ(2UL, gaugeProducer.mCurrentSlicedBucket->begin()->second.size());
+    triggerEvent.setElapsedTimestampNs(bucket2StartTimeNs + 1);
+    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, triggerEvent);
+
+    EXPECT_EQ(2UL, gaugeProducer.mPastBuckets.size());
+    auto bucketIt = gaugeProducer.mPastBuckets.begin();
+    EXPECT_EQ(1UL, bucketIt->second.back().mGaugeAtoms.size());
+    EXPECT_EQ(3, bucketIt->first.getDimensionKeyInWhat().getValues().begin()->mValue.int_value);
+    EXPECT_EQ(4, bucketIt->second.back().mGaugeAtoms[0].mFields->begin()->mValue.int_value);
+    bucketIt++;
+    EXPECT_EQ(2UL, bucketIt->second.back().mGaugeAtoms.size());
+    EXPECT_EQ(4, bucketIt->first.getDimensionKeyInWhat().getValues().begin()->mValue.int_value);
+    EXPECT_EQ(5, bucketIt->second.back().mGaugeAtoms[0].mFields->begin()->mValue.int_value);
+    EXPECT_EQ(6, bucketIt->second.back().mGaugeAtoms[1].mFields->begin()->mValue.int_value);
+}
+
+/*
+ * Test that BUCKET_TOO_SMALL dump reason is logged when a flushed bucket size
+ * is smaller than the "min_bucket_size_nanos" specified in the metric config.
+ */
+TEST(GaugeMetricProducerTest_BucketDrop, TestBucketDropWhenBucketTooSmall) {
+    GaugeMetric metric;
+    metric.set_id(metricId);
+    metric.set_bucket(FIVE_MINUTES);
+    metric.set_sampling_type(GaugeMetric::FIRST_N_SAMPLES);
+    metric.set_min_bucket_size_nanos(10000000000);  // 10 seconds
+
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // Bucket start.
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 10));
+                        return true;
+                    }));
+
+    int triggerId = 5;
+    GaugeMetricProducer gaugeProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
+                                      logEventMatcherIndex, eventMatcherWizard, tagId, triggerId,
+                                      tagId, bucketStartTimeNs, bucketStartTimeNs, pullerManager);
+    gaugeProducer.prepareFirstBucket();
+
+    LogEvent triggerEvent(/*uid=*/0, /*pid=*/0);
+    CreateNoValuesLogEvent(&triggerEvent, triggerId, bucketStartTimeNs + 3);
+    gaugeProducer.onMatchedLogEvent(1 /*log matcher index*/, triggerEvent);
+
+    // Check dump report.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    gaugeProducer.onDumpReport(bucketStartTimeNs + 9000000, true /* include recent buckets */, true,
+                               FAST /* dump_latency */, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_gauge_metrics());
+    EXPECT_EQ(0, report.gauge_metrics().data_size());
+    EXPECT_EQ(1, report.gauge_metrics().skipped_size());
+
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
+              report.gauge_metrics().skipped(0).start_bucket_elapsed_millis());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 9000000),
+              report.gauge_metrics().skipped(0).end_bucket_elapsed_millis());
+    EXPECT_EQ(1, report.gauge_metrics().skipped(0).drop_event_size());
+
+    auto dropEvent = report.gauge_metrics().skipped(0).drop_event(0);
+    EXPECT_EQ(BucketDropReason::BUCKET_TOO_SMALL, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 9000000), dropEvent.drop_time_millis());
+}
 
 }  // namespace statsd
 }  // namespace os
diff --git a/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp b/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp
index 0868aaa..b623a09 100644
--- a/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp
+++ b/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp
@@ -90,12 +90,15 @@
                 new EventMatcherWizard({new SimpleLogMatchingTracker(
                         atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
         sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-        EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-        EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillRepeatedly(Return());
+        EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _))
+                .WillOnce(Return());
+        EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _))
+                .WillRepeatedly(Return());
 
         sp<ValueMetricProducer> valueProducer = new ValueMetricProducer(
                 kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard, logEventMatcherIndex,
                 eventMatcherWizard, tagId, bucketStartTimeNs, bucketStartTimeNs, pullerManager);
+        valueProducer->prepareFirstBucket();
         return valueProducer;
     }
 
@@ -108,12 +111,15 @@
                 new EventMatcherWizard({new SimpleLogMatchingTracker(
                         atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
         sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-        EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-        EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillRepeatedly(Return());
+        EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _))
+                .WillOnce(Return());
+        EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _))
+                .WillRepeatedly(Return());
 
         sp<ValueMetricProducer> valueProducer = new ValueMetricProducer(
                 kConfigKey, metric, 1, wizard, logEventMatcherIndex, eventMatcherWizard, tagId,
                 bucketStartTimeNs, bucketStartTimeNs, pullerManager);
+        valueProducer->prepareFirstBucket();
         valueProducer->mCondition = ConditionState::kFalse;
         return valueProducer;
     }
@@ -127,12 +133,15 @@
                 new EventMatcherWizard({new SimpleLogMatchingTracker(
                         atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
         sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-        EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-        EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillRepeatedly(Return());
+        EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _))
+                .WillOnce(Return());
+        EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _))
+                .WillRepeatedly(Return());
 
         sp<ValueMetricProducer> valueProducer = new ValueMetricProducer(
                 kConfigKey, metric, 1, wizard, logEventMatcherIndex, eventMatcherWizard, tagId,
                 bucketStartTimeNs, bucketStartTimeNs, pullerManager);
+        valueProducer->prepareFirstBucket();
         return valueProducer;
     }
 
@@ -147,12 +156,15 @@
                 new EventMatcherWizard({new SimpleLogMatchingTracker(
                         atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
         sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-        EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-        EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillRepeatedly(Return());
+        EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _))
+                .WillOnce(Return());
+        EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _))
+                .WillRepeatedly(Return());
         sp<ValueMetricProducer> valueProducer = new ValueMetricProducer(
                 kConfigKey, metric, -1 /* no condition */, wizard, logEventMatcherIndex,
                 eventMatcherWizard, tagId, bucketStartTimeNs, bucketStartTimeNs, pullerManager, {},
                 {}, slicedStateAtoms, stateGroupMap);
+        valueProducer->prepareFirstBucket();
         return valueProducer;
     }
 
@@ -200,6 +212,7 @@
     ValueMetricProducer valueProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
                                       logEventMatcherIndex, eventMatcherWizard, -1, startTimeBase,
                                       22, pullerManager);
+    valueProducer.prepareFirstBucket();
 
     EXPECT_EQ(startTimeBase, valueProducer.calcPreviousBucketEndTime(60 * NS_PER_SEC + 10));
     EXPECT_EQ(startTimeBase, valueProducer.calcPreviousBucketEndTime(60 * NS_PER_SEC + 10));
@@ -229,6 +242,7 @@
     ValueMetricProducer valueProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
                                       logEventMatcherIndex, eventMatcherWizard, -1, 5,
                                       600 * NS_PER_SEC + NS_PER_SEC / 2, pullerManager);
+    valueProducer.prepareFirstBucket();
 
     EXPECT_EQ(600500000000, valueProducer.mCurrentBucketStartTimeNs);
     EXPECT_EQ(10, valueProducer.mCurrentBucketNum);
@@ -241,12 +255,13 @@
 TEST(ValueMetricProducerTest, TestPulledEventsNoCondition) {
     ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 3));
-                return true;
-            }));
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 3));
+                        return true;
+                    }));
 
     sp<ValueMetricProducer> valueProducer =
             ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
@@ -313,15 +328,17 @@
 TEST(ValueMetricProducerTest, TestPartialBucketCreated) {
     ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Initialize bucket.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 1, 1));
                 return true;
             }))
             // Partial bucket.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 10, 5));
                 return true;
@@ -369,18 +386,20 @@
                     atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
     sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillOnce(Return());
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateTwoValueLogEvent(tagId, bucketStartTimeNs, 3, 3));
-                return true;
-            }));
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateTwoValueLogEvent(tagId, bucketStartTimeNs, 3, 3));
+                        return true;
+                    }));
 
     sp<ValueMetricProducer> valueProducer = new ValueMetricProducer(
             kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard, logEventMatcherIndex,
             eventMatcherWizard, tagId, bucketStartTimeNs, bucketStartTimeNs, pullerManager);
+    valueProducer->prepareFirstBucket();
 
     vector<shared_ptr<LogEvent>> allData;
     allData.clear();
@@ -440,7 +459,7 @@
     metric.set_use_absolute_value_on_reset(true);
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _)).WillOnce(Return(true));
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _)).WillOnce(Return(true));
     sp<ValueMetricProducer> valueProducer =
             ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
 
@@ -499,7 +518,7 @@
 TEST(ValueMetricProducerTest, TestPulledEventsTakeZeroOnReset) {
     ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _)).WillOnce(Return(false));
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _)).WillOnce(Return(false));
     sp<ValueMetricProducer> valueProducer =
             ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
 
@@ -554,18 +573,21 @@
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
 
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 8, 100));
                 return true;
             }))
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 1, 130));
                 return true;
             }))
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucket3StartTimeNs + 1, 180));
                 return true;
@@ -631,6 +653,7 @@
     ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
                                       eventMatcherWizard, -1, bucketStartTimeNs, bucketStartTimeNs,
                                       pullerManager);
+    valueProducer.prepareFirstBucket();
 
     LogEvent event1(/*uid=*/0, /*pid=*/0);
     CreateTwoValueLogEvent(&event1, tagId, bucketStartTimeNs + 10, 1, 10);
@@ -666,11 +689,12 @@
                     atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
     sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillOnce(Return());
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             .WillOnce(Return(true))
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 149, 120));
                 return true;
@@ -678,6 +702,7 @@
     ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
                                       eventMatcherWizard, tagId, bucketStartTimeNs,
                                       bucketStartTimeNs, pullerManager);
+    valueProducer.prepareFirstBucket();
 
     vector<shared_ptr<LogEvent>> allData;
     allData.clear();
@@ -714,12 +739,13 @@
                     atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
     sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillOnce(Return());
-    EXPECT_CALL(*pullerManager, Pull(tagId, _)).WillOnce(Return(true));
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _)).WillOnce(Return(true));
     ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
                                       eventMatcherWizard, tagId, bucketStartTimeNs,
                                       bucketStartTimeNs, pullerManager);
+    valueProducer.prepareFirstBucket();
 
     vector<shared_ptr<LogEvent>> allData;
     allData.clear();
@@ -737,13 +763,15 @@
     ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 1, 100));
                 return true;
             }))
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs - 100, 120));
                 return true;
@@ -766,1751 +794,1550 @@
                                     {(bucket2StartTimeNs - 100) - (bucketStartTimeNs + 1)});
     EXPECT_FALSE(valueProducer->mCondition);
 }
+TEST(ValueMetricProducerTest, TestPushedEventsWithoutCondition) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
 
-// TEST(ValueMetricProducerTest, TestPushedEventsWithoutCondition) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard =
-//            new EventMatcherWizard({new SimpleLogMatchingTracker(
-//                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//
-//    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
-//                                      eventMatcherWizard, -1, bucketStartTimeNs,
-//                                      bucketStartTimeNs, pullerManager);
-//
-//    shared_ptr<LogEvent> event1 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//    event1->write(1);
-//    event1->write(10);
-//    event1->init();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 20);
-//    event2->write(1);
-//    event2->write(20);
-//    event2->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event1);
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval curInterval =
-//    valueProducer.mCurrentSlicedBucket.begin()->second[0]; ValueMetricProducer::BaseInfo
-//    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0]; EXPECT_EQ(10,
-//    curInterval.value.long_value); EXPECT_EQ(true, curInterval.hasValue);
-//
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event2);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(30, curInterval.value.long_value);
-//
-//    valueProducer.flushIfNeededLocked(bucket2StartTimeNs);
-//    assertPastBucketValuesSingleKey(valueProducer.mPastBuckets, {30}, {bucketSizeNs});
-//}
-//
-// TEST(ValueMetricProducerTest, TestPushedEventsWithCondition) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard =
-//            new EventMatcherWizard({new SimpleLogMatchingTracker(
-//                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//
-//    ValueMetricProducer valueProducer(kConfigKey, metric, 1, wizard, logEventMatcherIndex,
-//                                      eventMatcherWizard, -1, bucketStartTimeNs,
-//                                      bucketStartTimeNs, pullerManager);
-//    valueProducer.mCondition = ConditionState::kFalse;
-//
-//    shared_ptr<LogEvent> event1 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//    event1->write(1);
-//    event1->write(10);
-//    event1->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event1);
-//    // has 1 slice
-//    EXPECT_EQ(0UL, valueProducer.mCurrentSlicedBucket.size());
-//
-//    valueProducer.onConditionChangedLocked(true, bucketStartTimeNs + 15);
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 20);
-//    event2->write(1);
-//    event2->write(20);
-//    event2->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event2);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval curInterval =
-//            valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(20, curInterval.value.long_value);
-//
-//    shared_ptr<LogEvent> event3 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 30);
-//    event3->write(1);
-//    event3->write(30);
-//    event3->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event3);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(50, curInterval.value.long_value);
-//
-//    valueProducer.onConditionChangedLocked(false, bucketStartTimeNs + 35);
-//    shared_ptr<LogEvent> event4 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 40);
-//    event4->write(1);
-//    event4->write(40);
-//    event4->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event4);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(50, curInterval.value.long_value);
-//
-//    valueProducer.flushIfNeededLocked(bucket2StartTimeNs);
-//    assertPastBucketValuesSingleKey(valueProducer.mPastBuckets, {50}, {20});
-//}
-//
-// TEST(ValueMetricProducerTest, TestAnomalyDetection) {
-//    sp<AlarmMonitor> alarmMonitor;
-//    Alert alert;
-//    alert.set_id(101);
-//    alert.set_metric_id(metricId);
-//    alert.set_trigger_if_sum_gt(130);
-//    alert.set_num_buckets(2);
-//    const int32_t refPeriodSec = 3;
-//    alert.set_refractory_period_secs(refPeriodSec);
-//
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard =
-//            new EventMatcherWizard({new SimpleLogMatchingTracker(
-//                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    ValueMetricProducer valueProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
-//                                      logEventMatcherIndex, eventMatcherWizard, -1 /*not pulled*/,
-//                                      bucketStartTimeNs, bucketStartTimeNs, pullerManager);
-//
-//    sp<AnomalyTracker> anomalyTracker = valueProducer.addAnomalyTracker(alert, alarmMonitor);
-//
-//
-//    shared_ptr<LogEvent> event1
-//            = make_shared<LogEvent>(tagId, bucketStartTimeNs + 1 * NS_PER_SEC);
-//    event1->write(161);
-//    event1->write(10); // value of interest
-//    event1->init();
-//    shared_ptr<LogEvent> event2
-//            = make_shared<LogEvent>(tagId, bucketStartTimeNs + 2 + NS_PER_SEC);
-//    event2->write(162);
-//    event2->write(20); // value of interest
-//    event2->init();
-//    shared_ptr<LogEvent> event3
-//            = make_shared<LogEvent>(tagId, bucketStartTimeNs + 2 * bucketSizeNs + 1 * NS_PER_SEC);
-//    event3->write(163);
-//    event3->write(130); // value of interest
-//    event3->init();
-//    shared_ptr<LogEvent> event4
-//            = make_shared<LogEvent>(tagId, bucketStartTimeNs + 3 * bucketSizeNs + 1 * NS_PER_SEC);
-//    event4->write(35);
-//    event4->write(1); // value of interest
-//    event4->init();
-//    shared_ptr<LogEvent> event5
-//            = make_shared<LogEvent>(tagId, bucketStartTimeNs + 3 * bucketSizeNs + 2 * NS_PER_SEC);
-//    event5->write(45);
-//    event5->write(150); // value of interest
-//    event5->init();
-//    shared_ptr<LogEvent> event6
-//            = make_shared<LogEvent>(tagId, bucketStartTimeNs + 3 * bucketSizeNs + 10 *
-//            NS_PER_SEC);
-//    event6->write(25);
-//    event6->write(160); // value of interest
-//    event6->init();
-//
-//    // Two events in bucket #0.
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event1);
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event2);
-//    // Value sum == 30 <= 130.
-//    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY), 0U);
-//
-//    // One event in bucket #2. No alarm as bucket #0 is trashed out.
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event3);
-//    // Value sum == 130 <= 130.
-//    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY), 0U);
-//
-//    // Three events in bucket #3.
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event4);
-//    // Anomaly at event 4 since Value sum == 131 > 130!
-//    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
-//            std::ceil(1.0 * event4->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event5);
-//    // Event 5 is within 3 sec refractory period. Thus last alarm timestamp is still event4.
-//    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
-//            std::ceil(1.0 * event4->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
-//
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event6);
-//    // Anomaly at event 6 since Value sum == 160 > 130 and after refractory period.
-//    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
-//            std::ceil(1.0 * event6->GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
-//}
-//
-//// Test value metric no condition, the pull on bucket boundary come in time and too late
-// TEST(ValueMetricProducerTest, TestBucketBoundaryNoCondition) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _)).WillOnce(Return(true));
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
-//
-//    vector<shared_ptr<LogEvent>> allData;
-//    // pull 1
-//    allData.clear();
-//    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event->write(tagId);
-//    event->write(11);
-//    event->init();
-//    allData.push_back(event);
-//
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval curInterval =
-//            valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    ValueMetricProducer::BaseInfo curBaseInfo =
-//    valueProducer->mCurrentBaseInfo.begin()->second[0];
-//
-//    // startUpdated:true sum:0 start:11
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(11, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
-//
-//    // pull 2 at correct time
-//    allData.clear();
-//    event = make_shared<LogEvent>(tagId, bucket3StartTimeNs + 1);
-//    event->write(tagId);
-//    event->write(23);
-//    event->init();
-//    allData.push_back(event);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket3StartTimeNs);
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
-//    // tartUpdated:false sum:12
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(23, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {12}, {bucketSizeNs});
-//
-//    // pull 3 come late.
-//    // The previous bucket gets closed with error. (Has start value 23, no ending)
-//    // Another bucket gets closed with error. (No start, but ending with 36)
-//    // The new bucket is back to normal.
-//    allData.clear();
-//    event = make_shared<LogEvent>(tagId, bucket6StartTimeNs + 1);
-//    event->write(tagId);
-//    event->write(36);
-//    event->init();
-//    allData.push_back(event);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket6StartTimeNs);
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
-//    // startUpdated:false sum:12
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(36, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {12}, {bucketSizeNs});
-//}
-//
-///*
-// * Test pulled event with non sliced condition. The pull on boundary come late because the alarm
-// * was delivered late.
-// */
-// TEST(ValueMetricProducerTest, TestBucketBoundaryWithCondition) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // condition becomes true
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 8);
-//                event->write(tagId);
-//                event->write(100);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // condition becomes false
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//                event->write(tagId);
-//                event->write(120);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 8);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval curInterval =
-//            valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    ValueMetricProducer::BaseInfo curBaseInfo =
-//    valueProducer->mCurrentBaseInfo.begin()->second[0]; EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(100, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
-//
-//    // pull on bucket boundary come late, condition change happens before it
-//    valueProducer->onConditionChanged(false, bucket2StartTimeNs + 1);
-//    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
-//    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {20}, {bucketSizeNs - 8});
-//    EXPECT_EQ(false, curBaseInfo.hasBase);
-//
-//    // Now the alarm is delivered.
-//    // since the condition turned to off before this pull finish, it has no effect
-//    vector<shared_ptr<LogEvent>> allData;
-//    allData.push_back(ValueMetricProducerTestHelper::createEvent(bucket2StartTimeNs + 30, 110));
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
-//
-//    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {20}, {bucketSizeNs - 8});
-//    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
-//    EXPECT_EQ(false, curBaseInfo.hasBase);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//}
-//
-///*
-// * Test pulled event with non sliced condition. The pull on boundary come late, after the
-// condition
-// * change to false, and then true again. This is due to alarm delivered late.
-// */
-// TEST(ValueMetricProducerTest, TestBucketBoundaryWithCondition2) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // condition becomes true
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 8);
-//                event->write(tagId);
-//                event->write(100);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // condition becomes false
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//                event->write(tagId);
-//                event->write(120);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // condition becomes true again
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs +
-//                25); event->write(tagId); event->write(130); event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 8);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval curInterval =
-//            valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    ValueMetricProducer::BaseInfo curBaseInfo =
-//    valueProducer->mCurrentBaseInfo.begin()->second[0];
-//    // startUpdated:false sum:0 start:100
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(100, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
-//
-//    // pull on bucket boundary come late, condition change happens before it
-//    valueProducer->onConditionChanged(false, bucket2StartTimeNs + 1);
-//    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {20}, {bucketSizeNs - 8});
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
-//    EXPECT_EQ(false, curBaseInfo.hasBase);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//
-//    // condition changed to true again, before the pull alarm is delivered
-//    valueProducer->onConditionChanged(true, bucket2StartTimeNs + 25);
-//    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {20}, {bucketSizeNs - 8});
-//    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(130, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//
-//    // Now the alarm is delivered, but it is considered late, the data will be used
-//    // for the new bucket since it was just pulled.
-//    vector<shared_ptr<LogEvent>> allData;
-//    allData.push_back(ValueMetricProducerTestHelper::createEvent(bucket2StartTimeNs + 50, 140));
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs + 50);
-//
-//    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(140, curBaseInfo.base.long_value);
-//    EXPECT_EQ(true, curInterval.hasValue);
-//    EXPECT_EQ(10, curInterval.value.long_value);
-//    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {20}, {bucketSizeNs - 8});
-//
-//    allData.clear();
-//    allData.push_back(ValueMetricProducerTestHelper::createEvent(bucket3StartTimeNs, 160));
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket3StartTimeNs);
-//    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {20, 30},
-//                                    {bucketSizeNs - 8, bucketSizeNs - 24});
-//}
-//
-// TEST(ValueMetricProducerTest, TestPushedAggregateMin) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    metric.set_aggregation_type(ValueMetric::MIN);
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard =
-//            new EventMatcherWizard({new SimpleLogMatchingTracker(
-//                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//
-//    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
-//                                      eventMatcherWizard, -1, bucketStartTimeNs,
-//                                      bucketStartTimeNs, pullerManager);
-//
-//    shared_ptr<LogEvent> event1 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//    event1->write(1);
-//    event1->write(10);
-//    event1->init();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 20);
-//    event2->write(1);
-//    event2->write(20);
-//    event2->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event1);
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval curInterval =
-//            valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(10, curInterval.value.long_value);
-//    EXPECT_EQ(true, curInterval.hasValue);
-//
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event2);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(10, curInterval.value.long_value);
-//
-//    valueProducer.flushIfNeededLocked(bucket2StartTimeNs);
-//    assertPastBucketValuesSingleKey(valueProducer.mPastBuckets, {10}, {bucketSizeNs});
-//}
-//
-// TEST(ValueMetricProducerTest, TestPushedAggregateMax) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    metric.set_aggregation_type(ValueMetric::MAX);
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard =
-//            new EventMatcherWizard({new SimpleLogMatchingTracker(
-//                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//
-//    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
-//                                      eventMatcherWizard, -1, bucketStartTimeNs,
-//                                      bucketStartTimeNs, pullerManager);
-//
-//    shared_ptr<LogEvent> event1 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//    event1->write(1);
-//    event1->write(10);
-//    event1->init();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 20);
-//    event2->write(1);
-//    event2->write(20);
-//    event2->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event1);
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval curInterval =
-//            valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(10, curInterval.value.long_value);
-//    EXPECT_EQ(true, curInterval.hasValue);
-//
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event2);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(20, curInterval.value.long_value);
-//
-//    valueProducer.flushIfNeededLocked(bucket3StartTimeNs);
-//    /* EXPECT_EQ(1UL, valueProducer.mPastBuckets.size()); */
-//    /* EXPECT_EQ(1UL, valueProducer.mPastBuckets.begin()->second.size()); */
-//    /* EXPECT_EQ(20, valueProducer.mPastBuckets.begin()->second.back().values[0].long_value); */
-//}
-//
-// TEST(ValueMetricProducerTest, TestPushedAggregateAvg) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    metric.set_aggregation_type(ValueMetric::AVG);
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard =
-//            new EventMatcherWizard({new SimpleLogMatchingTracker(
-//                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//
-//    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
-//                                      eventMatcherWizard, -1, bucketStartTimeNs,
-//                                      bucketStartTimeNs, pullerManager);
-//
-//    shared_ptr<LogEvent> event1 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//    event1->write(1);
-//    event1->write(10);
-//    event1->init();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 20);
-//    event2->write(1);
-//    event2->write(15);
-//    event2->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event1);
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval curInterval;
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(10, curInterval.value.long_value);
-//    EXPECT_EQ(true, curInterval.hasValue);
-//    EXPECT_EQ(1, curInterval.sampleSize);
-//
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event2);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(25, curInterval.value.long_value);
-//    EXPECT_EQ(2, curInterval.sampleSize);
-//
-//    valueProducer.flushIfNeededLocked(bucket2StartTimeNs);
-//    EXPECT_EQ(1UL, valueProducer.mPastBuckets.size());
-//    EXPECT_EQ(1UL, valueProducer.mPastBuckets.begin()->second.size());
-//
-//    EXPECT_TRUE(std::abs(valueProducer.mPastBuckets.begin()->second.back().values[0].double_value
-//    -
-//                         12.5) < epsilon);
-//}
-//
-// TEST(ValueMetricProducerTest, TestPushedAggregateSum) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    metric.set_aggregation_type(ValueMetric::SUM);
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard =
-//            new EventMatcherWizard({new SimpleLogMatchingTracker(
-//                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//
-//    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
-//                                      eventMatcherWizard, -1, bucketStartTimeNs,
-//                                      bucketStartTimeNs, pullerManager);
-//
-//    shared_ptr<LogEvent> event1 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//    event1->write(1);
-//    event1->write(10);
-//    event1->init();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 20);
-//    event2->write(1);
-//    event2->write(15);
-//    event2->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event1);
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval curInterval =
-//            valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(10, curInterval.value.long_value);
-//    EXPECT_EQ(true, curInterval.hasValue);
-//
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event2);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(25, curInterval.value.long_value);
-//
-//    valueProducer.flushIfNeededLocked(bucket2StartTimeNs);
-//    assertPastBucketValuesSingleKey(valueProducer.mPastBuckets, {25}, {bucketSizeNs});
-//}
-//
-// TEST(ValueMetricProducerTest, TestSkipZeroDiffOutput) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    metric.set_aggregation_type(ValueMetric::MIN);
-//    metric.set_use_diff(true);
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard =
-//            new EventMatcherWizard({new SimpleLogMatchingTracker(
-//                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//
-//    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
-//                                      eventMatcherWizard, -1, bucketStartTimeNs,
-//                                      bucketStartTimeNs, pullerManager);
-//
-//    shared_ptr<LogEvent> event1 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//    event1->write(1);
-//    event1->write(10);
-//    event1->init();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 15);
-//    event2->write(1);
-//    event2->write(15);
-//    event2->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event1);
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval curInterval =
-//            valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(10, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event2);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    EXPECT_EQ(true, curInterval.hasValue);
-//    EXPECT_EQ(5, curInterval.value.long_value);
-//
-//    // no change in data.
-//    shared_ptr<LogEvent> event3 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 10);
-//    event3->write(1);
-//    event3->write(15);
-//    event3->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event3);
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(15, curBaseInfo.base.long_value);
-//    EXPECT_EQ(true, curInterval.hasValue);
-//
-//    shared_ptr<LogEvent> event4 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 15);
-//    event4->write(1);
-//    event4->write(15);
-//    event4->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event4);
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(15, curBaseInfo.base.long_value);
-//    EXPECT_EQ(true, curInterval.hasValue);
-//
-//    valueProducer.flushIfNeededLocked(bucket3StartTimeNs);
-//    EXPECT_EQ(1UL, valueProducer.mPastBuckets.size());
-//    EXPECT_EQ(1UL, valueProducer.mPastBuckets.begin()->second.size());
-//    assertPastBucketValuesSingleKey(valueProducer.mPastBuckets, {5}, {bucketSizeNs});
-//}
-//
-// TEST(ValueMetricProducerTest, TestSkipZeroDiffOutputMultiValue) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    metric.mutable_value_field()->add_child()->set_field(3);
-//    metric.set_aggregation_type(ValueMetric::MIN);
-//    metric.set_use_diff(true);
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard =
-//            new EventMatcherWizard({new SimpleLogMatchingTracker(
-//                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//
-//    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
-//                                      eventMatcherWizard, -1, bucketStartTimeNs,
-//                                      bucketStartTimeNs, pullerManager);
-//
-//    shared_ptr<LogEvent> event1 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//    event1->write(1);
-//    event1->write(10);
-//    event1->write(20);
-//    event1->init();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucketStartTimeNs + 15);
-//    event2->write(1);
-//    event2->write(15);
-//    event2->write(22);
-//    event2->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event1);
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval curInterval =
-//            valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(10, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[1];
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(20, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event2);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
-//    EXPECT_EQ(true, curInterval.hasValue);
-//    EXPECT_EQ(5, curInterval.value.long_value);
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[1];
-//    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[1];
-//    EXPECT_EQ(true, curInterval.hasValue);
-//    EXPECT_EQ(2, curInterval.value.long_value);
-//
-//    // no change in first value field
-//    shared_ptr<LogEvent> event3 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 10);
-//    event3->write(1);
-//    event3->write(15);
-//    event3->write(25);
-//    event3->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event3);
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
-//
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(15, curBaseInfo.base.long_value);
-//    EXPECT_EQ(true, curInterval.hasValue);
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[1];
-//    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[1];
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(25, curBaseInfo.base.long_value);
-//    EXPECT_EQ(true, curInterval.hasValue);
-//
-//    shared_ptr<LogEvent> event4 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 15);
-//    event4->write(1);
-//    event4->write(15);
-//    event4->write(29);
-//    event4->init();
-//    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, *event4);
-//    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
-//    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(15, curBaseInfo.base.long_value);
-//    EXPECT_EQ(true, curInterval.hasValue);
-//    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[1];
-//    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[1];
-//    EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(29, curBaseInfo.base.long_value);
-//    EXPECT_EQ(true, curInterval.hasValue);
-//
-//    valueProducer.flushIfNeededLocked(bucket3StartTimeNs);
-//
-//    EXPECT_EQ(1UL, valueProducer.mPastBuckets.size());
-//    EXPECT_EQ(2UL, valueProducer.mPastBuckets.begin()->second.size());
-//    EXPECT_EQ(2UL, valueProducer.mPastBuckets.begin()->second[0].values.size());
-//    EXPECT_EQ(1UL, valueProducer.mPastBuckets.begin()->second[1].values.size());
-//
-//    EXPECT_EQ(bucketSizeNs, valueProducer.mPastBuckets.begin()->second[0].mConditionTrueNs);
-//    EXPECT_EQ(5, valueProducer.mPastBuckets.begin()->second[0].values[0].long_value);
-//    EXPECT_EQ(0, valueProducer.mPastBuckets.begin()->second[0].valueIndex[0]);
-//    EXPECT_EQ(2, valueProducer.mPastBuckets.begin()->second[0].values[1].long_value);
-//    EXPECT_EQ(1, valueProducer.mPastBuckets.begin()->second[0].valueIndex[1]);
-//
-//    EXPECT_EQ(bucketSizeNs, valueProducer.mPastBuckets.begin()->second[1].mConditionTrueNs);
-//    EXPECT_EQ(3, valueProducer.mPastBuckets.begin()->second[1].values[0].long_value);
-//    EXPECT_EQ(1, valueProducer.mPastBuckets.begin()->second[1].valueIndex[0]);
-//}
-//
-///*
-// * Tests zero default base.
-// */
-// TEST(ValueMetricProducerTest, TestUseZeroDefaultBase) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    metric.mutable_dimensions_in_what()->set_field(tagId);
-//    metric.mutable_dimensions_in_what()->add_child()->set_field(1);
-//    metric.set_use_zero_default_base(true);
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs);
-//                event->write(1);
-//                event->write(3);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
-//
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    auto iter = valueProducer->mCurrentSlicedBucket.begin();
-//    auto& interval1 = iter->second[0];
-//    auto iterBase = valueProducer->mCurrentBaseInfo.begin();
-//    auto& baseInfo1 = iterBase->second[0];
-//    EXPECT_EQ(1, iter->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, baseInfo1.hasBase);
-//    EXPECT_EQ(3, baseInfo1.base.long_value);
-//    EXPECT_EQ(false, interval1.hasValue);
-//    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
-//    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
-//    vector<shared_ptr<LogEvent>> allData;
-//
-//    allData.clear();
-//    shared_ptr<LogEvent> event1 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event1->write(2);
-//    event1->write(4);
-//    event1->init();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event2->write(1);
-//    event2->write(11);
-//    event2->init();
-//    allData.push_back(event1);
-//    allData.push_back(event2);
-//
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
-//    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
-//    EXPECT_EQ(true, baseInfo1.hasBase);
-//    EXPECT_EQ(11, baseInfo1.base.long_value);
-//    EXPECT_EQ(false, interval1.hasValue);
-//    EXPECT_EQ(8, interval1.value.long_value);
-//
-//    auto it = valueProducer->mCurrentSlicedBucket.begin();
-//    for (; it != valueProducer->mCurrentSlicedBucket.end(); it++) {
-//        if (it != iter) {
-//            break;
-//        }
-//    }
-//    auto itBase = valueProducer->mCurrentBaseInfo.begin();
-//    for (; itBase != valueProducer->mCurrentBaseInfo.end(); it++) {
-//        if (itBase != iterBase) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(it != iter);
-//    EXPECT_TRUE(itBase != iterBase);
-//    auto& interval2 = it->second[0];
-//    auto& baseInfo2 = itBase->second[0];
-//    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, baseInfo2.hasBase);
-//    EXPECT_EQ(4, baseInfo2.base.long_value);
-//    EXPECT_EQ(false, interval2.hasValue);
-//    EXPECT_EQ(4, interval2.value.long_value);
-//
-//    EXPECT_EQ(2UL, valueProducer->mPastBuckets.size());
-//    auto iterator = valueProducer->mPastBuckets.begin();
-//    EXPECT_EQ(bucketSizeNs, iterator->second[0].mConditionTrueNs);
-//    EXPECT_EQ(8, iterator->second[0].values[0].long_value);
-//    iterator++;
-//    EXPECT_EQ(bucketSizeNs, iterator->second[0].mConditionTrueNs);
-//    EXPECT_EQ(4, iterator->second[0].values[0].long_value);
-//}
-//
-///*
-// * Tests using zero default base with failed pull.
-// */
-// TEST(ValueMetricProducerTest, TestUseZeroDefaultBaseWithPullFailures) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    metric.mutable_dimensions_in_what()->set_field(tagId);
-//    metric.mutable_dimensions_in_what()->add_child()->set_field(1);
-//    metric.set_use_zero_default_base(true);
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs);
-//                event->write(1);
-//                event->write(3);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
-//
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    auto it = valueProducer->mCurrentSlicedBucket.begin();
-//    auto& interval1 = it->second[0];
-//    auto& baseInfo1 =
-//            valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat())->second[0];
-//    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, baseInfo1.hasBase);
-//    EXPECT_EQ(3, baseInfo1.base.long_value);
-//    EXPECT_EQ(false, interval1.hasValue);
-//    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
-//    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
-//    vector<shared_ptr<LogEvent>> allData;
-//
-//    allData.clear();
-//    shared_ptr<LogEvent> event1 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event1->write(2);
-//    event1->write(4);
-//    event1->init();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event2->write(1);
-//    event2->write(11);
-//    event2->init();
-//    allData.push_back(event1);
-//    allData.push_back(event2);
-//
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
-//    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
-//    EXPECT_EQ(true, baseInfo1.hasBase);
-//    EXPECT_EQ(11, baseInfo1.base.long_value);
-//    EXPECT_EQ(false, interval1.hasValue);
-//    EXPECT_EQ(8, interval1.value.long_value);
-//
-//    auto it2 = valueProducer->mCurrentSlicedBucket.begin();
-//    for (; it2 != valueProducer->mCurrentSlicedBucket.end(); it2++) {
-//        if (it2 != it) {
-//            break;
-//        }
-//    }
-//    // auto itBase = valueProducer->mCurrentBaseInfo.begin();
-//    // for (; itBase != valueProducer->mCurrentBaseInfo.end(); it++) {
-//    //     if (itBase != iterBase) {
-//    //         break;
-//    //     }
-//    // }
-//    EXPECT_TRUE(it2 != it);
-//    // EXPECT_TRUE(itBase != iterBase);
-//    auto& interval2 = it2->second[0];
-//    auto& baseInfo2 =
-//            valueProducer->mCurrentBaseInfo.find(it2->first.getDimensionKeyInWhat())->second[0];
-//    EXPECT_EQ(2, it2->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, baseInfo2.hasBase);
-//    EXPECT_EQ(4, baseInfo2.base.long_value);
-//    EXPECT_EQ(false, interval2.hasValue);
-//    EXPECT_EQ(4, interval2.value.long_value);
-//    EXPECT_EQ(2UL, valueProducer->mPastBuckets.size());
-//
-//    // next pull somehow did not happen, skip to end of bucket 3
-//    allData.clear();
-//    event1 = make_shared<LogEvent>(tagId, bucket4StartTimeNs + 1);
-//    event1->write(2);
-//    event1->write(5);
-//    event1->init();
-//    allData.push_back(event1);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket4StartTimeNs);
-//
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    EXPECT_EQ(true, baseInfo2.hasBase);
-//    EXPECT_EQ(5, baseInfo2.base.long_value);
-//    EXPECT_EQ(false, interval2.hasValue);
-//    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
-//    EXPECT_EQ(2UL, valueProducer->mPastBuckets.size());
-//
-//    allData.clear();
-//    event1 = make_shared<LogEvent>(tagId, bucket5StartTimeNs + 1);
-//    event1->write(2);
-//    event1->write(13);
-//    event1->init();
-//    allData.push_back(event1);
-//    event2 = make_shared<LogEvent>(tagId, bucket5StartTimeNs + 1);
-//    event2->write(1);
-//    event2->write(5);
-//    event2->init();
-//    allData.push_back(event2);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket5StartTimeNs);
-//
-//    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
-//    it = valueProducer->mCurrentSlicedBucket.begin();
-//    it2 = std::next(valueProducer->mCurrentSlicedBucket.begin());
-//    interval1 = it->second[0];
-//    interval2 = it2->second[0];
-//    baseInfo1 =
-//    valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat())->second[0]; baseInfo2
-//    = valueProducer->mCurrentBaseInfo.find(it2->first.getDimensionKeyInWhat())->second[0];
-//
-//    EXPECT_EQ(true, baseInfo1.hasBase);
-//    EXPECT_EQ(5, baseInfo1.base.long_value);
-//    EXPECT_EQ(false, interval1.hasValue);
-//    EXPECT_EQ(5, interval1.value.long_value);
-//    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
-//
-//    EXPECT_EQ(true, baseInfo2.hasBase);
-//    EXPECT_EQ(13, baseInfo2.base.long_value);
-//    EXPECT_EQ(false, interval2.hasValue);
-//    EXPECT_EQ(8, interval2.value.long_value);
-//
-//    EXPECT_EQ(2UL, valueProducer->mPastBuckets.size());
-//}
-//
-///*
-// * Tests trim unused dimension key if no new data is seen in an entire bucket.
-// */
-// TEST(ValueMetricProducerTest, TestTrimUnusedDimensionKey) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    metric.mutable_dimensions_in_what()->set_field(tagId);
-//    metric.mutable_dimensions_in_what()->add_child()->set_field(1);
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs);
-//                event->write(1);
-//                event->write(3);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
-//
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    auto iter = valueProducer->mCurrentSlicedBucket.begin();
-//    auto& interval1 = iter->second[0];
-//    auto iterBase = valueProducer->mCurrentBaseInfo.begin();
-//    auto& baseInfo1 = iterBase->second[0];
-//    EXPECT_EQ(1, iter->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, baseInfo1.hasBase);
-//    EXPECT_EQ(3, baseInfo1.base.long_value);
-//    EXPECT_EQ(false, interval1.hasValue);
-//    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
-//    vector<shared_ptr<LogEvent>> allData;
-//
-//    allData.clear();
-//    shared_ptr<LogEvent> event1 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event1->write(2);
-//    event1->write(4);
-//    event1->init();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event2->write(1);
-//    event2->write(11);
-//    event2->init();
-//    allData.push_back(event1);
-//    allData.push_back(event2);
-//
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
-//    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
-//    EXPECT_EQ(true, baseInfo1.hasBase);
-//    EXPECT_EQ(11, baseInfo1.base.long_value);
-//    EXPECT_EQ(false, interval1.hasValue);
-//    EXPECT_EQ(8, interval1.value.long_value);
-//    EXPECT_FALSE(interval1.seenNewData);
-//    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {8}, {bucketSizeNs});
-//
-//    auto it = valueProducer->mCurrentSlicedBucket.begin();
-//    for (; it != valueProducer->mCurrentSlicedBucket.end(); it++) {
-//        if (it != iter) {
-//            break;
-//        }
-//    }
-//    auto itBase = valueProducer->mCurrentBaseInfo.begin();
-//    for (; itBase != valueProducer->mCurrentBaseInfo.end(); it++) {
-//        if (itBase != iterBase) {
-//            break;
-//        }
-//    }
-//    EXPECT_TRUE(it != iter);
-//    EXPECT_TRUE(itBase != iterBase);
-//    auto& interval2 = it->second[0];
-//    auto& baseInfo2 = itBase->second[0];
-//    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, baseInfo2.hasBase);
-//    EXPECT_EQ(4, baseInfo2.base.long_value);
-//    EXPECT_EQ(false, interval2.hasValue);
-//    EXPECT_FALSE(interval2.seenNewData);
-//    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {8}, {bucketSizeNs});
-//
-//    // next pull somehow did not happen, skip to end of bucket 3
-//    allData.clear();
-//    event1 = make_shared<LogEvent>(tagId, bucket4StartTimeNs + 1);
-//    event1->write(2);
-//    event1->write(5);
-//    event1->init();
-//    allData.push_back(event1);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket4StartTimeNs);
-//    // Only one interval left. One was trimmed.
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    interval2 = valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    baseInfo2 = valueProducer->mCurrentBaseInfo.begin()->second[0];
-//    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, baseInfo2.hasBase);
-//    EXPECT_EQ(5, baseInfo2.base.long_value);
-//    EXPECT_EQ(false, interval2.hasValue);
-//    EXPECT_FALSE(interval2.seenNewData);
-//    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {8}, {bucketSizeNs});
-//
-//    allData.clear();
-//    event1 = make_shared<LogEvent>(tagId, bucket5StartTimeNs + 1);
-//    event1->write(2);
-//    event1->write(14);
-//    event1->init();
-//    allData.push_back(event1);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket5StartTimeNs);
-//
-//    interval2 = valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    baseInfo2 = valueProducer->mCurrentBaseInfo.begin()->second[0];
-//    EXPECT_EQ(true, baseInfo2.hasBase);
-//    EXPECT_EQ(14, baseInfo2.base.long_value);
-//    EXPECT_EQ(false, interval2.hasValue);
-//    EXPECT_FALSE(interval2.seenNewData);
-//    ASSERT_EQ(2UL, valueProducer->mPastBuckets.size());
-//    auto iterator = valueProducer->mPastBuckets.begin();
-//    EXPECT_EQ(9, iterator->second[0].values[0].long_value);
-//    EXPECT_EQ(bucketSizeNs, iterator->second[0].mConditionTrueNs);
-//    iterator++;
-//    EXPECT_EQ(8, iterator->second[0].values[0].long_value);
-//    EXPECT_EQ(bucketSizeNs, iterator->second[0].mConditionTrueNs);
-//}
-//
-// TEST(ValueMetricProducerTest, TestResetBaseOnPullFailAfterConditionChange_EndOfBucket) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    // Used by onConditionChanged.
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 8);
-//                event->write(tagId);
-//                event->write(100);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 8);
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval& curInterval =
-//            valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    ValueMetricProducer::BaseInfo& curBaseInfo =
-//    valueProducer->mCurrentBaseInfo.begin()->second[0]; EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(100, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//
-//    vector<shared_ptr<LogEvent>> allData;
-//    valueProducer->onDataPulled(allData, /** succeed */ false, bucket2StartTimeNs);
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    EXPECT_EQ(false, curBaseInfo.hasBase);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    EXPECT_EQ(false, valueProducer->mHasGlobalBase);
-//}
-//
-// TEST(ValueMetricProducerTest, TestResetBaseOnPullFailAfterConditionChange) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 8);
-//                event->write(tagId);
-//                event->write(100);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            .WillOnce(Return(false));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 8);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval& curInterval =
-//            valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    ValueMetricProducer::BaseInfo& curBaseInfo =
-//    valueProducer->mCurrentBaseInfo.begin()->second[0]; EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(100, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
-//
-//    valueProducer->onConditionChanged(false, bucketStartTimeNs + 20);
-//
-//    // has one slice
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    EXPECT_EQ(false, curBaseInfo.hasBase);
-//    EXPECT_EQ(false, valueProducer->mHasGlobalBase);
-//}
-//
-// TEST(ValueMetricProducerTest, TestResetBaseOnPullFailBeforeConditionChange) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs);
-//                event->write(tagId);
-//                event->write(50);
-//                event->init();
-//                data->push_back(event);
-//                return false;
-//            }))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 8);
-//                event->write(tagId);
-//                event->write(100);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//
-//    // Don't directly set mCondition; the real code never does that. Go through regular code path
-//    // to avoid unexpected behaviors.
-//    // valueProducer->mCondition = ConditionState::kTrue;
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs);
-//
-//    EXPECT_EQ(0UL, valueProducer->mCurrentSlicedBucket.size());
-//
-//    valueProducer->onConditionChanged(false, bucketStartTimeNs + 1);
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval& curInterval =
-//            valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    ValueMetricProducer::BaseInfo curBaseInfo =
-//    valueProducer->mCurrentBaseInfo.begin()->second[0]; EXPECT_EQ(false, curBaseInfo.hasBase);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    EXPECT_EQ(false, valueProducer->mHasGlobalBase);
-//}
-//
-// TEST(ValueMetricProducerTest, TestResetBaseOnPullDelayExceeded) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    metric.set_condition(StringToId("SCREEN_ON"));
-//    metric.set_max_pull_delay_sec(0);
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 1);
-//                event->write(tagId);
-//                event->write(120);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//
-//    valueProducer->mCondition = ConditionState::kFalse;
-//
-//    // Max delay is set to 0 so pull will exceed max delay.
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 1);
-//    EXPECT_EQ(0UL, valueProducer->mCurrentSlicedBucket.size());
-//}
-//
-// TEST(ValueMetricProducerTest, TestResetBaseOnPullTooLate) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    UidMap uidMap;
-//    SimpleAtomMatcher atomMatcher;
-//    atomMatcher.set_atom_id(tagId);
-//    sp<EventMatcherWizard> eventMatcherWizard =
-//            new EventMatcherWizard({new SimpleLogMatchingTracker(
-//                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
-//    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-//    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillRepeatedly(Return());
-//
-//    ValueMetricProducer valueProducer(kConfigKey, metric, 1, wizard, logEventMatcherIndex,
-//                                      eventMatcherWizard, tagId, bucket2StartTimeNs,
-//                                      bucket2StartTimeNs, pullerManager);
-//    valueProducer.mCondition = ConditionState::kFalse;
-//
-//    // Event should be skipped since it is from previous bucket.
-//    // Pull should not be called.
-//    valueProducer.onConditionChanged(true, bucketStartTimeNs);
-//    EXPECT_EQ(0UL, valueProducer.mCurrentSlicedBucket.size());
-//}
-//
-// TEST(ValueMetricProducerTest, TestBaseSetOnConditionChange) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 1);
-//                event->write(tagId);
-//                event->write(100);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//
-//    valueProducer->mCondition = ConditionState::kFalse;
-//    valueProducer->mHasGlobalBase = false;
-//
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 1);
-//    valueProducer->mHasGlobalBase = true;
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval& curInterval =
-//            valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    ValueMetricProducer::BaseInfo curBaseInfo =
-//    valueProducer->mCurrentBaseInfo.begin()->second[0]; EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(100, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
-//}
-//
-///*
-// * Tests that a bucket is marked invalid when a condition change pull fails.
-// */
-// TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenOneConditionFailed) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // First onConditionChanged
-//            .WillOnce(Return(false))
-//            // Second onConditionChanged
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 8);
-//                event->write(tagId);
-//                event->write(130);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//
-//    valueProducer->mCondition = ConditionState::kTrue;
-//
-//    // Bucket start.
-//    vector<shared_ptr<LogEvent>> allData;
-//    allData.clear();
-//    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 1);
-//    event->write(1);
-//    event->write(110);
-//    event->init();
-//    allData.push_back(event);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucketStartTimeNs);
-//
-//    // This will fail and should invalidate the whole bucket since we do not have all the data
-//    // needed to compute the metric value when the screen was on.
-//    valueProducer->onConditionChanged(false, bucketStartTimeNs + 2);
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 3);
-//
-//    // Bucket end.
-//    allData.clear();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event2->write(1);
-//    event2->write(140);
-//    event2->init();
-//    allData.push_back(event2);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
-//
-//    valueProducer->flushIfNeededLocked(bucket2StartTimeNs + 1);
-//
-//    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
-//    // Contains base from last pull which was successful.
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval& curInterval =
-//            valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    ValueMetricProducer::BaseInfo curBaseInfo =
-//    valueProducer->mCurrentBaseInfo.begin()->second[0]; EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(140, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
-//
-//    // Check dump report.
-//    ProtoOutputStream output;
-//    std::set<string> strSet;
-//    valueProducer->onDumpReport(bucket2StartTimeNs + 10, false /* include partial bucket */, true,
-//                                FAST /* dumpLatency */, &strSet, &output);
-//
-//    StatsLogReport report = outputStreamToProto(&output);
-//    EXPECT_TRUE(report.has_value_metrics());
-//    EXPECT_EQ(0, report.value_metrics().data_size());
-//    EXPECT_EQ(1, report.value_metrics().skipped_size());
-//
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
-//              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
-//    EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
-//              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
-//    EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
-//
-//    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
-//    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 2), dropEvent.drop_time_millis());
-//}
-//
-///*
-// * Tests that a bucket is marked invalid when the guardrail is hit.
-// */
-// TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenGuardRailHit) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    metric.mutable_dimensions_in_what()->set_field(tagId);
-//    metric.mutable_dimensions_in_what()->add_child()->set_field(1);
-//    metric.set_condition(StringToId("SCREEN_ON"));
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // First onConditionChanged
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                for (int i = 0; i < 2000; i++) {
-//                    shared_ptr<LogEvent> event =
-//                            make_shared<LogEvent>(tagId, bucketStartTimeNs + 1);
-//                    event->write(i);
-//                    event->write(i);
-//                    event->init();
-//                    data->push_back(event);
-//                }
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//    valueProducer->mCondition = ConditionState::kFalse;
-//
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 2);
-//    EXPECT_EQ(true, valueProducer->mCurrentBucketIsInvalid);
-//    EXPECT_EQ(0UL, valueProducer->mCurrentSlicedBucket.size());
-//    EXPECT_EQ(0UL, valueProducer->mSkippedBuckets.size());
-//
-//    // Bucket 2 start.
-//    vector<shared_ptr<LogEvent>> allData;
-//    allData.clear();
-//    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event->write(1);
-//    event->write(10);
-//    event->init();
-//    allData.push_back(event);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
-//
-//    // First bucket added to mSkippedBuckets after flush.
-//    EXPECT_EQ(1UL, valueProducer->mSkippedBuckets.size());
-//
-//    // Check dump report.
-//    ProtoOutputStream output;
-//    std::set<string> strSet;
-//    valueProducer->onDumpReport(bucket2StartTimeNs + 10000, false /* include recent buckets */,
-//                                true, FAST /* dumpLatency */, &strSet, &output);
-//
-//    StatsLogReport report = outputStreamToProto(&output);
-//    EXPECT_TRUE(report.has_value_metrics());
-//    EXPECT_EQ(0, report.value_metrics().data_size());
-//    EXPECT_EQ(1, report.value_metrics().skipped_size());
-//
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
-//              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
-//    EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
-//              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
-//    EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
-//
-//    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
-//    EXPECT_EQ(BucketDropReason::DIMENSION_GUARDRAIL_REACHED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 2), dropEvent.drop_time_millis());
-//}
-//
-///*
-// * Tests that a bucket is marked invalid when the bucket's initial pull fails.
-// */
-// TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenInitialPullFailed) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // First onConditionChanged
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 8);
-//                event->write(tagId);
-//                event->write(120);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Second onConditionChanged
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 8);
-//                event->write(tagId);
-//                event->write(130);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//
-//    valueProducer->mCondition = ConditionState::kTrue;
-//
-//    // Bucket start.
-//    vector<shared_ptr<LogEvent>> allData;
-//    allData.clear();
-//    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 1);
-//    event->write(1);
-//    event->write(110);
-//    event->init();
-//    allData.push_back(event);
-//    valueProducer->onDataPulled(allData, /** succeed */ false, bucketStartTimeNs);
-//
-//    valueProducer->onConditionChanged(false, bucketStartTimeNs + 2);
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 3);
-//
-//    // Bucket end.
-//    allData.clear();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event2->write(1);
-//    event2->write(140);
-//    event2->init();
-//    allData.push_back(event2);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
-//
-//    valueProducer->flushIfNeededLocked(bucket2StartTimeNs + 1);
-//
-//    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
-//    // Contains base from last pull which was successful.
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval& curInterval =
-//            valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    ValueMetricProducer::BaseInfo curBaseInfo =
-//    valueProducer->mCurrentBaseInfo.begin()->second[0]; EXPECT_EQ(true, curBaseInfo.hasBase);
-//    EXPECT_EQ(140, curBaseInfo.base.long_value);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
-//
-//    // Check dump report.
-//    ProtoOutputStream output;
-//    std::set<string> strSet;
-//    valueProducer->onDumpReport(bucket2StartTimeNs + 10000, false /* include recent buckets */,
-//                                true, FAST /* dumpLatency */, &strSet, &output);
-//
-//    StatsLogReport report = outputStreamToProto(&output);
-//    EXPECT_TRUE(report.has_value_metrics());
-//    EXPECT_EQ(0, report.value_metrics().data_size());
-//    EXPECT_EQ(1, report.value_metrics().skipped_size());
-//
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
-//              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
-//    EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
-//              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
-//    EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
-//
-//    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
-//    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 2), dropEvent.drop_time_millis());
-//}
-//
-///*
-// * Tests that a bucket is marked invalid when the bucket's final pull fails
-// * (i.e. failed pull on bucket boundary).
-// */
-// TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenLastPullFailed) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // First onConditionChanged
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 8);
-//                event->write(tagId);
-//                event->write(120);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Second onConditionChanged
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 8);
-//                event->write(tagId);
-//                event->write(130);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//
-//    valueProducer->mCondition = ConditionState::kTrue;
-//
-//    // Bucket start.
-//    vector<shared_ptr<LogEvent>> allData;
-//    allData.clear();
-//    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 1);
-//    event->write(1);
-//    event->write(110);
-//    event->init();
-//    allData.push_back(event);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucketStartTimeNs);
-//
-//    valueProducer->onConditionChanged(false, bucketStartTimeNs + 2);
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 3);
-//
-//    // Bucket end.
-//    allData.clear();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event2->write(1);
-//    event2->write(140);
-//    event2->init();
-//    allData.push_back(event2);
-//    valueProducer->onDataPulled(allData, /** succeed */ false, bucket2StartTimeNs);
-//
-//    valueProducer->flushIfNeededLocked(bucket2StartTimeNs + 1);
-//
-//    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
-//    // Last pull failed so base has been reset.
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    ValueMetricProducer::Interval& curInterval =
-//            valueProducer->mCurrentSlicedBucket.begin()->second[0];
-//    ValueMetricProducer::BaseInfo curBaseInfo =
-//    valueProducer->mCurrentBaseInfo.begin()->second[0]; EXPECT_EQ(false, curBaseInfo.hasBase);
-//    EXPECT_EQ(false, curInterval.hasValue);
-//    EXPECT_EQ(false, valueProducer->mHasGlobalBase);
-//
-//    // Check dump report.
-//    ProtoOutputStream output;
-//    std::set<string> strSet;
-//    valueProducer->onDumpReport(bucket2StartTimeNs + 10000, false /* include recent buckets */,
-//                                true, FAST /* dumpLatency */, &strSet, &output);
-//
-//    StatsLogReport report = outputStreamToProto(&output);
-//    EXPECT_TRUE(report.has_value_metrics());
-//    EXPECT_EQ(0, report.value_metrics().data_size());
-//    EXPECT_EQ(1, report.value_metrics().skipped_size());
-//
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
-//              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
-//    EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
-//              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
-//    EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
-//
-//    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
-//    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucket2StartTimeNs), dropEvent.drop_time_millis());
-//}
-//
-// TEST(ValueMetricProducerTest, TestEmptyDataResetsBase_onDataPulled) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // Start bucket.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs);
-//                event->write(tagId);
-//                event->write(3);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
-//
-//    // Bucket 2 start.
-//    vector<shared_ptr<LogEvent>> allData;
-//    allData.clear();
-//    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 1);
-//    event->write(tagId);
-//    event->write(110);
-//    event->init();
-//    allData.push_back(event);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    EXPECT_EQ(1UL, valueProducer->mPastBuckets.size());
-//
-//    // Bucket 3 empty.
-//    allData.clear();
-//    shared_ptr<LogEvent> event2 = make_shared<LogEvent>(tagId, bucket3StartTimeNs + 1);
-//    event2->init();
-//    allData.push_back(event2);
-//    valueProducer->onDataPulled(allData, /** succeed */ true, bucket3StartTimeNs);
-//    // Data has been trimmed.
-//    EXPECT_EQ(0UL, valueProducer->mCurrentSlicedBucket.size());
-//    EXPECT_EQ(1UL, valueProducer->mPastBuckets.size());
-//}
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+
+    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
+                                      eventMatcherWizard, -1, bucketStartTimeNs, bucketStartTimeNs,
+                                      pullerManager);
+    valueProducer.prepareFirstBucket();
+
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event1, tagId, bucketStartTimeNs + 10, 1, 10);
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event2, tagId, bucketStartTimeNs + 20, 1, 20);
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event1);
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval curInterval =
+            valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(10, curInterval.value.long_value);
+    EXPECT_EQ(true, curInterval.hasValue);
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event2);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(30, curInterval.value.long_value);
+
+    valueProducer.flushIfNeededLocked(bucket2StartTimeNs);
+    assertPastBucketValuesSingleKey(valueProducer.mPastBuckets, {30}, {bucketSizeNs});
+}
+
+TEST(ValueMetricProducerTest, TestPushedEventsWithCondition) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+
+    ValueMetricProducer valueProducer(kConfigKey, metric, 1, wizard, logEventMatcherIndex,
+                                      eventMatcherWizard, -1, bucketStartTimeNs, bucketStartTimeNs,
+                                      pullerManager);
+    valueProducer.prepareFirstBucket();
+    valueProducer.mCondition = ConditionState::kFalse;
+
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event1, tagId, bucketStartTimeNs + 10, 1, 10);
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event1);
+    // has 1 slice
+    EXPECT_EQ(0UL, valueProducer.mCurrentSlicedBucket.size());
+
+    valueProducer.onConditionChangedLocked(true, bucketStartTimeNs + 15);
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event2, tagId, bucketStartTimeNs + 20, 1, 20);
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event2);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval curInterval =
+            valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(20, curInterval.value.long_value);
+
+    LogEvent event3(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event3, tagId, bucketStartTimeNs + 30, 1, 30);
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event3);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(50, curInterval.value.long_value);
+
+    valueProducer.onConditionChangedLocked(false, bucketStartTimeNs + 35);
+
+    LogEvent event4(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event4, tagId, bucketStartTimeNs + 40, 1, 40);
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event4);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(50, curInterval.value.long_value);
+
+    valueProducer.flushIfNeededLocked(bucket2StartTimeNs);
+    assertPastBucketValuesSingleKey(valueProducer.mPastBuckets, {50}, {20});
+}
+
+TEST(ValueMetricProducerTest, TestAnomalyDetection) {
+    sp<AlarmMonitor> alarmMonitor;
+    Alert alert;
+    alert.set_id(101);
+    alert.set_metric_id(metricId);
+    alert.set_trigger_if_sum_gt(130);
+    alert.set_num_buckets(2);
+    const int32_t refPeriodSec = 3;
+    alert.set_refractory_period_secs(refPeriodSec);
+
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    ValueMetricProducer valueProducer(kConfigKey, metric, -1 /*-1 meaning no condition*/, wizard,
+                                      logEventMatcherIndex, eventMatcherWizard, -1 /*not pulled*/,
+                                      bucketStartTimeNs, bucketStartTimeNs, pullerManager);
+    valueProducer.prepareFirstBucket();
+
+    sp<AnomalyTracker> anomalyTracker = valueProducer.addAnomalyTracker(alert, alarmMonitor);
+
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    CreateRepeatedValueLogEvent(&event1, tagId, bucketStartTimeNs + 1 * NS_PER_SEC, 10);
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    CreateRepeatedValueLogEvent(&event2, tagId, bucketStartTimeNs + 2 + NS_PER_SEC, 20);
+
+    LogEvent event3(/*uid=*/0, /*pid=*/0);
+    CreateRepeatedValueLogEvent(&event3, tagId,
+                                bucketStartTimeNs + 2 * bucketSizeNs + 1 * NS_PER_SEC, 130);
+
+    LogEvent event4(/*uid=*/0, /*pid=*/0);
+    CreateRepeatedValueLogEvent(&event4, tagId,
+                                bucketStartTimeNs + 3 * bucketSizeNs + 1 * NS_PER_SEC, 1);
+
+    LogEvent event5(/*uid=*/0, /*pid=*/0);
+    CreateRepeatedValueLogEvent(&event5, tagId,
+                                bucketStartTimeNs + 3 * bucketSizeNs + 2 * NS_PER_SEC, 150);
+
+    LogEvent event6(/*uid=*/0, /*pid=*/0);
+    CreateRepeatedValueLogEvent(&event6, tagId,
+                                bucketStartTimeNs + 3 * bucketSizeNs + 10 * NS_PER_SEC, 160);
+
+    // Two events in bucket #0.
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event1);
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event2);
+    // Value sum == 30 <= 130.
+    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY), 0U);
+
+    // One event in bucket #2. No alarm as bucket #0 is trashed out.
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event3);
+    // Value sum == 130 <= 130.
+    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY), 0U);
+
+    // Three events in bucket #3.
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event4);
+    // Anomaly at event 4 since Value sum == 131 > 130!
+    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
+              std::ceil(1.0 * event4.GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event5);
+    // Event 5 is within 3 sec refractory period. Thus last alarm timestamp is still event4.
+    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
+              std::ceil(1.0 * event4.GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event6);
+    // Anomaly at event 6 since Value sum == 160 > 130 and after refractory period.
+    EXPECT_EQ(anomalyTracker->getRefractoryPeriodEndsSec(DEFAULT_METRIC_DIMENSION_KEY),
+              std::ceil(1.0 * event6.GetElapsedTimestampNs() / NS_PER_SEC + refPeriodSec));
+}
+
+// Test value metric no condition, the pull on bucket boundary come in time and too late
+TEST(ValueMetricProducerTest, TestBucketBoundaryNoCondition) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _)).WillOnce(Return(true));
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
+
+    vector<shared_ptr<LogEvent>> allData;
+    // pull 1
+    allData.clear();
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 1, 11));
+
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval curInterval =
+            valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+
+    // startUpdated:true sum:0 start:11
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(11, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
+
+    // pull 2 at correct time
+    allData.clear();
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucket3StartTimeNs + 1, 23));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket3StartTimeNs);
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    // tartUpdated:false sum:12
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(23, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {12}, {bucketSizeNs});
+
+    // pull 3 come late.
+    // The previous bucket gets closed with error. (Has start value 23, no ending)
+    // Another bucket gets closed with error. (No start, but ending with 36)
+    // The new bucket is back to normal.
+    allData.clear();
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucket6StartTimeNs + 1, 36));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket6StartTimeNs);
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    // startUpdated:false sum:12
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(36, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {12}, {bucketSizeNs});
+}
+
+/*
+ * Test pulled event with non sliced condition. The pull on boundary come late because the alarm
+ * was delivered late.
+ */
+TEST(ValueMetricProducerTest, TestBucketBoundaryWithCondition) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // condition becomes true
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 8, 100));
+                return true;
+            }))
+            // condition becomes false
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 1, 120));
+                return true;
+            }));
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 8);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval curInterval =
+            valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(100, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
+
+    // pull on bucket boundary come late, condition change happens before it
+    valueProducer->onConditionChanged(false, bucket2StartTimeNs + 1);
+    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {20}, {bucketSizeNs - 8});
+    EXPECT_EQ(false, curBaseInfo.hasBase);
+
+    // Now the alarm is delivered.
+    // since the condition turned to off before this pull finish, it has no effect
+    vector<shared_ptr<LogEvent>> allData;
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 30, 110));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
+
+    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {20}, {bucketSizeNs - 8});
+    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(false, curBaseInfo.hasBase);
+    EXPECT_EQ(false, curInterval.hasValue);
+}
+
+/*
+* Test pulled event with non sliced condition. The pull on boundary come late, after the
+condition
+* change to false, and then true again. This is due to alarm delivered late.
+*/
+TEST(ValueMetricProducerTest, TestBucketBoundaryWithCondition2) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // condition becomes true
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 8, 100));
+                return true;
+            }))
+            // condition becomes false
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 1, 120));
+                return true;
+            }))
+            // condition becomes true again
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 25, 130));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 8);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval curInterval =
+            valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    // startUpdated:false sum:0 start:100
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(100, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
+
+    // pull on bucket boundary come late, condition change happens before it
+    valueProducer->onConditionChanged(false, bucket2StartTimeNs + 1);
+    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {20}, {bucketSizeNs - 8});
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(false, curBaseInfo.hasBase);
+    EXPECT_EQ(false, curInterval.hasValue);
+
+    // condition changed to true again, before the pull alarm is delivered
+    valueProducer->onConditionChanged(true, bucket2StartTimeNs + 25);
+    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {20}, {bucketSizeNs - 8});
+    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(130, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+
+    // Now the alarm is delivered, but it is considered late, the data will be used
+    // for the new bucket since it was just pulled.
+    vector<shared_ptr<LogEvent>> allData;
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 50, 140));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs + 50);
+
+    curInterval = valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(140, curBaseInfo.base.long_value);
+    EXPECT_EQ(true, curInterval.hasValue);
+    EXPECT_EQ(10, curInterval.value.long_value);
+    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {20}, {bucketSizeNs - 8});
+
+    allData.clear();
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucket3StartTimeNs, 160));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket3StartTimeNs);
+    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {20, 30},
+                                    {bucketSizeNs - 8, bucketSizeNs - 24});
+}
+
+TEST(ValueMetricProducerTest, TestPushedAggregateMin) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    metric.set_aggregation_type(ValueMetric::MIN);
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+
+    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
+                                      eventMatcherWizard, -1, bucketStartTimeNs, bucketStartTimeNs,
+                                      pullerManager);
+    valueProducer.prepareFirstBucket();
+
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event1, tagId, bucketStartTimeNs + 10, 1, 10);
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event2, tagId, bucketStartTimeNs + 20, 1, 20);
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event1);
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval curInterval =
+            valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(10, curInterval.value.long_value);
+    EXPECT_EQ(true, curInterval.hasValue);
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event2);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(10, curInterval.value.long_value);
+
+    valueProducer.flushIfNeededLocked(bucket2StartTimeNs);
+    assertPastBucketValuesSingleKey(valueProducer.mPastBuckets, {10}, {bucketSizeNs});
+}
+
+TEST(ValueMetricProducerTest, TestPushedAggregateMax) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    metric.set_aggregation_type(ValueMetric::MAX);
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+
+    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
+                                      eventMatcherWizard, -1, bucketStartTimeNs, bucketStartTimeNs,
+                                      pullerManager);
+    valueProducer.prepareFirstBucket();
+
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event1, tagId, bucketStartTimeNs + 10, 1, 10);
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event2, tagId, bucketStartTimeNs + 20, 1, 20);
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event1);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval curInterval =
+            valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(10, curInterval.value.long_value);
+    EXPECT_EQ(true, curInterval.hasValue);
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event2);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(20, curInterval.value.long_value);
+
+    valueProducer.flushIfNeededLocked(bucket3StartTimeNs);
+    /* EXPECT_EQ(1UL, valueProducer.mPastBuckets.size()); */
+    /* EXPECT_EQ(1UL, valueProducer.mPastBuckets.begin()->second.size()); */
+    /* EXPECT_EQ(20, valueProducer.mPastBuckets.begin()->second.back().values[0].long_value); */
+}
+
+TEST(ValueMetricProducerTest, TestPushedAggregateAvg) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    metric.set_aggregation_type(ValueMetric::AVG);
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+
+    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
+                                      eventMatcherWizard, -1, bucketStartTimeNs, bucketStartTimeNs,
+                                      pullerManager);
+    valueProducer.prepareFirstBucket();
+
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event1, tagId, bucketStartTimeNs + 10, 1, 10);
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event2, tagId, bucketStartTimeNs + 20, 1, 15);
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event1);
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval curInterval;
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(10, curInterval.value.long_value);
+    EXPECT_EQ(true, curInterval.hasValue);
+    EXPECT_EQ(1, curInterval.sampleSize);
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event2);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(25, curInterval.value.long_value);
+    EXPECT_EQ(2, curInterval.sampleSize);
+
+    valueProducer.flushIfNeededLocked(bucket2StartTimeNs);
+    EXPECT_EQ(1UL, valueProducer.mPastBuckets.size());
+    EXPECT_EQ(1UL, valueProducer.mPastBuckets.begin()->second.size());
+
+    EXPECT_TRUE(std::abs(valueProducer.mPastBuckets.begin()->second.back().values[0].double_value -
+                         12.5) < epsilon);
+}
+
+TEST(ValueMetricProducerTest, TestPushedAggregateSum) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    metric.set_aggregation_type(ValueMetric::SUM);
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+
+    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
+                                      eventMatcherWizard, -1, bucketStartTimeNs, bucketStartTimeNs,
+                                      pullerManager);
+    valueProducer.prepareFirstBucket();
+
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event1, tagId, bucketStartTimeNs + 10, 1, 10);
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event2, tagId, bucketStartTimeNs + 20, 1, 15);
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event1);
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval curInterval =
+            valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(10, curInterval.value.long_value);
+    EXPECT_EQ(true, curInterval.hasValue);
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event2);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(25, curInterval.value.long_value);
+
+    valueProducer.flushIfNeededLocked(bucket2StartTimeNs);
+    assertPastBucketValuesSingleKey(valueProducer.mPastBuckets, {25}, {bucketSizeNs});
+}
+
+TEST(ValueMetricProducerTest, TestSkipZeroDiffOutput) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    metric.set_aggregation_type(ValueMetric::MIN);
+    metric.set_use_diff(true);
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+
+    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
+                                      eventMatcherWizard, -1, bucketStartTimeNs, bucketStartTimeNs,
+                                      pullerManager);
+    valueProducer.prepareFirstBucket();
+
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event1, tagId, bucketStartTimeNs + 10, 1, 10);
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event2, tagId, bucketStartTimeNs + 15, 1, 15);
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event1);
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval curInterval =
+            valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(10, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event2);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    EXPECT_EQ(true, curInterval.hasValue);
+    EXPECT_EQ(5, curInterval.value.long_value);
+
+    // no change in data.
+    LogEvent event3(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event3, tagId, bucket2StartTimeNs + 10, 1, 15);
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event3);
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(15, curBaseInfo.base.long_value);
+    EXPECT_EQ(true, curInterval.hasValue);
+
+    LogEvent event4(/*uid=*/0, /*pid=*/0);
+    CreateTwoValueLogEvent(&event4, tagId, bucket2StartTimeNs + 15, 1, 15);
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event4);
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(15, curBaseInfo.base.long_value);
+    EXPECT_EQ(true, curInterval.hasValue);
+
+    valueProducer.flushIfNeededLocked(bucket3StartTimeNs);
+    EXPECT_EQ(1UL, valueProducer.mPastBuckets.size());
+    EXPECT_EQ(1UL, valueProducer.mPastBuckets.begin()->second.size());
+    assertPastBucketValuesSingleKey(valueProducer.mPastBuckets, {5}, {bucketSizeNs});
+}
+
+TEST(ValueMetricProducerTest, TestSkipZeroDiffOutputMultiValue) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    metric.mutable_value_field()->add_child()->set_field(3);
+    metric.set_aggregation_type(ValueMetric::MIN);
+    metric.set_use_diff(true);
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+
+    ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
+                                      eventMatcherWizard, -1, bucketStartTimeNs, bucketStartTimeNs,
+                                      pullerManager);
+    valueProducer.prepareFirstBucket();
+
+    LogEvent event1(/*uid=*/0, /*pid=*/0);
+    CreateThreeValueLogEvent(&event1, tagId, bucketStartTimeNs + 10, 1, 10, 20);
+
+    LogEvent event2(/*uid=*/0, /*pid=*/0);
+    CreateThreeValueLogEvent(&event2, tagId, bucketStartTimeNs + 15, 1, 15, 22);
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event1);
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval curInterval =
+            valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(10, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[1];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(20, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event2);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curInterval.hasValue);
+    EXPECT_EQ(5, curInterval.value.long_value);
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[1];
+    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[1];
+    EXPECT_EQ(true, curInterval.hasValue);
+    EXPECT_EQ(2, curInterval.value.long_value);
+
+    // no change in first value field
+    LogEvent event3(/*uid=*/0, /*pid=*/0);
+    CreateThreeValueLogEvent(&event3, tagId, bucket2StartTimeNs + 10, 1, 15, 25);
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event3);
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
+
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(15, curBaseInfo.base.long_value);
+    EXPECT_EQ(true, curInterval.hasValue);
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[1];
+    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[1];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(25, curBaseInfo.base.long_value);
+    EXPECT_EQ(true, curInterval.hasValue);
+
+    LogEvent event4(/*uid=*/0, /*pid=*/0);
+    CreateThreeValueLogEvent(&event4, tagId, bucket2StartTimeNs + 15, 1, 15, 29);
+
+    valueProducer.onMatchedLogEvent(1 /*log matcher index*/, event4);
+    EXPECT_EQ(1UL, valueProducer.mCurrentSlicedBucket.size());
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[0];
+    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(15, curBaseInfo.base.long_value);
+    EXPECT_EQ(true, curInterval.hasValue);
+    curInterval = valueProducer.mCurrentSlicedBucket.begin()->second[1];
+    curBaseInfo = valueProducer.mCurrentBaseInfo.begin()->second[1];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(29, curBaseInfo.base.long_value);
+    EXPECT_EQ(true, curInterval.hasValue);
+
+    valueProducer.flushIfNeededLocked(bucket3StartTimeNs);
+
+    EXPECT_EQ(1UL, valueProducer.mPastBuckets.size());
+    EXPECT_EQ(2UL, valueProducer.mPastBuckets.begin()->second.size());
+    EXPECT_EQ(2UL, valueProducer.mPastBuckets.begin()->second[0].values.size());
+    EXPECT_EQ(1UL, valueProducer.mPastBuckets.begin()->second[1].values.size());
+
+    EXPECT_EQ(bucketSizeNs, valueProducer.mPastBuckets.begin()->second[0].mConditionTrueNs);
+    EXPECT_EQ(5, valueProducer.mPastBuckets.begin()->second[0].values[0].long_value);
+    EXPECT_EQ(0, valueProducer.mPastBuckets.begin()->second[0].valueIndex[0]);
+    EXPECT_EQ(2, valueProducer.mPastBuckets.begin()->second[0].values[1].long_value);
+    EXPECT_EQ(1, valueProducer.mPastBuckets.begin()->second[0].valueIndex[1]);
+
+    EXPECT_EQ(bucketSizeNs, valueProducer.mPastBuckets.begin()->second[1].mConditionTrueNs);
+    EXPECT_EQ(3, valueProducer.mPastBuckets.begin()->second[1].values[0].long_value);
+    EXPECT_EQ(1, valueProducer.mPastBuckets.begin()->second[1].valueIndex[0]);
+}
+
+/*
+ * Tests zero default base.
+ */
+TEST(ValueMetricProducerTest, TestUseZeroDefaultBase) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    metric.mutable_dimensions_in_what()->set_field(tagId);
+    metric.mutable_dimensions_in_what()->add_child()->set_field(1);
+    metric.set_use_zero_default_base(true);
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateTwoValueLogEvent(tagId, bucketStartTimeNs, 1, 3));
+                        return true;
+                    }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
+
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    auto iter = valueProducer->mCurrentSlicedBucket.begin();
+    auto& interval1 = iter->second[0];
+    auto iterBase = valueProducer->mCurrentBaseInfo.begin();
+    auto& baseInfo1 = iterBase->second[0];
+    EXPECT_EQ(1, iter->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, baseInfo1.hasBase);
+    EXPECT_EQ(3, baseInfo1.base.long_value);
+    EXPECT_EQ(false, interval1.hasValue);
+    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
+    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
+    vector<shared_ptr<LogEvent>> allData;
+
+    allData.clear();
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 1, 2, 4));
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 1, 1, 11));
+
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
+    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
+    EXPECT_EQ(true, baseInfo1.hasBase);
+    EXPECT_EQ(11, baseInfo1.base.long_value);
+    EXPECT_EQ(false, interval1.hasValue);
+    EXPECT_EQ(8, interval1.value.long_value);
+
+    auto it = valueProducer->mCurrentSlicedBucket.begin();
+    for (; it != valueProducer->mCurrentSlicedBucket.end(); it++) {
+        if (it != iter) {
+            break;
+        }
+    }
+    auto itBase = valueProducer->mCurrentBaseInfo.begin();
+    for (; itBase != valueProducer->mCurrentBaseInfo.end(); it++) {
+        if (itBase != iterBase) {
+            break;
+        }
+    }
+    EXPECT_TRUE(it != iter);
+    EXPECT_TRUE(itBase != iterBase);
+    auto& interval2 = it->second[0];
+    auto& baseInfo2 = itBase->second[0];
+    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, baseInfo2.hasBase);
+    EXPECT_EQ(4, baseInfo2.base.long_value);
+    EXPECT_EQ(false, interval2.hasValue);
+    EXPECT_EQ(4, interval2.value.long_value);
+
+    EXPECT_EQ(2UL, valueProducer->mPastBuckets.size());
+    auto iterator = valueProducer->mPastBuckets.begin();
+    EXPECT_EQ(bucketSizeNs, iterator->second[0].mConditionTrueNs);
+    EXPECT_EQ(8, iterator->second[0].values[0].long_value);
+    iterator++;
+    EXPECT_EQ(bucketSizeNs, iterator->second[0].mConditionTrueNs);
+    EXPECT_EQ(4, iterator->second[0].values[0].long_value);
+}
+
+/*
+ * Tests using zero default base with failed pull.
+ */
+TEST(ValueMetricProducerTest, TestUseZeroDefaultBaseWithPullFailures) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    metric.mutable_dimensions_in_what()->set_field(tagId);
+    metric.mutable_dimensions_in_what()->add_child()->set_field(1);
+    metric.set_use_zero_default_base(true);
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateTwoValueLogEvent(tagId, bucketStartTimeNs, 1, 3));
+                        return true;
+                    }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
+
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    const auto& it = valueProducer->mCurrentSlicedBucket.begin();
+    ValueMetricProducer::Interval& interval1 = it->second[0];
+    ValueMetricProducer::BaseInfo& baseInfo1 =
+            valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat())->second[0];
+    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, baseInfo1.hasBase);
+    EXPECT_EQ(3, baseInfo1.base.long_value);
+    EXPECT_EQ(false, interval1.hasValue);
+    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
+    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
+    vector<shared_ptr<LogEvent>> allData;
+
+    allData.clear();
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 1, 2, 4));
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 1, 1, 11));
+
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
+    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
+    EXPECT_EQ(true, baseInfo1.hasBase);
+    EXPECT_EQ(11, baseInfo1.base.long_value);
+    EXPECT_EQ(false, interval1.hasValue);
+    EXPECT_EQ(8, interval1.value.long_value);
+
+    auto it2 = valueProducer->mCurrentSlicedBucket.begin();
+    for (; it2 != valueProducer->mCurrentSlicedBucket.end(); it2++) {
+        if (it2 != it) {
+            break;
+        }
+    }
+    EXPECT_TRUE(it2 != it);
+    ValueMetricProducer::Interval& interval2 = it2->second[0];
+    ValueMetricProducer::BaseInfo& baseInfo2 =
+            valueProducer->mCurrentBaseInfo.find(it2->first.getDimensionKeyInWhat())->second[0];
+    EXPECT_EQ(2, it2->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, baseInfo2.hasBase);
+    EXPECT_EQ(4, baseInfo2.base.long_value);
+    EXPECT_EQ(false, interval2.hasValue);
+    EXPECT_EQ(4, interval2.value.long_value);
+    EXPECT_EQ(2UL, valueProducer->mPastBuckets.size());
+
+    // next pull somehow did not happen, skip to end of bucket 3
+    allData.clear();
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket4StartTimeNs + 1, 2, 5));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket4StartTimeNs);
+
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    EXPECT_EQ(true, baseInfo2.hasBase);
+    EXPECT_EQ(5, baseInfo2.base.long_value);
+    EXPECT_EQ(false, interval2.hasValue);
+    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
+    EXPECT_EQ(2UL, valueProducer->mPastBuckets.size());
+
+    allData.clear();
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket5StartTimeNs + 1, 2, 13));
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket5StartTimeNs + 1, 1, 5));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket5StartTimeNs);
+
+    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
+    // Get new references now that entries have been deleted from the map
+    const auto& it3 = valueProducer->mCurrentSlicedBucket.begin();
+    const auto& it4 = std::next(valueProducer->mCurrentSlicedBucket.begin());
+    EXPECT_EQ(it3->second.size(), 1);
+    EXPECT_EQ(it4->second.size(), 1);
+    ValueMetricProducer::Interval& interval3 = it3->second[0];
+    ValueMetricProducer::Interval& interval4 = it4->second[0];
+    ValueMetricProducer::BaseInfo& baseInfo3 =
+            valueProducer->mCurrentBaseInfo.find(it3->first.getDimensionKeyInWhat())->second[0];
+    ValueMetricProducer::BaseInfo& baseInfo4 =
+            valueProducer->mCurrentBaseInfo.find(it4->first.getDimensionKeyInWhat())->second[0];
+
+    EXPECT_EQ(true, baseInfo3.hasBase);
+    EXPECT_EQ(5, baseInfo3.base.long_value);
+    EXPECT_EQ(false, interval3.hasValue);
+    EXPECT_EQ(5, interval3.value.long_value);
+    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
+
+    EXPECT_EQ(true, baseInfo4.hasBase);
+    EXPECT_EQ(13, baseInfo4.base.long_value);
+    EXPECT_EQ(false, interval4.hasValue);
+    EXPECT_EQ(8, interval4.value.long_value);
+
+    EXPECT_EQ(2UL, valueProducer->mPastBuckets.size());
+}
+
+/*
+ * Tests trim unused dimension key if no new data is seen in an entire bucket.
+ */
+TEST(ValueMetricProducerTest, TestTrimUnusedDimensionKey) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    metric.mutable_dimensions_in_what()->set_field(tagId);
+    metric.mutable_dimensions_in_what()->add_child()->set_field(1);
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateTwoValueLogEvent(tagId, bucketStartTimeNs, 1, 3));
+                        return true;
+                    }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
+
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    auto iter = valueProducer->mCurrentSlicedBucket.begin();
+    auto& interval1 = iter->second[0];
+    auto iterBase = valueProducer->mCurrentBaseInfo.begin();
+    auto& baseInfo1 = iterBase->second[0];
+    EXPECT_EQ(1, iter->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, baseInfo1.hasBase);
+    EXPECT_EQ(3, baseInfo1.base.long_value);
+    EXPECT_EQ(false, interval1.hasValue);
+    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
+    vector<shared_ptr<LogEvent>> allData;
+
+    allData.clear();
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 1, 2, 4));
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 1, 1, 11));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
+
+    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
+    EXPECT_EQ(true, baseInfo1.hasBase);
+    EXPECT_EQ(11, baseInfo1.base.long_value);
+    EXPECT_EQ(false, interval1.hasValue);
+    EXPECT_EQ(8, interval1.value.long_value);
+    EXPECT_FALSE(interval1.seenNewData);
+    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {8}, {bucketSizeNs});
+
+    auto it = valueProducer->mCurrentSlicedBucket.begin();
+    for (; it != valueProducer->mCurrentSlicedBucket.end(); it++) {
+        if (it != iter) {
+            break;
+        }
+    }
+    auto itBase = valueProducer->mCurrentBaseInfo.begin();
+    for (; itBase != valueProducer->mCurrentBaseInfo.end(); it++) {
+        if (itBase != iterBase) {
+            break;
+        }
+    }
+    EXPECT_TRUE(it != iter);
+    EXPECT_TRUE(itBase != iterBase);
+    auto& interval2 = it->second[0];
+    auto& baseInfo2 = itBase->second[0];
+    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, baseInfo2.hasBase);
+    EXPECT_EQ(4, baseInfo2.base.long_value);
+    EXPECT_EQ(false, interval2.hasValue);
+    EXPECT_FALSE(interval2.seenNewData);
+    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {8}, {bucketSizeNs});
+
+    // next pull somehow did not happen, skip to end of bucket 3
+    allData.clear();
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket4StartTimeNs + 1, 2, 5));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket4StartTimeNs);
+    // Only one interval left. One was trimmed.
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    interval2 = valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    baseInfo2 = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, baseInfo2.hasBase);
+    EXPECT_EQ(5, baseInfo2.base.long_value);
+    EXPECT_EQ(false, interval2.hasValue);
+    EXPECT_FALSE(interval2.seenNewData);
+    assertPastBucketValuesSingleKey(valueProducer->mPastBuckets, {8}, {bucketSizeNs});
+
+    allData.clear();
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket5StartTimeNs + 1, 2, 14));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket5StartTimeNs);
+
+    interval2 = valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    baseInfo2 = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, baseInfo2.hasBase);
+    EXPECT_EQ(14, baseInfo2.base.long_value);
+    EXPECT_EQ(false, interval2.hasValue);
+    EXPECT_FALSE(interval2.seenNewData);
+    ASSERT_EQ(2UL, valueProducer->mPastBuckets.size());
+    auto iterator = valueProducer->mPastBuckets.begin();
+    EXPECT_EQ(9, iterator->second[0].values[0].long_value);
+    EXPECT_EQ(bucketSizeNs, iterator->second[0].mConditionTrueNs);
+    iterator++;
+    EXPECT_EQ(8, iterator->second[0].values[0].long_value);
+    EXPECT_EQ(bucketSizeNs, iterator->second[0].mConditionTrueNs);
+}
+
+TEST(ValueMetricProducerTest, TestResetBaseOnPullFailAfterConditionChange_EndOfBucket) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    // Used by onConditionChanged.
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 8, 100));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 8);
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval& curInterval =
+            valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo& curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(100, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+
+    vector<shared_ptr<LogEvent>> allData;
+    valueProducer->onDataPulled(allData, /** succeed */ false, bucket2StartTimeNs);
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    EXPECT_EQ(false, curBaseInfo.hasBase);
+    EXPECT_EQ(false, curInterval.hasValue);
+    EXPECT_EQ(false, valueProducer->mHasGlobalBase);
+}
+
+TEST(ValueMetricProducerTest, TestResetBaseOnPullFailAfterConditionChange) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 8, 100));
+                return true;
+            }))
+            .WillOnce(Return(false));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 8);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval& curInterval =
+            valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo& curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(100, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
+
+    valueProducer->onConditionChanged(false, bucketStartTimeNs + 20);
+
+    // has one slice
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    EXPECT_EQ(false, curInterval.hasValue);
+    EXPECT_EQ(false, curBaseInfo.hasBase);
+    EXPECT_EQ(false, valueProducer->mHasGlobalBase);
+}
+
+TEST(ValueMetricProducerTest, TestResetBaseOnPullFailBeforeConditionChange) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 50));
+                        return false;
+                    }))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 8, 100));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+
+    // Don't directly set mCondition; the real code never does that. Go through regular code path
+    // to avoid unexpected behaviors.
+    // valueProducer->mCondition = ConditionState::kTrue;
+    valueProducer->onConditionChanged(true, bucketStartTimeNs);
+
+    EXPECT_EQ(0UL, valueProducer->mCurrentSlicedBucket.size());
+
+    valueProducer->onConditionChanged(false, bucketStartTimeNs + 1);
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval& curInterval =
+            valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(false, curBaseInfo.hasBase);
+    EXPECT_EQ(false, curInterval.hasValue);
+    EXPECT_EQ(false, valueProducer->mHasGlobalBase);
+}
+
+TEST(ValueMetricProducerTest, TestResetBaseOnPullDelayExceeded) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    metric.set_condition(StringToId("SCREEN_ON"));
+    metric.set_max_pull_delay_sec(0);
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 1, 120));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+
+    valueProducer->mCondition = ConditionState::kFalse;
+
+    // Max delay is set to 0 so pull will exceed max delay.
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 1);
+    EXPECT_EQ(0UL, valueProducer->mCurrentSlicedBucket.size());
+}
+
+TEST(ValueMetricProducerTest, TestResetBaseOnPullTooLate) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    UidMap uidMap;
+    SimpleAtomMatcher atomMatcher;
+    atomMatcher.set_atom_id(tagId);
+    sp<EventMatcherWizard> eventMatcherWizard =
+            new EventMatcherWizard({new SimpleLogMatchingTracker(
+                    atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
+    sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillRepeatedly(Return());
+
+    ValueMetricProducer valueProducer(kConfigKey, metric, 1, wizard, logEventMatcherIndex,
+                                      eventMatcherWizard, tagId, bucket2StartTimeNs,
+                                      bucket2StartTimeNs, pullerManager);
+    valueProducer.prepareFirstBucket();
+    valueProducer.mCondition = ConditionState::kFalse;
+
+    // Event should be skipped since it is from previous bucket.
+    // Pull should not be called.
+    valueProducer.onConditionChanged(true, bucketStartTimeNs);
+    EXPECT_EQ(0UL, valueProducer.mCurrentSlicedBucket.size());
+}
+
+TEST(ValueMetricProducerTest, TestBaseSetOnConditionChange) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 1, 100));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+
+    valueProducer->mCondition = ConditionState::kFalse;
+    valueProducer->mHasGlobalBase = false;
+
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 1);
+    valueProducer->mHasGlobalBase = true;
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval& curInterval =
+            valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(100, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
+}
+
+/*
+ * Tests that a bucket is marked invalid when a condition change pull fails.
+ */
+TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenOneConditionFailed) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // First onConditionChanged
+            .WillOnce(Return(false))
+            // Second onConditionChanged
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 8, 130));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+
+    valueProducer->mCondition = ConditionState::kTrue;
+
+    // Bucket start.
+    vector<shared_ptr<LogEvent>> allData;
+    allData.clear();
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 1, 110));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucketStartTimeNs);
+
+    // This will fail and should invalidate the whole bucket since we do not have all the data
+    // needed to compute the metric value when the screen was on.
+    valueProducer->onConditionChanged(false, bucketStartTimeNs + 2);
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 3);
+
+    // Bucket end.
+    allData.clear();
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 1, 140));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
+
+    valueProducer->flushIfNeededLocked(bucket2StartTimeNs + 1);
+
+    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
+    // Contains base from last pull which was successful.
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval& curInterval =
+            valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(140, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
+
+    // Check dump report.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    valueProducer->onDumpReport(bucket2StartTimeNs + 10, false /* include partial bucket */, true,
+                                FAST /* dumpLatency */, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_value_metrics());
+    EXPECT_EQ(0, report.value_metrics().data_size());
+    EXPECT_EQ(1, report.value_metrics().skipped_size());
+
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
+              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
+    EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
+              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
+    EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
+
+    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
+    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 2), dropEvent.drop_time_millis());
+}
+
+/*
+ * Tests that a bucket is marked invalid when the guardrail is hit.
+ */
+TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenGuardRailHit) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    metric.mutable_dimensions_in_what()->set_field(tagId);
+    metric.mutable_dimensions_in_what()->add_child()->set_field(1);
+    metric.set_condition(StringToId("SCREEN_ON"));
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // First onConditionChanged
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                for (int i = 0; i < 2000; i++) {
+                    data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 1, i));
+                }
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+    valueProducer->mCondition = ConditionState::kFalse;
+
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 2);
+    EXPECT_EQ(true, valueProducer->mCurrentBucketIsInvalid);
+    EXPECT_EQ(0UL, valueProducer->mCurrentSlicedBucket.size());
+    EXPECT_EQ(0UL, valueProducer->mSkippedBuckets.size());
+
+    // Bucket 2 start.
+    vector<shared_ptr<LogEvent>> allData;
+    allData.clear();
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 1, 1, 10));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
+
+    // First bucket added to mSkippedBuckets after flush.
+    EXPECT_EQ(1UL, valueProducer->mSkippedBuckets.size());
+
+    // Check dump report.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    valueProducer->onDumpReport(bucket2StartTimeNs + 10000, false /* include recent buckets */,
+                                true, FAST /* dumpLatency */, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_value_metrics());
+    EXPECT_EQ(0, report.value_metrics().data_size());
+    EXPECT_EQ(1, report.value_metrics().skipped_size());
+
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
+              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
+    EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
+              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
+    EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
+
+    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
+    EXPECT_EQ(BucketDropReason::DIMENSION_GUARDRAIL_REACHED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 2), dropEvent.drop_time_millis());
+}
+
+/*
+ * Tests that a bucket is marked invalid when the bucket's initial pull fails.
+ */
+TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenInitialPullFailed) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // First onConditionChanged
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 8, 120));
+                return true;
+            }))
+            // Second onConditionChanged
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 8, 130));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+
+    valueProducer->mCondition = ConditionState::kTrue;
+
+    // Bucket start.
+    vector<shared_ptr<LogEvent>> allData;
+    allData.clear();
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucketStartTimeNs + 1, 1, 110));
+    valueProducer->onDataPulled(allData, /** succeed */ false, bucketStartTimeNs);
+
+    valueProducer->onConditionChanged(false, bucketStartTimeNs + 2);
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 3);
+
+    // Bucket end.
+    allData.clear();
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 1, 1, 140));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
+
+    valueProducer->flushIfNeededLocked(bucket2StartTimeNs + 1);
+
+    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
+    // Contains base from last pull which was successful.
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval& curInterval =
+            valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(true, curBaseInfo.hasBase);
+    EXPECT_EQ(140, curBaseInfo.base.long_value);
+    EXPECT_EQ(false, curInterval.hasValue);
+    EXPECT_EQ(true, valueProducer->mHasGlobalBase);
+
+    // Check dump report.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    valueProducer->onDumpReport(bucket2StartTimeNs + 10000, false /* include recent buckets */,
+                                true, FAST /* dumpLatency */, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_value_metrics());
+    EXPECT_EQ(0, report.value_metrics().data_size());
+    EXPECT_EQ(1, report.value_metrics().skipped_size());
+
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
+              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
+    EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
+              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
+    EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
+
+    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
+    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 2), dropEvent.drop_time_millis());
+}
+
+/*
+ * Tests that a bucket is marked invalid when the bucket's final pull fails
+ * (i.e. failed pull on bucket boundary).
+ */
+TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenLastPullFailed) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // First onConditionChanged
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 8, 120));
+                return true;
+            }))
+            // Second onConditionChanged
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 8, 130));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+
+    valueProducer->mCondition = ConditionState::kTrue;
+
+    // Bucket start.
+    vector<shared_ptr<LogEvent>> allData;
+    allData.clear();
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 1, 110));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucketStartTimeNs);
+
+    valueProducer->onConditionChanged(false, bucketStartTimeNs + 2);
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 3);
+
+    // Bucket end.
+    allData.clear();
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 1, 140));
+    valueProducer->onDataPulled(allData, /** succeed */ false, bucket2StartTimeNs);
+
+    valueProducer->flushIfNeededLocked(bucket2StartTimeNs + 1);
+
+    EXPECT_EQ(0UL, valueProducer->mPastBuckets.size());
+    // Last pull failed so base has been reset.
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    ValueMetricProducer::Interval& curInterval =
+            valueProducer->mCurrentSlicedBucket.begin()->second[0];
+    ValueMetricProducer::BaseInfo curBaseInfo = valueProducer->mCurrentBaseInfo.begin()->second[0];
+    EXPECT_EQ(false, curBaseInfo.hasBase);
+    EXPECT_EQ(false, curInterval.hasValue);
+    EXPECT_EQ(false, valueProducer->mHasGlobalBase);
+
+    // Check dump report.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    valueProducer->onDumpReport(bucket2StartTimeNs + 10000, false /* include recent buckets */,
+                                true, FAST /* dumpLatency */, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_value_metrics());
+    EXPECT_EQ(0, report.value_metrics().data_size());
+    EXPECT_EQ(1, report.value_metrics().skipped_size());
+
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
+              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
+    EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
+              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
+    EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
+
+    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
+    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucket2StartTimeNs), dropEvent.drop_time_millis());
+}
+
+TEST(ValueMetricProducerTest, TestEmptyDataResetsBase_onDataPulled) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // Start bucket.
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 3));
+                        return true;
+                    }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
+
+    // Bucket 2 start.
+    vector<shared_ptr<LogEvent>> allData;
+    allData.clear();
+    allData.push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 1, 110));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket2StartTimeNs);
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    EXPECT_EQ(1UL, valueProducer->mPastBuckets.size());
+
+    // Bucket 3 empty.
+    allData.clear();
+    allData.push_back(CreateNoValuesLogEvent(tagId, bucket3StartTimeNs + 1));
+    valueProducer->onDataPulled(allData, /** succeed */ true, bucket3StartTimeNs);
+    // Data has been trimmed.
+    EXPECT_EQ(0UL, valueProducer->mCurrentSlicedBucket.size());
+    EXPECT_EQ(1UL, valueProducer->mPastBuckets.size());
+}
 
 TEST(ValueMetricProducerTest, TestEmptyDataResetsBase_onConditionChanged) {
     ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // First onConditionChanged
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 3));
-                return true;
-            }))
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                return true;
-            }));
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 3));
+                        return true;
+                    }))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        return true;
+                    }));
 
     sp<ValueMetricProducer> valueProducer =
             ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
@@ -2538,23 +2365,26 @@
     ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // First onConditionChanged
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
-                return true;
-            }))
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 2));
-                return true;
-            }))
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 5));
-                return true;
-            }));
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
+                        return true;
+                    }))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 2));
+                        return true;
+                    }))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 5));
+                        return true;
+                    }));
 
     sp<ValueMetricProducer> valueProducer =
             ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
@@ -2594,13 +2424,14 @@
     metric.set_condition(StringToId("SCREEN_ON"));
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // First onConditionChanged
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
-                return true;
-            }));
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
+                        return true;
+                    }));
 
     sp<ValueMetricProducer> valueProducer =
             ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
@@ -2634,15 +2465,17 @@
     ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Initialization.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
-                return true;
-            }))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
+                        return true;
+                    }))
             // notifyAppUpgrade.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(
                         tagId, bucketStartTimeNs + bucketSizeNs / 2, 10));
@@ -2664,15 +2497,17 @@
 TEST(ValueMetricProducerTest, TestBucketBoundariesOnConditionChange) {
     ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Second onConditionChanged.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 10, 5));
                 return true;
             }))
             // Third onConditionChanged.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucket3StartTimeNs + 10, 7));
                 return true;
@@ -2729,13 +2564,14 @@
     ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Initialization.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
-                return true;
-            }));
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
+                        return true;
+                    }));
 
     sp<ValueMetricProducer> valueProducer =
             ValueMetricProducerTestHelper::createValueProducerNoConditions(pullerManager, metric);
@@ -2756,15 +2592,17 @@
     ValueMetric metric = ValueMetricProducerTestHelper::createMetric();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Initialization.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
-                return true;
-            }))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
+                        return true;
+                    }))
             // notifyAppUpgrade.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 2, 10));
                 return true;
@@ -2783,19 +2621,21 @@
     ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // First on condition changed.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
-                return true;
-            }))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
+                        return true;
+                    }))
             // Second on condition changed.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 3));
-                return true;
-            }));
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 3));
+                        return true;
+                    }));
 
     sp<ValueMetricProducer> valueProducer =
             ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
@@ -2822,25 +2662,28 @@
     ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // First condition change.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
-                return true;
-            }))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 1));
+                        return true;
+                    }))
             // 2nd condition change.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs, 1));
-                return true;
-            }))
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs, 1));
+                        return true;
+                    }))
             // 3rd condition change.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-                data->clear();
-                data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs, 1));
-                return true;
-            }));
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs, 1));
+                        return true;
+                    }));
 
     sp<ValueMetricProducer> valueProducer =
             ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
@@ -2876,12 +2719,13 @@
                     atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
     sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillRepeatedly(Return());
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillRepeatedly(Return());
 
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Initial pull.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateThreeValueLogEvent(tagId, bucketStartTimeNs, tagId, 1, 1));
                 return true;
@@ -2890,6 +2734,7 @@
     ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
                                       eventMatcherWizard, tagId, bucketStartTimeNs,
                                       bucketStartTimeNs, pullerManager);
+    valueProducer.prepareFirstBucket();
 
     ProtoOutputStream output;
     std::set<string> strSet;
@@ -2912,12 +2757,13 @@
                     atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
     sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillRepeatedly(Return());
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillRepeatedly(Return());
 
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Initial pull.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateThreeValueLogEvent(tagId, bucketStartTimeNs, tagId, 1, 1));
                 return true;
@@ -2926,6 +2772,7 @@
     ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
                                       eventMatcherWizard, tagId, bucketStartTimeNs,
                                       bucketStartTimeNs, pullerManager);
+    valueProducer.prepareFirstBucket();
 
     vector<shared_ptr<LogEvent>> allData;
     allData.clear();
@@ -2954,17 +2801,19 @@
                     atomMatcherId, logEventMatcherIndex, atomMatcher, uidMap)});
     sp<MockConditionWizard> wizard = new NaggyMock<MockConditionWizard>();
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, _, _, _)).WillOnce(Return());
-    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, _)).WillRepeatedly(Return());
+    EXPECT_CALL(*pullerManager, RegisterReceiver(tagId, kConfigKey, _, _, _)).WillOnce(Return());
+    EXPECT_CALL(*pullerManager, UnRegisterReceiver(tagId, kConfigKey, _)).WillRepeatedly(Return());
 
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Initial pull.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateThreeValueLogEvent(tagId, bucketStartTimeNs, tagId, 1, 1));
                 return true;
             }))
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(
                         CreateThreeValueLogEvent(tagId, bucketStartTimeNs + 10, tagId, 3, 3));
@@ -2974,6 +2823,7 @@
     ValueMetricProducer valueProducer(kConfigKey, metric, -1, wizard, logEventMatcherIndex,
                                       eventMatcherWizard, tagId, bucketStartTimeNs,
                                       bucketStartTimeNs, pullerManager);
+    valueProducer.prepareFirstBucket();
 
     ProtoOutputStream output;
     std::set<string> strSet;
@@ -3007,15 +2857,17 @@
     metric.set_use_diff(false);
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // condition becomes true
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 30, 10));
                 return true;
             }))
             // condition becomes false
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 50, 20));
                 return true;
@@ -3052,9 +2904,10 @@
     metric.set_use_diff(false);
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // condition becomes true
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 30, 10));
                 return true;
@@ -3101,9 +2954,10 @@
     metric.set_use_diff(false);
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // condition becomes true
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 30, 10));
                 return true;
@@ -3139,9 +2993,10 @@
     ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Condition change to true.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 20, 10));
                 return true;
@@ -3183,9 +3038,10 @@
     ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Condition change to true.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 50, 10));
                 return true;
@@ -3235,15 +3091,17 @@
     ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Condition change to true.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 50, 10));
                 return true;
             }))
             // Dump report requested.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucket2StartTimeNs + 100, 15));
                 return true;
@@ -3296,15 +3154,17 @@
     ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Condition change to true.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 50, 10));
                 return true;
             }))
             // Dump report requested.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 100, 15));
                 return true;
@@ -3348,9 +3208,10 @@
     ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
 
     sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-    EXPECT_CALL(*pullerManager, Pull(tagId, _))
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
             // Condition change to true.
-            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
                 data->clear();
                 data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 50, 10));
                 return true;
@@ -3387,1025 +3248,925 @@
     EXPECT_EQ(NanoToMillis(dumpReportTimeNs), dropEvent.drop_time_millis());
 }
 
-///*
-// * Test that MULTIPLE_BUCKETS_SKIPPED dump reason is logged when a log event
-// * skips over more than one bucket.
-// */
-// TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenMultipleBucketsSkipped) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // Condition change to true.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//                event->write("field1");
-//                event->write(10);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Dump report requested.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event =
-//                        make_shared<LogEvent>(tagId, bucket4StartTimeNs + 1000);
-//                event->write("field1");
-//                event->write(15);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//
-//    // Condition change event.
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 10);
-//
-//    // Condition change event that skips forward by three buckets.
-//    valueProducer->onConditionChanged(false, bucket4StartTimeNs + 10);
-//
-//    // Check dump report.
-//    ProtoOutputStream output;
-//    std::set<string> strSet;
-//    valueProducer->onDumpReport(bucket4StartTimeNs + 1000, true /* include recent buckets */,
-//    true,
-//                                NO_TIME_CONSTRAINTS /* dumpLatency */, &strSet, &output);
-//
-//    StatsLogReport report = outputStreamToProto(&output);
-//    EXPECT_TRUE(report.has_value_metrics());
-//    EXPECT_EQ(0, report.value_metrics().data_size());
-//    EXPECT_EQ(1, report.value_metrics().skipped_size());
-//
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
-//              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
-//    EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
-//              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
-//    EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
-//
-//    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
-//    EXPECT_EQ(BucketDropReason::MULTIPLE_BUCKETS_SKIPPED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucket4StartTimeNs + 10), dropEvent.drop_time_millis());
-//}
-//
-///*
-// * Test that BUCKET_TOO_SMALL dump reason is logged when a flushed bucket size
-// * is smaller than the "min_bucket_size_nanos" specified in the metric config.
-// */
-// TEST(ValueMetricProducerTest_BucketDrop, TestBucketDropWhenBucketTooSmall) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//    metric.set_min_bucket_size_nanos(10000000000);  // 10 seconds
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // Condition change to true.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//                event->write("field1");
-//                event->write(10);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Dump report requested.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event =
-//                        make_shared<LogEvent>(tagId, bucketStartTimeNs + 9000000);
-//                event->write("field1");
-//                event->write(15);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager,
-//            metric);
-//
-//    // Condition change event.
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 10);
-//
-//    // Check dump report.
-//    ProtoOutputStream output;
-//    std::set<string> strSet;
-//    int64_t dumpReportTimeNs = bucketStartTimeNs + 9000000;
-//    valueProducer->onDumpReport(dumpReportTimeNs, true /* include recent buckets */, true,
-//                                NO_TIME_CONSTRAINTS /* dumpLatency */, &strSet, &output);
-//
-//    StatsLogReport report = outputStreamToProto(&output);
-//    EXPECT_TRUE(report.has_value_metrics());
-//    EXPECT_EQ(0, report.value_metrics().data_size());
-//    EXPECT_EQ(1, report.value_metrics().skipped_size());
-//
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
-//              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
-//    EXPECT_EQ(NanoToMillis(dumpReportTimeNs),
-//              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
-//    EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
-//
-//    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
-//    EXPECT_EQ(BucketDropReason::BUCKET_TOO_SMALL, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(dumpReportTimeNs), dropEvent.drop_time_millis());
-//}
-//
-///*
-// * Test multiple bucket drop events in the same bucket.
-// */
-// TEST(ValueMetricProducerTest_BucketDrop, TestMultipleBucketDropEvents) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // Condition change to true.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//                event->write("field1");
-//                event->write(10);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithNoInitialCondition(pullerManager,
-//                                                                                     metric);
-//
-//    // Condition change event.
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 10);
-//
-//    // Check dump report.
-//    ProtoOutputStream output;
-//    std::set<string> strSet;
-//    int64_t dumpReportTimeNs = bucketStartTimeNs + 1000;
-//    valueProducer->onDumpReport(dumpReportTimeNs, true /* include recent buckets */, true,
-//                                FAST /* dumpLatency */, &strSet, &output);
-//
-//    StatsLogReport report = outputStreamToProto(&output);
-//    EXPECT_TRUE(report.has_value_metrics());
-//    EXPECT_EQ(0, report.value_metrics().data_size());
-//    EXPECT_EQ(1, report.value_metrics().skipped_size());
-//
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
-//              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
-//    EXPECT_EQ(NanoToMillis(dumpReportTimeNs),
-//              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
-//    EXPECT_EQ(2, report.value_metrics().skipped(0).drop_event_size());
-//
-//    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
-//    EXPECT_EQ(BucketDropReason::CONDITION_UNKNOWN, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 10), dropEvent.drop_time_millis());
-//
-//    dropEvent = report.value_metrics().skipped(0).drop_event(1);
-//    EXPECT_EQ(BucketDropReason::DUMP_REPORT_REQUESTED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(dumpReportTimeNs), dropEvent.drop_time_millis());
-//}
-//
-///*
-// * Test that the number of logged bucket drop events is capped at the maximum.
-// * The maximum is currently 10 and is set in MetricProducer::maxDropEventsReached().
-// */
-// TEST(ValueMetricProducerTest_BucketDrop, TestMaxBucketDropEvents) {
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // First condition change event.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                for (int i = 0; i < 2000; i++) {
-//                    shared_ptr<LogEvent> event =
-//                            make_shared<LogEvent>(tagId, bucketStartTimeNs + 1);
-//                    event->write(i);
-//                    event->write(i);
-//                    event->init();
-//                    data->push_back(event);
-//                }
-//                return true;
-//            }))
-//            .WillOnce(Return(false))
-//            .WillOnce(Return(false))
-//            .WillOnce(Return(false))
-//            .WillOnce(Return(false))
-//            .WillOnce(Return(false))
-//            .WillOnce(Return(false))
-//            .WillOnce(Return(false))
-//            .WillOnce(Return(false))
-//            .WillOnce(Return(false))
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs +
-//                220); event->write("field1"); event->write(10); event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithNoInitialCondition(pullerManager,
-//                                                                                     metric);
-//
-//    // First condition change event causes guardrail to be reached.
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 10);
-//
-//    // 2-10 condition change events result in failed pulls.
-//    valueProducer->onConditionChanged(false, bucketStartTimeNs + 30);
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 50);
-//    valueProducer->onConditionChanged(false, bucketStartTimeNs + 70);
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 90);
-//    valueProducer->onConditionChanged(false, bucketStartTimeNs + 100);
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 150);
-//    valueProducer->onConditionChanged(false, bucketStartTimeNs + 170);
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 190);
-//    valueProducer->onConditionChanged(false, bucketStartTimeNs + 200);
-//
-//    // Condition change event 11
-//    valueProducer->onConditionChanged(true, bucketStartTimeNs + 220);
-//
-//    // Check dump report.
-//    ProtoOutputStream output;
-//    std::set<string> strSet;
-//    int64_t dumpReportTimeNs = bucketStartTimeNs + 1000;
-//    // Because we already have 10 dump events in the current bucket,
-//    // this case should not be added to the list of dump events.
-//    valueProducer->onDumpReport(bucketStartTimeNs + 1000, true /* include recent buckets */, true,
-//                                FAST /* dumpLatency */, &strSet, &output);
-//
-//    StatsLogReport report = outputStreamToProto(&output);
-//    EXPECT_TRUE(report.has_value_metrics());
-//    EXPECT_EQ(0, report.value_metrics().data_size());
-//    EXPECT_EQ(1, report.value_metrics().skipped_size());
-//
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
-//              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
-//    EXPECT_EQ(NanoToMillis(dumpReportTimeNs),
-//              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
-//    EXPECT_EQ(10, report.value_metrics().skipped(0).drop_event_size());
-//
-//    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
-//    EXPECT_EQ(BucketDropReason::CONDITION_UNKNOWN, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 10), dropEvent.drop_time_millis());
-//
-//    dropEvent = report.value_metrics().skipped(0).drop_event(1);
-//    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 30), dropEvent.drop_time_millis());
-//
-//    dropEvent = report.value_metrics().skipped(0).drop_event(2);
-//    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 50), dropEvent.drop_time_millis());
-//
-//    dropEvent = report.value_metrics().skipped(0).drop_event(3);
-//    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 70), dropEvent.drop_time_millis());
-//
-//    dropEvent = report.value_metrics().skipped(0).drop_event(4);
-//    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 90), dropEvent.drop_time_millis());
-//
-//    dropEvent = report.value_metrics().skipped(0).drop_event(5);
-//    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 100), dropEvent.drop_time_millis());
-//
-//    dropEvent = report.value_metrics().skipped(0).drop_event(6);
-//    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 150), dropEvent.drop_time_millis());
-//
-//    dropEvent = report.value_metrics().skipped(0).drop_event(7);
-//    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 170), dropEvent.drop_time_millis());
-//
-//    dropEvent = report.value_metrics().skipped(0).drop_event(8);
-//    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 190), dropEvent.drop_time_millis());
-//
-//    dropEvent = report.value_metrics().skipped(0).drop_event(9);
-//    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
-//    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 200), dropEvent.drop_time_millis());
-//}
-//
-///*
-// * Test metric with a simple sliced state
-// * - Increasing values
-// * - Using diff
-// * - Second field is value field
-// */
-// TEST(ValueMetricProducerTest, TestSlicedState) {
-//    // Set up ValueMetricProducer.
-//    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithState("SCREEN_STATE");
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // ValueMetricProducer initialized.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs);
-//                event->write("field1");
-//                event->write(3);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Screen state change to ON.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 5);
-//                event->write("field1");
-//                event->write(5);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Screen state change to OFF.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//                event->write("field1");
-//                event->write(9);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Screen state change to ON.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 15);
-//                event->write("field1");
-//                event->write(21);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Dump report requested.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 50);
-//                event->write("field1");
-//                event->write(30);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithState(
-//                    pullerManager, metric, {util::SCREEN_STATE_CHANGED}, {});
-//
-//    // Set up StateManager and check that StateTrackers are initialized.
-//    StateManager::getInstance().clear();
-//    StateManager::getInstance().registerListener(SCREEN_STATE_ATOM_ID, valueProducer);
-//    EXPECT_EQ(1, StateManager::getInstance().getStateTrackersCount());
-//    EXPECT_EQ(1, StateManager::getInstance().getListenersCount(SCREEN_STATE_ATOM_ID));
-//
-//    // Bucket status after metric initialized.
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    // Base for dimension key {}
-//    auto it = valueProducer->mCurrentSlicedBucket.begin();
-//    auto itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(3, itBase->second[0].base.long_value);
-//    // Value for dimension, state key {{}, kStateUnknown}
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//
-//    // Bucket status after screen state change kStateUnknown->ON.
-//    auto screenEvent = CreateScreenStateChangedEvent(
-//            android::view::DisplayStateEnum::DISPLAY_STATE_ON, bucketStartTimeNs + 5);
-//    StateManager::getInstance().onLogEvent(*screenEvent);
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    // Base for dimension key {}
-//    it = valueProducer->mCurrentSlicedBucket.begin();
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(5, itBase->second[0].base.long_value);
-//    // Value for dimension, state key {{}, kStateUnknown}
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(2, it->second[0].value.long_value);
-//
-//    // Bucket status after screen state change ON->OFF.
-//    screenEvent =
-//    CreateScreenStateChangedEvent(android::view::DisplayStateEnum::DISPLAY_STATE_OFF,
-//                                                bucketStartTimeNs + 10);
-//    StateManager::getInstance().onLogEvent(*screenEvent);
-//    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
-//    // Base for dimension key {}
-//    it = valueProducer->mCurrentSlicedBucket.begin();
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(9, itBase->second[0].base.long_value);
-//    // Value for dimension, state key {{}, ON}
-//    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
-//              it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(4, it->second[0].value.long_value);
-//    // Value for dimension, state key {{}, kStateUnknown}
-//    it++;
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(2, it->second[0].value.long_value);
-//
-//    // Bucket status after screen state change OFF->ON.
-//    screenEvent = CreateScreenStateChangedEvent(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
-//                                                bucketStartTimeNs + 15);
-//    StateManager::getInstance().onLogEvent(*screenEvent);
-//    EXPECT_EQ(3UL, valueProducer->mCurrentSlicedBucket.size());
-//    // Base for dimension key {}
-//    it = valueProducer->mCurrentSlicedBucket.begin();
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(21, itBase->second[0].base.long_value);
-//    // Value for dimension, state key {{}, OFF}
-//    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_OFF,
-//              it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(12, it->second[0].value.long_value);
-//    // Value for dimension, state key {{}, ON}
-//    it++;
-//    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
-//              it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(4, it->second[0].value.long_value);
-//    // Value for dimension, state key {{}, kStateUnknown}
-//    it++;
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(2, it->second[0].value.long_value);
-//
-//    // Start dump report and check output.
-//    ProtoOutputStream output;
-//    std::set<string> strSet;
-//    valueProducer->onDumpReport(bucketStartTimeNs + 50, true /* include recent buckets */, true,
-//                                NO_TIME_CONSTRAINTS, &strSet, &output);
-//
-//    StatsLogReport report = outputStreamToProto(&output);
-//    EXPECT_TRUE(report.has_value_metrics());
-//    EXPECT_EQ(3, report.value_metrics().data_size());
-//
-//    auto data = report.value_metrics().data(0);
-//    EXPECT_EQ(1, data.bucket_info_size());
-//    EXPECT_EQ(2, report.value_metrics().data(0).bucket_info(0).values(0).value_long());
-//
-//    data = report.value_metrics().data(1);
-//    EXPECT_EQ(1, report.value_metrics().data(1).bucket_info_size());
-//    EXPECT_EQ(13, report.value_metrics().data(1).bucket_info(0).values(0).value_long());
-//    EXPECT_EQ(SCREEN_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
-//    EXPECT_TRUE(data.slice_by_state(0).has_value());
-//    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON, data.slice_by_state(0).value());
-//
-//    data = report.value_metrics().data(2);
-//    EXPECT_EQ(1, report.value_metrics().data(2).bucket_info_size());
-//    EXPECT_EQ(12, report.value_metrics().data(2).bucket_info(0).values(0).value_long());
-//    EXPECT_EQ(SCREEN_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
-//    EXPECT_TRUE(data.slice_by_state(0).has_value());
-//    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_OFF, data.slice_by_state(0).value());
-//}
-//
-///*
-// * Test metric with sliced state with map
-// * - Increasing values
-// * - Using diff
-// * - Second field is value field
-// */
-// TEST(ValueMetricProducerTest, TestSlicedStateWithMap) {
-//    // Set up ValueMetricProducer.
-//    ValueMetric metric =
-//    ValueMetricProducerTestHelper::createMetricWithState("SCREEN_STATE_ONOFF");
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // ValueMetricProducer initialized.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs);
-//                event->write("field1");
-//                event->write(3);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Screen state change to ON.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 5);
-//                event->write("field1");
-//                event->write(5);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Screen state change to VR.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 10);
-//                event->write("field1");
-//                event->write(9);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Screen state change to OFF.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 15);
-//                event->write("field1");
-//                event->write(21);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Dump report requested.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 50);
-//                event->write("field1");
-//                event->write(30);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    const StateMap& stateMap = CreateScreenStateOnOffMap();
-//    const StateMap_StateGroup screenOnGroup = stateMap.group(0);
-//    const StateMap_StateGroup screenOffGroup = stateMap.group(1);
-//
-//    unordered_map<int, unordered_map<int, int64_t>> stateGroupMap;
-//    for (auto group : stateMap.group()) {
-//        for (auto value : group.value()) {
-//            stateGroupMap[SCREEN_STATE_ATOM_ID][value] = group.group_id();
-//        }
-//    }
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithState(
-//                    pullerManager, metric, {util::SCREEN_STATE_CHANGED}, stateGroupMap);
-//
-//    // Set up StateManager and check that StateTrackers are initialized.
-//    StateManager::getInstance().clear();
-//    StateManager::getInstance().registerListener(SCREEN_STATE_ATOM_ID, valueProducer);
-//    EXPECT_EQ(1, StateManager::getInstance().getStateTrackersCount());
-//    EXPECT_EQ(1, StateManager::getInstance().getListenersCount(SCREEN_STATE_ATOM_ID));
-//
-//    // Bucket status after metric initialized.
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    // Base for dimension key {}
-//    auto it = valueProducer->mCurrentSlicedBucket.begin();
-//    auto itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(3, itBase->second[0].base.long_value);
-//    // Value for dimension, state key {{}, {}}
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//
-//    // Bucket status after screen state change kStateUnknown->ON.
-//    auto screenEvent = CreateScreenStateChangedEvent(
-//            android::view::DisplayStateEnum::DISPLAY_STATE_ON, bucketStartTimeNs + 5);
-//    StateManager::getInstance().onLogEvent(*screenEvent);
-//    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
-//    // Base for dimension key {}
-//    it = valueProducer->mCurrentSlicedBucket.begin();
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(5, itBase->second[0].base.long_value);
-//    // Value for dimension, state key {{}, kStateUnknown}
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(2, it->second[0].value.long_value);
-//
-//    // Bucket status after screen state change ON->VR (also ON).
-//    screenEvent = CreateScreenStateChangedEvent(android::view::DisplayStateEnum::DISPLAY_STATE_VR,
-//                                                bucketStartTimeNs + 10);
-//    StateManager::getInstance().onLogEvent(*screenEvent);
-//    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
-//    // Base for dimension key {}
-//    it = valueProducer->mCurrentSlicedBucket.begin();
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(9, itBase->second[0].base.long_value);
-//    // Value for dimension, state key {{}, ON GROUP}
-//    EXPECT_EQ(screenOnGroup.group_id(),
-//              it->first.getStateValuesKey().getValues()[0].mValue.long_value);
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(4, it->second[0].value.long_value);
-//    // Value for dimension, state key {{}, kStateUnknown}
-//    it++;
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(2, it->second[0].value.long_value);
-//
-//    // Bucket status after screen state change VR->OFF.
-//    screenEvent =
-//    CreateScreenStateChangedEvent(android::view::DisplayStateEnum::DISPLAY_STATE_OFF,
-//                                                bucketStartTimeNs + 15);
-//    StateManager::getInstance().onLogEvent(*screenEvent);
-//    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
-//    // Base for dimension key {}
-//    it = valueProducer->mCurrentSlicedBucket.begin();
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(21, itBase->second[0].base.long_value);
-//    // Value for dimension, state key {{}, ON GROUP}
-//    EXPECT_EQ(screenOnGroup.group_id(),
-//              it->first.getStateValuesKey().getValues()[0].mValue.long_value);
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(16, it->second[0].value.long_value);
-//    // Value for dimension, state key {{}, kStateUnknown}
-//    it++;
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(2, it->second[0].value.long_value);
-//
-//    // Start dump report and check output.
-//    ProtoOutputStream output;
-//    std::set<string> strSet;
-//    valueProducer->onDumpReport(bucketStartTimeNs + 50, true /* include recent buckets */, true,
-//                                NO_TIME_CONSTRAINTS, &strSet, &output);
-//
-//    StatsLogReport report = outputStreamToProto(&output);
-//    EXPECT_TRUE(report.has_value_metrics());
-//    EXPECT_EQ(3, report.value_metrics().data_size());
-//
-//    auto data = report.value_metrics().data(0);
-//    EXPECT_EQ(1, data.bucket_info_size());
-//    EXPECT_EQ(2, report.value_metrics().data(0).bucket_info(0).values(0).value_long());
-//
-//    data = report.value_metrics().data(1);
-//    EXPECT_EQ(1, report.value_metrics().data(1).bucket_info_size());
-//    EXPECT_EQ(16, report.value_metrics().data(1).bucket_info(0).values(0).value_long());
-//    EXPECT_EQ(SCREEN_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
-//    EXPECT_TRUE(data.slice_by_state(0).has_group_id());
-//    EXPECT_EQ(screenOnGroup.group_id(), data.slice_by_state(0).group_id());
-//
-//    data = report.value_metrics().data(2);
-//    EXPECT_EQ(1, report.value_metrics().data(2).bucket_info_size());
-//    EXPECT_EQ(9, report.value_metrics().data(2).bucket_info(0).values(0).value_long());
-//    EXPECT_EQ(SCREEN_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
-//    EXPECT_TRUE(data.slice_by_state(0).has_group_id());
-//    EXPECT_EQ(screenOffGroup.group_id(), data.slice_by_state(0).group_id());
-//}
-//
-///*
-// * Test metric that slices by state with a primary field and has dimensions
-// * - Increasing values
-// * - Using diff
-// * - Second field is value field
-// */
-// TEST(ValueMetricProducerTest, TestSlicedStateWithPrimaryField_WithDimensions) {
-//    // Set up ValueMetricProducer.
-//    ValueMetric metric =
-//    ValueMetricProducerTestHelper::createMetricWithState("UID_PROCESS_STATE");
-//    metric.mutable_dimensions_in_what()->set_field(tagId);
-//    metric.mutable_dimensions_in_what()->add_child()->set_field(1);
-//
-//    MetricStateLink* stateLink = metric.add_state_link();
-//    stateLink->set_state_atom_id(UID_PROCESS_STATE_ATOM_ID);
-//    auto fieldsInWhat = stateLink->mutable_fields_in_what();
-//    *fieldsInWhat = CreateDimensions(tagId, {1 /* uid */});
-//    auto fieldsInState = stateLink->mutable_fields_in_state();
-//    *fieldsInState = CreateDimensions(UID_PROCESS_STATE_ATOM_ID, {1 /* uid */});
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(tagId, _))
-//            // ValueMetricProducer initialized.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs);
-//                event->write(2 /* uid */);
-//                event->write(7);
-//                event->init();
-//                data->push_back(event);
-//
-//                event = make_shared<LogEvent>(tagId, bucketStartTimeNs);
-//                event->write(1 /* uid */);
-//                event->write(3);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Uid 1 process state change from kStateUnknown -> Foreground
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 20);
-//                event->write(1 /* uid */);
-//                event->write(6);
-//                event->init();
-//                data->push_back(event);
-//
-//                // This event should be skipped.
-//                event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 20);
-//                event->write(2 /* uid */);
-//                event->write(8);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Uid 2 process state change from kStateUnknown -> Background
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 40);
-//                event->write(2 /* uid */);
-//                event->write(9);
-//                event->init();
-//                data->push_back(event);
-//
-//                // This event should be skipped.
-//                event = make_shared<LogEvent>(tagId, bucketStartTimeNs + 40);
-//                event->write(1 /* uid */);
-//                event->write(12);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Uid 1 process state change from Foreground -> Background
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs +
-//                20); event->write(1 /* uid */); event->write(13); event->init();
-//                data->push_back(event);
-//
-//                // This event should be skipped.
-//                event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 20);
-//                event->write(2 /* uid */);
-//                event->write(11);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Uid 1 process state change from Background -> Foreground
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs +
-//                40); event->write(1 /* uid */); event->write(17); event->init();
-//                data->push_back(event);
-//
-//                // This event should be skipped.
-//                event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 40);
-//                event->write(2 /* uid */);
-//                event->write(15);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }))
-//            // Dump report pull.
-//            .WillOnce(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs +
-//                50); event->write(2 /* uid */); event->write(20); event->init();
-//                data->push_back(event);
-//
-//                event = make_shared<LogEvent>(tagId, bucket2StartTimeNs + 50);
-//                event->write(1 /* uid */);
-//                event->write(21);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    sp<ValueMetricProducer> valueProducer =
-//            ValueMetricProducerTestHelper::createValueProducerWithState(
-//                    pullerManager, metric, {UID_PROCESS_STATE_ATOM_ID}, {});
-//
-//    // Set up StateManager and check that StateTrackers are initialized.
-//    StateManager::getInstance().clear();
-//    StateManager::getInstance().registerListener(UID_PROCESS_STATE_ATOM_ID, valueProducer);
-//    EXPECT_EQ(1, StateManager::getInstance().getStateTrackersCount());
-//    EXPECT_EQ(1, StateManager::getInstance().getListenersCount(UID_PROCESS_STATE_ATOM_ID));
-//
-//    // Bucket status after metric initialized.
-//    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
-//    // Base for dimension key {uid 1}.
-//    auto it = valueProducer->mCurrentSlicedBucket.begin();
-//    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    auto itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(3, itBase->second[0].base.long_value);
-//    // Value for dimension, state key {{uid 1}, kStateUnknown}
-//    // TODO(tsaichristine): test equality of state values key
-//    // EXPECT_EQ(-1, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//    // Base for dimension key {uid 2}
-//    it++;
-//    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(7, itBase->second[0].base.long_value);
-//    // Value for dimension, state key {{uid 2}, kStateUnknown}
-//    // EXPECT_EQ(-1, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//
-//    // Bucket status after uid 1 process state change kStateUnknown -> Foreground.
-//    auto uidProcessEvent = CreateUidProcessStateChangedEvent(
-//            1 /* uid */, android::app::PROCESS_STATE_IMPORTANT_FOREGROUND, bucketStartTimeNs +
-//            20);
-//    StateManager::getInstance().onLogEvent(*uidProcessEvent);
-//    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
-//    // Base for dimension key {uid 1}.
-//    it = valueProducer->mCurrentSlicedBucket.begin();
-//    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(6, itBase->second[0].base.long_value);
-//    // Value for key {uid 1, kStateUnknown}.
-//    // EXPECT_EQ(-1, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(3, it->second[0].value.long_value);
-//
-//    // Base for dimension key {uid 2}
-//    it++;
-//    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(7, itBase->second[0].base.long_value);
-//    // Value for key {uid 2, kStateUnknown}
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//
-//    // Bucket status after uid 2 process state change kStateUnknown -> Background.
-//    uidProcessEvent = CreateUidProcessStateChangedEvent(
-//            2 /* uid */, android::app::PROCESS_STATE_IMPORTANT_BACKGROUND, bucketStartTimeNs +
-//            40);
-//    StateManager::getInstance().onLogEvent(*uidProcessEvent);
-//    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
-//    // Base for dimension key {uid 1}.
-//    it = valueProducer->mCurrentSlicedBucket.begin();
-//    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(6, itBase->second[0].base.long_value);
-//    // Value for key {uid 1, kStateUnknown}.
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(3, it->second[0].value.long_value);
-//
-//    // Base for dimension key {uid 2}
-//    it++;
-//    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(9, itBase->second[0].base.long_value);
-//    // Value for key {uid 2, kStateUnknown}
-//    // EXPECT_EQ(-1, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(2, it->second[0].value.long_value);
-//
-//    // Pull at end of first bucket.
-//    vector<shared_ptr<LogEvent>> allData;
-//    shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, bucket2StartTimeNs);
-//    event->write(1 /* uid */);
-//    event->write(10);
-//    event->init();
-//    allData.push_back(event);
-//
-//    event = make_shared<LogEvent>(tagId, bucket2StartTimeNs);
-//    event->write(2 /* uid */);
-//    event->write(15);
-//    event->init();
-//    allData.push_back(event);
-//
-//    valueProducer->onDataPulled(allData, /** succeeds */ true, bucket2StartTimeNs + 1);
-//
-//    // Buckets flushed after end of first bucket.
-//    // None of the buckets should have a value.
-//    EXPECT_EQ(4UL, valueProducer->mCurrentSlicedBucket.size());
-//    EXPECT_EQ(4UL, valueProducer->mPastBuckets.size());
-//    EXPECT_EQ(2UL, valueProducer->mCurrentBaseInfo.size());
-//    // Base for dimension key {uid 2}.
-//    it = valueProducer->mCurrentSlicedBucket.begin();
-//    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(15, itBase->second[0].base.long_value);
-//    // Value for key {uid 2, BACKGROUND}.
-//    EXPECT_EQ(1, it->first.getStateValuesKey().getValues().size());
-//    EXPECT_EQ(1006, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//
-//    // Base for dimension key {uid 1}
-//    it++;
-//    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(10, itBase->second[0].base.long_value);
-//    // Value for key {uid 1, kStateUnknown}
-//    EXPECT_EQ(0, it->first.getStateValuesKey().getValues().size());
-//    // EXPECT_EQ(-1, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//
-//    // Value for key {uid 1, FOREGROUND}
-//    it++;
-//    EXPECT_EQ(1, it->first.getStateValuesKey().getValues().size());
-//    EXPECT_EQ(1005, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//
-//    // Value for key {uid 2, kStateUnknown}
-//    it++;
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//
-//    // Bucket status after uid 1 process state change from Foreground -> Background.
-//    uidProcessEvent = CreateUidProcessStateChangedEvent(
-//            1 /* uid */, android::app::PROCESS_STATE_IMPORTANT_BACKGROUND, bucket2StartTimeNs +
-//            20);
-//    StateManager::getInstance().onLogEvent(*uidProcessEvent);
-//
-//    EXPECT_EQ(4UL, valueProducer->mCurrentSlicedBucket.size());
-//    EXPECT_EQ(4UL, valueProducer->mPastBuckets.size());
-//    EXPECT_EQ(2UL, valueProducer->mCurrentBaseInfo.size());
-//    // Base for dimension key {uid 2}.
-//    it = valueProducer->mCurrentSlicedBucket.begin();
-//    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(15, itBase->second[0].base.long_value);
-//    // Value for key {uid 2, BACKGROUND}.
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//    // Base for dimension key {uid 1}
-//    it++;
-//    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(13, itBase->second[0].base.long_value);
-//    // Value for key {uid 1, kStateUnknown}
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//    // Value for key {uid 1, FOREGROUND}
-//    it++;
-//    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(1005, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(3, it->second[0].value.long_value);
-//    // Value for key {uid 2, kStateUnknown}
-//    it++;
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//
-//    // Bucket status after uid 1 process state change Background->Foreground.
-//    uidProcessEvent = CreateUidProcessStateChangedEvent(
-//            1 /* uid */, android::app::PROCESS_STATE_IMPORTANT_FOREGROUND, bucket2StartTimeNs +
-//            40);
-//    StateManager::getInstance().onLogEvent(*uidProcessEvent);
-//
-//    EXPECT_EQ(5UL, valueProducer->mCurrentSlicedBucket.size());
-//    EXPECT_EQ(2UL, valueProducer->mCurrentBaseInfo.size());
-//    // Base for dimension key {uid 2}
-//    it = valueProducer->mCurrentSlicedBucket.begin();
-//    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(true, itBase->second[0].hasBase);
-//    EXPECT_EQ(15, itBase->second[0].base.long_value);
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//
-//    it++;
-//    EXPECT_EQ(false, it->second[0].hasValue);
-//
-//    // Base for dimension key {uid 1}
-//    it++;
-//    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
-//    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
-//    EXPECT_EQ(17, itBase->second[0].base.long_value);
-//    // Value for key {uid 1, BACKGROUND}
-//    EXPECT_EQ(1006, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(4, it->second[0].value.long_value);
-//    // Value for key {uid 1, FOREGROUND}
-//    it++;
-//    EXPECT_EQ(1005, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
-//    EXPECT_EQ(true, it->second[0].hasValue);
-//    EXPECT_EQ(3, it->second[0].value.long_value);
-//
-//    // Start dump report and check output.
-//    ProtoOutputStream output;
-//    std::set<string> strSet;
-//    valueProducer->onDumpReport(bucket2StartTimeNs + 50, true /* include recent buckets */, true,
-//                                NO_TIME_CONSTRAINTS, &strSet, &output);
-//
-//    StatsLogReport report = outputStreamToProto(&output);
-//    EXPECT_TRUE(report.has_value_metrics());
-//    EXPECT_EQ(5, report.value_metrics().data_size());
-//
-//    auto data = report.value_metrics().data(0);
-//    EXPECT_EQ(1, data.bucket_info_size());
-//    EXPECT_EQ(4, report.value_metrics().data(0).bucket_info(0).values(0).value_long());
-//    EXPECT_EQ(UID_PROCESS_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
-//    EXPECT_TRUE(data.slice_by_state(0).has_value());
-//    EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_IMPORTANT_BACKGROUND,
-//              data.slice_by_state(0).value());
-//
-//    data = report.value_metrics().data(1);
-//    EXPECT_EQ(1, report.value_metrics().data(1).bucket_info_size());
-//    EXPECT_EQ(2, report.value_metrics().data(1).bucket_info(0).values(0).value_long());
-//
-//    data = report.value_metrics().data(2);
-//    EXPECT_EQ(UID_PROCESS_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
-//    EXPECT_TRUE(data.slice_by_state(0).has_value());
-//    EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_IMPORTANT_FOREGROUND,
-//              data.slice_by_state(0).value());
-//    EXPECT_EQ(2, report.value_metrics().data(2).bucket_info_size());
-//    EXPECT_EQ(4, report.value_metrics().data(2).bucket_info(0).values(0).value_long());
-//    EXPECT_EQ(7, report.value_metrics().data(2).bucket_info(1).values(0).value_long());
-//
-//    data = report.value_metrics().data(3);
-//    EXPECT_EQ(1, report.value_metrics().data(3).bucket_info_size());
-//    EXPECT_EQ(3, report.value_metrics().data(3).bucket_info(0).values(0).value_long());
-//
-//    data = report.value_metrics().data(4);
-//    EXPECT_EQ(UID_PROCESS_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
-//    EXPECT_TRUE(data.slice_by_state(0).has_value());
-//    EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_IMPORTANT_BACKGROUND,
-//              data.slice_by_state(0).value());
-//    EXPECT_EQ(2, report.value_metrics().data(4).bucket_info_size());
-//    EXPECT_EQ(6, report.value_metrics().data(4).bucket_info(0).values(0).value_long());
-//    EXPECT_EQ(5, report.value_metrics().data(4).bucket_info(1).values(0).value_long());
-//}
+/*
+ * Test that MULTIPLE_BUCKETS_SKIPPED dump reason is logged when a log event
+ * skips over more than one bucket.
+ */
+TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenMultipleBucketsSkipped) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // Condition change to true.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 10, 10));
+                return true;
+            }))
+            // Dump report requested.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucket4StartTimeNs + 1000, 15));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+
+    // Condition change event.
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 10);
+
+    // Condition change event that skips forward by three buckets.
+    valueProducer->onConditionChanged(false, bucket4StartTimeNs + 10);
+
+    // Check dump report.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    valueProducer->onDumpReport(bucket4StartTimeNs + 1000, true /* include recent buckets */, true,
+                                NO_TIME_CONSTRAINTS /* dumpLatency */, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_value_metrics());
+    EXPECT_EQ(0, report.value_metrics().data_size());
+    EXPECT_EQ(1, report.value_metrics().skipped_size());
+
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
+              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
+    EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
+              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
+    EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
+
+    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
+    EXPECT_EQ(BucketDropReason::MULTIPLE_BUCKETS_SKIPPED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucket4StartTimeNs + 10), dropEvent.drop_time_millis());
+}
+
+/*
+ * Test that BUCKET_TOO_SMALL dump reason is logged when a flushed bucket size
+ * is smaller than the "min_bucket_size_nanos" specified in the metric config.
+ */
+TEST(ValueMetricProducerTest_BucketDrop, TestBucketDropWhenBucketTooSmall) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+    metric.set_min_bucket_size_nanos(10000000000);  // 10 seconds
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // Condition change to true.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 10, 10));
+                return true;
+            }))
+            // Dump report requested.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(
+                        CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 9000000, 15));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithCondition(pullerManager, metric);
+
+    // Condition change event.
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 10);
+
+    // Check dump report.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    int64_t dumpReportTimeNs = bucketStartTimeNs + 9000000;
+    valueProducer->onDumpReport(dumpReportTimeNs, true /* include recent buckets */, true,
+                                NO_TIME_CONSTRAINTS /* dumpLatency */, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_value_metrics());
+    EXPECT_EQ(0, report.value_metrics().data_size());
+    EXPECT_EQ(1, report.value_metrics().skipped_size());
+
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
+              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
+    EXPECT_EQ(NanoToMillis(dumpReportTimeNs),
+              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
+    EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
+
+    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
+    EXPECT_EQ(BucketDropReason::BUCKET_TOO_SMALL, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(dumpReportTimeNs), dropEvent.drop_time_millis());
+}
+
+/*
+ * Test multiple bucket drop events in the same bucket.
+ */
+TEST(ValueMetricProducerTest_BucketDrop, TestMultipleBucketDropEvents) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // Condition change to true.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 10, 10));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithNoInitialCondition(pullerManager,
+                                                                                     metric);
+
+    // Condition change event.
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 10);
+
+    // Check dump report.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    int64_t dumpReportTimeNs = bucketStartTimeNs + 1000;
+    valueProducer->onDumpReport(dumpReportTimeNs, true /* include recent buckets */, true,
+                                FAST /* dumpLatency */, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_value_metrics());
+    EXPECT_EQ(0, report.value_metrics().data_size());
+    EXPECT_EQ(1, report.value_metrics().skipped_size());
+
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
+              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
+    EXPECT_EQ(NanoToMillis(dumpReportTimeNs),
+              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
+    EXPECT_EQ(2, report.value_metrics().skipped(0).drop_event_size());
+
+    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
+    EXPECT_EQ(BucketDropReason::CONDITION_UNKNOWN, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 10), dropEvent.drop_time_millis());
+
+    dropEvent = report.value_metrics().skipped(0).drop_event(1);
+    EXPECT_EQ(BucketDropReason::DUMP_REPORT_REQUESTED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(dumpReportTimeNs), dropEvent.drop_time_millis());
+}
+
+/*
+ * Test that the number of logged bucket drop events is capped at the maximum.
+ * The maximum is currently 10 and is set in MetricProducer::maxDropEventsReached().
+ */
+TEST(ValueMetricProducerTest_BucketDrop, TestMaxBucketDropEvents) {
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithCondition();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // First condition change event.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                for (int i = 0; i < 2000; i++) {
+                    data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 1, i));
+                }
+                return true;
+            }))
+            .WillOnce(Return(false))
+            .WillOnce(Return(false))
+            .WillOnce(Return(false))
+            .WillOnce(Return(false))
+            .WillOnce(Return(false))
+            .WillOnce(Return(false))
+            .WillOnce(Return(false))
+            .WillOnce(Return(false))
+            .WillOnce(Return(false))
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 220, 10));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithNoInitialCondition(pullerManager,
+                                                                                     metric);
+
+    // First condition change event causes guardrail to be reached.
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 10);
+
+    // 2-10 condition change events result in failed pulls.
+    valueProducer->onConditionChanged(false, bucketStartTimeNs + 30);
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 50);
+    valueProducer->onConditionChanged(false, bucketStartTimeNs + 70);
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 90);
+    valueProducer->onConditionChanged(false, bucketStartTimeNs + 100);
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 150);
+    valueProducer->onConditionChanged(false, bucketStartTimeNs + 170);
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 190);
+    valueProducer->onConditionChanged(false, bucketStartTimeNs + 200);
+
+    // Condition change event 11
+    valueProducer->onConditionChanged(true, bucketStartTimeNs + 220);
+
+    // Check dump report.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    int64_t dumpReportTimeNs = bucketStartTimeNs + 1000;
+    // Because we already have 10 dump events in the current bucket,
+    // this case should not be added to the list of dump events.
+    valueProducer->onDumpReport(bucketStartTimeNs + 1000, true /* include recent buckets */, true,
+                                FAST /* dumpLatency */, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_value_metrics());
+    EXPECT_EQ(0, report.value_metrics().data_size());
+    EXPECT_EQ(1, report.value_metrics().skipped_size());
+
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
+              report.value_metrics().skipped(0).start_bucket_elapsed_millis());
+    EXPECT_EQ(NanoToMillis(dumpReportTimeNs),
+              report.value_metrics().skipped(0).end_bucket_elapsed_millis());
+    EXPECT_EQ(10, report.value_metrics().skipped(0).drop_event_size());
+
+    auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
+    EXPECT_EQ(BucketDropReason::CONDITION_UNKNOWN, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 10), dropEvent.drop_time_millis());
+
+    dropEvent = report.value_metrics().skipped(0).drop_event(1);
+    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 30), dropEvent.drop_time_millis());
+
+    dropEvent = report.value_metrics().skipped(0).drop_event(2);
+    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 50), dropEvent.drop_time_millis());
+
+    dropEvent = report.value_metrics().skipped(0).drop_event(3);
+    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 70), dropEvent.drop_time_millis());
+
+    dropEvent = report.value_metrics().skipped(0).drop_event(4);
+    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 90), dropEvent.drop_time_millis());
+
+    dropEvent = report.value_metrics().skipped(0).drop_event(5);
+    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 100), dropEvent.drop_time_millis());
+
+    dropEvent = report.value_metrics().skipped(0).drop_event(6);
+    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 150), dropEvent.drop_time_millis());
+
+    dropEvent = report.value_metrics().skipped(0).drop_event(7);
+    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 170), dropEvent.drop_time_millis());
+
+    dropEvent = report.value_metrics().skipped(0).drop_event(8);
+    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 190), dropEvent.drop_time_millis());
+
+    dropEvent = report.value_metrics().skipped(0).drop_event(9);
+    EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
+    EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 200), dropEvent.drop_time_millis());
+}
+
+/*
+ * Test metric with a simple sliced state
+ * - Increasing values
+ * - Using diff
+ * - Second field is value field
+ */
+TEST(ValueMetricProducerTest, TestSlicedState) {
+    // Set up ValueMetricProducer.
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithState("SCREEN_STATE");
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // ValueMetricProducer initialized.
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 3));
+                        return true;
+                    }))
+            // Screen state change to ON.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 5, 5));
+                return true;
+            }))
+            // Screen state change to OFF.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 10, 9));
+                return true;
+            }))
+            // Screen state change to ON.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 15, 21));
+                return true;
+            }))
+            // Dump report requested.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 50, 30));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithState(
+                    pullerManager, metric, {util::SCREEN_STATE_CHANGED}, {});
+
+    // Set up StateManager and check that StateTrackers are initialized.
+    StateManager::getInstance().clear();
+    StateManager::getInstance().registerListener(SCREEN_STATE_ATOM_ID, valueProducer);
+    EXPECT_EQ(1, StateManager::getInstance().getStateTrackersCount());
+    EXPECT_EQ(1, StateManager::getInstance().getListenersCount(SCREEN_STATE_ATOM_ID));
+
+    // Bucket status after metric initialized.
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    // Base for dimension key {}
+    auto it = valueProducer->mCurrentSlicedBucket.begin();
+    auto itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(3, itBase->second[0].base.long_value);
+    // Value for dimension, state key {{}, kStateUnknown}
+    EXPECT_EQ(false, it->second[0].hasValue);
+
+    // Bucket status after screen state change kStateUnknown->ON.
+    auto screenEvent = CreateScreenStateChangedEvent(
+            bucketStartTimeNs + 5, android::view::DisplayStateEnum::DISPLAY_STATE_ON);
+    StateManager::getInstance().onLogEvent(*screenEvent);
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    // Base for dimension key {}
+    it = valueProducer->mCurrentSlicedBucket.begin();
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(5, itBase->second[0].base.long_value);
+    // Value for dimension, state key {{}, kStateUnknown}
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(2, it->second[0].value.long_value);
+
+    // Bucket status after screen state change ON->OFF.
+    screenEvent = CreateScreenStateChangedEvent(bucketStartTimeNs + 10,
+                                                android::view::DisplayStateEnum::DISPLAY_STATE_OFF);
+    StateManager::getInstance().onLogEvent(*screenEvent);
+    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
+    // Base for dimension key {}
+    it = valueProducer->mCurrentSlicedBucket.begin();
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(9, itBase->second[0].base.long_value);
+    // Value for dimension, state key {{}, ON}
+    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
+              it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(4, it->second[0].value.long_value);
+    // Value for dimension, state key {{}, kStateUnknown}
+    it++;
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(2, it->second[0].value.long_value);
+
+    // Bucket status after screen state change OFF->ON.
+    screenEvent = CreateScreenStateChangedEvent(bucketStartTimeNs + 15,
+                                                android::view::DisplayStateEnum::DISPLAY_STATE_ON);
+    StateManager::getInstance().onLogEvent(*screenEvent);
+    EXPECT_EQ(3UL, valueProducer->mCurrentSlicedBucket.size());
+    // Base for dimension key {}
+    it = valueProducer->mCurrentSlicedBucket.begin();
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(21, itBase->second[0].base.long_value);
+    // Value for dimension, state key {{}, OFF}
+    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_OFF,
+              it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(12, it->second[0].value.long_value);
+    // Value for dimension, state key {{}, ON}
+    it++;
+    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
+              it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(4, it->second[0].value.long_value);
+    // Value for dimension, state key {{}, kStateUnknown}
+    it++;
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(2, it->second[0].value.long_value);
+
+    // Start dump report and check output.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    valueProducer->onDumpReport(bucketStartTimeNs + 50, true /* include recent buckets */, true,
+                                NO_TIME_CONSTRAINTS, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_value_metrics());
+    EXPECT_EQ(3, report.value_metrics().data_size());
+
+    auto data = report.value_metrics().data(0);
+    EXPECT_EQ(1, data.bucket_info_size());
+    EXPECT_EQ(2, report.value_metrics().data(0).bucket_info(0).values(0).value_long());
+
+    data = report.value_metrics().data(1);
+    EXPECT_EQ(1, report.value_metrics().data(1).bucket_info_size());
+    EXPECT_EQ(13, report.value_metrics().data(1).bucket_info(0).values(0).value_long());
+    EXPECT_EQ(SCREEN_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
+    EXPECT_TRUE(data.slice_by_state(0).has_value());
+    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON, data.slice_by_state(0).value());
+
+    data = report.value_metrics().data(2);
+    EXPECT_EQ(1, report.value_metrics().data(2).bucket_info_size());
+    EXPECT_EQ(12, report.value_metrics().data(2).bucket_info(0).values(0).value_long());
+    EXPECT_EQ(SCREEN_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
+    EXPECT_TRUE(data.slice_by_state(0).has_value());
+    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_OFF, data.slice_by_state(0).value());
+}
+
+/*
+ * Test metric with sliced state with map
+ * - Increasing values
+ * - Using diff
+ * - Second field is value field
+ */
+TEST(ValueMetricProducerTest, TestSlicedStateWithMap) {
+    // Set up ValueMetricProducer.
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithState("SCREEN_STATE_ONOFF");
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // ValueMetricProducer initialized.
+            .WillOnce(Invoke(
+                    [](int tagId, const ConfigKey&, vector<std::shared_ptr<LogEvent>>* data, bool) {
+                        data->clear();
+                        data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs, 3));
+                        return true;
+                    }))
+            // Screen state change to ON.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 5, 5));
+                return true;
+            }))
+            // Screen state change to VR.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 10, 9));
+                return true;
+            }))
+            // Screen state change to OFF.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 15, 21));
+                return true;
+            }))
+            // Dump report requested.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateRepeatedValueLogEvent(tagId, bucketStartTimeNs + 50, 30));
+                return true;
+            }));
+
+    const StateMap& stateMap = CreateScreenStateOnOffMap();
+    const StateMap_StateGroup screenOnGroup = stateMap.group(0);
+    const StateMap_StateGroup screenOffGroup = stateMap.group(1);
+
+    unordered_map<int, unordered_map<int, int64_t>> stateGroupMap;
+    for (auto group : stateMap.group()) {
+        for (auto value : group.value()) {
+            stateGroupMap[SCREEN_STATE_ATOM_ID][value] = group.group_id();
+        }
+    }
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithState(
+                    pullerManager, metric, {util::SCREEN_STATE_CHANGED}, stateGroupMap);
+
+    // Set up StateManager and check that StateTrackers are initialized.
+    StateManager::getInstance().clear();
+    StateManager::getInstance().registerListener(SCREEN_STATE_ATOM_ID, valueProducer);
+    EXPECT_EQ(1, StateManager::getInstance().getStateTrackersCount());
+    EXPECT_EQ(1, StateManager::getInstance().getListenersCount(SCREEN_STATE_ATOM_ID));
+
+    // Bucket status after metric initialized.
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    // Base for dimension key {}
+    auto it = valueProducer->mCurrentSlicedBucket.begin();
+    auto itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(3, itBase->second[0].base.long_value);
+    // Value for dimension, state key {{}, {}}
+    EXPECT_EQ(false, it->second[0].hasValue);
+
+    // Bucket status after screen state change kStateUnknown->ON.
+    auto screenEvent = CreateScreenStateChangedEvent(
+            bucketStartTimeNs + 5, android::view::DisplayStateEnum::DISPLAY_STATE_ON);
+    StateManager::getInstance().onLogEvent(*screenEvent);
+    EXPECT_EQ(1UL, valueProducer->mCurrentSlicedBucket.size());
+    // Base for dimension key {}
+    it = valueProducer->mCurrentSlicedBucket.begin();
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(5, itBase->second[0].base.long_value);
+    // Value for dimension, state key {{}, kStateUnknown}
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(2, it->second[0].value.long_value);
+
+    // Bucket status after screen state change ON->VR (also ON).
+    screenEvent = CreateScreenStateChangedEvent(bucketStartTimeNs + 10,
+                                                android::view::DisplayStateEnum::DISPLAY_STATE_VR);
+    StateManager::getInstance().onLogEvent(*screenEvent);
+    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
+    // Base for dimension key {}
+    it = valueProducer->mCurrentSlicedBucket.begin();
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(9, itBase->second[0].base.long_value);
+    // Value for dimension, state key {{}, ON GROUP}
+    EXPECT_EQ(screenOnGroup.group_id(),
+              it->first.getStateValuesKey().getValues()[0].mValue.long_value);
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(4, it->second[0].value.long_value);
+    // Value for dimension, state key {{}, kStateUnknown}
+    it++;
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(2, it->second[0].value.long_value);
+
+    // Bucket status after screen state change VR->OFF.
+    screenEvent = CreateScreenStateChangedEvent(bucketStartTimeNs + 15,
+                                                android::view::DisplayStateEnum::DISPLAY_STATE_OFF);
+    StateManager::getInstance().onLogEvent(*screenEvent);
+    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
+    // Base for dimension key {}
+    it = valueProducer->mCurrentSlicedBucket.begin();
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(21, itBase->second[0].base.long_value);
+    // Value for dimension, state key {{}, ON GROUP}
+    EXPECT_EQ(screenOnGroup.group_id(),
+              it->first.getStateValuesKey().getValues()[0].mValue.long_value);
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(16, it->second[0].value.long_value);
+    // Value for dimension, state key {{}, kStateUnknown}
+    it++;
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(2, it->second[0].value.long_value);
+
+    // Start dump report and check output.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    valueProducer->onDumpReport(bucketStartTimeNs + 50, true /* include recent buckets */, true,
+                                NO_TIME_CONSTRAINTS, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_value_metrics());
+    EXPECT_EQ(3, report.value_metrics().data_size());
+
+    auto data = report.value_metrics().data(0);
+    EXPECT_EQ(1, data.bucket_info_size());
+    EXPECT_EQ(2, report.value_metrics().data(0).bucket_info(0).values(0).value_long());
+
+    data = report.value_metrics().data(1);
+    EXPECT_EQ(1, report.value_metrics().data(1).bucket_info_size());
+    EXPECT_EQ(16, report.value_metrics().data(1).bucket_info(0).values(0).value_long());
+    EXPECT_EQ(SCREEN_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
+    EXPECT_TRUE(data.slice_by_state(0).has_group_id());
+    EXPECT_EQ(screenOnGroup.group_id(), data.slice_by_state(0).group_id());
+
+    data = report.value_metrics().data(2);
+    EXPECT_EQ(1, report.value_metrics().data(2).bucket_info_size());
+    EXPECT_EQ(9, report.value_metrics().data(2).bucket_info(0).values(0).value_long());
+    EXPECT_EQ(SCREEN_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
+    EXPECT_TRUE(data.slice_by_state(0).has_group_id());
+    EXPECT_EQ(screenOffGroup.group_id(), data.slice_by_state(0).group_id());
+}
+
+/*
+ * Test metric that slices by state with a primary field and has dimensions
+ * - Increasing values
+ * - Using diff
+ * - Second field is value field
+ */
+TEST(ValueMetricProducerTest, TestSlicedStateWithPrimaryField_WithDimensions) {
+    // Set up ValueMetricProducer.
+    ValueMetric metric = ValueMetricProducerTestHelper::createMetricWithState("UID_PROCESS_STATE");
+    metric.mutable_dimensions_in_what()->set_field(tagId);
+    metric.mutable_dimensions_in_what()->add_child()->set_field(1);
+
+    MetricStateLink* stateLink = metric.add_state_link();
+    stateLink->set_state_atom_id(UID_PROCESS_STATE_ATOM_ID);
+    auto fieldsInWhat = stateLink->mutable_fields_in_what();
+    *fieldsInWhat = CreateDimensions(tagId, {1 /* uid */});
+    auto fieldsInState = stateLink->mutable_fields_in_state();
+    *fieldsInState = CreateDimensions(UID_PROCESS_STATE_ATOM_ID, {1 /* uid */});
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    EXPECT_CALL(*pullerManager, Pull(tagId, kConfigKey, _, _))
+            // ValueMetricProducer initialized.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(CreateTwoValueLogEvent(tagId, bucketStartTimeNs, 2 /*uid*/, 7));
+                data->push_back(CreateTwoValueLogEvent(tagId, bucketStartTimeNs, 1 /*uid*/, 3));
+                return true;
+            }))
+            // Uid 1 process state change from kStateUnknown -> Foreground
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(
+                        CreateTwoValueLogEvent(tagId, bucketStartTimeNs + 20, 1 /*uid*/, 6));
+
+                // This event should be skipped.
+                data->push_back(
+                        CreateTwoValueLogEvent(tagId, bucketStartTimeNs + 20, 2 /*uid*/, 8));
+                return true;
+            }))
+            // Uid 2 process state change from kStateUnknown -> Background
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(
+                        CreateTwoValueLogEvent(tagId, bucketStartTimeNs + 40, 2 /*uid*/, 9));
+
+                // This event should be skipped.
+                data->push_back(
+                        CreateTwoValueLogEvent(tagId, bucketStartTimeNs + 40, 1 /*uid*/, 12));
+                return true;
+            }))
+            // Uid 1 process state change from Foreground -> Background
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(
+                        CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 20, 1 /*uid*/, 13));
+
+                // This event should be skipped.
+                data->push_back(
+                        CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 20, 2 /*uid*/, 11));
+                return true;
+            }))
+            // Uid 1 process state change from Background -> Foreground
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(
+                        CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 40, 1 /*uid*/, 17));
+
+                // This event should be skipped.
+                data->push_back(
+                        CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 40, 2 /*uid */, 15));
+                return true;
+            }))
+            // Dump report pull.
+            .WillOnce(Invoke([](int tagId, const ConfigKey&,
+                                vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(
+                        CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 50, 2 /*uid*/, 20));
+                data->push_back(
+                        CreateTwoValueLogEvent(tagId, bucket2StartTimeNs + 50, 1 /*uid*/, 21));
+                return true;
+            }));
+
+    sp<ValueMetricProducer> valueProducer =
+            ValueMetricProducerTestHelper::createValueProducerWithState(
+                    pullerManager, metric, {UID_PROCESS_STATE_ATOM_ID}, {});
+
+    // Set up StateManager and check that StateTrackers are initialized.
+    StateManager::getInstance().clear();
+    StateManager::getInstance().registerListener(UID_PROCESS_STATE_ATOM_ID, valueProducer);
+    EXPECT_EQ(1, StateManager::getInstance().getStateTrackersCount());
+    EXPECT_EQ(1, StateManager::getInstance().getListenersCount(UID_PROCESS_STATE_ATOM_ID));
+
+    // Bucket status after metric initialized.
+    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
+    // Base for dimension key {uid 1}.
+    auto it = valueProducer->mCurrentSlicedBucket.begin();
+    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    auto itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(3, itBase->second[0].base.long_value);
+    // Value for dimension, state key {{uid 1}, kStateUnknown}
+    // TODO(tsaichristine): test equality of state values key
+    // EXPECT_EQ(-1, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(false, it->second[0].hasValue);
+    // Base for dimension key {uid 2}
+    it++;
+    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(7, itBase->second[0].base.long_value);
+    // Value for dimension, state key {{uid 2}, kStateUnknown}
+    // EXPECT_EQ(-1, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(false, it->second[0].hasValue);
+
+    // Bucket status after uid 1 process state change kStateUnknown -> Foreground.
+    auto uidProcessEvent = CreateUidProcessStateChangedEvent(
+            bucketStartTimeNs + 20, 1 /* uid */, android::app::PROCESS_STATE_IMPORTANT_FOREGROUND);
+    StateManager::getInstance().onLogEvent(*uidProcessEvent);
+    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
+    // Base for dimension key {uid 1}.
+    it = valueProducer->mCurrentSlicedBucket.begin();
+    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(6, itBase->second[0].base.long_value);
+    // Value for key {uid 1, kStateUnknown}.
+    // EXPECT_EQ(-1, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(3, it->second[0].value.long_value);
+
+    // Base for dimension key {uid 2}
+    it++;
+    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(7, itBase->second[0].base.long_value);
+    // Value for key {uid 2, kStateUnknown}
+    EXPECT_EQ(false, it->second[0].hasValue);
+
+    // Bucket status after uid 2 process state change kStateUnknown -> Background.
+    uidProcessEvent = CreateUidProcessStateChangedEvent(
+            bucketStartTimeNs + 40, 2 /* uid */, android::app::PROCESS_STATE_IMPORTANT_BACKGROUND);
+    StateManager::getInstance().onLogEvent(*uidProcessEvent);
+    EXPECT_EQ(2UL, valueProducer->mCurrentSlicedBucket.size());
+    // Base for dimension key {uid 1}.
+    it = valueProducer->mCurrentSlicedBucket.begin();
+    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(6, itBase->second[0].base.long_value);
+    // Value for key {uid 1, kStateUnknown}.
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(3, it->second[0].value.long_value);
+
+    // Base for dimension key {uid 2}
+    it++;
+    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(9, itBase->second[0].base.long_value);
+    // Value for key {uid 2, kStateUnknown}
+    // EXPECT_EQ(-1, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(2, it->second[0].value.long_value);
+
+    // Pull at end of first bucket.
+    vector<shared_ptr<LogEvent>> allData;
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket2StartTimeNs, 1 /*uid*/, 10));
+    allData.push_back(CreateTwoValueLogEvent(tagId, bucket2StartTimeNs, 2 /*uid*/, 15));
+    valueProducer->onDataPulled(allData, /** succeeds */ true, bucket2StartTimeNs + 1);
+
+    // Buckets flushed after end of first bucket.
+    // None of the buckets should have a value.
+    EXPECT_EQ(4UL, valueProducer->mCurrentSlicedBucket.size());
+    EXPECT_EQ(4UL, valueProducer->mPastBuckets.size());
+    EXPECT_EQ(2UL, valueProducer->mCurrentBaseInfo.size());
+    // Base for dimension key {uid 2}.
+    it = valueProducer->mCurrentSlicedBucket.begin();
+    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(15, itBase->second[0].base.long_value);
+    // Value for key {uid 2, BACKGROUND}.
+    EXPECT_EQ(1, it->first.getStateValuesKey().getValues().size());
+    EXPECT_EQ(1006, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(false, it->second[0].hasValue);
+
+    // Base for dimension key {uid 1}
+    it++;
+    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(10, itBase->second[0].base.long_value);
+    // Value for key {uid 1, kStateUnknown}
+    EXPECT_EQ(0, it->first.getStateValuesKey().getValues().size());
+    // EXPECT_EQ(-1, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(false, it->second[0].hasValue);
+
+    // Value for key {uid 1, FOREGROUND}
+    it++;
+    EXPECT_EQ(1, it->first.getStateValuesKey().getValues().size());
+    EXPECT_EQ(1005, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(false, it->second[0].hasValue);
+
+    // Value for key {uid 2, kStateUnknown}
+    it++;
+    EXPECT_EQ(false, it->second[0].hasValue);
+
+    // Bucket status after uid 1 process state change from Foreground -> Background.
+    uidProcessEvent = CreateUidProcessStateChangedEvent(
+            bucket2StartTimeNs + 20, 1 /* uid */, android::app::PROCESS_STATE_IMPORTANT_BACKGROUND);
+    StateManager::getInstance().onLogEvent(*uidProcessEvent);
+
+    EXPECT_EQ(4UL, valueProducer->mCurrentSlicedBucket.size());
+    EXPECT_EQ(4UL, valueProducer->mPastBuckets.size());
+    EXPECT_EQ(2UL, valueProducer->mCurrentBaseInfo.size());
+    // Base for dimension key {uid 2}.
+    it = valueProducer->mCurrentSlicedBucket.begin();
+    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(15, itBase->second[0].base.long_value);
+    // Value for key {uid 2, BACKGROUND}.
+    EXPECT_EQ(false, it->second[0].hasValue);
+    // Base for dimension key {uid 1}
+    it++;
+    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(13, itBase->second[0].base.long_value);
+    // Value for key {uid 1, kStateUnknown}
+    EXPECT_EQ(false, it->second[0].hasValue);
+    // Value for key {uid 1, FOREGROUND}
+    it++;
+    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    EXPECT_EQ(1005, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(3, it->second[0].value.long_value);
+    // Value for key {uid 2, kStateUnknown}
+    it++;
+    EXPECT_EQ(false, it->second[0].hasValue);
+
+    // Bucket status after uid 1 process state change Background->Foreground.
+    uidProcessEvent = CreateUidProcessStateChangedEvent(
+            bucket2StartTimeNs + 40, 1 /* uid */, android::app::PROCESS_STATE_IMPORTANT_FOREGROUND);
+    StateManager::getInstance().onLogEvent(*uidProcessEvent);
+
+    EXPECT_EQ(5UL, valueProducer->mCurrentSlicedBucket.size());
+    EXPECT_EQ(2UL, valueProducer->mCurrentBaseInfo.size());
+    // Base for dimension key {uid 2}
+    it = valueProducer->mCurrentSlicedBucket.begin();
+    EXPECT_EQ(2, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(true, itBase->second[0].hasBase);
+    EXPECT_EQ(15, itBase->second[0].base.long_value);
+    EXPECT_EQ(false, it->second[0].hasValue);
+
+    it++;
+    EXPECT_EQ(false, it->second[0].hasValue);
+
+    // Base for dimension key {uid 1}
+    it++;
+    EXPECT_EQ(1, it->first.getDimensionKeyInWhat().getValues()[0].mValue.int_value);
+    itBase = valueProducer->mCurrentBaseInfo.find(it->first.getDimensionKeyInWhat());
+    EXPECT_EQ(17, itBase->second[0].base.long_value);
+    // Value for key {uid 1, BACKGROUND}
+    EXPECT_EQ(1006, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(4, it->second[0].value.long_value);
+    // Value for key {uid 1, FOREGROUND}
+    it++;
+    EXPECT_EQ(1005, it->first.getStateValuesKey().getValues()[0].mValue.int_value);
+    EXPECT_EQ(true, it->second[0].hasValue);
+    EXPECT_EQ(3, it->second[0].value.long_value);
+
+    // Start dump report and check output.
+    ProtoOutputStream output;
+    std::set<string> strSet;
+    valueProducer->onDumpReport(bucket2StartTimeNs + 50, true /* include recent buckets */, true,
+                                NO_TIME_CONSTRAINTS, &strSet, &output);
+
+    StatsLogReport report = outputStreamToProto(&output);
+    EXPECT_TRUE(report.has_value_metrics());
+    EXPECT_EQ(5, report.value_metrics().data_size());
+
+    auto data = report.value_metrics().data(0);
+    EXPECT_EQ(1, data.bucket_info_size());
+    EXPECT_EQ(4, report.value_metrics().data(0).bucket_info(0).values(0).value_long());
+    EXPECT_EQ(UID_PROCESS_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
+    EXPECT_TRUE(data.slice_by_state(0).has_value());
+    EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_IMPORTANT_BACKGROUND,
+              data.slice_by_state(0).value());
+
+    data = report.value_metrics().data(1);
+    EXPECT_EQ(1, report.value_metrics().data(1).bucket_info_size());
+    EXPECT_EQ(2, report.value_metrics().data(1).bucket_info(0).values(0).value_long());
+
+    data = report.value_metrics().data(2);
+    EXPECT_EQ(UID_PROCESS_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
+    EXPECT_TRUE(data.slice_by_state(0).has_value());
+    EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_IMPORTANT_FOREGROUND,
+              data.slice_by_state(0).value());
+    EXPECT_EQ(2, report.value_metrics().data(2).bucket_info_size());
+    EXPECT_EQ(4, report.value_metrics().data(2).bucket_info(0).values(0).value_long());
+    EXPECT_EQ(7, report.value_metrics().data(2).bucket_info(1).values(0).value_long());
+
+    data = report.value_metrics().data(3);
+    EXPECT_EQ(1, report.value_metrics().data(3).bucket_info_size());
+    EXPECT_EQ(3, report.value_metrics().data(3).bucket_info(0).values(0).value_long());
+
+    data = report.value_metrics().data(4);
+    EXPECT_EQ(UID_PROCESS_STATE_ATOM_ID, data.slice_by_state(0).atom_id());
+    EXPECT_TRUE(data.slice_by_state(0).has_value());
+    EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_IMPORTANT_BACKGROUND,
+              data.slice_by_state(0).value());
+    EXPECT_EQ(2, report.value_metrics().data(4).bucket_info_size());
+    EXPECT_EQ(6, report.value_metrics().data(4).bucket_info(0).values(0).value_long());
+    EXPECT_EQ(5, report.value_metrics().data(4).bucket_info(1).values(0).value_long());
+}
 
 }  // namespace statsd
 }  // namespace os
diff --git a/cmds/statsd/tests/metrics/metrics_test_helper.h b/cmds/statsd/tests/metrics/metrics_test_helper.h
index 09c4d9e..69f7e3f 100644
--- a/cmds/statsd/tests/metrics/metrics_test_helper.h
+++ b/cmds/statsd/tests/metrics/metrics_test_helper.h
@@ -33,15 +33,24 @@
 
 class MockStatsPullerManager : public StatsPullerManager {
 public:
-    MOCK_METHOD4(RegisterReceiver, void(int tagId, wp<PullDataReceiver> receiver,
-                                        int64_t nextPulltimeNs, int64_t intervalNs));
-    MOCK_METHOD2(UnRegisterReceiver, void(int tagId, wp<PullDataReceiver> receiver));
-    MOCK_METHOD2(Pull, bool(const int pullCode, vector<std::shared_ptr<LogEvent>>* data));
+    MOCK_METHOD5(RegisterReceiver,
+                 void(int tagId, const ConfigKey& key, wp<PullDataReceiver> receiver,
+                      int64_t nextPulltimeNs, int64_t intervalNs));
+    MOCK_METHOD3(UnRegisterReceiver,
+                 void(int tagId, const ConfigKey& key, wp<PullDataReceiver> receiver));
+    MOCK_METHOD4(Pull, bool(const int pullCode, const ConfigKey& key,
+                            vector<std::shared_ptr<LogEvent>>* data, bool useUids));
+    MOCK_METHOD4(Pull, bool(const int pullCode, const vector<int32_t>& uids,
+                            vector<std::shared_ptr<LogEvent>>* data, bool useUids));
+    MOCK_METHOD2(RegisterPullUidProvider,
+                 void(const ConfigKey& configKey, wp<PullUidProvider> provider));
+    MOCK_METHOD1(UnregisterPullUidProvider, void(const ConfigKey& configKey));
 };
 
 class MockUidMap : public UidMap {
  public:
   MOCK_CONST_METHOD1(getHostUidOrSelf, int(int uid));
+  MOCK_CONST_METHOD1(getAppUid, std::set<int32_t>(const string& package));
 };
 
 HashableDimensionKey getMockedDimensionKey(int tagId, int key, std::string value);
diff --git a/cmds/statsd/tests/shell/ShellSubscriber_test.cpp b/cmds/statsd/tests/shell/ShellSubscriber_test.cpp
index 57e4265..ac3ad69 100644
--- a/cmds/statsd/tests/shell/ShellSubscriber_test.cpp
+++ b/cmds/statsd/tests/shell/ShellSubscriber_test.cpp
@@ -12,17 +12,20 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include <gtest/gtest.h>
+#include "src/shell/ShellSubscriber.h"
 
+#include <gtest/gtest.h>
+#include <stdio.h>
 #include <unistd.h>
+
+#include <vector>
+
 #include "frameworks/base/cmds/statsd/src/atoms.pb.h"
 #include "frameworks/base/cmds/statsd/src/shell/shell_config.pb.h"
 #include "frameworks/base/cmds/statsd/src/shell/shell_data.pb.h"
-#include "src/shell/ShellSubscriber.h"
+#include "stats_event.h"
 #include "tests/metrics/metrics_test_helper.h"
-
-#include <stdio.h>
-#include <vector>
+#include "tests/statsd_test_util.h"
 
 using namespace android::os::statsd;
 using android::sp;
@@ -88,6 +91,7 @@
     // now read from the pipe. firstly read the atom size.
     size_t dataSize = 0;
     EXPECT_EQ((int)sizeof(dataSize), read(fds_data[0], &dataSize, sizeof(dataSize)));
+
     EXPECT_EQ(expected_data_size, (int)dataSize);
 
     // then read that much data which is the atom in proto binary format
@@ -103,32 +107,34 @@
     expectedData.SerializeToArray(&atomBuffer[0], expected_data_size);
     EXPECT_EQ(atomBuffer, dataBuffer);
     close(fds_data[0]);
+
+    if (reader.joinable()) {
+        reader.join();
+    }
 }
 
-// TODO(b/149590301): Update this test to use new socket schema.
-//TEST(ShellSubscriberTest, testPushedSubscription) {
-//    sp<MockUidMap> uidMap = new NaggyMock<MockUidMap>();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    vector<std::shared_ptr<LogEvent>> pushedList;
-//
-//    std::shared_ptr<LogEvent> event1 =
-//            std::make_shared<LogEvent>(29 /*screen_state_atom_id*/, 1000 /*timestamp*/);
-//    event1->write(::android::view::DisplayStateEnum::DISPLAY_STATE_ON);
-//    event1->init();
-//    pushedList.push_back(event1);
-//
-//    // create a simple config to get screen events
-//    ShellSubscription config;
-//    config.add_pushed()->set_atom_id(29);
-//
-//    // this is the expected screen event atom.
-//    ShellData shellData;
-//    shellData.add_atom()->mutable_screen_state_changed()->set_state(
-//            ::android::view::DisplayStateEnum::DISPLAY_STATE_ON);
-//
-//    runShellTest(config, uidMap, pullerManager, pushedList, shellData);
-//}
+TEST(ShellSubscriberTest, testPushedSubscription) {
+    sp<MockUidMap> uidMap = new NaggyMock<MockUidMap>();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    vector<std::shared_ptr<LogEvent>> pushedList;
+
+    // Create the LogEvent from an AStatsEvent
+    std::unique_ptr<LogEvent> logEvent = CreateScreenStateChangedEvent(
+            1000 /*timestamp*/, ::android::view::DisplayStateEnum::DISPLAY_STATE_ON);
+    pushedList.push_back(std::move(logEvent));
+
+    // create a simple config to get screen events
+    ShellSubscription config;
+    config.add_pushed()->set_atom_id(29);
+
+    // this is the expected screen event atom.
+    ShellData shellData;
+    shellData.add_atom()->mutable_screen_state_changed()->set_state(
+            ::android::view::DisplayStateEnum::DISPLAY_STATE_ON);
+
+    runShellTest(config, uidMap, pullerManager, pushedList, shellData);
+}
 
 namespace {
 
@@ -159,33 +165,40 @@
     return config;
 }
 
+shared_ptr<LogEvent> makeCpuActiveTimeAtom(int32_t uid, int64_t timeMillis) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, 10016);
+    AStatsEvent_overwriteTimestamp(statsEvent, 1111L);
+    AStatsEvent_writeInt32(statsEvent, uid);
+    AStatsEvent_writeInt64(statsEvent, timeMillis);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+
+    std::shared_ptr<LogEvent> logEvent = std::make_shared<LogEvent>(/*uid=*/0, /*pid=*/0);
+    logEvent->parseBuffer(buf, size);
+    return logEvent;
+}
+
 }  // namespace
 
-// TODO(b/149590301): Update this test to use new socket schema.
-//TEST(ShellSubscriberTest, testPulledSubscription) {
-//    sp<MockUidMap> uidMap = new NaggyMock<MockUidMap>();
-//
-//    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
-//    EXPECT_CALL(*pullerManager, Pull(10016, _))
-//            .WillRepeatedly(Invoke([](int tagId, vector<std::shared_ptr<LogEvent>>* data) {
-//                data->clear();
-//                shared_ptr<LogEvent> event = make_shared<LogEvent>(tagId, 1111L);
-//                event->write(kUid1);
-//                event->write(kCpuTime1);
-//                event->init();
-//                data->push_back(event);
-//                // another event
-//                event = make_shared<LogEvent>(tagId, 1111L);
-//                event->write(kUid2);
-//                event->write(kCpuTime2);
-//                event->init();
-//                data->push_back(event);
-//                return true;
-//            }));
-//
-//    runShellTest(getPulledConfig(), uidMap, pullerManager, vector<std::shared_ptr<LogEvent>>(),
-//                 getExpectedShellData());
-//}
+TEST(ShellSubscriberTest, testPulledSubscription) {
+    sp<MockUidMap> uidMap = new NaggyMock<MockUidMap>();
+
+    sp<MockStatsPullerManager> pullerManager = new StrictMock<MockStatsPullerManager>();
+    const vector<int32_t> uids = {AID_SYSTEM};
+    EXPECT_CALL(*pullerManager, Pull(10016, uids, _, _))
+            .WillRepeatedly(Invoke([](int tagId, const vector<int32_t>&,
+                                      vector<std::shared_ptr<LogEvent>>* data, bool) {
+                data->clear();
+                data->push_back(makeCpuActiveTimeAtom(/*uid=*/kUid1, /*timeMillis=*/kCpuTime1));
+                data->push_back(makeCpuActiveTimeAtom(/*uid=*/kUid2, /*timeMillis=*/kCpuTime2));
+                return true;
+            }));
+    runShellTest(getPulledConfig(), uidMap, pullerManager, vector<std::shared_ptr<LogEvent>>(),
+                 getExpectedShellData());
+}
 
 #else
 GTEST_LOG_(INFO) << "This test does nothing.\n";
diff --git a/cmds/statsd/tests/state/StateTracker_test.cpp b/cmds/statsd/tests/state/StateTracker_test.cpp
index b1633c6..a0e0095 100644
--- a/cmds/statsd/tests/state/StateTracker_test.cpp
+++ b/cmds/statsd/tests/state/StateTracker_test.cpp
@@ -13,11 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <gtest/gtest.h>
-#include "state/StateManager.h"
 #include "state/StateTracker.h"
-#include "state/StateListener.h"
 
+#include <gtest/gtest.h>
+
+#include "state/StateListener.h"
+#include "state/StateManager.h"
+#include "stats_event.h"
 #include "tests/statsd_test_util.h"
 
 #ifdef __ANDROID__
@@ -26,6 +28,8 @@
 namespace os {
 namespace statsd {
 
+const int32_t timestampNs = 1000;
+
 /**
  * Mock StateListener class for testing.
  * Stores primary key and state pairs.
@@ -56,95 +60,49 @@
     return output.mValue.int_value;
 }
 
-// TODO(b/149590301): Update these helpers to use new socket schema.
-//// START: build event functions.
-//// State with no primary fields - ScreenStateChanged
-//std::shared_ptr<LogEvent> buildScreenEvent(int state) {
-//    std::shared_ptr<LogEvent> event =
-//            std::make_shared<LogEvent>(util::SCREEN_STATE_CHANGED, 1000 /*timestamp*/);
-//    event->write((int32_t)state);
-//    event->init();
-//    return event;
-//}
-//
-//// State with one primary field - UidProcessStateChanged
-//std::shared_ptr<LogEvent> buildUidProcessEvent(int uid, int state) {
-//    std::shared_ptr<LogEvent> event =
-//            std::make_shared<LogEvent>(util::UID_PROCESS_STATE_CHANGED, 1000 /*timestamp*/);
-//    event->write((int32_t)uid);
-//    event->write((int32_t)state);
-//    event->init();
-//    return event;
-//}
-//
-//// State with first uid in attribution chain as primary field - WakelockStateChanged
-//std::shared_ptr<LogEvent> buildPartialWakelockEvent(int uid, const std::string& tag, bool acquire) {
-//    std::vector<AttributionNodeInternal> chain;
-//    chain.push_back(AttributionNodeInternal());
-//    AttributionNodeInternal& attr = chain.back();
-//    attr.set_uid(uid);
-//
-//    std::shared_ptr<LogEvent> event =
-//            std::make_shared<LogEvent>(util::WAKELOCK_STATE_CHANGED, 1000 /* timestamp */);
-//    event->write(chain);
-//    event->write((int32_t)1);  // PARTIAL_WAKE_LOCK
-//    event->write(tag);
-//    event->write(acquire ? 1 : 0);
-//    event->init();
-//    return event;
-//}
-//
-//// State with multiple primary fields - OverlayStateChanged
-//std::shared_ptr<LogEvent> buildOverlayEvent(int uid, const std::string& packageName, int state) {
-//    std::shared_ptr<LogEvent> event =
-//            std::make_shared<LogEvent>(util::OVERLAY_STATE_CHANGED, 1000 /*timestamp*/);
-//    event->write((int32_t)uid);
-//    event->write(packageName);
-//    event->write(true);  // using_alert_window
-//    event->write((int32_t)state);
-//    event->init();
-//    return event;
-//}
-//
-//// Incorrect event - missing fields
-//std::shared_ptr<LogEvent> buildIncorrectOverlayEvent(int uid, const std::string& packageName, int state) {
-//    std::shared_ptr<LogEvent> event =
-//            std::make_shared<LogEvent>(util::OVERLAY_STATE_CHANGED, 1000 /*timestamp*/);
-//    event->write((int32_t)uid);
-//    event->write(packageName);
-//    event->write((int32_t)state);
-//    event->init();
-//    return event;
-//}
-//
-//// Incorrect event - exclusive state has wrong type
-//std::shared_ptr<LogEvent> buildOverlayEventBadStateType(int uid, const std::string& packageName) {
-//    std::shared_ptr<LogEvent> event =
-//            std::make_shared<LogEvent>(util::OVERLAY_STATE_CHANGED, 1000 /*timestamp*/);
-//    event->write((int32_t)uid);
-//    event->write(packageName);
-//    event->write(true);
-//    event->write("string");  // exclusive state: string instead of int
-//    event->init();
-//    return event;
-//}
-//
-//std::shared_ptr<LogEvent> buildBleScanEvent(int uid, bool acquire, bool reset) {
-//    std::vector<AttributionNodeInternal> chain;
-//    chain.push_back(AttributionNodeInternal());
-//    AttributionNodeInternal& attr = chain.back();
-//    attr.set_uid(uid);
-//
-//    std::shared_ptr<LogEvent> event =
-//            std::make_shared<LogEvent>(util::BLE_SCAN_STATE_CHANGED, 1000);
-//    event->write(chain);
-//    event->write(reset ? 2 : acquire ? 1 : 0);  // PARTIAL_WAKE_LOCK
-//    event->write(0);                            // filtered
-//    event->write(0);                            // first match
-//    event->write(0);                            // opportunistic
-//    event->init();
-//    return event;
-//}
+// START: build event functions.
+// Incorrect event - missing fields
+std::shared_ptr<LogEvent> buildIncorrectOverlayEvent(int uid, const std::string& packageName,
+                                                     int state) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, util::OVERLAY_STATE_CHANGED);
+    AStatsEvent_overwriteTimestamp(statsEvent, 1000);
+
+    AStatsEvent_writeInt32(statsEvent, uid);
+    AStatsEvent_writeString(statsEvent, packageName.c_str());
+    // Missing field 3 - using_alert_window.
+    AStatsEvent_writeInt32(statsEvent, state);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+
+    std::unique_ptr<LogEvent> logEvent = std::make_unique<LogEvent>(/*uid=*/0, /*pid=*/0);
+    logEvent->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
+    return logEvent;
+}
+
+// Incorrect event - exclusive state has wrong type
+std::unique_ptr<LogEvent> buildOverlayEventBadStateType(int uid, const std::string& packageName) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, util::OVERLAY_STATE_CHANGED);
+    AStatsEvent_overwriteTimestamp(statsEvent, 1000);
+
+    AStatsEvent_writeInt32(statsEvent, uid);
+    AStatsEvent_writeString(statsEvent, packageName.c_str());
+    AStatsEvent_writeInt32(statsEvent, true);       // using_alert_window
+    AStatsEvent_writeString(statsEvent, "string");  // exclusive state: string instead of int
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+
+    std::unique_ptr<LogEvent> logEvent = std::make_unique<LogEvent>(/*uid=*/0, /*pid=*/0);
+    logEvent->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
+    return logEvent;
+}
 // END: build event functions.
 
 // START: get primary key functions
@@ -293,302 +251,323 @@
     EXPECT_EQ(0, mgr.getStateTrackersCount());
     EXPECT_EQ(-1, mgr.getListenersCount(util::SCREEN_STATE_CHANGED));
 }
-// TODO(b/149590301): Update these tests to use new socket schema.
-///**
-// * Test a binary state atom with nested counting.
-// *
-// * To go from an "ON" state to an "OFF" state with nested counting, we must see
-// * an equal number of "OFF" events as "ON" events.
-// * For example, ACQUIRE, ACQUIRE, RELEASE will still be in the ACQUIRE state.
-// * ACQUIRE, ACQUIRE, RELEASE, RELEASE will be in the RELEASE state.
-// */
-//TEST(StateTrackerTest, TestStateChangeNested) {
-//    sp<TestStateListener> listener = new TestStateListener();
-//    StateManager mgr;
-//    mgr.registerListener(util::WAKELOCK_STATE_CHANGED, listener);
-//
-//    std::shared_ptr<LogEvent> event1 =
-//            buildPartialWakelockEvent(1000 /* uid */, "tag", true /*acquire*/);
-//    mgr.onLogEvent(*event1);
-//    EXPECT_EQ(1, listener->updates.size());
-//    EXPECT_EQ(1000, listener->updates[0].mKey.getValues()[0].mValue.int_value);
-//    EXPECT_EQ(1, listener->updates[0].mState);
-//    listener->updates.clear();
-//
-//    std::shared_ptr<LogEvent> event2 =
-//            buildPartialWakelockEvent(1000 /* uid */, "tag", true /*acquire*/);
-//    mgr.onLogEvent(*event2);
-//    EXPECT_EQ(0, listener->updates.size());
-//
-//    std::shared_ptr<LogEvent> event3 =
-//            buildPartialWakelockEvent(1000 /* uid */, "tag", false /*release*/);
-//    mgr.onLogEvent(*event3);
-//    EXPECT_EQ(0, listener->updates.size());
-//
-//    std::shared_ptr<LogEvent> event4 =
-//            buildPartialWakelockEvent(1000 /* uid */, "tag", false /*release*/);
-//    mgr.onLogEvent(*event4);
-//    EXPECT_EQ(1, listener->updates.size());
-//    EXPECT_EQ(1000, listener->updates[0].mKey.getValues()[0].mValue.int_value);
-//    EXPECT_EQ(0, listener->updates[0].mState);
-//}
-//
-///**
-// * Test a state atom with a reset state.
-// *
-// * If the reset state value is seen, every state in the map is set to the default
-// * state and every listener is notified.
-// */
-//TEST(StateTrackerTest, TestStateChangeReset) {
-//    sp<TestStateListener> listener = new TestStateListener();
-//    StateManager mgr;
-//    mgr.registerListener(util::BLE_SCAN_STATE_CHANGED, listener);
-//
-//    std::shared_ptr<LogEvent> event1 =
-//            buildBleScanEvent(1000 /* uid */, true /*acquire*/, false /*reset*/);
-//    mgr.onLogEvent(*event1);
-//    EXPECT_EQ(1, listener->updates.size());
-//    EXPECT_EQ(1000, listener->updates[0].mKey.getValues()[0].mValue.int_value);
-//    EXPECT_EQ(BleScanStateChanged::ON, listener->updates[0].mState);
-//    listener->updates.clear();
-//
-//    std::shared_ptr<LogEvent> event2 =
-//            buildBleScanEvent(2000 /* uid */, true /*acquire*/, false /*reset*/);
-//    mgr.onLogEvent(*event2);
-//    EXPECT_EQ(1, listener->updates.size());
-//    EXPECT_EQ(2000, listener->updates[0].mKey.getValues()[0].mValue.int_value);
-//    EXPECT_EQ(BleScanStateChanged::ON, listener->updates[0].mState);
-//    listener->updates.clear();
-//
-//    std::shared_ptr<LogEvent> event3 =
-//            buildBleScanEvent(2000 /* uid */, false /*acquire*/, true /*reset*/);
-//    mgr.onLogEvent(*event3);
-//    EXPECT_EQ(2, listener->updates.size());
-//    EXPECT_EQ(BleScanStateChanged::OFF, listener->updates[0].mState);
-//    EXPECT_EQ(BleScanStateChanged::OFF, listener->updates[1].mState);
-//}
-//
-///**
-// * Test StateManager's onLogEvent and StateListener's onStateChanged correctly
-// * updates listener for states without primary keys.
-// */
-//TEST(StateTrackerTest, TestStateChangeNoPrimaryFields) {
-//    sp<TestStateListener> listener1 = new TestStateListener();
-//    StateManager mgr;
-//    mgr.registerListener(util::SCREEN_STATE_CHANGED, listener1);
-//
-//    // log event
-//    std::shared_ptr<LogEvent> event =
-//            buildScreenEvent(android::view::DisplayStateEnum::DISPLAY_STATE_ON);
-//    mgr.onLogEvent(*event);
-//
-//    // check listener was updated
-//    EXPECT_EQ(1, listener1->updates.size());
-//    EXPECT_EQ(DEFAULT_DIMENSION_KEY, listener1->updates[0].mKey);
-//    EXPECT_EQ(2, listener1->updates[0].mState);
-//
-//    // check StateTracker was updated by querying for state
-//    HashableDimensionKey queryKey = DEFAULT_DIMENSION_KEY;
-//    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
-//              getStateInt(mgr, util::SCREEN_STATE_CHANGED, queryKey));
-//}
-//
-///**
-// * Test StateManager's onLogEvent and StateListener's onStateChanged correctly
-// * updates listener for states with one primary key.
-// */
-//TEST(StateTrackerTest, TestStateChangeOnePrimaryField) {
-//    sp<TestStateListener> listener1 = new TestStateListener();
-//    StateManager mgr;
-//    mgr.registerListener(util::UID_PROCESS_STATE_CHANGED, listener1);
-//
-//    // log event
-//    std::shared_ptr<LogEvent> event =
-//            buildUidProcessEvent(1000 /* uid */, android::app::ProcessStateEnum::PROCESS_STATE_TOP);
-//    mgr.onLogEvent(*event);
-//
-//    // check listener was updated
-//    EXPECT_EQ(1, listener1->updates.size());
-//    EXPECT_EQ(1000, listener1->updates[0].mKey.getValues()[0].mValue.int_value);
-//    EXPECT_EQ(1002, listener1->updates[0].mState);
-//
-//    // check StateTracker was updated by querying for state
-//    HashableDimensionKey queryKey;
-//    getUidProcessKey(1000 /* uid */, &queryKey);
-//    EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_TOP,
-//              getStateInt(mgr, util::UID_PROCESS_STATE_CHANGED, queryKey));
-//}
-//
-//TEST(StateTrackerTest, TestStateChangePrimaryFieldAttrChain) {
-//    sp<TestStateListener> listener1 = new TestStateListener();
-//    StateManager mgr;
-//    mgr.registerListener(util::WAKELOCK_STATE_CHANGED, listener1);
-//
-//    // Log event.
-//    std::shared_ptr<LogEvent> event =
-//            buildPartialWakelockEvent(1001 /* uid */, "tag1", true /* acquire */);
-//    mgr.onLogEvent(*event);
-//
-//    EXPECT_EQ(1, mgr.getStateTrackersCount());
-//    EXPECT_EQ(1, mgr.getListenersCount(util::WAKELOCK_STATE_CHANGED));
-//
-//    // Check listener was updated.
-//    EXPECT_EQ(1, listener1->updates.size());
-//    EXPECT_EQ(3, listener1->updates[0].mKey.getValues().size());
-//    EXPECT_EQ(1001, listener1->updates[0].mKey.getValues()[0].mValue.int_value);
-//    EXPECT_EQ(1, listener1->updates[0].mKey.getValues()[1].mValue.int_value);
-//    EXPECT_EQ("tag1", listener1->updates[0].mKey.getValues()[2].mValue.str_value);
-//    EXPECT_EQ(WakelockStateChanged::ACQUIRE, listener1->updates[0].mState);
-//
-//    // Check StateTracker was updated by querying for state.
-//    HashableDimensionKey queryKey;
-//    getPartialWakelockKey(1001 /* uid */, "tag1", &queryKey);
-//    EXPECT_EQ(WakelockStateChanged::ACQUIRE,
-//              getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey));
-//
-//    // No state stored for this query key.
-//    HashableDimensionKey queryKey2;
-//    getPartialWakelockKey(1002 /* uid */, "tag1", &queryKey2);
-//    EXPECT_EQ(WakelockStateChanged::RELEASE,
-//              getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey2));
-//
-//    // Partial query fails.
-//    HashableDimensionKey queryKey3;
-//    getPartialWakelockKey(1001 /* uid */, &queryKey3);
-//    EXPECT_EQ(WakelockStateChanged::RELEASE,
-//              getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey3));
-//}
-//
-///**
-// * Test StateManager's onLogEvent and StateListener's onStateChanged correctly
-// * updates listener for states with multiple primary keys.
-// */
-//TEST(StateTrackerTest, TestStateChangeMultiplePrimaryFields) {
-//    sp<TestStateListener> listener1 = new TestStateListener();
-//    StateManager mgr;
-//    mgr.registerListener(util::OVERLAY_STATE_CHANGED, listener1);
-//
-//    // log event
-//    std::shared_ptr<LogEvent> event =
-//            buildOverlayEvent(1000 /* uid */, "package1", 1);  // state: ENTERED
-//    mgr.onLogEvent(*event);
-//
-//    // check listener was updated
-//    EXPECT_EQ(1, listener1->updates.size());
-//    EXPECT_EQ(1000, listener1->updates[0].mKey.getValues()[0].mValue.int_value);
-//    EXPECT_EQ(1, listener1->updates[0].mState);
-//
-//    // check StateTracker was updated by querying for state
-//    HashableDimensionKey queryKey;
-//    getOverlayKey(1000 /* uid */, "package1", &queryKey);
-//    EXPECT_EQ(OverlayStateChanged::ENTERED,
-//              getStateInt(mgr, util::OVERLAY_STATE_CHANGED, queryKey));
-//}
-//
-///**
-// * Test StateManager's onLogEvent and StateListener's onStateChanged
-// * when there is an error extracting state from log event. Listener is not
-// * updated of state change.
-// */
-//TEST(StateTrackerTest, TestStateChangeEventError) {
-//    sp<TestStateListener> listener1 = new TestStateListener();
-//    StateManager mgr;
-//    mgr.registerListener(util::OVERLAY_STATE_CHANGED, listener1);
-//
-//    // log event
-//    std::shared_ptr<LogEvent> event1 =
-//            buildIncorrectOverlayEvent(1000 /* uid */, "package1", 1 /* state */);
-//    std::shared_ptr<LogEvent> event2 = buildOverlayEventBadStateType(1001 /* uid */, "package2");
-//
-//    // check listener was updated
-//    mgr.onLogEvent(*event1);
-//    EXPECT_EQ(0, listener1->updates.size());
-//    mgr.onLogEvent(*event2);
-//    EXPECT_EQ(0, listener1->updates.size());
-//}
-//
-//TEST(StateTrackerTest, TestStateQuery) {
-//    sp<TestStateListener> listener1 = new TestStateListener();
-//    sp<TestStateListener> listener2 = new TestStateListener();
-//    sp<TestStateListener> listener3 = new TestStateListener();
-//    sp<TestStateListener> listener4 = new TestStateListener();
-//    StateManager mgr;
-//    mgr.registerListener(util::SCREEN_STATE_CHANGED, listener1);
-//    mgr.registerListener(util::UID_PROCESS_STATE_CHANGED, listener2);
-//    mgr.registerListener(util::OVERLAY_STATE_CHANGED, listener3);
-//    mgr.registerListener(util::WAKELOCK_STATE_CHANGED, listener4);
-//
-//    std::shared_ptr<LogEvent> event1 = buildUidProcessEvent(
-//            1000,
-//            android::app::ProcessStateEnum::PROCESS_STATE_TOP);  //  state value: 1002
-//    std::shared_ptr<LogEvent> event2 = buildUidProcessEvent(
-//            1001,
-//            android::app::ProcessStateEnum::PROCESS_STATE_FOREGROUND_SERVICE);  //  state value:
-//                                                                                //  1003
-//    std::shared_ptr<LogEvent> event3 = buildUidProcessEvent(
-//            1002,
-//            android::app::ProcessStateEnum::PROCESS_STATE_PERSISTENT);  //  state value: 1000
-//    std::shared_ptr<LogEvent> event4 = buildUidProcessEvent(
-//            1001,
-//            android::app::ProcessStateEnum::PROCESS_STATE_TOP);  //  state value: 1002
-//    std::shared_ptr<LogEvent> event5 =
-//            buildScreenEvent(android::view::DisplayStateEnum::DISPLAY_STATE_ON);
-//    std::shared_ptr<LogEvent> event6 =
-//            buildOverlayEvent(1000, "package1", OverlayStateChanged::ENTERED);
-//    std::shared_ptr<LogEvent> event7 =
-//            buildOverlayEvent(1000, "package2", OverlayStateChanged::EXITED);
-//    std::shared_ptr<LogEvent> event8 = buildPartialWakelockEvent(1005, "tag1", true);
-//    std::shared_ptr<LogEvent> event9 = buildPartialWakelockEvent(1005, "tag2", false);
-//
-//    mgr.onLogEvent(*event1);
-//    mgr.onLogEvent(*event2);
-//    mgr.onLogEvent(*event3);
-//    mgr.onLogEvent(*event5);
-//    mgr.onLogEvent(*event5);
-//    mgr.onLogEvent(*event6);
-//    mgr.onLogEvent(*event7);
-//    mgr.onLogEvent(*event8);
-//    mgr.onLogEvent(*event9);
-//
-//    // Query for UidProcessState of uid 1001
-//    HashableDimensionKey queryKey1;
-//    getUidProcessKey(1001, &queryKey1);
-//    EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_FOREGROUND_SERVICE,
-//              getStateInt(mgr, util::UID_PROCESS_STATE_CHANGED, queryKey1));
-//
-//    // Query for UidProcessState of uid 1004 - not in state map
-//    HashableDimensionKey queryKey2;
-//    getUidProcessKey(1004, &queryKey2);
-//    EXPECT_EQ(-1, getStateInt(mgr, util::UID_PROCESS_STATE_CHANGED,
-//                              queryKey2));  // default state
-//
-//    // Query for UidProcessState of uid 1001 - after change in state
-//    mgr.onLogEvent(*event4);
-//    EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_TOP,
-//              getStateInt(mgr, util::UID_PROCESS_STATE_CHANGED, queryKey1));
-//
-//    // Query for ScreenState
-//    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
-//              getStateInt(mgr, util::SCREEN_STATE_CHANGED, DEFAULT_DIMENSION_KEY));
-//
-//    // Query for OverlayState of uid 1000, package name "package2"
-//    HashableDimensionKey queryKey3;
-//    getOverlayKey(1000, "package2", &queryKey3);
-//    EXPECT_EQ(OverlayStateChanged::EXITED,
-//              getStateInt(mgr, util::OVERLAY_STATE_CHANGED, queryKey3));
-//
-//    // Query for WakelockState of uid 1005, tag 2
-//    HashableDimensionKey queryKey4;
-//    getPartialWakelockKey(1005, "tag2", &queryKey4);
-//    EXPECT_EQ(WakelockStateChanged::RELEASE,
-//              getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey4));
-//
-//    // Query for WakelockState of uid 1005, tag 1
-//    HashableDimensionKey queryKey5;
-//    getPartialWakelockKey(1005, "tag1", &queryKey5);
-//    EXPECT_EQ(WakelockStateChanged::ACQUIRE,
-//              getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey5));
-//}
+
+/**
+ * Test a binary state atom with nested counting.
+ *
+ * To go from an "ON" state to an "OFF" state with nested counting, we must see
+ * an equal number of "OFF" events as "ON" events.
+ * For example, ACQUIRE, ACQUIRE, RELEASE will still be in the ACQUIRE state.
+ * ACQUIRE, ACQUIRE, RELEASE, RELEASE will be in the RELEASE state.
+ */
+TEST(StateTrackerTest, TestStateChangeNested) {
+    sp<TestStateListener> listener = new TestStateListener();
+    StateManager mgr;
+    mgr.registerListener(util::WAKELOCK_STATE_CHANGED, listener);
+
+    std::vector<int> attributionUids1 = {1000};
+    std::vector<string> attributionTags1 = {"tag"};
+
+    std::unique_ptr<LogEvent> event1 = CreateAcquireWakelockEvent(timestampNs, attributionUids1,
+                                                                  attributionTags1, "wakelockName");
+    mgr.onLogEvent(*event1);
+    EXPECT_EQ(1, listener->updates.size());
+    EXPECT_EQ(1000, listener->updates[0].mKey.getValues()[0].mValue.int_value);
+    EXPECT_EQ(1, listener->updates[0].mState);
+    listener->updates.clear();
+
+    std::unique_ptr<LogEvent> event2 = CreateAcquireWakelockEvent(
+            timestampNs + 1000, attributionUids1, attributionTags1, "wakelockName");
+    mgr.onLogEvent(*event2);
+    EXPECT_EQ(0, listener->updates.size());
+
+    std::unique_ptr<LogEvent> event3 = CreateReleaseWakelockEvent(
+            timestampNs + 2000, attributionUids1, attributionTags1, "wakelockName");
+    mgr.onLogEvent(*event3);
+    EXPECT_EQ(0, listener->updates.size());
+
+    std::unique_ptr<LogEvent> event4 = CreateReleaseWakelockEvent(
+            timestampNs + 3000, attributionUids1, attributionTags1, "wakelockName");
+    mgr.onLogEvent(*event4);
+    EXPECT_EQ(1, listener->updates.size());
+    EXPECT_EQ(1000, listener->updates[0].mKey.getValues()[0].mValue.int_value);
+    EXPECT_EQ(0, listener->updates[0].mState);
+}
+
+/**
+ * Test a state atom with a reset state.
+ *
+ * If the reset state value is seen, every state in the map is set to the default
+ * state and every listener is notified.
+ */
+TEST(StateTrackerTest, TestStateChangeReset) {
+    sp<TestStateListener> listener = new TestStateListener();
+    StateManager mgr;
+    mgr.registerListener(util::BLE_SCAN_STATE_CHANGED, listener);
+
+    std::vector<int> attributionUids1 = {1000};
+    std::vector<string> attributionTags1 = {"tag1"};
+    std::vector<int> attributionUids2 = {2000};
+
+    std::unique_ptr<LogEvent> event1 =
+            CreateBleScanStateChangedEvent(timestampNs, attributionUids1, attributionTags1,
+                                           BleScanStateChanged::ON, false, false, false);
+    mgr.onLogEvent(*event1);
+    EXPECT_EQ(1, listener->updates.size());
+    EXPECT_EQ(1000, listener->updates[0].mKey.getValues()[0].mValue.int_value);
+    EXPECT_EQ(BleScanStateChanged::ON, listener->updates[0].mState);
+    listener->updates.clear();
+
+    std::unique_ptr<LogEvent> event2 =
+            CreateBleScanStateChangedEvent(timestampNs + 1000, attributionUids2, attributionTags1,
+                                           BleScanStateChanged::ON, false, false, false);
+    mgr.onLogEvent(*event2);
+    EXPECT_EQ(1, listener->updates.size());
+    EXPECT_EQ(2000, listener->updates[0].mKey.getValues()[0].mValue.int_value);
+    EXPECT_EQ(BleScanStateChanged::ON, listener->updates[0].mState);
+    listener->updates.clear();
+
+    std::unique_ptr<LogEvent> event3 =
+            CreateBleScanStateChangedEvent(timestampNs + 2000, attributionUids2, attributionTags1,
+                                           BleScanStateChanged::RESET, false, false, false);
+    mgr.onLogEvent(*event3);
+    EXPECT_EQ(2, listener->updates.size());
+    EXPECT_EQ(BleScanStateChanged::OFF, listener->updates[0].mState);
+    EXPECT_EQ(BleScanStateChanged::OFF, listener->updates[1].mState);
+}
+
+/**
+ * Test StateManager's onLogEvent and StateListener's onStateChanged correctly
+ * updates listener for states without primary keys.
+ */
+TEST(StateTrackerTest, TestStateChangeNoPrimaryFields) {
+    sp<TestStateListener> listener1 = new TestStateListener();
+    StateManager mgr;
+    mgr.registerListener(util::SCREEN_STATE_CHANGED, listener1);
+
+    // log event
+    std::unique_ptr<LogEvent> event = CreateScreenStateChangedEvent(
+            timestampNs, android::view::DisplayStateEnum::DISPLAY_STATE_ON);
+    mgr.onLogEvent(*event);
+
+    // check listener was updated
+    EXPECT_EQ(1, listener1->updates.size());
+    EXPECT_EQ(DEFAULT_DIMENSION_KEY, listener1->updates[0].mKey);
+    EXPECT_EQ(2, listener1->updates[0].mState);
+
+    // check StateTracker was updated by querying for state
+    HashableDimensionKey queryKey = DEFAULT_DIMENSION_KEY;
+    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
+              getStateInt(mgr, util::SCREEN_STATE_CHANGED, queryKey));
+}
+
+/**
+ * Test StateManager's onLogEvent and StateListener's onStateChanged correctly
+ * updates listener for states with one primary key.
+ */
+TEST(StateTrackerTest, TestStateChangeOnePrimaryField) {
+    sp<TestStateListener> listener1 = new TestStateListener();
+    StateManager mgr;
+    mgr.registerListener(util::UID_PROCESS_STATE_CHANGED, listener1);
+
+    // log event
+    std::unique_ptr<LogEvent> event = CreateUidProcessStateChangedEvent(
+            timestampNs, 1000 /*uid*/, android::app::ProcessStateEnum::PROCESS_STATE_TOP);
+    mgr.onLogEvent(*event);
+
+    // check listener was updated
+    EXPECT_EQ(1, listener1->updates.size());
+    EXPECT_EQ(1000, listener1->updates[0].mKey.getValues()[0].mValue.int_value);
+    EXPECT_EQ(1002, listener1->updates[0].mState);
+
+    // check StateTracker was updated by querying for state
+    HashableDimensionKey queryKey;
+    getUidProcessKey(1000 /* uid */, &queryKey);
+    EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_TOP,
+              getStateInt(mgr, util::UID_PROCESS_STATE_CHANGED, queryKey));
+}
+
+TEST(StateTrackerTest, TestStateChangePrimaryFieldAttrChain) {
+    sp<TestStateListener> listener1 = new TestStateListener();
+    StateManager mgr;
+    mgr.registerListener(util::WAKELOCK_STATE_CHANGED, listener1);
+
+    // Log event.
+    std::vector<int> attributionUids = {1001};
+    std::vector<string> attributionTags = {"tag1"};
+
+    std::unique_ptr<LogEvent> event = CreateAcquireWakelockEvent(timestampNs, attributionUids,
+                                                                 attributionTags, "wakelockName");
+    mgr.onLogEvent(*event);
+    EXPECT_EQ(1, mgr.getStateTrackersCount());
+    EXPECT_EQ(1, mgr.getListenersCount(util::WAKELOCK_STATE_CHANGED));
+
+    // Check listener was updated.
+    EXPECT_EQ(1, listener1->updates.size());
+    EXPECT_EQ(3, listener1->updates[0].mKey.getValues().size());
+    EXPECT_EQ(1001, listener1->updates[0].mKey.getValues()[0].mValue.int_value);
+    EXPECT_EQ(1, listener1->updates[0].mKey.getValues()[1].mValue.int_value);
+    EXPECT_EQ("wakelockName", listener1->updates[0].mKey.getValues()[2].mValue.str_value);
+    EXPECT_EQ(WakelockStateChanged::ACQUIRE, listener1->updates[0].mState);
+
+    // Check StateTracker was updated by querying for state.
+    HashableDimensionKey queryKey;
+    getPartialWakelockKey(1001 /* uid */, "wakelockName", &queryKey);
+    EXPECT_EQ(WakelockStateChanged::ACQUIRE,
+              getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey));
+
+    // No state stored for this query key.
+    HashableDimensionKey queryKey2;
+    getPartialWakelockKey(1002 /* uid */, "tag1", &queryKey2);
+    EXPECT_EQ(WakelockStateChanged::RELEASE,
+              getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey2));
+
+    // Partial query fails.
+    HashableDimensionKey queryKey3;
+    getPartialWakelockKey(1001 /* uid */, &queryKey3);
+    EXPECT_EQ(WakelockStateChanged::RELEASE,
+              getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey3));
+}
+
+/**
+ * Test StateManager's onLogEvent and StateListener's onStateChanged correctly
+ * updates listener for states with multiple primary keys.
+ */
+TEST(StateTrackerTest, TestStateChangeMultiplePrimaryFields) {
+    sp<TestStateListener> listener1 = new TestStateListener();
+    StateManager mgr;
+    mgr.registerListener(util::OVERLAY_STATE_CHANGED, listener1);
+
+    // log event
+    std::unique_ptr<LogEvent> event = CreateOverlayStateChangedEvent(
+            timestampNs, 1000 /* uid */, "package1", true /*using_alert_window*/,
+            OverlayStateChanged::ENTERED);
+    mgr.onLogEvent(*event);
+
+    // check listener was updated
+    EXPECT_EQ(1, listener1->updates.size());
+    EXPECT_EQ(1000, listener1->updates[0].mKey.getValues()[0].mValue.int_value);
+    EXPECT_EQ(1, listener1->updates[0].mState);
+
+    // check StateTracker was updated by querying for state
+    HashableDimensionKey queryKey;
+    getOverlayKey(1000 /* uid */, "package1", &queryKey);
+    EXPECT_EQ(OverlayStateChanged::ENTERED,
+              getStateInt(mgr, util::OVERLAY_STATE_CHANGED, queryKey));
+}
+
+/**
+ * Test StateManager's onLogEvent and StateListener's onStateChanged
+ * when there is an error extracting state from log event. Listener is not
+ * updated of state change.
+ */
+TEST(StateTrackerTest, TestStateChangeEventError) {
+    sp<TestStateListener> listener1 = new TestStateListener();
+    StateManager mgr;
+    mgr.registerListener(util::OVERLAY_STATE_CHANGED, listener1);
+
+    // log event
+    std::shared_ptr<LogEvent> event1 =
+            buildIncorrectOverlayEvent(1000 /* uid */, "package1", 1 /* state */);
+    std::shared_ptr<LogEvent> event2 = buildOverlayEventBadStateType(1001 /* uid */, "package2");
+
+    // check listener was updated
+    mgr.onLogEvent(*event1);
+    EXPECT_EQ(0, listener1->updates.size());
+    mgr.onLogEvent(*event2);
+    EXPECT_EQ(0, listener1->updates.size());
+}
+
+TEST(StateTrackerTest, TestStateQuery) {
+    sp<TestStateListener> listener1 = new TestStateListener();
+    sp<TestStateListener> listener2 = new TestStateListener();
+    sp<TestStateListener> listener3 = new TestStateListener();
+    sp<TestStateListener> listener4 = new TestStateListener();
+    StateManager mgr;
+    mgr.registerListener(util::SCREEN_STATE_CHANGED, listener1);
+    mgr.registerListener(util::UID_PROCESS_STATE_CHANGED, listener2);
+    mgr.registerListener(util::OVERLAY_STATE_CHANGED, listener3);
+    mgr.registerListener(util::WAKELOCK_STATE_CHANGED, listener4);
+
+    std::unique_ptr<LogEvent> event1 = CreateUidProcessStateChangedEvent(
+            timestampNs, 1000 /*uid*/,
+            android::app::ProcessStateEnum::PROCESS_STATE_TOP);  //  state value: 1002
+    std::unique_ptr<LogEvent> event2 = CreateUidProcessStateChangedEvent(
+            timestampNs + 1000, 1001 /*uid*/,
+            android::app::ProcessStateEnum::PROCESS_STATE_FOREGROUND_SERVICE);  //  state value:
+                                                                                //  1003
+    std::unique_ptr<LogEvent> event3 = CreateUidProcessStateChangedEvent(
+            timestampNs + 2000, 1002 /*uid*/,
+            android::app::ProcessStateEnum::PROCESS_STATE_PERSISTENT);  //  state value: 1000
+    std::unique_ptr<LogEvent> event4 = CreateUidProcessStateChangedEvent(
+            timestampNs + 3000, 1001 /*uid*/,
+            android::app::ProcessStateEnum::PROCESS_STATE_TOP);  //  state value: 1002
+    std::unique_ptr<LogEvent> event5 = CreateScreenStateChangedEvent(
+            timestampNs + 4000, android::view::DisplayStateEnum::DISPLAY_STATE_ON);
+    std::unique_ptr<LogEvent> event6 = CreateOverlayStateChangedEvent(
+            timestampNs + 5000, 1000 /*uid*/, "package1", true /*using_alert_window*/,
+            OverlayStateChanged::ENTERED);
+    std::unique_ptr<LogEvent> event7 = CreateOverlayStateChangedEvent(
+            timestampNs + 6000, 1000 /*uid*/, "package2", true /*using_alert_window*/,
+            OverlayStateChanged::EXITED);
+
+    std::vector<int> attributionUids = {1005};
+    std::vector<string> attributionTags = {"tag"};
+
+    std::unique_ptr<LogEvent> event8 = CreateAcquireWakelockEvent(
+            timestampNs + 7000, attributionUids, attributionTags, "wakelock1");
+    std::unique_ptr<LogEvent> event9 = CreateReleaseWakelockEvent(
+            timestampNs + 8000, attributionUids, attributionTags, "wakelock2");
+
+    mgr.onLogEvent(*event1);
+    mgr.onLogEvent(*event2);
+    mgr.onLogEvent(*event3);
+    mgr.onLogEvent(*event5);
+    mgr.onLogEvent(*event5);
+    mgr.onLogEvent(*event6);
+    mgr.onLogEvent(*event7);
+    mgr.onLogEvent(*event8);
+    mgr.onLogEvent(*event9);
+
+    // Query for UidProcessState of uid 1001
+    HashableDimensionKey queryKey1;
+    getUidProcessKey(1001, &queryKey1);
+    EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_FOREGROUND_SERVICE,
+              getStateInt(mgr, util::UID_PROCESS_STATE_CHANGED, queryKey1));
+
+    // Query for UidProcessState of uid 1004 - not in state map
+    HashableDimensionKey queryKey2;
+    getUidProcessKey(1004, &queryKey2);
+    EXPECT_EQ(-1, getStateInt(mgr, util::UID_PROCESS_STATE_CHANGED,
+                              queryKey2));  // default state
+
+    // Query for UidProcessState of uid 1001 - after change in state
+    mgr.onLogEvent(*event4);
+    EXPECT_EQ(android::app::ProcessStateEnum::PROCESS_STATE_TOP,
+              getStateInt(mgr, util::UID_PROCESS_STATE_CHANGED, queryKey1));
+
+    // Query for ScreenState
+    EXPECT_EQ(android::view::DisplayStateEnum::DISPLAY_STATE_ON,
+              getStateInt(mgr, util::SCREEN_STATE_CHANGED, DEFAULT_DIMENSION_KEY));
+
+    // Query for OverlayState of uid 1000, package name "package2"
+    HashableDimensionKey queryKey3;
+    getOverlayKey(1000, "package2", &queryKey3);
+    EXPECT_EQ(OverlayStateChanged::EXITED,
+              getStateInt(mgr, util::OVERLAY_STATE_CHANGED, queryKey3));
+
+    // Query for WakelockState of uid 1005, tag 2
+    HashableDimensionKey queryKey4;
+    getPartialWakelockKey(1005, "wakelock2", &queryKey4);
+    EXPECT_EQ(WakelockStateChanged::RELEASE,
+              getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey4));
+
+    // Query for WakelockState of uid 1005, tag 1
+    HashableDimensionKey queryKey5;
+    getPartialWakelockKey(1005, "wakelock1", &queryKey5);
+    EXPECT_EQ(WakelockStateChanged::ACQUIRE,
+              getStateInt(mgr, util::WAKELOCK_STATE_CHANGED, queryKey5));
+}
 
 }  // namespace statsd
 }  // namespace os
diff --git a/cmds/statsd/tests/statsd_test_util.cpp b/cmds/statsd/tests/statsd_test_util.cpp
index 050dbf8..8c8836b 100644
--- a/cmds/statsd/tests/statsd_test_util.cpp
+++ b/cmds/statsd/tests/statsd_test_util.cpp
@@ -428,7 +428,7 @@
 
     return logEvent;
 }
-//
+
 void CreateTwoValueLogEvent(LogEvent* logEvent, int atomId, int64_t eventTimeNs, int32_t value1,
                             int32_t value2) {
     AStatsEvent* statsEvent = AStatsEvent_obtain();
@@ -531,6 +531,18 @@
     return logEvent;
 }
 
+void CreateNoValuesLogEvent(LogEvent* logEvent, int atomId, int64_t eventTimeNs) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, atomId);
+    AStatsEvent_overwriteTimestamp(statsEvent, eventTimeNs);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+    logEvent->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
+}
+
 std::unique_ptr<LogEvent> CreateScreenStateChangedEvent(
         uint64_t timestampNs, const android::view::DisplayStateEnum state) {
     AStatsEvent* statsEvent = AStatsEvent_obtain();
@@ -600,32 +612,51 @@
     return logEvent;
 }
 
-//std::unique_ptr<LogEvent> CreateScheduledJobStateChangedEvent(
-//        const std::vector<AttributionNodeInternal>& attributions, const string& jobName,
-//        const ScheduledJobStateChanged::State state, uint64_t timestampNs) {
-//    auto event = std::make_unique<LogEvent>(util::SCHEDULED_JOB_STATE_CHANGED, timestampNs);
-//    event->write(attributions);
-//    event->write(jobName);
-//    event->write(state);
-//    event->init();
-//    return event;
-//}
-//
-//std::unique_ptr<LogEvent> CreateStartScheduledJobEvent(
-//    const std::vector<AttributionNodeInternal>& attributions,
-//    const string& name, uint64_t timestampNs) {
-//    return CreateScheduledJobStateChangedEvent(
-//            attributions, name, ScheduledJobStateChanged::STARTED, timestampNs);
-//}
-//
-//// Create log event when scheduled job finishes.
-//std::unique_ptr<LogEvent> CreateFinishScheduledJobEvent(
-//    const std::vector<AttributionNodeInternal>& attributions,
-//    const string& name, uint64_t timestampNs) {
-//    return CreateScheduledJobStateChangedEvent(
-//            attributions, name, ScheduledJobStateChanged::FINISHED, timestampNs);
-//}
-//
+std::unique_ptr<LogEvent> CreateScheduledJobStateChangedEvent(
+        const vector<int>& attributionUids, const vector<string>& attributionTags,
+        const string& jobName, const ScheduledJobStateChanged::State state, uint64_t timestampNs) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, util::SCHEDULED_JOB_STATE_CHANGED);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
+
+    vector<const char*> cTags(attributionTags.size());
+    for (int i = 0; i < cTags.size(); i++) {
+        cTags[i] = attributionTags[i].c_str();
+    }
+
+    AStatsEvent_writeAttributionChain(statsEvent,
+                                      reinterpret_cast<const uint32_t*>(attributionUids.data()),
+                                      cTags.data(), attributionUids.size());
+    AStatsEvent_writeString(statsEvent, jobName.c_str());
+    AStatsEvent_writeInt32(statsEvent, state);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+
+    std::unique_ptr<LogEvent> logEvent = std::make_unique<LogEvent>(/*uid=*/0, /*pid=*/0);
+    logEvent->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
+    return logEvent;
+}
+
+std::unique_ptr<LogEvent> CreateStartScheduledJobEvent(uint64_t timestampNs,
+                                                       const vector<int>& attributionUids,
+                                                       const vector<string>& attributionTags,
+                                                       const string& jobName) {
+    return CreateScheduledJobStateChangedEvent(attributionUids, attributionTags, jobName,
+                                               ScheduledJobStateChanged::STARTED, timestampNs);
+}
+
+// Create log event when scheduled job finishes.
+std::unique_ptr<LogEvent> CreateFinishScheduledJobEvent(uint64_t timestampNs,
+                                                        const vector<int>& attributionUids,
+                                                        const vector<string>& attributionTags,
+                                                        const string& jobName) {
+    return CreateScheduledJobStateChangedEvent(attributionUids, attributionTags, jobName,
+                                               ScheduledJobStateChanged::FINISHED, timestampNs);
+}
+
 std::unique_ptr<LogEvent> CreateWakelockStateChangedEvent(uint64_t timestampNs,
                                                           const vector<int>& attributionUids,
                                                           const vector<string>& attributionTags,
@@ -833,6 +864,62 @@
     return logEvent;
 }
 
+std::unique_ptr<LogEvent> CreateBleScanStateChangedEvent(uint64_t timestampNs,
+                                                         const vector<int>& attributionUids,
+                                                         const vector<string>& attributionTags,
+                                                         const BleScanStateChanged::State state,
+                                                         const bool filtered, const bool firstMatch,
+                                                         const bool opportunistic) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, util::BLE_SCAN_STATE_CHANGED);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
+
+    vector<const char*> cTags(attributionTags.size());
+    for (int i = 0; i < cTags.size(); i++) {
+        cTags[i] = attributionTags[i].c_str();
+    }
+
+    AStatsEvent_writeAttributionChain(statsEvent,
+                                      reinterpret_cast<const uint32_t*>(attributionUids.data()),
+                                      cTags.data(), attributionUids.size());
+    AStatsEvent_writeInt32(statsEvent, state);
+    AStatsEvent_writeInt32(statsEvent, filtered);       // filtered
+    AStatsEvent_writeInt32(statsEvent, firstMatch);     // first match
+    AStatsEvent_writeInt32(statsEvent, opportunistic);  // opportunistic
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+
+    std::unique_ptr<LogEvent> logEvent = std::make_unique<LogEvent>(/*uid=*/0, /*pid=*/0);
+    logEvent->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
+    return logEvent;
+}
+
+std::unique_ptr<LogEvent> CreateOverlayStateChangedEvent(int64_t timestampNs, const int32_t uid,
+                                                         const string& packageName,
+                                                         const bool usingAlertWindow,
+                                                         const OverlayStateChanged::State state) {
+    AStatsEvent* statsEvent = AStatsEvent_obtain();
+    AStatsEvent_setAtomId(statsEvent, util::OVERLAY_STATE_CHANGED);
+    AStatsEvent_overwriteTimestamp(statsEvent, timestampNs);
+
+    AStatsEvent_writeInt32(statsEvent, uid);
+    AStatsEvent_writeString(statsEvent, packageName.c_str());
+    AStatsEvent_writeInt32(statsEvent, usingAlertWindow);
+    AStatsEvent_writeInt32(statsEvent, state);
+    AStatsEvent_build(statsEvent);
+
+    size_t size;
+    uint8_t* buf = AStatsEvent_getBuffer(statsEvent, &size);
+
+    std::unique_ptr<LogEvent> logEvent = std::make_unique<LogEvent>(/*uid=*/0, /*pid=*/0);
+    logEvent->parseBuffer(buf, size);
+    AStatsEvent_release(statsEvent);
+    return logEvent;
+}
+
 sp<StatsLogProcessor> CreateStatsLogProcessor(const int64_t timeBaseNs, const int64_t currentTimeNs,
                                               const StatsdConfig& config, const ConfigKey& key,
                                               const shared_ptr<IPullAtomCallback>& puller,
diff --git a/cmds/statsd/tests/statsd_test_util.h b/cmds/statsd/tests/statsd_test_util.h
index ead041c..7c01755 100644
--- a/cmds/statsd/tests/statsd_test_util.h
+++ b/cmds/statsd/tests/statsd_test_util.h
@@ -187,6 +187,8 @@
 
 std::shared_ptr<LogEvent> CreateNoValuesLogEvent(int atomId, int64_t eventTimeNs);
 
+void CreateNoValuesLogEvent(LogEvent* logEvent, int atomId, int64_t eventTimeNs);
+
 // Create log event for screen state changed.
 std::unique_ptr<LogEvent> CreateScreenStateChangedEvent(
         uint64_t timestampNs, const android::view::DisplayStateEnum state);
@@ -195,14 +197,16 @@
 std::unique_ptr<LogEvent> CreateScreenBrightnessChangedEvent(uint64_t timestampNs, int level);
 
 // Create log event when scheduled job starts.
-std::unique_ptr<LogEvent> CreateStartScheduledJobEvent(
-    const std::vector<AttributionNodeInternal>& attributions,
-    const string& name, uint64_t timestampNs);
+std::unique_ptr<LogEvent> CreateStartScheduledJobEvent(uint64_t timestampNs,
+                                                       const vector<int>& attributionUids,
+                                                       const vector<string>& attributionTags,
+                                                       const string& jobName);
 
 // Create log event when scheduled job finishes.
-std::unique_ptr<LogEvent> CreateFinishScheduledJobEvent(
-    const std::vector<AttributionNodeInternal>& attributions,
-    const string& name, uint64_t timestampNs);
+std::unique_ptr<LogEvent> CreateFinishScheduledJobEvent(uint64_t timestampNs,
+                                                        const vector<int>& attributionUids,
+                                                        const vector<string>& attributionTags,
+                                                        const string& jobName);
 
 // Create log event when battery saver starts.
 std::unique_ptr<LogEvent> CreateBatterySaverOnEvent(uint64_t timestampNs);
@@ -247,6 +251,18 @@
 std::unique_ptr<LogEvent> CreateUidProcessStateChangedEvent(
         uint64_t timestampNs, int uid, const android::app::ProcessStateEnum state);
 
+std::unique_ptr<LogEvent> CreateBleScanStateChangedEvent(uint64_t timestampNs,
+                                                         const vector<int>& attributionUids,
+                                                         const vector<string>& attributionTags,
+                                                         const BleScanStateChanged::State state,
+                                                         const bool filtered, const bool firstMatch,
+                                                         const bool opportunistic);
+
+std::unique_ptr<LogEvent> CreateOverlayStateChangedEvent(int64_t timestampNs, const int32_t uid,
+                                                         const string& packageName,
+                                                         const bool usingAlertWindow,
+                                                         const OverlayStateChanged::State state);
+
 // Helper function to create an AttributionNodeInternal proto.
 AttributionNodeInternal CreateAttribution(const int& uid, const string& tag);
 
diff --git a/cmds/statsd/tools/localtools/src/com/android/statsd/shelltools/testdrive/TestDrive.java b/cmds/statsd/tools/localtools/src/com/android/statsd/shelltools/testdrive/TestDrive.java
index c97f035..75518a3 100644
--- a/cmds/statsd/tools/localtools/src/com/android/statsd/shelltools/testdrive/TestDrive.java
+++ b/cmds/statsd/tools/localtools/src/com/android/statsd/shelltools/testdrive/TestDrive.java
@@ -19,6 +19,7 @@
 import com.android.internal.os.StatsdConfigProto.EventMetric;
 import com.android.internal.os.StatsdConfigProto.FieldFilter;
 import com.android.internal.os.StatsdConfigProto.GaugeMetric;
+import com.android.internal.os.StatsdConfigProto.PullAtomPackages;
 import com.android.internal.os.StatsdConfigProto.SimpleAtomMatcher;
 import com.android.internal.os.StatsdConfigProto.StatsdConfig;
 import com.android.internal.os.StatsdConfigProto.TimeUnit;
@@ -33,6 +34,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
@@ -49,19 +51,22 @@
     private static final int VENDOR_PULLED_ATOM_START_TAG = 150000;
     private static final long CONFIG_ID = 54321;
     private static final String[] ALLOWED_LOG_SOURCES = {
-        "AID_GRAPHICS",
-        "AID_INCIDENTD",
-        "AID_STATSD",
-        "AID_RADIO",
-        "com.android.systemui",
-        "com.android.vending",
-        "AID_SYSTEM",
-        "AID_ROOT",
-        "AID_BLUETOOTH",
-        "AID_LMKD",
-        "com.android.managedprovisioning",
-        "AID_MEDIA",
-        "AID_NETWORK_STACK"
+            "AID_GRAPHICS",
+            "AID_INCIDENTD",
+            "AID_STATSD",
+            "AID_RADIO",
+            "com.android.systemui",
+            "com.android.vending",
+            "AID_SYSTEM",
+            "AID_ROOT",
+            "AID_BLUETOOTH",
+            "AID_LMKD",
+            "com.android.managedprovisioning",
+            "AID_MEDIA",
+            "AID_NETWORK_STACK"
+    };
+    private static final String[] DEFAULT_PULL_SOURCES = {
+            "AID_SYSTEM",
     };
     private static final Logger LOGGER = Logger.getLogger(TestDrive.class.getName());
 
@@ -158,6 +163,16 @@
         StatsdConfig.Builder builder = StatsdConfig.newBuilder();
         builder
             .addAllAllowedLogSource(allowedSources)
+            .addAllDefaultPullPackages(Arrays.asList(DEFAULT_PULL_SOURCES))
+            .addPullAtomPackages(PullAtomPackages.newBuilder()
+                    .setAtomId(Atom.GPU_STATS_GLOBAL_INFO_FIELD_NUMBER)
+                    .addPackages("AID_GPU_SERVICE"))
+            .addPullAtomPackages(PullAtomPackages.newBuilder()
+                    .setAtomId(Atom.GPU_STATS_APP_INFO_FIELD_NUMBER)
+                    .addPackages("AID_GPU_SERVICE"))
+            .addPullAtomPackages(PullAtomPackages.newBuilder()
+                    .setAtomId(Atom.TRAIN_INFO_FIELD_NUMBER)
+                    .addPackages("AID_STATSD"))
             .setHashStringsInMetricReport(false);
 
         if (hasPulledAtom(atomIds)) {
diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt
index 1d693e3..23a68c7 100644
--- a/config/boot-image-profile.txt
+++ b/config/boot-image-profile.txt
@@ -15,7 +15,25 @@
 #
 HSPLandroid/accessibilityservice/AccessibilityServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/accessibilityservice/AccessibilityServiceInfo;
 HSPLandroid/accessibilityservice/AccessibilityServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo;-><init>()V
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo;-><init>(Landroid/content/pm/ResolveInfo;Landroid/content/Context;)V
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->access$000(Landroid/accessibilityservice/AccessibilityServiceInfo;Landroid/os/Parcel;)V
+HPLandroid/accessibilityservice/AccessibilityServiceInfo;->equals(Ljava/lang/Object;)Z
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->getCapabilities()I
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->getComponentName()Landroid/content/ComponentName;
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->getId()Ljava/lang/String;
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->getResolveInfo()Landroid/content/pm/ResolveInfo;
 HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->initFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->isDirectBootAware()Z
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/accounts/AbstractAccountAuthenticator$Transport;-><init>(Landroid/accounts/AbstractAccountAuthenticator;)V
+HSPLandroid/accounts/AbstractAccountAuthenticator$Transport;-><init>(Landroid/accounts/AbstractAccountAuthenticator;Landroid/accounts/AbstractAccountAuthenticator$1;)V
+HSPLandroid/accounts/AbstractAccountAuthenticator$Transport;->getAuthToken(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/accounts/AbstractAccountAuthenticator$Transport;->hasFeatures(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;[Ljava/lang/String;)V
+HSPLandroid/accounts/AbstractAccountAuthenticator;-><init>(Landroid/content/Context;)V
+HSPLandroid/accounts/AbstractAccountAuthenticator;->access$000(Landroid/accounts/AbstractAccountAuthenticator;)V
+HSPLandroid/accounts/AbstractAccountAuthenticator;->checkBinderPermission()V
+HSPLandroid/accounts/AbstractAccountAuthenticator;->getIBinder()Landroid/os/IBinder;
 HSPLandroid/accounts/Account$1;->createFromParcel(Landroid/os/Parcel;)Landroid/accounts/Account;
 HSPLandroid/accounts/Account$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/accounts/Account$1;->newArray(I)[Landroid/accounts/Account;
@@ -24,12 +42,28 @@
 HSPLandroid/accounts/Account;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/accounts/Account;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/accounts/Account;->equals(Ljava/lang/Object;)Z
+HPLandroid/accounts/Account;->getAccessId()Ljava/lang/String;
 HSPLandroid/accounts/Account;->hashCode()I
 HSPLandroid/accounts/Account;->toString()Ljava/lang/String;
 HSPLandroid/accounts/Account;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/accounts/AccountAndUser;-><init>(Landroid/accounts/Account;I)V
+HSPLandroid/accounts/AccountAndUser;->equals(Ljava/lang/Object;)Z
+HSPLandroid/accounts/AccountAndUser;->hashCode()I
+HPLandroid/accounts/AccountAndUser;->toString()Ljava/lang/String;
+HSPLandroid/accounts/AccountAuthenticatorResponse$1;-><init>()V
+HSPLandroid/accounts/AccountAuthenticatorResponse;-><clinit>()V
+HSPLandroid/accounts/AccountAuthenticatorResponse;-><init>(Landroid/accounts/IAccountAuthenticatorResponse;)V
 HSPLandroid/accounts/AccountManager$16;-><init>(Landroid/accounts/AccountManager;Landroid/accounts/OnAccountsUpdateListener;[Landroid/accounts/Account;)V
 HSPLandroid/accounts/AccountManager$16;->run()V
 HSPLandroid/accounts/AccountManager$18;-><init>(Landroid/accounts/AccountManager;)V
+HSPLandroid/accounts/AccountManager$2;-><init>(Landroid/accounts/AccountManager;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;Landroid/accounts/Account;[Ljava/lang/String;)V
+HSPLandroid/accounts/AccountManager$2;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Boolean;
+HSPLandroid/accounts/AccountManager$2;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Object;
+HSPLandroid/accounts/AccountManager$2;->doWork()V
+HSPLandroid/accounts/AccountManager$3;-><init>(Landroid/accounts/AccountManager;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;Ljava/lang/String;[Ljava/lang/String;)V
+HSPLandroid/accounts/AccountManager$3;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Object;
+HSPLandroid/accounts/AccountManager$3;->bundleToResult(Landroid/os/Bundle;)[Landroid/accounts/Account;
+HSPLandroid/accounts/AccountManager$3;->doWork()V
 HSPLandroid/accounts/AccountManager$8;-><init>(Landroid/accounts/AccountManager;Landroid/app/Activity;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;Landroid/accounts/Account;Ljava/lang/String;ZLandroid/os/Bundle;)V
 HSPLandroid/accounts/AccountManager$8;->doWork()V
 HSPLandroid/accounts/AccountManager$AmsTask$1;-><init>(Landroid/accounts/AccountManager;)V
@@ -40,11 +74,26 @@
 HSPLandroid/accounts/AccountManager$AmsTask;->done()V
 HSPLandroid/accounts/AccountManager$AmsTask;->getResult()Landroid/os/Bundle;
 HSPLandroid/accounts/AccountManager$AmsTask;->getResult()Ljava/lang/Object;
+HSPLandroid/accounts/AccountManager$AmsTask;->getResult(JLjava/util/concurrent/TimeUnit;)Landroid/os/Bundle;
+HSPLandroid/accounts/AccountManager$AmsTask;->getResult(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
 HSPLandroid/accounts/AccountManager$AmsTask;->internalGetResult(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Landroid/os/Bundle;
 HSPLandroid/accounts/AccountManager$AmsTask;->set(Landroid/os/Bundle;)V
 HSPLandroid/accounts/AccountManager$AmsTask;->start()Landroid/accounts/AccountManagerFuture;
+HSPLandroid/accounts/AccountManager$BaseFutureTask$1;-><init>(Landroid/accounts/AccountManager;)V
+HSPLandroid/accounts/AccountManager$BaseFutureTask$Response;-><init>(Landroid/accounts/AccountManager$BaseFutureTask;)V
+HSPLandroid/accounts/AccountManager$BaseFutureTask$Response;->onResult(Landroid/os/Bundle;)V
+HSPLandroid/accounts/AccountManager$BaseFutureTask;-><init>(Landroid/accounts/AccountManager;Landroid/os/Handler;)V
+HSPLandroid/accounts/AccountManager$BaseFutureTask;->access$1000(Landroid/accounts/AccountManager$BaseFutureTask;Ljava/lang/Object;)V
+HSPLandroid/accounts/AccountManager$BaseFutureTask;->startTask()V
+HSPLandroid/accounts/AccountManager$Future2Task;-><init>(Landroid/accounts/AccountManager;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;)V
+HSPLandroid/accounts/AccountManager$Future2Task;->done()V
+HSPLandroid/accounts/AccountManager$Future2Task;->getResult()Ljava/lang/Object;
+HSPLandroid/accounts/AccountManager$Future2Task;->getResult(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
+HSPLandroid/accounts/AccountManager$Future2Task;->internalGetResult(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Ljava/lang/Object;
+HSPLandroid/accounts/AccountManager$Future2Task;->start()Landroid/accounts/AccountManager$Future2Task;
 HSPLandroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
 HSPLandroid/accounts/AccountManager;->access$000(Landroid/accounts/AccountManager;)Landroid/accounts/IAccountManager;
+HSPLandroid/accounts/AccountManager;->access$100(Landroid/accounts/AccountManager;)Landroid/content/Context;
 HSPLandroid/accounts/AccountManager;->access$200(Landroid/accounts/AccountManager;)Ljava/util/HashMap;
 HSPLandroid/accounts/AccountManager;->access$300(Landroid/accounts/AccountManager;)Ljava/util/HashMap;
 HSPLandroid/accounts/AccountManager;->access$500(Landroid/accounts/AccountManager;)V
@@ -56,18 +105,71 @@
 HSPLandroid/accounts/AccountManager;->getAccounts()[Landroid/accounts/Account;
 HSPLandroid/accounts/AccountManager;->getAccountsAsUser(I)[Landroid/accounts/Account;
 HSPLandroid/accounts/AccountManager;->getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
+HSPLandroid/accounts/AccountManager;->getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
 HSPLandroid/accounts/AccountManager;->getAccountsByTypeAsUser(Ljava/lang/String;Landroid/os/UserHandle;)[Landroid/accounts/Account;
+HSPLandroid/accounts/AccountManager;->getAccountsByTypeForPackage(Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
 HSPLandroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
 HSPLandroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
+HSPLandroid/accounts/AccountManager;->getAuthenticatorTypes()[Landroid/accounts/AuthenticatorDescription;
+HSPLandroid/accounts/AccountManager;->getAuthenticatorTypesAsUser(I)[Landroid/accounts/AuthenticatorDescription;
+HSPLandroid/accounts/AccountManager;->getPassword(Landroid/accounts/Account;)Ljava/lang/String;
+HSPLandroid/accounts/AccountManager;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/accounts/AccountManager;->hasAccountAccess(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/UserHandle;)Z
+HSPLandroid/accounts/AccountManager;->hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
+HSPLandroid/accounts/AccountManager;->invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/accounts/AccountManager;->peekAuthToken(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/accounts/AccountManager;->postToHandler(Landroid/os/Handler;Landroid/accounts/OnAccountsUpdateListener;[Landroid/accounts/Account;)V
+HSPLandroid/accounts/AccountManager;->setAuthToken(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/accounts/AccountManager;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/accounts/AccountManagerInternal;-><init>()V
+HSPLandroid/accounts/AuthenticatorDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/accounts/AuthenticatorDescription;
+HSPLandroid/accounts/AuthenticatorDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/accounts/AuthenticatorDescription$1;->newArray(I)[Landroid/accounts/AuthenticatorDescription;
+HSPLandroid/accounts/AuthenticatorDescription$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/accounts/AuthenticatorDescription;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/accounts/AuthenticatorDescription;-><init>(Landroid/os/Parcel;Landroid/accounts/AuthenticatorDescription$1;)V
+HSPLandroid/accounts/AuthenticatorDescription;-><init>(Ljava/lang/String;)V
+HSPLandroid/accounts/AuthenticatorDescription;-><init>(Ljava/lang/String;Ljava/lang/String;IIIIZ)V
+HSPLandroid/accounts/AuthenticatorDescription;->equals(Ljava/lang/Object;)Z
+HSPLandroid/accounts/AuthenticatorDescription;->hashCode()I
+HSPLandroid/accounts/AuthenticatorDescription;->newKey(Ljava/lang/String;)Landroid/accounts/AuthenticatorDescription;
+HPLandroid/accounts/AuthenticatorDescription;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/accounts/IAccountAuthenticator$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/accounts/IAccountAuthenticator$Stub$Proxy;->getAuthToken(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+HPLandroid/accounts/IAccountAuthenticator$Stub$Proxy;->hasFeatures(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;[Ljava/lang/String;)V
+HSPLandroid/accounts/IAccountAuthenticator$Stub;-><init>()V
+HSPLandroid/accounts/IAccountAuthenticator$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/accounts/IAccountAuthenticator$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountAuthenticator;
+HSPLandroid/accounts/IAccountAuthenticator$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy;->onResult(Landroid/os/Bundle;)V
+HPLandroid/accounts/IAccountAuthenticatorResponse$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/accounts/IAccountAuthenticatorResponse$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountAuthenticatorResponse;
+HPLandroid/accounts/IAccountAuthenticatorResponse$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/accounts/IAccountManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAccountsAsUser(Ljava/lang/String;ILjava/lang/String;)[Landroid/accounts/Account;
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAccountsByFeatures(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAccountsByTypeForPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
 HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAuthToken(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;ZZLandroid/os/Bundle;)V
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAuthenticatorTypes(I)[Landroid/accounts/AuthenticatorDescription;
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getPassword(Landroid/accounts/Account;)Ljava/lang/String;
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->hasFeatures(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;[Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/accounts/IAccountManager$Stub$Proxy;->onAccountAccessed(Ljava/lang/String;)V
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->peekAuthToken(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/accounts/IAccountManager$Stub$Proxy;->registerAccountListener([Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->setAuthToken(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/accounts/IAccountManager$Stub;-><init>()V
 HSPLandroid/accounts/IAccountManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountManager;
+HPLandroid/accounts/IAccountManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/accounts/IAccountManagerResponse$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/accounts/IAccountManagerResponse$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/accounts/IAccountManagerResponse$Stub$Proxy;->onResult(Landroid/os/Bundle;)V
 HSPLandroid/accounts/IAccountManagerResponse$Stub;-><init>()V
 HSPLandroid/accounts/IAccountManagerResponse$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/accounts/IAccountManagerResponse$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountManagerResponse;
 HSPLandroid/accounts/IAccountManagerResponse$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/animation/AnimationHandler$1;-><init>(Landroid/animation/AnimationHandler;)V
 HSPLandroid/animation/AnimationHandler$1;->doFrame(J)V
@@ -84,11 +186,14 @@
 HSPLandroid/animation/AnimationHandler;->cleanUpList()V
 HSPLandroid/animation/AnimationHandler;->doAnimationFrame(J)V
 HSPLandroid/animation/AnimationHandler;->getAnimationCount()I
+HSPLandroid/animation/AnimationHandler;->getCallbackSize()I
 HSPLandroid/animation/AnimationHandler;->getInstance()Landroid/animation/AnimationHandler;
 HSPLandroid/animation/AnimationHandler;->getProvider()Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;
 HSPLandroid/animation/AnimationHandler;->isCallbackDue(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)Z
 HSPLandroid/animation/AnimationHandler;->removeCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;)V
+HSPLandroid/animation/AnimationHandler;->setProvider(Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;)V
 HSPLandroid/animation/Animator$AnimatorConstantState;-><init>(Landroid/animation/Animator;)V
+HSPLandroid/animation/Animator$AnimatorConstantState;->getChangingConfigurations()I
 HSPLandroid/animation/Animator$AnimatorConstantState;->newInstance()Landroid/animation/Animator;
 HSPLandroid/animation/Animator$AnimatorConstantState;->newInstance()Ljava/lang/Object;
 HSPLandroid/animation/Animator$AnimatorListener;->onAnimationEnd(Landroid/animation/Animator;Z)V
@@ -96,19 +201,29 @@
 HSPLandroid/animation/Animator;-><init>()V
 HSPLandroid/animation/Animator;->access$002(Landroid/animation/Animator;Landroid/animation/Animator$AnimatorConstantState;)Landroid/animation/Animator$AnimatorConstantState;
 HSPLandroid/animation/Animator;->addListener(Landroid/animation/Animator$AnimatorListener;)V
+HSPLandroid/animation/Animator;->addPauseListener(Landroid/animation/Animator$AnimatorPauseListener;)V
 HSPLandroid/animation/Animator;->appendChangingConfigurations(I)V
 HSPLandroid/animation/Animator;->clone()Landroid/animation/Animator;
 HSPLandroid/animation/Animator;->createConstantState()Landroid/content/res/ConstantState;
 HSPLandroid/animation/Animator;->getChangingConfigurations()I
 HSPLandroid/animation/Animator;->getListeners()Ljava/util/ArrayList;
+HSPLandroid/animation/Animator;->isPaused()Z
+HSPLandroid/animation/Animator;->pause()V
+HSPLandroid/animation/Animator;->removeAllListeners()V
 HSPLandroid/animation/Animator;->removeListener(Landroid/animation/Animator$AnimatorListener;)V
+HSPLandroid/animation/Animator;->resume()V
 HSPLandroid/animation/Animator;->setAllowRunningAsynchronously(Z)V
+HSPLandroid/animation/AnimatorInflater$PathDataEvaluator;-><init>()V
+HSPLandroid/animation/AnimatorInflater$PathDataEvaluator;-><init>(Landroid/animation/AnimatorInflater$1;)V
+HSPLandroid/animation/AnimatorInflater$PathDataEvaluator;->evaluate(FLandroid/util/PathParser$PathData;Landroid/util/PathParser$PathData;)Landroid/util/PathParser$PathData;
+HSPLandroid/animation/AnimatorInflater$PathDataEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/animation/AnimatorInflater;->createAnimatorFromXml(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;F)Landroid/animation/Animator;
 HSPLandroid/animation/AnimatorInflater;->createAnimatorFromXml(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/animation/AnimatorSet;IF)Landroid/animation/Animator;
 HSPLandroid/animation/AnimatorInflater;->createStateListAnimatorFromXml(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/animation/StateListAnimator;
 HSPLandroid/animation/AnimatorInflater;->getChangingConfigs(Landroid/content/res/Resources;I)I
 HSPLandroid/animation/AnimatorInflater;->getPVH(Landroid/content/res/TypedArray;IIILjava/lang/String;)Landroid/animation/PropertyValuesHolder;
 HSPLandroid/animation/AnimatorInflater;->inferValueTypeFromValues(Landroid/content/res/TypedArray;II)I
+HSPLandroid/animation/AnimatorInflater;->isColorType(I)Z
 HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/Context;I)Landroid/animation/Animator;
 HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;I)Landroid/animation/Animator;
 HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;IF)Landroid/animation/Animator;
@@ -131,6 +246,7 @@
 HSPLandroid/animation/AnimatorSet$AnimationEvent;-><init>(Landroid/animation/AnimatorSet$Node;I)V
 HSPLandroid/animation/AnimatorSet$AnimationEvent;->getTime()J
 HSPLandroid/animation/AnimatorSet$Builder;-><init>(Landroid/animation/AnimatorSet;Landroid/animation/Animator;)V
+HSPLandroid/animation/AnimatorSet$Builder;->after(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;
 HSPLandroid/animation/AnimatorSet$Builder;->before(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;
 HSPLandroid/animation/AnimatorSet$Builder;->with(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;
 HSPLandroid/animation/AnimatorSet$Node;-><init>(Landroid/animation/Animator;)V
@@ -141,11 +257,15 @@
 HSPLandroid/animation/AnimatorSet$Node;->clone()Landroid/animation/AnimatorSet$Node;
 HSPLandroid/animation/AnimatorSet$SeekState;-><init>(Landroid/animation/AnimatorSet;)V
 HSPLandroid/animation/AnimatorSet$SeekState;-><init>(Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet$1;)V
+HSPLandroid/animation/AnimatorSet$SeekState;->getPlayTime()J
 HSPLandroid/animation/AnimatorSet$SeekState;->getPlayTimeNormalized()J
 HSPLandroid/animation/AnimatorSet$SeekState;->isActive()Z
 HSPLandroid/animation/AnimatorSet$SeekState;->reset()V
+HSPLandroid/animation/AnimatorSet$SeekState;->setPlayTime(JZ)V
+HSPLandroid/animation/AnimatorSet$SeekState;->updateSeekDirection(Z)V
 HSPLandroid/animation/AnimatorSet;-><init>()V
 HSPLandroid/animation/AnimatorSet;->access$100(Landroid/animation/AnimatorSet;)Landroid/util/ArrayMap;
+HSPLandroid/animation/AnimatorSet;->access$200(Landroid/animation/AnimatorSet;)J
 HSPLandroid/animation/AnimatorSet;->access$300(Landroid/animation/AnimatorSet;)Z
 HSPLandroid/animation/AnimatorSet;->access$402(Landroid/animation/AnimatorSet;Z)Z
 HSPLandroid/animation/AnimatorSet;->access$500(Landroid/animation/AnimatorSet;Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Node;
@@ -171,8 +291,10 @@
 HSPLandroid/animation/AnimatorSet;->initAnimation()V
 HSPLandroid/animation/AnimatorSet;->isEmptySet(Landroid/animation/AnimatorSet;)Z
 HSPLandroid/animation/AnimatorSet;->isInitialized()Z
+HSPLandroid/animation/AnimatorSet;->isRunning()Z
 HSPLandroid/animation/AnimatorSet;->isStarted()Z
 HSPLandroid/animation/AnimatorSet;->play(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;
+HSPLandroid/animation/AnimatorSet;->playSequentially(Ljava/util/List;)V
 HSPLandroid/animation/AnimatorSet;->playSequentially([Landroid/animation/Animator;)V
 HSPLandroid/animation/AnimatorSet;->playTogether(Ljava/util/Collection;)V
 HSPLandroid/animation/AnimatorSet;->playTogether([Landroid/animation/Animator;)V
@@ -180,11 +302,14 @@
 HSPLandroid/animation/AnimatorSet;->pulseFrame(Landroid/animation/AnimatorSet$Node;J)V
 HSPLandroid/animation/AnimatorSet;->removeAnimationCallback()V
 HSPLandroid/animation/AnimatorSet;->removeDummyListener()V
+HSPLandroid/animation/AnimatorSet;->setCurrentPlayTime(J)V
+HSPLandroid/animation/AnimatorSet;->setDuration(J)Landroid/animation/Animator;
 HSPLandroid/animation/AnimatorSet;->setDuration(J)Landroid/animation/AnimatorSet;
 HSPLandroid/animation/AnimatorSet;->setInterpolator(Landroid/animation/TimeInterpolator;)V
 HSPLandroid/animation/AnimatorSet;->setStartDelay(J)V
 HSPLandroid/animation/AnimatorSet;->setTarget(Ljava/lang/Object;)V
 HSPLandroid/animation/AnimatorSet;->shouldPlayTogether()Z
+HSPLandroid/animation/AnimatorSet;->skipToEndValue(Z)V
 HSPLandroid/animation/AnimatorSet;->sortAnimationEvents()V
 HSPLandroid/animation/AnimatorSet;->start()V
 HSPLandroid/animation/AnimatorSet;->start(ZZ)V
@@ -210,6 +335,7 @@
 HSPLandroid/animation/Keyframe$FloatKeyframe;->clone()Landroid/animation/Keyframe;
 HSPLandroid/animation/Keyframe$FloatKeyframe;->getFloatValue()F
 HSPLandroid/animation/Keyframe$FloatKeyframe;->setValue(Ljava/lang/Object;)V
+HSPLandroid/animation/Keyframe$IntKeyframe;-><init>(F)V
 HSPLandroid/animation/Keyframe$IntKeyframe;-><init>(FI)V
 HSPLandroid/animation/Keyframe$IntKeyframe;->clone()Landroid/animation/Keyframe$IntKeyframe;
 HSPLandroid/animation/Keyframe$IntKeyframe;->clone()Landroid/animation/Keyframe;
@@ -220,12 +346,14 @@
 HSPLandroid/animation/Keyframe$ObjectKeyframe;->clone()Landroid/animation/Keyframe$ObjectKeyframe;
 HSPLandroid/animation/Keyframe$ObjectKeyframe;->clone()Landroid/animation/Keyframe;
 HSPLandroid/animation/Keyframe$ObjectKeyframe;->getValue()Ljava/lang/Object;
+HSPLandroid/animation/Keyframe$ObjectKeyframe;->setValue(Ljava/lang/Object;)V
 HSPLandroid/animation/Keyframe;-><init>()V
 HSPLandroid/animation/Keyframe;->getFraction()F
 HSPLandroid/animation/Keyframe;->getInterpolator()Landroid/animation/TimeInterpolator;
 HSPLandroid/animation/Keyframe;->hasValue()Z
 HSPLandroid/animation/Keyframe;->ofFloat(F)Landroid/animation/Keyframe;
 HSPLandroid/animation/Keyframe;->ofFloat(FF)Landroid/animation/Keyframe;
+HSPLandroid/animation/Keyframe;->ofInt(F)Landroid/animation/Keyframe;
 HSPLandroid/animation/Keyframe;->ofInt(FI)Landroid/animation/Keyframe;
 HSPLandroid/animation/Keyframe;->ofObject(FLjava/lang/Object;)Landroid/animation/Keyframe;
 HSPLandroid/animation/Keyframe;->setInterpolator(Landroid/animation/TimeInterpolator;)V
@@ -241,20 +369,66 @@
 HSPLandroid/animation/KeyframeSet;->ofObject([Ljava/lang/Object;)Landroid/animation/KeyframeSet;
 HSPLandroid/animation/KeyframeSet;->ofPath(Landroid/graphics/Path;F)Landroid/animation/PathKeyframes;
 HSPLandroid/animation/KeyframeSet;->setEvaluator(Landroid/animation/TypeEvaluator;)V
+HSPLandroid/animation/LayoutTransition$1;-><init>(Landroid/animation/LayoutTransition;Landroid/view/View;)V
 HSPLandroid/animation/LayoutTransition$1;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/animation/LayoutTransition$2;-><init>(Landroid/animation/LayoutTransition;Landroid/animation/Animator;IJLandroid/view/View;Landroid/view/ViewGroup;)V
 HSPLandroid/animation/LayoutTransition$2;->onLayoutChange(Landroid/view/View;IIIIIIII)V
+HSPLandroid/animation/LayoutTransition$3;-><init>(Landroid/animation/LayoutTransition;Landroid/view/ViewGroup;Landroid/view/View;ILandroid/view/View$OnLayoutChangeListener;)V
+HSPLandroid/animation/LayoutTransition$3;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/animation/LayoutTransition$3;->onAnimationStart(Landroid/animation/Animator;)V
+HSPLandroid/animation/LayoutTransition$4;-><init>(Landroid/animation/LayoutTransition;Landroid/view/View;Landroid/view/ViewGroup;)V
+HSPLandroid/animation/LayoutTransition$4;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/animation/LayoutTransition$5;-><init>(Landroid/animation/LayoutTransition;Landroid/view/View;FLandroid/view/ViewGroup;)V
+HSPLandroid/animation/LayoutTransition$5;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/animation/LayoutTransition$CleanupCallback;-><init>(Ljava/util/Map;Landroid/view/ViewGroup;)V
 HSPLandroid/animation/LayoutTransition$CleanupCallback;->cleanup()V
 HSPLandroid/animation/LayoutTransition$CleanupCallback;->onPreDraw()Z
 HSPLandroid/animation/LayoutTransition;-><init>()V
+HSPLandroid/animation/LayoutTransition;->access$000(Landroid/animation/LayoutTransition;)Ljava/util/HashMap;
+HSPLandroid/animation/LayoutTransition;->access$100(Landroid/animation/LayoutTransition;)J
+HSPLandroid/animation/LayoutTransition;->access$1400(Landroid/animation/LayoutTransition;)Ljava/util/LinkedHashMap;
+HSPLandroid/animation/LayoutTransition;->access$1500(Landroid/animation/LayoutTransition;)Ljava/util/HashMap;
+HSPLandroid/animation/LayoutTransition;->access$1600(Landroid/animation/LayoutTransition;)Z
+HSPLandroid/animation/LayoutTransition;->access$1700(Landroid/animation/LayoutTransition;)Ljava/util/ArrayList;
+HSPLandroid/animation/LayoutTransition;->access$1800(Landroid/animation/LayoutTransition;)Ljava/util/LinkedHashMap;
+HSPLandroid/animation/LayoutTransition;->access$1900(Landroid/animation/LayoutTransition;)Ljava/util/LinkedHashMap;
+HSPLandroid/animation/LayoutTransition;->access$200(Landroid/animation/LayoutTransition;)J
+HSPLandroid/animation/LayoutTransition;->access$214(Landroid/animation/LayoutTransition;J)J
+HSPLandroid/animation/LayoutTransition;->access$300(Landroid/animation/LayoutTransition;)J
+HSPLandroid/animation/LayoutTransition;->access$400(Landroid/animation/LayoutTransition;)Landroid/animation/TimeInterpolator;
+HSPLandroid/animation/LayoutTransition;->access$500()Landroid/animation/TimeInterpolator;
+HSPLandroid/animation/LayoutTransition;->access$600(Landroid/animation/LayoutTransition;)J
+HSPLandroid/animation/LayoutTransition;->access$700(Landroid/animation/LayoutTransition;)J
+HSPLandroid/animation/LayoutTransition;->access$800(Landroid/animation/LayoutTransition;)Landroid/animation/TimeInterpolator;
+HSPLandroid/animation/LayoutTransition;->access$900()Landroid/animation/TimeInterpolator;
 HSPLandroid/animation/LayoutTransition;->addChild(Landroid/view/ViewGroup;Landroid/view/View;)V
 HSPLandroid/animation/LayoutTransition;->addChild(Landroid/view/ViewGroup;Landroid/view/View;Z)V
 HSPLandroid/animation/LayoutTransition;->addTransitionListener(Landroid/animation/LayoutTransition$TransitionListener;)V
+HSPLandroid/animation/LayoutTransition;->cancel()V
 HSPLandroid/animation/LayoutTransition;->cancel(I)V
+HSPLandroid/animation/LayoutTransition;->disableTransitionType(I)V
+HSPLandroid/animation/LayoutTransition;->enableTransitionType(I)V
+HSPLandroid/animation/LayoutTransition;->hasListeners()Z
+HSPLandroid/animation/LayoutTransition;->hideChild(Landroid/view/ViewGroup;Landroid/view/View;I)V
 HSPLandroid/animation/LayoutTransition;->isChangingLayout()Z
+HSPLandroid/animation/LayoutTransition;->isRunning()Z
 HSPLandroid/animation/LayoutTransition;->layoutChange(Landroid/view/ViewGroup;)V
+HSPLandroid/animation/LayoutTransition;->removeChild(Landroid/view/ViewGroup;Landroid/view/View;)V
 HSPLandroid/animation/LayoutTransition;->removeChild(Landroid/view/ViewGroup;Landroid/view/View;Z)V
+HSPLandroid/animation/LayoutTransition;->removeTransitionListener(Landroid/animation/LayoutTransition$TransitionListener;)V
+HSPLandroid/animation/LayoutTransition;->runAppearingTransition(Landroid/view/ViewGroup;Landroid/view/View;)V
 HSPLandroid/animation/LayoutTransition;->runChangeTransition(Landroid/view/ViewGroup;Landroid/view/View;I)V
+HSPLandroid/animation/LayoutTransition;->runDisappearingTransition(Landroid/view/ViewGroup;Landroid/view/View;)V
+HSPLandroid/animation/LayoutTransition;->setAnimateParentHierarchy(Z)V
+HSPLandroid/animation/LayoutTransition;->setAnimator(ILandroid/animation/Animator;)V
+HSPLandroid/animation/LayoutTransition;->setDuration(IJ)V
+HSPLandroid/animation/LayoutTransition;->setDuration(J)V
+HSPLandroid/animation/LayoutTransition;->setInterpolator(ILandroid/animation/TimeInterpolator;)V
+HSPLandroid/animation/LayoutTransition;->setStagger(IJ)V
+HSPLandroid/animation/LayoutTransition;->setStartDelay(IJ)V
 HSPLandroid/animation/LayoutTransition;->setupChangeAnimation(Landroid/view/ViewGroup;ILandroid/animation/Animator;JLandroid/view/View;)V
+HSPLandroid/animation/LayoutTransition;->showChild(Landroid/view/ViewGroup;Landroid/view/View;I)V
+HSPLandroid/animation/LayoutTransition;->startChangingAnimations()V
 HSPLandroid/animation/ObjectAnimator;-><init>()V
 HSPLandroid/animation/ObjectAnimator;-><init>(Ljava/lang/Object;Landroid/util/Property;)V
 HSPLandroid/animation/ObjectAnimator;-><init>(Ljava/lang/Object;Ljava/lang/String;)V
@@ -264,17 +438,24 @@
 HSPLandroid/animation/ObjectAnimator;->getNameForTrace()Ljava/lang/String;
 HSPLandroid/animation/ObjectAnimator;->getPropertyName()Ljava/lang/String;
 HSPLandroid/animation/ObjectAnimator;->getTarget()Ljava/lang/Object;
+HSPLandroid/animation/ObjectAnimator;->hasSameTargetAndProperties(Landroid/animation/Animator;)Z
 HSPLandroid/animation/ObjectAnimator;->initAnimation()V
 HSPLandroid/animation/ObjectAnimator;->isInitialized()Z
+HSPLandroid/animation/ObjectAnimator;->ofArgb(Ljava/lang/Object;Ljava/lang/String;[I)Landroid/animation/ObjectAnimator;
 HSPLandroid/animation/ObjectAnimator;->ofFloat(Ljava/lang/Object;Landroid/util/Property;[F)Landroid/animation/ObjectAnimator;
 HSPLandroid/animation/ObjectAnimator;->ofFloat(Ljava/lang/Object;Ljava/lang/String;[F)Landroid/animation/ObjectAnimator;
+HSPLandroid/animation/ObjectAnimator;->ofInt(Ljava/lang/Object;Landroid/util/Property;[I)Landroid/animation/ObjectAnimator;
 HSPLandroid/animation/ObjectAnimator;->ofInt(Ljava/lang/Object;Ljava/lang/String;[I)Landroid/animation/ObjectAnimator;
+HSPLandroid/animation/ObjectAnimator;->ofObject(Ljava/lang/Object;Landroid/util/Property;Landroid/animation/TypeConverter;Landroid/graphics/Path;)Landroid/animation/ObjectAnimator;
+HSPLandroid/animation/ObjectAnimator;->ofObject(Ljava/lang/Object;Landroid/util/Property;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ObjectAnimator;
 HSPLandroid/animation/ObjectAnimator;->ofPropertyValuesHolder(Ljava/lang/Object;[Landroid/animation/PropertyValuesHolder;)Landroid/animation/ObjectAnimator;
+HSPLandroid/animation/ObjectAnimator;->setAutoCancel(Z)V
 HSPLandroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/Animator;
 HSPLandroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/ObjectAnimator;
 HSPLandroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/ValueAnimator;
 HSPLandroid/animation/ObjectAnimator;->setFloatValues([F)V
 HSPLandroid/animation/ObjectAnimator;->setIntValues([I)V
+HSPLandroid/animation/ObjectAnimator;->setObjectValues([Ljava/lang/Object;)V
 HSPLandroid/animation/ObjectAnimator;->setProperty(Landroid/util/Property;)V
 HSPLandroid/animation/ObjectAnimator;->setPropertyName(Ljava/lang/String;)V
 HSPLandroid/animation/ObjectAnimator;->setTarget(Ljava/lang/Object;)V
@@ -283,14 +464,25 @@
 HSPLandroid/animation/ObjectAnimator;->shouldAutoCancel(Landroid/animation/AnimationHandler$AnimationFrameCallback;)Z
 HSPLandroid/animation/ObjectAnimator;->start()V
 HSPLandroid/animation/PathKeyframes$1;-><init>(Landroid/animation/PathKeyframes;)V
+HSPLandroid/animation/PathKeyframes$1;->getFloatValue(F)F
 HSPLandroid/animation/PathKeyframes$2;-><init>(Landroid/animation/PathKeyframes;)V
+HSPLandroid/animation/PathKeyframes$2;->getFloatValue(F)F
 HSPLandroid/animation/PathKeyframes$FloatKeyframesBase;-><init>()V
+HSPLandroid/animation/PathKeyframes$FloatKeyframesBase;->getValue(F)Ljava/lang/Object;
 HSPLandroid/animation/PathKeyframes$SimpleKeyframes;-><init>()V
 HSPLandroid/animation/PathKeyframes$SimpleKeyframes;-><init>(Landroid/animation/PathKeyframes$1;)V
 HSPLandroid/animation/PathKeyframes$SimpleKeyframes;->clone()Landroid/animation/Keyframes;
 HSPLandroid/animation/PathKeyframes;-><init>(Landroid/graphics/Path;F)V
 HSPLandroid/animation/PathKeyframes;->createXFloatKeyframes()Landroid/animation/Keyframes$FloatKeyframes;
 HSPLandroid/animation/PathKeyframes;->createYFloatKeyframes()Landroid/animation/Keyframes$FloatKeyframes;
+HSPLandroid/animation/PathKeyframes;->getKeyframes()Ljava/util/ArrayList;
+HSPLandroid/animation/PathKeyframes;->getKeyframes()Ljava/util/List;
+HSPLandroid/animation/PathKeyframes;->getValue(F)Ljava/lang/Object;
+HSPLandroid/animation/PathKeyframes;->interpolate(FFF)F
+HSPLandroid/animation/PathKeyframes;->interpolateInRange(FII)Landroid/graphics/PointF;
+HSPLandroid/animation/PathKeyframes;->pointForIndex(I)Landroid/graphics/PointF;
+HSPLandroid/animation/PropertyValuesHolder$1;-><init>(Landroid/animation/PropertyValuesHolder;)V
+HSPLandroid/animation/PropertyValuesHolder$1;->getValueAtFraction(F)Ljava/lang/Object;
 HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Landroid/util/Property;[F)V
 HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Ljava/lang/String;Landroid/animation/Keyframes$FloatKeyframes;)V
 HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Ljava/lang/String;[F)V
@@ -302,6 +494,7 @@
 HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setFloatValues([F)V
 HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setProperty(Landroid/util/Property;)V
 HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V
+HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;-><init>(Landroid/util/Property;[I)V
 HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;-><init>(Ljava/lang/String;[I)V
 HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->calculateValue(F)V
 HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;
@@ -309,6 +502,7 @@
 HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object;
 HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V
 HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setIntValues([I)V
+HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setProperty(Landroid/util/Property;)V
 HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V
 HSPLandroid/animation/PropertyValuesHolder$PropertyValues;-><init>()V
 HSPLandroid/animation/PropertyValuesHolder;-><init>(Landroid/util/Property;)V
@@ -331,9 +525,12 @@
 HSPLandroid/animation/PropertyValuesHolder;->init()V
 HSPLandroid/animation/PropertyValuesHolder;->ofFloat(Landroid/util/Property;[F)Landroid/animation/PropertyValuesHolder;
 HSPLandroid/animation/PropertyValuesHolder;->ofFloat(Ljava/lang/String;[F)Landroid/animation/PropertyValuesHolder;
+HSPLandroid/animation/PropertyValuesHolder;->ofInt(Landroid/util/Property;[I)Landroid/animation/PropertyValuesHolder;
 HSPLandroid/animation/PropertyValuesHolder;->ofInt(Ljava/lang/String;[I)Landroid/animation/PropertyValuesHolder;
 HSPLandroid/animation/PropertyValuesHolder;->ofKeyframes(Ljava/lang/String;Landroid/animation/Keyframes;)Landroid/animation/PropertyValuesHolder;
+HSPLandroid/animation/PropertyValuesHolder;->ofObject(Landroid/util/Property;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/PropertyValuesHolder;
 HSPLandroid/animation/PropertyValuesHolder;->ofObject(Ljava/lang/String;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/PropertyValuesHolder;
+HSPLandroid/animation/PropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V
 HSPLandroid/animation/PropertyValuesHolder;->setEvaluator(Landroid/animation/TypeEvaluator;)V
 HSPLandroid/animation/PropertyValuesHolder;->setFloatValues([F)V
 HSPLandroid/animation/PropertyValuesHolder;->setIntValues([I)V
@@ -346,9 +543,13 @@
 HSPLandroid/animation/PropertyValuesHolder;->setupSetterOrGetter(Ljava/lang/Class;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
 HSPLandroid/animation/PropertyValuesHolder;->setupStartValue(Ljava/lang/Object;)V
 HSPLandroid/animation/PropertyValuesHolder;->setupValue(Ljava/lang/Object;Landroid/animation/Keyframe;)V
+HSPLandroid/animation/RectEvaluator;-><init>(Landroid/graphics/Rect;)V
+HSPLandroid/animation/RevealAnimator;-><init>(Landroid/view/View;IIFF)V
+HSPLandroid/animation/RevealAnimator;->onFinished()V
 HSPLandroid/animation/StateListAnimator$1;-><init>(Landroid/animation/StateListAnimator;)V
 HSPLandroid/animation/StateListAnimator$1;->onAnimationEnd(Landroid/animation/Animator;)V
 HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;-><init>(Landroid/animation/StateListAnimator;)V
+HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->getChangingConfigurations()I
 HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Landroid/animation/StateListAnimator;
 HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Ljava/lang/Object;
 HSPLandroid/animation/StateListAnimator$Tuple;-><init>([ILandroid/animation/Animator;)V
@@ -359,6 +560,7 @@
 HSPLandroid/animation/StateListAnimator;->access$202(Landroid/animation/StateListAnimator;Landroid/animation/StateListAnimator$StateListAnimatorConstantState;)Landroid/animation/StateListAnimator$StateListAnimatorConstantState;
 HSPLandroid/animation/StateListAnimator;->addState([ILandroid/animation/Animator;)V
 HSPLandroid/animation/StateListAnimator;->appendChangingConfigurations(I)V
+HSPLandroid/animation/StateListAnimator;->cancel()V
 HSPLandroid/animation/StateListAnimator;->clearTarget()V
 HSPLandroid/animation/StateListAnimator;->clone()Landroid/animation/StateListAnimator;
 HSPLandroid/animation/StateListAnimator;->createConstantState()Landroid/content/res/ConstantState;
@@ -370,11 +572,19 @@
 HSPLandroid/animation/StateListAnimator;->setState([I)V
 HSPLandroid/animation/StateListAnimator;->setTarget(Landroid/view/View;)V
 HSPLandroid/animation/StateListAnimator;->start(Landroid/animation/StateListAnimator$Tuple;)V
+HSPLandroid/animation/TimeAnimator;-><init>()V
+HSPLandroid/animation/TimeAnimator;->animateBasedOnTime(J)Z
+HSPLandroid/animation/TimeAnimator;->animateValue(F)V
+HSPLandroid/animation/TimeAnimator;->initAnimation()V
+HSPLandroid/animation/TimeAnimator;->setCurrentPlayTime(J)V
+HSPLandroid/animation/TimeAnimator;->setTimeListener(Landroid/animation/TimeAnimator$TimeListener;)V
+HSPLandroid/animation/TimeAnimator;->start()V
 HSPLandroid/animation/ValueAnimator;-><init>()V
 HSPLandroid/animation/ValueAnimator;->addAnimationCallback(J)V
 HSPLandroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
 HSPLandroid/animation/ValueAnimator;->animateBasedOnTime(J)Z
 HSPLandroid/animation/ValueAnimator;->animateValue(F)V
+HSPLandroid/animation/ValueAnimator;->areAnimatorsEnabled()Z
 HSPLandroid/animation/ValueAnimator;->cancel()V
 HSPLandroid/animation/ValueAnimator;->clampFraction(F)F
 HSPLandroid/animation/ValueAnimator;->clone()Landroid/animation/Animator;
@@ -388,6 +598,7 @@
 HSPLandroid/animation/ValueAnimator;->getCurrentAnimationsCount()I
 HSPLandroid/animation/ValueAnimator;->getCurrentIteration(F)I
 HSPLandroid/animation/ValueAnimator;->getCurrentIterationFraction(FZ)F
+HSPLandroid/animation/ValueAnimator;->getCurrentPlayTime()J
 HSPLandroid/animation/ValueAnimator;->getDuration()J
 HSPLandroid/animation/ValueAnimator;->getDurationScale()F
 HSPLandroid/animation/ValueAnimator;->getInterpolator()Landroid/animation/TimeInterpolator;
@@ -404,11 +615,17 @@
 HSPLandroid/animation/ValueAnimator;->isRunning()Z
 HSPLandroid/animation/ValueAnimator;->isStarted()Z
 HSPLandroid/animation/ValueAnimator;->notifyStartListeners()V
+HSPLandroid/animation/ValueAnimator;->ofArgb([I)Landroid/animation/ValueAnimator;
 HSPLandroid/animation/ValueAnimator;->ofFloat([F)Landroid/animation/ValueAnimator;
 HSPLandroid/animation/ValueAnimator;->ofInt([I)Landroid/animation/ValueAnimator;
+HSPLandroid/animation/ValueAnimator;->ofObject(Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ValueAnimator;
+PLandroid/animation/ValueAnimator;->overrideDurationScale(F)V
+HSPLandroid/animation/ValueAnimator;->pause()V
 HSPLandroid/animation/ValueAnimator;->pulseAnimationFrame(J)Z
+HSPLandroid/animation/ValueAnimator;->removeAllUpdateListeners()V
 HSPLandroid/animation/ValueAnimator;->removeAnimationCallback()V
 HSPLandroid/animation/ValueAnimator;->resolveDurationScale()F
+HSPLandroid/animation/ValueAnimator;->reverse()V
 HSPLandroid/animation/ValueAnimator;->setAllowRunningAsynchronously(Z)V
 HSPLandroid/animation/ValueAnimator;->setCurrentFraction(F)V
 HSPLandroid/animation/ValueAnimator;->setCurrentPlayTime(J)V
@@ -419,6 +636,7 @@
 HSPLandroid/animation/ValueAnimator;->setFloatValues([F)V
 HSPLandroid/animation/ValueAnimator;->setIntValues([I)V
 HSPLandroid/animation/ValueAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V
+HSPLandroid/animation/ValueAnimator;->setObjectValues([Ljava/lang/Object;)V
 HSPLandroid/animation/ValueAnimator;->setRepeatCount(I)V
 HSPLandroid/animation/ValueAnimator;->setRepeatMode(I)V
 HSPLandroid/animation/ValueAnimator;->setStartDelay(J)V
@@ -429,6 +647,16 @@
 HSPLandroid/animation/ValueAnimator;->start(Z)V
 HSPLandroid/animation/ValueAnimator;->startAnimation()V
 HSPLandroid/animation/ValueAnimator;->startWithoutPulsing(Z)V
+HSPLandroid/apex/ApexInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/apex/ApexInfo;
+HSPLandroid/apex/ApexInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/apex/ApexInfo$1;->newArray(I)[Landroid/apex/ApexInfo;
+HSPLandroid/apex/ApexInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/apex/ApexInfo;-><init>()V
+HSPLandroid/apex/ApexInfo;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/apex/IApexService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/apex/IApexService$Stub$Proxy;->getActivePackages()[Landroid/apex/ApexInfo;
+HSPLandroid/apex/IApexService$Stub$Proxy;->getAllPackages()[Landroid/apex/ApexInfo;
+HSPLandroid/apex/IApexService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/apex/IApexService;
 HSPLandroid/app/-$$Lambda$ActivityThread$A4ykhsPb8qV3ffTqpQDklHSMDJ0;-><init>(Landroid/app/ActivityThread;)V
 HSPLandroid/app/-$$Lambda$ActivityThread$A4ykhsPb8qV3ffTqpQDklHSMDJ0;->run()V
 HSPLandroid/app/-$$Lambda$ActivityThread$ActivityClientRecord$HOrG1qglSjSUHSjKBn2rXtX0gGg;-><init>(Landroid/app/ActivityThread$ActivityClientRecord;)V
@@ -436,6 +664,18 @@
 HSPLandroid/app/-$$Lambda$ActivityThread$ApplicationThread$tUGFX7CUhzB4Pg5wFd5yeqOnu38;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLandroid/app/-$$Lambda$ActivityThread$Wg40iAoNYFxps_KmrqtgptTB054;-><init>(Landroid/app/ActivityThread;)V
 HSPLandroid/app/-$$Lambda$ActivityThread$Wg40iAoNYFxps_KmrqtgptTB054;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLandroid/app/-$$Lambda$AppOpsManager$2$t9yQjThS21ls97TonVuHm6nv4N8;-><init>(Landroid/app/AppOpsManager$OnOpActiveChangedListener;IILjava/lang/String;Z)V
+HSPLandroid/app/-$$Lambda$AppOpsManager$2$t9yQjThS21ls97TonVuHm6nv4N8;->run()V
+HSPLandroid/app/-$$Lambda$AppOpsManager$4Zbi7CSLEt0nvOmfJBVYtJkauTQ;-><init>(Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V
+HSPLandroid/app/-$$Lambda$AppOpsManager$4Zbi7CSLEt0nvOmfJBVYtJkauTQ;->onResult(Landroid/os/Bundle;)V
+HSPLandroid/app/-$$Lambda$AppOpsManager$HistoricalOp$DkVcBvqB32SMHlxw0sWQPh3GL1A;-><init>(Landroid/app/AppOpsManager$HistoricalOp;)V
+HSPLandroid/app/-$$Lambda$AppOpsManager$HistoricalOp$DkVcBvqB32SMHlxw0sWQPh3GL1A;->get()Ljava/lang/Object;
+HSPLandroid/app/-$$Lambda$AppOpsManager$HistoricalOp$HUOLFYs8TiaQIOXcrq6JzjxA6gs;-><init>(Landroid/app/AppOpsManager$HistoricalOp;)V
+HSPLandroid/app/-$$Lambda$AppOpsManager$HistoricalOp$HUOLFYs8TiaQIOXcrq6JzjxA6gs;->get()Ljava/lang/Object;
+HSPLandroid/app/-$$Lambda$AppOpsManager$HistoricalOp$Vs6pDL0wjOBTquwNnreWVbPQrn4;-><init>(Landroid/app/AppOpsManager$HistoricalOp;)V
+HSPLandroid/app/-$$Lambda$AppOpsManager$HistoricalOp$Vs6pDL0wjOBTquwNnreWVbPQrn4;->get()Ljava/lang/Object;
+HSPLandroid/app/-$$Lambda$AppOpsManager$frSyqmhVUmNbhMckfMS3PSwTMlw;-><init>(Ljava/util/function/Consumer;Landroid/app/AppOpsManager$HistoricalOps;)V
+HSPLandroid/app/-$$Lambda$AppOpsManager$frSyqmhVUmNbhMckfMS3PSwTMlw;->run()V
 HSPLandroid/app/-$$Lambda$Dialog$zXRzrq3I7H1_zmZ8d_W7t2CQN0I;-><init>(Landroid/app/Dialog;)V
 HSPLandroid/app/-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA;-><init>(Landroid/app/LoadedApk$ReceiverDispatcher$Args;)V
 HSPLandroid/app/-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA;->run()V
@@ -444,21 +684,42 @@
 HSPLandroid/app/-$$Lambda$ResourcesManager$QJ7UiVk_XS90KuXAsIjIEym1DnM;->test(Ljava/lang/Object;)Z
 HSPLandroid/app/-$$Lambda$SharedPreferencesImpl$EditorImpl$3CAjkhzA131V3V-sLfP2uy0FWZ0;-><init>(Landroid/app/SharedPreferencesImpl$EditorImpl;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;)V
 HSPLandroid/app/-$$Lambda$SharedPreferencesImpl$EditorImpl$3CAjkhzA131V3V-sLfP2uy0FWZ0;->run()V
+HSPLandroid/app/-$$Lambda$SystemServiceRegistry$17$DBwvhMLzjNnBFkaOY1OxllrybH4;-><clinit>()V
+HSPLandroid/app/-$$Lambda$SystemServiceRegistry$17$DBwvhMLzjNnBFkaOY1OxllrybH4;-><init>()V
+HSPLandroid/app/-$$Lambda$SystemServiceRegistry$17$DBwvhMLzjNnBFkaOY1OxllrybH4;->get()Ljava/lang/Object;
+HSPLandroid/app/-$$Lambda$WallpaperManager$Globals$2yG7V1sbMECCnlFTLyjKWKqNoYI;-><init>(Landroid/app/WallpaperManager$OnColorsChangedListener;)V
+HSPLandroid/app/-$$Lambda$WallpaperManager$Globals$2yG7V1sbMECCnlFTLyjKWKqNoYI;->test(Ljava/lang/Object;)Z
 HSPLandroid/app/-$$Lambda$oslF4K8Uk6v-6nTRoaEpCmfAptE;-><init>(Landroid/app/Dialog;)V
+HSPLandroid/app/-$$Lambda$thfU5Zh-cKOR8p7IfITtlg111Go;-><init>(Landroid/app/Activity;)V
+HSPLandroid/app/-$$Lambda$thfU5Zh-cKOR8p7IfITtlg111Go;->run()V
+HSPLandroid/app/ActionBar$LayoutParams;-><init>(II)V
 HSPLandroid/app/Activity$1;-><init>(Landroid/app/Activity;)V
 HSPLandroid/app/Activity$1;->isTaskRoot()Z
+HSPLandroid/app/Activity$1;->updateNavigationBarColor(I)V
 HSPLandroid/app/Activity$1;->updateStatusBarColor(I)V
 HSPLandroid/app/Activity$HostCallbacks;-><init>(Landroid/app/Activity;)V
 HSPLandroid/app/Activity$HostCallbacks;->onAttachFragment(Landroid/app/Fragment;)V
+HSPLandroid/app/Activity$HostCallbacks;->onFindViewById(I)Landroid/view/View;
 HSPLandroid/app/Activity$HostCallbacks;->onGetLayoutInflater()Landroid/view/LayoutInflater;
+HSPLandroid/app/Activity$HostCallbacks;->onHasView()Z
+HSPLandroid/app/Activity$HostCallbacks;->onShouldSaveFragmentState(Landroid/app/Fragment;)Z
 HSPLandroid/app/Activity$HostCallbacks;->onUseFragmentManagerInflaterFactory()Z
+HSPLandroid/app/Activity$NonConfigurationInstances;-><init>()V
+HSPLandroid/app/Activity$RequestFinishCallback;-><init>(Ljava/lang/ref/WeakReference;)V
+HSPLandroid/app/Activity$RequestFinishCallback;->requestFinish()V
 HSPLandroid/app/Activity;-><init>()V
+HSPLandroid/app/Activity;->access$000(Landroid/app/Activity;)Landroid/os/IBinder;
 HSPLandroid/app/Activity;->access$100(Landroid/app/Activity;)Landroid/app/ActivityManager$TaskDescription;
 HSPLandroid/app/Activity;->attach(Landroid/content/Context;Landroid/app/ActivityThread;Landroid/app/Instrumentation;Landroid/os/IBinder;ILandroid/app/Application;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/CharSequence;Landroid/app/Activity;Ljava/lang/String;Landroid/app/Activity$NonConfigurationInstances;Landroid/content/res/Configuration;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;Landroid/view/Window;Landroid/view/ViewRootImpl$ActivityConfigCallback;Landroid/os/IBinder;)V
 HSPLandroid/app/Activity;->attachBaseContext(Landroid/content/Context;)V
+HSPLandroid/app/Activity;->autofillClientFindViewByAutofillIdTraversal(Landroid/view/autofill/AutofillId;)Landroid/view/View;
+HSPLandroid/app/Activity;->autofillClientGetActivityToken()Landroid/os/IBinder;
 HSPLandroid/app/Activity;->autofillClientGetComponentName()Landroid/content/ComponentName;
 HSPLandroid/app/Activity;->autofillClientIsFillUiShowing()Z
 HSPLandroid/app/Activity;->autofillClientRequestHideFillUi()Z
+HSPLandroid/app/Activity;->autofillClientResetableStateAvailable()V
+HSPLandroid/app/Activity;->autofillClientRunOnUiThread(Ljava/lang/Runnable;)V
+HSPLandroid/app/Activity;->canStartActivityForResult()Z
 HSPLandroid/app/Activity;->cancelInputsAndStartExitTransition(Landroid/os/Bundle;)V
 HSPLandroid/app/Activity;->collectActivityLifecycleCallbacks()[Ljava/lang/Object;
 HSPLandroid/app/Activity;->dispatchActivityCreated(Landroid/os/Bundle;)V
@@ -478,20 +739,28 @@
 HSPLandroid/app/Activity;->dispatchActivityPreSaveInstanceState(Landroid/os/Bundle;)V
 HSPLandroid/app/Activity;->dispatchActivityPreStarted()V
 HSPLandroid/app/Activity;->dispatchActivityPreStopped()V
+HSPLandroid/app/Activity;->dispatchActivityResult(Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;)V
 HSPLandroid/app/Activity;->dispatchActivityResumed()V
 HSPLandroid/app/Activity;->dispatchActivitySaveInstanceState(Landroid/os/Bundle;)V
 HSPLandroid/app/Activity;->dispatchActivityStarted()V
 HSPLandroid/app/Activity;->dispatchActivityStopped()V
 HSPLandroid/app/Activity;->dispatchEnterAnimationComplete()V
 HSPLandroid/app/Activity;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
+HSPLandroid/app/Activity;->dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z
 HSPLandroid/app/Activity;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/app/Activity;->enableAutofillCompatibilityIfNeeded()V
+HSPLandroid/app/Activity;->findViewById(I)Landroid/view/View;
 HSPLandroid/app/Activity;->finish()V
 HSPLandroid/app/Activity;->finish(I)V
+HSPLandroid/app/Activity;->finishAfterTransition()V
+HSPLandroid/app/Activity;->finishAndRemoveTask()V
 HSPLandroid/app/Activity;->getActivityOptions()Landroid/app/ActivityOptions;
 HSPLandroid/app/Activity;->getActivityToken()Landroid/os/IBinder;
 HSPLandroid/app/Activity;->getApplication()Landroid/app/Application;
 HSPLandroid/app/Activity;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient;
+HSPLandroid/app/Activity;->getAutofillManager()Landroid/view/autofill/AutofillManager;
+HSPLandroid/app/Activity;->getCallingActivity()Landroid/content/ComponentName;
+HSPLandroid/app/Activity;->getCallingPackage()Ljava/lang/String;
 HSPLandroid/app/Activity;->getComponentName()Landroid/content/ComponentName;
 HSPLandroid/app/Activity;->getContentCaptureManager()Landroid/view/contentcapture/ContentCaptureManager;
 HSPLandroid/app/Activity;->getContentCaptureTypeAsString(I)Ljava/lang/String;
@@ -501,26 +770,39 @@
 HSPLandroid/app/Activity;->getLastNonConfigurationInstance()Ljava/lang/Object;
 HSPLandroid/app/Activity;->getLayoutInflater()Landroid/view/LayoutInflater;
 HSPLandroid/app/Activity;->getNextAutofillId()I
+HSPLandroid/app/Activity;->getReferrer()Landroid/net/Uri;
+HSPLandroid/app/Activity;->getRequestedOrientation()I
 HSPLandroid/app/Activity;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
+HSPLandroid/app/Activity;->getTaskId()I
 HSPLandroid/app/Activity;->getTitle()Ljava/lang/CharSequence;
 HSPLandroid/app/Activity;->getTitleColor()I
+HSPLandroid/app/Activity;->getVolumeControlStream()I
 HSPLandroid/app/Activity;->getWindow()Landroid/view/Window;
 HSPLandroid/app/Activity;->getWindowManager()Landroid/view/WindowManager;
 HSPLandroid/app/Activity;->initWindowDecorActionBar()V
 HSPLandroid/app/Activity;->isChangingConfigurations()Z
 HSPLandroid/app/Activity;->isChild()Z
 HSPLandroid/app/Activity;->isDestroyed()Z
+HSPLandroid/app/Activity;->isDisablingEnterExitEventForAutofill()Z
 HSPLandroid/app/Activity;->isFinishing()Z
+HSPLandroid/app/Activity;->isInMultiWindowMode()Z
 HSPLandroid/app/Activity;->isTaskRoot()Z
 HSPLandroid/app/Activity;->makeVisible()V
 HSPLandroid/app/Activity;->notifyContentCaptureManagerIfNeeded(I)V
+HSPLandroid/app/Activity;->onActionModeFinished(Landroid/view/ActionMode;)V
+HSPLandroid/app/Activity;->onActionModeStarted(Landroid/view/ActionMode;)V
+HSPLandroid/app/Activity;->onActivityResult(IILandroid/content/Intent;)V
 HSPLandroid/app/Activity;->onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V
 HSPLandroid/app/Activity;->onAttachFragment(Landroid/app/Fragment;)V
 HSPLandroid/app/Activity;->onAttachedToWindow()V
+HSPLandroid/app/Activity;->onBackPressed()V
+HSPLandroid/app/Activity;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLandroid/app/Activity;->onContentChanged()V
 HSPLandroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
 HSPLandroid/app/Activity;->onCreateDescription()Ljava/lang/CharSequence;
 HSPLandroid/app/Activity;->onCreateOptionsMenu(Landroid/view/Menu;)Z
 HSPLandroid/app/Activity;->onCreatePanelMenu(ILandroid/view/Menu;)Z
+HSPLandroid/app/Activity;->onCreatePanelView(I)Landroid/view/View;
 HSPLandroid/app/Activity;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
 HSPLandroid/app/Activity;->onCreateView(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
 HSPLandroid/app/Activity;->onDestroy()V
@@ -528,17 +810,26 @@
 HSPLandroid/app/Activity;->onEnterAnimationComplete()V
 HSPLandroid/app/Activity;->onKeyDown(ILandroid/view/KeyEvent;)Z
 HSPLandroid/app/Activity;->onKeyUp(ILandroid/view/KeyEvent;)Z
+HSPLandroid/app/Activity;->onLowMemory()V
+HSPLandroid/app/Activity;->onMenuItemSelected(ILandroid/view/MenuItem;)Z
+HSPLandroid/app/Activity;->onNewIntent(Landroid/content/Intent;)V
+HSPLandroid/app/Activity;->onOptionsItemSelected(Landroid/view/MenuItem;)Z
+HSPLandroid/app/Activity;->onPanelClosed(ILandroid/view/Menu;)V
 HSPLandroid/app/Activity;->onPause()V
 HSPLandroid/app/Activity;->onPictureInPictureRequested()V
+HSPLandroid/app/Activity;->onPictureInPictureRequested()Z
 HSPLandroid/app/Activity;->onPostCreate(Landroid/os/Bundle;)V
 HSPLandroid/app/Activity;->onPostResume()V
 HSPLandroid/app/Activity;->onPrepareOptionsMenu(Landroid/view/Menu;)Z
 HSPLandroid/app/Activity;->onPreparePanel(ILandroid/view/View;Landroid/view/Menu;)Z
 HSPLandroid/app/Activity;->onProvideReferrer()Landroid/net/Uri;
 HSPLandroid/app/Activity;->onRestart()V
+HSPLandroid/app/Activity;->onRestoreInstanceState(Landroid/os/Bundle;)V
 HSPLandroid/app/Activity;->onResume()V
+HSPLandroid/app/Activity;->onRetainNonConfigurationChildInstances()Ljava/util/HashMap;
 HSPLandroid/app/Activity;->onSaveInstanceState(Landroid/os/Bundle;)V
 HSPLandroid/app/Activity;->onStart()V
+HSPLandroid/app/Activity;->onStateNotSaved()V
 HSPLandroid/app/Activity;->onStop()V
 HSPLandroid/app/Activity;->onTitleChanged(Ljava/lang/CharSequence;I)V
 HSPLandroid/app/Activity;->onTopResumedActivityChanged(Z)V
@@ -548,11 +839,16 @@
 HSPLandroid/app/Activity;->onUserLeaveHint()V
 HSPLandroid/app/Activity;->onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V
 HSPLandroid/app/Activity;->onWindowFocusChanged(Z)V
+HSPLandroid/app/Activity;->onWindowStartingActionMode(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;
+HSPLandroid/app/Activity;->onWindowStartingActionMode(Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
+HSPLandroid/app/Activity;->overridePendingTransition(II)V
 HSPLandroid/app/Activity;->performCreate(Landroid/os/Bundle;)V
 HSPLandroid/app/Activity;->performCreate(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V
 HSPLandroid/app/Activity;->performDestroy()V
+HSPLandroid/app/Activity;->performNewIntent(Landroid/content/Intent;)V
 HSPLandroid/app/Activity;->performPause()V
 HSPLandroid/app/Activity;->performRestart(ZLjava/lang/String;)V
+HSPLandroid/app/Activity;->performRestoreInstanceState(Landroid/os/Bundle;)V
 HSPLandroid/app/Activity;->performResume(ZLjava/lang/String;)V
 HSPLandroid/app/Activity;->performSaveInstanceState(Landroid/os/Bundle;)V
 HSPLandroid/app/Activity;->performStart(Ljava/lang/String;)V
@@ -560,12 +856,24 @@
 HSPLandroid/app/Activity;->performTopResumedActivityChanged(ZLjava/lang/String;)V
 HSPLandroid/app/Activity;->performUserLeaving()V
 HSPLandroid/app/Activity;->registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V
+HSPLandroid/app/Activity;->reportFullyDrawn()V
+HSPLandroid/app/Activity;->requestWindowFeature(I)Z
 HSPLandroid/app/Activity;->restoreHasCurrentPermissionRequest(Landroid/os/Bundle;)V
+HSPLandroid/app/Activity;->restoreManagedDialogs(Landroid/os/Bundle;)V
+HSPLandroid/app/Activity;->retainNonConfigurationInstances()Landroid/app/Activity$NonConfigurationInstances;
 HSPLandroid/app/Activity;->runOnUiThread(Ljava/lang/Runnable;)V
 HSPLandroid/app/Activity;->saveManagedDialogs(Landroid/os/Bundle;)V
+HSPLandroid/app/Activity;->setContentView(I)V
+HSPLandroid/app/Activity;->setContentView(Landroid/view/View;)V
+HSPLandroid/app/Activity;->setIntent(Landroid/content/Intent;)V
 HSPLandroid/app/Activity;->setRequestedOrientation(I)V
+HSPLandroid/app/Activity;->setResult(I)V
+HSPLandroid/app/Activity;->setResult(ILandroid/content/Intent;)V
 HSPLandroid/app/Activity;->setTaskDescription(Landroid/app/ActivityManager$TaskDescription;)V
 HSPLandroid/app/Activity;->setTheme(I)V
+HSPLandroid/app/Activity;->setTitle(I)V
+HSPLandroid/app/Activity;->setTitle(Ljava/lang/CharSequence;)V
+HSPLandroid/app/Activity;->setVolumeControlStream(I)V
 HSPLandroid/app/Activity;->startActivity(Landroid/content/Intent;)V
 HSPLandroid/app/Activity;->startActivity(Landroid/content/Intent;Landroid/os/Bundle;)V
 HSPLandroid/app/Activity;->startActivityForResult(Landroid/content/Intent;I)V
@@ -574,73 +882,223 @@
 HSPLandroid/app/Activity;->transferSpringboardActivityOptions(Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLandroid/app/ActivityManager$1;->create()Landroid/app/IActivityManager;
 HSPLandroid/app/ActivityManager$1;->create()Ljava/lang/Object;
+HSPLandroid/app/ActivityManager$AppTask;-><init>(Landroid/app/IAppTask;)V
+HSPLandroid/app/ActivityManager$AppTask;->getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo;
 HSPLandroid/app/ActivityManager$MemoryInfo;-><init>()V
 HSPLandroid/app/ActivityManager$MemoryInfo;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/ActivityManager$MemoryInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/ActivityManager$ProcessErrorStateInfo$1;-><init>()V
+HSPLandroid/app/ActivityManager$ProcessErrorStateInfo;-><clinit>()V
+HSPLandroid/app/ActivityManager$RecentTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RecentTaskInfo;
+HSPLandroid/app/ActivityManager$RecentTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/ActivityManager$RecentTaskInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/ActivityManager$RecentTaskInfo;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$1;)V
+HSPLandroid/app/ActivityManager$RecentTaskInfo;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/ActivityManager$RecentTaskInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/ActivityManager$RunningAppProcessInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RunningAppProcessInfo;
 HSPLandroid/app/ActivityManager$RunningAppProcessInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/ActivityManager$RunningAppProcessInfo;-><init>()V
 HSPLandroid/app/ActivityManager$RunningAppProcessInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/ActivityManager$RunningAppProcessInfo;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$1;)V
+HPLandroid/app/ActivityManager$RunningAppProcessInfo;-><init>(Ljava/lang/String;I[Ljava/lang/String;)V
 HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->importanceToProcState(I)I
 HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->procStateToImportance(I)I
 HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->procStateToImportanceForClient(ILandroid/content/Context;)I
 HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->procStateToImportanceForTargetSdk(II)I
 HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/ActivityManager$RunningAppProcessInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/ActivityManager$RunningServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RunningServiceInfo;
 HSPLandroid/app/ActivityManager$RunningServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/ActivityManager$RunningServiceInfo;-><init>()V
+HSPLandroid/app/ActivityManager$RunningServiceInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/ActivityManager$RunningServiceInfo;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$1;)V
 HSPLandroid/app/ActivityManager$RunningServiceInfo;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/ActivityManager$RunningServiceInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/ActivityManager$RunningTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RunningTaskInfo;
+HSPLandroid/app/ActivityManager$RunningTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/ActivityManager$RunningTaskInfo;-><init>()V
+HSPLandroid/app/ActivityManager$RunningTaskInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/ActivityManager$RunningTaskInfo;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$1;)V
+HSPLandroid/app/ActivityManager$RunningTaskInfo;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/app/ActivityManager$RunningTaskInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/ActivityManager$StackInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$StackInfo;
+HSPLandroid/app/ActivityManager$StackInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/ActivityManager$StackInfo;-><init>()V
+HSPLandroid/app/ActivityManager$StackInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/ActivityManager$StackInfo;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$1;)V
+HSPLandroid/app/ActivityManager$StackInfo;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/ActivityManager$StackInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/ActivityManager$TaskDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$TaskDescription;
 HSPLandroid/app/ActivityManager$TaskDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/ActivityManager$TaskDescription;-><init>()V
+HSPLandroid/app/ActivityManager$TaskDescription;-><init>(Landroid/app/ActivityManager$TaskDescription;)V
 HSPLandroid/app/ActivityManager$TaskDescription;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/ActivityManager$TaskDescription;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$1;)V
+HSPLandroid/app/ActivityManager$TaskDescription;-><init>(Ljava/lang/String;Landroid/graphics/Bitmap;I)V
 HSPLandroid/app/ActivityManager$TaskDescription;-><init>(Ljava/lang/String;Landroid/graphics/Bitmap;ILjava/lang/String;IIIIZZIII)V
+HSPLandroid/app/ActivityManager$TaskDescription;->copyFrom(Landroid/app/ActivityManager$TaskDescription;)V
 HSPLandroid/app/ActivityManager$TaskDescription;->copyFromPreserveHiddenFields(Landroid/app/ActivityManager$TaskDescription;)V
+HSPLandroid/app/ActivityManager$TaskDescription;->getBackgroundColor()I
+HSPLandroid/app/ActivityManager$TaskDescription;->getEnsureNavigationBarContrastWhenTransparent()Z
+HSPLandroid/app/ActivityManager$TaskDescription;->getEnsureStatusBarContrastWhenTransparent()Z
 HSPLandroid/app/ActivityManager$TaskDescription;->getIcon()Landroid/graphics/Bitmap;
 HSPLandroid/app/ActivityManager$TaskDescription;->getIconFilename()Ljava/lang/String;
+HSPLandroid/app/ActivityManager$TaskDescription;->getIconResource()I
+HSPLandroid/app/ActivityManager$TaskDescription;->getInMemoryIcon()Landroid/graphics/Bitmap;
+HSPLandroid/app/ActivityManager$TaskDescription;->getLabel()Ljava/lang/String;
+HSPLandroid/app/ActivityManager$TaskDescription;->getNavigationBarColor()I
 HSPLandroid/app/ActivityManager$TaskDescription;->getPrimaryColor()I
+HSPLandroid/app/ActivityManager$TaskDescription;->getStatusBarColor()I
 HSPLandroid/app/ActivityManager$TaskDescription;->loadTaskDescriptionIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap;
 HSPLandroid/app/ActivityManager$TaskDescription;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/ActivityManager$TaskDescription;->restoreFromXml(Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/app/ActivityManager$TaskDescription;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLandroid/app/ActivityManager$TaskDescription;->setBackgroundColor(I)V
 HSPLandroid/app/ActivityManager$TaskDescription;->setEnsureNavigationBarContrastWhenTransparent(Z)V
 HSPLandroid/app/ActivityManager$TaskDescription;->setEnsureStatusBarContrastWhenTransparent(Z)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setIcon(I)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setIcon(Landroid/graphics/Bitmap;)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setIconFilename(Ljava/lang/String;)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setLabel(Ljava/lang/String;)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setMinHeight(I)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setMinWidth(I)V
 HSPLandroid/app/ActivityManager$TaskDescription;->setNavigationBarColor(I)V
 HSPLandroid/app/ActivityManager$TaskDescription;->setPrimaryColor(I)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setResizeMode(I)V
 HSPLandroid/app/ActivityManager$TaskDescription;->setStatusBarColor(I)V
 HSPLandroid/app/ActivityManager$TaskDescription;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/ActivityManager$TaskSnapshot$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$TaskSnapshot;
+HSPLandroid/app/ActivityManager$TaskSnapshot$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;-><init>()V
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->build()Landroid/app/ActivityManager$TaskSnapshot;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->getPixelFormat()I
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->getScaleFraction()F
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setColorSpace(Landroid/graphics/ColorSpace;)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setContentInsets(Landroid/graphics/Rect;)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setId(J)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setIsRealSnapshot(Z)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setIsTranslucent(Z)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setOrientation(I)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setPixelFormat(I)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setReducedResolution(Z)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setScaleFraction(F)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setSnapshot(Landroid/graphics/GraphicBuffer;)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setSystemUiVisibility(I)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setTopActivityComponent(Landroid/content/ComponentName;)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HPLandroid/app/ActivityManager$TaskSnapshot$Builder;->setWindowingMode(I)Landroid/app/ActivityManager$TaskSnapshot$Builder;
+HSPLandroid/app/ActivityManager$TaskSnapshot;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/ActivityManager$TaskSnapshot;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$1;)V
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getColorSpace()Landroid/graphics/ColorSpace;
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getContentInsets()Landroid/graphics/Rect;
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getId()J
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getOrientation()I
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getRotation()I
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getScale()F
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getSnapshot()Landroid/graphics/GraphicBuffer;
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getSystemUiVisibility()I
+HPLandroid/app/ActivityManager$TaskSnapshot;->getTopActivityComponent()Landroid/content/ComponentName;
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getWindowingMode()I
+HSPLandroid/app/ActivityManager$TaskSnapshot;->isRealSnapshot()Z
+HSPLandroid/app/ActivityManager$TaskSnapshot;->isReducedResolution()Z
+HSPLandroid/app/ActivityManager$TaskSnapshot;->isTranslucent()Z
+HPLandroid/app/ActivityManager$TaskSnapshot;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/ActivityManager$UidObserver;-><init>(Landroid/app/ActivityManager$OnUidImportanceListener;Landroid/content/Context;)V
 HSPLandroid/app/ActivityManager$UidObserver;->onUidGone(IZ)V
 HSPLandroid/app/ActivityManager$UidObserver;->onUidStateChanged(IIJI)V
 HSPLandroid/app/ActivityManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
 HSPLandroid/app/ActivityManager;->addOnUidImportanceListener(Landroid/app/ActivityManager$OnUidImportanceListener;I)V
+HSPLandroid/app/ActivityManager;->broadcastStickyIntent(Landroid/content/Intent;I)V
+HSPLandroid/app/ActivityManager;->broadcastStickyIntent(Landroid/content/Intent;II)V
+HSPLandroid/app/ActivityManager;->checkComponentPermission(Ljava/lang/String;IIZ)I
+HSPLandroid/app/ActivityManager;->checkUidPermission(Ljava/lang/String;I)I
+HSPLandroid/app/ActivityManager;->getAppTasks()Ljava/util/List;
 HSPLandroid/app/ActivityManager;->getCurrentUser()I
+HSPLandroid/app/ActivityManager;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;
+HSPLandroid/app/ActivityManager;->getLauncherLargeIconSize()I
+HSPLandroid/app/ActivityManager;->getLauncherLargeIconSizeInner(Landroid/content/Context;)I
+HSPLandroid/app/ActivityManager;->getLockTaskModeState()I
 HSPLandroid/app/ActivityManager;->getMemoryClass()I
 HSPLandroid/app/ActivityManager;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
 HSPLandroid/app/ActivityManager;->getMyMemoryState(Landroid/app/ActivityManager$RunningAppProcessInfo;)V
+HSPLandroid/app/ActivityManager;->getPackageImportance(Ljava/lang/String;)I
 HSPLandroid/app/ActivityManager;->getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo;
 HSPLandroid/app/ActivityManager;->getRunningAppProcesses()Ljava/util/List;
 HSPLandroid/app/ActivityManager;->getRunningServices(I)Ljava/util/List;
+HSPLandroid/app/ActivityManager;->getRunningTasks(I)Ljava/util/List;
 HSPLandroid/app/ActivityManager;->getService()Landroid/app/IActivityManager;
 HSPLandroid/app/ActivityManager;->getTaskService()Landroid/app/IActivityTaskManager;
+HSPLandroid/app/ActivityManager;->getUidImportance(I)I
+HSPLandroid/app/ActivityManager;->handleIncomingUser(IIIZZLjava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/ActivityManager;->isForegroundService(I)Z
 HSPLandroid/app/ActivityManager;->isHighEndGfx()Z
 HSPLandroid/app/ActivityManager;->isLowRamDevice()Z
 HSPLandroid/app/ActivityManager;->isLowRamDeviceStatic()Z
+HSPLandroid/app/ActivityManager;->isProcStateBackground(I)Z
+HSPLandroid/app/ActivityManager;->isProfileForeground(Landroid/os/UserHandle;)Z
 HSPLandroid/app/ActivityManager;->isRunningInTestHarness()Z
+HSPLandroid/app/ActivityManager;->isSmallBatteryDevice()Z
 HSPLandroid/app/ActivityManager;->isStartResultFatalError(I)Z
+HSPLandroid/app/ActivityManager;->isStartResultSuccessful(I)Z
 HSPLandroid/app/ActivityManager;->isUserAMonkey()Z
+HSPLandroid/app/ActivityManager;->isUserRunning(I)Z
+HPLandroid/app/ActivityManager;->noteAlarmFinish(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;)V
+HPLandroid/app/ActivityManager;->noteAlarmStart(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;)V
+HPLandroid/app/ActivityManager;->noteWakeupAlarm(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/ActivityManager;->processStateAmToProto(I)I
+HSPLandroid/app/ActivityManager;->staticGetLargeMemoryClass()I
 HSPLandroid/app/ActivityManager;->staticGetMemoryClass()I
+HSPLandroid/app/ActivityManagerInternal;-><init>()V
 HSPLandroid/app/ActivityOptions;-><init>()V
+HSPLandroid/app/ActivityOptions;-><init>(Landroid/os/Bundle;)V
+HPLandroid/app/ActivityOptions;->abort(Landroid/app/ActivityOptions;)V
+HSPLandroid/app/ActivityOptions;->disallowEnterPictureInPictureWhileLaunching()Z
+HSPLandroid/app/ActivityOptions;->freezeRecentTasksReordering()Z
 HSPLandroid/app/ActivityOptions;->fromBundle(Landroid/os/Bundle;)Landroid/app/ActivityOptions;
+HSPLandroid/app/ActivityOptions;->getAnimationType()I
+HSPLandroid/app/ActivityOptions;->getAvoidMoveToFront()Z
+PLandroid/app/ActivityOptions;->getCallerDisplayId()I
+HPLandroid/app/ActivityOptions;->getLaunchActivityType()I
+HSPLandroid/app/ActivityOptions;->getLaunchBounds()Landroid/graphics/Rect;
+HSPLandroid/app/ActivityOptions;->getLaunchDisplayId()I
+HSPLandroid/app/ActivityOptions;->getLaunchTaskBehind()Z
+HSPLandroid/app/ActivityOptions;->getLaunchTaskId()I
+HSPLandroid/app/ActivityOptions;->getLaunchWindowingMode()I
+HSPLandroid/app/ActivityOptions;->getLockTaskMode()Z
+HPLandroid/app/ActivityOptions;->getPendingIntentLaunchFlags()I
+HSPLandroid/app/ActivityOptions;->getRemoteAnimationAdapter()Landroid/view/RemoteAnimationAdapter;
+HSPLandroid/app/ActivityOptions;->getRotationAnimationHint()I
+HSPLandroid/app/ActivityOptions;->getUsageTimeReport()Landroid/app/PendingIntent;
+HSPLandroid/app/ActivityOptions;->makeBasic()Landroid/app/ActivityOptions;
+HSPLandroid/app/ActivityOptions;->makeCustomAnimation(Landroid/content/Context;II)Landroid/app/ActivityOptions;
+HSPLandroid/app/ActivityOptions;->makeCustomAnimation(Landroid/content/Context;IILandroid/os/Handler;Landroid/app/ActivityOptions$OnAnimationStartedListener;)Landroid/app/ActivityOptions;
+HSPLandroid/app/ActivityOptions;->makeRemoteAnimation(Landroid/view/RemoteAnimationAdapter;)Landroid/app/ActivityOptions;
+HSPLandroid/app/ActivityOptions;->popAppVerificationBundle()Landroid/os/Bundle;
+HSPLandroid/app/ActivityOptions;->setLaunchActivityType(I)V
+HSPLandroid/app/ActivityOptions;->setLaunchDisplayId(I)Landroid/app/ActivityOptions;
+HSPLandroid/app/ActivityOptions;->setLaunchWindowingMode(I)V
+HSPLandroid/app/ActivityOptions;->setOnAnimationStartedListener(Landroid/os/Handler;Landroid/app/ActivityOptions$OnAnimationStartedListener;)V
 HSPLandroid/app/ActivityOptions;->toBundle()Landroid/os/Bundle;
 HSPLandroid/app/ActivityTaskManager$1;->create()Landroid/app/IActivityTaskManager;
 HSPLandroid/app/ActivityTaskManager$1;->create()Ljava/lang/Object;
+HSPLandroid/app/ActivityTaskManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLandroid/app/ActivityTaskManager;->getDefaultAppRecentsLimitStatic()I
+HSPLandroid/app/ActivityTaskManager;->getMaxAppRecentsLimitStatic()I
+HSPLandroid/app/ActivityTaskManager;->getMaxRecentTasksStatic()I
 HSPLandroid/app/ActivityTaskManager;->getService()Landroid/app/IActivityTaskManager;
+HSPLandroid/app/ActivityTaskManager;->supportsMultiWindow(Landroid/content/Context;)Z
+HSPLandroid/app/ActivityTaskManager;->supportsSplitScreenMultiWindow(Landroid/content/Context;)Z
 HSPLandroid/app/ActivityThread$1;-><init>(Landroid/app/ActivityThread;)V
 HSPLandroid/app/ActivityThread$1;->run()V
+HSPLandroid/app/ActivityThread$ActivityClientRecord;-><init>()V
 HSPLandroid/app/ActivityThread$ActivityClientRecord;-><init>(Landroid/os/IBinder;Landroid/content/Intent;ILandroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/util/List;Ljava/util/List;ZLandroid/app/ProfilerInfo;Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
 HSPLandroid/app/ActivityThread$ActivityClientRecord;->access$3700(Landroid/app/ActivityThread$ActivityClientRecord;)Z
 HSPLandroid/app/ActivityThread$ActivityClientRecord;->access$3800(Landroid/app/ActivityThread$ActivityClientRecord;)Z
+HSPLandroid/app/ActivityThread$ActivityClientRecord;->access$3900(Landroid/app/ActivityThread$ActivityClientRecord;)Landroid/content/res/Configuration;
+HSPLandroid/app/ActivityThread$ActivityClientRecord;->access$3900(Landroid/app/ActivityThread$ActivityClientRecord;)Z
 HSPLandroid/app/ActivityThread$ActivityClientRecord;->access$4000(Landroid/app/ActivityThread$ActivityClientRecord;)Landroid/content/res/Configuration;
 HSPLandroid/app/ActivityThread$ActivityClientRecord;->access$4002(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/res/Configuration;)Landroid/content/res/Configuration;
+HSPLandroid/app/ActivityThread$ActivityClientRecord;->access$4100(Landroid/app/ActivityThread$ActivityClientRecord;)Landroid/content/res/Configuration;
+HSPLandroid/app/ActivityThread$ActivityClientRecord;->access$4102(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/res/Configuration;)Landroid/content/res/Configuration;
 HSPLandroid/app/ActivityThread$ActivityClientRecord;->getLifecycleState()I
 HSPLandroid/app/ActivityThread$ActivityClientRecord;->init()V
 HSPLandroid/app/ActivityThread$ActivityClientRecord;->isPersistable()Z
@@ -658,32 +1116,43 @@
 HSPLandroid/app/ActivityThread$AppBindData;-><init>()V
 HSPLandroid/app/ActivityThread$ApplicationThread;-><init>(Landroid/app/ActivityThread;)V
 HSPLandroid/app/ActivityThread$ApplicationThread;-><init>(Landroid/app/ActivityThread;Landroid/app/ActivityThread$1;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->bindApplication(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ProviderInfoList;Landroid/content/ComponentName;Landroid/app/ProfilerInfo;Landroid/os/Bundle;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;IZZZZLandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/util/Map;Landroid/os/Bundle;Ljava/lang/String;Landroid/content/AutofillOptions;Landroid/content/ContentCaptureOptions;[J)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->bindApplication(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;Landroid/content/ComponentName;Landroid/app/ProfilerInfo;Landroid/os/Bundle;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;IZZZZLandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/util/Map;Landroid/os/Bundle;Ljava/lang/String;Landroid/content/AutofillOptions;Landroid/content/ContentCaptureOptions;[J)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->clearDnsCache()V
 HSPLandroid/app/ActivityThread$ApplicationThread;->dispatchPackageBroadcast(I[Ljava/lang/String;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->dumpDatabaseInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;Z)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->dumpDbInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->dumpGfxInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->dumpMemInfo(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZZ[Ljava/lang/String;)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->dumpMemInfo(Landroid/util/proto/ProtoOutputStream;Landroid/os/Debug$MemoryInfo;ZZZZ)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->dumpMemInfo(Ljava/io/PrintWriter;Landroid/os/Debug$MemoryInfo;ZZZZZ)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->dumpMemInfoProto(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZ[Ljava/lang/String;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->dumpProvider(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->dumpService(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->lambda$scheduleTrimMemory$0(Ljava/lang/Object;I)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->requestAssistContextExtras(Landroid/os/IBinder;Landroid/os/IBinder;III)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleApplicationInfoChanged(Landroid/content/pm/ApplicationInfo;)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleBindService(Landroid/os/IBinder;Landroid/content/Intent;ZI)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleCreateBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;II)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleCreateService(Landroid/os/IBinder;Landroid/content/pm/ServiceInfo;Landroid/content/res/CompatibilityInfo;I)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleDestroyBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;I)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleEnterAnimationComplete(Landroid/os/IBinder;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleInstallProvider(Landroid/content/pm/ProviderInfo;)V
 PLandroid/app/ActivityThread$ApplicationThread;->scheduleLowMemory()V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleReceiver(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZII)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleRegisteredReceiver(Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZII)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleServiceArgs(Landroid/os/IBinder;Landroid/content/pm/ParceledListSlice;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleSleeping(Landroid/os/IBinder;Z)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleStopService(Landroid/os/IBinder;)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleTrimMemory(I)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleUnbindService(Landroid/os/IBinder;Landroid/content/Intent;)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->setCoreSettings(Landroid/os/Bundle;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->setNetworkBlockSeq(J)V
 HSPLandroid/app/ActivityThread$ApplicationThread;->setProcessState(I)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->unstableProviderDied(Landroid/os/IBinder;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->updateHttpProxy()V
+HSPLandroid/app/ActivityThread$ApplicationThread;->updateTimeZone()V
 HSPLandroid/app/ActivityThread$BindServiceData;-><init>()V
 HSPLandroid/app/ActivityThread$ContextCleanupInfo;-><init>()V
 HSPLandroid/app/ActivityThread$CreateBackupAgentData;-><init>()V
@@ -706,10 +1175,12 @@
 HSPLandroid/app/ActivityThread$PurgeIdler;-><init>(Landroid/app/ActivityThread;)V
 HSPLandroid/app/ActivityThread$PurgeIdler;->queueIdle()Z
 HSPLandroid/app/ActivityThread$ReceiverData;-><init>(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZLandroid/os/IBinder;I)V
+HSPLandroid/app/ActivityThread$RequestAssistContextExtras;-><init>()V
 HSPLandroid/app/ActivityThread$ServiceArgsData;-><init>()V
 HSPLandroid/app/ActivityThread$ServiceArgsData;->toString()Ljava/lang/String;
 HSPLandroid/app/ActivityThread;-><init>()V
 HSPLandroid/app/ActivityThread;->access$100(Landroid/app/ActivityThread;ILjava/lang/Object;I)V
+HSPLandroid/app/ActivityThread;->access$100(Landroid/app/ActivityThread;ILjava/lang/Object;IIZ)V
 HSPLandroid/app/ActivityThread;->access$1100(Landroid/app/ActivityThread;I)V
 HSPLandroid/app/ActivityThread;->access$1300(Landroid/app/ActivityThread;Landroid/app/ActivityThread$AppBindData;)V
 HSPLandroid/app/ActivityThread;->access$1400(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ReceiverData;)V
@@ -718,21 +1189,29 @@
 HSPLandroid/app/ActivityThread;->access$1700(Landroid/app/ActivityThread;Landroid/app/ActivityThread$BindServiceData;)V
 HSPLandroid/app/ActivityThread;->access$1800(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ServiceArgsData;)V
 HSPLandroid/app/ActivityThread;->access$1900(Landroid/app/ActivityThread;Landroid/os/IBinder;)V
+HSPLandroid/app/ActivityThread;->access$2000(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpComponentInfo;)V
 HSPLandroid/app/ActivityThread;->access$2100(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateBackupAgentData;)V
 HSPLandroid/app/ActivityThread;->access$2200(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateBackupAgentData;)V
+HSPLandroid/app/ActivityThread;->access$2400(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpComponentInfo;)V
 HSPLandroid/app/ActivityThread;->access$2500(Landroid/app/ActivityThread;Landroid/os/Bundle;)V
+HSPLandroid/app/ActivityThread;->access$2500(Landroid/app/ActivityThread;Landroid/os/IBinder;Z)V
 HSPLandroid/app/ActivityThread;->access$2600(Landroid/app/ActivityThread;Landroid/os/Bundle;)V
 HSPLandroid/app/ActivityThread;->access$2700(Landroid/app/ActivityThread;Landroid/os/IBinder;)V
+HSPLandroid/app/ActivityThread;->access$2800(Landroid/app/ActivityThread;Landroid/os/IBinder;)V
 HSPLandroid/app/ActivityThread;->access$300(Landroid/app/ActivityThread;ILjava/lang/Object;I)V
 HSPLandroid/app/ActivityThread;->access$3200(Landroid/app/ActivityThread;)Landroid/app/servertransaction/TransactionExecutor;
 HSPLandroid/app/ActivityThread;->access$3300(Landroid/app/ActivityThread;)Landroid/app/servertransaction/TransactionExecutor;
 HSPLandroid/app/ActivityThread;->access$3400(Landroid/app/ActivityThread;)V
 HSPLandroid/app/ActivityThread;->access$3500(Landroid/app/ActivityThread;)V
 HSPLandroid/app/ActivityThread;->access$3600(Landroid/app/ActivityThread;)V
+HSPLandroid/app/ActivityThread;->access$400(Landroid/app/ActivityThread;Ljava/io/FileDescriptor;)V
+HSPLandroid/app/ActivityThread;->access$600(Landroid/app/ActivityThread;)Ljava/lang/Object;
+HSPLandroid/app/ActivityThread;->access$702(Landroid/app/ActivityThread;J)J
 HSPLandroid/app/ActivityThread;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider;
 HSPLandroid/app/ActivityThread;->acquireProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider;
 HSPLandroid/app/ActivityThread;->applyCompatConfiguration(I)Landroid/content/res/Configuration;
 HSPLandroid/app/ActivityThread;->applyConfigCompatMainThread(ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Configuration;
+HSPLandroid/app/ActivityThread;->applyConfigurationToResources(Landroid/content/res/Configuration;)V
 HSPLandroid/app/ActivityThread;->applyPendingProcessState()V
 HSPLandroid/app/ActivityThread;->attach(ZJ)V
 HSPLandroid/app/ActivityThread;->callActivityOnSaveInstanceState(Landroid/app/ActivityThread$ActivityClientRecord;)V
@@ -748,6 +1227,9 @@
 HSPLandroid/app/ActivityThread;->currentApplication()Landroid/app/Application;
 HSPLandroid/app/ActivityThread;->currentOpPackageName()Ljava/lang/String;
 HSPLandroid/app/ActivityThread;->currentPackageName()Ljava/lang/String;
+HSPLandroid/app/ActivityThread;->currentProcessName()Ljava/lang/String;
+HSPLandroid/app/ActivityThread;->deliverNewIntents(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;)V
+HSPLandroid/app/ActivityThread;->deliverResults(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;Ljava/lang/String;)V
 HSPLandroid/app/ActivityThread;->doGcIfNeeded()V
 HSPLandroid/app/ActivityThread;->doGcIfNeeded(Ljava/lang/String;)V
 HSPLandroid/app/ActivityThread;->dumpMemInfoTable(Landroid/util/proto/ProtoOutputStream;Landroid/os/Debug$MemoryInfo;ZZJJJJJJ)V
@@ -776,6 +1258,7 @@
 HSPLandroid/app/ActivityThread;->getSystemUiContext()Landroid/app/ContextImpl;
 HSPLandroid/app/ActivityThread;->getTopLevelResources(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/app/LoadedApk;)Landroid/content/res/Resources;
 HSPLandroid/app/ActivityThread;->handleActivityConfigurationChanged(Landroid/os/IBinder;Landroid/content/res/Configuration;I)V
+HSPLandroid/app/ActivityThread;->handleApplicationInfoChanged(Landroid/content/pm/ApplicationInfo;)V
 HSPLandroid/app/ActivityThread;->handleBindApplication(Landroid/app/ActivityThread$AppBindData;)V
 HSPLandroid/app/ActivityThread;->handleBindService(Landroid/app/ActivityThread$BindServiceData;)V
 HSPLandroid/app/ActivityThread;->handleConfigurationChanged(Landroid/content/res/Configuration;)V
@@ -785,26 +1268,38 @@
 HSPLandroid/app/ActivityThread;->handleDestroyActivity(Landroid/os/IBinder;ZIZLjava/lang/String;)V
 HSPLandroid/app/ActivityThread;->handleDestroyBackupAgent(Landroid/app/ActivityThread$CreateBackupAgentData;)V
 HSPLandroid/app/ActivityThread;->handleDispatchPackageBroadcast(I[Ljava/lang/String;)V
+HSPLandroid/app/ActivityThread;->handleDumpProvider(Landroid/app/ActivityThread$DumpComponentInfo;)V
 HSPLandroid/app/ActivityThread;->handleDumpService(Landroid/app/ActivityThread$DumpComponentInfo;)V
 HSPLandroid/app/ActivityThread;->handleEnterAnimationComplete(Landroid/os/IBinder;)V
+HSPLandroid/app/ActivityThread;->handleInstallProvider(Landroid/content/pm/ProviderInfo;)V
 HSPLandroid/app/ActivityThread;->handleLaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;Landroid/content/Intent;)Landroid/app/Activity;
 HPLandroid/app/ActivityThread;->handleLowMemory()V
+HSPLandroid/app/ActivityThread;->handleNewIntent(Landroid/os/IBinder;Ljava/util/List;)V
 HSPLandroid/app/ActivityThread;->handlePauseActivity(Landroid/os/IBinder;ZZILandroid/app/servertransaction/PendingTransactionActions;Ljava/lang/String;)V
 HSPLandroid/app/ActivityThread;->handleReceiver(Landroid/app/ActivityThread$ReceiverData;)V
+HSPLandroid/app/ActivityThread;->handleRelaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/ActivityThread;->handleRelaunchActivityInner(Landroid/app/ActivityThread$ActivityClientRecord;ILjava/util/List;Ljava/util/List;Landroid/app/servertransaction/PendingTransactionActions;ZLandroid/content/res/Configuration;Ljava/lang/String;)V
+HSPLandroid/app/ActivityThread;->handleRequestAssistContextExtras(Landroid/app/ActivityThread$RequestAssistContextExtras;)V
 HSPLandroid/app/ActivityThread;->handleResumeActivity(Landroid/os/IBinder;ZZLjava/lang/String;)V
+HSPLandroid/app/ActivityThread;->handleSendResult(Landroid/os/IBinder;Ljava/util/List;Ljava/lang/String;)V
 HSPLandroid/app/ActivityThread;->handleServiceArgs(Landroid/app/ActivityThread$ServiceArgsData;)V
 HSPLandroid/app/ActivityThread;->handleSetCoreSettings(Landroid/os/Bundle;)V
+HSPLandroid/app/ActivityThread;->handleSleeping(Landroid/os/IBinder;Z)V
 HSPLandroid/app/ActivityThread;->handleStartActivity(Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 HSPLandroid/app/ActivityThread;->handleStopActivity(Landroid/os/IBinder;ILandroid/app/servertransaction/PendingTransactionActions;ZLjava/lang/String;)V
 HSPLandroid/app/ActivityThread;->handleStopService(Landroid/os/IBinder;)V
 HSPLandroid/app/ActivityThread;->handleTopResumedActivityChanged(Landroid/os/IBinder;ZLjava/lang/String;)V
 HSPLandroid/app/ActivityThread;->handleTrimMemory(I)V
 HSPLandroid/app/ActivityThread;->handleUnbindService(Landroid/app/ActivityThread$BindServiceData;)V
+HSPLandroid/app/ActivityThread;->handleUnstableProviderDied(Landroid/os/IBinder;Z)V
+HSPLandroid/app/ActivityThread;->handleUnstableProviderDiedLocked(Landroid/os/IBinder;Z)V
 HSPLandroid/app/ActivityThread;->incProviderRefLocked(Landroid/app/ActivityThread$ProviderRefCount;Z)V
 HSPLandroid/app/ActivityThread;->initializeMainlineModules()V
 HSPLandroid/app/ActivityThread;->installContentProviders(Landroid/content/Context;Ljava/util/List;)V
 HSPLandroid/app/ActivityThread;->installProvider(Landroid/content/Context;Landroid/app/ContentProviderHolder;Landroid/content/pm/ProviderInfo;ZZZ)Landroid/app/ContentProviderHolder;
 HSPLandroid/app/ActivityThread;->installProviderAuthoritiesLocked(Landroid/content/IContentProvider;Landroid/content/ContentProvider;Landroid/app/ContentProviderHolder;)Landroid/app/ActivityThread$ProviderClientRecord;
+HSPLandroid/app/ActivityThread;->installSystemApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)V
+HSPLandroid/app/ActivityThread;->installSystemProviders(Ljava/util/List;)V
 HSPLandroid/app/ActivityThread;->isLoadedApkResourceDirsUpToDate(Landroid/app/LoadedApk;Landroid/content/pm/ApplicationInfo;)Z
 HSPLandroid/app/ActivityThread;->isSystem()Z
 HSPLandroid/app/ActivityThread;->lambda$A4ykhsPb8qV3ffTqpQDklHSMDJ0(Landroid/app/ActivityThread;)V
@@ -824,9 +1319,12 @@
 HSPLandroid/app/ActivityThread;->performResumeActivity(Landroid/os/IBinder;ZLjava/lang/String;)Landroid/app/ActivityThread$ActivityClientRecord;
 HSPLandroid/app/ActivityThread;->performStopActivityInner(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions$StopInfo;ZZLjava/lang/String;)V
 HSPLandroid/app/ActivityThread;->performUserLeavingActivity(Landroid/app/ActivityThread$ActivityClientRecord;)V
+HSPLandroid/app/ActivityThread;->prepareRelaunchActivity(Landroid/os/IBinder;Ljava/util/List;Ljava/util/List;ILandroid/util/MergedConfiguration;Z)Landroid/app/ActivityThread$ActivityClientRecord;
 HSPLandroid/app/ActivityThread;->printRow(Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/Object;)V
 HSPLandroid/app/ActivityThread;->purgePendingResources()V
+HSPLandroid/app/ActivityThread;->relaunchAllActivities(Z)V
 HSPLandroid/app/ActivityThread;->releaseProvider(Landroid/content/IContentProvider;Z)Z
+HSPLandroid/app/ActivityThread;->reportRelaunch(Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 HSPLandroid/app/ActivityThread;->reportSizeConfigurations(Landroid/app/ActivityThread$ActivityClientRecord;)V
 HSPLandroid/app/ActivityThread;->reportStop(Landroid/app/servertransaction/PendingTransactionActions;)V
 HSPLandroid/app/ActivityThread;->reportTopResumedActivityChanged(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;)V
@@ -838,10 +1336,13 @@
 HSPLandroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;I)V
 HSPLandroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;IIZ)V
 HSPLandroid/app/ActivityThread;->setupGraphicsSupport(Landroid/content/Context;)V
+HSPLandroid/app/ActivityThread;->systemMain()Landroid/app/ActivityThread;
 HSPLandroid/app/ActivityThread;->unscheduleGcIdler()V
 HSPLandroid/app/ActivityThread;->updateDebugViewAttributeState()Z
 HSPLandroid/app/ActivityThread;->updateDefaultDensity()V
+HSPLandroid/app/ActivityThread;->updateHttpProxy(Landroid/content/Context;)V
 HSPLandroid/app/ActivityThread;->updateLocaleListFromAppContext(Landroid/content/Context;Landroid/os/LocaleList;)V
+HSPLandroid/app/ActivityThread;->updatePendingActivityConfiguration(Landroid/os/IBinder;Landroid/content/res/Configuration;)V
 HSPLandroid/app/ActivityThread;->updatePendingConfiguration(Landroid/content/res/Configuration;)V
 HSPLandroid/app/ActivityThread;->updateProcessState(IZ)V
 HSPLandroid/app/ActivityThread;->updateVisibility(Landroid/app/ActivityThread$ActivityClientRecord;Z)V
@@ -856,6 +1357,12 @@
 HSPLandroid/app/ActivityTransitionState;->restoreReenteringViews()V
 HSPLandroid/app/ActivityTransitionState;->saveState(Landroid/os/Bundle;)V
 HSPLandroid/app/ActivityTransitionState;->setEnterActivityOptions(Landroid/app/Activity;Landroid/app/ActivityOptions;)V
+HSPLandroid/app/ActivityTransitionState;->startExitBackTransition(Landroid/app/Activity;)Z
+HSPLandroid/app/ActivityTransitionState;->startExitOutTransition(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/AlarmManager$AlarmClockInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AlarmManager$AlarmClockInfo;
+HSPLandroid/app/AlarmManager$AlarmClockInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/AlarmManager$AlarmClockInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/AlarmManager$AlarmClockInfo;->getTriggerTime()J
 HSPLandroid/app/AlarmManager$ListenerWrapper;-><init>(Landroid/app/AlarmManager;Landroid/app/AlarmManager$OnAlarmListener;)V
 HSPLandroid/app/AlarmManager$ListenerWrapper;->cancel()V
 HSPLandroid/app/AlarmManager$ListenerWrapper;->doAlarm(Landroid/app/IAlarmCompleteListener;)V
@@ -866,14 +1373,33 @@
 HSPLandroid/app/AlarmManager;->access$100()Landroid/util/ArrayMap;
 HSPLandroid/app/AlarmManager;->cancel(Landroid/app/AlarmManager$OnAlarmListener;)V
 HSPLandroid/app/AlarmManager;->cancel(Landroid/app/PendingIntent;)V
+HSPLandroid/app/AlarmManager;->getNextAlarmClock()Landroid/app/AlarmManager$AlarmClockInfo;
 HSPLandroid/app/AlarmManager;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
+HPLandroid/app/AlarmManager;->getNextWakeFromIdleTime()J
 HSPLandroid/app/AlarmManager;->legacyExactLength()J
+HSPLandroid/app/AlarmManager;->set(IJJJLandroid/app/PendingIntent;Landroid/os/WorkSource;)V
+HSPLandroid/app/AlarmManager;->set(IJJJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;Landroid/os/WorkSource;)V
 HSPLandroid/app/AlarmManager;->set(IJLandroid/app/PendingIntent;)V
 HSPLandroid/app/AlarmManager;->set(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
+HSPLandroid/app/AlarmManager;->setAndAllowWhileIdle(IJLandroid/app/PendingIntent;)V
 HSPLandroid/app/AlarmManager;->setExact(IJLandroid/app/PendingIntent;)V
+HSPLandroid/app/AlarmManager;->setExact(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
 HSPLandroid/app/AlarmManager;->setExactAndAllowWhileIdle(IJLandroid/app/PendingIntent;)V
 HSPLandroid/app/AlarmManager;->setImpl(IJJJILandroid/app/PendingIntent;Landroid/app/AlarmManager$OnAlarmListener;Ljava/lang/String;Landroid/os/Handler;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
 HSPLandroid/app/AlarmManager;->setInexactRepeating(IJJLandroid/app/PendingIntent;)V
+HSPLandroid/app/AlarmManager;->setWindow(IJJLandroid/app/PendingIntent;)V
+HSPLandroid/app/AlarmManager;->setWindow(IJJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
+HSPLandroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;I)V
+HSPLandroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog;
+HSPLandroid/app/AlertDialog;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/AlertDialog;-><init>(Landroid/content/Context;I)V
+HSPLandroid/app/AlertDialog;-><init>(Landroid/content/Context;IZ)V
+HSPLandroid/app/AlertDialog;->access$000(Landroid/app/AlertDialog;)Lcom/android/internal/app/AlertController;
+HSPLandroid/app/AlertDialog;->onCreate(Landroid/os/Bundle;)V
+HSPLandroid/app/AlertDialog;->resolveDialogTheme(Landroid/content/Context;I)I
+HSPLandroid/app/AlertDialog;->setTitle(Ljava/lang/CharSequence;)V
+HSPLandroid/app/AlertDialog;->setView(Landroid/view/View;)V
 HSPLandroid/app/AppCompatCallbacks;-><init>([J)V
 HSPLandroid/app/AppCompatCallbacks;->install([J)V
 HSPLandroid/app/AppCompatCallbacks;->isChangeEnabled(J)Z
@@ -888,28 +1414,239 @@
 HSPLandroid/app/AppGlobals;->getInitialApplication()Landroid/app/Application;
 HSPLandroid/app/AppGlobals;->getIntCoreSetting(Ljava/lang/String;I)I
 HSPLandroid/app/AppGlobals;->getPackageManager()Landroid/content/pm/IPackageManager;
+HSPLandroid/app/AppGlobals;->getPermissionManager()Landroid/permission/IPermissionManager;
+HSPLandroid/app/AppOpsManager$1;-><init>(Landroid/app/AppOpsManager;Landroid/app/AppOpsManager$OnOpChangedListener;)V
+HSPLandroid/app/AppOpsManager$1;->opChanged(IILjava/lang/String;)V
+HSPLandroid/app/AppOpsManager$2;-><init>(Landroid/app/AppOpsManager;Ljava/util/concurrent/Executor;Landroid/app/AppOpsManager$OnOpActiveChangedListener;)V
+HSPLandroid/app/AppOpsManager$2;->lambda$opActiveChanged$0(Landroid/app/AppOpsManager$OnOpActiveChangedListener;IILjava/lang/String;Z)V
+HSPLandroid/app/AppOpsManager$2;->opActiveChanged(IILjava/lang/String;Z)V
+HSPLandroid/app/AppOpsManager$3;->opNoted(IILjava/lang/String;I)V
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps$1;-><init>()V
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;-><clinit>()V
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;-><init>(Ljava/lang/String;)V
+HPLandroid/app/AppOpsManager$HistoricalFeatureOps;-><init>(Ljava/lang/String;Landroid/util/ArrayMap;)V
+HPLandroid/app/AppOpsManager$HistoricalFeatureOps;->access$2900(Landroid/app/AppOpsManager$HistoricalFeatureOps;Landroid/app/AppOpsManager$HistoricalFeatureOps;)V
+HPLandroid/app/AppOpsManager$HistoricalFeatureOps;->access$3200(Landroid/app/AppOpsManager$HistoricalFeatureOps;)Z
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->access$3300(Landroid/app/AppOpsManager$HistoricalFeatureOps;IIIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->access$3400(Landroid/app/AppOpsManager$HistoricalFeatureOps;IIIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->access$3500(Landroid/app/AppOpsManager$HistoricalFeatureOps;IIIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->getFeatureId()Ljava/lang/String;
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->getOp(Ljava/lang/String;)Landroid/app/AppOpsManager$HistoricalOp;
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->getOpAt(I)Landroid/app/AppOpsManager$HistoricalOp;
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->getOpCount()I
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->getOrCreateHistoricalOp(I)Landroid/app/AppOpsManager$HistoricalOp;
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->increaseAccessCount(IIIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->increaseAccessDuration(IIIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->increaseRejectCount(IIIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->isEmpty()Z
+HSPLandroid/app/AppOpsManager$HistoricalFeatureOps;->merge(Landroid/app/AppOpsManager$HistoricalFeatureOps;)V
+HPLandroid/app/AppOpsManager$HistoricalFeatureOps;->splice(D)Landroid/app/AppOpsManager$HistoricalFeatureOps;
+HSPLandroid/app/AppOpsManager$HistoricalOp;-><init>(I)V
+HPLandroid/app/AppOpsManager$HistoricalOp;->access$3700(Landroid/app/AppOpsManager$HistoricalOp;Landroid/app/AppOpsManager$HistoricalOp;)V
+HPLandroid/app/AppOpsManager$HistoricalOp;->access$4100(Landroid/app/AppOpsManager$HistoricalOp;)Z
+HSPLandroid/app/AppOpsManager$HistoricalOp;->access$4200(Landroid/app/AppOpsManager$HistoricalOp;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->access$4300(Landroid/app/AppOpsManager$HistoricalOp;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->access$4400(Landroid/app/AppOpsManager$HistoricalOp;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->getOpName()Ljava/lang/String;
+HSPLandroid/app/AppOpsManager$HistoricalOp;->getOrCreateAccessCount()Landroid/util/LongSparseLongArray;
+HSPLandroid/app/AppOpsManager$HistoricalOp;->getOrCreateAccessDuration()Landroid/util/LongSparseLongArray;
+HSPLandroid/app/AppOpsManager$HistoricalOp;->getOrCreateRejectCount()Landroid/util/LongSparseLongArray;
+HSPLandroid/app/AppOpsManager$HistoricalOp;->hasData(Landroid/util/LongSparseLongArray;)Z
+HSPLandroid/app/AppOpsManager$HistoricalOp;->increaseAccessCount(IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->increaseAccessDuration(IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->increaseCount(Landroid/util/LongSparseLongArray;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->increaseRejectCount(IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->isEmpty()Z
+HSPLandroid/app/AppOpsManager$HistoricalOp;->lambda$DkVcBvqB32SMHlxw0sWQPh3GL1A(Landroid/app/AppOpsManager$HistoricalOp;)Landroid/util/LongSparseLongArray;
+HSPLandroid/app/AppOpsManager$HistoricalOp;->lambda$HUOLFYs8TiaQIOXcrq6JzjxA6gs(Landroid/app/AppOpsManager$HistoricalOp;)Landroid/util/LongSparseLongArray;
+HSPLandroid/app/AppOpsManager$HistoricalOp;->lambda$Vs6pDL0wjOBTquwNnreWVbPQrn4(Landroid/app/AppOpsManager$HistoricalOp;)Landroid/util/LongSparseLongArray;
+HSPLandroid/app/AppOpsManager$HistoricalOp;->merge(Landroid/app/AppOpsManager$HistoricalOp;)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->merge(Ljava/util/function/Supplier;Landroid/util/LongSparseLongArray;)V
+HPLandroid/app/AppOpsManager$HistoricalOp;->splice(D)Landroid/app/AppOpsManager$HistoricalOp;
+HPLandroid/app/AppOpsManager$HistoricalOp;->splice(Landroid/util/LongSparseLongArray;Ljava/util/function/Supplier;D)V
+HSPLandroid/app/AppOpsManager$HistoricalOps;-><init>(JJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOps;->getBeginTimeMillis()J
+PLandroid/app/AppOpsManager$HistoricalOps;->getDurationMillis()J
+HSPLandroid/app/AppOpsManager$HistoricalOps;->getEndTimeMillis()J
+HSPLandroid/app/AppOpsManager$HistoricalOps;->getOrCreateHistoricalUidOps(I)Landroid/app/AppOpsManager$HistoricalUidOps;
+HSPLandroid/app/AppOpsManager$HistoricalOps;->getUidCount()I
+HSPLandroid/app/AppOpsManager$HistoricalOps;->getUidOps(I)Landroid/app/AppOpsManager$HistoricalUidOps;
+HSPLandroid/app/AppOpsManager$HistoricalOps;->getUidOpsAt(I)Landroid/app/AppOpsManager$HistoricalUidOps;
+HSPLandroid/app/AppOpsManager$HistoricalOps;->increaseAccessCount(IILjava/lang/String;Ljava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOps;->increaseAccessDuration(IILjava/lang/String;Ljava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOps;->increaseRejectCount(IILjava/lang/String;Ljava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOps;->isEmpty()Z
+HSPLandroid/app/AppOpsManager$HistoricalOps;->merge(Landroid/app/AppOpsManager$HistoricalOps;)V
+HSPLandroid/app/AppOpsManager$HistoricalOps;->offsetBeginAndEndTime(J)V
+HSPLandroid/app/AppOpsManager$HistoricalOps;->round(D)D
+HSPLandroid/app/AppOpsManager$HistoricalOps;->setBeginAndEndTime(JJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOps;->setEndTime(J)V
+HPLandroid/app/AppOpsManager$HistoricalOps;->splice(DZ)Landroid/app/AppOpsManager$HistoricalOps;
+HSPLandroid/app/AppOpsManager$HistoricalOpsRequest$Builder;-><init>(JJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOpsRequest$Builder;->build()Landroid/app/AppOpsManager$HistoricalOpsRequest;
+HSPLandroid/app/AppOpsManager$HistoricalOpsRequest;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;IJJI)V
+HSPLandroid/app/AppOpsManager$HistoricalOpsRequest;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;IJJILandroid/app/AppOpsManager$1;)V
+HSPLandroid/app/AppOpsManager$HistoricalOpsRequest;->access$5900(Landroid/app/AppOpsManager$HistoricalOpsRequest;)I
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;-><init>(Ljava/lang/String;)V
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->access$2200(Landroid/app/AppOpsManager$HistoricalPackageOps;ILjava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->access$2300(Landroid/app/AppOpsManager$HistoricalPackageOps;ILjava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->access$2400(Landroid/app/AppOpsManager$HistoricalPackageOps;ILjava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->getFeatureCount()I
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->getFeatureOps(Ljava/lang/String;)Landroid/app/AppOpsManager$HistoricalFeatureOps;
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->getFeatureOpsAt(I)Landroid/app/AppOpsManager$HistoricalFeatureOps;
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->getOrCreateHistoricalFeatureOps(Ljava/lang/String;)Landroid/app/AppOpsManager$HistoricalFeatureOps;
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->getPackageName()Ljava/lang/String;
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->increaseAccessCount(ILjava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->increaseAccessDuration(ILjava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->increaseRejectCount(ILjava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->isEmpty()Z
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->merge(Landroid/app/AppOpsManager$HistoricalPackageOps;)V
+HPLandroid/app/AppOpsManager$HistoricalPackageOps;->splice(D)Landroid/app/AppOpsManager$HistoricalPackageOps;
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;-><init>(I)V
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->access$1100(Landroid/app/AppOpsManager$HistoricalUidOps;ILjava/lang/String;Ljava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->access$1200(Landroid/app/AppOpsManager$HistoricalUidOps;ILjava/lang/String;Ljava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->access$1300(Landroid/app/AppOpsManager$HistoricalUidOps;ILjava/lang/String;Ljava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->getOrCreateHistoricalPackageOps(Ljava/lang/String;)Landroid/app/AppOpsManager$HistoricalPackageOps;
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->getPackageCount()I
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->getPackageOps(Ljava/lang/String;)Landroid/app/AppOpsManager$HistoricalPackageOps;
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->getPackageOpsAt(I)Landroid/app/AppOpsManager$HistoricalPackageOps;
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->getUid()I
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->increaseAccessCount(ILjava/lang/String;Ljava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->increaseAccessDuration(ILjava/lang/String;Ljava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->increaseRejectCount(ILjava/lang/String;Ljava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->isEmpty()Z
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->merge(Landroid/app/AppOpsManager$HistoricalUidOps;)V
+HPLandroid/app/AppOpsManager$HistoricalUidOps;->splice(D)Landroid/app/AppOpsManager$HistoricalUidOps;
+HSPLandroid/app/AppOpsManager$NoteOpEvent$1;-><init>()V
+HSPLandroid/app/AppOpsManager$NoteOpEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AppOpsManager$NoteOpEvent;
+HSPLandroid/app/AppOpsManager$NoteOpEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/AppOpsManager$NoteOpEvent;-><clinit>()V
+HSPLandroid/app/AppOpsManager$NoteOpEvent;-><init>(JJLandroid/app/AppOpsManager$OpEventProxyInfo;)V
+HPLandroid/app/AppOpsManager$NoteOpEvent;-><init>(Landroid/app/AppOpsManager$NoteOpEvent;)V
+HSPLandroid/app/AppOpsManager$NoteOpEvent;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/AppOpsManager$NoteOpEvent;->getDuration()J
+HSPLandroid/app/AppOpsManager$NoteOpEvent;->getNoteTime()J
+HSPLandroid/app/AppOpsManager$NoteOpEvent;->getProxy()Landroid/app/AppOpsManager$OpEventProxyInfo;
+HSPLandroid/app/AppOpsManager$NoteOpEvent;->reinit(JJLandroid/app/AppOpsManager$OpEventProxyInfo;Landroid/util/Pools$Pool;)V
+HPLandroid/app/AppOpsManager$NoteOpEvent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/AppOpsManager$OnOpActiveChangedInternalListener;->onOpActiveChanged(Ljava/lang/String;ILjava/lang/String;Z)V
+HSPLandroid/app/AppOpsManager$OnOpChangedInternalListener;-><init>()V
+HSPLandroid/app/AppOpsManager$OnOpChangedInternalListener;->onOpChanged(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/AppOpsManager$OpEntry$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AppOpsManager$OpEntry;
+HSPLandroid/app/AppOpsManager$OpEntry$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/AppOpsManager$OpEntry;-><init>(IILjava/util/Map;)V
+HSPLandroid/app/AppOpsManager$OpEntry;-><init>(Landroid/os/Parcel;)V
+HPLandroid/app/AppOpsManager$OpEntry;->getFeatures()Ljava/util/Map;
+HSPLandroid/app/AppOpsManager$OpEntry;->getMode()I
+HSPLandroid/app/AppOpsManager$OpEntry;->getOp()I
+HSPLandroid/app/AppOpsManager$OpEntry;->isRunning()Z
+HPLandroid/app/AppOpsManager$OpEntry;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/AppOpsManager$OpEventProxyInfo$1;-><init>()V
+HSPLandroid/app/AppOpsManager$OpEventProxyInfo;-><clinit>()V
+HSPLandroid/app/AppOpsManager$OpEventProxyInfo;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+HPLandroid/app/AppOpsManager$OpEventProxyInfo;-><init>(Landroid/app/AppOpsManager$OpEventProxyInfo;)V
+PLandroid/app/AppOpsManager$OpEventProxyInfo;->getFeatureId()Ljava/lang/String;
+PLandroid/app/AppOpsManager$OpEventProxyInfo;->getPackageName()Ljava/lang/String;
+PLandroid/app/AppOpsManager$OpEventProxyInfo;->getUid()I
+HPLandroid/app/AppOpsManager$OpEventProxyInfo;->reinit(ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/AppOpsManager$OpFeatureEntry$1;-><init>()V
+HSPLandroid/app/AppOpsManager$OpFeatureEntry$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AppOpsManager$OpFeatureEntry;
+HSPLandroid/app/AppOpsManager$OpFeatureEntry$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/AppOpsManager$OpFeatureEntry$LongSparseArrayParceling;-><init>()V
+HSPLandroid/app/AppOpsManager$OpFeatureEntry$LongSparseArrayParceling;-><init>(Landroid/app/AppOpsManager$1;)V
+HPLandroid/app/AppOpsManager$OpFeatureEntry$LongSparseArrayParceling;->parcel(Landroid/util/LongSparseArray;Landroid/os/Parcel;I)V
+HPLandroid/app/AppOpsManager$OpFeatureEntry$LongSparseArrayParceling;->parcel(Ljava/lang/Object;Landroid/os/Parcel;I)V
+HSPLandroid/app/AppOpsManager$OpFeatureEntry$LongSparseArrayParceling;->unparcel(Landroid/os/Parcel;)Landroid/util/LongSparseArray;
+HSPLandroid/app/AppOpsManager$OpFeatureEntry$LongSparseArrayParceling;->unparcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/AppOpsManager$OpFeatureEntry;-><clinit>()V
+HPLandroid/app/AppOpsManager$OpFeatureEntry;-><init>(IZLandroid/util/LongSparseArray;Landroid/util/LongSparseArray;)V
+HSPLandroid/app/AppOpsManager$OpFeatureEntry;-><init>(Landroid/os/Parcel;)V
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->collectKeys()Landroid/util/ArraySet;
+HSPLandroid/app/AppOpsManager$OpFeatureEntry;->getLastAccessEvent(III)Landroid/app/AppOpsManager$NoteOpEvent;
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->getLastAccessTime(III)J
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->getLastDuration(III)J
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->getLastProxyInfo(III)Landroid/app/AppOpsManager$OpEventProxyInfo;
+HSPLandroid/app/AppOpsManager$OpFeatureEntry;->getLastRejectEvent(III)Landroid/app/AppOpsManager$NoteOpEvent;
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->getLastRejectTime(III)J
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/AppOpsManager$PackageOps$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AppOpsManager$PackageOps;
+HSPLandroid/app/AppOpsManager$PackageOps$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/AppOpsManager$PackageOps;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/AppOpsManager$PackageOps;-><init>(Ljava/lang/String;ILjava/util/List;)V
+HSPLandroid/app/AppOpsManager$PackageOps;->getOps()Ljava/util/List;
+HSPLandroid/app/AppOpsManager$PackageOps;->getPackageName()Ljava/lang/String;
+HSPLandroid/app/AppOpsManager$PackageOps;->getUid()I
+HPLandroid/app/AppOpsManager$PackageOps;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/AppOpsManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IAppOpsService;)V
+HSPLandroid/app/AppOpsManager;->access$000(Landroid/util/LongSparseArray;III)Landroid/app/AppOpsManager$NoteOpEvent;
+HSPLandroid/app/AppOpsManager;->access$200()[Ljava/lang/String;
+HPLandroid/app/AppOpsManager;->checkAudioOpNoThrow(IIILjava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->checkOp(IILjava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->checkOpNoThrow(IILjava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->checkOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->checkPackage(ILjava/lang/String;)V
 HSPLandroid/app/AppOpsManager;->collectNotedOpForSelf(ILjava/lang/String;)V
+HSPLandroid/app/AppOpsManager;->extractFlagsFromKey(J)I
+HSPLandroid/app/AppOpsManager;->extractUidStateFromKey(J)I
+HSPLandroid/app/AppOpsManager;->finishOp(IILjava/lang/String;)V
+HSPLandroid/app/AppOpsManager;->finishOp(IILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/AppOpsManager;->finishOp(Ljava/lang/String;ILjava/lang/String;)V
+HSPLandroid/app/AppOpsManager;->getClientId()Landroid/os/IBinder;
 HSPLandroid/app/AppOpsManager;->getFormattedStackTrace()Ljava/lang/String;
+HSPLandroid/app/AppOpsManager;->getHistoricalOps(Landroid/app/AppOpsManager$HistoricalOpsRequest;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V
+HSPLandroid/app/AppOpsManager;->getLastEvent(Landroid/util/LongSparseArray;III)Landroid/app/AppOpsManager$NoteOpEvent;
 HSPLandroid/app/AppOpsManager;->getNotedOpCollectionMode(ILjava/lang/String;I)I
+HSPLandroid/app/AppOpsManager;->getOpsForPackage(ILjava/lang/String;[I)Ljava/util/List;
 HSPLandroid/app/AppOpsManager;->getPackagesForOps([I)Ljava/util/List;
+HSPLandroid/app/AppOpsManager;->getToken(Lcom/android/internal/app/IAppOpsService;)Landroid/os/IBinder;
 HSPLandroid/app/AppOpsManager;->isCollectingNotedAppOps()Z
+HPLandroid/app/AppOpsManager;->isOperationActive(IILjava/lang/String;)Z
+HSPLandroid/app/AppOpsManager;->lambda$getHistoricalOps$0(Ljava/util/function/Consumer;Landroid/app/AppOpsManager$HistoricalOps;)V
+HSPLandroid/app/AppOpsManager;->lambda$getHistoricalOps$1(Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;Landroid/os/Bundle;)V
+HSPLandroid/app/AppOpsManager;->makeKey(II)J
+HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+HPLandroid/app/AppOpsManager;->noteOp(Ljava/lang/String;ILjava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->noteOp(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->noteProxyOp(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->noteProxyOpNoThrow(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->noteProxyOpNoThrow(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->noteProxyOpNoThrow(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->opToDefaultMode(I)I
+HSPLandroid/app/AppOpsManager;->opToPermission(I)Ljava/lang/String;
+HSPLandroid/app/AppOpsManager;->opToPublicName(I)Ljava/lang/String;
+HSPLandroid/app/AppOpsManager;->opToRestriction(I)Ljava/lang/String;
+HSPLandroid/app/AppOpsManager;->opToSwitch(I)I
 HSPLandroid/app/AppOpsManager;->pauseNotedAppOpsCollection()Landroid/app/AppOpsManager$PausedNotedAppOpsCollection;
 HSPLandroid/app/AppOpsManager;->permissionToOp(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/app/AppOpsManager;->permissionToOpCode(Ljava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->prefixParcelWithAppOpsIfNeeded(Landroid/os/Parcel;)V
+HSPLandroid/app/AppOpsManager;->resolveFirstUnrestrictedUidState(I)I
 HSPLandroid/app/AppOpsManager;->resumeNotedAppOpsCollection(Landroid/app/AppOpsManager$PausedNotedAppOpsCollection;)V
+HSPLandroid/app/AppOpsManager;->setRestriction(III[Ljava/lang/String;)V
+HSPLandroid/app/AppOpsManager;->setUidMode(Ljava/lang/String;II)V
+HSPLandroid/app/AppOpsManager;->startOpNoThrow(IILjava/lang/String;)I
+HPLandroid/app/AppOpsManager;->startOpNoThrow(IILjava/lang/String;Z)I
+HSPLandroid/app/AppOpsManager;->startOpNoThrow(IILjava/lang/String;ZLjava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->startOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->startOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->startWatchingActive([ILandroid/app/AppOpsManager$OnOpActiveChangedListener;)V
+HSPLandroid/app/AppOpsManager;->startWatchingActive([Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/AppOpsManager$OnOpActiveChangedListener;)V
+HSPLandroid/app/AppOpsManager;->startWatchingMode(ILjava/lang/String;ILandroid/app/AppOpsManager$OnOpChangedListener;)V
+HSPLandroid/app/AppOpsManager;->startWatchingMode(ILjava/lang/String;Landroid/app/AppOpsManager$OnOpChangedListener;)V
+HSPLandroid/app/AppOpsManager;->startWatchingMode(Ljava/lang/String;Ljava/lang/String;ILandroid/app/AppOpsManager$OnOpChangedListener;)V
+HSPLandroid/app/AppOpsManager;->startWatchingMode(Ljava/lang/String;Ljava/lang/String;Landroid/app/AppOpsManager$OnOpChangedListener;)V
+HSPLandroid/app/AppOpsManager;->startWatchingNoted([ILandroid/app/AppOpsManager$OnOpNotedListener;)V
+HSPLandroid/app/AppOpsManager;->stopWatchingMode(Landroid/app/AppOpsManager$OnOpChangedListener;)V
 HSPLandroid/app/AppOpsManager;->strOpToOp(Ljava/lang/String;)I
 HSPLandroid/app/AppOpsManager;->unsafeCheckOp(Ljava/lang/String;ILjava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->unsafeCheckOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->unsafeCheckOpRaw(Ljava/lang/String;ILjava/lang/String;)I
+HSPLandroid/app/AppOpsManagerInternal;-><init>()V
 HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostCreated(Landroid/app/Activity;Landroid/os/Bundle;)V
 HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostDestroyed(Landroid/app/Activity;)V
 HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostPaused(Landroid/app/Activity;)V
@@ -949,6 +1686,7 @@
 HSPLandroid/app/Application;->dispatchActivitySaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V
 HSPLandroid/app/Application;->dispatchActivityStarted(Landroid/app/Activity;)V
 HSPLandroid/app/Application;->dispatchActivityStopped(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient;
 HSPLandroid/app/Application;->getProcessName()Ljava/lang/String;
 HSPLandroid/app/Application;->onConfigurationChanged(Landroid/content/res/Configuration;)V
 HSPLandroid/app/Application;->onCreate()V
@@ -958,15 +1696,49 @@
 HSPLandroid/app/Application;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V
 HSPLandroid/app/Application;->unregisterActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V
 HSPLandroid/app/Application;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V
+HSPLandroid/app/ApplicationErrorReport$CrashInfo;-><init>()V
+HSPLandroid/app/ApplicationErrorReport$CrashInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/ApplicationErrorReport$CrashInfo;-><init>(Ljava/lang/Throwable;)V
 HSPLandroid/app/ApplicationErrorReport$CrashInfo;->sanitizeString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/app/ApplicationErrorReport$CrashInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/app/ApplicationErrorReport$ParcelableCrashInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;
+HPLandroid/app/ApplicationErrorReport$ParcelableCrashInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;-><init>(Ljava/lang/Throwable;)V
+HSPLandroid/app/ApplicationErrorReport;-><init>()V
+HSPLandroid/app/ApplicationErrorReport;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/ApplicationExitInfo$1;-><init>()V
+HSPLandroid/app/ApplicationExitInfo;-><clinit>()V
+HSPLandroid/app/ApplicationExitInfo;-><init>()V
+HSPLandroid/app/ApplicationExitInfo;-><init>(Landroid/app/ApplicationExitInfo;)V
+HSPLandroid/app/ApplicationExitInfo;->getPackageList()[Ljava/lang/String;
+HSPLandroid/app/ApplicationExitInfo;->getPackageName()Ljava/lang/String;
+HSPLandroid/app/ApplicationExitInfo;->getPackageUid()I
+HSPLandroid/app/ApplicationExitInfo;->getPid()I
+HSPLandroid/app/ApplicationExitInfo;->getRealUid()I
+HSPLandroid/app/ApplicationExitInfo;->getTimestamp()J
+HSPLandroid/app/ApplicationExitInfo;->readFromProto(Landroid/util/proto/ProtoInputStream;J)V
+HSPLandroid/app/ApplicationExitInfo;->setConnectionGroup(I)V
+HSPLandroid/app/ApplicationExitInfo;->setDefiningUid(I)V
+HSPLandroid/app/ApplicationExitInfo;->setDescription(Ljava/lang/String;)V
+HSPLandroid/app/ApplicationExitInfo;->setImportance(I)V
+HSPLandroid/app/ApplicationExitInfo;->setPackageList([Ljava/lang/String;)V
+HSPLandroid/app/ApplicationExitInfo;->setPackageName(Ljava/lang/String;)V
+HSPLandroid/app/ApplicationExitInfo;->setPackageUid(I)V
+HSPLandroid/app/ApplicationExitInfo;->setPid(I)V
+HSPLandroid/app/ApplicationExitInfo;->setProcessName(Ljava/lang/String;)V
+HSPLandroid/app/ApplicationExitInfo;->setRealUid(I)V
+HSPLandroid/app/ApplicationExitInfo;->setReason(I)V
+HSPLandroid/app/ApplicationExitInfo;->setStatus(I)V
+HSPLandroid/app/ApplicationExitInfo;->setTimestamp(J)V
+HPLandroid/app/ApplicationExitInfo;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLandroid/app/ApplicationLoaders$CachedClassLoader;-><init>()V
 HSPLandroid/app/ApplicationLoaders$CachedClassLoader;-><init>(Landroid/app/ApplicationLoaders$1;)V
 HSPLandroid/app/ApplicationLoaders;->addNative(Ljava/lang/ClassLoader;Ljava/util/Collection;)V
 HSPLandroid/app/ApplicationLoaders;->createAndCacheNonBootclasspathSystemClassLoader(Landroid/content/pm/SharedLibraryInfo;)V
 HSPLandroid/app/ApplicationLoaders;->createAndCacheNonBootclasspathSystemClassLoaders([Landroid/content/pm/SharedLibraryInfo;)V
 HSPLandroid/app/ApplicationLoaders;->getCachedNonBootclasspathSystemLib(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
+HSPLandroid/app/ApplicationLoaders;->getClassLoader(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/ClassLoader;
 HSPLandroid/app/ApplicationLoaders;->getClassLoader(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
 HSPLandroid/app/ApplicationLoaders;->getClassLoaderWithSharedLibraries(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
 HSPLandroid/app/ApplicationLoaders;->getDefault()Landroid/app/ApplicationLoaders;
@@ -977,8 +1749,13 @@
 HSPLandroid/app/ApplicationPackageManager$1;->recompute(Landroid/app/ApplicationPackageManager$SystemFeatureQuery;)Ljava/lang/Boolean;
 HSPLandroid/app/ApplicationPackageManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/app/ApplicationPackageManager$HasSystemFeatureQuery;-><init>(Landroid/app/ApplicationPackageManager;Ljava/lang/String;I)V
+HSPLandroid/app/ApplicationPackageManager$HasSystemFeatureQuery;-><init>(Ljava/lang/String;I)V
 HSPLandroid/app/ApplicationPackageManager$HasSystemFeatureQuery;->equals(Ljava/lang/Object;)Z
 HSPLandroid/app/ApplicationPackageManager$HasSystemFeatureQuery;->hashCode()I
+HSPLandroid/app/ApplicationPackageManager$MoveCallbackDelegate;-><init>(Landroid/content/pm/PackageManager$MoveCallback;Landroid/os/Looper;)V
+HSPLandroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;-><init>(Landroid/app/ApplicationPackageManager;Landroid/content/pm/PackageManager$OnPermissionsChangedListener;Landroid/os/Looper;)V
+HSPLandroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;->handleMessage(Landroid/os/Message;)Z
+HSPLandroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;->onPermissionsChanged(I)V
 HSPLandroid/app/ApplicationPackageManager$ResourceName;-><init>(Ljava/lang/String;I)V
 HSPLandroid/app/ApplicationPackageManager$ResourceName;->equals(Ljava/lang/Object;)Z
 HSPLandroid/app/ApplicationPackageManager$ResourceName;->hashCode()I
@@ -987,38 +1764,57 @@
 HSPLandroid/app/ApplicationPackageManager$SystemFeatureQuery;->hashCode()I
 HSPLandroid/app/ApplicationPackageManager;-><init>(Landroid/app/ContextImpl;Landroid/content/pm/IPackageManager;Landroid/permission/IPermissionManager;)V
 HSPLandroid/app/ApplicationPackageManager;->access$000(Landroid/app/ApplicationPackageManager;Ljava/lang/String;I)Z
+HSPLandroid/app/ApplicationPackageManager;->addOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V
 HSPLandroid/app/ApplicationPackageManager;->checkPermission(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/ApplicationPackageManager;->checkSignatures(II)I
 HSPLandroid/app/ApplicationPackageManager;->checkSignatures(Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/app/ApplicationPackageManager;->configurationChanged()V
 HSPLandroid/app/ApplicationPackageManager;->getActivityInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;
 HSPLandroid/app/ApplicationPackageManager;->getApplicationEnabledSetting(Ljava/lang/String;)I
+HSPLandroid/app/ApplicationPackageManager;->getApplicationIcon(Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/app/ApplicationPackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
 HSPLandroid/app/ApplicationPackageManager;->getApplicationInfoAsUser(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
 HSPLandroid/app/ApplicationPackageManager;->getApplicationLabel(Landroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;
+HSPLandroid/app/ApplicationPackageManager;->getAttentionServicePackageName()Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getBadgedDrawable(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/Rect;Z)Landroid/graphics/drawable/Drawable;
 HSPLandroid/app/ApplicationPackageManager;->getCachedIcon(Landroid/app/ApplicationPackageManager$ResourceName;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/app/ApplicationPackageManager;->getCachedString(Landroid/app/ApplicationPackageManager$ResourceName;)Ljava/lang/CharSequence;
 HSPLandroid/app/ApplicationPackageManager;->getComponentEnabledSetting(Landroid/content/ComponentName;)I
+HSPLandroid/app/ApplicationPackageManager;->getDefaultActivityIcon()Landroid/graphics/drawable/Drawable;
 HSPLandroid/app/ApplicationPackageManager;->getDrawable(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/app/ApplicationPackageManager;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName;
 HSPLandroid/app/ApplicationPackageManager;->getInstalledApplications(I)Ljava/util/List;
 HSPLandroid/app/ApplicationPackageManager;->getInstalledApplicationsAsUser(II)Ljava/util/List;
 HSPLandroid/app/ApplicationPackageManager;->getInstalledPackages(I)Ljava/util/List;
 HSPLandroid/app/ApplicationPackageManager;->getInstalledPackagesAsUser(II)Ljava/util/List;
 HSPLandroid/app/ApplicationPackageManager;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/app/ApplicationPackageManager;->getLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;
+HSPLandroid/app/ApplicationPackageManager;->getModuleInfo(Ljava/lang/String;I)Landroid/content/pm/ModuleInfo;
 HSPLandroid/app/ApplicationPackageManager;->getNameForUid(I)Ljava/lang/String;
 HSPLandroid/app/ApplicationPackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
 HSPLandroid/app/ApplicationPackageManager;->getPackageInfoAsUser(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
 HSPLandroid/app/ApplicationPackageManager;->getPackageInstaller()Landroid/content/pm/PackageInstaller;
 HSPLandroid/app/ApplicationPackageManager;->getPackageUid(Ljava/lang/String;I)I
+HSPLandroid/app/ApplicationPackageManager;->getPackageUidAsUser(Ljava/lang/String;I)I
 HSPLandroid/app/ApplicationPackageManager;->getPackageUidAsUser(Ljava/lang/String;II)I
 HSPLandroid/app/ApplicationPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getPackagesHoldingPermissions([Ljava/lang/String;I)Ljava/util/List;
 HSPLandroid/app/ApplicationPackageManager;->getPermissionControllerPackageName()Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)I
 HSPLandroid/app/ApplicationPackageManager;->getPermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
 HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;
 HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/Resources;
 HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Ljava/lang/String;)Landroid/content/res/Resources;
+HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplicationAsUser(Ljava/lang/String;I)Landroid/content/res/Resources;
 HSPLandroid/app/ApplicationPackageManager;->getServiceInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;
+HSPLandroid/app/ApplicationPackageManager;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getSetupWizardPackageName()Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getSharedSystemSharedLibraryPackageName()Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getSystemAvailableFeatures()[Landroid/content/pm/FeatureInfo;
+HSPLandroid/app/ApplicationPackageManager;->getSystemCaptionsServicePackageName()Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getSystemSharedLibraryNames()[Ljava/lang/String;
 HSPLandroid/app/ApplicationPackageManager;->getText(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;
+HSPLandroid/app/ApplicationPackageManager;->getUserBadgeColor(Landroid/os/UserHandle;)I
 HSPLandroid/app/ApplicationPackageManager;->getUserBadgedIcon(Landroid/graphics/drawable/Drawable;Landroid/os/UserHandle;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/app/ApplicationPackageManager;->getUserId()I
 HSPLandroid/app/ApplicationPackageManager;->getUserManager()Landroid/os/UserManager;
@@ -1028,8 +1824,10 @@
 HSPLandroid/app/ApplicationPackageManager;->hasSystemFeature(Ljava/lang/String;I)Z
 HSPLandroid/app/ApplicationPackageManager;->hasSystemFeatureUncached(Ljava/lang/String;I)Z
 HSPLandroid/app/ApplicationPackageManager;->hasUserBadge(I)Z
+HSPLandroid/app/ApplicationPackageManager;->isDeviceUpgrading()Z
 HSPLandroid/app/ApplicationPackageManager;->isInstantApp()Z
 HSPLandroid/app/ApplicationPackageManager;->isInstantApp(Ljava/lang/String;)Z
+HSPLandroid/app/ApplicationPackageManager;->isSafeMode()Z
 HSPLandroid/app/ApplicationPackageManager;->loadItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/app/ApplicationPackageManager;->loadUnbadgedItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/app/ApplicationPackageManager;->maybeAdjustApplicationInfo(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
@@ -1042,6 +1840,8 @@
 HSPLandroid/app/ApplicationPackageManager;->queryIntentActivitiesAsUser(Landroid/content/Intent;II)Ljava/util/List;
 HSPLandroid/app/ApplicationPackageManager;->queryIntentServices(Landroid/content/Intent;I)Ljava/util/List;
 HSPLandroid/app/ApplicationPackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;II)Ljava/util/List;
+HSPLandroid/app/ApplicationPackageManager;->registerMoveCallback(Landroid/content/pm/PackageManager$MoveCallback;Landroid/os/Handler;)V
+HSPLandroid/app/ApplicationPackageManager;->removeOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V
 HSPLandroid/app/ApplicationPackageManager;->resolveActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;
 HSPLandroid/app/ApplicationPackageManager;->resolveActivityAsUser(Landroid/content/Intent;II)Landroid/content/pm/ResolveInfo;
 HSPLandroid/app/ApplicationPackageManager;->resolveContentProvider(Ljava/lang/String;I)Landroid/content/pm/ProviderInfo;
@@ -1049,23 +1849,43 @@
 HSPLandroid/app/ApplicationPackageManager;->resolveService(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;
 HSPLandroid/app/ApplicationPackageManager;->resolveServiceAsUser(Landroid/content/Intent;II)Landroid/content/pm/ResolveInfo;
 HSPLandroid/app/ApplicationPackageManager;->setComponentEnabledSetting(Landroid/content/ComponentName;II)V
+HSPLandroid/app/ApplicationPackageManager;->setSystemAppState(Ljava/lang/String;I)V
 HSPLandroid/app/ApplicationPackageManager;->updateFlagsForApplication(II)I
 HSPLandroid/app/ApplicationPackageManager;->updateFlagsForComponent(IILandroid/content/Intent;)I
 HSPLandroid/app/ApplicationPackageManager;->updateFlagsForPackage(II)I
+HSPLandroid/app/ApplicationPackageManager;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;IILandroid/os/UserHandle;)V
+HSPLandroid/app/AsyncNotedAppOp$1;-><init>()V
+HSPLandroid/app/AsyncNotedAppOp;-><clinit>()V
+HPLandroid/app/AsyncNotedAppOp;-><init>(IILjava/lang/String;Ljava/lang/String;J)V
 HSPLandroid/app/BackStackRecord$Op;-><init>(ILandroid/app/Fragment;)V
 HSPLandroid/app/BackStackRecord;-><init>(Landroid/app/FragmentManagerImpl;)V
 HSPLandroid/app/BackStackRecord;->add(Landroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;
 HSPLandroid/app/BackStackRecord;->addOp(Landroid/app/BackStackRecord$Op;)V
 HSPLandroid/app/BackStackRecord;->bumpBackStackNesting(I)V
 HSPLandroid/app/BackStackRecord;->commit()I
+HSPLandroid/app/BackStackRecord;->commitAllowingStateLoss()I
 HSPLandroid/app/BackStackRecord;->commitInternal(Z)I
 HSPLandroid/app/BackStackRecord;->doAddOp(ILandroid/app/Fragment;Ljava/lang/String;I)V
 HSPLandroid/app/BackStackRecord;->executeOps()V
 HSPLandroid/app/BackStackRecord;->expandOps(Ljava/util/ArrayList;Landroid/app/Fragment;)Landroid/app/Fragment;
 HSPLandroid/app/BackStackRecord;->generateOps(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
+HSPLandroid/app/BackStackRecord;->interactsWith(I)Z
 HSPLandroid/app/BackStackRecord;->isFragmentPostponed(Landroid/app/BackStackRecord$Op;)Z
 HSPLandroid/app/BackStackRecord;->isPostponed()Z
+HSPLandroid/app/BackStackRecord;->replace(ILandroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;
 HSPLandroid/app/BackStackRecord;->runOnCommitRunnables()V
+HSPLandroid/app/BroadcastOptions;-><init>()V
+HPLandroid/app/BroadcastOptions;-><init>(Landroid/os/Bundle;)V
+HPLandroid/app/BroadcastOptions;->allowsBackgroundActivityStarts()Z
+HPLandroid/app/BroadcastOptions;->getMaxManifestReceiverApiLevel()I
+HPLandroid/app/BroadcastOptions;->getMinManifestReceiverApiLevel()I
+HPLandroid/app/BroadcastOptions;->getTemporaryAppWhitelistDuration()J
+HPLandroid/app/BroadcastOptions;->isDontSendToRestrictedApps()Z
+HSPLandroid/app/BroadcastOptions;->makeBasic()Landroid/app/BroadcastOptions;
+HSPLandroid/app/BroadcastOptions;->setBackgroundActivityStartsAllowed(Z)V
+HSPLandroid/app/BroadcastOptions;->setMaxManifestReceiverApiLevel(I)V
+HSPLandroid/app/BroadcastOptions;->setTemporaryAppWhitelistDuration(J)V
+HSPLandroid/app/BroadcastOptions;->toBundle()Landroid/os/Bundle;
 HSPLandroid/app/ClientTransactionHandler;-><init>()V
 HSPLandroid/app/ClientTransactionHandler;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
 HSPLandroid/app/ContentProviderHolder$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ContentProviderHolder;
@@ -1074,6 +1894,8 @@
 HSPLandroid/app/ContentProviderHolder;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/ContentProviderHolder;-><init>(Landroid/os/Parcel;Landroid/app/ContentProviderHolder$1;)V
 HSPLandroid/app/ContentProviderHolder;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/ContextImpl$1;-><init>(Ljava/lang/String;)V
+HSPLandroid/app/ContextImpl$1;->accept(Ljava/io/File;Ljava/lang/String;)Z
 HSPLandroid/app/ContextImpl$ApplicationContentResolver;-><init>(Landroid/content/Context;Landroid/app/ActivityThread;)V
 HSPLandroid/app/ContextImpl$ApplicationContentResolver;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider;
 HSPLandroid/app/ContextImpl$ApplicationContentResolver;->acquireProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider;
@@ -1081,9 +1903,11 @@
 HSPLandroid/app/ContextImpl$ApplicationContentResolver;->releaseProvider(Landroid/content/IContentProvider;)Z
 HSPLandroid/app/ContextImpl$ApplicationContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
 HSPLandroid/app/ContextImpl$ApplicationContentResolver;->resolveUserIdFromAuthority(Ljava/lang/String;)I
+HSPLandroid/app/ContextImpl$ApplicationContentResolver;->unstableProviderDied(Landroid/content/IContentProvider;)V
 HSPLandroid/app/ContextImpl;-><init>(Landroid/app/ContextImpl;Landroid/app/ActivityThread;Landroid/app/LoadedApk;Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Landroid/os/UserHandle;ILjava/lang/ClassLoader;Ljava/lang/String;)V
 HSPLandroid/app/ContextImpl;->bindIsolatedService(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z
 HSPLandroid/app/ContextImpl;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
+HSPLandroid/app/ContextImpl;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;Landroid/os/UserHandle;)Z
 HSPLandroid/app/ContextImpl;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z
 HSPLandroid/app/ContextImpl;->bindServiceCommon(Landroid/content/Intent;Landroid/content/ServiceConnection;ILjava/lang/String;Landroid/os/Handler;Ljava/util/concurrent/Executor;Landroid/os/UserHandle;)Z
 HSPLandroid/app/ContextImpl;->canLoadUnsafeResources()Z
@@ -1094,11 +1918,14 @@
 HSPLandroid/app/ContextImpl;->checkPermission(Ljava/lang/String;IILandroid/os/IBinder;)I
 HSPLandroid/app/ContextImpl;->checkSelfPermission(Ljava/lang/String;)I
 HSPLandroid/app/ContextImpl;->checkUriPermission(Landroid/net/Uri;III)I
+HSPLandroid/app/ContextImpl;->checkUriPermission(Landroid/net/Uri;IIILandroid/os/IBinder;)I
 HSPLandroid/app/ContextImpl;->createActivityContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;Landroid/content/pm/ActivityInfo;Landroid/os/IBinder;ILandroid/content/res/Configuration;)Landroid/app/ContextImpl;
 HSPLandroid/app/ContextImpl;->createAppContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;)Landroid/app/ContextImpl;
 HSPLandroid/app/ContextImpl;->createAppContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;Ljava/lang/String;)Landroid/app/ContextImpl;
 HSPLandroid/app/ContextImpl;->createApplicationContext(Landroid/content/pm/ApplicationInfo;I)Landroid/content/Context;
 HSPLandroid/app/ContextImpl;->createConfigurationContext(Landroid/content/res/Configuration;)Landroid/content/Context;
+HSPLandroid/app/ContextImpl;->createContextAsUser(Landroid/os/UserHandle;I)Landroid/content/Context;
+HSPLandroid/app/ContextImpl;->createCredentialProtectedStorageContext()Landroid/content/Context;
 HSPLandroid/app/ContextImpl;->createDeviceProtectedStorageContext()Landroid/content/Context;
 HSPLandroid/app/ContextImpl;->createDisplayContext(Landroid/view/Display;)Landroid/content/Context;
 HSPLandroid/app/ContextImpl;->createFeatureContext(Ljava/lang/String;)Landroid/content/Context;
@@ -1109,15 +1936,20 @@
 HSPLandroid/app/ContextImpl;->createSystemContext(Landroid/app/ActivityThread;)Landroid/app/ContextImpl;
 HSPLandroid/app/ContextImpl;->createSystemUiContext(Landroid/app/ContextImpl;)Landroid/app/ContextImpl;
 HSPLandroid/app/ContextImpl;->createSystemUiContext(Landroid/app/ContextImpl;I)Landroid/app/ContextImpl;
+HSPLandroid/app/ContextImpl;->databaseList()[Ljava/lang/String;
 HSPLandroid/app/ContextImpl;->deleteDatabase(Ljava/lang/String;)Z
 HSPLandroid/app/ContextImpl;->deleteFile(Ljava/lang/String;)Z
+HSPLandroid/app/ContextImpl;->deleteSharedPreferences(Ljava/lang/String;)Z
 HSPLandroid/app/ContextImpl;->enforce(Ljava/lang/String;IZILjava/lang/String;)V
 HSPLandroid/app/ContextImpl;->enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/ContextImpl;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/ContextImpl;->enforcePermission(Ljava/lang/String;IILjava/lang/String;)V
 HSPLandroid/app/ContextImpl;->ensureExternalDirsExistOrFilter([Ljava/io/File;)[Ljava/io/File;
 HSPLandroid/app/ContextImpl;->ensureExternalDirsExistOrFilter([Ljava/io/File;Z)[Ljava/io/File;
 HSPLandroid/app/ContextImpl;->ensurePrivateCacheDirExists(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
 HSPLandroid/app/ContextImpl;->ensurePrivateDirExists(Ljava/io/File;)Ljava/io/File;
 HSPLandroid/app/ContextImpl;->ensurePrivateDirExists(Ljava/io/File;IILjava/lang/String;)Ljava/io/File;
+HSPLandroid/app/ContextImpl;->fileList()[Ljava/lang/String;
 HSPLandroid/app/ContextImpl;->getActivityToken()Landroid/os/IBinder;
 HSPLandroid/app/ContextImpl;->getApplicationContext()Landroid/content/Context;
 HSPLandroid/app/ContextImpl;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
@@ -1138,6 +1970,7 @@
 HSPLandroid/app/ContextImpl;->getDisplay()Landroid/view/Display;
 HSPLandroid/app/ContextImpl;->getDisplayAdjustments(I)Landroid/view/DisplayAdjustments;
 HSPLandroid/app/ContextImpl;->getDisplayId()I
+HSPLandroid/app/ContextImpl;->getDisplayNoVerify()Landroid/view/Display;
 HSPLandroid/app/ContextImpl;->getExternalCacheDir()Ljava/io/File;
 HSPLandroid/app/ContextImpl;->getExternalCacheDirs()[Ljava/io/File;
 HSPLandroid/app/ContextImpl;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;
@@ -1148,12 +1981,14 @@
 HSPLandroid/app/ContextImpl;->getImpl(Landroid/content/Context;)Landroid/app/ContextImpl;
 HSPLandroid/app/ContextImpl;->getMainExecutor()Ljava/util/concurrent/Executor;
 HSPLandroid/app/ContextImpl;->getMainLooper()Landroid/os/Looper;
+HSPLandroid/app/ContextImpl;->getMainThreadHandler()Landroid/os/Handler;
 HSPLandroid/app/ContextImpl;->getNoBackupFilesDir()Ljava/io/File;
 HSPLandroid/app/ContextImpl;->getOpPackageName()Ljava/lang/String;
 HSPLandroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
 HSPLandroid/app/ContextImpl;->getPackageCodePath()Ljava/lang/String;
 HSPLandroid/app/ContextImpl;->getPackageManager()Landroid/content/pm/PackageManager;
 HSPLandroid/app/ContextImpl;->getPackageName()Ljava/lang/String;
+HSPLandroid/app/ContextImpl;->getPackageResourcePath()Ljava/lang/String;
 HSPLandroid/app/ContextImpl;->getPreferencesDir()Ljava/io/File;
 HSPLandroid/app/ContextImpl;->getReceiverRestrictedContext()Landroid/content/Context;
 HSPLandroid/app/ContextImpl;->getResources()Landroid/content/res/Resources;
@@ -1164,30 +1999,48 @@
 HSPLandroid/app/ContextImpl;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
 HSPLandroid/app/ContextImpl;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;
 HSPLandroid/app/ContextImpl;->getTheme()Landroid/content/res/Resources$Theme;
+HSPLandroid/app/ContextImpl;->getThemeResId()I
 HSPLandroid/app/ContextImpl;->getUser()Landroid/os/UserHandle;
 HSPLandroid/app/ContextImpl;->getUserId()I
+HSPLandroid/app/ContextImpl;->grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V
 HSPLandroid/app/ContextImpl;->initializeTheme()V
+HSPLandroid/app/ContextImpl;->installSystemApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)V
 HSPLandroid/app/ContextImpl;->isCredentialProtectedStorage()Z
 HSPLandroid/app/ContextImpl;->isDeviceProtectedStorage()Z
 HSPLandroid/app/ContextImpl;->isRestricted()Z
 HSPLandroid/app/ContextImpl;->isUiComponent(Ljava/lang/String;)Z
 HSPLandroid/app/ContextImpl;->isUiContext()Z
 HSPLandroid/app/ContextImpl;->makeFilename(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/app/ContextImpl;->moveFiles(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)I
+HSPLandroid/app/ContextImpl;->moveSharedPreferencesFrom(Landroid/content/Context;Ljava/lang/String;)Z
 HSPLandroid/app/ContextImpl;->openFileInput(Ljava/lang/String;)Ljava/io/FileInputStream;
 HSPLandroid/app/ContextImpl;->openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream;
+HSPLandroid/app/ContextImpl;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;
+HSPLandroid/app/ContextImpl;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;
 HSPLandroid/app/ContextImpl;->performFinalCleanup(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/app/ContextImpl;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
 HSPLandroid/app/ContextImpl;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
+HSPLandroid/app/ContextImpl;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;I)Landroid/content/Intent;
 HSPLandroid/app/ContextImpl;->registerReceiverAsUser(Landroid/content/BroadcastReceiver;Landroid/os/UserHandle;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
 HSPLandroid/app/ContextImpl;->registerReceiverForAllUsers(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
 HSPLandroid/app/ContextImpl;->registerReceiverInternal(Landroid/content/BroadcastReceiver;ILandroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;Landroid/content/Context;I)Landroid/content/Intent;
 HSPLandroid/app/ContextImpl;->resolveUserId(Landroid/net/Uri;)I
+HSPLandroid/app/ContextImpl;->revokeUriPermission(Landroid/net/Uri;I)V
 HSPLandroid/app/ContextImpl;->scheduleFinalCleanup(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/app/ContextImpl;->sendBroadcast(Landroid/content/Intent;)V
 HSPLandroid/app/ContextImpl;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
 HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
 HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;)V
 HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;I)V
+HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;Landroid/os/Bundle;)V
+HPLandroid/app/ContextImpl;->sendBroadcastAsUserMultiplePermissions(Landroid/content/Intent;Landroid/os/UserHandle;[Ljava/lang/String;)V
+HSPLandroid/app/ContextImpl;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
+HSPLandroid/app/ContextImpl;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;ILandroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;Landroid/os/Bundle;)V
+HSPLandroid/app/ContextImpl;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/app/ContextImpl;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;ILandroid/os/Bundle;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/app/ContextImpl;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/app/ContextImpl;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
+HPLandroid/app/ContextImpl;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/Bundle;)V
 HSPLandroid/app/ContextImpl;->setAutofillClient(Landroid/view/autofill/AutofillManager$AutofillClient;)V
 HSPLandroid/app/ContextImpl;->setAutofillOptions(Landroid/content/AutofillOptions;)V
 HSPLandroid/app/ContextImpl;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V
@@ -1195,8 +2048,11 @@
 HSPLandroid/app/ContextImpl;->setOuterContext(Landroid/content/Context;)V
 HSPLandroid/app/ContextImpl;->setResources(Landroid/content/res/Resources;)V
 HSPLandroid/app/ContextImpl;->setTheme(I)V
+HSPLandroid/app/ContextImpl;->startActivity(Landroid/content/Intent;)V
+HSPLandroid/app/ContextImpl;->startActivity(Landroid/content/Intent;Landroid/os/Bundle;)V
 HSPLandroid/app/ContextImpl;->startForegroundService(Landroid/content/Intent;)Landroid/content/ComponentName;
 HSPLandroid/app/ContextImpl;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;
+HSPLandroid/app/ContextImpl;->startServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/ComponentName;
 HSPLandroid/app/ContextImpl;->startServiceCommon(Landroid/content/Intent;ZLandroid/os/UserHandle;)Landroid/content/ComponentName;
 HSPLandroid/app/ContextImpl;->stopService(Landroid/content/Intent;)Z
 HSPLandroid/app/ContextImpl;->stopServiceCommon(Landroid/content/Intent;Landroid/os/UserHandle;)Z
@@ -1208,36 +2064,73 @@
 HSPLandroid/app/DexLoadReporter;->getInstance()Landroid/app/DexLoadReporter;
 HSPLandroid/app/DexLoadReporter;->isSecondaryDexFile(Ljava/lang/String;[Ljava/lang/String;)Z
 HSPLandroid/app/DexLoadReporter;->notifyPackageManager(Ljava/util/List;Ljava/util/List;)V
+HSPLandroid/app/DexLoadReporter;->notifyPackageManager(Ljava/util/Map;)V
 HSPLandroid/app/DexLoadReporter;->registerAppDataDir(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/app/DexLoadReporter;->registerSecondaryDexForProfiling(Ljava/lang/String;[Ljava/lang/String;)V
+HSPLandroid/app/DexLoadReporter;->registerSecondaryDexForProfiling(Ljava/util/Set;)V
 HSPLandroid/app/DexLoadReporter;->registerSecondaryDexForProfiling([Ljava/lang/String;)V
 HSPLandroid/app/DexLoadReporter;->report(Ljava/util/List;Ljava/util/List;)V
+HSPLandroid/app/DexLoadReporter;->report(Ljava/util/Map;)V
 HSPLandroid/app/Dialog$ListenersHandler;-><init>(Landroid/app/Dialog;)V
+HSPLandroid/app/Dialog$ListenersHandler;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/app/Dialog;-><init>(Landroid/content/Context;I)V
 HSPLandroid/app/Dialog;-><init>(Landroid/content/Context;IZ)V
+HSPLandroid/app/Dialog;->cancel()V
 HSPLandroid/app/Dialog;->dismiss()V
 HSPLandroid/app/Dialog;->dismissDialog()V
 HSPLandroid/app/Dialog;->dispatchOnCreate(Landroid/os/Bundle;)V
+HSPLandroid/app/Dialog;->dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z
 HSPLandroid/app/Dialog;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/app/Dialog;->findViewById(I)Landroid/view/View;
 HSPLandroid/app/Dialog;->getContext()Landroid/content/Context;
+HSPLandroid/app/Dialog;->getLayoutInflater()Landroid/view/LayoutInflater;
 HSPLandroid/app/Dialog;->getWindow()Landroid/view/Window;
 HSPLandroid/app/Dialog;->hide()V
+HSPLandroid/app/Dialog;->isShowing()Z
 HSPLandroid/app/Dialog;->onAttachedToWindow()V
 HSPLandroid/app/Dialog;->onContentChanged()V
 HSPLandroid/app/Dialog;->onCreate(Landroid/os/Bundle;)V
 HSPLandroid/app/Dialog;->onDetachedFromWindow()V
 HSPLandroid/app/Dialog;->onStart()V
 HSPLandroid/app/Dialog;->onStop()V
+HSPLandroid/app/Dialog;->onTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/app/Dialog;->onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V
 HSPLandroid/app/Dialog;->onWindowFocusChanged(Z)V
+HSPLandroid/app/Dialog;->requestWindowFeature(I)Z
 HSPLandroid/app/Dialog;->sendDismissMessage()V
 HSPLandroid/app/Dialog;->sendShowMessage()V
 HSPLandroid/app/Dialog;->setCancelable(Z)V
 HSPLandroid/app/Dialog;->setCanceledOnTouchOutside(Z)V
+HSPLandroid/app/Dialog;->setContentView(I)V
+HSPLandroid/app/Dialog;->setContentView(Landroid/view/View;)V
 HSPLandroid/app/Dialog;->setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)V
 HSPLandroid/app/Dialog;->setOnDismissListener(Landroid/content/DialogInterface$OnDismissListener;)V
+HSPLandroid/app/Dialog;->setOnShowListener(Landroid/content/DialogInterface$OnShowListener;)V
+HSPLandroid/app/Dialog;->setOwnerActivity(Landroid/app/Activity;)V
+HSPLandroid/app/Dialog;->setTitle(Ljava/lang/CharSequence;)V
 HSPLandroid/app/Dialog;->show()V
+HSPLandroid/app/DownloadManager$CursorTranslator;-><init>(Landroid/database/Cursor;Landroid/net/Uri;Z)V
+HSPLandroid/app/DownloadManager$CursorTranslator;->getInt(I)I
+HSPLandroid/app/DownloadManager$CursorTranslator;->getLong(I)J
+HSPLandroid/app/DownloadManager$CursorTranslator;->translateStatus(I)I
+HSPLandroid/app/DownloadManager$Query;-><init>()V
+HSPLandroid/app/DownloadManager$Query;->joinStrings(Ljava/lang/String;Ljava/lang/Iterable;)Ljava/lang/String;
+HSPLandroid/app/DownloadManager$Query;->runQuery(Landroid/content/ContentResolver;[Ljava/lang/String;Landroid/net/Uri;)Landroid/database/Cursor;
+HSPLandroid/app/DownloadManager$Query;->setFilterById([J)Landroid/app/DownloadManager$Query;
+HSPLandroid/app/DownloadManager$Query;->setFilterByStatus(I)Landroid/app/DownloadManager$Query;
+HSPLandroid/app/DownloadManager$Request;-><init>(Landroid/net/Uri;)V
+HSPLandroid/app/DownloadManager$Request;->putIfNonNull(Landroid/content/ContentValues;Ljava/lang/String;Ljava/lang/Object;)V
+HSPLandroid/app/DownloadManager$Request;->setNotificationVisibility(I)Landroid/app/DownloadManager$Request;
+HSPLandroid/app/DownloadManager$Request;->setVisibleInDownloadsUi(Z)Landroid/app/DownloadManager$Request;
+HSPLandroid/app/DownloadManager$Request;->toContentValues(Ljava/lang/String;)Landroid/content/ContentValues;
 HSPLandroid/app/DownloadManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/DownloadManager;->enqueue(Landroid/app/DownloadManager$Request;)J
+HSPLandroid/app/DownloadManager;->getWhereClauseForIds([J)Ljava/lang/String;
+HSPLandroid/app/DownloadManager;->markRowDeleted([J)I
+HSPLandroid/app/DownloadManager;->query(Landroid/app/DownloadManager$Query;)Landroid/database/Cursor;
+HSPLandroid/app/DownloadManager;->query(Landroid/app/DownloadManager$Query;[Ljava/lang/String;)Landroid/database/Cursor;
+HSPLandroid/app/DownloadManager;->remove([J)I
+HSPLandroid/app/EventLogTags;->writeWmOnActivityResultCalled(ILjava/lang/String;Ljava/lang/String;)V
 HSPLandroid/app/EventLogTags;->writeWmOnCreateCalled(ILjava/lang/String;Ljava/lang/String;)V
 HSPLandroid/app/EventLogTags;->writeWmOnDestroyCalled(ILjava/lang/String;Ljava/lang/String;)V
 HSPLandroid/app/EventLogTags;->writeWmOnPausedCalled(ILjava/lang/String;Ljava/lang/String;)V
@@ -1249,20 +2142,32 @@
 HSPLandroid/app/EventLogTags;->writeWmOnTopResumedLostCalled(ILjava/lang/String;Ljava/lang/String;)V
 HSPLandroid/app/Fragment$1;-><init>(Landroid/app/Fragment;)V
 HSPLandroid/app/Fragment;-><init>()V
+HSPLandroid/app/Fragment;->equals(Ljava/lang/Object;)Z
 HSPLandroid/app/Fragment;->getActivity()Landroid/app/Activity;
 HSPLandroid/app/Fragment;->getAnimatingAway()Landroid/animation/Animator;
+HSPLandroid/app/Fragment;->getArguments()Landroid/os/Bundle;
 HSPLandroid/app/Fragment;->getChildFragmentManager()Landroid/app/FragmentManager;
 HSPLandroid/app/Fragment;->getContext()Landroid/content/Context;
+HSPLandroid/app/Fragment;->getEnterTransition()Landroid/transition/Transition;
 HSPLandroid/app/Fragment;->getNextAnim()I
 HSPLandroid/app/Fragment;->getNextTransition()I
 HSPLandroid/app/Fragment;->getNextTransitionStyle()I
+HSPLandroid/app/Fragment;->getResources()Landroid/content/res/Resources;
+HSPLandroid/app/Fragment;->getTag()Ljava/lang/String;
+HSPLandroid/app/Fragment;->getView()Landroid/view/View;
+HSPLandroid/app/Fragment;->hashCode()I
 HSPLandroid/app/Fragment;->initState()V
+HSPLandroid/app/Fragment;->instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment;
 HSPLandroid/app/Fragment;->instantiateChildFragmentManager()V
+HSPLandroid/app/Fragment;->isAdded()Z
+HSPLandroid/app/Fragment;->isPostponed()Z
 HSPLandroid/app/Fragment;->noteStateNotSaved()V
 HSPLandroid/app/Fragment;->onActivityCreated(Landroid/os/Bundle;)V
 HSPLandroid/app/Fragment;->onAttach(Landroid/app/Activity;)V
 HSPLandroid/app/Fragment;->onAttach(Landroid/content/Context;)V
+HSPLandroid/app/Fragment;->onConfigurationChanged(Landroid/content/res/Configuration;)V
 HSPLandroid/app/Fragment;->onCreate(Landroid/os/Bundle;)V
+HSPLandroid/app/Fragment;->onCreateAnimator(IZI)Landroid/animation/Animator;
 HSPLandroid/app/Fragment;->onCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View;
 HSPLandroid/app/Fragment;->onDestroy()V
 HSPLandroid/app/Fragment;->onDestroyView()V
@@ -1274,7 +2179,10 @@
 HSPLandroid/app/Fragment;->onStart()V
 HSPLandroid/app/Fragment;->onStop()V
 HSPLandroid/app/Fragment;->onTrimMemory(I)V
+HSPLandroid/app/Fragment;->onViewCreated(Landroid/view/View;Landroid/os/Bundle;)V
+HSPLandroid/app/Fragment;->onViewStateRestored(Landroid/os/Bundle;)V
 HSPLandroid/app/Fragment;->performActivityCreated(Landroid/os/Bundle;)V
+HSPLandroid/app/Fragment;->performConfigurationChanged(Landroid/content/res/Configuration;)V
 HSPLandroid/app/Fragment;->performCreate(Landroid/os/Bundle;)V
 HSPLandroid/app/Fragment;->performCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z
 HSPLandroid/app/Fragment;->performCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View;
@@ -1282,6 +2190,7 @@
 HSPLandroid/app/Fragment;->performDestroyView()V
 HSPLandroid/app/Fragment;->performDetach()V
 HSPLandroid/app/Fragment;->performGetLayoutInflater(Landroid/os/Bundle;)Landroid/view/LayoutInflater;
+HSPLandroid/app/Fragment;->performOptionsItemSelected(Landroid/view/MenuItem;)Z
 HSPLandroid/app/Fragment;->performPause()V
 HSPLandroid/app/Fragment;->performPrepareOptionsMenu(Landroid/view/Menu;)Z
 HSPLandroid/app/Fragment;->performResume()V
@@ -1290,17 +2199,25 @@
 HSPLandroid/app/Fragment;->performStop()V
 HSPLandroid/app/Fragment;->performTrimMemory(I)V
 HSPLandroid/app/Fragment;->restoreChildFragmentState(Landroid/os/Bundle;Z)V
+HSPLandroid/app/Fragment;->restoreViewState(Landroid/os/Bundle;)V
+HSPLandroid/app/Fragment;->setArguments(Landroid/os/Bundle;)V
 HSPLandroid/app/Fragment;->setIndex(ILandroid/app/Fragment;)V
 HSPLandroid/app/Fragment;->setNextAnim(I)V
 HSPLandroid/app/Fragment;->setNextTransition(II)V
+HSPLandroid/app/Fragment;->setRetainInstance(Z)V
+HSPLandroid/app/Fragment;->toString()Ljava/lang/String;
 HSPLandroid/app/FragmentContainer;-><init>()V
+HSPLandroid/app/FragmentContainer;->instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment;
 HSPLandroid/app/FragmentController;-><init>(Landroid/app/FragmentHostCallback;)V
 HSPLandroid/app/FragmentController;->attachHost(Landroid/app/Fragment;)V
 HSPLandroid/app/FragmentController;->createController(Landroid/app/FragmentHostCallback;)Landroid/app/FragmentController;
 HSPLandroid/app/FragmentController;->dispatchActivityCreated()V
+HSPLandroid/app/FragmentController;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V
 HSPLandroid/app/FragmentController;->dispatchCreate()V
 HSPLandroid/app/FragmentController;->dispatchCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z
 HSPLandroid/app/FragmentController;->dispatchDestroy()V
+HSPLandroid/app/FragmentController;->dispatchLowMemory()V
+HSPLandroid/app/FragmentController;->dispatchOptionsItemSelected(Landroid/view/MenuItem;)Z
 HSPLandroid/app/FragmentController;->dispatchPause()V
 HSPLandroid/app/FragmentController;->dispatchPrepareOptionsMenu(Landroid/view/Menu;)Z
 HSPLandroid/app/FragmentController;->dispatchResume()V
@@ -1314,9 +2231,15 @@
 HSPLandroid/app/FragmentController;->getFragmentManager()Landroid/app/FragmentManager;
 HSPLandroid/app/FragmentController;->noteStateNotSaved()V
 HSPLandroid/app/FragmentController;->reportLoaderStart()V
+HSPLandroid/app/FragmentController;->restoreAllState(Landroid/os/Parcelable;Landroid/app/FragmentManagerNonConfig;)V
+HSPLandroid/app/FragmentController;->restoreLoaderNonConfig(Landroid/util/ArrayMap;)V
+HSPLandroid/app/FragmentController;->retainLoaderNonConfig()Landroid/util/ArrayMap;
+HSPLandroid/app/FragmentController;->retainNestedNonConfig()Landroid/app/FragmentManagerNonConfig;
 HSPLandroid/app/FragmentController;->saveAllState()Landroid/os/Parcelable;
 HSPLandroid/app/FragmentHostCallback;-><init>(Landroid/app/Activity;)V
 HSPLandroid/app/FragmentHostCallback;-><init>(Landroid/app/Activity;Landroid/content/Context;Landroid/os/Handler;I)V
+HSPLandroid/app/FragmentHostCallback;-><init>(Landroid/content/Context;Landroid/os/Handler;I)V
+HSPLandroid/app/FragmentHostCallback;->chooseHandler(Landroid/content/Context;Landroid/os/Handler;)Landroid/os/Handler;
 HSPLandroid/app/FragmentHostCallback;->doLoaderDestroy()V
 HSPLandroid/app/FragmentHostCallback;->doLoaderStart()V
 HSPLandroid/app/FragmentHostCallback;->doLoaderStop(Z)V
@@ -1325,10 +2248,22 @@
 HSPLandroid/app/FragmentHostCallback;->getFragmentManagerImpl()Landroid/app/FragmentManagerImpl;
 HSPLandroid/app/FragmentHostCallback;->getHandler()Landroid/os/Handler;
 HSPLandroid/app/FragmentHostCallback;->getLoaderManager(Ljava/lang/String;ZZ)Landroid/app/LoaderManagerImpl;
+HSPLandroid/app/FragmentHostCallback;->getRetainLoaders()Z
 HSPLandroid/app/FragmentHostCallback;->inactivateFragment(Ljava/lang/String;)V
 HSPLandroid/app/FragmentHostCallback;->reportLoaderStart()V
+HSPLandroid/app/FragmentHostCallback;->restoreLoaderNonConfig(Landroid/util/ArrayMap;)V
+HSPLandroid/app/FragmentHostCallback;->retainLoaderNonConfig()Landroid/util/ArrayMap;
+HSPLandroid/app/FragmentManager$FragmentLifecycleCallbacks;-><init>()V
+HSPLandroid/app/FragmentManager$FragmentLifecycleCallbacks;->onFragmentActivityCreated(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/os/Bundle;)V
+HSPLandroid/app/FragmentManager$FragmentLifecycleCallbacks;->onFragmentAttached(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/content/Context;)V
+HSPLandroid/app/FragmentManager$FragmentLifecycleCallbacks;->onFragmentCreated(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/os/Bundle;)V
+HSPLandroid/app/FragmentManager$FragmentLifecycleCallbacks;->onFragmentPreAttached(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/content/Context;)V
+HSPLandroid/app/FragmentManager$FragmentLifecycleCallbacks;->onFragmentPreCreated(Landroid/app/FragmentManager;Landroid/app/Fragment;Landroid/os/Bundle;)V
+HSPLandroid/app/FragmentManager$FragmentLifecycleCallbacks;->onFragmentResumed(Landroid/app/FragmentManager;Landroid/app/Fragment;)V
+HSPLandroid/app/FragmentManager$FragmentLifecycleCallbacks;->onFragmentStarted(Landroid/app/FragmentManager;Landroid/app/Fragment;)V
 HSPLandroid/app/FragmentManager;-><init>()V
 HSPLandroid/app/FragmentManagerImpl$1;-><init>(Landroid/app/FragmentManagerImpl;)V
+HSPLandroid/app/FragmentManagerImpl$1;->run()V
 HSPLandroid/app/FragmentManagerImpl;-><init>()V
 HSPLandroid/app/FragmentManagerImpl;->addAddedFragments(Landroid/util/ArraySet;)V
 HSPLandroid/app/FragmentManagerImpl;->addFragment(Landroid/app/Fragment;Z)V
@@ -1338,10 +2273,12 @@
 HSPLandroid/app/FragmentManagerImpl;->checkStateLoss()V
 HSPLandroid/app/FragmentManagerImpl;->cleanupExec()V
 HSPLandroid/app/FragmentManagerImpl;->dispatchActivityCreated()V
+HSPLandroid/app/FragmentManagerImpl;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V
 HSPLandroid/app/FragmentManagerImpl;->dispatchCreate()V
 HSPLandroid/app/FragmentManagerImpl;->dispatchCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z
 HSPLandroid/app/FragmentManagerImpl;->dispatchDestroy()V
 HSPLandroid/app/FragmentManagerImpl;->dispatchDestroyView()V
+HSPLandroid/app/FragmentManagerImpl;->dispatchLowMemory()V
 HSPLandroid/app/FragmentManagerImpl;->dispatchMoveToState(I)V
 HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentActivityCreated(Landroid/app/Fragment;Landroid/os/Bundle;Z)V
 HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentAttached(Landroid/app/Fragment;Landroid/content/Context;Z)V
@@ -1355,7 +2292,9 @@
 HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentSaveInstanceState(Landroid/app/Fragment;Landroid/os/Bundle;Z)V
 HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentStarted(Landroid/app/Fragment;Z)V
 HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentStopped(Landroid/app/Fragment;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentViewCreated(Landroid/app/Fragment;Landroid/view/View;Landroid/os/Bundle;Z)V
 HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentViewDestroyed(Landroid/app/Fragment;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOptionsItemSelected(Landroid/view/MenuItem;)Z
 HSPLandroid/app/FragmentManagerImpl;->dispatchPause()V
 HSPLandroid/app/FragmentManagerImpl;->dispatchPrepareOptionsMenu(Landroid/view/Menu;)Z
 HSPLandroid/app/FragmentManagerImpl;->dispatchResume()V
@@ -1373,11 +2312,14 @@
 HSPLandroid/app/FragmentManagerImpl;->executePendingTransactions()Z
 HSPLandroid/app/FragmentManagerImpl;->executePostponedTransaction(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
 HSPLandroid/app/FragmentManagerImpl;->findFragmentByTag(Ljava/lang/String;)Landroid/app/Fragment;
+HSPLandroid/app/FragmentManagerImpl;->findFragmentUnder(Landroid/app/Fragment;)Landroid/app/Fragment;
 HSPLandroid/app/FragmentManagerImpl;->forcePostponedTransactions()V
 HSPLandroid/app/FragmentManagerImpl;->generateOpsForPendingActions(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
 HSPLandroid/app/FragmentManagerImpl;->getLayoutInflaterFactory()Landroid/view/LayoutInflater$Factory2;
 HSPLandroid/app/FragmentManagerImpl;->getPrimaryNavigationFragment()Landroid/app/Fragment;
 HSPLandroid/app/FragmentManagerImpl;->getTargetSdk()I
+HSPLandroid/app/FragmentManagerImpl;->isStateSaved()Z
+HSPLandroid/app/FragmentManagerImpl;->loadAnimator(Landroid/app/Fragment;IZI)Landroid/animation/Animator;
 HSPLandroid/app/FragmentManagerImpl;->makeActive(Landroid/app/Fragment;)V
 HSPLandroid/app/FragmentManagerImpl;->makeInactive(Landroid/app/Fragment;)V
 HSPLandroid/app/FragmentManagerImpl;->makeRemovedFragmentsInvisible(Landroid/util/ArraySet;)V
@@ -1385,21 +2327,47 @@
 HSPLandroid/app/FragmentManagerImpl;->moveToState(IZ)V
 HSPLandroid/app/FragmentManagerImpl;->moveToState(Landroid/app/Fragment;IIIZ)V
 HSPLandroid/app/FragmentManagerImpl;->noteStateNotSaved()V
+HSPLandroid/app/FragmentManagerImpl;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
 HSPLandroid/app/FragmentManagerImpl;->performPendingDeferredStart(Landroid/app/Fragment;)V
+HSPLandroid/app/FragmentManagerImpl;->popBackStackImmediate()Z
+HSPLandroid/app/FragmentManagerImpl;->popBackStackImmediate(Ljava/lang/String;II)Z
+HSPLandroid/app/FragmentManagerImpl;->popBackStackState(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/lang/String;II)Z
 HSPLandroid/app/FragmentManagerImpl;->postponePostponableTransactions(Ljava/util/ArrayList;Ljava/util/ArrayList;IILandroid/util/ArraySet;)I
+HSPLandroid/app/FragmentManagerImpl;->registerFragmentLifecycleCallbacks(Landroid/app/FragmentManager$FragmentLifecycleCallbacks;Z)V
 HSPLandroid/app/FragmentManagerImpl;->removeRedundantOperationsAndExecute(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+HSPLandroid/app/FragmentManagerImpl;->restoreAllState(Landroid/os/Parcelable;Landroid/app/FragmentManagerNonConfig;)V
+HSPLandroid/app/FragmentManagerImpl;->retainNonConfig()Landroid/app/FragmentManagerNonConfig;
 HSPLandroid/app/FragmentManagerImpl;->saveAllState()Landroid/os/Parcelable;
 HSPLandroid/app/FragmentManagerImpl;->saveFragmentBasicState(Landroid/app/Fragment;)Landroid/os/Bundle;
+HSPLandroid/app/FragmentManagerImpl;->saveFragmentViewState(Landroid/app/Fragment;)V
 HSPLandroid/app/FragmentManagerImpl;->saveNonConfig()V
 HSPLandroid/app/FragmentManagerImpl;->scheduleCommit()V
+HSPLandroid/app/FragmentManagerImpl;->setRetaining(Landroid/app/FragmentManagerNonConfig;)V
 HSPLandroid/app/FragmentManagerImpl;->startPendingDeferredFragments()V
+HSPLandroid/app/FragmentManagerState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/FragmentManagerState;
+HSPLandroid/app/FragmentManagerState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/FragmentManagerState;-><init>()V
+HSPLandroid/app/FragmentManagerState;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/FragmentManagerState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/FragmentState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/FragmentState;
+HSPLandroid/app/FragmentState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/FragmentState$1;->newArray(I)[Landroid/app/FragmentState;
+HSPLandroid/app/FragmentState$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/app/FragmentState;-><init>(Landroid/app/Fragment;)V
+HSPLandroid/app/FragmentState;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/FragmentState;->instantiate(Landroid/app/FragmentHostCallback;Landroid/app/FragmentContainer;Landroid/app/Fragment;Landroid/app/FragmentManagerNonConfig;)Landroid/app/Fragment;
 HSPLandroid/app/FragmentState;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/FragmentTransaction;-><init>()V
+HSPLandroid/app/FragmentTransition$FragmentContainerTransition;-><init>()V
 HSPLandroid/app/FragmentTransition;->addToFirstInLastOut(Landroid/app/BackStackRecord;Landroid/app/BackStackRecord$Op;Landroid/util/SparseArray;ZZ)V
 HSPLandroid/app/FragmentTransition;->calculateFragments(Landroid/app/BackStackRecord;Landroid/util/SparseArray;Z)V
+HSPLandroid/app/FragmentTransition;->calculateNameOverrides(ILjava/util/ArrayList;Ljava/util/ArrayList;II)Landroid/util/ArrayMap;
+HSPLandroid/app/FragmentTransition;->cloneTransition(Landroid/transition/Transition;)Landroid/transition/Transition;
+HSPLandroid/app/FragmentTransition;->configureSharedElementsReordered(Landroid/view/ViewGroup;Landroid/view/View;Landroid/util/ArrayMap;Landroid/app/FragmentTransition$FragmentContainerTransition;Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/transition/Transition;Landroid/transition/Transition;)Landroid/transition/TransitionSet;
+HSPLandroid/app/FragmentTransition;->configureTransitionsReordered(Landroid/app/FragmentManagerImpl;ILandroid/app/FragmentTransition$FragmentContainerTransition;Landroid/view/View;Landroid/util/ArrayMap;)V
+HSPLandroid/app/FragmentTransition;->ensureContainer(Landroid/app/FragmentTransition$FragmentContainerTransition;Landroid/util/SparseArray;I)Landroid/app/FragmentTransition$FragmentContainerTransition;
+HSPLandroid/app/FragmentTransition;->getEnterTransition(Landroid/app/Fragment;Z)Landroid/transition/Transition;
+HSPLandroid/app/FragmentTransition;->getExitTransition(Landroid/app/Fragment;Z)Landroid/transition/Transition;
 HSPLandroid/app/FragmentTransition;->startTransitions(Landroid/app/FragmentManagerImpl;Ljava/util/ArrayList;Ljava/util/ArrayList;IIZ)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->addPackageDependency(Ljava/lang/String;)V
@@ -1407,93 +2375,309 @@
 HSPLandroid/app/IActivityManager$Stub$Proxy;->backupAgentCreated(Ljava/lang/String;Landroid/os/IBinder;I)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->bindIsolatedService(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;ILjava/lang/String;Ljava/lang/String;I)I
 HSPLandroid/app/IActivityManager$Stub$Proxy;->broadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
+HSPLandroid/app/IActivityManager$Stub$Proxy;->broadcastIntentWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
+HSPLandroid/app/IActivityManager$Stub$Proxy;->cancelIntentSender(Landroid/content/IIntentSender;)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->checkPermission(Ljava/lang/String;II)I
 HSPLandroid/app/IActivityManager$Stub$Proxy;->checkPermissionWithToken(Ljava/lang/String;IILandroid/os/IBinder;)I
 HSPLandroid/app/IActivityManager$Stub$Proxy;->checkUriPermission(Landroid/net/Uri;IIIILandroid/os/IBinder;)I
+HSPLandroid/app/IActivityManager$Stub$Proxy;->closeSystemDialogs(Ljava/lang/String;)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getContentProvider(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;IZ)Landroid/app/ContentProviderHolder;
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getCurrentUser()Landroid/content/pm/UserInfo;
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getIntentSender(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->getIntentSenderWithFeature(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getMyMemoryState(Landroid/app/ActivityManager$RunningAppProcessInfo;)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->getPackageForIntentSender(Landroid/content/IIntentSender;)Ljava/lang/String;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->getPackageProcessState(Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->getProviderMimeType(Landroid/net/Uri;I)Ljava/lang/String;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->getProviderMimeTypeAsync(Landroid/net/Uri;ILandroid/os/RemoteCallback;)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getRunningAppProcesses()Ljava/util/List;
 HSPLandroid/app/IActivityManager$Stub$Proxy;->getServices(II)Ljava/util/List;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->getTasks(I)Ljava/util/List;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->getUidForIntentSender(Landroid/content/IIntentSender;)I
+HSPLandroid/app/IActivityManager$Stub$Proxy;->grantUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->handleApplicationStrictModeViolation(Landroid/os/IBinder;ILandroid/os/StrictMode$ViolationInfo;)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;)Z
+HSPLandroid/app/IActivityManager$Stub$Proxy;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;I)Z
+HSPLandroid/app/IActivityManager$Stub$Proxy;->isIntentSenderAnActivity(Landroid/content/IIntentSender;)Z
 HSPLandroid/app/IActivityManager$Stub$Proxy;->isUserAMonkey()Z
+HSPLandroid/app/IActivityManager$Stub$Proxy;->isUserRunning(II)Z
 HSPLandroid/app/IActivityManager$Stub$Proxy;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->refContentProvider(Landroid/os/IBinder;II)Z
+HSPLandroid/app/IActivityManager$Stub$Proxy;->registerIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->registerReceiver(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->registerReceiverWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->registerUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->removeContentProvider(Landroid/os/IBinder;Z)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->resumeAppSwitches()V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->revokeUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->sendIntentSender(Landroid/content/IIntentSender;Landroid/os/IBinder;ILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)I
 HSPLandroid/app/IActivityManager$Stub$Proxy;->serviceDoneExecuting(Landroid/os/IBinder;III)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->setHasTopUi(Z)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->setRenderThread(I)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->setServiceForeground(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;II)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;I)Landroid/content/ComponentName;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName;
 HSPLandroid/app/IActivityManager$Stub$Proxy;->stopService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;I)I
 HSPLandroid/app/IActivityManager$Stub$Proxy;->stopServiceToken(Landroid/content/ComponentName;Landroid/os/IBinder;I)Z
+HSPLandroid/app/IActivityManager$Stub$Proxy;->unbindFinished(Landroid/os/IBinder;Landroid/content/Intent;Z)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->unbindService(Landroid/app/IServiceConnection;)Z
+HSPLandroid/app/IActivityManager$Stub$Proxy;->unregisterIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
 HSPLandroid/app/IActivityManager$Stub$Proxy;->unregisterReceiver(Landroid/content/IIntentReceiver;)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->unstableProviderDied(Landroid/os/IBinder;)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->waitForNetworkStateUpdate(J)V
+HSPLandroid/app/IActivityManager$Stub;-><init>()V
 HSPLandroid/app/IActivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityManager;
+HPLandroid/app/IActivityManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/app/IActivityManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityDestroyed(Landroid/os/IBinder;)V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityIdle(Landroid/os/IBinder;Landroid/content/res/Configuration;Z)V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityPaused(Landroid/os/IBinder;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityRelaunched(Landroid/os/IBinder;)V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityResumed(Landroid/os/IBinder;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activitySlept(Landroid/os/IBinder;)V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityTopResumedStateLost()V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getActivityOptions(Landroid/os/IBinder;)Landroid/os/Bundle;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getAppTasks(Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getCallingPackage(Landroid/os/IBinder;)Ljava/lang/String;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getDisplayId(Landroid/os/IBinder;)I
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getFilteredTasks(III)Ljava/util/List;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getFocusedStackInfo()Landroid/app/ActivityManager$StackInfo;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getLastResumedActivityUserId()I
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getLockTaskModeState()I
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getRecentTasks(III)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getRequestedOrientation(Landroid/os/IBinder;)I
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getStackInfo(II)Landroid/app/ActivityManager$StackInfo;
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getTaskForActivity(Landroid/os/IBinder;Z)I
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getTasks(I)Ljava/util/List;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->isInMultiWindowMode(Landroid/os/IBinder;)Z
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->keyguardGoingAway(I)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->onBackPressedOnTaskRoot(Landroid/os/IBinder;Landroid/app/IRequestFinishCallback;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;II)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->reportAssistContextExtras(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;Landroid/net/Uri;)V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->reportSizeConfigurations(Landroid/os/IBinder;[I[I[I)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->setLockScreenShown(ZZ)V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->setRequestedOrientation(Landroid/os/IBinder;I)V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->setTaskDescription(Landroid/os/IBinder;Landroid/app/ActivityManager$TaskDescription;)V
 HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->startActivityIntentSender(Landroid/app/IApplicationThread;Landroid/content/IIntentSender;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;)I
+HSPLandroid/app/IActivityTaskManager$Stub;-><init>()V
 HSPLandroid/app/IActivityTaskManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityTaskManager;
+HSPLandroid/app/IActivityTaskManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IAlarmCompleteListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IAlarmCompleteListener$Stub$Proxy;->alarmComplete(Landroid/os/IBinder;)V
+HSPLandroid/app/IAlarmCompleteListener$Stub;-><init>()V
+HPLandroid/app/IAlarmCompleteListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IAlarmCompleteListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmCompleteListener;
+HPLandroid/app/IAlarmCompleteListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IAlarmListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IAlarmListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/IAlarmListener$Stub$Proxy;->doAlarm(Landroid/app/IAlarmCompleteListener;)V
 HSPLandroid/app/IAlarmListener$Stub;-><init>()V
 HSPLandroid/app/IAlarmListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IAlarmListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmListener;
+HSPLandroid/app/IAlarmListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/app/IAlarmManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IAlarmManager$Stub$Proxy;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
 HSPLandroid/app/IAlarmManager$Stub$Proxy;->remove(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
 HSPLandroid/app/IAlarmManager$Stub$Proxy;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
+HSPLandroid/app/IAlarmManager$Stub;-><init>()V
 HSPLandroid/app/IAlarmManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmManager;
+HSPLandroid/app/IAlarmManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IAppTask$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IAppTask$Stub$Proxy;->getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo;
+HSPLandroid/app/IAppTask$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAppTask;
+HPLandroid/app/IAppTask$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->bindApplication(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;Landroid/content/ComponentName;Landroid/app/ProfilerInfo;Landroid/os/Bundle;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;IZZZZLandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/util/Map;Landroid/os/Bundle;Ljava/lang/String;Landroid/content/AutofillOptions;Landroid/content/ContentCaptureOptions;[J)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->clearDnsCache()V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->dispatchPackageBroadcast(I[Ljava/lang/String;)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->dumpService(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->runIsolatedEntryPoint(Ljava/lang/String;[Ljava/lang/String;)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleBindService(Landroid/os/IBinder;Landroid/content/Intent;ZI)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleCreateService(Landroid/os/IBinder;Landroid/content/pm/ServiceInfo;Landroid/content/res/CompatibilityInfo;I)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleEnterAnimationComplete(Landroid/os/IBinder;)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleInstallProvider(Landroid/content/pm/ProviderInfo;)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleReceiver(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZII)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleRegisteredReceiver(Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZII)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleServiceArgs(Landroid/os/IBinder;Landroid/content/pm/ParceledListSlice;)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleStopService(Landroid/os/IBinder;)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleTrimMemory(I)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleUnbindService(Landroid/os/IBinder;Landroid/content/Intent;)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->setNetworkBlockSeq(J)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->setProcessState(I)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->unstableProviderDied(Landroid/os/IBinder;)V
 HSPLandroid/app/IApplicationThread$Stub;-><init>()V
 HSPLandroid/app/IApplicationThread$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IApplicationThread$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IApplicationThread;
 HSPLandroid/app/IApplicationThread$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/app/IAssistDataReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAssistDataReceiver;
 HSPLandroid/app/IBackupAgent$Stub;-><init>()V
 HSPLandroid/app/IBackupAgent$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/app/IBackupAgent$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/IInstantAppResolver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/app/IInstantAppResolver$Stub$Proxy;->getInstantAppResolveInfoList(Landroid/content/pm/InstantAppRequestInfo;ILandroid/os/IRemoteCallback;)V
+HSPLandroid/app/IInstantAppResolver$Stub;-><init>()V
+PLandroid/app/IInstantAppResolver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IInstantAppResolver;
+HSPLandroid/app/IInstantAppResolver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/app/IInstrumentationWatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IInstrumentationWatcher;
 HSPLandroid/app/INotificationManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/app/INotificationManager$Stub$Proxy;->areNotificationsEnabled(Ljava/lang/String;)Z
+HSPLandroid/app/INotificationManager$Stub$Proxy;->cancelAllNotifications(Ljava/lang/String;I)V
 HSPLandroid/app/INotificationManager$Stub$Proxy;->cancelNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
 HSPLandroid/app/INotificationManager$Stub$Proxy;->createNotificationChannelGroups(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 HSPLandroid/app/INotificationManager$Stub$Proxy;->createNotificationChannels(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 HSPLandroid/app/INotificationManager$Stub$Proxy;->deleteNotificationChannel(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/app/INotificationManager$Stub$Proxy;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V
+HSPLandroid/app/INotificationManager$Stub$Proxy;->finishToken(Ljava/lang/String;Landroid/os/IBinder;)V
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getActiveNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
 HSPLandroid/app/INotificationManager$Stub$Proxy;->getAppActiveNotifications(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getConsolidatedNotificationPolicy()Landroid/app/NotificationManager$Policy;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getEffectsSuppressor()Landroid/content/ComponentName;
 HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelGroups(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
 HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationChannels(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationPolicy(Ljava/lang/String;)Landroid/app/NotificationManager$Policy;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getPrivateNotificationsAllowed()Z
 HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenMode()I
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenRules()Ljava/util/List;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->isNotificationPolicyAccessGranted(Ljava/lang/String;)Z
+HSPLandroid/app/INotificationManager$Stub$Proxy;->registerListener(Landroid/service/notification/INotificationListener;Landroid/content/ComponentName;I)V
+HSPLandroid/app/INotificationManager$Stub$Proxy;->requestUnbindProvider(Landroid/service/notification/IConditionProvider;)V
+HSPLandroid/app/INotificationManager$Stub$Proxy;->setNotificationsShownFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;)V
+PLandroid/app/INotificationManager$Stub$Proxy;->setPrivateNotificationsAllowed(Z)V
+HSPLandroid/app/INotificationManager$Stub$Proxy;->shouldHideSilentStatusIcons(Ljava/lang/String;)Z
+HSPLandroid/app/INotificationManager$Stub;-><init>()V
 HSPLandroid/app/INotificationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/INotificationManager;
+HSPLandroid/app/INotificationManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/IProcessObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/IProcessObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/IProcessObserver$Stub$Proxy;->onForegroundActivitiesChanged(IIZ)V
+HPLandroid/app/IProcessObserver$Stub$Proxy;->onForegroundServicesChanged(III)V
+HPLandroid/app/IProcessObserver$Stub$Proxy;->onProcessDied(II)V
+HSPLandroid/app/IProcessObserver$Stub;-><init>()V
+HSPLandroid/app/IProcessObserver$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/app/IProcessObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IProcessObserver;
+HSPLandroid/app/IRequestFinishCallback$Stub;-><init>()V
+HSPLandroid/app/IRequestFinishCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IRequestFinishCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/ISearchManager$Stub;-><init>()V
+HSPLandroid/app/ISearchManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/ISearchManager;
+PLandroid/app/ISearchManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IServiceConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IServiceConnection$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IServiceConnection$Stub$Proxy;->connected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
 HSPLandroid/app/IServiceConnection$Stub;-><init>()V
 HSPLandroid/app/IServiceConnection$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IServiceConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IServiceConnection;
 HSPLandroid/app/IServiceConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/ITaskStackListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/ITaskStackListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/ITaskStackListener$Stub$Proxy;->onActivityRequestedOrientationChanged(II)V
+HSPLandroid/app/ITaskStackListener$Stub$Proxy;->onRecentTaskListUpdated()V
+HSPLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskCreated(ILandroid/content/ComponentName;)V
+HSPLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskDescriptionChanged(Landroid/app/ActivityManager$RunningTaskInfo;)V
+HSPLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskDisplayChanged(II)V
+HPLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskMovedToFront(Landroid/app/ActivityManager$RunningTaskInfo;)V
+HPLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskRemovalStarted(Landroid/app/ActivityManager$RunningTaskInfo;)V
+HPLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskSnapshotChanged(ILandroid/app/ActivityManager$TaskSnapshot;)V
+HSPLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskStackChanged()V
+HSPLandroid/app/ITaskStackListener$Stub;-><init>()V
+HSPLandroid/app/ITaskStackListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/ITaskStackListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/ITaskStackListener;
+HSPLandroid/app/ITaskStackListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/ITransientNotification$Stub;-><init>()V
+HSPLandroid/app/ITransientNotification$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/ITransientNotification$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/app/ITransientNotificationCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/app/ITransientNotificationCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/ITransientNotificationCallback;
 HSPLandroid/app/IUiAutomationConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiAutomationConnection;
 HSPLandroid/app/IUiModeManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/app/IUiModeManager$Stub$Proxy;->getCurrentModeType()I
+HSPLandroid/app/IUiModeManager$Stub$Proxy;->getNightMode()I
+HSPLandroid/app/IUiModeManager$Stub;-><init>()V
 HSPLandroid/app/IUiModeManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiModeManager;
+HPLandroid/app/IUiModeManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IUidObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IUidObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IUidObserver$Stub$Proxy;->onUidActive(I)V
+HSPLandroid/app/IUidObserver$Stub$Proxy;->onUidGone(IZ)V
+HSPLandroid/app/IUidObserver$Stub$Proxy;->onUidIdle(IZ)V
+HSPLandroid/app/IUidObserver$Stub$Proxy;->onUidStateChanged(IIJI)V
+HSPLandroid/app/IUidObserver$Stub;-><init>()V
 HSPLandroid/app/IUidObserver$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IUidObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUidObserver;
+HSPLandroid/app/IUidObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IUriGrantsManager$Stub;-><init>()V
 HSPLandroid/app/IUriGrantsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUriGrantsManager;
+HPLandroid/app/IUriGrantsManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IUserSwitchObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IUserSwitchObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/app/IUserSwitchObserver$Stub$Proxy;->onLockedBootComplete(I)V
+HSPLandroid/app/IUserSwitchObserver$Stub;-><init>()V
+HSPLandroid/app/IUserSwitchObserver$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IUserSwitchObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUserSwitchObserver;
+HSPLandroid/app/IUserSwitchObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperColors(III)Landroid/app/WallpaperColors;
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperInfo(I)Landroid/app/WallpaperInfo;
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperWithFeature(Ljava/lang/String;Ljava/lang/String;Landroid/app/IWallpaperManagerCallback;ILandroid/os/Bundle;I)Landroid/os/ParcelFileDescriptor;
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->isWallpaperSupported(Ljava/lang/String;)Z
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->registerWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;II)V
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->setInAmbientMode(ZJ)V
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->setLockWallpaperCallback(Landroid/app/IWallpaperManagerCallback;)Z
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->unregisterWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;II)V
+HSPLandroid/app/IWallpaperManager$Stub;-><init>()V
 HSPLandroid/app/IWallpaperManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManager;
+HSPLandroid/app/IWallpaperManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IWallpaperManagerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IWallpaperManagerCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/app/IWallpaperManagerCallback$Stub$Proxy;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;II)V
+HSPLandroid/app/IWallpaperManagerCallback$Stub;-><init>()V
+HSPLandroid/app/IWallpaperManagerCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IWallpaperManagerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManagerCallback;
+HSPLandroid/app/InstantAppResolverService$1;-><init>(Landroid/app/InstantAppResolverService;)V
+HSPLandroid/app/InstantAppResolverService$1;->getInstantAppResolveInfoList(Landroid/content/pm/InstantAppRequestInfo;ILandroid/os/IRemoteCallback;)V
+HSPLandroid/app/InstantAppResolverService$InstantAppResolutionCallback;-><init>(ILandroid/os/IRemoteCallback;)V
+HSPLandroid/app/InstantAppResolverService$InstantAppResolutionCallback;->onInstantAppResolveInfo(Ljava/util/List;)V
+HSPLandroid/app/InstantAppResolverService$ServiceHandler;-><init>(Landroid/app/InstantAppResolverService;Landroid/os/Looper;)V
+HSPLandroid/app/InstantAppResolverService$ServiceHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/app/InstantAppResolverService;-><clinit>()V
+HSPLandroid/app/InstantAppResolverService;-><init>()V
+HSPLandroid/app/InstantAppResolverService;->access$000()Z
+HSPLandroid/app/InstantAppResolverService;->attachBaseContext(Landroid/content/Context;)V
+HSPLandroid/app/InstantAppResolverService;->getLooper()Landroid/os/Looper;
+HSPLandroid/app/InstantAppResolverService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HSPLandroid/app/InstantAppResolverService;->onGetInstantAppResolveInfo(Landroid/content/Intent;[ILandroid/os/UserHandle;Ljava/lang/String;Landroid/app/InstantAppResolverService$InstantAppResolutionCallback;)V
+HSPLandroid/app/InstantAppResolverService;->onGetInstantAppResolveInfo(Landroid/content/Intent;[ILjava/lang/String;Landroid/app/InstantAppResolverService$InstantAppResolutionCallback;)V
+HSPLandroid/app/InstantAppResolverService;->onGetInstantAppResolveInfo(Landroid/content/pm/InstantAppRequestInfo;Landroid/app/InstantAppResolverService$InstantAppResolutionCallback;)V
 HSPLandroid/app/Instrumentation;-><init>()V
 HSPLandroid/app/Instrumentation;->basicInit(Landroid/app/ActivityThread;)V
 HSPLandroid/app/Instrumentation;->callActivityOnCreate(Landroid/app/Activity;Landroid/os/Bundle;)V
 HSPLandroid/app/Instrumentation;->callActivityOnDestroy(Landroid/app/Activity;)V
+HSPLandroid/app/Instrumentation;->callActivityOnNewIntent(Landroid/app/Activity;Landroid/content/Intent;)V
+HSPLandroid/app/Instrumentation;->callActivityOnNewIntent(Landroid/app/Activity;Lcom/android/internal/content/ReferrerIntent;)V
 HSPLandroid/app/Instrumentation;->callActivityOnPause(Landroid/app/Activity;)V
 HSPLandroid/app/Instrumentation;->callActivityOnPictureInPictureRequested(Landroid/app/Activity;)V
 HSPLandroid/app/Instrumentation;->callActivityOnPostCreate(Landroid/app/Activity;Landroid/os/Bundle;)V
 HSPLandroid/app/Instrumentation;->callActivityOnRestart(Landroid/app/Activity;)V
+HSPLandroid/app/Instrumentation;->callActivityOnRestoreInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V
 HSPLandroid/app/Instrumentation;->callActivityOnResume(Landroid/app/Activity;)V
 HSPLandroid/app/Instrumentation;->callActivityOnSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V
 HSPLandroid/app/Instrumentation;->callActivityOnStart(Landroid/app/Activity;)V
@@ -1510,24 +2694,31 @@
 HSPLandroid/app/Instrumentation;->postPerformCreate(Landroid/app/Activity;)V
 HSPLandroid/app/Instrumentation;->prePerformCreate(Landroid/app/Activity;)V
 HSPLandroid/app/IntentReceiverLeaked;-><init>(Ljava/lang/String;)V
+HSPLandroid/app/IntentService$ServiceHandler;-><init>(Landroid/app/IntentService;Landroid/os/Looper;)V
 HSPLandroid/app/IntentService$ServiceHandler;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/app/IntentService;-><init>(Ljava/lang/String;)V
 HSPLandroid/app/IntentService;->onCreate()V
 HSPLandroid/app/IntentService;->onDestroy()V
 HSPLandroid/app/IntentService;->onStart(Landroid/content/Intent;I)V
 HSPLandroid/app/IntentService;->onStartCommand(Landroid/content/Intent;II)I
+HSPLandroid/app/IntentService;->setIntentRedelivery(Z)V
 HSPLandroid/app/JobSchedulerImpl;-><init>(Landroid/app/job/IJobScheduler;)V
 HSPLandroid/app/JobSchedulerImpl;->cancel(I)V
 HSPLandroid/app/JobSchedulerImpl;->enqueue(Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I
 HSPLandroid/app/JobSchedulerImpl;->getAllPendingJobs()Ljava/util/List;
 HSPLandroid/app/JobSchedulerImpl;->getPendingJob(I)Landroid/app/job/JobInfo;
 HSPLandroid/app/JobSchedulerImpl;->schedule(Landroid/app/job/JobInfo;)I
+HSPLandroid/app/JobSchedulerImpl;->scheduleAsPackage(Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I
 HSPLandroid/app/KeyguardManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/KeyguardManager;->getPrivateNotificationsAllowed()Z
 HSPLandroid/app/KeyguardManager;->inKeyguardRestrictedInputMode()Z
+HSPLandroid/app/KeyguardManager;->isDeviceLocked()Z
 HSPLandroid/app/KeyguardManager;->isDeviceLocked(I)Z
+HSPLandroid/app/KeyguardManager;->isDeviceSecure()Z
 HSPLandroid/app/KeyguardManager;->isDeviceSecure(I)Z
 HSPLandroid/app/KeyguardManager;->isKeyguardLocked()Z
 HSPLandroid/app/KeyguardManager;->isKeyguardSecure()Z
+PLandroid/app/KeyguardManager;->setPrivateNotificationsAllowed(Z)V
 HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args;-><init>(Landroid/app/LoadedApk$ReceiverDispatcher;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
 HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args;->getRunnable()Ljava/lang/Runnable;
 HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args;->lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args()V
@@ -1585,24 +2776,31 @@
 HSPLandroid/app/LoadedApk;->getResDir()Ljava/lang/String;
 HSPLandroid/app/LoadedApk;->getResources()Landroid/content/res/Resources;
 HSPLandroid/app/LoadedApk;->getServiceDispatcher(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;I)Landroid/app/IServiceConnection;
+HSPLandroid/app/LoadedApk;->getServiceDispatcher(Landroid/content/ServiceConnection;Landroid/content/Context;Ljava/util/concurrent/Executor;I)Landroid/app/IServiceConnection;
 HSPLandroid/app/LoadedApk;->getServiceDispatcherCommon(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;Ljava/util/concurrent/Executor;I)Landroid/app/IServiceConnection;
 HSPLandroid/app/LoadedApk;->getSplitClassLoader(Ljava/lang/String;)Ljava/lang/ClassLoader;
 HSPLandroid/app/LoadedApk;->getSplitPaths(Ljava/lang/String;)[Ljava/lang/String;
 HSPLandroid/app/LoadedApk;->getSplitResDirs()[Ljava/lang/String;
 HSPLandroid/app/LoadedApk;->initializeJavaContextClassLoader()V
+HSPLandroid/app/LoadedApk;->installSystemApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)V
 HSPLandroid/app/LoadedApk;->isSecurityViolation()Z
 HSPLandroid/app/LoadedApk;->makeApplication(ZLandroid/app/Instrumentation;)Landroid/app/Application;
+HSPLandroid/app/LoadedApk;->makePaths(Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
 HSPLandroid/app/LoadedApk;->makePaths(Landroid/app/ActivityThread;ZLandroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;)V
 HSPLandroid/app/LoadedApk;->removeContextRegistrations(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/LoadedApk;->rewriteRValues(Ljava/lang/ClassLoader;Ljava/lang/String;I)V
 HSPLandroid/app/LoadedApk;->setApplicationInfo(Landroid/content/pm/ApplicationInfo;)V
 HSPLandroid/app/LoadedApk;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V
 HSPLandroid/app/LoadedApk;->setupJitProfileSupport()V
+HSPLandroid/app/LoadedApk;->updateApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
+HSPLandroid/app/LoaderManagerImpl;->doStop()V
 HSPLandroid/app/Notification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Notification;
 HSPLandroid/app/Notification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/Notification$Action$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Notification$Action;
 HSPLandroid/app/Notification$Action$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/Notification$Action$1;->newArray(I)[Landroid/app/Notification$Action;
 HSPLandroid/app/Notification$Action$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/app/Notification$Action$Builder;-><init>(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)V
 HSPLandroid/app/Notification$Action$Builder;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V
 HSPLandroid/app/Notification$Action$Builder;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZI)V
 HSPLandroid/app/Notification$Action$Builder;->addExtras(Landroid/os/Bundle;)Landroid/app/Notification$Action$Builder;
@@ -1611,34 +2809,123 @@
 HSPLandroid/app/Notification$Action$Builder;->setAllowGeneratedReplies(Z)Landroid/app/Notification$Action$Builder;
 HSPLandroid/app/Notification$Action$Builder;->setContextual(Z)Landroid/app/Notification$Action$Builder;
 HSPLandroid/app/Notification$Action$Builder;->setSemanticAction(I)Landroid/app/Notification$Action$Builder;
+HSPLandroid/app/Notification$Action;-><init>(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)V
 HSPLandroid/app/Notification$Action;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZIZ)V
 HSPLandroid/app/Notification$Action;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZIZLandroid/app/Notification$1;)V
 HSPLandroid/app/Notification$Action;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/Notification$Action;-><init>(Landroid/os/Parcel;Landroid/app/Notification$1;)V
+HSPLandroid/app/Notification$Action;->clone()Landroid/app/Notification$Action;
+HSPLandroid/app/Notification$Action;->getAllowGeneratedReplies()Z
 HSPLandroid/app/Notification$Action;->getIcon()Landroid/graphics/drawable/Icon;
+HSPLandroid/app/Notification$Action;->getRemoteInputs()[Landroid/app/RemoteInput;
+HSPLandroid/app/Notification$Action;->getSemanticAction()I
+HSPLandroid/app/Notification$Action;->isContextual()Z
 HSPLandroid/app/Notification$Action;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/Notification$BigPictureStyle;-><init>()V
+HSPLandroid/app/Notification$BigPictureStyle;->addExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$BigPictureStyle;->bigPicture(Landroid/graphics/Bitmap;)Landroid/app/Notification$BigPictureStyle;
+HSPLandroid/app/Notification$BigPictureStyle;->purgeResources()V
+HSPLandroid/app/Notification$BigPictureStyle;->reduceImageSizes(Landroid/content/Context;)V
+HSPLandroid/app/Notification$BigPictureStyle;->restoreFromExtras(Landroid/os/Bundle;)V
 HSPLandroid/app/Notification$BigTextStyle;-><init>()V
 HSPLandroid/app/Notification$BigTextStyle;-><init>(Landroid/app/Notification$Builder;)V
 HSPLandroid/app/Notification$BigTextStyle;->addExtras(Landroid/os/Bundle;)V
+HPLandroid/app/Notification$BigTextStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
 HSPLandroid/app/Notification$BigTextStyle;->bigText(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle;
+HSPLandroid/app/Notification$BigTextStyle;->getBigText()Ljava/lang/CharSequence;
+HSPLandroid/app/Notification$BigTextStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$BigTextStyle;->makeContentView(Z)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$BigTextStyle;->makeHeadsUpContentView(Z)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$BigTextStyle;->restoreFromExtras(Landroid/os/Bundle;)V
 HSPLandroid/app/Notification$BigTextStyle;->setBigContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle;
+HSPLandroid/app/Notification$BubbleMetadata$Builder;-><init>()V
+HSPLandroid/app/Notification$BubbleMetadata$Builder;->build()Landroid/app/Notification$BubbleMetadata;
+HSPLandroid/app/Notification$BubbleMetadata$Builder;->setDesiredHeight(I)Landroid/app/Notification$BubbleMetadata$Builder;
+HSPLandroid/app/Notification$BubbleMetadata;-><init>(Landroid/app/PendingIntent;Landroid/app/PendingIntent;Landroid/graphics/drawable/Icon;IILjava/lang/String;)V
+HSPLandroid/app/Notification$BubbleMetadata;-><init>(Landroid/app/PendingIntent;Landroid/app/PendingIntent;Landroid/graphics/drawable/Icon;IILjava/lang/String;Landroid/app/Notification$1;)V
+HSPLandroid/app/Notification$BubbleMetadata;->setFlags(I)V
+HSPLandroid/app/Notification$Builder;-><init>(Landroid/content/Context;)V
 HSPLandroid/app/Notification$Builder;-><init>(Landroid/content/Context;Landroid/app/Notification;)V
 HSPLandroid/app/Notification$Builder;-><init>(Landroid/content/Context;Ljava/lang/String;)V
+HSPLandroid/app/Notification$Builder;->access$2300(Landroid/app/Notification$Builder;ILandroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$Builder;->access$2900(Landroid/app/Notification$Builder;)Ljava/util/ArrayList;
+HSPLandroid/app/Notification$Builder;->access$300(Landroid/app/Notification$Builder;)Landroid/app/Notification;
+HSPLandroid/app/Notification$Builder;->access$3400(Landroid/app/Notification$Builder;)Landroid/content/Context;
+HSPLandroid/app/Notification$Builder;->addAction(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->addAction(Landroid/app/Notification$Action;)Landroid/app/Notification$Builder;
+HSPLandroid/app/Notification$Builder;->addExtras(Landroid/os/Bundle;)Landroid/app/Notification$Builder;
+HSPLandroid/app/Notification$Builder;->addPerson(Landroid/app/Person;)Landroid/app/Notification$Builder;
+HSPLandroid/app/Notification$Builder;->addPerson(Ljava/lang/String;)Landroid/app/Notification$Builder;
+HSPLandroid/app/Notification$Builder;->applyStandardTemplate(ILandroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$Builder;->applyStandardTemplate(ILandroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$Builder;->applyStandardTemplateWithActions(ILandroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$Builder;->bindActivePermissions(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->bindAlertedIcon(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->bindExpandButton(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->bindHeaderAppName(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->bindHeaderChronometerAndTime(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->bindHeaderText(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->bindHeaderTextSecondary(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->bindLargeIcon(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)Z
+HSPLandroid/app/Notification$Builder;->bindLargeIconAndReply(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)V
+HSPLandroid/app/Notification$Builder;->bindNotificationHeader(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->bindProfileBadge(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->bindReplyIcon(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)Z
+HSPLandroid/app/Notification$Builder;->bindSmallIcon(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
 HSPLandroid/app/Notification$Builder;->build()Landroid/app/Notification;
 HSPLandroid/app/Notification$Builder;->buildUnstyled()Landroid/app/Notification;
+HSPLandroid/app/Notification$Builder;->calculateMarginEnd(ZZ)I
+HSPLandroid/app/Notification$Builder;->createBigContentView()Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$Builder;->createContentView(Z)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$Builder;->createHeadsUpContentView(Z)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$Builder;->createSummaryText()Ljava/lang/CharSequence;
+HSPLandroid/app/Notification$Builder;->ensureColors(Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->findReplyAction()Landroid/app/Notification$Action;
+HSPLandroid/app/Notification$Builder;->generateActionButton(Landroid/app/Notification$Action;ZLandroid/app/Notification$StandardTemplateParams;)Landroid/widget/RemoteViews;
 HSPLandroid/app/Notification$Builder;->getAllExtras()Landroid/os/Bundle;
+HSPLandroid/app/Notification$Builder;->getBackgroundColor(Landroid/app/Notification$StandardTemplateParams;)I
+HSPLandroid/app/Notification$Builder;->getBaseLayoutResource()I
+HSPLandroid/app/Notification$Builder;->getBigBaseLayoutResource()I
+HSPLandroid/app/Notification$Builder;->getHeadsUpStatusBarText(Z)Ljava/lang/CharSequence;
+HSPLandroid/app/Notification$Builder;->getNeutralColor(Landroid/app/Notification$StandardTemplateParams;)I
+HSPLandroid/app/Notification$Builder;->getPrimaryTextColor(Landroid/app/Notification$StandardTemplateParams;)I
+HSPLandroid/app/Notification$Builder;->getProfileBadge()Landroid/graphics/Bitmap;
+HSPLandroid/app/Notification$Builder;->getProfileBadgeDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/app/Notification$Builder;->getRawColor(Landroid/app/Notification$StandardTemplateParams;)I
+HSPLandroid/app/Notification$Builder;->getSecondaryTextColor(Landroid/app/Notification$StandardTemplateParams;)I
+HSPLandroid/app/Notification$Builder;->getStyle()Landroid/app/Notification$Style;
+HSPLandroid/app/Notification$Builder;->handleProgressBar(Landroid/widget/RemoteViews;Landroid/os/Bundle;Landroid/app/Notification$StandardTemplateParams;)Z
+HSPLandroid/app/Notification$Builder;->hasForegroundColor()Z
+HSPLandroid/app/Notification$Builder;->hasValidRemoteInput(Landroid/app/Notification$Action;)Z
+HSPLandroid/app/Notification$Builder;->isColorized(Landroid/app/Notification$StandardTemplateParams;)Z
+HSPLandroid/app/Notification$Builder;->isLegacy()Z
+HSPLandroid/app/Notification$Builder;->loadHeaderAppName()Ljava/lang/String;
+HSPLandroid/app/Notification$Builder;->makeLowPriorityContentView(Z)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$Builder;->makeNotificationHeader()Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$Builder;->maybeCloneStrippedForDelivery(Landroid/app/Notification;)Landroid/app/Notification;
 HSPLandroid/app/Notification$Builder;->maybeCloneStrippedForDelivery(Landroid/app/Notification;ZLandroid/content/Context;)Landroid/app/Notification;
+HSPLandroid/app/Notification$Builder;->processLargeLegacyIcon(Landroid/graphics/drawable/Icon;Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->processLegacyText(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/app/Notification$Builder;->processSmallIconColor(Landroid/graphics/drawable/Icon;Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->processTextSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/app/Notification$Builder;->recoverBuilder(Landroid/content/Context;Landroid/app/Notification;)Landroid/app/Notification$Builder;
+HSPLandroid/app/Notification$Builder;->resetNotificationHeader(Landroid/widget/RemoteViews;)V
+HSPLandroid/app/Notification$Builder;->resetStandardTemplate(Landroid/widget/RemoteViews;)V
+HSPLandroid/app/Notification$Builder;->resetStandardTemplateWithActions(Landroid/widget/RemoteViews;)V
+HSPLandroid/app/Notification$Builder;->resolveContrastColor(Landroid/app/Notification$StandardTemplateParams;)I
+HSPLandroid/app/Notification$Builder;->resolveNeutralColor()I
 HSPLandroid/app/Notification$Builder;->sanitizeColor()V
 HSPLandroid/app/Notification$Builder;->setAllowSystemGeneratedContextualActions(Z)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setAutoCancel(Z)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setBadgeIconType(I)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setBubbleMetadata(Landroid/app/Notification$BubbleMetadata;)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setCategory(Ljava/lang/String;)Landroid/app/Notification$Builder;
+HSPLandroid/app/Notification$Builder;->setChannelId(Ljava/lang/String;)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setColor(I)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setContent(Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setContentInfo(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setContentIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;
+HSPLandroid/app/Notification$Builder;->setContentMinHeight(Landroid/widget/RemoteViews;Z)V
 HSPLandroid/app/Notification$Builder;->setContentText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setCustomContentView(Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder;
@@ -1671,6 +2958,8 @@
 HSPLandroid/app/Notification$Builder;->setSound(Landroid/net/Uri;Landroid/media/AudioAttributes;)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setStyle(Landroid/app/Notification$Style;)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setSubText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
+HSPLandroid/app/Notification$Builder;->setTextViewColorPrimary(Landroid/widget/RemoteViews;ILandroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->setTextViewColorSecondary(Landroid/widget/RemoteViews;ILandroid/app/Notification$StandardTemplateParams;)V
 HSPLandroid/app/Notification$Builder;->setTicker(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setTicker(Ljava/lang/CharSequence;Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setTimeoutAfter(J)Landroid/app/Notification$Builder;
@@ -1678,24 +2967,84 @@
 HSPLandroid/app/Notification$Builder;->setVibrate([J)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setVisibility(I)Landroid/app/Notification$Builder;
 HSPLandroid/app/Notification$Builder;->setWhen(J)Landroid/app/Notification$Builder;
+HSPLandroid/app/Notification$Builder;->showsTimeOrChronometer()Z
+HSPLandroid/app/Notification$Builder;->textColorsNeedInversion()Z
+HSPLandroid/app/Notification$Builder;->updateBackgroundColor(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HSPLandroid/app/Notification$Builder;->usesStandardHeader()Z
+HSPLandroid/app/Notification$BuilderRemoteViews;-><init>(Landroid/content/pm/ApplicationInfo;I)V
+HSPLandroid/app/Notification$BuilderRemoteViews;->shouldUseStaticFilter()Z
+HSPLandroid/app/Notification$DecoratedCustomViewStyle;-><init>()V
+HSPLandroid/app/Notification$InboxStyle;-><init>()V
+HSPLandroid/app/Notification$InboxStyle;->addExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$InboxStyle;->handleInboxImageMargin(Landroid/widget/RemoteViews;IZI)V
+HSPLandroid/app/Notification$InboxStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$InboxStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$MediaStyle;-><init>()V
+HSPLandroid/app/Notification$MediaStyle;->addExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$MediaStyle;->buildStyled(Landroid/app/Notification;)Landroid/app/Notification;
+HSPLandroid/app/Notification$MediaStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$MediaStyle;->setShowActionsInCompactView([I)Landroid/app/Notification$MediaStyle;
+HSPLandroid/app/Notification$MessagingStyle$Message;-><init>(Ljava/lang/CharSequence;JLandroid/app/Person;Z)V
+HSPLandroid/app/Notification$MessagingStyle$Message;->access$3500(Landroid/app/Notification$MessagingStyle$Message;)Ljava/lang/CharSequence;
+HSPLandroid/app/Notification$MessagingStyle$Message;->access$3600(Landroid/app/Notification$MessagingStyle$Message;)Landroid/app/Person;
+HSPLandroid/app/Notification$MessagingStyle$Message;->getBundleArrayForMessages(Ljava/util/List;)[Landroid/os/Bundle;
+HSPLandroid/app/Notification$MessagingStyle$Message;->getDataUri()Landroid/net/Uri;
+HSPLandroid/app/Notification$MessagingStyle$Message;->getExtras()Landroid/os/Bundle;
+HSPLandroid/app/Notification$MessagingStyle$Message;->getMessageFromBundle(Landroid/os/Bundle;)Landroid/app/Notification$MessagingStyle$Message;
+HSPLandroid/app/Notification$MessagingStyle$Message;->getMessagesFromBundleArray([Landroid/os/Parcelable;)Ljava/util/List;
+HSPLandroid/app/Notification$MessagingStyle$Message;->getSenderPerson()Landroid/app/Person;
+HSPLandroid/app/Notification$MessagingStyle$Message;->getText()Ljava/lang/CharSequence;
+HSPLandroid/app/Notification$MessagingStyle$Message;->getTimestamp()J
+HSPLandroid/app/Notification$MessagingStyle$Message;->toBundle()Landroid/os/Bundle;
+HSPLandroid/app/Notification$MessagingStyle;-><init>()V
+HSPLandroid/app/Notification$MessagingStyle;->addExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$MessagingStyle;->findLatestIncomingMessage()Landroid/app/Notification$MessagingStyle$Message;
+HSPLandroid/app/Notification$MessagingStyle;->findLatestIncomingMessage(Ljava/util/List;)Landroid/app/Notification$MessagingStyle$Message;
+HSPLandroid/app/Notification$MessagingStyle;->fixTitleAndTextExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$MessagingStyle;->getMessages()Ljava/util/List;
+HSPLandroid/app/Notification$MessagingStyle;->makeContentView(Z)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$MessagingStyle;->makeMessagingView(ZZ)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$MessagingStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$MessagingStyle;->validate(Landroid/content/Context;)V
 HSPLandroid/app/Notification$StandardTemplateParams;-><init>()V
 HSPLandroid/app/Notification$StandardTemplateParams;-><init>(Landroid/app/Notification$1;)V
+HSPLandroid/app/Notification$StandardTemplateParams;->fillTextsFrom(Landroid/app/Notification$Builder;)Landroid/app/Notification$StandardTemplateParams;
+HSPLandroid/app/Notification$StandardTemplateParams;->reset()Landroid/app/Notification$StandardTemplateParams;
+HSPLandroid/app/Notification$StandardTemplateParams;->setMaxRemoteInputHistory(I)Landroid/app/Notification$StandardTemplateParams;
+HSPLandroid/app/Notification$StandardTemplateParams;->text(Ljava/lang/CharSequence;)Landroid/app/Notification$StandardTemplateParams;
 HSPLandroid/app/Notification$Style;-><init>()V
 HSPLandroid/app/Notification$Style;->addExtras(Landroid/os/Bundle;)V
 HSPLandroid/app/Notification$Style;->buildStyled(Landroid/app/Notification;)Landroid/app/Notification;
+HSPLandroid/app/Notification$Style;->checkBuilder()V
+HSPLandroid/app/Notification$Style;->getHeadsUpStatusBarText()Ljava/lang/CharSequence;
+HSPLandroid/app/Notification$Style;->getStandardView(ILandroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
 HSPLandroid/app/Notification$Style;->internalSetBigContentTitle(Ljava/lang/CharSequence;)V
+HSPLandroid/app/Notification$Style;->internalSetSummaryText(Ljava/lang/CharSequence;)V
+HSPLandroid/app/Notification$Style;->makeContentView(Z)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$Style;->makeHeadsUpContentView(Z)Landroid/widget/RemoteViews;
 HSPLandroid/app/Notification$Style;->purgeResources()V
 HSPLandroid/app/Notification$Style;->reduceImageSizes(Landroid/content/Context;)V
+HSPLandroid/app/Notification$Style;->restoreFromExtras(Landroid/os/Bundle;)V
 HSPLandroid/app/Notification$Style;->setBuilder(Landroid/app/Notification$Builder;)V
 HSPLandroid/app/Notification$Style;->validate(Landroid/content/Context;)V
+HSPLandroid/app/Notification$TemplateBindResult;-><init>()V
+HSPLandroid/app/Notification$TemplateBindResult;-><init>(Landroid/app/Notification$1;)V
+HSPLandroid/app/Notification$TemplateBindResult;->getIconMarginEnd()I
+HSPLandroid/app/Notification$TemplateBindResult;->setIconMarginEnd(I)V
+HSPLandroid/app/Notification$TemplateBindResult;->setRightIconContainerVisible(Z)V
 HSPLandroid/app/Notification;-><init>()V
 HSPLandroid/app/Notification;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/Notification;->access$1002(Landroid/app/Notification;Landroid/app/Notification$BubbleMetadata;)Landroid/app/Notification$BubbleMetadata;
 HSPLandroid/app/Notification;->access$1102(Landroid/app/Notification;J)J
+HSPLandroid/app/Notification;->access$1300(Landroid/app/Notification;)Landroid/graphics/drawable/Icon;
 HSPLandroid/app/Notification;->access$1302(Landroid/app/Notification;Landroid/graphics/drawable/Icon;)Landroid/graphics/drawable/Icon;
 HSPLandroid/app/Notification;->access$1402(Landroid/app/Notification;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/app/Notification;->access$1502(Landroid/app/Notification;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/app/Notification;->access$1600(Landroid/app/Notification;)Z
+HSPLandroid/app/Notification;->access$1602(Landroid/app/Notification;Z)Z
+HSPLandroid/app/Notification;->access$1800(Landroid/app/Notification;)Z
 HSPLandroid/app/Notification;->access$2002(Landroid/app/Notification;J)J
+HSPLandroid/app/Notification;->access$2100(Landroid/app/Notification;)Landroid/graphics/drawable/Icon;
 HSPLandroid/app/Notification;->access$2202(Landroid/app/Notification;Z)Z
 HSPLandroid/app/Notification;->access$502(Landroid/app/Notification;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/app/Notification;->access$600(Landroid/app/Notification;)Ljava/lang/String;
@@ -1704,57 +3053,186 @@
 HSPLandroid/app/Notification;->access$902(Landroid/app/Notification;I)I
 HSPLandroid/app/Notification;->addFieldsFromContext(Landroid/content/Context;Landroid/app/Notification;)V
 HSPLandroid/app/Notification;->addFieldsFromContext(Landroid/content/pm/ApplicationInfo;Landroid/app/Notification;)V
+HPLandroid/app/Notification;->areActionsVisiblyDifferent(Landroid/app/Notification;Landroid/app/Notification;)Z
+HPLandroid/app/Notification;->areRemoteViewsChanged(Landroid/app/Notification$Builder;Landroid/app/Notification$Builder;)Z
+HPLandroid/app/Notification;->areRemoteViewsChanged(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews;)Z
+HPLandroid/app/Notification;->areStyledNotificationsVisiblyDifferent(Landroid/app/Notification$Builder;Landroid/app/Notification$Builder;)Z
+HSPLandroid/app/Notification;->clone()Landroid/app/Notification;
 HSPLandroid/app/Notification;->cloneInto(Landroid/app/Notification;Z)V
+HSPLandroid/app/Notification;->findRemoteInputActionPair(Z)Landroid/util/Pair;
 HSPLandroid/app/Notification;->fixDuplicateExtra(Landroid/os/Parcelable;Ljava/lang/String;)V
 HSPLandroid/app/Notification;->fixDuplicateExtras()V
+HSPLandroid/app/Notification;->getAllowSystemGeneratedContextualActions()Z
+HSPLandroid/app/Notification;->getBubbleMetadata()Landroid/app/Notification$BubbleMetadata;
 HSPLandroid/app/Notification;->getChannelId()Ljava/lang/String;
+HSPLandroid/app/Notification;->getContextualActions()Ljava/util/List;
 HSPLandroid/app/Notification;->getGroup()Ljava/lang/String;
+HSPLandroid/app/Notification;->getGroupAlertBehavior()I
 HSPLandroid/app/Notification;->getLargeIcon()Landroid/graphics/drawable/Icon;
 HSPLandroid/app/Notification;->getNotificationStyle()Ljava/lang/Class;
 HSPLandroid/app/Notification;->getNotificationStyleClass(Ljava/lang/String;)Ljava/lang/Class;
+HSPLandroid/app/Notification;->getShortcutId()Ljava/lang/String;
 HSPLandroid/app/Notification;->getSmallIcon()Landroid/graphics/drawable/Icon;
 HSPLandroid/app/Notification;->getSortKey()Ljava/lang/String;
+HSPLandroid/app/Notification;->getTimeoutAfter()J
+HPLandroid/app/Notification;->hasCompletedProgress()Z
+HSPLandroid/app/Notification;->hasLargeIcon()Z
+HSPLandroid/app/Notification;->hasMediaSession()Z
+HSPLandroid/app/Notification;->isColorized()Z
+HSPLandroid/app/Notification;->isColorizedMedia()Z
+HSPLandroid/app/Notification;->isForegroundService()Z
+HSPLandroid/app/Notification;->isGroupChild()Z
+HSPLandroid/app/Notification;->isGroupSummary()Z
+HSPLandroid/app/Notification;->isMediaNotification()Z
 HSPLandroid/app/Notification;->lambda$writeToParcel$0$Notification(Landroid/os/Parcel;Landroid/app/PendingIntent;Landroid/os/Parcel;I)V
+HSPLandroid/app/Notification;->lightenPayload()V
 HSPLandroid/app/Notification;->readFromParcelImpl(Landroid/os/Parcel;)V
 HSPLandroid/app/Notification;->reduceImageSizes(Landroid/content/Context;)V
 HSPLandroid/app/Notification;->reduceImageSizesForRemoteView(Landroid/widget/RemoteViews;Landroid/content/Context;Z)V
 HSPLandroid/app/Notification;->removeTextSizeSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
 HSPLandroid/app/Notification;->safeCharSequence(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
 HSPLandroid/app/Notification;->setSmallIcon(Landroid/graphics/drawable/Icon;)V
+HSPLandroid/app/Notification;->showsChronometer()Z
+HSPLandroid/app/Notification;->showsTime()Z
+HSPLandroid/app/Notification;->suppressAlertingDueToGrouping()Z
+HSPLandroid/app/Notification;->toString()Ljava/lang/String;
+HSPLandroid/app/Notification;->visibilityToString(I)Ljava/lang/String;
+HSPLandroid/app/Notification;->visitUris(Ljava/util/function/Consumer;)V
 HSPLandroid/app/Notification;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/Notification;->writeToParcelImpl(Landroid/os/Parcel;I)V
 HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationChannel;
 HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/NotificationChannel;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/NotificationChannel;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;I)V
+HSPLandroid/app/NotificationChannel;->canBubble()Z
+HSPLandroid/app/NotificationChannel;->canBypassDnd()Z
+HSPLandroid/app/NotificationChannel;->canShowBadge()Z
 HSPLandroid/app/NotificationChannel;->enableLights(Z)V
 HSPLandroid/app/NotificationChannel;->enableVibration(Z)V
+HSPLandroid/app/NotificationChannel;->equals(Ljava/lang/Object;)Z
+HSPLandroid/app/NotificationChannel;->getAudioAttributes()Landroid/media/AudioAttributes;
+HSPLandroid/app/NotificationChannel;->getConversationId()Ljava/lang/String;
+HSPLandroid/app/NotificationChannel;->getDescription()Ljava/lang/String;
 HSPLandroid/app/NotificationChannel;->getGroup()Ljava/lang/String;
 HSPLandroid/app/NotificationChannel;->getId()Ljava/lang/String;
 HSPLandroid/app/NotificationChannel;->getImportance()I
+HSPLandroid/app/NotificationChannel;->getLightColor()I
+HSPLandroid/app/NotificationChannel;->getLockscreenVisibility()I
 HSPLandroid/app/NotificationChannel;->getName()Ljava/lang/CharSequence;
+HSPLandroid/app/NotificationChannel;->getOriginalImportance()I
 HSPLandroid/app/NotificationChannel;->getSound()Landroid/net/Uri;
 HSPLandroid/app/NotificationChannel;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/app/NotificationChannel;->getUserLockedFields()I
+HSPLandroid/app/NotificationChannel;->getVibrationPattern()[J
+HSPLandroid/app/NotificationChannel;->hasUserSetImportance()Z
+HSPLandroid/app/NotificationChannel;->isBlockableSystem()Z
+HSPLandroid/app/NotificationChannel;->isDeleted()Z
+HSPLandroid/app/NotificationChannel;->isDemoted()Z
+HSPLandroid/app/NotificationChannel;->isFgServiceShown()Z
+PLandroid/app/NotificationChannel;->isImportanceLockedByOEM()Z
+HSPLandroid/app/NotificationChannel;->lockFields(I)V
+HSPLandroid/app/NotificationChannel;->longArrayToString([J)Ljava/lang/String;
+HSPLandroid/app/NotificationChannel;->populateFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLandroid/app/NotificationChannel;->populateFromXml(Lorg/xmlpull/v1/XmlPullParser;ZLandroid/content/Context;)V
+HSPLandroid/app/NotificationChannel;->safeAudioAttributes(Lorg/xmlpull/v1/XmlPullParser;)Landroid/media/AudioAttributes;
+HSPLandroid/app/NotificationChannel;->safeBool(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+HSPLandroid/app/NotificationChannel;->safeInt(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+HSPLandroid/app/NotificationChannel;->safeLongArray(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[J)[J
+HSPLandroid/app/NotificationChannel;->safeUri(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/app/NotificationChannel;->setAllowBubbles(Z)V
+HSPLandroid/app/NotificationChannel;->setBlockableSystem(Z)V
+HSPLandroid/app/NotificationChannel;->setBypassDnd(Z)V
+HSPLandroid/app/NotificationChannel;->setConversationId(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/NotificationChannel;->setDeleted(Z)V
+HSPLandroid/app/NotificationChannel;->setDemoted(Z)V
 HSPLandroid/app/NotificationChannel;->setDescription(Ljava/lang/String;)V
+HSPLandroid/app/NotificationChannel;->setFgServiceShown(Z)V
 HSPLandroid/app/NotificationChannel;->setGroup(Ljava/lang/String;)V
+HSPLandroid/app/NotificationChannel;->setImportance(I)V
+HSPLandroid/app/NotificationChannel;->setImportanceLockedByCriticalDeviceFunction(Z)V
+HSPLandroid/app/NotificationChannel;->setImportanceLockedByOEM(Z)V
+HSPLandroid/app/NotificationChannel;->setLightColor(I)V
 HSPLandroid/app/NotificationChannel;->setLockscreenVisibility(I)V
+HSPLandroid/app/NotificationChannel;->setName(Ljava/lang/CharSequence;)V
+HSPLandroid/app/NotificationChannel;->setOriginalImportance(I)V
 HSPLandroid/app/NotificationChannel;->setShowBadge(Z)V
 HSPLandroid/app/NotificationChannel;->setSound(Landroid/net/Uri;Landroid/media/AudioAttributes;)V
+HSPLandroid/app/NotificationChannel;->setVibrationPattern([J)V
+HSPLandroid/app/NotificationChannel;->shouldShowLights()Z
+HSPLandroid/app/NotificationChannel;->shouldVibrate()Z
+HSPLandroid/app/NotificationChannel;->tryParseInt(Ljava/lang/String;I)I
 HSPLandroid/app/NotificationChannel;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/NotificationChannel;->writeXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/app/NotificationChannel;->writeXml(Lorg/xmlpull/v1/XmlSerializer;ZLandroid/content/Context;)V
 HSPLandroid/app/NotificationChannelGroup$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationChannelGroup;
 HSPLandroid/app/NotificationChannelGroup$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/NotificationChannelGroup;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/NotificationChannelGroup;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;)V
+HPLandroid/app/NotificationChannelGroup;->addChannel(Landroid/app/NotificationChannel;)V
+HPLandroid/app/NotificationChannelGroup;->clone()Landroid/app/NotificationChannelGroup;
+HSPLandroid/app/NotificationChannelGroup;->equals(Ljava/lang/Object;)Z
+HSPLandroid/app/NotificationChannelGroup;->getChannels()Ljava/util/List;
+HSPLandroid/app/NotificationChannelGroup;->getDescription()Ljava/lang/String;
 HSPLandroid/app/NotificationChannelGroup;->getId()Ljava/lang/String;
+HSPLandroid/app/NotificationChannelGroup;->getName()Ljava/lang/CharSequence;
 HSPLandroid/app/NotificationChannelGroup;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/app/NotificationChannelGroup;->isBlocked()Z
+HPLandroid/app/NotificationChannelGroup;->lockFields(I)V
+HSPLandroid/app/NotificationChannelGroup;->populateFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLandroid/app/NotificationChannelGroup;->safeBool(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+HSPLandroid/app/NotificationChannelGroup;->setBlocked(Z)V
+HPLandroid/app/NotificationChannelGroup;->setChannels(Ljava/util/List;)V
+HSPLandroid/app/NotificationChannelGroup;->setDescription(Ljava/lang/String;)V
 HSPLandroid/app/NotificationChannelGroup;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/NotificationChannelGroup;->writeXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/app/NotificationHistory$HistoricalNotification$Builder;-><init>()V
+HSPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->build()Landroid/app/NotificationHistory$HistoricalNotification;
+HSPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setChannelId(Ljava/lang/String;)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HSPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setChannelName(Ljava/lang/String;)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HSPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HSPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setPackage(Ljava/lang/String;)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HSPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setPostedTimeMs(J)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HSPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setText(Ljava/lang/String;)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HSPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setTitle(Ljava/lang/String;)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HSPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setUid(I)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HSPLandroid/app/NotificationHistory$HistoricalNotification;-><init>()V
+HSPLandroid/app/NotificationHistory$HistoricalNotification;-><init>(Landroid/app/NotificationHistory$1;)V
+HSPLandroid/app/NotificationHistory$HistoricalNotification;->access$102(Landroid/app/NotificationHistory$HistoricalNotification;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/app/NotificationHistory$HistoricalNotification;->access$202(Landroid/app/NotificationHistory$HistoricalNotification;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/app/NotificationHistory$HistoricalNotification;->access$302(Landroid/app/NotificationHistory$HistoricalNotification;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/app/NotificationHistory$HistoricalNotification;->access$402(Landroid/app/NotificationHistory$HistoricalNotification;I)I
+HSPLandroid/app/NotificationHistory$HistoricalNotification;->access$502(Landroid/app/NotificationHistory$HistoricalNotification;I)I
+HSPLandroid/app/NotificationHistory$HistoricalNotification;->access$602(Landroid/app/NotificationHistory$HistoricalNotification;J)J
+HSPLandroid/app/NotificationHistory$HistoricalNotification;->access$702(Landroid/app/NotificationHistory$HistoricalNotification;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/app/NotificationHistory$HistoricalNotification;->access$802(Landroid/app/NotificationHistory$HistoricalNotification;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/app/NotificationHistory$HistoricalNotification;->access$902(Landroid/app/NotificationHistory$HistoricalNotification;Landroid/graphics/drawable/Icon;)Landroid/graphics/drawable/Icon;
+HSPLandroid/app/NotificationHistory$HistoricalNotification;->getUserId()I
+HSPLandroid/app/NotificationManager$Policy$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationManager$Policy;
+HSPLandroid/app/NotificationManager$Policy$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/NotificationManager$Policy;-><init>(IIIII)V
 HSPLandroid/app/NotificationManager$Policy;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/NotificationManager$Policy;->allowAlarms()Z
+HSPLandroid/app/NotificationManager$Policy;->allowCalls()Z
+HSPLandroid/app/NotificationManager$Policy;->allowMedia()Z
+HSPLandroid/app/NotificationManager$Policy;->allowRepeatCallers()Z
+HSPLandroid/app/NotificationManager$Policy;->allowSystem()Z
+HSPLandroid/app/NotificationManager$Policy;->areAllVisualEffectsSuppressed(I)Z
+HSPLandroid/app/NotificationManager$Policy;->copy()Landroid/app/NotificationManager$Policy;
+HSPLandroid/app/NotificationManager$Policy;->effectToString(I)Ljava/lang/String;
+HSPLandroid/app/NotificationManager$Policy;->equals(Ljava/lang/Object;)Z
+HSPLandroid/app/NotificationManager$Policy;->hashCode()I
+HSPLandroid/app/NotificationManager$Policy;->priorityCategoriesToString(I)Ljava/lang/String;
+HSPLandroid/app/NotificationManager$Policy;->priorityCategoryToString(I)Ljava/lang/String;
+HSPLandroid/app/NotificationManager$Policy;->prioritySendersToString(I)Ljava/lang/String;
+HSPLandroid/app/NotificationManager$Policy;->suppressedEffectsToString(I)Ljava/lang/String;
+HSPLandroid/app/NotificationManager$Policy;->suppressedVisualEffectsEqual(II)Z
+HSPLandroid/app/NotificationManager$Policy;->toString()Ljava/lang/String;
+HSPLandroid/app/NotificationManager$Policy;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/NotificationManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
 HSPLandroid/app/NotificationManager;->areNotificationsEnabled()Z
 HSPLandroid/app/NotificationManager;->cancel(I)V
 HSPLandroid/app/NotificationManager;->cancel(Ljava/lang/String;I)V
+HSPLandroid/app/NotificationManager;->cancelAll()V
 HSPLandroid/app/NotificationManager;->cancelAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)V
 HSPLandroid/app/NotificationManager;->createNotificationChannel(Landroid/app/NotificationChannel;)V
 HSPLandroid/app/NotificationManager;->createNotificationChannelGroup(Landroid/app/NotificationChannelGroup;)V
@@ -1763,44 +3241,111 @@
 HSPLandroid/app/NotificationManager;->deleteNotificationChannel(Ljava/lang/String;)V
 HSPLandroid/app/NotificationManager;->fixLegacySmallIcon(Landroid/app/Notification;Ljava/lang/String;)V
 HSPLandroid/app/NotificationManager;->fixNotification(Landroid/app/Notification;)Landroid/app/Notification;
+HSPLandroid/app/NotificationManager;->from(Landroid/content/Context;)Landroid/app/NotificationManager;
 HSPLandroid/app/NotificationManager;->getActiveNotifications()[Landroid/service/notification/StatusBarNotification;
+HSPLandroid/app/NotificationManager;->getAutomaticZenRules()Ljava/util/Map;
+HSPLandroid/app/NotificationManager;->getConsolidatedNotificationPolicy()Landroid/app/NotificationManager$Policy;
+HSPLandroid/app/NotificationManager;->getCurrentInterruptionFilter()I
+HSPLandroid/app/NotificationManager;->getEffectsSuppressor()Landroid/content/ComponentName;
 HSPLandroid/app/NotificationManager;->getNotificationChannel(Ljava/lang/String;)Landroid/app/NotificationChannel;
+HSPLandroid/app/NotificationManager;->getNotificationChannelGroup(Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
+HSPLandroid/app/NotificationManager;->getNotificationChannelGroups()Ljava/util/List;
 HSPLandroid/app/NotificationManager;->getNotificationChannels()Ljava/util/List;
+HSPLandroid/app/NotificationManager;->getNotificationPolicy()Landroid/app/NotificationManager$Policy;
 HSPLandroid/app/NotificationManager;->getService()Landroid/app/INotificationManager;
+HSPLandroid/app/NotificationManager;->getZenMode()I
+HSPLandroid/app/NotificationManager;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
+HSPLandroid/app/NotificationManager;->isNotificationPolicyAccessGranted()Z
 HSPLandroid/app/NotificationManager;->notify(ILandroid/app/Notification;)V
 HSPLandroid/app/NotificationManager;->notify(Ljava/lang/String;ILandroid/app/Notification;)V
 HSPLandroid/app/NotificationManager;->notifyAsUser(Ljava/lang/String;ILandroid/app/Notification;Landroid/os/UserHandle;)V
+HSPLandroid/app/NotificationManager;->shouldHideSilentStatusBarIcons()Z
 HSPLandroid/app/NotificationManager;->zenModeToInterruptionFilter(I)I
 HSPLandroid/app/PendingIntent$2;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent;
 HSPLandroid/app/PendingIntent$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/PendingIntent$FinishedDispatcher;-><init>(Landroid/app/PendingIntent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V
+HSPLandroid/app/PendingIntent$FinishedDispatcher;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
+HSPLandroid/app/PendingIntent$FinishedDispatcher;->run()V
 HSPLandroid/app/PendingIntent;-><init>(Landroid/content/IIntentSender;)V
 HSPLandroid/app/PendingIntent;-><init>(Landroid/os/IBinder;Ljava/lang/Object;)V
 HSPLandroid/app/PendingIntent;->buildServicePendingIntent(Landroid/content/Context;ILandroid/content/Intent;II)Landroid/app/PendingIntent;
 HSPLandroid/app/PendingIntent;->cancel()V
+HSPLandroid/app/PendingIntent;->describeContents()I
 HSPLandroid/app/PendingIntent;->equals(Ljava/lang/Object;)Z
+HSPLandroid/app/PendingIntent;->getActivities(Landroid/content/Context;I[Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/PendingIntent;
 HSPLandroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
 HSPLandroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/PendingIntent;
+HSPLandroid/app/PendingIntent;->getActivityAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/PendingIntent;
 HSPLandroid/app/PendingIntent;->getBroadcast(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
 HSPLandroid/app/PendingIntent;->getBroadcastAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/UserHandle;)Landroid/app/PendingIntent;
 HSPLandroid/app/PendingIntent;->getCreatorPackage()Ljava/lang/String;
+HSPLandroid/app/PendingIntent;->getCreatorUid()I
+HSPLandroid/app/PendingIntent;->getIntent()Landroid/content/Intent;
+HSPLandroid/app/PendingIntent;->getIntentSender()Landroid/content/IntentSender;
 HSPLandroid/app/PendingIntent;->getService(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
+HSPLandroid/app/PendingIntent;->getTag(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/app/PendingIntent;->getTarget()Landroid/content/IIntentSender;
+HSPLandroid/app/PendingIntent;->getTargetPackage()Ljava/lang/String;
 HSPLandroid/app/PendingIntent;->hashCode()I
 HSPLandroid/app/PendingIntent;->isActivity()Z
+HPLandroid/app/PendingIntent;->isBroadcast()Z
+HPLandroid/app/PendingIntent;->isForegroundService()Z
+HSPLandroid/app/PendingIntent;->readPendingIntentOrNullFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent;
+HSPLandroid/app/PendingIntent;->registerCancelListener(Landroid/app/PendingIntent$CancelListener;)V
+HSPLandroid/app/PendingIntent;->send()V
+HSPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;)V
+HSPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V
 HSPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;Ljava/lang/String;Landroid/os/Bundle;)V
 HSPLandroid/app/PendingIntent;->sendAndReturnResult(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;Ljava/lang/String;Landroid/os/Bundle;)I
 HSPLandroid/app/PendingIntent;->setOnMarshaledListener(Landroid/app/PendingIntent$OnMarshaledListener;)V
+HSPLandroid/app/PendingIntent;->toString()Ljava/lang/String;
+HSPLandroid/app/PendingIntent;->unregisterCancelListener(Landroid/app/PendingIntent$CancelListener;)V
+HSPLandroid/app/PendingIntent;->writePendingIntentOrNullToParcel(Landroid/app/PendingIntent;Landroid/os/Parcel;)V
 HSPLandroid/app/PendingIntent;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/Person$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Person;
 HSPLandroid/app/Person$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/Person$Builder;-><init>()V
+HSPLandroid/app/Person$Builder;->access$000(Landroid/app/Person$Builder;)Ljava/lang/CharSequence;
+HSPLandroid/app/Person$Builder;->access$100(Landroid/app/Person$Builder;)Landroid/graphics/drawable/Icon;
+HSPLandroid/app/Person$Builder;->access$200(Landroid/app/Person$Builder;)Ljava/lang/String;
+HSPLandroid/app/Person$Builder;->access$300(Landroid/app/Person$Builder;)Ljava/lang/String;
+HSPLandroid/app/Person$Builder;->access$400(Landroid/app/Person$Builder;)Z
+HSPLandroid/app/Person$Builder;->access$500(Landroid/app/Person$Builder;)Z
 HSPLandroid/app/Person$Builder;->build()Landroid/app/Person;
+HSPLandroid/app/Person$Builder;->setBot(Z)Landroid/app/Person$Builder;
+HSPLandroid/app/Person$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/app/Person$Builder;
+HSPLandroid/app/Person$Builder;->setImportant(Z)Landroid/app/Person$Builder;
+HSPLandroid/app/Person$Builder;->setKey(Ljava/lang/String;)Landroid/app/Person$Builder;
+HSPLandroid/app/Person$Builder;->setName(Ljava/lang/CharSequence;)Landroid/app/Person$Builder;
+HSPLandroid/app/Person$Builder;->setUri(Ljava/lang/String;)Landroid/app/Person$Builder;
 HSPLandroid/app/Person;-><init>(Landroid/app/Person$Builder;)V
+HSPLandroid/app/Person;-><init>(Landroid/app/Person$Builder;Landroid/app/Person$1;)V
 HSPLandroid/app/Person;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/Person;-><init>(Landroid/os/Parcel;Landroid/app/Person$1;)V
+HSPLandroid/app/Person;->getIcon()Landroid/graphics/drawable/Icon;
+HSPLandroid/app/Person;->getKey()Ljava/lang/String;
+HSPLandroid/app/Person;->getName()Ljava/lang/CharSequence;
 HSPLandroid/app/Person;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/PictureInPictureParams$Builder;-><init>()V
+HSPLandroid/app/PictureInPictureParams$Builder;->build()Landroid/app/PictureInPictureParams;
+HSPLandroid/app/PictureInPictureParams;-><init>(Landroid/util/Rational;Ljava/util/List;Landroid/graphics/Rect;)V
+PLandroid/app/ProcessMemoryState$1;-><init>()V
+PLandroid/app/ProcessMemoryState;-><clinit>()V
+HPLandroid/app/ProcessMemoryState;-><init>(IILjava/lang/String;I)V
+HSPLandroid/app/ProgressDialog;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/ProgressDialog;->initFormats()V
+HSPLandroid/app/ProgressDialog;->onCreate(Landroid/os/Bundle;)V
+HSPLandroid/app/ProgressDialog;->onProgressChanged()V
+HSPLandroid/app/ProgressDialog;->onStart()V
+HSPLandroid/app/ProgressDialog;->setIndeterminate(Z)V
+HSPLandroid/app/ProgressDialog;->setMessage(Ljava/lang/CharSequence;)V
 HSPLandroid/app/PropertyInvalidatedCache$1;-><init>(Landroid/app/PropertyInvalidatedCache;IFZI)V
 HSPLandroid/app/PropertyInvalidatedCache$1;->removeEldestEntry(Ljava/util/Map$Entry;)Z
+HSPLandroid/app/PropertyInvalidatedCache$NoPreloadHolder;-><clinit>()V
+HSPLandroid/app/PropertyInvalidatedCache$NoPreloadHolder;->next()J
 HSPLandroid/app/PropertyInvalidatedCache;-><init>(ILjava/lang/String;)V
 HSPLandroid/app/PropertyInvalidatedCache;->getCurrentNonce()J
+HSPLandroid/app/PropertyInvalidatedCache;->invalidateCache(Ljava/lang/String;)V
 HSPLandroid/app/PropertyInvalidatedCache;->maybeCheckConsistency(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/app/PropertyInvalidatedCache;->query(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/app/PropertyInvalidatedCache;->refresh(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
@@ -1815,12 +3360,25 @@
 HSPLandroid/app/QueuedWork;->removeFinisher(Ljava/lang/Runnable;)V
 HSPLandroid/app/QueuedWork;->waitToFinish()V
 HSPLandroid/app/ReceiverRestrictedContext;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/RemoteAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/RemoteAction;
+HSPLandroid/app/RemoteAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/RemoteAction;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V
+HSPLandroid/app/RemoteAction;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/RemoteAction;->getActionIntent()Landroid/app/PendingIntent;
+HSPLandroid/app/RemoteAction;->getIcon()Landroid/graphics/drawable/Icon;
+HSPLandroid/app/RemoteAction;->getTitle()Ljava/lang/CharSequence;
+HSPLandroid/app/RemoteAction;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/RemoteInput$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/RemoteInput;
 HSPLandroid/app/RemoteInput$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/RemoteInput$1;->newArray(I)[Landroid/app/RemoteInput;
 HSPLandroid/app/RemoteInput$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/app/RemoteInput;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/RemoteInput;-><init>(Landroid/os/Parcel;Landroid/app/RemoteInput$1;)V
+HSPLandroid/app/RemoteInput;->getAllowFreeFormInput()Z
+HSPLandroid/app/RemoteInput;->getChoices()[Ljava/lang/CharSequence;
+HSPLandroid/app/RemoteInput;->getEditChoicesBeforeSending()I
+HSPLandroid/app/RemoteInput;->getLabel()Ljava/lang/CharSequence;
+HSPLandroid/app/RemoteInput;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/ResourcesManager$ActivityResources;-><init>()V
 HSPLandroid/app/ResourcesManager$ActivityResources;-><init>(Landroid/app/ResourcesManager$1;)V
 HSPLandroid/app/ResourcesManager$ApkKey;-><init>(Ljava/lang/String;ZZ)V
@@ -1829,10 +3387,12 @@
 HSPLandroid/app/ResourcesManager$UpdateHandler;-><init>(Landroid/app/ResourcesManager;)V
 HSPLandroid/app/ResourcesManager$UpdateHandler;-><init>(Landroid/app/ResourcesManager;Landroid/app/ResourcesManager$1;)V
 HSPLandroid/app/ResourcesManager;-><init>()V
+HSPLandroid/app/ResourcesManager;->appendLibAssetsForMainAssetPath(Ljava/lang/String;[Ljava/lang/String;)V
 HSPLandroid/app/ResourcesManager;->applyCompatConfigurationLocked(ILandroid/content/res/Configuration;)Z
 HSPLandroid/app/ResourcesManager;->applyConfigurationToResourcesLocked(Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)Z
 HSPLandroid/app/ResourcesManager;->applyConfigurationToResourcesLocked(Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;Landroid/content/res/ResourcesKey;Landroid/content/res/ResourcesImpl;)V
 HSPLandroid/app/ResourcesManager;->applyConfigurationToResourcesLocked(Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/ResourcesKey;Landroid/content/res/ResourcesImpl;)V
+HSPLandroid/app/ResourcesManager;->applyNewResourceDirsLocked(Landroid/content/pm/ApplicationInfo;[Ljava/lang/String;)V
 HSPLandroid/app/ResourcesManager;->cleanupReferences(Landroid/os/IBinder;)V
 HSPLandroid/app/ResourcesManager;->createAssetManager(Landroid/content/res/ResourcesKey;)Landroid/content/res/AssetManager;
 HSPLandroid/app/ResourcesManager;->createBaseActivityResources(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
@@ -1841,6 +3401,7 @@
 HSPLandroid/app/ResourcesManager;->createResourcesForActivityLocked(Landroid/os/IBinder;Ljava/lang/ClassLoader;Landroid/content/res/ResourcesImpl;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources;
 HSPLandroid/app/ResourcesManager;->createResourcesImpl(Landroid/content/res/ResourcesKey;)Landroid/content/res/ResourcesImpl;
 HSPLandroid/app/ResourcesManager;->createResourcesLocked(Ljava/lang/ClassLoader;Landroid/content/res/ResourcesImpl;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources;
+HSPLandroid/app/ResourcesManager;->findKeyForResourceImplLocked(Landroid/content/res/ResourcesImpl;)Landroid/content/res/ResourcesKey;
 HSPLandroid/app/ResourcesManager;->findOrCreateResourcesImplForKeyLocked(Landroid/content/res/ResourcesKey;)Landroid/content/res/ResourcesImpl;
 HSPLandroid/app/ResourcesManager;->findResourcesForActivityLocked(Landroid/os/IBinder;Landroid/content/res/ResourcesKey;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
 HSPLandroid/app/ResourcesManager;->findResourcesImplForKeyLocked(Landroid/content/res/ResourcesKey;)Landroid/content/res/ResourcesImpl;
@@ -1858,12 +3419,25 @@
 HSPLandroid/app/ResourcesManager;->lambda$static$0(Ljava/lang/ref/WeakReference;)Z
 HSPLandroid/app/ResourcesManager;->loadApkAssets(Ljava/lang/String;ZZ)Landroid/content/res/ApkAssets;
 HSPLandroid/app/ResourcesManager;->overlayPathToIdmapPath(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/app/ResourcesManager;->rebaseActivityOverrideConfig(Landroid/content/res/Resources;Landroid/content/res/Configuration;Landroid/content/res/Configuration;I)Landroid/content/res/ResourcesKey;
 HSPLandroid/app/ResourcesManager;->rebaseKeyForActivity(Landroid/os/IBinder;Landroid/content/res/ResourcesKey;)V
 HSPLandroid/app/ResourcesManager;->redirectResourcesToNewImplLocked(Landroid/util/ArrayMap;)V
+HSPLandroid/app/ResourcesManager;->updateActivityResources(Landroid/content/res/Resources;Landroid/content/res/ResourcesKey;Z)V
 HSPLandroid/app/ResourcesManager;->updateResourcesForActivity(Landroid/os/IBinder;Landroid/content/res/Configuration;IZ)V
+HSPLandroid/app/ResultInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ResultInfo;
+HSPLandroid/app/ResultInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/ResultInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/SearchManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HPLandroid/app/SearchableInfo;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;Landroid/content/ComponentName;)V
+HPLandroid/app/SearchableInfo;->createActivityContext(Landroid/content/Context;Landroid/content/ComponentName;)Landroid/content/Context;
+HPLandroid/app/SearchableInfo;->getActivityMetaData(Landroid/content/Context;Landroid/content/pm/ActivityInfo;I)Landroid/app/SearchableInfo;
+HPLandroid/app/SearchableInfo;->getActivityMetaData(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;Landroid/content/ComponentName;)Landroid/app/SearchableInfo;
+HSPLandroid/app/SearchableInfo;->getSearchActivity()Landroid/content/ComponentName;
+PLandroid/app/SearchableInfo;->shouldIncludeInGlobalSearch()Z
 HSPLandroid/app/Service;-><init>()V
 HSPLandroid/app/Service;->attach(Landroid/content/Context;Landroid/app/ActivityThread;Ljava/lang/String;Landroid/os/IBinder;Landroid/app/Application;Ljava/lang/Object;)V
 HSPLandroid/app/Service;->detachAndCleanUp()V
+HSPLandroid/app/Service;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLandroid/app/Service;->getApplication()Landroid/app/Application;
 HSPLandroid/app/Service;->getClassName()Ljava/lang/String;
 HSPLandroid/app/Service;->onConfigurationChanged(Landroid/content/res/Configuration;)V
@@ -1884,6 +3458,8 @@
 HSPLandroid/app/ServiceStartArgs$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ServiceStartArgs;
 HSPLandroid/app/ServiceStartArgs$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/ServiceStartArgs;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/ServiceStartArgs;-><init>(ZIILandroid/content/Intent;)V
+HSPLandroid/app/ServiceStartArgs;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/SharedPreferencesImpl$1;-><init>(Landroid/app/SharedPreferencesImpl;Ljava/lang/String;)V
 HSPLandroid/app/SharedPreferencesImpl$1;->run()V
 HSPLandroid/app/SharedPreferencesImpl$2;-><init>(Landroid/app/SharedPreferencesImpl;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;ZLjava/lang/Runnable;)V
@@ -1943,63 +3519,124 @@
 HSPLandroid/app/SharedPreferencesImpl;->startReloadIfChangedUnexpectedly()V
 HSPLandroid/app/SharedPreferencesImpl;->unregisterOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V
 HSPLandroid/app/SharedPreferencesImpl;->writeToFile(Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Z)V
+HSPLandroid/app/StatsManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/StatusBarManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/StatusBarManager;->disable(I)V
+HSPLandroid/app/StatusBarManager;->getService()Lcom/android/internal/statusbar/IStatusBarService;
+HSPLandroid/app/SyncNotedAppOp$1;-><init>()V
+HSPLandroid/app/SyncNotedAppOp;-><clinit>()V
+HSPLandroid/app/SyncNotedAppOp;-><init>(ILjava/lang/String;)V
+HSPLandroid/app/SyncNotedAppOp;->getOp()Ljava/lang/String;
+HSPLandroid/app/SynchronousUserSwitchObserver;-><init>()V
+HSPLandroid/app/SystemServiceRegistry$100;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$101;->createService(Landroid/app/ContextImpl;)Landroid/app/slice/SliceManager;
+HSPLandroid/app/SystemServiceRegistry$101;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$102;->createService(Landroid/app/ContextImpl;)Landroid/app/slice/SliceManager;
 HSPLandroid/app/SystemServiceRegistry$102;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$103;->createService(Landroid/app/ContextImpl;)Landroid/app/slice/SliceManager;
+HSPLandroid/app/SystemServiceRegistry$103;->createService(Landroid/app/ContextImpl;)Landroid/app/timedetector/TimeDetector;
+HSPLandroid/app/SystemServiceRegistry$103;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$104;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$105;->createService(Landroid/app/ContextImpl;)Landroid/permission/PermissionManager;
 HSPLandroid/app/SystemServiceRegistry$105;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$106;->createService(Landroid/app/ContextImpl;)Landroid/app/role/RoleManager;
+HSPLandroid/app/SystemServiceRegistry$106;->createService(Landroid/app/ContextImpl;)Landroid/permission/PermissionControllerManager;
+HSPLandroid/app/SystemServiceRegistry$106;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$107;->createService(Landroid/app/ContextImpl;)Landroid/app/role/RoleManager;
 HSPLandroid/app/SystemServiceRegistry$107;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$108;->createService(Landroid/app/ContextImpl;)Landroid/app/role/RoleManager;
+HSPLandroid/app/SystemServiceRegistry$108;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$109;->createService(Landroid/app/ContextImpl;)Landroid/content/rollback/RollbackManager;
+HSPLandroid/app/SystemServiceRegistry$109;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$10;->createService(Landroid/app/ContextImpl;)Landroid/bluetooth/BluetoothManager;
 HSPLandroid/app/SystemServiceRegistry$10;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$111;->createService(Landroid/app/ContextImpl;)Landroid/os/BatteryStatsManager;
+HSPLandroid/app/SystemServiceRegistry$111;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$112;->createService()Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$112;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$114;->createService()Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$114;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$115;->createService()Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$115;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$116;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$117;->createService()Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$117;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$118;->createService()Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$118;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$119;->createService()Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$119;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$120;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$121;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$122;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$12;->createService(Landroid/app/ContextImpl;)Landroid/view/textclassifier/TextClassificationManager;
 HSPLandroid/app/SystemServiceRegistry$12;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$13;->createService(Landroid/app/ContextImpl;)Landroid/content/ClipboardManager;
 HSPLandroid/app/SystemServiceRegistry$13;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$14;->createService(Landroid/content/Context;)Landroid/net/ConnectivityManager;
 HSPLandroid/app/SystemServiceRegistry$14;->createService(Landroid/content/Context;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$15;->createService()Landroid/os/IBinder;
+HSPLandroid/app/SystemServiceRegistry$15;->createService()Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$17;->createService(Landroid/app/ContextImpl;)Landroid/net/TetheringManager;
+HSPLandroid/app/SystemServiceRegistry$17;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$17;->lambda$createService$0()Landroid/os/IBinder;
 HSPLandroid/app/SystemServiceRegistry$1;->createService(Landroid/app/ContextImpl;)Landroid/view/accessibility/AccessibilityManager;
 HSPLandroid/app/SystemServiceRegistry$1;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$20;->createService(Landroid/app/ContextImpl;)Landroid/app/admin/DevicePolicyManager;
+HSPLandroid/app/SystemServiceRegistry$20;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$21;->createService(Landroid/app/ContextImpl;)Landroid/app/admin/DevicePolicyManager;
 HSPLandroid/app/SystemServiceRegistry$21;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$22;->createService()Landroid/location/CountryDetector;
+HSPLandroid/app/SystemServiceRegistry$22;->createService()Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$22;->createService(Landroid/app/ContextImpl;)Landroid/app/DownloadManager;
+HSPLandroid/app/SystemServiceRegistry$22;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Landroid/app/admin/DevicePolicyManager;
+HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Landroid/os/BatteryManager;
 HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$24;->createService(Landroid/app/ContextImpl;)Landroid/app/DownloadManager;
 HSPLandroid/app/SystemServiceRegistry$24;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$25;->createService(Landroid/app/ContextImpl;)Landroid/os/BatteryManager;
 HSPLandroid/app/SystemServiceRegistry$25;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$26;->createService()Landroid/hardware/input/InputManager;
+HSPLandroid/app/SystemServiceRegistry$26;->createService()Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$26;->createService(Landroid/app/ContextImpl;)Landroid/hardware/display/DisplayManager;
+HSPLandroid/app/SystemServiceRegistry$26;->createService(Landroid/app/ContextImpl;)Landroid/nfc/NfcManager;
 HSPLandroid/app/SystemServiceRegistry$26;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$27;->createService(Landroid/app/ContextImpl;)Landroid/hardware/display/DisplayManager;
+HSPLandroid/app/SystemServiceRegistry$27;->createService(Landroid/app/ContextImpl;)Landroid/os/DropBoxManager;
 HSPLandroid/app/SystemServiceRegistry$27;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$28;->createService()Landroid/hardware/input/InputManager;
 HSPLandroid/app/SystemServiceRegistry$28;->createService()Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$28;->getService(Landroid/app/ContextImpl;)Landroid/view/inputmethod/InputMethodManager;
+HSPLandroid/app/SystemServiceRegistry$28;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$29;->createService(Landroid/app/ContextImpl;)Landroid/hardware/display/DisplayManager;
 HSPLandroid/app/SystemServiceRegistry$29;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$29;->getService(Landroid/app/ContextImpl;)Landroid/view/inputmethod/InputMethodManager;
 HSPLandroid/app/SystemServiceRegistry$29;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$2;->createService(Landroid/app/ContextImpl;)Landroid/view/accessibility/CaptioningManager;
 HSPLandroid/app/SystemServiceRegistry$2;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$30;->createService(Landroid/app/ContextImpl;)Landroid/app/KeyguardManager;
+HSPLandroid/app/SystemServiceRegistry$30;->createService(Landroid/app/ContextImpl;)Landroid/hardware/display/ColorDisplayManager;
+HSPLandroid/app/SystemServiceRegistry$30;->createService(Landroid/app/ContextImpl;)Landroid/view/textservice/TextServicesManager;
 HSPLandroid/app/SystemServiceRegistry$30;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$31;->createService(Landroid/app/ContextImpl;)Landroid/app/KeyguardManager;
 HSPLandroid/app/SystemServiceRegistry$31;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$31;->getService(Landroid/app/ContextImpl;)Landroid/view/inputmethod/InputMethodManager;
 HSPLandroid/app/SystemServiceRegistry$31;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$32;->createService(Landroid/app/ContextImpl;)Landroid/view/LayoutInflater;
 HSPLandroid/app/SystemServiceRegistry$32;->createService(Landroid/app/ContextImpl;)Landroid/view/textservice/TextServicesManager;
 HSPLandroid/app/SystemServiceRegistry$32;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Landroid/app/KeyguardManager;
 HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Landroid/location/LocationManager;
 HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Landroid/app/NotificationManager;
+HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Landroid/net/NetworkPolicyManager;
 HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Landroid/view/LayoutInflater;
 HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Landroid/app/NotificationManager;
 HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Landroid/location/LocationManager;
 HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$36;->createService(Landroid/app/ContextImpl;)Landroid/net/NetworkPolicyManager;
+HSPLandroid/app/SystemServiceRegistry$36;->createService(Landroid/app/ContextImpl;)Landroid/os/PowerManager;
 HSPLandroid/app/SystemServiceRegistry$36;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$37;->createService(Landroid/app/ContextImpl;)Landroid/app/NotificationManager;
 HSPLandroid/app/SystemServiceRegistry$37;->createService(Landroid/app/ContextImpl;)Landroid/os/PowerManager;
@@ -2008,34 +3645,55 @@
 HSPLandroid/app/SystemServiceRegistry$39;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$3;->createService(Landroid/app/ContextImpl;)Landroid/accounts/AccountManager;
 HSPLandroid/app/SystemServiceRegistry$3;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$40;->createService(Landroid/app/ContextImpl;)Landroid/hardware/SensorManager;
+HSPLandroid/app/SystemServiceRegistry$40;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$41;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Landroid/hardware/SensorManager;
 HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$43;->createService(Landroid/app/ContextImpl;)Landroid/os/storage/StorageManager;
+HSPLandroid/app/SystemServiceRegistry$43;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Landroid/app/StatusBarManager;
 HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Landroid/os/storage/StorageManager;
 HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/StorageStatsManager;
 HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Landroid/os/storage/StorageManager;
 HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$46;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/StorageStatsManager;
 HSPLandroid/app/SystemServiceRegistry$46;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$47;->createService(Landroid/app/ContextImpl;)Landroid/os/SystemUpdateManager;
+HSPLandroid/app/SystemServiceRegistry$47;->createService(Landroid/app/ContextImpl;)Landroid/telephony/TelephonyRegistryManager;
 HSPLandroid/app/SystemServiceRegistry$47;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$48;->createService(Landroid/app/ContextImpl;)Landroid/telecom/TelecomManager;
+HSPLandroid/app/SystemServiceRegistry$48;->createService(Landroid/app/ContextImpl;)Landroid/telephony/TelephonyRegistryManager;
 HSPLandroid/app/SystemServiceRegistry$48;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$49;->createService(Landroid/app/ContextImpl;)Landroid/telecom/TelecomManager;
 HSPLandroid/app/SystemServiceRegistry$49;->createService(Landroid/app/ContextImpl;)Landroid/telephony/TelephonyRegistryManager;
 HSPLandroid/app/SystemServiceRegistry$49;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$4;->createService(Landroid/app/ContextImpl;)Landroid/app/ActivityManager;
 HSPLandroid/app/SystemServiceRegistry$4;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$50;->createService(Landroid/app/ContextImpl;)Landroid/app/UiModeManager;
 HSPLandroid/app/SystemServiceRegistry$50;->createService(Landroid/app/ContextImpl;)Landroid/telecom/TelecomManager;
 HSPLandroid/app/SystemServiceRegistry$50;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$51;->createService(Landroid/app/ContextImpl;)Landroid/app/UiModeManager;
+HSPLandroid/app/SystemServiceRegistry$51;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$52;->createService(Landroid/app/ContextImpl;)Landroid/app/UiModeManager;
 HSPLandroid/app/SystemServiceRegistry$52;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$53;->createService(Landroid/app/ContextImpl;)Landroid/hardware/usb/UsbManager;
 HSPLandroid/app/SystemServiceRegistry$53;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$55;->createService(Landroid/app/ContextImpl;)Landroid/os/Vibrator;
+HSPLandroid/app/SystemServiceRegistry$55;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImpl;)Landroid/os/Vibrator;
 HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Landroid/app/WallpaperManager;
+HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Landroid/view/WindowManager;
 HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$58;->createService(Landroid/app/ContextImpl;)Landroid/os/UserManager;
 HSPLandroid/app/SystemServiceRegistry$58;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$59;->createService(Landroid/app/ContextImpl;)Landroid/app/AppOpsManager;
 HSPLandroid/app/SystemServiceRegistry$59;->createService(Landroid/app/ContextImpl;)Landroid/view/WindowManager;
 HSPLandroid/app/SystemServiceRegistry$59;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$5;->createService(Landroid/app/ContextImpl;)Landroid/app/ActivityTaskManager;
+HSPLandroid/app/SystemServiceRegistry$5;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$60;->createService(Landroid/app/ContextImpl;)Landroid/os/UserManager;
 HSPLandroid/app/SystemServiceRegistry$60;->createService(Landroid/app/ContextImpl;)Landroid/view/WindowManager;
 HSPLandroid/app/SystemServiceRegistry$60;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
@@ -2048,29 +3706,68 @@
 HSPLandroid/app/SystemServiceRegistry$62;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$63;->createService(Landroid/app/ContextImpl;)Landroid/app/AppOpsManager;
 HSPLandroid/app/SystemServiceRegistry$63;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$64;->createService(Landroid/app/ContextImpl;)Landroid/hardware/camera2/CameraManager;
 HSPLandroid/app/SystemServiceRegistry$64;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$65;->createService(Landroid/app/ContextImpl;)Landroid/content/pm/LauncherApps;
+HSPLandroid/app/SystemServiceRegistry$65;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$66;->createService(Landroid/app/ContextImpl;)Landroid/content/RestrictionsManager;
+HSPLandroid/app/SystemServiceRegistry$66;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$68;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$69;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$70;->createService(Landroid/app/ContextImpl;)Landroid/media/session/MediaSessionManager;
 HSPLandroid/app/SystemServiceRegistry$70;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$71;->createService()Landroid/app/trust/TrustManager;
+HSPLandroid/app/SystemServiceRegistry$71;->createService()Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$72;->createService(Landroid/app/ContextImpl;)Landroid/hardware/fingerprint/FingerprintManager;
+HSPLandroid/app/SystemServiceRegistry$72;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$73;->createService(Landroid/app/ContextImpl;)Landroid/hardware/face/FaceManager;
+HSPLandroid/app/SystemServiceRegistry$73;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$75;->createService(Landroid/app/ContextImpl;)Landroid/hardware/biometrics/BiometricManager;
 HSPLandroid/app/SystemServiceRegistry$75;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$76;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$77;->createService(Landroid/app/ContextImpl;)Landroid/net/NetworkScoreManager;
 HSPLandroid/app/SystemServiceRegistry$77;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$78;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/UsageStatsManager;
 HSPLandroid/app/SystemServiceRegistry$78;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$79;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/NetworkStatsManager;
+HSPLandroid/app/SystemServiceRegistry$79;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/UsageStatsManager;
 HSPLandroid/app/SystemServiceRegistry$79;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$7;->createService(Landroid/app/ContextImpl;)Landroid/app/AlarmManager;
 HSPLandroid/app/SystemServiceRegistry$7;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$80;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/NetworkStatsManager;
+HSPLandroid/app/SystemServiceRegistry$80;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$81;->createService(Landroid/app/ContextImpl;)Landroid/appwidget/AppWidgetManager;
+HSPLandroid/app/SystemServiceRegistry$81;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$82;->createService(Landroid/app/ContextImpl;)Landroid/appwidget/AppWidgetManager;
+HSPLandroid/app/SystemServiceRegistry$82;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$83;->createService(Landroid/app/ContextImpl;)Landroid/appwidget/AppWidgetManager;
 HSPLandroid/app/SystemServiceRegistry$83;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$84;->createService(Landroid/app/ContextImpl;)Landroid/appwidget/AppWidgetManager;
+HSPLandroid/app/SystemServiceRegistry$84;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$86;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$87;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$88;->createService(Landroid/app/ContextImpl;)Landroid/content/pm/ShortcutManager;
 HSPLandroid/app/SystemServiceRegistry$88;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$89;->createService(Landroid/app/ContextImpl;)Landroid/content/pm/ShortcutManager;
+HSPLandroid/app/SystemServiceRegistry$89;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$8;->createService(Landroid/app/ContextImpl;)Landroid/media/AudioManager;
 HSPLandroid/app/SystemServiceRegistry$8;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$91;->createService(Landroid/app/ContextImpl;)Landroid/os/health/SystemHealthManager;
 HSPLandroid/app/SystemServiceRegistry$91;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$92;->createService(Landroid/app/ContextImpl;)Landroid/hardware/location/ContextHubManager;
+HSPLandroid/app/SystemServiceRegistry$92;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$93;->createService(Landroid/app/ContextImpl;)Landroid/view/autofill/AutofillManager;
+HSPLandroid/app/SystemServiceRegistry$93;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$94;->createService(Landroid/app/ContextImpl;)Landroid/view/autofill/AutofillManager;
+HSPLandroid/app/SystemServiceRegistry$94;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$95;->createService(Landroid/app/ContextImpl;)Landroid/view/autofill/AutofillManager;
 HSPLandroid/app/SystemServiceRegistry$95;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$96;->createService(Landroid/app/ContextImpl;)Landroid/view/autofill/AutofillManager;
 HSPLandroid/app/SystemServiceRegistry$96;->createService(Landroid/app/ContextImpl;)Landroid/view/contentcapture/ContentCaptureManager;
 HSPLandroid/app/SystemServiceRegistry$96;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$97;->createService(Landroid/app/ContextImpl;)Landroid/view/contentcapture/ContentCaptureManager;
+HSPLandroid/app/SystemServiceRegistry$97;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$98;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$9;->createService(Landroid/app/ContextImpl;)Landroid/media/MediaRouter;
 HSPLandroid/app/SystemServiceRegistry$9;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
 HSPLandroid/app/SystemServiceRegistry$CachedServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
@@ -2081,31 +3778,86 @@
 HSPLandroid/app/SystemServiceRegistry;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;
 HSPLandroid/app/TaskInfo;-><init>()V
 HSPLandroid/app/TaskInfo;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/app/TaskInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/TaskStackListener;-><init>()V
+HSPLandroid/app/TaskStackListener;->onActivityRequestedOrientationChanged(II)V
+HSPLandroid/app/TaskStackListener;->onRecentTaskListUpdated()V
+HSPLandroid/app/TaskStackListener;->onTaskCreated(ILandroid/content/ComponentName;)V
+HSPLandroid/app/TaskStackListener;->onTaskDescriptionChanged(ILandroid/app/ActivityManager$TaskDescription;)V
+HSPLandroid/app/TaskStackListener;->onTaskDescriptionChanged(Landroid/app/ActivityManager$RunningTaskInfo;)V
+HSPLandroid/app/TaskStackListener;->onTaskDisplayChanged(II)V
+HSPLandroid/app/TaskStackListener;->onTaskMovedToFront(I)V
+HSPLandroid/app/TaskStackListener;->onTaskMovedToFront(Landroid/app/ActivityManager$RunningTaskInfo;)V
+HSPLandroid/app/TaskStackListener;->onTaskRemovalStarted(I)V
+HSPLandroid/app/TaskStackListener;->onTaskRemovalStarted(Landroid/app/ActivityManager$RunningTaskInfo;)V
+HSPLandroid/app/TaskStackListener;->onTaskSnapshotChanged(ILandroid/app/ActivityManager$TaskSnapshot;)V
 HSPLandroid/app/UiModeManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/app/UiModeManager;->getCurrentModeType()I
+HSPLandroid/app/UiModeManager;->getNightMode()I
 HSPLandroid/app/UriGrantsManager$1;->create()Landroid/app/IUriGrantsManager;
 HSPLandroid/app/UriGrantsManager$1;->create()Ljava/lang/Object;
 HSPLandroid/app/UriGrantsManager;->getService()Landroid/app/IUriGrantsManager;
+HSPLandroid/app/UserSwitchObserver;-><init>()V
+HSPLandroid/app/UserSwitchObserver;->onForegroundProfileSwitch(I)V
+HSPLandroid/app/UserSwitchObserver;->onLockedBootComplete(I)V
+HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WallpaperColors;
+HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/WallpaperColors;-><init>(Landroid/graphics/Color;Landroid/graphics/Color;Landroid/graphics/Color;I)V
+HSPLandroid/app/WallpaperColors;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/WallpaperColors;->getColorHints()I
 HSPLandroid/app/WallpaperColors;->getMainColors()Ljava/util/List;
+HSPLandroid/app/WallpaperColors;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/WallpaperInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WallpaperInfo;
+HSPLandroid/app/WallpaperInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/WallpaperInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/WallpaperManager$ColorManagementProxy;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/WallpaperManager$Globals;-><init>(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V
+HSPLandroid/app/WallpaperManager$Globals;->access$200(Landroid/app/WallpaperManager$Globals;)Landroid/app/IWallpaperManager;
+HSPLandroid/app/WallpaperManager$Globals;->addOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;Landroid/os/Handler;II)V
 HSPLandroid/app/WallpaperManager$Globals;->forgetLoadedWallpaper()V
+HSPLandroid/app/WallpaperManager$Globals;->getWallpaperColors(III)Landroid/app/WallpaperColors;
+HSPLandroid/app/WallpaperManager$Globals;->lambda$removeOnColorsChangedListener$0(Landroid/app/WallpaperManager$OnColorsChangedListener;Landroid/util/Pair;)Z
+HSPLandroid/app/WallpaperManager$Globals;->removeOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;II)V
 HSPLandroid/app/WallpaperManager;-><init>(Landroid/app/IWallpaperManager;Landroid/content/Context;Landroid/os/Handler;)V
+HSPLandroid/app/WallpaperManager;->addOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;Landroid/os/Handler;)V
+HSPLandroid/app/WallpaperManager;->addOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;Landroid/os/Handler;I)V
+HSPLandroid/app/WallpaperManager;->getDefaultWallpaperComponent(Landroid/content/Context;)Landroid/content/ComponentName;
+HSPLandroid/app/WallpaperManager;->getWallpaperColors(I)Landroid/app/WallpaperColors;
+HSPLandroid/app/WallpaperManager;->getWallpaperColors(II)Landroid/app/WallpaperColors;
+HSPLandroid/app/WallpaperManager;->getWallpaperFile(II)Landroid/os/ParcelFileDescriptor;
+HSPLandroid/app/WallpaperManager;->getWallpaperIdForUser(II)I
+HSPLandroid/app/WallpaperManager;->getWallpaperInfo()Landroid/app/WallpaperInfo;
+HSPLandroid/app/WallpaperManager;->getWallpaperInfo(I)Landroid/app/WallpaperInfo;
 HSPLandroid/app/WallpaperManager;->initGlobals(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V
+HSPLandroid/app/WallpaperManager;->isWallpaperSupported()Z
+HSPLandroid/app/WallpaperManager;->removeOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;)V
+HSPLandroid/app/WallpaperManager;->removeOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;I)V
 HSPLandroid/app/WindowConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WindowConfiguration;
 HSPLandroid/app/WindowConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/WindowConfiguration;-><init>()V
 HSPLandroid/app/WindowConfiguration;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/WindowConfiguration;-><init>(Landroid/os/Parcel;Landroid/app/WindowConfiguration$1;)V
+HSPLandroid/app/WindowConfiguration;->activityTypeToString(I)Ljava/lang/String;
+HSPLandroid/app/WindowConfiguration;->alwaysOnTopToString(I)Ljava/lang/String;
+HSPLandroid/app/WindowConfiguration;->canReceiveKeys()Z
 HSPLandroid/app/WindowConfiguration;->compareTo(Landroid/app/WindowConfiguration;)I
 HSPLandroid/app/WindowConfiguration;->diff(Landroid/app/WindowConfiguration;Z)J
+HSPLandroid/app/WindowConfiguration;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLandroid/app/WindowConfiguration;->equals(Ljava/lang/Object;)Z
+HSPLandroid/app/WindowConfiguration;->getActivityType()I
 HSPLandroid/app/WindowConfiguration;->getAppBounds()Landroid/graphics/Rect;
+HSPLandroid/app/WindowConfiguration;->getBounds()Landroid/graphics/Rect;
+HPLandroid/app/WindowConfiguration;->getDisplayWindowingMode()I
+HSPLandroid/app/WindowConfiguration;->getRotation()I
 HSPLandroid/app/WindowConfiguration;->getWindowingMode()I
 HSPLandroid/app/WindowConfiguration;->hasWindowDecorCaption()Z
 HSPLandroid/app/WindowConfiguration;->hasWindowShadow()Z
+HSPLandroid/app/WindowConfiguration;->isAlwaysOnTop()Z
 HSPLandroid/app/WindowConfiguration;->isFloating(I)Z
+HSPLandroid/app/WindowConfiguration;->isSplitScreenWindowingMode(I)Z
+HSPLandroid/app/WindowConfiguration;->persistTaskBounds()Z
 HSPLandroid/app/WindowConfiguration;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/WindowConfiguration;->readFromProto(Landroid/util/proto/ProtoInputStream;J)V
 HSPLandroid/app/WindowConfiguration;->setActivityType(I)V
 HSPLandroid/app/WindowConfiguration;->setAlwaysOnTop(I)V
 HSPLandroid/app/WindowConfiguration;->setAppBounds(IIII)V
@@ -2116,63 +3868,269 @@
 HSPLandroid/app/WindowConfiguration;->setTo(Landroid/app/WindowConfiguration;)V
 HSPLandroid/app/WindowConfiguration;->setToDefaults()V
 HSPLandroid/app/WindowConfiguration;->setWindowingMode(I)V
+HSPLandroid/app/WindowConfiguration;->supportSplitScreenWindowingMode()Z
+HSPLandroid/app/WindowConfiguration;->supportSplitScreenWindowingMode(I)Z
 HSPLandroid/app/WindowConfiguration;->tasksAreFloating()Z
+HSPLandroid/app/WindowConfiguration;->toString()Ljava/lang/String;
 HSPLandroid/app/WindowConfiguration;->unset()V
 HSPLandroid/app/WindowConfiguration;->updateFrom(Landroid/app/WindowConfiguration;)I
+HSPLandroid/app/WindowConfiguration;->useWindowFrameForBackdrop()Z
+HSPLandroid/app/WindowConfiguration;->windowingModeToString(I)Ljava/lang/String;
+HSPLandroid/app/WindowConfiguration;->windowsAreScaleable()Z
 HSPLandroid/app/WindowConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/admin/DeviceAdminInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ActivityInfo;)V
+HSPLandroid/app/admin/DeviceAdminInfo;->getActivityInfo()Landroid/content/pm/ActivityInfo;
+HSPLandroid/app/admin/DeviceAdminInfo;->getComponent()Landroid/content/ComponentName;
+HSPLandroid/app/admin/DeviceAdminInfo;->getPackageName()Ljava/lang/String;
+HSPLandroid/app/admin/DeviceAdminInfo;->readPoliciesFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLandroid/app/admin/DeviceAdminInfo;->writePoliciesToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/app/admin/DevicePolicyCache;-><init>()V
+HSPLandroid/app/admin/DevicePolicyCache;->getInstance()Landroid/app/admin/DevicePolicyCache;
+HSPLandroid/app/admin/DevicePolicyEventLogger;-><init>(I)V
+HSPLandroid/app/admin/DevicePolicyEventLogger;->createEvent(I)Landroid/app/admin/DevicePolicyEventLogger;
+HPLandroid/app/admin/DevicePolicyEventLogger;->setAdmin(Landroid/content/ComponentName;)Landroid/app/admin/DevicePolicyEventLogger;
+PLandroid/app/admin/DevicePolicyEventLogger;->setAdmin(Ljava/lang/String;)Landroid/app/admin/DevicePolicyEventLogger;
+PLandroid/app/admin/DevicePolicyEventLogger;->setBoolean(Z)Landroid/app/admin/DevicePolicyEventLogger;
+HSPLandroid/app/admin/DevicePolicyEventLogger;->setStrings([Ljava/lang/String;)Landroid/app/admin/DevicePolicyEventLogger;
+HSPLandroid/app/admin/DevicePolicyEventLogger;->stringArrayValueToBytes([Ljava/lang/String;)[B
+HSPLandroid/app/admin/DevicePolicyEventLogger;->write()V
 HSPLandroid/app/admin/DevicePolicyManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;)V
 HSPLandroid/app/admin/DevicePolicyManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;Z)V
+HSPLandroid/app/admin/DevicePolicyManager;->getAccountTypesWithManagementDisabledAsUser(I)[Ljava/lang/String;
 HSPLandroid/app/admin/DevicePolicyManager;->getActiveAdmins()Ljava/util/List;
 HSPLandroid/app/admin/DevicePolicyManager;->getActiveAdminsAsUser(I)Ljava/util/List;
+HSPLandroid/app/admin/DevicePolicyManager;->getCameraDisabled(Landroid/content/ComponentName;I)Z
+HSPLandroid/app/admin/DevicePolicyManager;->getCurrentFailedPasswordAttempts(I)I
+HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwner()Ljava/lang/String;
 HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerComponentInner(Z)Landroid/content/ComponentName;
+HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerComponentOnAnyUser()Landroid/content/ComponentName;
+HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerComponentOnCallingUser()Landroid/content/ComponentName;
+HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerOrganizationName()Ljava/lang/CharSequence;
+HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerUser()Landroid/os/UserHandle;
+HSPLandroid/app/admin/DevicePolicyManager;->getGuestUserDisabled(Landroid/content/ComponentName;)Z
+HSPLandroid/app/admin/DevicePolicyManager;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;)I
 HSPLandroid/app/admin/DevicePolicyManager;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;I)I
+HSPLandroid/app/admin/DevicePolicyManager;->getMaximumTimeToLock(Landroid/content/ComponentName;I)J
+HSPLandroid/app/admin/DevicePolicyManager;->getPasswordQuality(Landroid/content/ComponentName;)I
+HSPLandroid/app/admin/DevicePolicyManager;->getPasswordQuality(Landroid/content/ComponentName;I)I
+HSPLandroid/app/admin/DevicePolicyManager;->getProfileOwner()Landroid/content/ComponentName;
 HSPLandroid/app/admin/DevicePolicyManager;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
+HSPLandroid/app/admin/DevicePolicyManager;->getRequiredStrongAuthTimeout(Landroid/content/ComponentName;I)J
+HSPLandroid/app/admin/DevicePolicyManager;->getStorageEncryptionStatus()I
+HSPLandroid/app/admin/DevicePolicyManager;->getStorageEncryptionStatus(I)I
+HSPLandroid/app/admin/DevicePolicyManager;->getSystemUpdatePolicy()Landroid/app/admin/SystemUpdatePolicy;
+HSPLandroid/app/admin/DevicePolicyManager;->hasDeviceIdentifierAccess(Ljava/lang/String;II)Z
+HSPLandroid/app/admin/DevicePolicyManager;->isAdminActive(Landroid/content/ComponentName;)Z
+HSPLandroid/app/admin/DevicePolicyManager;->isAdminActiveAsUser(Landroid/content/ComponentName;I)Z
+HSPLandroid/app/admin/DevicePolicyManager;->isDeviceManaged()Z
 HSPLandroid/app/admin/DevicePolicyManager;->isDeviceOwnerApp(Ljava/lang/String;)Z
 HSPLandroid/app/admin/DevicePolicyManager;->isDeviceOwnerAppOnAnyUserInner(Ljava/lang/String;Z)Z
 HSPLandroid/app/admin/DevicePolicyManager;->isDeviceOwnerAppOnCallingUser(Ljava/lang/String;)Z
+HSPLandroid/app/admin/DevicePolicyManager;->isLogoutEnabled()Z
+HSPLandroid/app/admin/DevicePolicyManager;->isNetworkLoggingEnabled(Landroid/content/ComponentName;)Z
 HSPLandroid/app/admin/DevicePolicyManager;->isProfileOwnerApp(Ljava/lang/String;)Z
+HSPLandroid/app/admin/DevicePolicyManager;->isSecondaryLockscreenEnabled(I)Z
 HSPLandroid/app/admin/DevicePolicyManager;->myUserId()I
+HSPLandroid/app/admin/DevicePolicyManager;->reportKeyguardDismissed(I)V
+HSPLandroid/app/admin/DevicePolicyManager;->reportKeyguardSecured(I)V
+HSPLandroid/app/admin/DevicePolicyManager;->reportSuccessfulBiometricAttempt(I)V
+HSPLandroid/app/admin/DevicePolicyManager;->reportSuccessfulPasswordAttempt(I)V
 HSPLandroid/app/admin/DevicePolicyManager;->throwIfParentInstance(Ljava/lang/String;)V
+HSPLandroid/app/admin/DevicePolicyManagerInternal;-><init>()V
+HSPLandroid/app/admin/DeviceStateCache;-><init>()V
+PLandroid/app/admin/IDeviceAdminService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/admin/IDeviceAdminService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDeviceAdminService;
 HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getActiveAdmins(I)Ljava/util/List;
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCameraDisabled(Landroid/content/ComponentName;IZ)Z
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCurrentFailedPasswordAttempts(IZ)I
 HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName;
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerOrganizationName()Ljava/lang/CharSequence;
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getMaximumTimeToLock(Landroid/content/ComponentName;IZ)J
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordQuality(Landroid/content/ComponentName;IZ)I
 HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getProfileOwner(I)Landroid/content/ComponentName;
 HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getStorageEncryptionStatus(Ljava/lang/String;I)I
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getSystemUpdatePolicy()Landroid/app/admin/SystemUpdatePolicy;
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->hasDeviceOwner()Z
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isAdminActive(Landroid/content/ComponentName;I)Z
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isLogoutEnabled()Z
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isNetworkLoggingEnabled(Landroid/content/ComponentName;Ljava/lang/String;)Z
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isSecondaryLockscreenEnabled(I)Z
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportKeyguardDismissed(I)V
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportKeyguardSecured(I)V
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportSuccessfulBiometricAttempt(I)V
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportSuccessfulPasswordAttempt(I)V
+HSPLandroid/app/admin/IDevicePolicyManager$Stub;-><init>()V
 HSPLandroid/app/admin/IDevicePolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDevicePolicyManager;
+HPLandroid/app/admin/IDevicePolicyManager$Stub;->onTransact$setApplicationRestrictions$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub;->onTransact$setUninstallBlocked$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+HSPLandroid/app/admin/IDevicePolicyManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/admin/IKeyguardCallback$Stub;-><init>()V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket$1;-><init>(Ljava/lang/String;II)V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket$2;-><init>(Ljava/lang/String;II)V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket$3;-><init>(Ljava/lang/String;II)V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket$4;-><init>(Ljava/lang/String;II)V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket$4;->allowsCredType(I)Z
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket;-><clinit>()V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket;-><init>(Ljava/lang/String;II)V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket;-><init>(Ljava/lang/String;IILandroid/app/admin/PasswordMetrics$1;)V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket;->forComplexity(I)Landroid/app/admin/PasswordMetrics$ComplexityBucket;
+HPLandroid/app/admin/PasswordMetrics$ComplexityBucket;->values()[Landroid/app/admin/PasswordMetrics$ComplexityBucket;
+HPLandroid/app/admin/PasswordMetrics;-><init>(I)V
+HPLandroid/app/admin/PasswordMetrics;-><init>(IIIIIIIIII)V
+HPLandroid/app/admin/PasswordMetrics;->categoryChar(C)I
+HPLandroid/app/admin/PasswordMetrics;->computeForCredential(Lcom/android/internal/widget/LockscreenCredential;)Landroid/app/admin/PasswordMetrics;
+HPLandroid/app/admin/PasswordMetrics;->computeForPassword([B)Landroid/app/admin/PasswordMetrics;
+PLandroid/app/admin/PasswordMetrics;->maxDiffCategory(I)I
+HPLandroid/app/admin/PasswordMetrics;->maxLengthSequence([B)I
+HPLandroid/app/admin/PasswordMetrics;->maxWith(Landroid/app/admin/PasswordMetrics;)V
+HPLandroid/app/admin/PasswordMetrics;->merge(Ljava/util/List;)Landroid/app/admin/PasswordMetrics;
+HPLandroid/app/admin/PasswordMetrics;->validatePasswordMetrics(Landroid/app/admin/PasswordMetrics;IZLandroid/app/admin/PasswordMetrics;)Ljava/util/List;
+HSPLandroid/app/admin/PasswordPolicy;-><init>()V
+HPLandroid/app/admin/PasswordPolicy;->getMinMetrics()Landroid/app/admin/PasswordMetrics;
+HSPLandroid/app/admin/SystemUpdateInfo;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/app/admin/SystemUpdateInfo;
+HSPLandroid/app/assist/AssistContent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/assist/AssistContent;
+HSPLandroid/app/assist/AssistContent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/assist/AssistContent;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/assist/AssistContent;->getClipData()Landroid/content/ClipData;
+HSPLandroid/app/assist/AssistContent;->getIntent()Landroid/content/Intent;
+HSPLandroid/app/assist/AssistContent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/assist/AssistContent;->writeToParcelInternal(Landroid/os/Parcel;I)V
+HSPLandroid/app/assist/AssistStructure$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/assist/AssistStructure;
+HSPLandroid/app/assist/AssistStructure$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/assist/AssistStructure$ParcelTransferReader;-><init>(Landroid/app/assist/AssistStructure;Landroid/os/IBinder;)V
+HSPLandroid/app/assist/AssistStructure$ParcelTransferReader;->fetchData()V
+HSPLandroid/app/assist/AssistStructure$ParcelTransferReader;->go()V
+HSPLandroid/app/assist/AssistStructure$ParcelTransferReader;->readParcel(II)Landroid/os/Parcel;
 HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;-><init>(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)V
 HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->pushViewStackEntry(Landroid/app/assist/AssistStructure$ViewNode;I)V
 HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeNextEntryToParcel(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;Landroid/os/PooledStringWriter;)Z
 HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeToParcel(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)V
 HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeToParcelInner(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)Z
 HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeView(Landroid/app/assist/AssistStructure$ViewNode;Landroid/os/Parcel;Landroid/os/PooledStringWriter;I)V
+HSPLandroid/app/assist/AssistStructure$SendChannel;-><init>(Landroid/app/assist/AssistStructure;)V
 HSPLandroid/app/assist/AssistStructure$SendChannel;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/app/assist/AssistStructure$ViewNode;-><init>()V
+HSPLandroid/app/assist/AssistStructure$ViewNode;-><init>(Landroid/app/assist/AssistStructure$ParcelTransferReader;I)V
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getAutofillId()Landroid/view/autofill/AutofillId;
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getAutofillType()I
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getChildAt(I)Landroid/app/assist/AssistStructure$ViewNode;
 HSPLandroid/app/assist/AssistStructure$ViewNode;->getChildCount()I
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getClassName()Ljava/lang/String;
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getContentDescription()Ljava/lang/CharSequence;
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getHeight()I
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getHint()Ljava/lang/String;
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getIdEntry()Ljava/lang/String;
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getLeft()I
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getScrollX()I
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getScrollY()I
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getText()Ljava/lang/CharSequence;
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getTop()I
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getVisibility()I
+HSPLandroid/app/assist/AssistStructure$ViewNode;->getWidth()I
+HSPLandroid/app/assist/AssistStructure$ViewNode;->isClickable()Z
+HSPLandroid/app/assist/AssistStructure$ViewNode;->isFocused()Z
 HSPLandroid/app/assist/AssistStructure$ViewNode;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;Z[F)I
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;-><init>(Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistStructure$ViewNode;Z)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->getChildCount()I
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->getNodeText()Landroid/app/assist/AssistStructure$ViewNodeText;
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->newChild(I)Landroid/view/ViewStructure;
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillHints([Ljava/lang/String;)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillId(Landroid/view/autofill/AutofillId;)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillType(I)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillValue(Landroid/view/autofill/AutofillValue;)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setChildCount(I)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setClassName(Ljava/lang/String;)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setClickable(Z)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setContentDescription(Ljava/lang/CharSequence;)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setDataIsSensitive(Z)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setDimens(IIIIII)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setEnabled(Z)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setFocusable(Z)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setFocused(Z)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setHint(Ljava/lang/CharSequence;)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setHintIdEntry(Ljava/lang/String;)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setId(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setImportantForAutofill(I)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setInputType(I)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setLongClickable(Z)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setMaxTextEms(I)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setMaxTextLength(I)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setMinTextEms(I)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setOpaque(Z)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setSelected(Z)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setText(Ljava/lang/CharSequence;)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setTextIdEntry(Ljava/lang/String;)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setVisibility(I)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeText;-><init>()V
+HSPLandroid/app/assist/AssistStructure$ViewNodeText;-><init>(Landroid/os/Parcel;Z)V
+HSPLandroid/app/assist/AssistStructure$ViewNodeText;->isSimple()Z
 HSPLandroid/app/assist/AssistStructure$ViewNodeText;->writeToParcel(Landroid/os/Parcel;ZZ)V
+HSPLandroid/app/assist/AssistStructure$ViewStackEntry;-><init>()V
+HSPLandroid/app/assist/AssistStructure$WindowNode;-><init>(Landroid/app/assist/AssistStructure$ParcelTransferReader;)V
+HSPLandroid/app/assist/AssistStructure$WindowNode;-><init>(Landroid/app/assist/AssistStructure;Landroid/view/ViewRootImpl;ZI)V
+HSPLandroid/app/assist/AssistStructure$WindowNode;->getHeight()I
+HSPLandroid/app/assist/AssistStructure$WindowNode;->getLeft()I
+HSPLandroid/app/assist/AssistStructure$WindowNode;->getRootViewNode()Landroid/app/assist/AssistStructure$ViewNode;
+HSPLandroid/app/assist/AssistStructure$WindowNode;->getTitle()Ljava/lang/CharSequence;
+HSPLandroid/app/assist/AssistStructure$WindowNode;->getTop()I
+HSPLandroid/app/assist/AssistStructure$WindowNode;->getWidth()I
+HSPLandroid/app/assist/AssistStructure$WindowNode;->resolveViewAutofillFlags(Landroid/content/Context;I)I
 HSPLandroid/app/assist/AssistStructure$WindowNode;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;[F)V
+HSPLandroid/app/assist/AssistStructure;-><init>(Landroid/app/Activity;ZI)V
+HSPLandroid/app/assist/AssistStructure;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/assist/AssistStructure;->access$000(Landroid/app/assist/AssistStructure;)Z
+HSPLandroid/app/assist/AssistStructure;->access$100(Landroid/app/assist/AssistStructure;)I
+HSPLandroid/app/assist/AssistStructure;->access$102(Landroid/app/assist/AssistStructure;I)I
+HSPLandroid/app/assist/AssistStructure;->access$200(Landroid/app/assist/AssistStructure;)I
+HSPLandroid/app/assist/AssistStructure;->access$202(Landroid/app/assist/AssistStructure;I)I
+HSPLandroid/app/assist/AssistStructure;->access$300(Landroid/app/assist/AssistStructure;)J
+HSPLandroid/app/assist/AssistStructure;->access$302(Landroid/app/assist/AssistStructure;J)J
+HSPLandroid/app/assist/AssistStructure;->access$400(Landroid/app/assist/AssistStructure;)J
+HSPLandroid/app/assist/AssistStructure;->access$402(Landroid/app/assist/AssistStructure;J)J
 HSPLandroid/app/assist/AssistStructure;->access$500(Landroid/app/assist/AssistStructure;)Ljava/util/ArrayList;
+HSPLandroid/app/assist/AssistStructure;->clearSendChannel()V
+HSPLandroid/app/assist/AssistStructure;->ensureData()V
+HSPLandroid/app/assist/AssistStructure;->getActivityComponent()Landroid/content/ComponentName;
+HSPLandroid/app/assist/AssistStructure;->getWindowNodeAt(I)Landroid/app/assist/AssistStructure$WindowNode;
+HSPLandroid/app/assist/AssistStructure;->getWindowNodeCount()I
+HSPLandroid/app/assist/AssistStructure;->setAcquisitionEndTime(J)V
+HSPLandroid/app/assist/AssistStructure;->setAcquisitionStartTime(J)V
 HSPLandroid/app/assist/AssistStructure;->waitForReady()Z
 HSPLandroid/app/assist/AssistStructure;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/backup/BackupAgent$BackupServiceBinder;-><init>(Landroid/app/backup/BackupAgent;)V
 HSPLandroid/app/backup/BackupAgent$BackupServiceBinder;-><init>(Landroid/app/backup/BackupAgent;Landroid/app/backup/BackupAgent$1;)V
 HSPLandroid/app/backup/BackupAgent$BackupServiceBinder;->doBackup(Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;JLandroid/app/backup/IBackupCallback;I)V
+PLandroid/app/backup/BackupAgent$BackupServiceBinder;->doFullBackup(Landroid/os/ParcelFileDescriptor;JILandroid/app/backup/IBackupManager;I)V
+PLandroid/app/backup/BackupAgent$BackupServiceBinder;->doMeasureFullBackup(JILandroid/app/backup/IBackupManager;I)V
 HSPLandroid/app/backup/BackupAgent$SharedPrefsSynchronizer;-><init>(Landroid/app/backup/BackupAgent;)V
 HSPLandroid/app/backup/BackupAgent$SharedPrefsSynchronizer;->run()V
 HSPLandroid/app/backup/BackupAgent;-><init>()V
 HSPLandroid/app/backup/BackupAgent;->access$100(Landroid/app/backup/BackupAgent;)V
 HSPLandroid/app/backup/BackupAgent;->attach(Landroid/content/Context;)V
+HPLandroid/app/backup/BackupAgent;->fullBackupFile(Ljava/io/File;Landroid/app/backup/FullBackupDataOutput;)V
 HSPLandroid/app/backup/BackupAgent;->getHandler()Landroid/os/Handler;
 HSPLandroid/app/backup/BackupAgent;->onBind()Landroid/os/IBinder;
+HSPLandroid/app/backup/BackupAgent;->onCreate()V
 HSPLandroid/app/backup/BackupAgent;->onCreate(Landroid/os/UserHandle;)V
 HSPLandroid/app/backup/BackupAgent;->onDestroy()V
 HSPLandroid/app/backup/BackupAgent;->waitForSharedPrefs()V
 HSPLandroid/app/backup/BackupAgentHelper;-><init>()V
 HSPLandroid/app/backup/BackupAgentHelper;->addHelper(Ljava/lang/String;Landroid/app/backup/BackupHelper;)V
 HSPLandroid/app/backup/BackupAgentHelper;->onBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
+HSPLandroid/app/backup/BackupDataInput$EntityHeader;-><init>()V
+HSPLandroid/app/backup/BackupDataInput$EntityHeader;-><init>(Landroid/app/backup/BackupDataInput$1;)V
+HSPLandroid/app/backup/BackupDataInput;-><init>(Ljava/io/FileDescriptor;)V
+HSPLandroid/app/backup/BackupDataInput;->finalize()V
+HSPLandroid/app/backup/BackupDataInput;->getKey()Ljava/lang/String;
+HSPLandroid/app/backup/BackupDataInput;->readNextHeader()Z
 HSPLandroid/app/backup/BackupDataOutput;-><init>(Ljava/io/FileDescriptor;JI)V
 HSPLandroid/app/backup/BackupDataOutput;->finalize()V
 HSPLandroid/app/backup/BackupDataOutput;->setKeyPrefix(Ljava/lang/String;)V
+HSPLandroid/app/backup/BackupDataOutput;->writeEntityData([BI)I
+HSPLandroid/app/backup/BackupDataOutput;->writeEntityHeader(Ljava/lang/String;I)I
 HSPLandroid/app/backup/BackupHelperDispatcher$Header;-><init>()V
 HSPLandroid/app/backup/BackupHelperDispatcher$Header;-><init>(Landroid/app/backup/BackupHelperDispatcher$1;)V
 HSPLandroid/app/backup/BackupHelperDispatcher;-><init>()V
@@ -2183,16 +4141,47 @@
 HSPLandroid/app/backup/BackupManager;->checkServiceBinder()V
 HSPLandroid/app/backup/BackupManager;->dataChanged()V
 HSPLandroid/app/backup/BackupManager;->dataChanged(Ljava/lang/String;)V
+HSPLandroid/app/backup/BackupManager;->getCurrentTransport()Ljava/lang/String;
+HSPLandroid/app/backup/BackupManager;->isBackupEnabled()Z
+HSPLandroid/app/backup/BackupManager;->isBackupServiceActive(Landroid/os/UserHandle;)Z
+HSPLandroid/app/backup/BackupManager;->updateTransportAttributes(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
+HSPLandroid/app/backup/BackupManager;->updateTransportAttributes(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;)V
+HSPLandroid/app/backup/BackupTransport$TransportImpl;-><init>(Landroid/app/backup/BackupTransport;)V
+HSPLandroid/app/backup/BackupTransport$TransportImpl;->configurationIntent()Landroid/content/Intent;
+HSPLandroid/app/backup/BackupTransport$TransportImpl;->currentDestinationString()Ljava/lang/String;
+HSPLandroid/app/backup/BackupTransport$TransportImpl;->dataManagementIntent()Landroid/content/Intent;
+HSPLandroid/app/backup/BackupTransport$TransportImpl;->dataManagementIntentLabel()Ljava/lang/CharSequence;
+HSPLandroid/app/backup/BackupTransport$TransportImpl;->name()Ljava/lang/String;
+HSPLandroid/app/backup/BackupTransport$TransportImpl;->transportDirName()Ljava/lang/String;
+HSPLandroid/app/backup/BackupTransport;-><init>()V
+HSPLandroid/app/backup/BackupTransport;->configurationIntent()Landroid/content/Intent;
+HSPLandroid/app/backup/BackupTransport;->dataManagementIntent()Landroid/content/Intent;
+HSPLandroid/app/backup/BackupTransport;->dataManagementIntentLabel()Ljava/lang/CharSequence;
+HSPLandroid/app/backup/BackupTransport;->getBinder()Landroid/os/IBinder;
 HSPLandroid/app/backup/FileBackupHelperBase;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/backup/FileBackupHelperBase;->finalize()V
 HSPLandroid/app/backup/FileBackupHelperBase;->performBackup_checked(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;[Ljava/lang/String;)V
+HPLandroid/app/backup/FullBackupDataOutput;->addSize(J)V
 HSPLandroid/app/backup/IBackupCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/app/backup/IBackupCallback$Stub$Proxy;->operationComplete(J)V
 HSPLandroid/app/backup/IBackupCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupCallback;
 HSPLandroid/app/backup/IBackupManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->dataChanged(Ljava/lang/String;)V
+HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->getCurrentTransport()Ljava/lang/String;
+HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->isBackupEnabled()Z
+HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->isBackupServiceActive(I)Z
+HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->updateTransportAttributesForUser(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
+HSPLandroid/app/backup/IBackupManager$Stub;-><init>()V
+PLandroid/app/backup/IBackupManager$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/app/backup/IBackupManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupManager;
+HPLandroid/app/backup/IBackupManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/app/backup/SharedPreferencesBackupHelper;-><init>(Landroid/content/Context;[Ljava/lang/String;)V
 HSPLandroid/app/backup/SharedPreferencesBackupHelper;->performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
+HSPLandroid/app/blob/IBlobStoreManager$Stub;-><init>()V
+HPLandroid/app/blob/IBlobStoreManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/contentsuggestions/IContentSuggestionsManager$Stub;-><init>()V
+HPLandroid/app/contentsuggestions/IContentSuggestionsManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/job/-$$Lambda$FpGlzN9oJcl8o5soW-gU-DyTvXM;->createService(Landroid/content/Context;)Ljava/lang/Object;
 HSPLandroid/app/job/-$$Lambda$JobSchedulerFrameworkInitializer$PtYe8PQc1PVJQXRnpm3iSxcWTR0;->createService(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object;
 HSPLandroid/app/job/-$$Lambda$JobSchedulerFrameworkInitializer$RHUxgww0pZFMmfQWKgaRAx0YFqA;->createService(Landroid/os/IBinder;)Ljava/lang/Object;
 HSPLandroid/app/job/IJobCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
@@ -2201,16 +4190,25 @@
 HSPLandroid/app/job/IJobCallback$Stub$Proxy;->completeWork(II)Z
 HSPLandroid/app/job/IJobCallback$Stub$Proxy;->dequeueWork(I)Landroid/app/job/JobWorkItem;
 HSPLandroid/app/job/IJobCallback$Stub$Proxy;->jobFinished(IZ)V
+HPLandroid/app/job/IJobCallback$Stub;-><init>()V
 HSPLandroid/app/job/IJobCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobCallback;
+HPLandroid/app/job/IJobCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/app/job/IJobScheduler$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->cancel(I)V
 HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->enqueue(Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I
 HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->getAllPendingJobs()Landroid/content/pm/ParceledListSlice;
 HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->getPendingJob(I)Landroid/app/job/JobInfo;
 HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->schedule(Landroid/app/job/JobInfo;)I
+HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->scheduleAsPackage(Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I
+HSPLandroid/app/job/IJobScheduler$Stub;-><init>()V
 HSPLandroid/app/job/IJobScheduler$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobScheduler;
+HSPLandroid/app/job/IJobScheduler$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/app/job/IJobService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/app/job/IJobService$Stub$Proxy;->startJob(Landroid/app/job/JobParameters;)V
+HPLandroid/app/job/IJobService$Stub$Proxy;->stopJob(Landroid/app/job/JobParameters;)V
 HSPLandroid/app/job/IJobService$Stub;-><init>()V
 HSPLandroid/app/job/IJobService$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/job/IJobService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobService;
 HSPLandroid/app/job/IJobService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/app/job/JobInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobInfo;
 HSPLandroid/app/job/JobInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
@@ -2244,18 +4242,23 @@
 HSPLandroid/app/job/JobInfo$Builder;->build()Landroid/app/job/JobInfo;
 HSPLandroid/app/job/JobInfo$Builder;->setBackoffCriteria(JI)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setExtras(Landroid/os/PersistableBundle;)Landroid/app/job/JobInfo$Builder;
+HSPLandroid/app/job/JobInfo$Builder;->setFlags(I)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setImportantWhileForeground(Z)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setMinimumLatency(J)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setOverrideDeadline(J)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setPeriodic(J)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setPeriodic(JJ)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setPersisted(Z)Landroid/app/job/JobInfo$Builder;
+HSPLandroid/app/job/JobInfo$Builder;->setPrefetch(Z)Landroid/app/job/JobInfo$Builder;
+HSPLandroid/app/job/JobInfo$Builder;->setPriority(I)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setRequiredNetwork(Landroid/net/NetworkRequest;)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setRequiredNetworkType(I)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setRequiresBatteryNotLow(Z)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setRequiresCharging(Z)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setRequiresDeviceIdle(Z)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$Builder;->setRequiresStorageNotLow(Z)Landroid/app/job/JobInfo$Builder;
+HSPLandroid/app/job/JobInfo$Builder;->setTransientExtras(Landroid/os/Bundle;)Landroid/app/job/JobInfo$Builder;
+HSPLandroid/app/job/JobInfo$Builder;->setTriggerContentMaxDelay(J)Landroid/app/job/JobInfo$Builder;
 HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobInfo$TriggerContentUri;
 HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->newArray(I)[Landroid/app/job/JobInfo$TriggerContentUri;
@@ -2263,38 +4266,73 @@
 HSPLandroid/app/job/JobInfo$TriggerContentUri;-><init>(Landroid/net/Uri;I)V
 HSPLandroid/app/job/JobInfo$TriggerContentUri;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/job/JobInfo$TriggerContentUri;-><init>(Landroid/os/Parcel;Landroid/app/job/JobInfo$1;)V
+HPLandroid/app/job/JobInfo$TriggerContentUri;->equals(Ljava/lang/Object;)Z
+PLandroid/app/job/JobInfo$TriggerContentUri;->getFlags()I
+PLandroid/app/job/JobInfo$TriggerContentUri;->getUri()Landroid/net/Uri;
+HPLandroid/app/job/JobInfo$TriggerContentUri;->hashCode()I
 HSPLandroid/app/job/JobInfo$TriggerContentUri;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/job/JobInfo;-><init>(Landroid/app/job/JobInfo$Builder;)V
 HSPLandroid/app/job/JobInfo;-><init>(Landroid/app/job/JobInfo$Builder;Landroid/app/job/JobInfo$1;)V
 HSPLandroid/app/job/JobInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/job/JobInfo;-><init>(Landroid/os/Parcel;Landroid/app/job/JobInfo$1;)V
+HSPLandroid/app/job/JobInfo;->access$2700()Ljava/lang/String;
+HPLandroid/app/job/JobInfo;->equals(Ljava/lang/Object;)Z
+HPLandroid/app/job/JobInfo;->getBackoffPolicy()I
+HSPLandroid/app/job/JobInfo;->getClipData()Landroid/content/ClipData;
+HPLandroid/app/job/JobInfo;->getClipGrantFlags()I
+HSPLandroid/app/job/JobInfo;->getConstraintFlags()I
+HSPLandroid/app/job/JobInfo;->getEstimatedNetworkDownloadBytes()J
+HSPLandroid/app/job/JobInfo;->getEstimatedNetworkUploadBytes()J
 HSPLandroid/app/job/JobInfo;->getExtras()Landroid/os/PersistableBundle;
+HSPLandroid/app/job/JobInfo;->getFlags()I
+HSPLandroid/app/job/JobInfo;->getFlexMillis()J
 HSPLandroid/app/job/JobInfo;->getId()I
+HPLandroid/app/job/JobInfo;->getInitialBackoffMillis()J
 HSPLandroid/app/job/JobInfo;->getIntervalMillis()J
 HSPLandroid/app/job/JobInfo;->getMaxExecutionDelayMillis()J
 HSPLandroid/app/job/JobInfo;->getMinBackoffMillis()J
 HSPLandroid/app/job/JobInfo;->getMinFlexMillis()J
 HSPLandroid/app/job/JobInfo;->getMinLatencyMillis()J
 HSPLandroid/app/job/JobInfo;->getMinPeriodMillis()J
+HSPLandroid/app/job/JobInfo;->getPriority()I
+HSPLandroid/app/job/JobInfo;->getRequiredNetwork()Landroid/net/NetworkRequest;
 HSPLandroid/app/job/JobInfo;->getService()Landroid/content/ComponentName;
+HSPLandroid/app/job/JobInfo;->getTransientExtras()Landroid/os/Bundle;
+HPLandroid/app/job/JobInfo;->getTriggerContentMaxDelay()J
+HPLandroid/app/job/JobInfo;->getTriggerContentUpdateDelay()J
+HSPLandroid/app/job/JobInfo;->getTriggerContentUris()[Landroid/app/job/JobInfo$TriggerContentUri;
+HSPLandroid/app/job/JobInfo;->hasEarlyConstraint()Z
+HSPLandroid/app/job/JobInfo;->hasLateConstraint()Z
+HSPLandroid/app/job/JobInfo;->isExemptedFromAppStandby()Z
+HSPLandroid/app/job/JobInfo;->isPeriodic()Z
 HSPLandroid/app/job/JobInfo;->isPersisted()Z
+HPLandroid/app/job/JobInfo;->isPrefetch()Z
 HSPLandroid/app/job/JobInfo;->isRequireCharging()Z
 HSPLandroid/app/job/JobInfo;->isRequireDeviceIdle()Z
+HPLandroid/app/job/JobInfo;->kindofEqualsBundle(Landroid/os/BaseBundle;Landroid/os/BaseBundle;)Z
 HSPLandroid/app/job/JobInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/job/JobParameters$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobParameters;
 HSPLandroid/app/job/JobParameters$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/job/JobParameters;-><init>(Landroid/os/IBinder;ILandroid/os/PersistableBundle;Landroid/os/Bundle;Landroid/content/ClipData;IZ[Landroid/net/Uri;[Ljava/lang/String;Landroid/net/Network;)V
 HSPLandroid/app/job/JobParameters;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/job/JobParameters;-><init>(Landroid/os/Parcel;Landroid/app/job/JobParameters$1;)V
 HSPLandroid/app/job/JobParameters;->completeWork(Landroid/app/job/JobWorkItem;)V
 HSPLandroid/app/job/JobParameters;->dequeueWork()Landroid/app/job/JobWorkItem;
 HSPLandroid/app/job/JobParameters;->getCallback()Landroid/app/job/IJobCallback;
+HSPLandroid/app/job/JobParameters;->getDebugStopReason()Ljava/lang/String;
 HSPLandroid/app/job/JobParameters;->getExtras()Landroid/os/PersistableBundle;
 HSPLandroid/app/job/JobParameters;->getJobId()I
+HPLandroid/app/job/JobParameters;->getJobStopReasonCodes()[I
 HSPLandroid/app/job/JobParameters;->getNetwork()Landroid/net/Network;
+HPLandroid/app/job/JobParameters;->getStopReason()I
+HSPLandroid/app/job/JobParameters;->getTransientExtras()Landroid/os/Bundle;
 HSPLandroid/app/job/JobParameters;->getTriggeredContentAuthorities()[Ljava/lang/String;
 HSPLandroid/app/job/JobParameters;->getTriggeredContentUris()[Landroid/net/Uri;
+HPLandroid/app/job/JobParameters;->setStopReason(ILjava/lang/String;)V
+HSPLandroid/app/job/JobParameters;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/job/JobScheduler;-><init>()V
 HSPLandroid/app/job/JobSchedulerFrameworkInitializer;->lambda$registerServiceWrappers$0(Landroid/os/IBinder;)Landroid/app/job/JobScheduler;
+HSPLandroid/app/job/JobSchedulerFrameworkInitializer;->lambda$registerServiceWrappers$1(Landroid/content/Context;Landroid/os/IBinder;)Landroid/os/DeviceIdleManager;
 HSPLandroid/app/job/JobService$1;-><init>(Landroid/app/job/JobService;Landroid/app/Service;)V
 HSPLandroid/app/job/JobService$1;->onStartJob(Landroid/app/job/JobParameters;)Z
 HSPLandroid/app/job/JobService$1;->onStopJob(Landroid/app/job/JobParameters;)Z
@@ -2315,55 +4353,186 @@
 HSPLandroid/app/job/JobWorkItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/job/JobWorkItem;-><init>(Landroid/content/Intent;)V
 HSPLandroid/app/job/JobWorkItem;-><init>(Landroid/os/Parcel;)V
+HPLandroid/app/job/JobWorkItem;->bumpDeliveryCount()V
+HPLandroid/app/job/JobWorkItem;->getGrants()Ljava/lang/Object;
 HSPLandroid/app/job/JobWorkItem;->getIntent()Landroid/content/Intent;
 HSPLandroid/app/job/JobWorkItem;->getWorkId()I
+HPLandroid/app/job/JobWorkItem;->setWorkId(I)V
 HSPLandroid/app/job/JobWorkItem;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/prediction/AppPredictionContext$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppPredictionContext;
+HSPLandroid/app/prediction/AppPredictionContext$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/prediction/AppPredictionContext;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/prediction/AppPredictionContext;-><init>(Landroid/os/Parcel;Landroid/app/prediction/AppPredictionContext$1;)V
+HSPLandroid/app/prediction/AppPredictionContext;->getUiSurface()Ljava/lang/String;
+HSPLandroid/app/prediction/AppPredictionContext;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/prediction/AppPredictionSessionId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppPredictionSessionId;
+HSPLandroid/app/prediction/AppPredictionSessionId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/prediction/AppPredictionSessionId;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/prediction/AppPredictionSessionId;-><init>(Landroid/os/Parcel;Landroid/app/prediction/AppPredictionSessionId$1;)V
+HSPLandroid/app/prediction/AppPredictionSessionId;->equals(Ljava/lang/Object;)Z
+HSPLandroid/app/prediction/AppPredictionSessionId;->hashCode()I
+HSPLandroid/app/prediction/AppPredictionSessionId;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/prediction/AppTarget$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppTarget;
+HSPLandroid/app/prediction/AppTarget$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/prediction/AppTarget;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/prediction/AppTarget;-><init>(Landroid/os/Parcel;Landroid/app/prediction/AppTarget$1;)V
+HSPLandroid/app/prediction/AppTarget;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/prediction/AppTargetEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppTargetEvent;
+HSPLandroid/app/prediction/AppTargetEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/prediction/AppTargetEvent;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/prediction/AppTargetEvent;-><init>(Landroid/os/Parcel;Landroid/app/prediction/AppTargetEvent$1;)V
+HSPLandroid/app/prediction/AppTargetEvent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/prediction/AppTargetId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppTargetId;
+HSPLandroid/app/prediction/AppTargetId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/prediction/AppTargetId;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/prediction/AppTargetId;-><init>(Landroid/os/Parcel;Landroid/app/prediction/AppTargetId$1;)V
+HSPLandroid/app/prediction/AppTargetId;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/prediction/IPredictionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/prediction/IPredictionCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/prediction/IPredictionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/prediction/IPredictionCallback;
+HSPLandroid/app/prediction/IPredictionManager$Stub;-><init>()V
+HPLandroid/app/prediction/IPredictionManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/app/role/-$$Lambda$9DeAxmM9lUVr3-FTSefyo-BW8DY;-><init>(Lcom/android/internal/infra/AndroidFuture;)V
+PLandroid/app/role/-$$Lambda$9DeAxmM9lUVr3-FTSefyo-BW8DY;->onResult(Landroid/os/Bundle;)V
+PLandroid/app/role/-$$Lambda$RoleControllerManager$Jsb4ev7pHUqel8_lglNSRLiUzpg;->run(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/app/role/-$$Lambda$RoleControllerManager$hbh627Rh8mtJykW3vb1FWR34mIQ;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/String;Ljava/util/function/Consumer;)V
+PLandroid/app/role/-$$Lambda$RoleControllerManager$hbh627Rh8mtJykW3vb1FWR34mIQ;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLandroid/app/role/-$$Lambda$RoleControllerManager$mCMKfoPdye0sMu6efs963HCR1Xk;-><init>(Ljava/lang/Throwable;Ljava/lang/String;Ljava/util/function/Consumer;Landroid/os/Bundle;)V
+HPLandroid/app/role/-$$Lambda$RoleControllerManager$mCMKfoPdye0sMu6efs963HCR1Xk;->run()V
+HSPLandroid/app/role/-$$Lambda$Z0BwIRmLFQVA4XrF_I5nxvuecWE;-><clinit>()V
+HSPLandroid/app/role/-$$Lambda$Z0BwIRmLFQVA4XrF_I5nxvuecWE;-><init>()V
+PLandroid/app/role/-$$Lambda$Z0BwIRmLFQVA4XrF_I5nxvuecWE;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/app/role/IOnRoleHoldersChangedListener$Stub;-><init>()V
+HSPLandroid/app/role/IOnRoleHoldersChangedListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/app/role/IRoleController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/role/IRoleController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/role/IRoleController$Stub$Proxy;->grantDefaultRoles(Landroid/os/RemoteCallback;)V
+PLandroid/app/role/IRoleController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/role/IRoleController;
 HSPLandroid/app/role/IRoleManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/app/role/IRoleManager$Stub$Proxy;->getDefaultSmsPackage(I)Ljava/lang/String;
+HSPLandroid/app/role/IRoleManager$Stub;-><init>()V
 HSPLandroid/app/role/IRoleManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/role/IRoleManager;
+HSPLandroid/app/role/IRoleManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/role/RoleControllerManager$1;-><init>(Landroid/app/role/RoleControllerManager;Landroid/content/Context;Landroid/content/Intent;IILjava/util/function/Function;Landroid/os/Handler;)V
+HSPLandroid/app/role/RoleControllerManager$1;->getJobHandler()Landroid/os/Handler;
+HSPLandroid/app/role/RoleControllerManager;-><init>(Landroid/content/ComponentName;Landroid/os/Handler;Landroid/content/Context;)V
+PLandroid/app/role/RoleControllerManager;->createWithInitializedRemoteServiceComponentName(Landroid/os/Handler;Landroid/content/Context;)Landroid/app/role/RoleControllerManager;
+HSPLandroid/app/role/RoleControllerManager;->getRemoteServiceComponentName(Landroid/content/Context;)Landroid/content/ComponentName;
+PLandroid/app/role/RoleControllerManager;->grantDefaultRoles(Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V
+HSPLandroid/app/role/RoleControllerManager;->initializeRemoteServiceComponentName(Landroid/content/Context;)V
+HPLandroid/app/role/RoleControllerManager;->lambda$grantDefaultRoles$0(Landroid/app/role/IRoleController;)Ljava/util/concurrent/CompletableFuture;
+HPLandroid/app/role/RoleControllerManager;->lambda$propagateCallback$7(Ljava/lang/Throwable;Ljava/lang/String;Ljava/util/function/Consumer;Landroid/os/Bundle;)V
+HPLandroid/app/role/RoleControllerManager;->lambda$propagateCallback$8(Ljava/util/concurrent/Executor;Ljava/lang/String;Ljava/util/function/Consumer;Landroid/os/Bundle;Ljava/lang/Throwable;)V
+HSPLandroid/app/role/RoleControllerManager;->propagateCallback(Lcom/android/internal/infra/AndroidFuture;Ljava/lang/String;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V
+HSPLandroid/app/role/RoleManager$OnRoleHoldersChangedListenerDelegate;-><init>(Ljava/util/concurrent/Executor;Landroid/app/role/OnRoleHoldersChangedListener;)V
 HSPLandroid/app/role/RoleManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/role/RoleManager;->addOnRoleHoldersChangedListenerAsUser(Ljava/util/concurrent/Executor;Landroid/app/role/OnRoleHoldersChangedListener;Landroid/os/UserHandle;)V
 HSPLandroid/app/role/RoleManager;->getDefaultSmsPackage(I)Ljava/lang/String;
+HSPLandroid/app/role/RoleManager;->getRoleHolders(Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/app/role/RoleManager;->getRoleHoldersAsUser(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List;
+HSPLandroid/app/role/RoleManager;->isRoleAvailable(Ljava/lang/String;)Z
+HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityConfigurationChangeItem;
+HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/servertransaction/ActivityConfigurationChangeItem;-><init>()V
+HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ActivityConfigurationChangeItem$1;)V
+HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->obtain(Landroid/content/res/Configuration;)Landroid/app/servertransaction/ActivityConfigurationChangeItem;
+HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
+HPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->recycle()V
+HPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/servertransaction/ActivityLifecycleItem;-><init>()V
+HSPLandroid/app/servertransaction/ActivityLifecycleItem;->recycle()V
+HSPLandroid/app/servertransaction/ActivityRelaunchItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityRelaunchItem;
+HSPLandroid/app/servertransaction/ActivityRelaunchItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/ActivityRelaunchItem;-><init>()V
+HSPLandroid/app/servertransaction/ActivityRelaunchItem;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/servertransaction/ActivityRelaunchItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ActivityRelaunchItem$1;)V
+HSPLandroid/app/servertransaction/ActivityRelaunchItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/ActivityRelaunchItem;->obtain(Ljava/util/List;Ljava/util/List;ILandroid/util/MergedConfiguration;Z)Landroid/app/servertransaction/ActivityRelaunchItem;
+HSPLandroid/app/servertransaction/ActivityRelaunchItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/ActivityRelaunchItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
+HSPLandroid/app/servertransaction/ActivityRelaunchItem;->recycle()V
+HSPLandroid/app/servertransaction/ActivityResultItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityResultItem;
+HSPLandroid/app/servertransaction/ActivityResultItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/ActivityResultItem;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/servertransaction/ActivityResultItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ActivityResultItem$1;)V
+HSPLandroid/app/servertransaction/ActivityResultItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 HSPLandroid/app/servertransaction/BaseClientRequest;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 HSPLandroid/app/servertransaction/BaseClientRequest;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
 HSPLandroid/app/servertransaction/ClientTransaction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ClientTransaction;
 HSPLandroid/app/servertransaction/ClientTransaction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/ClientTransaction;-><init>()V
 HSPLandroid/app/servertransaction/ClientTransaction;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/servertransaction/ClientTransaction;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ClientTransaction$1;)V
+HSPLandroid/app/servertransaction/ClientTransaction;->addCallback(Landroid/app/servertransaction/ClientTransactionItem;)V
 HSPLandroid/app/servertransaction/ClientTransaction;->getActivityToken()Landroid/os/IBinder;
 HSPLandroid/app/servertransaction/ClientTransaction;->getCallbacks()Ljava/util/List;
+HSPLandroid/app/servertransaction/ClientTransaction;->getClient()Landroid/app/IApplicationThread;
 HSPLandroid/app/servertransaction/ClientTransaction;->getLifecycleStateRequest()Landroid/app/servertransaction/ActivityLifecycleItem;
+HSPLandroid/app/servertransaction/ClientTransaction;->obtain(Landroid/app/IApplicationThread;Landroid/os/IBinder;)Landroid/app/servertransaction/ClientTransaction;
 HSPLandroid/app/servertransaction/ClientTransaction;->preExecute(Landroid/app/ClientTransactionHandler;)V
+HSPLandroid/app/servertransaction/ClientTransaction;->recycle()V
+HSPLandroid/app/servertransaction/ClientTransaction;->schedule()V
+HSPLandroid/app/servertransaction/ClientTransaction;->setLifecycleStateRequest(Landroid/app/servertransaction/ActivityLifecycleItem;)V
+HSPLandroid/app/servertransaction/ClientTransaction;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/servertransaction/ClientTransactionItem;-><init>()V
 HSPLandroid/app/servertransaction/ClientTransactionItem;->getPostExecutionState()I
 HSPLandroid/app/servertransaction/ConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ConfigurationChangeItem;
 HSPLandroid/app/servertransaction/ConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/ConfigurationChangeItem;-><init>()V
 HSPLandroid/app/servertransaction/ConfigurationChangeItem;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/servertransaction/ConfigurationChangeItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ConfigurationChangeItem$1;)V
 HSPLandroid/app/servertransaction/ConfigurationChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/ConfigurationChangeItem;->obtain(Landroid/content/res/Configuration;)Landroid/app/servertransaction/ConfigurationChangeItem;
 HSPLandroid/app/servertransaction/ConfigurationChangeItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
+HSPLandroid/app/servertransaction/ConfigurationChangeItem;->recycle()V
+HSPLandroid/app/servertransaction/ConfigurationChangeItem;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/servertransaction/DestroyActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/DestroyActivityItem;
 HSPLandroid/app/servertransaction/DestroyActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/servertransaction/DestroyActivityItem;-><init>()V
 HSPLandroid/app/servertransaction/DestroyActivityItem;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/servertransaction/DestroyActivityItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/DestroyActivityItem$1;)V
 HSPLandroid/app/servertransaction/DestroyActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 HSPLandroid/app/servertransaction/DestroyActivityItem;->getTargetState()I
+HPLandroid/app/servertransaction/DestroyActivityItem;->obtain(ZI)Landroid/app/servertransaction/DestroyActivityItem;
 HSPLandroid/app/servertransaction/DestroyActivityItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
+HPLandroid/app/servertransaction/DestroyActivityItem;->recycle()V
+HPLandroid/app/servertransaction/DestroyActivityItem;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/servertransaction/LaunchActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/LaunchActivityItem;
 HSPLandroid/app/servertransaction/LaunchActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/LaunchActivityItem;-><init>()V
 HSPLandroid/app/servertransaction/LaunchActivityItem;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/servertransaction/LaunchActivityItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/LaunchActivityItem$1;)V
 HSPLandroid/app/servertransaction/LaunchActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/LaunchActivityItem;->obtain(Landroid/content/Intent;ILandroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;ILandroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/util/List;Ljava/util/List;ZLandroid/app/ProfilerInfo;Landroid/os/IBinder;)Landroid/app/servertransaction/LaunchActivityItem;
 HSPLandroid/app/servertransaction/LaunchActivityItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 HSPLandroid/app/servertransaction/LaunchActivityItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
+HSPLandroid/app/servertransaction/LaunchActivityItem;->recycle()V
 HSPLandroid/app/servertransaction/LaunchActivityItem;->setValues(Landroid/app/servertransaction/LaunchActivityItem;Landroid/content/Intent;ILandroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;ILandroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/util/List;Ljava/util/List;ZLandroid/app/ProfilerInfo;Landroid/os/IBinder;)V
+HSPLandroid/app/servertransaction/LaunchActivityItem;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/servertransaction/NewIntentItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/NewIntentItem;
+HSPLandroid/app/servertransaction/NewIntentItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/NewIntentItem;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/servertransaction/NewIntentItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/NewIntentItem$1;)V
+HSPLandroid/app/servertransaction/NewIntentItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/NewIntentItem;->getPostExecutionState()I
+HPLandroid/app/servertransaction/NewIntentItem;->obtain(Ljava/util/List;Z)Landroid/app/servertransaction/NewIntentItem;
+HPLandroid/app/servertransaction/NewIntentItem;->recycle()V
+HPLandroid/app/servertransaction/NewIntentItem;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/servertransaction/ObjectPool;->obtain(Ljava/lang/Class;)Landroid/app/servertransaction/ObjectPoolItem;
+HSPLandroid/app/servertransaction/ObjectPool;->recycle(Landroid/app/servertransaction/ObjectPoolItem;)V
 HSPLandroid/app/servertransaction/PauseActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/PauseActivityItem;
 HSPLandroid/app/servertransaction/PauseActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/PauseActivityItem;-><init>()V
 HSPLandroid/app/servertransaction/PauseActivityItem;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/servertransaction/PauseActivityItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/PauseActivityItem$1;)V
 HSPLandroid/app/servertransaction/PauseActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 HSPLandroid/app/servertransaction/PauseActivityItem;->getTargetState()I
+HSPLandroid/app/servertransaction/PauseActivityItem;->obtain(ZZIZ)Landroid/app/servertransaction/PauseActivityItem;
 HSPLandroid/app/servertransaction/PauseActivityItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/PauseActivityItem;->recycle()V
+HSPLandroid/app/servertransaction/PauseActivityItem;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;-><init>()V
 HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->run()V
 HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->setActivity(Landroid/app/ActivityThread$ActivityClientRecord;)V
@@ -2376,186 +4545,805 @@
 HSPLandroid/app/servertransaction/PendingTransactionActions;->getStopInfo()Landroid/app/servertransaction/PendingTransactionActions$StopInfo;
 HSPLandroid/app/servertransaction/PendingTransactionActions;->setCallOnPostCreate(Z)V
 HSPLandroid/app/servertransaction/PendingTransactionActions;->setOldState(Landroid/os/Bundle;)V
+HSPLandroid/app/servertransaction/PendingTransactionActions;->setReportRelaunchToWindowManager(Z)V
 HSPLandroid/app/servertransaction/PendingTransactionActions;->setRestoreInstanceState(Z)V
 HSPLandroid/app/servertransaction/PendingTransactionActions;->setStopInfo(Landroid/app/servertransaction/PendingTransactionActions$StopInfo;)V
 HSPLandroid/app/servertransaction/PendingTransactionActions;->shouldCallOnPostCreate()Z
+HSPLandroid/app/servertransaction/PendingTransactionActions;->shouldReportRelaunchToWindowManager()Z
 HSPLandroid/app/servertransaction/PendingTransactionActions;->shouldRestoreInstanceState()Z
 HSPLandroid/app/servertransaction/ResumeActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ResumeActivityItem;
 HSPLandroid/app/servertransaction/ResumeActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/ResumeActivityItem;-><init>()V
 HSPLandroid/app/servertransaction/ResumeActivityItem;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/servertransaction/ResumeActivityItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ResumeActivityItem$1;)V
 HSPLandroid/app/servertransaction/ResumeActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 HSPLandroid/app/servertransaction/ResumeActivityItem;->getTargetState()I
+HPLandroid/app/servertransaction/ResumeActivityItem;->obtain(IZ)Landroid/app/servertransaction/ResumeActivityItem;
+HSPLandroid/app/servertransaction/ResumeActivityItem;->obtain(Z)Landroid/app/servertransaction/ResumeActivityItem;
 HSPLandroid/app/servertransaction/ResumeActivityItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 HSPLandroid/app/servertransaction/ResumeActivityItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
+HSPLandroid/app/servertransaction/ResumeActivityItem;->recycle()V
+HSPLandroid/app/servertransaction/ResumeActivityItem;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/servertransaction/StartActivityItem$1;-><init>()V
+HSPLandroid/app/servertransaction/StartActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/StartActivityItem;
+HSPLandroid/app/servertransaction/StartActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/StartActivityItem;-><clinit>()V
+PLandroid/app/servertransaction/StartActivityItem;-><init>()V
+HSPLandroid/app/servertransaction/StartActivityItem;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/servertransaction/StartActivityItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/StartActivityItem$1;)V
+HSPLandroid/app/servertransaction/StartActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/StartActivityItem;->getTargetState()I
+HPLandroid/app/servertransaction/StartActivityItem;->obtain()Landroid/app/servertransaction/StartActivityItem;
+HPLandroid/app/servertransaction/StartActivityItem;->recycle()V
+HPLandroid/app/servertransaction/StartActivityItem;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/servertransaction/StopActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/StopActivityItem;
 HSPLandroid/app/servertransaction/StopActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/StopActivityItem;-><init>()V
 HSPLandroid/app/servertransaction/StopActivityItem;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/servertransaction/StopActivityItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/StopActivityItem$1;)V
 HSPLandroid/app/servertransaction/StopActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 HSPLandroid/app/servertransaction/StopActivityItem;->getTargetState()I
+HSPLandroid/app/servertransaction/StopActivityItem;->obtain(I)Landroid/app/servertransaction/StopActivityItem;
 HSPLandroid/app/servertransaction/StopActivityItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/StopActivityItem;->recycle()V
+HSPLandroid/app/servertransaction/StopActivityItem;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/servertransaction/TopResumedActivityChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/TopResumedActivityChangeItem;
 HSPLandroid/app/servertransaction/TopResumedActivityChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;-><init>()V
 HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/TopResumedActivityChangeItem$1;)V
 HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;->obtain(Z)Landroid/app/servertransaction/TopResumedActivityChangeItem;
 HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;->recycle()V
+HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/servertransaction/TransactionExecutor;-><init>(Landroid/app/ClientTransactionHandler;)V
+HSPLandroid/app/servertransaction/TransactionExecutor;->cycleToPath(Landroid/app/ActivityThread$ActivityClientRecord;ILandroid/app/servertransaction/ClientTransaction;)V
 HSPLandroid/app/servertransaction/TransactionExecutor;->cycleToPath(Landroid/app/ActivityThread$ActivityClientRecord;IZLandroid/app/servertransaction/ClientTransaction;)V
 HSPLandroid/app/servertransaction/TransactionExecutor;->execute(Landroid/app/servertransaction/ClientTransaction;)V
 HSPLandroid/app/servertransaction/TransactionExecutor;->executeCallbacks(Landroid/app/servertransaction/ClientTransaction;)V
 HSPLandroid/app/servertransaction/TransactionExecutor;->executeLifecycleState(Landroid/app/servertransaction/ClientTransaction;)V
 HSPLandroid/app/servertransaction/TransactionExecutor;->performLifecycleSequence(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/util/IntArray;Landroid/app/servertransaction/ClientTransaction;)V
 HSPLandroid/app/servertransaction/TransactionExecutorHelper;-><init>()V
+HSPLandroid/app/servertransaction/TransactionExecutorHelper;->getClosestOfStates(Landroid/app/ActivityThread$ActivityClientRecord;[I)I
 HSPLandroid/app/servertransaction/TransactionExecutorHelper;->getClosestPreExecutionState(Landroid/app/ActivityThread$ActivityClientRecord;I)I
 HSPLandroid/app/servertransaction/TransactionExecutorHelper;->getLifecyclePath(IIZ)Landroid/util/IntArray;
 HSPLandroid/app/servertransaction/TransactionExecutorHelper;->lastCallbackRequestingState(Landroid/app/servertransaction/ClientTransaction;)I
+HSPLandroid/app/servertransaction/TransactionExecutorHelper;->pathInvolvesDestruction(Landroid/util/IntArray;)Z
 HSPLandroid/app/slice/-$$Lambda$SliceProvider$bIgM5f4PsMvz_YYWEeFTjvTqevw;-><init>(Landroid/app/slice/SliceProvider;)V
 HSPLandroid/app/slice/ISliceManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->checkSlicePermission(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;II[Ljava/lang/String;)I
+HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->getPinnedSlices(Ljava/lang/String;)[Landroid/net/Uri;
+HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->getPinnedSpecs(Landroid/net/Uri;Ljava/lang/String;)[Landroid/app/slice/SliceSpec;
+HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->grantSlicePermission(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
+HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->pinSlice(Ljava/lang/String;Landroid/net/Uri;[Landroid/app/slice/SliceSpec;Landroid/os/IBinder;)V
+HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->unpinSlice(Ljava/lang/String;Landroid/net/Uri;Landroid/os/IBinder;)V
+HSPLandroid/app/slice/ISliceManager$Stub;-><init>()V
 HSPLandroid/app/slice/ISliceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/slice/ISliceManager;
+HPLandroid/app/slice/ISliceManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/slice/Slice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/slice/Slice;
+HSPLandroid/app/slice/Slice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/slice/Slice$Builder;-><init>(Landroid/net/Uri;Landroid/app/slice/SliceSpec;)V
+HSPLandroid/app/slice/Slice$Builder;->addAction(Landroid/app/PendingIntent;Landroid/app/slice/Slice;Ljava/lang/String;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->addHints(Ljava/util/List;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->addIcon(Landroid/graphics/drawable/Icon;Ljava/lang/String;Ljava/util/List;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->addInt(ILjava/lang/String;Ljava/util/List;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->addLong(JLjava/lang/String;Ljava/util/List;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->addSubSlice(Landroid/app/slice/Slice;Ljava/lang/String;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->addText(Ljava/lang/CharSequence;Ljava/lang/String;Ljava/util/List;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->build()Landroid/app/slice/Slice;
+HSPLandroid/app/slice/Slice;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/slice/Slice;-><init>(Ljava/util/ArrayList;[Ljava/lang/String;Landroid/net/Uri;Landroid/app/slice/SliceSpec;)V
+HSPLandroid/app/slice/Slice;->access$002(Landroid/app/slice/Slice;Landroid/app/slice/SliceSpec;)Landroid/app/slice/SliceSpec;
+HSPLandroid/app/slice/Slice;->getHints()Ljava/util/List;
+HSPLandroid/app/slice/Slice;->getItems()Ljava/util/List;
+HSPLandroid/app/slice/Slice;->getSpec()Landroid/app/slice/SliceSpec;
+HSPLandroid/app/slice/Slice;->getUri()Landroid/net/Uri;
+HSPLandroid/app/slice/SliceItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/slice/SliceItem;
+HSPLandroid/app/slice/SliceItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/slice/SliceItem;-><init>(Landroid/app/PendingIntent;Landroid/app/slice/Slice;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
+HSPLandroid/app/slice/SliceItem;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/slice/SliceItem;-><init>(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
+HSPLandroid/app/slice/SliceItem;-><init>(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
+HSPLandroid/app/slice/SliceItem;->getAction()Landroid/app/PendingIntent;
+HSPLandroid/app/slice/SliceItem;->getBaseType(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/app/slice/SliceItem;->getFormat()Ljava/lang/String;
+HSPLandroid/app/slice/SliceItem;->getHints()Ljava/util/List;
+HSPLandroid/app/slice/SliceItem;->getIcon()Landroid/graphics/drawable/Icon;
+HSPLandroid/app/slice/SliceItem;->getInt()I
+HSPLandroid/app/slice/SliceItem;->getLong()J
+HSPLandroid/app/slice/SliceItem;->getSlice()Landroid/app/slice/Slice;
+HSPLandroid/app/slice/SliceItem;->getSubType()Ljava/lang/String;
+HSPLandroid/app/slice/SliceItem;->getText()Ljava/lang/CharSequence;
+HSPLandroid/app/slice/SliceItem;->readObj(Ljava/lang/String;Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/slice/SliceManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLandroid/app/slice/SliceManager;->bindSlice(Landroid/net/Uri;Ljava/util/Set;)Landroid/app/slice/Slice;
+HSPLandroid/app/slice/SliceManager;->checkSlicePermission(Landroid/net/Uri;II)I
+HSPLandroid/app/slice/SliceManager;->enforceSlicePermission(Landroid/net/Uri;Ljava/lang/String;II[Ljava/lang/String;)V
+HSPLandroid/app/slice/SliceManager;->getPinnedSlices()Ljava/util/List;
+HSPLandroid/app/slice/SliceManager;->getPinnedSpecs(Landroid/net/Uri;)Ljava/util/Set;
+HSPLandroid/app/slice/SliceManager;->grantSlicePermission(Ljava/lang/String;Landroid/net/Uri;)V
+HSPLandroid/app/slice/SliceManager;->pinSlice(Landroid/net/Uri;Ljava/util/Set;)V
+HSPLandroid/app/slice/SliceManager;->unpinSlice(Landroid/net/Uri;)V
 HSPLandroid/app/slice/SliceProvider;-><init>([Ljava/lang/String;)V
 HSPLandroid/app/slice/SliceProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
+HSPLandroid/app/slice/SliceProvider;->call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
+HSPLandroid/app/slice/SliceProvider;->handleBindSlice(Landroid/net/Uri;Ljava/util/List;Ljava/lang/String;II)Landroid/app/slice/Slice;
+HSPLandroid/app/slice/SliceProvider;->handlePinSlice(Landroid/net/Uri;)V
+HSPLandroid/app/slice/SliceProvider;->handleUnpinSlice(Landroid/net/Uri;)V
+HSPLandroid/app/slice/SliceProvider;->onBindSliceStrict(Landroid/net/Uri;Ljava/util/List;)Landroid/app/slice/Slice;
+HSPLandroid/app/slice/SliceProvider;->validateIncomingUriOrNull(Landroid/net/Uri;)Landroid/net/Uri;
 HSPLandroid/app/slice/SliceSpec$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/slice/SliceSpec;
 HSPLandroid/app/slice/SliceSpec$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/slice/SliceSpec$1;->newArray(I)[Landroid/app/slice/SliceSpec;
+HSPLandroid/app/slice/SliceSpec$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/app/slice/SliceSpec;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/slice/SliceSpec;-><init>(Ljava/lang/String;I)V
 HSPLandroid/app/slice/SliceSpec;->getRevision()I
 HSPLandroid/app/slice/SliceSpec;->getType()Ljava/lang/String;
 HSPLandroid/app/slice/SliceSpec;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/timedetector/ITimeDetectorService$Stub;-><init>()V
+HSPLandroid/app/timedetector/ITimeDetectorService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/timedetector/ITimeDetectorService;
+HPLandroid/app/timedetector/ITimeDetectorService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/timedetector/NetworkTimeSuggestion$1;-><init>()V
+PLandroid/app/timedetector/NetworkTimeSuggestion;-><clinit>()V
+HPLandroid/app/timedetector/NetworkTimeSuggestion;-><init>(Landroid/os/TimestampedValue;)V
+HPLandroid/app/timedetector/NetworkTimeSuggestion;->addDebugInfo([Ljava/lang/String;)V
+PLandroid/app/timedetector/NetworkTimeSuggestion;->getUtcTime()Landroid/os/TimestampedValue;
+HPLandroid/app/timedetector/NetworkTimeSuggestion;->toString()Ljava/lang/String;
+HSPLandroid/app/timedetector/PhoneTimeSuggestion$Builder;-><init>(I)V
+HSPLandroid/app/timedetector/PhoneTimeSuggestion$Builder;->access$100(Landroid/app/timedetector/PhoneTimeSuggestion$Builder;)I
+HSPLandroid/app/timedetector/PhoneTimeSuggestion$Builder;->access$200(Landroid/app/timedetector/PhoneTimeSuggestion$Builder;)Landroid/os/TimestampedValue;
+HSPLandroid/app/timedetector/PhoneTimeSuggestion$Builder;->access$300(Landroid/app/timedetector/PhoneTimeSuggestion$Builder;)Ljava/util/List;
+HSPLandroid/app/timedetector/PhoneTimeSuggestion$Builder;->build()Landroid/app/timedetector/PhoneTimeSuggestion;
+HSPLandroid/app/timedetector/PhoneTimeSuggestion$Builder;->setUtcTime(Landroid/os/TimestampedValue;)Landroid/app/timedetector/PhoneTimeSuggestion$Builder;
+HSPLandroid/app/timedetector/PhoneTimeSuggestion;-><init>(Landroid/app/timedetector/PhoneTimeSuggestion$Builder;)V
+HSPLandroid/app/timedetector/PhoneTimeSuggestion;-><init>(Landroid/app/timedetector/PhoneTimeSuggestion$Builder;Landroid/app/timedetector/PhoneTimeSuggestion$1;)V
+HSPLandroid/app/timedetector/PhoneTimeSuggestion;->getUtcTime()Landroid/os/TimestampedValue;
+HSPLandroid/app/timedetector/PhoneTimeSuggestion;->toString()Ljava/lang/String;
+HSPLandroid/app/timedetector/TimeDetector;-><init>()V
+HSPLandroid/app/timedetector/TimeDetectorImpl;-><init>()V
+HSPLandroid/app/timezonedetector/ITimeZoneDetectorService$Stub;-><init>()V
+HPLandroid/app/timezonedetector/ITimeZoneDetectorService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$1;-><init>()V
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;-><init>(I)V
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->access$100(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;)I
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->access$200(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;)Ljava/lang/String;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->access$300(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;)I
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->access$400(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;)I
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->access$500(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;)Ljava/util/List;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->build()Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->setMatchType(I)Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->setQuality(I)Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->setZoneId(Ljava/lang/String;)Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->validate()V
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;-><clinit>()V
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;-><init>(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;)V
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;-><init>(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$1;)V
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;->toString()Ljava/lang/String;
+HSPLandroid/app/trust/IStrongAuthTracker$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/trust/IStrongAuthTracker$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/trust/IStrongAuthTracker$Stub$Proxy;->onStrongAuthRequiredChanged(II)V
+HSPLandroid/app/trust/IStrongAuthTracker$Stub;-><init>()V
+HSPLandroid/app/trust/IStrongAuthTracker$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/trust/IStrongAuthTracker$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/IStrongAuthTracker;
+HSPLandroid/app/trust/IStrongAuthTracker$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/trust/ITrustListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/trust/ITrustListener$Stub$Proxy;->onTrustChanged(ZII)V
+HSPLandroid/app/trust/ITrustListener$Stub$Proxy;->onTrustManagedChanged(ZI)V
+HSPLandroid/app/trust/ITrustListener$Stub;-><init>()V
+HSPLandroid/app/trust/ITrustListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/trust/ITrustListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/ITrustListener;
+HSPLandroid/app/trust/ITrustListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/app/trust/ITrustManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->clearAllBiometricRecognized(Landroid/hardware/biometrics/BiometricSourceType;)V
 HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->isDeviceLocked(I)Z
+HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->isDeviceSecure(I)Z
+HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->isTrustUsuallyManaged(I)Z
+HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->registerTrustListener(Landroid/app/trust/ITrustListener;)V
+HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->reportKeyguardShowingChanged()V
+HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->reportUnlockAttempt(ZI)V
+HSPLandroid/app/trust/ITrustManager$Stub;-><init>()V
 HSPLandroid/app/trust/ITrustManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/ITrustManager;
+HSPLandroid/app/trust/ITrustManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/trust/TrustManager$1;-><init>(Landroid/app/trust/TrustManager;Landroid/app/trust/TrustManager$TrustListener;)V
+HSPLandroid/app/trust/TrustManager$1;->onTrustChanged(ZII)V
+HSPLandroid/app/trust/TrustManager$1;->onTrustManagedChanged(ZI)V
+HSPLandroid/app/trust/TrustManager$2;-><init>(Landroid/app/trust/TrustManager;Landroid/os/Looper;)V
+HSPLandroid/app/trust/TrustManager$2;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/app/trust/TrustManager;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/trust/TrustManager;->access$000(Landroid/app/trust/TrustManager;)Landroid/os/Handler;
+HSPLandroid/app/trust/TrustManager;->clearAllBiometricRecognized(Landroid/hardware/biometrics/BiometricSourceType;)V
+HSPLandroid/app/trust/TrustManager;->isTrustUsuallyManaged(I)Z
+HSPLandroid/app/trust/TrustManager;->registerTrustListener(Landroid/app/trust/TrustManager$TrustListener;)V
+HSPLandroid/app/trust/TrustManager;->reportKeyguardShowingChanged()V
+HSPLandroid/app/trust/TrustManager;->reportUnlockAttempt(ZI)V
+HSPLandroid/app/usage/AppStandbyInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/AppStandbyInfo;
+HSPLandroid/app/usage/AppStandbyInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/usage/AppStandbyInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/usage/AppStandbyInfo;-><init>(Landroid/os/Parcel;Landroid/app/usage/AppStandbyInfo$1;)V
+HSPLandroid/app/usage/AppStandbyInfo;-><init>(Ljava/lang/String;I)V
+HSPLandroid/app/usage/AppStandbyInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/app/usage/ConfigurationStats;-><init>()V
+HPLandroid/app/usage/EventList;-><init>()V
+HPLandroid/app/usage/EventList;->firstIndexOnOrAfter(J)I
+HPLandroid/app/usage/EventList;->get(I)Landroid/app/usage/UsageEvents$Event;
+HPLandroid/app/usage/EventList;->insert(Landroid/app/usage/UsageEvents$Event;)V
+HPLandroid/app/usage/EventList;->size()I
+PLandroid/app/usage/ICacheQuotaService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/usage/ICacheQuotaService$Stub$Proxy;->computeCacheQuotaHints(Landroid/os/RemoteCallback;Ljava/util/List;)V
+PLandroid/app/usage/ICacheQuotaService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/ICacheQuotaService;
 HSPLandroid/app/usage/IStorageStatsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/app/usage/IStorageStatsManager$Stub$Proxy;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
+HSPLandroid/app/usage/IStorageStatsManager$Stub;-><init>()V
 HSPLandroid/app/usage/IStorageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IStorageStatsManager;
+HPLandroid/app/usage/IStorageStatsManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->getAppStandbyBucket(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->isAppInactive(Ljava/lang/String;I)Z
+HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryEvents(JJLjava/lang/String;)Landroid/app/usage/UsageEvents;
+HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryUsageStats(IJJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/app/usage/IUsageStatsManager$Stub;-><init>()V
 HSPLandroid/app/usage/IUsageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IUsageStatsManager;
+HPLandroid/app/usage/IUsageStatsManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/usage/NetworkStats$Bucket;-><init>()V
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$000(I)I
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$102(Landroid/app/usage/NetworkStats$Bucket;I)I
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$1102(Landroid/app/usage/NetworkStats$Bucket;I)I
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$1302(Landroid/app/usage/NetworkStats$Bucket;J)J
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$1402(Landroid/app/usage/NetworkStats$Bucket;J)J
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$1502(Landroid/app/usage/NetworkStats$Bucket;J)J
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$1602(Landroid/app/usage/NetworkStats$Bucket;J)J
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$1702(Landroid/app/usage/NetworkStats$Bucket;J)J
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$1802(Landroid/app/usage/NetworkStats$Bucket;J)J
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$200(I)I
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$302(Landroid/app/usage/NetworkStats$Bucket;I)I
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$400(I)I
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$502(Landroid/app/usage/NetworkStats$Bucket;I)I
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$702(Landroid/app/usage/NetworkStats$Bucket;I)I
+HSPLandroid/app/usage/NetworkStats$Bucket;->access$902(Landroid/app/usage/NetworkStats$Bucket;I)I
+HSPLandroid/app/usage/NetworkStats$Bucket;->convertSet(I)I
+HSPLandroid/app/usage/NetworkStats$Bucket;->convertTag(I)I
+HSPLandroid/app/usage/NetworkStats$Bucket;->convertUid(I)I
+HSPLandroid/app/usage/NetworkStats$Bucket;->getRxBytes()J
+HSPLandroid/app/usage/NetworkStats$Bucket;->getStartTimeStamp()J
+HSPLandroid/app/usage/NetworkStats$Bucket;->getTxBytes()J
+HSPLandroid/app/usage/NetworkStats;-><init>(Landroid/content/Context;Landroid/net/NetworkTemplate;IJJLandroid/net/INetworkStatsService;)V
+HSPLandroid/app/usage/NetworkStats;->close()V
+HSPLandroid/app/usage/NetworkStats;->finalize()V
+HSPLandroid/app/usage/NetworkStats;->getNextBucket(Landroid/app/usage/NetworkStats$Bucket;)Z
+HSPLandroid/app/usage/NetworkStats;->getNextHistoryBucket(Landroid/app/usage/NetworkStats$Bucket;)Z
+HSPLandroid/app/usage/NetworkStats;->getUid()I
+HSPLandroid/app/usage/NetworkStats;->hasNextUid()Z
+HSPLandroid/app/usage/NetworkStats;->isUidEnumeration()Z
+HSPLandroid/app/usage/NetworkStats;->setSingleUidTagState(III)V
+HSPLandroid/app/usage/NetworkStats;->startHistoryEnumeration(III)V
+HSPLandroid/app/usage/NetworkStatsManager$CallbackHandler;-><init>(Landroid/os/Looper;ILjava/lang/String;Landroid/app/usage/NetworkStatsManager$UsageCallback;)V
+HPLandroid/app/usage/NetworkStatsManager$CallbackHandler;->getObject(Landroid/os/Message;Ljava/lang/String;)Ljava/lang/Object;
+HPLandroid/app/usage/NetworkStatsManager$CallbackHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/app/usage/NetworkStatsManager$UsageCallback;-><init>()V
+HSPLandroid/app/usage/NetworkStatsManager$UsageCallback;->access$000(Landroid/app/usage/NetworkStatsManager$UsageCallback;)Landroid/net/DataUsageRequest;
+HSPLandroid/app/usage/NetworkStatsManager$UsageCallback;->access$002(Landroid/app/usage/NetworkStatsManager$UsageCallback;Landroid/net/DataUsageRequest;)Landroid/net/DataUsageRequest;
 HSPLandroid/app/usage/NetworkStatsManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/app/usage/NetworkStatsManager;-><init>(Landroid/content/Context;Landroid/net/INetworkStatsService;)V
+HSPLandroid/app/usage/NetworkStatsManager;->createTemplate(ILjava/lang/String;)Landroid/net/NetworkTemplate;
+HSPLandroid/app/usage/NetworkStatsManager;->queryDetailsForUidTag(ILjava/lang/String;JJII)Landroid/app/usage/NetworkStats;
+HSPLandroid/app/usage/NetworkStatsManager;->queryDetailsForUidTagState(ILjava/lang/String;JJIII)Landroid/app/usage/NetworkStats;
+HSPLandroid/app/usage/NetworkStatsManager;->queryDetailsForUidTagState(Landroid/net/NetworkTemplate;JJIII)Landroid/app/usage/NetworkStats;
+HSPLandroid/app/usage/NetworkStatsManager;->registerUsageCallback(Landroid/net/NetworkTemplate;IJLandroid/app/usage/NetworkStatsManager$UsageCallback;Landroid/os/Handler;)V
 HSPLandroid/app/usage/NetworkStatsManager;->setPollOnOpen(Z)V
+HSPLandroid/app/usage/NetworkStatsManager;->unregisterUsageCallback(Landroid/app/usage/NetworkStatsManager$UsageCallback;)V
 HSPLandroid/app/usage/StorageStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/StorageStats;
 HSPLandroid/app/usage/StorageStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/usage/StorageStats;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/app/usage/StorageStats;->getAppBytes()J
 HSPLandroid/app/usage/StorageStats;->getCacheBytes()J
 HSPLandroid/app/usage/StorageStats;->getDataBytes()J
+HPLandroid/app/usage/StorageStats;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/usage/StorageStatsManager;-><init>(Landroid/content/Context;Landroid/app/usage/IStorageStatsManager;)V
+HPLandroid/app/usage/StorageStatsManager;->getCacheBytes(Ljava/lang/String;)J
+HPLandroid/app/usage/StorageStatsManager;->getCacheBytes(Ljava/util/UUID;)J
+HPLandroid/app/usage/StorageStatsManager;->getCacheQuotaBytes(Ljava/lang/String;I)J
+HSPLandroid/app/usage/StorageStatsManager;->isQuotaSupported(Ljava/lang/String;)Z
+HSPLandroid/app/usage/StorageStatsManager;->isQuotaSupported(Ljava/util/UUID;)Z
 HSPLandroid/app/usage/StorageStatsManager;->queryStatsForPackage(Ljava/util/UUID;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/StorageStats;
+PLandroid/app/usage/TimeSparseArray;-><init>()V
+HPLandroid/app/usage/TimeSparseArray;->closestIndexOnOrAfter(J)I
+HPLandroid/app/usage/TimeSparseArray;->closestIndexOnOrBefore(J)I
+HPLandroid/app/usage/TimeSparseArray;->put(JLjava/lang/Object;)V
+HSPLandroid/app/usage/UsageEvents$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/UsageEvents;
+HSPLandroid/app/usage/UsageEvents$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/app/usage/UsageEvents$Event;-><init>()V
+HSPLandroid/app/usage/UsageEvents$Event;-><init>(IJ)V
+HPLandroid/app/usage/UsageEvents$Event;->copyFrom(Landroid/app/usage/UsageEvents$Event;)V
+HSPLandroid/app/usage/UsageEvents$Event;->getClassName()Ljava/lang/String;
+PLandroid/app/usage/UsageEvents$Event;->getConfiguration()Landroid/content/res/Configuration;
 HSPLandroid/app/usage/UsageEvents$Event;->getEventType()I
+HSPLandroid/app/usage/UsageEvents$Event;->getInstanceId()I
 HSPLandroid/app/usage/UsageEvents$Event;->getPackageName()Ljava/lang/String;
+HSPLandroid/app/usage/UsageEvents$Event;->getTaskRootPackageName()Ljava/lang/String;
 HSPLandroid/app/usage/UsageEvents$Event;->getTimeStamp()J
+HSPLandroid/app/usage/UsageEvents;-><init>(Landroid/os/Parcel;)V
+HPLandroid/app/usage/UsageEvents;-><init>(Ljava/util/List;[Ljava/lang/String;Z)V
+HPLandroid/app/usage/UsageEvents;->findStringIndex(Ljava/lang/String;)I
 HSPLandroid/app/usage/UsageEvents;->getNextEvent(Landroid/app/usage/UsageEvents$Event;)Z
 HSPLandroid/app/usage/UsageEvents;->hasNextEvent()Z
+HSPLandroid/app/usage/UsageEvents;->readEventFromParcel(Landroid/os/Parcel;Landroid/app/usage/UsageEvents$Event;)V
+HPLandroid/app/usage/UsageEvents;->writeEventToParcel(Landroid/app/usage/UsageEvents$Event;Landroid/os/Parcel;I)V
+HPLandroid/app/usage/UsageEvents;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/usage/UsageStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/UsageStats;
+HSPLandroid/app/usage/UsageStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/usage/UsageStats$1;->readBundleToEventMap(Landroid/os/Bundle;Landroid/util/ArrayMap;)V
+HSPLandroid/app/usage/UsageStats$1;->readSparseIntArray(Landroid/os/Parcel;Landroid/util/SparseIntArray;)V
 HSPLandroid/app/usage/UsageStats;-><init>()V
+HPLandroid/app/usage/UsageStats;-><init>(Landroid/app/usage/UsageStats;)V
+HPLandroid/app/usage/UsageStats;->anyForegroundServiceStarted()Z
+HPLandroid/app/usage/UsageStats;->eventMapToBundle(Landroid/util/ArrayMap;)Landroid/os/Bundle;
+HSPLandroid/app/usage/UsageStats;->getPackageName()Ljava/lang/String;
+HSPLandroid/app/usage/UsageStats;->getTotalTimeInForeground()J
+HPLandroid/app/usage/UsageStats;->hasVisibleActivity()Z
+PLandroid/app/usage/UsageStats;->incrementServiceTimeUsed(J)V
+HPLandroid/app/usage/UsageStats;->incrementTimeUsed(J)V
+HPLandroid/app/usage/UsageStats;->incrementTimeVisible(J)V
+HPLandroid/app/usage/UsageStats;->update(Ljava/lang/String;JII)V
+HPLandroid/app/usage/UsageStats;->updateActivity(Ljava/lang/String;JII)V
+HPLandroid/app/usage/UsageStats;->updateForegroundService(Ljava/lang/String;JI)V
+HPLandroid/app/usage/UsageStats;->writeSparseIntArray(Landroid/os/Parcel;Landroid/util/SparseIntArray;)V
+HPLandroid/app/usage/UsageStats;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/app/usage/UsageStatsManager;-><init>(Landroid/content/Context;Landroid/app/usage/IUsageStatsManager;)V
+HSPLandroid/app/usage/UsageStatsManager;->getAppStandbyBucket(Ljava/lang/String;)I
+HSPLandroid/app/usage/UsageStatsManager;->isAppInactive(Ljava/lang/String;)Z
+HSPLandroid/app/usage/UsageStatsManager;->queryEvents(JJ)Landroid/app/usage/UsageEvents;
+HSPLandroid/app/usage/UsageStatsManager;->queryUsageStats(IJJ)Ljava/util/List;
+HPLandroid/app/usage/UsageStatsManager;->reasonToString(I)Ljava/lang/String;
+PLandroid/app/usage/UsageStatsManager;->usageSourceToString(I)Ljava/lang/String;
+HSPLandroid/app/usage/UsageStatsManager;->whitelistAppTemporarily(Ljava/lang/String;JLandroid/os/UserHandle;)V
 HSPLandroid/appwidget/AppWidgetManager;-><init>(Landroid/content/Context;Lcom/android/internal/appwidget/IAppWidgetService;)V
 HSPLandroid/appwidget/AppWidgetManager;->getInstance(Landroid/content/Context;)Landroid/appwidget/AppWidgetManager;
+HSPLandroid/appwidget/AppWidgetManager;->isBoundWidgetPackage(Ljava/lang/String;I)Z
+HSPLandroid/appwidget/AppWidgetManagerInternal;-><init>()V
+HSPLandroid/appwidget/AppWidgetProviderInfo;-><init>()V
+HSPLandroid/appwidget/AppWidgetProviderInfo;->getProfile()Landroid/os/UserHandle;
+HSPLandroid/appwidget/AppWidgetProviderInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/bluetooth/-$$Lambda$BluetoothAdapter$2$INSd_aND-SGWhhPZUtIqya_Uxw4;-><init>(Landroid/bluetooth/BluetoothAdapter$2;)V
+HSPLandroid/bluetooth/-$$Lambda$BluetoothAdapter$5$eKI2JS6EbiGZOGfQ8La27pm0gy0;-><init>(Landroid/bluetooth/BluetoothAdapter$5;)V
 HSPLandroid/bluetooth/BluetoothA2dp$1;-><init>(Landroid/bluetooth/BluetoothA2dp;Landroid/bluetooth/BluetoothProfile;ILjava/lang/String;Ljava/lang/String;)V
 HSPLandroid/bluetooth/BluetoothA2dp$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothA2dp;
 HSPLandroid/bluetooth/BluetoothA2dp$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
 HSPLandroid/bluetooth/BluetoothA2dp;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HSPLandroid/bluetooth/BluetoothA2dp;->close()V
+HSPLandroid/bluetooth/BluetoothA2dp;->finalize()V
+HSPLandroid/bluetooth/BluetoothA2dp;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
 HSPLandroid/bluetooth/BluetoothA2dp;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/BluetoothA2dp;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
 HSPLandroid/bluetooth/BluetoothA2dp;->getService()Landroid/bluetooth/IBluetoothA2dp;
 HSPLandroid/bluetooth/BluetoothA2dp;->isEnabled()Z
+HSPLandroid/bluetooth/BluetoothA2dp;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+HPLandroid/bluetooth/BluetoothActivityEnergyInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/BluetoothActivityEnergyInfo;
+HPLandroid/bluetooth/BluetoothActivityEnergyInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/bluetooth/BluetoothActivityEnergyInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/bluetooth/BluetoothAdapter$2;-><init>(Landroid/bluetooth/BluetoothAdapter;)V
+HSPLandroid/bluetooth/BluetoothAdapter$2;-><init>(Landroid/bluetooth/BluetoothAdapter;ILjava/lang/String;)V
 HSPLandroid/bluetooth/BluetoothAdapter$2;->onBluetoothServiceUp(Landroid/bluetooth/IBluetooth;)V
+HSPLandroid/bluetooth/BluetoothAdapter$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothAdapter$2;->recompute(Ljava/lang/Void;)Ljava/lang/Integer;
+HSPLandroid/bluetooth/BluetoothAdapter$3;-><init>(Landroid/bluetooth/BluetoothAdapter;ILjava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothAdapter$3;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothAdapter$3;->recompute(Ljava/lang/Void;)Ljava/lang/Boolean;
+HSPLandroid/bluetooth/BluetoothAdapter$4;-><init>(Landroid/bluetooth/BluetoothAdapter;ILjava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothAdapter$4;->recompute(Ljava/lang/Integer;)Ljava/lang/Integer;
+HSPLandroid/bluetooth/BluetoothAdapter$4;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothAdapter$5;-><init>(Landroid/bluetooth/BluetoothAdapter;)V
+HSPLandroid/bluetooth/BluetoothAdapter$5;->onBluetoothServiceUp(Landroid/bluetooth/IBluetooth;)V
 HSPLandroid/bluetooth/BluetoothAdapter;-><init>(Landroid/bluetooth/IBluetoothManager;)V
 HSPLandroid/bluetooth/BluetoothAdapter;->access$000()Ljava/util/Map;
 HSPLandroid/bluetooth/BluetoothAdapter;->access$100(Landroid/bluetooth/BluetoothAdapter;)Ljava/util/concurrent/locks/ReentrantReadWriteLock;
+HSPLandroid/bluetooth/BluetoothAdapter;->access$200(Landroid/bluetooth/BluetoothAdapter;)Landroid/bluetooth/IBluetooth;
 HSPLandroid/bluetooth/BluetoothAdapter;->access$202(Landroid/bluetooth/BluetoothAdapter;Landroid/bluetooth/IBluetooth;)Landroid/bluetooth/IBluetooth;
 HSPLandroid/bluetooth/BluetoothAdapter;->access$300(Landroid/bluetooth/BluetoothAdapter;)Ljava/util/ArrayList;
+HSPLandroid/bluetooth/BluetoothAdapter;->access$400(Landroid/bluetooth/BluetoothAdapter;)Ljava/util/Map;
+HSPLandroid/bluetooth/BluetoothAdapter;->access$500()Landroid/bluetooth/le/BluetoothLeAdvertiser;
+HSPLandroid/bluetooth/BluetoothAdapter;->access$600()Landroid/bluetooth/le/BluetoothLeScanner;
 HSPLandroid/bluetooth/BluetoothAdapter;->checkBluetoothAddress(Ljava/lang/String;)Z
+HSPLandroid/bluetooth/BluetoothAdapter;->closeProfileProxy(ILandroid/bluetooth/BluetoothProfile;)V
+HSPLandroid/bluetooth/BluetoothAdapter;->enableBLE()Z
+HSPLandroid/bluetooth/BluetoothAdapter;->getAddress()Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothAdapter;->getBluetoothLeScanner()Landroid/bluetooth/le/BluetoothLeScanner;
 HSPLandroid/bluetooth/BluetoothAdapter;->getBluetoothManager()Landroid/bluetooth/IBluetoothManager;
 HSPLandroid/bluetooth/BluetoothAdapter;->getBluetoothService(Landroid/bluetooth/IBluetoothManagerCallback;)Landroid/bluetooth/IBluetooth;
 HSPLandroid/bluetooth/BluetoothAdapter;->getBondedDevices()Ljava/util/Set;
+HSPLandroid/bluetooth/BluetoothAdapter;->getConnectionState()I
 HSPLandroid/bluetooth/BluetoothAdapter;->getDefaultAdapter()Landroid/bluetooth/BluetoothAdapter;
+HSPLandroid/bluetooth/BluetoothAdapter;->getFeatureId()Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothAdapter;->getLeAccess()Z
+HSPLandroid/bluetooth/BluetoothAdapter;->getLeState()I
+HSPLandroid/bluetooth/BluetoothAdapter;->getName()Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothAdapter;->getOpPackageName()Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothAdapter;->getProfileConnectionState(I)I
 HSPLandroid/bluetooth/BluetoothAdapter;->getProfileProxy(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;I)Z
+HSPLandroid/bluetooth/BluetoothAdapter;->getRemoteDevice(Ljava/lang/String;)Landroid/bluetooth/BluetoothDevice;
 HSPLandroid/bluetooth/BluetoothAdapter;->getState()I
+HSPLandroid/bluetooth/BluetoothAdapter;->getSupportedProfiles()Ljava/util/List;
+HSPLandroid/bluetooth/BluetoothAdapter;->getUuids()[Landroid/os/ParcelUuid;
+HSPLandroid/bluetooth/BluetoothAdapter;->isBleScanAlwaysAvailable()Z
 HSPLandroid/bluetooth/BluetoothAdapter;->isEnabled()Z
+HSPLandroid/bluetooth/BluetoothAdapter;->isHearingAidProfileSupported()Z
+HSPLandroid/bluetooth/BluetoothAdapter;->isLeEnabled()Z
+HSPLandroid/bluetooth/BluetoothAdapter;->isOffloadedFilteringSupported()Z
+HSPLandroid/bluetooth/BluetoothAdapter;->nameForState(I)Ljava/lang/String;
+HPLandroid/bluetooth/BluetoothAdapter;->requestControllerActivityEnergyInfo(Landroid/os/ResultReceiver;)V
 HSPLandroid/bluetooth/BluetoothAdapter;->setContext(Landroid/content/Context;)V
 HSPLandroid/bluetooth/BluetoothAdapter;->toDeviceSet([Landroid/bluetooth/BluetoothDevice;)Ljava/util/Set;
+HSPLandroid/bluetooth/BluetoothClass;-><init>(I)V
+HSPLandroid/bluetooth/BluetoothClass;->getDeviceClass()I
+HSPLandroid/bluetooth/BluetoothClass;->toString()Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothCodecConfig;-><init>(IIIIIJJJJ)V
+HSPLandroid/bluetooth/BluetoothCodecConfig;->getCodecType()I
 HSPLandroid/bluetooth/BluetoothDevice$2;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/BluetoothDevice;
 HSPLandroid/bluetooth/BluetoothDevice$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/bluetooth/BluetoothDevice$2;->newArray(I)[Landroid/bluetooth/BluetoothDevice;
 HSPLandroid/bluetooth/BluetoothDevice$2;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothDevice$3;-><init>(Landroid/bluetooth/BluetoothDevice;ILjava/lang/String;)V
 HSPLandroid/bluetooth/BluetoothDevice;-><init>(Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothDevice;->equals(Ljava/lang/Object;)Z
 HSPLandroid/bluetooth/BluetoothDevice;->getAddress()Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothDevice;->getAlias()Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothDevice;->getBatteryLevel()I
+HSPLandroid/bluetooth/BluetoothDevice;->getBluetoothClass()Landroid/bluetooth/BluetoothClass;
+HSPLandroid/bluetooth/BluetoothDevice;->getBondState()I
 HSPLandroid/bluetooth/BluetoothDevice;->getName()Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothDevice;->getPhonebookAccessPermission()I
 HSPLandroid/bluetooth/BluetoothDevice;->getService()Landroid/bluetooth/IBluetooth;
+HSPLandroid/bluetooth/BluetoothDevice;->getType()I
+HSPLandroid/bluetooth/BluetoothDevice;->getUuids()[Landroid/os/ParcelUuid;
 HSPLandroid/bluetooth/BluetoothDevice;->hashCode()I
+HSPLandroid/bluetooth/BluetoothDevice;->isBluetoothEnabled()Z
+HSPLandroid/bluetooth/BluetoothDevice;->isConnected()Z
 HSPLandroid/bluetooth/BluetoothDevice;->toString()Ljava/lang/String;
 HSPLandroid/bluetooth/BluetoothDevice;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/bluetooth/BluetoothGattCallback;-><init>()V
 HSPLandroid/bluetooth/BluetoothHeadset$1;-><init>(Landroid/bluetooth/BluetoothHeadset;)V
+HSPLandroid/bluetooth/BluetoothHeadset$1;->onBluetoothStateChange(Z)V
 HSPLandroid/bluetooth/BluetoothHeadset$2;-><init>(Landroid/bluetooth/BluetoothHeadset;)V
 HSPLandroid/bluetooth/BluetoothHeadset$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/BluetoothHeadset$2;->onServiceDisconnected(Landroid/content/ComponentName;)V
 HSPLandroid/bluetooth/BluetoothHeadset$3;-><init>(Landroid/bluetooth/BluetoothHeadset;Landroid/os/Looper;)V
 HSPLandroid/bluetooth/BluetoothHeadset$3;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/bluetooth/BluetoothHeadset;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HSPLandroid/bluetooth/BluetoothHeadset;->access$000(Landroid/bluetooth/BluetoothHeadset;)V
+HSPLandroid/bluetooth/BluetoothHeadset;->access$100(Landroid/bluetooth/BluetoothHeadset;)Z
 HSPLandroid/bluetooth/BluetoothHeadset;->access$202(Landroid/bluetooth/BluetoothHeadset;Landroid/bluetooth/IBluetoothHeadset;)Landroid/bluetooth/IBluetoothHeadset;
 HSPLandroid/bluetooth/BluetoothHeadset;->access$300(Landroid/bluetooth/BluetoothHeadset;)Landroid/os/Handler;
 HSPLandroid/bluetooth/BluetoothHeadset;->access$400(Landroid/bluetooth/BluetoothHeadset;)Landroid/bluetooth/BluetoothProfile$ServiceListener;
+HSPLandroid/bluetooth/BluetoothHeadset;->close()V
 HSPLandroid/bluetooth/BluetoothHeadset;->doBind()Z
+HSPLandroid/bluetooth/BluetoothHeadset;->doUnbind()V
+HSPLandroid/bluetooth/BluetoothHeadset;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
+HSPLandroid/bluetooth/BluetoothHeadset;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/BluetoothHeadset;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HSPLandroid/bluetooth/BluetoothHeadset;->isEnabled()Z
+HSPLandroid/bluetooth/BluetoothHeadset;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+HPLandroid/bluetooth/BluetoothHeadset;->phoneStateChanged(IIILjava/lang/String;ILjava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothHearingAid$1;-><init>(Landroid/bluetooth/BluetoothHearingAid;Landroid/bluetooth/BluetoothProfile;ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothHearingAid$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHearingAid;
+HSPLandroid/bluetooth/BluetoothHearingAid$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothHearingAid;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HSPLandroid/bluetooth/BluetoothHearingAid;->getActiveDevices()Ljava/util/List;
+HSPLandroid/bluetooth/BluetoothHearingAid;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/BluetoothHearingAid;->getHiSyncId(Landroid/bluetooth/BluetoothDevice;)J
+HSPLandroid/bluetooth/BluetoothHearingAid;->getService()Landroid/bluetooth/IBluetoothHearingAid;
+HSPLandroid/bluetooth/BluetoothHearingAid;->isEnabled()Z
+HSPLandroid/bluetooth/BluetoothHearingAid;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+HSPLandroid/bluetooth/BluetoothHidDevice$1;-><init>(Landroid/bluetooth/BluetoothHidDevice;Landroid/bluetooth/BluetoothProfile;ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothHidDevice$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHidDevice;
+HSPLandroid/bluetooth/BluetoothHidDevice$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothHidDevice;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HSPLandroid/bluetooth/BluetoothHidDevice;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/BluetoothHidDevice;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HSPLandroid/bluetooth/BluetoothHidDevice;->getService()Landroid/bluetooth/IBluetoothHidDevice;
+HSPLandroid/bluetooth/BluetoothHidHost$1;-><init>(Landroid/bluetooth/BluetoothHidHost;Landroid/bluetooth/BluetoothProfile;ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothHidHost$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHidHost;
+HSPLandroid/bluetooth/BluetoothHidHost$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothHidHost;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HSPLandroid/bluetooth/BluetoothHidHost;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/BluetoothHidHost;->getService()Landroid/bluetooth/IBluetoothHidHost;
+HSPLandroid/bluetooth/BluetoothHidHost;->isEnabled()Z
+HSPLandroid/bluetooth/BluetoothInputStream;-><init>(Landroid/bluetooth/BluetoothSocket;)V
 HSPLandroid/bluetooth/BluetoothManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/bluetooth/BluetoothManager;->getAdapter()Landroid/bluetooth/BluetoothAdapter;
+HSPLandroid/bluetooth/BluetoothMap$1;-><init>(Landroid/bluetooth/BluetoothMap;Landroid/bluetooth/BluetoothProfile;ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothMap$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothMap;
+HSPLandroid/bluetooth/BluetoothMap$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothMap;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HSPLandroid/bluetooth/BluetoothMap;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/BluetoothMap;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HSPLandroid/bluetooth/BluetoothMap;->getService()Landroid/bluetooth/IBluetoothMap;
+HSPLandroid/bluetooth/BluetoothMap;->isEnabled()Z
+HSPLandroid/bluetooth/BluetoothMap;->isValidDevice(Landroid/bluetooth/BluetoothDevice;)Z
+HSPLandroid/bluetooth/BluetoothMap;->log(Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothOutputStream;-><init>(Landroid/bluetooth/BluetoothSocket;)V
+HSPLandroid/bluetooth/BluetoothPan$1;-><init>(Landroid/bluetooth/BluetoothPan;Landroid/bluetooth/BluetoothProfile;ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothPan$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothPan;
+HSPLandroid/bluetooth/BluetoothPan$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothPan;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HSPLandroid/bluetooth/BluetoothPbap$1;-><init>(Landroid/bluetooth/BluetoothPbap;)V
+HSPLandroid/bluetooth/BluetoothPbap$2;-><init>(Landroid/bluetooth/BluetoothPbap;)V
+HSPLandroid/bluetooth/BluetoothPbap$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/BluetoothPbap;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HSPLandroid/bluetooth/BluetoothPbap;->access$000(Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothPbap;->access$202(Landroid/bluetooth/BluetoothPbap;Landroid/bluetooth/IBluetoothPbap;)Landroid/bluetooth/IBluetoothPbap;
+HSPLandroid/bluetooth/BluetoothPbap;->access$300(Landroid/bluetooth/BluetoothPbap;)Landroid/bluetooth/BluetoothProfile$ServiceListener;
+HSPLandroid/bluetooth/BluetoothPbap;->doBind()Z
+HSPLandroid/bluetooth/BluetoothPbap;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HSPLandroid/bluetooth/BluetoothPbap;->log(Ljava/lang/String;)V
 HSPLandroid/bluetooth/BluetoothProfileConnector$1;-><init>(Landroid/bluetooth/BluetoothProfileConnector;)V
+HSPLandroid/bluetooth/BluetoothProfileConnector$1;->onBluetoothStateChange(Z)V
 HSPLandroid/bluetooth/BluetoothProfileConnector$2;-><init>(Landroid/bluetooth/BluetoothProfileConnector;)V
 HSPLandroid/bluetooth/BluetoothProfileConnector$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 HSPLandroid/bluetooth/BluetoothProfileConnector;-><init>(Landroid/bluetooth/BluetoothProfile;ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothProfileConnector;->access$000(Landroid/bluetooth/BluetoothProfileConnector;)Z
 HSPLandroid/bluetooth/BluetoothProfileConnector;->access$200(Landroid/bluetooth/BluetoothProfileConnector;Ljava/lang/String;)V
 HSPLandroid/bluetooth/BluetoothProfileConnector;->access$302(Landroid/bluetooth/BluetoothProfileConnector;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/bluetooth/BluetoothProfileConnector;->access$400(Landroid/bluetooth/BluetoothProfileConnector;)Landroid/bluetooth/BluetoothProfile$ServiceListener;
 HSPLandroid/bluetooth/BluetoothProfileConnector;->access$500(Landroid/bluetooth/BluetoothProfileConnector;)I
 HSPLandroid/bluetooth/BluetoothProfileConnector;->access$600(Landroid/bluetooth/BluetoothProfileConnector;)Landroid/bluetooth/BluetoothProfile;
 HSPLandroid/bluetooth/BluetoothProfileConnector;->connect(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HSPLandroid/bluetooth/BluetoothProfileConnector;->disconnect()V
 HSPLandroid/bluetooth/BluetoothProfileConnector;->doBind()Z
+HSPLandroid/bluetooth/BluetoothProfileConnector;->doUnbind()V
 HSPLandroid/bluetooth/BluetoothProfileConnector;->getService()Ljava/lang/Object;
 HSPLandroid/bluetooth/BluetoothProfileConnector;->logDebug(Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothSap$1;-><init>(Landroid/bluetooth/BluetoothSap;Landroid/bluetooth/BluetoothProfile;ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothSap$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothSap;
+HSPLandroid/bluetooth/BluetoothSap$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothSap;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HSPLandroid/bluetooth/BluetoothSap;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/BluetoothSap;->getService()Landroid/bluetooth/IBluetoothSap;
+HSPLandroid/bluetooth/BluetoothSap;->isEnabled()Z
+HSPLandroid/bluetooth/BluetoothSap;->log(Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothServerSocket;->accept()Landroid/bluetooth/BluetoothSocket;
+HSPLandroid/bluetooth/BluetoothServerSocket;->accept(I)Landroid/bluetooth/BluetoothSocket;
+HSPLandroid/bluetooth/BluetoothSocket;-><init>(IIZZLandroid/bluetooth/BluetoothDevice;ILandroid/os/ParcelUuid;)V
+HSPLandroid/bluetooth/BluetoothSocket;-><init>(IIZZLandroid/bluetooth/BluetoothDevice;ILandroid/os/ParcelUuid;ZZ)V
+HSPLandroid/bluetooth/BluetoothSocket;->accept(I)Landroid/bluetooth/BluetoothSocket;
+HSPLandroid/bluetooth/BluetoothSocket;->getSecurityFlags()I
+HSPLandroid/bluetooth/BluetoothSocket;->readAll(Ljava/io/InputStream;[B)I
+HSPLandroid/bluetooth/BluetoothSocket;->readInt(Ljava/io/InputStream;)I
+HSPLandroid/bluetooth/BluetoothSocket;->waitSocketSignal(Ljava/io/InputStream;)Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothUuid;->containsAnyUuid([Landroid/os/ParcelUuid;[Landroid/os/ParcelUuid;)Z
+HSPLandroid/bluetooth/BluetoothUuid;->is16BitUuid(Landroid/os/ParcelUuid;)Z
+HSPLandroid/bluetooth/BluetoothUuid;->parseUuidFrom([B)Landroid/os/ParcelUuid;
+HSPLandroid/bluetooth/BluetoothUuid;->uuidToBytes(Landroid/os/ParcelUuid;)[B
 HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->enable(Z)Z
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getAdapterConnectionState()I
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getBatteryLevel(Landroid/bluetooth/BluetoothDevice;)I
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getBondState(Landroid/bluetooth/BluetoothDevice;)I
 HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getBondedDevices()[Landroid/bluetooth/BluetoothDevice;
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getName()Ljava/lang/String;
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getPhonebookAccessPermission(Landroid/bluetooth/BluetoothDevice;)I
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getProfileConnectionState(I)I
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteAlias(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteClass(Landroid/bluetooth/BluetoothDevice;)I
 HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteName(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteUuids(Landroid/bluetooth/BluetoothDevice;)[Landroid/os/ParcelUuid;
 HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getState()I
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getSupportedProfiles()J
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getUuids()[Landroid/os/ParcelUuid;
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->isOffloadedFilteringSupported()Z
+PLandroid/bluetooth/IBluetooth$Stub$Proxy;->onLeServiceUp()V
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->registerCallback(Landroid/bluetooth/IBluetoothCallback;)V
+HPLandroid/bluetooth/IBluetooth$Stub$Proxy;->requestActivityInfo(Landroid/os/ResultReceiver;)V
 HSPLandroid/bluetooth/IBluetooth$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetooth;
 HSPLandroid/bluetooth/IBluetoothA2dp$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
+HSPLandroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
 HSPLandroid/bluetooth/IBluetoothA2dp$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothA2dp;
+HSPLandroid/bluetooth/IBluetoothCallback$Stub;-><init>()V
+HSPLandroid/bluetooth/IBluetoothCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/bluetooth/IBluetoothCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;->registerScanner(Landroid/bluetooth/le/IScannerCallback;Landroid/os/WorkSource;)V
+HSPLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;->startScan(ILandroid/bluetooth/le/ScanSettings;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;->stopScan(I)V
+HSPLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;->unregisterScanner(I)V
+HSPLandroid/bluetooth/IBluetoothGatt$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothGatt;
 HSPLandroid/bluetooth/IBluetoothHeadset$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
+HSPLandroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HPLandroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->phoneStateChanged(IIILjava/lang/String;ILjava/lang/String;)V
 HSPLandroid/bluetooth/IBluetoothHeadset$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHeadset;
+HSPLandroid/bluetooth/IBluetoothHeadsetPhone$Stub;-><init>()V
+HSPLandroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getActiveDevices()Ljava/util/List;
+HSPLandroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getHiSyncId(Landroid/bluetooth/BluetoothDevice;)J
+HSPLandroid/bluetooth/IBluetoothHearingAid$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHearingAid;
+HSPLandroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HSPLandroid/bluetooth/IBluetoothHidDevice$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHidDevice;
+HSPLandroid/bluetooth/IBluetoothHidHost$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/IBluetoothHidHost$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHidHost;
 HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->bindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)Z
+HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->getAddress()Ljava/lang/String;
+HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->getBluetoothGatt()Landroid/bluetooth/IBluetoothGatt;
+HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->getName()Ljava/lang/String;
+HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->isBleScanAlwaysAvailable()Z
+HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->isHearingAidProfileSupported()Z
 HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->registerAdapter(Landroid/bluetooth/IBluetoothManagerCallback;)Landroid/bluetooth/IBluetooth;
 HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->registerStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
+HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->unbindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)V
+HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->unregisterStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
+HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->updateBleAppCount(Landroid/os/IBinder;ZLjava/lang/String;)I
+HSPLandroid/bluetooth/IBluetoothManager$Stub;-><init>()V
 HSPLandroid/bluetooth/IBluetoothManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothManager;
+HSPLandroid/bluetooth/IBluetoothManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;->onBluetoothServiceUp(Landroid/bluetooth/IBluetooth;)V
 HSPLandroid/bluetooth/IBluetoothManagerCallback$Stub;-><init>()V
 HSPLandroid/bluetooth/IBluetoothManagerCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/bluetooth/IBluetoothManagerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothManagerCallback;
+HSPLandroid/bluetooth/IBluetoothManagerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/bluetooth/IBluetoothMap$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/IBluetoothMap$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/IBluetoothMap$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HSPLandroid/bluetooth/IBluetoothMap$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothMap;
+HSPLandroid/bluetooth/IBluetoothPan$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/IBluetoothPan$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothPan;
+HSPLandroid/bluetooth/IBluetoothPbap$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/IBluetoothPbap$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HSPLandroid/bluetooth/IBluetoothPbap$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothPbap;
+HPLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 HSPLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub;-><init>()V
 HSPLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothProfileServiceConnection;
+HSPLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/bluetooth/IBluetoothSap$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/bluetooth/IBluetoothSap$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/IBluetoothSap$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothSap;
+HSPLandroid/bluetooth/IBluetoothSocketManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothSocketManager;
+HPLandroid/bluetooth/IBluetoothStateChangeCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/bluetooth/IBluetoothStateChangeCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/bluetooth/IBluetoothStateChangeCallback$Stub$Proxy;->onBluetoothStateChange(Z)V
 HSPLandroid/bluetooth/IBluetoothStateChangeCallback$Stub;-><init>()V
 HSPLandroid/bluetooth/IBluetoothStateChangeCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/bluetooth/IBluetoothStateChangeCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothStateChangeCallback;
+HSPLandroid/bluetooth/IBluetoothStateChangeCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper$1;-><init>(Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;Landroid/bluetooth/le/ScanResult;)V
+HSPLandroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper$1;->run()V
+HSPLandroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;-><init>(Landroid/bluetooth/le/BluetoothLeScanner;Landroid/bluetooth/IBluetoothGatt;Ljava/util/List;Landroid/bluetooth/le/ScanSettings;Landroid/os/WorkSource;Landroid/bluetooth/le/ScanCallback;Ljava/util/List;)V
+HSPLandroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->access$400(Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;)Landroid/bluetooth/le/ScanCallback;
+HSPLandroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->onScanResult(Landroid/bluetooth/le/ScanResult;)V
+HSPLandroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->onScannerRegistered(II)V
+HSPLandroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->startRegistration()V
+HSPLandroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->stopLeScan()V
+HSPLandroid/bluetooth/le/BluetoothLeScanner;-><init>(Landroid/bluetooth/IBluetoothManager;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/bluetooth/le/BluetoothLeScanner;->access$100(Landroid/bluetooth/le/BluetoothLeScanner;)Ljava/util/Map;
+HSPLandroid/bluetooth/le/BluetoothLeScanner;->access$200(Landroid/bluetooth/le/BluetoothLeScanner;)Ljava/lang/String;
+HSPLandroid/bluetooth/le/BluetoothLeScanner;->access$300(Landroid/bluetooth/le/BluetoothLeScanner;)Ljava/lang/String;
+HSPLandroid/bluetooth/le/BluetoothLeScanner;->isHardwareResourcesAvailableForScan(Landroid/bluetooth/le/ScanSettings;)Z
+HSPLandroid/bluetooth/le/BluetoothLeScanner;->isSettingsAndFilterComboAllowed(Landroid/bluetooth/le/ScanSettings;Ljava/util/List;)Z
+HSPLandroid/bluetooth/le/BluetoothLeScanner;->isSettingsConfigAllowedForScan(Landroid/bluetooth/le/ScanSettings;)Z
+HSPLandroid/bluetooth/le/BluetoothLeScanner;->startScan(Ljava/util/List;Landroid/bluetooth/le/ScanSettings;Landroid/bluetooth/le/ScanCallback;)V
+HSPLandroid/bluetooth/le/BluetoothLeScanner;->startScan(Ljava/util/List;Landroid/bluetooth/le/ScanSettings;Landroid/os/WorkSource;Landroid/bluetooth/le/ScanCallback;Landroid/app/PendingIntent;Ljava/util/List;)I
+HSPLandroid/bluetooth/le/BluetoothLeScanner;->startScanFromSource(Ljava/util/List;Landroid/bluetooth/le/ScanSettings;Landroid/os/WorkSource;Landroid/bluetooth/le/ScanCallback;)V
+HSPLandroid/bluetooth/le/BluetoothLeScanner;->stopScan(Landroid/bluetooth/le/ScanCallback;)V
+HSPLandroid/bluetooth/le/BluetoothLeUtils;->checkAdapterStateOn(Landroid/bluetooth/BluetoothAdapter;)V
+HSPLandroid/bluetooth/le/IScannerCallback$Stub;-><init>()V
+HSPLandroid/bluetooth/le/IScannerCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/bluetooth/le/IScannerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/bluetooth/le/ScanCallback;-><init>()V
+HSPLandroid/bluetooth/le/ScanFilter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/le/ScanFilter;
+HSPLandroid/bluetooth/le/ScanFilter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/bluetooth/le/ScanFilter$Builder;-><init>()V
 HSPLandroid/bluetooth/le/ScanFilter$Builder;->build()Landroid/bluetooth/le/ScanFilter;
+HSPLandroid/bluetooth/le/ScanFilter$Builder;->setManufacturerData(I[B[B)Landroid/bluetooth/le/ScanFilter$Builder;
+HSPLandroid/bluetooth/le/ScanFilter$Builder;->setServiceData(Landroid/os/ParcelUuid;[B)Landroid/bluetooth/le/ScanFilter$Builder;
+HSPLandroid/bluetooth/le/ScanFilter$Builder;->setServiceUuid(Landroid/os/ParcelUuid;)Landroid/bluetooth/le/ScanFilter$Builder;
+HSPLandroid/bluetooth/le/ScanFilter;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;[B[BI[B[B)V
+HSPLandroid/bluetooth/le/ScanFilter;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;[B[BI[B[BLandroid/bluetooth/le/ScanFilter$1;)V
+HSPLandroid/bluetooth/le/ScanFilter;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/bluetooth/le/ScanRecord;-><init>(Ljava/util/List;Ljava/util/List;Landroid/util/SparseArray;Ljava/util/Map;IILjava/lang/String;[B)V
+HSPLandroid/bluetooth/le/ScanRecord;->extractBytes([BII)[B
+HSPLandroid/bluetooth/le/ScanRecord;->getBytes()[B
+HSPLandroid/bluetooth/le/ScanRecord;->getManufacturerSpecificData(I)[B
+HSPLandroid/bluetooth/le/ScanRecord;->getServiceData(Landroid/os/ParcelUuid;)[B
+HSPLandroid/bluetooth/le/ScanRecord;->parseFromBytes([B)Landroid/bluetooth/le/ScanRecord;
+HSPLandroid/bluetooth/le/ScanRecord;->parseServiceUuid([BIIILjava/util/List;)I
+HSPLandroid/bluetooth/le/ScanResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/le/ScanResult;
+HSPLandroid/bluetooth/le/ScanResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/bluetooth/le/ScanResult;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/bluetooth/le/ScanResult;-><init>(Landroid/os/Parcel;Landroid/bluetooth/le/ScanResult$1;)V
+HSPLandroid/bluetooth/le/ScanResult;->getDevice()Landroid/bluetooth/BluetoothDevice;
+HSPLandroid/bluetooth/le/ScanResult;->getRssi()I
+HSPLandroid/bluetooth/le/ScanResult;->getScanRecord()Landroid/bluetooth/le/ScanRecord;
+HSPLandroid/bluetooth/le/ScanResult;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/bluetooth/le/ScanResult;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/bluetooth/le/ScanSettings$Builder;-><init>()V
+HSPLandroid/bluetooth/le/ScanSettings$Builder;->build()Landroid/bluetooth/le/ScanSettings;
+HSPLandroid/bluetooth/le/ScanSettings$Builder;->isValidCallbackType(I)Z
+HSPLandroid/bluetooth/le/ScanSettings$Builder;->setCallbackType(I)Landroid/bluetooth/le/ScanSettings$Builder;
+HSPLandroid/bluetooth/le/ScanSettings$Builder;->setMatchMode(I)Landroid/bluetooth/le/ScanSettings$Builder;
+HSPLandroid/bluetooth/le/ScanSettings$Builder;->setNumOfMatches(I)Landroid/bluetooth/le/ScanSettings$Builder;
+HSPLandroid/bluetooth/le/ScanSettings$Builder;->setReportDelay(J)Landroid/bluetooth/le/ScanSettings$Builder;
+HSPLandroid/bluetooth/le/ScanSettings$Builder;->setScanMode(I)Landroid/bluetooth/le/ScanSettings$Builder;
+HSPLandroid/bluetooth/le/ScanSettings;-><init>(IIIJIIZI)V
+HSPLandroid/bluetooth/le/ScanSettings;-><init>(IIIJIIZILandroid/bluetooth/le/ScanSettings$1;)V
+HSPLandroid/bluetooth/le/ScanSettings;->getCallbackType()I
+HSPLandroid/bluetooth/le/ScanSettings;->getReportDelayMillis()J
+HSPLandroid/bluetooth/le/ScanSettings;->getScanMode()I
+HSPLandroid/bluetooth/le/ScanSettings;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/companion/ICompanionDeviceManager$Stub;-><init>()V
+HSPLandroid/companion/ICompanionDeviceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/ICompanionDeviceManager;
+HPLandroid/companion/ICompanionDeviceManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/compat/Compatibility$Callbacks;-><init>()V
 HSPLandroid/compat/Compatibility;->isChangeEnabled(J)Z
 HSPLandroid/compat/Compatibility;->setCallbacks(Landroid/compat/Compatibility$Callbacks;)V
+HSPLandroid/content/-$$Lambda$AbstractThreadedSyncAdapter$ISyncAdapterImpl$L6ZtOCe8gjKwJj0908ytPlrD8Rc;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;-><init>(Landroid/content/AbstractThreadedSyncAdapter;)V
 HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;-><init>(Landroid/content/AbstractThreadedSyncAdapter;Landroid/content/AbstractThreadedSyncAdapter$1;)V
+HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->cancelSync(Landroid/content/ISyncContext;)V
+HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->lambda$onUnsyncableAccount$0(Ljava/lang/Object;Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
+HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->onUnsyncableAccount(Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
 HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->startSync(Landroid/content/ISyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V
 HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;-><init>(Landroid/content/AbstractThreadedSyncAdapter;Ljava/lang/String;Landroid/content/SyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V
 HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;-><init>(Landroid/content/AbstractThreadedSyncAdapter;Ljava/lang/String;Landroid/content/SyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;Landroid/content/AbstractThreadedSyncAdapter$1;)V
+HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;->access$800(Landroid/content/AbstractThreadedSyncAdapter$SyncThread;)Landroid/content/SyncContext;
 HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;->isCanceled()Z
 HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;->run()V
 HSPLandroid/content/AbstractThreadedSyncAdapter;-><init>(Landroid/content/Context;ZZ)V
+HSPLandroid/content/AbstractThreadedSyncAdapter;->access$100()Z
+HSPLandroid/content/AbstractThreadedSyncAdapter;->access$1100(Landroid/content/AbstractThreadedSyncAdapter;)Z
+HSPLandroid/content/AbstractThreadedSyncAdapter;->access$1300(Landroid/content/AbstractThreadedSyncAdapter;)Landroid/content/Context;
+HSPLandroid/content/AbstractThreadedSyncAdapter;->access$200(Landroid/content/AbstractThreadedSyncAdapter;Landroid/accounts/Account;)Landroid/accounts/Account;
+HSPLandroid/content/AbstractThreadedSyncAdapter;->access$300(Landroid/content/AbstractThreadedSyncAdapter;)Ljava/lang/Object;
+HSPLandroid/content/AbstractThreadedSyncAdapter;->access$400(Landroid/content/AbstractThreadedSyncAdapter;)Ljava/util/HashMap;
+HSPLandroid/content/AbstractThreadedSyncAdapter;->access$500(Landroid/content/AbstractThreadedSyncAdapter;)Z
+HSPLandroid/content/AbstractThreadedSyncAdapter;->access$600(Landroid/content/AbstractThreadedSyncAdapter;)Ljava/util/concurrent/atomic/AtomicInteger;
 HSPLandroid/content/AbstractThreadedSyncAdapter;->getContext()Landroid/content/Context;
 HSPLandroid/content/AbstractThreadedSyncAdapter;->getSyncAdapterBinder()Landroid/os/IBinder;
+HSPLandroid/content/AbstractThreadedSyncAdapter;->handleOnUnsyncableAccount(Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
+HSPLandroid/content/AbstractThreadedSyncAdapter;->onSyncCanceled()V
+HSPLandroid/content/AbstractThreadedSyncAdapter;->onSyncCanceled(Ljava/lang/Thread;)V
+HSPLandroid/content/AbstractThreadedSyncAdapter;->onUnsyncableAccount()Z
+HSPLandroid/content/AbstractThreadedSyncAdapter;->toSyncKey(Landroid/accounts/Account;)Landroid/accounts/Account;
+HSPLandroid/content/AsyncQueryHandler$WorkerArgs;-><init>()V
+HSPLandroid/content/AsyncQueryHandler$WorkerHandler;-><init>(Landroid/content/AsyncQueryHandler;Landroid/os/Looper;)V
+HSPLandroid/content/AsyncQueryHandler$WorkerHandler;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/content/AsyncQueryHandler;-><init>(Landroid/content/ContentResolver;)V
 HSPLandroid/content/AsyncQueryHandler;->createHandler(Landroid/os/Looper;)Landroid/os/Handler;
+HSPLandroid/content/AsyncQueryHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/content/AsyncQueryHandler;->startQuery(ILjava/lang/Object;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/AsyncTaskLoader$LoadTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/content/AsyncTaskLoader$LoadTask;->doInBackground([Ljava/lang/Void;)Ljava/lang/Object;
+HSPLandroid/content/AsyncTaskLoader$LoadTask;->onPostExecute(Ljava/lang/Object;)V
+HSPLandroid/content/AsyncTaskLoader;->dispatchOnLoadComplete(Landroid/content/AsyncTaskLoader$LoadTask;Ljava/lang/Object;)V
+HSPLandroid/content/AsyncTaskLoader;->executePendingTask()V
+HSPLandroid/content/AsyncTaskLoader;->onCancelLoad()Z
+HSPLandroid/content/AsyncTaskLoader;->onForceLoad()V
+HSPLandroid/content/AsyncTaskLoader;->onLoadInBackground()Ljava/lang/Object;
 HSPLandroid/content/AutofillOptions$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/AutofillOptions;
 HSPLandroid/content/AutofillOptions$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/AutofillOptions;-><init>(IZ)V
 HSPLandroid/content/AutofillOptions;->isAugmentedAutofillEnabled(Landroid/content/Context;)Z
+HSPLandroid/content/AutofillOptions;->isAutofillDisabledLocked(Landroid/content/ComponentName;)Z
+HSPLandroid/content/AutofillOptions;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/BroadcastReceiver$PendingResult$1;-><init>(Landroid/content/BroadcastReceiver$PendingResult;Landroid/app/IActivityManager;)V
 HSPLandroid/content/BroadcastReceiver$PendingResult$1;->run()V
 HSPLandroid/content/BroadcastReceiver$PendingResult;-><init>(ILjava/lang/String;Landroid/os/Bundle;IZZLandroid/os/IBinder;II)V
 HSPLandroid/content/BroadcastReceiver$PendingResult;->finish()V
+HPLandroid/content/BroadcastReceiver$PendingResult;->getSendingUserId()I
 HSPLandroid/content/BroadcastReceiver$PendingResult;->sendFinished(Landroid/app/IActivityManager;)V
 HSPLandroid/content/BroadcastReceiver$PendingResult;->setExtrasClassLoader(Ljava/lang/ClassLoader;)V
 HSPLandroid/content/BroadcastReceiver;-><init>()V
@@ -2563,26 +5351,57 @@
 HSPLandroid/content/BroadcastReceiver;->getDebugUnregister()Z
 HSPLandroid/content/BroadcastReceiver;->getPendingResult()Landroid/content/BroadcastReceiver$PendingResult;
 HSPLandroid/content/BroadcastReceiver;->getResultCode()I
+HSPLandroid/content/BroadcastReceiver;->getResultExtras(Z)Landroid/os/Bundle;
 HSPLandroid/content/BroadcastReceiver;->getSendingUserId()I
 HSPLandroid/content/BroadcastReceiver;->goAsync()Landroid/content/BroadcastReceiver$PendingResult;
 HSPLandroid/content/BroadcastReceiver;->isInitialStickyBroadcast()Z
 HSPLandroid/content/BroadcastReceiver;->isOrderedBroadcast()Z
 HSPLandroid/content/BroadcastReceiver;->setPendingResult(Landroid/content/BroadcastReceiver$PendingResult;)V
 HSPLandroid/content/BroadcastReceiver;->setResultCode(I)V
+HSPLandroid/content/ClipData$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ClipData;
+HSPLandroid/content/ClipData$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/ClipData$Item;-><init>(Ljava/lang/CharSequence;)V
+HSPLandroid/content/ClipData$Item;-><init>(Ljava/lang/CharSequence;Ljava/lang/String;Landroid/content/Intent;Landroid/net/Uri;)V
+HSPLandroid/content/ClipData$Item;->getText()Ljava/lang/CharSequence;
+HSPLandroid/content/ClipData$Item;->getUri()Landroid/net/Uri;
+HSPLandroid/content/ClipData;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/ClipData;-><init>(Ljava/lang/CharSequence;[Ljava/lang/String;Landroid/content/ClipData$Item;)V
+HSPLandroid/content/ClipData;->getDescription()Landroid/content/ClipDescription;
+HSPLandroid/content/ClipData;->getItemAt(I)Landroid/content/ClipData$Item;
+HSPLandroid/content/ClipData;->getItemCount()I
+HSPLandroid/content/ClipData;->newPlainText(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/content/ClipData;
+HSPLandroid/content/ClipData;->prepareToLeaveProcess(ZI)V
+HSPLandroid/content/ClipData;->readHtmlTextFromParcel(Landroid/os/Parcel;)Ljava/lang/String;
+HSPLandroid/content/ClipData;->writeHtmlTextToParcel(Ljava/lang/String;Landroid/os/Parcel;I)V
+HSPLandroid/content/ClipData;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/ClipDescription;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/ClipDescription;-><init>(Ljava/lang/CharSequence;[Ljava/lang/String;)V
+HSPLandroid/content/ClipDescription;->compareMimeTypes(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/content/ClipDescription;->hasMimeType(Ljava/lang/String;)Z
+HSPLandroid/content/ClipDescription;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/ClipboardManager$1;-><init>(Landroid/content/ClipboardManager;)V
 HSPLandroid/content/ClipboardManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
 HSPLandroid/content/ClipboardManager;->addPrimaryClipChangedListener(Landroid/content/ClipboardManager$OnPrimaryClipChangedListener;)V
+HSPLandroid/content/ClipboardManager;->getPrimaryClip()Landroid/content/ClipData;
+HSPLandroid/content/ClipboardManager;->hasPrimaryClip()Z
 HSPLandroid/content/ComponentName$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ComponentName;
 HSPLandroid/content/ComponentName$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/ComponentName$1;->newArray(I)[Landroid/content/ComponentName;
+HSPLandroid/content/ComponentName$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
 HSPLandroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/String;)V
 HSPLandroid/content/ComponentName;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/ComponentName;-><init>(Ljava/lang/String;Landroid/os/Parcel;)V
 HSPLandroid/content/ComponentName;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/content/ComponentName;->appendShortClassName(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/content/ComponentName;->appendShortString(Ljava/lang/StringBuilder;)V
 HSPLandroid/content/ComponentName;->appendShortString(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/ComponentName;->compareTo(Landroid/content/ComponentName;)I
+HSPLandroid/content/ComponentName;->createRelative(Ljava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName;
+HSPLandroid/content/ComponentName;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLandroid/content/ComponentName;->equals(Ljava/lang/Object;)Z
 HSPLandroid/content/ComponentName;->flattenToShortString()Ljava/lang/String;
+HPLandroid/content/ComponentName;->flattenToShortString(Landroid/content/ComponentName;)Ljava/lang/String;
 HSPLandroid/content/ComponentName;->flattenToString()Ljava/lang/String;
 HSPLandroid/content/ComponentName;->getClassName()Ljava/lang/String;
 HSPLandroid/content/ComponentName;->getPackageName()Ljava/lang/String;
@@ -2596,12 +5415,17 @@
 HSPLandroid/content/ComponentName;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/ContentCaptureOptions$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentCaptureOptions;
 HSPLandroid/content/ContentCaptureOptions$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/ContentCaptureOptions;-><init>(I)V
 HSPLandroid/content/ContentCaptureOptions;-><init>(IIIIILandroid/util/ArraySet;)V
 HSPLandroid/content/ContentCaptureOptions;-><init>(ZIIIIILandroid/util/ArraySet;)V
+HSPLandroid/content/ContentCaptureOptions;->isWhitelisted(Landroid/content/Context;)Z
 HSPLandroid/content/ContentCaptureOptions;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/ContentProvider$Transport;-><init>(Landroid/content/ContentProvider;)V
 HSPLandroid/content/ContentProvider$Transport;->access$300(Landroid/content/ContentProvider$Transport;Ljava/lang/String;Ljava/lang/String;I)I
+HSPLandroid/content/ContentProvider$Transport;->applyBatch(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
+HSPLandroid/content/ContentProvider$Transport;->bulkInsert(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;[Landroid/content/ContentValues;)I
 HSPLandroid/content/ContentProvider$Transport;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
+HSPLandroid/content/ContentProvider$Transport;->canonicalize(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)Landroid/net/Uri;
 HSPLandroid/content/ContentProvider$Transport;->createCancellationSignal()Landroid/os/ICancellationSignal;
 HSPLandroid/content/ContentProvider$Transport;->delete(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;)I
 HSPLandroid/content/ContentProvider$Transport;->enforceFilePermission(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/IBinder;)V
@@ -2611,6 +5435,7 @@
 HSPLandroid/content/ContentProvider$Transport;->getProviderName()Ljava/lang/String;
 HSPLandroid/content/ContentProvider$Transport;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;
 HSPLandroid/content/ContentProvider$Transport;->noteProxyOp(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLandroid/content/ContentProvider$Transport;->openAssetFile(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/ContentProvider$Transport;->openTypedAssetFile(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/ContentProvider$Transport;->query(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
 HSPLandroid/content/ContentProvider$Transport;->update(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I
@@ -2621,10 +5446,13 @@
 HSPLandroid/content/ContentProvider;->applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
 HSPLandroid/content/ContentProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
 HSPLandroid/content/ContentProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;Z)V
+HSPLandroid/content/ContentProvider;->call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLandroid/content/ContentProvider;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLandroid/content/ContentProvider;->checkPermissionAndAppOp(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
 HSPLandroid/content/ContentProvider;->checkUser(IILandroid/content/Context;)Z
+HSPLandroid/content/ContentProvider;->coerceToLocalContentProvider(Landroid/content/IContentProvider;)Landroid/content/ContentProvider;
 HSPLandroid/content/ContentProvider;->delete(Landroid/net/Uri;Landroid/os/Bundle;)I
+HSPLandroid/content/ContentProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLandroid/content/ContentProvider;->enforceReadPermissionInner(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
 HSPLandroid/content/ContentProvider;->enforceWritePermissionInner(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
 HSPLandroid/content/ContentProvider;->getAuthorityWithoutUserId(Ljava/lang/String;)Ljava/lang/String;
@@ -2647,6 +5475,7 @@
 HPLandroid/content/ContentProvider;->onLowMemory()V
 HSPLandroid/content/ContentProvider;->onTrimMemory(I)V
 HSPLandroid/content/ContentProvider;->openAssetFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
+HSPLandroid/content/ContentProvider;->openAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/ContentProvider;->openTypedAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/ContentProvider;->openTypedAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/ContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
@@ -2664,14 +5493,21 @@
 HSPLandroid/content/ContentProviderClient$CursorWrapperInner;-><init>(Landroid/content/ContentProviderClient;Landroid/database/Cursor;)V
 HSPLandroid/content/ContentProviderClient$CursorWrapperInner;->close()V
 HSPLandroid/content/ContentProviderClient$CursorWrapperInner;->finalize()V
+HSPLandroid/content/ContentProviderClient$NotRespondingRunnable;-><init>(Landroid/content/ContentProviderClient;)V
+HSPLandroid/content/ContentProviderClient$NotRespondingRunnable;-><init>(Landroid/content/ContentProviderClient;Landroid/content/ContentProviderClient$1;)V
 HSPLandroid/content/ContentProviderClient;-><init>(Landroid/content/ContentResolver;Landroid/content/IContentProvider;Ljava/lang/String;Z)V
 HSPLandroid/content/ContentProviderClient;->afterRemote()V
+HSPLandroid/content/ContentProviderClient;->applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
+HSPLandroid/content/ContentProviderClient;->applyBatch(Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
 HSPLandroid/content/ContentProviderClient;->beforeRemote()V
 HSPLandroid/content/ContentProviderClient;->call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLandroid/content/ContentProviderClient;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLandroid/content/ContentProviderClient;->close()V
 HSPLandroid/content/ContentProviderClient;->closeInternal()Z
+HSPLandroid/content/ContentProviderClient;->delete(Landroid/net/Uri;Landroid/os/Bundle;)I
+HSPLandroid/content/ContentProviderClient;->delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I
 HSPLandroid/content/ContentProviderClient;->finalize()V
+HSPLandroid/content/ContentProviderClient;->getLocalContentProvider()Landroid/content/ContentProvider;
 HSPLandroid/content/ContentProviderClient;->query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
 HSPLandroid/content/ContentProviderClient;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 HSPLandroid/content/ContentProviderClient;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
@@ -2681,23 +5517,90 @@
 HSPLandroid/content/ContentProviderNative;->asBinder()Landroid/os/IBinder;
 HSPLandroid/content/ContentProviderNative;->asInterface(Landroid/os/IBinder;)Landroid/content/IContentProvider;
 HSPLandroid/content/ContentProviderNative;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/ContentProviderOperation$Builder;-><init>(ILandroid/net/Uri;)V
+HSPLandroid/content/ContentProviderOperation$Builder;-><init>(ILandroid/net/Uri;Landroid/content/ContentProviderOperation$1;)V
+HSPLandroid/content/ContentProviderOperation$Builder;-><init>(ILandroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/ContentProviderOperation$Builder;->access$000(Landroid/content/ContentProviderOperation$Builder;)I
+HSPLandroid/content/ContentProviderOperation$Builder;->access$100(Landroid/content/ContentProviderOperation$Builder;)Landroid/net/Uri;
+HSPLandroid/content/ContentProviderOperation$Builder;->access$1000(Landroid/content/ContentProviderOperation$Builder;)Z
+HSPLandroid/content/ContentProviderOperation$Builder;->access$200(Landroid/content/ContentProviderOperation$Builder;)Ljava/lang/String;
+HSPLandroid/content/ContentProviderOperation$Builder;->access$300(Landroid/content/ContentProviderOperation$Builder;)Ljava/lang/String;
+HSPLandroid/content/ContentProviderOperation$Builder;->access$400(Landroid/content/ContentProviderOperation$Builder;)Landroid/util/ArrayMap;
+HSPLandroid/content/ContentProviderOperation$Builder;->access$500(Landroid/content/ContentProviderOperation$Builder;)Landroid/util/ArrayMap;
+HSPLandroid/content/ContentProviderOperation$Builder;->access$600(Landroid/content/ContentProviderOperation$Builder;)Ljava/lang/String;
+HSPLandroid/content/ContentProviderOperation$Builder;->access$700(Landroid/content/ContentProviderOperation$Builder;)Landroid/util/SparseArray;
+HSPLandroid/content/ContentProviderOperation$Builder;->access$800(Landroid/content/ContentProviderOperation$Builder;)Ljava/lang/Integer;
+HSPLandroid/content/ContentProviderOperation$Builder;->access$900(Landroid/content/ContentProviderOperation$Builder;)Z
+HSPLandroid/content/ContentProviderOperation$Builder;->assertSelectionAllowed()V
 HSPLandroid/content/ContentProviderOperation$Builder;->assertValuesAllowed()V
 HSPLandroid/content/ContentProviderOperation$Builder;->build()Landroid/content/ContentProviderOperation;
+HSPLandroid/content/ContentProviderOperation$Builder;->ensureSelectionArgs()V
+HSPLandroid/content/ContentProviderOperation$Builder;->ensureValues()V
+HSPLandroid/content/ContentProviderOperation$Builder;->setSelectionArg(ILjava/lang/Object;)V
+HSPLandroid/content/ContentProviderOperation$Builder;->setValue(Ljava/lang/String;Ljava/lang/Object;)V
+HSPLandroid/content/ContentProviderOperation$Builder;->withExpectedCount(I)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation$Builder;->withSelection(Ljava/lang/String;[Ljava/lang/String;)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation$Builder;->withValue(Ljava/lang/String;Ljava/lang/Object;)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation$Builder;->withValueBackReference(Ljava/lang/String;I)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation$Builder;->withValues(Landroid/content/ContentValues;)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation$Builder;->withYieldAllowed(Z)Landroid/content/ContentProviderOperation$Builder;
 HSPLandroid/content/ContentProviderOperation;-><init>(Landroid/content/ContentProviderOperation$Builder;)V
+HSPLandroid/content/ContentProviderOperation;-><init>(Landroid/content/ContentProviderOperation$Builder;Landroid/content/ContentProviderOperation$1;)V
+HSPLandroid/content/ContentProviderOperation;->apply(Landroid/content/ContentProvider;[Landroid/content/ContentProviderResult;I)Landroid/content/ContentProviderResult;
+HSPLandroid/content/ContentProviderOperation;->applyInternal(Landroid/content/ContentProvider;[Landroid/content/ContentProviderResult;I)Landroid/content/ContentProviderResult;
 HSPLandroid/content/ContentProviderOperation;->getUri()Landroid/net/Uri;
+HSPLandroid/content/ContentProviderOperation;->isInsert()Z
+HSPLandroid/content/ContentProviderOperation;->isReadOperation()Z
+HSPLandroid/content/ContentProviderOperation;->isWriteOperation()Z
+HSPLandroid/content/ContentProviderOperation;->isYieldAllowed()Z
+HSPLandroid/content/ContentProviderOperation;->newAssertQuery(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation;->newDelete(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation;->newInsert(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation;->newUpdate(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation;->resolveExtrasBackReferences([Landroid/content/ContentProviderResult;I)Landroid/os/Bundle;
+HSPLandroid/content/ContentProviderOperation;->resolveSelectionArgsBackReferences([Landroid/content/ContentProviderResult;I)[Ljava/lang/String;
+HSPLandroid/content/ContentProviderOperation;->resolveValueBackReferences([Landroid/content/ContentProviderResult;I)Landroid/content/ContentValues;
+HSPLandroid/content/ContentProviderOperation;->toString()Ljava/lang/String;
+HSPLandroid/content/ContentProviderOperation;->typeToString(I)Ljava/lang/String;
+HSPLandroid/content/ContentProviderOperation;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/ContentProviderProxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/content/ContentProviderProxy;->applyBatch(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
 HSPLandroid/content/ContentProviderProxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/content/ContentProviderProxy;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLandroid/content/ContentProviderProxy;->createCancellationSignal()Landroid/os/ICancellationSignal;
 HSPLandroid/content/ContentProviderProxy;->delete(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;)I
+HSPLandroid/content/ContentProviderProxy;->getType(Landroid/net/Uri;)Ljava/lang/String;
+HSPLandroid/content/ContentProviderProxy;->getTypeAsync(Landroid/net/Uri;Landroid/os/RemoteCallback;)V
 HSPLandroid/content/ContentProviderProxy;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;
 HSPLandroid/content/ContentProviderProxy;->openTypedAssetFile(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/ContentProviderProxy;->query(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
+HSPLandroid/content/ContentProviderProxy;->update(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I
+HSPLandroid/content/ContentProviderResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentProviderResult;
+HSPLandroid/content/ContentProviderResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/ContentProviderResult$1;->newArray(I)[Landroid/content/ContentProviderResult;
+HSPLandroid/content/ContentProviderResult$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/content/ContentProviderResult;-><init>(I)V
+HSPLandroid/content/ContentProviderResult;-><init>(Landroid/net/Uri;)V
+HSPLandroid/content/ContentProviderResult;-><init>(Landroid/net/Uri;Ljava/lang/Integer;Landroid/os/Bundle;Ljava/lang/Throwable;)V
+HSPLandroid/content/ContentProviderResult;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/ContentResolver$2;-><init>(Landroid/content/SyncStatusObserver;)V
+HSPLandroid/content/ContentResolver$2;->onStatusChanged(I)V
 HSPLandroid/content/ContentResolver$CursorWrapperInner;-><init>(Landroid/content/ContentResolver;Landroid/database/Cursor;Landroid/content/IContentProvider;)V
 HSPLandroid/content/ContentResolver$CursorWrapperInner;->close()V
 HSPLandroid/content/ContentResolver$CursorWrapperInner;->finalize()V
+HSPLandroid/content/ContentResolver$GetTypeResultListener;-><init>()V
+HSPLandroid/content/ContentResolver$GetTypeResultListener;-><init>(Landroid/content/ContentResolver$1;)V
+HSPLandroid/content/ContentResolver$GetTypeResultListener;->onResult(Landroid/os/Bundle;)V
+HSPLandroid/content/ContentResolver$GetTypeResultListener;->waitForResult()V
+HSPLandroid/content/ContentResolver$OpenResourceIdResult;-><init>(Landroid/content/ContentResolver;)V
 HSPLandroid/content/ContentResolver$ParcelFileDescriptorInner;-><init>(Landroid/content/ContentResolver;Landroid/os/ParcelFileDescriptor;Landroid/content/IContentProvider;)V
 HSPLandroid/content/ContentResolver$ParcelFileDescriptorInner;->releaseResources()V
+HSPLandroid/content/ContentResolver$ResultListener;-><init>()V
+HSPLandroid/content/ContentResolver$ResultListener;-><init>(Landroid/content/ContentResolver$1;)V
+HSPLandroid/content/ContentResolver$ResultListener;->onResult(Landroid/os/Bundle;)V
+HSPLandroid/content/ContentResolver$ResultListener;->waitForResult(J)V
+HSPLandroid/content/ContentResolver$StringResultListener;-><init>()V
+HSPLandroid/content/ContentResolver$StringResultListener;-><init>(Landroid/content/ContentResolver$1;)V
 HSPLandroid/content/ContentResolver;-><init>(Landroid/content/Context;)V
 HSPLandroid/content/ContentResolver;-><init>(Landroid/content/Context;Landroid/content/ContentInterface;)V
 HSPLandroid/content/ContentResolver;->acquireContentProviderClient(Landroid/net/Uri;)Landroid/content/ContentProviderClient;
@@ -2706,7 +5609,13 @@
 HSPLandroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
 HSPLandroid/content/ContentResolver;->acquireProvider(Ljava/lang/String;)Landroid/content/IContentProvider;
 HSPLandroid/content/ContentResolver;->acquireUnstableContentProviderClient(Landroid/net/Uri;)Landroid/content/ContentProviderClient;
+HSPLandroid/content/ContentResolver;->acquireUnstableContentProviderClient(Ljava/lang/String;)Landroid/content/ContentProviderClient;
 HSPLandroid/content/ContentResolver;->acquireUnstableProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
+HSPLandroid/content/ContentResolver;->acquireUnstableProvider(Ljava/lang/String;)Landroid/content/IContentProvider;
+HSPLandroid/content/ContentResolver;->addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V
+HSPLandroid/content/ContentResolver;->addStatusChangeListener(ILandroid/content/SyncStatusObserver;)Ljava/lang/Object;
+HSPLandroid/content/ContentResolver;->applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
+HSPLandroid/content/ContentResolver;->bulkInsert(Landroid/net/Uri;[Landroid/content/ContentValues;)I
 HSPLandroid/content/ContentResolver;->call(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLandroid/content/ContentResolver;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLandroid/content/ContentResolver;->createSqlQueryBundle(Ljava/lang/String;[Ljava/lang/String;)Landroid/os/Bundle;
@@ -2715,18 +5624,28 @@
 HSPLandroid/content/ContentResolver;->delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I
 HSPLandroid/content/ContentResolver;->getContentService()Landroid/content/IContentService;
 HSPLandroid/content/ContentResolver;->getFeatureId()Ljava/lang/String;
+HSPLandroid/content/ContentResolver;->getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I
+HSPLandroid/content/ContentResolver;->getMasterSyncAutomatically()Z
 HSPLandroid/content/ContentResolver;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/ContentResolver;->getPeriodicSyncs(Landroid/accounts/Account;Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/content/ContentResolver;->getResourceId(Landroid/net/Uri;)Landroid/content/ContentResolver$OpenResourceIdResult;
+HSPLandroid/content/ContentResolver;->getSyncAdapterPackagesForAuthorityAsUser(Ljava/lang/String;I)[Ljava/lang/String;
+HSPLandroid/content/ContentResolver;->getSyncAdapterTypes()[Landroid/content/SyncAdapterType;
+HSPLandroid/content/ContentResolver;->getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z
 HSPLandroid/content/ContentResolver;->getType(Landroid/net/Uri;)Ljava/lang/String;
 HSPLandroid/content/ContentResolver;->getUserId()I
 HSPLandroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
 HSPLandroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;
+HSPLandroid/content/ContentResolver;->invalidPeriodicExtras(Landroid/os/Bundle;)Z
 HSPLandroid/content/ContentResolver;->maybeLogQueryToEventLog(JLandroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;)V
 HSPLandroid/content/ContentResolver;->maybeLogUpdateToEventLog(JLandroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;)V
 HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;I)V
 HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;II)V
 HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;Z)V
+HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;ZI)V
 HSPLandroid/content/ContentResolver;->notifyChange([Landroid/net/Uri;Landroid/database/ContentObserver;II)V
+HSPLandroid/content/ContentResolver;->openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/ContentResolver;->openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/ContentResolver;->openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
 HSPLandroid/content/ContentResolver;->openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;
@@ -2737,9 +5656,17 @@
 HSPLandroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
 HSPLandroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V
 HSPLandroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V
+HSPLandroid/content/ContentResolver;->removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/content/ContentResolver;->requestSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/content/ContentResolver;->requestSyncAsUser(Landroid/accounts/Account;Ljava/lang/String;ILandroid/os/Bundle;)V
+HSPLandroid/content/ContentResolver;->resolveUserId(Landroid/net/Uri;)I
+HSPLandroid/content/ContentResolver;->setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V
+HSPLandroid/content/ContentResolver;->setSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;Z)V
+HSPLandroid/content/ContentResolver;->setSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;ZI)V
 HSPLandroid/content/ContentResolver;->unregisterContentObserver(Landroid/database/ContentObserver;)V
 HSPLandroid/content/ContentResolver;->update(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I
 HSPLandroid/content/ContentResolver;->update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
+HSPLandroid/content/ContentResolver;->validateSyncExtrasBundle(Landroid/os/Bundle;)V
 HSPLandroid/content/ContentUris;->appendId(Landroid/net/Uri$Builder;J)Landroid/net/Uri$Builder;
 HSPLandroid/content/ContentUris;->parseId(Landroid/net/Uri;)J
 HSPLandroid/content/ContentUris;->withAppendedId(Landroid/net/Uri;J)Landroid/net/Uri;
@@ -2752,25 +5679,34 @@
 HSPLandroid/content/ContentValues;-><init>(Landroid/os/Parcel;Landroid/content/ContentValues$1;)V
 HSPLandroid/content/ContentValues;->clear()V
 HSPLandroid/content/ContentValues;->containsKey(Ljava/lang/String;)Z
+HSPLandroid/content/ContentValues;->equals(Ljava/lang/Object;)Z
 HSPLandroid/content/ContentValues;->get(Ljava/lang/String;)Ljava/lang/Object;
 HSPLandroid/content/ContentValues;->getAsBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
+HSPLandroid/content/ContentValues;->getAsByteArray(Ljava/lang/String;)[B
 HSPLandroid/content/ContentValues;->getAsInteger(Ljava/lang/String;)Ljava/lang/Integer;
 HSPLandroid/content/ContentValues;->getAsLong(Ljava/lang/String;)Ljava/lang/Long;
 HSPLandroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/ContentValues;->getValues()Landroid/util/ArrayMap;
 HSPLandroid/content/ContentValues;->isEmpty()Z
+HSPLandroid/content/ContentValues;->isSupportedValue(Ljava/lang/Object;)Z
 HSPLandroid/content/ContentValues;->keySet()Ljava/util/Set;
 HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Boolean;)V
 HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Double;)V
+HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Float;)V
 HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
 HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
 HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/content/ContentValues;->put(Ljava/lang/String;[B)V
+HSPLandroid/content/ContentValues;->putAll(Landroid/content/ContentValues;)V
 HSPLandroid/content/ContentValues;->putNull(Ljava/lang/String;)V
+HSPLandroid/content/ContentValues;->putObject(Ljava/lang/String;Ljava/lang/Object;)V
 HSPLandroid/content/ContentValues;->remove(Ljava/lang/String;)V
 HSPLandroid/content/ContentValues;->size()I
+HSPLandroid/content/ContentValues;->toString()Ljava/lang/String;
 HSPLandroid/content/ContentValues;->valueSet()Ljava/util/Set;
 HSPLandroid/content/ContentValues;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/Context;-><init>()V
+HSPLandroid/content/Context;->assertRuntimeOverlayThemable()V
 HSPLandroid/content/Context;->getColor(I)I
 HSPLandroid/content/Context;->getColorStateList(I)Landroid/content/res/ColorStateList;
 HSPLandroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable;
@@ -2785,26 +5721,38 @@
 HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
 HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;
 HSPLandroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;
+HSPLandroid/content/Context;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V
+HSPLandroid/content/Context;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V
 HSPLandroid/content/ContextWrapper;-><init>(Landroid/content/Context;)V
 HSPLandroid/content/ContextWrapper;->attachBaseContext(Landroid/content/Context;)V
 HSPLandroid/content/ContextWrapper;->bindIsolatedService(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z
 HSPLandroid/content/ContextWrapper;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
+PLandroid/content/ContextWrapper;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;Landroid/os/UserHandle;)Z
 HSPLandroid/content/ContextWrapper;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z
 HSPLandroid/content/ContextWrapper;->canLoadUnsafeResources()Z
 HSPLandroid/content/ContextWrapper;->checkCallingOrSelfPermission(Ljava/lang/String;)I
+HSPLandroid/content/ContextWrapper;->checkCallingPermission(Ljava/lang/String;)I
 HSPLandroid/content/ContextWrapper;->checkPermission(Ljava/lang/String;II)I
 HSPLandroid/content/ContextWrapper;->checkPermission(Ljava/lang/String;IILandroid/os/IBinder;)I
 HSPLandroid/content/ContextWrapper;->checkSelfPermission(Ljava/lang/String;)I
+HSPLandroid/content/ContextWrapper;->checkUriPermission(Landroid/net/Uri;III)I
+HSPLandroid/content/ContextWrapper;->checkUriPermission(Landroid/net/Uri;IIILandroid/os/IBinder;)I
 HSPLandroid/content/ContextWrapper;->createApplicationContext(Landroid/content/pm/ApplicationInfo;I)Landroid/content/Context;
 HSPLandroid/content/ContextWrapper;->createConfigurationContext(Landroid/content/res/Configuration;)Landroid/content/Context;
+HSPLandroid/content/ContextWrapper;->createContextAsUser(Landroid/os/UserHandle;I)Landroid/content/Context;
+HSPLandroid/content/ContextWrapper;->createCredentialProtectedStorageContext()Landroid/content/Context;
 HSPLandroid/content/ContextWrapper;->createDeviceProtectedStorageContext()Landroid/content/Context;
 HSPLandroid/content/ContextWrapper;->createDisplayContext(Landroid/view/Display;)Landroid/content/Context;
 HSPLandroid/content/ContextWrapper;->createFeatureContext(Ljava/lang/String;)Landroid/content/Context;
 HSPLandroid/content/ContextWrapper;->createPackageContext(Ljava/lang/String;I)Landroid/content/Context;
 HSPLandroid/content/ContextWrapper;->createPackageContextAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/Context;
+HSPLandroid/content/ContextWrapper;->databaseList()[Ljava/lang/String;
 HSPLandroid/content/ContextWrapper;->deleteDatabase(Ljava/lang/String;)Z
 HSPLandroid/content/ContextWrapper;->deleteFile(Ljava/lang/String;)Z
 HSPLandroid/content/ContextWrapper;->enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/ContextWrapper;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/ContextWrapper;->enforcePermission(Ljava/lang/String;IILjava/lang/String;)V
+HSPLandroid/content/ContextWrapper;->fileList()[Ljava/lang/String;
 HSPLandroid/content/ContextWrapper;->getApplicationContext()Landroid/content/Context;
 HSPLandroid/content/ContextWrapper;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
 HSPLandroid/content/ContextWrapper;->getAssets()Landroid/content/res/AssetManager;
@@ -2814,6 +5762,7 @@
 HSPLandroid/content/ContextWrapper;->getBasePackageName()Ljava/lang/String;
 HSPLandroid/content/ContextWrapper;->getCacheDir()Ljava/io/File;
 HSPLandroid/content/ContextWrapper;->getClassLoader()Ljava/lang/ClassLoader;
+HSPLandroid/content/ContextWrapper;->getCodeCacheDir()Ljava/io/File;
 HSPLandroid/content/ContextWrapper;->getContentCaptureOptions()Landroid/content/ContentCaptureOptions;
 HSPLandroid/content/ContextWrapper;->getContentResolver()Landroid/content/ContentResolver;
 HSPLandroid/content/ContextWrapper;->getDataDir()Ljava/io/File;
@@ -2821,6 +5770,7 @@
 HSPLandroid/content/ContextWrapper;->getDir(Ljava/lang/String;I)Ljava/io/File;
 HSPLandroid/content/ContextWrapper;->getDisplay()Landroid/view/Display;
 HSPLandroid/content/ContextWrapper;->getDisplayId()I
+HSPLandroid/content/ContextWrapper;->getDisplayNoVerify()Landroid/view/Display;
 HSPLandroid/content/ContextWrapper;->getExternalCacheDir()Ljava/io/File;
 HSPLandroid/content/ContextWrapper;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;
 HSPLandroid/content/ContextWrapper;->getExternalFilesDirs(Ljava/lang/String;)[Ljava/io/File;
@@ -2829,33 +5779,48 @@
 HSPLandroid/content/ContextWrapper;->getFilesDir()Ljava/io/File;
 HSPLandroid/content/ContextWrapper;->getMainExecutor()Ljava/util/concurrent/Executor;
 HSPLandroid/content/ContextWrapper;->getMainLooper()Landroid/os/Looper;
+HSPLandroid/content/ContextWrapper;->getMainThreadHandler()Landroid/os/Handler;
 HSPLandroid/content/ContextWrapper;->getNextAutofillId()I
 HSPLandroid/content/ContextWrapper;->getNoBackupFilesDir()Ljava/io/File;
 HSPLandroid/content/ContextWrapper;->getOpPackageName()Ljava/lang/String;
 HSPLandroid/content/ContextWrapper;->getPackageCodePath()Ljava/lang/String;
 HSPLandroid/content/ContextWrapper;->getPackageManager()Landroid/content/pm/PackageManager;
 HSPLandroid/content/ContextWrapper;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/ContextWrapper;->getPackageResourcePath()Ljava/lang/String;
 HSPLandroid/content/ContextWrapper;->getResources()Landroid/content/res/Resources;
 HSPLandroid/content/ContextWrapper;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
 HSPLandroid/content/ContextWrapper;->getSharedPreferencesPath(Ljava/lang/String;)Ljava/io/File;
 HSPLandroid/content/ContextWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
 HSPLandroid/content/ContextWrapper;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;
 HSPLandroid/content/ContextWrapper;->getTheme()Landroid/content/res/Resources$Theme;
+HSPLandroid/content/ContextWrapper;->getThemeResId()I
 HSPLandroid/content/ContextWrapper;->getUser()Landroid/os/UserHandle;
 HSPLandroid/content/ContextWrapper;->getUserId()I
+HSPLandroid/content/ContextWrapper;->grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V
 HSPLandroid/content/ContextWrapper;->isDeviceProtectedStorage()Z
 HSPLandroid/content/ContextWrapper;->isRestricted()Z
 HSPLandroid/content/ContextWrapper;->openFileInput(Ljava/lang/String;)Ljava/io/FileInputStream;
 HSPLandroid/content/ContextWrapper;->openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream;
+HSPLandroid/content/ContextWrapper;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;
 HSPLandroid/content/ContextWrapper;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
 HSPLandroid/content/ContextWrapper;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
+HSPLandroid/content/ContextWrapper;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;I)Landroid/content/Intent;
 HSPLandroid/content/ContextWrapper;->registerReceiverAsUser(Landroid/content/BroadcastReceiver;Landroid/os/UserHandle;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
+HSPLandroid/content/ContextWrapper;->registerReceiverForAllUsers(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
+HSPLandroid/content/ContextWrapper;->revokeUriPermission(Landroid/net/Uri;I)V
 HSPLandroid/content/ContextWrapper;->sendBroadcast(Landroid/content/Intent;)V
 HSPLandroid/content/ContextWrapper;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
 HSPLandroid/content/ContextWrapper;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
 HSPLandroid/content/ContextWrapper;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;)V
+HSPLandroid/content/ContextWrapper;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
+HSPLandroid/content/ContextWrapper;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/content/ContextWrapper;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
+HSPLandroid/content/ContextWrapper;->setAutofillClient(Landroid/view/autofill/AutofillManager$AutofillClient;)V
 HSPLandroid/content/ContextWrapper;->setAutofillOptions(Landroid/content/AutofillOptions;)V
 HSPLandroid/content/ContextWrapper;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V
+HSPLandroid/content/ContextWrapper;->setTheme(I)V
+HSPLandroid/content/ContextWrapper;->startActivity(Landroid/content/Intent;)V
+HSPLandroid/content/ContextWrapper;->startActivity(Landroid/content/Intent;Landroid/os/Bundle;)V
 HSPLandroid/content/ContextWrapper;->startForegroundService(Landroid/content/Intent;)Landroid/content/ComponentName;
 HSPLandroid/content/ContextWrapper;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;
 HSPLandroid/content/ContextWrapper;->stopService(Landroid/content/Intent;)Z
@@ -2864,32 +5829,86 @@
 HSPLandroid/content/ContextWrapper;->updateDisplay(I)V
 HSPLandroid/content/IClipboard$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/content/IClipboard$Stub$Proxy;->addPrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;Ljava/lang/String;I)V
+HSPLandroid/content/IClipboard$Stub$Proxy;->getPrimaryClip(Ljava/lang/String;I)Landroid/content/ClipData;
+HSPLandroid/content/IClipboard$Stub$Proxy;->hasPrimaryClip(Ljava/lang/String;I)Z
+HSPLandroid/content/IClipboard$Stub;-><init>()V
 HSPLandroid/content/IClipboard$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IClipboard;
+HPLandroid/content/IClipboard$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/content/IContentService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/content/IContentService$Stub$Proxy;->addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V
+HSPLandroid/content/IContentService$Stub$Proxy;->addStatusChangeListener(ILandroid/content/ISyncStatusObserver;)V
 HSPLandroid/content/IContentService$Stub$Proxy;->getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I
 HSPLandroid/content/IContentService$Stub$Proxy;->getMasterSyncAutomatically()Z
+HSPLandroid/content/IContentService$Stub$Proxy;->getPeriodicSyncs(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Ljava/util/List;
+HSPLandroid/content/IContentService$Stub$Proxy;->getSyncAdapterTypes()[Landroid/content/SyncAdapterType;
 HSPLandroid/content/IContentService$Stub$Proxy;->getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z
 HSPLandroid/content/IContentService$Stub$Proxy;->notifyChange([Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;)V
 HSPLandroid/content/IContentService$Stub$Proxy;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/IContentObserver;II)V
+HSPLandroid/content/IContentService$Stub$Proxy;->removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/content/IContentService$Stub$Proxy;->setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V
+HSPLandroid/content/IContentService$Stub$Proxy;->setSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;ZI)V
+HSPLandroid/content/IContentService$Stub$Proxy;->syncAsUser(Landroid/content/SyncRequest;ILjava/lang/String;)V
 HSPLandroid/content/IContentService$Stub$Proxy;->unregisterContentObserver(Landroid/database/IContentObserver;)V
+HSPLandroid/content/IContentService$Stub;-><init>()V
 HSPLandroid/content/IContentService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IContentService;
+HSPLandroid/content/IContentService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/IIntentReceiver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/content/IIntentReceiver$Stub$Proxy;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
 HSPLandroid/content/IIntentReceiver$Stub;-><init>()V
 HSPLandroid/content/IIntentReceiver$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/content/IIntentReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentReceiver;
+HSPLandroid/content/IIntentReceiver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/content/IIntentSender$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/content/IIntentSender$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/content/IIntentSender$Stub;-><init>()V
+HSPLandroid/content/IIntentSender$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/content/IIntentSender$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentSender;
+HPLandroid/content/IOnPrimaryClipChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/content/IOnPrimaryClipChangedListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/content/IOnPrimaryClipChangedListener$Stub;-><init>()V
 HSPLandroid/content/IOnPrimaryClipChangedListener$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/content/IOnPrimaryClipChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IOnPrimaryClipChangedListener;
+PLandroid/content/IOnPrimaryClipChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/IRestrictionsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/content/IRestrictionsManager$Stub$Proxy;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
+HSPLandroid/content/IRestrictionsManager$Stub;-><init>()V
+HSPLandroid/content/IRestrictionsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IRestrictionsManager;
+HPLandroid/content/IRestrictionsManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/content/ISyncAdapter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/content/ISyncAdapter$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/content/ISyncAdapter$Stub$Proxy;->cancelSync(Landroid/content/ISyncContext;)V
+HPLandroid/content/ISyncAdapter$Stub$Proxy;->onUnsyncableAccount(Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
+HPLandroid/content/ISyncAdapter$Stub$Proxy;->startSync(Landroid/content/ISyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V
 HSPLandroid/content/ISyncAdapter$Stub;-><init>()V
 HSPLandroid/content/ISyncAdapter$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/content/ISyncAdapter$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncAdapter;
 HSPLandroid/content/ISyncAdapter$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/ISyncAdapterUnsyncableAccountCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/content/ISyncAdapterUnsyncableAccountCallback$Stub$Proxy;->onUnsyncableAccountDone(Z)V
+PLandroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncAdapterUnsyncableAccountCallback;
+HPLandroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/content/ISyncContext$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/content/ISyncContext$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/content/ISyncContext$Stub$Proxy;->onFinished(Landroid/content/SyncResult;)V
+HPLandroid/content/ISyncContext$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/content/ISyncContext$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncContext;
+HPLandroid/content/ISyncContext$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/content/ISyncStatusObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/content/ISyncStatusObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/content/ISyncStatusObserver$Stub$Proxy;->onStatusChanged(I)V
+HSPLandroid/content/ISyncStatusObserver$Stub;-><init>()V
+HSPLandroid/content/ISyncStatusObserver$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/content/ISyncStatusObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncStatusObserver;
+HSPLandroid/content/ISyncStatusObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/content/Intent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/Intent;
 HSPLandroid/content/Intent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/Intent$1;->newArray(I)[Landroid/content/Intent;
+HSPLandroid/content/Intent$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/content/Intent$FilterComparison;-><init>(Landroid/content/Intent;)V
+HSPLandroid/content/Intent$FilterComparison;->equals(Ljava/lang/Object;)Z
+HSPLandroid/content/Intent$FilterComparison;->getIntent()Landroid/content/Intent;
+HSPLandroid/content/Intent$FilterComparison;->hashCode()I
 HSPLandroid/content/Intent;-><init>()V
 HSPLandroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
 HSPLandroid/content/Intent;-><init>(Landroid/content/Intent;)V
@@ -2900,7 +5919,17 @@
 HSPLandroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;Landroid/content/Context;Ljava/lang/Class;)V
 HSPLandroid/content/Intent;->addCategory(Ljava/lang/String;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->addFlags(I)Landroid/content/Intent;
+HSPLandroid/content/Intent;->canStripForHistory()Z
+HSPLandroid/content/Intent;->clone()Ljava/lang/Object;
 HSPLandroid/content/Intent;->cloneFilter()Landroid/content/Intent;
+HSPLandroid/content/Intent;->createChooser(Landroid/content/Intent;Ljava/lang/CharSequence;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->createChooser(Landroid/content/Intent;Ljava/lang/CharSequence;Landroid/content/IntentSender;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->describeContents()I
+HSPLandroid/content/Intent;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
+HSPLandroid/content/Intent;->dumpDebugWithoutFieldId(Landroid/util/proto/ProtoOutputStream;ZZZZ)V
+HSPLandroid/content/Intent;->fillIn(Landroid/content/Intent;I)I
+HSPLandroid/content/Intent;->filterEquals(Landroid/content/Intent;)Z
+HSPLandroid/content/Intent;->filterHashCode()I
 HSPLandroid/content/Intent;->getAction()Ljava/lang/String;
 HSPLandroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z
 HSPLandroid/content/Intent;->getBundleExtra(Ljava/lang/String;)Landroid/os/Bundle;
@@ -2908,25 +5937,41 @@
 HSPLandroid/content/Intent;->getCategories()Ljava/util/Set;
 HSPLandroid/content/Intent;->getClipData()Landroid/content/ClipData;
 HSPLandroid/content/Intent;->getComponent()Landroid/content/ComponentName;
+HPLandroid/content/Intent;->getContentUserHint()I
 HSPLandroid/content/Intent;->getData()Landroid/net/Uri;
 HSPLandroid/content/Intent;->getDataString()Ljava/lang/String;
 HSPLandroid/content/Intent;->getExtras()Landroid/os/Bundle;
 HSPLandroid/content/Intent;->getFlags()I
 HSPLandroid/content/Intent;->getIntArrayExtra(Ljava/lang/String;)[I
 HSPLandroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
+HPLandroid/content/Intent;->getLaunchToken()Ljava/lang/String;
 HSPLandroid/content/Intent;->getLongExtra(Ljava/lang/String;J)J
 HSPLandroid/content/Intent;->getPackage()Ljava/lang/String;
+HSPLandroid/content/Intent;->getParcelableArrayExtra(Ljava/lang/String;)[Landroid/os/Parcelable;
 HSPLandroid/content/Intent;->getParcelableArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;
 HSPLandroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;
 HSPLandroid/content/Intent;->getScheme()Ljava/lang/String;
+HSPLandroid/content/Intent;->getSelector()Landroid/content/Intent;
 HSPLandroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
+HSPLandroid/content/Intent;->getSourceBounds()Landroid/graphics/Rect;
 HSPLandroid/content/Intent;->getStringArrayExtra(Ljava/lang/String;)[Ljava/lang/String;
 HSPLandroid/content/Intent;->getStringArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;
 HSPLandroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/content/Intent;->getType()Ljava/lang/String;
 HSPLandroid/content/Intent;->hasCategory(Ljava/lang/String;)Z
 HSPLandroid/content/Intent;->hasExtra(Ljava/lang/String;)Z
+HSPLandroid/content/Intent;->hasFileDescriptors()Z
+HSPLandroid/content/Intent;->hasPackageEquivalentComponent()Z
+HSPLandroid/content/Intent;->hasWebURI()Z
+HSPLandroid/content/Intent;->isAccessUriMode(I)Z
+HSPLandroid/content/Intent;->isDocument()Z
+HSPLandroid/content/Intent;->isExcludingStopped()Z
+HSPLandroid/content/Intent;->isWebIntent()Z
+HSPLandroid/content/Intent;->makeMainActivity(Landroid/content/ComponentName;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->makeMainSelectorActivity(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->maybeStripForHistory()Landroid/content/Intent;
 HSPLandroid/content/Intent;->migrateExtraStreamToClipData()Z
+HSPLandroid/content/Intent;->parseIntent(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->parseUri(Ljava/lang/String;I)Landroid/content/Intent;
 HSPLandroid/content/Intent;->prepareToEnterProcess()V
 HSPLandroid/content/Intent;->prepareToLeaveProcess(Landroid/content/Context;)V
@@ -2936,36 +5981,50 @@
 HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/CharSequence;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
 HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[B)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[I)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[J)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[Landroid/os/Parcelable;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[Ljava/lang/String;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putExtras(Landroid/content/Intent;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->putParcelableArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->putStringArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/content/Intent;->removeCategory(Ljava/lang/String;)V
 HSPLandroid/content/Intent;->removeExtra(Ljava/lang/String;)V
+HPLandroid/content/Intent;->removeFlags(I)V
+HSPLandroid/content/Intent;->replaceExtras(Landroid/content/Intent;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->replaceExtras(Landroid/os/Bundle;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->resolveActivity(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName;
+HSPLandroid/content/Intent;->resolveActivityInfo(Landroid/content/pm/PackageManager;I)Landroid/content/pm/ActivityInfo;
 HSPLandroid/content/Intent;->resolveSystemService(Landroid/content/pm/PackageManager;I)Landroid/content/ComponentName;
 HSPLandroid/content/Intent;->resolveType(Landroid/content/ContentResolver;)Ljava/lang/String;
 HSPLandroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
+HPLandroid/content/Intent;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/Intent;
+HPLandroid/content/Intent;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLandroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->setAllowFds(Z)V
 HSPLandroid/content/Intent;->setClass(Landroid/content/Context;Ljava/lang/Class;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->setClassName(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->setClipData(Landroid/content/ClipData;)V
 HSPLandroid/content/Intent;->setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->setData(Landroid/net/Uri;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->setDataAndType(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->setDefusable(Z)V
 HSPLandroid/content/Intent;->setExtrasClassLoader(Ljava/lang/ClassLoader;)V
 HSPLandroid/content/Intent;->setFlags(I)Landroid/content/Intent;
+HSPLandroid/content/Intent;->setIdentifier(Ljava/lang/String;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->setSelector(Landroid/content/Intent;)V
+HSPLandroid/content/Intent;->setSourceBounds(Landroid/graphics/Rect;)V
 HSPLandroid/content/Intent;->setType(Ljava/lang/String;)Landroid/content/Intent;
 HSPLandroid/content/Intent;->toShortString(Ljava/lang/StringBuilder;ZZZZ)V
+HSPLandroid/content/Intent;->toShortString(ZZZZ)Ljava/lang/String;
 HSPLandroid/content/Intent;->toString()Ljava/lang/String;
 HSPLandroid/content/Intent;->toUri(I)Ljava/lang/String;
 HSPLandroid/content/Intent;->toUriFragment(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
@@ -2973,10 +6032,18 @@
 HSPLandroid/content/Intent;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/IntentFilter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/IntentFilter;
 HSPLandroid/content/IntentFilter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/IntentFilter$AuthorityEntry;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/IntentFilter$AuthorityEntry;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/IntentFilter$AuthorityEntry;->getHost()Ljava/lang/String;
+HSPLandroid/content/IntentFilter$AuthorityEntry;->getPort()I
+HSPLandroid/content/IntentFilter$AuthorityEntry;->match(Landroid/content/IntentFilter$AuthorityEntry;)Z
+HSPLandroid/content/IntentFilter$AuthorityEntry;->match(Landroid/net/Uri;)I
+HSPLandroid/content/IntentFilter$AuthorityEntry;->writeToParcel(Landroid/os/Parcel;)V
 HSPLandroid/content/IntentFilter;-><init>()V
+HSPLandroid/content/IntentFilter;-><init>(Landroid/content/IntentFilter;)V
 HSPLandroid/content/IntentFilter;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
+HSPLandroid/content/IntentFilter;->actionsIterator()Ljava/util/Iterator;
 HSPLandroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
 HSPLandroid/content/IntentFilter;->addCategory(Ljava/lang/String;)V
 HSPLandroid/content/IntentFilter;->addDataAuthority(Landroid/content/IntentFilter$AuthorityEntry;)V
@@ -2987,97 +6054,399 @@
 HSPLandroid/content/IntentFilter;->addDataSchemeSpecificPart(Landroid/os/PatternMatcher;)V
 HSPLandroid/content/IntentFilter;->addDataSchemeSpecificPart(Ljava/lang/String;I)V
 HSPLandroid/content/IntentFilter;->addDataType(Ljava/lang/String;)V
+HSPLandroid/content/IntentFilter;->authoritiesIterator()Ljava/util/Iterator;
+HSPLandroid/content/IntentFilter;->categoriesIterator()Ljava/util/Iterator;
 HSPLandroid/content/IntentFilter;->countActions()I
+HSPLandroid/content/IntentFilter;->countCategories()I
+HSPLandroid/content/IntentFilter;->countDataAuthorities()I
+HSPLandroid/content/IntentFilter;->countDataPaths()I
+HSPLandroid/content/IntentFilter;->countDataSchemeSpecificParts()I
+HSPLandroid/content/IntentFilter;->countDataSchemes()I
+HSPLandroid/content/IntentFilter;->countDataTypes()I
+HSPLandroid/content/IntentFilter;->debugCheck()Z
+HSPLandroid/content/IntentFilter;->findMimeType(Ljava/lang/String;)Z
 HSPLandroid/content/IntentFilter;->getAction(I)Ljava/lang/String;
 HSPLandroid/content/IntentFilter;->getAutoVerify()Z
+HSPLandroid/content/IntentFilter;->getCategory(I)Ljava/lang/String;
+HSPLandroid/content/IntentFilter;->getDataScheme(I)Ljava/lang/String;
+HSPLandroid/content/IntentFilter;->getDataType(I)Ljava/lang/String;
+HSPLandroid/content/IntentFilter;->getHostsList()Ljava/util/ArrayList;
+HSPLandroid/content/IntentFilter;->getOrder()I
+HSPLandroid/content/IntentFilter;->getPriority()I
+HSPLandroid/content/IntentFilter;->handleAllWebDataURI()Z
+HSPLandroid/content/IntentFilter;->handlesWebUris(Z)Z
 HSPLandroid/content/IntentFilter;->hasAction(Ljava/lang/String;)Z
 HSPLandroid/content/IntentFilter;->hasCategory(Ljava/lang/String;)Z
+HSPLandroid/content/IntentFilter;->hasDataPath(Ljava/lang/String;)Z
+HSPLandroid/content/IntentFilter;->hasDataScheme(Ljava/lang/String;)Z
+HSPLandroid/content/IntentFilter;->hasDataSchemeSpecificPart(Ljava/lang/String;)Z
+HSPLandroid/content/IntentFilter;->isImplicitlyVisibleToInstantApp()Z
+HSPLandroid/content/IntentFilter;->isVisibleToInstantApp()Z
+HSPLandroid/content/IntentFilter;->match(Landroid/content/ContentResolver;Landroid/content/Intent;ZLjava/lang/String;)I
 HSPLandroid/content/IntentFilter;->match(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/util/Set;Ljava/lang/String;)I
 HSPLandroid/content/IntentFilter;->matchAction(Ljava/lang/String;)Z
 HSPLandroid/content/IntentFilter;->matchCategories(Ljava/util/Set;)Ljava/lang/String;
 HSPLandroid/content/IntentFilter;->matchData(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)I
+HSPLandroid/content/IntentFilter;->matchDataAuthority(Landroid/net/Uri;)I
+HSPLandroid/content/IntentFilter;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLandroid/content/IntentFilter;->schemesIterator()Ljava/util/Iterator;
 HSPLandroid/content/IntentFilter;->setAutoVerify(Z)V
+HSPLandroid/content/IntentFilter;->setOrder(I)V
 HSPLandroid/content/IntentFilter;->setPriority(I)V
 HSPLandroid/content/IntentFilter;->setVisibilityToInstantApp(I)V
+HSPLandroid/content/IntentFilter;->typesIterator()Ljava/util/Iterator;
 HSPLandroid/content/IntentFilter;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/IntentFilter;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/content/IntentSender$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/IntentSender;
+HSPLandroid/content/IntentSender$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/IntentSender;-><init>(Landroid/content/IIntentSender;Landroid/os/IBinder;)V
+HSPLandroid/content/IntentSender;->getTarget()Landroid/content/IIntentSender;
+HSPLandroid/content/IntentSender;->getWhitelistToken()Landroid/os/IBinder;
+PLandroid/content/IntentSender;->sendIntent(Landroid/content/Context;ILandroid/content/Intent;Landroid/content/IntentSender$OnFinished;Landroid/os/Handler;)V
+HPLandroid/content/IntentSender;->sendIntent(Landroid/content/Context;ILandroid/content/Intent;Landroid/content/IntentSender$OnFinished;Landroid/os/Handler;Ljava/lang/String;)V
+HSPLandroid/content/Loader$ForceLoadContentObserver;-><init>(Landroid/content/Loader;)V
+HSPLandroid/content/Loader;->cancelLoad()Z
+HSPLandroid/content/Loader;->commitContentChanged()V
+HSPLandroid/content/Loader;->deliverResult(Ljava/lang/Object;)V
+HSPLandroid/content/Loader;->forceLoad()V
+HSPLandroid/content/Loader;->getContext()Landroid/content/Context;
+HSPLandroid/content/Loader;->isAbandoned()Z
+HSPLandroid/content/Loader;->isReset()Z
+HSPLandroid/content/Loader;->registerListener(ILandroid/content/Loader$OnLoadCompleteListener;)V
+HSPLandroid/content/Loader;->startLoading()V
+HSPLandroid/content/Loader;->takeContentChanged()Z
+HSPLandroid/content/LocusId;-><init>(Ljava/lang/String;)V
+HSPLandroid/content/MutableContextWrapper;-><init>(Landroid/content/Context;)V
+HSPLandroid/content/MutableContextWrapper;->setBaseContext(Landroid/content/Context;)V
+HSPLandroid/content/PeriodicSync$1;-><init>()V
+HSPLandroid/content/PeriodicSync$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/PeriodicSync;
+HSPLandroid/content/PeriodicSync$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/PeriodicSync;-><clinit>()V
+HSPLandroid/content/PeriodicSync;-><init>(Landroid/os/Parcel;)V
+HPLandroid/content/PeriodicSync;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/PermissionChecker;->checkCallingOrSelfPermissionForPreflight(Landroid/content/Context;Ljava/lang/String;)I
+HSPLandroid/content/PermissionChecker;->checkPermissionCommon(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)I
+HSPLandroid/content/PermissionChecker;->checkPermissionForPreflight(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;)I
+HSPLandroid/content/PermissionChecker;->checkRuntimePermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)I
+HSPLandroid/content/RestrictionsManager;-><init>(Landroid/content/Context;Landroid/content/IRestrictionsManager;)V
+HSPLandroid/content/RestrictionsManager;->getApplicationRestrictions()Landroid/os/Bundle;
+HSPLandroid/content/ServiceConnection;->onBindingDied(Landroid/content/ComponentName;)V
+HSPLandroid/content/ServiceConnection;->onNullBinding(Landroid/content/ComponentName;)V
+HSPLandroid/content/SyncAdapterType$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/SyncAdapterType;
+HSPLandroid/content/SyncAdapterType$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/SyncAdapterType$1;->newArray(I)[Landroid/content/SyncAdapterType;
+HSPLandroid/content/SyncAdapterType$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/content/SyncAdapterType;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/SyncAdapterType;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/content/SyncAdapterType;-><init>(Ljava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Ljava/lang/String;)V
+HPLandroid/content/SyncAdapterType;->allowParallelSyncs()Z
+HSPLandroid/content/SyncAdapterType;->equals(Ljava/lang/Object;)Z
+HSPLandroid/content/SyncAdapterType;->hashCode()I
+HPLandroid/content/SyncAdapterType;->isAlwaysSyncable()Z
+HSPLandroid/content/SyncAdapterType;->newKey(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SyncAdapterType;
+HSPLandroid/content/SyncAdapterType;->supportsUploading()Z
+HPLandroid/content/SyncAdapterType;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/SyncAdaptersCache$MySerializer;->createFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/SyncAdapterType;
+HSPLandroid/content/SyncAdaptersCache$MySerializer;->createFromXml(Lorg/xmlpull/v1/XmlPullParser;)Ljava/lang/Object;
+HSPLandroid/content/SyncAdaptersCache;-><init>(Landroid/content/Context;)V
+HSPLandroid/content/SyncAdaptersCache;->getSyncAdapterPackagesForAuthority(Ljava/lang/String;I)[Ljava/lang/String;
+PLandroid/content/SyncAdaptersCache;->onServicesChangedLocked(I)V
+HSPLandroid/content/SyncAdaptersCache;->parseServiceAttributes(Landroid/content/res/Resources;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/content/SyncAdapterType;
+HSPLandroid/content/SyncAdaptersCache;->parseServiceAttributes(Landroid/content/res/Resources;Ljava/lang/String;Landroid/util/AttributeSet;)Ljava/lang/Object;
 HSPLandroid/content/SyncContext;-><init>(Landroid/content/ISyncContext;)V
+HSPLandroid/content/SyncContext;->getSyncContextBinder()Landroid/os/IBinder;
 HSPLandroid/content/SyncContext;->onFinished(Landroid/content/SyncResult;)V
+PLandroid/content/SyncInfo$1;-><init>()V
+PLandroid/content/SyncInfo;-><clinit>()V
+HPLandroid/content/SyncInfo;-><init>(ILandroid/accounts/Account;Ljava/lang/String;J)V
+PLandroid/content/SyncRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/SyncRequest;
+HPLandroid/content/SyncRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/SyncRequest$Builder;-><init>()V
+HSPLandroid/content/SyncRequest$Builder;->access$100(Landroid/content/SyncRequest$Builder;)J
+HSPLandroid/content/SyncRequest$Builder;->access$1000(Landroid/content/SyncRequest$Builder;)Z
+HSPLandroid/content/SyncRequest$Builder;->access$200(Landroid/content/SyncRequest$Builder;)J
+HSPLandroid/content/SyncRequest$Builder;->access$300(Landroid/content/SyncRequest$Builder;)Landroid/accounts/Account;
+HSPLandroid/content/SyncRequest$Builder;->access$400(Landroid/content/SyncRequest$Builder;)Ljava/lang/String;
+HSPLandroid/content/SyncRequest$Builder;->access$500(Landroid/content/SyncRequest$Builder;)I
+HSPLandroid/content/SyncRequest$Builder;->access$600(Landroid/content/SyncRequest$Builder;)I
+HSPLandroid/content/SyncRequest$Builder;->access$700(Landroid/content/SyncRequest$Builder;)Z
+HSPLandroid/content/SyncRequest$Builder;->access$800(Landroid/content/SyncRequest$Builder;)Landroid/os/Bundle;
+HSPLandroid/content/SyncRequest$Builder;->access$900(Landroid/content/SyncRequest$Builder;)Landroid/os/Bundle;
+HSPLandroid/content/SyncRequest$Builder;->build()Landroid/content/SyncRequest;
+HSPLandroid/content/SyncRequest$Builder;->setExtras(Landroid/os/Bundle;)Landroid/content/SyncRequest$Builder;
+HSPLandroid/content/SyncRequest$Builder;->setSyncAdapter(Landroid/accounts/Account;Ljava/lang/String;)Landroid/content/SyncRequest$Builder;
+HSPLandroid/content/SyncRequest$Builder;->setupInterval(JJ)V
+HSPLandroid/content/SyncRequest$Builder;->syncOnce()Landroid/content/SyncRequest$Builder;
+HSPLandroid/content/SyncRequest;-><init>(Landroid/content/SyncRequest$Builder;)V
+HPLandroid/content/SyncRequest;-><init>(Landroid/os/Parcel;)V
+HPLandroid/content/SyncRequest;-><init>(Landroid/os/Parcel;Landroid/content/SyncRequest$1;)V
+HPLandroid/content/SyncRequest;->getAccount()Landroid/accounts/Account;
+HPLandroid/content/SyncRequest;->getBundle()Landroid/os/Bundle;
+HPLandroid/content/SyncRequest;->getProvider()Ljava/lang/String;
+HPLandroid/content/SyncRequest;->getSyncFlexTime()J
+HPLandroid/content/SyncRequest;->getSyncRunTime()J
+HPLandroid/content/SyncRequest;->isPeriodic()Z
+HSPLandroid/content/SyncRequest;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/content/SyncResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/SyncResult;
+HPLandroid/content/SyncResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/SyncResult;-><init>()V
+HPLandroid/content/SyncResult;-><init>(Landroid/os/Parcel;)V
+HPLandroid/content/SyncResult;-><init>(Landroid/os/Parcel;Landroid/content/SyncResult$1;)V
 HSPLandroid/content/SyncResult;-><init>(Z)V
 HSPLandroid/content/SyncResult;->hasError()Z
 HSPLandroid/content/SyncResult;->hasHardError()Z
 HSPLandroid/content/SyncResult;->hasSoftError()Z
+PLandroid/content/SyncResult;->madeSomeProgress()Z
+HSPLandroid/content/SyncResult;->toString()Ljava/lang/String;
 HSPLandroid/content/SyncResult;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/SyncStats;-><init>()V
+HPLandroid/content/SyncStats;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/SyncStats;->toString()Ljava/lang/String;
 HSPLandroid/content/SyncStats;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/SyncStatusInfo$Stats;-><init>()V
+PLandroid/content/SyncStatusInfo$Stats;->clear()V
+PLandroid/content/SyncStatusInfo$Stats;->copyTo(Landroid/content/SyncStatusInfo$Stats;)V
+HSPLandroid/content/SyncStatusInfo;-><init>(I)V
+HPLandroid/content/SyncStatusInfo;->addEvent(Ljava/lang/String;)V
+HPLandroid/content/SyncStatusInfo;->areSameDates(JJ)Z
+HPLandroid/content/SyncStatusInfo;->getEvent(I)Ljava/lang/String;
+HPLandroid/content/SyncStatusInfo;->getEventCount()I
+HPLandroid/content/SyncStatusInfo;->getEventTime(I)J
+HPLandroid/content/SyncStatusInfo;->getPeriodicSyncTimesSize()I
+HPLandroid/content/SyncStatusInfo;->maybeResetTodayStats(ZZ)V
+HSPLandroid/content/SyncStatusInfo;->populateLastEventsInformation(Ljava/util/ArrayList;)V
+PLandroid/content/SyncStatusInfo;->setLastFailure(IJLjava/lang/String;)V
+HPLandroid/content/SyncStatusInfo;->setLastSuccess(IJ)V
+HSPLandroid/content/UndoManager$UndoState;-><init>(Landroid/content/UndoManager;I)V
+HSPLandroid/content/UndoManager$UndoState;->addOperation(Landroid/content/UndoOperation;)V
+HSPLandroid/content/UndoManager$UndoState;->canMerge()Z
+HSPLandroid/content/UndoManager$UndoState;->commit()V
+HSPLandroid/content/UndoManager$UndoState;->destroy()V
+HSPLandroid/content/UndoManager$UndoState;->getCommitId()I
+HSPLandroid/content/UndoManager$UndoState;->getLastOperation(Ljava/lang/Class;Landroid/content/UndoOwner;)Landroid/content/UndoOperation;
+HSPLandroid/content/UndoManager$UndoState;->hasData()Z
+HSPLandroid/content/UndoManager$UndoState;->hasMultipleOwners()Z
+HSPLandroid/content/UndoManager$UndoState;->hasOperation(Landroid/content/UndoOwner;)Z
+HSPLandroid/content/UndoManager$UndoState;->makeExecuted()V
+HSPLandroid/content/UndoManager$UndoState;->matchOwner(Landroid/content/UndoOwner;)Z
+HSPLandroid/content/UndoManager$UndoState;->setCanMerge(Z)Z
+HSPLandroid/content/UndoManager$UndoState;->updateLabel(Ljava/lang/CharSequence;)V
+HSPLandroid/content/UndoManager$UndoState;->writeToParcel(Landroid/os/Parcel;)V
 HSPLandroid/content/UndoManager;-><init>()V
+HSPLandroid/content/UndoManager;->addOperation(Landroid/content/UndoOperation;I)V
+HSPLandroid/content/UndoManager;->beginUpdate(Ljava/lang/CharSequence;)V
+HSPLandroid/content/UndoManager;->commitState(Landroid/content/UndoOwner;)I
+HSPLandroid/content/UndoManager;->createWorkingState()V
+HSPLandroid/content/UndoManager;->endUpdate()V
+HSPLandroid/content/UndoManager;->findPrevState(Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I
 HSPLandroid/content/UndoManager;->forgetRedos([Landroid/content/UndoOwner;I)I
 HSPLandroid/content/UndoManager;->forgetUndos([Landroid/content/UndoOwner;I)I
+HSPLandroid/content/UndoManager;->getLastOperation(Ljava/lang/Class;Landroid/content/UndoOwner;I)Landroid/content/UndoOperation;
 HSPLandroid/content/UndoManager;->getOwner(Ljava/lang/String;Ljava/lang/Object;)Landroid/content/UndoOwner;
+HSPLandroid/content/UndoManager;->getTopUndo([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
+HSPLandroid/content/UndoManager;->isInUndo()Z
+HSPLandroid/content/UndoManager;->matchOwners(Landroid/content/UndoManager$UndoState;[Landroid/content/UndoOwner;)Z
+HSPLandroid/content/UndoManager;->pushWorkingState()V
+HSPLandroid/content/UndoManager;->removeOwner(Landroid/content/UndoOwner;)V
+HSPLandroid/content/UndoManager;->restoreInstanceState(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
 HSPLandroid/content/UndoManager;->saveInstanceState(Landroid/os/Parcel;)V
+HSPLandroid/content/UndoManager;->saveOwner(Landroid/content/UndoOwner;Landroid/os/Parcel;)V
+HSPLandroid/content/UndoOperation;-><init>(Landroid/content/UndoOwner;)V
+HSPLandroid/content/UndoOperation;->allowMerge()Z
+HSPLandroid/content/UndoOperation;->getOwner()Landroid/content/UndoOwner;
+HSPLandroid/content/UndoOperation;->getOwnerData()Ljava/lang/Object;
+HSPLandroid/content/UndoOperation;->hasData()Z
+HSPLandroid/content/UndoOperation;->matchOwner(Landroid/content/UndoOwner;)Z
 HSPLandroid/content/UndoOwner;-><init>(Ljava/lang/String;Landroid/content/UndoManager;)V
+HSPLandroid/content/UndoOwner;->getData()Ljava/lang/Object;
 HSPLandroid/content/UriMatcher;-><init>(I)V
 HSPLandroid/content/UriMatcher;-><init>(ILjava/lang/String;)V
 HSPLandroid/content/UriMatcher;->addURI(Ljava/lang/String;Ljava/lang/String;I)V
 HSPLandroid/content/UriMatcher;->createChild(Ljava/lang/String;)Landroid/content/UriMatcher;
 HSPLandroid/content/UriMatcher;->match(Landroid/net/Uri;)I
+HSPLandroid/content/integrity/IAppIntegrityManager$Stub;-><init>()V
+HPLandroid/content/integrity/IAppIntegrityManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/om/IOverlayManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/content/om/IOverlayManager$Stub$Proxy;->getOverlayInfosForTarget(Ljava/lang/String;I)Ljava/util/List;
+HSPLandroid/content/om/IOverlayManager$Stub;-><init>()V
+HSPLandroid/content/om/IOverlayManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/om/IOverlayManager;
+HPLandroid/content/om/IOverlayManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/om/OverlayInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/om/OverlayInfo;
+HSPLandroid/content/om/OverlayInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/om/OverlayInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/om/OverlayInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZ)V
+HSPLandroid/content/om/OverlayInfo;->ensureValidState()V
+HSPLandroid/content/om/OverlayInfo;->isEnabled()Z
+HPLandroid/content/om/OverlayInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/om/OverlayManager;-><init>(Landroid/content/Context;Landroid/content/om/IOverlayManager;)V
+HSPLandroid/content/pm/-$$Lambda$ApplicationInfo$1$FDtFc-prTtONpy6YSScuAiML69E;-><clinit>()V
+HSPLandroid/content/pm/-$$Lambda$ApplicationInfo$1$FDtFc-prTtONpy6YSScuAiML69E;-><init>()V
+HSPLandroid/content/pm/-$$Lambda$ApplicationInfo$1$FDtFc-prTtONpy6YSScuAiML69E;->readRawParceled(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/-$$Lambda$IPackageManager$Stub$Proxy$X2I1qlX4SiKMZSjDTNzS_nTibbo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/-$$Lambda$IPackageManager$Stub$Proxy$X2I1qlX4SiKMZSjDTNzS_nTibbo;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLandroid/content/pm/-$$Lambda$T1UQAuePWRRmVQ1KzTyMAktZUPM;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLandroid/content/pm/-$$Lambda$ciir_QAmv6RwJro4I58t77dPnxU;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLandroid/content/pm/-$$Lambda$hUJwdX9IqTlLwBds2BUGqVf-FM8;-><clinit>()V
+HSPLandroid/content/pm/-$$Lambda$hUJwdX9IqTlLwBds2BUGqVf-FM8;-><init>()V
+HSPLandroid/content/pm/-$$Lambda$hUJwdX9IqTlLwBds2BUGqVf-FM8;->get()Ljava/lang/Object;
+HSPLandroid/content/pm/-$$Lambda$n3uXeb1v-YRmq_BWTfosEqUUr9g;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLandroid/content/pm/-$$Lambda$zO9HBUVgPeroyDQPLJE-MNMvSqc;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLandroid/content/pm/ActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ActivityInfo;
 HSPLandroid/content/pm/ActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/pm/ActivityInfo$1;->newArray(I)[Landroid/content/pm/ActivityInfo;
 HSPLandroid/content/pm/ActivityInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/content/pm/ActivityInfo$WindowLayout;-><init>(IFIFIII)V
 HSPLandroid/content/pm/ActivityInfo$WindowLayout;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/ActivityInfo;-><init>()V
+HSPLandroid/content/pm/ActivityInfo;-><init>(Landroid/content/pm/ActivityInfo;)V
 HSPLandroid/content/pm/ActivityInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/ActivityInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ActivityInfo$1;)V
 HSPLandroid/content/pm/ActivityInfo;->activityInfoConfigNativeToJava(I)I
+HSPLandroid/content/pm/ActivityInfo;->getRealConfigChanged()I
 HSPLandroid/content/pm/ActivityInfo;->getThemeResource()I
+HSPLandroid/content/pm/ActivityInfo;->hasFixedAspectRatio()Z
+HSPLandroid/content/pm/ActivityInfo;->isFixedOrientation()Z
+HSPLandroid/content/pm/ActivityInfo;->isFixedOrientationLandscape()Z
+HSPLandroid/content/pm/ActivityInfo;->isFixedOrientationLandscape(I)Z
+HSPLandroid/content/pm/ActivityInfo;->isFixedOrientationPortrait()Z
+HSPLandroid/content/pm/ActivityInfo;->isFixedOrientationPortrait(I)Z
+HPLandroid/content/pm/ActivityInfo;->isPreserveOrientationMode(I)Z
+HSPLandroid/content/pm/ActivityInfo;->isResizeableMode(I)Z
+HSPLandroid/content/pm/ActivityInfo;->isTranslucentOrFloating(Landroid/content/res/TypedArray;)Z
+HSPLandroid/content/pm/ActivityInfo;->supportsPictureInPicture()Z
+HSPLandroid/content/pm/ActivityInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/ApplicationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ApplicationInfo;
 HSPLandroid/content/pm/ApplicationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/ApplicationInfo$1;->lambda$createFromParcel$0(Landroid/os/Parcel;)Landroid/content/pm/ApplicationInfo;
 HSPLandroid/content/pm/ApplicationInfo;-><init>()V
 HSPLandroid/content/pm/ApplicationInfo;-><init>(Landroid/content/pm/ApplicationInfo;)V
 HSPLandroid/content/pm/ApplicationInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/ApplicationInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ApplicationInfo$1;)V
 HSPLandroid/content/pm/ApplicationInfo;->getAllApkPaths()[Ljava/lang/String;
 HSPLandroid/content/pm/ApplicationInfo;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/ApplicationInfo;->getBaseCodePath()Ljava/lang/String;
+HSPLandroid/content/pm/ApplicationInfo;->getBaseResourcePath()Ljava/lang/String;
 HSPLandroid/content/pm/ApplicationInfo;->getCodePath()Ljava/lang/String;
+HSPLandroid/content/pm/ApplicationInfo;->getHiddenApiEnforcementPolicy()I
+HSPLandroid/content/pm/ApplicationInfo;->hasRequestedLegacyExternalStorage()Z
 HSPLandroid/content/pm/ApplicationInfo;->hasRtlSupport()Z
+HSPLandroid/content/pm/ApplicationInfo;->initForUser(I)V
+HSPLandroid/content/pm/ApplicationInfo;->isAllowedToUseHiddenApis()Z
+HSPLandroid/content/pm/ApplicationInfo;->isAudioPlaybackCaptureAllowed()Z
+HSPLandroid/content/pm/ApplicationInfo;->isDirectBootAware()Z
+HSPLandroid/content/pm/ApplicationInfo;->isEmbeddedDexUsed()Z
+HSPLandroid/content/pm/ApplicationInfo;->isEncryptionAware()Z
 HSPLandroid/content/pm/ApplicationInfo;->isInstantApp()Z
+HSPLandroid/content/pm/ApplicationInfo;->isOem()Z
+HSPLandroid/content/pm/ApplicationInfo;->isPackageWhitelistedForHiddenApis()Z
 HSPLandroid/content/pm/ApplicationInfo;->isPrivilegedApp()Z
 HSPLandroid/content/pm/ApplicationInfo;->isProduct()Z
 HSPLandroid/content/pm/ApplicationInfo;->isProfileableByShell()Z
+HSPLandroid/content/pm/ApplicationInfo;->isSignedWithPlatformKey()Z
+HSPLandroid/content/pm/ApplicationInfo;->isStaticSharedLibrary()Z
 HSPLandroid/content/pm/ApplicationInfo;->isSystemApp()Z
 HSPLandroid/content/pm/ApplicationInfo;->isUpdatedSystemApp()Z
+HSPLandroid/content/pm/ApplicationInfo;->isValidHiddenApiEnforcementPolicy(I)Z
 HSPLandroid/content/pm/ApplicationInfo;->isVendor()Z
+HSPLandroid/content/pm/ApplicationInfo;->maybeUpdateHiddenApiEnforcementPolicy(I)V
 HSPLandroid/content/pm/ApplicationInfo;->requestsIsolatedSplitLoading()Z
+HSPLandroid/content/pm/ApplicationInfo;->setBaseCodePath(Ljava/lang/String;)V
+HSPLandroid/content/pm/ApplicationInfo;->setBaseResourcePath(Ljava/lang/String;)V
+HSPLandroid/content/pm/ApplicationInfo;->setCodePath(Ljava/lang/String;)V
+HSPLandroid/content/pm/ApplicationInfo;->setHiddenApiEnforcementPolicy(I)V
+HSPLandroid/content/pm/ApplicationInfo;->setResourcePath(Ljava/lang/String;)V
+HSPLandroid/content/pm/ApplicationInfo;->setSplitCodePaths([Ljava/lang/String;)V
+HSPLandroid/content/pm/ApplicationInfo;->setSplitResourcePaths([Ljava/lang/String;)V
 HSPLandroid/content/pm/ApplicationInfo;->setVersionCode(J)V
+HSPLandroid/content/pm/ApplicationInfo;->usesCompatibilityMode()Z
+HSPLandroid/content/pm/ApplicationInfo;->usesNonSdkApi()Z
 HSPLandroid/content/pm/ApplicationInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/BaseParceledListSlice$1;-><init>(Landroid/content/pm/BaseParceledListSlice;ILjava/lang/Class;I)V
+HSPLandroid/content/pm/BaseParceledListSlice$1;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/content/pm/BaseParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
 HSPLandroid/content/pm/BaseParceledListSlice;-><init>(Ljava/util/List;)V
+HSPLandroid/content/pm/BaseParceledListSlice;->access$000()Z
+HSPLandroid/content/pm/BaseParceledListSlice;->access$200(Landroid/content/pm/BaseParceledListSlice;)Ljava/util/List;
+HSPLandroid/content/pm/BaseParceledListSlice;->access$300(Ljava/lang/Class;Ljava/lang/Class;)V
 HSPLandroid/content/pm/BaseParceledListSlice;->getList()Ljava/util/List;
 HSPLandroid/content/pm/BaseParceledListSlice;->readCreator(Landroid/os/Parcelable$Creator;Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object;
+HSPLandroid/content/pm/BaseParceledListSlice;->setInlineCountLimit(I)V
 HSPLandroid/content/pm/BaseParceledListSlice;->verifySameType(Ljava/lang/Class;Ljava/lang/Class;)V
 HSPLandroid/content/pm/BaseParceledListSlice;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/ChangedPackages;-><clinit>()V
+HPLandroid/content/pm/ChangedPackages;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/ComponentInfo;-><init>()V
+HSPLandroid/content/pm/ComponentInfo;-><init>(Landroid/content/pm/ComponentInfo;)V
 HSPLandroid/content/pm/ComponentInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/ComponentInfo;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
 HSPLandroid/content/pm/ComponentInfo;->getComponentName()Landroid/content/ComponentName;
 HSPLandroid/content/pm/ComponentInfo;->getIconResource()I
+HSPLandroid/content/pm/ComponentInfo;->getLogoResource()I
 HSPLandroid/content/pm/ComponentInfo;->isEnabled()Z
 HSPLandroid/content/pm/ComponentInfo;->loadUnsafeLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
 HSPLandroid/content/pm/ComponentInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/ConfigurationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ConfigurationInfo;
 HSPLandroid/content/pm/ConfigurationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/ConfigurationInfo;-><init>()V
 HSPLandroid/content/pm/ConfigurationInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/ConfigurationInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ConfigurationInfo$1;)V
+HSPLandroid/content/pm/ConfigurationInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/DataLoaderManager;-><init>(Landroid/content/pm/IDataLoaderManager;)V
+HSPLandroid/content/pm/FallbackCategoryProvider;->getFallbackCategory(Ljava/lang/String;)I
+HSPLandroid/content/pm/FallbackCategoryProvider;->loadFallbacks()V
 HSPLandroid/content/pm/FeatureInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/FeatureInfo;
 HSPLandroid/content/pm/FeatureInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/FeatureInfo;-><init>()V
+HSPLandroid/content/pm/FeatureInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/FeatureInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/FeatureInfo$1;)V
+HSPLandroid/content/pm/FeatureInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/ICrossProfileApps$Stub;-><init>()V
+HPLandroid/content/pm/ICrossProfileApps$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/pm/IDataLoaderManager$Stub;-><init>()V
+HSPLandroid/content/pm/IDataLoaderManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IDataLoaderManager;
+HPLandroid/content/pm/IDataLoaderManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->getShortcuts(Ljava/lang/String;JLjava/lang/String;Ljava/util/List;Landroid/content/ComponentName;ILandroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/ILauncherApps$Stub;-><init>()V
 HSPLandroid/content/pm/ILauncherApps$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/ILauncherApps;
+HPLandroid/content/pm/ILauncherApps$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/pm/IOnAppsChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onPackageChanged(Landroid/os/UserHandle;Ljava/lang/String;)V
+HPLandroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onShortcutChanged(Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 HSPLandroid/content/pm/IOnAppsChangedListener$Stub;-><init>()V
+PLandroid/content/pm/IOnAppsChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IOnAppsChangedListener;
+HSPLandroid/content/pm/IOtaDexopt$Stub;-><init>()V
+HPLandroid/content/pm/IOtaDexopt$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/content/pm/IPackageDataObserver$Stub$Proxy;->onRemoveCompleted(Ljava/lang/String;Z)V
+HPLandroid/content/pm/IPackageDataObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageDataObserver;
+HSPLandroid/content/pm/IPackageInstaller$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/content/pm/IPackageInstaller$Stub$Proxy;->getAllSessions(I)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/IPackageInstaller$Stub$Proxy;->getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo;
+HSPLandroid/content/pm/IPackageInstaller$Stub$Proxy;->registerCallback(Landroid/content/pm/IPackageInstallerCallback;I)V
+HSPLandroid/content/pm/IPackageInstaller$Stub;-><init>()V
+HPLandroid/content/pm/IPackageInstaller$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/content/pm/IPackageInstaller$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageInstaller;
+HPLandroid/content/pm/IPackageInstaller$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionActiveChanged(IZ)V
+HPLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionCreated(I)V
+HPLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionFinished(IZ)V
+HPLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionProgressChanged(IF)V
+HSPLandroid/content/pm/IPackageInstallerCallback$Stub;-><init>()V
+HSPLandroid/content/pm/IPackageInstallerCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/content/pm/IPackageInstallerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageInstallerCallback;
+HSPLandroid/content/pm/IPackageInstallerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/pm/IPackageInstallerSession$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->checkSignatures(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->checkUidSignatures(II)I
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getActivityInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationEnabledSetting(Ljava/lang/String;I)I
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationInfo(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledApplications(II)Landroid/content/pm/ParceledListSlice;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledPackages(II)Landroid/content/pm/ParceledListSlice;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
@@ -3086,57 +6455,312 @@
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInstaller()Landroid/content/pm/IPackageInstaller;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageUid(Ljava/lang/String;II)I
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackagesForUid(I)[Ljava/lang/String;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPermissionControllerPackageName()Ljava/lang/String;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getReceiverInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getServiceInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ServiceInfo;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSharedSystemSharedLibraryPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSystemAvailableFeatures()Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSystemSharedLibraryNames()[Ljava/lang/String;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->hasSystemFeature(Ljava/lang/String;I)Z
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->isInstantApp(Ljava/lang/String;I)Z
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->isOnlyCoreApps()Z
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->lambda$notifyDexLoad$0(Landroid/os/Parcel;Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->notifyDexLoad(Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->notifyDexLoad(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->notifyPackageUse(Ljava/lang/String;I)V
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->notifyPackagesReplacedReceived([Ljava/lang/String;)V
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentReceivers(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentServices(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->registerMoveCallback(Landroid/content/pm/IPackageMoveObserver;)V
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->resolveContentProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->resolveService(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
 HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->setComponentEnabledSetting(Landroid/content/ComponentName;III)V
+HSPLandroid/content/pm/IPackageManager$Stub;-><init>()V
 HSPLandroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
+HPLandroid/content/pm/IPackageManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/content/pm/IPackageManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/pm/IPackageManagerNative$Stub;-><init>()V
+HSPLandroid/content/pm/IPackageManagerNative$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/pm/IPackageMoveObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/content/pm/IPackageMoveObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/content/pm/IPackageMoveObserver$Stub;-><init>()V
+HSPLandroid/content/pm/IPackageMoveObserver$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/content/pm/IPackageMoveObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageMoveObserver;
 HSPLandroid/content/pm/IShortcutService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->addDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
+HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getMaxShortcutCountPerActivity(Ljava/lang/String;I)I
+HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getPinnedShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getShortcuts(Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->reportShortcutUsed(Ljava/lang/String;Ljava/lang/String;I)V
+HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->setDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
+HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->updateShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
+HSPLandroid/content/pm/IShortcutService$Stub;-><init>()V
 HSPLandroid/content/pm/IShortcutService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IShortcutService;
+HPLandroid/content/pm/IShortcutService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/content/pm/InstantAppRequest;-><init>(Landroid/content/pm/AuxiliaryResolveInfo;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;ZILandroid/os/Bundle;Z[ILjava/lang/String;)V
+HSPLandroid/content/pm/InstantAppRequestInfo$1;-><init>()V
+HSPLandroid/content/pm/InstantAppRequestInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/InstantAppRequestInfo;
+HSPLandroid/content/pm/InstantAppRequestInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/InstantAppRequestInfo;-><clinit>()V
+HPLandroid/content/pm/InstantAppRequestInfo;-><init>(Landroid/content/Intent;[ILandroid/os/UserHandle;ZLjava/lang/String;)V
+HSPLandroid/content/pm/InstantAppRequestInfo;-><init>(Landroid/os/Parcel;)V
+HPLandroid/content/pm/InstantAppRequestInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;-><init>(Ljava/lang/String;I)V
+HPLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->generateDigest(Ljava/lang/String;I)[[B
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->getDigestPrefix()[I
+HPLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->getDigestPrefixSecure()[I
+PLandroid/content/pm/InstantAppResolveInfo;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/IntentFilterVerificationInfo;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLandroid/content/pm/IntentFilterVerificationInfo;->getIntFromXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+HSPLandroid/content/pm/IntentFilterVerificationInfo;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/IntentFilterVerificationInfo;->getStringFromXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/IntentFilterVerificationInfo;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLandroid/content/pm/IntentFilterVerificationInfo;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLandroid/content/pm/LauncherApps$1;-><init>(Landroid/content/pm/LauncherApps;)V
+HSPLandroid/content/pm/LauncherApps$Callback;-><init>()V
+HSPLandroid/content/pm/LauncherApps$ShortcutQuery;-><init>()V
+HSPLandroid/content/pm/LauncherApps$ShortcutQuery;->setPackage(Ljava/lang/String;)Landroid/content/pm/LauncherApps$ShortcutQuery;
+HSPLandroid/content/pm/LauncherApps$ShortcutQuery;->setQueryFlags(I)Landroid/content/pm/LauncherApps$ShortcutQuery;
+HSPLandroid/content/pm/LauncherApps$ShortcutQuery;->setShortcutIds(Ljava/util/List;)Landroid/content/pm/LauncherApps$ShortcutQuery;
 HSPLandroid/content/pm/LauncherApps;-><init>(Landroid/content/Context;)V
 HSPLandroid/content/pm/LauncherApps;-><init>(Landroid/content/Context;Landroid/content/pm/ILauncherApps;)V
+HSPLandroid/content/pm/LauncherApps;->getShortcutIconDrawable(Landroid/content/pm/ShortcutInfo;I)Landroid/graphics/drawable/Drawable;
+HSPLandroid/content/pm/LauncherApps;->getShortcuts(Landroid/content/pm/LauncherApps$ShortcutQuery;Landroid/os/UserHandle;)Ljava/util/List;
+HSPLandroid/content/pm/LauncherApps;->logErrorForInvalidProfileAccess(Landroid/os/UserHandle;)V
+HSPLandroid/content/pm/LauncherApps;->maybeUpdateDisabledMessage(Ljava/util/List;)Ljava/util/List;
+HSPLandroid/content/pm/ModuleInfo;-><init>()V
+HSPLandroid/content/pm/ModuleInfo;->setApexModuleName(Ljava/lang/String;)Landroid/content/pm/ModuleInfo;
+HSPLandroid/content/pm/ModuleInfo;->setHidden(Z)Landroid/content/pm/ModuleInfo;
+HSPLandroid/content/pm/ModuleInfo;->setName(Ljava/lang/CharSequence;)Landroid/content/pm/ModuleInfo;
+HSPLandroid/content/pm/ModuleInfo;->setPackageName(Ljava/lang/String;)Landroid/content/pm/ModuleInfo;
+HPLandroid/content/pm/ModuleInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/PackageInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageInfo;
 HSPLandroid/content/pm/PackageInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/PackageInfo;-><init>()V
 HSPLandroid/content/pm/PackageInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/PackageInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/PackageInfo$1;)V
 HSPLandroid/content/pm/PackageInfo;->composeLongVersionCode(II)J
 HSPLandroid/content/pm/PackageInfo;->getLongVersionCode()J
+PLandroid/content/pm/PackageInfo;->isOverlayPackage()Z
+HSPLandroid/content/pm/PackageInfo;->isStaticOverlayPackage()Z
 HSPLandroid/content/pm/PackageInfo;->propagateApplicationInfo(Landroid/content/pm/ApplicationInfo;[Landroid/content/pm/ComponentInfo;)V
+HSPLandroid/content/pm/PackageInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/pm/PackageInfoLite;->getLongVersionCode()J
+HSPLandroid/content/pm/PackageInstaller$SessionCallback;-><init>()V
+HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;-><init>(Landroid/content/pm/PackageInstaller$SessionCallback;Ljava/util/concurrent/Executor;)V
+HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionActiveChanged(IZ)V
+PLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionCreated(I)V
+HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionFinished(IZ)V
+HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionProgressChanged(IF)V
+HSPLandroid/content/pm/PackageInstaller$SessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageInstaller$SessionInfo;
+HSPLandroid/content/pm/PackageInstaller$SessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/PackageInstaller$SessionInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/PackageInstaller$SessionInfo;->getAppPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/PackageInstaller$SessionInfo;->getInstallerPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/PackageInstaller$SessionInfo;->getSessionId()I
+HPLandroid/content/pm/PackageInstaller$SessionInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/pm/PackageInstaller$SessionParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageInstaller$SessionParams;
+PLandroid/content/pm/PackageInstaller$SessionParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/PackageInstaller$SessionParams;-><init>(I)V
+HPLandroid/content/pm/PackageInstaller$SessionParams;-><init>(Landroid/os/Parcel;)V
+HPLandroid/content/pm/PackageInstaller$SessionParams;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 HSPLandroid/content/pm/PackageInstaller;-><init>(Landroid/content/pm/IPackageInstaller;Ljava/lang/String;I)V
+HSPLandroid/content/pm/PackageInstaller;->getAllSessions()Ljava/util/List;
+HSPLandroid/content/pm/PackageInstaller;->getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo;
+HSPLandroid/content/pm/PackageInstaller;->registerSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;)V
+HSPLandroid/content/pm/PackageInstaller;->registerSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;Landroid/os/Handler;)V
 HSPLandroid/content/pm/PackageItemInfo;-><init>()V
 HSPLandroid/content/pm/PackageItemInfo;-><init>(Landroid/content/pm/PackageItemInfo;)V
 HSPLandroid/content/pm/PackageItemInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/PackageItemInfo;->forceSafeLabels()V
 HSPLandroid/content/pm/PackageItemInfo;->loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/content/pm/PackageItemInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+HSPLandroid/content/pm/PackageItemInfo;->loadSafeLabel(Landroid/content/pm/PackageManager;FI)Ljava/lang/CharSequence;
+HSPLandroid/content/pm/PackageItemInfo;->loadUnbadgedIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/content/pm/PackageItemInfo;->loadUnsafeLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
 HSPLandroid/content/pm/PackageItemInfo;->loadXmlMetaData(Landroid/content/pm/PackageManager;Ljava/lang/String;)Landroid/content/res/XmlResourceParser;
 HSPLandroid/content/pm/PackageItemInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/PackageManager$1;->maybeCheckConsistency(Landroid/content/pm/PackageManager$ApplicationInfoQuery;Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/PackageManager$1;->maybeCheckConsistency(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/content/pm/PackageManager$1;->recompute(Landroid/content/pm/PackageManager$ApplicationInfoQuery;)Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/PackageManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/content/pm/PackageManager$2;->maybeCheckConsistency(Landroid/content/pm/PackageManager$PackageInfoQuery;Landroid/content/pm/PackageInfo;)Landroid/content/pm/PackageInfo;
+HSPLandroid/content/pm/PackageManager$2;->maybeCheckConsistency(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/content/pm/PackageManager$2;->recompute(Landroid/content/pm/PackageManager$PackageInfoQuery;)Landroid/content/pm/PackageInfo;
+HSPLandroid/content/pm/PackageManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/content/pm/PackageManager$ApplicationInfoQuery;-><init>(Ljava/lang/String;II)V
+HSPLandroid/content/pm/PackageManager$ApplicationInfoQuery;->equals(Ljava/lang/Object;)Z
+HSPLandroid/content/pm/PackageManager$ApplicationInfoQuery;->hashCode()I
+HSPLandroid/content/pm/PackageManager$MoveCallback;-><init>()V
 HSPLandroid/content/pm/PackageManager$NameNotFoundException;-><init>(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageManager$PackageInfoQuery;-><init>(Ljava/lang/String;II)V
+HSPLandroid/content/pm/PackageManager$PackageInfoQuery;->equals(Ljava/lang/Object;)Z
+HSPLandroid/content/pm/PackageManager$PackageInfoQuery;->hashCode()I
 HSPLandroid/content/pm/PackageManager;-><init>()V
+HSPLandroid/content/pm/PackageManager;->access$000(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/PackageManager;->access$100(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
+HSPLandroid/content/pm/PackageManager;->getApplicationInfoAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/PackageManager;->getApplicationInfoAsUserUncached(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/PackageManager;->getPackageArchiveInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
+HSPLandroid/content/pm/PackageManager;->getPackageInfoAsUserCached(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
+HSPLandroid/content/pm/PackageManager;->getPackageInfoAsUserUncached(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
+PLandroid/content/pm/PackageManager;->installStatusToPublicStatus(I)I
+PLandroid/content/pm/PackageManager;->installStatusToString(I)Ljava/lang/String;
 HSPLandroid/content/pm/PackageManager;->queryBroadcastReceiversAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;
 HSPLandroid/content/pm/PackageManager;->queryIntentActivitiesAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;
 HSPLandroid/content/pm/PackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;
+HSPLandroid/content/pm/PackageParser$Activity;-><init>(Landroid/content/pm/PackageParser$Package;Ljava/lang/String;Landroid/content/pm/ActivityInfo;)V
+HSPLandroid/content/pm/PackageParser$Activity;-><init>(Landroid/content/pm/PackageParser$ParseComponentArgs;Landroid/content/pm/ActivityInfo;)V
+HSPLandroid/content/pm/PackageParser$Activity;->access$200(Landroid/content/pm/PackageParser$Activity;F)V
+HSPLandroid/content/pm/PackageParser$Activity;->access$300(Landroid/content/pm/PackageParser$Activity;F)V
+HSPLandroid/content/pm/PackageParser$Activity;->access$400(Landroid/content/pm/PackageParser$Activity;)Z
+HSPLandroid/content/pm/PackageParser$Activity;->access$500(Landroid/content/pm/PackageParser$Activity;)Z
+HSPLandroid/content/pm/PackageParser$Activity;->hasMaxAspectRatio()Z
+HSPLandroid/content/pm/PackageParser$Activity;->hasMinAspectRatio()Z
+HSPLandroid/content/pm/PackageParser$Activity;->setMaxAspectRatio(F)V
+HSPLandroid/content/pm/PackageParser$Activity;->setMinAspectRatio(F)V
+HSPLandroid/content/pm/PackageParser$Activity;->setPackageName(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$ActivityIntentInfo;-><init>(Landroid/content/pm/PackageParser$Activity;)V
+HSPLandroid/content/pm/PackageParser$ApkLite;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;ZIIIILjava/util/List;Landroid/content/pm/PackageParser$SigningDetails;ZZZZZZZII)V
+HSPLandroid/content/pm/PackageParser$ApkLite;->getLongVersionCode()J
+HSPLandroid/content/pm/PackageParser$CachedComponentArgs;-><init>()V
+HSPLandroid/content/pm/PackageParser$CachedComponentArgs;-><init>(Landroid/content/pm/PackageParser$1;)V
+HSPLandroid/content/pm/PackageParser$CallbackImpl;-><init>(Landroid/content/pm/PackageManager;)V
+HSPLandroid/content/pm/PackageParser$CallbackImpl;->hasFeature(Ljava/lang/String;)Z
+HSPLandroid/content/pm/PackageParser$Component;-><init>(Landroid/content/pm/PackageParser$Package;Ljava/util/ArrayList;Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$Component;-><init>(Landroid/content/pm/PackageParser$ParseComponentArgs;Landroid/content/pm/ComponentInfo;)V
+HSPLandroid/content/pm/PackageParser$Component;-><init>(Landroid/content/pm/PackageParser$ParsePackageItemArgs;Landroid/content/pm/PackageItemInfo;)V
+HSPLandroid/content/pm/PackageParser$Component;->setPackageName(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$IntentInfo;-><init>()V
+HSPLandroid/content/pm/PackageParser$Package;-><init>(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$Package;->getLongVersionCode()J
+HSPLandroid/content/pm/PackageParser$Package;->isMatch(I)Z
+HSPLandroid/content/pm/PackageParser$Package;->setApplicationVolumeUuid(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$Package;->setBaseCodePath(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$Package;->setCodePath(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$Package;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)V
+HSPLandroid/content/pm/PackageParser$Package;->setUse32bitAbi(Z)V
+HSPLandroid/content/pm/PackageParser$Package;->setVolumeUuid(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$PackageLite;-><init>(Ljava/lang/String;Landroid/content/pm/PackageParser$ApkLite;[Ljava/lang/String;[Z[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[I)V
+HSPLandroid/content/pm/PackageParser$PackageLite;->getAllCodePaths()Ljava/util/List;
+HSPLandroid/content/pm/PackageParser$PackageParserException;-><init>(ILjava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$ParseComponentArgs;-><init>(Landroid/content/pm/PackageParser$Package;[Ljava/lang/String;IIIIII[Ljava/lang/String;III)V
+HSPLandroid/content/pm/PackageParser$ParsePackageItemArgs;-><init>(Landroid/content/pm/PackageParser$Package;[Ljava/lang/String;IIIIII)V
 HSPLandroid/content/pm/PackageParser$SigningDetails$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageParser$SigningDetails;
 HSPLandroid/content/pm/PackageParser$SigningDetails$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/PackageParser$SigningDetails$Builder;-><init>()V
+HSPLandroid/content/pm/PackageParser$SigningDetails$Builder;->build()Landroid/content/pm/PackageParser$SigningDetails;
+HSPLandroid/content/pm/PackageParser$SigningDetails$Builder;->checkInvariants()V
+HSPLandroid/content/pm/PackageParser$SigningDetails$Builder;->setSignatureSchemeVersion(I)Landroid/content/pm/PackageParser$SigningDetails$Builder;
+HSPLandroid/content/pm/PackageParser$SigningDetails$Builder;->setSignatures([Landroid/content/pm/Signature;)Landroid/content/pm/PackageParser$SigningDetails$Builder;
+HSPLandroid/content/pm/PackageParser$SigningDetails;-><init>(Landroid/content/pm/PackageParser$SigningDetails;)V
+HSPLandroid/content/pm/PackageParser$SigningDetails;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/PackageParser$SigningDetails;-><init>([Landroid/content/pm/Signature;I)V
+HSPLandroid/content/pm/PackageParser$SigningDetails;-><init>([Landroid/content/pm/Signature;ILandroid/util/ArraySet;[Landroid/content/pm/Signature;)V
+HSPLandroid/content/pm/PackageParser$SigningDetails;-><init>([Landroid/content/pm/Signature;I[Landroid/content/pm/Signature;)V
+HSPLandroid/content/pm/PackageParser$SigningDetails;->checkCapability(Landroid/content/pm/PackageParser$SigningDetails;I)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasAncestor(Landroid/content/pm/PackageParser$SigningDetails;)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasAncestorOrSelf(Landroid/content/pm/PackageParser$SigningDetails;)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasCertificate(Landroid/content/pm/Signature;)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasCertificateInternal(Landroid/content/pm/Signature;I)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasPastSigningCertificates()Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasSha256Certificate([B)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasSha256CertificateInternal([BI)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasSignatures()Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->signaturesMatchExactly(Landroid/content/pm/PackageParser$SigningDetails;)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/PackageParser$SplitNameComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/content/pm/PackageParser$SplitNameComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/content/pm/PackageParser;-><init>()V
+HSPLandroid/content/pm/PackageParser;->access$600(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageItemInfo;[Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;ZIIIIII)Z
+HSPLandroid/content/pm/PackageParser;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParser;->buildCompoundName(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParser;->buildProcessName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;I[Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParser;->buildTaskAffinityName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParser;->cacheResult(Ljava/io/File;ILandroid/content/pm/parsing/ParsedPackage;)V
+HSPLandroid/content/pm/PackageParser;->checkUseInstalledOrHidden(ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;)Z
+HSPLandroid/content/pm/PackageParser;->collectCertificates(Landroid/content/pm/PackageParser$Package;Ljava/io/File;Z)V
+HSPLandroid/content/pm/PackageParser;->collectCertificates(Landroid/content/pm/PackageParser$Package;Z)V
+HSPLandroid/content/pm/PackageParser;->collectCertificatesInternal(Landroid/content/pm/PackageParser$Package;Z)V
+HSPLandroid/content/pm/PackageParser;->computeMinSdkVersion(ILjava/lang/String;I[Ljava/lang/String;[Ljava/lang/String;)I
+HSPLandroid/content/pm/PackageParser;->computeTargetSdkVersion(ILjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)I
+HSPLandroid/content/pm/PackageParser;->copyNeeded(ILandroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageUserState;Landroid/os/Bundle;I)Z
+HSPLandroid/content/pm/PackageParser;->fromCacheEntry([B)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/PackageParser;->fromCacheEntryStatic([B)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/PackageParser;->generateAppDetailsHiddenActivity(Landroid/content/pm/PackageParser$Package;I[Ljava/lang/String;Z)Landroid/content/pm/PackageParser$Activity;
+HSPLandroid/content/pm/PackageParser;->generateApplicationInfo(Landroid/content/pm/PackageParser$Package;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/PackageParser;->generatePackageInfo(Landroid/content/pm/PackageParser$Package;Landroid/apex/ApexInfo;I)Landroid/content/pm/PackageInfo;
+HSPLandroid/content/pm/PackageParser;->generatePackageInfo(Landroid/content/pm/PackageParser$Package;Landroid/apex/ApexInfo;[IIJJLjava/util/Set;Landroid/content/pm/PackageUserState;I)Landroid/content/pm/PackageInfo;
+HSPLandroid/content/pm/PackageParser;->generatePackageInfo(Landroid/content/pm/PackageParser$Package;[IIJJLjava/util/Set;Landroid/content/pm/PackageUserState;)Landroid/content/pm/PackageInfo;
+HSPLandroid/content/pm/PackageParser;->getActivityConfigChanges(II)I
+HSPLandroid/content/pm/PackageParser;->getCacheKey(Ljava/io/File;I)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParser;->getCachedResult(Ljava/io/File;I)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/PackageParser;->hasDomainURLs(Landroid/content/pm/PackageParser$Package;)Z
+HSPLandroid/content/pm/PackageParser;->isApkFile(Ljava/io/File;)Z
+HSPLandroid/content/pm/PackageParser;->isApkPath(Ljava/lang/String;)Z
+HSPLandroid/content/pm/PackageParser;->isAvailable(Landroid/content/pm/PackageUserState;)Z
+HSPLandroid/content/pm/PackageParser;->matchTargetCode([Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/content/pm/PackageParser;->parseActivity(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;Landroid/content/pm/PackageParser$CachedComponentArgs;ZZ)Landroid/content/pm/PackageParser$Activity;
+HSPLandroid/content/pm/PackageParser;->parseApkLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$ApkLite;
+HSPLandroid/content/pm/PackageParser;->parseApkLite(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/PackageParser$ApkLite;
+HSPLandroid/content/pm/PackageParser;->parseApkLiteInner(Ljava/io/File;Ljava/io/FileDescriptor;Ljava/lang/String;I)Landroid/content/pm/PackageParser$ApkLite;
+HSPLandroid/content/pm/PackageParser;->parseBaseApk(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
+HSPLandroid/content/pm/PackageParser;->parseBaseApk(Ljava/io/File;Landroid/content/res/AssetManager;I)Landroid/content/pm/PackageParser$Package;
+HSPLandroid/content/pm/PackageParser;->parseBaseApkCommon(Landroid/content/pm/PackageParser$Package;Ljava/util/Set;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
+HSPLandroid/content/pm/PackageParser;->parseBaseApplication(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Z
+HSPLandroid/content/pm/PackageParser;->parseIntent(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZZLandroid/content/pm/PackageParser$IntentInfo;[Ljava/lang/String;)Z
+HSPLandroid/content/pm/PackageParser;->parseMetaData(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/os/Bundle;[Ljava/lang/String;)Landroid/os/Bundle;
+HSPLandroid/content/pm/PackageParser;->parseMonolithicPackage(Ljava/io/File;I)Landroid/content/pm/PackageParser$Package;
+HSPLandroid/content/pm/PackageParser;->parseMonolithicPackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
+HSPLandroid/content/pm/PackageParser;->parsePackage(Ljava/io/File;IZ)Landroid/content/pm/PackageParser$Package;
+HSPLandroid/content/pm/PackageParser;->parsePackageItemInfo(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageItemInfo;[Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;ZIIIIII)Z
+HSPLandroid/content/pm/PackageParser;->parsePackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
+HSPLandroid/content/pm/PackageParser;->parsePackageSplitNames(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/util/Pair;
+HSPLandroid/content/pm/PackageParser;->parseParsedPackage(Ljava/io/File;IZ)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/PackageParser;->parsePublicKey(Ljava/lang/String;)Ljava/security/PublicKey;
+HSPLandroid/content/pm/PackageParser;->readConfigUseRoundIcon(Landroid/content/res/Resources;)V
+HSPLandroid/content/pm/PackageParser;->setCacheDir(Ljava/io/File;)V
+HSPLandroid/content/pm/PackageParser;->setCallback(Landroid/content/pm/PackageParser$Callback;)V
+HSPLandroid/content/pm/PackageParser;->setCompatibilityModeEnabled(Z)V
+HSPLandroid/content/pm/PackageParser;->setDisplayMetrics(Landroid/util/DisplayMetrics;)V
+HSPLandroid/content/pm/PackageParser;->setMaxAspectRatio(Landroid/content/pm/PackageParser$Package;)V
+HSPLandroid/content/pm/PackageParser;->setMinAspectRatio(Landroid/content/pm/PackageParser$Package;)V
+HSPLandroid/content/pm/PackageParser;->setOnlyCoreApps(Z)V
+HSPLandroid/content/pm/PackageParser;->setSeparateProcesses([Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser;->toCacheEntry(Landroid/content/pm/parsing/ParsedPackage;)[B
+HSPLandroid/content/pm/PackageParser;->toCacheEntryStatic(Landroid/content/pm/parsing/ParsedPackage;)[B
+HSPLandroid/content/pm/PackageParser;->toSigningKeys([Landroid/content/pm/Signature;)Landroid/util/ArraySet;
+HSPLandroid/content/pm/PackageParser;->updateApplicationInfo(Landroid/content/pm/ApplicationInfo;ILandroid/content/pm/PackageUserState;)V
+HSPLandroid/content/pm/PackageParser;->validateName(Ljava/lang/String;ZZ)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParserCacheHelper$ReadHelper;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/PackageParserCacheHelper$ReadHelper;->readString(Landroid/os/Parcel;)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParserCacheHelper$ReadHelper;->startAndInstall()V
+HSPLandroid/content/pm/PackageParserCacheHelper$WriteHelper;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/PackageParserCacheHelper$WriteHelper;->finishAndUninstall()V
+HSPLandroid/content/pm/PackageParserCacheHelper$WriteHelper;->writeString(Landroid/os/Parcel;Ljava/lang/String;)V
 HSPLandroid/content/pm/PackageStats;-><init>(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageUserState;-><init>()V
+HSPLandroid/content/pm/PackageUserState;->equals(Ljava/lang/Object;)Z
+HSPLandroid/content/pm/PackageUserState;->getAllOverlayPaths()[Ljava/lang/String;
+HSPLandroid/content/pm/PackageUserState;->isAvailable(I)Z
+HSPLandroid/content/pm/PackageUserState;->isEnabled(ZZLjava/lang/String;I)Z
+HSPLandroid/content/pm/PackageUserState;->isMatch(Landroid/content/pm/ComponentInfo;I)Z
+HSPLandroid/content/pm/PackageUserState;->isMatch(ZZLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;I)Z
+HSPLandroid/content/pm/PackageUserState;->isMatch(ZZZZLjava/lang/String;I)Z
+HSPLandroid/content/pm/PackageUserState;->reportIfDebug(ZI)Z
+HSPLandroid/content/pm/PackageUserState;->setOverlayPaths([Ljava/lang/String;)V
 HSPLandroid/content/pm/ParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ParceledListSlice;
 HSPLandroid/content/pm/ParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/pm/ParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
 HSPLandroid/content/pm/ParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;Landroid/content/pm/ParceledListSlice$1;)V
 HSPLandroid/content/pm/ParceledListSlice;-><init>(Ljava/util/List;)V
+HSPLandroid/content/pm/ParceledListSlice;->emptyList()Landroid/content/pm/ParceledListSlice;
 HSPLandroid/content/pm/ParceledListSlice;->getList()Ljava/util/List;
 HSPLandroid/content/pm/ParceledListSlice;->readParcelableCreator(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/os/Parcelable$Creator;
+HSPLandroid/content/pm/ParceledListSlice;->setInlineCountLimit(I)V
 HSPLandroid/content/pm/ParceledListSlice;->writeElement(Landroid/os/Parcelable;Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/ParceledListSlice;->writeElement(Ljava/lang/Object;Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/ParceledListSlice;->writeParcelableCreator(Landroid/os/Parcelable;Landroid/os/Parcel;)V
@@ -3147,100 +6771,963 @@
 HSPLandroid/content/pm/PathPermission$1;->newArray(I)[Landroid/content/pm/PathPermission;
 HSPLandroid/content/pm/PathPermission$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/content/pm/PathPermission;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/PathPermission;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/PathPermission;->getReadPermission()Ljava/lang/String;
+HSPLandroid/content/pm/PathPermission;->getWritePermission()Ljava/lang/String;
 HSPLandroid/content/pm/PathPermission;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/content/pm/PermissionGroupInfo;-><init>(III)V
+HPLandroid/content/pm/PermissionGroupInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/PermissionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PermissionInfo;
 HSPLandroid/content/pm/PermissionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/pm/PermissionInfo$1;->newArray(I)[Landroid/content/pm/PermissionInfo;
 HSPLandroid/content/pm/PermissionInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/content/pm/PermissionInfo;-><init>()V
 HSPLandroid/content/pm/PermissionInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/PermissionInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/PermissionInfo$1;)V
+HSPLandroid/content/pm/PermissionInfo;-><init>(Ljava/lang/String;)V
+HSPLandroid/content/pm/PermissionInfo;->fixProtectionLevel(I)I
+HSPLandroid/content/pm/PermissionInfo;->getProtection()I
+HSPLandroid/content/pm/PermissionInfo;->getProtectionFlags()I
+HSPLandroid/content/pm/PermissionInfo;->isAppOp()Z
+HSPLandroid/content/pm/PermissionInfo;->isHardRestricted()Z
+HSPLandroid/content/pm/PermissionInfo;->isRestricted()Z
+HSPLandroid/content/pm/PermissionInfo;->isRuntime()Z
+HSPLandroid/content/pm/PermissionInfo;->isSoftRestricted()Z
+HSPLandroid/content/pm/PermissionInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/ProviderInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ProviderInfo;
 HSPLandroid/content/pm/ProviderInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/pm/ProviderInfo;-><init>()V
 HSPLandroid/content/pm/ProviderInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/ProviderInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ProviderInfo$1;)V
+HSPLandroid/content/pm/ProviderInfo;->toString()Ljava/lang/String;
 HSPLandroid/content/pm/ProviderInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/ProviderInfoList$1;-><init>()V
+HSPLandroid/content/pm/ProviderInfoList$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ProviderInfoList;
+HSPLandroid/content/pm/ProviderInfoList$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/ProviderInfoList;-><clinit>()V
+HSPLandroid/content/pm/ProviderInfoList;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/ProviderInfoList;-><init>(Landroid/os/Parcel;Landroid/content/pm/ProviderInfoList$1;)V
+HSPLandroid/content/pm/ProviderInfoList;->getList()Ljava/util/List;
+HSPLandroid/content/pm/RegisteredServicesCache$1;-><init>(Landroid/content/pm/RegisteredServicesCache;)V
+HPLandroid/content/pm/RegisteredServicesCache$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLandroid/content/pm/RegisteredServicesCache$2;-><init>(Landroid/content/pm/RegisteredServicesCache;)V
+HSPLandroid/content/pm/RegisteredServicesCache$3;-><init>(Landroid/content/pm/RegisteredServicesCache;)V
+HSPLandroid/content/pm/RegisteredServicesCache$ServiceInfo;-><init>(Ljava/lang/Object;Landroid/content/pm/ComponentInfo;Landroid/content/ComponentName;)V
+HSPLandroid/content/pm/RegisteredServicesCache$UserServices;-><init>()V
+HSPLandroid/content/pm/RegisteredServicesCache$UserServices;-><init>(Landroid/content/pm/RegisteredServicesCache$1;)V
+HSPLandroid/content/pm/RegisteredServicesCache;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/XmlSerializerAndParser;)V
+HPLandroid/content/pm/RegisteredServicesCache;->access$100(Landroid/content/pm/RegisteredServicesCache;Landroid/content/Intent;I)V
+HSPLandroid/content/pm/RegisteredServicesCache;->containsType(Ljava/util/ArrayList;Ljava/lang/Object;)Z
+HSPLandroid/content/pm/RegisteredServicesCache;->createFileForUser(I)Landroid/util/AtomicFile;
+HSPLandroid/content/pm/RegisteredServicesCache;->findOrCreateUserLocked(I)Landroid/content/pm/RegisteredServicesCache$UserServices;
+HSPLandroid/content/pm/RegisteredServicesCache;->findOrCreateUserLocked(IZ)Landroid/content/pm/RegisteredServicesCache$UserServices;
+HSPLandroid/content/pm/RegisteredServicesCache;->generateServicesMap([II)V
+HSPLandroid/content/pm/RegisteredServicesCache;->getAllServices(I)Ljava/util/Collection;
+HPLandroid/content/pm/RegisteredServicesCache;->getBindInstantServiceAllowed(I)Z
+HSPLandroid/content/pm/RegisteredServicesCache;->getDataDirectory()Ljava/io/File;
+HPLandroid/content/pm/RegisteredServicesCache;->getServiceInfo(Ljava/lang/Object;I)Landroid/content/pm/RegisteredServicesCache$ServiceInfo;
+HSPLandroid/content/pm/RegisteredServicesCache;->getUser(I)Landroid/content/pm/UserInfo;
+HSPLandroid/content/pm/RegisteredServicesCache;->getUserSystemDirectory(I)Ljava/io/File;
+HPLandroid/content/pm/RegisteredServicesCache;->handlePackageEvent(Landroid/content/Intent;I)V
+HSPLandroid/content/pm/RegisteredServicesCache;->invalidateCache(I)V
+HSPLandroid/content/pm/RegisteredServicesCache;->migrateIfNecessaryLocked()V
+HSPLandroid/content/pm/RegisteredServicesCache;->onServicesChangedLocked(I)V
+HSPLandroid/content/pm/RegisteredServicesCache;->parseServiceInfo(Landroid/content/pm/ResolveInfo;)Landroid/content/pm/RegisteredServicesCache$ServiceInfo;
+HSPLandroid/content/pm/RegisteredServicesCache;->queryIntentServices(I)Ljava/util/List;
+HSPLandroid/content/pm/RegisteredServicesCache;->readPersistentServicesLocked(Ljava/io/InputStream;)V
+HSPLandroid/content/pm/RegisteredServicesCache;->setListener(Landroid/content/pm/RegisteredServicesCacheListener;Landroid/os/Handler;)V
+HPLandroid/content/pm/RegisteredServicesCache;->updateServices(I)V
 HSPLandroid/content/pm/ResolveInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ResolveInfo;
 HSPLandroid/content/pm/ResolveInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/ResolveInfo;-><init>()V
+HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/content/pm/ResolveInfo;)V
 HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ResolveInfo$1;)V
 HSPLandroid/content/pm/ResolveInfo;->getComponentInfo()Landroid/content/pm/ComponentInfo;
+HSPLandroid/content/pm/ResolveInfo;->loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/content/pm/ResolveInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+HSPLandroid/content/pm/ResolveInfo;->toString()Ljava/lang/String;
+HSPLandroid/content/pm/ResolveInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/SELinuxUtil;->assignSeinfoUser(Landroid/content/pm/PackageUserState;)Ljava/lang/String;
 HSPLandroid/content/pm/ServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ServiceInfo;
 HSPLandroid/content/pm/ServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/pm/ServiceInfo$1;->newArray(I)[Landroid/content/pm/ServiceInfo;
 HSPLandroid/content/pm/ServiceInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/content/pm/ServiceInfo;-><init>()V
+HPLandroid/content/pm/ServiceInfo;-><init>(Landroid/content/pm/ServiceInfo;)V
 HSPLandroid/content/pm/ServiceInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/ServiceInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ServiceInfo$1;)V
+HPLandroid/content/pm/ServiceInfo;->getForegroundServiceType()I
+PLandroid/content/pm/ServiceInfo;->toString()Ljava/lang/String;
+HSPLandroid/content/pm/ServiceInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/SharedLibraryInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/SharedLibraryInfo;
 HSPLandroid/content/pm/SharedLibraryInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/SharedLibraryInfo$1;)V
 HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;JILandroid/content/pm/VersionedPackage;Ljava/util/List;Ljava/util/List;)V
 HSPLandroid/content/pm/SharedLibraryInfo;->addDependency(Landroid/content/pm/SharedLibraryInfo;)V
+HSPLandroid/content/pm/SharedLibraryInfo;->clearDependencies()V
+HSPLandroid/content/pm/SharedLibraryInfo;->createForDynamic(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Landroid/content/pm/SharedLibraryInfo;
+HSPLandroid/content/pm/SharedLibraryInfo;->createForStatic(Landroid/content/pm/parsing/AndroidPackage;)Landroid/content/pm/SharedLibraryInfo;
 HSPLandroid/content/pm/SharedLibraryInfo;->getAllCodePaths()Ljava/util/List;
+HSPLandroid/content/pm/SharedLibraryInfo;->getDeclaringPackage()Landroid/content/pm/VersionedPackage;
 HSPLandroid/content/pm/SharedLibraryInfo;->getDependencies()Ljava/util/List;
+HSPLandroid/content/pm/SharedLibraryInfo;->getLongVersion()J
+HSPLandroid/content/pm/SharedLibraryInfo;->getName()Ljava/lang/String;
+HSPLandroid/content/pm/SharedLibraryInfo;->getPackageName()Ljava/lang/String;
 HSPLandroid/content/pm/SharedLibraryInfo;->getPath()Ljava/lang/String;
+HSPLandroid/content/pm/SharedLibraryInfo;->getType()I
+HSPLandroid/content/pm/SharedLibraryInfo;->isStatic()Z
 HSPLandroid/content/pm/SharedLibraryInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/ShortcutInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ShortcutInfo;
 HSPLandroid/content/pm/ShortcutInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/pm/ShortcutInfo$Builder;-><init>(Landroid/content/Context;Ljava/lang/String;)V
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$000(Landroid/content/pm/ShortcutInfo$Builder;)Landroid/content/Context;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$100(Landroid/content/pm/ShortcutInfo$Builder;)Ljava/lang/String;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$1000(Landroid/content/pm/ShortcutInfo$Builder;)Ljava/util/Set;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$1100(Landroid/content/pm/ShortcutInfo$Builder;)[Landroid/content/Intent;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$1200(Landroid/content/pm/ShortcutInfo$Builder;)[Landroid/app/Person;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$1300(Landroid/content/pm/ShortcutInfo$Builder;)Z
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$1400(Landroid/content/pm/ShortcutInfo$Builder;)I
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$1500(Landroid/content/pm/ShortcutInfo$Builder;)Landroid/os/PersistableBundle;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$1600(Landroid/content/pm/ShortcutInfo$Builder;)Landroid/content/LocusId;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$200(Landroid/content/pm/ShortcutInfo$Builder;)Landroid/content/ComponentName;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$300(Landroid/content/pm/ShortcutInfo$Builder;)Landroid/graphics/drawable/Icon;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$400(Landroid/content/pm/ShortcutInfo$Builder;)Ljava/lang/CharSequence;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$500(Landroid/content/pm/ShortcutInfo$Builder;)I
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$600(Landroid/content/pm/ShortcutInfo$Builder;)Ljava/lang/CharSequence;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$700(Landroid/content/pm/ShortcutInfo$Builder;)I
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$800(Landroid/content/pm/ShortcutInfo$Builder;)Ljava/lang/CharSequence;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->access$900(Landroid/content/pm/ShortcutInfo$Builder;)I
 HSPLandroid/content/pm/ShortcutInfo$Builder;->build()Landroid/content/pm/ShortcutInfo;
 HSPLandroid/content/pm/ShortcutInfo$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/content/pm/ShortcutInfo$Builder;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->setIntent(Landroid/content/Intent;)Landroid/content/pm/ShortcutInfo$Builder;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->setIntents([Landroid/content/Intent;)Landroid/content/pm/ShortcutInfo$Builder;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->setLongLabel(Ljava/lang/CharSequence;)Landroid/content/pm/ShortcutInfo$Builder;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->setRank(I)Landroid/content/pm/ShortcutInfo$Builder;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->setShortLabel(Ljava/lang/CharSequence;)Landroid/content/pm/ShortcutInfo$Builder;
+HPLandroid/content/pm/ShortcutInfo;-><init>(ILjava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;ILjava/lang/String;Ljava/lang/CharSequence;ILjava/lang/String;Ljava/lang/CharSequence;ILjava/lang/String;Ljava/util/Set;[Landroid/content/Intent;ILandroid/os/PersistableBundle;JIILjava/lang/String;Ljava/lang/String;I[Landroid/app/Person;Landroid/content/LocusId;)V
 HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/content/pm/ShortcutInfo$Builder;)V
+HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/content/pm/ShortcutInfo$Builder;Landroid/content/pm/ShortcutInfo$1;)V
+HPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/content/pm/ShortcutInfo;I)V
 HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ShortcutInfo$1;)V
+HSPLandroid/content/pm/ShortcutInfo;->access$1700([Landroid/content/Intent;)[Landroid/content/Intent;
+HPLandroid/content/pm/ShortcutInfo;->addFlags(I)V
+HPLandroid/content/pm/ShortcutInfo;->clearFlags(I)V
+HPLandroid/content/pm/ShortcutInfo;->clone(I)Landroid/content/pm/ShortcutInfo;
 HSPLandroid/content/pm/ShortcutInfo;->cloneCategories(Ljava/util/Set;)Landroid/util/ArraySet;
 HSPLandroid/content/pm/ShortcutInfo;->cloneIntents([Landroid/content/Intent;)[Landroid/content/Intent;
 HSPLandroid/content/pm/ShortcutInfo;->clonePersons([Landroid/app/Person;)[Landroid/app/Person;
+HPLandroid/content/pm/ShortcutInfo;->enforceMandatoryFields(Z)V
 HSPLandroid/content/pm/ShortcutInfo;->fixUpIntentExtras()V
+HSPLandroid/content/pm/ShortcutInfo;->getActivity()Landroid/content/ComponentName;
+HPLandroid/content/pm/ShortcutInfo;->getBitmapPath()Ljava/lang/String;
+HSPLandroid/content/pm/ShortcutInfo;->getCategories()Ljava/util/Set;
+HSPLandroid/content/pm/ShortcutInfo;->getDisabledMessage()Ljava/lang/CharSequence;
+HSPLandroid/content/pm/ShortcutInfo;->getDisabledReason()I
+HSPLandroid/content/pm/ShortcutInfo;->getDisabledReasonForRestoreIssue(Landroid/content/Context;I)Ljava/lang/String;
+PLandroid/content/pm/ShortcutInfo;->getFlags()I
+HSPLandroid/content/pm/ShortcutInfo;->getIconResourceId()I
 HSPLandroid/content/pm/ShortcutInfo;->getId()Ljava/lang/String;
+HSPLandroid/content/pm/ShortcutInfo;->getLastChangedTimestamp()J
+HSPLandroid/content/pm/ShortcutInfo;->getPackage()Ljava/lang/String;
+HSPLandroid/content/pm/ShortcutInfo;->getPersons()[Landroid/app/Person;
+HSPLandroid/content/pm/ShortcutInfo;->getRank()I
+HPLandroid/content/pm/ShortcutInfo;->getResourceEntryName(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/content/pm/ShortcutInfo;->getResourcePackageName(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/content/pm/ShortcutInfo;->getResourceString(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLandroid/content/pm/ShortcutInfo;->getResourceTypeAndEntryName(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/ShortcutInfo;->getShortLabel()Ljava/lang/CharSequence;
+HSPLandroid/content/pm/ShortcutInfo;->getUserHandle()Landroid/os/UserHandle;
+HSPLandroid/content/pm/ShortcutInfo;->getUserId()I
+PLandroid/content/pm/ShortcutInfo;->hasAnyResources()Z
 HSPLandroid/content/pm/ShortcutInfo;->hasFlags(I)Z
+HSPLandroid/content/pm/ShortcutInfo;->hasIconFile()Z
+HSPLandroid/content/pm/ShortcutInfo;->hasIconResource()Z
 HSPLandroid/content/pm/ShortcutInfo;->hasKeyFieldsOnly()Z
+HPLandroid/content/pm/ShortcutInfo;->isAlive()Z
+HSPLandroid/content/pm/ShortcutInfo;->isDeclaredInManifest()Z
+PLandroid/content/pm/ShortcutInfo;->isDisabledForRestoreIssue(I)Z
+HSPLandroid/content/pm/ShortcutInfo;->isDynamic()Z
+HSPLandroid/content/pm/ShortcutInfo;->isEnabled()Z
+HPLandroid/content/pm/ShortcutInfo;->isFloating()Z
+PLandroid/content/pm/ShortcutInfo;->isIconPendingSave()Z
+HSPLandroid/content/pm/ShortcutInfo;->isImmutable()Z
+HPLandroid/content/pm/ShortcutInfo;->isManifestShortcut()Z
+HPLandroid/content/pm/ShortcutInfo;->isOriginallyFromManifest()Z
+HPLandroid/content/pm/ShortcutInfo;->isPinned()Z
+PLandroid/content/pm/ShortcutInfo;->isVisibleToPublisher()Z
+HPLandroid/content/pm/ShortcutInfo;->lookUpResourceId(Landroid/content/res/Resources;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+HPLandroid/content/pm/ShortcutInfo;->lookUpResourceName(Landroid/content/res/Resources;IZLjava/lang/String;)Ljava/lang/String;
+HPLandroid/content/pm/ShortcutInfo;->lookupAndFillInResourceIds(Landroid/content/res/Resources;)V
+HPLandroid/content/pm/ShortcutInfo;->lookupAndFillInResourceNames(Landroid/content/res/Resources;)V
+HPLandroid/content/pm/ShortcutInfo;->resolveResourceStrings(Landroid/content/res/Resources;)V
+PLandroid/content/pm/ShortcutInfo;->setBitmapPath(Ljava/lang/String;)V
+PLandroid/content/pm/ShortcutInfo;->setIconResName(Ljava/lang/String;)V
+PLandroid/content/pm/ShortcutInfo;->setIconResourceId(I)V
+HSPLandroid/content/pm/ShortcutInfo;->setIntentExtras(Landroid/content/Intent;Landroid/os/PersistableBundle;)Landroid/content/Intent;
+HPLandroid/content/pm/ShortcutInfo;->setIntents([Landroid/content/Intent;)V
+HPLandroid/content/pm/ShortcutInfo;->setReturnedByServer()V
+PLandroid/content/pm/ShortcutInfo;->setTimestamp(J)V
+HSPLandroid/content/pm/ShortcutInfo;->updateTimestamp()V
 HSPLandroid/content/pm/ShortcutInfo;->validateIcon(Landroid/graphics/drawable/Icon;)Landroid/graphics/drawable/Icon;
 HSPLandroid/content/pm/ShortcutInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/ShortcutManager;-><init>(Landroid/content/Context;Landroid/content/pm/IShortcutService;)V
+HSPLandroid/content/pm/ShortcutManager;->addDynamicShortcuts(Ljava/util/List;)Z
+HSPLandroid/content/pm/ShortcutManager;->getDynamicShortcuts()Ljava/util/List;
+HSPLandroid/content/pm/ShortcutManager;->getMaxShortcutCountPerActivity()I
+HSPLandroid/content/pm/ShortcutManager;->getPinnedShortcuts()Ljava/util/List;
 HSPLandroid/content/pm/ShortcutManager;->injectMyUserId()I
+HSPLandroid/content/pm/ShortcutManager;->reportShortcutUsed(Ljava/lang/String;)V
+HSPLandroid/content/pm/ShortcutManager;->setDynamicShortcuts(Ljava/util/List;)Z
+HSPLandroid/content/pm/ShortcutManager;->updateShortcuts(Ljava/util/List;)Z
+HSPLandroid/content/pm/ShortcutServiceInternal;-><init>()V
 HSPLandroid/content/pm/Signature$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/Signature;
 HSPLandroid/content/pm/Signature$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/pm/Signature$1;->newArray(I)[Landroid/content/pm/Signature;
 HSPLandroid/content/pm/Signature$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/content/pm/Signature;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/Signature;-><init>(Landroid/os/Parcel;Landroid/content/pm/Signature$1;)V
+HSPLandroid/content/pm/Signature;-><init>(Ljava/lang/String;)V
+HSPLandroid/content/pm/Signature;-><init>([B)V
+HSPLandroid/content/pm/Signature;-><init>([Ljava/security/cert/Certificate;)V
+HSPLandroid/content/pm/Signature;->areExactMatch([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)Z
 HSPLandroid/content/pm/Signature;->equals(Ljava/lang/Object;)Z
+HSPLandroid/content/pm/Signature;->getPublicKey()Ljava/security/PublicKey;
 HSPLandroid/content/pm/Signature;->hashCode()I
+HSPLandroid/content/pm/Signature;->parseHexDigit(I)I
 HSPLandroid/content/pm/Signature;->toByteArray()[B
+HSPLandroid/content/pm/Signature;->toChars()[C
+HSPLandroid/content/pm/Signature;->toChars([C[I)[C
+HSPLandroid/content/pm/Signature;->toCharsString()Ljava/lang/String;
+HSPLandroid/content/pm/Signature;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/SigningInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/SigningInfo;
+HSPLandroid/content/pm/SigningInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/SigningInfo;-><init>(Landroid/content/pm/PackageParser$SigningDetails;)V
+HSPLandroid/content/pm/SigningInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/SigningInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/SigningInfo$1;)V
+HSPLandroid/content/pm/SigningInfo;->getApkContentsSigners()[Landroid/content/pm/Signature;
+HSPLandroid/content/pm/SigningInfo;->getSigningCertificateHistory()[Landroid/content/pm/Signature;
+HSPLandroid/content/pm/SigningInfo;->hasMultipleSigners()Z
+HSPLandroid/content/pm/SigningInfo;->hasPastSigningCertificates()Z
+HSPLandroid/content/pm/StringParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/StringParceledListSlice;
+HSPLandroid/content/pm/StringParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/StringParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
+HSPLandroid/content/pm/StringParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;Landroid/content/pm/StringParceledListSlice$1;)V
+HSPLandroid/content/pm/StringParceledListSlice;->getList()Ljava/util/List;
 HSPLandroid/content/pm/UserInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/UserInfo;
 HSPLandroid/content/pm/UserInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/UserInfo;-><init>(ILjava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
+HSPLandroid/content/pm/UserInfo;-><init>(Landroid/content/pm/UserInfo;)V
 HSPLandroid/content/pm/UserInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/UserInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/UserInfo$1;)V
+HPLandroid/content/pm/UserInfo;->flagsToString(I)Ljava/lang/String;
 HSPLandroid/content/pm/UserInfo;->getUserHandle()Landroid/os/UserHandle;
+HSPLandroid/content/pm/UserInfo;->isAdmin()Z
+HSPLandroid/content/pm/UserInfo;->isDemo()Z
+HSPLandroid/content/pm/UserInfo;->isEnabled()Z
+HSPLandroid/content/pm/UserInfo;->isEphemeral()Z
+HSPLandroid/content/pm/UserInfo;->isFull()Z
 HSPLandroid/content/pm/UserInfo;->isGuest()Z
+PLandroid/content/pm/UserInfo;->isInitialized()Z
 HSPLandroid/content/pm/UserInfo;->isManagedProfile()Z
+HSPLandroid/content/pm/UserInfo;->isPrimary()Z
+HSPLandroid/content/pm/UserInfo;->isProfile()Z
+HSPLandroid/content/pm/UserInfo;->isQuietModeEnabled()Z
+HSPLandroid/content/pm/UserInfo;->isRestricted()Z
+HSPLandroid/content/pm/UserInfo;->supportsSwitchTo()Z
+HSPLandroid/content/pm/UserInfo;->supportsSwitchToByUser()Z
+HSPLandroid/content/pm/UserInfo;->toString()Ljava/lang/String;
+HSPLandroid/content/pm/UserInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/VersionedPackage$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/VersionedPackage;
 HSPLandroid/content/pm/VersionedPackage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/content/pm/VersionedPackage;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/pm/VersionedPackage;-><init>(Landroid/os/Parcel;Landroid/content/pm/VersionedPackage$1;)V
+HSPLandroid/content/pm/VersionedPackage;-><init>(Ljava/lang/String;J)V
+HSPLandroid/content/pm/VersionedPackage;->getLongVersionCode()J
+HSPLandroid/content/pm/VersionedPackage;->getPackageName()Ljava/lang/String;
 HSPLandroid/content/pm/VersionedPackage;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/pm/dex/ArtManager;->getCurrentProfilePath(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
 HSPLandroid/content/pm/dex/ArtManager;->getProfileName(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/dex/ArtManagerInternal;-><init>()V
+HSPLandroid/content/pm/dex/DexMetadataHelper;->buildDexMetadataPathForApk(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/dex/DexMetadataHelper;->buildDexMetadataPathForFile(Ljava/io/File;)Ljava/lang/String;
+HSPLandroid/content/pm/dex/DexMetadataHelper;->buildPackageApkToDexMetadataMap(Ljava/util/List;)Ljava/util/Map;
+HPLandroid/content/pm/dex/DexMetadataHelper;->findDexMetadataForFile(Ljava/io/File;)Ljava/io/File;
+HSPLandroid/content/pm/dex/DexMetadataHelper;->getPackageDexMetadataSize(Landroid/content/pm/PackageParser$PackageLite;)J
+HSPLandroid/content/pm/dex/IArtManager$Stub;-><init>()V
+PLandroid/content/pm/dex/IArtManager$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/content/pm/dex/IArtManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;->onSuccess(Landroid/os/ParcelFileDescriptor;)V
+HPLandroid/content/pm/dex/PackageOptimizationInfo;-><init>(II)V
+HPLandroid/content/pm/dex/PackageOptimizationInfo;->getCompilationFilter()I
+HPLandroid/content/pm/dex/PackageOptimizationInfo;->getCompilationReason()I
+HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseApkLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$ApkLite;
+HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseApkLite(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/PackageParser$ApkLite;
+HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseApkLiteInner(Ljava/io/File;Ljava/io/FileDescriptor;Ljava/lang/String;I)Landroid/content/pm/PackageParser$ApkLite;
+HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseClusterPackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
+HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseMonolithicPackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;-><init>()V
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;->getResultAndNull()Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;->isSuccess()Z
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;->reset()Landroid/content/pm/parsing/ApkParseUtils$ParseInput;
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;->success(Landroid/content/pm/parsing/ParsingPackage;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;)Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->checkOverlayRequiredSystemProperty(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->collectCertificates(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->convertNewPermissions(Landroid/content/pm/parsing/ParsingPackage;)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->convertSplitPermissions(Landroid/content/pm/parsing/ParsingPackage;)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->generateAppDetailsHiddenActivity(Landroid/content/pm/parsing/ParsingPackage;[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->hasDomainURLs(Landroid/content/pm/parsing/ParsingPackage;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseAdditionalCertificates(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)[Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseBaseApk(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Landroid/util/DisplayMetrics;Ljava/io/File;Landroid/content/res/AssetManager;I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseBaseApk(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Ljava/lang/String;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseBaseApkTags(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/TypedArray;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseBaseApplication(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseClusterPackage(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Landroid/util/DisplayMetrics;ZLjava/io/File;I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseFeatureInfo(Landroid/content/res/Resources;Landroid/util/AttributeSet;)Landroid/content/pm/FeatureInfo;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseManifestAttributes(Landroid/content/res/TypedArray;Landroid/content/pm/parsing/ParsingPackage;I)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseMetaData(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/os/Bundle;[Ljava/lang/String;)Landroid/os/Bundle;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseMonolithicPackage(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Landroid/util/DisplayMetrics;ZLjava/io/File;I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseOriginalPackage(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseOverlay(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parsePackage(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Landroid/util/DisplayMetrics;ZLjava/io/File;I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parsePackageItemInfo(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Ljava/lang/String;Landroid/content/res/TypedArray;ZIIIIII)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parsePermission(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parsePermissionGroup(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parsePermissionTree(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseProtectedBroadcast(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseQueries(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseRestrictUpdateHash(ILandroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseSharedUser(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/TypedArray;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseSplitApk(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/util/DisplayMetrics;[Ljava/lang/String;Landroid/content/pm/parsing/ParsingPackage;ILandroid/content/res/AssetManager;I)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseSplitApk(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;II[Ljava/lang/String;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseSplitApplication(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;II[Ljava/lang/String;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseSupportScreens(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseUnknownTag(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseUsesPermission(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/content/pm/PackageParser$Callback;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseUsesSdk(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseUsesStaticLibrary(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->setMaxAspectRatio(Landroid/content/pm/parsing/ParsingPackage;)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->setMinAspectRatio(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/pm/PackageParser$Callback;)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->validateName(Ljava/lang/String;ZZ)Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->addIntent(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->hasMaxAspectRatio()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->hasMinAspectRatio()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->setMaxAspectRatio(IF)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->setMinAspectRatio(IF)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->setPackageName(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->getComponentName()Landroid/content/ComponentName;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->getName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->getSplitName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->isDirectBootAware()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->isEnabled()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->setEnabled(Z)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->setPackageName(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->setPackageNameInternal(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->setSplitName(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedFeature$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedFeature;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedFeature;->isCombinationValid(Ljava/util/List;)Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;->addRawDataType(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;->createIntentsList(Landroid/os/Parcel;)Ljava/util/ArrayList;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;->getClassName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;->writeIntentInfoToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;->writeIntentsList(Ljava/util/List;Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;->getPermission()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;->getProcessName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;->setPermission(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;->setProcessName(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;-><init>(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->getGroup()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->getProtection()I
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->getProtectionFlags()I
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->isRuntime()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->setGroup(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->setName(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->getAuthority()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->getIntents()Ljava/util/List;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->getReadPermission()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->getWritePermission()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->isSyncable()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->setAuthority(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->setReadPermission(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->setWritePermission(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedService$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedService;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedService;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedService;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->getActivityResizeMode(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/TypedArray;I)I
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->isImplicitlyExposedIntent(Landroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;)Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseActivity([Ljava/lang/String;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;ZZ)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseActivityAlias(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseAllMetaData(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Ljava/lang/String;Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;[Ljava/lang/String;)Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseIntentInfo(Landroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZZ[Ljava/lang/String;)Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseLayout(Landroid/content/res/Resources;Landroid/util/AttributeSet;)Landroid/content/pm/ActivityInfo$WindowLayout;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parsePermission(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parsePermissionGroup(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parsePermissionTree(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseProvider([Ljava/lang/String;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseProviderTags(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;[Ljava/lang/String;)Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseService([Ljava/lang/String;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;
+HSPLandroid/content/pm/parsing/PackageImpl$1;-><init>()V
+HSPLandroid/content/pm/parsing/PackageImpl;-><clinit>()V
+HSPLandroid/content/pm/parsing/PackageImpl;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/PackageImpl;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;Z)V
+HSPLandroid/content/pm/parsing/PackageImpl;->addActivity(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addAdoptPermission(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addAdoptPermission(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addConfigPreference(Landroid/content/pm/ConfigurationInfo;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addConfigPreference(Landroid/content/pm/ConfigurationInfo;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addImplicitPermission(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addImplicitPermission(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addLibraryName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addLibraryName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addOriginalPackage(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addOriginalPackage(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addPermission(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addPermission(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addPermissionGroup(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addPermissionGroup(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addProtectedBroadcast(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addProtectedBroadcast(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addProvider(Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addQueriesPackage(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addQueriesPackage(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addReceiver(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addReqFeature(Landroid/content/pm/FeatureInfo;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addReqFeature(Landroid/content/pm/FeatureInfo;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addRequestedPermission(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addRequestedPermission(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addService(Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesLibrary(ILjava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesLibrary(ILjava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesOptionalLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesOptionalLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesStaticLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesStaticLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesStaticLibraryCertDigests([Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesStaticLibraryCertDigests([Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesStaticLibraryVersion(J)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesStaticLibraryVersion(J)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->asSplit([Ljava/lang/String;[Ljava/lang/String;[ILandroid/util/SparseArray;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->asSplit([Ljava/lang/String;[Ljava/lang/String;[ILandroid/util/SparseArray;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->canHaveOatDir()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->cantSaveState()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->capPermissionPriorities()Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->clearAdoptPermissions()Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->clearOriginalPackages()Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->clearProtectedBroadcasts()Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->forParsing(Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->getActivities()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAdoptPermissions()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAllCodePaths()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAppInfoClassLoaderName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAppInfoCodePath()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAppInfoPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAppInfoProcessName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAppInfoResourcePath()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAppMetaData()Landroid/os/Bundle;
+HSPLandroid/content/pm/parsing/PackageImpl;->getApplicationInfoVolumeUuid()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getBaseCodePath()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getBaseRevisionCode()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getCodePath()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getCompileSdkVersion()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getCompileSdkVersionCodeName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getCpuAbiOverride()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getDataDir()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getFeatures()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getFlags()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getHiddenApiEnforcementPolicy()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getImplicitPermissions()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getInstallLocation()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getInstrumentations()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getKeySetMapping()Ljava/util/Map;
+HSPLandroid/content/pm/parsing/PackageImpl;->getLatestForegroundPackageUseTimeInMills()J
+HSPLandroid/content/pm/parsing/PackageImpl;->getLibraryNames()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getLongVersionCode()J
+HSPLandroid/content/pm/parsing/PackageImpl;->getManifestPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getMaxAspectRatio()F
+HSPLandroid/content/pm/parsing/PackageImpl;->getMinAspectRatio()F
+HSPLandroid/content/pm/parsing/PackageImpl;->getName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getNativeLibraryDir()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getNativeLibraryRootDir()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getOriginalPackages()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getOverlayCategory()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getOverlayPriority()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getOverlayTarget()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getOverlayTargetName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getOverlayables()Ljava/util/Map;
+HSPLandroid/content/pm/parsing/PackageImpl;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getPermission()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getPermissionGroups()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getPermissions()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getPreferredOrder()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getPrimaryCpuAbi()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getPrivateFlags()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getProcessName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getProtectedBroadcasts()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getProviders()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getQueriesIntents()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getQueriesPackages()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getRealPackage()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getReceivers()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getRequestedPermissions()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getRequiredAccountType()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getRestrictedAccountType()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSeInfo()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSeInfoUser()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSecondaryCpuAbi()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getServices()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSharedUserId()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSharedUserLabel()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getSigningDetails()Landroid/content/pm/PackageParser$SigningDetails;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSplitCodePaths()[Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSplitDependencies()Landroid/util/SparseArray;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSplitFlags()[I
+HSPLandroid/content/pm/parsing/PackageImpl;->getSplitNames()[Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSplitRevisionCodes()[I
+HSPLandroid/content/pm/parsing/PackageImpl;->getStaticSharedLibName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getStaticSharedLibVersion()J
+HSPLandroid/content/pm/parsing/PackageImpl;->getTargetSdkVersion()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getTaskAffinity()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUiOptions()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getUid()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getUpgradeKeySets()Ljava/util/Set;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesLibraries()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesLibraryFiles()[Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesLibraryInfos()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesOptionalLibraries()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesStaticLibraries()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesStaticLibrariesCertDigests()[[Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesStaticLibrariesVersions()[J
+HSPLandroid/content/pm/parsing/PackageImpl;->getVersionCode()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getVersionCodeMajor()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getVersionName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getVolumeUuid()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->hasComponentClassName(Ljava/lang/String;)Z
+HSPLandroid/content/pm/parsing/PackageImpl;->hideAsFinal()Landroid/content/pm/parsing/AndroidPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->hideAsParsed()Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->initForUser(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->initForUser(I)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->internStringArrayList(Ljava/util/List;)V
+HSPLandroid/content/pm/parsing/PackageImpl;->isAllowedToUseHiddenApis()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isBaseHardwareAccelerated()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isCoreApp()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isDirectBootAware()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isEmbeddedDexUsed()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isEnabled()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isEncryptionAware()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isExternal()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isForceQueryable()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isHiddenUntilInstalled()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isInstantApp()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isLibrary()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isMatch(I)Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isOverlayIsStatic()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isPackageWhitelistedForHiddenApis()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isPrivileged()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isProduct()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isProfileableByShell()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isRequiredForAllUsers()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isSignedWithPlatformKey()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isStaticSharedLibrary()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isStub()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isSystem()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isSystemApp()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isSystemExt()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isUpdatedSystemApp()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isVendor()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->makeListAllCodePaths()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->markNotActivitiesAsNotExportedIfSingleUser()Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->mutate()Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->removeUsesLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->removeUsesOptionalLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->removeUsesOptionalLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->requestsIsolatedSplitLoading()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->setActivitiesResizeModeResizeable(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setActivitiesResizeModeResizeable(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setActivitiesResizeModeResizeableViaSdkVersion(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setActivitiesResizeModeResizeableViaSdkVersion(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllComponentsDirectBootAware(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllComponentsDirectBootAware(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowAudioPlaybackCapture(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowAudioPlaybackCapture(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowBackup(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowBackup(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowClearUserData(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowClearUserData(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowClearUserDataOnFailedRestore(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowClearUserDataOnFailedRestore(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowTaskReparenting(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowTaskReparenting(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAnyDensity(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAnyDensity(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAppComponentFactory(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAppComponentFactory(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAppMetaData(Landroid/os/Bundle;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAppMetaData(Landroid/os/Bundle;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoBaseResourcePath(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoBaseResourcePath(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoCodePath(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoCodePath(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoResourcePath(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoResourcePath(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoSplitResourcePaths([Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoSplitResourcePaths([Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationVolumeUuid(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationVolumeUuid(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationVolumeUuid(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBackupAgentName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBackupAgentName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBackupInForeground(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBackupInForeground(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBanner(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBanner(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBaseHardwareAccelerated(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBaseHardwareAccelerated(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCantSaveState(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCantSaveState(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCategory(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCategory(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setClassLoaderName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setClassLoaderName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setClassName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setClassName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCodePath(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCodePath(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCompatibleWidthLimitDp(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCompatibleWidthLimitDp(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCompileSdkVersionCodename(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCoreApp(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCoreApp(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCpuAbiOverride(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCpuAbiOverride(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCrossProfile(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCrossProfile(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDebuggable(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDebuggable(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDefaultToDeviceProtectedStorage(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDefaultToDeviceProtectedStorage(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDefaultToDeviceProtectedStorage(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDescriptionRes(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDescriptionRes(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDirectBootAware(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDirectBootAware(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDirectBootAware(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setEnabled(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setEnabled(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setExternalStorage(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setExternalStorage(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setExtractNativeLibs(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setExtractNativeLibs(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setFactoryTest(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setForceQueryable(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setForceQueryable(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setFullBackupContent(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setFullBackupContent(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setFullBackupOnly(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setFullBackupOnly(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHasCode(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHasCode(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHasDomainUrls(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHasDomainUrls(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHasFragileUserData(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHasFragileUserData(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHiddenUntilInstalled(Z)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHiddenUntilInstalled(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIcon(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIcon(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIconRes(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIconRes(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setInstallLocation(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setInstallLocation(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsGame(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsGame(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsOverlay(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsOverlay(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsStub(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsStub(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsolatedSplitLoading(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsolatedSplitLoading(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setKillAfterRestore(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setKillAfterRestore(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLabelRes(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLabelRes(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLargeHeap(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLargeHeap(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLargestWidthLimitDp(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLargestWidthLimitDp(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLastPackageUsageTimeInMills(IJ)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLastPackageUsageTimeInMills(IJ)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLogo(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLogo(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setManageSpaceActivityName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setManageSpaceActivityName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMaxAspectRatio(F)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMaxAspectRatio(F)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMinAspectRatio(F)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMinAspectRatio(F)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMinSdkVersion(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMinSdkVersion(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMultiArch(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMultiArch(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNativeLibraryDir(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNativeLibraryDir(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNativeLibraryRootDir(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNativeLibraryRootDir(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNativeLibraryRootRequiresIsa(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNativeLibraryRootRequiresIsa(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNetworkSecurityConfigRes(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNetworkSecurityConfigRes(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNonLocalizedLabel(Ljava/lang/CharSequence;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNonLocalizedLabel(Ljava/lang/CharSequence;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOdm(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOem(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayCategory(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayCategory(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayIsStatic(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayIsStatic(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayPriority(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayPriority(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayTarget(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayTarget(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayTargetName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayTargetName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPackageName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPackageName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPackageSettingCallback(Landroid/content/pm/parsing/ParsedPackage$PackageSettingCallback;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPackageSettingCallback(Landroid/content/pm/parsing/ParsedPackage$PackageSettingCallback;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPartiallyDirectBootAware(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPartiallyDirectBootAware(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPermission(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPermission(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPersistent(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPersistent(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPersistent(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPrimaryCpuAbi(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPrimaryCpuAbi(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPrivileged(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setProcessName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setProcessName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setProcessName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setProduct(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRealPackage(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRealPackage(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRealPackage(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequestLegacyExternalStorage(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequestLegacyExternalStorage(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequiredAccountType(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequiredAccountType(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequiredForAllUsers(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequiredForAllUsers(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequiresSmallestWidthDp(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequiresSmallestWidthDp(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setResizeable(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setResizeable(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRestoreAnyVersion(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRestoreAnyVersion(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRestrictUpdateHash([B)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRestrictUpdateHash([B)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRestrictedAccountType(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRestrictedAccountType(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRoundIconRes(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRoundIconRes(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSeInfo(Ljava/lang/String;)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSeInfo(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSeInfo(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSeInfoUser(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSeInfoUser(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSecondaryCpuAbi(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSecondaryCpuAbi(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSecondaryNativeLibraryDir(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSecondaryNativeLibraryDir(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSharedUserId(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSharedUserId(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSharedUserLabel(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSharedUserLabel(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSignedWithPlatformKey(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSplitClassLoaderName(ILjava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSplitClassLoaderName(ILjava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSplitHasCode(IZ)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSplitHasCode(IZ)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setStaticSharedLibName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setStaticSharedLibName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setStaticSharedLibVersion(J)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setStaticSharedLibVersion(J)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setStaticSharedLibrary(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setStaticSharedLibrary(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsLargeScreens(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsLargeScreens(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsNormalScreens(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsNormalScreens(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsRtl(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsRtl(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsSmallScreens(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsSmallScreens(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsXLargeScreens(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsXLargeScreens(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSystem(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSystem(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSystemExt(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSystemExt(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTargetSandboxVersion(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTargetSandboxVersion(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTargetSdkVersion(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTargetSdkVersion(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTaskAffinity(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTaskAffinity(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTestOnly(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTestOnly(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTheme(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTheme(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUiOptions(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUiOptions(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUid(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUid(I)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUpdatedSystemApp(Z)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUpdatedSystemApp(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUse32BitAbi(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUse32BitAbi(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUseEmbeddedDex(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUseEmbeddedDex(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesCleartextTraffic(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesCleartextTraffic(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesLibraryFiles([Ljava/lang/String;)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesLibraryFiles([Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesLibraryInfos(Ljava/util/List;)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesLibraryInfos(Ljava/util/List;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesNonSdkApi(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesNonSdkApi(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVendor(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVersionCode(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVersionCode(I)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVersionCodeMajor(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVersionCodeMajor(I)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVersionName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVisibleToInstantApps(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVisibleToInstantApps(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVmSafeMode(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVmSafeMode(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVolumeUuid(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVolumeUuid(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setZygotePreloadName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setZygotePreloadName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->toAppInfoWithoutState()Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/parsing/PackageImpl;->updateFlags()V
+HSPLandroid/content/pm/parsing/PackageImpl;->usesCompatibilityMode()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->usesNonSdkApi()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->assignSharedFieldsForComponentInfo(Landroid/content/pm/ComponentInfo;Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;)V
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->assignSharedFieldsForPackageItemInfo(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;)V
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->checkUseInstalledOrHidden(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/PackageUserState;I)Z
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generate(Landroid/content/pm/parsing/AndroidPackage;[IIJJLjava/util/Set;Landroid/content/pm/PackageUserState;I)Landroid/content/pm/PackageInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateActivityInfo(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ActivityInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateActivityInfo(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ActivityInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateApplicationInfo(Landroid/content/pm/parsing/AndroidPackage;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ApplicationInfo;
+HPLandroid/content/pm/parsing/PackageInfoUtils;->generatePermissionGroupInfo(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;I)Landroid/content/pm/PermissionGroupInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generatePermissionInfo(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;I)Landroid/content/pm/PermissionInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateProviderInfo(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ProviderInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateProviderInfo(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ProviderInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateServiceInfo(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ServiceInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateServiceInfo(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ServiceInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->updateApplicationInfo(Landroid/content/pm/ApplicationInfo;ILandroid/content/pm/PackageUserState;)V
+HSPLandroid/content/pm/parsing/library/AndroidHidlUpdater;->updatePackage(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLandroid/content/pm/parsing/library/AndroidTestBaseUpdater;->isChangeEnabled(Landroid/content/pm/parsing/AndroidPackage;)Z
+HSPLandroid/content/pm/parsing/library/AndroidTestBaseUpdater;->updatePackage(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLandroid/content/pm/parsing/library/OrgApacheHttpLegacyUpdater;->apkTargetsApiLevelLessThanOrEqualToOMR1(Landroid/content/pm/parsing/AndroidPackage;)Z
+HSPLandroid/content/pm/parsing/library/OrgApacheHttpLegacyUpdater;->updatePackage(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLandroid/content/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;->updatePackage(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLandroid/content/pm/parsing/library/PackageBackwardCompatibility;->modifySharedLibraries(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLandroid/content/pm/parsing/library/PackageBackwardCompatibility;->updatePackage(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLandroid/content/pm/parsing/library/PackageSharedLibraryUpdater;->isLibraryPresent(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)Z
+HSPLandroid/content/pm/parsing/library/PackageSharedLibraryUpdater;->prefixImplicitDependency(Landroid/content/pm/parsing/ParsedPackage;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/library/PackageSharedLibraryUpdater;->prefixRequiredLibrary(Landroid/content/pm/parsing/ParsedPackage;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/library/PackageSharedLibraryUpdater;->removeLibrary(Landroid/content/pm/parsing/ParsedPackage;Ljava/lang/String;)V
+HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable$1;-><init>()V
+HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/permission/SplitPermissionInfoParcelable;
+HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;-><clinit>()V
 HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;-><init>(Ljava/lang/String;Ljava/util/List;I)V
+HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getNewPermissions()Ljava/util/List;
+HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getSplitPermission()Ljava/lang/String;
+HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getTargetSdk()I
 HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->onConstructed()V
+HPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/split/DefaultSplitAssetLoader;-><init>(Landroid/content/pm/PackageParser$PackageLite;I)V
+HSPLandroid/content/pm/split/DefaultSplitAssetLoader;->close()V
+HSPLandroid/content/pm/split/DefaultSplitAssetLoader;->getBaseAssetManager()Landroid/content/res/AssetManager;
+HSPLandroid/content/pm/split/DefaultSplitAssetLoader;->getSplitAssetManager(I)Landroid/content/res/AssetManager;
+HSPLandroid/content/pm/split/DefaultSplitAssetLoader;->loadApkAssets(Ljava/lang/String;I)Landroid/content/res/ApkAssets;
 HSPLandroid/content/res/-$$Lambda$Resources$4msWUw7LKsgLexLZjIfWa4oguq4;->test(Ljava/lang/Object;)Z
 HSPLandroid/content/res/-$$Lambda$ResourcesImpl$99dm2ENnzo9b0SIUjUj2Kl3pi90;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
 HSPLandroid/content/res/-$$Lambda$ResourcesImpl$h3PTRX185BeQl8SVC2_w9arp5Og;->get()Ljava/lang/Object;
 HSPLandroid/content/res/ApkAssets;-><init>(Ljava/lang/String;ZZZZZ)V
 HSPLandroid/content/res/ApkAssets;->close()V
+HSPLandroid/content/res/ApkAssets;->definesOverlayable()Z
 HSPLandroid/content/res/ApkAssets;->finalize()V
 HSPLandroid/content/res/ApkAssets;->getAssetPath()Ljava/lang/String;
 HSPLandroid/content/res/ApkAssets;->getStringFromPool(I)Ljava/lang/CharSequence;
 HSPLandroid/content/res/ApkAssets;->isForLoader()Z
 HSPLandroid/content/res/ApkAssets;->isUpToDate()Z
+HSPLandroid/content/res/ApkAssets;->loadFromPath(Ljava/lang/String;)Landroid/content/res/ApkAssets;
 HSPLandroid/content/res/ApkAssets;->loadFromPath(Ljava/lang/String;Z)Landroid/content/res/ApkAssets;
 HSPLandroid/content/res/ApkAssets;->loadFromPath(Ljava/lang/String;ZZ)Landroid/content/res/ApkAssets;
 HSPLandroid/content/res/ApkAssets;->loadOverlayFromPath(Ljava/lang/String;Z)Landroid/content/res/ApkAssets;
+HSPLandroid/content/res/ApkAssets;->openXml(Ljava/lang/String;)Landroid/content/res/XmlResourceParser;
 HSPLandroid/content/res/AssetFileDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/res/AssetFileDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/res/AssetFileDescriptor$AutoCloseInputStream;-><init>(Landroid/content/res/AssetFileDescriptor;)V
 HSPLandroid/content/res/AssetFileDescriptor;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/res/AssetFileDescriptor;-><init>(Landroid/os/ParcelFileDescriptor;JJ)V
 HSPLandroid/content/res/AssetFileDescriptor;-><init>(Landroid/os/ParcelFileDescriptor;JJLandroid/os/Bundle;)V
@@ -3260,12 +7747,15 @@
 HSPLandroid/content/res/AssetManager$AssetInputStream;->ensureOpen()V
 HSPLandroid/content/res/AssetManager$AssetInputStream;->finalize()V
 HSPLandroid/content/res/AssetManager$AssetInputStream;->getNativeAsset()J
+HSPLandroid/content/res/AssetManager$AssetInputStream;->mark(I)V
+HSPLandroid/content/res/AssetManager$AssetInputStream;->markSupported()Z
 HSPLandroid/content/res/AssetManager$AssetInputStream;->read()I
 HSPLandroid/content/res/AssetManager$AssetInputStream;->read([B)I
 HSPLandroid/content/res/AssetManager$AssetInputStream;->read([BII)I
 HSPLandroid/content/res/AssetManager$Builder;-><init>()V
 HSPLandroid/content/res/AssetManager$Builder;->addApkAssets(Landroid/content/res/ApkAssets;)Landroid/content/res/AssetManager$Builder;
 HSPLandroid/content/res/AssetManager$Builder;->build()Landroid/content/res/AssetManager;
+HSPLandroid/content/res/AssetManager;-><init>()V
 HSPLandroid/content/res/AssetManager;-><init>(Z)V
 HSPLandroid/content/res/AssetManager;-><init>(ZLandroid/content/res/AssetManager$1;)V
 HSPLandroid/content/res/AssetManager;->access$1000(J)J
@@ -3278,20 +7768,26 @@
 HSPLandroid/content/res/AssetManager;->access$300(J[Landroid/content/res/ApkAssets;Z)V
 HSPLandroid/content/res/AssetManager;->access$402(Landroid/content/res/AssetManager;[Landroid/content/res/loader/ResourcesLoader;)[Landroid/content/res/loader/ResourcesLoader;
 HSPLandroid/content/res/AssetManager;->access$500(J)J
+HSPLandroid/content/res/AssetManager;->access$600(J)I
 HSPLandroid/content/res/AssetManager;->access$600(J)J
+HSPLandroid/content/res/AssetManager;->access$700(J)I
 HSPLandroid/content/res/AssetManager;->access$700(J[BII)I
 HSPLandroid/content/res/AssetManager;->access$800(J[BII)I
 HSPLandroid/content/res/AssetManager;->access$900(J)J
+HSPLandroid/content/res/AssetManager;->access$900(JJI)J
+HSPLandroid/content/res/AssetManager;->addAssetPath(Ljava/lang/String;)I
 HSPLandroid/content/res/AssetManager;->addAssetPathAsSharedLibrary(Ljava/lang/String;)I
 HSPLandroid/content/res/AssetManager;->addAssetPathInternal(Ljava/lang/String;ZZ)I
 HSPLandroid/content/res/AssetManager;->applyStyle(JIILandroid/content/res/XmlBlock$Parser;[IJJ)V
 HSPLandroid/content/res/AssetManager;->applyStyleToTheme(JIZ)V
+HSPLandroid/content/res/AssetManager;->close()V
 HSPLandroid/content/res/AssetManager;->createSystemAssetsInZygoteLocked(ZLjava/lang/String;)V
 HSPLandroid/content/res/AssetManager;->createTheme()J
 HSPLandroid/content/res/AssetManager;->decRefsLocked(J)V
 HSPLandroid/content/res/AssetManager;->ensureOpenLocked()V
 HSPLandroid/content/res/AssetManager;->ensureValidLocked()V
 HSPLandroid/content/res/AssetManager;->finalize()V
+HSPLandroid/content/res/AssetManager;->findCookieForPath(Ljava/lang/String;)I
 HSPLandroid/content/res/AssetManager;->getApkAssets()[Landroid/content/res/ApkAssets;
 HSPLandroid/content/res/AssetManager;->getAssignedPackageIdentifiers()Landroid/util/SparseArray;
 HSPLandroid/content/res/AssetManager;->getAssignedPackageIdentifiers(ZZ)Landroid/util/SparseArray;
@@ -3309,6 +7805,7 @@
 HSPLandroid/content/res/AssetManager;->getResourcePackageName(I)Ljava/lang/String;
 HSPLandroid/content/res/AssetManager;->getResourceStringArray(I)[Ljava/lang/String;
 HSPLandroid/content/res/AssetManager;->getResourceText(I)Ljava/lang/CharSequence;
+HSPLandroid/content/res/AssetManager;->getResourceTextArray(I)[Ljava/lang/CharSequence;
 HSPLandroid/content/res/AssetManager;->getResourceTypeName(I)Ljava/lang/String;
 HSPLandroid/content/res/AssetManager;->getResourceValue(IILandroid/util/TypedValue;Z)Z
 HSPLandroid/content/res/AssetManager;->getSizeConfigurations()[Landroid/content/res/Configuration;
@@ -3320,10 +7817,12 @@
 HSPLandroid/content/res/AssetManager;->list(Ljava/lang/String;)[Ljava/lang/String;
 HSPLandroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
 HSPLandroid/content/res/AssetManager;->open(Ljava/lang/String;I)Ljava/io/InputStream;
+HSPLandroid/content/res/AssetManager;->openFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/res/AssetManager;->openNonAsset(ILjava/lang/String;I)Ljava/io/InputStream;
 HSPLandroid/content/res/AssetManager;->openNonAssetFd(ILjava/lang/String;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/res/AssetManager;->openNonAssetFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
 HSPLandroid/content/res/AssetManager;->openXmlBlockAsset(ILjava/lang/String;)Landroid/content/res/XmlBlock;
+HSPLandroid/content/res/AssetManager;->openXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser;
 HSPLandroid/content/res/AssetManager;->releaseTheme(J)V
 HSPLandroid/content/res/AssetManager;->resolveAttrs(JII[I[I[I[I)Z
 HSPLandroid/content/res/AssetManager;->retrieveAttributes(Landroid/content/res/XmlBlock$Parser;[I[I[I)Z
@@ -3356,20 +7855,26 @@
 HSPLandroid/content/res/ColorStateList;->isStateful()Z
 HSPLandroid/content/res/ColorStateList;->modulateColorAlpha(IF)I
 HSPLandroid/content/res/ColorStateList;->obtainForTheme(Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
+HSPLandroid/content/res/ColorStateList;->obtainForTheme(Landroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;
 HSPLandroid/content/res/ColorStateList;->onColorsChanged()V
 HSPLandroid/content/res/ColorStateList;->valueOf(I)Landroid/content/res/ColorStateList;
+HSPLandroid/content/res/ColorStateList;->withAlpha(I)Landroid/content/res/ColorStateList;
+HSPLandroid/content/res/ColorStateList;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/res/CompatibilityInfo$2;->createFromParcel(Landroid/os/Parcel;)Landroid/content/res/CompatibilityInfo;
 HSPLandroid/content/res/CompatibilityInfo$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/res/CompatibilityInfo;-><init>(Landroid/content/pm/ApplicationInfo;IIZ)V
 HSPLandroid/content/res/CompatibilityInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/content/res/CompatibilityInfo;-><init>(Landroid/os/Parcel;Landroid/content/res/CompatibilityInfo$1;)V
 HSPLandroid/content/res/CompatibilityInfo;->applyToConfiguration(ILandroid/content/res/Configuration;)V
 HSPLandroid/content/res/CompatibilityInfo;->applyToDisplayMetrics(Landroid/util/DisplayMetrics;)V
+HSPLandroid/content/res/CompatibilityInfo;->computeCompatibleScaling(Landroid/util/DisplayMetrics;Landroid/util/DisplayMetrics;)F
 HSPLandroid/content/res/CompatibilityInfo;->equals(Ljava/lang/Object;)Z
 HSPLandroid/content/res/CompatibilityInfo;->getTranslator()Landroid/content/res/CompatibilityInfo$Translator;
 HSPLandroid/content/res/CompatibilityInfo;->hashCode()I
 HSPLandroid/content/res/CompatibilityInfo;->isScalingRequired()Z
 HSPLandroid/content/res/CompatibilityInfo;->needsCompatResources()Z
 HSPLandroid/content/res/CompatibilityInfo;->supportsScreen()Z
+HSPLandroid/content/res/CompatibilityInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/content/res/ComplexColor;-><init>()V
 HSPLandroid/content/res/ComplexColor;->getChangingConfigurations()I
 HSPLandroid/content/res/ComplexColor;->setBaseChangingConfigurations(I)V
@@ -3383,6 +7888,9 @@
 HSPLandroid/content/res/Configuration;->diff(Landroid/content/res/Configuration;)I
 HSPLandroid/content/res/Configuration;->diff(Landroid/content/res/Configuration;ZZ)I
 HSPLandroid/content/res/Configuration;->diffPublicOnly(Landroid/content/res/Configuration;)I
+HPLandroid/content/res/Configuration;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/content/res/Configuration;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JZ)V
+HSPLandroid/content/res/Configuration;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JZZ)V
 HSPLandroid/content/res/Configuration;->equals(Landroid/content/res/Configuration;)Z
 HSPLandroid/content/res/Configuration;->equals(Ljava/lang/Object;)Z
 HSPLandroid/content/res/Configuration;->fixUpLocaleList()V
@@ -3397,10 +7905,15 @@
 HSPLandroid/content/res/Configuration;->isScreenWideColorGamut()Z
 HSPLandroid/content/res/Configuration;->needNewResources(II)Z
 HSPLandroid/content/res/Configuration;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/content/res/Configuration;->readFromProto(Landroid/util/proto/ProtoInputStream;J)V
+HSPLandroid/content/res/Configuration;->reduceScreenLayout(III)I
+HSPLandroid/content/res/Configuration;->resetScreenLayout(I)I
 HSPLandroid/content/res/Configuration;->setLayoutDirection(Ljava/util/Locale;)V
+HSPLandroid/content/res/Configuration;->setLocale(Ljava/util/Locale;)V
 HSPLandroid/content/res/Configuration;->setLocales(Landroid/os/LocaleList;)V
 HSPLandroid/content/res/Configuration;->setTo(Landroid/content/res/Configuration;)V
 HSPLandroid/content/res/Configuration;->setToDefaults()V
+HSPLandroid/content/res/Configuration;->toString()Ljava/lang/String;
 HSPLandroid/content/res/Configuration;->unset()V
 HSPLandroid/content/res/Configuration;->updateFrom(Landroid/content/res/Configuration;)I
 HSPLandroid/content/res/Configuration;->writeToParcel(Landroid/os/Parcel;I)V
@@ -3420,9 +7933,26 @@
 HSPLandroid/content/res/DrawableCache;->shouldInvalidateEntry(Landroid/graphics/drawable/Drawable$ConstantState;I)Z
 HSPLandroid/content/res/DrawableCache;->shouldInvalidateEntry(Ljava/lang/Object;I)Z
 HSPLandroid/content/res/FontResourcesParser$ProviderResourceEntry;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
+HSPLandroid/content/res/FontResourcesParser$ProviderResourceEntry;->getAuthority()Ljava/lang/String;
+HSPLandroid/content/res/FontResourcesParser$ProviderResourceEntry;->getCerts()Ljava/util/List;
+HSPLandroid/content/res/FontResourcesParser$ProviderResourceEntry;->getPackage()Ljava/lang/String;
+HSPLandroid/content/res/FontResourcesParser$ProviderResourceEntry;->getQuery()Ljava/lang/String;
 HSPLandroid/content/res/FontResourcesParser;->parse(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;
 HSPLandroid/content/res/FontResourcesParser;->readFamilies(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;
 HSPLandroid/content/res/FontResourcesParser;->readFamily(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;
+HSPLandroid/content/res/GradientColor$GradientColorFactory;-><init>(Landroid/content/res/GradientColor;)V
+HSPLandroid/content/res/GradientColor;-><init>()V
+HSPLandroid/content/res/GradientColor;->canApplyTheme()Z
+HSPLandroid/content/res/GradientColor;->createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/content/res/GradientColor;
+HSPLandroid/content/res/GradientColor;->getConstantState()Landroid/content/res/ConstantState;
+HSPLandroid/content/res/GradientColor;->getDefaultColor()I
+HSPLandroid/content/res/GradientColor;->getShader()Landroid/graphics/Shader;
+HSPLandroid/content/res/GradientColor;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/content/res/GradientColor;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/content/res/GradientColor;->onColorsChange()V
+HSPLandroid/content/res/GradientColor;->parseTileMode(I)Landroid/graphics/Shader$TileMode;
+HSPLandroid/content/res/GradientColor;->updateRootElementState(Landroid/content/res/TypedArray;)V
+HSPLandroid/content/res/GradientColor;->validateXmlContent()V
 HSPLandroid/content/res/ResourceId;->isValid(I)Z
 HSPLandroid/content/res/Resources$NotFoundException;-><init>(Ljava/lang/String;)V
 HSPLandroid/content/res/Resources$Theme;-><init>(Landroid/content/res/Resources;)V
@@ -3434,6 +7964,7 @@
 HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes(I[I)Landroid/content/res/TypedArray;
 HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;
 HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;
+HSPLandroid/content/res/Resources$Theme;->rebase()V
 HSPLandroid/content/res/Resources$Theme;->resolveAttribute(ILandroid/util/TypedValue;Z)Z
 HSPLandroid/content/res/Resources$Theme;->resolveAttributes([I[I)Landroid/content/res/TypedArray;
 HSPLandroid/content/res/Resources$Theme;->setImpl(Landroid/content/res/ResourcesImpl$ThemeImpl;)V
@@ -3447,6 +7978,8 @@
 HSPLandroid/content/res/Resources;-><init>()V
 HSPLandroid/content/res/Resources;-><init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;)V
 HSPLandroid/content/res/Resources;-><init>(Ljava/lang/ClassLoader;)V
+HSPLandroid/content/res/Resources;->addLoaders([Landroid/content/res/loader/ResourcesLoader;)V
+HSPLandroid/content/res/Resources;->checkCallbacksRegistered()V
 HSPLandroid/content/res/Resources;->findLoader(I)Landroid/content/res/loader/ResourceLoader;
 HSPLandroid/content/res/Resources;->finishPreloading()V
 HSPLandroid/content/res/Resources;->getAnimation(I)Landroid/content/res/XmlResourceParser;
@@ -3454,8 +7987,10 @@
 HSPLandroid/content/res/Resources;->getAssets()Landroid/content/res/AssetManager;
 HSPLandroid/content/res/Resources;->getAttributeSetSourceResId(Landroid/util/AttributeSet;)I
 HSPLandroid/content/res/Resources;->getBoolean(I)Z
+HSPLandroid/content/res/Resources;->getClassLoader()Ljava/lang/ClassLoader;
 HSPLandroid/content/res/Resources;->getColor(I)I
 HSPLandroid/content/res/Resources;->getColor(ILandroid/content/res/Resources$Theme;)I
+HSPLandroid/content/res/Resources;->getColorStateList(I)Landroid/content/res/ColorStateList;
 HSPLandroid/content/res/Resources;->getColorStateList(ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
 HSPLandroid/content/res/Resources;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo;
 HSPLandroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration;
@@ -3466,6 +8001,7 @@
 HSPLandroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
 HSPLandroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable;
 HSPLandroid/content/res/Resources;->getDrawable(ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/content/res/Resources;->getDrawableForDensity(II)Landroid/graphics/drawable/Drawable;
 HSPLandroid/content/res/Resources;->getDrawableForDensity(IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/content/res/Resources;->getDrawableInflater()Landroid/graphics/drawable/DrawableInflater;
 HSPLandroid/content/res/Resources;->getFloat(I)F
@@ -3477,6 +8013,7 @@
 HSPLandroid/content/res/Resources;->getInteger(I)I
 HSPLandroid/content/res/Resources;->getLayout(I)Landroid/content/res/XmlResourceParser;
 HSPLandroid/content/res/Resources;->getLoaders()Ljava/util/List;
+HSPLandroid/content/res/Resources;->getQuantityString(II)Ljava/lang/String;
 HSPLandroid/content/res/Resources;->getQuantityString(II[Ljava/lang/Object;)Ljava/lang/String;
 HSPLandroid/content/res/Resources;->getQuantityText(II)Ljava/lang/CharSequence;
 HSPLandroid/content/res/Resources;->getResourceEntryName(I)Ljava/lang/String;
@@ -3490,6 +8027,8 @@
 HSPLandroid/content/res/Resources;->getStringArray(I)[Ljava/lang/String;
 HSPLandroid/content/res/Resources;->getSystem()Landroid/content/res/Resources;
 HSPLandroid/content/res/Resources;->getText(I)Ljava/lang/CharSequence;
+HSPLandroid/content/res/Resources;->getText(ILjava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/content/res/Resources;->getTextArray(I)[Ljava/lang/CharSequence;
 HSPLandroid/content/res/Resources;->getValue(ILandroid/util/TypedValue;Z)V
 HSPLandroid/content/res/Resources;->getValueForDensity(IILandroid/util/TypedValue;Z)V
 HSPLandroid/content/res/Resources;->getXml(I)Landroid/content/res/XmlResourceParser;
@@ -3507,6 +8046,7 @@
 HSPLandroid/content/res/Resources;->openRawResource(I)Ljava/io/InputStream;
 HSPLandroid/content/res/Resources;->openRawResource(ILandroid/util/TypedValue;)Ljava/io/InputStream;
 HSPLandroid/content/res/Resources;->openRawResourceFd(I)Landroid/content/res/AssetFileDescriptor;
+HSPLandroid/content/res/Resources;->parseBundleExtra(Ljava/lang/String;Landroid/util/AttributeSet;Landroid/os/Bundle;)V
 HSPLandroid/content/res/Resources;->releaseTempTypedValue(Landroid/util/TypedValue;)V
 HSPLandroid/content/res/Resources;->resourceHasPackage(I)Z
 HSPLandroid/content/res/Resources;->selectDefaultTheme(II)I
@@ -3562,6 +8102,7 @@
 HSPLandroid/content/res/ResourcesImpl;->getValueForDensity(IILandroid/util/TypedValue;Z)V
 HSPLandroid/content/res/ResourcesImpl;->lambda$decodeImageDrawable$1(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
 HSPLandroid/content/res/ResourcesImpl;->lambda$new$0()Landroid/content/res/ResourcesImpl$LookupStack;
+HSPLandroid/content/res/ResourcesImpl;->loadColorOrXmlDrawable(Landroid/content/res/Resources;Landroid/util/TypedValue;IILjava/lang/String;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/content/res/ResourcesImpl;->loadColorStateList(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
 HSPLandroid/content/res/ResourcesImpl;->loadComplexColor(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;
 HSPLandroid/content/res/ResourcesImpl;->loadComplexColorForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;
@@ -3585,7 +8126,15 @@
 HSPLandroid/content/res/ResourcesKey;->hashCode()I
 HSPLandroid/content/res/StringBlock$StyleIDs;->access$000(Landroid/content/res/StringBlock$StyleIDs;)I
 HSPLandroid/content/res/StringBlock$StyleIDs;->access$100(Landroid/content/res/StringBlock$StyleIDs;)I
+HSPLandroid/content/res/StringBlock$StyleIDs;->access$1000(Landroid/content/res/StringBlock$StyleIDs;)I
 HSPLandroid/content/res/StringBlock$StyleIDs;->access$200(Landroid/content/res/StringBlock$StyleIDs;)I
+HSPLandroid/content/res/StringBlock$StyleIDs;->access$300(Landroid/content/res/StringBlock$StyleIDs;)I
+HSPLandroid/content/res/StringBlock$StyleIDs;->access$400(Landroid/content/res/StringBlock$StyleIDs;)I
+HSPLandroid/content/res/StringBlock$StyleIDs;->access$500(Landroid/content/res/StringBlock$StyleIDs;)I
+HSPLandroid/content/res/StringBlock$StyleIDs;->access$600(Landroid/content/res/StringBlock$StyleIDs;)I
+HSPLandroid/content/res/StringBlock$StyleIDs;->access$700(Landroid/content/res/StringBlock$StyleIDs;)I
+HSPLandroid/content/res/StringBlock$StyleIDs;->access$800(Landroid/content/res/StringBlock$StyleIDs;)I
+HSPLandroid/content/res/StringBlock$StyleIDs;->access$900(Landroid/content/res/StringBlock$StyleIDs;)I
 HSPLandroid/content/res/StringBlock;-><init>(JZ)V
 HSPLandroid/content/res/StringBlock;->applyStyles(Ljava/lang/String;[ILandroid/content/res/StringBlock$StyleIDs;)Ljava/lang/CharSequence;
 HSPLandroid/content/res/StringBlock;->close()V
@@ -3623,12 +8172,15 @@
 HSPLandroid/content/res/TypedArray;->getInteger(II)I
 HSPLandroid/content/res/TypedArray;->getLayoutDimension(II)I
 HSPLandroid/content/res/TypedArray;->getLayoutDimension(ILjava/lang/String;)I
+HSPLandroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
+HSPLandroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String;
 HSPLandroid/content/res/TypedArray;->getPositionDescription()Ljava/lang/String;
 HSPLandroid/content/res/TypedArray;->getResourceId(II)I
 HSPLandroid/content/res/TypedArray;->getResources()Landroid/content/res/Resources;
 HSPLandroid/content/res/TypedArray;->getString(I)Ljava/lang/String;
 HSPLandroid/content/res/TypedArray;->getText(I)Ljava/lang/CharSequence;
 HSPLandroid/content/res/TypedArray;->getTextArray(I)[Ljava/lang/CharSequence;
+HSPLandroid/content/res/TypedArray;->getThemeAttributeId(II)I
 HSPLandroid/content/res/TypedArray;->getType(I)I
 HSPLandroid/content/res/TypedArray;->getValue(ILandroid/util/TypedValue;)Z
 HSPLandroid/content/res/TypedArray;->getValueAt(ILandroid/util/TypedValue;)Z
@@ -3664,6 +8216,7 @@
 HSPLandroid/content/res/XmlBlock$Parser;->getText()Ljava/lang/String;
 HSPLandroid/content/res/XmlBlock$Parser;->isEmptyElementTag()Z
 HSPLandroid/content/res/XmlBlock$Parser;->next()I
+HSPLandroid/content/res/XmlBlock$Parser;->nextTag()I
 HSPLandroid/content/res/XmlBlock$Parser;->nextText()Ljava/lang/String;
 HSPLandroid/content/res/XmlBlock$Parser;->require(ILjava/lang/String;Ljava/lang/String;)V
 HSPLandroid/content/res/XmlBlock;-><init>(Landroid/content/res/AssetManager;J)V
@@ -3683,7 +8236,19 @@
 HSPLandroid/content/res/XmlBlock;->close()V
 HSPLandroid/content/res/XmlBlock;->decOpenCountLocked()V
 HSPLandroid/content/res/XmlBlock;->finalize()V
+HSPLandroid/content/res/XmlBlock;->newParser()Landroid/content/res/XmlResourceParser;
 HSPLandroid/content/res/XmlBlock;->newParser(I)Landroid/content/res/XmlResourceParser;
+HSPLandroid/content/rollback/IRollbackManager$Stub;-><init>()V
+HSPLandroid/content/rollback/IRollbackManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/rollback/IRollbackManager;
+HPLandroid/content/rollback/IRollbackManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/rollback/RollbackManager;-><init>(Landroid/content/Context;Landroid/content/rollback/IRollbackManager;)V
+PLandroid/content/rollback/RollbackManager;->getAvailableRollbacks()Ljava/util/List;
+HSPLandroid/content/type/-$$Lambda$DefaultMimeMapFactory$3biOnZOOEGRoeaFehYke-eZnpCg;-><init>(Ljava/lang/Class;)V
+HSPLandroid/content/type/-$$Lambda$DefaultMimeMapFactory$3biOnZOOEGRoeaFehYke-eZnpCg;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/content/type/DefaultMimeMapFactory;->create()Llibcore/content/type/MimeMap;
+HSPLandroid/content/type/DefaultMimeMapFactory;->create(Ljava/util/function/Function;)Llibcore/content/type/MimeMap;
+HSPLandroid/content/type/DefaultMimeMapFactory;->lambda$create$0(Ljava/lang/Class;Ljava/lang/String;)Ljava/io/InputStream;
+HSPLandroid/content/type/DefaultMimeMapFactory;->parseTypes(Llibcore/content/type/MimeMap$Builder;Ljava/util/function/Function;Ljava/lang/String;)V
 HSPLandroid/database/AbstractCursor$SelfContentObserver;-><init>(Landroid/database/AbstractCursor;)V
 HSPLandroid/database/AbstractCursor$SelfContentObserver;->onChange(Z)V
 HSPLandroid/database/AbstractCursor;-><init>()V
@@ -3695,19 +8260,25 @@
 HSPLandroid/database/AbstractCursor;->getColumnIndex(Ljava/lang/String;)I
 HSPLandroid/database/AbstractCursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
 HSPLandroid/database/AbstractCursor;->getColumnName(I)Ljava/lang/String;
+HSPLandroid/database/AbstractCursor;->getExtras()Landroid/os/Bundle;
 HSPLandroid/database/AbstractCursor;->getPosition()I
 HSPLandroid/database/AbstractCursor;->getWantsAllOnMoveCalls()Z
 HSPLandroid/database/AbstractCursor;->getWindow()Landroid/database/CursorWindow;
 HSPLandroid/database/AbstractCursor;->isAfterLast()Z
+HSPLandroid/database/AbstractCursor;->isBeforeFirst()Z
 HSPLandroid/database/AbstractCursor;->isClosed()Z
 HSPLandroid/database/AbstractCursor;->isLast()Z
+HSPLandroid/database/AbstractCursor;->move(I)Z
 HSPLandroid/database/AbstractCursor;->moveToFirst()Z
+HSPLandroid/database/AbstractCursor;->moveToLast()Z
 HSPLandroid/database/AbstractCursor;->moveToNext()Z
 HSPLandroid/database/AbstractCursor;->moveToPosition(I)Z
+HSPLandroid/database/AbstractCursor;->moveToPrevious()Z
 HSPLandroid/database/AbstractCursor;->onChange(Z)V
 HSPLandroid/database/AbstractCursor;->onDeactivateOrClose()V
 HSPLandroid/database/AbstractCursor;->onMove(II)Z
 HSPLandroid/database/AbstractCursor;->registerContentObserver(Landroid/database/ContentObserver;)V
+HSPLandroid/database/AbstractCursor;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
 HSPLandroid/database/AbstractCursor;->setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
 HSPLandroid/database/AbstractCursor;->setNotificationUris(Landroid/content/ContentResolver;Ljava/util/List;)V
 HSPLandroid/database/AbstractCursor;->setNotificationUris(Landroid/content/ContentResolver;Ljava/util/List;IZ)V
@@ -3718,6 +8289,7 @@
 HSPLandroid/database/AbstractWindowedCursor;->closeWindow()V
 HSPLandroid/database/AbstractWindowedCursor;->getBlob(I)[B
 HSPLandroid/database/AbstractWindowedCursor;->getDouble(I)D
+HSPLandroid/database/AbstractWindowedCursor;->getFloat(I)F
 HSPLandroid/database/AbstractWindowedCursor;->getInt(I)I
 HSPLandroid/database/AbstractWindowedCursor;->getLong(I)J
 HSPLandroid/database/AbstractWindowedCursor;->getString(I)Ljava/lang/String;
@@ -3765,9 +8337,11 @@
 HSPLandroid/database/ContentObserver;->onChange(ZLandroid/net/Uri;I)V
 HSPLandroid/database/ContentObserver;->releaseContentObserver()Landroid/database/IContentObserver;
 HSPLandroid/database/CrossProcessCursorWrapper;-><init>(Landroid/database/Cursor;)V
+HSPLandroid/database/CrossProcessCursorWrapper;->getWindow()Landroid/database/CursorWindow;
 HSPLandroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;-><init>(Landroid/database/IContentObserver;Landroid/os/IBinder$DeathRecipient;)V
 HSPLandroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;)Z
 HSPLandroid/database/CursorToBulkCursorAdaptor;-><init>(Landroid/database/Cursor;Landroid/database/IContentObserver;Ljava/lang/String;)V
+HSPLandroid/database/CursorToBulkCursorAdaptor;->binderDied()V
 HSPLandroid/database/CursorToBulkCursorAdaptor;->close()V
 HSPLandroid/database/CursorToBulkCursorAdaptor;->closeFilledWindowLocked()V
 HSPLandroid/database/CursorToBulkCursorAdaptor;->createAndRegisterObserverProxyLocked(Landroid/database/IContentObserver;)V
@@ -3784,6 +8358,7 @@
 HSPLandroid/database/CursorWindow;-><init>(Landroid/os/Parcel;Landroid/database/CursorWindow$1;)V
 HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;)V
 HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;J)V
+HSPLandroid/database/CursorWindow;-><init>(Z)V
 HSPLandroid/database/CursorWindow;->allocRow()Z
 HSPLandroid/database/CursorWindow;->clear()V
 HSPLandroid/database/CursorWindow;->dispose()V
@@ -3791,14 +8366,18 @@
 HSPLandroid/database/CursorWindow;->getBlob(II)[B
 HSPLandroid/database/CursorWindow;->getCursorWindowSize()I
 HSPLandroid/database/CursorWindow;->getDouble(II)D
+HSPLandroid/database/CursorWindow;->getFloat(II)F
 HSPLandroid/database/CursorWindow;->getInt(II)I
 HSPLandroid/database/CursorWindow;->getLong(II)J
 HSPLandroid/database/CursorWindow;->getNumRows()I
 HSPLandroid/database/CursorWindow;->getStartPosition()I
 HSPLandroid/database/CursorWindow;->getString(II)Ljava/lang/String;
 HSPLandroid/database/CursorWindow;->getType(II)I
+HSPLandroid/database/CursorWindow;->isNull(II)Z
 HSPLandroid/database/CursorWindow;->newFromParcel(Landroid/os/Parcel;)Landroid/database/CursorWindow;
 HSPLandroid/database/CursorWindow;->onAllReferencesReleased()V
+HSPLandroid/database/CursorWindow;->putBlob([BII)Z
+HSPLandroid/database/CursorWindow;->putDouble(DII)Z
 HSPLandroid/database/CursorWindow;->putLong(JII)Z
 HSPLandroid/database/CursorWindow;->putNull(II)Z
 HSPLandroid/database/CursorWindow;->putString(Ljava/lang/String;II)Z
@@ -3813,19 +8392,28 @@
 HSPLandroid/database/CursorWrapper;->getColumnCount()I
 HSPLandroid/database/CursorWrapper;->getColumnIndex(Ljava/lang/String;)I
 HSPLandroid/database/CursorWrapper;->getColumnIndexOrThrow(Ljava/lang/String;)I
+HSPLandroid/database/CursorWrapper;->getColumnName(I)Ljava/lang/String;
+HSPLandroid/database/CursorWrapper;->getColumnNames()[Ljava/lang/String;
 HSPLandroid/database/CursorWrapper;->getCount()I
+HSPLandroid/database/CursorWrapper;->getDouble(I)D
+HSPLandroid/database/CursorWrapper;->getExtras()Landroid/os/Bundle;
 HSPLandroid/database/CursorWrapper;->getInt(I)I
 HSPLandroid/database/CursorWrapper;->getLong(I)J
 HSPLandroid/database/CursorWrapper;->getPosition()I
 HSPLandroid/database/CursorWrapper;->getString(I)Ljava/lang/String;
 HSPLandroid/database/CursorWrapper;->getType(I)I
+HSPLandroid/database/CursorWrapper;->getWantsAllOnMoveCalls()Z
 HSPLandroid/database/CursorWrapper;->getWrappedCursor()Landroid/database/Cursor;
 HSPLandroid/database/CursorWrapper;->isAfterLast()Z
+HSPLandroid/database/CursorWrapper;->isClosed()Z
+HSPLandroid/database/CursorWrapper;->isLast()Z
 HSPLandroid/database/CursorWrapper;->isNull(I)Z
 HSPLandroid/database/CursorWrapper;->moveToFirst()Z
+HSPLandroid/database/CursorWrapper;->moveToLast()Z
 HSPLandroid/database/CursorWrapper;->moveToNext()Z
 HSPLandroid/database/CursorWrapper;->moveToPosition(I)Z
 HSPLandroid/database/CursorWrapper;->registerContentObserver(Landroid/database/ContentObserver;)V
+HSPLandroid/database/CursorWrapper;->unregisterContentObserver(Landroid/database/ContentObserver;)V
 HSPLandroid/database/DataSetObservable;-><init>()V
 HSPLandroid/database/DataSetObservable;->notifyChanged()V
 HSPLandroid/database/DataSetObservable;->notifyInvalidated()V
@@ -3839,8 +8427,13 @@
 HSPLandroid/database/DatabaseUtils;->queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)J
 HSPLandroid/database/DatabaseUtils;->queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)J
 HSPLandroid/database/DatabaseUtils;->readExceptionFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/database/DatabaseUtils;->readExceptionFromParcel(Landroid/os/Parcel;Ljava/lang/String;I)V
 HSPLandroid/database/DatabaseUtils;->readExceptionWithFileNotFoundExceptionFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/database/DatabaseUtils;->readExceptionWithOperationApplicationExceptionFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/database/DatabaseUtils;->sqlEscapeString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/database/DatabaseUtils;->stringForQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/database/DatabaseUtils;->stringForQuery(Landroid/database/sqlite/SQLiteStatement;[Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/database/DatabaseUtils;->writeExceptionToParcel(Landroid/os/Parcel;Ljava/lang/Exception;)V
 HSPLandroid/database/DefaultDatabaseErrorHandler;-><init>()V
 HSPLandroid/database/IContentObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/database/IContentObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
@@ -3851,20 +8444,33 @@
 HSPLandroid/database/IContentObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/database/MatrixCursor$RowBuilder;-><init>(Landroid/database/MatrixCursor;I)V
 HSPLandroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
+HSPLandroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/String;Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
 HSPLandroid/database/MatrixCursor;-><init>([Ljava/lang/String;)V
 HSPLandroid/database/MatrixCursor;-><init>([Ljava/lang/String;I)V
 HSPLandroid/database/MatrixCursor;->access$000(Landroid/database/MatrixCursor;)I
 HSPLandroid/database/MatrixCursor;->access$100(Landroid/database/MatrixCursor;)[Ljava/lang/Object;
+HSPLandroid/database/MatrixCursor;->access$200(Landroid/database/MatrixCursor;)[Ljava/lang/String;
 HSPLandroid/database/MatrixCursor;->addRow([Ljava/lang/Object;)V
 HSPLandroid/database/MatrixCursor;->ensureCapacity(I)V
 HSPLandroid/database/MatrixCursor;->get(I)Ljava/lang/Object;
+HSPLandroid/database/MatrixCursor;->getBlob(I)[B
 HSPLandroid/database/MatrixCursor;->getColumnNames()[Ljava/lang/String;
 HSPLandroid/database/MatrixCursor;->getCount()I
+HSPLandroid/database/MatrixCursor;->getDouble(I)D
 HSPLandroid/database/MatrixCursor;->getInt(I)I
 HSPLandroid/database/MatrixCursor;->getLong(I)J
 HSPLandroid/database/MatrixCursor;->getString(I)Ljava/lang/String;
 HSPLandroid/database/MatrixCursor;->getType(I)I
 HSPLandroid/database/MatrixCursor;->newRow()Landroid/database/MatrixCursor$RowBuilder;
+HSPLandroid/database/MergeCursor$1;-><init>(Landroid/database/MergeCursor;)V
+HSPLandroid/database/MergeCursor$1;->onInvalidated()V
+HSPLandroid/database/MergeCursor;-><init>([Landroid/database/Cursor;)V
+HSPLandroid/database/MergeCursor;->close()V
+HSPLandroid/database/MergeCursor;->getColumnNames()[Ljava/lang/String;
+HSPLandroid/database/MergeCursor;->getCount()I
+HSPLandroid/database/MergeCursor;->getLong(I)J
+HSPLandroid/database/MergeCursor;->getString(I)Ljava/lang/String;
+HSPLandroid/database/MergeCursor;->onMove(II)Z
 HSPLandroid/database/Observable;-><init>()V
 HSPLandroid/database/Observable;->registerObserver(Ljava/lang/Object;)V
 HSPLandroid/database/Observable;->unregisterAll()V
@@ -3872,6 +8478,9 @@
 HSPLandroid/database/SQLException;-><init>(Ljava/lang/String;)V
 HSPLandroid/database/sqlite/-$$Lambda$RBWjWVyGrOTsQrLCYzJ_G8Uk25Q;-><init>(Landroid/database/sqlite/SQLiteDatabase;)V
 HSPLandroid/database/sqlite/-$$Lambda$RBWjWVyGrOTsQrLCYzJ_G8Uk25Q;->get()Ljava/lang/Object;
+HSPLandroid/database/sqlite/-$$Lambda$SQLiteDatabase$1FsSJH2q7x3eeDFXCAu9l4piDsE;-><clinit>()V
+HSPLandroid/database/sqlite/-$$Lambda$SQLiteDatabase$1FsSJH2q7x3eeDFXCAu9l4piDsE;-><init>()V
+HSPLandroid/database/sqlite/-$$Lambda$SQLiteDatabase$1FsSJH2q7x3eeDFXCAu9l4piDsE;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLandroid/database/sqlite/DatabaseObjectNotClosedException;-><init>()V
 HSPLandroid/database/sqlite/SQLiteClosable;-><init>()V
 HSPLandroid/database/sqlite/SQLiteClosable;->acquireReference()V
@@ -3881,10 +8490,14 @@
 HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->init(Ljava/lang/String;)V
 HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->initIfNeeded()V
 HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->isLegacyCompatibilityWalEnabled()Z
+HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->reset()V
 HSPLandroid/database/sqlite/SQLiteConnection$Operation;-><init>()V
 HSPLandroid/database/sqlite/SQLiteConnection$Operation;-><init>(Landroid/database/sqlite/SQLiteConnection$1;)V
+HSPLandroid/database/sqlite/SQLiteConnection$Operation;->describe(Ljava/lang/StringBuilder;Z)V
+HSPLandroid/database/sqlite/SQLiteConnection$Operation;->getStatus()Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;)V
 HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I
+HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->dump(Landroid/util/Printer;)V
 HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->endOperation(I)V
 HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
 HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLogLocked(I)Z
@@ -3900,6 +8513,7 @@
 HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/String;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
 HSPLandroid/database/sqlite/SQLiteConnection;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)V
 HSPLandroid/database/sqlite/SQLiteConnection;->access$100(Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
+HSPLandroid/database/sqlite/SQLiteConnection;->access$200(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteConnection;->access$400()[B
 HSPLandroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
 HSPLandroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
@@ -3911,6 +8525,8 @@
 HSPLandroid/database/sqlite/SQLiteConnection;->collectDbStats(Ljava/util/ArrayList;)V
 HSPLandroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
 HSPLandroid/database/sqlite/SQLiteConnection;->dispose(Z)V
+HSPLandroid/database/sqlite/SQLiteConnection;->dump(Landroid/util/Printer;Z)V
+HSPLandroid/database/sqlite/SQLiteConnection;->dumpUnsafe(Landroid/util/Printer;Z)V
 HSPLandroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
 HSPLandroid/database/sqlite/SQLiteConnection;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)I
 HSPLandroid/database/sqlite/SQLiteConnection;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZLandroid/os/CancellationSignal;)I
@@ -3943,6 +8559,7 @@
 HSPLandroid/database/sqlite/SQLiteConnection;->setSyncMode(Ljava/lang/String;)V
 HSPLandroid/database/sqlite/SQLiteConnection;->setWalModeFromConfiguration()V
 HSPLandroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
+HSPLandroid/database/sqlite/SQLiteConnection;->trimSqlForDisplay(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>()V
 HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>(Landroid/database/sqlite/SQLiteConnectionPool$1;)V
 HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/os/Looper;J)V
@@ -3963,8 +8580,10 @@
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeConnectionAndLogExceptionsLocked(Landroid/database/sqlite/SQLiteConnection;)V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeExcessConnectionsAndLogExceptionsLocked()V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->collectDbStats(Ljava/util/ArrayList;)V
+HSPLandroid/database/sqlite/SQLiteConnectionPool;->disableIdleConnectionHandler()V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->discardAcquiredConnectionsLocked()V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->dispose(Z)V
+HSPLandroid/database/sqlite/SQLiteConnectionPool;->dump(Landroid/util/Printer;ZLandroid/util/ArraySet;)V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->finalize()V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->finishAcquireConnectionLocked(Landroid/database/sqlite/SQLiteConnection;I)V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->getPath()Ljava/lang/String;
@@ -3982,6 +8601,7 @@
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->releaseConnection(Landroid/database/sqlite/SQLiteConnection;)V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->setMaxConnectionPoolSizeLocked()V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->setupIdleConnectionHandler(Landroid/os/Looper;J)V
+HSPLandroid/database/sqlite/SQLiteConnectionPool;->shouldYieldConnection(Landroid/database/sqlite/SQLiteConnection;I)Z
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->throwIfClosedLocked()V
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->tryAcquireNonPrimaryConnectionLocked(Ljava/lang/String;I)Landroid/database/sqlite/SQLiteConnection;
 HSPLandroid/database/sqlite/SQLiteConnectionPool;->tryAcquirePrimaryConnectionLocked(I)Landroid/database/sqlite/SQLiteConnection;
@@ -3997,8 +8617,11 @@
 HSPLandroid/database/sqlite/SQLiteCursor;->getCount()I
 HSPLandroid/database/sqlite/SQLiteCursor;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
 HSPLandroid/database/sqlite/SQLiteCursor;->onMove(II)Z
+HSPLandroid/database/sqlite/SQLiteCursor;->setWindow(Landroid/database/CursorWindow;)V
+HSPLandroid/database/sqlite/SQLiteDatabase$1;-><init>(Ljava/lang/String;)V
 HSPLandroid/database/sqlite/SQLiteDatabase$1;->accept(Ljava/io/File;)Z
 HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;-><init>()V
+HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;-><init>(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)V
 HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->addOpenFlags(I)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;
 HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->build()Landroid/database/sqlite/SQLiteDatabase$OpenParams;
 HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->isWriteAheadLoggingEnabled()Z
@@ -4017,6 +8640,7 @@
 HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->access$500(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)J
 HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->access$600(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->access$700(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Ljava/lang/String;
+HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->toBuilder()Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;
 HSPLandroid/database/sqlite/SQLiteDatabase;-><init>(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;)V
 HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
 HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction(Landroid/database/sqlite/SQLiteTransactionListener;Z)V
@@ -4026,9 +8650,13 @@
 HSPLandroid/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteStatement;
 HSPLandroid/database/sqlite/SQLiteDatabase;->createSession()Landroid/database/sqlite/SQLiteSession;
 HSPLandroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
+HSPLandroid/database/sqlite/SQLiteDatabase;->deleteDatabase(Ljava/io/File;)Z
+HSPLandroid/database/sqlite/SQLiteDatabase;->deleteDatabase(Ljava/io/File;Z)Z
 HSPLandroid/database/sqlite/SQLiteDatabase;->disableWriteAheadLogging()V
 HSPLandroid/database/sqlite/SQLiteDatabase;->dispose(Z)V
+HSPLandroid/database/sqlite/SQLiteDatabase;->dump(Landroid/util/Printer;ZZLandroid/util/ArraySet;)V
 HSPLandroid/database/sqlite/SQLiteDatabase;->dumpAll(Landroid/util/Printer;ZZ)V
+HSPLandroid/database/sqlite/SQLiteDatabase;->dumpDatabaseDirectory(Landroid/util/Printer;Ljava/io/File;Z)V
 HSPLandroid/database/sqlite/SQLiteDatabase;->enableWriteAheadLogging()Z
 HSPLandroid/database/sqlite/SQLiteDatabase;->endTransaction()V
 HSPLandroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
@@ -4038,6 +8666,10 @@
 HSPLandroid/database/sqlite/SQLiteDatabase;->findEditTable(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteDatabase;->getActiveDatabases()Ljava/util/ArrayList;
 HSPLandroid/database/sqlite/SQLiteDatabase;->getDbStats()Ljava/util/ArrayList;
+HSPLandroid/database/sqlite/SQLiteDatabase;->getFileTimestamps(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/database/sqlite/SQLiteDatabase;->getLabel()Ljava/lang/String;
+HSPLandroid/database/sqlite/SQLiteDatabase;->getMaximumSize()J
+HSPLandroid/database/sqlite/SQLiteDatabase;->getPageSize()J
 HSPLandroid/database/sqlite/SQLiteDatabase;->getPath()Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteDatabase;->getThreadDefaultConnectionFlags(Z)I
 HSPLandroid/database/sqlite/SQLiteDatabase;->getThreadSession()Landroid/database/sqlite/SQLiteSession;
@@ -4046,22 +8678,28 @@
 HSPLandroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
 HSPLandroid/database/sqlite/SQLiteDatabase;->insertOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
 HSPLandroid/database/sqlite/SQLiteDatabase;->insertWithOnConflict(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;I)J
+HSPLandroid/database/sqlite/SQLiteDatabase;->isDbLockedByCurrentThread()Z
 HSPLandroid/database/sqlite/SQLiteDatabase;->isMainThread()Z
 HSPLandroid/database/sqlite/SQLiteDatabase;->isOpen()Z
 HSPLandroid/database/sqlite/SQLiteDatabase;->isReadOnly()Z
 HSPLandroid/database/sqlite/SQLiteDatabase;->isReadOnlyLocked()Z
 HSPLandroid/database/sqlite/SQLiteDatabase;->isWriteAheadLoggingEnabled()Z
+HSPLandroid/database/sqlite/SQLiteDatabase;->lambda$dumpDatabaseDirectory$0(Ljava/io/File;Ljava/io/File;)I
 HSPLandroid/database/sqlite/SQLiteDatabase;->onAllReferencesReleased()V
 HSPLandroid/database/sqlite/SQLiteDatabase;->open()V
 HSPLandroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/io/File;Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/sqlite/SQLiteDatabase;
+HSPLandroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
 HSPLandroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ILandroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;
 HSPLandroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/sqlite/SQLiteDatabase;
 HSPLandroid/database/sqlite/SQLiteDatabase;->openInner()V
+HSPLandroid/database/sqlite/SQLiteDatabase;->openOrCreateDatabase(Ljava/io/File;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;
+HSPLandroid/database/sqlite/SQLiteDatabase;->openOrCreateDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;
 HSPLandroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteDatabase;->query(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteDatabase;->queryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
+HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteDatabase;->releaseMemory()I
@@ -4074,21 +8712,26 @@
 HSPLandroid/database/sqlite/SQLiteDatabase;->update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
 HSPLandroid/database/sqlite/SQLiteDatabase;->updateWithOnConflict(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;I)I
 HSPLandroid/database/sqlite/SQLiteDatabase;->validateSql(Ljava/lang/String;Landroid/os/CancellationSignal;)V
+HSPLandroid/database/sqlite/SQLiteDatabase;->yieldIfContendedHelper(ZJ)Z
+HSPLandroid/database/sqlite/SQLiteDatabase;->yieldIfContendedSafely(J)Z
 HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
 HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Ljava/lang/String;I)V
 HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z
 HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isLegacyCompatibilityWalEnabled()Z
+HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isLookasideConfigSet()Z
 HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->stripPathForLogs(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->updateParametersFrom(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
 HSPLandroid/database/sqlite/SQLiteDebug$DbStats;-><init>(Ljava/lang/String;JJIIII)V
 HSPLandroid/database/sqlite/SQLiteDebug$NoPreloadHolder;-><clinit>()V
 HSPLandroid/database/sqlite/SQLiteDebug$NoPreloadHolder;->access$000()Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteDebug$PagerStats;-><init>()V
+HSPLandroid/database/sqlite/SQLiteDebug;->dump(Landroid/util/Printer;[Ljava/lang/String;Z)V
 HSPLandroid/database/sqlite/SQLiteDebug;->getDatabaseInfo()Landroid/database/sqlite/SQLiteDebug$PagerStats;
 HSPLandroid/database/sqlite/SQLiteDebug;->shouldLogSlowQuery(J)Z
 HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)V
 HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;->cursorClosed()V
 HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;->query(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;[Ljava/lang/String;)Landroid/database/Cursor;
+HSPLandroid/database/sqlite/SQLiteDoneException;-><init>()V
 HSPLandroid/database/sqlite/SQLiteException;-><init>(Ljava/lang/String;)V
 HSPLandroid/database/sqlite/SQLiteGlobal;->checkDbWipe()Z
 HSPLandroid/database/sqlite/SQLiteGlobal;->getDefaultJournalMode()Ljava/lang/String;
@@ -4119,6 +8762,7 @@
 HSPLandroid/database/sqlite/SQLiteProgram;->bind(ILjava/lang/Object;)V
 HSPLandroid/database/sqlite/SQLiteProgram;->bindAllArgsAsStrings([Ljava/lang/String;)V
 HSPLandroid/database/sqlite/SQLiteProgram;->bindBlob(I[B)V
+HSPLandroid/database/sqlite/SQLiteProgram;->bindDouble(ID)V
 HSPLandroid/database/sqlite/SQLiteProgram;->bindLong(IJ)V
 HSPLandroid/database/sqlite/SQLiteProgram;->bindNull(I)V
 HSPLandroid/database/sqlite/SQLiteProgram;->bindString(ILjava/lang/String;)V
@@ -4145,9 +8789,11 @@
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrict()Z
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrictColumns()Z
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrictGrammar()Z
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->maybeWithOperator(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setDistinct(Z)V
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setProjectionMap(Ljava/util/Map;)V
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setStrict(Z)V
 HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setTables(Ljava/lang/String;)V
@@ -4165,6 +8811,7 @@
 HSPLandroid/database/sqlite/SQLiteSession;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZILandroid/os/CancellationSignal;)I
 HSPLandroid/database/sqlite/SQLiteSession;->executeForLastInsertedRowId(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)J
 HSPLandroid/database/sqlite/SQLiteSession;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)J
+HSPLandroid/database/sqlite/SQLiteSession;->executeForString(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteSession;->executeSpecial(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Z
 HSPLandroid/database/sqlite/SQLiteSession;->hasTransaction()Z
 HSPLandroid/database/sqlite/SQLiteSession;->obtainTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;)Landroid/database/sqlite/SQLiteSession$Transaction;
@@ -4174,57 +8821,97 @@
 HSPLandroid/database/sqlite/SQLiteSession;->setTransactionSuccessful()V
 HSPLandroid/database/sqlite/SQLiteSession;->throwIfNoTransaction()V
 HSPLandroid/database/sqlite/SQLiteSession;->throwIfTransactionMarkedSuccessful()V
+HSPLandroid/database/sqlite/SQLiteSession;->yieldTransaction(JZLandroid/os/CancellationSignal;)Z
+HSPLandroid/database/sqlite/SQLiteSession;->yieldTransactionUnchecked(JLandroid/os/CancellationSignal;)Z
 HSPLandroid/database/sqlite/SQLiteStatement;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;)V
 HSPLandroid/database/sqlite/SQLiteStatement;->execute()V
 HSPLandroid/database/sqlite/SQLiteStatement;->executeInsert()J
 HSPLandroid/database/sqlite/SQLiteStatement;->executeUpdateDelete()I
 HSPLandroid/database/sqlite/SQLiteStatement;->simpleQueryForLong()J
+HSPLandroid/database/sqlite/SQLiteStatement;->simpleQueryForString()Ljava/lang/String;
 HSPLandroid/database/sqlite/SQLiteStatementInfo;-><init>()V
 HSPLandroid/ddm/DdmHandleAppName$Names;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/ddm/DdmHandleAppName$Names;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/ddm/DdmHandleAppName$1;)V
+HSPLandroid/ddm/DdmHandleAppName$Names;->getAppName()Ljava/lang/String;
+HSPLandroid/ddm/DdmHandleAppName$Names;->getPkgName()Ljava/lang/String;
+HSPLandroid/ddm/DdmHandleAppName;->getNames()Landroid/ddm/DdmHandleAppName$Names;
 HSPLandroid/ddm/DdmHandleAppName;->sendAPNM(Ljava/lang/String;Ljava/lang/String;I)V
 HSPLandroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;I)V
 HSPLandroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;Ljava/lang/String;I)V
 HSPLandroid/ddm/DdmHandleExit;->connected()V
+HSPLandroid/ddm/DdmHandleExit;->disconnected()V
 HSPLandroid/ddm/DdmHandleHeap;->connected()V
+HSPLandroid/ddm/DdmHandleHeap;->disconnected()V
 HSPLandroid/ddm/DdmHandleHeap;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+HSPLandroid/ddm/DdmHandleHeap;->handleHPIF(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+HSPLandroid/ddm/DdmHandleHeap;->handleREAQ(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 HSPLandroid/ddm/DdmHandleHello;->connected()V
+HSPLandroid/ddm/DdmHandleHello;->disconnected()V
 HSPLandroid/ddm/DdmHandleHello;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 HSPLandroid/ddm/DdmHandleHello;->handleFEAT(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 HSPLandroid/ddm/DdmHandleHello;->handleHELO(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 HSPLandroid/ddm/DdmHandleNativeHeap;->connected()V
+HSPLandroid/ddm/DdmHandleNativeHeap;->disconnected()V
 HSPLandroid/ddm/DdmHandleProfiling;->connected()V
+HSPLandroid/ddm/DdmHandleProfiling;->disconnected()V
 HSPLandroid/ddm/DdmHandleProfiling;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
+HSPLandroid/ddm/DdmHandleProfiling;->handleMPRQ(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 HSPLandroid/ddm/DdmHandleThread;->connected()V
+HSPLandroid/ddm/DdmHandleThread;->disconnected()V
 HSPLandroid/ddm/DdmHandleViewDebug;->connected()V
+HSPLandroid/ddm/DdmHandleViewDebug;->disconnected()V
+HSPLandroid/debug/AdbManagerInternal;-><init>()V
+HSPLandroid/debug/IAdbManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/debug/IAdbManager$Stub;-><init>()V
+HSPLandroid/debug/IAdbManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/debug/IAdbManager;
+HPLandroid/debug/IAdbManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/debug/IAdbTransport$Stub;-><init>()V
+HSPLandroid/debug/IAdbTransport$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/graphics/-$$Lambda$ColorSpace$Rgb$8EkhO2jIf14tuA3BvrmYJMa7YXM;-><init>(Landroid/graphics/ColorSpace$Rgb;)V
+HSPLandroid/graphics/-$$Lambda$ColorSpace$Rgb$8EkhO2jIf14tuA3BvrmYJMa7YXM;->applyAsDouble(D)D
+HSPLandroid/graphics/-$$Lambda$ColorSpace$Rgb$b9VGKuNnse0bbguR9jbOM_wK2Ac;->applyAsDouble(D)D
+HSPLandroid/graphics/-$$Lambda$HardwareRendererObserver$Z08IFApIdHoCBfw8BsQ-lVjpUlI;-><init>(Landroid/graphics/HardwareRendererObserver;)V
+HSPLandroid/graphics/-$$Lambda$HardwareRendererObserver$Z08IFApIdHoCBfw8BsQ-lVjpUlI;->run()V
 HSPLandroid/graphics/BaseCanvas;-><init>()V
+HSPLandroid/graphics/BaseCanvas;->drawARGB(IIII)V
 HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseCanvas;->drawColor(I)V
 HSPLandroid/graphics/BaseCanvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
+HSPLandroid/graphics/BaseCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseCanvas;->drawOval(FFFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseCanvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseCanvas;->drawRect(FFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseCanvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseCanvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseCanvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseCanvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseCanvas;->throwIfCannotDraw(Landroid/graphics/Bitmap;)V
 HSPLandroid/graphics/BaseCanvas;->throwIfHasHwBitmapInSwMode(Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseCanvas;->throwIfHasHwBitmapInSwMode(Landroid/graphics/Shader;)V
 HSPLandroid/graphics/BaseCanvas;->throwIfHwBitmapInSwMode(Landroid/graphics/Bitmap;)V
 HSPLandroid/graphics/BaseRecordingCanvas;-><init>(J)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawArc(FFFFFFZLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(I)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(FFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawPaint(Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawPicture(Landroid/graphics/Picture;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(FFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
@@ -4232,10 +8919,13 @@
 HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawText([CIIFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V
 HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun([CIIIIFFZLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/graphics/Bitmap$CompressFormat;->valueOf(Ljava/lang/String;)Landroid/graphics/Bitmap$CompressFormat;
+HSPLandroid/graphics/Bitmap$CompressFormat;->values()[Landroid/graphics/Bitmap$CompressFormat;
 HSPLandroid/graphics/Bitmap$Config;->nativeToConfig(I)Landroid/graphics/Bitmap$Config;
 HSPLandroid/graphics/Bitmap$Config;->values()[Landroid/graphics/Bitmap$Config;
 HSPLandroid/graphics/Bitmap;-><init>(JIIIZ[BLandroid/graphics/NinePatch$InsetStruct;Z)V
@@ -4248,23 +8938,34 @@
 HSPLandroid/graphics/Bitmap;->checkXYSign(II)V
 HSPLandroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
 HSPLandroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/Bitmap;->copyPixelsFromBuffer(Ljava/nio/Buffer;)V
+HSPLandroid/graphics/Bitmap;->copyPixelsToBuffer(Ljava/nio/Buffer;)V
 HSPLandroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Picture;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Picture;IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;ZLandroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;
+HPLandroid/graphics/Bitmap;->createGraphicBufferHandle()Landroid/graphics/GraphicBuffer;
 HSPLandroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/Bitmap;->eraseColor(I)V
+HSPLandroid/graphics/Bitmap;->extractAlpha(Landroid/graphics/Paint;[I)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/Bitmap;->getAllocationByteCount()I
 HSPLandroid/graphics/Bitmap;->getByteCount()I
 HSPLandroid/graphics/Bitmap;->getColorSpace()Landroid/graphics/ColorSpace;
 HSPLandroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
 HSPLandroid/graphics/Bitmap;->getDefaultDensity()I
+HSPLandroid/graphics/Bitmap;->getDensity()I
 HSPLandroid/graphics/Bitmap;->getHeight()I
 HSPLandroid/graphics/Bitmap;->getNativeInstance()J
 HSPLandroid/graphics/Bitmap;->getNinePatchChunk()[B
 HSPLandroid/graphics/Bitmap;->getNinePatchInsets()Landroid/graphics/NinePatch$InsetStruct;
 HSPLandroid/graphics/Bitmap;->getOpticalInsets(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/Bitmap;->getPixel(II)I
 HSPLandroid/graphics/Bitmap;->getPixels([IIIIIII)V
 HSPLandroid/graphics/Bitmap;->getRowBytes()I
 HSPLandroid/graphics/Bitmap;->getScaledHeight(I)I
@@ -4277,6 +8978,7 @@
 HSPLandroid/graphics/Bitmap;->isRecycled()Z
 HSPLandroid/graphics/Bitmap;->noteHardwareBitmapSlowCall()V
 HSPLandroid/graphics/Bitmap;->prepareToDraw()V
+HSPLandroid/graphics/Bitmap;->reconfigure(IILandroid/graphics/Bitmap$Config;)V
 HSPLandroid/graphics/Bitmap;->recycle()V
 HSPLandroid/graphics/Bitmap;->reinit(IIZ)V
 HSPLandroid/graphics/Bitmap;->scaleFromDensity(III)I
@@ -4284,13 +8986,21 @@
 HSPLandroid/graphics/Bitmap;->setDensity(I)V
 HSPLandroid/graphics/Bitmap;->setHasAlpha(Z)V
 HSPLandroid/graphics/Bitmap;->setHasMipMap(Z)V
+HSPLandroid/graphics/Bitmap;->setPixels([IIIIIII)V
 HSPLandroid/graphics/Bitmap;->setPremultiplied(Z)V
+HSPLandroid/graphics/Bitmap;->wrapHardwareBuffer(Landroid/graphics/GraphicBuffer;Landroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/Bitmap;->wrapHardwareBuffer(Landroid/hardware/HardwareBuffer;Landroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/Bitmap;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/graphics/BitmapFactory$Options;-><init>()V
 HSPLandroid/graphics/BitmapFactory$Options;->nativeColorSpace(Landroid/graphics/BitmapFactory$Options;)J
 HSPLandroid/graphics/BitmapFactory$Options;->nativeInBitmap(Landroid/graphics/BitmapFactory$Options;)J
 HSPLandroid/graphics/BitmapFactory$Options;->validate(Landroid/graphics/BitmapFactory$Options;)V
+HSPLandroid/graphics/BitmapFactory;->decodeByteArray([BII)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/BitmapFactory;->decodeResourceStream(Landroid/content/res/Resources;Landroid/util/TypedValue;Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
@@ -4298,6 +9008,14 @@
 HSPLandroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/BitmapFactory;->decodeStreamInternal(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/BitmapFactory;->setDensityFromOptions(Landroid/graphics/Bitmap;Landroid/graphics/BitmapFactory$Options;)V
+HSPLandroid/graphics/BitmapRegionDecoder;-><init>(J)V
+HSPLandroid/graphics/BitmapRegionDecoder;->checkRecycled(Ljava/lang/String;)V
+HSPLandroid/graphics/BitmapRegionDecoder;->decodeRegion(Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/BitmapRegionDecoder;->finalize()V
+HSPLandroid/graphics/BitmapRegionDecoder;->getHeight()I
+HSPLandroid/graphics/BitmapRegionDecoder;->getWidth()I
+HSPLandroid/graphics/BitmapRegionDecoder;->newInstance(Ljava/io/InputStream;Z)Landroid/graphics/BitmapRegionDecoder;
+HSPLandroid/graphics/BitmapRegionDecoder;->recycle()V
 HSPLandroid/graphics/BitmapShader;-><init>(Landroid/graphics/Bitmap;II)V
 HSPLandroid/graphics/BitmapShader;-><init>(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V
 HSPLandroid/graphics/BitmapShader;->createNativeInstance(J)J
@@ -4309,34 +9027,47 @@
 HSPLandroid/graphics/BlendModeColorFilter;->createNativeInstance()J
 HSPLandroid/graphics/BlendModeColorFilter;->getColor()I
 HSPLandroid/graphics/BlendModeColorFilter;->getMode()Landroid/graphics/BlendMode;
+HSPLandroid/graphics/BlurMaskFilter;-><init>(FLandroid/graphics/BlurMaskFilter$Blur;)V
 HSPLandroid/graphics/Canvas;-><init>()V
 HSPLandroid/graphics/Canvas;-><init>(J)V
 HSPLandroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
 HSPLandroid/graphics/Canvas;->checkValidClipOp(Landroid/graphics/Region$Op;)V
 HSPLandroid/graphics/Canvas;->checkValidSaveFlags(I)V
+HSPLandroid/graphics/Canvas;->clipOutPath(Landroid/graphics/Path;)Z
 HSPLandroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;)Z
 HSPLandroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;Landroid/graphics/Region$Op;)Z
 HSPLandroid/graphics/Canvas;->clipRect(FFFF)Z
 HSPLandroid/graphics/Canvas;->clipRect(IIII)Z
 HSPLandroid/graphics/Canvas;->clipRect(Landroid/graphics/Rect;)Z
+HSPLandroid/graphics/Canvas;->clipRect(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z
+HSPLandroid/graphics/Canvas;->clipRect(Landroid/graphics/RectF;)Z
 HSPLandroid/graphics/Canvas;->concat(Landroid/graphics/Matrix;)V
+HSPLandroid/graphics/Canvas;->drawARGB(IIII)V
+HSPLandroid/graphics/Canvas;->drawArc(FFFFFFZLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawColor(I)V
 HSPLandroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
+HSPLandroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawOval(FFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawPaint(Landroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V
 PLandroid/graphics/Canvas;->freeCaches()V
 HSPLandroid/graphics/Canvas;->freeTextLayoutCaches()V
+HSPLandroid/graphics/Canvas;->getClipBounds()Landroid/graphics/Rect;
 HSPLandroid/graphics/Canvas;->getClipBounds(Landroid/graphics/Rect;)Z
 HSPLandroid/graphics/Canvas;->getDensity()I
 HSPLandroid/graphics/Canvas;->getHeight()I
@@ -4346,56 +9077,134 @@
 HSPLandroid/graphics/Canvas;->insertInorderBarrier()V
 HSPLandroid/graphics/Canvas;->insertReorderBarrier()V
 HSPLandroid/graphics/Canvas;->isHardwareAccelerated()Z
+HSPLandroid/graphics/Canvas;->isOpaque()Z
 HSPLandroid/graphics/Canvas;->isRecordingFor(Ljava/lang/Object;)Z
 HSPLandroid/graphics/Canvas;->quickReject(FFFF)Z
 HSPLandroid/graphics/Canvas;->quickReject(FFFFLandroid/graphics/Canvas$EdgeType;)Z
 HSPLandroid/graphics/Canvas;->restore()V
 HSPLandroid/graphics/Canvas;->restoreToCount(I)V
+HSPLandroid/graphics/Canvas;->restoreUnclippedLayer(ILandroid/graphics/Paint;)V
 HSPLandroid/graphics/Canvas;->rotate(F)V
 HSPLandroid/graphics/Canvas;->rotate(FFF)V
 HSPLandroid/graphics/Canvas;->save()I
 HSPLandroid/graphics/Canvas;->save(I)I
+HSPLandroid/graphics/Canvas;->saveLayer(FFFFLandroid/graphics/Paint;I)I
+HSPLandroid/graphics/Canvas;->saveLayer(Landroid/graphics/RectF;Landroid/graphics/Paint;)I
+HSPLandroid/graphics/Canvas;->saveLayer(Landroid/graphics/RectF;Landroid/graphics/Paint;I)I
+HSPLandroid/graphics/Canvas;->saveLayerAlpha(FFFFI)I
+HSPLandroid/graphics/Canvas;->saveLayerAlpha(FFFFII)I
+HSPLandroid/graphics/Canvas;->saveUnclippedLayer(IIII)I
 HSPLandroid/graphics/Canvas;->scale(FF)V
 HSPLandroid/graphics/Canvas;->scale(FFFF)V
 HSPLandroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
 HSPLandroid/graphics/Canvas;->setCompatibilityVersion(I)V
+HSPLandroid/graphics/Canvas;->setDensity(I)V
 HSPLandroid/graphics/Canvas;->setDrawFilter(Landroid/graphics/DrawFilter;)V
+HSPLandroid/graphics/Canvas;->setScreenDensity(I)V
 HSPLandroid/graphics/Canvas;->translate(FF)V
 HSPLandroid/graphics/CanvasProperty;-><init>(J)V
 HSPLandroid/graphics/CanvasProperty;->createFloat(F)Landroid/graphics/CanvasProperty;
 HSPLandroid/graphics/CanvasProperty;->createPaint(Landroid/graphics/Paint;)Landroid/graphics/CanvasProperty;
 HSPLandroid/graphics/CanvasProperty;->getNativeContainer()J
 HSPLandroid/graphics/Color;-><init>(FFFFLandroid/graphics/ColorSpace;)V
+HSPLandroid/graphics/Color;->HSVToColor(I[F)I
+HSPLandroid/graphics/Color;->RGBToHSV(III[F)V
 HSPLandroid/graphics/Color;->alpha(I)I
 HSPLandroid/graphics/Color;->alpha(J)F
 HSPLandroid/graphics/Color;->argb(IIII)I
 HSPLandroid/graphics/Color;->blue(I)I
 HSPLandroid/graphics/Color;->blue(J)F
 HSPLandroid/graphics/Color;->colorSpace(J)Landroid/graphics/ColorSpace;
+HSPLandroid/graphics/Color;->colorToHSV(I[F)V
+HSPLandroid/graphics/Color;->getHtmlColor(Ljava/lang/String;)I
 HSPLandroid/graphics/Color;->green(I)I
 HSPLandroid/graphics/Color;->green(J)F
+HSPLandroid/graphics/Color;->luminance(I)F
 HSPLandroid/graphics/Color;->pack(FFFFLandroid/graphics/ColorSpace;)J
 HSPLandroid/graphics/Color;->pack(I)J
 HSPLandroid/graphics/Color;->parseColor(Ljava/lang/String;)I
 HSPLandroid/graphics/Color;->red(I)I
 HSPLandroid/graphics/Color;->red(J)F
 HSPLandroid/graphics/Color;->rgb(III)I
+HSPLandroid/graphics/Color;->saturate(F)F
 HSPLandroid/graphics/Color;->toArgb()I
 HSPLandroid/graphics/Color;->toArgb(J)I
+HSPLandroid/graphics/Color;->valueOf(FFFF)Landroid/graphics/Color;
 HSPLandroid/graphics/Color;->valueOf(I)Landroid/graphics/Color;
 HSPLandroid/graphics/ColorFilter;-><init>()V
+HSPLandroid/graphics/ColorFilter;->discardNativeInstance()V
 HSPLandroid/graphics/ColorFilter;->getNativeInstance()J
 HSPLandroid/graphics/ColorMatrix;-><init>()V
+HSPLandroid/graphics/ColorMatrix;-><init>([F)V
+HSPLandroid/graphics/ColorMatrix;->getArray()[F
 HSPLandroid/graphics/ColorMatrix;->reset()V
+HSPLandroid/graphics/ColorMatrix;->set(Landroid/graphics/ColorMatrix;)V
+HSPLandroid/graphics/ColorMatrix;->set([F)V
+HSPLandroid/graphics/ColorMatrix;->setSaturation(F)V
+HSPLandroid/graphics/ColorMatrix;->setScale(FFFF)V
+HSPLandroid/graphics/ColorMatrixColorFilter;-><init>(Landroid/graphics/ColorMatrix;)V
+HSPLandroid/graphics/ColorMatrixColorFilter;-><init>([F)V
+HSPLandroid/graphics/ColorMatrixColorFilter;->createNativeInstance()J
+HSPLandroid/graphics/ColorMatrixColorFilter;->setColorMatrixArray([F)V
 HSPLandroid/graphics/ColorSpace$Named;->values()[Landroid/graphics/ColorSpace$Named;
+HSPLandroid/graphics/ColorSpace$Rgb$TransferParameters;-><init>(DDDDDDD)V
 HSPLandroid/graphics/ColorSpace$Rgb$TransferParameters;->hashCode()I
+HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Landroid/graphics/ColorSpace$Rgb;[F[F)V
+HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Landroid/graphics/ColorSpace$Rgb;[F[FLandroid/graphics/ColorSpace$1;)V
+HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;)V
+HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;I)V
+HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[F[FLjava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;FFLandroid/graphics/ColorSpace$Rgb$TransferParameters;I)V
+HSPLandroid/graphics/ColorSpace$Rgb;->access$000(Landroid/graphics/ColorSpace$Rgb;)[F
+HSPLandroid/graphics/ColorSpace$Rgb;->access$100(Landroid/graphics/ColorSpace$Rgb;)[F
+HSPLandroid/graphics/ColorSpace$Rgb;->access$300(Landroid/graphics/ColorSpace$Rgb;)Landroid/graphics/ColorSpace$Rgb$TransferParameters;
+HSPLandroid/graphics/ColorSpace$Rgb;->area([F)F
+HSPLandroid/graphics/ColorSpace$Rgb;->clamp(D)D
+HSPLandroid/graphics/ColorSpace$Rgb;->computePrimaries([F)[F
+HSPLandroid/graphics/ColorSpace$Rgb;->computeWhitePoint([F)[F
+HSPLandroid/graphics/ColorSpace$Rgb;->computeXYZMatrix([F[F)[F
+HSPLandroid/graphics/ColorSpace$Rgb;->contains([F[F)Z
+HSPLandroid/graphics/ColorSpace$Rgb;->cross(FFFF)F
+HSPLandroid/graphics/ColorSpace$Rgb;->getEotf()Ljava/util/function/DoubleUnaryOperator;
 HSPLandroid/graphics/ColorSpace$Rgb;->getNativeInstance()J
 HSPLandroid/graphics/ColorSpace$Rgb;->getTransferParameters()Landroid/graphics/ColorSpace$Rgb$TransferParameters;
+HSPLandroid/graphics/ColorSpace$Rgb;->getWhitePoint()[F
 HSPLandroid/graphics/ColorSpace$Rgb;->hashCode()I
 HSPLandroid/graphics/ColorSpace$Rgb;->isSrgb()Z
+HSPLandroid/graphics/ColorSpace$Rgb;->isSrgb([F[FLjava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;FFI)Z
+HSPLandroid/graphics/ColorSpace$Rgb;->isWideGamut([FFF)Z
+HSPLandroid/graphics/ColorSpace$Rgb;->lambda$8EkhO2jIf14tuA3BvrmYJMa7YXM(Landroid/graphics/ColorSpace$Rgb;D)D
+HSPLandroid/graphics/ColorSpace$Rgb;->lambda$new$2(Landroid/graphics/ColorSpace$Rgb$TransferParameters;D)D
+HSPLandroid/graphics/ColorSpace$Rgb;->xyPrimaries([F)[F
+HSPLandroid/graphics/ColorSpace$Rgb;->xyWhitePoint([F)[F
+HSPLandroid/graphics/ColorSpace;-><init>(Ljava/lang/String;Landroid/graphics/ColorSpace$Model;I)V
+HSPLandroid/graphics/ColorSpace;-><init>(Ljava/lang/String;Landroid/graphics/ColorSpace$Model;ILandroid/graphics/ColorSpace$1;)V
+HSPLandroid/graphics/ColorSpace;->access$1200([F)[F
+HSPLandroid/graphics/ColorSpace;->access$1300([F[F)[F
+HSPLandroid/graphics/ColorSpace;->access$1600()[F
+HSPLandroid/graphics/ColorSpace;->access$1700([F[F)Z
+HSPLandroid/graphics/ColorSpace;->access$1800()[F
+HSPLandroid/graphics/ColorSpace;->access$2000(DDDDDD)D
+HSPLandroid/graphics/ColorSpace;->adapt(Landroid/graphics/ColorSpace;[F)Landroid/graphics/ColorSpace;
+HSPLandroid/graphics/ColorSpace;->adapt(Landroid/graphics/ColorSpace;[FLandroid/graphics/ColorSpace$Adaptation;)Landroid/graphics/ColorSpace;
+HSPLandroid/graphics/ColorSpace;->adaptToIlluminantD50([F[F)[F
+HSPLandroid/graphics/ColorSpace;->chromaticAdaptation([F[F[F)[F
+HSPLandroid/graphics/ColorSpace;->compare(Landroid/graphics/ColorSpace$Rgb$TransferParameters;Landroid/graphics/ColorSpace$Rgb$TransferParameters;)Z
+HSPLandroid/graphics/ColorSpace;->compare([F[F)Z
 HSPLandroid/graphics/ColorSpace;->get(I)Landroid/graphics/ColorSpace;
 HSPLandroid/graphics/ColorSpace;->get(Landroid/graphics/ColorSpace$Named;)Landroid/graphics/ColorSpace;
+HSPLandroid/graphics/ColorSpace;->getId()I
+HSPLandroid/graphics/ColorSpace;->getModel()Landroid/graphics/ColorSpace$Model;
+HSPLandroid/graphics/ColorSpace;->getName()Ljava/lang/String;
 HSPLandroid/graphics/ColorSpace;->hashCode()I
+HSPLandroid/graphics/ColorSpace;->inverse3x3([F)[F
+HSPLandroid/graphics/ColorSpace;->match([FLandroid/graphics/ColorSpace$Rgb$TransferParameters;)Landroid/graphics/ColorSpace;
+HSPLandroid/graphics/ColorSpace;->mul3x3([F[F)[F
+HSPLandroid/graphics/ColorSpace;->mul3x3Diag([F[F)[F
+HSPLandroid/graphics/ColorSpace;->mul3x3Float3([F[F)[F
+HSPLandroid/graphics/ColorSpace;->response(DDDDDD)D
+HSPLandroid/graphics/ColorSpace;->xyYToXyz([F)[F
+HSPLandroid/graphics/CornerPathEffect;-><init>(F)V
+HSPLandroid/graphics/DrawFilter;-><init>()V
 HSPLandroid/graphics/FrameInfo;-><init>()V
 HSPLandroid/graphics/FrameInfo;->addFlags(J)V
 HSPLandroid/graphics/FrameInfo;->markAnimationsStart()V
@@ -4404,32 +9213,58 @@
 HSPLandroid/graphics/FrameInfo;->markPerformTraversalsStart()V
 HSPLandroid/graphics/FrameInfo;->setVsync(JJ)V
 HSPLandroid/graphics/FrameInfo;->updateInputEventTime(JJ)V
+HSPLandroid/graphics/GraphicBuffer$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/GraphicBuffer;
+HSPLandroid/graphics/GraphicBuffer$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/graphics/GraphicBuffer;-><init>(IIIIJ)V
+HSPLandroid/graphics/GraphicBuffer;-><init>(IIIIJLandroid/graphics/GraphicBuffer$1;)V
+HSPLandroid/graphics/GraphicBuffer;->access$000(Landroid/os/Parcel;)J
+HSPLandroid/graphics/GraphicBuffer;->createFromExisting(IIIIJ)Landroid/graphics/GraphicBuffer;
+HSPLandroid/graphics/GraphicBuffer;->destroy()V
+HSPLandroid/graphics/GraphicBuffer;->finalize()V
+HPLandroid/graphics/GraphicBuffer;->getFormat()I
+HPLandroid/graphics/GraphicBuffer;->getHeight()I
+HPLandroid/graphics/GraphicBuffer;->getWidth()I
+HPLandroid/graphics/GraphicBuffer;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/graphics/HardwareRenderer$DestroyContextRunnable;-><init>(J)V
 HSPLandroid/graphics/HardwareRenderer$DestroyContextRunnable;->run()V
 HSPLandroid/graphics/HardwareRenderer$FrameRenderRequest;-><init>(Landroid/graphics/HardwareRenderer;)V
 HSPLandroid/graphics/HardwareRenderer$FrameRenderRequest;-><init>(Landroid/graphics/HardwareRenderer;Landroid/graphics/HardwareRenderer$1;)V
 HSPLandroid/graphics/HardwareRenderer$ProcessInitializer$1;->onRotateGraphicsStatsBuffer()V
+HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->access$400(Landroid/graphics/HardwareRenderer$ProcessInitializer;)V
 HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->init(J)V
 HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initGraphicsStats()V
 HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initSched(J)V
 HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->requestBuffer()V
+HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->rotateBuffer()V
 HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->setPackageName(Ljava/lang/String;)V
 HSPLandroid/graphics/HardwareRenderer;-><init>()V
 HSPLandroid/graphics/HardwareRenderer;->access$300(J)V
 HSPLandroid/graphics/HardwareRenderer;->access$500(J)I
+HSPLandroid/graphics/HardwareRenderer;->access$600()V
 HSPLandroid/graphics/HardwareRenderer;->access$700(I)V
+HSPLandroid/graphics/HardwareRenderer;->addObserver(Landroid/graphics/HardwareRendererObserver;)V
 HSPLandroid/graphics/HardwareRenderer;->allocateBuffers()V
+HSPLandroid/graphics/HardwareRenderer;->buildLayer(Landroid/graphics/RenderNode;)V
 HSPLandroid/graphics/HardwareRenderer;->clearContent()V
+HSPLandroid/graphics/HardwareRenderer;->copySurfaceInto(Landroid/view/Surface;Landroid/graphics/Rect;Landroid/graphics/Bitmap;)I
+HSPLandroid/graphics/HardwareRenderer;->createHardwareBitmap(Landroid/graphics/RenderNode;II)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/HardwareRenderer;->createTextureLayer()Landroid/view/TextureLayer;
 HSPLandroid/graphics/HardwareRenderer;->destroy()V
+HSPLandroid/graphics/HardwareRenderer;->detachSurfaceTexture(J)V
 HSPLandroid/graphics/HardwareRenderer;->isWideGamut()Z
 HSPLandroid/graphics/HardwareRenderer;->loadSystemProperties()Z
 HSPLandroid/graphics/HardwareRenderer;->notifyFramePending()V
+HSPLandroid/graphics/HardwareRenderer;->onLayerDestroyed(Landroid/view/TextureLayer;)V
+HSPLandroid/graphics/HardwareRenderer;->overrideProperty(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/graphics/HardwareRenderer;->pause()Z
+HSPLandroid/graphics/HardwareRenderer;->pushLayerUpdate(Landroid/view/TextureLayer;)V
 HSPLandroid/graphics/HardwareRenderer;->registerAnimatingRenderNode(Landroid/graphics/RenderNode;)V
 HSPLandroid/graphics/HardwareRenderer;->registerVectorDrawableAnimator(Landroid/view/NativeVectorDrawableAnimator;)V
+HSPLandroid/graphics/HardwareRenderer;->removeObserver(Landroid/graphics/HardwareRendererObserver;)V
 HSPLandroid/graphics/HardwareRenderer;->setDebuggingEnabled(Z)V
 HSPLandroid/graphics/HardwareRenderer;->setFPSDivisor(I)V
 HSPLandroid/graphics/HardwareRenderer;->setForceDark(Z)Z
+HSPLandroid/graphics/HardwareRenderer;->setFrameCallback(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V
 HSPLandroid/graphics/HardwareRenderer;->setFrameCompleteCallback(Landroid/graphics/HardwareRenderer$FrameCompleteCallback;)V
 HSPLandroid/graphics/HardwareRenderer;->setHighContrastText(Z)V
 HSPLandroid/graphics/HardwareRenderer;->setLightSourceAlpha(FF)V
@@ -4447,6 +9282,10 @@
 HSPLandroid/graphics/HardwareRenderer;->validateAlpha(FLjava/lang/String;)V
 HSPLandroid/graphics/HardwareRenderer;->validateFinite(FLjava/lang/String;)V
 HSPLandroid/graphics/HardwareRenderer;->validatePositive(FLjava/lang/String;)V
+HSPLandroid/graphics/HardwareRendererObserver;-><init>(Landroid/graphics/HardwareRendererObserver$OnFrameMetricsAvailableListener;[JLandroid/os/Handler;)V
+HSPLandroid/graphics/HardwareRendererObserver;->getNativeInstance()J
+HSPLandroid/graphics/HardwareRendererObserver;->lambda$notifyDataAvailable$0$HardwareRendererObserver()V
+HSPLandroid/graphics/HardwareRendererObserver;->notifyDataAvailable()V
 HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;-><init>(Landroid/content/res/AssetManager$AssetInputStream;Landroid/content/res/Resources;Landroid/util/TypedValue;)V
 HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->createImageDecoder(Z)Landroid/graphics/ImageDecoder;
 HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->getDensity()I
@@ -4461,6 +9300,7 @@
 HSPLandroid/graphics/ImageDecoder$Source;-><init>()V
 HSPLandroid/graphics/ImageDecoder$Source;-><init>(Landroid/graphics/ImageDecoder$1;)V
 HSPLandroid/graphics/ImageDecoder$Source;->computeDstDensity()I
+HSPLandroid/graphics/ImageDecoder$Source;->getDensity()I
 HSPLandroid/graphics/ImageDecoder;-><init>(JIIZZ)V
 HSPLandroid/graphics/ImageDecoder;->access$300(Ljava/io/InputStream;ZZLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
 HSPLandroid/graphics/ImageDecoder;->access$500(Landroid/content/res/AssetManager$AssetInputStream;ZLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
@@ -4486,14 +9326,17 @@
 HSPLandroid/graphics/ImageDecoder;->setAllocator(I)V
 HSPLandroid/graphics/ImageDecoder;->setOutPaddingRect(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/ImageDecoder;->setTargetSize(II)V
+HSPLandroid/graphics/ImageFormat;->isPublicFormat(I)Z
 HSPLandroid/graphics/Insets$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Insets;
 HSPLandroid/graphics/Insets$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/graphics/Insets;-><init>(IIII)V
 HSPLandroid/graphics/Insets;-><init>(IIIILandroid/graphics/Insets$1;)V
 HSPLandroid/graphics/Insets;->equals(Ljava/lang/Object;)Z
 HSPLandroid/graphics/Insets;->max(Landroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets;
+HSPLandroid/graphics/Insets;->min(Landroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets;
 HSPLandroid/graphics/Insets;->of(IIII)Landroid/graphics/Insets;
 HSPLandroid/graphics/Insets;->of(Landroid/graphics/Rect;)Landroid/graphics/Insets;
+HSPLandroid/graphics/Insets;->subtract(Landroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets;
 HSPLandroid/graphics/Insets;->toRect()Landroid/graphics/Rect;
 HSPLandroid/graphics/Interpolator;-><init>(II)V
 HSPLandroid/graphics/Interpolator;->finalize()V
@@ -4502,12 +9345,15 @@
 HSPLandroid/graphics/Interpolator;->timeToValues(I[F)Landroid/graphics/Interpolator$Result;
 HSPLandroid/graphics/Interpolator;->timeToValues([F)Landroid/graphics/Interpolator$Result;
 HSPLandroid/graphics/LeakyTypefaceStorage;->readTypefaceFromParcel(Landroid/os/Parcel;)Landroid/graphics/Typeface;
+HSPLandroid/graphics/LeakyTypefaceStorage;->writeTypefaceToParcel(Landroid/graphics/Typeface;Landroid/os/Parcel;)V
 HSPLandroid/graphics/LinearGradient;-><init>(FFFFIILandroid/graphics/Shader$TileMode;)V
 HSPLandroid/graphics/LinearGradient;-><init>(FFFFJJLandroid/graphics/Shader$TileMode;)V
 HSPLandroid/graphics/LinearGradient;-><init>(FFFF[I[FLandroid/graphics/Shader$TileMode;)V
 HSPLandroid/graphics/LinearGradient;-><init>(FFFF[J[FLandroid/graphics/Shader$TileMode;)V
 HSPLandroid/graphics/LinearGradient;-><init>(FFFF[J[FLandroid/graphics/Shader$TileMode;Landroid/graphics/ColorSpace;)V
 HSPLandroid/graphics/LinearGradient;->createNativeInstance(J)J
+HSPLandroid/graphics/MaskFilter;-><init>()V
+HSPLandroid/graphics/MaskFilter;->finalize()V
 HSPLandroid/graphics/Matrix;-><init>()V
 HSPLandroid/graphics/Matrix;-><init>(Landroid/graphics/Matrix;)V
 HSPLandroid/graphics/Matrix;->checkPointArrays([FI[FII)V
@@ -4519,19 +9365,28 @@
 HSPLandroid/graphics/Matrix;->mapPoints([FI[FII)V
 HSPLandroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;)Z
 HSPLandroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z
+HSPLandroid/graphics/Matrix;->ni()J
+HSPLandroid/graphics/Matrix;->postConcat(Landroid/graphics/Matrix;)Z
+HSPLandroid/graphics/Matrix;->postRotate(F)Z
+HSPLandroid/graphics/Matrix;->postRotate(FFF)Z
 HSPLandroid/graphics/Matrix;->postScale(FF)Z
 HSPLandroid/graphics/Matrix;->postScale(FFFF)Z
 HSPLandroid/graphics/Matrix;->postTranslate(FF)Z
 HSPLandroid/graphics/Matrix;->preConcat(Landroid/graphics/Matrix;)Z
 HSPLandroid/graphics/Matrix;->preRotate(F)Z
+HSPLandroid/graphics/Matrix;->preRotate(FFF)Z
+HSPLandroid/graphics/Matrix;->preScale(FF)Z
 HSPLandroid/graphics/Matrix;->preTranslate(FF)Z
 HSPLandroid/graphics/Matrix;->rectStaysRect()Z
 HSPLandroid/graphics/Matrix;->reset()V
 HSPLandroid/graphics/Matrix;->set(Landroid/graphics/Matrix;)V
 HSPLandroid/graphics/Matrix;->setRectToRect(Landroid/graphics/RectF;Landroid/graphics/RectF;Landroid/graphics/Matrix$ScaleToFit;)Z
+HSPLandroid/graphics/Matrix;->setRotate(F)V
+HSPLandroid/graphics/Matrix;->setRotate(FFF)V
 HSPLandroid/graphics/Matrix;->setScale(FF)V
 HSPLandroid/graphics/Matrix;->setScale(FFFF)V
 HSPLandroid/graphics/Matrix;->setTranslate(FF)V
+HSPLandroid/graphics/Matrix;->setValues([F)V
 HSPLandroid/graphics/NinePatch$InsetStruct;-><init>(IIIIIIIIFIF)V
 HSPLandroid/graphics/NinePatch$InsetStruct;->scaleInsets(IIIIF)Landroid/graphics/Rect;
 HSPLandroid/graphics/NinePatch;-><init>(Landroid/graphics/Bitmap;[B)V
@@ -4561,6 +9416,7 @@
 HSPLandroid/graphics/Paint;-><init>(I)V
 HSPLandroid/graphics/Paint;-><init>(Landroid/graphics/Paint;)V
 HSPLandroid/graphics/Paint;->ascent()F
+HSPLandroid/graphics/Paint;->clearShadowLayer()V
 HSPLandroid/graphics/Paint;->descent()F
 HSPLandroid/graphics/Paint;->getAlpha()I
 HSPLandroid/graphics/Paint;->getColor()I
@@ -4585,20 +9441,32 @@
 HSPLandroid/graphics/Paint;->getShadowLayerDy()F
 HSPLandroid/graphics/Paint;->getShadowLayerRadius()F
 HSPLandroid/graphics/Paint;->getStartHyphenEdit()I
+HSPLandroid/graphics/Paint;->getStrokeCap()Landroid/graphics/Paint$Cap;
+HSPLandroid/graphics/Paint;->getStrokeJoin()Landroid/graphics/Paint$Join;
+HSPLandroid/graphics/Paint;->getStrokeMiter()F
 HSPLandroid/graphics/Paint;->getStrokeWidth()F
 HSPLandroid/graphics/Paint;->getStyle()Landroid/graphics/Paint$Style;
+HSPLandroid/graphics/Paint;->getTextAlign()Landroid/graphics/Paint$Align;
 HSPLandroid/graphics/Paint;->getTextBounds(Ljava/lang/CharSequence;IILandroid/graphics/Rect;)V
 HSPLandroid/graphics/Paint;->getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V
 HSPLandroid/graphics/Paint;->getTextBounds([CIILandroid/graphics/Rect;)V
 HSPLandroid/graphics/Paint;->getTextLocale()Ljava/util/Locale;
 HSPLandroid/graphics/Paint;->getTextLocales()Landroid/os/LocaleList;
 HSPLandroid/graphics/Paint;->getTextRunAdvances([CIIIIZ[FI)F
+HSPLandroid/graphics/Paint;->getTextRunCursor(Ljava/lang/CharSequence;IIZII)I
+HSPLandroid/graphics/Paint;->getTextRunCursor(Ljava/lang/String;IIZII)I
+HSPLandroid/graphics/Paint;->getTextRunCursor([CIIZII)I
 HSPLandroid/graphics/Paint;->getTextScaleX()F
 HSPLandroid/graphics/Paint;->getTextSize()F
+HSPLandroid/graphics/Paint;->getTextSkewX()F
+HSPLandroid/graphics/Paint;->getTextWidths(Ljava/lang/String;II[F)I
+HSPLandroid/graphics/Paint;->getTextWidths(Ljava/lang/String;[F)I
 HSPLandroid/graphics/Paint;->getTypeface()Landroid/graphics/Typeface;
 HSPLandroid/graphics/Paint;->getUnderlinePosition()F
 HSPLandroid/graphics/Paint;->getUnderlineThickness()F
+HSPLandroid/graphics/Paint;->getWordSpacing()F
 HSPLandroid/graphics/Paint;->getXfermode()Landroid/graphics/Xfermode;
+HSPLandroid/graphics/Paint;->hasShadowLayer()Z
 HSPLandroid/graphics/Paint;->installXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;
 HSPLandroid/graphics/Paint;->isAntiAlias()Z
 HSPLandroid/graphics/Paint;->isDither()Z
@@ -4606,9 +9474,12 @@
 HSPLandroid/graphics/Paint;->isFilterBitmap()Z
 HSPLandroid/graphics/Paint;->isStrikeThruText()Z
 HSPLandroid/graphics/Paint;->isUnderlineText()Z
+HSPLandroid/graphics/Paint;->measureText(Ljava/lang/CharSequence;II)F
 HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;)F
 HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;II)F
+HSPLandroid/graphics/Paint;->reset()V
 HSPLandroid/graphics/Paint;->set(Landroid/graphics/Paint;)V
+HSPLandroid/graphics/Paint;->setARGB(IIII)V
 HSPLandroid/graphics/Paint;->setAlpha(I)V
 HSPLandroid/graphics/Paint;->setAntiAlias(Z)V
 HSPLandroid/graphics/Paint;->setBlendMode(Landroid/graphics/BlendMode;)V
@@ -4617,18 +9488,23 @@
 HSPLandroid/graphics/Paint;->setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;
 HSPLandroid/graphics/Paint;->setCompatibilityScaling(F)V
 HSPLandroid/graphics/Paint;->setDither(Z)V
+HSPLandroid/graphics/Paint;->setElegantTextHeight(Z)V
 HSPLandroid/graphics/Paint;->setEndHyphenEdit(I)V
 HSPLandroid/graphics/Paint;->setFakeBoldText(Z)V
 HSPLandroid/graphics/Paint;->setFilterBitmap(Z)V
 HSPLandroid/graphics/Paint;->setFlags(I)V
+HSPLandroid/graphics/Paint;->setFontFeatureSettings(Ljava/lang/String;)V
 HSPLandroid/graphics/Paint;->setLetterSpacing(F)V
+HSPLandroid/graphics/Paint;->setMaskFilter(Landroid/graphics/MaskFilter;)Landroid/graphics/MaskFilter;
 HSPLandroid/graphics/Paint;->setPathEffect(Landroid/graphics/PathEffect;)Landroid/graphics/PathEffect;
 HSPLandroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
 HSPLandroid/graphics/Paint;->setShadowLayer(FFFI)V
 HSPLandroid/graphics/Paint;->setShadowLayer(FFFJ)V
 HSPLandroid/graphics/Paint;->setStartHyphenEdit(I)V
+HSPLandroid/graphics/Paint;->setStrikeThruText(Z)V
 HSPLandroid/graphics/Paint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
 HSPLandroid/graphics/Paint;->setStrokeJoin(Landroid/graphics/Paint$Join;)V
+HSPLandroid/graphics/Paint;->setStrokeMiter(F)V
 HSPLandroid/graphics/Paint;->setStrokeWidth(F)V
 HSPLandroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V
 HSPLandroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V
@@ -4641,25 +9517,42 @@
 HSPLandroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;
 HSPLandroid/graphics/Paint;->syncTextLocalesWithMinikin()V
 HSPLandroid/graphics/PaintFlagsDrawFilter;-><init>(II)V
+HSPLandroid/graphics/Path$Op;-><clinit>()V
+HSPLandroid/graphics/Path$Op;-><init>(Ljava/lang/String;I)V
 HSPLandroid/graphics/Path;-><init>()V
 HSPLandroid/graphics/Path;-><init>(Landroid/graphics/Path;)V
+HSPLandroid/graphics/Path;->addArc(FFFFFF)V
+HSPLandroid/graphics/Path;->addArc(Landroid/graphics/RectF;FF)V
+HSPLandroid/graphics/Path;->addCircle(FFFLandroid/graphics/Path$Direction;)V
+HSPLandroid/graphics/Path;->addOval(FFFFLandroid/graphics/Path$Direction;)V
+HSPLandroid/graphics/Path;->addOval(Landroid/graphics/RectF;Landroid/graphics/Path$Direction;)V
+HSPLandroid/graphics/Path;->addPath(Landroid/graphics/Path;)V
+HSPLandroid/graphics/Path;->addPath(Landroid/graphics/Path;Landroid/graphics/Matrix;)V
 HSPLandroid/graphics/Path;->addRect(FFFFLandroid/graphics/Path$Direction;)V
 HSPLandroid/graphics/Path;->addRect(Landroid/graphics/RectF;Landroid/graphics/Path$Direction;)V
+HSPLandroid/graphics/Path;->addRoundRect(FFFFFFLandroid/graphics/Path$Direction;)V
 HSPLandroid/graphics/Path;->addRoundRect(FFFF[FLandroid/graphics/Path$Direction;)V
+HSPLandroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Path$Direction;)V
 HSPLandroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/Path$Direction;)V
 HSPLandroid/graphics/Path;->approximate(F)[F
 HSPLandroid/graphics/Path;->arcTo(FFFFFFZ)V
+HSPLandroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FF)V
 HSPLandroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FFZ)V
 HSPLandroid/graphics/Path;->close()V
 HSPLandroid/graphics/Path;->computeBounds(Landroid/graphics/RectF;Z)V
 HSPLandroid/graphics/Path;->cubicTo(FFFFFF)V
 HSPLandroid/graphics/Path;->detectSimplePath(FFFFLandroid/graphics/Path$Direction;)V
 HSPLandroid/graphics/Path;->getFillType()Landroid/graphics/Path$FillType;
+HSPLandroid/graphics/Path;->isConvex()Z
 HSPLandroid/graphics/Path;->isEmpty()Z
 HSPLandroid/graphics/Path;->lineTo(FF)V
 HSPLandroid/graphics/Path;->moveTo(FF)V
+HSPLandroid/graphics/Path;->mutateNI()J
+HSPLandroid/graphics/Path;->offset(FF)V
 HSPLandroid/graphics/Path;->op(Landroid/graphics/Path;Landroid/graphics/Path$Op;)Z
 HSPLandroid/graphics/Path;->op(Landroid/graphics/Path;Landroid/graphics/Path;Landroid/graphics/Path$Op;)Z
+HSPLandroid/graphics/Path;->quadTo(FFFF)V
+HSPLandroid/graphics/Path;->rLineTo(FF)V
 HSPLandroid/graphics/Path;->readOnlyNI()J
 HSPLandroid/graphics/Path;->reset()V
 HSPLandroid/graphics/Path;->rewind()V
@@ -4667,31 +9560,67 @@
 HSPLandroid/graphics/Path;->setFillType(Landroid/graphics/Path$FillType;)V
 HSPLandroid/graphics/Path;->transform(Landroid/graphics/Matrix;)V
 HSPLandroid/graphics/Path;->transform(Landroid/graphics/Matrix;Landroid/graphics/Path;)V
+HSPLandroid/graphics/PathEffect;-><init>()V
+HSPLandroid/graphics/PathEffect;->finalize()V
+HSPLandroid/graphics/PathMeasure;-><init>()V
+HSPLandroid/graphics/PathMeasure;-><init>(Landroid/graphics/Path;Z)V
+HSPLandroid/graphics/PathMeasure;->finalize()V
+HSPLandroid/graphics/PathMeasure;->getLength()F
+HSPLandroid/graphics/PathMeasure;->getPosTan(F[F[F)Z
+HSPLandroid/graphics/PathMeasure;->getSegment(FFLandroid/graphics/Path;Z)Z
+HSPLandroid/graphics/PathMeasure;->setPath(Landroid/graphics/Path;Z)V
+HSPLandroid/graphics/Picture$PictureCanvas;-><init>(Landroid/graphics/Picture;J)V
+HSPLandroid/graphics/Picture;-><init>()V
+HSPLandroid/graphics/Picture;-><init>(J)V
+HSPLandroid/graphics/Picture;->beginRecording(II)Landroid/graphics/Canvas;
+HSPLandroid/graphics/Picture;->close()V
+HSPLandroid/graphics/Picture;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/graphics/Picture;->endRecording()V
+HSPLandroid/graphics/Picture;->finalize()V
+HSPLandroid/graphics/Picture;->getHeight()I
+HSPLandroid/graphics/Picture;->getWidth()I
+HSPLandroid/graphics/Picture;->requiresHardwareAcceleration()Z
+HSPLandroid/graphics/Picture;->verifyValid()V
 HSPLandroid/graphics/PixelFormat;->formatHasAlpha(I)Z
 HSPLandroid/graphics/Point$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Point;
 HSPLandroid/graphics/Point$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/graphics/Point;-><init>()V
 HSPLandroid/graphics/Point;-><init>(II)V
+HSPLandroid/graphics/Point;-><init>(Landroid/graphics/Point;)V
+HSPLandroid/graphics/Point;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/graphics/Point;->equals(II)Z
 HSPLandroid/graphics/Point;->equals(Ljava/lang/Object;)Z
+HSPLandroid/graphics/Point;->offset(II)V
 HSPLandroid/graphics/Point;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/graphics/Point;->set(II)V
+HSPLandroid/graphics/Point;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/graphics/PointF;-><init>()V
 HSPLandroid/graphics/PointF;-><init>(FF)V
+HSPLandroid/graphics/PointF;->equals(FF)Z
+HSPLandroid/graphics/PointF;->equals(Ljava/lang/Object;)Z
+HSPLandroid/graphics/PointF;->length()F
+HSPLandroid/graphics/PointF;->length(FF)F
 HSPLandroid/graphics/PointF;->set(FF)V
+HSPLandroid/graphics/PointF;->set(Landroid/graphics/PointF;)V
 HSPLandroid/graphics/PorterDuffColorFilter;-><init>(ILandroid/graphics/PorterDuff$Mode;)V
 HSPLandroid/graphics/PorterDuffColorFilter;->createNativeInstance()J
 HSPLandroid/graphics/PorterDuffColorFilter;->equals(Ljava/lang/Object;)Z
 HSPLandroid/graphics/PorterDuffColorFilter;->getColor()I
 HSPLandroid/graphics/PorterDuffColorFilter;->getMode()Landroid/graphics/PorterDuff$Mode;
 HSPLandroid/graphics/PorterDuffXfermode;-><init>(Landroid/graphics/PorterDuff$Mode;)V
+HSPLandroid/graphics/RadialGradient;-><init>(FFF[I[FLandroid/graphics/Shader$TileMode;)V
 HSPLandroid/graphics/RadialGradient;-><init>(FFF[J[FLandroid/graphics/Shader$TileMode;Landroid/graphics/ColorSpace;)V
 HSPLandroid/graphics/RadialGradient;->createNativeInstance(J)J
 HSPLandroid/graphics/RecordingCanvas;-><init>(Landroid/graphics/RenderNode;II)V
 HSPLandroid/graphics/RecordingCanvas;->disableZ()V
 HSPLandroid/graphics/RecordingCanvas;->drawCircle(Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;)V
 HSPLandroid/graphics/RecordingCanvas;->drawRenderNode(Landroid/graphics/RenderNode;)V
+HSPLandroid/graphics/RecordingCanvas;->drawTextureLayer(Landroid/view/TextureLayer;)V
+HSPLandroid/graphics/RecordingCanvas;->drawWebViewFunctor(I)V
 HSPLandroid/graphics/RecordingCanvas;->enableZ()V
 HSPLandroid/graphics/RecordingCanvas;->finishRecording()J
+HSPLandroid/graphics/RecordingCanvas;->getHeight()I
+HSPLandroid/graphics/RecordingCanvas;->getWidth()I
 HSPLandroid/graphics/RecordingCanvas;->isHardwareAccelerated()Z
 HSPLandroid/graphics/RecordingCanvas;->isRecordingFor(Ljava/lang/Object;)Z
 HSPLandroid/graphics/RecordingCanvas;->obtain(Landroid/graphics/RenderNode;II)Landroid/graphics/RecordingCanvas;
@@ -4699,6 +9628,7 @@
 HSPLandroid/graphics/RecordingCanvas;->throwIfCannotDraw(Landroid/graphics/Bitmap;)V
 HSPLandroid/graphics/Rect$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Rect;
 HSPLandroid/graphics/Rect$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/graphics/Rect$UnflattenHelper;->getMatcher(Ljava/lang/String;)Ljava/util/regex/Matcher;
 HSPLandroid/graphics/Rect;-><init>()V
 HSPLandroid/graphics/Rect;-><init>(IIII)V
 HSPLandroid/graphics/Rect;-><init>(Landroid/graphics/Rect;)V
@@ -4706,22 +9636,34 @@
 HSPLandroid/graphics/Rect;->centerY()I
 HSPLandroid/graphics/Rect;->contains(II)Z
 HSPLandroid/graphics/Rect;->contains(Landroid/graphics/Rect;)Z
+HSPLandroid/graphics/Rect;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLandroid/graphics/Rect;->equals(Ljava/lang/Object;)Z
 HSPLandroid/graphics/Rect;->exactCenterX()F
 HSPLandroid/graphics/Rect;->exactCenterY()F
+HSPLandroid/graphics/Rect;->hashCode()I
 HSPLandroid/graphics/Rect;->height()I
 HSPLandroid/graphics/Rect;->inset(II)V
+HSPLandroid/graphics/Rect;->inset(IIII)V
+HSPLandroid/graphics/Rect;->inset(Landroid/graphics/Insets;)V
+HSPLandroid/graphics/Rect;->inset(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/Rect;->intersect(IIII)Z
+HSPLandroid/graphics/Rect;->intersect(Landroid/graphics/Rect;)Z
+HSPLandroid/graphics/Rect;->intersectUnchecked(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/Rect;->intersects(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
 HSPLandroid/graphics/Rect;->isEmpty()Z
 HSPLandroid/graphics/Rect;->offset(II)V
 HSPLandroid/graphics/Rect;->offsetTo(II)V
 HSPLandroid/graphics/Rect;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/graphics/Rect;->readFromProto(Landroid/util/proto/ProtoInputStream;J)V
 HSPLandroid/graphics/Rect;->scale(F)V
 HSPLandroid/graphics/Rect;->set(IIII)V
 HSPLandroid/graphics/Rect;->set(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/Rect;->setEmpty()V
 HSPLandroid/graphics/Rect;->setIntersect(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
+HSPLandroid/graphics/Rect;->toShortString()Ljava/lang/String;
+HSPLandroid/graphics/Rect;->toShortString(Ljava/lang/StringBuilder;)Ljava/lang/String;
 HSPLandroid/graphics/Rect;->toString()Ljava/lang/String;
+HSPLandroid/graphics/Rect;->unflattenFromString(Ljava/lang/String;)Landroid/graphics/Rect;
 HSPLandroid/graphics/Rect;->union(IIII)V
 HSPLandroid/graphics/Rect;->union(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/Rect;->width()I
@@ -4729,13 +9671,18 @@
 HSPLandroid/graphics/RectF;-><init>()V
 HSPLandroid/graphics/RectF;-><init>(FFFF)V
 HSPLandroid/graphics/RectF;-><init>(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/RectF;-><init>(Landroid/graphics/RectF;)V
 HSPLandroid/graphics/RectF;->centerX()F
 HSPLandroid/graphics/RectF;->centerY()F
+HSPLandroid/graphics/RectF;->contains(FF)Z
+HSPLandroid/graphics/RectF;->equals(Ljava/lang/Object;)Z
 HSPLandroid/graphics/RectF;->height()F
 HSPLandroid/graphics/RectF;->inset(FF)V
 HSPLandroid/graphics/RectF;->intersect(FFFF)Z
 HSPLandroid/graphics/RectF;->isEmpty()Z
 HSPLandroid/graphics/RectF;->offset(FF)V
+HSPLandroid/graphics/RectF;->offsetTo(FF)V
+HSPLandroid/graphics/RectF;->round(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/RectF;->set(FFFF)V
 HSPLandroid/graphics/RectF;->set(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/RectF;->set(Landroid/graphics/RectF;)V
@@ -4743,18 +9690,40 @@
 HSPLandroid/graphics/RectF;->union(FFFF)V
 HSPLandroid/graphics/RectF;->union(Landroid/graphics/RectF;)V
 HSPLandroid/graphics/RectF;->width()F
+HSPLandroid/graphics/Region$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Region;
+HSPLandroid/graphics/Region$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/graphics/Region;-><init>()V
+HSPLandroid/graphics/Region;-><init>(IIII)V
 HSPLandroid/graphics/Region;-><init>(J)V
+HSPLandroid/graphics/Region;->access$000(Landroid/os/Parcel;)J
 HSPLandroid/graphics/Region;->equals(Ljava/lang/Object;)Z
 HSPLandroid/graphics/Region;->finalize()V
+HSPLandroid/graphics/Region;->getBounds()Landroid/graphics/Rect;
+HSPLandroid/graphics/Region;->ni()J
+HSPLandroid/graphics/Region;->obtain()Landroid/graphics/Region;
+HPLandroid/graphics/Region;->obtain(Landroid/graphics/Region;)Landroid/graphics/Region;
 HSPLandroid/graphics/Region;->op(IIIILandroid/graphics/Region$Op;)Z
+HSPLandroid/graphics/Region;->op(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z
+HSPLandroid/graphics/Region;->op(Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z
+HSPLandroid/graphics/Region;->op(Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z
+HSPLandroid/graphics/Region;->recycle()V
+HPLandroid/graphics/Region;->scale(F)V
 HSPLandroid/graphics/Region;->set(IIII)Z
+HSPLandroid/graphics/Region;->set(Landroid/graphics/Rect;)Z
 HSPLandroid/graphics/Region;->set(Landroid/graphics/Region;)Z
 HSPLandroid/graphics/Region;->setEmpty()V
+HSPLandroid/graphics/Region;->setPath(Landroid/graphics/Path;Landroid/graphics/Region;)Z
+HSPLandroid/graphics/Region;->toString()Ljava/lang/String;
+HSPLandroid/graphics/Region;->translate(II)V
+HSPLandroid/graphics/Region;->union(Landroid/graphics/Rect;)Z
 HSPLandroid/graphics/Region;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/graphics/RegionIterator;-><init>(Landroid/graphics/Region;)V
+HSPLandroid/graphics/RegionIterator;->finalize()V
+HSPLandroid/graphics/RegionIterator;->next(Landroid/graphics/Rect;)Z
 HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;-><init>([Landroid/graphics/RenderNode$PositionUpdateListener;)V
 HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->positionChanged(JIIII)V
 HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->positionLost(J)V
+HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->without(Landroid/graphics/RenderNode$PositionUpdateListener;)Landroid/graphics/RenderNode$CompositePositionUpdateListener;
 HSPLandroid/graphics/RenderNode;-><init>(J)V
 HSPLandroid/graphics/RenderNode;-><init>(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)V
 HSPLandroid/graphics/RenderNode;->addAnimator(Landroid/view/RenderNodeAnimator;)V
@@ -4782,10 +9751,14 @@
 HSPLandroid/graphics/RenderNode;->hasIdentityMatrix()Z
 HSPLandroid/graphics/RenderNode;->isAttached()Z
 HSPLandroid/graphics/RenderNode;->isPivotExplicitlySet()Z
+HSPLandroid/graphics/RenderNode;->offsetLeftAndRight(I)Z
 HSPLandroid/graphics/RenderNode;->offsetTopAndBottom(I)Z
 HSPLandroid/graphics/RenderNode;->registerVectorDrawableAnimator(Landroid/view/NativeVectorDrawableAnimator;)V
+HSPLandroid/graphics/RenderNode;->removePositionUpdateListener(Landroid/graphics/RenderNode$PositionUpdateListener;)V
 HSPLandroid/graphics/RenderNode;->setAlpha(F)Z
 HSPLandroid/graphics/RenderNode;->setAnimationMatrix(Landroid/graphics/Matrix;)Z
+HSPLandroid/graphics/RenderNode;->setBottom(I)Z
+HSPLandroid/graphics/RenderNode;->setClipRect(Landroid/graphics/Rect;)Z
 HSPLandroid/graphics/RenderNode;->setClipToBounds(Z)Z
 HSPLandroid/graphics/RenderNode;->setClipToOutline(Z)Z
 HSPLandroid/graphics/RenderNode;->setElevation(F)Z
@@ -4793,14 +9766,19 @@
 HSPLandroid/graphics/RenderNode;->setHasOverlappingRendering(Z)Z
 HSPLandroid/graphics/RenderNode;->setLayerPaint(Landroid/graphics/Paint;)Z
 HSPLandroid/graphics/RenderNode;->setLayerType(I)Z
+HSPLandroid/graphics/RenderNode;->setLeft(I)Z
 HSPLandroid/graphics/RenderNode;->setLeftTopRightBottom(IIII)Z
 HSPLandroid/graphics/RenderNode;->setOutline(Landroid/graphics/Outline;)Z
 HSPLandroid/graphics/RenderNode;->setPivotX(F)Z
 HSPLandroid/graphics/RenderNode;->setPivotY(F)Z
 HSPLandroid/graphics/RenderNode;->setProjectBackwards(Z)Z
 HSPLandroid/graphics/RenderNode;->setProjectionReceiver(Z)Z
+HSPLandroid/graphics/RenderNode;->setRevealClip(ZFFF)Z
+HSPLandroid/graphics/RenderNode;->setRight(I)Z
+HSPLandroid/graphics/RenderNode;->setRotationZ(F)Z
 HSPLandroid/graphics/RenderNode;->setScaleX(F)Z
 HSPLandroid/graphics/RenderNode;->setScaleY(F)Z
+HSPLandroid/graphics/RenderNode;->setTop(I)Z
 HSPLandroid/graphics/RenderNode;->setTranslationX(F)Z
 HSPLandroid/graphics/RenderNode;->setTranslationY(F)Z
 HSPLandroid/graphics/RenderNode;->setTranslationZ(F)Z
@@ -4814,9 +9792,25 @@
 HSPLandroid/graphics/Shader;->getNativeInstance()J
 HSPLandroid/graphics/Shader;->setLocalMatrix(Landroid/graphics/Matrix;)V
 HSPLandroid/graphics/Shader;->verifyNativeInstance()V
+HSPLandroid/graphics/SurfaceTexture$1;-><init>(Landroid/graphics/SurfaceTexture;Landroid/os/Looper;Landroid/os/Handler$Callback;ZLandroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V
+HSPLandroid/graphics/SurfaceTexture$1;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/graphics/SurfaceTexture;-><init>(I)V
+HSPLandroid/graphics/SurfaceTexture;-><init>(IZ)V
+HSPLandroid/graphics/SurfaceTexture;-><init>(Z)V
+HSPLandroid/graphics/SurfaceTexture;->finalize()V
+HSPLandroid/graphics/SurfaceTexture;->getTransformMatrix([F)V
+HSPLandroid/graphics/SurfaceTexture;->isSingleBuffered()Z
+HSPLandroid/graphics/SurfaceTexture;->postEventFromNative(Ljava/lang/ref/WeakReference;)V
+HSPLandroid/graphics/SurfaceTexture;->release()V
+HSPLandroid/graphics/SurfaceTexture;->setDefaultBufferSize(II)V
+HSPLandroid/graphics/SurfaceTexture;->setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V
+HSPLandroid/graphics/SurfaceTexture;->setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;Landroid/os/Handler;)V
+HSPLandroid/graphics/SurfaceTexture;->updateTexImage()V
 HSPLandroid/graphics/TemporaryBuffer;->obtain(I)[C
 HSPLandroid/graphics/TemporaryBuffer;->recycle([C)V
+HSPLandroid/graphics/Typeface$Builder;-><init>(Landroid/content/res/AssetManager;Ljava/lang/String;)V
 HSPLandroid/graphics/Typeface$Builder;-><init>(Landroid/content/res/AssetManager;Ljava/lang/String;ZI)V
+HSPLandroid/graphics/Typeface$Builder;->access$000(Landroid/content/res/AssetManager;Ljava/lang/String;I[Landroid/graphics/fonts/FontVariationAxis;IILjava/lang/String;)Ljava/lang/String;
 HSPLandroid/graphics/Typeface$Builder;->build()Landroid/graphics/Typeface;
 HSPLandroid/graphics/Typeface$Builder;->createAssetUid(Landroid/content/res/AssetManager;Ljava/lang/String;I[Landroid/graphics/fonts/FontVariationAxis;IILjava/lang/String;)Ljava/lang/String;
 HSPLandroid/graphics/Typeface$CustomFallbackBuilder;-><init>(Landroid/graphics/fonts/FontFamily;)V
@@ -4830,10 +9824,33 @@
 HSPLandroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
 HSPLandroid/graphics/Typeface;->create(Ljava/lang/String;I)Landroid/graphics/Typeface;
 HSPLandroid/graphics/Typeface;->createFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;
+HSPLandroid/graphics/Typeface;->createFromResources(Landroid/content/res/FontResourcesParser$FamilyResourceEntry;Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;
+HSPLandroid/graphics/Typeface;->defaultFromStyle(I)Landroid/graphics/Typeface;
+HSPLandroid/graphics/Typeface;->equals(Ljava/lang/Object;)Z
 HSPLandroid/graphics/Typeface;->findFromCache(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;
 HSPLandroid/graphics/Typeface;->getStyle()I
 HSPLandroid/graphics/Typeface;->getSystemDefaultTypeface(Ljava/lang/String;)Landroid/graphics/Typeface;
 HSPLandroid/graphics/Xfermode;-><init>()V
+HSPLandroid/graphics/animation/-$$Lambda$awqPSgriNRe12PWP0zkpAtPsfV4;-><init>(Landroid/graphics/animation/RenderNodeAnimator;)V
+HSPLandroid/graphics/animation/-$$Lambda$awqPSgriNRe12PWP0zkpAtPsfV4;->run()V
+HSPLandroid/graphics/animation/NativeInterpolatorFactory;->createNativeInterpolator(Landroid/animation/TimeInterpolator;J)J
+HSPLandroid/graphics/animation/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;F)V
+HSPLandroid/graphics/animation/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;IF)V
+HSPLandroid/graphics/animation/RenderNodeAnimator;->applyInterpolator()V
+HSPLandroid/graphics/animation/RenderNodeAnimator;->callOnFinished(Landroid/graphics/animation/RenderNodeAnimator;)V
+HSPLandroid/graphics/animation/RenderNodeAnimator;->checkMutable()V
+HSPLandroid/graphics/animation/RenderNodeAnimator;->cloneListeners()Ljava/util/ArrayList;
+HSPLandroid/graphics/animation/RenderNodeAnimator;->end()V
+HSPLandroid/graphics/animation/RenderNodeAnimator;->getNativeAnimator()J
+HSPLandroid/graphics/animation/RenderNodeAnimator;->init(J)V
+HSPLandroid/graphics/animation/RenderNodeAnimator;->isNativeInterpolator(Landroid/animation/TimeInterpolator;)Z
+HSPLandroid/graphics/animation/RenderNodeAnimator;->isRunning()Z
+HSPLandroid/graphics/animation/RenderNodeAnimator;->onFinished()V
+HSPLandroid/graphics/animation/RenderNodeAnimator;->releaseNativePtr()V
+HSPLandroid/graphics/animation/RenderNodeAnimator;->setDuration(J)Landroid/graphics/animation/RenderNodeAnimator;
+HSPLandroid/graphics/animation/RenderNodeAnimator;->setStartDelay(J)V
+HSPLandroid/graphics/animation/RenderNodeAnimator;->setTarget(Landroid/graphics/RenderNode;)V
+HSPLandroid/graphics/animation/RenderNodeAnimator;->start()V
 HSPLandroid/graphics/drawable/-$$Lambda$AnimatedVectorDrawable$VectorDrawableAnimatorRT$PzjgSeyQweoFjbEZJP80UteZqm8;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V
 HSPLandroid/graphics/drawable/-$$Lambda$AnimatedVectorDrawable$VectorDrawableAnimatorRT$PzjgSeyQweoFjbEZJP80UteZqm8;->run()V
 HSPLandroid/graphics/drawable/-$$Lambda$BitmapDrawable$LMqt8JvxZ4giSOIRAtlCKDg39Jw;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
@@ -4848,27 +9865,45 @@
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->canConstantState()Z
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->getChangingConfigurations()I
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->invalidateCache()V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->isStateful()Z
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->newDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->setDensity(I)V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;-><init>()V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;-><init>(Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;-><init>(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->addLayer(ILandroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;)V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->canApplyTheme()Z
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->createConstantState(Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getBackground()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getChangingConfigurations()I
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getExtraInsetFraction()F
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getForeground()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getIconMask()Landroid/graphics/Path;
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getIntrinsicHeight()I
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getIntrinsicWidth()I
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getMaxIntrinsicHeight()I
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getMaxIntrinsicWidth()I
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getOpacity()I
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->inflateLayers(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->invalidateSelf()V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->isStateful()Z
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->jumpToCurrentState()V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->mutate()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->resumeChildInvalidation()V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->setVisible(ZZ)Z
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->suspendChildInvalidation()V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->updateLayerBounds(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->updateLayerFromTypedArray(Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->updateMaskBoundsInternal(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/Animatable2$AnimationCallback;-><init>()V
+HSPLandroid/graphics/drawable/Animatable2$AnimationCallback;->onAnimationStart(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;Landroid/graphics/drawable/AnimatedStateListDrawable;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->addStateSet([ILandroid/graphics/drawable/Drawable;I)I
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->addTransition(IILandroid/graphics/drawable/Drawable;Z)I
@@ -4876,8 +9911,23 @@
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->generateTransitionKey(II)J
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->getKeyframeIdAt(I)I
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->indexOfKeyframe([I)I
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->indexOfTransition(II)I
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->isTransitionReversed(II)Z
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->mutate()V
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->transitionHasReversibleFlag(II)Z
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable;ZZ)V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->start()V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->stop()V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;-><init>(Landroid/graphics/drawable/AnimationDrawable;ZZ)V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;->start()V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;->stop()V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;-><init>(Landroid/graphics/drawable/AnimationDrawable;Z)V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;->getInterpolation(F)F
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;->getTotalDuration()I
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;->updateFrames(Landroid/graphics/drawable/AnimationDrawable;Z)I
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$Transition;-><init>()V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$Transition;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$1;)V
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable;-><init>()V
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;Landroid/content/res/Resources;Landroid/graphics/drawable/AnimatedStateListDrawable$1;)V
@@ -4896,9 +9946,13 @@
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->parseTransition(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)I
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->selectTransition(I)Z
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->setVisible(ZZ)Z
 HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$1;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$1;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$2;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$2;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$2;->onAnimationStart(Landroid/animation/Animator;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;-><init>(IFLjava/lang/String;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/animation/Animator;
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;Landroid/graphics/drawable/Drawable$Callback;Landroid/content/res/Resources;)V
@@ -4907,21 +9961,30 @@
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->canApplyTheme()Z
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->getChangingConfigurations()I
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->inflatePendingAnimators(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->newDrawable()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->prepareLocalAnimator(I)Landroid/animation/Animator;
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->prepareLocalAnimators(Landroid/animation/AnimatorSet;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->access$200(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;)Landroid/animation/Animator$AnimatorListener;
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->access$300(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->addPendingAction(I)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->callOnFinished(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createFloatDataPoints(Landroid/animation/PropertyValuesHolder$PropertyValues$DataSource;J)[F
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createNativeChildAnimator(JJLandroid/animation/ObjectAnimator;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimator(Landroid/animation/ObjectAnimator;J)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForFullPath(Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VFullPath;J)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForGroup([Landroid/animation/PropertyValuesHolder;Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VGroup;J)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForPath(Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VPath;J)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->end()V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->endAnimation()V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->getAnimatorNativePtr()J
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->getFrameCount(J)I
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->handlePendingAction(I)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->init(Landroid/animation/AnimatorSet;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->invalidateOwningView()V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isInfinite()Z
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isRunning()Z
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isStarted()Z
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->lambda$callOnFinished$0(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->onAnimationEnd(I)V
@@ -4929,37 +9992,61 @@
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->parseAnimatorSet(Landroid/animation/AnimatorSet;J)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->pause()V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->recordLastSeenTarget(Landroid/graphics/RecordingCanvas;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->reset()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->setListener(Landroid/animation/Animator$AnimatorListener;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->start()V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->startAnimation()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->transferPendingActions(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->useLastSeenTarget()Z
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->useTarget(Landroid/graphics/RenderNode;)Z
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->init(Landroid/animation/AnimatorSet;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->invalidateOwningView()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->isInfinite()Z
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->setListener(Landroid/animation/Animator$AnimatorListener;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->start()V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;-><init>()V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;Landroid/content/res/Resources;Landroid/graphics/drawable/AnimatedVectorDrawable$1;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$1000(JJ)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$1100(JIFF)J
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$1200(J[FI)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$1300(JJJ)J
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$1400(JIFF)J
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$1800(JJJJJII)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$1900(JLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$2000(J)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$400()Z
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$600(Landroid/animation/Animator;Ljava/lang/String;Landroid/graphics/drawable/VectorDrawable;Z)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$700(Landroid/graphics/drawable/AnimatedVectorDrawable;)Ljava/util/ArrayList;
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$800()J
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$900(Landroid/graphics/drawable/AnimatedVectorDrawable;)Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->canApplyTheme()Z
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->clearAnimationCallbacks()V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->clearMutated()V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->containsSameValueType(Landroid/animation/PropertyValuesHolder;Landroid/util/Property;)Z
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->ensureAnimatorSet()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->fallbackOntoUI()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->forceAnimationOnUI()V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getChangingConfigurations()I
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getIntrinsicHeight()I
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getIntrinsicWidth()I
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getOpacity()I
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->isStateful()Z
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->mutate()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->onStateChange([I)Z
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->registerAnimationCallback(Landroid/graphics/drawable/Animatable2$AnimationCallback;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->removeAnimatorSetListener()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->reset()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setHotspot(FF)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setVisible(ZZ)Z
 HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->shouldIgnoreInvalidAnimation()Z
@@ -4969,19 +10056,31 @@
 HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;-><init>(Landroid/graphics/drawable/AnimationDrawable$AnimationState;Landroid/graphics/drawable/AnimationDrawable;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->access$000(Landroid/graphics/drawable/AnimationDrawable$AnimationState;)Z
 HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->access$002(Landroid/graphics/drawable/AnimationDrawable$AnimationState;Z)Z
+HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->access$100(Landroid/graphics/drawable/AnimationDrawable$AnimationState;)[I
+HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->access$200(Landroid/graphics/drawable/AnimationDrawable$AnimationState;)V
 HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->addFrame(Landroid/graphics/drawable/Drawable;I)V
+HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->growArray(II)V
+HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->mutate()V
 HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/AnimationDrawable;-><init>()V
 HSPLandroid/graphics/drawable/AnimationDrawable;-><init>(Landroid/graphics/drawable/AnimationDrawable$AnimationState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/AnimationDrawable;-><init>(Landroid/graphics/drawable/AnimationDrawable$AnimationState;Landroid/content/res/Resources;Landroid/graphics/drawable/AnimationDrawable$1;)V
+HSPLandroid/graphics/drawable/AnimationDrawable;->clearMutated()V
 HSPLandroid/graphics/drawable/AnimationDrawable;->cloneConstantState()Landroid/graphics/drawable/AnimationDrawable$AnimationState;
 HSPLandroid/graphics/drawable/AnimationDrawable;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
+HSPLandroid/graphics/drawable/AnimationDrawable;->getDuration(I)I
+HSPLandroid/graphics/drawable/AnimationDrawable;->getNumberOfFrames()I
 HSPLandroid/graphics/drawable/AnimationDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/AnimationDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/AnimationDrawable;->isRunning()Z
 HSPLandroid/graphics/drawable/AnimationDrawable;->mutate()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/AnimationDrawable;->nextFrame(Z)V
+HSPLandroid/graphics/drawable/AnimationDrawable;->run()V
 HSPLandroid/graphics/drawable/AnimationDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
 HSPLandroid/graphics/drawable/AnimationDrawable;->setFrame(IZZ)V
 HSPLandroid/graphics/drawable/AnimationDrawable;->setVisible(ZZ)Z
+HSPLandroid/graphics/drawable/AnimationDrawable;->start()V
+HSPLandroid/graphics/drawable/AnimationDrawable;->stop()V
 HSPLandroid/graphics/drawable/AnimationDrawable;->unscheduleSelf(Ljava/lang/Runnable;)V
 HSPLandroid/graphics/drawable/AnimationDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;-><init>(Landroid/graphics/Bitmap;)V
@@ -4992,6 +10091,7 @@
 HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/BitmapDrawable;-><init>()V
 HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V
+HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/Bitmap;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/drawable/BitmapDrawable$BitmapState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/drawable/BitmapDrawable$BitmapState;Landroid/content/res/Resources;Landroid/graphics/drawable/BitmapDrawable$1;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
@@ -4999,6 +10099,7 @@
 HSPLandroid/graphics/drawable/BitmapDrawable;->clearMutated()V
 HSPLandroid/graphics/drawable/BitmapDrawable;->computeBitmapSize()V
 HSPLandroid/graphics/drawable/BitmapDrawable;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->getAlpha()I
 HSPLandroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
 HSPLandroid/graphics/drawable/BitmapDrawable;->getChangingConfigurations()I
 HSPLandroid/graphics/drawable/BitmapDrawable;->getColorFilter()Landroid/graphics/ColorFilter;
@@ -5007,6 +10108,7 @@
 HSPLandroid/graphics/drawable/BitmapDrawable;->getIntrinsicWidth()I
 HSPLandroid/graphics/drawable/BitmapDrawable;->getOpacity()I
 HSPLandroid/graphics/drawable/BitmapDrawable;->getOutline(Landroid/graphics/Outline;)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->getPaint()Landroid/graphics/Paint;
 HSPLandroid/graphics/drawable/BitmapDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->init(Landroid/graphics/drawable/BitmapDrawable$BitmapState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->isAutoMirrored()Z
@@ -5018,16 +10120,31 @@
 HSPLandroid/graphics/drawable/BitmapDrawable;->onStateChange([I)Z
 HSPLandroid/graphics/drawable/BitmapDrawable;->setAlpha(I)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->setAutoMirrored(Z)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->setBitmap(Landroid/graphics/Bitmap;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->setDither(Z)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->setGravity(I)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->setMipMap(Z)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->setTileModeXY(Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->updateDstRectAndInsetsIfDirty()V
 HSPLandroid/graphics/drawable/BitmapDrawable;->updateLocalState(Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;I)V
 HSPLandroid/graphics/drawable/BitmapDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/ClipDrawable$ClipState;-><init>(Landroid/graphics/drawable/ClipDrawable$ClipState;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/ClipDrawable$ClipState;->access$002(Landroid/graphics/drawable/ClipDrawable$ClipState;[I)[I
+HSPLandroid/graphics/drawable/ClipDrawable$ClipState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/ClipDrawable;-><init>()V
+HSPLandroid/graphics/drawable/ClipDrawable;-><init>(Landroid/graphics/drawable/ClipDrawable$ClipState;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/ClipDrawable;-><init>(Landroid/graphics/drawable/ClipDrawable$ClipState;Landroid/content/res/Resources;Landroid/graphics/drawable/ClipDrawable$1;)V
+HSPLandroid/graphics/drawable/ClipDrawable;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/graphics/drawable/ClipDrawable;->getOpacity()I
+HSPLandroid/graphics/drawable/ClipDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/ClipDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
+HSPLandroid/graphics/drawable/ClipDrawable;->onLevelChange(I)Z
+HSPLandroid/graphics/drawable/ClipDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/ClipDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/ColorDrawable$ColorState;-><init>()V
 HSPLandroid/graphics/drawable/ColorDrawable$ColorState;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;)V
 HSPLandroid/graphics/drawable/ColorDrawable$ColorState;->canApplyTheme()Z
@@ -5053,14 +10170,37 @@
 HSPLandroid/graphics/drawable/ColorDrawable;->onStateChange([I)Z
 HSPLandroid/graphics/drawable/ColorDrawable;->setAlpha(I)V
 HSPLandroid/graphics/drawable/ColorDrawable;->setColor(I)V
+HSPLandroid/graphics/drawable/ColorDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
+HSPLandroid/graphics/drawable/ColorDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/graphics/drawable/ColorDrawable;->updateLocalState(Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/ColorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/ColorStateListDrawable$ColorStateListDrawableState;-><init>()V
+HSPLandroid/graphics/drawable/ColorStateListDrawable$ColorStateListDrawableState;->canApplyTheme()Z
+HSPLandroid/graphics/drawable/ColorStateListDrawable$ColorStateListDrawableState;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/ColorStateListDrawable$ColorStateListDrawableState;->isStateful()Z
+HSPLandroid/graphics/drawable/ColorStateListDrawable$ColorStateListDrawableState;->newDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/ColorStateListDrawable;-><init>(Landroid/content/res/ColorStateList;)V
+HSPLandroid/graphics/drawable/ColorStateListDrawable;-><init>(Landroid/graphics/drawable/ColorStateListDrawable$ColorStateListDrawableState;)V
+HSPLandroid/graphics/drawable/ColorStateListDrawable;-><init>(Landroid/graphics/drawable/ColorStateListDrawable$ColorStateListDrawableState;Landroid/graphics/drawable/ColorStateListDrawable$1;)V
+HSPLandroid/graphics/drawable/ColorStateListDrawable;->canApplyTheme()Z
+HSPLandroid/graphics/drawable/ColorStateListDrawable;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/graphics/drawable/ColorStateListDrawable;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/ColorStateListDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
+HSPLandroid/graphics/drawable/ColorStateListDrawable;->getOpacity()I
+HSPLandroid/graphics/drawable/ColorStateListDrawable;->initializeColorDrawable()V
+HSPLandroid/graphics/drawable/ColorStateListDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/graphics/drawable/ColorStateListDrawable;->isStateful()Z
+HSPLandroid/graphics/drawable/ColorStateListDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/ColorStateListDrawable;->onStateChange([I)Z
+HSPLandroid/graphics/drawable/ColorStateListDrawable;->setColorStateList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/graphics/drawable/Drawable$ConstantState;-><init>()V
 HSPLandroid/graphics/drawable/Drawable$ConstantState;->canApplyTheme()Z
+HSPLandroid/graphics/drawable/Drawable$ConstantState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/Drawable$ConstantState;->newDrawable(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/Drawable;-><init>()V
 HSPLandroid/graphics/drawable/Drawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/Drawable;->canApplyTheme()Z
+HSPLandroid/graphics/drawable/Drawable;->clearColorFilter()V
 HSPLandroid/graphics/drawable/Drawable;->clearMutated()V
 HSPLandroid/graphics/drawable/Drawable;->copyBounds(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/drawable/Drawable;->createFromXmlForDensity(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
@@ -5070,6 +10210,7 @@
 HSPLandroid/graphics/drawable/Drawable;->getCallback()Landroid/graphics/drawable/Drawable$Callback;
 HSPLandroid/graphics/drawable/Drawable;->getChangingConfigurations()I
 HSPLandroid/graphics/drawable/Drawable;->getColorFilter()Landroid/graphics/ColorFilter;
+HSPLandroid/graphics/drawable/Drawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
 HSPLandroid/graphics/drawable/Drawable;->getCurrent()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/Drawable;->getDirtyBounds()Landroid/graphics/Rect;
 HSPLandroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
@@ -5091,6 +10232,7 @@
 HSPLandroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/Drawable;->obtainAttributes(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
 HSPLandroid/graphics/drawable/Drawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/Drawable;->onLayoutDirectionChanged(I)Z
 HSPLandroid/graphics/drawable/Drawable;->onLevelChange(I)Z
 HSPLandroid/graphics/drawable/Drawable;->onStateChange([I)Z
 HSPLandroid/graphics/drawable/Drawable;->parseBlendMode(ILandroid/graphics/BlendMode;)Landroid/graphics/BlendMode;
@@ -5120,6 +10262,7 @@
 HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;-><init>()V
 HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;-><init>(Landroid/graphics/drawable/DrawableContainer$1;)V
 HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V
 HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->unwrap()Landroid/graphics/drawable/Drawable$Callback;
 HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->wrap(Landroid/graphics/drawable/Drawable$Callback;)Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;-><init>(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/DrawableContainer;Landroid/content/res/Resources;)V
@@ -5129,12 +10272,16 @@
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->canApplyTheme()Z
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->canConstantState()Z
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->clearMutated()V
+HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->computeConstantSize()V
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->createAllFutures()V
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getCapacity()I
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getChangingConfigurations()I
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getChild(I)Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getChildCount()I
+HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getChildren()[Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getConstantHeight()I
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getConstantPadding()Landroid/graphics/Rect;
+HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getConstantWidth()I
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getOpacity()I
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->growArray(II)V
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->invalidateCache()V
@@ -5148,6 +10295,7 @@
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->setVariablePadding(Z)V
 HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->updateDensity(Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/DrawableContainer;-><init>()V
+HSPLandroid/graphics/drawable/DrawableContainer;->animate(Z)V
 HSPLandroid/graphics/drawable/DrawableContainer;->applyTheme(Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/DrawableContainer;->canApplyTheme()Z
 HSPLandroid/graphics/drawable/DrawableContainer;->clearMutated()V
@@ -5162,6 +10310,7 @@
 HSPLandroid/graphics/drawable/DrawableContainer;->getMinimumHeight()I
 HSPLandroid/graphics/drawable/DrawableContainer;->getMinimumWidth()I
 HSPLandroid/graphics/drawable/DrawableContainer;->getOpacity()I
+HSPLandroid/graphics/drawable/DrawableContainer;->getOpticalInsets()Landroid/graphics/Insets;
 HSPLandroid/graphics/drawable/DrawableContainer;->getOutline(Landroid/graphics/Outline;)V
 HSPLandroid/graphics/drawable/DrawableContainer;->getPadding(Landroid/graphics/Rect;)Z
 HSPLandroid/graphics/drawable/DrawableContainer;->initializeDrawableForDisplay(Landroid/graphics/drawable/Drawable;)V
@@ -5172,15 +10321,20 @@
 HSPLandroid/graphics/drawable/DrawableContainer;->mutate()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/DrawableContainer;->needsMirroring()Z
 HSPLandroid/graphics/drawable/DrawableContainer;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/DrawableContainer;->onLevelChange(I)Z
 HSPLandroid/graphics/drawable/DrawableContainer;->onStateChange([I)Z
 HSPLandroid/graphics/drawable/DrawableContainer;->selectDrawable(I)Z
+HSPLandroid/graphics/drawable/DrawableContainer;->setAlpha(I)V
 HSPLandroid/graphics/drawable/DrawableContainer;->setAutoMirrored(Z)V
 HSPLandroid/graphics/drawable/DrawableContainer;->setColorFilter(Landroid/graphics/ColorFilter;)V
 HSPLandroid/graphics/drawable/DrawableContainer;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
+HSPLandroid/graphics/drawable/DrawableContainer;->setCurrentIndex(I)V
 HSPLandroid/graphics/drawable/DrawableContainer;->setDither(Z)V
 HSPLandroid/graphics/drawable/DrawableContainer;->setHotspot(FF)V
+HSPLandroid/graphics/drawable/DrawableContainer;->setTintBlendMode(Landroid/graphics/BlendMode;)V
 HSPLandroid/graphics/drawable/DrawableContainer;->setTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/graphics/drawable/DrawableContainer;->setVisible(ZZ)Z
+HSPLandroid/graphics/drawable/DrawableContainer;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V
 HSPLandroid/graphics/drawable/DrawableContainer;->updateDensity(Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/DrawableInflater;-><init>(Landroid/content/res/Resources;Ljava/lang/ClassLoader;)V
 HSPLandroid/graphics/drawable/DrawableInflater;->inflateFromClass(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;
@@ -5195,16 +10349,19 @@
 HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->newDrawable()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->onDensityChanged(II)V
 HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->setDensity(I)V
+HSPLandroid/graphics/drawable/DrawableWrapper;-><init>(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/graphics/drawable/DrawableWrapper;-><init>(Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/DrawableWrapper;->applyTheme(Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/DrawableWrapper;->canApplyTheme()Z
 HSPLandroid/graphics/drawable/DrawableWrapper;->clearMutated()V
 HSPLandroid/graphics/drawable/DrawableWrapper;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/DrawableWrapper;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/DrawableWrapper;->getColorFilter()Landroid/graphics/ColorFilter;
 HSPLandroid/graphics/drawable/DrawableWrapper;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
 HSPLandroid/graphics/drawable/DrawableWrapper;->getDrawable()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/DrawableWrapper;->getIntrinsicHeight()I
 HSPLandroid/graphics/drawable/DrawableWrapper;->getIntrinsicWidth()I
+HSPLandroid/graphics/drawable/DrawableWrapper;->getOpacity()I
 HSPLandroid/graphics/drawable/DrawableWrapper;->getPadding(Landroid/graphics/Rect;)Z
 HSPLandroid/graphics/drawable/DrawableWrapper;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/DrawableWrapper;->inflateChildDrawable(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
@@ -5212,12 +10369,17 @@
 HSPLandroid/graphics/drawable/DrawableWrapper;->isStateful()Z
 HSPLandroid/graphics/drawable/DrawableWrapper;->jumpToCurrentState()V
 HSPLandroid/graphics/drawable/DrawableWrapper;->mutate()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/DrawableWrapper;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
 HSPLandroid/graphics/drawable/DrawableWrapper;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/DrawableWrapper;->onLayoutDirectionChanged(I)Z
 HSPLandroid/graphics/drawable/DrawableWrapper;->onLevelChange(I)Z
 HSPLandroid/graphics/drawable/DrawableWrapper;->onStateChange([I)Z
+HSPLandroid/graphics/drawable/DrawableWrapper;->setAlpha(I)V
 HSPLandroid/graphics/drawable/DrawableWrapper;->setColorFilter(Landroid/graphics/ColorFilter;)V
 HSPLandroid/graphics/drawable/DrawableWrapper;->setDrawable(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/graphics/drawable/DrawableWrapper;->setHotspot(FF)V
+HSPLandroid/graphics/drawable/DrawableWrapper;->setTintBlendMode(Landroid/graphics/BlendMode;)V
+HSPLandroid/graphics/drawable/DrawableWrapper;->setTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/graphics/drawable/DrawableWrapper;->setVisible(ZZ)Z
 HSPLandroid/graphics/drawable/DrawableWrapper;->updateLocalState(Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/DrawableWrapper;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
@@ -5235,6 +10397,7 @@
 HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setCornerRadius(F)V
 HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setDensity(I)V
 HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setGradientColors([I)V
+HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setShape(I)V
 HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setSolidColors(Landroid/content/res/ColorStateList;)V
 HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setStroke(ILandroid/content/res/ColorStateList;FF)V
 HSPLandroid/graphics/drawable/GradientDrawable;-><init>()V
@@ -5243,11 +10406,13 @@
 HSPLandroid/graphics/drawable/GradientDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/GradientDrawable;->applyThemeChildElements(Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/GradientDrawable;->buildPathIfDirty()V
+HSPLandroid/graphics/drawable/GradientDrawable;->buildRing(Landroid/graphics/drawable/GradientDrawable$GradientState;)Landroid/graphics/Path;
 HSPLandroid/graphics/drawable/GradientDrawable;->canApplyTheme()Z
 HSPLandroid/graphics/drawable/GradientDrawable;->clearMutated()V
 HSPLandroid/graphics/drawable/GradientDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/GradientDrawable;->ensureValidRect()Z
 HSPLandroid/graphics/drawable/GradientDrawable;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/GradientDrawable;->getColorFilter()Landroid/graphics/ColorFilter;
 HSPLandroid/graphics/drawable/GradientDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
 HSPLandroid/graphics/drawable/GradientDrawable;->getFloatOrFraction(Landroid/content/res/TypedArray;IF)F
 HSPLandroid/graphics/drawable/GradientDrawable;->getIntrinsicHeight()I
@@ -5263,6 +10428,7 @@
 HSPLandroid/graphics/drawable/GradientDrawable;->modulateAlpha(I)I
 HSPLandroid/graphics/drawable/GradientDrawable;->mutate()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/GradientDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/GradientDrawable;->onLevelChange(I)Z
 HSPLandroid/graphics/drawable/GradientDrawable;->onStateChange([I)Z
 HSPLandroid/graphics/drawable/GradientDrawable;->setAlpha(I)V
 HSPLandroid/graphics/drawable/GradientDrawable;->setColor(I)V
@@ -5271,9 +10437,13 @@
 HSPLandroid/graphics/drawable/GradientDrawable;->setCornerRadii([F)V
 HSPLandroid/graphics/drawable/GradientDrawable;->setCornerRadius(F)V
 HSPLandroid/graphics/drawable/GradientDrawable;->setDither(Z)V
+HSPLandroid/graphics/drawable/GradientDrawable;->setShape(I)V
+HSPLandroid/graphics/drawable/GradientDrawable;->setStroke(II)V
+HSPLandroid/graphics/drawable/GradientDrawable;->setStroke(IIFF)V
 HSPLandroid/graphics/drawable/GradientDrawable;->setStroke(ILandroid/content/res/ColorStateList;)V
 HSPLandroid/graphics/drawable/GradientDrawable;->setStroke(ILandroid/content/res/ColorStateList;FF)V
 HSPLandroid/graphics/drawable/GradientDrawable;->setStrokeInternal(IIFF)V
+HSPLandroid/graphics/drawable/GradientDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V
 HSPLandroid/graphics/drawable/GradientDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/graphics/drawable/GradientDrawable;->updateDrawableCorners(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableGradient(Landroid/content/res/Resources;Landroid/content/res/TypedArray;)V
@@ -5288,18 +10458,28 @@
 HSPLandroid/graphics/drawable/Icon;-><init>(I)V
 HSPLandroid/graphics/drawable/Icon;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/graphics/drawable/Icon;-><init>(Landroid/os/Parcel;Landroid/graphics/drawable/Icon$1;)V
+HSPLandroid/graphics/drawable/Icon;->createFromStream(Ljava/io/InputStream;)Landroid/graphics/drawable/Icon;
+HSPLandroid/graphics/drawable/Icon;->createWithAdaptiveBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Icon;
 HSPLandroid/graphics/drawable/Icon;->createWithBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Icon;
 HSPLandroid/graphics/drawable/Icon;->createWithResource(Landroid/content/Context;I)Landroid/graphics/drawable/Icon;
 HSPLandroid/graphics/drawable/Icon;->createWithResource(Ljava/lang/String;I)Landroid/graphics/drawable/Icon;
 HSPLandroid/graphics/drawable/Icon;->getBitmap()Landroid/graphics/Bitmap;
 HSPLandroid/graphics/drawable/Icon;->getResId()I
 HSPLandroid/graphics/drawable/Icon;->getResPackage()Ljava/lang/String;
+HSPLandroid/graphics/drawable/Icon;->getResources()Landroid/content/res/Resources;
 HSPLandroid/graphics/drawable/Icon;->getType()I
 HSPLandroid/graphics/drawable/Icon;->hasTint()Z
+HSPLandroid/graphics/drawable/Icon;->loadDrawable(Landroid/content/Context;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/Icon;->loadDrawableAsUser(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/Icon;->loadDrawableInner(Landroid/content/Context;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/Icon;->sameAs(Landroid/graphics/drawable/Icon;)Z
 HSPLandroid/graphics/drawable/Icon;->scaleDownIfNecessary(II)V
 HSPLandroid/graphics/drawable/Icon;->scaleDownIfNecessary(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
 HSPLandroid/graphics/drawable/Icon;->setBitmap(Landroid/graphics/Bitmap;)V
+HSPLandroid/graphics/drawable/Icon;->setTint(I)Landroid/graphics/drawable/Icon;
+HSPLandroid/graphics/drawable/Icon;->setTintMode(Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/drawable/Icon;
 HSPLandroid/graphics/drawable/Icon;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/graphics/drawable/Icon;->writeToStream(Ljava/io/OutputStream;)V
 HSPLandroid/graphics/drawable/InsetDrawable$InsetState;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->access$000(Landroid/graphics/drawable/InsetDrawable$InsetState;)[I
 HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->access$002(Landroid/graphics/drawable/InsetDrawable$InsetState;[I)[I
@@ -5312,6 +10492,7 @@
 HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;->getDimension(I)I
 HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;->scaleFromDensity(II)V
 HSPLandroid/graphics/drawable/InsetDrawable;-><init>()V
+HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/Drawable;I)V
 HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/Drawable;IIII)V
 HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;Landroid/graphics/drawable/InsetDrawable$1;)V
@@ -5330,6 +10511,7 @@
 HSPLandroid/graphics/drawable/InsetDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(I)V
 HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->applyDensityScaling(II)V
 HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->canApplyTheme()Z
 HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->setDensity(I)V
 HSPLandroid/graphics/drawable/LayerDrawable$LayerState;-><init>(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V
@@ -5346,6 +10528,7 @@
 HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->getOpacity()I
 HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->invalidateCache()V
 HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->isStateful()Z
+HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->newDrawable()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->onDensityChanged(II)V
 HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->setDensity(I)V
@@ -5365,6 +10548,7 @@
 HSPLandroid/graphics/drawable/LayerDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/LayerDrawable;->ensurePadding()V
 HSPLandroid/graphics/drawable/LayerDrawable;->findDrawableByLayerId(I)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/LayerDrawable;->findIndexByLayerId(I)I
 HSPLandroid/graphics/drawable/LayerDrawable;->getChangingConfigurations()I
 HSPLandroid/graphics/drawable/LayerDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
 HSPLandroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
@@ -5383,28 +10567,55 @@
 HSPLandroid/graphics/drawable/LayerDrawable;->jumpToCurrentState()V
 HSPLandroid/graphics/drawable/LayerDrawable;->mutate()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/LayerDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/LayerDrawable;->onLayoutDirectionChanged(I)Z
+HSPLandroid/graphics/drawable/LayerDrawable;->onLevelChange(I)Z
 HSPLandroid/graphics/drawable/LayerDrawable;->onStateChange([I)Z
 HSPLandroid/graphics/drawable/LayerDrawable;->refreshChildPadding(ILandroid/graphics/drawable/LayerDrawable$ChildDrawable;)Z
 HSPLandroid/graphics/drawable/LayerDrawable;->refreshPadding()V
 HSPLandroid/graphics/drawable/LayerDrawable;->resolveGravity(IIIII)I
 HSPLandroid/graphics/drawable/LayerDrawable;->resumeChildInvalidation()V
+HSPLandroid/graphics/drawable/LayerDrawable;->setAlpha(I)V
 HSPLandroid/graphics/drawable/LayerDrawable;->setAutoMirrored(Z)V
 HSPLandroid/graphics/drawable/LayerDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
 HSPLandroid/graphics/drawable/LayerDrawable;->setDither(Z)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setDrawable(ILandroid/graphics/drawable/Drawable;)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z
 HSPLandroid/graphics/drawable/LayerDrawable;->setHotspot(FF)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setId(II)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setLayerInset(IIIII)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setLayerInsetInternal(IIIIIII)V
 HSPLandroid/graphics/drawable/LayerDrawable;->setPaddingMode(I)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/graphics/drawable/LayerDrawable;->setVisible(ZZ)Z
 HSPLandroid/graphics/drawable/LayerDrawable;->suspendChildInvalidation()V
 HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBounds(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerFromTypedArray(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/LayerDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;-><init>(Landroid/graphics/drawable/LevelListDrawable$LevelListState;Landroid/graphics/drawable/LevelListDrawable;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;->access$000(Landroid/graphics/drawable/LevelListDrawable$LevelListState;)V
+HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;->addLevel(IILandroid/graphics/drawable/Drawable;)V
+HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;->growArray(II)V
+HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;->indexOfLevel(I)I
+HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;->mutate()V
+HSPLandroid/graphics/drawable/LevelListDrawable$LevelListState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/LevelListDrawable;-><init>()V
+HSPLandroid/graphics/drawable/LevelListDrawable;-><init>(Landroid/graphics/drawable/LevelListDrawable$LevelListState;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/LevelListDrawable;-><init>(Landroid/graphics/drawable/LevelListDrawable$LevelListState;Landroid/content/res/Resources;Landroid/graphics/drawable/LevelListDrawable$1;)V
+HSPLandroid/graphics/drawable/LevelListDrawable;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
+HSPLandroid/graphics/drawable/LevelListDrawable;->cloneConstantState()Landroid/graphics/drawable/LevelListDrawable$LevelListState;
+HSPLandroid/graphics/drawable/LevelListDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/LevelListDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/LevelListDrawable;->mutate()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/LevelListDrawable;->onLevelChange(I)Z
+HSPLandroid/graphics/drawable/LevelListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
 HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>()V
 HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZ)V
 HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;)V
 HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->canApplyTheme()Z
 HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->newDrawable()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/NinePatchDrawable;-><init>()V
 HSPLandroid/graphics/drawable/NinePatchDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Landroid/graphics/Rect;Ljava/lang/String;)V
@@ -5421,6 +10632,7 @@
 HSPLandroid/graphics/drawable/NinePatchDrawable;->getIntrinsicHeight()I
 HSPLandroid/graphics/drawable/NinePatchDrawable;->getIntrinsicWidth()I
 HSPLandroid/graphics/drawable/NinePatchDrawable;->getOpacity()I
+HSPLandroid/graphics/drawable/NinePatchDrawable;->getOpticalInsets()Landroid/graphics/Insets;
 HSPLandroid/graphics/drawable/NinePatchDrawable;->getOutline(Landroid/graphics/Outline;)V
 HSPLandroid/graphics/drawable/NinePatchDrawable;->getPadding(Landroid/graphics/Rect;)Z
 HSPLandroid/graphics/drawable/NinePatchDrawable;->getPaint()Landroid/graphics/Paint;
@@ -5431,18 +10643,36 @@
 HSPLandroid/graphics/drawable/NinePatchDrawable;->mutate()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/NinePatchDrawable;->needsMirroring()Z
 HSPLandroid/graphics/drawable/NinePatchDrawable;->onStateChange([I)Z
+HSPLandroid/graphics/drawable/NinePatchDrawable;->setAlpha(I)V
 HSPLandroid/graphics/drawable/NinePatchDrawable;->setAutoMirrored(Z)V
+HSPLandroid/graphics/drawable/NinePatchDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
 HSPLandroid/graphics/drawable/NinePatchDrawable;->setDither(Z)V
+HSPLandroid/graphics/drawable/NinePatchDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V
+HSPLandroid/graphics/drawable/NinePatchDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/graphics/drawable/NinePatchDrawable;->updateLocalState(Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/NinePatchDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/RippleBackground$1;->get(Landroid/graphics/drawable/RippleBackground;)Ljava/lang/Float;
+HSPLandroid/graphics/drawable/RippleBackground$1;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/graphics/drawable/RippleBackground$1;->setValue(Landroid/graphics/drawable/RippleBackground;F)V
+HSPLandroid/graphics/drawable/RippleBackground$1;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/graphics/drawable/RippleBackground;->access$000(Landroid/graphics/drawable/RippleBackground;)F
+HSPLandroid/graphics/drawable/RippleBackground;->access$002(Landroid/graphics/drawable/RippleBackground;F)F
+HSPLandroid/graphics/drawable/RippleBackground;->isVisible()Z
+HSPLandroid/graphics/drawable/RippleBackground;->jumpToFinal()V
+HSPLandroid/graphics/drawable/RippleBackground;->onStateChanged()V
+HSPLandroid/graphics/drawable/RippleBackground;->setState(ZZZ)V
 HSPLandroid/graphics/drawable/RippleComponent;-><init>(Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/Rect;)V
 HSPLandroid/graphics/drawable/RippleComponent;->getTargetRadius(Landroid/graphics/Rect;)F
 HSPLandroid/graphics/drawable/RippleComponent;->invalidateSelf()V
+HSPLandroid/graphics/drawable/RippleComponent;->onBoundsChange()V
+HSPLandroid/graphics/drawable/RippleComponent;->onHotspotBoundsChanged()V
+HSPLandroid/graphics/drawable/RippleComponent;->onTargetRadiusChanged(F)V
 HSPLandroid/graphics/drawable/RippleComponent;->setup(FI)V
 HSPLandroid/graphics/drawable/RippleDrawable$RippleState;-><init>(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/RippleDrawable;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->applyDensityScaling(II)V
 HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->canApplyTheme()Z
 HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->newDrawable()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->onDensityChanged(II)V
 HSPLandroid/graphics/drawable/RippleDrawable;-><init>()V
@@ -5479,6 +10709,7 @@
 HSPLandroid/graphics/drawable/RippleDrawable;->pruneRipples()V
 HSPLandroid/graphics/drawable/RippleDrawable;->setBackgroundActive(ZZZ)V
 HSPLandroid/graphics/drawable/RippleDrawable;->setColor(Landroid/content/res/ColorStateList;)V
+HSPLandroid/graphics/drawable/RippleDrawable;->setForceSoftware(Z)V
 HSPLandroid/graphics/drawable/RippleDrawable;->setHotspot(FF)V
 HSPLandroid/graphics/drawable/RippleDrawable;->setHotspotBounds(IIII)V
 HSPLandroid/graphics/drawable/RippleDrawable;->setPaddingMode(I)V
@@ -5523,6 +10754,7 @@
 HSPLandroid/graphics/drawable/RippleForeground;->computeFadeOutDelay()J
 HSPLandroid/graphics/drawable/RippleForeground;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/drawable/RippleForeground;->drawHardware(Landroid/graphics/RecordingCanvas;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/drawable/RippleForeground;->drawSoftware(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/drawable/RippleForeground;->end()V
 HSPLandroid/graphics/drawable/RippleForeground;->enter()V
 HSPLandroid/graphics/drawable/RippleForeground;->exit()V
@@ -5550,6 +10782,8 @@
 HSPLandroid/graphics/drawable/RotateDrawable;-><init>(Landroid/graphics/drawable/RotateDrawable$RotateState;Landroid/content/res/Resources;Landroid/graphics/drawable/RotateDrawable$1;)V
 HSPLandroid/graphics/drawable/RotateDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/RotateDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/RotateDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
+HSPLandroid/graphics/drawable/RotateDrawable;->onLevelChange(I)Z
 HSPLandroid/graphics/drawable/RotateDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/RotateDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/ScaleDrawable$ScaleState;-><init>(Landroid/graphics/drawable/ScaleDrawable$ScaleState;Landroid/content/res/Resources;)V
@@ -5560,18 +10794,25 @@
 HSPLandroid/graphics/drawable/ScaleDrawable;-><init>(Landroid/graphics/drawable/ScaleDrawable$ScaleState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/ScaleDrawable;-><init>(Landroid/graphics/drawable/ScaleDrawable$ScaleState;Landroid/content/res/Resources;Landroid/graphics/drawable/ScaleDrawable$1;)V
 HSPLandroid/graphics/drawable/ScaleDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/ScaleDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/ScaleDrawable;->getPercent(Landroid/content/res/TypedArray;IF)F
 HSPLandroid/graphics/drawable/ScaleDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/ScaleDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
 HSPLandroid/graphics/drawable/ScaleDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/ScaleDrawable;->onLevelChange(I)Z
 HSPLandroid/graphics/drawable/ScaleDrawable;->updateLocalState()V
 HSPLandroid/graphics/drawable/ScaleDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/ScaleDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/ShapeDrawable$ShapeState;-><init>()V
+HSPLandroid/graphics/drawable/ShapeDrawable$ShapeState;-><init>(Landroid/graphics/drawable/ShapeDrawable$ShapeState;)V
+HSPLandroid/graphics/drawable/ShapeDrawable$ShapeState;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/ShapeDrawable;-><init>()V
 HSPLandroid/graphics/drawable/ShapeDrawable;-><init>(Landroid/graphics/drawable/ShapeDrawable$ShapeState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/ShapeDrawable;-><init>(Landroid/graphics/drawable/shapes/Shape;)V
 HSPLandroid/graphics/drawable/ShapeDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/ShapeDrawable;->getAlpha()I
+HSPLandroid/graphics/drawable/ShapeDrawable;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/ShapeDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
 HSPLandroid/graphics/drawable/ShapeDrawable;->getIntrinsicHeight()I
 HSPLandroid/graphics/drawable/ShapeDrawable;->getIntrinsicWidth()I
 HSPLandroid/graphics/drawable/ShapeDrawable;->getOpacity()I
@@ -5580,9 +10821,15 @@
 HSPLandroid/graphics/drawable/ShapeDrawable;->getPaint()Landroid/graphics/Paint;
 HSPLandroid/graphics/drawable/ShapeDrawable;->isStateful()Z
 HSPLandroid/graphics/drawable/ShapeDrawable;->modulateAlpha(II)I
+HSPLandroid/graphics/drawable/ShapeDrawable;->mutate()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/ShapeDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
 HSPLandroid/graphics/drawable/ShapeDrawable;->onDraw(Landroid/graphics/drawable/shapes/Shape;Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/drawable/ShapeDrawable;->setAlpha(I)V
+HSPLandroid/graphics/drawable/ShapeDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
+HSPLandroid/graphics/drawable/ShapeDrawable;->setIntrinsicHeight(I)V
+HSPLandroid/graphics/drawable/ShapeDrawable;->setIntrinsicWidth(I)V
+HSPLandroid/graphics/drawable/ShapeDrawable;->setShape(Landroid/graphics/drawable/shapes/Shape;)V
+HSPLandroid/graphics/drawable/ShapeDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/graphics/drawable/ShapeDrawable;->updateLocalState()V
 HSPLandroid/graphics/drawable/ShapeDrawable;->updateShape()V
 HSPLandroid/graphics/drawable/StateListDrawable$StateListState;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/graphics/drawable/StateListDrawable;Landroid/content/res/Resources;)V
@@ -5590,11 +10837,13 @@
 HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->canApplyTheme()Z
 HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->indexOfStateSet([I)I
 HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->mutate()V
+HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->newDrawable()Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/graphics/drawable/StateListDrawable;-><init>()V
 HSPLandroid/graphics/drawable/StateListDrawable;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;)V
 HSPLandroid/graphics/drawable/StateListDrawable;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/content/res/Resources;)V
 HSPLandroid/graphics/drawable/StateListDrawable;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/content/res/Resources;Landroid/graphics/drawable/StateListDrawable$1;)V
+HSPLandroid/graphics/drawable/StateListDrawable;->addState([ILandroid/graphics/drawable/Drawable;)V
 HSPLandroid/graphics/drawable/StateListDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/StateListDrawable;->clearMutated()V
 HSPLandroid/graphics/drawable/StateListDrawable;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
@@ -5608,20 +10857,48 @@
 HSPLandroid/graphics/drawable/StateListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
 HSPLandroid/graphics/drawable/StateListDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/TransitionDrawable$TransitionState;-><init>(Landroid/graphics/drawable/TransitionDrawable$TransitionState;Landroid/graphics/drawable/TransitionDrawable;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/TransitionDrawable$TransitionState;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/TransitionDrawable$TransitionState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/TransitionDrawable;-><init>()V
+HSPLandroid/graphics/drawable/TransitionDrawable;-><init>(Landroid/graphics/drawable/TransitionDrawable$TransitionState;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/TransitionDrawable;-><init>(Landroid/graphics/drawable/TransitionDrawable$TransitionState;Landroid/content/res/Resources;Landroid/graphics/drawable/TransitionDrawable$1;)V
+HSPLandroid/graphics/drawable/TransitionDrawable;-><init>(Landroid/graphics/drawable/TransitionDrawable$TransitionState;[Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/graphics/drawable/TransitionDrawable;-><init>([Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/graphics/drawable/TransitionDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/LayerDrawable$LayerState;
 HSPLandroid/graphics/drawable/TransitionDrawable;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/graphics/drawable/TransitionDrawable;->resetTransition()V
+HSPLandroid/graphics/drawable/TransitionDrawable;->setCrossFadeEnabled(Z)V
+HSPLandroid/graphics/drawable/TransitionDrawable;->startTransition(I)V
+HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;-><init>()V
+HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;-><init>(Landroid/graphics/drawable/VectorDrawable$VClipPath;)V
+HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->canApplyTheme()Z
+HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->getNativePtr()J
+HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->getNativeSize()I
+HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->isStateful()Z
+HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;-><init>()V
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;-><init>(Landroid/graphics/drawable/VectorDrawable$VFullPath;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->applyTheme(Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->canApplyTheme()Z
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->canComplexColorApplyTheme(Landroid/content/res/ComplexColor;)Z
+HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getFillColor()I
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getNativePtr()J
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getNativeSize()I
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getProperty(Ljava/lang/String;)Landroid/util/Property;
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getPropertyIndex(Ljava/lang/String;)I
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->isStateful()Z
+HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->onStateChange([I)Z
 HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup$2;->setValue(Landroid/graphics/drawable/VectorDrawable$VGroup;F)V
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup$2;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup$3;->setValue(Landroid/graphics/drawable/VectorDrawable$VGroup;F)V
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup$3;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup$4;->setValue(Landroid/graphics/drawable/VectorDrawable$VGroup;F)V
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup$4;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup$5;->setValue(Landroid/graphics/drawable/VectorDrawable$VGroup;F)V
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup$5;->setValue(Ljava/lang/Object;F)V
 HSPLandroid/graphics/drawable/VectorDrawable$VGroup;-><init>()V
 HSPLandroid/graphics/drawable/VectorDrawable$VGroup;-><init>(Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/util/ArrayMap;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->access$100(Landroid/graphics/drawable/VectorDrawable$VGroup;)I
@@ -5637,14 +10914,22 @@
 HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->isStateful()Z
 HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->onStateChange([I)Z
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->setScaleX(F)V
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->setScaleY(F)V
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->setTranslateX(F)V
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->setTranslateY(F)V
 HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->setTree(Lcom/android/internal/util/VirtualRefBasePtr;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VObject;-><init>()V
+HSPLandroid/graphics/drawable/VectorDrawable$VObject;->isTreeValid()Z
 HSPLandroid/graphics/drawable/VectorDrawable$VObject;->setTree(Lcom/android/internal/util/VirtualRefBasePtr;)V
+HSPLandroid/graphics/drawable/VectorDrawable$VPath$1;->set(Landroid/graphics/drawable/VectorDrawable$VPath;Landroid/util/PathParser$PathData;)V
+HSPLandroid/graphics/drawable/VectorDrawable$VPath$1;->set(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VPath;-><init>()V
 HSPLandroid/graphics/drawable/VectorDrawable$VPath;-><init>(Landroid/graphics/drawable/VectorDrawable$VPath;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VPath;->getPathName()Ljava/lang/String;
 HSPLandroid/graphics/drawable/VectorDrawable$VPath;->getProperty(Ljava/lang/String;)Landroid/util/Property;
+HSPLandroid/graphics/drawable/VectorDrawable$VPath;->setPathData(Landroid/util/PathParser$PathData;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;-><init>(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->access$000(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VGroup;)V
 HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->applyDensityScaling(II)V
@@ -5675,16 +10960,25 @@
 HSPLandroid/graphics/drawable/VectorDrawable;->access$1900(J[FI)Z
 HSPLandroid/graphics/drawable/VectorDrawable;->access$2000(JLjava/lang/String;)V
 HSPLandroid/graphics/drawable/VectorDrawable;->access$2100(JFFFFFFF)V
+HSPLandroid/graphics/drawable/VectorDrawable;->access$2900(JF)V
 HSPLandroid/graphics/drawable/VectorDrawable;->access$300(J)J
+HSPLandroid/graphics/drawable/VectorDrawable;->access$3100(JF)V
+HSPLandroid/graphics/drawable/VectorDrawable;->access$3300(JF)V
+HSPLandroid/graphics/drawable/VectorDrawable;->access$3500(JF)V
+HSPLandroid/graphics/drawable/VectorDrawable;->access$3600(JJ)V
+HSPLandroid/graphics/drawable/VectorDrawable;->access$3700()J
+HSPLandroid/graphics/drawable/VectorDrawable;->access$3800(J)J
 HSPLandroid/graphics/drawable/VectorDrawable;->access$3900(JLjava/lang/String;I)V
 HSPLandroid/graphics/drawable/VectorDrawable;->access$400(JJ)J
 HSPLandroid/graphics/drawable/VectorDrawable;->access$4800()J
 HSPLandroid/graphics/drawable/VectorDrawable;->access$4900(J)J
+HSPLandroid/graphics/drawable/VectorDrawable;->access$5100(JI)V
 HSPLandroid/graphics/drawable/VectorDrawable;->access$5200(J[BI)Z
 HSPLandroid/graphics/drawable/VectorDrawable;->access$5300(JJ)V
 HSPLandroid/graphics/drawable/VectorDrawable;->access$5400(JJ)V
 HSPLandroid/graphics/drawable/VectorDrawable;->access$5500(JFIFIFFFFFIII)V
 HSPLandroid/graphics/drawable/VectorDrawable;->access$600(JFF)V
+HSPLandroid/graphics/drawable/VectorDrawable;->access$6100(J)I
 HSPLandroid/graphics/drawable/VectorDrawable;->access$700(JF)Z
 HSPLandroid/graphics/drawable/VectorDrawable;->access$800(J)F
 HSPLandroid/graphics/drawable/VectorDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
@@ -5694,11 +10988,13 @@
 HSPLandroid/graphics/drawable/VectorDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/graphics/drawable/VectorDrawable;->getAlpha()I
 HSPLandroid/graphics/drawable/VectorDrawable;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/VectorDrawable;->getColorFilter()Landroid/graphics/ColorFilter;
 HSPLandroid/graphics/drawable/VectorDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
 HSPLandroid/graphics/drawable/VectorDrawable;->getIntrinsicHeight()I
 HSPLandroid/graphics/drawable/VectorDrawable;->getIntrinsicWidth()I
 HSPLandroid/graphics/drawable/VectorDrawable;->getNativeTree()J
 HSPLandroid/graphics/drawable/VectorDrawable;->getOpacity()I
+HSPLandroid/graphics/drawable/VectorDrawable;->getOpticalInsets()Landroid/graphics/Insets;
 HSPLandroid/graphics/drawable/VectorDrawable;->getPixelSize()F
 HSPLandroid/graphics/drawable/VectorDrawable;->getTargetByName(Ljava/lang/String;)Ljava/lang/Object;
 HSPLandroid/graphics/drawable/VectorDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
@@ -5709,6 +11005,7 @@
 HSPLandroid/graphics/drawable/VectorDrawable;->needMirroring()Z
 HSPLandroid/graphics/drawable/VectorDrawable;->onStateChange([I)Z
 HSPLandroid/graphics/drawable/VectorDrawable;->setAllowCaching(Z)V
+HSPLandroid/graphics/drawable/VectorDrawable;->setAlpha(I)V
 HSPLandroid/graphics/drawable/VectorDrawable;->setAutoMirrored(Z)V
 HSPLandroid/graphics/drawable/VectorDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
 HSPLandroid/graphics/drawable/VectorDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V
@@ -5719,16 +11016,26 @@
 HSPLandroid/graphics/drawable/shapes/OvalShape;-><init>()V
 HSPLandroid/graphics/drawable/shapes/OvalShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
 HSPLandroid/graphics/drawable/shapes/OvalShape;->getOutline(Landroid/graphics/Outline;)V
+HSPLandroid/graphics/drawable/shapes/PathShape;-><init>(Landroid/graphics/Path;FF)V
+HSPLandroid/graphics/drawable/shapes/PathShape;->clone()Landroid/graphics/drawable/shapes/PathShape;
+HSPLandroid/graphics/drawable/shapes/PathShape;->clone()Landroid/graphics/drawable/shapes/Shape;
+HSPLandroid/graphics/drawable/shapes/PathShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/drawable/shapes/PathShape;->onResize(FF)V
 HSPLandroid/graphics/drawable/shapes/RectShape;-><init>()V
 HSPLandroid/graphics/drawable/shapes/RectShape;->onResize(FF)V
 HSPLandroid/graphics/drawable/shapes/RectShape;->rect()Landroid/graphics/RectF;
+HSPLandroid/graphics/drawable/shapes/RoundRectShape;-><init>([FLandroid/graphics/RectF;[F)V
+HSPLandroid/graphics/drawable/shapes/RoundRectShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/drawable/shapes/RoundRectShape;->onResize(FF)V
 HSPLandroid/graphics/drawable/shapes/Shape;-><init>()V
+HSPLandroid/graphics/drawable/shapes/Shape;->clone()Landroid/graphics/drawable/shapes/Shape;
 HSPLandroid/graphics/drawable/shapes/Shape;->resize(FF)V
 HSPLandroid/graphics/fonts/Font$Builder;-><init>(Landroid/content/res/AssetManager;Ljava/lang/String;ZI)V
 HSPLandroid/graphics/fonts/Font$Builder;-><init>(Landroid/os/ParcelFileDescriptor;)V
 HSPLandroid/graphics/fonts/Font$Builder;-><init>(Landroid/os/ParcelFileDescriptor;JJ)V
 HSPLandroid/graphics/fonts/Font$Builder;-><init>(Ljava/nio/ByteBuffer;)V
 HSPLandroid/graphics/fonts/Font$Builder;->build()Landroid/graphics/fonts/Font;
+HSPLandroid/graphics/fonts/Font$Builder;->createBuffer(Landroid/content/res/AssetManager;Ljava/lang/String;ZI)Ljava/nio/ByteBuffer;
 HSPLandroid/graphics/fonts/Font$Builder;->setFontVariationSettings([Landroid/graphics/fonts/FontVariationAxis;)Landroid/graphics/fonts/Font$Builder;
 HSPLandroid/graphics/fonts/Font$Builder;->setSlant(I)Landroid/graphics/fonts/Font$Builder;
 HSPLandroid/graphics/fonts/Font$Builder;->setTtcIndex(I)Landroid/graphics/fonts/Font$Builder;
@@ -5753,6 +11060,7 @@
 HSPLandroid/graphics/fonts/FontStyle;->getMatchScore(Landroid/graphics/fonts/FontStyle;)I
 HSPLandroid/graphics/fonts/FontStyle;->getSlant()I
 HSPLandroid/graphics/fonts/FontStyle;->getWeight()I
+HSPLandroid/graphics/fonts/FontVariationAxis;->fromFontVariationSettings(Ljava/lang/String;)[Landroid/graphics/fonts/FontVariationAxis;
 HSPLandroid/graphics/fonts/SystemFonts;->getSystemFallback(Ljava/lang/String;)[Landroid/graphics/fonts/FontFamily;
 HSPLandroid/graphics/text/LineBreaker$Builder;-><init>()V
 HSPLandroid/graphics/text/LineBreaker$Builder;->build()Landroid/graphics/text/LineBreaker;
@@ -5789,6 +11097,7 @@
 HSPLandroid/graphics/text/LineBreaker;->access$700(JI)I
 HSPLandroid/graphics/text/LineBreaker;->computeLineBreaks(Landroid/graphics/text/MeasuredText;Landroid/graphics/text/LineBreaker$ParagraphConstraints;I)Landroid/graphics/text/LineBreaker$Result;
 HSPLandroid/graphics/text/MeasuredText$Builder;-><init>([C)V
+HSPLandroid/graphics/text/MeasuredText$Builder;->appendReplacementRun(Landroid/graphics/Paint;IF)Landroid/graphics/text/MeasuredText$Builder;
 HSPLandroid/graphics/text/MeasuredText$Builder;->appendStyleRun(Landroid/graphics/Paint;IZ)Landroid/graphics/text/MeasuredText$Builder;
 HSPLandroid/graphics/text/MeasuredText$Builder;->build()Landroid/graphics/text/MeasuredText;
 HSPLandroid/graphics/text/MeasuredText$Builder;->ensureNativePtrNoReuse()V
@@ -5799,32 +11108,92 @@
 HSPLandroid/graphics/text/MeasuredText;->getCharWidthAt(I)F
 HSPLandroid/graphics/text/MeasuredText;->getChars()[C
 HSPLandroid/graphics/text/MeasuredText;->getNativePtr()J
+HSPLandroid/hardware/Camera$CameraInfo;-><init>()V
+HSPLandroid/hardware/Camera;->getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V
 HSPLandroid/hardware/CameraStatus$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/CameraStatus;
 HSPLandroid/hardware/CameraStatus$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/hardware/CameraStatus$1;->newArray(I)[Landroid/hardware/CameraStatus;
 HSPLandroid/hardware/CameraStatus$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/hardware/CameraStatus;-><init>()V
+HSPLandroid/hardware/CameraStatus;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/hardware/GeomagneticField$LegendreTable;-><init>(IF)V
+HSPLandroid/hardware/GeomagneticField;-><init>(FFFJ)V
+HSPLandroid/hardware/GeomagneticField;->computeGeocentricCoordinates(FFF)V
+HSPLandroid/hardware/GeomagneticField;->getDeclination()F
+HSPLandroid/hardware/GeomagneticField;->getFieldStrength()F
+HSPLandroid/hardware/GeomagneticField;->getHorizontalStrength()F
+HSPLandroid/hardware/GeomagneticField;->getInclination()F
 HSPLandroid/hardware/HardwareBuffer;-><init>(J)V
+HSPLandroid/hardware/HardwareBuffer;->close()V
+HSPLandroid/hardware/HardwareBuffer;->createFromGraphicBuffer(Landroid/graphics/GraphicBuffer;)Landroid/hardware/HardwareBuffer;
+HSPLandroid/hardware/HardwareBuffer;->finalize()V
+HSPLandroid/hardware/HardwareBuffer;->getFormat()I
+HSPLandroid/hardware/HardwareBuffer;->getUsage()J
+HSPLandroid/hardware/HardwareBuffer;->isClosed()Z
 HSPLandroid/hardware/ICameraService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/hardware/ICameraService$Stub$Proxy;->addListener(Landroid/hardware/ICameraServiceListener;)[Landroid/hardware/CameraStatus;
+HSPLandroid/hardware/ICameraService$Stub$Proxy;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/impl/CameraMetadataNative;
+HSPLandroid/hardware/ICameraService$Stub$Proxy;->getConcurrentStreamingCameraIds()[Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination;
+HSPLandroid/hardware/ICameraService$Stub$Proxy;->isHiddenPhysicalCamera(Ljava/lang/String;)Z
+HSPLandroid/hardware/ICameraService$Stub$Proxy;->notifySystemEvent(I[I)V
+HSPLandroid/hardware/ICameraService$Stub$Proxy;->supportsCameraApi(Ljava/lang/String;I)Z
 HSPLandroid/hardware/ICameraService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraService;
+HSPLandroid/hardware/ICameraServiceListener$Stub;-><init>()V
 HSPLandroid/hardware/ICameraServiceListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/ICameraServiceProxy$Stub;-><init>()V
+HPLandroid/hardware/ICameraServiceProxy$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/IConsumerIrService$Stub;-><init>()V
+HPLandroid/hardware/IConsumerIrService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/ISensorPrivacyListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/ISensorPrivacyListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/ISensorPrivacyListener$Stub;-><init>()V
+HSPLandroid/hardware/ISensorPrivacyListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/ISensorPrivacyListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ISensorPrivacyListener;
+HSPLandroid/hardware/ISensorPrivacyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/ISensorPrivacyManager$Stub$Proxy;->addSensorPrivacyListener(Landroid/hardware/ISensorPrivacyListener;)V
+HSPLandroid/hardware/ISensorPrivacyManager$Stub$Proxy;->isSensorPrivacyEnabled()Z
+HSPLandroid/hardware/ISensorPrivacyManager$Stub;-><init>()V
+HSPLandroid/hardware/ISensorPrivacyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ISensorPrivacyManager;
+HSPLandroid/hardware/ISensorPrivacyManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/ISerialManager$Stub;-><init>()V
+HPLandroid/hardware/ISerialManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/hardware/Sensor;-><init>()V
+HSPLandroid/hardware/Sensor;->getFifoMaxEventCount()I
+HSPLandroid/hardware/Sensor;->getFifoReservedEventCount()I
 HSPLandroid/hardware/Sensor;->getHandle()I
 HSPLandroid/hardware/Sensor;->getMaxLengthValuesArray(Landroid/hardware/Sensor;I)I
 HSPLandroid/hardware/Sensor;->getMaximumRange()F
+HSPLandroid/hardware/Sensor;->getName()Ljava/lang/String;
+HSPLandroid/hardware/Sensor;->getPower()F
 HSPLandroid/hardware/Sensor;->getReportingMode()I
+HSPLandroid/hardware/Sensor;->getResolution()F
+HSPLandroid/hardware/Sensor;->getStringType()Ljava/lang/String;
 HSPLandroid/hardware/Sensor;->getType()I
+HSPLandroid/hardware/Sensor;->getVendor()Ljava/lang/String;
+HSPLandroid/hardware/Sensor;->getVersion()I
 HSPLandroid/hardware/Sensor;->isWakeUpSensor()Z
 HSPLandroid/hardware/Sensor;->setType(I)Z
 HSPLandroid/hardware/Sensor;->setUuid(JJ)V
+HSPLandroid/hardware/Sensor;->toString()Ljava/lang/String;
+PLandroid/hardware/SensorAdditionalInfo;->createLocalGeomagneticField(FFF)Landroid/hardware/SensorAdditionalInfo;
 HSPLandroid/hardware/SensorEvent;-><init>(I)V
 HSPLandroid/hardware/SensorManager;-><init>()V
+HSPLandroid/hardware/SensorManager;->cancelTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z
 HSPLandroid/hardware/SensorManager;->getDefaultSensor(I)Landroid/hardware/Sensor;
+HSPLandroid/hardware/SensorManager;->getDefaultSensor(IZ)Landroid/hardware/Sensor;
 HSPLandroid/hardware/SensorManager;->getDelay(I)I
 HSPLandroid/hardware/SensorManager;->getSensorList(I)Ljava/util/List;
 HSPLandroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;I)Z
+HSPLandroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;IILandroid/os/Handler;)Z
 HSPLandroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;)Z
+HSPLandroid/hardware/SensorManager;->requestTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z
 HSPLandroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;)V
+HSPLandroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V
+HSPLandroid/hardware/SensorPrivacyManager$1;-><init>(Landroid/hardware/SensorPrivacyManager;Landroid/hardware/SensorPrivacyManager$OnSensorPrivacyChangedListener;)V
+HSPLandroid/hardware/SensorPrivacyManager;-><init>(Landroid/content/Context;Landroid/hardware/ISensorPrivacyManager;)V
+HSPLandroid/hardware/SensorPrivacyManager;->addSensorPrivacyListener(Landroid/hardware/SensorPrivacyManager$OnSensorPrivacyChangedListener;)V
+HSPLandroid/hardware/SensorPrivacyManager;->getInstance(Landroid/content/Context;)Landroid/hardware/SensorPrivacyManager;
+HSPLandroid/hardware/SensorPrivacyManager;->isSensorPrivacyEnabled()Z
 HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;-><init>(Landroid/os/Looper;Landroid/hardware/SystemSensorManager;ILjava/lang/String;)V
 HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->addSensor(Landroid/hardware/Sensor;II)Z
 HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->disableSensor(Landroid/hardware/Sensor;)I
@@ -5837,28 +11206,311 @@
 HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->removeSensor(Landroid/hardware/Sensor;Z)Z
 HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;-><init>(Landroid/hardware/SensorEventListener;Landroid/os/Looper;Landroid/hardware/SystemSensorManager;Ljava/lang/String;)V
 HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->addSensorEvent(Landroid/hardware/Sensor;)V
+HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->dispatchAdditionalInfoEvent(III[F[I)V
 HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->dispatchSensorEvent(I[FIJ)V
 HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V
+HSPLandroid/hardware/SystemSensorManager$TriggerEventQueue;-><init>(Landroid/hardware/TriggerEventListener;Landroid/os/Looper;Landroid/hardware/SystemSensorManager;Ljava/lang/String;)V
+HSPLandroid/hardware/SystemSensorManager$TriggerEventQueue;->addSensorEvent(Landroid/hardware/Sensor;)V
+HSPLandroid/hardware/SystemSensorManager$TriggerEventQueue;->dispatchSensorEvent(I[FIJ)V
+HSPLandroid/hardware/SystemSensorManager$TriggerEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V
 HSPLandroid/hardware/SystemSensorManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
 HSPLandroid/hardware/SystemSensorManager;->access$200(Landroid/hardware/SystemSensorManager;)J
 HSPLandroid/hardware/SystemSensorManager;->access$300(Landroid/hardware/SystemSensorManager;)Landroid/content/Context;
 HSPLandroid/hardware/SystemSensorManager;->access$400(Landroid/hardware/SystemSensorManager;)Ljava/util/HashMap;
 HSPLandroid/hardware/SystemSensorManager;->access$500(Landroid/hardware/SystemSensorManager;)I
+HSPLandroid/hardware/SystemSensorManager;->cancelTriggerSensorImpl(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;Z)Z
 HSPLandroid/hardware/SystemSensorManager;->getFullSensorList()Ljava/util/List;
 HSPLandroid/hardware/SystemSensorManager;->registerListenerImpl(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;II)Z
+HSPLandroid/hardware/SystemSensorManager;->requestTriggerSensorImpl(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z
 HSPLandroid/hardware/SystemSensorManager;->unregisterListenerImpl(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V
+HSPLandroid/hardware/TriggerEvent;-><init>(I)V
 HSPLandroid/hardware/TriggerEventListener;-><init>()V
+HSPLandroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;-><init>()V
+HSPLandroid/hardware/biometrics/BiometricAuthenticator$Identifier;-><init>(Ljava/lang/CharSequence;IJ)V
+HSPLandroid/hardware/biometrics/BiometricAuthenticator$Identifier;->getBiometricId()I
+HSPLandroid/hardware/biometrics/BiometricAuthenticator$Identifier;->getDeviceId()J
+HSPLandroid/hardware/biometrics/BiometricAuthenticator$Identifier;->getName()Ljava/lang/CharSequence;
 HSPLandroid/hardware/biometrics/BiometricManager;-><init>(Landroid/content/Context;Landroid/hardware/biometrics/IAuthService;)V
+HSPLandroid/hardware/biometrics/BiometricManager;->canAuthenticate()I
+HSPLandroid/hardware/biometrics/BiometricManager;->canAuthenticate(I)I
+HSPLandroid/hardware/biometrics/BiometricManager;->canAuthenticate(II)I
 HSPLandroid/hardware/biometrics/BiometricManager;->hasBiometrics(Landroid/content/Context;)Z
+HPLandroid/hardware/biometrics/BiometricManager;->hasEnrolledBiometrics(I)Z
+HSPLandroid/hardware/biometrics/BiometricManager;->registerEnabledOnKeyguardCallback(Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)V
+PLandroid/hardware/biometrics/BiometricManager;->resetLockout([B)V
+HSPLandroid/hardware/biometrics/BiometricManager;->setActiveUser(I)V
+HSPLandroid/hardware/biometrics/BiometricSourceType$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/biometrics/BiometricSourceType;
+HSPLandroid/hardware/biometrics/BiometricSourceType$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/biometrics/BiometricSourceType;->valueOf(Ljava/lang/String;)Landroid/hardware/biometrics/BiometricSourceType;
+HSPLandroid/hardware/biometrics/BiometricSourceType;->values()[Landroid/hardware/biometrics/BiometricSourceType;
+HSPLandroid/hardware/biometrics/BiometricSourceType;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/biometrics/IAuthService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/biometrics/IAuthService$Stub$Proxy;->canAuthenticate(Ljava/lang/String;II)I
+HSPLandroid/hardware/biometrics/IAuthService$Stub$Proxy;->registerEnabledOnKeyguardCallback(Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)V
+HSPLandroid/hardware/biometrics/IAuthService$Stub;-><init>()V
 HSPLandroid/hardware/biometrics/IAuthService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/biometrics/IAuthService;
+HSPLandroid/hardware/biometrics/IAuthService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/biometrics/IBiometricAuthenticator$Stub;-><init>()V
+HSPLandroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub$Proxy;->onChanged(Landroid/hardware/biometrics/BiometricSourceType;ZI)V
+HSPLandroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub;-><init>()V
+HSPLandroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;
+HSPLandroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/biometrics/IBiometricService$Stub;-><init>()V
+HSPLandroid/hardware/biometrics/IBiometricService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/biometrics/IBiometricService;
+HPLandroid/hardware/biometrics/IBiometricService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub$Proxy;->onLockoutReset(JLandroid/os/IRemoteCallback;)V
+HSPLandroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub;-><init>()V
+HSPLandroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;
+HSPLandroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/biometrics/IBiometricServiceReceiverInternal$Stub;-><init>()V
+HSPLandroid/hardware/camera2/-$$Lambda$CameraManager$CameraManagerGlobal$CONvadOBAEkcHSpx8j61v67qRGM;-><init>(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/lang/String;I)V
+HSPLandroid/hardware/camera2/-$$Lambda$CameraManager$CameraManagerGlobal$CONvadOBAEkcHSpx8j61v67qRGM;->run()V
+HSPLandroid/hardware/camera2/CameraCharacteristics$Key;->getNativeKey()Landroid/hardware/camera2/impl/CameraMetadataNative$Key;
+HSPLandroid/hardware/camera2/CameraCharacteristics;-><init>(Landroid/hardware/camera2/impl/CameraMetadataNative;)V
+HSPLandroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/CameraManager$AvailabilityCallback;-><init>()V
+HSPLandroid/hardware/camera2/CameraManager$AvailabilityCallback;->onCameraAccessPrioritiesChanged()V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;-><init>()V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;->compare(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$3;-><init>(Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;Landroid/hardware/camera2/CameraManager$AvailabilityCallback;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$3;->run()V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$4;-><init>(Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;Ljava/lang/String;Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/lang/String;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$4;->run()V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$5;-><init>(Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;Ljava/lang/String;Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/lang/String;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$5;->run()V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;-><clinit>()V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;-><init>()V
 HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->cameraIdHasConcurrentStreamsLocked(Ljava/lang/String;)Z
 HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->connectCameraServiceLocked()V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->extractCameraIdListLocked()[Ljava/lang/String;
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->get()Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraIdList()[Ljava/lang/String;
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraService()Landroid/hardware/ICameraService;
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->isAvailable(I)Z
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->lambda$postSingleTorchUpdate$0(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/lang/String;I)V
 HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onCameraAccessPrioritiesChanged()V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChanged(ILjava/lang/String;)V
 HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChangedLocked(ILjava/lang/String;)V
 HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChanged(ILjava/lang/String;)V
 HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChangedLocked(ILjava/lang/String;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleAccessPriorityChangeUpdate(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleTorchUpdate(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/util/concurrent/Executor;Ljava/lang/String;I)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleUpdate(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;Ljava/lang/String;Ljava/lang/String;I)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->registerAvailabilityCallback(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->registerTorchCallback(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/util/concurrent/Executor;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->sortCameraIds([Ljava/lang/String;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->updateCallbackLocked(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->updateTorchCallbackLocked(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/util/concurrent/Executor;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->validStatus(I)Z
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->validTorchStatus(I)Z
+HSPLandroid/hardware/camera2/CameraManager$TorchCallback;-><init>()V
 HSPLandroid/hardware/camera2/CameraManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/hardware/camera2/CameraManager;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;
+HSPLandroid/hardware/camera2/CameraManager;->getCameraIdList()[Ljava/lang/String;
+HSPLandroid/hardware/camera2/CameraManager;->getDisplaySize()Landroid/util/Size;
+HSPLandroid/hardware/camera2/CameraManager;->isHiddenPhysicalCamera(Ljava/lang/String;)Z
+HSPLandroid/hardware/camera2/CameraManager;->registerAvailabilityCallback(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Landroid/os/Handler;)V
+HSPLandroid/hardware/camera2/CameraManager;->registerTorchCallback(Landroid/hardware/camera2/CameraManager$TorchCallback;Landroid/os/Handler;)V
+HSPLandroid/hardware/camera2/CameraManager;->supportsCamera2ApiLocked(Ljava/lang/String;)Z
+HSPLandroid/hardware/camera2/CameraManager;->supportsCameraApiLocked(Ljava/lang/String;I)Z
+HSPLandroid/hardware/camera2/CameraMetadata;-><init>()V
+HSPLandroid/hardware/camera2/CameraMetadata;->setNativeInstance(Landroid/hardware/camera2/impl/CameraMetadataNative;)V
+HSPLandroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor;-><init>(Landroid/os/Handler;)V
+HSPLandroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor;->execute(Ljava/lang/Runnable;)V
+HSPLandroid/hardware/camera2/impl/CameraDeviceImpl;->checkAndWrapHandler(Landroid/os/Handler;)Ljava/util/concurrent/Executor;
+HSPLandroid/hardware/camera2/impl/CameraDeviceImpl;->checkHandler(Landroid/os/Handler;)Landroid/os/Handler;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/camera2/impl/CameraMetadataNative;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$5;->getValue(Landroid/hardware/camera2/impl/CameraMetadataNative;Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$Key;->cacheTag(I)V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$Key;->getName()Ljava/lang/String;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$Key;->getTag()I
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$Key;->getTypeReference()Landroid/hardware/camera2/utils/TypeReference;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$Key;->hasTag()Z
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$Key;->hashCode()I
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;-><init>()V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->access$400(Landroid/hardware/camera2/impl/CameraMetadataNative;)Landroid/hardware/camera2/params/StreamConfigurationMap;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->close()V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->finalize()V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->get(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->getBase(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->getBase(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->getMarshalerForKey(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->getStreamConfigurationMap()Landroid/hardware/camera2/params/StreamConfigurationMap;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->isBurstSupported()Z
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->move(Landroid/hardware/camera2/impl/CameraMetadataNative;)Landroid/hardware/camera2/impl/CameraMetadataNative;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->readValues(I)[B
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setCameraId(I)V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setDisplaySize(Landroid/util/Size;)V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setHasMandatoryConcurrentStreams(Z)V
 HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setupGlobalVendorTagDescriptor()V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->swap(Landroid/hardware/camera2/impl/CameraMetadataNative;)V
+HSPLandroid/hardware/camera2/marshal/MarshalHelpers;->checkNativeType(I)I
+HSPLandroid/hardware/camera2/marshal/MarshalRegistry$MarshalToken;-><init>(Landroid/hardware/camera2/utils/TypeReference;I)V
+HSPLandroid/hardware/camera2/marshal/MarshalRegistry$MarshalToken;->equals(Ljava/lang/Object;)Z
+HSPLandroid/hardware/camera2/marshal/MarshalRegistry$MarshalToken;->hashCode()I
+HSPLandroid/hardware/camera2/marshal/MarshalRegistry;->getMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/marshal/Marshaler;-><init>(Landroid/hardware/camera2/marshal/MarshalQueryable;Landroid/hardware/camera2/utils/TypeReference;I)V
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableArray$MarshalerArray;-><init>(Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray;Landroid/hardware/camera2/utils/TypeReference;I)V
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableArray$MarshalerArray;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableArray;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableArray;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean$MarshalerBoolean;-><init>(Landroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean;Landroid/hardware/camera2/utils/TypeReference;I)V
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean$MarshalerBoolean;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Boolean;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean$MarshalerBoolean;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableColorSpaceTransform;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableEnum;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableMeteringRectangle;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$MarshalerNativeByteToInteger;-><init>(Landroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger;Landroid/hardware/camera2/utils/TypeReference;I)V
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$MarshalerNativeByteToInteger;->getNativeSize()I
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$MarshalerNativeByteToInteger;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Integer;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$MarshalerNativeByteToInteger;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePair;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableRange;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableRect;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableReprocessFormatsMap;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableSize;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableSizeF;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfiguration$MarshalerStreamConfiguration;-><init>(Landroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfiguration;Landroid/hardware/camera2/utils/TypeReference;I)V
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfiguration$MarshalerStreamConfiguration;->getNativeSize()I
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfiguration$MarshalerStreamConfiguration;->unmarshal(Ljava/nio/ByteBuffer;)Landroid/hardware/camera2/params/StreamConfiguration;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfiguration$MarshalerStreamConfiguration;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfiguration;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfiguration;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfigurationDuration$MarshalerStreamConfigurationDuration;-><init>(Landroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfigurationDuration;Landroid/hardware/camera2/utils/TypeReference;I)V
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfigurationDuration$MarshalerStreamConfigurationDuration;->getNativeSize()I
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfigurationDuration$MarshalerStreamConfigurationDuration;->unmarshal(Ljava/nio/ByteBuffer;)Landroid/hardware/camera2/params/StreamConfigurationDuration;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfigurationDuration$MarshalerStreamConfigurationDuration;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfigurationDuration;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfigurationDuration;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableString;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/params/StreamConfiguration;-><init>(IIIZ)V
+HSPLandroid/hardware/camera2/params/StreamConfiguration;->getFormat()I
+HSPLandroid/hardware/camera2/params/StreamConfiguration;->getSize()Landroid/util/Size;
+HSPLandroid/hardware/camera2/params/StreamConfiguration;->isOutput()Z
+HSPLandroid/hardware/camera2/params/StreamConfigurationDuration;-><init>(IIIJ)V
+HSPLandroid/hardware/camera2/params/StreamConfigurationDuration;->getDuration()J
+HSPLandroid/hardware/camera2/params/StreamConfigurationDuration;->getFormat()I
+HSPLandroid/hardware/camera2/params/StreamConfigurationDuration;->getHeight()I
+HSPLandroid/hardware/camera2/params/StreamConfigurationDuration;->getWidth()I
+HSPLandroid/hardware/camera2/params/StreamConfigurationMap;-><init>([Landroid/hardware/camera2/params/StreamConfiguration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfiguration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfiguration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfiguration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;Landroid/hardware/camera2/params/ReprocessFormatsMap;Z)V
+HSPLandroid/hardware/camera2/params/StreamConfigurationMap;-><init>([Landroid/hardware/camera2/params/StreamConfiguration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfiguration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfiguration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfiguration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/StreamConfigurationDuration;[Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;Landroid/hardware/camera2/params/ReprocessFormatsMap;ZZ)V
+HSPLandroid/hardware/camera2/params/StreamConfigurationMap;->checkArgumentFormat(I)I
+HSPLandroid/hardware/camera2/params/StreamConfigurationMap;->checkArgumentFormatInternal(I)I
+HSPLandroid/hardware/camera2/params/StreamConfigurationMap;->getInternalFormatSizes(IIZZ)[Landroid/util/Size;
+HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1;-><init>()V
+HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1;->newArray(I)[Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination;
+HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination;-><clinit>()V
+HSPLandroid/hardware/camera2/utils/TypeReference$SpecializedBaseTypeReference;-><init>(Ljava/lang/reflect/Type;)V
+HSPLandroid/hardware/camera2/utils/TypeReference;-><init>(Ljava/lang/reflect/Type;)V
+HSPLandroid/hardware/camera2/utils/TypeReference;-><init>(Ljava/lang/reflect/Type;Landroid/hardware/camera2/utils/TypeReference$1;)V
+HSPLandroid/hardware/camera2/utils/TypeReference;->containsTypeVariable(Ljava/lang/reflect/Type;)Z
+HSPLandroid/hardware/camera2/utils/TypeReference;->createSpecializedTypeReference(Ljava/lang/reflect/Type;)Landroid/hardware/camera2/utils/TypeReference;
+HSPLandroid/hardware/camera2/utils/TypeReference;->equals(Ljava/lang/Object;)Z
+HSPLandroid/hardware/camera2/utils/TypeReference;->getComponentType()Landroid/hardware/camera2/utils/TypeReference;
+HSPLandroid/hardware/camera2/utils/TypeReference;->getComponentType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
+HSPLandroid/hardware/camera2/utils/TypeReference;->getRawType()Ljava/lang/Class;
+HSPLandroid/hardware/camera2/utils/TypeReference;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
+HSPLandroid/hardware/camera2/utils/TypeReference;->getType()Ljava/lang/reflect/Type;
+HSPLandroid/hardware/camera2/utils/TypeReference;->hashCode()I
+HSPLandroid/hardware/contexthub/V1_0/ContextHub;-><init>()V
+HSPLandroid/hardware/contexthub/V1_0/ContextHub;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/contexthub/V1_0/ContextHub;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+HPLandroid/hardware/contexthub/V1_0/ContextHubMsg;-><init>()V
+HPLandroid/hardware/contexthub/V1_0/ContextHubMsg;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HPLandroid/hardware/contexthub/V1_0/ContextHubMsg;->readFromParcel(Landroid/os/HwParcel;)V
+HPLandroid/hardware/contexthub/V1_0/ContextHubMsg;->writeEmbeddedToBlob(Landroid/os/HwBlob;J)V
+HPLandroid/hardware/contexthub/V1_0/ContextHubMsg;->writeToParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/contexthub/V1_0/HubAppInfo;-><init>()V
+HSPLandroid/hardware/contexthub/V1_0/HubAppInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/contexthub/V1_0/HubAppInfo;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+HSPLandroid/hardware/contexthub/V1_0/IContexthub$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HSPLandroid/hardware/contexthub/V1_0/IContexthub$Proxy;->getHubs()Ljava/util/ArrayList;
+HSPLandroid/hardware/contexthub/V1_0/IContexthub$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/contexthub/V1_0/IContexthub$Proxy;->queryApps(I)I
+HSPLandroid/hardware/contexthub/V1_0/IContexthub$Proxy;->registerCallback(ILandroid/hardware/contexthub/V1_0/IContexthubCallback;)I
+HPLandroid/hardware/contexthub/V1_0/IContexthub$Proxy;->sendMessageToHub(ILandroid/hardware/contexthub/V1_0/ContextHubMsg;)I
+HSPLandroid/hardware/contexthub/V1_0/IContexthub;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/contexthub/V1_0/IContexthub;
+HSPLandroid/hardware/contexthub/V1_0/IContexthub;->getService(Ljava/lang/String;Z)Landroid/hardware/contexthub/V1_0/IContexthub;
+HSPLandroid/hardware/contexthub/V1_0/IContexthub;->getService(Z)Landroid/hardware/contexthub/V1_0/IContexthub;
+HSPLandroid/hardware/contexthub/V1_0/IContexthubCallback$Stub;-><init>()V
+HSPLandroid/hardware/contexthub/V1_0/IContexthubCallback$Stub;->asBinder()Landroid/os/IHwBinder;
+HSPLandroid/hardware/contexthub/V1_0/IContexthubCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+HSPLandroid/hardware/display/-$$Lambda$NightDisplayListener$sOK1HmSbMnFLzc4SdDD1WpVWJiI;-><init>(Landroid/hardware/display/NightDisplayListener;Landroid/hardware/display/NightDisplayListener$Callback;)V
+HSPLandroid/hardware/display/-$$Lambda$NightDisplayListener$sOK1HmSbMnFLzc4SdDD1WpVWJiI;->run()V
+HSPLandroid/hardware/display/AmbientBrightnessDayStats;-><init>(Ljava/time/LocalDate;[F[F)V
+HSPLandroid/hardware/display/AmbientBrightnessDayStats;->checkSorted([F)V
+HSPLandroid/hardware/display/AmbientBrightnessDayStats;->getBucketIndex(F)I
+HSPLandroid/hardware/display/AmbientBrightnessDayStats;->getLocalDate()Ljava/time/LocalDate;
+HSPLandroid/hardware/display/AmbientBrightnessDayStats;->log(FF)V
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;-><init>(Landroid/content/Context;)V
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->accessibilityInversionEnabled(I)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->alwaysOnAvailable()Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->alwaysOnDisplayAvailable()Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->alwaysOnDisplayDebuggingEnabled()Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->alwaysOnEnabled(I)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->ambientDisplayAvailable()Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->ambientDisplayComponent()Ljava/lang/String;
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->boolSetting(Ljava/lang/String;II)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->boolSettingDefaultOff(Ljava/lang/String;I)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->boolSettingDefaultOn(Ljava/lang/String;I)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->doubleTapGestureEnabled(I)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->doubleTapSensorAvailable()Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->doubleTapSensorType()Ljava/lang/String;
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->dozePickupSensorAvailable()Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->enabled(I)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->getWakeLockScreenDebounce()J
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->longPressSensorType()Ljava/lang/String;
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->pulseOnNotificationAvailable()Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->pulseOnNotificationEnabled(I)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->tapGestureEnabled(I)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->tapSensorAvailable()Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->tapSensorType()Ljava/lang/String;
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->wakeScreenGestureAvailable()Z
+HSPLandroid/hardware/display/BrightnessConfiguration$Builder;-><init>([F[F)V
+HSPLandroid/hardware/display/BrightnessConfiguration$Builder;->build()Landroid/hardware/display/BrightnessConfiguration;
+HSPLandroid/hardware/display/BrightnessConfiguration$Builder;->checkMonotonic([FZLjava/lang/String;)V
+HSPLandroid/hardware/display/BrightnessConfiguration$Builder;->setDescription(Ljava/lang/String;)Landroid/hardware/display/BrightnessConfiguration$Builder;
+HSPLandroid/hardware/display/BrightnessConfiguration$Builder;->setShortTermModelLowerLuxMultiplier(F)Landroid/hardware/display/BrightnessConfiguration$Builder;
+HSPLandroid/hardware/display/BrightnessConfiguration$Builder;->setShortTermModelUpperLuxMultiplier(F)Landroid/hardware/display/BrightnessConfiguration$Builder;
+HSPLandroid/hardware/display/BrightnessConfiguration$Builder;->setShouldCollectColorSamples(Z)Landroid/hardware/display/BrightnessConfiguration$Builder;
+HSPLandroid/hardware/display/BrightnessConfiguration;-><init>([F[FLjava/util/Map;Ljava/util/Map;Ljava/lang/String;ZJFF)V
+HSPLandroid/hardware/display/BrightnessConfiguration;-><init>([F[FLjava/util/Map;Ljava/util/Map;Ljava/lang/String;ZJFFLandroid/hardware/display/BrightnessConfiguration$1;)V
+HSPLandroid/hardware/display/BrightnessConfiguration;->equals(Ljava/lang/Object;)Z
+HPLandroid/hardware/display/BrightnessConfiguration;->getCorrectionByCategory(I)Landroid/hardware/display/BrightnessCorrection;
+HPLandroid/hardware/display/BrightnessConfiguration;->getCorrectionByPackageName(Ljava/lang/String;)Landroid/hardware/display/BrightnessCorrection;
+HSPLandroid/hardware/display/BrightnessConfiguration;->getCurve()Landroid/util/Pair;
+HSPLandroid/hardware/display/BrightnessConfiguration;->loadFloatFromXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)F
+HSPLandroid/hardware/display/BrightnessConfiguration;->loadFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/hardware/display/BrightnessConfiguration;
+HSPLandroid/hardware/display/BrightnessConfiguration;->shouldCollectColorSamples()Z
+HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;-><init>(Landroid/hardware/display/IColorDisplayManager;)V
+HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->getInstance()Landroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;
+HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->getNightDisplayAutoMode()I
+HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->isNightDisplayActivated()Z
+HSPLandroid/hardware/display/ColorDisplayManager;-><init>()V
+HSPLandroid/hardware/display/ColorDisplayManager;->getMaximumColorTemperature(Landroid/content/Context;)I
+HSPLandroid/hardware/display/ColorDisplayManager;->getMinimumColorTemperature(Landroid/content/Context;)I
+HSPLandroid/hardware/display/ColorDisplayManager;->getNightDisplayAutoMode()I
+HSPLandroid/hardware/display/ColorDisplayManager;->isDisplayWhiteBalanceAvailable(Landroid/content/Context;)Z
+HSPLandroid/hardware/display/ColorDisplayManager;->isNightDisplayActivated()Z
+HSPLandroid/hardware/display/ColorDisplayManager;->isNightDisplayAvailable(Landroid/content/Context;)Z
+HSPLandroid/hardware/display/Curve;-><init>([F[F)V
 HSPLandroid/hardware/display/DisplayManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/hardware/display/DisplayManager;->addAllDisplaysLocked(Ljava/util/ArrayList;[I)V
 HSPLandroid/hardware/display/DisplayManager;->addPresentationDisplaysLocked(Ljava/util/ArrayList;[II)V
@@ -5866,6 +11518,7 @@
 HSPLandroid/hardware/display/DisplayManager;->getDisplays()[Landroid/view/Display;
 HSPLandroid/hardware/display/DisplayManager;->getDisplays(Ljava/lang/String;)[Landroid/view/Display;
 HSPLandroid/hardware/display/DisplayManager;->getOrCreateDisplayLocked(IZ)Landroid/view/Display;
+HSPLandroid/hardware/display/DisplayManager;->getStableDisplaySize()Landroid/graphics/Point;
 HSPLandroid/hardware/display/DisplayManager;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
 HSPLandroid/hardware/display/DisplayManager;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;)V
 HSPLandroid/hardware/display/DisplayManager;->unregisterDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;)V
@@ -5885,75 +11538,426 @@
 HSPLandroid/hardware/display/DisplayManagerGlobal;->getDisplayInfo(I)Landroid/view/DisplayInfo;
 HSPLandroid/hardware/display/DisplayManagerGlobal;->getInstance()Landroid/hardware/display/DisplayManagerGlobal;
 HSPLandroid/hardware/display/DisplayManagerGlobal;->getLooperForHandler(Landroid/os/Handler;)Landroid/os/Looper;
+HSPLandroid/hardware/display/DisplayManagerGlobal;->getRealDisplay(I)Landroid/view/Display;
+HSPLandroid/hardware/display/DisplayManagerGlobal;->getStableDisplaySize()Landroid/graphics/Point;
 HSPLandroid/hardware/display/DisplayManagerGlobal;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
 HSPLandroid/hardware/display/DisplayManagerGlobal;->handleDisplayEvent(II)V
 HSPLandroid/hardware/display/DisplayManagerGlobal;->registerCallbackIfNeededLocked()V
 HSPLandroid/hardware/display/DisplayManagerGlobal;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;)V
 HSPLandroid/hardware/display/DisplayManagerGlobal;->unregisterDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;)V
+HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;-><init>()V
+HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;-><init>(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)V
+HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->copyFrom(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)V
+HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->equals(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)Z
+HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->isBrightOrDim()Z
+HSPLandroid/hardware/display/DisplayManagerInternal;-><init>()V
+HSPLandroid/hardware/display/DisplayViewport;-><init>()V
+HSPLandroid/hardware/display/DisplayViewport;->copyFrom(Landroid/hardware/display/DisplayViewport;)V
+HSPLandroid/hardware/display/DisplayViewport;->equals(Ljava/lang/Object;)Z
+HSPLandroid/hardware/display/DisplayViewport;->makeCopy()Landroid/hardware/display/DisplayViewport;
+HSPLandroid/hardware/display/IColorDisplayManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/display/IColorDisplayManager$Stub$Proxy;->getNightDisplayAutoMode()I
+HSPLandroid/hardware/display/IColorDisplayManager$Stub$Proxy;->isNightDisplayActivated()Z
+HSPLandroid/hardware/display/IColorDisplayManager$Stub;-><init>()V
+HSPLandroid/hardware/display/IColorDisplayManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/display/IColorDisplayManager;
+HPLandroid/hardware/display/IColorDisplayManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getDisplayIds()[I
 HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getDisplayInfo(I)Landroid/view/DisplayInfo;
 HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getPreferredWideGamutColorSpaceId()I
+HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getStableDisplaySize()Landroid/graphics/Point;
 HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
 HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->registerCallback(Landroid/hardware/display/IDisplayManagerCallback;)V
+HSPLandroid/hardware/display/IDisplayManager$Stub;-><init>()V
 HSPLandroid/hardware/display/IDisplayManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/display/IDisplayManager;
+HSPLandroid/hardware/display/IDisplayManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/display/IDisplayManagerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/display/IDisplayManagerCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/display/IDisplayManagerCallback$Stub$Proxy;->onDisplayEvent(II)V
 HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;-><init>()V
 HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/display/NightDisplayListener$1;-><init>(Landroid/hardware/display/NightDisplayListener;Landroid/os/Handler;)V
+HSPLandroid/hardware/display/NightDisplayListener;-><init>(Landroid/content/Context;ILandroid/os/Handler;)V
+HSPLandroid/hardware/display/NightDisplayListener;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLandroid/hardware/display/NightDisplayListener;->lambda$setCallback$0$NightDisplayListener(Landroid/hardware/display/NightDisplayListener$Callback;)V
+HSPLandroid/hardware/display/NightDisplayListener;->setCallback(Landroid/hardware/display/NightDisplayListener$Callback;)V
+HSPLandroid/hardware/display/NightDisplayListener;->setCallbackInternal(Landroid/hardware/display/NightDisplayListener$Callback;)V
+HSPLandroid/hardware/display/Time;->getLocalTime()Ljava/time/LocalTime;
 HSPLandroid/hardware/display/WifiDisplay$1;->newArray(I)[Landroid/hardware/display/WifiDisplay;
 HSPLandroid/hardware/display/WifiDisplay$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/hardware/display/WifiDisplaySessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/WifiDisplaySessionInfo;
 HSPLandroid/hardware/display/WifiDisplaySessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/display/WifiDisplaySessionInfo;-><init>()V
 HSPLandroid/hardware/display/WifiDisplaySessionInfo;-><init>(ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/hardware/display/WifiDisplaySessionInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/hardware/display/WifiDisplayStatus$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/WifiDisplayStatus;
 HSPLandroid/hardware/display/WifiDisplayStatus$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/display/WifiDisplayStatus;-><init>()V
 HSPLandroid/hardware/display/WifiDisplayStatus;-><init>(IIILandroid/hardware/display/WifiDisplay;[Landroid/hardware/display/WifiDisplay;Landroid/hardware/display/WifiDisplaySessionInfo;)V
+HSPLandroid/hardware/display/WifiDisplayStatus;->getActiveDisplay()Landroid/hardware/display/WifiDisplay;
+HSPLandroid/hardware/display/WifiDisplayStatus;->getFeatureState()I
+HSPLandroid/hardware/display/WifiDisplayStatus;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/face/Face$1;-><init>()V
+HSPLandroid/hardware/face/Face;-><clinit>()V
+HSPLandroid/hardware/face/FaceManager$1;-><init>(Landroid/hardware/face/FaceManager;)V
+HSPLandroid/hardware/face/FaceManager$AuthenticationCallback;-><init>()V
+HSPLandroid/hardware/face/FaceManager$LockoutResetCallback;-><init>()V
+HSPLandroid/hardware/face/FaceManager$MyHandler;-><init>(Landroid/hardware/face/FaceManager;Landroid/content/Context;)V
+HSPLandroid/hardware/face/FaceManager$MyHandler;-><init>(Landroid/hardware/face/FaceManager;Landroid/content/Context;Landroid/hardware/face/FaceManager$1;)V
+HSPLandroid/hardware/face/FaceManager;-><init>(Landroid/content/Context;Landroid/hardware/face/IFaceService;)V
+HSPLandroid/hardware/face/FaceManager;->hasEnrolledTemplates(I)Z
+HSPLandroid/hardware/face/FaceManager;->isHardwareDetected()Z
+HSPLandroid/hardware/face/IFaceService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/face/IFaceService$Stub$Proxy;->hasEnrolledFaces(ILjava/lang/String;)Z
+HSPLandroid/hardware/face/IFaceService$Stub$Proxy;->isHardwareDetected(Ljava/lang/String;)Z
+HSPLandroid/hardware/face/IFaceService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/face/IFaceService;
+HSPLandroid/hardware/face/IFaceServiceReceiver$Stub;-><init>()V
+HSPLandroid/hardware/fingerprint/FingerprintManager$2;-><init>(Landroid/hardware/fingerprint/FingerprintManager;)V
+HSPLandroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback;-><init>()V
+HSPLandroid/hardware/fingerprint/FingerprintManager$LockoutResetCallback;-><init>()V
+HSPLandroid/hardware/fingerprint/FingerprintManager$MyHandler;-><init>(Landroid/hardware/fingerprint/FingerprintManager;Landroid/content/Context;)V
+HSPLandroid/hardware/fingerprint/FingerprintManager$MyHandler;-><init>(Landroid/hardware/fingerprint/FingerprintManager;Landroid/content/Context;Landroid/hardware/fingerprint/FingerprintManager$1;)V
+HSPLandroid/hardware/fingerprint/FingerprintManager;-><init>(Landroid/content/Context;Landroid/hardware/fingerprint/IFingerprintService;)V
+HSPLandroid/hardware/fingerprint/FingerprintManager;->isHardwareDetected()Z
+HSPLandroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->isHardwareDetected(Ljava/lang/String;)Z
+HSPLandroid/hardware/fingerprint/IFingerprintService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/fingerprint/IFingerprintService;
+HSPLandroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;-><init>()V
+HPLandroid/hardware/input/IInputDevicesChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/hardware/input/IInputDevicesChangedListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;-><init>()V
 HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/input/IInputDevicesChangedListener;
 HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/hardware/input/IInputManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->getInputDevice(I)Landroid/view/InputDevice;
 HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->getInputDeviceIds()[I
+HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->hasKeys(II[I[Z)Z
+HPLandroid/hardware/input/IInputManager$Stub$Proxy;->injectInputEvent(Landroid/view/InputEvent;I)Z
+HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->monitorGestureInput(Ljava/lang/String;I)Landroid/view/InputMonitor;
 HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->registerInputDevicesChangedListener(Landroid/hardware/input/IInputDevicesChangedListener;)V
+HSPLandroid/hardware/input/IInputManager$Stub;-><init>()V
 HSPLandroid/hardware/input/IInputManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/input/IInputManager;
+HPLandroid/hardware/input/IInputManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/hardware/input/InputDeviceIdentifier;-><init>(Ljava/lang/String;II)V
+HSPLandroid/hardware/input/InputDeviceIdentifier;->getDescriptor()Ljava/lang/String;
+HSPLandroid/hardware/input/InputDeviceIdentifier;->getProductId()I
+HSPLandroid/hardware/input/InputDeviceIdentifier;->getVendorId()I
 HSPLandroid/hardware/input/InputManager$InputDeviceListenerDelegate;-><init>(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V
+HSPLandroid/hardware/input/InputManager$InputDeviceListenerDelegate;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/hardware/input/InputManager$InputDevicesChangedListener;-><init>(Landroid/hardware/input/InputManager;)V
 HSPLandroid/hardware/input/InputManager$InputDevicesChangedListener;-><init>(Landroid/hardware/input/InputManager;Landroid/hardware/input/InputManager$1;)V
 HSPLandroid/hardware/input/InputManager$InputDevicesChangedListener;->onInputDevicesChanged([I)V
 HSPLandroid/hardware/input/InputManager;-><init>(Landroid/hardware/input/IInputManager;)V
 HSPLandroid/hardware/input/InputManager;->access$200(Landroid/hardware/input/InputManager;[I)V
 HSPLandroid/hardware/input/InputManager;->containsDeviceId([II)Z
+HSPLandroid/hardware/input/InputManager;->deviceHasKeys(I[I)[Z
 HSPLandroid/hardware/input/InputManager;->findInputDeviceListenerLocked(Landroid/hardware/input/InputManager$InputDeviceListener;)I
 HSPLandroid/hardware/input/InputManager;->getInputDevice(I)Landroid/view/InputDevice;
 HSPLandroid/hardware/input/InputManager;->getInputDeviceIds()[I
 HSPLandroid/hardware/input/InputManager;->getInstance()Landroid/hardware/input/InputManager;
+HPLandroid/hardware/input/InputManager;->injectInputEvent(Landroid/view/InputEvent;I)Z
+HSPLandroid/hardware/input/InputManager;->isMicMuted()I
+HSPLandroid/hardware/input/InputManager;->monitorGestureInput(Ljava/lang/String;I)Landroid/view/InputMonitor;
 HSPLandroid/hardware/input/InputManager;->onInputDevicesChanged([I)V
 HSPLandroid/hardware/input/InputManager;->populateInputDevicesLocked()V
 HSPLandroid/hardware/input/InputManager;->registerInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V
+HSPLandroid/hardware/input/InputManager;->sendMessageToInputDeviceListenersLocked(II)V
+HSPLandroid/hardware/input/InputManager;->unregisterInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;)V
+HSPLandroid/hardware/input/InputManagerInternal;-><init>()V
+HSPLandroid/hardware/input/KeyboardLayout;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/os/LocaleList;II)V
+HSPLandroid/hardware/input/KeyboardLayout;->getDescriptor()Ljava/lang/String;
+HSPLandroid/hardware/input/TouchCalibration;->getAffineTransform()[F
+HSPLandroid/hardware/location/-$$Lambda$ContextHubManager$3$5yx25kUuvL9qy3uBcIzI3sQQoL8;-><init>(Landroid/hardware/location/ContextHubClientCallback;Landroid/hardware/location/ContextHubClient;J)V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubManager$3$5yx25kUuvL9qy3uBcIzI3sQQoL8;->run()V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubManager$3$KgVQePwT_QpjU9EQTp2L3LsHE5Y;-><init>(Landroid/hardware/location/ContextHubClientCallback;Landroid/hardware/location/ContextHubClient;J)V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubManager$3$KgVQePwT_QpjU9EQTp2L3LsHE5Y;->run()V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubManager$3$U9x_HK_GdADIEQ3mS5mDWMNWMu8;-><init>(Landroid/hardware/location/ContextHubClientCallback;Landroid/hardware/location/ContextHubClient;Landroid/hardware/location/NanoAppMessage;)V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubManager$3$U9x_HK_GdADIEQ3mS5mDWMNWMu8;->run()V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubManager$4$sylEfC1Rx_cxuQRnKuthZXmV8KI;-><init>(Landroid/hardware/location/ContextHubManager$4;IILandroid/hardware/location/ContextHubMessage;)V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubManager$4$sylEfC1Rx_cxuQRnKuthZXmV8KI;->run()V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubTransaction$RNVGnle3xCUm9u68syzn6-2znnU;-><init>(Landroid/hardware/location/ContextHubTransaction;)V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubTransaction$RNVGnle3xCUm9u68syzn6-2znnU;->run()V
+HSPLandroid/hardware/location/ActivityRecognitionHardware;->isSupported()Z
+HSPLandroid/hardware/location/ContextHubClient;-><init>(Landroid/hardware/location/ContextHubInfo;Z)V
+HSPLandroid/hardware/location/ContextHubClient;->close()V
+HSPLandroid/hardware/location/ContextHubClient;->finalize()V
+HSPLandroid/hardware/location/ContextHubClient;->getAttachedHub()Landroid/hardware/location/ContextHubInfo;
+HSPLandroid/hardware/location/ContextHubClient;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I
+HSPLandroid/hardware/location/ContextHubClient;->setClientProxy(Landroid/hardware/location/IContextHubClient;)V
+HSPLandroid/hardware/location/ContextHubClientCallback;-><init>()V
+HSPLandroid/hardware/location/ContextHubClientCallback;->onNanoAppUnloaded(Landroid/hardware/location/ContextHubClient;J)V
+HSPLandroid/hardware/location/ContextHubInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/ContextHubInfo;
+HSPLandroid/hardware/location/ContextHubInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/location/ContextHubInfo;-><init>(Landroid/hardware/contexthub/V1_0/ContextHub;)V
+HSPLandroid/hardware/location/ContextHubInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/hardware/location/ContextHubInfo;-><init>(Landroid/os/Parcel;Landroid/hardware/location/ContextHubInfo$1;)V
 HSPLandroid/hardware/location/ContextHubInfo;->getId()I
+HSPLandroid/hardware/location/ContextHubInfo;->getMaxPacketLengthBytes()I
+HPLandroid/hardware/location/ContextHubInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/location/ContextHubManager$2;-><init>(Landroid/hardware/location/ContextHubManager;Landroid/hardware/location/ContextHubTransaction;)V
+HSPLandroid/hardware/location/ContextHubManager$2;->onQueryResponse(ILjava/util/List;)V
+HSPLandroid/hardware/location/ContextHubManager$3;-><init>(Landroid/hardware/location/ContextHubManager;Ljava/util/concurrent/Executor;Landroid/hardware/location/ContextHubClientCallback;Landroid/hardware/location/ContextHubClient;)V
+HSPLandroid/hardware/location/ContextHubManager$3;->lambda$onMessageFromNanoApp$0(Landroid/hardware/location/ContextHubClientCallback;Landroid/hardware/location/ContextHubClient;Landroid/hardware/location/NanoAppMessage;)V
+HSPLandroid/hardware/location/ContextHubManager$3;->lambda$onNanoAppLoaded$3(Landroid/hardware/location/ContextHubClientCallback;Landroid/hardware/location/ContextHubClient;J)V
+HSPLandroid/hardware/location/ContextHubManager$3;->lambda$onNanoAppUnloaded$4(Landroid/hardware/location/ContextHubClientCallback;Landroid/hardware/location/ContextHubClient;J)V
+HSPLandroid/hardware/location/ContextHubManager$3;->onMessageFromNanoApp(Landroid/hardware/location/NanoAppMessage;)V
+HSPLandroid/hardware/location/ContextHubManager$3;->onNanoAppLoaded(J)V
+HSPLandroid/hardware/location/ContextHubManager$3;->onNanoAppUnloaded(J)V
+HSPLandroid/hardware/location/ContextHubManager$4;-><init>(Landroid/hardware/location/ContextHubManager;)V
+HSPLandroid/hardware/location/ContextHubManager$4;->lambda$onMessageReceipt$0$ContextHubManager$4(IILandroid/hardware/location/ContextHubMessage;)V
+HSPLandroid/hardware/location/ContextHubManager$4;->onMessageReceipt(IILandroid/hardware/location/ContextHubMessage;)V
+HSPLandroid/hardware/location/ContextHubManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+HSPLandroid/hardware/location/ContextHubManager;->access$000(Landroid/hardware/location/ContextHubManager;)Landroid/hardware/location/ContextHubManager$Callback;
+HSPLandroid/hardware/location/ContextHubManager;->access$200(Landroid/hardware/location/ContextHubManager;)Landroid/hardware/location/ContextHubManager$ICallback;
+HSPLandroid/hardware/location/ContextHubManager;->createClient(Landroid/hardware/location/ContextHubInfo;Landroid/hardware/location/ContextHubClientCallback;)Landroid/hardware/location/ContextHubClient;
+HSPLandroid/hardware/location/ContextHubManager;->createClient(Landroid/hardware/location/ContextHubInfo;Landroid/hardware/location/ContextHubClientCallback;Ljava/util/concurrent/Executor;)Landroid/hardware/location/ContextHubClient;
+HSPLandroid/hardware/location/ContextHubManager;->createClientCallback(Landroid/hardware/location/ContextHubClient;Landroid/hardware/location/ContextHubClientCallback;Ljava/util/concurrent/Executor;)Landroid/hardware/location/IContextHubClientCallback;
+HSPLandroid/hardware/location/ContextHubManager;->createQueryCallback(Landroid/hardware/location/ContextHubTransaction;)Landroid/hardware/location/IContextHubTransactionCallback;
+HSPLandroid/hardware/location/ContextHubManager;->findNanoAppOnHub(ILandroid/hardware/location/NanoAppFilter;)[I
+HSPLandroid/hardware/location/ContextHubManager;->getContextHubHandles()[I
+HSPLandroid/hardware/location/ContextHubManager;->getContextHubInfo(I)Landroid/hardware/location/ContextHubInfo;
+HSPLandroid/hardware/location/ContextHubManager;->getContextHubs()Ljava/util/List;
+HSPLandroid/hardware/location/ContextHubManager;->getNanoAppInstanceInfo(I)Landroid/hardware/location/NanoAppInstanceInfo;
+HSPLandroid/hardware/location/ContextHubManager;->invokeOnMessageReceiptCallback(IILandroid/hardware/location/ContextHubMessage;)V
+HSPLandroid/hardware/location/ContextHubManager;->queryNanoApps(Landroid/hardware/location/ContextHubInfo;)Landroid/hardware/location/ContextHubTransaction;
+HSPLandroid/hardware/location/ContextHubManager;->registerCallback(Landroid/hardware/location/ContextHubManager$Callback;Landroid/os/Handler;)I
+HSPLandroid/hardware/location/ContextHubManager;->sendMessage(IILandroid/hardware/location/ContextHubMessage;)I
 HSPLandroid/hardware/location/ContextHubMessage$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/ContextHubMessage;
 HSPLandroid/hardware/location/ContextHubMessage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/location/ContextHubMessage;-><init>(II[B)V
 HSPLandroid/hardware/location/ContextHubMessage;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/hardware/location/ContextHubMessage;-><init>(Landroid/os/Parcel;Landroid/hardware/location/ContextHubMessage$1;)V
+HSPLandroid/hardware/location/ContextHubMessage;->getData()[B
+HSPLandroid/hardware/location/ContextHubMessage;->getMsgType()I
+HSPLandroid/hardware/location/ContextHubMessage;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/location/ContextHubTransaction$Response;-><init>(ILjava/lang/Object;)V
+HSPLandroid/hardware/location/ContextHubTransaction$Response;->getContents()Ljava/lang/Object;
+HSPLandroid/hardware/location/ContextHubTransaction$Response;->getResult()I
+HSPLandroid/hardware/location/ContextHubTransaction;-><init>(I)V
+HSPLandroid/hardware/location/ContextHubTransaction;->lambda$setResponse$1$ContextHubTransaction()V
+HSPLandroid/hardware/location/ContextHubTransaction;->setOnCompleteListener(Landroid/hardware/location/ContextHubTransaction$OnCompleteListener;Ljava/util/concurrent/Executor;)V
+HSPLandroid/hardware/location/ContextHubTransaction;->setResponse(Landroid/hardware/location/ContextHubTransaction$Response;)V
+HSPLandroid/hardware/location/ContextHubTransaction;->waitForResponse(JLjava/util/concurrent/TimeUnit;)Landroid/hardware/location/ContextHubTransaction$Response;
+HSPLandroid/hardware/location/GeofenceHardwareCallback;-><init>()V
+HSPLandroid/hardware/location/GeofenceHardwareMonitorCallback;-><init>()V
+HSPLandroid/hardware/location/IActivityRecognitionHardware$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IActivityRecognitionHardware;
+PLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;->onAvailabilityChanged(ZLandroid/hardware/location/IActivityRecognitionHardware;)V
+HSPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub;-><init>()V
+PLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IActivityRecognitionHardwareClient;
+HSPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/hardware/location/IContextHubCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/hardware/location/IContextHubCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/hardware/location/IContextHubCallback$Stub$Proxy;->onMessageReceipt(IILandroid/hardware/location/ContextHubMessage;)V
+HSPLandroid/hardware/location/IContextHubCallback$Stub;-><init>()V
+HSPLandroid/hardware/location/IContextHubCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/hardware/location/IContextHubCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubCallback;
+HSPLandroid/hardware/location/IContextHubCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/location/IContextHubClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/location/IContextHubClient$Stub$Proxy;->close()V
+HSPLandroid/hardware/location/IContextHubClient$Stub$Proxy;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I
+HSPLandroid/hardware/location/IContextHubClient$Stub;-><init>()V
+PLandroid/hardware/location/IContextHubClient$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/hardware/location/IContextHubClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubClient;
+HPLandroid/hardware/location/IContextHubClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/hardware/location/IContextHubClientCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->onMessageFromNanoApp(Landroid/hardware/location/NanoAppMessage;)V
 HSPLandroid/hardware/location/IContextHubClientCallback$Stub;-><init>()V
 HSPLandroid/hardware/location/IContextHubClientCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/hardware/location/IContextHubClientCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubClientCallback;
+HSPLandroid/hardware/location/IContextHubClientCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->createClient(ILandroid/hardware/location/IContextHubClientCallback;)Landroid/hardware/location/IContextHubClient;
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->findNanoAppOnHub(ILandroid/hardware/location/NanoAppFilter;)[I
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->getContextHubHandles()[I
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->getContextHubInfo(I)Landroid/hardware/location/ContextHubInfo;
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->getContextHubs()Ljava/util/List;
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->getNanoAppInstanceInfo(I)Landroid/hardware/location/NanoAppInstanceInfo;
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->queryNanoApps(ILandroid/hardware/location/IContextHubTransactionCallback;)V
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->registerCallback(Landroid/hardware/location/IContextHubCallback;)I
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->sendMessage(IILandroid/hardware/location/ContextHubMessage;)I
+HSPLandroid/hardware/location/IContextHubService$Stub;-><init>()V
+HSPLandroid/hardware/location/IContextHubService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubService;
+HPLandroid/hardware/location/IContextHubService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/hardware/location/IContextHubTransactionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/hardware/location/IContextHubTransactionCallback$Stub$Proxy;->onQueryResponse(ILjava/util/List;)V
 HSPLandroid/hardware/location/IContextHubTransactionCallback$Stub;-><init>()V
+HSPLandroid/hardware/location/IContextHubTransactionCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/hardware/location/IContextHubTransactionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubTransactionCallback;
+HSPLandroid/hardware/location/IContextHubTransactionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/location/IGeofenceHardware$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IGeofenceHardware;
+HSPLandroid/hardware/location/MemoryRegion$1;->newArray(I)[Landroid/hardware/location/MemoryRegion;
+HSPLandroid/hardware/location/MemoryRegion$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/location/NanoAppFilter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/NanoAppFilter;
+HPLandroid/hardware/location/NanoAppFilter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/location/NanoAppFilter;-><init>(JIIJ)V
+HPLandroid/hardware/location/NanoAppFilter;-><init>(Landroid/os/Parcel;)V
+HPLandroid/hardware/location/NanoAppFilter;-><init>(Landroid/os/Parcel;Landroid/hardware/location/NanoAppFilter$1;)V
+HPLandroid/hardware/location/NanoAppFilter;->testMatch(Landroid/hardware/location/NanoAppInstanceInfo;)Z
+PLandroid/hardware/location/NanoAppFilter;->versionsMatch(III)Z
+HSPLandroid/hardware/location/NanoAppFilter;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/location/NanoAppInstanceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/NanoAppInstanceInfo;
+HSPLandroid/hardware/location/NanoAppInstanceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/location/NanoAppInstanceInfo;-><init>(IJII)V
+HSPLandroid/hardware/location/NanoAppInstanceInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/hardware/location/NanoAppInstanceInfo;->getAppId()J
+HSPLandroid/hardware/location/NanoAppInstanceInfo;->getAppVersion()I
+HSPLandroid/hardware/location/NanoAppInstanceInfo;->getContexthubId()I
+HSPLandroid/hardware/location/NanoAppInstanceInfo;->getHandle()I
+HPLandroid/hardware/location/NanoAppInstanceInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/hardware/location/NanoAppMessage$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/NanoAppMessage;
 HSPLandroid/hardware/location/NanoAppMessage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/hardware/location/NanoAppMessage;-><init>(JI[BZ)V
 HSPLandroid/hardware/location/NanoAppMessage;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/hardware/location/NanoAppMessage;-><init>(Landroid/os/Parcel;Landroid/hardware/location/NanoAppMessage$1;)V
+HPLandroid/hardware/location/NanoAppMessage;->createMessageFromNanoApp(JI[BZ)Landroid/hardware/location/NanoAppMessage;
 HSPLandroid/hardware/location/NanoAppMessage;->createMessageToNanoApp(JI[B)Landroid/hardware/location/NanoAppMessage;
 HSPLandroid/hardware/location/NanoAppMessage;->getMessageBody()[B
 HSPLandroid/hardware/location/NanoAppMessage;->getMessageType()I
+HSPLandroid/hardware/location/NanoAppMessage;->getNanoAppId()J
+HPLandroid/hardware/location/NanoAppMessage;->isBroadcastMessage()Z
 HSPLandroid/hardware/location/NanoAppMessage;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/location/NanoAppState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/NanoAppState;
+HSPLandroid/hardware/location/NanoAppState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/location/NanoAppState;-><init>(JIZ)V
+HSPLandroid/hardware/location/NanoAppState;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/hardware/location/NanoAppState;-><init>(Landroid/os/Parcel;Landroid/hardware/location/NanoAppState$1;)V
+HSPLandroid/hardware/location/NanoAppState;->getNanoAppId()J
+HSPLandroid/hardware/location/NanoAppState;->getNanoAppVersion()J
+HSPLandroid/hardware/location/NanoAppState;->isEnabled()Z
+HPLandroid/hardware/location/NanoAppState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/soundtrigger/-$$Lambda$SoundTrigger$ZVJnEi-r8cH99VNOx-TiaTkEQgo;-><clinit>()V
+HSPLandroid/hardware/soundtrigger/-$$Lambda$SoundTrigger$ZVJnEi-r8cH99VNOx-TiaTkEQgo;-><init>()V
+HSPLandroid/hardware/soundtrigger/ConversionUtil;->aidl2apiAudioCapabilities(I)I
+HSPLandroid/hardware/soundtrigger/ConversionUtil;->aidl2apiModuleDescriptor(Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;)Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
+HSPLandroid/hardware/soundtrigger/ConversionUtil;->aidl2apiRecognitionModes(I)I
+PLandroid/hardware/soundtrigger/ConversionUtil;->api2aidlAudioCapabilities(I)I
+HPLandroid/hardware/soundtrigger/ConversionUtil;->api2aidlRecognitionConfig(Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)Landroid/media/soundtrigger_middleware/RecognitionConfig;
+HPLandroid/hardware/soundtrigger/ConversionUtil;->api2aidlSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;)Landroid/media/soundtrigger_middleware/SoundModel;
+HPLandroid/hardware/soundtrigger/ConversionUtil;->api2aidlUuid(Ljava/util/UUID;)Ljava/lang/String;
+HSPLandroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;-><init>()V
+HSPLandroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/soundtrigger/IRecognitionStatusCallback;
+HSPLandroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;-><init>(Landroid/content/pm/PackageManager;)V
+HSPLandroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->getKeyphraseFromTypedArray(Landroid/content/res/TypedArray;Ljava/lang/String;Ljava/util/List;)Landroid/hardware/soundtrigger/KeyphraseMetadata;
+HSPLandroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->getKeyphraseMetadataFromApplicationInfo(Landroid/content/pm/PackageManager;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)Landroid/hardware/soundtrigger/KeyphraseMetadata;
+HSPLandroid/hardware/soundtrigger/KeyphraseMetadata$1;-><init>()V
+HSPLandroid/hardware/soundtrigger/KeyphraseMetadata;-><clinit>()V
+HSPLandroid/hardware/soundtrigger/KeyphraseMetadata;-><init>(ILjava/lang/String;Landroid/util/ArraySet;I)V
+HSPLandroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel$1;->newArray(I)[Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;
+HSPLandroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;-><init>(Ljava/util/UUID;Ljava/util/UUID;[BI)V
+HSPLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
+HSPLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra$1;->newArray(I)[Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
+HSPLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;-><init>(III[Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;)V
+HSPLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
+HSPLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;-><init>(Ljava/util/UUID;Ljava/util/UUID;[B[Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;I)V
+HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;IIIIZIZIZI)V
+HPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;
+HPLandroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;-><init>(ZZ[Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;[BI)V
+HPLandroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;
+HSPLandroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;-><init>(IIZIIIZLandroid/media/AudioFormat;[B)V
+HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;-><init>(Ljava/util/UUID;Ljava/util/UUID;I[BI)V
+HPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->equals(Ljava/lang/Object;)Z
+HSPLandroid/hardware/soundtrigger/SoundTrigger;->getService()Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService;
+HSPLandroid/hardware/soundtrigger/SoundTrigger;->listModules(Ljava/util/ArrayList;)I
+HPLandroid/hardware/soundtrigger/SoundTriggerModule$EventHandlerDelegate$1;->handleMessage(Landroid/os/Message;)V
+PLandroid/hardware/soundtrigger/SoundTriggerModule$EventHandlerDelegate;->onRecognitionAvailabilityChange(Z)V
+HPLandroid/hardware/soundtrigger/SoundTriggerModule;->loadSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;[I)I
+HPLandroid/hardware/soundtrigger/SoundTriggerModule;->startRecognition(ILandroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+HSPLandroid/hardware/thermal/V1_0/ThermalStatus;-><init>()V
+HSPLandroid/hardware/thermal/V1_0/ThermalStatus;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/thermal/V1_0/ThermalStatus;->readFromParcel(Landroid/os/HwParcel;)V
+HPLandroid/hardware/thermal/V2_0/CoolingDevice;-><init>()V
+HPLandroid/hardware/thermal/V2_0/CoolingDevice;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HPLandroid/hardware/thermal/V2_0/CoolingDevice;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+HSPLandroid/hardware/thermal/V2_0/IThermal$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HPLandroid/hardware/thermal/V2_0/IThermal$Proxy;->getCurrentCoolingDevices(ZILandroid/hardware/thermal/V2_0/IThermal$getCurrentCoolingDevicesCallback;)V
+HSPLandroid/hardware/thermal/V2_0/IThermal$Proxy;->getCurrentTemperatures(ZILandroid/hardware/thermal/V2_0/IThermal$getCurrentTemperaturesCallback;)V
+HSPLandroid/hardware/thermal/V2_0/IThermal$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/thermal/V2_0/IThermal$Proxy;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
+HSPLandroid/hardware/thermal/V2_0/IThermal$Proxy;->registerThermalChangedCallback(Landroid/hardware/thermal/V2_0/IThermalChangedCallback;ZI)Landroid/hardware/thermal/V1_0/ThermalStatus;
+HSPLandroid/hardware/thermal/V2_0/IThermal;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/thermal/V2_0/IThermal;
+HSPLandroid/hardware/thermal/V2_0/IThermal;->getService()Landroid/hardware/thermal/V2_0/IThermal;
+HSPLandroid/hardware/thermal/V2_0/IThermal;->getService(Ljava/lang/String;)Landroid/hardware/thermal/V2_0/IThermal;
+HSPLandroid/hardware/thermal/V2_0/IThermalChangedCallback$Stub;-><init>()V
+HSPLandroid/hardware/thermal/V2_0/IThermalChangedCallback$Stub;->asBinder()Landroid/os/IHwBinder;
+PLandroid/hardware/thermal/V2_0/IThermalChangedCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+HSPLandroid/hardware/thermal/V2_0/Temperature;-><init>()V
+HSPLandroid/hardware/thermal/V2_0/Temperature;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+PLandroid/hardware/thermal/V2_0/Temperature;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/thermal/V2_0/Temperature;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
 HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getCurrentAccessory()Landroid/hardware/usb/UsbAccessory;
 HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getDeviceList(Landroid/os/Bundle;)V
+HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getPortStatus(Ljava/lang/String;)Landroid/hardware/usb/UsbPortStatus;
+HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getPorts()Ljava/util/List;
+HSPLandroid/hardware/usb/IUsbManager$Stub;-><init>()V
 HSPLandroid/hardware/usb/IUsbManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/usb/IUsbManager;
+HSPLandroid/hardware/usb/IUsbManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/usb/ParcelableUsbPort$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/usb/ParcelableUsbPort;
+HSPLandroid/hardware/usb/ParcelableUsbPort$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/usb/ParcelableUsbPort;-><init>(Ljava/lang/String;IIZZ)V
+HSPLandroid/hardware/usb/ParcelableUsbPort;-><init>(Ljava/lang/String;IIZZLandroid/hardware/usb/ParcelableUsbPort$1;)V
+HSPLandroid/hardware/usb/ParcelableUsbPort;->describeContents()I
+HSPLandroid/hardware/usb/ParcelableUsbPort;->getUsbPort(Landroid/hardware/usb/UsbManager;)Landroid/hardware/usb/UsbPort;
+HSPLandroid/hardware/usb/ParcelableUsbPort;->of(Landroid/hardware/usb/UsbPort;)Landroid/hardware/usb/ParcelableUsbPort;
+HSPLandroid/hardware/usb/ParcelableUsbPort;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/hardware/usb/UsbManager;-><init>(Landroid/content/Context;Landroid/hardware/usb/IUsbManager;)V
+HSPLandroid/hardware/usb/UsbManager;->getAccessoryList()[Landroid/hardware/usb/UsbAccessory;
 HSPLandroid/hardware/usb/UsbManager;->getDeviceList()Ljava/util/HashMap;
+HSPLandroid/hardware/usb/UsbManager;->getPortStatus(Landroid/hardware/usb/UsbPort;)Landroid/hardware/usb/UsbPortStatus;
+HSPLandroid/hardware/usb/UsbManager;->getPorts()Ljava/util/List;
+HSPLandroid/hardware/usb/UsbManager;->usbFunctionsFromString(Ljava/lang/String;)J
+HSPLandroid/hardware/usb/UsbManager;->usbFunctionsToString(J)Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPort;-><init>(Landroid/hardware/usb/UsbManager;Ljava/lang/String;IIZZ)V
+HSPLandroid/hardware/usb/UsbPort;->checkRoles(II)V
+HSPLandroid/hardware/usb/UsbPort;->combineRolesAsBit(II)I
+HSPLandroid/hardware/usb/UsbPort;->dataRoleToString(I)Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPort;->getId()Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPort;->getStatus()Landroid/hardware/usb/UsbPortStatus;
+HSPLandroid/hardware/usb/UsbPort;->getSupportedContaminantProtectionModes()I
+HSPLandroid/hardware/usb/UsbPort;->getSupportedModes()I
+PLandroid/hardware/usb/UsbPort;->isModeSupported(I)Z
+HSPLandroid/hardware/usb/UsbPort;->modeToString(I)Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPort;->powerRoleToString(I)Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPort;->roleCombinationsToString(I)Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPort;->supportsEnableContaminantPresenceDetection()Z
+HSPLandroid/hardware/usb/UsbPort;->supportsEnableContaminantPresenceProtection()Z
+HSPLandroid/hardware/usb/UsbPort;->toString()Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPortStatus$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/usb/UsbPortStatus;
+HSPLandroid/hardware/usb/UsbPortStatus$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/usb/UsbPortStatus;-><init>(IIIIII)V
+HSPLandroid/hardware/usb/UsbPortStatus;->describeContents()I
+HSPLandroid/hardware/usb/UsbPortStatus;->getContaminantDetectionStatus()I
+HSPLandroid/hardware/usb/UsbPortStatus;->getContaminantProtectionStatus()I
+HSPLandroid/hardware/usb/UsbPortStatus;->getCurrentDataRole()I
+HSPLandroid/hardware/usb/UsbPortStatus;->getCurrentMode()I
+HSPLandroid/hardware/usb/UsbPortStatus;->getCurrentPowerRole()I
+HSPLandroid/hardware/usb/UsbPortStatus;->isConnected()Z
+PLandroid/hardware/usb/UsbPortStatus;->isRoleCombinationSupported(II)Z
+HSPLandroid/hardware/usb/UsbPortStatus;->toString()Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPortStatus;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget$Proxy;->getCurrentUsbFunctions(Landroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback;)V
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget$Proxy;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/usb/gadget/V1_0/IUsbGadget;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget;->getService()Landroid/hardware/usb/gadget/V1_0/IUsbGadget;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget;->getService(Ljava/lang/String;)Landroid/hardware/usb/gadget/V1_0/IUsbGadget;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget;->getService(Ljava/lang/String;Z)Landroid/hardware/usb/gadget/V1_0/IUsbGadget;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget;->getService(Z)Landroid/hardware/usb/gadget/V1_0/IUsbGadget;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback$Stub;-><init>()V
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback$Stub;->asBinder()Landroid/os/IHwBinder;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
 HSPLandroid/icu/impl/BMPSet;-><init>([II)V
 HSPLandroid/icu/impl/BMPSet;->contains(I)Z
 HSPLandroid/icu/impl/BMPSet;->containsSlow(III)Z
@@ -5966,6 +11970,7 @@
 HSPLandroid/icu/impl/CacheValue$NullValue;->isNull()Z
 HSPLandroid/icu/impl/CacheValue$SoftValue;-><init>(Ljava/lang/Object;)V
 HSPLandroid/icu/impl/CacheValue$SoftValue;->get()Ljava/lang/Object;
+HSPLandroid/icu/impl/CacheValue$SoftValue;->resetIfCleared(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/icu/impl/CacheValue$StrongValue;->get()Ljava/lang/Object;
 HSPLandroid/icu/impl/CacheValue;-><init>()V
 HSPLandroid/icu/impl/CacheValue;->futureInstancesWillBeStrong()Z
@@ -5982,14 +11987,27 @@
 HSPLandroid/icu/impl/CalendarUtil$CalendarPreferences;->getCalendarTypeForRegion(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/impl/CalendarUtil$CalendarPreferences;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
 HSPLandroid/icu/impl/CalendarUtil;->getCalendarType(Landroid/icu/util/ULocale;)Ljava/lang/String;
+HSPLandroid/icu/impl/CaseMapImpl$StringContextIterator;-><init>(Ljava/lang/CharSequence;)V
+HSPLandroid/icu/impl/CaseMapImpl$StringContextIterator;->getCPLength()I
+HSPLandroid/icu/impl/CaseMapImpl$StringContextIterator;->getCPLimit()I
+HSPLandroid/icu/impl/CaseMapImpl$StringContextIterator;->moveToLimit()V
+HSPLandroid/icu/impl/CaseMapImpl$StringContextIterator;->nextCaseMapCP()I
+HSPLandroid/icu/impl/CaseMapImpl$StringContextIterator;->setLimit(I)V
 HSPLandroid/icu/impl/CaseMapImpl;-><clinit>()V
+HSPLandroid/icu/impl/CaseMapImpl;->appendCodePoint(Ljava/lang/Appendable;I)I
+HSPLandroid/icu/impl/CaseMapImpl;->appendResult(ILjava/lang/Appendable;IILandroid/icu/text/Edits;)V
 HSPLandroid/icu/impl/CaseMapImpl;->appendUnchanged(Ljava/lang/CharSequence;IILjava/lang/Appendable;ILandroid/icu/text/Edits;)V
+HSPLandroid/icu/impl/CaseMapImpl;->applyEdits(Ljava/lang/CharSequence;Ljava/lang/StringBuilder;Landroid/icu/text/Edits;)Ljava/lang/String;
+HSPLandroid/icu/impl/CaseMapImpl;->getTitleBreakIterator(Landroid/icu/util/ULocale;ILandroid/icu/text/BreakIterator;)Landroid/icu/text/BreakIterator;
 HSPLandroid/icu/impl/CaseMapImpl;->internalToUpper(IILjava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)V
+HSPLandroid/icu/impl/CaseMapImpl;->toTitle(IILandroid/icu/text/BreakIterator;Ljava/lang/CharSequence;)Ljava/lang/String;
+HSPLandroid/icu/impl/CaseMapImpl;->toTitle(IILandroid/icu/text/BreakIterator;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
 HSPLandroid/icu/impl/CaseMapImpl;->toUpper(IILjava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
 HSPLandroid/icu/impl/CharTrie;-><clinit>()V
 HSPLandroid/icu/impl/CharTrie;-><init>(Ljava/nio/ByteBuffer;Landroid/icu/impl/Trie$DataManipulate;)V
 HSPLandroid/icu/impl/CharTrie;->unserialize(Ljava/nio/ByteBuffer;)V
 HSPLandroid/icu/impl/CharacterIteration;->nextTrail32(Ljava/text/CharacterIterator;I)I
+HSPLandroid/icu/impl/CharacterIteration;->previous32(Ljava/text/CharacterIterator;)I
 HSPLandroid/icu/impl/CharacterPropertiesImpl;-><clinit>()V
 HSPLandroid/icu/impl/CharacterPropertiesImpl;->getInclusionsForProperty(I)Landroid/icu/text/UnicodeSet;
 HSPLandroid/icu/impl/CharacterPropertiesImpl;->getInclusionsForSource(I)Landroid/icu/text/UnicodeSet;
@@ -6004,6 +12022,7 @@
 HSPLandroid/icu/impl/DateNumberFormat;-><init>(Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/icu/impl/DateNumberFormat;->getDigits()[C
 HSPLandroid/icu/impl/DateNumberFormat;->initialize(Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/icu/impl/DontCareFieldPosition;-><clinit>()V
 HSPLandroid/icu/impl/FormattedStringBuilder;-><clinit>()V
 HSPLandroid/icu/impl/FormattedStringBuilder;-><init>()V
 HSPLandroid/icu/impl/FormattedStringBuilder;-><init>(I)V
@@ -6013,6 +12032,7 @@
 HSPLandroid/icu/impl/FormattedStringBuilder;->copyFrom(Landroid/icu/impl/FormattedStringBuilder;)V
 HSPLandroid/icu/impl/FormattedStringBuilder;->fieldAt(I)Ljava/text/Format$Field;
 HSPLandroid/icu/impl/FormattedStringBuilder;->getCapacity()I
+HSPLandroid/icu/impl/FormattedStringBuilder;->insert(ILjava/lang/CharSequence;IILjava/text/Format$Field;)I
 HSPLandroid/icu/impl/FormattedStringBuilder;->insert(ILjava/lang/CharSequence;Ljava/text/Format$Field;)I
 HSPLandroid/icu/impl/FormattedStringBuilder;->insert(I[C[Ljava/text/Format$Field;)I
 HSPLandroid/icu/impl/FormattedStringBuilder;->insertCodePoint(IILjava/text/Format$Field;)I
@@ -6035,6 +12055,8 @@
 HSPLandroid/icu/impl/Grego;->floorDivide(JJ)J
 HSPLandroid/icu/impl/Grego;->floorDivide(JJ[J)J
 HSPLandroid/icu/impl/Grego;->isLeapYear(I)Z
+HSPLandroid/icu/impl/Grego;->monthLength(II)I
+HSPLandroid/icu/impl/Grego;->previousMonthLength(II)I
 HSPLandroid/icu/impl/Grego;->timeToFields(J[I)[I
 HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->addBaseName(Ljava/nio/ByteBuffer;ILjava/lang/String;Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/util/Set;)Z
 HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->addBaseNamesInFolder(Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
@@ -6076,6 +12098,20 @@
 HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->getSpacingInfo()Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;
 HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->getSymbol(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider;->getInstance(Landroid/icu/util/ULocale;Z)Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;-><init>()V
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;-><init>(Landroid/icu/impl/ICUCurrencyMetaInfo$1;)V
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;->collect(Ljava/lang/String;Ljava/lang/String;JJIZ)V
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;->collects()I
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;->getList()Ljava/util/List;
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;-><init>()V
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;->access$300()Landroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;->add(Ljava/lang/Object;)V
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;->create()Landroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;->list()Ljava/util/List;
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->collect(Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->collectRegion(Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;ILandroid/icu/impl/ICUResourceBundle;)V
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->currencies(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
+HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->currencyDigits(Ljava/lang/String;Landroid/icu/util/Currency$CurrencyUsage;)Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;
 HSPLandroid/icu/impl/ICUData;->checkStreamForBinaryData(Ljava/io/InputStream;Ljava/lang/String;)V
 HSPLandroid/icu/impl/ICUData;->getStream(Ljava/lang/ClassLoader;Ljava/lang/String;Z)Ljava/io/InputStream;
 HSPLandroid/icu/impl/ICUDebug;->enabled(Ljava/lang/String;)Z
@@ -6088,6 +12124,7 @@
 HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->currentDescriptor()Ljava/lang/String;
 HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->currentID()Ljava/lang/String;
 HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->currentLocale()Landroid/icu/util/ULocale;
+HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->fallback()Z
 HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->kind()I
 HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->prefix()Ljava/lang/String;
 HSPLandroid/icu/impl/ICULocaleService$LocaleKeyFactory;-><init>(Z)V
@@ -6128,6 +12165,8 @@
 HSPLandroid/icu/impl/ICUResourceBundle;->access$500(Landroid/icu/impl/ICUResourceBundle;)Z
 HSPLandroid/icu/impl/ICUResourceBundle;->access$600(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle;
 HSPLandroid/icu/impl/ICUResourceBundle;->addBundleBaseNamesFromClassLoader(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/Set;)V
+HSPLandroid/icu/impl/ICUResourceBundle;->at(I)Landroid/icu/impl/ICUResourceBundle;
+HSPLandroid/icu/impl/ICUResourceBundle;->at(Ljava/lang/String;)Landroid/icu/impl/ICUResourceBundle;
 HSPLandroid/icu/impl/ICUResourceBundle;->countPathKeys(Ljava/lang/String;)I
 HSPLandroid/icu/impl/ICUResourceBundle;->createBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle;
 HSPLandroid/icu/impl/ICUResourceBundle;->createFullLocaleNameSet(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/Set;
@@ -6167,9 +12206,11 @@
 HSPLandroid/icu/impl/ICUResourceBundle;->setParent(Ljava/util/ResourceBundle;)V
 HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V
 HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->getStringArray()[Ljava/lang/String;
+HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->getType()I
 HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->handleGet(ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;
 HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->handleGetStringArray()[Ljava/lang/String;
 HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceBinary;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V
+HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceBinary;->getBinary()Ljava/nio/ByteBuffer;
 HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceBinary;->getBinary([B)[B
 HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;-><init>(Landroid/icu/impl/ICUResourceBundle$WholeBundle;)V
 HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V
@@ -6263,6 +12304,7 @@
 HSPLandroid/icu/impl/ICUResourceBundleReader;->compareKeys(Ljava/lang/CharSequence;C)I
 HSPLandroid/icu/impl/ICUResourceBundleReader;->getAlias(I)Ljava/lang/String;
 HSPLandroid/icu/impl/ICUResourceBundleReader;->getArray(I)Landroid/icu/impl/ICUResourceBundleReader$Array;
+HSPLandroid/icu/impl/ICUResourceBundleReader;->getBinary(I)Ljava/nio/ByteBuffer;
 HSPLandroid/icu/impl/ICUResourceBundleReader;->getBinary(I[B)[B
 HSPLandroid/icu/impl/ICUResourceBundleReader;->getChars(II)[C
 HSPLandroid/icu/impl/ICUResourceBundleReader;->getFullName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
@@ -6307,13 +12349,18 @@
 HSPLandroid/icu/impl/JavaTimeZone;->getOffset(JZ[I)V
 HSPLandroid/icu/impl/JavaTimeZone;->hashCode()I
 HSPLandroid/icu/impl/JavaTimeZone;->isFrozen()Z
+HSPLandroid/icu/impl/LocaleIDParser$1;-><init>(Landroid/icu/impl/LocaleIDParser;)V
+HSPLandroid/icu/impl/LocaleIDParser$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/icu/impl/LocaleIDParser$1;->compare(Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/icu/impl/LocaleIDParser;-><init>(Ljava/lang/String;)V
 HSPLandroid/icu/impl/LocaleIDParser;-><init>(Ljava/lang/String;Z)V
 HSPLandroid/icu/impl/LocaleIDParser;->addSeparator()V
 HSPLandroid/icu/impl/LocaleIDParser;->append(C)V
+HSPLandroid/icu/impl/LocaleIDParser;->append(Ljava/lang/String;)V
 HSPLandroid/icu/impl/LocaleIDParser;->atTerminator()Z
 HSPLandroid/icu/impl/LocaleIDParser;->getBaseName()Ljava/lang/String;
 HSPLandroid/icu/impl/LocaleIDParser;->getCountry()Ljava/lang/String;
+HSPLandroid/icu/impl/LocaleIDParser;->getKeyComparator()Ljava/util/Comparator;
 HSPLandroid/icu/impl/LocaleIDParser;->getKeywordMap()Ljava/util/Map;
 HSPLandroid/icu/impl/LocaleIDParser;->getKeywordValue(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/impl/LocaleIDParser;->getKeywords()Ljava/util/Iterator;
@@ -6334,6 +12381,8 @@
 HSPLandroid/icu/impl/LocaleIDParser;->parseVariant()I
 HSPLandroid/icu/impl/LocaleIDParser;->reset()V
 HSPLandroid/icu/impl/LocaleIDParser;->set(ILjava/lang/String;)V
+HSPLandroid/icu/impl/LocaleIDParser;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/icu/impl/LocaleIDParser;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;Z)V
 HSPLandroid/icu/impl/LocaleIDParser;->setToKeywordStart()Z
 HSPLandroid/icu/impl/LocaleIDParser;->skipCountry()V
 HSPLandroid/icu/impl/LocaleIDParser;->skipLanguage()V
@@ -6345,6 +12394,7 @@
 HSPLandroid/icu/impl/Norm2AllModes$1;-><init>()V
 HSPLandroid/icu/impl/Norm2AllModes$ComposeNormalizer2;-><init>(Landroid/icu/impl/Normalizer2Impl;Z)V
 HSPLandroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;-><init>(Landroid/icu/impl/Normalizer2Impl;)V
+HSPLandroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;->normalizeAndAppend(Ljava/lang/CharSequence;ZLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V
 HSPLandroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;->spanQuickCheckYes(Ljava/lang/CharSequence;)I
 HSPLandroid/icu/impl/Norm2AllModes$FCDNormalizer2;-><init>(Landroid/icu/impl/Normalizer2Impl;)V
 HSPLandroid/icu/impl/Norm2AllModes$NFCSingleton;-><clinit>()V
@@ -6357,6 +12407,8 @@
 HSPLandroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;->access$000(Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;)Ljava/lang/RuntimeException;
 HSPLandroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;->access$100(Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;)Landroid/icu/impl/Norm2AllModes;
 HSPLandroid/icu/impl/Norm2AllModes$Normalizer2WithImpl;-><init>(Landroid/icu/impl/Normalizer2Impl;)V
+HSPLandroid/icu/impl/Norm2AllModes$Normalizer2WithImpl;->normalizeSecondAndAppend(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
+HSPLandroid/icu/impl/Norm2AllModes$Normalizer2WithImpl;->normalizeSecondAndAppend(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;Z)Ljava/lang/StringBuilder;
 HSPLandroid/icu/impl/Norm2AllModes;-><clinit>()V
 HSPLandroid/icu/impl/Norm2AllModes;-><init>(Landroid/icu/impl/Normalizer2Impl;)V
 HSPLandroid/icu/impl/Norm2AllModes;-><init>(Landroid/icu/impl/Normalizer2Impl;Landroid/icu/impl/Norm2AllModes$1;)V
@@ -6369,12 +12421,18 @@
 HSPLandroid/icu/impl/Normalizer2Impl$IsAcceptable;->isDataVersionAcceptable([B)Z
 HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;-><init>(Landroid/icu/impl/Normalizer2Impl;Ljava/lang/Appendable;I)V
 HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->append(Ljava/lang/CharSequence;IIZII)V
+HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->flushAndAppendZeroCC(Ljava/lang/CharSequence;II)Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;
+HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->previousCC()I
+HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->setIterator()V
 HSPLandroid/icu/impl/Normalizer2Impl$UTF16Plus;->isLeadSurrogate(I)Z
 HSPLandroid/icu/impl/Normalizer2Impl;-><clinit>()V
 HSPLandroid/icu/impl/Normalizer2Impl;-><init>()V
 HSPLandroid/icu/impl/Normalizer2Impl;->addLcccChars(Landroid/icu/text/UnicodeSet;)V
+HSPLandroid/icu/impl/Normalizer2Impl;->composeQuickCheck(Ljava/lang/CharSequence;IIZZ)I
 HSPLandroid/icu/impl/Normalizer2Impl;->decompose(IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V
 HSPLandroid/icu/impl/Normalizer2Impl;->decompose(Ljava/lang/CharSequence;IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)I
+HSPLandroid/icu/impl/Normalizer2Impl;->decomposeAndAppend(Ljava/lang/CharSequence;ZLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V
+HSPLandroid/icu/impl/Normalizer2Impl;->getCCFromYesOrMaybeCP(I)I
 HSPLandroid/icu/impl/Normalizer2Impl;->getFCD16(I)I
 HSPLandroid/icu/impl/Normalizer2Impl;->getFCD16FromNormData(I)I
 HSPLandroid/icu/impl/Normalizer2Impl;->getNorm16(I)I
@@ -6391,8 +12449,10 @@
 HSPLandroid/icu/impl/OlsonTimeZone;->clone()Ljava/lang/Object;
 HSPLandroid/icu/impl/OlsonTimeZone;->cloneAsThawed()Landroid/icu/util/TimeZone;
 HSPLandroid/icu/impl/OlsonTimeZone;->construct(Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;Ljava/lang/String;)V
+HSPLandroid/icu/impl/OlsonTimeZone;->dstOffsetAt(I)I
 HSPLandroid/icu/impl/OlsonTimeZone;->freeze()Landroid/icu/util/TimeZone;
 HSPLandroid/icu/impl/OlsonTimeZone;->getCanonicalID()Ljava/lang/String;
+HSPLandroid/icu/impl/OlsonTimeZone;->getHistoricalOffset(JZII[I)V
 HSPLandroid/icu/impl/OlsonTimeZone;->getInt(B)I
 HSPLandroid/icu/impl/OlsonTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
 HSPLandroid/icu/impl/OlsonTimeZone;->getOffset(JZ[I)V
@@ -6402,6 +12462,7 @@
 HSPLandroid/icu/impl/OlsonTimeZone;->initialRawOffset()I
 HSPLandroid/icu/impl/OlsonTimeZone;->isFrozen()Z
 HSPLandroid/icu/impl/OlsonTimeZone;->loadRule(Landroid/icu/util/UResourceBundle;Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
+HSPLandroid/icu/impl/OlsonTimeZone;->rawOffsetAt(I)I
 HSPLandroid/icu/impl/PatternProps;-><clinit>()V
 HSPLandroid/icu/impl/PatternProps;->isWhiteSpace(I)Z
 HSPLandroid/icu/impl/PatternProps;->skipWhiteSpace(Ljava/lang/CharSequence;I)I
@@ -6452,6 +12513,7 @@
 HSPLandroid/icu/impl/SimpleFormatterImpl;->compileToStringMinMaxArguments(Ljava/lang/CharSequence;Ljava/lang/StringBuilder;II)Ljava/lang/String;
 HSPLandroid/icu/impl/SimpleFormatterImpl;->format(Ljava/lang/String;[Ljava/lang/CharSequence;Ljava/lang/StringBuilder;Ljava/lang/String;Z[I)Ljava/lang/StringBuilder;
 HSPLandroid/icu/impl/SimpleFormatterImpl;->formatAndAppend(Ljava/lang/String;Ljava/lang/StringBuilder;[I[Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
+HSPLandroid/icu/impl/SimpleFormatterImpl;->formatAndReplace(Ljava/lang/String;Ljava/lang/StringBuilder;[I[Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
 HSPLandroid/icu/impl/SimpleFormatterImpl;->formatRawPattern(Ljava/lang/String;II[Ljava/lang/CharSequence;)Ljava/lang/String;
 HSPLandroid/icu/impl/SimpleFormatterImpl;->getArgumentLimit(Ljava/lang/String;)I
 HSPLandroid/icu/impl/SoftCache;-><init>()V
@@ -6459,7 +12521,9 @@
 HSPLandroid/icu/impl/StandardPlural;-><clinit>()V
 HSPLandroid/icu/impl/StandardPlural;-><init>(Ljava/lang/String;ILjava/lang/String;)V
 HSPLandroid/icu/impl/StandardPlural;->fromString(Ljava/lang/CharSequence;)Landroid/icu/impl/StandardPlural;
+HSPLandroid/icu/impl/StandardPlural;->indexFromString(Ljava/lang/CharSequence;)I
 HSPLandroid/icu/impl/StandardPlural;->orNullFromString(Ljava/lang/CharSequence;)Landroid/icu/impl/StandardPlural;
+HSPLandroid/icu/impl/StandardPlural;->orOtherFromString(Ljava/lang/CharSequence;)Landroid/icu/impl/StandardPlural;
 HSPLandroid/icu/impl/StandardPlural;->values()[Landroid/icu/impl/StandardPlural;
 HSPLandroid/icu/impl/StaticUnicodeSets$Key;-><clinit>()V
 HSPLandroid/icu/impl/StaticUnicodeSets$Key;-><init>(Ljava/lang/String;I)V
@@ -6585,18 +12649,23 @@
 HSPLandroid/icu/impl/UCaseProps;-><clinit>()V
 HSPLandroid/icu/impl/UCaseProps;-><init>()V
 HSPLandroid/icu/impl/UCaseProps;->fold(II)I
+HSPLandroid/icu/impl/UCaseProps;->getCaseLocale(Landroid/icu/util/ULocale;)I
 HSPLandroid/icu/impl/UCaseProps;->getCaseLocale(Ljava/lang/String;)I
 HSPLandroid/icu/impl/UCaseProps;->getCaseLocale(Ljava/util/Locale;)I
 HSPLandroid/icu/impl/UCaseProps;->getDelta(I)I
 HSPLandroid/icu/impl/UCaseProps;->getTrie()Landroid/icu/impl/Trie2_16;
+HSPLandroid/icu/impl/UCaseProps;->getTypeFromProps(I)I
 HSPLandroid/icu/impl/UCaseProps;->isUpperOrTitleFromProps(I)Z
 HSPLandroid/icu/impl/UCaseProps;->propsHasException(I)Z
 HSPLandroid/icu/impl/UCaseProps;->readData(Ljava/nio/ByteBuffer;)V
+HSPLandroid/icu/impl/UCaseProps;->toFullTitle(ILandroid/icu/impl/UCaseProps$ContextIterator;Ljava/lang/Appendable;I)I
+HSPLandroid/icu/impl/UCaseProps;->toUpperOrTitle(ILandroid/icu/impl/UCaseProps$ContextIterator;Ljava/lang/Appendable;IZ)I
 HSPLandroid/icu/impl/UCharacterProperty$1;->contains(I)Z
 HSPLandroid/icu/impl/UCharacterProperty$20;->getValue(I)I
 HSPLandroid/icu/impl/UCharacterProperty$BinaryProperty;->contains(I)Z
 HSPLandroid/icu/impl/UCharacterProperty$BinaryProperty;->getSource()I
 HSPLandroid/icu/impl/UCharacterProperty$IntProperty;->getSource()I
+HSPLandroid/icu/impl/UCharacterProperty$IntProperty;->getValue(I)I
 HSPLandroid/icu/impl/UCharacterProperty;->addPropertyStarts(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/UnicodeSet;
 HSPLandroid/icu/impl/UCharacterProperty;->digit(I)I
 HSPLandroid/icu/impl/UCharacterProperty;->getAdditional(II)I
@@ -6631,6 +12700,7 @@
 HSPLandroid/icu/impl/UResource$Key;->regionMatches(ILjava/lang/CharSequence;I)Z
 HSPLandroid/icu/impl/UResource$Key;->setBytes([BI)Landroid/icu/impl/UResource$Key;
 HSPLandroid/icu/impl/UResource$Key;->setString(Ljava/lang/String;)Landroid/icu/impl/UResource$Key;
+HSPLandroid/icu/impl/UResource$Key;->substring(II)Ljava/lang/String;
 HSPLandroid/icu/impl/UResource$Key;->toString()Ljava/lang/String;
 HSPLandroid/icu/impl/UResource$Sink;-><init>()V
 HSPLandroid/icu/impl/UResource$Value;-><init>()V
@@ -6659,12 +12729,21 @@
 HSPLandroid/icu/impl/ZoneMeta;->getZoneIndex(Ljava/lang/String;)I
 HSPLandroid/icu/impl/ZoneMeta;->openOlsonResource(Landroid/icu/util/UResourceBundle;Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
 HSPLandroid/icu/impl/coll/Collation;-><clinit>()V
+HSPLandroid/icu/impl/coll/Collation;->ceFromCE32(I)J
+HSPLandroid/icu/impl/coll/Collation;->ceFromSimpleCE32(I)J
+HSPLandroid/icu/impl/coll/Collation;->incThreeBytePrimaryByOffset(JZI)J
 HSPLandroid/icu/impl/coll/Collation;->indexFromCE32(I)I
 HSPLandroid/icu/impl/coll/Collation;->isSpecialCE32(I)Z
+HSPLandroid/icu/impl/coll/Collation;->latinCE0FromCE32(I)J
+HSPLandroid/icu/impl/coll/Collation;->latinCE1FromCE32(I)J
+HSPLandroid/icu/impl/coll/Collation;->lengthFromCE32(I)I
+HSPLandroid/icu/impl/coll/Collation;->makeCE(J)J
 HSPLandroid/icu/impl/coll/Collation;->tagFromCE32(I)I
 HSPLandroid/icu/impl/coll/CollationData;-><clinit>()V
 HSPLandroid/icu/impl/coll/CollationData;-><init>(Landroid/icu/impl/Normalizer2Impl;)V
 HSPLandroid/icu/impl/coll/CollationData;->getCE32(I)I
+HSPLandroid/icu/impl/coll/CollationData;->getCE32FromContexts(I)I
+HSPLandroid/icu/impl/coll/CollationData;->getFirstPrimaryForGroup(I)J
 HSPLandroid/icu/impl/coll/CollationData;->getLastPrimaryForGroup(I)J
 HSPLandroid/icu/impl/coll/CollationData;->getScriptIndex(I)I
 HSPLandroid/icu/impl/coll/CollationData;->isUnsafeBackward(IZ)Z
@@ -6673,11 +12752,14 @@
 HSPLandroid/icu/impl/coll/CollationDataReader$IsAcceptable;->isDataVersionAcceptable([B)Z
 HSPLandroid/icu/impl/coll/CollationDataReader;-><clinit>()V
 HSPLandroid/icu/impl/coll/CollationDataReader;->read(Landroid/icu/impl/coll/CollationTailoring;Ljava/nio/ByteBuffer;Landroid/icu/impl/coll/CollationTailoring;)V
+HSPLandroid/icu/impl/coll/CollationFCD;-><clinit>()V
+HSPLandroid/icu/impl/coll/CollationFCD;->hasTccc(I)Z
 HSPLandroid/icu/impl/coll/CollationFastLatin;-><clinit>()V
 HSPLandroid/icu/impl/coll/CollationFastLatin;->compareUTF16([C[CILjava/lang/CharSequence;Ljava/lang/CharSequence;I)I
 HSPLandroid/icu/impl/coll/CollationFastLatin;->getOptions(Landroid/icu/impl/coll/CollationData;Landroid/icu/impl/coll/CollationSettings;[C)I
 HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;-><init>()V
 HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->append(J)V
+HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->appendUnsafe(J)V
 HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->ensureAppendCapacity(I)V
 HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->get(I)J
 HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->incLength()V
@@ -6685,11 +12767,22 @@
 HSPLandroid/icu/impl/coll/CollationIterator;-><clinit>()V
 HSPLandroid/icu/impl/coll/CollationIterator;-><init>(Landroid/icu/impl/coll/CollationData;)V
 HSPLandroid/icu/impl/coll/CollationIterator;->appendCEsFromCE32(Landroid/icu/impl/coll/CollationData;IIZ)V
+HSPLandroid/icu/impl/coll/CollationIterator;->clearCEs()V
+HSPLandroid/icu/impl/coll/CollationIterator;->clearCEsIfNoneRemaining()V
 HSPLandroid/icu/impl/coll/CollationIterator;->makeCodePointAndCE32Pair(II)J
 HSPLandroid/icu/impl/coll/CollationIterator;->nextCE()J
+HSPLandroid/icu/impl/coll/CollationIterator;->nextCE32FromContraction(Landroid/icu/impl/coll/CollationData;ILjava/lang/CharSequence;III)I
 HSPLandroid/icu/impl/coll/CollationIterator;->nextCEFromCE32(Landroid/icu/impl/coll/CollationData;II)J
 HSPLandroid/icu/impl/coll/CollationIterator;->reset()V
 HSPLandroid/icu/impl/coll/CollationIterator;->reset(Z)V
+HSPLandroid/icu/impl/coll/CollationKeys$LevelCallback;-><init>()V
+HSPLandroid/icu/impl/coll/CollationKeys$SortKeyByteSink;-><init>([B)V
+HSPLandroid/icu/impl/coll/CollationKeys$SortKeyByteSink;->Append(I)V
+HSPLandroid/icu/impl/coll/CollationKeys$SortKeyByteSink;->Append([BI)V
+HSPLandroid/icu/impl/coll/CollationKeys$SortKeyByteSink;->NumberOfBytesAppended()I
+HSPLandroid/icu/impl/coll/CollationKeys;-><clinit>()V
+HSPLandroid/icu/impl/coll/CollationKeys;->getSortKeyLevel(II)Landroid/icu/impl/coll/CollationKeys$SortKeyLevel;
+HSPLandroid/icu/impl/coll/CollationKeys;->writeSortKeyUpToQuaternary(Landroid/icu/impl/coll/CollationIterator;[ZLandroid/icu/impl/coll/CollationSettings;Landroid/icu/impl/coll/CollationKeys$SortKeyByteSink;ILandroid/icu/impl/coll/CollationKeys$LevelCallback;Z)V
 HSPLandroid/icu/impl/coll/CollationLoader;-><clinit>()V
 HSPLandroid/icu/impl/coll/CollationLoader;->findWithFallback(Landroid/icu/util/UResourceBundle;Ljava/lang/String;)Landroid/icu/util/UResourceBundle;
 HSPLandroid/icu/impl/coll/CollationLoader;->loadTailoring(Landroid/icu/util/ULocale;Landroid/icu/util/Output;)Landroid/icu/impl/coll/CollationTailoring;
@@ -6697,6 +12790,7 @@
 HSPLandroid/icu/impl/coll/CollationRoot;->getRoot()Landroid/icu/impl/coll/CollationTailoring;
 HSPLandroid/icu/impl/coll/CollationSettings;-><clinit>()V
 HSPLandroid/icu/impl/coll/CollationSettings;-><init>()V
+HSPLandroid/icu/impl/coll/CollationSettings;->aliasReordering(Landroid/icu/impl/coll/CollationData;[II[B)V
 HSPLandroid/icu/impl/coll/CollationSettings;->clone()Landroid/icu/impl/coll/CollationSettings;
 HSPLandroid/icu/impl/coll/CollationSettings;->clone()Landroid/icu/impl/coll/SharedObject;
 HSPLandroid/icu/impl/coll/CollationSettings;->dontCheckFCD()Z
@@ -6704,15 +12798,21 @@
 HSPLandroid/icu/impl/coll/CollationSettings;->getMaxVariable()I
 HSPLandroid/icu/impl/coll/CollationSettings;->getStrength()I
 HSPLandroid/icu/impl/coll/CollationSettings;->getStrength(I)I
+HSPLandroid/icu/impl/coll/CollationSettings;->getTertiaryMask(I)I
 HSPLandroid/icu/impl/coll/CollationSettings;->hasReordering()Z
 HSPLandroid/icu/impl/coll/CollationSettings;->isNumeric()Z
+HSPLandroid/icu/impl/coll/CollationSettings;->isTertiaryWithCaseBits(I)Z
+HSPLandroid/icu/impl/coll/CollationSettings;->reorder(J)J
 HSPLandroid/icu/impl/coll/CollationSettings;->setFlag(IZ)V
+HSPLandroid/icu/impl/coll/CollationSettings;->setReorderRanges([III)V
 HSPLandroid/icu/impl/coll/CollationSettings;->setStrength(I)V
 HSPLandroid/icu/impl/coll/CollationTailoring;-><clinit>()V
 HSPLandroid/icu/impl/coll/CollationTailoring;-><init>(Landroid/icu/impl/coll/SharedObject$Reference;)V
 HSPLandroid/icu/impl/coll/CollationTailoring;->ensureOwnedData()V
 HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;-><clinit>()V
 HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;-><init>(Landroid/icu/impl/coll/CollationData;)V
+HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;->handleNextCE32()J
+HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;->setText(ZLjava/lang/CharSequence;I)V
 HSPLandroid/icu/impl/coll/SharedObject$Reference;-><init>(Landroid/icu/impl/coll/SharedObject;)V
 HSPLandroid/icu/impl/coll/SharedObject$Reference;->clear()V
 HSPLandroid/icu/impl/coll/SharedObject$Reference;->clone()Landroid/icu/impl/coll/SharedObject$Reference;
@@ -6729,6 +12829,7 @@
 HSPLandroid/icu/impl/coll/UTF16CollationIterator;->setText(ZLjava/lang/CharSequence;I)V
 HSPLandroid/icu/impl/locale/AsciiUtil;->caseIgnoreMatch(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLandroid/icu/impl/locale/AsciiUtil;->isAlpha(C)Z
+HSPLandroid/icu/impl/locale/AsciiUtil;->isAlphaString(Ljava/lang/String;)Z
 HSPLandroid/icu/impl/locale/AsciiUtil;->toLower(C)C
 HSPLandroid/icu/impl/locale/AsciiUtil;->toLowerString(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/impl/locale/AsciiUtil;->toTitleString(Ljava/lang/String;)Ljava/lang/String;
@@ -6753,9 +12854,23 @@
 HSPLandroid/icu/impl/locale/BaseLocale;->getRegion()Ljava/lang/String;
 HSPLandroid/icu/impl/locale/BaseLocale;->getScript()Ljava/lang/String;
 HSPLandroid/icu/impl/locale/BaseLocale;->getVariant()Ljava/lang/String;
+HSPLandroid/icu/impl/locale/LanguageTag;-><init>()V
+HSPLandroid/icu/impl/locale/LanguageTag;->canonicalizeLanguage(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/icu/impl/locale/LanguageTag;->getExtensions()Ljava/util/List;
+HSPLandroid/icu/impl/locale/LanguageTag;->getLanguage()Ljava/lang/String;
+HSPLandroid/icu/impl/locale/LanguageTag;->getPrivateuse()Ljava/lang/String;
+HSPLandroid/icu/impl/locale/LanguageTag;->getRegion()Ljava/lang/String;
+HSPLandroid/icu/impl/locale/LanguageTag;->getScript()Ljava/lang/String;
+HSPLandroid/icu/impl/locale/LanguageTag;->getVariants()Ljava/util/List;
+HSPLandroid/icu/impl/locale/LanguageTag;->isLanguage(Ljava/lang/String;)Z
+HSPLandroid/icu/impl/locale/LanguageTag;->isScript(Ljava/lang/String;)Z
+HSPLandroid/icu/impl/locale/LanguageTag;->parseLocale(Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/LocaleExtensions;)Landroid/icu/impl/locale/LanguageTag;
+HSPLandroid/icu/impl/locale/LocaleExtensions;-><clinit>()V
 HSPLandroid/icu/impl/locale/LocaleObjectCache$CacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
+HSPLandroid/icu/impl/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object;
 HSPLandroid/icu/impl/locale/LocaleObjectCache;->cleanStaleEntries()V
 HSPLandroid/icu/impl/locale/LocaleObjectCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/icu/impl/locale/UnicodeLocaleExtension;-><clinit>()V
 HSPLandroid/icu/impl/number/AdoptingModifierStore;-><clinit>()V
 HSPLandroid/icu/impl/number/AdoptingModifierStore;-><init>(Landroid/icu/impl/number/Modifier;Landroid/icu/impl/number/Modifier;Landroid/icu/impl/number/Modifier;)V
 HSPLandroid/icu/impl/number/AdoptingModifierStore;->getModifierWithoutPlural(I)Landroid/icu/impl/number/Modifier;
@@ -6857,17 +12972,24 @@
 HSPLandroid/icu/impl/number/DecimalFormatProperties;->setRoundingIncrement(Ljava/math/BigDecimal;)Landroid/icu/impl/number/DecimalFormatProperties;
 HSPLandroid/icu/impl/number/DecimalFormatProperties;->setRoundingMode(Ljava/math/RoundingMode;)Landroid/icu/impl/number/DecimalFormatProperties;
 HSPLandroid/icu/impl/number/DecimalFormatProperties;->setSecondaryGroupingSize(I)Landroid/icu/impl/number/DecimalFormatProperties;
+HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD$1;-><clinit>()V
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;-><clinit>()V
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;-><init>()V
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToDoubleFast(D)V
+HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToInt(I)V
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToLong(J)V
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->adjustMagnitude(I)V
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->appendDigit(BIZ)V
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->applyMaxInteger(I)V
+HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->convertToAccurateDouble()V
+HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->copyFrom(Landroid/icu/impl/number/DecimalQuantity;)V
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->fitsInLong()Z
+HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->fractionCount()I
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getDigit(I)B
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getLowerDisplayMagnitude()I
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getMagnitude()I
+HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getPluralOperand(Landroid/icu/text/PluralRules$Operand;)D
+HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getStandardPlural(Landroid/icu/text/PluralRules;)Landroid/icu/impl/StandardPlural;
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getUpperDisplayMagnitude()I
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->isInfinite()Z
 HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->isNaN()Z
@@ -6890,7 +13012,11 @@
 HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(D)V
 HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(I)V
 HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(J)V
+HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;)V
+HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(Ljava/lang/Number;)V
 HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->compact()V
+HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->copyBcdFrom(Landroid/icu/impl/number/DecimalQuantity;)V
+HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->createCopy()Landroid/icu/impl/number/DecimalQuantity;
 HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->getDigitPos(I)B
 HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->readIntToBcd(I)V
 HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->readLongToBcd(J)V
@@ -6905,11 +13031,23 @@
 HSPLandroid/icu/impl/number/Grouper;->getSecondary()S
 HSPLandroid/icu/impl/number/Grouper;->groupAtPosition(ILandroid/icu/impl/number/DecimalQuantity;)Z
 HSPLandroid/icu/impl/number/Grouper;->withLocaleData(Landroid/icu/util/ULocale;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;)Landroid/icu/impl/number/Grouper;
+HSPLandroid/icu/impl/number/LongNameHandler$PluralTableSink;-><init>([Ljava/lang/String;)V
+HSPLandroid/icu/impl/number/LongNameHandler$PluralTableSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
+HSPLandroid/icu/impl/number/LongNameHandler;-><clinit>()V
+HSPLandroid/icu/impl/number/LongNameHandler;-><init>(Ljava/util/Map;Landroid/icu/text/PluralRules;Landroid/icu/impl/number/MicroPropsGenerator;)V
+HSPLandroid/icu/impl/number/LongNameHandler;->access$000(Ljava/lang/String;)I
+HSPLandroid/icu/impl/number/LongNameHandler;->forMeasureUnit(Landroid/icu/util/ULocale;Landroid/icu/util/MeasureUnit;Landroid/icu/util/MeasureUnit;Landroid/icu/number/NumberFormatter$UnitWidth;Landroid/icu/text/PluralRules;Landroid/icu/impl/number/MicroPropsGenerator;)Landroid/icu/impl/number/LongNameHandler;
+HSPLandroid/icu/impl/number/LongNameHandler;->getIndex(Ljava/lang/String;)I
+HSPLandroid/icu/impl/number/LongNameHandler;->getMeasureData(Landroid/icu/util/ULocale;Landroid/icu/util/MeasureUnit;Landroid/icu/number/NumberFormatter$UnitWidth;[Ljava/lang/String;)V
+HSPLandroid/icu/impl/number/LongNameHandler;->getWithPlural([Ljava/lang/String;Landroid/icu/impl/StandardPlural;)Ljava/lang/String;
+HSPLandroid/icu/impl/number/LongNameHandler;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;
+HSPLandroid/icu/impl/number/LongNameHandler;->simpleFormatsToModifiers([Ljava/lang/String;Landroid/icu/text/NumberFormat$Field;)V
 HSPLandroid/icu/impl/number/MacroProps;-><init>()V
 HSPLandroid/icu/impl/number/MacroProps;->fallback(Landroid/icu/impl/number/MacroProps;)V
 HSPLandroid/icu/impl/number/MicroProps;-><init>(Z)V
 HSPLandroid/icu/impl/number/MicroProps;->clone()Ljava/lang/Object;
 HSPLandroid/icu/impl/number/MicroProps;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;
+HSPLandroid/icu/impl/number/Modifier$Parameters;-><init>()V
 HSPLandroid/icu/impl/number/MultiplierFormatHandler;-><init>(Landroid/icu/number/Scale;Landroid/icu/impl/number/MicroPropsGenerator;)V
 HSPLandroid/icu/impl/number/MultiplierFormatHandler;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;
 HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;-><init>(Landroid/icu/impl/number/AdoptingModifierStore;Landroid/icu/text/PluralRules;Landroid/icu/impl/number/MicroPropsGenerator;)V
@@ -6969,9 +13107,16 @@
 HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->length(I)I
 HSPLandroid/icu/impl/number/RoundingUtils;->getMathContextOr34Digits(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/math/MathContext;
 HSPLandroid/icu/impl/number/RoundingUtils;->getMathContextOrUnlimited(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/math/MathContext;
+HSPLandroid/icu/impl/number/RoundingUtils;->getPluralSafe(Landroid/icu/number/Precision;Landroid/icu/text/PluralRules;Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/StandardPlural;
 HSPLandroid/icu/impl/number/RoundingUtils;->getRoundingDirection(ZZIILjava/lang/Object;)Z
+HSPLandroid/icu/impl/number/RoundingUtils;->mathContextUnlimited(Ljava/math/RoundingMode;)Ljava/math/MathContext;
 HSPLandroid/icu/impl/number/RoundingUtils;->roundsAtMidpoint(I)Z
 HSPLandroid/icu/impl/number/RoundingUtils;->scaleFromProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/Scale;
+HSPLandroid/icu/impl/number/SimpleModifier;-><clinit>()V
+HSPLandroid/icu/impl/number/SimpleModifier;-><init>(Ljava/lang/String;Ljava/text/Format$Field;Z)V
+HSPLandroid/icu/impl/number/SimpleModifier;-><init>(Ljava/lang/String;Ljava/text/Format$Field;ZLandroid/icu/impl/number/Modifier$Parameters;)V
+HSPLandroid/icu/impl/number/SimpleModifier;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I
+HSPLandroid/icu/impl/number/SimpleModifier;->formatAsPrefixSuffix(Landroid/icu/impl/FormattedStringBuilder;II)I
 HSPLandroid/icu/impl/number/parse/AffixMatcher$1;-><init>()V
 HSPLandroid/icu/impl/number/parse/AffixMatcher$1;->compare(Landroid/icu/impl/number/parse/AffixMatcher;Landroid/icu/impl/number/parse/AffixMatcher;)I
 HSPLandroid/icu/impl/number/parse/AffixMatcher$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
@@ -7057,10 +13202,12 @@
 HSPLandroid/icu/lang/CharacterProperties;-><clinit>()V
 HSPLandroid/icu/lang/CharacterProperties;->getBinaryPropertySet(I)Landroid/icu/text/UnicodeSet;
 HSPLandroid/icu/lang/CharacterProperties;->makeSet(I)Landroid/icu/text/UnicodeSet;
+HSPLandroid/icu/lang/UCharacter;->codePointAt(Ljava/lang/CharSequence;I)I
 HSPLandroid/icu/lang/UCharacter;->digit(I)I
 HSPLandroid/icu/lang/UCharacter;->digit(II)I
 HSPLandroid/icu/lang/UCharacter;->foldCase(II)I
 HSPLandroid/icu/lang/UCharacter;->foldCase(IZ)I
+HSPLandroid/icu/lang/UCharacter;->getCaseLocale(Landroid/icu/util/ULocale;)I
 HSPLandroid/icu/lang/UCharacter;->getIntPropertyValue(II)I
 HSPLandroid/icu/lang/UCharacter;->getPropertyEnum(Ljava/lang/CharSequence;)I
 HSPLandroid/icu/lang/UCharacter;->getPropertyValueEnum(ILjava/lang/CharSequence;)I
@@ -7069,7 +13216,9 @@
 HSPLandroid/icu/lang/UCharacter;->getUnicodeVersion()Landroid/icu/util/VersionInfo;
 HSPLandroid/icu/lang/UCharacter;->hasBinaryProperty(II)Z
 HSPLandroid/icu/lang/UCharacter;->isDigit(I)Z
+HSPLandroid/icu/lang/UCharacter;->isHighSurrogate(C)Z
 HSPLandroid/icu/lang/UCharacter;->isLowerCase(I)Z
+HSPLandroid/icu/lang/UCharacter;->toTitleCase(Landroid/icu/util/ULocale;Ljava/lang/String;Landroid/icu/text/BreakIterator;I)Ljava/lang/String;
 HSPLandroid/icu/lang/UScript$ScriptMetadata;-><clinit>()V
 HSPLandroid/icu/lang/UScript$ScriptMetadata;->access$000(I)I
 HSPLandroid/icu/lang/UScript$ScriptMetadata;->getScriptProps(I)I
@@ -7080,18 +13229,23 @@
 HSPLandroid/icu/lang/UScript;->getCodeFromName(Ljava/lang/String;)I
 HSPLandroid/icu/lang/UScript;->getScript(I)I
 HSPLandroid/icu/lang/UScript;->isRightToLeft(I)Z
+HSPLandroid/icu/number/CurrencyPrecision;->withCurrency(Landroid/icu/util/Currency;)Landroid/icu/number/Precision;
 HSPLandroid/icu/number/FormattedNumber;-><init>(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/number/DecimalQuantity;)V
 HSPLandroid/icu/number/FormattedNumber;->appendTo(Ljava/lang/Appendable;)Ljava/lang/Appendable;
 HSPLandroid/icu/number/FormattedNumber;->nextFieldPosition(Ljava/text/FieldPosition;)Z
+HSPLandroid/icu/number/FormattedNumber;->toString()Ljava/lang/String;
 HSPLandroid/icu/number/FractionPrecision;-><init>()V
 HSPLandroid/icu/number/IntegerWidth;-><init>(II)V
 HSPLandroid/icu/number/IntegerWidth;->truncateAt(I)Landroid/icu/number/IntegerWidth;
 HSPLandroid/icu/number/IntegerWidth;->zeroFillTo(I)Landroid/icu/number/IntegerWidth;
 HSPLandroid/icu/number/LocalizedNumberFormatter;-><init>(Landroid/icu/number/NumberFormatterSettings;ILjava/lang/Object;)V
 HSPLandroid/icu/number/LocalizedNumberFormatter;->computeCompiled()Z
+HSPLandroid/icu/number/LocalizedNumberFormatter;->create(ILjava/lang/Object;)Landroid/icu/number/LocalizedNumberFormatter;
+HSPLandroid/icu/number/LocalizedNumberFormatter;->create(ILjava/lang/Object;)Landroid/icu/number/NumberFormatterSettings;
 HSPLandroid/icu/number/LocalizedNumberFormatter;->format(D)Landroid/icu/number/FormattedNumber;
 HSPLandroid/icu/number/LocalizedNumberFormatter;->format(J)Landroid/icu/number/FormattedNumber;
 HSPLandroid/icu/number/LocalizedNumberFormatter;->format(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/number/FormattedNumber;
+HSPLandroid/icu/number/LocalizedNumberFormatter;->format(Ljava/lang/Number;)Landroid/icu/number/FormattedNumber;
 HSPLandroid/icu/number/LocalizedNumberFormatter;->formatImpl(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;)V
 HSPLandroid/icu/number/LocalizedNumberFormatter;->getAffixImpl(ZZ)Ljava/lang/String;
 HSPLandroid/icu/number/NumberFormatter$UnitWidth;-><clinit>()V
@@ -7118,7 +13272,11 @@
 HSPLandroid/icu/number/NumberFormatterImpl;->writeNumber(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I
 HSPLandroid/icu/number/NumberFormatterSettings;-><init>(Landroid/icu/number/NumberFormatterSettings;ILjava/lang/Object;)V
 HSPLandroid/icu/number/NumberFormatterSettings;->macros(Landroid/icu/impl/number/MacroProps;)Landroid/icu/number/NumberFormatterSettings;
+HSPLandroid/icu/number/NumberFormatterSettings;->perUnit(Landroid/icu/util/MeasureUnit;)Landroid/icu/number/NumberFormatterSettings;
+HSPLandroid/icu/number/NumberFormatterSettings;->precision(Landroid/icu/number/Precision;)Landroid/icu/number/NumberFormatterSettings;
 HSPLandroid/icu/number/NumberFormatterSettings;->resolve()Landroid/icu/impl/number/MacroProps;
+HSPLandroid/icu/number/NumberFormatterSettings;->unit(Landroid/icu/util/MeasureUnit;)Landroid/icu/number/NumberFormatterSettings;
+HSPLandroid/icu/number/NumberFormatterSettings;->unitWidth(Landroid/icu/number/NumberFormatter$UnitWidth;)Landroid/icu/number/NumberFormatterSettings;
 HSPLandroid/icu/number/NumberPropertyMapper;->create(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/UnlocalizedNumberFormatter;
 HSPLandroid/icu/number/NumberPropertyMapper;->oldToNew(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/MacroProps;
 HSPLandroid/icu/number/Precision$FractionRounderImpl;-><init>(II)V
@@ -7126,9 +13284,13 @@
 HSPLandroid/icu/number/Precision;-><init>()V
 HSPLandroid/icu/number/Precision;->access$000(I)I
 HSPLandroid/icu/number/Precision;->access$100(I)I
+HSPLandroid/icu/number/Precision;->clone()Ljava/lang/Object;
+HSPLandroid/icu/number/Precision;->constructCurrency(Landroid/icu/util/Currency$CurrencyUsage;)Landroid/icu/number/CurrencyPrecision;
 HSPLandroid/icu/number/Precision;->constructFraction(II)Landroid/icu/number/FractionPrecision;
+HSPLandroid/icu/number/Precision;->constructFromCurrency(Landroid/icu/number/CurrencyPrecision;Landroid/icu/util/Currency;)Landroid/icu/number/Precision;
 HSPLandroid/icu/number/Precision;->getDisplayMagnitudeFraction(I)I
 HSPLandroid/icu/number/Precision;->getRoundingMagnitudeFraction(I)I
+HSPLandroid/icu/number/Precision;->integer()Landroid/icu/number/FractionPrecision;
 HSPLandroid/icu/number/Precision;->withLocaleData(Landroid/icu/util/Currency;)Landroid/icu/number/Precision;
 HSPLandroid/icu/number/Precision;->withMode(Ljava/math/MathContext;)Landroid/icu/number/Precision;
 HSPLandroid/icu/number/Scale;-><clinit>()V
@@ -7194,6 +13356,10 @@
 HSPLandroid/icu/text/CaseMap;->access$500(Ljava/util/Locale;)I
 HSPLandroid/icu/text/CaseMap;->getCaseLocale(Ljava/util/Locale;)I
 HSPLandroid/icu/text/CaseMap;->toUpper()Landroid/icu/text/CaseMap$Upper;
+HSPLandroid/icu/text/CollationKey;-><clinit>()V
+HSPLandroid/icu/text/CollationKey;-><init>(Ljava/lang/String;Landroid/icu/text/RawCollationKey;)V
+HSPLandroid/icu/text/CollationKey;->getLength()I
+HSPLandroid/icu/text/CollationKey;->toByteArray()[B
 HSPLandroid/icu/text/Collator$ServiceShim;-><init>()V
 HSPLandroid/icu/text/Collator;-><clinit>()V
 HSPLandroid/icu/text/Collator;-><init>()V
@@ -7224,6 +13390,11 @@
 HSPLandroid/icu/text/ConstrainedFieldPosition;->setState(Ljava/text/Format$Field;Ljava/lang/Object;II)V
 HSPLandroid/icu/text/CurrencyDisplayNames;-><init>()V
 HSPLandroid/icu/text/CurrencyDisplayNames;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/CurrencyDisplayNames;
+HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyDigits;-><init>(II)V
+HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;-><init>(Ljava/lang/String;Ljava/lang/String;JJZ)V
+HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onRegion(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withRegion(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
+HSPLandroid/icu/text/CurrencyMetaInfo;->getInstance()Landroid/icu/text/CurrencyMetaInfo;
 HSPLandroid/icu/text/DateFormat$BooleanAttribute;-><clinit>()V
 HSPLandroid/icu/text/DateFormat$BooleanAttribute;-><init>(Ljava/lang/String;I)V
 HSPLandroid/icu/text/DateFormat$BooleanAttribute;->values()[Landroid/icu/text/DateFormat$BooleanAttribute;
@@ -7231,12 +13402,20 @@
 HSPLandroid/icu/text/DateFormat$Field;-><init>(Ljava/lang/String;I)V
 HSPLandroid/icu/text/DateFormat;-><clinit>()V
 HSPLandroid/icu/text/DateFormat;-><init>()V
+HSPLandroid/icu/text/DateFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
+HSPLandroid/icu/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
+HSPLandroid/icu/text/DateFormat;->format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
 HSPLandroid/icu/text/DateFormat;->get(IILandroid/icu/util/ULocale;Landroid/icu/util/Calendar;)Landroid/icu/text/DateFormat;
 HSPLandroid/icu/text/DateFormat;->getCalendar()Landroid/icu/util/Calendar;
 HSPLandroid/icu/text/DateFormat;->getContext(Landroid/icu/text/DisplayContext$Type;)Landroid/icu/text/DisplayContext;
 HSPLandroid/icu/text/DateFormat;->getDateInstance(ILandroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
+HSPLandroid/icu/text/DateFormat;->getInstanceForSkeleton(Ljava/lang/String;)Landroid/icu/text/DateFormat;
+HSPLandroid/icu/text/DateFormat;->getInstanceForSkeleton(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
+HSPLandroid/icu/text/DateFormat;->getInstanceForSkeleton(Ljava/lang/String;Ljava/util/Locale;)Landroid/icu/text/DateFormat;
+HSPLandroid/icu/text/DateFormat;->getPatternInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
 HSPLandroid/icu/text/DateFormat;->getTimeInstance(ILandroid/icu/util/ULocale;)Landroid/icu/text/DateFormat;
 HSPLandroid/icu/text/DateFormat;->setCalendar(Landroid/icu/util/Calendar;)V
+HSPLandroid/icu/text/DateFormat;->setContext(Landroid/icu/text/DisplayContext;)V
 HSPLandroid/icu/text/DateFormat;->setTimeZone(Landroid/icu/util/TimeZone;)V
 HSPLandroid/icu/text/DateFormatSymbols$1;-><init>()V
 HSPLandroid/icu/text/DateFormatSymbols$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
@@ -7264,16 +13443,24 @@
 HSPLandroid/icu/text/DateFormatSymbols;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/DateFormatSymbols;->setTimeSeparatorString(Ljava/lang/String;)V
 HSPLandroid/icu/text/DateIntervalFormat$BestMatchInfo;-><init>(Ljava/lang/String;I)V
+HSPLandroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/icu/text/DateIntervalFormat;-><clinit>()V
 HSPLandroid/icu/text/DateIntervalFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/text/SimpleDateFormat;)V
+HSPLandroid/icu/text/DateIntervalFormat;->adjustFieldWidth(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+HSPLandroid/icu/text/DateIntervalFormat;->concatSingleDate2TimeInterval(Ljava/lang/String;Ljava/lang/String;ILjava/util/Map;)V
+HSPLandroid/icu/text/DateIntervalFormat;->fieldExistsInSkeleton(ILjava/lang/String;)Z
 HSPLandroid/icu/text/DateIntervalFormat;->format(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
 HSPLandroid/icu/text/DateIntervalFormat;->formatImpl(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Landroid/icu/text/DateIntervalFormat$FormatOutput;Ljava/util/List;)Ljava/lang/StringBuffer;
+HSPLandroid/icu/text/DateIntervalFormat;->genFallbackPattern(ILjava/lang/String;Ljava/util/Map;Landroid/icu/text/DateTimePatternGenerator;)V
 HSPLandroid/icu/text/DateIntervalFormat;->genIntervalPattern(ILjava/lang/String;Ljava/lang/String;ILjava/util/Map;)Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;
 HSPLandroid/icu/text/DateIntervalFormat;->genSeparateDateTimePtn(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Landroid/icu/text/DateTimePatternGenerator;)Z
+HSPLandroid/icu/text/DateIntervalFormat;->getConcatenationPattern(Landroid/icu/util/ULocale;)Ljava/lang/String;
 HSPLandroid/icu/text/DateIntervalFormat;->getDateTimeSkeleton(Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)V
 HSPLandroid/icu/text/DateIntervalFormat;->getInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateIntervalFormat;
 HSPLandroid/icu/text/DateIntervalFormat;->initializeIntervalPattern(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/util/Map;
 HSPLandroid/icu/text/DateIntervalFormat;->initializePattern(Landroid/icu/impl/ICUCache;)V
 HSPLandroid/icu/text/DateIntervalFormat;->setTimeZone(Landroid/icu/util/TimeZone;)V
+HSPLandroid/icu/text/DateIntervalInfo$DateIntervalSink;-><clinit>()V
 HSPLandroid/icu/text/DateIntervalInfo$DateIntervalSink;-><init>(Landroid/icu/text/DateIntervalInfo;)V
 HSPLandroid/icu/text/DateIntervalInfo$DateIntervalSink;->getAndResetNextCalendarType()Ljava/lang/String;
 HSPLandroid/icu/text/DateIntervalInfo$DateIntervalSink;->processSkeletonTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
@@ -7284,8 +13471,10 @@
 HSPLandroid/icu/text/DateIntervalInfo$PatternInfo;->firstDateInPtnIsLaterDate()Z
 HSPLandroid/icu/text/DateIntervalInfo$PatternInfo;->getFirstPart()Ljava/lang/String;
 HSPLandroid/icu/text/DateIntervalInfo$PatternInfo;->getSecondPart()Ljava/lang/String;
+HSPLandroid/icu/text/DateIntervalInfo;-><clinit>()V
 HSPLandroid/icu/text/DateIntervalInfo;-><init>(Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/DateIntervalInfo;->access$000()Ljava/lang/String;
+HSPLandroid/icu/text/DateIntervalInfo;->access$100()Ljava/lang/String;
 HSPLandroid/icu/text/DateIntervalInfo;->access$200(Landroid/icu/text/DateIntervalInfo;)Ljava/util/Map;
 HSPLandroid/icu/text/DateIntervalInfo;->access$300(Landroid/icu/text/DateIntervalInfo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/text/DateIntervalInfo$PatternInfo;
 HSPLandroid/icu/text/DateIntervalInfo;->clone()Ljava/lang/Object;
@@ -7293,13 +13482,16 @@
 HSPLandroid/icu/text/DateIntervalInfo;->freeze()Landroid/icu/text/DateIntervalInfo;
 HSPLandroid/icu/text/DateIntervalInfo;->genPatternInfo(Ljava/lang/String;Z)Landroid/icu/text/DateIntervalInfo$PatternInfo;
 HSPLandroid/icu/text/DateIntervalInfo;->getBestSkeleton(Ljava/lang/String;)Landroid/icu/text/DateIntervalFormat$BestMatchInfo;
+HSPLandroid/icu/text/DateIntervalInfo;->getDefaultOrder()Z
 HSPLandroid/icu/text/DateIntervalInfo;->getIntervalPattern(Ljava/lang/String;I)Landroid/icu/text/DateIntervalInfo$PatternInfo;
 HSPLandroid/icu/text/DateIntervalInfo;->initializeData(Landroid/icu/util/ULocale;)V
+HSPLandroid/icu/text/DateIntervalInfo;->initializeFromReadOnlyPatterns(Landroid/icu/text/DateIntervalInfo;)V
 HSPLandroid/icu/text/DateIntervalInfo;->parseSkeleton(Ljava/lang/String;[I)V
 HSPLandroid/icu/text/DateIntervalInfo;->setFallbackIntervalPattern(Ljava/lang/String;)V
 HSPLandroid/icu/text/DateIntervalInfo;->setIntervalPatternInternally(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/text/DateIntervalInfo$PatternInfo;
 HSPLandroid/icu/text/DateIntervalInfo;->setup(Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/DateIntervalInfo;->splitPatternInto2Part(Ljava/lang/String;)I
+HSPLandroid/icu/text/DateIntervalInfo;->stringNumeric(IIC)Z
 HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;-><clinit>()V
 HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;-><init>(Landroid/icu/text/DateTimePatternGenerator;)V
 HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;-><init>(Landroid/icu/text/DateTimePatternGenerator;Landroid/icu/text/DateTimePatternGenerator$1;)V
@@ -7442,10 +13634,12 @@
 HSPLandroid/icu/text/DecimalFormat;->setGroupingUsed(Z)V
 HSPLandroid/icu/text/DecimalFormat;->setMaximumFractionDigits(I)V
 HSPLandroid/icu/text/DecimalFormat;->setMaximumIntegerDigits(I)V
+HSPLandroid/icu/text/DecimalFormat;->setMinimumFractionDigits(I)V
 HSPLandroid/icu/text/DecimalFormat;->setMinimumIntegerDigits(I)V
 HSPLandroid/icu/text/DecimalFormat;->setParseIntegerOnly(Z)V
 HSPLandroid/icu/text/DecimalFormat;->setParseStrictMode(Landroid/icu/impl/number/DecimalFormatProperties$ParseMode;)V
 HSPLandroid/icu/text/DecimalFormat;->setPropertiesFromPattern(Ljava/lang/String;I)V
+HSPLandroid/icu/text/DecimalFormat;->toNumberFormatter()Landroid/icu/number/LocalizedNumberFormatter;
 HSPLandroid/icu/text/DecimalFormat;->toPattern()Ljava/lang/String;
 HSPLandroid/icu/text/DecimalFormatSymbols$1;->createInstance(Landroid/icu/util/ULocale;Ljava/lang/Void;)Landroid/icu/text/DecimalFormatSymbols$CacheData;
 HSPLandroid/icu/text/DecimalFormatSymbols$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
@@ -7515,30 +13709,76 @@
 HSPLandroid/icu/text/DecimalFormatSymbols;->setZeroDigit(C)V
 HSPLandroid/icu/text/DictionaryBreakEngine$DequeI;-><init>()V
 HSPLandroid/icu/text/DictionaryBreakEngine$DequeI;->clone()Ljava/lang/Object;
+HSPLandroid/icu/text/DictionaryBreakEngine$DequeI;->isEmpty()Z
+HSPLandroid/icu/text/DictionaryBreakEngine$DequeI;->pop()I
+HSPLandroid/icu/text/DictionaryBreakEngine$DequeI;->push(I)V
 HSPLandroid/icu/text/DictionaryBreakEngine$DequeI;->removeAllElements()V
+HSPLandroid/icu/text/DictionaryBreakEngine$DequeI;->size()I
 HSPLandroid/icu/text/DisplayContext;->type()Landroid/icu/text/DisplayContext$Type;
+HSPLandroid/icu/text/Edits$Iterator;-><clinit>()V
+HSPLandroid/icu/text/Edits$Iterator;-><init>([CIZZ)V
+HSPLandroid/icu/text/Edits$Iterator;-><init>([CIZZLandroid/icu/text/Edits$1;)V
+HSPLandroid/icu/text/Edits$Iterator;->hasChange()Z
+HSPLandroid/icu/text/Edits$Iterator;->newLength()I
+HSPLandroid/icu/text/Edits$Iterator;->next()Z
+HSPLandroid/icu/text/Edits$Iterator;->next(Z)Z
+HSPLandroid/icu/text/Edits$Iterator;->noNext()Z
+HSPLandroid/icu/text/Edits$Iterator;->replacementIndex()I
+HSPLandroid/icu/text/Edits$Iterator;->sourceIndex()I
+HSPLandroid/icu/text/Edits$Iterator;->updateNextIndexes()V
 HSPLandroid/icu/text/Edits;-><init>()V
 HSPLandroid/icu/text/Edits;->addReplace(II)V
 HSPLandroid/icu/text/Edits;->addUnchanged(I)V
 HSPLandroid/icu/text/Edits;->append(I)V
+HSPLandroid/icu/text/Edits;->getCoarseIterator()Landroid/icu/text/Edits$Iterator;
 HSPLandroid/icu/text/Edits;->hasChanges()Z
 HSPLandroid/icu/text/Edits;->lastUnit()I
+HSPLandroid/icu/text/Edits;->lengthDelta()I
 HSPLandroid/icu/text/Edits;->reset()V
 HSPLandroid/icu/text/Edits;->setLastUnit(I)V
 HSPLandroid/icu/text/IDNA;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer;
+HSPLandroid/icu/text/ListFormatter$FormattedListBuilder;->appendTo(Ljava/lang/Appendable;)V
+HSPLandroid/icu/text/ListFormatter$Style;-><clinit>()V
+HSPLandroid/icu/text/ListFormatter$Style;-><init>(Ljava/lang/String;ILjava/lang/String;)V
+HSPLandroid/icu/text/ListFormatter$Style;->getName()Ljava/lang/String;
+HSPLandroid/icu/text/ListFormatter;-><clinit>()V
+HSPLandroid/icu/text/ListFormatter;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/ListFormatter$Style;)Landroid/icu/text/ListFormatter;
+HSPLandroid/icu/text/MeasureFormat$FormatWidth;-><clinit>()V
+HSPLandroid/icu/text/MeasureFormat$FormatWidth;-><init>(Ljava/lang/String;ILandroid/icu/text/ListFormatter$Style;Landroid/icu/number/NumberFormatter$UnitWidth;Landroid/icu/number/NumberFormatter$UnitWidth;)V
+HSPLandroid/icu/text/MeasureFormat$FormatWidth;->getListFormatterStyle()Landroid/icu/text/ListFormatter$Style;
+HSPLandroid/icu/text/MeasureFormat$NumberFormatterCacheEntry;-><init>()V
+HSPLandroid/icu/text/MeasureFormat;-><clinit>()V
+HSPLandroid/icu/text/MeasureFormat;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;Landroid/icu/text/NumberFormat;Landroid/icu/text/PluralRules;Landroid/icu/text/MeasureFormat$NumericFormatters;)V
+HSPLandroid/icu/text/MeasureFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
+HSPLandroid/icu/text/MeasureFormat;->formatMeasure(Landroid/icu/util/Measure;)Landroid/icu/number/FormattedNumber;
+HSPLandroid/icu/text/MeasureFormat;->formatMeasureInteger(Landroid/icu/util/Measure;)Landroid/icu/number/FormattedNumber;
+HSPLandroid/icu/text/MeasureFormat;->formatMeasures(Ljava/lang/StringBuilder;Ljava/text/FieldPosition;[Landroid/icu/util/Measure;)Ljava/lang/StringBuilder;
+HSPLandroid/icu/text/MeasureFormat;->formatMeasures([Landroid/icu/util/Measure;)Ljava/lang/String;
+HSPLandroid/icu/text/MeasureFormat;->formatMeasuresInternal(Ljava/lang/Appendable;Ljava/text/FieldPosition;[Landroid/icu/util/Measure;)V
+HSPLandroid/icu/text/MeasureFormat;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;)Landroid/icu/text/MeasureFormat;
+HSPLandroid/icu/text/MeasureFormat;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;Landroid/icu/text/NumberFormat;)Landroid/icu/text/MeasureFormat;
+HSPLandroid/icu/text/MeasureFormat;->getInstance(Ljava/util/Locale;Landroid/icu/text/MeasureFormat$FormatWidth;)Landroid/icu/text/MeasureFormat;
+HSPLandroid/icu/text/MeasureFormat;->getLocale()Landroid/icu/util/ULocale;
+HSPLandroid/icu/text/MeasureFormat;->getNumberFormatter()Landroid/icu/number/LocalizedNumberFormatter;
+HSPLandroid/icu/text/MeasureFormat;->getUnitFormatterFromCache(ILandroid/icu/util/MeasureUnit;Landroid/icu/util/MeasureUnit;)Landroid/icu/number/LocalizedNumberFormatter;
 HSPLandroid/icu/text/Normalizer$ModeImpl;-><init>(Landroid/icu/text/Normalizer2;)V
 HSPLandroid/icu/text/Normalizer$ModeImpl;-><init>(Landroid/icu/text/Normalizer2;Landroid/icu/text/Normalizer$1;)V
 HSPLandroid/icu/text/Normalizer$ModeImpl;->access$300(Landroid/icu/text/Normalizer$ModeImpl;)Landroid/icu/text/Normalizer2;
+HSPLandroid/icu/text/Normalizer$NFKCMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
+HSPLandroid/icu/text/Normalizer$NFKCModeImpl;-><clinit>()V
+HSPLandroid/icu/text/Normalizer$NFKCModeImpl;->access$1000()Landroid/icu/text/Normalizer$ModeImpl;
 HSPLandroid/icu/text/Normalizer$NFKDMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
 HSPLandroid/icu/text/Normalizer$NFKDModeImpl;-><clinit>()V
 HSPLandroid/icu/text/Normalizer$NFKDModeImpl;->access$600()Landroid/icu/text/Normalizer$ModeImpl;
 HSPLandroid/icu/text/Normalizer2;-><init>()V
+HSPLandroid/icu/text/Normalizer2;->getNFKCInstance()Landroid/icu/text/Normalizer2;
 HSPLandroid/icu/text/Normalizer2;->getNFKDInstance()Landroid/icu/text/Normalizer2;
 HSPLandroid/icu/text/Normalizer2;->normalize(Ljava/lang/CharSequence;)Ljava/lang/String;
 HSPLandroid/icu/text/Normalizer;->normalize(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;)Ljava/lang/String;
 HSPLandroid/icu/text/Normalizer;->normalize(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;I)Ljava/lang/String;
 HSPLandroid/icu/text/NumberFormat$Field;-><clinit>()V
 HSPLandroid/icu/text/NumberFormat$Field;-><init>(Ljava/lang/String;)V
+HSPLandroid/icu/text/NumberFormat$NumberFormatShim;-><init>()V
 HSPLandroid/icu/text/NumberFormat;-><init>()V
 HSPLandroid/icu/text/NumberFormat;->clone()Ljava/lang/Object;
 HSPLandroid/icu/text/NumberFormat;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
@@ -7552,6 +13792,8 @@
 HSPLandroid/icu/text/NumberFormatServiceShim$NFService$1RBNumberFormatFactory;->handleCreate(Landroid/icu/util/ULocale;ILandroid/icu/impl/ICUService;)Ljava/lang/Object;
 HSPLandroid/icu/text/NumberFormatServiceShim$NFService;-><init>()V
 HSPLandroid/icu/text/NumberFormatServiceShim;-><clinit>()V
+HSPLandroid/icu/text/NumberFormatServiceShim;-><init>()V
+HSPLandroid/icu/text/NumberFormatServiceShim;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
 HSPLandroid/icu/text/NumberingSystem$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/icu/text/NumberingSystem$1;->createInstance(Ljava/lang/String;Landroid/icu/text/NumberingSystem$LocaleLookupData;)Landroid/icu/text/NumberingSystem;
 HSPLandroid/icu/text/NumberingSystem$LocaleLookupData;-><init>(Landroid/icu/util/ULocale;Ljava/lang/String;)V
@@ -7629,6 +13871,65 @@
 HSPLandroid/icu/text/PluralRules;->parseRule(Ljava/lang/String;)Landroid/icu/text/PluralRules$Rule;
 HSPLandroid/icu/text/PluralRules;->parseRuleChain(Ljava/lang/String;)Landroid/icu/text/PluralRules$RuleList;
 HSPLandroid/icu/text/PluralRules;->select(D)Ljava/lang/String;
+HSPLandroid/icu/text/PluralRules;->select(Landroid/icu/text/PluralRules$IFixedDecimal;)Ljava/lang/String;
+HSPLandroid/icu/text/RawCollationKey;-><init>(I)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$1;-><clinit>()V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;-><clinit>()V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;-><init>(Ljava/lang/String;I)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;->values()[Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Cache$1;-><init>(Landroid/icu/text/RelativeDateTimeFormatter$Cache;)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Cache$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Cache$1;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Cache;-><init>()V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Cache;-><init>(Landroid/icu/text/RelativeDateTimeFormatter$1;)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Cache;->get(Landroid/icu/util/ULocale;)Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Direction;-><clinit>()V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Direction;-><init>(Ljava/lang/String;I)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Direction;->values()[Landroid/icu/text/RelativeDateTimeFormatter$Direction;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Field;-><clinit>()V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Field;-><init>(Ljava/lang/String;)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Loader;-><init>(Landroid/icu/util/ULocale;)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Loader;->getDateTimePattern(Landroid/icu/impl/ICUResourceBundle;)Ljava/lang/String;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Loader;->load()Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;-><clinit>()V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;-><init>(Ljava/lang/String;ILandroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->access$200(Ljava/lang/CharSequence;)Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->orNullFromString(Ljava/lang/CharSequence;)Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;-><init>()V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTableRelative(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTableRelativeTime(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTimeDetail(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTimeUnit(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->handleAlias(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->handlePlainDirection(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->styleFromAlias(Landroid/icu/impl/UResource$Value;)Landroid/icu/text/RelativeDateTimeFormatter$Style;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->styleFromKey(Landroid/icu/impl/UResource$Key;)Landroid/icu/text/RelativeDateTimeFormatter$Style;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->styleSuffixLength(Landroid/icu/text/RelativeDateTimeFormatter$Style;)I
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap;Ljava/lang/String;)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeUnit;-><clinit>()V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeUnit;-><init>(Ljava/lang/String;I)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeUnit;->values()[Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeUnit;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;-><clinit>()V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;-><init>(Ljava/lang/String;I)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;->values()[Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Style;-><clinit>()V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Style;-><init>(Ljava/lang/String;I)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter$Style;->values()[Landroid/icu/text/RelativeDateTimeFormatter$Style;
+HSPLandroid/icu/text/RelativeDateTimeFormatter;-><clinit>()V
+HSPLandroid/icu/text/RelativeDateTimeFormatter;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap;Ljava/lang/String;Landroid/icu/text/PluralRules;Landroid/icu/text/NumberFormat;Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/DisplayContext;Landroid/icu/text/BreakIterator;Landroid/icu/util/ULocale;)V
+HSPLandroid/icu/text/RelativeDateTimeFormatter;->access$100(Landroid/icu/impl/UResource$Key;)Landroid/icu/text/RelativeDateTimeFormatter$Direction;
+HSPLandroid/icu/text/RelativeDateTimeFormatter;->access$300()[Landroid/icu/text/RelativeDateTimeFormatter$Style;
+HSPLandroid/icu/text/RelativeDateTimeFormatter;->adjustForContext(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/icu/text/RelativeDateTimeFormatter;->format(DLandroid/icu/text/RelativeDateTimeFormatter$Direction;Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;)Ljava/lang/String;
+HSPLandroid/icu/text/RelativeDateTimeFormatter;->format(Landroid/icu/text/RelativeDateTimeFormatter$Direction;Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;)Ljava/lang/String;
+HSPLandroid/icu/text/RelativeDateTimeFormatter;->formatAbsoluteImpl(Landroid/icu/text/RelativeDateTimeFormatter$Direction;Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;)Ljava/lang/String;
+HSPLandroid/icu/text/RelativeDateTimeFormatter;->formatImpl(DLandroid/icu/text/RelativeDateTimeFormatter$Direction;Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;)Landroid/icu/impl/FormattedStringBuilder;
+HSPLandroid/icu/text/RelativeDateTimeFormatter;->getAbsoluteUnitString(Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;Landroid/icu/text/RelativeDateTimeFormatter$Direction;)Ljava/lang/String;
+HSPLandroid/icu/text/RelativeDateTimeFormatter;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/NumberFormat;Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/DisplayContext;)Landroid/icu/text/RelativeDateTimeFormatter;
+HSPLandroid/icu/text/RelativeDateTimeFormatter;->getRelativeUnitPattern(Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;ILandroid/icu/impl/StandardPlural;)Ljava/lang/String;
+HSPLandroid/icu/text/RelativeDateTimeFormatter;->getRelativeUnitPluralPattern(Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;ILandroid/icu/impl/StandardPlural;)Ljava/lang/String;
+HSPLandroid/icu/text/RelativeDateTimeFormatter;->keyToDirection(Landroid/icu/impl/UResource$Key;)Landroid/icu/text/RelativeDateTimeFormatter$Direction;
 HSPLandroid/icu/text/ReplaceableString;-><init>(Ljava/lang/String;)V
 HSPLandroid/icu/text/ReplaceableString;->charAt(I)C
 HSPLandroid/icu/text/ReplaceableString;->getChars(II[CI)V
@@ -7636,35 +13937,53 @@
 HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator;)V
 HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator;Landroid/icu/text/RuleBasedBreakIterator$BreakCache;)V
 HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->addFollowing(IIZ)V
+HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->addPreceding(IIZ)Z
 HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->current()I
+HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->following(I)V
 HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->modChunkSize(I)I
 HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->next()V
 HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateFollowing()Z
+HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateNear(I)Z
+HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populatePreceding()Z
+HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->preceding(I)V
+HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->previous()V
 HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->reset()V
 HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->reset(II)V
 HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->seek(I)Z
 HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator;)V
 HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator;Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;)V
 HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->following(I)Z
+HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->preceding(I)Z
 HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->reset()V
 HSPLandroid/icu/text/RuleBasedBreakIterator$LookAheadResults;-><init>()V
 HSPLandroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->reset()V
 HSPLandroid/icu/text/RuleBasedBreakIterator;-><init>()V
+HSPLandroid/icu/text/RuleBasedBreakIterator;->CISetIndex32(Ljava/text/CharacterIterator;I)I
+HSPLandroid/icu/text/RuleBasedBreakIterator;->access$000(Landroid/icu/text/RuleBasedBreakIterator;)Ljava/text/CharacterIterator;
 HSPLandroid/icu/text/RuleBasedBreakIterator;->access$202(Landroid/icu/text/RuleBasedBreakIterator;Z)Z
 HSPLandroid/icu/text/RuleBasedBreakIterator;->access$302(Landroid/icu/text/RuleBasedBreakIterator;I)I
 HSPLandroid/icu/text/RuleBasedBreakIterator;->access$400(Landroid/icu/text/RuleBasedBreakIterator;)I
 HSPLandroid/icu/text/RuleBasedBreakIterator;->access$402(Landroid/icu/text/RuleBasedBreakIterator;I)I
+HSPLandroid/icu/text/RuleBasedBreakIterator;->access$500(Landroid/icu/text/RuleBasedBreakIterator;I)I
 HSPLandroid/icu/text/RuleBasedBreakIterator;->access$600(Landroid/icu/text/RuleBasedBreakIterator;)I
 HSPLandroid/icu/text/RuleBasedBreakIterator;->access$700(Landroid/icu/text/RuleBasedBreakIterator;)Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;
 HSPLandroid/icu/text/RuleBasedBreakIterator;->access$800(Landroid/icu/text/RuleBasedBreakIterator;)I
+HSPLandroid/icu/text/RuleBasedBreakIterator;->checkOffset(ILjava/text/CharacterIterator;)V
 HSPLandroid/icu/text/RuleBasedBreakIterator;->clone()Ljava/lang/Object;
+HSPLandroid/icu/text/RuleBasedBreakIterator;->current()I
 HSPLandroid/icu/text/RuleBasedBreakIterator;->first()I
+HSPLandroid/icu/text/RuleBasedBreakIterator;->following(I)I
 HSPLandroid/icu/text/RuleBasedBreakIterator;->getInstanceFromCompiledRules(Ljava/nio/ByteBuffer;)Landroid/icu/text/RuleBasedBreakIterator;
+HSPLandroid/icu/text/RuleBasedBreakIterator;->getText()Ljava/text/CharacterIterator;
 HSPLandroid/icu/text/RuleBasedBreakIterator;->handleNext()I
+HSPLandroid/icu/text/RuleBasedBreakIterator;->handleSafePrevious(I)I
+HSPLandroid/icu/text/RuleBasedBreakIterator;->isBoundary(I)Z
 HSPLandroid/icu/text/RuleBasedBreakIterator;->next()I
+HSPLandroid/icu/text/RuleBasedBreakIterator;->preceding(I)I
 HSPLandroid/icu/text/RuleBasedBreakIterator;->setText(Ljava/text/CharacterIterator;)V
 HSPLandroid/icu/text/RuleBasedCollator$CollationBuffer;-><init>(Landroid/icu/impl/coll/CollationData;)V
 HSPLandroid/icu/text/RuleBasedCollator$CollationBuffer;-><init>(Landroid/icu/impl/coll/CollationData;Landroid/icu/text/RuleBasedCollator$1;)V
+HSPLandroid/icu/text/RuleBasedCollator$CollationKeyByteSink;-><init>(Landroid/icu/text/RawCollationKey;)V
 HSPLandroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;-><init>()V
 HSPLandroid/icu/text/RuleBasedCollator$NFDIterator;-><init>()V
 HSPLandroid/icu/text/RuleBasedCollator$UTF16NFDIterator;-><init>()V
@@ -7676,32 +13995,43 @@
 HSPLandroid/icu/text/RuleBasedCollator;->compare(Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/icu/text/RuleBasedCollator;->doCompare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I
 HSPLandroid/icu/text/RuleBasedCollator;->getCollationBuffer()Landroid/icu/text/RuleBasedCollator$CollationBuffer;
+HSPLandroid/icu/text/RuleBasedCollator;->getCollationKey(Ljava/lang/String;)Landroid/icu/text/CollationKey;
+HSPLandroid/icu/text/RuleBasedCollator;->getCollationKey(Ljava/lang/String;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)Landroid/icu/text/CollationKey;
 HSPLandroid/icu/text/RuleBasedCollator;->getOwnedSettings()Landroid/icu/impl/coll/CollationSettings;
+HSPLandroid/icu/text/RuleBasedCollator;->getRawCollationKey(Ljava/lang/CharSequence;Landroid/icu/text/RawCollationKey;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)Landroid/icu/text/RawCollationKey;
 HSPLandroid/icu/text/RuleBasedCollator;->getStrength()I
 HSPLandroid/icu/text/RuleBasedCollator;->isFrozen()Z
 HSPLandroid/icu/text/RuleBasedCollator;->releaseCollationBuffer(Landroid/icu/text/RuleBasedCollator$CollationBuffer;)V
 HSPLandroid/icu/text/RuleBasedCollator;->setDecomposition(I)V
 HSPLandroid/icu/text/RuleBasedCollator;->setFastLatinOptions(Landroid/icu/impl/coll/CollationSettings;)V
 HSPLandroid/icu/text/RuleBasedCollator;->setStrength(I)V
+HSPLandroid/icu/text/RuleBasedCollator;->simpleKeyLengthEstimate(Ljava/lang/CharSequence;)I
+HSPLandroid/icu/text/RuleBasedCollator;->writeSortKey(Ljava/lang/CharSequence;Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)V
 HSPLandroid/icu/text/SimpleDateFormat$PatternItem;-><init>(CI)V
 HSPLandroid/icu/text/SimpleDateFormat;-><clinit>()V
 HSPLandroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DateFormatSymbols;Landroid/icu/util/Calendar;Landroid/icu/text/NumberFormat;Landroid/icu/util/ULocale;ZLjava/lang/String;)V
 HSPLandroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/text/SimpleDateFormat;->access$000(CI)Z
+HSPLandroid/icu/text/SimpleDateFormat;->applyPattern(Ljava/lang/String;)V
 HSPLandroid/icu/text/SimpleDateFormat;->fastZeroPaddingNumber(Ljava/lang/StringBuffer;III)V
 HSPLandroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Landroid/icu/text/DisplayContext;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;
+HSPLandroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
 HSPLandroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer;
 HSPLandroid/icu/text/SimpleDateFormat;->getIndexFromChar(C)I
 HSPLandroid/icu/text/SimpleDateFormat;->getInstance(Landroid/icu/util/Calendar$FormatConfiguration;)Landroid/icu/text/SimpleDateFormat;
+HSPLandroid/icu/text/SimpleDateFormat;->getLevelFromChar(C)I
 HSPLandroid/icu/text/SimpleDateFormat;->getLocale()Landroid/icu/util/ULocale;
 HSPLandroid/icu/text/SimpleDateFormat;->getNumberFormat(C)Landroid/icu/text/NumberFormat;
 HSPLandroid/icu/text/SimpleDateFormat;->getPatternItems()[Ljava/lang/Object;
 HSPLandroid/icu/text/SimpleDateFormat;->initLocalZeroPaddingNumberFormat()V
 HSPLandroid/icu/text/SimpleDateFormat;->initialize()V
+HSPLandroid/icu/text/SimpleDateFormat;->isFieldUnitIgnored(Ljava/lang/String;I)Z
 HSPLandroid/icu/text/SimpleDateFormat;->isNumeric(CI)Z
 HSPLandroid/icu/text/SimpleDateFormat;->isSyntaxChar(C)Z
 HSPLandroid/icu/text/SimpleDateFormat;->parsePattern()V
+HSPLandroid/icu/text/SimpleDateFormat;->safeAppend([Ljava/lang/String;ILjava/lang/StringBuffer;)V
 HSPLandroid/icu/text/SimpleDateFormat;->safeAppendWithMonthPattern([Ljava/lang/String;ILjava/lang/StringBuffer;Ljava/lang/String;)V
+HSPLandroid/icu/text/SimpleDateFormat;->setContext(Landroid/icu/text/DisplayContext;)V
 HSPLandroid/icu/text/SimpleDateFormat;->subFormat(Ljava/lang/StringBuffer;CIIILandroid/icu/text/DisplayContext;Ljava/text/FieldPosition;Landroid/icu/util/Calendar;)V
 HSPLandroid/icu/text/SimpleDateFormat;->toPattern()Ljava/lang/String;
 HSPLandroid/icu/text/SimpleDateFormat;->zeroPaddingNumber(Landroid/icu/text/NumberFormat;Ljava/lang/StringBuffer;III)V
@@ -7809,6 +14139,8 @@
 HSPLandroid/icu/util/AnnualTimeZoneRule;->getRule()Landroid/icu/util/DateTimeRule;
 HSPLandroid/icu/util/AnnualTimeZoneRule;->getStartInYear(III)Ljava/util/Date;
 HSPLandroid/icu/util/BasicTimeZone;-><init>(Ljava/lang/String;)V
+HSPLandroid/icu/util/ByteArrayWrapper;-><init>()V
+HSPLandroid/icu/util/ByteArrayWrapper;->releaseBytes()[B
 HSPLandroid/icu/util/BytesTrie$Result;-><clinit>()V
 HSPLandroid/icu/util/BytesTrie$Result;-><init>(Ljava/lang/String;I)V
 HSPLandroid/icu/util/BytesTrie$Result;->hasNext()Z
@@ -7880,6 +14212,8 @@
 HSPLandroid/icu/util/Calendar;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar;
 HSPLandroid/icu/util/Calendar;->getInstanceInternal(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar;
 HSPLandroid/icu/util/Calendar;->getKeywordValuesForLocale(Ljava/lang/String;Landroid/icu/util/ULocale;Z)[Ljava/lang/String;
+HSPLandroid/icu/util/Calendar;->getLeastMaximum(I)I
+HSPLandroid/icu/util/Calendar;->getLimit(II)I
 HSPLandroid/icu/util/Calendar;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale;
 HSPLandroid/icu/util/Calendar;->getMinimalDaysInFirstWeek()I
 HSPLandroid/icu/util/Calendar;->getPatternData(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/Calendar$PatternData;
@@ -7900,12 +14234,26 @@
 HSPLandroid/icu/util/Calendar;->setFirstDayOfWeek(I)V
 HSPLandroid/icu/util/Calendar;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
 HSPLandroid/icu/util/Calendar;->setMinimalDaysInFirstWeek(I)V
+HSPLandroid/icu/util/Calendar;->setTime(Ljava/util/Date;)V
 HSPLandroid/icu/util/Calendar;->setTimeInMillis(J)V
 HSPLandroid/icu/util/Calendar;->setTimeZone(Landroid/icu/util/TimeZone;)V
 HSPLandroid/icu/util/Calendar;->setWeekData(Landroid/icu/util/Calendar$WeekData;)Landroid/icu/util/Calendar;
 HSPLandroid/icu/util/Calendar;->setWeekData(Ljava/lang/String;)V
 HSPLandroid/icu/util/Calendar;->weekNumber(II)I
 HSPLandroid/icu/util/Calendar;->weekNumber(III)I
+HSPLandroid/icu/util/CharsTrie;-><clinit>()V
+HSPLandroid/icu/util/CharsTrie;-><init>(Ljava/lang/CharSequence;I)V
+HSPLandroid/icu/util/CharsTrie;->branchNext(III)Landroid/icu/util/BytesTrie$Result;
+HSPLandroid/icu/util/CharsTrie;->first(I)Landroid/icu/util/BytesTrie$Result;
+HSPLandroid/icu/util/CharsTrie;->firstForCodePoint(I)Landroid/icu/util/BytesTrie$Result;
+HSPLandroid/icu/util/CharsTrie;->getValue()I
+HSPLandroid/icu/util/CharsTrie;->jumpByDelta(Ljava/lang/CharSequence;I)I
+HSPLandroid/icu/util/CharsTrie;->next(I)Landroid/icu/util/BytesTrie$Result;
+HSPLandroid/icu/util/CharsTrie;->nextImpl(II)Landroid/icu/util/BytesTrie$Result;
+HSPLandroid/icu/util/CharsTrie;->readValue(Ljava/lang/CharSequence;II)I
+HSPLandroid/icu/util/CharsTrie;->skipDelta(Ljava/lang/CharSequence;I)I
+HSPLandroid/icu/util/CharsTrie;->skipValue(II)I
+HSPLandroid/icu/util/CharsTrie;->skipValue(Ljava/lang/CharSequence;I)I
 HSPLandroid/icu/util/CodePointMap$Range;-><init>()V
 HSPLandroid/icu/util/CodePointMap$Range;->access$000(Landroid/icu/util/CodePointMap$Range;)I
 HSPLandroid/icu/util/CodePointMap$Range;->access$100(Landroid/icu/util/CodePointMap$Range;)I
@@ -7945,16 +14293,23 @@
 HSPLandroid/icu/util/CodePointTrie;->fromBinary(Landroid/icu/util/CodePointTrie$Type;Landroid/icu/util/CodePointTrie$ValueWidth;Ljava/nio/ByteBuffer;)Landroid/icu/util/CodePointTrie;
 HSPLandroid/icu/util/CodePointTrie;->getRange(ILandroid/icu/util/CodePointMap$ValueFilter;Landroid/icu/util/CodePointMap$Range;)Z
 HSPLandroid/icu/util/CodePointTrie;->maybeFilterValue(IIILandroid/icu/util/CodePointMap$ValueFilter;)I
+HSPLandroid/icu/util/Currency$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/icu/util/Currency$1;->createInstance(Ljava/lang/String;Ljava/lang/Void;)Landroid/icu/util/Currency;
 HSPLandroid/icu/util/Currency;-><init>(Ljava/lang/String;)V
+HSPLandroid/icu/util/Currency;->access$000(Ljava/lang/String;)Landroid/icu/util/Currency;
 HSPLandroid/icu/util/Currency;->createCurrency(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency;
 HSPLandroid/icu/util/Currency;->getCurrencyCode()Ljava/lang/String;
+HSPLandroid/icu/util/Currency;->getDefaultFractionDigits()I
+HSPLandroid/icu/util/Currency;->getDefaultFractionDigits(Landroid/icu/util/Currency$CurrencyUsage;)I
 HSPLandroid/icu/util/Currency;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency;
 HSPLandroid/icu/util/Currency;->getInstance(Ljava/lang/String;)Landroid/icu/util/Currency;
 HSPLandroid/icu/util/Currency;->getInstance(Ljava/util/Locale;)Landroid/icu/util/Currency;
 HSPLandroid/icu/util/Currency;->getName(Landroid/icu/util/ULocale;I[Z)Ljava/lang/String;
+HSPLandroid/icu/util/Currency;->getRoundingIncrement(Landroid/icu/util/Currency$CurrencyUsage;)D
 HSPLandroid/icu/util/Currency;->getSymbol(Landroid/icu/util/ULocale;)Ljava/lang/String;
 HSPLandroid/icu/util/Currency;->getSymbol(Ljava/util/Locale;)Ljava/lang/String;
 HSPLandroid/icu/util/Currency;->isAlpha3Code(Ljava/lang/String;)Z
+HSPLandroid/icu/util/Currency;->loadCurrency(Ljava/lang/String;)Landroid/icu/util/Currency;
 HSPLandroid/icu/util/DateTimeRule;-><clinit>()V
 HSPLandroid/icu/util/DateTimeRule;-><init>(IIIZII)V
 HSPLandroid/icu/util/DateTimeRule;->getDateRuleType()I
@@ -7972,10 +14327,16 @@
 HSPLandroid/icu/util/GregorianCalendar;->isEquivalentTo(Landroid/icu/util/Calendar;)Z
 HSPLandroid/icu/util/GregorianCalendar;->isLeapYear(I)Z
 HSPLandroid/icu/util/InitialTimeZoneRule;-><init>(Ljava/lang/String;II)V
+HSPLandroid/icu/util/Measure;-><init>(Ljava/lang/Number;Landroid/icu/util/MeasureUnit;)V
+HSPLandroid/icu/util/Measure;->getNumber()Ljava/lang/Number;
+HSPLandroid/icu/util/Measure;->getUnit()Landroid/icu/util/MeasureUnit;
 HSPLandroid/icu/util/MeasureUnit$2;->create(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/MeasureUnit;
 HSPLandroid/icu/util/MeasureUnit;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/icu/util/MeasureUnit;->addUnit(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/MeasureUnit$Factory;)Landroid/icu/util/MeasureUnit;
 HSPLandroid/icu/util/MeasureUnit;->equals(Ljava/lang/Object;)Z
+HSPLandroid/icu/util/MeasureUnit;->getSubtype()Ljava/lang/String;
+HSPLandroid/icu/util/MeasureUnit;->getType()Ljava/lang/String;
+HSPLandroid/icu/util/MeasureUnit;->hashCode()I
 HSPLandroid/icu/util/MeasureUnit;->internalGetInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/MeasureUnit;
 HSPLandroid/icu/util/Output;-><init>(Ljava/lang/Object;)V
 HSPLandroid/icu/util/STZInfo;-><init>()V
@@ -7983,12 +14344,16 @@
 HSPLandroid/icu/util/SimpleTimeZone;-><init>(ILjava/lang/String;IIIIIIIIIII)V
 HSPLandroid/icu/util/SimpleTimeZone;->clone()Ljava/lang/Object;
 HSPLandroid/icu/util/SimpleTimeZone;->cloneAsThawed()Landroid/icu/util/TimeZone;
+HSPLandroid/icu/util/SimpleTimeZone;->compareToRule(IIIIIIIIIIII)I
 HSPLandroid/icu/util/SimpleTimeZone;->construct(IIIIIIIIIIII)V
 HSPLandroid/icu/util/SimpleTimeZone;->decodeEndRule()V
 HSPLandroid/icu/util/SimpleTimeZone;->decodeRules()V
 HSPLandroid/icu/util/SimpleTimeZone;->decodeStartRule()V
 HSPLandroid/icu/util/SimpleTimeZone;->getDSTSavings()I
 HSPLandroid/icu/util/SimpleTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition;
+HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIII)I
+HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIIII)I
+HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIIIII)I
 HSPLandroid/icu/util/SimpleTimeZone;->getRawOffset()I
 HSPLandroid/icu/util/SimpleTimeZone;->getSTZInfo()Landroid/icu/util/STZInfo;
 HSPLandroid/icu/util/SimpleTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule;
@@ -8007,6 +14372,8 @@
 HSPLandroid/icu/util/TimeZone;->getFrozenICUTimeZone(Ljava/lang/String;Z)Landroid/icu/util/BasicTimeZone;
 HSPLandroid/icu/util/TimeZone;->getFrozenTimeZone(Ljava/lang/String;)Landroid/icu/util/TimeZone;
 HSPLandroid/icu/util/TimeZone;->getID()Ljava/lang/String;
+HSPLandroid/icu/util/TimeZone;->getOffset(J)I
+HSPLandroid/icu/util/TimeZone;->getOffset(JZ[I)V
 HSPLandroid/icu/util/TimeZone;->getTimeZone(Ljava/lang/String;IZ)Landroid/icu/util/TimeZone;
 HSPLandroid/icu/util/TimeZone;->hashCode()I
 HSPLandroid/icu/util/TimeZone;->setICUDefault(Landroid/icu/util/TimeZone;)V
@@ -8025,6 +14392,7 @@
 HSPLandroid/icu/util/ULocale$2;->createInstance(Ljava/util/Locale;Ljava/lang/Void;)Landroid/icu/util/ULocale;
 HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->getDefault(Landroid/icu/util/ULocale$Category;)Ljava/util/Locale;
 HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->hasLocaleCategories()Z
+HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->toLocale(Landroid/icu/util/ULocale;)Ljava/util/Locale;
 HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->toULocale(Ljava/util/Locale;)Landroid/icu/util/ULocale;
 HSPLandroid/icu/util/ULocale;-><init>(Ljava/lang/String;)V
 HSPLandroid/icu/util/ULocale;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
@@ -8038,6 +14406,7 @@
 HSPLandroid/icu/util/ULocale;->createTagString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/util/ULocale;->createTagString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/util/ULocale;->equals(Ljava/lang/Object;)Z
+HSPLandroid/icu/util/ULocale;->extensions()Landroid/icu/impl/locale/LocaleExtensions;
 HSPLandroid/icu/util/ULocale;->forLocale(Ljava/util/Locale;)Landroid/icu/util/ULocale;
 HSPLandroid/icu/util/ULocale;->getBaseName()Ljava/lang/String;
 HSPLandroid/icu/util/ULocale;->getBaseName(Ljava/lang/String;)Ljava/lang/String;
@@ -8060,6 +14429,9 @@
 HSPLandroid/icu/util/ULocale;->isRightToLeft()Z
 HSPLandroid/icu/util/ULocale;->lookupLikelySubtags(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/icu/util/ULocale;->parseTagString(Ljava/lang/String;[Ljava/lang/String;)I
+HSPLandroid/icu/util/ULocale;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/ULocale;
+HSPLandroid/icu/util/ULocale;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/icu/util/ULocale;->toLanguageTag()Ljava/lang/String;
 HSPLandroid/icu/util/ULocale;->toLocale()Ljava/util/Locale;
 HSPLandroid/icu/util/ULocale;->toString()Ljava/lang/String;
 HSPLandroid/icu/util/UResourceBundle;-><init>()V
@@ -8083,17 +14455,228 @@
 HSPLandroid/icu/util/VersionInfo;->compareTo(Landroid/icu/util/VersionInfo;)I
 HSPLandroid/icu/util/VersionInfo;->getInstance(IIII)Landroid/icu/util/VersionInfo;
 HSPLandroid/icu/util/VersionInfo;->getInt(IIII)I
+HSPLandroid/location/-$$Lambda$-z-Hjl12STdAybauR3BT-ftvWd0;-><clinit>()V
+HSPLandroid/location/-$$Lambda$-z-Hjl12STdAybauR3BT-ftvWd0;-><init>()V
+HSPLandroid/location/-$$Lambda$-z-Hjl12STdAybauR3BT-ftvWd0;->accept(Ljava/lang/Object;)V
+HSPLandroid/location/-$$Lambda$AbstractListenerManager$Registration$TnkXgyOd99JHl00GzK6Oay_sYms;-><init>(Landroid/location/AbstractListenerManager$Registration;Ljava/util/function/Consumer;)V
+HSPLandroid/location/-$$Lambda$AbstractListenerManager$Registration$TnkXgyOd99JHl00GzK6Oay_sYms;->run()V
+HSPLandroid/location/-$$Lambda$GpsStatus$RTSonBp9m0T0NWA3SCfYgWf1mTo;-><init>(Landroid/location/GpsStatus;)V
+HSPLandroid/location/-$$Lambda$GpsStatus$RTSonBp9m0T0NWA3SCfYgWf1mTo;->iterator()Ljava/util/Iterator;
+HSPLandroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$4EPi22o4xuVnpNhFHnDvebH4TG8;-><init>(Landroid/location/GnssStatus;)V
+HSPLandroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$4EPi22o4xuVnpNhFHnDvebH4TG8;->accept(Ljava/lang/Object;)V
+HSPLandroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$7Fi5XkeF81eL_OKPS2GJMvyc3-8;-><init>(I)V
+HSPLandroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$7Fi5XkeF81eL_OKPS2GJMvyc3-8;->accept(Ljava/lang/Object;)V
+HSPLandroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$gYcH61KCtV_OcJJszI1TfvnrJHY;-><init>(Ljava/lang/String;J)V
+HSPLandroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$gYcH61KCtV_OcJJszI1TfvnrJHY;->accept(Ljava/lang/Object;)V
+HSPLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$JzcdERl3Ha8sYr9NxFhb3gNOoCM;-><init>(Landroid/location/LocationManager$LocationListenerTransport;Ljava/util/concurrent/Executor;Ljava/lang/String;)V
+HSPLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$JzcdERl3Ha8sYr9NxFhb3gNOoCM;->run()V
+HSPLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$OaIkiu4R0h4pgFbCDDlNkbmPaps;-><init>(Landroid/location/LocationManager$LocationListenerTransport;Ljava/util/concurrent/Executor;Landroid/location/Location;)V
+HSPLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$OaIkiu4R0h4pgFbCDDlNkbmPaps;->run()V
+HSPLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$vDJFuk-DvyNgQEXUO2Jkf2ZFeE8;-><init>(Landroid/location/LocationManager$LocationListenerTransport;Ljava/util/concurrent/Executor;Ljava/lang/String;)V
+HSPLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$vDJFuk-DvyNgQEXUO2Jkf2ZFeE8;->run()V
+HSPLandroid/location/-$$Lambda$UmbtQF279SH5h72Ftfcj_s96jsY;-><clinit>()V
+HSPLandroid/location/-$$Lambda$UmbtQF279SH5h72Ftfcj_s96jsY;-><init>()V
+HSPLandroid/location/-$$Lambda$UmbtQF279SH5h72Ftfcj_s96jsY;->accept(Ljava/lang/Object;)V
+HSPLandroid/location/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;->execute(Ljava/lang/Runnable;)V
+HSPLandroid/location/AbstractListenerManager$Registration;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Object;)V
+HSPLandroid/location/AbstractListenerManager$Registration;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Object;Landroid/location/AbstractListenerManager$1;)V
+HSPLandroid/location/AbstractListenerManager$Registration;->access$100(Landroid/location/AbstractListenerManager$Registration;)V
+HSPLandroid/location/AbstractListenerManager$Registration;->access$200(Landroid/location/AbstractListenerManager$Registration;Ljava/util/function/Consumer;)V
+HSPLandroid/location/AbstractListenerManager$Registration;->execute(Ljava/util/function/Consumer;)V
+HSPLandroid/location/AbstractListenerManager$Registration;->lambda$execute$0$AbstractListenerManager$Registration(Ljava/util/function/Consumer;)V
+HSPLandroid/location/AbstractListenerManager$Registration;->unregister()V
 HSPLandroid/location/AbstractListenerManager;-><init>()V
+HSPLandroid/location/AbstractListenerManager;->addInternal(Ljava/lang/Object;Landroid/location/AbstractListenerManager$Registration;)Z
+HSPLandroid/location/AbstractListenerManager;->addInternal(Ljava/lang/Object;Ljava/util/concurrent/Executor;)Z
+HSPLandroid/location/AbstractListenerManager;->execute(Ljava/util/function/Consumer;)V
+HSPLandroid/location/AbstractListenerManager;->removeListener(Ljava/lang/Object;)V
+HSPLandroid/location/Address$1;->createFromParcel(Landroid/os/Parcel;)Landroid/location/Address;
+HSPLandroid/location/Address$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/location/Address;-><init>(Ljava/util/Locale;)V
+HSPLandroid/location/Address;->access$000(Landroid/location/Address;)Ljava/util/HashMap;
+HSPLandroid/location/Address;->access$002(Landroid/location/Address;Ljava/util/HashMap;)Ljava/util/HashMap;
+HSPLandroid/location/Address;->access$100(Landroid/location/Address;)I
+HSPLandroid/location/Address;->access$1002(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Address;->access$102(Landroid/location/Address;I)I
+HSPLandroid/location/Address;->access$1102(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Address;->access$1202(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Address;->access$1300(Landroid/location/Address;)Z
+HSPLandroid/location/Address;->access$1302(Landroid/location/Address;Z)Z
+HSPLandroid/location/Address;->access$1402(Landroid/location/Address;D)D
+HSPLandroid/location/Address;->access$1500(Landroid/location/Address;)Z
+HSPLandroid/location/Address;->access$1502(Landroid/location/Address;Z)Z
+HSPLandroid/location/Address;->access$1602(Landroid/location/Address;D)D
+HSPLandroid/location/Address;->access$1702(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Address;->access$1802(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Address;->access$1902(Landroid/location/Address;Landroid/os/Bundle;)Landroid/os/Bundle;
+HSPLandroid/location/Address;->access$202(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Address;->access$302(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Address;->access$402(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Address;->access$502(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Address;->access$602(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Address;->access$702(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Address;->access$802(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Address;->access$902(Landroid/location/Address;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/Country$1;->createFromParcel(Landroid/os/Parcel;)Landroid/location/Country;
+HSPLandroid/location/Country$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/location/Country;-><init>(Landroid/location/Country;)V
+HPLandroid/location/Country;-><init>(Ljava/lang/String;I)V
+HSPLandroid/location/Country;-><init>(Ljava/lang/String;IJ)V
+HSPLandroid/location/Country;-><init>(Ljava/lang/String;IJLandroid/location/Country$1;)V
+HPLandroid/location/Country;->equals(Ljava/lang/Object;)Z
 HSPLandroid/location/Country;->getCountryIso()Ljava/lang/String;
+HSPLandroid/location/Country;->getSource()I
+HPLandroid/location/Country;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/location/CountryDetector$ListenerTransport;-><init>(Landroid/location/CountryListener;Landroid/os/Looper;)V
+HSPLandroid/location/CountryDetector;-><init>(Landroid/location/ICountryDetector;)V
+HSPLandroid/location/CountryDetector;->addCountryListener(Landroid/location/CountryListener;Landroid/os/Looper;)V
+HSPLandroid/location/CountryDetector;->detectCountry()Landroid/location/Country;
+HSPLandroid/location/Geocoder;-><init>(Landroid/content/Context;Ljava/util/Locale;)V
+HSPLandroid/location/Geocoder;->isPresent()Z
+HSPLandroid/location/GeocoderParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/location/GeocoderParams;
+HSPLandroid/location/GeocoderParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/location/GeocoderParams;-><init>()V
+HSPLandroid/location/GeocoderParams;-><init>(Landroid/content/Context;Ljava/util/Locale;)V
+HSPLandroid/location/GeocoderParams;-><init>(Landroid/location/GeocoderParams$1;)V
+HSPLandroid/location/GeocoderParams;->access$102(Landroid/location/GeocoderParams;Ljava/util/Locale;)Ljava/util/Locale;
+HSPLandroid/location/GeocoderParams;->access$202(Landroid/location/GeocoderParams;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/location/GeocoderParams;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/location/GnssClock;-><init>()V
+HSPLandroid/location/GnssClock;->initialize()V
+HSPLandroid/location/GnssClock;->resetBiasNanos()V
+HSPLandroid/location/GnssClock;->resetBiasUncertaintyNanos()V
+HSPLandroid/location/GnssClock;->resetDriftNanosPerSecond()V
+HSPLandroid/location/GnssClock;->resetDriftUncertaintyNanosPerSecond()V
+HSPLandroid/location/GnssClock;->resetElapsedRealtimeNanos()V
+HSPLandroid/location/GnssClock;->resetElapsedRealtimeUncertaintyNanos()V
+HSPLandroid/location/GnssClock;->resetFlag(I)V
+HSPLandroid/location/GnssClock;->resetFullBiasNanos()V
+HSPLandroid/location/GnssClock;->resetLeapSecond()V
+HSPLandroid/location/GnssClock;->resetTimeUncertaintyNanos()V
+HSPLandroid/location/GnssClock;->setHardwareClockDiscontinuityCount(I)V
+HSPLandroid/location/GnssClock;->setTimeNanos(J)V
+HSPLandroid/location/GnssMeasurement;-><init>()V
+HSPLandroid/location/GnssMeasurement;->initialize()V
+HSPLandroid/location/GnssMeasurement;->resetAutomaticGainControlLevel()V
+HSPLandroid/location/GnssMeasurement;->resetBasebandCn0DbHz()V
+HSPLandroid/location/GnssMeasurement;->resetCarrierCycles()V
+HSPLandroid/location/GnssMeasurement;->resetCarrierFrequencyHz()V
+HSPLandroid/location/GnssMeasurement;->resetCarrierPhase()V
+HSPLandroid/location/GnssMeasurement;->resetCarrierPhaseUncertainty()V
+HSPLandroid/location/GnssMeasurement;->resetCodeType()V
+HSPLandroid/location/GnssMeasurement;->resetFlag(I)V
+HSPLandroid/location/GnssMeasurement;->resetSnrInDb()V
+HSPLandroid/location/GnssMeasurement;->setAccumulatedDeltaRangeMeters(D)V
+HSPLandroid/location/GnssMeasurement;->setAccumulatedDeltaRangeState(I)V
+HSPLandroid/location/GnssMeasurement;->setAccumulatedDeltaRangeUncertaintyMeters(D)V
+HSPLandroid/location/GnssMeasurement;->setCn0DbHz(D)V
+HSPLandroid/location/GnssMeasurement;->setMultipathIndicator(I)V
+HSPLandroid/location/GnssMeasurement;->setPseudorangeRateMetersPerSecond(D)V
+HSPLandroid/location/GnssMeasurement;->setPseudorangeRateUncertaintyMetersPerSecond(D)V
+HSPLandroid/location/GnssMeasurement;->setReceivedSvTimeNanos(J)V
+HSPLandroid/location/GnssMeasurement;->setReceivedSvTimeUncertaintyNanos(J)V
+HSPLandroid/location/GnssMeasurement;->setState(I)V
+HSPLandroid/location/GnssMeasurement;->setSvid(I)V
+HSPLandroid/location/GnssMeasurement;->setTimeOffsetNanos(D)V
+HSPLandroid/location/GnssMeasurementsEvent;-><clinit>()V
+HSPLandroid/location/GnssMeasurementsEvent;-><init>(Landroid/location/GnssClock;[Landroid/location/GnssMeasurement;)V
+HSPLandroid/location/GnssNavigationMessage$1;-><init>()V
+HSPLandroid/location/GnssNavigationMessage;-><clinit>()V
+HSPLandroid/location/GnssReflectingPlane$1;-><init>()V
+HSPLandroid/location/GnssReflectingPlane;-><clinit>()V
+HSPLandroid/location/GnssSingleSatCorrection$1;-><init>()V
+HSPLandroid/location/GnssSingleSatCorrection;-><clinit>()V
+HSPLandroid/location/GnssStatus$Callback;-><init>()V
+HSPLandroid/location/GnssStatus;-><init>(I[I[F[F[F[F[F)V
+HSPLandroid/location/GnssStatus;->getAzimuthDegrees(I)F
+HPLandroid/location/GnssStatus;->getCarrierFrequencyHz(I)F
+HSPLandroid/location/GnssStatus;->getCn0DbHz(I)F
+HSPLandroid/location/GnssStatus;->getConstellationType(I)I
+HSPLandroid/location/GnssStatus;->getElevationDegrees(I)F
+HSPLandroid/location/GnssStatus;->getSatelliteCount()I
+HSPLandroid/location/GnssStatus;->getSvid(I)I
+HSPLandroid/location/GnssStatus;->hasAlmanacData(I)Z
+HPLandroid/location/GnssStatus;->hasCarrierFrequencyHz(I)Z
+HSPLandroid/location/GnssStatus;->hasEphemerisData(I)Z
+HSPLandroid/location/GnssStatus;->usedInFix(I)Z
+HSPLandroid/location/GnssStatus;->wrap(I[I[F[F[F[F[F)Landroid/location/GnssStatus;
+HSPLandroid/location/GpsSatellite;-><init>(I)V
+HPLandroid/location/GpsSatellite;->getPrn()I
+HPLandroid/location/GpsSatellite;->getSnr()F
+HSPLandroid/location/GpsSatellite;->usedInFix()Z
+HSPLandroid/location/GpsStatus$SatelliteIterator;-><init>(Landroid/location/GpsStatus;)V
+HSPLandroid/location/GpsStatus$SatelliteIterator;->hasNext()Z
+HSPLandroid/location/GpsStatus$SatelliteIterator;->next()Landroid/location/GpsSatellite;
+HSPLandroid/location/GpsStatus$SatelliteIterator;->next()Ljava/lang/Object;
+HSPLandroid/location/GpsStatus;-><init>()V
+HSPLandroid/location/GpsStatus;->access$000(Landroid/location/GpsStatus;)Landroid/util/SparseArray;
+HSPLandroid/location/GpsStatus;->create(Landroid/location/GnssStatus;I)Landroid/location/GpsStatus;
+HSPLandroid/location/GpsStatus;->getSatellites()Ljava/lang/Iterable;
+HSPLandroid/location/GpsStatus;->lambda$new$0$GpsStatus()Ljava/util/Iterator;
+HSPLandroid/location/GpsStatus;->setStatus(Landroid/location/GnssStatus;I)V
+HSPLandroid/location/ICountryDetector$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/location/ICountryDetector$Stub$Proxy;->detectCountry()Landroid/location/Country;
+HSPLandroid/location/ICountryDetector$Stub;-><init>()V
+HSPLandroid/location/ICountryDetector$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ICountryDetector;
+HPLandroid/location/ICountryDetector$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/location/ICountryListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/location/ICountryListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/location/ICountryListener$Stub;-><init>()V
+HSPLandroid/location/ICountryListener$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/location/ICountryListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ICountryListener;
+HSPLandroid/location/IGeocodeProvider$Stub;-><init>()V
+HSPLandroid/location/IGeofenceProvider$Stub;-><init>()V
+HPLandroid/location/IGnssStatusListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/location/IGnssStatusListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/location/IGnssStatusListener$Stub$Proxy;->onGnssStarted()V
+HPLandroid/location/IGnssStatusListener$Stub$Proxy;->onGnssStopped()V
+HPLandroid/location/IGnssStatusListener$Stub$Proxy;->onNmeaReceived(JLjava/lang/String;)V
+HPLandroid/location/IGnssStatusListener$Stub$Proxy;->onSvStatusChanged(I[I[F[F[F[F[F)V
+HSPLandroid/location/IGnssStatusListener$Stub;-><init>()V
+HSPLandroid/location/IGnssStatusListener$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/location/IGnssStatusListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IGnssStatusListener;
+HSPLandroid/location/IGnssStatusListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/location/IGpsGeofenceHardware$Stub;-><init>()V
+HPLandroid/location/ILocationListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/location/ILocationListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/location/ILocationListener$Stub$Proxy;->onLocationChanged(Landroid/location/Location;)V
 HSPLandroid/location/ILocationListener$Stub;-><init>()V
 HSPLandroid/location/ILocationListener$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/location/ILocationListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationListener;
+HSPLandroid/location/ILocationListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/location/ILocationManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/location/ILocationManager$Stub$Proxy;->getAllProviders()Ljava/util/List;
+HSPLandroid/location/ILocationManager$Stub$Proxy;->getExtraLocationControllerPackage()Ljava/lang/String;
 HSPLandroid/location/ILocationManager$Stub$Proxy;->getLastLocation(Landroid/location/LocationRequest;Ljava/lang/String;Ljava/lang/String;)Landroid/location/Location;
+HSPLandroid/location/ILocationManager$Stub$Proxy;->getProviderProperties(Ljava/lang/String;)Lcom/android/internal/location/ProviderProperties;
+HSPLandroid/location/ILocationManager$Stub$Proxy;->getProviders(Landroid/location/Criteria;Z)Ljava/util/List;
 HSPLandroid/location/ILocationManager$Stub$Proxy;->isLocationEnabledForUser(I)Z
 HSPLandroid/location/ILocationManager$Stub$Proxy;->isProviderEnabledForUser(Ljava/lang/String;I)Z
+HSPLandroid/location/ILocationManager$Stub$Proxy;->locationCallbackFinished(Landroid/location/ILocationListener;)V
+HSPLandroid/location/ILocationManager$Stub$Proxy;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/location/ILocationManager$Stub$Proxy;->removeUpdates(Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;)V
+HSPLandroid/location/ILocationManager$Stub$Proxy;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/location/ILocationManager$Stub$Proxy;->setExtraLocationControllerPackage(Ljava/lang/String;)V
+HSPLandroid/location/ILocationManager$Stub$Proxy;->setExtraLocationControllerPackageEnabled(Z)V
+HSPLandroid/location/ILocationManager$Stub;-><init>()V
 HSPLandroid/location/ILocationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationManager;
+HPLandroid/location/ILocationManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/location/INetInitiatedListener$Stub;-><init>()V
+HSPLandroid/location/Location$1;->initialValue()Landroid/location/Location$BearingDistanceCache;
+HSPLandroid/location/Location$1;->initialValue()Ljava/lang/Object;
 HSPLandroid/location/Location$2;->createFromParcel(Landroid/os/Parcel;)Landroid/location/Location;
 HSPLandroid/location/Location$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/location/Location$BearingDistanceCache;-><init>()V
+HSPLandroid/location/Location$BearingDistanceCache;-><init>(Landroid/location/Location$1;)V
+HSPLandroid/location/Location$BearingDistanceCache;->access$100(Landroid/location/Location$BearingDistanceCache;)F
+HSPLandroid/location/Location$BearingDistanceCache;->access$102(Landroid/location/Location$BearingDistanceCache;F)F
+HSPLandroid/location/Location$BearingDistanceCache;->access$202(Landroid/location/Location$BearingDistanceCache;F)F
+HSPLandroid/location/Location$BearingDistanceCache;->access$302(Landroid/location/Location$BearingDistanceCache;F)F
+HSPLandroid/location/Location$BearingDistanceCache;->access$400(Landroid/location/Location$BearingDistanceCache;)D
+HSPLandroid/location/Location$BearingDistanceCache;->access$402(Landroid/location/Location$BearingDistanceCache;D)D
+HSPLandroid/location/Location$BearingDistanceCache;->access$502(Landroid/location/Location$BearingDistanceCache;D)D
+HSPLandroid/location/Location$BearingDistanceCache;->access$602(Landroid/location/Location$BearingDistanceCache;D)D
+HSPLandroid/location/Location$BearingDistanceCache;->access$702(Landroid/location/Location$BearingDistanceCache;D)D
 HSPLandroid/location/Location;-><init>(Landroid/location/Location;)V
 HSPLandroid/location/Location;-><init>(Ljava/lang/String;)V
 HSPLandroid/location/Location;->access$1002(Landroid/location/Location;D)D
@@ -8110,52 +14693,154 @@
 HSPLandroid/location/Location;->access$2102(Landroid/location/Location;Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLandroid/location/Location;->access$802(Landroid/location/Location;J)J
 HSPLandroid/location/Location;->access$902(Landroid/location/Location;J)J
+HSPLandroid/location/Location;->computeDistanceAndBearing(DDDDLandroid/location/Location$BearingDistanceCache;)V
+HSPLandroid/location/Location;->distanceBetween(DDDD[F)V
+HSPLandroid/location/Location;->distanceTo(Landroid/location/Location;)F
 HSPLandroid/location/Location;->getAccuracy()F
 HSPLandroid/location/Location;->getAltitude()D
+HSPLandroid/location/Location;->getBearing()F
+HSPLandroid/location/Location;->getBearingAccuracyDegrees()F
 HSPLandroid/location/Location;->getElapsedRealtimeNanos()J
+HSPLandroid/location/Location;->getExtras()Landroid/os/Bundle;
 HSPLandroid/location/Location;->getLatitude()D
 HSPLandroid/location/Location;->getLongitude()D
 HSPLandroid/location/Location;->getProvider()Ljava/lang/String;
 HSPLandroid/location/Location;->getSpeed()F
+HSPLandroid/location/Location;->getSpeedAccuracyMetersPerSecond()F
 HSPLandroid/location/Location;->getTime()J
+HSPLandroid/location/Location;->getVerticalAccuracyMeters()F
 HSPLandroid/location/Location;->hasAccuracy()Z
+HSPLandroid/location/Location;->hasAltitude()Z
 HSPLandroid/location/Location;->hasBearing()Z
+HSPLandroid/location/Location;->hasBearingAccuracy()Z
+HSPLandroid/location/Location;->hasElapsedRealtimeUncertaintyNanos()Z
 HSPLandroid/location/Location;->hasSpeed()Z
+HSPLandroid/location/Location;->hasSpeedAccuracy()Z
+HSPLandroid/location/Location;->hasVerticalAccuracy()Z
+HSPLandroid/location/Location;->isComplete()Z
+HSPLandroid/location/Location;->isFromMockProvider()Z
+PLandroid/location/Location;->removeAltitude()V
+HSPLandroid/location/Location;->removeBearing()V
+HSPLandroid/location/Location;->removeSpeed()V
 HSPLandroid/location/Location;->set(Landroid/location/Location;)V
+HSPLandroid/location/Location;->setAccuracy(F)V
+HSPLandroid/location/Location;->setAltitude(D)V
+HSPLandroid/location/Location;->setBearing(F)V
+HSPLandroid/location/Location;->setBearingAccuracyDegrees(F)V
+HSPLandroid/location/Location;->setElapsedRealtimeNanos(J)V
+HSPLandroid/location/Location;->setExtras(Landroid/os/Bundle;)V
 HSPLandroid/location/Location;->setLatitude(D)V
 HSPLandroid/location/Location;->setLongitude(D)V
+HSPLandroid/location/Location;->setProvider(Ljava/lang/String;)V
+HSPLandroid/location/Location;->setSpeed(F)V
+HSPLandroid/location/Location;->setSpeedAccuracyMetersPerSecond(F)V
+HSPLandroid/location/Location;->setTime(J)V
+HSPLandroid/location/Location;->setVerticalAccuracyMeters(F)V
+HSPLandroid/location/Location;->toString()Ljava/lang/String;
+HSPLandroid/location/Location;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/location/LocationManager$1;-><init>(Landroid/location/LocationManager;ILjava/lang/String;)V
 HSPLandroid/location/LocationManager$BatchedLocationCallbackManager;-><init>(Landroid/location/LocationManager;)V
 HSPLandroid/location/LocationManager$BatchedLocationCallbackManager;-><init>(Landroid/location/LocationManager;Landroid/location/LocationManager$1;)V
+HSPLandroid/location/LocationManager$GnssAntennaInfoListenerManager;-><init>(Landroid/location/LocationManager;)V
+HSPLandroid/location/LocationManager$GnssAntennaInfoListenerManager;-><init>(Landroid/location/LocationManager;Landroid/location/LocationManager$1;)V
 HSPLandroid/location/LocationManager$GnssMeasurementsListenerManager;-><init>(Landroid/location/LocationManager;)V
 HSPLandroid/location/LocationManager$GnssMeasurementsListenerManager;-><init>(Landroid/location/LocationManager;Landroid/location/LocationManager$1;)V
 HSPLandroid/location/LocationManager$GnssNavigationMessageListenerManager;-><init>(Landroid/location/LocationManager;)V
 HSPLandroid/location/LocationManager$GnssNavigationMessageListenerManager;-><init>(Landroid/location/LocationManager;Landroid/location/LocationManager$1;)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$1;-><init>(Landroid/location/LocationManager$GnssStatusListenerManager;Ljava/lang/Object;)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$1;->onSatelliteStatusChanged(Landroid/location/GnssStatus;)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$1;->onStarted()V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$1;->onStopped()V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;-><init>(Landroid/location/LocationManager$GnssStatusListenerManager;)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;-><init>(Landroid/location/LocationManager$GnssStatusListenerManager;Landroid/location/LocationManager$1;)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->lambda$onFirstFix$0(ILandroid/location/GnssStatus$Callback;)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->lambda$onNmeaReceived$2(Ljava/lang/String;JLandroid/location/GnssStatus$Callback;)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->lambda$onSvStatusChanged$1(Landroid/location/GnssStatus;Landroid/location/GnssStatus$Callback;)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->onFirstFix(I)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->onGnssStarted()V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->onGnssStopped()V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->onNmeaReceived(JLjava/lang/String;)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->onSvStatusChanged(I[I[F[F[F[F[F)V
 HSPLandroid/location/LocationManager$GnssStatusListenerManager;-><init>(Landroid/location/LocationManager;)V
 HSPLandroid/location/LocationManager$GnssStatusListenerManager;-><init>(Landroid/location/LocationManager;Landroid/location/LocationManager$1;)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager;->addListener(Landroid/location/GpsStatus$Listener;Ljava/util/concurrent/Executor;)Z
+HSPLandroid/location/LocationManager$GnssStatusListenerManager;->convertKey(Ljava/lang/Object;)Landroid/location/GnssStatus$Callback;
+HSPLandroid/location/LocationManager$GnssStatusListenerManager;->convertKey(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/location/LocationManager$GnssStatusListenerManager;->getGnssStatus()Landroid/location/GnssStatus;
+HSPLandroid/location/LocationManager$GnssStatusListenerManager;->getTtff()I
+HSPLandroid/location/LocationManager$GnssStatusListenerManager;->registerService()Z
 HSPLandroid/location/LocationManager$LocationListenerTransport;-><init>(Landroid/location/LocationManager;Landroid/location/LocationListener;)V
 HSPLandroid/location/LocationManager$LocationListenerTransport;-><init>(Landroid/location/LocationManager;Landroid/location/LocationListener;Landroid/location/LocationManager$1;)V
+HSPLandroid/location/LocationManager$LocationListenerTransport;->lambda$onLocationChanged$0$LocationManager$LocationListenerTransport(Ljava/util/concurrent/Executor;Landroid/location/Location;)V
+HSPLandroid/location/LocationManager$LocationListenerTransport;->lambda$onProviderDisabled$2$LocationManager$LocationListenerTransport(Ljava/util/concurrent/Executor;Ljava/lang/String;)V
+HSPLandroid/location/LocationManager$LocationListenerTransport;->lambda$onProviderEnabled$1$LocationManager$LocationListenerTransport(Ljava/util/concurrent/Executor;Ljava/lang/String;)V
 HSPLandroid/location/LocationManager$LocationListenerTransport;->locationCallbackFinished()V
+HSPLandroid/location/LocationManager$LocationListenerTransport;->onLocationChanged(Landroid/location/Location;)V
+HSPLandroid/location/LocationManager$LocationListenerTransport;->onProviderDisabled(Ljava/lang/String;)V
+HSPLandroid/location/LocationManager$LocationListenerTransport;->onProviderEnabled(Ljava/lang/String;)V
+HSPLandroid/location/LocationManager$LocationListenerTransport;->onRemoved()V
 HSPLandroid/location/LocationManager$LocationListenerTransport;->register(Ljava/util/concurrent/Executor;)V
+HSPLandroid/location/LocationManager$LocationListenerTransport;->unregister()V
 HSPLandroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
+HSPLandroid/location/LocationManager;->access$1000(Landroid/location/LocationManager;)Landroid/content/Context;
 HSPLandroid/location/LocationManager;->access$600(Landroid/location/LocationManager;)Landroid/location/ILocationManager;
+HSPLandroid/location/LocationManager;->access$700(Landroid/location/LocationManager;)Landroid/location/ILocationManager;
+HSPLandroid/location/LocationManager;->addGpsStatusListener(Landroid/location/GpsStatus$Listener;)Z
+HSPLandroid/location/LocationManager;->getAllProviders()Ljava/util/List;
+HSPLandroid/location/LocationManager;->getExtraLocationControllerPackage()Ljava/lang/String;
+HSPLandroid/location/LocationManager;->getGpsStatus(Landroid/location/GpsStatus;)Landroid/location/GpsStatus;
 HSPLandroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
 HSPLandroid/location/LocationManager;->getListenerIdentifier(Ljava/lang/Object;)Ljava/lang/String;
+HSPLandroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
+HSPLandroid/location/LocationManager;->getProviders(Z)Ljava/util/List;
+HSPLandroid/location/LocationManager;->isLocationEnabled()Z
 HSPLandroid/location/LocationManager;->isLocationEnabledForUser(Landroid/os/UserHandle;)Z
 HSPLandroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
 HSPLandroid/location/LocationManager;->isProviderEnabledForUser(Ljava/lang/String;Landroid/os/UserHandle;)Z
+HSPLandroid/location/LocationManager;->removeGpsStatusListener(Landroid/location/GpsStatus$Listener;)V
+HSPLandroid/location/LocationManager;->removeUpdates(Landroid/location/LocationListener;)V
 HSPLandroid/location/LocationManager;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/LocationListener;Landroid/os/Looper;)V
 HSPLandroid/location/LocationManager;->requestLocationUpdates(Landroid/location/LocationRequest;Ljava/util/concurrent/Executor;Landroid/location/LocationListener;)V
+HSPLandroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
+HSPLandroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
+HSPLandroid/location/LocationManager;->setExtraLocationControllerPackage(Ljava/lang/String;)V
+HSPLandroid/location/LocationManager;->setExtraLocationControllerPackageEnabled(Z)V
+HSPLandroid/location/LocationManager;->unregisterGnssStatusCallback(Landroid/location/GnssStatus$Callback;)V
+HSPLandroid/location/LocationProvider;-><init>(Ljava/lang/String;Lcom/android/internal/location/ProviderProperties;)V
+HSPLandroid/location/LocationRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/location/LocationRequest;-><init>()V
+HSPLandroid/location/LocationRequest;-><init>(Landroid/location/LocationRequest;)V
 HSPLandroid/location/LocationRequest;->checkDisplacement(F)V
 HSPLandroid/location/LocationRequest;->checkProvider(Ljava/lang/String;)V
 HSPLandroid/location/LocationRequest;->checkQuality(I)V
+HSPLandroid/location/LocationRequest;->create()Landroid/location/LocationRequest;
 HSPLandroid/location/LocationRequest;->createFromDeprecatedProvider(Ljava/lang/String;JFZ)Landroid/location/LocationRequest;
+PLandroid/location/LocationRequest;->decrementNumUpdates()V
+HSPLandroid/location/LocationRequest;->getExpirationRealtimeMs(J)J
+HSPLandroid/location/LocationRequest;->getExpireIn()J
+HSPLandroid/location/LocationRequest;->getFastestInterval()J
+HSPLandroid/location/LocationRequest;->getHideFromAppOps()Z
+HSPLandroid/location/LocationRequest;->getInterval()J
+HSPLandroid/location/LocationRequest;->getNumUpdates()I
+HSPLandroid/location/LocationRequest;->getProvider()Ljava/lang/String;
+HSPLandroid/location/LocationRequest;->getQuality()I
+HSPLandroid/location/LocationRequest;->getSmallestDisplacement()F
+HSPLandroid/location/LocationRequest;->getWorkSource()Landroid/os/WorkSource;
+HSPLandroid/location/LocationRequest;->isLocationSettingsIgnored()Z
+HSPLandroid/location/LocationRequest;->isLowPowerMode()Z
+HSPLandroid/location/LocationRequest;->setExpireAt(J)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setExpireIn(J)Landroid/location/LocationRequest;
 HSPLandroid/location/LocationRequest;->setFastestInterval(J)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setHideFromAppOps(Z)V
 HSPLandroid/location/LocationRequest;->setInterval(J)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setLocationSettingsIgnored(Z)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setLowPowerMode(Z)Landroid/location/LocationRequest;
 HSPLandroid/location/LocationRequest;->setNumUpdates(I)Landroid/location/LocationRequest;
 HSPLandroid/location/LocationRequest;->setProvider(Ljava/lang/String;)Landroid/location/LocationRequest;
 HSPLandroid/location/LocationRequest;->setQuality(I)Landroid/location/LocationRequest;
 HSPLandroid/location/LocationRequest;->setSmallestDisplacement(F)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setWorkSource(Landroid/os/WorkSource;)V
 HSPLandroid/location/LocationRequest;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/media/-$$Lambda$MediaCodecInfo$VideoCapabilities$DpgwEn-gVFZT9EtP3qcxpiA2G0M;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLandroid/media/AudioAttributes$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioAttributes;
@@ -8164,11 +14849,13 @@
 HSPLandroid/media/AudioAttributes$Builder;-><init>(Landroid/media/AudioAttributes;)V
 HSPLandroid/media/AudioAttributes$Builder;->addTag(Ljava/lang/String;)Landroid/media/AudioAttributes$Builder;
 HSPLandroid/media/AudioAttributes$Builder;->build()Landroid/media/AudioAttributes;
+HSPLandroid/media/AudioAttributes$Builder;->setAllowedCapturePolicy(I)Landroid/media/AudioAttributes$Builder;
 HSPLandroid/media/AudioAttributes$Builder;->setCapturePreset(I)Landroid/media/AudioAttributes$Builder;
 HSPLandroid/media/AudioAttributes$Builder;->setContentType(I)Landroid/media/AudioAttributes$Builder;
 HSPLandroid/media/AudioAttributes$Builder;->setFlags(I)Landroid/media/AudioAttributes$Builder;
 HSPLandroid/media/AudioAttributes$Builder;->setInternalCapturePreset(I)Landroid/media/AudioAttributes$Builder;
 HSPLandroid/media/AudioAttributes$Builder;->setInternalLegacyStreamType(I)Landroid/media/AudioAttributes$Builder;
+HSPLandroid/media/AudioAttributes$Builder;->setLegacyStreamType(I)Landroid/media/AudioAttributes$Builder;
 HSPLandroid/media/AudioAttributes$Builder;->setSystemUsage(I)Landroid/media/AudioAttributes$Builder;
 HSPLandroid/media/AudioAttributes$Builder;->setUsage(I)Landroid/media/AudioAttributes$Builder;
 HSPLandroid/media/AudioAttributes;-><init>()V
@@ -8189,27 +14876,73 @@
 HSPLandroid/media/AudioAttributes;->access$602(Landroid/media/AudioAttributes;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/media/AudioAttributes;->access$700(Landroid/media/AudioAttributes;)Landroid/os/Bundle;
 HSPLandroid/media/AudioAttributes;->areHapticChannelsMuted()Z
+HSPLandroid/media/AudioAttributes;->capturePolicyToFlags(II)I
+HSPLandroid/media/AudioAttributes;->contentTypeToString()Ljava/lang/String;
+HSPLandroid/media/AudioAttributes;->equals(Ljava/lang/Object;)Z
 HSPLandroid/media/AudioAttributes;->getAllFlags()I
+HSPLandroid/media/AudioAttributes;->getCapturePreset()I
+HSPLandroid/media/AudioAttributes;->getContentType()I
+HSPLandroid/media/AudioAttributes;->getFlags()I
+HSPLandroid/media/AudioAttributes;->getSystemUsage()I
+HSPLandroid/media/AudioAttributes;->getTags()Ljava/util/Set;
 HSPLandroid/media/AudioAttributes;->getUsage()I
+HSPLandroid/media/AudioAttributes;->getVolumeControlStream()I
+HSPLandroid/media/AudioAttributes;->hashCode()I
 HSPLandroid/media/AudioAttributes;->isSystemUsage(I)Z
+HSPLandroid/media/AudioAttributes;->toLegacyStreamType(Landroid/media/AudioAttributes;)I
+HSPLandroid/media/AudioAttributes;->toString()Ljava/lang/String;
+HSPLandroid/media/AudioAttributes;->toVolumeStreamType(ZLandroid/media/AudioAttributes;)I
+HSPLandroid/media/AudioAttributes;->usageToString(I)Ljava/lang/String;
 HSPLandroid/media/AudioAttributes;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/media/AudioDeviceCallback;-><init>()V
+HSPLandroid/media/AudioDeviceInfo;-><init>(Landroid/media/AudioDevicePort;)V
+HSPLandroid/media/AudioDeviceInfo;->convertInternalDeviceToDeviceType(I)I
+HSPLandroid/media/AudioDeviceInfo;->getProductName()Ljava/lang/CharSequence;
 HSPLandroid/media/AudioDeviceInfo;->getType()I
 HSPLandroid/media/AudioDevicePort;-><init>(Landroid/media/AudioHandle;Ljava/lang/String;[I[I[I[I[Landroid/media/AudioGain;ILjava/lang/String;)V
 HSPLandroid/media/AudioDevicePort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioDevicePortConfig;
 HSPLandroid/media/AudioDevicePort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig;
 HSPLandroid/media/AudioDevicePort;->type()I
 HSPLandroid/media/AudioDevicePortConfig;-><init>(Landroid/media/AudioDevicePort;IIILandroid/media/AudioGainConfig;)V
+HSPLandroid/media/AudioFocusInfo;-><init>(Landroid/media/AudioAttributes;ILjava/lang/String;Ljava/lang/String;IIII)V
+HSPLandroid/media/AudioFocusRequest$Builder;-><init>(I)V
+HSPLandroid/media/AudioFocusRequest$Builder;->build()Landroid/media/AudioFocusRequest;
+HSPLandroid/media/AudioFocusRequest$Builder;->setAcceptsDelayedFocusGain(Z)Landroid/media/AudioFocusRequest$Builder;
+HSPLandroid/media/AudioFocusRequest$Builder;->setAudioAttributes(Landroid/media/AudioAttributes;)Landroid/media/AudioFocusRequest$Builder;
+HSPLandroid/media/AudioFocusRequest$Builder;->setFocusGain(I)Landroid/media/AudioFocusRequest$Builder;
+HSPLandroid/media/AudioFocusRequest$Builder;->setLocksFocus(Z)Landroid/media/AudioFocusRequest$Builder;
+HSPLandroid/media/AudioFocusRequest$Builder;->setOnAudioFocusChangeListener(Landroid/media/AudioManager$OnAudioFocusChangeListener;)Landroid/media/AudioFocusRequest$Builder;
+HSPLandroid/media/AudioFocusRequest$Builder;->setOnAudioFocusChangeListenerInt(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/os/Handler;)Landroid/media/AudioFocusRequest$Builder;
+HSPLandroid/media/AudioFocusRequest$Builder;->setWillPauseWhenDucked(Z)Landroid/media/AudioFocusRequest$Builder;
+HSPLandroid/media/AudioFocusRequest;-><init>(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/os/Handler;Landroid/media/AudioAttributes;II)V
+HSPLandroid/media/AudioFocusRequest;-><init>(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/os/Handler;Landroid/media/AudioAttributes;IILandroid/media/AudioFocusRequest$1;)V
+HSPLandroid/media/AudioFocusRequest;->access$000()Landroid/media/AudioAttributes;
+HSPLandroid/media/AudioFocusRequest;->getAudioAttributes()Landroid/media/AudioAttributes;
+HSPLandroid/media/AudioFocusRequest;->getFlags()I
+HSPLandroid/media/AudioFocusRequest;->getFocusGain()I
+HSPLandroid/media/AudioFocusRequest;->getOnAudioFocusChangeListener()Landroid/media/AudioManager$OnAudioFocusChangeListener;
+HSPLandroid/media/AudioFocusRequest;->getOnAudioFocusChangeListenerHandler()Landroid/os/Handler;
+HSPLandroid/media/AudioFocusRequest;->isValidFocusGain(I)Z
+HSPLandroid/media/AudioFocusRequest;->locksFocus()Z
 HSPLandroid/media/AudioFormat$Builder;-><init>()V
 HSPLandroid/media/AudioFormat$Builder;->build()Landroid/media/AudioFormat;
 HSPLandroid/media/AudioFormat$Builder;->setChannelMask(I)Landroid/media/AudioFormat$Builder;
 HSPLandroid/media/AudioFormat$Builder;->setEncoding(I)Landroid/media/AudioFormat$Builder;
 HSPLandroid/media/AudioFormat$Builder;->setSampleRate(I)Landroid/media/AudioFormat$Builder;
 HSPLandroid/media/AudioFormat;-><init>(IIIII)V
+HSPLandroid/media/AudioFormat;-><init>(IIIIILandroid/media/AudioFormat$1;)V
+HSPLandroid/media/AudioFormat;->channelCountFromOutChannelMask(I)I
 HSPLandroid/media/AudioFormat;->getBytesPerSample(I)I
+HSPLandroid/media/AudioFormat;->getChannelCount()I
+HSPLandroid/media/AudioFormat;->getChannelIndexMask()I
 HSPLandroid/media/AudioFormat;->getChannelMask()I
 HSPLandroid/media/AudioFormat;->getEncoding()I
+HSPLandroid/media/AudioFormat;->getPropertySetMask()I
 HSPLandroid/media/AudioFormat;->getSampleRate()I
+HSPLandroid/media/AudioFormat;->isEncodingLinearFrames(I)Z
+HSPLandroid/media/AudioFormat;->isEncodingLinearPcm(I)Z
+HSPLandroid/media/AudioFormat;->isPublicEncoding(I)Z
+HSPLandroid/media/AudioFormat;->isValidEncoding(I)Z
 HSPLandroid/media/AudioHandle;-><init>(I)V
 HSPLandroid/media/AudioHandle;->equals(Ljava/lang/Object;)Z
 HSPLandroid/media/AudioHandle;->id()I
@@ -8220,6 +14953,8 @@
 HSPLandroid/media/AudioManager$4;-><init>(Landroid/media/AudioManager;)V
 HSPLandroid/media/AudioManager$AudioPlaybackCallback;-><init>()V
 HSPLandroid/media/AudioManager$AudioPlaybackCallbackInfo;-><init>(Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V
+HSPLandroid/media/AudioManager$AudioRecordingCallback;-><init>()V
+HSPLandroid/media/AudioManager$FocusRequestInfo;-><init>(Landroid/media/AudioFocusRequest;Landroid/os/Handler;)V
 HSPLandroid/media/AudioManager$NativeEventHandlerDelegate$1;-><init>(Landroid/media/AudioManager$NativeEventHandlerDelegate;Landroid/os/Looper;Landroid/media/AudioManager;Landroid/media/AudioDeviceCallback;)V
 HSPLandroid/media/AudioManager$NativeEventHandlerDelegate$1;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/media/AudioManager$NativeEventHandlerDelegate;-><init>(Landroid/media/AudioManager;Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V
@@ -8228,32 +14963,76 @@
 HSPLandroid/media/AudioManager$OnAmPortUpdateListener;-><init>(Landroid/media/AudioManager;Landroid/media/AudioManager$1;)V
 HSPLandroid/media/AudioManager$OnAmPortUpdateListener;->onAudioPatchListUpdate([Landroid/media/AudioPatch;)V
 HSPLandroid/media/AudioManager$OnAmPortUpdateListener;->onAudioPortListUpdate([Landroid/media/AudioPort;)V
+HSPLandroid/media/AudioManager$PlaybackConfigChangeCallbackData;-><init>(Landroid/media/AudioManager$AudioPlaybackCallback;Ljava/util/List;)V
 HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate$1;-><init>(Landroid/media/AudioManager$ServiceEventHandlerDelegate;Landroid/os/Looper;Landroid/media/AudioManager;)V
 HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate$1;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate;-><init>(Landroid/media/AudioManager;Landroid/os/Handler;)V
 HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate;->getHandler()Landroid/os/Handler;
 HSPLandroid/media/AudioManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/media/AudioManager;->abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;)I
+HSPLandroid/media/AudioManager;->abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;)I
+HSPLandroid/media/AudioManager;->abandonAudioFocusRequest(Landroid/media/AudioFocusRequest;)I
+HSPLandroid/media/AudioManager;->access$1000(Landroid/media/AudioManager;)Landroid/util/ArrayMap;
+HSPLandroid/media/AudioManager;->access$1100(Landroid/media/AudioManager;Landroid/os/Handler;)V
+HSPLandroid/media/AudioManager;->access$500(Landroid/media/AudioManager;)Ljava/lang/Object;
+HSPLandroid/media/AudioManager;->access$600(Landroid/media/AudioManager;)Ljava/util/List;
 HSPLandroid/media/AudioManager;->broadcastDeviceListChange_sync(Landroid/os/Handler;)V
+HSPLandroid/media/AudioManager;->calcListDeltas(Ljava/util/ArrayList;Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
+HSPLandroid/media/AudioManager;->checkFlags(Landroid/media/AudioDevicePort;I)Z
+HSPLandroid/media/AudioManager;->checkTypes(Landroid/media/AudioDevicePort;)Z
 HSPLandroid/media/AudioManager;->filterDevicePorts(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
 HSPLandroid/media/AudioManager;->getContext()Landroid/content/Context;
+HSPLandroid/media/AudioManager;->getDevices(I)[Landroid/media/AudioDeviceInfo;
+HSPLandroid/media/AudioManager;->getDevicesForStream(I)I
+HSPLandroid/media/AudioManager;->getDevicesStatic(I)[Landroid/media/AudioDeviceInfo;
+HSPLandroid/media/AudioManager;->getFocusRampTimeMs(ILandroid/media/AudioAttributes;)I
+HSPLandroid/media/AudioManager;->getIdForAudioFocusListener(Landroid/media/AudioManager$OnAudioFocusChangeListener;)Ljava/lang/String;
+HSPLandroid/media/AudioManager;->getLastAudibleStreamVolume(I)I
+HSPLandroid/media/AudioManager;->getMode()I
+HSPLandroid/media/AudioManager;->getProperty(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/media/AudioManager;->getRingerMode()I
+HSPLandroid/media/AudioManager;->getRingerModeInternal()I
+HSPLandroid/media/AudioManager;->getRingtonePlayer()Landroid/media/IRingtonePlayer;
 HSPLandroid/media/AudioManager;->getService()Landroid/media/IAudioService;
 HSPLandroid/media/AudioManager;->getStreamMaxVolume(I)I
+HSPLandroid/media/AudioManager;->getStreamMinVolumeInt(I)I
 HSPLandroid/media/AudioManager;->getStreamVolume(I)I
 HSPLandroid/media/AudioManager;->hasPlaybackCallback_sync(Landroid/media/AudioManager$AudioPlaybackCallback;)Z
 HSPLandroid/media/AudioManager;->infoListFromPortList(Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
+HSPLandroid/media/AudioManager;->isAudioFocusExclusive()Z
+HSPLandroid/media/AudioManager;->isBluetoothA2dpOn()Z
+HSPLandroid/media/AudioManager;->isBluetoothScoOn()Z
+HSPLandroid/media/AudioManager;->isHapticPlaybackSupported()Z
 HSPLandroid/media/AudioManager;->isInputDevice(I)Z
+HSPLandroid/media/AudioManager;->isMusicActive()Z
+HSPLandroid/media/AudioManager;->isSpeakerphoneOn()Z
+HSPLandroid/media/AudioManager;->isStreamAffectedByMute(I)Z
+HSPLandroid/media/AudioManager;->isStreamMute(I)Z
 HSPLandroid/media/AudioManager;->isVolumeFixed()Z
 HSPLandroid/media/AudioManager;->isWiredHeadsetOn()Z
 HSPLandroid/media/AudioManager;->listAudioDevicePorts(Ljava/util/ArrayList;)I
+HSPLandroid/media/AudioManager;->notifyVolumeControllerVisible(Landroid/media/IVolumeController;Z)V
 HSPLandroid/media/AudioManager;->playSoundEffect(I)V
 HSPLandroid/media/AudioManager;->preDispatchKeyEvent(Landroid/view/KeyEvent;I)V
 HSPLandroid/media/AudioManager;->querySoundEffectsEnabled(I)Z
 HSPLandroid/media/AudioManager;->registerAudioDeviceCallback(Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V
+HSPLandroid/media/AudioManager;->registerAudioFocusRequest(Landroid/media/AudioFocusRequest;)V
 HSPLandroid/media/AudioManager;->registerAudioPlaybackCallback(Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V
 HSPLandroid/media/AudioManager;->registerAudioPortUpdateListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
+HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioFocusRequest;)I
+HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioFocusRequest;Landroid/media/audiopolicy/AudioPolicy;)I
+HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;II)I
+HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;II)I
+HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;IILandroid/media/audiopolicy/AudioPolicy;)I
+HSPLandroid/media/AudioManager;->resetAudioPortGeneration()I
 HSPLandroid/media/AudioManager;->setContext(Landroid/content/Context;)V
+HSPLandroid/media/AudioManager;->setParameters(Ljava/lang/String;)V
+HSPLandroid/media/AudioManager;->setVolumeController(Landroid/media/IVolumeController;)V
+HSPLandroid/media/AudioManager;->setVolumePolicy(Landroid/media/VolumePolicy;)V
+HSPLandroid/media/AudioManager;->unregisterAudioFocusRequest(Landroid/media/AudioManager$OnAudioFocusChangeListener;)V
 HSPLandroid/media/AudioManager;->updateAudioPortCache(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I
 HSPLandroid/media/AudioManager;->updatePortConfig(Landroid/media/AudioPortConfig;Ljava/util/ArrayList;)Landroid/media/AudioPortConfig;
+HSPLandroid/media/AudioManagerInternal;-><init>()V
 HSPLandroid/media/AudioMixPort;-><init>(Landroid/media/AudioHandle;IILjava/lang/String;[I[I[I[I[Landroid/media/AudioGain;)V
 HSPLandroid/media/AudioMixPort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioMixPortConfig;
 HSPLandroid/media/AudioMixPort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig;
@@ -8261,9 +15040,25 @@
 HSPLandroid/media/AudioPatch;-><init>(Landroid/media/AudioHandle;[Landroid/media/AudioPortConfig;[Landroid/media/AudioPortConfig;)V
 HSPLandroid/media/AudioPatch;->sinks()[Landroid/media/AudioPortConfig;
 HSPLandroid/media/AudioPatch;->sources()[Landroid/media/AudioPortConfig;
+HSPLandroid/media/AudioPlaybackConfiguration$IPlayerShell;-><init>(Landroid/media/AudioPlaybackConfiguration;Landroid/media/IPlayer;)V
+PLandroid/media/AudioPlaybackConfiguration$IPlayerShell;->binderDied()V
+HPLandroid/media/AudioPlaybackConfiguration$IPlayerShell;->getIPlayer()Landroid/media/IPlayer;
+HSPLandroid/media/AudioPlaybackConfiguration$IPlayerShell;->monitorDeath()V
+HPLandroid/media/AudioPlaybackConfiguration$IPlayerShell;->release()V
+HSPLandroid/media/AudioPlaybackConfiguration;-><init>(Landroid/media/PlayerBase$PlayerIdCard;III)V
+HSPLandroid/media/AudioPlaybackConfiguration;->getAudioAttributes()Landroid/media/AudioAttributes;
+HSPLandroid/media/AudioPlaybackConfiguration;->getClientPid()I
+HSPLandroid/media/AudioPlaybackConfiguration;->getClientUid()I
+HSPLandroid/media/AudioPlaybackConfiguration;->getPlayerInterfaceId()I
+HSPLandroid/media/AudioPlaybackConfiguration;->getPlayerType()I
+HPLandroid/media/AudioPlaybackConfiguration;->handleStateEvent(I)Z
+HSPLandroid/media/AudioPlaybackConfiguration;->init()V
+HSPLandroid/media/AudioPlaybackConfiguration;->isActive()Z
+HPLandroid/media/AudioPlaybackConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/media/AudioPort;-><init>(Landroid/media/AudioHandle;ILjava/lang/String;[I[I[I[I[Landroid/media/AudioGain;)V
 HSPLandroid/media/AudioPort;->handle()Landroid/media/AudioHandle;
 HSPLandroid/media/AudioPort;->id()I
+HSPLandroid/media/AudioPort;->name()Ljava/lang/String;
 HSPLandroid/media/AudioPort;->role()I
 HSPLandroid/media/AudioPortConfig;-><init>(Landroid/media/AudioPort;IIILandroid/media/AudioGainConfig;)V
 HSPLandroid/media/AudioPortConfig;->channelMask()I
@@ -8275,38 +15070,258 @@
 HSPLandroid/media/AudioPortEventHandler$1;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/media/AudioPortEventHandler;->access$000(Landroid/media/AudioPortEventHandler;)Ljava/lang/Object;
 HSPLandroid/media/AudioPortEventHandler;->access$100(Landroid/media/AudioPortEventHandler;)Ljava/util/ArrayList;
+HSPLandroid/media/AudioPortEventHandler;->handler()Landroid/os/Handler;
 HSPLandroid/media/AudioPortEventHandler;->init()V
+HSPLandroid/media/AudioPortEventHandler;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
 HSPLandroid/media/AudioPortEventHandler;->registerListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
+HSPLandroid/media/AudioRecord;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)V
+HSPLandroid/media/AudioRecord;->audioBuffSizeCheck(I)V
+HSPLandroid/media/AudioRecord;->audioParamCheck(III)V
+HSPLandroid/media/AudioRecord;->finalize()V
+HSPLandroid/media/AudioRecord;->getChannelMaskFromLegacyConfig(IZ)I
+HSPLandroid/media/AudioRecord;->getCurrentOpPackageName()Ljava/lang/String;
+HSPLandroid/media/AudioRecord;->getMinBufferSize(III)I
+HSPLandroid/media/AudioRecord;->getRecordingState()I
+HSPLandroid/media/AudioRecord;->getState()I
+HSPLandroid/media/AudioRecord;->handleFullVolumeRec(Z)V
+HSPLandroid/media/AudioRecord;->release()V
+HSPLandroid/media/AudioRecord;->startRecording()V
+HSPLandroid/media/AudioRecord;->stop()V
+HSPLandroid/media/AudioRecordingConfiguration;->getClientAudioSource()I
+HSPLandroid/media/AudioRecordingMonitorImpl$1;-><init>(Landroid/media/AudioRecordingMonitorImpl;)V
+HSPLandroid/media/AudioRecordingMonitorImpl;-><init>(Landroid/media/AudioRecordingMonitorClient;)V
 HSPLandroid/media/AudioRoutesInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioRoutesInfo;
 HSPLandroid/media/AudioRoutesInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/media/AudioRoutesInfo;-><init>()V
+HSPLandroid/media/AudioRoutesInfo;-><init>(Landroid/media/AudioRoutesInfo;)V
 HSPLandroid/media/AudioRoutesInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/media/AudioRoutesInfo;->toString()Ljava/lang/String;
+HSPLandroid/media/AudioRoutesInfo;->typeToString(I)Ljava/lang/String;
+HSPLandroid/media/AudioRoutesInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/media/AudioSystem;->getNumStreamTypes()I
+HSPLandroid/media/AudioSystem;->getOutputDeviceName(I)Ljava/lang/String;
+HSPLandroid/media/AudioSystem;->getPlatformType(Landroid/content/Context;)I
+HSPLandroid/media/AudioSystem;->getValueForVibrateSetting(III)I
+HSPLandroid/media/AudioSystem;->isSingleVolume(Landroid/content/Context;)Z
+HSPLandroid/media/AudioSystem;->setErrorCallback(Landroid/media/AudioSystem$ErrorCallback;)V
+HSPLandroid/media/AudioSystem;->setRecordingCallback(Landroid/media/AudioSystem$AudioRecordingCallback;)V
+HSPLandroid/media/AudioSystem;->setStreamVolumeIndexAS(III)I
+HSPLandroid/media/AudioSystem;->streamToString(I)Ljava/lang/String;
+HSPLandroid/media/AudioTimestamp;-><init>()V
+HSPLandroid/media/AudioTrack;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;III)V
+HSPLandroid/media/AudioTrack;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;IIIZILandroid/media/AudioTrack$TunerConfiguration;)V
+HSPLandroid/media/AudioTrack;->audioBuffSizeCheck(I)V
+HSPLandroid/media/AudioTrack;->audioParamCheck(IIIII)V
+HSPLandroid/media/AudioTrack;->blockUntilOffloadDrain(I)Z
+HSPLandroid/media/AudioTrack;->clampGainOrLevel(F)F
+HSPLandroid/media/AudioTrack;->endStreamEventHandling()V
+HSPLandroid/media/AudioTrack;->finalize()V
+HSPLandroid/media/AudioTrack;->flush()V
+HSPLandroid/media/AudioTrack;->getMinBufferSize(III)I
+HSPLandroid/media/AudioTrack;->getNativeOutputSampleRate(I)I
+HSPLandroid/media/AudioTrack;->getPlayState()I
+HSPLandroid/media/AudioTrack;->getSampleRate()I
+HSPLandroid/media/AudioTrack;->getState()I
+HSPLandroid/media/AudioTrack;->pause()V
+HSPLandroid/media/AudioTrack;->play()V
+HSPLandroid/media/AudioTrack;->playerSetVolume(ZFF)V
+HSPLandroid/media/AudioTrack;->release()V
+HSPLandroid/media/AudioTrack;->setStereoVolume(FF)I
+HSPLandroid/media/AudioTrack;->setVolume(F)I
+HSPLandroid/media/AudioTrack;->shouldEnablePowerSaving(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)Z
+HSPLandroid/media/AudioTrack;->startImpl()V
+HSPLandroid/media/AudioTrack;->stop()V
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;-><init>(Ljava/io/InputStream;)V
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;-><init>([B)V
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->peek()I
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->read()I
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->readByte()B
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->readFully([B)V
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->readShort()S
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedInt()J
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedShort()I
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I
+HSPLandroid/media/ExifInterface$ExifAttribute;-><init>(IIJ[B)V
+HSPLandroid/media/ExifInterface$ExifAttribute;-><init>(II[B)V
+HSPLandroid/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+HSPLandroid/media/ExifInterface$ExifAttribute;->createULong([JLjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+HSPLandroid/media/ExifInterface$ExifAttribute;->createUShort(ILjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+HSPLandroid/media/ExifInterface$ExifAttribute;->createUShort([ILjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+HSPLandroid/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I
+HSPLandroid/media/ExifInterface$ExifAttribute;->getStringValue(Ljava/nio/ByteOrder;)Ljava/lang/String;
+HSPLandroid/media/ExifInterface$ExifAttribute;->getValue(Ljava/nio/ByteOrder;)Ljava/lang/Object;
+HSPLandroid/media/ExifInterface;-><init>(Ljava/io/InputStream;)V
+HSPLandroid/media/ExifInterface;-><init>(Ljava/io/InputStream;Z)V
+HSPLandroid/media/ExifInterface;->access$000()[I
+HSPLandroid/media/ExifInterface;->addDefaultValuesForCompatibility()V
+HSPLandroid/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/media/ExifInterface;->getAttributeInt(Ljava/lang/String;I)I
+HSPLandroid/media/ExifInterface;->getExifAttribute(Ljava/lang/String;)Landroid/media/ExifInterface$ExifAttribute;
+HSPLandroid/media/ExifInterface;->getJpegAttributes(Landroid/media/ExifInterface$ByteOrderedDataInputStream;II)V
+HSPLandroid/media/ExifInterface;->getMimeType(Ljava/io/BufferedInputStream;)I
+HSPLandroid/media/ExifInterface;->getPngAttributes(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)V
+HSPLandroid/media/ExifInterface;->handleThumbnailFromJfif(Landroid/media/ExifInterface$ByteOrderedDataInputStream;Ljava/util/HashMap;)V
+HSPLandroid/media/ExifInterface;->isHeifFormat([B)Z
+HSPLandroid/media/ExifInterface;->isJpegFormat([B)Z
+HSPLandroid/media/ExifInterface;->isOrfFormat([B)Z
+HSPLandroid/media/ExifInterface;->isRw2Format([B)Z
+HSPLandroid/media/ExifInterface;->loadAttributes(Ljava/io/InputStream;)V
+HSPLandroid/media/ExifInterface;->parseTiffHeaders(Landroid/media/ExifInterface$ByteOrderedDataInputStream;I)V
+HSPLandroid/media/ExifInterface;->readByteOrder(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)Ljava/nio/ByteOrder;
+HSPLandroid/media/ExifInterface;->readImageFileDirectory(Landroid/media/ExifInterface$ByteOrderedDataInputStream;I)V
+HSPLandroid/media/ExifInterface;->setThumbnailData(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)V
 HSPLandroid/media/IAudioFocusDispatcher$Stub;-><init>()V
+HSPLandroid/media/IAudioFocusDispatcher$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/IAudioFocusDispatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioFocusDispatcher;
+HSPLandroid/media/IAudioRoutesObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/media/IAudioRoutesObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/media/IAudioRoutesObserver$Stub;-><init>()V
 HSPLandroid/media/IAudioRoutesObserver$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/IAudioRoutesObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioRoutesObserver;
+HSPLandroid/media/IAudioRoutesObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/IAudioServerStateDispatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IAudioServerStateDispatcher$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/media/IAudioServerStateDispatcher$Stub;-><init>()V
+PLandroid/media/IAudioServerStateDispatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioServerStateDispatcher;
 HSPLandroid/media/IAudioService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/media/IAudioService$Stub$Proxy;->abandonAudioFocus(Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Landroid/media/AudioAttributes;Ljava/lang/String;)I
+HSPLandroid/media/IAudioService$Stub$Proxy;->getLastAudibleStreamVolume(I)I
+HSPLandroid/media/IAudioService$Stub$Proxy;->getMode()I
+HSPLandroid/media/IAudioService$Stub$Proxy;->getRingerModeExternal()I
+HSPLandroid/media/IAudioService$Stub$Proxy;->getRingerModeInternal()I
 HSPLandroid/media/IAudioService$Stub$Proxy;->getStreamMaxVolume(I)I
+HSPLandroid/media/IAudioService$Stub$Proxy;->getStreamMinVolume(I)I
 HSPLandroid/media/IAudioService$Stub$Proxy;->getStreamVolume(I)I
+HSPLandroid/media/IAudioService$Stub$Proxy;->isBluetoothA2dpOn()Z
+HSPLandroid/media/IAudioService$Stub$Proxy;->isBluetoothScoOn()Z
+HSPLandroid/media/IAudioService$Stub$Proxy;->isCameraSoundForced()Z
+HSPLandroid/media/IAudioService$Stub$Proxy;->isSpeakerphoneOn()Z
+HSPLandroid/media/IAudioService$Stub$Proxy;->isStreamAffectedByMute(I)Z
+HSPLandroid/media/IAudioService$Stub$Proxy;->isStreamMute(I)Z
+HSPLandroid/media/IAudioService$Stub$Proxy;->notifyVolumeControllerVisible(Landroid/media/IVolumeController;Z)V
 HSPLandroid/media/IAudioService$Stub$Proxy;->playSoundEffect(I)V
+HSPLandroid/media/IAudioService$Stub$Proxy;->playerAttributes(ILandroid/media/AudioAttributes;)V
+HSPLandroid/media/IAudioService$Stub$Proxy;->playerEvent(II)V
+HSPLandroid/media/IAudioService$Stub$Proxy;->releasePlayer(I)V
+HSPLandroid/media/IAudioService$Stub$Proxy;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;ILandroid/media/audiopolicy/IAudioPolicyCallback;I)I
+HSPLandroid/media/IAudioService$Stub$Proxy;->setRingtonePlayer(Landroid/media/IRingtonePlayer;)V
+HSPLandroid/media/IAudioService$Stub$Proxy;->setVolumeController(Landroid/media/IVolumeController;)V
+HSPLandroid/media/IAudioService$Stub$Proxy;->setVolumePolicy(Landroid/media/VolumePolicy;)V
 HSPLandroid/media/IAudioService$Stub$Proxy;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo;
 HSPLandroid/media/IAudioService$Stub$Proxy;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I
+HSPLandroid/media/IAudioService$Stub;-><init>()V
 HSPLandroid/media/IAudioService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioService;
+HSPLandroid/media/IAudioService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/media/IMediaResourceMonitor$Stub;-><init>()V
+HPLandroid/media/IMediaResourceMonitor$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/media/IMediaRouterClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/media/IMediaRouterClient$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/IMediaRouterClient$Stub$Proxy;->onStateChanged()V
 HSPLandroid/media/IMediaRouterClient$Stub;-><init>()V
 HSPLandroid/media/IMediaRouterClient$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/IMediaRouterClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaRouterClient;
+HSPLandroid/media/IMediaRouterClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/media/IMediaRouterService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/media/IMediaRouterService$Stub$Proxy;->getState(Landroid/media/IMediaRouterClient;)Landroid/media/MediaRouterClientState;
 HSPLandroid/media/IMediaRouterService$Stub$Proxy;->isPlaybackActive(Landroid/media/IMediaRouterClient;)Z
 HSPLandroid/media/IMediaRouterService$Stub$Proxy;->registerClientAsUser(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V
+HSPLandroid/media/IMediaRouterService$Stub$Proxy;->registerClientGroupId(Landroid/media/IMediaRouterClient;Ljava/lang/String;)V
 HSPLandroid/media/IMediaRouterService$Stub$Proxy;->setDiscoveryRequest(Landroid/media/IMediaRouterClient;IZ)V
 HSPLandroid/media/IMediaRouterService$Stub$Proxy;->setSelectedRoute(Landroid/media/IMediaRouterClient;Ljava/lang/String;Z)V
+HSPLandroid/media/IMediaRouterService$Stub;-><init>()V
 HSPLandroid/media/IMediaRouterService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaRouterService;
+HSPLandroid/media/IMediaRouterService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/IPlaybackConfigDispatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IPlaybackConfigDispatcher$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/IPlaybackConfigDispatcher$Stub$Proxy;->dispatchPlaybackConfigChange(Ljava/util/List;Z)V
 HSPLandroid/media/IPlaybackConfigDispatcher$Stub;-><init>()V
 HSPLandroid/media/IPlaybackConfigDispatcher$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/IPlaybackConfigDispatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IPlaybackConfigDispatcher;
+HSPLandroid/media/IPlayer$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/media/IPlayer$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/media/IPlayer$Stub;-><init>()V
 HSPLandroid/media/IPlayer$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/IPlayer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IPlayer;
 HSPLandroid/media/IRecordingConfigDispatcher$Stub;-><init>()V
+HSPLandroid/media/IRemoteVolumeController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/media/IRemoteVolumeController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/IRemoteVolumeController$Stub$Proxy;->updateRemoteController(Landroid/media/session/MediaSession$Token;)V
+HSPLandroid/media/IRemoteVolumeController$Stub;-><init>()V
+HSPLandroid/media/IRemoteVolumeController$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/IRemoteVolumeController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IRemoteVolumeController;
+HSPLandroid/media/IRemoteVolumeController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/media/IRemoteVolumeObserver$Stub;-><init>()V
+HSPLandroid/media/IRingtonePlayer$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/media/IRingtonePlayer$Stub$Proxy;->stopAsync()V
+HSPLandroid/media/IRingtonePlayer$Stub;-><init>()V
+HSPLandroid/media/IRingtonePlayer$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/IRingtonePlayer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IRingtonePlayer;
+HSPLandroid/media/IRingtonePlayer$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/media/IVolumeController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/media/IVolumeController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/IVolumeController$Stub$Proxy;->setLayoutDirection(I)V
+HSPLandroid/media/IVolumeController$Stub;-><init>()V
+HSPLandroid/media/IVolumeController$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/IVolumeController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IVolumeController;
+HSPLandroid/media/IVolumeController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/media/MediaCodec$BufferInfo;-><init>()V
+HSPLandroid/media/MediaCodec$BufferInfo;->set(IIJI)V
+HSPLandroid/media/MediaCodec$BufferMap$CodecBuffer;-><init>()V
+HSPLandroid/media/MediaCodec$BufferMap$CodecBuffer;-><init>(Landroid/media/MediaCodec$1;)V
+HSPLandroid/media/MediaCodec$BufferMap$CodecBuffer;->free()V
+HSPLandroid/media/MediaCodec$BufferMap$CodecBuffer;->setByteBuffer(Ljava/nio/ByteBuffer;)V
+HSPLandroid/media/MediaCodec$BufferMap;-><init>()V
+HSPLandroid/media/MediaCodec$BufferMap;-><init>(Landroid/media/MediaCodec$1;)V
+HSPLandroid/media/MediaCodec$BufferMap;->clear()V
+HSPLandroid/media/MediaCodec$BufferMap;->put(ILjava/nio/ByteBuffer;)V
+HSPLandroid/media/MediaCodec$BufferMap;->remove(I)V
+HSPLandroid/media/MediaCodec$Callback;-><init>()V
+HSPLandroid/media/MediaCodec$EventHandler;-><init>(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/os/Looper;)V
+HSPLandroid/media/MediaCodec$EventHandler;->handleCallback(Landroid/os/Message;)V
+HSPLandroid/media/MediaCodec$EventHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/media/MediaCodec;-><init>(Ljava/lang/String;ZZ)V
+HSPLandroid/media/MediaCodec;->access$000(Landroid/media/MediaCodec;)Landroid/media/MediaCodec$Callback;
+HSPLandroid/media/MediaCodec;->access$002(Landroid/media/MediaCodec;Landroid/media/MediaCodec$Callback;)Landroid/media/MediaCodec$Callback;
+HSPLandroid/media/MediaCodec;->access$1000(Landroid/media/MediaCodec;[Ljava/nio/ByteBuffer;ILandroid/media/MediaCodec$BufferInfo;)V
+HSPLandroid/media/MediaCodec;->access$300(Landroid/media/MediaCodec;)Ljava/lang/Object;
+HSPLandroid/media/MediaCodec;->access$400(Landroid/media/MediaCodec;)I
+HSPLandroid/media/MediaCodec;->access$500(Landroid/media/MediaCodec;)[Ljava/nio/ByteBuffer;
+HSPLandroid/media/MediaCodec;->access$600(Landroid/media/MediaCodec;[Ljava/nio/ByteBuffer;I)V
+HSPLandroid/media/MediaCodec;->access$900(Landroid/media/MediaCodec;)[Ljava/nio/ByteBuffer;
+HSPLandroid/media/MediaCodec;->cacheBuffers(Z)V
+HSPLandroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V
+HSPLandroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;Landroid/os/IHwBinder;I)V
+HSPLandroid/media/MediaCodec;->createByCodecName(Ljava/lang/String;)Landroid/media/MediaCodec;
+HSPLandroid/media/MediaCodec;->createDecoderByType(Ljava/lang/String;)Landroid/media/MediaCodec;
+HSPLandroid/media/MediaCodec;->dequeueInputBuffer(J)I
+HSPLandroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I
+HSPLandroid/media/MediaCodec;->finalize()V
+HSPLandroid/media/MediaCodec;->freeAllTrackedBuffers()V
+HSPLandroid/media/MediaCodec;->freeByteBuffer(Ljava/nio/ByteBuffer;)V
+HSPLandroid/media/MediaCodec;->freeByteBuffers([Ljava/nio/ByteBuffer;)V
+HSPLandroid/media/MediaCodec;->getCodecInfo()Landroid/media/MediaCodecInfo;
+HSPLandroid/media/MediaCodec;->getEventHandlerOn(Landroid/os/Handler;Landroid/media/MediaCodec$EventHandler;)Landroid/media/MediaCodec$EventHandler;
+HSPLandroid/media/MediaCodec;->getInputBuffer(I)Ljava/nio/ByteBuffer;
+HSPLandroid/media/MediaCodec;->getName()Ljava/lang/String;
+HSPLandroid/media/MediaCodec;->getOutputBuffer(I)Ljava/nio/ByteBuffer;
+HSPLandroid/media/MediaCodec;->getOutputFormat()Landroid/media/MediaFormat;
+HSPLandroid/media/MediaCodec;->invalidateByteBuffer([Ljava/nio/ByteBuffer;I)V
+HSPLandroid/media/MediaCodec;->invalidateByteBuffers([Ljava/nio/ByteBuffer;)V
+HSPLandroid/media/MediaCodec;->lockAndGetContext()J
+HSPLandroid/media/MediaCodec;->postEventFromNative(IIILjava/lang/Object;)V
+HSPLandroid/media/MediaCodec;->queueInputBuffer(IIIJI)V
+HSPLandroid/media/MediaCodec;->release()V
+HSPLandroid/media/MediaCodec;->releaseOutputBuffer(IZ)V
+HSPLandroid/media/MediaCodec;->releaseOutputBufferInternal(IZZJ)V
+HSPLandroid/media/MediaCodec;->setAndUnlockContext(J)V
+HSPLandroid/media/MediaCodec;->setCallback(Landroid/media/MediaCodec$Callback;Landroid/os/Handler;)V
+HSPLandroid/media/MediaCodec;->start()V
+HSPLandroid/media/MediaCodec;->stop()V
+HSPLandroid/media/MediaCodec;->validateInputByteBuffer([Ljava/nio/ByteBuffer;I)V
+HSPLandroid/media/MediaCodec;->validateOutputByteBuffer([Ljava/nio/ByteBuffer;ILandroid/media/MediaCodec$BufferInfo;)V
 HSPLandroid/media/MediaCodecInfo$AudioCapabilities;-><init>()V
 HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLevelLimits()V
 HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLimits(ILandroid/util/Range;)V
@@ -8319,11 +15334,14 @@
 HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->limitSampleRates([Landroid/util/Range;)V
 HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->parseFromInfo(Landroid/media/MediaFormat;)V
 HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->supports(Ljava/lang/Integer;Ljava/lang/Integer;)Z
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;-><init>()V
 HSPLandroid/media/MediaCodecInfo$CodecCapabilities;-><init>([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZLandroid/media/MediaFormat;Landroid/media/MediaFormat;)V
 HSPLandroid/media/MediaCodecInfo$CodecCapabilities;-><init>([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZLjava/util/Map;Ljava/util/Map;)V
 HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->checkFeature(Ljava/lang/String;I)Z
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->dup()Landroid/media/MediaCodecInfo$CodecCapabilities;
 HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->getMimeType()Ljava/lang/String;
 HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->getValidFeatures()[Landroid/media/MediaCodecInfo$Feature;
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->getVideoCapabilities()Landroid/media/MediaCodecInfo$VideoCapabilities;
 HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->isEncoder()Z
 HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->isFeatureRequired(Ljava/lang/String;)Z
 HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->isRegular()Z
@@ -8354,6 +15372,7 @@
 HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->lambda$getPerformancePoints$0(Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;)I
 HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->parseFromInfo(Landroid/media/MediaFormat;)V
 HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->parseWidthHeightRanges(Ljava/lang/Object;)Landroid/util/Pair;
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->supports(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Number;)Z
 HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->updateLimits()V
 HSPLandroid/media/MediaCodecInfo;-><init>(Ljava/lang/String;Ljava/lang/String;I[Landroid/media/MediaCodecInfo$CodecCapabilities;)V
 HSPLandroid/media/MediaCodecInfo;->access$000()Landroid/util/Range;
@@ -8364,28 +15383,141 @@
 HSPLandroid/media/MediaCodecInfo;->access$600()Landroid/util/Range;
 HSPLandroid/media/MediaCodecInfo;->access$700()Landroid/util/Range;
 HSPLandroid/media/MediaCodecInfo;->checkPowerOfTwo(ILjava/lang/String;)I
+HSPLandroid/media/MediaCodecInfo;->getCapabilitiesForType(Ljava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;
 HSPLandroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
 HSPLandroid/media/MediaCodecInfo;->getSupportedTypes()[Ljava/lang/String;
 HSPLandroid/media/MediaCodecInfo;->isEncoder()Z
+HSPLandroid/media/MediaCodecInfo;->isHardwareAccelerated()Z
 HSPLandroid/media/MediaCodecInfo;->makeRegular()Landroid/media/MediaCodecInfo;
 HSPLandroid/media/MediaCodecList;-><init>(I)V
+HSPLandroid/media/MediaCodecList;->getCodecCount()I
+HSPLandroid/media/MediaCodecList;->getCodecInfoAt(I)Landroid/media/MediaCodecInfo;
 HSPLandroid/media/MediaCodecList;->getCodecInfos()[Landroid/media/MediaCodecInfo;
 HSPLandroid/media/MediaCodecList;->getGlobalSettings()Ljava/util/Map;
 HSPLandroid/media/MediaCodecList;->getNewCodecInfoAt(I)Landroid/media/MediaCodecInfo;
 HSPLandroid/media/MediaCodecList;->initCodecList()V
+HSPLandroid/media/MediaDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaDescription;
+HSPLandroid/media/MediaDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/MediaDescription$Builder;-><init>()V
+HSPLandroid/media/MediaDescription$Builder;->build()Landroid/media/MediaDescription;
+HSPLandroid/media/MediaDescription$Builder;->setDescription(Ljava/lang/CharSequence;)Landroid/media/MediaDescription$Builder;
+HSPLandroid/media/MediaDescription$Builder;->setIconBitmap(Landroid/graphics/Bitmap;)Landroid/media/MediaDescription$Builder;
+HSPLandroid/media/MediaDescription$Builder;->setIconUri(Landroid/net/Uri;)Landroid/media/MediaDescription$Builder;
+HSPLandroid/media/MediaDescription$Builder;->setMediaId(Ljava/lang/String;)Landroid/media/MediaDescription$Builder;
+HSPLandroid/media/MediaDescription$Builder;->setMediaUri(Landroid/net/Uri;)Landroid/media/MediaDescription$Builder;
+HSPLandroid/media/MediaDescription$Builder;->setSubtitle(Ljava/lang/CharSequence;)Landroid/media/MediaDescription$Builder;
+HSPLandroid/media/MediaDescription$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/media/MediaDescription$Builder;
+HSPLandroid/media/MediaDescription;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/media/MediaDescription;-><init>(Landroid/os/Parcel;Landroid/media/MediaDescription$1;)V
+HSPLandroid/media/MediaDescription;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/graphics/Bitmap;Landroid/net/Uri;Landroid/os/Bundle;Landroid/net/Uri;)V
+HSPLandroid/media/MediaDescription;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/graphics/Bitmap;Landroid/net/Uri;Landroid/os/Bundle;Landroid/net/Uri;Landroid/media/MediaDescription$1;)V
+HSPLandroid/media/MediaDescription;->toString()Ljava/lang/String;
 HSPLandroid/media/MediaFormat;-><init>()V
 HSPLandroid/media/MediaFormat;-><init>(Ljava/util/Map;)V
 HSPLandroid/media/MediaFormat;->containsKey(Ljava/lang/String;)Z
+HSPLandroid/media/MediaFormat;->createSubtitleFormat(Ljava/lang/String;Ljava/lang/String;)Landroid/media/MediaFormat;
+HSPLandroid/media/MediaFormat;->createVideoFormat(Ljava/lang/String;II)Landroid/media/MediaFormat;
+HSPLandroid/media/MediaFormat;->getInteger(Ljava/lang/String;)I
 HSPLandroid/media/MediaFormat;->getMap()Ljava/util/Map;
 HSPLandroid/media/MediaFormat;->getString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/media/MediaFormat;->setFloat(Ljava/lang/String;F)V
 HSPLandroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
 HSPLandroid/media/MediaFormat;->setString(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/media/MediaMetadata$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaMetadata;
 HSPLandroid/media/MediaMetadata$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/MediaMetadata$Builder;-><init>(Landroid/media/MediaMetadata;)V
+HSPLandroid/media/MediaMetadata$Builder;->build()Landroid/media/MediaMetadata;
+HSPLandroid/media/MediaMetadata;-><init>(Landroid/os/Bundle;)V
+HSPLandroid/media/MediaMetadata;-><init>(Landroid/os/Bundle;Landroid/media/MediaMetadata$1;)V
+HSPLandroid/media/MediaMetadata;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/media/MediaMetadata;-><init>(Landroid/os/Parcel;Landroid/media/MediaMetadata$1;)V
+HSPLandroid/media/MediaMetadata;->access$100(Landroid/media/MediaMetadata;)Landroid/os/Bundle;
+HSPLandroid/media/MediaMetadata;->equals(Ljava/lang/Object;)Z
+HSPLandroid/media/MediaMetadata;->getBitmap(Ljava/lang/String;)Landroid/graphics/Bitmap;
+HSPLandroid/media/MediaMetadata;->getDescription()Landroid/media/MediaDescription;
+HSPLandroid/media/MediaMetadata;->getLong(Ljava/lang/String;)J
+HSPLandroid/media/MediaMetadata;->getString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/media/MediaMetadata;->getText(Ljava/lang/String;)Ljava/lang/CharSequence;
+HSPLandroid/media/MediaMetadata;->size()I
+HSPLandroid/media/MediaMetadata;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/media/MediaMetadataRetriever;-><init>()V
+HSPLandroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String;
+HSPLandroid/media/MediaMetadataRetriever;->finalize()V
+HSPLandroid/media/MediaMetadataRetriever;->setDataSource(Ljava/io/FileDescriptor;)V
+HSPLandroid/media/MediaPlayer$2$1;-><init>(Landroid/media/MediaPlayer$2;)V
+HSPLandroid/media/MediaPlayer$2$1;->getSubtitleLooper()Landroid/os/Looper;
+HSPLandroid/media/MediaPlayer$2$1;->setSubtitleWidget(Landroid/media/SubtitleTrack$RenderingWidget;)V
+HSPLandroid/media/MediaPlayer$2;-><init>(Landroid/media/MediaPlayer;Landroid/media/MediaPlayer$TimeProvider;Landroid/os/HandlerThread;)V
+HSPLandroid/media/MediaPlayer$2;->run()V
+HSPLandroid/media/MediaPlayer$3;-><init>(Landroid/media/MediaPlayer;)V
+HSPLandroid/media/MediaPlayer$7;-><init>(Landroid/media/MediaPlayer;)V
+HSPLandroid/media/MediaPlayer$7;->onCompletion(Landroid/media/MediaPlayer;)V
+HSPLandroid/media/MediaPlayer$EventHandler;-><init>(Landroid/media/MediaPlayer;Landroid/media/MediaPlayer;Landroid/os/Looper;)V
+HSPLandroid/media/MediaPlayer$EventHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/media/MediaPlayer$TimeProvider$EventHandler;-><init>(Landroid/media/MediaPlayer$TimeProvider;Landroid/os/Looper;)V
+HSPLandroid/media/MediaPlayer$TimeProvider$EventHandler;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/media/MediaPlayer$TimeProvider;-><init>(Landroid/media/MediaPlayer;)V
+HSPLandroid/media/MediaPlayer$TimeProvider;->access$200(Landroid/media/MediaPlayer$TimeProvider;)Landroid/os/Handler;
+HSPLandroid/media/MediaPlayer$TimeProvider;->access$4700(Landroid/media/MediaPlayer$TimeProvider;)V
+HSPLandroid/media/MediaPlayer$TimeProvider;->close()V
+HSPLandroid/media/MediaPlayer$TimeProvider;->finalize()V
 HSPLandroid/media/MediaPlayer$TimeProvider;->getCurrentTimeUs(ZZ)J
+HSPLandroid/media/MediaPlayer$TimeProvider;->notifySeek()V
+HSPLandroid/media/MediaPlayer$TimeProvider;->onPaused(Z)V
+HSPLandroid/media/MediaPlayer$TimeProvider;->scheduleNotification(IJ)V
+HSPLandroid/media/MediaPlayer$TrackInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaPlayer$TrackInfo;
+HSPLandroid/media/MediaPlayer$TrackInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/MediaPlayer$TrackInfo$1;->newArray(I)[Landroid/media/MediaPlayer$TrackInfo;
+HSPLandroid/media/MediaPlayer$TrackInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/media/MediaPlayer$TrackInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/media/MediaPlayer$TrackInfo;->getTrackType()I
 HSPLandroid/media/MediaPlayer;-><init>()V
+HSPLandroid/media/MediaPlayer;->access$100(Landroid/media/MediaPlayer;)Landroid/media/SubtitleController;
+HSPLandroid/media/MediaPlayer;->access$1000(Landroid/media/MediaPlayer;)Landroid/media/MediaPlayer$OnPreparedListener;
+HSPLandroid/media/MediaPlayer;->access$102(Landroid/media/MediaPlayer;Landroid/media/SubtitleController;)Landroid/media/SubtitleController;
+HSPLandroid/media/MediaPlayer;->access$1500(Landroid/media/MediaPlayer;)Landroid/media/MediaPlayer$OnCompletionListener;
+HSPLandroid/media/MediaPlayer;->access$1600(Landroid/media/MediaPlayer;)Landroid/media/MediaPlayer$OnCompletionListener;
+HSPLandroid/media/MediaPlayer;->access$1700(Landroid/media/MediaPlayer;Z)V
+HSPLandroid/media/MediaPlayer;->access$3100(Landroid/media/MediaPlayer;)Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener;
+HSPLandroid/media/MediaPlayer;->access$3200(Landroid/media/MediaPlayer;)Landroid/os/Handler;
+HSPLandroid/media/MediaPlayer;->access$600(Landroid/media/MediaPlayer;)Landroid/media/MediaPlayer$TimeProvider;
+HSPLandroid/media/MediaPlayer;->access$800(Landroid/media/MediaPlayer;)J
+HSPLandroid/media/MediaPlayer;->access$900(Landroid/media/MediaPlayer;)V
+HSPLandroid/media/MediaPlayer;->attemptDataSource(Landroid/content/ContentResolver;Landroid/net/Uri;)Z
+HSPLandroid/media/MediaPlayer;->cleanDrmObj()V
+HSPLandroid/media/MediaPlayer;->finalize()V
+HSPLandroid/media/MediaPlayer;->getInbandTrackInfo()[Landroid/media/MediaPlayer$TrackInfo;
+HSPLandroid/media/MediaPlayer;->getMediaTimeProvider()Landroid/media/MediaTimeProvider;
+HSPLandroid/media/MediaPlayer;->invoke(Landroid/os/Parcel;Landroid/os/Parcel;)V
+HSPLandroid/media/MediaPlayer;->playerSetVolume(ZFF)V
+HSPLandroid/media/MediaPlayer;->populateInbandTracks()V
+HSPLandroid/media/MediaPlayer;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+HSPLandroid/media/MediaPlayer;->prepare()V
+HSPLandroid/media/MediaPlayer;->release()V
+HSPLandroid/media/MediaPlayer;->reset()V
+HSPLandroid/media/MediaPlayer;->resetDrmState()V
+HSPLandroid/media/MediaPlayer;->scanInternalSubtitleTracks()V
+HSPLandroid/media/MediaPlayer;->setAudioAttributes(Landroid/media/AudioAttributes;)V
+HSPLandroid/media/MediaPlayer;->setDataSource(Landroid/content/Context;Landroid/net/Uri;)V
+HSPLandroid/media/MediaPlayer;->setDataSource(Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map;Ljava/util/List;)V
+HSPLandroid/media/MediaPlayer;->setDataSource(Landroid/content/res/AssetFileDescriptor;)V
+HSPLandroid/media/MediaPlayer;->setDataSource(Ljava/io/FileDescriptor;)V
+HSPLandroid/media/MediaPlayer;->setDataSource(Ljava/io/FileDescriptor;JJ)V
+HSPLandroid/media/MediaPlayer;->setDataSource(Ljava/lang/String;)V
+HSPLandroid/media/MediaPlayer;->setDataSource(Ljava/lang/String;Ljava/util/Map;Ljava/util/List;)V
+HSPLandroid/media/MediaPlayer;->setDataSource(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljava/util/List;)V
+HSPLandroid/media/MediaPlayer;->setOnCompletionListener(Landroid/media/MediaPlayer$OnCompletionListener;)V
+HSPLandroid/media/MediaPlayer;->setOnErrorListener(Landroid/media/MediaPlayer$OnErrorListener;)V
+HSPLandroid/media/MediaPlayer;->setOnPreparedListener(Landroid/media/MediaPlayer$OnPreparedListener;)V
+HSPLandroid/media/MediaPlayer;->setSubtitleAnchor()V
+HSPLandroid/media/MediaPlayer;->setVolume(F)V
+HSPLandroid/media/MediaPlayer;->setVolume(FF)V
+HSPLandroid/media/MediaPlayer;->start()V
+HSPLandroid/media/MediaPlayer;->startImpl()V
 HSPLandroid/media/MediaPlayer;->stayAwake(Z)V
+HSPLandroid/media/MediaPlayer;->stop()V
+HSPLandroid/media/MediaPlayer;->updateSurfaceScreenOn()V
+HSPLandroid/media/MediaRecorder;->getAudioSourceMax()I
 HSPLandroid/media/MediaRouter$Callback;-><init>()V
 HSPLandroid/media/MediaRouter$CallbackInfo;-><init>(Landroid/media/MediaRouter$Callback;IILandroid/media/MediaRouter;)V
 HSPLandroid/media/MediaRouter$CallbackInfo;->filterRouteEvent(I)Z
@@ -8419,10 +15551,23 @@
 HSPLandroid/media/MediaRouter$RouteInfo;->isSelected()Z
 HSPLandroid/media/MediaRouter$RouteInfo;->matchesTypes(I)Z
 HSPLandroid/media/MediaRouter$RouteInfo;->resolveStatusCode()Z
+HSPLandroid/media/MediaRouter$RouteInfo;->routeUpdated()V
+HSPLandroid/media/MediaRouter$RouteInfo;->select()V
+HSPLandroid/media/MediaRouter$RouteInfo;->setTag(Ljava/lang/Object;)V
 HSPLandroid/media/MediaRouter$RouteInfo;->toString()Ljava/lang/String;
 HSPLandroid/media/MediaRouter$RouteInfo;->updatePresentationDisplay()Z
+HSPLandroid/media/MediaRouter$SimpleCallback;-><init>()V
+HSPLandroid/media/MediaRouter$Static$1$1;-><init>(Landroid/media/MediaRouter$Static$1;Landroid/media/AudioRoutesInfo;)V
+HSPLandroid/media/MediaRouter$Static$1$1;->run()V
 HSPLandroid/media/MediaRouter$Static$1;-><init>(Landroid/media/MediaRouter$Static;)V
+HSPLandroid/media/MediaRouter$Static$1;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V
+HSPLandroid/media/MediaRouter$Static$Client$1;-><init>(Landroid/media/MediaRouter$Static$Client;)V
+HSPLandroid/media/MediaRouter$Static$Client$1;->run()V
+HSPLandroid/media/MediaRouter$Static$Client$2;-><init>(Landroid/media/MediaRouter$Static$Client;)V
+HSPLandroid/media/MediaRouter$Static$Client$2;->run()V
 HSPLandroid/media/MediaRouter$Static$Client;-><init>(Landroid/media/MediaRouter$Static;)V
+HSPLandroid/media/MediaRouter$Static$Client;->onRestoreRoute()V
+HSPLandroid/media/MediaRouter$Static$Client;->onStateChanged()V
 HSPLandroid/media/MediaRouter$Static;-><init>(Landroid/content/Context;)V
 HSPLandroid/media/MediaRouter$Static;->getAllPresentationDisplays()[Landroid/view/Display;
 HSPLandroid/media/MediaRouter$Static;->isBluetoothA2dpOn()Z
@@ -8431,54 +15576,143 @@
 HSPLandroid/media/MediaRouter$Static;->publishClientDiscoveryRequest()V
 HSPLandroid/media/MediaRouter$Static;->publishClientSelectedRoute(Z)V
 HSPLandroid/media/MediaRouter$Static;->rebindAsUser(I)V
+HSPLandroid/media/MediaRouter$Static;->setRouterGroupId(Ljava/lang/String;)V
 HSPLandroid/media/MediaRouter$Static;->setSelectedRoute(Landroid/media/MediaRouter$RouteInfo;Z)V
 HSPLandroid/media/MediaRouter$Static;->startMonitoringRoutes(Landroid/content/Context;)V
 HSPLandroid/media/MediaRouter$Static;->updateAudioRoutes(Landroid/media/AudioRoutesInfo;)V
 HSPLandroid/media/MediaRouter$Static;->updateClientState()V
 HSPLandroid/media/MediaRouter$Static;->updateDiscoveryRequest()V
 HSPLandroid/media/MediaRouter$Static;->updatePresentationDisplays(I)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;-><init>(Landroid/media/MediaRouter$RouteCategory;)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->configureSessionVolume()V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setDescription(Ljava/lang/CharSequence;)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setName(Ljava/lang/CharSequence;)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setPlaybackStream(I)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setPlaybackType(I)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setVolume(I)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setVolumeCallback(Landroid/media/MediaRouter$VolumeCallback;)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setVolumeHandling(I)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setVolumeMax(I)V
 HSPLandroid/media/MediaRouter$VolumeCallback;-><init>()V
+HSPLandroid/media/MediaRouter$VolumeCallbackInfo;-><init>(Landroid/media/MediaRouter$VolumeCallback;Landroid/media/MediaRouter$RouteInfo;)V
 HSPLandroid/media/MediaRouter$VolumeChangeReceiver;-><init>()V
 HSPLandroid/media/MediaRouter$VolumeChangeReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLandroid/media/MediaRouter$WifiDisplayStatusChangedReceiver;-><init>()V
+HSPLandroid/media/MediaRouter2Manager$Callback;-><init>()V
+HSPLandroid/media/MediaRouter2Manager;-><clinit>()V
+HSPLandroid/media/MediaRouter2Manager;-><init>(Landroid/content/Context;)V
+HSPLandroid/media/MediaRouter2Manager;->getInstance(Landroid/content/Context;)Landroid/media/MediaRouter2Manager;
 HSPLandroid/media/MediaRouter;-><init>(Landroid/content/Context;)V
+HSPLandroid/media/MediaRouter;->access$100()Z
 HSPLandroid/media/MediaRouter;->addCallback(ILandroid/media/MediaRouter$Callback;I)V
 HSPLandroid/media/MediaRouter;->addRouteStatic(Landroid/media/MediaRouter$RouteInfo;)V
+HSPLandroid/media/MediaRouter;->addUserRoute(Landroid/media/MediaRouter$UserRouteInfo;)V
 HSPLandroid/media/MediaRouter;->createRouteCategory(Ljava/lang/CharSequence;Z)Landroid/media/MediaRouter$RouteCategory;
+HSPLandroid/media/MediaRouter;->createUserRoute(Landroid/media/MediaRouter$RouteCategory;)Landroid/media/MediaRouter$UserRouteInfo;
 HSPLandroid/media/MediaRouter;->dispatchRouteAdded(Landroid/media/MediaRouter$RouteInfo;)V
+HSPLandroid/media/MediaRouter;->dispatchRouteChanged(Landroid/media/MediaRouter$RouteInfo;)V
+HSPLandroid/media/MediaRouter;->dispatchRouteChanged(Landroid/media/MediaRouter$RouteInfo;I)V
+HSPLandroid/media/MediaRouter;->dispatchRouteRemoved(Landroid/media/MediaRouter$RouteInfo;)V
 HSPLandroid/media/MediaRouter;->dispatchRouteSelected(ILandroid/media/MediaRouter$RouteInfo;)V
+HSPLandroid/media/MediaRouter;->dispatchRouteUnselected(ILandroid/media/MediaRouter$RouteInfo;)V
 HSPLandroid/media/MediaRouter;->dispatchRouteVolumeChanged(Landroid/media/MediaRouter$RouteInfo;)V
 HSPLandroid/media/MediaRouter;->findCallbackInfo(Landroid/media/MediaRouter$Callback;)I
 HSPLandroid/media/MediaRouter;->getDefaultRoute()Landroid/media/MediaRouter$RouteInfo;
 HSPLandroid/media/MediaRouter;->getRouteAt(I)Landroid/media/MediaRouter$RouteInfo;
 HSPLandroid/media/MediaRouter;->getRouteCount()I
 HSPLandroid/media/MediaRouter;->getSelectedRoute(I)Landroid/media/MediaRouter$RouteInfo;
+HSPLandroid/media/MediaRouter;->removeCallback(Landroid/media/MediaRouter$Callback;)V
+HSPLandroid/media/MediaRouter;->removeRouteStatic(Landroid/media/MediaRouter$RouteInfo;)V
+HSPLandroid/media/MediaRouter;->removeUserRoute(Landroid/media/MediaRouter$UserRouteInfo;)V
 HSPLandroid/media/MediaRouter;->selectDefaultRouteStatic()V
 HSPLandroid/media/MediaRouter;->selectRoute(ILandroid/media/MediaRouter$RouteInfo;)V
 HSPLandroid/media/MediaRouter;->selectRouteStatic(ILandroid/media/MediaRouter$RouteInfo;Z)V
+HSPLandroid/media/MediaRouter;->setRouterGroupId(Ljava/lang/String;)V
+HSPLandroid/media/MediaRouter;->systemVolumeChanged(I)V
 HSPLandroid/media/MediaRouter;->typesToString(I)Ljava/lang/String;
+HSPLandroid/media/MediaRouter;->updateRoute(Landroid/media/MediaRouter$RouteInfo;)V
 HSPLandroid/media/MediaRouter;->updateWifiDisplayStatus(Landroid/hardware/display/WifiDisplayStatus;)V
+HSPLandroid/media/MediaRouterClientState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaRouterClientState;
+HSPLandroid/media/MediaRouterClientState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/MediaRouterClientState;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/media/PlayerBase$IPlayerWrapper;-><init>(Landroid/media/PlayerBase;)V
+HSPLandroid/media/PlayerBase$PlayerIdCard$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/PlayerBase$PlayerIdCard;
+HSPLandroid/media/PlayerBase$PlayerIdCard$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/media/PlayerBase$PlayerIdCard;-><init>(ILandroid/media/AudioAttributes;Landroid/media/IPlayer;)V
+HSPLandroid/media/PlayerBase$PlayerIdCard;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/media/PlayerBase$PlayerIdCard;-><init>(Landroid/os/Parcel;Landroid/media/PlayerBase$1;)V
 HSPLandroid/media/PlayerBase$PlayerIdCard;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/media/PlayerBase;-><init>(Landroid/media/AudioAttributes;I)V
+HSPLandroid/media/PlayerBase;->basePause()V
 HSPLandroid/media/PlayerBase;->baseRegisterPlayer()V
 HSPLandroid/media/PlayerBase;->baseRelease()V
+HSPLandroid/media/PlayerBase;->baseSetVolume(FF)V
 HSPLandroid/media/PlayerBase;->baseStart()V
+HSPLandroid/media/PlayerBase;->baseStop()V
+HSPLandroid/media/PlayerBase;->baseUpdateAudioAttributes(Landroid/media/AudioAttributes;)V
+HSPLandroid/media/PlayerBase;->deprecateStreamTypeForPlayback(ILjava/lang/String;Ljava/lang/String;)V
 HSPLandroid/media/PlayerBase;->getService()Landroid/media/IAudioService;
+HSPLandroid/media/PlayerBase;->getStartDelayMs()I
 HSPLandroid/media/PlayerBase;->isRestricted_sync()Z
+HSPLandroid/media/PlayerBase;->updateAppOpsPlayAudio_sync(Z)V
+HSPLandroid/media/PlayerBase;->updatePlayerVolume()V
 HSPLandroid/media/PlayerBase;->updateState(I)V
+HSPLandroid/media/Ringtone$MyOnCompletionListener;-><init>(Landroid/media/Ringtone;)V
+HSPLandroid/media/Ringtone;-><init>(Landroid/content/Context;Z)V
+HSPLandroid/media/Ringtone;->applyPlaybackProperties_sync()V
+HSPLandroid/media/Ringtone;->destroyLocalPlayer()V
+HSPLandroid/media/Ringtone;->finalize()V
+HSPLandroid/media/Ringtone;->play()V
+HSPLandroid/media/Ringtone;->setAudioAttributes(Landroid/media/AudioAttributes;)V
+HSPLandroid/media/Ringtone;->setUri(Landroid/net/Uri;Landroid/media/VolumeShaper$Configuration;)V
+HSPLandroid/media/RingtoneManager;->getActualDefaultRingtoneUri(Landroid/content/Context;I)Landroid/net/Uri;
+HSPLandroid/media/RingtoneManager;->getDefaultUri(I)Landroid/net/Uri;
+HSPLandroid/media/RingtoneManager;->getRingtone(Landroid/content/Context;Landroid/net/Uri;ILandroid/media/VolumeShaper$Configuration;)Landroid/media/Ringtone;
 HSPLandroid/media/SoundPool$Builder;-><init>()V
 HSPLandroid/media/SoundPool$Builder;->build()Landroid/media/SoundPool;
 HSPLandroid/media/SoundPool$Builder;->setAudioAttributes(Landroid/media/AudioAttributes;)Landroid/media/SoundPool$Builder;
 HSPLandroid/media/SoundPool$Builder;->setMaxStreams(I)Landroid/media/SoundPool$Builder;
+HSPLandroid/media/SoundPool$EventHandler;-><init>(Landroid/media/SoundPool;Landroid/os/Looper;)V
+HSPLandroid/media/SoundPool$EventHandler;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/media/SoundPool;-><init>(ILandroid/media/AudioAttributes;)V
+HSPLandroid/media/SoundPool;-><init>(ILandroid/media/AudioAttributes;Landroid/media/SoundPool$1;)V
+HSPLandroid/media/SoundPool;->access$000()Z
+HSPLandroid/media/SoundPool;->access$100(Landroid/media/SoundPool;)Ljava/lang/Object;
+HSPLandroid/media/SoundPool;->access$200(Landroid/media/SoundPool;)Landroid/media/SoundPool$OnLoadCompleteListener;
+HSPLandroid/media/SoundPool;->load(Landroid/content/Context;II)I
+HSPLandroid/media/SoundPool;->load(Ljava/lang/String;I)I
+HSPLandroid/media/SoundPool;->play(IFFIIF)I
+HSPLandroid/media/SoundPool;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+HSPLandroid/media/SoundPool;->setOnLoadCompleteListener(Landroid/media/SoundPool$OnLoadCompleteListener;)V
+HSPLandroid/media/SubtitleController$1;-><init>(Landroid/media/SubtitleController;)V
+HSPLandroid/media/SubtitleController$1;->handleMessage(Landroid/os/Message;)Z
+HSPLandroid/media/SubtitleController$2;-><init>(Landroid/media/SubtitleController;)V
+HSPLandroid/media/SubtitleController;-><init>(Landroid/content/Context;Landroid/media/MediaTimeProvider;Landroid/media/SubtitleController$Listener;)V
+HSPLandroid/media/SubtitleController;->access$100(Landroid/media/SubtitleController;)V
+HSPLandroid/media/SubtitleController;->access$200(Landroid/media/SubtitleController;Landroid/media/SubtitleTrack;)V
+HSPLandroid/media/SubtitleController;->access$300(Landroid/media/SubtitleController;)V
+HSPLandroid/media/SubtitleController;->checkAnchorLooper()V
+HSPLandroid/media/SubtitleController;->doHide()V
+HSPLandroid/media/SubtitleController;->doSelectDefaultTrack()V
+HSPLandroid/media/SubtitleController;->doSelectTrack(Landroid/media/SubtitleTrack;)V
+HSPLandroid/media/SubtitleController;->finalize()V
+HSPLandroid/media/SubtitleController;->getDefaultTrack()Landroid/media/SubtitleTrack;
+HSPLandroid/media/SubtitleController;->getRenderingWidget()Landroid/media/SubtitleTrack$RenderingWidget;
+HSPLandroid/media/SubtitleController;->hide()V
+HSPLandroid/media/SubtitleController;->processOnAnchor(Landroid/os/Message;)V
+HSPLandroid/media/SubtitleController;->reset()V
+HSPLandroid/media/SubtitleController;->selectDefaultTrack()V
+HSPLandroid/media/SubtitleController;->selectTrack(Landroid/media/SubtitleTrack;)Z
+HSPLandroid/media/SubtitleController;->setAnchor(Landroid/media/SubtitleController$Anchor;)V
+HSPLandroid/media/ToneGenerator;-><init>(II)V
 HSPLandroid/media/Utils$1;-><init>()V
 HSPLandroid/media/Utils$1;->compare(Landroid/util/Range;Landroid/util/Range;)I
 HSPLandroid/media/Utils$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLandroid/media/Utils$2;-><init>()V
 HSPLandroid/media/Utils$2;->compare(Landroid/util/Range;Landroid/util/Range;)I
 HSPLandroid/media/Utils$2;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/media/Utils$ListenerList;-><init>()V
+HSPLandroid/media/Utils$ListenerList;-><init>(ZZZ)V
 HSPLandroid/media/Utils;->alignRange(Landroid/util/Range;I)Landroid/util/Range;
 HSPLandroid/media/Utils;->binarySearchDistinctRanges([Landroid/util/Range;Ljava/lang/Comparable;)I
 HSPLandroid/media/Utils;->divUp(II)I
@@ -8494,63 +15728,300 @@
 HSPLandroid/media/Utils;->parseSizeRange(Ljava/lang/Object;)Landroid/util/Pair;
 HSPLandroid/media/Utils;->scaleRange(Landroid/util/Range;II)Landroid/util/Range;
 HSPLandroid/media/Utils;->sortDistinctRanges([Landroid/util/Range;)V
+HSPLandroid/media/VolumePolicy$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/VolumePolicy;
+HSPLandroid/media/VolumePolicy$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/VolumePolicy;-><init>(ZZZI)V
+HSPLandroid/media/VolumePolicy;->equals(Ljava/lang/Object;)Z
+HSPLandroid/media/VolumePolicy;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/media/VolumeShaper$Configuration$Builder;-><init>()V
+HSPLandroid/media/VolumeShaper$Configuration$Builder;->build()Landroid/media/VolumeShaper$Configuration;
+HSPLandroid/media/VolumeShaper$Configuration$Builder;->setCurve([F[F)Landroid/media/VolumeShaper$Configuration$Builder;
+HSPLandroid/media/VolumeShaper$Configuration$Builder;->setDuration(J)Landroid/media/VolumeShaper$Configuration$Builder;
+HSPLandroid/media/VolumeShaper$Configuration$Builder;->setId(I)Landroid/media/VolumeShaper$Configuration$Builder;
+HSPLandroid/media/VolumeShaper$Configuration$Builder;->setOptionFlags(I)Landroid/media/VolumeShaper$Configuration$Builder;
+HSPLandroid/media/VolumeShaper$Configuration;-><init>(I)V
+HSPLandroid/media/VolumeShaper$Configuration;-><init>(IIIDI[F[F)V
+HSPLandroid/media/VolumeShaper$Configuration;-><init>(IIIDI[F[FLandroid/media/VolumeShaper$1;)V
+HSPLandroid/media/VolumeShaper$Configuration;->access$100([F[FZZ)V
+HSPLandroid/media/VolumeShaper$Configuration;->checkCurveForErrors([F[FZ)Ljava/lang/String;
+HSPLandroid/media/VolumeShaper$Configuration;->checkCurveForErrorsAndThrowException([F[FZZ)V
+HSPLandroid/media/VolumeShaper$Operation$Builder;-><init>(Landroid/media/VolumeShaper$Operation;)V
+HSPLandroid/media/VolumeShaper$Operation$Builder;->build()Landroid/media/VolumeShaper$Operation;
+HSPLandroid/media/VolumeShaper$Operation$Builder;->createIfNeeded()Landroid/media/VolumeShaper$Operation$Builder;
+HSPLandroid/media/VolumeShaper$Operation$Builder;->setXOffset(F)Landroid/media/VolumeShaper$Operation$Builder;
+HSPLandroid/media/VolumeShaper$Operation;-><init>(IIF)V
+HSPLandroid/media/VolumeShaper$Operation;-><init>(IIFLandroid/media/VolumeShaper$1;)V
+HSPLandroid/media/VolumeShaper$Operation;->access$500(Landroid/media/VolumeShaper$Operation;)I
+HSPLandroid/media/VolumeShaper$Operation;->access$600(Landroid/media/VolumeShaper$Operation;)I
+HSPLandroid/media/VolumeShaper$Operation;->access$700(Landroid/media/VolumeShaper$Operation;)F
+HSPLandroid/media/audiofx/AudioEffect$Descriptor;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/media/audiofx/AudioEffect;-><clinit>()V
+HSPLandroid/media/audiofx/AudioEffect;->queryEffects()[Landroid/media/audiofx/AudioEffect$Descriptor;
 HSPLandroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;-><init>(II[Landroid/media/AudioAttributes;)V
 HSPLandroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;->getAudioAttributes()Landroid/media/AudioAttributes;
+HSPLandroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;->getStreamType()I
+HSPLandroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;->supportsAttributes(Landroid/media/AudioAttributes;)Z
 HSPLandroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;->supportsStreamType(I)Z
 HSPLandroid/media/audiopolicy/AudioProductStrategy;-><init>(Ljava/lang/String;I[Landroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;)V
+HSPLandroid/media/audiopolicy/AudioProductStrategy;->access$100(Landroid/media/AudioAttributes;Landroid/media/AudioAttributes;)Z
+HSPLandroid/media/audiopolicy/AudioProductStrategy;->attributesMatches(Landroid/media/AudioAttributes;Landroid/media/AudioAttributes;)Z
 HSPLandroid/media/audiopolicy/AudioProductStrategy;->getAudioAttributesForLegacyStreamType(I)Landroid/media/AudioAttributes;
 HSPLandroid/media/audiopolicy/AudioProductStrategy;->getAudioAttributesForStrategyWithLegacyStreamType(I)Landroid/media/AudioAttributes;
 HSPLandroid/media/audiopolicy/AudioProductStrategy;->getAudioProductStrategies()Ljava/util/List;
+HSPLandroid/media/audiopolicy/AudioProductStrategy;->getLegacyStreamTypeForAudioAttributes(Landroid/media/AudioAttributes;)I
+HSPLandroid/media/audiopolicy/AudioProductStrategy;->getLegacyStreamTypeForStrategyWithAudioAttributes(Landroid/media/AudioAttributes;)I
 HSPLandroid/media/audiopolicy/AudioProductStrategy;->initializeAudioProductStrategies()Ljava/util/List;
+HSPLandroid/media/audiopolicy/AudioProductStrategy;->supportsAudioAttributes(Landroid/media/AudioAttributes;)Z
+HSPLandroid/media/midi/IMidiManager$Stub;-><init>()V
+HPLandroid/media/midi/IMidiManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/media/projection/IMediaProjectionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/media/projection/IMediaProjectionManager$Stub$Proxy;->addCallback(Landroid/media/projection/IMediaProjectionWatcherCallback;)V
+HSPLandroid/media/projection/IMediaProjectionManager$Stub$Proxy;->getActiveProjectionInfo()Landroid/media/projection/MediaProjectionInfo;
+HSPLandroid/media/projection/IMediaProjectionManager$Stub;-><init>()V
+HSPLandroid/media/projection/IMediaProjectionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/projection/IMediaProjectionManager;
+HPLandroid/media/projection/IMediaProjectionManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/projection/IMediaProjectionWatcherCallback$Stub;-><init>()V
+HSPLandroid/media/projection/IMediaProjectionWatcherCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/media/projection/IMediaProjectionWatcherCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/projection/IMediaProjectionWatcherCallback;
+HSPLandroid/media/projection/MediaProjectionManager$Callback;-><init>()V
+HSPLandroid/media/projection/MediaProjectionManager$CallbackDelegate;-><init>(Landroid/media/projection/MediaProjectionManager$Callback;Landroid/os/Handler;)V
+HSPLandroid/media/projection/MediaProjectionManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/media/projection/MediaProjectionManager;->addCallback(Landroid/media/projection/MediaProjectionManager$Callback;Landroid/os/Handler;)V
+HSPLandroid/media/projection/MediaProjectionManager;->getActiveProjectionInfo()Landroid/media/projection/MediaProjectionInfo;
+HSPLandroid/media/session/IActiveSessionsListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/media/session/IActiveSessionsListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/session/IActiveSessionsListener$Stub$Proxy;->onActiveSessionsChanged(Ljava/util/List;)V
+HSPLandroid/media/session/IActiveSessionsListener$Stub;-><init>()V
+HSPLandroid/media/session/IActiveSessionsListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/session/IActiveSessionsListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/IActiveSessionsListener;
+HSPLandroid/media/session/IActiveSessionsListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/media/session/IOnMediaKeyEventDispatchedListener$Stub;-><init>()V
+PLandroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub;-><init>()V
+PLandroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/IOnMediaKeyEventSessionChangedListener;
+HSPLandroid/media/session/ISession$Stub;-><init>()V
+HPLandroid/media/session/ISession$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/session/ISession$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/session/ISessionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/media/session/ISessionCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/media/session/ISessionCallback$Stub;-><init>()V
 HSPLandroid/media/session/ISessionCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/media/session/ISessionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionCallback;
 HSPLandroid/media/session/ISessionController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/media/session/ISessionController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/session/ISessionController$Stub$Proxy;->getMetadata()Landroid/media/MediaMetadata;
+HSPLandroid/media/session/ISessionController$Stub$Proxy;->getPackageName()Ljava/lang/String;
+HSPLandroid/media/session/ISessionController$Stub$Proxy;->getPlaybackState()Landroid/media/session/PlaybackState;
+HSPLandroid/media/session/ISessionController$Stub$Proxy;->getQueue()Landroid/content/pm/ParceledListSlice;
+HSPLandroid/media/session/ISessionController$Stub$Proxy;->getVolumeAttributes()Landroid/media/session/MediaController$PlaybackInfo;
+HSPLandroid/media/session/ISessionController$Stub$Proxy;->registerCallback(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+HSPLandroid/media/session/ISessionController$Stub$Proxy;->unregisterCallback(Landroid/media/session/ISessionControllerCallback;)V
+HSPLandroid/media/session/ISessionController$Stub;-><init>()V
+HPLandroid/media/session/ISessionController$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/media/session/ISessionController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionController;
+HPLandroid/media/session/ISessionController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/media/session/ISessionControllerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V
+HPLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->onSessionDestroyed()V
 HSPLandroid/media/session/ISessionControllerCallback$Stub;-><init>()V
+HSPLandroid/media/session/ISessionControllerCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/session/ISessionControllerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionControllerCallback;
+HSPLandroid/media/session/ISessionControllerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/media/session/ISessionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/media/session/ISessionManager$Stub$Proxy;->addSessionsListener(Landroid/media/session/IActiveSessionsListener;Landroid/content/ComponentName;I)V
+HSPLandroid/media/session/ISessionManager$Stub$Proxy;->dispatchVolumeKeyEvent(Ljava/lang/String;Ljava/lang/String;ZLandroid/view/KeyEvent;IZ)V
+HSPLandroid/media/session/ISessionManager$Stub$Proxy;->getSessions(Landroid/content/ComponentName;I)Ljava/util/List;
+HSPLandroid/media/session/ISessionManager$Stub$Proxy;->registerRemoteVolumeController(Landroid/media/IRemoteVolumeController;)V
+HSPLandroid/media/session/ISessionManager$Stub$Proxy;->removeSessionsListener(Landroid/media/session/IActiveSessionsListener;)V
+HSPLandroid/media/session/ISessionManager$Stub;-><init>()V
 HSPLandroid/media/session/ISessionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionManager;
+HSPLandroid/media/session/ISessionManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/media/session/MediaController$Callback;-><init>()V
+HSPLandroid/media/session/MediaController$Callback;->onMetadataChanged(Landroid/media/MediaMetadata;)V
 HSPLandroid/media/session/MediaController$CallbackStub;-><init>(Landroid/media/session/MediaController;)V
+HSPLandroid/media/session/MediaController$CallbackStub;->onExtrasChanged(Landroid/os/Bundle;)V
+HSPLandroid/media/session/MediaController$CallbackStub;->onMetadataChanged(Landroid/media/MediaMetadata;)V
+HSPLandroid/media/session/MediaController$CallbackStub;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V
+HSPLandroid/media/session/MediaController$CallbackStub;->onQueueChanged(Landroid/content/pm/ParceledListSlice;)V
+HSPLandroid/media/session/MediaController$CallbackStub;->onSessionDestroyed()V
+HSPLandroid/media/session/MediaController$MessageHandler;-><init>(Landroid/os/Looper;Landroid/media/session/MediaController$Callback;)V
+HSPLandroid/media/session/MediaController$MessageHandler;->access$102(Landroid/media/session/MediaController$MessageHandler;Z)Z
+HSPLandroid/media/session/MediaController$MessageHandler;->access$200(Landroid/media/session/MediaController$MessageHandler;)Landroid/media/session/MediaController$Callback;
+HSPLandroid/media/session/MediaController$MessageHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/media/session/MediaController$MessageHandler;->post(ILjava/lang/Object;Landroid/os/Bundle;)V
+HSPLandroid/media/session/MediaController$PlaybackInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaController$PlaybackInfo;
+HSPLandroid/media/session/MediaController$PlaybackInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/session/MediaController$PlaybackInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/media/session/MediaController$PlaybackInfo;->getPlaybackType()I
+HPLandroid/media/session/MediaController$PlaybackInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/media/session/MediaController$TransportControls;-><init>(Landroid/media/session/MediaController;)V
 HSPLandroid/media/session/MediaController$TransportControls;-><init>(Landroid/media/session/MediaController;Landroid/media/session/MediaController$1;)V
 HSPLandroid/media/session/MediaController;-><init>(Landroid/content/Context;Landroid/media/session/MediaSession$Token;)V
+HSPLandroid/media/session/MediaController;->access$500(Landroid/media/session/MediaController;ILjava/lang/Object;Landroid/os/Bundle;)V
+HSPLandroid/media/session/MediaController;->addCallbackLocked(Landroid/media/session/MediaController$Callback;Landroid/os/Handler;)V
+HSPLandroid/media/session/MediaController;->getHandlerForCallbackLocked(Landroid/media/session/MediaController$Callback;)Landroid/media/session/MediaController$MessageHandler;
+HSPLandroid/media/session/MediaController;->getMetadata()Landroid/media/MediaMetadata;
+HSPLandroid/media/session/MediaController;->getPackageName()Ljava/lang/String;
+HSPLandroid/media/session/MediaController;->getPlaybackInfo()Landroid/media/session/MediaController$PlaybackInfo;
+HSPLandroid/media/session/MediaController;->getPlaybackState()Landroid/media/session/PlaybackState;
+HSPLandroid/media/session/MediaController;->getQueue()Ljava/util/List;
+HSPLandroid/media/session/MediaController;->getSessionToken()Landroid/media/session/MediaSession$Token;
+HSPLandroid/media/session/MediaController;->getTransportControls()Landroid/media/session/MediaController$TransportControls;
+HSPLandroid/media/session/MediaController;->postMessage(ILjava/lang/Object;Landroid/os/Bundle;)V
+HSPLandroid/media/session/MediaController;->registerCallback(Landroid/media/session/MediaController$Callback;Landroid/os/Handler;)V
+HSPLandroid/media/session/MediaController;->removeCallbackLocked(Landroid/media/session/MediaController$Callback;)Z
+HSPLandroid/media/session/MediaController;->unregisterCallback(Landroid/media/session/MediaController$Callback;)V
 HSPLandroid/media/session/MediaSession$Callback;-><init>()V
 HSPLandroid/media/session/MediaSession$Callback;->access$102(Landroid/media/session/MediaSession$Callback;Landroid/media/session/MediaSession;)Landroid/media/session/MediaSession;
 HSPLandroid/media/session/MediaSession$Callback;->access$502(Landroid/media/session/MediaSession$Callback;Landroid/media/session/MediaSession$CallbackMessageHandler;)Landroid/media/session/MediaSession$CallbackMessageHandler;
 HSPLandroid/media/session/MediaSession$CallbackMessageHandler;-><init>(Landroid/media/session/MediaSession;Landroid/os/Looper;Landroid/media/session/MediaSession$Callback;)V
 HSPLandroid/media/session/MediaSession$CallbackStub;-><init>(Landroid/media/session/MediaSession;)V
+HSPLandroid/media/session/MediaSession$QueueItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaSession$QueueItem;
+HSPLandroid/media/session/MediaSession$QueueItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/session/MediaSession$QueueItem;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/media/session/MediaSession$QueueItem;-><init>(Landroid/os/Parcel;Landroid/media/session/MediaSession$1;)V
 HSPLandroid/media/session/MediaSession$Token$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaSession$Token;
 HSPLandroid/media/session/MediaSession$Token$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/media/session/MediaSession$Token;-><init>(Landroid/media/session/ISessionController;)V
 HSPLandroid/media/session/MediaSession$Token;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/media/session/MediaSession$Token;->equals(Ljava/lang/Object;)Z
 HSPLandroid/media/session/MediaSession$Token;->getBinder()Landroid/media/session/ISessionController;
+HSPLandroid/media/session/MediaSession$Token;->hashCode()I
+HSPLandroid/media/session/MediaSession$Token;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/media/session/MediaSession;-><init>(Landroid/content/Context;Ljava/lang/String;)V
 HSPLandroid/media/session/MediaSession;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)V
 HSPLandroid/media/session/MediaSession;->hasCustomParcelable(Landroid/os/Bundle;)Z
+HSPLandroid/media/session/MediaSession;->isActive()Z
+HPLandroid/media/session/MediaSession;->isActiveState(I)Z
+HSPLandroid/media/session/MediaSession;->setActive(Z)V
+HSPLandroid/media/session/MediaSession;->setCallback(Landroid/media/session/MediaSession$Callback;)V
 HSPLandroid/media/session/MediaSession;->setCallback(Landroid/media/session/MediaSession$Callback;Landroid/os/Handler;)V
 HSPLandroid/media/session/MediaSession;->setFlags(I)V
+HSPLandroid/media/session/MediaSession;->setPlaybackToLocal(Landroid/media/AudioAttributes;)V
+HSPLandroid/media/session/MediaSessionLegacyHelper;-><clinit>()V
+HSPLandroid/media/session/MediaSessionLegacyHelper;-><init>(Landroid/content/Context;)V
+HSPLandroid/media/session/MediaSessionLegacyHelper;->getHelper(Landroid/content/Context;)Landroid/media/session/MediaSessionLegacyHelper;
 HSPLandroid/media/session/MediaSessionManager$OnMediaKeyEventDispatchedListenerStub;-><init>(Landroid/media/session/MediaSessionManager;)V
 HSPLandroid/media/session/MediaSessionManager$OnMediaKeyEventDispatchedListenerStub;-><init>(Landroid/media/session/MediaSessionManager;Landroid/media/session/MediaSessionManager$1;)V
 HSPLandroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub;-><init>(Landroid/media/session/MediaSessionManager;)V
 HSPLandroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub;-><init>(Landroid/media/session/MediaSessionManager;Landroid/media/session/MediaSessionManager$1;)V
+HSPLandroid/media/session/MediaSessionManager$RemoteUserInfo;-><init>(Ljava/lang/String;II)V
+HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper$1$1;-><init>(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper$1;Ljava/util/List;)V
+HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper$1$1;->run()V
+HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper$1;-><init>(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;)V
+HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper$1;->onActiveSessionsChanged(Ljava/util/List;)V
+HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;-><init>(Landroid/content/Context;Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Landroid/os/Handler;)V
+HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;->access$200(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;)Landroid/media/session/IActiveSessionsListener$Stub;
+HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;->access$300(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;)V
+HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;->access$400(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;)Landroid/os/Handler;
+HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;->access$500(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;)Landroid/content/Context;
+HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;->access$600(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;)Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;
+HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;->release()V
 HSPLandroid/media/session/MediaSessionManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/media/session/MediaSessionManager;->addOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Landroid/content/ComponentName;ILandroid/os/Handler;)V
+HSPLandroid/media/session/MediaSessionManager;->addOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Landroid/content/ComponentName;Landroid/os/Handler;)V
 HSPLandroid/media/session/MediaSessionManager;->createSession(Landroid/media/session/MediaSession$CallbackStub;Ljava/lang/String;Landroid/os/Bundle;)Landroid/media/session/ISession;
+HSPLandroid/media/session/MediaSessionManager;->dispatchVolumeKeyEventAsSystemService(Landroid/view/KeyEvent;I)V
+HSPLandroid/media/session/MediaSessionManager;->dispatchVolumeKeyEventInternal(ZLandroid/view/KeyEvent;IZ)V
+HSPLandroid/media/session/MediaSessionManager;->getActiveSessions(Landroid/content/ComponentName;)Ljava/util/List;
+HSPLandroid/media/session/MediaSessionManager;->getActiveSessionsForUser(Landroid/content/ComponentName;I)Ljava/util/List;
+HSPLandroid/media/session/MediaSessionManager;->registerRemoteVolumeController(Landroid/media/IRemoteVolumeController;)V
+HSPLandroid/media/session/MediaSessionManager;->removeOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;)V
 HSPLandroid/media/session/PlaybackState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/PlaybackState;
 HSPLandroid/media/session/PlaybackState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/media/session/PlaybackState$Builder;->build()Landroid/media/session/PlaybackState;
+HSPLandroid/media/session/PlaybackState$Builder;->setState(IJFJ)Landroid/media/session/PlaybackState$Builder;
+HSPLandroid/media/session/PlaybackState$CustomAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/PlaybackState$CustomAction;
+HSPLandroid/media/session/PlaybackState$CustomAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/session/PlaybackState$CustomAction;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/media/session/PlaybackState$CustomAction;-><init>(Landroid/os/Parcel;Landroid/media/session/PlaybackState$1;)V
+HSPLandroid/media/session/PlaybackState$CustomAction;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/media/session/PlaybackState;-><init>(IJJFJJLjava/util/List;JLjava/lang/CharSequence;Landroid/os/Bundle;)V
+HSPLandroid/media/session/PlaybackState;-><init>(IJJFJJLjava/util/List;JLjava/lang/CharSequence;Landroid/os/Bundle;Landroid/media/session/PlaybackState$1;)V
 HSPLandroid/media/session/PlaybackState;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/media/session/PlaybackState;-><init>(Landroid/os/Parcel;Landroid/media/session/PlaybackState$1;)V
+HSPLandroid/media/session/PlaybackState;->getActions()J
+HSPLandroid/media/session/PlaybackState;->getPosition()J
+HSPLandroid/media/session/PlaybackState;->getState()I
 HSPLandroid/media/session/PlaybackState;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/media/soundtrigger_middleware/ISoundTriggerCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService$Stub;-><init>()V
+HSPLandroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService;
+HPLandroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/soundtrigger_middleware/ISoundTriggerModule$Stub;-><init>()V
+PLandroid/media/soundtrigger_middleware/ISoundTriggerModule$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/media/soundtrigger_middleware/RecognitionConfig$1;-><init>()V
+PLandroid/media/soundtrigger_middleware/RecognitionConfig;-><clinit>()V
+HPLandroid/media/soundtrigger_middleware/RecognitionConfig;-><init>()V
+PLandroid/media/soundtrigger_middleware/SoundModel$1;-><init>()V
+PLandroid/media/soundtrigger_middleware/SoundModel;-><clinit>()V
+HPLandroid/media/soundtrigger_middleware/SoundModel;-><init>()V
+HSPLandroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor$1;-><init>()V
+HSPLandroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;-><clinit>()V
+HSPLandroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;-><init>()V
+HSPLandroid/media/soundtrigger_middleware/SoundTriggerModuleProperties$1;-><init>()V
+HSPLandroid/media/soundtrigger_middleware/SoundTriggerModuleProperties;-><clinit>()V
+HSPLandroid/media/soundtrigger_middleware/SoundTriggerModuleProperties;-><init>()V
 HSPLandroid/metrics/LogMaker;-><init>(I)V
+HSPLandroid/metrics/LogMaker;-><init>([Ljava/lang/Object;)V
 HSPLandroid/metrics/LogMaker;->addTaggedData(ILjava/lang/Object;)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->clearTaggedData(I)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->deserialize([Ljava/lang/Object;)V
+HSPLandroid/metrics/LogMaker;->getCategory()I
+HSPLandroid/metrics/LogMaker;->getCounterBucket()J
+HSPLandroid/metrics/LogMaker;->getCounterName()Ljava/lang/String;
+HSPLandroid/metrics/LogMaker;->getCounterValue()I
 HSPLandroid/metrics/LogMaker;->getEntries()Landroid/util/SparseArray;
+HSPLandroid/metrics/LogMaker;->getTimestamp()J
 HSPLandroid/metrics/LogMaker;->getType()I
+HSPLandroid/metrics/LogMaker;->isLongCounterBucket()Z
 HSPLandroid/metrics/LogMaker;->isValidValue(Ljava/lang/Object;)Z
 HSPLandroid/metrics/LogMaker;->serialize()[Ljava/lang/Object;
 HSPLandroid/metrics/LogMaker;->setCategory(I)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->setComponentName(Landroid/content/ComponentName;)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->setCounterBucket(I)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->setCounterName(Ljava/lang/String;)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->setCounterValue(I)Landroid/metrics/LogMaker;
+HPLandroid/metrics/LogMaker;->setLatency(J)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->setPackageName(Ljava/lang/String;)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->setProcessId(I)Landroid/metrics/LogMaker;
 HSPLandroid/metrics/LogMaker;->setSubtype(I)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->setTimestamp(J)Landroid/metrics/LogMaker;
 HSPLandroid/metrics/LogMaker;->setType(I)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->setUid(I)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/MetricsReader$Event;-><init>(Landroid/util/EventLog$Event;)V
+HSPLandroid/metrics/MetricsReader$Event;->getData()Ljava/lang/Object;
+HSPLandroid/metrics/MetricsReader$Event;->getProcessId()I
+HSPLandroid/metrics/MetricsReader$Event;->getTimeMillis()J
+HSPLandroid/metrics/MetricsReader$Event;->getUid()I
+HSPLandroid/metrics/MetricsReader$LogReader;-><init>()V
+HSPLandroid/metrics/MetricsReader$LogReader;->readEvents([IJLjava/util/Collection;)V
+HSPLandroid/metrics/MetricsReader$LogReader;->writeCheckpoint(I)V
+HSPLandroid/metrics/MetricsReader;-><init>()V
+HSPLandroid/metrics/MetricsReader;->checkpoint()V
+HSPLandroid/metrics/MetricsReader;->hasNext()Z
+HSPLandroid/metrics/MetricsReader;->next()Landroid/metrics/LogMaker;
+HSPLandroid/metrics/MetricsReader;->read(J)V
+HSPLandroid/metrics/MetricsReader;->reset()V
 HSPLandroid/net/-$$Lambda$FpGXkd3pLxeXY58eJ_84mi1PLWQ;->nameOf(I)Ljava/lang/String;
+HSPLandroid/net/-$$Lambda$Network$KD6DxaMRJIcajhj36TU1K7lJnHQ;-><init>(Landroid/net/Network;)V
+HSPLandroid/net/-$$Lambda$Network$KD6DxaMRJIcajhj36TU1K7lJnHQ;->lookup(Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/net/-$$Lambda$NetworkScoreManager$NetworkScoreCallbackProxy$PGkg1UrNyisY0wAts4zoVuYRgkw;-><init>(Landroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;)V
+HSPLandroid/net/-$$Lambda$NetworkScoreManager$NetworkScoreCallbackProxy$PGkg1UrNyisY0wAts4zoVuYRgkw;->run()V
+HPLandroid/net/-$$Lambda$NetworkScoreManager$NetworkScoreCallbackProxy$TEOhIiY2C9y8yDWwRR6zm_12TGY;-><init>(Landroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;Ljava/util/List;)V
+HPLandroid/net/-$$Lambda$NetworkScoreManager$NetworkScoreCallbackProxy$TEOhIiY2C9y8yDWwRR6zm_12TGY;->run()V
+HSPLandroid/net/-$$Lambda$NetworkStats$3raHHJpnJwsEAXnRXF2pK8-UDFY;-><clinit>()V
+HSPLandroid/net/-$$Lambda$NetworkStats$3raHHJpnJwsEAXnRXF2pK8-UDFY;-><init>()V
+HSPLandroid/net/-$$Lambda$NetworkStats$3raHHJpnJwsEAXnRXF2pK8-UDFY;->test(Ljava/lang/Object;)Z
+HPLandroid/net/-$$Lambda$NetworkStats$xvFSsVoR0k5s7Fhw1yPDPVIpx8A;-><init>(II[Ljava/lang/String;)V
+HPLandroid/net/-$$Lambda$NetworkStats$xvFSsVoR0k5s7Fhw1yPDPVIpx8A;->test(Ljava/lang/Object;)Z
 HSPLandroid/net/-$$Lambda$p1_56lwnt1xBuY1muPblbN1Dtkw;->nameOf(I)Ljava/lang/String;
+HSPLandroid/net/ConnectivityManager$1;-><init>(Landroid/net/ConnectivityManager;Landroid/net/ConnectivityManager$OnNetworkActiveListener;)V
+HSPLandroid/net/ConnectivityManager$1;->onNetworkActive()V
 HSPLandroid/net/ConnectivityManager$CallbackHandler;-><init>(Landroid/net/ConnectivityManager;Landroid/os/Handler;)V
 HSPLandroid/net/ConnectivityManager$CallbackHandler;-><init>(Landroid/net/ConnectivityManager;Landroid/os/Looper;)V
 HSPLandroid/net/ConnectivityManager$CallbackHandler;->getObject(Landroid/os/Message;Ljava/lang/Class;)Ljava/lang/Object;
@@ -8564,40 +16035,74 @@
 HSPLandroid/net/ConnectivityManager$NetworkCallback;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
 HSPLandroid/net/ConnectivityManager$NetworkCallback;->onLinkPropertiesChanged(Landroid/net/Network;Landroid/net/LinkProperties;)V
 HSPLandroid/net/ConnectivityManager$NetworkCallback;->onLosing(Landroid/net/Network;I)V
+HSPLandroid/net/ConnectivityManager$NetworkCallback;->onLost(Landroid/net/Network;)V
 HSPLandroid/net/ConnectivityManager$NetworkCallback;->onNetworkResumed(Landroid/net/Network;)V
 HSPLandroid/net/ConnectivityManager$NetworkCallback;->onNetworkSuspended(Landroid/net/Network;)V
 HSPLandroid/net/ConnectivityManager$NetworkCallback;->onPreCheck(Landroid/net/Network;)V
+HSPLandroid/net/ConnectivityManager$OnStartTetheringCallback;-><init>()V
 HSPLandroid/net/ConnectivityManager;-><init>(Landroid/content/Context;Landroid/net/IConnectivityManager;)V
 HSPLandroid/net/ConnectivityManager;->access$800()Ljava/util/HashMap;
+HSPLandroid/net/ConnectivityManager;->addDefaultNetworkActiveListener(Landroid/net/ConnectivityManager$OnNetworkActiveListener;)V
 HSPLandroid/net/ConnectivityManager;->checkCallbackNotNull(Landroid/net/ConnectivityManager$NetworkCallback;)V
+HSPLandroid/net/ConnectivityManager;->checkTimeout(I)V
+HSPLandroid/net/ConnectivityManager;->enforceChangePermission(Landroid/content/Context;)V
+HSPLandroid/net/ConnectivityManager;->from(Landroid/content/Context;)Landroid/net/ConnectivityManager;
 HSPLandroid/net/ConnectivityManager;->getActiveNetwork()Landroid/net/Network;
+HSPLandroid/net/ConnectivityManager;->getActiveNetworkForUid(I)Landroid/net/Network;
+HSPLandroid/net/ConnectivityManager;->getActiveNetworkForUid(IZ)Landroid/net/Network;
 HSPLandroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
+HSPLandroid/net/ConnectivityManager;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
 HSPLandroid/net/ConnectivityManager;->getAllNetworks()[Landroid/net/Network;
+HSPLandroid/net/ConnectivityManager;->getAlwaysOnVpnPackageForUser(I)Ljava/lang/String;
+HSPLandroid/net/ConnectivityManager;->getBackgroundDataSetting()Z
 HSPLandroid/net/ConnectivityManager;->getBoundNetworkForProcess()Landroid/net/Network;
+HSPLandroid/net/ConnectivityManager;->getCallbackName(I)Ljava/lang/String;
 HSPLandroid/net/ConnectivityManager;->getDefaultHandler()Landroid/net/ConnectivityManager$CallbackHandler;
+HSPLandroid/net/ConnectivityManager;->getDefaultNetworkCapabilitiesForUser(I)[Landroid/net/NetworkCapabilities;
 HSPLandroid/net/ConnectivityManager;->getDefaultProxy()Landroid/net/ProxyInfo;
+HSPLandroid/net/ConnectivityManager;->getInstanceOrNull()Landroid/net/ConnectivityManager;
 HSPLandroid/net/ConnectivityManager;->getLinkProperties(Landroid/net/Network;)Landroid/net/LinkProperties;
 HSPLandroid/net/ConnectivityManager;->getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
 HSPLandroid/net/ConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
 HSPLandroid/net/ConnectivityManager;->getNetworkInfo(Landroid/net/Network;)Landroid/net/NetworkInfo;
 HSPLandroid/net/ConnectivityManager;->getNetworkInfoForUid(Landroid/net/Network;IZ)Landroid/net/NetworkInfo;
+HSPLandroid/net/ConnectivityManager;->getNetworkManagementService()Landroid/os/INetworkManagementService;
 HSPLandroid/net/ConnectivityManager;->getNetworkPolicyManager()Landroid/net/INetworkPolicyManager;
+HPLandroid/net/ConnectivityManager;->getNetworkTypeName(I)Ljava/lang/String;
 HSPLandroid/net/ConnectivityManager;->getProcessDefaultNetwork()Landroid/net/Network;
 HSPLandroid/net/ConnectivityManager;->getProxyForNetwork(Landroid/net/Network;)Landroid/net/ProxyInfo;
 HSPLandroid/net/ConnectivityManager;->getRestrictBackgroundStatus()I
+HSPLandroid/net/ConnectivityManager;->getTetherableWifiRegexs()[Ljava/lang/String;
+HSPLandroid/net/ConnectivityManager;->getTetheringManager()Landroid/net/TetheringManager;
 HSPLandroid/net/ConnectivityManager;->inferLegacyTypeForNetworkCapabilities(Landroid/net/NetworkCapabilities;)I
 HSPLandroid/net/ConnectivityManager;->isActiveNetworkMetered()Z
+HSPLandroid/net/ConnectivityManager;->isDefaultNetworkActive()Z
 HSPLandroid/net/ConnectivityManager;->isNetworkSupported(I)Z
+HPLandroid/net/ConnectivityManager;->isNetworkTypeMobile(I)Z
 HSPLandroid/net/ConnectivityManager;->isNetworkTypeValid(I)Z
+HPLandroid/net/ConnectivityManager;->isNetworkTypeWifi(I)Z
+HSPLandroid/net/ConnectivityManager;->isTetheringSupported()Z
+HPLandroid/net/ConnectivityManager;->networkCapabilitiesForFeature(ILjava/lang/String;)Landroid/net/NetworkCapabilities;
+HPLandroid/net/ConnectivityManager;->networkCapabilitiesForType(I)Landroid/net/NetworkCapabilities;
 HSPLandroid/net/ConnectivityManager;->printStackTrace()V
 HSPLandroid/net/ConnectivityManager;->registerDefaultNetworkCallback(Landroid/net/ConnectivityManager$NetworkCallback;)V
 HSPLandroid/net/ConnectivityManager;->registerDefaultNetworkCallback(Landroid/net/ConnectivityManager$NetworkCallback;Landroid/os/Handler;)V
+HSPLandroid/net/ConnectivityManager;->registerNetworkAgent(Landroid/os/Messenger;Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;Landroid/net/NetworkScore;Landroid/net/NetworkAgentConfig;I)Landroid/net/Network;
 HSPLandroid/net/ConnectivityManager;->registerNetworkCallback(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;)V
 HSPLandroid/net/ConnectivityManager;->registerNetworkCallback(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;Landroid/os/Handler;)V
+HSPLandroid/net/ConnectivityManager;->registerNetworkProvider(Landroid/net/NetworkProvider;)I
+HSPLandroid/net/ConnectivityManager;->reportNetworkConnectivity(Landroid/net/Network;Z)V
+HSPLandroid/net/ConnectivityManager;->requestNetwork(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;)V
 HSPLandroid/net/ConnectivityManager;->requestNetwork(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;IILandroid/os/Handler;)V
 HSPLandroid/net/ConnectivityManager;->requestNetwork(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;Landroid/os/Handler;)V
+HPLandroid/net/ConnectivityManager;->requestNetwork(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;Landroid/os/Handler;I)V
 HSPLandroid/net/ConnectivityManager;->sendRequestForNetwork(Landroid/net/NetworkCapabilities;Landroid/net/ConnectivityManager$NetworkCallback;IIILandroid/net/ConnectivityManager$CallbackHandler;)Landroid/net/NetworkRequest;
 HSPLandroid/net/ConnectivityManager;->unregisterNetworkCallback(Landroid/net/ConnectivityManager$NetworkCallback;)V
+HPLandroid/net/ConnectivityMetricsEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/ConnectivityMetricsEvent;
+HPLandroid/net/ConnectivityMetricsEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/ConnectivityMetricsEvent;-><init>()V
+HPLandroid/net/ConnectivityMetricsEvent;-><init>(Landroid/os/Parcel;)V
+HPLandroid/net/ConnectivityMetricsEvent;-><init>(Landroid/os/Parcel;Landroid/net/ConnectivityMetricsEvent$1;)V
 HSPLandroid/net/ConnectivityThread$Singleton;-><clinit>()V
 HSPLandroid/net/ConnectivityThread$Singleton;->access$100()Landroid/net/ConnectivityThread;
 HSPLandroid/net/ConnectivityThread;-><init>()V
@@ -8607,29 +16112,99 @@
 HSPLandroid/net/Credentials;-><init>(III)V
 HSPLandroid/net/Credentials;->getPid()I
 HSPLandroid/net/Credentials;->getUid()I
+HSPLandroid/net/DataUsageRequest;-><init>(ILandroid/net/NetworkTemplate;J)V
+HSPLandroid/net/DhcpInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/DhcpInfo;
+HSPLandroid/net/DhcpInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/DhcpInfo;-><init>()V
+HPLandroid/net/DhcpResults;-><init>(Landroid/net/StaticIpConfiguration;)V
+PLandroid/net/EventLogTags;->writeNtpSuccess(Ljava/lang/String;JJ)V
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getActiveNetwork()Landroid/net/Network;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getAllNetworks()[Landroid/net/Network;
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getDefaultNetworkCapabilitiesForUser(I)[Landroid/net/NetworkCapabilities;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getLinkProperties(Landroid/net/Network;)Landroid/net/LinkProperties;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getNetworkCapabilities(Landroid/net/Network;Ljava/lang/String;)Landroid/net/NetworkCapabilities;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getNetworkInfo(I)Landroid/net/NetworkInfo;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getNetworkInfoForUid(Landroid/net/Network;IZ)Landroid/net/NetworkInfo;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getProxyForNetwork(Landroid/net/Network;)Landroid/net/ProxyInfo;
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getVpnConfig(I)Lcom/android/internal/net/VpnConfig;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->isActiveNetworkMetered()Z
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->isNetworkSupported(I)Z
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/NetworkRequest;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;Ljava/lang/String;)Landroid/net/NetworkRequest;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->releaseNetworkRequest(Landroid/net/NetworkRequest;)V
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->reportNetworkConnectivity(Landroid/net/Network;Z)V
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;I)Landroid/net/NetworkRequest;
 HSPLandroid/net/IConnectivityManager$Stub$Proxy;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;ILjava/lang/String;)Landroid/net/NetworkRequest;
+HSPLandroid/net/IConnectivityManager$Stub;-><init>()V
 HSPLandroid/net/IConnectivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IConnectivityManager;
+HSPLandroid/net/IConnectivityManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/IEthernetManager$Stub;-><init>()V
+HPLandroid/net/IEthernetManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/IIpConnectivityMetrics$Stub;-><init>()V
+HSPLandroid/net/IIpConnectivityMetrics$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IIpConnectivityMetrics;
+HPLandroid/net/IIpConnectivityMetrics$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/IIpSecService$Stub;-><init>()V
+HPLandroid/net/IIpSecService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/INetdEventCallback$Stub;-><init>()V
+HSPLandroid/net/INetworkManagementEventObserver$Stub;-><init>()V
+HSPLandroid/net/INetworkManagementEventObserver$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/net/INetworkPolicyListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/net/INetworkPolicyListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/net/INetworkPolicyListener$Stub$Proxy;->onMeteredIfacesChanged([Ljava/lang/String;)V
+HPLandroid/net/INetworkPolicyListener$Stub$Proxy;->onUidRulesChanged(II)V
 HSPLandroid/net/INetworkPolicyListener$Stub;-><init>()V
 HSPLandroid/net/INetworkPolicyListener$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/net/INetworkPolicyListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkPolicyListener;
+HSPLandroid/net/INetworkPolicyListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;->getRestrictBackground()Z
+HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;->getRestrictBackgroundByCaller()I
+HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;->registerListener(Landroid/net/INetworkPolicyListener;)V
+HSPLandroid/net/INetworkPolicyManager$Stub;-><init>()V
 HSPLandroid/net/INetworkPolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkPolicyManager;
+HPLandroid/net/INetworkPolicyManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/net/INetworkRecommendationProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/net/INetworkRecommendationProvider$Stub$Proxy;->requestScores([Landroid/net/NetworkKey;)V
+HSPLandroid/net/INetworkRecommendationProvider$Stub;-><init>()V
+HPLandroid/net/INetworkRecommendationProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkRecommendationProvider;
+HSPLandroid/net/INetworkRecommendationProvider$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/INetworkScoreCache$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/INetworkScoreCache$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/net/INetworkScoreCache$Stub$Proxy;->clearScores()V
+HPLandroid/net/INetworkScoreCache$Stub$Proxy;->updateScores(Ljava/util/List;)V
+HSPLandroid/net/INetworkScoreCache$Stub;-><init>()V
+HSPLandroid/net/INetworkScoreCache$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/net/INetworkScoreCache$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkScoreCache;
+HSPLandroid/net/INetworkScoreCache$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/INetworkScoreService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/INetworkScoreService$Stub$Proxy;->getActiveScorerPackage()Ljava/lang/String;
+HSPLandroid/net/INetworkScoreService$Stub$Proxy;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;I)V
+HSPLandroid/net/INetworkScoreService$Stub$Proxy;->requestScores([Landroid/net/NetworkKey;)Z
+HSPLandroid/net/INetworkScoreService$Stub$Proxy;->updateScores([Landroid/net/ScoredNetwork;)Z
+HSPLandroid/net/INetworkScoreService$Stub;-><init>()V
 HSPLandroid/net/INetworkScoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkScoreService;
+HSPLandroid/net/INetworkScoreService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/net/INetworkStatsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/INetworkStatsService$Stub$Proxy;->getIfaceStats(Ljava/lang/String;I)J
+HSPLandroid/net/INetworkStatsService$Stub$Proxy;->getMobileIfaces()[Ljava/lang/String;
+HSPLandroid/net/INetworkStatsService$Stub$Proxy;->getTotalStats(I)J
+HSPLandroid/net/INetworkStatsService$Stub$Proxy;->openSessionForUsageStats(ILjava/lang/String;)Landroid/net/INetworkStatsSession;
+HSPLandroid/net/INetworkStatsService$Stub;-><init>()V
+PLandroid/net/INetworkStatsService$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/net/INetworkStatsService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStatsService;
+HSPLandroid/net/INetworkStatsService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/INetworkStatsSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/INetworkStatsSession$Stub$Proxy;->close()V
+HSPLandroid/net/INetworkStatsSession$Stub$Proxy;->getHistoryIntervalForUid(Landroid/net/NetworkTemplate;IIIIJJ)Landroid/net/NetworkStatsHistory;
+HPLandroid/net/INetworkStatsSession$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/net/INetworkStatsSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStatsSession;
+HPLandroid/net/INetworkStatsSession$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/ITetheringStatsProvider$Stub;-><init>()V
+HSPLandroid/net/InetAddresses;->parseNumericAddress(Ljava/lang/String;)Ljava/net/InetAddress;
 HSPLandroid/net/IpConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/IpConfiguration;
 HSPLandroid/net/IpConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/net/IpConfiguration$IpAssignment;->valueOf(Ljava/lang/String;)Landroid/net/IpConfiguration$IpAssignment;
@@ -8637,27 +16212,50 @@
 HSPLandroid/net/IpConfiguration$ProxySettings;->valueOf(Ljava/lang/String;)Landroid/net/IpConfiguration$ProxySettings;
 HSPLandroid/net/IpConfiguration$ProxySettings;->values()[Landroid/net/IpConfiguration$ProxySettings;
 HSPLandroid/net/IpConfiguration;-><init>()V
+HSPLandroid/net/IpConfiguration;-><init>(Landroid/net/IpConfiguration;)V
+HSPLandroid/net/IpConfiguration;->getIpAssignment()Landroid/net/IpConfiguration$IpAssignment;
+HSPLandroid/net/IpConfiguration;->getProxySettings()Landroid/net/IpConfiguration$ProxySettings;
 HSPLandroid/net/IpConfiguration;->init(Landroid/net/IpConfiguration$IpAssignment;Landroid/net/IpConfiguration$ProxySettings;Landroid/net/StaticIpConfiguration;Landroid/net/ProxyInfo;)V
+HSPLandroid/net/IpConfiguration;->setIpAssignment(Landroid/net/IpConfiguration$IpAssignment;)V
+HSPLandroid/net/IpConfiguration;->setProxySettings(Landroid/net/IpConfiguration$ProxySettings;)V
+HSPLandroid/net/IpConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/IpPrefix$2;->createFromParcel(Landroid/os/Parcel;)Landroid/net/IpPrefix;
 HSPLandroid/net/IpPrefix$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/IpPrefix;-><init>(Ljava/lang/String;)V
+HSPLandroid/net/IpPrefix;-><init>(Ljava/net/InetAddress;I)V
 HSPLandroid/net/IpPrefix;-><init>([BI)V
 HSPLandroid/net/IpPrefix;->checkAndMaskAddressAndPrefixLength()V
+HPLandroid/net/IpPrefix;->contains(Ljava/net/InetAddress;)Z
 HSPLandroid/net/IpPrefix;->equals(Ljava/lang/Object;)Z
 HSPLandroid/net/IpPrefix;->getAddress()Ljava/net/InetAddress;
 HSPLandroid/net/IpPrefix;->getPrefixLength()I
 HSPLandroid/net/IpPrefix;->toString()Ljava/lang/String;
+HSPLandroid/net/IpPrefix;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/LinkAddress$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/LinkAddress;
 HSPLandroid/net/LinkAddress$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/LinkAddress;-><init>(Ljava/lang/String;)V
+HSPLandroid/net/LinkAddress;-><init>(Ljava/lang/String;II)V
+HSPLandroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;I)V
 HSPLandroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;III)V
 HSPLandroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;IIIJJ)V
+HSPLandroid/net/LinkAddress;->equals(Ljava/lang/Object;)Z
 HSPLandroid/net/LinkAddress;->getAddress()Ljava/net/InetAddress;
+HSPLandroid/net/LinkAddress;->getFlags()I
+HSPLandroid/net/LinkAddress;->getPrefixLength()I
 HSPLandroid/net/LinkAddress;->init(Ljava/net/InetAddress;III)V
 HSPLandroid/net/LinkAddress;->init(Ljava/net/InetAddress;IIIJJ)V
+HSPLandroid/net/LinkAddress;->isGlobalPreferred()Z
+HSPLandroid/net/LinkAddress;->isIpv6()Z
+HSPLandroid/net/LinkAddress;->isIpv6ULA()Z
 HSPLandroid/net/LinkAddress;->isSameAddressAs(Landroid/net/LinkAddress;)Z
+HSPLandroid/net/LinkAddress;->scopeForUnicastAddress(Ljava/net/InetAddress;)I
 HSPLandroid/net/LinkAddress;->toString()Ljava/lang/String;
+HSPLandroid/net/LinkAddress;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/LinkProperties$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/LinkProperties;
 HSPLandroid/net/LinkProperties$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/net/LinkProperties;-><init>()V
+HSPLandroid/net/LinkProperties;-><init>(Landroid/net/LinkProperties;)V
+HSPLandroid/net/LinkProperties;-><init>(Landroid/net/LinkProperties;Z)V
 HSPLandroid/net/LinkProperties;->access$000(Landroid/os/Parcel;)Ljava/net/InetAddress;
 HSPLandroid/net/LinkProperties;->addDnsServer(Ljava/net/InetAddress;)Z
 HSPLandroid/net/LinkProperties;->addLinkAddress(Landroid/net/LinkAddress;)Z
@@ -8665,57 +16263,125 @@
 HSPLandroid/net/LinkProperties;->addRoute(Landroid/net/RouteInfo;)Z
 HSPLandroid/net/LinkProperties;->addStackedLink(Landroid/net/LinkProperties;)Z
 HSPLandroid/net/LinkProperties;->addValidatedPrivateDnsServer(Ljava/net/InetAddress;)Z
+HSPLandroid/net/LinkProperties;->clear()V
+HPLandroid/net/LinkProperties;->describeContents()I
+HPLandroid/net/LinkProperties;->ensureDirectlyConnectedRoutes()V
+HSPLandroid/net/LinkProperties;->equals(Ljava/lang/Object;)Z
 HSPLandroid/net/LinkProperties;->findLinkAddressIndex(Landroid/net/LinkAddress;)I
+HSPLandroid/net/LinkProperties;->getAddresses()Ljava/util/List;
+HPLandroid/net/LinkProperties;->getAllInterfaceNames()Ljava/util/List;
+HPLandroid/net/LinkProperties;->getAllRoutes()Ljava/util/List;
+HSPLandroid/net/LinkProperties;->getCaptivePortalApiUrl()Landroid/net/Uri;
+HSPLandroid/net/LinkProperties;->getCaptivePortalData()Landroid/net/CaptivePortalData;
+HSPLandroid/net/LinkProperties;->getDhcpServerAddress()Ljava/net/Inet4Address;
 HSPLandroid/net/LinkProperties;->getDnsServers()Ljava/util/List;
+HSPLandroid/net/LinkProperties;->getDomains()Ljava/lang/String;
+HSPLandroid/net/LinkProperties;->getHttpProxy()Landroid/net/ProxyInfo;
 HSPLandroid/net/LinkProperties;->getInterfaceName()Ljava/lang/String;
 HSPLandroid/net/LinkProperties;->getLinkAddresses()Ljava/util/List;
+HSPLandroid/net/LinkProperties;->getMtu()I
+HSPLandroid/net/LinkProperties;->getPcscfServers()Ljava/util/List;
 HSPLandroid/net/LinkProperties;->getPrivateDnsServerName()Ljava/lang/String;
 HSPLandroid/net/LinkProperties;->getRoutes()Ljava/util/List;
+HSPLandroid/net/LinkProperties;->getStackedLinks()Ljava/util/List;
+PLandroid/net/LinkProperties;->getTcpBufferSizes()Ljava/lang/String;
+HSPLandroid/net/LinkProperties;->getValidatedPrivateDnsServers()Ljava/util/List;
+HSPLandroid/net/LinkProperties;->hasGlobalIpv6Address()Z
+HSPLandroid/net/LinkProperties;->hasIpv4Address()Z
+HPLandroid/net/LinkProperties;->hasIpv4AddressOnInterface(Ljava/lang/String;)Z
+HPLandroid/net/LinkProperties;->hasIpv4DefaultRoute()Z
+HPLandroid/net/LinkProperties;->hasIpv4DnsServer()Z
+HSPLandroid/net/LinkProperties;->hasIpv6DefaultRoute()Z
+HPLandroid/net/LinkProperties;->hasIpv6DnsServer()Z
+HSPLandroid/net/LinkProperties;->isIdenticalAddresses(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalCaptivePortalApiUrl(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalCaptivePortalData(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalDhcpServerAddress(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalDnses(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalHttpProxy(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalInterfaceName(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalMtu(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalNat64Prefix(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalPcscfs(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalPrivateDns(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalRoutes(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalStackedLinks(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalTcpBufferSizes(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalValidatedPrivateDnses(Landroid/net/LinkProperties;)Z
+HSPLandroid/net/LinkProperties;->isIdenticalWakeOnLan(Landroid/net/LinkProperties;)Z
 HSPLandroid/net/LinkProperties;->isPrivateDnsActive()Z
+HPLandroid/net/LinkProperties;->isReachable(Ljava/net/InetAddress;)Z
+HSPLandroid/net/LinkProperties;->isWakeOnLanSupported()Z
 HSPLandroid/net/LinkProperties;->readAddress(Landroid/os/Parcel;)Ljava/net/InetAddress;
 HSPLandroid/net/LinkProperties;->routeWithInterface(Landroid/net/RouteInfo;)Landroid/net/RouteInfo;
 HSPLandroid/net/LinkProperties;->setCaptivePortalApiUrl(Landroid/net/Uri;)V
 HSPLandroid/net/LinkProperties;->setCaptivePortalData(Landroid/net/CaptivePortalData;)V
+HSPLandroid/net/LinkProperties;->setDhcpServerAddress(Ljava/net/Inet4Address;)V
 HSPLandroid/net/LinkProperties;->setDomains(Ljava/lang/String;)V
+HSPLandroid/net/LinkProperties;->setHttpProxy(Landroid/net/ProxyInfo;)V
 HSPLandroid/net/LinkProperties;->setInterfaceName(Ljava/lang/String;)V
 HSPLandroid/net/LinkProperties;->setMtu(I)V
 HSPLandroid/net/LinkProperties;->setNat64Prefix(Landroid/net/IpPrefix;)V
 HSPLandroid/net/LinkProperties;->setPrivateDnsServerName(Ljava/lang/String;)V
 HSPLandroid/net/LinkProperties;->setTcpBufferSizes(Ljava/lang/String;)V
 HSPLandroid/net/LinkProperties;->setUsePrivateDns(Z)V
+HPLandroid/net/LinkProperties;->setValidatedPrivateDnsServers(Ljava/util/Collection;)V
 HSPLandroid/net/LinkProperties;->setWakeOnLanSupported(Z)V
 HSPLandroid/net/LinkProperties;->toString()Ljava/lang/String;
+HSPLandroid/net/LinkProperties;->writeAddress(Landroid/os/Parcel;Ljava/net/InetAddress;)V
+HSPLandroid/net/LinkProperties;->writeAddresses(Landroid/os/Parcel;Ljava/util/List;)V
+HSPLandroid/net/LinkProperties;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/LocalServerSocket;-><init>(Ljava/io/FileDescriptor;)V
 HSPLandroid/net/LocalServerSocket;->accept()Landroid/net/LocalSocket;
 HSPLandroid/net/LocalServerSocket;->close()V
 HSPLandroid/net/LocalServerSocket;->getFileDescriptor()Ljava/io/FileDescriptor;
+HSPLandroid/net/LocalSocket;-><init>()V
+HSPLandroid/net/LocalSocket;-><init>(I)V
 HSPLandroid/net/LocalSocket;-><init>(Landroid/net/LocalSocketImpl;I)V
+HSPLandroid/net/LocalSocket;->bind(Landroid/net/LocalSocketAddress;)V
 HSPLandroid/net/LocalSocket;->close()V
+HSPLandroid/net/LocalSocket;->connect(Landroid/net/LocalSocketAddress;)V
 HSPLandroid/net/LocalSocket;->createConnectedLocalSocket(Landroid/net/LocalSocketImpl;I)Landroid/net/LocalSocket;
+HSPLandroid/net/LocalSocket;->createConnectedLocalSocket(Ljava/io/FileDescriptor;)Landroid/net/LocalSocket;
 HSPLandroid/net/LocalSocket;->createLocalSocketForAccept(Landroid/net/LocalSocketImpl;)Landroid/net/LocalSocket;
+HSPLandroid/net/LocalSocket;->getAncillaryFileDescriptors()[Ljava/io/FileDescriptor;
 HSPLandroid/net/LocalSocket;->getFileDescriptor()Ljava/io/FileDescriptor;
 HSPLandroid/net/LocalSocket;->getInputStream()Ljava/io/InputStream;
 HSPLandroid/net/LocalSocket;->getOutputStream()Ljava/io/OutputStream;
 HSPLandroid/net/LocalSocket;->getPeerCredentials()Landroid/net/Credentials;
 HSPLandroid/net/LocalSocket;->implCreateIfNeeded()V
 HSPLandroid/net/LocalSocket;->setSoTimeout(I)V
+HSPLandroid/net/LocalSocket;->toString()Ljava/lang/String;
+HSPLandroid/net/LocalSocketAddress$Namespace;->getId()I
+HSPLandroid/net/LocalSocketAddress;-><init>(Ljava/lang/String;)V
+HSPLandroid/net/LocalSocketAddress;-><init>(Ljava/lang/String;Landroid/net/LocalSocketAddress$Namespace;)V
+HSPLandroid/net/LocalSocketAddress;->getName()Ljava/lang/String;
+HSPLandroid/net/LocalSocketAddress;->getNamespace()Landroid/net/LocalSocketAddress$Namespace;
 HSPLandroid/net/LocalSocketImpl$SocketInputStream;-><init>(Landroid/net/LocalSocketImpl;)V
 HSPLandroid/net/LocalSocketImpl$SocketInputStream;->available()I
+HSPLandroid/net/LocalSocketImpl$SocketInputStream;->read()I
+HSPLandroid/net/LocalSocketImpl$SocketInputStream;->read([B)I
 HSPLandroid/net/LocalSocketImpl$SocketInputStream;->read([BII)I
 HSPLandroid/net/LocalSocketImpl$SocketOutputStream;-><init>(Landroid/net/LocalSocketImpl;)V
 HSPLandroid/net/LocalSocketImpl$SocketOutputStream;->write(I)V
+HSPLandroid/net/LocalSocketImpl$SocketOutputStream;->write([B)V
 HSPLandroid/net/LocalSocketImpl$SocketOutputStream;->write([BII)V
 HSPLandroid/net/LocalSocketImpl;-><init>()V
 HSPLandroid/net/LocalSocketImpl;-><init>(Ljava/io/FileDescriptor;)V
 HSPLandroid/net/LocalSocketImpl;->accept(Landroid/net/LocalSocketImpl;)V
 HSPLandroid/net/LocalSocketImpl;->access$000(Landroid/net/LocalSocketImpl;)Ljava/io/FileDescriptor;
 HSPLandroid/net/LocalSocketImpl;->access$100(Landroid/net/LocalSocketImpl;)Ljava/lang/Object;
+HSPLandroid/net/LocalSocketImpl;->access$200(Landroid/net/LocalSocketImpl;Ljava/io/FileDescriptor;)I
 HSPLandroid/net/LocalSocketImpl;->access$300(Landroid/net/LocalSocketImpl;[BIILjava/io/FileDescriptor;)I
 HSPLandroid/net/LocalSocketImpl;->access$400(Landroid/net/LocalSocketImpl;)Ljava/lang/Object;
 HSPLandroid/net/LocalSocketImpl;->access$500(Landroid/net/LocalSocketImpl;[BIILjava/io/FileDescriptor;)V
 HSPLandroid/net/LocalSocketImpl;->access$600(Landroid/net/LocalSocketImpl;ILjava/io/FileDescriptor;)V
+HSPLandroid/net/LocalSocketImpl;->bind(Landroid/net/LocalSocketAddress;)V
 HSPLandroid/net/LocalSocketImpl;->close()V
+HSPLandroid/net/LocalSocketImpl;->connect(Landroid/net/LocalSocketAddress;I)V
+HSPLandroid/net/LocalSocketImpl;->create(I)V
 HSPLandroid/net/LocalSocketImpl;->finalize()V
+HSPLandroid/net/LocalSocketImpl;->getAncillaryFileDescriptors()[Ljava/io/FileDescriptor;
 HSPLandroid/net/LocalSocketImpl;->getFileDescriptor()Ljava/io/FileDescriptor;
 HSPLandroid/net/LocalSocketImpl;->getInputStream()Ljava/io/InputStream;
 HSPLandroid/net/LocalSocketImpl;->getOutputStream()Ljava/io/OutputStream;
@@ -8723,34 +16389,97 @@
 HSPLandroid/net/LocalSocketImpl;->getSockAddress()Landroid/net/LocalSocketAddress;
 HSPLandroid/net/LocalSocketImpl;->listen(I)V
 HSPLandroid/net/LocalSocketImpl;->setOption(ILjava/lang/Object;)V
+HSPLandroid/net/LocalSocketImpl;->toString()Ljava/lang/String;
 HSPLandroid/net/MacAddress$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/MacAddress;
 HSPLandroid/net/MacAddress$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/net/MacAddress;-><init>(J)V
 HSPLandroid/net/MacAddress;-><init>(JLandroid/net/MacAddress$1;)V
+HSPLandroid/net/MacAddress;->byteAddrFromLongAddr(J)[B
+HSPLandroid/net/MacAddress;->equals(Ljava/lang/Object;)Z
+HSPLandroid/net/MacAddress;->fromBytes([B)Landroid/net/MacAddress;
 HSPLandroid/net/MacAddress;->fromString(Ljava/lang/String;)Landroid/net/MacAddress;
+HPLandroid/net/MacAddress;->hashCode()I
+PLandroid/net/MacAddress;->isLocallyAssigned()Z
+HSPLandroid/net/MacAddress;->longAddrFromByteAddr([B)J
 HSPLandroid/net/MacAddress;->longAddrFromStringAddr(Ljava/lang/String;)J
+HSPLandroid/net/MacAddress;->stringAddrFromLongAddr(J)Ljava/lang/String;
+HSPLandroid/net/MacAddress;->toByteArray()[B
+HSPLandroid/net/MacAddress;->toString()Ljava/lang/String;
+HSPLandroid/net/MacAddress;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/MatchAllNetworkSpecifier;-><init>()V
+HSPLandroid/net/MatchAllNetworkSpecifier;->checkNotMatchAllNetworkSpecifier(Landroid/net/NetworkSpecifier;)V
 HSPLandroid/net/Network$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/Network;
 HSPLandroid/net/Network$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/net/Network$1;->newArray(I)[Landroid/net/Network;
 HSPLandroid/net/Network$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/net/Network$NetworkBoundSocketFactory;-><init>(Landroid/net/Network;)V
+HSPLandroid/net/Network$NetworkBoundSocketFactory;-><init>(Landroid/net/Network;Landroid/net/Network$1;)V
+HSPLandroid/net/Network$NetworkBoundSocketFactory;->createSocket()Ljava/net/Socket;
 HSPLandroid/net/Network;-><init>(I)V
 HSPLandroid/net/Network;-><init>(IZ)V
 HSPLandroid/net/Network;->bindSocket(Ljava/io/FileDescriptor;)V
+HSPLandroid/net/Network;->bindSocket(Ljava/net/DatagramSocket;)V
 HSPLandroid/net/Network;->bindSocket(Ljava/net/Socket;)V
 HSPLandroid/net/Network;->equals(Ljava/lang/Object;)Z
+HSPLandroid/net/Network;->getAllByName(Ljava/lang/String;)[Ljava/net/InetAddress;
+HSPLandroid/net/Network;->getByName(Ljava/lang/String;)Ljava/net/InetAddress;
 HSPLandroid/net/Network;->getNetIdForResolv()I
 HSPLandroid/net/Network;->getNetworkHandle()J
+HSPLandroid/net/Network;->getPrivateDnsBypassingCopy()Landroid/net/Network;
+HSPLandroid/net/Network;->getSocketFactory()Ljavax/net/SocketFactory;
 HSPLandroid/net/Network;->hashCode()I
+HSPLandroid/net/Network;->lambda$maybeInitUrlConnectionFactory$0$Network(Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/net/Network;->maybeInitUrlConnectionFactory()V
+HSPLandroid/net/Network;->openConnection(Ljava/net/URL;)Ljava/net/URLConnection;
+HSPLandroid/net/Network;->openConnection(Ljava/net/URL;Ljava/net/Proxy;)Ljava/net/URLConnection;
 HSPLandroid/net/Network;->toString()Ljava/lang/String;
 HSPLandroid/net/Network;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/NetworkAgent$InitialConfiguration;-><init>(Landroid/content/Context;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;Landroid/net/NetworkScore;Landroid/net/NetworkAgentConfig;Landroid/net/NetworkInfo;)V
+HSPLandroid/net/NetworkAgent$NetworkAgentHandler;-><init>(Landroid/net/NetworkAgent;Landroid/os/Looper;)V
+HSPLandroid/net/NetworkAgent$NetworkAgentHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/net/NetworkAgent;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/lang/String;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;Landroid/net/NetworkScore;Landroid/net/NetworkAgentConfig;Landroid/net/NetworkProvider;)V
+HSPLandroid/net/NetworkAgent;-><init>(Landroid/os/Looper;Landroid/content/Context;Ljava/lang/String;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;Landroid/net/NetworkScore;Landroid/net/NetworkAgentConfig;ILandroid/net/NetworkInfo;Z)V
+HSPLandroid/net/NetworkAgent;->access$000(Landroid/net/NetworkAgent;)Lcom/android/internal/util/AsyncChannel;
+HSPLandroid/net/NetworkAgent;->access$002(Landroid/net/NetworkAgent;Lcom/android/internal/util/AsyncChannel;)Lcom/android/internal/util/AsyncChannel;
+HSPLandroid/net/NetworkAgent;->access$100(Landroid/net/NetworkAgent;)Ljava/util/ArrayList;
+HSPLandroid/net/NetworkAgent;->getLegacyNetworkInfo(Landroid/net/NetworkAgentConfig;)Landroid/net/NetworkInfo;
+HSPLandroid/net/NetworkAgent;->getNetwork()Landroid/net/Network;
+HSPLandroid/net/NetworkAgent;->log(Ljava/lang/String;)V
+HSPLandroid/net/NetworkAgent;->onSignalStrengthThresholdsUpdated([I)V
+HSPLandroid/net/NetworkAgent;->queueOrSendMessage(IIILjava/lang/Object;)V
+HSPLandroid/net/NetworkAgent;->queueOrSendMessage(ILjava/lang/Object;)V
+HSPLandroid/net/NetworkAgent;->queueOrSendMessage(Landroid/os/Message;)V
+HSPLandroid/net/NetworkAgent;->register()Landroid/net/Network;
+HSPLandroid/net/NetworkAgent;->sendLinkProperties(Landroid/net/LinkProperties;)V
+HSPLandroid/net/NetworkAgent;->sendNetworkCapabilities(Landroid/net/NetworkCapabilities;)V
+HSPLandroid/net/NetworkAgent;->setConnected()V
+HSPLandroid/net/NetworkAgent;->setSignalStrengthThresholds([I)V
+HSPLandroid/net/NetworkAgent;->unregister()V
+HSPLandroid/net/NetworkAgentConfig$1;-><init>()V
+HPLandroid/net/NetworkAgentConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkAgentConfig;
+HPLandroid/net/NetworkAgentConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/NetworkAgentConfig$Builder;-><init>()V
+HSPLandroid/net/NetworkAgentConfig$Builder;->build()Landroid/net/NetworkAgentConfig;
+PLandroid/net/NetworkAgentConfig$Builder;->setExplicitlySelected(Z)Landroid/net/NetworkAgentConfig$Builder;
+HSPLandroid/net/NetworkAgentConfig$Builder;->setLegacyType(I)Landroid/net/NetworkAgentConfig$Builder;
+HSPLandroid/net/NetworkAgentConfig$Builder;->setLegacyTypeName(Ljava/lang/String;)Landroid/net/NetworkAgentConfig$Builder;
+PLandroid/net/NetworkAgentConfig$Builder;->setPartialConnectivityAcceptable(Z)Landroid/net/NetworkAgentConfig$Builder;
+PLandroid/net/NetworkAgentConfig$Builder;->setUnvalidatedConnectivityAcceptable(Z)Landroid/net/NetworkAgentConfig$Builder;
+HSPLandroid/net/NetworkAgentConfig;-><clinit>()V
+HSPLandroid/net/NetworkAgentConfig;-><init>()V
+HPLandroid/net/NetworkAgentConfig;-><init>(Landroid/net/NetworkAgentConfig;)V
 HSPLandroid/net/NetworkCapabilities$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkCapabilities;
 HSPLandroid/net/NetworkCapabilities$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/NetworkCapabilities$1;->newArray(I)[Landroid/net/NetworkCapabilities;
+HSPLandroid/net/NetworkCapabilities$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/net/NetworkCapabilities;-><init>()V
 HSPLandroid/net/NetworkCapabilities;-><init>(Landroid/net/NetworkCapabilities;)V
 HSPLandroid/net/NetworkCapabilities;->access$002(Landroid/net/NetworkCapabilities;J)J
 HSPLandroid/net/NetworkCapabilities;->access$1002(Landroid/net/NetworkCapabilities;Z)Z
 HSPLandroid/net/NetworkCapabilities;->access$102(Landroid/net/NetworkCapabilities;J)J
 HSPLandroid/net/NetworkCapabilities;->access$1102(Landroid/net/NetworkCapabilities;I)I
+HSPLandroid/net/NetworkCapabilities;->access$1202(Landroid/net/NetworkCapabilities;I)I
+HSPLandroid/net/NetworkCapabilities;->access$1302(Landroid/net/NetworkCapabilities;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/net/NetworkCapabilities;->access$202(Landroid/net/NetworkCapabilities;J)J
 HSPLandroid/net/NetworkCapabilities;->access$302(Landroid/net/NetworkCapabilities;I)I
 HSPLandroid/net/NetworkCapabilities;->access$402(Landroid/net/NetworkCapabilities;I)I
@@ -8767,40 +16496,104 @@
 HSPLandroid/net/NetworkCapabilities;->checkValidTransportType(I)V
 HSPLandroid/net/NetworkCapabilities;->clearAll()V
 HSPLandroid/net/NetworkCapabilities;->deduceRestrictedCapability()Z
+HSPLandroid/net/NetworkCapabilities;->describeFirstNonRequestableCapability()Ljava/lang/String;
+HPLandroid/net/NetworkCapabilities;->equalRequestableCapabilities(Landroid/net/NetworkCapabilities;)Z
 HSPLandroid/net/NetworkCapabilities;->equals(Ljava/lang/Object;)Z
 HSPLandroid/net/NetworkCapabilities;->equalsLinkBandwidths(Landroid/net/NetworkCapabilities;)Z
 HSPLandroid/net/NetworkCapabilities;->equalsNetCapabilities(Landroid/net/NetworkCapabilities;)Z
+PLandroid/net/NetworkCapabilities;->equalsNetCapabilitiesRequestable(Landroid/net/NetworkCapabilities;)Z
 HSPLandroid/net/NetworkCapabilities;->equalsPrivateDnsBroken(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->equalsRequestor(Landroid/net/NetworkCapabilities;)Z
 HSPLandroid/net/NetworkCapabilities;->equalsSSID(Landroid/net/NetworkCapabilities;)Z
 HSPLandroid/net/NetworkCapabilities;->equalsSignalStrength(Landroid/net/NetworkCapabilities;)Z
 HSPLandroid/net/NetworkCapabilities;->equalsSpecifier(Landroid/net/NetworkCapabilities;)Z
 HSPLandroid/net/NetworkCapabilities;->equalsTransportInfo(Landroid/net/NetworkCapabilities;)Z
 HSPLandroid/net/NetworkCapabilities;->equalsTransportTypes(Landroid/net/NetworkCapabilities;)Z
 HSPLandroid/net/NetworkCapabilities;->equalsUids(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->getCapabilities()[I
+HSPLandroid/net/NetworkCapabilities;->getLinkDownstreamBandwidthKbps()I
+HSPLandroid/net/NetworkCapabilities;->getLinkUpstreamBandwidthKbps()I
 HSPLandroid/net/NetworkCapabilities;->getNetworkSpecifier()Landroid/net/NetworkSpecifier;
+HSPLandroid/net/NetworkCapabilities;->getSSID()Ljava/lang/String;
 HSPLandroid/net/NetworkCapabilities;->getTransportTypes()[I
+HPLandroid/net/NetworkCapabilities;->getUids()Ljava/util/Set;
+HPLandroid/net/NetworkCapabilities;->getUnwantedCapabilities()[I
 HSPLandroid/net/NetworkCapabilities;->hasCapability(I)Z
+HPLandroid/net/NetworkCapabilities;->hasConnectivityManagedCapability()Z
 HSPLandroid/net/NetworkCapabilities;->hasSignalStrength()Z
 HSPLandroid/net/NetworkCapabilities;->hasTransport(I)Z
 HSPLandroid/net/NetworkCapabilities;->hashCode()I
+HPLandroid/net/NetworkCapabilities;->isMetered()Z
+HSPLandroid/net/NetworkCapabilities;->isPrivateDnsBroken()Z
 HSPLandroid/net/NetworkCapabilities;->isValidCapability(I)Z
 HSPLandroid/net/NetworkCapabilities;->isValidTransport(I)Z
 HSPLandroid/net/NetworkCapabilities;->maybeMarkCapabilitiesRestricted()V
 HSPLandroid/net/NetworkCapabilities;->removeCapability(I)Landroid/net/NetworkCapabilities;
+HPLandroid/net/NetworkCapabilities;->satisfiedByImmutableNetworkCapabilities(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedByLinkBandwidths(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedByNetCapabilities(Landroid/net/NetworkCapabilities;Z)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedByNetworkCapabilities(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedByNetworkCapabilities(Landroid/net/NetworkCapabilities;Z)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedBySSID(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedBySignalStrength(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedBySpecifier(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedByTransportTypes(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedByUids(Landroid/net/NetworkCapabilities;)Z
 HSPLandroid/net/NetworkCapabilities;->set(Landroid/net/NetworkCapabilities;)V
+HSPLandroid/net/NetworkCapabilities;->setAdministratorUids(Ljava/util/List;)Landroid/net/NetworkCapabilities;
 HSPLandroid/net/NetworkCapabilities;->setAdministratorUids(Ljava/util/List;)V
+HSPLandroid/net/NetworkCapabilities;->setCapabilities([I[I)V
+HSPLandroid/net/NetworkCapabilities;->setCapability(IZ)Landroid/net/NetworkCapabilities;
+HSPLandroid/net/NetworkCapabilities;->setLinkDownstreamBandwidthKbps(I)Landroid/net/NetworkCapabilities;
+HSPLandroid/net/NetworkCapabilities;->setLinkUpstreamBandwidthKbps(I)Landroid/net/NetworkCapabilities;
 HSPLandroid/net/NetworkCapabilities;->setNetworkSpecifier(Landroid/net/NetworkSpecifier;)Landroid/net/NetworkCapabilities;
+HPLandroid/net/NetworkCapabilities;->setPrivateDnsBroken(Z)V
+HPLandroid/net/NetworkCapabilities;->setSSID(Ljava/lang/String;)Landroid/net/NetworkCapabilities;
+HSPLandroid/net/NetworkCapabilities;->setSignalStrength(I)Landroid/net/NetworkCapabilities;
 HSPLandroid/net/NetworkCapabilities;->setSingleUid(I)Landroid/net/NetworkCapabilities;
+HSPLandroid/net/NetworkCapabilities;->setTransportTypes([I)V
 HSPLandroid/net/NetworkCapabilities;->setUids(Ljava/util/Set;)Landroid/net/NetworkCapabilities;
 HSPLandroid/net/NetworkCapabilities;->toString()Ljava/lang/String;
 HSPLandroid/net/NetworkCapabilities;->transportNameOf(I)Ljava/lang/String;
 HSPLandroid/net/NetworkCapabilities;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/NetworkConfig;-><init>(Ljava/lang/String;)V
+HSPLandroid/net/NetworkFactory$1;-><init>(Landroid/net/NetworkFactory;Landroid/content/Context;Landroid/os/Looper;Ljava/lang/String;)V
+HSPLandroid/net/NetworkFactory$1;->onNetworkRequested(Landroid/net/NetworkRequest;II)V
+HSPLandroid/net/NetworkFactory$1;->onRequestWithdrawn(Landroid/net/NetworkRequest;)V
+HSPLandroid/net/NetworkFactory$NetworkRequestInfo;-><init>(Landroid/net/NetworkFactory;Landroid/net/NetworkRequest;II)V
+HSPLandroid/net/NetworkFactory;-><init>(Landroid/os/Looper;Landroid/content/Context;Ljava/lang/String;Landroid/net/NetworkCapabilities;)V
+HSPLandroid/net/NetworkFactory;->evalRequest(Landroid/net/NetworkFactory$NetworkRequestInfo;)V
+HSPLandroid/net/NetworkFactory;->evalRequests()V
+HSPLandroid/net/NetworkFactory;->handleAddRequest(Landroid/net/NetworkRequest;II)V
+HSPLandroid/net/NetworkFactory;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/net/NetworkFactory;->handleRemoveRequest(Landroid/net/NetworkRequest;)V
+HSPLandroid/net/NetworkFactory;->handleSetScore(I)V
+HSPLandroid/net/NetworkFactory;->log(Ljava/lang/String;)V
+HSPLandroid/net/NetworkFactory;->register()V
+HSPLandroid/net/NetworkFactory;->setScoreFilter(I)V
+HSPLandroid/net/NetworkFactory;->shouldNeedNetworkFor(Landroid/net/NetworkFactory$NetworkRequestInfo;)Z
+HSPLandroid/net/NetworkFactory;->shouldReleaseNetworkFor(Landroid/net/NetworkFactory$NetworkRequestInfo;)Z
+HSPLandroid/net/NetworkIdentity;-><init>(IILjava/lang/String;Ljava/lang/String;ZZZ)V
+HPLandroid/net/NetworkIdentity;->buildNetworkIdentity(Landroid/content/Context;Landroid/net/NetworkState;Z)Landroid/net/NetworkIdentity;
+HSPLandroid/net/NetworkIdentity;->equals(Ljava/lang/Object;)Z
+HPLandroid/net/NetworkIdentity;->getDefaultNetwork()Z
+HPLandroid/net/NetworkIdentity;->getMetered()Z
+HPLandroid/net/NetworkIdentity;->getNetworkId()Ljava/lang/String;
+HPLandroid/net/NetworkIdentity;->getRoaming()Z
+HPLandroid/net/NetworkIdentity;->getSubType()I
+HPLandroid/net/NetworkIdentity;->getSubscriberId()Ljava/lang/String;
+HPLandroid/net/NetworkIdentity;->getType()I
+HSPLandroid/net/NetworkIdentity;->hashCode()I
 HSPLandroid/net/NetworkInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkInfo;
 HSPLandroid/net/NetworkInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/NetworkInfo$1;->newArray(I)[Landroid/net/NetworkInfo;
+HSPLandroid/net/NetworkInfo$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/net/NetworkInfo$DetailedState;->valueOf(Ljava/lang/String;)Landroid/net/NetworkInfo$DetailedState;
+HSPLandroid/net/NetworkInfo$DetailedState;->values()[Landroid/net/NetworkInfo$DetailedState;
 HSPLandroid/net/NetworkInfo$State;->valueOf(Ljava/lang/String;)Landroid/net/NetworkInfo$State;
 HSPLandroid/net/NetworkInfo$State;->values()[Landroid/net/NetworkInfo$State;
 HSPLandroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/net/NetworkInfo;-><init>(Landroid/net/NetworkInfo;)V
 HSPLandroid/net/NetworkInfo;->access$002(Landroid/net/NetworkInfo;Landroid/net/NetworkInfo$State;)Landroid/net/NetworkInfo$State;
 HSPLandroid/net/NetworkInfo;->access$102(Landroid/net/NetworkInfo;Landroid/net/NetworkInfo$DetailedState;)Landroid/net/NetworkInfo$DetailedState;
 HSPLandroid/net/NetworkInfo;->access$202(Landroid/net/NetworkInfo;Z)Z
@@ -8808,8 +16601,10 @@
 HSPLandroid/net/NetworkInfo;->access$402(Landroid/net/NetworkInfo;Z)Z
 HSPLandroid/net/NetworkInfo;->access$502(Landroid/net/NetworkInfo;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/net/NetworkInfo;->access$602(Landroid/net/NetworkInfo;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/net/NetworkInfo;->describeContents()I
 HSPLandroid/net/NetworkInfo;->getDetailedState()Landroid/net/NetworkInfo$DetailedState;
 HSPLandroid/net/NetworkInfo;->getExtraInfo()Ljava/lang/String;
+HSPLandroid/net/NetworkInfo;->getReason()Ljava/lang/String;
 HSPLandroid/net/NetworkInfo;->getState()Landroid/net/NetworkInfo$State;
 HSPLandroid/net/NetworkInfo;->getSubtype()I
 HSPLandroid/net/NetworkInfo;->getSubtypeName()Ljava/lang/String;
@@ -8818,13 +16613,63 @@
 HSPLandroid/net/NetworkInfo;->isAvailable()Z
 HSPLandroid/net/NetworkInfo;->isConnected()Z
 HSPLandroid/net/NetworkInfo;->isConnectedOrConnecting()Z
+HSPLandroid/net/NetworkInfo;->isFailover()Z
 HSPLandroid/net/NetworkInfo;->isRoaming()Z
 HSPLandroid/net/NetworkInfo;->setDetailedState(Landroid/net/NetworkInfo$DetailedState;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/net/NetworkInfo;->setExtraInfo(Ljava/lang/String;)V
+HSPLandroid/net/NetworkInfo;->setIsAvailable(Z)V
+HSPLandroid/net/NetworkInfo;->setRoaming(Z)V
+HPLandroid/net/NetworkInfo;->setType(I)V
 HSPLandroid/net/NetworkInfo;->toString()Ljava/lang/String;
+HSPLandroid/net/NetworkInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/NetworkKey$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkKey;
+HSPLandroid/net/NetworkKey$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/NetworkKey$1;->newArray(I)[Landroid/net/NetworkKey;
+HSPLandroid/net/NetworkKey$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/net/NetworkKey;-><init>(Landroid/net/WifiKey;)V
+HSPLandroid/net/NetworkKey;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/net/NetworkKey;-><init>(Landroid/os/Parcel;Landroid/net/NetworkKey$1;)V
+HSPLandroid/net/NetworkKey;->createFromScanResult(Landroid/net/wifi/ScanResult;)Landroid/net/NetworkKey;
+HSPLandroid/net/NetworkKey;->createFromWifiInfo(Landroid/net/wifi/WifiInfo;)Landroid/net/NetworkKey;
+HSPLandroid/net/NetworkKey;->equals(Ljava/lang/Object;)Z
+HSPLandroid/net/NetworkKey;->hashCode()I
 HSPLandroid/net/NetworkKey;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/NetworkPolicy;-><init>(Landroid/net/NetworkTemplate;Landroid/util/RecurrenceRule;JJJJJZZ)V
+HSPLandroid/net/NetworkPolicy;-><init>(Landroid/net/NetworkTemplate;Landroid/util/RecurrenceRule;JJJJZZ)V
+HSPLandroid/net/NetworkPolicy;->cycleIterator()Ljava/util/Iterator;
+HPLandroid/net/NetworkPolicy;->hasCycle()Z
+HPLandroid/net/NetworkPolicy;->isOverLimit(J)Z
+HPLandroid/net/NetworkPolicy;->isOverWarning(J)Z
+HPLandroid/net/NetworkPolicyManager$1;->hasNext()Z
+HPLandroid/net/NetworkPolicyManager$1;->next()Landroid/util/Pair;
+HPLandroid/net/NetworkPolicyManager$1;->next()Ljava/lang/Object;
 HSPLandroid/net/NetworkPolicyManager$Listener;-><init>()V
+HSPLandroid/net/NetworkPolicyManager$Listener;->onMeteredIfacesChanged([Ljava/lang/String;)V
+PLandroid/net/NetworkPolicyManager$Listener;->onSubscriptionPlansChanged(I[Landroid/telephony/SubscriptionPlan;)V
+HSPLandroid/net/NetworkPolicyManager$Listener;->onUidRulesChanged(II)V
 HSPLandroid/net/NetworkPolicyManager;-><init>(Landroid/content/Context;Landroid/net/INetworkPolicyManager;)V
+HSPLandroid/net/NetworkPolicyManager;->from(Landroid/content/Context;)Landroid/net/NetworkPolicyManager;
+HSPLandroid/net/NetworkPolicyManager;->getNetworkPolicies()[Landroid/net/NetworkPolicy;
+HSPLandroid/net/NetworkPolicyManager;->getRestrictBackground()Z
+HSPLandroid/net/NetworkPolicyManager;->isProcStateAllowedWhileIdleOrPowerSaveMode(I)Z
+HSPLandroid/net/NetworkPolicyManager;->isProcStateAllowedWhileOnRestrictBackground(I)Z
 HSPLandroid/net/NetworkPolicyManager;->registerListener(Landroid/net/INetworkPolicyListener;)V
+HSPLandroid/net/NetworkProvider$1;-><init>(Landroid/net/NetworkProvider;Landroid/os/Looper;)V
+HSPLandroid/net/NetworkProvider$1;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/net/NetworkProvider;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/lang/String;)V
+HSPLandroid/net/NetworkProvider;->getMessenger()Landroid/os/Messenger;
+HSPLandroid/net/NetworkProvider;->getName()Ljava/lang/String;
+HSPLandroid/net/NetworkProvider;->getProviderId()I
+HSPLandroid/net/NetworkProvider;->setProviderId(I)V
+HSPLandroid/net/NetworkRecommendationProvider$ServiceWrapper$1;-><init>(Landroid/net/NetworkRecommendationProvider$ServiceWrapper;[Landroid/net/NetworkKey;)V
+HSPLandroid/net/NetworkRecommendationProvider$ServiceWrapper$1;->run()V
+HSPLandroid/net/NetworkRecommendationProvider$ServiceWrapper;-><init>(Landroid/net/NetworkRecommendationProvider;Landroid/content/Context;Ljava/util/concurrent/Executor;)V
+HSPLandroid/net/NetworkRecommendationProvider$ServiceWrapper;->enforceCallingPermission()V
+HSPLandroid/net/NetworkRecommendationProvider$ServiceWrapper;->execute(Ljava/lang/Runnable;)V
+HSPLandroid/net/NetworkRecommendationProvider$ServiceWrapper;->requestScores([Landroid/net/NetworkKey;)V
+HSPLandroid/net/NetworkRecommendationProvider;-><clinit>()V
+HSPLandroid/net/NetworkRecommendationProvider;-><init>(Landroid/content/Context;Ljava/util/concurrent/Executor;)V
+HSPLandroid/net/NetworkRecommendationProvider;->getBinder()Landroid/os/IBinder;
 HSPLandroid/net/NetworkRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkRequest;
 HSPLandroid/net/NetworkRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/net/NetworkRequest$Builder;-><init>()V
@@ -8833,54 +16678,262 @@
 HSPLandroid/net/NetworkRequest$Builder;->build()Landroid/net/NetworkRequest;
 HSPLandroid/net/NetworkRequest$Builder;->clearCapabilities()Landroid/net/NetworkRequest$Builder;
 HSPLandroid/net/NetworkRequest$Builder;->removeCapability(I)Landroid/net/NetworkRequest$Builder;
+HSPLandroid/net/NetworkRequest$Builder;->setNetworkSpecifier(Landroid/net/NetworkSpecifier;)Landroid/net/NetworkRequest$Builder;
+HSPLandroid/net/NetworkRequest$Builder;->setNetworkSpecifier(Ljava/lang/String;)Landroid/net/NetworkRequest$Builder;
+HSPLandroid/net/NetworkRequest$Builder;->setUids(Ljava/util/Set;)Landroid/net/NetworkRequest$Builder;
 HSPLandroid/net/NetworkRequest$Type;->valueOf(Ljava/lang/String;)Landroid/net/NetworkRequest$Type;
 HSPLandroid/net/NetworkRequest$Type;->values()[Landroid/net/NetworkRequest$Type;
 HSPLandroid/net/NetworkRequest;-><init>(Landroid/net/NetworkCapabilities;IILandroid/net/NetworkRequest$Type;)V
+HPLandroid/net/NetworkRequest;-><init>(Landroid/net/NetworkRequest;)V
 HSPLandroid/net/NetworkRequest;->equals(Ljava/lang/Object;)Z
+HSPLandroid/net/NetworkRequest;->getNetworkSpecifier()Landroid/net/NetworkSpecifier;
+HSPLandroid/net/NetworkRequest;->hasCapability(I)Z
 HSPLandroid/net/NetworkRequest;->hashCode()I
+HSPLandroid/net/NetworkRequest;->isBackgroundRequest()Z
+HSPLandroid/net/NetworkRequest;->isForegroundRequest()Z
+HSPLandroid/net/NetworkRequest;->isListen()Z
+HSPLandroid/net/NetworkRequest;->isRequest()Z
+HSPLandroid/net/NetworkRequest;->satisfiedBy(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkRequest;->toString()Ljava/lang/String;
 HSPLandroid/net/NetworkRequest;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/NetworkScore$Builder;-><init>()V
+HSPLandroid/net/NetworkScore$Builder;->build()Landroid/net/NetworkScore;
+HSPLandroid/net/NetworkScore$Builder;->setLegacyScore(I)Landroid/net/NetworkScore$Builder;
+HSPLandroid/net/NetworkScore$Metrics;-><clinit>()V
+HSPLandroid/net/NetworkScore$Metrics;-><init>(III)V
+HSPLandroid/net/NetworkScore;-><init>(ILandroid/net/NetworkScore$Metrics;Landroid/net/NetworkScore$Metrics;IIZI)V
+HSPLandroid/net/NetworkScore;-><init>(ILandroid/net/NetworkScore$Metrics;Landroid/net/NetworkScore$Metrics;IIZILandroid/net/NetworkScore$1;)V
+HSPLandroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;-><init>(Landroid/net/NetworkScoreManager;Ljava/util/concurrent/Executor;Landroid/net/NetworkScoreManager$NetworkScoreCallback;)V
+HSPLandroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;->clearScores()V
+HSPLandroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;->lambda$clearScores$1$NetworkScoreManager$NetworkScoreCallbackProxy()V
+HPLandroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;->lambda$updateScores$0$NetworkScoreManager$NetworkScoreCallbackProxy(Ljava/util/List;)V
+HPLandroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;->updateScores(Ljava/util/List;)V
 HSPLandroid/net/NetworkScoreManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/net/NetworkScoreManager;->getActiveScorerPackage()Ljava/lang/String;
+HSPLandroid/net/NetworkScoreManager;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;I)V
+HSPLandroid/net/NetworkScoreManager;->registerNetworkScoreCallback(IILjava/util/concurrent/Executor;Landroid/net/NetworkScoreManager$NetworkScoreCallback;)V
+HSPLandroid/net/NetworkScoreManager;->requestScores([Landroid/net/NetworkKey;)Z
+HSPLandroid/net/NetworkScoreManager;->updateScores([Landroid/net/ScoredNetwork;)Z
+HSPLandroid/net/NetworkScorerAppData;-><clinit>()V
+HPLandroid/net/NetworkScorerAppData;-><init>(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/ComponentName;Ljava/lang/String;)V
+HPLandroid/net/NetworkScorerAppData;->equals(Ljava/lang/Object;)Z
+HPLandroid/net/NetworkScorerAppData;->getRecommendationServiceComponent()Landroid/content/ComponentName;
+HPLandroid/net/NetworkScorerAppData;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/NetworkSpecifier;-><init>()V
+HPLandroid/net/NetworkSpecifier;->redact()Landroid/net/NetworkSpecifier;
+HSPLandroid/net/NetworkStack;->checkAnyPermissionOf(Landroid/content/Context;[Ljava/lang/String;)Z
+HSPLandroid/net/NetworkStack;->checkNetworkStackPermission(Landroid/content/Context;)V
+HSPLandroid/net/NetworkStack;->checkNetworkStackPermissionOr(Landroid/content/Context;[Ljava/lang/String;)V
+HSPLandroid/net/NetworkStack;->enforceAnyPermissionOf(Landroid/content/Context;[Ljava/lang/String;)V
+HPLandroid/net/NetworkState;-><init>(Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;Landroid/net/Network;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/net/NetworkStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkStats;
+HSPLandroid/net/NetworkStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/net/NetworkStats$Entry;-><init>()V
 HSPLandroid/net/NetworkStats$Entry;-><init>(Ljava/lang/String;IIIIIIJJJJJ)V
 HSPLandroid/net/NetworkStats$Entry;-><init>(Ljava/lang/String;IIIJJJJJ)V
+HSPLandroid/net/NetworkStats$Entry;->isEmpty()Z
+HSPLandroid/net/NetworkStats$Entry;->isNegative()Z
 HSPLandroid/net/NetworkStats;-><init>(JI)V
+HSPLandroid/net/NetworkStats;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/net/NetworkStats;->addEntry(Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats;
+HSPLandroid/net/NetworkStats;->apply464xlatAdjustments(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Ljava/util/Map;Z)V
+HSPLandroid/net/NetworkStats;->apply464xlatAdjustments(Ljava/util/Map;Z)V
+HSPLandroid/net/NetworkStats;->clear()V
+HSPLandroid/net/NetworkStats;->clone()Landroid/net/NetworkStats;
+HSPLandroid/net/NetworkStats;->combineAllValues(Landroid/net/NetworkStats;)V
+HSPLandroid/net/NetworkStats;->combineValues(Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats;
+HSPLandroid/net/NetworkStats;->filter(I[Ljava/lang/String;I)V
+HSPLandroid/net/NetworkStats;->filter(Ljava/util/function/Predicate;)V
+HSPLandroid/net/NetworkStats;->filterDebugEntries()V
+HSPLandroid/net/NetworkStats;->findIndex(Ljava/lang/String;IIIIII)I
+HSPLandroid/net/NetworkStats;->findIndexHinted(Ljava/lang/String;IIIIIII)I
+HSPLandroid/net/NetworkStats;->getElapsedRealtime()J
+HSPLandroid/net/NetworkStats;->getTotal(Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats$Entry;
+HPLandroid/net/NetworkStats;->getTotal(Landroid/net/NetworkStats$Entry;Ljava/util/HashSet;)Landroid/net/NetworkStats$Entry;
+HSPLandroid/net/NetworkStats;->getTotal(Landroid/net/NetworkStats$Entry;Ljava/util/HashSet;IZ)Landroid/net/NetworkStats$Entry;
+HPLandroid/net/NetworkStats;->getTotalBytes()J
+HSPLandroid/net/NetworkStats;->getValues(ILandroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats$Entry;
+HPLandroid/net/NetworkStats;->lambda$filter$0(II[Ljava/lang/String;Landroid/net/NetworkStats$Entry;)Z
+HSPLandroid/net/NetworkStats;->lambda$filterDebugEntries$1(Landroid/net/NetworkStats$Entry;)Z
+HSPLandroid/net/NetworkStats;->maybeCopyEntry(II)V
+HSPLandroid/net/NetworkStats;->removeUids([I)V
+HSPLandroid/net/NetworkStats;->setElapsedRealtime(J)V
+HPLandroid/net/NetworkStats;->setMatches(II)Z
+HSPLandroid/net/NetworkStats;->setValues(ILandroid/net/NetworkStats$Entry;)V
+HSPLandroid/net/NetworkStats;->size()I
+HSPLandroid/net/NetworkStats;->subtract(Landroid/net/NetworkStats;)Landroid/net/NetworkStats;
+HSPLandroid/net/NetworkStats;->subtract(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Landroid/net/NetworkStats$NonMonotonicObserver;Ljava/lang/Object;)Landroid/net/NetworkStats;
+HSPLandroid/net/NetworkStats;->subtract(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Landroid/net/NetworkStats$NonMonotonicObserver;Ljava/lang/Object;Landroid/net/NetworkStats;)Landroid/net/NetworkStats;
+HSPLandroid/net/NetworkStats;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/NetworkStatsHistory$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkStatsHistory;
+HSPLandroid/net/NetworkStatsHistory$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/NetworkStatsHistory$DataStreamUtils;->readVarLong(Ljava/io/DataInputStream;)J
+HSPLandroid/net/NetworkStatsHistory$DataStreamUtils;->readVarLongArray(Ljava/io/DataInputStream;)[J
+HPLandroid/net/NetworkStatsHistory$DataStreamUtils;->writeVarLong(Ljava/io/DataOutputStream;J)V
+HPLandroid/net/NetworkStatsHistory$DataStreamUtils;->writeVarLongArray(Ljava/io/DataOutputStream;[JI)V
+HSPLandroid/net/NetworkStatsHistory$Entry;-><init>()V
+HPLandroid/net/NetworkStatsHistory$ParcelUtils;->writeLongArray(Landroid/os/Parcel;[JI)V
+HSPLandroid/net/NetworkStatsHistory;-><init>(J)V
+HPLandroid/net/NetworkStatsHistory;-><init>(JI)V
+HSPLandroid/net/NetworkStatsHistory;-><init>(JII)V
+HSPLandroid/net/NetworkStatsHistory;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/net/NetworkStatsHistory;-><init>(Ljava/io/DataInputStream;)V
+HSPLandroid/net/NetworkStatsHistory;->addLong([JIJ)V
+HSPLandroid/net/NetworkStatsHistory;->ensureBuckets(JJ)V
+HSPLandroid/net/NetworkStatsHistory;->getBucketDuration()J
+HSPLandroid/net/NetworkStatsHistory;->getEnd()J
+HSPLandroid/net/NetworkStatsHistory;->getIndexAfter(J)I
+HSPLandroid/net/NetworkStatsHistory;->getLong([JIJ)J
+HSPLandroid/net/NetworkStatsHistory;->getStart()J
+HSPLandroid/net/NetworkStatsHistory;->getTotalBytes()J
+HSPLandroid/net/NetworkStatsHistory;->getValues(ILandroid/net/NetworkStatsHistory$Entry;)Landroid/net/NetworkStatsHistory$Entry;
+HPLandroid/net/NetworkStatsHistory;->getValues(JJJLandroid/net/NetworkStatsHistory$Entry;)Landroid/net/NetworkStatsHistory$Entry;
+HSPLandroid/net/NetworkStatsHistory;->insertBucket(IJ)V
+HSPLandroid/net/NetworkStatsHistory;->recordData(JJLandroid/net/NetworkStats$Entry;)V
+HSPLandroid/net/NetworkStatsHistory;->recordEntireHistory(Landroid/net/NetworkStatsHistory;)V
+HSPLandroid/net/NetworkStatsHistory;->recordHistory(Landroid/net/NetworkStatsHistory;JJ)V
+HSPLandroid/net/NetworkStatsHistory;->setLong([JIJ)V
+HSPLandroid/net/NetworkStatsHistory;->size()I
+HPLandroid/net/NetworkStatsHistory;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/net/NetworkStatsHistory;->writeToStream(Ljava/io/DataOutputStream;)V
+HSPLandroid/net/NetworkTemplate$1;-><init>()V
+HSPLandroid/net/NetworkTemplate$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkTemplate;
+HSPLandroid/net/NetworkTemplate$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/NetworkTemplate;-><clinit>()V
 HSPLandroid/net/NetworkTemplate;-><init>(ILjava/lang/String;Ljava/lang/String;)V
 HSPLandroid/net/NetworkTemplate;-><init>(ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/net/NetworkTemplate;-><init>(ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;III)V
+HSPLandroid/net/NetworkTemplate;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/net/NetworkTemplate;-><init>(Landroid/os/Parcel;Landroid/net/NetworkTemplate$1;)V
+HSPLandroid/net/NetworkTemplate;->buildTemplateMobileAll(Ljava/lang/String;)Landroid/net/NetworkTemplate;
+HSPLandroid/net/NetworkTemplate;->buildTemplateMobileWildcard()Landroid/net/NetworkTemplate;
+HSPLandroid/net/NetworkTemplate;->buildTemplateWifiWildcard()Landroid/net/NetworkTemplate;
+HSPLandroid/net/NetworkTemplate;->getMatchRule()I
+HSPLandroid/net/NetworkTemplate;->getNetworkId()Ljava/lang/String;
+HSPLandroid/net/NetworkTemplate;->getSubscriberId()Ljava/lang/String;
+HSPLandroid/net/NetworkTemplate;->hashCode()I
 HSPLandroid/net/NetworkTemplate;->isKnownMatchRule(I)Z
+HSPLandroid/net/NetworkTemplate;->isMatchRuleMobile()Z
+HSPLandroid/net/NetworkTemplate;->isPersistable()Z
+HPLandroid/net/NetworkTemplate;->matches(Landroid/net/NetworkIdentity;)Z
+HPLandroid/net/NetworkTemplate;->matchesDefaultNetwork(Landroid/net/NetworkIdentity;)Z
+HPLandroid/net/NetworkTemplate;->matchesMetered(Landroid/net/NetworkIdentity;)Z
+HPLandroid/net/NetworkTemplate;->matchesMobile(Landroid/net/NetworkIdentity;)Z
+HPLandroid/net/NetworkTemplate;->matchesMobileWildcard(Landroid/net/NetworkIdentity;)Z
+HPLandroid/net/NetworkTemplate;->matchesRoaming(Landroid/net/NetworkIdentity;)Z
+HPLandroid/net/NetworkTemplate;->matchesWifiWildcard(Landroid/net/NetworkIdentity;)Z
+HSPLandroid/net/NetworkTemplate;->normalize(Landroid/net/NetworkTemplate;Ljava/util/List;)Landroid/net/NetworkTemplate;
 HSPLandroid/net/NetworkTemplate;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/net/NetworkUtils;->makeStrings(Ljava/util/Collection;)[Ljava/lang/String;
 HSPLandroid/net/NetworkUtils;->maskRawAddress([BI)V
+HSPLandroid/net/NetworkUtils;->parseIpAndMask(Ljava/lang/String;)Landroid/util/Pair;
+PLandroid/net/NetworkWatchlistManager;->reportWatchlistIfNecessary()V
 HSPLandroid/net/Proxy;->setHttpProxySystemProperty(Landroid/net/ProxyInfo;)V
 HSPLandroid/net/Proxy;->setHttpProxySystemProperty(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
 HSPLandroid/net/RouteInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/RouteInfo;
 HSPLandroid/net/RouteInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;Ljava/net/InetAddress;Ljava/lang/String;)V
 HSPLandroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;Ljava/net/InetAddress;Ljava/lang/String;I)V
 HSPLandroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;Ljava/net/InetAddress;Ljava/lang/String;II)V
+HPLandroid/net/RouteInfo;-><init>(Landroid/net/LinkAddress;Ljava/net/InetAddress;Ljava/lang/String;)V
 HSPLandroid/net/RouteInfo;->equals(Ljava/lang/Object;)Z
 HSPLandroid/net/RouteInfo;->getDestination()Landroid/net/IpPrefix;
 HSPLandroid/net/RouteInfo;->getGateway()Ljava/net/InetAddress;
 HSPLandroid/net/RouteInfo;->getInterface()Ljava/lang/String;
+HSPLandroid/net/RouteInfo;->getMtu()I
 HSPLandroid/net/RouteInfo;->getType()I
+HSPLandroid/net/RouteInfo;->hasGateway()Z
 HSPLandroid/net/RouteInfo;->isDefaultRoute()Z
 HSPLandroid/net/RouteInfo;->isHost()Z
+HSPLandroid/net/RouteInfo;->isIPv4Default()Z
+HPLandroid/net/RouteInfo;->isIPv6Default()Z
+HPLandroid/net/RouteInfo;->matches(Ljava/net/InetAddress;)Z
+HPLandroid/net/RouteInfo;->selectBestRoute(Ljava/util/Collection;Ljava/net/InetAddress;)Landroid/net/RouteInfo;
 HSPLandroid/net/RouteInfo;->toString()Ljava/lang/String;
+HSPLandroid/net/RouteInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/RssiCurve$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/RssiCurve;
+HSPLandroid/net/RssiCurve$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/RssiCurve;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/net/RssiCurve;-><init>(Landroid/os/Parcel;Landroid/net/RssiCurve$1;)V
+HSPLandroid/net/RssiCurve;->lookupScore(IZ)B
+HSPLandroid/net/RssiCurve;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/ScoredNetwork$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/ScoredNetwork;
+HSPLandroid/net/ScoredNetwork$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/ScoredNetwork$1;->newArray(I)[Landroid/net/ScoredNetwork;
+HPLandroid/net/ScoredNetwork$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/net/ScoredNetwork;-><init>(Landroid/net/NetworkKey;Landroid/net/RssiCurve;Z)V
+HSPLandroid/net/ScoredNetwork;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/net/ScoredNetwork;-><init>(Landroid/os/Parcel;Landroid/net/ScoredNetwork$1;)V
+HSPLandroid/net/ScoredNetwork;->calculateBadge(I)I
+HSPLandroid/net/ScoredNetwork;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/SntpClient;-><init>()V
+PLandroid/net/SntpClient;->checkValidServerReply(BBIJ)V
+PLandroid/net/SntpClient;->getNtpTime()J
+PLandroid/net/SntpClient;->getNtpTimeReference()J
+PLandroid/net/SntpClient;->getRoundTripTime()J
+PLandroid/net/SntpClient;->read32([BI)J
+PLandroid/net/SntpClient;->readTimeStamp([BI)J
+PLandroid/net/SntpClient;->requestTime(Ljava/lang/String;ILandroid/net/Network;)Z
+PLandroid/net/SntpClient;->requestTime(Ljava/net/InetAddress;IILandroid/net/Network;)Z
+PLandroid/net/SntpClient;->writeTimeStamp([BIJ)V
+HSPLandroid/net/StaticIpConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/StaticIpConfiguration;
+HSPLandroid/net/StaticIpConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/StaticIpConfiguration$Builder;-><init>()V
+HPLandroid/net/StaticIpConfiguration$Builder;->build()Landroid/net/StaticIpConfiguration;
+HPLandroid/net/StaticIpConfiguration$Builder;->setDnsServers(Ljava/lang/Iterable;)Landroid/net/StaticIpConfiguration$Builder;
+PLandroid/net/StaticIpConfiguration$Builder;->setDomains(Ljava/lang/String;)Landroid/net/StaticIpConfiguration$Builder;
+PLandroid/net/StaticIpConfiguration$Builder;->setGateway(Ljava/net/InetAddress;)Landroid/net/StaticIpConfiguration$Builder;
+PLandroid/net/StaticIpConfiguration$Builder;->setIpAddress(Landroid/net/LinkAddress;)Landroid/net/StaticIpConfiguration$Builder;
+HSPLandroid/net/StaticIpConfiguration;-><init>()V
+PLandroid/net/StaticIpConfiguration;->getDnsServers()Ljava/util/List;
+PLandroid/net/StaticIpConfiguration;->getDomains()Ljava/lang/String;
+PLandroid/net/StaticIpConfiguration;->getGateway()Ljava/net/InetAddress;
+PLandroid/net/StaticIpConfiguration;->getIpAddress()Landroid/net/LinkAddress;
+HPLandroid/net/StaticIpConfiguration;->getRoutes(Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/net/StaticIpConfiguration;->readFromParcel(Landroid/os/Parcel;)Landroid/net/StaticIpConfiguration;
+HPLandroid/net/StaticIpConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/StringNetworkSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/StringNetworkSpecifier;
 HSPLandroid/net/StringNetworkSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/StringNetworkSpecifier;-><init>(Ljava/lang/String;)V
 HSPLandroid/net/TelephonyNetworkSpecifier$1;-><init>()V
 HSPLandroid/net/TelephonyNetworkSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/TelephonyNetworkSpecifier;
 HSPLandroid/net/TelephonyNetworkSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/TelephonyNetworkSpecifier$Builder;-><init>()V
+HSPLandroid/net/TelephonyNetworkSpecifier$Builder;->build()Landroid/net/TelephonyNetworkSpecifier;
+HSPLandroid/net/TelephonyNetworkSpecifier$Builder;->setSubscriptionId(I)Landroid/net/TelephonyNetworkSpecifier$Builder;
 HSPLandroid/net/TelephonyNetworkSpecifier;-><clinit>()V
 HSPLandroid/net/TelephonyNetworkSpecifier;-><init>(I)V
+HSPLandroid/net/TelephonyNetworkSpecifier;->equals(Ljava/lang/Object;)Z
+HSPLandroid/net/TelephonyNetworkSpecifier;->getSubscriptionId()I
+HSPLandroid/net/TelephonyNetworkSpecifier;->hashCode()I
+HSPLandroid/net/TelephonyNetworkSpecifier;->satisfiedBy(Landroid/net/NetworkSpecifier;)Z
 HSPLandroid/net/TelephonyNetworkSpecifier;->toString()Ljava/lang/String;
+HSPLandroid/net/TelephonyNetworkSpecifier;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/TrafficStats;->addIfSupported(J)J
 HSPLandroid/net/TrafficStats;->clearThreadStatsTag()V
+HSPLandroid/net/TrafficStats;->clearThreadStatsUid()V
+HSPLandroid/net/TrafficStats;->getAndSetThreadStatsTag(I)I
+HSPLandroid/net/TrafficStats;->getMobileIfaces()[Ljava/lang/String;
+HSPLandroid/net/TrafficStats;->getMobileRxBytes()J
+HSPLandroid/net/TrafficStats;->getMobileTxBytes()J
+HSPLandroid/net/TrafficStats;->getRxBytes(Ljava/lang/String;)J
+HSPLandroid/net/TrafficStats;->getRxPackets(Ljava/lang/String;)J
 HSPLandroid/net/TrafficStats;->getStatsService()Landroid/net/INetworkStatsService;
+HSPLandroid/net/TrafficStats;->getThreadStatsTag()I
+HSPLandroid/net/TrafficStats;->getTotalRxBytes()J
+HSPLandroid/net/TrafficStats;->getTotalTxBytes()J
+HSPLandroid/net/TrafficStats;->getTxBytes(Ljava/lang/String;)J
+HSPLandroid/net/TrafficStats;->getTxPackets(Ljava/lang/String;)J
 HSPLandroid/net/TrafficStats;->getUidRxBytes(I)J
 HSPLandroid/net/TrafficStats;->getUidTxBytes(I)J
 HSPLandroid/net/TrafficStats;->setThreadStatsTag(I)V
+HSPLandroid/net/TrafficStats;->setThreadStatsUid(I)V
+HSPLandroid/net/TrafficStats;->tagSocket(Ljava/net/Socket;)V
+HSPLandroid/net/TrafficStats;->untagSocket(Ljava/net/Socket;)V
 HSPLandroid/net/UidRange$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/UidRange;
 HSPLandroid/net/UidRange$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/net/UidRange;-><init>(II)V
+HSPLandroid/net/UidRange;->count()I
 HSPLandroid/net/UidRange;->equals(Ljava/lang/Object;)Z
 HSPLandroid/net/UidRange;->hashCode()I
 HSPLandroid/net/UidRange;->writeToParcel(Landroid/os/Parcel;I)V
@@ -8913,6 +16966,7 @@
 HSPLandroid/net/Uri$Builder;->encodedAuthority(Ljava/lang/String;)Landroid/net/Uri$Builder;
 HSPLandroid/net/Uri$Builder;->encodedFragment(Ljava/lang/String;)Landroid/net/Uri$Builder;
 HSPLandroid/net/Uri$Builder;->encodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder;
+HSPLandroid/net/Uri$Builder;->encodedQuery(Ljava/lang/String;)Landroid/net/Uri$Builder;
 HSPLandroid/net/Uri$Builder;->fragment(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder;
 HSPLandroid/net/Uri$Builder;->fragment(Ljava/lang/String;)Landroid/net/Uri$Builder;
 HSPLandroid/net/Uri$Builder;->hasSchemeOrAuthority()Z
@@ -8930,6 +16984,7 @@
 HSPLandroid/net/Uri$HierarchicalUri;->getEncodedFragment()Ljava/lang/String;
 HSPLandroid/net/Uri$HierarchicalUri;->getEncodedPath()Ljava/lang/String;
 HSPLandroid/net/Uri$HierarchicalUri;->getEncodedQuery()Ljava/lang/String;
+HSPLandroid/net/Uri$HierarchicalUri;->getFragment()Ljava/lang/String;
 HSPLandroid/net/Uri$HierarchicalUri;->getPath()Ljava/lang/String;
 HSPLandroid/net/Uri$HierarchicalUri;->getPathSegments()Ljava/util/List;
 HSPLandroid/net/Uri$HierarchicalUri;->getQuery()Ljava/lang/String;
@@ -8984,17 +17039,21 @@
 HSPLandroid/net/Uri$StringUri;->getAuthority()Ljava/lang/String;
 HSPLandroid/net/Uri$StringUri;->getAuthorityPart()Landroid/net/Uri$Part;
 HSPLandroid/net/Uri$StringUri;->getEncodedAuthority()Ljava/lang/String;
+HSPLandroid/net/Uri$StringUri;->getEncodedFragment()Ljava/lang/String;
 HSPLandroid/net/Uri$StringUri;->getEncodedPath()Ljava/lang/String;
 HSPLandroid/net/Uri$StringUri;->getEncodedQuery()Ljava/lang/String;
+HSPLandroid/net/Uri$StringUri;->getFragment()Ljava/lang/String;
 HSPLandroid/net/Uri$StringUri;->getFragmentPart()Landroid/net/Uri$Part;
 HSPLandroid/net/Uri$StringUri;->getPath()Ljava/lang/String;
 HSPLandroid/net/Uri$StringUri;->getPathPart()Landroid/net/Uri$PathPart;
 HSPLandroid/net/Uri$StringUri;->getPathSegments()Ljava/util/List;
+HSPLandroid/net/Uri$StringUri;->getQuery()Ljava/lang/String;
 HSPLandroid/net/Uri$StringUri;->getQueryPart()Landroid/net/Uri$Part;
 HSPLandroid/net/Uri$StringUri;->getScheme()Ljava/lang/String;
 HSPLandroid/net/Uri$StringUri;->getSchemeSpecificPart()Ljava/lang/String;
 HSPLandroid/net/Uri$StringUri;->getSsp()Landroid/net/Uri$Part;
 HSPLandroid/net/Uri$StringUri;->isHierarchical()Z
+HSPLandroid/net/Uri$StringUri;->isRelative()Z
 HSPLandroid/net/Uri$StringUri;->parseAuthority(Ljava/lang/String;I)Ljava/lang/String;
 HSPLandroid/net/Uri$StringUri;->parseFragment()Ljava/lang/String;
 HSPLandroid/net/Uri$StringUri;->parsePath()Ljava/lang/String;
@@ -9008,6 +17067,7 @@
 HSPLandroid/net/Uri;-><init>()V
 HSPLandroid/net/Uri;-><init>(Landroid/net/Uri$1;)V
 HSPLandroid/net/Uri;->access$300()Ljava/lang/String;
+HSPLandroid/net/Uri;->checkContentUriWithoutPermission(Ljava/lang/String;I)V
 HSPLandroid/net/Uri;->checkFileUriExposed(Ljava/lang/String;)V
 HSPLandroid/net/Uri;->decode(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/net/Uri;->encode(Ljava/lang/String;)Ljava/lang/String;
@@ -9019,8 +17079,11 @@
 HSPLandroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/net/Uri;->getQueryParameterNames()Ljava/util/Set;
 HSPLandroid/net/Uri;->hashCode()I
+HSPLandroid/net/Uri;->isAbsolute()Z
 HSPLandroid/net/Uri;->isAllowed(CLjava/lang/String;)Z
 HSPLandroid/net/Uri;->isOpaque()Z
+HSPLandroid/net/Uri;->isPathPrefixMatch(Landroid/net/Uri;)Z
+HSPLandroid/net/Uri;->normalizeScheme()Landroid/net/Uri;
 HSPLandroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
 HSPLandroid/net/Uri;->toSafeString()Ljava/lang/String;
 HSPLandroid/net/Uri;->withAppendedPath(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
@@ -9030,33 +17093,299 @@
 HSPLandroid/net/UriCodec;->flushDecodingByteAccumulator(Ljava/lang/StringBuilder;Ljava/nio/charset/CharsetDecoder;Ljava/nio/ByteBuffer;Z)V
 HSPLandroid/net/UriCodec;->getNextCharacter(Ljava/lang/String;IILjava/lang/String;)C
 HSPLandroid/net/UriCodec;->hexCharToValue(C)I
+HSPLandroid/net/WebAddress;-><init>(Ljava/lang/String;)V
+HSPLandroid/net/WebAddress;->toString()Ljava/lang/String;
+HSPLandroid/net/WifiKey$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/WifiKey;
+HSPLandroid/net/WifiKey$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/WifiKey;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/net/WifiKey;-><init>(Landroid/os/Parcel;Landroid/net/WifiKey$1;)V
 HSPLandroid/net/WifiKey;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/net/WifiKey;->equals(Ljava/lang/Object;)Z
+HSPLandroid/net/WifiKey;->hashCode()I
 HSPLandroid/net/WifiKey;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/apf/ApfCapabilities;-><init>(III)V
+HPLandroid/net/apf/ApfCapabilities;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/http/X509TrustManagerExtensions;-><init>(Ljavax/net/ssl/X509TrustManager;)V
 HSPLandroid/net/http/X509TrustManagerExtensions;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+HPLandroid/net/metrics/ConnectStats;-><init>(IJLcom/android/internal/util/TokenBucket;I)V
+HPLandroid/net/metrics/ConnectStats;->addEvent(IILjava/lang/String;)Z
+HPLandroid/net/metrics/ConnectStats;->countConnect(ILjava/lang/String;)V
+HPLandroid/net/metrics/ConnectStats;->countLatency(II)V
+HPLandroid/net/metrics/ConnectStats;->isIPv6(Ljava/lang/String;)Z
+HPLandroid/net/metrics/ConnectStats;->isNonBlocking(I)Z
+HPLandroid/net/metrics/ConnectStats;->isSuccess(I)Z
+HSPLandroid/net/metrics/DefaultNetworkEvent;-><init>(J)V
+PLandroid/net/metrics/DefaultNetworkEvent;->updateDuration(J)V
+HPLandroid/net/metrics/DhcpClientEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/DhcpClientEvent;
+HPLandroid/net/metrics/DhcpClientEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/metrics/DhcpClientEvent;-><init>(Landroid/os/Parcel;)V
+HPLandroid/net/metrics/DhcpClientEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/DhcpClientEvent$1;)V
+PLandroid/net/metrics/DhcpErrorEvent$1;-><init>()V
+PLandroid/net/metrics/DhcpErrorEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/DhcpErrorEvent;
+HPLandroid/net/metrics/DhcpErrorEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/metrics/DhcpErrorEvent;-><clinit>()V
+HPLandroid/net/metrics/DhcpErrorEvent;-><init>(Landroid/os/Parcel;)V
+HPLandroid/net/metrics/DhcpErrorEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/DhcpErrorEvent$1;)V
+HPLandroid/net/metrics/DnsEvent;-><init>(IJI)V
+HPLandroid/net/metrics/DnsEvent;->addResult(BBI)Z
+HPLandroid/net/metrics/DnsEvent;->resize(I)V
+HSPLandroid/net/metrics/IpConnectivityLog;-><init>()V
+HSPLandroid/net/metrics/IpConnectivityLog;->checkLoggerService()Z
+HSPLandroid/net/metrics/IpConnectivityLog;->log(I[ILandroid/net/metrics/IpConnectivityLog$Event;)Z
+HSPLandroid/net/metrics/IpConnectivityLog;->log(Landroid/net/ConnectivityMetricsEvent;)Z
+HSPLandroid/net/metrics/IpConnectivityLog;->makeEv(Landroid/net/metrics/IpConnectivityLog$Event;)Landroid/net/ConnectivityMetricsEvent;
+PLandroid/net/metrics/IpManagerEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/IpManagerEvent;
+PLandroid/net/metrics/IpManagerEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/metrics/IpManagerEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/metrics/IpManagerEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/IpManagerEvent$1;)V
+PLandroid/net/metrics/IpReachabilityEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/IpReachabilityEvent;
+HPLandroid/net/metrics/IpReachabilityEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/metrics/NetworkEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/NetworkEvent;
+HPLandroid/net/metrics/NetworkEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/metrics/NetworkEvent;-><init>(I)V
+HSPLandroid/net/metrics/NetworkEvent;-><init>(IJ)V
+HPLandroid/net/metrics/NetworkEvent;-><init>(Landroid/os/Parcel;)V
+HPLandroid/net/metrics/NetworkEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/NetworkEvent$1;)V
+HPLandroid/net/metrics/NetworkMetrics$Metrics;-><init>()V
+HPLandroid/net/metrics/NetworkMetrics$Metrics;->count(D)V
+HPLandroid/net/metrics/NetworkMetrics$Metrics;->count(DI)V
+HPLandroid/net/metrics/NetworkMetrics$Metrics;->merge(Landroid/net/metrics/NetworkMetrics$Metrics;)V
+HPLandroid/net/metrics/NetworkMetrics$Summary;-><init>(IJ)V
+HPLandroid/net/metrics/NetworkMetrics$Summary;->merge(Landroid/net/metrics/NetworkMetrics$Summary;)V
+HPLandroid/net/metrics/NetworkMetrics;-><init>(IJLcom/android/internal/util/TokenBucket;)V
+HPLandroid/net/metrics/NetworkMetrics;->addConnectResult(IILjava/lang/String;)V
+HPLandroid/net/metrics/NetworkMetrics;->addDnsResult(III)V
+HPLandroid/net/metrics/NetworkMetrics;->addTcpStatsResult(IIII)V
+HPLandroid/net/metrics/RaEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/RaEvent;
+HPLandroid/net/metrics/RaEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/metrics/RaEvent;-><init>(Landroid/os/Parcel;)V
+HPLandroid/net/metrics/ValidationProbeEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/ValidationProbeEvent;
+HPLandroid/net/metrics/ValidationProbeEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/metrics/ValidationProbeEvent$Decoder;-><clinit>()V
+HPLandroid/net/metrics/ValidationProbeEvent;-><init>(Landroid/os/Parcel;)V
+HPLandroid/net/metrics/ValidationProbeEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/ValidationProbeEvent$1;)V
+HSPLandroid/net/metrics/ValidationProbeEvent;->getProbeName(I)Ljava/lang/String;
+HSPLandroid/net/netstats/provider/INetworkStatsProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/netstats/provider/INetworkStatsProvider$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/net/netstats/provider/INetworkStatsProvider$Stub$Proxy;->requestStatsUpdate(I)V
+HPLandroid/net/netstats/provider/INetworkStatsProvider$Stub$Proxy;->setAlert(J)V
+HSPLandroid/net/netstats/provider/INetworkStatsProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/netstats/provider/INetworkStatsProvider;
+HSPLandroid/net/netstats/provider/INetworkStatsProviderCallback$Stub;-><init>()V
+HSPLandroid/net/netstats/provider/INetworkStatsProviderCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/net/netstats/provider/INetworkStatsProviderCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/nsd/INsdManager$Stub;-><init>()V
+HPLandroid/net/nsd/INsdManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/shared/InetAddressUtils;->unparcelInetAddress(Landroid/os/Parcel;)Ljava/net/InetAddress;
+HSPLandroid/net/util/-$$Lambda$MultinetworkPolicyTracker$8YMQ0fPTKk7Fw-_gJjln0JT-g8E;-><init>(Landroid/net/util/MultinetworkPolicyTracker;)V
+HSPLandroid/net/util/-$$Lambda$MultinetworkPolicyTracker$8YMQ0fPTKk7Fw-_gJjln0JT-g8E;->run()V
+HSPLandroid/net/util/KeepaliveUtils;->getSupportedKeepalives(Landroid/content/Context;)[I
+HPLandroid/net/util/LinkPropertiesUtils$CompareResult;-><init>(Ljava/util/Collection;Ljava/util/Collection;)V
+HSPLandroid/net/util/LinkPropertiesUtils;->isIdenticalAddresses(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z
+HSPLandroid/net/util/LinkPropertiesUtils;->isIdenticalDnses(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z
+HSPLandroid/net/util/LinkPropertiesUtils;->isIdenticalHttpProxy(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z
+HSPLandroid/net/util/LinkPropertiesUtils;->isIdenticalInterfaceName(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z
+HSPLandroid/net/util/LinkPropertiesUtils;->isIdenticalRoutes(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z
+HSPLandroid/net/util/MacAddressUtils;->byteAddrFromLongAddr(J)[B
+HSPLandroid/net/util/MacAddressUtils;->isMacAddress([B)Z
+HSPLandroid/net/util/MacAddressUtils;->longAddrFromByteAddr([B)J
+HSPLandroid/net/util/MultinetworkPolicyTracker$1;-><init>(Landroid/net/util/MultinetworkPolicyTracker;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker$2;-><init>(Landroid/net/util/MultinetworkPolicyTracker;Landroid/os/Looper;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker$SettingObserver;-><init>(Landroid/net/util/MultinetworkPolicyTracker;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/Runnable;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker;->access$000(Landroid/net/util/MultinetworkPolicyTracker;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker;->configMeteredMultipathPreference()I
+HSPLandroid/net/util/MultinetworkPolicyTracker;->configRestrictsAvoidBadWifi()Z
+HPLandroid/net/util/MultinetworkPolicyTracker;->getAvoidBadWifi()Z
+HSPLandroid/net/util/MultinetworkPolicyTracker;->getAvoidBadWifiSetting()Ljava/lang/String;
+HSPLandroid/net/util/MultinetworkPolicyTracker;->getResourcesForActiveSubId()Landroid/content/res/Resources;
+HSPLandroid/net/util/MultinetworkPolicyTracker;->lambda$8YMQ0fPTKk7Fw-_gJjln0JT-g8E(Landroid/net/util/MultinetworkPolicyTracker;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker;->reevaluate()V
+HSPLandroid/net/util/MultinetworkPolicyTracker;->reevaluateInternal()V
+HSPLandroid/net/util/MultinetworkPolicyTracker;->start()V
+HSPLandroid/net/util/MultinetworkPolicyTracker;->updateAvoidBadWifi()Z
+HSPLandroid/net/util/MultinetworkPolicyTracker;->updateMeteredMultipathPreference()V
+PLandroid/net/util/NetUtils;->addressTypeMatches(Ljava/net/InetAddress;Ljava/net/InetAddress;)Z
+HPLandroid/net/util/NetUtils;->selectBestRoute(Ljava/util/Collection;Ljava/net/InetAddress;)Landroid/net/RouteInfo;
+HSPLandroid/net/wifi/WifiNetworkScoreCache$CacheListener$1;->run()V
+HSPLandroid/net/wifi/WifiNetworkScoreCache$CacheListener;-><init>(Landroid/os/Handler;)V
+HSPLandroid/net/wifi/WifiNetworkScoreCache$CacheListener;->post(Ljava/util/List;)V
+HSPLandroid/net/wifi/WifiNetworkScoreCache;-><init>(Landroid/content/Context;)V
+HSPLandroid/net/wifi/WifiNetworkScoreCache;-><init>(Landroid/content/Context;Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;)V
+HSPLandroid/net/wifi/WifiNetworkScoreCache;-><init>(Landroid/content/Context;Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;I)V
+HSPLandroid/net/wifi/WifiNetworkScoreCache;->buildNetworkKey(Landroid/net/NetworkKey;)Ljava/lang/String;
+HSPLandroid/net/wifi/WifiNetworkScoreCache;->getScoredNetwork(Landroid/net/NetworkKey;)Landroid/net/ScoredNetwork;
+HSPLandroid/net/wifi/WifiNetworkScoreCache;->registerListener(Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;)V
+HSPLandroid/net/wifi/WifiNetworkScoreCache;->updateScores(Ljava/util/List;)V
+HSPLandroid/net/wifi/wificond/-$$Lambda$WifiCondManager$E-DcVUYhRrwhi7YiitOfpiDZVUI;-><init>(Landroid/net/wifi/wificond/WifiCondManager;)V
+HPLandroid/net/wifi/wificond/-$$Lambda$WifiCondManager$ScanEventHandler$rS5Re_WiaaxPxvx9bAC1Smf03j0;-><init>(Landroid/net/wifi/wificond/WifiCondManager$ScanEventHandler;)V
+HPLandroid/net/wifi/wificond/-$$Lambda$WifiCondManager$ScanEventHandler$rS5Re_WiaaxPxvx9bAC1Smf03j0;->run()V
+PLandroid/net/wifi/wificond/ChannelSettings$1;-><init>()V
+PLandroid/net/wifi/wificond/ChannelSettings;-><clinit>()V
+HPLandroid/net/wifi/wificond/ChannelSettings;-><init>()V
+HPLandroid/net/wifi/wificond/ChannelSettings;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/wifi/wificond/IClientInterface$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/wifi/wificond/IClientInterface$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/net/wifi/wificond/IClientInterface$Stub$Proxy;->getWifiScannerImpl()Landroid/net/wifi/wificond/IWifiScannerImpl;
+HPLandroid/net/wifi/wificond/IClientInterface$Stub$Proxy;->signalPoll()[I
+HSPLandroid/net/wifi/wificond/IClientInterface$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/wificond/IClientInterface;
+HSPLandroid/net/wifi/wificond/IPnoScanEvent$Stub;-><init>()V
+HSPLandroid/net/wifi/wificond/IPnoScanEvent$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/net/wifi/wificond/IScanEvent$Stub;-><init>()V
+HSPLandroid/net/wifi/wificond/IScanEvent$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/net/wifi/wificond/IScanEvent$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/wifi/wificond/IWifiScannerImpl$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/net/wifi/wificond/IWifiScannerImpl$Stub$Proxy;->abortScan()V
+HSPLandroid/net/wifi/wificond/IWifiScannerImpl$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/net/wifi/wificond/IWifiScannerImpl$Stub$Proxy;->getScanResults()[Landroid/net/wifi/wificond/NativeScanResult;
+HPLandroid/net/wifi/wificond/IWifiScannerImpl$Stub$Proxy;->scan(Landroid/net/wifi/wificond/SingleScanSettings;)Z
+HSPLandroid/net/wifi/wificond/IWifiScannerImpl$Stub$Proxy;->subscribePnoScanEvents(Landroid/net/wifi/wificond/IPnoScanEvent;)V
+HSPLandroid/net/wifi/wificond/IWifiScannerImpl$Stub$Proxy;->subscribeScanEvents(Landroid/net/wifi/wificond/IScanEvent;)V
+HSPLandroid/net/wifi/wificond/IWifiScannerImpl$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/wificond/IWifiScannerImpl;
+HSPLandroid/net/wifi/wificond/IWificond$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/wifi/wificond/IWificond$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/net/wifi/wificond/IWificond$Stub$Proxy;->createClientInterface(Ljava/lang/String;)Landroid/net/wifi/wificond/IClientInterface;
+HSPLandroid/net/wifi/wificond/IWificond$Stub$Proxy;->getAvailable2gChannels()[I
+HSPLandroid/net/wifi/wificond/IWificond$Stub$Proxy;->getAvailable5gNonDFSChannels()[I
+HSPLandroid/net/wifi/wificond/IWificond$Stub$Proxy;->getAvailable6gChannels()[I
+HSPLandroid/net/wifi/wificond/IWificond$Stub$Proxy;->getAvailableDFSChannels()[I
+HSPLandroid/net/wifi/wificond/IWificond$Stub$Proxy;->tearDownInterfaces()V
+HSPLandroid/net/wifi/wificond/IWificond$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/wificond/IWificond;
+PLandroid/net/wifi/wificond/NativeScanResult$1;-><init>()V
+HPLandroid/net/wifi/wificond/NativeScanResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/wificond/NativeScanResult;
+HPLandroid/net/wifi/wificond/NativeScanResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/wifi/wificond/NativeScanResult$1;->newArray(I)[Landroid/net/wifi/wificond/NativeScanResult;
+HPLandroid/net/wifi/wificond/NativeScanResult$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/net/wifi/wificond/NativeScanResult;-><clinit>()V
+HPLandroid/net/wifi/wificond/NativeScanResult;-><init>()V
+PLandroid/net/wifi/wificond/NativeScanResult;->getFrequencyMhz()I
+PLandroid/net/wifi/wificond/NativeScanResult;->getInformationElements()[B
+PLandroid/net/wifi/wificond/NativeScanResult;->getRadioChainInfos()Ljava/util/List;
+PLandroid/net/wifi/wificond/NativeScanResult;->getSignalMbm()I
+PLandroid/net/wifi/wificond/NativeScanResult;->getSsid()[B
+PLandroid/net/wifi/wificond/NativeScanResult;->getTsf()J
+PLandroid/net/wifi/wificond/RadioChainInfo$1;-><init>()V
+HPLandroid/net/wifi/wificond/RadioChainInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/wificond/RadioChainInfo;
+HPLandroid/net/wifi/wificond/RadioChainInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/wifi/wificond/RadioChainInfo;-><clinit>()V
+HPLandroid/net/wifi/wificond/RadioChainInfo;-><init>(II)V
+PLandroid/net/wifi/wificond/RadioChainInfo;->getChainId()I
+PLandroid/net/wifi/wificond/RadioChainInfo;->getLevelDbm()I
+PLandroid/net/wifi/wificond/SingleScanSettings$1;-><init>()V
+PLandroid/net/wifi/wificond/SingleScanSettings;-><clinit>()V
+PLandroid/net/wifi/wificond/SingleScanSettings;-><init>()V
+HPLandroid/net/wifi/wificond/SingleScanSettings;->isValidScanType(I)Z
+HPLandroid/net/wifi/wificond/SingleScanSettings;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/wifi/wificond/WifiCondManager$PnoScanEventHandler;-><init>(Landroid/net/wifi/wificond/WifiCondManager;Ljava/util/concurrent/Executor;Landroid/net/wifi/wificond/WifiCondManager$ScanEventCallback;)V
+HSPLandroid/net/wifi/wificond/WifiCondManager$ScanEventHandler;-><init>(Landroid/net/wifi/wificond/WifiCondManager;Ljava/util/concurrent/Executor;Landroid/net/wifi/wificond/WifiCondManager$ScanEventCallback;)V
+HPLandroid/net/wifi/wificond/WifiCondManager$ScanEventHandler;->OnScanResultReady()V
+HPLandroid/net/wifi/wificond/WifiCondManager$ScanEventHandler;->lambda$OnScanResultReady$0$WifiCondManager$ScanEventHandler()V
+HPLandroid/net/wifi/wificond/WifiCondManager$SignalPollResult;-><init>(IIII)V
+HSPLandroid/net/wifi/wificond/WifiCondManager;-><init>(Landroid/content/Context;)V
+PLandroid/net/wifi/wificond/WifiCondManager;->abortScan(Ljava/lang/String;)V
+HSPLandroid/net/wifi/wificond/WifiCondManager;->clearState()V
+HSPLandroid/net/wifi/wificond/WifiCondManager;->enableVerboseLogging(Z)V
+HPLandroid/net/wifi/wificond/WifiCondManager;->getClientInterface(Ljava/lang/String;)Landroid/net/wifi/wificond/IClientInterface;
+HPLandroid/net/wifi/wificond/WifiCondManager;->getScanResults(Ljava/lang/String;I)Ljava/util/List;
+HPLandroid/net/wifi/wificond/WifiCondManager;->getScanType(I)I
+HPLandroid/net/wifi/wificond/WifiCondManager;->getScannerImpl(Ljava/lang/String;)Landroid/net/wifi/wificond/IWifiScannerImpl;
+HPLandroid/net/wifi/wificond/WifiCondManager;->parseOemSecurityTypeElement(II[B)Landroid/net/wifi/wificond/WifiCondManager$OemSecurityType;
+HSPLandroid/net/wifi/wificond/WifiCondManager;->retrieveWificondAndRegisterForDeath()Z
+HSPLandroid/net/wifi/wificond/WifiCondManager;->setupInterfaceForClientMode(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/net/wifi/wificond/WifiCondManager$ScanEventCallback;Landroid/net/wifi/wificond/WifiCondManager$ScanEventCallback;)Z
+HPLandroid/net/wifi/wificond/WifiCondManager;->signalPoll(Ljava/lang/String;)Landroid/net/wifi/wificond/WifiCondManager$SignalPollResult;
+HPLandroid/net/wifi/wificond/WifiCondManager;->startScan(Ljava/lang/String;ILjava/util/Set;Ljava/util/List;)Z
+HSPLandroid/net/wifi/wificond/WifiCondManager;->tearDownInterfaces()Z
+HSPLandroid/nfc/IAppCallback$Stub;-><init>()V
 HSPLandroid/nfc/INfcAdapter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->deviceSupportsNfcSecure()Z
 HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getNfcCardEmulationInterface()Landroid/nfc/INfcCardEmulation;
 HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getNfcFCardEmulationInterface()Landroid/nfc/INfcFCardEmulation;
 HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getNfcTagInterface()Landroid/nfc/INfcTag;
+HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getState()I
 HSPLandroid/nfc/INfcAdapter$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/INfcAdapter;
+HSPLandroid/nfc/INfcCardEmulation$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/nfc/INfcCardEmulation$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/INfcCardEmulation;
+HSPLandroid/nfc/INfcFCardEmulation$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/nfc/INfcFCardEmulation$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/INfcFCardEmulation;
+HSPLandroid/nfc/INfcTag$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/nfc/INfcTag$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/INfcTag;
+HSPLandroid/nfc/NfcActivityManager;-><init>(Landroid/nfc/NfcAdapter;)V
+HSPLandroid/nfc/NfcAdapter$1;-><init>(Landroid/nfc/NfcAdapter;)V
 HSPLandroid/nfc/NfcAdapter;-><init>(Landroid/content/Context;)V
+HSPLandroid/nfc/NfcAdapter;->getCardEmulationService()Landroid/nfc/INfcCardEmulation;
+HSPLandroid/nfc/NfcAdapter;->getContext()Landroid/content/Context;
 HSPLandroid/nfc/NfcAdapter;->getDefaultAdapter(Landroid/content/Context;)Landroid/nfc/NfcAdapter;
 HSPLandroid/nfc/NfcAdapter;->getNfcAdapter(Landroid/content/Context;)Landroid/nfc/NfcAdapter;
+HSPLandroid/nfc/NfcAdapter;->getServiceInterface()Landroid/nfc/INfcAdapter;
 HSPLandroid/nfc/NfcAdapter;->hasBeamFeature()Z
 HSPLandroid/nfc/NfcAdapter;->hasNfcFeature()Z
 HSPLandroid/nfc/NfcAdapter;->hasNfcHceFeature()Z
+HSPLandroid/nfc/NfcAdapter;->isEnabled()Z
+HSPLandroid/nfc/NfcAdapter;->isSecureNfcSupported()Z
 HSPLandroid/nfc/NfcManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/nfc/NfcManager;->getDefaultAdapter()Landroid/nfc/NfcAdapter;
+HSPLandroid/nfc/cardemulation/AidGroup$1;-><init>()V
+HSPLandroid/nfc/cardemulation/AidGroup$1;->createFromParcel(Landroid/os/Parcel;)Landroid/nfc/cardemulation/AidGroup;
+HSPLandroid/nfc/cardemulation/AidGroup$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/nfc/cardemulation/AidGroup;-><clinit>()V
+HSPLandroid/nfc/cardemulation/AidGroup;-><init>(Ljava/util/List;Ljava/lang/String;)V
+HSPLandroid/nfc/cardemulation/AidGroup;->getAids()Ljava/util/List;
+HSPLandroid/nfc/cardemulation/AidGroup;->isValidCategory(Ljava/lang/String;)Z
+HSPLandroid/nfc/cardemulation/AidGroup;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/nfc/cardemulation/CardEmulation;-><clinit>()V
+HSPLandroid/nfc/cardemulation/CardEmulation;-><init>(Landroid/content/Context;Landroid/nfc/INfcCardEmulation;)V
+HSPLandroid/nfc/cardemulation/CardEmulation;->getInstance(Landroid/nfc/NfcAdapter;)Landroid/nfc/cardemulation/CardEmulation;
+HSPLandroid/nfc/cardemulation/CardEmulation;->isValidAid(Ljava/lang/String;)Z
+HSPLandroid/nfc/cardemulation/HostApduService$MsgHandler;-><init>(Landroid/nfc/cardemulation/HostApduService;)V
+HSPLandroid/nfc/cardemulation/HostApduService;-><init>()V
+HSPLandroid/nfc/cardemulation/HostApduService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HSPLandroid/opengl/EGL14;->eglCreateWindowSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Ljava/lang/Object;[II)Landroid/opengl/EGLSurface;
 HSPLandroid/opengl/EGLConfig;-><init>(J)V
 HSPLandroid/opengl/EGLContext;-><init>(J)V
 HSPLandroid/opengl/EGLDisplay;-><init>(J)V
 HSPLandroid/opengl/EGLObjectHandle;-><init>(J)V
 HSPLandroid/opengl/EGLObjectHandle;->getNativeHandle()J
+HSPLandroid/opengl/EGLSurface;-><init>(J)V
+HSPLandroid/opengl/GLES20;->glVertexAttribPointer(IIIZILjava/nio/Buffer;)V
+HSPLandroid/opengl/GLSurfaceView$DefaultWindowSurfaceFactory;-><init>()V
+HSPLandroid/opengl/GLSurfaceView$DefaultWindowSurfaceFactory;-><init>(Landroid/opengl/GLSurfaceView$1;)V
+HSPLandroid/opengl/GLSurfaceView$EglHelper;-><init>(Ljava/lang/ref/WeakReference;)V
+HSPLandroid/opengl/GLSurfaceView$GLThread;-><init>(Ljava/lang/ref/WeakReference;)V
+HSPLandroid/opengl/GLSurfaceView$GLThread;->guardedRun()V
+HSPLandroid/opengl/GLSurfaceView$GLThread;->readyToDraw()Z
+HSPLandroid/opengl/GLSurfaceView$GLThread;->run()V
+HSPLandroid/opengl/GLSurfaceView$GLThread;->setRenderMode(I)V
+HSPLandroid/opengl/GLSurfaceView$GLThread;->stopEglSurfaceLocked()V
+HSPLandroid/opengl/GLSurfaceView$GLThreadManager;-><clinit>()V
+HSPLandroid/opengl/GLSurfaceView$GLThreadManager;-><init>()V
+HSPLandroid/opengl/GLSurfaceView$GLThreadManager;-><init>(Landroid/opengl/GLSurfaceView$1;)V
+HSPLandroid/opengl/GLSurfaceView;-><clinit>()V
+HSPLandroid/opengl/GLSurfaceView;-><init>(Landroid/content/Context;)V
+HSPLandroid/opengl/GLSurfaceView;->access$800()Landroid/opengl/GLSurfaceView$GLThreadManager;
+HSPLandroid/opengl/GLSurfaceView;->checkRenderThreadState()V
+HSPLandroid/opengl/GLSurfaceView;->init()V
+HSPLandroid/opengl/GLSurfaceView;->setEGLConfigChooser(Landroid/opengl/GLSurfaceView$EGLConfigChooser;)V
+HSPLandroid/opengl/GLSurfaceView;->setRenderMode(I)V
+HSPLandroid/opengl/GLSurfaceView;->setRenderer(Landroid/opengl/GLSurfaceView$Renderer;)V
+HSPLandroid/opengl/GLUtils;->texImage2D(IILandroid/graphics/Bitmap;I)V
+HSPLandroid/opengl/Matrix;->setIdentityM([FI)V
+HSPLandroid/opengl/Matrix;->translateM([FIFFF)V
 HSPLandroid/os/-$$Lambda$Build$WrC6eL7oW2Zm9UDTcXXKr0DnOMw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/os/-$$Lambda$PowerManager$1$-RL9hKNKSaGL1mmR-EjQ-Cm9KuA;-><init>(Landroid/os/PowerManager$OnThermalStatusChangedListener;I)V
+HSPLandroid/os/-$$Lambda$PowerManager$1$-RL9hKNKSaGL1mmR-EjQ-Cm9KuA;->run()V
+HPLandroid/os/-$$Lambda$PowerManager$WakeLock$VvFzmRZ4ZGlXx7u3lSAJ_T-YUjw;->run()V
 HSPLandroid/os/-$$Lambda$StrictMode$1yH8AK0bTwVwZOb9x8HoiSBdzr0;->log(Landroid/os/StrictMode$ViolationInfo;)V
 HSPLandroid/os/-$$Lambda$StrictMode$AndroidBlockGuardPolicy$9nBulCQKaMajrWr41SB7f7YRT1I;-><init>(Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/view/IWindowManager;Ljava/util/ArrayList;)V
 HSPLandroid/os/-$$Lambda$StrictMode$AndroidBlockGuardPolicy$9nBulCQKaMajrWr41SB7f7YRT1I;->run()V
+HSPLandroid/os/-$$Lambda$StrictMode$yZJXPvy2veRNA-xL_SWdXzX_OLg;-><init>(ILandroid/os/StrictMode$ViolationInfo;)V
 HSPLandroid/os/-$$Lambda$StrictMode$yZJXPvy2veRNA-xL_SWdXzX_OLg;->run()V
 HSPLandroid/os/-$$Lambda$ThreadLocalWorkSource$IP9vRFCDG5YwbWbXAEGHH52B9IE;->get()Ljava/lang/Object;
+HPLandroid/os/AppZygote;-><init>(Landroid/content/pm/ApplicationInfo;III)V
+HPLandroid/os/AppZygote;->connectToZygoteIfNeededLocked()V
+HPLandroid/os/AppZygote;->getAppInfo()Landroid/content/pm/ApplicationInfo;
+HPLandroid/os/AppZygote;->getProcess()Landroid/os/ChildZygoteProcess;
+HPLandroid/os/AppZygote;->stopZygote()V
+PLandroid/os/AppZygote;->stopZygoteLocked()V
 HSPLandroid/os/AsyncTask$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
 HSPLandroid/os/AsyncTask$3;-><init>(Landroid/os/AsyncTask;)V
 HSPLandroid/os/AsyncTask$3;->call()Ljava/lang/Object;
@@ -9072,6 +17401,7 @@
 HSPLandroid/os/AsyncTask$WorkerRunnable;-><init>()V
 HSPLandroid/os/AsyncTask$WorkerRunnable;-><init>(Landroid/os/AsyncTask$1;)V
 HSPLandroid/os/AsyncTask;-><init>()V
+HSPLandroid/os/AsyncTask;-><init>(Landroid/os/Handler;)V
 HSPLandroid/os/AsyncTask;-><init>(Landroid/os/Looper;)V
 HSPLandroid/os/AsyncTask;->access$500(Landroid/os/AsyncTask;)Ljava/util/concurrent/atomic/AtomicBoolean;
 HSPLandroid/os/AsyncTask;->access$700(Landroid/os/AsyncTask;Ljava/lang/Object;)Ljava/lang/Object;
@@ -9084,7 +17414,10 @@
 HSPLandroid/os/AsyncTask;->finish(Ljava/lang/Object;)V
 HSPLandroid/os/AsyncTask;->getHandler()Landroid/os/Handler;
 HSPLandroid/os/AsyncTask;->getMainHandler()Landroid/os/Handler;
+HSPLandroid/os/AsyncTask;->getStatus()Landroid/os/AsyncTask$Status;
 HSPLandroid/os/AsyncTask;->isCancelled()Z
+HSPLandroid/os/AsyncTask;->onCancelled()V
+HSPLandroid/os/AsyncTask;->onCancelled(Ljava/lang/Object;)V
 HSPLandroid/os/AsyncTask;->onPostExecute(Ljava/lang/Object;)V
 HSPLandroid/os/AsyncTask;->onPreExecute()V
 HSPLandroid/os/AsyncTask;->postResult(Ljava/lang/Object;)Ljava/lang/Object;
@@ -9102,15 +17435,24 @@
 HSPLandroid/os/BaseBundle;->get(Ljava/lang/String;)Ljava/lang/Object;
 HSPLandroid/os/BaseBundle;->getBoolean(Ljava/lang/String;)Z
 HSPLandroid/os/BaseBundle;->getBoolean(Ljava/lang/String;Z)Z
+HSPLandroid/os/BaseBundle;->getBooleanArray(Ljava/lang/String;)[Z
 HSPLandroid/os/BaseBundle;->getByteArray(Ljava/lang/String;)[B
 HSPLandroid/os/BaseBundle;->getCharSequence(Ljava/lang/String;)Ljava/lang/CharSequence;
+HSPLandroid/os/BaseBundle;->getCharSequenceArray(Ljava/lang/String;)[Ljava/lang/CharSequence;
+HSPLandroid/os/BaseBundle;->getCharSequenceArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
+HSPLandroid/os/BaseBundle;->getDouble(Ljava/lang/String;)D
+HSPLandroid/os/BaseBundle;->getDouble(Ljava/lang/String;D)D
+HSPLandroid/os/BaseBundle;->getFloat(Ljava/lang/String;)F
 HSPLandroid/os/BaseBundle;->getFloat(Ljava/lang/String;F)F
+HSPLandroid/os/BaseBundle;->getFloatArray(Ljava/lang/String;)[F
 HSPLandroid/os/BaseBundle;->getInt(Ljava/lang/String;)I
 HSPLandroid/os/BaseBundle;->getInt(Ljava/lang/String;I)I
 HSPLandroid/os/BaseBundle;->getIntArray(Ljava/lang/String;)[I
 HSPLandroid/os/BaseBundle;->getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
 HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;)J
 HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;J)J
+HSPLandroid/os/BaseBundle;->getLongArray(Ljava/lang/String;)[J
+HSPLandroid/os/BaseBundle;->getMap()Landroid/util/ArrayMap;
 HSPLandroid/os/BaseBundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable;
 HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
@@ -9122,11 +17464,15 @@
 HSPLandroid/os/BaseBundle;->isEmptyParcel(Landroid/os/Parcel;)Z
 HSPLandroid/os/BaseBundle;->isParcelled()Z
 HSPLandroid/os/BaseBundle;->keySet()Ljava/util/Set;
+HPLandroid/os/BaseBundle;->kindofEquals(Landroid/os/BaseBundle;)Z
+HSPLandroid/os/BaseBundle;->putAll(Landroid/os/PersistableBundle;)V
 HSPLandroid/os/BaseBundle;->putAll(Landroid/util/ArrayMap;)V
 HSPLandroid/os/BaseBundle;->putBoolean(Ljava/lang/String;Z)V
+HSPLandroid/os/BaseBundle;->putBooleanArray(Ljava/lang/String;[Z)V
 HSPLandroid/os/BaseBundle;->putByteArray(Ljava/lang/String;[B)V
 HSPLandroid/os/BaseBundle;->putCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)V
 HSPLandroid/os/BaseBundle;->putCharSequenceArray(Ljava/lang/String;[Ljava/lang/CharSequence;)V
+HSPLandroid/os/BaseBundle;->putDouble(Ljava/lang/String;D)V
 HSPLandroid/os/BaseBundle;->putFloat(Ljava/lang/String;F)V
 HSPLandroid/os/BaseBundle;->putInt(Ljava/lang/String;I)V
 HSPLandroid/os/BaseBundle;->putIntArray(Ljava/lang/String;[I)V
@@ -9142,12 +17488,94 @@
 HSPLandroid/os/BaseBundle;->recycleParcel(Landroid/os/Parcel;)V
 HSPLandroid/os/BaseBundle;->remove(Ljava/lang/String;)V
 HSPLandroid/os/BaseBundle;->setClassLoader(Ljava/lang/ClassLoader;)V
+HSPLandroid/os/BaseBundle;->setShouldDefuse(Z)V
 HSPLandroid/os/BaseBundle;->size()I
+HSPLandroid/os/BaseBundle;->typeWarning(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/ClassCastException;)V
 HSPLandroid/os/BaseBundle;->unparcel()V
 HSPLandroid/os/BaseBundle;->writeToParcelInner(Landroid/os/Parcel;I)V
 HSPLandroid/os/BatteryManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IBatteryStats;Landroid/os/IBatteryPropertiesRegistrar;)V
+HSPLandroid/os/BatteryManager;->getIntProperty(I)I
 HSPLandroid/os/BatteryManager;->isCharging()Z
+HSPLandroid/os/BatteryManager;->queryProperty(I)J
+HSPLandroid/os/BatteryManagerInternal;-><init>()V
 HSPLandroid/os/BatteryProperty;-><init>()V
+HSPLandroid/os/BatteryProperty;->getLong()J
+HSPLandroid/os/BatteryProperty;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/os/BatteryProperty;->setLong(J)V
+HPLandroid/os/BatteryProperty;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/BatteryStats$ControllerActivityCounter;-><init>()V
+HSPLandroid/os/BatteryStats$Counter;-><init>()V
+HSPLandroid/os/BatteryStats$DailyItem;-><init>()V
+HSPLandroid/os/BatteryStats$HistoryEventTracker;-><init>()V
+HSPLandroid/os/BatteryStats$HistoryEventTracker;->updateState(ILjava/lang/String;II)Z
+HSPLandroid/os/BatteryStats$HistoryItem;-><init>()V
+HSPLandroid/os/BatteryStats$HistoryItem;->clear()V
+HSPLandroid/os/BatteryStats$HistoryItem;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/BatteryStats$HistoryItem;->setTo(JBLandroid/os/BatteryStats$HistoryItem;)V
+HSPLandroid/os/BatteryStats$HistoryItem;->setTo(Landroid/os/BatteryStats$HistoryItem;)V
+HSPLandroid/os/BatteryStats$HistoryItem;->setToCommon(Landroid/os/BatteryStats$HistoryItem;)V
+HSPLandroid/os/BatteryStats$HistoryItem;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/os/BatteryStats$HistoryPrinter;-><init>()V
+HPLandroid/os/BatteryStats$HistoryPrinter;->printNextItem(Landroid/os/BatteryStats$HistoryItem;JZZ)Ljava/lang/String;
+HPLandroid/os/BatteryStats$HistoryPrinter;->printNextItem(Ljava/io/PrintWriter;Landroid/os/BatteryStats$HistoryItem;JZZ)V
+HPLandroid/os/BatteryStats$HistoryPrinter;->reset()V
+HSPLandroid/os/BatteryStats$HistoryStepDetails;-><init>()V
+HSPLandroid/os/BatteryStats$HistoryStepDetails;->clear()V
+HSPLandroid/os/BatteryStats$HistoryStepDetails;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/BatteryStats$HistoryStepDetails;->writeToParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/BatteryStats$HistoryTag;-><init>()V
+HSPLandroid/os/BatteryStats$HistoryTag;->equals(Ljava/lang/Object;)Z
+HSPLandroid/os/BatteryStats$HistoryTag;->hashCode()I
+HSPLandroid/os/BatteryStats$HistoryTag;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/BatteryStats$HistoryTag;->setTo(Landroid/os/BatteryStats$HistoryTag;)V
+HSPLandroid/os/BatteryStats$HistoryTag;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/BatteryStats$LevelStepTracker;-><init>(I)V
+HSPLandroid/os/BatteryStats$LevelStepTracker;->addLevelSteps(IJJ)V
+HSPLandroid/os/BatteryStats$LevelStepTracker;->clearTime()V
+HSPLandroid/os/BatteryStats$LevelStepTracker;->computeTimePerLevel()J
+HSPLandroid/os/BatteryStats$LevelStepTracker;->decodeEntryAt(ILjava/lang/String;)V
+HPLandroid/os/BatteryStats$LevelStepTracker;->getDurationAt(I)J
+HPLandroid/os/BatteryStats$LevelStepTracker;->getInitModeAt(I)I
+HPLandroid/os/BatteryStats$LevelStepTracker;->getLevelAt(I)I
+HPLandroid/os/BatteryStats$LevelStepTracker;->getModModeAt(I)I
+HSPLandroid/os/BatteryStats$LevelStepTracker;->init()V
+HSPLandroid/os/BatteryStats$LevelStepTracker;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/BatteryStats$LevelStepTracker;->writeToParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/BatteryStats$LongCounter;-><init>()V
+HSPLandroid/os/BatteryStats$LongCounterArray;-><init>()V
+HSPLandroid/os/BatteryStats$PackageChange;-><init>()V
+HSPLandroid/os/BatteryStats$Timer;-><init>()V
+HPLandroid/os/BatteryStats$Timer;->getCurrentDurationMsLocked(J)J
+HPLandroid/os/BatteryStats$Timer;->getMaxDurationMsLocked(J)J
+HPLandroid/os/BatteryStats$Timer;->getTotalDurationMsLocked(J)J
+HSPLandroid/os/BatteryStats$Uid$Pkg$Serv;-><init>()V
+HSPLandroid/os/BatteryStats$Uid$Pkg;-><init>()V
+HSPLandroid/os/BatteryStats$Uid$Proc$ExcessivePower;-><init>()V
+HSPLandroid/os/BatteryStats$Uid$Proc;-><init>()V
+HSPLandroid/os/BatteryStats$Uid$Sensor;-><init>()V
+HSPLandroid/os/BatteryStats$Uid$Wakelock;-><init>()V
+HSPLandroid/os/BatteryStats$Uid;-><init>()V
+HSPLandroid/os/BatteryStats;-><init>()V
+HPLandroid/os/BatteryStats;->controllerActivityHasData(Landroid/os/BatteryStats$ControllerActivityCounter;I)Z
+HPLandroid/os/BatteryStats;->dumpCheckinLocked(Landroid/content/Context;Ljava/io/PrintWriter;IIZ)V
+HPLandroid/os/BatteryStats;->dumpCheckinLocked(Landroid/content/Context;Ljava/io/PrintWriter;Ljava/util/List;IJ)V
+HPLandroid/os/BatteryStats;->dumpControllerActivityLine(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$ControllerActivityCounter;I)V
+HPLandroid/os/BatteryStats;->dumpDurationSteps(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$LevelStepTracker;Z)Z
+HPLandroid/os/BatteryStats;->dumpHistoryLocked(Ljava/io/PrintWriter;IJZ)V
+HPLandroid/os/BatteryStats;->dumpLine(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
+HPLandroid/os/BatteryStats;->dumpLineHeader(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;)V
+HPLandroid/os/BatteryStats;->dumpTimer(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$Timer;JI)V
+HSPLandroid/os/BatteryStats;->mapToInternalProcessState(I)I
+HPLandroid/os/BatteryStats;->printBitDescriptions(Ljava/lang/StringBuilder;IILandroid/os/BatteryStats$HistoryTag;[Landroid/os/BatteryStats$BitDescription;Z)V
+HPLandroid/os/BatteryStats;->printWakeLockCheckin(Ljava/lang/StringBuilder;Landroid/os/BatteryStats$Timer;JLjava/lang/String;ILjava/lang/String;)Ljava/lang/String;
+HSPLandroid/os/BatteryStatsManager;-><init>(Lcom/android/internal/app/IBatteryStats;)V
+PLandroid/os/BatteryStatsManager;->getWifiBatteryStats()Landroid/os/connectivity/WifiBatteryStats;
+HSPLandroid/os/BestClock;-><init>(Ljava/time/ZoneId;[Ljava/time/Clock;)V
+HSPLandroid/os/BestClock;->millis()J
+HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;-><init>()V
+HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactEnded(Ljava/lang/Object;)V
+HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactStarted(Landroid/os/IBinder;I)Ljava/lang/Object;
+HSPLandroid/os/Binder$ProxyTransactListener;->onTransactStarted(Landroid/os/IBinder;II)Ljava/lang/Object;
 HSPLandroid/os/Binder;-><init>()V
 HSPLandroid/os/Binder;-><init>(Ljava/lang/String;)V
 HSPLandroid/os/Binder;->allowBlocking(Landroid/os/IBinder;)Landroid/os/IBinder;
@@ -9155,29 +17583,48 @@
 HSPLandroid/os/Binder;->checkParcel(Landroid/os/IBinder;ILandroid/os/Parcel;Ljava/lang/String;)V
 HSPLandroid/os/Binder;->copyAllowBlocking(Landroid/os/IBinder;Landroid/os/IBinder;)V
 HSPLandroid/os/Binder;->defaultBlocking(Landroid/os/IBinder;)Landroid/os/IBinder;
+HSPLandroid/os/Binder;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLandroid/os/Binder;->dump(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
 HSPLandroid/os/Binder;->execTransact(IJJI)Z
 HSPLandroid/os/Binder;->execTransactInternal(IJJII)Z
 HSPLandroid/os/Binder;->getCallingUserHandle()Landroid/os/UserHandle;
 HSPLandroid/os/Binder;->getInterfaceDescriptor()Ljava/lang/String;
 HSPLandroid/os/Binder;->isBinderAlive()Z
+HPLandroid/os/Binder;->isProxy(Landroid/os/IInterface;)Z
 HSPLandroid/os/Binder;->isTracingEnabled()Z
 HSPLandroid/os/Binder;->linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V
 HSPLandroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/Binder;->pingBinder()Z
 HSPLandroid/os/Binder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
+HSPLandroid/os/Binder;->setObserver(Lcom/android/internal/os/BinderInternal$Observer;)V
+HSPLandroid/os/Binder;->setProxyTransactListener(Landroid/os/Binder$ProxyTransactListener;)V
+HSPLandroid/os/Binder;->setWarnOnBlocking(Z)V
+HSPLandroid/os/Binder;->setWorkSourceProvider(Lcom/android/internal/os/BinderInternal$WorkSourceProvider;)V
 HSPLandroid/os/Binder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/os/Binder;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)Z
 HSPLandroid/os/Binder;->withCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;)V
+HSPLandroid/os/Binder;->withCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingSupplier;)Ljava/lang/Object;
 HSPLandroid/os/BinderProxy$ProxyMap;->get(J)Landroid/os/BinderProxy;
 HSPLandroid/os/BinderProxy$ProxyMap;->hash(J)I
 HSPLandroid/os/BinderProxy$ProxyMap;->remove(II)V
 HSPLandroid/os/BinderProxy$ProxyMap;->set(JLandroid/os/BinderProxy;)V
 HSPLandroid/os/BinderProxy;-><init>(J)V
+HSPLandroid/os/BinderProxy;->dump(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
 HSPLandroid/os/BinderProxy;->getInstance(JJ)Landroid/os/BinderProxy;
 HSPLandroid/os/BinderProxy;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
 HSPLandroid/os/BinderProxy;->sendDeathNotice(Landroid/os/IBinder$DeathRecipient;Landroid/os/IBinder;)V
+HSPLandroid/os/BinderProxy;->setTransactListener(Landroid/os/Binder$ProxyTransactListener;)V
 HSPLandroid/os/BinderProxy;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/Build;->ensureFingerprintProperty()V
+HSPLandroid/os/Build;->getRadioVersion()Ljava/lang/String;
+HSPLandroid/os/Build;->getSerial()Ljava/lang/String;
+HSPLandroid/os/Build;->isBuildConsistent()Z
+HSPLandroid/os/Build;->joinListOrElse(Ljava/util/List;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/os/Build;->lambda$joinListOrElse$0(Ljava/lang/Object;)Ljava/lang/String;
 HSPLandroid/os/Bundle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Bundle;
 HSPLandroid/os/Bundle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/Bundle$1;->newArray(I)[Landroid/os/Bundle;
+HSPLandroid/os/Bundle$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/os/Bundle;-><init>()V
 HSPLandroid/os/Bundle;-><init>(I)V
 HSPLandroid/os/Bundle;-><init>(Landroid/os/Bundle;)V
@@ -9187,11 +17634,16 @@
 HSPLandroid/os/Bundle;->clear()V
 HSPLandroid/os/Bundle;->clone()Ljava/lang/Object;
 HSPLandroid/os/Bundle;->deepCopy()Landroid/os/Bundle;
+HSPLandroid/os/Bundle;->describeContents()I
+HSPLandroid/os/Bundle;->forPair(Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
 HSPLandroid/os/Bundle;->getBinder(Ljava/lang/String;)Landroid/os/IBinder;
 HSPLandroid/os/Bundle;->getBundle(Ljava/lang/String;)Landroid/os/Bundle;
 HSPLandroid/os/Bundle;->getByteArray(Ljava/lang/String;)[B
 HSPLandroid/os/Bundle;->getCharSequence(Ljava/lang/String;)Ljava/lang/CharSequence;
+HSPLandroid/os/Bundle;->getCharSequenceArray(Ljava/lang/String;)[Ljava/lang/CharSequence;
+HSPLandroid/os/Bundle;->getFloat(Ljava/lang/String;)F
 HSPLandroid/os/Bundle;->getFloat(Ljava/lang/String;F)F
+HSPLandroid/os/Bundle;->getFloatArray(Ljava/lang/String;)[F
 HSPLandroid/os/Bundle;->getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
 HSPLandroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable;
 HSPLandroid/os/Bundle;->getParcelableArray(Ljava/lang/String;)[Landroid/os/Parcelable;
@@ -9199,6 +17651,7 @@
 HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable;
 HSPLandroid/os/Bundle;->getSparseParcelableArray(Ljava/lang/String;)Landroid/util/SparseArray;
 HSPLandroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
+HSPLandroid/os/Bundle;->hasFileDescriptors()Z
 HSPLandroid/os/Bundle;->maybePrefillHasFds()V
 HSPLandroid/os/Bundle;->putAll(Landroid/os/Bundle;)V
 HSPLandroid/os/Bundle;->putBinder(Ljava/lang/String;Landroid/os/IBinder;)V
@@ -9211,6 +17664,7 @@
 HSPLandroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V
 HSPLandroid/os/Bundle;->putParcelableArray(Ljava/lang/String;[Landroid/os/Parcelable;)V
 HSPLandroid/os/Bundle;->putParcelableArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
+HSPLandroid/os/Bundle;->putParcelableList(Ljava/lang/String;Ljava/util/List;)V
 HSPLandroid/os/Bundle;->putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V
 HSPLandroid/os/Bundle;->putSparseParcelableArray(Ljava/lang/String;Landroid/util/SparseArray;)V
 HSPLandroid/os/Bundle;->putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
@@ -9220,10 +17674,12 @@
 HSPLandroid/os/Bundle;->setClassLoader(Ljava/lang/ClassLoader;)V
 HSPLandroid/os/Bundle;->setDefusable(Landroid/os/Bundle;Z)Landroid/os/Bundle;
 HSPLandroid/os/Bundle;->setDefusable(Z)V
+HPLandroid/os/Bundle;->toShortString()Ljava/lang/String;
 HSPLandroid/os/Bundle;->toString()Ljava/lang/String;
 HSPLandroid/os/Bundle;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/os/CancellationSignal$Transport;-><init>()V
 HSPLandroid/os/CancellationSignal$Transport;-><init>(Landroid/os/CancellationSignal$1;)V
+HSPLandroid/os/CancellationSignal$Transport;->cancel()V
 HSPLandroid/os/CancellationSignal;-><init>()V
 HSPLandroid/os/CancellationSignal;->cancel()V
 HSPLandroid/os/CancellationSignal;->createTransport()Landroid/os/ICancellationSignal;
@@ -9233,12 +17689,21 @@
 HSPLandroid/os/CancellationSignal;->setRemote(Landroid/os/ICancellationSignal;)V
 HSPLandroid/os/CancellationSignal;->throwIfCanceled()V
 HSPLandroid/os/CancellationSignal;->waitForCancelFinishedLocked()V
+HSPLandroid/os/ChildZygoteProcess;-><init>(Landroid/net/LocalSocketAddress;I)V
+PLandroid/os/ChildZygoteProcess;->getPid()I
 HSPLandroid/os/ConditionVariable;-><init>()V
 HSPLandroid/os/ConditionVariable;-><init>(Z)V
 HSPLandroid/os/ConditionVariable;->block()V
 HSPLandroid/os/ConditionVariable;->block(J)Z
 HSPLandroid/os/ConditionVariable;->close()V
 HSPLandroid/os/ConditionVariable;->open()V
+PLandroid/os/CoolingDevice$1;-><init>()V
+PLandroid/os/CoolingDevice;-><clinit>()V
+HPLandroid/os/CoolingDevice;-><init>(JILjava/lang/String;)V
+HPLandroid/os/CoolingDevice;->getName()Ljava/lang/String;
+HPLandroid/os/CoolingDevice;->getType()I
+HPLandroid/os/CoolingDevice;->getValue()J
+HPLandroid/os/CoolingDevice;->isValidType(I)Z
 HSPLandroid/os/DeadObjectException;-><init>()V
 HSPLandroid/os/Debug$MemoryInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Debug$MemoryInfo;
 HSPLandroid/os/Debug$MemoryInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
@@ -9284,12 +17749,44 @@
 HSPLandroid/os/Debug$MemoryInfo;->getTotalSwappablePss()I
 HSPLandroid/os/Debug$MemoryInfo;->getTotalSwappedOut()I
 HSPLandroid/os/Debug$MemoryInfo;->getTotalSwappedOutPss()I
+HPLandroid/os/Debug$MemoryInfo;->getTotalUss()I
+HSPLandroid/os/Debug$MemoryInfo;->hasSwappedOutPss()Z
 HSPLandroid/os/Debug$MemoryInfo;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/os/Debug$MemoryInfo;->set(Landroid/os/Debug$MemoryInfo;)V
+HPLandroid/os/Debug$MemoryInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/os/Debug;->countInstancesOfClass(Ljava/lang/Class;)J
+HSPLandroid/os/Debug;->dumpService(Ljava/lang/String;Ljava/io/FileDescriptor;[Ljava/lang/String;)Z
+HSPLandroid/os/Debug;->getCaller([Ljava/lang/StackTraceElement;I)Ljava/lang/String;
+HSPLandroid/os/Debug;->getCallers(I)Ljava/lang/String;
+HSPLandroid/os/Debug;->getMethodTracingMode()I
+HSPLandroid/os/Debug;->getVmFeatureList()[Ljava/lang/String;
 HSPLandroid/os/Debug;->isDebuggerConnected()Z
+HSPLandroid/os/Debug;->threadCpuTimeNanos()J
 HSPLandroid/os/Debug;->waitingForDebugger()Z
+HSPLandroid/os/DeviceIdleManager;-><init>(Landroid/content/Context;Landroid/os/IDeviceIdleController;)V
+HSPLandroid/os/DeviceIdleManager;->getService()Landroid/os/IDeviceIdleController;
+HSPLandroid/os/DeviceIdleManager;->isApplicationWhitelisted(Ljava/lang/String;)Z
+HSPLandroid/os/DropBoxManager$Entry$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/DropBoxManager$Entry;
+HSPLandroid/os/DropBoxManager$Entry$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;J)V
+HSPLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;JLandroid/os/ParcelFileDescriptor;I)V
+HSPLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;JLjava/io/File;I)V
+HSPLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;JLjava/lang/String;)V
+HSPLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;J[BI)V
+HSPLandroid/os/DropBoxManager$Entry;->close()V
+HSPLandroid/os/DropBoxManager$Entry;->getFlags()I
+HSPLandroid/os/DropBoxManager$Entry;->getInputStream()Ljava/io/InputStream;
+HSPLandroid/os/DropBoxManager$Entry;->getTag()Ljava/lang/String;
+HSPLandroid/os/DropBoxManager$Entry;->getTimeMillis()J
+HSPLandroid/os/DropBoxManager$Entry;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/DropBoxManager;-><init>(Landroid/content/Context;Lcom/android/internal/os/IDropBoxManagerService;)V
+HSPLandroid/os/DropBoxManager;->addFile(Ljava/lang/String;Ljava/io/File;I)V
+HSPLandroid/os/DropBoxManager;->addText(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/DropBoxManager;->getNextEntry(Ljava/lang/String;J)Landroid/os/DropBoxManager$Entry;
+HSPLandroid/os/DropBoxManager;->isTagEnabled(Ljava/lang/String;)Z
 HSPLandroid/os/Environment$UserEnvironment;-><init>(I)V
 HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppCacheDirs(Ljava/lang/String;)[Ljava/io/File;
+HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppDataDirs(Ljava/lang/String;)[Ljava/io/File;
 HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File;
 HSPLandroid/os/Environment$UserEnvironment;->buildExternalStoragePublicDirs(Ljava/lang/String;)[Ljava/io/File;
 HSPLandroid/os/Environment$UserEnvironment;->getExternalDirs()[Ljava/io/File;
@@ -9297,18 +17794,53 @@
 HSPLandroid/os/Environment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File;
 HSPLandroid/os/Environment;->buildPath(Ljava/io/File;[Ljava/lang/String;)Ljava/io/File;
 HSPLandroid/os/Environment;->buildPaths([Ljava/io/File;[Ljava/lang/String;)[Ljava/io/File;
+HSPLandroid/os/Environment;->getApexDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getDataAppDirectory(Ljava/lang/String;)Ljava/io/File;
 HSPLandroid/os/Environment;->getDataDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getDataDirectory(Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataMiscCeDirectory()Ljava/io/File;
 HSPLandroid/os/Environment;->getDataProfilesDeDirectory(I)Ljava/io/File;
 HSPLandroid/os/Environment;->getDataProfilesDePackageDirectory(ILjava/lang/String;)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataSystemCeDirectory()Ljava/io/File;
+HPLandroid/os/Environment;->getDataSystemCeDirectory(I)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataSystemDeDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getDataSystemDeDirectory(I)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataSystemDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getDataUserCeDirectory(Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataUserCeDirectory(Ljava/lang/String;I)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataUserCePackageDirectory(Ljava/lang/String;ILjava/lang/String;)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataUserDeDirectory(Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataUserDeDirectory(Ljava/lang/String;I)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataUserDePackageDirectory(Ljava/lang/String;ILjava/lang/String;)Ljava/io/File;
+HSPLandroid/os/Environment;->getDownloadCacheDirectory()Ljava/io/File;
 HSPLandroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getExternalStoragePublicDirectory(Ljava/lang/String;)Ljava/io/File;
 HSPLandroid/os/Environment;->getExternalStorageState()Ljava/lang/String;
+HSPLandroid/os/Environment;->getExternalStorageState(Ljava/io/File;)Ljava/lang/String;
+HSPLandroid/os/Environment;->getLegacyExternalStorageDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getOdmDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getOemDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getPackageCacheDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getProductDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getRootDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getSystemExtDirectory()Ljava/io/File;
 HSPLandroid/os/Environment;->getUserConfigDirectory(I)Ljava/io/File;
+HSPLandroid/os/Environment;->getUserSystemDirectory(I)Ljava/io/File;
+HSPLandroid/os/Environment;->getVendorDirectory()Ljava/io/File;
 HSPLandroid/os/Environment;->initForCurrentUser()V
 HSPLandroid/os/Environment;->isExternalStorageEmulated()Z
 HSPLandroid/os/Environment;->isExternalStorageEmulated(Ljava/io/File;)Z
+HSPLandroid/os/Environment;->isExternalStorageLegacy()Z
+HSPLandroid/os/Environment;->isExternalStorageLegacy(Ljava/io/File;)Z
+HSPLandroid/os/Environment;->setUserRequired(Z)V
 HSPLandroid/os/Environment;->throwIfUserRequired()V
 HSPLandroid/os/EventLogTags;->writeServiceManagerSlow(ILjava/lang/String;)V
+HSPLandroid/os/EventLogTags;->writeServiceManagerStats(III)V
 HSPLandroid/os/FactoryTest;->getMode()I
+HPLandroid/os/FactoryTest;->isLongPressOnPowerOffEnabled()Z
+HPLandroid/os/FileBridge;-><init>()V
+HPLandroid/os/FileBridge;->forceClose()V
+PLandroid/os/FileBridge;->isClosed()Z
 HSPLandroid/os/FileObserver$ObserverThread;-><init>()V
 HSPLandroid/os/FileObserver$ObserverThread;->onEvent(IILjava/lang/String;)V
 HSPLandroid/os/FileObserver$ObserverThread;->run()V
@@ -9318,12 +17850,39 @@
 HSPLandroid/os/FileObserver;-><init>(Ljava/lang/String;I)V
 HSPLandroid/os/FileObserver;-><init>(Ljava/util/List;I)V
 HSPLandroid/os/FileObserver;->startWatching()V
+HPLandroid/os/FileUtils$1;-><init>()V
+HPLandroid/os/FileUtils$1;->compare(Ljava/io/File;Ljava/io/File;)I
+HPLandroid/os/FileUtils$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/os/FileUtils;->buildValidExtFilename(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/os/FileUtils;->bytesToFile(Ljava/lang/String;[B)V
+HPLandroid/os/FileUtils;->closeQuietly(Ljava/io/FileDescriptor;)V
+HSPLandroid/os/FileUtils;->closeQuietly(Ljava/lang/AutoCloseable;)V
 HSPLandroid/os/FileUtils;->contains(Ljava/io/File;Ljava/io/File;)Z
 HSPLandroid/os/FileUtils;->contains(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/os/FileUtils;->createDir(Ljava/io/File;)Z
+HSPLandroid/os/FileUtils;->createDir(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/os/FileUtils;->deleteContents(Ljava/io/File;)Z
+HSPLandroid/os/FileUtils;->deleteContentsAndDir(Ljava/io/File;)Z
+HSPLandroid/os/FileUtils;->deleteOlderFiles(Ljava/io/File;IJ)Z
+HSPLandroid/os/FileUtils;->isValidExtFilename(Ljava/lang/String;)Z
+HSPLandroid/os/FileUtils;->isValidExtFilenameChar(C)Z
+HSPLandroid/os/FileUtils;->listFilesOrEmpty(Ljava/io/File;)[Ljava/io/File;
+HSPLandroid/os/FileUtils;->listFilesOrEmpty(Ljava/io/File;Ljava/io/FilenameFilter;)[Ljava/io/File;
+HSPLandroid/os/FileUtils;->listOrEmpty(Ljava/io/File;)[Ljava/lang/String;
 HSPLandroid/os/FileUtils;->newFileOrNull(Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/os/FileUtils;->readTextFile(Ljava/io/File;ILjava/lang/String;)Ljava/lang/String;
+HPLandroid/os/FileUtils;->rewriteAfterRename(Ljava/io/File;Ljava/io/File;Ljava/io/File;)Ljava/io/File;
+HPLandroid/os/FileUtils;->roundStorageSize(J)J
+HSPLandroid/os/FileUtils;->setPermissions(Ljava/io/File;III)I
+HSPLandroid/os/FileUtils;->setPermissions(Ljava/io/FileDescriptor;III)I
 HSPLandroid/os/FileUtils;->setPermissions(Ljava/lang/String;III)I
+HSPLandroid/os/FileUtils;->stringToFile(Ljava/io/File;Ljava/lang/String;)V
+HSPLandroid/os/FileUtils;->stringToFile(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/os/FileUtils;->sync(Ljava/io/FileOutputStream;)Z
 HSPLandroid/os/FileUtils;->translateModePfdToPosix(I)I
+HSPLandroid/os/FileUtils;->translateModePosixToPfd(I)I
+HSPLandroid/os/FileUtils;->translateModeStringToPosix(Ljava/lang/String;)I
+HSPLandroid/os/FileUtils;->trimFilename(Ljava/lang/StringBuilder;I)V
 HSPLandroid/os/GraphicsEnvironment;->checkAngleWhitelist(Landroid/content/Context;Landroid/os/Bundle;Ljava/lang/String;)Z
 HSPLandroid/os/GraphicsEnvironment;->chooseDriver(Landroid/content/Context;Landroid/os/Bundle;Landroid/content/pm/PackageManager;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)Z
 HSPLandroid/os/GraphicsEnvironment;->chooseDriverInternal(Landroid/os/Bundle;Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
@@ -9340,6 +17899,9 @@
 HSPLandroid/os/GraphicsEnvironment;->shouldShowAngleInUseDialogBox(Landroid/content/Context;)Z
 HSPLandroid/os/GraphicsEnvironment;->shouldUseAngle(Landroid/content/Context;Landroid/os/Bundle;Ljava/lang/String;)Z
 HSPLandroid/os/GraphicsEnvironment;->showAngleInUseDialogBox(Landroid/content/Context;)V
+HSPLandroid/os/Handler$BlockingRunnable;-><init>(Ljava/lang/Runnable;)V
+HSPLandroid/os/Handler$BlockingRunnable;->postAndWait(Landroid/os/Handler;J)Z
+HSPLandroid/os/Handler$BlockingRunnable;->run()V
 HSPLandroid/os/Handler$MessengerImpl;-><init>(Landroid/os/Handler;)V
 HSPLandroid/os/Handler$MessengerImpl;-><init>(Landroid/os/Handler;Landroid/os/Handler$1;)V
 HSPLandroid/os/Handler$MessengerImpl;->send(Landroid/os/Message;)V
@@ -9356,8 +17918,10 @@
 HSPLandroid/os/Handler;->getIMessenger()Landroid/os/IMessenger;
 HSPLandroid/os/Handler;->getLooper()Landroid/os/Looper;
 HSPLandroid/os/Handler;->getMain()Landroid/os/Handler;
+HSPLandroid/os/Handler;->getMessageName(Landroid/os/Message;)Ljava/lang/String;
 HSPLandroid/os/Handler;->getPostMessage(Ljava/lang/Runnable;)Landroid/os/Message;
 HSPLandroid/os/Handler;->getPostMessage(Ljava/lang/Runnable;Ljava/lang/Object;)Landroid/os/Message;
+HSPLandroid/os/Handler;->getTraceName(Landroid/os/Message;)Ljava/lang/String;
 HSPLandroid/os/Handler;->handleCallback(Landroid/os/Message;)V
 HSPLandroid/os/Handler;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/os/Handler;->hasCallbacks(Ljava/lang/Runnable;)Z
@@ -9372,11 +17936,14 @@
 HSPLandroid/os/Handler;->postAtFrontOfQueue(Ljava/lang/Runnable;)Z
 HSPLandroid/os/Handler;->postAtTime(Ljava/lang/Runnable;J)Z
 HSPLandroid/os/Handler;->postAtTime(Ljava/lang/Runnable;Ljava/lang/Object;J)Z
+HSPLandroid/os/Handler;->postDelayed(Ljava/lang/Runnable;IJ)Z
 HSPLandroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
+HSPLandroid/os/Handler;->postDelayed(Ljava/lang/Runnable;Ljava/lang/Object;J)Z
 HSPLandroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
 HSPLandroid/os/Handler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
 HSPLandroid/os/Handler;->removeMessages(I)V
 HSPLandroid/os/Handler;->removeMessages(ILjava/lang/Object;)V
+HSPLandroid/os/Handler;->runWithScissors(Ljava/lang/Runnable;J)Z
 HSPLandroid/os/Handler;->sendEmptyMessage(I)Z
 HSPLandroid/os/Handler;->sendEmptyMessageAtTime(IJ)Z
 HSPLandroid/os/Handler;->sendEmptyMessageDelayed(IJ)Z
@@ -9390,29 +17957,93 @@
 HSPLandroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
 HSPLandroid/os/HandlerThread;-><init>(Ljava/lang/String;I)V
 HSPLandroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
+HSPLandroid/os/HandlerThread;->getThreadHandler()Landroid/os/Handler;
+HSPLandroid/os/HandlerThread;->getThreadId()I
 HSPLandroid/os/HandlerThread;->onLooperPrepared()V
 HSPLandroid/os/HandlerThread;->quit()Z
 HSPLandroid/os/HandlerThread;->quitSafely()Z
 HSPLandroid/os/HandlerThread;->run()V
+HPLandroid/os/HidlMemory;-><init>(Ljava/lang/String;JLandroid/os/NativeHandle;)V
+PLandroid/os/HidlMemory;->close()V
+HPLandroid/os/HidlMemory;->finalize()V
+HPLandroid/os/HidlMemory;->getHandle()Landroid/os/NativeHandle;
+HPLandroid/os/HidlMemory;->getName()Ljava/lang/String;
+HPLandroid/os/HidlMemory;->getSize()J
+HPLandroid/os/HidlMemoryUtil;->byteArrayToHidlMemory([BLjava/lang/String;)Landroid/os/HidlMemory;
+HSPLandroid/os/HidlSupport;->interfacesEqual(Landroid/os/IHwInterface;Ljava/lang/Object;)Z
 HSPLandroid/os/HwBinder;-><init>()V
+HSPLandroid/os/HwBinder;->getService(Ljava/lang/String;Ljava/lang/String;)Landroid/os/IHwBinder;
 HSPLandroid/os/HwBlob;-><init>(I)V
+HPLandroid/os/HwBlob;->putHidlMemory(JLandroid/os/HidlMemory;)V
 HSPLandroid/os/HwBlob;->wrapArray([B)[Ljava/lang/Byte;
+HSPLandroid/os/HwBlob;->wrapArray([I)[Ljava/lang/Integer;
 HSPLandroid/os/HwParcel;-><init>()V
 HSPLandroid/os/HwParcel;-><init>(Z)V
+HSPLandroid/os/HwParcel;->readInt32Vector()Ljava/util/ArrayList;
 HSPLandroid/os/HwParcel;->readInt8Vector()Ljava/util/ArrayList;
 HSPLandroid/os/HwParcel;->readStringVector()Ljava/util/ArrayList;
+HSPLandroid/os/HwParcel;->writeInt32Vector(Ljava/util/ArrayList;)V
+HSPLandroid/os/HwParcel;->writeInt8Vector(Ljava/util/ArrayList;)V
 HSPLandroid/os/HwParcel;->writeStringVector(Ljava/util/ArrayList;)V
 HSPLandroid/os/HwRemoteBinder;-><init>()V
 HSPLandroid/os/HwRemoteBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IHwInterface;
 HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->getProperty(ILandroid/os/BatteryProperty;)I
+HSPLandroid/os/IBatteryPropertiesRegistrar$Stub;-><init>()V
 HSPLandroid/os/IBatteryPropertiesRegistrar$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IBatteryPropertiesRegistrar;
+HPLandroid/os/IBatteryPropertiesRegistrar$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/os/IBinder$DeathRecipient;->binderDied(Landroid/os/IBinder;)V
 HSPLandroid/os/IBinder;->getSuggestedMaxIpcSizeBytes()I
 HSPLandroid/os/ICancellationSignal$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/os/ICancellationSignal$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/os/ICancellationSignal$Stub$Proxy;->cancel()V
 HSPLandroid/os/ICancellationSignal$Stub;-><init>()V
+HSPLandroid/os/ICancellationSignal$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/os/ICancellationSignal$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ICancellationSignal;
+HSPLandroid/os/ICancellationSignal$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub$Proxy;->getSerialForPackage(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub;-><init>()V
+HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdentifiersPolicyService;
+HPLandroid/os/IDeviceIdentifiersPolicyService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IDeviceIdleController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/IDeviceIdleController$Stub$Proxy;->addPowerSaveTempWhitelistApp(Ljava/lang/String;JILjava/lang/String;)V
+HSPLandroid/os/IDeviceIdleController$Stub$Proxy;->isPowerSaveWhitelistApp(Ljava/lang/String;)Z
+HSPLandroid/os/IDeviceIdleController$Stub;-><init>()V
 HSPLandroid/os/IDeviceIdleController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdleController;
+HPLandroid/os/IDeviceIdleController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IDumpstate$Stub;-><init>()V
+HPLandroid/os/IDumpstate$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IExternalVibratorService$Stub;-><init>()V
+HPLandroid/os/IExternalVibratorService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IHardwarePropertiesManager$Stub;-><init>()V
+HPLandroid/os/IHardwarePropertiesManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IIncidentCompanion$Stub;-><init>()V
+HPLandroid/os/IIncidentCompanion$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IIncidentManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/IIncidentManager$Stub$Proxy;->systemRunning()V
+HSPLandroid/os/IIncidentManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IIncidentManager;
+HSPLandroid/os/IInstalld$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/os/IInstalld$Stub$Proxy;->clearAppData(Ljava/lang/String;Ljava/lang/String;IIJ)V
+HSPLandroid/os/IInstalld$Stub$Proxy;->clearAppProfiles(Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/os/IInstalld$Stub$Proxy;->copySystemProfile(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/os/IInstalld$Stub$Proxy;->createAppData(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;I)J
+HPLandroid/os/IInstalld$Stub$Proxy;->createProfileSnapshot(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+PLandroid/os/IInstalld$Stub$Proxy;->createUserData(Ljava/lang/String;III)V
+HPLandroid/os/IInstalld$Stub$Proxy;->destroyProfileSnapshot(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/IInstalld$Stub$Proxy;->dexopt(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/IInstalld$Stub$Proxy;->fixupAppData(Ljava/lang/String;I)V
+HPLandroid/os/IInstalld$Stub$Proxy;->getAppSize(Ljava/lang/String;[Ljava/lang/String;III[J[Ljava/lang/String;)[J
+HPLandroid/os/IInstalld$Stub$Proxy;->getUserSize(Ljava/lang/String;II[I)[J
+HSPLandroid/os/IInstalld$Stub$Proxy;->invalidateMounts()V
+HPLandroid/os/IInstalld$Stub$Proxy;->isQuotaSupported(Ljava/lang/String;)Z
+HPLandroid/os/IInstalld$Stub$Proxy;->linkNativeLibraryDirectory(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+PLandroid/os/IInstalld$Stub$Proxy;->migrateLegacyObbData()V
+HPLandroid/os/IInstalld$Stub$Proxy;->moveAb(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/IInstalld$Stub$Proxy;->prepareAppProfile(Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/os/IInstalld$Stub$Proxy;->rmPackageDir(Ljava/lang/String;)V
+HSPLandroid/os/IInstalld$Stub$Proxy;->rmdex(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/IInstalld$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IInstalld;
 HSPLandroid/os/IMessenger$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/os/IMessenger$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/os/IMessenger$Stub$Proxy;->send(Landroid/os/Message;)V
@@ -9420,44 +18051,155 @@
 HSPLandroid/os/IMessenger$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/os/IMessenger$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IMessenger;
 HSPLandroid/os/IMessenger$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/os/INetworkActivityListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/INetworkActivityListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/os/INetworkActivityListener$Stub$Proxy;->onNetworkActive()V
+HSPLandroid/os/INetworkActivityListener$Stub;-><init>()V
+HSPLandroid/os/INetworkActivityListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/os/INetworkActivityListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/INetworkActivityListener;
+HSPLandroid/os/INetworkActivityListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/os/INetworkManagementService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/INetworkManagementService$Stub$Proxy;->isNetworkActive()Z
+HSPLandroid/os/INetworkManagementService$Stub$Proxy;->registerNetworkActivityListener(Landroid/os/INetworkActivityListener;)V
 HSPLandroid/os/INetworkManagementService$Stub$Proxy;->setUidCleartextNetworkPolicy(II)V
+HSPLandroid/os/INetworkManagementService$Stub;-><init>()V
 HSPLandroid/os/INetworkManagementService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/INetworkManagementService;
+HSPLandroid/os/INetworkManagementService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IPermissionController$Stub;-><init>()V
+HSPLandroid/os/IPermissionController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/os/IPowerManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/os/IPowerManager$Stub$Proxy;->acquireWakeLock(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;)V
+HSPLandroid/os/IPowerManager$Stub$Proxy;->getPowerSaveState(I)Landroid/os/PowerSaveState;
 HSPLandroid/os/IPowerManager$Stub$Proxy;->isDeviceIdleMode()Z
 HSPLandroid/os/IPowerManager$Stub$Proxy;->isInteractive()Z
+HSPLandroid/os/IPowerManager$Stub$Proxy;->isLightDeviceIdleMode()Z
 HSPLandroid/os/IPowerManager$Stub$Proxy;->isPowerSaveMode()Z
 HSPLandroid/os/IPowerManager$Stub$Proxy;->releaseWakeLock(Landroid/os/IBinder;I)V
+HSPLandroid/os/IPowerManager$Stub$Proxy;->setDozeAfterScreenOff(Z)V
+HSPLandroid/os/IPowerManager$Stub$Proxy;->updateWakeLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;)V
+HSPLandroid/os/IPowerManager$Stub$Proxy;->userActivity(JII)V
+HSPLandroid/os/IPowerManager$Stub$Proxy;->wakeUp(JILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/IPowerManager$Stub;-><init>()V
 HSPLandroid/os/IPowerManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IPowerManager;
+HSPLandroid/os/IPowerManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IProcessInfoService$Stub;-><init>()V
+HPLandroid/os/IProcessInfoService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IProgressListener$Stub;-><init>()V
+HSPLandroid/os/IProgressListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/os/IPullAtomCallback$Stub;-><init>()V
+HSPLandroid/os/IPullAtomCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/os/IPullAtomCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IPullAtomResultReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/IPullAtomResultReceiver$Stub$Proxy;->pullFinished(IZ[Landroid/util/StatsEventParcel;)V
+HSPLandroid/os/IPullAtomResultReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IPullAtomResultReceiver;
+HSPLandroid/os/IRecoverySystem$Stub;-><init>()V
+HPLandroid/os/IRecoverySystem$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/os/IRemoteCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/os/IRemoteCallback$Stub$Proxy;->sendResult(Landroid/os/Bundle;)V
 HSPLandroid/os/IRemoteCallback$Stub;-><init>()V
 HSPLandroid/os/IRemoteCallback$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/os/IRemoteCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IRemoteCallback;
 HSPLandroid/os/IRemoteCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/ISchedulingPolicyService$Stub;-><init>()V
+HSPLandroid/os/ISchedulingPolicyService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/os/IServiceManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/os/IServiceManager$Stub$Proxy;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
 HSPLandroid/os/IServiceManager$Stub$Proxy;->checkService(Ljava/lang/String;)Landroid/os/IBinder;
 HSPLandroid/os/IServiceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IServiceManager;
+HSPLandroid/os/IStatsManagerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/IStatsManagerService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IStatsManagerService;
+HSPLandroid/os/IStatsd$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/IStatsd$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IStatsd;
+HSPLandroid/os/IStoraged$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/os/IStoraged$Stub$Proxy;->getRecentPerf()I
+PLandroid/os/IStoraged$Stub$Proxy;->onUserStarted(I)V
+HSPLandroid/os/IStoraged$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IStoraged;
+HSPLandroid/os/ISystemConfig$Stub;-><init>()V
+HSPLandroid/os/ISystemUpdateManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/ISystemUpdateManager$Stub$Proxy;->retrieveSystemUpdateInfo()Landroid/os/Bundle;
+HSPLandroid/os/ISystemUpdateManager$Stub;-><init>()V
+HSPLandroid/os/ISystemUpdateManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ISystemUpdateManager;
+HPLandroid/os/ISystemUpdateManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/os/IThermalEventListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IThermalEventListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/os/IThermalEventListener$Stub$Proxy;->notifyThrottling(Landroid/os/Temperature;)V
+HSPLandroid/os/IThermalEventListener$Stub;-><init>()V
+HSPLandroid/os/IThermalEventListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/os/IThermalEventListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IThermalEventListener;
+HSPLandroid/os/IThermalEventListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IThermalService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/IThermalService$Stub$Proxy;->registerThermalEventListenerWithType(Landroid/os/IThermalEventListener;I)Z
+HSPLandroid/os/IThermalService$Stub;-><init>()V
+HSPLandroid/os/IThermalService$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/os/IThermalService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IThermalService;
+HPLandroid/os/IThermalService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IThermalStatusListener$Stub;-><init>()V
+HSPLandroid/os/IThermalStatusListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/os/IUpdateLock$Stub;-><init>()V
+HPLandroid/os/IUpdateLock$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/os/IUserManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/os/IUserManager$Stub$Proxy;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
 HSPLandroid/os/IUserManager$Stub$Proxy;->getProfileIds(IZ)[I
 HSPLandroid/os/IUserManager$Stub$Proxy;->getProfileParent(I)Landroid/content/pm/UserInfo;
 HSPLandroid/os/IUserManager$Stub$Proxy;->getProfiles(IZ)Ljava/util/List;
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserAccount(I)Ljava/lang/String;
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserBadgeColorResId(I)I
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserCreationTime(I)J
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserHandle(I)I
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserIcon(I)Landroid/os/ParcelFileDescriptor;
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserIconBadgeResId(I)I
 HSPLandroid/os/IUserManager$Stub$Proxy;->getUserInfo(I)Landroid/content/pm/UserInfo;
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserRestrictionSources(Ljava/lang/String;I)Ljava/util/List;
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserRestrictions(I)Landroid/os/Bundle;
 HSPLandroid/os/IUserManager$Stub$Proxy;->getUserSerialNumber(I)I
 HSPLandroid/os/IUserManager$Stub$Proxy;->getUsers(ZZZ)Ljava/util/List;
+HSPLandroid/os/IUserManager$Stub$Proxy;->hasBadge(I)Z
+HSPLandroid/os/IUserManager$Stub$Proxy;->hasBaseUserRestriction(Ljava/lang/String;I)Z
 HSPLandroid/os/IUserManager$Stub$Proxy;->hasUserRestriction(Ljava/lang/String;I)Z
 HSPLandroid/os/IUserManager$Stub$Proxy;->isDemoUser(I)Z
 HSPLandroid/os/IUserManager$Stub$Proxy;->isManagedProfile(I)Z
 HSPLandroid/os/IUserManager$Stub$Proxy;->isProfile(I)Z
+HSPLandroid/os/IUserManager$Stub$Proxy;->isUserRunning(I)Z
 HSPLandroid/os/IUserManager$Stub$Proxy;->isUserUnlocked(I)Z
 HSPLandroid/os/IUserManager$Stub$Proxy;->isUserUnlockingOrUnlocked(I)Z
+HSPLandroid/os/IUserManager$Stub;-><init>()V
 HSPLandroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
+HSPLandroid/os/IUserManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IUserRestrictionsListener$Stub;-><init>()V
 HSPLandroid/os/IVibratorService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/IVibratorService$Stub$Proxy;->hasVibrator()Z
+HSPLandroid/os/IVibratorService$Stub$Proxy;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Landroid/os/VibrationAttributes;Ljava/lang/String;Landroid/os/IBinder;)V
+HSPLandroid/os/IVibratorService$Stub;-><init>()V
 HSPLandroid/os/IVibratorService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVibratorService;
+HSPLandroid/os/IVibratorService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IVold$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IVold$Stub$Proxy;->commitChanges()V
+PLandroid/os/IVold$Stub$Proxy;->fdeClearPassword()V
+PLandroid/os/IVold$Stub$Proxy;->fdeGetPassword()Ljava/lang/String;
+HPLandroid/os/IVold$Stub$Proxy;->monitor()V
+PLandroid/os/IVold$Stub$Proxy;->mount(Ljava/lang/String;IILandroid/os/IVoldMountCallback;)V
+HSPLandroid/os/IVold$Stub$Proxy;->needsCheckpoint()Z
+HSPLandroid/os/IVold$Stub$Proxy;->onSecureKeyguardStateChanged(Z)V
+PLandroid/os/IVold$Stub$Proxy;->onUserAdded(II)V
+PLandroid/os/IVold$Stub$Proxy;->onUserStarted(I)V
+PLandroid/os/IVold$Stub$Proxy;->prepareUserStorage(Ljava/lang/String;III)V
+HSPLandroid/os/IVold$Stub$Proxy;->remountUid(II)V
+PLandroid/os/IVold$Stub$Proxy;->reset()V
+HSPLandroid/os/IVold$Stub$Proxy;->setListener(Landroid/os/IVoldListener;)V
+PLandroid/os/IVold$Stub$Proxy;->unlockUserKey(IILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/IVold$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVold;
+HSPLandroid/os/IVoldListener$Stub;-><init>()V
+HSPLandroid/os/IVoldListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/os/IVoldListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/os/IVoldMountCallback$Stub;-><init>()V
+PLandroid/os/IVoldMountCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/os/IVoldTaskListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/os/IVoldTaskListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IncidentManager$IncidentReport$1;-><init>()V
+HSPLandroid/os/IncidentManager$IncidentReport$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/IncidentManager$IncidentReport;
+HSPLandroid/os/IncidentManager$IncidentReport$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/IncidentManager$IncidentReport;-><clinit>()V
+HSPLandroid/os/IncidentManager$IncidentReport;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/os/LocaleList$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/LocaleList;
 HSPLandroid/os/LocaleList$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/LocaleList;-><init>(Ljava/util/Locale;Landroid/os/LocaleList;)V
@@ -9498,10 +18240,19 @@
 HSPLandroid/os/Looper;->prepareMainLooper()V
 HSPLandroid/os/Looper;->quit()V
 HSPLandroid/os/Looper;->quitSafely()V
+HSPLandroid/os/Looper;->setObserver(Landroid/os/Looper$Observer;)V
 HSPLandroid/os/Looper;->setSlowLogThresholdMs(JJ)V
 HSPLandroid/os/Looper;->setTraceTag(J)V
 HSPLandroid/os/Looper;->showSlowLog(JJJLjava/lang/String;Landroid/os/Message;)Z
 HSPLandroid/os/Looper;->toString()Ljava/lang/String;
+HSPLandroid/os/MemoryFile;-><init>(Ljava/lang/String;I)V
+HSPLandroid/os/MemoryFile;->beginAccess()V
+HSPLandroid/os/MemoryFile;->checkActive()V
+HSPLandroid/os/MemoryFile;->close()V
+HSPLandroid/os/MemoryFile;->deactivate()V
+HSPLandroid/os/MemoryFile;->endAccess()V
+HSPLandroid/os/MemoryFile;->getFileDescriptor()Ljava/io/FileDescriptor;
+HSPLandroid/os/MemoryFile;->writeBytes([BIII)V
 HSPLandroid/os/Message$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Message;
 HSPLandroid/os/Message$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/Message;-><init>()V
@@ -9530,19 +18281,24 @@
 HSPLandroid/os/Message;->setAsynchronous(Z)V
 HSPLandroid/os/Message;->setCallback(Ljava/lang/Runnable;)Landroid/os/Message;
 HSPLandroid/os/Message;->setData(Landroid/os/Bundle;)V
+HSPLandroid/os/Message;->setTarget(Landroid/os/Handler;)V
 HSPLandroid/os/Message;->setWhat(I)Landroid/os/Message;
 HSPLandroid/os/Message;->toString()Ljava/lang/String;
 HSPLandroid/os/Message;->toString(J)Ljava/lang/String;
 HSPLandroid/os/Message;->updateCheckRecycle(I)V
 HSPLandroid/os/Message;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/MessageQueue$FileDescriptorRecord;-><init>(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
 HSPLandroid/os/MessageQueue;-><init>(Z)V
 HSPLandroid/os/MessageQueue;->addIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V
 HSPLandroid/os/MessageQueue;->addOnFileDescriptorEventListener(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
+HSPLandroid/os/MessageQueue;->dispatchEvents(II)I
 HSPLandroid/os/MessageQueue;->dispose()V
 HSPLandroid/os/MessageQueue;->enqueueMessage(Landroid/os/Message;J)Z
 HSPLandroid/os/MessageQueue;->finalize()V
 HSPLandroid/os/MessageQueue;->hasMessages(Landroid/os/Handler;ILjava/lang/Object;)Z
 HSPLandroid/os/MessageQueue;->hasMessages(Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)Z
+HSPLandroid/os/MessageQueue;->isPolling()Z
+HSPLandroid/os/MessageQueue;->isPollingLocked()Z
 HSPLandroid/os/MessageQueue;->next()Landroid/os/Message;
 HSPLandroid/os/MessageQueue;->postSyncBarrier()I
 HSPLandroid/os/MessageQueue;->postSyncBarrier(J)I
@@ -9559,20 +18315,32 @@
 HSPLandroid/os/Messenger$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/Messenger;-><init>(Landroid/os/Handler;)V
 HSPLandroid/os/Messenger;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/Messenger;->equals(Ljava/lang/Object;)Z
 HSPLandroid/os/Messenger;->getBinder()Landroid/os/IBinder;
+HSPLandroid/os/Messenger;->hashCode()I
 HSPLandroid/os/Messenger;->readMessengerOrNullFromParcel(Landroid/os/Parcel;)Landroid/os/Messenger;
 HSPLandroid/os/Messenger;->send(Landroid/os/Message;)V
 HSPLandroid/os/Messenger;->writeMessengerOrNullToParcel(Landroid/os/Messenger;Landroid/os/Parcel;)V
 HSPLandroid/os/Messenger;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/os/NativeHandle;-><init>(Ljava/io/FileDescriptor;Z)V
+HPLandroid/os/NativeHandle;-><init>([Ljava/io/FileDescriptor;[IZ)V
+HPLandroid/os/NativeHandle;->checkOpen()V
+HPLandroid/os/NativeHandle;->close()V
+HPLandroid/os/NativeHandle;->getFdsAsIntArray()[I
+HPLandroid/os/NativeHandle;->getInts()[I
 HSPLandroid/os/Parcel$2;-><init>(Landroid/os/Parcel;Ljava/io/InputStream;Ljava/lang/ClassLoader;)V
 HSPLandroid/os/Parcel$2;->resolveClass(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;
+HSPLandroid/os/Parcel$ReadWriteHelper;-><init>()V
 HSPLandroid/os/Parcel$ReadWriteHelper;->readString(Landroid/os/Parcel;)Ljava/lang/String;
 HSPLandroid/os/Parcel$ReadWriteHelper;->writeString(Landroid/os/Parcel;Ljava/lang/String;)V
 HSPLandroid/os/Parcel;-><init>(J)V
 HSPLandroid/os/Parcel;->access$000(Landroid/os/Parcel;)J
 HSPLandroid/os/Parcel;->adoptClassCookies(Landroid/os/Parcel;)V
 HSPLandroid/os/Parcel;->appendFrom(Landroid/os/Parcel;II)V
+HPLandroid/os/Parcel;->compareData(Landroid/os/Parcel;)I
 HSPLandroid/os/Parcel;->copyClassCookies()Ljava/util/Map;
+HSPLandroid/os/Parcel;->createBinderArrayList()Ljava/util/ArrayList;
+HSPLandroid/os/Parcel;->createBooleanArray()[Z
 HSPLandroid/os/Parcel;->createByteArray()[B
 HSPLandroid/os/Parcel;->createException(ILjava/lang/String;)Ljava/lang/Exception;
 HSPLandroid/os/Parcel;->createExceptionOrNull(ILjava/lang/String;)Ljava/lang/Exception;
@@ -9583,11 +18351,13 @@
 HSPLandroid/os/Parcel;->createStringArrayList()Ljava/util/ArrayList;
 HSPLandroid/os/Parcel;->createTypedArray(Landroid/os/Parcelable$Creator;)[Ljava/lang/Object;
 HSPLandroid/os/Parcel;->createTypedArrayList(Landroid/os/Parcelable$Creator;)Ljava/util/ArrayList;
+HSPLandroid/os/Parcel;->createTypedArrayMap(Landroid/os/Parcelable$Creator;)Landroid/util/ArrayMap;
 HSPLandroid/os/Parcel;->dataAvail()I
 HSPLandroid/os/Parcel;->dataPosition()I
 HSPLandroid/os/Parcel;->dataSize()I
 HSPLandroid/os/Parcel;->destroy()V
 HSPLandroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
+HSPLandroid/os/Parcel;->ensureReadSquashableParcelables()V
 HSPLandroid/os/Parcel;->finalize()V
 HSPLandroid/os/Parcel;->freeBuffer()V
 HSPLandroid/os/Parcel;->getClassCookie(Ljava/lang/Class;)Ljava/lang/Object;
@@ -9596,32 +18366,39 @@
 HSPLandroid/os/Parcel;->hasReadWriteHelper()Z
 HSPLandroid/os/Parcel;->init(J)V
 HSPLandroid/os/Parcel;->marshall()[B
+HSPLandroid/os/Parcel;->maybeWriteSquashed(Landroid/os/Parcelable;)Z
 HSPLandroid/os/Parcel;->obtain()Landroid/os/Parcel;
 HSPLandroid/os/Parcel;->obtain(J)Landroid/os/Parcel;
 HSPLandroid/os/Parcel;->pushAllowFds(Z)Z
+HSPLandroid/os/Parcel;->putClassCookies(Ljava/util/Map;)V
 HSPLandroid/os/Parcel;->readArrayList(Ljava/lang/ClassLoader;)Ljava/util/ArrayList;
 HSPLandroid/os/Parcel;->readArrayMap(Landroid/util/ArrayMap;Ljava/lang/ClassLoader;)V
 HSPLandroid/os/Parcel;->readArrayMapInternal(Landroid/util/ArrayMap;ILjava/lang/ClassLoader;)V
 HSPLandroid/os/Parcel;->readArraySet(Ljava/lang/ClassLoader;)Landroid/util/ArraySet;
 HSPLandroid/os/Parcel;->readBlob()[B
 HSPLandroid/os/Parcel;->readBoolean()Z
+HSPLandroid/os/Parcel;->readBooleanArray([Z)V
 HSPLandroid/os/Parcel;->readBundle()Landroid/os/Bundle;
 HSPLandroid/os/Parcel;->readBundle(Ljava/lang/ClassLoader;)Landroid/os/Bundle;
 HSPLandroid/os/Parcel;->readByte()B
 HSPLandroid/os/Parcel;->readByteArray([B)V
 HSPLandroid/os/Parcel;->readCharSequence()Ljava/lang/CharSequence;
 HSPLandroid/os/Parcel;->readCharSequenceArray()[Ljava/lang/CharSequence;
+HSPLandroid/os/Parcel;->readCharSequenceList()Ljava/util/ArrayList;
 HSPLandroid/os/Parcel;->readDouble()D
 HSPLandroid/os/Parcel;->readException()V
 HSPLandroid/os/Parcel;->readException(ILjava/lang/String;)V
 HSPLandroid/os/Parcel;->readExceptionCode()I
+HSPLandroid/os/Parcel;->readFileDescriptor()Landroid/os/ParcelFileDescriptor;
 HSPLandroid/os/Parcel;->readFloat()F
+HSPLandroid/os/Parcel;->readFloatArray([F)V
 HSPLandroid/os/Parcel;->readHashMap(Ljava/lang/ClassLoader;)Ljava/util/HashMap;
 HSPLandroid/os/Parcel;->readInt()I
 HSPLandroid/os/Parcel;->readIntArray([I)V
 HSPLandroid/os/Parcel;->readList(Ljava/util/List;Ljava/lang/ClassLoader;)V
 HSPLandroid/os/Parcel;->readListInternal(Ljava/util/List;ILjava/lang/ClassLoader;)V
 HSPLandroid/os/Parcel;->readLong()J
+HSPLandroid/os/Parcel;->readMap(Ljava/util/Map;Ljava/lang/ClassLoader;)V
 HSPLandroid/os/Parcel;->readMapInternal(Ljava/util/Map;ILjava/lang/ClassLoader;)V
 HSPLandroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parcelable;
 HSPLandroid/os/Parcel;->readParcelableArray(Ljava/lang/ClassLoader;)[Landroid/os/Parcelable;
@@ -9634,8 +18411,11 @@
 HSPLandroid/os/Parcel;->readSerializable()Ljava/io/Serializable;
 HSPLandroid/os/Parcel;->readSerializable(Ljava/lang/ClassLoader;)Ljava/io/Serializable;
 HSPLandroid/os/Parcel;->readSparseArray(Ljava/lang/ClassLoader;)Landroid/util/SparseArray;
+HSPLandroid/os/Parcel;->readSparseArrayInternal(Landroid/util/SparseArray;ILjava/lang/ClassLoader;)V
+HSPLandroid/os/Parcel;->readSquashed(Landroid/os/Parcel$SquashReadHelper;)Landroid/os/Parcelable;
 HSPLandroid/os/Parcel;->readString()Ljava/lang/String;
 HSPLandroid/os/Parcel;->readStringArray()[Ljava/lang/String;
+HSPLandroid/os/Parcel;->readStringArray([Ljava/lang/String;)V
 HSPLandroid/os/Parcel;->readStringList(Ljava/util/List;)V
 HSPLandroid/os/Parcel;->readStrongBinder()Landroid/os/IBinder;
 HSPLandroid/os/Parcel;->readTypedArray([Ljava/lang/Object;Landroid/os/Parcelable$Creator;)V
@@ -9645,21 +18425,30 @@
 HSPLandroid/os/Parcel;->recycle()V
 HSPLandroid/os/Parcel;->restoreAllowFds(Z)V
 HSPLandroid/os/Parcel;->setClassCookie(Ljava/lang/Class;Ljava/lang/Object;)V
+HSPLandroid/os/Parcel;->setDataCapacity(I)V
 HSPLandroid/os/Parcel;->setDataPosition(I)V
 HSPLandroid/os/Parcel;->setDataSize(I)V
+HSPLandroid/os/Parcel;->setReadWriteHelper(Landroid/os/Parcel$ReadWriteHelper;)V
+HSPLandroid/os/Parcel;->setStackTraceParceling(Z)V
 HSPLandroid/os/Parcel;->unmarshall([BII)V
 HSPLandroid/os/Parcel;->updateNativeSize(J)V
 HSPLandroid/os/Parcel;->writeArrayMap(Landroid/util/ArrayMap;)V
 HSPLandroid/os/Parcel;->writeArrayMapInternal(Landroid/util/ArrayMap;)V
 HSPLandroid/os/Parcel;->writeArraySet(Landroid/util/ArraySet;)V
 HSPLandroid/os/Parcel;->writeBinderList(Ljava/util/List;)V
+HSPLandroid/os/Parcel;->writeBlob([B)V
+HSPLandroid/os/Parcel;->writeBlob([BII)V
 HSPLandroid/os/Parcel;->writeBoolean(Z)V
+HSPLandroid/os/Parcel;->writeBooleanArray([Z)V
 HSPLandroid/os/Parcel;->writeBundle(Landroid/os/Bundle;)V
 HSPLandroid/os/Parcel;->writeByte(B)V
 HSPLandroid/os/Parcel;->writeByteArray([B)V
 HSPLandroid/os/Parcel;->writeByteArray([BII)V
 HSPLandroid/os/Parcel;->writeCharSequence(Ljava/lang/CharSequence;)V
+HSPLandroid/os/Parcel;->writeCharSequenceArray([Ljava/lang/CharSequence;)V
+HSPLandroid/os/Parcel;->writeCharSequenceList(Ljava/util/ArrayList;)V
 HSPLandroid/os/Parcel;->writeDouble(D)V
+HSPLandroid/os/Parcel;->writeDoubleArray([D)V
 HSPLandroid/os/Parcel;->writeException(Ljava/lang/Exception;)V
 HSPLandroid/os/Parcel;->writeFileDescriptor(Ljava/io/FileDescriptor;)V
 HSPLandroid/os/Parcel;->writeFloat(F)V
@@ -9680,11 +18469,15 @@
 HSPLandroid/os/Parcel;->writePersistableBundle(Landroid/os/PersistableBundle;)V
 HSPLandroid/os/Parcel;->writeSerializable(Ljava/io/Serializable;)V
 HSPLandroid/os/Parcel;->writeSparseArray(Landroid/util/SparseArray;)V
+HSPLandroid/os/Parcel;->writeSparseBooleanArray(Landroid/util/SparseBooleanArray;)V
+HPLandroid/os/Parcel;->writeStackTrace(Ljava/lang/Throwable;)V
 HSPLandroid/os/Parcel;->writeString(Ljava/lang/String;)V
 HSPLandroid/os/Parcel;->writeStringArray([Ljava/lang/String;)V
 HSPLandroid/os/Parcel;->writeStringList(Ljava/util/List;)V
 HSPLandroid/os/Parcel;->writeStrongBinder(Landroid/os/IBinder;)V
+HSPLandroid/os/Parcel;->writeStrongInterface(Landroid/os/IInterface;)V
 HSPLandroid/os/Parcel;->writeTypedArray([Landroid/os/Parcelable;I)V
+HSPLandroid/os/Parcel;->writeTypedArrayMap(Landroid/util/ArrayMap;I)V
 HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;)V
 HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;I)V
 HSPLandroid/os/Parcel;->writeTypedObject(Landroid/os/Parcelable;I)V
@@ -9693,10 +18486,13 @@
 HSPLandroid/os/ParcelFileDescriptor$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V
 HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->close()V
+HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->read()I
 HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->read([B)I
 HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->read([BII)I
 HSPLandroid/os/ParcelFileDescriptor$AutoCloseOutputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V
 HSPLandroid/os/ParcelFileDescriptor$AutoCloseOutputStream;->close()V
+HSPLandroid/os/ParcelFileDescriptor$Status;-><init>(I)V
+HSPLandroid/os/ParcelFileDescriptor$Status;-><init>(ILjava/lang/String;)V
 HSPLandroid/os/ParcelFileDescriptor;-><init>(Landroid/os/ParcelFileDescriptor;)V
 HSPLandroid/os/ParcelFileDescriptor;-><init>(Ljava/io/FileDescriptor;)V
 HSPLandroid/os/ParcelFileDescriptor;-><init>(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)V
@@ -9704,6 +18500,7 @@
 HSPLandroid/os/ParcelFileDescriptor;->canDetectErrors()Z
 HSPLandroid/os/ParcelFileDescriptor;->close()V
 HSPLandroid/os/ParcelFileDescriptor;->closeWithStatus(ILjava/lang/String;)V
+HSPLandroid/os/ParcelFileDescriptor;->createCommSocketPair()[Ljava/io/FileDescriptor;
 HSPLandroid/os/ParcelFileDescriptor;->createPipe()[Landroid/os/ParcelFileDescriptor;
 HSPLandroid/os/ParcelFileDescriptor;->detachFd()I
 HSPLandroid/os/ParcelFileDescriptor;->dup()Landroid/os/ParcelFileDescriptor;
@@ -9711,23 +18508,36 @@
 HSPLandroid/os/ParcelFileDescriptor;->finalize()V
 HSPLandroid/os/ParcelFileDescriptor;->fromFd(I)Landroid/os/ParcelFileDescriptor;
 HSPLandroid/os/ParcelFileDescriptor;->getFd()I
+HSPLandroid/os/ParcelFileDescriptor;->getFile(Ljava/io/FileDescriptor;)Ljava/io/File;
 HSPLandroid/os/ParcelFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor;
+HSPLandroid/os/ParcelFileDescriptor;->getStatSize()J
 HSPLandroid/os/ParcelFileDescriptor;->ifAtLeastQ(I)I
 HSPLandroid/os/ParcelFileDescriptor;->isAtLeastQ()Z
 HSPLandroid/os/ParcelFileDescriptor;->open(Ljava/io/File;I)Landroid/os/ParcelFileDescriptor;
 HSPLandroid/os/ParcelFileDescriptor;->openInternal(Ljava/io/File;I)Ljava/io/FileDescriptor;
+HSPLandroid/os/ParcelFileDescriptor;->parseMode(Ljava/lang/String;)I
+HSPLandroid/os/ParcelFileDescriptor;->readCommStatus(Ljava/io/FileDescriptor;[B)Landroid/os/ParcelFileDescriptor$Status;
 HSPLandroid/os/ParcelFileDescriptor;->releaseResources()V
 HSPLandroid/os/ParcelFileDescriptor;->writeCommStatusAndClose(ILjava/lang/String;)V
 HSPLandroid/os/ParcelFileDescriptor;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/os/ParcelUuid$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ParcelUuid;
 HSPLandroid/os/ParcelUuid$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/ParcelUuid$1;->newArray(I)[Landroid/os/ParcelUuid;
+HSPLandroid/os/ParcelUuid$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/os/ParcelUuid;-><init>(Ljava/util/UUID;)V
+HSPLandroid/os/ParcelUuid;->equals(Ljava/lang/Object;)Z
 HSPLandroid/os/ParcelUuid;->fromString(Ljava/lang/String;)Landroid/os/ParcelUuid;
 HSPLandroid/os/ParcelUuid;->getUuid()Ljava/util/UUID;
 HSPLandroid/os/ParcelUuid;->hashCode()I
 HSPLandroid/os/ParcelUuid;->toString()Ljava/lang/String;
 HSPLandroid/os/ParcelUuid;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/ParcelableException;-><init>(Ljava/lang/Throwable;)V
+HSPLandroid/os/ParcelableException;->maybeRethrow(Ljava/lang/Class;)V
+HSPLandroid/os/ParcelableParcel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ParcelableParcel;
+HSPLandroid/os/ParcelableParcel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/ParcelableParcel;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
 HSPLandroid/os/ParcelableParcel;-><init>(Ljava/lang/ClassLoader;)V
+HSPLandroid/os/ParcelableParcel;->getClassLoader()Ljava/lang/ClassLoader;
 HSPLandroid/os/ParcelableParcel;->getParcel()Landroid/os/Parcel;
 HSPLandroid/os/ParcelableParcel;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/os/PatternMatcher$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PatternMatcher;
@@ -9736,17 +18546,47 @@
 HSPLandroid/os/PatternMatcher$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/os/PatternMatcher;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/os/PatternMatcher;-><init>(Ljava/lang/String;I)V
+HSPLandroid/os/PatternMatcher;->getPath()Ljava/lang/String;
+HSPLandroid/os/PatternMatcher;->getType()I
+HSPLandroid/os/PatternMatcher;->match(Ljava/lang/String;)Z
+HSPLandroid/os/PatternMatcher;->matchGlobPattern(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/os/PatternMatcher;->matchPattern(Ljava/lang/String;Ljava/lang/String;[II)Z
 HSPLandroid/os/PatternMatcher;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/os/PersistableBundle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PersistableBundle;
 HSPLandroid/os/PersistableBundle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/PersistableBundle$MyReadMapCallback;-><init>()V
+HSPLandroid/os/PersistableBundle$MyReadMapCallback;->readThisUnknownObjectXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/Object;
 HSPLandroid/os/PersistableBundle;-><init>()V
+HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/Bundle;)V
 HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/Parcel;I)V
+HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/PersistableBundle;)V
 HSPLandroid/os/PersistableBundle;-><init>(Landroid/util/ArrayMap;)V
 HSPLandroid/os/PersistableBundle;-><init>(Z)V
+HSPLandroid/os/PersistableBundle;->clone()Ljava/lang/Object;
 HSPLandroid/os/PersistableBundle;->deepCopy()Landroid/os/PersistableBundle;
+HSPLandroid/os/PersistableBundle;->getPersistableBundle(Ljava/lang/String;)Landroid/os/PersistableBundle;
 HSPLandroid/os/PersistableBundle;->isValidType(Ljava/lang/Object;)Z
+HSPLandroid/os/PersistableBundle;->putPersistableBundle(Ljava/lang/String;Landroid/os/PersistableBundle;)V
+HSPLandroid/os/PersistableBundle;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/os/PersistableBundle;
+HSPLandroid/os/PersistableBundle;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/os/PersistableBundle;->toString()Ljava/lang/String;
 HSPLandroid/os/PersistableBundle;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/os/PersistableBundle;->writeUnknownObject(Ljava/lang/Object;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/os/PooledStringReader;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/PooledStringReader;->readString()Ljava/lang/String;
+HSPLandroid/os/PooledStringWriter;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/PooledStringWriter;->finish()V
 HSPLandroid/os/PooledStringWriter;->writeString(Ljava/lang/String;)V
+HSPLandroid/os/PowerManager$1;-><init>(Landroid/os/PowerManager;ILjava/lang/String;)V
+HSPLandroid/os/PowerManager$1;-><init>(Landroid/os/PowerManager;Ljava/util/concurrent/Executor;Landroid/os/PowerManager$OnThermalStatusChangedListener;)V
+HSPLandroid/os/PowerManager$1;->lambda$onStatusChange$0(Landroid/os/PowerManager$OnThermalStatusChangedListener;I)V
+HSPLandroid/os/PowerManager$1;->onStatusChange(I)V
+HSPLandroid/os/PowerManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/os/PowerManager$1;->recompute(Ljava/lang/Void;)Ljava/lang/Boolean;
+HSPLandroid/os/PowerManager$2;-><init>(Landroid/os/PowerManager;ILjava/lang/String;)V
+HSPLandroid/os/PowerManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/os/PowerManager$2;->recompute(Ljava/lang/Void;)Ljava/lang/Boolean;
+HPLandroid/os/PowerManager$WakeData;-><init>(JI)V
 HSPLandroid/os/PowerManager$WakeLock$1;-><init>(Landroid/os/PowerManager$WakeLock;)V
 HSPLandroid/os/PowerManager$WakeLock$1;->run()V
 HSPLandroid/os/PowerManager$WakeLock;-><init>(Landroid/os/PowerManager;ILjava/lang/String;Ljava/lang/String;)V
@@ -9755,41 +18595,100 @@
 HSPLandroid/os/PowerManager$WakeLock;->acquireLocked()V
 HSPLandroid/os/PowerManager$WakeLock;->finalize()V
 HSPLandroid/os/PowerManager$WakeLock;->isHeld()Z
+HPLandroid/os/PowerManager$WakeLock;->lambda$wrap$0$PowerManager$WakeLock(Ljava/lang/Runnable;)V
 HSPLandroid/os/PowerManager$WakeLock;->release()V
 HSPLandroid/os/PowerManager$WakeLock;->release(I)V
+HPLandroid/os/PowerManager$WakeLock;->setHistoryTag(Ljava/lang/String;)V
 HSPLandroid/os/PowerManager$WakeLock;->setReferenceCounted(Z)V
+HSPLandroid/os/PowerManager$WakeLock;->setWorkSource(Landroid/os/WorkSource;)V
+HSPLandroid/os/PowerManager$WakeLock;->toString()Ljava/lang/String;
 HSPLandroid/os/PowerManager;-><init>(Landroid/content/Context;Landroid/os/IPowerManager;Landroid/os/Handler;)V
+HSPLandroid/os/PowerManager;-><init>(Landroid/content/Context;Landroid/os/IPowerManager;Landroid/os/IThermalService;Landroid/os/Handler;)V
+HSPLandroid/os/PowerManager;->addThermalStatusListener(Landroid/os/PowerManager$OnThermalStatusChangedListener;)V
+HSPLandroid/os/PowerManager;->addThermalStatusListener(Ljava/util/concurrent/Executor;Landroid/os/PowerManager$OnThermalStatusChangedListener;)V
+HSPLandroid/os/PowerManager;->getDefaultScreenBrightnessSetting()I
+HSPLandroid/os/PowerManager;->getDeviceIdleManager()Landroid/os/DeviceIdleManager;
+HSPLandroid/os/PowerManager;->getLocationPowerSaveMode()I
+HSPLandroid/os/PowerManager;->getMaximumScreenBrightnessForVrSetting()I
+HSPLandroid/os/PowerManager;->getMaximumScreenBrightnessSetting()I
+HSPLandroid/os/PowerManager;->getMinimumScreenBrightnessForVrSetting()I
+HSPLandroid/os/PowerManager;->getMinimumScreenBrightnessSetting()I
+HSPLandroid/os/PowerManager;->getPowerSaveState(I)Landroid/os/PowerSaveState;
+HPLandroid/os/PowerManager;->goToSleep(JII)V
 HSPLandroid/os/PowerManager;->isDeviceIdleMode()Z
+HSPLandroid/os/PowerManager;->isIgnoringBatteryOptimizations(Ljava/lang/String;)Z
 HSPLandroid/os/PowerManager;->isInteractive()Z
 HSPLandroid/os/PowerManager;->isLightDeviceIdleMode()Z
 HSPLandroid/os/PowerManager;->isPowerSaveMode()Z
 HSPLandroid/os/PowerManager;->isScreenOn()Z
+HSPLandroid/os/PowerManager;->isWakeLockLevelSupported(I)Z
 HSPLandroid/os/PowerManager;->newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;
+HSPLandroid/os/PowerManager;->setDozeAfterScreenOff(Z)V
+HPLandroid/os/PowerManager;->sleepReasonToString(I)Ljava/lang/String;
+HSPLandroid/os/PowerManager;->userActivity(JII)V
+HSPLandroid/os/PowerManager;->userActivity(JZ)V
 HSPLandroid/os/PowerManager;->validateWakeLockParameters(ILjava/lang/String;)V
+HPLandroid/os/PowerManager;->wakeReasonToString(I)Ljava/lang/String;
+HSPLandroid/os/PowerManager;->wakeUp(JILjava/lang/String;)V
+HSPLandroid/os/PowerManagerInternal$1;-><init>(Landroid/os/PowerManagerInternal;ILjava/util/function/Consumer;)V
+HSPLandroid/os/PowerManagerInternal;-><init>()V
+HSPLandroid/os/PowerManagerInternal;->isInteractive(I)Z
+HSPLandroid/os/PowerManagerInternal;->registerLowPowerModeObserver(ILjava/util/function/Consumer;)V
+HSPLandroid/os/PowerManagerInternal;->wakefulnessToString(I)Ljava/lang/String;
+HSPLandroid/os/PowerSaveState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PowerSaveState;
+HSPLandroid/os/PowerSaveState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/PowerSaveState$Builder;-><init>()V
+HSPLandroid/os/PowerSaveState$Builder;->build()Landroid/os/PowerSaveState;
+HSPLandroid/os/PowerSaveState$Builder;->setBatterySaverEnabled(Z)Landroid/os/PowerSaveState$Builder;
+HSPLandroid/os/PowerSaveState$Builder;->setBrightnessFactor(F)Landroid/os/PowerSaveState$Builder;
+HSPLandroid/os/PowerSaveState$Builder;->setGlobalBatterySaverEnabled(Z)Landroid/os/PowerSaveState$Builder;
+HSPLandroid/os/PowerSaveState$Builder;->setLocationMode(I)Landroid/os/PowerSaveState$Builder;
+HSPLandroid/os/PowerSaveState;-><init>(Landroid/os/Parcel;)V
+HPLandroid/os/PowerSaveState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/PowerWhitelistManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/os/PowerWhitelistManager;->whitelistAppTemporarily(Ljava/lang/String;J)V
+HSPLandroid/os/Process$ProcessStartResult;-><init>()V
 HSPLandroid/os/Process;->getStartElapsedRealtime()J
+HSPLandroid/os/Process;->getThreadGroupLeader(I)I
+HSPLandroid/os/Process;->getUidForPid(I)I
 HSPLandroid/os/Process;->is64Bit()Z
 HSPLandroid/os/Process;->isApplicationUid(I)Z
 HSPLandroid/os/Process;->isIsolated()Z
 HSPLandroid/os/Process;->isIsolated(I)Z
+HSPLandroid/os/Process;->isThreadInProcess(II)Z
+HSPLandroid/os/Process;->killProcess(I)V
+HSPLandroid/os/Process;->killProcessQuiet(I)V
 HSPLandroid/os/Process;->myPid()I
 HSPLandroid/os/Process;->myTid()I
 HSPLandroid/os/Process;->myUid()I
 HSPLandroid/os/Process;->myUserHandle()Landroid/os/UserHandle;
 HSPLandroid/os/Process;->setStartTimes(JJ)V
+HSPLandroid/os/Process;->start(Ljava/lang/String;Ljava/lang/String;II[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[JLjava/util/Map;[Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+HPLandroid/os/Process;->startWebView(Ljava/lang/String;Ljava/lang/String;II[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[J[Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+PLandroid/os/RecoverySystem;->handleAftermath(Landroid/content/Context;)Ljava/lang/String;
 HSPLandroid/os/RemoteCallback$1;-><init>(Landroid/os/RemoteCallback;)V
 HSPLandroid/os/RemoteCallback$1;->sendResult(Landroid/os/Bundle;)V
 HSPLandroid/os/RemoteCallback$3;->createFromParcel(Landroid/os/Parcel;)Landroid/os/RemoteCallback;
 HSPLandroid/os/RemoteCallback$3;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/RemoteCallback;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/os/RemoteCallback;-><init>(Landroid/os/RemoteCallback$OnResultListener;)V
 HSPLandroid/os/RemoteCallback;-><init>(Landroid/os/RemoteCallback$OnResultListener;Landroid/os/Handler;)V
 HSPLandroid/os/RemoteCallback;->sendResult(Landroid/os/Bundle;)V
 HSPLandroid/os/RemoteCallback;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/os/RemoteCallbackList$Callback;-><init>(Landroid/os/RemoteCallbackList;Landroid/os/IInterface;Ljava/lang/Object;)V
+HSPLandroid/os/RemoteCallbackList$Callback;->binderDied()V
 HSPLandroid/os/RemoteCallbackList;-><init>()V
 HSPLandroid/os/RemoteCallbackList;->beginBroadcast()I
+HSPLandroid/os/RemoteCallbackList;->broadcast(Ljava/util/function/Consumer;)V
+HSPLandroid/os/RemoteCallbackList;->broadcastForEachCookie(Ljava/util/function/Consumer;)V
 HSPLandroid/os/RemoteCallbackList;->finishBroadcast()V
+HSPLandroid/os/RemoteCallbackList;->getBroadcastCookie(I)Ljava/lang/Object;
 HSPLandroid/os/RemoteCallbackList;->getBroadcastItem(I)Landroid/os/IInterface;
+HSPLandroid/os/RemoteCallbackList;->getRegisteredCallbackCount()I
+HSPLandroid/os/RemoteCallbackList;->kill()V
 HSPLandroid/os/RemoteCallbackList;->logExcessiveCallbacks()V
+HSPLandroid/os/RemoteCallbackList;->onCallbackDied(Landroid/os/IInterface;)V
+HSPLandroid/os/RemoteCallbackList;->onCallbackDied(Landroid/os/IInterface;Ljava/lang/Object;)V
 HSPLandroid/os/RemoteCallbackList;->register(Landroid/os/IInterface;)Z
 HSPLandroid/os/RemoteCallbackList;->register(Landroid/os/IInterface;Ljava/lang/Object;)Z
 HSPLandroid/os/RemoteCallbackList;->unregister(Landroid/os/IInterface;)Z
@@ -9800,10 +18699,18 @@
 HSPLandroid/os/ResultReceiver$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/ResultReceiver$MyResultReceiver;-><init>(Landroid/os/ResultReceiver;)V
 HSPLandroid/os/ResultReceiver$MyResultReceiver;->send(ILandroid/os/Bundle;)V
+HSPLandroid/os/ResultReceiver$MyRunnable;-><init>(Landroid/os/ResultReceiver;ILandroid/os/Bundle;)V
+HSPLandroid/os/ResultReceiver$MyRunnable;->run()V
 HSPLandroid/os/ResultReceiver;-><init>(Landroid/os/Handler;)V
 HSPLandroid/os/ResultReceiver;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/ResultReceiver;->onReceiveResult(ILandroid/os/Bundle;)V
 HSPLandroid/os/ResultReceiver;->send(ILandroid/os/Bundle;)V
 HSPLandroid/os/ResultReceiver;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/SELinux;->restorecon(Ljava/io/File;)Z
+PLandroid/os/SELinux;->restoreconRecursive(Ljava/io/File;)Z
+HSPLandroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;)V
+HSPLandroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
+HSPLandroid/os/ServiceManager;->checkService(Ljava/lang/String;)Landroid/os/IBinder;
 HSPLandroid/os/ServiceManager;->getIServiceManager()Landroid/os/IServiceManager;
 HSPLandroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder;
 HSPLandroid/os/ServiceManager;->getServiceOrThrow(Ljava/lang/String;)Landroid/os/IBinder;
@@ -9814,6 +18721,29 @@
 HSPLandroid/os/ServiceManagerProxy;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
 HSPLandroid/os/ServiceManagerProxy;->checkService(Ljava/lang/String;)Landroid/os/IBinder;
 HSPLandroid/os/ServiceManagerProxy;->getService(Ljava/lang/String;)Landroid/os/IBinder;
+HSPLandroid/os/ServiceSpecificException;-><init>(ILjava/lang/String;)V
+HSPLandroid/os/ServiceSpecificException;->toString()Ljava/lang/String;
+HSPLandroid/os/SharedMemory$Closer;-><init>(Ljava/io/FileDescriptor;Landroid/os/SharedMemory$MemoryRegistration;)V
+HSPLandroid/os/SharedMemory$Closer;-><init>(Ljava/io/FileDescriptor;Landroid/os/SharedMemory$MemoryRegistration;Landroid/os/SharedMemory$1;)V
+HSPLandroid/os/SharedMemory$Closer;->run()V
+HSPLandroid/os/SharedMemory$MemoryRegistration;-><init>(I)V
+HSPLandroid/os/SharedMemory$MemoryRegistration;-><init>(ILandroid/os/SharedMemory$1;)V
+HSPLandroid/os/SharedMemory$MemoryRegistration;->acquire()Landroid/os/SharedMemory$MemoryRegistration;
+HSPLandroid/os/SharedMemory$MemoryRegistration;->release()V
+HSPLandroid/os/SharedMemory$Unmapper;-><init>(JILandroid/os/SharedMemory$MemoryRegistration;)V
+HSPLandroid/os/SharedMemory$Unmapper;-><init>(JILandroid/os/SharedMemory$MemoryRegistration;Landroid/os/SharedMemory$1;)V
+HSPLandroid/os/SharedMemory$Unmapper;->run()V
+HSPLandroid/os/SharedMemory;-><init>(Ljava/io/FileDescriptor;)V
+HSPLandroid/os/SharedMemory;->checkOpen()V
+HSPLandroid/os/SharedMemory;->close()V
+HSPLandroid/os/SharedMemory;->create(Ljava/lang/String;I)Landroid/os/SharedMemory;
+HSPLandroid/os/SharedMemory;->getFileDescriptor()Ljava/io/FileDescriptor;
+HSPLandroid/os/SharedMemory;->map(III)Ljava/nio/ByteBuffer;
+HSPLandroid/os/SharedMemory;->mapReadWrite()Ljava/nio/ByteBuffer;
+HSPLandroid/os/SharedMemory;->unmap(Ljava/nio/ByteBuffer;)V
+HSPLandroid/os/SharedMemory;->validateProt(I)V
+HSPLandroid/os/SimpleClock;-><init>(Ljava/time/ZoneId;)V
+HPLandroid/os/SimpleClock;->instant()Ljava/time/Instant;
 HSPLandroid/os/StatFs;-><init>(Ljava/lang/String;)V
 HSPLandroid/os/StatFs;->doStat(Ljava/lang/String;)Landroid/system/StructStatVfs;
 HSPLandroid/os/StatFs;->getAvailableBlocks()I
@@ -9824,7 +18754,12 @@
 HSPLandroid/os/StatFs;->getBlockSize()I
 HSPLandroid/os/StatFs;->getBlockSizeLong()J
 HSPLandroid/os/StatFs;->getTotalBytes()J
+HSPLandroid/os/StatFs;->restat(Ljava/lang/String;)V
+HSPLandroid/os/StatsServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V
+HSPLandroid/os/StatsServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder;
 HSPLandroid/os/StatsServiceManager;-><init>()V
+HSPLandroid/os/StatsServiceManager;->getStatsManagerServiceRegisterer()Landroid/os/StatsServiceManager$ServiceRegisterer;
+HSPLandroid/os/StatsServiceManager;->getStatsdServiceRegisterer()Landroid/os/StatsServiceManager$ServiceRegisterer;
 HSPLandroid/os/StrictMode$1;->initialValue()Ljava/lang/Object;
 HSPLandroid/os/StrictMode$1;->initialValue()Ljava/util/ArrayList;
 HSPLandroid/os/StrictMode$2;->initialValue()Ljava/lang/Object;
@@ -9841,7 +18776,10 @@
 HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->handleViolationWithTimingAttempt(Landroid/os/StrictMode$ViolationInfo;)V
 HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->lambda$handleViolationWithTimingAttempt$0$StrictMode$AndroidBlockGuardPolicy(Landroid/view/IWindowManager;Ljava/util/ArrayList;)V
 HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onCustomSlowCall(Ljava/lang/String;)V
+HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onExplicitGc()V
+HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onNetwork()V
 HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onReadFromDisk()V
+HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onResourceMismatch(Ljava/lang/Object;)V
 HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onThreadPolicyViolation(Landroid/os/StrictMode$ViolationInfo;)V
 HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onUnbufferedIO()V
 HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onWriteToDisk()V
@@ -9852,6 +18790,13 @@
 HSPLandroid/os/StrictMode$AndroidCloseGuardReporter;->report(Ljava/lang/String;Ljava/lang/Throwable;)V
 HSPLandroid/os/StrictMode$InstanceTracker;-><init>(Ljava/lang/Object;)V
 HSPLandroid/os/StrictMode$InstanceTracker;->finalize()V
+HSPLandroid/os/StrictMode$Span;-><init>(Landroid/os/StrictMode$ThreadSpanState;)V
+HSPLandroid/os/StrictMode$Span;->access$2000(Landroid/os/StrictMode$Span;)Landroid/os/StrictMode$Span;
+HSPLandroid/os/StrictMode$Span;->access$2002(Landroid/os/StrictMode$Span;Landroid/os/StrictMode$Span;)Landroid/os/StrictMode$Span;
+HSPLandroid/os/StrictMode$Span;->access$2102(Landroid/os/StrictMode$Span;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/os/StrictMode$Span;->access$2202(Landroid/os/StrictMode$Span;J)J
+HSPLandroid/os/StrictMode$Span;->access$2302(Landroid/os/StrictMode$Span;Landroid/os/StrictMode$Span;)Landroid/os/StrictMode$Span;
+HSPLandroid/os/StrictMode$Span;->finish()V
 HSPLandroid/os/StrictMode$ThreadPolicy$Builder;-><init>()V
 HSPLandroid/os/StrictMode$ThreadPolicy$Builder;-><init>(Landroid/os/StrictMode$ThreadPolicy;)V
 HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->build()Landroid/os/StrictMode$ThreadPolicy;
@@ -9869,18 +18814,24 @@
 HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->penaltyDropBox()Landroid/os/StrictMode$ThreadPolicy$Builder;
 HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->penaltyLog()Landroid/os/StrictMode$ThreadPolicy$Builder;
 HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitAll()Landroid/os/StrictMode$ThreadPolicy$Builder;
+HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitCustomSlowCalls()Landroid/os/StrictMode$ThreadPolicy$Builder;
 HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitDiskReads()Landroid/os/StrictMode$ThreadPolicy$Builder;
 HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitDiskWrites()Landroid/os/StrictMode$ThreadPolicy$Builder;
+HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitUnbufferedIo()Landroid/os/StrictMode$ThreadPolicy$Builder;
 HSPLandroid/os/StrictMode$ThreadPolicy;-><init>(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;)V
 HSPLandroid/os/StrictMode$ThreadPolicy;-><init>(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;Landroid/os/StrictMode$1;)V
 HSPLandroid/os/StrictMode$ThreadSpanState;-><init>()V
 HSPLandroid/os/StrictMode$ThreadSpanState;-><init>(Landroid/os/StrictMode$1;)V
+HSPLandroid/os/StrictMode$ViolationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/StrictMode$ViolationInfo;
+HSPLandroid/os/StrictMode$ViolationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/StrictMode$ViolationInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/os/StrictMode$ViolationInfo;-><init>(Landroid/os/Parcel;Z)V
 HSPLandroid/os/StrictMode$ViolationInfo;-><init>(Landroid/os/strictmode/Violation;I)V
 HSPLandroid/os/StrictMode$ViolationInfo;->access$1200(Landroid/os/StrictMode$ViolationInfo;)Landroid/os/strictmode/Violation;
 HSPLandroid/os/StrictMode$ViolationInfo;->access$500(Landroid/os/StrictMode$ViolationInfo;)I
 HSPLandroid/os/StrictMode$ViolationInfo;->addLocalStack(Ljava/lang/Throwable;)V
 HSPLandroid/os/StrictMode$ViolationInfo;->getStackTrace()Ljava/lang/String;
+HSPLandroid/os/StrictMode$ViolationInfo;->getViolationDetails()Ljava/lang/String;
 HSPLandroid/os/StrictMode$ViolationInfo;->hashCode()I
 HSPLandroid/os/StrictMode$ViolationInfo;->penaltyEnabled(I)Z
 HSPLandroid/os/StrictMode$ViolationInfo;->writeToParcel(Landroid/os/Parcel;I)V
@@ -9905,6 +18856,8 @@
 HSPLandroid/os/StrictMode$VmPolicy;-><init>(ILjava/util/HashMap;Landroid/os/StrictMode$OnVmViolationListener;Ljava/util/concurrent/Executor;Landroid/os/StrictMode$1;)V
 HSPLandroid/os/StrictMode;->access$100()Ljava/util/HashMap;
 HSPLandroid/os/StrictMode;->access$1000()Ljava/lang/ThreadLocal;
+HSPLandroid/os/StrictMode;->access$1100()Landroid/os/StrictMode$ViolationLogger;
+HSPLandroid/os/StrictMode;->access$1400(ILandroid/os/StrictMode$ViolationInfo;)V
 HSPLandroid/os/StrictMode;->access$1500()Ljava/lang/ThreadLocal;
 HSPLandroid/os/StrictMode;->access$1600()Ljava/lang/ThreadLocal;
 HSPLandroid/os/StrictMode;->access$1700(Ljava/lang/String;I)V
@@ -9919,19 +18872,26 @@
 HSPLandroid/os/StrictMode;->allowThreadDiskWritesMask()I
 HSPLandroid/os/StrictMode;->clearGatheredViolations()V
 HSPLandroid/os/StrictMode;->decrementExpectedActivityCount(Ljava/lang/Class;)V
+HSPLandroid/os/StrictMode;->dropboxViolationAsync(ILandroid/os/StrictMode$ViolationInfo;)V
+HSPLandroid/os/StrictMode;->enterCriticalSpan(Ljava/lang/String;)Landroid/os/StrictMode$Span;
 HSPLandroid/os/StrictMode;->getThreadPolicy()Landroid/os/StrictMode$ThreadPolicy;
 HSPLandroid/os/StrictMode;->getThreadPolicyMask()I
+HSPLandroid/os/StrictMode;->getVmPolicy()Landroid/os/StrictMode$VmPolicy;
+HSPLandroid/os/StrictMode;->handleApplicationStrictModeViolation(ILandroid/os/StrictMode$ViolationInfo;)V
 HSPLandroid/os/StrictMode;->hasGatheredViolations()Z
 HSPLandroid/os/StrictMode;->incrementExpectedActivityCount(Ljava/lang/Class;)V
 HSPLandroid/os/StrictMode;->initThreadDefaults(Landroid/content/pm/ApplicationInfo;)V
 HSPLandroid/os/StrictMode;->initVmDefaults(Landroid/content/pm/ApplicationInfo;)V
 HSPLandroid/os/StrictMode;->isBundledSystemApp(Landroid/content/pm/ApplicationInfo;)Z
 HSPLandroid/os/StrictMode;->isUserKeyUnlocked(I)Z
+HSPLandroid/os/StrictMode;->lambda$dropboxViolationAsync$2(ILandroid/os/StrictMode$ViolationInfo;)V
 HSPLandroid/os/StrictMode;->lambda$static$0(Landroid/os/StrictMode$ViolationInfo;)V
 HSPLandroid/os/StrictMode;->noteSlowCall(Ljava/lang/String;)V
 HSPLandroid/os/StrictMode;->onBinderStrictModePolicyChange(I)V
 HSPLandroid/os/StrictMode;->onCredentialProtectedPathAccess(Ljava/lang/String;I)V
+HSPLandroid/os/StrictMode;->onUntaggedSocket()V
 HSPLandroid/os/StrictMode;->onVmPolicyViolation(Landroid/os/strictmode/Violation;)V
+HSPLandroid/os/StrictMode;->onVmPolicyViolation(Landroid/os/strictmode/Violation;Z)V
 HSPLandroid/os/StrictMode;->readAndHandleBinderCallViolations(Landroid/os/Parcel;)V
 HSPLandroid/os/StrictMode;->setBlockGuardPolicy(I)V
 HSPLandroid/os/StrictMode;->setBlockGuardVmPolicy(I)V
@@ -9949,6 +18909,14 @@
 HSPLandroid/os/StrictMode;->vmSqliteObjectLeaksEnabled()Z
 HSPLandroid/os/StrictMode;->vmUntaggedSocketEnabled()Z
 HSPLandroid/os/StrictMode;->writeGatheredViolationsToParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/SynchronousResultReceiver$Result;-><init>(ILandroid/os/Bundle;)V
+HSPLandroid/os/SynchronousResultReceiver;-><init>(Ljava/lang/String;)V
+HSPLandroid/os/SynchronousResultReceiver;->awaitResult(J)Landroid/os/SynchronousResultReceiver$Result;
+HSPLandroid/os/SynchronousResultReceiver;->onReceiveResult(ILandroid/os/Bundle;)V
+HSPLandroid/os/SystemClock$3;-><init>(Ljava/time/ZoneId;)V
+HSPLandroid/os/SystemClock$3;->millis()J
+HSPLandroid/os/SystemClock;->currentNetworkTimeClock()Ljava/time/Clock;
+HSPLandroid/os/SystemClock;->currentNetworkTimeMillis()J
 HSPLandroid/os/SystemClock;->sleep(J)V
 HSPLandroid/os/SystemProperties$Handle;-><init>(J)V
 HSPLandroid/os/SystemProperties$Handle;-><init>(JLandroid/os/SystemProperties$1;)V
@@ -9956,6 +18924,7 @@
 HSPLandroid/os/SystemProperties;->access$300(JJ)J
 HSPLandroid/os/SystemProperties;->addChangeCallback(Ljava/lang/Runnable;)V
 HSPLandroid/os/SystemProperties;->callChangeCallbacks()V
+HSPLandroid/os/SystemProperties;->digestOf([Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/os/SystemProperties;->find(Ljava/lang/String;)Landroid/os/SystemProperties$Handle;
 HSPLandroid/os/SystemProperties;->get(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/os/SystemProperties;->get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
@@ -9966,26 +18935,56 @@
 HSPLandroid/os/SystemProperties;->set(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/os/SystemService$1;->run()V
 HSPLandroid/os/SystemService;->access$100()Ljava/lang/Object;
+HPLandroid/os/SystemService;->getState(Ljava/lang/String;)Landroid/os/SystemService$State;
+PLandroid/os/SystemService;->isRunning(Ljava/lang/String;)Z
+HSPLandroid/os/SystemUpdateManager;-><init>(Landroid/os/ISystemUpdateManager;)V
+HSPLandroid/os/SystemUpdateManager;->retrieveSystemUpdateInfo()Landroid/os/Bundle;
 HSPLandroid/os/SystemVibrator;-><init>(Landroid/content/Context;)V
+HSPLandroid/os/SystemVibrator;->cancel()V
 HSPLandroid/os/SystemVibrator;->hasVibrator()Z
+HSPLandroid/os/SystemVibrator;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Ljava/lang/String;Landroid/media/AudioAttributes;)V
 HSPLandroid/os/TelephonyServiceManager$ServiceRegisterer;-><init>(Landroid/os/TelephonyServiceManager;Ljava/lang/String;)V
 HSPLandroid/os/TelephonyServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V
 HSPLandroid/os/TelephonyServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder;
 HSPLandroid/os/TelephonyServiceManager;-><init>()V
 HSPLandroid/os/TelephonyServiceManager;->getCarrierConfigServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
+HSPLandroid/os/TelephonyServiceManager;->getEuiccControllerService()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
 HSPLandroid/os/TelephonyServiceManager;->getPhoneSubServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
+HSPLandroid/os/TelephonyServiceManager;->getSmsServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
 HSPLandroid/os/TelephonyServiceManager;->getSubscriptionServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
 HSPLandroid/os/TelephonyServiceManager;->getTelephonyRegistryServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
 HSPLandroid/os/TelephonyServiceManager;->getTelephonyServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
+HSPLandroid/os/Temperature$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Temperature;
+HSPLandroid/os/Temperature$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/Temperature;-><init>(FILjava/lang/String;I)V
+HSPLandroid/os/Temperature;->getName()Ljava/lang/String;
+HSPLandroid/os/Temperature;->getStatus()I
+HSPLandroid/os/Temperature;->getType()I
+HSPLandroid/os/Temperature;->getValue()F
+HSPLandroid/os/Temperature;->isValidStatus(I)Z
+HSPLandroid/os/Temperature;->isValidType(I)Z
+HPLandroid/os/Temperature;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/os/ThreadLocalWorkSource;->getToken()J
 HSPLandroid/os/ThreadLocalWorkSource;->getUid()I
 HSPLandroid/os/ThreadLocalWorkSource;->lambda$static$0()Ljava/lang/Integer;
 HSPLandroid/os/ThreadLocalWorkSource;->parseUidFromToken(J)I
 HSPLandroid/os/ThreadLocalWorkSource;->restore(J)V
 HSPLandroid/os/ThreadLocalWorkSource;->setUid(I)J
+HSPLandroid/os/TimestampedValue$1;-><init>()V
+HPLandroid/os/TimestampedValue$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/os/TimestampedValue;
+HPLandroid/os/TimestampedValue$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object;
+HSPLandroid/os/TimestampedValue;-><clinit>()V
+HSPLandroid/os/TimestampedValue;-><init>(JLjava/lang/Object;)V
+HSPLandroid/os/TimestampedValue;->getReferenceTimeMillis()J
+HSPLandroid/os/TimestampedValue;->getValue()Ljava/lang/Object;
+HSPLandroid/os/TimestampedValue;->toString()Ljava/lang/String;
+HSPLandroid/os/TokenWatcher$1;-><init>(Landroid/os/TokenWatcher;)V
+HSPLandroid/os/TokenWatcher;-><init>(Landroid/os/Handler;Ljava/lang/String;)V
 HSPLandroid/os/Trace;->asyncTraceBegin(JLjava/lang/String;I)V
 HSPLandroid/os/Trace;->asyncTraceEnd(JLjava/lang/String;I)V
+HSPLandroid/os/Trace;->beginAsyncSection(Ljava/lang/String;I)V
 HSPLandroid/os/Trace;->beginSection(Ljava/lang/String;)V
+HSPLandroid/os/Trace;->endAsyncSection(Ljava/lang/String;I)V
 HSPLandroid/os/Trace;->endSection()V
 HSPLandroid/os/Trace;->isEnabled()Z
 HSPLandroid/os/Trace;->isTagEnabled(J)Z
@@ -9994,22 +18993,43 @@
 HSPLandroid/os/Trace;->traceBegin(JLjava/lang/String;)V
 HSPLandroid/os/Trace;->traceCounter(JLjava/lang/String;I)V
 HSPLandroid/os/Trace;->traceEnd(J)V
+HSPLandroid/os/TransactionTooLargeException;-><init>(Ljava/lang/String;)V
+HSPLandroid/os/UEventObserver$UEventThread;-><init>()V
+HSPLandroid/os/UEventObserver$UEventThread;->addObserver(Ljava/lang/String;Landroid/os/UEventObserver;)V
+HSPLandroid/os/UEventObserver$UEventThread;->run()V
+HSPLandroid/os/UEventObserver;-><init>()V
+HSPLandroid/os/UEventObserver;->access$000()V
+HSPLandroid/os/UEventObserver;->access$100()Ljava/lang/String;
+HSPLandroid/os/UEventObserver;->access$200(Ljava/lang/String;)V
+HSPLandroid/os/UEventObserver;->getThread()Landroid/os/UEventObserver$UEventThread;
+HSPLandroid/os/UEventObserver;->startObserving(Ljava/lang/String;)V
+HSPLandroid/os/UpdateLock;-><init>(Ljava/lang/String;)V
+HSPLandroid/os/UpdateLock;->isHeld()Z
 HSPLandroid/os/UserHandle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/UserHandle;
 HSPLandroid/os/UserHandle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/UserHandle;-><init>(I)V
 HSPLandroid/os/UserHandle;->equals(Ljava/lang/Object;)Z
+HSPLandroid/os/UserHandle;->formatUid(I)Ljava/lang/String;
+HSPLandroid/os/UserHandle;->formatUid(Ljava/lang/StringBuilder;I)V
 HSPLandroid/os/UserHandle;->getAppId(I)I
 HSPLandroid/os/UserHandle;->getCacheAppGid(I)I
 HSPLandroid/os/UserHandle;->getCacheAppGid(II)I
 HSPLandroid/os/UserHandle;->getCallingUserId()I
 HSPLandroid/os/UserHandle;->getIdentifier()I
+HSPLandroid/os/UserHandle;->getSharedAppGid(I)I
+HSPLandroid/os/UserHandle;->getSharedAppGid(II)I
 HSPLandroid/os/UserHandle;->getUid(II)I
+HSPLandroid/os/UserHandle;->getUserGid(I)I
 HSPLandroid/os/UserHandle;->getUserHandleForUid(I)Landroid/os/UserHandle;
 HSPLandroid/os/UserHandle;->getUserId(I)I
 HSPLandroid/os/UserHandle;->hashCode()I
 HSPLandroid/os/UserHandle;->isApp(I)Z
 HSPLandroid/os/UserHandle;->isCore(I)Z
+HSPLandroid/os/UserHandle;->isIsolated(I)Z
+HSPLandroid/os/UserHandle;->isOwner()Z
 HSPLandroid/os/UserHandle;->isSameApp(II)Z
+HSPLandroid/os/UserHandle;->isSameUser(II)Z
+HSPLandroid/os/UserHandle;->isSystem()Z
 HSPLandroid/os/UserHandle;->myUserId()I
 HSPLandroid/os/UserHandle;->of(I)Landroid/os/UserHandle;
 HSPLandroid/os/UserHandle;->readFromParcel(Landroid/os/Parcel;)Landroid/os/UserHandle;
@@ -10021,125 +19041,581 @@
 HSPLandroid/os/UserManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
 HSPLandroid/os/UserManager;->access$000(Landroid/os/UserManager;)Landroid/os/IUserManager;
+HSPLandroid/os/UserManager;->addUserRestrictionsListener(Landroid/os/IUserRestrictionsListener;)V
 HSPLandroid/os/UserManager;->get(Landroid/content/Context;)Landroid/os/UserManager;
 HSPLandroid/os/UserManager;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
+HPLandroid/os/UserManager;->getApplicationRestrictions(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
+HSPLandroid/os/UserManager;->getCredentialOwnerProfile(I)I
+HSPLandroid/os/UserManager;->getEnabledProfileIds(I)[I
+HSPLandroid/os/UserManager;->getEnabledProfiles(I)Ljava/util/List;
 HSPLandroid/os/UserManager;->getMaxSupportedUsers()I
+HSPLandroid/os/UserManager;->getPrimaryUser()Landroid/content/pm/UserInfo;
 HSPLandroid/os/UserManager;->getProfileIds(IZ)[I
+HSPLandroid/os/UserManager;->getProfileIdsWithDisabled(I)[I
 HSPLandroid/os/UserManager;->getProfileParent(I)Landroid/content/pm/UserInfo;
 HSPLandroid/os/UserManager;->getProfiles(I)Ljava/util/List;
 HSPLandroid/os/UserManager;->getSerialNumberForUser(Landroid/os/UserHandle;)J
+HSPLandroid/os/UserManager;->getUserAccount(I)Ljava/lang/String;
+HSPLandroid/os/UserManager;->getUserBadgeColor(I)I
+HSPLandroid/os/UserManager;->getUserCount()I
+HSPLandroid/os/UserManager;->getUserCreationTime(Landroid/os/UserHandle;)J
 HSPLandroid/os/UserManager;->getUserForSerialNumber(J)Landroid/os/UserHandle;
 HSPLandroid/os/UserManager;->getUserHandle()I
 HSPLandroid/os/UserManager;->getUserHandle(I)I
+HSPLandroid/os/UserManager;->getUserHandles(Z)Ljava/util/List;
+HSPLandroid/os/UserManager;->getUserIcon(I)Landroid/graphics/Bitmap;
+HSPLandroid/os/UserManager;->getUserIconBadgeResId(I)I
 HSPLandroid/os/UserManager;->getUserInfo(I)Landroid/content/pm/UserInfo;
 HSPLandroid/os/UserManager;->getUserProfiles()Ljava/util/List;
+HSPLandroid/os/UserManager;->getUserRestrictionSources(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List;
+HSPLandroid/os/UserManager;->getUserRestrictions()Landroid/os/Bundle;
+HSPLandroid/os/UserManager;->getUserRestrictions(Landroid/os/UserHandle;)Landroid/os/Bundle;
 HSPLandroid/os/UserManager;->getUserSerialNumber(I)I
+HSPLandroid/os/UserManager;->getUserSwitchability(Landroid/os/UserHandle;)I
 HSPLandroid/os/UserManager;->getUsers()Ljava/util/List;
 HSPLandroid/os/UserManager;->getUsers(Z)Ljava/util/List;
 HSPLandroid/os/UserManager;->getUsers(ZZZ)Ljava/util/List;
 HSPLandroid/os/UserManager;->hasBadge(I)Z
+HSPLandroid/os/UserManager;->hasBaseUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z
 HSPLandroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;)Z
 HSPLandroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z
 HSPLandroid/os/UserManager;->hasUserRestrictionForUser(Ljava/lang/String;Landroid/os/UserHandle;)Z
+HSPLandroid/os/UserManager;->isAdminUser()Z
 HSPLandroid/os/UserManager;->isDemoUser()Z
+HSPLandroid/os/UserManager;->isDeviceInDemoMode(Landroid/content/Context;)Z
+HSPLandroid/os/UserManager;->isGuestUser(I)Z
+HSPLandroid/os/UserManager;->isGuestUserEphemeral()Z
+HSPLandroid/os/UserManager;->isHeadlessSystemUserMode()Z
 HSPLandroid/os/UserManager;->isManagedProfile()Z
 HSPLandroid/os/UserManager;->isManagedProfile(I)Z
+HSPLandroid/os/UserManager;->isPrimaryUser()Z
 HSPLandroid/os/UserManager;->isProfile(I)Z
+HSPLandroid/os/UserManager;->isQuietModeEnabled(Landroid/os/UserHandle;)Z
+HSPLandroid/os/UserManager;->isSameProfileGroup(II)Z
+HSPLandroid/os/UserManager;->isSettingRestrictedForUser(Ljava/lang/String;ILjava/lang/String;I)Z
+HSPLandroid/os/UserManager;->isSplitSystemUser()Z
 HSPLandroid/os/UserManager;->isSystemUser()Z
+HSPLandroid/os/UserManager;->isUserAdmin(I)Z
 HSPLandroid/os/UserManager;->isUserRunning(I)Z
 HSPLandroid/os/UserManager;->isUserRunning(Landroid/os/UserHandle;)Z
+HSPLandroid/os/UserManager;->isUserSwitcherEnabled()Z
+HSPLandroid/os/UserManager;->isUserTypeDemo(Ljava/lang/String;)Z
 HSPLandroid/os/UserManager;->isUserTypeGuest(Ljava/lang/String;)Z
 HSPLandroid/os/UserManager;->isUserTypeManagedProfile(Ljava/lang/String;)Z
+HSPLandroid/os/UserManager;->isUserTypeRestricted(Ljava/lang/String;)Z
 HSPLandroid/os/UserManager;->isUserUnlocked()Z
 HSPLandroid/os/UserManager;->isUserUnlocked(I)Z
 HSPLandroid/os/UserManager;->isUserUnlocked(Landroid/os/UserHandle;)Z
 HSPLandroid/os/UserManager;->isUserUnlockingOrUnlocked(I)Z
+HPLandroid/os/UserManager;->setApplicationRestrictions(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;)V
 HSPLandroid/os/UserManager;->supportsMultipleUsers()Z
+HSPLandroid/os/VibrationAttributes$1;-><init>()V
+PLandroid/os/VibrationAttributes$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/VibrationAttributes;
+HPLandroid/os/VibrationAttributes$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/VibrationAttributes$Builder;-><init>()V
+HSPLandroid/os/VibrationAttributes$Builder;-><init>(Landroid/media/AudioAttributes;Landroid/os/VibrationEffect;)V
+HSPLandroid/os/VibrationAttributes$Builder;->applyHapticFeedbackHeuristics(Landroid/os/VibrationEffect;)V
+HSPLandroid/os/VibrationAttributes$Builder;->build()Landroid/os/VibrationAttributes;
+HSPLandroid/os/VibrationAttributes$Builder;->setUsage(Landroid/media/AudioAttributes;)V
+HSPLandroid/os/VibrationAttributes;-><clinit>()V
+HSPLandroid/os/VibrationAttributes;-><init>(IILandroid/media/AudioAttributes;)V
+HSPLandroid/os/VibrationAttributes;-><init>(IILandroid/media/AudioAttributes;Landroid/os/VibrationAttributes$1;)V
+HPLandroid/os/VibrationAttributes;-><init>(Landroid/os/Parcel;)V
+HPLandroid/os/VibrationAttributes;-><init>(Landroid/os/Parcel;Landroid/os/VibrationAttributes$1;)V
+HPLandroid/os/VibrationAttributes;->getAudioAttributes()Landroid/media/AudioAttributes;
+HPLandroid/os/VibrationAttributes;->getUsage()I
+HPLandroid/os/VibrationAttributes;->isFlagSet(I)Z
+HSPLandroid/os/VibrationAttributes;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/os/VibrationEffect$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/VibrationEffect;
+PLandroid/os/VibrationEffect$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/VibrationEffect$OneShot;-><init>(JI)V
+HSPLandroid/os/VibrationEffect$OneShot;->validate()V
+HSPLandroid/os/VibrationEffect$Prebaked;-><init>(IZ)V
+HPLandroid/os/VibrationEffect$Prebaked;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/VibrationEffect$Prebaked;->getDuration()J
+HPLandroid/os/VibrationEffect$Prebaked;->getEffectStrength()I
+HSPLandroid/os/VibrationEffect$Prebaked;->getId()I
+HSPLandroid/os/VibrationEffect$Prebaked;->isValidEffectStrength(I)Z
+HPLandroid/os/VibrationEffect$Prebaked;->setEffectStrength(I)V
+HSPLandroid/os/VibrationEffect$Prebaked;->validate()V
+HSPLandroid/os/VibrationEffect$Prebaked;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/VibrationEffect$Waveform;-><init>([J[II)V
+PLandroid/os/VibrationEffect$Waveform;->getAmplitudes()[I
+HSPLandroid/os/VibrationEffect$Waveform;->getDuration()J
+PLandroid/os/VibrationEffect$Waveform;->getRepeatIndex()I
+PLandroid/os/VibrationEffect$Waveform;->getTimings()[J
+HSPLandroid/os/VibrationEffect$Waveform;->hasNonZeroEntry([J)Z
+HPLandroid/os/VibrationEffect$Waveform;->resolve(I)Landroid/os/VibrationEffect$Waveform;
+HPLandroid/os/VibrationEffect$Waveform;->scale(FI)Landroid/os/VibrationEffect$Waveform;
+HSPLandroid/os/VibrationEffect$Waveform;->validate()V
 HSPLandroid/os/VibrationEffect;-><init>()V
+HSPLandroid/os/VibrationEffect;->createOneShot(JI)Landroid/os/VibrationEffect;
+HSPLandroid/os/VibrationEffect;->createWaveform([JI)Landroid/os/VibrationEffect;
+HSPLandroid/os/VibrationEffect;->createWaveform([J[II)Landroid/os/VibrationEffect;
+HSPLandroid/os/VibrationEffect;->get(I)Landroid/os/VibrationEffect;
+HSPLandroid/os/VibrationEffect;->get(IZ)Landroid/os/VibrationEffect;
 HSPLandroid/os/Vibrator;-><init>(Landroid/content/Context;)V
+HSPLandroid/os/Vibrator;->getDefaultHapticFeedbackIntensity()I
+HSPLandroid/os/Vibrator;->getDefaultNotificationVibrationIntensity()I
+HSPLandroid/os/Vibrator;->getDefaultRingVibrationIntensity()I
 HSPLandroid/os/Vibrator;->loadDefaultIntensity(Landroid/content/Context;I)I
 HSPLandroid/os/Vibrator;->loadVibrationIntensities(Landroid/content/Context;)V
+HSPLandroid/os/Vibrator;->vibrate(Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;)V
 HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/WorkSource;
 HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/os/WorkSource$WorkChain$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/WorkSource$WorkChain;
+HPLandroid/os/WorkSource$WorkChain$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/WorkSource$WorkChain;-><init>()V
+HPLandroid/os/WorkSource$WorkChain;-><init>(Landroid/os/Parcel;)V
+HPLandroid/os/WorkSource$WorkChain;-><init>(Landroid/os/Parcel;Landroid/os/WorkSource$1;)V
+HSPLandroid/os/WorkSource$WorkChain;-><init>(Landroid/os/WorkSource$WorkChain;)V
+HSPLandroid/os/WorkSource$WorkChain;->addNode(ILjava/lang/String;)Landroid/os/WorkSource$WorkChain;
+HSPLandroid/os/WorkSource$WorkChain;->equals(Ljava/lang/Object;)Z
+PLandroid/os/WorkSource$WorkChain;->getAttributionUid()I
+HPLandroid/os/WorkSource$WorkChain;->getTags()[Ljava/lang/String;
+HPLandroid/os/WorkSource$WorkChain;->getUids()[I
+HSPLandroid/os/WorkSource$WorkChain;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/WorkSource;-><init>()V
+HSPLandroid/os/WorkSource;-><init>(I)V
+HSPLandroid/os/WorkSource;-><init>(ILjava/lang/String;)V
 HSPLandroid/os/WorkSource;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/WorkSource;-><init>(Landroid/os/WorkSource;)V
+HPLandroid/os/WorkSource;->add(I)Z
+HSPLandroid/os/WorkSource;->add(ILjava/lang/String;)Z
+HSPLandroid/os/WorkSource;->add(Landroid/os/WorkSource;)Z
+HPLandroid/os/WorkSource;->addWork(Landroid/os/WorkSource;ILjava/lang/String;)Landroid/os/WorkSource;
+HPLandroid/os/WorkSource;->clearNames()V
+HSPLandroid/os/WorkSource;->compare(Landroid/os/WorkSource;II)I
+HSPLandroid/os/WorkSource;->createWorkChain()Landroid/os/WorkSource$WorkChain;
+HSPLandroid/os/WorkSource;->diff(Landroid/os/WorkSource;)Z
+HPLandroid/os/WorkSource;->diffChains(Landroid/os/WorkSource;Landroid/os/WorkSource;)[Ljava/util/ArrayList;
+HSPLandroid/os/WorkSource;->equals(Ljava/lang/Object;)Z
+HPLandroid/os/WorkSource;->getAttributionUid()I
+HSPLandroid/os/WorkSource;->getName(I)Ljava/lang/String;
 HSPLandroid/os/WorkSource;->getPackageName(I)Ljava/lang/String;
 HSPLandroid/os/WorkSource;->getUid(I)I
+HSPLandroid/os/WorkSource;->getWorkChains()Ljava/util/List;
+HSPLandroid/os/WorkSource;->hashCode()I
+HPLandroid/os/WorkSource;->insert(II)V
+HSPLandroid/os/WorkSource;->insert(IILjava/lang/String;)V
+HSPLandroid/os/WorkSource;->isChainedBatteryAttributionEnabled(Landroid/content/Context;)Z
+HSPLandroid/os/WorkSource;->isEmpty()Z
+HSPLandroid/os/WorkSource;->remove(Landroid/os/WorkSource;)Z
+HSPLandroid/os/WorkSource;->removeUidsAndNames(Landroid/os/WorkSource;)Z
+HPLandroid/os/WorkSource;->set(I)V
+HSPLandroid/os/WorkSource;->set(Landroid/os/WorkSource;)V
+HPLandroid/os/WorkSource;->setReturningDiffs(Landroid/os/WorkSource;)[Landroid/os/WorkSource;
 HSPLandroid/os/WorkSource;->size()I
+HSPLandroid/os/WorkSource;->toString()Ljava/lang/String;
+HSPLandroid/os/WorkSource;->updateLocked(Landroid/os/WorkSource;ZZ)Z
+HSPLandroid/os/WorkSource;->updateUidsAndNamesLocked(Landroid/os/WorkSource;ZZ)Z
+HSPLandroid/os/WorkSource;->updateUidsLocked(Landroid/os/WorkSource;ZZ)Z
+HPLandroid/os/WorkSource;->withoutNames()Landroid/os/WorkSource;
 HSPLandroid/os/WorkSource;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/ZygoteProcess$ZygoteState;-><init>(Landroid/net/LocalSocketAddress;Landroid/net/LocalSocketAddress;Landroid/net/LocalSocket;Ljava/io/DataInputStream;Ljava/io/BufferedWriter;Ljava/util/List;)V
+HSPLandroid/os/ZygoteProcess$ZygoteState;->close()V
+HSPLandroid/os/ZygoteProcess$ZygoteState;->connect(Landroid/net/LocalSocketAddress;Landroid/net/LocalSocketAddress;)Landroid/os/ZygoteProcess$ZygoteState;
+HSPLandroid/os/ZygoteProcess$ZygoteState;->isClosed()Z
+HSPLandroid/os/ZygoteProcess$ZygoteState;->matches(Ljava/lang/String;)Z
+HSPLandroid/os/ZygoteProcess;-><init>(Landroid/net/LocalSocketAddress;Landroid/net/LocalSocketAddress;)V
+HSPLandroid/os/ZygoteProcess;->access$000(Ljava/io/BufferedWriter;Ljava/io/DataInputStream;)Ljava/util/List;
+HSPLandroid/os/ZygoteProcess;->attemptConnectionToPrimaryZygote()V
+HSPLandroid/os/ZygoteProcess;->attemptConnectionToSecondaryZygote()V
+HSPLandroid/os/ZygoteProcess;->attemptZygoteSendArgsAndGetResult(Landroid/os/ZygoteProcess$ZygoteState;Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+PLandroid/os/ZygoteProcess;->bootCompleted()V
+PLandroid/os/ZygoteProcess;->bootCompleted(Ljava/lang/String;)V
+PLandroid/os/ZygoteProcess;->close()V
+HSPLandroid/os/ZygoteProcess;->fetchUsapPoolEnabledProp()Z
+HSPLandroid/os/ZygoteProcess;->fetchUsapPoolEnabledPropWithMinInterval()Z
+HSPLandroid/os/ZygoteProcess;->getAbiList(Ljava/io/BufferedWriter;Ljava/io/DataInputStream;)Ljava/util/List;
+HSPLandroid/os/ZygoteProcess;->getPrimarySocketAddress()Landroid/net/LocalSocketAddress;
+HSPLandroid/os/ZygoteProcess;->maybeSetApiBlacklistExemptions(Landroid/os/ZygoteProcess$ZygoteState;Z)Z
+HSPLandroid/os/ZygoteProcess;->maybeSetHiddenApiAccessLogSampleRate(Landroid/os/ZygoteProcess$ZygoteState;)V
+PLandroid/os/ZygoteProcess;->maybeSetHiddenApiAccessStatslogSampleRate(Landroid/os/ZygoteProcess$ZygoteState;)V
+HSPLandroid/os/ZygoteProcess;->openZygoteSocketIfNeeded(Ljava/lang/String;)Landroid/os/ZygoteProcess$ZygoteState;
+HSPLandroid/os/ZygoteProcess;->preloadApp(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;)Z
+HSPLandroid/os/ZygoteProcess;->preloadDefault(Ljava/lang/String;)Z
+PLandroid/os/ZygoteProcess;->setHiddenApiAccessLogSampleRate(I)V
+PLandroid/os/ZygoteProcess;->setHiddenApiAccessStatslogSampleRate(I)V
+HSPLandroid/os/ZygoteProcess;->start(Ljava/lang/String;Ljava/lang/String;II[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ[JLjava/util/Map;[Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+HSPLandroid/os/ZygoteProcess;->startChildZygote(Ljava/lang/String;Ljava/lang/String;II[IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)Landroid/os/ChildZygoteProcess;
+HSPLandroid/os/ZygoteProcess;->startViaZygote(Ljava/lang/String;Ljava/lang/String;II[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;ZZ[JLjava/util/Map;[Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+HSPLandroid/os/ZygoteProcess;->waitForConnectionToZygote(Landroid/net/LocalSocketAddress;)V
+HSPLandroid/os/ZygoteProcess;->waitForConnectionToZygote(Ljava/lang/String;)V
+HSPLandroid/os/ZygoteProcess;->zygoteSendArgsAndGetResult(Landroid/os/ZygoteProcess$ZygoteState;ZLjava/util/ArrayList;)Landroid/os/Process$ProcessStartResult;
+HPLandroid/os/connectivity/CellularBatteryStats;-><init>()V
+PLandroid/os/connectivity/CellularBatteryStats;->setTimeInRxSignalStrengthLevelMicros([J)V
+HPLandroid/os/connectivity/CellularBatteryStats;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/os/connectivity/GpsBatteryStats;-><init>()V
+PLandroid/os/connectivity/GpsBatteryStats;->getLoggingDurationMs()J
+PLandroid/os/connectivity/GpsBatteryStats;->getTimeInGpsSignalQualityLevel()[J
+PLandroid/os/connectivity/GpsBatteryStats;->initialize()V
+PLandroid/os/connectivity/GpsBatteryStats;->setEnergyConsumedMaMs(J)V
+PLandroid/os/connectivity/GpsBatteryStats;->setLoggingDurationMs(J)V
+HPLandroid/os/connectivity/GpsBatteryStats;->setTimeInGpsSignalQualityLevel([J)V
+HPLandroid/os/connectivity/GpsBatteryStats;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/connectivity/WifiActivityEnergyInfo;-><init>(JIJJJJ)V
+HSPLandroid/os/connectivity/WifiActivityEnergyInfo;->getControllerEnergyUsedMicroJoules()J
+HSPLandroid/os/connectivity/WifiActivityEnergyInfo;->getControllerIdleDurationMillis()J
+HSPLandroid/os/connectivity/WifiActivityEnergyInfo;->getControllerRxDurationMillis()J
+HSPLandroid/os/connectivity/WifiActivityEnergyInfo;->getControllerScanDurationMillis()J
+HSPLandroid/os/connectivity/WifiActivityEnergyInfo;->getControllerTxDurationMillis()J
+HSPLandroid/os/connectivity/WifiActivityEnergyInfo;->getStackState()I
+HSPLandroid/os/connectivity/WifiActivityEnergyInfo;->getTimeSinceBootMillis()J
+HSPLandroid/os/connectivity/WifiActivityEnergyInfo;->isValid()Z
+HPLandroid/os/connectivity/WifiBatteryStats;-><init>(JJJJJJJJJJJJJ[J[J[JJ)V
+PLandroid/os/connectivity/WifiBatteryStats;->getEnergyConsumedMaMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getIdleTimeMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getKernelActiveTimeMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getLoggingDurationMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getMonitoredRailChargeConsumedMaMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getNumBytesTx()J
+PLandroid/os/connectivity/WifiBatteryStats;->getNumPacketsRx()J
+PLandroid/os/connectivity/WifiBatteryStats;->getNumPacketsTx()J
+PLandroid/os/connectivity/WifiBatteryStats;->getRxTimeMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getScanTimeMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getSleepTimeMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getTxTimeMillis()J
+HPLandroid/os/connectivity/WifiBatteryStats;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/os/health/HealthKeys$Constants;-><init>(Ljava/lang/Class;)V
+HPLandroid/os/health/HealthKeys$Constants;->getDataType()Ljava/lang/String;
+HPLandroid/os/health/HealthKeys$Constants;->getIndex(II)I
+HPLandroid/os/health/HealthKeys$Constants;->getKeys(I)[I
+HPLandroid/os/health/HealthKeys$Constants;->getSize(I)I
+PLandroid/os/health/HealthKeys$SortedIntArray;-><init>(I)V
+PLandroid/os/health/HealthKeys$SortedIntArray;->addValue(I)V
+PLandroid/os/health/HealthKeys$SortedIntArray;->getArray()[I
 HSPLandroid/os/health/HealthStats;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/health/HealthStats;->createHealthStatsMap(Landroid/os/Parcel;)Landroid/util/ArrayMap;
+HSPLandroid/os/health/HealthStats;->createLongsMap(Landroid/os/Parcel;)Landroid/util/ArrayMap;
+HSPLandroid/os/health/HealthStats;->createParcelableMap(Landroid/os/Parcel;Landroid/os/Parcelable$Creator;)Landroid/util/ArrayMap;
+HSPLandroid/os/health/HealthStats;->getIndex([II)I
 HSPLandroid/os/health/HealthStats;->getMeasurement(I)J
+HSPLandroid/os/health/HealthStats;->getMeasurements(I)Ljava/util/Map;
 HSPLandroid/os/health/HealthStats;->getStats(I)Ljava/util/Map;
 HSPLandroid/os/health/HealthStats;->getTimer(I)Landroid/os/health/TimerStat;
 HSPLandroid/os/health/HealthStats;->getTimers(I)Ljava/util/Map;
 HSPLandroid/os/health/HealthStats;->hasMeasurement(I)Z
+HSPLandroid/os/health/HealthStats;->hasMeasurements(I)Z
 HSPLandroid/os/health/HealthStats;->hasStats(I)Z
 HSPLandroid/os/health/HealthStats;->hasTimer(I)Z
 HSPLandroid/os/health/HealthStats;->hasTimers(I)Z
 HSPLandroid/os/health/HealthStatsParceler$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/health/HealthStatsParceler;
 HSPLandroid/os/health/HealthStatsParceler$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/health/HealthStatsParceler;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/os/health/HealthStatsParceler;->getHealthStats()Landroid/os/health/HealthStats;
+HPLandroid/os/health/HealthStatsParceler;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/os/health/HealthStatsWriter;-><init>(Landroid/os/health/HealthKeys$Constants;)V
+HPLandroid/os/health/HealthStatsWriter;->addMeasurement(IJ)V
+HPLandroid/os/health/HealthStatsWriter;->addMeasurements(ILjava/lang/String;J)V
+HPLandroid/os/health/HealthStatsWriter;->addStats(ILjava/lang/String;Landroid/os/health/HealthStatsWriter;)V
+HPLandroid/os/health/HealthStatsWriter;->addTimer(IIJ)V
+HPLandroid/os/health/HealthStatsWriter;->addTimers(ILjava/lang/String;Landroid/os/health/TimerStat;)V
+HPLandroid/os/health/HealthStatsWriter;->countBooleanArray([Z)I
+PLandroid/os/health/HealthStatsWriter;->countObjectArray([Ljava/lang/Object;)I
+HPLandroid/os/health/HealthStatsWriter;->flattenToParcel(Landroid/os/Parcel;)V
+HPLandroid/os/health/HealthStatsWriter;->writeHealthStatsWriterMap(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
+HPLandroid/os/health/HealthStatsWriter;->writeLongsMap(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
+HPLandroid/os/health/HealthStatsWriter;->writeParcelableMap(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
+PLandroid/os/health/PackageHealthStats;-><clinit>()V
+PLandroid/os/health/PidHealthStats;-><clinit>()V
+PLandroid/os/health/ProcessHealthStats;-><clinit>()V
+PLandroid/os/health/ServiceHealthStats;-><clinit>()V
 HSPLandroid/os/health/SystemHealthManager;-><init>(Lcom/android/internal/app/IBatteryStats;)V
 HSPLandroid/os/health/SystemHealthManager;->takeMyUidSnapshot()Landroid/os/health/HealthStats;
 HSPLandroid/os/health/SystemHealthManager;->takeUidSnapshot(I)Landroid/os/health/HealthStats;
 HSPLandroid/os/health/TimerStat$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/health/TimerStat;
 HSPLandroid/os/health/TimerStat$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/health/TimerStat;-><init>(IJ)V
+HSPLandroid/os/health/TimerStat;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/os/health/TimerStat;->getCount()I
 HSPLandroid/os/health/TimerStat;->getTime()J
+HPLandroid/os/health/TimerStat;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/os/health/UidHealthStats;-><clinit>()V
+HSPLandroid/os/image/IDynamicSystemService$Stub;-><init>()V
+PLandroid/os/image/IDynamicSystemService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/incremental/IIncrementalManager$Stub;-><init>()V
+HPLandroid/os/incremental/IIncrementalManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/incremental/IncrementalManager;->isIncrementalPath(Ljava/lang/String;)Z
+HSPLandroid/os/storage/-$$Lambda$StorageManager$StorageEventListenerDelegate$GoEFKT1rhv7KuSkGeH69DO738lA;-><init>(Landroid/os/storage/StorageManager$StorageEventListenerDelegate;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/storage/-$$Lambda$StorageManager$StorageEventListenerDelegate$GoEFKT1rhv7KuSkGeH69DO738lA;->run()V
+HSPLandroid/os/storage/-$$Lambda$StorageManager$StorageEventListenerDelegate$pyZP4UQS232-tqmtk5lSCyZx9qU;-><init>(Landroid/os/storage/StorageManager$StorageEventListenerDelegate;Landroid/os/storage/VolumeInfo;II)V
+HSPLandroid/os/storage/-$$Lambda$StorageManager$StorageEventListenerDelegate$pyZP4UQS232-tqmtk5lSCyZx9qU;->run()V
+HSPLandroid/os/storage/DiskInfo$1;->newArray(I)[Landroid/os/storage/DiskInfo;
+HSPLandroid/os/storage/DiskInfo$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/os/storage/IObbActionListener$Stub;-><init>()V
+PLandroid/os/storage/IStorageEventListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/os/storage/IStorageEventListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/os/storage/IStorageEventListener$Stub$Proxy;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/os/storage/IStorageEventListener$Stub$Proxy;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
+HSPLandroid/os/storage/IStorageEventListener$Stub;-><init>()V
+HSPLandroid/os/storage/IStorageEventListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/os/storage/IStorageEventListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageEventListener;
+HSPLandroid/os/storage/IStorageEventListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->allocateBytes(Ljava/lang/String;JILjava/lang/String;)V
+HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getAllocatableBytes(Ljava/lang/String;ILjava/lang/String;)J
+HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getDisks()[Landroid/os/storage/DiskInfo;
 HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;
+HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getVolumeRecords(I)[Landroid/os/storage/VolumeRecord;
+HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getVolumes(I)[Landroid/os/storage/VolumeInfo;
 HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->isUserKeyUnlocked(I)Z
+HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->registerListener(Landroid/os/storage/IStorageEventListener;)V
+HSPLandroid/os/storage/IStorageManager$Stub;-><init>()V
 HSPLandroid/os/storage/IStorageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager;
+HSPLandroid/os/storage/IStorageManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/storage/StorageEventListener;-><init>()V
+HSPLandroid/os/storage/StorageEventListener;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/os/storage/StorageManager$ObbActionListener;-><init>(Landroid/os/storage/StorageManager;)V
 HSPLandroid/os/storage/StorageManager$ObbActionListener;-><init>(Landroid/os/storage/StorageManager;Landroid/os/storage/StorageManager$1;)V
+HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;-><init>(Landroid/os/storage/StorageManager;Ljava/util/concurrent/Executor;Landroid/os/storage/StorageEventListener;Landroid/os/storage/StorageManager$StorageVolumeCallback;)V
+HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;->lambda$onStorageStateChanged$1$StorageManager$StorageEventListenerDelegate(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;->lambda$onVolumeStateChanged$2$StorageManager$StorageEventListenerDelegate(Landroid/os/storage/VolumeInfo;II)V
+HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
+HSPLandroid/os/storage/StorageManager$StorageVolumeCallback;-><init>()V
+HSPLandroid/os/storage/StorageManager$StorageVolumeCallback;->onStateChanged(Landroid/os/storage/StorageVolume;)V
 HSPLandroid/os/storage/StorageManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+HSPLandroid/os/storage/StorageManager;->allocateBytes(Ljava/io/FileDescriptor;J)V
+HSPLandroid/os/storage/StorageManager;->allocateBytes(Ljava/io/FileDescriptor;JI)V
+HSPLandroid/os/storage/StorageManager;->allocateBytes(Ljava/util/UUID;JI)V
+HPLandroid/os/storage/StorageManager;->checkPermissionAndAppOp(Landroid/content/Context;ZIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLandroid/os/storage/StorageManager;->checkPermissionAndAppOp(Landroid/content/Context;ZIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Z
+HPLandroid/os/storage/StorageManager;->checkPermissionAndAppOp(ZIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLandroid/os/storage/StorageManager;->checkPermissionAndCheckOp(Landroid/content/Context;ZIILjava/lang/String;Ljava/lang/String;I)Z
+PLandroid/os/storage/StorageManager;->checkPermissionReadImages(ZIILjava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/os/storage/StorageManager;->convert(Ljava/lang/String;)Ljava/util/UUID;
 HSPLandroid/os/storage/StorageManager;->convert(Ljava/util/UUID;)Ljava/lang/String;
+HPLandroid/os/storage/StorageManager;->findPathForUuid(Ljava/lang/String;)Ljava/io/File;
+HPLandroid/os/storage/StorageManager;->findPrivateForEmulated(Landroid/os/storage/VolumeInfo;)Landroid/os/storage/VolumeInfo;
+HSPLandroid/os/storage/StorageManager;->findVolumeById(Ljava/lang/String;)Landroid/os/storage/VolumeInfo;
+HPLandroid/os/storage/StorageManager;->findVolumeByQualifiedUuid(Ljava/lang/String;)Landroid/os/storage/VolumeInfo;
+HSPLandroid/os/storage/StorageManager;->from(Landroid/content/Context;)Landroid/os/storage/StorageManager;
+HSPLandroid/os/storage/StorageManager;->getAllocatableBytes(Ljava/util/UUID;)J
+HSPLandroid/os/storage/StorageManager;->getAllocatableBytes(Ljava/util/UUID;I)J
+HSPLandroid/os/storage/StorageManager;->getBestVolumeDescription(Landroid/os/storage/VolumeInfo;)Ljava/lang/String;
+HSPLandroid/os/storage/StorageManager;->getDisks()Ljava/util/List;
+HSPLandroid/os/storage/StorageManager;->getPrimaryStorageSize()J
+HSPLandroid/os/storage/StorageManager;->getPrimaryVolume()Landroid/os/storage/StorageVolume;
+HSPLandroid/os/storage/StorageManager;->getPrimaryVolume([Landroid/os/storage/StorageVolume;)Landroid/os/storage/StorageVolume;
+HPLandroid/os/storage/StorageManager;->getStorageCacheBytes(Ljava/io/File;I)J
+HSPLandroid/os/storage/StorageManager;->getStorageFullBytes(Ljava/io/File;)J
+HSPLandroid/os/storage/StorageManager;->getStorageLowBytes(Ljava/io/File;)J
 HSPLandroid/os/storage/StorageManager;->getStorageVolume(Ljava/io/File;I)Landroid/os/storage/StorageVolume;
 HSPLandroid/os/storage/StorageManager;->getStorageVolume([Landroid/os/storage/StorageVolume;Ljava/io/File;)Landroid/os/storage/StorageVolume;
 HSPLandroid/os/storage/StorageManager;->getStorageVolumes()Ljava/util/List;
 HSPLandroid/os/storage/StorageManager;->getUuidForPath(Ljava/io/File;)Ljava/util/UUID;
+HSPLandroid/os/storage/StorageManager;->getVolumeList()[Landroid/os/storage/StorageVolume;
 HSPLandroid/os/storage/StorageManager;->getVolumeList(II)[Landroid/os/storage/StorageVolume;
+HSPLandroid/os/storage/StorageManager;->getVolumeRecords()Ljava/util/List;
+HSPLandroid/os/storage/StorageManager;->getVolumes()Ljava/util/List;
+HSPLandroid/os/storage/StorageManager;->getWritablePrivateVolumes()Ljava/util/List;
+HSPLandroid/os/storage/StorageManager;->hasAdoptable()Z
+HSPLandroid/os/storage/StorageManager;->hasIsolatedStorage()Z
+HSPLandroid/os/storage/StorageManager;->inCryptKeeperBounce()Z
+HSPLandroid/os/storage/StorageManager;->isBlockEncrypted()Z
+HSPLandroid/os/storage/StorageManager;->isEncrypted()Z
+HSPLandroid/os/storage/StorageManager;->isFileEncryptedEmulatedOnly()Z
+HSPLandroid/os/storage/StorageManager;->isFileEncryptedNativeOnly()Z
+HSPLandroid/os/storage/StorageManager;->isFileEncryptedNativeOrEmulated()Z
+HSPLandroid/os/storage/StorageManager;->isUserKeyUnlocked(I)Z
+HPLandroid/os/storage/StorageManager;->noteAppOpAllowingLegacy(ZIILjava/lang/String;Ljava/lang/String;I)Z
+PLandroid/os/storage/StorageManager;->prepareUserStorage(Ljava/lang/String;III)V
+HSPLandroid/os/storage/StorageManager;->registerListener(Landroid/os/storage/StorageEventListener;)V
+HSPLandroid/os/storage/StorageManagerInternal;-><init>()V
 HSPLandroid/os/storage/StorageVolume$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/storage/StorageVolume;
 HSPLandroid/os/storage/StorageVolume$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/os/storage/StorageVolume$1;->newArray(I)[Landroid/os/storage/StorageVolume;
 HSPLandroid/os/storage/StorageVolume$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/os/storage/StorageVolume;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/os/storage/StorageVolume;-><init>(Landroid/os/Parcel;Landroid/os/storage/StorageVolume$1;)V
+HSPLandroid/os/storage/StorageVolume;-><init>(Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;ZZZZJLandroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/storage/StorageVolume;->allowMassStorage()Z
+PLandroid/os/storage/StorageVolume;->describeContents()I
+HSPLandroid/os/storage/StorageVolume;->getId()Ljava/lang/String;
+HSPLandroid/os/storage/StorageVolume;->getOwner()Landroid/os/UserHandle;
+HSPLandroid/os/storage/StorageVolume;->getPath()Ljava/lang/String;
 HSPLandroid/os/storage/StorageVolume;->getPathFile()Ljava/io/File;
 HSPLandroid/os/storage/StorageVolume;->getState()Ljava/lang/String;
 HSPLandroid/os/storage/StorageVolume;->getUuid()Ljava/lang/String;
+HSPLandroid/os/storage/StorageVolume;->isEmulated()Z
+HSPLandroid/os/storage/StorageVolume;->isPrimary()Z
+HSPLandroid/os/storage/StorageVolume;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/os/storage/VolumeInfo$2;->createFromParcel(Landroid/os/Parcel;)Landroid/os/storage/VolumeInfo;
 HSPLandroid/os/storage/VolumeInfo$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/storage/VolumeInfo$2;->newArray(I)[Landroid/os/storage/VolumeInfo;
+HSPLandroid/os/storage/VolumeInfo$2;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/os/storage/VolumeInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/storage/VolumeInfo;-><init>(Ljava/lang/String;ILandroid/os/storage/DiskInfo;Ljava/lang/String;)V
+HPLandroid/os/storage/VolumeInfo;->buildStorageVolume(Landroid/content/Context;IZ)Landroid/os/storage/StorageVolume;
+PLandroid/os/storage/VolumeInfo;->clone()Landroid/os/storage/VolumeInfo;
+HSPLandroid/os/storage/VolumeInfo;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLandroid/os/storage/VolumeInfo;->getBroadcastForEnvironment(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/os/storage/VolumeInfo;->getDescription()Ljava/lang/String;
+HSPLandroid/os/storage/VolumeInfo;->getDiskId()Ljava/lang/String;
+HPLandroid/os/storage/VolumeInfo;->getEnvironmentForState(I)Ljava/lang/String;
+HSPLandroid/os/storage/VolumeInfo;->getFsUuid()Ljava/lang/String;
+HSPLandroid/os/storage/VolumeInfo;->getId()Ljava/lang/String;
+HSPLandroid/os/storage/VolumeInfo;->getInternalPathForUser(I)Ljava/io/File;
+HSPLandroid/os/storage/VolumeInfo;->getMountUserId()I
+HSPLandroid/os/storage/VolumeInfo;->getPath()Ljava/io/File;
+HSPLandroid/os/storage/VolumeInfo;->getPathForUser(I)Ljava/io/File;
+HSPLandroid/os/storage/VolumeInfo;->getState()I
+HSPLandroid/os/storage/VolumeInfo;->getType()I
+HSPLandroid/os/storage/VolumeInfo;->isMountedReadable()Z
+HSPLandroid/os/storage/VolumeInfo;->isMountedWritable()Z
+HSPLandroid/os/storage/VolumeInfo;->isPrimary()Z
+HSPLandroid/os/storage/VolumeInfo;->isPrimaryEmulatedForUser(I)Z
+HSPLandroid/os/storage/VolumeInfo;->isVisible()Z
+HSPLandroid/os/storage/VolumeInfo;->isVisibleForRead(I)Z
+HSPLandroid/os/storage/VolumeInfo;->isVisibleForUser(I)Z
+HPLandroid/os/storage/VolumeInfo;->isVisibleForWrite(I)Z
+HSPLandroid/os/storage/VolumeInfo;->toString()Ljava/lang/String;
+HPLandroid/os/storage/VolumeInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/storage/VolumeRecord$1;->newArray(I)[Landroid/os/storage/VolumeRecord;
+HSPLandroid/os/storage/VolumeRecord$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/os/strictmode/CustomViolation;-><init>(Ljava/lang/String;)V
 HSPLandroid/os/strictmode/DiskReadViolation;-><init>()V
+HSPLandroid/os/strictmode/DiskWriteViolation;-><init>()V
+HSPLandroid/os/strictmode/LeakedClosableViolation;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+HSPLandroid/os/strictmode/UnbufferedIoViolation;-><init>()V
+HSPLandroid/os/strictmode/UntaggedSocketViolation;-><init>()V
 HSPLandroid/os/strictmode/Violation;-><init>(Ljava/lang/String;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$WcxnBH4VsthEHNc7qKClONaAHtQ;-><init>(Ljava/util/function/Consumer;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$WcxnBH4VsthEHNc7qKClONaAHtQ;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$u5bno-vHXoMY3ADbZMAlZp7v9oI;->run(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/permission/-$$Lambda$PermissionControllerManager$yqGWw4vOTpW9pDZRlfJdxzYUsF0;->run(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/permission/-$$Lambda$ViMr_PAGHrCLBQPYNzqdYUNU5zI;-><clinit>()V
+HSPLandroid/permission/-$$Lambda$ViMr_PAGHrCLBQPYNzqdYUNU5zI;-><init>()V
+PLandroid/permission/-$$Lambda$ViMr_PAGHrCLBQPYNzqdYUNU5zI;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/permission/IOnPermissionsChangeListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/permission/IOnPermissionsChangeListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/permission/IOnPermissionsChangeListener$Stub;-><init>()V
+HSPLandroid/permission/IOnPermissionsChangeListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/permission/IOnPermissionsChangeListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/permission/IPermissionController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/permission/IPermissionController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/permission/IPermissionController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/permission/IPermissionController;
 HSPLandroid/permission/IPermissionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->addOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
 HSPLandroid/permission/IPermissionManager$Stub$Proxy;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->getPermissionInfo(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->getSplitPermissions()Ljava/util/List;
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->removeOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
+HSPLandroid/permission/IPermissionManager$Stub;-><init>()V
 HSPLandroid/permission/IPermissionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/permission/IPermissionManager;
+HSPLandroid/permission/IPermissionManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/permission/PermissionControllerManager$1;-><init>(Landroid/permission/PermissionControllerManager;Landroid/content/Context;Landroid/content/Intent;IILjava/util/function/Function;Landroid/os/Handler;)V
+PLandroid/permission/PermissionControllerManager$1;->getAutoDisconnectTimeoutMs()J
+PLandroid/permission/PermissionControllerManager$1;->getJobHandler()Landroid/os/Handler;
+HSPLandroid/permission/PermissionControllerManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLandroid/permission/PermissionManager$1;-><init>(ILjava/lang/String;)V
+HSPLandroid/permission/PermissionManager$1;->recompute(Landroid/permission/PermissionManager$PermissionQuery;)Ljava/lang/Integer;
+HSPLandroid/permission/PermissionManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/permission/PermissionManager$2;-><init>(ILjava/lang/String;)V
+HSPLandroid/permission/PermissionManager$2;->recompute(Landroid/permission/PermissionManager$PackageNamePermissionQuery;)Ljava/lang/Integer;
+HSPLandroid/permission/PermissionManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/permission/PermissionManager$PackageNamePermissionQuery;-><init>(Ljava/lang/String;Ljava/lang/String;I)V
+HSPLandroid/permission/PermissionManager$PackageNamePermissionQuery;->equals(Ljava/lang/Object;)Z
+HSPLandroid/permission/PermissionManager$PackageNamePermissionQuery;->hashCode()I
+HSPLandroid/permission/PermissionManager$PermissionQuery;-><init>(Ljava/lang/String;II)V
+HSPLandroid/permission/PermissionManager$PermissionQuery;->equals(Ljava/lang/Object;)Z
+HSPLandroid/permission/PermissionManager$PermissionQuery;->hashCode()I
+HSPLandroid/permission/PermissionManager$SplitPermissionInfo;-><init>(Landroid/content/pm/permission/SplitPermissionInfoParcelable;)V
+HSPLandroid/permission/PermissionManager$SplitPermissionInfo;-><init>(Landroid/content/pm/permission/SplitPermissionInfoParcelable;Landroid/permission/PermissionManager$1;)V
+HSPLandroid/permission/PermissionManager$SplitPermissionInfo;-><init>(Ljava/lang/String;Ljava/util/List;I)V
+HSPLandroid/permission/PermissionManager$SplitPermissionInfo;->getNewPermissions()Ljava/util/List;
+HSPLandroid/permission/PermissionManager$SplitPermissionInfo;->getSplitPermission()Ljava/lang/String;
+HSPLandroid/permission/PermissionManager$SplitPermissionInfo;->getTargetSdk()I
+HSPLandroid/permission/PermissionManager;-><clinit>()V
+HSPLandroid/permission/PermissionManager;-><init>(Landroid/content/Context;Landroid/content/pm/IPackageManager;)V
+HSPLandroid/permission/PermissionManager;->access$100(Ljava/lang/String;II)I
+HSPLandroid/permission/PermissionManager;->access$200(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLandroid/permission/PermissionManager;->checkPackageNamePermission(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLandroid/permission/PermissionManager;->checkPackageNamePermissionUncached(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLandroid/permission/PermissionManager;->checkPermission(Ljava/lang/String;II)I
+HSPLandroid/permission/PermissionManager;->checkPermissionUncached(Ljava/lang/String;II)I
+HSPLandroid/permission/PermissionManager;->getSplitPermissions()Ljava/util/List;
+HSPLandroid/permission/PermissionManager;->splitPermissionInfoListToNonParcelableList(Ljava/util/List;)Ljava/util/List;
+HSPLandroid/permission/PermissionManager;->splitPermissionInfoListToParcelableList(Ljava/util/List;)Ljava/util/List;
+HSPLandroid/permission/PermissionManagerInternal;-><init>()V
 HSPLandroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;
 HSPLandroid/preference/PreferenceManager;->getDefaultSharedPreferencesMode()I
 HSPLandroid/preference/PreferenceManager;->getDefaultSharedPreferencesName(Landroid/content/Context;)Ljava/lang/String;
+HSPLandroid/print/IPrintManager$Stub;-><init>()V
+HPLandroid/print/IPrintManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/print/IPrintSpooler$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/print/IPrintSpooler$Stub$Proxy;->pruneApprovedPrintServices(Ljava/util/List;)V
+PLandroid/print/IPrintSpooler$Stub$Proxy;->removeObsoletePrintJobs()V
+PLandroid/print/IPrintSpooler$Stub$Proxy;->setClient(Landroid/print/IPrintSpoolerClient;)V
+PLandroid/print/IPrintSpooler$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IPrintSpooler;
+PLandroid/print/IPrintSpoolerClient$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/print/IPrintSpoolerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/printservice/IPrintServiceClient$Stub;-><init>()V
+PLandroid/printservice/PrintServiceInfo;-><init>(Landroid/content/pm/ResolveInfo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/printservice/PrintServiceInfo;->create(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)Landroid/printservice/PrintServiceInfo;
+HSPLandroid/printservice/PrintServiceInfo;->getResolveInfo()Landroid/content/pm/ResolveInfo;
+PLandroid/printservice/PrintServiceInfo;->hashCode()I
+HPLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;->getEncoderId()Ljava/lang/String;
+HPLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;->getIRRConfig()Landroid/privacy/internal/rappor/RapporConfig;
+HPLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;->getProbabilityP()D
+PLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;->getProbabilityQ()D
+HPLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder;-><init>(Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;Z[B)V
+HPLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder;->createEncoder(Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;[B)Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder;
+HPLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder;->encodeBoolean(Z)[B
+HPLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder;->getLongTermRandomizedResult(DZ[BLjava/lang/String;)Z
+HPLandroid/privacy/internal/rappor/RapporConfig;-><init>(Ljava/lang/String;IDDDII)V
+HPLandroid/privacy/internal/rappor/RapporEncoder;-><init>(Landroid/privacy/internal/rappor/RapporConfig;Z[B)V
+HPLandroid/privacy/internal/rappor/RapporEncoder;->encodeBoolean(Z)[B
 HPLandroid/provider/-$$Lambda$DeviceConfig$6U9gBH6h5Oab2DB_e83az4n_WEo;-><init>(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;Landroid/provider/DeviceConfig$Properties;)V
-HPLandroid/provider/-$$Lambda$DeviceConfig$6U9gBH6h5Oab2DB_e83az4n_WEo;->run()V
+HSPLandroid/provider/-$$Lambda$DeviceConfig$6U9gBH6h5Oab2DB_e83az4n_WEo;->run()V
 HSPLandroid/provider/-$$Lambda$FontsContract$rqfIZKvP1frnI9vP1hVA8jQN_RE;-><init>(Landroid/provider/FontRequest;Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/locks/Lock;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/locks/Condition;)V
 HSPLandroid/provider/-$$Lambda$FontsContract$rqfIZKvP1frnI9vP1hVA8jQN_RE;->run()V
 HSPLandroid/provider/-$$Lambda$Settings$NameValueCache$cLX_nUBDGp9SYpFxrABk-2ceeMI;-><init>(Landroid/provider/Settings$NameValueCache;)V
 HSPLandroid/provider/-$$Lambda$Settings$NameValueCache$qSyMM6rUAHCa-5rsP-atfAqR3sA;-><init>(Landroid/provider/Settings$NameValueCache;)V
+PLandroid/provider/BlockedNumberContract$SystemContract;->shouldShowEmergencyCallNotification(Landroid/content/Context;)Z
 HSPLandroid/provider/CalendarContract$Attendees;-><clinit>()V
+HSPLandroid/provider/CalendarContract;-><clinit>()V
+HSPLandroid/provider/CallLog$Calls;->shouldHaveSharedCallLogEntries(Landroid/content/Context;Landroid/os/UserManager;I)Z
+HSPLandroid/provider/CallLog;-><clinit>()V
+HSPLandroid/provider/ContactsContract$CommonDataKinds$Email;->getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/provider/ContactsContract$CommonDataKinds$Email;->getTypeLabelResource(I)I
+HSPLandroid/provider/ContactsContract$CommonDataKinds$Event;->getTypeResource(Ljava/lang/Integer;)I
+HSPLandroid/provider/ContactsContract$CommonDataKinds$Im;->getProtocolLabelResource(I)I
+HSPLandroid/provider/ContactsContract$CommonDataKinds$Phone;->getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;
 HSPLandroid/provider/ContactsContract$CommonDataKinds$Phone;->getTypeLabelResource(I)I
+HSPLandroid/provider/ContactsContract$CommonDataKinds$Relation;->getTypeLabelResource(I)I
+HSPLandroid/provider/ContactsContract$CommonDataKinds$StructuredPostal;-><clinit>()V
+HSPLandroid/provider/ContactsContract$CommonDataKinds$StructuredPostal;->getTypeLabelResource(I)I
+HSPLandroid/provider/ContactsContract$Contacts;->getLookupUri(JLjava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/ContactsContract$Contacts;->isEnterpriseContactId(J)Z
+HSPLandroid/provider/ContactsContract$DeletedContacts;-><clinit>()V
+HSPLandroid/provider/ContactsContract$Directory;-><clinit>()V
+HSPLandroid/provider/ContactsContract$Directory;->isEnterpriseDirectoryId(J)Z
+HSPLandroid/provider/ContactsContract$Directory;->isRemoteDirectoryId(J)Z
+HSPLandroid/provider/ContactsContract$DisplayPhoto;-><clinit>()V
+HSPLandroid/provider/ContactsContract$Groups;-><clinit>()V
+HSPLandroid/provider/ContactsContract$Profile;-><clinit>()V
+HSPLandroid/provider/ContactsContract$ProviderStatus;-><clinit>()V
+HSPLandroid/provider/ContactsContract$RawContacts;-><clinit>()V
+HSPLandroid/provider/ContactsContract$RawContactsEntity;-><clinit>()V
+HSPLandroid/provider/ContactsContract$Settings;-><clinit>()V
+HSPLandroid/provider/ContactsContract$SyncState;-><clinit>()V
 HSPLandroid/provider/DeviceConfig$1;-><init>(Landroid/os/Handler;)V
-PLandroid/provider/DeviceConfig$1;->onChange(ZLandroid/net/Uri;)V
+HSPLandroid/provider/DeviceConfig$1;->onChange(ZLandroid/net/Uri;)V
 HSPLandroid/provider/DeviceConfig$Properties$Builder;-><init>(Ljava/lang/String;)V
 HSPLandroid/provider/DeviceConfig$Properties$Builder;->build()Landroid/provider/DeviceConfig$Properties;
 HSPLandroid/provider/DeviceConfig$Properties$Builder;->setString(Ljava/lang/String;Ljava/lang/String;)Landroid/provider/DeviceConfig$Properties$Builder;
 HSPLandroid/provider/DeviceConfig$Properties;-><init>(Ljava/lang/String;Ljava/util/Map;)V
+PLandroid/provider/DeviceConfig$Properties;->getInt(Ljava/lang/String;I)I
 HSPLandroid/provider/DeviceConfig$Properties;->getKeyset()Ljava/util/Set;
 HSPLandroid/provider/DeviceConfig$Properties;->getNamespace()Ljava/lang/String;
 HSPLandroid/provider/DeviceConfig$Properties;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HPLandroid/provider/DeviceConfig;->access$100(Landroid/net/Uri;)V
 HSPLandroid/provider/DeviceConfig;->addOnPropertiesChangedListener(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
 HSPLandroid/provider/DeviceConfig;->createNamespaceUri(Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/DeviceConfig;->decrementNamespace(Ljava/lang/String;)V
 HSPLandroid/provider/DeviceConfig;->enforceReadPermission(Landroid/content/Context;Ljava/lang/String;)V
 HSPLandroid/provider/DeviceConfig;->getBoolean(Ljava/lang/String;Ljava/lang/String;Z)Z
 HSPLandroid/provider/DeviceConfig;->getFloat(Ljava/lang/String;Ljava/lang/String;F)F
@@ -10148,9 +19624,12 @@
 HSPLandroid/provider/DeviceConfig;->getProperties(Ljava/lang/String;[Ljava/lang/String;)Landroid/provider/DeviceConfig$Properties;
 HSPLandroid/provider/DeviceConfig;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/provider/DeviceConfig;->getString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HPLandroid/provider/DeviceConfig;->handleChange(Landroid/net/Uri;)V
+HSPLandroid/provider/DeviceConfig;->handleChange(Landroid/net/Uri;)V
 HSPLandroid/provider/DeviceConfig;->incrementNamespace(Ljava/lang/String;)V
 HPLandroid/provider/DeviceConfig;->lambda$handleChange$0(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;Landroid/provider/DeviceConfig$Properties;)V
+HSPLandroid/provider/DeviceConfig;->removeOnPropertiesChangedListener(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
+HSPLandroid/provider/DeviceConfig;->setProperties(Landroid/provider/DeviceConfig$Properties;)Z
+PLandroid/provider/Downloads;->removeAllDownloadsByPackage(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/provider/FontRequest;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
 HSPLandroid/provider/FontRequest;->getIdentifier()Ljava/lang/String;
 HSPLandroid/provider/FontRequest;->getProviderAuthority()Ljava/lang/String;
@@ -10184,12 +19663,16 @@
 HSPLandroid/provider/SearchIndexablesProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
 HSPLandroid/provider/SearchIndexablesProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 HSPLandroid/provider/SearchIndexablesProvider;->queryDynamicRawData([Ljava/lang/String;)Landroid/database/Cursor;
+HSPLandroid/provider/SearchIndexablesProvider;->querySiteMapPairs()Landroid/database/Cursor;
+HSPLandroid/provider/SearchIndexablesProvider;->querySliceUriPairs()Landroid/database/Cursor;
 HSPLandroid/provider/Settings$Config;->createCompositeName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/provider/Settings$Config;->createPrefix(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/provider/Settings$Config;->getStrings(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;
+HSPLandroid/provider/Settings$Config;->setStrings(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/Map;)Z
 HSPLandroid/provider/Settings$ContentProviderHolder;->access$000(Landroid/provider/Settings$ContentProviderHolder;)Landroid/net/Uri;
 HSPLandroid/provider/Settings$ContentProviderHolder;->getProvider(Landroid/content/ContentResolver;)Landroid/content/IContentProvider;
 HSPLandroid/provider/Settings$GenerationTracker;-><init>(Landroid/util/MemoryIntArray;IILjava/lang/Runnable;)V
+HSPLandroid/provider/Settings$GenerationTracker;->destroy()V
 HSPLandroid/provider/Settings$GenerationTracker;->getCurrentGeneration()I
 HSPLandroid/provider/Settings$GenerationTracker;->isGenerationChanged()Z
 HSPLandroid/provider/Settings$GenerationTracker;->readCurrentGeneration()I
@@ -10197,36 +19680,141 @@
 HSPLandroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I
 HSPLandroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
 HSPLandroid/provider/Settings$Global;->getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J
+HSPLandroid/provider/Settings$Global;->getMovedToSecureSettings(Ljava/util/Set;)V
 HSPLandroid/provider/Settings$Global;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
 HSPLandroid/provider/Settings$Global;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/Settings$Global;->isValidZenMode(I)Z
 HSPLandroid/provider/Settings$Global;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
+HSPLandroid/provider/Settings$Global;->putLong(Landroid/content/ContentResolver;Ljava/lang/String;J)Z
 HSPLandroid/provider/Settings$Global;->putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/provider/Settings$Global;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
 HSPLandroid/provider/Settings$Global;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z
+HSPLandroid/provider/Settings$Global;->zenModeToString(I)Ljava/lang/String;
 HSPLandroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
 HSPLandroid/provider/Settings$NameValueCache;->getStringsForPrefix(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Landroid/util/ArrayMap;
 HSPLandroid/provider/Settings$NameValueCache;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z
+HSPLandroid/provider/Settings$NameValueCache;->setStringsForPrefix(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/HashMap;)Z
 HSPLandroid/provider/Settings$NameValueTable;->getUriFor(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/Settings$Secure;->getCloneToManagedProfileSettings(Ljava/util/Set;)V
 HSPLandroid/provider/Settings$Secure;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F
 HSPLandroid/provider/Settings$Secure;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)F
 HSPLandroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I
 HSPLandroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
 HSPLandroid/provider/Settings$Secure;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)I
 HSPLandroid/provider/Settings$Secure;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I
+HSPLandroid/provider/Settings$Secure;->getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J
+HSPLandroid/provider/Settings$Secure;->getLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;JI)J
+HSPLandroid/provider/Settings$Secure;->getMovedToGlobalSettings(Ljava/util/Set;)V
 HSPLandroid/provider/Settings$Secure;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/provider/Settings$Secure;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
 HSPLandroid/provider/Settings$Secure;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/Settings$Secure;->isLocationProviderEnabled(Landroid/content/ContentResolver;Ljava/lang/String;)Z
+HSPLandroid/provider/Settings$Secure;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
+HSPLandroid/provider/Settings$Secure;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z
+HSPLandroid/provider/Settings$Secure;->putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/provider/Settings$Secure;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLandroid/provider/Settings$Secure;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z
 HSPLandroid/provider/Settings$SettingNotFoundException;-><init>(Ljava/lang/String;)V
+HSPLandroid/provider/Settings$System;->adjustConfigurationForUser(Landroid/content/ContentResolver;Landroid/content/res/Configuration;IZ)V
+HSPLandroid/provider/Settings$System;->canWrite(Landroid/content/Context;)Z
+HSPLandroid/provider/Settings$System;->clearConfiguration(Landroid/content/res/Configuration;)V
+HSPLandroid/provider/Settings$System;->getCloneFromParentOnValueSettings(Ljava/util/Map;)V
+HSPLandroid/provider/Settings$System;->getCloneToManagedProfileSettings(Ljava/util/Set;)V
+HSPLandroid/provider/Settings$System;->getConfiguration(Landroid/content/ContentResolver;Landroid/content/res/Configuration;)V
+HSPLandroid/provider/Settings$System;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;)F
+HSPLandroid/provider/Settings$System;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F
+HSPLandroid/provider/Settings$System;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)F
+HSPLandroid/provider/Settings$System;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)F
+HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I
 HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
 HSPLandroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)I
 HSPLandroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I
+HSPLandroid/provider/Settings$System;->getMovedToGlobalSettings(Ljava/util/Set;)V
+HSPLandroid/provider/Settings$System;->getMovedToSecureSettings(Ljava/util/Set;)V
+HSPLandroid/provider/Settings$System;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/provider/Settings$System;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
 HSPLandroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
 HSPLandroid/provider/Settings$System;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z
 HSPLandroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLandroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;IZ)Z
+HSPLandroid/provider/Settings;->canDrawOverlays(Landroid/content/Context;)Z
+HSPLandroid/provider/Settings;->checkAndNoteChangeNetworkStateOperation(Landroid/content/Context;ILjava/lang/String;Z)Z
+HSPLandroid/provider/Settings;->getPackageNameForUid(Landroid/content/Context;I)Ljava/lang/String;
+HSPLandroid/provider/Settings;->isCallingPackageAllowedToDrawOverlays(Landroid/content/Context;ILjava/lang/String;Z)Z
+HSPLandroid/provider/Settings;->isCallingPackageAllowedToPerformAppOpsProtectedOperation(Landroid/content/Context;ILjava/lang/String;ZI[Ljava/lang/String;Z)Z
 HSPLandroid/provider/Settings;->isInSystemServer()Z
+HSPLandroid/provider/Settings;->setInSystemServer()V
+HSPLandroid/provider/Telephony$Mms;-><clinit>()V
+HSPLandroid/provider/Telephony$Mms;->isPhoneNumber(Ljava/lang/String;)Z
+HSPLandroid/provider/Telephony$MmsSms;-><clinit>()V
+HSPLandroid/provider/Telephony$Sms$Intents;->getMessagesFromIntent(Landroid/content/Intent;)[Landroid/telephony/SmsMessage;
 HSPLandroid/provider/Telephony$Sms;->getDefaultSmsPackage(Landroid/content/Context;)Ljava/lang/String;
+HSPLandroid/provider/Telephony$Threads;-><clinit>()V
+HSPLandroid/provider/VoicemailContract$Status;-><clinit>()V
+HSPLandroid/provider/VoicemailContract$Voicemails;-><clinit>()V
+HSPLandroid/renderscript/BaseObj;-><init>(JLandroid/renderscript/RenderScript;)V
+HSPLandroid/renderscript/BaseObj;->equals(Ljava/lang/Object;)Z
+HSPLandroid/renderscript/BaseObj;->getID(Landroid/renderscript/RenderScript;)J
+HSPLandroid/renderscript/Element$1;-><clinit>()V
+HSPLandroid/renderscript/Element$DataKind;-><clinit>()V
+HSPLandroid/renderscript/Element$DataKind;-><init>(Ljava/lang/String;II)V
+HSPLandroid/renderscript/Element$DataKind;->values()[Landroid/renderscript/Element$DataKind;
+HSPLandroid/renderscript/Element$DataType;-><clinit>()V
+HSPLandroid/renderscript/Element$DataType;-><init>(Ljava/lang/String;II)V
+HSPLandroid/renderscript/Element$DataType;-><init>(Ljava/lang/String;III)V
+HSPLandroid/renderscript/Element$DataType;->values()[Landroid/renderscript/Element$DataType;
+HSPLandroid/renderscript/Element;-><init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Element$DataType;Landroid/renderscript/Element$DataKind;ZI)V
+HSPLandroid/renderscript/Element;->U8_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
+HSPLandroid/renderscript/Element;->createVector(Landroid/renderscript/RenderScript;Landroid/renderscript/Element$DataType;I)Landroid/renderscript/Element;
+HSPLandroid/renderscript/Element;->isCompatible(Landroid/renderscript/Element;)Z
+HSPLandroid/renderscript/RenderScript$ContextType;-><clinit>()V
+HSPLandroid/renderscript/RenderScript$ContextType;-><init>(Ljava/lang/String;II)V
+HSPLandroid/renderscript/RenderScript$MessageThread;-><init>(Landroid/renderscript/RenderScript;)V
+HSPLandroid/renderscript/RenderScript$MessageThread;->run()V
+HSPLandroid/renderscript/RenderScript;-><clinit>()V
+HSPLandroid/renderscript/RenderScript;-><init>(Landroid/content/Context;)V
+HSPLandroid/renderscript/RenderScript;->create(Landroid/content/Context;)Landroid/renderscript/RenderScript;
+HSPLandroid/renderscript/RenderScript;->create(Landroid/content/Context;ILandroid/renderscript/RenderScript$ContextType;I)Landroid/renderscript/RenderScript;
+HSPLandroid/renderscript/RenderScript;->create(Landroid/content/Context;Landroid/renderscript/RenderScript$ContextType;)Landroid/renderscript/RenderScript;
+HSPLandroid/renderscript/RenderScript;->create(Landroid/content/Context;Landroid/renderscript/RenderScript$ContextType;I)Landroid/renderscript/RenderScript;
+HSPLandroid/renderscript/RenderScript;->getCachePath()Ljava/lang/String;
+HSPLandroid/renderscript/RenderScript;->internalCreate(Landroid/content/Context;ILandroid/renderscript/RenderScript$ContextType;I)Landroid/renderscript/RenderScript;
+HSPLandroid/renderscript/RenderScript;->nContextCreate(JIII)J
+HSPLandroid/renderscript/RenderScript;->nContextSetCacheDir(Ljava/lang/String;)V
+HSPLandroid/renderscript/RenderScript;->nElementCreate(JIZI)J
+HSPLandroid/renderscript/RenderScript;->nScriptIntrinsicCreate(IJ)J
+HSPLandroid/renderscript/RenderScript;->nScriptSetVarF(JIF)V
+HSPLandroid/renderscript/RenderScript;->validate()V
 HSPLandroid/renderscript/RenderScriptCacheDir;->setupDiskCache(Ljava/io/File;)V
+HSPLandroid/renderscript/Script;-><init>(JLandroid/renderscript/RenderScript;)V
+HSPLandroid/renderscript/Script;->setVar(IF)V
+HSPLandroid/renderscript/ScriptIntrinsic;-><init>(JLandroid/renderscript/RenderScript;)V
+HSPLandroid/renderscript/ScriptIntrinsicBlur;-><init>(JLandroid/renderscript/RenderScript;)V
+HSPLandroid/renderscript/ScriptIntrinsicBlur;->create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicBlur;
+HSPLandroid/renderscript/ScriptIntrinsicBlur;->setRadius(F)V
+HSPLandroid/security/Credentials;->deleteAllTypesForAlias(Landroid/security/KeyStore;Ljava/lang/String;I)Z
+HSPLandroid/security/Credentials;->deleteCertificateTypesForAlias(Landroid/security/KeyStore;Ljava/lang/String;I)Z
+HSPLandroid/security/Credentials;->deleteUserKeyTypeForAlias(Landroid/security/KeyStore;Ljava/lang/String;I)Z
+HSPLandroid/security/GateKeeper;->getSecureUserId()J
+HSPLandroid/security/GateKeeper;->getService()Landroid/service/gatekeeper/IGateKeeperService;
+HSPLandroid/security/IFileIntegrityService$Stub;-><init>()V
+HPLandroid/security/IFileIntegrityService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/security/IKeyChainService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/security/IKeyChainService$Stub$Proxy;->getUserCaAliases()Landroid/content/pm/StringParceledListSlice;
+HSPLandroid/security/IKeyChainService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/IKeyChainService;
+HSPLandroid/security/KeyChain$1;-><init>(Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/CountDownLatch;)V
+HSPLandroid/security/KeyChain$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+HSPLandroid/security/KeyChain$KeyChainConnection;-><init>(Landroid/content/Context;Landroid/content/ServiceConnection;Landroid/security/IKeyChainService;)V
+HSPLandroid/security/KeyChain$KeyChainConnection;->close()V
+HSPLandroid/security/KeyChain$KeyChainConnection;->getService()Landroid/security/IKeyChainService;
+HSPLandroid/security/KeyChain;->bindAsUser(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection;
+HSPLandroid/security/KeyChain;->ensureNotOnMainThread(Landroid/content/Context;)V
+HSPLandroid/security/KeyStore$ExportKeyPromise;-><init>(Landroid/security/KeyStore;)V
+HSPLandroid/security/KeyStore$ExportKeyPromise;-><init>(Landroid/security/KeyStore;Landroid/security/KeyStore$1;)V
+HSPLandroid/security/KeyStore$ExportKeyPromise;->getFuture()Ljava/util/concurrent/CompletableFuture;
+HSPLandroid/security/KeyStore$ExportKeyPromise;->onFinished(Landroid/security/keymaster/ExportResult;)V
 HSPLandroid/security/KeyStore$KeyCharacteristicsCallbackResult;-><init>(Landroid/security/KeyStore;Landroid/security/keystore/KeystoreResponse;Landroid/security/keymaster/KeyCharacteristics;)V
 HSPLandroid/security/KeyStore$KeyCharacteristicsCallbackResult;->getKeyCharacteristics()Landroid/security/keymaster/KeyCharacteristics;
 HSPLandroid/security/KeyStore$KeyCharacteristicsCallbackResult;->getKeystoreResponse()Landroid/security/keystore/KeystoreResponse;
@@ -10242,20 +19830,57 @@
 HSPLandroid/security/KeyStore$OperationPromise;->onFinished(Landroid/security/keymaster/OperationResult;)V
 HSPLandroid/security/KeyStore;-><init>(Landroid/security/keystore/IKeystoreService;)V
 HSPLandroid/security/KeyStore;->abort(Landroid/os/IBinder;)I
+HPLandroid/security/KeyStore;->addAuthToken([B)I
 HSPLandroid/security/KeyStore;->begin(Ljava/lang/String;IZLandroid/security/keymaster/KeymasterArguments;[BI)Landroid/security/keymaster/OperationResult;
+HSPLandroid/security/KeyStore;->contains(Ljava/lang/String;)Z
 HSPLandroid/security/KeyStore;->contains(Ljava/lang/String;I)Z
+HSPLandroid/security/KeyStore;->delete(Ljava/lang/String;I)Z
+HSPLandroid/security/KeyStore;->delete2(Ljava/lang/String;I)I
+HSPLandroid/security/KeyStore;->exportKey(Ljava/lang/String;ILandroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;I)Landroid/security/keymaster/ExportResult;
 HSPLandroid/security/KeyStore;->finish(Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B[B[B)Landroid/security/keymaster/OperationResult;
+HSPLandroid/security/KeyStore;->generateKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BIILandroid/security/keymaster/KeyCharacteristics;)I
+HSPLandroid/security/KeyStore;->generateKeyInternal(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BIILandroid/security/keymaster/KeyCharacteristics;)I
+HSPLandroid/security/KeyStore;->get(Ljava/lang/String;I)[B
+HSPLandroid/security/KeyStore;->get(Ljava/lang/String;IZ)[B
 HSPLandroid/security/KeyStore;->getApplicationContext()Landroid/content/Context;
 HSPLandroid/security/KeyStore;->getInstance()Landroid/security/KeyStore;
+HSPLandroid/security/KeyStore;->getInvalidKeyException(Ljava/lang/String;II)Ljava/security/InvalidKeyException;
+HSPLandroid/security/KeyStore;->getInvalidKeyException(Ljava/lang/String;ILandroid/security/KeyStoreException;)Ljava/security/InvalidKeyException;
 HSPLandroid/security/KeyStore;->getKeyCharacteristics(Ljava/lang/String;Landroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;ILandroid/security/keymaster/KeyCharacteristics;)I
+HSPLandroid/security/KeyStore;->getKeyStoreException(I)Landroid/security/KeyStoreException;
 HSPLandroid/security/KeyStore;->getToken()Landroid/os/IBinder;
+HSPLandroid/security/KeyStore;->getmtime(Ljava/lang/String;I)J
+HSPLandroid/security/KeyStore;->grant(Ljava/lang/String;I)Ljava/lang/String;
+HSPLandroid/security/KeyStore;->insert(Ljava/lang/String;[BII)I
+HSPLandroid/security/KeyStore;->list(Ljava/lang/String;I)[Ljava/lang/String;
+HPLandroid/security/KeyStore;->onUserLockedStateChanged(IZ)V
+PLandroid/security/KeyStore;->state(I)Landroid/security/KeyStore$State;
+HPLandroid/security/KeyStore;->unlock(ILjava/lang/String;)Z
 HSPLandroid/security/KeyStore;->update(Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B)Landroid/security/keymaster/OperationResult;
+HSPLandroid/security/KeyStoreException;->getErrorCode()I
+HSPLandroid/security/NetworkSecurityPolicy;->getInstance()Landroid/security/NetworkSecurityPolicy;
+HSPLandroid/security/NetworkSecurityPolicy;->isCleartextTrafficPermitted()Z
+HPLandroid/security/Scrypt;-><init>()V
+HPLandroid/security/Scrypt;->scrypt([B[BIIII)[B
+HSPLandroid/security/keymaster/ExportResult$1;-><init>()V
+HSPLandroid/security/keymaster/ExportResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/ExportResult;
+HSPLandroid/security/keymaster/ExportResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/security/keymaster/ExportResult;-><clinit>()V
+HSPLandroid/security/keymaster/ExportResult;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub;-><init>()V
+HPLandroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/security/keymaster/KeyAttestationApplicationId;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/security/keymaster/KeyAttestationPackageInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/security/keymaster/KeyCharacteristics$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/KeyCharacteristics;
 HSPLandroid/security/keymaster/KeyCharacteristics$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/security/keymaster/KeyCharacteristics;-><init>()V
 HSPLandroid/security/keymaster/KeyCharacteristics;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/security/keymaster/KeyCharacteristics;->getBoolean(I)Z
+HSPLandroid/security/keymaster/KeyCharacteristics;->getDate(I)Ljava/util/Date;
 HSPLandroid/security/keymaster/KeyCharacteristics;->getEnum(I)Ljava/lang/Integer;
 HSPLandroid/security/keymaster/KeyCharacteristics;->getEnums(I)Ljava/util/List;
+HSPLandroid/security/keymaster/KeyCharacteristics;->getUnsignedInt(IJ)J
+HSPLandroid/security/keymaster/KeyCharacteristics;->getUnsignedLongs(I)Ljava/util/List;
 HSPLandroid/security/keymaster/KeyCharacteristics;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/security/keymaster/KeyCharacteristics;->shallowCopyFrom(Landroid/security/keymaster/KeyCharacteristics;)V
 HSPLandroid/security/keymaster/KeymasterArgument$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/KeymasterArgument;
@@ -10267,46 +19892,74 @@
 HSPLandroid/security/keymaster/KeymasterArguments;-><init>()V
 HSPLandroid/security/keymaster/KeymasterArguments;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/security/keymaster/KeymasterArguments;-><init>(Landroid/os/Parcel;Landroid/security/keymaster/KeymasterArguments$1;)V
+HSPLandroid/security/keymaster/KeymasterArguments;->addBoolean(I)V
 HSPLandroid/security/keymaster/KeymasterArguments;->addBytes(I[B)V
+HSPLandroid/security/keymaster/KeymasterArguments;->addDateIfNotNull(ILjava/util/Date;)V
 HSPLandroid/security/keymaster/KeymasterArguments;->addEnum(II)V
 HSPLandroid/security/keymaster/KeymasterArguments;->addEnumTag(II)V
+HSPLandroid/security/keymaster/KeymasterArguments;->addEnums(I[I)V
+HSPLandroid/security/keymaster/KeymasterArguments;->addLongTag(ILjava/math/BigInteger;)V
 HSPLandroid/security/keymaster/KeymasterArguments;->addUnsignedInt(IJ)V
+HSPLandroid/security/keymaster/KeymasterArguments;->addUnsignedLong(ILjava/math/BigInteger;)V
 HSPLandroid/security/keymaster/KeymasterArguments;->containsTag(I)Z
 HSPLandroid/security/keymaster/KeymasterArguments;->getArgumentByTag(I)Landroid/security/keymaster/KeymasterArgument;
+HSPLandroid/security/keymaster/KeymasterArguments;->getBoolean(I)Z
 HSPLandroid/security/keymaster/KeymasterArguments;->getBytes(I[B)[B
+HSPLandroid/security/keymaster/KeymasterArguments;->getDate(ILjava/util/Date;)Ljava/util/Date;
 HSPLandroid/security/keymaster/KeymasterArguments;->getEnum(II)I
 HSPLandroid/security/keymaster/KeymasterArguments;->getEnumTagValue(Landroid/security/keymaster/KeymasterArgument;)I
 HSPLandroid/security/keymaster/KeymasterArguments;->getEnums(I)Ljava/util/List;
+HSPLandroid/security/keymaster/KeymasterArguments;->getLongTagValue(Landroid/security/keymaster/KeymasterArgument;)Ljava/math/BigInteger;
+HSPLandroid/security/keymaster/KeymasterArguments;->getUnsignedInt(IJ)J
+HSPLandroid/security/keymaster/KeymasterArguments;->getUnsignedLongs(I)Ljava/util/List;
+HSPLandroid/security/keymaster/KeymasterArguments;->toUint64(J)Ljava/math/BigInteger;
 HSPLandroid/security/keymaster/KeymasterArguments;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/security/keymaster/KeymasterBlob;-><init>([B)V
 HSPLandroid/security/keymaster/KeymasterBlob;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/security/keymaster/KeymasterBlobArgument;-><init>(ILandroid/os/Parcel;)V
 HSPLandroid/security/keymaster/KeymasterBlobArgument;-><init>(I[B)V
 HSPLandroid/security/keymaster/KeymasterBlobArgument;->writeValue(Landroid/os/Parcel;)V
+HSPLandroid/security/keymaster/KeymasterBooleanArgument;-><init>(I)V
 HSPLandroid/security/keymaster/KeymasterBooleanArgument;-><init>(ILandroid/os/Parcel;)V
+HSPLandroid/security/keymaster/KeymasterBooleanArgument;->writeValue(Landroid/os/Parcel;)V
+HSPLandroid/security/keymaster/KeymasterCertificateChain;-><init>()V
 HSPLandroid/security/keymaster/KeymasterDateArgument;-><init>(ILandroid/os/Parcel;)V
 HSPLandroid/security/keymaster/KeymasterDefs;->getTagType(I)I
 HSPLandroid/security/keymaster/KeymasterIntArgument;-><init>(II)V
 HSPLandroid/security/keymaster/KeymasterIntArgument;-><init>(ILandroid/os/Parcel;)V
 HSPLandroid/security/keymaster/KeymasterIntArgument;->writeValue(Landroid/os/Parcel;)V
+HSPLandroid/security/keymaster/KeymasterLongArgument;-><init>(IJ)V
+HSPLandroid/security/keymaster/KeymasterLongArgument;-><init>(ILandroid/os/Parcel;)V
+HSPLandroid/security/keymaster/KeymasterLongArgument;->writeValue(Landroid/os/Parcel;)V
 HSPLandroid/security/keymaster/OperationResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/OperationResult;
 HSPLandroid/security/keymaster/OperationResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/security/keymaster/OperationResult;-><init>(ILandroid/os/IBinder;JI[BLandroid/security/keymaster/KeymasterArguments;)V
 HSPLandroid/security/keymaster/OperationResult;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;-><init>(Landroid/security/KeyStore;Landroid/os/IBinder;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;-><init>(Landroid/security/KeyStore;Landroid/os/IBinder;Landroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$1;)V
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;->finish([B[B[B)Landroid/security/keymaster/OperationResult;
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;-><init>(Landroid/security/keystore/KeyStoreCryptoOperationStreamer;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;-><init>(Landroid/security/keystore/KeyStoreCryptoOperationStreamer;Landroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$1;)V
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;->doFinal([BII[B[B)[B
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding;-><init>()V
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding;->finalize()V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;-><init>(I)V
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->addAlgorithmSpecificParametersToBegin(Landroid/security/keymaster/KeymasterArguments;)V
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->createAdditionalAuthenticationDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->createMainDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->getAdditionalEntropyAmountForBegin()I
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->getAdditionalEntropyAmountForFinish()I
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->initAlgorithmSpecificParameters()V
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->initAlgorithmSpecificParameters(Ljava/security/spec/AlgorithmParameterSpec;)V
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->resetAll()V
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->resetWhilePreservingInitState()V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;-><init>(II)V
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->addAlgorithmSpecificParametersToBegin(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->engineGetIV()[B
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->getIv()[B
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->initKey(ILjava/security/Key;)V
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->loadAlgorithmSpecificParametersFromBeginResult(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->resetAll()V
 HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->setIv([B)V
 HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;-><init>()V
 HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;->putAsymmetricCipherImpl(Ljava/lang/String;Ljava/lang/String;)V
@@ -10314,8 +19967,12 @@
 HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;->putSignatureImpl(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;->putSymmetricCipherImpl(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->createAdditionalAuthenticationDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
+HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->createMainDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
 HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->engineDoFinal([BII)[B
+HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->engineInit(ILjava/security/Key;Ljava/security/SecureRandom;)V
 HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->engineInit(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
+HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->engineUnwrap([BLjava/lang/String;I)Ljava/security/Key;
 HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->ensureKeystoreOperationInitialized()V
 HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->finalize()V
 HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->flushAAD()V
@@ -10324,27 +19981,130 @@
 HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->resetAll()V
 HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->resetWhilePreservingInitState()V
 HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->setKey(Landroid/security/keystore/AndroidKeyStoreKey;)V
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi$SHA256;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;-><init>(I)V
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;->addAlgorithmSpecificParametersToBegin(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;->getAdditionalEntropyAmountForSign()I
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;->initKey(Landroid/security/keystore/AndroidKeyStoreKey;)V
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;->resetAll()V
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;->resetWhilePreservingInitState()V
+HSPLandroid/security/keystore/AndroidKeyStoreECPrivateKey;-><init>(Ljava/lang/String;ILjava/security/spec/ECParameterSpec;)V
+HSPLandroid/security/keystore/AndroidKeyStoreECPublicKey;-><init>(Ljava/lang/String;ILjava/security/interfaces/ECPublicKey;)V
+HSPLandroid/security/keystore/AndroidKeyStoreECPublicKey;-><init>(Ljava/lang/String;I[BLjava/security/spec/ECParameterSpec;Ljava/security/spec/ECPoint;)V
+HSPLandroid/security/keystore/AndroidKeyStoreECPublicKey;->getParams()Ljava/security/spec/ECParameterSpec;
+HSPLandroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA256;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreHmacSpi;-><init>(I)V
+HSPLandroid/security/keystore/AndroidKeyStoreHmacSpi;->engineInit(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
+HSPLandroid/security/keystore/AndroidKeyStoreHmacSpi;->ensureKeystoreOperationInitialized()V
+HSPLandroid/security/keystore/AndroidKeyStoreHmacSpi;->init(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
+HSPLandroid/security/keystore/AndroidKeyStoreHmacSpi;->resetAll()V
 HSPLandroid/security/keystore/AndroidKeyStoreKey;-><init>(Ljava/lang/String;ILjava/lang/String;)V
 HSPLandroid/security/keystore/AndroidKeyStoreKey;->getAlgorithm()Ljava/lang/String;
 HSPLandroid/security/keystore/AndroidKeyStoreKey;->getAlias()Ljava/lang/String;
 HSPLandroid/security/keystore/AndroidKeyStoreKey;->getFormat()Ljava/lang/String;
 HSPLandroid/security/keystore/AndroidKeyStoreKey;->getUid()I
+HSPLandroid/security/keystore/AndroidKeyStoreKeyFactorySpi;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyFactorySpi;->engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi$EC;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi$RSA;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;-><clinit>()V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;-><init>(I)V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->addAlgorithmSpecificParameters(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->checkValidKeySize(IIZ)V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->constructKeyGenerationArguments()Landroid/security/keymaster/KeymasterArguments;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->createCertificateChain(Ljava/lang/String;Ljava/security/KeyPair;)Ljava/lang/Iterable;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateKeyPair()Ljava/security/KeyPair;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateKeystoreKeyPair(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BI)V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateSelfSignedCertificate(Ljava/security/PrivateKey;Ljava/security/PublicKey;)Ljava/security/cert/X509Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateSelfSignedCertificateBytes(Ljava/security/KeyPair;)[B
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateSelfSignedCertificateWithFakeSignature(Ljava/security/PublicKey;)Ljava/security/cert/X509Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateSelfSignedCertificateWithValidSignature(Ljava/security/PrivateKey;Ljava/security/PublicKey;Ljava/lang/String;)Ljava/security/cert/X509Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->getAvailableKeymasterSignatureDigests([Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Set;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->getCertificateSignatureAlgorithm(IILandroid/security/keystore/KeyGenParameterSpec;)Ljava/lang/String;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->initAlgorithmSpecificParameters()V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->initialize(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->loadKeystoreKeyPair(Ljava/lang/String;)Ljava/security/KeyPair;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->resetAll()V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->storeCertificate(Ljava/lang/String;[BILjava/lang/String;)V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->storeCertificateChain(ILjava/lang/Iterable;)V
+HSPLandroid/security/keystore/AndroidKeyStoreLoadStoreParameter;-><init>(I)V
+HSPLandroid/security/keystore/AndroidKeyStoreLoadStoreParameter;->getUid()I
+HSPLandroid/security/keystore/AndroidKeyStorePrivateKey;-><init>(Ljava/lang/String;ILjava/lang/String;)V
 HSPLandroid/security/keystore/AndroidKeyStoreProvider;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->getAndroidKeyStorePrivateKey(Landroid/security/keystore/AndroidKeyStorePublicKey;)Landroid/security/keystore/AndroidKeyStorePrivateKey;
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->getAndroidKeyStorePublicKey(Ljava/lang/String;ILjava/lang/String;[B)Landroid/security/keystore/AndroidKeyStorePublicKey;
 HSPLandroid/security/keystore/AndroidKeyStoreProvider;->getKeyCharacteristics(Landroid/security/KeyStore;Ljava/lang/String;I)Landroid/security/keymaster/KeyCharacteristics;
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->getKeyStoreForUid(I)Ljava/security/KeyStore;
 HSPLandroid/security/keystore/AndroidKeyStoreProvider;->install()V
 HSPLandroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;I)Landroid/security/keystore/AndroidKeyStoreKey;
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyPairFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;I)Ljava/security/KeyPair;
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyPairFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;ILandroid/security/keymaster/KeyCharacteristics;)Ljava/security/KeyPair;
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStorePrivateKeyFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;ILandroid/security/keymaster/KeyCharacteristics;)Landroid/security/keystore/AndroidKeyStorePrivateKey;
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStorePublicKeyFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;ILandroid/security/keymaster/KeyCharacteristics;)Landroid/security/keystore/AndroidKeyStorePublicKey;
 HSPLandroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStoreSecretKeyFromKeystore(Ljava/lang/String;ILandroid/security/keymaster/KeyCharacteristics;)Landroid/security/keystore/AndroidKeyStoreSecretKey;
 HSPLandroid/security/keystore/AndroidKeyStoreProvider;->putKeyFactoryImpl(Ljava/lang/String;)V
 HSPLandroid/security/keystore/AndroidKeyStoreProvider;->putSecretKeyFactoryImpl(Ljava/lang/String;)V
+HSPLandroid/security/keystore/AndroidKeyStorePublicKey;-><init>(Ljava/lang/String;ILjava/lang/String;[B)V
+HSPLandroid/security/keystore/AndroidKeyStorePublicKey;->getEncoded()[B
+HSPLandroid/security/keystore/AndroidKeyStoreRSAPrivateKey;-><init>(Ljava/lang/String;ILjava/math/BigInteger;)V
+HSPLandroid/security/keystore/AndroidKeyStoreRSAPublicKey;-><init>(Ljava/lang/String;ILjava/security/interfaces/RSAPublicKey;)V
+HSPLandroid/security/keystore/AndroidKeyStoreRSAPublicKey;-><init>(Ljava/lang/String;I[BLjava/math/BigInteger;Ljava/math/BigInteger;)V
+HSPLandroid/security/keystore/AndroidKeyStoreRSAPublicKey;->getModulus()Ljava/math/BigInteger;
 HSPLandroid/security/keystore/AndroidKeyStoreSecretKey;-><init>(Ljava/lang/String;ILjava/lang/String;)V
+HSPLandroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;->engineGetKeySpec(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
+HSPLandroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;->getKeyInfo(Landroid/security/KeyStore;Ljava/lang/String;Ljava/lang/String;I)Landroid/security/keystore/KeyInfo;
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->createMainDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->engineInitSign(Ljava/security/PrivateKey;)V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->engineInitSign(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->engineSign()[B
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->engineUpdate([BII)V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->ensureKeystoreOperationInitialized()V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->getKeyStore()Landroid/security/KeyStore;
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->initKey(Landroid/security/keystore/AndroidKeyStoreKey;)V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->resetAll()V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->resetWhilePreservingInitState()V
+HSPLandroid/security/keystore/AndroidKeyStoreSpi$KeyStoreX509Certificate;-><init>(Ljava/lang/String;ILjava/security/cert/X509Certificate;)V
+HSPLandroid/security/keystore/AndroidKeyStoreSpi$KeyStoreX509Certificate;->getPublicKey()Ljava/security/PublicKey;
 HSPLandroid/security/keystore/AndroidKeyStoreSpi;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineAliases()Ljava/util/Enumeration;
 HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineContainsAlias(Ljava/lang/String;)Z
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineGetCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineGetCertificateChain(Ljava/lang/String;)[Ljava/security/cert/Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineGetCreationDate(Ljava/lang/String;)Ljava/util/Date;
 HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineGetKey(Ljava/lang/String;[C)Ljava/security/Key;
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineIsCertificateEntry(Ljava/lang/String;)Z
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineIsKeyEntry(Ljava/lang/String;)Z
 HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineLoad(Ljava/security/KeyStore$LoadStoreParameter;)V
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->getCertificateForPrivateKeyEntry(Ljava/lang/String;[B)Ljava/security/cert/Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->getUniqueAliases()Ljava/util/Set;
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->isKeyEntry(Ljava/lang/String;)Z
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->toCertificate([B)Ljava/security/cert/X509Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->wrapIntoKeyStoreCertificate(Ljava/lang/String;ILjava/security/cert/X509Certificate;)Landroid/security/keystore/AndroidKeyStoreSpi$KeyStoreX509Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi$CBC$PKCS7Padding;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi$CBC$PKCS7Padding;->finalize()V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi$CBC;-><init>(I)V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;-><init>(IIZ)V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;->addAlgorithmSpecificParametersToBegin(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;->getAdditionalEntropyAmountForBegin()I
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;->getAdditionalEntropyAmountForFinish()I
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;->initKey(ILjava/security/Key;)V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;->loadAlgorithmSpecificParametersFromBeginResult(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;->resetAll()V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;->resetWhilePreservingInitState()V
+HSPLandroid/security/keystore/ArrayUtils;->cloneIfNotEmpty([B)[B
+HSPLandroid/security/keystore/ArrayUtils;->cloneIfNotEmpty([Ljava/lang/String;)[Ljava/lang/String;
 HSPLandroid/security/keystore/ArrayUtils;->concat([BII[BII)[B
 HSPLandroid/security/keystore/ArrayUtils;->concat([B[B)[B
 HSPLandroid/security/keystore/ArrayUtils;->copy([BI[BII)I
+HSPLandroid/security/keystore/ArrayUtils;->nullToEmpty([Ljava/lang/String;)[Ljava/lang/String;
 HSPLandroid/security/keystore/ArrayUtils;->subarray([BII)[B
+HSPLandroid/security/keystore/DelegatingX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)V
+HSPLandroid/security/keystore/DelegatingX509Certificate;->getPublicKey()Ljava/security/PublicKey;
+HSPLandroid/security/keystore/IKeystoreExportKeyCallback$Stub;-><init>()V
+HSPLandroid/security/keystore/IKeystoreExportKeyCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/security/keystore/IKeystoreExportKeyCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/security/keystore/IKeystoreKeyCharacteristicsCallback$Stub;-><init>()V
 HSPLandroid/security/keystore/IKeystoreKeyCharacteristicsCallback$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/security/keystore/IKeystoreKeyCharacteristicsCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
@@ -10355,39 +20115,181 @@
 HSPLandroid/security/keystore/IKeystoreResponseCallback$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->abort(Landroid/security/keystore/IKeystoreResponseCallback;Landroid/os/IBinder;)I
+HPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->addAuthToken([B)I
 HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->begin(Landroid/security/keystore/IKeystoreOperationResultCallback;Landroid/os/IBinder;Ljava/lang/String;IZLandroid/security/keymaster/KeymasterArguments;[BI)I
+HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->del(Ljava/lang/String;I)I
 HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->exist(Ljava/lang/String;I)I
+HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->exportKey(Landroid/security/keystore/IKeystoreExportKeyCallback;Ljava/lang/String;ILandroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;I)I
 HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->finish(Landroid/security/keystore/IKeystoreOperationResultCallback;Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B[B[B)I
+HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->generateKey(Landroid/security/keystore/IKeystoreKeyCharacteristicsCallback;Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BII)I
+HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->get(Ljava/lang/String;I)[B
 HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->getKeyCharacteristics(Landroid/security/keystore/IKeystoreKeyCharacteristicsCallback;Ljava/lang/String;Landroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;I)I
+PLandroid/security/keystore/IKeystoreService$Stub$Proxy;->getState(I)I
+HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->getmtime(Ljava/lang/String;I)J
+HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->grant(Ljava/lang/String;I)Ljava/lang/String;
+HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->insert(Ljava/lang/String;[BII)I
+HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->list(Ljava/lang/String;I)[Ljava/lang/String;
+HPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->onKeyguardVisibilityChanged(ZI)I
+HPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->unlock(ILjava/lang/String;)I
 HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->update(Landroid/security/keystore/IKeystoreOperationResultCallback;Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B)I
 HSPLandroid/security/keystore/IKeystoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/keystore/IKeystoreService;
+HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;-><init>(Ljava/lang/String;I)V
+HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->build()Landroid/security/keystore/KeyGenParameterSpec;
+HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setAlgorithmParameterSpec(Ljava/security/spec/AlgorithmParameterSpec;)Landroid/security/keystore/KeyGenParameterSpec$Builder;
+HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setAttestationChallenge([B)Landroid/security/keystore/KeyGenParameterSpec$Builder;
+HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setBlockModes([Ljava/lang/String;)Landroid/security/keystore/KeyGenParameterSpec$Builder;
+HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setDigests([Ljava/lang/String;)Landroid/security/keystore/KeyGenParameterSpec$Builder;
+HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setEncryptionPaddings([Ljava/lang/String;)Landroid/security/keystore/KeyGenParameterSpec$Builder;
+HSPLandroid/security/keystore/KeyGenParameterSpec;-><init>(Ljava/lang/String;IILjava/security/spec/AlgorithmParameterSpec;Ljavax/security/auth/x500/X500Principal;Ljava/math/BigInteger;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZZIIZ[BZZZZZZZ)V
+HSPLandroid/security/keystore/KeyGenParameterSpec;-><init>(Ljava/lang/String;IILjava/security/spec/AlgorithmParameterSpec;Ljavax/security/auth/x500/X500Principal;Ljava/math/BigInteger;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZZIZ[BZZZZZZZ)V
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getAlgorithmParameterSpec()Ljava/security/spec/AlgorithmParameterSpec;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getAttestationChallenge()[B
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getBlockModes()[Ljava/lang/String;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getCertificateNotAfter()Ljava/util/Date;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getCertificateNotBefore()Ljava/util/Date;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getCertificateSerialNumber()Ljava/math/BigInteger;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getCertificateSubject()Ljavax/security/auth/x500/X500Principal;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getDigests()[Ljava/lang/String;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getEncryptionPaddings()[Ljava/lang/String;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeySize()I
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeyValidityForConsumptionEnd()Ljava/util/Date;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeyValidityForOriginationEnd()Ljava/util/Date;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeyValidityStart()Ljava/util/Date;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeystoreAlias()Ljava/lang/String;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getPurposes()I
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getSignaturePaddings()[Ljava/lang/String;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getUid()I
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getUserAuthenticationValidityDurationSeconds()I
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isCriticalToDeviceEncryption()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isDigestsSpecified()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isRandomizedEncryptionRequired()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isStrongBoxBacked()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isUniqueIdIncluded()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isUnlockedDeviceRequired()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserAuthenticationRequired()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserAuthenticationValidWhileOnBody()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserConfirmationRequired()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserPresenceRequired()Z
+HSPLandroid/security/keystore/KeyInfo;->getUserAuthenticationValidityDurationSeconds()I
+HSPLandroid/security/keystore/KeyInfo;->isInsideSecureHardware()Z
+HSPLandroid/security/keystore/KeyProperties$BlockMode;->allFromKeymaster(Ljava/util/Collection;)[Ljava/lang/String;
+HSPLandroid/security/keystore/KeyProperties$BlockMode;->allToKeymaster([Ljava/lang/String;)[I
+HSPLandroid/security/keystore/KeyProperties$BlockMode;->fromKeymaster(I)Ljava/lang/String;
+HSPLandroid/security/keystore/KeyProperties$BlockMode;->toKeymaster(Ljava/lang/String;)I
+HSPLandroid/security/keystore/KeyProperties$Digest;->allFromKeymaster(Ljava/util/Collection;)[Ljava/lang/String;
+HSPLandroid/security/keystore/KeyProperties$Digest;->allToKeymaster([Ljava/lang/String;)[I
+HSPLandroid/security/keystore/KeyProperties$Digest;->fromKeymasterToSignatureAlgorithmDigest(I)Ljava/lang/String;
+HSPLandroid/security/keystore/KeyProperties$Digest;->toKeymaster(Ljava/lang/String;)I
+HSPLandroid/security/keystore/KeyProperties$EncryptionPadding;->allToKeymaster([Ljava/lang/String;)[I
+HSPLandroid/security/keystore/KeyProperties$EncryptionPadding;->fromKeymaster(I)Ljava/lang/String;
+HSPLandroid/security/keystore/KeyProperties$EncryptionPadding;->toKeymaster(Ljava/lang/String;)I
+HSPLandroid/security/keystore/KeyProperties$KeyAlgorithm;->fromKeymasterAsymmetricKeyAlgorithm(I)Ljava/lang/String;
 HSPLandroid/security/keystore/KeyProperties$KeyAlgorithm;->fromKeymasterSecretKeyAlgorithm(II)Ljava/lang/String;
+HSPLandroid/security/keystore/KeyProperties$Origin;->fromKeymaster(I)I
+HSPLandroid/security/keystore/KeyProperties$Purpose;->allFromKeymaster(Ljava/util/Collection;)I
+HSPLandroid/security/keystore/KeyProperties$Purpose;->allToKeymaster(I)[I
+HSPLandroid/security/keystore/KeyProperties$Purpose;->fromKeymaster(I)I
+HSPLandroid/security/keystore/KeyProperties$Purpose;->toKeymaster(I)I
+HSPLandroid/security/keystore/KeyProperties$SignaturePadding;->allToKeymaster([Ljava/lang/String;)[I
+HSPLandroid/security/keystore/KeyProperties;->access$000(I)[I
+HSPLandroid/security/keystore/KeyProperties;->getSetBitCount(I)I
+HSPLandroid/security/keystore/KeyProperties;->getSetFlags(I)[I
 HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;-><init>(Landroid/security/KeyStore;Landroid/os/IBinder;)V
 HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;->finish([B[B[B)Landroid/security/keymaster/OperationResult;
 HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;->update([B)Landroid/security/keymaster/OperationResult;
+HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;-><init>(Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$Stream;)V
 HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;-><init>(Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$Stream;I)V
 HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;-><init>(Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$Stream;II)V
 HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->doFinal([BII[B[B)[B
 HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->update([BII)[B
 HSPLandroid/security/keystore/KeyStoreCryptoOperationUtils;->getExceptionForCipherInit(Landroid/security/KeyStore;Landroid/security/keystore/AndroidKeyStoreKey;I)Ljava/security/GeneralSecurityException;
+HSPLandroid/security/keystore/KeyStoreCryptoOperationUtils;->getInvalidKeyExceptionForInit(Landroid/security/KeyStore;Landroid/security/keystore/AndroidKeyStoreKey;I)Ljava/security/InvalidKeyException;
 HSPLandroid/security/keystore/KeyStoreCryptoOperationUtils;->getRandomBytesToMixIntoKeystoreRng(Ljava/security/SecureRandom;I)[B
+HSPLandroid/security/keystore/KeymasterUtils;->addUserAuthArgs(Landroid/security/keymaster/KeymasterArguments;Landroid/security/keystore/UserAuthArgs;)V
+HSPLandroid/security/keystore/KeymasterUtils;->getDigestOutputSizeBits(I)I
 HSPLandroid/security/keystore/KeystoreResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keystore/KeystoreResponse;
 HSPLandroid/security/keystore/KeystoreResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/security/keystore/KeystoreResponse;-><init>(ILjava/lang/String;)V
 HSPLandroid/security/keystore/KeystoreResponse;->getErrorCode()I
+HSPLandroid/security/keystore/Utils;->cloneIfNotNull(Ljava/util/Date;)Ljava/util/Date;
+HSPLandroid/security/keystore/Utils;->cloneIfNotNull([B)[B
+HPLandroid/security/keystore/recovery/KeyChainProtectionParams$Builder;-><init>()V
+HPLandroid/security/keystore/recovery/KeyChainProtectionParams$Builder;->build()Landroid/security/keystore/recovery/KeyChainProtectionParams;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams$Builder;->setKeyDerivationParams(Landroid/security/keystore/recovery/KeyDerivationParams;)Landroid/security/keystore/recovery/KeyChainProtectionParams$Builder;
+HPLandroid/security/keystore/recovery/KeyChainProtectionParams$Builder;->setLockScreenUiFormat(I)Landroid/security/keystore/recovery/KeyChainProtectionParams$Builder;
+HPLandroid/security/keystore/recovery/KeyChainProtectionParams$Builder;->setUserSecretType(I)Landroid/security/keystore/recovery/KeyChainProtectionParams$Builder;
+HPLandroid/security/keystore/recovery/KeyChainProtectionParams;-><init>()V
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;-><init>(Landroid/security/keystore/recovery/KeyChainProtectionParams$1;)V
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$100(Landroid/security/keystore/recovery/KeyChainProtectionParams;)Ljava/lang/Integer;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$102(Landroid/security/keystore/recovery/KeyChainProtectionParams;Ljava/lang/Integer;)Ljava/lang/Integer;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$200(Landroid/security/keystore/recovery/KeyChainProtectionParams;)Ljava/lang/Integer;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$202(Landroid/security/keystore/recovery/KeyChainProtectionParams;Ljava/lang/Integer;)Ljava/lang/Integer;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$300(Landroid/security/keystore/recovery/KeyChainProtectionParams;)Landroid/security/keystore/recovery/KeyDerivationParams;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$302(Landroid/security/keystore/recovery/KeyChainProtectionParams;Landroid/security/keystore/recovery/KeyDerivationParams;)Landroid/security/keystore/recovery/KeyDerivationParams;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$400(Landroid/security/keystore/recovery/KeyChainProtectionParams;)[B
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$402(Landroid/security/keystore/recovery/KeyChainProtectionParams;[B)[B
+HPLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;-><init>()V
+HPLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->build()Landroid/security/keystore/recovery/KeyChainSnapshot;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setCounterId(J)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setEncryptedRecoveryKeyBlob([B)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setKeyChainProtectionParams(Ljava/util/List;)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setMaxAttempts(I)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setServerParams([B)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setSnapshotVersion(I)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setTrustedHardwareCertPath(Ljava/security/cert/CertPath;)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setWrappedApplicationKeys(Ljava/util/List;)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+HPLandroid/security/keystore/recovery/KeyChainSnapshot;-><init>()V
+PLandroid/security/keystore/recovery/KeyChainSnapshot;-><init>(Landroid/security/keystore/recovery/KeyChainSnapshot$1;)V
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$102(Landroid/security/keystore/recovery/KeyChainSnapshot;I)I
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$202(Landroid/security/keystore/recovery/KeyChainSnapshot;I)I
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$302(Landroid/security/keystore/recovery/KeyChainSnapshot;J)J
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$400(Landroid/security/keystore/recovery/KeyChainSnapshot;)[B
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$402(Landroid/security/keystore/recovery/KeyChainSnapshot;[B)[B
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$500(Landroid/security/keystore/recovery/KeyChainSnapshot;)Landroid/security/keystore/recovery/RecoveryCertPath;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$502(Landroid/security/keystore/recovery/KeyChainSnapshot;Landroid/security/keystore/recovery/RecoveryCertPath;)Landroid/security/keystore/recovery/RecoveryCertPath;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$600(Landroid/security/keystore/recovery/KeyChainSnapshot;)Ljava/util/List;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$602(Landroid/security/keystore/recovery/KeyChainSnapshot;Ljava/util/List;)Ljava/util/List;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$700(Landroid/security/keystore/recovery/KeyChainSnapshot;)Ljava/util/List;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$702(Landroid/security/keystore/recovery/KeyChainSnapshot;Ljava/util/List;)Ljava/util/List;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$800(Landroid/security/keystore/recovery/KeyChainSnapshot;)[B
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$802(Landroid/security/keystore/recovery/KeyChainSnapshot;[B)[B
+PLandroid/security/keystore/recovery/KeyDerivationParams;-><init>(I[BI)V
+HPLandroid/security/keystore/recovery/RecoveryCertPath;-><init>([B)V
+PLandroid/security/keystore/recovery/RecoveryCertPath;->createRecoveryCertPath(Ljava/security/cert/CertPath;)Landroid/security/keystore/recovery/RecoveryCertPath;
+HPLandroid/security/keystore/recovery/RecoveryCertPath;->encodeCertPath(Ljava/security/cert/CertPath;)[B
+HSPLandroid/security/keystore/recovery/RecoveryController;->getInstance(Landroid/content/Context;)Landroid/security/keystore/recovery/RecoveryController;
+HSPLandroid/security/keystore/recovery/RecoveryController;->getRecoverySecretTypes()[I
+HSPLandroid/security/keystore/recovery/RecoveryController;->initRecoveryService(Ljava/lang/String;[B[B)V
+HSPLandroid/security/keystore/recovery/RecoveryController;->setRecoverySecretTypes([I)V
+HSPLandroid/security/keystore/recovery/RecoveryController;->setServerParams([B)V
+HSPLandroid/security/keystore/recovery/RecoveryController;->setSnapshotCreatedPendingIntent(Landroid/app/PendingIntent;)V
+HPLandroid/security/keystore/recovery/WrappedApplicationKey$Builder;-><init>()V
+HPLandroid/security/keystore/recovery/WrappedApplicationKey$Builder;->build()Landroid/security/keystore/recovery/WrappedApplicationKey;
+HPLandroid/security/keystore/recovery/WrappedApplicationKey$Builder;->setAlias(Ljava/lang/String;)Landroid/security/keystore/recovery/WrappedApplicationKey$Builder;
+HPLandroid/security/keystore/recovery/WrappedApplicationKey$Builder;->setEncryptedKeyMaterial([B)Landroid/security/keystore/recovery/WrappedApplicationKey$Builder;
+HPLandroid/security/keystore/recovery/WrappedApplicationKey;-><init>()V
+PLandroid/security/keystore/recovery/WrappedApplicationKey;-><init>(Landroid/security/keystore/recovery/WrappedApplicationKey$1;)V
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->access$100(Landroid/security/keystore/recovery/WrappedApplicationKey;)Ljava/lang/String;
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->access$102(Landroid/security/keystore/recovery/WrappedApplicationKey;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->access$200(Landroid/security/keystore/recovery/WrappedApplicationKey;)[B
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->access$202(Landroid/security/keystore/recovery/WrappedApplicationKey;[B)[B
 HSPLandroid/security/net/config/ApplicationConfig;-><init>(Landroid/security/net/config/ConfigSource;)V
 HSPLandroid/security/net/config/ApplicationConfig;->ensureInitialized()V
 HSPLandroid/security/net/config/ApplicationConfig;->getConfigForHostname(Ljava/lang/String;)Landroid/security/net/config/NetworkSecurityConfig;
 HSPLandroid/security/net/config/ApplicationConfig;->getDefaultInstance()Landroid/security/net/config/ApplicationConfig;
 HSPLandroid/security/net/config/ApplicationConfig;->getTrustManager()Ljavax/net/ssl/X509TrustManager;
+HSPLandroid/security/net/config/ApplicationConfig;->hasPerDomainConfigs()Z
+HSPLandroid/security/net/config/ApplicationConfig;->isCleartextTrafficPermitted()Z
 HSPLandroid/security/net/config/ApplicationConfig;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
 HSPLandroid/security/net/config/ApplicationConfig;->setDefaultInstance(Landroid/security/net/config/ApplicationConfig;)V
 HSPLandroid/security/net/config/CertificatesEntryRef;-><init>(Landroid/security/net/config/CertificateSource;Z)V
 HSPLandroid/security/net/config/CertificatesEntryRef;->findAllCertificatesByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
 HSPLandroid/security/net/config/CertificatesEntryRef;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Landroid/security/net/config/TrustAnchor;
+HSPLandroid/security/net/config/CertificatesEntryRef;->overridesPins()Z
 HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;-><init>(Landroid/security/net/config/ApplicationConfig;)V
 HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCertificateTransparencyVerificationRequired(Ljava/lang/String;)Z
+HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCleartextTrafficPermitted()Z
 HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
 HSPLandroid/security/net/config/DirectoryCertificateSource$1;-><init>(Landroid/security/net/config/DirectoryCertificateSource;Ljava/security/cert/X509Certificate;)V
 HSPLandroid/security/net/config/DirectoryCertificateSource$3;-><init>(Landroid/security/net/config/DirectoryCertificateSource;Ljava/security/cert/X509Certificate;)V
@@ -10403,6 +20305,9 @@
 HSPLandroid/security/net/config/DirectoryCertificateSource;->readCertificate(Ljava/lang/String;)Ljava/security/cert/X509Certificate;
 HSPLandroid/security/net/config/Domain;->hashCode()I
 HSPLandroid/security/net/config/KeyStoreCertificateSource;-><init>(Ljava/security/KeyStore;)V
+HSPLandroid/security/net/config/KeyStoreCertificateSource;->ensureInitialized()V
+HSPLandroid/security/net/config/KeyStoreCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
+HSPLandroid/security/net/config/KeyStoreCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
 HSPLandroid/security/net/config/KeyStoreConfigSource;-><init>(Ljava/security/KeyStore;)V
 HSPLandroid/security/net/config/KeyStoreConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig;
 HSPLandroid/security/net/config/KeyStoreConfigSource;->getPerDomainConfigs()Ljava/util/Set;
@@ -10414,6 +20319,8 @@
 HSPLandroid/security/net/config/ManifestConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig;
 HSPLandroid/security/net/config/ManifestConfigSource;->getPerDomainConfigs()Ljava/util/Set;
 HSPLandroid/security/net/config/NetworkSecurityConfig$1;-><init>(Landroid/security/net/config/NetworkSecurityConfig;)V
+HSPLandroid/security/net/config/NetworkSecurityConfig$1;->compare(Landroid/security/net/config/CertificatesEntryRef;Landroid/security/net/config/CertificatesEntryRef;)I
+HSPLandroid/security/net/config/NetworkSecurityConfig$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;-><init>()V
 HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->addCertificatesEntryRef(Landroid/security/net/config/CertificatesEntryRef;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
 HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->addCertificatesEntryRefs(Ljava/util/Collection;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
@@ -10435,12 +20342,15 @@
 HSPLandroid/security/net/config/NetworkSecurityConfig;->getTrustManager()Landroid/security/net/config/NetworkSecurityTrustManager;
 HSPLandroid/security/net/config/NetworkSecurityConfig;->isCleartextTrafficPermitted()Z
 HSPLandroid/security/net/config/NetworkSecurityConfigProvider;-><init>()V
+HSPLandroid/security/net/config/NetworkSecurityConfigProvider;->handleNewApplication(Landroid/content/Context;)V
 HSPLandroid/security/net/config/NetworkSecurityConfigProvider;->install(Landroid/content/Context;)V
 HSPLandroid/security/net/config/NetworkSecurityTrustManager;-><init>(Landroid/security/net/config/NetworkSecurityConfig;)V
 HSPLandroid/security/net/config/NetworkSecurityTrustManager;->checkPins(Ljava/util/List;)V
+HSPLandroid/security/net/config/NetworkSecurityTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
 HSPLandroid/security/net/config/NetworkSecurityTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
 HSPLandroid/security/net/config/NetworkSecurityTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
 HSPLandroid/security/net/config/RootTrustManager;-><init>(Landroid/security/net/config/ApplicationConfig;)V
+HSPLandroid/security/net/config/RootTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
 HSPLandroid/security/net/config/RootTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
 HSPLandroid/security/net/config/RootTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
 HSPLandroid/security/net/config/RootTrustManagerFactorySpi;-><init>()V
@@ -10457,6 +20367,13 @@
 HSPLandroid/security/net/config/TrustedCertificateStoreAdapter;-><init>(Landroid/security/net/config/NetworkSecurityConfig;)V
 HSPLandroid/security/net/config/TrustedCertificateStoreAdapter;->findAllIssuers(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
 HSPLandroid/security/net/config/TrustedCertificateStoreAdapter;->getTrustAnchor(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
+HSPLandroid/security/net/config/UserCertificateSource$NoPreloadHolder;-><clinit>()V
+HSPLandroid/security/net/config/UserCertificateSource$NoPreloadHolder;->access$100()Landroid/security/net/config/UserCertificateSource;
+HSPLandroid/security/net/config/UserCertificateSource;-><init>()V
+HSPLandroid/security/net/config/UserCertificateSource;-><init>(Landroid/security/net/config/UserCertificateSource$1;)V
+HSPLandroid/security/net/config/UserCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
+HSPLandroid/security/net/config/UserCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
+HSPLandroid/security/net/config/UserCertificateSource;->getInstance()Landroid/security/net/config/UserCertificateSource;
 HSPLandroid/security/net/config/XmlConfigSource;-><init>(Landroid/content/Context;ILandroid/content/pm/ApplicationInfo;)V
 HSPLandroid/security/net/config/XmlConfigSource;->addDebugAnchorsIfNeeded(Landroid/security/net/config/NetworkSecurityConfig$Builder;Landroid/security/net/config/NetworkSecurityConfig$Builder;)V
 HSPLandroid/security/net/config/XmlConfigSource;->ensureInitialized()V
@@ -10467,24 +20384,231 @@
 HSPLandroid/security/net/config/XmlConfigSource;->parseDomain(Landroid/content/res/XmlResourceParser;Ljava/util/Set;)Landroid/security/net/config/Domain;
 HSPLandroid/security/net/config/XmlConfigSource;->parseNetworkSecurityConfig(Landroid/content/res/XmlResourceParser;)V
 HSPLandroid/security/net/config/XmlConfigSource;->parseTrustAnchors(Landroid/content/res/XmlResourceParser;Z)Ljava/util/Collection;
+PLandroid/service/appprediction/IPredictionService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/service/appprediction/IPredictionService$Stub$Proxy;->notifyAppTargetEvent(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
+HPLandroid/service/appprediction/IPredictionService$Stub$Proxy;->onCreatePredictionSession(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;)V
+HPLandroid/service/appprediction/IPredictionService$Stub$Proxy;->registerPredictionUpdates(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
+HPLandroid/service/appprediction/IPredictionService$Stub$Proxy;->requestPredictionUpdate(Landroid/app/prediction/AppPredictionSessionId;)V
+HSPLandroid/service/appprediction/IPredictionService$Stub;-><init>()V
+PLandroid/service/appprediction/IPredictionService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/appprediction/IPredictionService;
+PLandroid/service/autofill/AutofillServiceInfo;-><init>(Landroid/content/Context;Landroid/content/ComponentName;I)V
+PLandroid/service/autofill/AutofillServiceInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ServiceInfo;)V
+PLandroid/service/autofill/AutofillServiceInfo;->getCompatibilityPackages()Landroid/util/ArrayMap;
+PLandroid/service/autofill/AutofillServiceInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo;
+PLandroid/service/autofill/AutofillServiceInfo;->getServiceInfoOrThrow(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;
+PLandroid/service/autofill/AutofillServiceInfo;->parseCompatibilityPackages(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/util/ArrayMap;
+HSPLandroid/service/autofill/Dataset$1;-><init>()V
+HSPLandroid/service/autofill/Dataset;-><clinit>()V
+HSPLandroid/service/autofill/FillContext;-><init>(ILandroid/app/assist/AssistStructure;Landroid/view/autofill/AutofillId;)V
+HSPLandroid/service/autofill/FillContext;->getStructure()Landroid/app/assist/AssistStructure;
+HSPLandroid/service/autofill/FillRequest;->getFlags()I
+HSPLandroid/service/autofill/FillRequest;->getId()I
+HSPLandroid/service/autofill/FillRequest;->onConstructed()V
+HPLandroid/service/autofill/UserData$Builder;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/service/autofill/UserData$Builder;->access$000(Landroid/service/autofill/UserData$Builder;)Ljava/lang/String;
+PLandroid/service/autofill/UserData$Builder;->access$100(Landroid/service/autofill/UserData$Builder;)Ljava/util/ArrayList;
+PLandroid/service/autofill/UserData$Builder;->access$200(Landroid/service/autofill/UserData$Builder;)Ljava/util/ArrayList;
+PLandroid/service/autofill/UserData$Builder;->access$300(Landroid/service/autofill/UserData$Builder;)Ljava/lang/String;
+PLandroid/service/autofill/UserData$Builder;->access$400(Landroid/service/autofill/UserData$Builder;)Landroid/os/Bundle;
+PLandroid/service/autofill/UserData$Builder;->access$500(Landroid/service/autofill/UserData$Builder;)Landroid/util/ArrayMap;
+PLandroid/service/autofill/UserData$Builder;->access$600(Landroid/service/autofill/UserData$Builder;)Landroid/util/ArrayMap;
+HPLandroid/service/autofill/UserData$Builder;->addMapping(Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/service/autofill/UserData$Builder;->build()Landroid/service/autofill/UserData;
+HPLandroid/service/autofill/UserData$Builder;->checkNotEmpty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/service/autofill/UserData$Builder;->checkValidValue(Ljava/lang/String;)V
+PLandroid/service/autofill/UserData$Builder;->throwIfDestroyed()V
+HPLandroid/service/autofill/UserData;-><init>(Landroid/service/autofill/UserData$Builder;)V
+PLandroid/service/autofill/UserData;-><init>(Landroid/service/autofill/UserData$Builder;Landroid/service/autofill/UserData$1;)V
+HPLandroid/service/autofill/UserData;->getInt(Ljava/lang/String;I)I
+HPLandroid/service/autofill/UserData;->getMaxCategoryCount()I
+HPLandroid/service/autofill/UserData;->getMaxUserDataSize()I
+HPLandroid/service/autofill/UserData;->getMaxValueLength()I
+HPLandroid/service/autofill/UserData;->getMinValueLength()I
+HSPLandroid/service/autofill/augmented/Helper;-><clinit>()V
+HSPLandroid/service/autofill/augmented/Helper;->logResponse(ILjava/lang/String;Landroid/content/ComponentName;IJ)V
+PLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub$Proxy;->onConnected(ZZ)V
+HPLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub$Proxy;->onDestroyAllFillWindowsRequest()V
+PLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/autofill/augmented/IAugmentedAutofillService;
+HSPLandroid/service/contentcapture/ActivityEvent;-><clinit>()V
+HSPLandroid/service/contentcapture/ActivityEvent;-><init>(Landroid/content/ComponentName;I)V
+HPLandroid/service/contentcapture/ActivityEvent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/service/contentcapture/ContentCaptureService;-><clinit>()V
+HSPLandroid/service/contentcapture/ContentCaptureService;->setClientState(Lcom/android/internal/os/IResultReceiver;ILandroid/os/IBinder;)V
+PLandroid/service/contentcapture/ContentCaptureServiceInfo;-><init>(Landroid/content/Context;Landroid/content/ComponentName;ZI)V
+PLandroid/service/contentcapture/ContentCaptureServiceInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ServiceInfo;)V
+PLandroid/service/contentcapture/ContentCaptureServiceInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo;
+PLandroid/service/contentcapture/ContentCaptureServiceInfo;->getServiceInfoOrThrow(Landroid/content/ComponentName;ZI)Landroid/content/pm/ServiceInfo;
+HSPLandroid/service/contentcapture/FlushMetrics;-><init>()V
+PLandroid/service/contentcapture/IContentCaptureService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/service/contentcapture/IContentCaptureService$Stub$Proxy;->onActivityEvent(Landroid/service/contentcapture/ActivityEvent;)V
+PLandroid/service/contentcapture/IContentCaptureService$Stub$Proxy;->onConnected(Landroid/os/IBinder;ZZ)V
+PLandroid/service/contentcapture/IContentCaptureService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/contentcapture/IContentCaptureService;
+PLandroid/service/contentcapture/IContentCaptureServiceCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/service/contentcapture/IContentCaptureServiceCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/dreams/DreamManagerInternal;-><init>()V
+HSPLandroid/service/dreams/DreamService$1;-><init>(Landroid/service/dreams/DreamService;Landroid/os/IRemoteCallback;)V
+HSPLandroid/service/dreams/DreamService$1;->run()V
+HSPLandroid/service/dreams/DreamService$DreamServiceWrapper$1;-><init>(Landroid/service/dreams/DreamService$DreamServiceWrapper;Landroid/os/IBinder;ZLandroid/os/IRemoteCallback;)V
+HSPLandroid/service/dreams/DreamService$DreamServiceWrapper$1;->run()V
+HSPLandroid/service/dreams/DreamService$DreamServiceWrapper$2;-><init>(Landroid/service/dreams/DreamService$DreamServiceWrapper;)V
+HSPLandroid/service/dreams/DreamService$DreamServiceWrapper$2;->run()V
+HSPLandroid/service/dreams/DreamService$DreamServiceWrapper$3;-><init>(Landroid/service/dreams/DreamService$DreamServiceWrapper;)V
+HSPLandroid/service/dreams/DreamService$DreamServiceWrapper$3;->run()V
+HSPLandroid/service/dreams/DreamService$DreamServiceWrapper;-><init>(Landroid/service/dreams/DreamService;)V
+HSPLandroid/service/dreams/DreamService$DreamServiceWrapper;-><init>(Landroid/service/dreams/DreamService;Landroid/service/dreams/DreamService$1;)V
+HSPLandroid/service/dreams/DreamService$DreamServiceWrapper;->attach(Landroid/os/IBinder;ZLandroid/os/IRemoteCallback;)V
+HSPLandroid/service/dreams/DreamService$DreamServiceWrapper;->detach()V
+HSPLandroid/service/dreams/DreamService$DreamServiceWrapper;->wakeUp()V
+HSPLandroid/service/dreams/DreamService;-><init>()V
+HSPLandroid/service/dreams/DreamService;->access$100(Landroid/service/dreams/DreamService;)Landroid/view/Window;
+HSPLandroid/service/dreams/DreamService;->access$200(Landroid/service/dreams/DreamService;)Z
+HSPLandroid/service/dreams/DreamService;->access$300(Landroid/service/dreams/DreamService;)Z
+HSPLandroid/service/dreams/DreamService;->access$502(Landroid/service/dreams/DreamService;Z)Z
+HSPLandroid/service/dreams/DreamService;->access$600(Landroid/service/dreams/DreamService;Landroid/os/IBinder;ZLandroid/os/IRemoteCallback;)V
+HSPLandroid/service/dreams/DreamService;->access$700(Landroid/service/dreams/DreamService;)Landroid/os/Handler;
+HSPLandroid/service/dreams/DreamService;->access$800(Landroid/service/dreams/DreamService;)V
+HSPLandroid/service/dreams/DreamService;->access$900(Landroid/service/dreams/DreamService;Z)V
+HSPLandroid/service/dreams/DreamService;->attach(Landroid/os/IBinder;ZLandroid/os/IRemoteCallback;)V
+HSPLandroid/service/dreams/DreamService;->clampAbsoluteBrightness(I)I
+HSPLandroid/service/dreams/DreamService;->detach()V
+HSPLandroid/service/dreams/DreamService;->finish()V
+HSPLandroid/service/dreams/DreamService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HSPLandroid/service/dreams/DreamService;->onCreate()V
+HSPLandroid/service/dreams/DreamService;->onDestroy()V
+HSPLandroid/service/dreams/DreamService;->onDreamingStarted()V
+HSPLandroid/service/dreams/DreamService;->onDreamingStopped()V
+HSPLandroid/service/dreams/DreamService;->onWakeUp()V
+HSPLandroid/service/dreams/DreamService;->setDebug(Z)V
+HSPLandroid/service/dreams/DreamService;->setDozeScreenBrightness(I)V
+HSPLandroid/service/dreams/DreamService;->setDozeScreenState(I)V
+HSPLandroid/service/dreams/DreamService;->setWindowless(Z)V
+HSPLandroid/service/dreams/DreamService;->startDozing()V
+HSPLandroid/service/dreams/DreamService;->updateDoze()V
+HSPLandroid/service/dreams/DreamService;->wakeUp(Z)V
+HSPLandroid/service/dreams/IDreamManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/service/dreams/IDreamManager$Stub$Proxy;->finishSelf(Landroid/os/IBinder;Z)V
+HSPLandroid/service/dreams/IDreamManager$Stub$Proxy;->forceAmbientDisplayEnabled(Z)V
+HSPLandroid/service/dreams/IDreamManager$Stub$Proxy;->isDreaming()Z
+HSPLandroid/service/dreams/IDreamManager$Stub$Proxy;->startDozing(Landroid/os/IBinder;II)V
+HSPLandroid/service/dreams/IDreamManager$Stub;-><init>()V
+HSPLandroid/service/dreams/IDreamManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/dreams/IDreamManager;
+HPLandroid/service/dreams/IDreamManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/service/dreams/IDreamService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/service/dreams/IDreamService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/service/dreams/IDreamService$Stub$Proxy;->attach(Landroid/os/IBinder;ZLandroid/os/IRemoteCallback;)V
+HPLandroid/service/dreams/IDreamService$Stub$Proxy;->detach()V
+HPLandroid/service/dreams/IDreamService$Stub$Proxy;->wakeUp()V
+HSPLandroid/service/dreams/IDreamService$Stub;-><init>()V
+HPLandroid/service/dreams/IDreamService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/dreams/IDreamService;
+HSPLandroid/service/dreams/IDreamService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/service/gatekeeper/GateKeeperResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/gatekeeper/GateKeeperResponse;
+PLandroid/service/gatekeeper/GateKeeperResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/service/gatekeeper/GateKeeperResponse;-><init>(I)V
+PLandroid/service/gatekeeper/GateKeeperResponse;->createOkResponse([BZ)Landroid/service/gatekeeper/GateKeeperResponse;
+HSPLandroid/service/gatekeeper/IGateKeeperService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/service/gatekeeper/IGateKeeperService$Stub$Proxy;->getSecureUserId(I)J
+HPLandroid/service/gatekeeper/IGateKeeperService$Stub$Proxy;->verifyChallenge(IJ[B[B)Landroid/service/gatekeeper/GateKeeperResponse;
+HSPLandroid/service/gatekeeper/IGateKeeperService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/gatekeeper/IGateKeeperService;
+HPLandroid/service/notification/Adjustment$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/Adjustment;
+HPLandroid/service/notification/Adjustment$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/service/notification/Adjustment;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/service/notification/Adjustment;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;Ljava/lang/CharSequence;I)V
+PLandroid/service/notification/Adjustment;->getKey()Ljava/lang/String;
+PLandroid/service/notification/Adjustment;->getSignals()Landroid/os/Bundle;
+PLandroid/service/notification/Adjustment;->getUser()I
+HSPLandroid/service/notification/Condition$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/Condition;
+HSPLandroid/service/notification/Condition$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/service/notification/Condition;-><init>(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;III)V
+HSPLandroid/service/notification/Condition;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/service/notification/Condition;->equals(Ljava/lang/Object;)Z
+HSPLandroid/service/notification/Condition;->hashCode()I
+HSPLandroid/service/notification/Condition;->isValidId(Landroid/net/Uri;Ljava/lang/String;)Z
+HSPLandroid/service/notification/Condition;->isValidState(I)Z
+HSPLandroid/service/notification/Condition;->stateToString(I)Ljava/lang/String;
+HSPLandroid/service/notification/Condition;->toString()Ljava/lang/String;
+HSPLandroid/service/notification/Condition;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/service/notification/ConditionProviderService$H;-><init>(Landroid/service/notification/ConditionProviderService;)V
+HSPLandroid/service/notification/ConditionProviderService$H;-><init>(Landroid/service/notification/ConditionProviderService;Landroid/service/notification/ConditionProviderService$1;)V
+HSPLandroid/service/notification/ConditionProviderService$H;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/service/notification/ConditionProviderService$Provider;-><init>(Landroid/service/notification/ConditionProviderService;)V
+HSPLandroid/service/notification/ConditionProviderService$Provider;-><init>(Landroid/service/notification/ConditionProviderService;Landroid/service/notification/ConditionProviderService$1;)V
+HSPLandroid/service/notification/ConditionProviderService$Provider;->onConnected()V
+HSPLandroid/service/notification/ConditionProviderService$Provider;->onSubscribe(Landroid/net/Uri;)V
+HSPLandroid/service/notification/ConditionProviderService;-><init>()V
+HSPLandroid/service/notification/ConditionProviderService;->access$200(Landroid/service/notification/ConditionProviderService;)Landroid/service/notification/ConditionProviderService$H;
+HSPLandroid/service/notification/ConditionProviderService;->getNotificationInterface()Landroid/app/INotificationManager;
+HSPLandroid/service/notification/ConditionProviderService;->isBound()Z
+HSPLandroid/service/notification/ConditionProviderService;->notifyCondition(Landroid/service/notification/Condition;)V
+HSPLandroid/service/notification/ConditionProviderService;->notifyConditions([Landroid/service/notification/Condition;)V
+HSPLandroid/service/notification/ConditionProviderService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HSPLandroid/service/notification/ConditionProviderService;->requestUnbind()V
+PLandroid/service/notification/IConditionProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/service/notification/IConditionProvider$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/service/notification/IConditionProvider$Stub$Proxy;->onConnected()V
+HSPLandroid/service/notification/IConditionProvider$Stub;-><init>()V
+HSPLandroid/service/notification/IConditionProvider$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/service/notification/IConditionProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/notification/IConditionProvider;
+HSPLandroid/service/notification/IConditionProvider$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/notification/INotificationListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/service/notification/INotificationListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/notification/INotificationListener$Stub$Proxy;->onListenerConnected(Landroid/service/notification/NotificationRankingUpdate;)V
+HPLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationEnqueuedWithChannel(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/app/NotificationChannel;)V
+HPLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationExpansionChanged(Ljava/lang/String;ZZ)V
+HSPLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationPosted(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;)V
+HPLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationRankingUpdate(Landroid/service/notification/NotificationRankingUpdate;)V
+HPLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationRemoved(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
+HPLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationVisibilityChanged(Ljava/lang/String;Z)V
+HPLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationsSeen(Ljava/util/List;)V
+HPLandroid/service/notification/INotificationListener$Stub$Proxy;->onPanelHidden()V
+HPLandroid/service/notification/INotificationListener$Stub$Proxy;->onPanelRevealed(I)V
 HSPLandroid/service/notification/INotificationListener$Stub;-><init>()V
 HSPLandroid/service/notification/INotificationListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/notification/INotificationListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/notification/INotificationListener;
 HSPLandroid/service/notification/INotificationListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;->get()Landroid/service/notification/StatusBarNotification;
+HSPLandroid/service/notification/IStatusBarNotificationHolder$Stub;-><init>()V
+HSPLandroid/service/notification/IStatusBarNotificationHolder$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/notification/IStatusBarNotificationHolder$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/notification/IStatusBarNotificationHolder;
+HSPLandroid/service/notification/IStatusBarNotificationHolder$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/service/notification/NotificationListenerService$MyHandler;-><init>(Landroid/service/notification/NotificationListenerService;Landroid/os/Looper;)V
 HSPLandroid/service/notification/NotificationListenerService$MyHandler;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;-><init>(Landroid/service/notification/NotificationListenerService;)V
+HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onInterruptionFilterChanged(I)V
 HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onListenerConnected(Landroid/service/notification/NotificationRankingUpdate;)V
+HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationChannelGroupModification(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
+HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationChannelModification(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
 HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationPosted(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;)V
 HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRankingUpdate(Landroid/service/notification/NotificationRankingUpdate;)V
 HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRemoved(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
 HSPLandroid/service/notification/NotificationListenerService$Ranking;-><init>()V
 HSPLandroid/service/notification/NotificationListenerService$Ranking;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->canBubble()Z
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->getChannel()Landroid/app/NotificationChannel;
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->getImportance()I
 HSPLandroid/service/notification/NotificationListenerService$Ranking;->getKey()Ljava/lang/String;
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->getLastAudiblyAlertedMillis()J
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->getOverrideGroupKey()Ljava/lang/String;
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->getRank()I
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->getSmartActions()Ljava/util/List;
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->getSmartReplies()Ljava/util/List;
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->getSuppressedVisualEffects()I
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->getVisibilityOverride()I
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->isAmbient()Z
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->isConversation()Z
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->isSuspended()Z
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->populate(Landroid/service/notification/NotificationListenerService$Ranking;)V
 HSPLandroid/service/notification/NotificationListenerService$Ranking;->populate(Ljava/lang/String;IZIIILjava/lang/CharSequence;Ljava/lang/String;Landroid/app/NotificationChannel;Ljava/util/ArrayList;Ljava/util/ArrayList;ZIZJZLjava/util/ArrayList;Ljava/util/ArrayList;ZZZ)V
+HSPLandroid/service/notification/NotificationListenerService$Ranking;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/service/notification/NotificationListenerService$RankingMap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/NotificationListenerService$RankingMap;
 HSPLandroid/service/notification/NotificationListenerService$RankingMap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/service/notification/NotificationListenerService$RankingMap;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/service/notification/NotificationListenerService$RankingMap;-><init>(Landroid/os/Parcel;Landroid/service/notification/NotificationListenerService$1;)V
+HSPLandroid/service/notification/NotificationListenerService$RankingMap;-><init>([Landroid/service/notification/NotificationListenerService$Ranking;)V
+HSPLandroid/service/notification/NotificationListenerService$RankingMap;->getOrderedKeys()[Ljava/lang/String;
+HSPLandroid/service/notification/NotificationListenerService$RankingMap;->getRanking(Ljava/lang/String;Landroid/service/notification/NotificationListenerService$Ranking;)Z
+HSPLandroid/service/notification/NotificationListenerService$RankingMap;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/service/notification/NotificationListenerService;-><init>()V
 HSPLandroid/service/notification/NotificationListenerService;->access$100(Landroid/service/notification/NotificationListenerService;Landroid/app/Notification;)V
 HSPLandroid/service/notification/NotificationListenerService;->access$200(Landroid/service/notification/NotificationListenerService;Landroid/app/Notification;)V
@@ -10494,58 +20618,435 @@
 HSPLandroid/service/notification/NotificationListenerService;->access$600(Landroid/service/notification/NotificationListenerService;)Z
 HSPLandroid/service/notification/NotificationListenerService;->access$602(Landroid/service/notification/NotificationListenerService;Z)Z
 HSPLandroid/service/notification/NotificationListenerService;->applyUpdateLocked(Landroid/service/notification/NotificationRankingUpdate;)V
+HSPLandroid/service/notification/NotificationListenerService;->cleanUpNotificationList(Landroid/content/pm/ParceledListSlice;)[Landroid/service/notification/StatusBarNotification;
 HSPLandroid/service/notification/NotificationListenerService;->createLegacyIconExtras(Landroid/app/Notification;)V
+HSPLandroid/service/notification/NotificationListenerService;->getActiveNotifications()[Landroid/service/notification/StatusBarNotification;
+HSPLandroid/service/notification/NotificationListenerService;->getActiveNotifications([Ljava/lang/String;I)[Landroid/service/notification/StatusBarNotification;
 HSPLandroid/service/notification/NotificationListenerService;->getContext()Landroid/content/Context;
+HSPLandroid/service/notification/NotificationListenerService;->getCurrentRanking()Landroid/service/notification/NotificationListenerService$RankingMap;
 HSPLandroid/service/notification/NotificationListenerService;->getNotificationInterface()Landroid/app/INotificationManager;
+HSPLandroid/service/notification/NotificationListenerService;->isBound()Z
 HSPLandroid/service/notification/NotificationListenerService;->maybePopulatePeople(Landroid/app/Notification;)V
 HSPLandroid/service/notification/NotificationListenerService;->maybePopulateRemoteViews(Landroid/app/Notification;)V
+HSPLandroid/service/notification/NotificationListenerService;->onInterruptionFilterChanged(I)V
+HSPLandroid/service/notification/NotificationListenerService;->onListenerConnected()V
+HSPLandroid/service/notification/NotificationListenerService;->onNotificationChannelGroupModified(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
+HSPLandroid/service/notification/NotificationListenerService;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V
+HSPLandroid/service/notification/NotificationListenerService;->onNotificationRankingUpdate(Landroid/service/notification/NotificationListenerService$RankingMap;)V
 HSPLandroid/service/notification/NotificationListenerService;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;Landroid/service/notification/NotificationStats;I)V
+HSPLandroid/service/notification/NotificationListenerService;->registerAsSystemService(Landroid/content/Context;Landroid/content/ComponentName;I)V
+HSPLandroid/service/notification/NotificationListenerService;->setNotificationsShown([Ljava/lang/String;)V
 HSPLandroid/service/notification/NotificationRankingUpdate$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/NotificationRankingUpdate;
 HSPLandroid/service/notification/NotificationRankingUpdate$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/service/notification/NotificationRankingUpdate;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/service/notification/NotificationRankingUpdate;-><init>([Landroid/service/notification/NotificationListenerService$Ranking;)V
 HSPLandroid/service/notification/NotificationRankingUpdate;->getRankingMap()Landroid/service/notification/NotificationListenerService$RankingMap;
+HSPLandroid/service/notification/NotificationRankingUpdate;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/service/notification/NotificationStats;-><init>()V
+PLandroid/service/notification/NotificationStats;->hasSeen()Z
+HPLandroid/service/notification/NotificationStats;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/service/notification/ScheduleCalendar;-><init>()V
+HSPLandroid/service/notification/ScheduleCalendar;->addDays(JI)J
+HSPLandroid/service/notification/ScheduleCalendar;->getDayOfWeek(J)I
+HSPLandroid/service/notification/ScheduleCalendar;->getNextChangeTime(J)J
+HSPLandroid/service/notification/ScheduleCalendar;->getNextTime(JII)J
+HSPLandroid/service/notification/ScheduleCalendar;->getTime(JII)J
+HSPLandroid/service/notification/ScheduleCalendar;->isInSchedule(IJJJ)Z
+HSPLandroid/service/notification/ScheduleCalendar;->isInSchedule(J)Z
+HSPLandroid/service/notification/ScheduleCalendar;->maybeSetNextAlarm(JJ)V
+HSPLandroid/service/notification/ScheduleCalendar;->setSchedule(Landroid/service/notification/ZenModeConfig$ScheduleInfo;)V
+HSPLandroid/service/notification/ScheduleCalendar;->setTimeZone(Ljava/util/TimeZone;)V
+HSPLandroid/service/notification/ScheduleCalendar;->shouldExitForAlarm(J)Z
+HSPLandroid/service/notification/ScheduleCalendar;->toString()Ljava/lang/String;
+HSPLandroid/service/notification/ScheduleCalendar;->updateDays()V
 HSPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/StatusBarNotification;
 HSPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/service/notification/StatusBarNotification;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/service/notification/StatusBarNotification;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;IILandroid/app/Notification;Landroid/os/UserHandle;Ljava/lang/String;J)V
+HSPLandroid/service/notification/StatusBarNotification;->clone()Landroid/service/notification/StatusBarNotification;
+HSPLandroid/service/notification/StatusBarNotification;->cloneLight()Landroid/service/notification/StatusBarNotification;
+HSPLandroid/service/notification/StatusBarNotification;->getChannelIdLogTag()Ljava/lang/String;
+HSPLandroid/service/notification/StatusBarNotification;->getGroup()Ljava/lang/String;
 HSPLandroid/service/notification/StatusBarNotification;->getGroupKey()Ljava/lang/String;
+HSPLandroid/service/notification/StatusBarNotification;->getGroupLogTag()Ljava/lang/String;
 HSPLandroid/service/notification/StatusBarNotification;->getId()I
+HSPLandroid/service/notification/StatusBarNotification;->getInitialPid()I
 HSPLandroid/service/notification/StatusBarNotification;->getKey()Ljava/lang/String;
+HSPLandroid/service/notification/StatusBarNotification;->getLogMaker()Landroid/metrics/LogMaker;
 HSPLandroid/service/notification/StatusBarNotification;->getNotification()Landroid/app/Notification;
+HSPLandroid/service/notification/StatusBarNotification;->getOpPkg()Ljava/lang/String;
+HSPLandroid/service/notification/StatusBarNotification;->getOverrideGroupKey()Ljava/lang/String;
+HSPLandroid/service/notification/StatusBarNotification;->getPackageContext(Landroid/content/Context;)Landroid/content/Context;
 HSPLandroid/service/notification/StatusBarNotification;->getPackageName()Ljava/lang/String;
 HSPLandroid/service/notification/StatusBarNotification;->getPostTime()J
+HPLandroid/service/notification/StatusBarNotification;->getShortcutId(Landroid/content/Context;)Ljava/lang/String;
 HSPLandroid/service/notification/StatusBarNotification;->getTag()Ljava/lang/String;
+HSPLandroid/service/notification/StatusBarNotification;->getUid()I
 HSPLandroid/service/notification/StatusBarNotification;->getUser()Landroid/os/UserHandle;
+HSPLandroid/service/notification/StatusBarNotification;->getUserId()I
 HSPLandroid/service/notification/StatusBarNotification;->groupKey()Ljava/lang/String;
+HSPLandroid/service/notification/StatusBarNotification;->isAppGroup()Z
+HSPLandroid/service/notification/StatusBarNotification;->isClearable()Z
+HSPLandroid/service/notification/StatusBarNotification;->isGroup()Z
+HSPLandroid/service/notification/StatusBarNotification;->isOngoing()Z
 HSPLandroid/service/notification/StatusBarNotification;->key()Ljava/lang/String;
+HSPLandroid/service/notification/StatusBarNotification;->shortenTag(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/service/notification/StatusBarNotification;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/service/notification/ZenModeConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/ZenModeConfig;
+HSPLandroid/service/notification/ZenModeConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/service/notification/ZenModeConfig$Diff;-><init>()V
+HSPLandroid/service/notification/ZenModeConfig$Diff;->addLine(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Landroid/service/notification/ZenModeConfig$Diff;
+HSPLandroid/service/notification/ZenModeConfig$Diff;->addLine(Ljava/lang/String;Ljava/lang/String;)Landroid/service/notification/ZenModeConfig$Diff;
+HSPLandroid/service/notification/ZenModeConfig$Diff;->addLine(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Landroid/service/notification/ZenModeConfig$Diff;
+HSPLandroid/service/notification/ZenModeConfig$Diff;->toString()Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig$EventInfo;-><init>()V
+HSPLandroid/service/notification/ZenModeConfig$ScheduleInfo;-><init>()V
+HSPLandroid/service/notification/ZenModeConfig$ScheduleInfo;->toString()Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig$ScheduleInfo;->ts(J)Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig$ZenRule$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/ZenModeConfig$ZenRule;
+HSPLandroid/service/notification/ZenModeConfig$ZenRule$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;-><init>()V
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->access$100(Landroid/service/notification/ZenModeConfig$Diff;Ljava/lang/String;Landroid/service/notification/ZenModeConfig$ZenRule;Landroid/service/notification/ZenModeConfig$ZenRule;)V
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->appendDiff(Landroid/service/notification/ZenModeConfig$Diff;Ljava/lang/String;Landroid/service/notification/ZenModeConfig$ZenRule;)V
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->appendDiff(Landroid/service/notification/ZenModeConfig$Diff;Ljava/lang/String;Landroid/service/notification/ZenModeConfig$ZenRule;Landroid/service/notification/ZenModeConfig$ZenRule;)V
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->equals(Ljava/lang/Object;)Z
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->hashCode()I
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->isAutomaticActive()Z
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->toString()Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/service/notification/ZenModeConfig;-><init>()V
+HSPLandroid/service/notification/ZenModeConfig;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/service/notification/ZenModeConfig;->addKeys(Landroid/util/ArraySet;Landroid/util/ArrayMap;)V
+HSPLandroid/service/notification/ZenModeConfig;->areAllPriorityOnlyRingerSoundsMuted(Landroid/app/NotificationManager$Policy;)Z
+HSPLandroid/service/notification/ZenModeConfig;->copy()Landroid/service/notification/ZenModeConfig;
+HSPLandroid/service/notification/ZenModeConfig;->diff(Landroid/service/notification/ZenModeConfig;)Landroid/service/notification/ZenModeConfig$Diff;
+HSPLandroid/service/notification/ZenModeConfig;->diff(Landroid/service/notification/ZenModeConfig;Landroid/service/notification/ZenModeConfig;)Landroid/service/notification/ZenModeConfig$Diff;
+HSPLandroid/service/notification/ZenModeConfig;->equals(Ljava/lang/Object;)Z
+HSPLandroid/service/notification/ZenModeConfig;->getDescription(Landroid/content/Context;ZLandroid/service/notification/ZenModeConfig;Z)Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig;->getNotificationPolicySenders(II)I
+HSPLandroid/service/notification/ZenModeConfig;->hashCode()I
+HSPLandroid/service/notification/ZenModeConfig;->isPriorityCategoryEnabled(ILandroid/app/NotificationManager$Policy;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValid()Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidAutomaticRule(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidCountdownConditionId(Landroid/net/Uri;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidEventConditionId(Landroid/net/Uri;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidHour(I)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidManualRule(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidMinute(I)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidScheduleConditionId(Landroid/net/Uri;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidSource(I)Z
+HSPLandroid/service/notification/ZenModeConfig;->isVisualEffectAllowed(ILandroid/app/NotificationManager$Policy;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isZenOverridingRinger(ILandroid/app/NotificationManager$Policy;)Z
+HSPLandroid/service/notification/ZenModeConfig;->readConditionXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/service/notification/Condition;
+HSPLandroid/service/notification/ZenModeConfig;->readRuleXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/service/notification/ZenModeConfig$ZenRule;
+HSPLandroid/service/notification/ZenModeConfig;->readXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/service/notification/ZenModeConfig;
+HSPLandroid/service/notification/ZenModeConfig;->readZenPolicyXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/service/notification/ZenPolicy;
+HSPLandroid/service/notification/ZenModeConfig;->rulesToString()Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig;->safeBoolean(Ljava/lang/String;Z)Z
+HSPLandroid/service/notification/ZenModeConfig;->safeBoolean(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+HSPLandroid/service/notification/ZenModeConfig;->safeComponentName(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/content/ComponentName;
+HSPLandroid/service/notification/ZenModeConfig;->safeInt(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+HSPLandroid/service/notification/ZenModeConfig;->safeLong(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J
+HSPLandroid/service/notification/ZenModeConfig;->safeUri(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/service/notification/ZenModeConfig;->sameCondition(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
+HSPLandroid/service/notification/ZenModeConfig;->sourceToPrioritySenders(II)I
+HSPLandroid/service/notification/ZenModeConfig;->sourceToString(I)Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig;->toNotificationPolicy()Landroid/app/NotificationManager$Policy;
+HSPLandroid/service/notification/ZenModeConfig;->toNotificationPolicy(Landroid/service/notification/ZenPolicy;)Landroid/app/NotificationManager$Policy;
+HSPLandroid/service/notification/ZenModeConfig;->toScheduleCalendar(Landroid/net/Uri;)Landroid/service/notification/ScheduleCalendar;
+HSPLandroid/service/notification/ZenModeConfig;->toString()Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig;->tryParseCountdownConditionId(Landroid/net/Uri;)J
+HSPLandroid/service/notification/ZenModeConfig;->tryParseDayList(Ljava/lang/String;Ljava/lang/String;)[I
+HSPLandroid/service/notification/ZenModeConfig;->tryParseEventConditionId(Landroid/net/Uri;)Landroid/service/notification/ZenModeConfig$EventInfo;
+HSPLandroid/service/notification/ZenModeConfig;->tryParseHourAndMinute(Ljava/lang/String;)[I
+HSPLandroid/service/notification/ZenModeConfig;->tryParseInt(Ljava/lang/String;I)I
+HSPLandroid/service/notification/ZenModeConfig;->tryParseLong(Ljava/lang/String;J)J
+HSPLandroid/service/notification/ZenModeConfig;->tryParseLong(Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/Long;
+HSPLandroid/service/notification/ZenModeConfig;->tryParseScheduleConditionId(Landroid/net/Uri;)Landroid/service/notification/ZenModeConfig$ScheduleInfo;
+HSPLandroid/service/notification/ZenModeConfig;->tryParseZenMode(Ljava/lang/String;I)I
+HSPLandroid/service/notification/ZenModeConfig;->unsafeBoolean(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/Boolean;
+HSPLandroid/service/notification/ZenModeConfig;->writeConditionXml(Landroid/service/notification/Condition;Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/service/notification/ZenModeConfig;->writeRuleXml(Landroid/service/notification/ZenModeConfig$ZenRule;Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/service/notification/ZenModeConfig;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/service/notification/ZenModeConfig;->writeXml(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/Integer;)V
+HSPLandroid/service/notification/ZenPolicy$Builder;-><init>()V
+HSPLandroid/service/notification/ZenPolicy;-><init>()V
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCallSenders()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryAlarms()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryCalls()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryEvents()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryMedia()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryMessages()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryReminders()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryRepeatCallers()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategorySystem()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectAmbient()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectBadge()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectFullScreenIntent()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectLights()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectNotificationList()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectPeek()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectStatusBar()I
+HSPLandroid/service/notification/ZenPolicy;->getZenPolicyPriorityCategoryState(I)I
+HSPLandroid/service/notification/ZenPolicy;->getZenPolicyVisualEffectState(I)I
+HSPLandroid/service/notification/ZenPolicy;->isCategoryAllowed(IZ)Z
+HSPLandroid/service/notification/ZenPolicy;->isVisualEffectAllowed(IZ)Z
+HSPLandroid/service/oemlock/IOemLockService$Stub;-><init>()V
+HPLandroid/service/oemlock/IOemLockService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->getFlashLockState()I
+HSPLandroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->getMaximumDataBlockSize()J
+HSPLandroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->read()[B
+HSPLandroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->write([B)I
+HSPLandroid/service/persistentdata/IPersistentDataBlockService$Stub;-><init>()V
+HSPLandroid/service/persistentdata/IPersistentDataBlockService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/persistentdata/IPersistentDataBlockService;
+HPLandroid/service/persistentdata/IPersistentDataBlockService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/persistentdata/PersistentDataBlockManager;-><init>(Landroid/service/persistentdata/IPersistentDataBlockService;)V
+HSPLandroid/service/persistentdata/PersistentDataBlockManager;->getFlashLockState()I
+HSPLandroid/service/persistentdata/PersistentDataBlockManager;->getMaximumDataBlockSize()J
+HSPLandroid/service/persistentdata/PersistentDataBlockManager;->read()[B
+HSPLandroid/service/persistentdata/PersistentDataBlockManager;->write([B)I
+HSPLandroid/service/quicksettings/IQSService$Stub;-><init>()V
+HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/service/textclassifier/ITextClassifierCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub;-><init>()V
+HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/textclassifier/ITextClassifierCallback;
+HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onClassifyText(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onConnectedStateChanged(I)V
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onCreateTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onDestroyTextClassificationSession(Landroid/view/textclassifier/TextClassificationSessionId;)V
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onGenerateLinks(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextLinks$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onSelectionEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/SelectionEvent;)V
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onSuggestConversationActions(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/ConversationActions$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onSuggestSelection(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextSelection$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onTextClassifierEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassifierEvent;)V
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub;-><init>()V
 HSPLandroid/service/textclassifier/ITextClassifierService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/textclassifier/ITextClassifierService;
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/textclassifier/TextClassifierService;->getResponse(Landroid/os/Bundle;)Landroid/os/Parcelable;
+HSPLandroid/service/textclassifier/TextClassifierService;->getServiceComponentName(Landroid/content/Context;)Landroid/content/ComponentName;
+HSPLandroid/service/textclassifier/TextClassifierService;->getServiceComponentNameByPackage(Landroid/content/Context;Ljava/lang/String;Z)Landroid/content/ComponentName;
+PLandroid/service/trust/ITrustAgentService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/service/trust/ITrustAgentService$Stub$Proxy;->onConfigure(Ljava/util/List;Landroid/os/IBinder;)V
+HPLandroid/service/trust/ITrustAgentService$Stub$Proxy;->onDeviceLocked()V
+HPLandroid/service/trust/ITrustAgentService$Stub$Proxy;->onDeviceUnlocked()V
+PLandroid/service/trust/ITrustAgentService$Stub$Proxy;->setCallback(Landroid/service/trust/ITrustAgentServiceCallback;)V
+HSPLandroid/service/trust/ITrustAgentService$Stub;-><init>()V
+PLandroid/service/trust/ITrustAgentService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/trust/ITrustAgentService;
+HSPLandroid/service/trust/ITrustAgentService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/trust/ITrustAgentServiceCallback$Stub;-><init>()V
+PLandroid/service/trust/ITrustAgentServiceCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/trust/TrustAgentService$1;-><init>(Landroid/service/trust/TrustAgentService;)V
+HSPLandroid/service/trust/TrustAgentService$1;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/service/trust/TrustAgentService$ConfigurationData;-><init>(Ljava/util/List;Landroid/os/IBinder;)V
+HSPLandroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;-><init>(Landroid/service/trust/TrustAgentService;)V
+HSPLandroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;-><init>(Landroid/service/trust/TrustAgentService;Landroid/service/trust/TrustAgentService$1;)V
+HSPLandroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onConfigure(Ljava/util/List;Landroid/os/IBinder;)V
+HSPLandroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onDeviceLocked()V
+HSPLandroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onDeviceUnlocked()V
+HSPLandroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->setCallback(Landroid/service/trust/ITrustAgentServiceCallback;)V
+HSPLandroid/service/trust/TrustAgentService;-><init>()V
+HSPLandroid/service/trust/TrustAgentService;->access$000(Landroid/service/trust/TrustAgentService;)Ljava/lang/Object;
+HSPLandroid/service/trust/TrustAgentService;->access$102(Landroid/service/trust/TrustAgentService;Landroid/service/trust/ITrustAgentServiceCallback;)Landroid/service/trust/ITrustAgentServiceCallback;
+HSPLandroid/service/trust/TrustAgentService;->access$400(Landroid/service/trust/TrustAgentService;)Landroid/os/Handler;
+HSPLandroid/service/trust/TrustAgentService;->access$500(Landroid/service/trust/TrustAgentService;)Z
+HSPLandroid/service/trust/TrustAgentService;->access$600(Landroid/service/trust/TrustAgentService;)Ljava/lang/Runnable;
+HSPLandroid/service/trust/TrustAgentService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HPLandroid/service/voice/IVoiceInteractionService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/service/voice/IVoiceInteractionService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/service/voice/IVoiceInteractionService$Stub$Proxy;->ready()V
+HPLandroid/service/voice/IVoiceInteractionService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/voice/IVoiceInteractionService;
+HSPLandroid/service/voice/VoiceInteractionManagerInternal;-><init>()V
+PLandroid/service/voice/VoiceInteractionServiceInfo;-><init>(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;I)V
+HSPLandroid/service/voice/VoiceInteractionServiceInfo;-><init>(Landroid/content/pm/PackageManager;Landroid/content/pm/ServiceInfo;)V
+HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getParseError()Ljava/lang/String;
+HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getRecognitionService()Ljava/lang/String;
+HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo;
+PLandroid/service/voice/VoiceInteractionServiceInfo;->getServiceInfoOrThrow(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;
+PLandroid/service/voice/VoiceInteractionServiceInfo;->getSessionService()Ljava/lang/String;
+HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getSettingsActivity()Ljava/lang/String;
+HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getSupportsAssist()Z
+HSPLandroid/service/vr/IPersistentVrStateCallbacks$Stub;-><init>()V
+HSPLandroid/service/vr/IVrManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/vr/IVrManager;
+HSPLandroid/service/vr/IVrStateCallbacks$Stub;-><init>()V
+HSPLandroid/service/vr/IVrStateCallbacks$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/wallpaper/-$$Lambda$87Do-TfJA3qVM7QF6F_6BpQlQTA;-><clinit>()V
+HSPLandroid/service/wallpaper/-$$Lambda$87Do-TfJA3qVM7QF6F_6BpQlQTA;-><init>()V
+HSPLandroid/service/wallpaper/-$$Lambda$vsWBQpiXExY07tlrSzTqh4pNQAQ;-><init>(Landroid/service/wallpaper/WallpaperService$Engine;)V
+HSPLandroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;->attachEngine(Landroid/service/wallpaper/IWallpaperEngine;I)V
+HSPLandroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;->engineShown(Landroid/service/wallpaper/IWallpaperEngine;)V
+HSPLandroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;I)V
+HSPLandroid/service/wallpaper/IWallpaperConnection$Stub;-><init>()V
+HSPLandroid/service/wallpaper/IWallpaperConnection$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/wallpaper/IWallpaperConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/wallpaper/IWallpaperConnection;
+HSPLandroid/service/wallpaper/IWallpaperConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->requestWallpaperColors()V
+HSPLandroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->setInAmbientMode(ZJ)V
+HSPLandroid/service/wallpaper/IWallpaperEngine$Stub;-><init>()V
+HSPLandroid/service/wallpaper/IWallpaperEngine$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/wallpaper/IWallpaperEngine$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/wallpaper/IWallpaperEngine;
+HSPLandroid/service/wallpaper/IWallpaperEngine$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/wallpaper/IWallpaperService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/service/wallpaper/IWallpaperService$Stub$Proxy;->attach(Landroid/service/wallpaper/IWallpaperConnection;Landroid/os/IBinder;IZIILandroid/graphics/Rect;I)V
+HSPLandroid/service/wallpaper/IWallpaperService$Stub;-><init>()V
+HSPLandroid/service/wallpaper/IWallpaperService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/wallpaper/IWallpaperService;
+HSPLandroid/service/wallpaper/IWallpaperService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/wallpaper/WallpaperService$Engine$1;-><init>(Landroid/service/wallpaper/WallpaperService$Engine;)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine$2;-><init>(Landroid/service/wallpaper/WallpaperService$Engine;)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine$2;->dispatchAppVisibility(Z)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine$2;->dispatchWallpaperOffsets(FFFFZ)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine$2;->resized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine$3;-><init>(Landroid/service/wallpaper/WallpaperService$Engine;)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine$3;->onDisplayChanged(I)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine$WallpaperInputEventReceiver;-><init>(Landroid/service/wallpaper/WallpaperService$Engine;Landroid/view/InputChannel;Landroid/os/Looper;)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine$WallpaperInputEventReceiver;->onInputEvent(Landroid/view/InputEvent;)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine;-><init>(Landroid/service/wallpaper/WallpaperService;)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine;-><init>(Landroid/service/wallpaper/WallpaperService;Ljava/util/function/Supplier;Landroid/os/Handler;)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine;->access$100(Landroid/service/wallpaper/WallpaperService$Engine;Landroid/view/MotionEvent;)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine;->access$300(Landroid/service/wallpaper/WallpaperService$Engine;)Landroid/view/Display;
+HSPLandroid/service/wallpaper/WallpaperService$Engine;->attach(Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine;->dispatchPointer(Landroid/view/MotionEvent;)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine;->doAmbientModeChanged(ZJ)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine;->doOffsetsChanged(Z)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine;->doVisibilityChanged(Z)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine;->getSurfaceHolder()Landroid/view/SurfaceHolder;
+HSPLandroid/service/wallpaper/WallpaperService$Engine;->onApplyWindowInsets(Landroid/view/WindowInsets;)V
+HSPLandroid/service/wallpaper/WallpaperService$Engine;->reportVisibility()V
+HSPLandroid/service/wallpaper/WallpaperService$Engine;->updateSurface(ZZZ)V
+HSPLandroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;-><init>(Landroid/service/wallpaper/WallpaperService;Landroid/service/wallpaper/WallpaperService;Landroid/service/wallpaper/IWallpaperConnection;Landroid/os/IBinder;IZIILandroid/graphics/Rect;I)V
+HSPLandroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->access$200(Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;)Lcom/android/internal/os/HandlerCaller;
+HSPLandroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->executeMessage(Landroid/os/Message;)V
+HSPLandroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->reportShown()V
+HSPLandroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->requestWallpaperColors()V
+HSPLandroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->setInAmbientMode(ZJ)V
+HSPLandroid/service/wallpaper/WallpaperService$IWallpaperServiceWrapper;-><init>(Landroid/service/wallpaper/WallpaperService;Landroid/service/wallpaper/WallpaperService;)V
+HSPLandroid/service/wallpaper/WallpaperService$IWallpaperServiceWrapper;->attach(Landroid/service/wallpaper/IWallpaperConnection;Landroid/os/IBinder;IZIILandroid/graphics/Rect;I)V
+HSPLandroid/service/wallpaper/WallpaperService;-><init>()V
+HSPLandroid/service/wallpaper/WallpaperService;->access$400(Landroid/service/wallpaper/WallpaperService;)Ljava/util/ArrayList;
+HSPLandroid/service/wallpaper/WallpaperService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HSPLandroid/service/wallpaper/WallpaperService;->onCreate()V
+HSPLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig$1;-><init>()V
+HSPLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;
+HSPLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;-><clinit>()V
+HSPLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;-><init>(Landroid/os/Parcel;Landroid/service/watchdog/ExplicitHealthCheckService$1;)V
+HSPLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;->getHealthCheckTimeoutMillis()J
+HSPLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;->getPackageName()Ljava/lang/String;
+HSPLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;->toString()Ljava/lang/String;
+HSPLandroid/service/watchdog/IExplicitHealthCheckService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/service/watchdog/IExplicitHealthCheckService$Stub$Proxy;->getRequestedPackages(Landroid/os/RemoteCallback;)V
+HSPLandroid/service/watchdog/IExplicitHealthCheckService$Stub$Proxy;->getSupportedPackages(Landroid/os/RemoteCallback;)V
+HSPLandroid/service/watchdog/IExplicitHealthCheckService$Stub$Proxy;->setCallback(Landroid/os/RemoteCallback;)V
+HSPLandroid/service/watchdog/IExplicitHealthCheckService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/watchdog/IExplicitHealthCheckService;
+HSPLandroid/speech/tts/ITextToSpeechCallback$Stub;-><init>()V
+HSPLandroid/speech/tts/ITextToSpeechCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getClientDefaultLanguage()[Ljava/lang/String;
+HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getDefaultVoiceNameFor(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->setCallback(Landroid/os/IBinder;Landroid/speech/tts/ITextToSpeechCallback;)V
+HSPLandroid/speech/tts/ITextToSpeechService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/speech/tts/ITextToSpeechService;
+HSPLandroid/speech/tts/TextToSpeech$Connection$1;-><init>(Landroid/speech/tts/TextToSpeech$Connection;)V
+HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;-><init>(Landroid/speech/tts/TextToSpeech$Connection;Landroid/content/ComponentName;)V
+HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->doInBackground([Ljava/lang/Void;)Ljava/lang/Integer;
+HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->onPostExecute(Ljava/lang/Integer;)V
+HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->onPostExecute(Ljava/lang/Object;)V
+HSPLandroid/speech/tts/TextToSpeech$Connection;-><init>(Landroid/speech/tts/TextToSpeech;)V
+HSPLandroid/speech/tts/TextToSpeech$Connection;-><init>(Landroid/speech/tts/TextToSpeech;Landroid/speech/tts/TextToSpeech$1;)V
+HSPLandroid/speech/tts/TextToSpeech$Connection;->access$300(Landroid/speech/tts/TextToSpeech$Connection;)Landroid/speech/tts/ITextToSpeechCallback$Stub;
+HSPLandroid/speech/tts/TextToSpeech$Connection;->access$400(Landroid/speech/tts/TextToSpeech$Connection;)Landroid/speech/tts/ITextToSpeechService;
+HSPLandroid/speech/tts/TextToSpeech$Connection;->access$600(Landroid/speech/tts/TextToSpeech$Connection;)Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;
+HSPLandroid/speech/tts/TextToSpeech$Connection;->access$602(Landroid/speech/tts/TextToSpeech$Connection;Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;)Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;
+HSPLandroid/speech/tts/TextToSpeech$Connection;->access$702(Landroid/speech/tts/TextToSpeech$Connection;Z)Z
+HSPLandroid/speech/tts/TextToSpeech$Connection;->getCallerIdentity()Landroid/os/IBinder;
+HSPLandroid/speech/tts/TextToSpeech$Connection;->isEstablished()Z
+HSPLandroid/speech/tts/TextToSpeech$Connection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+HSPLandroid/speech/tts/TextToSpeech$Connection;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;ZZ)Ljava/lang/Object;
+HSPLandroid/speech/tts/TextToSpeech$EngineInfo;-><init>()V
+HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;)V
+HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;)V
+HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;Ljava/lang/String;Z)V
+HSPLandroid/speech/tts/TextToSpeech;->access$1002(Landroid/speech/tts/TextToSpeech;Landroid/speech/tts/TextToSpeech$Connection;)Landroid/speech/tts/TextToSpeech$Connection;
+HSPLandroid/speech/tts/TextToSpeech;->access$200(Landroid/speech/tts/TextToSpeech;)Ljava/lang/Object;
+HSPLandroid/speech/tts/TextToSpeech;->access$500(Landroid/speech/tts/TextToSpeech;)Landroid/os/Bundle;
+HSPLandroid/speech/tts/TextToSpeech;->access$800(Landroid/speech/tts/TextToSpeech;I)V
+HSPLandroid/speech/tts/TextToSpeech;->access$902(Landroid/speech/tts/TextToSpeech;Landroid/speech/tts/TextToSpeech$Connection;)Landroid/speech/tts/TextToSpeech$Connection;
+HSPLandroid/speech/tts/TextToSpeech;->connectToEngine(Ljava/lang/String;)Z
+HSPLandroid/speech/tts/TextToSpeech;->dispatchOnInit(I)V
+HSPLandroid/speech/tts/TextToSpeech;->getCallerIdentity()Landroid/os/IBinder;
+HSPLandroid/speech/tts/TextToSpeech;->getDefaultEngine()Ljava/lang/String;
+HSPLandroid/speech/tts/TextToSpeech;->initTts()I
+HSPLandroid/speech/tts/TextToSpeech;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
+HSPLandroid/speech/tts/TextToSpeech;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;ZZ)Ljava/lang/Object;
+HSPLandroid/speech/tts/TtsEngines$EngineInfoComparator;-><clinit>()V
+HSPLandroid/speech/tts/TtsEngines$EngineInfoComparator;-><init>()V
+HSPLandroid/speech/tts/TtsEngines;-><init>(Landroid/content/Context;)V
+HSPLandroid/speech/tts/TtsEngines;->getDefaultEngine()Ljava/lang/String;
+HSPLandroid/speech/tts/TtsEngines;->getEngineInfo(Landroid/content/pm/ResolveInfo;Landroid/content/pm/PackageManager;)Landroid/speech/tts/TextToSpeech$EngineInfo;
+HSPLandroid/speech/tts/TtsEngines;->getEngineInfo(Ljava/lang/String;)Landroid/speech/tts/TextToSpeech$EngineInfo;
+HSPLandroid/speech/tts/TtsEngines;->getEngines()Ljava/util/List;
+HSPLandroid/speech/tts/TtsEngines;->getHighestRankedEngineName()Ljava/lang/String;
+HSPLandroid/speech/tts/TtsEngines;->isEngineInstalled(Ljava/lang/String;)Z
+HSPLandroid/speech/tts/TtsEngines;->isSystemEngine(Landroid/content/pm/ServiceInfo;)Z
+HSPLandroid/stats/devicepolicy/nano/StringList;-><init>()V
+HSPLandroid/stats/devicepolicy/nano/StringList;->clear()Landroid/stats/devicepolicy/nano/StringList;
+HSPLandroid/stats/devicepolicy/nano/StringList;->computeSerializedSize()I
+HSPLandroid/stats/devicepolicy/nano/StringList;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$2V_2ZQoGHfOIfKo_A8Ss547oL-c;-><clinit>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$2V_2ZQoGHfOIfKo_A8Ss547oL-c;-><init>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$2V_2ZQoGHfOIfKo_A8Ss547oL-c;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$BfPaTA0e9gauJmR4vGNCDkGZ3uc;-><clinit>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$BfPaTA0e9gauJmR4vGNCDkGZ3uc;-><init>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$BfPaTA0e9gauJmR4vGNCDkGZ3uc;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$EV4LSOwY7Dsh1rJalZDLmnGJw5I;-><clinit>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$EV4LSOwY7Dsh1rJalZDLmnGJw5I;-><init>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$EV4LSOwY7Dsh1rJalZDLmnGJw5I;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$H4jN0VIBNpZQBeWYt6qS3DCe_M8;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$JNTRmlscGaFlYo_3krOr_WWd2QI;-><clinit>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$JNTRmlscGaFlYo_3krOr_WWd2QI;-><init>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$JNTRmlscGaFlYo_3krOr_WWd2QI;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$UKEfAuJVPm5cKR_UnPj1L66mN34;-><clinit>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$UKEfAuJVPm5cKR_UnPj1L66mN34;-><init>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$UKEfAuJVPm5cKR_UnPj1L66mN34;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$VtSZ_Uto4bMa49ncgAfdWewMFOU;-><clinit>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$VtSZ_Uto4bMa49ncgAfdWewMFOU;-><init>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$VtSZ_Uto4bMa49ncgAfdWewMFOU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$dc-CgjsF3BtDxLSSKL5bQ9ullG0;-><clinit>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$dc-CgjsF3BtDxLSSKL5bQ9ullG0;-><init>()V
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$dc-CgjsF3BtDxLSSKL5bQ9ullG0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$kemQbl44ndTqXdQVvnYppJuQboQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/sysprop/AdbProperties;->secure()Ljava/util/Optional;
+HSPLandroid/sysprop/AdbProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
+HSPLandroid/sysprop/ApexProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
+HSPLandroid/sysprop/ApexProperties;->updatable()Ljava/util/Optional;
 HSPLandroid/sysprop/DisplayProperties;->debug_force_rtl()Ljava/util/Optional;
+HSPLandroid/sysprop/DisplayProperties;->debug_force_rtl(Ljava/lang/Boolean;)V
 HSPLandroid/sysprop/DisplayProperties;->debug_layout()Ljava/util/Optional;
 HSPLandroid/sysprop/DisplayProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
+HSPLandroid/sysprop/TelephonyProperties;->baseband_version()Ljava/util/List;
 HSPLandroid/sysprop/TelephonyProperties;->current_active_phone()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->default_network()Ljava/util/List;
 HSPLandroid/sysprop/TelephonyProperties;->icc_operator_alpha()Ljava/util/List;
 HSPLandroid/sysprop/TelephonyProperties;->icc_operator_iso_country()Ljava/util/List;
 HSPLandroid/sysprop/TelephonyProperties;->icc_operator_numeric()Ljava/util/List;
 HSPLandroid/sysprop/TelephonyProperties;->lambda$baseband_version$0(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/sysprop/TelephonyProperties;->lambda$current_active_phone$5(Ljava/lang/String;)Ljava/lang/Integer;
+HSPLandroid/sysprop/TelephonyProperties;->lambda$default_network$14(Ljava/lang/String;)Ljava/lang/Integer;
 HSPLandroid/sysprop/TelephonyProperties;->lambda$icc_operator_alpha$8(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/sysprop/TelephonyProperties;->lambda$icc_operator_iso_country$9(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/sysprop/TelephonyProperties;->lambda$icc_operator_numeric$7(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/sysprop/TelephonyProperties;->lambda$operator_alpha$1(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/sysprop/TelephonyProperties;->lambda$operator_is_roaming$3(Ljava/lang/String;)Ljava/lang/Boolean;
 HSPLandroid/sysprop/TelephonyProperties;->lambda$operator_numeric$2(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/sysprop/TelephonyProperties;->max_active_modems()Ljava/util/Optional;
 HSPLandroid/sysprop/TelephonyProperties;->multi_sim_config()Ljava/util/Optional;
 HSPLandroid/sysprop/TelephonyProperties;->operator_alpha()Ljava/util/List;
 HSPLandroid/sysprop/TelephonyProperties;->operator_is_roaming()Ljava/util/List;
@@ -10556,42 +21057,80 @@
 HSPLandroid/sysprop/TelephonyProperties;->tryParseString(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/sysprop/VndkProperties;->product_vndk_version()Ljava/util/Optional;
 HSPLandroid/sysprop/VndkProperties;->tryParseString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/sysprop/VoldProperties;->decrypt()Ljava/util/Optional;
+HSPLandroid/sysprop/VoldProperties;->encrypt_progress()Ljava/util/Optional;
+HSPLandroid/sysprop/VoldProperties;->tryParseString(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/system/ErrnoException;-><init>(Ljava/lang/String;I)V
 HSPLandroid/system/ErrnoException;->getMessage()Ljava/lang/String;
+HSPLandroid/system/ErrnoException;->rethrowAsIOException()Ljava/io/IOException;
+HSPLandroid/system/ErrnoException;->rethrowAsSocketException()Ljava/net/SocketException;
 HSPLandroid/system/GaiException;-><init>(Ljava/lang/String;I)V
+HSPLandroid/system/GaiException;->getMessage()Ljava/lang/String;
 HSPLandroid/system/GaiException;->rethrowAsUnknownHostException(Ljava/lang/String;)Ljava/net/UnknownHostException;
 HSPLandroid/system/Int32Ref;-><init>(I)V
 HSPLandroid/system/Os;->accept(Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;)Ljava/io/FileDescriptor;
 HSPLandroid/system/Os;->accept(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)Ljava/io/FileDescriptor;
+HSPLandroid/system/Os;->access(Ljava/lang/String;I)Z
+HSPLandroid/system/Os;->bind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
+HSPLandroid/system/Os;->bind(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V
 HSPLandroid/system/Os;->capget(Landroid/system/StructCapUserHeader;)[Landroid/system/StructCapUserData;
 HSPLandroid/system/Os;->chmod(Ljava/lang/String;I)V
+HSPLandroid/system/Os;->chown(Ljava/lang/String;II)V
 HSPLandroid/system/Os;->close(Ljava/io/FileDescriptor;)V
+HSPLandroid/system/Os;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
+HSPLandroid/system/Os;->fchmod(Ljava/io/FileDescriptor;I)V
+HSPLandroid/system/Os;->fchown(Ljava/io/FileDescriptor;II)V
 HSPLandroid/system/Os;->fcntlInt(Ljava/io/FileDescriptor;II)I
 HSPLandroid/system/Os;->fdatasync(Ljava/io/FileDescriptor;)V
 HSPLandroid/system/Os;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat;
+HSPLandroid/system/Os;->fsync(Ljava/io/FileDescriptor;)V
+HSPLandroid/system/Os;->getenv(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/system/Os;->getpeername(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress;
 HSPLandroid/system/Os;->getpgid(I)I
 HSPLandroid/system/Os;->getpid()I
+HSPLandroid/system/Os;->getrlimit(I)Landroid/system/StructRlimit;
+HSPLandroid/system/Os;->getsockname(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress;
 HSPLandroid/system/Os;->gettid()I
 HSPLandroid/system/Os;->getuid()I
+HSPLandroid/system/Os;->getxattr(Ljava/lang/String;Ljava/lang/String;)[B
 HSPLandroid/system/Os;->ioctlInt(Ljava/io/FileDescriptor;ILandroid/system/Int32Ref;)I
 HSPLandroid/system/Os;->listen(Ljava/io/FileDescriptor;I)V
 HSPLandroid/system/Os;->lseek(Ljava/io/FileDescriptor;JI)J
+HSPLandroid/system/Os;->lstat(Ljava/lang/String;)Landroid/system/StructStat;
 HSPLandroid/system/Os;->mkdir(Ljava/lang/String;I)V
+HSPLandroid/system/Os;->mlock(JJ)V
+HSPLandroid/system/Os;->mmap(JJIILjava/io/FileDescriptor;J)J
+HSPLandroid/system/Os;->munmap(JJ)V
 HSPLandroid/system/Os;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;
 HSPLandroid/system/Os;->pipe2(I)[Ljava/io/FileDescriptor;
 HSPLandroid/system/Os;->poll([Landroid/system/StructPollfd;I)I
+HSPLandroid/system/Os;->posix_fallocate(Ljava/io/FileDescriptor;JJ)V
+HSPLandroid/system/Os;->prctl(IJJJJ)I
+HSPLandroid/system/Os;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
 HSPLandroid/system/Os;->read(Ljava/io/FileDescriptor;[BII)I
+HSPLandroid/system/Os;->readlink(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/system/Os;->rename(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/system/Os;->setpgid(II)V
 HSPLandroid/system/Os;->setregid(II)V
 HSPLandroid/system/Os;->setreuid(II)V
+HSPLandroid/system/Os;->setsockoptInt(Ljava/io/FileDescriptor;III)V
 HSPLandroid/system/Os;->setsockoptTimeval(Ljava/io/FileDescriptor;IILandroid/system/StructTimeval;)V
 HSPLandroid/system/Os;->socket(III)Ljava/io/FileDescriptor;
+HSPLandroid/system/Os;->socketpair(IIILjava/io/FileDescriptor;Ljava/io/FileDescriptor;)V
 HSPLandroid/system/Os;->stat(Ljava/lang/String;)Landroid/system/StructStat;
 HSPLandroid/system/Os;->statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs;
+HSPLandroid/system/Os;->symlink(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/system/Os;->sysconf(I)J
+HSPLandroid/system/Os;->umask(I)I
+HSPLandroid/system/Os;->uname()Landroid/system/StructUtsname;
+HSPLandroid/system/Os;->write(Ljava/io/FileDescriptor;[BII)I
 HSPLandroid/system/OsConstants;->S_ISDIR(I)Z
 HSPLandroid/system/OsConstants;->S_ISREG(I)Z
+HSPLandroid/system/OsConstants;->WEXITSTATUS(I)I
+HSPLandroid/system/OsConstants;->WIFEXITED(I)Z
+HSPLandroid/system/OsConstants;->WTERMSIG(I)I
+HSPLandroid/system/OsConstants;->errnoName(I)Ljava/lang/String;
+HSPLandroid/system/OsConstants;->gaiName(I)Ljava/lang/String;
 HSPLandroid/system/StructAddrinfo;-><init>()V
 HSPLandroid/system/StructCapUserData;-><init>(III)V
 HSPLandroid/system/StructCapUserHeader;-><init>(II)V
@@ -10599,12 +21138,195 @@
 HSPLandroid/system/StructLinger;-><init>(II)V
 HSPLandroid/system/StructLinger;->isOn()Z
 HSPLandroid/system/StructPollfd;-><init>()V
+HSPLandroid/system/StructRlimit;-><init>(JJ)V
 HSPLandroid/system/StructStat;-><init>(JJIJIIJJLandroid/system/StructTimespec;Landroid/system/StructTimespec;Landroid/system/StructTimespec;JJ)V
 HSPLandroid/system/StructStatVfs;-><init>(JJJJJJJJJJJ)V
 HSPLandroid/system/StructTimespec;-><init>(JJ)V
 HSPLandroid/system/StructTimespec;->equals(Ljava/lang/Object;)Z
 HSPLandroid/system/StructTimeval;-><init>(JJ)V
 HSPLandroid/system/StructTimeval;->fromMillis(J)Landroid/system/StructTimeval;
+HSPLandroid/system/StructUtsname;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/system/UnixSocketAddress;-><init>([B)V
+HSPLandroid/system/suspend/ISuspendControlService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/system/suspend/ISuspendControlService$Stub$Proxy;->getWakeLockStats()[Landroid/system/suspend/WakeLockInfo;
+HSPLandroid/system/suspend/ISuspendControlService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/system/suspend/ISuspendControlService;
+HSPLandroid/system/suspend/WakeLockInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/suspend/WakeLockInfo;
+HSPLandroid/system/suspend/WakeLockInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/system/suspend/WakeLockInfo$1;->newArray(I)[Landroid/system/suspend/WakeLockInfo;
+HSPLandroid/system/suspend/WakeLockInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/system/suspend/WakeLockInfo;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/telecom/-$$Lambda$qa4s1Fm2YuohEunaJUJcmJXDXG0;->getSessionId()Ljava/lang/String;
+HSPLandroid/telecom/CallAudioState;-><init>(ZIILandroid/bluetooth/BluetoothDevice;Ljava/util/Collection;)V
+HSPLandroid/telecom/CallAudioState;->audioRouteToString(I)Ljava/lang/String;
+HSPLandroid/telecom/CallAudioState;->getRoute()I
+HSPLandroid/telecom/CallAudioState;->getSupportedRouteMask()I
+HSPLandroid/telecom/CallAudioState;->isMuted()Z
+HSPLandroid/telecom/CallAudioState;->listAppend(Ljava/lang/StringBuffer;Ljava/lang/String;)V
+HSPLandroid/telecom/Connection;->capabilitiesToString(I)Ljava/lang/String;
+HSPLandroid/telecom/Connection;->capabilitiesToStringInternal(IZ)Ljava/lang/String;
+HSPLandroid/telecom/Connection;->propertiesToString(I)Ljava/lang/String;
+HSPLandroid/telecom/Connection;->propertiesToStringInternal(IZ)Ljava/lang/String;
+HSPLandroid/telecom/ConnectionRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/ConnectionRequest;
+HSPLandroid/telecom/ConnectionRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telecom/ConnectionRequest;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telecom/ConnectionRequest;-><init>(Landroid/os/Parcel;Landroid/telecom/ConnectionRequest$1;)V
+HSPLandroid/telecom/ConnectionRequest;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telecom/DisconnectCause$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/DisconnectCause;
+HSPLandroid/telecom/DisconnectCause$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telecom/DisconnectCause;-><init>(ILjava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/String;I)V
+HSPLandroid/telecom/DisconnectCause;->getCode()I
+HPLandroid/telecom/DisconnectCause;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telecom/Log;->addEvent(Landroid/telecom/Logging/EventManager$Loggable;Ljava/lang/String;Ljava/lang/Object;)V
+HSPLandroid/telecom/Log;->addRequestResponsePair(Landroid/telecom/Logging/EventManager$TimedEventPair;)V
+HSPLandroid/telecom/Log;->buildMessage(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
+HSPLandroid/telecom/Log;->cancelSubsession(Landroid/telecom/Logging/Session;)V
+HSPLandroid/telecom/Log;->continueSession(Landroid/telecom/Logging/Session;Ljava/lang/String;)V
+HSPLandroid/telecom/Log;->createSubsession()Landroid/telecom/Logging/Session;
+HSPLandroid/telecom/Log;->d(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
+HSPLandroid/telecom/Log;->d(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
+HSPLandroid/telecom/Log;->endSession()V
+HSPLandroid/telecom/Log;->getDialableCount(Ljava/lang/String;)I
+HSPLandroid/telecom/Log;->getEventManager()Landroid/telecom/Logging/EventManager;
+HSPLandroid/telecom/Log;->getExternalSession()Landroid/telecom/Logging/Session$Info;
+HSPLandroid/telecom/Log;->getPrefixFromObject(Ljava/lang/Object;)Ljava/lang/String;
+HSPLandroid/telecom/Log;->getSessionId()Ljava/lang/String;
+HSPLandroid/telecom/Log;->getSessionManager()Landroid/telecom/Logging/SessionManager;
+HSPLandroid/telecom/Log;->i(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
+HSPLandroid/telecom/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
+HSPLandroid/telecom/Log;->isLoggable(I)Z
+HSPLandroid/telecom/Log;->obfuscatePhoneNumber(Ljava/lang/StringBuilder;Ljava/lang/String;)V
+HSPLandroid/telecom/Log;->pii(Ljava/lang/Object;)Ljava/lang/String;
+HSPLandroid/telecom/Log;->piiHandle(Ljava/lang/Object;)Ljava/lang/String;
+HSPLandroid/telecom/Log;->registerEventListener(Landroid/telecom/Logging/EventManager$EventListener;)V
+HSPLandroid/telecom/Log;->registerSessionListener(Landroid/telecom/Logging/SessionManager$ISessionListener;)V
+HSPLandroid/telecom/Log;->setSessionContext(Landroid/content/Context;)V
+HSPLandroid/telecom/Log;->setTag(Ljava/lang/String;)V
+HSPLandroid/telecom/Log;->startSession(Landroid/telecom/Logging/Session$Info;Ljava/lang/String;)V
+HSPLandroid/telecom/Log;->startSession(Ljava/lang/String;)V
+HSPLandroid/telecom/Log;->v(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
+HSPLandroid/telecom/Log;->v(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
+HSPLandroid/telecom/Logging/-$$Lambda$L5F_SL2jOCUETYvgdB36aGwY50E;->get()I
+HSPLandroid/telecom/Logging/-$$Lambda$SessionManager$VyH2gT1EjIvzDy_C9JfTT60CISM;-><init>(Landroid/telecom/Logging/SessionManager;)V
+HPLandroid/telecom/Logging/-$$Lambda$SessionManager$VyH2gT1EjIvzDy_C9JfTT60CISM;->run()V
+HSPLandroid/telecom/Logging/-$$Lambda$SessionManager$hhtZwTEbvO-fLNlAvB6Do9_2gW4;-><init>(Landroid/telecom/Logging/SessionManager;)V
+HSPLandroid/telecom/Logging/-$$Lambda$SessionManager$hhtZwTEbvO-fLNlAvB6Do9_2gW4;->get()J
+HSPLandroid/telecom/Logging/EventManager$TimedEventPair;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/telecom/Logging/EventManager$TimedEventPair;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
+HSPLandroid/telecom/Logging/EventManager;-><init>(Landroid/telecom/Logging/SessionManager$ISessionIdQueryHandler;)V
+HSPLandroid/telecom/Logging/EventManager;->addRequestResponsePair(Landroid/telecom/Logging/EventManager$TimedEventPair;)V
+HSPLandroid/telecom/Logging/EventManager;->event(Landroid/telecom/Logging/EventManager$Loggable;Ljava/lang/String;Ljava/lang/Object;)V
+HSPLandroid/telecom/Logging/EventManager;->registerEventListener(Landroid/telecom/Logging/EventManager$EventListener;)V
+HSPLandroid/telecom/Logging/Runnable$1;-><init>(Landroid/telecom/Logging/Runnable;)V
+HSPLandroid/telecom/Logging/Runnable$1;->run()V
+HSPLandroid/telecom/Logging/Runnable;-><init>(Ljava/lang/String;Ljava/lang/Object;)V
+HSPLandroid/telecom/Logging/Runnable;->access$000(Landroid/telecom/Logging/Runnable;)Ljava/lang/Object;
+HSPLandroid/telecom/Logging/Runnable;->access$100(Landroid/telecom/Logging/Runnable;)Landroid/telecom/Logging/Session;
+HSPLandroid/telecom/Logging/Runnable;->access$102(Landroid/telecom/Logging/Runnable;Landroid/telecom/Logging/Session;)Landroid/telecom/Logging/Session;
+HSPLandroid/telecom/Logging/Runnable;->access$200(Landroid/telecom/Logging/Runnable;)Ljava/lang/String;
+HSPLandroid/telecom/Logging/Runnable;->cancel()V
+HSPLandroid/telecom/Logging/Runnable;->prepare()Ljava/lang/Runnable;
+HSPLandroid/telecom/Logging/Session$Info$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/Logging/Session$Info;
+HSPLandroid/telecom/Logging/Session$Info$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telecom/Logging/Session$Info;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/telecom/Logging/Session$Info;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/telecom/Logging/Session$1;)V
+HSPLandroid/telecom/Logging/Session$Info;->getInfo(Landroid/telecom/Logging/Session;)Landroid/telecom/Logging/Session$Info;
+HSPLandroid/telecom/Logging/Session$Info;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telecom/Logging/Session;-><init>(Ljava/lang/String;Ljava/lang/String;JZLjava/lang/String;)V
+HSPLandroid/telecom/Logging/Session;->access$000(Landroid/telecom/Logging/Session;)Ljava/lang/String;
+HSPLandroid/telecom/Logging/Session;->access$100(Landroid/telecom/Logging/Session;)Z
+HSPLandroid/telecom/Logging/Session;->addChild(Landroid/telecom/Logging/Session;)V
+HSPLandroid/telecom/Logging/Session;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telecom/Logging/Session;->getChildSessions()Ljava/util/ArrayList;
+HSPLandroid/telecom/Logging/Session;->getExecutionStartTimeMilliseconds()J
+HSPLandroid/telecom/Logging/Session;->getFullMethodPath(Ljava/lang/StringBuilder;ZI)V
+HSPLandroid/telecom/Logging/Session;->getFullMethodPath(Z)Ljava/lang/String;
+HSPLandroid/telecom/Logging/Session;->getFullSessionId()Ljava/lang/String;
+HSPLandroid/telecom/Logging/Session;->getFullSessionId(I)Ljava/lang/String;
+HSPLandroid/telecom/Logging/Session;->getInfo()Landroid/telecom/Logging/Session$Info;
+HSPLandroid/telecom/Logging/Session;->getLocalExecutionTime()J
+HSPLandroid/telecom/Logging/Session;->getNextChildId()Ljava/lang/String;
+HSPLandroid/telecom/Logging/Session;->getParentSession()Landroid/telecom/Logging/Session;
+HSPLandroid/telecom/Logging/Session;->getRootSession(Ljava/lang/String;)Landroid/telecom/Logging/Session;
+HSPLandroid/telecom/Logging/Session;->getShortMethodName()Ljava/lang/String;
+HSPLandroid/telecom/Logging/Session;->isExternal()Z
+HSPLandroid/telecom/Logging/Session;->isSessionCompleted()Z
+HSPLandroid/telecom/Logging/Session;->isSessionExternal()Z
+HSPLandroid/telecom/Logging/Session;->isStartedFromActiveSession()Z
+HSPLandroid/telecom/Logging/Session;->markSessionCompleted(J)V
+HSPLandroid/telecom/Logging/Session;->removeChild(Landroid/telecom/Logging/Session;)V
+HSPLandroid/telecom/Logging/Session;->setExecutionStartTimeMs(J)V
+HSPLandroid/telecom/Logging/Session;->setIsExternal(Z)V
+HSPLandroid/telecom/Logging/Session;->setParentSession(Landroid/telecom/Logging/Session;)V
+HSPLandroid/telecom/Logging/Session;->setSessionId(Ljava/lang/String;)V
+HSPLandroid/telecom/Logging/Session;->setShortMethodName(Ljava/lang/String;)V
+HSPLandroid/telecom/Logging/Session;->toString()Ljava/lang/String;
+HSPLandroid/telecom/Logging/SessionManager;-><init>()V
+HSPLandroid/telecom/Logging/SessionManager;->cancelSubsession(Landroid/telecom/Logging/Session;)V
+HPLandroid/telecom/Logging/SessionManager;->cleanupStaleSessions(J)V
+HSPLandroid/telecom/Logging/SessionManager;->continueSession(Landroid/telecom/Logging/Session;Ljava/lang/String;)V
+HSPLandroid/telecom/Logging/SessionManager;->createSubsession()Landroid/telecom/Logging/Session;
+HSPLandroid/telecom/Logging/SessionManager;->createSubsession(Z)Landroid/telecom/Logging/Session;
+HSPLandroid/telecom/Logging/SessionManager;->endParentSessions(Landroid/telecom/Logging/Session;)V
+HSPLandroid/telecom/Logging/SessionManager;->endSession()V
+HSPLandroid/telecom/Logging/SessionManager;->getBase64Encoding(I)Ljava/lang/String;
+HSPLandroid/telecom/Logging/SessionManager;->getCallingThreadId()I
+HSPLandroid/telecom/Logging/SessionManager;->getCleanupTimeout(Landroid/content/Context;)J
+HSPLandroid/telecom/Logging/SessionManager;->getExternalSession()Landroid/telecom/Logging/Session$Info;
+HSPLandroid/telecom/Logging/SessionManager;->getNextSessionID()Ljava/lang/String;
+HSPLandroid/telecom/Logging/SessionManager;->getSessionCleanupTimeoutMs()J
+HSPLandroid/telecom/Logging/SessionManager;->getSessionId()Ljava/lang/String;
+HPLandroid/telecom/Logging/SessionManager;->lambda$new$0$SessionManager()V
+HSPLandroid/telecom/Logging/SessionManager;->lambda$new$1$SessionManager()J
+HSPLandroid/telecom/Logging/SessionManager;->notifySessionCompleteListeners(Ljava/lang/String;J)V
+HSPLandroid/telecom/Logging/SessionManager;->registerSessionListener(Landroid/telecom/Logging/SessionManager$ISessionListener;)V
+HSPLandroid/telecom/Logging/SessionManager;->resetStaleSessionTimer()V
+HSPLandroid/telecom/Logging/SessionManager;->setContext(Landroid/content/Context;)V
+HSPLandroid/telecom/Logging/SessionManager;->startExternalSession(Landroid/telecom/Logging/Session$Info;Ljava/lang/String;)V
+HSPLandroid/telecom/Logging/SessionManager;->startSession(Landroid/telecom/Logging/Session$Info;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/telecom/Logging/SessionManager;->startSession(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/telecom/ParcelableConnection;-><init>(Landroid/telecom/PhoneAccountHandle;IIIILandroid/net/Uri;ILjava/lang/String;ILcom/android/internal/telecom/IVideoProvider;IZZJJLandroid/telecom/StatusHints;Landroid/telecom/DisconnectCause;Ljava/util/List;Landroid/os/Bundle;I)V
+HSPLandroid/telecom/PhoneAccount$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/PhoneAccount;
+HSPLandroid/telecom/PhoneAccount$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telecom/PhoneAccount$Builder;-><init>(Landroid/telecom/PhoneAccountHandle;Ljava/lang/CharSequence;)V
+HSPLandroid/telecom/PhoneAccount$Builder;->addSupportedUriScheme(Ljava/lang/String;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->build()Landroid/telecom/PhoneAccount;
+HSPLandroid/telecom/PhoneAccount$Builder;->setAddress(Landroid/net/Uri;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setCapabilities(I)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setExtras(Landroid/os/Bundle;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setGroupId(Ljava/lang/String;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setHighlightColor(I)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setIsEnabled(Z)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setShortDescription(Ljava/lang/CharSequence;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setSubscriptionAddress(Landroid/net/Uri;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setSupportedAudioRoutes(I)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setSupportedUriSchemes(Ljava/util/List;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telecom/PhoneAccount;-><init>(Landroid/os/Parcel;Landroid/telecom/PhoneAccount$1;)V
+HSPLandroid/telecom/PhoneAccount;-><init>(Landroid/telecom/PhoneAccountHandle;Landroid/net/Uri;Landroid/net/Uri;ILandroid/graphics/drawable/Icon;ILjava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/util/List;Landroid/os/Bundle;IZLjava/lang/String;)V
+HSPLandroid/telecom/PhoneAccount;-><init>(Landroid/telecom/PhoneAccountHandle;Landroid/net/Uri;Landroid/net/Uri;ILandroid/graphics/drawable/Icon;ILjava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/util/List;Landroid/os/Bundle;IZLjava/lang/String;Landroid/telecom/PhoneAccount$1;)V
+HSPLandroid/telecom/PhoneAccount;->audioRoutesToString()Ljava/lang/String;
+HSPLandroid/telecom/PhoneAccount;->builder(Landroid/telecom/PhoneAccountHandle;Ljava/lang/CharSequence;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount;->capabilitiesToString()Ljava/lang/String;
+HSPLandroid/telecom/PhoneAccount;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telecom/PhoneAccount;->getAccountHandle()Landroid/telecom/PhoneAccountHandle;
+HSPLandroid/telecom/PhoneAccount;->getAddress()Landroid/net/Uri;
+HSPLandroid/telecom/PhoneAccount;->getCapabilities()I
+HSPLandroid/telecom/PhoneAccount;->getExtras()Landroid/os/Bundle;
+HSPLandroid/telecom/PhoneAccount;->getHighlightColor()I
+HPLandroid/telecom/PhoneAccount;->getIcon()Landroid/graphics/drawable/Icon;
+HSPLandroid/telecom/PhoneAccount;->getLabel()Ljava/lang/CharSequence;
+HPLandroid/telecom/PhoneAccount;->getShortDescription()Ljava/lang/CharSequence;
+HPLandroid/telecom/PhoneAccount;->getSubscriptionAddress()Landroid/net/Uri;
+HPLandroid/telecom/PhoneAccount;->getSupportedAudioRoutes()I
+HPLandroid/telecom/PhoneAccount;->getSupportedUriSchemes()Ljava/util/List;
+HSPLandroid/telecom/PhoneAccount;->hasAudioRoutes(I)Z
+HSPLandroid/telecom/PhoneAccount;->hasCapabilities(I)Z
+HPLandroid/telecom/PhoneAccount;->isEnabled()Z
+PLandroid/telecom/PhoneAccount;->setIsEnabled(Z)V
+HPLandroid/telecom/PhoneAccount;->supportsUriScheme(Ljava/lang/String;)Z
+HSPLandroid/telecom/PhoneAccount;->toString()Ljava/lang/String;
+HSPLandroid/telecom/PhoneAccount;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telecom/PhoneAccountHandle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/PhoneAccountHandle;
 HSPLandroid/telecom/PhoneAccountHandle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/telecom/PhoneAccountHandle;-><init>(Landroid/content/ComponentName;Ljava/lang/String;)V
@@ -10613,191 +21335,520 @@
 HSPLandroid/telecom/PhoneAccountHandle;-><init>(Landroid/os/Parcel;Landroid/telecom/PhoneAccountHandle$1;)V
 HSPLandroid/telecom/PhoneAccountHandle;->checkParameters(Landroid/content/ComponentName;Landroid/os/UserHandle;)V
 HSPLandroid/telecom/PhoneAccountHandle;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telecom/PhoneAccountHandle;->getComponentName()Landroid/content/ComponentName;
+HSPLandroid/telecom/PhoneAccountHandle;->getId()Ljava/lang/String;
+HSPLandroid/telecom/PhoneAccountHandle;->getUserHandle()Landroid/os/UserHandle;
+HSPLandroid/telecom/PhoneAccountHandle;->hashCode()I
+HSPLandroid/telecom/PhoneAccountHandle;->toString()Ljava/lang/String;
 HSPLandroid/telecom/PhoneAccountHandle;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telecom/TelecomManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/telecom/TelecomManager;-><init>(Landroid/content/Context;Lcom/android/internal/telecom/ITelecomService;)V
+HSPLandroid/telecom/TelecomManager;->getCallCapablePhoneAccounts()Ljava/util/List;
+HSPLandroid/telecom/TelecomManager;->getCallCapablePhoneAccounts(Z)Ljava/util/List;
 HSPLandroid/telecom/TelecomManager;->getCallState()I
+HSPLandroid/telecom/TelecomManager;->getCurrentTtyMode()I
 HSPLandroid/telecom/TelecomManager;->getDefaultDialerPackage()Ljava/lang/String;
+HSPLandroid/telecom/TelecomManager;->getDefaultDialerPackage(I)Ljava/lang/String;
+HSPLandroid/telecom/TelecomManager;->getDefaultOutgoingPhoneAccount(Ljava/lang/String;)Landroid/telecom/PhoneAccountHandle;
+PLandroid/telecom/TelecomManager;->getDefaultPhoneApp()Landroid/content/ComponentName;
+HSPLandroid/telecom/TelecomManager;->getPhoneAccount(Landroid/telecom/PhoneAccountHandle;)Landroid/telecom/PhoneAccount;
+HSPLandroid/telecom/TelecomManager;->getSimCallManager()Landroid/telecom/PhoneAccountHandle;
+PLandroid/telecom/TelecomManager;->getSimCallManager(I)Landroid/telecom/PhoneAccountHandle;
+HSPLandroid/telecom/TelecomManager;->getSystemDialerPackage()Ljava/lang/String;
 HSPLandroid/telecom/TelecomManager;->getTelecomService()Lcom/android/internal/telecom/ITelecomService;
+HSPLandroid/telecom/TelecomManager;->isInCall()Z
+HPLandroid/telecom/TelecomManager;->isRinging()Z
 HSPLandroid/telecom/TelecomManager;->isServiceConnected()Z
+HSPLandroid/telecom/VideoProfile;->hasState(II)Z
+HSPLandroid/telecom/VideoProfile;->isVideo(I)Z
+HSPLandroid/telephony/-$$Lambda$MLKtmRGKP3e0WU7x_KyS5-Vg8q4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/telephony/-$$Lambda$NetworkRegistrationInfo$1JuZmO5PoYGZY8bHhZYwvmqwOB0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$2XBMUIj05jt4Xm08XAsE57q5gCc;-><init>(Landroid/telephony/PhoneStateListener;II)V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$2XBMUIj05jt4Xm08XAsE57q5gCc;->run()V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$2cMrwdqnKBpixpApeIX38rmRLak;-><init>(Landroid/telephony/PhoneStateListener;Landroid/telephony/CellLocation;)V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$2cMrwdqnKBpixpApeIX38rmRLak;->run()V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$6czWSGzxct0CXPVO54T0aq05qls;-><init>(Landroid/telephony/PhoneStateListener;ILjava/lang/String;)V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$6czWSGzxct0CXPVO54T0aq05qls;->run()V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$FBJGFGXoSvidKfm50cEzC3i9rVk;-><init>(Landroid/telephony/PhoneStateListener;I)V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$FBJGFGXoSvidKfm50cEzC3i9rVk;->run()V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Hbn6-eZxY2p3rjOfStodI04A8E8;-><init>(Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;Landroid/telephony/PhoneStateListener;Landroid/telephony/CellLocation;)V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Hbn6-eZxY2p3rjOfStodI04A8E8;->runOrThrow()V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$MtX5gtAKHxLcUp_ibya6VO1zuoE;-><init>(Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;Landroid/telephony/PhoneStateListener;I)V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$MtX5gtAKHxLcUp_ibya6VO1zuoE;->runOrThrow()V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Q2A8FgYlU8_D6PD78tThGut_rTc;-><init>(Landroid/telephony/PhoneStateListener;Ljava/util/List;)V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Q2A8FgYlU8_D6PD78tThGut_rTc;->run()V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Rh4FuYaAZPAbrOYr6GGF6llSePE;-><init>(Landroid/telephony/PhoneStateListener;I)V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Rh4FuYaAZPAbrOYr6GGF6llSePE;->run()V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$j6NpsS_PE3VHutxIDEmwFHop7Yc;-><init>(Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;Landroid/telephony/PhoneStateListener;Landroid/telephony/SignalStrength;)V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$j6NpsS_PE3VHutxIDEmwFHop7Yc;->runOrThrow()V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$l57DgyMDrONq3sajd_dBE967ClU;-><init>(Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;Landroid/telephony/PhoneStateListener;I)V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$l57DgyMDrONq3sajd_dBE967ClU;->runOrThrow()V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$lP7_Xy6P82nXGbUQ_ZUY6rZR4bI;-><init>(Landroid/telephony/PhoneStateListener;Landroid/telephony/SignalStrength;)V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$lP7_Xy6P82nXGbUQ_ZUY6rZR4bI;->run()V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$nrGqSRBJrc3_EwotCDNwfKeizIo;-><init>(Landroid/telephony/PhoneStateListener;Landroid/telephony/ServiceState;)V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$nrGqSRBJrc3_EwotCDNwfKeizIo;->run()V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$oDAZqs8paeefe_3k_uRKV5plQW4;-><init>(Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;Landroid/telephony/PhoneStateListener;ILjava/lang/String;)V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$oDAZqs8paeefe_3k_uRKV5plQW4;->runOrThrow()V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$pLr-IfJJu1u_YG6I5LI0iHTuBi0;-><init>(Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;Landroid/telephony/PhoneStateListener;II)V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$pLr-IfJJu1u_YG6I5LI0iHTuBi0;->runOrThrow()V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$uC5syhzl229gIpaK7Jfs__OCJxQ;-><init>(Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;Landroid/telephony/PhoneStateListener;Landroid/telephony/ServiceState;)V
 HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$uC5syhzl229gIpaK7Jfs__OCJxQ;->runOrThrow()V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$yvQnAlFGg5EWDG2vcA9X-4xnalA;-><init>(Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;Landroid/telephony/PhoneStateListener;Ljava/util/List;)V
+HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$yvQnAlFGg5EWDG2vcA9X-4xnalA;->runOrThrow()V
 HSPLandroid/telephony/-$$Lambda$SubscriptionManager$R_uORt9bKcmEo6JnjiGP2KgjIOQ;-><init>(Landroid/telephony/SubscriptionManager;)V
 HSPLandroid/telephony/-$$Lambda$SubscriptionManager$R_uORt9bKcmEo6JnjiGP2KgjIOQ;->test(Ljava/lang/Object;)Z
 HSPLandroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$3Kis6wL1IbLustWe9A2o4-2YpGo;->createService(Landroid/content/Context;)Ljava/lang/Object;
 HSPLandroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$b_92_3ZijRrdEa9yLyFA5xu19OM;->createService(Landroid/content/Context;)Ljava/lang/Object;
+HSPLandroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$mpe0Kh92VEQmEtmo60oqykdvnBE;->createService(Landroid/content/Context;)Ljava/lang/Object;
 HSPLandroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$sQClc4rjc9ydh0nXpY79gr33av4;->createService(Landroid/content/Context;)Ljava/lang/Object;
+HSPLandroid/telephony/-$$Lambda$TelephonyManager$1$scMPky6lOZrCjFC3d4STbtLfpHE;-><init>(Landroid/telephony/TelephonyManager$CellInfoCallback;Ljava/util/List;)V
+HSPLandroid/telephony/-$$Lambda$TelephonyManager$1$scMPky6lOZrCjFC3d4STbtLfpHE;->run()V
+HSPLandroid/telephony/-$$Lambda$TelephonyManager$2$l6Pazxfi7QghMr2Z0MpduhNe6yc;-><init>(Landroid/telephony/TelephonyManager$CellInfoCallback;Ljava/util/List;)V
+HSPLandroid/telephony/-$$Lambda$TelephonyManager$2$l6Pazxfi7QghMr2Z0MpduhNe6yc;->run()V
 HSPLandroid/telephony/-$$Lambda$TelephonyRegistryManager$1$cLzLZB4oGnI-HG_-4MhxcXoHys8;-><init>(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
 HSPLandroid/telephony/-$$Lambda$TelephonyRegistryManager$1$cLzLZB4oGnI-HG_-4MhxcXoHys8;->run()V
 HSPLandroid/telephony/AccessNetworkConstants;->transportTypeToString(I)Ljava/lang/String;
+HSPLandroid/telephony/AccessNetworkUtils;->getDuplexModeForEutranBand(I)I
 HSPLandroid/telephony/AccessNetworkUtils;->getOperatingBandForEarfcn(I)I
+HSPLandroid/telephony/CallAttributes;-><init>(Landroid/telephony/PreciseCallState;ILandroid/telephony/CallQuality;)V
+HSPLandroid/telephony/CallQuality$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CallQuality;
+HSPLandroid/telephony/CallQuality$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CallQuality;-><init>(IIIIIIIIIII)V
+HSPLandroid/telephony/CallQuality;-><init>(IIIIIIIIIIIZZZ)V
+HSPLandroid/telephony/CallQuality;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/CallQuality;->toString()Ljava/lang/String;
+HPLandroid/telephony/CallQuality;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telephony/CarrierConfigManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/telephony/CarrierConfigManager;->getConfig()Landroid/os/PersistableBundle;
 HSPLandroid/telephony/CarrierConfigManager;->getConfigForSubId(I)Landroid/os/PersistableBundle;
+HSPLandroid/telephony/CarrierConfigManager;->getDefaultCarrierServicePackageName()Ljava/lang/String;
+HSPLandroid/telephony/CarrierConfigManager;->getDefaultConfig()Landroid/os/PersistableBundle;
 HSPLandroid/telephony/CarrierConfigManager;->getICarrierConfigLoader()Lcom/android/internal/telephony/ICarrierConfigLoader;
+HSPLandroid/telephony/CarrierConfigManager;->isConfigForIdentifiedCarrier(Landroid/os/PersistableBundle;)Z
+HSPLandroid/telephony/CellConfigLte$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellConfigLte;
+HSPLandroid/telephony/CellConfigLte$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellConfigLte;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/CellConfigLte;-><init>(Landroid/os/Parcel;Landroid/telephony/CellConfigLte$1;)V
+HSPLandroid/telephony/CellConfigLte;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellConfigLte;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telephony/CellIdentity$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentity;
 HSPLandroid/telephony/CellIdentity$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/telephony/CellIdentity;-><init>(Ljava/lang/String;ILandroid/os/Parcel;)V
 HSPLandroid/telephony/CellIdentity;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/telephony/CellIdentity;->equals(Ljava/lang/Object;)Z
 HSPLandroid/telephony/CellIdentity;->isMcc(Ljava/lang/String;)Z
 HSPLandroid/telephony/CellIdentity;->isMnc(Ljava/lang/String;)Z
 HSPLandroid/telephony/CellIdentity;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/CellIdentityCdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityCdma;
+HSPLandroid/telephony/CellIdentityCdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellIdentityCdma;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/CellIdentityCdma;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityCdma;
+HSPLandroid/telephony/CellIdentityGsm$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityGsm;
+HSPLandroid/telephony/CellIdentityGsm$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellIdentityGsm;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/CellIdentityGsm;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityGsm;
+HSPLandroid/telephony/CellIdentityGsm;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellIdentityGsm;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telephony/CellIdentityLte$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityLte;
 HSPLandroid/telephony/CellIdentityLte$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/telephony/CellIdentityLte;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/CellIdentityLte;->asCellLocation()Landroid/telephony/CellLocation;
+HSPLandroid/telephony/CellIdentityLte;->asCellLocation()Landroid/telephony/gsm/GsmCellLocation;
 HSPLandroid/telephony/CellIdentityLte;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityLte;
+HSPLandroid/telephony/CellIdentityLte;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/CellIdentityLte;->getBandwidth()I
+HSPLandroid/telephony/CellIdentityLte;->getCi()I
+HSPLandroid/telephony/CellIdentityLte;->getEarfcn()I
+HSPLandroid/telephony/CellIdentityLte;->getMcc()I
+HSPLandroid/telephony/CellIdentityLte;->getMnc()I
+HSPLandroid/telephony/CellIdentityLte;->getPci()I
+HSPLandroid/telephony/CellIdentityLte;->getTac()I
+HSPLandroid/telephony/CellIdentityLte;->toString()Ljava/lang/String;
 HSPLandroid/telephony/CellIdentityLte;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telephony/CellIdentityWcdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityWcdma;
 HSPLandroid/telephony/CellIdentityWcdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/telephony/CellIdentityWcdma;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/CellIdentityWcdma;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityWcdma;
+HSPLandroid/telephony/CellIdentityWcdma;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/CellIdentityWcdma;->getCid()I
+HSPLandroid/telephony/CellIdentityWcdma;->getLac()I
+HSPLandroid/telephony/CellIdentityWcdma;->getMcc()I
+HSPLandroid/telephony/CellIdentityWcdma;->getMnc()I
+HSPLandroid/telephony/CellIdentityWcdma;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellIdentityWcdma;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telephony/CellInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellInfo;
 HSPLandroid/telephony/CellInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/CellInfo;->isRegistered()Z
+HSPLandroid/telephony/CellInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellInfo;->writeToParcel(Landroid/os/Parcel;II)V
+HSPLandroid/telephony/CellInfoLte;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/CellInfoLte;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellInfoLte;
 HSPLandroid/telephony/CellInfoLte;->getCellIdentity()Landroid/telephony/CellIdentityLte;
+HSPLandroid/telephony/CellInfoLte;->getCellSignalStrength()Landroid/telephony/CellSignalStrengthLte;
+HSPLandroid/telephony/CellInfoLte;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellInfoLte;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/CellInfoWcdma;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/CellInfoWcdma;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellInfoWcdma;
+HSPLandroid/telephony/CellInfoWcdma;->getCellIdentity()Landroid/telephony/CellIdentityWcdma;
+HSPLandroid/telephony/CellInfoWcdma;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellLocation;-><init>()V
+HSPLandroid/telephony/CellLocation;->getEmpty()Landroid/telephony/CellLocation;
 HSPLandroid/telephony/CellSignalStrength;-><init>()V
 HSPLandroid/telephony/CellSignalStrength;->getNumSignalStrengthLevels()I
 HSPLandroid/telephony/CellSignalStrengthCdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthCdma;
 HSPLandroid/telephony/CellSignalStrengthCdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellSignalStrengthCdma;-><init>()V
 HSPLandroid/telephony/CellSignalStrengthCdma;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/CellSignalStrengthCdma;-><init>(Landroid/os/Parcel;Landroid/telephony/CellSignalStrengthCdma$1;)V
+HPLandroid/telephony/CellSignalStrengthCdma;-><init>(Landroid/telephony/CellSignalStrengthCdma;)V
+HPLandroid/telephony/CellSignalStrengthCdma;->copyFrom(Landroid/telephony/CellSignalStrengthCdma;)V
 HSPLandroid/telephony/CellSignalStrengthCdma;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/CellSignalStrengthCdma;->getCdmaDbm()I
+HSPLandroid/telephony/CellSignalStrengthCdma;->getCdmaEcio()I
+HSPLandroid/telephony/CellSignalStrengthCdma;->getCdmaLevel()I
+HSPLandroid/telephony/CellSignalStrengthCdma;->getEvdoDbm()I
+HSPLandroid/telephony/CellSignalStrengthCdma;->getEvdoLevel()I
+HSPLandroid/telephony/CellSignalStrengthCdma;->getEvdoSnr()I
 HSPLandroid/telephony/CellSignalStrengthCdma;->isValid()Z
+HSPLandroid/telephony/CellSignalStrengthCdma;->setDefaultValues()V
+HSPLandroid/telephony/CellSignalStrengthCdma;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellSignalStrengthCdma;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telephony/CellSignalStrengthGsm$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthGsm;
 HSPLandroid/telephony/CellSignalStrengthGsm$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellSignalStrengthGsm;-><init>()V
 HSPLandroid/telephony/CellSignalStrengthGsm;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/CellSignalStrengthGsm;-><init>(Landroid/os/Parcel;Landroid/telephony/CellSignalStrengthGsm$1;)V
+HPLandroid/telephony/CellSignalStrengthGsm;-><init>(Landroid/telephony/CellSignalStrengthGsm;)V
+HPLandroid/telephony/CellSignalStrengthGsm;->copyFrom(Landroid/telephony/CellSignalStrengthGsm;)V
 HSPLandroid/telephony/CellSignalStrengthGsm;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/CellSignalStrengthGsm;->getLevel()I
 HSPLandroid/telephony/CellSignalStrengthGsm;->isValid()Z
+HSPLandroid/telephony/CellSignalStrengthGsm;->setDefaultValues()V
+HSPLandroid/telephony/CellSignalStrengthGsm;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellSignalStrengthGsm;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telephony/CellSignalStrengthLte$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthLte;
 HSPLandroid/telephony/CellSignalStrengthLte$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellSignalStrengthLte;-><init>()V
 HSPLandroid/telephony/CellSignalStrengthLte;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/CellSignalStrengthLte;-><init>(Landroid/os/Parcel;Landroid/telephony/CellSignalStrengthLte$1;)V
+HPLandroid/telephony/CellSignalStrengthLte;-><init>(Landroid/telephony/CellSignalStrengthLte;)V
+HPLandroid/telephony/CellSignalStrengthLte;->copyFrom(Landroid/telephony/CellSignalStrengthLte;)V
+HPLandroid/telephony/CellSignalStrengthLte;->describeContents()I
 HSPLandroid/telephony/CellSignalStrengthLte;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/CellSignalStrengthLte;->getDbm()I
 HSPLandroid/telephony/CellSignalStrengthLte;->getLevel()I
+HSPLandroid/telephony/CellSignalStrengthLte;->getTimingAdvance()I
 HSPLandroid/telephony/CellSignalStrengthLte;->isValid()Z
+HSPLandroid/telephony/CellSignalStrengthLte;->setDefaultValues()V
+HSPLandroid/telephony/CellSignalStrengthLte;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellSignalStrengthLte;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telephony/CellSignalStrengthNr$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthNr;
 HSPLandroid/telephony/CellSignalStrengthNr$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellSignalStrengthNr;-><init>()V
 HSPLandroid/telephony/CellSignalStrengthNr;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/CellSignalStrengthNr;-><init>(Landroid/os/Parcel;Landroid/telephony/CellSignalStrengthNr$1;)V
+HPLandroid/telephony/CellSignalStrengthNr;-><init>(Landroid/telephony/CellSignalStrengthNr;)V
 HSPLandroid/telephony/CellSignalStrengthNr;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/CellSignalStrengthNr;->isValid()Z
+HSPLandroid/telephony/CellSignalStrengthNr;->setDefaultValues()V
+HSPLandroid/telephony/CellSignalStrengthNr;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellSignalStrengthNr;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telephony/CellSignalStrengthTdscdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthTdscdma;
 HSPLandroid/telephony/CellSignalStrengthTdscdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellSignalStrengthTdscdma;-><init>()V
 HSPLandroid/telephony/CellSignalStrengthTdscdma;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/CellSignalStrengthTdscdma;-><init>(Landroid/os/Parcel;Landroid/telephony/CellSignalStrengthTdscdma$1;)V
+HPLandroid/telephony/CellSignalStrengthTdscdma;-><init>(Landroid/telephony/CellSignalStrengthTdscdma;)V
+HPLandroid/telephony/CellSignalStrengthTdscdma;->copyFrom(Landroid/telephony/CellSignalStrengthTdscdma;)V
 HSPLandroid/telephony/CellSignalStrengthTdscdma;->equals(Ljava/lang/Object;)Z
 HSPLandroid/telephony/CellSignalStrengthTdscdma;->isValid()Z
+HSPLandroid/telephony/CellSignalStrengthTdscdma;->setDefaultValues()V
+HSPLandroid/telephony/CellSignalStrengthTdscdma;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellSignalStrengthTdscdma;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telephony/CellSignalStrengthWcdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthWcdma;
 HSPLandroid/telephony/CellSignalStrengthWcdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellSignalStrengthWcdma;-><init>()V
 HSPLandroid/telephony/CellSignalStrengthWcdma;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/CellSignalStrengthWcdma;-><init>(Landroid/os/Parcel;Landroid/telephony/CellSignalStrengthWcdma$1;)V
+HPLandroid/telephony/CellSignalStrengthWcdma;-><init>(Landroid/telephony/CellSignalStrengthWcdma;)V
+HPLandroid/telephony/CellSignalStrengthWcdma;->copyFrom(Landroid/telephony/CellSignalStrengthWcdma;)V
 HSPLandroid/telephony/CellSignalStrengthWcdma;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/CellSignalStrengthWcdma;->getDbm()I
+HSPLandroid/telephony/CellSignalStrengthWcdma;->getLevel()I
 HSPLandroid/telephony/CellSignalStrengthWcdma;->isValid()Z
+HSPLandroid/telephony/CellSignalStrengthWcdma;->setDefaultValues()V
+HSPLandroid/telephony/CellSignalStrengthWcdma;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellSignalStrengthWcdma;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/DataFailCause;->getFailCause(I)I
+HSPLandroid/telephony/DataFailCause;->toString(I)Ljava/lang/String;
 HSPLandroid/telephony/DataSpecificRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/DataSpecificRegistrationInfo;
 HSPLandroid/telephony/DataSpecificRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/telephony/DataSpecificRegistrationInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/DataSpecificRegistrationInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/DataSpecificRegistrationInfo$1;)V
 HSPLandroid/telephony/DataSpecificRegistrationInfo;-><init>(Landroid/telephony/DataSpecificRegistrationInfo;)V
+HSPLandroid/telephony/DataSpecificRegistrationInfo;->equals(Ljava/lang/Object;)Z
 HSPLandroid/telephony/DataSpecificRegistrationInfo;->isUsingCarrierAggregation()Z
 HSPLandroid/telephony/DataSpecificRegistrationInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/DataSpecificRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/ICellInfoCallback$Stub;-><init>()V
+HSPLandroid/telephony/ICellInfoCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/telephony/ICellInfoCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;-><init>()V
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->build()Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setCallingPackage(Ljava/lang/String;)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setCallingPid(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setCallingUid(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setLogAsInfo(Z)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMethod(Ljava/lang/String;)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMinSdkVersionForCoarse(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMinSdkVersionForFine(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery;-><init>(Ljava/lang/String;Ljava/lang/String;IIIIZLjava/lang/String;)V
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery;-><init>(Ljava/lang/String;Ljava/lang/String;IIIIZLjava/lang/String;Landroid/telephony/LocationAccessPolicy$1;)V
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionResult;->values()[Landroid/telephony/LocationAccessPolicy$LocationPermissionResult;
+HSPLandroid/telephony/LocationAccessPolicy;->appOpsModeToPermissionResult(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionResult;
+HSPLandroid/telephony/LocationAccessPolicy;->checkAppLocationPermissionHelper(Landroid/content/Context;Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;Ljava/lang/String;)Landroid/telephony/LocationAccessPolicy$LocationPermissionResult;
+HSPLandroid/telephony/LocationAccessPolicy;->checkLocationPermission(Landroid/content/Context;Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;)Landroid/telephony/LocationAccessPolicy$LocationPermissionResult;
+HSPLandroid/telephony/LocationAccessPolicy;->checkManifestPermission(Landroid/content/Context;IILjava/lang/String;)Z
+HSPLandroid/telephony/LocationAccessPolicy;->checkSystemLocationAccess(Landroid/content/Context;II)Z
+HSPLandroid/telephony/LocationAccessPolicy;->getAppOpsString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/telephony/LocationAccessPolicy;->isAppAtLeastSdkVersion(Landroid/content/Context;Ljava/lang/String;I)Z
+HSPLandroid/telephony/LocationAccessPolicy;->isCurrentProfile(Landroid/content/Context;I)Z
+HSPLandroid/telephony/LocationAccessPolicy;->isLocationModeEnabled(Landroid/content/Context;I)Z
+HSPLandroid/telephony/LocationAccessPolicy;->logError(Landroid/content/Context;Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;Ljava/lang/String;)V
 HSPLandroid/telephony/LteVopsSupportInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/LteVopsSupportInfo;
 HSPLandroid/telephony/LteVopsSupportInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/telephony/LteVopsSupportInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/LteVopsSupportInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/LteVopsSupportInfo$1;)V
+HSPLandroid/telephony/LteVopsSupportInfo;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/LteVopsSupportInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/LteVopsSupportInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/telephony/ModemActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ModemActivityInfo;
+HPLandroid/telephony/ModemActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/ModemActivityInfo$TransmitPower;-><init>(Landroid/telephony/ModemActivityInfo;Landroid/util/Range;I)V
+HSPLandroid/telephony/ModemActivityInfo$TransmitPower;->getTimeInMillis()I
+HSPLandroid/telephony/ModemActivityInfo$TransmitPower;->toString()Ljava/lang/String;
+HSPLandroid/telephony/ModemActivityInfo;-><init>(JII[II)V
+HSPLandroid/telephony/ModemActivityInfo;->getIdleTimeMillis()I
+HSPLandroid/telephony/ModemActivityInfo;->getReceiveTimeMillis()I
+HSPLandroid/telephony/ModemActivityInfo;->getSleepTimeMillis()I
+HSPLandroid/telephony/ModemActivityInfo;->getTimestamp()J
+HSPLandroid/telephony/ModemActivityInfo;->getTransmitPowerInfo()Ljava/util/List;
+HSPLandroid/telephony/ModemActivityInfo;->isEmpty()Z
+HSPLandroid/telephony/ModemActivityInfo;->isValid()Z
+HSPLandroid/telephony/ModemActivityInfo;->populateTransmitPowerRange([I)V
+HSPLandroid/telephony/ModemActivityInfo;->toString()Ljava/lang/String;
 HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/NetworkRegistrationInfo;
 HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/NetworkRegistrationInfo$1;)V
 HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/telephony/NetworkRegistrationInfo;)V
+HSPLandroid/telephony/NetworkRegistrationInfo;->copy()Landroid/telephony/NetworkRegistrationInfo;
 HSPLandroid/telephony/NetworkRegistrationInfo;->domainToString(I)Ljava/lang/String;
+HSPLandroid/telephony/NetworkRegistrationInfo;->equals(Ljava/lang/Object;)Z
 HSPLandroid/telephony/NetworkRegistrationInfo;->getAccessNetworkTechnology()I
 HSPLandroid/telephony/NetworkRegistrationInfo;->getDataSpecificInfo()Landroid/telephony/DataSpecificRegistrationInfo;
 HSPLandroid/telephony/NetworkRegistrationInfo;->getDomain()I
+HSPLandroid/telephony/NetworkRegistrationInfo;->getNrState()I
+HSPLandroid/telephony/NetworkRegistrationInfo;->getRegistrationState()I
 HSPLandroid/telephony/NetworkRegistrationInfo;->getRoamingType()I
 HSPLandroid/telephony/NetworkRegistrationInfo;->getTransportType()I
 HSPLandroid/telephony/NetworkRegistrationInfo;->isInService()Z
 HSPLandroid/telephony/NetworkRegistrationInfo;->lambda$toString$0(Ljava/lang/Integer;)Ljava/lang/String;
 HSPLandroid/telephony/NetworkRegistrationInfo;->nrStateToString(I)Ljava/lang/String;
 HSPLandroid/telephony/NetworkRegistrationInfo;->registrationStateToString(I)Ljava/lang/String;
+HSPLandroid/telephony/NetworkRegistrationInfo;->sanitizeLocationInfo()Landroid/telephony/NetworkRegistrationInfo;
 HSPLandroid/telephony/NetworkRegistrationInfo;->serviceTypeToString(I)Ljava/lang/String;
 HSPLandroid/telephony/NetworkRegistrationInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/NetworkRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/PhoneCapability$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/PhoneCapability;
+HPLandroid/telephony/PhoneCapability$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/telephony/PhoneCapability;-><init>(Landroid/os/Parcel;)V
+PLandroid/telephony/PhoneCapability;-><init>(Landroid/os/Parcel;Landroid/telephony/PhoneCapability$1;)V
+HSPLandroid/telephony/PhoneCapability;->toString()Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->bcdToChar(BI)C
+HSPLandroid/telephony/PhoneNumberUtils;->calledPartyBCDToString([BIII)Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->compare(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/telephony/PhoneNumberUtils;->compare(Ljava/lang/String;Ljava/lang/String;Z)Z
+HSPLandroid/telephony/PhoneNumberUtils;->compareLoosely(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/telephony/PhoneNumberUtils;->convertKeypadLettersToDigits(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->extractNetworkPortion(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->extractNetworkPortionAlt(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->extractPostDialPortion(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->formatNumber(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/telephony/PhoneNumberUtils;->formatNumberToE164(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->getDefaultVoiceSubId()I
+HSPLandroid/telephony/PhoneNumberUtils;->getMinMatch()I
+HSPLandroid/telephony/PhoneNumberUtils;->indexOfLastNetworkChar(Ljava/lang/String;)I
+HSPLandroid/telephony/PhoneNumberUtils;->internalCalledPartyBCDFragmentToString(Ljava/lang/StringBuilder;[BIII)V
+HSPLandroid/telephony/PhoneNumberUtils;->is12Key(C)Z
 HSPLandroid/telephony/PhoneNumberUtils;->isDialable(C)Z
+HSPLandroid/telephony/PhoneNumberUtils;->isEmergencyNumber(ILjava/lang/String;)Z
+HSPLandroid/telephony/PhoneNumberUtils;->isEmergencyNumber(Ljava/lang/String;)Z
+HSPLandroid/telephony/PhoneNumberUtils;->isEmergencyNumberInternal(ILjava/lang/String;Ljava/lang/String;Z)Z
+HSPLandroid/telephony/PhoneNumberUtils;->isEmergencyNumberInternal(ILjava/lang/String;Z)Z
+HSPLandroid/telephony/PhoneNumberUtils;->isGlobalPhoneNumber(Ljava/lang/String;)Z
+HSPLandroid/telephony/PhoneNumberUtils;->isLocalEmergencyNumber(Landroid/content/Context;ILjava/lang/String;)Z
+HSPLandroid/telephony/PhoneNumberUtils;->isLocalEmergencyNumber(Landroid/content/Context;Ljava/lang/String;)Z
+HSPLandroid/telephony/PhoneNumberUtils;->isLocalEmergencyNumberInternal(ILjava/lang/String;Landroid/content/Context;Z)Z
+HSPLandroid/telephony/PhoneNumberUtils;->isNonSeparator(C)Z
+HSPLandroid/telephony/PhoneNumberUtils;->isUriNumber(Ljava/lang/String;)Z
+HSPLandroid/telephony/PhoneNumberUtils;->minPositive(II)I
+HSPLandroid/telephony/PhoneNumberUtils;->normalizeNumber(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->stripSeparators(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;-><init>(Landroid/telephony/PhoneStateListener;Ljava/util/concurrent/Executor;)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onActiveDataSubIdChanged$54(Landroid/telephony/PhoneStateListener;I)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onActiveDataSubIdChanged$55$PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;I)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onCallStateChanged$10(Landroid/telephony/PhoneStateListener;ILjava/lang/String;)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onCallStateChanged$11$PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;ILjava/lang/String;)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onCellInfoChanged$20(Landroid/telephony/PhoneStateListener;Ljava/util/List;)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onCellInfoChanged$21$PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;Ljava/util/List;)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onCellLocationChanged$8(Landroid/telephony/PhoneStateListener;Landroid/telephony/CellLocation;)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onCellLocationChanged$9$PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;Landroid/telephony/CellLocation;)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDataActivity$16(Landroid/telephony/PhoneStateListener;I)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDataActivity$17$PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;I)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDataConnectionStateChanged$14(Landroid/telephony/PhoneStateListener;II)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDataConnectionStateChanged$15$PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;II)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onServiceStateChanged$0(Landroid/telephony/PhoneStateListener;Landroid/telephony/ServiceState;)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onServiceStateChanged$1$PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;Landroid/telephony/ServiceState;)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onSignalStrengthsChanged$18(Landroid/telephony/PhoneStateListener;Landroid/telephony/SignalStrength;)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onSignalStrengthsChanged$19$PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;Landroid/telephony/SignalStrength;)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onActiveDataSubIdChanged(I)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onCallStateChanged(ILjava/lang/String;)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onCarrierNetworkChange(Z)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onCellInfoChanged(Ljava/util/List;)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onCellLocationChanged(Landroid/telephony/CellIdentity;)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onDataActivity(I)V
+HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onDataConnectionStateChanged(II)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onServiceStateChanged(Landroid/telephony/ServiceState;)V
 HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onSignalStrengthsChanged(Landroid/telephony/SignalStrength;)V
 HSPLandroid/telephony/PhoneStateListener;-><init>()V
+HSPLandroid/telephony/PhoneStateListener;-><init>(Landroid/os/Looper;)V
 HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Landroid/os/Looper;)V
 HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Ljava/util/concurrent/Executor;)V
 HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/util/concurrent/Executor;)V
+HSPLandroid/telephony/PhoneStateListener;->onCallStateChanged(ILjava/lang/String;)V
+HSPLandroid/telephony/PhoneStateListener;->onDataConnectionStateChanged(I)V
+HSPLandroid/telephony/PreciseCallState;-><init>(IIIII)V
+HSPLandroid/telephony/PreciseCallState;->getForegroundCallState()I
+HSPLandroid/telephony/PreciseDataConnectionState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/PreciseDataConnectionState;
+HSPLandroid/telephony/PreciseDataConnectionState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/PreciseDataConnectionState;-><init>(IIILjava/lang/String;Landroid/net/LinkProperties;ILandroid/telephony/data/ApnSetting;)V
+HSPLandroid/telephony/PreciseDataConnectionState;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/PreciseDataConnectionState;-><init>(Landroid/os/Parcel;Landroid/telephony/PreciseDataConnectionState$1;)V
+HPLandroid/telephony/PreciseDataConnectionState;->equals(Ljava/lang/Object;)Z
+PLandroid/telephony/PreciseDataConnectionState;->getDataConnectionApn()Ljava/lang/String;
+PLandroid/telephony/PreciseDataConnectionState;->getDataConnectionLinkProperties()Landroid/net/LinkProperties;
+PLandroid/telephony/PreciseDataConnectionState;->getNetworkType()I
+PLandroid/telephony/PreciseDataConnectionState;->getState()I
+HSPLandroid/telephony/PreciseDataConnectionState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ServiceState;
 HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/ServiceState;-><init>()V
 HSPLandroid/telephony/ServiceState;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/ServiceState;-><init>(Landroid/telephony/ServiceState;)V
+HSPLandroid/telephony/ServiceState;->copyFrom(Landroid/telephony/ServiceState;)V
+HSPLandroid/telephony/ServiceState;->createLocationInfoSanitizedCopy(Z)Landroid/telephony/ServiceState;
+HPLandroid/telephony/ServiceState;->describeContents()I
+HSPLandroid/telephony/ServiceState;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/ServiceState;->equalsHandlesNulls(Ljava/lang/Object;Ljava/lang/Object;)Z
+HPLandroid/telephony/ServiceState;->fillInNotifierBundle(Landroid/os/Bundle;)V
+HSPLandroid/telephony/ServiceState;->getCellBandwidths()[I
 HSPLandroid/telephony/ServiceState;->getDataNetworkType()I
+HSPLandroid/telephony/ServiceState;->getDataRegState()I
+HSPLandroid/telephony/ServiceState;->getDataRegistrationState()I
+HSPLandroid/telephony/ServiceState;->getDataRoaming()Z
+HSPLandroid/telephony/ServiceState;->getDataRoamingFromRegistration()Z
 HSPLandroid/telephony/ServiceState;->getDataRoamingType()I
 HSPLandroid/telephony/ServiceState;->getDuplexMode()I
 HSPLandroid/telephony/ServiceState;->getNetworkRegistrationInfo(II)Landroid/telephony/NetworkRegistrationInfo;
+HSPLandroid/telephony/ServiceState;->getNetworkRegistrationInfoList()Ljava/util/List;
+HSPLandroid/telephony/ServiceState;->getNrState()I
+HSPLandroid/telephony/ServiceState;->getOperatorAlphaShort()Ljava/lang/String;
+HPLandroid/telephony/ServiceState;->getRadioTechnology()I
 HSPLandroid/telephony/ServiceState;->getRilDataRadioTechnology()I
 HSPLandroid/telephony/ServiceState;->getRilVoiceRadioTechnology()I
+HSPLandroid/telephony/ServiceState;->getRoaming()Z
 HSPLandroid/telephony/ServiceState;->getState()I
 HSPLandroid/telephony/ServiceState;->getVoiceRegState()I
+HSPLandroid/telephony/ServiceState;->getVoiceRoaming()Z
 HSPLandroid/telephony/ServiceState;->getVoiceRoamingType()I
+HSPLandroid/telephony/ServiceState;->isEmergencyOnly()Z
 HSPLandroid/telephony/ServiceState;->isUsingCarrierAggregation()Z
 HSPLandroid/telephony/ServiceState;->networkTypeToRilRadioTechnology(I)I
+HSPLandroid/telephony/ServiceState;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/ServiceState;
 HSPLandroid/telephony/ServiceState;->rilRadioTechnologyToString(I)Ljava/lang/String;
+HSPLandroid/telephony/ServiceState;->rilServiceStateToString(I)Ljava/lang/String;
 HSPLandroid/telephony/ServiceState;->roamingTypeToString(I)Ljava/lang/String;
+HSPLandroid/telephony/ServiceState;->setFromNotifierBundle(Landroid/os/Bundle;)V
 HSPLandroid/telephony/ServiceState;->toString()Ljava/lang/String;
+HSPLandroid/telephony/ServiceState;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telephony/SignalStrength$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/SignalStrength;
 HSPLandroid/telephony/SignalStrength$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/SignalStrength;-><init>()V
 HSPLandroid/telephony/SignalStrength;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/SignalStrength;-><init>(Landroid/telephony/CellSignalStrengthCdma;Landroid/telephony/CellSignalStrengthGsm;Landroid/telephony/CellSignalStrengthWcdma;Landroid/telephony/CellSignalStrengthTdscdma;Landroid/telephony/CellSignalStrengthLte;Landroid/telephony/CellSignalStrengthNr;)V
+PLandroid/telephony/SignalStrength;-><init>(Landroid/telephony/SignalStrength;)V
+HPLandroid/telephony/SignalStrength;->copyFrom(Landroid/telephony/SignalStrength;)V
+HSPLandroid/telephony/SignalStrength;->getCellSignalStrengths()Ljava/util/List;
+HSPLandroid/telephony/SignalStrength;->getCellSignalStrengths(Ljava/lang/Class;)Ljava/util/List;
 HSPLandroid/telephony/SignalStrength;->getLevel()I
 HSPLandroid/telephony/SignalStrength;->getPrimary()Landroid/telephony/CellSignalStrength;
+HSPLandroid/telephony/SignalStrength;->isGsm()Z
+HSPLandroid/telephony/SignalStrength;->toString()Ljava/lang/String;
+HSPLandroid/telephony/SignalStrength;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/SmsManager;-><init>(I)V
+HSPLandroid/telephony/SmsManager;->getDefault()Landroid/telephony/SmsManager;
+HSPLandroid/telephony/SmsManager;->getISmsService()Lcom/android/internal/telephony/ISms;
+HSPLandroid/telephony/SmsManager;->getSmsManagerForSubscriptionId(I)Landroid/telephony/SmsManager;
+HSPLandroid/telephony/SmsManager;->getSubscriptionId()I
+HSPLandroid/telephony/SmsMessage;-><init>(Lcom/android/internal/telephony/SmsMessageBase;)V
+HSPLandroid/telephony/SmsMessage;->createFromPdu([BLjava/lang/String;)Landroid/telephony/SmsMessage;
+HSPLandroid/telephony/SmsMessage;->createFromPdu([BLjava/lang/String;Z)Landroid/telephony/SmsMessage;
+HSPLandroid/telephony/SmsMessage;->getMessageBody()Ljava/lang/String;
 HSPLandroid/telephony/SubscriptionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/SubscriptionInfo;
 HSPLandroid/telephony/SubscriptionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/telephony/SubscriptionInfo;-><init>(ILjava/lang/String;ILjava/lang/CharSequence;Ljava/lang/CharSequence;IILjava/lang/String;ILandroid/graphics/Bitmap;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[Landroid/telephony/UiccAccessRule;Ljava/lang/String;IZLjava/lang/String;ZIIILjava/lang/String;[Landroid/telephony/UiccAccessRule;Z)V
+HSPLandroid/telephony/SubscriptionInfo;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/SubscriptionInfo;->getAllAccessRules()Ljava/util/List;
+HSPLandroid/telephony/SubscriptionInfo;->getCarrierId()I
+HSPLandroid/telephony/SubscriptionInfo;->getCarrierName()Ljava/lang/CharSequence;
+HSPLandroid/telephony/SubscriptionInfo;->getDataRoaming()I
+HSPLandroid/telephony/SubscriptionInfo;->getDisplayName()Ljava/lang/CharSequence;
 HSPLandroid/telephony/SubscriptionInfo;->getGroupUuid()Landroid/os/ParcelUuid;
 HSPLandroid/telephony/SubscriptionInfo;->getIccId()Ljava/lang/String;
+HSPLandroid/telephony/SubscriptionInfo;->getIconTint()I
 HSPLandroid/telephony/SubscriptionInfo;->getMcc()I
 HSPLandroid/telephony/SubscriptionInfo;->getMnc()I
+HSPLandroid/telephony/SubscriptionInfo;->getNumber()Ljava/lang/String;
 HSPLandroid/telephony/SubscriptionInfo;->getSimSlotIndex()I
 HSPLandroid/telephony/SubscriptionInfo;->getSubscriptionId()I
+HSPLandroid/telephony/SubscriptionInfo;->givePrintableIccid(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/telephony/SubscriptionInfo;->isEmbedded()Z
 HSPLandroid/telephony/SubscriptionInfo;->isOpportunistic()Z
 HSPLandroid/telephony/SubscriptionInfo;->setAssociatedPlmns([Ljava/lang/String;[Ljava/lang/String;)V
+HSPLandroid/telephony/SubscriptionInfo;->toString()Ljava/lang/String;
 HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener$OnSubscriptionsChangedListenerHandler;-><init>(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
+HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener$OnSubscriptionsChangedListenerHandler;-><init>(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;Landroid/os/Looper;)V
 HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;-><init>()V
+HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;-><init>(Landroid/os/Looper;)V
 HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;->access$000(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)Lcom/android/internal/telephony/util/HandlerExecutor;
 HSPLandroid/telephony/SubscriptionManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/telephony/SubscriptionManager;->addOnSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
 HSPLandroid/telephony/SubscriptionManager;->addOnSubscriptionsChangedListener(Ljava/util/concurrent/Executor;Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
+HSPLandroid/telephony/SubscriptionManager;->canManageSubscription(Landroid/telephony/SubscriptionInfo;Ljava/lang/String;)Z
 HSPLandroid/telephony/SubscriptionManager;->from(Landroid/content/Context;)Landroid/telephony/SubscriptionManager;
+HSPLandroid/telephony/SubscriptionManager;->getActiveAndHiddenSubscriptionIdList()[I
+HSPLandroid/telephony/SubscriptionManager;->getActiveAndHiddenSubscriptionInfoList()Ljava/util/List;
 HSPLandroid/telephony/SubscriptionManager;->getActiveDataSubscriptionId()I
+HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionIdList(Z)[I
 HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfo(I)Landroid/telephony/SubscriptionInfo;
+HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoCount()I
+HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoCountMax()I
 HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoList()Ljava/util/List;
 HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoList(Z)Ljava/util/List;
+HSPLandroid/telephony/SubscriptionManager;->getAvailableSubscriptionInfoList()Ljava/util/List;
 HSPLandroid/telephony/SubscriptionManager;->getDefaultDataSubscriptionId()I
 HSPLandroid/telephony/SubscriptionManager;->getDefaultSmsSubscriptionId()I
 HSPLandroid/telephony/SubscriptionManager;->getDefaultSubscriptionId()I
@@ -10809,46 +21860,87 @@
 HSPLandroid/telephony/SubscriptionManager;->getSlotIndex(I)I
 HSPLandroid/telephony/SubscriptionManager;->isSubscriptionVisible(Landroid/telephony/SubscriptionInfo;)Z
 HSPLandroid/telephony/SubscriptionManager;->isUsableSubIdValue(I)Z
+HSPLandroid/telephony/SubscriptionManager;->isValidSlotIndex(I)Z
 HSPLandroid/telephony/SubscriptionManager;->isValidSubscriptionId(I)Z
 HSPLandroid/telephony/SubscriptionManager;->lambda$getActiveSubscriptionInfoList$0$SubscriptionManager(Landroid/telephony/SubscriptionInfo;)Z
+HSPLandroid/telephony/SubscriptionManager;->removeOnSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
+PLandroid/telephony/SubscriptionPlan$1;->newArray(I)[Landroid/telephony/SubscriptionPlan;
+PLandroid/telephony/SubscriptionPlan$1;->newArray(I)[Ljava/lang/Object;
 HSPLandroid/telephony/TelephonyFrameworkInitializer;->getTelephonyServiceManager()Landroid/os/TelephonyServiceManager;
 HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$0(Landroid/content/Context;)Landroid/telephony/TelephonyManager;
 HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$1(Landroid/content/Context;)Landroid/telephony/SubscriptionManager;
 HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$2(Landroid/content/Context;)Landroid/telephony/CarrierConfigManager;
+HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$3(Landroid/content/Context;)Landroid/telephony/euicc/EuiccManager;
 HSPLandroid/telephony/TelephonyFrameworkInitializer;->setTelephonyServiceManager(Landroid/os/TelephonyServiceManager;)V
+HSPLandroid/telephony/TelephonyManager$1;-><init>(Landroid/telephony/TelephonyManager;Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyManager$CellInfoCallback;)V
+HSPLandroid/telephony/TelephonyManager$1;->lambda$onCellInfo$0(Landroid/telephony/TelephonyManager$CellInfoCallback;Ljava/util/List;)V
+HSPLandroid/telephony/TelephonyManager$1;->onCellInfo(Ljava/util/List;)V
+HSPLandroid/telephony/TelephonyManager$2;-><init>(Landroid/telephony/TelephonyManager;Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyManager$CellInfoCallback;)V
+HSPLandroid/telephony/TelephonyManager$2;->lambda$onCellInfo$0(Landroid/telephony/TelephonyManager$CellInfoCallback;Ljava/util/List;)V
+HSPLandroid/telephony/TelephonyManager$2;->onCellInfo(Ljava/util/List;)V
+HSPLandroid/telephony/TelephonyManager$CellInfoCallback;-><init>()V
 HSPLandroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;I)V
+HSPLandroid/telephony/TelephonyManager;->checkCarrierPrivilegesForPackage(Ljava/lang/String;)I
 HSPLandroid/telephony/TelephonyManager;->checkCarrierPrivilegesForPackageAnyPhone(Ljava/lang/String;)I
+HSPLandroid/telephony/TelephonyManager;->createForPhoneAccountHandle(Landroid/telecom/PhoneAccountHandle;)Landroid/telephony/TelephonyManager;
 HSPLandroid/telephony/TelephonyManager;->createForSubscriptionId(I)Landroid/telephony/TelephonyManager;
+HSPLandroid/telephony/TelephonyManager;->from(Landroid/content/Context;)Landroid/telephony/TelephonyManager;
 HSPLandroid/telephony/TelephonyManager;->getActiveModemCount()I
 HSPLandroid/telephony/TelephonyManager;->getAllCellInfo()Ljava/util/List;
+HSPLandroid/telephony/TelephonyManager;->getAllNetworkTypes()[I
 HSPLandroid/telephony/TelephonyManager;->getCallState()I
+HSPLandroid/telephony/TelephonyManager;->getCardIdForDefaultEuicc()I
+HSPLandroid/telephony/TelephonyManager;->getCarrierConfig()Landroid/os/PersistableBundle;
+HSPLandroid/telephony/TelephonyManager;->getCarrierPackageNamesForIntentAndPhone(Landroid/content/Intent;I)Ljava/util/List;
+HSPLandroid/telephony/TelephonyManager;->getCarrierPrivilegeStatus(I)I
+HSPLandroid/telephony/TelephonyManager;->getCarrierPrivilegedPackagesForAllActiveSubscriptions()Ljava/util/List;
+HSPLandroid/telephony/TelephonyManager;->getCellLocation()Landroid/telephony/CellLocation;
 HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneType()I
 HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneType(I)I
 HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneTypeForSlot(I)I
+HSPLandroid/telephony/TelephonyManager;->getDataActivity()I
+HSPLandroid/telephony/TelephonyManager;->getDataEnabled()Z
 HSPLandroid/telephony/TelephonyManager;->getDataEnabled(I)Z
+HSPLandroid/telephony/TelephonyManager;->getDataNetworkType()I
+HSPLandroid/telephony/TelephonyManager;->getDataNetworkType(I)I
+HSPLandroid/telephony/TelephonyManager;->getDataState()I
+HSPLandroid/telephony/TelephonyManager;->getDefault()Landroid/telephony/TelephonyManager;
+HSPLandroid/telephony/TelephonyManager;->getDefaultSimCountryIso()Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getEmergencyNumberList()Ljava/util/Map;
 HSPLandroid/telephony/TelephonyManager;->getFeatureId()Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getGroupIdLevel1()Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getITelephony()Lcom/android/internal/telephony/ITelephony;
+HSPLandroid/telephony/TelephonyManager;->getImei()Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getImei(I)Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getLine1Number()Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getLine1Number(I)Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getMeid()Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getMeid(I)Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getMergedImsisFromGroup()[Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getMultiSimConfiguration()Landroid/telephony/TelephonyManager$MultiSimVariants;
 HSPLandroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getNetworkCountryIso(I)Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getNetworkOperator()Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getNetworkOperatorForPhone(I)Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getNetworkOperatorName(I)Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getNetworkType()I
 HSPLandroid/telephony/TelephonyManager;->getNetworkType(I)I
+HSPLandroid/telephony/TelephonyManager;->getNetworkTypeName(I)Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getOpPackageName()Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getPhoneCount()I
 HSPLandroid/telephony/TelephonyManager;->getPhoneId()I
 HSPLandroid/telephony/TelephonyManager;->getPhoneType()I
+HSPLandroid/telephony/TelephonyManager;->getPhoneType(I)I
+HSPLandroid/telephony/TelephonyManager;->getPhoneTypeFromNetworkType(I)I
 HSPLandroid/telephony/TelephonyManager;->getPhoneTypeFromProperty(I)I
 HSPLandroid/telephony/TelephonyManager;->getServiceState()Landroid/telephony/ServiceState;
 HSPLandroid/telephony/TelephonyManager;->getServiceStateForSubscriber(I)Landroid/telephony/ServiceState;
+HSPLandroid/telephony/TelephonyManager;->getSimCarrierId()I
 HSPLandroid/telephony/TelephonyManager;->getSimCountryIso()Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getSimCountryIso(I)Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getSimCountryIsoForPhone(I)Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getSimOperator()Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getSimOperatorName()Ljava/lang/String;
@@ -10856,7 +21948,10 @@
 HSPLandroid/telephony/TelephonyManager;->getSimOperatorNumeric()Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getSimOperatorNumeric(I)Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getSimOperatorNumericForPhone(I)Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getSimSerialNumber()Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getSimSerialNumber(I)Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getSimState()I
+HSPLandroid/telephony/TelephonyManager;->getSimState(I)I
 HSPLandroid/telephony/TelephonyManager;->getSimStateIncludingLoaded()I
 HSPLandroid/telephony/TelephonyManager;->getSlotIndex()I
 HSPLandroid/telephony/TelephonyManager;->getSubId()I
@@ -10864,32 +21959,154 @@
 HSPLandroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getSubscriberId(I)Ljava/lang/String;
 HSPLandroid/telephony/TelephonyManager;->getSubscriberInfo()Lcom/android/internal/telephony/IPhoneSubInfo;
+HPLandroid/telephony/TelephonyManager;->getSubscriptionId()I
+HSPLandroid/telephony/TelephonyManager;->getSubscriptionId(Landroid/telecom/PhoneAccountHandle;)I
+HSPLandroid/telephony/TelephonyManager;->getSupportedModemCount()I
 HSPLandroid/telephony/TelephonyManager;->getTelephonyProperty(ILjava/util/List;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/telephony/TelephonyManager;->getTelephonyRegistry()Lcom/android/internal/telephony/ITelephonyRegistry;
+HSPLandroid/telephony/TelephonyManager;->getVisualVoicemailPackageName()Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getVoiceNetworkType()I
+HSPLandroid/telephony/TelephonyManager;->getVoiceNetworkType(I)I
+HSPLandroid/telephony/TelephonyManager;->getVtDataUsage(I)Landroid/net/NetworkStats;
+HSPLandroid/telephony/TelephonyManager;->hasCarrierPrivileges(I)Z
+HSPLandroid/telephony/TelephonyManager;->isDataConnectionEnabled()Z
 HSPLandroid/telephony/TelephonyManager;->isDataEnabled()Z
+HSPLandroid/telephony/TelephonyManager;->isEmergencyNumber(Ljava/lang/String;)Z
 HSPLandroid/telephony/TelephonyManager;->isNetworkRoaming()Z
 HSPLandroid/telephony/TelephonyManager;->isNetworkRoaming(I)Z
 HSPLandroid/telephony/TelephonyManager;->isSmsCapable()Z
+HSPLandroid/telephony/TelephonyManager;->isTetheringApnRequired(I)Z
 HSPLandroid/telephony/TelephonyManager;->isVoiceCapable()Z
 HSPLandroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
+HSPLandroid/telephony/TelephonyManager;->requestCellInfoUpdate(Landroid/os/WorkSource;Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyManager$CellInfoCallback;)V
+HSPLandroid/telephony/TelephonyManager;->requestCellInfoUpdate(Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyManager$CellInfoCallback;)V
+HSPLandroid/telephony/TelephonyManager;->requestModemActivityInfo(Landroid/os/ResultReceiver;)V
+HPLandroid/telephony/TelephonyManager;->setPolicyDataEnabled(Z)V
 HSPLandroid/telephony/TelephonyRegistryManager$1;-><init>(Landroid/telephony/TelephonyRegistryManager;Ljava/util/concurrent/Executor;Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
 HSPLandroid/telephony/TelephonyRegistryManager$1;->lambda$onSubscriptionsChanged$0(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
 HSPLandroid/telephony/TelephonyRegistryManager$1;->onSubscriptionsChanged()V
 HSPLandroid/telephony/TelephonyRegistryManager;-><init>(Landroid/content/Context;)V
 HSPLandroid/telephony/TelephonyRegistryManager;->addOnSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;Ljava/util/concurrent/Executor;)V
 HSPLandroid/telephony/TelephonyRegistryManager;->listenForSubscriber(ILjava/lang/String;Ljava/lang/String;Landroid/telephony/PhoneStateListener;IZ)V
+HSPLandroid/telephony/TelephonyRegistryManager;->removeOnSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
+HSPLandroid/telephony/UiccAccessRule$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/UiccAccessRule;
+HSPLandroid/telephony/UiccAccessRule$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/UiccAccessRule$1;->newArray(I)[Landroid/telephony/UiccAccessRule;
+HSPLandroid/telephony/UiccAccessRule$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/telephony/UiccAccessRule;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/VoiceSpecificRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/VoiceSpecificRegistrationInfo;
 HSPLandroid/telephony/VoiceSpecificRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/VoiceSpecificRegistrationInfo$1;)V
 HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(Landroid/telephony/VoiceSpecificRegistrationInfo;)V
+HSPLandroid/telephony/VoiceSpecificRegistrationInfo;->equals(Ljava/lang/Object;)Z
 HSPLandroid/telephony/VoiceSpecificRegistrationInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/VoiceSpecificRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/data/ApnSetting$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/data/ApnSetting;
+HSPLandroid/telephony/data/ApnSetting$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/data/ApnSetting$Builder;-><init>()V
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$000(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$100(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1000(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1100(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1200(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1300(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1400(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1500(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1600(Landroid/telephony/data/ApnSetting$Builder;)Z
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1700(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1800(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1900(Landroid/telephony/data/ApnSetting$Builder;)Z
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$200(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2000(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2100(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2200(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2300(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2400(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2500(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2600(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2700(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2800(Landroid/telephony/data/ApnSetting$Builder;I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$300(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$400(Landroid/telephony/data/ApnSetting$Builder;)Landroid/net/Uri;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$500(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$600(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$700(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$800(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$900(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->buildWithoutCheck()Landroid/telephony/data/ApnSetting;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setApnName(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setApnSetId(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setApnTypeBitmask(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setAuthType(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setCarrierEnabled(Z)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setCarrierId(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setEntryName(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setId(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setMaxConns(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setMaxConnsTime(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setMmsProxyAddress(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setMmsProxyPort(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setMmsc(Landroid/net/Uri;)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setModemCognitive(Z)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setMtu(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setMvnoMatchData(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setMvnoType(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setNetworkTypeBitmask(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setOperatorNumeric(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setPassword(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setProfileId(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setProtocol(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setProxyAddress(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setProxyPort(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setRoamingProtocol(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setSkip464Xlat(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setUser(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setWaitTime(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting;-><init>(Landroid/telephony/data/ApnSetting$Builder;)V
+HSPLandroid/telephony/data/ApnSetting;-><init>(Landroid/telephony/data/ApnSetting$Builder;Landroid/telephony/data/ApnSetting$1;)V
+HSPLandroid/telephony/data/ApnSetting;->UriToString(Landroid/net/Uri;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting;->access$2900(Landroid/os/Parcel;)Landroid/telephony/data/ApnSetting;
+HSPLandroid/telephony/data/ApnSetting;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/data/ApnSetting;->getApnTypesBitmaskFromString(Ljava/lang/String;)I
+HSPLandroid/telephony/data/ApnSetting;->getApnTypesStringFromBitmask(I)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting;->makeApnSetting(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/net/Uri;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;IIIIZIIZIIIIILjava/lang/String;III)Landroid/telephony/data/ApnSetting;
+HSPLandroid/telephony/data/ApnSetting;->portToString(I)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting;->readFromParcel(Landroid/os/Parcel;)Landroid/telephony/data/ApnSetting;
+HSPLandroid/telephony/data/ApnSetting;->toString()Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/emergency/EmergencyNumber$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/emergency/EmergencyNumber;
+HSPLandroid/telephony/emergency/EmergencyNumber$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/emergency/EmergencyNumber;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/emergency/EmergencyNumber;->isFromSources(I)Z
+HSPLandroid/telephony/emergency/EmergencyNumber;->toString()Ljava/lang/String;
+HSPLandroid/telephony/euicc/EuiccManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/telephony/euicc/EuiccManager;->getIEuiccController()Lcom/android/internal/telephony/euicc/IEuiccController;
+HSPLandroid/telephony/euicc/EuiccManager;->isEnabled()Z
+HSPLandroid/telephony/euicc/EuiccManager;->refreshCardIdIfUninitialized()Z
+HSPLandroid/telephony/gsm/GsmCellLocation;-><init>()V
+HSPLandroid/telephony/gsm/GsmCellLocation;->isEmpty()Z
+HSPLandroid/telephony/gsm/GsmCellLocation;->setLacAndCid(II)V
+HSPLandroid/telephony/gsm/GsmCellLocation;->setPsc(I)V
+HSPLandroid/telephony/ims/ImsMmTelManager;-><init>(I)V
+HSPLandroid/telephony/ims/ImsMmTelManager;->createForSubscriptionId(I)Landroid/telephony/ims/ImsMmTelManager;
+HSPLandroid/telephony/ims/ImsMmTelManager;->getITelephony()Lcom/android/internal/telephony/ITelephony;
+HSPLandroid/telephony/ims/ImsMmTelManager;->isAvailable(II)Z
+HSPLandroid/telephony/ims/ImsReasonInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ims/ImsReasonInfo;
+HSPLandroid/telephony/ims/ImsReasonInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/ims/ImsReasonInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/ims/ImsReasonInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/ims/ImsReasonInfo$1;)V
+HSPLandroid/telephony/ims/ImsReasonInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/ims/ImsReasonInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder;-><init>(Landroid/telephony/ims/RegistrationManager$RegistrationCallback;)V
 HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback;-><init>()V
 HSPLandroid/telephony/ims/aidl/IImsRegistrationCallback$Stub;-><init>()V
+HSPLandroid/text/-$$Lambda$Layout$MzjK2UE2G8VG0asK8_KWY3gHAmY;-><init>(Landroid/graphics/Path;)V
+HSPLandroid/text/-$$Lambda$Layout$MzjK2UE2G8VG0asK8_KWY3gHAmY;->accept(FFFFI)V
 HSPLandroid/text/AndroidBidi$EmojiBidiOverride;->classify(I)I
 HSPLandroid/text/AndroidBidi;->bidi(I[C[B)I
 HSPLandroid/text/AndroidBidi;->directions(I[BI[CII)Landroid/text/Layout$Directions;
+HSPLandroid/text/Annotation;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/text/AutoGrowArray$ByteArray;-><init>()V
 HSPLandroid/text/AutoGrowArray$ByteArray;-><init>(I)V
 HSPLandroid/text/AutoGrowArray$ByteArray;->clear()V
@@ -10913,13 +22130,25 @@
 HSPLandroid/text/AutoGrowArray$IntArray;->getRawArray()[I
 HSPLandroid/text/AutoGrowArray;->access$000(II)I
 HSPLandroid/text/AutoGrowArray;->computeNewCapacity(II)I
+HSPLandroid/text/BidiFormatter$DirectionalityEstimator;-><init>(Ljava/lang/CharSequence;Z)V
 HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->dirTypeBackward()B
 HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->dirTypeForward()B
+HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->getCachedDirectionality(C)B
 HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->getEntryDir()I
 HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->getExitDir()I
+HSPLandroid/text/BidiFormatter;->getDefaultInstanceFromContext(Z)Landroid/text/BidiFormatter;
+HSPLandroid/text/BidiFormatter;->getEntryDir(Ljava/lang/CharSequence;)I
+HSPLandroid/text/BidiFormatter;->getExitDir(Ljava/lang/CharSequence;)I
+HSPLandroid/text/BidiFormatter;->getInstance()Landroid/text/BidiFormatter;
+HSPLandroid/text/BidiFormatter;->getStereoReset()Z
+HSPLandroid/text/BidiFormatter;->isRtlLocale(Ljava/util/Locale;)Z
 HSPLandroid/text/BidiFormatter;->markAfter(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;)Ljava/lang/String;
 HSPLandroid/text/BidiFormatter;->markBefore(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;)Ljava/lang/String;
+HSPLandroid/text/BidiFormatter;->unicodeWrap(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
 HSPLandroid/text/BidiFormatter;->unicodeWrap(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;Z)Ljava/lang/CharSequence;
+HSPLandroid/text/BidiFormatter;->unicodeWrap(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/text/BidiFormatter;->unicodeWrap(Ljava/lang/String;Landroid/text/TextDirectionHeuristic;)Ljava/lang/String;
+HSPLandroid/text/BidiFormatter;->unicodeWrap(Ljava/lang/String;Landroid/text/TextDirectionHeuristic;Z)Ljava/lang/String;
 HSPLandroid/text/BoringLayout$Metrics;-><init>()V
 HSPLandroid/text/BoringLayout$Metrics;->access$000(Landroid/text/BoringLayout$Metrics;)V
 HSPLandroid/text/BoringLayout$Metrics;->reset()V
@@ -10947,6 +22176,15 @@
 HSPLandroid/text/BoringLayout;->make(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)Landroid/text/BoringLayout;
 HSPLandroid/text/BoringLayout;->replaceOrMake(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)Landroid/text/BoringLayout;
 HSPLandroid/text/BoringLayout;->replaceOrMake(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)Landroid/text/BoringLayout;
+HSPLandroid/text/CharSequenceCharacterIterator;-><init>(Ljava/lang/CharSequence;II)V
+HSPLandroid/text/CharSequenceCharacterIterator;->current()C
+HSPLandroid/text/CharSequenceCharacterIterator;->first()C
+HSPLandroid/text/CharSequenceCharacterIterator;->getBeginIndex()I
+HSPLandroid/text/CharSequenceCharacterIterator;->getEndIndex()I
+HSPLandroid/text/CharSequenceCharacterIterator;->getIndex()I
+HSPLandroid/text/CharSequenceCharacterIterator;->next()C
+HSPLandroid/text/CharSequenceCharacterIterator;->previous()C
+HSPLandroid/text/CharSequenceCharacterIterator;->setIndex(I)C
 HSPLandroid/text/ClipboardManager;-><init>()V
 HSPLandroid/text/DynamicLayout$Builder;-><init>()V
 HSPLandroid/text/DynamicLayout$Builder;->access$1000(Landroid/text/DynamicLayout$Builder;)Z
@@ -10955,6 +22193,7 @@
 HSPLandroid/text/DynamicLayout$Builder;->access$1300(Landroid/text/DynamicLayout$Builder;)I
 HSPLandroid/text/DynamicLayout$Builder;->access$1400(Landroid/text/DynamicLayout$Builder;)Ljava/lang/CharSequence;
 HSPLandroid/text/DynamicLayout$Builder;->access$1500(Landroid/text/DynamicLayout$Builder;)Z
+HSPLandroid/text/DynamicLayout$Builder;->access$1600(Landroid/text/DynamicLayout$Builder;)I
 HSPLandroid/text/DynamicLayout$Builder;->access$1700(Landroid/text/DynamicLayout$Builder;)Landroid/graphics/Paint$FontMetricsInt;
 HSPLandroid/text/DynamicLayout$Builder;->access$200(Landroid/text/DynamicLayout$Builder;)Landroid/text/TextUtils$TruncateAt;
 HSPLandroid/text/DynamicLayout$Builder;->access$300(Landroid/text/DynamicLayout$Builder;)Ljava/lang/CharSequence;
@@ -10979,9 +22218,13 @@
 HSPLandroid/text/DynamicLayout$Builder;->setTextDirection(Landroid/text/TextDirectionHeuristic;)Landroid/text/DynamicLayout$Builder;
 HSPLandroid/text/DynamicLayout$Builder;->setUseLineSpacingFromFallbacks(Z)Landroid/text/DynamicLayout$Builder;
 HSPLandroid/text/DynamicLayout$ChangeWatcher;-><init>(Landroid/text/DynamicLayout;)V
+HSPLandroid/text/DynamicLayout$ChangeWatcher;->afterTextChanged(Landroid/text/Editable;)V
+HSPLandroid/text/DynamicLayout$ChangeWatcher;->beforeTextChanged(Ljava/lang/CharSequence;III)V
 HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
 HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
 HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HSPLandroid/text/DynamicLayout$ChangeWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V
+HSPLandroid/text/DynamicLayout$ChangeWatcher;->reflow(Ljava/lang/CharSequence;III)V
 HSPLandroid/text/DynamicLayout;-><init>(Landroid/text/DynamicLayout$Builder;)V
 HSPLandroid/text/DynamicLayout;-><init>(Landroid/text/DynamicLayout$Builder;Landroid/text/DynamicLayout$1;)V
 HSPLandroid/text/DynamicLayout;->addBlockAtOffset(I)V
@@ -11017,20 +22260,48 @@
 HSPLandroid/text/Emoji;->isNewEmoji(I)Z
 HSPLandroid/text/Html$HtmlParser;->access$000()Lorg/ccil/cowan/tagsoup/HTMLSchema;
 HSPLandroid/text/Html;->fromHtml(Ljava/lang/String;)Landroid/text/Spanned;
+HSPLandroid/text/Html;->fromHtml(Ljava/lang/String;I)Landroid/text/Spanned;
 HSPLandroid/text/Html;->fromHtml(Ljava/lang/String;ILandroid/text/Html$ImageGetter;Landroid/text/Html$TagHandler;)Landroid/text/Spanned;
+HSPLandroid/text/Html;->fromHtml(Ljava/lang/String;Landroid/text/Html$ImageGetter;Landroid/text/Html$TagHandler;)Landroid/text/Spanned;
+HSPLandroid/text/HtmlToSpannedConverter$Bold;-><init>()V
+HSPLandroid/text/HtmlToSpannedConverter$Bold;-><init>(Landroid/text/HtmlToSpannedConverter$1;)V
+HSPLandroid/text/HtmlToSpannedConverter$Foreground;-><init>(I)V
+HSPLandroid/text/HtmlToSpannedConverter$Foreground;->access$1500(Landroid/text/HtmlToSpannedConverter$Foreground;)I
+HSPLandroid/text/HtmlToSpannedConverter$Href;-><init>(Ljava/lang/String;)V
+HSPLandroid/text/HtmlToSpannedConverter$Newline;-><init>(I)V
+HSPLandroid/text/HtmlToSpannedConverter$Newline;->access$900(Landroid/text/HtmlToSpannedConverter$Newline;)I
 HSPLandroid/text/HtmlToSpannedConverter;-><init>(Ljava/lang/String;Landroid/text/Html$ImageGetter;Landroid/text/Html$TagHandler;Lorg/ccil/cowan/tagsoup/Parser;I)V
+HSPLandroid/text/HtmlToSpannedConverter;->appendNewlines(Landroid/text/Editable;I)V
 HSPLandroid/text/HtmlToSpannedConverter;->characters([CII)V
 HSPLandroid/text/HtmlToSpannedConverter;->convert()Landroid/text/Spanned;
+HSPLandroid/text/HtmlToSpannedConverter;->end(Landroid/text/Editable;Ljava/lang/Class;Ljava/lang/Object;)V
+HSPLandroid/text/HtmlToSpannedConverter;->endA(Landroid/text/Editable;)V
+HSPLandroid/text/HtmlToSpannedConverter;->endBlockElement(Landroid/text/Editable;)V
+HSPLandroid/text/HtmlToSpannedConverter;->endCssStyle(Landroid/text/Editable;)V
 HSPLandroid/text/HtmlToSpannedConverter;->endDocument()V
 HSPLandroid/text/HtmlToSpannedConverter;->endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/text/HtmlToSpannedConverter;->endFont(Landroid/text/Editable;)V
 HSPLandroid/text/HtmlToSpannedConverter;->endPrefixMapping(Ljava/lang/String;)V
+HSPLandroid/text/HtmlToSpannedConverter;->getHtmlColor(Ljava/lang/String;)I
+HSPLandroid/text/HtmlToSpannedConverter;->getLast(Landroid/text/Spanned;Ljava/lang/Class;)Ljava/lang/Object;
+HSPLandroid/text/HtmlToSpannedConverter;->handleBr(Landroid/text/Editable;)V
 HSPLandroid/text/HtmlToSpannedConverter;->handleEndTag(Ljava/lang/String;)V
 HSPLandroid/text/HtmlToSpannedConverter;->handleStartTag(Ljava/lang/String;Lorg/xml/sax/Attributes;)V
 HSPLandroid/text/HtmlToSpannedConverter;->setDocumentLocator(Lorg/xml/sax/Locator;)V
+HSPLandroid/text/HtmlToSpannedConverter;->setSpanFromMark(Landroid/text/Spannable;Ljava/lang/Object;[Ljava/lang/Object;)V
+HSPLandroid/text/HtmlToSpannedConverter;->start(Landroid/text/Editable;Ljava/lang/Object;)V
+HSPLandroid/text/HtmlToSpannedConverter;->startA(Landroid/text/Editable;Lorg/xml/sax/Attributes;)V
+HSPLandroid/text/HtmlToSpannedConverter;->startBlockElement(Landroid/text/Editable;Lorg/xml/sax/Attributes;I)V
+HSPLandroid/text/HtmlToSpannedConverter;->startCssStyle(Landroid/text/Editable;Lorg/xml/sax/Attributes;)V
 HSPLandroid/text/HtmlToSpannedConverter;->startDocument()V
 HSPLandroid/text/HtmlToSpannedConverter;->startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V
+HSPLandroid/text/HtmlToSpannedConverter;->startFont(Landroid/text/Editable;Lorg/xml/sax/Attributes;)V
 HSPLandroid/text/HtmlToSpannedConverter;->startPrefixMapping(Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/text/Hyphenator;->init()V
+HSPLandroid/text/InputFilter$LengthFilter;-><init>(I)V
+HSPLandroid/text/InputFilter$LengthFilter;->filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;
+HSPLandroid/text/InputFilter$LengthFilter;->getMax()I
+HSPLandroid/text/Layout$Alignment;->values()[Landroid/text/Layout$Alignment;
 HSPLandroid/text/Layout$Directions;->getRunCount()I
 HSPLandroid/text/Layout$Directions;->getRunLength(I)I
 HSPLandroid/text/Layout$Directions;->getRunStart(I)I
@@ -11039,21 +22310,33 @@
 HSPLandroid/text/Layout$Ellipsizer;->charAt(I)C
 HSPLandroid/text/Layout$Ellipsizer;->getChars(II[CI)V
 HSPLandroid/text/Layout$Ellipsizer;->length()I
+HSPLandroid/text/Layout$HorizontalMeasurementProvider;-><init>(Landroid/text/Layout;IZ)V
+HSPLandroid/text/Layout$HorizontalMeasurementProvider;->get(I)F
+HSPLandroid/text/Layout$HorizontalMeasurementProvider;->init()V
 HSPLandroid/text/Layout$SpannedEllipsizer;-><init>(Ljava/lang/CharSequence;)V
+HSPLandroid/text/Layout$SpannedEllipsizer;->getSpanEnd(Ljava/lang/Object;)I
+HSPLandroid/text/Layout$SpannedEllipsizer;->getSpanFlags(Ljava/lang/Object;)I
+HSPLandroid/text/Layout$SpannedEllipsizer;->getSpanStart(Ljava/lang/Object;)I
 HSPLandroid/text/Layout$SpannedEllipsizer;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
 HSPLandroid/text/Layout$SpannedEllipsizer;->nextSpanTransition(IILjava/lang/Class;)I
 HSPLandroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V
 HSPLandroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/TextDirectionHeuristic;FF)V
+HSPLandroid/text/Layout;->access$100(Landroid/text/Layout;IZ)F
 HSPLandroid/text/Layout;->access$200(Landroid/text/Layout;III[CILandroid/text/TextUtils$TruncateAt;)V
+HSPLandroid/text/Layout;->addSelection(IIIIILandroid/text/Layout$SelectionRectangleConsumer;)V
 HSPLandroid/text/Layout;->draw(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
 HSPLandroid/text/Layout;->drawBackground(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;III)V
 HSPLandroid/text/Layout;->drawText(Landroid/graphics/Canvas;II)V
 HSPLandroid/text/Layout;->ellipsize(III[CILandroid/text/TextUtils$TruncateAt;)V
 HSPLandroid/text/Layout;->getCursorPath(ILandroid/graphics/Path;Ljava/lang/CharSequence;)V
+HSPLandroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F
+HSPLandroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;)F
+HSPLandroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
 HSPLandroid/text/Layout;->getDesiredWidthWithLimit(Ljava/lang/CharSequence;IILandroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;F)F
 HSPLandroid/text/Layout;->getEndHyphenEdit(I)I
 HSPLandroid/text/Layout;->getHeight()I
 HSPLandroid/text/Layout;->getHeight(Z)I
+HSPLandroid/text/Layout;->getHorizontal(IZ)F
 HSPLandroid/text/Layout;->getHorizontal(IZIZ)F
 HSPLandroid/text/Layout;->getHorizontal(IZZ)F
 HSPLandroid/text/Layout;->getIndentAdjust(ILandroid/text/Layout$Alignment;)I
@@ -11073,6 +22356,9 @@
 HSPLandroid/text/Layout;->getLineVisibleEnd(I)I
 HSPLandroid/text/Layout;->getLineVisibleEnd(III)I
 HSPLandroid/text/Layout;->getLineWidth(I)F
+HSPLandroid/text/Layout;->getOffsetAtStartOf(I)I
+HSPLandroid/text/Layout;->getOffsetForHorizontal(IF)I
+HSPLandroid/text/Layout;->getOffsetForHorizontal(IFZ)I
 HSPLandroid/text/Layout;->getPaint()Landroid/text/TextPaint;
 HSPLandroid/text/Layout;->getParagraphAlignment(I)Landroid/text/Layout$Alignment;
 HSPLandroid/text/Layout;->getParagraphLeadingMargin(I)I
@@ -11081,6 +22367,8 @@
 HSPLandroid/text/Layout;->getParagraphSpans(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
 HSPLandroid/text/Layout;->getPrimaryHorizontal(I)F
 HSPLandroid/text/Layout;->getPrimaryHorizontal(IZ)F
+HSPLandroid/text/Layout;->getSelection(IILandroid/text/Layout$SelectionRectangleConsumer;)V
+HSPLandroid/text/Layout;->getSelectionPath(IILandroid/graphics/Path;)V
 HSPLandroid/text/Layout;->getSpacingAdd()F
 HSPLandroid/text/Layout;->getSpacingMultiplier()F
 HSPLandroid/text/Layout;->getStartHyphenEdit(I)I
@@ -11089,6 +22377,8 @@
 HSPLandroid/text/Layout;->getWidth()I
 HSPLandroid/text/Layout;->increaseWidthTo(I)V
 HSPLandroid/text/Layout;->isJustificationRequired(I)Z
+HSPLandroid/text/Layout;->isRtlCharAt(I)Z
+HSPLandroid/text/Layout;->lambda$getSelectionPath$0(Landroid/graphics/Path;FFFFI)V
 HSPLandroid/text/Layout;->measurePara(Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;)F
 HSPLandroid/text/Layout;->primaryIsTrailingPrevious(I)Z
 HSPLandroid/text/Layout;->replaceWith(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V
@@ -11096,6 +22386,7 @@
 HSPLandroid/text/Layout;->shouldClampCursor(I)Z
 HSPLandroid/text/MeasuredParagraph;-><init>()V
 HSPLandroid/text/MeasuredParagraph;->applyMetricsAffectingSpan(Landroid/text/TextPaint;[Landroid/text/style/MetricAffectingSpan;IILandroid/graphics/text/MeasuredText$Builder;)V
+HSPLandroid/text/MeasuredParagraph;->applyReplacementRun(Landroid/text/style/ReplacementSpan;IILandroid/graphics/text/MeasuredText$Builder;)V
 HSPLandroid/text/MeasuredParagraph;->applyStyleRun(IILandroid/graphics/text/MeasuredText$Builder;)V
 HSPLandroid/text/MeasuredParagraph;->breakText(IZF)I
 HSPLandroid/text/MeasuredParagraph;->buildForBidi(Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;Landroid/text/MeasuredParagraph;)Landroid/text/MeasuredParagraph;
@@ -11150,12 +22441,15 @@
 HSPLandroid/text/Selection;->updateMemory(Landroid/text/Spannable;I)V
 HSPLandroid/text/SpanSet;-><init>(Ljava/lang/Class;)V
 HSPLandroid/text/SpanSet;->getNextTransition(II)I
+HSPLandroid/text/SpanSet;->hasSpansIntersecting(II)Z
 HSPLandroid/text/SpanSet;->init(Landroid/text/Spanned;II)V
 HSPLandroid/text/SpanSet;->recycle()V
 HSPLandroid/text/Spannable$Factory;->getInstance()Landroid/text/Spannable$Factory;
 HSPLandroid/text/Spannable$Factory;->newSpannable(Ljava/lang/CharSequence;)Landroid/text/Spannable;
 HSPLandroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;)V
+HSPLandroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;II)V
 HSPLandroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;Z)V
+HSPLandroid/text/SpannableString;->equals(Ljava/lang/Object;)Z
 HSPLandroid/text/SpannableString;->getSpanEnd(Ljava/lang/Object;)I
 HSPLandroid/text/SpannableString;->getSpanFlags(Ljava/lang/Object;)I
 HSPLandroid/text/SpannableString;->getSpanStart(Ljava/lang/Object;)I
@@ -11164,17 +22458,29 @@
 HSPLandroid/text/SpannableString;->removeSpan(Ljava/lang/Object;)V
 HSPLandroid/text/SpannableString;->removeSpan(Ljava/lang/Object;I)V
 HSPLandroid/text/SpannableString;->setSpan(Ljava/lang/Object;III)V
+HSPLandroid/text/SpannableString;->subSequence(II)Ljava/lang/CharSequence;
+HSPLandroid/text/SpannableString;->valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannableString;
 HSPLandroid/text/SpannableStringBuilder;-><init>()V
 HSPLandroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;)V
 HSPLandroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;II)V
+HSPLandroid/text/SpannableStringBuilder;->append(C)Landroid/text/Editable;
+HSPLandroid/text/SpannableStringBuilder;->append(C)Landroid/text/SpannableStringBuilder;
+HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/Editable;
 HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
+HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;
+HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/Appendable;
 HSPLandroid/text/SpannableStringBuilder;->calcMax(I)I
 HSPLandroid/text/SpannableStringBuilder;->change(IILjava/lang/CharSequence;II)V
 HSPLandroid/text/SpannableStringBuilder;->charAt(I)C
 HSPLandroid/text/SpannableStringBuilder;->checkRange(Ljava/lang/String;II)V
 HSPLandroid/text/SpannableStringBuilder;->checkSortBuffer([II)[I
+HSPLandroid/text/SpannableStringBuilder;->clear()V
 HSPLandroid/text/SpannableStringBuilder;->compareSpans(II[I[I)I
 HSPLandroid/text/SpannableStringBuilder;->countSpans(IILjava/lang/Class;I)I
+HSPLandroid/text/SpannableStringBuilder;->delete(II)Landroid/text/Editable;
+HSPLandroid/text/SpannableStringBuilder;->delete(II)Landroid/text/SpannableStringBuilder;
+HSPLandroid/text/SpannableStringBuilder;->drawTextRun(Landroid/graphics/BaseCanvas;IIIIFFZLandroid/graphics/Paint;)V
+HSPLandroid/text/SpannableStringBuilder;->equals(Ljava/lang/Object;)Z
 HSPLandroid/text/SpannableStringBuilder;->getChars(II[CI)V
 HSPLandroid/text/SpannableStringBuilder;->getSpanEnd(Ljava/lang/Object;)I
 HSPLandroid/text/SpannableStringBuilder;->getSpanFlags(Ljava/lang/Object;)I
@@ -11182,7 +22488,11 @@
 HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
 HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;Z)[Ljava/lang/Object;
 HSPLandroid/text/SpannableStringBuilder;->getSpansRec(IILjava/lang/Class;I[Ljava/lang/Object;[I[IIZ)I
+HSPLandroid/text/SpannableStringBuilder;->getTextRunCursor(IIZIILandroid/graphics/Paint;)I
+HSPLandroid/text/SpannableStringBuilder;->getTextWatcherDepth()I
 HSPLandroid/text/SpannableStringBuilder;->hasNonExclusiveExclusiveSpanAt(Ljava/lang/CharSequence;I)Z
+HSPLandroid/text/SpannableStringBuilder;->insert(ILjava/lang/CharSequence;)Landroid/text/Editable;
+HSPLandroid/text/SpannableStringBuilder;->insert(ILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
 HSPLandroid/text/SpannableStringBuilder;->invalidateIndex(I)V
 HSPLandroid/text/SpannableStringBuilder;->isInvalidParagraph(II)Z
 HSPLandroid/text/SpannableStringBuilder;->leftChild(I)I
@@ -11224,6 +22534,7 @@
 HSPLandroid/text/SpannableStringInternal;->checkRange(Ljava/lang/String;II)V
 HSPLandroid/text/SpannableStringInternal;->copySpansFromInternal(Landroid/text/SpannableStringInternal;IIZ)V
 HSPLandroid/text/SpannableStringInternal;->copySpansFromSpanned(Landroid/text/Spanned;IIZ)V
+HSPLandroid/text/SpannableStringInternal;->equals(Ljava/lang/Object;)Z
 HSPLandroid/text/SpannableStringInternal;->getChars(II[CI)V
 HSPLandroid/text/SpannableStringInternal;->getSpanEnd(Ljava/lang/Object;)I
 HSPLandroid/text/SpannableStringInternal;->getSpanFlags(Ljava/lang/Object;)I
@@ -11235,16 +22546,22 @@
 HSPLandroid/text/SpannableStringInternal;->removeSpan(Ljava/lang/Object;)V
 HSPLandroid/text/SpannableStringInternal;->removeSpan(Ljava/lang/Object;I)V
 HSPLandroid/text/SpannableStringInternal;->sendSpanAdded(Ljava/lang/Object;II)V
+HSPLandroid/text/SpannableStringInternal;->sendSpanChanged(Ljava/lang/Object;IIII)V
+HSPLandroid/text/SpannableStringInternal;->sendSpanRemoved(Ljava/lang/Object;II)V
 HSPLandroid/text/SpannableStringInternal;->setSpan(Ljava/lang/Object;III)V
 HSPLandroid/text/SpannableStringInternal;->setSpan(Ljava/lang/Object;IIIZ)V
 HSPLandroid/text/SpannableStringInternal;->toString()Ljava/lang/String;
 HSPLandroid/text/SpannedString;-><init>(Ljava/lang/CharSequence;)V
+HSPLandroid/text/SpannedString;-><init>(Ljava/lang/CharSequence;II)V
 HSPLandroid/text/SpannedString;-><init>(Ljava/lang/CharSequence;Z)V
+HSPLandroid/text/SpannedString;->equals(Ljava/lang/Object;)Z
 HSPLandroid/text/SpannedString;->getSpanEnd(Ljava/lang/Object;)I
 HSPLandroid/text/SpannedString;->getSpanFlags(Ljava/lang/Object;)I
 HSPLandroid/text/SpannedString;->getSpanStart(Ljava/lang/Object;)I
 HSPLandroid/text/SpannedString;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
 HSPLandroid/text/SpannedString;->nextSpanTransition(IILjava/lang/Class;)I
+HSPLandroid/text/SpannedString;->subSequence(II)Ljava/lang/CharSequence;
+HSPLandroid/text/SpannedString;->valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannedString;
 HSPLandroid/text/StaticLayout$Builder;-><init>()V
 HSPLandroid/text/StaticLayout$Builder;->access$100(Landroid/text/StaticLayout$Builder;)Z
 HSPLandroid/text/StaticLayout$Builder;->access$1000(Landroid/text/StaticLayout$Builder;)F
@@ -11278,6 +22595,7 @@
 HSPLandroid/text/StaticLayout$Builder;->setEllipsizedWidth(I)Landroid/text/StaticLayout$Builder;
 HSPLandroid/text/StaticLayout$Builder;->setHyphenationFrequency(I)Landroid/text/StaticLayout$Builder;
 HSPLandroid/text/StaticLayout$Builder;->setIncludePad(Z)Landroid/text/StaticLayout$Builder;
+HSPLandroid/text/StaticLayout$Builder;->setIndents([I[I)Landroid/text/StaticLayout$Builder;
 HSPLandroid/text/StaticLayout$Builder;->setJustificationMode(I)Landroid/text/StaticLayout$Builder;
 HSPLandroid/text/StaticLayout$Builder;->setLineSpacing(FF)Landroid/text/StaticLayout$Builder;
 HSPLandroid/text/StaticLayout$Builder;->setMaxLines(I)Landroid/text/StaticLayout$Builder;
@@ -11317,6 +22635,7 @@
 HSPLandroid/text/TextDirectionHeuristics$FirstStrong;->checkRtl(Ljava/lang/CharSequence;II)I
 HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->doCheck(Ljava/lang/CharSequence;II)Z
 HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->isRtl(Ljava/lang/CharSequence;II)Z
+HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->isRtl([CII)Z
 HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;->defaultIsRtl()Z
 HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;->defaultIsRtl()Z
 HSPLandroid/text/TextDirectionHeuristics;->access$100(I)I
@@ -11335,7 +22654,10 @@
 HSPLandroid/text/TextLine;->equalAttributes(Landroid/text/TextPaint;Landroid/text/TextPaint;)Z
 HSPLandroid/text/TextLine;->expandMetricsFromPaint(Landroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V
 HSPLandroid/text/TextLine;->extractDecorationInfo(Landroid/text/TextPaint;Landroid/text/TextLine$DecorationInfo;)V
+HSPLandroid/text/TextLine;->getOffsetBeforeAfter(IIIZIZ)I
+HSPLandroid/text/TextLine;->getOffsetToLeftRightOf(IZ)I
 HSPLandroid/text/TextLine;->getRunAdvance(Landroid/text/TextPaint;IIIIZI)F
+HSPLandroid/text/TextLine;->handleReplacement(Landroid/text/style/ReplacementSpan;Landroid/text/TextPaint;IIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;Z)F
 HSPLandroid/text/TextLine;->handleRun(IIIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;Z)F
 HSPLandroid/text/TextLine;->handleText(Landroid/text/TextPaint;IIIIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;ZILjava/util/ArrayList;)F
 HSPLandroid/text/TextLine;->isLineEndSpace(C)Z
@@ -11348,6 +22670,7 @@
 HSPLandroid/text/TextLine;->updateMetrics(Landroid/graphics/Paint$FontMetricsInt;IIIII)V
 HSPLandroid/text/TextPaint;-><init>()V
 HSPLandroid/text/TextPaint;-><init>(I)V
+HSPLandroid/text/TextPaint;-><init>(Landroid/graphics/Paint;)V
 HSPLandroid/text/TextPaint;->getUnderlineThickness()F
 HSPLandroid/text/TextPaint;->set(Landroid/text/TextPaint;)V
 HSPLandroid/text/TextPaint;->setUnderlineText(IF)V
@@ -11359,31 +22682,46 @@
 HSPLandroid/text/TextUtils$SimpleStringSplitter;->next()Ljava/lang/Object;
 HSPLandroid/text/TextUtils$SimpleStringSplitter;->next()Ljava/lang/String;
 HSPLandroid/text/TextUtils$SimpleStringSplitter;->setString(Ljava/lang/String;)V
+HSPLandroid/text/TextUtils$StringWithRemovedChars;-><init>(Ljava/lang/String;)V
+HSPLandroid/text/TextUtils$StringWithRemovedChars;->codePointAt(I)I
+HSPLandroid/text/TextUtils$StringWithRemovedChars;->length()I
+HSPLandroid/text/TextUtils$StringWithRemovedChars;->toString()Ljava/lang/String;
+HSPLandroid/text/TextUtils;->access$000(Landroid/os/Parcel;Landroid/text/Spannable;Ljava/lang/Object;)V
 HSPLandroid/text/TextUtils;->concat([Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/text/TextUtils;->copySpansFrom(Landroid/text/Spanned;IILjava/lang/Class;Landroid/text/Spannable;I)V
 HSPLandroid/text/TextUtils;->couldAffectRtl(C)Z
+HSPLandroid/text/TextUtils;->delimitedStringContains(Ljava/lang/String;CLjava/lang/String;)Z
 HSPLandroid/text/TextUtils;->doesNotNeedBidi([CII)Z
 HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;)Ljava/lang/CharSequence;
 HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;)Ljava/lang/CharSequence;
 HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;Landroid/text/TextDirectionHeuristic;Ljava/lang/String;)Ljava/lang/CharSequence;
 HSPLandroid/text/TextUtils;->emptyIfNull(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
+HSPLandroid/text/TextUtils;->expandTemplate(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
 HSPLandroid/text/TextUtils;->getCapsMode(Ljava/lang/CharSequence;II)I
 HSPLandroid/text/TextUtils;->getChars(Ljava/lang/CharSequence;II[CI)V
 HSPLandroid/text/TextUtils;->getEllipsisString(Landroid/text/TextUtils$TruncateAt;)Ljava/lang/String;
 HSPLandroid/text/TextUtils;->getLayoutDirectionFromLocale(Ljava/util/Locale;)I
+HSPLandroid/text/TextUtils;->getTrimmedLength(Ljava/lang/CharSequence;)I
 HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;C)I
 HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CI)I
 HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CII)I
 HSPLandroid/text/TextUtils;->isDigitsOnly(Ljava/lang/CharSequence;)Z
 HSPLandroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
+HSPLandroid/text/TextUtils;->isGraphic(Ljava/lang/CharSequence;)Z
+HSPLandroid/text/TextUtils;->isNewline(I)Z
+HSPLandroid/text/TextUtils;->isWhiteSpace(I)Z
 HSPLandroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
 HSPLandroid/text/TextUtils;->join(Ljava/lang/CharSequence;[Ljava/lang/Object;)Ljava/lang/String;
 HSPLandroid/text/TextUtils;->lastIndexOf(Ljava/lang/CharSequence;CI)I
 HSPLandroid/text/TextUtils;->lastIndexOf(Ljava/lang/CharSequence;CII)I
+HSPLandroid/text/TextUtils;->makeSafeForPresentation(Ljava/lang/String;IFI)Ljava/lang/CharSequence;
 HSPLandroid/text/TextUtils;->obtain(I)[C
 HSPLandroid/text/TextUtils;->packRangeInLong(II)J
+HSPLandroid/text/TextUtils;->readSpan(Landroid/os/Parcel;Landroid/text/Spannable;Ljava/lang/Object;)V
 HSPLandroid/text/TextUtils;->recycle([C)V
 HSPLandroid/text/TextUtils;->removeEmptySpans([Ljava/lang/Object;Landroid/text/Spanned;Ljava/lang/Class;)[Ljava/lang/Object;
+HSPLandroid/text/TextUtils;->safeIntern(Ljava/lang/String;)Ljava/lang/String;
 HSPLandroid/text/TextUtils;->split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
 HSPLandroid/text/TextUtils;->stringOrSpannedString(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
 HSPLandroid/text/TextUtils;->substring(Ljava/lang/CharSequence;II)Ljava/lang/String;
@@ -11395,11 +22733,18 @@
 HSPLandroid/text/TextUtils;->unpackRangeStartFromLong(J)I
 HSPLandroid/text/TextUtils;->writeToParcel(Ljava/lang/CharSequence;Landroid/os/Parcel;I)V
 HSPLandroid/text/TextUtils;->writeWhere(Landroid/os/Parcel;Landroid/text/Spanned;Ljava/lang/Object;)V
+HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;J)Ljava/lang/CharSequence;
 HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Calendar;)Ljava/lang/CharSequence;
 HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence;
 HSPLandroid/text/format/DateFormat;->getBestDateTimePattern(Ljava/util/Locale;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/text/format/DateFormat;->getDayOfWeekString(Llibcore/icu/LocaleData;III)Ljava/lang/String;
 HSPLandroid/text/format/DateFormat;->getMonthString(Llibcore/icu/LocaleData;III)Ljava/lang/String;
+HSPLandroid/text/format/DateFormat;->getTimeFormat(Landroid/content/Context;)Ljava/text/DateFormat;
+HSPLandroid/text/format/DateFormat;->getTimeFormatString(Landroid/content/Context;)Ljava/lang/String;
+HSPLandroid/text/format/DateFormat;->getTimeFormatString(Landroid/content/Context;I)Ljava/lang/String;
+HSPLandroid/text/format/DateFormat;->getYearString(II)Ljava/lang/String;
 HSPLandroid/text/format/DateFormat;->hasDesignator(Ljava/lang/CharSequence;C)Z
+HSPLandroid/text/format/DateFormat;->hasSeconds(Ljava/lang/CharSequence;)Z
 HSPLandroid/text/format/DateFormat;->is24HourFormat(Landroid/content/Context;)Z
 HSPLandroid/text/format/DateFormat;->is24HourFormat(Landroid/content/Context;I)Z
 HSPLandroid/text/format/DateFormat;->is24HourLocale(Ljava/util/Locale;)Z
@@ -11407,14 +22752,35 @@
 HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;JJI)Ljava/lang/String;
 HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJI)Ljava/util/Formatter;
 HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJILjava/lang/String;)Ljava/util/Formatter;
+HSPLandroid/text/format/DateUtils;->formatDateTime(Landroid/content/Context;JI)Ljava/lang/String;
 HSPLandroid/text/format/DateUtils;->formatElapsedTime(J)Ljava/lang/String;
 HSPLandroid/text/format/DateUtils;->formatElapsedTime(Ljava/lang/StringBuilder;J)Ljava/lang/String;
+HSPLandroid/text/format/DateUtils;->getRelativeTimeSpanString(JJJI)Ljava/lang/CharSequence;
 HSPLandroid/text/format/DateUtils;->initFormatStrings()V
 HSPLandroid/text/format/DateUtils;->initFormatStringsLocked()V
+HSPLandroid/text/format/DateUtils;->isSameDate(JJ)Z
+HSPLandroid/text/format/DateUtils;->isToday(J)Z
+HSPLandroid/text/format/Formatter$BytesResult;-><init>(Ljava/lang/String;Ljava/lang/String;J)V
+HSPLandroid/text/format/Formatter;->bidiWrap(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/text/format/Formatter;->formatBytes(Landroid/content/res/Resources;JI)Landroid/text/format/Formatter$BytesResult;
+HSPLandroid/text/format/Formatter;->formatFileSize(Landroid/content/Context;J)Ljava/lang/String;
+HSPLandroid/text/format/Formatter;->formatFileSize(Landroid/content/Context;JI)Ljava/lang/String;
+HSPLandroid/text/format/Formatter;->formatShortElapsedTime(Landroid/content/Context;J)Ljava/lang/String;
+HSPLandroid/text/format/Formatter;->formatShortElapsedTimeRoundingUpToMinutes(Landroid/content/Context;J)Ljava/lang/String;
+HSPLandroid/text/format/Formatter;->localeFromContext(Landroid/content/Context;)Ljava/util/Locale;
+HSPLandroid/text/format/Time$TimeCalculator;-><init>(Ljava/lang/String;)V
+HSPLandroid/text/format/Time$TimeCalculator;->copyFieldsFromTime(Landroid/text/format/Time;)V
 HSPLandroid/text/format/Time$TimeCalculator;->copyFieldsToTime(Landroid/text/format/Time;)V
 HSPLandroid/text/format/Time$TimeCalculator;->lookupZoneInfo(Ljava/lang/String;)Llibcore/util/ZoneInfo;
 HSPLandroid/text/format/Time$TimeCalculator;->setTimeInMillis(J)V
+HSPLandroid/text/format/Time$TimeCalculator;->toMillis(Z)J
+HSPLandroid/text/format/Time$TimeCalculator;->updateZoneInfoFromTimeZone()V
 HSPLandroid/text/format/Time;-><init>()V
+HSPLandroid/text/format/Time;-><init>(Ljava/lang/String;)V
+HSPLandroid/text/format/Time;->getCurrentTimezone()Ljava/lang/String;
+HSPLandroid/text/format/Time;->getJulianDay(JJ)I
+HSPLandroid/text/format/Time;->initialize(Ljava/lang/String;)V
+HSPLandroid/text/format/Time;->normalize(Z)J
 HSPLandroid/text/format/Time;->set(J)V
 HSPLandroid/text/method/AllCapsTransformationMethod;-><init>(Landroid/content/Context;)V
 HSPLandroid/text/method/AllCapsTransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;
@@ -11422,74 +22788,311 @@
 HSPLandroid/text/method/ArrowKeyMovementMethod;-><init>()V
 HSPLandroid/text/method/ArrowKeyMovementMethod;->canSelectArbitrarily()Z
 HSPLandroid/text/method/ArrowKeyMovementMethod;->getInstance()Landroid/text/method/MovementMethod;
+HSPLandroid/text/method/ArrowKeyMovementMethod;->handleMovementKey(Landroid/widget/TextView;Landroid/text/Spannable;IILandroid/view/KeyEvent;)Z
 HSPLandroid/text/method/ArrowKeyMovementMethod;->initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V
+HSPLandroid/text/method/ArrowKeyMovementMethod;->isSelecting(Landroid/text/Spannable;)Z
 HSPLandroid/text/method/ArrowKeyMovementMethod;->onTakeFocus(Landroid/widget/TextView;Landroid/text/Spannable;I)V
+HSPLandroid/text/method/ArrowKeyMovementMethod;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z
 HSPLandroid/text/method/BaseKeyListener;-><init>()V
+HSPLandroid/text/method/BaseKeyListener;->backspace(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
+HSPLandroid/text/method/BaseKeyListener;->backspaceOrForwardDelete(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;Z)Z
+HSPLandroid/text/method/BaseKeyListener;->deleteSelection(Landroid/view/View;Landroid/text/Editable;)Z
+HSPLandroid/text/method/BaseKeyListener;->getOffsetForBackspaceKey(Ljava/lang/CharSequence;I)I
+HSPLandroid/text/method/BaseKeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
 HSPLandroid/text/method/BaseMovementMethod;-><init>()V
+HSPLandroid/text/method/BaseMovementMethod;->getMovementMetaState(Landroid/text/Spannable;Landroid/view/KeyEvent;)I
+HSPLandroid/text/method/BaseMovementMethod;->handleMovementKey(Landroid/widget/TextView;Landroid/text/Spannable;IILandroid/view/KeyEvent;)Z
+HSPLandroid/text/method/BaseMovementMethod;->onKeyDown(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z
+HSPLandroid/text/method/BaseMovementMethod;->onKeyUp(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z
 HSPLandroid/text/method/LinkMovementMethod;-><init>()V
 HSPLandroid/text/method/LinkMovementMethod;->getInstance()Landroid/text/method/MovementMethod;
 HSPLandroid/text/method/LinkMovementMethod;->initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V
+HSPLandroid/text/method/LinkMovementMethod;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z
 HSPLandroid/text/method/MetaKeyKeyListener;-><init>()V
+HSPLandroid/text/method/MetaKeyKeyListener;->adjust(Landroid/text/Spannable;Ljava/lang/Object;)V
+HSPLandroid/text/method/MetaKeyKeyListener;->adjustMetaAfterKeypress(Landroid/text/Spannable;)V
+HSPLandroid/text/method/MetaKeyKeyListener;->getActive(Ljava/lang/CharSequence;Ljava/lang/Object;II)I
+HSPLandroid/text/method/MetaKeyKeyListener;->getMetaState(JI)I
 HSPLandroid/text/method/MetaKeyKeyListener;->getMetaState(Ljava/lang/CharSequence;I)I
+HSPLandroid/text/method/MetaKeyKeyListener;->getMetaState(Ljava/lang/CharSequence;ILandroid/view/KeyEvent;)I
+HSPLandroid/text/method/MetaKeyKeyListener;->getMetaState(Ljava/lang/CharSequence;Landroid/view/KeyEvent;)I
 HSPLandroid/text/method/MetaKeyKeyListener;->isMetaTracker(Ljava/lang/CharSequence;Ljava/lang/Object;)Z
+HSPLandroid/text/method/MetaKeyKeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
+HSPLandroid/text/method/MetaKeyKeyListener;->onKeyUp(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
+HSPLandroid/text/method/MetaKeyKeyListener;->resetLock(Landroid/text/Spannable;Ljava/lang/Object;)V
+HSPLandroid/text/method/MetaKeyKeyListener;->resetLockedMeta(Landroid/text/Spannable;)V
 HSPLandroid/text/method/MetaKeyKeyListener;->resetMetaState(Landroid/text/Spannable;)V
+HSPLandroid/text/method/NumberKeyListener;-><init>()V
+HSPLandroid/text/method/QwertyKeyListener;-><init>(Landroid/text/method/TextKeyListener$Capitalize;ZZ)V
+HSPLandroid/text/method/QwertyKeyListener;->getInstanceForFullKeyboard()Landroid/text/method/QwertyKeyListener;
+HSPLandroid/text/method/QwertyKeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
 HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;-><init>(Ljava/lang/CharSequence;[C[C)V
+HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->charAt(I)C
 HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->getChars(II[CI)V
 HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->length()I
+HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->toString()Ljava/lang/String;
 HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;-><init>(Landroid/text/Spanned;[C[C)V
+HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpanEnd(Ljava/lang/Object;)I
+HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpanFlags(Ljava/lang/Object;)I
+HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpanStart(Ljava/lang/Object;)I
 HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
 HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->nextSpanTransition(IILjava/lang/Class;)I
 HSPLandroid/text/method/ReplacementTransformationMethod;-><init>()V
 HSPLandroid/text/method/ReplacementTransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;
+HSPLandroid/text/method/ReplacementTransformationMethod;->onFocusChanged(Landroid/view/View;Ljava/lang/CharSequence;ZILandroid/graphics/Rect;)V
 HSPLandroid/text/method/ScrollingMovementMethod;-><init>()V
 HSPLandroid/text/method/SingleLineTransformationMethod;-><init>()V
 HSPLandroid/text/method/SingleLineTransformationMethod;->getInstance()Landroid/text/method/SingleLineTransformationMethod;
 HSPLandroid/text/method/SingleLineTransformationMethod;->getOriginal()[C
 HSPLandroid/text/method/SingleLineTransformationMethod;->getReplacement()[C
+HSPLandroid/text/method/TextKeyListener$SettingsObserver;-><init>(Landroid/text/method/TextKeyListener;)V
+HPLandroid/text/method/TextKeyListener$SettingsObserver;->onChange(Z)V
 HSPLandroid/text/method/TextKeyListener;-><init>(Landroid/text/method/TextKeyListener$Capitalize;Z)V
+HPLandroid/text/method/TextKeyListener;->access$000(Landroid/text/method/TextKeyListener;)Ljava/lang/ref/WeakReference;
+HPLandroid/text/method/TextKeyListener;->access$200(Landroid/text/method/TextKeyListener;Landroid/content/ContentResolver;)V
 HSPLandroid/text/method/TextKeyListener;->getInstance()Landroid/text/method/TextKeyListener;
 HSPLandroid/text/method/TextKeyListener;->getInstance(ZLandroid/text/method/TextKeyListener$Capitalize;)Landroid/text/method/TextKeyListener;
+HSPLandroid/text/method/TextKeyListener;->getKeyListener(Landroid/view/KeyEvent;)Landroid/text/method/KeyListener;
+HSPLandroid/text/method/TextKeyListener;->getPrefs(Landroid/content/Context;)I
+HSPLandroid/text/method/TextKeyListener;->initPrefs(Landroid/content/Context;)V
+HSPLandroid/text/method/TextKeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
+HSPLandroid/text/method/TextKeyListener;->onKeyUp(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
 HSPLandroid/text/method/TextKeyListener;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
 HSPLandroid/text/method/TextKeyListener;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
 HSPLandroid/text/method/TextKeyListener;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HSPLandroid/text/method/TextKeyListener;->updatePrefs(Landroid/content/ContentResolver;)V
+HSPLandroid/text/method/Touch$DragState;-><init>(FFII)V
+HSPLandroid/text/method/Touch;->getInitialScrollX(Landroid/widget/TextView;Landroid/text/Spannable;)I
+HSPLandroid/text/method/Touch;->getInitialScrollY(Landroid/widget/TextView;Landroid/text/Spannable;)I
+HSPLandroid/text/method/Touch;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z
+HSPLandroid/text/method/WordIterator;-><init>(Ljava/util/Locale;)V
+HSPLandroid/text/method/WordIterator;->checkOffsetIsValid(I)V
+HSPLandroid/text/method/WordIterator;->following(I)I
+HSPLandroid/text/method/WordIterator;->getBeginning(I)I
+HSPLandroid/text/method/WordIterator;->getBeginning(IZ)I
+HSPLandroid/text/method/WordIterator;->getEnd(I)I
+HSPLandroid/text/method/WordIterator;->getEnd(IZ)I
+HSPLandroid/text/method/WordIterator;->isAfterLetterOrDigit(I)Z
+HSPLandroid/text/method/WordIterator;->isMidWordPunctuation(Ljava/util/Locale;I)Z
+HSPLandroid/text/method/WordIterator;->isOnLetterOrDigit(I)Z
+HSPLandroid/text/method/WordIterator;->preceding(I)I
+HSPLandroid/text/method/WordIterator;->setCharSequence(Ljava/lang/CharSequence;II)V
+HSPLandroid/text/style/AbsoluteSizeSpan;-><init>(IZ)V
+HSPLandroid/text/style/AbsoluteSizeSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/AbsoluteSizeSpan;->updateMeasureState(Landroid/text/TextPaint;)V
 HSPLandroid/text/style/CharacterStyle;-><init>()V
 HSPLandroid/text/style/CharacterStyle;->getUnderlying()Landroid/text/style/CharacterStyle;
 HSPLandroid/text/style/ClickableSpan;-><init>()V
+HSPLandroid/text/style/ClickableSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/DynamicDrawableSpan;-><init>(I)V
+HSPLandroid/text/style/DynamicDrawableSpan;->draw(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIFIIILandroid/graphics/Paint;)V
+HSPLandroid/text/style/DynamicDrawableSpan;->getCachedDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/text/style/DynamicDrawableSpan;->getSize(Landroid/graphics/Paint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)I
 HSPLandroid/text/style/ForegroundColorSpan;-><init>(I)V
+HSPLandroid/text/style/ForegroundColorSpan;->getSpanTypeIdInternal()I
 HSPLandroid/text/style/ForegroundColorSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/ForegroundColorSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+HSPLandroid/text/style/ImageSpan;-><init>(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/text/style/ImageSpan;-><init>(Landroid/graphics/drawable/Drawable;I)V
+HSPLandroid/text/style/ImageSpan;->getDrawable()Landroid/graphics/drawable/Drawable;
 HSPLandroid/text/style/MetricAffectingSpan;-><init>()V
 HSPLandroid/text/style/MetricAffectingSpan;->getUnderlying()Landroid/text/style/CharacterStyle;
 HSPLandroid/text/style/MetricAffectingSpan;->getUnderlying()Landroid/text/style/MetricAffectingSpan;
+HSPLandroid/text/style/RelativeSizeSpan;-><init>(F)V
+HSPLandroid/text/style/RelativeSizeSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/ReplacementSpan;-><init>()V
+HSPLandroid/text/style/SpellCheckSpan;-><init>()V
+HSPLandroid/text/style/SpellCheckSpan;->getSpanTypeIdInternal()I
+HSPLandroid/text/style/SpellCheckSpan;->isSpellCheckInProgress()Z
+HSPLandroid/text/style/SpellCheckSpan;->setSpellCheckInProgress(Z)V
+HSPLandroid/text/style/SpellCheckSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
 HSPLandroid/text/style/StyleSpan;-><init>(I)V
 HSPLandroid/text/style/StyleSpan;->apply(Landroid/graphics/Paint;I)V
 HSPLandroid/text/style/StyleSpan;->getSpanTypeIdInternal()I
 HSPLandroid/text/style/StyleSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/StyleSpan;->updateMeasureState(Landroid/text/TextPaint;)V
 HSPLandroid/text/style/StyleSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+HSPLandroid/text/style/SuggestionSpan;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/text/style/SuggestionSpan;->getSpanTypeIdInternal()I
+HSPLandroid/text/style/SuggestionSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+HSPLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/content/Context;I)V
+HSPLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/content/Context;II)V
 HSPLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/text/style/TextAppearanceSpan;-><init>(Ljava/lang/String;IILandroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;)V
+HSPLandroid/text/style/TextAppearanceSpan;->getFamily()Ljava/lang/String;
+HSPLandroid/text/style/TextAppearanceSpan;->getLinkTextColor()Landroid/content/res/ColorStateList;
+HSPLandroid/text/style/TextAppearanceSpan;->getSpanTypeIdInternal()I
+HSPLandroid/text/style/TextAppearanceSpan;->getTextColor()Landroid/content/res/ColorStateList;
+HSPLandroid/text/style/TextAppearanceSpan;->getTextStyle()I
+HSPLandroid/text/style/TextAppearanceSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/TextAppearanceSpan;->updateMeasureState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/TextAppearanceSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+HSPLandroid/text/style/TtsSpan$Builder;-><init>(Ljava/lang/String;)V
+HSPLandroid/text/style/TtsSpan$Builder;->build()Landroid/text/style/TtsSpan;
+HSPLandroid/text/style/TtsSpan$Builder;->setStringArgument(Ljava/lang/String;Ljava/lang/String;)Landroid/text/style/TtsSpan$Builder;
+HSPLandroid/text/style/TtsSpan$SemioticClassBuilder;-><init>(Ljava/lang/String;)V
+HSPLandroid/text/style/TtsSpan;-><init>(Ljava/lang/String;Landroid/os/PersistableBundle;)V
+HSPLandroid/text/style/TypefaceSpan;-><init>(Ljava/lang/String;)V
+HSPLandroid/text/style/TypefaceSpan;-><init>(Ljava/lang/String;Landroid/graphics/Typeface;)V
+HSPLandroid/text/style/TypefaceSpan;->applyFontFamily(Landroid/graphics/Paint;Ljava/lang/String;)V
+HSPLandroid/text/style/TypefaceSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/TypefaceSpan;->updateMeasureState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/TypefaceSpan;->updateTypeface(Landroid/graphics/Paint;)V
+HSPLandroid/text/style/URLSpan;-><init>(Ljava/lang/String;)V
+HSPLandroid/text/style/URLSpan;->getURL()Ljava/lang/String;
 HSPLandroid/text/style/UnderlineSpan;-><init>()V
+HSPLandroid/text/style/UnderlineSpan;->getSpanTypeIdInternal()I
+HSPLandroid/text/style/UnderlineSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/UnderlineSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+HSPLandroid/text/util/-$$Lambda$Linkify$7J_-cMhIF2bcttjkxA2jDFP8sKw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/text/util/Linkify$4;-><init>()V
+HSPLandroid/text/util/Linkify;->addLinks(Landroid/text/Spannable;I)Z
+HSPLandroid/text/util/Linkify;->addLinks(Landroid/text/Spannable;ILandroid/content/Context;Ljava/util/function/Function;)Z
+HSPLandroid/text/util/Linkify;->applyLink(Ljava/lang/String;IILandroid/text/Spannable;Ljava/util/function/Function;)V
+HSPLandroid/text/util/Linkify;->containsUnsupportedCharacters(Ljava/lang/String;)Z
+HSPLandroid/text/util/Linkify;->gatherLinks(Ljava/util/ArrayList;Landroid/text/Spannable;Ljava/util/regex/Pattern;[Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)V
+HSPLandroid/text/util/Linkify;->gatherMapLinks(Ljava/util/ArrayList;Landroid/text/Spannable;)V
+HSPLandroid/text/util/Linkify;->gatherTelLinks(Ljava/util/ArrayList;Landroid/text/Spannable;Landroid/content/Context;)V
+HSPLandroid/text/util/Linkify;->lambda$static$0(Ljava/lang/String;)Landroid/text/style/URLSpan;
+HSPLandroid/text/util/Linkify;->makeUrl(Ljava/lang/String;[Ljava/lang/String;Ljava/util/regex/Matcher;Landroid/text/util/Linkify$TransformFilter;)Ljava/lang/String;
+HSPLandroid/text/util/Linkify;->pruneOverlaps(Ljava/util/ArrayList;)V
+HSPLandroid/text/util/Rfc822Token;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/text/util/Rfc822Token;->getAddress()Ljava/lang/String;
+HSPLandroid/text/util/Rfc822Tokenizer;->crunch(Ljava/lang/StringBuilder;)V
+HSPLandroid/text/util/Rfc822Tokenizer;->tokenize(Ljava/lang/CharSequence;)[Landroid/text/util/Rfc822Token;
+HSPLandroid/text/util/Rfc822Tokenizer;->tokenize(Ljava/lang/CharSequence;Ljava/util/Collection;)V
 HSPLandroid/transition/ChangeBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/transition/ChangeBounds;->setResizeClip(Z)V
 HSPLandroid/transition/ChangeClipBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/transition/ChangeImageTransform;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/transition/ChangeTransform;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/transition/Fade$1;-><init>(Landroid/transition/Fade;Landroid/view/View;)V
+HSPLandroid/transition/Fade$1;->onTransitionEnd(Landroid/transition/Transition;)V
+HSPLandroid/transition/Fade$FadeAnimatorListener;-><init>(Landroid/view/View;)V
+HSPLandroid/transition/Fade$FadeAnimatorListener;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/transition/Fade$FadeAnimatorListener;->onAnimationStart(Landroid/animation/Animator;)V
 HSPLandroid/transition/Fade;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/transition/Fade;->captureStartValues(Landroid/transition/TransitionValues;)V
+HSPLandroid/transition/Fade;->createAnimation(Landroid/view/View;FF)Landroid/animation/Animator;
+HSPLandroid/transition/Fade;->getStartAlpha(Landroid/transition/TransitionValues;F)F
+HSPLandroid/transition/Fade;->onAppear(Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;
+HSPLandroid/transition/Fade;->onDisappear(Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;
+HSPLandroid/transition/Scene;-><init>(Landroid/view/ViewGroup;Landroid/view/View;)V
+HSPLandroid/transition/Scene;->enter()V
+HSPLandroid/transition/Scene;->getCurrentScene(Landroid/view/ViewGroup;)Landroid/transition/Scene;
+HSPLandroid/transition/Scene;->getSceneRoot()Landroid/view/ViewGroup;
+HSPLandroid/transition/Scene;->setCurrentScene(Landroid/view/ViewGroup;Landroid/transition/Scene;)V
+HSPLandroid/transition/Transition$2;-><init>(Landroid/transition/Transition;Landroid/util/ArrayMap;)V
+HSPLandroid/transition/Transition$2;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/transition/Transition$2;->onAnimationStart(Landroid/animation/Animator;)V
+HSPLandroid/transition/Transition$3;-><init>(Landroid/transition/Transition;)V
+HSPLandroid/transition/Transition$3;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/transition/Transition$AnimationInfo;-><init>(Landroid/view/View;Ljava/lang/String;Landroid/transition/Transition;Landroid/view/WindowId;Landroid/transition/TransitionValues;)V
+HSPLandroid/transition/Transition$EpicenterCallback;-><init>()V
+HSPLandroid/transition/Transition;-><init>()V
 HSPLandroid/transition/Transition;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/transition/Transition;->access$000(Landroid/transition/Transition;)Ljava/util/ArrayList;
+HSPLandroid/transition/Transition;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;
+HSPLandroid/transition/Transition;->addTarget(I)Landroid/transition/Transition;
+HSPLandroid/transition/Transition;->addTarget(Landroid/view/View;)Landroid/transition/Transition;
+HSPLandroid/transition/Transition;->addUnmatched(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+HSPLandroid/transition/Transition;->addViewValues(Landroid/transition/TransitionValuesMaps;Landroid/view/View;Landroid/transition/TransitionValues;)V
+HSPLandroid/transition/Transition;->animate(Landroid/animation/Animator;)V
+HSPLandroid/transition/Transition;->captureHierarchy(Landroid/view/View;Z)V
+HSPLandroid/transition/Transition;->capturePropagationValues(Landroid/transition/TransitionValues;)V
+HSPLandroid/transition/Transition;->captureValues(Landroid/view/ViewGroup;Z)V
+HSPLandroid/transition/Transition;->clearValues(Z)V
+HSPLandroid/transition/Transition;->clone()Landroid/transition/Transition;
+HSPLandroid/transition/Transition;->createAnimators(Landroid/view/ViewGroup;Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+HSPLandroid/transition/Transition;->end()V
+HSPLandroid/transition/Transition;->getDuration()J
+HSPLandroid/transition/Transition;->getEpicenter()Landroid/graphics/Rect;
+HSPLandroid/transition/Transition;->getInterpolator()Landroid/animation/TimeInterpolator;
+HSPLandroid/transition/Transition;->getName()Ljava/lang/String;
+HSPLandroid/transition/Transition;->getRunningAnimators()Landroid/util/ArrayMap;
+HSPLandroid/transition/Transition;->getStartDelay()J
+HSPLandroid/transition/Transition;->isValidTarget(Landroid/view/View;)Z
+HSPLandroid/transition/Transition;->matchIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/SparseArray;Landroid/util/SparseArray;)V
+HSPLandroid/transition/Transition;->matchInstances(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+HSPLandroid/transition/Transition;->matchItemIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;)V
+HSPLandroid/transition/Transition;->matchNames(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+HSPLandroid/transition/Transition;->matchStartAndEnd(Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;)V
+HSPLandroid/transition/Transition;->playTransition(Landroid/view/ViewGroup;)V
+HSPLandroid/transition/Transition;->removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;
+HSPLandroid/transition/Transition;->runAnimator(Landroid/animation/Animator;Landroid/util/ArrayMap;)V
+HSPLandroid/transition/Transition;->runAnimators()V
 HSPLandroid/transition/Transition;->setDuration(J)Landroid/transition/Transition;
+HSPLandroid/transition/Transition;->setEpicenterCallback(Landroid/transition/Transition$EpicenterCallback;)V
+HSPLandroid/transition/Transition;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/transition/Transition;
+HSPLandroid/transition/Transition;->start()V
 HSPLandroid/transition/TransitionInflater;-><init>(Landroid/content/Context;)V
+HSPLandroid/transition/TransitionInflater;->createCustom(Landroid/util/AttributeSet;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
 HSPLandroid/transition/TransitionInflater;->createTransitionFromXml(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/transition/Transition;)Landroid/transition/Transition;
 HSPLandroid/transition/TransitionInflater;->from(Landroid/content/Context;)Landroid/transition/TransitionInflater;
 HSPLandroid/transition/TransitionInflater;->inflateTransition(I)Landroid/transition/Transition;
+HSPLandroid/transition/TransitionListenerAdapter;-><init>()V
+HSPLandroid/transition/TransitionListenerAdapter;->onTransitionStart(Landroid/transition/Transition;)V
+HSPLandroid/transition/TransitionManager$MultiListener$1;-><init>(Landroid/transition/TransitionManager$MultiListener;Landroid/util/ArrayMap;)V
+HSPLandroid/transition/TransitionManager$MultiListener$1;->onTransitionEnd(Landroid/transition/Transition;)V
+HSPLandroid/transition/TransitionManager$MultiListener;-><init>(Landroid/transition/Transition;Landroid/view/ViewGroup;)V
+HSPLandroid/transition/TransitionManager$MultiListener;->onPreDraw()Z
+HSPLandroid/transition/TransitionManager$MultiListener;->removeListeners()V
 HSPLandroid/transition/TransitionManager;-><init>()V
+HSPLandroid/transition/TransitionManager;->access$000()Ljava/util/ArrayList;
+HSPLandroid/transition/TransitionManager;->access$100()Landroid/util/ArrayMap;
+HSPLandroid/transition/TransitionManager;->beginDelayedTransition(Landroid/view/ViewGroup;Landroid/transition/Transition;)V
 HSPLandroid/transition/TransitionManager;->endTransitions(Landroid/view/ViewGroup;)V
 HSPLandroid/transition/TransitionManager;->getRunningTransitions()Landroid/util/ArrayMap;
+HSPLandroid/transition/TransitionManager;->sceneChangeRunTransition(Landroid/view/ViewGroup;Landroid/transition/Transition;)V
+HSPLandroid/transition/TransitionManager;->sceneChangeSetup(Landroid/view/ViewGroup;Landroid/transition/Transition;)V
+HSPLandroid/transition/TransitionSet$TransitionSetListener;-><init>(Landroid/transition/TransitionSet;)V
+HSPLandroid/transition/TransitionSet$TransitionSetListener;->onTransitionEnd(Landroid/transition/Transition;)V
+HSPLandroid/transition/TransitionSet$TransitionSetListener;->onTransitionStart(Landroid/transition/Transition;)V
+HSPLandroid/transition/TransitionSet;-><init>()V
 HSPLandroid/transition/TransitionSet;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/transition/TransitionSet;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;
+HSPLandroid/transition/TransitionSet;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/TransitionSet;
+HSPLandroid/transition/TransitionSet;->addTarget(Landroid/view/View;)Landroid/transition/Transition;
+HSPLandroid/transition/TransitionSet;->addTarget(Landroid/view/View;)Landroid/transition/TransitionSet;
 HSPLandroid/transition/TransitionSet;->addTransition(Landroid/transition/Transition;)Landroid/transition/TransitionSet;
 HSPLandroid/transition/TransitionSet;->addTransitionInternal(Landroid/transition/Transition;)V
+HSPLandroid/transition/TransitionSet;->captureEndValues(Landroid/transition/TransitionValues;)V
+HSPLandroid/transition/TransitionSet;->capturePropagationValues(Landroid/transition/TransitionValues;)V
+HSPLandroid/transition/TransitionSet;->captureStartValues(Landroid/transition/TransitionValues;)V
+HSPLandroid/transition/TransitionSet;->clone()Landroid/transition/Transition;
+HSPLandroid/transition/TransitionSet;->clone()Landroid/transition/TransitionSet;
+HSPLandroid/transition/TransitionSet;->createAnimators(Landroid/view/ViewGroup;Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
 HSPLandroid/transition/TransitionSet;->getTransitionCount()I
+HSPLandroid/transition/TransitionSet;->removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;
+HSPLandroid/transition/TransitionSet;->removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/TransitionSet;
+HSPLandroid/transition/TransitionSet;->runAnimators()V
+HSPLandroid/transition/TransitionSet;->setDuration(J)Landroid/transition/TransitionSet;
+HSPLandroid/transition/TransitionSet;->setEpicenterCallback(Landroid/transition/Transition$EpicenterCallback;)V
+HSPLandroid/transition/TransitionSet;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/transition/TransitionSet;
 HSPLandroid/transition/TransitionSet;->setOrdering(I)Landroid/transition/TransitionSet;
+HSPLandroid/transition/TransitionSet;->setupStartEndListeners()V
+HSPLandroid/transition/TransitionValues;-><init>(Landroid/view/View;)V
 HSPLandroid/transition/TransitionValuesMaps;-><init>()V
+HSPLandroid/transition/Visibility$DisappearListener;-><init>(Landroid/view/View;IZ)V
+HSPLandroid/transition/Visibility$DisappearListener;->hideViewWhenNotCanceled()V
+HSPLandroid/transition/Visibility$DisappearListener;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/transition/Visibility$DisappearListener;->onAnimationStart(Landroid/animation/Animator;)V
+HSPLandroid/transition/Visibility$DisappearListener;->onTransitionEnd(Landroid/transition/Transition;)V
+HSPLandroid/transition/Visibility$DisappearListener;->suppressLayout(Z)V
+HSPLandroid/transition/Visibility$VisibilityInfo;-><init>()V
+HSPLandroid/transition/Visibility$VisibilityInfo;-><init>(Landroid/transition/Visibility$1;)V
+HSPLandroid/transition/Visibility;-><init>()V
 HSPLandroid/transition/Visibility;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/transition/Visibility;->captureEndValues(Landroid/transition/TransitionValues;)V
+HSPLandroid/transition/Visibility;->captureStartValues(Landroid/transition/TransitionValues;)V
+HSPLandroid/transition/Visibility;->captureValues(Landroid/transition/TransitionValues;)V
+HSPLandroid/transition/Visibility;->createAnimator(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;
 HSPLandroid/transition/Visibility;->getMode()I
+HSPLandroid/transition/Visibility;->getTransitionProperties()[Ljava/lang/String;
+HSPLandroid/transition/Visibility;->getVisibilityChangeInfo(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/transition/Visibility$VisibilityInfo;
+HSPLandroid/transition/Visibility;->isTransitionRequired(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Z
+HSPLandroid/transition/Visibility;->onAppear(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;ILandroid/transition/TransitionValues;I)Landroid/animation/Animator;
+HSPLandroid/transition/Visibility;->onDisappear(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;ILandroid/transition/TransitionValues;I)Landroid/animation/Animator;
 HSPLandroid/transition/Visibility;->setMode(I)V
 HSPLandroid/util/AndroidException;-><init>()V
 HSPLandroid/util/AndroidException;-><init>(Ljava/lang/String;)V
@@ -11497,8 +23100,10 @@
 HSPLandroid/util/AndroidRuntimeException;-><init>(Ljava/lang/String;)V
 HSPLandroid/util/ArrayMap$1;-><init>(Landroid/util/ArrayMap;)V
 HSPLandroid/util/ArrayMap$1;->colGetEntry(II)Ljava/lang/Object;
+HSPLandroid/util/ArrayMap$1;->colGetMap()Ljava/util/Map;
 HSPLandroid/util/ArrayMap$1;->colGetSize()I
 HSPLandroid/util/ArrayMap$1;->colIndexOfKey(Ljava/lang/Object;)I
+HSPLandroid/util/ArrayMap$1;->colIndexOfValue(Ljava/lang/Object;)I
 HSPLandroid/util/ArrayMap$1;->colRemoveAt(I)V
 HSPLandroid/util/ArrayMap;-><init>()V
 HSPLandroid/util/ArrayMap;-><init>(I)V
@@ -11508,7 +23113,9 @@
 HSPLandroid/util/ArrayMap;->append(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLandroid/util/ArrayMap;->binarySearchHashes([III)I
 HSPLandroid/util/ArrayMap;->clear()V
+HSPLandroid/util/ArrayMap;->containsAll(Ljava/util/Collection;)Z
 HSPLandroid/util/ArrayMap;->containsKey(Ljava/lang/Object;)Z
+HSPLandroid/util/ArrayMap;->containsValue(Ljava/lang/Object;)Z
 HSPLandroid/util/ArrayMap;->ensureCapacity(I)V
 HSPLandroid/util/ArrayMap;->entrySet()Ljava/util/Set;
 HSPLandroid/util/ArrayMap;->equals(Ljava/lang/Object;)Z
@@ -11516,6 +23123,7 @@
 HSPLandroid/util/ArrayMap;->freeArrays([I[Ljava/lang/Object;I)V
 HSPLandroid/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/util/ArrayMap;->getCollection()Landroid/util/MapCollections;
+HSPLandroid/util/ArrayMap;->hashCode()I
 HSPLandroid/util/ArrayMap;->indexOf(Ljava/lang/Object;I)I
 HSPLandroid/util/ArrayMap;->indexOfKey(Ljava/lang/Object;)I
 HSPLandroid/util/ArrayMap;->indexOfNull()I
@@ -11528,6 +23136,8 @@
 HSPLandroid/util/ArrayMap;->putAll(Ljava/util/Map;)V
 HSPLandroid/util/ArrayMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/util/ArrayMap;->removeAt(I)Ljava/lang/Object;
+HSPLandroid/util/ArrayMap;->retainAll(Ljava/util/Collection;)Z
+HSPLandroid/util/ArrayMap;->setValueAt(ILjava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/util/ArrayMap;->size()I
 HSPLandroid/util/ArrayMap;->toString()Ljava/lang/String;
 HSPLandroid/util/ArrayMap;->validate()V
@@ -11536,11 +23146,13 @@
 HSPLandroid/util/ArraySet$1;-><init>(Landroid/util/ArraySet;)V
 HSPLandroid/util/ArraySet$1;->colGetEntry(II)Ljava/lang/Object;
 HSPLandroid/util/ArraySet$1;->colGetSize()I
+HSPLandroid/util/ArraySet$1;->colRemoveAt(I)V
 HSPLandroid/util/ArraySet;-><init>()V
 HSPLandroid/util/ArraySet;-><init>(I)V
 HSPLandroid/util/ArraySet;-><init>(IZ)V
 HSPLandroid/util/ArraySet;-><init>(Landroid/util/ArraySet;)V
 HSPLandroid/util/ArraySet;-><init>(Ljava/util/Collection;)V
+HSPLandroid/util/ArraySet;-><init>([Ljava/lang/Object;)V
 HSPLandroid/util/ArraySet;->add(Ljava/lang/Object;)Z
 HSPLandroid/util/ArraySet;->addAll(Landroid/util/ArraySet;)V
 HSPLandroid/util/ArraySet;->addAll(Ljava/util/Collection;)Z
@@ -11553,6 +23165,7 @@
 HSPLandroid/util/ArraySet;->equals(Ljava/lang/Object;)Z
 HSPLandroid/util/ArraySet;->freeArrays([I[Ljava/lang/Object;I)V
 HSPLandroid/util/ArraySet;->getCollection()Landroid/util/MapCollections;
+HSPLandroid/util/ArraySet;->getNewShrunkenSize()I
 HSPLandroid/util/ArraySet;->hashCode()I
 HSPLandroid/util/ArraySet;->indexOf(Ljava/lang/Object;)I
 HSPLandroid/util/ArraySet;->indexOf(Ljava/lang/Object;I)I
@@ -11560,14 +23173,30 @@
 HSPLandroid/util/ArraySet;->isEmpty()Z
 HSPLandroid/util/ArraySet;->iterator()Ljava/util/Iterator;
 HSPLandroid/util/ArraySet;->remove(Ljava/lang/Object;)Z
+HSPLandroid/util/ArraySet;->removeAll(Landroid/util/ArraySet;)Z
 HSPLandroid/util/ArraySet;->removeAll(Ljava/util/Collection;)Z
 HSPLandroid/util/ArraySet;->removeAt(I)Ljava/lang/Object;
+HSPLandroid/util/ArraySet;->removeIf(Ljava/util/function/Predicate;)Z
+HSPLandroid/util/ArraySet;->retainAll(Ljava/util/Collection;)Z
 HSPLandroid/util/ArraySet;->shouldShrink()Z
 HSPLandroid/util/ArraySet;->size()I
 HSPLandroid/util/ArraySet;->toArray()[Ljava/lang/Object;
 HSPLandroid/util/ArraySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
+HSPLandroid/util/ArraySet;->toString()Ljava/lang/String;
 HSPLandroid/util/ArraySet;->valueAt(I)Ljava/lang/Object;
 HSPLandroid/util/ArraySet;->valueAtUnchecked(I)Ljava/lang/Object;
+HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;)V
+HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
+HSPLandroid/util/AtomicFile;->delete()V
+HSPLandroid/util/AtomicFile;->exists()Z
+HSPLandroid/util/AtomicFile;->failWrite(Ljava/io/FileOutputStream;)V
+HSPLandroid/util/AtomicFile;->finishWrite(Ljava/io/FileOutputStream;)V
+HSPLandroid/util/AtomicFile;->getBaseFile()Ljava/io/File;
+HSPLandroid/util/AtomicFile;->getLastModifiedTime()J
+HSPLandroid/util/AtomicFile;->openRead()Ljava/io/FileInputStream;
+HSPLandroid/util/AtomicFile;->readFully()[B
+HSPLandroid/util/AtomicFile;->startWrite()Ljava/io/FileOutputStream;
+HSPLandroid/util/AtomicFile;->startWrite(J)Ljava/io/FileOutputStream;
 HSPLandroid/util/Base64$Coder;-><init>()V
 HSPLandroid/util/Base64$Decoder;-><init>(I[B)V
 HSPLandroid/util/Base64$Decoder;->process([BIIZ)Z
@@ -11580,25 +23209,55 @@
 HSPLandroid/util/Base64;->encode([BIII)[B
 HSPLandroid/util/Base64;->encodeToString([BI)Ljava/lang/String;
 HSPLandroid/util/Base64;->encodeToString([BIII)Ljava/lang/String;
+HSPLandroid/util/CloseGuard;-><init>()V
+HSPLandroid/util/CloseGuard;->open(Ljava/lang/String;)V
 HSPLandroid/util/ContainerHelpers;->binarySearch([III)I
 HSPLandroid/util/ContainerHelpers;->binarySearch([JIJ)I
+HSPLandroid/util/DataUnit$5;->toBytes(J)J
+HSPLandroid/util/DebugUtils;->buildShortClassTag(Ljava/lang/Object;Ljava/lang/StringBuilder;)V
 HSPLandroid/util/DebugUtils;->constNameWithoutPrefix(Ljava/lang/String;Ljava/lang/reflect/Field;)Ljava/lang/String;
 HSPLandroid/util/DebugUtils;->flagsToString(Ljava/lang/Class;Ljava/lang/String;I)Ljava/lang/String;
+HSPLandroid/util/DebugUtils;->valueToString(Ljava/lang/Class;Ljava/lang/String;I)Ljava/lang/String;
 HSPLandroid/util/DisplayMetrics;-><init>()V
+HSPLandroid/util/DisplayMetrics;->equalsPhysical(Landroid/util/DisplayMetrics;)Z
 HSPLandroid/util/DisplayMetrics;->setTo(Landroid/util/DisplayMetrics;)V
 HSPLandroid/util/DisplayMetrics;->setToDefaults()V
+HSPLandroid/util/DisplayMetrics;->toString()Ljava/lang/String;
+HSPLandroid/util/EventLog$Event;-><init>([B)V
+HSPLandroid/util/EventLog$Event;->decodeObject()Ljava/lang/Object;
+HSPLandroid/util/EventLog$Event;->getData()Ljava/lang/Object;
+HSPLandroid/util/EventLog$Event;->getProcessId()I
+HSPLandroid/util/EventLog$Event;->getTag()I
+HSPLandroid/util/EventLog$Event;->getThreadId()I
+HSPLandroid/util/EventLog$Event;->getTimeNanos()J
+HSPLandroid/util/EventLog$Event;->getUid()I
+HSPLandroid/util/EventLog;->getTagCode(Ljava/lang/String;)I
+HSPLandroid/util/EventLog;->readTagsFile()V
 HSPLandroid/util/ExceptionUtils;->appendCause(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
 HSPLandroid/util/ExceptionUtils;->getRootCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
+HSPLandroid/util/FastImmutableArraySet$FastIterator;->hasNext()Z
+HSPLandroid/util/FastImmutableArraySet$FastIterator;->next()Ljava/lang/Object;
+HSPLandroid/util/FastImmutableArraySet;-><init>([Ljava/lang/Object;)V
+HSPLandroid/util/FastImmutableArraySet;->iterator()Ljava/util/Iterator;
+HSPLandroid/util/FeatureFlagUtils;->getAllFeatureFlags()Ljava/util/Map;
+HSPLandroid/util/FeatureFlagUtils;->isEnabled(Landroid/content/Context;Ljava/lang/String;)Z
 HSPLandroid/util/FloatProperty;-><init>(Ljava/lang/String;)V
+HSPLandroid/util/FloatProperty;->set(Ljava/lang/Object;Ljava/lang/Float;)V
+HSPLandroid/util/FloatProperty;->set(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLandroid/util/IconDrawableFactory;->newInstance(Landroid/content/Context;)Landroid/util/IconDrawableFactory;
 HSPLandroid/util/IntArray;-><init>()V
 HSPLandroid/util/IntArray;-><init>(I)V
 HSPLandroid/util/IntArray;->add(I)V
 HSPLandroid/util/IntArray;->add(II)V
+HSPLandroid/util/IntArray;->addAll(Landroid/util/IntArray;)V
+HSPLandroid/util/IntArray;->binarySearch(I)I
 HSPLandroid/util/IntArray;->clear()V
 HSPLandroid/util/IntArray;->ensureCapacity(I)V
 HSPLandroid/util/IntArray;->get(I)I
+HSPLandroid/util/IntArray;->indexOf(I)I
 HSPLandroid/util/IntArray;->remove(I)V
 HSPLandroid/util/IntArray;->size()I
+HSPLandroid/util/IntArray;->toArray()[I
 HSPLandroid/util/IntProperty;-><init>(Ljava/lang/String;)V
 HSPLandroid/util/JsonReader;-><init>(Ljava/io/Reader;)V
 HSPLandroid/util/JsonReader;->advance()Landroid/util/JsonToken;
@@ -11620,8 +23279,47 @@
 HSPLandroid/util/JsonReader;->peekStack()Landroid/util/JsonScope;
 HSPLandroid/util/JsonReader;->pop()Landroid/util/JsonScope;
 HSPLandroid/util/JsonReader;->push(Landroid/util/JsonScope;)V
+HSPLandroid/util/JsonReader;->readEscapeCharacter()C
 HSPLandroid/util/JsonReader;->readLiteral()Landroid/util/JsonToken;
 HSPLandroid/util/JsonReader;->replaceTop(Landroid/util/JsonScope;)V
+HSPLandroid/util/JsonReader;->skipValue()V
+HSPLandroid/util/JsonWriter;-><init>(Ljava/io/Writer;)V
+HSPLandroid/util/JsonWriter;->beforeName()V
+HSPLandroid/util/JsonWriter;->beforeValue(Z)V
+HSPLandroid/util/JsonWriter;->beginArray()Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->beginObject()Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->close()V
+HSPLandroid/util/JsonWriter;->close(Landroid/util/JsonScope;Landroid/util/JsonScope;Ljava/lang/String;)Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->endArray()Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->endObject()Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->name(Ljava/lang/String;)Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->newline()V
+HSPLandroid/util/JsonWriter;->open(Landroid/util/JsonScope;Ljava/lang/String;)Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->peek()Landroid/util/JsonScope;
+HSPLandroid/util/JsonWriter;->replaceTop(Landroid/util/JsonScope;)V
+HSPLandroid/util/JsonWriter;->string(Ljava/lang/String;)V
+HSPLandroid/util/JsonWriter;->value(J)Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->value(Ljava/lang/String;)Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->value(Z)Landroid/util/JsonWriter;
+HSPLandroid/util/KeyValueListParser$IntValue;-><init>(Ljava/lang/String;I)V
+HSPLandroid/util/KeyValueListParser$IntValue;->getValue()I
+HSPLandroid/util/KeyValueListParser$IntValue;->parse(Landroid/util/KeyValueListParser;)V
+HSPLandroid/util/KeyValueListParser;-><init>(C)V
+HSPLandroid/util/KeyValueListParser;->getBoolean(Ljava/lang/String;Z)Z
+HSPLandroid/util/KeyValueListParser;->getDurationMillis(Ljava/lang/String;J)J
+HSPLandroid/util/KeyValueListParser;->getFloat(Ljava/lang/String;F)F
+HSPLandroid/util/KeyValueListParser;->getInt(Ljava/lang/String;I)I
+HSPLandroid/util/KeyValueListParser;->getIntArray(Ljava/lang/String;[I)[I
+HSPLandroid/util/KeyValueListParser;->getLong(Ljava/lang/String;J)J
+HSPLandroid/util/KeyValueListParser;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/util/KeyValueListParser;->setString(Ljava/lang/String;)V
+HSPLandroid/util/KeyValueSettingObserver$SettingObserver;-><init>(Landroid/util/KeyValueSettingObserver;Landroid/os/Handler;)V
+HSPLandroid/util/KeyValueSettingObserver$SettingObserver;-><init>(Landroid/util/KeyValueSettingObserver;Landroid/os/Handler;Landroid/util/KeyValueSettingObserver$1;)V
+HSPLandroid/util/KeyValueSettingObserver;-><init>(Landroid/os/Handler;Landroid/content/ContentResolver;Landroid/net/Uri;)V
+HSPLandroid/util/KeyValueSettingObserver;->setParserValue()V
+HSPLandroid/util/KeyValueSettingObserver;->start()V
+HSPLandroid/util/LauncherIcons;-><init>(Landroid/content/Context;)V
+HSPLandroid/util/LauncherIcons;->getBadgedDrawable(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/drawable/Drawable;
 HSPLandroid/util/LocalLog;-><init>(I)V
 HSPLandroid/util/LocalLog;-><init>(IZ)V
 HSPLandroid/util/LocalLog;->append(Ljava/lang/String;)V
@@ -11645,26 +23343,43 @@
 HSPLandroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+HSPLandroid/util/Log;->w(Ljava/lang/String;Ljava/lang/Throwable;)I
 HSPLandroid/util/Log;->wtf(ILjava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;ZZ)I
+HSPLandroid/util/Log;->wtf(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/util/Log;->wtf(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
 HSPLandroid/util/LogPrinter;-><init>(ILjava/lang/String;)V
 HSPLandroid/util/LongArray;-><init>()V
 HSPLandroid/util/LongArray;-><init>(I)V
 HSPLandroid/util/LongArray;->add(IJ)V
 HSPLandroid/util/LongArray;->add(J)V
+HSPLandroid/util/LongArray;->clear()V
 HSPLandroid/util/LongArray;->ensureCapacity(I)V
 HSPLandroid/util/LongArray;->get(I)J
 HSPLandroid/util/LongArray;->size()I
+HSPLandroid/util/LongArray;->toArray()[J
+HSPLandroid/util/LongArrayQueue;-><init>()V
+HSPLandroid/util/LongArrayQueue;-><init>(I)V
+HSPLandroid/util/LongArrayQueue;->addLast(J)V
+HSPLandroid/util/LongArrayQueue;->get(I)J
+PLandroid/util/LongArrayQueue;->grow()V
+HPLandroid/util/LongArrayQueue;->peekFirst()J
+HPLandroid/util/LongArrayQueue;->peekLast()J
+HPLandroid/util/LongArrayQueue;->removeFirst()J
+HSPLandroid/util/LongArrayQueue;->size()I
 HSPLandroid/util/LongSparseArray;-><init>()V
 HSPLandroid/util/LongSparseArray;-><init>(I)V
+HSPLandroid/util/LongSparseArray;->append(JLjava/lang/Object;)V
 HSPLandroid/util/LongSparseArray;->clear()V
 HSPLandroid/util/LongSparseArray;->delete(J)V
 HSPLandroid/util/LongSparseArray;->gc()V
 HSPLandroid/util/LongSparseArray;->get(J)Ljava/lang/Object;
 HSPLandroid/util/LongSparseArray;->get(JLjava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/util/LongSparseArray;->indexOfKey(J)I
 HSPLandroid/util/LongSparseArray;->keyAt(I)J
 HSPLandroid/util/LongSparseArray;->put(JLjava/lang/Object;)V
 HSPLandroid/util/LongSparseArray;->remove(J)V
 HSPLandroid/util/LongSparseArray;->removeAt(I)V
+HSPLandroid/util/LongSparseArray;->setValueAt(ILjava/lang/Object;)V
 HSPLandroid/util/LongSparseArray;->size()I
 HSPLandroid/util/LongSparseArray;->valueAt(I)Ljava/lang/Object;
 HSPLandroid/util/LongSparseLongArray;-><init>()V
@@ -11672,9 +23387,14 @@
 HSPLandroid/util/LongSparseLongArray;->append(JJ)V
 HSPLandroid/util/LongSparseLongArray;->clear()V
 HSPLandroid/util/LongSparseLongArray;->clone()Landroid/util/LongSparseLongArray;
+HSPLandroid/util/LongSparseLongArray;->delete(J)V
+HSPLandroid/util/LongSparseLongArray;->get(J)J
 HSPLandroid/util/LongSparseLongArray;->get(JJ)J
 HSPLandroid/util/LongSparseLongArray;->indexOfKey(J)I
+HSPLandroid/util/LongSparseLongArray;->keyAt(I)J
 HSPLandroid/util/LongSparseLongArray;->put(JJ)V
+HSPLandroid/util/LongSparseLongArray;->removeAt(I)V
+HSPLandroid/util/LongSparseLongArray;->size()I
 HSPLandroid/util/LongSparseLongArray;->valueAt(I)J
 HSPLandroid/util/LruCache;-><init>(I)V
 HSPLandroid/util/LruCache;->create(Ljava/lang/Object;)Ljava/lang/Object;
@@ -11700,6 +23420,9 @@
 HSPLandroid/util/MapCollections$EntrySet;->size()I
 HSPLandroid/util/MapCollections$KeySet;-><init>(Landroid/util/MapCollections;)V
 HSPLandroid/util/MapCollections$KeySet;->contains(Ljava/lang/Object;)Z
+HSPLandroid/util/MapCollections$KeySet;->containsAll(Ljava/util/Collection;)Z
+HSPLandroid/util/MapCollections$KeySet;->equals(Ljava/lang/Object;)Z
+HSPLandroid/util/MapCollections$KeySet;->isEmpty()Z
 HSPLandroid/util/MapCollections$KeySet;->iterator()Ljava/util/Iterator;
 HSPLandroid/util/MapCollections$KeySet;->size()I
 HSPLandroid/util/MapCollections$KeySet;->toArray()[Ljava/lang/Object;
@@ -11710,52 +23433,117 @@
 HSPLandroid/util/MapCollections$MapIterator;->hasNext()Z
 HSPLandroid/util/MapCollections$MapIterator;->next()Ljava/lang/Object;
 HSPLandroid/util/MapCollections$MapIterator;->next()Ljava/util/Map$Entry;
+HSPLandroid/util/MapCollections$MapIterator;->remove()V
 HSPLandroid/util/MapCollections$ValuesCollection;-><init>(Landroid/util/MapCollections;)V
+HSPLandroid/util/MapCollections$ValuesCollection;->contains(Ljava/lang/Object;)Z
 HSPLandroid/util/MapCollections$ValuesCollection;->iterator()Ljava/util/Iterator;
 HSPLandroid/util/MapCollections$ValuesCollection;->size()I
 HSPLandroid/util/MapCollections$ValuesCollection;->toArray()[Ljava/lang/Object;
 HSPLandroid/util/MapCollections;-><init>()V
+HSPLandroid/util/MapCollections;->containsAllHelper(Ljava/util/Map;Ljava/util/Collection;)Z
+HSPLandroid/util/MapCollections;->equalsSetHelper(Ljava/util/Set;Ljava/lang/Object;)Z
 HSPLandroid/util/MapCollections;->getEntrySet()Ljava/util/Set;
 HSPLandroid/util/MapCollections;->getKeySet()Ljava/util/Set;
 HSPLandroid/util/MapCollections;->getValues()Ljava/util/Collection;
+HSPLandroid/util/MapCollections;->retainAllHelper(Ljava/util/Map;Ljava/util/Collection;)Z
 HSPLandroid/util/MapCollections;->toArrayHelper(I)[Ljava/lang/Object;
 HSPLandroid/util/MapCollections;->toArrayHelper([Ljava/lang/Object;I)[Ljava/lang/Object;
 HSPLandroid/util/MathUtils;->addOrThrow(II)I
 HSPLandroid/util/MathUtils;->constrain(FFF)F
 HSPLandroid/util/MathUtils;->constrain(III)I
+HSPLandroid/util/MathUtils;->constrain(JJJ)J
+HSPLandroid/util/MathUtils;->constrainedMap(FFFFF)F
+HSPLandroid/util/MathUtils;->exp(F)F
+HSPLandroid/util/MathUtils;->fitRect(Landroid/graphics/Rect;I)V
 HSPLandroid/util/MathUtils;->lerp(FFF)F
+HSPLandroid/util/MathUtils;->lerpInv(FFF)F
+HSPLandroid/util/MathUtils;->lerpInvSat(FFF)F
+HSPLandroid/util/MathUtils;->log(F)F
+HSPLandroid/util/MathUtils;->map(FFFFF)F
+HSPLandroid/util/MathUtils;->max(FF)F
+HSPLandroid/util/MathUtils;->norm(FFF)F
+HSPLandroid/util/MathUtils;->pow(FF)F
+HSPLandroid/util/MathUtils;->saturate(F)F
+HSPLandroid/util/MathUtils;->smoothStep(FFF)F
+HSPLandroid/util/MathUtils;->sq(F)F
+HSPLandroid/util/MathUtils;->sqrt(F)F
 HSPLandroid/util/MemoryIntArray$1;->createFromParcel(Landroid/os/Parcel;)Landroid/util/MemoryIntArray;
 HSPLandroid/util/MemoryIntArray$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/util/MemoryIntArray;-><init>(I)V
 HSPLandroid/util/MemoryIntArray;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/util/MemoryIntArray;-><init>(Landroid/os/Parcel;Landroid/util/MemoryIntArray$1;)V
+HSPLandroid/util/MemoryIntArray;->close()V
 HSPLandroid/util/MemoryIntArray;->enforceNotClosed()V
 HSPLandroid/util/MemoryIntArray;->enforceValidIndex(I)V
+HSPLandroid/util/MemoryIntArray;->enforceWritable()V
+HSPLandroid/util/MemoryIntArray;->finalize()V
 HSPLandroid/util/MemoryIntArray;->get(I)I
 HSPLandroid/util/MemoryIntArray;->isClosed()Z
+HSPLandroid/util/MemoryIntArray;->isWritable()Z
+HSPLandroid/util/MemoryIntArray;->set(II)V
 HSPLandroid/util/MemoryIntArray;->size()I
+HSPLandroid/util/MemoryIntArray;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/util/MergedConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/util/MergedConfiguration;
 HSPLandroid/util/MergedConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/util/MergedConfiguration;-><init>()V
+HSPLandroid/util/MergedConfiguration;-><init>(Landroid/content/res/Configuration;)V
+HSPLandroid/util/MergedConfiguration;-><init>(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
 HSPLandroid/util/MergedConfiguration;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/util/MergedConfiguration;-><init>(Landroid/os/Parcel;Landroid/util/MergedConfiguration$1;)V
+HPLandroid/util/MergedConfiguration;-><init>(Landroid/util/MergedConfiguration;)V
 HSPLandroid/util/MergedConfiguration;->equals(Ljava/lang/Object;)Z
 HSPLandroid/util/MergedConfiguration;->getGlobalConfiguration()Landroid/content/res/Configuration;
+HSPLandroid/util/MergedConfiguration;->getMergedConfiguration()Landroid/content/res/Configuration;
 HSPLandroid/util/MergedConfiguration;->getOverrideConfiguration()Landroid/content/res/Configuration;
 HSPLandroid/util/MergedConfiguration;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/util/MergedConfiguration;->setConfiguration(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
+HSPLandroid/util/MergedConfiguration;->setGlobalConfiguration(Landroid/content/res/Configuration;)V
+HSPLandroid/util/MergedConfiguration;->setTo(Landroid/util/MergedConfiguration;)V
 HSPLandroid/util/MergedConfiguration;->updateMergedConfig()V
+HSPLandroid/util/MergedConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/util/MutableBoolean;-><init>(Z)V
+HSPLandroid/util/MutableInt;-><init>(I)V
+HSPLandroid/util/MutableLong;-><init>(J)V
+HSPLandroid/util/NtpTrustedTime$1;-><init>(Landroid/util/NtpTrustedTime;)V
+PLandroid/util/NtpTrustedTime$1;->get()Landroid/net/ConnectivityManager;
+PLandroid/util/NtpTrustedTime$1;->get()Ljava/lang/Object;
+PLandroid/util/NtpTrustedTime$NtpConnectionInfo;-><init>(Ljava/lang/String;I)V
+PLandroid/util/NtpTrustedTime$NtpConnectionInfo;->getServer()Ljava/lang/String;
+PLandroid/util/NtpTrustedTime$NtpConnectionInfo;->getTimeoutMillis()I
+PLandroid/util/NtpTrustedTime$TimeResult;-><init>(JJJ)V
+HPLandroid/util/NtpTrustedTime$TimeResult;->currentTimeMillis()J
+HPLandroid/util/NtpTrustedTime$TimeResult;->getAgeMillis()J
+PLandroid/util/NtpTrustedTime$TimeResult;->getCertaintyMillis()J
+PLandroid/util/NtpTrustedTime$TimeResult;->getElapsedRealtimeMillis()J
+PLandroid/util/NtpTrustedTime$TimeResult;->getTimeMillis()J
+HSPLandroid/util/NtpTrustedTime;-><init>(Landroid/content/Context;)V
+PLandroid/util/NtpTrustedTime;->access$000(Landroid/util/NtpTrustedTime;)Landroid/content/Context;
+PLandroid/util/NtpTrustedTime;->forceRefresh()Z
+HSPLandroid/util/NtpTrustedTime;->getCachedTimeResult()Landroid/util/NtpTrustedTime$TimeResult;
+HSPLandroid/util/NtpTrustedTime;->getInstance(Landroid/content/Context;)Landroid/util/NtpTrustedTime;
+PLandroid/util/NtpTrustedTime;->getNtpConnectionInfo()Landroid/util/NtpTrustedTime$NtpConnectionInfo;
+HSPLandroid/util/PackageUtils;->computeSha256Digest([B)Ljava/lang/String;
+HSPLandroid/util/PackageUtils;->computeSha256DigestBytes([B)[B
 HSPLandroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLandroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
 HSPLandroid/util/Pair;->equals(Ljava/lang/Object;)Z
 HSPLandroid/util/Pair;->hashCode()I
+HSPLandroid/util/Pair;->toString()Ljava/lang/String;
+HSPLandroid/util/PathParser$PathData;-><init>()V
 HSPLandroid/util/PathParser$PathData;-><init>(Landroid/util/PathParser$PathData;)V
 HSPLandroid/util/PathParser$PathData;-><init>(Ljava/lang/String;)V
 HSPLandroid/util/PathParser$PathData;->finalize()V
+HSPLandroid/util/PathParser$PathData;->getNativePtr()J
+HSPLandroid/util/PathParser$PathData;->setPathData(Landroid/util/PathParser$PathData;)V
 HSPLandroid/util/PathParser;->access$000()J
 HSPLandroid/util/PathParser;->access$100(J)J
 HSPLandroid/util/PathParser;->access$200(Ljava/lang/String;I)J
+HSPLandroid/util/PathParser;->access$300(JJ)V
 HSPLandroid/util/PathParser;->access$400(J)V
+HSPLandroid/util/PathParser;->canMorph(Landroid/util/PathParser$PathData;Landroid/util/PathParser$PathData;)Z
 HSPLandroid/util/PathParser;->createPathFromPathData(Ljava/lang/String;)Landroid/graphics/Path;
+HSPLandroid/util/PathParser;->interpolatePathData(Landroid/util/PathParser$PathData;Landroid/util/PathParser$PathData;Landroid/util/PathParser$PathData;F)Z
+HSPLandroid/util/Patterns;-><clinit>()V
 HSPLandroid/util/Pools$SimplePool;-><init>(I)V
 HSPLandroid/util/Pools$SimplePool;->acquire()Ljava/lang/Object;
 HSPLandroid/util/Pools$SimplePool;->isInPool(Ljava/lang/Object;)Z
@@ -11764,12 +23552,17 @@
 HSPLandroid/util/Pools$SynchronizedPool;-><init>(ILjava/lang/Object;)V
 HSPLandroid/util/Pools$SynchronizedPool;->acquire()Ljava/lang/Object;
 HSPLandroid/util/Pools$SynchronizedPool;->release(Ljava/lang/Object;)Z
+HSPLandroid/util/PrefixPrinter;-><init>(Landroid/util/Printer;Ljava/lang/String;)V
+HSPLandroid/util/PrefixPrinter;->create(Landroid/util/Printer;Ljava/lang/String;)Landroid/util/Printer;
+HSPLandroid/util/PrefixPrinter;->println(Ljava/lang/String;)V
 HSPLandroid/util/PrintWriterPrinter;-><init>(Ljava/io/PrintWriter;)V
+HSPLandroid/util/PrintWriterPrinter;->println(Ljava/lang/String;)V
 HSPLandroid/util/Property;-><init>(Ljava/lang/Class;Ljava/lang/String;)V
 HSPLandroid/util/Property;->getName()Ljava/lang/String;
 HSPLandroid/util/Property;->getType()Ljava/lang/Class;
 HSPLandroid/util/Range;-><init>(Ljava/lang/Comparable;Ljava/lang/Comparable;)V
 HSPLandroid/util/Range;->clamp(Ljava/lang/Comparable;)Ljava/lang/Comparable;
+HSPLandroid/util/Range;->contains(Ljava/lang/Comparable;)Z
 HSPLandroid/util/Range;->create(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
 HSPLandroid/util/Range;->getLower()Ljava/lang/Comparable;
 HSPLandroid/util/Range;->getUpper()Ljava/lang/Comparable;
@@ -11783,37 +23576,77 @@
 HSPLandroid/util/Rational;->isNaN()Z
 HSPLandroid/util/Rational;->isNegInf()Z
 HSPLandroid/util/Rational;->isPosInf()Z
+HSPLandroid/util/RecurrenceRule$RecurringIterator;-><init>(Landroid/util/RecurrenceRule;)V
+HSPLandroid/util/RecurrenceRule$RecurringIterator;->hasNext()Z
+HSPLandroid/util/RecurrenceRule$RecurringIterator;->next()Landroid/util/Range;
+HSPLandroid/util/RecurrenceRule$RecurringIterator;->next()Ljava/lang/Object;
+HSPLandroid/util/RecurrenceRule$RecurringIterator;->roundBoundaryTime(Ljava/time/ZonedDateTime;)Ljava/time/ZonedDateTime;
+HSPLandroid/util/RecurrenceRule$RecurringIterator;->updateCycle()V
+HSPLandroid/util/RecurrenceRule;-><init>(Ljava/time/ZonedDateTime;Ljava/time/ZonedDateTime;Ljava/time/Period;)V
+HSPLandroid/util/RecurrenceRule;->access$100()Z
+HSPLandroid/util/RecurrenceRule;->convertPeriod(Ljava/lang/String;)Ljava/time/Period;
+HSPLandroid/util/RecurrenceRule;->convertPeriod(Ljava/time/Period;)Ljava/lang/String;
+HSPLandroid/util/RecurrenceRule;->convertZonedDateTime(Ljava/lang/String;)Ljava/time/ZonedDateTime;
+HSPLandroid/util/RecurrenceRule;->convertZonedDateTime(Ljava/time/ZonedDateTime;)Ljava/lang/String;
+HSPLandroid/util/RecurrenceRule;->cycleIterator()Ljava/util/Iterator;
+HSPLandroid/util/RecurrenceRule;->isMonthly()Z
+HSPLandroid/util/Singleton;-><init>()V
 HSPLandroid/util/Singleton;->get()Ljava/lang/Object;
 HSPLandroid/util/Size;-><init>(II)V
+HSPLandroid/util/Size;->equals(Ljava/lang/Object;)Z
 HSPLandroid/util/Size;->getHeight()I
 HSPLandroid/util/Size;->getWidth()I
 HSPLandroid/util/Size;->hashCode()I
 HSPLandroid/util/Size;->parseSize(Ljava/lang/String;)Landroid/util/Size;
 HSPLandroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
 HSPLandroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/util/Slog;->println(ILjava/lang/String;Ljava/lang/String;)I
+HSPLandroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+HSPLandroid/util/Slog;->wtf(Ljava/lang/String;Ljava/lang/String;)I
+PLandroid/util/Slog;->wtf(Ljava/lang/String;Ljava/lang/Throwable;)I
 HSPLandroid/util/SparseArray;-><init>()V
 HSPLandroid/util/SparseArray;-><init>(I)V
 HSPLandroid/util/SparseArray;->append(ILjava/lang/Object;)V
 HSPLandroid/util/SparseArray;->clear()V
 HSPLandroid/util/SparseArray;->clone()Landroid/util/SparseArray;
+HSPLandroid/util/SparseArray;->contains(I)Z
 HSPLandroid/util/SparseArray;->delete(I)V
 HSPLandroid/util/SparseArray;->gc()V
 HSPLandroid/util/SparseArray;->get(I)Ljava/lang/Object;
 HSPLandroid/util/SparseArray;->get(ILjava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/util/SparseArray;->indexOfKey(I)I
+HSPLandroid/util/SparseArray;->indexOfValue(Ljava/lang/Object;)I
 HSPLandroid/util/SparseArray;->keyAt(I)I
 HSPLandroid/util/SparseArray;->put(ILjava/lang/Object;)V
 HSPLandroid/util/SparseArray;->remove(I)V
 HSPLandroid/util/SparseArray;->removeAt(I)V
+HSPLandroid/util/SparseArray;->removeReturnOld(I)Ljava/lang/Object;
 HSPLandroid/util/SparseArray;->setValueAt(ILjava/lang/Object;)V
 HSPLandroid/util/SparseArray;->size()I
+HSPLandroid/util/SparseArray;->toString()Ljava/lang/String;
 HSPLandroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
+HSPLandroid/util/SparseArrayMap;-><init>()V
+HSPLandroid/util/SparseArrayMap;->add(ILjava/lang/String;Ljava/lang/Object;)V
+HSPLandroid/util/SparseArrayMap;->clear()V
+HSPLandroid/util/SparseArrayMap;->forEach(Ljava/util/function/Consumer;)V
+HSPLandroid/util/SparseArrayMap;->get(ILjava/lang/String;)Ljava/lang/Object;
+HSPLandroid/util/SparseArrayMap;->getOrDefault(ILjava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/util/SparseArrayMap;->indexOfKey(I)I
+HPLandroid/util/SparseArrayMap;->keyAt(I)I
+HPLandroid/util/SparseArrayMap;->keyAt(II)Ljava/lang/String;
+HPLandroid/util/SparseArrayMap;->numElementsForKey(I)I
+HSPLandroid/util/SparseArrayMap;->numMaps()I
 HSPLandroid/util/SparseBooleanArray;-><init>()V
 HSPLandroid/util/SparseBooleanArray;-><init>(I)V
 HSPLandroid/util/SparseBooleanArray;->append(IZ)V
 HSPLandroid/util/SparseBooleanArray;->clear()V
+HSPLandroid/util/SparseBooleanArray;->clone()Landroid/util/SparseBooleanArray;
 HSPLandroid/util/SparseBooleanArray;->delete(I)V
+HPLandroid/util/SparseBooleanArray;->equals(Ljava/lang/Object;)Z
 HSPLandroid/util/SparseBooleanArray;->get(I)Z
 HSPLandroid/util/SparseBooleanArray;->get(IZ)Z
 HSPLandroid/util/SparseBooleanArray;->indexOfKey(I)I
@@ -11821,6 +23654,7 @@
 HSPLandroid/util/SparseBooleanArray;->keyAt(I)I
 HSPLandroid/util/SparseBooleanArray;->put(IZ)V
 HSPLandroid/util/SparseBooleanArray;->size()I
+HSPLandroid/util/SparseBooleanArray;->toString()Ljava/lang/String;
 HSPLandroid/util/SparseBooleanArray;->valueAt(I)Z
 HSPLandroid/util/SparseIntArray;-><init>()V
 HSPLandroid/util/SparseIntArray;-><init>(I)V
@@ -11828,30 +23662,65 @@
 HSPLandroid/util/SparseIntArray;->clear()V
 HSPLandroid/util/SparseIntArray;->clone()Landroid/util/SparseIntArray;
 HSPLandroid/util/SparseIntArray;->copyKeys()[I
+HSPLandroid/util/SparseIntArray;->delete(I)V
 HSPLandroid/util/SparseIntArray;->get(I)I
 HSPLandroid/util/SparseIntArray;->get(II)I
 HSPLandroid/util/SparseIntArray;->indexOfKey(I)I
 HSPLandroid/util/SparseIntArray;->keyAt(I)I
 HSPLandroid/util/SparseIntArray;->put(II)V
 HSPLandroid/util/SparseIntArray;->removeAt(I)V
+HSPLandroid/util/SparseIntArray;->setValueAt(II)V
 HSPLandroid/util/SparseIntArray;->size()I
+HSPLandroid/util/SparseIntArray;->toString()Ljava/lang/String;
 HSPLandroid/util/SparseIntArray;->valueAt(I)I
 HSPLandroid/util/SparseLongArray;-><init>()V
 HSPLandroid/util/SparseLongArray;-><init>(I)V
+HSPLandroid/util/SparseLongArray;->clear()V
+HSPLandroid/util/SparseLongArray;->delete(I)V
 HSPLandroid/util/SparseLongArray;->get(I)J
 HSPLandroid/util/SparseLongArray;->get(IJ)J
+HSPLandroid/util/SparseLongArray;->indexOfKey(I)I
 HSPLandroid/util/SparseLongArray;->keyAt(I)I
 HSPLandroid/util/SparseLongArray;->put(IJ)V
+HSPLandroid/util/SparseLongArray;->removeAt(I)V
 HSPLandroid/util/SparseLongArray;->size()I
 HSPLandroid/util/SparseLongArray;->valueAt(I)J
+HSPLandroid/util/SparseSetArray;-><init>()V
+HSPLandroid/util/SparseSetArray;->add(ILjava/lang/Object;)Z
+HSPLandroid/util/SparseSetArray;->contains(ILjava/lang/Object;)Z
+HSPLandroid/util/SparseSetArray;->get(I)Landroid/util/ArraySet;
+HPLandroid/util/SparseSetArray;->keyAt(I)I
+HSPLandroid/util/SparseSetArray;->remove(I)V
+HSPLandroid/util/SparseSetArray;->remove(ILjava/lang/Object;)Z
+HSPLandroid/util/SparseSetArray;->size()I
+HSPLandroid/util/Spline$MonotoneCubicSpline;-><init>([F[F)V
+HSPLandroid/util/Spline$MonotoneCubicSpline;->interpolate(F)F
+HSPLandroid/util/Spline;->createMonotoneCubicSpline([F[F)Landroid/util/Spline;
+HSPLandroid/util/Spline;->createSpline([F[F)Landroid/util/Spline;
+HSPLandroid/util/Spline;->isMonotonic([F)Z
+HSPLandroid/util/Spline;->isStrictlyIncreasing([F)Z
 HSPLandroid/util/StateSet;->get(I)[I
 HSPLandroid/util/StateSet;->stateSetMatches([I[I)Z
 HSPLandroid/util/StateSet;->trimStateSet([II)[I
 HSPLandroid/util/StatsLog;->write(Landroid/util/StatsEvent;)V
 HSPLandroid/util/StatsLog;->writeRaw([BI)V
+HSPLandroid/util/TimeUtils;->formatDuration(J)Ljava/lang/String;
+HPLandroid/util/TimeUtils;->formatDuration(JLjava/io/PrintWriter;)V
+HSPLandroid/util/TimeUtils;->formatDuration(JLjava/io/PrintWriter;I)V
 HSPLandroid/util/TimeUtils;->formatDuration(JLjava/lang/StringBuilder;)V
 HSPLandroid/util/TimeUtils;->formatDurationLocked(JI)I
 HSPLandroid/util/TimeUtils;->printFieldLocked([CICIZI)I
+HSPLandroid/util/TimedRemoteCaller;-><init>(J)V
+HPLandroid/util/TimedRemoteCaller;->getResultTimed(I)Ljava/lang/Object;
+HPLandroid/util/TimedRemoteCaller;->onBeforeRemoteCall()I
+HPLandroid/util/TimedRemoteCaller;->onRemoteMethodResult(Ljava/lang/Object;I)V
+HSPLandroid/util/TimingLogger;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/util/TimingLogger;->addSplit(Ljava/lang/String;)V
+HSPLandroid/util/TimingLogger;->dumpToLog()V
+HSPLandroid/util/TimingLogger;->reset()V
+HSPLandroid/util/TimingLogger;->reset(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/util/TimingsTraceLog;-><init>(Ljava/lang/String;J)V
+HSPLandroid/util/TimingsTraceLog;-><init>(Ljava/lang/String;JI)V
 HSPLandroid/util/TimingsTraceLog;->assertSameThread()V
 HSPLandroid/util/TimingsTraceLog;->logDuration(Ljava/lang/String;J)V
 HSPLandroid/util/TimingsTraceLog;->traceBegin(Ljava/lang/String;)V
@@ -11865,12 +23734,157 @@
 HSPLandroid/util/TypedValue;->complexToDimensionPixelSize(ILandroid/util/DisplayMetrics;)I
 HSPLandroid/util/TypedValue;->complexToFloat(I)F
 HSPLandroid/util/TypedValue;->complexToFraction(IFF)F
+HSPLandroid/util/TypedValue;->getComplexUnit()I
 HSPLandroid/util/TypedValue;->getDimension(Landroid/util/DisplayMetrics;)F
 HSPLandroid/util/TypedValue;->getFloat()F
 HSPLandroid/util/TypedValue;->getFraction(FF)F
 HSPLandroid/util/UtilConfig;->setThrowExceptionForUpperArrayOutOfBounds(Z)V
 HSPLandroid/util/Xml;->asAttributeSet(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/AttributeSet;
 HSPLandroid/util/Xml;->newPullParser()Lorg/xmlpull/v1/XmlPullParser;
+HSPLandroid/util/Xml;->newSerializer()Lorg/xmlpull/v1/XmlSerializer;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;-><init>([[Ljava/security/cert/X509Certificate;[B)V
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->findSignature(Ljava/io/RandomAccessFile;)Landroid/util/apk/SignatureInfo;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->isSupportedSignatureAlgorithm(I)Z
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->unsafeGetCertsWithoutVerification(Ljava/lang/String;)[[Ljava/security/cert/X509Certificate;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->verify(Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;Z)Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->verify(Ljava/io/RandomAccessFile;Z)Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->verify(Ljava/lang/String;)[[Ljava/security/cert/X509Certificate;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->verify(Ljava/lang/String;Z)Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->verifyAdditionalAttributes(Ljava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->verifySigner(Ljava/nio/ByteBuffer;Ljava/util/Map;Ljava/security/cert/CertificateFactory;)[Ljava/security/cert/X509Certificate;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;-><init>([Ljava/security/cert/X509Certificate;Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedProofOfRotation;)V
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->findSignature(Ljava/io/RandomAccessFile;)Landroid/util/apk/SignatureInfo;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->isSupportedSignatureAlgorithm(I)Z
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->unsafeGetCertsWithoutVerification(Ljava/lang/String;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->verify(Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;Z)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->verify(Ljava/io/RandomAccessFile;Z)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->verify(Ljava/lang/String;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->verify(Ljava/lang/String;Z)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->verifyAdditionalAttributes(Ljava/nio/ByteBuffer;Ljava/util/List;Ljava/security/cert/CertificateFactory;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->verifySigner(Ljava/nio/ByteBuffer;Ljava/util/Map;Ljava/security/cert/CertificateFactory;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureVerifier;->closeQuietly(Landroid/util/jar/StrictJarFile;)V
+HSPLandroid/util/apk/ApkSignatureVerifier;->convertToSignatures([[Ljava/security/cert/Certificate;)[Landroid/content/pm/Signature;
+HSPLandroid/util/apk/ApkSignatureVerifier;->loadCertificates(Landroid/util/jar/StrictJarFile;Ljava/util/zip/ZipEntry;)[[Ljava/security/cert/Certificate;
+HSPLandroid/util/apk/ApkSignatureVerifier;->readFullyIgnoringContents(Ljava/io/InputStream;)V
+HSPLandroid/util/apk/ApkSignatureVerifier;->unsafeGetCertsWithoutVerification(Ljava/lang/String;I)Landroid/content/pm/PackageParser$SigningDetails;
+HSPLandroid/util/apk/ApkSignatureVerifier;->verify(Ljava/lang/String;I)Landroid/content/pm/PackageParser$SigningDetails;
+HSPLandroid/util/apk/ApkSignatureVerifier;->verifyV1Signature(Ljava/lang/String;Z)Landroid/content/pm/PackageParser$SigningDetails;
+HSPLandroid/util/apk/ApkSigningBlockUtils$1;-><init>()V
+HSPLandroid/util/apk/ApkSigningBlockUtils$1;->create(I)Ljava/nio/ByteBuffer;
+HSPLandroid/util/apk/ApkSigningBlockUtils$MultipleDigestDataDigester;-><init>([Ljava/security/MessageDigest;)V
+HSPLandroid/util/apk/ApkSigningBlockUtils$MultipleDigestDataDigester;->consume(Ljava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/ApkSigningBlockUtils;->checkByteOrderLittleEndian(Ljava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/ApkSigningBlockUtils;->compareContentDigestAlgorithm(II)I
+HSPLandroid/util/apk/ApkSigningBlockUtils;->compareSignatureAlgorithm(II)I
+HSPLandroid/util/apk/ApkSigningBlockUtils;->computeContentDigestsPer1MbChunk([I[Landroid/util/apk/DataSource;)[[B
+HSPLandroid/util/apk/ApkSigningBlockUtils;->findApkSignatureSchemeBlock(Ljava/nio/ByteBuffer;I)Ljava/nio/ByteBuffer;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->findApkSigningBlock(Ljava/io/RandomAccessFile;J)Landroid/util/Pair;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->findSignature(Ljava/io/RandomAccessFile;I)Landroid/util/apk/SignatureInfo;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getByteBuffer(Ljava/nio/ByteBuffer;I)Ljava/nio/ByteBuffer;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getCentralDirOffset(Ljava/nio/ByteBuffer;J)J
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getChunkCount(J)J
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getContentDigestAlgorithmJcaDigestAlgorithm(I)Ljava/lang/String;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getContentDigestAlgorithmOutputSizeBytes(I)I
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getEocd(Ljava/io/RandomAccessFile;)Landroid/util/Pair;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getLengthPrefixedSlice(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getSignatureAlgorithmContentDigestAlgorithm(I)I
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getSignatureAlgorithmJcaKeyAlgorithm(I)Ljava/lang/String;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getSignatureAlgorithmJcaSignatureAlgorithm(I)Landroid/util/Pair;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->parseVerityDigestAndVerifySourceLength([BJLandroid/util/apk/SignatureInfo;)[B
+HSPLandroid/util/apk/ApkSigningBlockUtils;->readLengthPrefixedByteArray(Ljava/nio/ByteBuffer;)[B
+HSPLandroid/util/apk/ApkSigningBlockUtils;->setUnsignedInt32LittleEndian(I[BI)V
+HSPLandroid/util/apk/ApkSigningBlockUtils;->sliceFromTo(Ljava/nio/ByteBuffer;II)Ljava/nio/ByteBuffer;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->verifyIntegrity(Ljava/util/Map;Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;)V
+HSPLandroid/util/apk/ApkSigningBlockUtils;->verifyIntegrityFor1MbChunkBasedAlgorithm(Ljava/util/Map;Ljava/io/FileDescriptor;Landroid/util/apk/SignatureInfo;)V
+HSPLandroid/util/apk/ApkSigningBlockUtils;->verifyIntegrityForVerityBasedAlgorithm([BLjava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;)V
+HSPLandroid/util/apk/ByteBufferDataSource;-><init>(Ljava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/ByteBufferDataSource;->feedIntoDataDigester(Landroid/util/apk/DataDigester;JI)V
+HSPLandroid/util/apk/ByteBufferDataSource;->size()J
+HSPLandroid/util/apk/MemoryMappedFileDataSource;-><init>(Ljava/io/FileDescriptor;JJ)V
+HSPLandroid/util/apk/MemoryMappedFileDataSource;->feedIntoDataDigester(Landroid/util/apk/DataDigester;JI)V
+HSPLandroid/util/apk/MemoryMappedFileDataSource;->size()J
+HSPLandroid/util/apk/SignatureInfo;-><init>(Ljava/nio/ByteBuffer;JJJLjava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/SignatureNotFoundException;-><init>(Ljava/lang/String;)V
+HSPLandroid/util/apk/VerbatimX509Certificate;-><init>(Ljava/security/cert/X509Certificate;[B)V
+HSPLandroid/util/apk/VerbatimX509Certificate;->getEncoded()[B
+HSPLandroid/util/apk/VerityBuilder$BufferedDigester;-><init>([BLjava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/VerityBuilder$BufferedDigester;-><init>([BLjava/nio/ByteBuffer;Landroid/util/apk/VerityBuilder$1;)V
+HSPLandroid/util/apk/VerityBuilder$BufferedDigester;->access$200(Landroid/util/apk/VerityBuilder$BufferedDigester;)V
+HSPLandroid/util/apk/VerityBuilder$BufferedDigester;->assertEmptyBuffer()V
+HSPLandroid/util/apk/VerityBuilder$BufferedDigester;->consume(Ljava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/VerityBuilder$BufferedDigester;->fillUpLastOutputChunk()V
+HSPLandroid/util/apk/VerityBuilder$VerityResult;-><init>(Ljava/nio/ByteBuffer;I[B)V
+HSPLandroid/util/apk/VerityBuilder$VerityResult;-><init>(Ljava/nio/ByteBuffer;I[BLandroid/util/apk/VerityBuilder$1;)V
+HSPLandroid/util/apk/VerityBuilder;->assertSigningBlockAlignedAndHasFullPages(Landroid/util/apk/SignatureInfo;)V
+HSPLandroid/util/apk/VerityBuilder;->calculateVerityLevelOffset(J)[I
+HSPLandroid/util/apk/VerityBuilder;->consumeByChunk(Landroid/util/apk/DataDigester;Landroid/util/apk/DataSource;I)V
+HSPLandroid/util/apk/VerityBuilder;->divideRoundup(JJ)J
+HSPLandroid/util/apk/VerityBuilder;->generateApkVerityDigestAtLeafLevel(Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;[BLjava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/VerityBuilder;->generateApkVerityTree(Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;Landroid/util/apk/ByteBufferFactory;)Landroid/util/apk/VerityBuilder$VerityResult;
+HSPLandroid/util/apk/VerityBuilder;->generateVerityTreeInternal(Ljava/io/RandomAccessFile;Landroid/util/apk/ByteBufferFactory;Landroid/util/apk/SignatureInfo;)Landroid/util/apk/VerityBuilder$VerityResult;
+HSPLandroid/util/apk/VerityBuilder;->generateVerityTreeInternal(Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;[B[ILjava/nio/ByteBuffer;)[B
+HSPLandroid/util/apk/VerityBuilder;->slice(Ljava/nio/ByteBuffer;II)Ljava/nio/ByteBuffer;
+HSPLandroid/util/apk/WrappedX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)V
+HSPLandroid/util/apk/WrappedX509Certificate;->getPublicKey()Ljava/security/PublicKey;
+HSPLandroid/util/apk/ZipUtils;->assertByteOrderLittleEndian(Ljava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/ZipUtils;->findZipEndOfCentralDirectoryRecord(Ljava/io/RandomAccessFile;)Landroid/util/Pair;
+HSPLandroid/util/apk/ZipUtils;->findZipEndOfCentralDirectoryRecord(Ljava/io/RandomAccessFile;I)Landroid/util/Pair;
+HSPLandroid/util/apk/ZipUtils;->findZipEndOfCentralDirectoryRecord(Ljava/nio/ByteBuffer;)I
+HSPLandroid/util/apk/ZipUtils;->getUnsignedInt16(Ljava/nio/ByteBuffer;I)I
+HSPLandroid/util/apk/ZipUtils;->getUnsignedInt32(Ljava/nio/ByteBuffer;I)J
+HSPLandroid/util/apk/ZipUtils;->getZipEocdCentralDirectoryOffset(Ljava/nio/ByteBuffer;)J
+HSPLandroid/util/apk/ZipUtils;->getZipEocdCentralDirectorySizeBytes(Ljava/nio/ByteBuffer;)J
+HSPLandroid/util/apk/ZipUtils;->isZip64EndOfCentralDirectoryLocatorPresent(Ljava/io/RandomAccessFile;J)Z
+HSPLandroid/util/apk/ZipUtils;->setUnsignedInt32(Ljava/nio/ByteBuffer;IJ)V
+HSPLandroid/util/apk/ZipUtils;->setZipEocdCentralDirectoryOffset(Ljava/nio/ByteBuffer;J)V
+HSPLandroid/util/jar/StrictJarFile$EntryIterator;-><init>(JLjava/lang/String;)V
+HSPLandroid/util/jar/StrictJarFile$EntryIterator;->hasNext()Z
+HSPLandroid/util/jar/StrictJarFile$EntryIterator;->next()Ljava/lang/Object;
+HSPLandroid/util/jar/StrictJarFile$EntryIterator;->next()Ljava/util/zip/ZipEntry;
+HSPLandroid/util/jar/StrictJarFile$FDStream;-><init>(Ljava/io/FileDescriptor;JJ)V
+HSPLandroid/util/jar/StrictJarFile$FDStream;->read([BII)I
+HSPLandroid/util/jar/StrictJarFile$JarFileInputStream;-><init>(Ljava/io/InputStream;JLandroid/util/jar/StrictJarVerifier$VerifierEntry;)V
+HSPLandroid/util/jar/StrictJarFile$JarFileInputStream;->read([BII)I
+HSPLandroid/util/jar/StrictJarFile$ZipInflaterInputStream;-><init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;ILjava/util/zip/ZipEntry;)V
+HSPLandroid/util/jar/StrictJarFile$ZipInflaterInputStream;->close()V
+HSPLandroid/util/jar/StrictJarFile$ZipInflaterInputStream;->read([BII)I
+HSPLandroid/util/jar/StrictJarFile;-><init>(Ljava/lang/String;Ljava/io/FileDescriptor;ZZ)V
+HSPLandroid/util/jar/StrictJarFile;-><init>(Ljava/lang/String;ZZ)V
+HSPLandroid/util/jar/StrictJarFile;->access$000(JLjava/lang/String;)J
+HSPLandroid/util/jar/StrictJarFile;->access$100(J)Ljava/util/zip/ZipEntry;
+HSPLandroid/util/jar/StrictJarFile;->close()V
+HSPLandroid/util/jar/StrictJarFile;->finalize()V
+HSPLandroid/util/jar/StrictJarFile;->findEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
+HSPLandroid/util/jar/StrictJarFile;->getCertificateChains(Ljava/util/zip/ZipEntry;)[[Ljava/security/cert/Certificate;
+HSPLandroid/util/jar/StrictJarFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
+HSPLandroid/util/jar/StrictJarFile;->getMetaEntries()Ljava/util/HashMap;
+HSPLandroid/util/jar/StrictJarFile;->getZipInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
+HSPLandroid/util/jar/StrictJarManifest$Chunk;-><init>(II)V
+HSPLandroid/util/jar/StrictJarManifest;-><init>()V
+HSPLandroid/util/jar/StrictJarManifest;-><init>([BZ)V
+HSPLandroid/util/jar/StrictJarManifest;->getAttributes(Ljava/lang/String;)Ljava/util/jar/Attributes;
+HSPLandroid/util/jar/StrictJarManifest;->getEntries()Ljava/util/Map;
+HSPLandroid/util/jar/StrictJarManifest;->getMainAttributesEnd()I
+HSPLandroid/util/jar/StrictJarManifest;->read([B)V
+HSPLandroid/util/jar/StrictJarManifestReader;-><init>([BLjava/util/jar/Attributes;)V
+HSPLandroid/util/jar/StrictJarManifestReader;->getEndOfMainSection()I
+HSPLandroid/util/jar/StrictJarManifestReader;->readEntries(Ljava/util/Map;Ljava/util/Map;)V
+HSPLandroid/util/jar/StrictJarManifestReader;->readHeader()Z
+HSPLandroid/util/jar/StrictJarManifestReader;->readName()V
+HSPLandroid/util/jar/StrictJarManifestReader;->readValue()V
+HSPLandroid/util/jar/StrictJarVerifier$VerifierEntry;-><init>(Ljava/lang/String;Ljava/security/MessageDigest;[B[[Ljava/security/cert/Certificate;Ljava/util/Hashtable;)V
+HSPLandroid/util/jar/StrictJarVerifier$VerifierEntry;->verify()V
+HSPLandroid/util/jar/StrictJarVerifier$VerifierEntry;->write([BII)V
+HSPLandroid/util/jar/StrictJarVerifier;-><init>(Ljava/lang/String;Landroid/util/jar/StrictJarManifest;Ljava/util/HashMap;Z)V
+HSPLandroid/util/jar/StrictJarVerifier;->access$000([B[B)Z
+HSPLandroid/util/jar/StrictJarVerifier;->getCertificateChains(Ljava/lang/String;)[[Ljava/security/cert/Certificate;
+HSPLandroid/util/jar/StrictJarVerifier;->initEntry(Ljava/lang/String;)Landroid/util/jar/StrictJarVerifier$VerifierEntry;
+HSPLandroid/util/jar/StrictJarVerifier;->isSignedJar()Z
+HSPLandroid/util/jar/StrictJarVerifier;->readCertificates()Z
+HSPLandroid/util/jar/StrictJarVerifier;->verify(Ljava/util/jar/Attributes;Ljava/lang/String;[BIIZZ)Z
+HSPLandroid/util/jar/StrictJarVerifier;->verifyBytes([B[B)[Ljava/security/cert/Certificate;
+HSPLandroid/util/jar/StrictJarVerifier;->verifyCertificate(Ljava/lang/String;)V
+HSPLandroid/util/jar/StrictJarVerifier;->verifyMessageDigest([B[B)Z
 HSPLandroid/util/proto/EncodedBuffer;-><init>(I)V
 HSPLandroid/util/proto/EncodedBuffer;->editRawFixed32(II)V
 HSPLandroid/util/proto/EncodedBuffer;->getBytes(I)[B
@@ -11879,10 +23893,12 @@
 HSPLandroid/util/proto/EncodedBuffer;->getReadPos()I
 HSPLandroid/util/proto/EncodedBuffer;->getReadableSize()I
 HSPLandroid/util/proto/EncodedBuffer;->getWritePos()I
+HSPLandroid/util/proto/EncodedBuffer;->nextWriteBuffer()V
 HSPLandroid/util/proto/EncodedBuffer;->readRawByte()B
 HSPLandroid/util/proto/EncodedBuffer;->readRawFixed32()I
 HSPLandroid/util/proto/EncodedBuffer;->readRawUnsigned()J
 HSPLandroid/util/proto/EncodedBuffer;->rewindRead()V
+HSPLandroid/util/proto/EncodedBuffer;->rewindWriteTo(I)V
 HSPLandroid/util/proto/EncodedBuffer;->skipRead(I)V
 HSPLandroid/util/proto/EncodedBuffer;->startEditing()V
 HSPLandroid/util/proto/EncodedBuffer;->writeFromThisBuffer(II)V
@@ -11892,6 +23908,28 @@
 HSPLandroid/util/proto/EncodedBuffer;->writeRawFixed32(I)V
 HSPLandroid/util/proto/EncodedBuffer;->writeRawVarint32(I)V
 HSPLandroid/util/proto/EncodedBuffer;->writeRawVarint64(J)V
+HSPLandroid/util/proto/ProtoInputStream;-><init>(Ljava/io/InputStream;)V
+HSPLandroid/util/proto/ProtoInputStream;-><init>(Ljava/io/InputStream;I)V
+HSPLandroid/util/proto/ProtoInputStream;->assertFieldNumber(J)V
+HSPLandroid/util/proto/ProtoInputStream;->assertFreshData()V
+HSPLandroid/util/proto/ProtoInputStream;->assertWireType(I)V
+HSPLandroid/util/proto/ProtoInputStream;->checkPacked(J)V
+HSPLandroid/util/proto/ProtoInputStream;->end(J)V
+HSPLandroid/util/proto/ProtoInputStream;->fillBuffer()V
+HSPLandroid/util/proto/ProtoInputStream;->getFieldNumber()I
+HSPLandroid/util/proto/ProtoInputStream;->incOffset(I)V
+HSPLandroid/util/proto/ProtoInputStream;->nextField()I
+HSPLandroid/util/proto/ProtoInputStream;->nextField(J)Z
+HSPLandroid/util/proto/ProtoInputStream;->readBoolean(J)Z
+HPLandroid/util/proto/ProtoInputStream;->readFixed32()I
+HPLandroid/util/proto/ProtoInputStream;->readFloat(J)F
+HSPLandroid/util/proto/ProtoInputStream;->readInt(J)I
+HSPLandroid/util/proto/ProtoInputStream;->readLong(J)J
+HSPLandroid/util/proto/ProtoInputStream;->readRawString(I)Ljava/lang/String;
+HSPLandroid/util/proto/ProtoInputStream;->readString(J)Ljava/lang/String;
+HSPLandroid/util/proto/ProtoInputStream;->readTag()V
+HSPLandroid/util/proto/ProtoInputStream;->readVarint()J
+HSPLandroid/util/proto/ProtoInputStream;->start(J)J
 HSPLandroid/util/proto/ProtoOutputStream;-><init>()V
 HSPLandroid/util/proto/ProtoOutputStream;-><init>(I)V
 HSPLandroid/util/proto/ProtoOutputStream;-><init>(Ljava/io/FileDescriptor;)V
@@ -11903,16 +23941,22 @@
 HSPLandroid/util/proto/ProtoOutputStream;->end(J)V
 HSPLandroid/util/proto/ProtoOutputStream;->endObjectImpl(JZ)V
 HSPLandroid/util/proto/ProtoOutputStream;->flush()V
+HSPLandroid/util/proto/ProtoOutputStream;->getBytes()[B
 HSPLandroid/util/proto/ProtoOutputStream;->getTagSize(I)I
 HSPLandroid/util/proto/ProtoOutputStream;->readRawTag()I
 HSPLandroid/util/proto/ProtoOutputStream;->start(J)J
 HSPLandroid/util/proto/ProtoOutputStream;->startObjectImpl(IZ)J
+HSPLandroid/util/proto/ProtoOutputStream;->write(JF)V
 HSPLandroid/util/proto/ProtoOutputStream;->write(JI)V
 HSPLandroid/util/proto/ProtoOutputStream;->write(JJ)V
 HSPLandroid/util/proto/ProtoOutputStream;->write(JLjava/lang/String;)V
+HSPLandroid/util/proto/ProtoOutputStream;->write(JZ)V
+HSPLandroid/util/proto/ProtoOutputStream;->writeBoolImpl(IZ)V
+HSPLandroid/util/proto/ProtoOutputStream;->writeFloatImpl(IF)V
 HSPLandroid/util/proto/ProtoOutputStream;->writeInt32Impl(II)V
 HSPLandroid/util/proto/ProtoOutputStream;->writeInt64Impl(IJ)V
 HSPLandroid/util/proto/ProtoOutputStream;->writeKnownLengthHeader(II)V
+HPLandroid/util/proto/ProtoOutputStream;->writeRepeatedInt64Impl(IJ)V
 HSPLandroid/util/proto/ProtoOutputStream;->writeStringImpl(ILjava/lang/String;)V
 HSPLandroid/util/proto/ProtoOutputStream;->writeTag(II)V
 HSPLandroid/util/proto/ProtoOutputStream;->writeUnsignedVarintFromSignedInt(I)V
@@ -11921,34 +23965,85 @@
 HSPLandroid/util/proto/ProtoStream;->getDepthFromToken(J)I
 HSPLandroid/util/proto/ProtoStream;->getOffsetFromToken(J)I
 HSPLandroid/util/proto/ProtoStream;->getRepeatedFromToken(J)Z
+HSPLandroid/util/proto/ProtoStream;->getTagSizeFromToken(J)I
 HSPLandroid/util/proto/ProtoStream;->makeToken(IZIII)J
 HSPLandroid/view/-$$Lambda$1kvF4JuyM42-wmyDVPAIYdPz1jE;-><init>(Landroid/view/RenderNodeAnimator;)V
 HSPLandroid/view/-$$Lambda$1kvF4JuyM42-wmyDVPAIYdPz1jE;->run()V
+HSPLandroid/view/-$$Lambda$9vBfnQOmNnsc9WU80IIatZHQGKc;->get()Ljava/lang/Object;
 HSPLandroid/view/-$$Lambda$FocusFinder$FocusSorter$h0f2ZYL6peSaaEeCCkAoYs_YZvU;-><init>(Landroid/view/FocusFinder$FocusSorter;)V
 HSPLandroid/view/-$$Lambda$FocusFinder$FocusSorter$h0f2ZYL6peSaaEeCCkAoYs_YZvU;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLandroid/view/-$$Lambda$FocusFinder$FocusSorter$kW7K1t9q7Y62V38r-7g6xRzqqq8;-><init>(Landroid/view/FocusFinder$FocusSorter;)V
 HSPLandroid/view/-$$Lambda$FocusFinder$FocusSorter$kW7K1t9q7Y62V38r-7g6xRzqqq8;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLandroid/view/-$$Lambda$InsetsController$6uoSHBPvxV1C0JOZKhH1AyuNXmo;-><init>(Landroid/view/InsetsController;)V
+HSPLandroid/view/-$$Lambda$InsetsController$Cj7UJrCkdHvJAZ_cYKrXuTMsjz8;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/view/-$$Lambda$InsetsController$HI9QZ2HvGm6iykc-WONz2KPG61Q;-><init>(Landroid/view/InsetsController;)V
 HSPLandroid/view/-$$Lambda$InsetsController$RZT3QkL9zMFTeHtZbfcaHIzvlsc;-><clinit>()V
 HSPLandroid/view/-$$Lambda$InsetsController$RZT3QkL9zMFTeHtZbfcaHIzvlsc;-><init>()V
+HSPLandroid/view/-$$Lambda$InsetsController$RZT3QkL9zMFTeHtZbfcaHIzvlsc;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/view/-$$Lambda$InsetsController$zpmOxHfTFV_3me2u3C8YaXSUauQ;-><init>(Landroid/view/InsetsController;)V
+HSPLandroid/view/-$$Lambda$InsetsController$zpmOxHfTFV_3me2u3C8YaXSUauQ;->run()V
+HSPLandroid/view/-$$Lambda$PYGleuqIeCxjTD1pJqqx1opFv1g;-><init>(Landroid/view/SurfaceView;)V
+HSPLandroid/view/-$$Lambda$PYGleuqIeCxjTD1pJqqx1opFv1g;->onScrollChanged()V
 HSPLandroid/view/-$$Lambda$QI1s392qW8l6mC24bcy9050SkuY;-><init>(Landroid/view/View;)V
+HSPLandroid/view/-$$Lambda$SurfaceView$SyyzxOgxKwZMRgiiTGcRYbOU5JY;-><init>(Landroid/view/SurfaceView;)V
+HSPLandroid/view/-$$Lambda$SurfaceView$SyyzxOgxKwZMRgiiTGcRYbOU5JY;->run()V
+HSPLandroid/view/-$$Lambda$SurfaceView$TWz4D2u33ZlAmRtgKzbqqDue3iM;-><init>(Landroid/view/SurfaceView;)V
+HSPLandroid/view/-$$Lambda$SurfaceView$TWz4D2u33ZlAmRtgKzbqqDue3iM;->run()V
+HSPLandroid/view/-$$Lambda$SurfaceView$w68OV7dB_zKVNsA-r0IrAUtyWas;-><init>(Landroid/view/SurfaceView;)V
+HSPLandroid/view/-$$Lambda$SurfaceView$w68OV7dB_zKVNsA-r0IrAUtyWas;->onPreDraw()Z
+HSPLandroid/view/-$$Lambda$SyncRtSurfaceTransactionApplier$ttntIVYYZl7t890CcQHVoB3U1nQ;-><init>(Landroid/view/SyncRtSurfaceTransactionApplier;[Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V
+HSPLandroid/view/-$$Lambda$SyncRtSurfaceTransactionApplier$ttntIVYYZl7t890CcQHVoB3U1nQ;->onFrameDraw(J)V
+HSPLandroid/view/-$$Lambda$TextureView$WAq1rgfoZeDSt6cBQga7iQDymYk;-><init>(Landroid/view/TextureView;)V
+HSPLandroid/view/-$$Lambda$TextureView$WAq1rgfoZeDSt6cBQga7iQDymYk;->onFrameAvailable(Landroid/graphics/SurfaceTexture;)V
+HSPLandroid/view/-$$Lambda$ThreadedRenderer$ydBD-R1iP5u-97XYakm-jKvC1b4;->onFrameDraw(J)V
+HSPLandroid/view/-$$Lambda$UP_X5kI_Z_28QmiOoLwlBnnHOM0;-><init>(Landroid/view/InsetsAnimationControlImpl;)V
 HSPLandroid/view/-$$Lambda$View$llq76MkPXP4bNcb9oJt_msw0fnQ;-><init>(Landroid/view/View;)V
+HSPLandroid/view/-$$Lambda$ViewGroup$ViewLocationHolder$AjKvqdj7SGGIzA5qrlZUuu71jl8;-><init>(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+HSPLandroid/view/-$$Lambda$ViewGroup$ViewLocationHolder$AjKvqdj7SGGIzA5qrlZUuu71jl8;->test(Ljava/lang/Object;)Z
+HSPLandroid/view/-$$Lambda$ViewGroup$ViewLocationHolder$QbO7cM0ULKe25a7bfXG3VH6DB0c;-><init>(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+HSPLandroid/view/-$$Lambda$ViewGroup$ViewLocationHolder$QbO7cM0ULKe25a7bfXG3VH6DB0c;->test(Ljava/lang/Object;)Z
+HSPLandroid/view/-$$Lambda$ViewRootImpl$7A_3tkr_Kw4TZAeIUGVlOoTcZhg;-><init>(Landroid/view/ViewRootImpl;Ljava/util/ArrayList;)V
+HSPLandroid/view/-$$Lambda$ViewRootImpl$7A_3tkr_Kw4TZAeIUGVlOoTcZhg;->run()V
 HSPLandroid/view/-$$Lambda$ViewRootImpl$DJd0VUYJgsebcnSohO6h8zc_ONI;-><init>(Landroid/view/ViewRootImpl;ZLjava/util/ArrayList;)V
 HSPLandroid/view/-$$Lambda$ViewRootImpl$DJd0VUYJgsebcnSohO6h8zc_ONI;->run()V
+HSPLandroid/view/-$$Lambda$ViewRootImpl$IReiNMSbDakZSGbIZuL_ifaFWn8;-><init>(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V
+HSPLandroid/view/-$$Lambda$ViewRootImpl$IReiNMSbDakZSGbIZuL_ifaFWn8;->onFrameDraw(J)V
+HSPLandroid/view/-$$Lambda$ViewRootImpl$YBiqAhbCbXVPSKdbE3K4rH2gpxI;-><init>(Landroid/view/ViewRootImpl;Landroid/os/Handler;Ljava/util/ArrayList;)V
+HSPLandroid/view/-$$Lambda$ViewRootImpl$YBiqAhbCbXVPSKdbE3K4rH2gpxI;->onFrameComplete(J)V
 HSPLandroid/view/-$$Lambda$ViewRootImpl$vBfxngTfPtkwcFoa96FB0CWn5ZI;-><init>(Landroid/view/ViewRootImpl;Landroid/os/Handler;ZLjava/util/ArrayList;)V
 HSPLandroid/view/-$$Lambda$ViewRootImpl$vBfxngTfPtkwcFoa96FB0CWn5ZI;->onFrameComplete(J)V
 HSPLandroid/view/-$$Lambda$WlJa6OPA72p3gYtA3nVKC7Z1tGY;-><init>(Landroid/view/View;)V
 HSPLandroid/view/-$$Lambda$WlJa6OPA72p3gYtA3nVKC7Z1tGY;->run()V
 HSPLandroid/view/-$$Lambda$Y3lG3v_J32-xL0IjMGgNorZjESw;->get()Ljava/lang/Object;
+HSPLandroid/view/-$$Lambda$cZhmLzK8aetUdx4VlP9w5jR7En0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/view/AbsSavedState$2;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/view/AbsSavedState;
+HSPLandroid/view/AbsSavedState$2;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object;
+HSPLandroid/view/AbsSavedState;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
 HSPLandroid/view/AbsSavedState;-><init>(Landroid/os/Parcelable;)V
+HSPLandroid/view/AbsSavedState;->getSuperState()Landroid/os/Parcelable;
 HSPLandroid/view/AbsSavedState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/ActionMode$Callback2;-><init>()V
+HSPLandroid/view/ActionMode;-><init>()V
+HSPLandroid/view/ActionMode;->getType()I
+HSPLandroid/view/ActionMode;->setType(I)V
+HSPLandroid/view/BatchedInputEventReceiver$BatchedInputRunnable;-><init>(Landroid/view/BatchedInputEventReceiver;)V
+HSPLandroid/view/BatchedInputEventReceiver$BatchedInputRunnable;-><init>(Landroid/view/BatchedInputEventReceiver;Landroid/view/BatchedInputEventReceiver$1;)V
+HSPLandroid/view/BatchedInputEventReceiver$BatchedInputRunnable;->run()V
+HSPLandroid/view/BatchedInputEventReceiver;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;Landroid/view/Choreographer;)V
+HSPLandroid/view/BatchedInputEventReceiver;->dispose()V
+HSPLandroid/view/BatchedInputEventReceiver;->doConsumeBatchedInput(J)V
+HSPLandroid/view/BatchedInputEventReceiver;->onBatchedInputEventPending()V
+HSPLandroid/view/BatchedInputEventReceiver;->scheduleBatchedInput()V
+HSPLandroid/view/BatchedInputEventReceiver;->unscheduleBatchedInput()V
 HSPLandroid/view/Choreographer$1;->initialValue()Landroid/view/Choreographer;
 HSPLandroid/view/Choreographer$1;->initialValue()Ljava/lang/Object;
+HSPLandroid/view/Choreographer$2;->initialValue()Landroid/view/Choreographer;
+HSPLandroid/view/Choreographer$2;->initialValue()Ljava/lang/Object;
 HSPLandroid/view/Choreographer$CallbackQueue;-><init>(Landroid/view/Choreographer;)V
 HSPLandroid/view/Choreographer$CallbackQueue;-><init>(Landroid/view/Choreographer;Landroid/view/Choreographer$1;)V
 HSPLandroid/view/Choreographer$CallbackQueue;->addCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)V
 HSPLandroid/view/Choreographer$CallbackQueue;->extractDueCallbacksLocked(J)Landroid/view/Choreographer$CallbackRecord;
+HSPLandroid/view/Choreographer$CallbackQueue;->hasDueCallbacksLocked(J)Z
 HSPLandroid/view/Choreographer$CallbackQueue;->removeCallbacksLocked(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLandroid/view/Choreographer$CallbackRecord;-><init>()V
 HSPLandroid/view/Choreographer$CallbackRecord;-><init>(Landroid/view/Choreographer$1;)V
@@ -11975,6 +24070,7 @@
 HSPLandroid/view/Choreographer;->getInstance()Landroid/view/Choreographer;
 HSPLandroid/view/Choreographer;->getMainThreadInstance()Landroid/view/Choreographer;
 HSPLandroid/view/Choreographer;->getRefreshRate()F
+HSPLandroid/view/Choreographer;->getSfInstance()Landroid/view/Choreographer;
 HSPLandroid/view/Choreographer;->isRunningOnLooperThreadLocked()Z
 HSPLandroid/view/Choreographer;->obtainCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)Landroid/view/Choreographer$CallbackRecord;
 HSPLandroid/view/Choreographer;->postCallback(ILjava/lang/Runnable;Ljava/lang/Object;)V
@@ -11989,11 +24085,14 @@
 HSPLandroid/view/Choreographer;->scheduleFrameLocked(J)V
 HSPLandroid/view/Choreographer;->scheduleVsyncLocked()V
 HSPLandroid/view/Choreographer;->setFPSDivisor(I)V
+HSPLandroid/view/Choreographer;->subtractFrameDelay(J)J
+HSPLandroid/view/CompositionSamplingListener;-><init>(Ljava/util/concurrent/Executor;)V
 HSPLandroid/view/ContextThemeWrapper;-><init>()V
 HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;I)V
 HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;Landroid/content/res/Resources$Theme;)V
 HSPLandroid/view/ContextThemeWrapper;->attachBaseContext(Landroid/content/Context;)V
 HSPLandroid/view/ContextThemeWrapper;->getAssets()Landroid/content/res/AssetManager;
+HSPLandroid/view/ContextThemeWrapper;->getOverrideConfiguration()Landroid/content/res/Configuration;
 HSPLandroid/view/ContextThemeWrapper;->getResources()Landroid/content/res/Resources;
 HSPLandroid/view/ContextThemeWrapper;->getResourcesInternal()Landroid/content/res/Resources;
 HSPLandroid/view/ContextThemeWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
@@ -12005,7 +24104,11 @@
 HSPLandroid/view/Display$HdrCapabilities$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/Display$HdrCapabilities;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/view/Display$HdrCapabilities;-><init>(Landroid/os/Parcel;Landroid/view/Display$1;)V
+HSPLandroid/view/Display$HdrCapabilities;-><init>([IFFF)V
+HSPLandroid/view/Display$HdrCapabilities;->getSupportedHdrTypes()[I
 HSPLandroid/view/Display$HdrCapabilities;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/view/Display$HdrCapabilities;->toString()Ljava/lang/String;
+HSPLandroid/view/Display$HdrCapabilities;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/Display$Mode$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/Display$Mode;
 HSPLandroid/view/Display$Mode$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/Display$Mode;-><init>(IIIF)V
@@ -12017,33 +24120,55 @@
 HSPLandroid/view/Display$Mode;->getPhysicalWidth()I
 HSPLandroid/view/Display$Mode;->getRefreshRate()F
 HSPLandroid/view/Display$Mode;->matches(IIF)Z
+HSPLandroid/view/Display$Mode;->toString()Ljava/lang/String;
 HSPLandroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILandroid/view/DisplayInfo;Landroid/content/res/Resources;)V
 HSPLandroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILandroid/view/DisplayInfo;Landroid/view/DisplayAdjustments;)V
 HSPLandroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILandroid/view/DisplayInfo;Landroid/view/DisplayAdjustments;Landroid/content/res/Resources;)V
+HSPLandroid/view/Display;->getAppVsyncOffsetNanos()J
+HSPLandroid/view/Display;->getCutout()Landroid/view/DisplayCutout;
 HSPLandroid/view/Display;->getDisplayAdjustments()Landroid/view/DisplayAdjustments;
 HSPLandroid/view/Display;->getDisplayId()I
+HSPLandroid/view/Display;->getDisplayInfo(Landroid/view/DisplayInfo;)Z
 HSPLandroid/view/Display;->getFlags()I
 HSPLandroid/view/Display;->getHeight()I
+HSPLandroid/view/Display;->getMaximumSizeDimension()I
 HSPLandroid/view/Display;->getMetrics(Landroid/util/DisplayMetrics;)V
 HSPLandroid/view/Display;->getMode()Landroid/view/Display$Mode;
+HSPLandroid/view/Display;->getPresentationDeadlineNanos()J
 HSPLandroid/view/Display;->getRealMetrics(Landroid/util/DisplayMetrics;)V
 HSPLandroid/view/Display;->getRealSize(Landroid/graphics/Point;)V
+HSPLandroid/view/Display;->getRectSize(Landroid/graphics/Rect;)V
 HSPLandroid/view/Display;->getRefreshRate()F
 HSPLandroid/view/Display;->getRotation()I
 HSPLandroid/view/Display;->getSize(Landroid/graphics/Point;)V
 HSPLandroid/view/Display;->getState()I
+HSPLandroid/view/Display;->getSupportedColorModes()[I
 HSPLandroid/view/Display;->getSupportedModes()[Landroid/view/Display$Mode;
 HSPLandroid/view/Display;->getSupportedWideColorGamut()[Landroid/graphics/ColorSpace;
+HSPLandroid/view/Display;->getType()I
 HSPLandroid/view/Display;->getWidth()I
+HSPLandroid/view/Display;->hasAccess(I)Z
+HSPLandroid/view/Display;->hasAccess(IIII)Z
+HSPLandroid/view/Display;->isDozeState(I)Z
+HSPLandroid/view/Display;->isSuspendedState(I)Z
 HSPLandroid/view/Display;->isValid()Z
 HSPLandroid/view/Display;->isWideColorGamut()Z
+HSPLandroid/view/Display;->stateToString(I)Ljava/lang/String;
+HSPLandroid/view/Display;->toString()Ljava/lang/String;
+HSPLandroid/view/Display;->typeToString(I)Ljava/lang/String;
 HSPLandroid/view/Display;->updateCachedAppSizeIfNeededLocked()V
 HSPLandroid/view/Display;->updateDisplayInfoLocked()V
 HSPLandroid/view/DisplayAddress$Physical$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayAddress$Physical;
 HSPLandroid/view/DisplayAddress$Physical$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/DisplayAddress$Physical;-><init>(J)V
 HSPLandroid/view/DisplayAddress$Physical;-><init>(JLandroid/view/DisplayAddress$1;)V
+HSPLandroid/view/DisplayAddress$Physical;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/DisplayAddress$Physical;->getModel()Ljava/lang/Long;
+HSPLandroid/view/DisplayAddress$Physical;->getPort()B
+HSPLandroid/view/DisplayAddress$Physical;->toString()Ljava/lang/String;
+HSPLandroid/view/DisplayAddress$Physical;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/DisplayAddress;-><init>()V
+HSPLandroid/view/DisplayAddress;->fromPhysicalDisplayId(J)Landroid/view/DisplayAddress$Physical;
 HSPLandroid/view/DisplayAdjustments;-><init>()V
 HSPLandroid/view/DisplayAdjustments;-><init>(Landroid/content/res/Configuration;)V
 HSPLandroid/view/DisplayAdjustments;-><init>(Landroid/view/DisplayAdjustments;)V
@@ -12055,6 +24180,9 @@
 HSPLandroid/view/DisplayAdjustments;->setConfiguration(Landroid/content/res/Configuration;)V
 HSPLandroid/view/DisplayCutout$Bounds;-><init>([Landroid/graphics/Rect;Z)V
 HSPLandroid/view/DisplayCutout$Bounds;-><init>([Landroid/graphics/Rect;ZLandroid/view/DisplayCutout$1;)V
+HSPLandroid/view/DisplayCutout$Bounds;->access$500(Landroid/view/DisplayCutout$Bounds;I)Landroid/graphics/Rect;
+HSPLandroid/view/DisplayCutout$Bounds;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/DisplayCutout$Bounds;->getRect(I)Landroid/graphics/Rect;
 HSPLandroid/view/DisplayCutout$ParcelableWrapper$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayCutout$ParcelableWrapper;
 HSPLandroid/view/DisplayCutout$ParcelableWrapper$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/DisplayCutout$ParcelableWrapper;-><init>()V
@@ -12065,25 +24193,54 @@
 HSPLandroid/view/DisplayCutout$ParcelableWrapper;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/view/DisplayCutout$ParcelableWrapper;->set(Landroid/view/DisplayCutout$ParcelableWrapper;)V
 HSPLandroid/view/DisplayCutout$ParcelableWrapper;->set(Landroid/view/DisplayCutout;)V
+HSPLandroid/view/DisplayCutout$ParcelableWrapper;->writeCutoutToParcel(Landroid/view/DisplayCutout;Landroid/os/Parcel;I)V
+HSPLandroid/view/DisplayCutout$ParcelableWrapper;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics/Insets;[Landroid/graphics/Rect;Z)V
 HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics/Insets;[Landroid/graphics/Rect;ZLandroid/view/DisplayCutout$1;)V
+HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;[Landroid/graphics/Rect;Z)V
+HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;[Landroid/graphics/Rect;ZLandroid/view/DisplayCutout$1;)V
+HSPLandroid/view/DisplayCutout;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLandroid/view/DisplayCutout;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/DisplayCutout;->fromResourcesRectApproximation(Landroid/content/res/Resources;II)Landroid/view/DisplayCutout;
+HSPLandroid/view/DisplayCutout;->fromSpec(Ljava/lang/String;IIFLandroid/graphics/Insets;)Landroid/view/DisplayCutout;
 HSPLandroid/view/DisplayCutout;->getCopyOrRef(Landroid/graphics/Rect;Z)Landroid/graphics/Rect;
+HSPLandroid/view/DisplayCutout;->getSafeInsetBottom()I
+HSPLandroid/view/DisplayCutout;->getSafeInsetLeft()I
+HSPLandroid/view/DisplayCutout;->getSafeInsetRight()I
+HSPLandroid/view/DisplayCutout;->getSafeInsetTop()I
+HSPLandroid/view/DisplayCutout;->getSafeInsets()Landroid/graphics/Rect;
 HSPLandroid/view/DisplayCutout;->isEmpty()Z
+HSPLandroid/view/DisplayCutout;->loadWaterfallInset(Landroid/content/res/Resources;)Landroid/graphics/Insets;
+HSPLandroid/view/DisplayCutout;->pathAndDisplayCutoutFromSpec(Ljava/lang/String;IIFLandroid/graphics/Insets;)Landroid/util/Pair;
 HSPLandroid/view/DisplayEventReceiver;-><init>(Landroid/os/Looper;II)V
+HSPLandroid/view/DisplayEventReceiver;->dispatchConfigChanged(JJI)V
 HSPLandroid/view/DisplayEventReceiver;->dispatchVsync(JJI)V
 HSPLandroid/view/DisplayEventReceiver;->scheduleVsync()V
 HSPLandroid/view/DisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayInfo;
 HSPLandroid/view/DisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/DisplayInfo;-><init>()V
 HSPLandroid/view/DisplayInfo;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/view/DisplayInfo;-><init>(Landroid/os/Parcel;Landroid/view/DisplayInfo$1;)V
+HSPLandroid/view/DisplayInfo;-><init>(Landroid/view/DisplayInfo;)V
+HSPLandroid/view/DisplayInfo;->copyFrom(Landroid/view/DisplayInfo;)V
+HSPLandroid/view/DisplayInfo;->equals(Landroid/view/DisplayInfo;)Z
+HSPLandroid/view/DisplayInfo;->findDefaultModeByRefreshRate(F)I
 HSPLandroid/view/DisplayInfo;->findMode(I)Landroid/view/Display$Mode;
+HSPLandroid/view/DisplayInfo;->flagsToString(I)Ljava/lang/String;
+HSPLandroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;)V
+HSPLandroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;)V
 HSPLandroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;Landroid/view/DisplayAdjustments;)V
+HSPLandroid/view/DisplayInfo;->getDefaultMode()Landroid/view/Display$Mode;
+HSPLandroid/view/DisplayInfo;->getDefaultRefreshRates()[F
 HSPLandroid/view/DisplayInfo;->getLogicalMetrics(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;)V
 HSPLandroid/view/DisplayInfo;->getMetricsWithSize(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;II)V
 HSPLandroid/view/DisplayInfo;->getMode()Landroid/view/Display$Mode;
+HSPLandroid/view/DisplayInfo;->hasAccess(I)Z
+HSPLandroid/view/DisplayInfo;->isHdr()Z
 HSPLandroid/view/DisplayInfo;->isWideColorGamut()Z
 HSPLandroid/view/DisplayInfo;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/view/DisplayInfo;->toString()Ljava/lang/String;
+HSPLandroid/view/DisplayInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/DisplayListCanvas;-><init>(J)V
 HSPLandroid/view/FocusFinder$1;->initialValue()Landroid/view/FocusFinder;
 HSPLandroid/view/FocusFinder$1;->initialValue()Ljava/lang/Object;
@@ -12094,6 +24251,8 @@
 HSPLandroid/view/FocusFinder$UserSpecifiedFocusComparator;-><init>(Landroid/view/FocusFinder$UserSpecifiedFocusComparator$NextFocusGetter;)V
 HSPLandroid/view/FocusFinder;-><init>()V
 HSPLandroid/view/FocusFinder;-><init>(Landroid/view/FocusFinder$1;)V
+HSPLandroid/view/FocusFinder;->beamBeats(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
+HSPLandroid/view/FocusFinder;->beamsOverlap(ILandroid/graphics/Rect;Landroid/graphics/Rect;)Z
 HSPLandroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;
 HSPLandroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;I)Landroid/view/View;
 HSPLandroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;ILjava/util/ArrayList;)Landroid/view/View;
@@ -12101,10 +24260,27 @@
 HSPLandroid/view/FocusFinder;->findNextUserSpecifiedFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;
 HSPLandroid/view/FocusFinder;->getEffectiveRoot(Landroid/view/ViewGroup;Landroid/view/View;)Landroid/view/ViewGroup;
 HSPLandroid/view/FocusFinder;->getInstance()Landroid/view/FocusFinder;
+HSPLandroid/view/FocusFinder;->getWeightedDistanceFor(JJ)J
+HSPLandroid/view/FocusFinder;->isBetterCandidate(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
+HSPLandroid/view/FocusFinder;->isCandidate(Landroid/graphics/Rect;Landroid/graphics/Rect;I)Z
+HSPLandroid/view/FocusFinder;->isToDirectionOf(ILandroid/graphics/Rect;Landroid/graphics/Rect;)Z
+HSPLandroid/view/FocusFinder;->majorAxisDistance(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
+HSPLandroid/view/FocusFinder;->majorAxisDistanceRaw(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
+HSPLandroid/view/FocusFinder;->majorAxisDistanceToFarEdge(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
+HSPLandroid/view/FocusFinder;->majorAxisDistanceToFarEdgeRaw(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
+HSPLandroid/view/FocusFinder;->minorAxisDistance(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
 HSPLandroid/view/FocusFinder;->sort([Landroid/view/View;IILandroid/view/ViewGroup;Z)V
+HSPLandroid/view/FrameMetrics;-><init>()V
+HSPLandroid/view/FrameMetrics;->getMetric(I)J
+HSPLandroid/view/FrameMetricsObserver;-><init>(Landroid/view/Window;Landroid/os/Handler;Landroid/view/Window$OnFrameMetricsAvailableListener;)V
+HSPLandroid/view/FrameMetricsObserver;->getRendererObserver()Landroid/graphics/HardwareRendererObserver;
+HSPLandroid/view/FrameMetricsObserver;->onFrameMetricsAvailable(I)V
 HSPLandroid/view/GestureDetector$GestureHandler;-><init>(Landroid/view/GestureDetector;)V
+HSPLandroid/view/GestureDetector$GestureHandler;-><init>(Landroid/view/GestureDetector;Landroid/os/Handler;)V
 HSPLandroid/view/GestureDetector$GestureHandler;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/view/GestureDetector$SimpleOnGestureListener;-><init>()V
+HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onDoubleTap(Landroid/view/MotionEvent;)Z
+HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onDoubleTapEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onDown(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onFling(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z
 HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onLongPress(Landroid/view/MotionEvent;)V
@@ -12122,6 +24298,7 @@
 HSPLandroid/view/GestureDetector;->access$500(Landroid/view/GestureDetector;)Z
 HSPLandroid/view/GestureDetector;->access$602(Landroid/view/GestureDetector;Z)Z
 HSPLandroid/view/GestureDetector;->cancel()V
+HSPLandroid/view/GestureDetector;->cancelTaps()V
 HSPLandroid/view/GestureDetector;->dispatchLongPress()V
 HSPLandroid/view/GestureDetector;->init(Landroid/content/Context;)V
 HSPLandroid/view/GestureDetector;->isConsideredDoubleTap(Landroid/view/MotionEvent;Landroid/view/MotionEvent;Landroid/view/MotionEvent;)Z
@@ -12137,7 +24314,9 @@
 HSPLandroid/view/GestureExclusionTracker;->computeChangedRects()Ljava/util/List;
 HSPLandroid/view/GestureExclusionTracker;->updateRectsForView(Landroid/view/View;)V
 HSPLandroid/view/Gravity;->apply(IIILandroid/graphics/Rect;IILandroid/graphics/Rect;)V
+HSPLandroid/view/Gravity;->apply(IIILandroid/graphics/Rect;Landroid/graphics/Rect;)V
 HSPLandroid/view/Gravity;->apply(IIILandroid/graphics/Rect;Landroid/graphics/Rect;I)V
+HSPLandroid/view/Gravity;->applyDisplay(ILandroid/graphics/Rect;Landroid/graphics/Rect;)V
 HSPLandroid/view/Gravity;->getAbsoluteGravity(II)I
 HSPLandroid/view/Gravity;->isHorizontal(I)Z
 HSPLandroid/view/Gravity;->isVertical(I)Z
@@ -12148,38 +24327,167 @@
 HSPLandroid/view/HandlerActionQueue;->post(Ljava/lang/Runnable;)V
 HSPLandroid/view/HandlerActionQueue;->postDelayed(Ljava/lang/Runnable;J)V
 HSPLandroid/view/HandlerActionQueue;->removeCallbacks(Ljava/lang/Runnable;)V
+HSPLandroid/view/IApplicationToken$Stub;-><init>()V
+HSPLandroid/view/IApplicationToken$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IDisplayWindowListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IDisplayWindowListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IDisplayWindowListener$Stub$Proxy;->onDisplayAdded(I)V
+HPLandroid/view/IDisplayWindowListener$Stub$Proxy;->onDisplayConfigurationChanged(ILandroid/content/res/Configuration;)V
+HSPLandroid/view/IDisplayWindowListener$Stub;-><init>()V
+HSPLandroid/view/IDisplayWindowListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IDisplayWindowListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IDisplayWindowListener;
+HSPLandroid/view/IDisplayWindowListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/IDisplayWindowRotationCallback$Stub;-><init>()V
+HSPLandroid/view/IDisplayWindowRotationController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IDisplayWindowRotationController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IDisplayWindowRotationController$Stub;-><init>()V
+HSPLandroid/view/IDisplayWindowRotationController$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IDisplayWindowRotationController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IDisplayWindowRotationController;
+HSPLandroid/view/IDockedStackListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IDockedStackListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IDockedStackListener$Stub$Proxy;->onAdjustedForImeChanged(ZJ)V
+HSPLandroid/view/IDockedStackListener$Stub$Proxy;->onDividerVisibilityChanged(Z)V
+HSPLandroid/view/IDockedStackListener$Stub$Proxy;->onDockedStackExistsChanged(Z)V
+HSPLandroid/view/IDockedStackListener$Stub$Proxy;->onDockedStackMinimizedChanged(ZJZ)V
+HSPLandroid/view/IDockedStackListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IDockedStackListener;
 HSPLandroid/view/IGraphicsStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/view/IGraphicsStats$Stub$Proxy;->requestBufferForProcess(Ljava/lang/String;Landroid/view/IGraphicsStatsCallback;)Landroid/os/ParcelFileDescriptor;
+HSPLandroid/view/IGraphicsStats$Stub;-><init>()V
 HSPLandroid/view/IGraphicsStats$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IGraphicsStats;
+HSPLandroid/view/IGraphicsStats$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/IGraphicsStatsCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IGraphicsStatsCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/view/IGraphicsStatsCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IGraphicsStatsCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IGraphicsStatsCallback;
 HSPLandroid/view/IGraphicsStatsCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/IInputMonitorHost$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IInputMonitorHost$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IInputMonitorHost$Stub$Proxy;->dispose()V
+HSPLandroid/view/IInputMonitorHost$Stub$Proxy;->pilferPointers()V
+HPLandroid/view/IInputMonitorHost$Stub;-><init>()V
+PLandroid/view/IInputMonitorHost$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IInputMonitorHost$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IInputMonitorHost;
+HPLandroid/view/IInputMonitorHost$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/IPinnedStackController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IPinnedStackController$Stub;-><init>()V
+HSPLandroid/view/IPinnedStackController$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IPinnedStackController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IPinnedStackController;
+HSPLandroid/view/IPinnedStackListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IPinnedStackListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IPinnedStackListener$Stub$Proxy;->onActionsChanged(Landroid/content/pm/ParceledListSlice;)V
+HSPLandroid/view/IPinnedStackListener$Stub$Proxy;->onDisplayInfoChanged(Landroid/view/DisplayInfo;)V
+HSPLandroid/view/IPinnedStackListener$Stub$Proxy;->onImeVisibilityChanged(ZI)V
+HSPLandroid/view/IPinnedStackListener$Stub$Proxy;->onListenerRegistered(Landroid/view/IPinnedStackController;)V
+HSPLandroid/view/IPinnedStackListener$Stub$Proxy;->onMinimizedStateChanged(Z)V
+HSPLandroid/view/IPinnedStackListener$Stub$Proxy;->onMovementBoundsChanged(Landroid/graphics/Rect;ZZ)V
+HPLandroid/view/IPinnedStackListener$Stub$Proxy;->onResetReentryBounds(Landroid/content/ComponentName;)V
+HSPLandroid/view/IPinnedStackListener$Stub;-><init>()V
+HSPLandroid/view/IPinnedStackListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IPinnedStackListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IPinnedStackListener;
+HSPLandroid/view/IPinnedStackListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/view/IRecentsAnimationRunner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRecentsAnimationRunner;
+HSPLandroid/view/IRemoteAnimationFinishedCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IRemoteAnimationFinishedCallback$Stub$Proxy;->onAnimationFinished()V
+HPLandroid/view/IRemoteAnimationFinishedCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IRemoteAnimationFinishedCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRemoteAnimationFinishedCallback;
+HPLandroid/view/IRemoteAnimationFinishedCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/IRemoteAnimationRunner$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/view/IRemoteAnimationRunner$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/view/IRemoteAnimationRunner$Stub$Proxy;->onAnimationStart([Landroid/view/RemoteAnimationTarget;[Landroid/view/RemoteAnimationTarget;Landroid/view/IRemoteAnimationFinishedCallback;)V
+HSPLandroid/view/IRemoteAnimationRunner$Stub;-><init>()V
+HSPLandroid/view/IRemoteAnimationRunner$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IRemoteAnimationRunner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRemoteAnimationRunner;
+HSPLandroid/view/IRemoteAnimationRunner$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/IRotationWatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/view/IRotationWatcher$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IRotationWatcher$Stub;-><init>()V
+HSPLandroid/view/IRotationWatcher$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IRotationWatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRotationWatcher;
+HSPLandroid/view/IRotationWatcher$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/ISystemGestureExclusionListener$Stub;-><init>()V
+PLandroid/view/IWallpaperVisibilityListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/IWallpaperVisibilityListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/view/IWallpaperVisibilityListener$Stub$Proxy;->onWallpaperVisibilityChanged(ZI)V
+HSPLandroid/view/IWallpaperVisibilityListener$Stub;-><init>()V
+HSPLandroid/view/IWallpaperVisibilityListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IWallpaperVisibilityListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWallpaperVisibilityListener;
+HSPLandroid/view/IWallpaperVisibilityListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/IWindow$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IWindow$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/view/IWindow$Stub$Proxy;->closeSystemDialogs(Ljava/lang/String;)V
+HSPLandroid/view/IWindow$Stub$Proxy;->dispatchAppVisibility(Z)V
+HSPLandroid/view/IWindow$Stub$Proxy;->dispatchWallpaperOffsets(FFFFZ)V
+HPLandroid/view/IWindow$Stub$Proxy;->dispatchWindowShown()V
+HPLandroid/view/IWindow$Stub$Proxy;->insetsChanged(Landroid/view/InsetsState;)V
+HPLandroid/view/IWindow$Stub$Proxy;->resized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
 HSPLandroid/view/IWindow$Stub;-><init>()V
 HSPLandroid/view/IWindow$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IWindow$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindow;
 HSPLandroid/view/IWindow$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/IWindowContainer$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IWindowContainer$Stub;-><init>()V
+HSPLandroid/view/IWindowContainer$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IWindowContainer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowContainer;
+HSPLandroid/view/IWindowId$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IWindowId$Stub;-><init>()V
+HPLandroid/view/IWindowId$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IWindowId$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowId;
 HSPLandroid/view/IWindowManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IWindowManager$Stub$Proxy;->createInputConsumer(Landroid/os/IBinder;Ljava/lang/String;ILandroid/view/InputChannel;)V
+HSPLandroid/view/IWindowManager$Stub$Proxy;->destroyInputConsumer(Ljava/lang/String;I)Z
 HSPLandroid/view/IWindowManager$Stub$Proxy;->getCurrentAnimatorScale()F
+HSPLandroid/view/IWindowManager$Stub$Proxy;->getDockedStackSide()I
+HSPLandroid/view/IWindowManager$Stub$Proxy;->getInitialDisplaySize(ILandroid/graphics/Point;)V
+HSPLandroid/view/IWindowManager$Stub$Proxy;->getStableInsets(ILandroid/graphics/Rect;)V
 HSPLandroid/view/IWindowManager$Stub$Proxy;->getWindowInsets(Landroid/view/WindowManager$LayoutParams;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;)V
 HSPLandroid/view/IWindowManager$Stub$Proxy;->hasNavigationBar(I)Z
 HSPLandroid/view/IWindowManager$Stub$Proxy;->isKeyguardLocked()Z
+HSPLandroid/view/IWindowManager$Stub$Proxy;->isKeyguardSecure(I)Z
 HSPLandroid/view/IWindowManager$Stub$Proxy;->openSession(Landroid/view/IWindowSessionCallback;)Landroid/view/IWindowSession;
+HSPLandroid/view/IWindowManager$Stub$Proxy;->registerDisplayWindowListener(Landroid/view/IDisplayWindowListener;)V
+HSPLandroid/view/IWindowManager$Stub$Proxy;->registerPinnedStackListener(ILandroid/view/IPinnedStackListener;)V
+HSPLandroid/view/IWindowManager$Stub$Proxy;->registerShortcutKey(JLcom/android/internal/policy/IShortcutService;)V
+HSPLandroid/view/IWindowManager$Stub$Proxy;->registerWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)Z
+HSPLandroid/view/IWindowManager$Stub$Proxy;->setDisplayWindowRotationController(Landroid/view/IDisplayWindowRotationController;)V
+HSPLandroid/view/IWindowManager$Stub$Proxy;->setDockedStackDividerTouchRegion(Landroid/graphics/Rect;)V
+HSPLandroid/view/IWindowManager$Stub$Proxy;->setNavBarVirtualKeyHapticFeedbackEnabled(Z)V
 HSPLandroid/view/IWindowManager$Stub$Proxy;->useBLAST()Z
+HSPLandroid/view/IWindowManager$Stub$Proxy;->watchRotation(Landroid/view/IRotationWatcher;I)I
+HSPLandroid/view/IWindowManager$Stub;-><init>()V
 HSPLandroid/view/IWindowManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowManager;
+HSPLandroid/view/IWindowManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/view/IWindowSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/view/IWindowSession$Stub$Proxy;->addToDisplay(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/InputChannel;Landroid/view/InsetsState;)I
 HSPLandroid/view/IWindowSession$Stub$Proxy;->finishDrawing(Landroid/view/IWindow;Landroid/view/SurfaceControl$Transaction;)V
 HSPLandroid/view/IWindowSession$Stub$Proxy;->getDisplayFrame(Landroid/view/IWindow;Landroid/graphics/Rect;)V
 HSPLandroid/view/IWindowSession$Stub$Proxy;->getInTouchMode()Z
+HSPLandroid/view/IWindowSession$Stub$Proxy;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId;
+HSPLandroid/view/IWindowSession$Stub$Proxy;->insetsModified(Landroid/view/IWindow;Landroid/view/InsetsState;)V
 HSPLandroid/view/IWindowSession$Stub$Proxy;->onRectangleOnScreenRequested(Landroid/os/IBinder;Landroid/graphics/Rect;)V
+HSPLandroid/view/IWindowSession$Stub$Proxy;->performHapticFeedback(IZ)Z
 HSPLandroid/view/IWindowSession$Stub$Proxy;->pokeDrawLock(Landroid/os/IBinder;)V
+HSPLandroid/view/IWindowSession$Stub$Proxy;->relayout(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IIIIJLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/util/MergedConfiguration;Landroid/view/SurfaceControl;Landroid/view/InsetsState;)I
+HSPLandroid/view/IWindowSession$Stub$Proxy;->relayout(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IIIIJLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/util/MergedConfiguration;Landroid/view/SurfaceControl;Landroid/view/InsetsState;Landroid/graphics/Point;)I
 HSPLandroid/view/IWindowSession$Stub$Proxy;->relayout(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IIIIJLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/util/MergedConfiguration;Landroid/view/SurfaceControl;Landroid/view/InsetsState;Landroid/graphics/Point;Landroid/view/SurfaceControl;)I
 HSPLandroid/view/IWindowSession$Stub$Proxy;->remove(Landroid/view/IWindow;)V
 HSPLandroid/view/IWindowSession$Stub$Proxy;->reportSystemGestureExclusionChanged(Landroid/view/IWindow;Ljava/util/List;)V
+HSPLandroid/view/IWindowSession$Stub$Proxy;->setInsets(Landroid/view/IWindow;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
+HSPLandroid/view/IWindowSession$Stub$Proxy;->setTransparentRegion(Landroid/view/IWindow;Landroid/graphics/Region;)V
+HSPLandroid/view/IWindowSession$Stub$Proxy;->updatePointerIcon(Landroid/view/IWindow;)V
+HSPLandroid/view/IWindowSession$Stub$Proxy;->wallpaperOffsetsComplete(Landroid/os/IBinder;)V
+HSPLandroid/view/IWindowSession$Stub;-><init>()V
+HSPLandroid/view/IWindowSession$Stub;->asBinder()Landroid/os/IBinder;
 HSPLandroid/view/IWindowSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowSession;
+HSPLandroid/view/IWindowSession$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/IWindowSessionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IWindowSessionCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/view/IWindowSessionCallback$Stub;-><init>()V
 HSPLandroid/view/IWindowSessionCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IWindowSessionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowSessionCallback;
 HSPLandroid/view/ImeFocusController;-><init>(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/ImeFocusController;->checkFocus(ZZ)Z
 HSPLandroid/view/ImeFocusController;->getImmDelegate()Landroid/view/ImeFocusController$InputMethodManagerDelegate;
+HSPLandroid/view/ImeFocusController;->getNextServedView()Landroid/view/View;
 HSPLandroid/view/ImeFocusController;->getServedView()Landroid/view/View;
 HSPLandroid/view/ImeFocusController;->hasImeFocus()Z
 HSPLandroid/view/ImeFocusController;->isInLocalFocusMode(Landroid/view/WindowManager$LayoutParams;)Z
@@ -12193,24 +24501,58 @@
 HSPLandroid/view/ImeFocusController;->setNextServedView(Landroid/view/View;)V
 HSPLandroid/view/ImeFocusController;->setServedView(Landroid/view/View;)V
 HSPLandroid/view/ImeFocusController;->updateImeFocusable(Landroid/view/WindowManager$LayoutParams;Z)Z
+HSPLandroid/view/ImeInsetsSourceConsumer;-><init>(Landroid/view/InsetsState;Ljava/util/function/Supplier;Landroid/view/InsetsController;)V
+HSPLandroid/view/ImeInsetsSourceConsumer;->getImm()Landroid/view/inputmethod/InputMethodManager;
+HSPLandroid/view/ImeInsetsSourceConsumer;->isDummyOrEmptyEditor(Landroid/view/inputmethod/EditorInfo;)Z
+HSPLandroid/view/ImeInsetsSourceConsumer;->onServedEditorChanged(Landroid/view/inputmethod/EditorInfo;)V
+HSPLandroid/view/ImeInsetsSourceConsumer;->onWindowFocusGained()V
+HSPLandroid/view/ImeInsetsSourceConsumer;->onWindowFocusLost()V
+HSPLandroid/view/ImeInsetsSourceConsumer;->setControl(Landroid/view/InsetsSourceControl;[I[I)V
+HSPLandroid/view/InputApplicationHandle;-><init>(Landroid/os/IBinder;)V
+HPLandroid/view/InputApplicationHandle;->finalize()V
 HSPLandroid/view/InputChannel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InputChannel;
 HSPLandroid/view/InputChannel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/InputChannel;-><init>()V
 HSPLandroid/view/InputChannel;->dispose()V
+HPLandroid/view/InputChannel;->dup()Landroid/view/InputChannel;
 HSPLandroid/view/InputChannel;->finalize()V
+HSPLandroid/view/InputChannel;->getToken()Landroid/os/IBinder;
+HSPLandroid/view/InputChannel;->openInputChannelPair(Ljava/lang/String;)[Landroid/view/InputChannel;
 HSPLandroid/view/InputChannel;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/view/InputChannel;->transferTo(Landroid/view/InputChannel;)V
+HSPLandroid/view/InputChannel;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/InputDevice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InputDevice;
 HSPLandroid/view/InputDevice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/InputDevice$MotionRange;-><init>(IIFFFFF)V
 HSPLandroid/view/InputDevice$MotionRange;-><init>(IIFFFFFLandroid/view/InputDevice$1;)V
+HSPLandroid/view/InputDevice$MotionRange;->access$100(Landroid/view/InputDevice$MotionRange;)I
+HSPLandroid/view/InputDevice$MotionRange;->access$200(Landroid/view/InputDevice$MotionRange;)I
+HSPLandroid/view/InputDevice$MotionRange;->access$400(Landroid/view/InputDevice$MotionRange;)F
+HSPLandroid/view/InputDevice$MotionRange;->access$500(Landroid/view/InputDevice$MotionRange;)F
+HSPLandroid/view/InputDevice$MotionRange;->access$600(Landroid/view/InputDevice$MotionRange;)F
+HSPLandroid/view/InputDevice$MotionRange;->access$700(Landroid/view/InputDevice$MotionRange;)F
+HSPLandroid/view/InputDevice$MotionRange;->access$800(Landroid/view/InputDevice$MotionRange;)F
+HSPLandroid/view/InputDevice$MotionRange;->getAxis()I
+HSPLandroid/view/InputDevice$MotionRange;->getSource()I
+HSPLandroid/view/InputDevice;-><init>(IIILjava/lang/String;IILjava/lang/String;ZIILandroid/view/KeyCharacterMap;ZZZ)V
 HSPLandroid/view/InputDevice;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/view/InputDevice;-><init>(Landroid/os/Parcel;Landroid/view/InputDevice$1;)V
 HSPLandroid/view/InputDevice;->addMotionRange(IIFFFFF)V
 HSPLandroid/view/InputDevice;->getDevice(I)Landroid/view/InputDevice;
 HSPLandroid/view/InputDevice;->getDeviceIds()[I
 HSPLandroid/view/InputDevice;->getGeneration()I
+HSPLandroid/view/InputDevice;->getId()I
 HSPLandroid/view/InputDevice;->getKeyCharacterMap()Landroid/view/KeyCharacterMap;
+HSPLandroid/view/InputDevice;->getKeyboardType()I
+HSPLandroid/view/InputDevice;->getMotionRanges()Ljava/util/List;
 HSPLandroid/view/InputDevice;->getSources()I
+HSPLandroid/view/InputDevice;->hasKeys([I)[Z
+HSPLandroid/view/InputDevice;->isExternal()Z
+HSPLandroid/view/InputDevice;->isFullKeyboard()Z
+HSPLandroid/view/InputDevice;->isVirtual()Z
+HPLandroid/view/InputDevice;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/InputEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InputEvent;
+HPLandroid/view/InputEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/InputEvent;-><init>()V
 HSPLandroid/view/InputEvent;->getSequenceNumber()I
 HSPLandroid/view/InputEvent;->isFromSource(I)Z
@@ -12228,79 +24570,219 @@
 HSPLandroid/view/InputEventReceiver;->dispose(Z)V
 HSPLandroid/view/InputEventReceiver;->finalize()V
 HSPLandroid/view/InputEventReceiver;->finishInputEvent(Landroid/view/InputEvent;Z)V
+HSPLandroid/view/InputEventReceiver;->onBatchedInputEventPending()V
 HSPLandroid/view/InputEventSender;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V
 HSPLandroid/view/InputEventSender;->dispatchInputEventFinished(IZ)V
 HSPLandroid/view/InputEventSender;->dispose()V
 HSPLandroid/view/InputEventSender;->dispose(Z)V
 HSPLandroid/view/InputEventSender;->finalize()V
 HSPLandroid/view/InputEventSender;->sendInputEvent(ILandroid/view/InputEvent;)Z
+HSPLandroid/view/InputMonitor$1;-><init>()V
+HSPLandroid/view/InputMonitor$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InputMonitor;
+HSPLandroid/view/InputMonitor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/InputMonitor;-><clinit>()V
+HSPLandroid/view/InputMonitor;-><init>(Landroid/os/Parcel;)V
+HPLandroid/view/InputMonitor;-><init>(Landroid/view/InputChannel;Landroid/view/IInputMonitorHost;)V
+HSPLandroid/view/InputMonitor;->dispose()V
+HSPLandroid/view/InputMonitor;->getInputChannel()Landroid/view/InputChannel;
+HSPLandroid/view/InputMonitor;->pilferPointers()V
+HSPLandroid/view/InputMonitor;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/InputWindowHandle;-><init>(Landroid/view/InputApplicationHandle;I)V
+HPLandroid/view/InputWindowHandle;->finalize()V
+PLandroid/view/InputWindowHandle;->setTouchableRegionCrop(Landroid/view/SurfaceControl;)V
+HSPLandroid/view/InsetsAnimationControlImpl;->addTranslationToMatrix(IILandroid/graphics/Matrix;Landroid/graphics/Rect;)V
+HSPLandroid/view/InsetsAnimationControlImpl;->applyChangeInsets(Landroid/view/InsetsState;)Z
+HSPLandroid/view/InsetsAnimationControlImpl;->buildTypeSourcesMap(Landroid/util/SparseIntArray;Landroid/util/SparseSetArray;Landroid/util/SparseArray;)V
+HSPLandroid/view/InsetsAnimationControlImpl;->calculateInsets(Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/util/SparseArray;ZLandroid/util/SparseIntArray;)Landroid/graphics/Insets;
+HSPLandroid/view/InsetsAnimationControlImpl;->finish(Z)V
+HSPLandroid/view/InsetsAnimationControlImpl;->getAnimation()Landroid/view/WindowInsetsAnimation;
+HSPLandroid/view/InsetsAnimationControlImpl;->getCurrentAlpha()F
+HSPLandroid/view/InsetsAnimationControlImpl;->getHiddenStateInsets()Landroid/graphics/Insets;
+HSPLandroid/view/InsetsAnimationControlImpl;->getInsetsFromState(Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/util/SparseIntArray;)Landroid/graphics/Insets;
+HSPLandroid/view/InsetsAnimationControlImpl;->getListener()Landroid/view/WindowInsetsAnimationControlListener;
+HSPLandroid/view/InsetsAnimationControlImpl;->getShownStateInsets()Landroid/graphics/Insets;
+HSPLandroid/view/InsetsAnimationControlImpl;->getTypes()I
+HSPLandroid/view/InsetsAnimationControlImpl;->isCancelled()Z
+HSPLandroid/view/InsetsAnimationControlImpl;->sanitize(F)F
+HSPLandroid/view/InsetsAnimationControlImpl;->sanitize(Landroid/graphics/Insets;)Landroid/graphics/Insets;
+HSPLandroid/view/InsetsAnimationControlImpl;->setInsetsAndAlpha(Landroid/graphics/Insets;FF)V
+HSPLandroid/view/InsetsAnimationControlImpl;->updateLeashesForSide(IIIILjava/util/ArrayList;Landroid/view/InsetsState;Ljava/lang/Float;)V
+HSPLandroid/view/InsetsController$1;-><init>(Landroid/view/InsetsController;Landroid/view/InsetsAnimationControlImpl;Landroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;Landroid/view/WindowInsetsAnimationControlListener;I)V
+HSPLandroid/view/InsetsController$1;->onPreDraw()Z
+HSPLandroid/view/InsetsController$InsetsProperty;-><init>()V
+HSPLandroid/view/InsetsController$InsetsProperty;->set(Landroid/view/WindowInsetsAnimationController;Landroid/graphics/Insets;)V
+HSPLandroid/view/InsetsController$InsetsProperty;->set(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLandroid/view/InsetsController$InternalAnimationControlListener$1;-><init>(Landroid/view/InsetsController$InternalAnimationControlListener;)V
+HSPLandroid/view/InsetsController$InternalAnimationControlListener$1;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/view/InsetsController$InternalAnimationControlListener;-><init>(Z)V
+HSPLandroid/view/InsetsController$InternalAnimationControlListener;->getDurationMs()J
+HSPLandroid/view/InsetsController$InternalAnimationControlListener;->getRawFraction()F
+HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onAnimationFinish()V
+HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onReady(Landroid/view/WindowInsetsAnimationController;I)V
+HSPLandroid/view/InsetsController$RunningAnimation;-><init>(Landroid/view/InsetsAnimationControlImpl;I)V
 HSPLandroid/view/InsetsController;-><init>(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/InsetsController;-><init>(Landroid/view/ViewRootImpl;Ljava/util/function/BiFunction;Landroid/os/Handler;)V
+HSPLandroid/view/InsetsController;->abortPendingImeControlRequest()V
+HSPLandroid/view/InsetsController;->access$000()Landroid/animation/TypeEvaluator;
+HSPLandroid/view/InsetsController;->access$100(Landroid/view/InsetsController;)Landroid/view/ViewRootImpl;
+HSPLandroid/view/InsetsController;->applyAnimation(IZZ)V
 HSPLandroid/view/InsetsController;->applyLocalVisibilityOverride()V
+HSPLandroid/view/InsetsController;->applySurfaceParams([Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V
+HSPLandroid/view/InsetsController;->calculateInsets(ZZLandroid/view/DisplayCutout;Landroid/graphics/Rect;Landroid/graphics/Rect;I)Landroid/view/WindowInsets;
 HSPLandroid/view/InsetsController;->calculateInsets(ZZLandroid/view/DisplayCutout;Landroid/graphics/Rect;Landroid/graphics/Rect;II)Landroid/view/WindowInsets;
 HSPLandroid/view/InsetsController;->calculateVisibleInsets(Landroid/graphics/Rect;I)Landroid/graphics/Rect;
+HSPLandroid/view/InsetsController;->cancelAnimation(Landroid/view/InsetsAnimationControlImpl;Z)V
+HSPLandroid/view/InsetsController;->cancelExistingControllers(I)V
+HSPLandroid/view/InsetsController;->collectSourceControls(ZLandroid/util/ArraySet;Landroid/util/SparseArray;I)Landroid/util/Pair;
+HSPLandroid/view/InsetsController;->controlAnimationUnchecked(ILandroid/view/WindowInsetsAnimationControlListener;Landroid/graphics/Rect;ZJLandroid/view/animation/Interpolator;ZII)Landroid/os/CancellationSignal;
+HSPLandroid/view/InsetsController;->dispatchAnimationEnd(Landroid/view/WindowInsetsAnimation;)V
+HSPLandroid/view/InsetsController;->getAnimationType(I)I
+HSPLandroid/view/InsetsController;->getLastDispatchedState()Landroid/view/InsetsState;
+HSPLandroid/view/InsetsController;->getSourceConsumer(I)Landroid/view/InsetsSourceConsumer;
 HSPLandroid/view/InsetsController;->getState()Landroid/view/InsetsState;
+HSPLandroid/view/InsetsController;->getViewRoot()Landroid/view/ViewRootImpl;
+HSPLandroid/view/InsetsController;->hide(IZ)V
+HSPLandroid/view/InsetsController;->lambda$new$1(Landroid/view/InsetsController;Ljava/lang/Integer;)Landroid/view/InsetsSourceConsumer;
+HSPLandroid/view/InsetsController;->lambda$new$2$InsetsController()V
+HSPLandroid/view/InsetsController;->lambda$static$0(FLandroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets;
+HSPLandroid/view/InsetsController;->notifyControlRevoked(Landroid/view/InsetsSourceConsumer;)V
+HSPLandroid/view/InsetsController;->notifyFinished(Landroid/view/InsetsAnimationControlImpl;Z)V
+HSPLandroid/view/InsetsController;->notifyVisibilityChanged()V
+HSPLandroid/view/InsetsController;->onControlsChanged([Landroid/view/InsetsSourceControl;)V
 HSPLandroid/view/InsetsController;->onFrameChanged(Landroid/graphics/Rect;)V
 HSPLandroid/view/InsetsController;->onStateChanged(Landroid/view/InsetsState;)Z
+HSPLandroid/view/InsetsController;->onWindowFocusGained()V
+HSPLandroid/view/InsetsController;->onWindowFocusLost()V
+HSPLandroid/view/InsetsController;->scheduleApplyChangeInsets()V
+HSPLandroid/view/InsetsController;->sendStateToWindowManager()V
+HSPLandroid/view/InsetsController;->show(IZ)V
+HSPLandroid/view/InsetsController;->startAnimation(Landroid/view/InsetsAnimationControlImpl;Landroid/view/WindowInsetsAnimationControlListener;ILandroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;I)V
+HSPLandroid/view/InsetsController;->updateCompatSysUiVisibility(IZZ)V
 HSPLandroid/view/InsetsFlags;-><init>()V
+HSPLandroid/view/InsetsFlags;->convertFlag(III)I
+HSPLandroid/view/InsetsFlags;->convertNoFlag(III)I
+HSPLandroid/view/InsetsFlags;->getAppearance(I)I
 HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsSource;
 HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/InsetsSource;-><init>(I)V
 HSPLandroid/view/InsetsSource;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/view/InsetsSource;-><init>(Landroid/view/InsetsSource;)V
 HSPLandroid/view/InsetsSource;->calculateInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;Z)Landroid/graphics/Insets;
 HSPLandroid/view/InsetsSource;->calculateInsets(Landroid/graphics/Rect;Z)Landroid/graphics/Insets;
+HSPLandroid/view/InsetsSource;->calculateVisibleInsets(Landroid/graphics/Rect;)Landroid/graphics/Insets;
 HSPLandroid/view/InsetsSource;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/InsetsSource;->getFrame()Landroid/graphics/Rect;
 HSPLandroid/view/InsetsSource;->getType()I
 HSPLandroid/view/InsetsSource;->isVisible()Z
+HSPLandroid/view/InsetsSource;->setFrame(Landroid/graphics/Rect;)V
+HSPLandroid/view/InsetsSource;->setVisible(Z)V
+HPLandroid/view/InsetsSource;->setVisibleFrame(Landroid/graphics/Rect;)V
+HSPLandroid/view/InsetsSource;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/InsetsSourceConsumer;-><init>(ILandroid/view/InsetsState;Ljava/util/function/Supplier;Landroid/view/InsetsController;)V
+HSPLandroid/view/InsetsSourceConsumer;->applyHiddenToControl()V
+HSPLandroid/view/InsetsSourceConsumer;->applyLocalVisibilityOverride()Z
+HSPLandroid/view/InsetsSourceConsumer;->getControl()Landroid/view/InsetsSourceControl;
+HSPLandroid/view/InsetsSourceConsumer;->getType()I
+HSPLandroid/view/InsetsSourceConsumer;->hide()V
+HSPLandroid/view/InsetsSourceConsumer;->isRequestedVisible()Z
+HSPLandroid/view/InsetsSourceConsumer;->onWindowFocusGained()V
+HSPLandroid/view/InsetsSourceConsumer;->onWindowFocusLost()V
+HSPLandroid/view/InsetsSourceConsumer;->setControl(Landroid/view/InsetsSourceControl;[I[I)V
+HSPLandroid/view/InsetsSourceConsumer;->setRequestedVisible(Z)V
+HSPLandroid/view/InsetsSourceControl$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsSourceControl;
+HSPLandroid/view/InsetsSourceControl$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/InsetsSourceControl$1;->newArray(I)[Landroid/view/InsetsSourceControl;
+HSPLandroid/view/InsetsSourceControl$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/view/InsetsSourceControl;-><init>(ILandroid/view/SurfaceControl;Landroid/graphics/Point;)V
+HSPLandroid/view/InsetsSourceControl;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/InsetsSourceControl;->getLeash()Landroid/view/SurfaceControl;
+HSPLandroid/view/InsetsSourceControl;->getSurfacePosition()Landroid/graphics/Point;
+HSPLandroid/view/InsetsSourceControl;->getType()I
 HSPLandroid/view/InsetsState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsState;
 HSPLandroid/view/InsetsState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/InsetsState;-><init>()V
 HSPLandroid/view/InsetsState;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/InsetsState;-><init>(Landroid/view/InsetsState;Z)V
 HSPLandroid/view/InsetsState;->calculateInsets(Landroid/graphics/Rect;ZZLandroid/view/DisplayCutout;Landroid/graphics/Rect;Landroid/graphics/Rect;IILandroid/util/SparseIntArray;)Landroid/view/WindowInsets;
+HSPLandroid/view/InsetsState;->calculateInsets(Landroid/graphics/Rect;ZZLandroid/view/DisplayCutout;Landroid/graphics/Rect;Landroid/graphics/Rect;ILandroid/util/SparseIntArray;)Landroid/view/WindowInsets;
 HSPLandroid/view/InsetsState;->calculateVisibleInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;I)Landroid/graphics/Rect;
+HSPLandroid/view/InsetsState;->containsType([II)Z
 HSPLandroid/view/InsetsState;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/InsetsState;->getDefaultVisibility(I)Z
+HSPLandroid/view/InsetsState;->getDisplayFrame()Landroid/graphics/Rect;
+HSPLandroid/view/InsetsState;->getInsetSide(Landroid/graphics/Insets;)I
 HSPLandroid/view/InsetsState;->getSource(I)Landroid/view/InsetsSource;
 HSPLandroid/view/InsetsState;->processSource(Landroid/view/InsetsSource;Landroid/graphics/Rect;Z[Landroid/graphics/Insets;Landroid/util/SparseIntArray;[Z)V
 HSPLandroid/view/InsetsState;->processSourceAsPublicType(Landroid/view/InsetsSource;[Landroid/graphics/Insets;Landroid/util/SparseIntArray;[ZLandroid/graphics/Insets;I)V
 HSPLandroid/view/InsetsState;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;)V
 HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;Z)V
+HSPLandroid/view/InsetsState;->setDisplayFrame(Landroid/graphics/Rect;)V
+HSPLandroid/view/InsetsState;->toInternalType(I)Landroid/util/ArraySet;
 HSPLandroid/view/InsetsState;->toPublicType(I)I
 HSPLandroid/view/InsetsState;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/KeyCharacterMap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/KeyCharacterMap;
 HSPLandroid/view/KeyCharacterMap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/KeyCharacterMap;-><init>(J)V
 HSPLandroid/view/KeyCharacterMap;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/view/KeyCharacterMap;-><init>(Landroid/os/Parcel;Landroid/view/KeyCharacterMap$1;)V
+HSPLandroid/view/KeyCharacterMap;->finalize()V
 HSPLandroid/view/KeyCharacterMap;->get(II)I
+HSPLandroid/view/KeyCharacterMap;->getKeyboardType()I
+HSPLandroid/view/KeyCharacterMap;->getModifierBehavior()I
 HSPLandroid/view/KeyCharacterMap;->load(I)Landroid/view/KeyCharacterMap;
+HPLandroid/view/KeyCharacterMap;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/KeyEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/KeyEvent;
+HSPLandroid/view/KeyEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/KeyEvent$DispatcherState;-><init>()V
 HSPLandroid/view/KeyEvent$DispatcherState;->handleUpEvent(Landroid/view/KeyEvent;)V
+HSPLandroid/view/KeyEvent$DispatcherState;->isTracking(Landroid/view/KeyEvent;)Z
 HSPLandroid/view/KeyEvent$DispatcherState;->reset()V
 HSPLandroid/view/KeyEvent$DispatcherState;->reset(Ljava/lang/Object;)V
 HSPLandroid/view/KeyEvent$DispatcherState;->startTracking(Landroid/view/KeyEvent;Ljava/lang/Object;)V
 HSPLandroid/view/KeyEvent;-><init>()V
+HSPLandroid/view/KeyEvent;-><init>(JJIIIIIII)V
+HPLandroid/view/KeyEvent;-><init>(JJIIIIIIII)V
+HSPLandroid/view/KeyEvent;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/view/KeyEvent;->access$076(Landroid/view/KeyEvent;I)I
+HSPLandroid/view/KeyEvent;->actionToString(I)Ljava/lang/String;
+HSPLandroid/view/KeyEvent;->createFromParcelBody(Landroid/os/Parcel;)Landroid/view/KeyEvent;
 HSPLandroid/view/KeyEvent;->dispatch(Landroid/view/KeyEvent$Callback;Landroid/view/KeyEvent$DispatcherState;Ljava/lang/Object;)Z
 HSPLandroid/view/KeyEvent;->getAction()I
 HSPLandroid/view/KeyEvent;->getDeviceId()I
+HSPLandroid/view/KeyEvent;->getEventTime()J
 HSPLandroid/view/KeyEvent;->getEventTimeNano()J
 HSPLandroid/view/KeyEvent;->getFlags()I
 HSPLandroid/view/KeyEvent;->getKeyCharacterMap()Landroid/view/KeyCharacterMap;
 HSPLandroid/view/KeyEvent;->getKeyCode()I
 HSPLandroid/view/KeyEvent;->getMetaState()I
 HSPLandroid/view/KeyEvent;->getRepeatCount()I
+HSPLandroid/view/KeyEvent;->getScanCode()I
 HSPLandroid/view/KeyEvent;->getSource()I
 HSPLandroid/view/KeyEvent;->getUnicodeChar()I
 HSPLandroid/view/KeyEvent;->getUnicodeChar(I)I
+HSPLandroid/view/KeyEvent;->hasNoModifiers()Z
+HSPLandroid/view/KeyEvent;->isAltPressed()Z
 HSPLandroid/view/KeyEvent;->isCanceled()Z
+HSPLandroid/view/KeyEvent;->isConfirmKey(I)Z
+HSPLandroid/view/KeyEvent;->isCtrlPressed()Z
+HSPLandroid/view/KeyEvent;->isGamepadButton(I)Z
 HSPLandroid/view/KeyEvent;->isLongPress()Z
+HPLandroid/view/KeyEvent;->isMetaPressed()Z
 HSPLandroid/view/KeyEvent;->isModifierKey(I)Z
 HSPLandroid/view/KeyEvent;->isTracking()Z
+HPLandroid/view/KeyEvent;->isWakeKey(I)Z
+HSPLandroid/view/KeyEvent;->keyCodeToString(I)Ljava/lang/String;
+HSPLandroid/view/KeyEvent;->metaStateHasNoModifiers(I)Z
+HSPLandroid/view/KeyEvent;->metaStateToString(I)Ljava/lang/String;
 HSPLandroid/view/KeyEvent;->normalizeMetaState(I)I
 HSPLandroid/view/KeyEvent;->obtain()Landroid/view/KeyEvent;
+HSPLandroid/view/KeyEvent;->obtain(JJIIIIIIIIILjava/lang/String;)Landroid/view/KeyEvent;
 HSPLandroid/view/KeyEvent;->obtain(JJIIIIIIIII[BLjava/lang/String;)Landroid/view/KeyEvent;
+HSPLandroid/view/KeyEvent;->recycle()V
 HSPLandroid/view/KeyEvent;->recycleIfNeededAfterDispatch()V
 HSPLandroid/view/KeyEvent;->startTracking()V
+HSPLandroid/view/KeyEvent;->toString()Ljava/lang/String;
 HSPLandroid/view/KeyEvent;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/LayoutInflater$FactoryMerger;-><init>(Landroid/view/LayoutInflater$Factory;Landroid/view/LayoutInflater$Factory2;Landroid/view/LayoutInflater$Factory;Landroid/view/LayoutInflater$Factory2;)V
 HSPLandroid/view/LayoutInflater$FactoryMerger;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
@@ -12315,6 +24797,7 @@
 HSPLandroid/view/LayoutInflater;->from(Landroid/content/Context;)Landroid/view/LayoutInflater;
 HSPLandroid/view/LayoutInflater;->getContext()Landroid/content/Context;
 HSPLandroid/view/LayoutInflater;->getFactory()Landroid/view/LayoutInflater$Factory;
+HSPLandroid/view/LayoutInflater;->getFactory2()Landroid/view/LayoutInflater$Factory2;
 HSPLandroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;)Landroid/view/View;
 HSPLandroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View;
 HSPLandroid/view/LayoutInflater;->inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/ViewGroup;Z)Landroid/view/View;
@@ -12332,7 +24815,19 @@
 HSPLandroid/view/LayoutInflater;->tryCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
 HSPLandroid/view/LayoutInflater;->tryInflatePrecompiled(ILandroid/content/res/Resources;Landroid/view/ViewGroup;Z)Landroid/view/View;
 HSPLandroid/view/LayoutInflater;->verifyClassLoader(Ljava/lang/reflect/Constructor;)Z
+HSPLandroid/view/MenuInflater$MenuState;-><init>(Landroid/view/MenuInflater;Landroid/view/Menu;)V
+HSPLandroid/view/MenuInflater$MenuState;->access$000(Landroid/view/MenuInflater$MenuState;)Landroid/view/ActionProvider;
+HSPLandroid/view/MenuInflater$MenuState;->addItem()Landroid/view/MenuItem;
+HSPLandroid/view/MenuInflater$MenuState;->getShortcut(Ljava/lang/String;)C
+HSPLandroid/view/MenuInflater$MenuState;->hasAddedItem()Z
+HSPLandroid/view/MenuInflater$MenuState;->readItem(Landroid/util/AttributeSet;)V
+HSPLandroid/view/MenuInflater$MenuState;->resetGroup()V
+HSPLandroid/view/MenuInflater$MenuState;->setItem(Landroid/view/MenuItem;)V
 HSPLandroid/view/MenuInflater;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/MenuInflater;->access$100(Landroid/view/MenuInflater;)Landroid/content/Context;
+HSPLandroid/view/MenuInflater;->inflate(ILandroid/view/Menu;)V
+HSPLandroid/view/MenuInflater;->parseMenu(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/view/Menu;)V
+HSPLandroid/view/MenuInflater;->registerMenu(Landroid/view/MenuItem;Landroid/util/AttributeSet;)V
 HSPLandroid/view/MotionEvent$PointerCoords;-><init>()V
 HSPLandroid/view/MotionEvent$PointerCoords;->clear()V
 HSPLandroid/view/MotionEvent$PointerCoords;->createArray(I)[Landroid/view/MotionEvent$PointerCoords;
@@ -12346,42 +24841,111 @@
 HSPLandroid/view/MotionEvent;->getAction()I
 HSPLandroid/view/MotionEvent;->getActionIndex()I
 HSPLandroid/view/MotionEvent;->getActionMasked()I
+HSPLandroid/view/MotionEvent;->getAxisValue(I)F
 HSPLandroid/view/MotionEvent;->getButtonState()I
 HSPLandroid/view/MotionEvent;->getClassification()I
+HSPLandroid/view/MotionEvent;->getDeviceId()I
 HSPLandroid/view/MotionEvent;->getDownTime()J
+HSPLandroid/view/MotionEvent;->getEdgeFlags()I
 HSPLandroid/view/MotionEvent;->getEventTime()J
 HSPLandroid/view/MotionEvent;->getEventTimeNano()J
 HSPLandroid/view/MotionEvent;->getFlags()I
 HSPLandroid/view/MotionEvent;->getHistoricalEventTime(I)J
 HSPLandroid/view/MotionEvent;->getHistoricalEventTimeNano(I)J
+HSPLandroid/view/MotionEvent;->getHistoricalPointerCoords(IILandroid/view/MotionEvent$PointerCoords;)V
 HSPLandroid/view/MotionEvent;->getHistoricalX(II)F
 HSPLandroid/view/MotionEvent;->getHistoricalY(II)F
 HSPLandroid/view/MotionEvent;->getHistorySize()I
+HSPLandroid/view/MotionEvent;->getId()I
 HSPLandroid/view/MotionEvent;->getMetaState()I
+HSPLandroid/view/MotionEvent;->getOrientation()F
 HSPLandroid/view/MotionEvent;->getPointerCount()I
 HSPLandroid/view/MotionEvent;->getPointerId(I)I
 HSPLandroid/view/MotionEvent;->getPointerIdBits()I
+HSPLandroid/view/MotionEvent;->getPointerProperties(ILandroid/view/MotionEvent$PointerProperties;)V
+HSPLandroid/view/MotionEvent;->getPressure(I)F
 HSPLandroid/view/MotionEvent;->getRawX()F
 HSPLandroid/view/MotionEvent;->getRawY()F
 HSPLandroid/view/MotionEvent;->getSource()I
 HSPLandroid/view/MotionEvent;->getToolType(I)I
+HSPLandroid/view/MotionEvent;->getTouchMajor()F
+HSPLandroid/view/MotionEvent;->getTouchMinor()F
 HSPLandroid/view/MotionEvent;->getX()F
 HSPLandroid/view/MotionEvent;->getX(I)F
+HSPLandroid/view/MotionEvent;->getXPrecision()F
 HSPLandroid/view/MotionEvent;->getY()F
 HSPLandroid/view/MotionEvent;->getY(I)F
+HSPLandroid/view/MotionEvent;->getYPrecision()F
 HSPLandroid/view/MotionEvent;->initialize(IIIIIIIIIFFFFJJI[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;)Z
+HSPLandroid/view/MotionEvent;->isButtonPressed(I)Z
 HSPLandroid/view/MotionEvent;->isTouchEvent()Z
 HSPLandroid/view/MotionEvent;->obtain()Landroid/view/MotionEvent;
 HSPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFII)Landroid/view/MotionEvent;
 HSPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFIIII)Landroid/view/MotionEvent;
 HSPLandroid/view/MotionEvent;->obtain(JJIFFI)Landroid/view/MotionEvent;
+HSPLandroid/view/MotionEvent;->obtain(JJII[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;IIFFIIII)Landroid/view/MotionEvent;
+HSPLandroid/view/MotionEvent;->obtain(JJII[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;IIFFIIIII)Landroid/view/MotionEvent;
 HSPLandroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
+HSPLandroid/view/MotionEvent;->obtainNoHistory(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
 HSPLandroid/view/MotionEvent;->offsetLocation(FF)V
 HSPLandroid/view/MotionEvent;->recycle()V
 HSPLandroid/view/MotionEvent;->setAction(I)V
 HSPLandroid/view/MotionEvent;->setCursorPosition(FF)V
+HSPLandroid/view/MotionEvent;->setLocation(FF)V
+HSPLandroid/view/MotionEvent;->setSource(I)V
+HSPLandroid/view/MotionEvent;->split(I)Landroid/view/MotionEvent;
 HSPLandroid/view/MotionEvent;->transform(Landroid/graphics/Matrix;)V
 HSPLandroid/view/MotionEvent;->updateCursorPosition()V
+HSPLandroid/view/NotificationHeaderView$1;-><init>(Landroid/view/NotificationHeaderView;)V
+HSPLandroid/view/NotificationHeaderView$HeaderTouchListener;-><init>(Landroid/view/NotificationHeaderView;)V
+HSPLandroid/view/NotificationHeaderView$HeaderTouchListener;->addRectAroundView(Landroid/view/View;)Landroid/graphics/Rect;
+HSPLandroid/view/NotificationHeaderView$HeaderTouchListener;->addWidthRect()V
+HSPLandroid/view/NotificationHeaderView$HeaderTouchListener;->bindTouchRects()V
+HSPLandroid/view/NotificationHeaderView$HeaderTouchListener;->getRectAroundView(Landroid/view/View;)Landroid/graphics/Rect;
+HSPLandroid/view/NotificationHeaderView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/view/NotificationHeaderView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/view/NotificationHeaderView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/view/NotificationHeaderView;->access$100(Landroid/view/NotificationHeaderView;)Lcom/android/internal/widget/CachingIconView;
+HSPLandroid/view/NotificationHeaderView;->access$200(Landroid/view/NotificationHeaderView;)Landroid/widget/ImageView;
+HSPLandroid/view/NotificationHeaderView;->access$300(Landroid/view/NotificationHeaderView;)Landroid/view/View;
+HSPLandroid/view/NotificationHeaderView;->access$400(Landroid/view/NotificationHeaderView;)Landroid/view/View;
+HSPLandroid/view/NotificationHeaderView;->drawableStateChanged()V
+HSPLandroid/view/NotificationHeaderView;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
+HSPLandroid/view/NotificationHeaderView;->getFirstChildNotGone()Landroid/view/View;
+HSPLandroid/view/NotificationHeaderView;->getHeaderTextMarginEnd()I
+HSPLandroid/view/NotificationHeaderView;->getIcon()Lcom/android/internal/widget/CachingIconView;
+HSPLandroid/view/NotificationHeaderView;->getOriginalIconColor()I
+HSPLandroid/view/NotificationHeaderView;->getOriginalNotificationColor()I
+HSPLandroid/view/NotificationHeaderView;->hasOverlappingRendering()Z
+HSPLandroid/view/NotificationHeaderView;->onFinishInflate()V
+HSPLandroid/view/NotificationHeaderView;->onLayout(ZIIII)V
+HSPLandroid/view/NotificationHeaderView;->onMeasure(II)V
+HSPLandroid/view/NotificationHeaderView;->setAcceptAllTouches(Z)V
+HSPLandroid/view/NotificationHeaderView;->setAppOpsOnClickListener(Landroid/view/View$OnClickListener;)V
+HSPLandroid/view/NotificationHeaderView;->setExpanded(Z)V
+HSPLandroid/view/NotificationHeaderView;->setHeaderBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/view/NotificationHeaderView;->setOnClickListener(Landroid/view/View$OnClickListener;)V
+HSPLandroid/view/NotificationHeaderView;->setOriginalIconColor(I)V
+HSPLandroid/view/NotificationHeaderView;->setOriginalNotificationColor(I)V
+HSPLandroid/view/NotificationHeaderView;->setRecentlyAudiblyAlerted(Z)V
+HSPLandroid/view/NotificationHeaderView;->setShowExpandButtonAtEnd(Z)V
+HSPLandroid/view/NotificationHeaderView;->showAppOpsIcons(Landroid/util/ArraySet;)V
+HSPLandroid/view/NotificationHeaderView;->updateExpandButton()V
+HSPLandroid/view/NotificationHeaderView;->updateTouchListener()V
+HSPLandroid/view/OrientationEventListener$SensorEventListenerImpl;-><init>(Landroid/view/OrientationEventListener;)V
+HSPLandroid/view/OrientationEventListener$SensorEventListenerImpl;->onAccuracyChanged(Landroid/hardware/Sensor;I)V
+HSPLandroid/view/OrientationEventListener$SensorEventListenerImpl;->onSensorChanged(Landroid/hardware/SensorEvent;)V
+HSPLandroid/view/OrientationEventListener;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/OrientationEventListener;-><init>(Landroid/content/Context;I)V
+HSPLandroid/view/OrientationEventListener;->access$000(Landroid/view/OrientationEventListener;)Landroid/view/OrientationListener;
+HSPLandroid/view/OrientationEventListener;->access$100(Landroid/view/OrientationEventListener;)I
+HSPLandroid/view/OrientationEventListener;->access$102(Landroid/view/OrientationEventListener;I)I
+HSPLandroid/view/OrientationEventListener;->disable()V
+HSPLandroid/view/OrientationEventListener;->enable()V
+HSPLandroid/view/PixelCopy$1;-><init>(Landroid/view/PixelCopy$OnPixelCopyFinishedListener;I)V
+HSPLandroid/view/PixelCopy$1;->run()V
+HSPLandroid/view/PixelCopy;->request(Landroid/view/Surface;Landroid/graphics/Rect;Landroid/graphics/Bitmap;Landroid/view/PixelCopy$OnPixelCopyFinishedListener;Landroid/os/Handler;)V
+HSPLandroid/view/PixelCopy;->validateBitmapDest(Landroid/graphics/Bitmap;)V
 HSPLandroid/view/PointerIcon$2;-><init>()V
 HSPLandroid/view/PointerIcon$2;->onDisplayChanged(I)V
 HSPLandroid/view/PointerIcon;-><init>(I)V
@@ -12389,6 +24953,43 @@
 HSPLandroid/view/PointerIcon;->getSystemIcon(Landroid/content/Context;I)Landroid/view/PointerIcon;
 HSPLandroid/view/PointerIcon;->getSystemIconTypeIndex(I)I
 HSPLandroid/view/PointerIcon;->registerDisplayListener(Landroid/content/Context;)V
+HSPLandroid/view/PointerIcon;->setUseLargeIcons(Z)V
+HSPLandroid/view/RemoteAnimationAdapter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RemoteAnimationAdapter;
+HSPLandroid/view/RemoteAnimationAdapter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/RemoteAnimationAdapter;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/RemoteAnimationAdapter;-><init>(Landroid/view/IRemoteAnimationRunner;JJ)V
+HSPLandroid/view/RemoteAnimationAdapter;-><init>(Landroid/view/IRemoteAnimationRunner;JJZ)V
+HPLandroid/view/RemoteAnimationAdapter;->getCallingPid()I
+HPLandroid/view/RemoteAnimationAdapter;->getCallingUid()I
+HPLandroid/view/RemoteAnimationAdapter;->getDuration()J
+HPLandroid/view/RemoteAnimationAdapter;->getRunner()Landroid/view/IRemoteAnimationRunner;
+HPLandroid/view/RemoteAnimationAdapter;->getStatusBarTransitionDelay()J
+HPLandroid/view/RemoteAnimationAdapter;->setCallingPidUid(II)V
+HSPLandroid/view/RemoteAnimationAdapter;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/RemoteAnimationDefinition$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RemoteAnimationDefinition;
+PLandroid/view/RemoteAnimationDefinition$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;
+PLandroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;-><init>(Landroid/os/Parcel;)V
+PLandroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;-><init>(Landroid/os/Parcel;Landroid/view/RemoteAnimationDefinition$1;)V
+PLandroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;->access$000()Landroid/os/Parcelable$Creator;
+PLandroid/view/RemoteAnimationDefinition;-><init>(Landroid/os/Parcel;)V
+HPLandroid/view/RemoteAnimationDefinition;->getAdapter(ILandroid/util/ArraySet;)Landroid/view/RemoteAnimationAdapter;
+HPLandroid/view/RemoteAnimationDefinition;->hasTransition(ILandroid/util/ArraySet;)Z
+HPLandroid/view/RemoteAnimationDefinition;->linkToDeath(Landroid/os/IBinder$DeathRecipient;)V
+PLandroid/view/RemoteAnimationDefinition;->setCallingPidUid(II)V
+HSPLandroid/view/RemoteAnimationTarget$1;-><init>()V
+HSPLandroid/view/RemoteAnimationTarget$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RemoteAnimationTarget;
+HSPLandroid/view/RemoteAnimationTarget$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/RemoteAnimationTarget$1;->newArray(I)[Landroid/view/RemoteAnimationTarget;
+HSPLandroid/view/RemoteAnimationTarget$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/view/RemoteAnimationTarget;-><clinit>()V
+HPLandroid/view/RemoteAnimationTarget;-><init>(IILandroid/view/SurfaceControl;ZLandroid/graphics/Rect;Landroid/graphics/Rect;ILandroid/graphics/Point;Landroid/graphics/Rect;Landroid/app/WindowConfiguration;ZLandroid/view/SurfaceControl;Landroid/graphics/Rect;)V
+HSPLandroid/view/RemoteAnimationTarget;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/RenderNodeAnimator$DelayedAnimationHelper;->addDelayedAnimation(Landroid/view/RenderNodeAnimator;)V
+HSPLandroid/view/RenderNodeAnimator$DelayedAnimationHelper;->run()V
+HSPLandroid/view/RenderNodeAnimator;-><init>(IF)V
+HSPLandroid/view/RenderNodeAnimator;-><init>(IIFF)V
 HSPLandroid/view/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;F)V
 HSPLandroid/view/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;IF)V
 HSPLandroid/view/RenderNodeAnimator;->applyInterpolator()V
@@ -12405,29 +25006,56 @@
 HSPLandroid/view/RenderNodeAnimator;->notifyStartListeners()V
 HSPLandroid/view/RenderNodeAnimator;->onFinished()V
 HSPLandroid/view/RenderNodeAnimator;->releaseNativePtr()V
+HSPLandroid/view/RenderNodeAnimator;->setDuration(J)Landroid/animation/Animator;
 HSPLandroid/view/RenderNodeAnimator;->setDuration(J)Landroid/view/RenderNodeAnimator;
 HSPLandroid/view/RenderNodeAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V
 HSPLandroid/view/RenderNodeAnimator;->setStartDelay(J)V
 HSPLandroid/view/RenderNodeAnimator;->setStartValue(F)V
 HSPLandroid/view/RenderNodeAnimator;->setTarget(Landroid/graphics/RecordingCanvas;)V
 HSPLandroid/view/RenderNodeAnimator;->setTarget(Landroid/graphics/RenderNode;)V
+HSPLandroid/view/RenderNodeAnimator;->setTarget(Landroid/view/View;)V
 HSPLandroid/view/RenderNodeAnimator;->start()V
 HSPLandroid/view/RenderNodeAnimatorSetHelper;->createNativeInterpolator(Landroid/animation/TimeInterpolator;J)J
 HSPLandroid/view/RenderNodeAnimatorSetHelper;->getTarget(Landroid/graphics/RecordingCanvas;)Landroid/graphics/RenderNode;
+HSPLandroid/view/ScaleGestureDetector$1;-><init>(Landroid/view/ScaleGestureDetector;)V
+HSPLandroid/view/ScaleGestureDetector$SimpleOnScaleGestureListener;-><init>()V
+HSPLandroid/view/ScaleGestureDetector;-><init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;)V
 HSPLandroid/view/ScaleGestureDetector;-><init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;Landroid/os/Handler;)V
+HSPLandroid/view/ScaleGestureDetector;->getCurrentSpan()F
+HPLandroid/view/ScaleGestureDetector;->getCurrentSpanX()F
+HSPLandroid/view/ScaleGestureDetector;->getFocusX()F
+HSPLandroid/view/ScaleGestureDetector;->getFocusY()F
+HSPLandroid/view/ScaleGestureDetector;->inAnchoredScaleMode()Z
+HSPLandroid/view/ScaleGestureDetector;->onTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/ScaleGestureDetector;->setQuickScaleEnabled(Z)V
 HSPLandroid/view/ScaleGestureDetector;->setStylusScaleEnabled(Z)V
+HSPLandroid/view/Surface$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/Surface;
+HSPLandroid/view/Surface$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/Surface$CompatibleCanvas;-><init>(Landroid/view/Surface;)V
 HSPLandroid/view/Surface$CompatibleCanvas;-><init>(Landroid/view/Surface;Landroid/view/Surface$1;)V
 HSPLandroid/view/Surface;-><init>()V
+HSPLandroid/view/Surface;-><init>(J)V
+HSPLandroid/view/Surface;-><init>(Landroid/graphics/SurfaceTexture;)V
+HPLandroid/view/Surface;->attachAndQueueBufferWithColorSpace(Landroid/graphics/GraphicBuffer;Landroid/graphics/ColorSpace;)V
 HSPLandroid/view/Surface;->checkNotReleasedLocked()V
 HSPLandroid/view/Surface;->copyFrom(Landroid/view/SurfaceControl;)V
+HSPLandroid/view/Surface;->destroy()V
 HSPLandroid/view/Surface;->finalize()V
+HSPLandroid/view/Surface;->forceScopedDisconnect()V
 HSPLandroid/view/Surface;->getGenerationId()I
 HSPLandroid/view/Surface;->getNextFrameNumber()J
 HSPLandroid/view/Surface;->isValid()Z
+HSPLandroid/view/Surface;->lockCanvas(Landroid/graphics/Rect;)Landroid/graphics/Canvas;
+HSPLandroid/view/Surface;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/view/Surface;->release()V
+HSPLandroid/view/Surface;->rotationToString(I)Ljava/lang/String;
 HSPLandroid/view/Surface;->setNativeObjectLocked(J)V
+HSPLandroid/view/Surface;->toString()Ljava/lang/String;
+HSPLandroid/view/Surface;->unlockCanvasAndPost(Landroid/graphics/Canvas;)V
+HSPLandroid/view/Surface;->unlockSwCanvasAndPost(Landroid/graphics/Canvas;)V
+HSPLandroid/view/Surface;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/SurfaceControl$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/SurfaceControl;
+HSPLandroid/view/SurfaceControl$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/SurfaceControl$Builder;-><init>(Landroid/view/SurfaceSession;)V
 HSPLandroid/view/SurfaceControl$Builder;->build()Landroid/view/SurfaceControl;
 HSPLandroid/view/SurfaceControl$Builder;->isColorLayerSet()Z
@@ -12438,64 +25066,245 @@
 HSPLandroid/view/SurfaceControl$Builder;->setFlags(I)Landroid/view/SurfaceControl$Builder;
 HSPLandroid/view/SurfaceControl$Builder;->setFlags(II)Landroid/view/SurfaceControl$Builder;
 HSPLandroid/view/SurfaceControl$Builder;->setFormat(I)Landroid/view/SurfaceControl$Builder;
+HPLandroid/view/SurfaceControl$Builder;->setHidden(Z)Landroid/view/SurfaceControl$Builder;
+HSPLandroid/view/SurfaceControl$Builder;->setMetadata(II)Landroid/view/SurfaceControl$Builder;
 HSPLandroid/view/SurfaceControl$Builder;->setName(Ljava/lang/String;)Landroid/view/SurfaceControl$Builder;
 HSPLandroid/view/SurfaceControl$Builder;->setOpaque(Z)Landroid/view/SurfaceControl$Builder;
 HSPLandroid/view/SurfaceControl$Builder;->setParent(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Builder;
 HSPLandroid/view/SurfaceControl$Builder;->unsetBufferSize()V
+HSPLandroid/view/SurfaceControl$DesiredDisplayConfigSpecs;-><init>(IFF)V
+HSPLandroid/view/SurfaceControl$ScreenshotGraphicBuffer;-><init>(Landroid/graphics/GraphicBuffer;Landroid/graphics/ColorSpace;Z)V
+HSPLandroid/view/SurfaceControl$ScreenshotGraphicBuffer;->createFromNative(IIIIJIZ)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
+HSPLandroid/view/SurfaceControl$ScreenshotGraphicBuffer;->getColorSpace()Landroid/graphics/ColorSpace;
+HSPLandroid/view/SurfaceControl$ScreenshotGraphicBuffer;->getGraphicBuffer()Landroid/graphics/GraphicBuffer;
+HSPLandroid/view/SurfaceControl$Transaction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/SurfaceControl$Transaction;-><init>()V
+HSPLandroid/view/SurfaceControl$Transaction;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/SurfaceControl$Transaction;-><init>(Landroid/os/Parcel;Landroid/view/SurfaceControl$1;)V
 HSPLandroid/view/SurfaceControl$Transaction;->apply()V
 HSPLandroid/view/SurfaceControl$Transaction;->apply(Z)V
 HSPLandroid/view/SurfaceControl$Transaction;->applyResizedSurfaces()V
 HSPLandroid/view/SurfaceControl$Transaction;->checkPreconditions(Landroid/view/SurfaceControl;)V
 HSPLandroid/view/SurfaceControl$Transaction;->deferTransactionUntil(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;J)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->deferTransactionUntilSurface(Landroid/view/SurfaceControl;Landroid/view/Surface;J)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->detachChildren(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->hide(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->merge(Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/view/SurfaceControl$Transaction;->remove(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->reparent(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setAlpha(Landroid/view/SurfaceControl;F)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->setAnimationTransaction()Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setBufferSize(Landroid/view/SurfaceControl;II)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setColorSpaceAgnostic(Landroid/view/SurfaceControl;Z)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->setCornerRadius(Landroid/view/SurfaceControl;F)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setDisplayLayerStack(Landroid/os/IBinder;I)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setDisplayProjection(Landroid/os/IBinder;ILandroid/graphics/Rect;Landroid/graphics/Rect;)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setEarlyWakeup()Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setFrameRateSelectionPriority(Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setInputWindowInfo(Landroid/view/SurfaceControl;Landroid/view/InputWindowHandle;)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->setLayer(Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setLayerStack(Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->setMatrix(Landroid/view/SurfaceControl;FFFF)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setMatrix(Landroid/view/SurfaceControl;Landroid/graphics/Matrix;[F)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setOpaque(Landroid/view/SurfaceControl;Z)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->setPosition(Landroid/view/SurfaceControl;FF)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->setRelativeLayer(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setSecure(Landroid/view/SurfaceControl;Z)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->setWindowCrop(Landroid/view/SurfaceControl;II)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->setWindowCrop(Landroid/view/SurfaceControl;Landroid/graphics/Rect;)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->show(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
 HSPLandroid/view/SurfaceControl$Transaction;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/SurfaceControl;-><init>()V
+HSPLandroid/view/SurfaceControl;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/SurfaceControl;-><init>(Landroid/os/Parcel;Landroid/view/SurfaceControl$1;)V
 HSPLandroid/view/SurfaceControl;-><init>(Landroid/view/SurfaceSession;Ljava/lang/String;IIIILandroid/view/SurfaceControl;Landroid/util/SparseIntArray;)V
 HSPLandroid/view/SurfaceControl;-><init>(Landroid/view/SurfaceSession;Ljava/lang/String;IIIILandroid/view/SurfaceControl;Landroid/util/SparseIntArray;Landroid/view/SurfaceControl$1;)V
 HSPLandroid/view/SurfaceControl;->access$1000(JJII)V
 HSPLandroid/view/SurfaceControl;->access$1100(JJFF)V
+HSPLandroid/view/SurfaceControl;->access$1200(JJII)V
+HSPLandroid/view/SurfaceControl;->access$1300(JJI)V
+HSPLandroid/view/SurfaceControl;->access$1400(JJJI)V
+HSPLandroid/view/SurfaceControl;->access$1600(JJF)V
+HSPLandroid/view/SurfaceControl;->access$1700(JJLandroid/view/InputWindowHandle;)V
 HSPLandroid/view/SurfaceControl;->access$2000(JJFFFF)V
+HSPLandroid/view/SurfaceControl;->access$2200(JJZ)V
 HSPLandroid/view/SurfaceControl;->access$2300(JJIIII)V
 HSPLandroid/view/SurfaceControl;->access$2400(JJF)V
+HSPLandroid/view/SurfaceControl;->access$2600(JJI)V
+HSPLandroid/view/SurfaceControl;->access$2700(JJJJ)V
+HSPLandroid/view/SurfaceControl;->access$2800(JJJJ)V
 HSPLandroid/view/SurfaceControl;->access$300(Landroid/view/SurfaceControl;)V
+HSPLandroid/view/SurfaceControl;->access$3000(JJJ)V
+HSPLandroid/view/SurfaceControl;->access$3100(JJ)V
+HSPLandroid/view/SurfaceControl;->access$3500(JLandroid/os/IBinder;I)V
+HSPLandroid/view/SurfaceControl;->access$3600(JLandroid/os/IBinder;IIIIIIIII)V
+HPLandroid/view/SurfaceControl;->access$3800(J)V
+HSPLandroid/view/SurfaceControl;->access$3900(J)V
 HSPLandroid/view/SurfaceControl;->access$400()J
+HSPLandroid/view/SurfaceControl;->access$4100(JLandroid/os/Parcel;)V
+HSPLandroid/view/SurfaceControl;->access$4300(JLandroid/os/Parcel;)V
 HSPLandroid/view/SurfaceControl;->access$4400(JLandroid/os/Parcel;)V
 HSPLandroid/view/SurfaceControl;->access$500(JZ)V
+HSPLandroid/view/SurfaceControl;->access$600(Landroid/view/SurfaceControl;)Ljava/lang/Object;
+HSPLandroid/view/SurfaceControl;->access$702(Landroid/view/SurfaceControl;I)I
+HSPLandroid/view/SurfaceControl;->access$802(Landroid/view/SurfaceControl;I)I
+HSPLandroid/view/SurfaceControl;->access$900(JJI)V
 HSPLandroid/view/SurfaceControl;->assignNativeObject(J)V
+HPLandroid/view/SurfaceControl;->captureLayers(Landroid/view/SurfaceControl;Landroid/graphics/Rect;FI)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
 HSPLandroid/view/SurfaceControl;->checkNotReleased()V
+HSPLandroid/view/SurfaceControl;->closeTransaction()V
+HSPLandroid/view/SurfaceControl;->copyFrom(Landroid/view/SurfaceControl;)V
+HSPLandroid/view/SurfaceControl;->detachChildren()V
 HSPLandroid/view/SurfaceControl;->finalize()V
+HSPLandroid/view/SurfaceControl;->getActiveColorMode(Landroid/os/IBinder;)I
+HSPLandroid/view/SurfaceControl;->getActiveConfig(Landroid/os/IBinder;)I
+HSPLandroid/view/SurfaceControl;->getAutoLowLatencyModeSupport(Landroid/os/IBinder;)Z
+HSPLandroid/view/SurfaceControl;->getCompositionColorSpaces()[Landroid/graphics/ColorSpace;
+HSPLandroid/view/SurfaceControl;->getDesiredDisplayConfigSpecs(Landroid/os/IBinder;)Landroid/view/SurfaceControl$DesiredDisplayConfigSpecs;
+HSPLandroid/view/SurfaceControl;->getDisplayBrightnessSupport(Landroid/os/IBinder;)Z
+HSPLandroid/view/SurfaceControl;->getDisplayColorModes(Landroid/os/IBinder;)[I
+HSPLandroid/view/SurfaceControl;->getGameContentTypeSupport(Landroid/os/IBinder;)Z
+HSPLandroid/view/SurfaceControl;->getHdrCapabilities(Landroid/os/IBinder;)Landroid/view/Display$HdrCapabilities;
+HSPLandroid/view/SurfaceControl;->getHeight()I
+HSPLandroid/view/SurfaceControl;->getInternalDisplayToken()Landroid/os/IBinder;
+HSPLandroid/view/SurfaceControl;->getPhysicalDisplayIds()[J
+HSPLandroid/view/SurfaceControl;->getPhysicalDisplayToken(J)Landroid/os/IBinder;
+HSPLandroid/view/SurfaceControl;->getWidth()I
 HSPLandroid/view/SurfaceControl;->isValid()Z
+HSPLandroid/view/SurfaceControl;->mergeToGlobalTransaction(Landroid/view/SurfaceControl$Transaction;)V
+HSPLandroid/view/SurfaceControl;->openTransaction()V
 HSPLandroid/view/SurfaceControl;->readFromParcel(Landroid/os/Parcel;)V
 HSPLandroid/view/SurfaceControl;->release()V
+HPLandroid/view/SurfaceControl;->screenshot(Landroid/os/IBinder;Landroid/view/Surface;Landroid/graphics/Rect;IIZI)V
+HSPLandroid/view/SurfaceControl;->screenshotToBuffer(Landroid/os/IBinder;Landroid/graphics/Rect;IIZI)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
+HSPLandroid/view/SurfaceControl;->setAlpha(F)V
+HPLandroid/view/SurfaceControl;->setBufferSize(II)V
+HSPLandroid/view/SurfaceControl;->setColorSpaceAgnostic(Z)V
+HSPLandroid/view/SurfaceControl;->setDesiredDisplayConfigSpecs(Landroid/os/IBinder;Landroid/view/SurfaceControl$DesiredDisplayConfigSpecs;)Z
+HSPLandroid/view/SurfaceControl;->setDisplayPowerMode(Landroid/os/IBinder;I)V
+HSPLandroid/view/SurfaceControl;->setGlobalShadowSettings([F[FFFF)V
+HSPLandroid/view/SurfaceControl;->setMatrix(FFFF)V
+HPLandroid/view/SurfaceControl;->setOpaque(Z)V
+HSPLandroid/view/SurfaceControl;->setSecure(Z)V
+HSPLandroid/view/SurfaceControl;->setWindowCrop(Landroid/graphics/Rect;)V
+HSPLandroid/view/SurfaceControl;->show()V
+HPLandroid/view/SurfaceControl;->toString()Ljava/lang/String;
+HSPLandroid/view/SurfaceControl;->validateColorArg([F)V
+HSPLandroid/view/SurfaceControl;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/SurfaceSession;-><init>()V
 HSPLandroid/view/SurfaceSession;->finalize()V
+HSPLandroid/view/SurfaceSession;->kill()V
+HSPLandroid/view/SurfaceView$1;-><init>(Landroid/view/SurfaceView;)V
+HSPLandroid/view/SurfaceView$1;->positionChanged(JIIII)V
+HSPLandroid/view/SurfaceView$1;->positionLost(J)V
+HSPLandroid/view/SurfaceView$2;-><init>(Landroid/view/SurfaceView;)V
+HSPLandroid/view/SurfaceView$2;->addCallback(Landroid/view/SurfaceHolder$Callback;)V
+HSPLandroid/view/SurfaceView$2;->getSurface()Landroid/view/Surface;
+HSPLandroid/view/SurfaceView$2;->removeCallback(Landroid/view/SurfaceHolder$Callback;)V
+HSPLandroid/view/SurfaceView$2;->setFixedSize(II)V
+HSPLandroid/view/SurfaceView$2;->setFormat(I)V
+HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/view/SurfaceView;->access$002(Landroid/view/SurfaceView;Z)Z
+HSPLandroid/view/SurfaceView;->access$100(Landroid/view/SurfaceView;)Landroid/graphics/Rect;
+HSPLandroid/view/SurfaceView;->access$200(Landroid/view/SurfaceView;Landroid/graphics/Rect;J)V
+HSPLandroid/view/SurfaceView;->access$300(Landroid/view/SurfaceView;)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceView;->access$400(Landroid/view/SurfaceView;)Z
+HSPLandroid/view/SurfaceView;->access$402(Landroid/view/SurfaceView;Z)Z
+HSPLandroid/view/SurfaceView;->applyChildSurfaceTransaction_renderWorker(Landroid/view/SurfaceControl$Transaction;Landroid/view/Surface;J)V
+HSPLandroid/view/SurfaceView;->applySurfaceTransforms(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;Landroid/graphics/Rect;J)V
+HSPLandroid/view/SurfaceView;->clearSurfaceViewPort(Landroid/graphics/Canvas;)V
+HSPLandroid/view/SurfaceView;->dispatchDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/view/SurfaceView;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/view/SurfaceView;->gatherTransparentRegion(Landroid/graphics/Region;)Z
+HSPLandroid/view/SurfaceView;->getFixedAlpha()F
+HSPLandroid/view/SurfaceView;->getHolder()Landroid/view/SurfaceHolder;
+HSPLandroid/view/SurfaceView;->getSurfaceCallbacks()[Landroid/view/SurfaceHolder$Callback;
 HSPLandroid/view/SurfaceView;->invalidate(Z)V
+HSPLandroid/view/SurfaceView;->isAboveParent()Z
+HSPLandroid/view/SurfaceView;->lambda$SyyzxOgxKwZMRgiiTGcRYbOU5JY(Landroid/view/SurfaceView;)V
+HSPLandroid/view/SurfaceView;->lambda$TWz4D2u33ZlAmRtgKzbqqDue3iM(Landroid/view/SurfaceView;)V
+HSPLandroid/view/SurfaceView;->lambda$new$0$SurfaceView()Z
+HSPLandroid/view/SurfaceView;->notifyDrawFinished()V
+HSPLandroid/view/SurfaceView;->onAttachedToWindow()V
+HSPLandroid/view/SurfaceView;->onDetachedFromWindow()V
+HSPLandroid/view/SurfaceView;->onDrawFinished()V
+HSPLandroid/view/SurfaceView;->onMeasure(II)V
+HSPLandroid/view/SurfaceView;->onWindowVisibilityChanged(I)V
+HSPLandroid/view/SurfaceView;->performDrawFinished()V
+HSPLandroid/view/SurfaceView;->releaseSurfaces()V
+HSPLandroid/view/SurfaceView;->runOnUiThread(Ljava/lang/Runnable;)V
+HSPLandroid/view/SurfaceView;->setFrame(IIII)Z
+HSPLandroid/view/SurfaceView;->setParentSpaceRectangle(Landroid/graphics/Rect;J)V
+HSPLandroid/view/SurfaceView;->setVisibility(I)V
+HSPLandroid/view/SurfaceView;->setWindowStopped(Z)V
+HSPLandroid/view/SurfaceView;->setZOrderOnTop(Z)V
+HSPLandroid/view/SurfaceView;->surfaceCreated(Landroid/view/SurfaceControl$Transaction;)V
+HSPLandroid/view/SurfaceView;->surfaceDestroyed()V
+HSPLandroid/view/SurfaceView;->updateBackgroundVisibility(Landroid/view/SurfaceControl$Transaction;)V
+HSPLandroid/view/SurfaceView;->updateOpaqueFlag()V
+HSPLandroid/view/SurfaceView;->updateRelativeZ(Landroid/view/SurfaceControl$Transaction;)V
+HSPLandroid/view/SurfaceView;->updateRequestedVisibility()V
+HSPLandroid/view/SurfaceView;->updateSurface()V
+HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;-><init>(Landroid/view/SurfaceControl;FLandroid/graphics/Matrix;Landroid/graphics/Rect;IFZ)V
+HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;->access$000(Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)I
+HSPLandroid/view/SyncRtSurfaceTransactionApplier;-><init>(Landroid/view/View;)V
+HSPLandroid/view/SyncRtSurfaceTransactionApplier;->applyParams(Landroid/view/SurfaceControl$Transaction;J[Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V
+HSPLandroid/view/SyncRtSurfaceTransactionApplier;->applyParams(Landroid/view/SurfaceControl$Transaction;Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;[F)V
+HSPLandroid/view/SyncRtSurfaceTransactionApplier;->lambda$scheduleApply$0$SyncRtSurfaceTransactionApplier([Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;J)V
+HSPLandroid/view/SyncRtSurfaceTransactionApplier;->scheduleApply([Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V
+HSPLandroid/view/TextureLayer;-><init>(Landroid/graphics/HardwareRenderer;J)V
+HSPLandroid/view/TextureLayer;->adoptTextureLayer(Landroid/graphics/HardwareRenderer;J)Landroid/view/TextureLayer;
+HSPLandroid/view/TextureLayer;->destroy()V
+HSPLandroid/view/TextureLayer;->detachSurfaceTexture()V
+HSPLandroid/view/TextureLayer;->getDeferredLayerUpdater()J
+HSPLandroid/view/TextureLayer;->getLayerHandle()J
+HSPLandroid/view/TextureLayer;->isValid()Z
+HSPLandroid/view/TextureLayer;->prepare(IIZ)Z
+HSPLandroid/view/TextureLayer;->setLayerPaint(Landroid/graphics/Paint;)V
+HSPLandroid/view/TextureLayer;->setSurfaceTexture(Landroid/graphics/SurfaceTexture;)V
+HSPLandroid/view/TextureLayer;->updateSurfaceTexture()V
+HSPLandroid/view/TextureView;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/TextureView;->applyTransformMatrix()V
+HSPLandroid/view/TextureView;->applyUpdate()V
+HSPLandroid/view/TextureView;->destroyHardwareLayer()V
+HSPLandroid/view/TextureView;->destroyHardwareResources()V
+HSPLandroid/view/TextureView;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/view/TextureView;->getLayerType()I
+HSPLandroid/view/TextureView;->getSurfaceTexture()Landroid/graphics/SurfaceTexture;
+HSPLandroid/view/TextureView;->getTextureLayer()Landroid/view/TextureLayer;
+HSPLandroid/view/TextureView;->isOpaque()Z
+HSPLandroid/view/TextureView;->lambda$new$0$TextureView(Landroid/graphics/SurfaceTexture;)V
+HSPLandroid/view/TextureView;->onAttachedToWindow()V
+HSPLandroid/view/TextureView;->onDetachedFromWindowInternal()V
+HSPLandroid/view/TextureView;->onSizeChanged(IIII)V
+HSPLandroid/view/TextureView;->onVisibilityChanged(Landroid/view/View;I)V
+HSPLandroid/view/TextureView;->releaseSurfaceTexture()V
+HSPLandroid/view/TextureView;->setSurfaceTextureListener(Landroid/view/TextureView$SurfaceTextureListener;)V
+HSPLandroid/view/TextureView;->updateLayer()V
+HSPLandroid/view/TextureView;->updateLayerAndInvalidate()V
 HSPLandroid/view/ThreadedRenderer;-><init>(Landroid/content/Context;ZLjava/lang/String;)V
 HSPLandroid/view/ThreadedRenderer;->create(Landroid/content/Context;ZLjava/lang/String;)Landroid/view/ThreadedRenderer;
 HSPLandroid/view/ThreadedRenderer;->destroy()V
 HSPLandroid/view/ThreadedRenderer;->destroyHardwareResources(Landroid/view/View;)V
 HSPLandroid/view/ThreadedRenderer;->destroyResources(Landroid/view/View;)V
 HSPLandroid/view/ThreadedRenderer;->draw(Landroid/view/View;Landroid/view/View$AttachInfo;Landroid/view/ThreadedRenderer$DrawCallbacks;)V
+HSPLandroid/view/ThreadedRenderer;->enableForegroundTrimming()V
 HSPLandroid/view/ThreadedRenderer;->getHeight()I
 HSPLandroid/view/ThreadedRenderer;->getWidth()I
 HSPLandroid/view/ThreadedRenderer;->initialize(Landroid/view/Surface;)Z
 HSPLandroid/view/ThreadedRenderer;->initializeIfNeeded(IILandroid/view/View$AttachInfo;Landroid/view/Surface;Landroid/graphics/Rect;)Z
+HSPLandroid/view/ThreadedRenderer;->invalidateRoot()V
 HSPLandroid/view/ThreadedRenderer;->isAvailable()Z
 HSPLandroid/view/ThreadedRenderer;->isEnabled()Z
 HSPLandroid/view/ThreadedRenderer;->isRequested()Z
+HSPLandroid/view/ThreadedRenderer;->lambda$updateRootDisplayList$0(Ljava/util/ArrayList;J)V
 HSPLandroid/view/ThreadedRenderer;->loadSystemProperties()Z
+HSPLandroid/view/ThreadedRenderer;->registerRtFrameCallback(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V
 HSPLandroid/view/ThreadedRenderer;->setEnabled(Z)V
 HSPLandroid/view/ThreadedRenderer;->setLightCenter(Landroid/view/View$AttachInfo;)V
 HSPLandroid/view/ThreadedRenderer;->setRequested(Z)V
@@ -12505,35 +25314,89 @@
 HSPLandroid/view/ThreadedRenderer;->updateRootDisplayList(Landroid/view/View;Landroid/view/ThreadedRenderer$DrawCallbacks;)V
 HSPLandroid/view/ThreadedRenderer;->updateSurface(Landroid/view/Surface;)V
 HSPLandroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V
+HSPLandroid/view/TouchDelegate;-><init>(Landroid/graphics/Rect;Landroid/view/View;)V
+HSPLandroid/view/TouchDelegate;->onTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/VelocityTracker;-><init>(Ljava/lang/String;)V
 HSPLandroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V
 HSPLandroid/view/VelocityTracker;->clear()V
+HSPLandroid/view/VelocityTracker;->computeCurrentVelocity(I)V
 HSPLandroid/view/VelocityTracker;->computeCurrentVelocity(IF)V
 HSPLandroid/view/VelocityTracker;->finalize()V
+HSPLandroid/view/VelocityTracker;->getXVelocity()F
 HSPLandroid/view/VelocityTracker;->getXVelocity(I)F
+HSPLandroid/view/VelocityTracker;->getYVelocity()F
 HSPLandroid/view/VelocityTracker;->getYVelocity(I)F
 HSPLandroid/view/VelocityTracker;->obtain()Landroid/view/VelocityTracker;
 HSPLandroid/view/VelocityTracker;->recycle()V
+HSPLandroid/view/View$10;->setValue(Landroid/view/View;F)V
+HSPLandroid/view/View$10;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/view/View$12;->get(Landroid/view/View;)Ljava/lang/Float;
+HSPLandroid/view/View$12;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/view/View$12;->setValue(Landroid/view/View;F)V
+HSPLandroid/view/View$12;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/view/View$13;->get(Landroid/view/View;)Ljava/lang/Float;
+HSPLandroid/view/View$13;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/view/View$13;->setValue(Landroid/view/View;F)V
+HSPLandroid/view/View$13;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/view/View$14;->get(Landroid/view/View;)Ljava/lang/Float;
+HSPLandroid/view/View$14;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/view/View$14;->setValue(Landroid/view/View;F)V
+HSPLandroid/view/View$14;->setValue(Ljava/lang/Object;F)V
 HSPLandroid/view/View$1;-><init>(Landroid/view/View;)V
 HSPLandroid/view/View$1;->positionChanged(JIIII)V
 HSPLandroid/view/View$1;->positionLost(J)V
+HSPLandroid/view/View$2;->get(Landroid/view/View;)Ljava/lang/Float;
+HSPLandroid/view/View$2;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/view/View$2;->setValue(Landroid/view/View;F)V
+HSPLandroid/view/View$2;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/view/View$3;->get(Landroid/view/View;)Ljava/lang/Float;
+HSPLandroid/view/View$3;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/view/View$3;->setValue(Landroid/view/View;F)V
 HSPLandroid/view/View$3;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/view/View$4;->get(Landroid/view/View;)Ljava/lang/Float;
+HSPLandroid/view/View$4;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/view/View$4;->setValue(Landroid/view/View;F)V
 HSPLandroid/view/View$4;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/view/View$5;->get(Landroid/view/View;)Ljava/lang/Float;
+HSPLandroid/view/View$5;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/view/View$5;->setValue(Landroid/view/View;F)V
 HSPLandroid/view/View$5;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/view/View$6;->get(Landroid/view/View;)Ljava/lang/Float;
+HSPLandroid/view/View$6;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLandroid/view/View$6;->setValue(Landroid/view/View;F)V
 HSPLandroid/view/View$6;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/view/View$7;->get(Landroid/view/View;)Ljava/lang/Float;
+HSPLandroid/view/View$7;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/view/View$7;->setValue(Landroid/view/View;F)V
+HSPLandroid/view/View$7;->setValue(Ljava/lang/Object;F)V
 HSPLandroid/view/View$AccessibilityDelegate;-><init>()V
+HSPLandroid/view/View$AccessibilityDelegate;->createAccessibilityNodeInfo(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeInfo;
+HSPLandroid/view/View$AccessibilityDelegate;->dispatchPopulateAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z
+HSPLandroid/view/View$AccessibilityDelegate;->getAccessibilityNodeProvider(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeProvider;
+HSPLandroid/view/View$AccessibilityDelegate;->onInitializeAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/view/View$AccessibilityDelegate;->onInitializeAccessibilityNodeInfo(Landroid/view/View;Landroid/view/accessibility/AccessibilityNodeInfo;)V
+HSPLandroid/view/View$AccessibilityDelegate;->onPopulateAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/view/View$AccessibilityDelegate;->onRequestSendAccessibilityEvent(Landroid/view/ViewGroup;Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z
 HSPLandroid/view/View$AccessibilityDelegate;->sendAccessibilityEvent(Landroid/view/View;I)V
+HSPLandroid/view/View$AccessibilityDelegate;->sendAccessibilityEventUnchecked(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/view/View$AttachInfo$InvalidateInfo;-><init>()V
+HSPLandroid/view/View$AttachInfo$InvalidateInfo;->obtain()Landroid/view/View$AttachInfo$InvalidateInfo;
+HSPLandroid/view/View$AttachInfo$InvalidateInfo;->recycle()V
 HSPLandroid/view/View$AttachInfo;-><init>(Landroid/view/IWindowSession;Landroid/view/IWindow;Landroid/view/Display;Landroid/view/ViewRootImpl;Landroid/os/Handler;Landroid/view/View$AttachInfo$Callbacks;Landroid/content/Context;)V
+HSPLandroid/view/View$AttachInfo;->access$1100(Landroid/view/View$AttachInfo;Landroid/view/contentcapture/ContentCaptureSession;Landroid/view/View;Z)V
+HSPLandroid/view/View$AttachInfo;->delayNotifyContentCaptureEvent(Landroid/view/contentcapture/ContentCaptureSession;Landroid/view/View;Z)V
+HSPLandroid/view/View$AttachInfo;->getContentCaptureManager(Landroid/content/Context;)Landroid/view/contentcapture/ContentCaptureManager;
+HSPLandroid/view/View$BaseSavedState$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/view/View$BaseSavedState;
+HSPLandroid/view/View$BaseSavedState$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object;
+HSPLandroid/view/View$BaseSavedState;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/View$BaseSavedState;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
 HSPLandroid/view/View$BaseSavedState;-><init>(Landroid/os/Parcelable;)V
 HSPLandroid/view/View$BaseSavedState;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/View$CheckForLongPress;-><init>(Landroid/view/View;)V
 HSPLandroid/view/View$CheckForLongPress;-><init>(Landroid/view/View;Landroid/view/View$1;)V
 HSPLandroid/view/View$CheckForLongPress;->rememberPressedState()V
 HSPLandroid/view/View$CheckForLongPress;->rememberWindowAttachCount()V
+HSPLandroid/view/View$CheckForLongPress;->run()V
 HSPLandroid/view/View$CheckForLongPress;->setAnchor(FF)V
 HSPLandroid/view/View$CheckForLongPress;->setClassification(I)V
 HSPLandroid/view/View$CheckForTap;-><init>(Landroid/view/View;)V
@@ -12543,21 +25406,34 @@
 HSPLandroid/view/View$ForegroundInfo;-><init>(Landroid/view/View$1;)V
 HSPLandroid/view/View$ForegroundInfo;->access$100(Landroid/view/View$ForegroundInfo;)Z
 HSPLandroid/view/View$ForegroundInfo;->access$102(Landroid/view/View$ForegroundInfo;Z)Z
+HSPLandroid/view/View$ForegroundInfo;->access$1500(Landroid/view/View$ForegroundInfo;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/view/View$ForegroundInfo;->access$1600(Landroid/view/View$ForegroundInfo;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/view/View$ForegroundInfo;->access$1602(Landroid/view/View$ForegroundInfo;Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
 HSPLandroid/view/View$ForegroundInfo;->access$1700(Landroid/view/View$ForegroundInfo;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/view/View$ForegroundInfo;->access$1702(Landroid/view/View$ForegroundInfo;Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/view/View$ForegroundInfo;->access$2102(Landroid/view/View$ForegroundInfo;Z)Z
+HSPLandroid/view/View$ForegroundInfo;->access$2200(Landroid/view/View$ForegroundInfo;)Z
 HSPLandroid/view/View$ForegroundInfo;->access$2202(Landroid/view/View$ForegroundInfo;Z)Z
+HSPLandroid/view/View$ForegroundInfo;->access$2300(Landroid/view/View$ForegroundInfo;)Z
 HSPLandroid/view/View$ForegroundInfo;->access$2302(Landroid/view/View$ForegroundInfo;Z)Z
 HSPLandroid/view/View$ForegroundInfo;->access$2600(Landroid/view/View$ForegroundInfo;)I
 HSPLandroid/view/View$ForegroundInfo;->access$2602(Landroid/view/View$ForegroundInfo;I)I
 HSPLandroid/view/View$ForegroundInfo;->access$2700(Landroid/view/View$ForegroundInfo;)I
 HSPLandroid/view/View$ForegroundInfo;->access$2700(Landroid/view/View$ForegroundInfo;)Landroid/view/View$TintInfo;
 HSPLandroid/view/View$ForegroundInfo;->access$2702(Landroid/view/View$ForegroundInfo;I)I
+HSPLandroid/view/View$ForegroundInfo;->access$2800(Landroid/view/View$ForegroundInfo;)Landroid/graphics/Rect;
+HSPLandroid/view/View$ForegroundInfo;->access$2800(Landroid/view/View$ForegroundInfo;)Landroid/view/View$TintInfo;
 HSPLandroid/view/View$ForegroundInfo;->access$2900(Landroid/view/View$ForegroundInfo;)Landroid/graphics/Rect;
+HSPLandroid/view/View$ForegroundInfo;->access$3000(Landroid/view/View$ForegroundInfo;)Landroid/graphics/Rect;
 HSPLandroid/view/View$ListenerInfo;-><init>()V
+HSPLandroid/view/View$ListenerInfo;->access$1300(Landroid/view/View$ListenerInfo;)Ljava/util/List;
 HSPLandroid/view/View$ListenerInfo;->access$1400(Landroid/view/View$ListenerInfo;)Ljava/util/List;
+HSPLandroid/view/View$ListenerInfo;->access$1402(Landroid/view/View$ListenerInfo;Ljava/util/List;)Ljava/util/List;
 HSPLandroid/view/View$ListenerInfo;->access$1500(Landroid/view/View$ListenerInfo;)Ljava/util/List;
+HSPLandroid/view/View$ListenerInfo;->access$1502(Landroid/view/View$ListenerInfo;Ljava/util/List;)Ljava/util/List;
+HSPLandroid/view/View$ListenerInfo;->access$1700(Landroid/view/View$ListenerInfo;)Landroid/view/View$OnSystemUiVisibilityChangeListener;
 HSPLandroid/view/View$ListenerInfo;->access$1800(Landroid/view/View$ListenerInfo;)Landroid/view/View$OnSystemUiVisibilityChangeListener;
+HSPLandroid/view/View$ListenerInfo;->access$1802(Landroid/view/View$ListenerInfo;Landroid/view/View$OnSystemUiVisibilityChangeListener;)Landroid/view/View$OnSystemUiVisibilityChangeListener;
 HSPLandroid/view/View$ListenerInfo;->access$1900(Landroid/view/View$ListenerInfo;)Landroid/view/View$OnSystemUiVisibilityChangeListener;
 HSPLandroid/view/View$ListenerInfo;->access$200(Landroid/view/View$ListenerInfo;)Ljava/util/ArrayList;
 HSPLandroid/view/View$ListenerInfo;->access$202(Landroid/view/View$ListenerInfo;Ljava/util/ArrayList;)Ljava/util/ArrayList;
@@ -12571,7 +25447,10 @@
 HSPLandroid/view/View$ListenerInfo;->access$502(Landroid/view/View$ListenerInfo;Landroid/view/View$OnTouchListener;)Landroid/view/View$OnTouchListener;
 HSPLandroid/view/View$ListenerInfo;->access$600(Landroid/view/View$ListenerInfo;)Landroid/view/View$OnGenericMotionListener;
 HSPLandroid/view/View$ListenerInfo;->access$700(Landroid/view/View$ListenerInfo;)Landroid/view/View$OnHoverListener;
+HSPLandroid/view/View$ListenerInfo;->access$702(Landroid/view/View$ListenerInfo;Landroid/view/View$OnHoverListener;)Landroid/view/View$OnHoverListener;
 HSPLandroid/view/View$ListenerInfo;->access$800(Landroid/view/View$ListenerInfo;)Landroid/view/View$OnDragListener;
+HSPLandroid/view/View$MatchLabelForPredicate;->test(Landroid/view/View;)Z
+HSPLandroid/view/View$MatchLabelForPredicate;->test(Ljava/lang/Object;)Z
 HSPLandroid/view/View$MeasureSpec;->getMode(I)I
 HSPLandroid/view/View$MeasureSpec;->getSize(I)I
 HSPLandroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
@@ -12581,21 +25460,40 @@
 HSPLandroid/view/View$PerformClick;->run()V
 HSPLandroid/view/View$ScrollabilityCache;-><init>(Landroid/view/ViewConfiguration;Landroid/view/View;)V
 HSPLandroid/view/View$ScrollabilityCache;->run()V
+HSPLandroid/view/View$SendAccessibilityEventThrottle;-><init>(Landroid/view/View;)V
+HSPLandroid/view/View$SendAccessibilityEventThrottle;-><init>(Landroid/view/View;Landroid/view/View$1;)V
+HSPLandroid/view/View$SendAccessibilityEventThrottle;->post(Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/view/View$SendAccessibilityEventThrottle;->reset()V
+HSPLandroid/view/View$SendAccessibilityEventThrottle;->run()V
+HSPLandroid/view/View$SendAccessibilityEventThrottle;->updateWithAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/view/View$SendViewScrolledAccessibilityEvent;-><init>(Landroid/view/View;)V
+HSPLandroid/view/View$SendViewScrolledAccessibilityEvent;-><init>(Landroid/view/View;Landroid/view/View$1;)V
+HSPLandroid/view/View$SendViewScrolledAccessibilityEvent;->reset()V
+HSPLandroid/view/View$SendViewScrolledAccessibilityEvent;->updateWithAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
 HSPLandroid/view/View$TintInfo;-><init>()V
 HSPLandroid/view/View$TooltipInfo;-><init>()V
 HSPLandroid/view/View$TooltipInfo;-><init>(Landroid/view/View$1;)V
 HSPLandroid/view/View$TooltipInfo;->access$4000(Landroid/view/View$TooltipInfo;)V
+HSPLandroid/view/View$TooltipInfo;->access$4100(Landroid/view/View$TooltipInfo;)V
 HSPLandroid/view/View$TooltipInfo;->clearAnchorPos()V
 HSPLandroid/view/View$TransformationInfo;-><init>()V
+HSPLandroid/view/View$TransformationInfo;->access$2200(Landroid/view/View$TransformationInfo;)Landroid/graphics/Matrix;
 HSPLandroid/view/View$TransformationInfo;->access$2300(Landroid/view/View$TransformationInfo;)Landroid/graphics/Matrix;
+HSPLandroid/view/View$TransformationInfo;->access$2400(Landroid/view/View$TransformationInfo;)F
 HSPLandroid/view/View$TransformationInfo;->access$2400(Landroid/view/View$TransformationInfo;)Landroid/graphics/Matrix;
+HSPLandroid/view/View$TransformationInfo;->access$2402(Landroid/view/View$TransformationInfo;F)F
+HSPLandroid/view/View$TransformationInfo;->access$2402(Landroid/view/View$TransformationInfo;Landroid/graphics/Matrix;)Landroid/graphics/Matrix;
 HSPLandroid/view/View$TransformationInfo;->access$2500(Landroid/view/View$TransformationInfo;)F
+HSPLandroid/view/View$TransformationInfo;->access$2500(Landroid/view/View$TransformationInfo;)Landroid/graphics/Matrix;
 HSPLandroid/view/View$TransformationInfo;->access$2502(Landroid/view/View$TransformationInfo;F)F
+HSPLandroid/view/View$TransformationInfo;->access$2502(Landroid/view/View$TransformationInfo;Landroid/graphics/Matrix;)Landroid/graphics/Matrix;
 HSPLandroid/view/View$TransformationInfo;->access$2600(Landroid/view/View$TransformationInfo;)F
 HSPLandroid/view/View$TransformationInfo;->access$2602(Landroid/view/View$TransformationInfo;F)F
 HSPLandroid/view/View$UnsetPressedState;-><init>(Landroid/view/View;)V
 HSPLandroid/view/View$UnsetPressedState;-><init>(Landroid/view/View;Landroid/view/View$1;)V
 HSPLandroid/view/View$UnsetPressedState;->run()V
+HSPLandroid/view/View$VisibilityChangeForAutofillHandler;-><init>(Landroid/view/autofill/AutofillManager;Landroid/view/View;)V
+HSPLandroid/view/View$VisibilityChangeForAutofillHandler;-><init>(Landroid/view/autofill/AutofillManager;Landroid/view/View;Landroid/view/View$1;)V
 HSPLandroid/view/View$VisibilityChangeForAutofillHandler;->handleMessage(Landroid/os/Message;)V
 HSPLandroid/view/View;-><init>(Landroid/content/Context;)V
 HSPLandroid/view/View;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
@@ -12605,10 +25503,17 @@
 HSPLandroid/view/View;->access$3200()Z
 HSPLandroid/view/View;->access$3200(Landroid/view/View;I)V
 HSPLandroid/view/View;->access$3300(Landroid/view/View;I)V
+HSPLandroid/view/View;->access$3400(Landroid/view/View;ZFF)V
+HSPLandroid/view/View;->access$3500(Landroid/view/View;JFFI)V
+HSPLandroid/view/View;->access$3500(Landroid/view/View;ZFF)V
 HSPLandroid/view/View;->access$3600(Landroid/view/View;)Z
+HSPLandroid/view/View;->access$3600(Landroid/view/View;JFFI)V
 HSPLandroid/view/View;->access$3700(Landroid/view/View;)Z
+HSPLandroid/view/View;->access$3700(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/view/View;->addChildrenForAccessibility(Ljava/util/ArrayList;)V
 HSPLandroid/view/View;->addFocusables(Ljava/util/ArrayList;I)V
 HSPLandroid/view/View;->addFocusables(Ljava/util/ArrayList;II)V
+HSPLandroid/view/View;->addFrameMetricsListener(Landroid/view/Window;Landroid/view/Window$OnFrameMetricsAvailableListener;Landroid/os/Handler;)V
 HSPLandroid/view/View;->addOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V
 HSPLandroid/view/View;->addOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V
 HSPLandroid/view/View;->animate()Landroid/view/ViewPropertyAnimator;
@@ -12622,6 +25527,9 @@
 HSPLandroid/view/View;->awakenScrollBars()Z
 HSPLandroid/view/View;->awakenScrollBars(IZ)Z
 HSPLandroid/view/View;->bringToFront()V
+HSPLandroid/view/View;->buildDrawingCache(Z)V
+HSPLandroid/view/View;->buildDrawingCacheImpl(Z)V
+HSPLandroid/view/View;->buildLayer()V
 HSPLandroid/view/View;->calculateIsImportantForContentCapture()Z
 HSPLandroid/view/View;->canHaveDisplayList()Z
 HSPLandroid/view/View;->canNotifyAutofillEnterExitEvent()Z
@@ -12632,6 +25540,7 @@
 HSPLandroid/view/View;->canScrollVertically(I)Z
 HSPLandroid/view/View;->canTakeFocus()Z
 HSPLandroid/view/View;->cancel(Landroid/view/View$SendAccessibilityEventThrottle;)V
+HSPLandroid/view/View;->cancel(Landroid/view/View$SendViewScrolledAccessibilityEvent;)V
 HSPLandroid/view/View;->cancelLongPress()V
 HSPLandroid/view/View;->cancelPendingInputEvents()V
 HSPLandroid/view/View;->checkForLongClick(JFFI)V
@@ -12648,12 +25557,17 @@
 HSPLandroid/view/View;->combineVisibility(II)I
 HSPLandroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
 HSPLandroid/view/View;->computeHorizontalScrollExtent()I
+HSPLandroid/view/View;->computeHorizontalScrollOffset()I
 HSPLandroid/view/View;->computeHorizontalScrollRange()I
 HSPLandroid/view/View;->computeOpaqueFlags()V
 HSPLandroid/view/View;->computeScroll()V
 HSPLandroid/view/View;->computeSystemWindowInsets(Landroid/view/WindowInsets;Landroid/graphics/Rect;)Landroid/view/WindowInsets;
 HSPLandroid/view/View;->computeVerticalScrollExtent()I
 HSPLandroid/view/View;->computeVerticalScrollOffset()I
+HSPLandroid/view/View;->computeVerticalScrollRange()I
+HSPLandroid/view/View;->createAccessibilityNodeInfo()Landroid/view/accessibility/AccessibilityNodeInfo;
+HSPLandroid/view/View;->createAccessibilityNodeInfoInternal()Landroid/view/accessibility/AccessibilityNodeInfo;
+HSPLandroid/view/View;->createContextMenu(Landroid/view/ContextMenu;)V
 HSPLandroid/view/View;->damageInParent()V
 HSPLandroid/view/View;->destroyDrawingCache()V
 HSPLandroid/view/View;->destroyHardwareResources()V
@@ -12666,7 +25580,20 @@
 HSPLandroid/view/View;->dispatchDraw(Landroid/graphics/Canvas;)V
 HSPLandroid/view/View;->dispatchDrawableHotspotChanged(FF)V
 HSPLandroid/view/View;->dispatchFinishTemporaryDetach()V
+HSPLandroid/view/View;->dispatchGetDisplayList()V
+HSPLandroid/view/View;->dispatchInitialProvideContentCaptureStructure()V
+HSPLandroid/view/View;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
+HSPLandroid/view/View;->dispatchKeyEventPreIme(Landroid/view/KeyEvent;)Z
+HSPLandroid/view/View;->dispatchNestedFling(FFZ)Z
+HSPLandroid/view/View;->dispatchNestedPreFling(FF)Z
+HSPLandroid/view/View;->dispatchNestedPreScroll(II[I[I)Z
+HSPLandroid/view/View;->dispatchNestedScroll(IIII[I)Z
 HSPLandroid/view/View;->dispatchPointerEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/view/View;->dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z
+HSPLandroid/view/View;->dispatchPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)Z
+HSPLandroid/view/View;->dispatchProvideAutofillStructure(Landroid/view/ViewStructure;I)V
+HSPLandroid/view/View;->dispatchProvideContentCaptureStructure()V
+HSPLandroid/view/View;->dispatchProvideStructure(Landroid/view/ViewStructure;II)V
 HSPLandroid/view/View;->dispatchRestoreInstanceState(Landroid/util/SparseArray;)V
 HSPLandroid/view/View;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V
 HSPLandroid/view/View;->dispatchScreenStateChanged(I)V
@@ -12674,10 +25601,15 @@
 HSPLandroid/view/View;->dispatchSetPressed(Z)V
 HSPLandroid/view/View;->dispatchSetSelected(Z)V
 HSPLandroid/view/View;->dispatchStartTemporaryDetach()V
+HSPLandroid/view/View;->dispatchSystemUiVisibilityChanged(I)V
 HSPLandroid/view/View;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/View;->dispatchVisibilityAggregated(Z)Z
 HSPLandroid/view/View;->dispatchVisibilityChanged(Landroid/view/View;I)V
 HSPLandroid/view/View;->dispatchWindowFocusChanged(Z)V
+HSPLandroid/view/View;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V
+HSPLandroid/view/View;->dispatchWindowInsetsAnimationPrepare(Landroid/view/WindowInsetsAnimation;)V
+HSPLandroid/view/View;->dispatchWindowInsetsAnimationProgress(Landroid/view/WindowInsets;Ljava/util/List;)Landroid/view/WindowInsets;
+HSPLandroid/view/View;->dispatchWindowInsetsAnimationStart(Landroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;)Landroid/view/WindowInsetsAnimation$Bounds;
 HSPLandroid/view/View;->dispatchWindowSystemUiVisiblityChanged(I)V
 HSPLandroid/view/View;->dispatchWindowVisibilityChanged(I)V
 HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;)V
@@ -12690,22 +25622,36 @@
 HSPLandroid/view/View;->ensureTransformationInfo()V
 HSPLandroid/view/View;->findAccessibilityFocusHost(Z)Landroid/view/View;
 HSPLandroid/view/View;->findFocus()Landroid/view/View;
+HSPLandroid/view/View;->findFrameMetricsObserver(Landroid/view/Window$OnFrameMetricsAvailableListener;)Landroid/view/FrameMetricsObserver;
 HSPLandroid/view/View;->findKeyboardNavigationCluster()Landroid/view/View;
 HSPLandroid/view/View;->findUserSetNextFocus(Landroid/view/View;I)Landroid/view/View;
+HSPLandroid/view/View;->findViewByAutofillIdTraversal(I)Landroid/view/View;
 HSPLandroid/view/View;->findViewById(I)Landroid/view/View;
+HSPLandroid/view/View;->findViewByPredicate(Ljava/util/function/Predicate;)Landroid/view/View;
+HSPLandroid/view/View;->findViewByPredicateInsideOut(Landroid/view/View;Ljava/util/function/Predicate;)Landroid/view/View;
+HSPLandroid/view/View;->findViewByPredicateTraversal(Ljava/util/function/Predicate;Landroid/view/View;)Landroid/view/View;
 HSPLandroid/view/View;->findViewTraversal(I)Landroid/view/View;
+HSPLandroid/view/View;->findViewWithTag(Ljava/lang/Object;)Landroid/view/View;
+HSPLandroid/view/View;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;
 HSPLandroid/view/View;->fitSystemWindows(Landroid/graphics/Rect;)Z
 HSPLandroid/view/View;->fitSystemWindowsInt(Landroid/graphics/Rect;)Z
 HSPLandroid/view/View;->focusSearch(I)Landroid/view/View;
+HSPLandroid/view/View;->forceHasOverlappingRendering(Z)V
 HSPLandroid/view/View;->forceLayout()V
+HSPLandroid/view/View;->gatherTransparentRegion(Landroid/graphics/Region;)Z
 HSPLandroid/view/View;->generateViewId()I
 HSPLandroid/view/View;->getAccessibilityClassName()Ljava/lang/CharSequence;
 HSPLandroid/view/View;->getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate;
 HSPLandroid/view/View;->getAccessibilityLiveRegion()I
 HSPLandroid/view/View;->getAccessibilityNodeProvider()Landroid/view/accessibility/AccessibilityNodeProvider;
+HSPLandroid/view/View;->getAccessibilityPaneTitle()Ljava/lang/CharSequence;
 HSPLandroid/view/View;->getAccessibilityViewId()I
+HSPLandroid/view/View;->getAccessibilityWindowId()I
 HSPLandroid/view/View;->getAlpha()F
+HSPLandroid/view/View;->getAndCacheContentCaptureSession()Landroid/view/contentcapture/ContentCaptureSession;
 HSPLandroid/view/View;->getAnimation()Landroid/view/animation/Animation;
+HSPLandroid/view/View;->getApplicationWindowToken()Landroid/os/IBinder;
+HSPLandroid/view/View;->getAutofillHints()[Ljava/lang/String;
 HSPLandroid/view/View;->getAutofillId()Landroid/view/autofill/AutofillId;
 HSPLandroid/view/View;->getAutofillManager()Landroid/view/autofill/AutofillManager;
 HSPLandroid/view/View;->getAutofillType()I
@@ -12713,10 +25659,16 @@
 HSPLandroid/view/View;->getBackground()Landroid/graphics/drawable/Drawable;
 HSPLandroid/view/View;->getBaseline()I
 HSPLandroid/view/View;->getBottom()I
+HSPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;)V
 HSPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;Z)V
+HSPLandroid/view/View;->getClipBounds()Landroid/graphics/Rect;
+HSPLandroid/view/View;->getClipBounds(Landroid/graphics/Rect;)Z
 HSPLandroid/view/View;->getClipToOutline()Z
+HSPLandroid/view/View;->getContentCaptureSession()Landroid/view/contentcapture/ContentCaptureSession;
 HSPLandroid/view/View;->getContentDescription()Ljava/lang/CharSequence;
 HSPLandroid/view/View;->getContext()Landroid/content/Context;
+HSPLandroid/view/View;->getContextMenuInfo()Landroid/view/ContextMenu$ContextMenuInfo;
+HSPLandroid/view/View;->getDefaultFocusHighlightEnabled()Z
 HSPLandroid/view/View;->getDefaultSize(II)I
 HSPLandroid/view/View;->getDisplay()Landroid/view/Display;
 HSPLandroid/view/View;->getDrawableRenderNode(Landroid/graphics/drawable/Drawable;Landroid/graphics/RenderNode;)Landroid/graphics/RenderNode;
@@ -12729,6 +25681,7 @@
 HSPLandroid/view/View;->getFitsSystemWindows()Z
 HSPLandroid/view/View;->getFocusable()I
 HSPLandroid/view/View;->getFocusableAttribute(Landroid/content/res/TypedArray;)I
+HSPLandroid/view/View;->getFocusedRect(Landroid/graphics/Rect;)V
 HSPLandroid/view/View;->getForeground()Landroid/graphics/drawable/Drawable;
 HSPLandroid/view/View;->getForegroundGravity()I
 HSPLandroid/view/View;->getGlobalVisibleRect(Landroid/graphics/Rect;)Z
@@ -12737,18 +25690,25 @@
 HSPLandroid/view/View;->getHasOverlappingRendering()Z
 HSPLandroid/view/View;->getHeight()I
 HSPLandroid/view/View;->getHitRect(Landroid/graphics/Rect;)V
+HSPLandroid/view/View;->getHorizontalFadingEdgeLength()I
+HSPLandroid/view/View;->getHorizontalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+HSPLandroid/view/View;->getHorizontalScrollbarHeight()I
 HSPLandroid/view/View;->getId()I
 HSPLandroid/view/View;->getImportantForAccessibility()I
 HSPLandroid/view/View;->getImportantForAutofill()I
 HSPLandroid/view/View;->getImportantForContentCapture()I
 HSPLandroid/view/View;->getInverseMatrix()Landroid/graphics/Matrix;
+HSPLandroid/view/View;->getIterableTextForAccessibility()Ljava/lang/CharSequence;
 HSPLandroid/view/View;->getKeyDispatcherState()Landroid/view/KeyEvent$DispatcherState;
 HSPLandroid/view/View;->getLayerType()I
 HSPLandroid/view/View;->getLayoutDirection()I
 HSPLandroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
 HSPLandroid/view/View;->getLeft()I
 HSPLandroid/view/View;->getListenerInfo()Landroid/view/View$ListenerInfo;
+HSPLandroid/view/View;->getLocalVisibleRect(Landroid/graphics/Rect;)Z
+HSPLandroid/view/View;->getLocationInSurface([I)V
 HSPLandroid/view/View;->getLocationInWindow([I)V
+HSPLandroid/view/View;->getLocationOnScreen()[I
 HSPLandroid/view/View;->getLocationOnScreen([I)V
 HSPLandroid/view/View;->getMatrix()Landroid/graphics/Matrix;
 HSPLandroid/view/View;->getMeasuredHeight()I
@@ -12758,6 +25718,7 @@
 HSPLandroid/view/View;->getMinimumHeight()I
 HSPLandroid/view/View;->getMinimumWidth()I
 HSPLandroid/view/View;->getNotifiedContentCaptureAppeared()Z
+HSPLandroid/view/View;->getOutlineProvider()Landroid/view/ViewOutlineProvider;
 HSPLandroid/view/View;->getOverScrollMode()I
 HSPLandroid/view/View;->getPaddingBottom()I
 HSPLandroid/view/View;->getPaddingEnd()I
@@ -12766,6 +25727,7 @@
 HSPLandroid/view/View;->getPaddingStart()I
 HSPLandroid/view/View;->getPaddingTop()I
 HSPLandroid/view/View;->getParent()Landroid/view/ViewParent;
+HSPLandroid/view/View;->getParentForAccessibility()Landroid/view/ViewParent;
 HSPLandroid/view/View;->getPivotX()F
 HSPLandroid/view/View;->getPivotY()F
 HSPLandroid/view/View;->getProjectionReceiver()Landroid/view/View;
@@ -12773,6 +25735,7 @@
 HSPLandroid/view/View;->getRawTextAlignment()I
 HSPLandroid/view/View;->getRawTextDirection()I
 HSPLandroid/view/View;->getResources()Landroid/content/res/Resources;
+HSPLandroid/view/View;->getRevealOnFocusHint()Z
 HSPLandroid/view/View;->getRight()I
 HSPLandroid/view/View;->getRootView()Landroid/view/View;
 HSPLandroid/view/View;->getRootWindowInsets()Landroid/view/WindowInsets;
@@ -12783,8 +25746,12 @@
 HSPLandroid/view/View;->getScaleX()F
 HSPLandroid/view/View;->getScaleY()F
 HSPLandroid/view/View;->getScrollBarStyle()I
+HSPLandroid/view/View;->getScrollCache()Landroid/view/View$ScrollabilityCache;
+HSPLandroid/view/View;->getScrollIndicatorBounds(Landroid/graphics/Rect;)V
 HSPLandroid/view/View;->getScrollX()I
 HSPLandroid/view/View;->getScrollY()I
+HSPLandroid/view/View;->getSelfOrParentImportantForA11y()Landroid/view/View;
+HSPLandroid/view/View;->getSolidColor()I
 HSPLandroid/view/View;->getStraightVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HSPLandroid/view/View;->getSuggestedMinimumHeight()I
 HSPLandroid/view/View;->getSuggestedMinimumWidth()I
@@ -12794,18 +25761,24 @@
 HSPLandroid/view/View;->getTag(I)Ljava/lang/Object;
 HSPLandroid/view/View;->getTextAlignment()I
 HSPLandroid/view/View;->getTextDirection()I
+HSPLandroid/view/View;->getThreadedRenderer()Landroid/view/ThreadedRenderer;
+HSPLandroid/view/View;->getThrottleForAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Landroid/view/View$SendAccessibilityEventThrottle;
 HSPLandroid/view/View;->getTop()I
 HSPLandroid/view/View;->getTransitionAlpha()F
 HSPLandroid/view/View;->getTransitionName()Ljava/lang/String;
 HSPLandroid/view/View;->getTranslationX()F
 HSPLandroid/view/View;->getTranslationY()F
 HSPLandroid/view/View;->getTranslationZ()F
+HSPLandroid/view/View;->getVerticalFadingEdgeLength()I
 HSPLandroid/view/View;->getVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HSPLandroid/view/View;->getVerticalScrollbarWidth()I
 HSPLandroid/view/View;->getViewRootImpl()Landroid/view/ViewRootImpl;
 HSPLandroid/view/View;->getViewTreeObserver()Landroid/view/ViewTreeObserver;
 HSPLandroid/view/View;->getVisibility()I
 HSPLandroid/view/View;->getWidth()I
+HSPLandroid/view/View;->getWindowAttachCount()I
+HSPLandroid/view/View;->getWindowDisplayFrame(Landroid/graphics/Rect;)V
+HSPLandroid/view/View;->getWindowId()Landroid/view/WindowId;
 HSPLandroid/view/View;->getWindowInsetsController()Landroid/view/WindowInsetsController;
 HSPLandroid/view/View;->getWindowSystemUiVisibility()I
 HSPLandroid/view/View;->getWindowToken()Landroid/os/IBinder;
@@ -12818,6 +25791,7 @@
 HSPLandroid/view/View;->handleScrollBarDragging(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/View;->hasAncestorThatBlocksDescendantFocus()Z
 HSPLandroid/view/View;->hasDefaultFocus()Z
+HSPLandroid/view/View;->hasExplicitFocusable()Z
 HSPLandroid/view/View;->hasFocus()Z
 HSPLandroid/view/View;->hasFocusable()Z
 HSPLandroid/view/View;->hasFocusable(ZZ)Z
@@ -12854,6 +25828,7 @@
 HSPLandroid/view/View;->invalidateViewProperty(ZZ)V
 HSPLandroid/view/View;->isAccessibilityFocused()Z
 HSPLandroid/view/View;->isAccessibilityFocusedViewOrHost()Z
+HSPLandroid/view/View;->isAccessibilityHeading()Z
 HSPLandroid/view/View;->isAccessibilityPane()Z
 HSPLandroid/view/View;->isActionableForAccessibility()Z
 HSPLandroid/view/View;->isActivated()Z
@@ -12870,14 +25845,17 @@
 HSPLandroid/view/View;->isFocused()Z
 HSPLandroid/view/View;->isFocusedByDefault()Z
 HSPLandroid/view/View;->isForegroundInsidePadding()Z
+HSPLandroid/view/View;->isFrameworkOptionalFitsSystemWindows()Z
 HSPLandroid/view/View;->isHapticFeedbackEnabled()Z
 HSPLandroid/view/View;->isHardwareAccelerated()Z
 HSPLandroid/view/View;->isHorizontalFadingEdgeEnabled()Z
 HSPLandroid/view/View;->isHorizontalScrollBarEnabled()Z
+HSPLandroid/view/View;->isHovered()Z
 HSPLandroid/view/View;->isImportantForAccessibility()Z
 HSPLandroid/view/View;->isImportantForAutofill()Z
 HSPLandroid/view/View;->isImportantForContentCapture()Z
 HSPLandroid/view/View;->isInEditMode()Z
+HSPLandroid/view/View;->isInLayout()Z
 HSPLandroid/view/View;->isInScrollingContainer()Z
 HSPLandroid/view/View;->isInTouchMode()Z
 HSPLandroid/view/View;->isKeyboardNavigationCluster()Z
@@ -12891,11 +25869,13 @@
 HSPLandroid/view/View;->isLongClickable()Z
 HSPLandroid/view/View;->isNestedScrollingEnabled()Z
 HSPLandroid/view/View;->isOpaque()Z
+HSPLandroid/view/View;->isPaddingRelative()Z
 HSPLandroid/view/View;->isPaddingResolved()Z
 HSPLandroid/view/View;->isPressed()Z
 HSPLandroid/view/View;->isProjectionReceiver()Z
 HSPLandroid/view/View;->isRootNamespace()Z
 HSPLandroid/view/View;->isRtlCompatibilityMode()Z
+HSPLandroid/view/View;->isScreenReaderFocusable()Z
 HSPLandroid/view/View;->isSelected()Z
 HSPLandroid/view/View;->isShowingLayoutBounds()Z
 HSPLandroid/view/View;->isShown()Z
@@ -12905,8 +25885,10 @@
 HSPLandroid/view/View;->isTextAlignmentResolved()Z
 HSPLandroid/view/View;->isTextDirectionInherited()Z
 HSPLandroid/view/View;->isTextDirectionResolved()Z
+HSPLandroid/view/View;->isVerticalFadingEdgeEnabled()Z
 HSPLandroid/view/View;->isVerticalScrollBarEnabled()Z
 HSPLandroid/view/View;->isVerticalScrollBarHidden()Z
+HSPLandroid/view/View;->isViewIdGenerated(I)Z
 HSPLandroid/view/View;->isVisibleToUser()Z
 HSPLandroid/view/View;->isVisibleToUser(Landroid/graphics/Rect;)Z
 HSPLandroid/view/View;->jumpDrawablesToCurrentState()V
@@ -12935,13 +25917,16 @@
 HSPLandroid/view/View;->onAttachedToWindow()V
 HSPLandroid/view/View;->onCancelPendingInputEvents()V
 HSPLandroid/view/View;->onCheckIsTextEditor()Z
+HSPLandroid/view/View;->onCloseSystemDialogs(Ljava/lang/String;)V
 HSPLandroid/view/View;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLandroid/view/View;->onCreateContextMenu(Landroid/view/ContextMenu;)V
 HSPLandroid/view/View;->onCreateDrawableState(I)[I
 HSPLandroid/view/View;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
 HSPLandroid/view/View;->onDetachedFromWindow()V
 HSPLandroid/view/View;->onDetachedFromWindowInternal()V
 HSPLandroid/view/View;->onDraw(Landroid/graphics/Canvas;)V
 HSPLandroid/view/View;->onDrawForeground(Landroid/graphics/Canvas;)V
+HSPLandroid/view/View;->onDrawHorizontalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
 HSPLandroid/view/View;->onDrawScrollBars(Landroid/graphics/Canvas;)V
 HSPLandroid/view/View;->onDrawScrollIndicators(Landroid/graphics/Canvas;)V
 HSPLandroid/view/View;->onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
@@ -12950,8 +25935,20 @@
 HSPLandroid/view/View;->onFinishTemporaryDetach()V
 HSPLandroid/view/View;->onFocusChanged(ZILandroid/graphics/Rect;)V
 HSPLandroid/view/View;->onFocusLost()V
+HSPLandroid/view/View;->onInitializeAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/view/View;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/view/View;->onInitializeAccessibilityNodeInfo(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+HSPLandroid/view/View;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+HSPLandroid/view/View;->onKeyDown(ILandroid/view/KeyEvent;)Z
+HSPLandroid/view/View;->onKeyPreIme(ILandroid/view/KeyEvent;)Z
+HSPLandroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z
 HSPLandroid/view/View;->onLayout(ZIIII)V
 HSPLandroid/view/View;->onMeasure(II)V
+HSPLandroid/view/View;->onPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/view/View;->onPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/view/View;->onProvideAutofillStructure(Landroid/view/ViewStructure;I)V
+HSPLandroid/view/View;->onProvideAutofillVirtualStructure(Landroid/view/ViewStructure;I)V
+HSPLandroid/view/View;->onProvideContentCaptureStructure(Landroid/view/ViewStructure;I)V
 HSPLandroid/view/View;->onProvideStructure(Landroid/view/ViewStructure;II)V
 HSPLandroid/view/View;->onResolveDrawables(I)V
 HSPLandroid/view/View;->onRestoreInstanceState(Landroid/os/Parcelable;)V
@@ -12968,27 +25965,39 @@
 HSPLandroid/view/View;->onWindowFocusChanged(Z)V
 HSPLandroid/view/View;->onWindowSystemUiVisibilityChanged(I)V
 HSPLandroid/view/View;->onWindowVisibilityChanged(I)V
+HSPLandroid/view/View;->overScrollBy(IIIIIIIIZ)Z
 HSPLandroid/view/View;->performButtonActionOnTouchDown(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/View;->performClick()Z
 HSPLandroid/view/View;->performClickInternal()Z
 HSPLandroid/view/View;->performCollectViewAttributes(Landroid/view/View$AttachInfo;I)V
+HSPLandroid/view/View;->performHapticFeedback(I)Z
+HSPLandroid/view/View;->performHapticFeedback(II)Z
+HSPLandroid/view/View;->performLongClick()Z
+HSPLandroid/view/View;->performLongClick(FF)Z
+HSPLandroid/view/View;->performLongClickInternal(FF)Z
 HSPLandroid/view/View;->playSoundEffect(I)V
 HSPLandroid/view/View;->pointInView(FF)Z
 HSPLandroid/view/View;->pointInView(FFF)Z
+HSPLandroid/view/View;->populateAccessibilityNodeInfoDrawingOrderInParent(Landroid/view/accessibility/AccessibilityNodeInfo;)V
 HSPLandroid/view/View;->post(Ljava/lang/Runnable;)Z
 HSPLandroid/view/View;->postDelayed(Ljava/lang/Runnable;J)Z
 HSPLandroid/view/View;->postInvalidate()V
+HSPLandroid/view/View;->postInvalidate(IIII)V
 HSPLandroid/view/View;->postInvalidateDelayed(J)V
+HSPLandroid/view/View;->postInvalidateDelayed(JIIII)V
 HSPLandroid/view/View;->postInvalidateOnAnimation()V
+HSPLandroid/view/View;->postInvalidateOnAnimation(IIII)V
 HSPLandroid/view/View;->postOnAnimation(Ljava/lang/Runnable;)V
 HSPLandroid/view/View;->postOnAnimationDelayed(Ljava/lang/Runnable;J)V
 HSPLandroid/view/View;->postSendViewScrolledAccessibilityEventCallback(II)V
 HSPLandroid/view/View;->postUpdateSystemGestureExclusionRects()V
 HSPLandroid/view/View;->rebuildOutline()V
+HSPLandroid/view/View;->recomputePadding()V
 HSPLandroid/view/View;->recordGestureClassification(I)V
 HSPLandroid/view/View;->refreshDrawableState()V
 HSPLandroid/view/View;->registerPendingFrameMetricsObservers()V
 HSPLandroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z
+HSPLandroid/view/View;->removeFrameMetricsListener(Landroid/view/Window$OnFrameMetricsAvailableListener;)V
 HSPLandroid/view/View;->removeLongPressCallback()V
 HSPLandroid/view/View;->removeOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V
 HSPLandroid/view/View;->removeOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V
@@ -13002,9 +26011,12 @@
 HSPLandroid/view/View;->requestFocus(ILandroid/graphics/Rect;)Z
 HSPLandroid/view/View;->requestFocusNoSearch(ILandroid/graphics/Rect;)Z
 HSPLandroid/view/View;->requestLayout()V
+HSPLandroid/view/View;->requestParentSendAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
 HSPLandroid/view/View;->requestRectangleOnScreen(Landroid/graphics/Rect;)Z
 HSPLandroid/view/View;->requestRectangleOnScreen(Landroid/graphics/Rect;Z)Z
+HSPLandroid/view/View;->requireViewById(I)Landroid/view/View;
 HSPLandroid/view/View;->resetDisplayList()V
+HSPLandroid/view/View;->resetPaddingToInitialValues()V
 HSPLandroid/view/View;->resetPressedState()V
 HSPLandroid/view/View;->resetResolvedDrawables()V
 HSPLandroid/view/View;->resetResolvedDrawablesInternal()V
@@ -13024,6 +26036,7 @@
 HSPLandroid/view/View;->resolveSizeAndState(III)I
 HSPLandroid/view/View;->resolveTextAlignment()Z
 HSPLandroid/view/View;->resolveTextDirection()Z
+HSPLandroid/view/View;->restoreDefaultFocus()Z
 HSPLandroid/view/View;->restoreHierarchyState(Landroid/util/SparseArray;)V
 HSPLandroid/view/View;->retrieveExplicitStyle(Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
 HSPLandroid/view/View;->rootViewRequestFocus()Z
@@ -13032,11 +26045,18 @@
 HSPLandroid/view/View;->saveAttributeDataForStyleable(Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;II)V
 HSPLandroid/view/View;->saveHierarchyState(Landroid/util/SparseArray;)V
 HSPLandroid/view/View;->scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V
+HSPLandroid/view/View;->scrollBy(II)V
 HSPLandroid/view/View;->scrollTo(II)V
 HSPLandroid/view/View;->sendAccessibilityEvent(I)V
 HSPLandroid/view/View;->sendAccessibilityEventInternal(I)V
+HSPLandroid/view/View;->sendAccessibilityEventUnchecked(Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/view/View;->sendAccessibilityEventUncheckedInternal(Landroid/view/accessibility/AccessibilityEvent;)V
 HSPLandroid/view/View;->setAccessibilityDelegate(Landroid/view/View$AccessibilityDelegate;)V
+HSPLandroid/view/View;->setAccessibilityHeading(Z)V
 HSPLandroid/view/View;->setAccessibilityLiveRegion(I)V
+HSPLandroid/view/View;->setAccessibilityPaneTitle(Ljava/lang/CharSequence;)V
+HSPLandroid/view/View;->setAccessibilityTraversalAfter(I)V
+HSPLandroid/view/View;->setAccessibilityTraversalBefore(I)V
 HSPLandroid/view/View;->setActivated(Z)V
 HSPLandroid/view/View;->setAlpha(F)V
 HSPLandroid/view/View;->setAlphaInternal(F)V
@@ -13049,20 +26069,26 @@
 HSPLandroid/view/View;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/view/View;->setBackgroundRenderNodeProperties(Landroid/graphics/RenderNode;)V
 HSPLandroid/view/View;->setBackgroundResource(I)V
+HSPLandroid/view/View;->setBackgroundTintBlendMode(Landroid/graphics/BlendMode;)V
+HSPLandroid/view/View;->setBackgroundTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/view/View;->setBottom(I)V
 HSPLandroid/view/View;->setClickable(Z)V
+HSPLandroid/view/View;->setClipBounds(Landroid/graphics/Rect;)V
 HSPLandroid/view/View;->setClipToOutline(Z)V
 HSPLandroid/view/View;->setContentDescription(Ljava/lang/CharSequence;)V
 HSPLandroid/view/View;->setDefaultFocusHighlightEnabled(Z)V
 HSPLandroid/view/View;->setDisplayListProperties(Landroid/graphics/RenderNode;)V
 HSPLandroid/view/View;->setDrawingCacheEnabled(Z)V
+HSPLandroid/view/View;->setDuplicateParentStateEnabled(Z)V
 HSPLandroid/view/View;->setElevation(F)V
 HSPLandroid/view/View;->setEnabled(Z)V
+HSPLandroid/view/View;->setFadingEdgeLength(I)V
 HSPLandroid/view/View;->setFitsSystemWindows(Z)V
 HSPLandroid/view/View;->setFlags(II)V
 HSPLandroid/view/View;->setFocusable(I)V
 HSPLandroid/view/View;->setFocusable(Z)V
 HSPLandroid/view/View;->setFocusableInTouchMode(Z)V
+HSPLandroid/view/View;->setForceDarkAllowed(Z)V
 HSPLandroid/view/View;->setForeground(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/view/View;->setForegroundGravity(I)V
 HSPLandroid/view/View;->setFrame(IIII)Z
@@ -13074,23 +26100,37 @@
 HSPLandroid/view/View;->setImportantForAutofill(I)V
 HSPLandroid/view/View;->setImportantForContentCapture(I)V
 HSPLandroid/view/View;->setIsRootNamespace(Z)V
+HSPLandroid/view/View;->setKeepScreenOn(Z)V
 HSPLandroid/view/View;->setKeyboardNavigationCluster(Z)V
 HSPLandroid/view/View;->setKeyedTag(ILjava/lang/Object;)V
+HSPLandroid/view/View;->setLabelFor(I)V
+HSPLandroid/view/View;->setLayerPaint(Landroid/graphics/Paint;)V
 HSPLandroid/view/View;->setLayerType(ILandroid/graphics/Paint;)V
 HSPLandroid/view/View;->setLayoutDirection(I)V
 HSPLandroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/view/View;->setLeft(I)V
+HSPLandroid/view/View;->setLeftTopRightBottom(IIII)V
 HSPLandroid/view/View;->setLongClickable(Z)V
 HSPLandroid/view/View;->setMeasuredDimension(II)V
 HSPLandroid/view/View;->setMeasuredDimensionRaw(II)V
 HSPLandroid/view/View;->setMinimumHeight(I)V
 HSPLandroid/view/View;->setMinimumWidth(I)V
+HSPLandroid/view/View;->setNextFocusDownId(I)V
+HSPLandroid/view/View;->setNextFocusForwardId(I)V
+HSPLandroid/view/View;->setNextFocusUpId(I)V
+HSPLandroid/view/View;->setNotifiedContentCaptureAppeared()V
 HSPLandroid/view/View;->setOnApplyWindowInsetsListener(Landroid/view/View$OnApplyWindowInsetsListener;)V
 HSPLandroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V
+HSPLandroid/view/View;->setOnCreateContextMenuListener(Landroid/view/View$OnCreateContextMenuListener;)V
 HSPLandroid/view/View;->setOnFocusChangeListener(Landroid/view/View$OnFocusChangeListener;)V
+HSPLandroid/view/View;->setOnHoverListener(Landroid/view/View$OnHoverListener;)V
 HSPLandroid/view/View;->setOnKeyListener(Landroid/view/View$OnKeyListener;)V
 HSPLandroid/view/View;->setOnLongClickListener(Landroid/view/View$OnLongClickListener;)V
+HSPLandroid/view/View;->setOnScrollChangeListener(Landroid/view/View$OnScrollChangeListener;)V
+HSPLandroid/view/View;->setOnSystemUiVisibilityChangeListener(Landroid/view/View$OnSystemUiVisibilityChangeListener;)V
 HSPLandroid/view/View;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V
 HSPLandroid/view/View;->setOutlineProvider(Landroid/view/ViewOutlineProvider;)V
+HSPLandroid/view/View;->setOutlineProviderFromAttribute(I)V
 HSPLandroid/view/View;->setOverScrollMode(I)V
 HSPLandroid/view/View;->setPadding(IIII)V
 HSPLandroid/view/View;->setPaddingRelative(IIII)V
@@ -13099,6 +26139,7 @@
 HSPLandroid/view/View;->setPointerIcon(Landroid/view/PointerIcon;)V
 HSPLandroid/view/View;->setPressed(Z)V
 HSPLandroid/view/View;->setPressed(ZFF)V
+HSPLandroid/view/View;->setRevealClip(ZFFF)V
 HSPLandroid/view/View;->setRight(I)V
 HSPLandroid/view/View;->setRotation(F)V
 HSPLandroid/view/View;->setRotationX(F)V
@@ -13107,8 +26148,15 @@
 HSPLandroid/view/View;->setSaveFromParentEnabled(Z)V
 HSPLandroid/view/View;->setScaleX(F)V
 HSPLandroid/view/View;->setScaleY(F)V
+HSPLandroid/view/View;->setScrollBarDefaultDelayBeforeFade(I)V
+HSPLandroid/view/View;->setScrollBarStyle(I)V
 HSPLandroid/view/View;->setScrollContainer(Z)V
+HSPLandroid/view/View;->setScrollIndicators(I)V
+HSPLandroid/view/View;->setScrollIndicators(II)V
+HSPLandroid/view/View;->setScrollX(I)V
+HSPLandroid/view/View;->setScrollY(I)V
 HSPLandroid/view/View;->setSelected(Z)V
+HSPLandroid/view/View;->setSoundEffectsEnabled(Z)V
 HSPLandroid/view/View;->setStateDescription(Ljava/lang/CharSequence;)V
 HSPLandroid/view/View;->setStateListAnimator(Landroid/animation/StateListAnimator;)V
 HSPLandroid/view/View;->setSystemGestureExclusionRects(Ljava/util/List;)V
@@ -13116,20 +26164,28 @@
 HSPLandroid/view/View;->setTag(ILjava/lang/Object;)V
 HSPLandroid/view/View;->setTag(Ljava/lang/Object;)V
 HSPLandroid/view/View;->setTagInternal(ILjava/lang/Object;)V
+HSPLandroid/view/View;->setTextAlignment(I)V
+HSPLandroid/view/View;->setTextDirection(I)V
 HSPLandroid/view/View;->setTooltipText(Ljava/lang/CharSequence;)V
 HSPLandroid/view/View;->setTop(I)V
 HSPLandroid/view/View;->setTouchDelegate(Landroid/view/TouchDelegate;)V
+HSPLandroid/view/View;->setTransitionAlpha(F)V
 HSPLandroid/view/View;->setTransitionName(Ljava/lang/String;)V
+HSPLandroid/view/View;->setTransitionVisibility(I)V
 HSPLandroid/view/View;->setTranslationX(F)V
 HSPLandroid/view/View;->setTranslationY(F)V
 HSPLandroid/view/View;->setTranslationZ(F)V
+HSPLandroid/view/View;->setVerticalFadingEdgeEnabled(Z)V
+HSPLandroid/view/View;->setVerticalScrollBarEnabled(Z)V
 HSPLandroid/view/View;->setVisibility(I)V
 HSPLandroid/view/View;->setWillNotDraw(Z)V
 HSPLandroid/view/View;->setX(F)V
 HSPLandroid/view/View;->setY(F)V
 HSPLandroid/view/View;->shouldDrawRoundScrollbar()Z
+HSPLandroid/view/View;->showContextMenu(FF)Z
 HSPLandroid/view/View;->sizeChange(IIII)V
 HSPLandroid/view/View;->skipInvalidate()Z
+HSPLandroid/view/View;->startActionMode(Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
 HSPLandroid/view/View;->startAnimation(Landroid/view/animation/Animation;)V
 HSPLandroid/view/View;->startNestedScroll(I)Z
 HSPLandroid/view/View;->stopNestedScroll()V
@@ -13141,6 +26197,8 @@
 HSPLandroid/view/View;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V
 HSPLandroid/view/View;->updateDisplayListIfDirty()Landroid/graphics/RenderNode;
 HSPLandroid/view/View;->updateFocusedInCluster(Landroid/view/View;I)V
+HSPLandroid/view/View;->updateLocalSystemUiVisibility(II)Z
+HSPLandroid/view/View;->updatePflags3AndNotifyA11yIfChanged(IZ)V
 HSPLandroid/view/View;->updateSystemGestureExclusionRects()V
 HSPLandroid/view/View;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
 HSPLandroid/view/View;->willNotDraw()Z
@@ -13148,17 +26206,26 @@
 HSPLandroid/view/ViewAnimationHostBridge;->isAttached()Z
 HSPLandroid/view/ViewAnimationHostBridge;->registerAnimatingRenderNode(Landroid/graphics/RenderNode;)V
 HSPLandroid/view/ViewAnimationHostBridge;->registerVectorDrawableAnimator(Landroid/view/NativeVectorDrawableAnimator;)V
+HSPLandroid/view/ViewAnimationUtils;->createCircularReveal(Landroid/view/View;IIFF)Landroid/animation/Animator;
 HSPLandroid/view/ViewConfiguration;-><init>(Landroid/content/Context;)V
 HSPLandroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration;
+HSPLandroid/view/ViewConfiguration;->getAmbiguousGestureMultiplier()F
+HPLandroid/view/ViewConfiguration;->getDeviceGlobalActionKeyTimeout()J
 HSPLandroid/view/ViewConfiguration;->getDoubleTapTimeout()I
+HSPLandroid/view/ViewConfiguration;->getHoverTapSlop()I
+HSPLandroid/view/ViewConfiguration;->getHoverTapTimeout()I
+HSPLandroid/view/ViewConfiguration;->getKeyRepeatDelay()I
+HSPLandroid/view/ViewConfiguration;->getKeyRepeatTimeout()I
 HSPLandroid/view/ViewConfiguration;->getLongPressTimeout()I
 HSPLandroid/view/ViewConfiguration;->getPressedStateDuration()I
 HSPLandroid/view/ViewConfiguration;->getScaledAmbiguousGestureMultiplier()F
 HSPLandroid/view/ViewConfiguration;->getScaledDoubleTapSlop()I
 HSPLandroid/view/ViewConfiguration;->getScaledDoubleTapTouchSlop()I
+HSPLandroid/view/ViewConfiguration;->getScaledEdgeSlop()I
 HSPLandroid/view/ViewConfiguration;->getScaledFadingEdgeLength()I
 HSPLandroid/view/ViewConfiguration;->getScaledHorizontalScrollFactor()F
 HSPLandroid/view/ViewConfiguration;->getScaledHoverSlop()I
+HSPLandroid/view/ViewConfiguration;->getScaledMaximumDrawingCacheSize()I
 HSPLandroid/view/ViewConfiguration;->getScaledMaximumFlingVelocity()I
 HSPLandroid/view/ViewConfiguration;->getScaledMinScrollbarTouchTarget()I
 HSPLandroid/view/ViewConfiguration;->getScaledMinimumFlingVelocity()I
@@ -13173,6 +26240,7 @@
 HSPLandroid/view/ViewConfiguration;->getScrollBarFadeDuration()I
 HSPLandroid/view/ViewConfiguration;->getScrollDefaultDelay()I
 HSPLandroid/view/ViewConfiguration;->getScrollFriction()F
+HSPLandroid/view/ViewConfiguration;->getSendRecurringAccessibilityEventsInterval()J
 HSPLandroid/view/ViewConfiguration;->getTapTimeout()I
 HSPLandroid/view/ViewConfiguration;->isFadingMarqueeEnabled()Z
 HSPLandroid/view/ViewDebug;->getViewInstanceCount()J
@@ -13180,6 +26248,17 @@
 HSPLandroid/view/ViewGroup$4;-><init>(Landroid/view/ViewGroup;)V
 HSPLandroid/view/ViewGroup$4;->endTransition(Landroid/animation/LayoutTransition;Landroid/view/ViewGroup;Landroid/view/View;I)V
 HSPLandroid/view/ViewGroup$4;->startTransition(Landroid/animation/LayoutTransition;Landroid/view/ViewGroup;Landroid/view/View;I)V
+HSPLandroid/view/ViewGroup$ChildListForAccessibility;-><init>()V
+HSPLandroid/view/ViewGroup$ChildListForAccessibility;->clear()V
+HSPLandroid/view/ViewGroup$ChildListForAccessibility;->getChildAt(I)Landroid/view/View;
+HSPLandroid/view/ViewGroup$ChildListForAccessibility;->getChildCount()I
+HSPLandroid/view/ViewGroup$ChildListForAccessibility;->init(Landroid/view/ViewGroup;Z)V
+HSPLandroid/view/ViewGroup$ChildListForAccessibility;->obtain(Landroid/view/ViewGroup;Z)Landroid/view/ViewGroup$ChildListForAccessibility;
+HSPLandroid/view/ViewGroup$ChildListForAccessibility;->recycle()V
+HSPLandroid/view/ViewGroup$ChildListForAccessibility;->sort(Ljava/util/ArrayList;)V
+HSPLandroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;-><init>()V
+HSPLandroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;->obtain()Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;
+HSPLandroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;->recycle()V
 HSPLandroid/view/ViewGroup$LayoutParams;-><init>()V
 HSPLandroid/view/ViewGroup$LayoutParams;-><init>(II)V
 HSPLandroid/view/ViewGroup$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
@@ -13203,13 +26282,31 @@
 HSPLandroid/view/ViewGroup$TouchTarget;-><init>()V
 HSPLandroid/view/ViewGroup$TouchTarget;->obtain(Landroid/view/View;I)Landroid/view/ViewGroup$TouchTarget;
 HSPLandroid/view/ViewGroup$TouchTarget;->recycle()V
+HSPLandroid/view/ViewGroup$ViewLocationHolder;-><clinit>()V
+HSPLandroid/view/ViewGroup$ViewLocationHolder;-><init>()V
+HSPLandroid/view/ViewGroup$ViewLocationHolder;->clear()V
+HSPLandroid/view/ViewGroup$ViewLocationHolder;->compareBoundsOfTree(Landroid/view/ViewGroup$ViewLocationHolder;Landroid/view/ViewGroup$ViewLocationHolder;)I
+HSPLandroid/view/ViewGroup$ViewLocationHolder;->compareTo(Landroid/view/ViewGroup$ViewLocationHolder;)I
+HSPLandroid/view/ViewGroup$ViewLocationHolder;->compareTo(Ljava/lang/Object;)I
+HSPLandroid/view/ViewGroup$ViewLocationHolder;->init(Landroid/view/ViewGroup;Landroid/view/View;)V
+HSPLandroid/view/ViewGroup$ViewLocationHolder;->lambda$compareBoundsOfTree$0(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/View;)Z
+HSPLandroid/view/ViewGroup$ViewLocationHolder;->lambda$compareBoundsOfTree$1(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/View;)Z
+HSPLandroid/view/ViewGroup$ViewLocationHolder;->obtain(Landroid/view/ViewGroup;Landroid/view/View;)Landroid/view/ViewGroup$ViewLocationHolder;
+HSPLandroid/view/ViewGroup$ViewLocationHolder;->recycle()V
+HSPLandroid/view/ViewGroup$ViewLocationHolder;->setComparisonStrategy(I)V
 HSPLandroid/view/ViewGroup;-><init>(Landroid/content/Context;)V
 HSPLandroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/view/ViewGroup;->access$300(Landroid/view/ViewGroup;)Z
+HSPLandroid/view/ViewGroup;->access$302(Landroid/view/ViewGroup;Z)Z
+HSPLandroid/view/ViewGroup;->access$400(Landroid/view/ViewGroup;)Ljava/util/ArrayList;
+HSPLandroid/view/ViewGroup;->addChildrenForAccessibility(Ljava/util/ArrayList;)V
+HSPLandroid/view/ViewGroup;->addDisappearingView(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->addFocusables(Ljava/util/ArrayList;II)V
 HSPLandroid/view/ViewGroup;->addInArray(Landroid/view/View;I)V
 HSPLandroid/view/ViewGroup;->addTouchTarget(Landroid/view/View;I)Landroid/view/ViewGroup$TouchTarget;
+HSPLandroid/view/ViewGroup;->addTransientView(Landroid/view/View;I)V
 HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;I)V
 HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;II)V
@@ -13234,10 +26331,12 @@
 HSPLandroid/view/ViewGroup;->clearChildFocus(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->clearDisappearingChildren()V
 HSPLandroid/view/ViewGroup;->clearFocus()V
+HSPLandroid/view/ViewGroup;->clearFocusedInCluster()V
 HSPLandroid/view/ViewGroup;->clearTouchTargets()V
 HSPLandroid/view/ViewGroup;->destroyHardwareResources()V
 HSPLandroid/view/ViewGroup;->detachAllViewsFromParent()V
 HSPLandroid/view/ViewGroup;->detachViewFromParent(I)V
+HSPLandroid/view/ViewGroup;->detachViewsFromParent(II)V
 HSPLandroid/view/ViewGroup;->dispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
 HSPLandroid/view/ViewGroup;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V
 HSPLandroid/view/ViewGroup;->dispatchCancelPendingInputEvents()V
@@ -13251,6 +26350,9 @@
 HSPLandroid/view/ViewGroup;->dispatchGetDisplayList()V
 HSPLandroid/view/ViewGroup;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
 HSPLandroid/view/ViewGroup;->dispatchKeyEventPreIme(Landroid/view/KeyEvent;)Z
+HSPLandroid/view/ViewGroup;->dispatchPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)Z
+HSPLandroid/view/ViewGroup;->dispatchProvideAutofillStructure(Landroid/view/ViewStructure;I)V
+HSPLandroid/view/ViewGroup;->dispatchProvideContentCaptureStructure()V
 HSPLandroid/view/ViewGroup;->dispatchRestoreInstanceState(Landroid/util/SparseArray;)V
 HSPLandroid/view/ViewGroup;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V
 HSPLandroid/view/ViewGroup;->dispatchScreenStateChanged(I)V
@@ -13258,6 +26360,8 @@
 HSPLandroid/view/ViewGroup;->dispatchSetPressed(Z)V
 HSPLandroid/view/ViewGroup;->dispatchSetSelected(Z)V
 HSPLandroid/view/ViewGroup;->dispatchStartTemporaryDetach()V
+HSPLandroid/view/ViewGroup;->dispatchSystemUiVisibilityChanged(I)V
+HSPLandroid/view/ViewGroup;->dispatchThawSelfOnly(Landroid/util/SparseArray;)V
 HSPLandroid/view/ViewGroup;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/ViewGroup;->dispatchTransformedTouchEvent(Landroid/view/MotionEvent;ZLandroid/view/View;I)Z
 HSPLandroid/view/ViewGroup;->dispatchUnhandledKeyEvent(Landroid/view/KeyEvent;)Landroid/view/View;
@@ -13266,6 +26370,10 @@
 HSPLandroid/view/ViewGroup;->dispatchVisibilityAggregated(Z)Z
 HSPLandroid/view/ViewGroup;->dispatchVisibilityChanged(Landroid/view/View;I)V
 HSPLandroid/view/ViewGroup;->dispatchWindowFocusChanged(Z)V
+HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V
+HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationPrepare(Landroid/view/WindowInsetsAnimation;)V
+HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationProgress(Landroid/view/WindowInsets;Ljava/util/List;)Landroid/view/WindowInsets;
+HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationStart(Landroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;)Landroid/view/WindowInsetsAnimation$Bounds;
 HSPLandroid/view/ViewGroup;->dispatchWindowSystemUiVisiblityChanged(I)V
 HSPLandroid/view/ViewGroup;->dispatchWindowVisibilityChanged(I)V
 HSPLandroid/view/ViewGroup;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z
@@ -13274,10 +26382,14 @@
 HSPLandroid/view/ViewGroup;->exitHoverTargets()V
 HSPLandroid/view/ViewGroup;->exitTooltipHoverTargets()V
 HSPLandroid/view/ViewGroup;->findFocus()Landroid/view/View;
+HSPLandroid/view/ViewGroup;->findViewByAutofillIdTraversal(I)Landroid/view/View;
+HSPLandroid/view/ViewGroup;->findViewByPredicateTraversal(Ljava/util/function/Predicate;Landroid/view/View;)Landroid/view/View;
 HSPLandroid/view/ViewGroup;->findViewTraversal(I)Landroid/view/View;
+HSPLandroid/view/ViewGroup;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;
 HSPLandroid/view/ViewGroup;->finishAnimatingView(Landroid/view/View;Landroid/view/animation/Animation;)V
 HSPLandroid/view/ViewGroup;->focusSearch(Landroid/view/View;I)Landroid/view/View;
 HSPLandroid/view/ViewGroup;->focusableViewAvailable(Landroid/view/View;)V
+HSPLandroid/view/ViewGroup;->gatherTransparentRegion(Landroid/graphics/Region;)Z
 HSPLandroid/view/ViewGroup;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
 HSPLandroid/view/ViewGroup;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
 HSPLandroid/view/ViewGroup;->getAccessibilityClassName()Ljava/lang/CharSequence;
@@ -13289,14 +26401,23 @@
 HSPLandroid/view/ViewGroup;->getChildTransformation()Landroid/view/animation/Transformation;
 HSPLandroid/view/ViewGroup;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;)Z
 HSPLandroid/view/ViewGroup;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;Z)Z
+HSPLandroid/view/ViewGroup;->getChildrenForAutofill(I)Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;
+HSPLandroid/view/ViewGroup;->getChildrenForContentCapture()Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;
 HSPLandroid/view/ViewGroup;->getClipChildren()Z
 HSPLandroid/view/ViewGroup;->getClipToPadding()Z
 HSPLandroid/view/ViewGroup;->getDescendantFocusability()I
 HSPLandroid/view/ViewGroup;->getFocusedChild()Landroid/view/View;
+HSPLandroid/view/ViewGroup;->getLayoutMode()I
 HSPLandroid/view/ViewGroup;->getLayoutTransition()Landroid/animation/LayoutTransition;
+HSPLandroid/view/ViewGroup;->getNestedScrollAxes()I
+HSPLandroid/view/ViewGroup;->getNumChildrenForAccessibility()I
+HSPLandroid/view/ViewGroup;->getOverlay()Landroid/view/ViewGroupOverlay;
+HSPLandroid/view/ViewGroup;->getScrollIndicatorBounds(Landroid/graphics/Rect;)V
 HSPLandroid/view/ViewGroup;->getTempPoint()[F
 HSPLandroid/view/ViewGroup;->getTouchTarget(Landroid/view/View;)Landroid/view/ViewGroup$TouchTarget;
 HSPLandroid/view/ViewGroup;->getTouchscreenBlocksFocus()Z
+HSPLandroid/view/ViewGroup;->getTransientView(I)Landroid/view/View;
+HSPLandroid/view/ViewGroup;->getTransientViewCount()I
 HSPLandroid/view/ViewGroup;->handleFocusGainInternal(ILandroid/graphics/Rect;)V
 HSPLandroid/view/ViewGroup;->hasBooleanFlag(I)Z
 HSPLandroid/view/ViewGroup;->hasChildWithZ()Z
@@ -13311,9 +26432,11 @@
 HSPLandroid/view/ViewGroup;->initViewGroup()V
 HSPLandroid/view/ViewGroup;->internalSetPadding(IIII)V
 HSPLandroid/view/ViewGroup;->invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)V
+HSPLandroid/view/ViewGroup;->invalidateChildInParent([ILandroid/graphics/Rect;)Landroid/view/ViewParent;
 HSPLandroid/view/ViewGroup;->isChildrenDrawingOrderEnabled()Z
 HSPLandroid/view/ViewGroup;->isLayoutModeOptical()Z
 HSPLandroid/view/ViewGroup;->isLayoutSuppressed()Z
+HSPLandroid/view/ViewGroup;->isShowingContextMenuWithCoords()Z
 HSPLandroid/view/ViewGroup;->isTransformedTouchPointInView(FFLandroid/view/View;Landroid/graphics/PointF;)Z
 HSPLandroid/view/ViewGroup;->isViewTransitioning(Landroid/view/View;)Z
 HSPLandroid/view/ViewGroup;->jumpDrawablesToCurrentState()V
@@ -13323,35 +26446,52 @@
 HSPLandroid/view/ViewGroup;->measureChild(Landroid/view/View;II)V
 HSPLandroid/view/ViewGroup;->measureChildWithMargins(Landroid/view/View;IIII)V
 HSPLandroid/view/ViewGroup;->measureChildren(II)V
+HSPLandroid/view/ViewGroup;->notifySubtreeAccessibilityStateChanged(Landroid/view/View;Landroid/view/View;I)V
 HSPLandroid/view/ViewGroup;->notifySubtreeAccessibilityStateChangedIfNeeded()V
+HSPLandroid/view/ViewGroup;->offsetChildrenTopAndBottom(I)V
 HSPLandroid/view/ViewGroup;->offsetDescendantRectToMyCoords(Landroid/view/View;Landroid/graphics/Rect;)V
 HSPLandroid/view/ViewGroup;->offsetRectBetweenParentAndChild(Landroid/view/View;Landroid/graphics/Rect;ZZ)V
+HSPLandroid/view/ViewGroup;->offsetRectIntoDescendantCoords(Landroid/view/View;Landroid/graphics/Rect;)V
 HSPLandroid/view/ViewGroup;->onAttachedToWindow()V
 HSPLandroid/view/ViewGroup;->onChildVisibilityChanged(Landroid/view/View;II)V
 HSPLandroid/view/ViewGroup;->onCreateDrawableState(I)[I
 HSPLandroid/view/ViewGroup;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V
+HSPLandroid/view/ViewGroup;->onDescendantUnbufferedRequested()V
 HSPLandroid/view/ViewGroup;->onDetachedFromWindow()V
+HSPLandroid/view/ViewGroup;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
 HSPLandroid/view/ViewGroup;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/view/ViewGroup;->onRequestFocusInDescendants(ILandroid/graphics/Rect;)Z
+HSPLandroid/view/ViewGroup;->onRequestSendAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z
+HSPLandroid/view/ViewGroup;->onRequestSendAccessibilityEventInternal(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z
 HSPLandroid/view/ViewGroup;->onSetLayoutParams(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
 HSPLandroid/view/ViewGroup;->onStartNestedScroll(Landroid/view/View;Landroid/view/View;I)Z
 HSPLandroid/view/ViewGroup;->onViewAdded(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->onViewRemoved(Landroid/view/View;)V
+HSPLandroid/view/ViewGroup;->populateChildrenForAutofill(Ljava/util/ArrayList;I)V
+HSPLandroid/view/ViewGroup;->populateChildrenForContentCapture(Ljava/util/ArrayList;)V
+HSPLandroid/view/ViewGroup;->recomputeViewAttributes(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->recreateChildDisplayList(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->removeAllViews()V
 HSPLandroid/view/ViewGroup;->removeAllViewsInLayout()V
 HSPLandroid/view/ViewGroup;->removeDetachedView(Landroid/view/View;Z)V
 HSPLandroid/view/ViewGroup;->removeFromArray(I)V
+HSPLandroid/view/ViewGroup;->removeFromArray(II)V
 HSPLandroid/view/ViewGroup;->removePointersFromTouchTargets(I)V
+HSPLandroid/view/ViewGroup;->removeTransientView(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->removeView(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->removeViewAt(I)V
 HSPLandroid/view/ViewGroup;->removeViewInLayout(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->removeViewInternal(ILandroid/view/View;)V
 HSPLandroid/view/ViewGroup;->removeViewInternal(Landroid/view/View;)Z
+HSPLandroid/view/ViewGroup;->removeViews(II)V
+HSPLandroid/view/ViewGroup;->removeViewsInternal(II)V
 HSPLandroid/view/ViewGroup;->requestChildFocus(Landroid/view/View;Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z
 HSPLandroid/view/ViewGroup;->requestDisallowInterceptTouchEvent(Z)V
 HSPLandroid/view/ViewGroup;->requestFocus(ILandroid/graphics/Rect;)Z
+HSPLandroid/view/ViewGroup;->requestSendAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z
+HSPLandroid/view/ViewGroup;->requestTransitionStart(Landroid/animation/LayoutTransition;)V
+HSPLandroid/view/ViewGroup;->requestTransparentRegion(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->resetCancelNextUpFlag(Landroid/view/View;)Z
 HSPLandroid/view/ViewGroup;->resetResolvedDrawables()V
 HSPLandroid/view/ViewGroup;->resetResolvedLayoutDirection()V
@@ -13367,6 +26507,7 @@
 HSPLandroid/view/ViewGroup;->resolveRtlPropertiesIfNeeded()Z
 HSPLandroid/view/ViewGroup;->resolveTextAlignment()Z
 HSPLandroid/view/ViewGroup;->resolveTextDirection()Z
+HSPLandroid/view/ViewGroup;->restoreDefaultFocus()Z
 HSPLandroid/view/ViewGroup;->setAlwaysDrawnWithCacheEnabled(Z)V
 HSPLandroid/view/ViewGroup;->setBooleanFlag(IZ)V
 HSPLandroid/view/ViewGroup;->setChildrenDrawingCacheEnabled(Z)V
@@ -13374,21 +26515,48 @@
 HSPLandroid/view/ViewGroup;->setClipChildren(Z)V
 HSPLandroid/view/ViewGroup;->setClipToPadding(Z)V
 HSPLandroid/view/ViewGroup;->setDescendantFocusability(I)V
+HSPLandroid/view/ViewGroup;->setLayoutAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V
+HSPLandroid/view/ViewGroup;->setLayoutMode(IZ)V
 HSPLandroid/view/ViewGroup;->setLayoutTransition(Landroid/animation/LayoutTransition;)V
 HSPLandroid/view/ViewGroup;->setMotionEventSplittingEnabled(Z)V
 HSPLandroid/view/ViewGroup;->setOnHierarchyChangeListener(Landroid/view/ViewGroup$OnHierarchyChangeListener;)V
 HSPLandroid/view/ViewGroup;->setTouchscreenBlocksFocus(Z)V
 HSPLandroid/view/ViewGroup;->shouldBlockFocusForTouchscreen()Z
 HSPLandroid/view/ViewGroup;->shouldDelayChildPressedState()Z
+HSPLandroid/view/ViewGroup;->showContextMenuForChild(Landroid/view/View;)Z
+HSPLandroid/view/ViewGroup;->showContextMenuForChild(Landroid/view/View;FF)Z
+HSPLandroid/view/ViewGroup;->startActionModeForChild(Landroid/view/View;Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
 HSPLandroid/view/ViewGroup;->startViewTransition(Landroid/view/View;)V
+HSPLandroid/view/ViewGroup;->suppressLayout(Z)V
 HSPLandroid/view/ViewGroup;->touchAccessibilityNodeProviderIfNeeded(Landroid/view/View;)V
 HSPLandroid/view/ViewGroup;->transformPointToViewLocal([FLandroid/view/View;)V
 HSPLandroid/view/ViewGroup;->unFocus(Landroid/view/View;)V
+HSPLandroid/view/ViewGroup;->updateLocalSystemUiVisibility(II)Z
+HSPLandroid/view/ViewGroup;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/view/ViewGroupOverlay;-><init>(Landroid/content/Context;Landroid/view/View;)V
+HSPLandroid/view/ViewGroupOverlay;->add(Landroid/view/View;)V
+HSPLandroid/view/ViewGroupOverlay;->remove(Landroid/view/View;)V
 HSPLandroid/view/ViewOutlineProvider$1;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V
 HSPLandroid/view/ViewOutlineProvider$2;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V
 HSPLandroid/view/ViewOutlineProvider;-><init>()V
+HSPLandroid/view/ViewOverlay$OverlayViewGroup;-><init>(Landroid/content/Context;Landroid/view/View;)V
+HSPLandroid/view/ViewOverlay$OverlayViewGroup;->add(Landroid/view/View;)V
+HSPLandroid/view/ViewOverlay$OverlayViewGroup;->dispatchDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(IIII)V
+HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(Z)V
+HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidateParentIfNeeded()V
+HSPLandroid/view/ViewOverlay$OverlayViewGroup;->isEmpty()Z
+HSPLandroid/view/ViewOverlay$OverlayViewGroup;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V
+HSPLandroid/view/ViewOverlay$OverlayViewGroup;->remove(Landroid/view/View;)V
+HSPLandroid/view/ViewOverlay;-><init>(Landroid/content/Context;Landroid/view/View;)V
+HSPLandroid/view/ViewOverlay;->getOverlayView()Landroid/view/ViewGroup;
+HSPLandroid/view/ViewOverlay;->isEmpty()Z
 HSPLandroid/view/ViewPropertyAnimator$1;-><init>(Landroid/view/ViewPropertyAnimator;)V
 HSPLandroid/view/ViewPropertyAnimator$1;->run()V
+HSPLandroid/view/ViewPropertyAnimator$2;-><init>(Landroid/view/ViewPropertyAnimator;)V
+HSPLandroid/view/ViewPropertyAnimator$2;->run()V
+HSPLandroid/view/ViewPropertyAnimator$3;-><init>(Landroid/view/ViewPropertyAnimator;I)V
+HSPLandroid/view/ViewPropertyAnimator$3;->run()V
 HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;-><init>(Landroid/view/ViewPropertyAnimator;)V
 HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;-><init>(Landroid/view/ViewPropertyAnimator;Landroid/view/ViewPropertyAnimator$1;)V
 HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationCancel(Landroid/animation/Animator;)V
@@ -13397,6 +26565,7 @@
 HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V
 HSPLandroid/view/ViewPropertyAnimator$NameValuesHolder;-><init>(IFF)V
 HSPLandroid/view/ViewPropertyAnimator$PropertyBundle;-><init>(ILjava/util/ArrayList;)V
+HSPLandroid/view/ViewPropertyAnimator$PropertyBundle;->cancel(I)Z
 HSPLandroid/view/ViewPropertyAnimator;-><init>(Landroid/view/View;)V
 HSPLandroid/view/ViewPropertyAnimator;->access$100(Landroid/view/ViewPropertyAnimator;)V
 HSPLandroid/view/ViewPropertyAnimator;->access$200(Landroid/view/ViewPropertyAnimator;)Ljava/util/HashMap;
@@ -13409,24 +26578,37 @@
 HSPLandroid/view/ViewPropertyAnimator;->access$900(Landroid/view/ViewPropertyAnimator;)Landroid/animation/ValueAnimator$AnimatorUpdateListener;
 HSPLandroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
 HSPLandroid/view/ViewPropertyAnimator;->animateProperty(IF)V
+HSPLandroid/view/ViewPropertyAnimator;->animatePropertyBy(IF)V
 HSPLandroid/view/ViewPropertyAnimator;->animatePropertyBy(IFF)V
 HSPLandroid/view/ViewPropertyAnimator;->cancel()V
 HSPLandroid/view/ViewPropertyAnimator;->getValue(I)F
+HSPLandroid/view/ViewPropertyAnimator;->scaleX(F)Landroid/view/ViewPropertyAnimator;
+HSPLandroid/view/ViewPropertyAnimator;->scaleY(F)Landroid/view/ViewPropertyAnimator;
 HSPLandroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
 HSPLandroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;
 HSPLandroid/view/ViewPropertyAnimator;->setListener(Landroid/animation/Animator$AnimatorListener;)Landroid/view/ViewPropertyAnimator;
+HSPLandroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
+HSPLandroid/view/ViewPropertyAnimator;->setUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)Landroid/view/ViewPropertyAnimator;
 HSPLandroid/view/ViewPropertyAnimator;->setValue(IF)V
 HSPLandroid/view/ViewPropertyAnimator;->start()V
 HSPLandroid/view/ViewPropertyAnimator;->startAnimation()V
 HSPLandroid/view/ViewPropertyAnimator;->translationX(F)Landroid/view/ViewPropertyAnimator;
 HSPLandroid/view/ViewPropertyAnimator;->translationY(F)Landroid/view/ViewPropertyAnimator;
+HSPLandroid/view/ViewPropertyAnimator;->translationYBy(F)Landroid/view/ViewPropertyAnimator;
 HSPLandroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
+HSPLandroid/view/ViewPropertyAnimator;->withLayer()Landroid/view/ViewPropertyAnimator;
+HSPLandroid/view/ViewPropertyAnimator;->withStartAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
+HSPLandroid/view/ViewPropertyAnimator;->y(F)Landroid/view/ViewPropertyAnimator;
 HSPLandroid/view/ViewRootImpl$1;-><init>(Landroid/view/ViewRootImpl;)V
+HSPLandroid/view/ViewRootImpl$1;->onDisplayAdded(I)V
 HSPLandroid/view/ViewRootImpl$1;->onDisplayChanged(I)V
+HSPLandroid/view/ViewRootImpl$1;->onDisplayRemoved(I)V
 HSPLandroid/view/ViewRootImpl$1;->toViewScreenState(I)I
 HSPLandroid/view/ViewRootImpl$4;-><init>(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/ViewRootImpl$4;->run()V
+HSPLandroid/view/ViewRootImpl$AccessibilityInteractionConnection;-><init>(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;-><init>(Landroid/view/ViewRootImpl;)V
+HSPLandroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;->ensureConnection()V
 HSPLandroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;->ensureNoConnection()V
 HSPLandroid/view/ViewRootImpl$AsyncInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V
 HSPLandroid/view/ViewRootImpl$AsyncInputStage;->apply(Landroid/view/ViewRootImpl$QueuedInputEvent;I)V
@@ -13442,6 +26624,7 @@
 HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;->processKeyEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
 HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;->processMotionEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
 HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;->processPointerEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
+HSPLandroid/view/ViewRootImpl$GfxInfo;-><init>()V
 HSPLandroid/view/ViewRootImpl$HighContrastTextManager;-><init>(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/ViewRootImpl$ImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V
 HSPLandroid/view/ViewRootImpl$ImeInputStage;->onFinishedInputEvent(Ljava/lang/Object;Z)V
@@ -13458,6 +26641,7 @@
 HSPLandroid/view/ViewRootImpl$InputStage;->traceEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;J)V
 HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;-><init>(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->addView(Landroid/view/View;)V
+HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->addViewRect(Landroid/view/View$AttachInfo$InvalidateInfo;)V
 HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->postIfNeededLocked()V
 HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->removeView(Landroid/view/View;)V
 HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->run()V
@@ -13469,6 +26653,11 @@
 HSPLandroid/view/ViewRootImpl$QueuedInputEvent;-><init>(Landroid/view/ViewRootImpl$1;)V
 HSPLandroid/view/ViewRootImpl$QueuedInputEvent;->shouldSendToSynthesizer()Z
 HSPLandroid/view/ViewRootImpl$QueuedInputEvent;->shouldSkipIme()Z
+HSPLandroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;-><init>(Landroid/view/ViewRootImpl;)V
+HSPLandroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$1;)V
+HSPLandroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;->removeCallbacksAndRun()V
+HSPLandroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;->run()V
+HSPLandroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;->runOrPost(Landroid/view/View;I)V
 HSPLandroid/view/ViewRootImpl$SyntheticInputStage;-><init>(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/ViewRootImpl$SyntheticInputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 HSPLandroid/view/ViewRootImpl$SyntheticInputStage;->onDetachedFromWindow()V
@@ -13496,6 +26685,7 @@
 HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->maybeUpdatePointerIcon(Landroid/view/MotionEvent;)V
 HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
+HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->performFocusNavigation(Landroid/view/KeyEvent;)Z
 HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->processKeyEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
 HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->processPointerEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
 HSPLandroid/view/ViewRootImpl$ViewPreImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V
@@ -13507,16 +26697,22 @@
 HSPLandroid/view/ViewRootImpl$W;-><init>(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/ViewRootImpl$W;->closeSystemDialogs(Ljava/lang/String;)V
 HSPLandroid/view/ViewRootImpl$W;->dispatchAppVisibility(Z)V
+HSPLandroid/view/ViewRootImpl$W;->dispatchSystemUiVisibilityChanged(IIII)V
 HSPLandroid/view/ViewRootImpl$W;->dispatchWindowShown()V
 HSPLandroid/view/ViewRootImpl$W;->insetsChanged(Landroid/view/InsetsState;)V
+HSPLandroid/view/ViewRootImpl$W;->insetsControlChanged(Landroid/view/InsetsState;[Landroid/view/InsetsSourceControl;)V
+HSPLandroid/view/ViewRootImpl$W;->moved(II)V
 HSPLandroid/view/ViewRootImpl$W;->resized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
+HSPLandroid/view/ViewRootImpl$W;->windowFocusChanged(ZZ)V
 HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;-><init>(Landroid/view/ViewRootImpl;Landroid/view/InputChannel;Landroid/os/Looper;)V
 HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->dispose()V
 HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->onBatchedInputEventPending()V
 HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->onFocusEvent(ZZ)V
 HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->onInputEvent(Landroid/view/InputEvent;)V
+HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->processUnbufferedRequest(Landroid/view/InputEvent;)V
 HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;)V
 HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;Landroid/view/IWindowSession;)V
+HSPLandroid/view/ViewRootImpl;->access$1000(Landroid/view/ViewRootImpl;Landroid/graphics/Rect;)V
 HSPLandroid/view/ViewRootImpl;->access$1100(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/ViewRootImpl;->access$1600(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 HSPLandroid/view/ViewRootImpl;->access$1900(Landroid/view/ViewRootImpl;)Landroid/view/ImeFocusController;
@@ -13528,13 +26724,17 @@
 HSPLandroid/view/ViewRootImpl;->access$3502(Landroid/view/ViewRootImpl;Z)Z
 HSPLandroid/view/ViewRootImpl;->access$3600(Landroid/view/ViewRootImpl;Z)V
 HSPLandroid/view/ViewRootImpl;->access$3800(Landroid/view/ViewRootImpl;)Landroid/view/InputEventCompatProcessor;
+HSPLandroid/view/ViewRootImpl;->access$400(Landroid/view/ViewRootImpl;Landroid/util/MergedConfiguration;ZI)V
 HSPLandroid/view/ViewRootImpl;->access$4000(Landroid/view/ViewRootImpl;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
 HSPLandroid/view/ViewRootImpl;->access$4100(Landroid/view/ViewRootImpl;Landroid/view/InsetsState;)V
+HSPLandroid/view/ViewRootImpl;->access$4300(Landroid/view/ViewRootImpl;Landroid/view/InsetsState;[Landroid/view/InsetsSourceControl;)V
+HSPLandroid/view/ViewRootImpl;->access$4500(Landroid/view/ViewRootImpl;Landroid/view/View;Landroid/view/View;)Landroid/view/View;
 HSPLandroid/view/ViewRootImpl;->access$600(Landroid/view/ViewRootImpl;Landroid/graphics/Rect;)V
 HSPLandroid/view/ViewRootImpl;->access$700(Landroid/view/ViewRootImpl;)V
 HSPLandroid/view/ViewRootImpl;->access$800(Landroid/view/View;)V
 HSPLandroid/view/ViewRootImpl;->access$900(Landroid/view/ViewRootImpl;)Landroid/view/InsetsController;
 HSPLandroid/view/ViewRootImpl;->addConfigCallback(Landroid/view/ViewRootImpl$ConfigChangedCallback;)V
+HSPLandroid/view/ViewRootImpl;->addSurfaceChangedCallback(Landroid/view/ViewRootImpl$SurfaceChangedCallback;)V
 HSPLandroid/view/ViewRootImpl;->addWindowCallbacks(Landroid/view/WindowCallbacks;)V
 HSPLandroid/view/ViewRootImpl;->adjustLayoutParamsForCompatibility(Landroid/view/WindowManager$LayoutParams;)V
 HSPLandroid/view/ViewRootImpl;->applyKeepScreenOnFlag(Landroid/view/WindowManager$LayoutParams;)V
@@ -13546,6 +26746,8 @@
 HSPLandroid/view/ViewRootImpl;->childHasTransientStateChanged(Landroid/view/View;Z)V
 HSPLandroid/view/ViewRootImpl;->clearChildFocus(Landroid/view/View;)V
 HSPLandroid/view/ViewRootImpl;->collectViewAttributes()Z
+HSPLandroid/view/ViewRootImpl;->controlInsetsForCompatibility(Landroid/view/WindowManager$LayoutParams;)V
+HSPLandroid/view/ViewRootImpl;->createContextMenu(Landroid/view/ContextMenu;)V
 HSPLandroid/view/ViewRootImpl;->deliverInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 HSPLandroid/view/ViewRootImpl;->destroyHardwareRenderer()V
 HSPLandroid/view/ViewRootImpl;->destroyHardwareResources()V
@@ -13558,10 +26760,17 @@
 HSPLandroid/view/ViewRootImpl;->dispatchCloseSystemDialogs(Ljava/lang/String;)V
 HSPLandroid/view/ViewRootImpl;->dispatchDetachedFromWindow()V
 HSPLandroid/view/ViewRootImpl;->dispatchInsetsChanged(Landroid/view/InsetsState;)V
+HSPLandroid/view/ViewRootImpl;->dispatchInsetsControlChanged(Landroid/view/InsetsState;[Landroid/view/InsetsSourceControl;)V
 HSPLandroid/view/ViewRootImpl;->dispatchInvalidateDelayed(Landroid/view/View;J)V
 HSPLandroid/view/ViewRootImpl;->dispatchInvalidateOnAnimation(Landroid/view/View;)V
+HSPLandroid/view/ViewRootImpl;->dispatchInvalidateRectDelayed(Landroid/view/View$AttachInfo$InvalidateInfo;J)V
+HSPLandroid/view/ViewRootImpl;->dispatchInvalidateRectOnAnimation(Landroid/view/View$AttachInfo$InvalidateInfo;)V
+HSPLandroid/view/ViewRootImpl;->dispatchKeyFromIme(Landroid/view/KeyEvent;)V
+HSPLandroid/view/ViewRootImpl;->dispatchMoved(II)V
 HSPLandroid/view/ViewRootImpl;->dispatchResized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
+HSPLandroid/view/ViewRootImpl;->dispatchSystemUiVisibilityChanged(IIII)V
 HSPLandroid/view/ViewRootImpl;->dispatchUnhandledKeyEvent(Landroid/view/KeyEvent;)Z
+HSPLandroid/view/ViewRootImpl;->dispatchWindowShown()V
 HSPLandroid/view/ViewRootImpl;->doConsumeBatchedInput(J)V
 HSPLandroid/view/ViewRootImpl;->doDie()V
 HSPLandroid/view/ViewRootImpl;->doProcessInputEvents()V
@@ -13569,6 +26778,7 @@
 HSPLandroid/view/ViewRootImpl;->draw(Z)Z
 HSPLandroid/view/ViewRootImpl;->drawAccessibilityFocusedDrawableIfNeeded(Landroid/graphics/Canvas;)V
 HSPLandroid/view/ViewRootImpl;->drawPending()V
+HSPLandroid/view/ViewRootImpl;->drawSoftware(Landroid/view/Surface;Landroid/view/View$AttachInfo;IIZLandroid/graphics/Rect;Landroid/graphics/Rect;)Z
 HSPLandroid/view/ViewRootImpl;->enableHardwareAcceleration(Landroid/view/WindowManager$LayoutParams;)V
 HSPLandroid/view/ViewRootImpl;->endDragResizing()V
 HSPLandroid/view/ViewRootImpl;->enqueueInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;IZ)V
@@ -13585,7 +26795,9 @@
 HSPLandroid/view/ViewRootImpl;->getAccessibilityFocusedRect(Landroid/graphics/Rect;)Z
 HSPLandroid/view/ViewRootImpl;->getAudioManager()Landroid/media/AudioManager;
 HSPLandroid/view/ViewRootImpl;->getAutofillManager()Landroid/view/autofill/AutofillManager;
+HSPLandroid/view/ViewRootImpl;->getBoundsLayer()Landroid/view/SurfaceControl;
 HSPLandroid/view/ViewRootImpl;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;)Z
+HSPLandroid/view/ViewRootImpl;->getCommonPredecessor(Landroid/view/View;Landroid/view/View;)Landroid/view/View;
 HSPLandroid/view/ViewRootImpl;->getDisplayId()I
 HSPLandroid/view/ViewRootImpl;->getHostVisibility()I
 HSPLandroid/view/ViewRootImpl;->getImeFocusController()Landroid/view/ImeFocusController;
@@ -13593,16 +26805,22 @@
 HSPLandroid/view/ViewRootImpl;->getInsetsController()Landroid/view/InsetsController;
 HSPLandroid/view/ViewRootImpl;->getNightMode()I
 HSPLandroid/view/ViewRootImpl;->getParent()Landroid/view/ViewParent;
+HSPLandroid/view/ViewRootImpl;->getRenderSurfaceControl()Landroid/view/SurfaceControl;
 HSPLandroid/view/ViewRootImpl;->getRootMeasureSpec(II)I
 HSPLandroid/view/ViewRootImpl;->getRunQueue()Landroid/view/HandlerActionQueue;
+HSPLandroid/view/ViewRootImpl;->getSourceForAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Landroid/view/View;
+HSPLandroid/view/ViewRootImpl;->getSurfaceControl()Landroid/view/SurfaceControl;
 HSPLandroid/view/ViewRootImpl;->getTextDirection()I
 HSPLandroid/view/ViewRootImpl;->getTitle()Ljava/lang/CharSequence;
 HSPLandroid/view/ViewRootImpl;->getValidLayoutRequesters(Ljava/util/ArrayList;Z)Ljava/util/ArrayList;
 HSPLandroid/view/ViewRootImpl;->getView()Landroid/view/View;
+HSPLandroid/view/ViewRootImpl;->getWindowFlags()I
 HSPLandroid/view/ViewRootImpl;->getWindowInsets(Z)Landroid/view/WindowInsets;
 HSPLandroid/view/ViewRootImpl;->handleAppVisibility(Z)V
 HSPLandroid/view/ViewRootImpl;->handleContentCaptureFlush()V
+HSPLandroid/view/ViewRootImpl;->handleDispatchSystemUiVisibilityChanged(Landroid/view/ViewRootImpl$SystemUiVisibilityInfo;)V
 HSPLandroid/view/ViewRootImpl;->handleDispatchWindowShown()V
+HSPLandroid/view/ViewRootImpl;->handleWindowContentChangedEvent(Landroid/view/accessibility/AccessibilityEvent;)V
 HSPLandroid/view/ViewRootImpl;->handleWindowFocusChanged()V
 HSPLandroid/view/ViewRootImpl;->hasColorModeChanged(I)Z
 HSPLandroid/view/ViewRootImpl;->invalidate()V
@@ -13612,42 +26830,56 @@
 HSPLandroid/view/ViewRootImpl;->isContentCaptureEnabled()Z
 HSPLandroid/view/ViewRootImpl;->isContentCaptureReallyEnabled()Z
 HSPLandroid/view/ViewRootImpl;->isInLayout()Z
+HSPLandroid/view/ViewRootImpl;->isInLocalFocusMode()Z
 HSPLandroid/view/ViewRootImpl;->isInTouchMode()Z
 HSPLandroid/view/ViewRootImpl;->isLayoutRequested()Z
 HSPLandroid/view/ViewRootImpl;->isNavigationKey(Landroid/view/KeyEvent;)Z
+HSPLandroid/view/ViewRootImpl;->isTerminalInputEvent(Landroid/view/InputEvent;)Z
 HSPLandroid/view/ViewRootImpl;->isTextDirectionResolved()Z
 HSPLandroid/view/ViewRootImpl;->isTypingKey(Landroid/view/KeyEvent;)Z
+HSPLandroid/view/ViewRootImpl;->isViewDescendantOf(Landroid/view/View;Landroid/view/View;)Z
+HSPLandroid/view/ViewRootImpl;->lambda$performDraw$1$ViewRootImpl(Ljava/util/ArrayList;)V
 HSPLandroid/view/ViewRootImpl;->lambda$performDraw$1$ViewRootImpl(ZLjava/util/ArrayList;)V
+HSPLandroid/view/ViewRootImpl;->lambda$performDraw$2$ViewRootImpl(Landroid/os/Handler;Ljava/util/ArrayList;J)V
 HSPLandroid/view/ViewRootImpl;->lambda$performDraw$2$ViewRootImpl(Landroid/os/Handler;ZLjava/util/ArrayList;J)V
+HSPLandroid/view/ViewRootImpl;->lambda$registerRtFrameCallback$0(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;J)V
 HSPLandroid/view/ViewRootImpl;->loadSystemProperties()V
 HSPLandroid/view/ViewRootImpl;->maybeHandleWindowMove(Landroid/graphics/Rect;)V
 HSPLandroid/view/ViewRootImpl;->maybeUpdateTooltip(Landroid/view/MotionEvent;)V
 HSPLandroid/view/ViewRootImpl;->measureHierarchy(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;Landroid/content/res/Resources;II)Z
+HSPLandroid/view/ViewRootImpl;->notifyContentCatpureEvents()V
 HSPLandroid/view/ViewRootImpl;->notifyInsetsChanged()V
 HSPLandroid/view/ViewRootImpl;->notifyRendererOfFramePending()V
+HSPLandroid/view/ViewRootImpl;->notifySubtreeAccessibilityStateChanged(Landroid/view/View;Landroid/view/View;I)V
 HSPLandroid/view/ViewRootImpl;->notifySurfaceCreated()V
 HSPLandroid/view/ViewRootImpl;->notifySurfaceDestroyed()V
 HSPLandroid/view/ViewRootImpl;->obtainQueuedInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;I)Landroid/view/ViewRootImpl$QueuedInputEvent;
 HSPLandroid/view/ViewRootImpl;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V
+HSPLandroid/view/ViewRootImpl;->onDescendantUnbufferedRequested()V
 HSPLandroid/view/ViewRootImpl;->onPostDraw(Landroid/graphics/RecordingCanvas;)V
 HSPLandroid/view/ViewRootImpl;->onPreDraw(Landroid/graphics/RecordingCanvas;)V
 HSPLandroid/view/ViewRootImpl;->onStartNestedScroll(Landroid/view/View;Landroid/view/View;I)Z
+HSPLandroid/view/ViewRootImpl;->onWindowTitleChanged()V
 HSPLandroid/view/ViewRootImpl;->pendingDrawFinished()V
 HSPLandroid/view/ViewRootImpl;->performConfigurationChange(Landroid/util/MergedConfiguration;ZI)V
 HSPLandroid/view/ViewRootImpl;->performContentCaptureInitialReport()V
 HSPLandroid/view/ViewRootImpl;->performDraw()V
+HSPLandroid/view/ViewRootImpl;->performHapticFeedback(IZ)Z
 HSPLandroid/view/ViewRootImpl;->performLayout(Landroid/view/WindowManager$LayoutParams;II)V
 HSPLandroid/view/ViewRootImpl;->performMeasure(II)V
 HSPLandroid/view/ViewRootImpl;->performTraversals()V
 HSPLandroid/view/ViewRootImpl;->playSoundEffect(I)V
 HSPLandroid/view/ViewRootImpl;->pokeDrawLockIfNeeded()V
+HSPLandroid/view/ViewRootImpl;->postSendWindowContentChangedCallback(Landroid/view/View;I)V
 HSPLandroid/view/ViewRootImpl;->profileRendering(Z)V
 HSPLandroid/view/ViewRootImpl;->recomputeViewAttributes(Landroid/view/View;)V
 HSPLandroid/view/ViewRootImpl;->recycleQueuedInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 HSPLandroid/view/ViewRootImpl;->registerAnimatingRenderNode(Landroid/graphics/RenderNode;)V
+HSPLandroid/view/ViewRootImpl;->registerRtFrameCallback(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V
 HSPLandroid/view/ViewRootImpl;->registerVectorDrawableAnimator(Landroid/view/NativeVectorDrawableAnimator;)V
 HSPLandroid/view/ViewRootImpl;->relayoutWindow(Landroid/view/WindowManager$LayoutParams;IZ)I
 HSPLandroid/view/ViewRootImpl;->removeSendWindowContentChangedCallback()V
+HSPLandroid/view/ViewRootImpl;->removeSurfaceChangedCallback(Landroid/view/ViewRootImpl$SurfaceChangedCallback;)V
 HSPLandroid/view/ViewRootImpl;->removeWindowCallbacks(Landroid/view/WindowCallbacks;)V
 HSPLandroid/view/ViewRootImpl;->reportDrawFinished()V
 HSPLandroid/view/ViewRootImpl;->reportNextDraw()V
@@ -13655,13 +26887,18 @@
 HSPLandroid/view/ViewRootImpl;->requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z
 HSPLandroid/view/ViewRootImpl;->requestDisallowInterceptTouchEvent(Z)V
 HSPLandroid/view/ViewRootImpl;->requestFitSystemWindows()V
+HSPLandroid/view/ViewRootImpl;->requestInvalidateRootRenderNode()V
 HSPLandroid/view/ViewRootImpl;->requestLayout()V
 HSPLandroid/view/ViewRootImpl;->requestLayoutDuringLayout(Landroid/view/View;)Z
+HSPLandroid/view/ViewRootImpl;->requestSendAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z
+HSPLandroid/view/ViewRootImpl;->requestTransitionStart(Landroid/animation/LayoutTransition;)V
+HSPLandroid/view/ViewRootImpl;->requestTransparentRegion(Landroid/view/View;)V
 HSPLandroid/view/ViewRootImpl;->scheduleConsumeBatchedInput()V
 HSPLandroid/view/ViewRootImpl;->scheduleTraversals()V
 HSPLandroid/view/ViewRootImpl;->scrollToRectOrFocus(Landroid/graphics/Rect;Z)Z
 HSPLandroid/view/ViewRootImpl;->setAccessibilityFocus(Landroid/view/View;Landroid/view/accessibility/AccessibilityNodeInfo;)V
 HSPLandroid/view/ViewRootImpl;->setActivityConfigCallback(Landroid/view/ViewRootImpl$ActivityConfigCallback;)V
+HSPLandroid/view/ViewRootImpl;->setBoundsLayerCrop()V
 HSPLandroid/view/ViewRootImpl;->setFrame(Landroid/graphics/Rect;)V
 HSPLandroid/view/ViewRootImpl;->setLayoutParams(Landroid/view/WindowManager$LayoutParams;Z)V
 HSPLandroid/view/ViewRootImpl;->setOnContentApplyWindowInsetsListener(Landroid/view/Window$OnContentApplyWindowInsetsListener;)V
@@ -13673,6 +26910,7 @@
 HSPLandroid/view/ViewRootImpl;->unscheduleConsumeBatchedInput()V
 HSPLandroid/view/ViewRootImpl;->unscheduleTraversals()V
 HSPLandroid/view/ViewRootImpl;->updateBoundsLayer()V
+HSPLandroid/view/ViewRootImpl;->updateCompatSysUiVisibility(IZZ)V
 HSPLandroid/view/ViewRootImpl;->updateConfiguration(I)V
 HSPLandroid/view/ViewRootImpl;->updateContentDrawBounds()Z
 HSPLandroid/view/ViewRootImpl;->updateForceDarkMode()V
@@ -13681,6 +26919,8 @@
 HSPLandroid/view/ViewRootImpl;->updateVisibleInsets()V
 HSPLandroid/view/ViewRootImpl;->windowFocusChanged(ZZ)V
 HSPLandroid/view/ViewStructure;-><init>()V
+HSPLandroid/view/ViewStructure;->setImportantForAutofill(I)V
+HSPLandroid/view/ViewStub$ViewReplaceRunnable;->run()V
 HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
@@ -13688,7 +26928,10 @@
 HSPLandroid/view/ViewStub;->inflateViewNoAdd(Landroid/view/ViewGroup;)Landroid/view/View;
 HSPLandroid/view/ViewStub;->replaceSelfWithView(Landroid/view/View;Landroid/view/ViewGroup;)V
 HSPLandroid/view/ViewStub;->setLayoutInflater(Landroid/view/LayoutInflater;)V
+HSPLandroid/view/ViewStub;->setLayoutResource(I)V
+HSPLandroid/view/ViewStub;->setOnInflateListener(Landroid/view/ViewStub$OnInflateListener;)V
 HSPLandroid/view/ViewStub;->setVisibility(I)V
+HSPLandroid/view/ViewStub;->setVisibilityAsync(I)Ljava/lang/Runnable;
 HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;-><init>()V
 HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->access$000(Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;)Ljava/util/ArrayList;
 HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->access$002(Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;Ljava/util/ArrayList;)Ljava/util/ArrayList;
@@ -13704,14 +26947,22 @@
 HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->size()I
 HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->start()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
 HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;-><init>()V
+HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->isEmpty()Z
+HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->reset()V
+HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->set(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
+HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->setTouchableInsets(I)V
 HSPLandroid/view/ViewTreeObserver;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/ViewTreeObserver;->addOnComputeInternalInsetsListener(Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V
 HSPLandroid/view/ViewTreeObserver;->addOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V
+HSPLandroid/view/ViewTreeObserver;->addOnGlobalFocusChangeListener(Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V
 HSPLandroid/view/ViewTreeObserver;->addOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
 HSPLandroid/view/ViewTreeObserver;->addOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
 HSPLandroid/view/ViewTreeObserver;->addOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
 HSPLandroid/view/ViewTreeObserver;->addOnTouchModeChangeListener(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V
 HSPLandroid/view/ViewTreeObserver;->captureFrameCommitCallbacks()Ljava/util/ArrayList;
 HSPLandroid/view/ViewTreeObserver;->checkIsAlive()V
+HSPLandroid/view/ViewTreeObserver;->dispatchOnComputeInternalInsets(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
 HSPLandroid/view/ViewTreeObserver;->dispatchOnDraw()V
 HSPLandroid/view/ViewTreeObserver;->dispatchOnEnterAnimationComplete()V
 HSPLandroid/view/ViewTreeObserver;->dispatchOnGlobalFocusChange(Landroid/view/View;Landroid/view/View;)V
@@ -13727,6 +26978,8 @@
 HSPLandroid/view/ViewTreeObserver;->isAlive()Z
 HSPLandroid/view/ViewTreeObserver;->kill()V
 HSPLandroid/view/ViewTreeObserver;->merge(Landroid/view/ViewTreeObserver;)V
+HSPLandroid/view/ViewTreeObserver;->removeGlobalOnLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
+HSPLandroid/view/ViewTreeObserver;->removeOnComputeInternalInsetsListener(Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V
 HSPLandroid/view/ViewTreeObserver;->removeOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V
 HSPLandroid/view/ViewTreeObserver;->removeOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
 HSPLandroid/view/ViewTreeObserver;->removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
@@ -13734,6 +26987,7 @@
 HSPLandroid/view/ViewTreeObserver;->removeOnTouchModeChangeListener(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V
 HSPLandroid/view/Window;-><init>(Landroid/content/Context;)V
 HSPLandroid/view/Window;->addFlags(I)V
+HSPLandroid/view/Window;->addOnFrameMetricsAvailableListener(Landroid/view/Window$OnFrameMetricsAvailableListener;Landroid/os/Handler;)V
 HSPLandroid/view/Window;->adjustLayoutParamsForSubWindow(Landroid/view/WindowManager$LayoutParams;)V
 HSPLandroid/view/Window;->clearFlags(I)V
 HSPLandroid/view/Window;->destroy()V
@@ -13741,6 +26995,7 @@
 HSPLandroid/view/Window;->findViewById(I)Landroid/view/View;
 HSPLandroid/view/Window;->getAttributes()Landroid/view/WindowManager$LayoutParams;
 HSPLandroid/view/Window;->getCallback()Landroid/view/Window$Callback;
+HSPLandroid/view/Window;->getColorMode()I
 HSPLandroid/view/Window;->getContainer()Landroid/view/Window;
 HSPLandroid/view/Window;->getContext()Landroid/content/Context;
 HSPLandroid/view/Window;->getDefaultFeatures(Landroid/content/Context;)I
@@ -13756,7 +27011,9 @@
 HSPLandroid/view/Window;->isActive()Z
 HSPLandroid/view/Window;->isDestroyed()Z
 HSPLandroid/view/Window;->isOutOfBounds(Landroid/content/Context;Landroid/view/MotionEvent;)Z
+HSPLandroid/view/Window;->isWideColorGamut()Z
 HSPLandroid/view/Window;->makeActive()V
+HSPLandroid/view/Window;->removeOnFrameMetricsAvailableListener(Landroid/view/Window$OnFrameMetricsAvailableListener;)V
 HSPLandroid/view/Window;->requestFeature(I)Z
 HSPLandroid/view/Window;->setAttributes(Landroid/view/WindowManager$LayoutParams;)V
 HSPLandroid/view/Window;->setCallback(Landroid/view/Window$Callback;)V
@@ -13771,10 +27028,15 @@
 HSPLandroid/view/Window;->setOnWindowSwipeDismissedCallback(Landroid/view/Window$OnWindowSwipeDismissedCallback;)V
 HSPLandroid/view/Window;->setPreferMinimalPostProcessing(Z)V
 HSPLandroid/view/Window;->setSoftInputMode(I)V
+HSPLandroid/view/Window;->setType(I)V
+HSPLandroid/view/Window;->setWindowAnimations(I)V
 HSPLandroid/view/Window;->setWindowControllerCallback(Landroid/view/Window$WindowControllerCallback;)V
 HSPLandroid/view/Window;->setWindowManager(Landroid/view/WindowManager;Landroid/os/IBinder;Ljava/lang/String;)V
 HSPLandroid/view/Window;->setWindowManager(Landroid/view/WindowManager;Landroid/os/IBinder;Ljava/lang/String;Z)V
 HSPLandroid/view/Window;->shouldCloseOnTouch(Landroid/content/Context;Landroid/view/MotionEvent;)Z
+HSPLandroid/view/WindowId$1;-><init>()V
+HSPLandroid/view/WindowId;-><clinit>()V
+HSPLandroid/view/WindowId;-><init>(Landroid/view/IWindowId;)V
 HSPLandroid/view/WindowInsets$Builder;-><init>()V
 HSPLandroid/view/WindowInsets$Builder;-><init>(Landroid/view/WindowInsets;)V
 HSPLandroid/view/WindowInsets$Builder;->build()Landroid/view/WindowInsets;
@@ -13785,8 +27047,11 @@
 HSPLandroid/view/WindowInsets$Type;->ime()I
 HSPLandroid/view/WindowInsets$Type;->indexOf(I)I
 HSPLandroid/view/WindowInsets$Type;->navigationBars()I
+HSPLandroid/view/WindowInsets$Type;->statusBars()I
 HSPLandroid/view/WindowInsets$Type;->systemBars()I
 HSPLandroid/view/WindowInsets;-><init>(Landroid/graphics/Rect;)V
+HSPLandroid/view/WindowInsets;-><init>(Landroid/graphics/Rect;Landroid/graphics/Rect;ZZLandroid/view/DisplayCutout;)V
+HSPLandroid/view/WindowInsets;-><init>([Landroid/graphics/Insets;[Landroid/graphics/Insets;[ZZZLandroid/view/DisplayCutout;I)V
 HSPLandroid/view/WindowInsets;-><init>([Landroid/graphics/Insets;[Landroid/graphics/Insets;[ZZZLandroid/view/DisplayCutout;IZ)V
 HSPLandroid/view/WindowInsets;->access$000(Landroid/view/WindowInsets;)[Landroid/graphics/Insets;
 HSPLandroid/view/WindowInsets;->access$100(Landroid/view/WindowInsets;)[Landroid/graphics/Insets;
@@ -13798,18 +27063,23 @@
 HSPLandroid/view/WindowInsets;->access$700(Landroid/view/WindowInsets;)Z
 HSPLandroid/view/WindowInsets;->assignCompatInsets([Landroid/graphics/Insets;Landroid/graphics/Rect;)V
 HSPLandroid/view/WindowInsets;->consumeDisplayCutout()Landroid/view/WindowInsets;
+HSPLandroid/view/WindowInsets;->consumeStableInsets()Landroid/view/WindowInsets;
 HSPLandroid/view/WindowInsets;->consumeSystemWindowInsets()Landroid/view/WindowInsets;
 HSPLandroid/view/WindowInsets;->createCompatTypeMap(Landroid/graphics/Rect;)[Landroid/graphics/Insets;
+HSPLandroid/view/WindowInsets;->createCompatVisibilityMap([Landroid/graphics/Insets;)[Z
 HSPLandroid/view/WindowInsets;->displayCutoutCopyConstructorArgument(Landroid/view/WindowInsets;)Landroid/view/DisplayCutout;
 HSPLandroid/view/WindowInsets;->equals(Ljava/lang/Object;)Z
 HSPLandroid/view/WindowInsets;->getDisplayCutout()Landroid/view/DisplayCutout;
 HSPLandroid/view/WindowInsets;->getInsets(I)Landroid/graphics/Insets;
 HSPLandroid/view/WindowInsets;->getInsets([Landroid/graphics/Insets;I)Landroid/graphics/Insets;
+HSPLandroid/view/WindowInsets;->getInsetsIgnoringVisibility(I)Landroid/graphics/Insets;
+HSPLandroid/view/WindowInsets;->getMandatorySystemGestureInsets()Landroid/graphics/Insets;
 HSPLandroid/view/WindowInsets;->getStableInsetBottom()I
 HSPLandroid/view/WindowInsets;->getStableInsetLeft()I
 HSPLandroid/view/WindowInsets;->getStableInsetRight()I
 HSPLandroid/view/WindowInsets;->getStableInsetTop()I
 HSPLandroid/view/WindowInsets;->getStableInsets()Landroid/graphics/Insets;
+HSPLandroid/view/WindowInsets;->getSystemGestureInsets()Landroid/graphics/Insets;
 HSPLandroid/view/WindowInsets;->getSystemWindowInsetBottom()I
 HSPLandroid/view/WindowInsets;->getSystemWindowInsetLeft()I
 HSPLandroid/view/WindowInsets;->getSystemWindowInsetRight()I
@@ -13822,18 +27092,35 @@
 HSPLandroid/view/WindowInsets;->insetInsets(Landroid/graphics/Insets;IIII)Landroid/graphics/Insets;
 HSPLandroid/view/WindowInsets;->insetInsets([Landroid/graphics/Insets;IIII)[Landroid/graphics/Insets;
 HSPLandroid/view/WindowInsets;->isConsumed()Z
+HSPLandroid/view/WindowInsets;->isRound()Z
 HSPLandroid/view/WindowInsets;->isSystemWindowInsetsConsumed()Z
 HSPLandroid/view/WindowInsets;->replaceSystemWindowInsets(IIII)Landroid/view/WindowInsets;
 HSPLandroid/view/WindowInsets;->shouldAlwaysConsumeSystemBars()Z
+HSPLandroid/view/WindowInsetsAnimation$Bounds;-><init>(Landroid/graphics/Insets;Landroid/graphics/Insets;)V
+HSPLandroid/view/WindowInsetsAnimation;-><init>(ILandroid/view/animation/Interpolator;J)V
+HSPLandroid/view/WindowInsetsAnimation;->setAlpha(F)V
+HSPLandroid/view/WindowInsetsAnimation;->setFraction(F)V
 HSPLandroid/view/WindowLeaked;-><init>(Ljava/lang/String;)V
+HSPLandroid/view/WindowManager$LayoutParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/WindowManager$LayoutParams;
+HSPLandroid/view/WindowManager$LayoutParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/WindowManager$LayoutParams;-><init>()V
+HSPLandroid/view/WindowManager$LayoutParams;-><init>(IIIII)V
+HSPLandroid/view/WindowManager$LayoutParams;-><init>(IIIIIII)V
+HSPLandroid/view/WindowManager$LayoutParams;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/view/WindowManager$LayoutParams;->copyFrom(Landroid/view/WindowManager$LayoutParams;)I
+HSPLandroid/view/WindowManager$LayoutParams;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLandroid/view/WindowManager$LayoutParams;->getColorMode()I
+HSPLandroid/view/WindowManager$LayoutParams;->getFitInsetsSides()I
+HSPLandroid/view/WindowManager$LayoutParams;->getFitInsetsTypes()I
 HSPLandroid/view/WindowManager$LayoutParams;->getFitWindowInsetsSides()I
 HSPLandroid/view/WindowManager$LayoutParams;->getFitWindowInsetsTypes()I
 HSPLandroid/view/WindowManager$LayoutParams;->getTitle()Ljava/lang/CharSequence;
+HSPLandroid/view/WindowManager$LayoutParams;->isFitInsetsIgnoringVisibility()Z
+HSPLandroid/view/WindowManager$LayoutParams;->isFullscreen()Z
+HSPLandroid/view/WindowManager$LayoutParams;->isSystemAlertWindowType(I)Z
 HSPLandroid/view/WindowManager$LayoutParams;->mayUseInputMethod(I)Z
 HSPLandroid/view/WindowManager$LayoutParams;->setColorMode(I)V
+HSPLandroid/view/WindowManager$LayoutParams;->setFitInsetsIgnoringVisibility(Z)V
 HSPLandroid/view/WindowManager$LayoutParams;->setFitInsetsSides(I)V
 HSPLandroid/view/WindowManager$LayoutParams;->setFitInsetsTypes(I)V
 HSPLandroid/view/WindowManager$LayoutParams;->setSurfaceInsets(Landroid/view/View;ZZ)V
@@ -13849,12 +27136,14 @@
 HSPLandroid/view/WindowManagerGlobal;->closeAll(Landroid/os/IBinder;Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/view/WindowManagerGlobal;->closeAllExceptView(Landroid/os/IBinder;Landroid/view/View;Ljava/lang/String;Ljava/lang/String;)V
 HSPLandroid/view/WindowManagerGlobal;->doRemoveView(Landroid/view/ViewRootImpl;)V
+HSPLandroid/view/WindowManagerGlobal;->doTrimForeground()V
 HSPLandroid/view/WindowManagerGlobal;->dumpGfxInfo(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
 HSPLandroid/view/WindowManagerGlobal;->findViewLocked(Landroid/view/View;Z)I
 HSPLandroid/view/WindowManagerGlobal;->getInstance()Landroid/view/WindowManagerGlobal;
 HSPLandroid/view/WindowManagerGlobal;->getRootViews(Landroid/os/IBinder;)Ljava/util/ArrayList;
 HSPLandroid/view/WindowManagerGlobal;->getWindowManagerService()Landroid/view/IWindowManager;
 HSPLandroid/view/WindowManagerGlobal;->getWindowSession()Landroid/view/IWindowSession;
+HSPLandroid/view/WindowManagerGlobal;->getWindowView(Landroid/os/IBinder;)Landroid/view/View;
 HSPLandroid/view/WindowManagerGlobal;->initialize()V
 HSPLandroid/view/WindowManagerGlobal;->peekWindowSession()Landroid/view/IWindowSession;
 HSPLandroid/view/WindowManagerGlobal;->removeView(Landroid/view/View;Z)V
@@ -13864,6 +27153,7 @@
 HSPLandroid/view/WindowManagerGlobal;->trimForeground()V
 HSPLandroid/view/WindowManagerGlobal;->trimMemory(I)V
 HSPLandroid/view/WindowManagerGlobal;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/view/WindowManagerGlobal;->useBLAST()Z
 HSPLandroid/view/WindowManagerImpl;-><init>(Landroid/content/Context;)V
 HSPLandroid/view/WindowManagerImpl;-><init>(Landroid/content/Context;Landroid/view/Window;)V
 HSPLandroid/view/WindowManagerImpl;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
@@ -13874,65 +27164,215 @@
 HSPLandroid/view/WindowManagerImpl;->getMaximumBounds()Landroid/graphics/Rect;
 HSPLandroid/view/WindowManagerImpl;->getMaximumWindowMetrics()Landroid/view/WindowMetrics;
 HSPLandroid/view/WindowManagerImpl;->getWindowInsetsFromServer(Landroid/view/WindowManager$LayoutParams;)Landroid/view/WindowInsets;
+HSPLandroid/view/WindowManagerImpl;->removeView(Landroid/view/View;)V
 HSPLandroid/view/WindowManagerImpl;->removeViewImmediate(Landroid/view/View;)V
 HSPLandroid/view/WindowManagerImpl;->toSize(Landroid/graphics/Rect;)Landroid/util/Size;
 HSPLandroid/view/WindowManagerImpl;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
 HSPLandroid/view/WindowMetrics;-><init>(Landroid/util/Size;Landroid/view/WindowInsets;)V
 HSPLandroid/view/WindowMetrics;->getSize()Landroid/util/Size;
+HSPLandroid/view/accessibility/-$$Lambda$AccessibilityManager$1$o7fCplskH9NlBwJvkl6NoZ0L_BA;-><init>(Landroid/view/accessibility/AccessibilityManager$1;Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener;)V
+HSPLandroid/view/accessibility/-$$Lambda$AccessibilityManager$1$o7fCplskH9NlBwJvkl6NoZ0L_BA;->run()V
+HSPLandroid/view/accessibility/AccessibilityEvent;-><init>()V
+HSPLandroid/view/accessibility/AccessibilityEvent;->clear()V
+HSPLandroid/view/accessibility/AccessibilityEvent;->getContentChangeTypes()I
+HSPLandroid/view/accessibility/AccessibilityEvent;->getEventType()I
+HSPLandroid/view/accessibility/AccessibilityEvent;->getRecordCount()I
+HSPLandroid/view/accessibility/AccessibilityEvent;->obtain()Landroid/view/accessibility/AccessibilityEvent;
+HSPLandroid/view/accessibility/AccessibilityEvent;->obtain(I)Landroid/view/accessibility/AccessibilityEvent;
+HSPLandroid/view/accessibility/AccessibilityEvent;->recycle()V
+HSPLandroid/view/accessibility/AccessibilityEvent;->setContentChangeTypes(I)V
+HSPLandroid/view/accessibility/AccessibilityEvent;->setEventTime(J)V
+HSPLandroid/view/accessibility/AccessibilityEvent;->setEventType(I)V
+HSPLandroid/view/accessibility/AccessibilityEvent;->setPackageName(Ljava/lang/CharSequence;)V
+HSPLandroid/view/accessibility/AccessibilityEvent;->writeAccessibilityRecordToParcel(Landroid/view/accessibility/AccessibilityRecord;Landroid/os/Parcel;I)V
+HSPLandroid/view/accessibility/AccessibilityEvent;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/accessibility/AccessibilityManager$1;-><init>(Landroid/view/accessibility/AccessibilityManager;)V
+HSPLandroid/view/accessibility/AccessibilityManager$1;->lambda$notifyServicesStateChanged$0$AccessibilityManager$1(Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener;)V
 HSPLandroid/view/accessibility/AccessibilityManager$1;->notifyServicesStateChanged(J)V
+HSPLandroid/view/accessibility/AccessibilityManager$1;->setState(I)V
 HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;-><init>(Landroid/view/accessibility/AccessibilityManager;)V
 HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;-><init>(Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager$1;)V
+HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;->handleMessage(Landroid/os/Message;)Z
 HSPLandroid/view/accessibility/AccessibilityManager;-><init>(Landroid/content/Context;Landroid/view/accessibility/IAccessibilityManager;I)V
+HSPLandroid/view/accessibility/AccessibilityManager;->access$000(Landroid/view/accessibility/AccessibilityManager;J)V
+HSPLandroid/view/accessibility/AccessibilityManager;->access$100(Landroid/view/accessibility/AccessibilityManager;)Ljava/lang/Object;
+HSPLandroid/view/accessibility/AccessibilityManager;->access$200(Landroid/view/accessibility/AccessibilityManager;)Landroid/util/ArrayMap;
+HSPLandroid/view/accessibility/AccessibilityManager;->access$400(Landroid/view/accessibility/AccessibilityManager;I)V
+HSPLandroid/view/accessibility/AccessibilityManager;->addAccessibilityInteractionConnection(Landroid/view/IWindow;Landroid/os/IBinder;Ljava/lang/String;Landroid/view/accessibility/IAccessibilityInteractionConnection;)I
+HSPLandroid/view/accessibility/AccessibilityManager;->addAccessibilityInteractionConnection(Landroid/view/IWindow;Ljava/lang/String;Landroid/view/accessibility/IAccessibilityInteractionConnection;)I
+HSPLandroid/view/accessibility/AccessibilityManager;->addAccessibilityServicesStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener;Landroid/os/Handler;)V
 HSPLandroid/view/accessibility/AccessibilityManager;->addAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z
 HSPLandroid/view/accessibility/AccessibilityManager;->addAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;Landroid/os/Handler;)V
 HSPLandroid/view/accessibility/AccessibilityManager;->addHighTextContrastStateChangeListener(Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;Landroid/os/Handler;)V
 HSPLandroid/view/accessibility/AccessibilityManager;->addTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;)Z
 HSPLandroid/view/accessibility/AccessibilityManager;->addTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;Landroid/os/Handler;)V
+HSPLandroid/view/accessibility/AccessibilityManager;->getAccessibilityShortcutTargets(I)Ljava/util/List;
 HSPLandroid/view/accessibility/AccessibilityManager;->getEnabledAccessibilityServiceList(I)Ljava/util/List;
+HSPLandroid/view/accessibility/AccessibilityManager;->getInstalledAccessibilityServiceList()Ljava/util/List;
+HSPLandroid/view/accessibility/AccessibilityManager;->getInstalledAccessibilityShortcutListAsUser(Landroid/content/Context;I)Ljava/util/List;
 HSPLandroid/view/accessibility/AccessibilityManager;->getInstance(Landroid/content/Context;)Landroid/view/accessibility/AccessibilityManager;
+HSPLandroid/view/accessibility/AccessibilityManager;->getRecommendedTimeoutMillis(II)I
 HSPLandroid/view/accessibility/AccessibilityManager;->getServiceLocked()Landroid/view/accessibility/IAccessibilityManager;
+HSPLandroid/view/accessibility/AccessibilityManager;->isAccessibilityVolumeStreamActive()Z
 HSPLandroid/view/accessibility/AccessibilityManager;->isEnabled()Z
 HSPLandroid/view/accessibility/AccessibilityManager;->isHighTextContrastEnabled()Z
 HSPLandroid/view/accessibility/AccessibilityManager;->isTouchExplorationEnabled()Z
+PLandroid/view/accessibility/AccessibilityManager;->notifyAccessibilityButtonVisibilityChanged(Z)V
 HSPLandroid/view/accessibility/AccessibilityManager;->notifyAccessibilityStateChanged()V
+HSPLandroid/view/accessibility/AccessibilityManager;->removeAccessibilityInteractionConnection(Landroid/view/IWindow;)V
 HSPLandroid/view/accessibility/AccessibilityManager;->removeAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z
 HSPLandroid/view/accessibility/AccessibilityManager;->removeHighTextContrastStateChangeListener(Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;)V
+HSPLandroid/view/accessibility/AccessibilityManager;->sendAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/view/accessibility/AccessibilityManager;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
 HSPLandroid/view/accessibility/AccessibilityManager;->setStateLocked(I)V
 HSPLandroid/view/accessibility/AccessibilityManager;->tryConnectToServiceLocked(Landroid/view/accessibility/IAccessibilityManager;)V
 HSPLandroid/view/accessibility/AccessibilityManager;->updateUiTimeout(J)V
 HSPLandroid/view/accessibility/AccessibilityNodeIdManager;-><init>()V
+HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->findView(I)Landroid/view/View;
 HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->getInstance()Landroid/view/accessibility/AccessibilityNodeIdManager;
 HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->registerViewWithId(Landroid/view/View;I)V
 HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->unregisterViewWithId(I)V
 HSPLandroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;-><init>(ILjava/lang/CharSequence;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;->getId()I
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;-><init>()V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->addAction(I)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->addAction(Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->addChildInternal(Landroid/view/View;IZ)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->addChildUnchecked(Landroid/view/View;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->enforceNotSealed()V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->getAccessibilityViewId(J)I
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->getBoundsInScreen(Landroid/graphics/Rect;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->getSourceNodeId()J
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->getText()Ljava/lang/CharSequence;
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->getVirtualDescendantId(J)I
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->init(Landroid/view/accessibility/AccessibilityNodeInfo;Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->initPoolingInfos(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->isClickable()Z
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->isLongClickable()Z
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->isSealed()Z
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->makeNodeId(II)J
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->obtain()Landroid/view/accessibility/AccessibilityNodeInfo;
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->obtain(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeInfo;
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->recycle()V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setAccessibilityFocused(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setAvailableExtraData(Ljava/util/List;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setBooleanProperty(IZ)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setBoundsInParent(Landroid/graphics/Rect;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setBoundsInScreen(Landroid/graphics/Rect;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setClassName(Ljava/lang/CharSequence;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setClickable(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setContentDescription(Ljava/lang/CharSequence;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setContextClickable(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setDrawingOrder(I)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setEnabled(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setFocusable(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setFocused(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setHeading(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setHintText(Ljava/lang/CharSequence;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setImportantForAccessibility(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setLiveRegion(I)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setLongClickable(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setMovementGranularities(I)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setMultiLine(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setPackageName(Ljava/lang/CharSequence;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setPaneTitle(Ljava/lang/CharSequence;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setParent(Landroid/view/View;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setParent(Landroid/view/View;I)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setPassword(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setScreenReaderFocusable(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setSelected(Z)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setSource(Landroid/view/View;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setSource(Landroid/view/View;I)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setStateDescription(Ljava/lang/CharSequence;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setText(Ljava/lang/CharSequence;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setTextSelection(II)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setViewIdResourceName(Ljava/lang/String;)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo;->setVisibleToUser(Z)V
 HSPLandroid/view/accessibility/AccessibilityNodeProvider;-><init>()V
+HSPLandroid/view/accessibility/AccessibilityRecord;-><init>()V
+HSPLandroid/view/accessibility/AccessibilityRecord;->clear()V
+HSPLandroid/view/accessibility/AccessibilityRecord;->enforceNotSealed()V
+HSPLandroid/view/accessibility/AccessibilityRecord;->getScrollDeltaX()I
+HSPLandroid/view/accessibility/AccessibilityRecord;->getScrollDeltaY()I
+HSPLandroid/view/accessibility/AccessibilityRecord;->getSourceNodeId()J
+HSPLandroid/view/accessibility/AccessibilityRecord;->getText()Ljava/util/List;
+HSPLandroid/view/accessibility/AccessibilityRecord;->isSealed()Z
+HSPLandroid/view/accessibility/AccessibilityRecord;->setBooleanProperty(IZ)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setClassName(Ljava/lang/CharSequence;)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setContentDescription(Ljava/lang/CharSequence;)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setCurrentItemIndex(I)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setEnabled(Z)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setFromIndex(I)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setFullScreen(Z)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setItemCount(I)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setMaxScrollX(I)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setMaxScrollY(I)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setPassword(Z)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setScrollDeltaX(I)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setScrollDeltaY(I)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setScrollX(I)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setScrollY(I)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setScrollable(Z)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setSource(Landroid/view/View;)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setSource(Landroid/view/View;I)V
+HSPLandroid/view/accessibility/AccessibilityRecord;->setToIndex(I)V
 HSPLandroid/view/accessibility/CaptioningManager$1;-><init>(Landroid/view/accessibility/CaptioningManager;)V
+HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->getTypeface()Landroid/graphics/Typeface;
+HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasBackgroundColor()Z
+HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasEdgeColor()Z
+HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasEdgeType()Z
+HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasForegroundColor()Z
+HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasWindowColor()Z
 HSPLandroid/view/accessibility/CaptioningManager$CaptioningChangeListener;-><init>()V
 HSPLandroid/view/accessibility/CaptioningManager$MyContentObserver;-><init>(Landroid/view/accessibility/CaptioningManager;Landroid/os/Handler;)V
 HSPLandroid/view/accessibility/CaptioningManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/accessibility/CaptioningManager;->addCaptioningChangeListener(Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;)V
 HSPLandroid/view/accessibility/CaptioningManager;->getFontScale()F
 HSPLandroid/view/accessibility/CaptioningManager;->getLocale()Ljava/util/Locale;
 HSPLandroid/view/accessibility/CaptioningManager;->getRawLocale()Ljava/lang/String;
 HSPLandroid/view/accessibility/CaptioningManager;->getRawUserStyle()I
 HSPLandroid/view/accessibility/CaptioningManager;->getUserStyle()Landroid/view/accessibility/CaptioningManager$CaptionStyle;
 HSPLandroid/view/accessibility/CaptioningManager;->isEnabled()Z
+HSPLandroid/view/accessibility/CaptioningManager;->registerObserver(Ljava/lang/String;)V
 HSPLandroid/view/accessibility/CaptioningManager;->removeCaptioningChangeListener(Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;)V
+HSPLandroid/view/accessibility/IAccessibilityInteractionConnection$Stub;-><init>()V
+HSPLandroid/view/accessibility/IAccessibilityInteractionConnection$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/accessibility/IAccessibilityInteractionConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityInteractionConnection;
+HSPLandroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;
 HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->addAccessibilityInteractionConnection(Landroid/view/IWindow;Landroid/os/IBinder;Landroid/view/accessibility/IAccessibilityInteractionConnection;Ljava/lang/String;I)I
+HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->addAccessibilityInteractionConnection(Landroid/view/IWindow;Landroid/view/accessibility/IAccessibilityInteractionConnection;Ljava/lang/String;I)I
 HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->addClient(Landroid/view/accessibility/IAccessibilityManagerClient;I)J
+HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getAccessibilityShortcutTargets(I)Ljava/util/List;
 HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getEnabledAccessibilityServiceList(II)Ljava/util/List;
 HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getRecommendedTimeoutMillis()J
+HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->removeAccessibilityInteractionConnection(Landroid/view/IWindow;)V
+HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->sendAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;I)V
+HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
+HSPLandroid/view/accessibility/IAccessibilityManager$Stub;-><init>()V
 HSPLandroid/view/accessibility/IAccessibilityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityManager;
+HSPLandroid/view/accessibility/IAccessibilityManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;->notifyServicesStateChanged(J)V
+HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;->setState(I)V
 HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;-><init>()V
 HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityManagerClient;
+HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/view/accessibility/WeakSparseArray$WeakReferenceWithId;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;I)V
 HSPLandroid/view/accessibility/WeakSparseArray;-><init>()V
 HSPLandroid/view/accessibility/WeakSparseArray;->append(ILjava/lang/Object;)V
+HSPLandroid/view/accessibility/WeakSparseArray;->get(I)Ljava/lang/Object;
 HSPLandroid/view/accessibility/WeakSparseArray;->remove(I)V
 HSPLandroid/view/accessibility/WeakSparseArray;->removeUnreachableValues()V
 HSPLandroid/view/animation/AccelerateDecelerateInterpolator;-><init>()V
+HSPLandroid/view/animation/AccelerateDecelerateInterpolator;->createNativeInterpolator()J
 HSPLandroid/view/animation/AccelerateDecelerateInterpolator;->getInterpolation(F)F
 HSPLandroid/view/animation/AccelerateInterpolator;-><init>()V
+HSPLandroid/view/animation/AccelerateInterpolator;-><init>(F)V
 HSPLandroid/view/animation/AccelerateInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
 HSPLandroid/view/animation/AccelerateInterpolator;->getInterpolation(F)F
 HSPLandroid/view/animation/AlphaAnimation;-><init>(FF)V
@@ -13942,12 +27382,16 @@
 HSPLandroid/view/animation/AlphaAnimation;->willChangeBounds()Z
 HSPLandroid/view/animation/AlphaAnimation;->willChangeTransformationMatrix()Z
 HSPLandroid/view/animation/Animation$1;-><init>(Landroid/view/animation/Animation;)V
+HSPLandroid/view/animation/Animation$1;->run()V
 HSPLandroid/view/animation/Animation$2;-><init>(Landroid/view/animation/Animation;)V
 HSPLandroid/view/animation/Animation$3;-><init>(Landroid/view/animation/Animation;)V
+HSPLandroid/view/animation/Animation$3;->run()V
 HSPLandroid/view/animation/Animation$Description;-><init>()V
 HSPLandroid/view/animation/Animation$Description;->parseValue(Landroid/util/TypedValue;)Landroid/view/animation/Animation$Description;
 HSPLandroid/view/animation/Animation;-><init>()V
 HSPLandroid/view/animation/Animation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/view/animation/Animation;->cancel()V
+HPLandroid/view/animation/Animation;->computeDurationHint()J
 HSPLandroid/view/animation/Animation;->detach()V
 HSPLandroid/view/animation/Animation;->dispatchAnimationEnd()V
 HSPLandroid/view/animation/Animation;->dispatchAnimationStart()V
@@ -13957,21 +27401,30 @@
 HSPLandroid/view/animation/Animation;->fireAnimationStart()V
 HSPLandroid/view/animation/Animation;->getDuration()J
 HSPLandroid/view/animation/Animation;->getFillAfter()Z
+HPLandroid/view/animation/Animation;->getInterpolator()Landroid/view/animation/Interpolator;
 HSPLandroid/view/animation/Animation;->getInvalidateRegion(IIIILandroid/graphics/RectF;Landroid/view/animation/Transformation;)V
+HPLandroid/view/animation/Animation;->getRepeatCount()I
 HSPLandroid/view/animation/Animation;->getScaleFactor()F
+HPLandroid/view/animation/Animation;->getShowWallpaper()Z
 HSPLandroid/view/animation/Animation;->getStartOffset()J
+HSPLandroid/view/animation/Animation;->getStartTime()J
 HSPLandroid/view/animation/Animation;->getTransformation(JLandroid/view/animation/Transformation;)Z
 HSPLandroid/view/animation/Animation;->getTransformation(JLandroid/view/animation/Transformation;F)Z
+HPLandroid/view/animation/Animation;->getZAdjustment()I
 HSPLandroid/view/animation/Animation;->hasAlpha()Z
 HSPLandroid/view/animation/Animation;->hasAnimationListener()Z
 HSPLandroid/view/animation/Animation;->hasEnded()Z
+HPLandroid/view/animation/Animation;->hasRoundedCorners()Z
 HSPLandroid/view/animation/Animation;->hasStarted()Z
 HSPLandroid/view/animation/Animation;->initialize(IIII)V
 HSPLandroid/view/animation/Animation;->initializeInvalidateRegion(IIII)V
 HSPLandroid/view/animation/Animation;->isCanceled()Z
+HSPLandroid/view/animation/Animation;->isFillEnabled()Z
 HSPLandroid/view/animation/Animation;->isInitialized()Z
 HSPLandroid/view/animation/Animation;->reset()V
 HSPLandroid/view/animation/Animation;->resolveSize(IFII)F
+HPLandroid/view/animation/Animation;->restrictDuration(J)V
+HSPLandroid/view/animation/Animation;->scaleCurrentDuration(F)V
 HSPLandroid/view/animation/Animation;->setAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V
 HSPLandroid/view/animation/Animation;->setBackgroundColor(I)V
 HSPLandroid/view/animation/Animation;->setDetachWallpaper(Z)V
@@ -13992,18 +27445,29 @@
 HSPLandroid/view/animation/Animation;->willChangeBounds()Z
 HSPLandroid/view/animation/Animation;->willChangeTransformationMatrix()Z
 HSPLandroid/view/animation/AnimationSet;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/view/animation/AnimationSet;-><init>(Z)V
 HSPLandroid/view/animation/AnimationSet;->addAnimation(Landroid/view/animation/Animation;)V
+HPLandroid/view/animation/AnimationSet;->computeDurationHint()J
+HSPLandroid/view/animation/AnimationSet;->getAnimations()Ljava/util/List;
+HSPLandroid/view/animation/AnimationSet;->getDuration()J
 HSPLandroid/view/animation/AnimationSet;->getTransformation(JLandroid/view/animation/Transformation;)Z
+HSPLandroid/view/animation/AnimationSet;->hasAlpha()Z
 HSPLandroid/view/animation/AnimationSet;->init()V
 HSPLandroid/view/animation/AnimationSet;->initialize(IIII)V
+HSPLandroid/view/animation/AnimationSet;->initializeInvalidateRegion(IIII)V
 HSPLandroid/view/animation/AnimationSet;->reset()V
 HSPLandroid/view/animation/AnimationSet;->restoreChildrenStartOffset()V
+HPLandroid/view/animation/AnimationSet;->restrictDuration(J)V
+HSPLandroid/view/animation/AnimationSet;->scaleCurrentDuration(F)V
 HSPLandroid/view/animation/AnimationSet;->setDuration(J)V
 HSPLandroid/view/animation/AnimationSet;->setFillAfter(Z)V
 HSPLandroid/view/animation/AnimationSet;->setFillBefore(Z)V
 HSPLandroid/view/animation/AnimationSet;->setFlag(IZ)V
 HSPLandroid/view/animation/AnimationSet;->setRepeatMode(I)V
 HSPLandroid/view/animation/AnimationSet;->setStartOffset(J)V
+HSPLandroid/view/animation/AnimationSet;->setStartTime(J)V
+HSPLandroid/view/animation/AnimationSet;->willChangeBounds()Z
+HSPLandroid/view/animation/AnimationSet;->willChangeTransformationMatrix()Z
 HSPLandroid/view/animation/AnimationUtils$1;->initialValue()Landroid/view/animation/AnimationUtils$AnimationState;
 HSPLandroid/view/animation/AnimationUtils$1;->initialValue()Ljava/lang/Object;
 HSPLandroid/view/animation/AnimationUtils$AnimationState;-><init>()V
@@ -14020,6 +27484,8 @@
 HSPLandroid/view/animation/BaseInterpolator;-><init>()V
 HSPLandroid/view/animation/BaseInterpolator;->getChangingConfiguration()I
 HSPLandroid/view/animation/BaseInterpolator;->setChangingConfiguration(I)V
+HSPLandroid/view/animation/BounceInterpolator;-><init>()V
+HSPLandroid/view/animation/BounceInterpolator;->getInterpolation(F)F
 HSPLandroid/view/animation/DecelerateInterpolator;-><init>()V
 HSPLandroid/view/animation/DecelerateInterpolator;-><init>(F)V
 HSPLandroid/view/animation/DecelerateInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
@@ -14027,25 +27493,47 @@
 HSPLandroid/view/animation/LinearInterpolator;-><init>()V
 HSPLandroid/view/animation/LinearInterpolator;->createNativeInterpolator()J
 HSPLandroid/view/animation/LinearInterpolator;->getInterpolation(F)F
+HSPLandroid/view/animation/OvershootInterpolator;-><init>()V
+HSPLandroid/view/animation/OvershootInterpolator;-><init>(F)V
+HSPLandroid/view/animation/OvershootInterpolator;->getInterpolation(F)F
 HSPLandroid/view/animation/PathInterpolator;-><init>(FFFF)V
 HSPLandroid/view/animation/PathInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
+HSPLandroid/view/animation/PathInterpolator;-><init>(Landroid/graphics/Path;)V
 HSPLandroid/view/animation/PathInterpolator;->createNativeInterpolator()J
 HSPLandroid/view/animation/PathInterpolator;->getInterpolation(F)F
 HSPLandroid/view/animation/PathInterpolator;->initCubic(FFFF)V
 HSPLandroid/view/animation/PathInterpolator;->initPath(Landroid/graphics/Path;)V
 HSPLandroid/view/animation/PathInterpolator;->parseInterpolatorFromTypeArray(Landroid/content/res/TypedArray;)V
+HSPLandroid/view/animation/RotateAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/view/animation/RotateAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
+HSPLandroid/view/animation/RotateAnimation;->initialize(IIII)V
+HSPLandroid/view/animation/RotateAnimation;->initializePivotPoint()V
+HSPLandroid/view/animation/ScaleAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/view/animation/ScaleAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
+HSPLandroid/view/animation/ScaleAnimation;->initialize(IIII)V
+HSPLandroid/view/animation/ScaleAnimation;->initializePivotPoint()V
+HSPLandroid/view/animation/ScaleAnimation;->resolveScale(FIIII)F
 HSPLandroid/view/animation/Transformation;-><init>()V
 HSPLandroid/view/animation/Transformation;->clear()V
 HSPLandroid/view/animation/Transformation;->compose(Landroid/view/animation/Transformation;)V
 HSPLandroid/view/animation/Transformation;->getAlpha()F
 HSPLandroid/view/animation/Transformation;->getMatrix()Landroid/graphics/Matrix;
 HSPLandroid/view/animation/Transformation;->getTransformationType()I
+HPLandroid/view/animation/Transformation;->hasClipRect()Z
 HSPLandroid/view/animation/Transformation;->set(Landroid/view/animation/Transformation;)V
 HSPLandroid/view/animation/Transformation;->setAlpha(F)V
+HSPLandroid/view/animation/TranslateAnimation;-><init>(FFFF)V
 HSPLandroid/view/animation/TranslateAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/view/animation/TranslateAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
 HSPLandroid/view/animation/TranslateAnimation;->initialize(IIII)V
+HSPLandroid/view/autofill/-$$Lambda$AutofillManager$AutofillManagerClient$qH36EJk2Hkdja9ZZmTxqYPyr0YA;-><init>(Landroid/view/autofill/AutofillManager;I)V
+HSPLandroid/view/autofill/-$$Lambda$AutofillManager$AutofillManagerClient$qH36EJk2Hkdja9ZZmTxqYPyr0YA;->run()V
+HSPLandroid/view/autofill/-$$Lambda$AutofillManager$AutofillManagerClient$vxNm6RuuD-r5pkiSxNSBBd1w_Qc;-><init>(Landroid/view/autofill/AutofillManager;Lcom/android/internal/os/IResultReceiver;)V
+HSPLandroid/view/autofill/-$$Lambda$AutofillManager$AutofillManagerClient$vxNm6RuuD-r5pkiSxNSBBd1w_Qc;->run()V
 HSPLandroid/view/autofill/-$$Lambda$AutofillManager$V76JiQu509LCUz3-ckpb-nB3JhA;-><init>(Landroid/view/autofill/IAutoFillManager;Landroid/view/autofill/IAutoFillManagerClient;I)V
+HSPLandroid/view/autofill/-$$Lambda$AutofillManager$V76JiQu509LCUz3-ckpb-nB3JhA;->run()V
+HSPLandroid/view/autofill/-$$Lambda$AutofillManager$YfpJNFodEuj5lbXfPlc77fsEvC8;-><init>(Landroid/view/autofill/AutofillManager;)V
+HSPLandroid/view/autofill/-$$Lambda$AutofillManager$YfpJNFodEuj5lbXfPlc77fsEvC8;->run()V
 HSPLandroid/view/autofill/AutofillId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/autofill/AutofillId;
 HSPLandroid/view/autofill/AutofillId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/autofill/AutofillId;-><init>(I)V
@@ -14057,71 +27545,362 @@
 HSPLandroid/view/autofill/AutofillId;->hashCode()I
 HSPLandroid/view/autofill/AutofillId;->isVirtualInt()Z
 HSPLandroid/view/autofill/AutofillId;->isVirtualLong()Z
+HSPLandroid/view/autofill/AutofillId;->resetSessionId()V
+HSPLandroid/view/autofill/AutofillId;->setSessionId(I)V
+HSPLandroid/view/autofill/AutofillId;->toString()Ljava/lang/String;
 HSPLandroid/view/autofill/AutofillId;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;-><init>(Landroid/view/autofill/AutofillManager;)V
+HSPLandroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;-><init>(Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager$1;)V
+HSPLandroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;->getViewCoordinates(Landroid/view/autofill/AutofillId;)Landroid/graphics/Rect;
+HSPLandroid/view/autofill/AutofillManager$AutofillCallback;-><init>()V
 HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;-><init>(Landroid/view/autofill/AutofillManager;)V
 HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;-><init>(Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager$1;)V
+HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->getAugmentedAutofillClient(Lcom/android/internal/os/IResultReceiver;)V
+HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->lambda$getAugmentedAutofillClient$12(Landroid/view/autofill/AutofillManager;Lcom/android/internal/os/IResultReceiver;)V
+HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->lambda$setState$0(Landroid/view/autofill/AutofillManager;I)V
+HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->setState(I)V
 HSPLandroid/view/autofill/AutofillManager;-><init>(Landroid/content/Context;Landroid/view/autofill/IAutoFillManager;)V
+HSPLandroid/view/autofill/AutofillManager;->access$1300(Landroid/view/autofill/AutofillManager;Ljava/lang/Runnable;)V
+HSPLandroid/view/autofill/AutofillManager;->access$1400(Landroid/view/autofill/AutofillManager;Lcom/android/internal/os/IResultReceiver;)V
+HSPLandroid/view/autofill/AutofillManager;->access$2500(Landroid/view/autofill/AutofillManager;I)V
+HSPLandroid/view/autofill/AutofillManager;->access$900(Landroid/view/autofill/AutofillManager;)Landroid/view/autofill/AutofillManager$AutofillClient;
+HSPLandroid/view/autofill/AutofillManager;->addEnteredIdLocked(Landroid/view/autofill/AutofillId;)V
+HSPLandroid/view/autofill/AutofillManager;->cancelLocked()V
+HSPLandroid/view/autofill/AutofillManager;->cancelSessionLocked()V
 HSPLandroid/view/autofill/AutofillManager;->ensureServiceClientAddedIfNeededLocked()V
+HSPLandroid/view/autofill/AutofillManager;->getAugmentedAutofillClient(Lcom/android/internal/os/IResultReceiver;)V
 HSPLandroid/view/autofill/AutofillManager;->getClient()Landroid/view/autofill/AutofillManager$AutofillClient;
 HSPLandroid/view/autofill/AutofillManager;->hasAutofillFeature()Z
 HSPLandroid/view/autofill/AutofillManager;->isActiveLocked()Z
+HSPLandroid/view/autofill/AutofillManager;->isAutofillSupported()Z
 HSPLandroid/view/autofill/AutofillManager;->isAutofillUiShowing()Z
+HSPLandroid/view/autofill/AutofillManager;->isClientDisablingEnterExitEvent()Z
+HSPLandroid/view/autofill/AutofillManager;->isCompatibilityModeEnabledLocked()Z
 HSPLandroid/view/autofill/AutofillManager;->isDisabledByServiceLocked()Z
+HSPLandroid/view/autofill/AutofillManager;->isEnabled()Z
+HSPLandroid/view/autofill/AutofillManager;->isFinishedLocked()Z
+HSPLandroid/view/autofill/AutofillManager;->lambda$ensureServiceClientAddedIfNeededLocked$1(Landroid/view/autofill/IAutoFillManager;Landroid/view/autofill/IAutoFillManagerClient;I)V
+HSPLandroid/view/autofill/AutofillManager;->lambda$onVisibleForAutofill$0$AutofillManager()V
 HSPLandroid/view/autofill/AutofillManager;->notifyValueChanged(Landroid/view/View;)V
+HSPLandroid/view/autofill/AutofillManager;->notifyViewEntered(Landroid/view/View;)V
+HSPLandroid/view/autofill/AutofillManager;->notifyViewEntered(Landroid/view/View;I)V
 HSPLandroid/view/autofill/AutofillManager;->notifyViewEnteredForAugmentedAutofill(Landroid/view/View;)V
+HSPLandroid/view/autofill/AutofillManager;->notifyViewEnteredLocked(Landroid/view/View;I)Landroid/view/autofill/AutofillManager$AutofillCallback;
 HSPLandroid/view/autofill/AutofillManager;->notifyViewExited(Landroid/view/View;)V
 HSPLandroid/view/autofill/AutofillManager;->notifyViewExitedLocked(Landroid/view/View;)V
 HSPLandroid/view/autofill/AutofillManager;->notifyViewVisibilityChanged(Landroid/view/View;Z)V
 HSPLandroid/view/autofill/AutofillManager;->notifyViewVisibilityChangedInternal(Landroid/view/View;IZZ)V
+HSPLandroid/view/autofill/AutofillManager;->onActivityFinishing()V
+HSPLandroid/view/autofill/AutofillManager;->onCreate(Landroid/os/Bundle;)V
+HSPLandroid/view/autofill/AutofillManager;->onInvisibleForAutofill(Z)V
+HSPLandroid/view/autofill/AutofillManager;->onSaveInstanceState(Landroid/os/Bundle;)V
+HSPLandroid/view/autofill/AutofillManager;->onVisibleForAutofill()V
+HSPLandroid/view/autofill/AutofillManager;->post(Ljava/lang/Runnable;)V
+HSPLandroid/view/autofill/AutofillManager;->registerCallback(Landroid/view/autofill/AutofillManager$AutofillCallback;)V
 HSPLandroid/view/autofill/AutofillManager;->requestHideFillUi()V
 HSPLandroid/view/autofill/AutofillManager;->requestHideFillUi(Landroid/view/autofill/AutofillId;Z)V
+HSPLandroid/view/autofill/AutofillManager;->resetSessionLocked(Z)V
+HSPLandroid/view/autofill/AutofillManager;->setState(I)V
+HSPLandroid/view/autofill/AutofillManager;->shouldIgnoreViewEnteredLocked(Landroid/view/autofill/AutofillId;I)Z
 HSPLandroid/view/autofill/AutofillManager;->startAutofillIfNeededLocked(Landroid/view/View;)Z
+HSPLandroid/view/autofill/AutofillManager;->startSessionLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;I)V
+HSPLandroid/view/autofill/AutofillManager;->updateSessionLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;II)V
+HSPLandroid/view/autofill/AutofillManagerInternal;-><init>()V
+HSPLandroid/view/autofill/AutofillValue$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/autofill/AutofillValue;
+HSPLandroid/view/autofill/AutofillValue$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/autofill/AutofillValue;-><init>(ILjava/lang/Object;)V
+HSPLandroid/view/autofill/AutofillValue;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/autofill/AutofillValue;-><init>(Landroid/os/Parcel;Landroid/view/autofill/AutofillValue$1;)V
 HSPLandroid/view/autofill/AutofillValue;->forText(Ljava/lang/CharSequence;)Landroid/view/autofill/AutofillValue;
+HSPLandroid/view/autofill/AutofillValue;->forToggle(Z)Landroid/view/autofill/AutofillValue;
+HSPLandroid/view/autofill/AutofillValue;->getTextValue()Ljava/lang/CharSequence;
+HSPLandroid/view/autofill/AutofillValue;->isText()Z
 HSPLandroid/view/autofill/AutofillValue;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/autofill/IAugmentedAutofillManagerClient$Stub;-><init>()V
+HSPLandroid/view/autofill/IAugmentedAutofillManagerClient$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/autofill/IAugmentedAutofillManagerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->addClient(Landroid/view/autofill/IAutoFillManagerClient;Landroid/content/ComponentName;ILcom/android/internal/os/IResultReceiver;)V
+HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->cancelSession(II)V
+HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->isServiceSupported(ILcom/android/internal/os/IResultReceiver;)V
+HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->removeClient(Landroid/view/autofill/IAutoFillManagerClient;I)V
+HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->restoreSession(ILandroid/os/IBinder;Landroid/os/IBinder;Lcom/android/internal/os/IResultReceiver;)V
+HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->setHasCallback(IIZ)V
+HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->startSession(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;IZILandroid/content/ComponentName;ZLcom/android/internal/os/IResultReceiver;)V
+HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->updateSession(ILandroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;III)V
+HSPLandroid/view/autofill/IAutoFillManager$Stub;-><init>()V
 HSPLandroid/view/autofill/IAutoFillManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutoFillManager;
+HPLandroid/view/autofill/IAutoFillManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;-><init>()V
 HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/view/autofill/IAutoFillManagerClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutoFillManagerClient;
+HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/contentcapture/-$$Lambda$MainContentCaptureSession$1$Xhq3WJibbalS1G_W3PRC2m7muhM;-><init>(Landroid/view/contentcapture/MainContentCaptureSession$1;ILandroid/os/IBinder;)V
+HSPLandroid/view/contentcapture/-$$Lambda$MainContentCaptureSession$1$Xhq3WJibbalS1G_W3PRC2m7muhM;->run()V
+HSPLandroid/view/contentcapture/-$$Lambda$MainContentCaptureSession$49zT7C2BXrEdkyggyGk1Qs4d46k;-><init>(Landroid/view/contentcapture/MainContentCaptureSession;I)V
+HSPLandroid/view/contentcapture/-$$Lambda$MainContentCaptureSession$49zT7C2BXrEdkyggyGk1Qs4d46k;->run()V
+HSPLandroid/view/contentcapture/-$$Lambda$MainContentCaptureSession$HTmdDf687TPcaTnLyPp3wo0gI60;-><init>(Landroid/view/contentcapture/MainContentCaptureSession;)V
+HSPLandroid/view/contentcapture/-$$Lambda$MainContentCaptureSession$HTmdDf687TPcaTnLyPp3wo0gI60;->run()V
+HSPLandroid/view/contentcapture/-$$Lambda$MainContentCaptureSession$UWslDbWedtPhv49PtRsvG4TlYWw;-><init>(Landroid/view/contentcapture/MainContentCaptureSession;)V
+HSPLandroid/view/contentcapture/ContentCaptureContext;-><init>(Landroid/view/contentcapture/ContentCaptureContext;Landroid/content/ComponentName;III)V
+HSPLandroid/view/contentcapture/ContentCaptureContext;->fromServer()Z
+HSPLandroid/view/contentcapture/ContentCaptureContext;->getActivityComponent()Landroid/content/ComponentName;
+HSPLandroid/view/contentcapture/ContentCaptureContext;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/contentcapture/ContentCaptureEvent$1;-><init>()V
+HSPLandroid/view/contentcapture/ContentCaptureEvent;-><clinit>()V
+HSPLandroid/view/contentcapture/ContentCaptureEvent;-><init>(II)V
+HSPLandroid/view/contentcapture/ContentCaptureEvent;-><init>(IIJ)V
+HSPLandroid/view/contentcapture/ContentCaptureEvent;->addAutofillId(Landroid/view/autofill/AutofillId;)Landroid/view/contentcapture/ContentCaptureEvent;
+HSPLandroid/view/contentcapture/ContentCaptureEvent;->getId()Landroid/view/autofill/AutofillId;
+HSPLandroid/view/contentcapture/ContentCaptureEvent;->getIds()Ljava/util/List;
+HSPLandroid/view/contentcapture/ContentCaptureEvent;->getSessionId()I
+HSPLandroid/view/contentcapture/ContentCaptureEvent;->getText()Ljava/lang/CharSequence;
+HSPLandroid/view/contentcapture/ContentCaptureEvent;->getType()I
+HSPLandroid/view/contentcapture/ContentCaptureEvent;->mergeEvent(Landroid/view/contentcapture/ContentCaptureEvent;)V
+HSPLandroid/view/contentcapture/ContentCaptureEvent;->setAutofillId(Landroid/view/autofill/AutofillId;)Landroid/view/contentcapture/ContentCaptureEvent;
+HSPLandroid/view/contentcapture/ContentCaptureEvent;->setText(Ljava/lang/CharSequence;)Landroid/view/contentcapture/ContentCaptureEvent;
+HSPLandroid/view/contentcapture/ContentCaptureEvent;->setViewNode(Landroid/view/contentcapture/ViewNode;)Landroid/view/contentcapture/ContentCaptureEvent;
+HSPLandroid/view/contentcapture/ContentCaptureEvent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/contentcapture/ContentCaptureHelper;->getDefaultLoggingLevel()I
 HSPLandroid/view/contentcapture/ContentCaptureHelper;->getLoggingLevelAsString(I)Ljava/lang/String;
 HSPLandroid/view/contentcapture/ContentCaptureHelper;->setLoggingLevel(I)V
+HSPLandroid/view/contentcapture/ContentCaptureHelper;->toList(Ljava/util/Set;)Ljava/util/ArrayList;
+HSPLandroid/view/contentcapture/ContentCaptureManager;-><init>(Landroid/content/Context;Landroid/view/contentcapture/IContentCaptureManager;Landroid/content/ContentCaptureOptions;)V
+HSPLandroid/view/contentcapture/ContentCaptureManager;->flush(I)V
+HSPLandroid/view/contentcapture/ContentCaptureManager;->getMainContentCaptureSession()Landroid/view/contentcapture/MainContentCaptureSession;
+HSPLandroid/view/contentcapture/ContentCaptureManager;->isContentCaptureEnabled()Z
+HSPLandroid/view/contentcapture/ContentCaptureManager;->onActivityCreated(Landroid/os/IBinder;Landroid/content/ComponentName;)V
+HSPLandroid/view/contentcapture/ContentCaptureManager;->onActivityDestroyed()V
+HSPLandroid/view/contentcapture/ContentCaptureManager;->onActivityPaused()V
+HSPLandroid/view/contentcapture/ContentCaptureManager;->onActivityResumed()V
+HSPLandroid/view/contentcapture/ContentCaptureManager;->updateWindowAttributes(Landroid/view/WindowManager$LayoutParams;)V
+HSPLandroid/view/contentcapture/ContentCaptureSession;-><clinit>()V
+HSPLandroid/view/contentcapture/ContentCaptureSession;-><init>()V
+HSPLandroid/view/contentcapture/ContentCaptureSession;-><init>(I)V
+HSPLandroid/view/contentcapture/ContentCaptureSession;->destroy()V
+HSPLandroid/view/contentcapture/ContentCaptureSession;->getFlushReasonAsString(I)Ljava/lang/String;
+HSPLandroid/view/contentcapture/ContentCaptureSession;->getId()I
+HSPLandroid/view/contentcapture/ContentCaptureSession;->getRandomSessionId()I
+HSPLandroid/view/contentcapture/ContentCaptureSession;->getStateAsString(I)Ljava/lang/String;
+HSPLandroid/view/contentcapture/ContentCaptureSession;->isContentCaptureEnabled()Z
+HSPLandroid/view/contentcapture/ContentCaptureSession;->newViewStructure(Landroid/view/View;)Landroid/view/ViewStructure;
+HSPLandroid/view/contentcapture/ContentCaptureSession;->notifySessionPaused()V
+HSPLandroid/view/contentcapture/ContentCaptureSession;->notifySessionResumed()V
+HSPLandroid/view/contentcapture/ContentCaptureSession;->notifyViewAppeared(Landroid/view/ViewStructure;)V
+HSPLandroid/view/contentcapture/ContentCaptureSession;->notifyViewTextChanged(Landroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V
+HPLandroid/view/contentcapture/DataRemovalRequest$LocusIdRequest;-><init>(Landroid/view/contentcapture/DataRemovalRequest;Landroid/content/LocusId;I)V
+PLandroid/view/contentcapture/DataRemovalRequest$LocusIdRequest;-><init>(Landroid/view/contentcapture/DataRemovalRequest;Landroid/content/LocusId;ILandroid/view/contentcapture/DataRemovalRequest$1;)V
+HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;->sendEvents(Landroid/content/pm/ParceledListSlice;ILandroid/content/ContentCaptureOptions;)V
+HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/contentcapture/IContentCaptureDirectManager;
+HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;->finishSession(I)V
+HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;->startSession(Landroid/os/IBinder;Landroid/content/ComponentName;IILcom/android/internal/os/IResultReceiver;)V
+HSPLandroid/view/contentcapture/IContentCaptureManager$Stub;-><init>()V
+HSPLandroid/view/contentcapture/IContentCaptureManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/contentcapture/IContentCaptureManager;
+HPLandroid/view/contentcapture/IContentCaptureManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/contentcapture/MainContentCaptureSession$1;-><init>(Landroid/view/contentcapture/MainContentCaptureSession;)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession$1;->lambda$send$1$MainContentCaptureSession$1(ILandroid/os/IBinder;)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession$1;->send(ILandroid/os/Bundle;)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;-><clinit>()V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;-><init>(Landroid/content/Context;Landroid/view/contentcapture/ContentCaptureManager;Landroid/os/Handler;Landroid/view/contentcapture/IContentCaptureManager;)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->access$200(Landroid/view/contentcapture/MainContentCaptureSession;)Landroid/os/Handler;
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->access$300(Landroid/view/contentcapture/MainContentCaptureSession;ILandroid/os/IBinder;)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->clearEvents()Landroid/content/pm/ParceledListSlice;
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->destroySession()V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->flush(I)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->flushIfNeeded(I)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->getActivityName()Ljava/lang/String;
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->getDebugState()Ljava/lang/String;
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->getDebugState(I)Ljava/lang/String;
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->hasStarted()Z
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->internalNotifySessionPaused()V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->internalNotifySessionResumed()V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->internalNotifyViewAppeared(Landroid/view/contentcapture/ViewNode$ViewStructureImpl;)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->internalNotifyViewTextChanged(Landroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->internalNotifyViewTreeEvent(Z)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->isContentCaptureEnabled()Z
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->isDisabled()Z
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->lambda$onDestroy$0$MainContentCaptureSession()V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->lambda$scheduleFlush$2$MainContentCaptureSession(I)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifySessionPaused(I)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifySessionResumed(I)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewAppeared(ILandroid/view/contentcapture/ViewNode$ViewStructureImpl;)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewDisappeared(ILandroid/view/autofill/AutofillId;)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewTextChanged(ILandroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewTreeEvent(IZ)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->onDestroy()V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->onSessionStarted(ILandroid/os/IBinder;)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->resetSession(I)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->scheduleFlush(IZ)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->sendEvent(Landroid/view/contentcapture/ContentCaptureEvent;)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->sendEvent(Landroid/view/contentcapture/ContentCaptureEvent;Z)V
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->setDisabled(Z)Z
+HSPLandroid/view/contentcapture/MainContentCaptureSession;->start(Landroid/os/IBinder;Landroid/content/ComponentName;I)V
+HSPLandroid/view/contentcapture/ViewNode$ViewNodeText;-><init>()V
+HSPLandroid/view/contentcapture/ViewNode$ViewNodeText;->isSimple()Z
+HSPLandroid/view/contentcapture/ViewNode$ViewNodeText;->writeToParcel(Landroid/os/Parcel;Z)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;-><init>(Landroid/view/View;)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->getNodeText()Landroid/view/contentcapture/ViewNode$ViewNodeText;
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setActivated(Z)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setAutofillHints([Ljava/lang/String;)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setAutofillType(I)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setAutofillValue(Landroid/view/autofill/AutofillValue;)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setCheckable(Z)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setClassName(Ljava/lang/String;)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setClickable(Z)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setContentDescription(Ljava/lang/CharSequence;)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setDimens(IIIIII)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setEnabled(Z)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setFocusable(Z)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setFocused(Z)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setHint(Ljava/lang/CharSequence;)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setHintIdEntry(Ljava/lang/String;)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setId(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setInputType(I)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setLongClickable(Z)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setMaxTextEms(I)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setMaxTextLength(I)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setMinTextEms(I)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setOpaque(Z)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setSelected(Z)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setText(Ljava/lang/CharSequence;II)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextIdEntry(Ljava/lang/String;)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextLines([I[I)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextStyle(FIII)V
+HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setVisibility(I)V
+HSPLandroid/view/contentcapture/ViewNode;-><clinit>()V
+HSPLandroid/view/contentcapture/ViewNode;-><init>()V
+HSPLandroid/view/contentcapture/ViewNode;->access$002(Landroid/view/contentcapture/ViewNode;Landroid/view/autofill/AutofillId;)Landroid/view/autofill/AutofillId;
+HSPLandroid/view/contentcapture/ViewNode;->access$1002(Landroid/view/contentcapture/ViewNode;I)I
+HSPLandroid/view/contentcapture/ViewNode;->access$102(Landroid/view/contentcapture/ViewNode;Landroid/view/autofill/AutofillId;)Landroid/view/autofill/AutofillId;
+HSPLandroid/view/contentcapture/ViewNode;->access$1102(Landroid/view/contentcapture/ViewNode;I)I
+HSPLandroid/view/contentcapture/ViewNode;->access$1300(Landroid/view/contentcapture/ViewNode;)J
+HSPLandroid/view/contentcapture/ViewNode;->access$1302(Landroid/view/contentcapture/ViewNode;J)J
+HSPLandroid/view/contentcapture/ViewNode;->access$1402(Landroid/view/contentcapture/ViewNode;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/view/contentcapture/ViewNode;->access$1502(Landroid/view/contentcapture/ViewNode;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/view/contentcapture/ViewNode;->access$1602(Landroid/view/contentcapture/ViewNode;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/view/contentcapture/ViewNode;->access$1702(Landroid/view/contentcapture/ViewNode;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/view/contentcapture/ViewNode;->access$1902(Landroid/view/contentcapture/ViewNode;I)I
+HSPLandroid/view/contentcapture/ViewNode;->access$2002(Landroid/view/contentcapture/ViewNode;[Ljava/lang/String;)[Ljava/lang/String;
+HSPLandroid/view/contentcapture/ViewNode;->access$202(Landroid/view/contentcapture/ViewNode;I)I
+HSPLandroid/view/contentcapture/ViewNode;->access$2102(Landroid/view/contentcapture/ViewNode;Landroid/view/autofill/AutofillValue;)Landroid/view/autofill/AutofillValue;
+HSPLandroid/view/contentcapture/ViewNode;->access$2302(Landroid/view/contentcapture/ViewNode;I)I
+HSPLandroid/view/contentcapture/ViewNode;->access$2402(Landroid/view/contentcapture/ViewNode;I)I
+HSPLandroid/view/contentcapture/ViewNode;->access$2502(Landroid/view/contentcapture/ViewNode;I)I
+HSPLandroid/view/contentcapture/ViewNode;->access$2602(Landroid/view/contentcapture/ViewNode;I)I
+HSPLandroid/view/contentcapture/ViewNode;->access$2800(Landroid/view/contentcapture/ViewNode;)Landroid/view/contentcapture/ViewNode$ViewNodeText;
+HSPLandroid/view/contentcapture/ViewNode;->access$2802(Landroid/view/contentcapture/ViewNode;Landroid/view/contentcapture/ViewNode$ViewNodeText;)Landroid/view/contentcapture/ViewNode$ViewNodeText;
+HSPLandroid/view/contentcapture/ViewNode;->access$302(Landroid/view/contentcapture/ViewNode;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/view/contentcapture/ViewNode;->access$402(Landroid/view/contentcapture/ViewNode;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/view/contentcapture/ViewNode;->access$502(Landroid/view/contentcapture/ViewNode;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/view/contentcapture/ViewNode;->access$602(Landroid/view/contentcapture/ViewNode;I)I
+HSPLandroid/view/contentcapture/ViewNode;->access$702(Landroid/view/contentcapture/ViewNode;I)I
+HSPLandroid/view/contentcapture/ViewNode;->access$802(Landroid/view/contentcapture/ViewNode;I)I
+HSPLandroid/view/contentcapture/ViewNode;->access$902(Landroid/view/contentcapture/ViewNode;I)I
+HSPLandroid/view/contentcapture/ViewNode;->writeSelfToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/contentcapture/ViewNode;->writeToParcel(Landroid/os/Parcel;Landroid/view/contentcapture/ViewNode;I)V
 HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$DelegateImpl$imXagcrnfBo6bvJbiHKCn0Q2ZzU;-><init>(Landroid/view/inputmethod/InputMethodManager$DelegateImpl;ZLandroid/view/View;III)V
 HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$DelegateImpl$imXagcrnfBo6bvJbiHKCn0Q2ZzU;->run()V
 HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$DelegateImpl$r2X8PLo_YIORJTYJGDfinf_IvK4;-><init>(Landroid/view/inputmethod/InputMethodManager$DelegateImpl;Landroid/view/View;)V
 HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$DelegateImpl$r2X8PLo_YIORJTYJGDfinf_IvK4;->run()V
 HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$dfnCauFoZCf-HfXs1QavrkwWDf0;-><init>(Landroid/view/inputmethod/InputMethodManager;I)V
 HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$dfnCauFoZCf-HfXs1QavrkwWDf0;->run()V
+HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$i_90CXuqg7HqaqWjKFApAxiw7ac;-><init>(Landroid/view/inputmethod/InputMethodManager;ZLandroid/view/View;III)V
+HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$i_90CXuqg7HqaqWjKFApAxiw7ac;->run()V
+HSPLandroid/view/inputmethod/BaseInputConnection;-><init>(Landroid/view/View;Z)V
 HSPLandroid/view/inputmethod/BaseInputConnection;-><init>(Landroid/view/inputmethod/InputMethodManager;Z)V
 HSPLandroid/view/inputmethod/BaseInputConnection;->beginBatchEdit()Z
+HSPLandroid/view/inputmethod/BaseInputConnection;->closeConnection()V
+HSPLandroid/view/inputmethod/BaseInputConnection;->commitText(Ljava/lang/CharSequence;I)Z
+HSPLandroid/view/inputmethod/BaseInputConnection;->deleteSurroundingText(II)Z
 HSPLandroid/view/inputmethod/BaseInputConnection;->endBatchEdit()Z
+HSPLandroid/view/inputmethod/BaseInputConnection;->ensureDefaultComposingSpans()V
 HSPLandroid/view/inputmethod/BaseInputConnection;->finishComposingText()Z
 HSPLandroid/view/inputmethod/BaseInputConnection;->getComposingSpanEnd(Landroid/text/Spannable;)I
 HSPLandroid/view/inputmethod/BaseInputConnection;->getComposingSpanStart(Landroid/text/Spannable;)I
+HSPLandroid/view/inputmethod/BaseInputConnection;->getCursorCapsMode(I)I
 HSPLandroid/view/inputmethod/BaseInputConnection;->getEditable()Landroid/text/Editable;
 HSPLandroid/view/inputmethod/BaseInputConnection;->getHandler()Landroid/os/Handler;
 HSPLandroid/view/inputmethod/BaseInputConnection;->getSelectedText(I)Ljava/lang/CharSequence;
 HSPLandroid/view/inputmethod/BaseInputConnection;->getTextAfterCursor(II)Ljava/lang/CharSequence;
 HSPLandroid/view/inputmethod/BaseInputConnection;->getTextBeforeCursor(II)Ljava/lang/CharSequence;
 HSPLandroid/view/inputmethod/BaseInputConnection;->removeComposingSpans(Landroid/text/Spannable;)V
+HSPLandroid/view/inputmethod/BaseInputConnection;->replaceText(Ljava/lang/CharSequence;IZ)V
+HSPLandroid/view/inputmethod/BaseInputConnection;->reportFullscreenMode(Z)Z
 HSPLandroid/view/inputmethod/BaseInputConnection;->sendCurrentText()V
+HSPLandroid/view/inputmethod/BaseInputConnection;->sendKeyEvent(Landroid/view/KeyEvent;)Z
+HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingRegion(II)Z
+HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingSpans(Landroid/text/Spannable;)V
+HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingSpans(Landroid/text/Spannable;II)V
+HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingText(Ljava/lang/CharSequence;I)Z
+HSPLandroid/view/inputmethod/CorrectionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/CorrectionInfo;
+HSPLandroid/view/inputmethod/CorrectionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/inputmethod/CorrectionInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/inputmethod/CorrectionInfo;-><init>(Landroid/os/Parcel;Landroid/view/inputmethod/CorrectionInfo$1;)V
+HSPLandroid/view/inputmethod/CorrectionInfo;->getNewText()Ljava/lang/CharSequence;
+HSPLandroid/view/inputmethod/CorrectionInfo;->getOffset()I
 HSPLandroid/view/inputmethod/CursorAnchorInfo$Builder;-><init>()V
+HSPLandroid/view/inputmethod/EditorInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/EditorInfo;
+HSPLandroid/view/inputmethod/EditorInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/inputmethod/EditorInfo$InitialSurroundingText$1;-><init>()V
+HSPLandroid/view/inputmethod/EditorInfo$InitialSurroundingText$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/EditorInfo$InitialSurroundingText;
+HSPLandroid/view/inputmethod/EditorInfo$InitialSurroundingText$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/view/inputmethod/EditorInfo$InitialSurroundingText;-><clinit>()V
 HSPLandroid/view/inputmethod/EditorInfo$InitialSurroundingText;-><init>()V
 HSPLandroid/view/inputmethod/EditorInfo$InitialSurroundingText;-><init>(Ljava/lang/CharSequence;II)V
 HSPLandroid/view/inputmethod/EditorInfo$InitialSurroundingText;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/inputmethod/EditorInfo;-><init>()V
+HSPLandroid/view/inputmethod/EditorInfo;->access$402(Landroid/view/inputmethod/EditorInfo;Landroid/view/inputmethod/EditorInfo$InitialSurroundingText;)Landroid/view/inputmethod/EditorInfo$InitialSurroundingText;
 HSPLandroid/view/inputmethod/EditorInfo;->isPasswordInputType(I)Z
 HSPLandroid/view/inputmethod/EditorInfo;->setInitialSurroundingSubText(Ljava/lang/CharSequence;I)V
 HSPLandroid/view/inputmethod/EditorInfo;->setInitialSurroundingText(Ljava/lang/CharSequence;)V
 HSPLandroid/view/inputmethod/EditorInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/inputmethod/ExtractedText;-><init>()V
+HSPLandroid/view/inputmethod/ExtractedTextRequest;-><init>()V
+HSPLandroid/view/inputmethod/InlineSuggestionsRequest$1;-><init>()V
+HSPLandroid/view/inputmethod/InlineSuggestionsRequest;-><clinit>()V
+HSPLandroid/view/inputmethod/InlineSuggestionsRequest;->onConstructed()V
+HSPLandroid/view/inputmethod/InputBinding;-><init>(Landroid/view/inputmethod/InputConnection;Landroid/os/IBinder;II)V
+HPLandroid/view/inputmethod/InputBinding;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/inputmethod/InputConnectionInspector;->getMissingMethodFlags(Landroid/view/inputmethod/InputConnection;)I
+HSPLandroid/view/inputmethod/InputConnectionWrapper;-><init>(Landroid/view/inputmethod/InputConnection;Z)V
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->beginBatchEdit()Z
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->closeConnection()V
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)Z
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->commitText(Ljava/lang/CharSequence;I)Z
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->deleteSurroundingText(II)Z
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->endBatchEdit()Z
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->finishComposingText()Z
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->getCursorCapsMode(I)I
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->getHandler()Landroid/os/Handler;
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->getMissingMethodFlags()I
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->getSelectedText(I)Ljava/lang/CharSequence;
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->getTextAfterCursor(II)Ljava/lang/CharSequence;
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->getTextBeforeCursor(II)Ljava/lang/CharSequence;
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->reportFullscreenMode(Z)Z
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->sendKeyEvent(Landroid/view/KeyEvent;)Z
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->setComposingRegion(II)Z
+HSPLandroid/view/inputmethod/InputConnectionWrapper;->setComposingText(Ljava/lang/CharSequence;I)Z
 HSPLandroid/view/inputmethod/InputMethodInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/InputMethodInfo;
 HSPLandroid/view/inputmethod/InputMethodInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/inputmethod/InputMethodInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;Ljava/util/List;)V
 HSPLandroid/view/inputmethod/InputMethodInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/inputmethod/InputMethodInfo;->computeId(Landroid/content/pm/ResolveInfo;)Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodInfo;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/inputmethod/InputMethodInfo;->getComponent()Landroid/content/ComponentName;
 HSPLandroid/view/inputmethod/InputMethodInfo;->getId()Ljava/lang/String;
 HSPLandroid/view/inputmethod/InputMethodInfo;->getPackageName()Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo;
+HSPLandroid/view/inputmethod/InputMethodInfo;->getSubtypeAt(I)Landroid/view/inputmethod/InputMethodSubtype;
+HSPLandroid/view/inputmethod/InputMethodInfo;->getSubtypeCount()I
+HSPLandroid/view/inputmethod/InputMethodInfo;->isAuxiliaryIme()Z
+HSPLandroid/view/inputmethod/InputMethodInfo;->isVrOnly()Z
+HSPLandroid/view/inputmethod/InputMethodInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+HSPLandroid/view/inputmethod/InputMethodInfo;->supportsSwitchingToNextInputMethod()Z
+HPLandroid/view/inputmethod/InputMethodInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/inputmethod/InputMethodManager$1;-><init>(Landroid/view/inputmethod/InputMethodManager;)V
 HSPLandroid/view/inputmethod/InputMethodManager$1;->onBindMethod(Lcom/android/internal/view/InputBindResult;)V
 HSPLandroid/view/inputmethod/InputMethodManager$1;->onUnbindMethod(II)V
@@ -14132,6 +27911,7 @@
 HSPLandroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;->isActive()Z
 HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;-><init>(Landroid/view/inputmethod/InputMethodManager;)V
 HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;-><init>(Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager$1;)V
+HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->closeCurrentIme()V
 HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->finishComposingText()V
 HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->finishInput()V
 HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->isCurrentRootView(Landroid/view/ViewRootImpl;)Z
@@ -14167,20 +27947,27 @@
 HSPLandroid/view/inputmethod/InputMethodManager;->access$902(Landroid/view/inputmethod/InputMethodManager;Landroid/graphics/Matrix;)Landroid/graphics/Matrix;
 HSPLandroid/view/inputmethod/InputMethodManager;->canStartInput(Landroid/view/View;)Z
 HSPLandroid/view/inputmethod/InputMethodManager;->checkFocus()V
+HSPLandroid/view/inputmethod/InputMethodManager;->checkFocusNoStartInput(Z)Z
 HSPLandroid/view/inputmethod/InputMethodManager;->clearBindingLocked()V
 HSPLandroid/view/inputmethod/InputMethodManager;->clearConnectionLocked()V
+HSPLandroid/view/inputmethod/InputMethodManager;->closeCurrentInput()V
 HSPLandroid/view/inputmethod/InputMethodManager;->createInstance(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager;
 HSPLandroid/view/inputmethod/InputMethodManager;->createRealInstance(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager;
 HSPLandroid/view/inputmethod/InputMethodManager;->dispatchInputEvent(Landroid/view/InputEvent;Ljava/lang/Object;Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;Landroid/os/Handler;)I
+HSPLandroid/view/inputmethod/InputMethodManager;->dispatchKeyEventFromInputMethod(Landroid/view/View;Landroid/view/KeyEvent;)V
+HSPLandroid/view/inputmethod/InputMethodManager;->displayCompletions(Landroid/view/View;[Landroid/view/inputmethod/CompletionInfo;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->ensureDefaultInstanceForDefaultDisplayIfNecessary()V
 HSPLandroid/view/inputmethod/InputMethodManager;->finishInputLocked()V
 HSPLandroid/view/inputmethod/InputMethodManager;->finishedInputEvent(IZZ)V
 HSPLandroid/view/inputmethod/InputMethodManager;->flushPendingEventsLocked()V
+HSPLandroid/view/inputmethod/InputMethodManager;->focusInLocked(Landroid/view/View;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->forContext(Landroid/content/Context;)Landroid/view/inputmethod/InputMethodManager;
 HSPLandroid/view/inputmethod/InputMethodManager;->forContextInternal(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager;
 HSPLandroid/view/inputmethod/InputMethodManager;->getDelegate()Landroid/view/inputmethod/InputMethodManager$DelegateImpl;
+HSPLandroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List;
 HSPLandroid/view/inputmethod/InputMethodManager;->getFallbackInputMethodManagerIfNecessary(Landroid/view/View;)Landroid/view/inputmethod/InputMethodManager;
 HSPLandroid/view/inputmethod/InputMethodManager;->getFocusController()Landroid/view/ImeFocusController;
+HSPLandroid/view/inputmethod/InputMethodManager;->getNextServedViewLocked()Landroid/view/View;
 HSPLandroid/view/inputmethod/InputMethodManager;->getServedViewLocked()Landroid/view/View;
 HSPLandroid/view/inputmethod/InputMethodManager;->getStartInputFlags(Landroid/view/View;I)I
 HSPLandroid/view/inputmethod/InputMethodManager;->hasServedByInputMethodLocked(Landroid/view/View;)Z
@@ -14192,45 +27979,434 @@
 HSPLandroid/view/inputmethod/InputMethodManager;->isCursorAnchorInfoEnabled()Z
 HSPLandroid/view/inputmethod/InputMethodManager;->isFullscreenMode()Z
 HSPLandroid/view/inputmethod/InputMethodManager;->isInEditMode()Z
+HSPLandroid/view/inputmethod/InputMethodManager;->lambda$onPostWindowFocus$2$InputMethodManager(ZLandroid/view/View;III)V
 HSPLandroid/view/inputmethod/InputMethodManager;->lambda$startInputInner$1$InputMethodManager(I)V
 HSPLandroid/view/inputmethod/InputMethodManager;->maybeCallServedViewChangedLocked(Landroid/view/inputmethod/EditorInfo;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->obtainPendingEventLocked(Landroid/view/InputEvent;Ljava/lang/Object;Ljava/lang/String;Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;Landroid/os/Handler;)Landroid/view/inputmethod/InputMethodManager$PendingEvent;
+HSPLandroid/view/inputmethod/InputMethodManager;->onPostWindowFocus(Landroid/view/View;Landroid/view/View;II)V
+HSPLandroid/view/inputmethod/InputMethodManager;->onPreWindowFocus(Landroid/view/View;Z)V
+HSPLandroid/view/inputmethod/InputMethodManager;->onViewDetachedFromWindow(Landroid/view/View;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->recyclePendingEventLocked(Landroid/view/inputmethod/InputMethodManager$PendingEvent;)V
+HSPLandroid/view/inputmethod/InputMethodManager;->registerImeConsumer(Landroid/view/ImeInsetsSourceConsumer;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->restartInput(Landroid/view/View;)V
+HSPLandroid/view/inputmethod/InputMethodManager;->scheduleCheckFocusLocked(Landroid/view/View;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->sendInputEventOnMainLooperLocked(Landroid/view/inputmethod/InputMethodManager$PendingEvent;)I
 HSPLandroid/view/inputmethod/InputMethodManager;->setInputChannelLocked(Landroid/view/InputChannel;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->setNextServedViewLocked(Landroid/view/View;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->setServedViewLocked(Landroid/view/View;)V
+HSPLandroid/view/inputmethod/InputMethodManager;->showSoftInput(Landroid/view/View;I)Z
 HSPLandroid/view/inputmethod/InputMethodManager;->showSoftInput(Landroid/view/View;ILandroid/os/ResultReceiver;)Z
 HSPLandroid/view/inputmethod/InputMethodManager;->startInputInner(ILandroid/os/IBinder;III)Z
+HSPLandroid/view/inputmethod/InputMethodManager;->unregisterImeConsumer(Landroid/view/ImeInsetsSourceConsumer;)V
 HSPLandroid/view/inputmethod/InputMethodManager;->updateSelection(Landroid/view/View;IIII)V
+HSPLandroid/view/inputmethod/InputMethodManager;->viewClicked(Landroid/view/View;)V
+HSPLandroid/view/inputmethod/InputMethodManager;->windowDismissed(Landroid/os/IBinder;)V
+HSPLandroid/view/inputmethod/InputMethodSubtype$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/InputMethodSubtype;
+HSPLandroid/view/inputmethod/InputMethodSubtype$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$100(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)I
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$1000(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$200(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)I
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$300(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$400(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$500(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$600(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Z
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$700(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Z
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$800(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)I
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$900(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Z
+HSPLandroid/view/inputmethod/InputMethodSubtype;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/inputmethod/InputMethodSubtype;-><init>(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)V
+HSPLandroid/view/inputmethod/InputMethodSubtype;-><init>(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;Landroid/view/inputmethod/InputMethodSubtype$1;)V
+HSPLandroid/view/inputmethod/InputMethodSubtype;->containsExtraValueKey(Ljava/lang/String;)Z
+HSPLandroid/view/inputmethod/InputMethodSubtype;->getExtraValueHashMap()Ljava/util/HashMap;
+HSPLandroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype;->getMode()Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype;->hashCode()I
+HSPLandroid/view/inputmethod/InputMethodSubtype;->hashCodeInternal(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZ)I
+HSPLandroid/view/inputmethod/InputMethodSubtype;->isAuxiliary()Z
+HSPLandroid/view/inputmethod/InputMethodSubtype;->overridesImplicitlyEnabledSubtype()Z
+HSPLandroid/view/inputmethod/InputMethodSubtype;->sort(Landroid/content/Context;ILandroid/view/inputmethod/InputMethodInfo;Ljava/util/List;)Ljava/util/List;
+HPLandroid/view/inputmethod/InputMethodSubtype;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/inputmethod/InputMethodSubtypeArray;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/inputmethod/InputMethodSubtypeArray;-><init>(Ljava/util/List;)V
+HPLandroid/view/inputmethod/InputMethodSubtypeArray;->compress([B)[B
+HSPLandroid/view/inputmethod/InputMethodSubtypeArray;->get(I)Landroid/view/inputmethod/InputMethodSubtype;
+HSPLandroid/view/inputmethod/InputMethodSubtypeArray;->getCount()I
+HPLandroid/view/inputmethod/InputMethodSubtypeArray;->marshall([Landroid/view/inputmethod/InputMethodSubtype;)[B
+HPLandroid/view/inputmethod/InputMethodSubtypeArray;->writeToParcel(Landroid/os/Parcel;)V
+HSPLandroid/view/textclassifier/-$$Lambda$ActionsModelParamsSupplier$zElxNeuL3A8paTXvw8GWdpp4rFo;-><init>(Landroid/view/textclassifier/ActionsModelParamsSupplier;)V
+HSPLandroid/view/textclassifier/-$$Lambda$EntityConfidence$YPh8hwgSYYK8OyQ1kFlQngc71Q0;-><init>(Landroid/view/textclassifier/EntityConfidence;)V
 HSPLandroid/view/textclassifier/-$$Lambda$TextClassificationManager$JIaezIJbMig_-kVzN6oArzkTsJE;-><init>(Landroid/view/textclassifier/TextClassificationManager;)V
+HSPLandroid/view/textclassifier/-$$Lambda$TextClassificationManager$JIaezIJbMig_-kVzN6oArzkTsJE;->createTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier;
+HSPLandroid/view/textclassifier/-$$Lambda$TextClassifierImpl$iSt_Guet-O6Vtdk0MA4z-Z4lzaM;-><init>(Landroid/view/textclassifier/TextClassifierImpl;)V
+HSPLandroid/view/textclassifier/ActionsModelParamsSupplier$SettingsObserver;-><init>(Landroid/content/Context;Ljava/lang/Runnable;)V
+HSPLandroid/view/textclassifier/ActionsModelParamsSupplier;-><init>(Landroid/content/Context;Ljava/lang/Runnable;)V
+HSPLandroid/view/textclassifier/ConversationActions$Message$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Message;
+HSPLandroid/view/textclassifier/ConversationActions$Message$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textclassifier/ConversationActions$Message;-><init>(Landroid/os/Parcel;)V
+HPLandroid/view/textclassifier/ConversationActions$Message;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/ConversationActions$1;)V
+HSPLandroid/view/textclassifier/ConversationActions$Message;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/textclassifier/ConversationActions$Request$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Request;
+HSPLandroid/view/textclassifier/ConversationActions$Request$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/textclassifier/ConversationActions$Request;-><init>(Ljava/util/List;Landroid/view/textclassifier/TextClassifier$EntityConfig;ILjava/util/List;Landroid/os/Bundle;)V
+HPLandroid/view/textclassifier/ConversationActions$Request;->access$300(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Request;
+HSPLandroid/view/textclassifier/ConversationActions$Request;->readFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Request;
+PLandroid/view/textclassifier/ConversationActions$Request;->setCallingPackageName(Ljava/lang/String;)V
+PLandroid/view/textclassifier/ConversationActions$Request;->setUserId(I)V
+HSPLandroid/view/textclassifier/ConversationActions$Request;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/textclassifier/EntityConfidence$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/EntityConfidence;
+HSPLandroid/view/textclassifier/EntityConfidence$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textclassifier/EntityConfidence;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/textclassifier/EntityConfidence;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/EntityConfidence$1;)V
+HSPLandroid/view/textclassifier/EntityConfidence;->getEntities()Ljava/util/List;
+HSPLandroid/view/textclassifier/EntityConfidence;->resetSortedEntitiesFromMap()V
+HSPLandroid/view/textclassifier/GenerateLinksLogger;-><init>(I)V
+HSPLandroid/view/textclassifier/Log;->d(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/view/textclassifier/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/view/textclassifier/ModelFileManager$ModelFileSupplierImpl;-><init>(Ljava/io/File;Ljava/lang/String;Ljava/io/File;Ljava/util/function/Function;Ljava/util/function/Function;)V
+HSPLandroid/view/textclassifier/ModelFileManager;-><init>(Ljava/util/function/Supplier;)V
+HSPLandroid/view/textclassifier/SelectionEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/SelectionEvent;
+HSPLandroid/view/textclassifier/SelectionEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textclassifier/SelectionEvent;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/textclassifier/SelectionEvent;->getEntityType()Ljava/lang/String;
+HSPLandroid/view/textclassifier/SelectionEvent;->getEventIndex()I
+HSPLandroid/view/textclassifier/SelectionEvent;->getEventTime()J
+HSPLandroid/view/textclassifier/SelectionEvent;->getEventType()I
+HSPLandroid/view/textclassifier/SelectionEvent;->getInvocationMethod()I
+HSPLandroid/view/textclassifier/SelectionEvent;->getResultId()Ljava/lang/String;
+HSPLandroid/view/textclassifier/SelectionEvent;->getSessionId()Landroid/view/textclassifier/TextClassificationSessionId;
+HSPLandroid/view/textclassifier/SelectionEvent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/textclassifier/SelectionSessionLogger;-><init>()V
 HSPLandroid/view/textclassifier/SelectionSessionLogger;->getTokenIterator(Ljava/util/Locale;)Ljava/text/BreakIterator;
+HSPLandroid/view/textclassifier/SystemTextClassifier$BlockingCallback;-><init>(Ljava/lang/String;)V
+HSPLandroid/view/textclassifier/SystemTextClassifier$BlockingCallback;->get()Landroid/os/Parcelable;
+HSPLandroid/view/textclassifier/SystemTextClassifier$BlockingCallback;->onSuccess(Landroid/os/Bundle;)V
+HSPLandroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;-><init>(Ljava/lang/String;)V
+HSPLandroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;-><init>(Ljava/lang/String;Landroid/view/textclassifier/SystemTextClassifier$1;)V
+HSPLandroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;->get()Ljava/lang/Object;
+HSPLandroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;->onSuccess(Ljava/lang/Object;)V
+HSPLandroid/view/textclassifier/SystemTextClassifier;-><init>(Landroid/content/Context;Landroid/view/textclassifier/TextClassificationConstants;)V
+HSPLandroid/view/textclassifier/SystemTextClassifier;-><init>(Landroid/content/Context;Landroid/view/textclassifier/TextClassificationConstants;Z)V
+HSPLandroid/view/textclassifier/SystemTextClassifier;->classifyText(Landroid/view/textclassifier/TextClassification$Request;)Landroid/view/textclassifier/TextClassification;
+HSPLandroid/view/textclassifier/SystemTextClassifier;->destroy()V
+HSPLandroid/view/textclassifier/SystemTextClassifier;->initializeRemoteSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V
+HSPLandroid/view/textclassifier/TextClassification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassification;
+HSPLandroid/view/textclassifier/TextClassification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textclassifier/TextClassification$Request$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassification$Request;
+HSPLandroid/view/textclassifier/TextClassification$Request$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textclassifier/TextClassification$Request$Builder;-><init>(Ljava/lang/CharSequence;II)V
+HSPLandroid/view/textclassifier/TextClassification$Request$Builder;->build()Landroid/view/textclassifier/TextClassification$Request;
+HSPLandroid/view/textclassifier/TextClassification$Request$Builder;->setDefaultLocales(Landroid/os/LocaleList;)Landroid/view/textclassifier/TextClassification$Request$Builder;
+HSPLandroid/view/textclassifier/TextClassification$Request;-><init>(Ljava/lang/CharSequence;IILandroid/os/LocaleList;Ljava/time/ZonedDateTime;Landroid/os/Bundle;)V
+HSPLandroid/view/textclassifier/TextClassification$Request;-><init>(Ljava/lang/CharSequence;IILandroid/os/LocaleList;Ljava/time/ZonedDateTime;Landroid/os/Bundle;Landroid/view/textclassifier/TextClassification$1;)V
+HSPLandroid/view/textclassifier/TextClassification$Request;->readFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassification$Request;
+HSPLandroid/view/textclassifier/TextClassification$Request;->setCallingPackageName(Ljava/lang/String;)V
+HSPLandroid/view/textclassifier/TextClassification$Request;->setUserId(I)V
+HSPLandroid/view/textclassifier/TextClassification$Request;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/textclassifier/TextClassification;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/textclassifier/TextClassification;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/TextClassification$1;)V
+HSPLandroid/view/textclassifier/TextClassification;->getActions()Ljava/util/List;
 HSPLandroid/view/textclassifier/TextClassificationConstants;-><init>()V
+HSPLandroid/view/textclassifier/TextClassificationConstants;->getGenerateLinksLogSampleRate()I
+HSPLandroid/view/textclassifier/TextClassificationConstants;->getGenerateLinksMaxTextLength()I
+HSPLandroid/view/textclassifier/TextClassificationConstants;->getTextClassifierServicePackageOverride()Ljava/lang/String;
+HSPLandroid/view/textclassifier/TextClassificationConstants;->isLocalTextClassifierEnabled()Z
+HSPLandroid/view/textclassifier/TextClassificationConstants;->isSmartLinkifyEnabled()Z
 HSPLandroid/view/textclassifier/TextClassificationConstants;->isSmartSelectionAnimationEnabled()Z
+HSPLandroid/view/textclassifier/TextClassificationConstants;->isSystemTextClassifierEnabled()Z
+HSPLandroid/view/textclassifier/TextClassificationConstants;->isTemplateIntentFactoryEnabled()Z
+HSPLandroid/view/textclassifier/TextClassificationContext$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassificationContext;
+HSPLandroid/view/textclassifier/TextClassificationContext$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textclassifier/TextClassificationContext$Builder;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/view/textclassifier/TextClassificationContext$Builder;->build()Landroid/view/textclassifier/TextClassificationContext;
+HSPLandroid/view/textclassifier/TextClassificationContext;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/textclassifier/TextClassificationContext;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/TextClassificationContext$1;)V
+HSPLandroid/view/textclassifier/TextClassificationContext;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/view/textclassifier/TextClassificationContext;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/view/textclassifier/TextClassificationContext$1;)V
+HSPLandroid/view/textclassifier/TextClassificationContext;->getPackageName()Ljava/lang/String;
+HSPLandroid/view/textclassifier/TextClassificationContext;->getUserId()I
+HSPLandroid/view/textclassifier/TextClassificationContext;->getWidgetType()Ljava/lang/String;
+HSPLandroid/view/textclassifier/TextClassificationContext;->getWidgetVersion()Ljava/lang/String;
+HSPLandroid/view/textclassifier/TextClassificationContext;->setUserId(I)V
+HSPLandroid/view/textclassifier/TextClassificationContext;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/textclassifier/TextClassificationManager$SettingsObserver;-><init>(Landroid/view/textclassifier/TextClassificationManager;)V
-HPLandroid/view/textclassifier/TextClassificationManager$SettingsObserver;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+HSPLandroid/view/textclassifier/TextClassificationManager$SettingsObserver;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 HSPLandroid/view/textclassifier/TextClassificationManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/textclassifier/TextClassificationManager;->createTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier;
+HSPLandroid/view/textclassifier/TextClassificationManager;->finalize()V
+HSPLandroid/view/textclassifier/TextClassificationManager;->getLocalTextClassifier()Landroid/view/textclassifier/TextClassifier;
 HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings()Landroid/view/textclassifier/TextClassificationConstants;
 HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings(Landroid/content/Context;)Landroid/view/textclassifier/TextClassificationConstants;
+HSPLandroid/view/textclassifier/TextClassificationManager;->getSystemTextClassifier()Landroid/view/textclassifier/TextClassifier;
+HSPLandroid/view/textclassifier/TextClassificationManager;->getSystemTextClassifier(I)Landroid/view/textclassifier/TextClassifier;
+HSPLandroid/view/textclassifier/TextClassificationManager;->getTextClassifier()Landroid/view/textclassifier/TextClassifier;
+HSPLandroid/view/textclassifier/TextClassificationManager;->getTextClassifier(I)Landroid/view/textclassifier/TextClassifier;
+HSPLandroid/view/textclassifier/TextClassificationManager;->isSystemTextClassifierEnabled()Z
+HSPLandroid/view/textclassifier/TextClassificationManager;->lambda$new$0$TextClassificationManager(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier;
+HSPLandroid/view/textclassifier/TextClassificationSession$SelectionEventHelper;-><init>(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassificationContext;)V
+HSPLandroid/view/textclassifier/TextClassificationSession$SelectionEventHelper;->endSession()V
+HSPLandroid/view/textclassifier/TextClassificationSession;-><init>(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassifier;)V
+HSPLandroid/view/textclassifier/TextClassificationSession;->destroy()V
+HSPLandroid/view/textclassifier/TextClassificationSession;->initializeRemoteSession()V
+HSPLandroid/view/textclassifier/TextClassificationSessionId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassificationSessionId;
+HSPLandroid/view/textclassifier/TextClassificationSessionId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textclassifier/TextClassificationSessionId;-><init>()V
+HSPLandroid/view/textclassifier/TextClassificationSessionId;-><init>(Ljava/lang/String;)V
+HSPLandroid/view/textclassifier/TextClassificationSessionId;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/textclassifier/TextClassificationSessionId;->hashCode()I
+HSPLandroid/view/textclassifier/TextClassificationSessionId;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/textclassifier/TextClassifier$EntityConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassifier$EntityConfig;
+HSPLandroid/view/textclassifier/TextClassifier$EntityConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textclassifier/TextClassifier$EntityConfig;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/textclassifier/TextClassifier$EntityConfig;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/TextClassifier$1;)V
+HSPLandroid/view/textclassifier/TextClassifier$EntityConfig;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/textclassifier/TextClassifier$Utils;->checkArgument(Ljava/lang/CharSequence;II)V
+HSPLandroid/view/textclassifier/TextClassifier$Utils;->checkMainThread()V
+HSPLandroid/view/textclassifier/TextClassifierEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassifierEvent;
+HSPLandroid/view/textclassifier/TextClassifierEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent;-><init>(Landroid/os/Parcel;)V
+HPLandroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/TextClassifierEvent$1;)V
+HSPLandroid/view/textclassifier/TextClassifierEvent;-><init>(Landroid/os/Parcel;)V
+HPLandroid/view/textclassifier/TextClassifierEvent;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/TextClassifierEvent$1;)V
+HSPLandroid/view/textclassifier/TextClassifierEvent;->getEventContext()Landroid/view/textclassifier/TextClassificationContext;
+HSPLandroid/view/textclassifier/TextClassifierEvent;->getParcelToken()I
+HSPLandroid/view/textclassifier/TextClassifierEvent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/textclassifier/TextClassifierEventTronLogger;-><init>()V
+HSPLandroid/view/textclassifier/TextClassifierEventTronLogger;-><init>(Lcom/android/internal/logging/MetricsLogger;)V
+HSPLandroid/view/textclassifier/TextClassifierImpl;-><init>(Landroid/content/Context;Landroid/view/textclassifier/TextClassificationConstants;Landroid/view/textclassifier/TextClassifier;)V
+HSPLandroid/view/textclassifier/TextLinks$Request$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks$Request;
+HSPLandroid/view/textclassifier/TextLinks$Request$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textclassifier/TextLinks$Request;-><init>(Ljava/lang/CharSequence;Landroid/os/LocaleList;Landroid/view/textclassifier/TextClassifier$EntityConfig;ZLjava/time/ZonedDateTime;Landroid/os/Bundle;)V
+HSPLandroid/view/textclassifier/TextLinks$Request;->access$300(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks$Request;
+HSPLandroid/view/textclassifier/TextLinks$Request;->getCallingPackageName()Ljava/lang/String;
+HSPLandroid/view/textclassifier/TextLinks$Request;->readFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks$Request;
+HSPLandroid/view/textclassifier/TextLinks$Request;->setCallingPackageName(Ljava/lang/String;)V
+HSPLandroid/view/textclassifier/TextLinks$Request;->setUseDefaultTextClassifier(Z)V
+HSPLandroid/view/textclassifier/TextLinks$Request;->setUserId(I)V
+HSPLandroid/view/textclassifier/TextLinks$Request;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/textclassifier/TextSelection$Request$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextSelection$Request;
+HSPLandroid/view/textclassifier/TextSelection$Request$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textclassifier/TextSelection$Request;-><init>(Ljava/lang/CharSequence;IILandroid/os/LocaleList;ZLandroid/os/Bundle;)V
+HSPLandroid/view/textclassifier/TextSelection$Request;->readFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextSelection$Request;
+HSPLandroid/view/textclassifier/TextSelection$Request;->setCallingPackageName(Ljava/lang/String;)V
+HSPLandroid/view/textclassifier/TextSelection$Request;->setUserId(I)V
+HSPLandroid/view/textclassifier/TextSelection$Request;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/textclassifier/intent/LegacyClassificationIntentFactory;-><init>()V
+HSPLandroid/view/textclassifier/intent/TemplateClassificationIntentFactory;-><init>(Landroid/view/textclassifier/intent/TemplateIntentFactory;Landroid/view/textclassifier/intent/ClassificationIntentFactory;)V
+HSPLandroid/view/textclassifier/intent/TemplateIntentFactory;-><init>()V
+HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;-><init>()V
+HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SentenceSuggestionsInfo;
+HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->newArray(I)[Landroid/view/textservice/SentenceSuggestionsInfo;
+HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/view/textservice/SentenceSuggestionsInfo;-><clinit>()V
+HSPLandroid/view/textservice/SentenceSuggestionsInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/textservice/SentenceSuggestionsInfo;->getLengthAt(I)I
+HSPLandroid/view/textservice/SentenceSuggestionsInfo;->getOffsetAt(I)I
+HSPLandroid/view/textservice/SentenceSuggestionsInfo;->getSuggestionsCount()I
+HSPLandroid/view/textservice/SentenceSuggestionsInfo;->getSuggestionsInfoAt(I)Landroid/view/textservice/SuggestionsInfo;
+HSPLandroid/view/textservice/SpellCheckerInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SpellCheckerInfo;
+HSPLandroid/view/textservice/SpellCheckerInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/textservice/SpellCheckerInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)V
+HSPLandroid/view/textservice/SpellCheckerInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/textservice/SpellCheckerInfo;->getId()Ljava/lang/String;
+HSPLandroid/view/textservice/SpellCheckerInfo;->getSubtypeAt(I)Landroid/view/textservice/SpellCheckerSubtype;
+HSPLandroid/view/textservice/SpellCheckerInfo;->getSubtypeCount()I
+HSPLandroid/view/textservice/SpellCheckerSession$1;-><init>(Landroid/view/textservice/SpellCheckerSession;)V
+HSPLandroid/view/textservice/SpellCheckerSession$1;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/view/textservice/SpellCheckerSession$InternalListener;-><init>(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;)V
+HSPLandroid/view/textservice/SpellCheckerSession$InternalListener;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V
+HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;-><init>(I[Landroid/view/textservice/TextInfo;IZ)V
+HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;-><init>(Landroid/os/Handler;)V
+HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->close()V
+HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->getSentenceSuggestionsMultiple([Landroid/view/textservice/TextInfo;I)V
+HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V
+HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V
+HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processCloseLocked()V
+HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processOrEnqueueTask(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;)V
+HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processTask(Lcom/android/internal/textservice/ISpellCheckerSession;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;Z)V
+HSPLandroid/view/textservice/SpellCheckerSession;-><init>(Landroid/view/textservice/SpellCheckerInfo;Landroid/view/textservice/TextServicesManager;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;)V
+HSPLandroid/view/textservice/SpellCheckerSession;->access$100(Landroid/view/textservice/SpellCheckerSession;[Landroid/view/textservice/SentenceSuggestionsInfo;)V
+HSPLandroid/view/textservice/SpellCheckerSession;->close()V
+HSPLandroid/view/textservice/SpellCheckerSession;->finalize()V
+HSPLandroid/view/textservice/SpellCheckerSession;->getSentenceSuggestions([Landroid/view/textservice/TextInfo;I)V
+HSPLandroid/view/textservice/SpellCheckerSession;->getSpellCheckerSessionListener()Lcom/android/internal/textservice/ISpellCheckerSessionListener;
+HSPLandroid/view/textservice/SpellCheckerSession;->getTextServicesSessionListener()Lcom/android/internal/textservice/ITextServicesSessionListener;
+HSPLandroid/view/textservice/SpellCheckerSession;->handleOnGetSentenceSuggestionsMultiple([Landroid/view/textservice/SentenceSuggestionsInfo;)V
 HSPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SpellCheckerSubtype;
 HSPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/textservice/SpellCheckerSubtype;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
 HSPLandroid/view/textservice/SpellCheckerSubtype;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/textservice/SpellCheckerSubtype;->getLocale()Ljava/lang/String;
 HSPLandroid/view/textservice/SpellCheckerSubtype;->getLocaleObject()Ljava/util/Locale;
 HSPLandroid/view/textservice/SpellCheckerSubtype;->hashCodeInternal(Ljava/lang/String;Ljava/lang/String;)I
+HPLandroid/view/textservice/SpellCheckerSubtype;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/textservice/SuggestionsInfo$1;-><init>()V
+HSPLandroid/view/textservice/SuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SuggestionsInfo;
+HSPLandroid/view/textservice/SuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textservice/SuggestionsInfo;-><clinit>()V
+HSPLandroid/view/textservice/SuggestionsInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/textservice/SuggestionsInfo;->getCookie()I
+HSPLandroid/view/textservice/SuggestionsInfo;->getSequence()I
+HSPLandroid/view/textservice/SuggestionsInfo;->getSuggestionsAttributes()I
+HSPLandroid/view/textservice/TextInfo$1;-><init>()V
+HSPLandroid/view/textservice/TextInfo;-><clinit>()V
+HSPLandroid/view/textservice/TextInfo;-><init>(Ljava/lang/CharSequence;IIII)V
+HSPLandroid/view/textservice/TextInfo;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/view/textservice/TextServicesManager;-><init>(I)V
 HSPLandroid/view/textservice/TextServicesManager;->createInstance(Landroid/content/Context;)Landroid/view/textservice/TextServicesManager;
+HSPLandroid/view/textservice/TextServicesManager;->finishSpellCheckerService(Lcom/android/internal/textservice/ISpellCheckerSessionListener;)V
 HSPLandroid/view/textservice/TextServicesManager;->getCurrentSpellCheckerSubtype(Z)Landroid/view/textservice/SpellCheckerSubtype;
+HSPLandroid/view/textservice/TextServicesManager;->isSpellCheckerEnabled()Z
+HSPLandroid/view/textservice/TextServicesManager;->newSpellCheckerSession(Landroid/os/Bundle;Ljava/util/Locale;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;Z)Landroid/view/textservice/SpellCheckerSession;
+HSPLandroid/view/textservice/TextServicesManager;->parseLanguageFromLocaleString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/webkit/ConsoleMessage;-><init>(Ljava/lang/String;Ljava/lang/String;ILandroid/webkit/ConsoleMessage$MessageLevel;)V
+HSPLandroid/webkit/ConsoleMessage;->lineNumber()I
+HSPLandroid/webkit/ConsoleMessage;->message()Ljava/lang/String;
+HSPLandroid/webkit/ConsoleMessage;->messageLevel()Landroid/webkit/ConsoleMessage$MessageLevel;
+HSPLandroid/webkit/ConsoleMessage;->sourceId()Ljava/lang/String;
+HSPLandroid/webkit/CookieManager;-><init>()V
 HSPLandroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager;
+HSPLandroid/webkit/CookieSyncManager;->setGetInstanceIsAllowed()V
+HSPLandroid/webkit/FindAddress$ZipRange;-><init>(IIII)V
+HSPLandroid/webkit/FindAddress;-><clinit>()V
+HSPLandroid/webkit/FindAddress;->findAddress(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/webkit/GeolocationPermissions;-><init>()V
 HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo;
 HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->isMultiProcessEnabled()Z
 HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
+HSPLandroid/webkit/IWebViewUpdateService$Stub;-><init>()V
 HSPLandroid/webkit/IWebViewUpdateService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/webkit/IWebViewUpdateService;
+HSPLandroid/webkit/IWebViewUpdateService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/webkit/MimeTypeMap;-><clinit>()V
+HSPLandroid/webkit/MimeTypeMap;-><init>()V
+HSPLandroid/webkit/MimeTypeMap;->getFileExtensionFromUrl(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/webkit/MimeTypeMap;->getMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/webkit/MimeTypeMap;->getSingleton()Landroid/webkit/MimeTypeMap;
+HSPLandroid/webkit/URLUtil;->isAboutUrl(Ljava/lang/String;)Z
+HSPLandroid/webkit/URLUtil;->isAssetUrl(Ljava/lang/String;)Z
+HSPLandroid/webkit/URLUtil;->isFileUrl(Ljava/lang/String;)Z
+HSPLandroid/webkit/URLUtil;->isHttpUrl(Ljava/lang/String;)Z
+HSPLandroid/webkit/URLUtil;->isHttpsUrl(Ljava/lang/String;)Z
+HSPLandroid/webkit/URLUtil;->isResourceUrl(Ljava/lang/String;)Z
+HSPLandroid/webkit/URLUtil;->isValidUrl(Ljava/lang/String;)Z
+HSPLandroid/webkit/UserPackage;-><init>(Landroid/content/pm/UserInfo;Landroid/content/pm/PackageInfo;)V
+HSPLandroid/webkit/UserPackage;->getAllUsers(Landroid/content/Context;)Ljava/util/List;
+HSPLandroid/webkit/UserPackage;->getPackageInfosAllUsers(Landroid/content/Context;Ljava/lang/String;I)Ljava/util/List;
+HSPLandroid/webkit/UserPackage;->hasCorrectTargetSdkVersion(Landroid/content/pm/PackageInfo;)Z
+HSPLandroid/webkit/UserPackage;->isEnabledPackage()Z
+HSPLandroid/webkit/UserPackage;->isInstalledPackage()Z
+HSPLandroid/webkit/WebChromeClient;-><init>()V
+HSPLandroid/webkit/WebChromeClient;->getVisitedHistory(Landroid/webkit/ValueCallback;)V
+HSPLandroid/webkit/WebChromeClient;->onProgressChanged(Landroid/webkit/WebView;I)V
+HSPLandroid/webkit/WebChromeClient;->onReceivedIcon(Landroid/webkit/WebView;Landroid/graphics/Bitmap;)V
+HSPLandroid/webkit/WebChromeClient;->onReceivedTitle(Landroid/webkit/WebView;Ljava/lang/String;)V
+HSPLandroid/webkit/WebResourceResponse;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/io/InputStream;)V
+HSPLandroid/webkit/WebResourceResponse;->checkImmutable()V
+HSPLandroid/webkit/WebResourceResponse;->getData()Ljava/io/InputStream;
+HSPLandroid/webkit/WebResourceResponse;->getEncoding()Ljava/lang/String;
+HSPLandroid/webkit/WebResourceResponse;->getMimeType()Ljava/lang/String;
+HSPLandroid/webkit/WebResourceResponse;->getReasonPhrase()Ljava/lang/String;
+HSPLandroid/webkit/WebResourceResponse;->getResponseHeaders()Ljava/util/Map;
+HSPLandroid/webkit/WebResourceResponse;->getStatusCode()I
+HSPLandroid/webkit/WebResourceResponse;->setData(Ljava/io/InputStream;)V
+HSPLandroid/webkit/WebSettings$PluginState;-><clinit>()V
+HSPLandroid/webkit/WebSettings$PluginState;-><init>(Ljava/lang/String;I)V
+HSPLandroid/webkit/WebSettings;-><init>()V
+HSPLandroid/webkit/WebSettings;->getDefaultUserAgent(Landroid/content/Context;)Ljava/lang/String;
+HSPLandroid/webkit/WebStorage;-><init>()V
+HSPLandroid/webkit/WebView$HitTestResult;-><init>()V
+HSPLandroid/webkit/WebView$PrivateAccess;-><init>(Landroid/webkit/WebView;)V
+HSPLandroid/webkit/WebView$PrivateAccess;->overScrollBy(IIIIIIIIZ)V
+HSPLandroid/webkit/WebView$PrivateAccess;->setMeasuredDimension(II)V
+HSPLandroid/webkit/WebView$PrivateAccess;->super_getScrollBarStyle()I
+HSPLandroid/webkit/WebView$PrivateAccess;->super_onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
+HSPLandroid/webkit/WebView$PrivateAccess;->super_requestFocus(ILandroid/graphics/Rect;)Z
+HSPLandroid/webkit/WebView$PrivateAccess;->super_scrollTo(II)V
+HSPLandroid/webkit/WebView$PrivateAccess;->super_setFrame(IIII)Z
+HSPLandroid/webkit/WebView$PrivateAccess;->super_setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;)V
+HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IILjava/util/Map;Z)V
+HSPLandroid/webkit/WebView;->access$1001(Landroid/webkit/WebView;ILandroid/graphics/Rect;)Z
+HSPLandroid/webkit/WebView;->access$101(Landroid/webkit/WebView;)I
+HSPLandroid/webkit/WebView;->access$1101(Landroid/webkit/WebView;Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/webkit/WebView;->access$1300(Landroid/webkit/WebView;IIIIIIIIZ)Z
+HSPLandroid/webkit/WebView;->access$1800(Landroid/webkit/WebView;II)V
+HSPLandroid/webkit/WebView;->access$201(Landroid/webkit/WebView;II)V
+HSPLandroid/webkit/WebView;->access$701(Landroid/webkit/WebView;IIII)Z
+HSPLandroid/webkit/WebView;->addJavascriptInterface(Ljava/lang/Object;Ljava/lang/String;)V
+HSPLandroid/webkit/WebView;->checkThread()V
+HSPLandroid/webkit/WebView;->computeHorizontalScrollOffset()I
+HSPLandroid/webkit/WebView;->computeHorizontalScrollRange()I
+HSPLandroid/webkit/WebView;->computeScroll()V
+HSPLandroid/webkit/WebView;->computeVerticalScrollExtent()I
+HSPLandroid/webkit/WebView;->computeVerticalScrollOffset()I
+HSPLandroid/webkit/WebView;->computeVerticalScrollRange()I
+HSPLandroid/webkit/WebView;->destroy()V
+HSPLandroid/webkit/WebView;->dispatchDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/webkit/WebView;->ensureProviderCreated()V
+HSPLandroid/webkit/WebView;->evaluateJavascript(Ljava/lang/String;Landroid/webkit/ValueCallback;)V
+HSPLandroid/webkit/WebView;->findAddress(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/webkit/WebView;->findFocus()Landroid/view/View;
+HSPLandroid/webkit/WebView;->getContentHeight()I
+HSPLandroid/webkit/WebView;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo;
+HSPLandroid/webkit/WebView;->getFactory()Landroid/webkit/WebViewFactoryProvider;
+HSPLandroid/webkit/WebView;->getFavicon()Landroid/graphics/Bitmap;
+HSPLandroid/webkit/WebView;->getHandler()Landroid/os/Handler;
+HSPLandroid/webkit/WebView;->getScale()F
+HSPLandroid/webkit/WebView;->getSettings()Landroid/webkit/WebSettings;
+HSPLandroid/webkit/WebView;->getUrl()Ljava/lang/String;
+HSPLandroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
+HSPLandroid/webkit/WebView;->onAttachedToWindow()V
+HSPLandroid/webkit/WebView;->onCheckIsTextEditor()Z
+HSPLandroid/webkit/WebView;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
+HSPLandroid/webkit/WebView;->onDetachedFromWindowInternal()V
+HSPLandroid/webkit/WebView;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/webkit/WebView;->onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
+HSPLandroid/webkit/WebView;->onFocusChanged(ZILandroid/graphics/Rect;)V
+HSPLandroid/webkit/WebView;->onMeasure(II)V
+HSPLandroid/webkit/WebView;->onOverScrolled(IIZZ)V
+HSPLandroid/webkit/WebView;->onScrollChanged(IIII)V
+HSPLandroid/webkit/WebView;->onSizeChanged(IIII)V
+HSPLandroid/webkit/WebView;->onTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/webkit/WebView;->onVisibilityChanged(Landroid/view/View;I)V
+HSPLandroid/webkit/WebView;->onWindowFocusChanged(Z)V
+HSPLandroid/webkit/WebView;->onWindowVisibilityChanged(I)V
+HSPLandroid/webkit/WebView;->removeJavascriptInterface(Ljava/lang/String;)V
+HSPLandroid/webkit/WebView;->requestFocus(ILandroid/graphics/Rect;)Z
+HSPLandroid/webkit/WebView;->setBackgroundColor(I)V
+HSPLandroid/webkit/WebView;->setDataDirectorySuffix(Ljava/lang/String;)V
+HSPLandroid/webkit/WebView;->setDownloadListener(Landroid/webkit/DownloadListener;)V
+HSPLandroid/webkit/WebView;->setFrame(IIII)Z
+HSPLandroid/webkit/WebView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/webkit/WebView;->setOverScrollMode(I)V
+HSPLandroid/webkit/WebView;->setWebChromeClient(Landroid/webkit/WebChromeClient;)V
+HSPLandroid/webkit/WebView;->setWebViewClient(Landroid/webkit/WebViewClient;)V
+HSPLandroid/webkit/WebViewClient;-><init>()V
+HSPLandroid/webkit/WebViewClient;->doUpdateVisitedHistory(Landroid/webkit/WebView;Ljava/lang/String;Z)V
+HSPLandroid/webkit/WebViewClient;->onLoadResource(Landroid/webkit/WebView;Ljava/lang/String;)V
+HSPLandroid/webkit/WebViewClient;->onPageCommitVisible(Landroid/webkit/WebView;Ljava/lang/String;)V
+HSPLandroid/webkit/WebViewClient;->onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V
+HSPLandroid/webkit/WebViewClient;->onPageStarted(Landroid/webkit/WebView;Ljava/lang/String;Landroid/graphics/Bitmap;)V
+HSPLandroid/webkit/WebViewClient;->onReceivedError(Landroid/webkit/WebView;Landroid/webkit/WebResourceRequest;Landroid/webkit/WebResourceError;)V
+HSPLandroid/webkit/WebViewClient;->onScaleChanged(Landroid/webkit/WebView;FF)V
+HSPLandroid/webkit/WebViewClient;->shouldInterceptRequest(Landroid/webkit/WebView;Landroid/webkit/WebResourceRequest;)Landroid/webkit/WebResourceResponse;
+HSPLandroid/webkit/WebViewClient;->shouldInterceptRequest(Landroid/webkit/WebView;Ljava/lang/String;)Landroid/webkit/WebResourceResponse;
+HSPLandroid/webkit/WebViewClient;->shouldOverrideUrlLoading(Landroid/webkit/WebView;Landroid/webkit/WebResourceRequest;)Z
+HSPLandroid/webkit/WebViewDelegate$1;-><init>(Landroid/webkit/WebViewDelegate;Landroid/webkit/WebViewDelegate$OnTraceEnabledChangeListener;)V
+HSPLandroid/webkit/WebViewDelegate$1;->run()V
 HSPLandroid/webkit/WebViewDelegate;-><init>()V
+HSPLandroid/webkit/WebViewDelegate;->addWebViewAssetPath(Landroid/content/Context;)V
+HSPLandroid/webkit/WebViewDelegate;->drawWebViewFunctor(Landroid/graphics/Canvas;I)V
 HSPLandroid/webkit/WebViewDelegate;->getApplication()Landroid/app/Application;
 HSPLandroid/webkit/WebViewDelegate;->getDataDirectorySuffix()Ljava/lang/String;
 HSPLandroid/webkit/WebViewDelegate;->getPackageId(Landroid/content/res/Resources;Ljava/lang/String;)I
 HSPLandroid/webkit/WebViewDelegate;->isMultiProcessEnabled()Z
+HSPLandroid/webkit/WebViewDelegate;->isTraceTagEnabled()Z
+HSPLandroid/webkit/WebViewDelegate;->setOnTraceEnabledChangeListener(Landroid/webkit/WebViewDelegate$OnTraceEnabledChangeListener;)V
 HSPLandroid/webkit/WebViewFactory;->getDataDirectorySuffix()Ljava/lang/String;
 HSPLandroid/webkit/WebViewFactory;->getLoadedPackageInfo()Landroid/content/pm/PackageInfo;
 HSPLandroid/webkit/WebViewFactory;->getProvider()Landroid/webkit/WebViewFactoryProvider;
@@ -14241,21 +28417,60 @@
 HSPLandroid/webkit/WebViewFactory;->getWebViewLibrary(Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
 HSPLandroid/webkit/WebViewFactory;->getWebViewProviderClass(Ljava/lang/ClassLoader;)Ljava/lang/Class;
 HSPLandroid/webkit/WebViewFactory;->isWebViewSupported()Z
+HSPLandroid/webkit/WebViewFactory;->onWebViewProviderChanged(Landroid/content/pm/PackageInfo;)I
 HSPLandroid/webkit/WebViewFactory;->prepareWebViewInZygote()V
+HSPLandroid/webkit/WebViewFactory;->setDataDirectorySuffix(Ljava/lang/String;)V
 HSPLandroid/webkit/WebViewFactory;->signaturesEquals([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)Z
 HSPLandroid/webkit/WebViewFactory;->verifyPackageInfo(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;)V
+HSPLandroid/webkit/WebViewLibraryLoader$1;-><init>(Ljava/lang/String;)V
+HSPLandroid/webkit/WebViewLibraryLoader;->createRelroFile(ZLjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/webkit/WebViewLibraryLoader;->createRelros(Ljava/lang/String;Ljava/lang/String;)I
 HSPLandroid/webkit/WebViewLibraryLoader;->loadNativeLibrary(Ljava/lang/ClassLoader;Ljava/lang/String;)I
+HSPLandroid/webkit/WebViewLibraryLoader;->prepareNativeLibraries(Landroid/content/pm/PackageInfo;)I
 HSPLandroid/webkit/WebViewLibraryLoader;->reserveAddressSpaceInZygote()V
+HSPLandroid/webkit/WebViewProviderInfo;-><init>(Ljava/lang/String;Ljava/lang/String;ZZ[Ljava/lang/String;)V
 HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/webkit/WebViewProviderResponse;
 HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/webkit/WebViewProviderResponse;-><init>(Landroid/content/pm/PackageInfo;I)V
 HSPLandroid/webkit/WebViewProviderResponse;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/webkit/WebViewProviderResponse;-><init>(Landroid/os/Parcel;Landroid/webkit/WebViewProviderResponse$1;)V
+HPLandroid/webkit/WebViewProviderResponse;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/webkit/WebViewZygote;->connectToZygoteIfNeededLocked()V
+HPLandroid/webkit/WebViewZygote;->getPackageName()Ljava/lang/String;
+HSPLandroid/webkit/WebViewZygote;->getProcess()Landroid/os/ZygoteProcess;
+HPLandroid/webkit/WebViewZygote;->isMultiprocessEnabled()Z
+HSPLandroid/webkit/WebViewZygote;->onWebViewProviderChanged(Landroid/content/pm/PackageInfo;)V
+HSPLandroid/webkit/WebViewZygote;->setMultiprocessEnabled(Z)V
+HSPLandroid/widget/-$$Lambda$DateTimeView$ReceiverInfo$AVLnX7U5lTcE9jLnlKKNAT1GUeI;-><init>(Landroid/widget/DateTimeView;)V
+HSPLandroid/widget/-$$Lambda$DateTimeView$ReceiverInfo$AVLnX7U5lTcE9jLnlKKNAT1GUeI;->run()V
+HSPLandroid/widget/-$$Lambda$Editor$MagnifierMotionAnimator$E-RaelOMgCHAzvKgSSZE-hDYeIg;-><init>(Landroid/widget/Editor$MagnifierMotionAnimator;)V
 HSPLandroid/widget/-$$Lambda$IfzAW5fP9thoftErKAjo9SLZufw;-><init>(Landroid/widget/TextView;)V
 HSPLandroid/widget/-$$Lambda$PopupWindow$8Gc2stI5cSJZbuKX7X4Qr_vU2nI;-><init>(Landroid/widget/PopupWindow;)V
+HSPLandroid/widget/-$$Lambda$PopupWindow$8Gc2stI5cSJZbuKX7X4Qr_vU2nI;->onLayoutChange(Landroid/view/View;IIIIIIII)V
+HSPLandroid/widget/-$$Lambda$PopupWindow$PopupDecorView$T99WKEnQefOCXbbKvW95WY38p_I;-><init>(Landroid/widget/PopupWindow$PopupDecorView;Landroid/transition/Transition$TransitionListener;Landroid/transition/Transition;Landroid/view/View;)V
+HSPLandroid/widget/-$$Lambda$PopupWindow$PopupDecorView$T99WKEnQefOCXbbKvW95WY38p_I;->run()V
 HSPLandroid/widget/-$$Lambda$PopupWindow$nV1HS3Nc6Ck5JRIbIHe3mkyHWzc;-><init>(Landroid/widget/PopupWindow;)V
+HSPLandroid/widget/-$$Lambda$RemoteViews$FAOkoZgPKPkiYdtkDxAhkeoykww;->onLoadClass(Ljava/lang/Class;)Z
+HSPLandroid/widget/-$$Lambda$RemoteViews$SetOnClickResponse$9rKnU2QqCzJhBC39ZrKYXob0-MA;-><init>(Landroid/widget/RemoteViews$SetOnClickResponse;Landroid/widget/RemoteViews$OnClickHandler;)V
 HSPLandroid/widget/-$$Lambda$yIdmBO6ZxaY03PGN08RySVVQXuE;-><init>(Landroid/widget/TextView;)V
+HSPLandroid/widget/AbsListView$3;-><init>(Landroid/widget/AbsListView;Landroid/view/View;Landroid/widget/AbsListView$PerformClick;)V
+HSPLandroid/widget/AbsListView$3;->run()V
 HSPLandroid/widget/AbsListView$AdapterDataSetObserver;-><init>(Landroid/widget/AbsListView;)V
 HSPLandroid/widget/AbsListView$AdapterDataSetObserver;->onChanged()V
+HSPLandroid/widget/AbsListView$CheckForTap;-><init>(Landroid/widget/AbsListView;)V
+HSPLandroid/widget/AbsListView$CheckForTap;-><init>(Landroid/widget/AbsListView;Landroid/widget/AbsListView$1;)V
+HSPLandroid/widget/AbsListView$CheckForTap;->run()V
+HSPLandroid/widget/AbsListView$FlingRunnable$1;-><init>(Landroid/widget/AbsListView$FlingRunnable;)V
+HSPLandroid/widget/AbsListView$FlingRunnable;-><init>(Landroid/widget/AbsListView;)V
+HSPLandroid/widget/AbsListView$FlingRunnable;->endFling()V
+HSPLandroid/widget/AbsListView$FlingRunnable;->run()V
+HSPLandroid/widget/AbsListView$FlingRunnable;->start(I)V
+HSPLandroid/widget/AbsListView$LayoutParams;-><init>(II)V
+HSPLandroid/widget/AbsListView$LayoutParams;-><init>(III)V
+HSPLandroid/widget/AbsListView$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/AbsListView$PerformClick;-><init>(Landroid/widget/AbsListView;)V
+HSPLandroid/widget/AbsListView$PerformClick;-><init>(Landroid/widget/AbsListView;Landroid/widget/AbsListView$1;)V
+HSPLandroid/widget/AbsListView$PerformClick;->run()V
 HSPLandroid/widget/AbsListView$RecycleBin;-><init>(Landroid/widget/AbsListView;)V
 HSPLandroid/widget/AbsListView$RecycleBin;->addScrapView(Landroid/view/View;I)V
 HSPLandroid/widget/AbsListView$RecycleBin;->clear()V
@@ -14263,62 +28478,112 @@
 HSPLandroid/widget/AbsListView$RecycleBin;->clearScrapForRebind(Landroid/view/View;)V
 HSPLandroid/widget/AbsListView$RecycleBin;->clearTransientStateViews()V
 HSPLandroid/widget/AbsListView$RecycleBin;->fillActiveViews(II)V
+HSPLandroid/widget/AbsListView$RecycleBin;->fullyDetachScrapViews()V
 HSPLandroid/widget/AbsListView$RecycleBin;->getActiveView(I)Landroid/view/View;
 HSPLandroid/widget/AbsListView$RecycleBin;->getScrapView(I)Landroid/view/View;
 HSPLandroid/widget/AbsListView$RecycleBin;->getTransientStateView(I)Landroid/view/View;
 HSPLandroid/widget/AbsListView$RecycleBin;->markChildrenDirty()V
 HSPLandroid/widget/AbsListView$RecycleBin;->pruneScrapViews()V
+HSPLandroid/widget/AbsListView$RecycleBin;->removeDetachedView(Landroid/view/View;Z)V
 HSPLandroid/widget/AbsListView$RecycleBin;->removeSkippedScrap()V
 HSPLandroid/widget/AbsListView$RecycleBin;->retrieveFromScrap(Ljava/util/ArrayList;I)Landroid/view/View;
 HSPLandroid/widget/AbsListView$RecycleBin;->scrapActiveViews()V
 HSPLandroid/widget/AbsListView$RecycleBin;->setViewTypeCount(I)V
 HSPLandroid/widget/AbsListView$RecycleBin;->shouldRecycleViewType(I)Z
+HSPLandroid/widget/AbsListView$SavedState;-><init>(Landroid/os/Parcelable;)V
+HSPLandroid/widget/AbsListView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/AbsListView$WindowRunnnable;-><init>(Landroid/widget/AbsListView;)V
+HSPLandroid/widget/AbsListView$WindowRunnnable;-><init>(Landroid/widget/AbsListView;Landroid/widget/AbsListView$1;)V
+HSPLandroid/widget/AbsListView$WindowRunnnable;->rememberWindowAttachCount()V
+HSPLandroid/widget/AbsListView$WindowRunnnable;->sameWindow()Z
 HSPLandroid/widget/AbsListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/AbsListView;->access$1602(Landroid/widget/AbsListView;Ljava/lang/Runnable;)Ljava/lang/Runnable;
+HSPLandroid/widget/AbsListView;->access$1700(Landroid/widget/AbsListView;)Z
+HSPLandroid/widget/AbsListView;->access$2300(Landroid/widget/AbsListView;)Landroid/os/StrictMode$Span;
+HSPLandroid/widget/AbsListView;->access$2302(Landroid/widget/AbsListView;Landroid/os/StrictMode$Span;)Landroid/os/StrictMode$Span;
+HSPLandroid/widget/AbsListView;->access$3000(Landroid/widget/AbsListView;)V
+HSPLandroid/widget/AbsListView;->access$3300(Landroid/widget/AbsListView;)I
+HSPLandroid/widget/AbsListView;->access$3400(Landroid/widget/AbsListView;)I
 HSPLandroid/widget/AbsListView;->access$4500(Landroid/widget/AbsListView;)Landroid/widget/FastScroller;
+HSPLandroid/widget/AbsListView;->access$4600(Landroid/widget/AbsListView;Landroid/view/View;Z)V
+HSPLandroid/widget/AbsListView;->access$600(Landroid/widget/AbsListView;)I
+HSPLandroid/widget/AbsListView;->access$700(Landroid/widget/AbsListView;)I
 HSPLandroid/widget/AbsListView;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
 HSPLandroid/widget/AbsListView;->clearChoices()V
+HSPLandroid/widget/AbsListView;->clearScrollingCache()V
 HSPLandroid/widget/AbsListView;->computeVerticalScrollExtent()I
 HSPLandroid/widget/AbsListView;->computeVerticalScrollOffset()I
 HSPLandroid/widget/AbsListView;->computeVerticalScrollRange()I
+HSPLandroid/widget/AbsListView;->contentFits()Z
 HSPLandroid/widget/AbsListView;->dismissPopup()V
 HSPLandroid/widget/AbsListView;->dispatchDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/AbsListView;->dispatchSetPressed(Z)V
 HSPLandroid/widget/AbsListView;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/widget/AbsListView;->drawSelector(Landroid/graphics/Canvas;)V
 HSPLandroid/widget/AbsListView;->drawableStateChanged()V
+HSPLandroid/widget/AbsListView;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
 HSPLandroid/widget/AbsListView;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
 HSPLandroid/widget/AbsListView;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/AbsListView$LayoutParams;
+HSPLandroid/widget/AbsListView;->getDrawableStateForSelector()[I
+HSPLandroid/widget/AbsListView;->getSelectedView()Landroid/view/View;
 HSPLandroid/widget/AbsListView;->getVerticalScrollbarWidth()I
 HSPLandroid/widget/AbsListView;->handleBoundsChange()V
 HSPLandroid/widget/AbsListView;->handleDataChanged()V
+HSPLandroid/widget/AbsListView;->handleScrollBarDragging(Landroid/view/MotionEvent;)Z
 HSPLandroid/widget/AbsListView;->hideSelector()V
 HSPLandroid/widget/AbsListView;->initAbsListView()V
+HSPLandroid/widget/AbsListView;->initOrResetVelocityTracker()V
+HSPLandroid/widget/AbsListView;->initVelocityTrackerIfNotExists()V
 HSPLandroid/widget/AbsListView;->internalSetPadding(IIII)V
 HSPLandroid/widget/AbsListView;->invokeOnItemScrollListener()V
 HSPLandroid/widget/AbsListView;->isFastScrollEnabled()Z
 HSPLandroid/widget/AbsListView;->isInFilterMode()Z
+HSPLandroid/widget/AbsListView;->isItemChecked(I)Z
 HSPLandroid/widget/AbsListView;->isVerticalScrollBarHidden()Z
 HSPLandroid/widget/AbsListView;->jumpDrawablesToCurrentState()V
 HSPLandroid/widget/AbsListView;->layoutChildren()V
 HSPLandroid/widget/AbsListView;->obtainView(I[Z)Landroid/view/View;
 HSPLandroid/widget/AbsListView;->onAttachedToWindow()V
+HSPLandroid/widget/AbsListView;->onCancelPendingInputEvents()V
 HSPLandroid/widget/AbsListView;->onDetachedFromWindow()V
+HSPLandroid/widget/AbsListView;->onFocusChanged(ZILandroid/graphics/Rect;)V
+HSPLandroid/widget/AbsListView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/widget/AbsListView;->onLayout(ZIIII)V
 HSPLandroid/widget/AbsListView;->onMeasure(II)V
+HSPLandroid/widget/AbsListView;->onOverScrolled(IIZZ)V
+HSPLandroid/widget/AbsListView;->onRestoreInstanceState(Landroid/os/Parcelable;)V
 HSPLandroid/widget/AbsListView;->onRtlPropertiesChanged(I)V
+HSPLandroid/widget/AbsListView;->onSaveInstanceState()Landroid/os/Parcelable;
 HSPLandroid/widget/AbsListView;->onSizeChanged(IIII)V
+HSPLandroid/widget/AbsListView;->onTouchDown(Landroid/view/MotionEvent;)V
+HSPLandroid/widget/AbsListView;->onTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/widget/AbsListView;->onTouchModeChanged(Z)V
+HSPLandroid/widget/AbsListView;->onTouchMove(Landroid/view/MotionEvent;Landroid/view/MotionEvent;)V
+HSPLandroid/widget/AbsListView;->onTouchUp(Landroid/view/MotionEvent;)V
 HSPLandroid/widget/AbsListView;->onWindowFocusChanged(Z)V
+HSPLandroid/widget/AbsListView;->performItemClick(Landroid/view/View;IJ)Z
+HSPLandroid/widget/AbsListView;->pointToPosition(II)I
+HSPLandroid/widget/AbsListView;->positionSelector(ILandroid/view/View;)V
+HSPLandroid/widget/AbsListView;->positionSelector(ILandroid/view/View;ZFF)V
+HSPLandroid/widget/AbsListView;->reconcileSelectedPosition()I
+HSPLandroid/widget/AbsListView;->recycleVelocityTracker()V
+HSPLandroid/widget/AbsListView;->reportScrollStateChange(I)V
 HSPLandroid/widget/AbsListView;->requestLayout()V
 HSPLandroid/widget/AbsListView;->resetList()V
+HSPLandroid/widget/AbsListView;->scrollIfNeeded(IILandroid/view/MotionEvent;)V
 HSPLandroid/widget/AbsListView;->setAdapter(Landroid/widget/ListAdapter;)V
 HSPLandroid/widget/AbsListView;->setCacheColorHint(I)V
 HSPLandroid/widget/AbsListView;->setChoiceMode(I)V
 HSPLandroid/widget/AbsListView;->setFastScrollAlwaysVisible(Z)V
 HSPLandroid/widget/AbsListView;->setFastScrollEnabled(Z)V
 HSPLandroid/widget/AbsListView;->setFastScrollStyle(I)V
+HSPLandroid/widget/AbsListView;->setFilterText(Ljava/lang/String;)V
 HSPLandroid/widget/AbsListView;->setFrame(IIII)Z
+HSPLandroid/widget/AbsListView;->setItemChecked(IZ)V
 HSPLandroid/widget/AbsListView;->setItemViewLayoutParams(Landroid/view/View;I)V
+HSPLandroid/widget/AbsListView;->setOnScrollListener(Landroid/widget/AbsListView$OnScrollListener;)V
 HSPLandroid/widget/AbsListView;->setScrollingCacheEnabled(Z)V
+HSPLandroid/widget/AbsListView;->setSelectionFromTop(II)V
 HSPLandroid/widget/AbsListView;->setSelector(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/widget/AbsListView;->setSmoothScrollbarEnabled(Z)V
 HSPLandroid/widget/AbsListView;->setStackFromBottom(Z)V
@@ -14328,30 +28593,192 @@
 HSPLandroid/widget/AbsListView;->shouldDisplayEdgeEffects()Z
 HSPLandroid/widget/AbsListView;->shouldDrawSelector()Z
 HSPLandroid/widget/AbsListView;->shouldShowSelector()Z
+HSPLandroid/widget/AbsListView;->startScrollIfNeeded(IILandroid/view/MotionEvent;)Z
 HSPLandroid/widget/AbsListView;->touchModeDrawsInPressedState()Z
+HSPLandroid/widget/AbsListView;->trackMotionScroll(II)Z
 HSPLandroid/widget/AbsListView;->updateScrollIndicators()V
 HSPLandroid/widget/AbsListView;->updateSelectorState()V
 HSPLandroid/widget/AbsListView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/widget/AbsSeekBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/AbsSeekBar;->applyThumbTint()V
+HSPLandroid/widget/AbsSeekBar;->applyTickMarkTint()V
+HSPLandroid/widget/AbsSeekBar;->drawThumb(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/AbsSeekBar;->drawTickMarks(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/AbsSeekBar;->drawTrack(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/AbsSeekBar;->drawableStateChanged()V
+HSPLandroid/widget/AbsSeekBar;->getScale()F
+HSPLandroid/widget/AbsSeekBar;->getThumb()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/AbsSeekBar;->getThumbOffset()I
+HSPLandroid/widget/AbsSeekBar;->growRectTo(Landroid/graphics/Rect;I)V
+HSPLandroid/widget/AbsSeekBar;->jumpDrawablesToCurrentState()V
+HSPLandroid/widget/AbsSeekBar;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/AbsSeekBar;->onMeasure(II)V
+HSPLandroid/widget/AbsSeekBar;->onResolveDrawables(I)V
+HSPLandroid/widget/AbsSeekBar;->onRtlPropertiesChanged(I)V
+HSPLandroid/widget/AbsSeekBar;->onSizeChanged(IIII)V
+HSPLandroid/widget/AbsSeekBar;->onVisualProgressChanged(IF)V
+HSPLandroid/widget/AbsSeekBar;->setKeyProgressIncrement(I)V
+HSPLandroid/widget/AbsSeekBar;->setMax(I)V
+HSPLandroid/widget/AbsSeekBar;->setMin(I)V
+HSPLandroid/widget/AbsSeekBar;->setThumb(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/AbsSeekBar;->setThumbOffset(I)V
+HSPLandroid/widget/AbsSeekBar;->setThumbPos(ILandroid/graphics/drawable/Drawable;FI)V
+HSPLandroid/widget/AbsSeekBar;->setThumbTintList(Landroid/content/res/ColorStateList;)V
+HSPLandroid/widget/AbsSeekBar;->setTickMark(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/AbsSeekBar;->updateGestureExclusionRects()V
+HSPLandroid/widget/AbsSeekBar;->updateThumbAndTrackPos(II)V
+HSPLandroid/widget/AbsSeekBar;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/widget/AbsSpinner$RecycleBin;-><init>(Landroid/widget/AbsSpinner;)V
+HSPLandroid/widget/AbsSpinner$RecycleBin;->clear()V
+HSPLandroid/widget/AbsSpinner$RecycleBin;->get(I)Landroid/view/View;
+HSPLandroid/widget/AbsSpinner$RecycleBin;->put(ILandroid/view/View;)V
+HSPLandroid/widget/AbsSpinner$SavedState$1;-><init>()V
+HSPLandroid/widget/AbsSpinner$SavedState;-><clinit>()V
+HSPLandroid/widget/AbsSpinner$SavedState;-><init>(Landroid/os/Parcelable;)V
+HSPLandroid/widget/AbsSpinner$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/AbsSpinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/AbsSpinner;->getAdapter()Landroid/widget/Adapter;
+HSPLandroid/widget/AbsSpinner;->getAdapter()Landroid/widget/SpinnerAdapter;
+HSPLandroid/widget/AbsSpinner;->getAutofillType()I
+HSPLandroid/widget/AbsSpinner;->getChildHeight(Landroid/view/View;)I
+HSPLandroid/widget/AbsSpinner;->getChildWidth(Landroid/view/View;)I
+HSPLandroid/widget/AbsSpinner;->getSelectedView()Landroid/view/View;
+HSPLandroid/widget/AbsSpinner;->initAbsSpinner()V
+HSPLandroid/widget/AbsSpinner;->onMeasure(II)V
+HSPLandroid/widget/AbsSpinner;->onSaveInstanceState()Landroid/os/Parcelable;
+HSPLandroid/widget/AbsSpinner;->recycleAllViews()V
+HSPLandroid/widget/AbsSpinner;->requestLayout()V
+HSPLandroid/widget/AbsSpinner;->setAdapter(Landroid/widget/SpinnerAdapter;)V
+HSPLandroid/widget/AbsSpinner;->setSelection(I)V
+HSPLandroid/widget/AbsoluteLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/AbsoluteLayout;->onLayout(ZIIII)V
+HSPLandroid/widget/AbsoluteLayout;->onMeasure(II)V
+HSPLandroid/widget/ActionMenuPresenter$1;-><init>(Landroid/widget/ActionMenuPresenter;)V
+HSPLandroid/widget/ActionMenuPresenter$2;-><init>(Landroid/widget/ActionMenuPresenter;)V
+HSPLandroid/widget/ActionMenuPresenter$2;->onViewAttachedToWindow(Landroid/view/View;)V
+HSPLandroid/widget/ActionMenuPresenter$2;->onViewDetachedFromWindow(Landroid/view/View;)V
+HSPLandroid/widget/ActionMenuPresenter$OverflowMenuButton$1;-><init>(Landroid/widget/ActionMenuPresenter$OverflowMenuButton;Landroid/view/View;Landroid/widget/ActionMenuPresenter;)V
+HSPLandroid/widget/ActionMenuPresenter$OverflowMenuButton;-><init>(Landroid/widget/ActionMenuPresenter;Landroid/content/Context;)V
+HSPLandroid/widget/ActionMenuPresenter$PopupPresenterCallback;-><init>(Landroid/widget/ActionMenuPresenter;)V
+HSPLandroid/widget/ActionMenuPresenter$PopupPresenterCallback;-><init>(Landroid/widget/ActionMenuPresenter;Landroid/widget/ActionMenuPresenter$1;)V
+HSPLandroid/widget/ActionMenuPresenter;-><init>(Landroid/content/Context;)V
+HSPLandroid/widget/ActionMenuPresenter;->dismissPopupMenus()Z
+HSPLandroid/widget/ActionMenuPresenter;->filterLeftoverView(Landroid/view/ViewGroup;I)Z
+HSPLandroid/widget/ActionMenuPresenter;->flagActionItems()Z
+HSPLandroid/widget/ActionMenuPresenter;->hideOverflowMenu()Z
+HSPLandroid/widget/ActionMenuPresenter;->hideSubMenus()Z
+HSPLandroid/widget/ActionMenuPresenter;->initForMenu(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;)V
+HSPLandroid/widget/ActionMenuPresenter;->isOverflowMenuShowing()Z
+HSPLandroid/widget/ActionMenuPresenter;->setExpandedActionViewsExclusive(Z)V
+HSPLandroid/widget/ActionMenuPresenter;->setMenuView(Landroid/widget/ActionMenuView;)V
+HSPLandroid/widget/ActionMenuPresenter;->setReserveOverflow(Z)V
+HSPLandroid/widget/ActionMenuPresenter;->shouldIncludeItem(ILcom/android/internal/view/menu/MenuItemImpl;)Z
+HSPLandroid/widget/ActionMenuPresenter;->updateMenuView(Z)V
+HSPLandroid/widget/ActionMenuView$ActionMenuPresenterCallback;-><init>(Landroid/widget/ActionMenuView;)V
+HSPLandroid/widget/ActionMenuView$ActionMenuPresenterCallback;-><init>(Landroid/widget/ActionMenuView;Landroid/widget/ActionMenuView$1;)V
+HSPLandroid/widget/ActionMenuView$LayoutParams;-><init>(II)V
+HSPLandroid/widget/ActionMenuView$MenuBuilderCallback;-><init>(Landroid/widget/ActionMenuView;)V
+HSPLandroid/widget/ActionMenuView$MenuBuilderCallback;-><init>(Landroid/widget/ActionMenuView;Landroid/widget/ActionMenuView$1;)V
+HSPLandroid/widget/ActionMenuView;-><init>(Landroid/content/Context;)V
+HSPLandroid/widget/ActionMenuView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/ActionMenuView;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
+HSPLandroid/widget/ActionMenuView;->dismissPopupMenus()V
+HSPLandroid/widget/ActionMenuView;->generateDefaultLayoutParams()Landroid/widget/ActionMenuView$LayoutParams;
+HSPLandroid/widget/ActionMenuView;->generateOverflowButtonLayoutParams()Landroid/widget/ActionMenuView$LayoutParams;
+HSPLandroid/widget/ActionMenuView;->getMenu()Landroid/view/Menu;
+HSPLandroid/widget/ActionMenuView;->hasDividerBeforeChildAt(I)Z
+HSPLandroid/widget/ActionMenuView;->initialize(Lcom/android/internal/view/menu/MenuBuilder;)V
+HSPLandroid/widget/ActionMenuView;->isOverflowMenuShowing()Z
+HSPLandroid/widget/ActionMenuView;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLandroid/widget/ActionMenuView;->onDetachedFromWindow()V
+HSPLandroid/widget/ActionMenuView;->onLayout(ZIIII)V
+HSPLandroid/widget/ActionMenuView;->onMeasure(II)V
+HSPLandroid/widget/ActionMenuView;->peekMenu()Lcom/android/internal/view/menu/MenuBuilder;
+HSPLandroid/widget/ActionMenuView;->setExpandedActionViewsExclusive(Z)V
+HSPLandroid/widget/ActionMenuView;->setMenuCallbacks(Lcom/android/internal/view/menu/MenuPresenter$Callback;Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
+HSPLandroid/widget/ActionMenuView;->setOnMenuItemClickListener(Landroid/widget/ActionMenuView$OnMenuItemClickListener;)V
+HSPLandroid/widget/ActionMenuView;->setOverflowReserved(Z)V
+HSPLandroid/widget/ActionMenuView;->setPopupTheme(I)V
 HSPLandroid/widget/AdapterView$AdapterDataSetObserver;-><init>(Landroid/widget/AdapterView;)V
 HSPLandroid/widget/AdapterView$AdapterDataSetObserver;->onChanged()V
 HSPLandroid/widget/AdapterView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 HSPLandroid/widget/AdapterView;->checkFocus()V
 HSPLandroid/widget/AdapterView;->checkSelectionChanged()V
+HSPLandroid/widget/AdapterView;->dispatchOnItemSelected()V
+HSPLandroid/widget/AdapterView;->dispatchRestoreInstanceState(Landroid/util/SparseArray;)V
 HSPLandroid/widget/AdapterView;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V
+HSPLandroid/widget/AdapterView;->fireOnSelected()V
+HSPLandroid/widget/AdapterView;->getCount()I
+HSPLandroid/widget/AdapterView;->getFirstVisiblePosition()I
 HSPLandroid/widget/AdapterView;->getItemIdAtPosition(I)J
+HSPLandroid/widget/AdapterView;->getLastVisiblePosition()I
+HSPLandroid/widget/AdapterView;->getSelectedItemId()J
+HSPLandroid/widget/AdapterView;->getSelectedItemPosition()I
+HSPLandroid/widget/AdapterView;->isInFilterMode()Z
 HSPLandroid/widget/AdapterView;->onDetachedFromWindow()V
 HSPLandroid/widget/AdapterView;->onLayout(ZIIII)V
+HSPLandroid/widget/AdapterView;->onProvideStructure(Landroid/view/ViewStructure;II)V
+HSPLandroid/widget/AdapterView;->performAccessibilityActionsOnSelected()V
+HSPLandroid/widget/AdapterView;->performItemClick(Landroid/view/View;IJ)Z
 HSPLandroid/widget/AdapterView;->rememberSyncState()V
+HSPLandroid/widget/AdapterView;->selectionChanged()V
+HSPLandroid/widget/AdapterView;->setEmptyView(Landroid/view/View;)V
+HSPLandroid/widget/AdapterView;->setFocusable(I)V
 HSPLandroid/widget/AdapterView;->setFocusableInTouchMode(Z)V
 HSPLandroid/widget/AdapterView;->setNextSelectedPositionInt(I)V
 HSPLandroid/widget/AdapterView;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V
+HSPLandroid/widget/AdapterView;->setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V
 HSPLandroid/widget/AdapterView;->setSelectedPositionInt(I)V
+HSPLandroid/widget/AdapterView;->updateEmptyStatus(Z)V
+HSPLandroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;I)V
 HSPLandroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;IILjava/util/List;)V
 HSPLandroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;IILjava/util/List;Z)V
+HSPLandroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;ILjava/util/List;)V
+HSPLandroid/widget/ArrayAdapter;->add(Ljava/lang/Object;)V
+HSPLandroid/widget/ArrayAdapter;->clear()V
+HSPLandroid/widget/ArrayAdapter;->createViewFromResource(Landroid/view/LayoutInflater;ILandroid/view/View;Landroid/view/ViewGroup;I)Landroid/view/View;
+HSPLandroid/widget/ArrayAdapter;->getAutofillOptions()[Ljava/lang/CharSequence;
+HSPLandroid/widget/ArrayAdapter;->getContext()Landroid/content/Context;
+HSPLandroid/widget/ArrayAdapter;->getCount()I
+HSPLandroid/widget/ArrayAdapter;->getDropDownViewTheme()Landroid/content/res/Resources$Theme;
+HSPLandroid/widget/ArrayAdapter;->getItem(I)Ljava/lang/Object;
+HSPLandroid/widget/ArrayAdapter;->getItemId(I)J
+HSPLandroid/widget/ArrayAdapter;->getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;
+HSPLandroid/widget/ArrayAdapter;->notifyDataSetChanged()V
+HSPLandroid/widget/ArrayAdapter;->setDropDownViewTheme(Landroid/content/res/Resources$Theme;)V
+HSPLandroid/widget/AutoCompleteTextView$DropDownItemClickListener;-><init>(Landroid/widget/AutoCompleteTextView;)V
+HSPLandroid/widget/AutoCompleteTextView$DropDownItemClickListener;-><init>(Landroid/widget/AutoCompleteTextView;Landroid/widget/AutoCompleteTextView$1;)V
+HSPLandroid/widget/AutoCompleteTextView$MyWatcher;-><init>(Landroid/widget/AutoCompleteTextView;)V
+HSPLandroid/widget/AutoCompleteTextView$MyWatcher;-><init>(Landroid/widget/AutoCompleteTextView;Landroid/widget/AutoCompleteTextView$1;)V
+HSPLandroid/widget/AutoCompleteTextView$MyWatcher;->afterTextChanged(Landroid/text/Editable;)V
+HSPLandroid/widget/AutoCompleteTextView$MyWatcher;->beforeTextChanged(Ljava/lang/CharSequence;III)V
+HSPLandroid/widget/AutoCompleteTextView$MyWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V
+HSPLandroid/widget/AutoCompleteTextView$PassThroughClickListener;-><init>(Landroid/widget/AutoCompleteTextView;)V
+HSPLandroid/widget/AutoCompleteTextView$PassThroughClickListener;-><init>(Landroid/widget/AutoCompleteTextView;Landroid/widget/AutoCompleteTextView$1;)V
+HSPLandroid/widget/AutoCompleteTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/AutoCompleteTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/AutoCompleteTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IILandroid/content/res/Resources$Theme;)V
+HSPLandroid/widget/AutoCompleteTextView;->dismissDropDown()V
+HSPLandroid/widget/AutoCompleteTextView;->getDropDownAnchor()I
+HSPLandroid/widget/AutoCompleteTextView;->getThreshold()I
+HSPLandroid/widget/AutoCompleteTextView;->isPopupShowing()Z
+HSPLandroid/widget/AutoCompleteTextView;->onAttachedToWindow()V
+HSPLandroid/widget/AutoCompleteTextView;->onDetachedFromWindow()V
+HSPLandroid/widget/AutoCompleteTextView;->onWindowFocusChanged(Z)V
+HSPLandroid/widget/AutoCompleteTextView;->refreshAutoCompleteResults()V
+HSPLandroid/widget/AutoCompleteTextView;->setCompletionHint(Ljava/lang/CharSequence;)V
+HSPLandroid/widget/AutoCompleteTextView;->setDropDownBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/AutoCompleteTextView;->setFrame(IIII)Z
+HSPLandroid/widget/AutoCompleteTextView;->setOnClickListener(Landroid/view/View$OnClickListener;)V
+HSPLandroid/widget/AutoCompleteTextView;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V
+HSPLandroid/widget/AutoCompleteTextView;->setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V
 HSPLandroid/widget/BaseAdapter;-><init>()V
 HSPLandroid/widget/BaseAdapter;->areAllItemsEnabled()Z
+HSPLandroid/widget/BaseAdapter;->getAutofillOptions()[Ljava/lang/CharSequence;
+HSPLandroid/widget/BaseAdapter;->getItemViewType(I)I
 HSPLandroid/widget/BaseAdapter;->getViewTypeCount()I
 HSPLandroid/widget/BaseAdapter;->hasStableIds()Z
+HSPLandroid/widget/BaseAdapter;->isEmpty()Z
 HSPLandroid/widget/BaseAdapter;->isEnabled(I)Z
 HSPLandroid/widget/BaseAdapter;->notifyDataSetChanged()V
 HSPLandroid/widget/BaseAdapter;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
@@ -14359,11 +28786,48 @@
 HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/Button;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HSPLandroid/widget/CheckBox;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/CheckBox;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/CheckBox;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/CheckBox;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HSPLandroid/widget/CheckedTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/CheckedTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/CheckedTextView;->applyCheckMarkTint()V
+HSPLandroid/widget/CheckedTextView;->drawableStateChanged()V
+HSPLandroid/widget/CheckedTextView;->internalSetPadding(IIII)V
+HSPLandroid/widget/CheckedTextView;->isCheckMarkAtStart()Z
+HSPLandroid/widget/CheckedTextView;->isChecked()Z
+HSPLandroid/widget/CheckedTextView;->jumpDrawablesToCurrentState()V
+HSPLandroid/widget/CheckedTextView;->onCreateDrawableState(I)[I
+HSPLandroid/widget/CheckedTextView;->onRtlPropertiesChanged(I)V
+HSPLandroid/widget/CheckedTextView;->setBasePadding(Z)V
+HSPLandroid/widget/CheckedTextView;->setCheckMarkDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/CheckedTextView;->setCheckMarkDrawableInternal(Landroid/graphics/drawable/Drawable;I)V
+HSPLandroid/widget/CheckedTextView;->setChecked(Z)V
+HSPLandroid/widget/CheckedTextView;->updatePadding()V
+HSPLandroid/widget/CheckedTextView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/widget/Chronometer;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/Chronometer;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/Chronometer;->onDetachedFromWindow()V
+HSPLandroid/widget/Chronometer;->onVisibilityChanged(Landroid/view/View;I)V
+HSPLandroid/widget/Chronometer;->onWindowVisibilityChanged(I)V
+HSPLandroid/widget/Chronometer;->setCountDown(Z)V
+HSPLandroid/widget/Chronometer;->setFormat(Ljava/lang/String;)V
+HSPLandroid/widget/Chronometer;->updateRunning()V
+HSPLandroid/widget/Chronometer;->updateText(J)V
+HSPLandroid/widget/CompoundButton$SavedState$1;-><init>()V
+HSPLandroid/widget/CompoundButton$SavedState;-><clinit>()V
+HSPLandroid/widget/CompoundButton$SavedState;-><init>(Landroid/os/Parcelable;)V
+HSPLandroid/widget/CompoundButton$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/CompoundButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/CompoundButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 HSPLandroid/widget/CompoundButton;->applyButtonTint()V
+HSPLandroid/widget/CompoundButton;->drawableHotspotChanged(FF)V
 HSPLandroid/widget/CompoundButton;->drawableStateChanged()V
 HSPLandroid/widget/CompoundButton;->getAutofillType()I
+HSPLandroid/widget/CompoundButton;->getAutofillValue()Landroid/view/autofill/AutofillValue;
+HSPLandroid/widget/CompoundButton;->getButtonDrawable()Landroid/graphics/drawable/Drawable;
 HSPLandroid/widget/CompoundButton;->getButtonStateDescription()Ljava/lang/CharSequence;
 HSPLandroid/widget/CompoundButton;->getCompoundPaddingLeft()I
 HSPLandroid/widget/CompoundButton;->getCompoundPaddingRight()I
@@ -14372,15 +28836,50 @@
 HSPLandroid/widget/CompoundButton;->jumpDrawablesToCurrentState()V
 HSPLandroid/widget/CompoundButton;->onCreateDrawableState(I)[I
 HSPLandroid/widget/CompoundButton;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/CompoundButton;->onProvideStructure(Landroid/view/ViewStructure;II)V
 HSPLandroid/widget/CompoundButton;->onResolveDrawables(I)V
+HSPLandroid/widget/CompoundButton;->onSaveInstanceState()Landroid/os/Parcelable;
+HSPLandroid/widget/CompoundButton;->performClick()Z
+HSPLandroid/widget/CompoundButton;->setButtonDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/CompoundButton;->setButtonTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/widget/CompoundButton;->setChecked(Z)V
 HSPLandroid/widget/CompoundButton;->setDefaultStateDescritption()V
 HSPLandroid/widget/CompoundButton;->setOnCheckedChangeListener(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V
 HSPLandroid/widget/CompoundButton;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/widget/DateTimeView$ReceiverInfo$1;-><init>(Landroid/widget/DateTimeView$ReceiverInfo;)V
+HSPLandroid/widget/DateTimeView$ReceiverInfo$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLandroid/widget/DateTimeView$ReceiverInfo$2;-><init>(Landroid/widget/DateTimeView$ReceiverInfo;Landroid/os/Handler;)V
+HSPLandroid/widget/DateTimeView$ReceiverInfo;-><init>()V
+HSPLandroid/widget/DateTimeView$ReceiverInfo;-><init>(Landroid/widget/DateTimeView$1;)V
+HSPLandroid/widget/DateTimeView$ReceiverInfo;->addView(Landroid/widget/DateTimeView;)V
+HSPLandroid/widget/DateTimeView$ReceiverInfo;->getApplicationContextIfAvailable(Landroid/content/Context;)Landroid/content/Context;
+HSPLandroid/widget/DateTimeView$ReceiverInfo;->getSoonestUpdateTime()J
+HSPLandroid/widget/DateTimeView$ReceiverInfo;->lambda$updateAll$0(Landroid/widget/DateTimeView;)V
+HSPLandroid/widget/DateTimeView$ReceiverInfo;->register(Landroid/content/Context;)V
+HSPLandroid/widget/DateTimeView$ReceiverInfo;->removeView(Landroid/widget/DateTimeView;)V
+HSPLandroid/widget/DateTimeView$ReceiverInfo;->setHandler(Landroid/os/Handler;)V
+HSPLandroid/widget/DateTimeView$ReceiverInfo;->updateAll()V
+HSPLandroid/widget/DateTimeView;-><clinit>()V
+HSPLandroid/widget/DateTimeView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/DateTimeView;->access$100(Landroid/widget/DateTimeView;)J
+HSPLandroid/widget/DateTimeView;->clearFormatAndUpdate()V
+HSPLandroid/widget/DateTimeView;->onAttachedToWindow()V
+HSPLandroid/widget/DateTimeView;->onDetachedFromWindow()V
+HSPLandroid/widget/DateTimeView;->setReceiverHandler(Landroid/os/Handler;)V
+HSPLandroid/widget/DateTimeView;->setShowRelativeTime(Z)V
+HSPLandroid/widget/DateTimeView;->setTime(J)V
+HSPLandroid/widget/DateTimeView;->setVisibility(I)V
+HSPLandroid/widget/DateTimeView;->toLocalDateTime(JLjava/time/ZoneId;)Ljava/time/LocalDateTime;
+HSPLandroid/widget/DateTimeView;->update()V
+HSPLandroid/widget/DateTimeView;->updateNowText()V
+HSPLandroid/widget/DateTimeView;->updateRelativeTime()V
 HSPLandroid/widget/EdgeEffect;-><init>(Landroid/content/Context;)V
 HSPLandroid/widget/EdgeEffect;->draw(Landroid/graphics/Canvas;)Z
+HSPLandroid/widget/EdgeEffect;->finish()V
+HSPLandroid/widget/EdgeEffect;->getMaxHeight()I
 HSPLandroid/widget/EdgeEffect;->isFinished()Z
 HSPLandroid/widget/EdgeEffect;->onAbsorb(I)V
+HSPLandroid/widget/EdgeEffect;->onPull(F)V
 HSPLandroid/widget/EdgeEffect;->onPull(FF)V
 HSPLandroid/widget/EdgeEffect;->onRelease()V
 HSPLandroid/widget/EdgeEffect;->setSize(II)V
@@ -14388,44 +28887,133 @@
 HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/EditText;->getAccessibilityClassName()Ljava/lang/CharSequence;
 HSPLandroid/widget/EditText;->getDefaultEditable()Z
 HSPLandroid/widget/EditText;->getDefaultMovementMethod()Landroid/text/method/MovementMethod;
 HSPLandroid/widget/EditText;->getFreezesText()Z
 HSPLandroid/widget/EditText;->getText()Landroid/text/Editable;
 HSPLandroid/widget/EditText;->getText()Ljava/lang/CharSequence;
+HSPLandroid/widget/EditText;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)V
+HSPLandroid/widget/EditText;->setSelection(I)V
 HSPLandroid/widget/EditText;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V
 HSPLandroid/widget/EditText;->supportsAutoSizeText()Z
 HSPLandroid/widget/Editor$1;-><init>(Landroid/widget/Editor;)V
+HSPLandroid/widget/Editor$1;->run()V
 HSPLandroid/widget/Editor$2;-><init>(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor$2;->onDraw()V
 HSPLandroid/widget/Editor$3;-><init>(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor$5;-><init>(Landroid/widget/Editor;)V
+HSPLandroid/widget/Editor$Blink;-><init>(Landroid/widget/Editor;)V
+HSPLandroid/widget/Editor$Blink;-><init>(Landroid/widget/Editor;Landroid/widget/Editor$1;)V
 HSPLandroid/widget/Editor$Blink;->cancel()V
 HSPLandroid/widget/Editor$Blink;->run()V
+HSPLandroid/widget/Editor$Blink;->uncancel()V
+HSPLandroid/widget/Editor$CorrectionHighlighter;-><init>(Landroid/widget/Editor;)V
+HSPLandroid/widget/Editor$CorrectionHighlighter;->draw(Landroid/graphics/Canvas;I)V
+HSPLandroid/widget/Editor$CorrectionHighlighter;->highlight(Landroid/view/inputmethod/CorrectionInfo;)V
+HSPLandroid/widget/Editor$CorrectionHighlighter;->invalidate(Z)V
+HSPLandroid/widget/Editor$CorrectionHighlighter;->stopAnimation()V
+HSPLandroid/widget/Editor$CorrectionHighlighter;->updatePaint()Z
+HSPLandroid/widget/Editor$CorrectionHighlighter;->updatePath()Z
 HSPLandroid/widget/Editor$CursorAnchorInfoNotifier;-><init>(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor$CursorAnchorInfoNotifier;-><init>(Landroid/widget/Editor;Landroid/widget/Editor$1;)V
 HSPLandroid/widget/Editor$CursorAnchorInfoNotifier;->updatePosition(IIZZ)V
+HSPLandroid/widget/Editor$EditOperation;-><init>(Landroid/widget/Editor;Ljava/lang/String;ILjava/lang/String;Z)V
+HSPLandroid/widget/Editor$EditOperation;->access$8300(Landroid/widget/Editor$EditOperation;)Ljava/lang/String;
+HSPLandroid/widget/Editor$EditOperation;->access$8400(Landroid/widget/Editor$EditOperation;)Ljava/lang/String;
+HSPLandroid/widget/Editor$EditOperation;->access$8600(Landroid/widget/Editor$EditOperation;Landroid/widget/Editor$EditOperation;)Z
+HSPLandroid/widget/Editor$EditOperation;->commit()V
+HSPLandroid/widget/Editor$EditOperation;->forceMergeWith(Landroid/widget/Editor$EditOperation;)V
+HSPLandroid/widget/Editor$EditOperation;->getNewTextEnd()I
+HSPLandroid/widget/Editor$EditOperation;->getOldTextEnd()I
+HSPLandroid/widget/Editor$EditOperation;->mergeDeleteWith(Landroid/widget/Editor$EditOperation;)Z
+HSPLandroid/widget/Editor$EditOperation;->mergeInsertWith(Landroid/widget/Editor$EditOperation;)Z
+HSPLandroid/widget/Editor$EditOperation;->mergeReplaceWith(Landroid/widget/Editor$EditOperation;)Z
+HSPLandroid/widget/Editor$EditOperation;->mergeWith(Landroid/widget/Editor$EditOperation;)Z
+HSPLandroid/widget/Editor$EditOperation;->modifyText(Landroid/text/Editable;IILjava/lang/CharSequence;II)V
+HSPLandroid/widget/Editor$EditOperation;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/Editor$HandleView;-><init>(Landroid/widget/Editor;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;I)V
+HSPLandroid/widget/Editor$HandleView;-><init>(Landroid/widget/Editor;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;ILandroid/widget/Editor$1;)V
+HSPLandroid/widget/Editor$HandleView;->addPositionToTouchUpFilter(I)V
+HSPLandroid/widget/Editor$HandleView;->dismiss()V
+HSPLandroid/widget/Editor$HandleView;->getCursorHorizontalPosition(Landroid/text/Layout;I)I
+HSPLandroid/widget/Editor$HandleView;->getCursorOffset()I
+HSPLandroid/widget/Editor$HandleView;->getHorizontal(Landroid/text/Layout;I)F
+HSPLandroid/widget/Editor$HandleView;->getHorizontalOffset()I
+HSPLandroid/widget/Editor$HandleView;->getPreferredHeight()I
+HSPLandroid/widget/Editor$HandleView;->getPreferredWidth()I
+HSPLandroid/widget/Editor$HandleView;->hide()V
+HSPLandroid/widget/Editor$HandleView;->invalidate()V
+HSPLandroid/widget/Editor$HandleView;->isAtRtlRun(Landroid/text/Layout;I)Z
+HSPLandroid/widget/Editor$HandleView;->isDragging()Z
+HSPLandroid/widget/Editor$HandleView;->isShowing()Z
+HSPLandroid/widget/Editor$HandleView;->onDetached()V
+HSPLandroid/widget/Editor$HandleView;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/Editor$HandleView;->onMeasure(II)V
+HSPLandroid/widget/Editor$HandleView;->onSizeChanged(IIII)V
+HSPLandroid/widget/Editor$HandleView;->positionAtCursorOffset(IZZ)V
+HSPLandroid/widget/Editor$HandleView;->setDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/Editor$HandleView;->shouldShow()Z
+HSPLandroid/widget/Editor$HandleView;->show()V
+HSPLandroid/widget/Editor$HandleView;->updateDrawable(Z)V
+HSPLandroid/widget/Editor$HandleView;->updatePosition(IIZZ)V
 HSPLandroid/widget/Editor$InputContentType;-><init>()V
+HSPLandroid/widget/Editor$InputMethodState;-><init>()V
+HSPLandroid/widget/Editor$InsertionHandleView$1;-><init>(Landroid/widget/Editor$InsertionHandleView;)V
+HSPLandroid/widget/Editor$InsertionHandleView;-><init>(Landroid/widget/Editor;Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/Editor$InsertionHandleView;->access$7000(Landroid/widget/Editor$InsertionHandleView;)V
+HSPLandroid/widget/Editor$InsertionHandleView;->dismiss()V
+HSPLandroid/widget/Editor$InsertionHandleView;->getCurrentCursorOffset()I
+HSPLandroid/widget/Editor$InsertionHandleView;->getCursorHorizontalPosition(Landroid/text/Layout;I)I
+HSPLandroid/widget/Editor$InsertionHandleView;->getCursorOffset()I
+HSPLandroid/widget/Editor$InsertionHandleView;->getHorizontalGravity(Z)I
+HSPLandroid/widget/Editor$InsertionHandleView;->getHotspotX(Landroid/graphics/drawable/Drawable;Z)I
+HSPLandroid/widget/Editor$InsertionHandleView;->hideAfterDelay()V
+HSPLandroid/widget/Editor$InsertionHandleView;->isShowing()Z
+HSPLandroid/widget/Editor$InsertionHandleView;->onDetached()V
+HSPLandroid/widget/Editor$InsertionHandleView;->onMeasure(II)V
+HSPLandroid/widget/Editor$InsertionHandleView;->removeHiderCallback()V
+HSPLandroid/widget/Editor$InsertionHandleView;->show()V
+HSPLandroid/widget/Editor$InsertionHandleView;->updateDrawable(Z)V
+HSPLandroid/widget/Editor$InsertionHandleView;->updateSelection(I)V
 HSPLandroid/widget/Editor$InsertionPointCursorController;-><init>(Landroid/widget/Editor;)V
+HSPLandroid/widget/Editor$InsertionPointCursorController;->access$7800(Landroid/widget/Editor$InsertionPointCursorController;)V
+HSPLandroid/widget/Editor$InsertionPointCursorController;->getHandle()Landroid/widget/Editor$InsertionHandleView;
 HSPLandroid/widget/Editor$InsertionPointCursorController;->hide()V
+HSPLandroid/widget/Editor$InsertionPointCursorController;->invalidateHandle()V
 HSPLandroid/widget/Editor$InsertionPointCursorController;->isActive()Z
 HSPLandroid/widget/Editor$InsertionPointCursorController;->isCursorBeingModified()Z
 HSPLandroid/widget/Editor$InsertionPointCursorController;->onDetached()V
+HSPLandroid/widget/Editor$InsertionPointCursorController;->onTouchEvent(Landroid/view/MotionEvent;)V
+HSPLandroid/widget/Editor$InsertionPointCursorController;->reloadHandleDrawable()V
+HSPLandroid/widget/Editor$InsertionPointCursorController;->show()V
+HSPLandroid/widget/Editor$MagnifierMotionAnimator;-><init>(Landroid/widget/Magnifier;)V
+HSPLandroid/widget/Editor$MagnifierMotionAnimator;-><init>(Landroid/widget/Magnifier;Landroid/widget/Editor$1;)V
+HSPLandroid/widget/Editor$MagnifierMotionAnimator;->access$100(Landroid/widget/Editor$MagnifierMotionAnimator;)V
+HSPLandroid/widget/Editor$MagnifierMotionAnimator;->update()V
 HSPLandroid/widget/Editor$PositionListener;-><init>(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor$PositionListener;-><init>(Landroid/widget/Editor;Landroid/widget/Editor$1;)V
 HSPLandroid/widget/Editor$PositionListener;->addSubscriber(Landroid/widget/Editor$TextViewPositionListener;Z)V
 HSPLandroid/widget/Editor$PositionListener;->onPreDraw()Z
+HSPLandroid/widget/Editor$PositionListener;->onScrollChanged()V
 HSPLandroid/widget/Editor$PositionListener;->removeSubscriber(Landroid/widget/Editor$TextViewPositionListener;)V
 HSPLandroid/widget/Editor$PositionListener;->updatePosition()V
 HSPLandroid/widget/Editor$ProcessTextIntentActionsHandler;-><init>(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor$ProcessTextIntentActionsHandler;-><init>(Landroid/widget/Editor;Landroid/widget/Editor$1;)V
 HSPLandroid/widget/Editor$SelectionModifierCursorController;-><init>(Landroid/widget/Editor;)V
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->access$7900(Landroid/widget/Editor$SelectionModifierCursorController;)V
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->getMinTouchOffset()I
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->hide()V
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->invalidateHandles()V
 HSPLandroid/widget/Editor$SelectionModifierCursorController;->isCursorBeingModified()Z
 HSPLandroid/widget/Editor$SelectionModifierCursorController;->isDragAcceleratorActive()Z
 HSPLandroid/widget/Editor$SelectionModifierCursorController;->isSelectionStartDragged()Z
 HSPLandroid/widget/Editor$SelectionModifierCursorController;->onDetached()V
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->onTouchEvent(Landroid/view/MotionEvent;)V
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->reloadHandleDrawables()V
 HSPLandroid/widget/Editor$SelectionModifierCursorController;->resetDragAcceleratorState()V
 HSPLandroid/widget/Editor$SelectionModifierCursorController;->resetTouchOffsets()V
+HSPLandroid/widget/Editor$SelectionModifierCursorController;->updateSelection(Landroid/view/MotionEvent;)V
 HSPLandroid/widget/Editor$SpanController;-><init>(Landroid/widget/Editor;)V
 HSPLandroid/widget/Editor$SpanController;-><init>(Landroid/widget/Editor;Landroid/widget/Editor$1;)V
 HSPLandroid/widget/Editor$SpanController;->hide()V
@@ -14444,11 +29032,31 @@
 HSPLandroid/widget/Editor$UndoInputFilter;->canUndoEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Z
 HSPLandroid/widget/Editor$UndoInputFilter;->endBatchEdit()V
 HSPLandroid/widget/Editor$UndoInputFilter;->filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;
+HSPLandroid/widget/Editor$UndoInputFilter;->freezeLastEdit()V
+HSPLandroid/widget/Editor$UndoInputFilter;->getLastEdit()Landroid/widget/Editor$EditOperation;
+HSPLandroid/widget/Editor$UndoInputFilter;->handleEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;IIZ)V
+HSPLandroid/widget/Editor$UndoInputFilter;->isComposition(Ljava/lang/CharSequence;)Z
+HSPLandroid/widget/Editor$UndoInputFilter;->isInTextWatcher()Z
+HSPLandroid/widget/Editor$UndoInputFilter;->recordEdit(Landroid/widget/Editor$EditOperation;I)V
+HSPLandroid/widget/Editor$UndoInputFilter;->restoreInstanceState(Landroid/os/Parcel;)V
 HSPLandroid/widget/Editor$UndoInputFilter;->saveInstanceState(Landroid/os/Parcel;)V
 HSPLandroid/widget/Editor;-><init>(Landroid/widget/TextView;)V
 HSPLandroid/widget/Editor;->access$000(Landroid/widget/Editor;)Landroid/widget/Editor$MagnifierMotionAnimator;
+HSPLandroid/widget/Editor;->access$1200(Landroid/widget/Editor;)Z
 HSPLandroid/widget/Editor;->access$1600(Landroid/widget/Editor;)V
+HSPLandroid/widget/Editor;->access$2100(Landroid/widget/Editor;)Z
+HSPLandroid/widget/Editor;->access$2200(Landroid/widget/Editor;)Landroid/widget/Editor$PositionListener;
 HSPLandroid/widget/Editor;->access$300(Landroid/widget/Editor;)Landroid/widget/TextView;
+HSPLandroid/widget/Editor;->access$3700(Landroid/widget/Editor;)Landroid/graphics/Rect;
+HSPLandroid/widget/Editor;->access$4600(Landroid/widget/Editor;Landroid/graphics/drawable/Drawable;F)I
+HSPLandroid/widget/Editor;->access$4700(Landroid/widget/Editor;)Landroid/view/inputmethod/InputMethodManager;
+HSPLandroid/widget/Editor;->access$6100(Landroid/widget/Editor;)Z
+HSPLandroid/widget/Editor;->access$6200(Landroid/widget/Editor;)Landroid/widget/EditorTouchState;
+HSPLandroid/widget/Editor;->access$7100(Landroid/widget/Editor;)Ljava/lang/Runnable;
+HSPLandroid/widget/Editor;->access$7200(Landroid/widget/Editor;)Z
+HSPLandroid/widget/Editor;->access$8100(Landroid/widget/Editor;)Landroid/content/UndoManager;
+HSPLandroid/widget/Editor;->access$8500(Landroid/widget/Editor;)Landroid/content/UndoOwner;
+HSPLandroid/widget/Editor;->access$8700(Ljava/lang/CharSequence;II)Z
 HSPLandroid/widget/Editor;->addSpanWatchers(Landroid/text/Spannable;)V
 HSPLandroid/widget/Editor;->adjustInputType(ZZZZ)V
 HSPLandroid/widget/Editor;->beginBatchEdit()V
@@ -14457,6 +29065,7 @@
 HSPLandroid/widget/Editor;->createInputMethodStateIfNeeded()V
 HSPLandroid/widget/Editor;->discardTextDisplayLists()V
 HSPLandroid/widget/Editor;->downgradeEasyCorrectionSpans()V
+HSPLandroid/widget/Editor;->drawCursor(Landroid/graphics/Canvas;I)V
 HSPLandroid/widget/Editor;->drawHardwareAccelerated(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
 HSPLandroid/widget/Editor;->drawHardwareAcceleratedInner(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I[I[IIII)I
 HSPLandroid/widget/Editor;->endBatchEdit()V
@@ -14474,39 +29083,73 @@
 HSPLandroid/widget/Editor;->getSelectionController()Landroid/widget/Editor$SelectionModifierCursorController;
 HSPLandroid/widget/Editor;->getTextActionMode()Landroid/view/ActionMode;
 HSPLandroid/widget/Editor;->getTextView()Landroid/widget/TextView;
+HSPLandroid/widget/Editor;->hasInsertionController()Z
+HSPLandroid/widget/Editor;->hasSelectionController()Z
 HSPLandroid/widget/Editor;->hideCursorAndSpanControllers()V
 HSPLandroid/widget/Editor;->hideCursorControllers()V
 HSPLandroid/widget/Editor;->hideInsertionPointCursorController()V
 HSPLandroid/widget/Editor;->hideSpanControllers()V
 HSPLandroid/widget/Editor;->invalidateHandlesAndActionMode()V
 HSPLandroid/widget/Editor;->invalidateTextDisplayList()V
+HSPLandroid/widget/Editor;->invalidateTextDisplayList(Landroid/text/Layout;II)V
+HSPLandroid/widget/Editor;->isCursorInsideEasyCorrectionSpan()Z
 HSPLandroid/widget/Editor;->isCursorVisible()Z
+HSPLandroid/widget/Editor;->isValidRange(Ljava/lang/CharSequence;II)Z
 HSPLandroid/widget/Editor;->loadCursorDrawable()V
+HSPLandroid/widget/Editor;->loadHandleDrawables(Z)V
 HSPLandroid/widget/Editor;->makeBlink()V
 HSPLandroid/widget/Editor;->onAttachedToWindow()V
+HSPLandroid/widget/Editor;->onCommitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V
 HSPLandroid/widget/Editor;->onDetachedFromWindow()V
 HSPLandroid/widget/Editor;->onDraw(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
 HSPLandroid/widget/Editor;->onFocusChanged(ZI)V
 HSPLandroid/widget/Editor;->onLocaleChanged()V
 HSPLandroid/widget/Editor;->onScreenStateChanged(I)V
+HSPLandroid/widget/Editor;->onScrollChanged()V
+HSPLandroid/widget/Editor;->onTouchEvent(Landroid/view/MotionEvent;)V
+HSPLandroid/widget/Editor;->onTouchUpEvent(Landroid/view/MotionEvent;)V
 HSPLandroid/widget/Editor;->onWindowFocusChanged(Z)V
 HSPLandroid/widget/Editor;->prepareCursorControllers()V
 HSPLandroid/widget/Editor;->refreshTextActionMode()V
 HSPLandroid/widget/Editor;->reportExtractedText()Z
+HSPLandroid/widget/Editor;->restoreInstanceState(Landroid/os/ParcelableParcel;)V
 HSPLandroid/widget/Editor;->resumeBlink()V
 HSPLandroid/widget/Editor;->saveInstanceState()Landroid/os/ParcelableParcel;
 HSPLandroid/widget/Editor;->sendOnTextChanged(III)V
 HSPLandroid/widget/Editor;->sendUpdateSelection()V
 HSPLandroid/widget/Editor;->setFrame()V
 HSPLandroid/widget/Editor;->shouldBlink()Z
+HSPLandroid/widget/Editor;->shouldFilterOutTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/widget/Editor;->shouldRenderCursor()Z
 HSPLandroid/widget/Editor;->stopTextActionMode()V
 HSPLandroid/widget/Editor;->stopTextActionModeWithPreservingSelection()V
 HSPLandroid/widget/Editor;->suspendBlink()V
 HSPLandroid/widget/Editor;->updateCursorPosition()V
 HSPLandroid/widget/Editor;->updateCursorPosition(IIF)V
+HSPLandroid/widget/Editor;->updateFloatingToolbarVisibility(Landroid/view/MotionEvent;)V
 HSPLandroid/widget/Editor;->updateSpellCheckSpans(IIZ)V
 HSPLandroid/widget/EditorTouchState;-><init>()V
+HSPLandroid/widget/EditorTouchState;->isMovedEnoughForDrag()Z
+HSPLandroid/widget/EditorTouchState;->isMultiTap()Z
+HSPLandroid/widget/EditorTouchState;->isMultiTapInSameArea()Z
+HSPLandroid/widget/EditorTouchState;->update(Landroid/view/MotionEvent;Landroid/view/ViewConfiguration;)V
+HSPLandroid/widget/Filter$FilterResults;-><init>()V
+HSPLandroid/widget/Filter$RequestArguments;-><init>()V
+HSPLandroid/widget/Filter$RequestArguments;-><init>(Landroid/widget/Filter$1;)V
+HSPLandroid/widget/Filter$RequestHandler;-><init>(Landroid/widget/Filter;Landroid/os/Looper;)V
+HSPLandroid/widget/Filter$RequestHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/widget/Filter$ResultsHandler;-><init>(Landroid/widget/Filter;)V
+HSPLandroid/widget/Filter$ResultsHandler;-><init>(Landroid/widget/Filter;Landroid/widget/Filter$1;)V
+HSPLandroid/widget/Filter$ResultsHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/widget/Filter;-><init>()V
+HSPLandroid/widget/Filter;->access$200(Landroid/widget/Filter;)Landroid/os/Handler;
+HSPLandroid/widget/Filter;->access$300(Landroid/widget/Filter;)Ljava/lang/Object;
+HSPLandroid/widget/Filter;->access$400(Landroid/widget/Filter;)Landroid/os/Handler;
+HSPLandroid/widget/Filter;->access$402(Landroid/widget/Filter;Landroid/os/Handler;)Landroid/os/Handler;
+HSPLandroid/widget/Filter;->filter(Ljava/lang/CharSequence;Landroid/widget/Filter$FilterListener;)V
+HSPLandroid/widget/ForwardingListener;-><init>(Landroid/view/View;)V
+HSPLandroid/widget/ForwardingListener;->onViewAttachedToWindow(Landroid/view/View;)V
+HSPLandroid/widget/ForwardingListener;->onViewDetachedFromWindow(Landroid/view/View;)V
 HSPLandroid/widget/FrameLayout$LayoutParams;-><init>(II)V
 HSPLandroid/widget/FrameLayout$LayoutParams;-><init>(III)V
 HSPLandroid/widget/FrameLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
@@ -14531,41 +29174,218 @@
 HSPLandroid/widget/FrameLayout;->onLayout(ZIIII)V
 HSPLandroid/widget/FrameLayout;->onMeasure(II)V
 HSPLandroid/widget/FrameLayout;->setForegroundGravity(I)V
+HSPLandroid/widget/FrameLayout;->setMeasureAllChildren(Z)V
 HSPLandroid/widget/FrameLayout;->shouldDelayChildPressedState()Z
+HSPLandroid/widget/GridLayout$3;->getAlignmentValue(Landroid/view/View;II)I
+HSPLandroid/widget/GridLayout$3;->getGravityOffset(Landroid/view/View;I)I
+HSPLandroid/widget/GridLayout$7$1;-><init>(Landroid/widget/GridLayout$7;)V
+HSPLandroid/widget/GridLayout$7$1;->getOffset(Landroid/widget/GridLayout;Landroid/view/View;Landroid/widget/GridLayout$Alignment;IZ)I
+HSPLandroid/widget/GridLayout$7$1;->include(II)V
+HSPLandroid/widget/GridLayout$7$1;->reset()V
+HSPLandroid/widget/GridLayout$7$1;->size(Z)I
+HSPLandroid/widget/GridLayout$7;->getAlignmentValue(Landroid/view/View;II)I
+HSPLandroid/widget/GridLayout$7;->getBounds()Landroid/widget/GridLayout$Bounds;
+HSPLandroid/widget/GridLayout$7;->getGravityOffset(Landroid/view/View;I)I
+HSPLandroid/widget/GridLayout$Alignment;->getBounds()Landroid/widget/GridLayout$Bounds;
+HSPLandroid/widget/GridLayout$Alignment;->getSizeInCell(Landroid/view/View;II)I
+HSPLandroid/widget/GridLayout$Arc;-><init>(Landroid/widget/GridLayout$Interval;Landroid/widget/GridLayout$MutableInt;)V
+HSPLandroid/widget/GridLayout$Assoc;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
+HSPLandroid/widget/GridLayout$Assoc;->of(Ljava/lang/Class;Ljava/lang/Class;)Landroid/widget/GridLayout$Assoc;
+HSPLandroid/widget/GridLayout$Assoc;->pack()Landroid/widget/GridLayout$PackedMap;
+HSPLandroid/widget/GridLayout$Assoc;->put(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLandroid/widget/GridLayout$Axis$1;-><init>(Landroid/widget/GridLayout$Axis;[Landroid/widget/GridLayout$Arc;)V
+HSPLandroid/widget/GridLayout$Axis$1;->sort()[Landroid/widget/GridLayout$Arc;
+HSPLandroid/widget/GridLayout$Axis$1;->walk(I)V
+HSPLandroid/widget/GridLayout$Axis;-><init>(Landroid/widget/GridLayout;Z)V
+HSPLandroid/widget/GridLayout$Axis;-><init>(Landroid/widget/GridLayout;ZLandroid/widget/GridLayout$1;)V
+HSPLandroid/widget/GridLayout$Axis;->addComponentSizes(Ljava/util/List;Landroid/widget/GridLayout$PackedMap;)V
+HSPLandroid/widget/GridLayout$Axis;->calculateMaxIndex()I
+HSPLandroid/widget/GridLayout$Axis;->computeArcs()V
+HSPLandroid/widget/GridLayout$Axis;->computeGroupBounds()V
+HSPLandroid/widget/GridLayout$Axis;->computeHasWeights()Z
+HSPLandroid/widget/GridLayout$Axis;->computeLinks(Landroid/widget/GridLayout$PackedMap;Z)V
+HSPLandroid/widget/GridLayout$Axis;->computeLocations([I)V
+HSPLandroid/widget/GridLayout$Axis;->createArcs()[Landroid/widget/GridLayout$Arc;
+HSPLandroid/widget/GridLayout$Axis;->createGroupBounds()Landroid/widget/GridLayout$PackedMap;
+HSPLandroid/widget/GridLayout$Axis;->createLinks(Z)Landroid/widget/GridLayout$PackedMap;
+HSPLandroid/widget/GridLayout$Axis;->getArcs()[Landroid/widget/GridLayout$Arc;
+HSPLandroid/widget/GridLayout$Axis;->getBackwardLinks()Landroid/widget/GridLayout$PackedMap;
+HSPLandroid/widget/GridLayout$Axis;->getCount()I
+HSPLandroid/widget/GridLayout$Axis;->getForwardLinks()Landroid/widget/GridLayout$PackedMap;
+HSPLandroid/widget/GridLayout$Axis;->getGroupBounds()Landroid/widget/GridLayout$PackedMap;
+HSPLandroid/widget/GridLayout$Axis;->getLocations()[I
+HSPLandroid/widget/GridLayout$Axis;->getMaxIndex()I
+HSPLandroid/widget/GridLayout$Axis;->getMeasure(I)I
+HSPLandroid/widget/GridLayout$Axis;->getMeasure(II)I
+HSPLandroid/widget/GridLayout$Axis;->groupArcsByFirstVertex([Landroid/widget/GridLayout$Arc;)[[Landroid/widget/GridLayout$Arc;
+HSPLandroid/widget/GridLayout$Axis;->hasWeights()Z
+HSPLandroid/widget/GridLayout$Axis;->include(Ljava/util/List;Landroid/widget/GridLayout$Interval;Landroid/widget/GridLayout$MutableInt;)V
+HSPLandroid/widget/GridLayout$Axis;->include(Ljava/util/List;Landroid/widget/GridLayout$Interval;Landroid/widget/GridLayout$MutableInt;Z)V
+HSPLandroid/widget/GridLayout$Axis;->init([I)V
+HSPLandroid/widget/GridLayout$Axis;->invalidateStructure()V
+HSPLandroid/widget/GridLayout$Axis;->invalidateValues()V
+HSPLandroid/widget/GridLayout$Axis;->layout(I)V
+HSPLandroid/widget/GridLayout$Axis;->relax([ILandroid/widget/GridLayout$Arc;)Z
+HSPLandroid/widget/GridLayout$Axis;->setCount(I)V
+HSPLandroid/widget/GridLayout$Axis;->setOrderPreserved(Z)V
+HSPLandroid/widget/GridLayout$Axis;->setParentConstraints(II)V
+HSPLandroid/widget/GridLayout$Axis;->size([I)I
+HSPLandroid/widget/GridLayout$Axis;->solve([I)Z
+HSPLandroid/widget/GridLayout$Axis;->solve([Landroid/widget/GridLayout$Arc;[I)Z
+HSPLandroid/widget/GridLayout$Axis;->solve([Landroid/widget/GridLayout$Arc;[IZ)Z
+HSPLandroid/widget/GridLayout$Axis;->topologicalSort(Ljava/util/List;)[Landroid/widget/GridLayout$Arc;
+HSPLandroid/widget/GridLayout$Axis;->topologicalSort([Landroid/widget/GridLayout$Arc;)[Landroid/widget/GridLayout$Arc;
+HSPLandroid/widget/GridLayout$Bounds;-><init>()V
+HSPLandroid/widget/GridLayout$Bounds;-><init>(Landroid/widget/GridLayout$1;)V
+HSPLandroid/widget/GridLayout$Bounds;->getOffset(Landroid/widget/GridLayout;Landroid/view/View;Landroid/widget/GridLayout$Alignment;IZ)I
+HSPLandroid/widget/GridLayout$Bounds;->include(II)V
+HSPLandroid/widget/GridLayout$Bounds;->include(Landroid/widget/GridLayout;Landroid/view/View;Landroid/widget/GridLayout$Spec;Landroid/widget/GridLayout$Axis;I)V
+HSPLandroid/widget/GridLayout$Bounds;->reset()V
+HSPLandroid/widget/GridLayout$Bounds;->size(Z)I
+HSPLandroid/widget/GridLayout$Interval;-><init>(II)V
+HSPLandroid/widget/GridLayout$Interval;->equals(Ljava/lang/Object;)Z
+HSPLandroid/widget/GridLayout$Interval;->hashCode()I
+HSPLandroid/widget/GridLayout$Interval;->inverse()Landroid/widget/GridLayout$Interval;
+HSPLandroid/widget/GridLayout$Interval;->size()I
+HSPLandroid/widget/GridLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/GridLayout$LayoutParams;->hashCode()I
+HSPLandroid/widget/GridLayout$LayoutParams;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/GridLayout$LayoutParams;->reInitSuper(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/GridLayout$LayoutParams;->setBaseAttributes(Landroid/content/res/TypedArray;II)V
+HSPLandroid/widget/GridLayout$LayoutParams;->setColumnSpecSpan(Landroid/widget/GridLayout$Interval;)V
+HSPLandroid/widget/GridLayout$LayoutParams;->setRowSpecSpan(Landroid/widget/GridLayout$Interval;)V
+HSPLandroid/widget/GridLayout$MutableInt;-><init>()V
+HSPLandroid/widget/GridLayout$MutableInt;-><init>(I)V
+HSPLandroid/widget/GridLayout$MutableInt;->reset()V
+HSPLandroid/widget/GridLayout$PackedMap;-><init>([Ljava/lang/Object;[Ljava/lang/Object;)V
+HSPLandroid/widget/GridLayout$PackedMap;-><init>([Ljava/lang/Object;[Ljava/lang/Object;Landroid/widget/GridLayout$1;)V
+HSPLandroid/widget/GridLayout$PackedMap;->compact([Ljava/lang/Object;[I)[Ljava/lang/Object;
+HSPLandroid/widget/GridLayout$PackedMap;->createIndex([Ljava/lang/Object;)[I
+HSPLandroid/widget/GridLayout$PackedMap;->getValue(I)Ljava/lang/Object;
+HSPLandroid/widget/GridLayout$Spec;-><init>(ZIILandroid/widget/GridLayout$Alignment;F)V
+HSPLandroid/widget/GridLayout$Spec;-><init>(ZIILandroid/widget/GridLayout$Alignment;FLandroid/widget/GridLayout$1;)V
+HSPLandroid/widget/GridLayout$Spec;-><init>(ZLandroid/widget/GridLayout$Interval;Landroid/widget/GridLayout$Alignment;F)V
+HSPLandroid/widget/GridLayout$Spec;->access$100(Landroid/widget/GridLayout$Spec;Z)Landroid/widget/GridLayout$Alignment;
+HSPLandroid/widget/GridLayout$Spec;->copyWriteSpan(Landroid/widget/GridLayout$Interval;)Landroid/widget/GridLayout$Spec;
+HSPLandroid/widget/GridLayout$Spec;->getAbsoluteAlignment(Z)Landroid/widget/GridLayout$Alignment;
+HSPLandroid/widget/GridLayout$Spec;->getFlexibility()I
+HSPLandroid/widget/GridLayout$Spec;->hashCode()I
+HSPLandroid/widget/GridLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/GridLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/GridLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/GridLayout;->adjust(II)I
+HSPLandroid/widget/GridLayout;->append([Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
+HSPLandroid/widget/GridLayout;->canStretch(I)Z
+HSPLandroid/widget/GridLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
+HSPLandroid/widget/GridLayout;->checkLayoutParams(Landroid/widget/GridLayout$LayoutParams;Z)V
+HSPLandroid/widget/GridLayout;->clip(Landroid/widget/GridLayout$Interval;ZI)I
+HSPLandroid/widget/GridLayout;->computeLayoutParamsHashCode()I
+HSPLandroid/widget/GridLayout;->consistencyCheck()V
+HSPLandroid/widget/GridLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
+HSPLandroid/widget/GridLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/GridLayout$LayoutParams;
+HSPLandroid/widget/GridLayout;->getAlignment(IZ)Landroid/widget/GridLayout$Alignment;
+HSPLandroid/widget/GridLayout;->getDefaultMargin(Landroid/view/View;Landroid/widget/GridLayout$LayoutParams;ZZ)I
+HSPLandroid/widget/GridLayout;->getLayoutParams(Landroid/view/View;)Landroid/widget/GridLayout$LayoutParams;
+HSPLandroid/widget/GridLayout;->getMargin(Landroid/view/View;ZZ)I
+HSPLandroid/widget/GridLayout;->getMargin1(Landroid/view/View;ZZ)I
+HSPLandroid/widget/GridLayout;->getMeasurement(Landroid/view/View;Z)I
+HSPLandroid/widget/GridLayout;->getMeasurementIncludingMargin(Landroid/view/View;Z)I
+HSPLandroid/widget/GridLayout;->getTotalMargin(Landroid/view/View;Z)I
+HSPLandroid/widget/GridLayout;->invalidateStructure()V
+HSPLandroid/widget/GridLayout;->invalidateValues()V
+HSPLandroid/widget/GridLayout;->max2([II)I
+HSPLandroid/widget/GridLayout;->measureChildWithMargins2(Landroid/view/View;IIII)V
+HSPLandroid/widget/GridLayout;->measureChildrenWithMargins(IIZ)V
+HSPLandroid/widget/GridLayout;->onLayout(ZIIII)V
+HSPLandroid/widget/GridLayout;->onMeasure(II)V
+HSPLandroid/widget/GridLayout;->onViewAdded(Landroid/view/View;)V
+HSPLandroid/widget/GridLayout;->requestLayout()V
+HSPLandroid/widget/GridLayout;->setAlignmentMode(I)V
+HSPLandroid/widget/GridLayout;->setCellGroup(Landroid/widget/GridLayout$LayoutParams;IIII)V
+HSPLandroid/widget/GridLayout;->setColumnCount(I)V
+HSPLandroid/widget/GridLayout;->setColumnOrderPreserved(Z)V
+HSPLandroid/widget/GridLayout;->setOrientation(I)V
+HSPLandroid/widget/GridLayout;->setRowCount(I)V
+HSPLandroid/widget/GridLayout;->setRowOrderPreserved(Z)V
+HSPLandroid/widget/GridLayout;->setUseDefaultMargins(Z)V
+HSPLandroid/widget/GridLayout;->spec(IILandroid/widget/GridLayout$Alignment;F)Landroid/widget/GridLayout$Spec;
+HSPLandroid/widget/GridLayout;->validateLayoutParams()V
+HSPLandroid/widget/HeaderViewListAdapter;-><init>(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)V
+HSPLandroid/widget/HeaderViewListAdapter;->areAllItemsEnabled()Z
+HSPLandroid/widget/HeaderViewListAdapter;->areAllListInfosSelectable(Ljava/util/ArrayList;)Z
+HSPLandroid/widget/HeaderViewListAdapter;->getCount()I
+HSPLandroid/widget/HeaderViewListAdapter;->getFootersCount()I
+HSPLandroid/widget/HeaderViewListAdapter;->getHeadersCount()I
+HSPLandroid/widget/HeaderViewListAdapter;->getItemId(I)J
+HSPLandroid/widget/HeaderViewListAdapter;->getItemViewType(I)I
+HSPLandroid/widget/HeaderViewListAdapter;->getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;
+HSPLandroid/widget/HeaderViewListAdapter;->getViewTypeCount()I
+HSPLandroid/widget/HeaderViewListAdapter;->hasStableIds()Z
+HSPLandroid/widget/HeaderViewListAdapter;->isEnabled(I)Z
+HSPLandroid/widget/HeaderViewListAdapter;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
+HSPLandroid/widget/HeaderViewListAdapter;->unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
+HSPLandroid/widget/HorizontalScrollView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/HorizontalScrollView$SavedState;
+HSPLandroid/widget/HorizontalScrollView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/widget/HorizontalScrollView$SavedState;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/widget/HorizontalScrollView$SavedState;-><init>(Landroid/os/Parcelable;)V
 HSPLandroid/widget/HorizontalScrollView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;)V
+HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;I)V
 HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
 HSPLandroid/widget/HorizontalScrollView;->clamp(III)I
+HSPLandroid/widget/HorizontalScrollView;->computeHorizontalScrollRange()I
 HSPLandroid/widget/HorizontalScrollView;->computeScroll()V
 HSPLandroid/widget/HorizontalScrollView;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/HorizontalScrollView;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HSPLandroid/widget/HorizontalScrollView;->getScrollRange()I
+HSPLandroid/widget/HorizontalScrollView;->inChild(II)Z
+HSPLandroid/widget/HorizontalScrollView;->initOrResetVelocityTracker()V
 HSPLandroid/widget/HorizontalScrollView;->initScrollView()V
 HSPLandroid/widget/HorizontalScrollView;->measureChildWithMargins(Landroid/view/View;IIII)V
+HSPLandroid/widget/HorizontalScrollView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/widget/HorizontalScrollView;->onLayout(ZIIII)V
 HSPLandroid/widget/HorizontalScrollView;->onMeasure(II)V
+HSPLandroid/widget/HorizontalScrollView;->onRestoreInstanceState(Landroid/os/Parcelable;)V
 HSPLandroid/widget/HorizontalScrollView;->onSaveInstanceState()Landroid/os/Parcelable;
 HSPLandroid/widget/HorizontalScrollView;->onSizeChanged(IIII)V
 HSPLandroid/widget/HorizontalScrollView;->requestLayout()V
 HSPLandroid/widget/HorizontalScrollView;->scrollTo(II)V
 HSPLandroid/widget/HorizontalScrollView;->setFillViewport(Z)V
+HSPLandroid/widget/HorizontalScrollView;->shouldDisplayEdgeEffects()Z
+HSPLandroid/widget/HorizontalScrollView;->smoothScrollBy(II)V
 HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/ImageButton;->getAccessibilityClassName()Ljava/lang/CharSequence;
 HSPLandroid/widget/ImageButton;->onSetAlpha(I)Z
+HSPLandroid/widget/ImageView$ImageDrawableCallback;-><init>(Landroid/widget/ImageView;Landroid/graphics/drawable/Drawable;Landroid/net/Uri;I)V
+HSPLandroid/widget/ImageView$ImageDrawableCallback;->run()V
+HSPLandroid/widget/ImageView$ScaleType;->values()[Landroid/widget/ImageView$ScaleType;
 HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;)V
 HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/ImageView;->access$002(Landroid/widget/ImageView;Landroid/net/Uri;)Landroid/net/Uri;
+HSPLandroid/widget/ImageView;->access$102(Landroid/widget/ImageView;I)I
 HSPLandroid/widget/ImageView;->applyAlpha()V
 HSPLandroid/widget/ImageView;->applyColorFilter()V
 HSPLandroid/widget/ImageView;->applyImageTint()V
 HSPLandroid/widget/ImageView;->applyXfermode()V
+HSPLandroid/widget/ImageView;->clearColorFilter()V
 HSPLandroid/widget/ImageView;->configureBounds()V
 HSPLandroid/widget/ImageView;->drawableHotspotChanged(FF)V
 HSPLandroid/widget/ImageView;->drawableStateChanged()V
+HSPLandroid/widget/ImageView;->getAccessibilityClassName()Ljava/lang/CharSequence;
 HSPLandroid/widget/ImageView;->getBaseline()I
 HSPLandroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/ImageView;->getImageAlpha()I
+HSPLandroid/widget/ImageView;->getImageMatrix()Landroid/graphics/Matrix;
+HSPLandroid/widget/ImageView;->getMaxHeight()I
+HSPLandroid/widget/ImageView;->getScaleType()Landroid/widget/ImageView$ScaleType;
 HSPLandroid/widget/ImageView;->hasOverlappingRendering()Z
 HSPLandroid/widget/ImageView;->initImageView()V
 HSPLandroid/widget/ImageView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
@@ -14577,6 +29397,7 @@
 HSPLandroid/widget/ImageView;->onDetachedFromWindow()V
 HSPLandroid/widget/ImageView;->onDraw(Landroid/graphics/Canvas;)V
 HSPLandroid/widget/ImageView;->onMeasure(II)V
+HSPLandroid/widget/ImageView;->onPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
 HSPLandroid/widget/ImageView;->onRtlPropertiesChanged(I)V
 HSPLandroid/widget/ImageView;->onVisibilityAggregated(Z)V
 HSPLandroid/widget/ImageView;->resizeFromDrawable()V
@@ -14588,13 +29409,19 @@
 HSPLandroid/widget/ImageView;->setColorFilter(I)V
 HSPLandroid/widget/ImageView;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V
 HSPLandroid/widget/ImageView;->setColorFilter(Landroid/graphics/ColorFilter;)V
+HSPLandroid/widget/ImageView;->setCropToPadding(Z)V
 HSPLandroid/widget/ImageView;->setFrame(IIII)Z
 HSPLandroid/widget/ImageView;->setImageAlpha(I)V
 HSPLandroid/widget/ImageView;->setImageBitmap(Landroid/graphics/Bitmap;)V
 HSPLandroid/widget/ImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ImageView;->setImageIcon(Landroid/graphics/drawable/Icon;)V
+HSPLandroid/widget/ImageView;->setImageIconAsync(Landroid/graphics/drawable/Icon;)Ljava/lang/Runnable;
+HSPLandroid/widget/ImageView;->setImageLevel(I)V
 HSPLandroid/widget/ImageView;->setImageMatrix(Landroid/graphics/Matrix;)V
 HSPLandroid/widget/ImageView;->setImageResource(I)V
+HSPLandroid/widget/ImageView;->setImageTintBlendMode(Landroid/graphics/BlendMode;)V
 HSPLandroid/widget/ImageView;->setImageTintList(Landroid/content/res/ColorStateList;)V
+HSPLandroid/widget/ImageView;->setImageTintMode(Landroid/graphics/PorterDuff$Mode;)V
 HSPLandroid/widget/ImageView;->setMaxHeight(I)V
 HSPLandroid/widget/ImageView;->setMaxWidth(I)V
 HSPLandroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V
@@ -14613,6 +29440,9 @@
 HSPLandroid/widget/LinearLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 HSPLandroid/widget/LinearLayout;->allViewsAreGoneBefore(I)Z
 HSPLandroid/widget/LinearLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
+HSPLandroid/widget/LinearLayout;->drawDividersHorizontal(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/LinearLayout;->drawDividersVertical(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/LinearLayout;->drawHorizontalDivider(Landroid/graphics/Canvas;I)V
 HSPLandroid/widget/LinearLayout;->forceUniformHeight(II)V
 HSPLandroid/widget/LinearLayout;->forceUniformWidth(II)V
 HSPLandroid/widget/LinearLayout;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
@@ -14624,12 +29454,15 @@
 HSPLandroid/widget/LinearLayout;->getAccessibilityClassName()Ljava/lang/CharSequence;
 HSPLandroid/widget/LinearLayout;->getBaseline()I
 HSPLandroid/widget/LinearLayout;->getChildrenSkipCount(Landroid/view/View;I)I
+HSPLandroid/widget/LinearLayout;->getDividerDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/LinearLayout;->getGravity()I
 HSPLandroid/widget/LinearLayout;->getLocationOffset(Landroid/view/View;)I
 HSPLandroid/widget/LinearLayout;->getNextLocationOffset(Landroid/view/View;)I
 HSPLandroid/widget/LinearLayout;->getOrientation()I
 HSPLandroid/widget/LinearLayout;->getVirtualChildAt(I)Landroid/view/View;
 HSPLandroid/widget/LinearLayout;->getVirtualChildCount()I
 HSPLandroid/widget/LinearLayout;->hasDividerBeforeChildAt(I)Z
+HSPLandroid/widget/LinearLayout;->isShowingDividers()Z
 HSPLandroid/widget/LinearLayout;->layoutHorizontal(IIII)V
 HSPLandroid/widget/LinearLayout;->layoutVertical(IIII)V
 HSPLandroid/widget/LinearLayout;->measureChildBeforeLayout(Landroid/view/View;IIIII)V
@@ -14645,11 +29478,42 @@
 HSPLandroid/widget/LinearLayout;->setGravity(I)V
 HSPLandroid/widget/LinearLayout;->setOrientation(I)V
 HSPLandroid/widget/LinearLayout;->shouldDelayChildPressedState()Z
+HSPLandroid/widget/ListPopupWindow$ListSelectorHider;-><init>(Landroid/widget/ListPopupWindow;)V
+HSPLandroid/widget/ListPopupWindow$ListSelectorHider;-><init>(Landroid/widget/ListPopupWindow;Landroid/widget/ListPopupWindow$1;)V
+HSPLandroid/widget/ListPopupWindow$PopupDataSetObserver;-><init>(Landroid/widget/ListPopupWindow;)V
+HSPLandroid/widget/ListPopupWindow$PopupDataSetObserver;-><init>(Landroid/widget/ListPopupWindow;Landroid/widget/ListPopupWindow$1;)V
+HSPLandroid/widget/ListPopupWindow$PopupDataSetObserver;->onChanged()V
+HSPLandroid/widget/ListPopupWindow$PopupScrollListener;-><init>(Landroid/widget/ListPopupWindow;)V
+HSPLandroid/widget/ListPopupWindow$PopupScrollListener;-><init>(Landroid/widget/ListPopupWindow;Landroid/widget/ListPopupWindow$1;)V
+HSPLandroid/widget/ListPopupWindow$PopupTouchInterceptor;-><init>(Landroid/widget/ListPopupWindow;)V
+HSPLandroid/widget/ListPopupWindow$PopupTouchInterceptor;-><init>(Landroid/widget/ListPopupWindow;Landroid/widget/ListPopupWindow$1;)V
+HSPLandroid/widget/ListPopupWindow$ResizePopupRunnable;-><init>(Landroid/widget/ListPopupWindow;)V
+HSPLandroid/widget/ListPopupWindow$ResizePopupRunnable;-><init>(Landroid/widget/ListPopupWindow;Landroid/widget/ListPopupWindow$1;)V
+HSPLandroid/widget/ListPopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/ListPopupWindow;->dismiss()V
+HSPLandroid/widget/ListPopupWindow;->isDropDownAlwaysVisible()Z
+HSPLandroid/widget/ListPopupWindow;->isShowing()Z
+HSPLandroid/widget/ListPopupWindow;->setAdapter(Landroid/widget/ListAdapter;)V
+HSPLandroid/widget/ListPopupWindow;->setAnchorView(Landroid/view/View;)V
+HSPLandroid/widget/ListPopupWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ListPopupWindow;->setHeight(I)V
+HSPLandroid/widget/ListPopupWindow;->setListSelector(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ListPopupWindow;->setModal(Z)V
+HSPLandroid/widget/ListPopupWindow;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V
+HSPLandroid/widget/ListPopupWindow;->setPromptPosition(I)V
+HSPLandroid/widget/ListPopupWindow;->setPromptView(Landroid/view/View;)V
+HSPLandroid/widget/ListPopupWindow;->setSoftInputMode(I)V
+HSPLandroid/widget/ListPopupWindow;->setWidth(I)V
 HSPLandroid/widget/ListView$ArrowScrollFocusResult;-><init>()V
 HSPLandroid/widget/ListView$ArrowScrollFocusResult;-><init>(Landroid/widget/ListView$1;)V
+HSPLandroid/widget/ListView$FixedViewInfo;-><init>(Landroid/widget/ListView;)V
+HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;)V
 HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/ListView;->addFooterView(Landroid/view/View;Ljava/lang/Object;Z)V
+HSPLandroid/widget/ListView;->addHeaderView(Landroid/view/View;)V
+HSPLandroid/widget/ListView;->addHeaderView(Landroid/view/View;Ljava/lang/Object;Z)V
 HSPLandroid/widget/ListView;->adjustViewsUpOrDown()V
 HSPLandroid/widget/ListView;->clearRecycledState(Ljava/util/ArrayList;)V
 HSPLandroid/widget/ListView;->correctTooHigh(I)V
@@ -14657,38 +29521,100 @@
 HSPLandroid/widget/ListView;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z
 HSPLandroid/widget/ListView;->fillDown(II)Landroid/view/View;
 HSPLandroid/widget/ListView;->fillFromTop(I)Landroid/view/View;
+HSPLandroid/widget/ListView;->fillGap(Z)V
 HSPLandroid/widget/ListView;->fillSpecific(II)Landroid/view/View;
 HSPLandroid/widget/ListView;->fillUp(II)Landroid/view/View;
+HSPLandroid/widget/ListView;->findMotionRow(I)I
 HSPLandroid/widget/ListView;->findViewInHeadersOrFooters(Ljava/util/ArrayList;I)Landroid/view/View;
 HSPLandroid/widget/ListView;->findViewTraversal(I)Landroid/view/View;
+HSPLandroid/widget/ListView;->getAccessibilityClassName()Ljava/lang/CharSequence;
 HSPLandroid/widget/ListView;->getAdapter()Landroid/widget/Adapter;
 HSPLandroid/widget/ListView;->getAdapter()Landroid/widget/ListAdapter;
+HSPLandroid/widget/ListView;->getDividerHeight()I
+HSPLandroid/widget/ListView;->getFooterViewsCount()I
+HSPLandroid/widget/ListView;->getHeaderViewsCount()I
 HSPLandroid/widget/ListView;->isOpaque()Z
 HSPLandroid/widget/ListView;->layoutChildren()V
 HSPLandroid/widget/ListView;->lookForSelectablePosition(IZ)I
 HSPLandroid/widget/ListView;->makeAndAddView(IIZIZ)Landroid/view/View;
+HSPLandroid/widget/ListView;->measureHeightOfChildren(IIIII)I
+HSPLandroid/widget/ListView;->measureScrapChild(Landroid/view/View;III)V
 HSPLandroid/widget/ListView;->onDetachedFromWindow()V
 HSPLandroid/widget/ListView;->onFinishInflate()V
 HSPLandroid/widget/ListView;->onMeasure(II)V
 HSPLandroid/widget/ListView;->onSizeChanged(IIII)V
+HSPLandroid/widget/ListView;->recycleOnMeasure()Z
 HSPLandroid/widget/ListView;->removeUnusedFixedViews(Ljava/util/List;)V
 HSPLandroid/widget/ListView;->resetList()V
 HSPLandroid/widget/ListView;->setAdapter(Landroid/widget/ListAdapter;)V
 HSPLandroid/widget/ListView;->setCacheColorHint(I)V
+HSPLandroid/widget/ListView;->setDivider(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ListView;->setDividerHeight(I)V
+HSPLandroid/widget/ListView;->setSelection(I)V
 HSPLandroid/widget/ListView;->setupChild(Landroid/view/View;IIZIZZ)V
+HSPLandroid/widget/ListView;->trackMotionScroll(II)Z
+HSPLandroid/widget/ListView;->wrapHeaderListAdapterInternal(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)Landroid/widget/HeaderViewListAdapter;
+HSPLandroid/widget/Magnifier$Builder;-><init>(Landroid/view/View;)V
+HSPLandroid/widget/Magnifier$Builder;->access$000(Landroid/widget/Magnifier$Builder;)I
+HSPLandroid/widget/Magnifier$Builder;->access$002(Landroid/widget/Magnifier$Builder;I)I
+HSPLandroid/widget/Magnifier$Builder;->access$100(Landroid/widget/Magnifier$Builder;)I
+HSPLandroid/widget/Magnifier$Builder;->access$1000(Landroid/widget/Magnifier$Builder;)I
+HSPLandroid/widget/Magnifier$Builder;->access$1002(Landroid/widget/Magnifier$Builder;I)I
+HSPLandroid/widget/Magnifier$Builder;->access$102(Landroid/widget/Magnifier$Builder;I)I
+HSPLandroid/widget/Magnifier$Builder;->access$1100(Landroid/widget/Magnifier$Builder;)I
+HSPLandroid/widget/Magnifier$Builder;->access$1102(Landroid/widget/Magnifier$Builder;I)I
+HSPLandroid/widget/Magnifier$Builder;->access$1200(Landroid/widget/Magnifier$Builder;)I
+HSPLandroid/widget/Magnifier$Builder;->access$1202(Landroid/widget/Magnifier$Builder;I)I
+HSPLandroid/widget/Magnifier$Builder;->access$1300(Landroid/widget/Magnifier$Builder;)Landroid/view/View;
+HSPLandroid/widget/Magnifier$Builder;->access$200(Landroid/widget/Magnifier$Builder;)F
+HSPLandroid/widget/Magnifier$Builder;->access$202(Landroid/widget/Magnifier$Builder;F)F
+HSPLandroid/widget/Magnifier$Builder;->access$300(Landroid/widget/Magnifier$Builder;)F
+HSPLandroid/widget/Magnifier$Builder;->access$302(Landroid/widget/Magnifier$Builder;F)F
+HSPLandroid/widget/Magnifier$Builder;->access$400(Landroid/widget/Magnifier$Builder;)F
+HSPLandroid/widget/Magnifier$Builder;->access$402(Landroid/widget/Magnifier$Builder;F)F
+HSPLandroid/widget/Magnifier$Builder;->access$500(Landroid/widget/Magnifier$Builder;)I
+HSPLandroid/widget/Magnifier$Builder;->access$502(Landroid/widget/Magnifier$Builder;I)I
+HSPLandroid/widget/Magnifier$Builder;->access$600(Landroid/widget/Magnifier$Builder;)I
+HSPLandroid/widget/Magnifier$Builder;->access$602(Landroid/widget/Magnifier$Builder;I)I
+HSPLandroid/widget/Magnifier$Builder;->access$700(Landroid/widget/Magnifier$Builder;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/Magnifier$Builder;->access$702(Landroid/widget/Magnifier$Builder;Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/Magnifier$Builder;->access$800(Landroid/widget/Magnifier$Builder;)Z
+HSPLandroid/widget/Magnifier$Builder;->access$802(Landroid/widget/Magnifier$Builder;Z)Z
+HSPLandroid/widget/Magnifier$Builder;->access$900(Landroid/widget/Magnifier$Builder;)I
+HSPLandroid/widget/Magnifier$Builder;->access$902(Landroid/widget/Magnifier$Builder;I)I
+HSPLandroid/widget/Magnifier$Builder;->applyDefaults()V
+HSPLandroid/widget/Magnifier$Builder;->build()Landroid/widget/Magnifier;
+HSPLandroid/widget/Magnifier;-><clinit>()V
+HSPLandroid/widget/Magnifier;-><init>(Landroid/widget/Magnifier$Builder;)V
+HSPLandroid/widget/Magnifier;-><init>(Landroid/widget/Magnifier$Builder;Landroid/widget/Magnifier$1;)V
+HSPLandroid/widget/Magnifier;->createBuilderWithOldMagnifierDefaults(Landroid/view/View;)Landroid/widget/Magnifier$Builder;
+HSPLandroid/widget/Magnifier;->getDeviceDefaultDialogCornerRadius(Landroid/content/Context;)F
+HSPLandroid/widget/Magnifier;->update()V
 HSPLandroid/widget/OverScroller$SplineOverScroller;-><init>(Landroid/content/Context;)V
 HSPLandroid/widget/OverScroller$SplineOverScroller;->access$000(Landroid/widget/OverScroller$SplineOverScroller;)Z
+HSPLandroid/widget/OverScroller$SplineOverScroller;->access$002(Landroid/widget/OverScroller$SplineOverScroller;Z)Z
 HSPLandroid/widget/OverScroller$SplineOverScroller;->access$100(Landroid/widget/OverScroller$SplineOverScroller;)I
 HSPLandroid/widget/OverScroller$SplineOverScroller;->access$200(Landroid/widget/OverScroller$SplineOverScroller;)F
 HSPLandroid/widget/OverScroller$SplineOverScroller;->access$400(Landroid/widget/OverScroller$SplineOverScroller;)I
 HSPLandroid/widget/OverScroller$SplineOverScroller;->access$500(Landroid/widget/OverScroller$SplineOverScroller;)I
+HSPLandroid/widget/OverScroller$SplineOverScroller;->access$600(Landroid/widget/OverScroller$SplineOverScroller;)J
+HSPLandroid/widget/OverScroller$SplineOverScroller;->adjustDuration(III)V
 HSPLandroid/widget/OverScroller$SplineOverScroller;->continueWhenFinished()Z
 HSPLandroid/widget/OverScroller$SplineOverScroller;->finish()V
+HSPLandroid/widget/OverScroller$SplineOverScroller;->fitOnBounceCurve(III)V
 HSPLandroid/widget/OverScroller$SplineOverScroller;->fling(IIIII)V
+HSPLandroid/widget/OverScroller$SplineOverScroller;->getDeceleration(I)F
 HSPLandroid/widget/OverScroller$SplineOverScroller;->getSplineDeceleration(I)D
 HSPLandroid/widget/OverScroller$SplineOverScroller;->getSplineFlingDistance(I)D
 HSPLandroid/widget/OverScroller$SplineOverScroller;->getSplineFlingDuration(I)I
+HSPLandroid/widget/OverScroller$SplineOverScroller;->onEdgeReached()V
+HSPLandroid/widget/OverScroller$SplineOverScroller;->springback(III)Z
+HSPLandroid/widget/OverScroller$SplineOverScroller;->startAfterEdge(IIII)V
+HSPLandroid/widget/OverScroller$SplineOverScroller;->startBounceAfterEdge(III)V
+HSPLandroid/widget/OverScroller$SplineOverScroller;->startScroll(III)V
+HSPLandroid/widget/OverScroller$SplineOverScroller;->startSpringback(III)V
 HSPLandroid/widget/OverScroller$SplineOverScroller;->update()Z
+HSPLandroid/widget/OverScroller$SplineOverScroller;->updateScroll(F)V
 HSPLandroid/widget/OverScroller;-><init>(Landroid/content/Context;)V
 HSPLandroid/widget/OverScroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V
 HSPLandroid/widget/OverScroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V
@@ -14696,45 +29622,159 @@
 HSPLandroid/widget/OverScroller;->computeScrollOffset()Z
 HSPLandroid/widget/OverScroller;->fling(IIIIIIII)V
 HSPLandroid/widget/OverScroller;->fling(IIIIIIIIII)V
+HSPLandroid/widget/OverScroller;->forceFinished(Z)V
 HSPLandroid/widget/OverScroller;->getCurrVelocity()F
 HSPLandroid/widget/OverScroller;->getCurrX()I
 HSPLandroid/widget/OverScroller;->getCurrY()I
 HSPLandroid/widget/OverScroller;->getFinalX()I
 HSPLandroid/widget/OverScroller;->getFinalY()I
 HSPLandroid/widget/OverScroller;->isFinished()Z
+HSPLandroid/widget/OverScroller;->setInterpolator(Landroid/view/animation/Interpolator;)V
+HSPLandroid/widget/OverScroller;->springBack(IIIIII)Z
+HSPLandroid/widget/OverScroller;->startScroll(IIII)V
+HSPLandroid/widget/OverScroller;->startScroll(IIIII)V
+HSPLandroid/widget/PopupMenu$1;-><init>(Landroid/widget/PopupMenu;)V
+HSPLandroid/widget/PopupMenu$2;-><init>(Landroid/widget/PopupMenu;)V
+HSPLandroid/widget/PopupMenu;-><init>(Landroid/content/Context;Landroid/view/View;)V
+HSPLandroid/widget/PopupMenu;-><init>(Landroid/content/Context;Landroid/view/View;I)V
+HSPLandroid/widget/PopupMenu;-><init>(Landroid/content/Context;Landroid/view/View;III)V
 HSPLandroid/widget/PopupWindow$1;-><init>(Landroid/widget/PopupWindow;)V
 HSPLandroid/widget/PopupWindow$2;-><init>(Landroid/widget/PopupWindow;)V
+HSPLandroid/widget/PopupWindow$3;->onTransitionEnd(Landroid/transition/Transition;)V
+HSPLandroid/widget/PopupWindow$PopupBackgroundView;-><init>(Landroid/widget/PopupWindow;Landroid/content/Context;)V
+HSPLandroid/widget/PopupWindow$PopupBackgroundView;->onCreateDrawableState(I)[I
+HSPLandroid/widget/PopupWindow$PopupDecorView$1$1;-><init>(Landroid/widget/PopupWindow$PopupDecorView$1;Landroid/graphics/Rect;)V
+HSPLandroid/widget/PopupWindow$PopupDecorView$1$1;->onGetEpicenter(Landroid/transition/Transition;)Landroid/graphics/Rect;
+HSPLandroid/widget/PopupWindow$PopupDecorView$1;-><init>(Landroid/widget/PopupWindow$PopupDecorView;Landroid/transition/Transition;)V
+HSPLandroid/widget/PopupWindow$PopupDecorView$1;->onGlobalLayout()V
+HSPLandroid/widget/PopupWindow$PopupDecorView$2;-><init>(Landroid/widget/PopupWindow$PopupDecorView;)V
+HSPLandroid/widget/PopupWindow$PopupDecorView$2;->onTransitionEnd(Landroid/transition/Transition;)V
+HSPLandroid/widget/PopupWindow$PopupDecorView$3;-><init>(Landroid/widget/PopupWindow$PopupDecorView;Landroid/graphics/Rect;)V
+HSPLandroid/widget/PopupWindow$PopupDecorView$4;-><init>(Landroid/widget/PopupWindow$PopupDecorView;)V
+HSPLandroid/widget/PopupWindow$PopupDecorView;-><init>(Landroid/widget/PopupWindow;Landroid/content/Context;)V
+HSPLandroid/widget/PopupWindow$PopupDecorView;->access$400(Landroid/widget/PopupWindow$PopupDecorView;Landroid/transition/Transition;)V
+HSPLandroid/widget/PopupWindow$PopupDecorView;->access$500(Landroid/widget/PopupWindow$PopupDecorView;)Ljava/lang/Runnable;
+HSPLandroid/widget/PopupWindow$PopupDecorView;->cancelTransitions()V
+HSPLandroid/widget/PopupWindow$PopupDecorView;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/widget/PopupWindow$PopupDecorView;->lambda$startExitTransition$0$PopupWindow$PopupDecorView(Landroid/transition/Transition$TransitionListener;Landroid/transition/Transition;Landroid/view/View;)V
+HSPLandroid/widget/PopupWindow$PopupDecorView;->onTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/widget/PopupWindow$PopupDecorView;->requestEnterTransition(Landroid/transition/Transition;)V
+HSPLandroid/widget/PopupWindow$PopupDecorView;->startEnterTransition(Landroid/transition/Transition;)V
+HSPLandroid/widget/PopupWindow$PopupDecorView;->startExitTransition(Landroid/transition/Transition;Landroid/view/View;Landroid/graphics/Rect;Landroid/transition/Transition$TransitionListener;)V
+HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;)V
+HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;)V
+HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;II)V
+HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;IIZ)V
+HSPLandroid/widget/PopupWindow;->access$200(Landroid/widget/PopupWindow;Landroid/view/View;Landroid/view/ViewGroup;Landroid/view/View;)V
+HSPLandroid/widget/PopupWindow;->access$300(Landroid/widget/PopupWindow;)Landroid/view/View$OnTouchListener;
+HSPLandroid/widget/PopupWindow;->access$700(Landroid/widget/PopupWindow;)Z
+HSPLandroid/widget/PopupWindow;->alignToAnchor()V
+HSPLandroid/widget/PopupWindow;->attachToAnchor(Landroid/view/View;III)V
+HSPLandroid/widget/PopupWindow;->computeAnimationResource()I
+HSPLandroid/widget/PopupWindow;->computeFlags(I)I
+HSPLandroid/widget/PopupWindow;->computeGravity()I
+HSPLandroid/widget/PopupWindow;->createBackgroundView(Landroid/view/View;)Landroid/widget/PopupWindow$PopupBackgroundView;
+HSPLandroid/widget/PopupWindow;->createDecorView(Landroid/view/View;)Landroid/widget/PopupWindow$PopupDecorView;
+HSPLandroid/widget/PopupWindow;->createPopupLayoutParams(Landroid/os/IBinder;)Landroid/view/WindowManager$LayoutParams;
+HSPLandroid/widget/PopupWindow;->detachFromAnchor()V
 HSPLandroid/widget/PopupWindow;->dismiss()V
+HSPLandroid/widget/PopupWindow;->dismissImmediate(Landroid/view/View;Landroid/view/ViewGroup;Landroid/view/View;)V
+HSPLandroid/widget/PopupWindow;->findDropDownPosition(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;IIIIIZ)Z
+HSPLandroid/widget/PopupWindow;->getAnchor()Landroid/view/View;
+HSPLandroid/widget/PopupWindow;->getAppRootView(Landroid/view/View;)Landroid/view/View;
+HSPLandroid/widget/PopupWindow;->getBackground()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/PopupWindow;->getContentView()Landroid/view/View;
+HSPLandroid/widget/PopupWindow;->getDecorViewLayoutParams()Landroid/view/WindowManager$LayoutParams;
+HSPLandroid/widget/PopupWindow;->getHeight()I
+HSPLandroid/widget/PopupWindow;->getInputMethodMode()I
+HSPLandroid/widget/PopupWindow;->getMaxAvailableHeight(Landroid/view/View;IZ)I
 HSPLandroid/widget/PopupWindow;->getTransition(I)Landroid/transition/Transition;
+HSPLandroid/widget/PopupWindow;->getTransitionEpicenter()Landroid/graphics/Rect;
+HSPLandroid/widget/PopupWindow;->getWidth()I
+HSPLandroid/widget/PopupWindow;->hasContentView()Z
+HSPLandroid/widget/PopupWindow;->hasDecorView()Z
+HSPLandroid/widget/PopupWindow;->invokePopup(Landroid/view/WindowManager$LayoutParams;)V
 HSPLandroid/widget/PopupWindow;->isShowing()Z
+HSPLandroid/widget/PopupWindow;->isSplitTouchEnabled()Z
+HSPLandroid/widget/PopupWindow;->isTransitioningToDismiss()Z
+HSPLandroid/widget/PopupWindow;->lambda$new$0$PopupWindow(Landroid/view/View;IIIIIIII)V
+HSPLandroid/widget/PopupWindow;->preparePopup(Landroid/view/WindowManager$LayoutParams;)V
+HSPLandroid/widget/PopupWindow;->setAnimationStyle(I)V
 HSPLandroid/widget/PopupWindow;->setAttachedInDecor(Z)V
 HSPLandroid/widget/PopupWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/PopupWindow;->setClippingEnabled(Z)V
 HSPLandroid/widget/PopupWindow;->setContentView(Landroid/view/View;)V
 HSPLandroid/widget/PopupWindow;->setEnterTransition(Landroid/transition/Transition;)V
+HSPLandroid/widget/PopupWindow;->setEpicenterBounds(Landroid/graphics/Rect;)V
 HSPLandroid/widget/PopupWindow;->setExitTransition(Landroid/transition/Transition;)V
 HSPLandroid/widget/PopupWindow;->setFocusable(Z)V
 HSPLandroid/widget/PopupWindow;->setHeight(I)V
+HSPLandroid/widget/PopupWindow;->setInputMethodMode(I)V
+HSPLandroid/widget/PopupWindow;->setIsClippedToScreen(Z)V
+HSPLandroid/widget/PopupWindow;->setLayoutDirectionFromAnchor()V
+HSPLandroid/widget/PopupWindow;->setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V
+HSPLandroid/widget/PopupWindow;->setOutsideTouchable(Z)V
+HSPLandroid/widget/PopupWindow;->setSoftInputMode(I)V
+HSPLandroid/widget/PopupWindow;->setSplitTouchEnabled(Z)V
+HSPLandroid/widget/PopupWindow;->setTouchInterceptor(Landroid/view/View$OnTouchListener;)V
 HSPLandroid/widget/PopupWindow;->setWidth(I)V
+HSPLandroid/widget/PopupWindow;->setWindowLayoutType(I)V
+HSPLandroid/widget/PopupWindow;->showAsDropDown(Landroid/view/View;III)V
+HSPLandroid/widget/PopupWindow;->showAtLocation(Landroid/os/IBinder;III)V
+HSPLandroid/widget/PopupWindow;->showAtLocation(Landroid/view/View;III)V
+HSPLandroid/widget/PopupWindow;->tryFitHorizontal(Landroid/view/WindowManager$LayoutParams;IIIIIIIZ)Z
+HSPLandroid/widget/PopupWindow;->tryFitVertical(Landroid/view/WindowManager$LayoutParams;IIIIIIIZ)Z
+HSPLandroid/widget/PopupWindow;->update(IIII)V
+HSPLandroid/widget/PopupWindow;->update(IIIIZ)V
+HSPLandroid/widget/PopupWindow;->update(Landroid/view/View;IIII)V
+HSPLandroid/widget/PopupWindow;->update(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;)V
+HSPLandroid/widget/PopupWindow;->update(Landroid/view/View;ZIIII)V
+HSPLandroid/widget/PopupWindow;->updateAboveAnchor(Z)V
 HSPLandroid/widget/ProgressBar$1;-><init>(Landroid/widget/ProgressBar;Ljava/lang/String;)V
+HSPLandroid/widget/ProgressBar$1;->get(Landroid/widget/ProgressBar;)Ljava/lang/Float;
+HSPLandroid/widget/ProgressBar$1;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/widget/ProgressBar$1;->setValue(Landroid/widget/ProgressBar;F)V
+HSPLandroid/widget/ProgressBar$1;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/widget/ProgressBar$ProgressTintInfo;-><init>()V
+HSPLandroid/widget/ProgressBar$ProgressTintInfo;-><init>(Landroid/widget/ProgressBar$1;)V
+HSPLandroid/widget/ProgressBar$RefreshData;->recycle()V
+HSPLandroid/widget/ProgressBar$RefreshProgressRunnable;->run()V
+HSPLandroid/widget/ProgressBar$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/ProgressBar$SavedState;
+HSPLandroid/widget/ProgressBar$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/widget/ProgressBar$SavedState;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/widget/ProgressBar$SavedState;-><init>(Landroid/os/Parcel;Landroid/widget/ProgressBar$1;)V
 HSPLandroid/widget/ProgressBar$SavedState;-><init>(Landroid/os/Parcelable;)V
 HSPLandroid/widget/ProgressBar$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/widget/ProgressBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/ProgressBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/ProgressBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/ProgressBar;->access$600(Landroid/widget/ProgressBar;IF)V
+HSPLandroid/widget/ProgressBar;->access$700(Landroid/widget/ProgressBar;)F
+HSPLandroid/widget/ProgressBar;->access$702(Landroid/widget/ProgressBar;F)F
 HSPLandroid/widget/ProgressBar;->applyIndeterminateTint()V
+HSPLandroid/widget/ProgressBar;->applyPrimaryProgressTint()V
+HSPLandroid/widget/ProgressBar;->applyProgressBackgroundTint()V
 HSPLandroid/widget/ProgressBar;->applyProgressTints()V
 HSPLandroid/widget/ProgressBar;->doRefreshProgress(IIZZZ)V
 HSPLandroid/widget/ProgressBar;->drawTrack(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/ProgressBar;->drawableHotspotChanged(FF)V
 HSPLandroid/widget/ProgressBar;->drawableStateChanged()V
 HSPLandroid/widget/ProgressBar;->formatStateDescription(I)Ljava/lang/CharSequence;
+HSPLandroid/widget/ProgressBar;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HSPLandroid/widget/ProgressBar;->getCurrentDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/ProgressBar;->getIndeterminateDrawable()Landroid/graphics/drawable/Drawable;
 HSPLandroid/widget/ProgressBar;->getMax()I
 HSPLandroid/widget/ProgressBar;->getMin()I
 HSPLandroid/widget/ProgressBar;->getPercent(I)F
 HSPLandroid/widget/ProgressBar;->getProgress()I
 HSPLandroid/widget/ProgressBar;->getProgressDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/ProgressBar;->getTintTarget(IZ)Landroid/graphics/drawable/Drawable;
 HSPLandroid/widget/ProgressBar;->initProgressBar()V
 HSPLandroid/widget/ProgressBar;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ProgressBar;->isIndeterminate()Z
 HSPLandroid/widget/ProgressBar;->jumpDrawablesToCurrentState()V
 HSPLandroid/widget/ProgressBar;->needsTileify(Landroid/graphics/drawable/Drawable;)Z
 HSPLandroid/widget/ProgressBar;->onAttachedToWindow()V
@@ -14743,6 +29783,7 @@
 HSPLandroid/widget/ProgressBar;->onMeasure(II)V
 HSPLandroid/widget/ProgressBar;->onProgressRefresh(FZI)V
 HSPLandroid/widget/ProgressBar;->onResolveDrawables(I)V
+HSPLandroid/widget/ProgressBar;->onRestoreInstanceState(Landroid/os/Parcelable;)V
 HSPLandroid/widget/ProgressBar;->onSaveInstanceState()Landroid/os/Parcelable;
 HSPLandroid/widget/ProgressBar;->onSizeChanged(IIII)V
 HSPLandroid/widget/ProgressBar;->onVisibilityAggregated(Z)V
@@ -14751,13 +29792,17 @@
 HSPLandroid/widget/ProgressBar;->refreshProgress(IIZZ)V
 HSPLandroid/widget/ProgressBar;->setIndeterminate(Z)V
 HSPLandroid/widget/ProgressBar;->setIndeterminateDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ProgressBar;->setIndeterminateTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/widget/ProgressBar;->setInterpolator(Landroid/content/Context;I)V
 HSPLandroid/widget/ProgressBar;->setInterpolator(Landroid/view/animation/Interpolator;)V
 HSPLandroid/widget/ProgressBar;->setMax(I)V
 HSPLandroid/widget/ProgressBar;->setMin(I)V
 HSPLandroid/widget/ProgressBar;->setProgress(I)V
+HSPLandroid/widget/ProgressBar;->setProgress(IZ)V
+HSPLandroid/widget/ProgressBar;->setProgressBackgroundTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/widget/ProgressBar;->setProgressDrawable(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/widget/ProgressBar;->setProgressInternal(IZZ)Z
+HSPLandroid/widget/ProgressBar;->setProgressTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/widget/ProgressBar;->setSecondaryProgress(I)V
 HSPLandroid/widget/ProgressBar;->setVisualProgress(IF)V
 HSPLandroid/widget/ProgressBar;->startAnimation()V
@@ -14766,6 +29811,8 @@
 HSPLandroid/widget/ProgressBar;->updateDrawableBounds(II)V
 HSPLandroid/widget/ProgressBar;->updateDrawableState()V
 HSPLandroid/widget/ProgressBar;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/widget/RadioButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/RadioButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 HSPLandroid/widget/RelativeLayout$DependencyGraph$Node;-><init>()V
 HSPLandroid/widget/RelativeLayout$DependencyGraph$Node;->acquire(Landroid/view/View;)Landroid/widget/RelativeLayout$DependencyGraph$Node;
 HSPLandroid/widget/RelativeLayout$DependencyGraph$Node;->release()V
@@ -14778,23 +29825,36 @@
 HSPLandroid/widget/RelativeLayout$DependencyGraph;->getSortedViews([Landroid/view/View;[I)V
 HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(II)V
 HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(Landroid/view/ViewGroup$MarginLayoutParams;)V
 HSPLandroid/widget/RelativeLayout$LayoutParams;->access$100(Landroid/widget/RelativeLayout$LayoutParams;)I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->access$102(Landroid/widget/RelativeLayout$LayoutParams;I)I
+HSPLandroid/widget/RelativeLayout$LayoutParams;->access$112(Landroid/widget/RelativeLayout$LayoutParams;I)I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->access$200(Landroid/widget/RelativeLayout$LayoutParams;)I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->access$202(Landroid/widget/RelativeLayout$LayoutParams;I)I
+HSPLandroid/widget/RelativeLayout$LayoutParams;->access$212(Landroid/widget/RelativeLayout$LayoutParams;I)I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->access$300(Landroid/widget/RelativeLayout$LayoutParams;)I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->access$302(Landroid/widget/RelativeLayout$LayoutParams;I)I
+HSPLandroid/widget/RelativeLayout$LayoutParams;->access$312(Landroid/widget/RelativeLayout$LayoutParams;I)I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->access$400(Landroid/widget/RelativeLayout$LayoutParams;)I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->access$402(Landroid/widget/RelativeLayout$LayoutParams;I)I
+HSPLandroid/widget/RelativeLayout$LayoutParams;->access$412(Landroid/widget/RelativeLayout$LayoutParams;I)I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->access$700(Landroid/widget/RelativeLayout$LayoutParams;)[I
+HSPLandroid/widget/RelativeLayout$LayoutParams;->addRule(I)V
 HSPLandroid/widget/RelativeLayout$LayoutParams;->addRule(II)V
 HSPLandroid/widget/RelativeLayout$LayoutParams;->getRules()[I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->getRules(I)[I
 HSPLandroid/widget/RelativeLayout$LayoutParams;->hasRelativeRules()Z
 HSPLandroid/widget/RelativeLayout$LayoutParams;->isRelativeRule(I)Z
+HSPLandroid/widget/RelativeLayout$LayoutParams;->removeRule(I)V
 HSPLandroid/widget/RelativeLayout$LayoutParams;->resolveLayoutDirection(I)V
 HSPLandroid/widget/RelativeLayout$LayoutParams;->resolveRules(I)V
 HSPLandroid/widget/RelativeLayout$LayoutParams;->shouldResolveLayoutDirection(I)Z
+HSPLandroid/widget/RelativeLayout$TopToBottomLeftToRightComparator;-><init>(Landroid/widget/RelativeLayout;)V
+HSPLandroid/widget/RelativeLayout$TopToBottomLeftToRightComparator;-><init>(Landroid/widget/RelativeLayout;Landroid/widget/RelativeLayout$1;)V
+HSPLandroid/widget/RelativeLayout$TopToBottomLeftToRightComparator;->compare(Landroid/view/View;Landroid/view/View;)I
+HSPLandroid/widget/RelativeLayout$TopToBottomLeftToRightComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/widget/RelativeLayout;-><init>(Landroid/content/Context;)V
 HSPLandroid/widget/RelativeLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/RelativeLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/RelativeLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
@@ -14804,8 +29864,11 @@
 HSPLandroid/widget/RelativeLayout;->centerVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V
 HSPLandroid/widget/RelativeLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
 HSPLandroid/widget/RelativeLayout;->compareLayoutPosition(Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams;)I
+HSPLandroid/widget/RelativeLayout;->dispatchPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)Z
+HSPLandroid/widget/RelativeLayout;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
 HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
 HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/RelativeLayout$LayoutParams;
+HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams;
 HSPLandroid/widget/RelativeLayout;->getAccessibilityClassName()Ljava/lang/CharSequence;
 HSPLandroid/widget/RelativeLayout;->getBaseline()I
 HSPLandroid/widget/RelativeLayout;->getChildMeasureSpec(IIIIIIII)I
@@ -14822,37 +29885,189 @@
 HSPLandroid/widget/RelativeLayout;->positionChildVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z
 HSPLandroid/widget/RelativeLayout;->queryCompatibilityModes(Landroid/content/Context;)V
 HSPLandroid/widget/RelativeLayout;->requestLayout()V
+HSPLandroid/widget/RelativeLayout;->setGravity(I)V
 HSPLandroid/widget/RelativeLayout;->shouldDelayChildPressedState()Z
 HSPLandroid/widget/RelativeLayout;->sortChildren()V
+HSPLandroid/widget/RemoteViews$1;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 HSPLandroid/widget/RemoteViews$2;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/RemoteViews;
 HSPLandroid/widget/RemoteViews$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
 HSPLandroid/widget/RemoteViews$Action;-><init>()V
 HSPLandroid/widget/RemoteViews$Action;-><init>(Landroid/widget/RemoteViews$1;)V
 HSPLandroid/widget/RemoteViews$Action;->hasSameAppInfo(Landroid/content/pm/ApplicationInfo;)Z
+HSPLandroid/widget/RemoteViews$Action;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
+HSPLandroid/widget/RemoteViews$Action;->setBitmapCache(Landroid/widget/RemoteViews$BitmapCache;)V
+HSPLandroid/widget/RemoteViews$AsyncApplyTask;-><init>(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews;Landroid/view/ViewGroup;Landroid/content/Context;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;Landroid/view/View;)V
+HSPLandroid/widget/RemoteViews$AsyncApplyTask;-><init>(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews;Landroid/view/ViewGroup;Landroid/content/Context;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;Landroid/view/View;Landroid/widget/RemoteViews$1;)V
+HSPLandroid/widget/RemoteViews$AsyncApplyTask;->access$1700(Landroid/widget/RemoteViews$AsyncApplyTask;)Landroid/view/View;
+HSPLandroid/widget/RemoteViews$AsyncApplyTask;->access$2300(Landroid/widget/RemoteViews$AsyncApplyTask;Ljava/util/concurrent/Executor;)Landroid/os/CancellationSignal;
+HSPLandroid/widget/RemoteViews$AsyncApplyTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/widget/RemoteViews$AsyncApplyTask;->doInBackground([Ljava/lang/Void;)Landroid/widget/RemoteViews$ViewTree;
+HSPLandroid/widget/RemoteViews$AsyncApplyTask;->onCancel()V
+HSPLandroid/widget/RemoteViews$AsyncApplyTask;->onPostExecute(Landroid/widget/RemoteViews$ViewTree;)V
+HSPLandroid/widget/RemoteViews$AsyncApplyTask;->onPostExecute(Ljava/lang/Object;)V
+HSPLandroid/widget/RemoteViews$AsyncApplyTask;->startTaskOnExecutor(Ljava/util/concurrent/Executor;)Landroid/os/CancellationSignal;
 HSPLandroid/widget/RemoteViews$BitmapCache;-><init>()V
 HSPLandroid/widget/RemoteViews$BitmapCache;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/widget/RemoteViews$BitmapCache;->getBitmapForId(I)Landroid/graphics/Bitmap;
 HSPLandroid/widget/RemoteViews$BitmapCache;->getBitmapId(Landroid/graphics/Bitmap;)I
+HSPLandroid/widget/RemoteViews$BitmapCache;->getBitmapMemory()I
 HSPLandroid/widget/RemoteViews$BitmapCache;->writeBitmapsToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/RemoteViews$BitmapReflectionAction;-><init>(Landroid/widget/RemoteViews;ILjava/lang/String;Landroid/graphics/Bitmap;)V
+HSPLandroid/widget/RemoteViews$BitmapReflectionAction;-><init>(Landroid/widget/RemoteViews;Landroid/os/Parcel;)V
+HSPLandroid/widget/RemoteViews$BitmapReflectionAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$BitmapReflectionAction;->getActionTag()I
+HSPLandroid/widget/RemoteViews$BitmapReflectionAction;->setBitmapCache(Landroid/widget/RemoteViews$BitmapCache;)V
+HSPLandroid/widget/RemoteViews$BitmapReflectionAction;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/RemoteViews$LayoutParamAction;-><init>(III)V
+HSPLandroid/widget/RemoteViews$LayoutParamAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$MethodArgs;-><init>()V
+HSPLandroid/widget/RemoteViews$MethodKey;-><init>()V
+HSPLandroid/widget/RemoteViews$MethodKey;->equals(Ljava/lang/Object;)Z
+HSPLandroid/widget/RemoteViews$MethodKey;->hashCode()I
+HSPLandroid/widget/RemoteViews$MethodKey;->set(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)V
 HSPLandroid/widget/RemoteViews$ReflectionAction;-><init>(Landroid/widget/RemoteViews;ILjava/lang/String;ILjava/lang/Object;)V
 HSPLandroid/widget/RemoteViews$ReflectionAction;-><init>(Landroid/widget/RemoteViews;Landroid/os/Parcel;)V
+HSPLandroid/widget/RemoteViews$ReflectionAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 HSPLandroid/widget/RemoteViews$ReflectionAction;->getActionTag()I
+HSPLandroid/widget/RemoteViews$ReflectionAction;->getParameterType()Ljava/lang/Class;
+HSPLandroid/widget/RemoteViews$ReflectionAction;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
 HSPLandroid/widget/RemoteViews$ReflectionAction;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/widget/RemoteViews$RemoteResponse;-><init>()V
+HSPLandroid/widget/RemoteViews$RemoteResponse;->access$300(Landroid/widget/RemoteViews$RemoteResponse;Landroid/os/Parcel;)V
+HSPLandroid/widget/RemoteViews$RemoteResponse;->access$400(Landroid/widget/RemoteViews$RemoteResponse;Landroid/os/Parcel;I)V
+HSPLandroid/widget/RemoteViews$RemoteResponse;->access$500(Landroid/widget/RemoteViews$RemoteResponse;)Landroid/app/PendingIntent;
+HSPLandroid/widget/RemoteViews$RemoteResponse;->fromPendingIntent(Landroid/app/PendingIntent;)Landroid/widget/RemoteViews$RemoteResponse;
+HSPLandroid/widget/RemoteViews$RemoteResponse;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/widget/RemoteViews$RemoteResponse;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/RemoteViews$RemoteViewsContextWrapper;-><init>(Landroid/content/Context;Landroid/content/Context;)V
+HSPLandroid/widget/RemoteViews$RemoteViewsContextWrapper;->getPackageName()Ljava/lang/String;
+HSPLandroid/widget/RemoteViews$RemoteViewsContextWrapper;->getResources()Landroid/content/res/Resources;
+HSPLandroid/widget/RemoteViews$RemoteViewsContextWrapper;->getTheme()Landroid/content/res/Resources$Theme;
+HSPLandroid/widget/RemoteViews$RunnableAction;-><init>(Ljava/lang/Runnable;)V
+HSPLandroid/widget/RemoteViews$RunnableAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$RuntimeAction;-><init>()V
+HSPLandroid/widget/RemoteViews$RuntimeAction;-><init>(Landroid/widget/RemoteViews$1;)V
+HSPLandroid/widget/RemoteViews$SetDrawableTint;-><init>(Landroid/widget/RemoteViews;IZILandroid/graphics/PorterDuff$Mode;)V
+HSPLandroid/widget/RemoteViews$SetDrawableTint;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$SetIntTagAction;-><init>(Landroid/widget/RemoteViews;III)V
+HSPLandroid/widget/RemoteViews$SetIntTagAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$SetOnClickResponse;-><init>(Landroid/widget/RemoteViews;ILandroid/widget/RemoteViews$RemoteResponse;)V
+HSPLandroid/widget/RemoteViews$SetOnClickResponse;-><init>(Landroid/widget/RemoteViews;Landroid/os/Parcel;)V
+HSPLandroid/widget/RemoteViews$SetOnClickResponse;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$SetOnClickResponse;->getActionTag()I
+HSPLandroid/widget/RemoteViews$SetOnClickResponse;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/RemoteViews$SetRemoteInputsAction;-><init>(Landroid/widget/RemoteViews;I[Landroid/app/RemoteInput;)V
+HSPLandroid/widget/RemoteViews$SetRemoteInputsAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$TextViewSizeAction;->getActionTag()I
+HSPLandroid/widget/RemoteViews$TextViewSizeAction;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/RemoteViews$ViewGroupActionAdd$1;-><init>(Landroid/widget/RemoteViews$ViewGroupActionAdd;Landroid/widget/RemoteViews$AsyncApplyTask;Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;)V
+HSPLandroid/widget/RemoteViews$ViewGroupActionAdd$1;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$ViewGroupActionAdd;-><init>(Landroid/widget/RemoteViews;ILandroid/widget/RemoteViews;)V
+HSPLandroid/widget/RemoteViews$ViewGroupActionAdd;-><init>(Landroid/widget/RemoteViews;ILandroid/widget/RemoteViews;I)V
+HSPLandroid/widget/RemoteViews$ViewGroupActionAdd;-><init>(Landroid/widget/RemoteViews;Landroid/os/Parcel;Landroid/widget/RemoteViews$BitmapCache;Landroid/content/pm/ApplicationInfo;ILjava/util/Map;)V
+HSPLandroid/widget/RemoteViews$ViewGroupActionAdd;->access$1800(Landroid/widget/RemoteViews$ViewGroupActionAdd;)I
+HSPLandroid/widget/RemoteViews$ViewGroupActionAdd;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
+HSPLandroid/widget/RemoteViews$ViewGroupActionRemove$1;-><init>(Landroid/widget/RemoteViews$ViewGroupActionRemove;Landroid/view/ViewGroup;)V
+HSPLandroid/widget/RemoteViews$ViewGroupActionRemove$1;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$ViewGroupActionRemove;-><init>(Landroid/widget/RemoteViews;I)V
+HSPLandroid/widget/RemoteViews$ViewGroupActionRemove;-><init>(Landroid/widget/RemoteViews;II)V
+HSPLandroid/widget/RemoteViews$ViewGroupActionRemove;->access$2100(Landroid/widget/RemoteViews$ViewGroupActionRemove;)I
+HSPLandroid/widget/RemoteViews$ViewGroupActionRemove;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
+HSPLandroid/widget/RemoteViews$ViewPaddingAction;-><init>(Landroid/widget/RemoteViews;IIIII)V
+HSPLandroid/widget/RemoteViews$ViewPaddingAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$ViewPaddingAction;->getActionTag()I
+HSPLandroid/widget/RemoteViews$ViewPaddingAction;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/RemoteViews$ViewTree;-><init>(Landroid/view/View;)V
+HSPLandroid/widget/RemoteViews$ViewTree;-><init>(Landroid/view/View;Landroid/widget/RemoteViews$1;)V
+HSPLandroid/widget/RemoteViews$ViewTree;->access$1400(Landroid/widget/RemoteViews$ViewTree;)Landroid/view/View;
+HSPLandroid/widget/RemoteViews$ViewTree;->access$2002(Landroid/widget/RemoteViews$ViewTree;Ljava/util/ArrayList;)Ljava/util/ArrayList;
+HSPLandroid/widget/RemoteViews$ViewTree;->addChild(Landroid/widget/RemoteViews$ViewTree;I)V
+HSPLandroid/widget/RemoteViews$ViewTree;->addViewChild(Landroid/view/View;)V
+HSPLandroid/widget/RemoteViews$ViewTree;->createTree()V
+HSPLandroid/widget/RemoteViews$ViewTree;->findViewById(I)Landroid/view/View;
+HSPLandroid/widget/RemoteViews$ViewTree;->findViewTreeById(I)Landroid/widget/RemoteViews$ViewTree;
+HSPLandroid/widget/RemoteViews$ViewTree;->replaceView(Landroid/view/View;)V
 HSPLandroid/widget/RemoteViews;-><init>(Landroid/content/pm/ApplicationInfo;I)V
 HSPLandroid/widget/RemoteViews;-><init>(Landroid/os/Parcel;)V
 HSPLandroid/widget/RemoteViews;-><init>(Landroid/os/Parcel;Landroid/widget/RemoteViews$BitmapCache;Landroid/content/pm/ApplicationInfo;ILjava/util/Map;)V
+HSPLandroid/widget/RemoteViews;-><init>(Landroid/os/Parcel;Landroid/widget/RemoteViews$BitmapCache;Landroid/content/pm/ApplicationInfo;ILjava/util/Map;Landroid/widget/RemoteViews$1;)V
+HSPLandroid/widget/RemoteViews;-><init>(Landroid/widget/RemoteViews;)V
+HSPLandroid/widget/RemoteViews;-><init>(Ljava/lang/String;I)V
+HSPLandroid/widget/RemoteViews;->access$1100(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews;)V
+HSPLandroid/widget/RemoteViews;->access$1300(Landroid/widget/RemoteViews;)I
+HSPLandroid/widget/RemoteViews;->access$2500(Landroid/widget/RemoteViews;Landroid/content/Context;Landroid/widget/RemoteViews;Landroid/view/ViewGroup;)Landroid/view/View;
+HSPLandroid/widget/RemoteViews;->access$2700(Landroid/widget/RemoteViews;)Ljava/util/ArrayList;
+HSPLandroid/widget/RemoteViews;->access$700(Landroid/widget/RemoteViews;Landroid/view/View;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/invoke/MethodHandle;
 HSPLandroid/widget/RemoteViews;->access$800(Landroid/widget/RemoteViews;)Landroid/widget/RemoteViews$BitmapCache;
+HSPLandroid/widget/RemoteViews;->access$900()Landroid/widget/RemoteViews$Action;
 HSPLandroid/widget/RemoteViews;->addAction(Landroid/widget/RemoteViews$Action;)V
+HSPLandroid/widget/RemoteViews;->addFlags(I)V
+HSPLandroid/widget/RemoteViews;->addView(ILandroid/widget/RemoteViews;)V
+HSPLandroid/widget/RemoteViews;->apply(Landroid/content/Context;Landroid/view/ViewGroup;)Landroid/view/View;
+HSPLandroid/widget/RemoteViews;->apply(Landroid/content/Context;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/view/View;
+HSPLandroid/widget/RemoteViews;->applyAsync(Landroid/content/Context;Landroid/view/ViewGroup;Ljava/util/concurrent/Executor;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/os/CancellationSignal;
+HSPLandroid/widget/RemoteViews;->clone()Landroid/widget/RemoteViews;
+HSPLandroid/widget/RemoteViews;->configureRemoteViewsAsChild(Landroid/widget/RemoteViews;)V
+HSPLandroid/widget/RemoteViews;->estimateMemoryUsage()I
 HSPLandroid/widget/RemoteViews;->getActionFromParcel(Landroid/os/Parcel;I)Landroid/widget/RemoteViews$Action;
+HSPLandroid/widget/RemoteViews;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
+HSPLandroid/widget/RemoteViews;->getAsyncApplyTask(Landroid/content/Context;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$AsyncApplyTask;
+HSPLandroid/widget/RemoteViews;->getContextForResources(Landroid/content/Context;)Landroid/content/Context;
+HSPLandroid/widget/RemoteViews;->getLayoutId()I
+HSPLandroid/widget/RemoteViews;->getMethod(Landroid/view/View;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/invoke/MethodHandle;
+HSPLandroid/widget/RemoteViews;->getPackage()Ljava/lang/String;
+HSPLandroid/widget/RemoteViews;->getRemoteViewsToApply(Landroid/content/Context;)Landroid/widget/RemoteViews;
+HSPLandroid/widget/RemoteViews;->hasFlags(I)Z
 HSPLandroid/widget/RemoteViews;->hasLandscapeAndPortraitLayouts()Z
+HSPLandroid/widget/RemoteViews;->hasSameAppInfo(Landroid/content/pm/ApplicationInfo;)Z
+HSPLandroid/widget/RemoteViews;->inflateView(Landroid/content/Context;Landroid/widget/RemoteViews;Landroid/view/ViewGroup;)Landroid/view/View;
+HSPLandroid/widget/RemoteViews;->inflateView(Landroid/content/Context;Landroid/widget/RemoteViews;Landroid/view/ViewGroup;I)Landroid/view/View;
+HSPLandroid/widget/RemoteViews;->lambda$static$0(Ljava/lang/Class;)Z
+HSPLandroid/widget/RemoteViews;->performApply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 HSPLandroid/widget/RemoteViews;->readActionsFromParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/RemoteViews;->reapply(Landroid/content/Context;Landroid/view/View;)V
+HSPLandroid/widget/RemoteViews;->reapply(Landroid/content/Context;Landroid/view/View;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews;->reapplyAsync(Landroid/content/Context;Landroid/view/View;Ljava/util/concurrent/Executor;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/os/CancellationSignal;
+HSPLandroid/widget/RemoteViews;->reduceImageSizes(II)V
+HSPLandroid/widget/RemoteViews;->removeAllViews(I)V
+HSPLandroid/widget/RemoteViews;->setBitmap(ILjava/lang/String;Landroid/graphics/Bitmap;)V
+HSPLandroid/widget/RemoteViews;->setBitmapCache(Landroid/widget/RemoteViews$BitmapCache;)V
+HSPLandroid/widget/RemoteViews;->setBoolean(ILjava/lang/String;Z)V
+HSPLandroid/widget/RemoteViews;->setBundle(ILjava/lang/String;Landroid/os/Bundle;)V
 HSPLandroid/widget/RemoteViews;->setCharSequence(ILjava/lang/String;Ljava/lang/CharSequence;)V
+HSPLandroid/widget/RemoteViews;->setContentDescription(ILjava/lang/CharSequence;)V
+HSPLandroid/widget/RemoteViews;->setDrawableTint(IZILandroid/graphics/PorterDuff$Mode;)V
+HSPLandroid/widget/RemoteViews;->setIcon(ILjava/lang/String;Landroid/graphics/drawable/Icon;)V
+HSPLandroid/widget/RemoteViews;->setImageViewBitmap(ILandroid/graphics/Bitmap;)V
+HSPLandroid/widget/RemoteViews;->setImageViewIcon(ILandroid/graphics/drawable/Icon;)V
+HSPLandroid/widget/RemoteViews;->setImageViewResource(II)V
 HSPLandroid/widget/RemoteViews;->setInt(ILjava/lang/String;I)V
+HSPLandroid/widget/RemoteViews;->setIntTag(III)V
+HSPLandroid/widget/RemoteViews;->setLong(ILjava/lang/String;J)V
+HSPLandroid/widget/RemoteViews;->setNotRoot()V
 HSPLandroid/widget/RemoteViews;->setOnClickPendingIntent(ILandroid/app/PendingIntent;)V
 HSPLandroid/widget/RemoteViews;->setOnClickResponse(ILandroid/widget/RemoteViews$RemoteResponse;)V
+HSPLandroid/widget/RemoteViews;->setProgressBackgroundTintList(ILandroid/content/res/ColorStateList;)V
+HSPLandroid/widget/RemoteViews;->setProgressBar(IIIZ)V
+HSPLandroid/widget/RemoteViews;->setProgressIndeterminateTintList(ILandroid/content/res/ColorStateList;)V
+HSPLandroid/widget/RemoteViews;->setProgressTintList(ILandroid/content/res/ColorStateList;)V
+HSPLandroid/widget/RemoteViews;->setRemoteInputs(I[Landroid/app/RemoteInput;)V
+HSPLandroid/widget/RemoteViews;->setTextColor(II)V
+HSPLandroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V
+HSPLandroid/widget/RemoteViews;->setViewLayoutMarginBottomDimen(II)V
+HSPLandroid/widget/RemoteViews;->setViewLayoutMarginEnd(II)V
+HSPLandroid/widget/RemoteViews;->setViewLayoutWidth(II)V
+HSPLandroid/widget/RemoteViews;->setViewPadding(IIIII)V
 HSPLandroid/widget/RemoteViews;->setViewVisibility(II)V
+HSPLandroid/widget/RemoteViews;->shouldUseStaticFilter()Z
 HSPLandroid/widget/RemoteViews;->writeActionsToParcel(Landroid/os/Parcel;)V
 HSPLandroid/widget/RemoteViews;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/RtlSpacingHelper;-><init>()V
+HSPLandroid/widget/RtlSpacingHelper;->getEnd()I
+HSPLandroid/widget/RtlSpacingHelper;->getStart()I
+HSPLandroid/widget/RtlSpacingHelper;->setAbsolute(II)V
+HSPLandroid/widget/RtlSpacingHelper;->setDirection(Z)V
+HSPLandroid/widget/RtlSpacingHelper;->setRelative(II)V
 HSPLandroid/widget/ScrollBarDrawable;-><init>()V
 HSPLandroid/widget/ScrollBarDrawable;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/widget/ScrollBarDrawable;->drawThumb(Landroid/graphics/Canvas;Landroid/graphics/Rect;IIZ)V
@@ -14865,44 +30080,79 @@
 HSPLandroid/widget/ScrollBarDrawable;->onStateChange([I)Z
 HSPLandroid/widget/ScrollBarDrawable;->propagateCurrentState(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/widget/ScrollBarDrawable;->setAlpha(I)V
+HSPLandroid/widget/ScrollBarDrawable;->setAlwaysDrawVerticalTrack(Z)V
 HSPLandroid/widget/ScrollBarDrawable;->setHorizontalThumbDrawable(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/widget/ScrollBarDrawable;->setHorizontalTrackDrawable(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/widget/ScrollBarDrawable;->setParameters(IIIZ)V
 HSPLandroid/widget/ScrollBarDrawable;->setVerticalThumbDrawable(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/widget/ScrollBarDrawable;->setVerticalTrackDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ScrollView$SavedState;-><init>(Landroid/os/Parcelable;)V
+HSPLandroid/widget/ScrollView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/widget/ScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/ScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/ScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/ScrollView;->addView(Landroid/view/View;)V
+HSPLandroid/widget/ScrollView;->addView(Landroid/view/View;I)V
 HSPLandroid/widget/ScrollView;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
 HSPLandroid/widget/ScrollView;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
 HSPLandroid/widget/ScrollView;->clamp(III)I
 HSPLandroid/widget/ScrollView;->computeScroll()V
+HSPLandroid/widget/ScrollView;->computeScrollDeltaToGetChildRectOnScreen(Landroid/graphics/Rect;)I
 HSPLandroid/widget/ScrollView;->computeVerticalScrollOffset()I
 HSPLandroid/widget/ScrollView;->computeVerticalScrollRange()I
 HSPLandroid/widget/ScrollView;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/ScrollView;->endDrag()V
+HSPLandroid/widget/ScrollView;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HSPLandroid/widget/ScrollView;->getScrollRange()I
+HSPLandroid/widget/ScrollView;->inChild(II)Z
 HSPLandroid/widget/ScrollView;->initScrollView()V
+HSPLandroid/widget/ScrollView;->initVelocityTrackerIfNotExists()V
+HSPLandroid/widget/ScrollView;->isWithinDeltaOfScreen(Landroid/view/View;II)Z
 HSPLandroid/widget/ScrollView;->measureChildWithMargins(Landroid/view/View;IIII)V
 HSPLandroid/widget/ScrollView;->onDetachedFromWindow()V
 HSPLandroid/widget/ScrollView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/widget/ScrollView;->onLayout(ZIIII)V
 HSPLandroid/widget/ScrollView;->onMeasure(II)V
+HSPLandroid/widget/ScrollView;->onOverScrolled(IIZZ)V
+HSPLandroid/widget/ScrollView;->onRequestFocusInDescendants(ILandroid/graphics/Rect;)Z
+HSPLandroid/widget/ScrollView;->onSaveInstanceState()Landroid/os/Parcelable;
 HSPLandroid/widget/ScrollView;->onSizeChanged(IIII)V
+HSPLandroid/widget/ScrollView;->onTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/widget/ScrollView;->recycleVelocityTracker()V
+HSPLandroid/widget/ScrollView;->requestChildFocus(Landroid/view/View;Landroid/view/View;)V
+HSPLandroid/widget/ScrollView;->requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z
 HSPLandroid/widget/ScrollView;->requestLayout()V
 HSPLandroid/widget/ScrollView;->scrollTo(II)V
+HSPLandroid/widget/ScrollView;->scrollToChildRect(Landroid/graphics/Rect;Z)Z
+HSPLandroid/widget/ScrollView;->scrollToDescendant(Landroid/view/View;)V
 HSPLandroid/widget/ScrollView;->setFillViewport(Z)V
+HSPLandroid/widget/ScrollView;->shouldDelayChildPressedState()Z
 HSPLandroid/widget/ScrollView;->shouldDisplayEdgeEffects()Z
 HSPLandroid/widget/Scroller$ViscousFluidInterpolator;-><init>()V
+HSPLandroid/widget/Scroller$ViscousFluidInterpolator;->getInterpolation(F)F
+HSPLandroid/widget/Scroller$ViscousFluidInterpolator;->viscousFluid(F)F
+HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;)V
 HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V
 HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V
+HSPLandroid/widget/Scroller;->abortAnimation()V
 HSPLandroid/widget/Scroller;->computeDeceleration(F)F
 HSPLandroid/widget/Scroller;->computeScrollOffset()Z
+HSPLandroid/widget/Scroller;->getCurrX()I
+HSPLandroid/widget/Scroller;->getCurrY()I
 HSPLandroid/widget/Scroller;->isFinished()Z
+HSPLandroid/widget/Scroller;->startScroll(IIIII)V
+HSPLandroid/widget/SeekBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/SeekBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/SeekBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/SeekBar;->onProgressRefresh(FZI)V
+HSPLandroid/widget/SeekBar;->setOnSeekBarChangeListener(Landroid/widget/SeekBar$OnSeekBarChangeListener;)V
 HSPLandroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;-><init>(Landroid/widget/TextView;)V
 HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;-><init>(Landroid/widget/SelectionActionModeHelper$SelectionTracker;)V
 HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;-><init>(Landroid/widget/SelectionActionModeHelper$SelectionTracker;Landroid/widget/SelectionActionModeHelper$1;)V
 HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker;-><init>(Landroid/widget/TextView;)V
 HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker;->isSelectionStarted()Z
 HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker;->onTextChanged(IILandroid/view/textclassifier/TextClassification;)V
+HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker;->resetSelection(ILandroid/widget/Editor;)Z
 HSPLandroid/widget/SelectionActionModeHelper$TextClassificationHelper;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Ljava/lang/CharSequence;IILandroid/os/LocaleList;)V
 HSPLandroid/widget/SelectionActionModeHelper$TextClassificationHelper;->init(Ljava/util/function/Supplier;Ljava/lang/CharSequence;IILandroid/os/LocaleList;)V
 HSPLandroid/widget/SelectionActionModeHelper;-><init>(Landroid/widget/Editor;)V
@@ -14911,17 +30161,131 @@
 HSPLandroid/widget/SelectionActionModeHelper;->isDrawingHighlight()Z
 HSPLandroid/widget/SelectionActionModeHelper;->onDraw(Landroid/graphics/Canvas;)V
 HSPLandroid/widget/SelectionActionModeHelper;->onTextChanged(II)V
+HSPLandroid/widget/SelectionActionModeHelper;->resetSelection(I)Z
 HSPLandroid/widget/SmartSelectSprite;-><init>(Landroid/content/Context;ILjava/lang/Runnable;)V
 HSPLandroid/widget/SmartSelectSprite;->isAnimationActive()Z
+HSPLandroid/widget/Space;-><init>(Landroid/content/Context;)V
 HSPLandroid/widget/Space;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/Space;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/Space;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/Space;->draw(Landroid/graphics/Canvas;)V
 HSPLandroid/widget/Space;->getDefaultSize2(II)I
 HSPLandroid/widget/Space;->onMeasure(II)V
+HSPLandroid/widget/SpellChecker$1;-><init>(Landroid/widget/SpellChecker;)V
+HSPLandroid/widget/SpellChecker$1;->run()V
+HSPLandroid/widget/SpellChecker$SpellParser;-><init>(Landroid/widget/SpellChecker;)V
+HSPLandroid/widget/SpellChecker$SpellParser;-><init>(Landroid/widget/SpellChecker;Landroid/widget/SpellChecker$1;)V
+HSPLandroid/widget/SpellChecker$SpellParser;->isFinished()Z
+HSPLandroid/widget/SpellChecker$SpellParser;->parse()V
+HSPLandroid/widget/SpellChecker$SpellParser;->parse(II)V
+HSPLandroid/widget/SpellChecker$SpellParser;->removeRangeSpan(Landroid/text/Editable;)V
+HSPLandroid/widget/SpellChecker$SpellParser;->setRangeSpan(Landroid/text/Editable;II)V
+HSPLandroid/widget/SpellChecker$SpellParser;->stop()V
 HSPLandroid/widget/SpellChecker;-><init>(Landroid/widget/TextView;)V
+HSPLandroid/widget/SpellChecker;->access$100(Landroid/widget/SpellChecker;)[Landroid/widget/SpellChecker$SpellParser;
+HSPLandroid/widget/SpellChecker;->access$1000(Landroid/widget/SpellChecker;)V
+HSPLandroid/widget/SpellChecker;->access$200(Landroid/widget/SpellChecker;)Landroid/widget/TextView;
+HSPLandroid/widget/SpellChecker;->access$400(Landroid/widget/SpellChecker;)Z
+HSPLandroid/widget/SpellChecker;->access$500(Landroid/widget/SpellChecker;)Landroid/text/method/WordIterator;
+HSPLandroid/widget/SpellChecker;->access$600(Landroid/widget/SpellChecker;)I
+HSPLandroid/widget/SpellChecker;->access$700(Landroid/widget/SpellChecker;)[Landroid/text/style/SpellCheckSpan;
+HSPLandroid/widget/SpellChecker;->access$800(Landroid/widget/SpellChecker;)[I
+HSPLandroid/widget/SpellChecker;->access$900(Landroid/widget/SpellChecker;Landroid/text/Editable;II)V
+HSPLandroid/widget/SpellChecker;->addSpellCheckSpan(Landroid/text/Editable;II)V
 HSPLandroid/widget/SpellChecker;->closeSession()V
+HSPLandroid/widget/SpellChecker;->isSessionActive()Z
+HSPLandroid/widget/SpellChecker;->nextSpellCheckSpanIndex()I
+HSPLandroid/widget/SpellChecker;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V
+HSPLandroid/widget/SpellChecker;->onGetSuggestionsInternal(Landroid/view/textservice/SuggestionsInfo;II)Landroid/text/style/SpellCheckSpan;
+HSPLandroid/widget/SpellChecker;->onSelectionChanged()V
+HSPLandroid/widget/SpellChecker;->onSpellCheckSpanRemoved(Landroid/text/style/SpellCheckSpan;)V
 HSPLandroid/widget/SpellChecker;->resetSession()V
+HSPLandroid/widget/SpellChecker;->scheduleNewSpellCheck()V
+HSPLandroid/widget/SpellChecker;->setLocale(Ljava/util/Locale;)V
+HSPLandroid/widget/SpellChecker;->spellCheck()V
 HSPLandroid/widget/SpellChecker;->spellCheck(II)V
+HSPLandroid/widget/Spinner$1;-><init>(Landroid/widget/Spinner;Landroid/view/View;Landroid/widget/Spinner$DropdownPopup;)V
+HSPLandroid/widget/Spinner$DropDownAdapter;-><init>(Landroid/widget/SpinnerAdapter;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/widget/Spinner$DropDownAdapter;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
+HSPLandroid/widget/Spinner$DropdownPopup$1;-><init>(Landroid/widget/Spinner$DropdownPopup;Landroid/widget/Spinner;)V
+HSPLandroid/widget/Spinner$DropdownPopup;-><init>(Landroid/widget/Spinner;Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/Spinner$DropdownPopup;->setAdapter(Landroid/widget/ListAdapter;)V
+HSPLandroid/widget/Spinner$DropdownPopup;->setPromptText(Ljava/lang/CharSequence;)V
+HSPLandroid/widget/Spinner$SavedState$1;-><init>()V
+HSPLandroid/widget/Spinner$SavedState;-><clinit>()V
+HSPLandroid/widget/Spinner$SavedState;-><init>(Landroid/os/Parcelable;)V
+HSPLandroid/widget/Spinner$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/Spinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/Spinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;III)V
+HSPLandroid/widget/Spinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IIILandroid/content/res/Resources$Theme;)V
+HSPLandroid/widget/Spinner;->layout(IZ)V
+HSPLandroid/widget/Spinner;->makeView(IZ)Landroid/view/View;
+HSPLandroid/widget/Spinner;->onDetachedFromWindow()V
+HSPLandroid/widget/Spinner;->onLayout(ZIIII)V
+HSPLandroid/widget/Spinner;->onMeasure(II)V
+HSPLandroid/widget/Spinner;->onSaveInstanceState()Landroid/os/Parcelable;
+HSPLandroid/widget/Spinner;->setAdapter(Landroid/widget/SpinnerAdapter;)V
+HSPLandroid/widget/Spinner;->setUpChild(Landroid/view/View;Z)V
+HSPLandroid/widget/Switch$1;->get(Landroid/widget/Switch;)Ljava/lang/Float;
+HSPLandroid/widget/Switch$1;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/widget/Switch$1;->setValue(Landroid/widget/Switch;F)V
+HSPLandroid/widget/Switch$1;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/widget/Switch;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/Switch;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/Switch;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/Switch;->access$000(Landroid/widget/Switch;)F
+HSPLandroid/widget/Switch;->access$100(Landroid/widget/Switch;F)V
+HSPLandroid/widget/Switch;->animateThumbToCheckedState(Z)V
+HSPLandroid/widget/Switch;->cancelPositionAnimator()V
+HSPLandroid/widget/Switch;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/Switch;->drawableStateChanged()V
+HSPLandroid/widget/Switch;->getButtonStateDescription()Ljava/lang/CharSequence;
+HSPLandroid/widget/Switch;->getCompoundPaddingLeft()I
+HSPLandroid/widget/Switch;->getCompoundPaddingRight()I
+HSPLandroid/widget/Switch;->getTargetCheckedState()Z
+HSPLandroid/widget/Switch;->getThumbOffset()I
+HSPLandroid/widget/Switch;->getThumbScrollRange()I
+HSPLandroid/widget/Switch;->jumpDrawablesToCurrentState()V
+HSPLandroid/widget/Switch;->onCreateDrawableState(I)[I
+HSPLandroid/widget/Switch;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/Switch;->onLayout(ZIIII)V
+HSPLandroid/widget/Switch;->onMeasure(II)V
+HSPLandroid/widget/Switch;->setChecked(Z)V
+HSPLandroid/widget/Switch;->setSwitchTextAppearance(Landroid/content/Context;I)V
+HSPLandroid/widget/Switch;->setSwitchTypeface(Landroid/graphics/Typeface;)V
+HSPLandroid/widget/Switch;->setSwitchTypeface(Landroid/graphics/Typeface;I)V
+HSPLandroid/widget/Switch;->setSwitchTypefaceByIndex(II)V
+HSPLandroid/widget/Switch;->setThumbPosition(F)V
+HSPLandroid/widget/Switch;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/widget/TextClock$1;-><init>(Landroid/widget/TextClock;)V
+HSPLandroid/widget/TextClock$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLandroid/widget/TextClock$2;-><init>(Landroid/widget/TextClock;)V
+HSPLandroid/widget/TextClock$FormatChangeObserver;-><init>(Landroid/widget/TextClock;Landroid/os/Handler;)V
+HSPLandroid/widget/TextClock;-><clinit>()V
+HSPLandroid/widget/TextClock;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/TextClock;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/TextClock;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/TextClock;->abc(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/widget/TextClock;->access$100(Landroid/widget/TextClock;)V
+HSPLandroid/widget/TextClock;->access$200(Landroid/widget/TextClock;)Z
+HSPLandroid/widget/TextClock;->access$300(Landroid/widget/TextClock;)Ljava/lang/String;
+HSPLandroid/widget/TextClock;->access$500(Landroid/widget/TextClock;)Z
+HSPLandroid/widget/TextClock;->chooseFormat()V
+HSPLandroid/widget/TextClock;->createTime(Ljava/lang/String;)V
+HSPLandroid/widget/TextClock;->init()V
+HSPLandroid/widget/TextClock;->is24HourModeEnabled()Z
+HSPLandroid/widget/TextClock;->onAttachedToWindow()V
+HSPLandroid/widget/TextClock;->onTimeChanged()V
+HSPLandroid/widget/TextClock;->onVisibilityAggregated(Z)V
+HSPLandroid/widget/TextClock;->refreshTime()V
+HSPLandroid/widget/TextClock;->registerObserver()V
+HSPLandroid/widget/TextClock;->registerReceiver()V
+HSPLandroid/widget/TextClock;->setFormat12Hour(Ljava/lang/CharSequence;)V
+HSPLandroid/widget/TextClock;->setFormat24Hour(Ljava/lang/CharSequence;)V
+HSPLandroid/widget/TextClock;->setShowCurrentUserTime(Z)V
+HSPLandroid/widget/TextClock;->unregisterObserver()V
+HSPLandroid/widget/TextView$2;->run()V
+HSPLandroid/widget/TextView$3;-><init>(Landroid/widget/TextView;)V
 HSPLandroid/widget/TextView$3;->run()V
 HSPLandroid/widget/TextView$ChangeWatcher;-><init>(Landroid/widget/TextView;)V
 HSPLandroid/widget/TextView$ChangeWatcher;-><init>(Landroid/widget/TextView;Landroid/widget/TextView$1;)V
@@ -14935,6 +30299,10 @@
 HSPLandroid/widget/TextView$Drawables;->applyErrorDrawableIfNeeded(I)V
 HSPLandroid/widget/TextView$Drawables;->hasMetadata()Z
 HSPLandroid/widget/TextView$Drawables;->resolveWithLayoutDirection(I)Z
+HSPLandroid/widget/TextView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/TextView$SavedState;
+HSPLandroid/widget/TextView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/widget/TextView$SavedState;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/widget/TextView$SavedState;-><init>(Landroid/os/Parcel;Landroid/widget/TextView$1;)V
 HSPLandroid/widget/TextView$SavedState;-><init>(Landroid/os/Parcelable;)V
 HSPLandroid/widget/TextView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/widget/TextView$TextAppearanceAttributes;-><init>()V
@@ -14943,6 +30311,10 @@
 HSPLandroid/widget/TextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 HSPLandroid/widget/TextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 HSPLandroid/widget/TextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/TextView;->access$1100(Landroid/widget/TextView;)Landroid/content/Context;
+HSPLandroid/widget/TextView;->access$1300(Landroid/widget/TextView;Ljava/lang/CharSequence;III)V
+HSPLandroid/widget/TextView;->access$1400(Landroid/widget/TextView;)Landroid/content/Context;
+HSPLandroid/widget/TextView;->access$400(Landroid/widget/TextView;)V
 HSPLandroid/widget/TextView;->addTextChangedListener(Landroid/text/TextWatcher;)V
 HSPLandroid/widget/TextView;->applyCompoundDrawableTint()V
 HSPLandroid/widget/TextView;->applySingleLine(ZZZ)V
@@ -14952,23 +30324,45 @@
 HSPLandroid/widget/TextView;->beginBatchEdit()V
 HSPLandroid/widget/TextView;->bringPointIntoView(I)Z
 HSPLandroid/widget/TextView;->bringTextIntoView()Z
+HSPLandroid/widget/TextView;->canCopy()Z
+HSPLandroid/widget/TextView;->canCut()Z
+HSPLandroid/widget/TextView;->canMarquee()Z
+HSPLandroid/widget/TextView;->canPaste()Z
+HSPLandroid/widget/TextView;->canProcessText()Z
+HSPLandroid/widget/TextView;->canShare()Z
 HSPLandroid/widget/TextView;->cancelLongPress()V
 HSPLandroid/widget/TextView;->checkForRelayout()V
 HSPLandroid/widget/TextView;->checkForResize()V
+HSPLandroid/widget/TextView;->cleanupAutoSizePresetSizes([I)[I
 HSPLandroid/widget/TextView;->compressText(F)Z
+HSPLandroid/widget/TextView;->computeHorizontalScrollRange()I
 HSPLandroid/widget/TextView;->computeScroll()V
+HSPLandroid/widget/TextView;->computeVerticalScrollExtent()I
+HSPLandroid/widget/TextView;->computeVerticalScrollRange()I
+HSPLandroid/widget/TextView;->convertFromViewportToContentCoordinates(Landroid/graphics/Rect;)V
+HSPLandroid/widget/TextView;->convertToLocalHorizontalCoordinate(F)F
 HSPLandroid/widget/TextView;->createEditorIfNeeded()V
 HSPLandroid/widget/TextView;->desired(Landroid/text/Layout;)I
+HSPLandroid/widget/TextView;->didTouchFocusSelect()Z
+HSPLandroid/widget/TextView;->doKeyDown(ILandroid/view/KeyEvent;Landroid/view/KeyEvent;)I
 HSPLandroid/widget/TextView;->drawableHotspotChanged(FF)V
 HSPLandroid/widget/TextView;->drawableStateChanged()V
 HSPLandroid/widget/TextView;->endBatchEdit()V
+HSPLandroid/widget/TextView;->findLargestTextSizeWhichFits(Landroid/graphics/RectF;)I
 HSPLandroid/widget/TextView;->fixFocusableAndClickableSettings()V
 HSPLandroid/widget/TextView;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HSPLandroid/widget/TextView;->getAccessibilitySelectionEnd()I
+HSPLandroid/widget/TextView;->getAccessibilitySelectionStart()I
+HSPLandroid/widget/TextView;->getAutoSizeStepGranularity()I
 HSPLandroid/widget/TextView;->getAutofillType()I
 HSPLandroid/widget/TextView;->getAutofillValue()Landroid/view/autofill/AutofillValue;
 HSPLandroid/widget/TextView;->getBaseline()I
 HSPLandroid/widget/TextView;->getBaselineOffset()I
+HSPLandroid/widget/TextView;->getBottomVerticalOffset(Z)I
 HSPLandroid/widget/TextView;->getBoxHeight(Landroid/text/Layout;)I
+HSPLandroid/widget/TextView;->getBreakStrategy()I
+HSPLandroid/widget/TextView;->getCompoundDrawablePadding()I
+HSPLandroid/widget/TextView;->getCompoundDrawables()[Landroid/graphics/drawable/Drawable;
 HSPLandroid/widget/TextView;->getCompoundDrawablesRelative()[Landroid/graphics/drawable/Drawable;
 HSPLandroid/widget/TextView;->getCompoundPaddingBottom()I
 HSPLandroid/widget/TextView;->getCompoundPaddingLeft()I
@@ -14980,63 +30374,103 @@
 HSPLandroid/widget/TextView;->getDesiredHeight()I
 HSPLandroid/widget/TextView;->getDesiredHeight(Landroid/text/Layout;Z)I
 HSPLandroid/widget/TextView;->getEditableText()Landroid/text/Editable;
+HSPLandroid/widget/TextView;->getEllipsize()Landroid/text/TextUtils$TruncateAt;
 HSPLandroid/widget/TextView;->getError()Ljava/lang/CharSequence;
 HSPLandroid/widget/TextView;->getExtendedPaddingBottom()I
 HSPLandroid/widget/TextView;->getExtendedPaddingTop()I
+HSPLandroid/widget/TextView;->getFadeHeight(Z)I
+HSPLandroid/widget/TextView;->getFadeTop(Z)I
 HSPLandroid/widget/TextView;->getFilters()[Landroid/text/InputFilter;
 HSPLandroid/widget/TextView;->getFocusedRect(Landroid/graphics/Rect;)V
 HSPLandroid/widget/TextView;->getFreezesText()Z
 HSPLandroid/widget/TextView;->getGravity()I
 HSPLandroid/widget/TextView;->getHint()Ljava/lang/CharSequence;
+HSPLandroid/widget/TextView;->getHorizontalFadingEdgeStrength(FF)F
 HSPLandroid/widget/TextView;->getHorizontalOffsetForDrawables()I
 HSPLandroid/widget/TextView;->getHorizontallyScrolling()Z
+HSPLandroid/widget/TextView;->getHyphenationFrequency()I
+HSPLandroid/widget/TextView;->getIncludeFontPadding()Z
 HSPLandroid/widget/TextView;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager;
 HSPLandroid/widget/TextView;->getInputType()I
 HSPLandroid/widget/TextView;->getInterestingRect(Landroid/graphics/Rect;I)V
+HSPLandroid/widget/TextView;->getIterableTextForAccessibility()Ljava/lang/CharSequence;
+HSPLandroid/widget/TextView;->getJustificationMode()I
 HSPLandroid/widget/TextView;->getKeyListener()Landroid/text/method/KeyListener;
 HSPLandroid/widget/TextView;->getLayout()Landroid/text/Layout;
 HSPLandroid/widget/TextView;->getLayoutAlignment()Landroid/text/Layout$Alignment;
+HSPLandroid/widget/TextView;->getLeftFadingEdgeStrength()F
+HSPLandroid/widget/TextView;->getLineAtCoordinate(F)I
+HSPLandroid/widget/TextView;->getLineAtCoordinateUnclamped(F)I
 HSPLandroid/widget/TextView;->getLineCount()I
 HSPLandroid/widget/TextView;->getLineHeight()I
+HSPLandroid/widget/TextView;->getLineSpacingExtra()F
+HSPLandroid/widget/TextView;->getLineSpacingMultiplier()F
+HSPLandroid/widget/TextView;->getMaxEms()I
 HSPLandroid/widget/TextView;->getMaxLines()I
+HSPLandroid/widget/TextView;->getMinEms()I
+HSPLandroid/widget/TextView;->getMinHeight()I
+HSPLandroid/widget/TextView;->getMinWidth()I
 HSPLandroid/widget/TextView;->getMovementMethod()Landroid/text/method/MovementMethod;
+HSPLandroid/widget/TextView;->getOffsetAtCoordinate(IF)I
+HSPLandroid/widget/TextView;->getOffsetForPosition(FF)I
 HSPLandroid/widget/TextView;->getPaint()Landroid/text/TextPaint;
+HSPLandroid/widget/TextView;->getPaintFlags()I
+HSPLandroid/widget/TextView;->getRightFadingEdgeStrength()F
 HSPLandroid/widget/TextView;->getSelectionEnd()I
 HSPLandroid/widget/TextView;->getSelectionStart()I
 HSPLandroid/widget/TextView;->getServiceManagerForUser(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
 HSPLandroid/widget/TextView;->getSpellCheckerLocale()Ljava/util/Locale;
 HSPLandroid/widget/TextView;->getText()Ljava/lang/CharSequence;
+HSPLandroid/widget/TextView;->getTextColors()Landroid/content/res/ColorStateList;
 HSPLandroid/widget/TextView;->getTextCursorDrawable()Landroid/graphics/drawable/Drawable;
 HSPLandroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic;
+HSPLandroid/widget/TextView;->getTextForAccessibility()Ljava/lang/CharSequence;
 HSPLandroid/widget/TextView;->getTextLocale()Ljava/util/Locale;
 HSPLandroid/widget/TextView;->getTextLocales()Landroid/os/LocaleList;
+HSPLandroid/widget/TextView;->getTextSelectHandle()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/TextView;->getTextSelectHandleLeft()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/TextView;->getTextSelectHandleRight()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/TextView;->getTextServicesLocale(Z)Ljava/util/Locale;
+HSPLandroid/widget/TextView;->getTextServicesManagerForUser()Landroid/view/textservice/TextServicesManager;
 HSPLandroid/widget/TextView;->getTextSize()F
+HSPLandroid/widget/TextView;->getTotalPaddingBottom()I
 HSPLandroid/widget/TextView;->getTotalPaddingLeft()I
 HSPLandroid/widget/TextView;->getTotalPaddingRight()I
 HSPLandroid/widget/TextView;->getTotalPaddingTop()I
 HSPLandroid/widget/TextView;->getTransformationMethod()Landroid/text/method/TransformationMethod;
+HSPLandroid/widget/TextView;->getTypeface()Landroid/graphics/Typeface;
+HSPLandroid/widget/TextView;->getTypefaceStyle()I
 HSPLandroid/widget/TextView;->getUpdatedHighlightPath()Landroid/graphics/Path;
 HSPLandroid/widget/TextView;->getVerticalOffset(Z)I
+HSPLandroid/widget/TextView;->handleBackInTextActionModeIfNeeded(Landroid/view/KeyEvent;)Z
 HSPLandroid/widget/TextView;->handleTextChanged(Ljava/lang/CharSequence;III)V
 HSPLandroid/widget/TextView;->hasOverlappingRendering()Z
 HSPLandroid/widget/TextView;->hasPasswordTransformationMethod()Z
 HSPLandroid/widget/TextView;->hasSelection()Z
 HSPLandroid/widget/TextView;->hideErrorIfUnchanged()V
+HSPLandroid/widget/TextView;->invalidateCursor()V
 HSPLandroid/widget/TextView;->invalidateCursor(III)V
 HSPLandroid/widget/TextView;->invalidateCursorPath()V
 HSPLandroid/widget/TextView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/widget/TextView;->invalidateRegion(IIZ)V
 HSPLandroid/widget/TextView;->isAutoSizeEnabled()Z
 HSPLandroid/widget/TextView;->isAutofillable()Z
+HSPLandroid/widget/TextView;->isDeviceProvisioned()Z
+HSPLandroid/widget/TextView;->isDirectionalNavigationKey(I)Z
+HSPLandroid/widget/TextView;->isInBatchEditMode()Z
 HSPLandroid/widget/TextView;->isInExtractedMode()Z
 HSPLandroid/widget/TextView;->isInputMethodTarget()Z
 HSPLandroid/widget/TextView;->isMarqueeFadeEnabled()Z
 HSPLandroid/widget/TextView;->isMultilineInputType(I)Z
+HSPLandroid/widget/TextView;->isPaddingOffsetRequired()Z
 HSPLandroid/widget/TextView;->isPasswordInputType(I)Z
+HSPLandroid/widget/TextView;->isPositionVisible(FF)Z
 HSPLandroid/widget/TextView;->isShowingHint()Z
+HSPLandroid/widget/TextView;->isSingleLine()Z
 HSPLandroid/widget/TextView;->isSuggestionsEnabled()Z
 HSPLandroid/widget/TextView;->isTextEditable()Z
 HSPLandroid/widget/TextView;->isTextSelectable()Z
+HSPLandroid/widget/TextView;->isVisiblePasswordInputType(I)Z
 HSPLandroid/widget/TextView;->jumpDrawablesToCurrentState()V
 HSPLandroid/widget/TextView;->length()I
 HSPLandroid/widget/TextView;->makeNewLayout(IILandroid/text/BoringLayout$Metrics;Landroid/text/BoringLayout$Metrics;IZ)V
@@ -15046,16 +30480,24 @@
 HSPLandroid/widget/TextView;->onAttachedToWindow()V
 HSPLandroid/widget/TextView;->onBeginBatchEdit()V
 HSPLandroid/widget/TextView;->onCheckIsTextEditor()Z
+HSPLandroid/widget/TextView;->onCommitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V
 HSPLandroid/widget/TextView;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLandroid/widget/TextView;->onCreateContextMenu(Landroid/view/ContextMenu;)V
 HSPLandroid/widget/TextView;->onCreateDrawableState(I)[I
 HSPLandroid/widget/TextView;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
 HSPLandroid/widget/TextView;->onDetachedFromWindowInternal()V
 HSPLandroid/widget/TextView;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/TextView;->onEditorAction(I)V
 HSPLandroid/widget/TextView;->onEndBatchEdit()V
 HSPLandroid/widget/TextView;->onFocusChanged(ZILandroid/graphics/Rect;)V
+HSPLandroid/widget/TextView;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
+HSPLandroid/widget/TextView;->onKeyDown(ILandroid/view/KeyEvent;)Z
+HSPLandroid/widget/TextView;->onKeyPreIme(ILandroid/view/KeyEvent;)Z
+HSPLandroid/widget/TextView;->onKeyUp(ILandroid/view/KeyEvent;)Z
 HSPLandroid/widget/TextView;->onLayout(ZIIII)V
 HSPLandroid/widget/TextView;->onLocaleChanged()V
 HSPLandroid/widget/TextView;->onMeasure(II)V
+HSPLandroid/widget/TextView;->onPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
 HSPLandroid/widget/TextView;->onPreDraw()Z
 HSPLandroid/widget/TextView;->onProvideStructure(Landroid/view/ViewStructure;II)V
 HSPLandroid/widget/TextView;->onResolveDrawables(I)V
@@ -15069,6 +30511,7 @@
 HSPLandroid/widget/TextView;->onTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLandroid/widget/TextView;->onVisibilityChanged(Landroid/view/View;I)V
 HSPLandroid/widget/TextView;->onWindowFocusChanged(Z)V
+HSPLandroid/widget/TextView;->performLongClick()Z
 HSPLandroid/widget/TextView;->preloadFontCache()V
 HSPLandroid/widget/TextView;->prepareDrawableForDisplay(Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/widget/TextView;->readTextAppearance(Landroid/content/Context;Landroid/content/res/TypedArray;Landroid/widget/TextView$TextAppearanceAttributes;Z)V
@@ -15082,39 +30525,63 @@
 HSPLandroid/widget/TextView;->resolveStyleAndSetTypeface(Landroid/graphics/Typeface;II)V
 HSPLandroid/widget/TextView;->restartMarqueeIfNeeded()V
 HSPLandroid/widget/TextView;->sendAccessibilityEventInternal(I)V
+HSPLandroid/widget/TextView;->sendAccessibilityEventUnchecked(Landroid/view/accessibility/AccessibilityEvent;)V
 HSPLandroid/widget/TextView;->sendAfterTextChanged(Landroid/text/Editable;)V
 HSPLandroid/widget/TextView;->sendBeforeTextChanged(Ljava/lang/CharSequence;III)V
 HSPLandroid/widget/TextView;->sendOnTextChanged(Ljava/lang/CharSequence;III)V
+HSPLandroid/widget/TextView;->setAllCaps(Z)V
+HSPLandroid/widget/TextView;->setAutoSizeTextTypeUniformWithPresetSizes([II)V
+HSPLandroid/widget/TextView;->setBreakStrategy(I)V
 HSPLandroid/widget/TextView;->setCompoundDrawablePadding(I)V
+HSPLandroid/widget/TextView;->setCompoundDrawableTintList(Landroid/content/res/ColorStateList;)V
 HSPLandroid/widget/TextView;->setCompoundDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
 HSPLandroid/widget/TextView;->setCompoundDrawablesRelative(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/TextView;->setCompoundDrawablesRelativeWithIntrinsicBounds(IIII)V
+HSPLandroid/widget/TextView;->setCompoundDrawablesRelativeWithIntrinsicBounds(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/TextView;->setCompoundDrawablesWithIntrinsicBounds(IIII)V
 HSPLandroid/widget/TextView;->setCompoundDrawablesWithIntrinsicBounds(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/TextView;->setCursorVisible(Z)V
+HSPLandroid/widget/TextView;->setElegantTextHeight(Z)V
 HSPLandroid/widget/TextView;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)V
 HSPLandroid/widget/TextView;->setEnabled(Z)V
 HSPLandroid/widget/TextView;->setFilters(Landroid/text/Editable;[Landroid/text/InputFilter;)V
 HSPLandroid/widget/TextView;->setFilters([Landroid/text/InputFilter;)V
+HSPLandroid/widget/TextView;->setFontFeatureSettings(Ljava/lang/String;)V
 HSPLandroid/widget/TextView;->setFrame(IIII)Z
 HSPLandroid/widget/TextView;->setGravity(I)V
+HSPLandroid/widget/TextView;->setHeight(I)V
 HSPLandroid/widget/TextView;->setHighlightColor(I)V
+HSPLandroid/widget/TextView;->setHint(I)V
 HSPLandroid/widget/TextView;->setHint(Ljava/lang/CharSequence;)V
 HSPLandroid/widget/TextView;->setHintInternal(Ljava/lang/CharSequence;)V
 HSPLandroid/widget/TextView;->setHintTextColor(Landroid/content/res/ColorStateList;)V
 HSPLandroid/widget/TextView;->setHorizontallyScrolling(Z)V
+HSPLandroid/widget/TextView;->setImeOptions(I)V
 HSPLandroid/widget/TextView;->setIncludeFontPadding(Z)V
+HSPLandroid/widget/TextView;->setInputType(I)V
 HSPLandroid/widget/TextView;->setInputType(IZ)V
+HSPLandroid/widget/TextView;->setInputTypeFromEditor()V
 HSPLandroid/widget/TextView;->setInputTypeSingleLine(Z)V
+HSPLandroid/widget/TextView;->setKeyListener(Landroid/text/method/KeyListener;)V
+HSPLandroid/widget/TextView;->setKeyListenerOnly(Landroid/text/method/KeyListener;)V
 HSPLandroid/widget/TextView;->setLetterSpacing(F)V
+HSPLandroid/widget/TextView;->setLineHeight(I)V
 HSPLandroid/widget/TextView;->setLineSpacing(FF)V
 HSPLandroid/widget/TextView;->setLines(I)V
 HSPLandroid/widget/TextView;->setLinkTextColor(Landroid/content/res/ColorStateList;)V
+HSPLandroid/widget/TextView;->setMarqueeRepeatLimit(I)V
+HSPLandroid/widget/TextView;->setMaxEms(I)V
 HSPLandroid/widget/TextView;->setMaxLines(I)V
 HSPLandroid/widget/TextView;->setMaxWidth(I)V
 HSPLandroid/widget/TextView;->setMinHeight(I)V
+HSPLandroid/widget/TextView;->setMinLines(I)V
 HSPLandroid/widget/TextView;->setMinWidth(I)V
 HSPLandroid/widget/TextView;->setMovementMethod(Landroid/text/method/MovementMethod;)V
 HSPLandroid/widget/TextView;->setOnEditorActionListener(Landroid/widget/TextView$OnEditorActionListener;)V
 HSPLandroid/widget/TextView;->setPadding(IIII)V
 HSPLandroid/widget/TextView;->setPaddingRelative(IIII)V
+HSPLandroid/widget/TextView;->setPaintFlags(I)V
+HSPLandroid/widget/TextView;->setPrivateImeOptions(Ljava/lang/String;)V
 HSPLandroid/widget/TextView;->setRawInputType(I)V
 HSPLandroid/widget/TextView;->setRawTextSize(FZ)V
 HSPLandroid/widget/TextView;->setRelativeDrawablesIfNeeded(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
@@ -15131,26 +30598,335 @@
 HSPLandroid/widget/TextView;->setTextColor(I)V
 HSPLandroid/widget/TextView;->setTextColor(Landroid/content/res/ColorStateList;)V
 HSPLandroid/widget/TextView;->setTextInternal(Ljava/lang/CharSequence;)V
+HSPLandroid/widget/TextView;->setTextIsSelectable(Z)V
+HSPLandroid/widget/TextView;->setTextOperationUser(Landroid/os/UserHandle;)V
+HSPLandroid/widget/TextView;->setTextSize(F)V
 HSPLandroid/widget/TextView;->setTextSize(IF)V
 HSPLandroid/widget/TextView;->setTextSizeInternal(IFZ)V
 HSPLandroid/widget/TextView;->setTransformationMethod(Landroid/text/method/TransformationMethod;)V
 HSPLandroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;)V
 HSPLandroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;I)V
 HSPLandroid/widget/TextView;->setTypefaceFromAttrs(Landroid/graphics/Typeface;Ljava/lang/String;III)V
+HSPLandroid/widget/TextView;->setWidth(I)V
+HSPLandroid/widget/TextView;->setupAutoSizeText()Z
+HSPLandroid/widget/TextView;->setupAutoSizeUniformPresetSizesConfiguration()Z
+HSPLandroid/widget/TextView;->shouldAdvanceFocusOnEnter()Z
 HSPLandroid/widget/TextView;->spanChange(Landroid/text/Spanned;Ljava/lang/Object;IIII)V
 HSPLandroid/widget/TextView;->startMarquee()V
 HSPLandroid/widget/TextView;->startStopMarquee(Z)V
 HSPLandroid/widget/TextView;->stopMarquee()V
 HSPLandroid/widget/TextView;->stopTextActionMode()V
+HSPLandroid/widget/TextView;->suggestedSizeFitsInSpace(ILandroid/graphics/RectF;)Z
 HSPLandroid/widget/TextView;->supportsAutoSizeText()Z
 HSPLandroid/widget/TextView;->textCanBeSelected()Z
 HSPLandroid/widget/TextView;->unregisterForPreDraw()V
 HSPLandroid/widget/TextView;->updateAfterEdit()V
 HSPLandroid/widget/TextView;->updateTextColors()V
+HSPLandroid/widget/TextView;->updateTextServicesLocaleAsync()V
+HSPLandroid/widget/TextView;->updateTextServicesLocaleLocked()V
 HSPLandroid/widget/TextView;->useDynamicLayout()Z
 HSPLandroid/widget/TextView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/widget/TextView;->viewClicked(Landroid/view/inputmethod/InputMethodManager;)V
 HSPLandroid/widget/TextView;->viewportToContentHorizontalOffset()I
 HSPLandroid/widget/TextView;->viewportToContentVerticalOffset()I
+HSPLandroid/widget/Toast$TN$1;-><init>(Landroid/widget/Toast$TN;Landroid/os/Looper;Landroid/os/Handler$Callback;)V
+HSPLandroid/widget/Toast$TN$1;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/widget/Toast$TN;-><init>(Ljava/lang/String;Landroid/os/Binder;Ljava/util/List;Landroid/os/Looper;)V
+HSPLandroid/widget/Toast$TN;->getCallbacks()Ljava/util/List;
+HSPLandroid/widget/Toast$TN;->handleHide()V
+HSPLandroid/widget/Toast$TN;->handleShow(Landroid/os/IBinder;)V
+HSPLandroid/widget/Toast$TN;->hide()V
+HSPLandroid/widget/Toast$TN;->show(Landroid/os/IBinder;)V
+HSPLandroid/widget/Toast$TN;->trySendAccessibilityEvent()V
+HSPLandroid/widget/Toast;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+HSPLandroid/widget/Toast;->getLooper(Landroid/os/Looper;)Landroid/os/Looper;
+HSPLandroid/widget/Toast;->getService()Landroid/app/INotificationManager;
+HSPLandroid/widget/Toast;->makeText(Landroid/content/Context;Landroid/os/Looper;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
+HSPLandroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
+HSPLandroid/widget/Toast;->show()V
+HSPLandroid/widget/Toolbar$1;-><init>(Landroid/widget/Toolbar;)V
+HSPLandroid/widget/Toolbar$2;-><init>(Landroid/widget/Toolbar;)V
+HSPLandroid/widget/Toolbar$ExpandedActionViewMenuPresenter;-><init>(Landroid/widget/Toolbar;)V
+HSPLandroid/widget/Toolbar$ExpandedActionViewMenuPresenter;-><init>(Landroid/widget/Toolbar;Landroid/widget/Toolbar$1;)V
+HSPLandroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->flagActionItems()Z
+HSPLandroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->initForMenu(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;)V
+HSPLandroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->updateMenuView(Z)V
+HSPLandroid/widget/Toolbar$LayoutParams;-><init>(II)V
+HSPLandroid/widget/Toolbar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/Toolbar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/Toolbar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/Toolbar;->addCustomViewsWithGravity(Ljava/util/List;I)V
+HSPLandroid/widget/Toolbar;->addSystemView(Landroid/view/View;Z)V
+HSPLandroid/widget/Toolbar;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
+HSPLandroid/widget/Toolbar;->dismissPopupMenus()V
+HSPLandroid/widget/Toolbar;->ensureContentInsets()V
+HSPLandroid/widget/Toolbar;->ensureMenu()V
+HSPLandroid/widget/Toolbar;->ensureMenuView()V
+HSPLandroid/widget/Toolbar;->ensureNavButtonView()V
+HSPLandroid/widget/Toolbar;->generateDefaultLayoutParams()Landroid/widget/Toolbar$LayoutParams;
+HSPLandroid/widget/Toolbar;->getChildTop(Landroid/view/View;I)I
+HSPLandroid/widget/Toolbar;->getContentInsetEnd()I
+HSPLandroid/widget/Toolbar;->getContentInsetStart()I
+HSPLandroid/widget/Toolbar;->getCurrentContentInsetEnd()I
+HSPLandroid/widget/Toolbar;->getCurrentContentInsetLeft()I
+HSPLandroid/widget/Toolbar;->getCurrentContentInsetRight()I
+HSPLandroid/widget/Toolbar;->getCurrentContentInsetStart()I
+HSPLandroid/widget/Toolbar;->getHorizontalMargins(Landroid/view/View;)I
+HSPLandroid/widget/Toolbar;->getMenu()Landroid/view/Menu;
+HSPLandroid/widget/Toolbar;->getNavigationContentDescription()Ljava/lang/CharSequence;
+HSPLandroid/widget/Toolbar;->getNavigationIcon()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/Toolbar;->getSubtitle()Ljava/lang/CharSequence;
+HSPLandroid/widget/Toolbar;->getTitle()Ljava/lang/CharSequence;
+HSPLandroid/widget/Toolbar;->getVerticalMargins(Landroid/view/View;)I
+HSPLandroid/widget/Toolbar;->getViewListMeasuredWidth(Ljava/util/List;[I)I
+HSPLandroid/widget/Toolbar;->getWrapper()Lcom/android/internal/widget/DecorToolbar;
+HSPLandroid/widget/Toolbar;->isChildOrHidden(Landroid/view/View;)Z
+HSPLandroid/widget/Toolbar;->isOverflowMenuShowing()Z
+HSPLandroid/widget/Toolbar;->measureChildCollapseMargins(Landroid/view/View;IIII[I)I
+HSPLandroid/widget/Toolbar;->measureChildConstrained(Landroid/view/View;IIIII)V
+HSPLandroid/widget/Toolbar;->onAttachedToWindow()V
+HSPLandroid/widget/Toolbar;->onDetachedFromWindow()V
+HSPLandroid/widget/Toolbar;->onLayout(ZIIII)V
+HSPLandroid/widget/Toolbar;->onMeasure(II)V
+HSPLandroid/widget/Toolbar;->onRtlPropertiesChanged(I)V
+HSPLandroid/widget/Toolbar;->onSaveInstanceState()Landroid/os/Parcelable;
+HSPLandroid/widget/Toolbar;->setContentInsetsRelative(II)V
+HSPLandroid/widget/Toolbar;->setLogo(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/Toolbar;->setNavigationContentDescription(Ljava/lang/CharSequence;)V
+HSPLandroid/widget/Toolbar;->setNavigationIcon(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/Toolbar;->setNavigationOnClickListener(Landroid/view/View$OnClickListener;)V
+HSPLandroid/widget/Toolbar;->setOnMenuItemClickListener(Landroid/widget/Toolbar$OnMenuItemClickListener;)V
+HSPLandroid/widget/Toolbar;->setPopupTheme(I)V
+HSPLandroid/widget/Toolbar;->setSubtitle(Ljava/lang/CharSequence;)V
+HSPLandroid/widget/Toolbar;->setSubtitleTextAppearance(Landroid/content/Context;I)V
+HSPLandroid/widget/Toolbar;->setTitle(I)V
+HSPLandroid/widget/Toolbar;->setTitle(Ljava/lang/CharSequence;)V
+HSPLandroid/widget/Toolbar;->setTitleTextAppearance(Landroid/content/Context;I)V
+HSPLandroid/widget/Toolbar;->shouldCollapse()Z
+HSPLandroid/widget/Toolbar;->shouldLayout(Landroid/view/View;)Z
+HSPLandroid/widget/ViewAnimator;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/ViewAnimator;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/widget/ViewAnimator;->getCurrentView()Landroid/view/View;
+HSPLandroid/widget/ViewAnimator;->getDisplayedChild()I
+HSPLandroid/widget/ViewAnimator;->initViewAnimator(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/ViewAnimator;->setAnimateFirstView(Z)V
+HSPLandroid/widget/ViewAnimator;->setDisplayedChild(I)V
+HSPLandroid/widget/ViewAnimator;->setInAnimation(Landroid/view/animation/Animation;)V
+HSPLandroid/widget/ViewAnimator;->setOutAnimation(Landroid/view/animation/Animation;)V
+HSPLandroid/widget/ViewAnimator;->showOnly(I)V
+HSPLandroid/widget/ViewAnimator;->showOnly(IZ)V
+HSPLandroid/widget/ViewFlipper$1;-><init>(Landroid/widget/ViewFlipper;)V
+HSPLandroid/widget/ViewFlipper$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLandroid/widget/ViewFlipper$2;-><init>(Landroid/widget/ViewFlipper;)V
+HSPLandroid/widget/ViewFlipper;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/ViewFlipper;->access$002(Landroid/widget/ViewFlipper;Z)Z
+HSPLandroid/widget/ViewFlipper;->access$100(Landroid/widget/ViewFlipper;)V
+HSPLandroid/widget/ViewFlipper;->access$200(Landroid/widget/ViewFlipper;Z)V
+HSPLandroid/widget/ViewFlipper;->onAttachedToWindow()V
+HSPLandroid/widget/ViewFlipper;->onDetachedFromWindow()V
+HSPLandroid/widget/ViewFlipper;->onWindowVisibilityChanged(I)V
+HSPLandroid/widget/ViewFlipper;->updateRunning()V
+HSPLandroid/widget/ViewFlipper;->updateRunning(Z)V
+HSPLandroid/widget/ViewSwitcher;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/ViewSwitcher;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
+HPLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;-><init>([BII)V
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->checkLastTagWas(I)V
+HPLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->isAtEnd()Z
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->newInstance([BII)Lcom/android/framework/protobuf/nano/CodedInputByteBufferNano;
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readBool()Z
+HPLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readFloat()F
+HPLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readInt32()I
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readInt64()J
+HPLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readRawByte()B
+HPLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readRawLittleEndian32()I
+HPLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readRawVarint32()I
+HPLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readRawVarint64()J
+HPLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readString()Ljava/lang/String;
+HPLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readTag()I
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;-><init>(Ljava/nio/ByteBuffer;)V
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;-><init>([BII)V
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->checkNoSpaceLeft()V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeBoolSize(IZ)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeBoolSizeNoTag(Z)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeInt32Size(II)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeInt32SizeNoTag(I)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeInt64Size(IJ)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeInt64SizeNoTag(J)I
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeRawVarint32Size(I)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeRawVarint64Size(J)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeStringSize(ILjava/lang/String;)I
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeStringSizeNoTag(Ljava/lang/String;)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeTagSize(I)I
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->encode(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->encode(Ljava/lang/CharSequence;[BII)I
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->encodedLength(Ljava/lang/CharSequence;)I
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->newInstance([BII)Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->spaceLeft()I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeBool(IZ)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeBoolNoTag(Z)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeFloat(IF)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeInt32(II)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeInt32NoTag(I)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeInt64(IJ)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeInt64NoTag(J)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeMessage(ILcom/android/framework/protobuf/nano/MessageNano;)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeMessageNoTag(Lcom/android/framework/protobuf/nano/MessageNano;)V
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeRawByte(B)V
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeRawByte(I)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeRawLittleEndian32(I)V
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeRawVarint32(I)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeRawVarint64(J)V
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeString(ILjava/lang/String;)V
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeStringNoTag(Ljava/lang/String;)V
+HSPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeTag(II)V
+HSPLcom/android/framework/protobuf/nano/MessageNano;-><init>()V
+HSPLcom/android/framework/protobuf/nano/MessageNano;->computeSerializedSize()I
+HPLcom/android/framework/protobuf/nano/MessageNano;->getCachedSize()I
+HSPLcom/android/framework/protobuf/nano/MessageNano;->getSerializedSize()I
+PLcom/android/framework/protobuf/nano/MessageNano;->mergeFrom(Lcom/android/framework/protobuf/nano/MessageNano;[B)Lcom/android/framework/protobuf/nano/MessageNano;
+PLcom/android/framework/protobuf/nano/MessageNano;->mergeFrom(Lcom/android/framework/protobuf/nano/MessageNano;[BII)Lcom/android/framework/protobuf/nano/MessageNano;
+HSPLcom/android/framework/protobuf/nano/MessageNano;->toByteArray(Lcom/android/framework/protobuf/nano/MessageNano;)[B
+HSPLcom/android/framework/protobuf/nano/MessageNano;->toByteArray(Lcom/android/framework/protobuf/nano/MessageNano;[BII)V
+HSPLcom/android/framework/protobuf/nano/MessageNano;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+HSPLcom/android/framework/protobuf/nano/WireFormatNano;->makeTag(II)I
+HSPLcom/android/i18n/phonenumbers/CountryCodeToRegionCodeMap;->getCountryCodeToRegionCodeMap()Ljava/util/Map;
+HSPLcom/android/i18n/phonenumbers/MetadataManager$1;->loadMetadata(Ljava/lang/String;)Ljava/io/InputStream;
+HSPLcom/android/i18n/phonenumbers/MetadataManager;->getMetadataFromMultiFilePrefix(Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap;Ljava/lang/String;Lcom/android/i18n/phonenumbers/MetadataLoader;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/MetadataManager;->getMetadataFromSingleFileName(Ljava/lang/String;Lcom/android/i18n/phonenumbers/MetadataLoader;)Ljava/util/List;
+HSPLcom/android/i18n/phonenumbers/MetadataManager;->loadMetadataAndCloseInput(Ljava/io/InputStream;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;
+HSPLcom/android/i18n/phonenumbers/MultiFileMetadataSourceImpl;-><init>(Lcom/android/i18n/phonenumbers/MetadataLoader;)V
+HSPLcom/android/i18n/phonenumbers/MultiFileMetadataSourceImpl;-><init>(Ljava/lang/String;Lcom/android/i18n/phonenumbers/MetadataLoader;)V
+HSPLcom/android/i18n/phonenumbers/MultiFileMetadataSourceImpl;->getMetadataForRegion(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberMatcher$State;-><clinit>()V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberMatcher$State;-><init>(Ljava/lang/String;I)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberMatcher;-><clinit>()V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberMatcher;-><init>(Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Ljava/lang/CharSequence;Ljava/lang/String;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency;J)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberMatcher;->extractInnerMatch(Ljava/lang/CharSequence;I)Lcom/android/i18n/phonenumbers/PhoneNumberMatch;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberMatcher;->extractMatch(Ljava/lang/CharSequence;I)Lcom/android/i18n/phonenumbers/PhoneNumberMatch;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberMatcher;->find(I)Lcom/android/i18n/phonenumbers/PhoneNumberMatch;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberMatcher;->hasNext()Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberMatcher;->limit(II)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberMatcher;->parseAndVerify(Ljava/lang/CharSequence;I)Lcom/android/i18n/phonenumbers/PhoneNumberMatch;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberMatcher;->trimAfterFirstMatch(Ljava/util/regex/Pattern;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil$1;-><init>(Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Ljava/lang/CharSequence;Ljava/lang/String;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency;J)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil$1;->iterator()Ljava/util/Iterator;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$1;->verify(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberMatcher;)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;-><init>(Lcom/android/i18n/phonenumbers/MetadataSource;Ljava/util/Map;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->buildNationalNumberForParsing(Ljava/lang/String;Ljava/lang/StringBuilder;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->checkRegionForParsing(Ljava/lang/CharSequence;Ljava/lang/String;)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->createInstance(Lcom/android/i18n/phonenumbers/MetadataLoader;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->createInstance(Lcom/android/i18n/phonenumbers/MetadataSource;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->extractCountryCode(Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)I
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->extractPossibleNumber(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->findNumbers(Ljava/lang/CharSequence;Ljava/lang/String;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency;J)Ljava/lang/Iterable;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getInstance()Lcom/android/i18n/phonenumbers/PhoneNumberUtil;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getMetadataForRegion(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getMetadataForRegionOrCallingCode(ILjava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNationalSignificantNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNumberDescByType(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNumberTypeHelper(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForCountryCode(I)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForNumberFromRegionList(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/util/List;)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->hasValidCountryCallingCode(I)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isNumberMatchingDesc(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isPossibleNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isPossibleNumberForTypeWithReason(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isPossibleNumberWithReason(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidRegionCode(Ljava/lang/String;)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isViablePhoneNumber(Ljava/lang/CharSequence;)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeExtractCountryCode(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Ljava/lang/StringBuilder;ZLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)I
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripExtension(Ljava/lang/StringBuilder;)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripInternationalPrefixAndNormalize(Ljava/lang/StringBuilder;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripNationalPrefixAndCarrierCode(Ljava/lang/StringBuilder;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Ljava/lang/StringBuilder;)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalize(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeDigits(Ljava/lang/CharSequence;Z)Ljava/lang/StringBuilder;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeDigitsOnly(Ljava/lang/CharSequence;)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parse(Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parse(Ljava/lang/CharSequence;Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parseAndKeepRawInput(Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parseAndKeepRawInput(Ljava/lang/CharSequence;Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parseHelper(Ljava/lang/CharSequence;Ljava/lang/String;ZZLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parsePrefixAsIdd(Ljava/util/regex/Pattern;Ljava/lang/StringBuilder;)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->setInstance(Lcom/android/i18n/phonenumbers/PhoneNumberUtil;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->setItalianLeadingZerosForPhoneNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->testNumberLength(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->testNumberLength(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;-><init>()V
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->readExternal(Ljava/io/ObjectInput;)V
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setFormat(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setNationalPrefixFormattingRule(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setNationalPrefixOptionalWhenFormatting(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setPattern(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;-><init>()V
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getCountryCode()I
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getFixedLine()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getGeneralDesc()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getInternationalPrefix()Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNationalPrefixForParsing()Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNationalPrefixTransformRule()Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPager()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPersonalNumber()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPremiumRate()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getSameMobileAndFixedLinePattern()Z
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getSharedCost()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getTollFree()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getUan()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getVoicemail()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getVoip()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasLeadingDigits()Z
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->readExternal(Ljava/io/ObjectInput;)V
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setCountryCode(I)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setFixedLine(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setGeneralDesc(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setId(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setInternationalPrefix(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setLeadingZeroPossible(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setMainCountryForCode(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setMobile(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setMobileNumberPortableRegion(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setNationalPrefix(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setNationalPrefixForParsing(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setNoInternationalDialling(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setPager(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setPersonalNumber(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setPremiumRate(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setSameMobileAndFixedLinePattern(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setSharedCost(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setTollFree(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setUan(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setVoicemail(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setVoip(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;-><init>()V
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;->getMetadataList()Ljava/util/List;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;->readExternal(Ljava/io/ObjectInput;)V
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;-><init>()V
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->getNationalNumberPattern()Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->getPossibleLengthList()Ljava/util/List;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->getPossibleLengthLocalOnlyList()Ljava/util/List;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->readExternal(Ljava/io/ObjectInput;)V
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->setExampleNumber(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->setNationalNumberPattern(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;-><init>()V
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getCountryCode()I
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getNationalNumber()J
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->isItalianLeadingZero()Z
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setCountryCode(I)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setCountryCodeSource(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setNationalNumber(J)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setRawInput(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;-><init>()V
+HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->create()Lcom/android/i18n/phonenumbers/internal/MatcherApi;
+HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->match(Ljava/lang/CharSequence;Ljava/util/regex/Pattern;Z)Z
+HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->matchNationalNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Z)Z
+HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache$1;-><init>(Lcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;IFZ)V
+HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache$1;->removeEldestEntry(Ljava/util/Map$Entry;)Z
+HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;-><init>(I)V
+HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->access$000(Lcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;)I
+HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->put(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/i18n/phonenumbers/internal/RegexCache;-><init>(I)V
+HSPLcom/android/i18n/phonenumbers/internal/RegexCache;->getPatternForRegex(Ljava/lang/String;)Ljava/util/regex/Pattern;
 HSPLcom/android/icu/charset/CharsetDecoderICU;-><init>(Ljava/nio/charset/Charset;FJ)V
 HSPLcom/android/icu/charset/CharsetDecoderICU;->decodeLoop(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
 HSPLcom/android/icu/charset/CharsetDecoderICU;->getArray(Ljava/nio/ByteBuffer;)I
@@ -15185,6 +30961,9 @@
 HSPLcom/android/icu/charset/NativeConverter;->setCallbackDecode(JLjava/nio/charset/CharsetDecoder;)V
 HSPLcom/android/icu/charset/NativeConverter;->setCallbackEncode(JLjava/nio/charset/CharsetEncoder;)V
 HSPLcom/android/icu/charset/NativeConverter;->translateCodingErrorAction(Ljava/nio/charset/CodingErrorAction;)I
+HSPLcom/android/icu/util/CaseMapperNative;->toLowerCase(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
+HSPLcom/android/icu/util/LocaleNative;->getDisplayCountry(Ljava/util/Locale;Ljava/util/Locale;)Ljava/lang/String;
+HSPLcom/android/icu/util/LocaleNative;->getDisplayLanguage(Ljava/util/Locale;Ljava/util/Locale;)Ljava/lang/String;
 HSPLcom/android/icu/util/regex/MatcherNative;-><init>(Lcom/android/icu/util/regex/PatternNative;)V
 HSPLcom/android/icu/util/regex/MatcherNative;->create(Lcom/android/icu/util/regex/PatternNative;)Lcom/android/icu/util/regex/MatcherNative;
 HSPLcom/android/icu/util/regex/MatcherNative;->find(I[I)Z
@@ -15193,26 +30972,359 @@
 HSPLcom/android/icu/util/regex/MatcherNative;->hitEnd()Z
 HSPLcom/android/icu/util/regex/MatcherNative;->lookingAt([I)Z
 HSPLcom/android/icu/util/regex/MatcherNative;->matches([I)Z
+HSPLcom/android/icu/util/regex/MatcherNative;->requireEnd()Z
 HSPLcom/android/icu/util/regex/MatcherNative;->setInput(Ljava/lang/String;II)V
 HSPLcom/android/icu/util/regex/MatcherNative;->useAnchoringBounds(Z)V
 HSPLcom/android/icu/util/regex/MatcherNative;->useTransparentBounds(Z)V
 HSPLcom/android/icu/util/regex/PatternNative;-><init>(Ljava/lang/String;I)V
 HSPLcom/android/icu/util/regex/PatternNative;->create(Ljava/lang/String;I)Lcom/android/icu/util/regex/PatternNative;
 HSPLcom/android/icu/util/regex/PatternNative;->openMatcher()J
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController$1;-><init>(Lcom/android/internal/accessibility/AccessibilityShortcutController;Landroid/os/Handler;)V
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController$FrameworkObjectProvider;-><init>()V
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController$ToggleableFrameworkFeatureInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController;-><init>(Landroid/content/Context;Landroid/os/Handler;I)V
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController;->getFrameworkShortcutFeaturesMap()Ljava/util/Map;
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController;->hasShortcutTarget()Z
+HPLcom/android/internal/accessibility/AccessibilityShortcutController;->isAccessibilityShortcutAvailable(Z)Z
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController;->onSettingsChanged()V
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController;->setCurrentUser(I)V
+HSPLcom/android/internal/alsa/AlsaCardsParser;-><init>()V
+HSPLcom/android/internal/app/AlertController$1;-><init>(Lcom/android/internal/app/AlertController;)V
+HSPLcom/android/internal/app/AlertController$AlertParams;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/app/AlertController$AlertParams;->apply(Lcom/android/internal/app/AlertController;)V
+HSPLcom/android/internal/app/AlertController$ButtonHandler;-><init>(Landroid/content/DialogInterface;)V
+HSPLcom/android/internal/app/AlertController;-><init>(Landroid/content/Context;Landroid/content/DialogInterface;Landroid/view/Window;)V
+HSPLcom/android/internal/app/AlertController;->canTextInput(Landroid/view/View;)Z
+HSPLcom/android/internal/app/AlertController;->create(Landroid/content/Context;Landroid/content/DialogInterface;Landroid/view/Window;)Lcom/android/internal/app/AlertController;
+HSPLcom/android/internal/app/AlertController;->installContent()V
+HSPLcom/android/internal/app/AlertController;->resolvePanel(Landroid/view/View;Landroid/view/View;)Landroid/view/ViewGroup;
+HSPLcom/android/internal/app/AlertController;->selectContentView()I
+HSPLcom/android/internal/app/AlertController;->setBackground(Landroid/content/res/TypedArray;Landroid/view/View;Landroid/view/View;Landroid/view/View;Landroid/view/View;ZZZ)V
+HSPLcom/android/internal/app/AlertController;->setButton(ILjava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;Landroid/os/Message;)V
+HSPLcom/android/internal/app/AlertController;->setTitle(Ljava/lang/CharSequence;)V
+HSPLcom/android/internal/app/AlertController;->setView(Landroid/view/View;)V
+HSPLcom/android/internal/app/AlertController;->setupButtons(Landroid/view/ViewGroup;)V
+HSPLcom/android/internal/app/AlertController;->setupContent(Landroid/view/ViewGroup;)V
+HSPLcom/android/internal/app/AlertController;->setupCustomContent(Landroid/view/ViewGroup;)V
+HSPLcom/android/internal/app/AlertController;->setupTitle(Landroid/view/ViewGroup;)V
+HSPLcom/android/internal/app/AlertController;->setupView()V
+HSPLcom/android/internal/app/AlertController;->shouldCenterSingleButton(Landroid/content/Context;)Z
+HSPLcom/android/internal/app/AssistUtils;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/app/AssistUtils;->allowDisablingAssistDisclosure(Landroid/content/Context;)Z
+HSPLcom/android/internal/app/AssistUtils;->getAssistComponentForUser(I)Landroid/content/ComponentName;
+HSPLcom/android/internal/app/AssistUtils;->onLockscreenShown()V
+HSPLcom/android/internal/app/AssistUtils;->registerVoiceInteractionSessionListener(Lcom/android/internal/app/IVoiceInteractionSessionListener;)V
+HPLcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;->opActiveChanged(IILjava/lang/String;Z)V
+HSPLcom/android/internal/app/IAppOpsActiveCallback$Stub;-><init>()V
+HSPLcom/android/internal/app/IAppOpsActiveCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/app/IAppOpsActiveCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsActiveCallback;
+HSPLcom/android/internal/app/IAppOpsActiveCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/internal/app/IAppOpsCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/app/IAppOpsCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/app/IAppOpsCallback$Stub$Proxy;->opChanged(IILjava/lang/String;)V
+HSPLcom/android/internal/app/IAppOpsCallback$Stub;-><init>()V
+HSPLcom/android/internal/app/IAppOpsCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/app/IAppOpsCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsCallback;
+HSPLcom/android/internal/app/IAppOpsCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/app/IAppOpsNotedCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/app/IAppOpsNotedCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/app/IAppOpsNotedCallback$Stub$Proxy;->opNoted(IILjava/lang/String;I)V
+HSPLcom/android/internal/app/IAppOpsNotedCallback$Stub;-><init>()V
+HSPLcom/android/internal/app/IAppOpsNotedCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/app/IAppOpsNotedCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsNotedCallback;
+HSPLcom/android/internal/app/IAppOpsNotedCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperation(IILjava/lang/String;)I
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperationRaw(IILjava/lang/String;)I
 HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkPackage(ILjava/lang/String;)I
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->getOpsForPackage(ILjava/lang/String;[I)Ljava/util/List;
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->getPackagesForOps([I)Ljava/util/List;
 HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->noteOperation(IILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;)I
 HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->noteProxyOperation(IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;)I
 HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->shouldCollectNotes(I)Z
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;ZZLjava/lang/String;)I
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingActive([ILcom/android/internal/app/IAppOpsActiveCallback;)V
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingModeWithFlags(ILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingNoted([ILcom/android/internal/app/IAppOpsNotedCallback;)V
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->stopWatchingMode(Lcom/android/internal/app/IAppOpsCallback;)V
+HSPLcom/android/internal/app/IAppOpsService$Stub;-><init>()V
+HSPLcom/android/internal/app/IAppOpsService$Stub;->asBinder()Landroid/os/IBinder;
 HSPLcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService;
+HSPLcom/android/internal/app/IAppOpsService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->computeChargeTimeRemaining()J
+HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->isCharging()Z
 HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->takeUidSnapshot(I)Landroid/os/health/HealthStatsParceler;
+HSPLcom/android/internal/app/IBatteryStats$Stub;-><init>()V
+HSPLcom/android/internal/app/IBatteryStats$Stub;->asBinder()Landroid/os/IBinder;
 HSPLcom/android/internal/app/IBatteryStats$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IBatteryStats;
+HSPLcom/android/internal/app/IBatteryStats$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/app/ISoundTriggerService$Stub;-><init>()V
+HPLcom/android/internal/app/ISoundTriggerService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->onLockscreenShown()V
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->registerVoiceInteractionSessionListener(Lcom/android/internal/app/IVoiceInteractionSessionListener;)V
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub;-><init>()V
 HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionManagerService;
+HPLcom/android/internal/app/IVoiceInteractionManagerService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;->onSetUiHints(Landroid/os/Bundle;)V
+HSPLcom/android/internal/app/IVoiceInteractionSessionListener$Stub;-><init>()V
+HSPLcom/android/internal/app/IVoiceInteractionSessionListener$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/app/IVoiceInteractionSessionListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionSessionListener;
+HSPLcom/android/internal/app/IVoiceInteractionSessionListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub$Proxy;->onShown()V
+HSPLcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;-><init>()V
+PLcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionSessionShowCallback;
+PLcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLcom/android/internal/app/IVoiceInteractor$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractor;
-HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/app/MessageSamplingConfig;->getAcceptableLeftDistance()I
+HSPLcom/android/internal/app/MessageSamplingConfig;->getExpirationTimeSinceBootMillis()J
+HSPLcom/android/internal/app/MessageSamplingConfig;->getSampledOpCode()I
+HSPLcom/android/internal/app/ProcessMap;-><init>()V
+HSPLcom/android/internal/app/ProcessMap;->get(Ljava/lang/String;I)Ljava/lang/Object;
+HSPLcom/android/internal/app/ProcessMap;->getMap()Landroid/util/ArrayMap;
+HSPLcom/android/internal/app/ProcessMap;->put(Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/internal/app/ProcessMap;->remove(Ljava/lang/String;I)Ljava/lang/Object;
+HPLcom/android/internal/app/ProcessMap;->size()I
+HSPLcom/android/internal/app/ResolverActivity$ActionTitle;->forAction(Ljava/lang/String;)Lcom/android/internal/app/ResolverActivity$ActionTitle;
+HSPLcom/android/internal/app/ResolverActivity$ActionTitle;->values()[Lcom/android/internal/app/ResolverActivity$ActionTitle;
+HSPLcom/android/internal/app/ResolverActivity;->getLabelRes(Ljava/lang/String;)I
+HSPLcom/android/internal/app/procstats/AssociationState$SourceKey;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/internal/app/procstats/AssociationState$SourceKey;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/internal/app/procstats/AssociationState$SourceKey;->hashCode()I
+HSPLcom/android/internal/app/procstats/AssociationState$SourceState;-><init>(Lcom/android/internal/app/procstats/AssociationState;Lcom/android/internal/app/procstats/AssociationState$SourceKey;)V
+HSPLcom/android/internal/app/procstats/AssociationState$SourceState;->makeDurations()V
+HSPLcom/android/internal/app/procstats/AssociationState$SourceState;->startActive(J)V
+HSPLcom/android/internal/app/procstats/AssociationState$SourceState;->stop()V
+HSPLcom/android/internal/app/procstats/AssociationState$SourceState;->stopActive(J)V
+HSPLcom/android/internal/app/procstats/AssociationState$SourceState;->stopTracking(J)V
+HPLcom/android/internal/app/procstats/AssociationState$SourceState;->toString()Ljava/lang/String;
+HSPLcom/android/internal/app/procstats/AssociationState$SourceState;->trackProcState(IIJ)V
+HSPLcom/android/internal/app/procstats/AssociationState;-><init>(Lcom/android/internal/app/procstats/ProcessStats;Lcom/android/internal/app/procstats/ProcessStats$PackageState;Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessState;)V
+HSPLcom/android/internal/app/procstats/AssociationState;->access$000(Lcom/android/internal/app/procstats/AssociationState;)Lcom/android/internal/app/procstats/ProcessStats;
+HSPLcom/android/internal/app/procstats/AssociationState;->access$100(Lcom/android/internal/app/procstats/AssociationState;)I
+HSPLcom/android/internal/app/procstats/AssociationState;->access$110(Lcom/android/internal/app/procstats/AssociationState;)I
+HSPLcom/android/internal/app/procstats/AssociationState;->access$300(Lcom/android/internal/app/procstats/AssociationState;)J
+HSPLcom/android/internal/app/procstats/AssociationState;->access$302(Lcom/android/internal/app/procstats/AssociationState;J)J
+HSPLcom/android/internal/app/procstats/AssociationState;->access$414(Lcom/android/internal/app/procstats/AssociationState;J)J
+HSPLcom/android/internal/app/procstats/AssociationState;->access$500(Lcom/android/internal/app/procstats/AssociationState;)I
+HSPLcom/android/internal/app/procstats/AssociationState;->access$510(Lcom/android/internal/app/procstats/AssociationState;)I
+HSPLcom/android/internal/app/procstats/AssociationState;->access$614(Lcom/android/internal/app/procstats/AssociationState;J)J
+HSPLcom/android/internal/app/procstats/AssociationState;->access$700(Lcom/android/internal/app/procstats/AssociationState;)J
+HPLcom/android/internal/app/procstats/AssociationState;->commitStateTime(J)V
+HPLcom/android/internal/app/procstats/AssociationState;->dumpTimesCheckin(Ljava/io/PrintWriter;Ljava/lang/String;IJLjava/lang/String;J)V
+HPLcom/android/internal/app/procstats/AssociationState;->getProcessName()Ljava/lang/String;
+HPLcom/android/internal/app/procstats/AssociationState;->isInUse()Z
+HSPLcom/android/internal/app/procstats/AssociationState;->readFromParcel(Lcom/android/internal/app/procstats/ProcessStats;Landroid/os/Parcel;I)Ljava/lang/String;
+HPLcom/android/internal/app/procstats/AssociationState;->resetSafely(J)V
+HSPLcom/android/internal/app/procstats/AssociationState;->setProcess(Lcom/android/internal/app/procstats/ProcessState;)V
+HSPLcom/android/internal/app/procstats/AssociationState;->startSource(ILjava/lang/String;Ljava/lang/String;)Lcom/android/internal/app/procstats/AssociationState$SourceState;
+HPLcom/android/internal/app/procstats/AssociationState;->writeToParcel(Lcom/android/internal/app/procstats/ProcessStats;Landroid/os/Parcel;J)V
+HPLcom/android/internal/app/procstats/DumpUtils;->collapseString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/internal/app/procstats/DumpUtils;->dumpAdjTimesCheckin(Ljava/io/PrintWriter;Ljava/lang/String;[JIJJ)V
+HPLcom/android/internal/app/procstats/DumpUtils;->printAdjTag(Ljava/io/PrintWriter;I)V
+HPLcom/android/internal/app/procstats/DumpUtils;->printAdjTagAndValue(Ljava/io/PrintWriter;IJ)V
+HPLcom/android/internal/app/procstats/DumpUtils;->printArrayEntry(Ljava/io/PrintWriter;[Ljava/lang/String;II)I
+HPLcom/android/internal/app/procstats/DumpUtils;->printProcStateTag(Ljava/io/PrintWriter;I)V
+HPLcom/android/internal/app/procstats/DumpUtils;->printProcStateTagAndValue(Ljava/io/PrintWriter;IJ)V
+HSPLcom/android/internal/app/procstats/DurationsTable;-><init>(Lcom/android/internal/app/procstats/SparseMappingTable;)V
+HSPLcom/android/internal/app/procstats/DurationsTable;->addDuration(IJ)V
+HSPLcom/android/internal/app/procstats/DurationsTable;->addDurations(Lcom/android/internal/app/procstats/DurationsTable;)V
+HSPLcom/android/internal/app/procstats/IProcessStats$Stub;-><init>()V
+HPLcom/android/internal/app/procstats/IProcessStats$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/app/procstats/ProcessState$PssAggr;-><init>()V
+HSPLcom/android/internal/app/procstats/ProcessState$PssAggr;->add(JJ)V
+HSPLcom/android/internal/app/procstats/ProcessState;-><init>(Lcom/android/internal/app/procstats/ProcessState;Ljava/lang/String;IJLjava/lang/String;J)V
+HSPLcom/android/internal/app/procstats/ProcessState;-><init>(Lcom/android/internal/app/procstats/ProcessStats;Ljava/lang/String;IJLjava/lang/String;)V
+HPLcom/android/internal/app/procstats/ProcessState;->addPss(JJJZIJLandroid/util/ArrayMap;)V
+HSPLcom/android/internal/app/procstats/ProcessState;->aggregatePss(Lcom/android/internal/app/procstats/ProcessStats$TotalMemoryUseCollection;J)V
+HSPLcom/android/internal/app/procstats/ProcessState;->clone(J)Lcom/android/internal/app/procstats/ProcessState;
+HSPLcom/android/internal/app/procstats/ProcessState;->commitStateTime(J)V
+HSPLcom/android/internal/app/procstats/ProcessState;->decActiveServices(Ljava/lang/String;)V
+HPLcom/android/internal/app/procstats/ProcessState;->decStartedServices(IJLjava/lang/String;)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpAllPssCheckin(Ljava/io/PrintWriter;)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpAllStateCheckin(Ljava/io/PrintWriter;J)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpPackageProcCheckin(Ljava/io/PrintWriter;Ljava/lang/String;IJLjava/lang/String;J)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpProcCheckin(Ljava/io/PrintWriter;Ljava/lang/String;IJ)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpPssSamplesCheckin(Ljava/io/PrintWriter;[JI)V
+HSPLcom/android/internal/app/procstats/ProcessState;->ensureNotDead()V
+HPLcom/android/internal/app/procstats/ProcessState;->getCommonProcess()Lcom/android/internal/app/procstats/ProcessState;
+HSPLcom/android/internal/app/procstats/ProcessState;->getName()Ljava/lang/String;
+HSPLcom/android/internal/app/procstats/ProcessState;->getPackage()Ljava/lang/String;
+HSPLcom/android/internal/app/procstats/ProcessState;->getPssAverage(I)J
+HSPLcom/android/internal/app/procstats/ProcessState;->getPssSampleCount(I)J
+HSPLcom/android/internal/app/procstats/ProcessState;->getTotalRunningDuration(J)J
+HSPLcom/android/internal/app/procstats/ProcessState;->getVersion()J
+HSPLcom/android/internal/app/procstats/ProcessState;->incActiveServices(Ljava/lang/String;)V
+HSPLcom/android/internal/app/procstats/ProcessState;->incStartedServices(IJLjava/lang/String;)V
+HSPLcom/android/internal/app/procstats/ProcessState;->isMultiPackage()Z
+HSPLcom/android/internal/app/procstats/ProcessState;->makeActive()V
+HSPLcom/android/internal/app/procstats/ProcessState;->makeInactive()V
+HSPLcom/android/internal/app/procstats/ProcessState;->pullFixedProc(Landroid/util/ArrayMap;I)Lcom/android/internal/app/procstats/ProcessState;
+HSPLcom/android/internal/app/procstats/ProcessState;->pullFixedProc(Ljava/lang/String;)Lcom/android/internal/app/procstats/ProcessState;
+HSPLcom/android/internal/app/procstats/ProcessState;->readFromParcel(Landroid/os/Parcel;Z)Z
+HSPLcom/android/internal/app/procstats/ProcessState;->setCombinedState(IJ)V
+HSPLcom/android/internal/app/procstats/ProcessState;->setMultiPackage(Z)V
+HSPLcom/android/internal/app/procstats/ProcessState;->setState(IIJLandroid/util/ArrayMap;)V
+HPLcom/android/internal/app/procstats/ProcessState;->toString()Ljava/lang/String;
+HPLcom/android/internal/app/procstats/ProcessState;->writeToParcel(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/app/procstats/ProcessStats$PackageState;-><init>(Lcom/android/internal/app/procstats/ProcessStats;Ljava/lang/String;IJ)V
+HSPLcom/android/internal/app/procstats/ProcessStats$PackageState;->getAssociationStateLocked(Lcom/android/internal/app/procstats/ProcessState;Ljava/lang/String;)Lcom/android/internal/app/procstats/AssociationState;
+HSPLcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;-><init>(J)V
+HSPLcom/android/internal/app/procstats/ProcessStats$TotalMemoryUseCollection;-><init>([I[I)V
+HSPLcom/android/internal/app/procstats/ProcessStats;-><init>(Z)V
+HPLcom/android/internal/app/procstats/ProcessStats;->addSysMemUsage(JJJJJ)V
+HSPLcom/android/internal/app/procstats/ProcessStats;->buildTimePeriodStartClockStr()V
+HSPLcom/android/internal/app/procstats/ProcessStats;->computeTotalMemoryUse(Lcom/android/internal/app/procstats/ProcessStats$TotalMemoryUseCollection;J)V
+HPLcom/android/internal/app/procstats/ProcessStats;->dumpCheckinLocked(Ljava/io/PrintWriter;Ljava/lang/String;I)V
+HSPLcom/android/internal/app/procstats/ProcessStats;->evaluateSystemProperties(Z)Z
+HSPLcom/android/internal/app/procstats/ProcessStats;->getPackageStateLocked(Ljava/lang/String;IJ)Lcom/android/internal/app/procstats/ProcessStats$PackageState;
+HSPLcom/android/internal/app/procstats/ProcessStats;->getProcessStateLocked(Lcom/android/internal/app/procstats/ProcessStats$PackageState;Ljava/lang/String;)Lcom/android/internal/app/procstats/ProcessState;
+HSPLcom/android/internal/app/procstats/ProcessStats;->getProcessStateLocked(Ljava/lang/String;IJLjava/lang/String;)Lcom/android/internal/app/procstats/ProcessState;
+HSPLcom/android/internal/app/procstats/ProcessStats;->getServiceStateLocked(Ljava/lang/String;IJLjava/lang/String;Ljava/lang/String;)Lcom/android/internal/app/procstats/ServiceState;
+HSPLcom/android/internal/app/procstats/ProcessStats;->read(Ljava/io/InputStream;)V
+HSPLcom/android/internal/app/procstats/ProcessStats;->readCheckedInt(Landroid/os/Parcel;ILjava/lang/String;)Z
+HSPLcom/android/internal/app/procstats/ProcessStats;->readCommonString(Landroid/os/Parcel;I)Ljava/lang/String;
+HSPLcom/android/internal/app/procstats/ProcessStats;->readCompactedLongArray(Landroid/os/Parcel;I[JI)V
+HSPLcom/android/internal/app/procstats/ProcessStats;->readFromParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/app/procstats/ProcessStats;->readFully(Ljava/io/InputStream;[I)[B
+HSPLcom/android/internal/app/procstats/ProcessStats;->reset()V
+HSPLcom/android/internal/app/procstats/ProcessStats;->resetCommon()V
+HPLcom/android/internal/app/procstats/ProcessStats;->resetSafely()V
+HSPLcom/android/internal/app/procstats/ProcessStats;->updateFragmentation()V
+HSPLcom/android/internal/app/procstats/ProcessStats;->updateTrackingAssociationsLocked(IJ)V
+HPLcom/android/internal/app/procstats/ProcessStats;->writeCommonString(Landroid/os/Parcel;Ljava/lang/String;)V
+HPLcom/android/internal/app/procstats/ProcessStats;->writeCompactedLongArray(Landroid/os/Parcel;[JI)V
+HPLcom/android/internal/app/procstats/ProcessStats;->writeToParcel(Landroid/os/Parcel;JI)V
+HSPLcom/android/internal/app/procstats/PssTable;-><init>(Lcom/android/internal/app/procstats/SparseMappingTable;)V
+HPLcom/android/internal/app/procstats/PssTable;->mergeStats(IIJJJJJJJJJ)V
+HPLcom/android/internal/app/procstats/PssTable;->mergeStats([JIIJJJJJJJJJ)V
+HSPLcom/android/internal/app/procstats/ServiceState;-><init>(Lcom/android/internal/app/procstats/ProcessStats;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessState;)V
+HSPLcom/android/internal/app/procstats/ServiceState;->applyNewOwner(Ljava/lang/Object;)V
+HSPLcom/android/internal/app/procstats/ServiceState;->clearCurrentOwner(Ljava/lang/Object;Z)V
+HPLcom/android/internal/app/procstats/ServiceState;->commitStateTime(J)V
+HPLcom/android/internal/app/procstats/ServiceState;->dumpTimeCheckin(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;IJLjava/lang/String;IIIJJ)V
+HPLcom/android/internal/app/procstats/ServiceState;->dumpTimesCheckin(Ljava/io/PrintWriter;Ljava/lang/String;IJLjava/lang/String;J)V
+HSPLcom/android/internal/app/procstats/ServiceState;->getProcessName()Ljava/lang/String;
+HSPLcom/android/internal/app/procstats/ServiceState;->isInUse()Z
+HSPLcom/android/internal/app/procstats/ServiceState;->isRestarting()Z
+HSPLcom/android/internal/app/procstats/ServiceState;->readFromParcel(Landroid/os/Parcel;)Z
+HPLcom/android/internal/app/procstats/ServiceState;->resetSafely(J)V
+HSPLcom/android/internal/app/procstats/ServiceState;->setBound(ZIJ)V
+HSPLcom/android/internal/app/procstats/ServiceState;->setExecuting(ZIJ)V
+HSPLcom/android/internal/app/procstats/ServiceState;->setForeground(ZIJ)V
+HSPLcom/android/internal/app/procstats/ServiceState;->setMemFactor(IJ)V
+HPLcom/android/internal/app/procstats/ServiceState;->setRestarting(ZIJ)V
+HSPLcom/android/internal/app/procstats/ServiceState;->setStarted(ZIJ)V
+HSPLcom/android/internal/app/procstats/ServiceState;->updateRunning(IJ)V
+HSPLcom/android/internal/app/procstats/ServiceState;->updateStartedState(IJ)V
+HPLcom/android/internal/app/procstats/ServiceState;->writeToParcel(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;-><init>(Lcom/android/internal/app/procstats/SparseMappingTable;)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->assertConsistency()V
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->binarySearch(B)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->copyFrom(Lcom/android/internal/app/procstats/SparseMappingTable$Table;I)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getArrayForKey(I)[J
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getKey(B)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getKeyAt(I)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getKeyCount()I
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getOrAddKey(BI)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getValue(I)J
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getValue(II)J
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getValueForId(BI)J
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->readFromParcel(Landroid/os/Parcel;)Z
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->resetTable()V
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->setValue(IIJ)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->setValue(IJ)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->validateKeys(Z)Z
+HPLcom/android/internal/app/procstats/SparseMappingTable$Table;->writeToParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable;-><init>()V
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->access$000(Lcom/android/internal/app/procstats/SparseMappingTable;)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->access$100(Lcom/android/internal/app/procstats/SparseMappingTable;)Ljava/util/ArrayList;
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->access$200(Lcom/android/internal/app/procstats/SparseMappingTable;)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->access$212(Lcom/android/internal/app/procstats/SparseMappingTable;I)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->getArrayFromKey(I)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->getIdFromKey(I)B
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->getIndexFromKey(I)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->readCompactedLongArray(Landroid/os/Parcel;[JI)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->readFromParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->reset()V
+HPLcom/android/internal/app/procstats/SparseMappingTable;->writeCompactedLongArray(Landroid/os/Parcel;[JI)V
+HPLcom/android/internal/app/procstats/SparseMappingTable;->writeToParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/app/procstats/SysMemUsageTable;-><init>(Lcom/android/internal/app/procstats/SparseMappingTable;)V
+HSPLcom/android/internal/app/procstats/SysMemUsageTable;->getTotalMemUsage()[J
+HPLcom/android/internal/app/procstats/SysMemUsageTable;->mergeStats(I[JI)V
+HSPLcom/android/internal/app/procstats/SysMemUsageTable;->mergeSysMemUsage([JI[JI)V
+HPLcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/appwidget/IAppWidgetHost$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/appwidget/IAppWidgetHost;
+HSPLcom/android/internal/appwidget/IAppWidgetService$Stub;-><init>()V
 HSPLcom/android/internal/appwidget/IAppWidgetService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/appwidget/IAppWidgetService;
+HPLcom/android/internal/appwidget/IAppWidgetService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/internal/backup/IBackupTransport$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->configurationIntent()Landroid/content/Intent;
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->currentDestinationString()Ljava/lang/String;
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->dataManagementIntent()Landroid/content/Intent;
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->dataManagementIntentLabel()Ljava/lang/CharSequence;
+HPLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->name()Ljava/lang/String;
+HPLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->transportDirName()Ljava/lang/String;
+HSPLcom/android/internal/backup/IBackupTransport$Stub;-><init>()V
+HSPLcom/android/internal/backup/IBackupTransport$Stub;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/backup/IBackupTransport$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/backup/IBackupTransport;
+HSPLcom/android/internal/backup/IBackupTransport$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;-><init>()V
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->getColorPalette()[I
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->getMainColor()I
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->set(Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;)V
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->setColorPalette([I)V
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->setMainColor(I)V
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->setSecondaryColor(I)V
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->setSupportsDarkText(Z)V
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->supportsDarkText()Z
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->toString()Ljava/lang/String;
+HSPLcom/android/internal/colorextraction/ColorExtractor$LoadWallpaperColors;-><init>(Lcom/android/internal/colorextraction/ColorExtractor;)V
+HSPLcom/android/internal/colorextraction/ColorExtractor$LoadWallpaperColors;-><init>(Lcom/android/internal/colorextraction/ColorExtractor;Lcom/android/internal/colorextraction/ColorExtractor$1;)V
+HSPLcom/android/internal/colorextraction/ColorExtractor$LoadWallpaperColors;->doInBackground([Landroid/app/WallpaperManager;)Ljava/lang/Void;
+HSPLcom/android/internal/colorextraction/ColorExtractor$LoadWallpaperColors;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/internal/colorextraction/ColorExtractor$LoadWallpaperColors;->onPostExecute(Ljava/lang/Object;)V
+HSPLcom/android/internal/colorextraction/ColorExtractor$LoadWallpaperColors;->onPostExecute(Ljava/lang/Void;)V
+HSPLcom/android/internal/colorextraction/ColorExtractor;-><clinit>()V
+HSPLcom/android/internal/colorextraction/ColorExtractor;-><init>(Landroid/content/Context;Lcom/android/internal/colorextraction/types/ExtractionType;ZLandroid/app/WallpaperManager;)V
+HSPLcom/android/internal/colorextraction/ColorExtractor;->addOnColorsChangedListener(Lcom/android/internal/colorextraction/ColorExtractor$OnColorsChangedListener;)V
+HSPLcom/android/internal/colorextraction/ColorExtractor;->extractInto(Landroid/app/WallpaperColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;)V
+HSPLcom/android/internal/colorextraction/ColorExtractor;->extractWallpaperColors()V
+HSPLcom/android/internal/colorextraction/ColorExtractor;->getColors(I)Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;
+HSPLcom/android/internal/colorextraction/ColorExtractor;->getColors(II)Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;
+HSPLcom/android/internal/colorextraction/ColorExtractor;->initExtractColors(Landroid/app/WallpaperManager;Z)V
+HSPLcom/android/internal/colorextraction/ColorExtractor;->triggerColorsChanged(I)V
+HSPLcom/android/internal/colorextraction/drawable/ScrimDrawable;-><init>()V
+HSPLcom/android/internal/colorextraction/drawable/ScrimDrawable;->draw(Landroid/graphics/Canvas;)V
+HSPLcom/android/internal/colorextraction/drawable/ScrimDrawable;->getAlpha()I
+HSPLcom/android/internal/colorextraction/drawable/ScrimDrawable;->setAlpha(I)V
+HSPLcom/android/internal/colorextraction/drawable/ScrimDrawable;->setColor(IZ)V
+HSPLcom/android/internal/colorextraction/types/Tonal$ConfigParser;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/colorextraction/types/Tonal$ConfigParser;->getTonalPalettes()Ljava/util/ArrayList;
+HSPLcom/android/internal/colorextraction/types/Tonal$ConfigParser;->parsePalettes(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/internal/colorextraction/types/Tonal$ConfigParser;->readFloatArray(Ljava/lang/String;)[F
+HSPLcom/android/internal/colorextraction/types/Tonal$ConfigParser;->readPalette(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/internal/colorextraction/types/Tonal$TonalPalette;
+HSPLcom/android/internal/colorextraction/types/Tonal$TonalPalette;-><init>([F[F[F)V
+HSPLcom/android/internal/colorextraction/types/Tonal;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/colorextraction/types/Tonal;->applyFallback(Landroid/app/WallpaperColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;)V
+HSPLcom/android/internal/colorextraction/types/Tonal;->bestFit(Lcom/android/internal/colorextraction/types/Tonal$TonalPalette;FFF)I
+HSPLcom/android/internal/colorextraction/types/Tonal;->extractInto(Landroid/app/WallpaperColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;)V
+HSPLcom/android/internal/colorextraction/types/Tonal;->findTonalPalette(FF)Lcom/android/internal/colorextraction/types/Tonal$TonalPalette;
+HSPLcom/android/internal/colorextraction/types/Tonal;->fit([FFIFF)[F
+HSPLcom/android/internal/colorextraction/types/Tonal;->fract(F)F
+HSPLcom/android/internal/colorextraction/types/Tonal;->getColorInt(I[F[F[F)I
+HSPLcom/android/internal/colorextraction/types/Tonal;->getColorPalette(Lcom/android/internal/colorextraction/types/Tonal$TonalPalette;)[I
+HSPLcom/android/internal/colorextraction/types/Tonal;->getColorPalette([F[F[F)[I
+HSPLcom/android/internal/colorextraction/types/Tonal;->runTonalExtraction(Landroid/app/WallpaperColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;)Z
+HSPLcom/android/internal/compat/AndroidBuildClassifier;-><init>()V
 HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;-><init>(JI)V
 HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;->equals(Ljava/lang/Object;)Z
 HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;->hashCode()I
@@ -15221,9 +31333,96 @@
 HSPLcom/android/internal/compat/ChangeReporter;->isAlreadyReported(ILcom/android/internal/compat/ChangeReporter$ChangeReport;)Z
 HSPLcom/android/internal/compat/ChangeReporter;->markAsReported(ILcom/android/internal/compat/ChangeReporter$ChangeReport;)V
 HSPLcom/android/internal/compat/ChangeReporter;->reportChange(IJI)V
+HSPLcom/android/internal/compat/ChangeReporter;->resetReportedChanges(I)V
 HSPLcom/android/internal/compat/ChangeReporter;->shouldWriteToDebug(IJI)Z
 HSPLcom/android/internal/compat/ChangeReporter;->shouldWriteToStatsLog(IJI)Z
 HSPLcom/android/internal/compat/ChangeReporter;->stateToString(I)Ljava/lang/String;
+HSPLcom/android/internal/compat/CompatibilityChangeInfo$1;-><init>()V
+HSPLcom/android/internal/compat/CompatibilityChangeInfo;-><clinit>()V
+HSPLcom/android/internal/compat/CompatibilityChangeInfo;-><init>(Ljava/lang/Long;Ljava/lang/String;IZLjava/lang/String;)V
+HSPLcom/android/internal/compat/CompatibilityChangeInfo;->getDisabled()Z
+HSPLcom/android/internal/compat/CompatibilityChangeInfo;->getEnableAfterTargetSdk()I
+HSPLcom/android/internal/compat/CompatibilityChangeInfo;->getId()J
+HSPLcom/android/internal/compat/IOverrideValidator$Stub;-><init>()V
+HSPLcom/android/internal/compat/IPlatformCompat$Stub;-><init>()V
+HSPLcom/android/internal/compat/IPlatformCompat$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/compat/IPlatformCompat;
+HPLcom/android/internal/compat/IPlatformCompat$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/compat/IPlatformCompatNative$Stub;-><init>()V
+HPLcom/android/internal/compat/IPlatformCompatNative$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/content/NativeLibraryHelper$Handle;->close()V
+HSPLcom/android/internal/content/NativeLibraryHelper$Handle;->create(Landroid/content/pm/PackageParser$PackageLite;)Lcom/android/internal/content/NativeLibraryHelper$Handle;
+HSPLcom/android/internal/content/NativeLibraryHelper$Handle;->create(Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/internal/content/NativeLibraryHelper$Handle;
+PLcom/android/internal/content/NativeLibraryHelper$Handle;->create(Ljava/io/File;)Lcom/android/internal/content/NativeLibraryHelper$Handle;
+HSPLcom/android/internal/content/NativeLibraryHelper$Handle;->create(Ljava/util/List;ZZZ)Lcom/android/internal/content/NativeLibraryHelper$Handle;
+HSPLcom/android/internal/content/NativeLibraryHelper$Handle;->finalize()V
+HSPLcom/android/internal/content/NativeLibraryHelper;->access$000(Ljava/lang/String;)J
+HSPLcom/android/internal/content/NativeLibraryHelper;->access$100(J)V
+HSPLcom/android/internal/content/NativeLibraryHelper;->copyNativeBinaries(Lcom/android/internal/content/NativeLibraryHelper$Handle;Ljava/io/File;Ljava/lang/String;)I
+HSPLcom/android/internal/content/NativeLibraryHelper;->createNativeLibrarySubdir(Ljava/io/File;)V
+HSPLcom/android/internal/content/NativeLibraryHelper;->findSupportedAbi(Lcom/android/internal/content/NativeLibraryHelper$Handle;[Ljava/lang/String;)I
+HSPLcom/android/internal/content/NativeLibraryHelper;->hasRenderscriptBitcode(Lcom/android/internal/content/NativeLibraryHelper$Handle;)Z
+PLcom/android/internal/content/NativeLibraryHelper;->removeNativeBinariesFromDirLI(Ljava/io/File;Z)V
+HSPLcom/android/internal/content/NativeLibraryHelper;->sumNativeBinariesWithOverride(Lcom/android/internal/content/NativeLibraryHelper$Handle;Ljava/lang/String;)J
+PLcom/android/internal/content/PackageHelper$1;->getAllow3rdPartyOnInternalConfig(Landroid/content/Context;)Z
+PLcom/android/internal/content/PackageHelper$1;->getExistingAppInfo(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/ApplicationInfo;
+PLcom/android/internal/content/PackageHelper$1;->getForceAllowOnExternalSetting(Landroid/content/Context;)Z
+PLcom/android/internal/content/PackageHelper$1;->getStorageManager(Landroid/content/Context;)Landroid/os/storage/StorageManager;
+HSPLcom/android/internal/content/PackageHelper;->calculateInstalledSize(Landroid/content/pm/PackageParser$PackageLite;Lcom/android/internal/content/NativeLibraryHelper$Handle;Ljava/lang/String;)J
+HSPLcom/android/internal/content/PackageHelper;->calculateInstalledSize(Landroid/content/pm/PackageParser$PackageLite;Ljava/lang/String;Ljava/io/FileDescriptor;)J
+PLcom/android/internal/content/PackageHelper;->checkFitOnVolume(Landroid/os/storage/StorageManager;Ljava/lang/String;Landroid/content/pm/PackageInstaller$SessionParams;)Z
+PLcom/android/internal/content/PackageHelper;->fitsOnInternal(Landroid/content/Context;Landroid/content/pm/PackageInstaller$SessionParams;)Z
+PLcom/android/internal/content/PackageHelper;->getDefaultTestableInterface()Lcom/android/internal/content/PackageHelper$TestableInterface;
+HSPLcom/android/internal/content/PackageHelper;->getStorageManager()Landroid/os/storage/IStorageManager;
+PLcom/android/internal/content/PackageHelper;->resolveInstallLocation(Landroid/content/Context;Landroid/content/pm/PackageInstaller$SessionParams;)I
+PLcom/android/internal/content/PackageHelper;->resolveInstallLocation(Landroid/content/Context;Ljava/lang/String;IJI)I
+PLcom/android/internal/content/PackageHelper;->resolveInstallVolume(Landroid/content/Context;Landroid/content/pm/PackageInstaller$SessionParams;)Ljava/lang/String;
+HPLcom/android/internal/content/PackageHelper;->resolveInstallVolume(Landroid/content/Context;Landroid/content/pm/PackageInstaller$SessionParams;Lcom/android/internal/content/PackageHelper$TestableInterface;)Ljava/lang/String;
+HSPLcom/android/internal/content/PackageMonitor;-><init>()V
+PLcom/android/internal/content/PackageMonitor;->didSomePackagesChange()Z
+HSPLcom/android/internal/content/PackageMonitor;->getChangingUserId()I
+HSPLcom/android/internal/content/PackageMonitor;->getPackageName(Landroid/content/Intent;)Ljava/lang/String;
+HPLcom/android/internal/content/PackageMonitor;->isComponentModified(Ljava/lang/String;)Z
+PLcom/android/internal/content/PackageMonitor;->isPackageAppearing(Ljava/lang/String;)I
+HPLcom/android/internal/content/PackageMonitor;->isPackageDisappearing(Ljava/lang/String;)I
+HPLcom/android/internal/content/PackageMonitor;->isPackageModified(Ljava/lang/String;)Z
+HSPLcom/android/internal/content/PackageMonitor;->onBeginPackageChanges()V
+HSPLcom/android/internal/content/PackageMonitor;->onFinishPackageChanges()V
+HPLcom/android/internal/content/PackageMonitor;->onPackageAppeared(Ljava/lang/String;I)V
+HPLcom/android/internal/content/PackageMonitor;->onPackageChanged(Ljava/lang/String;I[Ljava/lang/String;)Z
+HSPLcom/android/internal/content/PackageMonitor;->onPackageDisappeared(Ljava/lang/String;I)V
+HPLcom/android/internal/content/PackageMonitor;->onPackageModified(Ljava/lang/String;)V
+HPLcom/android/internal/content/PackageMonitor;->onPackageUpdateFinished(Ljava/lang/String;I)V
+HPLcom/android/internal/content/PackageMonitor;->onPackageUpdateStarted(Ljava/lang/String;I)V
+HSPLcom/android/internal/content/PackageMonitor;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/internal/content/PackageMonitor;->onSomePackagesChanged()V
+HSPLcom/android/internal/content/PackageMonitor;->register(Landroid/content/Context;Landroid/os/Looper;Landroid/os/UserHandle;Z)V
+HSPLcom/android/internal/content/PackageMonitor;->register(Landroid/content/Context;Landroid/os/Looper;Z)V
+HSPLcom/android/internal/content/PackageMonitor;->register(Landroid/content/Context;Landroid/os/UserHandle;ZLandroid/os/Handler;)V
+HSPLcom/android/internal/content/ReferrerIntent$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/content/ReferrerIntent;
+HSPLcom/android/internal/content/ReferrerIntent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/content/ReferrerIntent;-><init>(Landroid/os/Parcel;)V
+HPLcom/android/internal/content/ReferrerIntent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/graphics/-$$Lambda$ColorUtils$zbDH-52c8D9XBeqmvTHi3Boxl14;-><init>(I)V
+HSPLcom/android/internal/graphics/-$$Lambda$ColorUtils$zbDH-52c8D9XBeqmvTHi3Boxl14;->calculateContrast(III)D
+HSPLcom/android/internal/graphics/ColorUtils;->HSLToColor([F)I
+HSPLcom/android/internal/graphics/ColorUtils;->RGBToHSL(III[F)V
+HSPLcom/android/internal/graphics/ColorUtils;->RGBToXYZ(III[D)V
+HSPLcom/android/internal/graphics/ColorUtils;->binaryAlphaSearch(IIFLcom/android/internal/graphics/ColorUtils$ContrastCalculator;)I
+HSPLcom/android/internal/graphics/ColorUtils;->blendARGB(IIF)I
+HSPLcom/android/internal/graphics/ColorUtils;->calculateContrast(II)D
+HSPLcom/android/internal/graphics/ColorUtils;->calculateLuminance(I)D
+HSPLcom/android/internal/graphics/ColorUtils;->calculateMinimumBackgroundAlpha(IIF)I
+HSPLcom/android/internal/graphics/ColorUtils;->colorToHSL(I[F)V
+HSPLcom/android/internal/graphics/ColorUtils;->colorToXYZ(I[D)V
+HSPLcom/android/internal/graphics/ColorUtils;->constrain(FFF)F
+HSPLcom/android/internal/graphics/ColorUtils;->constrain(III)I
+HSPLcom/android/internal/graphics/ColorUtils;->getTempDouble3Array()[D
+HSPLcom/android/internal/graphics/ColorUtils;->lambda$calculateMinimumBackgroundAlpha$0(IIII)D
+HSPLcom/android/internal/graphics/ColorUtils;->setAlphaComponent(II)I
+HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;-><init>()V
+HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;-><init>(Landroid/view/Choreographer;)V
+HPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;->getFrameTime()J
+HPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V
 HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;-><init>(Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable;Landroid/content/res/Resources;)V
 HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->addDrawable(Landroid/graphics/drawable/Drawable;)I
 HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->canApplyTheme()Z
@@ -15242,18 +31441,244 @@
 HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
 HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->start()V
 HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->stop()V
+HPLcom/android/internal/infra/-$$Lambda$AbstractRemoteService$6FcEKfZ-7TXLg6dcCU8EMuMNAy4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/internal/infra/-$$Lambda$AbstractRemoteService$9IBVTCLLZgndvH7fu1P14PW1_1o;->accept(Ljava/lang/Object;)V
+HSPLcom/android/internal/infra/-$$Lambda$AbstractRemoteService$YSUzqqi1Pbrg2dlwMGMtKWbGXck;->accept(Ljava/lang/Object;)V
+HPLcom/android/internal/infra/-$$Lambda$EbzSql2RHkXox5Myj8A-7kLC4_A;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/internal/infra/-$$Lambda$ServiceConnector$Impl$3vLWxkP1Z6JyExzdZboFFp1zM20;-><clinit>()V
+PLcom/android/internal/infra/-$$Lambda$ServiceConnector$Impl$3vLWxkP1Z6JyExzdZboFFp1zM20;-><init>()V
+PLcom/android/internal/infra/-$$Lambda$ServiceConnector$Impl$3vLWxkP1Z6JyExzdZboFFp1zM20;->run(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/internal/infra/-$$Lambda$T7zIZMFnvwrmtbuTMXLaZHHp-9s;-><clinit>()V
+HSPLcom/android/internal/infra/-$$Lambda$T7zIZMFnvwrmtbuTMXLaZHHp-9s;-><init>()V
+HPLcom/android/internal/infra/-$$Lambda$T7zIZMFnvwrmtbuTMXLaZHHp-9s;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/internal/infra/-$$Lambda$XuWfs8-IsKaNygi8YjlVGjedkIw;-><clinit>()V
+PLcom/android/internal/infra/-$$Lambda$XuWfs8-IsKaNygi8YjlVGjedkIw;-><init>()V
+HPLcom/android/internal/infra/-$$Lambda$XuWfs8-IsKaNygi8YjlVGjedkIw;->accept(Ljava/lang/Object;)V
+PLcom/android/internal/infra/-$$Lambda$qN_gooelzsUiBhYWznXKzb-8_wA;-><clinit>()V
+PLcom/android/internal/infra/-$$Lambda$qN_gooelzsUiBhYWznXKzb-8_wA;-><init>()V
+PLcom/android/internal/infra/-$$Lambda$qN_gooelzsUiBhYWznXKzb-8_wA;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/internal/infra/-$$Lambda$rAXGjry3wPGKviARzTYfDiY7xrs;-><clinit>()V
+HSPLcom/android/internal/infra/-$$Lambda$rAXGjry3wPGKviARzTYfDiY7xrs;-><init>()V
+HSPLcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/content/ComponentName;ILcom/android/internal/infra/AbstractRemoteService$VultureCallback;Landroid/os/Handler;IZI)V
+PLcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService;->handleOnDestroy()V
+PLcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService;->handlePendingRequestWhileUnBound(Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;)V
+PLcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService;->handlePendingRequests()V
+HPLcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;-><init>(Lcom/android/internal/infra/AbstractRemoteService;)V
+HPLcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;->finish()Z
+HPLcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;->getService()Lcom/android/internal/infra/AbstractRemoteService;
+HPLcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;->isFinal()Z
+HPLcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;->onFinished()V
+HPLcom/android/internal/infra/AbstractRemoteService$MyAsyncPendingRequest;-><init>(Lcom/android/internal/infra/AbstractRemoteService;Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest;)V
+HPLcom/android/internal/infra/AbstractRemoteService$MyAsyncPendingRequest;->run()V
+HSPLcom/android/internal/infra/AbstractRemoteService$RemoteServiceConnection;-><init>(Lcom/android/internal/infra/AbstractRemoteService;)V
+HSPLcom/android/internal/infra/AbstractRemoteService$RemoteServiceConnection;-><init>(Lcom/android/internal/infra/AbstractRemoteService;Lcom/android/internal/infra/AbstractRemoteService$1;)V
+PLcom/android/internal/infra/AbstractRemoteService$RemoteServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+HSPLcom/android/internal/infra/AbstractRemoteService;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/content/ComponentName;ILcom/android/internal/infra/AbstractRemoteService$VultureCallback;Landroid/os/Handler;IZ)V
+PLcom/android/internal/infra/AbstractRemoteService;->access$100(Lcom/android/internal/infra/AbstractRemoteService;)Z
+PLcom/android/internal/infra/AbstractRemoteService;->access$200(Lcom/android/internal/infra/AbstractRemoteService;)Z
+PLcom/android/internal/infra/AbstractRemoteService;->access$202(Lcom/android/internal/infra/AbstractRemoteService;Z)Z
+PLcom/android/internal/infra/AbstractRemoteService;->access$400(Lcom/android/internal/infra/AbstractRemoteService;Z)V
+PLcom/android/internal/infra/AbstractRemoteService;->access$502(Lcom/android/internal/infra/AbstractRemoteService;Z)Z
+HPLcom/android/internal/infra/AbstractRemoteService;->cancelScheduledUnbind()V
+HPLcom/android/internal/infra/AbstractRemoteService;->checkIfDestroyed()Z
+PLcom/android/internal/infra/AbstractRemoteService;->destroy()V
+HPLcom/android/internal/infra/AbstractRemoteService;->finishRequest(Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;)V
+PLcom/android/internal/infra/AbstractRemoteService;->handleDestroy()V
+HSPLcom/android/internal/infra/AbstractRemoteService;->handleEnsureBound()V
+PLcom/android/internal/infra/AbstractRemoteService;->handleEnsureUnbound()V
+HPLcom/android/internal/infra/AbstractRemoteService;->handleFinishRequest(Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;)V
+HSPLcom/android/internal/infra/AbstractRemoteService;->handleIsBound()Z
+PLcom/android/internal/infra/AbstractRemoteService;->handleOnConnectedStateChangedInternal(Z)V
+HPLcom/android/internal/infra/AbstractRemoteService;->handlePendingRequest(Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;)V
+HPLcom/android/internal/infra/AbstractRemoteService;->lambda$6FcEKfZ-7TXLg6dcCU8EMuMNAy4(Lcom/android/internal/infra/AbstractRemoteService;Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;)V
+PLcom/android/internal/infra/AbstractRemoteService;->lambda$9IBVTCLLZgndvH7fu1P14PW1_1o(Lcom/android/internal/infra/AbstractRemoteService;)V
+HSPLcom/android/internal/infra/AbstractRemoteService;->lambda$YSUzqqi1Pbrg2dlwMGMtKWbGXck(Lcom/android/internal/infra/AbstractRemoteService;)V
+HPLcom/android/internal/infra/AbstractRemoteService;->scheduleAsyncRequest(Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest;)V
+HSPLcom/android/internal/infra/AbstractRemoteService;->scheduleBind()V
+HPLcom/android/internal/infra/AbstractRemoteService;->scheduleUnbind()V
+HPLcom/android/internal/infra/AbstractRemoteService;->scheduleUnbind(Z)V
+PLcom/android/internal/infra/AndroidFuture$1;-><init>(Lcom/android/internal/infra/AndroidFuture;)V
+PLcom/android/internal/infra/AndroidFuture$1;->complete(Lcom/android/internal/infra/AndroidFuture;)V
+HSPLcom/android/internal/infra/AndroidFuture$2;-><init>()V
+HSPLcom/android/internal/infra/AndroidFuture$2;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/infra/AndroidFuture;
+HSPLcom/android/internal/infra/AndroidFuture$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/infra/AndroidFuture;-><clinit>()V
+HSPLcom/android/internal/infra/AndroidFuture;-><init>()V
+HSPLcom/android/internal/infra/AndroidFuture;-><init>(Landroid/os/Parcel;)V
+HPLcom/android/internal/infra/AndroidFuture;->callListener(Ljava/util/function/BiConsumer;Ljava/lang/Object;Ljava/lang/Throwable;)V
+PLcom/android/internal/infra/AndroidFuture;->callListenerAsync(Ljava/util/function/BiConsumer;Ljava/lang/Object;Ljava/lang/Throwable;)V
+HSPLcom/android/internal/infra/AndroidFuture;->cancelTimeout()Lcom/android/internal/infra/AndroidFuture;
+HSPLcom/android/internal/infra/AndroidFuture;->complete(Ljava/lang/Object;)Z
+HSPLcom/android/internal/infra/AndroidFuture;->completedFuture(Ljava/lang/Object;)Lcom/android/internal/infra/AndroidFuture;
+HSPLcom/android/internal/infra/AndroidFuture;->onCompleted(Ljava/lang/Object;Ljava/lang/Throwable;)V
+HSPLcom/android/internal/infra/AndroidFuture;->orTimeout(JLjava/util/concurrent/TimeUnit;)Lcom/android/internal/infra/AndroidFuture;
+HSPLcom/android/internal/infra/AndroidFuture;->whenComplete(Ljava/util/function/BiConsumer;)Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/internal/infra/AndroidFuture;->whenComplete(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletionStage;
+HSPLcom/android/internal/infra/AndroidFuture;->whenCompleteAsync(Ljava/util/function/BiConsumer;Ljava/util/concurrent/Executor;)Lcom/android/internal/infra/AndroidFuture;
+HSPLcom/android/internal/infra/AndroidFuture;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/infra/GlobalWhitelistState;-><init>()V
+HSPLcom/android/internal/infra/GlobalWhitelistState;->getWhitelistedComponents(ILjava/lang/String;)Landroid/util/ArraySet;
+HPLcom/android/internal/infra/GlobalWhitelistState;->isWhitelisted(ILandroid/content/ComponentName;)Z
+HSPLcom/android/internal/infra/GlobalWhitelistState;->isWhitelisted(ILjava/lang/String;)Z
+PLcom/android/internal/infra/GlobalWhitelistState;->resetWhitelist(I)V
+PLcom/android/internal/infra/GlobalWhitelistState;->setWhitelist(ILjava/util/List;Ljava/util/List;)V
+PLcom/android/internal/infra/IAndroidFuture$Stub;-><init>()V
+PLcom/android/internal/infra/IAndroidFuture$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/infra/IAndroidFuture$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/infra/PerUser;-><init>()V
+HSPLcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;-><init>(Lcom/android/internal/infra/ServiceConnector$Impl;)V
+HPLcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;->accept(Ljava/lang/Object;Ljava/lang/Throwable;)V
+HPLcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;->onCompleted(Ljava/lang/Object;Ljava/lang/Throwable;)V
+PLcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;->run(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/internal/infra/ServiceConnector$Impl;-><init>(Landroid/content/Context;Landroid/content/Intent;IILjava/util/function/Function;)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->access$100(Lcom/android/internal/infra/ServiceConnector$Impl;)Ljava/util/List;
+HPLcom/android/internal/infra/ServiceConnector$Impl;->access$200(Lcom/android/internal/infra/ServiceConnector$Impl;)V
+HPLcom/android/internal/infra/ServiceConnector$Impl;->bindService(Landroid/content/ServiceConnection;Landroid/os/Handler;)Z
+PLcom/android/internal/infra/ServiceConnector$Impl;->binderAsInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
+HPLcom/android/internal/infra/ServiceConnector$Impl;->cancelPendingJobs()V
+HSPLcom/android/internal/infra/ServiceConnector$Impl;->cancelTimeout()V
+HPLcom/android/internal/infra/ServiceConnector$Impl;->castOrNull(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
+PLcom/android/internal/infra/ServiceConnector$Impl;->connect()Lcom/android/internal/infra/AndroidFuture;
+HSPLcom/android/internal/infra/ServiceConnector$Impl;->enqueue(Lcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;)V
+HSPLcom/android/internal/infra/ServiceConnector$Impl;->enqueue(Lcom/android/internal/infra/ServiceConnector$Job;)Z
+HPLcom/android/internal/infra/ServiceConnector$Impl;->enqueueJobThread(Lcom/android/internal/infra/ServiceConnector$Job;)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->getAutoDisconnectTimeoutMs()J
+HPLcom/android/internal/infra/ServiceConnector$Impl;->getJobHandler()Landroid/os/Handler;
+HSPLcom/android/internal/infra/ServiceConnector$Impl;->getRequestTimeoutMs()J
+HPLcom/android/internal/infra/ServiceConnector$Impl;->isBound()Z
+PLcom/android/internal/infra/ServiceConnector$Impl;->lambda$connect$0(Landroid/os/IInterface;)Landroid/os/IInterface;
+HPLcom/android/internal/infra/ServiceConnector$Impl;->maybeScheduleUnbindTimeout()V
+HPLcom/android/internal/infra/ServiceConnector$Impl;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->onServiceConnectionStatusChanged(Landroid/os/IInterface;Z)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->onServiceUnbound()V
+HPLcom/android/internal/infra/ServiceConnector$Impl;->onTimeout()V
+HSPLcom/android/internal/infra/ServiceConnector$Impl;->postAsync(Lcom/android/internal/infra/ServiceConnector$Job;)Lcom/android/internal/infra/AndroidFuture;
+HPLcom/android/internal/infra/ServiceConnector$Impl;->processQueue()V
+HPLcom/android/internal/infra/ServiceConnector$Impl;->run()V
+HPLcom/android/internal/infra/ServiceConnector$Impl;->scheduleUnbindTimeout()V
+HPLcom/android/internal/infra/ServiceConnector$Impl;->unbind()V
+HPLcom/android/internal/infra/ServiceConnector$Impl;->unbindJobThread()V
+HPLcom/android/internal/infra/ServiceConnector$VoidJob;->run(Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/internal/infra/ServiceConnector$VoidJob;->run(Ljava/lang/Object;)Ljava/lang/Void;
+PLcom/android/internal/infra/ThrottledRunnable;-><init>(Landroid/os/Handler;JLjava/lang/Runnable;)V
+HPLcom/android/internal/infra/ThrottledRunnable;->run()V
+PLcom/android/internal/infra/WhitelistHelper;-><init>()V
+HPLcom/android/internal/infra/WhitelistHelper;->getWhitelistedComponents(Ljava/lang/String;)Landroid/util/ArraySet;
+HPLcom/android/internal/infra/WhitelistHelper;->isWhitelisted(Landroid/content/ComponentName;)Z
+HPLcom/android/internal/infra/WhitelistHelper;->isWhitelisted(Ljava/lang/String;)Z
+HPLcom/android/internal/infra/WhitelistHelper;->setWhitelist(Landroid/util/ArraySet;Landroid/util/ArraySet;)V
+PLcom/android/internal/infra/WhitelistHelper;->setWhitelist(Ljava/util/List;Ljava/util/List;)V
+PLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub;-><init>()V
+PLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLcom/android/internal/inputmethod/SubtypeLocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale;
+HSPLcom/android/internal/location/GpsNetInitiatedHandler$1;-><init>(Lcom/android/internal/location/GpsNetInitiatedHandler;)V
+HSPLcom/android/internal/location/GpsNetInitiatedHandler$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/internal/location/GpsNetInitiatedHandler$2;-><init>(Lcom/android/internal/location/GpsNetInitiatedHandler;)V
+HSPLcom/android/internal/location/GpsNetInitiatedHandler;-><init>(Landroid/content/Context;Landroid/location/INetInitiatedListener;Z)V
+HSPLcom/android/internal/location/GpsNetInitiatedHandler;->access$100()Z
+HSPLcom/android/internal/location/GpsNetInitiatedHandler;->setEmergencyExtensionSeconds(I)V
+HSPLcom/android/internal/location/GpsNetInitiatedHandler;->setSuplEsEnabled(Z)V
+HSPLcom/android/internal/location/GpsNetInitiatedHandler;->updateLocationMode()V
+HPLcom/android/internal/location/ILocationProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/location/ILocationProvider$Stub$Proxy;->setLocationProviderManager(Lcom/android/internal/location/ILocationProviderManager;)V
+HPLcom/android/internal/location/ILocationProvider$Stub$Proxy;->setRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+HSPLcom/android/internal/location/ILocationProvider$Stub;-><init>()V
+HSPLcom/android/internal/location/ILocationProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/location/ILocationProvider;
+HSPLcom/android/internal/location/ILocationProvider$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/location/ILocationProviderManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/location/ILocationProviderManager$Stub$Proxy;->onSetProperties(Lcom/android/internal/location/ProviderProperties;)V
+HSPLcom/android/internal/location/ILocationProviderManager$Stub;-><init>()V
+PLcom/android/internal/location/ILocationProviderManager$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/location/ILocationProviderManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/location/ILocationProviderManager;
+HPLcom/android/internal/location/ILocationProviderManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/location/ProviderProperties$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/location/ProviderProperties;
+HSPLcom/android/internal/location/ProviderProperties$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/location/ProviderProperties;-><init>(ZZZZZZZII)V
+HSPLcom/android/internal/location/ProviderProperties;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/location/ProviderRequest$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/location/ProviderRequest;
+HSPLcom/android/internal/location/ProviderRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/location/ProviderRequest$Builder;-><init>()V
+HSPLcom/android/internal/location/ProviderRequest$Builder;->build()Lcom/android/internal/location/ProviderRequest;
+HSPLcom/android/internal/location/ProviderRequest$Builder;->getInterval()J
+HSPLcom/android/internal/location/ProviderRequest$Builder;->getLocationRequests()Ljava/util/List;
+HSPLcom/android/internal/location/ProviderRequest$Builder;->getWorkSource()Landroid/os/WorkSource;
+HSPLcom/android/internal/location/ProviderRequest$Builder;->isLocationSettingsIgnored()Z
+HSPLcom/android/internal/location/ProviderRequest$Builder;->setInterval(J)Lcom/android/internal/location/ProviderRequest$Builder;
+HSPLcom/android/internal/location/ProviderRequest$Builder;->setLocationRequests(Ljava/util/List;)Lcom/android/internal/location/ProviderRequest$Builder;
+HSPLcom/android/internal/location/ProviderRequest$Builder;->setLowPowerMode(Z)Lcom/android/internal/location/ProviderRequest$Builder;
+HSPLcom/android/internal/location/ProviderRequest;-><init>(ZJZZLjava/util/List;Landroid/os/WorkSource;)V
+HSPLcom/android/internal/location/ProviderRequest;-><init>(ZJZZLjava/util/List;Landroid/os/WorkSource;Lcom/android/internal/location/ProviderRequest$1;)V
+HPLcom/android/internal/location/ProviderRequest;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics$GnssPowerMetrics;-><init>(Lcom/android/internal/location/gnssmetrics/GnssMetrics;Lcom/android/internal/app/IBatteryStats;)V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics$GnssPowerMetrics;-><init>(Lcom/android/internal/location/gnssmetrics/GnssMetrics;Lcom/android/internal/app/IBatteryStats;Lcom/android/internal/location/gnssmetrics/GnssMetrics$1;)V
+PLcom/android/internal/location/gnssmetrics/GnssMetrics$GnssPowerMetrics;->getGpsBatteryStats()Landroid/os/connectivity/GpsBatteryStats;
+PLcom/android/internal/location/gnssmetrics/GnssMetrics$GnssPowerMetrics;->getSignalLevel(D)I
+HPLcom/android/internal/location/gnssmetrics/GnssMetrics$GnssPowerMetrics;->reportSignalQuality([FI)V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics$Statistics;-><init>(Lcom/android/internal/location/gnssmetrics/GnssMetrics;)V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics$Statistics;-><init>(Lcom/android/internal/location/gnssmetrics/GnssMetrics;Lcom/android/internal/location/gnssmetrics/GnssMetrics$1;)V
+HPLcom/android/internal/location/gnssmetrics/GnssMetrics$Statistics;->addItem(D)V
+PLcom/android/internal/location/gnssmetrics/GnssMetrics$Statistics;->getCount()I
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics$Statistics;->reset()V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics;-><init>(Lcom/android/internal/app/IBatteryStats;)V
+HPLcom/android/internal/location/gnssmetrics/GnssMetrics;->isL5Sv(F)Z
+HPLcom/android/internal/location/gnssmetrics/GnssMetrics;->logCn0([FI[F)V
+HPLcom/android/internal/location/gnssmetrics/GnssMetrics;->logCn0L5(I[F[F)V
+HPLcom/android/internal/location/gnssmetrics/GnssMetrics;->logSvStatus(Landroid/location/GnssStatus;)V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics;->reset()V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics;->resetConstellationTypes()V
 HSPLcom/android/internal/logging/AndroidConfig;-><init>()V
 HSPLcom/android/internal/logging/AndroidHandler$1;->format(Ljava/util/logging/LogRecord;)Ljava/lang/String;
 HSPLcom/android/internal/logging/AndroidHandler;-><init>()V
 HSPLcom/android/internal/logging/AndroidHandler;->getAndroidLevel(Ljava/util/logging/Level;)I
 HSPLcom/android/internal/logging/AndroidHandler;->publish(Ljava/util/logging/LogRecord;)V
+HSPLcom/android/internal/logging/EventLogTags;->writeCommitSysConfigFile(Ljava/lang/String;J)V
 HSPLcom/android/internal/logging/EventLogTags;->writeSysuiMultiAction([Ljava/lang/Object;)V
+HSPLcom/android/internal/logging/InstanceId$1;-><init>()V
+HSPLcom/android/internal/logging/InstanceId$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/logging/InstanceId;
+HSPLcom/android/internal/logging/InstanceId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/logging/InstanceId;-><clinit>()V
+HSPLcom/android/internal/logging/InstanceId;-><init>(I)V
+HSPLcom/android/internal/logging/InstanceId;-><init>(Landroid/os/Parcel;)V
+HSPLcom/android/internal/logging/InstanceId;-><init>(Landroid/os/Parcel;Lcom/android/internal/logging/InstanceId$1;)V
 HSPLcom/android/internal/logging/MetricsLogger;-><init>()V
+HSPLcom/android/internal/logging/MetricsLogger;->action(I)V
 HSPLcom/android/internal/logging/MetricsLogger;->action(II)V
+HSPLcom/android/internal/logging/MetricsLogger;->action(IZ)V
+HSPLcom/android/internal/logging/MetricsLogger;->action(Landroid/content/Context;II)V
+HSPLcom/android/internal/logging/MetricsLogger;->action(Landroid/content/Context;IZ)V
+HSPLcom/android/internal/logging/MetricsLogger;->action(Landroid/metrics/LogMaker;)V
+HSPLcom/android/internal/logging/MetricsLogger;->count(Landroid/content/Context;Ljava/lang/String;I)V
+HSPLcom/android/internal/logging/MetricsLogger;->count(Ljava/lang/String;I)V
 HSPLcom/android/internal/logging/MetricsLogger;->getLogger()Lcom/android/internal/logging/MetricsLogger;
+HSPLcom/android/internal/logging/MetricsLogger;->hidden(I)V
+HPLcom/android/internal/logging/MetricsLogger;->hidden(Landroid/content/Context;I)V
+HSPLcom/android/internal/logging/MetricsLogger;->histogram(Landroid/content/Context;Ljava/lang/String;I)V
+HSPLcom/android/internal/logging/MetricsLogger;->histogram(Ljava/lang/String;I)V
 HSPLcom/android/internal/logging/MetricsLogger;->saveLog(Landroid/metrics/LogMaker;)V
+HSPLcom/android/internal/logging/MetricsLogger;->visibility(IZ)V
+HSPLcom/android/internal/logging/MetricsLogger;->visible(I)V
+HPLcom/android/internal/logging/MetricsLogger;->visible(Landroid/content/Context;I)V
 HSPLcom/android/internal/logging/MetricsLogger;->write(Landroid/metrics/LogMaker;)V
+HSPLcom/android/internal/logging/UiEventLoggerImpl;-><init>()V
+HSPLcom/android/internal/logging/UiEventLoggerImpl;->log(Lcom/android/internal/logging/UiEventLogger$UiEventEnum;ILjava/lang/String;)V
+HSPLcom/android/internal/net/INetworkWatchlistManager$Stub;-><init>()V
+PLcom/android/internal/net/INetworkWatchlistManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/net/INetworkWatchlistManager;
+HPLcom/android/internal/net/INetworkWatchlistManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/notification/SystemNotificationChannels;->createAll(Landroid/content/Context;)V
+HSPLcom/android/internal/notification/SystemNotificationChannels;->newAccountChannel(Landroid/content/Context;)Landroid/app/NotificationChannel;
+HSPLcom/android/internal/notification/SystemNotificationChannels;->removeDeprecated(Landroid/content/Context;)V
+HSPLcom/android/internal/os/-$$Lambda$6-ytl6NLMGWt_iQr4_PfakNWUKQ;->get()Ljava/lang/Object;
+HSPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$7bfIWpn8X2h-hSzLD6dcuK4Ljuw;-><init>(Lcom/android/internal/os/BatteryStatsImpl;IZLandroid/util/SparseLongArray;)V
+HSPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$7bfIWpn8X2h-hSzLD6dcuK4Ljuw;->onUidCpuTime(ILjava/lang/Object;)V
+HSPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$B-TmZhQb712ePnuJTxvMe7P-YwQ;-><init>(Lcom/android/internal/os/BatteryStatsImpl;ZZZII)V
+HSPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$B-TmZhQb712ePnuJTxvMe7P-YwQ;->onUidCpuTime(ILjava/lang/Object;)V
+HSPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$Xvt9xdVPtevMWGIjcbxXf0_mr_c;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Z)V
+HSPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$Xvt9xdVPtevMWGIjcbxXf0_mr_c;->onUidCpuTime(ILjava/lang/Object;)V
+HSPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$_l2oiaRDRhjCXI_PwXPsAhrgegI;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Z)V
+HSPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$_l2oiaRDRhjCXI_PwXPsAhrgegI;->onUidCpuTime(ILjava/lang/Object;)V
+HPLcom/android/internal/os/-$$Lambda$BinderCallsStats$sqXweH5BoxhmZvI188ctqYiACRk;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLcom/android/internal/os/-$$Lambda$RuntimeInit$ep4ioD9YINkHI5Q1wZ0N_7VFAOg;->get()Ljava/lang/Object;
 HSPLcom/android/internal/os/-$$Lambda$ZygoteConnection$KxVsZ-s4KsanePOHCU5JcuypPik;-><init>(II)V
 HSPLcom/android/internal/os/-$$Lambda$ZygoteConnection$KxVsZ-s4KsanePOHCU5JcuypPik;->run()V
@@ -15261,27 +31686,1010 @@
 HSPLcom/android/internal/os/-$$Lambda$ZygoteConnection$xjqM7qW7vAjTqh2tR5XRF5Vn5mk;->run()V
 HSPLcom/android/internal/os/AndroidPrintStream;-><init>(ILjava/lang/String;)V
 HSPLcom/android/internal/os/AndroidPrintStream;->log(Ljava/lang/String;)V
+HSPLcom/android/internal/os/AtomicDirectory;-><init>(Ljava/io/File;)V
+HPLcom/android/internal/os/AtomicDirectory;->backup()V
+HPLcom/android/internal/os/AtomicDirectory;->closeWrite(Ljava/io/FileOutputStream;)V
+PLcom/android/internal/os/AtomicDirectory;->delete()V
+PLcom/android/internal/os/AtomicDirectory;->deleteDirectory(Ljava/io/File;)Z
+HSPLcom/android/internal/os/AtomicDirectory;->ensureBaseDirectory()V
+HSPLcom/android/internal/os/AtomicDirectory;->finishRead()V
+HPLcom/android/internal/os/AtomicDirectory;->openWrite(Ljava/io/File;)Ljava/io/FileOutputStream;
+HSPLcom/android/internal/os/AtomicDirectory;->restore()V
+HSPLcom/android/internal/os/AtomicDirectory;->startRead()Ljava/io/File;
+HPLcom/android/internal/os/AtomicDirectory;->syncDirectory(Ljava/io/File;)V
+HPLcom/android/internal/os/AtomicDirectory;->syncParentDirectory()V
+HPLcom/android/internal/os/AtomicDirectory;->throwIfSomeFilesOpen()V
 HSPLcom/android/internal/os/BackgroundThread;-><init>()V
 HSPLcom/android/internal/os/BackgroundThread;->ensureThreadLocked()V
+HSPLcom/android/internal/os/BackgroundThread;->get()Lcom/android/internal/os/BackgroundThread;
+HSPLcom/android/internal/os/BackgroundThread;->getExecutor()Ljava/util/concurrent/Executor;
 HSPLcom/android/internal/os/BackgroundThread;->getHandler()Landroid/os/Handler;
+HSPLcom/android/internal/os/BatterySipper;-><init>(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
+HSPLcom/android/internal/os/BatterySipper;->add(Lcom/android/internal/os/BatterySipper;)V
+HSPLcom/android/internal/os/BatterySipper;->compareTo(Lcom/android/internal/os/BatterySipper;)I
+HSPLcom/android/internal/os/BatterySipper;->compareTo(Ljava/lang/Object;)I
+HSPLcom/android/internal/os/BatterySipper;->computeMobilemspp()V
+HSPLcom/android/internal/os/BatterySipper;->getUid()I
+HSPLcom/android/internal/os/BatterySipper;->sumPower()D
+HSPLcom/android/internal/os/BatteryStatsHelper$1;-><init>(Lcom/android/internal/os/BatteryStatsHelper;)V
+HSPLcom/android/internal/os/BatteryStatsHelper$1;->compare(Lcom/android/internal/os/BatterySipper;Lcom/android/internal/os/BatterySipper;)I
+HSPLcom/android/internal/os/BatteryStatsHelper$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/internal/os/BatteryStatsHelper;-><init>(Landroid/content/Context;ZZ)V
+HSPLcom/android/internal/os/BatteryStatsHelper;->addAmbientDisplayUsage()V
+HSPLcom/android/internal/os/BatteryStatsHelper;->addBluetoothUsage()V
+HSPLcom/android/internal/os/BatteryStatsHelper;->addEntry(Lcom/android/internal/os/BatterySipper$DrainType;JD)Lcom/android/internal/os/BatterySipper;
+HSPLcom/android/internal/os/BatteryStatsHelper;->addIdleUsage()V
+HSPLcom/android/internal/os/BatteryStatsHelper;->addMemoryUsage()V
+HSPLcom/android/internal/os/BatteryStatsHelper;->addPhoneUsage()V
+HSPLcom/android/internal/os/BatteryStatsHelper;->addRadioUsage()V
+HSPLcom/android/internal/os/BatteryStatsHelper;->addScreenUsage()V
+HSPLcom/android/internal/os/BatteryStatsHelper;->addUserUsage()V
+HSPLcom/android/internal/os/BatteryStatsHelper;->addWiFiUsage()V
+HSPLcom/android/internal/os/BatteryStatsHelper;->aggregateSippers(Lcom/android/internal/os/BatterySipper;Ljava/util/List;Ljava/lang/String;)V
+HSPLcom/android/internal/os/BatteryStatsHelper;->checkHasBluetoothPowerReporting(Landroid/os/BatteryStats;Lcom/android/internal/os/PowerProfile;)Z
+HSPLcom/android/internal/os/BatteryStatsHelper;->checkHasWifiPowerReporting(Landroid/os/BatteryStats;Lcom/android/internal/os/PowerProfile;)Z
+HSPLcom/android/internal/os/BatteryStatsHelper;->checkWifiOnly(Landroid/content/Context;)Z
+HSPLcom/android/internal/os/BatteryStatsHelper;->convertMsToUs(J)J
+HSPLcom/android/internal/os/BatteryStatsHelper;->convertUsToMs(J)J
+HPLcom/android/internal/os/BatteryStatsHelper;->create(Landroid/os/BatteryStats;)V
+HPLcom/android/internal/os/BatteryStatsHelper;->getComputedPower()D
+HSPLcom/android/internal/os/BatteryStatsHelper;->getForegroundActivityTotalTimeUs(Landroid/os/BatteryStats$Uid;J)J
+HPLcom/android/internal/os/BatteryStatsHelper;->getMaxDrainedPower()D
+HPLcom/android/internal/os/BatteryStatsHelper;->getMinDrainedPower()D
+HPLcom/android/internal/os/BatteryStatsHelper;->getPowerProfile()Lcom/android/internal/os/PowerProfile;
+HSPLcom/android/internal/os/BatteryStatsHelper;->getProcessForegroundTimeMs(Landroid/os/BatteryStats$Uid;I)J
+HSPLcom/android/internal/os/BatteryStatsHelper;->getStats()Landroid/os/BatteryStats;
+HSPLcom/android/internal/os/BatteryStatsHelper;->getTotalPower()D
+HPLcom/android/internal/os/BatteryStatsHelper;->getUsageList()Ljava/util/List;
+HSPLcom/android/internal/os/BatteryStatsHelper;->isTypeService(Lcom/android/internal/os/BatterySipper;)Z
+HSPLcom/android/internal/os/BatteryStatsHelper;->isTypeSystem(Lcom/android/internal/os/BatterySipper;)Z
+HPLcom/android/internal/os/BatteryStatsHelper;->makemAh(D)Ljava/lang/String;
+HSPLcom/android/internal/os/BatteryStatsHelper;->processAppUsage(Landroid/util/SparseArray;)V
+HSPLcom/android/internal/os/BatteryStatsHelper;->processMiscUsage()V
+HSPLcom/android/internal/os/BatteryStatsHelper;->refreshStats(II)V
+HSPLcom/android/internal/os/BatteryStatsHelper;->refreshStats(ILandroid/util/SparseArray;)V
+HSPLcom/android/internal/os/BatteryStatsHelper;->refreshStats(ILandroid/util/SparseArray;JJ)V
+HSPLcom/android/internal/os/BatteryStatsHelper;->removeHiddenBatterySippers(Ljava/util/List;)D
+HSPLcom/android/internal/os/BatteryStatsHelper;->shouldHideSipper(Lcom/android/internal/os/BatterySipper;)Z
+HSPLcom/android/internal/os/BatteryStatsHelper;->smearScreenBatterySipper(Ljava/util/List;Lcom/android/internal/os/BatterySipper;)V
+HSPLcom/android/internal/os/BatteryStatsHistory$1;-><init>(Lcom/android/internal/os/BatteryStatsHistory;Ljava/util/Set;)V
+HSPLcom/android/internal/os/BatteryStatsHistory$1;->accept(Ljava/io/File;Ljava/lang/String;)Z
+HSPLcom/android/internal/os/BatteryStatsHistory;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsHistory;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Ljava/io/File;Landroid/os/Parcel;)V
+HPLcom/android/internal/os/BatteryStatsHistory;->finishIteratingHistory()V
+HSPLcom/android/internal/os/BatteryStatsHistory;->getActiveFile()Landroid/util/AtomicFile;
+HSPLcom/android/internal/os/BatteryStatsHistory;->getFile(I)Landroid/util/AtomicFile;
+HSPLcom/android/internal/os/BatteryStatsHistory;->getNextParcel(Landroid/os/BatteryStats$HistoryItem;)Landroid/os/Parcel;
+HPLcom/android/internal/os/BatteryStatsHistory;->readFileToParcel(Landroid/os/Parcel;Landroid/util/AtomicFile;)Z
+HSPLcom/android/internal/os/BatteryStatsHistory;->readFromParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsHistory;->setActiveFile(I)V
+HPLcom/android/internal/os/BatteryStatsHistory;->skipHead(Landroid/os/Parcel;)Z
+HSPLcom/android/internal/os/BatteryStatsHistory;->startIteratingHistory()Z
+HSPLcom/android/internal/os/BatteryStatsHistory;->startNextFile()V
+HSPLcom/android/internal/os/BatteryStatsImpl$1;-><init>(Lcom/android/internal/os/BatteryStatsImpl;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$2;-><init>(Lcom/android/internal/os/BatteryStatsImpl;)V
+PLcom/android/internal/os/BatteryStatsImpl$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$5;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Landroid/os/Parcel;Landroid/util/AtomicFile;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$5;->run()V
+HSPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->abortLastDuration(Lcom/android/internal/os/BatteryStatsImpl;)V
+HPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->addDuration(Lcom/android/internal/os/BatteryStatsImpl;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->computeCurrentCountLocked()I
+HSPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->computeOverage(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->computeRunTimeLocked(J)J
+HPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->recomputeLastDuration(JZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;-><init>(Lcom/android/internal/os/BatteryStatsImpl;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Lcom/android/internal/os/BatteryStatsImpl$1;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Landroid/os/Handler;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->startObserving(Landroid/content/ContentResolver;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->updateBatteryChargedDelayMsLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->updateConstants()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->updateKernelUidReadersThrottleTime(JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->updateProcStateCpuTimesReadDelayMs(JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->updateTrackCpuTimesByProcStateLocked(ZZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->updateUidRemoveDelay(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getIdleTimeCounter()Landroid/os/BatteryStats$LongCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getIdleTimeCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getMonitoredRailChargeConsumedMaMs()Landroid/os/BatteryStats$LongCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getMonitoredRailChargeConsumedMaMs()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getPowerCounter()Landroid/os/BatteryStats$LongCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getPowerCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getRxTimeCounter()Landroid/os/BatteryStats$LongCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getRxTimeCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getScanTimeCounter()Landroid/os/BatteryStats$LongCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getScanTimeCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+PLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getSleepTimeCounter()Landroid/os/BatteryStats$LongCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getSleepTimeCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getTxTimeCounters()[Landroid/os/BatteryStats$LongCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getTxTimeCounters()[Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->readSummaryFromParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->writeSummaryToParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Counter;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HPLcom/android/internal/os/BatteryStatsImpl$Counter;->addAtomic(I)V
+HPLcom/android/internal/os/BatteryStatsImpl$Counter;->getCountLocked(I)I
+HSPLcom/android/internal/os/BatteryStatsImpl$Counter;->onTimeStarted(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Counter;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Counter;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Counter;->stepAtomic()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Counter;->writeSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DualTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->getSubTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->getSubTimer()Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->startRunningLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->stopRunningLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->getCurrentDurationMsLocked(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->getMaxDurationMsLocked(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->getTotalDurationMsLocked(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->onTimeStarted(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->startRunningLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->stopRunningLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->addCountLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->addCountLocked(JZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->getCountLocked(I)J
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->onTimeStarted(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->reset(Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->writeSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->access$2300(Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->access$2600(Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->addCountLocked([JZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->detach()V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->getCountsLocked(I)[J
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->getSize()I
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->onTimeStarted(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->readSummaryFromParcelLocked(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->writeSummaryToParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->writeSummaryToParcelLocked(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$MyHandler;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Landroid/os/Looper;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$MyHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;-><init>(Lcom/android/internal/os/BatteryStatsImpl;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->add(Ljava/lang/String;Ljava/lang/Object;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->getMap()Landroid/util/ArrayMap;
+HSPLcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->startObject(Ljava/lang/String;)Ljava/lang/Object;
+HSPLcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->stopObject(Ljava/lang/String;)Ljava/lang/Object;
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->add(JI)V
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->computeCurrentCountLocked()I
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->computeRunTimeLocked(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->endSample()V
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->getUpdateVersion()I
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->onTimeStarted(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->setUpdateVersion(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->update(JI)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->computeCurrentCountLocked()I
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->computeRunTimeLocked(J)J
+HPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->isRunningLocked()Z
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->refreshTimersLocked(JLjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;)J
+HPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->setMark(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->setTimeout(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->startRunningLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->stopRunningLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$SystemClocks;-><init>()V
+HSPLcom/android/internal/os/BatteryStatsImpl$SystemClocks;->elapsedRealtime()J
+HSPLcom/android/internal/os/BatteryStatsImpl$SystemClocks;->uptimeMillis()J
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;-><init>(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->add(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->computeRealtime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->computeUptime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->getRealtime(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->getUptime(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->init(JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->isRunning()Z
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->readSummaryFromParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->remove(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->setRunning(ZJJ)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->writeSummaryToParcel(Landroid/os/Parcel;JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;ILcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HPLcom/android/internal/os/BatteryStatsImpl$Timer;->getCountLocked(I)I
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;->getTimeSinceMarkLocked(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;->getTotalTimeLocked(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;->onTimeStarted(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$1;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Uid;Lcom/android/internal/os/BatteryStatsImpl;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$1;->instantiateObject()Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$1;->instantiateObject()Ljava/lang/Object;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$2;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Uid;Lcom/android/internal/os/BatteryStatsImpl;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$2;->instantiateObject()Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$2;->instantiateObject()Ljava/lang/Object;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$3;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Uid;Lcom/android/internal/os/BatteryStatsImpl;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$3;->instantiateObject()Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$3;->instantiateObject()Ljava/lang/Object;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;-><init>(Lcom/android/internal/os/BatteryStatsImpl;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getBatteryStats()Lcom/android/internal/os/BatteryStatsImpl;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getLaunches(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getStartTime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getStartTimeToNowLocked(J)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getStarts(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->startLaunchedLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->startRunningLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->stopLaunchedLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->stopRunningLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;-><init>(Lcom/android/internal/os/BatteryStatsImpl;)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->getServiceStats()Landroid/util/ArrayMap;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->getWakeupAlarmStats()Landroid/util/ArrayMap;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->noteWakeupAlarmLocked(Ljava/lang/String;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->onTimeStarted(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Ljava/lang/String;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->addCpuTimeLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->addCpuTimeLocked(IIZ)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->addForegroundTimeLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getForegroundTime(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getNumAnrs(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getNumCrashes(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getStarts(I)I
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getSystemTime(I)J
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getUserTime(I)J
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->incStartsLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->isActive()Z
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->readExcessivePowerFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->writeExcessivePowerToParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Lcom/android/internal/os/BatteryStatsImpl$Uid;I)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getSensorBackgroundTime()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getSensorBackgroundTime()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getSensorTime()Landroid/os/BatteryStats$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getSensorTime()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Lcom/android/internal/os/BatteryStatsImpl$Uid;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->getWakeTime(I)Landroid/os/BatteryStats$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->getWakeTime(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;-><init>(Lcom/android/internal/os/BatteryStatsImpl;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->access$2400(Lcom/android/internal/os/BatteryStatsImpl$Uid;)Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->access$2402(Lcom/android/internal/os/BatteryStatsImpl$Uid;Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;)Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->access$2500(Lcom/android/internal/os/BatteryStatsImpl$Uid;)Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->access$2502(Lcom/android/internal/os/BatteryStatsImpl$Uid;Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;)Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->addIsolatedUid(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createAggregatedPartialWakelockTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createAudioTurnedOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createBluetoothScanResultBgCounterLocked()Lcom/android/internal/os/BatteryStatsImpl$Counter;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createBluetoothScanResultCounterLocked()Lcom/android/internal/os/BatteryStatsImpl$Counter;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createBluetoothScanTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createCameraTurnedOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createForegroundActivityTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createForegroundServiceTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createVibratorOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createVideoTurnedOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getAggregatedPartialWakelockTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getAggregatedPartialWakelockTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getAudioTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getAudioTurnedOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanBackgroundTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanBackgroundTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanResultBgCounter()Landroid/os/BatteryStats$Counter;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanResultBgCounter()Lcom/android/internal/os/BatteryStatsImpl$Counter;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanResultCounter()Landroid/os/BatteryStats$Counter;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanResultCounter()Lcom/android/internal/os/BatteryStatsImpl$Counter;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothUnoptimizedScanBackgroundTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothUnoptimizedScanBackgroundTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothUnoptimizedScanTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothUnoptimizedScanTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getCameraTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getCameraTurnedOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getCpuActiveTime()J
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getCpuClusterTimes()[J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getCpuFreqTimes(I)[J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getCpuFreqTimes(II)[J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getDeferredJobsCheckinLineLocked(Ljava/lang/StringBuilder;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getFlashlightTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getFlashlightTurnedOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getForegroundActivityTimer()Landroid/os/BatteryStats$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getForegroundActivityTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getForegroundServiceTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getForegroundServiceTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getFullWifiLockTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getJobCompletionStats()Landroid/util/ArrayMap;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getJobStats()Landroid/util/ArrayMap;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getMobileRadioActiveCount(I)I
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getMobileRadioActiveTime(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getMobileRadioApWakeupCount(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getModemControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getMulticastWakelockStats()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getMulticastWakelockStats()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getNetworkActivityBytes(II)J
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getNetworkActivityPackets(II)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getOrCreateWifiControllerActivityLocked()Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getPackageStats()Landroid/util/ArrayMap;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getPackageStatsLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getPidStats()Landroid/util/SparseArray;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getPidStatsLocked(I)Landroid/os/BatteryStats$Uid$Pid;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStateTime(IJI)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStateTimer(I)Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStateTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStats()Landroid/util/ArrayMap;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStatsLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getScreenOffCpuFreqTimes(I)[J
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getSensorStats()Landroid/util/SparseArray;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getSensorTimerLocked(IZ)Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getServiceStatsLocked(Ljava/lang/String;Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getSyncStats()Landroid/util/ArrayMap;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getSystemCpuTimeUs(I)J
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getTimeAtCpuSpeed(III)J
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getUid()I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getUserActivityCount(II)I
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getUserCpuTimeUs(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getVibratorOnTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getVibratorOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getVideoTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getVideoTurnedOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWakelockStats()Landroid/util/ArrayMap;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWakelockTimerLocked(Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;I)Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiMulticastTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiRadioApWakeupCount(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiRunningTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanActualTime(J)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanBackgroundCount(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanBackgroundTime(J)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanCount(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->hasUserActivity()Z
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->initNetworkActivityLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->initUserActivityLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->isInBackground()Z
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->makeProcessState(ILandroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteActivityPausedLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteActivityResumedLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteAudioTurnedOffLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteAudioTurnedOnLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteBluetoothScanResultsLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteBluetoothScanStartedLocked(JZ)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteBluetoothScanStoppedLocked(JZ)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteForegroundServicePausedLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteForegroundServiceResumedLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteFullWifiLockAcquiredLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteFullWifiLockReleasedLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteJobsDeferredLocked(IJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteNetworkActivityLocked(IJJ)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartGps(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartJobLocked(Ljava/lang/String;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartSensor(IJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartSyncLocked(Ljava/lang/String;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartWakeLocked(ILjava/lang/String;IJ)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopGps(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopJobLocked(Ljava/lang/String;JI)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopSensor(IJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopSyncLocked(Ljava/lang/String;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopWakeLocked(ILjava/lang/String;IJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteUserActivityLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteVibratorOffLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteVibratorOnLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiMulticastDisabledLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiMulticastEnabledLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiRadioApWakeupLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiScanStartedLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiScanStoppedLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->nullIfAllZeros(Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;I)[J
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->readJobCompletionsFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->readJobSummaryFromParcelLocked(Ljava/lang/String;Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->readSyncSummaryFromParcelLocked(Ljava/lang/String;Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->readWakeSummaryFromParcelLocked(Ljava/lang/String;Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->removeIsolatedUid(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->updateOnBatteryBgTimeBase(JJ)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->updateOnBatteryScreenOffBgTimeBase(JJ)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->updateUidProcessStateLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->writeJobCompletionsToParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$UidToRemove;-><init>(Lcom/android/internal/os/BatteryStatsImpl;IIJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$UidToRemove;-><init>(Lcom/android/internal/os/BatteryStatsImpl;IJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$UidToRemove;->remove()V
+HSPLcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;-><init>()V
+HSPLcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;->exists(I)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;->refreshUserIds()V
+HSPLcom/android/internal/os/BatteryStatsImpl;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Ljava/io/File;Landroid/os/Handler;Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;Lcom/android/internal/os/BatteryStatsImpl$RailEnergyDataCallback;Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;-><init>(Ljava/io/File;Landroid/os/Handler;Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;Lcom/android/internal/os/BatteryStatsImpl$RailEnergyDataCallback;Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;)V
+PLcom/android/internal/os/BatteryStatsImpl;->access$008(Lcom/android/internal/os/BatteryStatsImpl;)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$100(Lcom/android/internal/os/BatteryStatsImpl;)Lcom/android/internal/os/BatteryStatsImpl$BatteryCallback;
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$2200(Lcom/android/internal/os/BatteryStatsImpl;Landroid/os/Parcel;Landroid/util/AtomicFile;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$400()I
+PLcom/android/internal/os/BatteryStatsImpl;->access$500(Lcom/android/internal/os/BatteryStatsImpl;Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$600(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$700([Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->addHistoryBufferLocked(JBLandroid/os/BatteryStats$HistoryItem;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->addHistoryBufferLocked(JLandroid/os/BatteryStats$HistoryItem;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->addHistoryEventLocked(JJILjava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->addHistoryRecordInnerLocked(JLandroid/os/BatteryStats$HistoryItem;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->addHistoryRecordLocked(JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->addIsolatedUidLocked(II)V
+HPLcom/android/internal/os/BatteryStatsImpl;->addModemTxPowerToHistory(Landroid/telephony/ModemActivityInfo;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->aggregateLastWakeupUptimeLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->buildBatteryLevelInt(Landroid/os/BatteryStats$HistoryItem;)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->buildStateInt(Landroid/os/BatteryStats$HistoryItem;)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->clearHistoryLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->clearPendingRemovedUids()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->commitPendingDataToDisk(Landroid/os/Parcel;Landroid/util/AtomicFile;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->computeBatteryRealtime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->computeBatteryScreenOffRealtime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->computeBatteryScreenOffUptime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->computeBatteryTimeRemaining(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->computeBatteryUptime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->computeChargeTimeRemaining(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->computeHistoryStepDetails(Landroid/os/BatteryStats$HistoryStepDetails;Landroid/os/BatteryStats$HistoryStepDetails;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->computeRealtime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->computeUptime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->copyFromAllUidsCpuTimes()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->copyFromAllUidsCpuTimes(ZZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->detachIfNotNull(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->detachIfNotNull([Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->detachIfNotNull([[Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->excludeFromStringArray([Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+HSPLcom/android/internal/os/BatteryStatsImpl;->finishAddingCpuLocked(IIIIIIII)V
+PLcom/android/internal/os/BatteryStatsImpl;->finishIteratingHistoryLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl;->getAttributionUid(ILandroid/os/WorkSource$WorkChain;)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->getBatteryRealtime(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getBatteryUptime(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getBatteryUptimeLocked()J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getBluetoothControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+HPLcom/android/internal/os/BatteryStatsImpl;->getCellularBatteryStats()Landroid/os/connectivity/CellularBatteryStats;
+HPLcom/android/internal/os/BatteryStatsImpl;->getChargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+HPLcom/android/internal/os/BatteryStatsImpl;->getCpuFreqs()[J
+HPLcom/android/internal/os/BatteryStatsImpl;->getDeltaModemActivityInfo(Landroid/telephony/ModemActivityInfo;)Landroid/telephony/ModemActivityInfo;
+HPLcom/android/internal/os/BatteryStatsImpl;->getDeviceIdleModeCount(II)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getDeviceIdleModeTime(IJI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getDeviceIdlingCount(II)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getDeviceIdlingTime(IJI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getDischargeAmountScreenDozeSinceCharge()I
+HSPLcom/android/internal/os/BatteryStatsImpl;->getDischargeAmountScreenOffSinceCharge()I
+HSPLcom/android/internal/os/BatteryStatsImpl;->getDischargeAmountScreenOnSinceCharge()I
+HPLcom/android/internal/os/BatteryStatsImpl;->getDischargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+HPLcom/android/internal/os/BatteryStatsImpl;->getEndPlatformVersion()Ljava/lang/String;
+HPLcom/android/internal/os/BatteryStatsImpl;->getEstimatedBatteryCapacity()I
+HPLcom/android/internal/os/BatteryStatsImpl;->getExternalStatsCollectionRateLimitMs()J
+HPLcom/android/internal/os/BatteryStatsImpl;->getGlobalWifiRunningTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getGpsBatteryDrainMaMs()J
+HPLcom/android/internal/os/BatteryStatsImpl;->getGpsBatteryStats()Landroid/os/connectivity/GpsBatteryStats;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getGpsSignalQualityTime(IJI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getHighDischargeAmountSinceCharge()I
+HPLcom/android/internal/os/BatteryStatsImpl;->getHistoryBaseTime()J
+HPLcom/android/internal/os/BatteryStatsImpl;->getHistoryStringPoolSize()I
+HPLcom/android/internal/os/BatteryStatsImpl;->getHistoryTagPoolString(I)Ljava/lang/String;
+HPLcom/android/internal/os/BatteryStatsImpl;->getHistoryTagPoolUid(I)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getInteractiveTime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getIsOnBattery()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->getKernelMemoryStats()Landroid/util/LongSparseArray;
+HPLcom/android/internal/os/BatteryStatsImpl;->getKernelWakelockStats()Ljava/util/Map;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getKernelWakelockTimerLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;
+HPLcom/android/internal/os/BatteryStatsImpl;->getLongestDeviceIdleModeTime(I)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getLowDischargeAmountSinceCharge()I
+HPLcom/android/internal/os/BatteryStatsImpl;->getMaxLearnedBatteryCapacity()I
+HPLcom/android/internal/os/BatteryStatsImpl;->getMinLearnedBatteryCapacity()I
+HPLcom/android/internal/os/BatteryStatsImpl;->getMobileIfaces()[Ljava/lang/String;
+HPLcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveAdjustedTime(I)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveCount(I)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveTime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveUnknownCount(I)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveUnknownTime(I)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getModemControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+HPLcom/android/internal/os/BatteryStatsImpl;->getNetworkActivityBytes(II)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getNetworkActivityPackets(II)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getNextHistoryLocked(Landroid/os/BatteryStats$HistoryItem;)Z
+HPLcom/android/internal/os/BatteryStatsImpl;->getNumConnectivityChange(I)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getPackageStatsLocked(ILjava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;
+HPLcom/android/internal/os/BatteryStatsImpl;->getParcelVersion()I
+HPLcom/android/internal/os/BatteryStatsImpl;->getPhoneDataConnectionCount(II)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getPhoneDataConnectionTime(IJI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getPhoneOnTime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalScanningTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalStrengthCount(II)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalStrengthTime(IJI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getPowerManagerWakeLockLevel(I)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getPowerSaveModeEnabledTime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getProcessStatsLocked(ILjava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;
+HPLcom/android/internal/os/BatteryStatsImpl;->getRpmStats()Ljava/util/Map;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getRpmTimerLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getScreenBrightnessTime(IJI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getScreenDozeTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getScreenOffRpmStats()Ljava/util/Map;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getScreenOnTime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getServiceStatsLocked(ILjava/lang/String;Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getStartClockTime()J
+HPLcom/android/internal/os/BatteryStatsImpl;->getStartCount()I
+HPLcom/android/internal/os/BatteryStatsImpl;->getStartPlatformVersion()Ljava/lang/String;
+HPLcom/android/internal/os/BatteryStatsImpl;->getUahDischarge(I)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getUahDischargeDeepDoze(I)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getUahDischargeLightDoze(I)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getUahDischargeScreenDoze(I)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getUahDischargeScreenOff(I)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getUidStats()Landroid/util/SparseArray;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getUidStatsLocked(I)Lcom/android/internal/os/BatteryStatsImpl$Uid;
+HPLcom/android/internal/os/BatteryStatsImpl;->getWakeupReasonStats()Ljava/util/Map;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getWakeupReasonTimerLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiActiveTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiBatteryStats()Landroid/os/connectivity/WifiBatteryStats;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getWifiControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiMulticastWakelockCount(I)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiMulticastWakelockTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiOnTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiSignalStrengthCount(II)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiSignalStrengthTime(IJI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiStateCount(II)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiStateTime(IJI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiSupplStateCount(II)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiSupplStateTime(IJI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->hasBluetoothActivityReporting()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->hasWifiActivityReporting()Z
+HPLcom/android/internal/os/BatteryStatsImpl;->includeInStringArray([Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+HSPLcom/android/internal/os/BatteryStatsImpl;->init(Lcom/android/internal/os/BatteryStatsImpl$Clocks;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->initDischarge()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->initTimes(JJ)V
+HPLcom/android/internal/os/BatteryStatsImpl;->isCharging()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isOnBattery()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isOnBattery(II)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isOnBatteryLocked()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isOnBatteryScreenOffLocked()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isScreenDoze(I)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isScreenOff(I)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isScreenOn(I)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->lambda$readKernelUidCpuActiveTimesLocked$2$BatteryStatsImpl(ZILjava/lang/Long;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->lambda$readKernelUidCpuClusterTimesLocked$3$BatteryStatsImpl(ZI[J)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->lambda$readKernelUidCpuFreqTimesLocked$1$BatteryStatsImpl(ZZZIII[J)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->lambda$readKernelUidCpuTimesLocked$0$BatteryStatsImpl(IZLandroid/util/SparseLongArray;I[J)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->mapUid(I)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->markPartialTimersAsEligible()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteActivityPausedLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteActivityResumedLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteAlarmFinishLocked(Ljava/lang/String;Landroid/os/WorkSource;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteAlarmStartLocked(Ljava/lang/String;Landroid/os/WorkSource;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteAlarmStartOrFinishLocked(ILjava/lang/String;Landroid/os/WorkSource;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteAudioOffLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteAudioOnLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanResultsFromSourceLocked(Landroid/os/WorkSource;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanStartedFromSourceLocked(Landroid/os/WorkSource;Z)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanStartedLocked(Landroid/os/WorkSource$WorkChain;IZ)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanStoppedFromSourceLocked(Landroid/os/WorkSource;Z)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanStoppedLocked(Landroid/os/WorkSource$WorkChain;IZ)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteChangeWakelockFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteConnectivityChangedLocked(ILjava/lang/String;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteCurrentTimeChangedLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteDeviceIdleModeLocked(ILjava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteEventLocked(ILjava/lang/String;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteFullWifiLockAcquiredFromSourceLocked(Landroid/os/WorkSource;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteFullWifiLockAcquiredLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteFullWifiLockReleasedFromSourceLocked(Landroid/os/WorkSource;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteFullWifiLockReleasedLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteGpsChangedLocked(Landroid/os/WorkSource;Landroid/os/WorkSource;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteGpsSignalQualityLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteInteractiveLocked(Z)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteJobFinishLocked(Ljava/lang/String;II)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteJobStartLocked(Ljava/lang/String;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteJobsDeferredLocked(IIJ)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakeLockFinishInternal(Ljava/lang/String;Ljava/lang/String;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakeLockStartInternal(Ljava/lang/String;Ljava/lang/String;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakelockFinish(Ljava/lang/String;Ljava/lang/String;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakelockFinishFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakelockStart(Ljava/lang/String;Ljava/lang/String;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakelockStartFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteNetworkInterfaceTypeLocked(Ljava/lang/String;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->notePackageInstalledLocked(Ljava/lang/String;J)V
+HPLcom/android/internal/os/BatteryStatsImpl;->notePhoneDataConnectionStateLocked(IZI)V
+PLcom/android/internal/os/BatteryStatsImpl;->notePhoneOffLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl;->notePhoneSignalStrengthLocked(Landroid/telephony/SignalStrength;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->notePhoneStateLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->notePowerSaveModeLocked(Z)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteProcessAnrLocked(Ljava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteProcessDiedLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteProcessFinishLocked(Ljava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteProcessStartLocked(Ljava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteResetBluetoothScanLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteScreenBrightnessLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteScreenStateLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteStartGpsLocked(ILandroid/os/WorkSource$WorkChain;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteStartSensorLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteStartWakeFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteStartWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IZJJ)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteStopGpsLocked(ILandroid/os/WorkSource$WorkChain;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteStopSensorLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteStopWakeFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteStopWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IJJ)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteSyncFinishLocked(Ljava/lang/String;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteSyncStartLocked(Ljava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteUidProcessStateLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteUsbConnectionStateLocked(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteUserActivityLocked(II)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteVibratorOffLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteVibratorOnLocked(IJ)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWakeUpLocked(Ljava/lang/String;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWakeupReasonLocked(Ljava/lang/String;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWakupAlarmLocked(Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWifiMulticastDisabledLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWifiMulticastEnabledLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteWifiOnLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWifiRadioApWakeupLocked(JJI)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWifiRadioPowerState(IJI)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWifiRssiChangedLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWifiScanStartedFromSourceLocked(Landroid/os/WorkSource;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWifiScanStartedLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWifiScanStoppedFromSourceLocked(Landroid/os/WorkSource;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWifiScanStoppedLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWifiStateLocked(ILjava/lang/String;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWifiSupplicantStateChangedLocked(IZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->postBatteryNeedsCpuUpdateMsg()V
+HPLcom/android/internal/os/BatteryStatsImpl;->prepareForDumpLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->pullPendingStateUpdatesLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readBatteryLevelInt(ILandroid/os/BatteryStats$HistoryItem;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readDailyItemTagDetailsLocked(Lorg/xmlpull/v1/XmlPullParser;Landroid/os/BatteryStats$DailyItem;ZLjava/lang/String;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readDailyItemTagLocked(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readDailyItemsLocked(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readDailyStatsLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readHistoryBuffer(Landroid/os/Parcel;Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readHistoryDelta(Landroid/os/Parcel;Landroid/os/BatteryStats$HistoryItem;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readHistoryTag(ILandroid/os/BatteryStats$HistoryTag;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readKernelUidCpuActiveTimesLocked(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readKernelUidCpuClusterTimesLocked(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readKernelUidCpuFreqTimesLocked(Ljava/util/ArrayList;ZZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readKernelUidCpuTimesLocked(Ljava/util/ArrayList;Landroid/util/SparseLongArray;Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readNetworkStatsLocked([Ljava/lang/String;)Landroid/net/NetworkStats;
+HSPLcom/android/internal/os/BatteryStatsImpl;->readOldHistory(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readSummaryFromParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->recordCurrentTimeChangeLocked(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->recordDailyStatsIfNeededLocked(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->registerUsbStateReceiver(Landroid/content/Context;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->removeIsolatedUidLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->reportChangesToStatsLog(Landroid/os/BatteryStats$HistoryItem;III)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->requestImmediateCpuUpdate()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->scheduleRemoveIsolatedUidLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->scheduleSyncExternalStatsLocked(Ljava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->setBatteryStateLocked(IIIIIIII)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->setCallback(Lcom/android/internal/os/BatteryStatsImpl$BatteryCallback;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->setChargingLocked(Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->setExternalStatsSyncLocked(Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->setOnBatteryLocked(JJZIII)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->setPowerProfileLocked(Lcom/android/internal/os/PowerProfile;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->setRadioScanningTimeoutLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->startAddingCpuLocked()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->startIteratingHistoryLocked()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->startRecordingHistory(JJZ)V
+HPLcom/android/internal/os/BatteryStatsImpl;->stopAllGpsSignalQualityTimersLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->systemServicesReady(Landroid/content/Context;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->trackPerProcStateCpuTimes()Z
+HPLcom/android/internal/os/BatteryStatsImpl;->updateAllPhoneStateLocked(III)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateBatteryPropertiesLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl;->updateBluetoothStateLocked(Landroid/bluetooth/BluetoothActivityEnergyInfo;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateCpuTimeLocked(ZZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateDailyDeadlineLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateDischargeScreenLevelsLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateKernelMemoryBandwidthLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateKernelWakelocksLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl;->updateMobileRadioState(Landroid/telephony/ModemActivityInfo;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateNewDischargeScreenLevelLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateOldDischargeScreenLevelLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateRailStatsLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateRpmStatsLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateTimeBasesLocked(ZIJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateWifiState(Landroid/os/connectivity/WifiActivityEnergyInfo;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeAsyncLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeHistoryBuffer(Landroid/os/Parcel;ZZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeHistoryDelta(Landroid/os/Parcel;Landroid/os/BatteryStats$HistoryItem;Landroid/os/BatteryStats$HistoryItem;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeHistoryLocked(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeHistoryTag(Landroid/os/BatteryStats$HistoryTag;)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeOldHistory(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeParcelToFileLocked(Landroid/os/Parcel;Landroid/util/AtomicFile;Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeStatsLocked(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeSummaryToParcel(Landroid/os/Parcel;Z)V
+HSPLcom/android/internal/os/BinderCallsStats$CallStat;-><init>(ILjava/lang/Class;IZ)V
+HSPLcom/android/internal/os/BinderCallsStats$CallStatKey;-><init>()V
+HSPLcom/android/internal/os/BinderCallsStats$CallStatKey;->access$002(Lcom/android/internal/os/BinderCallsStats$CallStatKey;Z)Z
+HSPLcom/android/internal/os/BinderCallsStats$CallStatKey;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/internal/os/BinderCallsStats$CallStatKey;->hashCode()I
+HSPLcom/android/internal/os/BinderCallsStats$Injector;-><init>()V
+HSPLcom/android/internal/os/BinderCallsStats$Injector;->getRandomGenerator()Ljava/util/Random;
+HSPLcom/android/internal/os/BinderCallsStats$UidEntry;-><init>(I)V
+HSPLcom/android/internal/os/BinderCallsStats$UidEntry;->get(ILjava/lang/Class;IZ)Lcom/android/internal/os/BinderCallsStats$CallStat;
+HPLcom/android/internal/os/BinderCallsStats$UidEntry;->getCallStatsList()Ljava/util/Collection;
+HSPLcom/android/internal/os/BinderCallsStats$UidEntry;->getOrCreate(ILjava/lang/Class;IZZ)Lcom/android/internal/os/BinderCallsStats$CallStat;
+HSPLcom/android/internal/os/BinderCallsStats;-><init>(Lcom/android/internal/os/BinderCallsStats$Injector;)V
+HSPLcom/android/internal/os/BinderCallsStats;->callEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V
+HSPLcom/android/internal/os/BinderCallsStats;->callStarted(Landroid/os/Binder;II)Lcom/android/internal/os/BinderInternal$CallSession;
+HPLcom/android/internal/os/BinderCallsStats;->callThrewException(Lcom/android/internal/os/BinderInternal$CallSession;Ljava/lang/Exception;)V
+HPLcom/android/internal/os/BinderCallsStats;->createDebugEntry(Ljava/lang/String;J)Lcom/android/internal/os/BinderCallsStats$ExportedCallStat;
+HSPLcom/android/internal/os/BinderCallsStats;->getCallingUid()I
+HPLcom/android/internal/os/BinderCallsStats;->getDefaultTransactionNameMethod(Ljava/lang/Class;)Ljava/lang/reflect/Method;
+HSPLcom/android/internal/os/BinderCallsStats;->getElapsedRealtimeMicro()J
+HPLcom/android/internal/os/BinderCallsStats;->getExportedCallStats()Ljava/util/ArrayList;
+HSPLcom/android/internal/os/BinderCallsStats;->getThreadTimeMicro()J
+HSPLcom/android/internal/os/BinderCallsStats;->getUidEntry(I)Lcom/android/internal/os/BinderCallsStats$UidEntry;
+HSPLcom/android/internal/os/BinderCallsStats;->processCallEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V
+HSPLcom/android/internal/os/BinderCallsStats;->reset()V
+HPLcom/android/internal/os/BinderCallsStats;->resolveTransactionCode(Ljava/lang/reflect/Method;I)Ljava/lang/String;
+HSPLcom/android/internal/os/BinderCallsStats;->setAddDebugEntries(Z)V
+HSPLcom/android/internal/os/BinderCallsStats;->setDetailedTracking(Z)V
+HSPLcom/android/internal/os/BinderCallsStats;->setDeviceState(Lcom/android/internal/os/CachedDeviceState$Readonly;)V
+HSPLcom/android/internal/os/BinderCallsStats;->setMaxBinderCallStats(I)V
+HSPLcom/android/internal/os/BinderCallsStats;->setSamplingInterval(I)V
+HSPLcom/android/internal/os/BinderCallsStats;->setTrackDirectCallerUid(Z)V
+HSPLcom/android/internal/os/BinderCallsStats;->setTrackScreenInteractive(Z)V
+HSPLcom/android/internal/os/BinderCallsStats;->shouldRecordDetailedData()Z
+HPLcom/android/internal/os/BinderDeathDispatcher$RecipientsInfo;->binderDied()V
+HSPLcom/android/internal/os/BinderDeathDispatcher;-><init>()V
+PLcom/android/internal/os/BinderDeathDispatcher;->access$000(Lcom/android/internal/os/BinderDeathDispatcher;)Ljava/lang/Object;
+PLcom/android/internal/os/BinderDeathDispatcher;->access$100(Lcom/android/internal/os/BinderDeathDispatcher;)Landroid/util/ArrayMap;
+HSPLcom/android/internal/os/BinderDeathDispatcher;->linkToDeath(Landroid/os/IInterface;Landroid/os/IBinder$DeathRecipient;)I
+HSPLcom/android/internal/os/BinderDeathDispatcher;->unlinkToDeath(Landroid/os/IInterface;Landroid/os/IBinder$DeathRecipient;)V
+HSPLcom/android/internal/os/BinderInternal$BinderProxyLimitListenerDelegate;->setListener(Lcom/android/internal/os/BinderInternal$BinderProxyLimitListener;Landroid/os/Handler;)V
 HSPLcom/android/internal/os/BinderInternal$GcWatcher;-><init>()V
 HSPLcom/android/internal/os/BinderInternal$GcWatcher;->finalize()V
 HSPLcom/android/internal/os/BinderInternal;->addGcWatcher(Ljava/lang/Runnable;)V
 HSPLcom/android/internal/os/BinderInternal;->forceBinderGc()V
 HSPLcom/android/internal/os/BinderInternal;->forceGc(Ljava/lang/String;)V
+HSPLcom/android/internal/os/BinderInternal;->getLastGcTime()J
+HSPLcom/android/internal/os/BinderInternal;->setBinderProxyCountCallback(Lcom/android/internal/os/BinderInternal$BinderProxyLimitListener;Landroid/os/Handler;)V
+HSPLcom/android/internal/os/BluetoothPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HSPLcom/android/internal/os/BluetoothPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+HSPLcom/android/internal/os/BluetoothPowerCalculator;->calculateRemaining(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
+HSPLcom/android/internal/os/BluetoothPowerCalculator;->reset()V
+HSPLcom/android/internal/os/CachedDeviceState$Readonly;-><init>(Lcom/android/internal/os/CachedDeviceState;)V
+HSPLcom/android/internal/os/CachedDeviceState$Readonly;->createTimeOnBatteryStopwatch()Lcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;
+HSPLcom/android/internal/os/CachedDeviceState$Readonly;->isCharging()Z
+HSPLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;-><init>(Lcom/android/internal/os/CachedDeviceState;)V
+HSPLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->access$000(Lcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;)V
+PLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->elapsedTime()J
+PLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->getMillis()J
+HSPLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->isRunning()Z
+HSPLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->reset()V
+HSPLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->start()V
+PLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->stop()V
+HSPLcom/android/internal/os/CachedDeviceState;-><init>()V
+HSPLcom/android/internal/os/CachedDeviceState;->access$200(Lcom/android/internal/os/CachedDeviceState;)Z
+HSPLcom/android/internal/os/CachedDeviceState;->access$400(Lcom/android/internal/os/CachedDeviceState;)Ljava/lang/Object;
+HSPLcom/android/internal/os/CachedDeviceState;->access$500(Lcom/android/internal/os/CachedDeviceState;)Ljava/util/ArrayList;
+HSPLcom/android/internal/os/CachedDeviceState;->getReadonlyClient()Lcom/android/internal/os/CachedDeviceState$Readonly;
+HSPLcom/android/internal/os/CachedDeviceState;->setCharging(Z)V
+HSPLcom/android/internal/os/CachedDeviceState;->setScreenInteractive(Z)V
+HSPLcom/android/internal/os/CachedDeviceState;->updateStopwatches(Z)V
+HSPLcom/android/internal/os/CameraPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HSPLcom/android/internal/os/CameraPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
 HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
+HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;IZLjava/lang/String;)Ljava/lang/ClassLoader;
 HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;IZLjava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
+HSPLcom/android/internal/os/ClassLoaderFactory;->getPathClassLoaderName()Ljava/lang/String;
+HSPLcom/android/internal/os/ClassLoaderFactory;->isDelegateLastClassLoaderName(Ljava/lang/String;)Z
 HSPLcom/android/internal/os/ClassLoaderFactory;->isPathClassLoaderName(Ljava/lang/String;)Z
+HSPLcom/android/internal/os/ClassLoaderFactory;->isValidClassLoaderName(Ljava/lang/String;)Z
+HSPLcom/android/internal/os/CpuPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HSPLcom/android/internal/os/CpuPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+HSPLcom/android/internal/os/FlashlightPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HSPLcom/android/internal/os/FlashlightPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
 HSPLcom/android/internal/os/HandlerCaller$MyHandler;-><init>(Lcom/android/internal/os/HandlerCaller;Landroid/os/Looper;Z)V
+HSPLcom/android/internal/os/HandlerCaller$MyHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/internal/os/HandlerCaller;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/internal/os/HandlerCaller$Callback;Z)V
+HSPLcom/android/internal/os/HandlerCaller;->getHandler()Landroid/os/Handler;
+HSPLcom/android/internal/os/HandlerCaller;->obtainMessage(I)Landroid/os/Message;
+HSPLcom/android/internal/os/HandlerCaller;->obtainMessageI(II)Landroid/os/Message;
+HPLcom/android/internal/os/HandlerCaller;->obtainMessageIIO(IIILjava/lang/Object;)Landroid/os/Message;
+HPLcom/android/internal/os/HandlerCaller;->obtainMessageIIOOOO(IIILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/os/HandlerCaller;->obtainMessageIO(IILjava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/os/HandlerCaller;->obtainMessageIOO(IILjava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/os/HandlerCaller;->obtainMessageO(ILjava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/os/HandlerCaller;->obtainMessageOO(ILjava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/os/HandlerCaller;->obtainMessageOOO(ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/os/HandlerCaller;->sendMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;->add(Landroid/os/DropBoxManager$Entry;)V
+HSPLcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;->getNextEntry(Ljava/lang/String;JLjava/lang/String;)Landroid/os/DropBoxManager$Entry;
+HSPLcom/android/internal/os/IDropBoxManagerService$Stub;-><init>()V
+HSPLcom/android/internal/os/IDropBoxManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IDropBoxManagerService;
+HPLcom/android/internal/os/IDropBoxManagerService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLcom/android/internal/os/IResultReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/os/IResultReceiver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLcom/android/internal/os/IResultReceiver$Stub$Proxy;->send(ILandroid/os/Bundle;)V
 HSPLcom/android/internal/os/IResultReceiver$Stub;-><init>()V
 HSPLcom/android/internal/os/IResultReceiver$Stub;->asBinder()Landroid/os/IBinder;
 HSPLcom/android/internal/os/IResultReceiver$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IResultReceiver;
 HSPLcom/android/internal/os/IResultReceiver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;-><init>(Lcom/android/internal/os/KernelCpuProcStringReader;I)V
+HSPLcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;->close()V
+HSPLcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;->hasNextLine()Z
+HSPLcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;->nextLine()Ljava/nio/CharBuffer;
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->access$100(Lcom/android/internal/os/KernelCpuProcStringReader;)Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->asLongs(Ljava/nio/CharBuffer;[J)I
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->dataValid()Z
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->getActiveTimeReaderInstance()Lcom/android/internal/os/KernelCpuProcStringReader;
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->getClusterTimeReaderInstance()Lcom/android/internal/os/KernelCpuProcStringReader;
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->getFreqTimeReaderInstance()Lcom/android/internal/os/KernelCpuProcStringReader;
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->getUserSysTimeReaderInstance()Lcom/android/internal/os/KernelCpuProcStringReader;
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->open(Z)Lcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;
+HSPLcom/android/internal/os/KernelCpuSpeedReader;-><init>(II)V
+HSPLcom/android/internal/os/KernelCpuSpeedReader;->readDelta()[J
+HSPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;-><init>([JI)V
+HSPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;->bucketFrequencies([J)[I
+HPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;->bucketValues([J)[I
+HSPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;->getBucketStartIndices([III)[I
+HSPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;->getClusterStartIndices([J)[I
+HSPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;->getLowerBound(I[I)I
+HSPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;->getUpperBound(I[II)I
+HSPLcom/android/internal/os/KernelCpuThreadReader$Injector;-><init>()V
+HPLcom/android/internal/os/KernelCpuThreadReader$Injector;->getUidForPid(I)I
+HPLcom/android/internal/os/KernelCpuThreadReader$ProcessCpuUsage;-><init>(ILjava/lang/String;ILjava/util/ArrayList;)V
+HPLcom/android/internal/os/KernelCpuThreadReader$ThreadCpuUsage;-><init>(ILjava/lang/String;[I)V
+HSPLcom/android/internal/os/KernelCpuThreadReader;-><init>(ILjava/util/function/Predicate;Ljava/nio/file/Path;Ljava/nio/file/Path;Lcom/android/internal/os/KernelCpuThreadReader$Injector;)V
+HSPLcom/android/internal/os/KernelCpuThreadReader;->create(ILjava/util/function/Predicate;)Lcom/android/internal/os/KernelCpuThreadReader;
+PLcom/android/internal/os/KernelCpuThreadReader;->getCpuFrequenciesKhz()[I
+HPLcom/android/internal/os/KernelCpuThreadReader;->getProcessCpuUsage()Ljava/util/ArrayList;
+HPLcom/android/internal/os/KernelCpuThreadReader;->getProcessCpuUsage(Ljava/nio/file/Path;II)Lcom/android/internal/os/KernelCpuThreadReader$ProcessCpuUsage;
+HPLcom/android/internal/os/KernelCpuThreadReader;->getProcessId(Ljava/nio/file/Path;)I
+HPLcom/android/internal/os/KernelCpuThreadReader;->getProcessName(Ljava/nio/file/Path;)Ljava/lang/String;
+HPLcom/android/internal/os/KernelCpuThreadReader;->getThreadCpuUsage(Ljava/nio/file/Path;)Lcom/android/internal/os/KernelCpuThreadReader$ThreadCpuUsage;
+HPLcom/android/internal/os/KernelCpuThreadReader;->getThreadName(Ljava/nio/file/Path;)Ljava/lang/String;
+HSPLcom/android/internal/os/KernelCpuThreadReader;->setNumBuckets(I)V
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff$ThreadKey;-><init>(IILjava/lang/String;Ljava/lang/String;)V
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff$ThreadKey;->equals(Ljava/lang/Object;)Z
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff$ThreadKey;->hashCode()I
+HSPLcom/android/internal/os/KernelCpuThreadReaderDiff;-><init>(Lcom/android/internal/os/KernelCpuThreadReader;I)V
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->addToCpuUsage([I[I)V
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->applyThresholding(Lcom/android/internal/os/KernelCpuThreadReader$ProcessCpuUsage;)V
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->changeToDiffs(Ljava/util/Map;Lcom/android/internal/os/KernelCpuThreadReader$ProcessCpuUsage;)V
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->cpuTimeDiff([I[I)[I
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->createCpuUsageMap(Ljava/util/List;)Ljava/util/Map;
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->getProcessCpuUsageDiffed()Ljava/util/ArrayList;
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->totalCpuUsage([I)I
+HSPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;-><init>(Ljava/util/List;)V
+HSPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;->fromString(Ljava/lang/String;)Lcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;
+HPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;->test(Ljava/lang/Integer;)Z
+HPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;->test(Ljava/lang/Object;)Z
+HSPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver;->getSettingsModifiedReader(Landroid/content/Context;)Lcom/android/internal/os/KernelCpuThreadReaderDiff;
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidActiveTimeReader;-><init>(Z)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidActiveTimeReader;->checkPrecondition(Lcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;)Z
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidActiveTimeReader;->readDeltaImpl(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidActiveTimeReader;->sumActiveTime([J)J
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidClusterTimeReader;-><init>(Z)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidClusterTimeReader;->checkPrecondition(Lcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;)Z
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidClusterTimeReader;->readDeltaImpl(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidClusterTimeReader;->sumClusterTime()V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;-><init>(Ljava/lang/String;Lcom/android/internal/os/KernelCpuProcStringReader;Z)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;-><init>(Z)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->checkPrecondition(Lcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;)Z
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->copyToCurTimes()V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->extractClusterInfoFromProcFileFreqs()Landroid/util/IntArray;
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->perClusterTimesAvailable()Z
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->readDeltaImpl(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->readFreqs(Lcom/android/internal/os/PowerProfile;)[J
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->readFreqs(Ljava/lang/String;)[J
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader;-><init>(Z)V
+HPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader;->readAbsoluteImpl(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader;->readDeltaImpl(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+HPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader;->removeUid(I)V
+HPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader;->removeUidsFromKernelModule(II)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader;-><init>(Lcom/android/internal/os/KernelCpuProcStringReader;Z)V
+HPLcom/android/internal/os/KernelCpuUidTimeReader;->readAbsolute(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader;->readDelta(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+HPLcom/android/internal/os/KernelCpuUidTimeReader;->removeUid(I)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader;->setThrottle(J)V
+HSPLcom/android/internal/os/KernelMemoryBandwidthStats;-><init>()V
+HSPLcom/android/internal/os/KernelMemoryBandwidthStats;->getBandwidthEntries()Landroid/util/LongSparseLongArray;
+HSPLcom/android/internal/os/KernelMemoryBandwidthStats;->updateStats()V
+HSPLcom/android/internal/os/KernelWakelockReader;-><init>()V
+HSPLcom/android/internal/os/KernelWakelockReader;->getWakelockStatsFromSystemSuspend(Lcom/android/internal/os/KernelWakelockStats;)Lcom/android/internal/os/KernelWakelockStats;
+HSPLcom/android/internal/os/KernelWakelockReader;->readKernelWakelockStats(Lcom/android/internal/os/KernelWakelockStats;)Lcom/android/internal/os/KernelWakelockStats;
+HSPLcom/android/internal/os/KernelWakelockReader;->removeOldStats(Lcom/android/internal/os/KernelWakelockStats;)Lcom/android/internal/os/KernelWakelockStats;
+HSPLcom/android/internal/os/KernelWakelockReader;->updateVersion(Lcom/android/internal/os/KernelWakelockStats;)Lcom/android/internal/os/KernelWakelockStats;
+HSPLcom/android/internal/os/KernelWakelockReader;->updateWakelockStats([Landroid/system/suspend/WakeLockInfo;Lcom/android/internal/os/KernelWakelockStats;)Lcom/android/internal/os/KernelWakelockStats;
+HSPLcom/android/internal/os/KernelWakelockStats;-><init>()V
 HSPLcom/android/internal/os/LoggingPrintStream$1;-><init>()V
 HSPLcom/android/internal/os/LoggingPrintStream;-><init>()V
+HSPLcom/android/internal/os/LoggingPrintStream;->flush(Z)V
+HSPLcom/android/internal/os/LoggingPrintStream;->println(Ljava/lang/Object;)V
+HSPLcom/android/internal/os/LoggingPrintStream;->println(Ljava/lang/String;)V
+HSPLcom/android/internal/os/LooperStats$Entry;-><init>(Ljava/lang/String;)V
+HSPLcom/android/internal/os/LooperStats$Entry;->idFor(Landroid/os/Message;Z)I
+HSPLcom/android/internal/os/LooperStats$Entry;->reset()V
+HPLcom/android/internal/os/LooperStats$ExportedEntry;-><init>(Lcom/android/internal/os/LooperStats$Entry;)V
+HSPLcom/android/internal/os/LooperStats;-><init>(II)V
+HPLcom/android/internal/os/LooperStats;->createDebugEntry(Ljava/lang/String;J)Lcom/android/internal/os/LooperStats$ExportedEntry;
+HSPLcom/android/internal/os/LooperStats;->findEntry(Landroid/os/Message;Z)Lcom/android/internal/os/LooperStats$Entry;
+HSPLcom/android/internal/os/LooperStats;->getElapsedRealtimeMicro()J
+HPLcom/android/internal/os/LooperStats;->getEntries()Ljava/util/List;
+HSPLcom/android/internal/os/LooperStats;->getSystemUptimeMillis()J
+HSPLcom/android/internal/os/LooperStats;->getThreadTimeMicro()J
+PLcom/android/internal/os/LooperStats;->maybeAddSpecialEntry(Ljava/util/List;Lcom/android/internal/os/LooperStats$Entry;)V
+HSPLcom/android/internal/os/LooperStats;->messageDispatchStarting()Ljava/lang/Object;
+HSPLcom/android/internal/os/LooperStats;->messageDispatched(Ljava/lang/Object;Landroid/os/Message;)V
+HSPLcom/android/internal/os/LooperStats;->reset()V
+HSPLcom/android/internal/os/LooperStats;->setAddDebugEntries(Z)V
+HSPLcom/android/internal/os/LooperStats;->setDeviceState(Lcom/android/internal/os/CachedDeviceState$Readonly;)V
+HSPLcom/android/internal/os/LooperStats;->setSamplingInterval(I)V
+HSPLcom/android/internal/os/LooperStats;->shouldCollectDetailedData()Z
+HSPLcom/android/internal/os/MediaPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HSPLcom/android/internal/os/MediaPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+HSPLcom/android/internal/os/MemoryPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HSPLcom/android/internal/os/MemoryPowerCalculator;->calculateRemaining(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
+HSPLcom/android/internal/os/MobileRadioPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;Landroid/os/BatteryStats;)V
+HSPLcom/android/internal/os/MobileRadioPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+HSPLcom/android/internal/os/MobileRadioPowerCalculator;->calculateRemaining(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
+HSPLcom/android/internal/os/MobileRadioPowerCalculator;->getMobilePowerPerPacket(JI)D
+HSPLcom/android/internal/os/MobileRadioPowerCalculator;->reset()V
+HSPLcom/android/internal/os/MobileRadioPowerCalculator;->reset(Landroid/os/BatteryStats;)V
+HSPLcom/android/internal/os/PowerCalculator;-><init>()V
+HSPLcom/android/internal/os/PowerCalculator;->reset()V
+HSPLcom/android/internal/os/PowerProfile$CpuClusterKey;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/internal/os/PowerProfile$CpuClusterKey;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILcom/android/internal/os/PowerProfile$1;)V
+HSPLcom/android/internal/os/PowerProfile$CpuClusterKey;->access$100(Lcom/android/internal/os/PowerProfile$CpuClusterKey;)I
+HSPLcom/android/internal/os/PowerProfile$CpuClusterKey;->access$200(Lcom/android/internal/os/PowerProfile$CpuClusterKey;)Ljava/lang/String;
+HSPLcom/android/internal/os/PowerProfile$CpuClusterKey;->access$300(Lcom/android/internal/os/PowerProfile$CpuClusterKey;)Ljava/lang/String;
+HSPLcom/android/internal/os/PowerProfile$CpuClusterKey;->access$400(Lcom/android/internal/os/PowerProfile$CpuClusterKey;)Ljava/lang/String;
+HSPLcom/android/internal/os/PowerProfile;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/os/PowerProfile;-><init>(Landroid/content/Context;Z)V
+HSPLcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;)D
+HSPLcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;I)D
+HSPLcom/android/internal/os/PowerProfile;->getAveragePowerForCpuCluster(I)D
+HSPLcom/android/internal/os/PowerProfile;->getAveragePowerForCpuCore(II)D
+HSPLcom/android/internal/os/PowerProfile;->getAveragePowerOrDefault(Ljava/lang/String;D)D
+HSPLcom/android/internal/os/PowerProfile;->getBatteryCapacity()D
+HSPLcom/android/internal/os/PowerProfile;->getNumCoresInCpuCluster(I)I
+HSPLcom/android/internal/os/PowerProfile;->getNumCpuClusters()I
+HSPLcom/android/internal/os/PowerProfile;->getNumElements(Ljava/lang/String;)I
+HSPLcom/android/internal/os/PowerProfile;->getNumSpeedStepsInCpuCluster(I)I
+HSPLcom/android/internal/os/PowerProfile;->initCpuClusters()V
+HSPLcom/android/internal/os/PowerProfile;->readPowerValuesFromXml(Landroid/content/Context;Z)V
+HPLcom/android/internal/os/ProcStatsUtil;->readNullSeparatedFile(Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/internal/os/ProcStatsUtil;->readSingleLineProcFile(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/os/ProcStatsUtil;->readTerminatedProcFile(Ljava/lang/String;B)Ljava/lang/String;
+HSPLcom/android/internal/os/ProcTimeInStateReader;-><init>(Ljava/nio/file/Path;)V
+HSPLcom/android/internal/os/ProcTimeInStateReader;->getFrequenciesKhz()[J
+HPLcom/android/internal/os/ProcTimeInStateReader;->getUsageTimesMillis(Ljava/nio/file/Path;)[J
+HSPLcom/android/internal/os/ProcTimeInStateReader;->initializeTimeInStateFormat(Ljava/nio/file/Path;)V
+HPLcom/android/internal/os/ProcessCpuTracker$1;->compare(Lcom/android/internal/os/ProcessCpuTracker$Stats;Lcom/android/internal/os/ProcessCpuTracker$Stats;)I
+HPLcom/android/internal/os/ProcessCpuTracker$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/internal/os/ProcessCpuTracker$Stats;-><init>(IIZ)V
+HSPLcom/android/internal/os/ProcessCpuTracker$Stats;->getUid(Ljava/lang/String;)I
+HSPLcom/android/internal/os/ProcessCpuTracker;-><init>(Z)V
+HPLcom/android/internal/os/ProcessCpuTracker;->buildWorkingProcs()V
+HSPLcom/android/internal/os/ProcessCpuTracker;->collectStats(Ljava/lang/String;IZ[ILjava/util/ArrayList;)[I
+HSPLcom/android/internal/os/ProcessCpuTracker;->countStats()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getCpuTimeForPid(I)J
+HSPLcom/android/internal/os/ProcessCpuTracker;->getLastIdleTime()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getLastIoWaitTime()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getLastIrqTime()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getLastSoftIrqTime()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getLastSystemTime()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getLastUserTime()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getName(Lcom/android/internal/os/ProcessCpuTracker$Stats;Ljava/lang/String;)V
+HSPLcom/android/internal/os/ProcessCpuTracker;->getStats(I)Lcom/android/internal/os/ProcessCpuTracker$Stats;
+HSPLcom/android/internal/os/ProcessCpuTracker;->getStats(Lcom/android/internal/os/ProcessCpuTracker$FilterStats;)Ljava/util/List;
+HSPLcom/android/internal/os/ProcessCpuTracker;->hasGoodLastStats()Z
+HSPLcom/android/internal/os/ProcessCpuTracker;->init()V
+HSPLcom/android/internal/os/ProcessCpuTracker;->onLoadChanged(FFF)V
+HSPLcom/android/internal/os/ProcessCpuTracker;->onMeasureProcessName(Ljava/lang/String;)I
+PLcom/android/internal/os/ProcessCpuTracker;->printCurrentLoad()Ljava/lang/String;
+HPLcom/android/internal/os/ProcessCpuTracker;->printCurrentState(J)Ljava/lang/String;
+HPLcom/android/internal/os/ProcessCpuTracker;->printProcessCPU(Ljava/io/PrintWriter;Ljava/lang/String;ILjava/lang/String;IIIIIIII)V
+HPLcom/android/internal/os/ProcessCpuTracker;->printRatio(Ljava/io/PrintWriter;JJ)V
+HSPLcom/android/internal/os/ProcessCpuTracker;->update()V
+HSPLcom/android/internal/os/RailStats;-><init>()V
+PLcom/android/internal/os/RailStats;->getCellularTotalEnergyUseduWs()J
+HSPLcom/android/internal/os/RailStats;->getWifiTotalEnergyUseduWs()J
+HSPLcom/android/internal/os/RailStats;->isRailStatsAvailable()Z
+PLcom/android/internal/os/RailStats;->resetCellularTotalEnergyUsed()V
+HSPLcom/android/internal/os/RailStats;->resetWifiTotalEnergyUsed()V
+HSPLcom/android/internal/os/RailStats;->setRailStatsAvailability(Z)V
+HSPLcom/android/internal/os/RpmStats$PowerStateElement;-><init>(JI)V
+HSPLcom/android/internal/os/RpmStats$PowerStateElement;-><init>(JILcom/android/internal/os/RpmStats$1;)V
+HSPLcom/android/internal/os/RpmStats$PowerStateSubsystem;-><init>()V
+HSPLcom/android/internal/os/RpmStats$PowerStateSubsystem;->putState(Ljava/lang/String;JI)V
+HSPLcom/android/internal/os/RpmStats;-><init>()V
+HSPLcom/android/internal/os/RpmStats;->getSubsystem(Ljava/lang/String;)Lcom/android/internal/os/RpmStats$PowerStateSubsystem;
 HSPLcom/android/internal/os/RuntimeInit$Arguments;-><init>([Ljava/lang/String;)V
 HSPLcom/android/internal/os/RuntimeInit$Arguments;->parseArgs([Ljava/lang/String;)V
 HSPLcom/android/internal/os/RuntimeInit$KillApplicationHandler;-><init>(Lcom/android/internal/os/RuntimeInit$LoggingHandler;)V
@@ -15293,12 +32701,16 @@
 HSPLcom/android/internal/os/RuntimeInit;->applicationInit(I[J[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Runnable;
 HSPLcom/android/internal/os/RuntimeInit;->commonInit()V
 HSPLcom/android/internal/os/RuntimeInit;->findStaticMain(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Runnable;
+HSPLcom/android/internal/os/RuntimeInit;->getApplicationObject()Landroid/os/IBinder;
 HSPLcom/android/internal/os/RuntimeInit;->getDefaultUserAgent()Ljava/lang/String;
 HSPLcom/android/internal/os/RuntimeInit;->lambda$commonInit$0()Ljava/lang/String;
 HSPLcom/android/internal/os/RuntimeInit;->maybeDisableHeapPointerTagging([J)V
 HSPLcom/android/internal/os/RuntimeInit;->redirectLogStreams()V
 HSPLcom/android/internal/os/RuntimeInit;->setApplicationObject(Landroid/os/IBinder;)V
 HSPLcom/android/internal/os/RuntimeInit;->wtf(Ljava/lang/String;Ljava/lang/Throwable;Z)V
+HSPLcom/android/internal/os/SensorPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;Landroid/hardware/SensorManager;Landroid/os/BatteryStats;JI)V
+HSPLcom/android/internal/os/SensorPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+HSPLcom/android/internal/os/SensorPowerCalculator;->getAverageGpsPower(Lcom/android/internal/os/PowerProfile;Landroid/os/BatteryStats;JI)D
 HSPLcom/android/internal/os/SomeArgs;-><init>()V
 HSPLcom/android/internal/os/SomeArgs;->clear()V
 HSPLcom/android/internal/os/SomeArgs;->obtain()Lcom/android/internal/os/SomeArgs;
@@ -15307,16 +32719,34 @@
 HSPLcom/android/internal/os/StatsdHiddenApiUsageLogger;->hiddenApiUsed(ILjava/lang/String;Ljava/lang/String;IZ)V
 HSPLcom/android/internal/os/StatsdHiddenApiUsageLogger;->newLogUsage(Ljava/lang/String;IZ)V
 HSPLcom/android/internal/os/StatsdHiddenApiUsageLogger;->setHiddenApiAccessLogSampleRates(II)V
+HSPLcom/android/internal/os/StoragedUidIoStatsReader;-><init>()V
+HPLcom/android/internal/os/TransferPipe;->closeFd(I)V
+HPLcom/android/internal/os/TransferPipe;->getNewOutputStream()Ljava/io/OutputStream;
+HPLcom/android/internal/os/TransferPipe;->getReadFd()Landroid/os/ParcelFileDescriptor;
+HPLcom/android/internal/os/TransferPipe;->go(Ljava/io/FileDescriptor;J)V
+HPLcom/android/internal/os/TransferPipe;->kill()V
+HPLcom/android/internal/os/TransferPipe;->run()V
+HSPLcom/android/internal/os/WakelockPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HSPLcom/android/internal/os/WakelockPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+HSPLcom/android/internal/os/WakelockPowerCalculator;->calculateRemaining(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
+HSPLcom/android/internal/os/WakelockPowerCalculator;->reset()V
+HSPLcom/android/internal/os/WifiPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HSPLcom/android/internal/os/WifiPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+HSPLcom/android/internal/os/WifiPowerCalculator;->calculateRemaining(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
+HSPLcom/android/internal/os/WifiPowerCalculator;->reset()V
 HSPLcom/android/internal/os/Zygote;->applyDebuggerSystemProperty(Lcom/android/internal/os/ZygoteArguments;)V
 HSPLcom/android/internal/os/Zygote;->applyInvokeWithSecurityPolicy(Lcom/android/internal/os/ZygoteArguments;Landroid/net/Credentials;)V
 HSPLcom/android/internal/os/Zygote;->applyInvokeWithSystemProperty(Lcom/android/internal/os/ZygoteArguments;)V
 HSPLcom/android/internal/os/Zygote;->applyUidSecurityPolicy(Lcom/android/internal/os/ZygoteArguments;Landroid/net/Credentials;)V
 HSPLcom/android/internal/os/Zygote;->callPostForkChildHooks(IZZLjava/lang/String;)V
+HSPLcom/android/internal/os/Zygote;->callPostForkSystemServerHooks(I)V
 HSPLcom/android/internal/os/Zygote;->createManagedSocketFromInitSocket(Ljava/lang/String;)Landroid/net/LocalServerSocket;
 HSPLcom/android/internal/os/Zygote;->disableExecuteOnly(I)V
 HSPLcom/android/internal/os/Zygote;->forkAndSpecialize(II[II[[IILjava/lang/String;Ljava/lang/String;[I[IZLjava/lang/String;Ljava/lang/String;IZ[Ljava/lang/String;)I
+HSPLcom/android/internal/os/Zygote;->forkAndSpecialize(II[II[[IILjava/lang/String;Ljava/lang/String;[I[IZLjava/lang/String;Ljava/lang/String;Z[Ljava/lang/String;)I
 HSPLcom/android/internal/os/Zygote;->forkSystemServer(II[II[[IJJ)I
 HSPLcom/android/internal/os/Zygote;->getConfigurationProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/os/Zygote;->getConfigurationPropertyBoolean(Ljava/lang/String;Ljava/lang/Boolean;)Z
 HSPLcom/android/internal/os/Zygote;->getUsapPoolEventFD()Ljava/io/FileDescriptor;
 HSPLcom/android/internal/os/Zygote;->getWrapProperty(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/os/Zygote;->initNativeState(Z)V
@@ -15343,11 +32773,18 @@
 HSPLcom/android/internal/os/ZygoteConnection;->setChildPgid(I)V
 HSPLcom/android/internal/os/ZygoteConnection;->stateChangeWithUsapPoolReset(Lcom/android/internal/os/ZygoteServer;Ljava/lang/Runnable;)Ljava/lang/Runnable;
 HSPLcom/android/internal/os/ZygoteInit;->cacheNonBootClasspathClassLoaders()V
+HSPLcom/android/internal/os/ZygoteInit;->createPathClassLoader(Ljava/lang/String;I)Ljava/lang/ClassLoader;
+HSPLcom/android/internal/os/ZygoteInit;->createSystemServerClassLoader()V
+HSPLcom/android/internal/os/ZygoteInit;->encodeSystemServerClassPath(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/os/ZygoteInit;->endPreload()V
 HSPLcom/android/internal/os/ZygoteInit;->forkSystemServer(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/os/ZygoteServer;)Ljava/lang/Runnable;
 HSPLcom/android/internal/os/ZygoteInit;->gcAndFinalize()V
+HSPLcom/android/internal/os/ZygoteInit;->getSystemServerClassLoaderContext(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/os/ZygoteInit;->handleSystemServerProcess(Lcom/android/internal/os/ZygoteArguments;)Ljava/lang/Runnable;
+HSPLcom/android/internal/os/ZygoteInit;->hasSecondZygote(Ljava/lang/String;)Z
 HSPLcom/android/internal/os/ZygoteInit;->main([Ljava/lang/String;)V
 HSPLcom/android/internal/os/ZygoteInit;->maybePreloadGraphicsDriver()V
+HSPLcom/android/internal/os/ZygoteInit;->performSystemServerDexOpt(Ljava/lang/String;)Z
 HSPLcom/android/internal/os/ZygoteInit;->posixCapabilitiesAsBits([I)J
 HSPLcom/android/internal/os/ZygoteInit;->preload(Landroid/util/TimingsTraceLog;)V
 HSPLcom/android/internal/os/ZygoteInit;->preloadClasses()V
@@ -15356,10 +32793,12 @@
 HSPLcom/android/internal/os/ZygoteInit;->preloadResources()V
 HSPLcom/android/internal/os/ZygoteInit;->preloadSharedLibraries()V
 HSPLcom/android/internal/os/ZygoteInit;->preloadTextResources()V
+HSPLcom/android/internal/os/ZygoteInit;->prepareSystemServerProfile(Ljava/lang/String;)V
 HSPLcom/android/internal/os/ZygoteInit;->setApiBlacklistExemptions([Ljava/lang/String;)V
 HSPLcom/android/internal/os/ZygoteInit;->setHiddenApiAccessLogSampleRate(I)V
 HSPLcom/android/internal/os/ZygoteInit;->setHiddenApiUsageLogger(Ldalvik/system/VMRuntime$HiddenApiUsageLogger;)V
 HSPLcom/android/internal/os/ZygoteInit;->shouldProfileSystemServer()Z
+HSPLcom/android/internal/os/ZygoteInit;->waitForSecondaryZygote(Ljava/lang/String;)V
 HSPLcom/android/internal/os/ZygoteInit;->warmUpJcaProviders()V
 HSPLcom/android/internal/os/ZygoteInit;->zygoteInit(I[J[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Runnable;
 HSPLcom/android/internal/os/ZygoteServer;-><init>(Z)V
@@ -15380,15 +32819,36 @@
 HSPLcom/android/internal/policy/DecorContext;->getResources()Landroid/content/res/Resources;
 HSPLcom/android/internal/policy/DecorContext;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
 HSPLcom/android/internal/policy/DecorContext;->setPhoneWindow(Lcom/android/internal/policy/PhoneWindow;)V
+HSPLcom/android/internal/policy/DecorView$2;-><init>(Lcom/android/internal/policy/DecorView;Landroid/graphics/drawable/Drawable;IIII)V
+HSPLcom/android/internal/policy/DecorView$2;->getPadding(Landroid/graphics/Rect;)Z
+HSPLcom/android/internal/policy/DecorView$3;-><init>(Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView$ColorViewState;)V
+HSPLcom/android/internal/policy/DecorView$3;->run()V
+HSPLcom/android/internal/policy/DecorView$6;-><init>(Lcom/android/internal/policy/DecorView;Lcom/android/internal/view/FloatingActionMode;)V
+HSPLcom/android/internal/policy/DecorView$6;->onPreDraw()Z
+HSPLcom/android/internal/policy/DecorView$ActionModeCallback2Wrapper;-><init>(Lcom/android/internal/policy/DecorView;Landroid/view/ActionMode$Callback;)V
+HSPLcom/android/internal/policy/DecorView$ActionModeCallback2Wrapper;->onCreateActionMode(Landroid/view/ActionMode;Landroid/view/Menu;)Z
+HSPLcom/android/internal/policy/DecorView$ActionModeCallback2Wrapper;->onDestroyActionMode(Landroid/view/ActionMode;)V
+HSPLcom/android/internal/policy/DecorView$ActionModeCallback2Wrapper;->onGetContentRect(Landroid/view/ActionMode;Landroid/view/View;Landroid/graphics/Rect;)V
+HSPLcom/android/internal/policy/DecorView$ActionModeCallback2Wrapper;->onPrepareActionMode(Landroid/view/ActionMode;Landroid/view/Menu;)Z
 HSPLcom/android/internal/policy/DecorView$ColorViewAttributes;->isPresent(IIZ)Z
+HSPLcom/android/internal/policy/DecorView$ColorViewAttributes;->isPresent(Landroid/view/InsetsState;IZ)Z
 HSPLcom/android/internal/policy/DecorView$ColorViewAttributes;->isVisible(ZIIZ)Z
 HSPLcom/android/internal/policy/DecorView$ColorViewState;-><init>(Lcom/android/internal/policy/DecorView$ColorViewAttributes;)V
 HSPLcom/android/internal/policy/DecorView;-><init>(Landroid/content/Context;ILcom/android/internal/policy/PhoneWindow;Landroid/view/WindowManager$LayoutParams;)V
+HSPLcom/android/internal/policy/DecorView;->access$500(Lcom/android/internal/policy/DecorView;)Landroid/content/Context;
+HSPLcom/android/internal/policy/DecorView;->access$600(Lcom/android/internal/policy/DecorView;)Landroid/view/ActionMode;
+HSPLcom/android/internal/policy/DecorView;->access$602(Lcom/android/internal/policy/DecorView;Landroid/view/ActionMode;)Landroid/view/ActionMode;
+HSPLcom/android/internal/policy/DecorView;->access$800(Lcom/android/internal/policy/DecorView;)V
+HSPLcom/android/internal/policy/DecorView;->access$900(Lcom/android/internal/policy/DecorView;)Lcom/android/internal/policy/PhoneWindow;
 HSPLcom/android/internal/policy/DecorView;->calculateBarColor(IIIIIIZ)I
 HSPLcom/android/internal/policy/DecorView;->calculateNavigationBarColor()I
 HSPLcom/android/internal/policy/DecorView;->calculateStatusBarColor()I
+HSPLcom/android/internal/policy/DecorView;->cleanupFloatingActionModeViews()V
+HSPLcom/android/internal/policy/DecorView;->createActionMode(ILandroid/view/ActionMode$Callback2;Landroid/view/View;)Landroid/view/ActionMode;
 HSPLcom/android/internal/policy/DecorView;->createDecorCaptionView(Landroid/view/LayoutInflater;)Lcom/android/internal/widget/DecorCaptionView;
+HSPLcom/android/internal/policy/DecorView;->createFloatingActionMode(Landroid/view/View;Landroid/view/ActionMode$Callback2;)Landroid/view/ActionMode;
 HSPLcom/android/internal/policy/DecorView;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
+HSPLcom/android/internal/policy/DecorView;->dispatchPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)Z
 HSPLcom/android/internal/policy/DecorView;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLcom/android/internal/policy/DecorView;->draw(Landroid/graphics/Canvas;)V
 HSPLcom/android/internal/policy/DecorView;->drawLegacyNavigationBarBackground(Landroid/graphics/RecordingCanvas;)V
@@ -15397,6 +32857,8 @@
 HSPLcom/android/internal/policy/DecorView;->enableCaption(Z)V
 HSPLcom/android/internal/policy/DecorView;->enforceNonTranslucentBackground(Landroid/graphics/drawable/Drawable;Z)Landroid/graphics/drawable/Drawable;
 HSPLcom/android/internal/policy/DecorView;->finishChanging()V
+HSPLcom/android/internal/policy/DecorView;->gatherTransparentRegion(Landroid/graphics/Region;)Z
+HSPLcom/android/internal/policy/DecorView;->gatherTransparentRegion(Lcom/android/internal/policy/DecorView$ColorViewState;Landroid/graphics/Region;)Z
 HSPLcom/android/internal/policy/DecorView;->getAccessibilityViewId()I
 HSPLcom/android/internal/policy/DecorView;->getBackground()Landroid/graphics/drawable/Drawable;
 HSPLcom/android/internal/policy/DecorView;->getColorViewBottomInset(II)I
@@ -15428,12 +32890,18 @@
 HSPLcom/android/internal/policy/DecorView;->onWindowSystemUiVisibilityChanged(I)V
 HSPLcom/android/internal/policy/DecorView;->releaseThreadedRenderer()V
 HSPLcom/android/internal/policy/DecorView;->sendAccessibilityEvent(I)V
+HSPLcom/android/internal/policy/DecorView;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
 HSPLcom/android/internal/policy/DecorView;->setBackgroundFallback(Landroid/graphics/drawable/Drawable;)V
 HSPLcom/android/internal/policy/DecorView;->setColor(Landroid/view/View;IIZZ)V
 HSPLcom/android/internal/policy/DecorView;->setFrame(IIII)Z
+HSPLcom/android/internal/policy/DecorView;->setHandledActionMode(Landroid/view/ActionMode;)V
+HSPLcom/android/internal/policy/DecorView;->setHandledFloatingActionMode(Landroid/view/ActionMode;)V
 HSPLcom/android/internal/policy/DecorView;->setWindow(Lcom/android/internal/policy/PhoneWindow;)V
 HSPLcom/android/internal/policy/DecorView;->setWindowBackground(Landroid/graphics/drawable/Drawable;)V
 HSPLcom/android/internal/policy/DecorView;->setWindowFrame(Landroid/graphics/drawable/Drawable;)V
+HSPLcom/android/internal/policy/DecorView;->showContextMenuForChildInternal(Landroid/view/View;FF)Z
+HSPLcom/android/internal/policy/DecorView;->startActionMode(Landroid/view/View;Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
+HSPLcom/android/internal/policy/DecorView;->startActionModeForChild(Landroid/view/View;Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
 HSPLcom/android/internal/policy/DecorView;->startChanging()V
 HSPLcom/android/internal/policy/DecorView;->superDispatchKeyEvent(Landroid/view/KeyEvent;)Z
 HSPLcom/android/internal/policy/DecorView;->superDispatchTouchEvent(Landroid/view/MotionEvent;)Z
@@ -15448,8 +32916,64 @@
 HSPLcom/android/internal/policy/DecorView;->updateStatusGuard(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
 HSPLcom/android/internal/policy/DecorView;->willYouTakeTheInputQueue()Landroid/view/InputQueue$Callback;
 HSPLcom/android/internal/policy/DecorView;->willYouTakeTheSurface()Landroid/view/SurfaceHolder$Callback2;
+HSPLcom/android/internal/policy/DividerSnapAlgorithm$SnapTarget;-><init>(III)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm$SnapTarget;-><init>(IIIF)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;-><init>(Landroid/content/res/Resources;IIIZLandroid/graphics/Rect;)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;-><init>(Landroid/content/res/Resources;IIIZLandroid/graphics/Rect;I)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;-><init>(Landroid/content/res/Resources;IIIZLandroid/graphics/Rect;IZ)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->addMiddleTarget(Z)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->addNonDismissingTargets(ZIII)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->addRatio16_9Targets(ZI)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->calculateTargets(ZI)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->getEndInset()I
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->getMiddleTarget()Lcom/android/internal/policy/DividerSnapAlgorithm$SnapTarget;
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->getStartInset()I
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->maybeAddTarget(II)V
+HSPLcom/android/internal/policy/DockedDividerUtils;->calculateMiddlePosition(ZLandroid/graphics/Rect;III)I
+HSPLcom/android/internal/policy/IKeyguardDrawnCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/policy/IKeyguardDrawnCallback$Stub$Proxy;->onDrawn()V
+HPLcom/android/internal/policy/IKeyguardDrawnCallback$Stub;-><init>()V
+HPLcom/android/internal/policy/IKeyguardDrawnCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/policy/IKeyguardDrawnCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardDrawnCallback;
+HPLcom/android/internal/policy/IKeyguardDrawnCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->addStateMonitorCallback(Lcom/android/internal/policy/IKeyguardStateCallback;)V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onBootCompleted()V
+HPLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onDreamingStarted()V
+HPLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onDreamingStopped()V
+HPLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onFinishedGoingToSleep(IZ)V
+HPLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onFinishedWakingUp()V
+HPLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onScreenTurnedOff()V
+HPLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onScreenTurnedOn()V
+HPLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onScreenTurningOff()V
+HPLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onScreenTurningOn(Lcom/android/internal/policy/IKeyguardDrawnCallback;)V
+HPLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onStartedGoingToSleep(I)V
+HPLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onStartedWakingUp()V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onSystemReady()V
+HPLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->startKeyguardExitAnimation(JJ)V
+HSPLcom/android/internal/policy/IKeyguardService$Stub;-><init>()V
+PLcom/android/internal/policy/IKeyguardService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardService;
+HSPLcom/android/internal/policy/IKeyguardService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onHasLockscreenWallpaperChanged(Z)V
+HSPLcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onInputRestrictedStateChanged(Z)V
+HSPLcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onShowingStateChanged(Z)V
+HSPLcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onSimSecureStateChanged(Z)V
+HSPLcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onTrustedChanged(Z)V
+PLcom/android/internal/policy/IKeyguardStateCallback$Stub;-><init>()V
+PLcom/android/internal/policy/IKeyguardStateCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/policy/IKeyguardStateCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardStateCallback;
+HPLcom/android/internal/policy/IKeyguardStateCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/policy/IShortcutService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/policy/IShortcutService$Stub;-><init>()V
+HSPLcom/android/internal/policy/IShortcutService$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/policy/IShortcutService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IShortcutService;
+HSPLcom/android/internal/policy/KeyInterceptionInfo;-><init>(IILjava/lang/String;)V
 HSPLcom/android/internal/policy/PhoneFallbackEventHandler;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
 HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->getAudioManager()Landroid/media/AudioManager;
+HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->onKeyDown(ILandroid/view/KeyEvent;)Z
+HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->onKeyUp(ILandroid/view/KeyEvent;)Z
 HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->preDispatchKeyEvent(Landroid/view/KeyEvent;)V
 HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->setView(Landroid/view/View;)V
 HSPLcom/android/internal/policy/PhoneLayoutInflater;-><init>(Landroid/content/Context;)V
@@ -15457,34 +32981,60 @@
 HSPLcom/android/internal/policy/PhoneLayoutInflater;->cloneInContext(Landroid/content/Context;)Landroid/view/LayoutInflater;
 HSPLcom/android/internal/policy/PhoneLayoutInflater;->onCreateView(Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;
 HSPLcom/android/internal/policy/PhoneWindow$1;-><init>(Lcom/android/internal/policy/PhoneWindow;)V
+HSPLcom/android/internal/policy/PhoneWindow$1;->run()V
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;-><init>()V
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;-><init>(Lcom/android/internal/policy/PhoneWindow$1;)V
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;->readFromParcel(Landroid/os/Parcel;)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState;-><init>(I)V
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState;->applyFrozenState()V
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState;->onSaveInstanceState()Landroid/os/Parcelable;
 HSPLcom/android/internal/policy/PhoneWindow$PhoneWindowMenuCallback;-><init>(Lcom/android/internal/policy/PhoneWindow;)V
 HSPLcom/android/internal/policy/PhoneWindow;-><init>(Landroid/content/Context;)V
 HSPLcom/android/internal/policy/PhoneWindow;-><init>(Landroid/content/Context;Landroid/view/Window;Landroid/view/ViewRootImpl$ActivityConfigCallback;)V
+HSPLcom/android/internal/policy/PhoneWindow;->access$000(Lcom/android/internal/policy/PhoneWindow;)I
+HSPLcom/android/internal/policy/PhoneWindow;->access$002(Lcom/android/internal/policy/PhoneWindow;I)I
+HSPLcom/android/internal/policy/PhoneWindow;->access$102(Lcom/android/internal/policy/PhoneWindow;Z)Z
+HSPLcom/android/internal/policy/PhoneWindow;->alwaysReadCloseOnTouchAttr()V
 HSPLcom/android/internal/policy/PhoneWindow;->closeAllPanels()V
 HSPLcom/android/internal/policy/PhoneWindow;->closeContextMenu()V
 HSPLcom/android/internal/policy/PhoneWindow;->closePanel(Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;Z)V
 HSPLcom/android/internal/policy/PhoneWindow;->createDefaultContentWindowInsetsListener()Landroid/view/Window$OnContentApplyWindowInsetsListener;
+HSPLcom/android/internal/policy/PhoneWindow;->dismissContextMenu()V
 HSPLcom/android/internal/policy/PhoneWindow;->dispatchWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V
+HSPLcom/android/internal/policy/PhoneWindow;->doInvalidatePanelMenu(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->generateDecor(I)Lcom/android/internal/policy/DecorView;
 HSPLcom/android/internal/policy/PhoneWindow;->generateLayout(Lcom/android/internal/policy/DecorView;)Landroid/view/ViewGroup;
 HSPLcom/android/internal/policy/PhoneWindow;->getCurrentFocus()Landroid/view/View;
 HSPLcom/android/internal/policy/PhoneWindow;->getDecorView()Landroid/view/View;
 HSPLcom/android/internal/policy/PhoneWindow;->getLayoutInflater()Landroid/view/LayoutInflater;
+HSPLcom/android/internal/policy/PhoneWindow;->getMediaSessionManager()Landroid/media/session/MediaSessionManager;
+HSPLcom/android/internal/policy/PhoneWindow;->getNavigationBarColor()I
 HSPLcom/android/internal/policy/PhoneWindow;->getPanelState(IZ)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;
 HSPLcom/android/internal/policy/PhoneWindow;->getPanelState(IZLcom/android/internal/policy/PhoneWindow$PanelFeatureState;)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;
+HSPLcom/android/internal/policy/PhoneWindow;->getStatusBarColor()I
 HSPLcom/android/internal/policy/PhoneWindow;->getTransition(Landroid/transition/Transition;Landroid/transition/Transition;I)Landroid/transition/Transition;
+HSPLcom/android/internal/policy/PhoneWindow;->getTransitionBackgroundFadeDuration()J
 HSPLcom/android/internal/policy/PhoneWindow;->getViewRootImpl()Landroid/view/ViewRootImpl;
+HSPLcom/android/internal/policy/PhoneWindow;->getVolumeControlStream()I
 HSPLcom/android/internal/policy/PhoneWindow;->installDecor()V
+HSPLcom/android/internal/policy/PhoneWindow;->invalidatePanelMenu(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->isFloating()Z
 HSPLcom/android/internal/policy/PhoneWindow;->isShowingWallpaper()Z
 HSPLcom/android/internal/policy/PhoneWindow;->isTranslucent()Z
 HSPLcom/android/internal/policy/PhoneWindow;->lambda$createDefaultContentWindowInsetsListener$0$PhoneWindow(Landroid/view/WindowInsets;)Landroid/util/Pair;
 HSPLcom/android/internal/policy/PhoneWindow;->onActive()V
+HSPLcom/android/internal/policy/PhoneWindow;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLcom/android/internal/policy/PhoneWindow;->onKeyDown(IILandroid/view/KeyEvent;)Z
+HSPLcom/android/internal/policy/PhoneWindow;->onKeyUp(IILandroid/view/KeyEvent;)Z
 HSPLcom/android/internal/policy/PhoneWindow;->onViewRootImplSet(Landroid/view/ViewRootImpl;)V
 HSPLcom/android/internal/policy/PhoneWindow;->openPanelsAfterRestore()V
 HSPLcom/android/internal/policy/PhoneWindow;->peekDecorView()Landroid/view/View;
 HSPLcom/android/internal/policy/PhoneWindow;->requestFeature(I)Z
+HSPLcom/android/internal/policy/PhoneWindow;->restoreHierarchyState(Landroid/os/Bundle;)V
+HSPLcom/android/internal/policy/PhoneWindow;->restorePanelState(Landroid/util/SparseArray;)V
 HSPLcom/android/internal/policy/PhoneWindow;->saveHierarchyState()Landroid/os/Bundle;
 HSPLcom/android/internal/policy/PhoneWindow;->savePanelState(Landroid/util/SparseArray;)V
 HSPLcom/android/internal/policy/PhoneWindow;->setAttributes(Landroid/view/WindowManager$LayoutParams;)V
@@ -15492,8 +33042,12 @@
 HSPLcom/android/internal/policy/PhoneWindow;->setContentView(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->setContentView(Landroid/view/View;)V
 HSPLcom/android/internal/policy/PhoneWindow;->setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+HSPLcom/android/internal/policy/PhoneWindow;->setDefaultIcon(I)V
+HSPLcom/android/internal/policy/PhoneWindow;->setDefaultLogo(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->setDefaultWindowFormat(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->setNavigationBarColor(I)V
+HSPLcom/android/internal/policy/PhoneWindow;->setNavigationBarContrastEnforced(Z)V
+HSPLcom/android/internal/policy/PhoneWindow;->setNavigationBarDividerColor(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->setStatusBarColor(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->setTheme(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->setTitle(Ljava/lang/CharSequence;)V
@@ -15502,28 +33056,121 @@
 HSPLcom/android/internal/policy/PhoneWindow;->setVolumeControlStream(I)V
 HSPLcom/android/internal/policy/PhoneWindow;->superDispatchKeyEvent(Landroid/view/KeyEvent;)Z
 HSPLcom/android/internal/policy/PhoneWindow;->superDispatchTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLcom/android/internal/policy/PhoneWindow;->transitionTo(Landroid/transition/Scene;)V
+HSPLcom/android/internal/policy/ScreenDecorationsUtils;->getWindowCornerRadius(Landroid/content/res/Resources;)F
+HSPLcom/android/internal/policy/ScreenDecorationsUtils;->supportsRoundedCornersOnWindows(Landroid/content/res/Resources;)Z
+HSPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->appTransitionFinished(I)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->appTransitionPending(I)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->appTransitionStarting(IJJ)V
+HSPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->disable(III)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->handleSystemKey(I)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->onSystemBarAppearanceChanged(II[Lcom/android/internal/view/AppearanceRegion;Z)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->setImeWindowStatus(ILandroid/os/IBinder;IIZZ)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->setTopAppHidesStatusBar(Z)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->topAppWindowChanged(IZZ)V
+HSPLcom/android/internal/statusbar/IStatusBar$Stub;-><init>()V
+HSPLcom/android/internal/statusbar/IStatusBar$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/statusbar/IStatusBar$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBar;
+HSPLcom/android/internal/statusbar/IStatusBar$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->clearInlineReplyUriPermissions(Ljava/lang/String;)V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->clearNotificationEffects()V
+HSPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->disableForUser(ILandroid/os/IBinder;Ljava/lang/String;I)V
+HSPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationExpansionChanged(Ljava/lang/String;ZZI)V
+HSPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationVisibilityChanged([Lcom/android/internal/statusbar/NotificationVisibility;[Lcom/android/internal/statusbar/NotificationVisibility;)V
+HSPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onPanelHidden()V
+HSPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onPanelRevealed(ZI)V
+HSPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->registerStatusBar(Lcom/android/internal/statusbar/IStatusBar;)Lcom/android/internal/statusbar/RegisterStatusBarResult;
+HSPLcom/android/internal/statusbar/IStatusBarService$Stub;-><init>()V
+HSPLcom/android/internal/statusbar/IStatusBarService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBarService;
+HSPLcom/android/internal/statusbar/IStatusBarService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/internal/statusbar/NotificationVisibility$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/statusbar/NotificationVisibility;
+HPLcom/android/internal/statusbar/NotificationVisibility$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLcom/android/internal/statusbar/NotificationVisibility$1;->newArray(I)[Lcom/android/internal/statusbar/NotificationVisibility;
+HPLcom/android/internal/statusbar/NotificationVisibility$1;->newArray(I)[Ljava/lang/Object;
+HPLcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;->valueOf(Ljava/lang/String;)Lcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;
+PLcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;->values()[Lcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;
+HSPLcom/android/internal/statusbar/NotificationVisibility;-><init>()V
+HPLcom/android/internal/statusbar/NotificationVisibility;->access$000(Landroid/os/Parcel;)Lcom/android/internal/statusbar/NotificationVisibility;
+HSPLcom/android/internal/statusbar/NotificationVisibility;->clone()Lcom/android/internal/statusbar/NotificationVisibility;
+HSPLcom/android/internal/statusbar/NotificationVisibility;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/internal/statusbar/NotificationVisibility;->hashCode()I
+HSPLcom/android/internal/statusbar/NotificationVisibility;->obtain()Lcom/android/internal/statusbar/NotificationVisibility;
+HPLcom/android/internal/statusbar/NotificationVisibility;->obtain(Landroid/os/Parcel;)Lcom/android/internal/statusbar/NotificationVisibility;
+HSPLcom/android/internal/statusbar/NotificationVisibility;->obtain(Ljava/lang/String;IIZLcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;)Lcom/android/internal/statusbar/NotificationVisibility;
+HPLcom/android/internal/statusbar/NotificationVisibility;->readFromParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/statusbar/NotificationVisibility;->recycle()V
+HSPLcom/android/internal/statusbar/NotificationVisibility;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/statusbar/RegisterStatusBarResult$1;-><init>()V
+HSPLcom/android/internal/statusbar/RegisterStatusBarResult$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/statusbar/RegisterStatusBarResult;
+HSPLcom/android/internal/statusbar/RegisterStatusBarResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/statusbar/RegisterStatusBarResult;-><clinit>()V
+HSPLcom/android/internal/statusbar/RegisterStatusBarResult;-><init>(Landroid/util/ArrayMap;II[Lcom/android/internal/view/AppearanceRegion;IIZILandroid/os/IBinder;ZZZ[I)V
+HSPLcom/android/internal/statusbar/RegisterStatusBarResult;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/statusbar/StatusBarIcon;-><init>(Landroid/os/UserHandle;Ljava/lang/String;Landroid/graphics/drawable/Icon;IILjava/lang/CharSequence;)V
+HSPLcom/android/internal/statusbar/StatusBarIcon;->clone()Lcom/android/internal/statusbar/StatusBarIcon;
 HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallCapablePhoneAccounts(ZLjava/lang/String;Ljava/lang/String;)Ljava/util/List;
 HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallState()I
+HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCurrentTtyMode(Ljava/lang/String;Ljava/lang/String;)I
 HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getDefaultDialerPackage()Ljava/lang/String;
+HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getDefaultOutgoingPhoneAccount(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/telecom/PhoneAccountHandle;
+HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getPhoneAccount(Landroid/telecom/PhoneAccountHandle;)Landroid/telecom/PhoneAccount;
+HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isInCall(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/internal/telecom/ITelecomService$Stub;-><init>()V
 HSPLcom/android/internal/telecom/ITelecomService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ITelecomService;
+HSPLcom/android/internal/telecom/ITelecomService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telecom/IVideoProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/IVideoProvider;
+HSPLcom/android/internal/telephony/CarrierAppUtils;->disableCarrierAppsUntilPrivileged(Ljava/lang/String;Landroid/telephony/TelephonyManager;Landroid/content/ContentResolver;ILandroid/util/ArraySet;Landroid/util/ArrayMap;Landroid/content/Context;)V
+HSPLcom/android/internal/telephony/CarrierAppUtils;->getContentResolverForUser(Landroid/content/Context;I)Landroid/content/ContentResolver;
+HSPLcom/android/internal/telephony/CarrierAppUtils;->getDefaultCarrierAssociatedAppsHelper(ILandroid/util/ArrayMap;Landroid/content/Context;)Ljava/util/Map;
+HSPLcom/android/internal/telephony/GsmAlphabet;->gsm7BitPackedToString([BIIIII)Ljava/lang/String;
 HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->getConfigForSubIdWithFeature(ILjava/lang/String;Ljava/lang/String;)Landroid/os/PersistableBundle;
 HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ICarrierConfigLoader;
+HSPLcom/android/internal/telephony/IMms$Stub;-><init>()V
+HPLcom/android/internal/telephony/IMms$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;->onSubscriptionsChanged()V
 HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;-><init>()V
 HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;
 HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onActiveDataSubIdChanged(I)V
+HPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onCallForwardingIndicatorChanged(Z)V
+HPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onCallStateChanged(ILjava/lang/String;)V
+HPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onCarrierNetworkChange(Z)V
+HPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onDataActivity(I)V
+HPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onDataConnectionStateChanged(II)V
+HPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onMessageWaitingIndicatorChanged(Z)V
+HPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onServiceStateChanged(Landroid/telephony/ServiceState;)V
+HPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onSignalStrengthsChanged(Landroid/telephony/SignalStrength;)V
 HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;-><init>()V
 HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneStateListener;
 HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getGroupIdLevel1ForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getIccSerialNumberForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getLine1NumberForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getSubscriberIdForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneSubInfo;
+HSPLcom/android/internal/telephony/ISms$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/telephony/ISms$Stub$Proxy;->getPreferredSmsSubscription()I
+HSPLcom/android/internal/telephony/ISms$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ISms;
 HSPLcom/android/internal/telephony/ISub$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveDataSubscriptionId()I
+HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubIdList(Z)[I
+HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubInfoCount(Ljava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubInfoCountMax()I
 HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubscriptionInfo(ILjava/lang/String;Ljava/lang/String;)Landroid/telephony/SubscriptionInfo;
 HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubscriptionInfoList(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getAvailableSubscriptionInfoList(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
 HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultDataSubId()I
 HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSmsSubId()I
 HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSubId()I
@@ -15533,21 +33180,52 @@
 HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getSlotIndex(I)I
 HSPLcom/android/internal/telephony/ISub$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ISub;
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->checkCarrierPrivilegesForPackage(ILjava/lang/String;)I
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->checkCarrierPrivilegesForPackageAnyPhone(Ljava/lang/String;)I
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getActivePhoneTypeForSlot(I)I
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getAllCellInfo(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCarrierPrivilegeStatus(I)I
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCarrierPrivilegeStatusForUid(II)I
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCellLocation(Ljava/lang/String;Ljava/lang/String;)Landroid/telephony/CellIdentity;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataActivityForSubId(I)I
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataStateForSubId(I)I
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDeviceIdWithFeature(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getEmergencyNumberList(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getImeiForSlot(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLine1NumberForDisplay(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMeidForSlot(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMergedImsisFromGroup(ILjava/lang/String;)[Ljava/lang/String;
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkCountryIsoForPhone(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getPackagesWithCarrierPrivilegesForAllPhones()Ljava/util/List;
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getServiceStateForSubscriber(ILjava/lang/String;Ljava/lang/String;)Landroid/telephony/ServiceState;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubIdForPhoneAccountHandle(Landroid/telecom/PhoneAccountHandle;Ljava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionCarrierId(I)I
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVoiceNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVtDataUsage(IZ)Landroid/net/NetworkStats;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isAvailable(III)Z
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isDataEnabled(I)Z
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isEmergencyNumber(Ljava/lang/String;Z)Z
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isTetheringApnRequiredForSubscriber(I)Z
 HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isUserDataEnabled(I)Z
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->requestCellInfoUpdate(ILandroid/telephony/ICellInfoCallback;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->requestCellInfoUpdateWithWorkSource(ILandroid/telephony/ICellInfoCallback;Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->requestModemActivityInfo(Landroid/os/ResultReceiver;)V
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->setPolicyDataEnabled(ZI)V
 HSPLcom/android/internal/telephony/ITelephony$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephony;
 HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->addOnSubscriptionsChangedListener(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
 HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->listenForSubscriber(ILjava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;IZ)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub;-><init>()V
 HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephonyRegistry;
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/SmsAddress;-><init>()V
+HSPLcom/android/internal/telephony/SmsAddress;->couldBeEmailGateway()Z
 HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;-><init>(Ljava/lang/String;I)V
 HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$000(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$002(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$100(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$102(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$202(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$302(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Ljava/lang/String;)Ljava/lang/String;
@@ -15556,30 +33234,135 @@
 HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$602(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$700(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;)I
 HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->isComplete()Z
+HSPLcom/android/internal/telephony/SmsApplication;->assignExclusiveSmsPermissionsToSystemApp(Landroid/content/Context;Landroid/content/pm/PackageManager;Landroid/app/AppOpsManager;Ljava/lang/String;)V
+HSPLcom/android/internal/telephony/SmsApplication;->defaultSmsAppChanged(Landroid/content/Context;)V
 HSPLcom/android/internal/telephony/SmsApplication;->getApplication(Landroid/content/Context;ZI)Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;
 HSPLcom/android/internal/telephony/SmsApplication;->getApplicationCollectionInternal(Landroid/content/Context;I)Ljava/util/Collection;
 HSPLcom/android/internal/telephony/SmsApplication;->getApplicationForPackage(Ljava/util/Collection;Ljava/lang/String;)Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;
+HSPLcom/android/internal/telephony/SmsApplication;->getDefaultMmsApplication(Landroid/content/Context;Z)Landroid/content/ComponentName;
 HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplication(Landroid/content/Context;Z)Landroid/content/ComponentName;
 HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplicationAsUser(Landroid/content/Context;ZI)Landroid/content/ComponentName;
 HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsPackage(Landroid/content/Context;I)Ljava/lang/String;
 HSPLcom/android/internal/telephony/SmsApplication;->getIncomingUserId(Landroid/content/Context;)I
+HSPLcom/android/internal/telephony/SmsApplication;->tryFixExclusiveSmsAppops(Landroid/content/Context;Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Z)Z
+HSPLcom/android/internal/telephony/SmsHeader$ConcatRef;-><init>()V
+HSPLcom/android/internal/telephony/SmsHeader;-><init>()V
+HSPLcom/android/internal/telephony/SmsHeader;->fromByteArray([B)Lcom/android/internal/telephony/SmsHeader;
+HSPLcom/android/internal/telephony/SmsMessageBase;-><init>()V
+HSPLcom/android/internal/telephony/SmsMessageBase;->getMessageBody()Ljava/lang/String;
+HSPLcom/android/internal/telephony/SmsMessageBase;->getOriginatingAddress()Ljava/lang/String;
+HSPLcom/android/internal/telephony/SmsMessageBase;->parseMessageBody()V
+HSPLcom/android/internal/telephony/TelephonyCommonStatsLog;->write(ILjava/lang/String;Ljava/lang/String;ZZ)V
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadDeviceIdentifiers(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadDeviceIdentifiers(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadPhoneState(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCarrierPrivilegeForAnySubId(Landroid/content/Context;I)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCarrierPrivilegeForSubId(Landroid/content/Context;I)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkPrivilegedReadPermissionOrCarrierPrivilegePermission(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z
+HPLcom/android/internal/telephony/TelephonyPermissions;->checkReadCallLog(Landroid/content/Context;IIILjava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkReadPhoneState(Landroid/content/Context;IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->enforceCarrierPrivilege(Landroid/content/Context;IILjava/lang/String;)V
+HSPLcom/android/internal/telephony/TelephonyPermissions;->getCarrierPrivilegeStatus(Landroid/content/Context;II)I
+HSPLcom/android/internal/telephony/TelephonyPermissions;->reportAccessDeniedToReadIdentifiers(Landroid/content/Context;IIILjava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/internal/telephony/euicc/IEuiccController$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/euicc/IEuiccController;
+HSPLcom/android/internal/telephony/gsm/GsmSmsAddress;-><init>([BII)V
+HSPLcom/android/internal/telephony/gsm/GsmSmsAddress;->isAlphanumeric()Z
+HSPLcom/android/internal/telephony/gsm/SmsMessage$PduParser;-><init>([B)V
+HSPLcom/android/internal/telephony/gsm/SmsMessage$PduParser;->constructUserData(ZZ)I
+HSPLcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getAddress()Lcom/android/internal/telephony/gsm/GsmSmsAddress;
+HSPLcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getByte()I
+HSPLcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getSCAddress()Ljava/lang/String;
+HSPLcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getSCTimestampMillis()J
+HSPLcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getUserData()[B
+HSPLcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getUserDataGSM7Bit(III)Ljava/lang/String;
+HSPLcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getUserDataHeader()Lcom/android/internal/telephony/SmsHeader;
+HSPLcom/android/internal/telephony/gsm/SmsMessage;-><init>()V
+HSPLcom/android/internal/telephony/gsm/SmsMessage;->createFromPdu([B)Lcom/android/internal/telephony/gsm/SmsMessage;
+HSPLcom/android/internal/telephony/gsm/SmsMessage;->parsePdu([B)V
+HSPLcom/android/internal/telephony/gsm/SmsMessage;->parseSmsDeliver(Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;I)V
+HSPLcom/android/internal/telephony/gsm/SmsMessage;->parseUserData(Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;Z)V
+HSPLcom/android/internal/telephony/uicc/IccUtils;->bytesToHexString([B)Ljava/lang/String;
+HSPLcom/android/internal/telephony/uicc/IccUtils;->gsmBcdByteToInt(B)I
 HSPLcom/android/internal/telephony/util/HandlerExecutor;-><init>(Landroid/os/Handler;)V
 HSPLcom/android/internal/telephony/util/HandlerExecutor;->execute(Ljava/lang/Runnable;)V
+HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onClose()V
+HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onGetSentenceSuggestionsMultiple([Landroid/view/textservice/TextInfo;I)V
+HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ISpellCheckerSession;
+HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;-><init>()V
+HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ISpellCheckerSessionListener;
+HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->finishSpellCheckerService(ILcom/android/internal/textservice/ISpellCheckerSessionListener;)V
+HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellChecker(ILjava/lang/String;)Landroid/view/textservice/SpellCheckerInfo;
 HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellCheckerSubtype(IZ)Landroid/view/textservice/SpellCheckerSubtype;
+HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getSpellCheckerService(ILjava/lang/String;Ljava/lang/String;Lcom/android/internal/textservice/ITextServicesSessionListener;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;)V
+HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->isSpellCheckerEnabled(I)Z
+HSPLcom/android/internal/textservice/ITextServicesManager$Stub;-><init>()V
 HSPLcom/android/internal/textservice/ITextServicesManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ITextServicesManager;
+HPLcom/android/internal/textservice/ITextServicesManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/textservice/ITextServicesSessionListener$Stub;-><init>()V
+HSPLcom/android/internal/textservice/ITextServicesSessionListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/textservice/ITextServicesSessionListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$1;-><init>(Landroid/view/View;Landroid/graphics/Rect;)V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$1;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$State;-><init>()V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$State;-><init>(IIF)V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;-><init>()V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;-><init>(Lcom/android/internal/transition/EpicenterTranslateClipReveal$1;)V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;->evaluate(FLcom/android/internal/transition/EpicenterTranslateClipReveal$State;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;)Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateProperty;-><init>(C)V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateProperty;->set(Landroid/view/View;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;)V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal$StateProperty;->set(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->captureEndValues(Landroid/transition/TransitionValues;)V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->captureStartValues(Landroid/transition/TransitionValues;)V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->captureValues(Landroid/transition/TransitionValues;)V
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->createRectAnimator(Landroid/view/View;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;FLcom/android/internal/transition/EpicenterTranslateClipReveal$State;Lcom/android/internal/transition/EpicenterTranslateClipReveal$State;FLandroid/transition/TransitionValues;Landroid/animation/TimeInterpolator;Landroid/animation/TimeInterpolator;Landroid/animation/TimeInterpolator;)Landroid/animation/Animator;
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->getBestRect(Landroid/transition/TransitionValues;)Landroid/graphics/Rect;
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->getEpicenterOrCenter(Landroid/graphics/Rect;)Landroid/graphics/Rect;
+HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;->onAppear(Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;
+HSPLcom/android/internal/transition/TransitionConstants;-><clinit>()V
+HPLcom/android/internal/util/-$$Lambda$FunctionalUtils$koCSI8D7Nu5vOJTVTEj0m3leo_U;-><init>(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/util/function/Consumer;)V
+HPLcom/android/internal/util/-$$Lambda$FunctionalUtils$koCSI8D7Nu5vOJTVTEj0m3leo_U;->run()V
 HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;J)V
+HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;JLjava/lang/String;J)V
+HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;JLjava/lang/String;J)V
 HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/NonNull;Ljava/lang/Object;)V
+HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Ljava/lang/annotation/Annotation;I)V
+HSPLcom/android/internal/util/ArrayUtils;->add(Ljava/util/ArrayList;ILjava/lang/Object;)Ljava/util/ArrayList;
+HSPLcom/android/internal/util/ArrayUtils;->add(Ljava/util/ArrayList;Ljava/lang/Object;)Ljava/util/ArrayList;
 HSPLcom/android/internal/util/ArrayUtils;->appendElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
 HSPLcom/android/internal/util/ArrayUtils;->appendElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;Z)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->appendInt([II)[I
+HSPLcom/android/internal/util/ArrayUtils;->appendInt([IIZ)[I
+HSPLcom/android/internal/util/ArrayUtils;->appendLong([JJZ)[J
 HSPLcom/android/internal/util/ArrayUtils;->checkBounds(II)V
+HSPLcom/android/internal/util/ArrayUtils;->cloneOrNull([Ljava/lang/Object;)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->contains(Ljava/util/Collection;Ljava/lang/Object;)Z
+HSPLcom/android/internal/util/ArrayUtils;->contains([II)Z
 HSPLcom/android/internal/util/ArrayUtils;->contains([Ljava/lang/Object;Ljava/lang/Object;)Z
 HSPLcom/android/internal/util/ArrayUtils;->containsAll([Ljava/lang/Object;[Ljava/lang/Object;)Z
+HSPLcom/android/internal/util/ArrayUtils;->convertToIntArray(Ljava/util/List;)[I
+HSPLcom/android/internal/util/ArrayUtils;->convertToLongArray([I)[J
 HSPLcom/android/internal/util/ArrayUtils;->deepToString(Ljava/lang/Object;)Ljava/lang/String;
+HSPLcom/android/internal/util/ArrayUtils;->defeatNullable([Ljava/io/File;)[Ljava/io/File;
 HSPLcom/android/internal/util/ArrayUtils;->defeatNullable([Ljava/lang/String;)[Ljava/lang/String;
 HSPLcom/android/internal/util/ArrayUtils;->emptyArray(Ljava/lang/Class;)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->emptyIfNull([Ljava/lang/Object;Ljava/lang/Class;)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->filter([Ljava/lang/Object;Ljava/util/function/IntFunction;Ljava/util/function/Predicate;)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->filterNotNull([Ljava/lang/Object;Ljava/util/function/IntFunction;)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->firstOrNull([Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/internal/util/ArrayUtils;->indexOf([Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLcom/android/internal/util/ArrayUtils;->isEmpty(Ljava/util/Collection;)Z
+PLcom/android/internal/util/ArrayUtils;->isEmpty(Ljava/util/Map;)Z
+HSPLcom/android/internal/util/ArrayUtils;->isEmpty([B)Z
+HSPLcom/android/internal/util/ArrayUtils;->isEmpty([I)Z
+HSPLcom/android/internal/util/ArrayUtils;->isEmpty([J)Z
 HSPLcom/android/internal/util/ArrayUtils;->isEmpty([Ljava/lang/Object;)Z
 HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedArray(Ljava/lang/Class;I)[Ljava/lang/Object;
 HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedBooleanArray(I)[Z
@@ -15589,11 +33372,85 @@
 HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedIntArray(I)[I
 HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedLongArray(I)[J
 HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedObjectArray(I)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->referenceEquals(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
+HSPLcom/android/internal/util/ArrayUtils;->remove(Ljava/util/ArrayList;Ljava/lang/Object;)Ljava/util/ArrayList;
+HSPLcom/android/internal/util/ArrayUtils;->removeElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->removeInt([II)[I
+HSPLcom/android/internal/util/ArrayUtils;->size(Ljava/util/Collection;)I
 HSPLcom/android/internal/util/ArrayUtils;->size([Ljava/lang/Object;)I
+HSPLcom/android/internal/util/ArrayUtils;->total([J)J
+HSPLcom/android/internal/util/ArrayUtils;->trimToSize([Ljava/lang/Object;I)[Ljava/lang/Object;
 HSPLcom/android/internal/util/ArrayUtils;->unstableRemoveIf(Ljava/util/ArrayList;Ljava/util/function/Predicate;)I
+HSPLcom/android/internal/util/AsyncChannel$DeathMonitor;-><init>(Lcom/android/internal/util/AsyncChannel;)V
+HSPLcom/android/internal/util/AsyncChannel;-><init>()V
+HSPLcom/android/internal/util/AsyncChannel;->connect(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
+HSPLcom/android/internal/util/AsyncChannel;->connected(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
+HPLcom/android/internal/util/AsyncChannel;->disconnect()V
+HSPLcom/android/internal/util/AsyncChannel;->linkToDeathMonitor()Z
+HPLcom/android/internal/util/AsyncChannel;->replyDisconnected(I)V
+HSPLcom/android/internal/util/AsyncChannel;->replyHalfConnected(I)V
+HSPLcom/android/internal/util/AsyncChannel;->replyToMessage(Landroid/os/Message;II)V
+HSPLcom/android/internal/util/AsyncChannel;->replyToMessage(Landroid/os/Message;Landroid/os/Message;)V
+HSPLcom/android/internal/util/AsyncChannel;->sendMessage(I)V
+HSPLcom/android/internal/util/AsyncChannel;->sendMessage(IIILjava/lang/Object;)V
+HSPLcom/android/internal/util/AsyncChannel;->sendMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/util/BitUtils;->bitAt(I)J
+HSPLcom/android/internal/util/BitUtils;->isBitSet(JI)Z
+HSPLcom/android/internal/util/BitUtils;->packBits([I)J
+HSPLcom/android/internal/util/BitUtils;->toBytes(J)[B
+HSPLcom/android/internal/util/BitUtils;->uint8(B)I
 HSPLcom/android/internal/util/BitUtils;->unpackBits(J)[I
+HSPLcom/android/internal/util/CollectionUtils;->emptyIfNull(Ljava/util/List;)Ljava/util/List;
+HSPLcom/android/internal/util/CollectionUtils;->firstOrNull(Ljava/util/Collection;)Ljava/lang/Object;
+HSPLcom/android/internal/util/CollectionUtils;->firstOrNull(Ljava/util/List;)Ljava/lang/Object;
+HSPLcom/android/internal/util/CollectionUtils;->isEmpty(Ljava/util/Collection;)Z
+HPLcom/android/internal/util/CollectionUtils;->map(Ljava/util/Set;Ljava/util/function/Function;)Ljava/util/Set;
+HSPLcom/android/internal/util/CollectionUtils;->size(Ljava/util/Collection;)I
+PLcom/android/internal/util/CollectionUtils;->size(Ljava/util/Map;)I
+HSPLcom/android/internal/util/ConcurrentUtils$1$1;-><init>(Lcom/android/internal/util/ConcurrentUtils$1;Ljava/lang/String;Ljava/lang/Runnable;)V
+HSPLcom/android/internal/util/ConcurrentUtils$1$1;->run()V
+HSPLcom/android/internal/util/ConcurrentUtils$1;-><init>(Ljava/lang/String;I)V
+HSPLcom/android/internal/util/ConcurrentUtils$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
+HSPLcom/android/internal/util/ConcurrentUtils$DirectExecutor;->execute(Ljava/lang/Runnable;)V
+HSPLcom/android/internal/util/ConcurrentUtils;->newFixedThreadPool(ILjava/lang/String;I)Ljava/util/concurrent/ExecutorService;
+HSPLcom/android/internal/util/ConcurrentUtils;->waitForCountDownNoInterrupt(Ljava/util/concurrent/CountDownLatch;JLjava/lang/String;)V
+HSPLcom/android/internal/util/ConcurrentUtils;->waitForFutureNoInterrupt(Ljava/util/concurrent/Future;Ljava/lang/String;)Ljava/lang/Object;
+HSPLcom/android/internal/util/ConcurrentUtils;->wtfIfLockHeld(Ljava/lang/String;Ljava/lang/Object;)V
+HSPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->LABToXYZ(DDD[D)V
+HSPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->RGBToXYZ(III[D)V
+HSPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->XYZToColor(DDD)I
+HSPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->XYZToLAB(DDD[D)V
+HSPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->calculateContrast(II)D
+HSPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->calculateLuminance(I)D
+HSPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->colorToXYZ(I[D)V
+HSPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->compositeAlpha(II)I
+HSPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->compositeColors(II)I
+HSPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->compositeComponent(IIIII)I
+HSPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->constrain(III)I
+HSPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->getTempDouble3Array()[D
+HSPLcom/android/internal/util/ContrastColorUtil;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/util/ContrastColorUtil;->calculateContrast(II)D
+HSPLcom/android/internal/util/ContrastColorUtil;->clearColorSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLcom/android/internal/util/ContrastColorUtil;->compositeColors(II)I
+HSPLcom/android/internal/util/ContrastColorUtil;->ensureContrast(IIZD)I
+HSPLcom/android/internal/util/ContrastColorUtil;->ensureTextContrast(IIZ)I
+HSPLcom/android/internal/util/ContrastColorUtil;->findContrastColor(IIZD)I
+HSPLcom/android/internal/util/ContrastColorUtil;->getInstance(Landroid/content/Context;)Lcom/android/internal/util/ContrastColorUtil;
+HSPLcom/android/internal/util/ContrastColorUtil;->resolveColor(Landroid/content/Context;IZ)I
+HSPLcom/android/internal/util/ContrastColorUtil;->resolveContrastColor(Landroid/content/Context;IIZ)I
+HSPLcom/android/internal/util/ContrastColorUtil;->resolveDefaultColor(Landroid/content/Context;IZ)I
+HSPLcom/android/internal/util/ContrastColorUtil;->resolvePrimaryColor(Landroid/content/Context;IZ)I
+HSPLcom/android/internal/util/ContrastColorUtil;->resolveSecondaryColor(Landroid/content/Context;IZ)I
+HSPLcom/android/internal/util/ContrastColorUtil;->satisfiesTextContrast(II)Z
+HSPLcom/android/internal/util/ContrastColorUtil;->shouldUseDark(IZ)Z
+HPLcom/android/internal/util/DumpUtils;->checkDumpAndUsageStatsPermission(Landroid/content/Context;Ljava/lang/String;Ljava/io/PrintWriter;)Z
+HPLcom/android/internal/util/DumpUtils;->checkDumpPermission(Landroid/content/Context;Ljava/lang/String;Ljava/io/PrintWriter;)Z
+HPLcom/android/internal/util/DumpUtils;->checkUsageStatsPermission(Landroid/content/Context;Ljava/lang/String;Ljava/io/PrintWriter;)Z
+HPLcom/android/internal/util/DumpUtils;->filterRecord(Ljava/lang/String;)Ljava/util/function/Predicate;
+HSPLcom/android/internal/util/EmergencyAffordanceManager;-><init>(Landroid/content/Context;)V
 HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;-><init>(I)V
 HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;->add(I)V
+HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;->log(Ljava/lang/String;Ljava/lang/CharSequence;)V
 HSPLcom/android/internal/util/FastMath;->round(F)I
 HSPLcom/android/internal/util/FastPrintWriter$DummyWriter;-><init>()V
 HSPLcom/android/internal/util/FastPrintWriter$DummyWriter;-><init>(Lcom/android/internal/util/FastPrintWriter$1;)V
@@ -15602,6 +33459,8 @@
 HSPLcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/Writer;ZI)V
 HSPLcom/android/internal/util/FastPrintWriter;->appendLocked(C)V
 HSPLcom/android/internal/util/FastPrintWriter;->appendLocked(Ljava/lang/String;II)V
+HSPLcom/android/internal/util/FastPrintWriter;->appendLocked([CII)V
+PLcom/android/internal/util/FastPrintWriter;->checkError()Z
 HSPLcom/android/internal/util/FastPrintWriter;->close()V
 HSPLcom/android/internal/util/FastPrintWriter;->flush()V
 HSPLcom/android/internal/util/FastPrintWriter;->flushBytesLocked()V
@@ -15612,8 +33471,12 @@
 HSPLcom/android/internal/util/FastPrintWriter;->print(J)V
 HSPLcom/android/internal/util/FastPrintWriter;->print(Ljava/lang/String;)V
 HSPLcom/android/internal/util/FastPrintWriter;->println()V
+HSPLcom/android/internal/util/FastPrintWriter;->println(C)V
+HSPLcom/android/internal/util/FastPrintWriter;->println(I)V
+HPLcom/android/internal/util/FastPrintWriter;->println(J)V
 HSPLcom/android/internal/util/FastPrintWriter;->write(I)V
 HSPLcom/android/internal/util/FastPrintWriter;->write(Ljava/lang/String;)V
+HSPLcom/android/internal/util/FastPrintWriter;->write([CII)V
 HSPLcom/android/internal/util/FastXmlSerializer;-><init>()V
 HSPLcom/android/internal/util/FastXmlSerializer;-><init>(I)V
 HSPLcom/android/internal/util/FastXmlSerializer;->append(C)V
@@ -15631,10 +33494,30 @@
 HSPLcom/android/internal/util/FastXmlSerializer;->startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V
 HSPLcom/android/internal/util/FastXmlSerializer;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
 HSPLcom/android/internal/util/FastXmlSerializer;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
+HSPLcom/android/internal/util/FileRotator$FileInfo;-><init>(Ljava/lang/String;)V
+HPLcom/android/internal/util/FileRotator$FileInfo;->isActive()Z
+HSPLcom/android/internal/util/FileRotator$FileInfo;->parse(Ljava/lang/String;)Z
+HSPLcom/android/internal/util/FileRotator;-><init>(Ljava/io/File;Ljava/lang/String;JJ)V
+HPLcom/android/internal/util/FileRotator;->getActiveName(J)Ljava/lang/String;
+HPLcom/android/internal/util/FileRotator;->maybeRotate(J)V
+HSPLcom/android/internal/util/FileRotator;->readFile(Ljava/io/File;Lcom/android/internal/util/FileRotator$Reader;)V
+HSPLcom/android/internal/util/FileRotator;->readMatching(Lcom/android/internal/util/FileRotator$Reader;JJ)V
+HPLcom/android/internal/util/FileRotator;->rewriteActive(Lcom/android/internal/util/FileRotator$Rewriter;J)V
+HPLcom/android/internal/util/FileRotator;->rewriteSingle(Lcom/android/internal/util/FileRotator$Rewriter;Ljava/lang/String;)V
+HPLcom/android/internal/util/FileRotator;->writeFile(Ljava/io/File;Lcom/android/internal/util/FileRotator$Writer;)V
 HSPLcom/android/internal/util/FrameworkStatsLog;->write(IIJII)V
+HSPLcom/android/internal/util/FrameworkStatsLog;->write(IILandroid/util/SparseArray;)V
 HSPLcom/android/internal/util/FrameworkStatsLog;->write(IILjava/lang/String;IZ)V
 HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;I)V
 HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;IIF)V
+HSPLcom/android/internal/util/FunctionalUtils$RemoteExceptionIgnoringConsumer;->accept(Ljava/lang/Object;)V
+HSPLcom/android/internal/util/FunctionalUtils$ThrowingConsumer;->accept(Ljava/lang/Object;)V
+HPLcom/android/internal/util/FunctionalUtils$ThrowingRunnable;->run()V
+HPLcom/android/internal/util/FunctionalUtils;->handleExceptions(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/util/function/Consumer;)Ljava/lang/Runnable;
+HSPLcom/android/internal/util/FunctionalUtils;->ignoreRemoteException(Lcom/android/internal/util/FunctionalUtils$RemoteExceptionIgnoringConsumer;)Ljava/util/function/Consumer;
+HPLcom/android/internal/util/FunctionalUtils;->lambda$handleExceptions$0(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/util/function/Consumer;)V
+HSPLcom/android/internal/util/FunctionalUtils;->uncheckExceptions(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;)Ljava/util/function/Consumer;
+HSPLcom/android/internal/util/GrowingArrayUtils;->append([FIF)[F
 HSPLcom/android/internal/util/GrowingArrayUtils;->append([III)[I
 HSPLcom/android/internal/util/GrowingArrayUtils;->append([JIJ)[J
 HSPLcom/android/internal/util/GrowingArrayUtils;->append([Ljava/lang/Object;ILjava/lang/Object;)[Ljava/lang/Object;
@@ -15644,8 +33527,36 @@
 HSPLcom/android/internal/util/GrowingArrayUtils;->insert([JIIJ)[J
 HSPLcom/android/internal/util/GrowingArrayUtils;->insert([Ljava/lang/Object;IILjava/lang/Object;)[Ljava/lang/Object;
 HSPLcom/android/internal/util/GrowingArrayUtils;->insert([ZIIZ)[Z
+HSPLcom/android/internal/util/HexDump;->hexStringToByteArray(Ljava/lang/String;)[B
+HSPLcom/android/internal/util/HexDump;->toByte(C)I
+HSPLcom/android/internal/util/HexDump;->toHexString([B)Ljava/lang/String;
+HSPLcom/android/internal/util/HexDump;->toHexString([BIIZ)Ljava/lang/String;
+HSPLcom/android/internal/util/ImageUtils;-><init>()V
+HSPLcom/android/internal/util/IndentingPrintWriter;-><init>(Ljava/io/Writer;Ljava/lang/String;)V
+HSPLcom/android/internal/util/IndentingPrintWriter;-><init>(Ljava/io/Writer;Ljava/lang/String;I)V
+HSPLcom/android/internal/util/IndentingPrintWriter;->decreaseIndent()Lcom/android/internal/util/IndentingPrintWriter;
+HSPLcom/android/internal/util/IndentingPrintWriter;->increaseIndent()Lcom/android/internal/util/IndentingPrintWriter;
+HSPLcom/android/internal/util/IndentingPrintWriter;->maybeWriteIndent()V
+HPLcom/android/internal/util/IndentingPrintWriter;->printHexPair(Ljava/lang/String;I)Lcom/android/internal/util/IndentingPrintWriter;
+HSPLcom/android/internal/util/IndentingPrintWriter;->printPair(Ljava/lang/String;Ljava/lang/Object;)Lcom/android/internal/util/IndentingPrintWriter;
+HPLcom/android/internal/util/IndentingPrintWriter;->printPair(Ljava/lang/String;[Ljava/lang/Object;)Lcom/android/internal/util/IndentingPrintWriter;
+HSPLcom/android/internal/util/IndentingPrintWriter;->println()V
+HSPLcom/android/internal/util/IndentingPrintWriter;->write(I)V
+HSPLcom/android/internal/util/IndentingPrintWriter;->write(Ljava/lang/String;II)V
+HSPLcom/android/internal/util/IndentingPrintWriter;->write([CII)V
 HSPLcom/android/internal/util/IntPair;->first(J)I
+HSPLcom/android/internal/util/IntPair;->of(II)J
 HSPLcom/android/internal/util/IntPair;->second(J)I
+HSPLcom/android/internal/util/JournaledFile;-><init>(Ljava/io/File;Ljava/io/File;)V
+HSPLcom/android/internal/util/JournaledFile;->chooseForRead()Ljava/io/File;
+HSPLcom/android/internal/util/JournaledFile;->chooseForWrite()Ljava/io/File;
+HSPLcom/android/internal/util/JournaledFile;->commit()V
+HSPLcom/android/internal/util/LatencyTracker$1;-><init>(Lcom/android/internal/util/LatencyTracker;)V
+HSPLcom/android/internal/util/LatencyTracker;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/util/LatencyTracker;->getInstance(Landroid/content/Context;)Lcom/android/internal/util/LatencyTracker;
+HSPLcom/android/internal/util/LatencyTracker;->isEnabled()Z
+HSPLcom/android/internal/util/LatencyTracker;->isEnabled(Landroid/content/Context;)Z
+HSPLcom/android/internal/util/LatencyTracker;->reloadProperty()V
 HSPLcom/android/internal/util/LineBreakBufferedWriter;-><init>(Ljava/io/Writer;I)V
 HSPLcom/android/internal/util/LineBreakBufferedWriter;-><init>(Ljava/io/Writer;II)V
 HSPLcom/android/internal/util/LineBreakBufferedWriter;->appendToBuffer(Ljava/lang/String;II)V
@@ -15654,14 +33565,43 @@
 HSPLcom/android/internal/util/LineBreakBufferedWriter;->println()V
 HSPLcom/android/internal/util/LineBreakBufferedWriter;->write(Ljava/lang/String;II)V
 HSPLcom/android/internal/util/LineBreakBufferedWriter;->writeBuffer(I)V
+HSPLcom/android/internal/util/LocalLog;-><init>(Ljava/lang/String;)V
 HSPLcom/android/internal/util/MemInfoReader;-><init>()V
+HSPLcom/android/internal/util/MemInfoReader;->getCachedSizeKb()J
+HSPLcom/android/internal/util/MemInfoReader;->getFreeSizeKb()J
+HSPLcom/android/internal/util/MemInfoReader;->getKernelUsedSizeKb()J
 HSPLcom/android/internal/util/MemInfoReader;->getTotalSize()J
+HSPLcom/android/internal/util/MemInfoReader;->getZramTotalSizeKb()J
 HSPLcom/android/internal/util/MemInfoReader;->readMemInfo()V
+HSPLcom/android/internal/util/MessageUtils;->findMessageNames([Ljava/lang/Class;)Landroid/util/SparseArray;
+HSPLcom/android/internal/util/MessageUtils;->findMessageNames([Ljava/lang/Class;[Ljava/lang/String;)Landroid/util/SparseArray;
+HSPLcom/android/internal/util/NotificationMessagingUtil$1;-><init>(Lcom/android/internal/util/NotificationMessagingUtil;Landroid/os/Handler;)V
+HSPLcom/android/internal/util/NotificationMessagingUtil;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/util/NotificationMessagingUtil;->cacheDefaultSmsApp(I)V
+HSPLcom/android/internal/util/NotificationMessagingUtil;->hasMessagingStyle(Landroid/service/notification/StatusBarNotification;)Z
+HSPLcom/android/internal/util/NotificationMessagingUtil;->isCategoryMessage(Landroid/service/notification/StatusBarNotification;)Z
+HSPLcom/android/internal/util/NotificationMessagingUtil;->isDefaultMessagingApp(Landroid/service/notification/StatusBarNotification;)Z
+HSPLcom/android/internal/util/NotificationMessagingUtil;->isImportantMessaging(Landroid/service/notification/StatusBarNotification;I)Z
+HSPLcom/android/internal/util/ObjectUtils;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I
+HSPLcom/android/internal/util/Parcelling$Cache;-><clinit>()V
+HSPLcom/android/internal/util/Parcelling$Cache;->get(Ljava/lang/Class;)Lcom/android/internal/util/Parcelling;
+HSPLcom/android/internal/util/Parcelling$Cache;->put(Lcom/android/internal/util/Parcelling;)Lcom/android/internal/util/Parcelling;
+HSPLcom/android/internal/util/ParseUtils;->parseInt(Ljava/lang/String;I)I
+HSPLcom/android/internal/util/ParseUtils;->parseIntWithBase(Ljava/lang/String;II)I
 HSPLcom/android/internal/util/Preconditions;->checkArgument(Z)V
 HSPLcom/android/internal/util/Preconditions;->checkArgument(ZLjava/lang/Object;)V
+HSPLcom/android/internal/util/Preconditions;->checkArgument(ZLjava/lang/String;[Ljava/lang/Object;)V
 HSPLcom/android/internal/util/Preconditions;->checkArgumentInRange(IIILjava/lang/String;)I
+HSPLcom/android/internal/util/Preconditions;->checkArgumentInRange(JJJLjava/lang/String;)J
+HSPLcom/android/internal/util/Preconditions;->checkArgumentNonNegative(FLjava/lang/String;)F
 HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(I)I
 HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(ILjava/lang/String;)I
+HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(J)J
+HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(JLjava/lang/String;)J
+HSPLcom/android/internal/util/Preconditions;->checkArgumentPositive(ILjava/lang/String;)I
+HSPLcom/android/internal/util/Preconditions;->checkArrayElementsInRange([FFFLjava/lang/String;)[F
+HSPLcom/android/internal/util/Preconditions;->checkArrayElementsInRange([IIILjava/lang/String;)[I
+HSPLcom/android/internal/util/Preconditions;->checkArrayElementsNotNull([Ljava/lang/Object;Ljava/lang/String;)[Ljava/lang/Object;
 HSPLcom/android/internal/util/Preconditions;->checkCollectionElementsNotNull(Ljava/util/Collection;Ljava/lang/String;)Ljava/util/Collection;
 HSPLcom/android/internal/util/Preconditions;->checkFlagsArgument(II)I
 HSPLcom/android/internal/util/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
@@ -15670,113 +33610,786 @@
 HSPLcom/android/internal/util/Preconditions;->checkState(ZLjava/lang/String;)V
 HSPLcom/android/internal/util/Preconditions;->checkStringNotEmpty(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
 HSPLcom/android/internal/util/Preconditions;->checkStringNotEmpty(Ljava/lang/CharSequence;Ljava/lang/Object;)Ljava/lang/CharSequence;
+HSPLcom/android/internal/util/ProgressReporter;-><init>(I)V
+HSPLcom/android/internal/util/ProgressReporter;->addListener(Landroid/os/IProgressListener;)V
+PLcom/android/internal/util/ProgressReporter;->finish()V
+PLcom/android/internal/util/ProgressReporter;->notifyFinished(ILandroid/os/Bundle;)V
+PLcom/android/internal/util/ProgressReporter;->notifyProgress(IILandroid/os/Bundle;)V
+PLcom/android/internal/util/ProgressReporter;->notifyStarted(ILandroid/os/Bundle;)V
+PLcom/android/internal/util/ProgressReporter;->setProgress(I)V
+PLcom/android/internal/util/ProgressReporter;->setProgress(IILjava/lang/CharSequence;)V
+PLcom/android/internal/util/ProgressReporter;->setProgress(ILjava/lang/CharSequence;)V
+PLcom/android/internal/util/ProgressReporter;->start()V
+HSPLcom/android/internal/util/RingBuffer;-><init>(Ljava/lang/Class;I)V
+HSPLcom/android/internal/util/RingBuffer;->append(Ljava/lang/Object;)V
+HSPLcom/android/internal/util/RingBuffer;->clear()V
+HSPLcom/android/internal/util/RingBuffer;->createNewItem()Ljava/lang/Object;
+HSPLcom/android/internal/util/RingBuffer;->getNextSlot()Ljava/lang/Object;
+HSPLcom/android/internal/util/RingBuffer;->indexOf(J)I
+HSPLcom/android/internal/util/RingBuffer;->size()I
+HSPLcom/android/internal/util/RingBufferIndices;-><init>(I)V
+HPLcom/android/internal/util/RingBufferIndices;->add()I
+HSPLcom/android/internal/util/ScreenshotHelper;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/util/StatLogger;-><init>([Ljava/lang/String;)V
 HSPLcom/android/internal/util/StatLogger;->getTime()J
 HSPLcom/android/internal/util/StatLogger;->logDurationStat(IJ)J
+HSPLcom/android/internal/util/State;-><init>()V
+HSPLcom/android/internal/util/State;->enter()V
+HSPLcom/android/internal/util/StateMachine$LogRec;-><init>(Lcom/android/internal/util/StateMachine;Landroid/os/Message;Ljava/lang/String;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;)V
+HSPLcom/android/internal/util/StateMachine$LogRec;->update(Lcom/android/internal/util/StateMachine;Landroid/os/Message;Ljava/lang/String;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;)V
+HSPLcom/android/internal/util/StateMachine$LogRecords;-><init>()V
+HSPLcom/android/internal/util/StateMachine$LogRecords;-><init>(Lcom/android/internal/util/StateMachine$1;)V
+HSPLcom/android/internal/util/StateMachine$LogRecords;->add(Lcom/android/internal/util/StateMachine;Landroid/os/Message;Ljava/lang/String;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;)V
+HSPLcom/android/internal/util/StateMachine$LogRecords;->logOnlyTransitions()Z
+HSPLcom/android/internal/util/StateMachine$LogRecords;->setSize(I)V
+HSPLcom/android/internal/util/StateMachine$SmHandler$HaltingState;-><init>(Lcom/android/internal/util/StateMachine$SmHandler;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler$HaltingState;-><init>(Lcom/android/internal/util/StateMachine$SmHandler;Lcom/android/internal/util/StateMachine$1;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler$QuittingState;-><init>(Lcom/android/internal/util/StateMachine$SmHandler;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler$QuittingState;-><init>(Lcom/android/internal/util/StateMachine$SmHandler;Lcom/android/internal/util/StateMachine$1;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler$StateInfo;-><init>(Lcom/android/internal/util/StateMachine$SmHandler;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler$StateInfo;-><init>(Lcom/android/internal/util/StateMachine$SmHandler;Lcom/android/internal/util/StateMachine$1;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler;-><init>(Landroid/os/Looper;Lcom/android/internal/util/StateMachine;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler;-><init>(Landroid/os/Looper;Lcom/android/internal/util/StateMachine;Lcom/android/internal/util/StateMachine$1;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler;->access$1100(Lcom/android/internal/util/StateMachine$SmHandler;Lcom/android/internal/util/State;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler;->access$1300(Lcom/android/internal/util/StateMachine$SmHandler;)Lcom/android/internal/util/IState;
+HSPLcom/android/internal/util/StateMachine$SmHandler;->access$1800(Lcom/android/internal/util/StateMachine$SmHandler;)Lcom/android/internal/util/StateMachine$LogRecords;
+HSPLcom/android/internal/util/StateMachine$SmHandler;->access$3000(Lcom/android/internal/util/StateMachine$SmHandler;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler;->access$900(Lcom/android/internal/util/StateMachine$SmHandler;Lcom/android/internal/util/State;Lcom/android/internal/util/State;)Lcom/android/internal/util/StateMachine$SmHandler$StateInfo;
+HSPLcom/android/internal/util/StateMachine$SmHandler;->addState(Lcom/android/internal/util/State;Lcom/android/internal/util/State;)Lcom/android/internal/util/StateMachine$SmHandler$StateInfo;
+HSPLcom/android/internal/util/StateMachine$SmHandler;->completeConstruction()V
+HSPLcom/android/internal/util/StateMachine$SmHandler;->getCurrentState()Lcom/android/internal/util/IState;
+HSPLcom/android/internal/util/StateMachine$SmHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler;->invokeEnterMethods(I)V
+HSPLcom/android/internal/util/StateMachine$SmHandler;->isQuit(Landroid/os/Message;)Z
+HSPLcom/android/internal/util/StateMachine$SmHandler;->moveTempStateStackToStateStack()I
+HSPLcom/android/internal/util/StateMachine$SmHandler;->performTransitions(Lcom/android/internal/util/State;Landroid/os/Message;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler;->processMsg(Landroid/os/Message;)Lcom/android/internal/util/State;
+HSPLcom/android/internal/util/StateMachine$SmHandler;->setInitialState(Lcom/android/internal/util/State;)V
+HSPLcom/android/internal/util/StateMachine$SmHandler;->setupInitialStateStack()V
+HSPLcom/android/internal/util/StateMachine;-><init>(Ljava/lang/String;)V
+HSPLcom/android/internal/util/StateMachine;-><init>(Ljava/lang/String;Landroid/os/Handler;)V
+HSPLcom/android/internal/util/StateMachine;-><init>(Ljava/lang/String;Landroid/os/Looper;)V
+HSPLcom/android/internal/util/StateMachine;->addState(Lcom/android/internal/util/State;)V
+HSPLcom/android/internal/util/StateMachine;->addState(Lcom/android/internal/util/State;Lcom/android/internal/util/State;)V
+HSPLcom/android/internal/util/StateMachine;->getCurrentState()Lcom/android/internal/util/IState;
+HSPLcom/android/internal/util/StateMachine;->getHandler()Landroid/os/Handler;
+HSPLcom/android/internal/util/StateMachine;->getLogRecString(Landroid/os/Message;)Ljava/lang/String;
+HSPLcom/android/internal/util/StateMachine;->getName()Ljava/lang/String;
+HSPLcom/android/internal/util/StateMachine;->initStateMachine(Ljava/lang/String;Landroid/os/Looper;)V
+HSPLcom/android/internal/util/StateMachine;->obtainMessage(I)Landroid/os/Message;
+HSPLcom/android/internal/util/StateMachine;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/util/StateMachine;->onPostHandleMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/util/StateMachine;->onPreHandleMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/util/StateMachine;->recordLogRec(Landroid/os/Message;)Z
+HSPLcom/android/internal/util/StateMachine;->sendMessage(ILjava/lang/Object;)V
+HSPLcom/android/internal/util/StateMachine;->setInitialState(Lcom/android/internal/util/State;)V
+HSPLcom/android/internal/util/StateMachine;->setLogRecSize(I)V
+HSPLcom/android/internal/util/StateMachine;->start()V
 HSPLcom/android/internal/util/SyncResultReceiver;-><init>(I)V
 HSPLcom/android/internal/util/SyncResultReceiver;->getIntResult()I
+HSPLcom/android/internal/util/SyncResultReceiver;->getOptionalExtraIntResult(I)I
+HSPLcom/android/internal/util/SyncResultReceiver;->getParcelableResult()Landroid/os/Parcelable;
 HSPLcom/android/internal/util/SyncResultReceiver;->send(ILandroid/os/Bundle;)V
 HSPLcom/android/internal/util/SyncResultReceiver;->waitResult()V
+HSPLcom/android/internal/util/TokenBucket;-><init>(II)V
+HSPLcom/android/internal/util/TokenBucket;-><init>(III)V
+HPLcom/android/internal/util/TokenBucket;->fill()V
+HPLcom/android/internal/util/TokenBucket;->get()Z
+HPLcom/android/internal/util/TokenBucket;->get(I)I
+HSPLcom/android/internal/util/TokenBucket;->scaledTime()J
+HSPLcom/android/internal/util/TraceBuffer;-><init>(ILcom/android/internal/util/TraceBuffer$ProtoProvider;Ljava/util/function/Consumer;)V
+HSPLcom/android/internal/util/TraceBuffer;->resetBuffer()V
 HSPLcom/android/internal/util/VirtualRefBasePtr;-><init>(J)V
 HSPLcom/android/internal/util/VirtualRefBasePtr;->finalize()V
 HSPLcom/android/internal/util/VirtualRefBasePtr;->get()J
 HSPLcom/android/internal/util/VirtualRefBasePtr;->release()V
 HSPLcom/android/internal/util/XmlUtils;->beginDocument(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V
+HSPLcom/android/internal/util/XmlUtils;->convertValueToBoolean(Ljava/lang/CharSequence;Z)Z
+HSPLcom/android/internal/util/XmlUtils;->convertValueToInt(Ljava/lang/CharSequence;I)I
+HSPLcom/android/internal/util/XmlUtils;->nextElement(Lorg/xmlpull/v1/XmlPullParser;)V
 HSPLcom/android/internal/util/XmlUtils;->nextElementWithin(Lorg/xmlpull/v1/XmlPullParser;I)Z
+HSPLcom/android/internal/util/XmlUtils;->readBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Z
+HSPLcom/android/internal/util/XmlUtils;->readBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+HSPLcom/android/internal/util/XmlUtils;->readIntAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)I
+HSPLcom/android/internal/util/XmlUtils;->readIntAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+HSPLcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)J
+HSPLcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J
 HSPLcom/android/internal/util/XmlUtils;->readMapXml(Ljava/io/InputStream;)Ljava/util/HashMap;
+HSPLcom/android/internal/util/XmlUtils;->readStringAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/util/XmlUtils;->readThisArrayMapXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;)Landroid/util/ArrayMap;
 HSPLcom/android/internal/util/XmlUtils;->readThisMapXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;)Ljava/util/HashMap;
 HSPLcom/android/internal/util/XmlUtils;->readThisPrimitiveValueXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/Object;
 HSPLcom/android/internal/util/XmlUtils;->readThisSetXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;Z)Ljava/util/HashSet;
+HSPLcom/android/internal/util/XmlUtils;->readThisStringArrayXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
 HSPLcom/android/internal/util/XmlUtils;->readThisValueXml(Lorg/xmlpull/v1/XmlPullParser;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;Z)Ljava/lang/Object;
 HSPLcom/android/internal/util/XmlUtils;->readValueXml(Lorg/xmlpull/v1/XmlPullParser;[Ljava/lang/String;)Ljava/lang/Object;
 HSPLcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/internal/util/XmlUtils;->writeBooleanAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Z)V
+HSPLcom/android/internal/util/XmlUtils;->writeIntArrayXml([ILjava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/internal/util/XmlUtils;->writeIntAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;I)V
+HSPLcom/android/internal/util/XmlUtils;->writeLongAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;J)V
 HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/io/OutputStream;)V
 HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V
 HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V
 HSPLcom/android/internal/util/XmlUtils;->writeSetXml(Ljava/util/Set;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/internal/util/XmlUtils;->writeStringArrayXml([Ljava/lang/String;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/internal/util/XmlUtils;->writeStringAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Ljava/lang/CharSequence;)V
+HSPLcom/android/internal/util/XmlUtils;->writeUriAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Landroid/net/Uri;)V
 HSPLcom/android/internal/util/XmlUtils;->writeValueXml(Ljava/lang/Object;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLcom/android/internal/util/XmlUtils;->writeValueXml(Ljava/lang/Object;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V
 HSPLcom/android/internal/util/function/pooled/OmniFunction;-><init>()V
+HSPLcom/android/internal/util/function/pooled/OmniFunction;->accept(Ljava/lang/Object;)V
+HSPLcom/android/internal/util/function/pooled/OmniFunction;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/internal/util/function/pooled/OmniFunction;->run()V
+HSPLcom/android/internal/util/function/pooled/OmniFunction;->test(Ljava/lang/Object;)Z
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->__()Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->__(Ljava/lang/Class;)Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainConsumer(Lcom/android/internal/util/function/QuadConsumer;Ljava/lang/Object;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledConsumer;
+HPLcom/android/internal/util/function/pooled/PooledLambda;->obtainConsumer(Lcom/android/internal/util/function/TriConsumer;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledConsumer;
+HPLcom/android/internal/util/function/pooled/PooledLambda;->obtainConsumer(Ljava/util/function/BiConsumer;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledConsumer;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainConsumer(Ljava/util/function/BiConsumer;Ljava/lang/Object;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;)Lcom/android/internal/util/function/pooled/PooledConsumer;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainFunction(Lcom/android/internal/util/function/QuadFunction;Ljava/lang/Object;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledFunction;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainFunction(Lcom/android/internal/util/function/TriFunction;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledFunction;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainFunction(Lcom/android/internal/util/function/TriFunction;Ljava/lang/Object;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledFunction;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainFunction(Ljava/util/function/BiFunction;Ljava/lang/Object;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;)Lcom/android/internal/util/function/pooled/PooledFunction;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/HeptConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/HexConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/QuadConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/QuintConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/TriConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
 HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Ljava/util/function/BiConsumer;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
 HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Ljava/util/function/Consumer;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainPredicate(Ljava/util/function/BiPredicate;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledPredicate;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainRunnable(Lcom/android/internal/util/function/QuadConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledRunnable;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainRunnable(Lcom/android/internal/util/function/TriConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledRunnable;
 HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainRunnable(Ljava/util/function/BiConsumer;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledRunnable;
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->decodeArgCount(I)I
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->decodeReturnType(I)I
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->encode(II)I
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->toString(I)Ljava/lang/String;
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;-><init>()V
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->access$000(II)I
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->access$100(II)I
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->acquire(Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;)Lcom/android/internal/util/function/pooled/PooledLambdaImpl;
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->acquire(Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;Ljava/lang/Object;IIILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledLambda;
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->checkNotRecycled()V
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->commaSeparateFirstN([Ljava/lang/Object;I)Ljava/lang/String;
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->doInvoke()Ljava/lang/Object;
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->doRecycle()V
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->fillInArg(Ljava/lang/Object;)Z
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->getFlags(I)I
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->getFuncTypeAsString()Ljava/lang/String;
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->hashCodeHex(Ljava/lang/Object;)Ljava/lang/String;
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->isConstSupplier()Z
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->isInvocationArgAtIndex(I)Z
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->isRecycleOnUse()Z
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->isRecycled()Z
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->mask(II)I
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->popArg(I)Ljava/lang/Object;
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->recycle()V
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->recycleOnUse()Lcom/android/internal/util/function/pooled/OmniFunction;
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->recycleOnUse()Lcom/android/internal/util/function/pooled/PooledRunnable;
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->setFlags(II)V
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->setIfInBounds([Ljava/lang/Object;ILjava/lang/Object;)V
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->toString()Ljava/lang/String;
 HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->unmask(II)I
+HSPLcom/android/internal/view/-$$Lambda$FloatingActionMode$LU5MpPuKYDtwlFAuYhXYfzgLNLE;-><init>(Lcom/android/internal/view/FloatingActionMode;)V
+HSPLcom/android/internal/view/ActionBarPolicy;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/view/ActionBarPolicy;->get(Landroid/content/Context;)Lcom/android/internal/view/ActionBarPolicy;
+HSPLcom/android/internal/view/ActionBarPolicy;->getEmbeddedMenuWidthLimit()I
+HSPLcom/android/internal/view/ActionBarPolicy;->getMaxActionButtons()I
+HSPLcom/android/internal/view/AppearanceRegion$1;-><init>()V
+HSPLcom/android/internal/view/AppearanceRegion$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/view/AppearanceRegion;
+HSPLcom/android/internal/view/AppearanceRegion$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/view/AppearanceRegion$1;->newArray(I)[Lcom/android/internal/view/AppearanceRegion;
+HSPLcom/android/internal/view/AppearanceRegion$1;->newArray(I)[Ljava/lang/Object;
+HSPLcom/android/internal/view/AppearanceRegion;-><clinit>()V
+HSPLcom/android/internal/view/AppearanceRegion;-><init>(ILandroid/graphics/Rect;)V
+HSPLcom/android/internal/view/AppearanceRegion;-><init>(Landroid/os/Parcel;)V
+HSPLcom/android/internal/view/AppearanceRegion;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/internal/view/AppearanceRegion;->getAppearance()I
+HSPLcom/android/internal/view/AppearanceRegion;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/view/BaseIWindow;-><init>()V
+HSPLcom/android/internal/view/BaseIWindow;->closeSystemDialogs(Ljava/lang/String;)V
+PLcom/android/internal/view/BaseIWindow;->dispatchAppVisibility(Z)V
+HSPLcom/android/internal/view/BaseIWindow;->dispatchWindowShown()V
+HSPLcom/android/internal/view/BaseIWindow;->insetsChanged(Landroid/view/InsetsState;)V
+HSPLcom/android/internal/view/BaseIWindow;->setSession(Landroid/view/IWindowSession;)V
+HSPLcom/android/internal/view/BaseSurfaceHolder;-><init>()V
+HSPLcom/android/internal/view/BaseSurfaceHolder;->getCallbacks()[Landroid/view/SurfaceHolder$Callback;
+HSPLcom/android/internal/view/BaseSurfaceHolder;->getRequestedFormat()I
+HSPLcom/android/internal/view/BaseSurfaceHolder;->getRequestedHeight()I
+HSPLcom/android/internal/view/BaseSurfaceHolder;->getRequestedType()I
+HSPLcom/android/internal/view/BaseSurfaceHolder;->getRequestedWidth()I
+HSPLcom/android/internal/view/BaseSurfaceHolder;->getSurface()Landroid/view/Surface;
+HSPLcom/android/internal/view/BaseSurfaceHolder;->setSizeFromLayout()V
+HSPLcom/android/internal/view/BaseSurfaceHolder;->setSurfaceFrameSize(II)V
+HSPLcom/android/internal/view/BaseSurfaceHolder;->ungetCallbacks()V
+HSPLcom/android/internal/view/FloatingActionMode$1;-><init>(Lcom/android/internal/view/FloatingActionMode;)V
+HSPLcom/android/internal/view/FloatingActionMode$1;->run()V
+HSPLcom/android/internal/view/FloatingActionMode$2;-><init>(Lcom/android/internal/view/FloatingActionMode;)V
+HSPLcom/android/internal/view/FloatingActionMode$3;-><init>(Lcom/android/internal/view/FloatingActionMode;)V
+HSPLcom/android/internal/view/FloatingActionMode$FloatingToolbarVisibilityHelper;-><init>(Lcom/android/internal/widget/FloatingToolbar;)V
+HSPLcom/android/internal/view/FloatingActionMode$FloatingToolbarVisibilityHelper;->activate()V
+HSPLcom/android/internal/view/FloatingActionMode$FloatingToolbarVisibilityHelper;->deactivate()V
+HSPLcom/android/internal/view/FloatingActionMode$FloatingToolbarVisibilityHelper;->setMoving(Z)V
+HSPLcom/android/internal/view/FloatingActionMode$FloatingToolbarVisibilityHelper;->setOutOfBounds(Z)V
+HSPLcom/android/internal/view/FloatingActionMode$FloatingToolbarVisibilityHelper;->updateToolbarVisibility()V
+HSPLcom/android/internal/view/FloatingActionMode;-><init>(Landroid/content/Context;Landroid/view/ActionMode$Callback2;Landroid/view/View;Lcom/android/internal/widget/FloatingToolbar;)V
+HSPLcom/android/internal/view/FloatingActionMode;->access$000(Lcom/android/internal/view/FloatingActionMode;)Z
+HSPLcom/android/internal/view/FloatingActionMode;->access$100(Lcom/android/internal/view/FloatingActionMode;)Lcom/android/internal/view/FloatingActionMode$FloatingToolbarVisibilityHelper;
+HSPLcom/android/internal/view/FloatingActionMode;->finish()V
+HSPLcom/android/internal/view/FloatingActionMode;->getMenu()Landroid/view/Menu;
+HSPLcom/android/internal/view/FloatingActionMode;->intersectsClosed(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
+HSPLcom/android/internal/view/FloatingActionMode;->invalidate()V
+HSPLcom/android/internal/view/FloatingActionMode;->invalidateContentRect()V
+HSPLcom/android/internal/view/FloatingActionMode;->isContentRectWithinBounds()Z
+HSPLcom/android/internal/view/FloatingActionMode;->isViewStillActive()Z
+HSPLcom/android/internal/view/FloatingActionMode;->repositionToolbar()V
+HSPLcom/android/internal/view/FloatingActionMode;->reset()V
+HSPLcom/android/internal/view/FloatingActionMode;->setFloatingToolbar(Lcom/android/internal/widget/FloatingToolbar;)V
+HSPLcom/android/internal/view/FloatingActionMode;->setSubtitle(Ljava/lang/CharSequence;)V
+HSPLcom/android/internal/view/FloatingActionMode;->setTitle(Ljava/lang/CharSequence;)V
+HSPLcom/android/internal/view/FloatingActionMode;->updateViewLocationInWindow()V
 HSPLcom/android/internal/view/IInputConnectionWrapper$MyHandler;-><init>(Lcom/android/internal/view/IInputConnectionWrapper;Landroid/os/Looper;)V
 HSPLcom/android/internal/view/IInputConnectionWrapper$MyHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/internal/view/IInputConnectionWrapper;-><init>(Landroid/os/Looper;Landroid/view/inputmethod/InputConnection;)V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->beginBatchEdit()V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->closeConnection()V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->commitText(Ljava/lang/CharSequence;I)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->deleteSurroundingText(II)V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->dispatchMessage(Landroid/os/Message;)V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->endBatchEdit()V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->executeMessage(Landroid/os/Message;)V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->finishComposingText()V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->getCursorCapsMode(IILcom/android/internal/view/IInputContextCallback;)V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->getInputConnection()Landroid/view/inputmethod/InputConnection;
 HSPLcom/android/internal/view/IInputConnectionWrapper;->getSelectedText(IILcom/android/internal/view/IInputContextCallback;)V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->getTextAfterCursor(IIILcom/android/internal/view/IInputContextCallback;)V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->getTextBeforeCursor(IIILcom/android/internal/view/IInputContextCallback;)V
 HSPLcom/android/internal/view/IInputConnectionWrapper;->isFinished()Z
 HSPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessage(I)Landroid/os/Message;
+HSPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessageII(III)Landroid/os/Message;
 HSPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessageIISC(IIIILcom/android/internal/view/IInputContextCallback;)Landroid/os/Message;
+HSPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessageIO(IILjava/lang/Object;)Landroid/os/Message;
 HSPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessageISC(IIILcom/android/internal/view/IInputContextCallback;)Landroid/os/Message;
+HSPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessageO(ILjava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/view/IInputConnectionWrapper;->performEditorAction(I)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->requestUpdateCursorAnchorInfo(IILcom/android/internal/view/IInputContextCallback;)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->sendKeyEvent(Landroid/view/KeyEvent;)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->setComposingRegion(II)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->setComposingText(Ljava/lang/CharSequence;I)V
+HSPLcom/android/internal/view/IInputContext$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/view/IInputContext$Stub$Proxy;->asBinder()Landroid/os/IBinder;
 HSPLcom/android/internal/view/IInputContext$Stub;-><init>()V
 HSPLcom/android/internal/view/IInputContext$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/view/IInputContext$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputContext;
 HSPLcom/android/internal/view/IInputContext$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/view/IInputContextCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setCursorCapsMode(II)V
+HSPLcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setRequestUpdateCursorAnchorInfoResult(ZI)V
 HSPLcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setSelectedText(Ljava/lang/CharSequence;I)V
 HSPLcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setTextAfterCursor(Ljava/lang/CharSequence;I)V
 HSPLcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setTextBeforeCursor(Ljava/lang/CharSequence;I)V
+HSPLcom/android/internal/view/IInputContextCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputContextCallback;
+PLcom/android/internal/view/IInputMethod$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/view/IInputMethod$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/view/IInputMethod$Stub$Proxy;->bindInput(Landroid/view/inputmethod/InputBinding;)V
+HPLcom/android/internal/view/IInputMethod$Stub$Proxy;->createSession(Landroid/view/InputChannel;Lcom/android/internal/view/IInputSessionCallback;)V
+HPLcom/android/internal/view/IInputMethod$Stub$Proxy;->hideSoftInput(ILandroid/os/ResultReceiver;)V
+HPLcom/android/internal/view/IInputMethod$Stub$Proxy;->initializeInternal(Landroid/os/IBinder;ILcom/android/internal/inputmethod/IInputMethodPrivilegedOperations;)V
+HPLcom/android/internal/view/IInputMethod$Stub$Proxy;->setSessionEnabled(Lcom/android/internal/view/IInputMethodSession;Z)V
+HPLcom/android/internal/view/IInputMethod$Stub$Proxy;->startInput(Landroid/os/IBinder;Lcom/android/internal/view/IInputContext;ILandroid/view/inputmethod/EditorInfo;ZZ)V
+HPLcom/android/internal/view/IInputMethod$Stub$Proxy;->unbindInput()V
+HPLcom/android/internal/view/IInputMethod$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethod;
+HSPLcom/android/internal/view/IInputMethodClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/view/IInputMethodClient$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/view/IInputMethodClient$Stub$Proxy;->onBindMethod(Lcom/android/internal/view/InputBindResult;)V
+HPLcom/android/internal/view/IInputMethodClient$Stub$Proxy;->onUnbindMethod(II)V
+HPLcom/android/internal/view/IInputMethodClient$Stub$Proxy;->reportFullscreenMode(Z)V
+HPLcom/android/internal/view/IInputMethodClient$Stub$Proxy;->setActive(ZZ)V
 HSPLcom/android/internal/view/IInputMethodClient$Stub;-><init>()V
 HSPLcom/android/internal/view/IInputMethodClient$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/view/IInputMethodClient$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodClient;
 HSPLcom/android/internal/view/IInputMethodClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->addClient(Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;I)V
 HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getEnabledInputMethodList(I)Ljava/util/List;
+HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getEnabledInputMethodSubtypeList(Ljava/lang/String;Z)Ljava/util/List;
 HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->hideSoftInput(Lcom/android/internal/view/IInputMethodClient;ILandroid/os/ResultReceiver;)Z
+HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->showSoftInput(Lcom/android/internal/view/IInputMethodClient;Landroid/os/IBinder;ILandroid/os/ResultReceiver;)Z
 HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->startInputOrWindowGainedFocus(ILcom/android/internal/view/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/view/IInputContext;II)Lcom/android/internal/view/InputBindResult;
+HSPLcom/android/internal/view/IInputMethodManager$Stub;-><init>()V
 HSPLcom/android/internal/view/IInputMethodManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodManager;
+HSPLcom/android/internal/view/IInputMethodManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLcom/android/internal/view/IInputMethodSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/view/IInputMethodSession$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/view/IInputMethodSession$Stub$Proxy;->finishSession()V
 HSPLcom/android/internal/view/IInputMethodSession$Stub$Proxy;->updateSelection(IIIIII)V
+HSPLcom/android/internal/view/IInputMethodSession$Stub$Proxy;->viewClicked(Z)V
 HSPLcom/android/internal/view/IInputMethodSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodSession;
+HPLcom/android/internal/view/IInputSessionCallback$Stub;-><init>()V
+HPLcom/android/internal/view/IInputSessionCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/view/IInputSessionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HSPLcom/android/internal/view/InputBindResult$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/view/InputBindResult;
 HSPLcom/android/internal/view/InputBindResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLcom/android/internal/view/InputBindResult;-><init>(ILcom/android/internal/view/IInputMethodSession;Landroid/view/InputChannel;Ljava/lang/String;ILandroid/graphics/Matrix;)V
 HSPLcom/android/internal/view/InputBindResult;-><init>(Landroid/os/Parcel;)V
 HSPLcom/android/internal/view/InputBindResult;->getActivityViewToScreenMatrix()Landroid/graphics/Matrix;
+HPLcom/android/internal/view/InputBindResult;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/view/RotationPolicy$RotationPolicyListener$1;-><init>(Lcom/android/internal/view/RotationPolicy$RotationPolicyListener;Landroid/os/Handler;)V
+HSPLcom/android/internal/view/RotationPolicy$RotationPolicyListener;-><init>()V
+HSPLcom/android/internal/view/RotationPolicy;->areAllRotationsAllowed(Landroid/content/Context;)Z
+HSPLcom/android/internal/view/RotationPolicy;->getRotationLockOrientation(Landroid/content/Context;)I
+HSPLcom/android/internal/view/RotationPolicy;->isRotationLockToggleVisible(Landroid/content/Context;)Z
+HSPLcom/android/internal/view/RotationPolicy;->isRotationLocked(Landroid/content/Context;)Z
+HSPLcom/android/internal/view/RotationPolicy;->isRotationSupported(Landroid/content/Context;)Z
+HSPLcom/android/internal/view/RotationPolicy;->registerRotationPolicyListener(Landroid/content/Context;Lcom/android/internal/view/RotationPolicy$RotationPolicyListener;I)V
+HSPLcom/android/internal/view/SurfaceCallbackHelper$1;-><init>(Lcom/android/internal/view/SurfaceCallbackHelper;)V
+HSPLcom/android/internal/view/SurfaceCallbackHelper$1;->run()V
+HSPLcom/android/internal/view/SurfaceCallbackHelper;-><init>(Ljava/lang/Runnable;)V
+HSPLcom/android/internal/view/SurfaceCallbackHelper;->dispatchSurfaceRedrawNeededAsync(Landroid/view/SurfaceHolder;[Landroid/view/SurfaceHolder$Callback;)V
+HSPLcom/android/internal/view/SurfaceFlingerVsyncChoreographer;-><init>(Landroid/os/Handler;Landroid/view/Display;Landroid/view/Choreographer;)V
+HSPLcom/android/internal/view/SurfaceFlingerVsyncChoreographer;->calculateAppSurfaceFlingerVsyncOffsetMs(Landroid/view/Display;)J
+HSPLcom/android/internal/view/WindowManagerPolicyThread;->set(Ljava/lang/Thread;Landroid/os/Looper;)V
+HSPLcom/android/internal/view/menu/ActionMenuItem;-><init>(Landroid/content/Context;IIIILjava/lang/CharSequence;)V
+HSPLcom/android/internal/view/menu/BaseMenuPresenter;-><init>(Landroid/content/Context;II)V
+HSPLcom/android/internal/view/menu/BaseMenuPresenter;->initForMenu(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;)V
+HSPLcom/android/internal/view/menu/BaseMenuPresenter;->setCallback(Lcom/android/internal/view/menu/MenuPresenter$Callback;)V
+HSPLcom/android/internal/view/menu/BaseMenuPresenter;->updateMenuView(Z)V
+HSPLcom/android/internal/view/menu/ContextMenuBuilder;-><init>(Landroid/content/Context;)V
 HSPLcom/android/internal/view/menu/MenuBuilder;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/view/menu/MenuBuilder;->add(IIII)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuBuilder;->add(IIILjava/lang/CharSequence;)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuBuilder;->addInternal(IIILjava/lang/CharSequence;)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuBuilder;->addMenuPresenter(Lcom/android/internal/view/menu/MenuPresenter;Landroid/content/Context;)V
+HSPLcom/android/internal/view/menu/MenuBuilder;->clear()V
+HSPLcom/android/internal/view/menu/MenuBuilder;->close()V
+HSPLcom/android/internal/view/menu/MenuBuilder;->close(Z)V
+HSPLcom/android/internal/view/menu/MenuBuilder;->createNewMenuItem(IIIILjava/lang/CharSequence;I)Lcom/android/internal/view/menu/MenuItemImpl;
+HSPLcom/android/internal/view/menu/MenuBuilder;->dispatchPresenterUpdate(Z)V
+HSPLcom/android/internal/view/menu/MenuBuilder;->findInsertIndex(Ljava/util/ArrayList;I)I
+HSPLcom/android/internal/view/menu/MenuBuilder;->findItem(I)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuBuilder;->flagActionItems()V
+HSPLcom/android/internal/view/menu/MenuBuilder;->getActionItems()Ljava/util/ArrayList;
+HSPLcom/android/internal/view/menu/MenuBuilder;->getItem(I)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuBuilder;->getNonActionItems()Ljava/util/ArrayList;
+HSPLcom/android/internal/view/menu/MenuBuilder;->getOrdering(I)I
+HSPLcom/android/internal/view/menu/MenuBuilder;->getVisibleItems()Ljava/util/ArrayList;
+HSPLcom/android/internal/view/menu/MenuBuilder;->hasVisibleItems()Z
+HSPLcom/android/internal/view/menu/MenuBuilder;->onItemActionRequestChanged(Lcom/android/internal/view/menu/MenuItemImpl;)V
+HSPLcom/android/internal/view/menu/MenuBuilder;->onItemVisibleChanged(Lcom/android/internal/view/menu/MenuItemImpl;)V
+HSPLcom/android/internal/view/menu/MenuBuilder;->onItemsChanged(Z)V
 HSPLcom/android/internal/view/menu/MenuBuilder;->setCallback(Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
+HSPLcom/android/internal/view/menu/MenuBuilder;->setCurrentMenuInfo(Landroid/view/ContextMenu$ContextMenuInfo;)V
+HSPLcom/android/internal/view/menu/MenuBuilder;->setDefaultShowAsAction(I)Lcom/android/internal/view/menu/MenuBuilder;
+HSPLcom/android/internal/view/menu/MenuBuilder;->setShortcutsVisibleInner(Z)V
+HSPLcom/android/internal/view/menu/MenuBuilder;->size()I
+HSPLcom/android/internal/view/menu/MenuBuilder;->startDispatchingItemsChanged()V
+HSPLcom/android/internal/view/menu/MenuBuilder;->stopDispatchingItemsChanged()V
+HSPLcom/android/internal/view/menu/MenuItemImpl;-><init>(Lcom/android/internal/view/menu/MenuBuilder;IIIILjava/lang/CharSequence;I)V
+HSPLcom/android/internal/view/menu/MenuItemImpl;->applyIconTintIfNecessary(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->getActionProvider()Landroid/view/ActionProvider;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->getContentDescription()Ljava/lang/CharSequence;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->getGroupId()I
+HSPLcom/android/internal/view/menu/MenuItemImpl;->getIcon()Landroid/graphics/drawable/Drawable;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->getItemId()I
+HSPLcom/android/internal/view/menu/MenuItemImpl;->getOrdering()I
+HSPLcom/android/internal/view/menu/MenuItemImpl;->getSubMenu()Landroid/view/SubMenu;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->getTitle()Ljava/lang/CharSequence;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->getTooltipText()Ljava/lang/CharSequence;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->hasCollapsibleActionView()Z
+HSPLcom/android/internal/view/menu/MenuItemImpl;->hasSubMenu()Z
+HSPLcom/android/internal/view/menu/MenuItemImpl;->isActionButton()Z
+HSPLcom/android/internal/view/menu/MenuItemImpl;->isActionViewExpanded()Z
+HSPLcom/android/internal/view/menu/MenuItemImpl;->isEnabled()Z
+HSPLcom/android/internal/view/menu/MenuItemImpl;->isVisible()Z
+HSPLcom/android/internal/view/menu/MenuItemImpl;->requestsActionButton()Z
+HSPLcom/android/internal/view/menu/MenuItemImpl;->requiresActionButton()Z
+HSPLcom/android/internal/view/menu/MenuItemImpl;->requiresOverflow()Z
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setAlphabeticShortcut(CI)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setCheckable(Z)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setChecked(Z)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setCheckedInt(Z)V
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setContentDescription(Ljava/lang/CharSequence;)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setEnabled(Z)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setIcon(I)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setIsActionButton(Z)V
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setNumericShortcut(CI)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setShowAsAction(I)V
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setTitleCondensed(Ljava/lang/CharSequence;)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setTooltipText(Ljava/lang/CharSequence;)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setVisible(Z)Landroid/view/MenuItem;
+HSPLcom/android/internal/view/menu/MenuItemImpl;->setVisibleInt(Z)Z
+HSPLcom/android/internal/view/menu/MenuPopupHelper$1;-><init>(Lcom/android/internal/view/menu/MenuPopupHelper;)V
+HSPLcom/android/internal/view/menu/MenuPopupHelper;-><init>(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/View;ZII)V
+HSPLcom/android/internal/view/menu/MenuPopupHelper;->setGravity(I)V
+HSPLcom/android/internal/view/menu/MenuPopupHelper;->setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V
+HSPLcom/android/internal/widget/-$$Lambda$FloatingToolbar$FloatingToolbarPopup$-uEfRwR-_1oHxMvRVdmbNRdukDM;-><init>(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;Landroid/widget/ImageButton;)V
+HSPLcom/android/internal/widget/-$$Lambda$FloatingToolbar$FloatingToolbarPopup$77YZy6kisO5OnjlgtKp0Zi1V8EY;-><init>(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)V
+HSPLcom/android/internal/widget/-$$Lambda$FloatingToolbar$FloatingToolbarPopup$77YZy6kisO5OnjlgtKp0Zi1V8EY;->onComputeInternalInsets(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
+HSPLcom/android/internal/widget/-$$Lambda$FloatingToolbar$FloatingToolbarPopup$E8FwnPCl7gZpcTlX_UaRPIBRnT0;-><init>(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$OverflowPanel;)V
+HSPLcom/android/internal/widget/-$$Lambda$FloatingToolbar$LutnsyBKrZiroTBekgIjhIyrl40;-><clinit>()V
+HSPLcom/android/internal/widget/-$$Lambda$FloatingToolbar$LutnsyBKrZiroTBekgIjhIyrl40;-><init>()V
+HSPLcom/android/internal/widget/-$$Lambda$FloatingToolbar$LutnsyBKrZiroTBekgIjhIyrl40;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/internal/widget/-$$Lambda$MessagingPropertyAnimator$7coWc0tjIUC7grCXucNFbpYTxDI;-><clinit>()V
+HSPLcom/android/internal/widget/-$$Lambda$MessagingPropertyAnimator$7coWc0tjIUC7grCXucNFbpYTxDI;-><init>()V
+HSPLcom/android/internal/widget/-$$Lambda$NotificationActionListLayout$uFZFEmIEBpI3kn6c3tNvvgmMSv8;-><clinit>()V
+HSPLcom/android/internal/widget/-$$Lambda$NotificationActionListLayout$uFZFEmIEBpI3kn6c3tNvvgmMSv8;-><init>()V
+HSPLcom/android/internal/widget/-$$Lambda$NotificationActionListLayout$uFZFEmIEBpI3kn6c3tNvvgmMSv8;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/internal/widget/-$$Lambda$TTC7hNz7BTsLwhNRb2L5kl-7mdU;-><init>(Lcom/android/internal/widget/LockPatternChecker$OnCheckCallback;)V
+HSPLcom/android/internal/widget/-$$Lambda$TTC7hNz7BTsLwhNRb2L5kl-7mdU;->onEarlyMatched()V
+HSPLcom/android/internal/widget/-$$Lambda$gPQuiuEDuOmrh2MixBcV6a5gu5s;-><init>(Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)V
+HSPLcom/android/internal/widget/-$$Lambda$gPQuiuEDuOmrh2MixBcV6a5gu5s;->run()V
+HSPLcom/android/internal/widget/AbsActionBarView$VisibilityAnimListener;-><init>(Lcom/android/internal/widget/AbsActionBarView;)V
+HSPLcom/android/internal/widget/AbsActionBarView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable;-><init>(Lcom/android/internal/widget/ActionBarContainer;)V
+HSPLcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable;-><init>(Lcom/android/internal/widget/ActionBarContainer;Lcom/android/internal/widget/ActionBarContainer$1;)V
+HSPLcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable;->draw(Landroid/graphics/Canvas;)V
+HSPLcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable;->getOpacity()I
+HSPLcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable;->getOutline(Landroid/graphics/Outline;)V
+HSPLcom/android/internal/widget/ActionBarContainer;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/widget/ActionBarContainer;->access$100(Lcom/android/internal/widget/ActionBarContainer;)Z
+HSPLcom/android/internal/widget/ActionBarContainer;->access$500(Lcom/android/internal/widget/ActionBarContainer;)Z
+HSPLcom/android/internal/widget/ActionBarContainer;->access$600(Lcom/android/internal/widget/ActionBarContainer;)Landroid/view/View;
+HSPLcom/android/internal/widget/ActionBarContainer;->access$700(Landroid/view/View;)Z
+HSPLcom/android/internal/widget/ActionBarContainer;->drawableStateChanged()V
+HSPLcom/android/internal/widget/ActionBarContainer;->isCollapsed(Landroid/view/View;)Z
+HSPLcom/android/internal/widget/ActionBarContainer;->jumpDrawablesToCurrentState()V
+HSPLcom/android/internal/widget/ActionBarContainer;->onFinishInflate()V
+HSPLcom/android/internal/widget/ActionBarContainer;->onLayout(ZIIII)V
+HSPLcom/android/internal/widget/ActionBarContainer;->onMeasure(II)V
+HSPLcom/android/internal/widget/ActionBarContainer;->onResolveDrawables(I)V
+HSPLcom/android/internal/widget/ActionBarContextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/widget/ActionBarContextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLcom/android/internal/widget/ActionBarContextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLcom/android/internal/widget/ActionBarContextView;->onDetachedFromWindow()V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout$1;-><init>(Lcom/android/internal/widget/ActionBarOverlayLayout;)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout$2;-><init>(Lcom/android/internal/widget/ActionBarOverlayLayout;)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout$3;-><init>(Lcom/android/internal/widget/ActionBarOverlayLayout;)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout$4;-><init>(Lcom/android/internal/widget/ActionBarOverlayLayout;)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->applyInsets(Landroid/view/View;Landroid/graphics/Rect;ZZZZ)Z
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->dismissPopups()V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Lcom/android/internal/widget/ActionBarOverlayLayout$LayoutParams;
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->getDecorToolbar(Landroid/view/View;)Lcom/android/internal/widget/DecorToolbar;
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->getTitle()Ljava/lang/CharSequence;
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->hasIcon()Z
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->init(Landroid/content/Context;)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->initFeature(I)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->onApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->onDetachedFromWindow()V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->onLayout(ZIIII)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->onMeasure(II)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->onWindowVisibilityChanged(I)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->pullChildren()V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->setIcon(I)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->setUiOptions(I)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->setWindowCallback(Landroid/view/Window$Callback;)V
+HSPLcom/android/internal/widget/ActionBarOverlayLayout;->setWindowTitle(Ljava/lang/CharSequence;)V
+HSPLcom/android/internal/widget/AlertDialogLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/widget/AlertDialogLayout;->forceUniformWidth(II)V
+HSPLcom/android/internal/widget/AlertDialogLayout;->onLayout(ZIIII)V
+HSPLcom/android/internal/widget/AlertDialogLayout;->onMeasure(II)V
+HSPLcom/android/internal/widget/AlertDialogLayout;->setChildFrame(Landroid/view/View;IIII)V
+HSPLcom/android/internal/widget/AlertDialogLayout;->tryOnMeasure(II)Z
 HSPLcom/android/internal/widget/BackgroundFallback;-><init>()V
 HSPLcom/android/internal/widget/BackgroundFallback;->draw(Landroid/view/ViewGroup;Landroid/view/ViewGroup;Landroid/graphics/Canvas;Landroid/view/View;Landroid/view/View;Landroid/view/View;)V
 HSPLcom/android/internal/widget/BackgroundFallback;->hasFallback()Z
 HSPLcom/android/internal/widget/BackgroundFallback;->setDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLcom/android/internal/widget/ButtonBarLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/widget/ButtonBarLayout;->getMinimumHeight()I
+HSPLcom/android/internal/widget/ButtonBarLayout;->getNextVisibleChildIndex(I)I
+HSPLcom/android/internal/widget/ButtonBarLayout;->isStacked()Z
+HSPLcom/android/internal/widget/ButtonBarLayout;->onMeasure(II)V
+HSPLcom/android/internal/widget/CachingIconView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/widget/CachingIconView;->normalizeIconPackage(Landroid/graphics/drawable/Icon;)Ljava/lang/String;
+HSPLcom/android/internal/widget/CachingIconView;->resetCache()V
+HSPLcom/android/internal/widget/CachingIconView;->setForceHidden(Z)V
+HSPLcom/android/internal/widget/CachingIconView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLcom/android/internal/widget/CachingIconView;->setImageIcon(Landroid/graphics/drawable/Icon;)V
+HSPLcom/android/internal/widget/CachingIconView;->setImageIconAsync(Landroid/graphics/drawable/Icon;)Ljava/lang/Runnable;
+HSPLcom/android/internal/widget/CachingIconView;->setVisibility(I)V
+HSPLcom/android/internal/widget/CachingIconView;->testAndSetCache(Landroid/graphics/drawable/Icon;)Z
+HSPLcom/android/internal/widget/CachingIconView;->updateVisibility()V
+HSPLcom/android/internal/widget/DialogTitle;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/widget/DialogTitle;->onMeasure(II)V
+HSPLcom/android/internal/widget/EditableInputConnection;-><init>(Landroid/widget/TextView;)V
 HSPLcom/android/internal/widget/EditableInputConnection;->beginBatchEdit()Z
 HSPLcom/android/internal/widget/EditableInputConnection;->closeConnection()V
+HSPLcom/android/internal/widget/EditableInputConnection;->commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)Z
+HSPLcom/android/internal/widget/EditableInputConnection;->commitText(Ljava/lang/CharSequence;I)Z
 HSPLcom/android/internal/widget/EditableInputConnection;->endBatchEdit()Z
 HSPLcom/android/internal/widget/EditableInputConnection;->getEditable()Landroid/text/Editable;
+HSPLcom/android/internal/widget/EditableInputConnection;->performEditorAction(I)Z
+HSPLcom/android/internal/widget/FloatingToolbar$1;-><init>(Lcom/android/internal/widget/FloatingToolbar;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$11;-><init>(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;Landroid/content/Context;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$11;->onMeasure(II)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$12;-><init>(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;Landroid/content/Context;I)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$12;->getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$13;-><init>(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$1;-><init>(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$2;-><init>(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$3;-><init>(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$3;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$4;-><init>(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$LogAccelerateInterpolator;-><clinit>()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$LogAccelerateInterpolator;-><init>()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$LogAccelerateInterpolator;-><init>(Lcom/android/internal/widget/FloatingToolbar$1;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$LogAccelerateInterpolator;->computeLog(FI)F
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$OverflowPanel;-><init>(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$OverflowPanel;->awakenScrollBars()Z
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$OverflowPanel;->onMeasure(II)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$OverflowPanelViewHelper;-><init>(Landroid/content/Context;I)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$OverflowPanelViewHelper;->calculateWidth(Landroid/view/MenuItem;)I
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$OverflowPanelViewHelper;->createMenuButton(Landroid/view/MenuItem;)Landroid/view/View;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$OverflowPanelViewHelper;->getView(Landroid/view/MenuItem;ILandroid/view/View;)Landroid/view/View;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$OverflowPanelViewHelper;->shouldShowIcon(Landroid/view/MenuItem;)Z
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;-><init>(Landroid/content/Context;Landroid/view/View;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->access$1000(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)Landroid/widget/PopupWindow;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->access$2100(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)Z
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->access$2300(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)Landroid/util/Size;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->access$2400(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$OverflowPanelViewHelper;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->access$2500(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)Landroid/content/Context;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->access$2600(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)Landroid/util/Size;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->access$400(Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;)Landroid/view/ViewGroup;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->calculateOverflowHeight(I)I
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->cancelDismissAndHideAnimations()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->cancelOverflowAnimations()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->clearPanels()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->createMainPanel()Landroid/view/ViewGroup;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->createOverflowAnimationListener()Landroid/view/animation/Animation$AnimationListener;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->createOverflowButton()Landroid/widget/ImageButton;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->createOverflowPanel()Lcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup$OverflowPanel;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->dismiss()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->getAdjustedToolbarWidth(I)I
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->getOverflowWidth()I
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->hasOverflow()Z
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->hide()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->isInRTLMode()Z
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->isOverflowAnimating()Z
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->isShowing()Z
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->lambda$new$0$FloatingToolbar$FloatingToolbarPopup(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->layoutMainPanelItems(Ljava/util/List;I)Ljava/util/List;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->layoutMenuItems(Ljava/util/List;Landroid/view/MenuItem$OnMenuItemClickListener;I)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->layoutOverflowPanelItems(Ljava/util/List;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->maybeComputeTransitionDurationScale()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->measure(Landroid/view/View;)Landroid/util/Size;
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->preparePopupContent()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->refreshCoordinatesAndOverflowDirection(Landroid/graphics/Rect;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->refreshViewPort()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->runDismissAnimation()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->runShowAnimation()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->setButtonTagAndClickListener(Landroid/view/View;Landroid/view/MenuItem;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->setContentAreaAsTouchableSurface()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->setPanelsStatesAtRestingPosition()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->setSize(Landroid/view/View;II)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->setSize(Landroid/view/View;Landroid/util/Size;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->setTouchableSurfaceInsetsComputer()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->setZeroTouchableSurface()V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->show(Landroid/graphics/Rect;)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->updateOverflowHeight(I)V
+HSPLcom/android/internal/widget/FloatingToolbar$FloatingToolbarPopup;->updatePopupSize()V
+HSPLcom/android/internal/widget/FloatingToolbar;-><init>(Landroid/view/Window;)V
+HSPLcom/android/internal/widget/FloatingToolbar;->access$1100(Landroid/view/View;ILandroid/animation/Animator$AnimatorListener;)Landroid/animation/AnimatorSet;
+HSPLcom/android/internal/widget/FloatingToolbar;->access$2000(Landroid/content/Context;Landroid/view/MenuItem;IZ)Landroid/view/View;
+HSPLcom/android/internal/widget/FloatingToolbar;->access$2700(Landroid/view/View;Landroid/view/MenuItem;IZ)V
+HSPLcom/android/internal/widget/FloatingToolbar;->access$600(Landroid/content/Context;)Landroid/view/ViewGroup;
+HSPLcom/android/internal/widget/FloatingToolbar;->access$700(Landroid/view/ViewGroup;)Landroid/widget/PopupWindow;
+HSPLcom/android/internal/widget/FloatingToolbar;->access$900(Landroid/view/View;)Landroid/animation/AnimatorSet;
+HSPLcom/android/internal/widget/FloatingToolbar;->applyDefaultTheme(Landroid/content/Context;)Landroid/content/Context;
+HSPLcom/android/internal/widget/FloatingToolbar;->createContentContainer(Landroid/content/Context;)Landroid/view/ViewGroup;
+HSPLcom/android/internal/widget/FloatingToolbar;->createEnterAnimation(Landroid/view/View;)Landroid/animation/AnimatorSet;
+HSPLcom/android/internal/widget/FloatingToolbar;->createExitAnimation(Landroid/view/View;ILandroid/animation/Animator$AnimatorListener;)Landroid/animation/AnimatorSet;
+HSPLcom/android/internal/widget/FloatingToolbar;->createMenuItemButton(Landroid/content/Context;Landroid/view/MenuItem;IZ)Landroid/view/View;
+HSPLcom/android/internal/widget/FloatingToolbar;->createPopupWindow(Landroid/view/ViewGroup;)Landroid/widget/PopupWindow;
+HSPLcom/android/internal/widget/FloatingToolbar;->dismiss()V
+HSPLcom/android/internal/widget/FloatingToolbar;->doShow()V
+HSPLcom/android/internal/widget/FloatingToolbar;->getVisibleAndEnabledMenuItems(Landroid/view/Menu;)Ljava/util/List;
+HSPLcom/android/internal/widget/FloatingToolbar;->hide()V
+HSPLcom/android/internal/widget/FloatingToolbar;->isCurrentlyShowing(Ljava/util/List;)Z
+HSPLcom/android/internal/widget/FloatingToolbar;->lambda$new$1(Landroid/view/MenuItem;Landroid/view/MenuItem;)I
+HSPLcom/android/internal/widget/FloatingToolbar;->registerOrientationHandler()V
+HSPLcom/android/internal/widget/FloatingToolbar;->setContentRect(Landroid/graphics/Rect;)Lcom/android/internal/widget/FloatingToolbar;
+HSPLcom/android/internal/widget/FloatingToolbar;->setMenu(Landroid/view/Menu;)Lcom/android/internal/widget/FloatingToolbar;
+HSPLcom/android/internal/widget/FloatingToolbar;->setOnMenuItemClickListener(Landroid/view/MenuItem$OnMenuItemClickListener;)Lcom/android/internal/widget/FloatingToolbar;
+HSPLcom/android/internal/widget/FloatingToolbar;->show()Lcom/android/internal/widget/FloatingToolbar;
+HSPLcom/android/internal/widget/FloatingToolbar;->unregisterOrientationHandler()V
+HSPLcom/android/internal/widget/FloatingToolbar;->updateLayout()Lcom/android/internal/widget/FloatingToolbar;
+HSPLcom/android/internal/widget/FloatingToolbar;->updateMenuItemButton(Landroid/view/View;Landroid/view/MenuItem;IZ)V
+PLcom/android/internal/widget/ICheckCredentialProgressCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/widget/ICheckCredentialProgressCallback$Stub$Proxy;->onCredentialVerified()V
+HSPLcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;-><init>()V
+HSPLcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ICheckCredentialProgressCallback;
+HSPLcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->checkCredential(Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/internal/widget/VerifyCredentialResponse;
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->checkVoldPassword(I)Z
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getBoolean(Ljava/lang/String;ZI)Z
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getCredentialType(I)I
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getRecoverySecretTypes()[I
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getSeparateProfileChallengeEnabled(I)Z
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->initRecoveryServiceWithSigFile(Ljava/lang/String;[B[B)V
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->registerStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->setBoolean(Ljava/lang/String;ZI)V
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->setRecoverySecretTypes([I)V
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->setServerParams([B)V
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->setSnapshotCreatedPendingIntent(Landroid/app/PendingIntent;)V
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->userPresent(I)V
+HSPLcom/android/internal/widget/ILockSettings$Stub;-><init>()V
 HSPLcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
+HSPLcom/android/internal/widget/ILockSettings$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/widget/ImageFloatingTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/widget/ImageFloatingTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLcom/android/internal/widget/ImageFloatingTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLcom/android/internal/widget/ImageFloatingTextView;->makeSingleLayout(ILandroid/text/BoringLayout$Metrics;ILandroid/text/Layout$Alignment;ZLandroid/text/TextUtils$TruncateAt;Z)Landroid/text/Layout;
+HSPLcom/android/internal/widget/ImageFloatingTextView;->onMeasure(II)V
+HSPLcom/android/internal/widget/ImageFloatingTextView;->onRtlPropertiesChanged(I)V
+HSPLcom/android/internal/widget/ImageFloatingTextView;->setHasImage(Z)V
+HSPLcom/android/internal/widget/ImageFloatingTextView;->setImageEndMargin(I)V
+HSPLcom/android/internal/widget/ImageFloatingTextView;->setNumIndentLines(I)Z
+HSPLcom/android/internal/widget/LockPatternChecker$2;-><init>(Lcom/android/internal/widget/LockPatternUtils;Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/LockPatternChecker$OnCheckCallback;)V
+HSPLcom/android/internal/widget/LockPatternChecker$2;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/internal/widget/LockPatternChecker$2;->doInBackground([Ljava/lang/Void;)Ljava/lang/Boolean;
+PLcom/android/internal/widget/LockPatternChecker$2;->onCancelled()V
+HSPLcom/android/internal/widget/LockPatternChecker;->checkCredential(Lcom/android/internal/widget/LockPatternUtils;Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/LockPatternChecker$OnCheckCallback;)Landroid/os/AsyncTask;
+HSPLcom/android/internal/widget/LockPatternUtils$2;-><init>(Lcom/android/internal/widget/LockPatternUtils;Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)V
+HSPLcom/android/internal/widget/LockPatternUtils$2;->onCredentialVerified()V
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;-><init>(Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;)V
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;->onStrongAuthRequiredChanged(II)V
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H;-><init>(Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;Landroid/os/Looper;)V
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->access$100(Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;)Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H;
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->getDefaultFlags(Landroid/content/Context;)I
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->getStrongAuthForUser(I)I
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->handleStrongAuthRequiredChanged(II)V
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->isBiometricAllowedForUser(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->isTrustAllowedForUser(I)Z
+PLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->onStrongAuthRequiredChanged(I)V
+HSPLcom/android/internal/widget/LockPatternUtils;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/widget/LockPatternUtils;->access$000(Lcom/android/internal/widget/LockPatternUtils;)Landroid/os/Handler;
+HSPLcom/android/internal/widget/LockPatternUtils;->checkCredential(Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->checkVoldPassword(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->credentialTypeToPasswordQuality(I)I
+HSPLcom/android/internal/widget/LockPatternUtils;->frpCredentialEnabled(Landroid/content/Context;)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->getActivePasswordQuality(I)I
+HSPLcom/android/internal/widget/LockPatternUtils;->getBoolean(Ljava/lang/String;ZI)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->getCredentialTypeForUser(I)I
+HSPLcom/android/internal/widget/LockPatternUtils;->getDeviceOwnerInfo()Ljava/lang/String;
+HSPLcom/android/internal/widget/LockPatternUtils;->getDevicePolicyManager()Landroid/app/admin/DevicePolicyManager;
+HSPLcom/android/internal/widget/LockPatternUtils;->getEnabledTrustAgents(I)Ljava/util/List;
+HSPLcom/android/internal/widget/LockPatternUtils;->getKeyguardStoredPasswordQuality(I)I
+HSPLcom/android/internal/widget/LockPatternUtils;->getLockSettings()Lcom/android/internal/widget/ILockSettings;
+HSPLcom/android/internal/widget/LockPatternUtils;->getLockoutAttemptDeadline(I)J
+HSPLcom/android/internal/widget/LockPatternUtils;->getPowerButtonInstantlyLocks(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->getString(Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/internal/widget/LockPatternUtils;->getTrustManager()Landroid/app/trust/TrustManager;
+HSPLcom/android/internal/widget/LockPatternUtils;->getUserManager()Landroid/os/UserManager;
+HPLcom/android/internal/widget/LockPatternUtils;->hasSecureLockScreen()Z
+HSPLcom/android/internal/widget/LockPatternUtils;->hasSeparateChallenge(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->isLockScreenDisabled(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->isManagedProfile(I)Z
+HPLcom/android/internal/widget/LockPatternUtils;->isManagedProfileWithUnifiedChallenge(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->isOwnerInfoEnabled(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->isSecure(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->isSeparateProfileChallengeEnabled(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->isTactileFeedbackEnabled()Z
+HSPLcom/android/internal/widget/LockPatternUtils;->isTrustUsuallyManaged(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->isVisiblePatternEnabled(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->registerStrongAuthTracker(Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;)V
+HSPLcom/android/internal/widget/LockPatternUtils;->reportSuccessfulPasswordAttempt(I)V
+HSPLcom/android/internal/widget/LockPatternUtils;->userPresent(I)V
+HSPLcom/android/internal/widget/LockPatternUtils;->wrapCallback(Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Lcom/android/internal/widget/ICheckCredentialProgressCallback;
+HSPLcom/android/internal/widget/LockSettingsInternal;-><init>()V
+HSPLcom/android/internal/widget/LockscreenCredential$1;-><init>()V
+PLcom/android/internal/widget/LockscreenCredential$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/widget/LockscreenCredential;
+PLcom/android/internal/widget/LockscreenCredential$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/widget/LockscreenCredential;-><clinit>()V
+HSPLcom/android/internal/widget/LockscreenCredential;-><init>(I[B)V
+HPLcom/android/internal/widget/LockscreenCredential;-><init>(I[BLcom/android/internal/widget/LockscreenCredential$1;)V
+HPLcom/android/internal/widget/LockscreenCredential;->checkAgainstStoredType(I)Z
+HSPLcom/android/internal/widget/LockscreenCredential;->createNone()Lcom/android/internal/widget/LockscreenCredential;
+HSPLcom/android/internal/widget/LockscreenCredential;->duplicate()Lcom/android/internal/widget/LockscreenCredential;
+HPLcom/android/internal/widget/LockscreenCredential;->ensureNotZeroized()V
+HPLcom/android/internal/widget/LockscreenCredential;->getCredential()[B
+HPLcom/android/internal/widget/LockscreenCredential;->getType()I
+HPLcom/android/internal/widget/LockscreenCredential;->isNone()Z
+PLcom/android/internal/widget/LockscreenCredential;->isPassword()Z
+PLcom/android/internal/widget/LockscreenCredential;->isPin()Z
+HSPLcom/android/internal/widget/LockscreenCredential;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/widget/LockscreenCredential;->zeroize()V
+HSPLcom/android/internal/widget/MessagingGroup;-><clinit>()V
+HSPLcom/android/internal/widget/MessagingGroup;->dropCache()V
+HSPLcom/android/internal/widget/MessagingImageMessage;-><clinit>()V
+HSPLcom/android/internal/widget/MessagingImageMessage;->dropCache()V
+HSPLcom/android/internal/widget/MessagingMessage;->dropCache()V
+HSPLcom/android/internal/widget/MessagingPropertyAnimator$1;-><init>(Ljava/lang/String;)V
+HSPLcom/android/internal/widget/MessagingPropertyAnimator;-><clinit>()V
+HSPLcom/android/internal/widget/MessagingPropertyAnimator;->getTop(Landroid/view/View;)I
+HSPLcom/android/internal/widget/MessagingPropertyAnimator;->isAnimatingTranslation(Landroid/view/View;)Z
+HSPLcom/android/internal/widget/MessagingTextMessage;-><clinit>()V
+HSPLcom/android/internal/widget/MessagingTextMessage;->dropCache()V
+HSPLcom/android/internal/widget/NotificationActionListLayout;-><clinit>()V
+HSPLcom/android/internal/widget/NotificationActionListLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/widget/NotificationActionListLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLcom/android/internal/widget/NotificationActionListLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLcom/android/internal/widget/NotificationActionListLayout;->clearMeasureOrder()V
+HSPLcom/android/internal/widget/NotificationActionListLayout;->getExtraMeasureHeight()I
+HSPLcom/android/internal/widget/NotificationActionListLayout;->lambda$static$0(Landroid/util/Pair;Landroid/util/Pair;)I
+HSPLcom/android/internal/widget/NotificationActionListLayout;->onFinishInflate()V
+HSPLcom/android/internal/widget/NotificationActionListLayout;->onLayout(ZIIII)V
+HSPLcom/android/internal/widget/NotificationActionListLayout;->onMeasure(II)V
+HSPLcom/android/internal/widget/NotificationActionListLayout;->onViewAdded(Landroid/view/View;)V
+HSPLcom/android/internal/widget/NotificationActionListLayout;->onViewRemoved(Landroid/view/View;)V
+HSPLcom/android/internal/widget/NotificationActionListLayout;->rebuildMeasureOrder(II)V
+HSPLcom/android/internal/widget/NotificationActionListLayout;->setEmphasizedMode(Z)V
+HSPLcom/android/internal/widget/NotificationActionListLayout;->updateHeights()V
+HSPLcom/android/internal/widget/NotificationExpandButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/widget/RemeasuringLinearLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLcom/android/internal/widget/RemeasuringLinearLayout;->onMeasure(II)V
 HSPLcom/android/internal/widget/ScrollBarUtils;->getThumbLength(IIII)I
 HSPLcom/android/internal/widget/ScrollBarUtils;->getThumbOffset(IIIII)I
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper$1;-><init>(Lcom/android/internal/widget/ToolbarWidgetWrapper;)V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;-><init>(Landroid/widget/Toolbar;Z)V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;-><init>(Landroid/widget/Toolbar;ZI)V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->access$000(Lcom/android/internal/widget/ToolbarWidgetWrapper;)Landroid/widget/Toolbar;
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->access$100(Lcom/android/internal/widget/ToolbarWidgetWrapper;)Ljava/lang/CharSequence;
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->dismissPopupMenus()V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->getContext()Landroid/content/Context;
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->getTitle()Ljava/lang/CharSequence;
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->hasIcon()Z
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->isSplit()Z
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->setDefaultNavigationContentDescription(I)V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->setDisplayOptions(I)V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->setIcon(I)V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->setIcon(Landroid/graphics/drawable/Drawable;)V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->setNavigationIcon(Landroid/graphics/drawable/Drawable;)V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->setTitleInt(Ljava/lang/CharSequence;)V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->setWindowCallback(Landroid/view/Window$Callback;)V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->setWindowTitle(Ljava/lang/CharSequence;)V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->updateNavigationIcon()V
+HSPLcom/android/internal/widget/ToolbarWidgetWrapper;->updateToolbarLogo()V
+HSPLcom/android/internal/widget/VerifyCredentialResponse$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/widget/VerifyCredentialResponse;
+HSPLcom/android/internal/widget/VerifyCredentialResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/widget/VerifyCredentialResponse;-><clinit>()V
+HSPLcom/android/internal/widget/VerifyCredentialResponse;-><init>(II[B)V
+HPLcom/android/internal/widget/VerifyCredentialResponse;-><init>([B)V
+HSPLcom/android/internal/widget/VerifyCredentialResponse;->getPayload()[B
+HSPLcom/android/internal/widget/VerifyCredentialResponse;->getResponseCode()I
+HPLcom/android/internal/widget/VerifyCredentialResponse;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/widget/ViewClippingUtil$ClippingParameters;->isClippingEnablingAllowed(Landroid/view/View;)Z
+HSPLcom/android/internal/widget/ViewClippingUtil$ClippingParameters;->onClippingStateChanged(Landroid/view/View;Z)V
+HSPLcom/android/internal/widget/ViewClippingUtil;->setClippingDeactivated(Landroid/view/View;ZLcom/android/internal/widget/ViewClippingUtil$ClippingParameters;)V
 HSPLcom/android/okhttp/Address;-><init>(Ljava/lang/String;ILcom/android/okhttp/Dns;Ljavax/net/SocketFactory;Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;Lcom/android/okhttp/CertificatePinner;Lcom/android/okhttp/Authenticator;Ljava/net/Proxy;Ljava/util/List;Ljava/util/List;Ljava/net/ProxySelector;)V
 HSPLcom/android/okhttp/Address;->equals(Ljava/lang/Object;)Z
 HSPLcom/android/okhttp/Address;->getCertificatePinner()Lcom/android/okhttp/CertificatePinner;
@@ -15833,6 +34446,7 @@
 HSPLcom/android/okhttp/Dns$1;->lookup(Ljava/lang/String;)Ljava/util/List;
 HSPLcom/android/okhttp/Handshake;-><init>(Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
 HSPLcom/android/okhttp/Handshake;->get(Ljavax/net/ssl/SSLSession;)Lcom/android/okhttp/Handshake;
+HSPLcom/android/okhttp/Handshake;->peerCertificates()Ljava/util/List;
 HSPLcom/android/okhttp/Headers$Builder;-><init>()V
 HSPLcom/android/okhttp/Headers$Builder;->access$000(Lcom/android/okhttp/Headers$Builder;)Ljava/util/List;
 HSPLcom/android/okhttp/Headers$Builder;->add(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
@@ -15851,8 +34465,10 @@
 HSPLcom/android/okhttp/Headers;->newBuilder()Lcom/android/okhttp/Headers$Builder;
 HSPLcom/android/okhttp/Headers;->size()I
 HSPLcom/android/okhttp/Headers;->value(I)Ljava/lang/String;
+HSPLcom/android/okhttp/HttpHandler$CleartextURLFilter;->checkURLPermitted(Ljava/net/URL;)V
 HSPLcom/android/okhttp/HttpHandler;-><init>()V
 HSPLcom/android/okhttp/HttpHandler;->createHttpOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory;
+HSPLcom/android/okhttp/HttpHandler;->newOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory;
 HSPLcom/android/okhttp/HttpHandler;->openConnection(Ljava/net/URL;)Ljava/net/URLConnection;
 HSPLcom/android/okhttp/HttpUrl$Builder;-><init>()V
 HSPLcom/android/okhttp/HttpUrl$Builder;->build()Lcom/android/okhttp/HttpUrl;
@@ -15879,6 +34495,7 @@
 HSPLcom/android/okhttp/HttpUrl;-><init>(Lcom/android/okhttp/HttpUrl$Builder;)V
 HSPLcom/android/okhttp/HttpUrl;-><init>(Lcom/android/okhttp/HttpUrl$Builder;Lcom/android/okhttp/HttpUrl$1;)V
 HSPLcom/android/okhttp/HttpUrl;->access$200(Ljava/lang/String;IILjava/lang/String;)I
+HSPLcom/android/okhttp/HttpUrl;->canonicalize(Lcom/android/okhttp/okio/Buffer;Ljava/lang/String;IILjava/lang/String;ZZZZ)V
 HSPLcom/android/okhttp/HttpUrl;->canonicalize(Ljava/lang/String;IILjava/lang/String;ZZZZ)Ljava/lang/String;
 HSPLcom/android/okhttp/HttpUrl;->canonicalize(Ljava/lang/String;Ljava/lang/String;ZZZZ)Ljava/lang/String;
 HSPLcom/android/okhttp/HttpUrl;->decodeHexDigit(C)I
@@ -15904,7 +34521,9 @@
 HSPLcom/android/okhttp/HttpUrl;->percentDecode(Ljava/util/List;Z)Ljava/util/List;
 HSPLcom/android/okhttp/HttpUrl;->port()I
 HSPLcom/android/okhttp/HttpUrl;->queryStringToNamesAndValues(Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/okhttp/HttpUrl;->scheme()Ljava/lang/String;
 HSPLcom/android/okhttp/HttpUrl;->uri()Ljava/net/URI;
+HSPLcom/android/okhttp/HttpUrl;->url()Ljava/net/URL;
 HSPLcom/android/okhttp/HttpsHandler;-><init>()V
 HSPLcom/android/okhttp/HttpsHandler;->createHttpsOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory;
 HSPLcom/android/okhttp/HttpsHandler;->newOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory;
@@ -15925,7 +34544,9 @@
 HSPLcom/android/okhttp/OkHttpClient;->getConnectionPool()Lcom/android/okhttp/ConnectionPool;
 HSPLcom/android/okhttp/OkHttpClient;->getConnectionSpecs()Ljava/util/List;
 HSPLcom/android/okhttp/OkHttpClient;->getCookieHandler()Ljava/net/CookieHandler;
+HSPLcom/android/okhttp/OkHttpClient;->getDefaultSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
 HSPLcom/android/okhttp/OkHttpClient;->getDns()Lcom/android/okhttp/Dns;
+HSPLcom/android/okhttp/OkHttpClient;->getFollowRedirects()Z
 HSPLcom/android/okhttp/OkHttpClient;->getHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;
 HSPLcom/android/okhttp/OkHttpClient;->getProtocols()Ljava/util/List;
 HSPLcom/android/okhttp/OkHttpClient;->getProxy()Ljava/net/Proxy;
@@ -15940,14 +34561,17 @@
 HSPLcom/android/okhttp/OkHttpClient;->setConnectTimeout(JLjava/util/concurrent/TimeUnit;)V
 HSPLcom/android/okhttp/OkHttpClient;->setConnectionPool(Lcom/android/okhttp/ConnectionPool;)Lcom/android/okhttp/OkHttpClient;
 HSPLcom/android/okhttp/OkHttpClient;->setConnectionSpecs(Ljava/util/List;)Lcom/android/okhttp/OkHttpClient;
+HSPLcom/android/okhttp/OkHttpClient;->setDns(Lcom/android/okhttp/Dns;)Lcom/android/okhttp/OkHttpClient;
 HSPLcom/android/okhttp/OkHttpClient;->setFollowRedirects(Z)V
 HSPLcom/android/okhttp/OkHttpClient;->setFollowSslRedirects(Z)Lcom/android/okhttp/OkHttpClient;
 HSPLcom/android/okhttp/OkHttpClient;->setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)Lcom/android/okhttp/OkHttpClient;
 HSPLcom/android/okhttp/OkHttpClient;->setProtocols(Ljava/util/List;)Lcom/android/okhttp/OkHttpClient;
 HSPLcom/android/okhttp/OkHttpClient;->setProxy(Ljava/net/Proxy;)Lcom/android/okhttp/OkHttpClient;
 HSPLcom/android/okhttp/OkHttpClient;->setReadTimeout(JLjava/util/concurrent/TimeUnit;)V
+HSPLcom/android/okhttp/OkHttpClient;->setSocketFactory(Ljavax/net/SocketFactory;)Lcom/android/okhttp/OkHttpClient;
 HSPLcom/android/okhttp/OkHttpClient;->setSslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)Lcom/android/okhttp/OkHttpClient;
 HSPLcom/android/okhttp/OkHttpClient;->setWriteTimeout(JLjava/util/concurrent/TimeUnit;)V
+HSPLcom/android/okhttp/OkUrlFactories;->open(Lcom/android/okhttp/OkUrlFactory;Ljava/net/URL;Ljava/net/Proxy;)Ljava/net/HttpURLConnection;
 HSPLcom/android/okhttp/OkUrlFactories;->setUrlFilter(Lcom/android/okhttp/OkUrlFactory;Lcom/android/okhttp/internal/URLFilter;)V
 HSPLcom/android/okhttp/OkUrlFactory;-><init>(Lcom/android/okhttp/OkHttpClient;)V
 HSPLcom/android/okhttp/OkUrlFactory;->client()Lcom/android/okhttp/OkHttpClient;
@@ -15983,6 +34607,8 @@
 HSPLcom/android/okhttp/Request;->isHttps()Z
 HSPLcom/android/okhttp/Request;->method()Ljava/lang/String;
 HSPLcom/android/okhttp/Request;->newBuilder()Lcom/android/okhttp/Request$Builder;
+HSPLcom/android/okhttp/Request;->uri()Ljava/net/URI;
+HSPLcom/android/okhttp/Request;->url()Ljava/net/URL;
 HSPLcom/android/okhttp/Response$Builder;-><init>()V
 HSPLcom/android/okhttp/Response$Builder;-><init>(Lcom/android/okhttp/Response;)V
 HSPLcom/android/okhttp/Response$Builder;-><init>(Lcom/android/okhttp/Response;Lcom/android/okhttp/Response$1;)V
@@ -16022,17 +34648,21 @@
 HSPLcom/android/okhttp/Response;->access$1900(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
 HSPLcom/android/okhttp/Response;->access$2000(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
 HSPLcom/android/okhttp/Response;->body()Lcom/android/okhttp/ResponseBody;
+HSPLcom/android/okhttp/Response;->cacheResponse()Lcom/android/okhttp/Response;
 HSPLcom/android/okhttp/Response;->code()I
+HSPLcom/android/okhttp/Response;->handshake()Lcom/android/okhttp/Handshake;
 HSPLcom/android/okhttp/Response;->header(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/okhttp/Response;->header(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/okhttp/Response;->headers()Lcom/android/okhttp/Headers;
 HSPLcom/android/okhttp/Response;->message()Ljava/lang/String;
+HSPLcom/android/okhttp/Response;->networkResponse()Lcom/android/okhttp/Response;
 HSPLcom/android/okhttp/Response;->newBuilder()Lcom/android/okhttp/Response$Builder;
 HSPLcom/android/okhttp/Response;->protocol()Lcom/android/okhttp/Protocol;
 HSPLcom/android/okhttp/Response;->request()Lcom/android/okhttp/Request;
 HSPLcom/android/okhttp/ResponseBody;-><init>()V
 HSPLcom/android/okhttp/ResponseBody;->byteStream()Ljava/io/InputStream;
 HSPLcom/android/okhttp/Route;-><init>(Lcom/android/okhttp/Address;Ljava/net/Proxy;Ljava/net/InetSocketAddress;)V
+HSPLcom/android/okhttp/Route;->equals(Ljava/lang/Object;)Z
 HSPLcom/android/okhttp/Route;->getAddress()Lcom/android/okhttp/Address;
 HSPLcom/android/okhttp/Route;->getProxy()Ljava/net/Proxy;
 HSPLcom/android/okhttp/Route;->getSocketAddress()Ljava/net/InetSocketAddress;
@@ -16050,8 +34680,10 @@
 HSPLcom/android/okhttp/internal/OptionalMethod;->invokeWithoutCheckedException(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/okhttp/internal/OptionalMethod;->isSupported(Ljava/lang/Object;)Z
 HSPLcom/android/okhttp/internal/Platform;->afterHandshake(Ljavax/net/ssl/SSLSocket;)V
+HSPLcom/android/okhttp/internal/Platform;->concatLengthPrefixed(Ljava/util/List;)[B
 HSPLcom/android/okhttp/internal/Platform;->configureTlsExtensions(Ljavax/net/ssl/SSLSocket;Ljava/lang/String;Ljava/util/List;)V
 HSPLcom/android/okhttp/internal/Platform;->connectSocket(Ljava/net/Socket;Ljava/net/InetSocketAddress;I)V
+HSPLcom/android/okhttp/internal/Platform;->get()Lcom/android/okhttp/internal/Platform;
 HSPLcom/android/okhttp/internal/Platform;->getProtocolIds(Ljava/util/List;)[Ljava/lang/String;
 HSPLcom/android/okhttp/internal/Platform;->getSelectedProtocol(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String;
 HSPLcom/android/okhttp/internal/Platform;->isPlatformSocket(Ljavax/net/ssl/SSLSocket;)Z
@@ -16062,18 +34694,33 @@
 HSPLcom/android/okhttp/internal/Util$1;-><init>(Ljava/lang/String;Z)V
 HSPLcom/android/okhttp/internal/Util$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
 HSPLcom/android/okhttp/internal/Util;->checkOffsetAndCount(JJJ)V
+HSPLcom/android/okhttp/internal/Util;->closeQuietly(Ljava/io/Closeable;)V
+HSPLcom/android/okhttp/internal/Util;->closeQuietly(Ljava/net/Socket;)V
+HSPLcom/android/okhttp/internal/Util;->discard(Lcom/android/okhttp/okio/Source;ILjava/util/concurrent/TimeUnit;)Z
 HSPLcom/android/okhttp/internal/Util;->equal(Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLcom/android/okhttp/internal/Util;->hostHeader(Lcom/android/okhttp/HttpUrl;Z)Ljava/lang/String;
 HSPLcom/android/okhttp/internal/Util;->immutableList(Ljava/util/List;)Ljava/util/List;
+HSPLcom/android/okhttp/internal/Util;->immutableList([Ljava/lang/Object;)Ljava/util/List;
+HSPLcom/android/okhttp/internal/Util;->skipAll(Lcom/android/okhttp/okio/Source;ILjava/util/concurrent/TimeUnit;)Z
 HSPLcom/android/okhttp/internal/Util;->threadFactory(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;
+HSPLcom/android/okhttp/internal/Util;->toHumanReadableAscii(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/okhttp/internal/http/CacheStrategy$Factory;-><init>(JLcom/android/okhttp/Request;Lcom/android/okhttp/Response;)V
 HSPLcom/android/okhttp/internal/http/CacheStrategy$Factory;->get()Lcom/android/okhttp/internal/http/CacheStrategy;
 HSPLcom/android/okhttp/internal/http/CacheStrategy$Factory;->getCandidate()Lcom/android/okhttp/internal/http/CacheStrategy;
 HSPLcom/android/okhttp/internal/http/CacheStrategy;-><init>(Lcom/android/okhttp/Request;Lcom/android/okhttp/Response;)V
 HSPLcom/android/okhttp/internal/http/CacheStrategy;-><init>(Lcom/android/okhttp/Request;Lcom/android/okhttp/Response;Lcom/android/okhttp/internal/http/CacheStrategy$1;)V
+HSPLcom/android/okhttp/internal/http/HeaderParser;->skipUntil(Ljava/lang/String;ILjava/lang/String;)I
+HSPLcom/android/okhttp/internal/http/HeaderParser;->skipWhitespace(Ljava/lang/String;I)I
 HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;)V
 HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;Lcom/android/okhttp/internal/http/Http1xStream$1;)V
 HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;->endOfInput()V
 HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;->timeout()Lcom/android/okhttp/okio/Timeout;
+HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;->unexpectedEndOfInput()V
+HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;)V
+HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;Lcom/android/okhttp/internal/http/Http1xStream$1;)V
+HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;->close()V
+HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;->flush()V
+HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;->write(Lcom/android/okhttp/okio/Buffer;J)V
 HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSource;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;Lcom/android/okhttp/internal/http/HttpEngine;)V
 HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSource;->close()V
 HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSource;->read(Lcom/android/okhttp/okio/Buffer;J)J
@@ -16093,10 +34740,12 @@
 HSPLcom/android/okhttp/internal/http/Http1xStream;->access$502(Lcom/android/okhttp/internal/http/Http1xStream;I)I
 HSPLcom/android/okhttp/internal/http/Http1xStream;->access$600(Lcom/android/okhttp/internal/http/Http1xStream;)Lcom/android/okhttp/okio/BufferedSource;
 HSPLcom/android/okhttp/internal/http/Http1xStream;->access$700(Lcom/android/okhttp/internal/http/Http1xStream;)Lcom/android/okhttp/internal/http/StreamAllocation;
+HSPLcom/android/okhttp/internal/http/Http1xStream;->cancel()V
 HSPLcom/android/okhttp/internal/http/Http1xStream;->createRequestBody(Lcom/android/okhttp/Request;J)Lcom/android/okhttp/okio/Sink;
 HSPLcom/android/okhttp/internal/http/Http1xStream;->detachTimeout(Lcom/android/okhttp/okio/ForwardingTimeout;)V
 HSPLcom/android/okhttp/internal/http/Http1xStream;->finishRequest()V
 HSPLcom/android/okhttp/internal/http/Http1xStream;->getTransferStream(Lcom/android/okhttp/Response;)Lcom/android/okhttp/okio/Source;
+HSPLcom/android/okhttp/internal/http/Http1xStream;->newChunkedSink()Lcom/android/okhttp/okio/Sink;
 HSPLcom/android/okhttp/internal/http/Http1xStream;->newChunkedSource(Lcom/android/okhttp/internal/http/HttpEngine;)Lcom/android/okhttp/okio/Source;
 HSPLcom/android/okhttp/internal/http/Http1xStream;->newFixedLengthSink(J)Lcom/android/okhttp/okio/Sink;
 HSPLcom/android/okhttp/internal/http/Http1xStream;->newFixedLengthSource(J)Lcom/android/okhttp/okio/Source;
@@ -16117,6 +34766,7 @@
 HSPLcom/android/okhttp/internal/http/HttpEngine;->followUpRequest()Lcom/android/okhttp/Request;
 HSPLcom/android/okhttp/internal/http/HttpEngine;->getBufferedRequestBody()Lcom/android/okhttp/okio/BufferedSink;
 HSPLcom/android/okhttp/internal/http/HttpEngine;->getConnection()Lcom/android/okhttp/Connection;
+HSPLcom/android/okhttp/internal/http/HttpEngine;->getRequest()Lcom/android/okhttp/Request;
 HSPLcom/android/okhttp/internal/http/HttpEngine;->getRequestBody()Lcom/android/okhttp/okio/Sink;
 HSPLcom/android/okhttp/internal/http/HttpEngine;->getResponse()Lcom/android/okhttp/Response;
 HSPLcom/android/okhttp/internal/http/HttpEngine;->hasBody(Lcom/android/okhttp/Response;)Z
@@ -16139,9 +34789,12 @@
 HSPLcom/android/okhttp/internal/http/HttpMethod;->requiresRequestBody(Ljava/lang/String;)Z
 HSPLcom/android/okhttp/internal/http/OkHeaders$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLcom/android/okhttp/internal/http/OkHeaders$1;->compare(Ljava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/okhttp/internal/http/OkHeaders;->addCookies(Lcom/android/okhttp/Request$Builder;Ljava/util/Map;)V
 HSPLcom/android/okhttp/internal/http/OkHeaders;->contentLength(Lcom/android/okhttp/Headers;)J
 HSPLcom/android/okhttp/internal/http/OkHeaders;->contentLength(Lcom/android/okhttp/Request;)J
 HSPLcom/android/okhttp/internal/http/OkHeaders;->contentLength(Lcom/android/okhttp/Response;)J
+HSPLcom/android/okhttp/internal/http/OkHeaders;->stringToLong(Ljava/lang/String;)J
+HSPLcom/android/okhttp/internal/http/OkHeaders;->toMultimap(Lcom/android/okhttp/Headers;Ljava/lang/String;)Ljava/util/Map;
 HSPLcom/android/okhttp/internal/http/RealResponseBody;-><init>(Lcom/android/okhttp/Headers;Lcom/android/okhttp/okio/BufferedSource;)V
 HSPLcom/android/okhttp/internal/http/RealResponseBody;->source()Lcom/android/okhttp/okio/BufferedSource;
 HSPLcom/android/okhttp/internal/http/RequestLine;->get(Lcom/android/okhttp/Request;Ljava/net/Proxy$Type;)Ljava/lang/String;
@@ -16164,6 +34817,7 @@
 HSPLcom/android/okhttp/internal/http/RouteSelector;->hasNextProxy()Z
 HSPLcom/android/okhttp/internal/http/RouteSelector;->next()Lcom/android/okhttp/Route;
 HSPLcom/android/okhttp/internal/http/RouteSelector;->nextInetSocketAddress()Ljava/net/InetSocketAddress;
+HSPLcom/android/okhttp/internal/http/RouteSelector;->nextPostponed()Lcom/android/okhttp/Route;
 HSPLcom/android/okhttp/internal/http/RouteSelector;->nextProxy()Ljava/net/Proxy;
 HSPLcom/android/okhttp/internal/http/RouteSelector;->resetNextInetSocketAddress(Ljava/net/Proxy;)V
 HSPLcom/android/okhttp/internal/http/RouteSelector;->resetNextProxy(Lcom/android/okhttp/HttpUrl;Ljava/net/Proxy;)V
@@ -16181,6 +34835,7 @@
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->findConnection(IIIZ)Lcom/android/okhttp/internal/io/RealConnection;
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->findHealthyConnection(IIIZZ)Lcom/android/okhttp/internal/io/RealConnection;
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->isRecoverable(Lcom/android/okhttp/internal/http/RouteException;)Z
+HSPLcom/android/okhttp/internal/http/StreamAllocation;->isRecoverable(Ljava/io/IOException;)Z
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->newStream(IIIZZ)Lcom/android/okhttp/internal/http/HttpStream;
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->noNewStreams()V
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->recover(Lcom/android/okhttp/internal/http/RouteException;)Z
@@ -16189,6 +34844,7 @@
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->release(Lcom/android/okhttp/internal/io/RealConnection;)V
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->routeDatabase()Lcom/android/okhttp/internal/RouteDatabase;
 HSPLcom/android/okhttp/internal/http/StreamAllocation;->streamFinished(Lcom/android/okhttp/internal/http/HttpStream;)V
+HSPLcom/android/okhttp/internal/http/StreamAllocation;->toString()Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;-><init>(Ljava/net/HttpURLConnection;)V
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->addRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->connect()V
@@ -16196,6 +34852,7 @@
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getContentEncoding()Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getContentLength()I
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getContentType()Ljava/lang/String;
+HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getErrorStream()Ljava/io/InputStream;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderField(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderFields()Ljava/util/Map;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getInputStream()Ljava/io/InputStream;
@@ -16207,6 +34864,7 @@
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getURL()Ljava/net/URL;
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setChunkedStreamingMode(I)V
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setConnectTimeout(I)V
+HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setDefaultUseCaches(Z)V
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setDoInput(Z)V
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setDoOutput(Z)V
 HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setFixedLengthStreamingMode(I)V
@@ -16222,6 +34880,7 @@
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->defaultUserAgent()Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->disconnect()V
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->execute(Z)Z
+HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getErrorStream()Ljava/io/InputStream;
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaderField(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaderFields()Ljava/util/Map;
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaders()Lcom/android/okhttp/Headers;
@@ -16234,6 +34893,7 @@
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getResponseMessage()Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->initHttpEngine()V
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->newHttpEngine(Ljava/lang/String;Lcom/android/okhttp/internal/http/StreamAllocation;Lcom/android/okhttp/internal/http/RetryableSink;Lcom/android/okhttp/Response;)Lcom/android/okhttp/internal/http/HttpEngine;
+HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->responseSourceHeader(Lcom/android/okhttp/Response;)Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setConnectTimeout(I)V
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setFixedLengthStreamingMode(I)V
 HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setFixedLengthStreamingMode(J)V
@@ -16249,6 +34909,7 @@
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getContentEncoding()Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getContentLength()I
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getContentType()Ljava/lang/String;
+HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getErrorStream()Ljava/io/InputStream;
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderField(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderFields()Ljava/util/Map;
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getInputStream()Ljava/io/InputStream;
@@ -16260,9 +34921,11 @@
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getURL()Ljava/net/URL;
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setChunkedStreamingMode(I)V
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setConnectTimeout(I)V
+HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setDefaultUseCaches(Z)V
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setDoInput(Z)V
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setDoOutput(Z)V
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setFixedLengthStreamingMode(I)V
+HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)V
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setInstanceFollowRedirects(Z)V
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setReadTimeout(I)V
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setRequestMethod(Ljava/lang/String;)V
@@ -16271,6 +34934,7 @@
 HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setUseCaches(Z)V
 HSPLcom/android/okhttp/internal/io/RealConnection;-><init>(Lcom/android/okhttp/Route;)V
 HSPLcom/android/okhttp/internal/io/RealConnection;->allocationLimit()I
+HSPLcom/android/okhttp/internal/io/RealConnection;->cancel()V
 HSPLcom/android/okhttp/internal/io/RealConnection;->connect(IIILjava/util/List;Z)V
 HSPLcom/android/okhttp/internal/io/RealConnection;->connectSocket(IIILcom/android/okhttp/internal/ConnectionSpecSelector;)V
 HSPLcom/android/okhttp/internal/io/RealConnection;->connectTls(IILcom/android/okhttp/internal/ConnectionSpecSelector;)V
@@ -16278,14 +34942,26 @@
 HSPLcom/android/okhttp/internal/io/RealConnection;->getRoute()Lcom/android/okhttp/Route;
 HSPLcom/android/okhttp/internal/io/RealConnection;->getSocket()Ljava/net/Socket;
 HSPLcom/android/okhttp/internal/io/RealConnection;->isHealthy(Z)Z
+HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->getSubjectAltNames(Ljava/security/cert/X509Certificate;I)Ljava/util/List;
 HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verify(Ljava/lang/String;Ljava/security/cert/X509Certificate;)Z
 HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verify(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z
 HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verifyAsIpAddress(Ljava/lang/String;)Z
 HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verifyHostName(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verifyHostName(Ljava/lang/String;Ljava/security/cert/X509Certificate;)Z
+HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;-><init>(Lcom/android/okhttp/internalandroidapi/Dns;)V
+HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;->hashCode()I
+HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;->lookup(Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;-><init>()V
+HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->internalOpenConnection(Ljava/net/URL;Ljavax/net/SocketFactory;Ljava/net/Proxy;)Ljava/net/URLConnection;
+HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->openConnection(Ljava/net/URL;Ljavax/net/SocketFactory;Ljava/net/Proxy;)Ljava/net/URLConnection;
+HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->setDns(Lcom/android/okhttp/internalandroidapi/Dns;)V
+HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->setNewConnectionPool(IJLjava/util/concurrent/TimeUnit;)V
+HSPLcom/android/okhttp/okio/AsyncTimeout$1;-><init>(Lcom/android/okhttp/okio/AsyncTimeout;Lcom/android/okhttp/okio/Sink;)V
 HSPLcom/android/okhttp/okio/AsyncTimeout$1;->flush()V
 HSPLcom/android/okhttp/okio/AsyncTimeout$1;->timeout()Lcom/android/okhttp/okio/Timeout;
 HSPLcom/android/okhttp/okio/AsyncTimeout$1;->write(Lcom/android/okhttp/okio/Buffer;J)V
+HSPLcom/android/okhttp/okio/AsyncTimeout$2;-><init>(Lcom/android/okhttp/okio/AsyncTimeout;Lcom/android/okhttp/okio/Source;)V
 HSPLcom/android/okhttp/okio/AsyncTimeout$2;->read(Lcom/android/okhttp/okio/Buffer;J)J
 HSPLcom/android/okhttp/okio/AsyncTimeout$2;->timeout()Lcom/android/okhttp/okio/Timeout;
 HSPLcom/android/okhttp/okio/AsyncTimeout$Watchdog;-><init>()V
@@ -16300,6 +34976,11 @@
 HSPLcom/android/okhttp/okio/AsyncTimeout;->exit(Z)V
 HSPLcom/android/okhttp/okio/AsyncTimeout;->remainingNanos(J)J
 HSPLcom/android/okhttp/okio/AsyncTimeout;->scheduleTimeout(Lcom/android/okhttp/okio/AsyncTimeout;JZ)V
+HSPLcom/android/okhttp/okio/AsyncTimeout;->sink(Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/okio/Sink;
+HSPLcom/android/okhttp/okio/AsyncTimeout;->source(Lcom/android/okhttp/okio/Source;)Lcom/android/okhttp/okio/Source;
+HSPLcom/android/okhttp/okio/Base64;-><clinit>()V
+HSPLcom/android/okhttp/okio/Base64;->encode([B)Ljava/lang/String;
+HSPLcom/android/okhttp/okio/Base64;->encode([B[B)Ljava/lang/String;
 HSPLcom/android/okhttp/okio/Buffer;-><init>()V
 HSPLcom/android/okhttp/okio/Buffer;->clear()V
 HSPLcom/android/okhttp/okio/Buffer;->completeSegmentByteCount()J
@@ -16312,6 +34993,7 @@
 HSPLcom/android/okhttp/okio/Buffer;->readByte()B
 HSPLcom/android/okhttp/okio/Buffer;->readByteArray()[B
 HSPLcom/android/okhttp/okio/Buffer;->readByteArray(J)[B
+HSPLcom/android/okhttp/okio/Buffer;->readByteString()Lcom/android/okhttp/okio/ByteString;
 HSPLcom/android/okhttp/okio/Buffer;->readFully([B)V
 HSPLcom/android/okhttp/okio/Buffer;->readHexadecimalUnsignedLong()J
 HSPLcom/android/okhttp/okio/Buffer;->readInt()I
@@ -16327,9 +35009,14 @@
 HSPLcom/android/okhttp/okio/Buffer;->write(Lcom/android/okhttp/okio/Buffer;J)V
 HSPLcom/android/okhttp/okio/Buffer;->write([BII)Lcom/android/okhttp/okio/Buffer;
 HSPLcom/android/okhttp/okio/Buffer;->writeByte(I)Lcom/android/okhttp/okio/Buffer;
+HSPLcom/android/okhttp/okio/Buffer;->writeHexadecimalUnsignedLong(J)Lcom/android/okhttp/okio/Buffer;
 HSPLcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/Buffer;
 HSPLcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;II)Lcom/android/okhttp/okio/Buffer;
 HSPLcom/android/okhttp/okio/Buffer;->writeUtf8CodePoint(I)Lcom/android/okhttp/okio/Buffer;
+HSPLcom/android/okhttp/okio/ByteString;-><init>([B)V
+HSPLcom/android/okhttp/okio/ByteString;->base64()Ljava/lang/String;
+HSPLcom/android/okhttp/okio/ByteString;->hex()Ljava/lang/String;
+HSPLcom/android/okhttp/okio/ByteString;->of([B)Lcom/android/okhttp/okio/ByteString;
 HSPLcom/android/okhttp/okio/ForwardingTimeout;-><init>(Lcom/android/okhttp/okio/Timeout;)V
 HSPLcom/android/okhttp/okio/ForwardingTimeout;->clearDeadline()Lcom/android/okhttp/okio/Timeout;
 HSPLcom/android/okhttp/okio/ForwardingTimeout;->deadlineNanoTime(J)Lcom/android/okhttp/okio/Timeout;
@@ -16348,27 +35035,45 @@
 HSPLcom/android/okhttp/okio/InflaterSource;->read(Lcom/android/okhttp/okio/Buffer;J)J
 HSPLcom/android/okhttp/okio/InflaterSource;->refill()Z
 HSPLcom/android/okhttp/okio/InflaterSource;->releaseInflatedBytes()V
+HSPLcom/android/okhttp/okio/Okio$1;-><init>(Lcom/android/okhttp/okio/Timeout;Ljava/io/OutputStream;)V
 HSPLcom/android/okhttp/okio/Okio$1;->flush()V
 HSPLcom/android/okhttp/okio/Okio$1;->write(Lcom/android/okhttp/okio/Buffer;J)V
+HSPLcom/android/okhttp/okio/Okio$2;-><init>(Lcom/android/okhttp/okio/Timeout;Ljava/io/InputStream;)V
 HSPLcom/android/okhttp/okio/Okio$2;->read(Lcom/android/okhttp/okio/Buffer;J)J
+HSPLcom/android/okhttp/okio/Okio$3;-><init>(Ljava/net/Socket;)V
+HSPLcom/android/okhttp/okio/Okio$3;->newTimeoutException(Ljava/io/IOException;)Ljava/io/IOException;
+HSPLcom/android/okhttp/okio/Okio$3;->timedOut()V
+HSPLcom/android/okhttp/okio/Okio;->buffer(Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/okio/BufferedSink;
+HSPLcom/android/okhttp/okio/Okio;->buffer(Lcom/android/okhttp/okio/Source;)Lcom/android/okhttp/okio/BufferedSource;
+HSPLcom/android/okhttp/okio/Okio;->sink(Ljava/io/OutputStream;Lcom/android/okhttp/okio/Timeout;)Lcom/android/okhttp/okio/Sink;
+HSPLcom/android/okhttp/okio/Okio;->sink(Ljava/net/Socket;)Lcom/android/okhttp/okio/Sink;
+HSPLcom/android/okhttp/okio/Okio;->source(Ljava/io/InputStream;Lcom/android/okhttp/okio/Timeout;)Lcom/android/okhttp/okio/Source;
+HSPLcom/android/okhttp/okio/Okio;->source(Ljava/net/Socket;)Lcom/android/okhttp/okio/Source;
+HSPLcom/android/okhttp/okio/Okio;->timeout(Ljava/net/Socket;)Lcom/android/okhttp/okio/AsyncTimeout;
 HSPLcom/android/okhttp/okio/RealBufferedSink$1;-><init>(Lcom/android/okhttp/okio/RealBufferedSink;)V
 HSPLcom/android/okhttp/okio/RealBufferedSink$1;->close()V
 HSPLcom/android/okhttp/okio/RealBufferedSink$1;->flush()V
 HSPLcom/android/okhttp/okio/RealBufferedSink$1;->write([BII)V
+HSPLcom/android/okhttp/okio/RealBufferedSink;-><init>(Lcom/android/okhttp/okio/Sink;)V
+HSPLcom/android/okhttp/okio/RealBufferedSink;-><init>(Lcom/android/okhttp/okio/Sink;Lcom/android/okhttp/okio/Buffer;)V
 HSPLcom/android/okhttp/okio/RealBufferedSink;->access$000(Lcom/android/okhttp/okio/RealBufferedSink;)Z
 HSPLcom/android/okhttp/okio/RealBufferedSink;->buffer()Lcom/android/okhttp/okio/Buffer;
 HSPLcom/android/okhttp/okio/RealBufferedSink;->close()V
+HSPLcom/android/okhttp/okio/RealBufferedSink;->emit()Lcom/android/okhttp/okio/BufferedSink;
 HSPLcom/android/okhttp/okio/RealBufferedSink;->emitCompleteSegments()Lcom/android/okhttp/okio/BufferedSink;
 HSPLcom/android/okhttp/okio/RealBufferedSink;->flush()V
 HSPLcom/android/okhttp/okio/RealBufferedSink;->outputStream()Ljava/io/OutputStream;
 HSPLcom/android/okhttp/okio/RealBufferedSink;->timeout()Lcom/android/okhttp/okio/Timeout;
 HSPLcom/android/okhttp/okio/RealBufferedSink;->write(Lcom/android/okhttp/okio/Buffer;J)V
+HSPLcom/android/okhttp/okio/RealBufferedSink;->writeHexadecimalUnsignedLong(J)Lcom/android/okhttp/okio/BufferedSink;
 HSPLcom/android/okhttp/okio/RealBufferedSink;->writeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/BufferedSink;
 HSPLcom/android/okhttp/okio/RealBufferedSource$1;-><init>(Lcom/android/okhttp/okio/RealBufferedSource;)V
 HSPLcom/android/okhttp/okio/RealBufferedSource$1;->available()I
 HSPLcom/android/okhttp/okio/RealBufferedSource$1;->close()V
 HSPLcom/android/okhttp/okio/RealBufferedSource$1;->read()I
 HSPLcom/android/okhttp/okio/RealBufferedSource$1;->read([BII)I
+HSPLcom/android/okhttp/okio/RealBufferedSource;-><init>(Lcom/android/okhttp/okio/Source;)V
+HSPLcom/android/okhttp/okio/RealBufferedSource;-><init>(Lcom/android/okhttp/okio/Source;Lcom/android/okhttp/okio/Buffer;)V
 HSPLcom/android/okhttp/okio/RealBufferedSource;->access$000(Lcom/android/okhttp/okio/RealBufferedSource;)Z
 HSPLcom/android/okhttp/okio/RealBufferedSource;->buffer()Lcom/android/okhttp/okio/Buffer;
 HSPLcom/android/okhttp/okio/RealBufferedSource;->close()V
@@ -16404,71 +35109,565 @@
 HSPLcom/android/okhttp/okio/Timeout;->throwIfReached()V
 HSPLcom/android/okhttp/okio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/okio/Timeout;
 HSPLcom/android/okhttp/okio/Timeout;->timeoutNanos()J
+HSPLcom/android/okhttp/okio/Util;->checkOffsetAndCount(JJJ)V
 HSPLcom/android/okhttp/okio/Util;->reverseBytesInt(I)I
+HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;-><init>([BI)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;->derForm([BI)[B
+HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;->fromInputStream(ILjava/io/InputStream;)Lcom/android/org/bouncycastle/asn1/ASN1BitString;
+HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;->getOctets()[B
+HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;->getPadBits()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;->add(Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;->get(I)Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
+HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;->size()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;-><init>(Ljava/io/InputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;-><init>(Ljava/io/InputStream;I)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;-><init>(Ljava/io/InputStream;IZ)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;-><init>([B)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->buildDEREncodableVector(Lcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;)Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->buildEncodableVector()Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->buildObject(III)Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->createPrimitiveDERObject(ILcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;[[B)Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->getBuffer(Lcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;[[B)[B
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readLength()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readLength(Ljava/io/InputStream;I)I
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readTagNumber(Ljava/io/InputStream;I)I
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;-><init>(J)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;-><init>(Ljava/math/BigInteger;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;-><init>([BZ)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->encodedLength()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->getInstance(Lcom/android/org/bouncycastle/asn1/ASN1TaggedObject;Z)Lcom/android/org/bouncycastle/asn1/ASN1Integer;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/ASN1Integer;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->getPositiveValue()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->getValue()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->isMalformed([B)Z
+HSPLcom/android/org/bouncycastle/asn1/ASN1Null;->asn1Equals(Lcom/android/org/bouncycastle/asn1/ASN1Primitive;)Z
 HSPLcom/android/org/bouncycastle/asn1/ASN1Object;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Object;->getEncoded(Ljava/lang/String;)[B
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier$OidHandle;-><init>([B)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier$OidHandle;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier$OidHandle;->hashCode()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;-><init>(Ljava/lang/String;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;-><init>([B)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->asn1Equals(Lcom/android/org/bouncycastle/asn1/ASN1Primitive;)Z
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->doOutput(Ljava/io/ByteArrayOutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->encodedLength()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->fromOctetString([B)Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->getBody()[B
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->getId()Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->hashCode()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->intern()Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->isValidBranchID(Ljava/lang/String;I)Z
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->isValidIdentifier(Ljava/lang/String;)Z
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->toString()Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->writeField(Ljava/io/ByteArrayOutputStream;J)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;-><init>(Ljava/io/OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->write(I)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->write([B)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeEncoded(I[B)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeLength(I)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeTag(II)V
 HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->fromByteArray([B)Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
 HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;-><init>([Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/ASN1Sequence;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->getObjectAt(I)Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->getObjects()Ljava/util/Enumeration;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->size()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;Z)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/ASN1Set;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->getObjectAt(I)Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->getObjects()Ljava/util/Enumeration;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->size()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->sort()V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1StreamParser;-><init>(Ljava/io/InputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1StreamParser;-><init>(Ljava/io/InputStream;I)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1StreamParser;->readObject()Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
+HSPLcom/android/org/bouncycastle/asn1/ASN1StreamParser;->readTaggedObject(ZI)Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1StreamParser;->readVector()Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;
+HSPLcom/android/org/bouncycastle/asn1/ASN1StreamParser;->set00Check(Z)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1TaggedObject;-><init>(ZILcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1TaggedObject;->getObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/DERBitString;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/DERBitString;-><init>([B)V
+HSPLcom/android/org/bouncycastle/asn1/DERBitString;-><init>([BI)V
+HSPLcom/android/org/bouncycastle/asn1/DERBitString;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/DERBitString;->encodedLength()I
+HSPLcom/android/org/bouncycastle/asn1/DERBitString;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/DERBitString;
+HSPLcom/android/org/bouncycastle/asn1/DERFactory;->createSequence(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)Lcom/android/org/bouncycastle/asn1/ASN1Sequence;
+HSPLcom/android/org/bouncycastle/asn1/DERFactory;->createSet(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)Lcom/android/org/bouncycastle/asn1/ASN1Set;
+HSPLcom/android/org/bouncycastle/asn1/DERNull;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/DERNull;->encodedLength()I
+HSPLcom/android/org/bouncycastle/asn1/DEROutputStream;-><init>(Ljava/io/OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/DEROutputStream;->getDERSubStream()Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;
+HSPLcom/android/org/bouncycastle/asn1/DEROutputStream;->writeObject(Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/DERPrintableString;-><init>([B)V
+HSPLcom/android/org/bouncycastle/asn1/DERPrintableString;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/DERPrintableString;->encodedLength()I
+HSPLcom/android/org/bouncycastle/asn1/DERSequence;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/DERSequence;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)V
+HSPLcom/android/org/bouncycastle/asn1/DERSequence;-><init>([Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/DERSequence;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/DERSequence;->encodedLength()I
+HSPLcom/android/org/bouncycastle/asn1/DERSequence;->getBodyLength()I
+HSPLcom/android/org/bouncycastle/asn1/DERSet;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/DERSet;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/DERSet;->encodedLength()I
+HSPLcom/android/org/bouncycastle/asn1/DERSet;->getBodyLength()I
+HSPLcom/android/org/bouncycastle/asn1/DERTaggedObject;-><clinit>()V
+HSPLcom/android/org/bouncycastle/asn1/DERTaggedObject;-><init>(ZILcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/DLSequence;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)V
+HSPLcom/android/org/bouncycastle/asn1/DLSet;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)V
+HSPLcom/android/org/bouncycastle/asn1/DateUtil;-><clinit>()V
+HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;-><init>(Ljava/io/InputStream;I)V
+HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->getRemaining()I
+HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->read()I
+HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->read([BII)I
+HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->toByteArray()[B
+HSPLcom/android/org/bouncycastle/asn1/LimitedInputStream;-><init>(Ljava/io/InputStream;I)V
+HSPLcom/android/org/bouncycastle/asn1/LimitedInputStream;->setParentEofDetect(Z)V
+HSPLcom/android/org/bouncycastle/asn1/OIDTokenizer;-><init>(Ljava/lang/String;)V
+HSPLcom/android/org/bouncycastle/asn1/OIDTokenizer;->hasMoreTokens()Z
+HSPLcom/android/org/bouncycastle/asn1/OIDTokenizer;->nextToken()Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/asn1/StreamUtil;->calculateBodyLength(I)I
+HSPLcom/android/org/bouncycastle/asn1/StreamUtil;->calculateTagLength(I)I
+HSPLcom/android/org/bouncycastle/asn1/StreamUtil;->findLimit(Ljava/io/InputStream;)I
+HSPLcom/android/org/bouncycastle/asn1/pkcs/RSASSAPSSparams;-><clinit>()V
+HSPLcom/android/org/bouncycastle/asn1/x500/RDN;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Set;)V
+HSPLcom/android/org/bouncycastle/asn1/x500/RDN;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x500/RDN;
+HSPLcom/android/org/bouncycastle/asn1/x500/RDN;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x500/X500Name;-><clinit>()V
+HSPLcom/android/org/bouncycastle/asn1/x500/X500Name;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x500/X500Name;-><init>(Lcom/android/org/bouncycastle/asn1/x500/X500NameStyle;Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x500/X500Name;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x500/X500Name;
+HSPLcom/android/org/bouncycastle/asn1/x500/X500Name;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x500/style/AbstractX500NameStyle;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/x500/style/AbstractX500NameStyle;->copyHashTable(Ljava/util/Hashtable;)Ljava/util/Hashtable;
+HSPLcom/android/org/bouncycastle/asn1/x500/style/BCStyle;-><clinit>()V
+HSPLcom/android/org/bouncycastle/asn1/x500/style/BCStyle;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;->getAlgorithm()Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;
+HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;
+HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;->getParameters()Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
+HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;->getG()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/DSAParameter;
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;->getP()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;->getQ()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;-><init>(Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;->getAlgorithm()Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;
+HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
+HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;->parsePublicKey()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x509/TBSCertificate;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/TBSCertificate;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/TBSCertificate;
+HSPLcom/android/org/bouncycastle/asn1/x509/Time;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/Time;
+HSPLcom/android/org/bouncycastle/asn1/x509/X509Name;-><clinit>()V
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;-><init>()V
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->getBlockSize()I
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->getUnderlyingCipher()Lcom/android/org/bouncycastle/crypto/BlockCipher;
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->reset()V
 HSPLcom/android/org/bouncycastle/crypto/CryptoServicesRegistrar;->getSecureRandom()Ljava/security/SecureRandom;
+HSPLcom/android/org/bouncycastle/crypto/PBEParametersGenerator;-><init>()V
+HSPLcom/android/org/bouncycastle/crypto/PBEParametersGenerator;->PKCS5PasswordToUTF8Bytes([C)[B
 HSPLcom/android/org/bouncycastle/crypto/PBEParametersGenerator;->init([B[BI)V
+HSPLcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactory;->getSHA1()Lcom/android/org/bouncycastle/crypto/Digest;
+HSPLcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactoryOpenSSL;->getSHA1()Lcom/android/org/bouncycastle/crypto/Digest;
+HSPLcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactoryOpenSSL;->getSHA256()Lcom/android/org/bouncycastle/crypto/Digest;
+HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA1;-><init>()V
 HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;-><init>(Ljava/lang/String;I)V
 HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->doFinal([BI)I
+HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->getByteLength()I
 HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->getDigestSize()I
+HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->reset()V
 HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->update([BII)V
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;-><init>()V
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->getAlgorithmName()Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->getBlockSize()I
+HSPLcom/android/org/bouncycastle/crypto/engines/DESEngine;-><clinit>()V
+HSPLcom/android/org/bouncycastle/crypto/engines/DESEngine;-><init>()V
+HSPLcom/android/org/bouncycastle/crypto/engines/DESEngine;->desFunc([I[BI[BI)V
+HSPLcom/android/org/bouncycastle/crypto/engines/DESEngine;->generateWorkingKey(Z[B)[I
+HSPLcom/android/org/bouncycastle/crypto/engines/DESedeEngine;-><init>()V
+HSPLcom/android/org/bouncycastle/crypto/engines/DESedeEngine;->getAlgorithmName()Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/crypto/engines/DESedeEngine;->getBlockSize()I
+HSPLcom/android/org/bouncycastle/crypto/engines/DESedeEngine;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V
+HSPLcom/android/org/bouncycastle/crypto/engines/DESedeEngine;->processBlock([BI[BI)I
+HSPLcom/android/org/bouncycastle/crypto/engines/DESedeEngine;->reset()V
+HSPLcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator;-><init>(Lcom/android/org/bouncycastle/crypto/Digest;)V
+HSPLcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator;->F([BI[B[BI)V
+HSPLcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator;->generateDerivedKey(I)[B
+HSPLcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator;->generateDerivedMacParameters(I)Lcom/android/org/bouncycastle/crypto/CipherParameters;
+HSPLcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator;->generateDerivedParameters(I)Lcom/android/org/bouncycastle/crypto/CipherParameters;
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;-><clinit>()V
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;-><init>(Lcom/android/org/bouncycastle/crypto/Digest;)V
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;-><init>(Lcom/android/org/bouncycastle/crypto/Digest;I)V
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->doFinal([BI)I
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->getByteLength(Lcom/android/org/bouncycastle/crypto/Digest;)I
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->getMacSize()I
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->init(Lcom/android/org/bouncycastle/crypto/CipherParameters;)V
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->update([BII)V
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->xorPad([BIB)V
+HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;)V
+HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;->getAlgorithmName()Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;->getBlockSize()I
+HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V
+HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;->processBlock([BI[BI)I
+HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;->reset()V
+HSPLcom/android/org/bouncycastle/crypto/paddings/PKCS7Padding;-><init>()V
+HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;)V
+HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;Lcom/android/org/bouncycastle/crypto/paddings/BlockCipherPadding;)V
+HSPLcom/android/org/bouncycastle/crypto/params/AsymmetricKeyParameter;-><init>(Z)V
+HSPLcom/android/org/bouncycastle/crypto/params/DSAKeyParameters;-><init>(ZLcom/android/org/bouncycastle/crypto/params/DSAParameters;)V
+HSPLcom/android/org/bouncycastle/crypto/params/DSAParameters;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
+HSPLcom/android/org/bouncycastle/crypto/params/DSAParameters;->getP()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/crypto/params/DSAParameters;->getQ()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/crypto/params/DSAPublicKeyParameters;-><init>(Ljava/math/BigInteger;Lcom/android/org/bouncycastle/crypto/params/DSAParameters;)V
+HSPLcom/android/org/bouncycastle/crypto/params/DSAPublicKeyParameters;->validate(Ljava/math/BigInteger;Lcom/android/org/bouncycastle/crypto/params/DSAParameters;)Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/crypto/params/KeyParameter;-><init>([B)V
 HSPLcom/android/org/bouncycastle/crypto/params/KeyParameter;-><init>([BII)V
 HSPLcom/android/org/bouncycastle/crypto/params/KeyParameter;->getKey()[B
+HSPLcom/android/org/bouncycastle/crypto/params/ParametersWithIV;-><init>(Lcom/android/org/bouncycastle/crypto/CipherParameters;[BII)V
+HSPLcom/android/org/bouncycastle/crypto/params/ParametersWithIV;->getIV()[B
+HSPLcom/android/org/bouncycastle/crypto/params/ParametersWithIV;->getParameters()Lcom/android/org/bouncycastle/crypto/CipherParameters;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;-><init>(Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->getEncoded()[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->getParams()Ljava/security/interfaces/DSAParams;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->getY()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->hashCode()I
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->isNotNull(Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)Z
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSAUtil;->isDsaOid(Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSAUtil;->toDSAParameters(Ljava/security/interfaces/DSAParams;)Lcom/android/org/bouncycastle/crypto/params/DSAParameters;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/KeyFactorySpi;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/KeyFactorySpi;->engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/KeyFactorySpi;->generatePublic(Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/ec/KeyFactorySpi$EC;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/ec/KeyFactorySpi;-><init>(Ljava/lang/String;Lcom/android/org/bouncycastle/jcajce/provider/config/ProviderConfiguration;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/ec/KeyFactorySpi;->engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/ec/KeyFactorySpi;->generatePublic(Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/KeyFactorySpi;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/KeyFactorySpi;->engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/KeyFactorySpi;->generatePublic(Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/RSAUtil;->isRsaOid(Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/BaseKeyFactorySpi;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/BaseKeyFactorySpi;->engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/KeyUtil;->getEncodedSubjectPublicKeyInfo(Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/KeyUtil;->getEncodedSubjectPublicKeyInfo(Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/PKCS12BagAttributeCarrierImpl;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/PKCS12BagAttributeCarrierImpl;-><init>(Ljava/util/Hashtable;Ljava/util/Vector;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/CertificateFactory;-><clinit>()V
 HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$Std;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry;-><init>(Lcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;Ljava/lang/String;Ljava/security/cert/Certificate;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry;->getObject()Ljava/lang/Object;
 HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry;->getType()I
 HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;-><init>(I)V
 HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineAliases()Ljava/util/Enumeration;
 HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineGetCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;
 HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineLoad(Ljava/io/InputStream;[C)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineSetCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineSize()I
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/AES$ECB$1;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/AES$ECB$1;->get()Lcom/android/org/bouncycastle/crypto/BlockCipher;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/AES$ECB;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$BasePBKDF2;-><init>(Ljava/lang/String;II)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$BasePBKDF2;-><init>(Ljava/lang/String;IIII)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$BasePBKDF2;-><init>(Ljava/lang/String;IILcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$1;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$BasePBKDF2;->engineGenerateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$BasePBKDF2WithHmacSHA1;-><init>(Ljava/lang/String;I)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$PBKDF2WithHmacSHA1UTF8;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;-><init>(Ljava/lang/String;Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;IIIILjavax/crypto/spec/PBEKeySpec;Lcom/android/org/bouncycastle/crypto/CipherParameters;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;->getEncoded()[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->doFinal([BI)I
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->getOutputSize(I)I
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->getUnderlyingCipher()Lcom/android/org/bouncycastle/crypto/BlockCipher;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->processBytes([BII[BI)I
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;-><init>(Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BlockCipherProvider;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineDoFinal([BII)[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineGetOutputSize(I)I
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineInit(ILjava/security/Key;Ljava/security/SecureRandom;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineInit(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseSecretKeyFactory;-><init>(Ljava/lang/String;Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->convertPassword(ILjavax/crypto/spec/PBEKeySpec;)[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->makePBEGenerator(II)Lcom/android/org/bouncycastle/crypto/PBEParametersGenerator;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->makePBEMacParameters(Ljavax/crypto/spec/PBEKeySpec;III)Lcom/android/org/bouncycastle/crypto/CipherParameters;
+HSPLcom/android/org/bouncycastle/jcajce/util/BCJcaJceHelper;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/util/BCJcaJceHelper;->getBouncyCastleProvider()Ljava/security/Provider;
 HSPLcom/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/util/ProviderJcaJceHelper;-><init>(Ljava/security/Provider;)V
 HSPLcom/android/org/bouncycastle/jce/provider/CertStoreCollectionSpi;-><init>(Ljava/security/cert/CertStoreParameters;)V
+HPLcom/android/org/bouncycastle/jce/provider/CertStoreCollectionSpi;->engineGetCertificates(Ljava/security/cert/CertSelector;)Ljava/util/Collection;
+HSPLcom/android/org/bouncycastle/util/Arrays;->areEqual([B[B)Z
 HSPLcom/android/org/bouncycastle/util/Arrays;->clone([B)[B
+HSPLcom/android/org/bouncycastle/util/Arrays;->copyOfRange([BII)[B
+HSPLcom/android/org/bouncycastle/util/Arrays;->fill([BB)V
+HSPLcom/android/org/bouncycastle/util/Arrays;->getLength(II)I
+HSPLcom/android/org/bouncycastle/util/Arrays;->hashCode([B)I
+HSPLcom/android/org/bouncycastle/util/Integers;->valueOf(I)Ljava/lang/Integer;
+HSPLcom/android/org/bouncycastle/util/Pack;->bigEndianToInt([BI)I
+HSPLcom/android/org/bouncycastle/util/Pack;->intToBigEndian(I[BI)V
+HSPLcom/android/org/bouncycastle/util/Properties$1;-><init>(Ljava/lang/String;)V
+HSPLcom/android/org/bouncycastle/util/Properties$1;->run()Ljava/lang/Object;
+HSPLcom/android/org/bouncycastle/util/Properties;->access$000()Ljava/lang/ThreadLocal;
+HSPLcom/android/org/bouncycastle/util/Properties;->fetchProperty(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/util/Properties;->isOverrideSet(Ljava/lang/String;)Z
+HSPLcom/android/org/bouncycastle/util/Strings;->toLowerCase(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/util/Strings;->toUTF8ByteArray([C)[B
+HSPLcom/android/org/bouncycastle/util/Strings;->toUTF8ByteArray([CLjava/io/OutputStream;)V
+HSPLcom/android/org/bouncycastle/util/Strings;->toUpperCase(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/util/io/Streams;->readFully(Ljava/io/InputStream;[B)I
+HSPLcom/android/org/bouncycastle/util/io/Streams;->readFully(Ljava/io/InputStream;[BII)I
+HSPLcom/android/org/bouncycastle/x509/X509Util;-><clinit>()V
 HSPLcom/android/org/kxml2/io/KXmlParser;-><init>()V
 HSPLcom/android/org/kxml2/io/KXmlParser;->adjustNsp()Z
+HSPLcom/android/org/kxml2/io/KXmlParser;->close()V
 HSPLcom/android/org/kxml2/io/KXmlParser;->ensureCapacity([Ljava/lang/String;I)[Ljava/lang/String;
 HSPLcom/android/org/kxml2/io/KXmlParser;->fillBuffer(I)Z
+HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeCount()I
+HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeName(I)Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeNamespace(I)Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributePrefix(I)Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeValue(I)Ljava/lang/String;
 HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getColumnNumber()I
 HSPLcom/android/org/kxml2/io/KXmlParser;->getDepth()I
 HSPLcom/android/org/kxml2/io/KXmlParser;->getEventType()I
+HSPLcom/android/org/kxml2/io/KXmlParser;->getLineNumber()I
 HSPLcom/android/org/kxml2/io/KXmlParser;->getName()Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getNamespace()Ljava/lang/String;
 HSPLcom/android/org/kxml2/io/KXmlParser;->getNamespace(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/org/kxml2/io/KXmlParser;->getNamespaceCount(I)I
+HSPLcom/android/org/kxml2/io/KXmlParser;->getPositionDescription()Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getPrefix()Ljava/lang/String;
 HSPLcom/android/org/kxml2/io/KXmlParser;->getText()Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->keepNamespaceAttributes()V
 HSPLcom/android/org/kxml2/io/KXmlParser;->next()I
 HSPLcom/android/org/kxml2/io/KXmlParser;->next(Z)I
+HSPLcom/android/org/kxml2/io/KXmlParser;->nextTag()I
+HSPLcom/android/org/kxml2/io/KXmlParser;->nextText()Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->nextToken()I
 HSPLcom/android/org/kxml2/io/KXmlParser;->parseStartTag(ZZ)V
 HSPLcom/android/org/kxml2/io/KXmlParser;->peekCharacter()I
 HSPLcom/android/org/kxml2/io/KXmlParser;->peekType(Z)I
 HSPLcom/android/org/kxml2/io/KXmlParser;->read(C)V
 HSPLcom/android/org/kxml2/io/KXmlParser;->read([C)V
+HSPLcom/android/org/kxml2/io/KXmlParser;->readComment(Z)Ljava/lang/String;
 HSPLcom/android/org/kxml2/io/KXmlParser;->readEndTag()V
 HSPLcom/android/org/kxml2/io/KXmlParser;->readEntity(Ljava/lang/StringBuilder;ZZLcom/android/org/kxml2/io/KXmlParser$ValueContext;)V
 HSPLcom/android/org/kxml2/io/KXmlParser;->readName()Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->readUntil([CZ)Ljava/lang/String;
 HSPLcom/android/org/kxml2/io/KXmlParser;->readValue(CZZLcom/android/org/kxml2/io/KXmlParser$ValueContext;)Ljava/lang/String;
 HSPLcom/android/org/kxml2/io/KXmlParser;->readXmlDeclaration()V
+HSPLcom/android/org/kxml2/io/KXmlParser;->require(ILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/org/kxml2/io/KXmlParser;->setFeature(Ljava/lang/String;Z)V
 HSPLcom/android/org/kxml2/io/KXmlParser;->setInput(Ljava/io/InputStream;Ljava/lang/String;)V
 HSPLcom/android/org/kxml2/io/KXmlParser;->setInput(Ljava/io/Reader;)V
 HSPLcom/android/org/kxml2/io/KXmlParser;->skip()V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;-><init>()V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(C)V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(Ljava/lang/String;)V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(Ljava/lang/String;II)V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->check(Z)V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->endDocument()V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->flush()V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->flushBuffer()V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->setFeature(Ljava/lang/String;Z)V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->setOutput(Ljava/io/Writer;)V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->writeEscaped(Ljava/lang/String;I)V
+HSPLcom/android/server/AppWidgetBackupBridge;->register(Lcom/android/server/WidgetBackupProvider;)V
+PLcom/android/server/BootReceiver$1;-><init>(Lcom/android/server/BootReceiver;Landroid/content/Context;)V
+PLcom/android/server/BootReceiver$1;->run()V
+PLcom/android/server/BootReceiver$2;-><init>(Lcom/android/server/BootReceiver;Ljava/lang/String;ILandroid/os/DropBoxManager;Ljava/lang/String;)V
+PLcom/android/server/BootReceiver;-><init>()V
+PLcom/android/server/BootReceiver;->access$000(Lcom/android/server/BootReceiver;Landroid/content/Context;)V
+PLcom/android/server/BootReceiver;->access$100(Lcom/android/server/BootReceiver;Landroid/content/Context;)V
+HPLcom/android/server/BootReceiver;->addAuditErrorsToDropBox(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;ILjava/lang/String;)V
+PLcom/android/server/BootReceiver;->addFileToDropBox(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
+HPLcom/android/server/BootReceiver;->addFileWithFootersToDropBox(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
+HPLcom/android/server/BootReceiver;->addFsckErrorsToDropBoxAndLogFsStat(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;ILjava/lang/String;)V
+PLcom/android/server/BootReceiver;->addLastkToDropBox(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
+PLcom/android/server/BootReceiver;->addTextToDropBox(Landroid/os/DropBoxManager;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/BootReceiver;->getBootHeadersToLogAndUpdate()Ljava/lang/String;
+PLcom/android/server/BootReceiver;->getCurrentBootHeaders()Ljava/lang/String;
+PLcom/android/server/BootReceiver;->getPreviousBootHeaders()Ljava/lang/String;
+PLcom/android/server/BootReceiver;->logBootEvents(Landroid/content/Context;)V
+PLcom/android/server/BootReceiver;->logFsMountTime()V
+PLcom/android/server/BootReceiver;->logFsShutdownTime()V
+PLcom/android/server/BootReceiver;->logStatsdShutdownAtom(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/BootReceiver;->logSystemServerShutdownTimeMetrics()V
+PLcom/android/server/BootReceiver;->logTronShutdownMetric(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/BootReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HPLcom/android/server/BootReceiver;->readTimestamps()Ljava/util/HashMap;
+PLcom/android/server/BootReceiver;->removeOldUpdatePackages(Landroid/content/Context;)V
+HPLcom/android/server/BootReceiver;->writeTimestamps(Ljava/util/HashMap;)V
+HSPLcom/android/server/LocalServices;->addService(Ljava/lang/Class;Ljava/lang/Object;)V
+HSPLcom/android/server/LocalServices;->getService(Ljava/lang/Class;)Ljava/lang/Object;
 HSPLcom/android/server/NetworkManagementSocketTagger$1;->initialValue()Lcom/android/server/NetworkManagementSocketTagger$SocketTags;
 HSPLcom/android/server/NetworkManagementSocketTagger$1;->initialValue()Ljava/lang/Object;
 HSPLcom/android/server/NetworkManagementSocketTagger$SocketTags;-><init>()V
 HSPLcom/android/server/NetworkManagementSocketTagger;-><init>()V
+HSPLcom/android/server/NetworkManagementSocketTagger;->getThreadSocketStatsTag()I
 HSPLcom/android/server/NetworkManagementSocketTagger;->install()V
+HSPLcom/android/server/NetworkManagementSocketTagger;->setKernelCounterSet(II)V
 HSPLcom/android/server/NetworkManagementSocketTagger;->setThreadSocketStatsTag(I)I
+HSPLcom/android/server/NetworkManagementSocketTagger;->setThreadSocketStatsUid(I)I
 HSPLcom/android/server/NetworkManagementSocketTagger;->tag(Ljava/io/FileDescriptor;)V
 HSPLcom/android/server/NetworkManagementSocketTagger;->tagSocketFd(Ljava/io/FileDescriptor;II)V
+HSPLcom/android/server/NetworkManagementSocketTagger;->unTagSocketFd(Ljava/io/FileDescriptor;)V
+HSPLcom/android/server/NetworkManagementSocketTagger;->untag(Ljava/io/FileDescriptor;)V
+HSPLcom/android/server/SystemConfig$PermissionEntry;-><init>(Ljava/lang/String;Z)V
+HSPLcom/android/server/SystemConfig$SharedLibraryEntry;-><init>(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
+HSPLcom/android/server/SystemConfig;-><init>()V
+HSPLcom/android/server/SystemConfig;->addFeature(Ljava/lang/String;I)V
+HSPLcom/android/server/SystemConfig;->getAllowImplicitBroadcasts()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getAllowInDataUsageSave()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getAllowInPowerSave()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getAllowInPowerSaveExceptIdle()Landroid/util/ArraySet;
+PLcom/android/server/SystemConfig;->getAllowUnthrottledLocation()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getAllowedAssociations()Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getAndClearPackageToUserTypeBlacklist()Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getAndClearPackageToUserTypeWhitelist()Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getAppDataIsolationWhitelistedApps()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getAvailableFeatures()Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getBackupTransportWhitelist()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getBugreportWhitelistedPackages()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getComponentsEnabledStates(Ljava/lang/String;)Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getDisabledUntilUsedPreinstalledCarrierApps()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getDisabledUntilUsedPreinstalledCarrierAssociatedApps()Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getGlobalGids()[I
+HSPLcom/android/server/SystemConfig;->getHiddenApiWhitelistedApps()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getInstance()Lcom/android/server/SystemConfig;
+HSPLcom/android/server/SystemConfig;->getPermissions()Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getPrivAppPermissions(Ljava/lang/String;)Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getProductPrivAppDenyPermissions(Ljava/lang/String;)Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getProductPrivAppPermissions(Ljava/lang/String;)Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getSharedLibraries()Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getSplitPermissions()Ljava/util/ArrayList;
+HSPLcom/android/server/SystemConfig;->getSystemExtPrivAppPermissions(Ljava/lang/String;)Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getSystemPermissions()Landroid/util/SparseArray;
+HSPLcom/android/server/SystemConfig;->isSystemProcess()Z
+HSPLcom/android/server/SystemConfig;->readAllPermissions()V
+HSPLcom/android/server/SystemConfig;->readComponentOverrides(Lorg/xmlpull/v1/XmlPullParser;Ljava/io/File;)V
+HSPLcom/android/server/SystemConfig;->readInstallInUserType(Lorg/xmlpull/v1/XmlPullParser;Ljava/util/Map;Ljava/util/Map;)V
+HSPLcom/android/server/SystemConfig;->readPermission(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V
+HSPLcom/android/server/SystemConfig;->readPermissions(Ljava/io/File;I)V
+HSPLcom/android/server/SystemConfig;->readPermissionsFromXml(Ljava/io/File;I)V
+HSPLcom/android/server/SystemConfig;->readPrivAppPermissions(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+HSPLcom/android/server/SystemConfig;->readSplitPermission(Lorg/xmlpull/v1/XmlPullParser;Ljava/io/File;)V
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;-><init>(Landroid/content/Context;I)V
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->accountAdded(Landroid/content/Context;I)V
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->accountAddedInternal(I)V
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->getStashFile(I)Ljava/io/File;
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLookupBatch;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLookupBatch;
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;-><init>()V
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->emptyArray()[Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setNetworkEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setValidationProbeEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ValidationProbeEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkEvent;-><init>()V
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;->emptyArray()[Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ValidationProbeEvent;-><init>()V
+HSPLcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;-><init>()V
+PLcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;-><init>(Lcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;)V
+PLcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;->toString()Ljava/lang/String;
+HSPLcom/android/server/net/BaseNetdEventCallback;-><init>()V
+HPLcom/android/server/net/BaseNetdEventCallback;->onConnectEvent(Ljava/lang/String;IJI)V
+HPLcom/android/server/net/BaseNetdEventCallback;->onPrivateDnsValidationEvent(ILjava/lang/String;Ljava/lang/String;Z)V
+HSPLcom/android/server/net/BaseNetworkObserver;-><init>()V
+HSPLcom/android/server/net/BaseNetworkObserver;->addressRemoved(Ljava/lang/String;Landroid/net/LinkAddress;)V
+HSPLcom/android/server/net/BaseNetworkObserver;->addressUpdated(Ljava/lang/String;Landroid/net/LinkAddress;)V
+HPLcom/android/server/net/BaseNetworkObserver;->interfaceClassDataActivityChanged(Ljava/lang/String;ZJ)V
+HSPLcom/android/server/net/BaseNetworkObserver;->interfaceDnsServerInfo(Ljava/lang/String;J[Ljava/lang/String;)V
+HSPLcom/android/server/net/BaseNetworkObserver;->interfaceLinkStateChanged(Ljava/lang/String;Z)V
+HPLcom/android/server/net/BaseNetworkObserver;->limitReached(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/net/BaseNetworkObserver;->routeRemoved(Landroid/net/RouteInfo;)V
+HSPLcom/android/server/net/BaseNetworkObserver;->routeUpdated(Landroid/net/RouteInfo;)V
+HSPLcom/android/server/usage/AppStandbyInternal$AppIdleStateChangeListener;-><init>()V
+HPLcom/android/server/usage/AppStandbyInternal$AppIdleStateChangeListener;->onUserInteractionStarted(Ljava/lang/String;I)V
+HSPLcom/android/server/usage/AppStandbyInternal;->newAppStandbyController(Ljava/lang/ClassLoader;Landroid/content/Context;Landroid/os/Looper;)Lcom/android/server/usage/AppStandbyInternal;
+HPLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;-><init>()V
+HPLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;->clear()Lcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;
+HPLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;->computeSerializedSize()I
+PLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;->mergeFrom(Lcom/android/framework/protobuf/nano/CodedInputByteBufferNano;)Lcom/android/framework/protobuf/nano/MessageNano;
+HPLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;->mergeFrom(Lcom/android/framework/protobuf/nano/CodedInputByteBufferNano;)Lcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;
+HPLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;->parseFrom([B)Lcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;
+HPLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+HSPLcom/android/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/telephony/Rlog;->e(Ljava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/telephony/Rlog;->isLoggable(Ljava/lang/String;I)Z
 HSPLcom/android/telephony/Rlog;->log(ILjava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/telephony/Rlog;->pii(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
+HSPLcom/android/telephony/Rlog;->pii(ZLjava/lang/Object;)Ljava/lang/String;
+HSPLcom/android/telephony/Rlog;->secureHash([B)Ljava/lang/String;
 HSPLcom/android/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/String;)I
 HSPLcom/google/android/collect/Lists;->newArrayList()Ljava/util/ArrayList;
+HSPLcom/google/android/collect/Lists;->newArrayList([Ljava/lang/Object;)Ljava/util/ArrayList;
+HSPLcom/google/android/collect/Maps;->newArrayMap()Landroid/util/ArrayMap;
 HSPLcom/google/android/collect/Maps;->newHashMap()Ljava/util/HashMap;
+HSPLcom/google/android/collect/Sets;->newArraySet()Landroid/util/ArraySet;
+HSPLcom/google/android/collect/Sets;->newArraySet([Ljava/lang/Object;)Landroid/util/ArraySet;
 HSPLcom/google/android/collect/Sets;->newHashSet()Ljava/util/HashSet;
 HSPLcom/google/android/collect/Sets;->newHashSet([Ljava/lang/Object;)Ljava/util/HashSet;
 HSPLcom/google/android/gles_jni/EGLConfigImpl;-><init>(J)V
+HSPLcom/google/android/gles_jni/EGLContextImpl;-><init>(J)V
+HSPLcom/google/android/gles_jni/EGLContextImpl;->equals(Ljava/lang/Object;)Z
+HSPLcom/google/android/gles_jni/EGLContextImpl;->getGL()Ljavax/microedition/khronos/opengles/GL;
+HSPLcom/google/android/gles_jni/EGLDisplayImpl;-><init>(J)V
+HSPLcom/google/android/gles_jni/EGLDisplayImpl;->equals(Ljava/lang/Object;)Z
 HSPLcom/google/android/gles_jni/EGLImpl;->eglCreateContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljavax/microedition/khronos/egl/EGLContext;[I)Ljavax/microedition/khronos/egl/EGLContext;
+HSPLcom/google/android/gles_jni/EGLImpl;->eglCreatePbufferSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;[I)Ljavax/microedition/khronos/egl/EGLSurface;
+HSPLcom/google/android/gles_jni/EGLImpl;->eglCreateWindowSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljava/lang/Object;[I)Ljavax/microedition/khronos/egl/EGLSurface;
 HSPLcom/google/android/gles_jni/EGLImpl;->eglGetDisplay(Ljava/lang/Object;)Ljavax/microedition/khronos/egl/EGLDisplay;
+HSPLcom/google/android/gles_jni/EGLSurfaceImpl;-><init>(J)V
+HSPLcom/google/android/gles_jni/EGLSurfaceImpl;->equals(Ljava/lang/Object;)Z
+HSPLcom/google/android/gles_jni/GLImpl;-><init>()V
+HPLcom/google/android/rappor/Encoder;-><init>(Ljava/util/Random;Ljava/security/MessageDigest;Ljava/security/MessageDigest;[BLjava/lang/String;IDDDII)V
+HPLcom/google/android/rappor/Encoder;->checkArgument(ZLjava/lang/Object;)V
+HPLcom/google/android/rappor/Encoder;->computeInstantaneousRandomizedResponse(Ljava/util/BitSet;)Ljava/util/BitSet;
+HPLcom/google/android/rappor/Encoder;->computePermanentRandomizedResponse(Ljava/util/BitSet;)Ljava/util/BitSet;
+HPLcom/google/android/rappor/Encoder;->encodeBits(Ljava/util/BitSet;)[B
+HPLcom/google/android/rappor/Encoder;->encodeBoolean(Z)[B
+HPLcom/google/android/rappor/HmacDrbg;-><init>([B[B)V
+HPLcom/google/android/rappor/HmacDrbg;->hash([B)[B
+HPLcom/google/android/rappor/HmacDrbg;->hmacDrbgGenerate([BII)V
+HPLcom/google/android/rappor/HmacDrbg;->hmacDrbgUpdate([B)V
+HPLcom/google/android/rappor/HmacDrbg;->nextBytes(I)[B
+HPLcom/google/android/rappor/HmacDrbg;->nextBytes([B)V
+HPLcom/google/android/rappor/HmacDrbg;->nextBytes([BII)V
+HPLcom/google/android/rappor/HmacDrbg;->setKey([B)V
+HSPLcom/google/android/textclassifier/ActionsSuggestionsModel;->getLocales(I)Ljava/lang/String;
+HSPLcom/google/android/textclassifier/ActionsSuggestionsModel;->getVersion(I)I
+HSPLcom/google/android/textclassifier/AnnotatorModel;->getLocales(I)Ljava/lang/String;
+HSPLcom/google/android/textclassifier/AnnotatorModel;->getVersion(I)I
+HSPLcom/google/android/textclassifier/LangIdModel;->getVersion(I)I
 HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)V
 HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;)V
 HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;Z)V
@@ -16506,10 +35705,12 @@
 HSPLdalvik/system/DelegateLastClassLoader;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V
 HSPLdalvik/system/DelegateLastClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)V
 HSPLdalvik/system/DelegateLastClassLoader;->loadClass(Ljava/lang/String;Z)Ljava/lang/Class;
+HSPLdalvik/system/DexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V
 HSPLdalvik/system/DexFile;-><init>(Ljava/io/File;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V
 HSPLdalvik/system/DexFile;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V
 HSPLdalvik/system/DexFile;->defineClass(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Object;Ldalvik/system/DexFile;Ljava/util/List;)Ljava/lang/Class;
 HSPLdalvik/system/DexFile;->finalize()V
+HSPLdalvik/system/DexFile;->getName()Ljava/lang/String;
 HSPLdalvik/system/DexFile;->loadClassBinaryName(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/List;)Ljava/lang/Class;
 HSPLdalvik/system/DexFile;->openDexFile(Ljava/lang/String;Ljava/lang/String;ILjava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ljava/lang/Object;
 HSPLdalvik/system/DexPathList$Element;-><init>(Ldalvik/system/DexFile;Ljava/io/File;)V
@@ -16550,10 +35751,14 @@
 HSPLdalvik/system/SocketTagger;-><init>()V
 HSPLdalvik/system/SocketTagger;->get()Ldalvik/system/SocketTagger;
 HSPLdalvik/system/SocketTagger;->set(Ldalvik/system/SocketTagger;)V
+HSPLdalvik/system/SocketTagger;->tag(Ljava/net/Socket;)V
+HSPLdalvik/system/SocketTagger;->untag(Ljava/net/Socket;)V
 HSPLdalvik/system/VMRuntime;->getInstructionSet(Ljava/lang/String;)Ljava/lang/String;
 HSPLdalvik/system/VMRuntime;->getRuntime()Ldalvik/system/VMRuntime;
 HSPLdalvik/system/VMRuntime;->getTargetSdkVersion()I
 HSPLdalvik/system/VMRuntime;->hiddenApiUsed(ILjava/lang/String;Ljava/lang/String;IZ)V
+HSPLdalvik/system/VMRuntime;->is64BitAbi(Ljava/lang/String;)Z
+HSPLdalvik/system/VMRuntime;->is64BitInstructionSet(Ljava/lang/String;)Z
 HSPLdalvik/system/VMRuntime;->notifyNativeAllocation()V
 HSPLdalvik/system/VMRuntime;->registerNativeAllocation(I)V
 HSPLdalvik/system/VMRuntime;->registerNativeFree(I)V
@@ -16567,6 +35772,7 @@
 HSPLdalvik/system/ZygoteHooks;->onEndPreload()V
 HSPLdalvik/system/ZygoteHooks;->postForkChild(IZZLjava/lang/String;)V
 HSPLdalvik/system/ZygoteHooks;->postForkCommon()V
+HSPLdalvik/system/ZygoteHooks;->postForkSystemServer(I)V
 HSPLdalvik/system/ZygoteHooks;->preFork()V
 HSPLdalvik/system/ZygoteHooks;->waitUntilAllThreadsStopped()V
 HSPLjava/io/Bits;->getBoolean([BI)Z
@@ -16604,11 +35810,14 @@
 HSPLjava/io/BufferedReader;->close()V
 HSPLjava/io/BufferedReader;->ensureOpen()V
 HSPLjava/io/BufferedReader;->fill()V
+HSPLjava/io/BufferedReader;->mark(I)V
 HSPLjava/io/BufferedReader;->read()I
 HSPLjava/io/BufferedReader;->read([CII)I
 HSPLjava/io/BufferedReader;->read1([CII)I
 HSPLjava/io/BufferedReader;->readLine()Ljava/lang/String;
 HSPLjava/io/BufferedReader;->readLine(Z)Ljava/lang/String;
+HSPLjava/io/BufferedReader;->reset()V
+HSPLjava/io/BufferedReader;->skip(J)J
 HSPLjava/io/BufferedWriter;-><init>(Ljava/io/Writer;)V
 HSPLjava/io/BufferedWriter;-><init>(Ljava/io/Writer;I)V
 HSPLjava/io/BufferedWriter;->close()V
@@ -16619,6 +35828,7 @@
 HSPLjava/io/BufferedWriter;->newLine()V
 HSPLjava/io/BufferedWriter;->write(I)V
 HSPLjava/io/BufferedWriter;->write(Ljava/lang/String;II)V
+HSPLjava/io/BufferedWriter;->write([CII)V
 HSPLjava/io/ByteArrayInputStream;-><init>([B)V
 HSPLjava/io/ByteArrayInputStream;-><init>([BII)V
 HSPLjava/io/ByteArrayInputStream;->available()I
@@ -16647,7 +35857,9 @@
 HSPLjava/io/CharArrayWriter;->flush()V
 HSPLjava/io/CharArrayWriter;->reset()V
 HSPLjava/io/CharArrayWriter;->toCharArray()[C
+HSPLjava/io/CharArrayWriter;->toString()Ljava/lang/String;
 HSPLjava/io/CharArrayWriter;->write(I)V
+HSPLjava/io/CharArrayWriter;->write([CII)V
 HSPLjava/io/DataInputStream;-><init>(Ljava/io/InputStream;)V
 HSPLjava/io/DataInputStream;->read([B)I
 HSPLjava/io/DataInputStream;->read([BII)I
@@ -16657,6 +35869,7 @@
 HSPLjava/io/DataInputStream;->readFully([BII)V
 HSPLjava/io/DataInputStream;->readInt()I
 HSPLjava/io/DataInputStream;->readLong()J
+HSPLjava/io/DataInputStream;->readShort()S
 HSPLjava/io/DataInputStream;->readUTF()Ljava/lang/String;
 HSPLjava/io/DataInputStream;->readUTF(Ljava/io/DataInput;)Ljava/lang/String;
 HSPLjava/io/DataInputStream;->readUnsignedByte()I
@@ -16669,11 +35882,15 @@
 HSPLjava/io/DataOutputStream;->write([BII)V
 HSPLjava/io/DataOutputStream;->writeBoolean(Z)V
 HSPLjava/io/DataOutputStream;->writeByte(I)V
+HSPLjava/io/DataOutputStream;->writeFloat(F)V
 HSPLjava/io/DataOutputStream;->writeInt(I)V
 HSPLjava/io/DataOutputStream;->writeLong(J)V
 HSPLjava/io/DataOutputStream;->writeShort(I)V
 HSPLjava/io/DataOutputStream;->writeUTF(Ljava/lang/String;)V
 HSPLjava/io/DataOutputStream;->writeUTF(Ljava/lang/String;Ljava/io/DataOutput;)I
+HSPLjava/io/DeleteOnExitHook$1;-><init>()V
+HSPLjava/io/DeleteOnExitHook;-><clinit>()V
+HSPLjava/io/DeleteOnExitHook;->add(Ljava/lang/String;)V
 HSPLjava/io/EOFException;-><init>()V
 HSPLjava/io/EOFException;-><init>(Ljava/lang/String;)V
 HSPLjava/io/ExpiringCache;->clear()V
@@ -16683,11 +35900,15 @@
 HSPLjava/io/File;-><init>(Ljava/lang/String;I)V
 HSPLjava/io/File;-><init>(Ljava/lang/String;Ljava/io/File;)V
 HSPLjava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/io/File;->canExecute()Z
 HSPLjava/io/File;->canRead()Z
 HSPLjava/io/File;->canWrite()Z
 HSPLjava/io/File;->compareTo(Ljava/io/File;)I
+HSPLjava/io/File;->compareTo(Ljava/lang/Object;)I
 HSPLjava/io/File;->createNewFile()Z
+HSPLjava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
 HSPLjava/io/File;->delete()Z
+HSPLjava/io/File;->deleteOnExit()V
 HSPLjava/io/File;->equals(Ljava/lang/Object;)Z
 HSPLjava/io/File;->exists()Z
 HSPLjava/io/File;->getAbsoluteFile()Ljava/io/File;
@@ -16710,13 +35931,18 @@
 HSPLjava/io/File;->lastModified()J
 HSPLjava/io/File;->length()J
 HSPLjava/io/File;->list()[Ljava/lang/String;
+HSPLjava/io/File;->list(Ljava/io/FilenameFilter;)[Ljava/lang/String;
 HSPLjava/io/File;->listFiles()[Ljava/io/File;
 HSPLjava/io/File;->listFiles(Ljava/io/FileFilter;)[Ljava/io/File;
 HSPLjava/io/File;->listFiles(Ljava/io/FilenameFilter;)[Ljava/io/File;
 HSPLjava/io/File;->mkdir()Z
 HSPLjava/io/File;->mkdirs()Z
 HSPLjava/io/File;->renameTo(Ljava/io/File;)Z
+HSPLjava/io/File;->setExecutable(ZZ)Z
 HSPLjava/io/File;->setLastModified(J)Z
+HSPLjava/io/File;->setReadable(ZZ)Z
+HSPLjava/io/File;->setWritable(ZZ)Z
+HSPLjava/io/File;->slashify(Ljava/lang/String;Z)Ljava/lang/String;
 HSPLjava/io/File;->toPath()Ljava/nio/file/Path;
 HSPLjava/io/File;->toString()Ljava/lang/String;
 HSPLjava/io/File;->toURI()Ljava/net/URI;
@@ -16748,6 +35974,8 @@
 HSPLjava/io/FileOutputStream;-><init>(Ljava/io/File;Z)V
 HSPLjava/io/FileOutputStream;-><init>(Ljava/io/FileDescriptor;)V
 HSPLjava/io/FileOutputStream;-><init>(Ljava/io/FileDescriptor;Z)V
+HSPLjava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
+HSPLjava/io/FileOutputStream;-><init>(Ljava/lang/String;Z)V
 HSPLjava/io/FileOutputStream;->close()V
 HSPLjava/io/FileOutputStream;->finalize()V
 HSPLjava/io/FileOutputStream;->getChannel()Ljava/nio/channels/FileChannel;
@@ -16759,22 +35987,28 @@
 HSPLjava/io/FileReader;-><init>(Ljava/lang/String;)V
 HSPLjava/io/FileWriter;-><init>(Ljava/io/File;)V
 HSPLjava/io/FileWriter;-><init>(Ljava/io/File;Z)V
+HSPLjava/io/FileWriter;-><init>(Ljava/lang/String;)V
 HSPLjava/io/FilterInputStream;-><init>(Ljava/io/InputStream;)V
 HSPLjava/io/FilterInputStream;->available()I
 HSPLjava/io/FilterInputStream;->close()V
 HSPLjava/io/FilterInputStream;->mark(I)V
+HSPLjava/io/FilterInputStream;->markSupported()Z
 HSPLjava/io/FilterInputStream;->read()I
 HSPLjava/io/FilterInputStream;->read([B)I
 HSPLjava/io/FilterInputStream;->read([BII)I
+HSPLjava/io/FilterInputStream;->reset()V
+HSPLjava/io/FilterInputStream;->skip(J)J
 HSPLjava/io/FilterOutputStream;-><init>(Ljava/io/OutputStream;)V
 HSPLjava/io/FilterOutputStream;->close()V
 HSPLjava/io/FilterOutputStream;->flush()V
 HSPLjava/io/FilterOutputStream;->write([B)V
 HSPLjava/io/FilterReader;-><init>(Ljava/io/Reader;)V
 HSPLjava/io/FilterReader;->read()I
+HSPLjava/io/FilterWriter;-><init>(Ljava/io/Writer;)V
 HSPLjava/io/IOException;-><init>()V
 HSPLjava/io/IOException;-><init>(Ljava/lang/String;)V
 HSPLjava/io/IOException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+HSPLjava/io/IOException;-><init>(Ljava/lang/Throwable;)V
 HSPLjava/io/InputStream;-><init>()V
 HSPLjava/io/InputStream;->close()V
 HSPLjava/io/InputStream;->markSupported()Z
@@ -16783,9 +36017,12 @@
 HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
 HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/lang/String;)V
 HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
+HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/CharsetDecoder;)V
 HSPLjava/io/InputStreamReader;->close()V
+HSPLjava/io/InputStreamReader;->read()I
 HSPLjava/io/InputStreamReader;->read([CII)I
 HSPLjava/io/InputStreamReader;->ready()Z
+HSPLjava/io/InterruptedIOException;-><init>()V
 HSPLjava/io/InterruptedIOException;-><init>(Ljava/lang/String;)V
 HSPLjava/io/ObjectInputStream$BlockDataInputStream;-><init>(Ljava/io/ObjectInputStream;Ljava/io/InputStream;)V
 HSPLjava/io/ObjectInputStream$BlockDataInputStream;->close()V
@@ -16799,6 +36036,8 @@
 HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readBlockHeader(Z)I
 HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readBoolean()Z
 HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readByte()B
+HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readFloat()F
+HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readFloats([FII)V
 HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readFully([BIIZ)V
 HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readInt()I
 HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readLong()J
@@ -16811,6 +36050,12 @@
 HSPLjava/io/ObjectInputStream$BlockDataInputStream;->refill()V
 HSPLjava/io/ObjectInputStream$BlockDataInputStream;->setBlockDataMode(Z)Z
 HSPLjava/io/ObjectInputStream$BlockDataInputStream;->skipBlockData()V
+HSPLjava/io/ObjectInputStream$GetField;-><init>()V
+HSPLjava/io/ObjectInputStream$GetFieldImpl;-><init>(Ljava/io/ObjectInputStream;Ljava/io/ObjectStreamClass;)V
+HSPLjava/io/ObjectInputStream$GetFieldImpl;->get(Ljava/lang/String;I)I
+HSPLjava/io/ObjectInputStream$GetFieldImpl;->get(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/io/ObjectInputStream$GetFieldImpl;->getFieldOffset(Ljava/lang/String;Ljava/lang/Class;)I
+HSPLjava/io/ObjectInputStream$GetFieldImpl;->readFields()V
 HSPLjava/io/ObjectInputStream$HandleTable$HandleList;-><init>()V
 HSPLjava/io/ObjectInputStream$HandleTable$HandleList;->add(I)V
 HSPLjava/io/ObjectInputStream$HandleTable;-><init>(I)V
@@ -16833,7 +36078,13 @@
 HSPLjava/io/ObjectInputStream$ValidationList;->clear()V
 HSPLjava/io/ObjectInputStream$ValidationList;->doCallbacks()V
 HSPLjava/io/ObjectInputStream;-><init>(Ljava/io/InputStream;)V
+HSPLjava/io/ObjectInputStream;->access$000(Ljava/io/ObjectInputStream;)I
+HSPLjava/io/ObjectInputStream;->access$002(Ljava/io/ObjectInputStream;I)I
+HSPLjava/io/ObjectInputStream;->access$100(Ljava/io/ObjectInputStream;)Ljava/io/ObjectInputStream$HandleTable;
+HSPLjava/io/ObjectInputStream;->access$200(Ljava/io/ObjectInputStream;)Ljava/io/ObjectInputStream$BlockDataInputStream;
+HSPLjava/io/ObjectInputStream;->access$300(Ljava/io/ObjectInputStream;Z)Ljava/lang/Object;
 HSPLjava/io/ObjectInputStream;->access$500(Ljava/io/ObjectInputStream;)Z
+HSPLjava/io/ObjectInputStream;->access$700([BI[FII)V
 HSPLjava/io/ObjectInputStream;->checkResolve(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/io/ObjectInputStream;->clear()V
 HSPLjava/io/ObjectInputStream;->close()V
@@ -16847,6 +36098,8 @@
 HSPLjava/io/ObjectInputStream;->readClassDesc(Z)Ljava/io/ObjectStreamClass;
 HSPLjava/io/ObjectInputStream;->readClassDescriptor()Ljava/io/ObjectStreamClass;
 HSPLjava/io/ObjectInputStream;->readEnum(Z)Ljava/lang/Enum;
+HSPLjava/io/ObjectInputStream;->readFields()Ljava/io/ObjectInputStream$GetField;
+HSPLjava/io/ObjectInputStream;->readFloat()F
 HSPLjava/io/ObjectInputStream;->readHandle(Z)Ljava/lang/Object;
 HSPLjava/io/ObjectInputStream;->readInt()I
 HSPLjava/io/ObjectInputStream;->readLong()J
@@ -16871,15 +36124,18 @@
 HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->getUTFLength(Ljava/lang/String;)J
 HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->setBlockDataMode(Z)Z
 HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->warnIfClosed()V
+HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->write(I)V
 HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->write([BIIZ)V
 HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeBlockHeader(I)V
 HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeByte(I)V
 HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeBytes(Ljava/lang/String;)V
+HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeFloat(F)V
 HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeInt(I)V
 HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeLong(J)V
 HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeShort(I)V
 HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeUTF(Ljava/lang/String;)V
 HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeUTF(Ljava/lang/String;J)V
+HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeUTFBody(Ljava/lang/String;)V
 HSPLjava/io/ObjectOutputStream$HandleTable;-><init>(IF)V
 HSPLjava/io/ObjectOutputStream$HandleTable;->assign(Ljava/lang/Object;)I
 HSPLjava/io/ObjectOutputStream$HandleTable;->clear()V
@@ -16888,22 +36144,33 @@
 HSPLjava/io/ObjectOutputStream$HandleTable;->hash(Ljava/lang/Object;)I
 HSPLjava/io/ObjectOutputStream$HandleTable;->insert(Ljava/lang/Object;I)V
 HSPLjava/io/ObjectOutputStream$HandleTable;->lookup(Ljava/lang/Object;)I
+HSPLjava/io/ObjectOutputStream$PutField;-><init>()V
+HSPLjava/io/ObjectOutputStream$PutFieldImpl;-><init>(Ljava/io/ObjectOutputStream;Ljava/io/ObjectStreamClass;)V
+HSPLjava/io/ObjectOutputStream$PutFieldImpl;->getFieldOffset(Ljava/lang/String;Ljava/lang/Class;)I
+HSPLjava/io/ObjectOutputStream$PutFieldImpl;->put(Ljava/lang/String;I)V
+HSPLjava/io/ObjectOutputStream$PutFieldImpl;->put(Ljava/lang/String;Ljava/lang/Object;)V
+HSPLjava/io/ObjectOutputStream$PutFieldImpl;->writeFields()V
 HSPLjava/io/ObjectOutputStream$ReplaceTable;-><init>(IF)V
 HSPLjava/io/ObjectOutputStream$ReplaceTable;->assign(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLjava/io/ObjectOutputStream$ReplaceTable;->lookup(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/io/ObjectOutputStream;-><init>(Ljava/io/OutputStream;)V
+HSPLjava/io/ObjectOutputStream;->access$000(Ljava/io/ObjectOutputStream;)Ljava/io/ObjectOutputStream$BlockDataOutputStream;
+HSPLjava/io/ObjectOutputStream;->access$100(Ljava/io/ObjectOutputStream;Ljava/lang/Object;Z)V
 HSPLjava/io/ObjectOutputStream;->annotateClass(Ljava/lang/Class;)V
 HSPLjava/io/ObjectOutputStream;->close()V
 HSPLjava/io/ObjectOutputStream;->defaultWriteFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
 HSPLjava/io/ObjectOutputStream;->defaultWriteObject()V
 HSPLjava/io/ObjectOutputStream;->flush()V
 HSPLjava/io/ObjectOutputStream;->isCustomSubclass()Z
+HSPLjava/io/ObjectOutputStream;->putFields()Ljava/io/ObjectOutputStream$PutField;
 HSPLjava/io/ObjectOutputStream;->verifySubclass()V
 HSPLjava/io/ObjectOutputStream;->writeArray(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
 HSPLjava/io/ObjectOutputStream;->writeByte(I)V
 HSPLjava/io/ObjectOutputStream;->writeClassDesc(Ljava/io/ObjectStreamClass;Z)V
 HSPLjava/io/ObjectOutputStream;->writeClassDescriptor(Ljava/io/ObjectStreamClass;)V
 HSPLjava/io/ObjectOutputStream;->writeEnum(Ljava/lang/Enum;Ljava/io/ObjectStreamClass;Z)V
+HSPLjava/io/ObjectOutputStream;->writeFields()V
+HSPLjava/io/ObjectOutputStream;->writeFloat(F)V
 HSPLjava/io/ObjectOutputStream;->writeHandle(I)V
 HSPLjava/io/ObjectOutputStream;->writeInt(I)V
 HSPLjava/io/ObjectOutputStream;->writeLong(J)V
@@ -16936,6 +36203,8 @@
 HSPLjava/io/ObjectStreamClass$ClassDataSlot;-><init>(Ljava/io/ObjectStreamClass;Z)V
 HSPLjava/io/ObjectStreamClass$EntryFuture;-><init>()V
 HSPLjava/io/ObjectStreamClass$EntryFuture;-><init>(Ljava/io/ObjectStreamClass$1;)V
+HSPLjava/io/ObjectStreamClass$EntryFuture;->get()Ljava/lang/Object;
+HSPLjava/io/ObjectStreamClass$EntryFuture;->getOwner()Ljava/lang/Thread;
 HSPLjava/io/ObjectStreamClass$EntryFuture;->set(Ljava/lang/Object;)Z
 HSPLjava/io/ObjectStreamClass$ExceptionInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLjava/io/ObjectStreamClass$FieldReflector;-><init>([Ljava/io/ObjectStreamField;)V
@@ -16997,6 +36266,7 @@
 HSPLjava/io/ObjectStreamClass;->getName()Ljava/lang/String;
 HSPLjava/io/ObjectStreamClass;->getNumObjFields()I
 HSPLjava/io/ObjectStreamClass;->getObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
+HSPLjava/io/ObjectStreamClass;->getPackageName(Ljava/lang/Class;)Ljava/lang/String;
 HSPLjava/io/ObjectStreamClass;->getPrimDataSize()I
 HSPLjava/io/ObjectStreamClass;->getPrimFieldValues(Ljava/lang/Object;[B)V
 HSPLjava/io/ObjectStreamClass;->getPrivateMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
@@ -17024,6 +36294,7 @@
 HSPLjava/io/ObjectStreamClass;->lookup(Ljava/lang/Class;Z)Ljava/io/ObjectStreamClass;
 HSPLjava/io/ObjectStreamClass;->matchFields([Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamClass;)[Ljava/io/ObjectStreamField;
 HSPLjava/io/ObjectStreamClass;->newInstance()Ljava/lang/Object;
+HSPLjava/io/ObjectStreamClass;->packageEquals(Ljava/lang/Class;Ljava/lang/Class;)Z
 HSPLjava/io/ObjectStreamClass;->processQueue(Ljava/lang/ref/ReferenceQueue;Ljava/util/concurrent/ConcurrentMap;)V
 HSPLjava/io/ObjectStreamClass;->readNonProxy(Ljava/io/ObjectInputStream;)V
 HSPLjava/io/ObjectStreamClass;->requireInitialized()V
@@ -17055,38 +36326,67 @@
 HSPLjava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V
 HSPLjava/io/OutputStreamWriter;->close()V
 HSPLjava/io/OutputStreamWriter;->flush()V
+HSPLjava/io/OutputStreamWriter;->flushBuffer()V
 HSPLjava/io/OutputStreamWriter;->write(I)V
 HSPLjava/io/OutputStreamWriter;->write(Ljava/lang/String;II)V
 HSPLjava/io/OutputStreamWriter;->write([CII)V
+HSPLjava/io/PipedInputStream;-><clinit>()V
+HSPLjava/io/PipedInputStream;->close()V
+HSPLjava/io/PipedInputStream;->receivedLast()V
+HSPLjava/io/PipedOutputStream;->close()V
 HSPLjava/io/PrintStream;-><init>(Ljava/io/OutputStream;)V
 HSPLjava/io/PrintStream;-><init>(Ljava/io/OutputStream;Z)V
+HSPLjava/io/PrintStream;-><init>(Ljava/io/OutputStream;ZLjava/lang/String;)V
 HSPLjava/io/PrintStream;-><init>(ZLjava/io/OutputStream;)V
+HSPLjava/io/PrintStream;-><init>(ZLjava/io/OutputStream;Ljava/nio/charset/Charset;)V
 HSPLjava/io/PrintStream;->close()V
+HSPLjava/io/PrintStream;->ensureOpen()V
+HSPLjava/io/PrintStream;->flush()V
+HSPLjava/io/PrintStream;->getTextOut()Ljava/io/BufferedWriter;
+HSPLjava/io/PrintStream;->print(Ljava/lang/String;)V
 HSPLjava/io/PrintStream;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
+HSPLjava/io/PrintStream;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
+HSPLjava/io/PrintStream;->write(Ljava/lang/String;)V
+HSPLjava/io/PrintStream;->write([BII)V
+HSPLjava/io/PrintWriter;-><init>(Ljava/io/File;)V
 HSPLjava/io/PrintWriter;-><init>(Ljava/io/OutputStream;)V
 HSPLjava/io/PrintWriter;-><init>(Ljava/io/OutputStream;Z)V
 HSPLjava/io/PrintWriter;-><init>(Ljava/io/Writer;)V
 HSPLjava/io/PrintWriter;-><init>(Ljava/io/Writer;Z)V
 HSPLjava/io/PrintWriter;->append(C)Ljava/io/PrintWriter;
+HSPLjava/io/PrintWriter;->append(C)Ljava/lang/Appendable;
 HSPLjava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
 HSPLjava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
+HSPLjava/io/PrintWriter;->append(Ljava/lang/CharSequence;II)Ljava/io/PrintWriter;
 HSPLjava/io/PrintWriter;->close()V
 HSPLjava/io/PrintWriter;->ensureOpen()V
 HSPLjava/io/PrintWriter;->flush()V
 HSPLjava/io/PrintWriter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
 HSPLjava/io/PrintWriter;->newLine()V
+HSPLjava/io/PrintWriter;->print(C)V
+HSPLjava/io/PrintWriter;->print(D)V
+HSPLjava/io/PrintWriter;->print(F)V
 HSPLjava/io/PrintWriter;->print(I)V
 HSPLjava/io/PrintWriter;->print(J)V
+HSPLjava/io/PrintWriter;->print(Ljava/lang/Object;)V
 HSPLjava/io/PrintWriter;->print(Ljava/lang/String;)V
+HSPLjava/io/PrintWriter;->print(Z)V
 HSPLjava/io/PrintWriter;->printf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
 HSPLjava/io/PrintWriter;->println()V
+HSPLjava/io/PrintWriter;->println(F)V
+HSPLjava/io/PrintWriter;->println(I)V
+HSPLjava/io/PrintWriter;->println(J)V
 HSPLjava/io/PrintWriter;->println(Ljava/lang/Object;)V
 HSPLjava/io/PrintWriter;->println(Ljava/lang/String;)V
+HSPLjava/io/PrintWriter;->println(Z)V
+HSPLjava/io/PrintWriter;->write(I)V
 HSPLjava/io/PrintWriter;->write(Ljava/lang/String;)V
 HSPLjava/io/PrintWriter;->write(Ljava/lang/String;II)V
 HSPLjava/io/PrintWriter;->write([CII)V
 HSPLjava/io/PushbackInputStream;-><init>(Ljava/io/InputStream;I)V
+HSPLjava/io/PushbackInputStream;->close()V
 HSPLjava/io/PushbackInputStream;->ensureOpen()V
+HSPLjava/io/PushbackInputStream;->markSupported()Z
 HSPLjava/io/PushbackInputStream;->read()I
 HSPLjava/io/PushbackInputStream;->read([BII)I
 HSPLjava/io/PushbackInputStream;->unread([BII)V
@@ -17110,18 +36410,27 @@
 HSPLjava/io/RandomAccessFile;->readFully([B)V
 HSPLjava/io/RandomAccessFile;->readFully([BII)V
 HSPLjava/io/RandomAccessFile;->readInt()I
+HSPLjava/io/RandomAccessFile;->readLong()J
 HSPLjava/io/RandomAccessFile;->seek(J)V
 HSPLjava/io/RandomAccessFile;->setLength(J)V
+HSPLjava/io/RandomAccessFile;->write(I)V
 HSPLjava/io/RandomAccessFile;->write([B)V
 HSPLjava/io/RandomAccessFile;->write([BII)V
+HSPLjava/io/RandomAccessFile;->writeBoolean(Z)V
 HSPLjava/io/RandomAccessFile;->writeBytes([BII)V
+HSPLjava/io/RandomAccessFile;->writeInt(I)V
+HSPLjava/io/RandomAccessFile;->writeLong(J)V
+HSPLjava/io/RandomAccessFile;->writeUTF(Ljava/lang/String;)V
 HSPLjava/io/Reader;-><init>()V
 HSPLjava/io/Reader;-><init>(Ljava/lang/Object;)V
 HSPLjava/io/Reader;->read(Ljava/nio/CharBuffer;)I
 HSPLjava/io/Reader;->read([C)I
 HSPLjava/io/SequenceInputStream;-><init>(Ljava/io/InputStream;Ljava/io/InputStream;)V
+HSPLjava/io/SequenceInputStream;->available()I
+HSPLjava/io/SequenceInputStream;->close()V
 HSPLjava/io/SequenceInputStream;->nextStream()V
 HSPLjava/io/SequenceInputStream;->read()I
+HSPLjava/io/SequenceInputStream;->read([BII)I
 HSPLjava/io/SerialCallbackContext;-><init>(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
 HSPLjava/io/SerialCallbackContext;->check()V
 HSPLjava/io/SerialCallbackContext;->checkAndSetUsed()V
@@ -17152,6 +36461,7 @@
 HSPLjava/io/UnixFileSystem;->createFileExclusively(Ljava/lang/String;)Z
 HSPLjava/io/UnixFileSystem;->delete(Ljava/io/File;)Z
 HSPLjava/io/UnixFileSystem;->getBooleanAttributes(Ljava/io/File;)I
+HSPLjava/io/UnixFileSystem;->getDefaultParent()Ljava/lang/String;
 HSPLjava/io/UnixFileSystem;->getLastModifiedTime(Ljava/io/File;)J
 HSPLjava/io/UnixFileSystem;->getLength(Ljava/io/File;)J
 HSPLjava/io/UnixFileSystem;->getSpace(Ljava/io/File;I)J
@@ -17187,6 +36497,7 @@
 HSPLjava/lang/AbstractStringBuilder;->appendNull()Ljava/lang/AbstractStringBuilder;
 HSPLjava/lang/AbstractStringBuilder;->charAt(I)C
 HSPLjava/lang/AbstractStringBuilder;->codePointAt(I)I
+HSPLjava/lang/AbstractStringBuilder;->codePointBefore(I)I
 HSPLjava/lang/AbstractStringBuilder;->delete(II)Ljava/lang/AbstractStringBuilder;
 HSPLjava/lang/AbstractStringBuilder;->deleteCharAt(I)Ljava/lang/AbstractStringBuilder;
 HSPLjava/lang/AbstractStringBuilder;->ensureCapacity(I)V
@@ -17201,8 +36512,10 @@
 HSPLjava/lang/AbstractStringBuilder;->length()I
 HSPLjava/lang/AbstractStringBuilder;->newCapacity(I)I
 HSPLjava/lang/AbstractStringBuilder;->replace(IILjava/lang/String;)Ljava/lang/AbstractStringBuilder;
+HSPLjava/lang/AbstractStringBuilder;->reverse()Ljava/lang/AbstractStringBuilder;
 HSPLjava/lang/AbstractStringBuilder;->setCharAt(IC)V
 HSPLjava/lang/AbstractStringBuilder;->setLength(I)V
+HSPLjava/lang/AbstractStringBuilder;->subSequence(II)Ljava/lang/CharSequence;
 HSPLjava/lang/AbstractStringBuilder;->substring(I)Ljava/lang/String;
 HSPLjava/lang/AbstractStringBuilder;->substring(II)Ljava/lang/String;
 HSPLjava/lang/Boolean;-><init>(Z)V
@@ -17229,46 +36542,73 @@
 HSPLjava/lang/Byte;-><init>(B)V
 HSPLjava/lang/Byte;->byteValue()B
 HSPLjava/lang/Byte;->compare(BB)I
+HSPLjava/lang/Byte;->compareTo(Ljava/lang/Byte;)I
+HSPLjava/lang/Byte;->compareTo(Ljava/lang/Object;)I
+HSPLjava/lang/Byte;->equals(Ljava/lang/Object;)Z
+HSPLjava/lang/Byte;->hashCode()I
+HSPLjava/lang/Byte;->hashCode(B)I
+HSPLjava/lang/Byte;->intValue()I
+HSPLjava/lang/Byte;->parseByte(Ljava/lang/String;)B
+HSPLjava/lang/Byte;->parseByte(Ljava/lang/String;I)B
 HSPLjava/lang/Byte;->toString()Ljava/lang/String;
 HSPLjava/lang/Byte;->toUnsignedInt(B)I
 HSPLjava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
 HSPLjava/lang/CaseMapper;->toLowerCase(Ljava/util/Locale;Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/lang/CaseMapper;->toUpperCase(Ljava/util/Locale;Ljava/lang/String;I)Ljava/lang/String;
 HSPLjava/lang/CaseMapper;->upperIndex(I)I
+HSPLjava/lang/Character$Subset;->equals(Ljava/lang/Object;)Z
+HSPLjava/lang/Character$Subset;->hashCode()I
+HSPLjava/lang/Character$UnicodeBlock;->of(I)Ljava/lang/Character$UnicodeBlock;
 HSPLjava/lang/Character;-><init>(C)V
 HSPLjava/lang/Character;->charCount(I)I
 HSPLjava/lang/Character;->charValue()C
 HSPLjava/lang/Character;->codePointAt(Ljava/lang/CharSequence;I)I
 HSPLjava/lang/Character;->codePointAtImpl([CII)I
 HSPLjava/lang/Character;->codePointBefore(Ljava/lang/CharSequence;I)I
+HSPLjava/lang/Character;->codePointBeforeImpl([CII)I
 HSPLjava/lang/Character;->codePointCount(Ljava/lang/CharSequence;II)I
+HSPLjava/lang/Character;->compare(CC)I
+HSPLjava/lang/Character;->compareTo(Ljava/lang/Character;)I
+HSPLjava/lang/Character;->compareTo(Ljava/lang/Object;)I
 HSPLjava/lang/Character;->digit(CI)I
 HSPLjava/lang/Character;->digit(II)I
 HSPLjava/lang/Character;->equals(Ljava/lang/Object;)Z
 HSPLjava/lang/Character;->forDigit(II)C
 HSPLjava/lang/Character;->getDirectionality(C)B
 HSPLjava/lang/Character;->getDirectionality(I)B
+HSPLjava/lang/Character;->getNumericValue(C)I
+HSPLjava/lang/Character;->getNumericValue(I)I
+HSPLjava/lang/Character;->getType(C)I
 HSPLjava/lang/Character;->getType(I)I
 HSPLjava/lang/Character;->hashCode()I
 HSPLjava/lang/Character;->hashCode(C)I
 HSPLjava/lang/Character;->highSurrogate(I)C
+HSPLjava/lang/Character;->isAlphabetic(I)Z
 HSPLjava/lang/Character;->isBmpCodePoint(I)Z
 HSPLjava/lang/Character;->isDigit(C)Z
 HSPLjava/lang/Character;->isDigit(I)Z
 HSPLjava/lang/Character;->isHighSurrogate(C)Z
+HSPLjava/lang/Character;->isISOControl(C)Z
+HSPLjava/lang/Character;->isISOControl(I)Z
 HSPLjava/lang/Character;->isLetter(C)Z
 HSPLjava/lang/Character;->isLetter(I)Z
 HSPLjava/lang/Character;->isLetterOrDigit(C)Z
 HSPLjava/lang/Character;->isLetterOrDigit(I)Z
 HSPLjava/lang/Character;->isLowSurrogate(C)Z
+HSPLjava/lang/Character;->isLowerCase(I)Z
 HSPLjava/lang/Character;->isSpaceChar(C)Z
 HSPLjava/lang/Character;->isSpaceChar(I)Z
+HSPLjava/lang/Character;->isSupplementaryCodePoint(I)Z
+HSPLjava/lang/Character;->isSurrogate(C)Z
+HSPLjava/lang/Character;->isSurrogatePair(CC)Z
 HSPLjava/lang/Character;->isUpperCase(C)Z
 HSPLjava/lang/Character;->isUpperCase(I)Z
 HSPLjava/lang/Character;->isValidCodePoint(I)Z
 HSPLjava/lang/Character;->isWhitespace(C)Z
 HSPLjava/lang/Character;->isWhitespace(I)Z
 HSPLjava/lang/Character;->lowSurrogate(I)C
+HSPLjava/lang/Character;->offsetByCodePoints(Ljava/lang/CharSequence;II)I
+HSPLjava/lang/Character;->toChars(I)[C
 HSPLjava/lang/Character;->toChars(I[CI)I
 HSPLjava/lang/Character;->toCodePoint(CC)I
 HSPLjava/lang/Character;->toLowerCase(C)C
@@ -17306,6 +36646,7 @@
 HSPLjava/lang/Class;->getFields()[Ljava/lang/reflect/Field;
 HSPLjava/lang/Class;->getGenericInterfaces()[Ljava/lang/reflect/Type;
 HSPLjava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
+HSPLjava/lang/Class;->getInstanceMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
 HSPLjava/lang/Class;->getInterfaces()[Ljava/lang/Class;
 HSPLjava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
 HSPLjava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;Z)Ljava/lang/reflect/Method;
@@ -17314,6 +36655,7 @@
 HSPLjava/lang/Class;->getName()Ljava/lang/String;
 HSPLjava/lang/Class;->getPackage()Ljava/lang/Package;
 HSPLjava/lang/Class;->getPackageName$()Ljava/lang/String;
+HSPLjava/lang/Class;->getProtectionDomain()Ljava/security/ProtectionDomain;
 HSPLjava/lang/Class;->getPublicFieldsRecursive(Ljava/util/List;)V
 HSPLjava/lang/Class;->getPublicMethodRecursive(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
 HSPLjava/lang/Class;->getPublicMethodsInternal(Ljava/util/List;)V
@@ -17321,6 +36663,7 @@
 HSPLjava/lang/Class;->getSignatureAttribute()Ljava/lang/String;
 HSPLjava/lang/Class;->getSimpleName()Ljava/lang/String;
 HSPLjava/lang/Class;->getSuperclass()Ljava/lang/Class;
+HSPLjava/lang/Class;->getTypeName()Ljava/lang/String;
 HSPLjava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
 HSPLjava/lang/Class;->isAnnotation()Z
 HSPLjava/lang/Class;->isAnnotationPresent(Ljava/lang/Class;)Z
@@ -17333,6 +36676,7 @@
 HSPLjava/lang/Class;->isLocalOrAnonymousClass()Z
 HSPLjava/lang/Class;->isMemberClass()Z
 HSPLjava/lang/Class;->isPrimitive()Z
+HSPLjava/lang/Class;->isProxy()Z
 HSPLjava/lang/Class;->resolveName(Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/lang/Class;->toString()Ljava/lang/String;
 HSPLjava/lang/ClassCastException;-><init>(Ljava/lang/String;)V
@@ -17341,6 +36685,7 @@
 HSPLjava/lang/ClassLoader;-><init>(Ljava/lang/Void;Ljava/lang/ClassLoader;)V
 HSPLjava/lang/ClassLoader;->checkCreateClassLoader()Ljava/lang/Void;
 HSPLjava/lang/ClassLoader;->definePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;)Ljava/lang/Package;
+HSPLjava/lang/ClassLoader;->findClass(Ljava/lang/String;)Ljava/lang/Class;
 HSPLjava/lang/ClassLoader;->findLoadedClass(Ljava/lang/String;)Ljava/lang/Class;
 HSPLjava/lang/ClassLoader;->getClassLoader(Ljava/lang/Class;)Ljava/lang/ClassLoader;
 HSPLjava/lang/ClassLoader;->getPackage(Ljava/lang/String;)Ljava/lang/Package;
@@ -17383,10 +36728,14 @@
 HSPLjava/lang/Daemons;->stop()V
 HSPLjava/lang/Double;-><init>(D)V
 HSPLjava/lang/Double;->compare(DD)I
+HSPLjava/lang/Double;->compareTo(Ljava/lang/Double;)I
+HSPLjava/lang/Double;->compareTo(Ljava/lang/Object;)I
 HSPLjava/lang/Double;->doubleToLongBits(D)J
 HSPLjava/lang/Double;->doubleValue()D
 HSPLjava/lang/Double;->equals(Ljava/lang/Object;)Z
 HSPLjava/lang/Double;->floatValue()F
+HSPLjava/lang/Double;->hashCode()I
+HSPLjava/lang/Double;->hashCode(D)I
 HSPLjava/lang/Double;->isInfinite(D)Z
 HSPLjava/lang/Double;->isNaN(D)Z
 HSPLjava/lang/Double;->longValue()J
@@ -17430,19 +36779,29 @@
 HSPLjava/lang/Float;->isFinite(F)Z
 HSPLjava/lang/Float;->isInfinite(F)Z
 HSPLjava/lang/Float;->isNaN(F)Z
+HSPLjava/lang/Float;->longValue()J
 HSPLjava/lang/Float;->parseFloat(Ljava/lang/String;)F
 HSPLjava/lang/Float;->toString()Ljava/lang/String;
 HSPLjava/lang/Float;->toString(F)Ljava/lang/String;
 HSPLjava/lang/Float;->valueOf(F)Ljava/lang/Float;
 HSPLjava/lang/IllegalAccessException;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/IllegalArgumentException;-><init>()V
 HSPLjava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+HSPLjava/lang/IllegalMonitorStateException;-><init>(Ljava/lang/String;)V
 HSPLjava/lang/IllegalStateException;-><init>()V
 HSPLjava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/IllegalStateException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+HSPLjava/lang/IllegalStateException;-><init>(Ljava/lang/Throwable;)V
 HSPLjava/lang/IncompatibleClassChangeError;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/InheritableThreadLocal;->childValue(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/lang/InheritableThreadLocal;->createMap(Ljava/lang/Thread;Ljava/lang/Object;)V
 HSPLjava/lang/InheritableThreadLocal;->getMap(Ljava/lang/Thread;)Ljava/lang/ThreadLocal$ThreadLocalMap;
+HSPLjava/lang/InstantiationException;-><init>(Ljava/lang/String;)V
 HSPLjava/lang/Integer;-><init>(I)V
 HSPLjava/lang/Integer;->bitCount(I)I
+HSPLjava/lang/Integer;->byteValue()B
 HSPLjava/lang/Integer;->compare(II)I
 HSPLjava/lang/Integer;->compareTo(Ljava/lang/Integer;)I
 HSPLjava/lang/Integer;->compareTo(Ljava/lang/Object;)I
@@ -17465,6 +36824,7 @@
 HSPLjava/lang/Integer;->numberOfTrailingZeros(I)I
 HSPLjava/lang/Integer;->parseInt(Ljava/lang/String;)I
 HSPLjava/lang/Integer;->parseInt(Ljava/lang/String;I)I
+HPLjava/lang/Integer;->parseUnsignedInt(Ljava/lang/String;I)I
 HSPLjava/lang/Integer;->reverse(I)I
 HSPLjava/lang/Integer;->reverseBytes(I)I
 HSPLjava/lang/Integer;->rotateLeft(II)I
@@ -17472,6 +36832,7 @@
 HSPLjava/lang/Integer;->shortValue()S
 HSPLjava/lang/Integer;->signum(I)I
 HSPLjava/lang/Integer;->stringSize(I)I
+HSPLjava/lang/Integer;->sum(II)I
 HSPLjava/lang/Integer;->toBinaryString(I)Ljava/lang/String;
 HSPLjava/lang/Integer;->toHexString(I)Ljava/lang/String;
 HSPLjava/lang/Integer;->toString()Ljava/lang/String;
@@ -17503,10 +36864,12 @@
 HSPLjava/lang/Long;->intValue()I
 HSPLjava/lang/Long;->longValue()J
 HSPLjava/lang/Long;->lowestOneBit(J)J
+HSPLjava/lang/Long;->max(JJ)J
 HSPLjava/lang/Long;->numberOfLeadingZeros(J)I
 HSPLjava/lang/Long;->numberOfTrailingZeros(J)I
 HSPLjava/lang/Long;->parseLong(Ljava/lang/String;)J
 HSPLjava/lang/Long;->parseLong(Ljava/lang/String;I)J
+HSPLjava/lang/Long;->parseUnsignedLong(Ljava/lang/String;I)J
 HSPLjava/lang/Long;->reverse(J)J
 HSPLjava/lang/Long;->reverseBytes(J)J
 HSPLjava/lang/Long;->rotateLeft(JI)J
@@ -17526,12 +36889,16 @@
 HSPLjava/lang/Math;->abs(F)F
 HSPLjava/lang/Math;->abs(I)I
 HSPLjava/lang/Math;->abs(J)J
+HSPLjava/lang/Math;->addExact(II)I
 HSPLjava/lang/Math;->addExact(JJ)J
+HSPLjava/lang/Math;->copySign(DD)D
 HSPLjava/lang/Math;->copySign(FF)F
 HSPLjava/lang/Math;->floorDiv(II)I
 HSPLjava/lang/Math;->floorDiv(JJ)J
 HSPLjava/lang/Math;->floorMod(II)I
 HSPLjava/lang/Math;->floorMod(JJ)J
+HSPLjava/lang/Math;->getExponent(D)I
+HSPLjava/lang/Math;->getExponent(F)I
 HSPLjava/lang/Math;->max(DD)D
 HSPLjava/lang/Math;->max(FF)F
 HSPLjava/lang/Math;->max(II)I
@@ -17540,9 +36907,11 @@
 HSPLjava/lang/Math;->min(FF)F
 HSPLjava/lang/Math;->min(II)I
 HSPLjava/lang/Math;->min(JJ)J
+HSPLjava/lang/Math;->multiplyExact(II)I
 HSPLjava/lang/Math;->multiplyExact(JJ)J
 HSPLjava/lang/Math;->nextAfter(DD)D
 HSPLjava/lang/Math;->powerOfTwoD(I)D
+HSPLjava/lang/Math;->powerOfTwoF(I)F
 HSPLjava/lang/Math;->random()D
 HSPLjava/lang/Math;->randomLongInternal()J
 HSPLjava/lang/Math;->round(D)J
@@ -17552,11 +36921,15 @@
 HSPLjava/lang/Math;->signum(F)F
 HSPLjava/lang/Math;->subtractExact(JJ)J
 HSPLjava/lang/Math;->toDegrees(D)D
+HSPLjava/lang/Math;->toIntExact(J)I
 HSPLjava/lang/Math;->toRadians(D)D
+HSPLjava/lang/Math;->ulp(F)F
 HSPLjava/lang/NoClassDefFoundError;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/NoSuchFieldError;-><init>(Ljava/lang/String;)V
 HSPLjava/lang/NoSuchFieldException;-><init>(Ljava/lang/String;)V
 HSPLjava/lang/NoSuchMethodError;-><init>(Ljava/lang/String;)V
 HSPLjava/lang/NoSuchMethodException;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/NullPointerException;-><init>()V
 HSPLjava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
 HSPLjava/lang/Number;-><init>()V
 HSPLjava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
@@ -17573,10 +36946,14 @@
 HSPLjava/lang/Package;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;Ljava/lang/ClassLoader;)V
 HSPLjava/lang/Package;->getName()Ljava/lang/String;
 HSPLjava/lang/Process;-><init>()V
+HSPLjava/lang/ProcessBuilder$NullInputStream;->available()I
+HSPLjava/lang/ProcessBuilder$NullInputStream;->read()I
 HSPLjava/lang/ProcessBuilder;-><init>([Ljava/lang/String;)V
 HSPLjava/lang/ProcessBuilder;->directory(Ljava/io/File;)Ljava/lang/ProcessBuilder;
 HSPLjava/lang/ProcessBuilder;->environment([Ljava/lang/String;)Ljava/lang/ProcessBuilder;
+HSPLjava/lang/ProcessBuilder;->redirectErrorStream(Z)Ljava/lang/ProcessBuilder;
 HSPLjava/lang/ProcessBuilder;->start()Ljava/lang/Process;
+HSPLjava/lang/ProcessEnvironment;->toEnvironmentBlock(Ljava/util/Map;[I)[B
 HSPLjava/lang/ProcessImpl;->start([Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;[Ljava/lang/ProcessBuilder$Redirect;Z)Ljava/lang/Process;
 HSPLjava/lang/ProcessImpl;->toCString(Ljava/lang/String;)[B
 HSPLjava/lang/ReflectiveOperationException;-><init>(Ljava/lang/String;)V
@@ -17584,6 +36961,8 @@
 HSPLjava/lang/ReflectiveOperationException;-><init>(Ljava/lang/Throwable;)V
 HSPLjava/lang/Runtime;->addShutdownHook(Ljava/lang/Thread;)V
 HSPLjava/lang/Runtime;->availableProcessors()I
+HSPLjava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
+HSPLjava/lang/Runtime;->exec(Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
 HSPLjava/lang/Runtime;->exec([Ljava/lang/String;)Ljava/lang/Process;
 HSPLjava/lang/Runtime;->exec([Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
 HSPLjava/lang/Runtime;->gc()V
@@ -17600,9 +36979,13 @@
 HSPLjava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
 HSPLjava/lang/SecurityException;-><init>(Ljava/lang/String;)V
 HSPLjava/lang/Short;-><init>(S)V
+HSPLjava/lang/Short;->equals(Ljava/lang/Object;)Z
+HSPLjava/lang/Short;->hashCode()I
+HSPLjava/lang/Short;->hashCode(S)I
 HSPLjava/lang/Short;->reverseBytes(S)S
 HSPLjava/lang/Short;->shortValue()S
 HSPLjava/lang/Short;->valueOf(S)Ljava/lang/Short;
+HSPLjava/lang/StackTraceElement;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
 HSPLjava/lang/StackTraceElement;->equals(Ljava/lang/Object;)Z
 HSPLjava/lang/StackTraceElement;->getClassName()Ljava/lang/String;
 HSPLjava/lang/StackTraceElement;->getFileName()Ljava/lang/String;
@@ -17610,6 +36993,7 @@
 HSPLjava/lang/StackTraceElement;->getMethodName()Ljava/lang/String;
 HSPLjava/lang/StackTraceElement;->isNativeMethod()Z
 HSPLjava/lang/StackTraceElement;->toString()Ljava/lang/String;
+PLjava/lang/StrictMath;->toIntExact(J)I
 HSPLjava/lang/String$CaseInsensitiveComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLjava/lang/String$CaseInsensitiveComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I
 HSPLjava/lang/String;->codePointAt(I)I
@@ -17649,6 +37033,7 @@
 HSPLjava/lang/String;->lastIndexOf([CII[CIII)I
 HSPLjava/lang/String;->length()I
 HSPLjava/lang/String;->matches(Ljava/lang/String;)Z
+HSPLjava/lang/String;->offsetByCodePoints(II)I
 HSPLjava/lang/String;->regionMatches(ILjava/lang/String;II)Z
 HSPLjava/lang/String;->regionMatches(ZILjava/lang/String;II)Z
 HSPLjava/lang/String;->replace(CC)Ljava/lang/String;
@@ -17687,8 +37072,10 @@
 HSPLjava/lang/StringBuffer;->append(Ljava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder;
 HSPLjava/lang/StringBuffer;->append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuffer;
 HSPLjava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
+HSPLjava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;
 HSPLjava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
 HSPLjava/lang/StringBuffer;->append(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
+HSPLjava/lang/StringBuffer;->append(Z)Ljava/lang/StringBuffer;
 HSPLjava/lang/StringBuffer;->append([CII)Ljava/lang/StringBuffer;
 HSPLjava/lang/StringBuffer;->charAt(I)C
 HSPLjava/lang/StringBuffer;->codePointAt(I)I
@@ -17719,6 +37106,7 @@
 HSPLjava/lang/StringBuilder;->append([CII)Ljava/lang/StringBuilder;
 HSPLjava/lang/StringBuilder;->appendCodePoint(I)Ljava/lang/StringBuilder;
 HSPLjava/lang/StringBuilder;->charAt(I)C
+HSPLjava/lang/StringBuilder;->codePointBefore(I)I
 HSPLjava/lang/StringBuilder;->delete(II)Ljava/lang/StringBuilder;
 HSPLjava/lang/StringBuilder;->deleteCharAt(I)Ljava/lang/StringBuilder;
 HSPLjava/lang/StringBuilder;->ensureCapacity(I)V
@@ -17732,13 +37120,16 @@
 HSPLjava/lang/StringBuilder;->lastIndexOf(Ljava/lang/String;I)I
 HSPLjava/lang/StringBuilder;->length()I
 HSPLjava/lang/StringBuilder;->replace(IILjava/lang/String;)Ljava/lang/StringBuilder;
+HSPLjava/lang/StringBuilder;->reverse()Ljava/lang/StringBuilder;
 HSPLjava/lang/StringBuilder;->setCharAt(IC)V
 HSPLjava/lang/StringBuilder;->setLength(I)V
+HSPLjava/lang/StringBuilder;->subSequence(II)Ljava/lang/CharSequence;
 HSPLjava/lang/StringBuilder;->substring(I)Ljava/lang/String;
 HSPLjava/lang/StringBuilder;->substring(II)Ljava/lang/String;
 HSPLjava/lang/StringBuilder;->toString()Ljava/lang/String;
 HSPLjava/lang/StringFactory;->newEmptyString()Ljava/lang/String;
 HSPLjava/lang/StringFactory;->newStringFromBytes([B)Ljava/lang/String;
+HSPLjava/lang/StringFactory;->newStringFromBytes([BI)Ljava/lang/String;
 HSPLjava/lang/StringFactory;->newStringFromBytes([BII)Ljava/lang/String;
 HSPLjava/lang/StringFactory;->newStringFromBytes([BIILjava/lang/String;)Ljava/lang/String;
 HSPLjava/lang/StringFactory;->newStringFromBytes([BIILjava/nio/charset/Charset;)Ljava/lang/String;
@@ -17748,8 +37139,28 @@
 HSPLjava/lang/StringFactory;->newStringFromChars([CII)Ljava/lang/String;
 HSPLjava/lang/System$PropertiesWithNonOverrideableDefaults;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/lang/System$PropertiesWithNonOverrideableDefaults;->remove(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/lang/System;->arraycopy([BI[BII)V
 HSPLjava/lang/System;->arraycopy([CI[CII)V
+HSPLjava/lang/System;->arraycopy([FI[FII)V
+HSPLjava/lang/System;->arraycopy([II[III)V
+HSPLjava/lang/System;->arraycopy([JI[JII)V
+HSPLjava/lang/System;->arraycopy([ZI[ZII)V
 HSPLjava/lang/System;->checkKey(Ljava/lang/String;)V
+HSPLjava/lang/System;->clearProperty(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/lang/System;->gc()V
+HSPLjava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/lang/System;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/lang/System;->getSecurityManager()Ljava/lang/SecurityManager;
+HSPLjava/lang/System;->getenv(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/lang/System;->identityHashCode(Ljava/lang/Object;)I
+HSPLjava/lang/System;->lineSeparator()Ljava/lang/String;
+HSPLjava/lang/System;->load(Ljava/lang/String;)V
+HSPLjava/lang/System;->loadLibrary(Ljava/lang/String;)V
+HSPLjava/lang/System;->logW(Ljava/lang/String;)V
+HSPLjava/lang/System;->runFinalization()V
+HSPLjava/lang/System;->setErr(Ljava/io/PrintStream;)V
+HSPLjava/lang/System;->setOut(Ljava/io/PrintStream;)V
+HSPLjava/lang/System;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/lang/Thread$State;->values()[Ljava/lang/Thread$State;
 HSPLjava/lang/Thread;-><init>()V
 HSPLjava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
@@ -17770,6 +37181,7 @@
 HSPLjava/lang/Thread;->getState()Ljava/lang/Thread$State;
 HSPLjava/lang/Thread;->getThreadGroup()Ljava/lang/ThreadGroup;
 HSPLjava/lang/Thread;->getUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler;
+HSPLjava/lang/Thread;->getUncaughtExceptionPreHandler()Ljava/lang/Thread$UncaughtExceptionHandler;
 HSPLjava/lang/Thread;->init(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V
 HSPLjava/lang/Thread;->init(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;JLjava/security/AccessControlContext;)V
 HSPLjava/lang/Thread;->init2(Ljava/lang/Thread;)V
@@ -17804,6 +37216,7 @@
 HSPLjava/lang/ThreadLocal$SuppliedThreadLocal;->initialValue()Ljava/lang/Object;
 HSPLjava/lang/ThreadLocal$ThreadLocalMap$Entry;-><init>(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
 HSPLjava/lang/ThreadLocal$ThreadLocalMap;-><init>(Ljava/lang/ThreadLocal$ThreadLocalMap;)V
+HSPLjava/lang/ThreadLocal$ThreadLocalMap;-><init>(Ljava/lang/ThreadLocal$ThreadLocalMap;Ljava/lang/ThreadLocal$1;)V
 HSPLjava/lang/ThreadLocal$ThreadLocalMap;-><init>(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
 HSPLjava/lang/ThreadLocal$ThreadLocalMap;->access$000(Ljava/lang/ThreadLocal$ThreadLocalMap;Ljava/lang/ThreadLocal;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
 HSPLjava/lang/ThreadLocal$ThreadLocalMap;->access$100(Ljava/lang/ThreadLocal$ThreadLocalMap;Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
@@ -17814,13 +37227,16 @@
 HSPLjava/lang/ThreadLocal$ThreadLocalMap;->getEntry(Ljava/lang/ThreadLocal;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
 HSPLjava/lang/ThreadLocal$ThreadLocalMap;->getEntryAfterMiss(Ljava/lang/ThreadLocal;ILjava/lang/ThreadLocal$ThreadLocalMap$Entry;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
 HSPLjava/lang/ThreadLocal$ThreadLocalMap;->nextIndex(II)I
+HSPLjava/lang/ThreadLocal$ThreadLocalMap;->prevIndex(II)I
 HSPLjava/lang/ThreadLocal$ThreadLocalMap;->rehash()V
 HSPLjava/lang/ThreadLocal$ThreadLocalMap;->remove(Ljava/lang/ThreadLocal;)V
+HSPLjava/lang/ThreadLocal$ThreadLocalMap;->replaceStaleEntry(Ljava/lang/ThreadLocal;Ljava/lang/Object;I)V
 HSPLjava/lang/ThreadLocal$ThreadLocalMap;->resize()V
 HSPLjava/lang/ThreadLocal$ThreadLocalMap;->set(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
 HSPLjava/lang/ThreadLocal$ThreadLocalMap;->setThreshold(I)V
 HSPLjava/lang/ThreadLocal;-><init>()V
 HSPLjava/lang/ThreadLocal;->access$400(Ljava/lang/ThreadLocal;)I
+HSPLjava/lang/ThreadLocal;->createInheritedMap(Ljava/lang/ThreadLocal$ThreadLocalMap;)Ljava/lang/ThreadLocal$ThreadLocalMap;
 HSPLjava/lang/ThreadLocal;->createMap(Ljava/lang/Thread;Ljava/lang/Object;)V
 HSPLjava/lang/ThreadLocal;->get()Ljava/lang/Object;
 HSPLjava/lang/ThreadLocal;->getMap(Ljava/lang/Thread;)Ljava/lang/ThreadLocal$ThreadLocalMap;
@@ -17832,6 +37248,9 @@
 HSPLjava/lang/ThreadLocal;->withInitial(Ljava/util/function/Supplier;)Ljava/lang/ThreadLocal;
 HSPLjava/lang/Throwable$PrintStreamOrWriter;-><init>()V
 HSPLjava/lang/Throwable$PrintStreamOrWriter;-><init>(Ljava/lang/Throwable$1;)V
+HSPLjava/lang/Throwable$WrappedPrintStream;-><init>(Ljava/io/PrintStream;)V
+HSPLjava/lang/Throwable$WrappedPrintStream;->lock()Ljava/lang/Object;
+HSPLjava/lang/Throwable$WrappedPrintStream;->println(Ljava/lang/Object;)V
 HSPLjava/lang/Throwable$WrappedPrintWriter;-><init>(Ljava/io/PrintWriter;)V
 HSPLjava/lang/Throwable$WrappedPrintWriter;->lock()Ljava/lang/Object;
 HSPLjava/lang/Throwable$WrappedPrintWriter;->println(Ljava/lang/Object;)V
@@ -17850,6 +37269,8 @@
 HSPLjava/lang/Throwable;->getSuppressed()[Ljava/lang/Throwable;
 HSPLjava/lang/Throwable;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
 HSPLjava/lang/Throwable;->printEnclosedStackTrace(Ljava/lang/Throwable$PrintStreamOrWriter;[Ljava/lang/StackTraceElement;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
+HSPLjava/lang/Throwable;->printStackTrace()V
+HSPLjava/lang/Throwable;->printStackTrace(Ljava/io/PrintStream;)V
 HSPLjava/lang/Throwable;->printStackTrace(Ljava/io/PrintWriter;)V
 HSPLjava/lang/Throwable;->printStackTrace(Ljava/lang/Throwable$PrintStreamOrWriter;)V
 HSPLjava/lang/Throwable;->readObject(Ljava/io/ObjectInputStream;)V
@@ -17868,11 +37289,66 @@
 HSPLjava/lang/UNIXProcess$ProcessPipeOutputStream;->processExited()V
 HSPLjava/lang/UNIXProcess$ProcessReaperThreadFactory;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
 HSPLjava/lang/UNIXProcess;-><init>([B[BI[BI[B[IZ)V
+HSPLjava/lang/UNIXProcess;->access$100(Ljava/lang/UNIXProcess;)I
+HSPLjava/lang/UNIXProcess;->access$200(Ljava/lang/UNIXProcess;I)I
+HSPLjava/lang/UNIXProcess;->destroy()V
+HSPLjava/lang/UNIXProcess;->getErrorStream()Ljava/io/InputStream;
 HSPLjava/lang/UNIXProcess;->getInputStream()Ljava/io/InputStream;
+HSPLjava/lang/UNIXProcess;->getOutputStream()Ljava/io/OutputStream;
 HSPLjava/lang/UNIXProcess;->initStreams([I)V
+HSPLjava/lang/UNIXProcess;->newFileDescriptor(I)Ljava/io/FileDescriptor;
 HSPLjava/lang/UNIXProcess;->processExited(I)V
+HSPLjava/lang/UNIXProcess;->waitFor()I
 HSPLjava/lang/UnsatisfiedLinkError;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/UnsupportedOperationException;-><init>()V
 HSPLjava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/VMClassLoader;->getResource(Ljava/lang/String;)Ljava/net/URL;
+HSPLjava/lang/VMClassLoader;->getResources(Ljava/lang/String;)Ljava/util/List;
+HSPLjava/lang/invoke/MethodHandle;-><init>(JILjava/lang/invoke/MethodType;)V
+HSPLjava/lang/invoke/MethodHandle;->type()Ljava/lang/invoke/MethodType;
+HSPLjava/lang/invoke/MethodHandleImpl;-><init>(JILjava/lang/invoke/MethodType;)V
+HSPLjava/lang/invoke/MethodHandles$Lookup;->checkAccess(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/String;)V
+HSPLjava/lang/invoke/MethodHandles$Lookup;->checkReturnType(Ljava/lang/reflect/Method;Ljava/lang/invoke/MethodType;)V
+HSPLjava/lang/invoke/MethodHandles$Lookup;->createMethodHandle(Ljava/lang/reflect/Method;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
+HSPLjava/lang/invoke/MethodHandles$Lookup;->findVirtual(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
+HSPLjava/lang/invoke/MethodHandles$Lookup;->unreflect(Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
+HSPLjava/lang/invoke/MethodHandles;->publicLookup()Ljava/lang/invoke/MethodHandles$Lookup;
+HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;-><init>(Ljava/lang/Object;)V
+HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
+HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;->equals(Ljava/lang/Object;)Z
+HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;->hashCode()I
+HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet;->add(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet;->expungeStaleElements()V
+HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/lang/invoke/MethodType;-><init>(Ljava/lang/Class;[Ljava/lang/Class;Z)V
+HSPLjava/lang/invoke/MethodType;-><init>([Ljava/lang/Class;Ljava/lang/Class;)V
+HSPLjava/lang/invoke/MethodType;->changeReturnType(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
+HSPLjava/lang/invoke/MethodType;->checkPtype(Ljava/lang/Class;)V
+HSPLjava/lang/invoke/MethodType;->checkPtypes([Ljava/lang/Class;)I
+HSPLjava/lang/invoke/MethodType;->checkRtype(Ljava/lang/Class;)V
+HSPLjava/lang/invoke/MethodType;->checkSlotCount(I)V
+HSPLjava/lang/invoke/MethodType;->dropParameterTypes(II)Ljava/lang/invoke/MethodType;
+HSPLjava/lang/invoke/MethodType;->equals(Ljava/lang/Object;)Z
+HSPLjava/lang/invoke/MethodType;->equals(Ljava/lang/invoke/MethodType;)Z
+HSPLjava/lang/invoke/MethodType;->form()Ljava/lang/invoke/MethodTypeForm;
+HSPLjava/lang/invoke/MethodType;->genericMethodType(I)Ljava/lang/invoke/MethodType;
+HSPLjava/lang/invoke/MethodType;->genericMethodType(IZ)Ljava/lang/invoke/MethodType;
+HSPLjava/lang/invoke/MethodType;->hashCode()I
+HSPLjava/lang/invoke/MethodType;->insertParameterTypes(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
+HSPLjava/lang/invoke/MethodType;->makeImpl(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType;
+HSPLjava/lang/invoke/MethodType;->methodType(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
+HSPLjava/lang/invoke/MethodType;->parameterSlotCount()I
+HSPLjava/lang/invoke/MethodType;->ptypes()[Ljava/lang/Class;
+HSPLjava/lang/invoke/MethodType;->returnType()Ljava/lang/Class;
+HSPLjava/lang/invoke/MethodType;->rtype()Ljava/lang/Class;
+HSPLjava/lang/invoke/MethodTypeForm;-><init>(Ljava/lang/invoke/MethodType;)V
+HSPLjava/lang/invoke/MethodTypeForm;->canonicalize(Ljava/lang/Class;I)Ljava/lang/Class;
+HSPLjava/lang/invoke/MethodTypeForm;->canonicalize(Ljava/lang/invoke/MethodType;II)Ljava/lang/invoke/MethodType;
+HSPLjava/lang/invoke/MethodTypeForm;->canonicalizeAll([Ljava/lang/Class;I)[Ljava/lang/Class;
+HSPLjava/lang/invoke/MethodTypeForm;->findForm(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodTypeForm;
+HSPLjava/lang/invoke/MethodTypeForm;->pack(IIII)J
+HSPLjava/lang/invoke/MethodTypeForm;->parameterSlotCount()I
+HSPLjava/lang/invoke/MethodTypeForm;->unpack(JI)C
 HSPLjava/lang/invoke/VarHandle;->acquireFence()V
 HSPLjava/lang/invoke/VarHandle;->fullFence()V
 HSPLjava/lang/invoke/VarHandle;->loadLoadFence()V
@@ -17918,6 +37394,7 @@
 HSPLjava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object;
 HSPLjava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
 HSPLjava/lang/reflect/Array;->set(Ljava/lang/Object;ILjava/lang/Object;)V
+HSPLjava/lang/reflect/Array;->setInt(Ljava/lang/Object;II)V
 HSPLjava/lang/reflect/Constructor;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
 HSPLjava/lang/reflect/Constructor;->getDeclaringClass()Ljava/lang/Class;
 HSPLjava/lang/reflect/Constructor;->getModifiers()I
@@ -17931,11 +37408,16 @@
 HSPLjava/lang/reflect/Executable;->fixMethodFlags(I)I
 HSPLjava/lang/reflect/Executable;->getAccessFlags()I
 HSPLjava/lang/reflect/Executable;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
+HSPLjava/lang/reflect/Executable;->getArtMethod()J
 HSPLjava/lang/reflect/Executable;->getDeclaringClassInternal()Ljava/lang/Class;
 HSPLjava/lang/reflect/Executable;->getModifiersInternal()I
 HSPLjava/lang/reflect/Executable;->isAnnotationPresent(Ljava/lang/Class;)Z
 HSPLjava/lang/reflect/Executable;->isDefaultMethodInternal()Z
 HSPLjava/lang/reflect/Executable;->isSynthetic()Z
+HSPLjava/lang/reflect/Executable;->isVarArgs()Z
+HSPLjava/lang/reflect/Executable;->printModifiersIfNonzero(Ljava/lang/StringBuilder;IZ)V
+HSPLjava/lang/reflect/Executable;->separateWithCommas([Ljava/lang/Class;Ljava/lang/StringBuilder;)V
+HSPLjava/lang/reflect/Executable;->sharedToString(IZ[Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String;
 HSPLjava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
 HSPLjava/lang/reflect/Field;->getDeclaringClass()Ljava/lang/Class;
 HSPLjava/lang/reflect/Field;->getGenericType()Ljava/lang/reflect/Type;
@@ -17960,13 +37442,20 @@
 HSPLjava/lang/reflect/Method;->hashCode()I
 HSPLjava/lang/reflect/Method;->isDefault()Z
 HSPLjava/lang/reflect/Method;->isSynthetic()Z
+HSPLjava/lang/reflect/Method;->isVarArgs()Z
+HSPLjava/lang/reflect/Method;->specificToStringHeader(Ljava/lang/StringBuilder;)V
+HSPLjava/lang/reflect/Method;->toString()Ljava/lang/String;
+HSPLjava/lang/reflect/Modifier;->isAbstract(I)Z
 HSPLjava/lang/reflect/Modifier;->isFinal(I)Z
 HSPLjava/lang/reflect/Modifier;->isPrivate(I)Z
 HSPLjava/lang/reflect/Modifier;->isProtected(I)Z
 HSPLjava/lang/reflect/Modifier;->isPublic(I)Z
 HSPLjava/lang/reflect/Modifier;->isStatic(I)Z
 HSPLjava/lang/reflect/Modifier;->isSynthetic(I)Z
+HSPLjava/lang/reflect/Modifier;->isTransient(I)Z
 HSPLjava/lang/reflect/Modifier;->isVolatile(I)Z
+HSPLjava/lang/reflect/Modifier;->methodModifiers()I
+HSPLjava/lang/reflect/Modifier;->toString(I)Ljava/lang/String;
 HSPLjava/lang/reflect/Proxy$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLjava/lang/reflect/Proxy$1;->compare(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)I
 HSPLjava/lang/reflect/Proxy$Key1;-><init>(Ljava/lang/Class;)V
@@ -18002,42 +37491,78 @@
 HSPLjava/lang/reflect/WeakCache;->access$100(Ljava/lang/reflect/WeakCache;)Ljava/util/concurrent/ConcurrentMap;
 HSPLjava/lang/reflect/WeakCache;->expungeStaleEntries()V
 HSPLjava/lang/reflect/WeakCache;->get(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/math/BigDecimal;-><init>(D)V
 HSPLjava/math/BigDecimal;-><init>(I)V
 HSPLjava/math/BigDecimal;-><init>(II)V
+HSPLjava/math/BigDecimal;-><init>(J)V
 HSPLjava/math/BigDecimal;-><init>(JI)V
 HSPLjava/math/BigDecimal;-><init>(Ljava/lang/String;)V
 HSPLjava/math/BigDecimal;-><init>(Ljava/math/BigInteger;I)V
 HSPLjava/math/BigDecimal;-><init>([CII)V
 HSPLjava/math/BigDecimal;->add(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->approxPrecision()I
 HSPLjava/math/BigDecimal;->bitLength(I)I
+HSPLjava/math/BigDecimal;->bitLength(J)I
 HSPLjava/math/BigDecimal;->compareTo(Ljava/math/BigDecimal;)I
 HSPLjava/math/BigDecimal;->divide(Ljava/math/BigDecimal;ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->dividePrimitiveLongs(JJILjava/math/RoundingMode;)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->doubleValue()D
+HSPLjava/math/BigDecimal;->floatValue()F
 HSPLjava/math/BigDecimal;->getUnscaledValue()Ljava/math/BigInteger;
 HSPLjava/math/BigDecimal;->isZero()Z
+HSPLjava/math/BigDecimal;->longValueExact()J
 HSPLjava/math/BigDecimal;->movePoint(J)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->movePointLeft(I)Ljava/math/BigDecimal;
 HSPLjava/math/BigDecimal;->multiply(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->negate()Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->roundingBehavior(IILjava/math/RoundingMode;)I
+HSPLjava/math/BigDecimal;->safeLongToInt(J)I
+HSPLjava/math/BigDecimal;->scale()I
+HSPLjava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal;
 HSPLjava/math/BigDecimal;->setScale(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
 HSPLjava/math/BigDecimal;->setUnscaledValue(Ljava/math/BigInteger;)V
 HSPLjava/math/BigDecimal;->signum()I
+HSPLjava/math/BigDecimal;->stripTrailingZeros()Ljava/math/BigDecimal;
 HSPLjava/math/BigDecimal;->subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->toBigInteger()Ljava/math/BigInteger;
 HSPLjava/math/BigDecimal;->toBigIntegerExact()Ljava/math/BigInteger;
+HSPLjava/math/BigDecimal;->toPlainString()Ljava/lang/String;
+HSPLjava/math/BigDecimal;->valueExact(I)J
+HSPLjava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal;
 HSPLjava/math/BigDecimal;->valueOf(JI)Ljava/math/BigDecimal;
 HSPLjava/math/BigInt;-><init>()V
+HSPLjava/math/BigInt;->addition(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+HSPLjava/math/BigInt;->bigEndianMagnitude()[B
+HSPLjava/math/BigInt;->bigExp(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
 HSPLjava/math/BigInt;->bitLength()I
 HSPLjava/math/BigInt;->checkString(Ljava/lang/String;I)Ljava/lang/String;
 HSPLjava/math/BigInt;->cmp(Ljava/math/BigInt;Ljava/math/BigInt;)I
 HSPLjava/math/BigInt;->decString()Ljava/lang/String;
 HSPLjava/math/BigInt;->division(Ljava/math/BigInt;Ljava/math/BigInt;Ljava/math/BigInt;Ljava/math/BigInt;)V
+HSPLjava/math/BigInt;->exp(Ljava/math/BigInt;I)Ljava/math/BigInt;
+HSPLjava/math/BigInt;->gcd(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
 HSPLjava/math/BigInt;->hasNativeBignum()Z
+HSPLjava/math/BigInt;->isBitSet(I)Z
 HSPLjava/math/BigInt;->littleEndianIntsMagnitude()[I
 HSPLjava/math/BigInt;->longInt()J
 HSPLjava/math/BigInt;->makeValid()V
+HSPLjava/math/BigInt;->modExp(Ljava/math/BigInt;Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+HSPLjava/math/BigInt;->modulus(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+HSPLjava/math/BigInt;->newBigInt()Ljava/math/BigInt;
+HSPLjava/math/BigInt;->product(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
 HSPLjava/math/BigInt;->putBigEndian([BZ)V
 HSPLjava/math/BigInt;->putBigEndianTwosComplement([B)V
 HSPLjava/math/BigInt;->putDecString(Ljava/lang/String;)V
 HSPLjava/math/BigInt;->putHexString(Ljava/lang/String;)V
+HSPLjava/math/BigInt;->putLittleEndianInts([IZ)V
+HSPLjava/math/BigInt;->putLongInt(J)V
+HSPLjava/math/BigInt;->putULongInt(JZ)V
+HSPLjava/math/BigInt;->shift(Ljava/math/BigInt;I)Ljava/math/BigInt;
 HSPLjava/math/BigInt;->sign()I
+HSPLjava/math/BigInt;->subtraction(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
 HSPLjava/math/BigInt;->twosCompFitsIntoBytes(I)Z
+HSPLjava/math/BigInteger;-><init>(II[I)V
+HSPLjava/math/BigInteger;-><init>(IJ)V
 HSPLjava/math/BigInteger;-><init>(I[B)V
 HSPLjava/math/BigInteger;-><init>(Ljava/lang/String;)V
 HSPLjava/math/BigInteger;-><init>(Ljava/lang/String;I)V
@@ -18047,36 +37572,58 @@
 HSPLjava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger;
 HSPLjava/math/BigInteger;->bitLength()I
 HSPLjava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I
+HSPLjava/math/BigInteger;->divide(Ljava/math/BigInteger;)Ljava/math/BigInteger;
 HSPLjava/math/BigInteger;->divideAndRemainder(Ljava/math/BigInteger;)[Ljava/math/BigInteger;
 HSPLjava/math/BigInteger;->equals(Ljava/lang/Object;)Z
+HSPLjava/math/BigInteger;->gcd(Ljava/math/BigInteger;)Ljava/math/BigInteger;
 HSPLjava/math/BigInteger;->getBigInt()Ljava/math/BigInt;
 HSPLjava/math/BigInteger;->getFirstNonzeroDigit()I
+HSPLjava/math/BigInteger;->getLowestSetBit()I
 HSPLjava/math/BigInteger;->hashCode()I
 HSPLjava/math/BigInteger;->intValue()I
 HSPLjava/math/BigInteger;->longValue()J
+HSPLjava/math/BigInteger;->mod(Ljava/math/BigInteger;)Ljava/math/BigInteger;
+HSPLjava/math/BigInteger;->modPow(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
 HSPLjava/math/BigInteger;->multiply(Ljava/math/BigInteger;)Ljava/math/BigInteger;
+HSPLjava/math/BigInteger;->pow(I)Ljava/math/BigInteger;
 HSPLjava/math/BigInteger;->prepareJavaRepresentation()V
+HSPLjava/math/BigInteger;->readObject(Ljava/io/ObjectInputStream;)V
 HSPLjava/math/BigInteger;->setBigInt(Ljava/math/BigInt;)V
 HSPLjava/math/BigInteger;->setJavaRepresentation(II[I)V
+HSPLjava/math/BigInteger;->shiftLeft(I)Ljava/math/BigInteger;
+HSPLjava/math/BigInteger;->shiftLeftOneBit()Ljava/math/BigInteger;
+HSPLjava/math/BigInteger;->shiftRight(I)Ljava/math/BigInteger;
 HSPLjava/math/BigInteger;->signum()I
+HSPLjava/math/BigInteger;->subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;
+HSPLjava/math/BigInteger;->testBit(I)Z
 HSPLjava/math/BigInteger;->toByteArray()[B
 HSPLjava/math/BigInteger;->toString()Ljava/lang/String;
 HSPLjava/math/BigInteger;->toString(I)Ljava/lang/String;
 HSPLjava/math/BigInteger;->twosComplement()[B
+HSPLjava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;
+HSPLjava/math/BigInteger;->writeObject(Ljava/io/ObjectOutputStream;)V
+HSPLjava/math/BitLevel;->shiftLeftOneBit(Ljava/math/BigInteger;)Ljava/math/BigInteger;
+HSPLjava/math/BitLevel;->shiftLeftOneBit([I[II)V
 HSPLjava/math/Conversion;->bigInteger2String(Ljava/math/BigInteger;I)Ljava/lang/String;
 HSPLjava/math/MathContext;->equals(Ljava/lang/Object;)Z
 HSPLjava/math/MathContext;->getPrecision()I
 HSPLjava/math/MathContext;->getRoundingMode()Ljava/math/RoundingMode;
+HSPLjava/math/Multiplication;->powerOf10(J)Ljava/math/BigInteger;
+HSPLjava/math/RoundingMode;->valueOf(I)Ljava/math/RoundingMode;
 HSPLjava/math/RoundingMode;->values()[Ljava/math/RoundingMode;
+HSPLjava/net/AbstractPlainDatagramSocketImpl;-><init>()V
 HSPLjava/net/AbstractPlainDatagramSocketImpl;->bind(ILjava/net/InetAddress;)V
 HSPLjava/net/AbstractPlainDatagramSocketImpl;->close()V
 HSPLjava/net/AbstractPlainDatagramSocketImpl;->create()V
 HSPLjava/net/AbstractPlainDatagramSocketImpl;->finalize()V
+HSPLjava/net/AbstractPlainDatagramSocketImpl;->getOption(I)Ljava/lang/Object;
 HSPLjava/net/AbstractPlainDatagramSocketImpl;->isClosed()Z
 HSPLjava/net/AbstractPlainDatagramSocketImpl;->receive(Ljava/net/DatagramPacket;)V
 HSPLjava/net/AbstractPlainDatagramSocketImpl;->setOption(ILjava/lang/Object;)V
 HSPLjava/net/AbstractPlainSocketImpl;-><init>()V
+HSPLjava/net/AbstractPlainSocketImpl;->accept(Ljava/net/SocketImpl;)V
 HSPLjava/net/AbstractPlainSocketImpl;->acquireFD()Ljava/io/FileDescriptor;
+HSPLjava/net/AbstractPlainSocketImpl;->bind(Ljava/net/InetAddress;I)V
 HSPLjava/net/AbstractPlainSocketImpl;->close()V
 HSPLjava/net/AbstractPlainSocketImpl;->connect(Ljava/net/SocketAddress;I)V
 HSPLjava/net/AbstractPlainSocketImpl;->connectToAddress(Ljava/net/InetAddress;II)V
@@ -18089,6 +37636,8 @@
 HSPLjava/net/AbstractPlainSocketImpl;->getTimeout()I
 HSPLjava/net/AbstractPlainSocketImpl;->isClosedOrPending()Z
 HSPLjava/net/AbstractPlainSocketImpl;->isConnectionReset()Z
+HSPLjava/net/AbstractPlainSocketImpl;->isConnectionResetPending()Z
+HSPLjava/net/AbstractPlainSocketImpl;->listen(I)V
 HSPLjava/net/AbstractPlainSocketImpl;->releaseFD()V
 HSPLjava/net/AbstractPlainSocketImpl;->setOption(ILjava/lang/Object;)V
 HSPLjava/net/AbstractPlainSocketImpl;->socketClose()V
@@ -18101,13 +37650,30 @@
 HSPLjava/net/AddressCache;->get(Ljava/lang/String;I)Ljava/lang/Object;
 HSPLjava/net/AddressCache;->put(Ljava/lang/String;I[Ljava/net/InetAddress;)V
 HSPLjava/net/AddressCache;->putUnknownHost(Ljava/lang/String;ILjava/lang/String;)V
+HSPLjava/net/ConnectException;-><init>(Ljava/lang/String;)V
+HSPLjava/net/ConnectException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
 HSPLjava/net/CookieHandler;-><init>()V
 HSPLjava/net/CookieHandler;->getDefault()Ljava/net/CookieHandler;
+HSPLjava/net/CookieHandler;->setDefault(Ljava/net/CookieHandler;)V
+HSPLjava/net/CookieManager$CookiePathComparator;-><init>()V
+HSPLjava/net/CookieManager$CookiePathComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLjava/net/CookieManager$CookiePathComparator;->compare(Ljava/net/HttpCookie;Ljava/net/HttpCookie;)I
 HSPLjava/net/CookieManager;-><init>()V
 HSPLjava/net/CookieManager;-><init>(Ljava/net/CookieStore;Ljava/net/CookiePolicy;)V
 HSPLjava/net/CookieManager;->get(Ljava/net/URI;Ljava/util/Map;)Ljava/util/Map;
+HSPLjava/net/CookieManager;->getCookieStore()Ljava/net/CookieStore;
+HSPLjava/net/CookieManager;->normalizePath(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/net/CookieManager;->pathMatches(Ljava/net/URI;Ljava/net/HttpCookie;)Z
+HSPLjava/net/CookieManager;->put(Ljava/net/URI;Ljava/util/Map;)V
+HSPLjava/net/CookieManager;->shouldAcceptInternal(Ljava/net/URI;Ljava/net/HttpCookie;)Z
+HSPLjava/net/CookieManager;->sortByPath(Ljava/util/List;)Ljava/util/List;
+HSPLjava/net/CookiePolicy$3;->shouldAccept(Ljava/net/URI;Ljava/net/HttpCookie;)Z
 HSPLjava/net/DatagramPacket;-><init>([BI)V
 HSPLjava/net/DatagramPacket;-><init>([BII)V
+HSPLjava/net/DatagramPacket;-><init>([BIILjava/net/InetAddress;I)V
+HSPLjava/net/DatagramPacket;-><init>([BIILjava/net/SocketAddress;)V
+HSPLjava/net/DatagramPacket;-><init>([BILjava/net/InetAddress;I)V
+HSPLjava/net/DatagramPacket;-><init>([BILjava/net/SocketAddress;)V
 HSPLjava/net/DatagramPacket;->getAddress()Ljava/net/InetAddress;
 HSPLjava/net/DatagramPacket;->getData()[B
 HSPLjava/net/DatagramPacket;->getLength()I
@@ -18117,49 +37683,81 @@
 HSPLjava/net/DatagramPacket;->setData([BII)V
 HSPLjava/net/DatagramPacket;->setPort(I)V
 HSPLjava/net/DatagramPacket;->setReceivedLength(I)V
+HSPLjava/net/DatagramPacket;->setSocketAddress(Ljava/net/SocketAddress;)V
 HSPLjava/net/DatagramSocket$1;-><init>(Ljava/net/DatagramSocket;)V
 HSPLjava/net/DatagramSocket$1;->run()Ljava/lang/Object;
 HSPLjava/net/DatagramSocket$1;->run()Ljava/lang/Void;
+HSPLjava/net/DatagramSocket;-><init>()V
 HSPLjava/net/DatagramSocket;-><init>(Ljava/net/SocketAddress;)V
 HSPLjava/net/DatagramSocket;->bind(Ljava/net/SocketAddress;)V
 HSPLjava/net/DatagramSocket;->checkAddress(Ljava/net/InetAddress;Ljava/lang/String;)V
 HSPLjava/net/DatagramSocket;->checkOldImpl()V
 HSPLjava/net/DatagramSocket;->close()V
 HSPLjava/net/DatagramSocket;->createImpl()V
+HSPLjava/net/DatagramSocket;->getFileDescriptor$()Ljava/io/FileDescriptor;
 HSPLjava/net/DatagramSocket;->getImpl()Ljava/net/DatagramSocketImpl;
+HSPLjava/net/DatagramSocket;->getReuseAddress()Z
 HSPLjava/net/DatagramSocket;->isBound()Z
 HSPLjava/net/DatagramSocket;->isClosed()Z
 HSPLjava/net/DatagramSocket;->receive(Ljava/net/DatagramPacket;)V
 HSPLjava/net/DatagramSocket;->send(Ljava/net/DatagramPacket;)V
+HSPLjava/net/DatagramSocket;->setReuseAddress(Z)V
+HSPLjava/net/DatagramSocket;->setSoTimeout(I)V
+HSPLjava/net/DatagramSocketImpl;-><init>()V
 HSPLjava/net/DatagramSocketImpl;->setDatagramSocket(Ljava/net/DatagramSocket;)V
+HSPLjava/net/DefaultDatagramSocketImplFactory;->createDatagramSocketImpl(Z)Ljava/net/DatagramSocketImpl;
+HSPLjava/net/HttpCookie$11;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie$4;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie$6;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie$8;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie$9;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
 HSPLjava/net/HttpCookie;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLjava/net/HttpCookie;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->access$000(Ljava/net/HttpCookie;)J
 HSPLjava/net/HttpCookie;->assignAttribute(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->domainMatches(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLjava/net/HttpCookie;->equals(Ljava/lang/Object;)Z
+HSPLjava/net/HttpCookie;->equalsIgnoreCase(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLjava/net/HttpCookie;->getDomain()Ljava/lang/String;
 HSPLjava/net/HttpCookie;->getMaxAge()J
 HSPLjava/net/HttpCookie;->getName()Ljava/lang/String;
 HSPLjava/net/HttpCookie;->getPath()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->getPortlist()Ljava/lang/String;
 HSPLjava/net/HttpCookie;->getValue()Ljava/lang/String;
 HSPLjava/net/HttpCookie;->getVersion()I
 HSPLjava/net/HttpCookie;->guessCookieVersion(Ljava/lang/String;)I
+HSPLjava/net/HttpCookie;->hasExpired()Z
 HSPLjava/net/HttpCookie;->isToken(Ljava/lang/String;)Z
 HSPLjava/net/HttpCookie;->parse(Ljava/lang/String;)Ljava/util/List;
 HSPLjava/net/HttpCookie;->parse(Ljava/lang/String;Z)Ljava/util/List;
 HSPLjava/net/HttpCookie;->parseInternal(Ljava/lang/String;Z)Ljava/net/HttpCookie;
 HSPLjava/net/HttpCookie;->setDomain(Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->setHttpOnly(Z)V
 HSPLjava/net/HttpCookie;->setMaxAge(J)V
 HSPLjava/net/HttpCookie;->setPath(Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->setSecure(Z)V
 HSPLjava/net/HttpCookie;->setVersion(I)V
 HSPLjava/net/HttpCookie;->startsWithIgnoreCase(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLjava/net/HttpCookie;->stripOffSurroundingQuote(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/net/HttpCookie;->toNetscapeHeaderString()Ljava/lang/String;
 HSPLjava/net/HttpCookie;->toString()Ljava/lang/String;
 HSPLjava/net/HttpURLConnection;-><init>(Ljava/net/URL;)V
 HSPLjava/net/HttpURLConnection;->getFollowRedirects()Z
 HSPLjava/net/HttpURLConnection;->setChunkedStreamingMode(I)V
+HSPLjava/net/HttpURLConnection;->setRequestMethod(Ljava/lang/String;)V
 HSPLjava/net/IDN;->toASCII(Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/net/IDN;->toASCII(Ljava/lang/String;I)Ljava/lang/String;
 HSPLjava/net/InMemoryCookieStore;-><init>()V
 HSPLjava/net/InMemoryCookieStore;-><init>(I)V
+HSPLjava/net/InMemoryCookieStore;->add(Ljava/net/URI;Ljava/net/HttpCookie;)V
+HSPLjava/net/InMemoryCookieStore;->addIndex(Ljava/util/Map;Ljava/lang/Object;Ljava/net/HttpCookie;)V
+HSPLjava/net/InMemoryCookieStore;->get(Ljava/net/URI;)Ljava/util/List;
+HSPLjava/net/InMemoryCookieStore;->getCookies()Ljava/util/List;
+HSPLjava/net/InMemoryCookieStore;->getEffectiveURI(Ljava/net/URI;)Ljava/net/URI;
+HSPLjava/net/InMemoryCookieStore;->getInternal1(Ljava/util/List;Ljava/util/Map;Ljava/lang/String;)V
+HSPLjava/net/InMemoryCookieStore;->getInternal2(Ljava/util/List;Ljava/util/Map;Ljava/lang/Comparable;)V
+HSPLjava/net/InMemoryCookieStore;->netscapeDomainMatches(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLjava/net/Inet4Address;-><init>()V
 HSPLjava/net/Inet4Address;-><init>(Ljava/lang/String;[B)V
 HSPLjava/net/Inet4Address;->equals(Ljava/lang/Object;)Z
 HSPLjava/net/Inet4Address;->getAddress()[B
@@ -18169,6 +37767,7 @@
 HSPLjava/net/Inet4Address;->isLinkLocalAddress()Z
 HSPLjava/net/Inet4Address;->isLoopbackAddress()Z
 HSPLjava/net/Inet4Address;->isMulticastAddress()Z
+HSPLjava/net/Inet4Address;->numericToTextFormat([B)Ljava/lang/String;
 HSPLjava/net/Inet6Address$Inet6AddressHolder;-><init>(Ljava/net/Inet6Address;)V
 HSPLjava/net/Inet6Address$Inet6AddressHolder;-><init>(Ljava/net/Inet6Address;Ljava/net/Inet6Address$1;)V
 HSPLjava/net/Inet6Address$Inet6AddressHolder;->equals(Ljava/lang/Object;)Z
@@ -18178,7 +37777,9 @@
 HSPLjava/net/Inet6Address$Inet6AddressHolder;->isLinkLocalAddress()Z
 HSPLjava/net/Inet6Address$Inet6AddressHolder;->isLoopbackAddress()Z
 HSPLjava/net/Inet6Address$Inet6AddressHolder;->isMulticastAddress()Z
+HSPLjava/net/Inet6Address$Inet6AddressHolder;->isSiteLocalAddress()Z
 HSPLjava/net/Inet6Address$Inet6AddressHolder;->setAddr([B)V
+HSPLjava/net/Inet6Address;-><init>()V
 HSPLjava/net/Inet6Address;-><init>(Ljava/lang/String;[BI)V
 HSPLjava/net/Inet6Address;->equals(Ljava/lang/Object;)Z
 HSPLjava/net/Inet6Address;->getAddress()[B
@@ -18190,6 +37791,7 @@
 HSPLjava/net/Inet6Address;->isLinkLocalAddress()Z
 HSPLjava/net/Inet6Address;->isLoopbackAddress()Z
 HSPLjava/net/Inet6Address;->isMulticastAddress()Z
+HSPLjava/net/Inet6Address;->isSiteLocalAddress()Z
 HSPLjava/net/Inet6AddressImpl;->clearAddressCache()V
 HSPLjava/net/Inet6AddressImpl;->lookupAllHostAddr(Ljava/lang/String;I)[Ljava/net/InetAddress;
 HSPLjava/net/Inet6AddressImpl;->lookupHostByName(Ljava/lang/String;I)[Ljava/net/InetAddress;
@@ -18200,10 +37802,13 @@
 HSPLjava/net/InetAddress;-><init>()V
 HSPLjava/net/InetAddress;->clearDnsCache()V
 HSPLjava/net/InetAddress;->getAllByName(Ljava/lang/String;)[Ljava/net/InetAddress;
+HSPLjava/net/InetAddress;->getAllByNameOnNet(Ljava/lang/String;I)[Ljava/net/InetAddress;
 HSPLjava/net/InetAddress;->getByAddress(Ljava/lang/String;[B)Ljava/net/InetAddress;
 HSPLjava/net/InetAddress;->getByAddress(Ljava/lang/String;[BI)Ljava/net/InetAddress;
 HSPLjava/net/InetAddress;->getByAddress([B)Ljava/net/InetAddress;
 HSPLjava/net/InetAddress;->getByName(Ljava/lang/String;)Ljava/net/InetAddress;
+HSPLjava/net/InetAddress;->getByNameOnNet(Ljava/lang/String;I)Ljava/net/InetAddress;
+HSPLjava/net/InetAddress;->getHostName()Ljava/lang/String;
 HSPLjava/net/InetAddress;->holder()Ljava/net/InetAddress$InetAddressHolder;
 HSPLjava/net/InetAddress;->parseNumericAddress(Ljava/lang/String;)Ljava/net/InetAddress;
 HSPLjava/net/InetAddress;->toString()Ljava/lang/String;
@@ -18211,10 +37816,12 @@
 HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;-><init>(Ljava/lang/String;Ljava/net/InetAddress;ILjava/net/InetSocketAddress$1;)V
 HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->access$400(Ljava/net/InetSocketAddress$InetSocketAddressHolder;)I
 HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->access$500(Ljava/net/InetSocketAddress$InetSocketAddressHolder;)Ljava/net/InetAddress;
+HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->access$600(Ljava/net/InetSocketAddress$InetSocketAddressHolder;)Ljava/lang/String;
 HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->access$700(Ljava/net/InetSocketAddress$InetSocketAddressHolder;)Ljava/lang/String;
 HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->access$800(Ljava/net/InetSocketAddress$InetSocketAddressHolder;)Z
 HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->equals(Ljava/lang/Object;)Z
 HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->getAddress()Ljava/net/InetAddress;
+HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->getHostName()Ljava/lang/String;
 HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->getHostString()Ljava/lang/String;
 HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->getPort()I
 HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->hashCode()I
@@ -18230,6 +37837,7 @@
 HSPLjava/net/InetSocketAddress;->createUnresolved(Ljava/lang/String;I)Ljava/net/InetSocketAddress;
 HSPLjava/net/InetSocketAddress;->equals(Ljava/lang/Object;)Z
 HSPLjava/net/InetSocketAddress;->getAddress()Ljava/net/InetAddress;
+HSPLjava/net/InetSocketAddress;->getHostName()Ljava/lang/String;
 HSPLjava/net/InetSocketAddress;->getHostString()Ljava/lang/String;
 HSPLjava/net/InetSocketAddress;->getPort()I
 HSPLjava/net/InetSocketAddress;->hashCode()I
@@ -18237,29 +37845,60 @@
 HSPLjava/net/InetSocketAddress;->toString()Ljava/lang/String;
 HSPLjava/net/InterfaceAddress;-><init>(Ljava/net/InetAddress;Ljava/net/Inet4Address;Ljava/net/InetAddress;)V
 HSPLjava/net/InterfaceAddress;->countPrefixLength(Ljava/net/InetAddress;)S
+HSPLjava/net/InterfaceAddress;->getAddress()Ljava/net/InetAddress;
 HSPLjava/net/JarURLConnection;-><init>(Ljava/net/URL;)V
 HSPLjava/net/JarURLConnection;->getEntryName()Ljava/lang/String;
 HSPLjava/net/JarURLConnection;->parseSpecs(Ljava/net/URL;)V
+HSPLjava/net/MalformedURLException;-><init>(Ljava/lang/String;)V
+HSPLjava/net/MulticastSocket;-><init>(I)V
+HSPLjava/net/MulticastSocket;-><init>(Ljava/net/SocketAddress;)V
+HSPLjava/net/MulticastSocket;->setNetworkInterface(Ljava/net/NetworkInterface;)V
+HSPLjava/net/MulticastSocket;->setTimeToLive(I)V
+HSPLjava/net/NetworkInterface$1checkedAddresses;-><init>(Ljava/net/NetworkInterface;)V
+HSPLjava/net/NetworkInterface$1checkedAddresses;->hasMoreElements()Z
+HSPLjava/net/NetworkInterface$1checkedAddresses;->nextElement()Ljava/lang/Object;
+HSPLjava/net/NetworkInterface$1checkedAddresses;->nextElement()Ljava/net/InetAddress;
 HSPLjava/net/NetworkInterface;-><init>(Ljava/lang/String;I[Ljava/net/InetAddress;)V
+HSPLjava/net/NetworkInterface;->access$000(Ljava/net/NetworkInterface;)[Ljava/net/InetAddress;
 HSPLjava/net/NetworkInterface;->getAll()[Ljava/net/NetworkInterface;
+HSPLjava/net/NetworkInterface;->getByName(Ljava/lang/String;)Ljava/net/NetworkInterface;
+HSPLjava/net/NetworkInterface;->getFlags()I
+HSPLjava/net/NetworkInterface;->getIndex()I
+HSPLjava/net/NetworkInterface;->getInetAddresses()Ljava/util/Enumeration;
+HSPLjava/net/NetworkInterface;->getInterfaceAddresses()Ljava/util/List;
 HSPLjava/net/NetworkInterface;->getName()Ljava/lang/String;
 HSPLjava/net/NetworkInterface;->getNetworkInterfaces()Ljava/util/Enumeration;
+HSPLjava/net/NetworkInterface;->isLoopback()Z
+HSPLjava/net/NetworkInterface;->isPointToPoint()Z
+HSPLjava/net/NetworkInterface;->isUp()Z
+HSPLjava/net/NetworkInterface;->isVirtual()Z
+HSPLjava/net/NetworkInterface;->supportsMulticast()Z
 HSPLjava/net/Parts;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLjava/net/Parts;->getPath()Ljava/lang/String;
 HSPLjava/net/Parts;->getQuery()Ljava/lang/String;
 HSPLjava/net/Parts;->getRef()Ljava/lang/String;
+HSPLjava/net/PlainDatagramSocketImpl;-><init>()V
 HSPLjava/net/PlainDatagramSocketImpl;->bind0(ILjava/net/InetAddress;)V
 HSPLjava/net/PlainDatagramSocketImpl;->datagramSocketClose()V
 HSPLjava/net/PlainDatagramSocketImpl;->datagramSocketCreate()V
 HSPLjava/net/PlainDatagramSocketImpl;->doRecv(Ljava/net/DatagramPacket;I)V
+HSPLjava/net/PlainDatagramSocketImpl;->join(Ljava/net/InetAddress;Ljava/net/NetworkInterface;)V
+HSPLjava/net/PlainDatagramSocketImpl;->leave(Ljava/net/InetAddress;Ljava/net/NetworkInterface;)V
 HSPLjava/net/PlainDatagramSocketImpl;->receive0(Ljava/net/DatagramPacket;)V
 HSPLjava/net/PlainDatagramSocketImpl;->send(Ljava/net/DatagramPacket;)V
+HSPLjava/net/PlainDatagramSocketImpl;->setTimeToLive(I)V
+HSPLjava/net/PlainDatagramSocketImpl;->socketGetOption(I)Ljava/lang/Object;
+HSPLjava/net/PlainDatagramSocketImpl;->socketSetOption(ILjava/lang/Object;)V
+HSPLjava/net/PlainDatagramSocketImpl;->socketSetOption0(ILjava/lang/Object;)V
 HSPLjava/net/PlainSocketImpl;-><init>()V
 HSPLjava/net/PlainSocketImpl;->getMarkerFD()Ljava/io/FileDescriptor;
+HSPLjava/net/PlainSocketImpl;->socketAccept(Ljava/net/SocketImpl;)V
+HSPLjava/net/PlainSocketImpl;->socketBind(Ljava/net/InetAddress;I)V
 HSPLjava/net/PlainSocketImpl;->socketClose0(Z)V
 HSPLjava/net/PlainSocketImpl;->socketConnect(Ljava/net/InetAddress;II)V
 HSPLjava/net/PlainSocketImpl;->socketCreate(Z)V
 HSPLjava/net/PlainSocketImpl;->socketGetOption(I)Ljava/lang/Object;
+HSPLjava/net/PlainSocketImpl;->socketListen(I)V
 HSPLjava/net/PlainSocketImpl;->socketSetOption(ILjava/lang/Object;)V
 HSPLjava/net/PlainSocketImpl;->socketSetOption0(ILjava/lang/Object;)V
 HSPLjava/net/Proxy;->address()Ljava/net/SocketAddress;
@@ -18269,6 +37908,21 @@
 HSPLjava/net/ProxySelector;->getDefault()Ljava/net/ProxySelector;
 HSPLjava/net/ProxySelector;->setDefault(Ljava/net/ProxySelector;)V
 HSPLjava/net/ResponseCache;->getDefault()Ljava/net/ResponseCache;
+HSPLjava/net/ServerSocket;-><init>()V
+HSPLjava/net/ServerSocket;->accept()Ljava/net/Socket;
+HSPLjava/net/ServerSocket;->bind(Ljava/net/SocketAddress;)V
+HSPLjava/net/ServerSocket;->bind(Ljava/net/SocketAddress;I)V
+HSPLjava/net/ServerSocket;->createImpl()V
+HSPLjava/net/ServerSocket;->getImpl()Ljava/net/SocketImpl;
+HSPLjava/net/ServerSocket;->implAccept(Ljava/net/Socket;)V
+HSPLjava/net/ServerSocket;->isBound()Z
+HSPLjava/net/ServerSocket;->isClosed()Z
+HSPLjava/net/ServerSocket;->setBound()V
+HSPLjava/net/ServerSocket;->setCreated()V
+HSPLjava/net/ServerSocket;->setImpl()V
+HSPLjava/net/Socket$1;-><init>(Ljava/net/Socket;)V
+HSPLjava/net/Socket$1;->run()Ljava/lang/Boolean;
+HSPLjava/net/Socket$1;->run()Ljava/lang/Object;
 HSPLjava/net/Socket$2;-><init>(Ljava/net/Socket;)V
 HSPLjava/net/Socket$2;->run()Ljava/io/InputStream;
 HSPLjava/net/Socket$2;->run()Ljava/lang/Object;
@@ -18277,8 +37931,10 @@
 HSPLjava/net/Socket$3;->run()Ljava/lang/Object;
 HSPLjava/net/Socket;-><init>()V
 HSPLjava/net/Socket;-><init>(Ljava/net/InetAddress;I)V
+HSPLjava/net/Socket;-><init>(Ljava/net/SocketImpl;)V
 HSPLjava/net/Socket;-><init>([Ljava/net/InetAddress;ILjava/net/SocketAddress;Z)V
 HSPLjava/net/Socket;->checkAddress(Ljava/net/InetAddress;Ljava/lang/String;)V
+HSPLjava/net/Socket;->checkOldImpl()V
 HSPLjava/net/Socket;->close()V
 HSPLjava/net/Socket;->connect(Ljava/net/SocketAddress;)V
 HSPLjava/net/Socket;->connect(Ljava/net/SocketAddress;I)V
@@ -18307,6 +37963,7 @@
 HSPLjava/net/Socket;->setImpl()V
 HSPLjava/net/Socket;->setSoTimeout(I)V
 HSPLjava/net/Socket;->setTcpNoDelay(Z)V
+HSPLjava/net/Socket;->toString()Ljava/lang/String;
 HSPLjava/net/SocketAddress;-><init>()V
 HSPLjava/net/SocketException;-><init>(Ljava/lang/String;)V
 HSPLjava/net/SocketException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
@@ -18316,6 +37973,7 @@
 HSPLjava/net/SocketImpl;->getLocalPort()I
 HSPLjava/net/SocketImpl;->getPort()I
 HSPLjava/net/SocketImpl;->getSocket()Ljava/net/Socket;
+HSPLjava/net/SocketImpl;->setServerSocket(Ljava/net/ServerSocket;)V
 HSPLjava/net/SocketImpl;->setSocket(Ljava/net/Socket;)V
 HSPLjava/net/SocketInputStream;-><init>(Ljava/net/AbstractPlainSocketImpl;)V
 HSPLjava/net/SocketInputStream;->finalize()V
@@ -18339,6 +37997,7 @@
 HSPLjava/net/URI$Parser;->charAt(I)C
 HSPLjava/net/URI$Parser;->checkChar(IJJLjava/lang/String;)V
 HSPLjava/net/URI$Parser;->checkChars(IIJJLjava/lang/String;)V
+HSPLjava/net/URI$Parser;->fail(Ljava/lang/String;I)V
 HSPLjava/net/URI$Parser;->parse(Z)V
 HSPLjava/net/URI$Parser;->parseAuthority(II)I
 HSPLjava/net/URI$Parser;->parseHierarchical(II)I
@@ -18348,6 +38007,7 @@
 HSPLjava/net/URI$Parser;->scan(IIC)I
 HSPLjava/net/URI$Parser;->scan(IIJJ)I
 HSPLjava/net/URI$Parser;->scan(IILjava/lang/String;Ljava/lang/String;)I
+HSPLjava/net/URI$Parser;->scanByte(II)I
 HSPLjava/net/URI$Parser;->scanEscape(IIC)I
 HSPLjava/net/URI$Parser;->scanIPv4Address(IIZ)I
 HSPLjava/net/URI$Parser;->substring(II)Ljava/lang/String;
@@ -18390,6 +38050,10 @@
 HSPLjava/net/URI;->appendFragment(Ljava/lang/StringBuffer;Ljava/lang/String;)V
 HSPLjava/net/URI;->appendSchemeSpecificPart(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
 HSPLjava/net/URI;->checkPath(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/URI;->compare(Ljava/lang/String;Ljava/lang/String;)I
+HSPLjava/net/URI;->compareIgnoringCase(Ljava/lang/String;Ljava/lang/String;)I
+HSPLjava/net/URI;->compareTo(Ljava/lang/Object;)I
+HSPLjava/net/URI;->compareTo(Ljava/net/URI;)I
 HSPLjava/net/URI;->create(Ljava/lang/String;)Ljava/net/URI;
 HSPLjava/net/URI;->decode(Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/net/URI;->defineString()V
@@ -18418,8 +38082,12 @@
 HSPLjava/net/URI;->toLower(C)I
 HSPLjava/net/URI;->toString()Ljava/lang/String;
 HSPLjava/net/URI;->toString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/net/URI;->toURL()Ljava/net/URL;
+HSPLjava/net/URISyntaxException;-><init>(Ljava/lang/String;Ljava/lang/String;I)V
 HSPLjava/net/URL;-><init>(Ljava/lang/String;)V
+HSPLjava/net/URL;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
 HSPLjava/net/URL;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/net/URLStreamHandler;)V
+HSPLjava/net/URL;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLjava/net/URL;-><init>(Ljava/net/URL;Ljava/lang/String;)V
 HSPLjava/net/URL;-><init>(Ljava/net/URL;Ljava/lang/String;Ljava/net/URLStreamHandler;)V
 HSPLjava/net/URL;->createBuiltinHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler;
@@ -18445,12 +38113,16 @@
 HSPLjava/net/URLConnection;->getContentLengthLong()J
 HSPLjava/net/URLConnection;->getContentType()Ljava/lang/String;
 HSPLjava/net/URLConnection;->getHeaderFieldLong(Ljava/lang/String;J)J
+HSPLjava/net/URLConnection;->getReadTimeout()I
 HSPLjava/net/URLConnection;->getURL()Ljava/net/URL;
 HSPLjava/net/URLConnection;->getUseCaches()Z
+HSPLjava/net/URLConnection;->setDefaultUseCaches(Z)V
 HSPLjava/net/URLConnection;->setDoInput(Z)V
 HSPLjava/net/URLConnection;->setDoOutput(Z)V
+HSPLjava/net/URLConnection;->setReadTimeout(I)V
 HSPLjava/net/URLConnection;->setUseCaches(Z)V
 HSPLjava/net/URLDecoder;->decode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/net/URLDecoder;->isValidHexChar(C)Z
 HSPLjava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/net/URLStreamHandler;-><init>()V
 HSPLjava/net/URLStreamHandler;->parseURL(Ljava/net/URL;Ljava/lang/String;II)V
@@ -18460,7 +38132,10 @@
 HSPLjava/nio/Bits;->byteOrder()Ljava/nio/ByteOrder;
 HSPLjava/nio/Bits;->char0(C)B
 HSPLjava/nio/Bits;->char1(C)B
+HSPLjava/nio/Bits;->getDouble(Ljava/nio/ByteBuffer;IZ)D
+HSPLjava/nio/Bits;->getDoubleL(Ljava/nio/ByteBuffer;I)D
 HSPLjava/nio/Bits;->getFloat(Ljava/nio/ByteBuffer;IZ)F
+HSPLjava/nio/Bits;->getFloatB(Ljava/nio/ByteBuffer;I)F
 HSPLjava/nio/Bits;->getFloatL(Ljava/nio/ByteBuffer;I)F
 HSPLjava/nio/Bits;->getInt(Ljava/nio/ByteBuffer;IZ)I
 HSPLjava/nio/Bits;->getIntB(Ljava/nio/ByteBuffer;I)I
@@ -18490,6 +38165,9 @@
 HSPLjava/nio/Bits;->pageSize()I
 HSPLjava/nio/Bits;->putChar(Ljava/nio/ByteBuffer;ICZ)V
 HSPLjava/nio/Bits;->putCharB(Ljava/nio/ByteBuffer;IC)V
+HSPLjava/nio/Bits;->putCharL(Ljava/nio/ByteBuffer;IC)V
+HSPLjava/nio/Bits;->putFloat(Ljava/nio/ByteBuffer;IFZ)V
+HSPLjava/nio/Bits;->putFloatB(Ljava/nio/ByteBuffer;IF)V
 HSPLjava/nio/Bits;->putInt(Ljava/nio/ByteBuffer;IIZ)V
 HSPLjava/nio/Bits;->putIntB(Ljava/nio/ByteBuffer;II)V
 HSPLjava/nio/Bits;->putIntL(Ljava/nio/ByteBuffer;II)V
@@ -18528,11 +38206,15 @@
 HSPLjava/nio/ByteBuffer;-><init>(IIII[BI)V
 HSPLjava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
 HSPLjava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;
+HSPLjava/nio/ByteBuffer;->array()Ljava/lang/Object;
 HSPLjava/nio/ByteBuffer;->array()[B
 HSPLjava/nio/ByteBuffer;->arrayOffset()I
 HSPLjava/nio/ByteBuffer;->clear()Ljava/nio/Buffer;
 HSPLjava/nio/ByteBuffer;->compare(BB)I
+HSPLjava/nio/ByteBuffer;->compareTo(Ljava/lang/Object;)I
 HSPLjava/nio/ByteBuffer;->compareTo(Ljava/nio/ByteBuffer;)I
+HSPLjava/nio/ByteBuffer;->equals(BB)Z
+HSPLjava/nio/ByteBuffer;->equals(Ljava/lang/Object;)Z
 HSPLjava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;
 HSPLjava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;
 HSPLjava/nio/ByteBuffer;->hasArray()Z
@@ -18560,15 +38242,25 @@
 HSPLjava/nio/ByteBufferAsCharBuffer;->toString(II)Ljava/lang/String;
 HSPLjava/nio/ByteBufferAsFloatBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
 HSPLjava/nio/ByteBufferAsFloatBuffer;->ix(I)I
+HSPLjava/nio/ByteBufferAsFloatBuffer;->put(F)Ljava/nio/FloatBuffer;
+HSPLjava/nio/ByteBufferAsFloatBuffer;->put(IF)Ljava/nio/FloatBuffer;
+HSPLjava/nio/ByteBufferAsFloatBuffer;->put([FII)Ljava/nio/FloatBuffer;
 HSPLjava/nio/ByteBufferAsIntBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
+HSPLjava/nio/ByteBufferAsIntBuffer;->get()I
+HSPLjava/nio/ByteBufferAsIntBuffer;->get(I)I
 HSPLjava/nio/ByteBufferAsIntBuffer;->get([III)Ljava/nio/IntBuffer;
 HSPLjava/nio/ByteBufferAsIntBuffer;->ix(I)I
+HSPLjava/nio/ByteBufferAsIntBuffer;->put(I)Ljava/nio/IntBuffer;
+HSPLjava/nio/ByteBufferAsIntBuffer;->put(II)Ljava/nio/IntBuffer;
+HSPLjava/nio/ByteBufferAsIntBuffer;->put([III)Ljava/nio/IntBuffer;
 HSPLjava/nio/ByteBufferAsLongBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
 HSPLjava/nio/ByteBufferAsLongBuffer;->get([JII)Ljava/nio/LongBuffer;
 HSPLjava/nio/ByteBufferAsLongBuffer;->ix(I)I
+HSPLjava/nio/ByteBufferAsLongBuffer;->put([JII)Ljava/nio/LongBuffer;
 HSPLjava/nio/ByteBufferAsShortBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
 HSPLjava/nio/ByteBufferAsShortBuffer;->get([SII)Ljava/nio/ShortBuffer;
 HSPLjava/nio/ByteBufferAsShortBuffer;->ix(I)I
+HSPLjava/nio/ByteBufferAsShortBuffer;->put([SII)Ljava/nio/ShortBuffer;
 HSPLjava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder;
 HSPLjava/nio/CharBuffer;-><init>(IIII)V
 HSPLjava/nio/CharBuffer;-><init>(IIII[CI)V
@@ -18591,6 +38283,7 @@
 HSPLjava/nio/CharBuffer;->wrap([CII)Ljava/nio/CharBuffer;
 HSPLjava/nio/DirectByteBuffer$MemoryRef;-><init>(I)V
 HSPLjava/nio/DirectByteBuffer$MemoryRef;-><init>(JLjava/lang/Object;)V
+HSPLjava/nio/DirectByteBuffer$MemoryRef;->free()V
 HSPLjava/nio/DirectByteBuffer;-><init>(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;Z)V
 HSPLjava/nio/DirectByteBuffer;-><init>(ILjava/nio/DirectByteBuffer$MemoryRef;)V
 HSPLjava/nio/DirectByteBuffer;-><init>(JI)V
@@ -18611,11 +38304,17 @@
 HSPLjava/nio/DirectByteBuffer;->getChar()C
 HSPLjava/nio/DirectByteBuffer;->getChar(I)C
 HSPLjava/nio/DirectByteBuffer;->getCharUnchecked(I)C
+HSPLjava/nio/DirectByteBuffer;->getDouble(I)D
+HSPLjava/nio/DirectByteBuffer;->getDouble(J)D
+HSPLjava/nio/DirectByteBuffer;->getFloat()F
+HSPLjava/nio/DirectByteBuffer;->getFloat(J)F
 HSPLjava/nio/DirectByteBuffer;->getInt()I
 HSPLjava/nio/DirectByteBuffer;->getInt(I)I
 HSPLjava/nio/DirectByteBuffer;->getInt(J)I
+HSPLjava/nio/DirectByteBuffer;->getLong()J
 HSPLjava/nio/DirectByteBuffer;->getLong(I)J
 HSPLjava/nio/DirectByteBuffer;->getLong(J)J
+HSPLjava/nio/DirectByteBuffer;->getShort()S
 HSPLjava/nio/DirectByteBuffer;->getShort(I)S
 HSPLjava/nio/DirectByteBuffer;->getShort(J)S
 HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[CII)V
@@ -18625,14 +38324,31 @@
 HSPLjava/nio/DirectByteBuffer;->isDirect()Z
 HSPLjava/nio/DirectByteBuffer;->isReadOnly()Z
 HSPLjava/nio/DirectByteBuffer;->ix(I)J
+HSPLjava/nio/DirectByteBuffer;->put(B)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->put(IB)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->put(JB)Ljava/nio/ByteBuffer;
 HSPLjava/nio/DirectByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
 HSPLjava/nio/DirectByteBuffer;->put([BII)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putFloat(F)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putFloat(JF)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putFloatUnchecked(IF)V
+HSPLjava/nio/DirectByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putInt(II)Ljava/nio/ByteBuffer;
 HSPLjava/nio/DirectByteBuffer;->putInt(JI)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putLong(IJ)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putLong(J)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putLong(JJ)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putShort(JS)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putUnchecked(I[FII)V
+HSPLjava/nio/DirectByteBuffer;->putUnchecked(I[SII)V
+HSPLjava/nio/DirectByteBuffer;->setAccessible(Z)V
 HSPLjava/nio/DirectByteBuffer;->slice()Ljava/nio/ByteBuffer;
 HSPLjava/nio/FloatBuffer;-><init>(IIII)V
 HSPLjava/nio/FloatBuffer;-><init>(IIII[FI)V
+HSPLjava/nio/FloatBuffer;->clear()Ljava/nio/Buffer;
 HSPLjava/nio/FloatBuffer;->limit(I)Ljava/nio/Buffer;
 HSPLjava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;
+HSPLjava/nio/FloatBuffer;->put([F)Ljava/nio/FloatBuffer;
 HSPLjava/nio/HeapByteBuffer;-><init>(II)V
 HSPLjava/nio/HeapByteBuffer;-><init>(IIZ)V
 HSPLjava/nio/HeapByteBuffer;-><init>([BII)V
@@ -18640,35 +38356,53 @@
 HSPLjava/nio/HeapByteBuffer;-><init>([BIIZ)V
 HSPLjava/nio/HeapByteBuffer;->_get(I)B
 HSPLjava/nio/HeapByteBuffer;->_put(IB)V
+HSPLjava/nio/HeapByteBuffer;->asIntBuffer()Ljava/nio/IntBuffer;
+HSPLjava/nio/HeapByteBuffer;->asLongBuffer()Ljava/nio/LongBuffer;
+HSPLjava/nio/HeapByteBuffer;->asReadOnlyBuffer()Ljava/nio/ByteBuffer;
+HSPLjava/nio/HeapByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
 HSPLjava/nio/HeapByteBuffer;->compact()Ljava/nio/ByteBuffer;
 HSPLjava/nio/HeapByteBuffer;->duplicate()Ljava/nio/ByteBuffer;
 HSPLjava/nio/HeapByteBuffer;->get()B
 HSPLjava/nio/HeapByteBuffer;->get(I)B
 HSPLjava/nio/HeapByteBuffer;->get([BII)Ljava/nio/ByteBuffer;
+HSPLjava/nio/HeapByteBuffer;->getDouble()D
+HSPLjava/nio/HeapByteBuffer;->getFloat()F
 HSPLjava/nio/HeapByteBuffer;->getFloat(I)F
 HSPLjava/nio/HeapByteBuffer;->getInt()I
 HSPLjava/nio/HeapByteBuffer;->getInt(I)I
+HSPLjava/nio/HeapByteBuffer;->getIntUnchecked(I)I
 HSPLjava/nio/HeapByteBuffer;->getLong()J
 HSPLjava/nio/HeapByteBuffer;->getLong(I)J
 HSPLjava/nio/HeapByteBuffer;->getShort()S
 HSPLjava/nio/HeapByteBuffer;->getShort(I)S
+HSPLjava/nio/HeapByteBuffer;->getUnchecked(I[III)V
+HSPLjava/nio/HeapByteBuffer;->getUnchecked(I[JII)V
+HSPLjava/nio/HeapByteBuffer;->getUnchecked(I[SII)V
 HSPLjava/nio/HeapByteBuffer;->isDirect()Z
 HSPLjava/nio/HeapByteBuffer;->isReadOnly()Z
 HSPLjava/nio/HeapByteBuffer;->ix(I)I
 HSPLjava/nio/HeapByteBuffer;->put(B)Ljava/nio/ByteBuffer;
+HSPLjava/nio/HeapByteBuffer;->put(IB)Ljava/nio/ByteBuffer;
 HSPLjava/nio/HeapByteBuffer;->put([BII)Ljava/nio/ByteBuffer;
 HSPLjava/nio/HeapByteBuffer;->putChar(C)Ljava/nio/ByteBuffer;
+HSPLjava/nio/HeapByteBuffer;->putFloat(F)Ljava/nio/ByteBuffer;
 HSPLjava/nio/HeapByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
 HSPLjava/nio/HeapByteBuffer;->putInt(II)Ljava/nio/ByteBuffer;
+HSPLjava/nio/HeapByteBuffer;->putIntUnchecked(II)V
 HSPLjava/nio/HeapByteBuffer;->putLong(IJ)Ljava/nio/ByteBuffer;
 HSPLjava/nio/HeapByteBuffer;->putLong(J)Ljava/nio/ByteBuffer;
+HSPLjava/nio/HeapByteBuffer;->putShort(IS)Ljava/nio/ByteBuffer;
 HSPLjava/nio/HeapByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;
+HSPLjava/nio/HeapByteBuffer;->putUnchecked(I[III)V
+HSPLjava/nio/HeapByteBuffer;->putUnchecked(I[JII)V
+HSPLjava/nio/HeapByteBuffer;->putUnchecked(I[SII)V
 HSPLjava/nio/HeapByteBuffer;->slice()Ljava/nio/ByteBuffer;
 HSPLjava/nio/HeapCharBuffer;-><init>(II)V
 HSPLjava/nio/HeapCharBuffer;-><init>(IIZ)V
 HSPLjava/nio/HeapCharBuffer;-><init>([CII)V
 HSPLjava/nio/HeapCharBuffer;-><init>([CIIIIIZ)V
 HSPLjava/nio/HeapCharBuffer;-><init>([CIIZ)V
+HSPLjava/nio/HeapCharBuffer;->get()C
 HSPLjava/nio/HeapCharBuffer;->get(I)C
 HSPLjava/nio/HeapCharBuffer;->ix(I)I
 HSPLjava/nio/HeapCharBuffer;->put(Ljava/nio/CharBuffer;)Ljava/nio/CharBuffer;
@@ -18677,14 +38411,22 @@
 HSPLjava/nio/HeapCharBuffer;->toString(II)Ljava/lang/String;
 HSPLjava/nio/IntBuffer;-><init>(IIII)V
 HSPLjava/nio/IntBuffer;-><init>(IIII[II)V
+HSPLjava/nio/IntBuffer;->allocate(I)Ljava/nio/IntBuffer;
+HSPLjava/nio/IntBuffer;->array()Ljava/lang/Object;
+HSPLjava/nio/IntBuffer;->array()[I
+HSPLjava/nio/IntBuffer;->arrayOffset()I
+HSPLjava/nio/IntBuffer;->clear()Ljava/nio/Buffer;
 HSPLjava/nio/IntBuffer;->get([I)Ljava/nio/IntBuffer;
+HSPLjava/nio/IntBuffer;->hasArray()Z
 HSPLjava/nio/IntBuffer;->limit(I)Ljava/nio/Buffer;
 HSPLjava/nio/IntBuffer;->position(I)Ljava/nio/Buffer;
+HSPLjava/nio/IntBuffer;->put([I)Ljava/nio/IntBuffer;
 HSPLjava/nio/LongBuffer;-><init>(IIII)V
 HSPLjava/nio/LongBuffer;-><init>(IIII[JI)V
 HSPLjava/nio/LongBuffer;->get([J)Ljava/nio/LongBuffer;
 HSPLjava/nio/LongBuffer;->limit(I)Ljava/nio/Buffer;
 HSPLjava/nio/LongBuffer;->position(I)Ljava/nio/Buffer;
+HSPLjava/nio/LongBuffer;->put([J)Ljava/nio/LongBuffer;
 HSPLjava/nio/MappedByteBuffer;-><init>(IIII)V
 HSPLjava/nio/MappedByteBuffer;-><init>(IIIILjava/io/FileDescriptor;)V
 HSPLjava/nio/MappedByteBuffer;-><init>(IIII[BI)V
@@ -18693,34 +38435,99 @@
 HSPLjava/nio/MappedByteBuffer;->mappingAddress(J)J
 HSPLjava/nio/MappedByteBuffer;->mappingLength(J)J
 HSPLjava/nio/MappedByteBuffer;->mappingOffset()J
+HSPLjava/nio/NIOAccess;->getBaseArray(Ljava/nio/Buffer;)Ljava/lang/Object;
+HSPLjava/nio/NIOAccess;->getBaseArrayOffset(Ljava/nio/Buffer;)I
+HSPLjava/nio/NioUtils;->freeDirectBuffer(Ljava/nio/ByteBuffer;)V
+HSPLjava/nio/NioUtils;->unsafeArray(Ljava/nio/ByteBuffer;)[B
+HSPLjava/nio/NioUtils;->unsafeArrayOffset(Ljava/nio/ByteBuffer;)I
 HSPLjava/nio/ShortBuffer;-><init>(IIII)V
 HSPLjava/nio/ShortBuffer;-><init>(IIII[SI)V
 HSPLjava/nio/ShortBuffer;->get([S)Ljava/nio/ShortBuffer;
 HSPLjava/nio/ShortBuffer;->limit(I)Ljava/nio/Buffer;
 HSPLjava/nio/ShortBuffer;->position(I)Ljava/nio/Buffer;
+HSPLjava/nio/ShortBuffer;->put([S)Ljava/nio/ShortBuffer;
 HSPLjava/nio/StringCharBuffer;-><init>(Ljava/lang/CharSequence;II)V
 HSPLjava/nio/StringCharBuffer;->get()C
+HSPLjava/nio/channels/Channels$1;-><init>(Ljava/nio/channels/WritableByteChannel;)V
+HSPLjava/nio/channels/Channels$1;->close()V
+HSPLjava/nio/channels/Channels$1;->write([BII)V
+HSPLjava/nio/channels/Channels$WritableByteChannelImpl;-><init>(Ljava/io/OutputStream;)V
+HSPLjava/nio/channels/Channels$WritableByteChannelImpl;->write(Ljava/nio/ByteBuffer;)I
+HSPLjava/nio/channels/Channels;->access$000(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
 HSPLjava/nio/channels/Channels;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V
+HSPLjava/nio/channels/Channels;->newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
 HSPLjava/nio/channels/Channels;->newInputStream(Ljava/nio/channels/ReadableByteChannel;)Ljava/io/InputStream;
+HSPLjava/nio/channels/Channels;->newOutputStream(Ljava/nio/channels/WritableByteChannel;)Ljava/io/OutputStream;
+HSPLjava/nio/channels/Channels;->writeFully(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
+HSPLjava/nio/channels/Channels;->writeFullyImpl(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
 HSPLjava/nio/channels/FileChannel;-><init>()V
 HSPLjava/nio/channels/FileChannel;->lock()Ljava/nio/channels/FileLock;
+HSPLjava/nio/channels/FileChannel;->open(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/FileChannel;
+HSPLjava/nio/channels/FileChannel;->open(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
 HSPLjava/nio/channels/FileChannel;->tryLock()Ljava/nio/channels/FileLock;
 HSPLjava/nio/channels/FileLock;-><init>(Ljava/nio/channels/FileChannel;JJZ)V
 HSPLjava/nio/channels/FileLock;->acquiredBy()Ljava/nio/channels/Channel;
 HSPLjava/nio/channels/FileLock;->position()J
 HSPLjava/nio/channels/FileLock;->size()J
+HSPLjava/nio/channels/SelectableChannel;-><init>()V
+HSPLjava/nio/channels/SelectableChannel;->register(Ljava/nio/channels/Selector;I)Ljava/nio/channels/SelectionKey;
+HSPLjava/nio/channels/SelectionKey;-><init>()V
+HSPLjava/nio/channels/SelectionKey;->attach(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/nio/channels/SelectionKey;->isReadable()Z
+HSPLjava/nio/channels/Selector;-><init>()V
+HSPLjava/nio/channels/Selector;->open()Ljava/nio/channels/Selector;
+HSPLjava/nio/channels/SocketChannel;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V
+HSPLjava/nio/channels/SocketChannel;->open()Ljava/nio/channels/SocketChannel;
+HSPLjava/nio/channels/SocketChannel;->validOps()I
 HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;-><init>()V
 HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->begin()V
 HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->blockedOn(Lsun/nio/ch/Interruptible;)V
 HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->close()V
 HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->end(Z)V
 HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->isOpen()Z
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->addKey(Ljava/nio/channels/SelectionKey;)V
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->blockingLock()Ljava/lang/Object;
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->configureBlocking(Z)Ljava/nio/channels/SelectableChannel;
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->findKey(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey;
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->implCloseChannel()V
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->isBlocking()Z
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->isRegistered()Z
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->register(Ljava/nio/channels/Selector;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->removeKey(Ljava/nio/channels/SelectionKey;)V
+HSPLjava/nio/channels/spi/AbstractSelectionKey;-><init>()V
+HSPLjava/nio/channels/spi/AbstractSelectionKey;->cancel()V
+HSPLjava/nio/channels/spi/AbstractSelectionKey;->invalidate()V
+HSPLjava/nio/channels/spi/AbstractSelectionKey;->isValid()Z
+HSPLjava/nio/channels/spi/AbstractSelector$1;-><init>(Ljava/nio/channels/spi/AbstractSelector;)V
+HSPLjava/nio/channels/spi/AbstractSelector;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V
+HSPLjava/nio/channels/spi/AbstractSelector;->begin()V
+HSPLjava/nio/channels/spi/AbstractSelector;->cancel(Ljava/nio/channels/SelectionKey;)V
+HSPLjava/nio/channels/spi/AbstractSelector;->cancelledKeys()Ljava/util/Set;
+HSPLjava/nio/channels/spi/AbstractSelector;->close()V
+HSPLjava/nio/channels/spi/AbstractSelector;->deregister(Ljava/nio/channels/spi/AbstractSelectionKey;)V
+HSPLjava/nio/channels/spi/AbstractSelector;->end()V
+HSPLjava/nio/channels/spi/AbstractSelector;->isOpen()Z
+HSPLjava/nio/channels/spi/SelectorProvider$1;-><init>()V
+HSPLjava/nio/channels/spi/SelectorProvider$1;->run()Ljava/lang/Object;
+HSPLjava/nio/channels/spi/SelectorProvider$1;->run()Ljava/nio/channels/spi/SelectorProvider;
+HSPLjava/nio/channels/spi/SelectorProvider;-><init>()V
+HSPLjava/nio/channels/spi/SelectorProvider;->access$000()Z
+HSPLjava/nio/channels/spi/SelectorProvider;->access$100()Ljava/nio/channels/spi/SelectorProvider;
+HSPLjava/nio/channels/spi/SelectorProvider;->access$102(Ljava/nio/channels/spi/SelectorProvider;)Ljava/nio/channels/spi/SelectorProvider;
+HSPLjava/nio/channels/spi/SelectorProvider;->access$200()Z
+HSPLjava/nio/channels/spi/SelectorProvider;->loadProviderAsService()Z
+HSPLjava/nio/channels/spi/SelectorProvider;->loadProviderFromProperty()Z
+HSPLjava/nio/channels/spi/SelectorProvider;->provider()Ljava/nio/channels/spi/SelectorProvider;
 HSPLjava/nio/charset/Charset;-><init>(Ljava/lang/String;[Ljava/lang/String;)V
 HSPLjava/nio/charset/Charset;->aliases()Ljava/util/Set;
 HSPLjava/nio/charset/Charset;->atBugLevel(Ljava/lang/String;)Z
 HSPLjava/nio/charset/Charset;->cache(Ljava/lang/String;Ljava/nio/charset/Charset;)V
 HSPLjava/nio/charset/Charset;->checkName(Ljava/lang/String;)V
+HSPLjava/nio/charset/Charset;->decode(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;
 HSPLjava/nio/charset/Charset;->defaultCharset()Ljava/nio/charset/Charset;
+HSPLjava/nio/charset/Charset;->encode(Ljava/lang/String;)Ljava/nio/ByteBuffer;
+HSPLjava/nio/charset/Charset;->encode(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;
 HSPLjava/nio/charset/Charset;->equals(Ljava/lang/Object;)Z
 HSPLjava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
 HSPLjava/nio/charset/Charset;->forNameUEE(Ljava/lang/String;)Ljava/nio/charset/Charset;
@@ -18745,6 +38552,8 @@
 HSPLjava/nio/charset/CharsetDecoder;->unmappableCharacterAction()Ljava/nio/charset/CodingErrorAction;
 HSPLjava/nio/charset/CharsetEncoder;-><init>(Ljava/nio/charset/Charset;FF[BZ)V
 HSPLjava/nio/charset/CharsetEncoder;->averageBytesPerChar()F
+HSPLjava/nio/charset/CharsetEncoder;->canEncode(Ljava/lang/CharSequence;)Z
+HSPLjava/nio/charset/CharsetEncoder;->canEncode(Ljava/nio/CharBuffer;)Z
 HSPLjava/nio/charset/CharsetEncoder;->charset()Ljava/nio/charset/Charset;
 HSPLjava/nio/charset/CharsetEncoder;->encode(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;
 HSPLjava/nio/charset/CharsetEncoder;->encode(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;
@@ -18759,18 +38568,43 @@
 HSPLjava/nio/charset/CoderResult;->isError()Z
 HSPLjava/nio/charset/CoderResult;->isOverflow()Z
 HSPLjava/nio/charset/CoderResult;->isUnderflow()Z
+HSPLjava/nio/file/AccessMode;->values()[Ljava/nio/file/AccessMode;
+HSPLjava/nio/file/FileAlreadyExistsException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLjava/nio/file/FileSystemException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/nio/file/FileSystemException;->getMessage()Ljava/lang/String;
+HSPLjava/nio/file/FileSystemException;->getReason()Ljava/lang/String;
 HSPLjava/nio/file/FileSystems;->getDefault()Ljava/nio/file/FileSystem;
+PLjava/nio/file/Files$1;-><init>(Ljava/nio/file/PathMatcher;)V
+HSPLjava/nio/file/Files$AcceptAllFilter;->accept(Ljava/lang/Object;)Z
+HSPLjava/nio/file/Files$AcceptAllFilter;->accept(Ljava/nio/file/Path;)Z
+HPLjava/nio/file/Files;->createLink(Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/nio/file/Path;
+HSPLjava/nio/file/Files;->delete(Ljava/nio/file/Path;)V
+HSPLjava/nio/file/Files;->exists(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
+HSPLjava/nio/file/Files;->followLinks([Ljava/nio/file/LinkOption;)Z
+HSPLjava/nio/file/Files;->isAccessible(Ljava/nio/file/Path;[Ljava/nio/file/AccessMode;)Z
 HSPLjava/nio/file/Files;->isRegularFile(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
+HSPLjava/nio/file/Files;->isWritable(Ljava/nio/file/Path;)Z
+HSPLjava/nio/file/Files;->newBufferedReader(Ljava/nio/file/Path;)Ljava/io/BufferedReader;
+HSPLjava/nio/file/Files;->newBufferedReader(Ljava/nio/file/Path;Ljava/nio/charset/Charset;)Ljava/io/BufferedReader;
 HSPLjava/nio/file/Files;->newByteChannel(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel;
 HSPLjava/nio/file/Files;->newByteChannel(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/SeekableByteChannel;
+HSPLjava/nio/file/Files;->newDirectoryStream(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
+HPLjava/nio/file/Files;->newDirectoryStream(Ljava/nio/file/Path;Ljava/lang/String;)Ljava/nio/file/DirectoryStream;
+HSPLjava/nio/file/Files;->newInputStream(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
+HSPLjava/nio/file/Files;->newOutputStream(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
 HSPLjava/nio/file/Files;->provider(Ljava/nio/file/Path;)Ljava/nio/file/spi/FileSystemProvider;
+HSPLjava/nio/file/Files;->read(Ljava/io/InputStream;I)[B
+HSPLjava/nio/file/Files;->readAllBytes(Ljava/nio/file/Path;)[B
 HSPLjava/nio/file/Files;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;
 HSPLjava/nio/file/NoSuchFileException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLjava/nio/file/Paths;->get(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
 HSPLjava/nio/file/StandardOpenOption;->values()[Ljava/nio/file/StandardOpenOption;
 HSPLjava/nio/file/attribute/FileTime;-><init>(JLjava/util/concurrent/TimeUnit;Ljava/time/Instant;)V
+HSPLjava/nio/file/attribute/FileTime;->append(Ljava/lang/StringBuilder;II)Ljava/lang/StringBuilder;
 HSPLjava/nio/file/attribute/FileTime;->from(JLjava/util/concurrent/TimeUnit;)Ljava/nio/file/attribute/FileTime;
+HSPLjava/nio/file/attribute/FileTime;->toString()Ljava/lang/String;
+HSPLjava/nio/file/spi/FileSystemProvider;->newInputStream(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
+HSPLjava/nio/file/spi/FileSystemProvider;->newOutputStream(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
 HSPLjava/security/AccessControlContext;-><init>([Ljava/security/ProtectionDomain;)V
 HSPLjava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
 HSPLjava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
@@ -18779,30 +38613,58 @@
 HSPLjava/security/AlgorithmParametersSpi;-><init>()V
 HSPLjava/security/CodeSigner;-><init>(Ljava/security/cert/CertPath;Ljava/security/Timestamp;)V
 HSPLjava/security/CodeSigner;->getSignerCertPath()Ljava/security/cert/CertPath;
+HSPLjava/security/DigestInputStream;-><init>(Ljava/io/InputStream;Ljava/security/MessageDigest;)V
+HSPLjava/security/DigestInputStream;->read([BII)I
+HSPLjava/security/DigestInputStream;->setMessageDigest(Ljava/security/MessageDigest;)V
+HSPLjava/security/DigestOutputStream;-><init>(Ljava/io/OutputStream;Ljava/security/MessageDigest;)V
+HSPLjava/security/DigestOutputStream;->setMessageDigest(Ljava/security/MessageDigest;)V
+HSPLjava/security/DigestOutputStream;->write([BII)V
 HSPLjava/security/GeneralSecurityException;-><init>(Ljava/lang/String;)V
 HSPLjava/security/KeyFactory;-><init>(Ljava/lang/String;)V
+HSPLjava/security/KeyFactory;-><init>(Ljava/security/KeyFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V
 HSPLjava/security/KeyFactory;->generatePrivate(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
 HSPLjava/security/KeyFactory;->generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
 HSPLjava/security/KeyFactory;->getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;
+HSPLjava/security/KeyFactory;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
+HSPLjava/security/KeyFactory;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/KeyFactory;
 HSPLjava/security/KeyFactory;->nextSpi(Ljava/security/KeyFactorySpi;)Ljava/security/KeyFactorySpi;
 HSPLjava/security/KeyFactorySpi;-><init>()V
 HSPLjava/security/KeyPair;-><init>(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V
 HSPLjava/security/KeyPair;->getPrivate()Ljava/security/PrivateKey;
 HSPLjava/security/KeyPair;->getPublic()Ljava/security/PublicKey;
+HSPLjava/security/KeyPairGenerator$Delegate;-><init>(Ljava/security/KeyPairGeneratorSpi;Ljava/lang/String;)V
+HSPLjava/security/KeyPairGenerator$Delegate;->generateKeyPair()Ljava/security/KeyPair;
+HSPLjava/security/KeyPairGenerator$Delegate;->initialize(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
+HSPLjava/security/KeyPairGenerator;-><init>(Ljava/lang/String;)V
+HSPLjava/security/KeyPairGenerator;->getInstance(Ljava/lang/String;)Ljava/security/KeyPairGenerator;
+HSPLjava/security/KeyPairGenerator;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyPairGenerator;
+HSPLjava/security/KeyPairGenerator;->getInstance(Lsun/security/jca/GetInstance$Instance;Ljava/lang/String;)Ljava/security/KeyPairGenerator;
+HSPLjava/security/KeyPairGenerator;->initialize(Ljava/security/spec/AlgorithmParameterSpec;)V
+HSPLjava/security/KeyPairGeneratorSpi;-><init>()V
 HSPLjava/security/KeyStore$1;-><init>()V
 HSPLjava/security/KeyStore$1;->run()Ljava/lang/Object;
 HSPLjava/security/KeyStore$1;->run()Ljava/lang/String;
+HSPLjava/security/KeyStore$PrivateKeyEntry;-><init>(Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;)V
+HSPLjava/security/KeyStore$PrivateKeyEntry;-><init>(Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/util/Set;)V
+HSPLjava/security/KeyStore$PrivateKeyEntry;->getCertificate()Ljava/security/cert/Certificate;
+HSPLjava/security/KeyStore$PrivateKeyEntry;->getPrivateKey()Ljava/security/PrivateKey;
 HSPLjava/security/KeyStore;-><init>(Ljava/security/KeyStoreSpi;Ljava/security/Provider;Ljava/lang/String;)V
 HSPLjava/security/KeyStore;->aliases()Ljava/util/Enumeration;
 HSPLjava/security/KeyStore;->containsAlias(Ljava/lang/String;)Z
 HSPLjava/security/KeyStore;->getCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;
+HSPLjava/security/KeyStore;->getCreationDate(Ljava/lang/String;)Ljava/util/Date;
 HSPLjava/security/KeyStore;->getDefaultType()Ljava/lang/String;
+HSPLjava/security/KeyStore;->getEntry(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry;
 HSPLjava/security/KeyStore;->getInstance(Ljava/lang/String;)Ljava/security/KeyStore;
+HSPLjava/security/KeyStore;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
 HSPLjava/security/KeyStore;->getKey(Ljava/lang/String;[C)Ljava/security/Key;
 HSPLjava/security/KeyStore;->getType()Ljava/lang/String;
 HSPLjava/security/KeyStore;->load(Ljava/io/InputStream;[C)V
 HSPLjava/security/KeyStore;->load(Ljava/security/KeyStore$LoadStoreParameter;)V
+HSPLjava/security/KeyStore;->setCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V
+HSPLjava/security/KeyStore;->size()I
 HSPLjava/security/KeyStoreSpi;-><init>()V
+HSPLjava/security/KeyStoreSpi;->engineGetEntry(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry;
 HSPLjava/security/KeyStoreSpi;->engineLoad(Ljava/security/KeyStore$LoadStoreParameter;)V
 HSPLjava/security/MessageDigest$Delegate;-><init>(Ljava/security/MessageDigestSpi;Ljava/lang/String;)V
 HSPLjava/security/MessageDigest$Delegate;->clone()Ljava/lang/Object;
@@ -18811,6 +38673,7 @@
 HSPLjava/security/MessageDigest$Delegate;->engineGetDigestLength()I
 HSPLjava/security/MessageDigest$Delegate;->engineReset()V
 HSPLjava/security/MessageDigest$Delegate;->engineUpdate(B)V
+HSPLjava/security/MessageDigest$Delegate;->engineUpdate(Ljava/nio/ByteBuffer;)V
 HSPLjava/security/MessageDigest$Delegate;->engineUpdate([BII)V
 HSPLjava/security/MessageDigest;-><init>(Ljava/lang/String;)V
 HSPLjava/security/MessageDigest;->access$000(Ljava/security/MessageDigest;)Ljava/lang/String;
@@ -18821,6 +38684,7 @@
 HSPLjava/security/MessageDigest;->digest()[B
 HSPLjava/security/MessageDigest;->digest([B)[B
 HSPLjava/security/MessageDigest;->digest([BII)I
+HSPLjava/security/MessageDigest;->getAlgorithm()Ljava/lang/String;
 HSPLjava/security/MessageDigest;->getDigestLength()I
 HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
 HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/MessageDigest;
@@ -18828,10 +38692,12 @@
 HSPLjava/security/MessageDigest;->isEqual([B[B)Z
 HSPLjava/security/MessageDigest;->reset()V
 HSPLjava/security/MessageDigest;->update(B)V
+HSPLjava/security/MessageDigest;->update(Ljava/nio/ByteBuffer;)V
 HSPLjava/security/MessageDigest;->update([B)V
 HSPLjava/security/MessageDigest;->update([BII)V
 HSPLjava/security/MessageDigestSpi;-><init>()V
 HSPLjava/security/MessageDigestSpi;->engineDigest([BII)I
+HSPLjava/security/MessageDigestSpi;->engineUpdate(Ljava/nio/ByteBuffer;)V
 HSPLjava/security/NoSuchAlgorithmException;-><init>(Ljava/lang/String;)V
 HSPLjava/security/Provider$EngineDescription;->getConstructorParameterClass()Ljava/lang/Class;
 HSPLjava/security/Provider$Service;-><init>(Ljava/security/Provider;)V
@@ -18891,6 +38757,7 @@
 HSPLjava/security/SecureRandom;->next(I)I
 HSPLjava/security/SecureRandom;->nextBytes([B)V
 HSPLjava/security/SecureRandom;->setSeed(J)V
+HSPLjava/security/SecureRandom;->setSeed([B)V
 HSPLjava/security/SecureRandomSpi;-><init>()V
 HSPLjava/security/Security;->addProvider(Ljava/security/Provider;)I
 HSPLjava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/Object;
@@ -18907,7 +38774,10 @@
 HSPLjava/security/Signature$Delegate;-><init>(Ljava/lang/String;)V
 HSPLjava/security/Signature$Delegate;->chooseFirstProvider()V
 HSPLjava/security/Signature$Delegate;->chooseProvider(ILjava/security/Key;Ljava/security/SecureRandom;)V
+HSPLjava/security/Signature$Delegate;->engineInitSign(Ljava/security/PrivateKey;)V
 HSPLjava/security/Signature$Delegate;->engineInitVerify(Ljava/security/PublicKey;)V
+HSPLjava/security/Signature$Delegate;->engineSign()[B
+HSPLjava/security/Signature$Delegate;->engineUpdate(Ljava/nio/ByteBuffer;)V
 HSPLjava/security/Signature$Delegate;->engineUpdate([BII)V
 HSPLjava/security/Signature$Delegate;->engineVerify([B)Z
 HSPLjava/security/Signature$Delegate;->init(Ljava/security/SignatureSpi;ILjava/security/Key;Ljava/security/SecureRandom;)V
@@ -18916,36 +38786,55 @@
 HSPLjava/security/Signature;->access$000(Ljava/security/Signature;)Ljava/lang/String;
 HSPLjava/security/Signature;->access$200(Ljava/security/Provider$Service;)Z
 HSPLjava/security/Signature;->getInstance(Ljava/lang/String;)Ljava/security/Signature;
+HSPLjava/security/Signature;->initSign(Ljava/security/PrivateKey;)V
 HSPLjava/security/Signature;->initVerify(Ljava/security/PublicKey;)V
 HSPLjava/security/Signature;->isSpi(Ljava/security/Provider$Service;)Z
+HSPLjava/security/Signature;->sign()[B
+HSPLjava/security/Signature;->update(Ljava/nio/ByteBuffer;)V
 HSPLjava/security/Signature;->update([B)V
 HSPLjava/security/Signature;->update([BII)V
 HSPLjava/security/Signature;->verify([B)Z
 HSPLjava/security/SignatureSpi;-><init>()V
+HSPLjava/security/SignatureSpi;->engineUpdate(Ljava/nio/ByteBuffer;)V
 HSPLjava/security/cert/CertPath;-><init>(Ljava/lang/String;)V
 HSPLjava/security/cert/CertPath;->getType()Ljava/lang/String;
+PLjava/security/cert/CertPathBuilder;-><init>(Ljava/security/cert/CertPathBuilderSpi;Ljava/security/Provider;Ljava/lang/String;)V
+PLjava/security/cert/CertPathBuilder;->build(Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathBuilderResult;
+PLjava/security/cert/CertPathBuilder;->getInstance(Ljava/lang/String;)Ljava/security/cert/CertPathBuilder;
+PLjava/security/cert/CertPathBuilderSpi;-><init>()V
+PLjava/security/cert/CertPathHelperImpl;->implSetPathToNames(Ljava/security/cert/X509CertSelector;Ljava/util/Set;)V
 HSPLjava/security/cert/CertPathValidator;-><init>(Ljava/security/cert/CertPathValidatorSpi;Ljava/security/Provider;Ljava/lang/String;)V
 HSPLjava/security/cert/CertPathValidator;->getInstance(Ljava/lang/String;)Ljava/security/cert/CertPathValidator;
 HSPLjava/security/cert/CertPathValidator;->validate(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult;
 HSPLjava/security/cert/CertPathValidatorSpi;-><init>()V
 HSPLjava/security/cert/CertStore;-><init>(Ljava/security/cert/CertStoreSpi;Ljava/security/Provider;Ljava/lang/String;Ljava/security/cert/CertStoreParameters;)V
+PLjava/security/cert/CertStore;->getCertificates(Ljava/security/cert/CertSelector;)Ljava/util/Collection;
 HSPLjava/security/cert/CertStore;->getInstance(Ljava/lang/String;Ljava/security/cert/CertStoreParameters;)Ljava/security/cert/CertStore;
 HSPLjava/security/cert/CertStoreSpi;-><init>(Ljava/security/cert/CertStoreParameters;)V
 HSPLjava/security/cert/Certificate;-><init>(Ljava/lang/String;)V
 HSPLjava/security/cert/Certificate;->equals(Ljava/lang/Object;)Z
+HSPLjava/security/cert/Certificate;->getType()Ljava/lang/String;
 HSPLjava/security/cert/Certificate;->hashCode()I
 HSPLjava/security/cert/CertificateFactory;-><init>(Ljava/security/cert/CertificateFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V
+PLjava/security/cert/CertificateFactory;->generateCertPath(Ljava/io/InputStream;)Ljava/security/cert/CertPath;
 HSPLjava/security/cert/CertificateFactory;->generateCertPath(Ljava/util/List;)Ljava/security/cert/CertPath;
 HSPLjava/security/cert/CertificateFactory;->generateCertificate(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
+HSPLjava/security/cert/CertificateFactory;->generateCertificates(Ljava/io/InputStream;)Ljava/util/Collection;
 HSPLjava/security/cert/CertificateFactory;->getInstance(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
 HSPLjava/security/cert/CertificateFactorySpi;-><init>()V
 HSPLjava/security/cert/CollectionCertStoreParameters;-><init>(Ljava/util/Collection;)V
 HSPLjava/security/cert/CollectionCertStoreParameters;->clone()Ljava/lang/Object;
+HSPLjava/security/cert/CollectionCertStoreParameters;->getCollection()Ljava/util/Collection;
+PLjava/security/cert/PKIXBuilderParameters;-><init>(Ljava/util/Set;Ljava/security/cert/CertSelector;)V
+PLjava/security/cert/PKIXBuilderParameters;->getMaxPathLength()I
+PLjava/security/cert/PKIXCertPathBuilderResult;-><init>(Ljava/security/cert/CertPath;Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;)V
+PLjava/security/cert/PKIXCertPathBuilderResult;->getCertPath()Ljava/security/cert/CertPath;
 HSPLjava/security/cert/PKIXCertPathChecker;-><init>()V
 HSPLjava/security/cert/PKIXCertPathChecker;->clone()Ljava/lang/Object;
 HSPLjava/security/cert/PKIXCertPathValidatorResult;-><init>(Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;)V
 HSPLjava/security/cert/PKIXParameters;-><init>(Ljava/util/Set;)V
 HSPLjava/security/cert/PKIXParameters;->addCertPathChecker(Ljava/security/cert/PKIXCertPathChecker;)V
+PLjava/security/cert/PKIXParameters;->addCertStore(Ljava/security/cert/CertStore;)V
 HSPLjava/security/cert/PKIXParameters;->getCertPathCheckers()Ljava/util/List;
 HSPLjava/security/cert/PKIXParameters;->getCertStores()Ljava/util/List;
 HSPLjava/security/cert/PKIXParameters;->getDate()Ljava/util/Date;
@@ -18958,7 +38847,9 @@
 HSPLjava/security/cert/PKIXParameters;->isExplicitPolicyRequired()Z
 HSPLjava/security/cert/PKIXParameters;->isPolicyMappingInhibited()Z
 HSPLjava/security/cert/PKIXParameters;->isRevocationEnabled()Z
+HSPLjava/security/cert/PKIXParameters;->setDate(Ljava/util/Date;)V
 HSPLjava/security/cert/PKIXParameters;->setRevocationEnabled(Z)V
+HSPLjava/security/cert/PKIXParameters;->setTargetCertConstraints(Ljava/security/cert/CertSelector;)V
 HSPLjava/security/cert/PKIXParameters;->setTrustAnchors(Ljava/util/Set;)V
 HSPLjava/security/cert/PolicyQualifierInfo;-><init>([B)V
 HSPLjava/security/cert/TrustAnchor;-><init>(Ljava/security/cert/X509Certificate;[B)V
@@ -18966,6 +38857,11 @@
 HSPLjava/security/cert/TrustAnchor;->getTrustedCert()Ljava/security/cert/X509Certificate;
 HSPLjava/security/cert/TrustAnchor;->setNameConstraints([B)V
 HSPLjava/security/cert/X509CertSelector;-><init>()V
+HPLjava/security/cert/X509CertSelector;->clone()Ljava/lang/Object;
+PLjava/security/cert/X509CertSelector;->getBasicConstraints()I
+PLjava/security/cert/X509CertSelector;->getCertificate()Ljava/security/cert/X509Certificate;
+PLjava/security/cert/X509CertSelector;->getExtensionObject(Ljava/security/cert/X509Certificate;I)Ljava/security/cert/Extension;
+PLjava/security/cert/X509CertSelector;->getSubject()Ljavax/security/auth/x500/X500Principal;
 HSPLjava/security/cert/X509CertSelector;->match(Ljava/security/cert/Certificate;)Z
 HSPLjava/security/cert/X509CertSelector;->matchAuthorityKeyID(Ljava/security/cert/X509Certificate;)Z
 HSPLjava/security/cert/X509CertSelector;->matchBasicConstraints(Ljava/security/cert/X509Certificate;)Z
@@ -18978,35 +38874,62 @@
 HSPLjava/security/cert/X509CertSelector;->matchSubjectAlternativeNames(Ljava/security/cert/X509Certificate;)Z
 HSPLjava/security/cert/X509CertSelector;->matchSubjectKeyID(Ljava/security/cert/X509Certificate;)Z
 HSPLjava/security/cert/X509CertSelector;->matchSubjectPublicKeyAlgID(Ljava/security/cert/X509Certificate;)Z
+PLjava/security/cert/X509CertSelector;->setBasicConstraints(I)V
+PLjava/security/cert/X509CertSelector;->setCertificate(Ljava/security/cert/X509Certificate;)V
+PLjava/security/cert/X509CertSelector;->setCertificateValid(Ljava/util/Date;)V
+PLjava/security/cert/X509CertSelector;->setPathToNamesInternal(Ljava/util/Set;)V
 HSPLjava/security/cert/X509CertSelector;->setSubject(Ljavax/security/auth/x500/X500Principal;)V
 HSPLjava/security/cert/X509Certificate;-><init>()V
+HSPLjava/security/spec/DSAParameterSpec;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
+HSPLjava/security/spec/DSAParameterSpec;->getG()Ljava/math/BigInteger;
+HSPLjava/security/spec/DSAParameterSpec;->getP()Ljava/math/BigInteger;
+HSPLjava/security/spec/DSAParameterSpec;->getQ()Ljava/math/BigInteger;
 HSPLjava/security/spec/ECFieldFp;-><init>(Ljava/math/BigInteger;)V
 HSPLjava/security/spec/ECFieldFp;->getFieldSize()I
 HSPLjava/security/spec/ECFieldFp;->getP()Ljava/math/BigInteger;
+HSPLjava/security/spec/ECGenParameterSpec;-><init>(Ljava/lang/String;)V
+HSPLjava/security/spec/ECGenParameterSpec;->getName()Ljava/lang/String;
 HSPLjava/security/spec/ECParameterSpec;-><init>(Ljava/security/spec/EllipticCurve;Ljava/security/spec/ECPoint;Ljava/math/BigInteger;I)V
 HSPLjava/security/spec/ECParameterSpec;->getCurve()Ljava/security/spec/EllipticCurve;
+HSPLjava/security/spec/ECParameterSpec;->getCurveName()Ljava/lang/String;
+HSPLjava/security/spec/ECParameterSpec;->getGenerator()Ljava/security/spec/ECPoint;
 HSPLjava/security/spec/ECParameterSpec;->getOrder()Ljava/math/BigInteger;
 HSPLjava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V
 HSPLjava/security/spec/ECPoint;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
+HSPLjava/security/spec/ECPoint;->getAffineX()Ljava/math/BigInteger;
+HSPLjava/security/spec/ECPoint;->getAffineY()Ljava/math/BigInteger;
+HSPLjava/security/spec/ECPublicKeySpec;-><init>(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V
+HSPLjava/security/spec/ECPublicKeySpec;->getParams()Ljava/security/spec/ECParameterSpec;
+HSPLjava/security/spec/ECPublicKeySpec;->getW()Ljava/security/spec/ECPoint;
 HSPLjava/security/spec/EllipticCurve;-><init>(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
 HSPLjava/security/spec/EllipticCurve;-><init>(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;[B)V
 HSPLjava/security/spec/EllipticCurve;->checkValidity(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/lang/String;)V
+HSPLjava/security/spec/EllipticCurve;->getA()Ljava/math/BigInteger;
+HSPLjava/security/spec/EllipticCurve;->getB()Ljava/math/BigInteger;
 HSPLjava/security/spec/EllipticCurve;->getField()Ljava/security/spec/ECField;
 HSPLjava/security/spec/EncodedKeySpec;-><init>([B)V
 HSPLjava/security/spec/EncodedKeySpec;->getEncoded()[B
+HSPLjava/security/spec/InvalidKeySpecException;-><init>(Ljava/lang/String;)V
 HSPLjava/security/spec/PKCS8EncodedKeySpec;-><init>([B)V
 HSPLjava/security/spec/PKCS8EncodedKeySpec;->getEncoded()[B
+HSPLjava/security/spec/RSAKeyGenParameterSpec;-><clinit>()V
+HSPLjava/security/spec/RSAKeyGenParameterSpec;-><init>(ILjava/math/BigInteger;)V
+HSPLjava/security/spec/RSAKeyGenParameterSpec;->getKeysize()I
+HSPLjava/security/spec/RSAKeyGenParameterSpec;->getPublicExponent()Ljava/math/BigInteger;
 HSPLjava/security/spec/X509EncodedKeySpec;-><init>([B)V
 HSPLjava/security/spec/X509EncodedKeySpec;->getEncoded()[B
+HSPLjava/sql/Timestamp;-><init>(J)V
 HSPLjava/text/AttributedCharacterIterator$Attribute;-><init>(Ljava/lang/String;)V
 HSPLjava/text/AttributedCharacterIterator$Attribute;->equals(Ljava/lang/Object;)Z
 HSPLjava/text/AttributedCharacterIterator$Attribute;->hashCode()I
 HSPLjava/text/BreakIterator;-><init>()V
+HSPLjava/text/BreakIterator;->getWordInstance()Ljava/text/BreakIterator;
 HSPLjava/text/BreakIterator;->getWordInstance(Ljava/util/Locale;)Ljava/text/BreakIterator;
 HSPLjava/text/CalendarBuilder;-><init>()V
 HSPLjava/text/CalendarBuilder;->establish(Ljava/util/Calendar;)Ljava/util/Calendar;
 HSPLjava/text/CalendarBuilder;->isSet(I)Z
 HSPLjava/text/CalendarBuilder;->set(II)Ljava/text/CalendarBuilder;
+HSPLjava/text/CollationKey;-><init>(Ljava/lang/String;)V
 HSPLjava/text/Collator;-><init>(Landroid/icu/text/Collator;)V
 HSPLjava/text/Collator;->decompositionMode_Java_ICU(I)I
 HSPLjava/text/Collator;->getInstance(Ljava/util/Locale;)Ljava/text/Collator;
@@ -19016,6 +38939,11 @@
 HSPLjava/text/DateFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
 HSPLjava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
 HSPLjava/text/DateFormat;->get(IIILjava/util/Locale;)Ljava/text/DateFormat;
+HSPLjava/text/DateFormat;->getDateInstance(ILjava/util/Locale;)Ljava/text/DateFormat;
+HSPLjava/text/DateFormat;->getDateTimeInstance()Ljava/text/DateFormat;
+HSPLjava/text/DateFormat;->getDateTimeInstance(II)Ljava/text/DateFormat;
+HSPLjava/text/DateFormat;->getDateTimeInstance(IILjava/util/Locale;)Ljava/text/DateFormat;
+HSPLjava/text/DateFormat;->getTimeInstance(I)Ljava/text/DateFormat;
 HSPLjava/text/DateFormat;->getTimeInstance(ILjava/util/Locale;)Ljava/text/DateFormat;
 HSPLjava/text/DateFormat;->getTimeZone()Ljava/util/TimeZone;
 HSPLjava/text/DateFormat;->parse(Ljava/lang/String;)Ljava/util/Date;
@@ -19023,6 +38951,7 @@
 HSPLjava/text/DateFormat;->setLenient(Z)V
 HSPLjava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V
 HSPLjava/text/DateFormatSymbols;-><init>(Ljava/util/Locale;)V
+HSPLjava/text/DateFormatSymbols;->copyMembers(Ljava/text/DateFormatSymbols;Ljava/text/DateFormatSymbols;)V
 HSPLjava/text/DateFormatSymbols;->getAmPmStrings()[Ljava/lang/String;
 HSPLjava/text/DateFormatSymbols;->getCachedInstance(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;
 HSPLjava/text/DateFormatSymbols;->getInstanceRef(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;
@@ -19034,14 +38963,17 @@
 HSPLjava/text/DateFormatSymbols;->initializeSupplementaryData(Llibcore/icu/LocaleData;)V
 HSPLjava/text/DecimalFormat;-><init>(Ljava/lang/String;)V
 HSPLjava/text/DecimalFormat;-><init>(Ljava/lang/String;Ljava/text/DecimalFormatSymbols;)V
+HSPLjava/text/DecimalFormat;->adjustForCurrencyDefaultFractionDigits()V
 HSPLjava/text/DecimalFormat;->clone()Ljava/lang/Object;
 HSPLjava/text/DecimalFormat;->equals(Ljava/lang/Object;)Z
 HSPLjava/text/DecimalFormat;->format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
 HSPLjava/text/DecimalFormat;->format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
+HSPLjava/text/DecimalFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
 HSPLjava/text/DecimalFormat;->getDecimalFormatSymbols()Ljava/text/DecimalFormatSymbols;
 HSPLjava/text/DecimalFormat;->getIcuFieldPosition(Ljava/text/FieldPosition;)Ljava/text/FieldPosition;
 HSPLjava/text/DecimalFormat;->getMaximumFractionDigits()I
 HSPLjava/text/DecimalFormat;->getMaximumIntegerDigits()I
+HSPLjava/text/DecimalFormat;->getMinimumFractionDigits()I
 HSPLjava/text/DecimalFormat;->getMinimumIntegerDigits()I
 HSPLjava/text/DecimalFormat;->getNegativePrefix()Ljava/lang/String;
 HSPLjava/text/DecimalFormat;->getNegativeSuffix()Ljava/lang/String;
@@ -19055,6 +38987,7 @@
 HSPLjava/text/DecimalFormat;->setGroupingUsed(Z)V
 HSPLjava/text/DecimalFormat;->setMaximumFractionDigits(I)V
 HSPLjava/text/DecimalFormat;->setMaximumIntegerDigits(I)V
+HSPLjava/text/DecimalFormat;->setMinimumFractionDigits(I)V
 HSPLjava/text/DecimalFormat;->setMinimumIntegerDigits(I)V
 HSPLjava/text/DecimalFormat;->setParseIntegerOnly(Z)V
 HSPLjava/text/DecimalFormat;->toPattern()Ljava/lang/String;
@@ -19062,6 +38995,7 @@
 HSPLjava/text/DecimalFormatSymbols;-><init>(Ljava/util/Locale;)V
 HSPLjava/text/DecimalFormatSymbols;->clone()Ljava/lang/Object;
 HSPLjava/text/DecimalFormatSymbols;->fromIcuInstance(Landroid/icu/text/DecimalFormatSymbols;)Ljava/text/DecimalFormatSymbols;
+HSPLjava/text/DecimalFormatSymbols;->getCurrency()Ljava/util/Currency;
 HSPLjava/text/DecimalFormatSymbols;->getDecimalSeparator()C
 HSPLjava/text/DecimalFormatSymbols;->getGroupingSeparator()C
 HSPLjava/text/DecimalFormatSymbols;->getIcuDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols;
@@ -19106,6 +39040,12 @@
 HSPLjava/text/Format;->clone()Ljava/lang/Object;
 HSPLjava/text/Format;->format(Ljava/lang/Object;)Ljava/lang/String;
 HSPLjava/text/IcuIteratorWrapper;-><init>(Landroid/icu/text/BreakIterator;)V
+HSPLjava/text/IcuIteratorWrapper;->checkOffset(ILjava/text/CharacterIterator;)V
+HSPLjava/text/IcuIteratorWrapper;->current()I
+HSPLjava/text/IcuIteratorWrapper;->getText()Ljava/text/CharacterIterator;
+HSPLjava/text/IcuIteratorWrapper;->next()I
+HSPLjava/text/IcuIteratorWrapper;->preceding(I)I
+HSPLjava/text/IcuIteratorWrapper;->setText(Ljava/lang/String;)V
 HSPLjava/text/MessageFormat;-><init>(Ljava/lang/String;)V
 HSPLjava/text/MessageFormat;->applyPattern(Ljava/lang/String;)V
 HSPLjava/text/MessageFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
@@ -19117,6 +39057,10 @@
 HSPLjava/text/NumberFormat;-><init>()V
 HSPLjava/text/NumberFormat;->clone()Ljava/lang/Object;
 HSPLjava/text/NumberFormat;->format(D)Ljava/lang/String;
+HSPLjava/text/NumberFormat;->format(J)Ljava/lang/String;
+HSPLjava/text/NumberFormat;->getCurrencyInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;
+HSPLjava/text/NumberFormat;->getInstance()Ljava/text/NumberFormat;
+HSPLjava/text/NumberFormat;->getInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;
 HSPLjava/text/NumberFormat;->getInstance(Ljava/util/Locale;I)Ljava/text/NumberFormat;
 HSPLjava/text/NumberFormat;->getIntegerInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;
 HSPLjava/text/NumberFormat;->getNumberInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;
@@ -19124,6 +39068,7 @@
 HSPLjava/text/NumberFormat;->getPercentInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;
 HSPLjava/text/NumberFormat;->setMaximumFractionDigits(I)V
 HSPLjava/text/NumberFormat;->setMaximumIntegerDigits(I)V
+HSPLjava/text/NumberFormat;->setMinimumFractionDigits(I)V
 HSPLjava/text/NumberFormat;->setMinimumIntegerDigits(I)V
 HSPLjava/text/NumberFormat;->setParseIntegerOnly(Z)V
 HSPLjava/text/ParseException;-><init>(Ljava/lang/String;I)V
@@ -19133,9 +39078,13 @@
 HSPLjava/text/ParsePosition;->setIndex(I)V
 HSPLjava/text/RuleBasedCollator;-><init>(Landroid/icu/text/RuleBasedCollator;)V
 HSPLjava/text/RuleBasedCollator;->compare(Ljava/lang/String;Ljava/lang/String;)I
+HSPLjava/text/RuleBasedCollator;->getCollationKey(Ljava/lang/String;)Ljava/text/CollationKey;
+HSPLjava/text/SimpleDateFormat;-><init>()V
 HSPLjava/text/SimpleDateFormat;-><init>(IILjava/util/Locale;)V
 HSPLjava/text/SimpleDateFormat;-><init>(Ljava/lang/String;)V
 HSPLjava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
+HSPLjava/text/SimpleDateFormat;->applyPattern(Ljava/lang/String;)V
+HSPLjava/text/SimpleDateFormat;->applyPatternImpl(Ljava/lang/String;)V
 HSPLjava/text/SimpleDateFormat;->checkNegativeNumberExpression()V
 HSPLjava/text/SimpleDateFormat;->compile(Ljava/lang/String;)[C
 HSPLjava/text/SimpleDateFormat;->encode(IILjava/lang/StringBuilder;)V
@@ -19144,9 +39093,11 @@
 HSPLjava/text/SimpleDateFormat;->formatMonth(IIILjava/lang/StringBuffer;ZZII)Ljava/lang/String;
 HSPLjava/text/SimpleDateFormat;->formatWeekday(IIZZ)Ljava/lang/String;
 HSPLjava/text/SimpleDateFormat;->getDateTimeFormat(IILjava/util/Locale;)Ljava/lang/String;
+HSPLjava/text/SimpleDateFormat;->getTimeZoneNames()Landroid/icu/text/TimeZoneNames;
 HSPLjava/text/SimpleDateFormat;->initialize(Ljava/util/Locale;)V
 HSPLjava/text/SimpleDateFormat;->initializeCalendar(Ljava/util/Locale;)V
 HSPLjava/text/SimpleDateFormat;->initializeDefaultCentury()V
+HSPLjava/text/SimpleDateFormat;->isDigit(C)Z
 HSPLjava/text/SimpleDateFormat;->matchString(Ljava/lang/String;II[Ljava/lang/String;Ljava/text/CalendarBuilder;)I
 HSPLjava/text/SimpleDateFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;
 HSPLjava/text/SimpleDateFormat;->parseAmbiguousDatesAsAfter(Ljava/util/Date;)V
@@ -19155,6 +39106,7 @@
 HSPLjava/text/SimpleDateFormat;->parseWeekday(Ljava/lang/String;IIZZLjava/text/CalendarBuilder;)I
 HSPLjava/text/SimpleDateFormat;->subFormat(IILjava/text/Format$FieldDelegate;Ljava/lang/StringBuffer;Z)V
 HSPLjava/text/SimpleDateFormat;->subParse(Ljava/lang/String;IIIZ[ZLjava/text/ParsePosition;ZLjava/text/CalendarBuilder;)I
+HSPLjava/text/SimpleDateFormat;->subParseNumericZone(Ljava/lang/String;IIIZLjava/text/CalendarBuilder;)I
 HSPLjava/text/SimpleDateFormat;->toPattern()Ljava/lang/String;
 HSPLjava/text/SimpleDateFormat;->useDateFormatSymbols()Z
 HSPLjava/text/SimpleDateFormat;->zeroPaddingNumber(IIILjava/lang/StringBuffer;)V
@@ -19168,133 +39120,376 @@
 HSPLjava/text/StringCharacterIterator;->getEndIndex()I
 HSPLjava/text/StringCharacterIterator;->getIndex()I
 HSPLjava/text/StringCharacterIterator;->next()C
+HSPLjava/text/StringCharacterIterator;->previous()C
 HSPLjava/text/StringCharacterIterator;->setIndex(I)C
+HSPLjava/time/-$$Lambda$Bq8PKq1YWr8nyVk9SSfRYKrOu4A;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;
+HSPLjava/time/-$$Lambda$up1HpCqucM_DXyY-rpDOyCcdmIA;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;
 HSPLjava/time/Clock$SystemClock;-><init>(Ljava/time/ZoneId;)V
 HSPLjava/time/Clock$SystemClock;->getZone()Ljava/time/ZoneId;
 HSPLjava/time/Clock$SystemClock;->instant()Ljava/time/Instant;
 HSPLjava/time/Clock$SystemClock;->millis()J
 HSPLjava/time/Clock;-><init>()V
+HSPLjava/time/Clock;->system(Ljava/time/ZoneId;)Ljava/time/Clock;
+HSPLjava/time/Clock;->systemDefaultZone()Ljava/time/Clock;
 HSPLjava/time/Clock;->systemUTC()Ljava/time/Clock;
+HSPLjava/time/DateTimeException;-><init>(Ljava/lang/String;)V
 HSPLjava/time/DayOfWeek;->getValue()I
 HSPLjava/time/DayOfWeek;->of(I)Ljava/time/DayOfWeek;
+HSPLjava/time/DayOfWeek;->plus(J)Ljava/time/DayOfWeek;
+HSPLjava/time/Duration;-><init>(JI)V
+HSPLjava/time/Duration;->addTo(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
+HSPLjava/time/Duration;->compareTo(Ljava/time/Duration;)I
+HSPLjava/time/Duration;->create(JI)Ljava/time/Duration;
+HSPLjava/time/Duration;->getSeconds()J
+HSPLjava/time/Duration;->ofMillis(J)Ljava/time/Duration;
 HSPLjava/time/Duration;->toMillis()J
+HSPLjava/time/Duration;->toNanos()J
 HSPLjava/time/Instant;-><init>(JI)V
+HSPLjava/time/Instant;->atZone(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+HSPLjava/time/Instant;->compareTo(Ljava/time/Instant;)I
 HSPLjava/time/Instant;->create(JI)Ljava/time/Instant;
 HSPLjava/time/Instant;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/Instant;
 HSPLjava/time/Instant;->getEpochSecond()J
+HSPLjava/time/Instant;->getLong(Ljava/time/temporal/TemporalField;)J
 HSPLjava/time/Instant;->getNano()I
+HSPLjava/time/Instant;->isAfter(Ljava/time/Instant;)Z
+HSPLjava/time/Instant;->isBefore(Ljava/time/Instant;)Z
+HSPLjava/time/Instant;->isSupported(Ljava/time/temporal/TemporalField;)Z
+HSPLjava/time/Instant;->minus(JLjava/time/temporal/TemporalUnit;)Ljava/time/Instant;
+HSPLjava/time/Instant;->nanosUntil(Ljava/time/Instant;)J
 HSPLjava/time/Instant;->now()Ljava/time/Instant;
 HSPLjava/time/Instant;->ofEpochMilli(J)Ljava/time/Instant;
 HSPLjava/time/Instant;->ofEpochSecond(JJ)Ljava/time/Instant;
+HSPLjava/time/Instant;->plus(JJ)Ljava/time/Instant;
+HSPLjava/time/Instant;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/Instant;
+HSPLjava/time/Instant;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
+HSPLjava/time/Instant;->plus(Ljava/time/temporal/TemporalAmount;)Ljava/time/Instant;
+HSPLjava/time/Instant;->plusMillis(J)Ljava/time/Instant;
+HSPLjava/time/Instant;->plusSeconds(J)Ljava/time/Instant;
 HSPLjava/time/Instant;->toEpochMilli()J
+HSPLjava/time/Instant;->toString()Ljava/lang/String;
 HSPLjava/time/Instant;->until(Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalUnit;)J
+HSPLjava/time/LocalDate;-><init>(III)V
+HSPLjava/time/LocalDate;->atTime(Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
+HSPLjava/time/LocalDate;->atTime(Ljava/time/LocalTime;)Ljava/time/chrono/ChronoLocalDateTime;
+HSPLjava/time/LocalDate;->compareTo0(Ljava/time/LocalDate;)I
+HSPLjava/time/LocalDate;->create(III)Ljava/time/LocalDate;
+HSPLjava/time/LocalDate;->equals(Ljava/lang/Object;)Z
 HSPLjava/time/LocalDate;->get(Ljava/time/temporal/TemporalField;)I
 HSPLjava/time/LocalDate;->get0(Ljava/time/temporal/TemporalField;)I
+HSPLjava/time/LocalDate;->getChronology()Ljava/time/chrono/Chronology;
+HSPLjava/time/LocalDate;->getChronology()Ljava/time/chrono/IsoChronology;
 HSPLjava/time/LocalDate;->getDayOfMonth()I
 HSPLjava/time/LocalDate;->getDayOfWeek()Ljava/time/DayOfWeek;
+HSPLjava/time/LocalDate;->getLong(Ljava/time/temporal/TemporalField;)J
 HSPLjava/time/LocalDate;->getMonthValue()I
 HSPLjava/time/LocalDate;->getYear()I
+HSPLjava/time/LocalDate;->isAfter(Ljava/time/chrono/ChronoLocalDate;)Z
 HSPLjava/time/LocalDate;->isLeapYear()Z
+HSPLjava/time/LocalDate;->isSupported(Ljava/time/temporal/TemporalField;)Z
 HSPLjava/time/LocalDate;->minus(JLjava/time/temporal/TemporalUnit;)Ljava/time/LocalDate;
 HSPLjava/time/LocalDate;->minus(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
+HSPLjava/time/LocalDate;->minusDays(J)Ljava/time/LocalDate;
+HSPLjava/time/LocalDate;->of(III)Ljava/time/LocalDate;
 HSPLjava/time/LocalDate;->of(ILjava/time/Month;I)Ljava/time/LocalDate;
+HSPLjava/time/LocalDate;->ofEpochDay(J)Ljava/time/LocalDate;
 HSPLjava/time/LocalDate;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/LocalDate;
+HSPLjava/time/LocalDate;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
+HSPLjava/time/LocalDate;->plus(Ljava/time/temporal/TemporalAmount;)Ljava/time/LocalDate;
 HSPLjava/time/LocalDate;->plusDays(J)Ljava/time/LocalDate;
+HSPLjava/time/LocalDate;->plusMonths(J)Ljava/time/LocalDate;
+HSPLjava/time/LocalDate;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
 HSPLjava/time/LocalDate;->toEpochDay()J
 HSPLjava/time/LocalDate;->toString()Ljava/lang/String;
 HSPLjava/time/LocalDate;->with(Ljava/time/temporal/TemporalAdjuster;)Ljava/time/LocalDate;
 HSPLjava/time/LocalDateTime;-><init>(Ljava/time/LocalDate;Ljava/time/LocalTime;)V
+HSPLjava/time/LocalDateTime;->atZone(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+HSPLjava/time/LocalDateTime;->atZone(Ljava/time/ZoneId;)Ljava/time/chrono/ChronoZonedDateTime;
+HSPLjava/time/LocalDateTime;->compareTo0(Ljava/time/LocalDateTime;)I
 HSPLjava/time/LocalDateTime;->getDayOfMonth()I
 HSPLjava/time/LocalDateTime;->getHour()I
+HSPLjava/time/LocalDateTime;->getLong(Ljava/time/temporal/TemporalField;)J
 HSPLjava/time/LocalDateTime;->getMinute()I
 HSPLjava/time/LocalDateTime;->getMonthValue()I
 HSPLjava/time/LocalDateTime;->getNano()I
 HSPLjava/time/LocalDateTime;->getSecond()I
 HSPLjava/time/LocalDateTime;->getYear()I
+HSPLjava/time/LocalDateTime;->isAfter(Ljava/time/chrono/ChronoLocalDateTime;)Z
+HSPLjava/time/LocalDateTime;->isBefore(Ljava/time/chrono/ChronoLocalDateTime;)Z
+HSPLjava/time/LocalDateTime;->isSupported(Ljava/time/temporal/TemporalField;)Z
+HSPLjava/time/LocalDateTime;->now(Ljava/time/Clock;)Ljava/time/LocalDateTime;
+HSPLjava/time/LocalDateTime;->of(IIIIII)Ljava/time/LocalDateTime;
+HSPLjava/time/LocalDateTime;->of(Ljava/time/LocalDate;Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
+HSPLjava/time/LocalDateTime;->ofEpochSecond(JILjava/time/ZoneOffset;)Ljava/time/LocalDateTime;
+HSPLjava/time/LocalDateTime;->ofInstant(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/LocalDateTime;
+HSPLjava/time/LocalDateTime;->plus(Ljava/time/temporal/TemporalAmount;)Ljava/time/LocalDateTime;
+HSPLjava/time/LocalDateTime;->plusDays(J)Ljava/time/LocalDateTime;
 HSPLjava/time/LocalDateTime;->plusSeconds(J)Ljava/time/LocalDateTime;
 HSPLjava/time/LocalDateTime;->plusWithOverflow(Ljava/time/LocalDate;JJJJI)Ljava/time/LocalDateTime;
 HSPLjava/time/LocalDateTime;->toLocalDate()Ljava/time/LocalDate;
 HSPLjava/time/LocalDateTime;->toLocalDate()Ljava/time/chrono/ChronoLocalDate;
 HSPLjava/time/LocalDateTime;->toLocalTime()Ljava/time/LocalTime;
 HSPLjava/time/LocalDateTime;->toString()Ljava/lang/String;
+HPLjava/time/LocalDateTime;->truncatedTo(Ljava/time/temporal/TemporalUnit;)Ljava/time/LocalDateTime;
 HSPLjava/time/LocalDateTime;->with(Ljava/time/LocalDate;Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
+HSPLjava/time/LocalDateTime;->withSecond(I)Ljava/time/LocalDateTime;
 HSPLjava/time/LocalTime$1;-><clinit>()V
 HSPLjava/time/LocalTime;-><init>(IIII)V
+HSPLjava/time/LocalTime;->compareTo(Ljava/time/LocalTime;)I
 HSPLjava/time/LocalTime;->create(IIII)Ljava/time/LocalTime;
+HSPLjava/time/LocalTime;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/LocalTime;
+HSPLjava/time/LocalTime;->get0(Ljava/time/temporal/TemporalField;)I
 HSPLjava/time/LocalTime;->getHour()I
+HSPLjava/time/LocalTime;->getLong(Ljava/time/temporal/TemporalField;)J
 HSPLjava/time/LocalTime;->getMinute()I
 HSPLjava/time/LocalTime;->getNano()I
 HSPLjava/time/LocalTime;->getSecond()I
+HSPLjava/time/LocalTime;->isSupported(Ljava/time/temporal/TemporalField;)Z
+HSPLjava/time/LocalTime;->of(II)Ljava/time/LocalTime;
+HSPLjava/time/LocalTime;->of(III)Ljava/time/LocalTime;
+HSPLjava/time/LocalTime;->of(IIII)Ljava/time/LocalTime;
 HSPLjava/time/LocalTime;->ofNanoOfDay(J)Ljava/time/LocalTime;
+HSPLjava/time/LocalTime;->ofSecondOfDay(J)Ljava/time/LocalTime;
 HSPLjava/time/LocalTime;->toNanoOfDay()J
 HSPLjava/time/LocalTime;->toSecondOfDay()I
 HSPLjava/time/LocalTime;->toString()Ljava/lang/String;
+HPLjava/time/LocalTime;->truncatedTo(Ljava/time/temporal/TemporalUnit;)Ljava/time/LocalTime;
+HSPLjava/time/LocalTime;->withSecond(I)Ljava/time/LocalTime;
 HSPLjava/time/Month$1;-><clinit>()V
 HSPLjava/time/Month;->getValue()I
 HSPLjava/time/Month;->length(Z)I
+HSPLjava/time/Month;->maxLength()I
+HSPLjava/time/Month;->plus(J)Ljava/time/Month;
 HSPLjava/time/Month;->values()[Ljava/time/Month;
+HSPLjava/time/Period;-><init>(III)V
+HSPLjava/time/Period;->create(III)Ljava/time/Period;
+HSPLjava/time/Period;->getDays()I
+HSPLjava/time/Period;->getMonths()I
+HSPLjava/time/Period;->getYears()I
+HSPLjava/time/Period;->isZero()Z
+HSPLjava/time/Period;->multipliedBy(I)Ljava/time/Period;
+HSPLjava/time/Period;->toString()Ljava/lang/String;
+HSPLjava/time/Period;->toTotalMonths()J
 HSPLjava/time/ZoneId;-><init>()V
+HSPLjava/time/ZoneId;->equals(Ljava/lang/Object;)Z
+HSPLjava/time/ZoneId;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZoneId;
 HSPLjava/time/ZoneId;->of(Ljava/lang/String;)Ljava/time/ZoneId;
 HSPLjava/time/ZoneId;->of(Ljava/lang/String;Ljava/util/Map;)Ljava/time/ZoneId;
 HSPLjava/time/ZoneId;->of(Ljava/lang/String;Z)Ljava/time/ZoneId;
 HSPLjava/time/ZoneId;->systemDefault()Ljava/time/ZoneId;
+HSPLjava/time/ZoneId;->toString()Ljava/lang/String;
 HSPLjava/time/ZoneOffset;-><init>(I)V
 HSPLjava/time/ZoneOffset;->buildId(I)Ljava/lang/String;
+HSPLjava/time/ZoneOffset;->equals(Ljava/lang/Object;)Z
 HSPLjava/time/ZoneOffset;->getId()Ljava/lang/String;
 HSPLjava/time/ZoneOffset;->getTotalSeconds()I
 HSPLjava/time/ZoneOffset;->ofTotalSeconds(I)Ljava/time/ZoneOffset;
+HSPLjava/time/ZoneOffset;->toString()Ljava/lang/String;
 HSPLjava/time/ZoneRegion;-><init>(Ljava/lang/String;Ljava/time/zone/ZoneRules;)V
 HSPLjava/time/ZoneRegion;->checkName(Ljava/lang/String;)V
 HSPLjava/time/ZoneRegion;->getId()Ljava/lang/String;
 HSPLjava/time/ZoneRegion;->getRules()Ljava/time/zone/ZoneRules;
 HSPLjava/time/ZoneRegion;->ofId(Ljava/lang/String;Z)Ljava/time/ZoneRegion;
+HSPLjava/time/ZonedDateTime$1;-><clinit>()V
 HSPLjava/time/ZonedDateTime;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneId;)V
 HSPLjava/time/ZonedDateTime;->create(JILjava/time/ZoneId;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->format(Ljava/time/format/DateTimeFormatter;)Ljava/lang/String;
+HSPLjava/time/ZonedDateTime;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->getDayOfMonth()I
+HSPLjava/time/ZonedDateTime;->getLong(Ljava/time/temporal/TemporalField;)J
+HSPLjava/time/ZonedDateTime;->getOffset()Ljava/time/ZoneOffset;
+HSPLjava/time/ZonedDateTime;->getZone()Ljava/time/ZoneId;
+HSPLjava/time/ZonedDateTime;->now(Ljava/time/Clock;)Ljava/time/ZonedDateTime;
+HPLjava/time/ZonedDateTime;->of(Ljava/time/LocalDate;Ljava/time/LocalTime;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->of(Ljava/time/LocalDateTime;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
 HSPLjava/time/ZonedDateTime;->ofInstant(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->ofLocal(Ljava/time/LocalDateTime;Ljava/time/ZoneId;Ljava/time/ZoneOffset;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->parse(Ljava/lang/CharSequence;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->parse(Ljava/lang/CharSequence;Ljava/time/format/DateTimeFormatter;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->plus(Ljava/time/temporal/TemporalAmount;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
+HSPLjava/time/ZonedDateTime;->resolveLocal(Ljava/time/LocalDateTime;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->toLocalDate()Ljava/time/LocalDate;
+HSPLjava/time/ZonedDateTime;->toLocalDate()Ljava/time/chrono/ChronoLocalDate;
+HSPLjava/time/ZonedDateTime;->toLocalTime()Ljava/time/LocalTime;
+HSPLjava/time/ZonedDateTime;->toString()Ljava/lang/String;
+HPLjava/time/ZonedDateTime;->truncatedTo(Ljava/time/temporal/TemporalUnit;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->withZoneSameInstant(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+HSPLjava/time/chrono/AbstractChronology;->equals(Ljava/lang/Object;)Z
+HSPLjava/time/chrono/AbstractChronology;->resolveDate(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+HSPLjava/time/chrono/ChronoLocalDate;->isSupported(Ljava/time/temporal/TemporalField;)Z
 HSPLjava/time/chrono/ChronoLocalDateTime;->toEpochSecond(Ljava/time/ZoneOffset;)J
+HSPLjava/time/chrono/ChronoZonedDateTime;->compareTo(Ljava/lang/Object;)I
+HSPLjava/time/chrono/ChronoZonedDateTime;->compareTo(Ljava/time/chrono/ChronoZonedDateTime;)I
+HSPLjava/time/chrono/ChronoZonedDateTime;->getChronology()Ljava/time/chrono/Chronology;
+HSPLjava/time/chrono/ChronoZonedDateTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
+HSPLjava/time/chrono/ChronoZonedDateTime;->toEpochSecond()J
+HSPLjava/time/chrono/ChronoZonedDateTime;->toInstant()Ljava/time/Instant;
 HSPLjava/time/chrono/IsoChronology;->isLeapYear(J)Z
+HSPLjava/time/chrono/IsoChronology;->resolveDate(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate;
+HSPLjava/time/chrono/IsoChronology;->resolveDate(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+HSPLjava/time/chrono/IsoChronology;->resolveProlepticMonth(Ljava/util/Map;Ljava/time/format/ResolverStyle;)V
+HSPLjava/time/chrono/IsoChronology;->resolveYMD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate;
+HSPLjava/time/chrono/IsoChronology;->resolveYMD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+HSPLjava/time/chrono/IsoChronology;->resolveYearOfEra(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate;
+HSPLjava/time/chrono/IsoChronology;->resolveYearOfEra(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+HSPLjava/time/format/-$$Lambda$DateTimeFormatterBuilder$M-GACNxm6552EiylPRPw4dyNXKo;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;
 HSPLjava/time/format/DateTimeFormatter;-><init>(Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;Ljava/util/Locale;Ljava/time/format/DecimalStyle;Ljava/time/format/ResolverStyle;Ljava/util/Set;Ljava/time/chrono/Chronology;Ljava/time/ZoneId;)V
 HSPLjava/time/format/DateTimeFormatter;->format(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;
 HSPLjava/time/format/DateTimeFormatter;->formatTo(Ljava/time/temporal/TemporalAccessor;Ljava/lang/Appendable;)V
 HSPLjava/time/format/DateTimeFormatter;->getChronology()Ljava/time/chrono/Chronology;
 HSPLjava/time/format/DateTimeFormatter;->getDecimalStyle()Ljava/time/format/DecimalStyle;
+HSPLjava/time/format/DateTimeFormatter;->getZone()Ljava/time/ZoneId;
+HSPLjava/time/format/DateTimeFormatter;->ofPattern(Ljava/lang/String;)Ljava/time/format/DateTimeFormatter;
+HSPLjava/time/format/DateTimeFormatter;->parse(Ljava/lang/CharSequence;Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
+HSPLjava/time/format/DateTimeFormatter;->parseResolved0(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/time/temporal/TemporalAccessor;
+HSPLjava/time/format/DateTimeFormatter;->parseUnresolved0(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/time/format/DateTimeParseContext;
+HSPLjava/time/format/DateTimeFormatterBuilder$3;-><clinit>()V
 HSPLjava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;-><init>(C)V
+HSPLjava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
 HSPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;-><init>(Ljava/util/List;Z)V
 HSPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;-><init>([Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;Z)V
 HSPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IIZ)V
+HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->convertFromFraction(Ljava/math/BigDecimal;)J
+HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->convertToFraction(J)Ljava/math/BigDecimal;
+HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+HSPLjava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
 HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IILjava/time/format/SignStyle;)V
+HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->getValue(Ljava/time/format/DateTimePrintContext;J)J
+HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->setValue(Ljava/time/format/DateTimeParseContext;JII)I
+HSPLjava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+HSPLjava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->parseNumber([IILjava/lang/CharSequence;Z)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$PrefixTree;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)V
+HSPLjava/time/format/DateTimeFormatterBuilder$PrefixTree;->add0(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$PrefixTree;->isEqual(CC)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$PrefixTree;->match(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/lang/String;
+HSPLjava/time/format/DateTimeFormatterBuilder$PrefixTree;->newNode(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+HSPLjava/time/format/DateTimeFormatterBuilder$PrefixTree;->newTree(Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+HSPLjava/time/format/DateTimeFormatterBuilder$PrefixTree;->newTree(Ljava/util/Set;Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+HSPLjava/time/format/DateTimeFormatterBuilder$PrefixTree;->prefixLength(Ljava/lang/String;)I
+HSPLjava/time/format/DateTimeFormatterBuilder$PrefixTree;->prefixOf(Ljava/lang/CharSequence;II)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$PrefixTree;->toKey(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/time/format/DateTimeFormatterBuilder$SettingsParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$SettingsParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+HSPLjava/time/format/DateTimeFormatterBuilder$TextPrinterParser;-><init>(Ljava/time/temporal/TemporalField;Ljava/time/format/TextStyle;Ljava/time/format/DateTimeTextProvider;)V
+HSPLjava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->getTree(Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+HSPLjava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+HSPLjava/time/format/DateTimeFormatterBuilder;-><init>()V
+HSPLjava/time/format/DateTimeFormatterBuilder;->appendFraction(Ljava/time/temporal/TemporalField;IIZ)Ljava/time/format/DateTimeFormatterBuilder;
 HSPLjava/time/format/DateTimeFormatterBuilder;->appendInternal(Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;)I
 HSPLjava/time/format/DateTimeFormatterBuilder;->appendLiteral(C)Ljava/time/format/DateTimeFormatterBuilder;
+HSPLjava/time/format/DateTimeFormatterBuilder;->appendPattern(Ljava/lang/String;)Ljava/time/format/DateTimeFormatterBuilder;
+HSPLjava/time/format/DateTimeFormatterBuilder;->appendText(Ljava/time/temporal/TemporalField;Ljava/time/format/TextStyle;)Ljava/time/format/DateTimeFormatterBuilder;
 HSPLjava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;)Ljava/time/format/DateTimeFormatterBuilder;
 HSPLjava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/temporal/TemporalField;I)Ljava/time/format/DateTimeFormatterBuilder;
+HSPLjava/time/format/DateTimeFormatterBuilder;->lambda$static$0(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZoneId;
+HSPLjava/time/format/DateTimeFormatterBuilder;->parseField(CILjava/time/temporal/TemporalField;)V
+HSPLjava/time/format/DateTimeFormatterBuilder;->parsePattern(Ljava/lang/String;)V
+HSPLjava/time/format/DateTimeFormatterBuilder;->toFormatter()Ljava/time/format/DateTimeFormatter;
+HSPLjava/time/format/DateTimeFormatterBuilder;->toFormatter(Ljava/util/Locale;)Ljava/time/format/DateTimeFormatter;
 HSPLjava/time/format/DateTimeFormatterBuilder;->toFormatter(Ljava/util/Locale;Ljava/time/format/ResolverStyle;Ljava/time/chrono/Chronology;)Ljava/time/format/DateTimeFormatter;
+HSPLjava/time/format/DateTimeParseContext;-><init>(Ljava/time/format/DateTimeFormatter;)V
+HSPLjava/time/format/DateTimeParseContext;->charEquals(CC)Z
+HSPLjava/time/format/DateTimeParseContext;->currentParsed()Ljava/time/format/Parsed;
+HSPLjava/time/format/DateTimeParseContext;->endOptional(Z)V
+HSPLjava/time/format/DateTimeParseContext;->getDecimalStyle()Ljava/time/format/DecimalStyle;
+HSPLjava/time/format/DateTimeParseContext;->getEffectiveChronology()Ljava/time/chrono/Chronology;
+HSPLjava/time/format/DateTimeParseContext;->isCaseSensitive()Z
+HSPLjava/time/format/DateTimeParseContext;->isStrict()Z
+HSPLjava/time/format/DateTimeParseContext;->setCaseSensitive(Z)V
+HSPLjava/time/format/DateTimeParseContext;->setParsed(Ljava/time/ZoneId;)V
+HSPLjava/time/format/DateTimeParseContext;->setParsedField(Ljava/time/temporal/TemporalField;JII)I
+HSPLjava/time/format/DateTimeParseContext;->startOptional()V
+HSPLjava/time/format/DateTimeParseContext;->subSequenceEquals(Ljava/lang/CharSequence;ILjava/lang/CharSequence;II)Z
+HSPLjava/time/format/DateTimeParseContext;->toResolved(Ljava/time/format/ResolverStyle;Ljava/util/Set;)Ljava/time/temporal/TemporalAccessor;
+HSPLjava/time/format/DateTimePrintContext;-><init>(Ljava/time/temporal/TemporalAccessor;Ljava/time/format/DateTimeFormatter;)V
+HSPLjava/time/format/DateTimePrintContext;->adjust(Ljava/time/temporal/TemporalAccessor;Ljava/time/format/DateTimeFormatter;)Ljava/time/temporal/TemporalAccessor;
+HSPLjava/time/format/DateTimePrintContext;->endOptional()V
+HSPLjava/time/format/DateTimePrintContext;->getDecimalStyle()Ljava/time/format/DecimalStyle;
+HSPLjava/time/format/DateTimePrintContext;->getTemporal()Ljava/time/temporal/TemporalAccessor;
+HSPLjava/time/format/DateTimePrintContext;->getValue(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
+HSPLjava/time/format/DateTimePrintContext;->getValue(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
+HSPLjava/time/format/DateTimePrintContext;->startOptional()V
+HSPLjava/time/format/DateTimeTextProvider;-><init>()V
+HSPLjava/time/format/DateTimeTextProvider;->getInstance()Ljava/time/format/DateTimeTextProvider;
+HSPLjava/time/format/DecimalStyle;->convertNumberToI18N(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/time/format/DecimalStyle;->convertToDigit(C)I
+HSPLjava/time/format/DecimalStyle;->getDecimalSeparator()C
+HSPLjava/time/format/DecimalStyle;->getNegativeSign()C
+HSPLjava/time/format/DecimalStyle;->getPositiveSign()C
+HSPLjava/time/format/DecimalStyle;->getZeroDigit()C
+HSPLjava/time/format/Parsed;-><init>()V
+HSPLjava/time/format/Parsed;->copy()Ljava/time/format/Parsed;
+HSPLjava/time/format/Parsed;->crossCheck()V
+HSPLjava/time/format/Parsed;->crossCheck(Ljava/time/temporal/TemporalAccessor;)V
+HSPLjava/time/format/Parsed;->getLong(Ljava/time/temporal/TemporalField;)J
+HSPLjava/time/format/Parsed;->isSupported(Ljava/time/temporal/TemporalField;)Z
+HSPLjava/time/format/Parsed;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
+HSPLjava/time/format/Parsed;->resolve(Ljava/time/format/ResolverStyle;Ljava/util/Set;)Ljava/time/temporal/TemporalAccessor;
+HSPLjava/time/format/Parsed;->resolveDateFields()V
+HSPLjava/time/format/Parsed;->resolveFields()V
+HSPLjava/time/format/Parsed;->resolveFractional()V
+HSPLjava/time/format/Parsed;->resolveInstant()V
+HSPLjava/time/format/Parsed;->resolveInstantFields()V
+HSPLjava/time/format/Parsed;->resolvePeriod()V
+HSPLjava/time/format/Parsed;->resolveTime(JJJJ)V
+HSPLjava/time/format/Parsed;->resolveTimeFields()V
+HSPLjava/time/format/Parsed;->resolveTimeLenient()V
+HSPLjava/time/format/Parsed;->updateCheckConflict(Ljava/time/LocalTime;Ljava/time/Period;)V
+HSPLjava/time/format/Parsed;->updateCheckConflict(Ljava/time/chrono/ChronoLocalDate;)V
+HSPLjava/time/format/SignStyle;->values()[Ljava/time/format/SignStyle;
 HSPLjava/time/temporal/-$$Lambda$TemporalAdjusters$A9OZwfMlHD1vy7-nYt5NssACu7Q;-><init>(I)V
 HSPLjava/time/temporal/-$$Lambda$TemporalAdjusters$A9OZwfMlHD1vy7-nYt5NssACu7Q;->adjustInto(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
 HSPLjava/time/temporal/-$$Lambda$TemporalAdjusters$TKkfUVRu_GUECdXqtmzzXrayVY8;-><init>(I)V
 HSPLjava/time/temporal/-$$Lambda$TemporalAdjusters$TKkfUVRu_GUECdXqtmzzXrayVY8;->adjustInto(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
+HSPLjava/time/temporal/-$$Lambda$TemporalQueries$PBpYKRiwkxqQNlcU-BOJfaQoONg;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;
 HSPLjava/time/temporal/ChronoField;->checkValidIntValue(J)I
 HSPLjava/time/temporal/ChronoField;->checkValidValue(J)J
+HSPLjava/time/temporal/ChronoField;->isDateBased()Z
 HSPLjava/time/temporal/ChronoField;->isTimeBased()Z
 HSPLjava/time/temporal/ChronoField;->range()Ljava/time/temporal/ValueRange;
+HSPLjava/time/temporal/ChronoField;->values()[Ljava/time/temporal/ChronoField;
+HSPLjava/time/temporal/ChronoUnit;->getDuration()Ljava/time/Duration;
+HSPLjava/time/temporal/ChronoUnit;->values()[Ljava/time/temporal/ChronoUnit;
+HSPLjava/time/temporal/TemporalAccessor;->get(Ljava/time/temporal/TemporalField;)I
+HSPLjava/time/temporal/TemporalAccessor;->range(Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;
 HSPLjava/time/temporal/TemporalAdjusters;->lambda$nextOrSame$10(ILjava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
 HSPLjava/time/temporal/TemporalAdjusters;->lambda$previousOrSame$12(ILjava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
 HSPLjava/time/temporal/TemporalAdjusters;->nextOrSame(Ljava/time/DayOfWeek;)Ljava/time/temporal/TemporalAdjuster;
 HSPLjava/time/temporal/TemporalAdjusters;->previousOrSame(Ljava/time/DayOfWeek;)Ljava/time/temporal/TemporalAdjuster;
+HSPLjava/time/temporal/TemporalField;->resolve(Ljava/util/Map;Ljava/time/temporal/TemporalAccessor;Ljava/time/format/ResolverStyle;)Ljava/time/temporal/TemporalAccessor;
 HSPLjava/time/temporal/TemporalQueries;->chronology()Ljava/time/temporal/TemporalQuery;
+HSPLjava/time/temporal/TemporalQueries;->lambda$static$4(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZoneId;
+HSPLjava/time/temporal/TemporalQueries;->localDate()Ljava/time/temporal/TemporalQuery;
 HSPLjava/time/temporal/TemporalQueries;->localTime()Ljava/time/temporal/TemporalQuery;
 HSPLjava/time/temporal/TemporalQueries;->offset()Ljava/time/temporal/TemporalQuery;
+HSPLjava/time/temporal/TemporalQueries;->precision()Ljava/time/temporal/TemporalQuery;
 HSPLjava/time/temporal/TemporalQueries;->zone()Ljava/time/temporal/TemporalQuery;
 HSPLjava/time/temporal/TemporalQueries;->zoneId()Ljava/time/temporal/TemporalQuery;
 HSPLjava/time/temporal/ValueRange;->checkValidIntValue(JLjava/time/temporal/TemporalField;)I
 HSPLjava/time/temporal/ValueRange;->checkValidValue(JLjava/time/temporal/TemporalField;)J
 HSPLjava/time/temporal/ValueRange;->getMaximum()J
 HSPLjava/time/temporal/ValueRange;->getMinimum()J
+HSPLjava/time/temporal/ValueRange;->isFixed()Z
 HSPLjava/time/temporal/ValueRange;->isIntValue()Z
 HSPLjava/time/temporal/ValueRange;->isValidIntValue(J)Z
 HSPLjava/time/temporal/ValueRange;->isValidValue(J)Z
 HSPLjava/time/zone/IcuZoneRulesProvider$ZoneRulesCache;->create(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/time/zone/IcuZoneRulesProvider$ZoneRulesCache;->create(Ljava/lang/String;)Ljava/time/zone/ZoneRules;
+HSPLjava/time/zone/IcuZoneRulesProvider;->generateZoneRules(Ljava/lang/String;)Ljava/time/zone/ZoneRules;
+HSPLjava/time/zone/IcuZoneRulesProvider;->millisToOffset(I)Ljava/time/ZoneOffset;
 HSPLjava/time/zone/IcuZoneRulesProvider;->provideRules(Ljava/lang/String;Z)Ljava/time/zone/ZoneRules;
+HSPLjava/time/zone/IcuZoneRulesProvider;->toZoneOffsetTransitionRule(Landroid/icu/util/AnnualTimeZoneRule;I)Ljava/time/zone/ZoneOffsetTransitionRule;
+HSPLjava/time/zone/IcuZoneRulesProvider;->verify(ZLjava/lang/String;Ljava/lang/String;)V
+HSPLjava/time/zone/ZoneOffsetTransition;-><init>(JLjava/time/ZoneOffset;Ljava/time/ZoneOffset;)V
 HSPLjava/time/zone/ZoneOffsetTransition;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)V
 HSPLjava/time/zone/ZoneOffsetTransition;->getDateTimeAfter()Ljava/time/LocalDateTime;
 HSPLjava/time/zone/ZoneOffsetTransition;->getDateTimeBefore()Ljava/time/LocalDateTime;
@@ -19308,13 +39503,26 @@
 HSPLjava/time/zone/ZoneOffsetTransitionRule;->createTransition(I)Ljava/time/zone/ZoneOffsetTransition;
 HSPLjava/time/zone/ZoneOffsetTransitionRule;->of(Ljava/time/Month;ILjava/time/DayOfWeek;Ljava/time/LocalTime;ZLjava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)Ljava/time/zone/ZoneOffsetTransitionRule;
 HSPLjava/time/zone/ZoneRules;-><init>(Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
+HSPLjava/time/zone/ZoneRules;->findOffsetInfo(Ljava/time/LocalDateTime;Ljava/time/zone/ZoneOffsetTransition;)Ljava/lang/Object;
 HSPLjava/time/zone/ZoneRules;->findTransitionArray(I)[Ljava/time/zone/ZoneOffsetTransition;
 HSPLjava/time/zone/ZoneRules;->findYear(JLjava/time/ZoneOffset;)I
 HSPLjava/time/zone/ZoneRules;->getOffset(Ljava/time/Instant;)Ljava/time/ZoneOffset;
+HSPLjava/time/zone/ZoneRules;->getOffsetInfo(Ljava/time/LocalDateTime;)Ljava/lang/Object;
+HSPLjava/time/zone/ZoneRules;->getValidOffsets(Ljava/time/LocalDateTime;)Ljava/util/List;
 HSPLjava/time/zone/ZoneRules;->of(Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/time/zone/ZoneRules;
+HSPLjava/time/zone/ZoneRulesProvider;->getAvailableZoneIds()Ljava/util/Set;
+HSPLjava/time/zone/ZoneRulesProvider;->getProvider(Ljava/lang/String;)Ljava/time/zone/ZoneRulesProvider;
+HSPLjava/time/zone/ZoneRulesProvider;->getRules(Ljava/lang/String;Z)Ljava/time/zone/ZoneRules;
+HSPLjava/util/-$$Lambda$Comparator$4V5k8aLimtS0VsEILEAqQ9UGZYo;-><init>(Ljava/util/function/ToLongFunction;)V
+HSPLjava/util/-$$Lambda$Comparator$BZSVCoA8i87ehjxxZ1weEounfDQ;-><init>(Ljava/util/Comparator;Ljava/util/Comparator;)V
+HSPLjava/util/-$$Lambda$Comparator$BZSVCoA8i87ehjxxZ1weEounfDQ;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLjava/util/-$$Lambda$Comparator$DNgpxUFZqmT4lOBzlVyPjWwvEvw;-><init>(Ljava/util/function/ToIntFunction;)V
+HSPLjava/util/-$$Lambda$Comparator$DNgpxUFZqmT4lOBzlVyPjWwvEvw;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLjava/util/-$$Lambda$Comparator$SPB8K9Yj7Pw1mljm7LpasV7zxWw;-><init>(Ljava/util/function/Function;)V
+HSPLjava/util/-$$Lambda$Comparator$SPB8K9Yj7Pw1mljm7LpasV7zxWw;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLjava/util/AbstractCollection;-><init>()V
 HSPLjava/util/AbstractCollection;->addAll(Ljava/util/Collection;)Z
+HSPLjava/util/AbstractCollection;->clear()V
 HSPLjava/util/AbstractCollection;->contains(Ljava/lang/Object;)Z
 HSPLjava/util/AbstractCollection;->containsAll(Ljava/util/Collection;)Z
 HSPLjava/util/AbstractCollection;->isEmpty()Z
@@ -19330,44 +39538,79 @@
 HSPLjava/util/AbstractList$Itr;->hasNext()Z
 HSPLjava/util/AbstractList$Itr;->next()Ljava/lang/Object;
 HSPLjava/util/AbstractList$ListItr;-><init>(Ljava/util/AbstractList;I)V
+HSPLjava/util/AbstractList$ListItr;->hasPrevious()Z
 HSPLjava/util/AbstractList$ListItr;->nextIndex()I
+HSPLjava/util/AbstractList$ListItr;->previous()Ljava/lang/Object;
+HSPLjava/util/AbstractList$ListItr;->previousIndex()I
+HSPLjava/util/AbstractList$RandomAccessSpliterator;-><init>(Ljava/util/List;)V
+HSPLjava/util/AbstractList$RandomAccessSpliterator;->characteristics()I
+HSPLjava/util/AbstractList$RandomAccessSpliterator;->checkAbstractListModCount(Ljava/util/AbstractList;I)V
+HSPLjava/util/AbstractList$RandomAccessSpliterator;->estimateSize()J
+HSPLjava/util/AbstractList$RandomAccessSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+HSPLjava/util/AbstractList$RandomAccessSpliterator;->get(Ljava/util/List;I)Ljava/lang/Object;
+HSPLjava/util/AbstractList$RandomAccessSpliterator;->getFence()I
+HSPLjava/util/AbstractList$RandomAccessSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
 HSPLjava/util/AbstractList$RandomAccessSubList;-><init>(Ljava/util/AbstractList;II)V
 HSPLjava/util/AbstractList$SubList$1;-><init>(Ljava/util/AbstractList$SubList;I)V
 HSPLjava/util/AbstractList$SubList$1;->hasNext()Z
+HSPLjava/util/AbstractList$SubList$1;->next()Ljava/lang/Object;
 HSPLjava/util/AbstractList$SubList$1;->nextIndex()I
 HSPLjava/util/AbstractList$SubList;-><init>(Ljava/util/AbstractList;II)V
 HSPLjava/util/AbstractList$SubList;->access$100(Ljava/util/AbstractList$SubList;)I
 HSPLjava/util/AbstractList$SubList;->access$200(Ljava/util/AbstractList$SubList;)Ljava/util/AbstractList;
 HSPLjava/util/AbstractList$SubList;->checkForComodification()V
+HSPLjava/util/AbstractList$SubList;->get(I)Ljava/lang/Object;
 HSPLjava/util/AbstractList$SubList;->iterator()Ljava/util/Iterator;
 HSPLjava/util/AbstractList$SubList;->listIterator(I)Ljava/util/ListIterator;
 HSPLjava/util/AbstractList$SubList;->rangeCheckForAdd(I)V
+HSPLjava/util/AbstractList$SubList;->size()I
 HSPLjava/util/AbstractList;-><init>()V
 HSPLjava/util/AbstractList;->add(Ljava/lang/Object;)Z
 HSPLjava/util/AbstractList;->clear()V
 HSPLjava/util/AbstractList;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/AbstractList;->hashCode()I
+HSPLjava/util/AbstractList;->indexOf(Ljava/lang/Object;)I
 HSPLjava/util/AbstractList;->iterator()Ljava/util/Iterator;
 HSPLjava/util/AbstractList;->listIterator()Ljava/util/ListIterator;
 HSPLjava/util/AbstractList;->listIterator(I)Ljava/util/ListIterator;
 HSPLjava/util/AbstractList;->rangeCheckForAdd(I)V
 HSPLjava/util/AbstractList;->subList(II)Ljava/util/List;
 HSPLjava/util/AbstractList;->subListRangeCheck(III)V
+HSPLjava/util/AbstractMap$1$1;-><init>(Ljava/util/AbstractMap$1;)V
+HSPLjava/util/AbstractMap$1$1;->hasNext()Z
+HSPLjava/util/AbstractMap$1$1;->next()Ljava/lang/Object;
+HSPLjava/util/AbstractMap$1;-><init>(Ljava/util/AbstractMap;)V
+HSPLjava/util/AbstractMap$1;->iterator()Ljava/util/Iterator;
+HSPLjava/util/AbstractMap$2$1;-><init>(Ljava/util/AbstractMap$2;)V
+HSPLjava/util/AbstractMap$2$1;->hasNext()Z
+HSPLjava/util/AbstractMap$2$1;->next()Ljava/lang/Object;
+HSPLjava/util/AbstractMap$2;-><init>(Ljava/util/AbstractMap;)V
+HSPLjava/util/AbstractMap$2;->iterator()Ljava/util/Iterator;
+HSPLjava/util/AbstractMap$SimpleEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLjava/util/AbstractMap$SimpleEntry;->getKey()Ljava/lang/Object;
+HSPLjava/util/AbstractMap$SimpleEntry;->getValue()Ljava/lang/Object;
 HSPLjava/util/AbstractMap$SimpleImmutableEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLjava/util/AbstractMap$SimpleImmutableEntry;-><init>(Ljava/util/Map$Entry;)V
+HSPLjava/util/AbstractMap$SimpleImmutableEntry;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/AbstractMap$SimpleImmutableEntry;->getKey()Ljava/lang/Object;
 HSPLjava/util/AbstractMap$SimpleImmutableEntry;->getValue()Ljava/lang/Object;
 HSPLjava/util/AbstractMap$SimpleImmutableEntry;->hashCode()I
 HSPLjava/util/AbstractMap;-><init>()V
+HSPLjava/util/AbstractMap;->access$000(Ljava/lang/Object;Ljava/lang/Object;)Z
 HSPLjava/util/AbstractMap;->clear()V
 HSPLjava/util/AbstractMap;->clone()Ljava/lang/Object;
+HSPLjava/util/AbstractMap;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z
 HSPLjava/util/AbstractMap;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/AbstractMap;->hashCode()I
 HSPLjava/util/AbstractMap;->isEmpty()Z
+HSPLjava/util/AbstractMap;->keySet()Ljava/util/Set;
 HSPLjava/util/AbstractMap;->putAll(Ljava/util/Map;)V
+HSPLjava/util/AbstractMap;->size()I
 HSPLjava/util/AbstractMap;->toString()Ljava/lang/String;
+HSPLjava/util/AbstractMap;->values()Ljava/util/Collection;
 HSPLjava/util/AbstractQueue;-><init>()V
 HSPLjava/util/AbstractQueue;->add(Ljava/lang/Object;)Z
+HSPLjava/util/AbstractQueue;->addAll(Ljava/util/Collection;)Z
 HSPLjava/util/AbstractQueue;->clear()V
 HSPLjava/util/AbstractQueue;->remove()Ljava/lang/Object;
 HSPLjava/util/AbstractSequentialList;-><init>()V
@@ -19431,8 +39674,10 @@
 HSPLjava/util/ArrayList$Itr;->next()Ljava/lang/Object;
 HSPLjava/util/ArrayList$Itr;->remove()V
 HSPLjava/util/ArrayList$ListItr;-><init>(Ljava/util/ArrayList;I)V
+HSPLjava/util/ArrayList$ListItr;->add(Ljava/lang/Object;)V
 HSPLjava/util/ArrayList$ListItr;->hasPrevious()Z
 HSPLjava/util/ArrayList$ListItr;->previous()Ljava/lang/Object;
+HSPLjava/util/ArrayList$ListItr;->set(Ljava/lang/Object;)V
 HSPLjava/util/ArrayList$SubList$1;-><init>(Ljava/util/ArrayList$SubList;II)V
 HSPLjava/util/ArrayList$SubList$1;->hasNext()Z
 HSPLjava/util/ArrayList$SubList$1;->next()Ljava/lang/Object;
@@ -19442,6 +39687,7 @@
 HSPLjava/util/ArrayList$SubList;->listIterator(I)Ljava/util/ListIterator;
 HSPLjava/util/ArrayList$SubList;->removeRange(II)V
 HSPLjava/util/ArrayList$SubList;->size()I
+HSPLjava/util/ArrayList$SubList;->subList(II)Ljava/util/List;
 HSPLjava/util/ArrayList;-><init>()V
 HSPLjava/util/ArrayList;-><init>(I)V
 HSPLjava/util/ArrayList;-><init>(Ljava/util/Collection;)V
@@ -19464,6 +39710,7 @@
 HSPLjava/util/ArrayList;->indexOf(Ljava/lang/Object;)I
 HSPLjava/util/ArrayList;->isEmpty()Z
 HSPLjava/util/ArrayList;->iterator()Ljava/util/Iterator;
+HSPLjava/util/ArrayList;->lastIndexOf(Ljava/lang/Object;)I
 HSPLjava/util/ArrayList;->listIterator()Ljava/util/ListIterator;
 HSPLjava/util/ArrayList;->listIterator(I)Ljava/util/ListIterator;
 HSPLjava/util/ArrayList;->readObject(Ljava/io/ObjectInputStream;)V
@@ -19472,6 +39719,7 @@
 HSPLjava/util/ArrayList;->removeAll(Ljava/util/Collection;)Z
 HSPLjava/util/ArrayList;->removeIf(Ljava/util/function/Predicate;)Z
 HSPLjava/util/ArrayList;->removeRange(II)V
+HSPLjava/util/ArrayList;->retainAll(Ljava/util/Collection;)Z
 HSPLjava/util/ArrayList;->set(ILjava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/ArrayList;->size()I
 HSPLjava/util/ArrayList;->sort(Ljava/util/Comparator;)V
@@ -19486,13 +39734,17 @@
 HSPLjava/util/Arrays$ArrayList;->contains(Ljava/lang/Object;)Z
 HSPLjava/util/Arrays$ArrayList;->get(I)Ljava/lang/Object;
 HSPLjava/util/Arrays$ArrayList;->indexOf(Ljava/lang/Object;)I
+HSPLjava/util/Arrays$ArrayList;->set(ILjava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/Arrays$ArrayList;->size()I
+HSPLjava/util/Arrays$ArrayList;->sort(Ljava/util/Comparator;)V
+HSPLjava/util/Arrays$ArrayList;->spliterator()Ljava/util/Spliterator;
 HSPLjava/util/Arrays$ArrayList;->toArray()[Ljava/lang/Object;
 HSPLjava/util/Arrays$ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
 HSPLjava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
 HSPLjava/util/Arrays;->binarySearch([CC)I
 HSPLjava/util/Arrays;->binarySearch([II)I
 HSPLjava/util/Arrays;->binarySearch([IIII)I
+HSPLjava/util/Arrays;->binarySearch([JIIJ)I
 HSPLjava/util/Arrays;->binarySearch([JJ)I
 HSPLjava/util/Arrays;->binarySearch([Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLjava/util/Arrays;->binarySearch([Ljava/lang/Object;Ljava/lang/Object;Ljava/util/Comparator;)I
@@ -19509,26 +39761,39 @@
 HSPLjava/util/Arrays;->copyOf([JI)[J
 HSPLjava/util/Arrays;->copyOf([Ljava/lang/Object;I)[Ljava/lang/Object;
 HSPLjava/util/Arrays;->copyOf([Ljava/lang/Object;ILjava/lang/Class;)[Ljava/lang/Object;
+HSPLjava/util/Arrays;->copyOf([ZI)[Z
 HSPLjava/util/Arrays;->copyOfRange([BII)[B
 HSPLjava/util/Arrays;->copyOfRange([CII)[C
+HSPLjava/util/Arrays;->copyOfRange([III)[I
+HSPLjava/util/Arrays;->copyOfRange([JII)[J
 HSPLjava/util/Arrays;->copyOfRange([Ljava/lang/Object;II)[Ljava/lang/Object;
 HSPLjava/util/Arrays;->copyOfRange([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;
+HSPLjava/util/Arrays;->deepEquals([Ljava/lang/Object;[Ljava/lang/Object;)Z
+HSPLjava/util/Arrays;->deepEquals0(Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLjava/util/Arrays;->deepHashCode([Ljava/lang/Object;)I
 HSPLjava/util/Arrays;->deepToString([Ljava/lang/Object;)Ljava/lang/String;
 HSPLjava/util/Arrays;->deepToString([Ljava/lang/Object;Ljava/lang/StringBuilder;Ljava/util/Set;)V
 HSPLjava/util/Arrays;->equals([B[B)Z
+HSPLjava/util/Arrays;->equals([F[F)Z
 HSPLjava/util/Arrays;->equals([I[I)Z
+HSPLjava/util/Arrays;->equals([J[J)Z
 HSPLjava/util/Arrays;->equals([Ljava/lang/Object;[Ljava/lang/Object;)Z
+HSPLjava/util/Arrays;->equals([Z[Z)Z
 HSPLjava/util/Arrays;->fill([BB)V
 HSPLjava/util/Arrays;->fill([BIIB)V
 HSPLjava/util/Arrays;->fill([CC)V
 HSPLjava/util/Arrays;->fill([CIIC)V
+HSPLjava/util/Arrays;->fill([DD)V
 HSPLjava/util/Arrays;->fill([FF)V
+HSPLjava/util/Arrays;->fill([FIIF)V
 HSPLjava/util/Arrays;->fill([II)V
 HSPLjava/util/Arrays;->fill([IIII)V
+HSPLjava/util/Arrays;->fill([JIIJ)V
 HSPLjava/util/Arrays;->fill([JJ)V
 HSPLjava/util/Arrays;->fill([Ljava/lang/Object;IILjava/lang/Object;)V
 HSPLjava/util/Arrays;->fill([Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLjava/util/Arrays;->fill([SS)V
+HSPLjava/util/Arrays;->fill([ZIIZ)V
 HSPLjava/util/Arrays;->fill([ZZ)V
 HSPLjava/util/Arrays;->hashCode([B)I
 HSPLjava/util/Arrays;->hashCode([F)I
@@ -19537,32 +39802,49 @@
 HSPLjava/util/Arrays;->hashCode([Ljava/lang/Object;)I
 HSPLjava/util/Arrays;->rangeCheck(III)V
 HSPLjava/util/Arrays;->sort([C)V
+HSPLjava/util/Arrays;->sort([F)V
 HSPLjava/util/Arrays;->sort([I)V
+HSPLjava/util/Arrays;->sort([III)V
 HSPLjava/util/Arrays;->sort([J)V
 HSPLjava/util/Arrays;->sort([Ljava/lang/Object;)V
 HSPLjava/util/Arrays;->sort([Ljava/lang/Object;II)V
 HSPLjava/util/Arrays;->sort([Ljava/lang/Object;IILjava/util/Comparator;)V
 HSPLjava/util/Arrays;->sort([Ljava/lang/Object;Ljava/util/Comparator;)V
+HSPLjava/util/Arrays;->spliterator([III)Ljava/util/Spliterator$OfInt;
 HSPLjava/util/Arrays;->spliterator([Ljava/lang/Object;II)Ljava/util/Spliterator;
+HSPLjava/util/Arrays;->stream([I)Ljava/util/stream/IntStream;
+HSPLjava/util/Arrays;->stream([III)Ljava/util/stream/IntStream;
 HSPLjava/util/Arrays;->stream([Ljava/lang/Object;)Ljava/util/stream/Stream;
 HSPLjava/util/Arrays;->stream([Ljava/lang/Object;II)Ljava/util/stream/Stream;
 HSPLjava/util/Arrays;->toString([B)Ljava/lang/String;
+HSPLjava/util/Arrays;->toString([F)Ljava/lang/String;
 HSPLjava/util/Arrays;->toString([I)Ljava/lang/String;
+HSPLjava/util/Arrays;->toString([J)Ljava/lang/String;
 HSPLjava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String;
 HSPLjava/util/Base64$Decoder;->decode(Ljava/lang/String;)[B
 HSPLjava/util/Base64$Decoder;->decode([B)[B
 HSPLjava/util/Base64$Decoder;->decode0([BII[B)I
 HSPLjava/util/Base64$Decoder;->outLength([BII)I
+HSPLjava/util/Base64$Encoder;->encode([B)[B
+HSPLjava/util/Base64$Encoder;->encode0([BII[B)I
+HSPLjava/util/Base64$Encoder;->encodeToString([B)Ljava/lang/String;
+HSPLjava/util/Base64$Encoder;->outLength(I)I
+HSPLjava/util/Base64;->getDecoder()Ljava/util/Base64$Decoder;
+HSPLjava/util/Base64;->getEncoder()Ljava/util/Base64$Encoder;
 HSPLjava/util/Base64;->getMimeDecoder()Ljava/util/Base64$Decoder;
 HSPLjava/util/BitSet;-><init>()V
 HSPLjava/util/BitSet;-><init>(I)V
+HSPLjava/util/BitSet;-><init>([J)V
+HSPLjava/util/BitSet;->andNot(Ljava/util/BitSet;)V
 HSPLjava/util/BitSet;->cardinality()I
 HSPLjava/util/BitSet;->checkInvariants()V
 HSPLjava/util/BitSet;->checkRange(II)V
 HSPLjava/util/BitSet;->clear()V
 HSPLjava/util/BitSet;->clear(I)V
+HSPLjava/util/BitSet;->clear(II)V
 HSPLjava/util/BitSet;->clone()Ljava/lang/Object;
 HSPLjava/util/BitSet;->ensureCapacity(I)V
+HSPLjava/util/BitSet;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/BitSet;->expandTo(I)V
 HSPLjava/util/BitSet;->get(I)Z
 HSPLjava/util/BitSet;->initWords(I)V
@@ -19574,21 +39856,33 @@
 HSPLjava/util/BitSet;->recalculateWordsInUse()V
 HSPLjava/util/BitSet;->set(I)V
 HSPLjava/util/BitSet;->set(II)V
+HSPLjava/util/BitSet;->set(IIZ)V
 HSPLjava/util/BitSet;->set(IZ)V
+HSPLjava/util/BitSet;->size()I
+HSPLjava/util/BitSet;->toByteArray()[B
 HSPLjava/util/BitSet;->toString()Ljava/lang/String;
+HSPLjava/util/BitSet;->trimToSize()V
+HSPLjava/util/BitSet;->valueOf(Ljava/nio/ByteBuffer;)Ljava/util/BitSet;
+HSPLjava/util/BitSet;->valueOf([B)Ljava/util/BitSet;
 HSPLjava/util/BitSet;->wordIndex(I)I
 HSPLjava/util/Calendar;-><init>()V
 HSPLjava/util/Calendar;-><init>(Ljava/util/TimeZone;Ljava/util/Locale;)V
+HSPLjava/util/Calendar;->after(Ljava/lang/Object;)Z
 HSPLjava/util/Calendar;->aggregateStamp(II)I
+HSPLjava/util/Calendar;->before(Ljava/lang/Object;)Z
 HSPLjava/util/Calendar;->clear()V
 HSPLjava/util/Calendar;->clone()Ljava/lang/Object;
+HSPLjava/util/Calendar;->compareTo(J)I
+HSPLjava/util/Calendar;->compareTo(Ljava/util/Calendar;)I
 HSPLjava/util/Calendar;->complete()V
 HSPLjava/util/Calendar;->createCalendar(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
 HSPLjava/util/Calendar;->get(I)I
 HSPLjava/util/Calendar;->getFirstDayOfWeek()I
 HSPLjava/util/Calendar;->getInstance()Ljava/util/Calendar;
+HSPLjava/util/Calendar;->getInstance(Ljava/util/Locale;)Ljava/util/Calendar;
 HSPLjava/util/Calendar;->getInstance(Ljava/util/TimeZone;)Ljava/util/Calendar;
 HSPLjava/util/Calendar;->getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
+HSPLjava/util/Calendar;->getMillisOf(Ljava/util/Calendar;)J
 HSPLjava/util/Calendar;->getMinimalDaysInFirstWeek()I
 HSPLjava/util/Calendar;->getSetStateFields()I
 HSPLjava/util/Calendar;->getTime()Ljava/util/Date;
@@ -19597,12 +39891,14 @@
 HSPLjava/util/Calendar;->getZone()Ljava/util/TimeZone;
 HSPLjava/util/Calendar;->internalGet(I)I
 HSPLjava/util/Calendar;->internalSet(II)V
+HSPLjava/util/Calendar;->isExternallySet(I)Z
 HSPLjava/util/Calendar;->isFieldSet(II)Z
 HSPLjava/util/Calendar;->isLenient()Z
 HSPLjava/util/Calendar;->isPartiallyNormalized()Z
 HSPLjava/util/Calendar;->isSet(I)Z
 HSPLjava/util/Calendar;->selectFields()I
 HSPLjava/util/Calendar;->set(II)V
+HSPLjava/util/Calendar;->set(III)V
 HSPLjava/util/Calendar;->set(IIIIII)V
 HSPLjava/util/Calendar;->setFieldsComputed(I)V
 HSPLjava/util/Calendar;->setFieldsNormalized(I)V
@@ -19628,6 +39924,7 @@
 HSPLjava/util/Collections$CopiesList;->toArray()[Ljava/lang/Object;
 HSPLjava/util/Collections$EmptyEnumeration;->hasMoreElements()Z
 HSPLjava/util/Collections$EmptyIterator;->hasNext()Z
+HSPLjava/util/Collections$EmptyList;->contains(Ljava/lang/Object;)Z
 HSPLjava/util/Collections$EmptyList;->containsAll(Ljava/util/Collection;)Z
 HSPLjava/util/Collections$EmptyList;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/Collections$EmptyList;->isEmpty()Z
@@ -19635,9 +39932,11 @@
 HSPLjava/util/Collections$EmptyList;->listIterator()Ljava/util/ListIterator;
 HSPLjava/util/Collections$EmptyList;->readResolve()Ljava/lang/Object;
 HSPLjava/util/Collections$EmptyList;->size()I
+HSPLjava/util/Collections$EmptyList;->sort(Ljava/util/Comparator;)V
 HSPLjava/util/Collections$EmptyList;->toArray()[Ljava/lang/Object;
 HSPLjava/util/Collections$EmptyList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
 HSPLjava/util/Collections$EmptyMap;->containsKey(Ljava/lang/Object;)Z
+HSPLjava/util/Collections$EmptyMap;->containsValue(Ljava/lang/Object;)Z
 HSPLjava/util/Collections$EmptyMap;->entrySet()Ljava/util/Set;
 HSPLjava/util/Collections$EmptyMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/Collections$EmptyMap;->isEmpty()Z
@@ -19645,6 +39944,7 @@
 HSPLjava/util/Collections$EmptyMap;->size()I
 HSPLjava/util/Collections$EmptyMap;->values()Ljava/util/Collection;
 HSPLjava/util/Collections$EmptySet;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/Collections$EmptySet;->containsAll(Ljava/util/Collection;)Z
 HSPLjava/util/Collections$EmptySet;->isEmpty()Z
 HSPLjava/util/Collections$EmptySet;->iterator()Ljava/util/Iterator;
 HSPLjava/util/Collections$EmptySet;->size()I
@@ -19662,6 +39962,7 @@
 HSPLjava/util/Collections$SetFromMap;->iterator()Ljava/util/Iterator;
 HSPLjava/util/Collections$SetFromMap;->remove(Ljava/lang/Object;)Z
 HSPLjava/util/Collections$SetFromMap;->size()I
+HPLjava/util/Collections$SetFromMap;->stream()Ljava/util/stream/Stream;
 HSPLjava/util/Collections$SetFromMap;->toArray()[Ljava/lang/Object;
 HSPLjava/util/Collections$SetFromMap;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
 HSPLjava/util/Collections$SingletonList;-><init>(Ljava/lang/Object;)V
@@ -19674,6 +39975,7 @@
 HSPLjava/util/Collections$SingletonMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/Collections$SingletonMap;->keySet()Ljava/util/Set;
 HSPLjava/util/Collections$SingletonMap;->size()I
+HSPLjava/util/Collections$SingletonMap;->values()Ljava/util/Collection;
 HSPLjava/util/Collections$SingletonSet;-><init>(Ljava/lang/Object;)V
 HSPLjava/util/Collections$SingletonSet;->contains(Ljava/lang/Object;)Z
 HSPLjava/util/Collections$SingletonSet;->iterator()Ljava/util/Iterator;
@@ -19681,6 +39983,7 @@
 HSPLjava/util/Collections$SynchronizedCollection;-><init>(Ljava/util/Collection;)V
 HSPLjava/util/Collections$SynchronizedCollection;-><init>(Ljava/util/Collection;Ljava/lang/Object;)V
 HSPLjava/util/Collections$SynchronizedCollection;->add(Ljava/lang/Object;)Z
+HSPLjava/util/Collections$SynchronizedCollection;->addAll(Ljava/util/Collection;)Z
 HSPLjava/util/Collections$SynchronizedCollection;->clear()V
 HSPLjava/util/Collections$SynchronizedCollection;->contains(Ljava/lang/Object;)Z
 HSPLjava/util/Collections$SynchronizedCollection;->isEmpty()Z
@@ -19690,11 +39993,14 @@
 HSPLjava/util/Collections$SynchronizedCollection;->toArray()[Ljava/lang/Object;
 HSPLjava/util/Collections$SynchronizedCollection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
 HSPLjava/util/Collections$SynchronizedList;-><init>(Ljava/util/List;)V
+HSPLjava/util/Collections$SynchronizedList;->get(I)Ljava/lang/Object;
 HSPLjava/util/Collections$SynchronizedMap;-><init>(Ljava/util/Map;)V
 HSPLjava/util/Collections$SynchronizedMap;->clear()V
 HSPLjava/util/Collections$SynchronizedMap;->containsKey(Ljava/lang/Object;)Z
+HSPLjava/util/Collections$SynchronizedMap;->entrySet()Ljava/util/Set;
 HSPLjava/util/Collections$SynchronizedMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/Collections$SynchronizedMap;->isEmpty()Z
+HSPLjava/util/Collections$SynchronizedMap;->keySet()Ljava/util/Set;
 HSPLjava/util/Collections$SynchronizedMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/Collections$SynchronizedMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/Collections$SynchronizedMap;->size()I
@@ -19702,6 +40008,7 @@
 HSPLjava/util/Collections$SynchronizedRandomAccessList;-><init>(Ljava/util/List;)V
 HSPLjava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;)V
 HSPLjava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;Ljava/lang/Object;)V
+HSPLjava/util/Collections$SynchronizedSet;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/Collections$UnmodifiableCollection$1;-><init>(Ljava/util/Collections$UnmodifiableCollection;)V
 HSPLjava/util/Collections$UnmodifiableCollection$1;->hasNext()Z
 HSPLjava/util/Collections$UnmodifiableCollection$1;->next()Ljava/lang/Object;
@@ -19711,6 +40018,7 @@
 HSPLjava/util/Collections$UnmodifiableCollection;->isEmpty()Z
 HSPLjava/util/Collections$UnmodifiableCollection;->iterator()Ljava/util/Iterator;
 HSPLjava/util/Collections$UnmodifiableCollection;->size()I
+HSPLjava/util/Collections$UnmodifiableCollection;->stream()Ljava/util/stream/Stream;
 HSPLjava/util/Collections$UnmodifiableCollection;->toArray()[Ljava/lang/Object;
 HSPLjava/util/Collections$UnmodifiableCollection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
 HSPLjava/util/Collections$UnmodifiableCollection;->toString()Ljava/lang/String;
@@ -19737,6 +40045,7 @@
 HSPLjava/util/Collections$UnmodifiableMap;->containsKey(Ljava/lang/Object;)Z
 HSPLjava/util/Collections$UnmodifiableMap;->entrySet()Ljava/util/Set;
 HSPLjava/util/Collections$UnmodifiableMap;->equals(Ljava/lang/Object;)Z
+HSPLjava/util/Collections$UnmodifiableMap;->forEach(Ljava/util/function/BiConsumer;)V
 HSPLjava/util/Collections$UnmodifiableMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/Collections$UnmodifiableMap;->hashCode()I
 HSPLjava/util/Collections$UnmodifiableMap;->isEmpty()Z
@@ -19764,11 +40073,16 @@
 HSPLjava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;)I
 HSPLjava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I
 HSPLjava/util/Collections;->list(Ljava/util/Enumeration;)Ljava/util/ArrayList;
+HSPLjava/util/Collections;->max(Ljava/util/Collection;)Ljava/lang/Object;
+HSPLjava/util/Collections;->max(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object;
+HSPLjava/util/Collections;->min(Ljava/util/Collection;)Ljava/lang/Object;
+HSPLjava/util/Collections;->min(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object;
 HSPLjava/util/Collections;->nCopies(ILjava/lang/Object;)Ljava/util/List;
 HSPLjava/util/Collections;->newSetFromMap(Ljava/util/Map;)Ljava/util/Set;
 HSPLjava/util/Collections;->reverse(Ljava/util/List;)V
 HSPLjava/util/Collections;->reverseOrder()Ljava/util/Comparator;
 HSPLjava/util/Collections;->reverseOrder(Ljava/util/Comparator;)Ljava/util/Comparator;
+HSPLjava/util/Collections;->shuffle(Ljava/util/List;)V
 HSPLjava/util/Collections;->shuffle(Ljava/util/List;Ljava/util/Random;)V
 HSPLjava/util/Collections;->singleton(Ljava/lang/Object;)Ljava/util/Set;
 HSPLjava/util/Collections;->singletonIterator(Ljava/lang/Object;)Ljava/util/Iterator;
@@ -19804,9 +40118,21 @@
 HSPLjava/util/ComparableTimSort;->pushRun(II)V
 HSPLjava/util/ComparableTimSort;->reverseRange([Ljava/lang/Object;II)V
 HSPLjava/util/ComparableTimSort;->sort([Ljava/lang/Object;II[Ljava/lang/Object;II)V
+HSPLjava/util/Comparator;->comparing(Ljava/util/function/Function;)Ljava/util/Comparator;
 HSPLjava/util/Comparator;->comparingInt(Ljava/util/function/ToIntFunction;)Ljava/util/Comparator;
+HSPLjava/util/Comparator;->comparingLong(Ljava/util/function/ToLongFunction;)Ljava/util/Comparator;
+HSPLjava/util/Comparator;->lambda$comparing$77a9974f$1(Ljava/util/function/Function;Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLjava/util/Comparator;->lambda$comparingInt$7b0bb60$1(Ljava/util/function/ToIntFunction;Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLjava/util/Comparator;->lambda$thenComparing$36697e65$1(Ljava/util/Comparator;Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLjava/util/Comparator;->naturalOrder()Ljava/util/Comparator;
+HPLjava/util/Comparator;->nullsLast(Ljava/util/Comparator;)Ljava/util/Comparator;
+HSPLjava/util/Comparator;->reversed()Ljava/util/Comparator;
+HSPLjava/util/Comparator;->thenComparing(Ljava/util/Comparator;)Ljava/util/Comparator;
+HPLjava/util/Comparators$NullComparator;-><init>(ZLjava/util/Comparator;)V
+HPLjava/util/Comparators$NullComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLjava/util/Currency;-><init>(Landroid/icu/util/Currency;)V
 HSPLjava/util/Currency;->getCurrencyCode()Ljava/lang/String;
+HSPLjava/util/Currency;->getDefaultFractionDigits()I
 HSPLjava/util/Currency;->getInstance(Ljava/lang/String;)Ljava/util/Currency;
 HSPLjava/util/Currency;->getInstance(Ljava/util/Locale;)Ljava/util/Currency;
 HSPLjava/util/Currency;->getSymbol(Ljava/util/Locale;)Ljava/lang/String;
@@ -19817,17 +40143,29 @@
 HSPLjava/util/Date;->clone()Ljava/lang/Object;
 HSPLjava/util/Date;->compareTo(Ljava/util/Date;)I
 HSPLjava/util/Date;->convertToAbbr(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/StringBuilder;
+HSPLjava/util/Date;->equals(Ljava/lang/Object;)Z
+HSPLjava/util/Date;->from(Ljava/time/Instant;)Ljava/util/Date;
+HSPLjava/util/Date;->getCalendarSystem(I)Lsun/util/calendar/BaseCalendar;
 HSPLjava/util/Date;->getCalendarSystem(J)Lsun/util/calendar/BaseCalendar;
+HSPLjava/util/Date;->getDate()I
+HSPLjava/util/Date;->getHours()I
 HSPLjava/util/Date;->getMillisOf(Ljava/util/Date;)J
+HSPLjava/util/Date;->getMinutes()I
+HSPLjava/util/Date;->getMonth()I
+HSPLjava/util/Date;->getSeconds()I
 HSPLjava/util/Date;->getTime()J
 HSPLjava/util/Date;->getTimeImpl()J
+HSPLjava/util/Date;->getYear()I
 HSPLjava/util/Date;->normalize()Lsun/util/calendar/BaseCalendar$Date;
 HSPLjava/util/Date;->setTime(J)V
 HSPLjava/util/Date;->toString()Ljava/lang/String;
 HSPLjava/util/Dictionary;-><init>()V
 HSPLjava/util/DualPivotQuicksort;->doSort([CII[CII)V
+HSPLjava/util/DualPivotQuicksort;->doSort([FII[FII)V
 HSPLjava/util/DualPivotQuicksort;->sort([CIIZ)V
 HSPLjava/util/DualPivotQuicksort;->sort([CII[CII)V
+HSPLjava/util/DualPivotQuicksort;->sort([FIIZ)V
+HSPLjava/util/DualPivotQuicksort;->sort([FII[FII)V
 HSPLjava/util/DualPivotQuicksort;->sort([IIIZ)V
 HSPLjava/util/DualPivotQuicksort;->sort([III[III)V
 HSPLjava/util/DualPivotQuicksort;->sort([JIIZ)V
@@ -19850,14 +40188,24 @@
 HSPLjava/util/EnumMap$EnumMapIterator;->hasNext()Z
 HSPLjava/util/EnumMap$KeyIterator;-><init>(Ljava/util/EnumMap;)V
 HSPLjava/util/EnumMap$KeyIterator;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap$1;)V
+HSPLjava/util/EnumMap$KeyIterator;->next()Ljava/lang/Enum;
+HSPLjava/util/EnumMap$KeyIterator;->next()Ljava/lang/Object;
 HSPLjava/util/EnumMap$KeySet;-><init>(Ljava/util/EnumMap;)V
 HSPLjava/util/EnumMap$KeySet;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap$1;)V
 HSPLjava/util/EnumMap$KeySet;->iterator()Ljava/util/Iterator;
+HSPLjava/util/EnumMap$ValueIterator;-><init>(Ljava/util/EnumMap;)V
+HSPLjava/util/EnumMap$ValueIterator;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap$1;)V
+HSPLjava/util/EnumMap$ValueIterator;->next()Ljava/lang/Object;
+HSPLjava/util/EnumMap$Values;-><init>(Ljava/util/EnumMap;)V
+HSPLjava/util/EnumMap$Values;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap$1;)V
+HSPLjava/util/EnumMap$Values;->iterator()Ljava/util/Iterator;
 HSPLjava/util/EnumMap;-><init>(Ljava/lang/Class;)V
+HSPLjava/util/EnumMap;-><init>(Ljava/util/Map;)V
 HSPLjava/util/EnumMap;->access$1100(Ljava/util/EnumMap;)[Ljava/lang/Enum;
 HSPLjava/util/EnumMap;->access$1200(Ljava/util/EnumMap;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/EnumMap;->access$200(Ljava/util/EnumMap;)I
 HSPLjava/util/EnumMap;->access$600(Ljava/util/EnumMap;)[Ljava/lang/Object;
+HSPLjava/util/EnumMap;->clear()V
 HSPLjava/util/EnumMap;->containsKey(Ljava/lang/Object;)Z
 HSPLjava/util/EnumMap;->entrySet()Ljava/util/Set;
 HSPLjava/util/EnumMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
@@ -19867,12 +40215,16 @@
 HSPLjava/util/EnumMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/EnumMap;->put(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/EnumMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/EnumMap;->putAll(Ljava/util/Map;)V
+HSPLjava/util/EnumMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/EnumMap;->size()I
 HSPLjava/util/EnumMap;->typeCheck(Ljava/lang/Enum;)V
 HSPLjava/util/EnumMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/EnumMap;->values()Ljava/util/Collection;
 HSPLjava/util/EnumSet;-><init>(Ljava/lang/Class;[Ljava/lang/Enum;)V
 HSPLjava/util/EnumSet;->allOf(Ljava/lang/Class;)Ljava/util/EnumSet;
 HSPLjava/util/EnumSet;->clone()Ljava/util/EnumSet;
+HSPLjava/util/EnumSet;->complementOf(Ljava/util/EnumSet;)Ljava/util/EnumSet;
 HSPLjava/util/EnumSet;->copyOf(Ljava/util/Collection;)Ljava/util/EnumSet;
 HSPLjava/util/EnumSet;->copyOf(Ljava/util/EnumSet;)Ljava/util/EnumSet;
 HSPLjava/util/EnumSet;->getUniverse(Ljava/lang/Class;)[Ljava/lang/Enum;
@@ -19880,6 +40232,7 @@
 HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;)Ljava/util/EnumSet;
 HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
 HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
+HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
 HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;[Ljava/lang/Enum;)Ljava/util/EnumSet;
 HSPLjava/util/EnumSet;->typeCheck(Ljava/lang/Enum;)V
 HSPLjava/util/Formatter$Conversion;->isCharacter(C)Z
@@ -19888,6 +40241,7 @@
 HSPLjava/util/Formatter$Conversion;->isInteger(C)Z
 HSPLjava/util/Formatter$Conversion;->isText(C)Z
 HSPLjava/util/Formatter$Conversion;->isValid(C)Z
+HSPLjava/util/Formatter$DateTime;->isValid(C)Z
 HSPLjava/util/Formatter$FixedString;-><init>(Ljava/util/Formatter;Ljava/lang/String;)V
 HSPLjava/util/Formatter$FixedString;->index()I
 HSPLjava/util/Formatter$FixedString;->print(Ljava/lang/Object;Ljava/util/Locale;)V
@@ -19903,6 +40257,7 @@
 HSPLjava/util/Formatter$FormatSpecifier;->adjustWidth(ILjava/util/Formatter$Flags;Z)I
 HSPLjava/util/Formatter$FormatSpecifier;->checkBadFlags([Ljava/util/Formatter$Flags;)V
 HSPLjava/util/Formatter$FormatSpecifier;->checkCharacter()V
+HSPLjava/util/Formatter$FormatSpecifier;->checkDateTime()V
 HSPLjava/util/Formatter$FormatSpecifier;->checkFloat()V
 HSPLjava/util/Formatter$FormatSpecifier;->checkGeneral()V
 HSPLjava/util/Formatter$FormatSpecifier;->checkInteger()V
@@ -19915,6 +40270,7 @@
 HSPLjava/util/Formatter$FormatSpecifier;->index(Ljava/lang/String;)I
 HSPLjava/util/Formatter$FormatSpecifier;->justify(Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/util/Formatter$FormatSpecifier;->leadingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
+HSPLjava/util/Formatter$FormatSpecifier;->localizedMagnitude(Ljava/lang/StringBuilder;JLjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder;
 HSPLjava/util/Formatter$FormatSpecifier;->localizedMagnitude(Ljava/lang/StringBuilder;[CLjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder;
 HSPLjava/util/Formatter$FormatSpecifier;->precision(Ljava/lang/String;)I
 HSPLjava/util/Formatter$FormatSpecifier;->print(BLjava/util/Locale;)V
@@ -19925,8 +40281,13 @@
 HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/Object;Ljava/util/Locale;)V
 HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/String;)V
 HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;DLjava/util/Locale;Ljava/util/Formatter$Flags;CIZ)V
+HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;Ljava/util/Calendar;CLjava/util/Locale;)Ljava/lang/Appendable;
+HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/math/BigInteger;Ljava/util/Locale;)V
+HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/util/Calendar;CLjava/util/Locale;)V
+HSPLjava/util/Formatter$FormatSpecifier;->print(SLjava/util/Locale;)V
 HSPLjava/util/Formatter$FormatSpecifier;->printBoolean(Ljava/lang/Object;)V
 HSPLjava/util/Formatter$FormatSpecifier;->printCharacter(Ljava/lang/Object;)V
+HSPLjava/util/Formatter$FormatSpecifier;->printDateTime(Ljava/lang/Object;Ljava/util/Locale;)V
 HSPLjava/util/Formatter$FormatSpecifier;->printFloat(Ljava/lang/Object;Ljava/util/Locale;)V
 HSPLjava/util/Formatter$FormatSpecifier;->printInteger(Ljava/lang/Object;Ljava/util/Locale;)V
 HSPLjava/util/Formatter$FormatSpecifier;->printString(Ljava/lang/Object;Ljava/util/Locale;)V
@@ -19948,6 +40309,7 @@
 HSPLjava/util/Formatter;-><init>(Ljava/util/Locale;Ljava/lang/Appendable;)V
 HSPLjava/util/Formatter;->access$000(Ljava/util/Formatter;)Ljava/lang/Appendable;
 HSPLjava/util/Formatter;->access$400(Ljava/util/Formatter;)C
+HSPLjava/util/Formatter;->close()V
 HSPLjava/util/Formatter;->ensureOpen()V
 HSPLjava/util/Formatter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
 HSPLjava/util/Formatter;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
@@ -19958,6 +40320,7 @@
 HSPLjava/util/Formatter;->parse(Ljava/lang/String;)[Ljava/util/Formatter$FormatString;
 HSPLjava/util/Formatter;->toString()Ljava/lang/String;
 HSPLjava/util/GregorianCalendar;-><init>()V
+HSPLjava/util/GregorianCalendar;-><init>(III)V
 HSPLjava/util/GregorianCalendar;-><init>(IIIIII)V
 HSPLjava/util/GregorianCalendar;-><init>(IIIIIII)V
 HSPLjava/util/GregorianCalendar;-><init>(Ljava/util/TimeZone;)V
@@ -20009,11 +40372,25 @@
 HSPLjava/util/HashMap$Node;->getValue()Ljava/lang/Object;
 HSPLjava/util/HashMap$Node;->hashCode()I
 HSPLjava/util/HashMap$Node;->setValue(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/HashMap$TreeNode;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V
+HSPLjava/util/HashMap$TreeNode;->balanceInsertion(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
+HSPLjava/util/HashMap$TreeNode;->find(ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/HashMap$TreeNode;
+HSPLjava/util/HashMap$TreeNode;->moveRootToFront([Ljava/util/HashMap$Node;Ljava/util/HashMap$TreeNode;)V
+HSPLjava/util/HashMap$TreeNode;->putTreeVal(Ljava/util/HashMap;[Ljava/util/HashMap$Node;ILjava/lang/Object;Ljava/lang/Object;)Ljava/util/HashMap$TreeNode;
+HSPLjava/util/HashMap$TreeNode;->rotateLeft(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
+HSPLjava/util/HashMap$TreeNode;->rotateRight(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
+HSPLjava/util/HashMap$TreeNode;->split(Ljava/util/HashMap;[Ljava/util/HashMap$Node;II)V
+HSPLjava/util/HashMap$TreeNode;->treeify([Ljava/util/HashMap$Node;)V
+HSPLjava/util/HashMap$TreeNode;->untreeify(Ljava/util/HashMap;)Ljava/util/HashMap$Node;
 HSPLjava/util/HashMap$ValueIterator;-><init>(Ljava/util/HashMap;)V
 HSPLjava/util/HashMap$ValueIterator;->next()Ljava/lang/Object;
 HSPLjava/util/HashMap$ValueSpliterator;-><init>(Ljava/util/HashMap;IIII)V
 HSPLjava/util/HashMap$ValueSpliterator;->characteristics()I
+HSPLjava/util/HashMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+HSPLjava/util/HashMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
 HSPLjava/util/HashMap$Values;-><init>(Ljava/util/HashMap;)V
+HSPLjava/util/HashMap$Values;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/HashMap$Values;->forEach(Ljava/util/function/Consumer;)V
 HSPLjava/util/HashMap$Values;->iterator()Ljava/util/Iterator;
 HSPLjava/util/HashMap$Values;->size()I
 HSPLjava/util/HashMap$Values;->spliterator()Ljava/util/Spliterator;
@@ -20027,6 +40404,7 @@
 HSPLjava/util/HashMap;->capacity()I
 HSPLjava/util/HashMap;->clear()V
 HSPLjava/util/HashMap;->clone()Ljava/lang/Object;
+HSPLjava/util/HashMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
 HSPLjava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
 HSPLjava/util/HashMap;->containsValue(Ljava/lang/Object;)Z
 HSPLjava/util/HashMap;->entrySet()Ljava/util/Set;
@@ -20038,7 +40416,10 @@
 HSPLjava/util/HashMap;->internalWriteEntries(Ljava/io/ObjectOutputStream;)V
 HSPLjava/util/HashMap;->isEmpty()Z
 HSPLjava/util/HashMap;->keySet()Ljava/util/Set;
+HSPLjava/util/HashMap;->loadFactor()F
+HSPLjava/util/HashMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
 HSPLjava/util/HashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
+HSPLjava/util/HashMap;->newTreeNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
 HSPLjava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/HashMap;->putAll(Ljava/util/Map;)V
 HSPLjava/util/HashMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
@@ -20048,6 +40429,8 @@
 HSPLjava/util/HashMap;->reinitialize()V
 HSPLjava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/HashMap;->removeNode(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/util/HashMap$Node;
+HSPLjava/util/HashMap;->replacementNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
+HSPLjava/util/HashMap;->replacementTreeNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
 HSPLjava/util/HashMap;->resize()[Ljava/util/HashMap$Node;
 HSPLjava/util/HashMap;->size()I
 HSPLjava/util/HashMap;->tableSizeFor(I)I
@@ -20065,9 +40448,11 @@
 HSPLjava/util/HashSet;->contains(Ljava/lang/Object;)Z
 HSPLjava/util/HashSet;->isEmpty()Z
 HSPLjava/util/HashSet;->iterator()Ljava/util/Iterator;
+HSPLjava/util/HashSet;->readObject(Ljava/io/ObjectInputStream;)V
 HSPLjava/util/HashSet;->remove(Ljava/lang/Object;)Z
 HSPLjava/util/HashSet;->size()I
 HSPLjava/util/HashSet;->spliterator()Ljava/util/Spliterator;
+HSPLjava/util/HashSet;->writeObject(Ljava/io/ObjectOutputStream;)V
 HSPLjava/util/Hashtable$EntrySet;-><init>(Ljava/util/Hashtable;)V
 HSPLjava/util/Hashtable$EntrySet;-><init>(Ljava/util/Hashtable;Ljava/util/Hashtable$1;)V
 HSPLjava/util/Hashtable$EntrySet;->iterator()Ljava/util/Iterator;
@@ -20128,9 +40513,11 @@
 HSPLjava/util/IdentityHashMap$IdentityHashMapIterator;->nextIndex()I
 HSPLjava/util/IdentityHashMap$KeyIterator;-><init>(Ljava/util/IdentityHashMap;)V
 HSPLjava/util/IdentityHashMap$KeyIterator;-><init>(Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap$1;)V
+HSPLjava/util/IdentityHashMap$KeyIterator;->next()Ljava/lang/Object;
 HSPLjava/util/IdentityHashMap$KeySet;-><init>(Ljava/util/IdentityHashMap;)V
 HSPLjava/util/IdentityHashMap$KeySet;-><init>(Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap$1;)V
 HSPLjava/util/IdentityHashMap$KeySet;->iterator()Ljava/util/Iterator;
+HSPLjava/util/IdentityHashMap$KeySet;->size()I
 HSPLjava/util/IdentityHashMap$ValueIterator;-><init>(Ljava/util/IdentityHashMap;)V
 HSPLjava/util/IdentityHashMap$ValueIterator;-><init>(Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap$1;)V
 HSPLjava/util/IdentityHashMap$ValueIterator;->next()Ljava/lang/Object;
@@ -20154,6 +40541,7 @@
 HSPLjava/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/IdentityHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/IdentityHashMap;->resize(I)Z
+HSPLjava/util/IdentityHashMap;->size()I
 HSPLjava/util/IdentityHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/IdentityHashMap;->values()Ljava/util/Collection;
 HSPLjava/util/Iterator;->forEachRemaining(Ljava/util/function/Consumer;)V
@@ -20163,6 +40551,7 @@
 HSPLjava/util/LinkedHashMap$LinkedEntrySet;-><init>(Ljava/util/LinkedHashMap;)V
 HSPLjava/util/LinkedHashMap$LinkedEntrySet;->iterator()Ljava/util/Iterator;
 HSPLjava/util/LinkedHashMap$LinkedEntrySet;->size()I
+HSPLjava/util/LinkedHashMap$LinkedEntrySet;->spliterator()Ljava/util/Spliterator;
 HSPLjava/util/LinkedHashMap$LinkedHashIterator;-><init>(Ljava/util/LinkedHashMap;)V
 HSPLjava/util/LinkedHashMap$LinkedHashIterator;->hasNext()Z
 HSPLjava/util/LinkedHashMap$LinkedHashIterator;->nextNode()Ljava/util/LinkedHashMap$LinkedHashMapEntry;
@@ -20171,6 +40560,7 @@
 HSPLjava/util/LinkedHashMap$LinkedKeyIterator;-><init>(Ljava/util/LinkedHashMap;)V
 HSPLjava/util/LinkedHashMap$LinkedKeyIterator;->next()Ljava/lang/Object;
 HSPLjava/util/LinkedHashMap$LinkedKeySet;-><init>(Ljava/util/LinkedHashMap;)V
+HSPLjava/util/LinkedHashMap$LinkedKeySet;->contains(Ljava/lang/Object;)Z
 HSPLjava/util/LinkedHashMap$LinkedKeySet;->iterator()Ljava/util/Iterator;
 HSPLjava/util/LinkedHashMap$LinkedKeySet;->size()I
 HSPLjava/util/LinkedHashMap$LinkedValueIterator;-><init>(Ljava/util/LinkedHashMap;)V
@@ -20198,14 +40588,22 @@
 HSPLjava/util/LinkedHashMap;->values()Ljava/util/Collection;
 HSPLjava/util/LinkedHashSet;-><init>()V
 HSPLjava/util/LinkedHashSet;-><init>(I)V
+HSPLjava/util/LinkedHashSet;-><init>(IF)V
 HSPLjava/util/LinkedHashSet;-><init>(Ljava/util/Collection;)V
+HSPLjava/util/LinkedList$LLSpliterator;-><init>(Ljava/util/LinkedList;II)V
+HSPLjava/util/LinkedList$LLSpliterator;->characteristics()I
+HSPLjava/util/LinkedList$LLSpliterator;->estimateSize()J
+HSPLjava/util/LinkedList$LLSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+HSPLjava/util/LinkedList$LLSpliterator;->getEst()I
 HSPLjava/util/LinkedList$ListItr;-><init>(Ljava/util/LinkedList;I)V
+HSPLjava/util/LinkedList$ListItr;->add(Ljava/lang/Object;)V
 HSPLjava/util/LinkedList$ListItr;->checkForComodification()V
 HSPLjava/util/LinkedList$ListItr;->hasNext()Z
 HSPLjava/util/LinkedList$ListItr;->hasPrevious()Z
 HSPLjava/util/LinkedList$ListItr;->next()Ljava/lang/Object;
 HSPLjava/util/LinkedList$ListItr;->previous()Ljava/lang/Object;
 HSPLjava/util/LinkedList$ListItr;->remove()V
+HSPLjava/util/LinkedList$ListItr;->set(Ljava/lang/Object;)V
 HSPLjava/util/LinkedList$Node;-><init>(Ljava/util/LinkedList$Node;Ljava/lang/Object;Ljava/util/LinkedList$Node;)V
 HSPLjava/util/LinkedList;-><init>()V
 HSPLjava/util/LinkedList;-><init>(Ljava/util/Collection;)V
@@ -20226,24 +40624,43 @@
 HSPLjava/util/LinkedList;->indexOf(Ljava/lang/Object;)I
 HSPLjava/util/LinkedList;->isElementIndex(I)Z
 HSPLjava/util/LinkedList;->isPositionIndex(I)Z
+HSPLjava/util/LinkedList;->linkBefore(Ljava/lang/Object;Ljava/util/LinkedList$Node;)V
 HSPLjava/util/LinkedList;->linkFirst(Ljava/lang/Object;)V
 HSPLjava/util/LinkedList;->linkLast(Ljava/lang/Object;)V
 HSPLjava/util/LinkedList;->listIterator(I)Ljava/util/ListIterator;
 HSPLjava/util/LinkedList;->node(I)Ljava/util/LinkedList$Node;
 HSPLjava/util/LinkedList;->offer(Ljava/lang/Object;)Z
+HSPLjava/util/LinkedList;->offerFirst(Ljava/lang/Object;)Z
 HSPLjava/util/LinkedList;->peek()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->peekFirst()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->peekLast()Ljava/lang/Object;
 HSPLjava/util/LinkedList;->poll()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->pollFirst()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->pollLast()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->pop()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->push(Ljava/lang/Object;)V
 HSPLjava/util/LinkedList;->remove()Ljava/lang/Object;
 HSPLjava/util/LinkedList;->remove(I)Ljava/lang/Object;
 HSPLjava/util/LinkedList;->remove(Ljava/lang/Object;)Z
 HSPLjava/util/LinkedList;->removeFirst()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->removeLast()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->set(ILjava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/LinkedList;->size()I
+HSPLjava/util/LinkedList;->spliterator()Ljava/util/Spliterator;
 HSPLjava/util/LinkedList;->superClone()Ljava/util/LinkedList;
 HSPLjava/util/LinkedList;->toArray()[Ljava/lang/Object;
 HSPLjava/util/LinkedList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
 HSPLjava/util/LinkedList;->unlink(Ljava/util/LinkedList$Node;)Ljava/lang/Object;
 HSPLjava/util/LinkedList;->unlinkFirst(Ljava/util/LinkedList$Node;)Ljava/lang/Object;
 HSPLjava/util/LinkedList;->unlinkLast(Ljava/util/LinkedList$Node;)Ljava/lang/Object;
+HSPLjava/util/List;->sort(Ljava/util/Comparator;)V
+HSPLjava/util/List;->spliterator()Ljava/util/Spliterator;
+HSPLjava/util/Locale$Builder;-><init>()V
+HSPLjava/util/Locale$Builder;->build()Ljava/util/Locale;
+HSPLjava/util/Locale$Builder;->setLanguage(Ljava/lang/String;)Ljava/util/Locale$Builder;
+HSPLjava/util/Locale$Builder;->setRegion(Ljava/lang/String;)Ljava/util/Locale$Builder;
+HSPLjava/util/Locale$Builder;->setScript(Ljava/lang/String;)Ljava/util/Locale$Builder;
+HSPLjava/util/Locale$Builder;->setVariant(Ljava/lang/String;)Ljava/util/Locale$Builder;
 HSPLjava/util/Locale$Cache;->createObject(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/Locale$Cache;->createObject(Ljava/util/Locale$LocaleKey;)Ljava/util/Locale;
 HSPLjava/util/Locale$LocaleKey;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)V
@@ -20257,16 +40674,25 @@
 HSPLjava/util/Locale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLjava/util/Locale;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)V
 HSPLjava/util/Locale;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;Ljava/util/Locale$1;)V
+HSPLjava/util/Locale;->access$700(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lsun/util/locale/LocaleExtensions;
 HSPLjava/util/Locale;->adjustLanguageCode(Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/util/Locale;->clone()Ljava/lang/Object;
 HSPLjava/util/Locale;->convertOldISOCodes(Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/util/Locale;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/Locale;->forLanguageTag(Ljava/lang/String;)Ljava/util/Locale;
+HSPLjava/util/Locale;->getAvailableLocales()[Ljava/util/Locale;
+HSPLjava/util/Locale;->getBaseLocale()Lsun/util/locale/BaseLocale;
 HSPLjava/util/Locale;->getCompatibilityExtensions(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lsun/util/locale/LocaleExtensions;
 HSPLjava/util/Locale;->getCountry()Ljava/lang/String;
 HSPLjava/util/Locale;->getDefault()Ljava/util/Locale;
 HSPLjava/util/Locale;->getDefault(Ljava/util/Locale$Category;)Ljava/util/Locale;
+HSPLjava/util/Locale;->getDisplayCountry(Ljava/util/Locale;)Ljava/lang/String;
+HSPLjava/util/Locale;->getDisplayLanguage()Ljava/lang/String;
+HSPLjava/util/Locale;->getDisplayLanguage(Ljava/util/Locale;)Ljava/lang/String;
+HSPLjava/util/Locale;->getDisplayName()Ljava/lang/String;
+HSPLjava/util/Locale;->getDisplayName(Ljava/util/Locale;)Ljava/lang/String;
 HSPLjava/util/Locale;->getExtensionKeys()Ljava/util/Set;
+HSPLjava/util/Locale;->getISO3Country()Ljava/lang/String;
 HSPLjava/util/Locale;->getISO3Language()Ljava/lang/String;
 HSPLjava/util/Locale;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lsun/util/locale/LocaleExtensions;)Ljava/util/Locale;
 HSPLjava/util/Locale;->getInstance(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)Ljava/util/Locale;
@@ -20276,25 +40702,42 @@
 HSPLjava/util/Locale;->hasExtensions()Z
 HSPLjava/util/Locale;->hashCode()I
 HSPLjava/util/Locale;->isValidBcp47Alpha(Ljava/lang/String;II)Z
+HSPLjava/util/Locale;->normalizeAndValidateLanguage(Ljava/lang/String;Z)Ljava/lang/String;
+HSPLjava/util/Locale;->normalizeAndValidateRegion(Ljava/lang/String;Z)Ljava/lang/String;
+HSPLjava/util/Locale;->readObject(Ljava/io/ObjectInputStream;)V
+HSPLjava/util/Locale;->readResolve()Ljava/lang/Object;
 HSPLjava/util/Locale;->setDefault(Ljava/util/Locale$Category;Ljava/util/Locale;)V
 HSPLjava/util/Locale;->setDefault(Ljava/util/Locale;)V
 HSPLjava/util/Locale;->toLanguageTag()Ljava/lang/String;
 HSPLjava/util/Locale;->toString()Ljava/lang/String;
+HSPLjava/util/Locale;->writeObject(Ljava/io/ObjectOutputStream;)V
 HSPLjava/util/Map;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
+HSPLjava/util/Map;->forEach(Ljava/util/function/BiConsumer;)V
 HSPLjava/util/Map;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/MissingResourceException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLjava/util/NoSuchElementException;-><init>()V
+HSPLjava/util/NoSuchElementException;-><init>(Ljava/lang/String;)V
+HSPLjava/util/Objects;->checkIndex(II)I
+HSPLjava/util/Objects;->deepEquals(Ljava/lang/Object;Ljava/lang/Object;)Z
 HSPLjava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z
 HSPLjava/util/Objects;->hash([Ljava/lang/Object;)I
 HSPLjava/util/Objects;->hashCode(Ljava/lang/Object;)I
+HSPLjava/util/Objects;->nonNull(Ljava/lang/Object;)Z
 HSPLjava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/Objects;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
 HSPLjava/util/Objects;->toString(Ljava/lang/Object;)Ljava/lang/String;
 HSPLjava/util/Objects;->toString(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/util/Observable;-><init>()V
 HSPLjava/util/Observable;->addObserver(Ljava/util/Observer;)V
+HSPLjava/util/Observable;->clearChanged()V
+HSPLjava/util/Observable;->deleteObserver(Ljava/util/Observer;)V
+HSPLjava/util/Observable;->hasChanged()Z
+HSPLjava/util/Observable;->notifyObservers()V
+HSPLjava/util/Observable;->notifyObservers(Ljava/lang/Object;)V
+HSPLjava/util/Observable;->setChanged()V
 HSPLjava/util/Optional;-><init>(Ljava/lang/Object;)V
 HSPLjava/util/Optional;->empty()Ljava/util/Optional;
+HSPLjava/util/Optional;->flatMap(Ljava/util/function/Function;)Ljava/util/Optional;
 HSPLjava/util/Optional;->get()Ljava/lang/Object;
 HSPLjava/util/Optional;->ifPresent(Ljava/util/function/Consumer;)V
 HSPLjava/util/Optional;->isPresent()Z
@@ -20302,13 +40745,24 @@
 HSPLjava/util/Optional;->of(Ljava/lang/Object;)Ljava/util/Optional;
 HSPLjava/util/Optional;->ofNullable(Ljava/lang/Object;)Ljava/util/Optional;
 HSPLjava/util/Optional;->orElse(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/Optional;->orElseGet(Ljava/util/function/Supplier;)Ljava/lang/Object;
+HSPLjava/util/OptionalInt;-><clinit>()V
+HSPLjava/util/OptionalInt;-><init>()V
+HSPLjava/util/OptionalInt;-><init>(I)V
+HSPLjava/util/OptionalInt;->empty()Ljava/util/OptionalInt;
+HSPLjava/util/OptionalInt;->of(I)Ljava/util/OptionalInt;
 HSPLjava/util/PriorityQueue$Itr;-><init>(Ljava/util/PriorityQueue;)V
 HSPLjava/util/PriorityQueue$Itr;-><init>(Ljava/util/PriorityQueue;Ljava/util/PriorityQueue$1;)V
 HSPLjava/util/PriorityQueue$Itr;->hasNext()Z
 HSPLjava/util/PriorityQueue$Itr;->next()Ljava/lang/Object;
+HSPLjava/util/PriorityQueue$Itr;->remove()V
 HSPLjava/util/PriorityQueue;-><init>()V
+HSPLjava/util/PriorityQueue;-><init>(I)V
 HSPLjava/util/PriorityQueue;-><init>(ILjava/util/Comparator;)V
 HSPLjava/util/PriorityQueue;->add(Ljava/lang/Object;)Z
+HSPLjava/util/PriorityQueue;->clear()V
+HSPLjava/util/PriorityQueue;->comparator()Ljava/util/Comparator;
+HSPLjava/util/PriorityQueue;->contains(Ljava/lang/Object;)Z
 HSPLjava/util/PriorityQueue;->grow(I)V
 HSPLjava/util/PriorityQueue;->indexOf(Ljava/lang/Object;)I
 HSPLjava/util/PriorityQueue;->iterator()Ljava/util/Iterator;
@@ -20324,23 +40778,32 @@
 HSPLjava/util/PriorityQueue;->siftUpComparable(ILjava/lang/Object;)V
 HSPLjava/util/PriorityQueue;->siftUpUsingComparator(ILjava/lang/Object;)V
 HSPLjava/util/PriorityQueue;->size()I
+HSPLjava/util/PriorityQueue;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
 HSPLjava/util/Properties$LineReader;-><init>(Ljava/util/Properties;Ljava/io/InputStream;)V
+HSPLjava/util/Properties$LineReader;-><init>(Ljava/util/Properties;Ljava/io/Reader;)V
 HSPLjava/util/Properties$LineReader;->readLine()I
 HSPLjava/util/Properties;-><init>()V
 HSPLjava/util/Properties;-><init>(Ljava/util/Properties;)V
 HSPLjava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/util/Properties;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/util/Properties;->load(Ljava/io/InputStream;)V
+HSPLjava/util/Properties;->load(Ljava/io/Reader;)V
 HSPLjava/util/Properties;->load0(Ljava/util/Properties$LineReader;)V
 HSPLjava/util/Properties;->loadConvert([CII[C)Ljava/lang/String;
+HSPLjava/util/Properties;->saveConvert(Ljava/lang/String;ZZ)Ljava/lang/String;
 HSPLjava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
+HSPLjava/util/Properties;->store(Ljava/io/OutputStream;Ljava/lang/String;)V
+HSPLjava/util/Properties;->store0(Ljava/io/BufferedWriter;Ljava/lang/String;Z)V
+HSPLjava/util/PropertyResourceBundle;-><init>(Ljava/io/Reader;)V
 HSPLjava/util/Random;-><init>()V
 HSPLjava/util/Random;-><init>(J)V
 HSPLjava/util/Random;->initialScramble(J)J
 HSPLjava/util/Random;->next(I)I
+HSPLjava/util/Random;->nextBoolean()Z
 HSPLjava/util/Random;->nextBytes([B)V
 HSPLjava/util/Random;->nextDouble()D
 HSPLjava/util/Random;->nextFloat()F
+HSPLjava/util/Random;->nextGaussian()D
 HSPLjava/util/Random;->nextInt()I
 HSPLjava/util/Random;->nextInt(I)I
 HSPLjava/util/Random;->nextLong()J
@@ -20355,49 +40818,139 @@
 HSPLjava/util/RegularEnumSet;->add(Ljava/lang/Enum;)Z
 HSPLjava/util/RegularEnumSet;->add(Ljava/lang/Object;)Z
 HSPLjava/util/RegularEnumSet;->addAll()V
+HSPLjava/util/RegularEnumSet;->addAll(Ljava/util/Collection;)Z
+HSPLjava/util/RegularEnumSet;->clear()V
+HSPLjava/util/RegularEnumSet;->complement()V
 HSPLjava/util/RegularEnumSet;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/RegularEnumSet;->containsAll(Ljava/util/Collection;)Z
+HSPLjava/util/RegularEnumSet;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/RegularEnumSet;->isEmpty()Z
 HSPLjava/util/RegularEnumSet;->iterator()Ljava/util/Iterator;
+HSPLjava/util/RegularEnumSet;->remove(Ljava/lang/Object;)Z
 HSPLjava/util/RegularEnumSet;->size()I
+HSPLjava/util/ResourceBundle$BundleReference;-><init>(Ljava/util/ResourceBundle;Ljava/lang/ref/ReferenceQueue;Ljava/util/ResourceBundle$CacheKey;)V
+HSPLjava/util/ResourceBundle$BundleReference;->getCacheKey()Ljava/util/ResourceBundle$CacheKey;
+HSPLjava/util/ResourceBundle$CacheKey;-><init>(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;)V
+HSPLjava/util/ResourceBundle$CacheKey;->access$400(Ljava/util/ResourceBundle$CacheKey;)Ljava/lang/Throwable;
+HSPLjava/util/ResourceBundle$CacheKey;->access$600(Ljava/util/ResourceBundle$CacheKey;)J
+HSPLjava/util/ResourceBundle$CacheKey;->access$602(Ljava/util/ResourceBundle$CacheKey;J)J
+HSPLjava/util/ResourceBundle$CacheKey;->calculateHashCode()V
+HSPLjava/util/ResourceBundle$CacheKey;->clone()Ljava/lang/Object;
+HSPLjava/util/ResourceBundle$CacheKey;->equals(Ljava/lang/Object;)Z
+HSPLjava/util/ResourceBundle$CacheKey;->getCause()Ljava/lang/Throwable;
+HSPLjava/util/ResourceBundle$CacheKey;->getLoader()Ljava/lang/ClassLoader;
+HSPLjava/util/ResourceBundle$CacheKey;->getLocale()Ljava/util/Locale;
+HSPLjava/util/ResourceBundle$CacheKey;->getName()Ljava/lang/String;
+HSPLjava/util/ResourceBundle$CacheKey;->hashCode()I
+HSPLjava/util/ResourceBundle$CacheKey;->setFormat(Ljava/lang/String;)V
+HSPLjava/util/ResourceBundle$CacheKey;->setLocale(Ljava/util/Locale;)Ljava/util/ResourceBundle$CacheKey;
+HSPLjava/util/ResourceBundle$Control$1;-><init>(Ljava/util/ResourceBundle$Control;ZLjava/lang/ClassLoader;Ljava/lang/String;)V
+HSPLjava/util/ResourceBundle$Control$1;->run()Ljava/io/InputStream;
+HSPLjava/util/ResourceBundle$Control$1;->run()Ljava/lang/Object;
+HSPLjava/util/ResourceBundle$Control$CandidateListCache;-><init>()V
+HSPLjava/util/ResourceBundle$Control$CandidateListCache;-><init>(Ljava/util/ResourceBundle$1;)V
+HSPLjava/util/ResourceBundle$Control$CandidateListCache;->createObject(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/ResourceBundle$Control$CandidateListCache;->createObject(Lsun/util/locale/BaseLocale;)Ljava/util/List;
+HSPLjava/util/ResourceBundle$Control$CandidateListCache;->getDefaultList(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+HSPLjava/util/ResourceBundle$Control;-><clinit>()V
+HSPLjava/util/ResourceBundle$Control;-><init>()V
+HSPLjava/util/ResourceBundle$Control;->access$300()Ljava/util/ResourceBundle$Control;
+HSPLjava/util/ResourceBundle$Control;->getCandidateLocales(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/List;
+HSPLjava/util/ResourceBundle$Control;->getFallbackLocale(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/Locale;
+HSPLjava/util/ResourceBundle$Control;->getFormats(Ljava/lang/String;)Ljava/util/List;
+HSPLjava/util/ResourceBundle$Control;->getTimeToLive(Ljava/lang/String;Ljava/util/Locale;)J
+HSPLjava/util/ResourceBundle$Control;->newBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/util/ResourceBundle;
+HSPLjava/util/ResourceBundle$Control;->toBundleName(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
+HSPLjava/util/ResourceBundle$Control;->toResourceName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/util/ResourceBundle$Control;->toResourceName0(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/util/ResourceBundle$LoaderReference;-><init>(Ljava/lang/ClassLoader;Ljava/lang/ref/ReferenceQueue;Ljava/util/ResourceBundle$CacheKey;)V
 HSPLjava/util/ResourceBundle;-><init>()V
+HSPLjava/util/ResourceBundle;->access$200()Ljava/lang/ref/ReferenceQueue;
+HSPLjava/util/ResourceBundle;->findBundle(Ljava/util/ResourceBundle$CacheKey;Ljava/util/List;Ljava/util/List;ILjava/util/ResourceBundle$Control;Ljava/util/ResourceBundle;)Ljava/util/ResourceBundle;
+HSPLjava/util/ResourceBundle;->findBundleInCache(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;
+HSPLjava/util/ResourceBundle;->getBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;)Ljava/util/ResourceBundle;
+HSPLjava/util/ResourceBundle;->getBundleImpl(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;
+HSPLjava/util/ResourceBundle;->getDefaultControl(Ljava/lang/String;)Ljava/util/ResourceBundle$Control;
 HSPLjava/util/ResourceBundle;->getObject(Ljava/lang/String;)Ljava/lang/Object;
 HSPLjava/util/ResourceBundle;->getString(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/util/ResourceBundle;->isValidBundle(Ljava/util/ResourceBundle;)Z
+HSPLjava/util/ResourceBundle;->loadBundle(Ljava/util/ResourceBundle$CacheKey;Ljava/util/List;Ljava/util/ResourceBundle$Control;Z)Ljava/util/ResourceBundle;
+HSPLjava/util/ResourceBundle;->putBundleInCache(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;
+HSPLjava/util/ResourceBundle;->setExpirationTime(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle$Control;)V
+HSPLjava/util/ResourceBundle;->setParent(Ljava/util/ResourceBundle;)V
 HSPLjava/util/Scanner$1;-><init>(Ljava/util/Scanner;I)V
 HSPLjava/util/Scanner$1;->create(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/Scanner$1;->create(Ljava/lang/String;)Ljava/util/regex/Pattern;
+HSPLjava/util/Scanner;-><init>(Ljava/io/InputStream;)V
+HSPLjava/util/Scanner;-><init>(Ljava/io/InputStream;Ljava/lang/String;)V
 HSPLjava/util/Scanner;-><init>(Ljava/lang/Readable;Ljava/util/regex/Pattern;)V
+HSPLjava/util/Scanner;-><init>(Ljava/lang/String;)V
 HSPLjava/util/Scanner;->clearCaches()V
+HSPLjava/util/Scanner;->close()V
 HSPLjava/util/Scanner;->ensureOpen()V
 HSPLjava/util/Scanner;->getCompleteTokenInBuffer(Ljava/util/regex/Pattern;)Ljava/lang/String;
 HSPLjava/util/Scanner;->hasNext()Z
 HSPLjava/util/Scanner;->hasTokenInBuffer()Z
+HSPLjava/util/Scanner;->makeReadable(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/lang/Readable;
 HSPLjava/util/Scanner;->makeSpace()Z
 HSPLjava/util/Scanner;->next()Ljava/lang/String;
 HSPLjava/util/Scanner;->readInput()V
 HSPLjava/util/Scanner;->revertState(Z)Z
 HSPLjava/util/Scanner;->saveState()V
+HSPLjava/util/Scanner;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
 HSPLjava/util/Scanner;->translateSavedIndexes(I)V
 HSPLjava/util/Scanner;->useDelimiter(Ljava/lang/String;)Ljava/util/Scanner;
 HSPLjava/util/Scanner;->useLocale(Ljava/util/Locale;)Ljava/util/Scanner;
+HSPLjava/util/ServiceLoader$1;-><init>(Ljava/util/ServiceLoader;)V
+HSPLjava/util/ServiceLoader$1;->hasNext()Z
+HSPLjava/util/ServiceLoader$LazyIterator;-><init>(Ljava/util/ServiceLoader;Ljava/lang/Class;Ljava/lang/ClassLoader;)V
+HSPLjava/util/ServiceLoader$LazyIterator;-><init>(Ljava/util/ServiceLoader;Ljava/lang/Class;Ljava/lang/ClassLoader;Ljava/util/ServiceLoader$1;)V
+HSPLjava/util/ServiceLoader$LazyIterator;->hasNext()Z
+HSPLjava/util/ServiceLoader$LazyIterator;->hasNextService()Z
+HSPLjava/util/ServiceLoader;-><init>(Ljava/lang/Class;Ljava/lang/ClassLoader;)V
+HSPLjava/util/ServiceLoader;->access$300(Ljava/util/ServiceLoader;)Ljava/util/LinkedHashMap;
+HSPLjava/util/ServiceLoader;->access$400(Ljava/util/ServiceLoader;)Ljava/util/ServiceLoader$LazyIterator;
+HSPLjava/util/ServiceLoader;->iterator()Ljava/util/Iterator;
+HSPLjava/util/ServiceLoader;->load(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
+HSPLjava/util/ServiceLoader;->reload()V
 HSPLjava/util/Set;->spliterator()Ljava/util/Spliterator;
+HSPLjava/util/SimpleTimeZone;-><init>(ILjava/lang/String;)V
 HSPLjava/util/SimpleTimeZone;->clone()Ljava/lang/Object;
 HSPLjava/util/SimpleTimeZone;->getOffset(J)I
 HSPLjava/util/SimpleTimeZone;->getOffsets(J[I)I
 HSPLjava/util/SimpleTimeZone;->getRawOffset()I
 HSPLjava/util/SimpleTimeZone;->hasSameRules(Ljava/util/TimeZone;)Z
+HSPLjava/util/Spliterator$OfInt;->forEachRemaining(Ljava/util/function/Consumer;)V
 HSPLjava/util/Spliterator;->getExactSizeIfKnown()J
+HSPLjava/util/Spliterators$1Adapter;-><init>(Ljava/util/Spliterator;)V
+HSPLjava/util/Spliterators$1Adapter;->accept(Ljava/lang/Object;)V
+HSPLjava/util/Spliterators$1Adapter;->hasNext()Z
+HSPLjava/util/Spliterators$1Adapter;->next()Ljava/lang/Object;
+HSPLjava/util/Spliterators$ArraySpliterator;-><init>([Ljava/lang/Object;I)V
 HSPLjava/util/Spliterators$ArraySpliterator;-><init>([Ljava/lang/Object;III)V
 HSPLjava/util/Spliterators$ArraySpliterator;->characteristics()I
 HSPLjava/util/Spliterators$ArraySpliterator;->estimateSize()J
 HSPLjava/util/Spliterators$ArraySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 HSPLjava/util/Spliterators$ArraySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
+HSPLjava/util/Spliterators$EmptySpliterator$OfRef;->tryAdvance(Ljava/util/function/Consumer;)Z
+HSPLjava/util/Spliterators$EmptySpliterator;->characteristics()I
+HSPLjava/util/Spliterators$EmptySpliterator;->estimateSize()J
+HSPLjava/util/Spliterators$EmptySpliterator;->tryAdvance(Ljava/lang/Object;)Z
+HSPLjava/util/Spliterators$IntArraySpliterator;-><init>([IIII)V
+HSPLjava/util/Spliterators$IntArraySpliterator;->characteristics()I
+HSPLjava/util/Spliterators$IntArraySpliterator;->estimateSize()J
+HSPLjava/util/Spliterators$IntArraySpliterator;->forEachRemaining(Ljava/util/function/IntConsumer;)V
 HSPLjava/util/Spliterators$IteratorSpliterator;-><init>(Ljava/util/Collection;I)V
 HSPLjava/util/Spliterators$IteratorSpliterator;->characteristics()I
 HSPLjava/util/Spliterators$IteratorSpliterator;->estimateSize()J
 HSPLjava/util/Spliterators$IteratorSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 HSPLjava/util/Spliterators$IteratorSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
 HSPLjava/util/Spliterators;->checkFromToBounds(III)V
+HSPLjava/util/Spliterators;->emptySpliterator()Ljava/util/Spliterator;
+HSPLjava/util/Spliterators;->iterator(Ljava/util/Spliterator;)Ljava/util/Iterator;
 HSPLjava/util/Spliterators;->spliterator(Ljava/util/Collection;I)Ljava/util/Spliterator;
+HSPLjava/util/Spliterators;->spliterator([IIII)Ljava/util/Spliterator$OfInt;
+HSPLjava/util/Spliterators;->spliterator([Ljava/lang/Object;I)Ljava/util/Spliterator;
 HSPLjava/util/Spliterators;->spliterator([Ljava/lang/Object;III)Ljava/util/Spliterator;
 HSPLjava/util/Stack;-><init>()V
 HSPLjava/util/Stack;->empty()Z
@@ -20408,7 +40961,9 @@
 HSPLjava/util/StringJoiner;-><init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V
 HSPLjava/util/StringJoiner;->add(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
 HSPLjava/util/StringJoiner;->prepareBuilder()Ljava/lang/StringBuilder;
+HPLjava/util/StringJoiner;->setEmptyValue(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
 HSPLjava/util/StringJoiner;->toString()Ljava/lang/String;
+HSPLjava/util/StringTokenizer;-><init>(Ljava/lang/String;)V
 HSPLjava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLjava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
 HSPLjava/util/StringTokenizer;->countTokens()I
@@ -20425,6 +40980,8 @@
 HSPLjava/util/TaskQueue;->getMin()Ljava/util/TimerTask;
 HSPLjava/util/TaskQueue;->isEmpty()Z
 HSPLjava/util/TaskQueue;->removeMin()V
+HSPLjava/util/TaskQueue;->rescheduleMin(J)V
+HSPLjava/util/TaskQueue;->size()I
 HSPLjava/util/TimSort;-><init>([Ljava/lang/Object;Ljava/util/Comparator;[Ljava/lang/Object;II)V
 HSPLjava/util/TimSort;->binarySort([Ljava/lang/Object;IIILjava/util/Comparator;)V
 HSPLjava/util/TimSort;->countRunAndMakeAscending([Ljava/lang/Object;IILjava/util/Comparator;)I
@@ -20447,6 +41004,7 @@
 HSPLjava/util/TimeZone;->getAvailableIDs()[Ljava/lang/String;
 HSPLjava/util/TimeZone;->getDefault()Ljava/util/TimeZone;
 HSPLjava/util/TimeZone;->getDefaultRef()Ljava/util/TimeZone;
+HSPLjava/util/TimeZone;->getDisplayName()Ljava/lang/String;
 HSPLjava/util/TimeZone;->getDisplayName(ZILjava/util/Locale;)Ljava/lang/String;
 HSPLjava/util/TimeZone;->getID()Ljava/lang/String;
 HSPLjava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
@@ -20457,13 +41015,19 @@
 HSPLjava/util/Timer$1;->finalize()V
 HSPLjava/util/Timer;-><init>()V
 HSPLjava/util/Timer;-><init>(Ljava/lang/String;)V
+HSPLjava/util/Timer;-><init>(Ljava/lang/String;Z)V
+HSPLjava/util/Timer;-><init>(Z)V
 HSPLjava/util/Timer;->access$000(Ljava/util/Timer;)Ljava/util/TaskQueue;
 HSPLjava/util/Timer;->access$100(Ljava/util/Timer;)Ljava/util/TimerThread;
 HSPLjava/util/Timer;->cancel()V
+HSPLjava/util/Timer;->purge()I
 HSPLjava/util/Timer;->sched(Ljava/util/TimerTask;JJ)V
 HSPLjava/util/Timer;->schedule(Ljava/util/TimerTask;J)V
+HSPLjava/util/Timer;->schedule(Ljava/util/TimerTask;JJ)V
+HSPLjava/util/Timer;->scheduleAtFixedRate(Ljava/util/TimerTask;JJ)V
 HSPLjava/util/Timer;->serialNumber()I
 HSPLjava/util/TimerTask;-><init>()V
+HSPLjava/util/TimerTask;->cancel()Z
 HSPLjava/util/TimerThread;-><init>(Ljava/util/TaskQueue;)V
 HSPLjava/util/TimerThread;->mainLoop()V
 HSPLjava/util/TimerThread;->run()V
@@ -20472,31 +41036,53 @@
 HSPLjava/util/TreeMap$AscendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
 HSPLjava/util/TreeMap$AscendingSubMap;->entrySet()Ljava/util/Set;
 HSPLjava/util/TreeMap$AscendingSubMap;->keyIterator()Ljava/util/Iterator;
+HSPLjava/util/TreeMap$DescendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
+HSPLjava/util/TreeMap$DescendingSubMap;->keyIterator()Ljava/util/Iterator;
 HSPLjava/util/TreeMap$EntryIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V
 HSPLjava/util/TreeMap$EntryIterator;->next()Ljava/lang/Object;
 HSPLjava/util/TreeMap$EntryIterator;->next()Ljava/util/Map$Entry;
 HSPLjava/util/TreeMap$EntrySet;-><init>(Ljava/util/TreeMap;)V
 HSPLjava/util/TreeMap$EntrySet;->iterator()Ljava/util/Iterator;
+HSPLjava/util/TreeMap$EntrySet;->size()I
 HSPLjava/util/TreeMap$KeyIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V
 HSPLjava/util/TreeMap$KeyIterator;->next()Ljava/lang/Object;
 HSPLjava/util/TreeMap$KeySet;-><init>(Ljava/util/NavigableMap;)V
+HSPLjava/util/TreeMap$KeySet;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/TreeMap$KeySet;->isEmpty()Z
 HSPLjava/util/TreeMap$KeySet;->iterator()Ljava/util/Iterator;
+HSPLjava/util/TreeMap$KeySet;->size()I
+HSPLjava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
+HSPLjava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;->next()Ljava/lang/Object;
 HSPLjava/util/TreeMap$NavigableSubMap$EntrySetView;-><init>(Ljava/util/TreeMap$NavigableSubMap;)V
+HSPLjava/util/TreeMap$NavigableSubMap$EntrySetView;->isEmpty()Z
+HSPLjava/util/TreeMap$NavigableSubMap$EntrySetView;->size()I
 HSPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
 HSPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;->next()Ljava/lang/Object;
 HSPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;->next()Ljava/util/Map$Entry;
+HSPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;->remove()V
 HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
 HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->hasNext()Z
 HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->nextEntry()Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->prevEntry()Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->removeAscending()V
 HSPLjava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
+HSPLjava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;->next()Ljava/lang/Object;
 HSPLjava/util/TreeMap$NavigableSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
 HSPLjava/util/TreeMap$NavigableSubMap;->absHighFence()Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap$NavigableSubMap;->absHighest()Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap$NavigableSubMap;->absLowFence()Ljava/util/TreeMap$TreeMapEntry;
 HSPLjava/util/TreeMap$NavigableSubMap;->absLowest()Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap$NavigableSubMap;->inRange(Ljava/lang/Object;)Z
+HSPLjava/util/TreeMap$NavigableSubMap;->isEmpty()Z
+HSPLjava/util/TreeMap$NavigableSubMap;->lastKey()Ljava/lang/Object;
 HSPLjava/util/TreeMap$NavigableSubMap;->navigableKeySet()Ljava/util/NavigableSet;
+HSPLjava/util/TreeMap$NavigableSubMap;->size()I
 HSPLjava/util/TreeMap$NavigableSubMap;->tooHigh(Ljava/lang/Object;)Z
+HSPLjava/util/TreeMap$NavigableSubMap;->tooLow(Ljava/lang/Object;)Z
 HSPLjava/util/TreeMap$PrivateEntryIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V
 HSPLjava/util/TreeMap$PrivateEntryIterator;->hasNext()Z
 HSPLjava/util/TreeMap$PrivateEntryIterator;->nextEntry()Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap$PrivateEntryIterator;->remove()V
 HSPLjava/util/TreeMap$TreeMapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/TreeMap$TreeMapEntry;)V
 HSPLjava/util/TreeMap$TreeMapEntry;->getKey()Ljava/lang/Object;
 HSPLjava/util/TreeMap$TreeMapEntry;->getValue()Ljava/lang/Object;
@@ -20508,9 +41094,12 @@
 HSPLjava/util/TreeMap$Values;->size()I
 HSPLjava/util/TreeMap;-><init>()V
 HSPLjava/util/TreeMap;-><init>(Ljava/util/Comparator;)V
+HSPLjava/util/TreeMap;-><init>(Ljava/util/Map;)V
 HSPLjava/util/TreeMap;->access$000(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V
 HSPLjava/util/TreeMap;->access$100(Ljava/util/TreeMap;)I
 HSPLjava/util/TreeMap;->access$200()Ljava/lang/Object;
+HSPLjava/util/TreeMap;->access$300(Ljava/util/TreeMap;)Ljava/util/Comparator;
+HSPLjava/util/TreeMap;->addAllForTreeSet(Ljava/util/SortedSet;Ljava/lang/Object;)V
 HSPLjava/util/TreeMap;->buildFromSorted(IIIILjava/util/Iterator;Ljava/io/ObjectInputStream;Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
 HSPLjava/util/TreeMap;->buildFromSorted(ILjava/util/Iterator;Ljava/io/ObjectInputStream;Ljava/lang/Object;)V
 HSPLjava/util/TreeMap;->ceilingEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;
@@ -20523,25 +41112,38 @@
 HSPLjava/util/TreeMap;->computeRedLevel(I)I
 HSPLjava/util/TreeMap;->containsKey(Ljava/lang/Object;)Z
 HSPLjava/util/TreeMap;->deleteEntry(Ljava/util/TreeMap$TreeMapEntry;)V
+HSPLjava/util/TreeMap;->descendingKeySet()Ljava/util/NavigableSet;
+HSPLjava/util/TreeMap;->descendingMap()Ljava/util/NavigableMap;
 HSPLjava/util/TreeMap;->entrySet()Ljava/util/Set;
 HSPLjava/util/TreeMap;->exportEntry(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/Map$Entry;
+HSPLjava/util/TreeMap;->firstEntry()Ljava/util/Map$Entry;
 HSPLjava/util/TreeMap;->firstKey()Ljava/lang/Object;
 HSPLjava/util/TreeMap;->fixAfterDeletion(Ljava/util/TreeMap$TreeMapEntry;)V
 HSPLjava/util/TreeMap;->fixAfterInsertion(Ljava/util/TreeMap$TreeMapEntry;)V
+HSPLjava/util/TreeMap;->floorKey(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/TreeMap;->getCeilingEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
 HSPLjava/util/TreeMap;->getEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
 HSPLjava/util/TreeMap;->getEntryUsingComparator(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
 HSPLjava/util/TreeMap;->getFirstEntry()Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap;->getFloorEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap;->getHigherEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
 HSPLjava/util/TreeMap;->getLastEntry()Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap;->getLowerEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap;->headMap(Ljava/lang/Object;Z)Ljava/util/NavigableMap;
+HSPLjava/util/TreeMap;->higherKey(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/TreeMap;->key(Ljava/util/TreeMap$TreeMapEntry;)Ljava/lang/Object;
 HSPLjava/util/TreeMap;->keyIterator()Ljava/util/Iterator;
 HSPLjava/util/TreeMap;->keyOrNull(Ljava/util/TreeMap$TreeMapEntry;)Ljava/lang/Object;
 HSPLjava/util/TreeMap;->keySet()Ljava/util/Set;
+HSPLjava/util/TreeMap;->lastEntry()Ljava/util/Map$Entry;
 HSPLjava/util/TreeMap;->lastKey()Ljava/lang/Object;
 HSPLjava/util/TreeMap;->leftOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap;->lowerEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;
 HSPLjava/util/TreeMap;->navigableKeySet()Ljava/util/NavigableSet;
 HSPLjava/util/TreeMap;->parentOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap;->pollFirstEntry()Ljava/util/Map$Entry;
+HSPLjava/util/TreeMap;->predecessor(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
 HSPLjava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/TreeMap;->putAll(Ljava/util/Map;)V
 HSPLjava/util/TreeMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
@@ -20550,22 +41152,34 @@
 HSPLjava/util/TreeMap;->rotateRight(Ljava/util/TreeMap$TreeMapEntry;)V
 HSPLjava/util/TreeMap;->setColor(Ljava/util/TreeMap$TreeMapEntry;Z)V
 HSPLjava/util/TreeMap;->size()I
+HSPLjava/util/TreeMap;->subMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedMap;
 HSPLjava/util/TreeMap;->subMap(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/NavigableMap;
 HSPLjava/util/TreeMap;->successor(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap;->tailMap(Ljava/lang/Object;Z)Ljava/util/NavigableMap;
 HSPLjava/util/TreeMap;->values()Ljava/util/Collection;
 HSPLjava/util/TreeSet;-><init>()V
 HSPLjava/util/TreeSet;-><init>(Ljava/util/Collection;)V
 HSPLjava/util/TreeSet;-><init>(Ljava/util/Comparator;)V
 HSPLjava/util/TreeSet;-><init>(Ljava/util/NavigableMap;)V
+HSPLjava/util/TreeSet;-><init>(Ljava/util/SortedSet;)V
 HSPLjava/util/TreeSet;->add(Ljava/lang/Object;)Z
 HSPLjava/util/TreeSet;->addAll(Ljava/util/Collection;)Z
+HSPLjava/util/TreeSet;->ceiling(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/TreeSet;->clear()V
+HSPLjava/util/TreeSet;->comparator()Ljava/util/Comparator;
 HSPLjava/util/TreeSet;->contains(Ljava/lang/Object;)Z
 HSPLjava/util/TreeSet;->first()Ljava/lang/Object;
+HSPLjava/util/TreeSet;->headSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;
+HSPLjava/util/TreeSet;->higher(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/TreeSet;->isEmpty()Z
 HSPLjava/util/TreeSet;->iterator()Ljava/util/Iterator;
+HSPLjava/util/TreeSet;->last()Ljava/lang/Object;
 HSPLjava/util/TreeSet;->remove(Ljava/lang/Object;)Z
 HSPLjava/util/TreeSet;->size()I
+HSPLjava/util/TreeSet;->subSet(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedSet;
+HSPLjava/util/TreeSet;->subSet(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/NavigableSet;
+HSPLjava/util/TreeSet;->tailSet(Ljava/lang/Object;)Ljava/util/SortedSet;
+HSPLjava/util/TreeSet;->tailSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;
 HSPLjava/util/UUID;-><init>(JJ)V
 HSPLjava/util/UUID;-><init>([B)V
 HSPLjava/util/UUID;->digits(JI)Ljava/lang/String;
@@ -20574,6 +41188,7 @@
 HSPLjava/util/UUID;->getLeastSignificantBits()J
 HSPLjava/util/UUID;->getMostSignificantBits()J
 HSPLjava/util/UUID;->hashCode()I
+HSPLjava/util/UUID;->nameUUIDFromBytes([B)Ljava/util/UUID;
 HSPLjava/util/UUID;->randomUUID()Ljava/util/UUID;
 HSPLjava/util/UUID;->toString()Ljava/lang/String;
 HSPLjava/util/Vector$1;-><init>(Ljava/util/Vector;)V
@@ -20584,10 +41199,12 @@
 HSPLjava/util/Vector$Itr;->checkForComodification()V
 HSPLjava/util/Vector$Itr;->hasNext()Z
 HSPLjava/util/Vector$Itr;->next()Ljava/lang/Object;
+HSPLjava/util/Vector$Itr;->remove()V
 HSPLjava/util/Vector;-><init>()V
 HSPLjava/util/Vector;-><init>(I)V
 HSPLjava/util/Vector;-><init>(II)V
 HSPLjava/util/Vector;->add(Ljava/lang/Object;)Z
+HSPLjava/util/Vector;->addAll(Ljava/util/Collection;)Z
 HSPLjava/util/Vector;->addElement(Ljava/lang/Object;)V
 HSPLjava/util/Vector;->clear()V
 HSPLjava/util/Vector;->contains(Ljava/lang/Object;)Z
@@ -20598,19 +41215,27 @@
 HSPLjava/util/Vector;->ensureCapacityHelper(I)V
 HSPLjava/util/Vector;->get(I)Ljava/lang/Object;
 HSPLjava/util/Vector;->grow(I)V
+HSPLjava/util/Vector;->indexOf(Ljava/lang/Object;)I
 HSPLjava/util/Vector;->indexOf(Ljava/lang/Object;I)I
+HSPLjava/util/Vector;->insertElementAt(Ljava/lang/Object;I)V
 HSPLjava/util/Vector;->isEmpty()Z
 HSPLjava/util/Vector;->iterator()Ljava/util/Iterator;
+HSPLjava/util/Vector;->remove(I)Ljava/lang/Object;
 HSPLjava/util/Vector;->removeAllElements()V
+HSPLjava/util/Vector;->removeElement(Ljava/lang/Object;)Z
 HSPLjava/util/Vector;->removeElementAt(I)V
+HSPLjava/util/Vector;->setElementAt(Ljava/lang/Object;I)V
 HSPLjava/util/Vector;->size()I
 HSPLjava/util/Vector;->sort(Ljava/util/Comparator;)V
 HSPLjava/util/Vector;->toArray()[Ljava/lang/Object;
 HSPLjava/util/Vector;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
 HSPLjava/util/WeakHashMap$Entry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;ILjava/util/WeakHashMap$Entry;)V
 HSPLjava/util/WeakHashMap$Entry;->getKey()Ljava/lang/Object;
+HSPLjava/util/WeakHashMap$Entry;->getValue()Ljava/lang/Object;
 HSPLjava/util/WeakHashMap$EntryIterator;-><init>(Ljava/util/WeakHashMap;)V
 HSPLjava/util/WeakHashMap$EntryIterator;-><init>(Ljava/util/WeakHashMap;Ljava/util/WeakHashMap$1;)V
+HSPLjava/util/WeakHashMap$EntryIterator;->next()Ljava/lang/Object;
+HSPLjava/util/WeakHashMap$EntryIterator;->next()Ljava/util/Map$Entry;
 HSPLjava/util/WeakHashMap$EntrySet;-><init>(Ljava/util/WeakHashMap;)V
 HSPLjava/util/WeakHashMap$EntrySet;-><init>(Ljava/util/WeakHashMap;Ljava/util/WeakHashMap$1;)V
 HSPLjava/util/WeakHashMap$EntrySet;->iterator()Ljava/util/Iterator;
@@ -20626,6 +41251,7 @@
 HSPLjava/util/WeakHashMap$KeySet;->size()I
 HSPLjava/util/WeakHashMap$ValueIterator;-><init>(Ljava/util/WeakHashMap;)V
 HSPLjava/util/WeakHashMap$ValueIterator;-><init>(Ljava/util/WeakHashMap;Ljava/util/WeakHashMap$1;)V
+HSPLjava/util/WeakHashMap$ValueIterator;->next()Ljava/lang/Object;
 HSPLjava/util/WeakHashMap$Values;-><init>(Ljava/util/WeakHashMap;)V
 HSPLjava/util/WeakHashMap$Values;-><init>(Ljava/util/WeakHashMap;Ljava/util/WeakHashMap$1;)V
 HSPLjava/util/WeakHashMap$Values;->iterator()Ljava/util/Iterator;
@@ -20654,57 +41280,109 @@
 HSPLjava/util/WeakHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/WeakHashMap;->values()Ljava/util/Collection;
 HSPLjava/util/concurrent/AbstractExecutorService;-><init>()V
+HSPLjava/util/concurrent/AbstractExecutorService;->invokeAll(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/util/List;
 HSPLjava/util/concurrent/AbstractExecutorService;->newTaskFor(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/RunnableFuture;
 HSPLjava/util/concurrent/AbstractExecutorService;->newTaskFor(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/RunnableFuture;
 HSPLjava/util/concurrent/AbstractExecutorService;->submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
+HSPLjava/util/concurrent/AbstractExecutorService;->submit(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Future;
 HSPLjava/util/concurrent/AbstractExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
 HSPLjava/util/concurrent/ArrayBlockingQueue;-><init>(I)V
 HSPLjava/util/concurrent/ArrayBlockingQueue;-><init>(IZ)V
+HSPLjava/util/concurrent/ArrayBlockingQueue;->add(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/ArrayBlockingQueue;->dequeue()Ljava/lang/Object;
+HSPLjava/util/concurrent/ArrayBlockingQueue;->drainTo(Ljava/util/Collection;)I
+HSPLjava/util/concurrent/ArrayBlockingQueue;->drainTo(Ljava/util/Collection;I)I
 HSPLjava/util/concurrent/ArrayBlockingQueue;->enqueue(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/ArrayBlockingQueue;->itemAt(I)Ljava/lang/Object;
 HSPLjava/util/concurrent/ArrayBlockingQueue;->offer(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ArrayBlockingQueue;->peek()Ljava/lang/Object;
+HSPLjava/util/concurrent/ArrayBlockingQueue;->poll()Ljava/lang/Object;
 HSPLjava/util/concurrent/ArrayBlockingQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
 HSPLjava/util/concurrent/ArrayBlockingQueue;->put(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/ArrayBlockingQueue;->remainingCapacity()I
 HSPLjava/util/concurrent/ArrayBlockingQueue;->size()I
 HSPLjava/util/concurrent/ArrayBlockingQueue;->take()Ljava/lang/Object;
 HSPLjava/util/concurrent/CancellationException;-><init>()V
 HSPLjava/util/concurrent/CancellationException;-><init>(Ljava/lang/String;)V
+HSPLjava/util/concurrent/CompletableFuture$AltResult;-><init>(Ljava/lang/Throwable;)V
 HSPLjava/util/concurrent/CompletableFuture$Completion;-><init>()V
 HSPLjava/util/concurrent/CompletableFuture$Signaller;-><init>(ZJJ)V
 HSPLjava/util/concurrent/CompletableFuture$Signaller;->block()Z
 HSPLjava/util/concurrent/CompletableFuture$Signaller;->isReleasable()Z
 HSPLjava/util/concurrent/CompletableFuture$Signaller;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
+HSPLjava/util/concurrent/CompletableFuture$UniCompletion;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)V
+HSPLjava/util/concurrent/CompletableFuture$UniCompletion;->claim()Z
+HSPLjava/util/concurrent/CompletableFuture$UniHandle;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiFunction;)V
+HSPLjava/util/concurrent/CompletableFuture$UniHandle;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
+HSPLjava/util/concurrent/CompletableFuture$UniWhenComplete;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiConsumer;)V
+HSPLjava/util/concurrent/CompletableFuture$UniWhenComplete;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
 HSPLjava/util/concurrent/CompletableFuture;-><init>()V
 HSPLjava/util/concurrent/CompletableFuture;->casStack(Ljava/util/concurrent/CompletableFuture$Completion;Ljava/util/concurrent/CompletableFuture$Completion;)Z
 HSPLjava/util/concurrent/CompletableFuture;->complete(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/CompletableFuture;->completeExceptionally(Ljava/lang/Throwable;)Z
 HSPLjava/util/concurrent/CompletableFuture;->completeValue(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/CompletableFuture;->get()Ljava/lang/Object;
+HSPLjava/util/concurrent/CompletableFuture;->get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
+HSPLjava/util/concurrent/CompletableFuture;->handle(Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
+HSPLjava/util/concurrent/CompletableFuture;->internalComplete(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/CompletableFuture;->isCancelled()Z
+HSPLjava/util/concurrent/CompletableFuture;->isDone()Z
+HSPLjava/util/concurrent/CompletableFuture;->join()Ljava/lang/Object;
 HSPLjava/util/concurrent/CompletableFuture;->lazySetNext(Ljava/util/concurrent/CompletableFuture$Completion;Ljava/util/concurrent/CompletableFuture$Completion;)V
+HSPLjava/util/concurrent/CompletableFuture;->newIncompleteFuture()Ljava/util/concurrent/CompletableFuture;
 HSPLjava/util/concurrent/CompletableFuture;->postComplete()V
+HSPLjava/util/concurrent/CompletableFuture;->postFire(Ljava/util/concurrent/CompletableFuture;I)Ljava/util/concurrent/CompletableFuture;
+HSPLjava/util/concurrent/CompletableFuture;->push(Ljava/util/concurrent/CompletableFuture$UniCompletion;)V
+HSPLjava/util/concurrent/CompletableFuture;->reportGet(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/CompletableFuture;->reportJoin(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/CompletableFuture;->timedGet(J)Ljava/lang/Object;
 HSPLjava/util/concurrent/CompletableFuture;->tryPushStack(Ljava/util/concurrent/CompletableFuture$Completion;)Z
+HSPLjava/util/concurrent/CompletableFuture;->uniHandle(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiFunction;Ljava/util/concurrent/CompletableFuture$UniHandle;)Z
+HSPLjava/util/concurrent/CompletableFuture;->uniHandleStage(Ljava/util/concurrent/Executor;Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
+HSPLjava/util/concurrent/CompletableFuture;->uniWhenComplete(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture$UniWhenComplete;)Z
+HSPLjava/util/concurrent/CompletableFuture;->uniWhenCompleteStage(Ljava/util/concurrent/Executor;Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
 HSPLjava/util/concurrent/CompletableFuture;->waitingGet(Z)Ljava/lang/Object;
+HSPLjava/util/concurrent/CompletableFuture;->whenComplete(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
 HSPLjava/util/concurrent/ConcurrentHashMap$BaseIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
 HSPLjava/util/concurrent/ConcurrentHashMap$BaseIterator;->hasNext()Z
+HSPLjava/util/concurrent/ConcurrentHashMap$BaseIterator;->remove()V
 HSPLjava/util/concurrent/ConcurrentHashMap$CollectionView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V
+HSPLjava/util/concurrent/ConcurrentHashMap$CollectionView;->isEmpty()Z
 HSPLjava/util/concurrent/ConcurrentHashMap$CollectionView;->size()I
 HSPLjava/util/concurrent/ConcurrentHashMap$CollectionView;->toArray()[Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentHashMap$CounterCell;-><init>(J)V
 HSPLjava/util/concurrent/ConcurrentHashMap$EntryIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
 HSPLjava/util/concurrent/ConcurrentHashMap$EntryIterator;->next()Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentHashMap$EntryIterator;->next()Ljava/util/Map$Entry;
 HSPLjava/util/concurrent/ConcurrentHashMap$EntrySetView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V
 HSPLjava/util/concurrent/ConcurrentHashMap$EntrySetView;->iterator()Ljava/util/Iterator;
+HSPLjava/util/concurrent/ConcurrentHashMap$EntrySetView;->removeIf(Ljava/util/function/Predicate;)Z
 HSPLjava/util/concurrent/ConcurrentHashMap$ForwardingNode;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;)V
+HSPLjava/util/concurrent/ConcurrentHashMap$ForwardingNode;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
 HSPLjava/util/concurrent/ConcurrentHashMap$KeyIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
 HSPLjava/util/concurrent/ConcurrentHashMap$KeyIterator;->next()Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentHashMap$KeySetView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;Ljava/lang/Object;)V
 HSPLjava/util/concurrent/ConcurrentHashMap$KeySetView;->iterator()Ljava/util/Iterator;
+HSPLjava/util/concurrent/ConcurrentHashMap$KeySetView;->spliterator()Ljava/util/Spliterator;
+HSPLjava/util/concurrent/ConcurrentHashMap$KeySpliterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIIJ)V
+HSPLjava/util/concurrent/ConcurrentHashMap$KeySpliterator;->characteristics()I
+HSPLjava/util/concurrent/ConcurrentHashMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 HSPLjava/util/concurrent/ConcurrentHashMap$MapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap;)V
 HSPLjava/util/concurrent/ConcurrentHashMap$MapEntry;->getKey()Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentHashMap$MapEntry;->getValue()Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentHashMap$Node;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap$Node;)V
+HSPLjava/util/concurrent/ConcurrentHashMap$ReservationNode;-><init>()V
 HSPLjava/util/concurrent/ConcurrentHashMap$Traverser;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;III)V
 HSPLjava/util/concurrent/ConcurrentHashMap$Traverser;->advance()Ljava/util/concurrent/ConcurrentHashMap$Node;
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;-><init>(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)V
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->balanceInsertion(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
 HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->lockRoot()V
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->putTreeVal(ILjava/lang/Object;Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->rotateLeft(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->rotateRight(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->unlockRoot()V
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeNode;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)V
 HSPLjava/util/concurrent/ConcurrentHashMap$TreeNode;->findTreeNode(ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
 HSPLjava/util/concurrent/ConcurrentHashMap$ValueIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
 HSPLjava/util/concurrent/ConcurrentHashMap$ValueIterator;->next()Ljava/lang/Object;
@@ -20713,21 +41391,28 @@
 HSPLjava/util/concurrent/ConcurrentHashMap;-><init>()V
 HSPLjava/util/concurrent/ConcurrentHashMap;-><init>(I)V
 HSPLjava/util/concurrent/ConcurrentHashMap;-><init>(IFI)V
+HSPLjava/util/concurrent/ConcurrentHashMap;-><init>(Ljava/util/Map;)V
 HSPLjava/util/concurrent/ConcurrentHashMap;->addCount(JI)V
 HSPLjava/util/concurrent/ConcurrentHashMap;->casTabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;ILjava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$Node;)Z
 HSPLjava/util/concurrent/ConcurrentHashMap;->clear()V
+HSPLjava/util/concurrent/ConcurrentHashMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentHashMap;->containsKey(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/ConcurrentHashMap;->entrySet()Ljava/util/Set;
+HSPLjava/util/concurrent/ConcurrentHashMap;->fullAddCount(JZ)V
 HSPLjava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentHashMap;->helpTransfer([Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$Node;)[Ljava/util/concurrent/ConcurrentHashMap$Node;
 HSPLjava/util/concurrent/ConcurrentHashMap;->initTable()[Ljava/util/concurrent/ConcurrentHashMap$Node;
 HSPLjava/util/concurrent/ConcurrentHashMap;->isEmpty()Z
 HSPLjava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/Set;
 HSPLjava/util/concurrent/ConcurrentHashMap;->mappingCount()J
+HSPLjava/util/concurrent/ConcurrentHashMap;->newKeySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
 HSPLjava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentHashMap;->putAll(Ljava/util/Map;)V
 HSPLjava/util/concurrent/ConcurrentHashMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentHashMap;->putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentHashMap;->removeEntryIf(Ljava/util/function/Predicate;)Z
 HSPLjava/util/concurrent/ConcurrentHashMap;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/ConcurrentHashMap;->replaceNode(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentHashMap;->resizeStamp(I)I
@@ -20738,17 +41423,48 @@
 HSPLjava/util/concurrent/ConcurrentHashMap;->tabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;I)Ljava/util/concurrent/ConcurrentHashMap$Node;
 HSPLjava/util/concurrent/ConcurrentHashMap;->tableSizeFor(I)I
 HSPLjava/util/concurrent/ConcurrentHashMap;->transfer([Ljava/util/concurrent/ConcurrentHashMap$Node;[Ljava/util/concurrent/ConcurrentHashMap$Node;)V
+HSPLjava/util/concurrent/ConcurrentHashMap;->treeifyBin([Ljava/util/concurrent/ConcurrentHashMap$Node;I)V
 HSPLjava/util/concurrent/ConcurrentHashMap;->tryPresize(I)V
 HSPLjava/util/concurrent/ConcurrentHashMap;->values()Ljava/util/Collection;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;-><init>(Ljava/util/concurrent/ConcurrentLinkedDeque;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->advance()V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->hasNext()Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->next()Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Itr;-><init>(Ljava/util/concurrent/ConcurrentLinkedDeque;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Itr;-><init>(Ljava/util/concurrent/ConcurrentLinkedDeque;Ljava/util/concurrent/ConcurrentLinkedDeque$1;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Itr;->nextNode(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Itr;->startNode()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
 HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;-><init>(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;->casItem(Ljava/lang/Object;Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;->casNext(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;->casPrev(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;->lazySetNext(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
 HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;->lazySetPrev(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
 HSPLjava/util/concurrent/ConcurrentLinkedDeque;-><init>()V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->add(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->casTail(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->clear()V
 HSPLjava/util/concurrent/ConcurrentLinkedDeque;->first()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->isEmpty()Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->iterator()Ljava/util/Iterator;
 HSPLjava/util/concurrent/ConcurrentLinkedDeque;->linkLast(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->nextTerminator()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->offerLast(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->peekFirst()Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->pollFirst()Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->prevTerminator()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->size()I
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->skipDeletedPredecessors(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->skipDeletedSuccessors(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->succ(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->unlink(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->unlinkLast(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->updateHead()V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->updateTail()V
 HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;-><init>(Ljava/util/concurrent/ConcurrentLinkedQueue;)V
 HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;->hasNext()Z
 HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;->next()Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;->remove()V
 HSPLjava/util/concurrent/ConcurrentLinkedQueue$Node;-><init>()V
 HSPLjava/util/concurrent/ConcurrentLinkedQueue$Node;-><init>(Ljava/util/concurrent/ConcurrentLinkedQueue$1;)V
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;-><init>()V
@@ -20757,6 +41473,7 @@
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;->casItem(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/lang/Object;Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;->casNext(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;->casTail(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedQueue;->contains(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;->first()Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;->isEmpty()Z
 HSPLjava/util/concurrent/ConcurrentLinkedQueue;->iterator()Ljava/util/Iterator;
@@ -20774,6 +41491,9 @@
 HSPLjava/util/concurrent/ConcurrentSkipListMap$Index;->casRight(Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;)Z
 HSPLjava/util/concurrent/ConcurrentSkipListMap$Index;->link(Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;)Z
 HSPLjava/util/concurrent/ConcurrentSkipListMap$Index;->unlink(Ljava/util/concurrent/ConcurrentSkipListMap$Index;)Z
+HSPLjava/util/concurrent/ConcurrentSkipListMap$Iter;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap;)V
+HSPLjava/util/concurrent/ConcurrentSkipListMap$Iter;->advance()V
+HSPLjava/util/concurrent/ConcurrentSkipListMap$Iter;->hasNext()Z
 HSPLjava/util/concurrent/ConcurrentSkipListMap$Node;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V
 HSPLjava/util/concurrent/ConcurrentSkipListMap$Node;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V
 HSPLjava/util/concurrent/ConcurrentSkipListMap$Node;->appendMarker(Ljava/util/concurrent/ConcurrentSkipListMap$Node;)Z
@@ -20781,19 +41501,28 @@
 HSPLjava/util/concurrent/ConcurrentSkipListMap$Node;->casValue(Ljava/lang/Object;Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/ConcurrentSkipListMap;-><init>()V
 HSPLjava/util/concurrent/ConcurrentSkipListMap;->casHead(Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;)Z
+HSPLjava/util/concurrent/ConcurrentSkipListMap;->clear()V
+HSPLjava/util/concurrent/ConcurrentSkipListMap;->containsKey(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/ConcurrentSkipListMap;->cpr(Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLjava/util/concurrent/ConcurrentSkipListMap;->doGet(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentSkipListMap;->doPut(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentSkipListMap;->doRemove(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentSkipListMap;->findFirst()Ljava/util/concurrent/ConcurrentSkipListMap$Node;
 HSPLjava/util/concurrent/ConcurrentSkipListMap;->findPredecessor(Ljava/lang/Object;Ljava/util/Comparator;)Ljava/util/concurrent/ConcurrentSkipListMap$Node;
 HSPLjava/util/concurrent/ConcurrentSkipListMap;->initialize()V
 HSPLjava/util/concurrent/ConcurrentSkipListMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentSkipListMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentSkipListMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/concurrent/ConcurrentSkipListMap;->tryReduceLevel()V
+HSPLjava/util/concurrent/ConcurrentSkipListSet;-><init>()V
+HSPLjava/util/concurrent/ConcurrentSkipListSet;->add(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentSkipListSet;->contains(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/CopyOnWriteArrayList$COWIterator;-><init>([Ljava/lang/Object;I)V
 HSPLjava/util/concurrent/CopyOnWriteArrayList$COWIterator;->hasNext()Z
 HSPLjava/util/concurrent/CopyOnWriteArrayList$COWIterator;->next()Ljava/lang/Object;
 HSPLjava/util/concurrent/CopyOnWriteArrayList;-><init>()V
 HSPLjava/util/concurrent/CopyOnWriteArrayList;-><init>(Ljava/util/Collection;)V
+HSPLjava/util/concurrent/CopyOnWriteArrayList;-><init>([Ljava/lang/Object;)V
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->add(ILjava/lang/Object;)V
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->add(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->addAll(Ljava/util/Collection;)Z
@@ -20801,6 +41530,7 @@
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->addIfAbsent(Ljava/lang/Object;[Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->clear()V
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/CopyOnWriteArrayList;->forEach(Ljava/util/function/Consumer;)V
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->get(I)Ljava/lang/Object;
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->get([Ljava/lang/Object;I)Ljava/lang/Object;
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->getArray()[Ljava/lang/Object;
@@ -20810,11 +41540,16 @@
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->remove(I)Ljava/lang/Object;
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->remove(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->remove(Ljava/lang/Object;[Ljava/lang/Object;I)Z
+HSPLjava/util/concurrent/CopyOnWriteArrayList;->removeAll(Ljava/util/Collection;)Z
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->setArray([Ljava/lang/Object;)V
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->size()I
+HPLjava/util/concurrent/CopyOnWriteArrayList;->sort(Ljava/util/Comparator;)V
+HSPLjava/util/concurrent/CopyOnWriteArrayList;->toArray()[Ljava/lang/Object;
 HSPLjava/util/concurrent/CopyOnWriteArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
+HSPLjava/util/concurrent/CopyOnWriteArrayList;->toString()Ljava/lang/String;
 HSPLjava/util/concurrent/CopyOnWriteArraySet;-><init>()V
 HSPLjava/util/concurrent/CopyOnWriteArraySet;->add(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/CopyOnWriteArraySet;->clear()V
 HSPLjava/util/concurrent/CopyOnWriteArraySet;->isEmpty()Z
 HSPLjava/util/concurrent/CopyOnWriteArraySet;->iterator()Ljava/util/Iterator;
 HSPLjava/util/concurrent/CopyOnWriteArraySet;->remove(Ljava/lang/Object;)Z
@@ -20845,6 +41580,7 @@
 HSPLjava/util/concurrent/Executors$FinalizableDelegatedExecutorService;->finalize()V
 HSPLjava/util/concurrent/Executors$RunnableAdapter;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
 HSPLjava/util/concurrent/Executors$RunnableAdapter;->call()Ljava/lang/Object;
+HSPLjava/util/concurrent/Executors;->callable(Ljava/lang/Runnable;)Ljava/util/concurrent/Callable;
 HSPLjava/util/concurrent/Executors;->callable(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Callable;
 HSPLjava/util/concurrent/Executors;->defaultThreadFactory()Ljava/util/concurrent/ThreadFactory;
 HSPLjava/util/concurrent/Executors;->newCachedThreadPool()Ljava/util/concurrent/ExecutorService;
@@ -20859,7 +41595,9 @@
 HSPLjava/util/concurrent/Executors;->newSingleThreadScheduledExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
 HSPLjava/util/concurrent/Executors;->unconfigurableExecutorService(Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/ExecutorService;
 HSPLjava/util/concurrent/Executors;->unconfigurableScheduledExecutorService(Ljava/util/concurrent/ScheduledExecutorService;)Ljava/util/concurrent/ScheduledExecutorService;
+HSPLjava/util/concurrent/ForkJoinPool;->managedBlock(Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V
 HSPLjava/util/concurrent/ForkJoinTask;-><init>()V
+HSPLjava/util/concurrent/ForkJoinTask;->compareAndSetForkJoinTaskTag(SS)Z
 HSPLjava/util/concurrent/FutureTask$WaitNode;-><init>()V
 HSPLjava/util/concurrent/FutureTask;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
 HSPLjava/util/concurrent/FutureTask;-><init>(Ljava/util/concurrent/Callable;)V
@@ -20878,28 +41616,56 @@
 HSPLjava/util/concurrent/FutureTask;->runAndReset()Z
 HSPLjava/util/concurrent/FutureTask;->set(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/FutureTask;->setException(Ljava/lang/Throwable;)V
+HSPLjava/util/concurrent/LinkedBlockingDeque$AbstractItr;-><init>(Ljava/util/concurrent/LinkedBlockingDeque;)V
+HSPLjava/util/concurrent/LinkedBlockingDeque$AbstractItr;->advance()V
+HSPLjava/util/concurrent/LinkedBlockingDeque$AbstractItr;->hasNext()Z
+HSPLjava/util/concurrent/LinkedBlockingDeque$AbstractItr;->next()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque$AbstractItr;->succ(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Ljava/util/concurrent/LinkedBlockingDeque$Node;
+HSPLjava/util/concurrent/LinkedBlockingDeque$Itr;-><init>(Ljava/util/concurrent/LinkedBlockingDeque;)V
+HSPLjava/util/concurrent/LinkedBlockingDeque$Itr;-><init>(Ljava/util/concurrent/LinkedBlockingDeque;Ljava/util/concurrent/LinkedBlockingDeque$1;)V
+HSPLjava/util/concurrent/LinkedBlockingDeque$Itr;->firstNode()Ljava/util/concurrent/LinkedBlockingDeque$Node;
+HSPLjava/util/concurrent/LinkedBlockingDeque$Itr;->nextNode(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Ljava/util/concurrent/LinkedBlockingDeque$Node;
 HSPLjava/util/concurrent/LinkedBlockingDeque$Node;-><init>(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/LinkedBlockingDeque;-><init>()V
 HSPLjava/util/concurrent/LinkedBlockingDeque;-><init>(I)V
+HSPLjava/util/concurrent/LinkedBlockingDeque;->add(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/LinkedBlockingDeque;->addFirst(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/LinkedBlockingDeque;->addLast(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/LinkedBlockingDeque;->clear()V
+HSPLjava/util/concurrent/LinkedBlockingDeque;->iterator()Ljava/util/Iterator;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->linkFirst(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Z
 HSPLjava/util/concurrent/LinkedBlockingDeque;->linkLast(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Z
 HSPLjava/util/concurrent/LinkedBlockingDeque;->offer(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/LinkedBlockingDeque;->offerFirst(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/LinkedBlockingDeque;->offerLast(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/LinkedBlockingDeque;->peekFirst()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->poll()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
 HSPLjava/util/concurrent/LinkedBlockingDeque;->pollFirst()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->pollFirst(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
+HPLjava/util/concurrent/LinkedBlockingDeque;->pop()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->remainingCapacity()I
+HSPLjava/util/concurrent/LinkedBlockingDeque;->removeFirst()Ljava/lang/Object;
 HSPLjava/util/concurrent/LinkedBlockingDeque;->size()I
 HSPLjava/util/concurrent/LinkedBlockingDeque;->take()Ljava/lang/Object;
 HSPLjava/util/concurrent/LinkedBlockingDeque;->takeFirst()Ljava/lang/Object;
 HSPLjava/util/concurrent/LinkedBlockingDeque;->unlinkFirst()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingQueue$Itr;-><init>(Ljava/util/concurrent/LinkedBlockingQueue;)V
+HSPLjava/util/concurrent/LinkedBlockingQueue$Itr;->hasNext()Z
 HSPLjava/util/concurrent/LinkedBlockingQueue$Node;-><init>(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/LinkedBlockingQueue;-><init>()V
 HSPLjava/util/concurrent/LinkedBlockingQueue;-><init>(I)V
+HSPLjava/util/concurrent/LinkedBlockingQueue;->clear()V
 HSPLjava/util/concurrent/LinkedBlockingQueue;->dequeue()Ljava/lang/Object;
 HSPLjava/util/concurrent/LinkedBlockingQueue;->drainTo(Ljava/util/Collection;)I
 HSPLjava/util/concurrent/LinkedBlockingQueue;->drainTo(Ljava/util/Collection;I)I
 HSPLjava/util/concurrent/LinkedBlockingQueue;->enqueue(Ljava/util/concurrent/LinkedBlockingQueue$Node;)V
 HSPLjava/util/concurrent/LinkedBlockingQueue;->fullyLock()V
 HSPLjava/util/concurrent/LinkedBlockingQueue;->fullyUnlock()V
+HSPLjava/util/concurrent/LinkedBlockingQueue;->iterator()Ljava/util/Iterator;
 HSPLjava/util/concurrent/LinkedBlockingQueue;->offer(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/LinkedBlockingQueue;->offer(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Z
+HSPLjava/util/concurrent/LinkedBlockingQueue;->peek()Ljava/lang/Object;
 HSPLjava/util/concurrent/LinkedBlockingQueue;->poll()Ljava/lang/Object;
 HSPLjava/util/concurrent/LinkedBlockingQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
 HSPLjava/util/concurrent/LinkedBlockingQueue;->put(Ljava/lang/Object;)V
@@ -20911,14 +41677,19 @@
 HSPLjava/util/concurrent/PriorityBlockingQueue;-><init>(ILjava/util/Comparator;)V
 HSPLjava/util/concurrent/PriorityBlockingQueue;->add(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/PriorityBlockingQueue;->dequeue()Ljava/lang/Object;
+HSPLjava/util/concurrent/PriorityBlockingQueue;->indexOf(Ljava/lang/Object;)I
 HSPLjava/util/concurrent/PriorityBlockingQueue;->offer(Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/PriorityBlockingQueue;->peek()Ljava/lang/Object;
 HSPLjava/util/concurrent/PriorityBlockingQueue;->poll()Ljava/lang/Object;
 HSPLjava/util/concurrent/PriorityBlockingQueue;->put(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/PriorityBlockingQueue;->siftDownComparable(ILjava/lang/Object;[Ljava/lang/Object;I)V
+HSPLjava/util/concurrent/PriorityBlockingQueue;->siftDownUsingComparator(ILjava/lang/Object;[Ljava/lang/Object;ILjava/util/Comparator;)V
 HSPLjava/util/concurrent/PriorityBlockingQueue;->siftUpComparable(ILjava/lang/Object;[Ljava/lang/Object;)V
+HSPLjava/util/concurrent/PriorityBlockingQueue;->siftUpUsingComparator(ILjava/lang/Object;[Ljava/lang/Object;Ljava/util/Comparator;)V
+HSPLjava/util/concurrent/PriorityBlockingQueue;->size()I
 HSPLjava/util/concurrent/PriorityBlockingQueue;->take()Ljava/lang/Object;
 HSPLjava/util/concurrent/PriorityBlockingQueue;->tryGrow([Ljava/lang/Object;I)V
+HSPLjava/util/concurrent/RejectedExecutionException;-><init>(Ljava/lang/String;)V
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;[Ljava/util/concurrent/RunnableScheduledFuture;)V
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->hasNext()Z
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;-><init>()V
@@ -20942,6 +41713,7 @@
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->take()Ljava/lang/Object;
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->take()Ljava/util/concurrent/RunnableScheduledFuture;
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->toArray()[Ljava/lang/Object;
+HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor;Ljava/lang/Runnable;Ljava/lang/Object;JJ)V
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor;Ljava/lang/Runnable;Ljava/lang/Object;JJJ)V
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor;Ljava/util/concurrent/Callable;JJ)V
@@ -20975,6 +41747,8 @@
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(J)J
 HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(JLjava/util/concurrent/TimeUnit;)J
+HSPLjava/util/concurrent/Semaphore$FairSync;-><init>(I)V
+HSPLjava/util/concurrent/Semaphore$FairSync;->tryAcquireShared(I)I
 HSPLjava/util/concurrent/Semaphore$NonfairSync;-><init>(I)V
 HSPLjava/util/concurrent/Semaphore$NonfairSync;->tryAcquireShared(I)I
 HSPLjava/util/concurrent/Semaphore$Sync;-><init>(I)V
@@ -20987,6 +41761,9 @@
 HSPLjava/util/concurrent/Semaphore;->acquireUninterruptibly()V
 HSPLjava/util/concurrent/Semaphore;->availablePermits()I
 HSPLjava/util/concurrent/Semaphore;->release()V
+HSPLjava/util/concurrent/Semaphore;->tryAcquire()Z
+HSPLjava/util/concurrent/Semaphore;->tryAcquire(IJLjava/util/concurrent/TimeUnit;)Z
+HSPLjava/util/concurrent/Semaphore;->tryAcquire(JLjava/util/concurrent/TimeUnit;)Z
 HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;-><init>(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->casNext(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
 HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->isCancelled()Z
@@ -21003,15 +41780,27 @@
 HSPLjava/util/concurrent/SynchronousQueue$Transferer;-><init>()V
 HSPLjava/util/concurrent/SynchronousQueue;-><init>()V
 HSPLjava/util/concurrent/SynchronousQueue;-><init>(Z)V
+HSPLjava/util/concurrent/SynchronousQueue;->drainTo(Ljava/util/Collection;)I
 HSPLjava/util/concurrent/SynchronousQueue;->isEmpty()Z
 HSPLjava/util/concurrent/SynchronousQueue;->offer(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/SynchronousQueue;->poll()Ljava/lang/Object;
 HSPLjava/util/concurrent/SynchronousQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
 HSPLjava/util/concurrent/SynchronousQueue;->take()Ljava/lang/Object;
+HSPLjava/util/concurrent/ThreadLocalRandom;->current()Ljava/util/concurrent/ThreadLocalRandom;
+HSPLjava/util/concurrent/ThreadLocalRandom;->getProbe()I
+HSPLjava/util/concurrent/ThreadLocalRandom;->localInit()V
+HSPLjava/util/concurrent/ThreadLocalRandom;->mix32(J)I
+HSPLjava/util/concurrent/ThreadLocalRandom;->mix64(J)J
 HSPLjava/util/concurrent/ThreadLocalRandom;->nextInt()I
+HSPLjava/util/concurrent/ThreadLocalRandom;->nextSecondarySeed()I
 HSPLjava/util/concurrent/ThreadLocalRandom;->nextSeed()J
+HSPLjava/util/concurrent/ThreadPoolExecutor$AbortPolicy;-><init>()V
+HSPLjava/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy;-><init>()V
 HSPLjava/util/concurrent/ThreadPoolExecutor$DiscardPolicy;-><init>()V
 HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;-><init>(Ljava/util/concurrent/ThreadPoolExecutor;Ljava/lang/Runnable;)V
 HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->interruptIfStarted()V
+HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->isHeldExclusively()Z
+HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->isLocked()Z
 HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->lock()V
 HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->run()V
 HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->tryAcquire(I)Z
@@ -21019,12 +41808,14 @@
 HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->tryRelease(I)Z
 HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->unlock()V
 HSPLjava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V
+HSPLjava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/RejectedExecutionHandler;)V
 HSPLjava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
 HSPLjava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V
 HSPLjava/util/concurrent/ThreadPoolExecutor;->addWorker(Ljava/lang/Runnable;Z)Z
 HSPLjava/util/concurrent/ThreadPoolExecutor;->advanceRunState(I)V
 HSPLjava/util/concurrent/ThreadPoolExecutor;->afterExecute(Ljava/lang/Runnable;Ljava/lang/Throwable;)V
 HSPLjava/util/concurrent/ThreadPoolExecutor;->allowCoreThreadTimeOut(Z)V
+HSPLjava/util/concurrent/ThreadPoolExecutor;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z
 HSPLjava/util/concurrent/ThreadPoolExecutor;->beforeExecute(Ljava/lang/Thread;Ljava/lang/Runnable;)V
 HSPLjava/util/concurrent/ThreadPoolExecutor;->checkShutdownAccess()V
 HSPLjava/util/concurrent/ThreadPoolExecutor;->compareAndDecrementWorkerCount(I)Z
@@ -21035,7 +41826,9 @@
 HSPLjava/util/concurrent/ThreadPoolExecutor;->ensurePrestart()V
 HSPLjava/util/concurrent/ThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V
 HSPLjava/util/concurrent/ThreadPoolExecutor;->finalize()V
+HSPLjava/util/concurrent/ThreadPoolExecutor;->getMaximumPoolSize()I
 HSPLjava/util/concurrent/ThreadPoolExecutor;->getQueue()Ljava/util/concurrent/BlockingQueue;
+HSPLjava/util/concurrent/ThreadPoolExecutor;->getRejectedExecutionHandler()Ljava/util/concurrent/RejectedExecutionHandler;
 HSPLjava/util/concurrent/ThreadPoolExecutor;->getTask()Ljava/lang/Runnable;
 HSPLjava/util/concurrent/ThreadPoolExecutor;->getThreadFactory()Ljava/util/concurrent/ThreadFactory;
 HSPLjava/util/concurrent/ThreadPoolExecutor;->interruptIdleWorkers()V
@@ -21046,8 +41839,10 @@
 HSPLjava/util/concurrent/ThreadPoolExecutor;->isShutdown()Z
 HSPLjava/util/concurrent/ThreadPoolExecutor;->onShutdown()V
 HSPLjava/util/concurrent/ThreadPoolExecutor;->prestartAllCoreThreads()I
+HSPLjava/util/concurrent/ThreadPoolExecutor;->prestartCoreThread()Z
 HSPLjava/util/concurrent/ThreadPoolExecutor;->processWorkerExit(Ljava/util/concurrent/ThreadPoolExecutor$Worker;Z)V
 HSPLjava/util/concurrent/ThreadPoolExecutor;->purge()V
+HSPLjava/util/concurrent/ThreadPoolExecutor;->reject(Ljava/lang/Runnable;)V
 HSPLjava/util/concurrent/ThreadPoolExecutor;->remove(Ljava/lang/Runnable;)Z
 HSPLjava/util/concurrent/ThreadPoolExecutor;->runStateAtLeast(II)Z
 HSPLjava/util/concurrent/ThreadPoolExecutor;->runStateLessThan(II)Z
@@ -21060,15 +41855,23 @@
 HSPLjava/util/concurrent/ThreadPoolExecutor;->shutdown()V
 HSPLjava/util/concurrent/ThreadPoolExecutor;->shutdownNow()Ljava/util/List;
 HSPLjava/util/concurrent/ThreadPoolExecutor;->terminated()V
+HSPLjava/util/concurrent/ThreadPoolExecutor;->toString()Ljava/lang/String;
 HSPLjava/util/concurrent/ThreadPoolExecutor;->tryTerminate()V
 HSPLjava/util/concurrent/ThreadPoolExecutor;->workerCountOf(I)I
 HSPLjava/util/concurrent/TimeUnit$1;->convert(JLjava/util/concurrent/TimeUnit;)J
+HSPLjava/util/concurrent/TimeUnit$1;->excessNanos(JJ)I
+HSPLjava/util/concurrent/TimeUnit$1;->toDays(J)J
+HSPLjava/util/concurrent/TimeUnit$1;->toHours(J)J
 HSPLjava/util/concurrent/TimeUnit$1;->toMicros(J)J
 HSPLjava/util/concurrent/TimeUnit$1;->toMillis(J)J
+HSPLjava/util/concurrent/TimeUnit$1;->toMinutes(J)J
 HSPLjava/util/concurrent/TimeUnit$1;->toNanos(J)J
 HSPLjava/util/concurrent/TimeUnit$1;->toSeconds(J)J
 HSPLjava/util/concurrent/TimeUnit$2;->convert(JLjava/util/concurrent/TimeUnit;)J
+HSPLjava/util/concurrent/TimeUnit$2;->toMicros(J)J
 HSPLjava/util/concurrent/TimeUnit$2;->toMillis(J)J
+HSPLjava/util/concurrent/TimeUnit$2;->toNanos(J)J
+HSPLjava/util/concurrent/TimeUnit$2;->toSeconds(J)J
 HSPLjava/util/concurrent/TimeUnit$3;->convert(JLjava/util/concurrent/TimeUnit;)J
 HSPLjava/util/concurrent/TimeUnit$3;->toDays(J)J
 HSPLjava/util/concurrent/TimeUnit$3;->toHours(J)J
@@ -21080,20 +41883,27 @@
 HSPLjava/util/concurrent/TimeUnit$4;->convert(JLjava/util/concurrent/TimeUnit;)J
 HSPLjava/util/concurrent/TimeUnit$4;->toMicros(J)J
 HSPLjava/util/concurrent/TimeUnit$4;->toMillis(J)J
+HSPLjava/util/concurrent/TimeUnit$4;->toMinutes(J)J
 HSPLjava/util/concurrent/TimeUnit$4;->toNanos(J)J
 HSPLjava/util/concurrent/TimeUnit$4;->toSeconds(J)J
 HSPLjava/util/concurrent/TimeUnit$5;->convert(JLjava/util/concurrent/TimeUnit;)J
+HSPLjava/util/concurrent/TimeUnit$5;->toMicros(J)J
 HSPLjava/util/concurrent/TimeUnit$5;->toMillis(J)J
 HSPLjava/util/concurrent/TimeUnit$5;->toNanos(J)J
 HSPLjava/util/concurrent/TimeUnit$5;->toSeconds(J)J
+HSPLjava/util/concurrent/TimeUnit$6;->convert(JLjava/util/concurrent/TimeUnit;)J
 HSPLjava/util/concurrent/TimeUnit$6;->toMillis(J)J
 HSPLjava/util/concurrent/TimeUnit$6;->toMinutes(J)J
 HSPLjava/util/concurrent/TimeUnit$6;->toNanos(J)J
 HSPLjava/util/concurrent/TimeUnit$6;->toSeconds(J)J
+HSPLjava/util/concurrent/TimeUnit$7;->convert(JLjava/util/concurrent/TimeUnit;)J
+HSPLjava/util/concurrent/TimeUnit$7;->toHours(J)J
 HSPLjava/util/concurrent/TimeUnit$7;->toMillis(J)J
 HSPLjava/util/concurrent/TimeUnit$7;->toMinutes(J)J
 HSPLjava/util/concurrent/TimeUnit$7;->toNanos(J)J
 HSPLjava/util/concurrent/TimeUnit$7;->toSeconds(J)J
+HSPLjava/util/concurrent/TimeUnit;->sleep(J)V
+HSPLjava/util/concurrent/TimeUnit;->values()[Ljava/util/concurrent/TimeUnit;
 HSPLjava/util/concurrent/TimeUnit;->x(JJJ)J
 HSPLjava/util/concurrent/TimeoutException;-><init>()V
 HSPLjava/util/concurrent/TimeoutException;-><init>(Ljava/lang/String;)V
@@ -21104,6 +41914,7 @@
 HSPLjava/util/concurrent/atomic/AtomicBoolean;->getAndSet(Z)Z
 HSPLjava/util/concurrent/atomic/AtomicBoolean;->lazySet(Z)V
 HSPLjava/util/concurrent/atomic/AtomicBoolean;->set(Z)V
+HSPLjava/util/concurrent/atomic/AtomicBoolean;->toString()Ljava/lang/String;
 HSPLjava/util/concurrent/atomic/AtomicInteger;-><init>()V
 HSPLjava/util/concurrent/atomic/AtomicInteger;-><init>(I)V
 HSPLjava/util/concurrent/atomic/AtomicInteger;->addAndGet(I)I
@@ -21117,6 +41928,10 @@
 HSPLjava/util/concurrent/atomic/AtomicInteger;->incrementAndGet()I
 HSPLjava/util/concurrent/atomic/AtomicInteger;->lazySet(I)V
 HSPLjava/util/concurrent/atomic/AtomicInteger;->set(I)V
+HSPLjava/util/concurrent/atomic/AtomicInteger;->toString()Ljava/lang/String;
+HSPLjava/util/concurrent/atomic/AtomicIntegerArray;-><init>(I)V
+HSPLjava/util/concurrent/atomic/AtomicIntegerArray;->byteOffset(I)J
+HSPLjava/util/concurrent/atomic/AtomicIntegerArray;->checkedByteOffset(I)J
 HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
 HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->accessCheck(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->compareAndSet(Ljava/lang/Object;II)Z
@@ -21139,6 +41954,7 @@
 HSPLjava/util/concurrent/atomic/AtomicLong;->incrementAndGet()J
 HSPLjava/util/concurrent/atomic/AtomicLong;->lazySet(J)V
 HSPLjava/util/concurrent/atomic/AtomicLong;->set(J)V
+HSPLjava/util/concurrent/atomic/AtomicLong;->toString()Ljava/lang/String;
 HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
 HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->accessCheck(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->getAndAdd(Ljava/lang/Object;J)J
@@ -21151,8 +41967,10 @@
 HSPLjava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
 HSPLjava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
 HSPLjava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/atomic/AtomicReference;->getAndUpdate(Ljava/util/function/UnaryOperator;)Ljava/lang/Object;
 HSPLjava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/atomic/AtomicReference;->set(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/atomic/AtomicReference;->updateAndGet(Ljava/util/function/UnaryOperator;)Ljava/lang/Object;
 HSPLjava/util/concurrent/atomic/AtomicReferenceArray;-><init>(I)V
 HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->byteOffset(I)J
 HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->checkedByteOffset(I)J
@@ -21172,8 +41990,13 @@
 HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
 HSPLjava/util/concurrent/atomic/LongAdder;-><init>()V
 HSPLjava/util/concurrent/atomic/LongAdder;->add(J)V
+HSPLjava/util/concurrent/atomic/Striped64$Cell;-><clinit>()V
+HSPLjava/util/concurrent/atomic/Striped64$Cell;-><init>(J)V
 HSPLjava/util/concurrent/atomic/Striped64;-><init>()V
 HSPLjava/util/concurrent/atomic/Striped64;->casBase(JJ)Z
+HSPLjava/util/concurrent/atomic/Striped64;->casCellsBusy()Z
+HSPLjava/util/concurrent/atomic/Striped64;->getProbe()I
+HSPLjava/util/concurrent/atomic/Striped64;->longAccumulate(JLjava/util/function/LongBinaryOperator;Z)V
 HSPLjava/util/concurrent/locks/AbstractOwnableSynchronizer;-><init>()V
 HSPLjava/util/concurrent/locks/AbstractOwnableSynchronizer;->getExclusiveOwnerThread()Ljava/lang/Thread;
 HSPLjava/util/concurrent/locks/AbstractOwnableSynchronizer;->setExclusiveOwnerThread(Ljava/lang/Thread;)V
@@ -21184,6 +42007,8 @@
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->checkInterruptWhileWaiting(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)I
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->doSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->doSignalAll(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
+HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->hasWaiters()Z
+HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->isOwnedBy(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;)Z
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->reportInterruptAfterWait(I)V
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->signal()V
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->signalAll()V
@@ -21216,8 +42041,10 @@
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->fullyRelease(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)I
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->getState()I
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->hasQueuedPredecessors()Z
+HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->hasWaiters(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Z
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->initializeSyncQueue()V
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->isOnSyncQueue(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->owns(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Z
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->parkAndCheckInterrupt()Z
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->release(I)Z
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->releaseShared(I)Z
@@ -21228,12 +42055,16 @@
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->shouldParkAfterFailedAcquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->transferAfterCancelledWait(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->transferForSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->tryAcquireNanos(IJ)Z
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->tryAcquireSharedNanos(IJ)Z
 HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->unparkSuccessor(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
 HSPLjava/util/concurrent/locks/LockSupport;->park(Ljava/lang/Object;)V
 HSPLjava/util/concurrent/locks/LockSupport;->parkNanos(Ljava/lang/Object;J)V
 HSPLjava/util/concurrent/locks/LockSupport;->setBlocker(Ljava/lang/Thread;Ljava/lang/Object;)V
 HSPLjava/util/concurrent/locks/LockSupport;->unpark(Ljava/lang/Thread;)V
+HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;-><init>()V
+HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;->lock()V
+HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;->tryAcquire(I)Z
 HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;-><init>()V
 HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;->lock()V
 HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;->tryAcquire(I)Z
@@ -21244,11 +42075,13 @@
 HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->tryRelease(I)Z
 HSPLjava/util/concurrent/locks/ReentrantLock;-><init>()V
 HSPLjava/util/concurrent/locks/ReentrantLock;-><init>(Z)V
+HSPLjava/util/concurrent/locks/ReentrantLock;->hasWaiters(Ljava/util/concurrent/locks/Condition;)Z
 HSPLjava/util/concurrent/locks/ReentrantLock;->isHeldByCurrentThread()Z
 HSPLjava/util/concurrent/locks/ReentrantLock;->lock()V
 HSPLjava/util/concurrent/locks/ReentrantLock;->lockInterruptibly()V
 HSPLjava/util/concurrent/locks/ReentrantLock;->newCondition()Ljava/util/concurrent/locks/Condition;
 HSPLjava/util/concurrent/locks/ReentrantLock;->tryLock()Z
+HSPLjava/util/concurrent/locks/ReentrantLock;->tryLock(JLjava/util/concurrent/TimeUnit;)Z
 HSPLjava/util/concurrent/locks/ReentrantLock;->unlock()V
 HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;-><init>()V
 HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;->readerShouldBlock()Z
@@ -21282,6 +42115,31 @@
 HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->readLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
 HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
 HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
+HSPLjava/util/function/-$$Lambda$BinaryOperator$V_WUclL0kAOZvMw9EtWtwAvmNJc;-><init>(Ljava/util/Comparator;)V
+HSPLjava/util/function/-$$Lambda$BinaryOperator$V_WUclL0kAOZvMw9EtWtwAvmNJc;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/function/-$$Lambda$BinaryOperator$WKN0kahVeFfmJEk_tKszY8tRayo;-><init>(Ljava/util/Comparator;)V
+HSPLjava/util/function/-$$Lambda$DoubleUnaryOperator$EzzlhUGRoL66wVBCG-_euZgC-CA;-><init>(Ljava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;)V
+HSPLjava/util/function/-$$Lambda$DoubleUnaryOperator$EzzlhUGRoL66wVBCG-_euZgC-CA;->applyAsDouble(D)D
+HSPLjava/util/function/-$$Lambda$Function$1mm3dZ9IMG2T6zAULCCEh3eoHSY;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/function/-$$Lambda$Function$T8wYIfMRq5hbW0Q4qNkHIIrI-BA;-><init>(Ljava/util/function/Function;Ljava/util/function/Function;)V
+HSPLjava/util/function/-$$Lambda$Function$T8wYIfMRq5hbW0Q4qNkHIIrI-BA;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/function/-$$Lambda$Predicate$17UUIF1CH_K9duk0ChtjSwOycuM;-><init>(Ljava/util/function/Predicate;Ljava/util/function/Predicate;)V
+HSPLjava/util/function/-$$Lambda$Predicate$17UUIF1CH_K9duk0ChtjSwOycuM;->test(Ljava/lang/Object;)Z
+HPLjava/util/function/-$$Lambda$Predicate$GyIVQ08CWbeMZxHDkkrN-5apRkc;-><init>(Ljava/util/function/Predicate;Ljava/util/function/Predicate;)V
+PLjava/util/function/-$$Lambda$Predicate$GyIVQ08CWbeMZxHDkkrN-5apRkc;->test(Ljava/lang/Object;)Z
+HSPLjava/util/function/BinaryOperator;->lambda$maxBy$1(Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/function/BinaryOperator;->maxBy(Ljava/util/Comparator;)Ljava/util/function/BinaryOperator;
+HSPLjava/util/function/BinaryOperator;->minBy(Ljava/util/Comparator;)Ljava/util/function/BinaryOperator;
+HSPLjava/util/function/DoubleUnaryOperator;->andThen(Ljava/util/function/DoubleUnaryOperator;)Ljava/util/function/DoubleUnaryOperator;
+HSPLjava/util/function/DoubleUnaryOperator;->lambda$andThen$1(Ljava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;D)D
+HSPLjava/util/function/Function;->andThen(Ljava/util/function/Function;)Ljava/util/function/Function;
+HSPLjava/util/function/Function;->identity()Ljava/util/function/Function;
+HSPLjava/util/function/Function;->lambda$andThen$1(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/function/Function;->lambda$identity$2(Ljava/lang/Object;)Ljava/lang/Object;
+HPLjava/util/function/Predicate;->and(Ljava/util/function/Predicate;)Ljava/util/function/Predicate;
+PLjava/util/function/Predicate;->lambda$and$0(Ljava/util/function/Predicate;Ljava/util/function/Predicate;Ljava/lang/Object;)Z
+HSPLjava/util/function/Predicate;->lambda$or$2(Ljava/util/function/Predicate;Ljava/util/function/Predicate;Ljava/lang/Object;)Z
+HSPLjava/util/function/Predicate;->or(Ljava/util/function/Predicate;)Ljava/util/function/Predicate;
 HSPLjava/util/jar/Attributes$Name;-><init>(Ljava/lang/String;)V
 HSPLjava/util/jar/Attributes$Name;->equals(Ljava/lang/Object;)Z
 HSPLjava/util/jar/Attributes$Name;->hashCode()I
@@ -21294,6 +42152,7 @@
 HSPLjava/util/jar/Attributes;-><init>(I)V
 HSPLjava/util/jar/Attributes;->entrySet()Ljava/util/Set;
 HSPLjava/util/jar/Attributes;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/jar/Attributes;->getValue(Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/util/jar/Attributes;->getValue(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
 HSPLjava/util/jar/Attributes;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 HSPLjava/util/jar/Attributes;->putValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
@@ -21314,6 +42173,7 @@
 HSPLjava/util/jar/JarFile;->maybeInstantiateVerifier()V
 HSPLjava/util/jar/JarVerifier$3;-><init>(Ljava/util/jar/JarVerifier;)V
 HSPLjava/util/jar/JarVerifier$VerifierStream;-><init>(Ljava/util/jar/Manifest;Ljava/util/jar/JarEntry;Ljava/io/InputStream;Ljava/util/jar/JarVerifier;)V
+HSPLjava/util/jar/JarVerifier$VerifierStream;->available()I
 HSPLjava/util/jar/JarVerifier$VerifierStream;->close()V
 HSPLjava/util/jar/JarVerifier$VerifierStream;->read()I
 HSPLjava/util/jar/JarVerifier$VerifierStream;->read([BII)I
@@ -21340,12 +42200,43 @@
 HSPLjava/util/jar/Manifest;->read(Ljava/io/InputStream;)V
 HSPLjava/util/jar/Manifest;->toLower(I)I
 HSPLjava/util/logging/ErrorManager;-><init>()V
+HSPLjava/util/logging/FileHandler$1;-><init>(Ljava/util/logging/FileHandler;)V
+HSPLjava/util/logging/FileHandler$1;->run()Ljava/lang/Object;
+HSPLjava/util/logging/FileHandler$InitializationErrorManager;-><init>()V
+HSPLjava/util/logging/FileHandler$InitializationErrorManager;-><init>(Ljava/util/logging/FileHandler$1;)V
+HSPLjava/util/logging/FileHandler$MeteredStream;-><init>(Ljava/util/logging/FileHandler;Ljava/io/OutputStream;I)V
+HSPLjava/util/logging/FileHandler$MeteredStream;->close()V
+HSPLjava/util/logging/FileHandler$MeteredStream;->flush()V
+HSPLjava/util/logging/FileHandler$MeteredStream;->write([BII)V
+HSPLjava/util/logging/FileHandler;-><clinit>()V
+HSPLjava/util/logging/FileHandler;-><init>(Ljava/lang/String;IIZ)V
+HSPLjava/util/logging/FileHandler;->access$100(Ljava/util/logging/FileHandler;)V
+HSPLjava/util/logging/FileHandler;->configure()V
+HSPLjava/util/logging/FileHandler;->generate(Ljava/lang/String;II)Ljava/io/File;
+HSPLjava/util/logging/FileHandler;->isParentWritable(Ljava/nio/file/Path;)Z
+HSPLjava/util/logging/FileHandler;->open(Ljava/io/File;Z)V
+HSPLjava/util/logging/FileHandler;->openFiles()V
+HSPLjava/util/logging/FileHandler;->publish(Ljava/util/logging/LogRecord;)V
+HSPLjava/util/logging/FileHandler;->rotate()V
+HSPLjava/util/logging/Formatter;-><init>()V
+HSPLjava/util/logging/Formatter;->formatMessage(Ljava/util/logging/LogRecord;)Ljava/lang/String;
+HSPLjava/util/logging/Formatter;->getHead(Ljava/util/logging/Handler;)Ljava/lang/String;
+HSPLjava/util/logging/Formatter;->getTail(Ljava/util/logging/Handler;)Ljava/lang/String;
 HSPLjava/util/logging/Handler;-><init>()V
 HSPLjava/util/logging/Handler;->checkPermission()V
+HSPLjava/util/logging/Handler;->getEncoding()Ljava/lang/String;
+HSPLjava/util/logging/Handler;->getFilter()Ljava/util/logging/Filter;
 HSPLjava/util/logging/Handler;->getFormatter()Ljava/util/logging/Formatter;
+HSPLjava/util/logging/Handler;->getLevel()Ljava/util/logging/Level;
+HSPLjava/util/logging/Handler;->isLoggable(Ljava/util/logging/LogRecord;)Z
+HSPLjava/util/logging/Handler;->setEncoding(Ljava/lang/String;)V
+HSPLjava/util/logging/Handler;->setErrorManager(Ljava/util/logging/ErrorManager;)V
+HSPLjava/util/logging/Handler;->setFilter(Ljava/util/logging/Filter;)V
 HSPLjava/util/logging/Handler;->setFormatter(Ljava/util/logging/Formatter;)V
+HSPLjava/util/logging/Handler;->setLevel(Ljava/util/logging/Level;)V
 HSPLjava/util/logging/Level$KnownLevel;->findByName(Ljava/lang/String;)Ljava/util/logging/Level$KnownLevel;
 HSPLjava/util/logging/Level;->equals(Ljava/lang/Object;)Z
+HSPLjava/util/logging/Level;->findLevel(Ljava/lang/String;)Ljava/util/logging/Level;
 HSPLjava/util/logging/Level;->intValue()I
 HSPLjava/util/logging/LogManager$5;-><init>(Ljava/util/logging/LogManager;Ljava/lang/String;Ljava/util/logging/Logger;)V
 HSPLjava/util/logging/LogManager$5;->run()Ljava/lang/Object;
@@ -21374,6 +42265,7 @@
 HSPLjava/util/logging/LogManager$LoggerWeakRef;->setParentRef(Ljava/lang/ref/WeakReference;)V
 HSPLjava/util/logging/LogManager$RootLogger;->accessCheckedHandlers()[Ljava/util/logging/Handler;
 HSPLjava/util/logging/LogManager$RootLogger;->addHandler(Ljava/util/logging/Handler;)V
+HSPLjava/util/logging/LogManager$SystemLoggerContext;->demandLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
 HSPLjava/util/logging/LogManager;->access$1300(Ljava/util/logging/Logger;Ljava/util/logging/Logger;)V
 HSPLjava/util/logging/LogManager;->access$1400(Ljava/util/logging/LogManager;Ljava/lang/String;)[Ljava/lang/String;
 HSPLjava/util/logging/LogManager;->access$1500(Ljava/util/logging/LogManager;)Ljava/lang/ref/ReferenceQueue;
@@ -21384,14 +42276,19 @@
 HSPLjava/util/logging/LogManager;->checkPermission()V
 HSPLjava/util/logging/LogManager;->contexts()Ljava/util/List;
 HSPLjava/util/logging/LogManager;->demandLogger(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/logging/Logger;
+HSPLjava/util/logging/LogManager;->demandSystemLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
 HSPLjava/util/logging/LogManager;->doSetParent(Ljava/util/logging/Logger;Ljava/util/logging/Logger;)V
 HSPLjava/util/logging/LogManager;->drainLoggerRefQueueBounded()V
 HSPLjava/util/logging/LogManager;->ensureLogManagerInitialized()V
 HSPLjava/util/logging/LogManager;->getBooleanProperty(Ljava/lang/String;Z)Z
+HSPLjava/util/logging/LogManager;->getFilterProperty(Ljava/lang/String;Ljava/util/logging/Filter;)Ljava/util/logging/Filter;
+HSPLjava/util/logging/LogManager;->getFormatterProperty(Ljava/lang/String;Ljava/util/logging/Formatter;)Ljava/util/logging/Formatter;
+HSPLjava/util/logging/LogManager;->getIntProperty(Ljava/lang/String;I)I
 HSPLjava/util/logging/LogManager;->getLevelProperty(Ljava/lang/String;Ljava/util/logging/Level;)Ljava/util/logging/Level;
 HSPLjava/util/logging/LogManager;->getLogManager()Ljava/util/logging/LogManager;
 HSPLjava/util/logging/LogManager;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
 HSPLjava/util/logging/LogManager;->getProperty(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/util/logging/LogManager;->getStringProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/util/logging/LogManager;->getSystemContext()Ljava/util/logging/LogManager$LoggerContext;
 HSPLjava/util/logging/LogManager;->getUserContext()Ljava/util/logging/LogManager$LoggerContext;
 HSPLjava/util/logging/LogManager;->initializeGlobalHandlers()V
@@ -21404,13 +42301,25 @@
 HSPLjava/util/logging/LogRecord;->getLevel()Ljava/util/logging/Level;
 HSPLjava/util/logging/LogRecord;->getLoggerName()Ljava/lang/String;
 HSPLjava/util/logging/LogRecord;->getMessage()Ljava/lang/String;
+HSPLjava/util/logging/LogRecord;->getMillis()J
+HSPLjava/util/logging/LogRecord;->getParameters()[Ljava/lang/Object;
+HSPLjava/util/logging/LogRecord;->getResourceBundle()Ljava/util/ResourceBundle;
 HSPLjava/util/logging/LogRecord;->getThrown()Ljava/lang/Throwable;
+HSPLjava/util/logging/LogRecord;->setLevel(Ljava/util/logging/Level;)V
 HSPLjava/util/logging/LogRecord;->setLoggerName(Ljava/lang/String;)V
+HSPLjava/util/logging/LogRecord;->setMessage(Ljava/lang/String;)V
+HSPLjava/util/logging/LogRecord;->setMillis(J)V
+HSPLjava/util/logging/LogRecord;->setParameters([Ljava/lang/Object;)V
 HSPLjava/util/logging/LogRecord;->setSourceClassName(Ljava/lang/String;)V
 HSPLjava/util/logging/LogRecord;->setSourceMethodName(Ljava/lang/String;)V
 HSPLjava/util/logging/LogRecord;->setThrown(Ljava/lang/Throwable;)V
+HSPLjava/util/logging/Logger$1;-><init>(Ljava/util/Locale;)V
+HSPLjava/util/logging/Logger$1;->run()Ljava/lang/Object;
+HSPLjava/util/logging/Logger$1;->run()Ljava/util/ResourceBundle;
+HSPLjava/util/logging/Logger$LoggerBundle;->get(Ljava/lang/String;Ljava/util/ResourceBundle;)Ljava/util/logging/Logger$LoggerBundle;
 HSPLjava/util/logging/Logger$LoggerBundle;->isSystemBundle()Z
 HSPLjava/util/logging/Logger;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Ljava/util/logging/LogManager;Z)V
+HSPLjava/util/logging/Logger;->access$100()Ljava/util/logging/Logger$LoggerBundle;
 HSPLjava/util/logging/Logger;->accessCheckedHandlers()[Ljava/util/logging/Handler;
 HSPLjava/util/logging/Logger;->addHandler(Ljava/util/logging/Handler;)V
 HSPLjava/util/logging/Logger;->checkPermission()V
@@ -21418,11 +42327,14 @@
 HSPLjava/util/logging/Logger;->doLog(Ljava/util/logging/LogRecord;)V
 HSPLjava/util/logging/Logger;->doSetParent(Ljava/util/logging/Logger;)V
 HSPLjava/util/logging/Logger;->findResourceBundle(Ljava/lang/String;Z)Ljava/util/ResourceBundle;
+HSPLjava/util/logging/Logger;->findSystemResourceBundle(Ljava/util/Locale;)Ljava/util/ResourceBundle;
+HSPLjava/util/logging/Logger;->getCallersClassLoader()Ljava/lang/ClassLoader;
 HSPLjava/util/logging/Logger;->getEffectiveLoggerBundle()Ljava/util/logging/Logger$LoggerBundle;
 HSPLjava/util/logging/Logger;->getHandlers()[Ljava/util/logging/Handler;
 HSPLjava/util/logging/Logger;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
 HSPLjava/util/logging/Logger;->getName()Ljava/lang/String;
 HSPLjava/util/logging/Logger;->getParent()Ljava/util/logging/Logger;
+HSPLjava/util/logging/Logger;->getPlatformLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
 HSPLjava/util/logging/Logger;->getResourceBundle()Ljava/util/ResourceBundle;
 HSPLjava/util/logging/Logger;->getResourceBundleName()Ljava/lang/String;
 HSPLjava/util/logging/Logger;->getUseParentHandlers()Z
@@ -21434,11 +42346,28 @@
 HSPLjava/util/logging/Logger;->logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
 HSPLjava/util/logging/Logger;->logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
 HSPLjava/util/logging/Logger;->removeChildLogger(Ljava/util/logging/LogManager$LoggerWeakRef;)V
+HSPLjava/util/logging/Logger;->setCallersClassLoaderRef(Ljava/lang/Class;)V
 HSPLjava/util/logging/Logger;->setLevel(Ljava/util/logging/Level;)V
 HSPLjava/util/logging/Logger;->setLogManager(Ljava/util/logging/LogManager;)V
 HSPLjava/util/logging/Logger;->setParent(Ljava/util/logging/Logger;)V
 HSPLjava/util/logging/Logger;->setupResourceInfo(Ljava/lang/String;Ljava/lang/Class;)V
 HSPLjava/util/logging/Logger;->updateEffectiveLevel()V
+HSPLjava/util/logging/Logger;->warning(Ljava/lang/String;)V
+HSPLjava/util/logging/LoggingProxyImpl;->getLogger(Ljava/lang/String;)Ljava/lang/Object;
+HSPLjava/util/logging/LoggingProxyImpl;->getProperty(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/util/logging/LoggingProxyImpl;->parseLevel(Ljava/lang/String;)Ljava/lang/Object;
+HSPLjava/util/logging/SimpleFormatter;-><clinit>()V
+HSPLjava/util/logging/SimpleFormatter;-><init>()V
+HSPLjava/util/logging/StreamHandler;-><init>()V
+HSPLjava/util/logging/StreamHandler;->close()V
+HSPLjava/util/logging/StreamHandler;->configure()V
+HSPLjava/util/logging/StreamHandler;->flush()V
+HSPLjava/util/logging/StreamHandler;->flushAndClose()V
+HSPLjava/util/logging/StreamHandler;->isLoggable(Ljava/util/logging/LogRecord;)Z
+HSPLjava/util/logging/StreamHandler;->publish(Ljava/util/logging/LogRecord;)V
+HSPLjava/util/logging/StreamHandler;->setEncoding(Ljava/lang/String;)V
+HSPLjava/util/logging/StreamHandler;->setOutputStream(Ljava/io/OutputStream;)V
+HSPLjava/util/logging/XMLFormatter;-><init>()V
 HSPLjava/util/regex/Matcher;-><init>(Ljava/util/regex/Pattern;Ljava/lang/CharSequence;)V
 HSPLjava/util/regex/Matcher;->appendEvaluated(Ljava/lang/StringBuffer;Ljava/lang/String;)V
 HSPLjava/util/regex/Matcher;->appendReplacement(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;
@@ -21456,9 +42385,13 @@
 HSPLjava/util/regex/Matcher;->hitEnd()Z
 HSPLjava/util/regex/Matcher;->lookingAt()Z
 HSPLjava/util/regex/Matcher;->matches()Z
+HSPLjava/util/regex/Matcher;->pattern()Ljava/util/regex/Pattern;
 HSPLjava/util/regex/Matcher;->region(II)Ljava/util/regex/Matcher;
+HSPLjava/util/regex/Matcher;->regionEnd()I
+HSPLjava/util/regex/Matcher;->regionStart()I
 HSPLjava/util/regex/Matcher;->replaceAll(Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/util/regex/Matcher;->replaceFirst(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/util/regex/Matcher;->requireEnd()Z
 HSPLjava/util/regex/Matcher;->reset()Ljava/util/regex/Matcher;
 HSPLjava/util/regex/Matcher;->reset(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
 HSPLjava/util/regex/Matcher;->reset(Ljava/lang/CharSequence;II)Ljava/util/regex/Matcher;
@@ -21475,25 +42408,47 @@
 HSPLjava/util/regex/Pattern;->fastSplit(Ljava/lang/String;Ljava/lang/String;I)[Ljava/lang/String;
 HSPLjava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
 HSPLjava/util/regex/Pattern;->matches(Ljava/lang/String;Ljava/lang/CharSequence;)Z
+HSPLjava/util/regex/Pattern;->pattern()Ljava/lang/String;
 HSPLjava/util/regex/Pattern;->quote(Ljava/lang/String;)Ljava/lang/String;
 HSPLjava/util/regex/Pattern;->split(Ljava/lang/CharSequence;)[Ljava/lang/String;
 HSPLjava/util/regex/Pattern;->split(Ljava/lang/CharSequence;I)[Ljava/lang/String;
+HSPLjava/util/stream/-$$Lambda$Abl7XfE0Z4AgkViLas9vhsO9mjw;-><init>(Ljava/util/stream/Sink;)V
+HSPLjava/util/stream/-$$Lambda$Abl7XfE0Z4AgkViLas9vhsO9mjw;->accept(Ljava/lang/Object;)V
+HSPLjava/util/stream/-$$Lambda$AbstractPipeline$ImXhRLJT29W8lJFXpTT_PieAotg;-><init>(Ljava/util/stream/AbstractPipeline;)V
+HSPLjava/util/stream/-$$Lambda$AbstractPipeline$ImXhRLJT29W8lJFXpTT_PieAotg;->get()Ljava/lang/Object;
+HSPLjava/util/stream/-$$Lambda$Collectors$F7-we3W7I2plNaGHqh_d2lzmvho;-><init>(Ljava/util/function/Function;Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;)V
+HSPLjava/util/stream/-$$Lambda$Collectors$F7-we3W7I2plNaGHqh_d2lzmvho;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLjava/util/stream/-$$Lambda$Collectors$TzSZZBK0laNSWMge_uuxANwkkMo;-><init>(Ljava/util/function/BinaryOperator;)V
+HSPLjava/util/stream/-$$Lambda$Collectors$f0IPpRuyw9HZC8FIP30mNjUUUhw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/stream/-$$Lambda$Collectors$f68RHYk8qNU7alEHPPrPoFuCJO4;-><init>(Ljava/util/function/Supplier;)V
+HSPLjava/util/stream/-$$Lambda$Collectors$f68RHYk8qNU7alEHPPrPoFuCJO4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/stream/-$$Lambda$Collectors$nKlT6uFghrTzWO44dlFAJFeRr34;-><init>(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;)V
+HSPLjava/util/stream/-$$Lambda$Collectors$nKlT6uFghrTzWO44dlFAJFeRr34;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLjava/util/stream/-$$Lambda$Collectors$pzPeDl3rCgtNVSeZPHZk5f2se60;-><init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V
 HSPLjava/util/stream/-$$Lambda$Collectors$pzPeDl3rCgtNVSeZPHZk5f2se60;->get()Ljava/lang/Object;
 HSPLjava/util/stream/-$$Lambda$Drw47GGUtPrz9CklhlT0v26u-5c;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLjava/util/stream/-$$Lambda$GF-s38TgrG6hfxe__ZFdhGp-wPw;-><init>(Ljava/util/stream/SpinedBuffer;)V
+HSPLjava/util/stream/-$$Lambda$GF-s38TgrG6hfxe__ZFdhGp-wPw;->accept(Ljava/lang/Object;)V
+HSPLjava/util/stream/-$$Lambda$IntPipeline$R-E7oGjPWog3HR9X-8MdhU1ZGRE;->applyAsInt(Ljava/lang/Object;)I
 HSPLjava/util/stream/-$$Lambda$MatchOps$_LtFSpSMfVwoPv-8p_1cMGGcaHA;-><init>(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Predicate;)V
 HSPLjava/util/stream/-$$Lambda$MatchOps$_LtFSpSMfVwoPv-8p_1cMGGcaHA;->get()Ljava/lang/Object;
 HSPLjava/util/stream/-$$Lambda$ReferencePipeline$mk6xSsLZAKvG89IyN8pzBoM6otw;->applyAsLong(Ljava/lang/Object;)J
+HSPLjava/util/stream/-$$Lambda$StreamSpliterators$WrappingSpliterator$Ky6g3CKkCccuRWAvbAL1cAsdkNk;-><init>(Ljava/util/stream/StreamSpliterators$WrappingSpliterator;)V
+HSPLjava/util/stream/-$$Lambda$StreamSpliterators$WrappingSpliterator$Ky6g3CKkCccuRWAvbAL1cAsdkNk;->getAsBoolean()Z
 HSPLjava/util/stream/-$$Lambda$dplkPhACWDPIy18ogwdupEQaN40;->applyAsLong(JJ)J
 HSPLjava/util/stream/-$$Lambda$ihOtgw0eLCrsEBOphyN7SwoAlDg;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLjava/util/stream/-$$Lambda$okJigbB9kSn__oCZ5Do9uFNyF6A;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/stream/-$$Lambda$ono9Bp0lMrKbIRfAAYdycY0_qag;->applyAsInt(II)I
 HSPLjava/util/stream/-$$Lambda$opQ7JxjVCJzqzgTxGU3LVtqC7is;->get()Ljava/lang/Object;
 HSPLjava/util/stream/-$$Lambda$r-8H_R_mZJjp9wd0XTLoEAHMNQ0;->get()Ljava/lang/Object;
+HSPLjava/util/stream/-$$Lambda$ry7iWszBr7beYy31SdRxibDyciQ;->get()Ljava/lang/Object;
+HSPLjava/util/stream/-$$Lambda$sKPaOkcQePGTRevrwmKVVhCTmTo;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLjava/util/stream/-$$Lambda$uJ6CkL42Bk73jN5EzP0Fx7o1eVA;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLjava/util/stream/-$$Lambda$wFoiz-RiPqYBPe0X4aSzbj2iL3g;->apply(I)Ljava/lang/Object;
 HSPLjava/util/stream/-$$Lambda$yTqQxkqu88ZhKI6fWaTTLwOLF60;->get()Ljava/lang/Object;
 HSPLjava/util/stream/AbstractPipeline;-><init>(Ljava/util/Spliterator;IZ)V
 HSPLjava/util/stream/AbstractPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
+HSPLjava/util/stream/AbstractPipeline;->close()V
 HSPLjava/util/stream/AbstractPipeline;->copyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
 HSPLjava/util/stream/AbstractPipeline;->copyIntoWithCancel(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
 HSPLjava/util/stream/AbstractPipeline;->evaluate(Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
@@ -21502,10 +42457,18 @@
 HSPLjava/util/stream/AbstractPipeline;->exactOutputSizeIfKnown(Ljava/util/Spliterator;)J
 HSPLjava/util/stream/AbstractPipeline;->getStreamAndOpFlags()I
 HSPLjava/util/stream/AbstractPipeline;->isParallel()Z
+HSPLjava/util/stream/AbstractPipeline;->lambda$spliterator$0$AbstractPipeline()Ljava/util/Spliterator;
+HSPLjava/util/stream/AbstractPipeline;->onClose(Ljava/lang/Runnable;)Ljava/util/stream/BaseStream;
+HSPLjava/util/stream/AbstractPipeline;->sequential()Ljava/util/stream/BaseStream;
 HSPLjava/util/stream/AbstractPipeline;->sourceSpliterator(I)Ljava/util/Spliterator;
+HSPLjava/util/stream/AbstractPipeline;->sourceStageSpliterator()Ljava/util/Spliterator;
+HSPLjava/util/stream/AbstractPipeline;->spliterator()Ljava/util/Spliterator;
 HSPLjava/util/stream/AbstractPipeline;->wrapAndCopyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)Ljava/util/stream/Sink;
 HSPLjava/util/stream/AbstractPipeline;->wrapSink(Ljava/util/stream/Sink;)Ljava/util/stream/Sink;
 HSPLjava/util/stream/AbstractSpinedBuffer;-><init>()V
+HSPLjava/util/stream/AbstractSpinedBuffer;->chunkSize(I)I
+HSPLjava/util/stream/AbstractSpinedBuffer;->count()J
+HSPLjava/util/stream/Collector;->of(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/function/Function;[Ljava/util/stream/Collector$Characteristics;)Ljava/util/stream/Collector;
 HSPLjava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/Set;)V
 HSPLjava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/function/Function;Ljava/util/Set;)V
 HSPLjava/util/stream/Collectors$CollectorImpl;->accumulator()Ljava/util/function/BiConsumer;
@@ -21515,12 +42478,21 @@
 HSPLjava/util/stream/Collectors$CollectorImpl;->supplier()Ljava/util/function/Supplier;
 HSPLjava/util/stream/Collectors;->access$000()Ljava/util/function/Function;
 HSPLjava/util/stream/Collectors;->castingIdentity()Ljava/util/function/Function;
+HSPLjava/util/stream/Collectors;->collectingAndThen(Ljava/util/stream/Collector;Ljava/util/function/Function;)Ljava/util/stream/Collector;
+HSPLjava/util/stream/Collectors;->groupingBy(Ljava/util/function/Function;Ljava/util/function/Supplier;Ljava/util/stream/Collector;)Ljava/util/stream/Collector;
 HSPLjava/util/stream/Collectors;->joining(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
 HSPLjava/util/stream/Collectors;->joining(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
+HSPLjava/util/stream/Collectors;->lambda$castingIdentity$1(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/stream/Collectors;->lambda$groupingBy$44(Ljava/util/function/Supplier;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/stream/Collectors;->lambda$groupingBy$45(Ljava/util/function/Function;Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/Map;Ljava/lang/Object;)V
 HSPLjava/util/stream/Collectors;->lambda$joining$6(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
+HSPLjava/util/stream/Collectors;->lambda$toMap$58(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;Ljava/util/Map;Ljava/lang/Object;)V
 HSPLjava/util/stream/Collectors;->mapMerger(Ljava/util/function/BinaryOperator;)Ljava/util/function/BinaryOperator;
+HSPLjava/util/stream/Collectors;->throwingMerger()Ljava/util/function/BinaryOperator;
 HSPLjava/util/stream/Collectors;->toCollection(Ljava/util/function/Supplier;)Ljava/util/stream/Collector;
 HSPLjava/util/stream/Collectors;->toList()Ljava/util/stream/Collector;
+HSPLjava/util/stream/Collectors;->toMap(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;
+HSPLjava/util/stream/Collectors;->toMap(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;Ljava/util/function/Supplier;)Ljava/util/stream/Collector;
 HSPLjava/util/stream/Collectors;->toSet()Ljava/util/stream/Collector;
 HSPLjava/util/stream/DistinctOps$1$2;-><init>(Ljava/util/stream/DistinctOps$1;Ljava/util/stream/Sink;)V
 HSPLjava/util/stream/DistinctOps$1$2;->accept(Ljava/lang/Object;)V
@@ -21540,19 +42512,39 @@
 HSPLjava/util/stream/FindOps$FindSink;->cancellationRequested()Z
 HSPLjava/util/stream/FindOps;->makeRef(Z)Ljava/util/stream/TerminalOp;
 HSPLjava/util/stream/ForEachOps$ForEachOp$OfRef;-><init>(Ljava/util/function/Consumer;Z)V
+HSPLjava/util/stream/ForEachOps$ForEachOp$OfRef;->accept(Ljava/lang/Object;)V
 HSPLjava/util/stream/ForEachOps$ForEachOp;-><init>(Z)V
 HSPLjava/util/stream/ForEachOps$ForEachOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
 HSPLjava/util/stream/ForEachOps$ForEachOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Void;
 HSPLjava/util/stream/ForEachOps$ForEachOp;->get()Ljava/lang/Void;
 HSPLjava/util/stream/ForEachOps$ForEachOp;->getOpFlags()I
 HSPLjava/util/stream/ForEachOps;->makeRef(Ljava/util/function/Consumer;Z)Ljava/util/stream/TerminalOp;
+HSPLjava/util/stream/IntPipeline$4$1;-><init>(Ljava/util/stream/IntPipeline$4;Ljava/util/stream/Sink;)V
+HSPLjava/util/stream/IntPipeline$4$1;->accept(I)V
+HSPLjava/util/stream/IntPipeline$4;-><init>(Ljava/util/stream/IntPipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/IntFunction;)V
+HSPLjava/util/stream/IntPipeline$4;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
+HSPLjava/util/stream/IntPipeline$9$1;-><init>(Ljava/util/stream/IntPipeline$9;Ljava/util/stream/Sink;)V
+HSPLjava/util/stream/IntPipeline$9$1;->accept(I)V
+HSPLjava/util/stream/IntPipeline$9$1;->begin(J)V
+HSPLjava/util/stream/IntPipeline$9;-><init>(Ljava/util/stream/IntPipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/IntPredicate;)V
+HSPLjava/util/stream/IntPipeline$9;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
 HSPLjava/util/stream/IntPipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
 HSPLjava/util/stream/IntPipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
 HSPLjava/util/stream/IntPipeline$StatelessOp;->opIsStateful()Z
 HSPLjava/util/stream/IntPipeline;-><init>(Ljava/util/Spliterator;IZ)V
 HSPLjava/util/stream/IntPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
+HSPLjava/util/stream/IntPipeline;->adapt(Ljava/util/Spliterator;)Ljava/util/Spliterator$OfInt;
+HSPLjava/util/stream/IntPipeline;->boxed()Ljava/util/stream/Stream;
+HSPLjava/util/stream/IntPipeline;->distinct()Ljava/util/stream/IntStream;
+HSPLjava/util/stream/IntPipeline;->filter(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;
+HSPLjava/util/stream/IntPipeline;->lambda$distinct$0(Ljava/lang/Integer;)I
 HSPLjava/util/stream/IntPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
+HSPLjava/util/stream/IntPipeline;->mapToObj(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;
+HSPLjava/util/stream/IntPipeline;->reduce(ILjava/util/function/IntBinaryOperator;)I
+HSPLjava/util/stream/IntPipeline;->sum()I
 HSPLjava/util/stream/IntPipeline;->toArray()[I
+PLjava/util/stream/IntStream;->of([I)Ljava/util/stream/IntStream;
+HSPLjava/util/stream/IntStream;->range(II)Ljava/util/stream/IntStream;
 HSPLjava/util/stream/LongPipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
 HSPLjava/util/stream/LongPipeline$StatelessOp;->opIsStateful()Z
 HSPLjava/util/stream/LongPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
@@ -21572,6 +42564,13 @@
 HSPLjava/util/stream/MatchOps;->lambda$makeRef$0(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Predicate;)Ljava/util/stream/MatchOps$BooleanTerminalSink;
 HSPLjava/util/stream/MatchOps;->makeRef(Ljava/util/function/Predicate;Ljava/util/stream/MatchOps$MatchKind;)Ljava/util/stream/TerminalOp;
 HSPLjava/util/stream/Node;->getChildCount()I
+HSPLjava/util/stream/Nodes$ArrayNode;-><init>(JLjava/util/function/IntFunction;)V
+HSPLjava/util/stream/Nodes$ArrayNode;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
+HSPLjava/util/stream/Nodes$FixedNodeBuilder;-><init>(JLjava/util/function/IntFunction;)V
+HSPLjava/util/stream/Nodes$FixedNodeBuilder;->accept(Ljava/lang/Object;)V
+HSPLjava/util/stream/Nodes$FixedNodeBuilder;->begin(J)V
+HSPLjava/util/stream/Nodes$FixedNodeBuilder;->build()Ljava/util/stream/Node;
+HSPLjava/util/stream/Nodes$FixedNodeBuilder;->end()V
 HSPLjava/util/stream/Nodes$IntArrayNode;-><init>(J)V
 HSPLjava/util/stream/Nodes$IntArrayNode;->asPrimitiveArray()Ljava/lang/Object;
 HSPLjava/util/stream/Nodes$IntArrayNode;->asPrimitiveArray()[I
@@ -21581,12 +42580,39 @@
 HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->build()Ljava/util/stream/Node$OfInt;
 HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->build()Ljava/util/stream/Node;
 HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->end()V
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;-><init>()V
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->accept(I)V
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->asPrimitiveArray()Ljava/lang/Object;
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->asPrimitiveArray()[I
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->begin(J)V
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->build()Ljava/util/stream/Node$OfInt;
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->build()Ljava/util/stream/Node;
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->copyInto(Ljava/lang/Object;I)V
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->copyInto([II)V
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->end()V
+HSPLjava/util/stream/Nodes$SpinedNodeBuilder;-><clinit>()V
+HSPLjava/util/stream/Nodes$SpinedNodeBuilder;-><init>()V
+HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->accept(Ljava/lang/Object;)V
+HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
+HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->begin(J)V
+HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->build()Ljava/util/stream/Node;
+HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->copyInto([Ljava/lang/Object;I)V
+HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->end()V
+HSPLjava/util/stream/Nodes;->builder()Ljava/util/stream/Node$Builder;
 HSPLjava/util/stream/Nodes;->builder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
 HSPLjava/util/stream/Nodes;->flatten(Ljava/util/stream/Node;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
 HSPLjava/util/stream/Nodes;->flattenInt(Ljava/util/stream/Node$OfInt;)Ljava/util/stream/Node$OfInt;
+HSPLjava/util/stream/Nodes;->intBuilder()Ljava/util/stream/Node$Builder$OfInt;
 HSPLjava/util/stream/Nodes;->intBuilder(J)Ljava/util/stream/Node$Builder$OfInt;
 HSPLjava/util/stream/PipelineHelper;-><init>()V
 HSPLjava/util/stream/ReduceOps$2;-><init>(Ljava/util/stream/StreamShape;Ljava/util/function/BinaryOperator;)V
+HSPLjava/util/stream/ReduceOps$2;->makeSink()Ljava/util/stream/ReduceOps$2ReducingSink;
+HSPLjava/util/stream/ReduceOps$2;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink;
+HSPLjava/util/stream/ReduceOps$2ReducingSink;-><init>(Ljava/util/function/BinaryOperator;)V
+HSPLjava/util/stream/ReduceOps$2ReducingSink;->accept(Ljava/lang/Object;)V
+HSPLjava/util/stream/ReduceOps$2ReducingSink;->begin(J)V
+HSPLjava/util/stream/ReduceOps$2ReducingSink;->get()Ljava/lang/Object;
+HSPLjava/util/stream/ReduceOps$2ReducingSink;->get()Ljava/util/Optional;
 HSPLjava/util/stream/ReduceOps$3;-><init>(Ljava/util/stream/StreamShape;Ljava/util/function/BinaryOperator;Ljava/util/function/BiConsumer;Ljava/util/function/Supplier;Ljava/util/stream/Collector;)V
 HSPLjava/util/stream/ReduceOps$3;->getOpFlags()I
 HSPLjava/util/stream/ReduceOps$3;->makeSink()Ljava/util/stream/ReduceOps$3ReducingSink;
@@ -21594,6 +42620,14 @@
 HSPLjava/util/stream/ReduceOps$3ReducingSink;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;)V
 HSPLjava/util/stream/ReduceOps$3ReducingSink;->accept(Ljava/lang/Object;)V
 HSPLjava/util/stream/ReduceOps$3ReducingSink;->begin(J)V
+HSPLjava/util/stream/ReduceOps$5;-><init>(Ljava/util/stream/StreamShape;Ljava/util/function/IntBinaryOperator;I)V
+HSPLjava/util/stream/ReduceOps$5;->makeSink()Ljava/util/stream/ReduceOps$5ReducingSink;
+HSPLjava/util/stream/ReduceOps$5;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink;
+HSPLjava/util/stream/ReduceOps$5ReducingSink;-><init>(ILjava/util/function/IntBinaryOperator;)V
+HSPLjava/util/stream/ReduceOps$5ReducingSink;->accept(I)V
+HSPLjava/util/stream/ReduceOps$5ReducingSink;->begin(J)V
+HSPLjava/util/stream/ReduceOps$5ReducingSink;->get()Ljava/lang/Integer;
+HSPLjava/util/stream/ReduceOps$5ReducingSink;->get()Ljava/lang/Object;
 HSPLjava/util/stream/ReduceOps$8;-><init>(Ljava/util/stream/StreamShape;Ljava/util/function/LongBinaryOperator;J)V
 HSPLjava/util/stream/ReduceOps$8;->makeSink()Ljava/util/stream/ReduceOps$8ReducingSink;
 HSPLjava/util/stream/ReduceOps$8;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink;
@@ -21606,6 +42640,7 @@
 HSPLjava/util/stream/ReduceOps$Box;->get()Ljava/lang/Object;
 HSPLjava/util/stream/ReduceOps$ReduceOp;-><init>(Ljava/util/stream/StreamShape;)V
 HSPLjava/util/stream/ReduceOps$ReduceOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
+HSPLjava/util/stream/ReduceOps;->makeInt(ILjava/util/function/IntBinaryOperator;)Ljava/util/stream/TerminalOp;
 HSPLjava/util/stream/ReduceOps;->makeLong(JLjava/util/function/LongBinaryOperator;)Ljava/util/stream/TerminalOp;
 HSPLjava/util/stream/ReduceOps;->makeRef(Ljava/util/function/BinaryOperator;)Ljava/util/stream/TerminalOp;
 HSPLjava/util/stream/ReduceOps;->makeRef(Ljava/util/stream/Collector;)Ljava/util/stream/TerminalOp;
@@ -21626,7 +42661,13 @@
 HSPLjava/util/stream/ReferencePipeline$5$1;->accept(Ljava/lang/Object;)V
 HSPLjava/util/stream/ReferencePipeline$5;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/ToLongFunction;)V
 HSPLjava/util/stream/ReferencePipeline$5;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
+HSPLjava/util/stream/ReferencePipeline$7$1;-><init>(Ljava/util/stream/ReferencePipeline$7;Ljava/util/stream/Sink;)V
+HSPLjava/util/stream/ReferencePipeline$7$1;->accept(Ljava/lang/Object;)V
+HSPLjava/util/stream/ReferencePipeline$7$1;->begin(J)V
+HSPLjava/util/stream/ReferencePipeline$7;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Function;)V
+HSPLjava/util/stream/ReferencePipeline$7;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
 HSPLjava/util/stream/ReferencePipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
+HSPLjava/util/stream/ReferencePipeline$Head;->forEach(Ljava/util/function/Consumer;)V
 HSPLjava/util/stream/ReferencePipeline$StatefulOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
 HSPLjava/util/stream/ReferencePipeline$StatefulOp;->opIsStateful()Z
 HSPLjava/util/stream/ReferencePipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
@@ -21638,45 +42679,133 @@
 HSPLjava/util/stream/ReferencePipeline;->count()J
 HSPLjava/util/stream/ReferencePipeline;->distinct()Ljava/util/stream/Stream;
 HSPLjava/util/stream/ReferencePipeline;->filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
+HSPLjava/util/stream/ReferencePipeline;->findAny()Ljava/util/Optional;
 HSPLjava/util/stream/ReferencePipeline;->findFirst()Ljava/util/Optional;
+HSPLjava/util/stream/ReferencePipeline;->flatMap(Ljava/util/function/Function;)Ljava/util/stream/Stream;
 HSPLjava/util/stream/ReferencePipeline;->forEach(Ljava/util/function/Consumer;)V
 HSPLjava/util/stream/ReferencePipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
+HSPLjava/util/stream/ReferencePipeline;->iterator()Ljava/util/Iterator;
 HSPLjava/util/stream/ReferencePipeline;->lambda$count$2(Ljava/lang/Object;)J
 HSPLjava/util/stream/ReferencePipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
 HSPLjava/util/stream/ReferencePipeline;->map(Ljava/util/function/Function;)Ljava/util/stream/Stream;
 HSPLjava/util/stream/ReferencePipeline;->mapToInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
 HSPLjava/util/stream/ReferencePipeline;->mapToLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;
+HSPLjava/util/stream/ReferencePipeline;->max(Ljava/util/Comparator;)Ljava/util/Optional;
+HSPLjava/util/stream/ReferencePipeline;->min(Ljava/util/Comparator;)Ljava/util/Optional;
 HSPLjava/util/stream/ReferencePipeline;->reduce(Ljava/util/function/BinaryOperator;)Ljava/util/Optional;
 HSPLjava/util/stream/ReferencePipeline;->sorted(Ljava/util/Comparator;)Ljava/util/stream/Stream;
 HSPLjava/util/stream/ReferencePipeline;->toArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
+HSPLjava/util/stream/ReferencePipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;
 HSPLjava/util/stream/Sink$ChainedInt;-><init>(Ljava/util/stream/Sink;)V
+HSPLjava/util/stream/Sink$ChainedInt;->begin(J)V
 HSPLjava/util/stream/Sink$ChainedInt;->end()V
 HSPLjava/util/stream/Sink$ChainedReference;-><init>(Ljava/util/stream/Sink;)V
 HSPLjava/util/stream/Sink$ChainedReference;->begin(J)V
 HSPLjava/util/stream/Sink$ChainedReference;->cancellationRequested()Z
 HSPLjava/util/stream/Sink$ChainedReference;->end()V
 HSPLjava/util/stream/Sink;->begin(J)V
+HSPLjava/util/stream/Sink;->cancellationRequested()Z
 HSPLjava/util/stream/Sink;->end()V
+HSPLjava/util/stream/SortedOps$AbstractRefSortingSink;-><init>(Ljava/util/stream/Sink;Ljava/util/Comparator;)V
 HSPLjava/util/stream/SortedOps$OfRef;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/Comparator;)V
+HSPLjava/util/stream/SortedOps$OfRef;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
+HSPLjava/util/stream/SortedOps$RefSortingSink;-><init>(Ljava/util/stream/Sink;Ljava/util/Comparator;)V
+HSPLjava/util/stream/SortedOps$RefSortingSink;->accept(Ljava/lang/Object;)V
+HSPLjava/util/stream/SortedOps$RefSortingSink;->begin(J)V
+HSPLjava/util/stream/SortedOps$RefSortingSink;->end()V
+HSPLjava/util/stream/SortedOps$SizedRefSortingSink;-><init>(Ljava/util/stream/Sink;Ljava/util/Comparator;)V
+HSPLjava/util/stream/SortedOps$SizedRefSortingSink;->accept(Ljava/lang/Object;)V
+HSPLjava/util/stream/SortedOps$SizedRefSortingSink;->begin(J)V
+HSPLjava/util/stream/SortedOps$SizedRefSortingSink;->end()V
 HSPLjava/util/stream/SortedOps;->makeRef(Ljava/util/stream/AbstractPipeline;Ljava/util/Comparator;)Ljava/util/stream/Stream;
+HSPLjava/util/stream/SpinedBuffer$OfInt;-><init>()V
+HSPLjava/util/stream/SpinedBuffer$OfInt;->accept(I)V
+HSPLjava/util/stream/SpinedBuffer$OfInt;->arrayLength(Ljava/lang/Object;)I
+HSPLjava/util/stream/SpinedBuffer$OfInt;->arrayLength([I)I
+HSPLjava/util/stream/SpinedBuffer$OfInt;->asPrimitiveArray()Ljava/lang/Object;
+HSPLjava/util/stream/SpinedBuffer$OfInt;->clear()V
+HSPLjava/util/stream/SpinedBuffer$OfInt;->copyInto(Ljava/lang/Object;I)V
+HSPLjava/util/stream/SpinedBuffer$OfInt;->count()J
+HSPLjava/util/stream/SpinedBuffer$OfInt;->newArray(I)Ljava/lang/Object;
+HSPLjava/util/stream/SpinedBuffer$OfInt;->newArray(I)[I
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;-><init>()V
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;->asPrimitiveArray()Ljava/lang/Object;
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;->capacity()J
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;->clear()V
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;->copyInto(Ljava/lang/Object;I)V
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;->ensureCapacity(J)V
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;->preAccept()V
 HSPLjava/util/stream/SpinedBuffer;-><init>()V
+HSPLjava/util/stream/SpinedBuffer;->accept(Ljava/lang/Object;)V
+HSPLjava/util/stream/SpinedBuffer;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
+HSPLjava/util/stream/SpinedBuffer;->capacity()J
+HSPLjava/util/stream/SpinedBuffer;->clear()V
+HSPLjava/util/stream/SpinedBuffer;->copyInto([Ljava/lang/Object;I)V
+HSPLjava/util/stream/SpinedBuffer;->count()J
+HSPLjava/util/stream/SpinedBuffer;->ensureCapacity(J)V
+HSPLjava/util/stream/SpinedBuffer;->get(J)Ljava/lang/Object;
+HSPLjava/util/stream/SpinedBuffer;->increaseCapacity()V
+HSPLjava/util/stream/SpinedBuffer;->inflateSpine()V
+PLjava/util/stream/Stream;->builder()Ljava/util/stream/Stream$Builder;
+HSPLjava/util/stream/Stream;->concat(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
+HSPLjava/util/stream/Stream;->empty()Ljava/util/stream/Stream;
+HSPLjava/util/stream/Stream;->of([Ljava/lang/Object;)Ljava/util/stream/Stream;
 HSPLjava/util/stream/StreamOpFlag;->combineOpFlags(II)I
 HSPLjava/util/stream/StreamOpFlag;->fromCharacteristics(Ljava/util/Spliterator;)I
 HSPLjava/util/stream/StreamOpFlag;->getMask(I)I
 HSPLjava/util/stream/StreamOpFlag;->isKnown(I)Z
+HSPLjava/util/stream/StreamOpFlag;->toCharacteristics(I)I
+HSPLjava/util/stream/StreamOpFlag;->toStreamFlags(I)I
+HSPLjava/util/stream/StreamSpliterators$AbstractWrappingSpliterator;-><init>(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)V
+HSPLjava/util/stream/StreamSpliterators$AbstractWrappingSpliterator;->characteristics()I
+HSPLjava/util/stream/StreamSpliterators$AbstractWrappingSpliterator;->doAdvance()Z
+HSPLjava/util/stream/StreamSpliterators$AbstractWrappingSpliterator;->estimateSize()J
+HSPLjava/util/stream/StreamSpliterators$AbstractWrappingSpliterator;->fillBuffer()Z
+HSPLjava/util/stream/StreamSpliterators$AbstractWrappingSpliterator;->init()V
+HSPLjava/util/stream/StreamSpliterators$WrappingSpliterator;-><init>(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)V
+HSPLjava/util/stream/StreamSpliterators$WrappingSpliterator;->initPartialTraversalState()V
+HSPLjava/util/stream/StreamSpliterators$WrappingSpliterator;->lambda$initPartialTraversalState$0$StreamSpliterators$WrappingSpliterator()Z
+HSPLjava/util/stream/StreamSpliterators$WrappingSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
 HSPLjava/util/stream/StreamSupport;->intStream(Ljava/util/Spliterator$OfInt;Z)Ljava/util/stream/IntStream;
 HSPLjava/util/stream/StreamSupport;->stream(Ljava/util/Spliterator;Z)Ljava/util/stream/Stream;
+HSPLjava/util/stream/Streams$2;-><init>(Ljava/util/stream/BaseStream;Ljava/util/stream/BaseStream;)V
+HSPLjava/util/stream/Streams$AbstractStreamBuilderImpl;-><init>()V
+HSPLjava/util/stream/Streams$AbstractStreamBuilderImpl;-><init>(Ljava/util/stream/Streams$1;)V
+HSPLjava/util/stream/Streams$AbstractStreamBuilderImpl;->characteristics()I
+HSPLjava/util/stream/Streams$AbstractStreamBuilderImpl;->estimateSize()J
+HSPLjava/util/stream/Streams$ConcatSpliterator$OfRef;-><init>(Ljava/util/Spliterator;Ljava/util/Spliterator;)V
+HSPLjava/util/stream/Streams$ConcatSpliterator;-><init>(Ljava/util/Spliterator;Ljava/util/Spliterator;)V
+HSPLjava/util/stream/Streams$ConcatSpliterator;->characteristics()I
+HSPLjava/util/stream/Streams$ConcatSpliterator;->estimateSize()J
+HSPLjava/util/stream/Streams$ConcatSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+HSPLjava/util/stream/Streams$ConcatSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
+HSPLjava/util/stream/Streams$RangeIntSpliterator;-><init>(III)V
+HSPLjava/util/stream/Streams$RangeIntSpliterator;-><init>(IIZ)V
+HSPLjava/util/stream/Streams$RangeIntSpliterator;->characteristics()I
+HSPLjava/util/stream/Streams$RangeIntSpliterator;->estimateSize()J
+HSPLjava/util/stream/Streams$RangeIntSpliterator;->forEachRemaining(Ljava/util/function/IntConsumer;)V
+HSPLjava/util/stream/Streams$RangeIntSpliterator;->getComparator()Ljava/util/Comparator;
+PLjava/util/stream/Streams$StreamBuilderImpl;-><init>()V
+HSPLjava/util/stream/Streams$StreamBuilderImpl;->forEachRemaining(Ljava/util/function/Consumer;)V
+HSPLjava/util/stream/Streams;->composedClose(Ljava/util/stream/BaseStream;Ljava/util/stream/BaseStream;)Ljava/lang/Runnable;
 HSPLjava/util/stream/TerminalOp;->getOpFlags()I
+HSPLjava/util/zip/Adler32;-><init>()V
+HSPLjava/util/zip/Adler32;->getValue()J
+HSPLjava/util/zip/Adler32;->update(I)V
+HSPLjava/util/zip/Adler32;->update([BII)V
 HSPLjava/util/zip/CRC32;-><init>()V
 HSPLjava/util/zip/CRC32;->getValue()J
 HSPLjava/util/zip/CRC32;->reset()V
 HSPLjava/util/zip/CRC32;->update(I)V
+HSPLjava/util/zip/CRC32;->update([B)V
 HSPLjava/util/zip/CRC32;->update([BII)V
 HSPLjava/util/zip/CheckedInputStream;-><init>(Ljava/io/InputStream;Ljava/util/zip/Checksum;)V
 HSPLjava/util/zip/CheckedInputStream;->read()I
 HSPLjava/util/zip/CheckedInputStream;->read([BII)I
 HSPLjava/util/zip/Deflater;-><init>()V
+HSPLjava/util/zip/Deflater;-><init>(I)V
 HSPLjava/util/zip/Deflater;-><init>(IZ)V
+HSPLjava/util/zip/Deflater;->deflate([B)I
 HSPLjava/util/zip/Deflater;->deflate([BII)I
 HSPLjava/util/zip/Deflater;->deflate([BIII)I
 HSPLjava/util/zip/Deflater;->end()V
@@ -21687,12 +42816,17 @@
 HSPLjava/util/zip/Deflater;->getBytesRead()J
 HSPLjava/util/zip/Deflater;->getTotalIn()I
 HSPLjava/util/zip/Deflater;->needsInput()Z
+HSPLjava/util/zip/Deflater;->setInput([B)V
 HSPLjava/util/zip/Deflater;->setInput([BII)V
+HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;)V
+HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;)V
 HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;IZ)V
+HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;Z)V
 HSPLjava/util/zip/DeflaterOutputStream;->close()V
 HSPLjava/util/zip/DeflaterOutputStream;->deflate()V
 HSPLjava/util/zip/DeflaterOutputStream;->finish()V
 HSPLjava/util/zip/DeflaterOutputStream;->flush()V
+HSPLjava/util/zip/DeflaterOutputStream;->write(I)V
 HSPLjava/util/zip/DeflaterOutputStream;->write([BII)V
 HSPLjava/util/zip/GZIPInputStream$1;-><init>(Ljava/util/zip/GZIPInputStream;Ljava/io/InputStream;)V
 HSPLjava/util/zip/GZIPInputStream;-><init>(Ljava/io/InputStream;)V
@@ -21714,18 +42848,22 @@
 HSPLjava/util/zip/GZIPOutputStream;->writeInt(I[BI)V
 HSPLjava/util/zip/GZIPOutputStream;->writeShort(I[BI)V
 HSPLjava/util/zip/GZIPOutputStream;->writeTrailer([BI)V
+HSPLjava/util/zip/Inflater;-><init>()V
 HSPLjava/util/zip/Inflater;-><init>(Z)V
 HSPLjava/util/zip/Inflater;->end()V
 HSPLjava/util/zip/Inflater;->ended()Z
 HSPLjava/util/zip/Inflater;->ensureOpen()V
 HSPLjava/util/zip/Inflater;->finalize()V
 HSPLjava/util/zip/Inflater;->finished()Z
+HSPLjava/util/zip/Inflater;->getBytesRead()J
 HSPLjava/util/zip/Inflater;->getBytesWritten()J
 HSPLjava/util/zip/Inflater;->getRemaining()I
 HSPLjava/util/zip/Inflater;->getTotalOut()I
+HSPLjava/util/zip/Inflater;->inflate([B)I
 HSPLjava/util/zip/Inflater;->inflate([BII)I
 HSPLjava/util/zip/Inflater;->needsDictionary()Z
 HSPLjava/util/zip/Inflater;->needsInput()Z
+HSPLjava/util/zip/Inflater;->reset()V
 HSPLjava/util/zip/Inflater;->setInput([BII)V
 HSPLjava/util/zip/InflaterInputStream;-><init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;I)V
 HSPLjava/util/zip/InflaterInputStream;->available()I
@@ -21746,7 +42884,10 @@
 HSPLjava/util/zip/ZipCoder;->toString([BI)Ljava/lang/String;
 HSPLjava/util/zip/ZipEntry;-><init>()V
 HSPLjava/util/zip/ZipEntry;-><init>(Ljava/lang/String;)V
+HSPLjava/util/zip/ZipEntry;-><init>(Ljava/lang/String;Ljava/lang/String;JJJII[BJ)V
 HSPLjava/util/zip/ZipEntry;-><init>(Ljava/util/zip/ZipEntry;)V
+HSPLjava/util/zip/ZipEntry;->getCompressedSize()J
+HSPLjava/util/zip/ZipEntry;->getDataOffset()J
 HSPLjava/util/zip/ZipEntry;->getMethod()I
 HSPLjava/util/zip/ZipEntry;->getName()Ljava/lang/String;
 HSPLjava/util/zip/ZipEntry;->getSize()J
@@ -21764,11 +42905,13 @@
 HSPLjava/util/zip/ZipFile$ZipFileInflaterInputStream;->fill()V
 HSPLjava/util/zip/ZipFile$ZipFileInflaterInputStream;->finalize()V
 HSPLjava/util/zip/ZipFile$ZipFileInputStream;-><init>(Ljava/util/zip/ZipFile;J)V
+HSPLjava/util/zip/ZipFile$ZipFileInputStream;->available()I
 HSPLjava/util/zip/ZipFile$ZipFileInputStream;->close()V
 HSPLjava/util/zip/ZipFile$ZipFileInputStream;->finalize()V
 HSPLjava/util/zip/ZipFile$ZipFileInputStream;->read()I
 HSPLjava/util/zip/ZipFile$ZipFileInputStream;->read([BII)I
 HSPLjava/util/zip/ZipFile$ZipFileInputStream;->size()J
+HSPLjava/util/zip/ZipFile;-><init>(Ljava/io/File;)V
 HSPLjava/util/zip/ZipFile;-><init>(Ljava/io/File;I)V
 HSPLjava/util/zip/ZipFile;-><init>(Ljava/io/File;ILjava/nio/charset/Charset;)V
 HSPLjava/util/zip/ZipFile;-><init>(Ljava/lang/String;)V
@@ -21794,8 +42937,20 @@
 HSPLjava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
 HSPLjava/util/zip/ZipFile;->getZipEntry(Ljava/lang/String;J)Ljava/util/zip/ZipEntry;
 HSPLjava/util/zip/ZipFile;->releaseInflater(Ljava/util/zip/Inflater;)V
+HSPLjava/util/zip/ZipInputStream;-><init>(Ljava/io/InputStream;)V
+HSPLjava/util/zip/ZipInputStream;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
+HSPLjava/util/zip/ZipInputStream;->close()V
+HSPLjava/util/zip/ZipInputStream;->closeEntry()V
+HSPLjava/util/zip/ZipInputStream;->createZipEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
+HSPLjava/util/zip/ZipInputStream;->ensureOpen()V
+HSPLjava/util/zip/ZipInputStream;->getNextEntry()Ljava/util/zip/ZipEntry;
+HSPLjava/util/zip/ZipInputStream;->read([BII)I
+HSPLjava/util/zip/ZipInputStream;->readEnd(Ljava/util/zip/ZipEntry;)V
+HSPLjava/util/zip/ZipInputStream;->readFully([BII)V
+HSPLjava/util/zip/ZipInputStream;->readLOC()Ljava/util/zip/ZipEntry;
 HSPLjava/util/zip/ZipUtils;->get16([BI)I
 HSPLjava/util/zip/ZipUtils;->get32([BI)J
+HSPLjava/util/zip/ZipUtils;->unixTimeToFileTime(J)Ljava/nio/file/attribute/FileTime;
 HSPLjavax/crypto/Cipher$CipherSpiAndProvider;-><init>(Ljavax/crypto/CipherSpi;Ljava/security/Provider;)V
 HSPLjavax/crypto/Cipher$InitParams;-><init>(Ljavax/crypto/Cipher$InitType;ILjava/security/Key;Ljava/security/SecureRandom;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/AlgorithmParameters;)V
 HSPLjavax/crypto/Cipher$SpiAndProviderUpdater;-><init>(Ljavax/crypto/Cipher;Ljava/security/Provider;Ljavax/crypto/CipherSpi;)V
@@ -21812,9 +42967,15 @@
 HSPLjavax/crypto/Cipher;->checkOpmode(I)V
 HSPLjavax/crypto/Cipher;->chooseProvider(Ljavax/crypto/Cipher$InitType;ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
 HSPLjavax/crypto/Cipher;->createCipher(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher;
+HSPLjavax/crypto/Cipher;->doFinal()[B
 HSPLjavax/crypto/Cipher;->doFinal([B)[B
 HSPLjavax/crypto/Cipher;->doFinal([BII)[B
+HSPLjavax/crypto/Cipher;->doFinal([BII[BI)I
+HSPLjavax/crypto/Cipher;->getBlockSize()I
+HSPLjavax/crypto/Cipher;->getIV()[B
 HSPLjavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
+HSPLjavax/crypto/Cipher;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher;
+HSPLjavax/crypto/Cipher;->getOutputSize(I)I
 HSPLjavax/crypto/Cipher;->init(ILjava/security/Key;)V
 HSPLjavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/SecureRandom;)V
 HSPLjavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
@@ -21823,12 +42984,34 @@
 HSPLjavax/crypto/Cipher;->tokenizeTransformation(Ljava/lang/String;)[Ljava/lang/String;
 HSPLjavax/crypto/Cipher;->tryCombinations(Ljavax/crypto/Cipher$InitParams;Ljava/security/Provider;[Ljava/lang/String;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
 HSPLjavax/crypto/Cipher;->tryTransformWithProvider(Ljavax/crypto/Cipher$InitParams;[Ljava/lang/String;Ljavax/crypto/Cipher$NeedToSet;Ljava/security/Provider$Service;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
+HSPLjavax/crypto/Cipher;->unwrap([BLjava/lang/String;I)Ljava/security/Key;
+HSPLjavax/crypto/Cipher;->update([BII)[B
+HSPLjavax/crypto/Cipher;->updateAAD([B)V
+HSPLjavax/crypto/Cipher;->updateAAD([BII)V
 HSPLjavax/crypto/Cipher;->updateProviderIfNeeded()V
 HSPLjavax/crypto/CipherSpi;-><init>()V
+HSPLjavax/crypto/JarVerifier;-><init>(Ljava/net/URL;Z)V
+HSPLjavax/crypto/JarVerifier;->verify()V
+HSPLjavax/crypto/JceSecurity$1;-><init>(Ljava/lang/Class;)V
+HSPLjavax/crypto/JceSecurity$1;->run()Ljava/lang/Object;
+HSPLjavax/crypto/JceSecurity$1;->run()Ljava/net/URL;
+HSPLjavax/crypto/JceSecurity;->access$000()Ljava/net/URL;
 HSPLjavax/crypto/JceSecurity;->canUseProvider(Ljava/security/Provider;)Z
+HSPLjavax/crypto/JceSecurity;->getCodeBase(Ljava/lang/Class;)Ljava/net/URL;
+HSPLjavax/crypto/JceSecurity;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance;
+HSPLjavax/crypto/JceSecurity;->getVerificationResult(Ljava/security/Provider;)Ljava/lang/Exception;
+HSPLjavax/crypto/JceSecurity;->verifyProviderJar(Ljava/net/URL;)V
+HSPLjavax/crypto/KeyAgreement;-><clinit>()V
+HSPLjavax/crypto/KeyAgreement;->chooseFirstProvider()V
+HSPLjavax/crypto/KeyAgreement;->doPhase(Ljava/security/Key;Z)Ljava/security/Key;
+HSPLjavax/crypto/KeyAgreement;->generateSecret()[B
+HSPLjavax/crypto/KeyAgreement;->init(Ljava/security/Key;)V
+HSPLjavax/crypto/KeyAgreement;->init(Ljava/security/Key;Ljava/security/SecureRandom;)V
+HSPLjavax/crypto/KeyAgreementSpi;-><init>()V
 HSPLjavax/crypto/KeyGenerator;-><init>(Ljava/lang/String;)V
 HSPLjavax/crypto/KeyGenerator;->generateKey()Ljavax/crypto/SecretKey;
 HSPLjavax/crypto/KeyGenerator;->getInstance(Ljava/lang/String;)Ljavax/crypto/KeyGenerator;
+HSPLjavax/crypto/KeyGenerator;->init(ILjava/security/SecureRandom;)V
 HSPLjavax/crypto/KeyGenerator;->nextSpi(Ljavax/crypto/KeyGeneratorSpi;Z)Ljavax/crypto/KeyGeneratorSpi;
 HSPLjavax/crypto/KeyGeneratorSpi;-><init>()V
 HSPLjavax/crypto/Mac;-><init>(Ljava/lang/String;)V
@@ -21836,20 +43019,46 @@
 HSPLjavax/crypto/Mac;->chooseProvider(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
 HSPLjavax/crypto/Mac;->doFinal()[B
 HSPLjavax/crypto/Mac;->doFinal([B)[B
+HSPLjavax/crypto/Mac;->doFinal([BI)V
+HSPLjavax/crypto/Mac;->getAlgorithm()Ljava/lang/String;
 HSPLjavax/crypto/Mac;->getInstance(Ljava/lang/String;)Ljavax/crypto/Mac;
+HSPLjavax/crypto/Mac;->getMacLength()I
 HSPLjavax/crypto/Mac;->init(Ljava/security/Key;)V
+HSPLjavax/crypto/Mac;->reset()V
+HSPLjavax/crypto/Mac;->update(B)V
 HSPLjavax/crypto/Mac;->update([B)V
+HSPLjavax/crypto/Mac;->update([BII)V
 HSPLjavax/crypto/MacSpi;-><init>()V
+HSPLjavax/crypto/SecretKeyFactory;-><init>(Ljava/lang/String;)V
+HSPLjavax/crypto/SecretKeyFactory;-><init>(Ljavax/crypto/SecretKeyFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V
+HSPLjavax/crypto/SecretKeyFactory;->generateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
+HSPLjavax/crypto/SecretKeyFactory;->getInstance(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
+HSPLjavax/crypto/SecretKeyFactory;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
+HSPLjavax/crypto/SecretKeyFactory;->getKeySpec(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
+HSPLjavax/crypto/SecretKeyFactory;->nextSpi(Ljavax/crypto/SecretKeyFactorySpi;)Ljavax/crypto/SecretKeyFactorySpi;
+HSPLjavax/crypto/SecretKeyFactorySpi;-><init>()V
 HSPLjavax/crypto/spec/GCMParameterSpec;-><init>(I[B)V
+HSPLjavax/crypto/spec/GCMParameterSpec;-><init>(I[BII)V
 HSPLjavax/crypto/spec/GCMParameterSpec;->getIV()[B
 HSPLjavax/crypto/spec/GCMParameterSpec;->getTLen()I
 HSPLjavax/crypto/spec/GCMParameterSpec;->init(I[BII)V
 HSPLjavax/crypto/spec/IvParameterSpec;-><init>([B)V
 HSPLjavax/crypto/spec/IvParameterSpec;-><init>([BII)V
 HSPLjavax/crypto/spec/IvParameterSpec;->getIV()[B
+HSPLjavax/crypto/spec/PBEKeySpec;-><init>([C[BII)V
+HSPLjavax/crypto/spec/PBEKeySpec;->getIterationCount()I
+HSPLjavax/crypto/spec/PBEKeySpec;->getKeyLength()I
+HSPLjavax/crypto/spec/PBEKeySpec;->getPassword()[C
+HSPLjavax/crypto/spec/PBEKeySpec;->getSalt()[B
 HSPLjavax/crypto/spec/SecretKeySpec;-><init>([BLjava/lang/String;)V
+HSPLjavax/crypto/spec/SecretKeySpec;->getAlgorithm()Ljava/lang/String;
 HSPLjavax/crypto/spec/SecretKeySpec;->getEncoded()[B
 HSPLjavax/crypto/spec/SecretKeySpec;->getFormat()Ljava/lang/String;
+HSPLjavax/microedition/khronos/egl/EGLConfig;-><init>()V
+HSPLjavax/microedition/khronos/egl/EGLContext;-><init>()V
+HSPLjavax/microedition/khronos/egl/EGLContext;->getEGL()Ljavax/microedition/khronos/egl/EGL;
+HSPLjavax/microedition/khronos/egl/EGLDisplay;-><init>()V
+HSPLjavax/microedition/khronos/egl/EGLSurface;-><init>()V
 HSPLjavax/net/DefaultSocketFactory;-><init>()V
 HSPLjavax/net/DefaultSocketFactory;->createSocket()Ljava/net/Socket;
 HSPLjavax/net/DefaultSocketFactory;->createSocket(Ljava/net/InetAddress;I)Ljava/net/Socket;
@@ -21879,6 +43088,7 @@
 HSPLjavax/net/ssl/SSLContext;-><init>(Ljavax/net/ssl/SSLContextSpi;Ljava/security/Provider;Ljava/lang/String;)V
 HSPLjavax/net/ssl/SSLContext;->getDefault()Ljavax/net/ssl/SSLContext;
 HSPLjavax/net/ssl/SSLContext;->getInstance(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
+HSPLjavax/net/ssl/SSLContext;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
 HSPLjavax/net/ssl/SSLContext;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/net/ssl/SSLContext;
 HSPLjavax/net/ssl/SSLContext;->getSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
 HSPLjavax/net/ssl/SSLContext;->init([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
@@ -21900,6 +43110,7 @@
 HSPLjavax/net/ssl/SSLEngineResult;->getHandshakeStatus()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
 HSPLjavax/net/ssl/SSLEngineResult;->getStatus()Ljavax/net/ssl/SSLEngineResult$Status;
 HSPLjavax/net/ssl/SSLException;-><init>(Ljava/lang/String;)V
+HSPLjavax/net/ssl/SSLHandshakeException;-><init>(Ljava/lang/String;)V
 HSPLjavax/net/ssl/SSLParameters;-><init>()V
 HSPLjavax/net/ssl/SSLParameters;->clone([Ljava/lang/String;)[Ljava/lang/String;
 HSPLjavax/net/ssl/SSLParameters;->getApplicationProtocols()[Ljava/lang/String;
@@ -21943,40 +43154,98 @@
 HSPLjavax/security/auth/x500/X500Principal;-><init>([B)V
 HSPLjavax/security/auth/x500/X500Principal;->equals(Ljava/lang/Object;)Z
 HSPLjavax/security/auth/x500/X500Principal;->getEncoded()[B
+HSPLjavax/security/auth/x500/X500Principal;->getName()Ljava/lang/String;
 HSPLjavax/security/auth/x500/X500Principal;->getName(Ljava/lang/String;)Ljava/lang/String;
 HSPLjavax/security/auth/x500/X500Principal;->hashCode()I
+HSPLjavax/xml/parsers/DocumentBuilder;-><init>()V
+HSPLjavax/xml/parsers/DocumentBuilder;->parse(Ljava/io/InputStream;)Lorg/w3c/dom/Document;
+HSPLjavax/xml/parsers/DocumentBuilderFactory;-><init>()V
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->isCoalescing()Z
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->isIgnoringComments()Z
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->isIgnoringElementContentWhitespace()Z
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->isNamespaceAware()Z
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->isValidating()Z
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->newInstance()Ljavax/xml/parsers/DocumentBuilderFactory;
+HSPLjdk/internal/util/Preconditions;->checkIndex(IILjava/util/function/BiFunction;)I
+HSPLlibcore/content/type/MimeMap$Builder$Element;-><init>(Ljava/lang/String;Z)V
+HSPLlibcore/content/type/MimeMap$Builder$Element;->ofExtensionSpec(Ljava/lang/String;)Llibcore/content/type/MimeMap$Builder$Element;
+HSPLlibcore/content/type/MimeMap$Builder$Element;->ofMimeSpec(Ljava/lang/String;)Llibcore/content/type/MimeMap$Builder$Element;
+HSPLlibcore/content/type/MimeMap$Builder;-><init>()V
+HSPLlibcore/content/type/MimeMap$Builder;->build()Llibcore/content/type/MimeMap;
+HSPLlibcore/content/type/MimeMap$Builder;->maybePut(Ljava/util/Map;Llibcore/content/type/MimeMap$Builder$Element;Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/content/type/MimeMap$Builder;->put(Ljava/lang/String;Ljava/util/List;)Llibcore/content/type/MimeMap$Builder;
+HSPLlibcore/content/type/MimeMap$MemoizingSupplier;->get()Ljava/lang/Object;
+HSPLlibcore/content/type/MimeMap;-><init>(Ljava/util/Map;Ljava/util/Map;)V
+HSPLlibcore/content/type/MimeMap;-><init>(Ljava/util/Map;Ljava/util/Map;Llibcore/content/type/MimeMap$1;)V
+HSPLlibcore/content/type/MimeMap;->access$000(Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/content/type/MimeMap;->builder()Llibcore/content/type/MimeMap$Builder;
+HSPLlibcore/content/type/MimeMap;->checkValidExtension(Ljava/lang/String;)V
+HSPLlibcore/content/type/MimeMap;->checkValidMimeType(Ljava/lang/String;)V
+HSPLlibcore/content/type/MimeMap;->getDefault()Llibcore/content/type/MimeMap;
+HSPLlibcore/content/type/MimeMap;->guessMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/content/type/MimeMap;->isValidMimeTypeOrExtension(Ljava/lang/String;)Z
+HSPLlibcore/content/type/MimeMap;->toLowerCase(Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/icu/CollationKeyICU;-><init>(Ljava/lang/String;Landroid/icu/text/CollationKey;)V
+HSPLlibcore/icu/CollationKeyICU;->toByteArray()[B
 HSPLlibcore/icu/DateIntervalFormat;->formatDateRange(JJILjava/lang/String;)Ljava/lang/String;
 HSPLlibcore/icu/DateIntervalFormat;->formatDateRange(Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;JJI)Ljava/lang/String;
 HSPLlibcore/icu/DateIntervalFormat;->getFormatter(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;)Landroid/icu/text/DateIntervalFormat;
 HSPLlibcore/icu/DateIntervalFormat;->isExactlyMidnight(Landroid/icu/util/Calendar;)Z
 HSPLlibcore/icu/DateUtilsBridge;->createIcuCalendar(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;J)Landroid/icu/util/Calendar;
+HSPLlibcore/icu/DateUtilsBridge;->dayDistance(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)I
 HSPLlibcore/icu/DateUtilsBridge;->fallInSameMonth(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z
+HSPLlibcore/icu/DateUtilsBridge;->fallInSameYear(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z
 HSPLlibcore/icu/DateUtilsBridge;->fallOnDifferentDates(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z
 HSPLlibcore/icu/DateUtilsBridge;->icuTimeZone(Ljava/util/TimeZone;)Landroid/icu/util/TimeZone;
+HSPLlibcore/icu/DateUtilsBridge;->isThisYear(Landroid/icu/util/Calendar;)Z
 HSPLlibcore/icu/DateUtilsBridge;->toSkeleton(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;I)Ljava/lang/String;
+HSPLlibcore/icu/ICU;->getAvailableLocales()[Ljava/util/Locale;
 HSPLlibcore/icu/ICU;->getBestDateTimePattern(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
+HSPLlibcore/icu/ICU;->localeFromIcuLocaleId(Ljava/lang/String;)Ljava/util/Locale;
+HSPLlibcore/icu/ICU;->localesFromStrings([Ljava/lang/String;)[Ljava/util/Locale;
+HSPLlibcore/icu/ICU;->parseLangScriptRegionAndVariants(Ljava/lang/String;[Ljava/lang/String;)V
+HSPLlibcore/icu/LocaleData;-><init>()V
+HSPLlibcore/icu/LocaleData;->get(Ljava/util/Locale;)Llibcore/icu/LocaleData;
 HSPLlibcore/icu/LocaleData;->getDateFormat(I)Ljava/lang/String;
 HSPLlibcore/icu/LocaleData;->getTimeFormat(I)Ljava/lang/String;
+HSPLlibcore/icu/LocaleData;->initLocaleData(Ljava/util/Locale;)Llibcore/icu/LocaleData;
+HSPLlibcore/icu/LocaleData;->initializePatternSeparator(Llibcore/icu/LocaleData;Ljava/util/Locale;)V
+HSPLlibcore/icu/LocaleData;->mapInvalidAndNullLocales(Ljava/util/Locale;)Ljava/util/Locale;
+HSPLlibcore/icu/RelativeDateTimeFormatter;->dayDistance(Landroid/icu/util/TimeZone;JJ)I
+HSPLlibcore/icu/RelativeDateTimeFormatter;->getFormatter(Landroid/icu/util/ULocale;Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/DisplayContext;)Landroid/icu/text/RelativeDateTimeFormatter;
+HSPLlibcore/icu/RelativeDateTimeFormatter;->getRelativeTimeSpanString(Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;JJJILandroid/icu/text/DisplayContext;)Ljava/lang/String;
+HSPLlibcore/icu/RelativeDateTimeFormatter;->getRelativeTimeSpanString(Ljava/util/Locale;Ljava/util/TimeZone;JJJI)Ljava/lang/String;
+HSPLlibcore/icu/RelativeDateTimeFormatter;->getRelativeTimeSpanString(Ljava/util/Locale;Ljava/util/TimeZone;JJJILandroid/icu/text/DisplayContext;)Ljava/lang/String;
+HSPLlibcore/icu/RelativeDateTimeFormatter;->julianDay(Landroid/icu/util/TimeZone;J)I
 HSPLlibcore/internal/StringPool;-><init>()V
 HSPLlibcore/internal/StringPool;->get([CII)Ljava/lang/String;
 HSPLlibcore/io/BlockGuardOs;->accept(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)Ljava/io/FileDescriptor;
 HSPLlibcore/io/BlockGuardOs;->access(Ljava/lang/String;I)Z
 HSPLlibcore/io/BlockGuardOs;->android_getaddrinfo(Ljava/lang/String;Landroid/system/StructAddrinfo;I)[Ljava/net/InetAddress;
 HSPLlibcore/io/BlockGuardOs;->chmod(Ljava/lang/String;I)V
+HSPLlibcore/io/BlockGuardOs;->chown(Ljava/lang/String;II)V
 HSPLlibcore/io/BlockGuardOs;->close(Ljava/io/FileDescriptor;)V
 HSPLlibcore/io/BlockGuardOs;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
+HSPLlibcore/io/BlockGuardOs;->fchmod(Ljava/io/FileDescriptor;I)V
+HSPLlibcore/io/BlockGuardOs;->fchown(Ljava/io/FileDescriptor;II)V
 HSPLlibcore/io/BlockGuardOs;->fdatasync(Ljava/io/FileDescriptor;)V
 HSPLlibcore/io/BlockGuardOs;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat;
+HSPLlibcore/io/BlockGuardOs;->fsync(Ljava/io/FileDescriptor;)V
 HSPLlibcore/io/BlockGuardOs;->ftruncate(Ljava/io/FileDescriptor;J)V
+HSPLlibcore/io/BlockGuardOs;->getxattr(Ljava/lang/String;Ljava/lang/String;)[B
 HSPLlibcore/io/BlockGuardOs;->isInetDomain(I)Z
 HSPLlibcore/io/BlockGuardOs;->isInetSocket(Ljava/io/FileDescriptor;)Z
 HSPLlibcore/io/BlockGuardOs;->isLingerSocket(Ljava/io/FileDescriptor;)Z
 HSPLlibcore/io/BlockGuardOs;->isUdpSocket(Ljava/io/FileDescriptor;)Z
 HSPLlibcore/io/BlockGuardOs;->lseek(Ljava/io/FileDescriptor;JI)J
+HSPLlibcore/io/BlockGuardOs;->lstat(Ljava/lang/String;)Landroid/system/StructStat;
 HSPLlibcore/io/BlockGuardOs;->mkdir(Ljava/lang/String;I)V
 HSPLlibcore/io/BlockGuardOs;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;
 HSPLlibcore/io/BlockGuardOs;->poll([Landroid/system/StructPollfd;I)I
+HSPLlibcore/io/BlockGuardOs;->posix_fallocate(Ljava/io/FileDescriptor;JJ)V
+HSPLlibcore/io/BlockGuardOs;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
 HSPLlibcore/io/BlockGuardOs;->read(Ljava/io/FileDescriptor;[BII)I
+HSPLlibcore/io/BlockGuardOs;->readlink(Ljava/lang/String;)Ljava/lang/String;
 HSPLlibcore/io/BlockGuardOs;->recvfrom(Ljava/io/FileDescriptor;[BIIILjava/net/InetSocketAddress;)I
 HSPLlibcore/io/BlockGuardOs;->remove(Ljava/lang/String;)V
 HSPLlibcore/io/BlockGuardOs;->rename(Ljava/lang/String;Ljava/lang/String;)V
@@ -21985,6 +43254,7 @@
 HSPLlibcore/io/BlockGuardOs;->socketpair(IIILjava/io/FileDescriptor;Ljava/io/FileDescriptor;)V
 HSPLlibcore/io/BlockGuardOs;->stat(Ljava/lang/String;)Landroid/system/StructStat;
 HSPLlibcore/io/BlockGuardOs;->statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs;
+HSPLlibcore/io/BlockGuardOs;->symlink(Ljava/lang/String;Ljava/lang/String;)V
 HSPLlibcore/io/BlockGuardOs;->tagSocket(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor;
 HSPLlibcore/io/BlockGuardOs;->write(Ljava/io/FileDescriptor;[BII)I
 HSPLlibcore/io/BufferIterator;-><init>()V
@@ -22005,15 +43275,20 @@
 HSPLlibcore/io/ForwardingOs;->android_fdsan_exchange_owner_tag(Ljava/io/FileDescriptor;JJ)V
 HSPLlibcore/io/ForwardingOs;->android_getaddrinfo(Ljava/lang/String;Landroid/system/StructAddrinfo;I)[Ljava/net/InetAddress;
 HSPLlibcore/io/ForwardingOs;->bind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
+HSPLlibcore/io/ForwardingOs;->bind(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V
 HSPLlibcore/io/ForwardingOs;->capget(Landroid/system/StructCapUserHeader;)[Landroid/system/StructCapUserData;
 HSPLlibcore/io/ForwardingOs;->chmod(Ljava/lang/String;I)V
+HSPLlibcore/io/ForwardingOs;->chown(Ljava/lang/String;II)V
 HSPLlibcore/io/ForwardingOs;->close(Ljava/io/FileDescriptor;)V
 HSPLlibcore/io/ForwardingOs;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
 HSPLlibcore/io/ForwardingOs;->dup2(Ljava/io/FileDescriptor;I)Ljava/io/FileDescriptor;
+HSPLlibcore/io/ForwardingOs;->fchmod(Ljava/io/FileDescriptor;I)V
+HSPLlibcore/io/ForwardingOs;->fchown(Ljava/io/FileDescriptor;II)V
 HSPLlibcore/io/ForwardingOs;->fcntlInt(Ljava/io/FileDescriptor;II)I
 HSPLlibcore/io/ForwardingOs;->fcntlVoid(Ljava/io/FileDescriptor;I)I
 HSPLlibcore/io/ForwardingOs;->fdatasync(Ljava/io/FileDescriptor;)V
 HSPLlibcore/io/ForwardingOs;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat;
+HSPLlibcore/io/ForwardingOs;->fsync(Ljava/io/FileDescriptor;)V
 HSPLlibcore/io/ForwardingOs;->ftruncate(Ljava/io/FileDescriptor;J)V
 HSPLlibcore/io/ForwardingOs;->gai_strerror(I)Ljava/lang/String;
 HSPLlibcore/io/ForwardingOs;->getenv(Ljava/lang/String;)Ljava/lang/String;
@@ -22022,20 +43297,30 @@
 HSPLlibcore/io/ForwardingOs;->getpeername(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress;
 HSPLlibcore/io/ForwardingOs;->getpgid(I)I
 HSPLlibcore/io/ForwardingOs;->getpid()I
+HSPLlibcore/io/ForwardingOs;->getrlimit(I)Landroid/system/StructRlimit;
 HSPLlibcore/io/ForwardingOs;->getsockname(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress;
 HSPLlibcore/io/ForwardingOs;->getsockoptInt(Ljava/io/FileDescriptor;II)I
 HSPLlibcore/io/ForwardingOs;->getsockoptLinger(Ljava/io/FileDescriptor;II)Landroid/system/StructLinger;
 HSPLlibcore/io/ForwardingOs;->gettid()I
 HSPLlibcore/io/ForwardingOs;->getuid()I
+HSPLlibcore/io/ForwardingOs;->getxattr(Ljava/lang/String;Ljava/lang/String;)[B
 HSPLlibcore/io/ForwardingOs;->if_nametoindex(Ljava/lang/String;)I
 HSPLlibcore/io/ForwardingOs;->ioctlInt(Ljava/io/FileDescriptor;ILandroid/system/Int32Ref;)I
 HSPLlibcore/io/ForwardingOs;->listen(Ljava/io/FileDescriptor;I)V
 HSPLlibcore/io/ForwardingOs;->lseek(Ljava/io/FileDescriptor;JI)J
+HSPLlibcore/io/ForwardingOs;->lstat(Ljava/lang/String;)Landroid/system/StructStat;
 HSPLlibcore/io/ForwardingOs;->mkdir(Ljava/lang/String;I)V
+HSPLlibcore/io/ForwardingOs;->mlock(JJ)V
+HSPLlibcore/io/ForwardingOs;->mmap(JJIILjava/io/FileDescriptor;J)J
+HSPLlibcore/io/ForwardingOs;->munmap(JJ)V
 HSPLlibcore/io/ForwardingOs;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;
 HSPLlibcore/io/ForwardingOs;->pipe2(I)[Ljava/io/FileDescriptor;
 HSPLlibcore/io/ForwardingOs;->poll([Landroid/system/StructPollfd;I)I
+HSPLlibcore/io/ForwardingOs;->posix_fallocate(Ljava/io/FileDescriptor;JJ)V
+HSPLlibcore/io/ForwardingOs;->prctl(IJJJJ)I
+HSPLlibcore/io/ForwardingOs;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
 HSPLlibcore/io/ForwardingOs;->read(Ljava/io/FileDescriptor;[BII)I
+HSPLlibcore/io/ForwardingOs;->readlink(Ljava/lang/String;)Ljava/lang/String;
 HSPLlibcore/io/ForwardingOs;->recvfrom(Ljava/io/FileDescriptor;[BIIILjava/net/InetSocketAddress;)I
 HSPLlibcore/io/ForwardingOs;->remove(Ljava/lang/String;)V
 HSPLlibcore/io/ForwardingOs;->rename(Ljava/lang/String;Ljava/lang/String;)V
@@ -22043,7 +43328,10 @@
 HSPLlibcore/io/ForwardingOs;->setpgid(II)V
 HSPLlibcore/io/ForwardingOs;->setregid(II)V
 HSPLlibcore/io/ForwardingOs;->setreuid(II)V
+HSPLlibcore/io/ForwardingOs;->setsockoptByte(Ljava/io/FileDescriptor;III)V
+HSPLlibcore/io/ForwardingOs;->setsockoptGroupReq(Ljava/io/FileDescriptor;IILandroid/system/StructGroupReq;)V
 HSPLlibcore/io/ForwardingOs;->setsockoptInt(Ljava/io/FileDescriptor;III)V
+HSPLlibcore/io/ForwardingOs;->setsockoptIpMreqn(Ljava/io/FileDescriptor;III)V
 HSPLlibcore/io/ForwardingOs;->setsockoptTimeval(Ljava/io/FileDescriptor;IILandroid/system/StructTimeval;)V
 HSPLlibcore/io/ForwardingOs;->shutdown(Ljava/io/FileDescriptor;I)V
 HSPLlibcore/io/ForwardingOs;->socket(III)Ljava/io/FileDescriptor;
@@ -22051,7 +43339,10 @@
 HSPLlibcore/io/ForwardingOs;->stat(Ljava/lang/String;)Landroid/system/StructStat;
 HSPLlibcore/io/ForwardingOs;->statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs;
 HSPLlibcore/io/ForwardingOs;->strerror(I)Ljava/lang/String;
+HSPLlibcore/io/ForwardingOs;->symlink(Ljava/lang/String;Ljava/lang/String;)V
 HSPLlibcore/io/ForwardingOs;->sysconf(I)J
+HSPLlibcore/io/ForwardingOs;->umask(I)I
+HSPLlibcore/io/ForwardingOs;->uname()Landroid/system/StructUtsname;
 HSPLlibcore/io/ForwardingOs;->write(Ljava/io/FileDescriptor;[BII)I
 HSPLlibcore/io/IoBridge;->bind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
 HSPLlibcore/io/IoBridge;->booleanFromInt(I)Z
@@ -22064,6 +43355,7 @@
 HSPLlibcore/io/IoBridge;->getSocketOption(Ljava/io/FileDescriptor;I)Ljava/lang/Object;
 HSPLlibcore/io/IoBridge;->getSocketOptionErrno(Ljava/io/FileDescriptor;I)Ljava/lang/Object;
 HSPLlibcore/io/IoBridge;->isConnected(Ljava/io/FileDescriptor;Ljava/net/InetAddress;III)Z
+HSPLlibcore/io/IoBridge;->maybeThrowAfterSendto(ZLandroid/system/ErrnoException;)I
 HSPLlibcore/io/IoBridge;->open(Ljava/lang/String;I)Ljava/io/FileDescriptor;
 HSPLlibcore/io/IoBridge;->poll(Ljava/io/FileDescriptor;II)V
 HSPLlibcore/io/IoBridge;->postRecvfrom(ZLjava/net/DatagramPacket;Ljava/net/InetSocketAddress;I)I
@@ -22078,6 +43370,10 @@
 HSPLlibcore/io/IoTracker;->reset()V
 HSPLlibcore/io/IoTracker;->trackIo(I)V
 HSPLlibcore/io/IoTracker;->trackIo(ILlibcore/io/IoTracker$Mode;)V
+HSPLlibcore/io/IoUtils$FileReader;-><init>(Ljava/lang/String;)V
+HSPLlibcore/io/IoUtils$FileReader;->readFully()Llibcore/io/IoUtils$FileReader;
+HSPLlibcore/io/IoUtils$FileReader;->toByteArray()[B
+HSPLlibcore/io/IoUtils$FileReader;->toString(Ljava/nio/charset/Charset;)Ljava/lang/String;
 HSPLlibcore/io/IoUtils;->acquireRawFd(Ljava/io/FileDescriptor;)I
 HSPLlibcore/io/IoUtils;->canOpenReadOnly(Ljava/lang/String;)Z
 HSPLlibcore/io/IoUtils;->close(Ljava/io/FileDescriptor;)V
@@ -22085,13 +43381,18 @@
 HSPLlibcore/io/IoUtils;->closeQuietly(Ljava/lang/AutoCloseable;)V
 HSPLlibcore/io/IoUtils;->generateFdOwnerId(Ljava/lang/Object;)J
 HSPLlibcore/io/IoUtils;->isParcelFileDescriptor(Ljava/lang/Object;)Z
+HSPLlibcore/io/IoUtils;->readFileAsByteArray(Ljava/lang/String;)[B
+HSPLlibcore/io/IoUtils;->readFileAsString(Ljava/lang/String;)Ljava/lang/String;
 HSPLlibcore/io/IoUtils;->setBlocking(Ljava/io/FileDescriptor;Z)V
 HSPLlibcore/io/IoUtils;->setFdOwner(Ljava/io/FileDescriptor;Ljava/lang/Object;)V
 HSPLlibcore/io/Libcore;->compareAndSetOs(Llibcore/io/Os;Llibcore/io/Os;)Z
 HSPLlibcore/io/Libcore;->getOs()Llibcore/io/Os;
+HSPLlibcore/io/Linux;->maybeUpdateBufferPosition(Ljava/nio/ByteBuffer;II)V
+HSPLlibcore/io/Linux;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
 HSPLlibcore/io/Linux;->read(Ljava/io/FileDescriptor;[BII)I
 HSPLlibcore/io/Linux;->recvfrom(Ljava/io/FileDescriptor;[BIIILjava/net/InetSocketAddress;)I
 HSPLlibcore/io/Linux;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I
+HSPLlibcore/io/Linux;->umask(I)I
 HSPLlibcore/io/Linux;->write(Ljava/io/FileDescriptor;[BII)I
 HSPLlibcore/io/Memory;->peekInt(JZ)I
 HSPLlibcore/io/Memory;->peekInt([BILjava/nio/ByteOrder;)I
@@ -22099,6 +43400,9 @@
 HSPLlibcore/io/Memory;->peekShort(JZ)S
 HSPLlibcore/io/Memory;->peekShort([BILjava/nio/ByteOrder;)S
 HSPLlibcore/io/Memory;->pokeInt(JIZ)V
+HSPLlibcore/io/Memory;->pokeInt([BIILjava/nio/ByteOrder;)V
+HSPLlibcore/io/Memory;->pokeLong(JJZ)V
+HSPLlibcore/io/Memory;->pokeShort(JSZ)V
 HSPLlibcore/io/MemoryMappedFile;->bigEndianIterator()Llibcore/io/BufferIterator;
 HSPLlibcore/io/MemoryMappedFile;->checkNotClosed()V
 HSPLlibcore/io/NioBufferIterator;-><init>(Llibcore/io/MemoryMappedFile;JIZ)V
@@ -22111,6 +43415,10 @@
 HSPLlibcore/io/NioBufferIterator;->skip(I)V
 HSPLlibcore/io/Os;->compareAndSetDefault(Llibcore/io/Os;Llibcore/io/Os;)Z
 HSPLlibcore/io/Os;->getDefault()Llibcore/io/Os;
+HSPLlibcore/io/Streams;->readFully(Ljava/io/InputStream;)[B
+HPLlibcore/io/Streams;->readFully(Ljava/io/Reader;)Ljava/lang/String;
+HSPLlibcore/io/Streams;->readFullyNoClose(Ljava/io/InputStream;)[B
+HSPLlibcore/net/InetAddressUtils;->parseNumericAddress(Ljava/lang/String;)Ljava/net/InetAddress;
 HSPLlibcore/net/InetAddressUtils;->parseNumericAddressNoThrow(Ljava/lang/String;)Ljava/net/InetAddress;
 HSPLlibcore/net/InetAddressUtils;->parseNumericAddressNoThrowStripOptionalBrackets(Ljava/lang/String;)Ljava/net/InetAddress;
 HSPLlibcore/net/NetworkSecurityPolicy;-><init>()V
@@ -22120,6 +43428,9 @@
 HSPLlibcore/net/event/NetworkEventDispatcher;->getInstance()Llibcore/net/event/NetworkEventDispatcher;
 HSPLlibcore/net/event/NetworkEventDispatcher;->onNetworkConfigurationChanged()V
 HSPLlibcore/net/event/NetworkEventListener;-><init>()V
+HSPLlibcore/net/http/HttpDate$1;->initialValue()Ljava/lang/Object;
+HSPLlibcore/net/http/HttpDate$1;->initialValue()Ljava/text/DateFormat;
+HSPLlibcore/net/http/HttpDate;->parse(Ljava/lang/String;)Ljava/util/Date;
 HSPLlibcore/reflect/AnnotationFactory;-><init>(Ljava/lang/Class;[Llibcore/reflect/AnnotationMember;)V
 HSPLlibcore/reflect/AnnotationFactory;->createAnnotation(Ljava/lang/Class;[Llibcore/reflect/AnnotationMember;)Ljava/lang/annotation/Annotation;
 HSPLlibcore/reflect/AnnotationFactory;->getElementsDescription(Ljava/lang/Class;)[Llibcore/reflect/AnnotationMember;
@@ -22129,6 +43440,7 @@
 HSPLlibcore/reflect/AnnotationMember;->copyValue()Ljava/lang/Object;
 HSPLlibcore/reflect/AnnotationMember;->setDefinition(Llibcore/reflect/AnnotationMember;)Llibcore/reflect/AnnotationMember;
 HSPLlibcore/reflect/AnnotationMember;->validateValue()Ljava/lang/Object;
+HSPLlibcore/reflect/GenericArrayTypeImpl;->getGenericComponentType()Ljava/lang/reflect/Type;
 HSPLlibcore/reflect/GenericSignatureParser;-><init>(Ljava/lang/ClassLoader;)V
 HSPLlibcore/reflect/GenericSignatureParser;->expect(C)V
 HSPLlibcore/reflect/GenericSignatureParser;->isStopSymbol(C)Z
@@ -22168,6 +43480,10 @@
 HSPLlibcore/reflect/TypeVariableImpl;->resolve()V
 HSPLlibcore/reflect/Types;->getType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
 HSPLlibcore/reflect/Types;->getTypeArray(Llibcore/reflect/ListOfTypes;Z)[Ljava/lang/reflect/Type;
+HSPLlibcore/timezone/TimeZoneDataFiles;->getDataTimeZoneFile(Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/timezone/TimeZoneDataFiles;->getDataTimeZoneRootDir()Ljava/lang/String;
+HSPLlibcore/timezone/TimeZoneDataFiles;->getTimeZoneModuleFile(Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/timezone/TimeZoneDataFiles;->getTimeZoneModuleTzFile(Ljava/lang/String;)Ljava/lang/String;
 HSPLlibcore/timezone/ZoneInfoDB$1;->create(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLlibcore/timezone/ZoneInfoDB$1;->create(Ljava/lang/String;)Llibcore/util/ZoneInfo;
 HSPLlibcore/timezone/ZoneInfoDB$TzData$1;->create(Ljava/lang/Object;)Ljava/lang/Object;
@@ -22175,12 +43491,14 @@
 HSPLlibcore/timezone/ZoneInfoDB$TzData;->checkNotClosed()V
 HSPLlibcore/timezone/ZoneInfoDB$TzData;->close()V
 HSPLlibcore/timezone/ZoneInfoDB$TzData;->finalize()V
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->getAvailableIDs()[Ljava/lang/String;
 HSPLlibcore/timezone/ZoneInfoDB$TzData;->getBufferIterator(Ljava/lang/String;)Llibcore/io/BufferIterator;
 HSPLlibcore/timezone/ZoneInfoDB$TzData;->makeTimeZone(Ljava/lang/String;)Llibcore/util/ZoneInfo;
 HSPLlibcore/timezone/ZoneInfoDB$TzData;->makeTimeZoneUncached(Ljava/lang/String;)Llibcore/util/ZoneInfo;
 HSPLlibcore/timezone/ZoneInfoDB;->checkNotClosed()V
 HSPLlibcore/timezone/ZoneInfoDB;->close()V
 HSPLlibcore/timezone/ZoneInfoDB;->finalize()V
+HSPLlibcore/timezone/ZoneInfoDB;->getAvailableIDs()[Ljava/lang/String;
 HSPLlibcore/timezone/ZoneInfoDB;->getBufferIterator(Ljava/lang/String;)Llibcore/io/BufferIterator;
 HSPLlibcore/timezone/ZoneInfoDB;->getInstance()Llibcore/timezone/ZoneInfoDB;
 HSPLlibcore/timezone/ZoneInfoDB;->makeTimeZone(Ljava/lang/String;)Llibcore/util/ZoneInfo;
@@ -22212,8 +43530,19 @@
 HSPLlibcore/util/FP16;->rint(S)S
 HSPLlibcore/util/FP16;->toFloat(S)F
 HSPLlibcore/util/FP16;->toHalf(F)S
+HSPLlibcore/util/HexEncoding;->decode(Ljava/lang/String;Z)[B
+HSPLlibcore/util/HexEncoding;->decode([CZ)[B
+HSPLlibcore/util/HexEncoding;->encode([BIIZ)[C
+HSPLlibcore/util/HexEncoding;->encode([BZ)[C
+HSPLlibcore/util/HexEncoding;->encodeToString([B)Ljava/lang/String;
+HSPLlibcore/util/HexEncoding;->encodeToString([BZ)Ljava/lang/String;
+HSPLlibcore/util/HexEncoding;->toDigit([CI)I
+HSPLlibcore/util/NativeAllocationRegistry$CleanerRunner;-><init>(Lsun/misc/Cleaner;)V
 HSPLlibcore/util/NativeAllocationRegistry$CleanerRunner;->run()V
+HSPLlibcore/util/NativeAllocationRegistry$CleanerThunk;-><init>(Llibcore/util/NativeAllocationRegistry;)V
 HSPLlibcore/util/NativeAllocationRegistry$CleanerThunk;->run()V
+HSPLlibcore/util/NativeAllocationRegistry$CleanerThunk;->setNativePtr(J)V
+HSPLlibcore/util/NativeAllocationRegistry;-><init>(Ljava/lang/ClassLoader;JJ)V
 HSPLlibcore/util/NativeAllocationRegistry;-><init>(Ljava/lang/ClassLoader;JJZ)V
 HSPLlibcore/util/NativeAllocationRegistry;->access$000(Llibcore/util/NativeAllocationRegistry;)J
 HSPLlibcore/util/NativeAllocationRegistry;->access$100(Llibcore/util/NativeAllocationRegistry;)J
@@ -22226,7 +43555,16 @@
 HSPLlibcore/util/SneakyThrow;->sneakyThrow(Ljava/lang/Throwable;)V
 HSPLlibcore/util/SneakyThrow;->sneakyThrow_(Ljava/lang/Throwable;)V
 HSPLlibcore/util/XmlObjectFactory;->newXmlPullParser()Lorg/xmlpull/v1/XmlPullParser;
+HSPLlibcore/util/XmlObjectFactory;->newXmlSerializer()Lorg/xmlpull/v1/XmlSerializer;
+HSPLlibcore/util/ZoneInfo$OffsetInterval;-><init>(IIII)V
+HSPLlibcore/util/ZoneInfo$OffsetInterval;->containsWallTime(J)Z
+HSPLlibcore/util/ZoneInfo$OffsetInterval;->create(Llibcore/util/ZoneInfo;I)Llibcore/util/ZoneInfo$OffsetInterval;
+HSPLlibcore/util/ZoneInfo$OffsetInterval;->getIsDst()I
+HSPLlibcore/util/ZoneInfo$OffsetInterval;->getTotalOffsetSeconds()I
+HSPLlibcore/util/ZoneInfo$WallTime;-><init>()V
 HSPLlibcore/util/ZoneInfo$WallTime;->copyFieldsFromCalendar()V
+HSPLlibcore/util/ZoneInfo$WallTime;->copyFieldsToCalendar()V
+HSPLlibcore/util/ZoneInfo$WallTime;->doWallTimeSearch(Llibcore/util/ZoneInfo;IIZ)Ljava/lang/Integer;
 HSPLlibcore/util/ZoneInfo$WallTime;->getGmtOffset()I
 HSPLlibcore/util/ZoneInfo$WallTime;->getHour()I
 HSPLlibcore/util/ZoneInfo$WallTime;->getIsDst()I
@@ -22238,18 +43576,35 @@
 HSPLlibcore/util/ZoneInfo$WallTime;->getYear()I
 HSPLlibcore/util/ZoneInfo$WallTime;->getYearDay()I
 HSPLlibcore/util/ZoneInfo$WallTime;->localtime(ILlibcore/util/ZoneInfo;)V
+HSPLlibcore/util/ZoneInfo$WallTime;->mktime(Llibcore/util/ZoneInfo;)I
+HSPLlibcore/util/ZoneInfo$WallTime;->setGmtOffset(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setHour(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setIsDst(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setMinute(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setMonth(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setMonthDay(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setSecond(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setWeekDay(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setYear(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setYearDay(I)V
 HSPLlibcore/util/ZoneInfo;-><init>(Ljava/lang/String;[J[B[I[BJ)V
 HSPLlibcore/util/ZoneInfo;->access$000(Llibcore/util/ZoneInfo;)I
 HSPLlibcore/util/ZoneInfo;->access$100(Llibcore/util/ZoneInfo;)[J
 HSPLlibcore/util/ZoneInfo;->access$300(Llibcore/util/ZoneInfo;)[I
 HSPLlibcore/util/ZoneInfo;->access$400(Llibcore/util/ZoneInfo;)[B
 HSPLlibcore/util/ZoneInfo;->access$500(JI)I
+HSPLlibcore/util/ZoneInfo;->access$600(JI)I
+HSPLlibcore/util/ZoneInfo;->access$700(Llibcore/util/ZoneInfo;)[B
+HSPLlibcore/util/ZoneInfo;->access$800(JI)I
 HSPLlibcore/util/ZoneInfo;->checkTzifVersionAcceptable(Ljava/lang/String;B)V
 HSPLlibcore/util/ZoneInfo;->checked32BitAdd(JI)I
+HSPLlibcore/util/ZoneInfo;->checked32BitSubtract(JI)I
 HSPLlibcore/util/ZoneInfo;->clone()Ljava/lang/Object;
+HSPLlibcore/util/ZoneInfo;->equals(Ljava/lang/Object;)Z
 HSPLlibcore/util/ZoneInfo;->findOffsetIndexForTimeInMilliseconds(J)I
 HSPLlibcore/util/ZoneInfo;->findOffsetIndexForTimeInSeconds(J)I
 HSPLlibcore/util/ZoneInfo;->findTransitionIndex(J)I
+HSPLlibcore/util/ZoneInfo;->getDSTSavings()I
 HSPLlibcore/util/ZoneInfo;->getOffset(J)I
 HSPLlibcore/util/ZoneInfo;->getOffsetsByUtcTime(J[I)I
 HSPLlibcore/util/ZoneInfo;->getRawOffset()I
@@ -22260,24 +43615,89 @@
 HSPLlibcore/util/ZoneInfo;->readTimeZone(Ljava/lang/String;Llibcore/io/BufferIterator;J)Llibcore/util/ZoneInfo;
 HSPLlibcore/util/ZoneInfo;->roundDownMillisToSeconds(J)J
 HSPLlibcore/util/ZoneInfo;->roundUpMillisToSeconds(J)J
+HSPLlibcore/util/ZoneInfo;->saturated32BitAdd(JI)I
 HSPLlibcore/util/ZoneInfo;->skipOver32BitData(Ljava/lang/String;Llibcore/io/BufferIterator;)V
 HSPLorg/apache/harmony/dalvik/ddmc/Chunk;-><init>(ILjava/nio/ByteBuffer;)V
 HSPLorg/apache/harmony/dalvik/ddmc/Chunk;-><init>(I[BII)V
 HSPLorg/apache/harmony/dalvik/ddmc/ChunkHandler;->putString(Ljava/nio/ByteBuffer;Ljava/lang/String;)V
+HSPLorg/apache/harmony/dalvik/ddmc/ChunkHandler;->wrapChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Ljava/nio/ByteBuffer;
 HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->broadcast(I)V
 HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->dispatch(I[BII)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->sendChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)V
+HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;->getData()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;->getLength()I
+HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;->getNodeValue()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;->setData(Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/dom/DOMImplementationImpl;-><init>()V
+HSPLorg/apache/harmony/xml/dom/DOMImplementationImpl;->getInstance()Lorg/apache/harmony/xml/dom/DOMImplementationImpl;
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;-><init>(Lorg/apache/harmony/xml/dom/DOMImplementationImpl;Ljava/lang/String;Ljava/lang/String;Lorg/w3c/dom/DocumentType;Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->createElement(Ljava/lang/String;)Lorg/apache/harmony/xml/dom/ElementImpl;
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->getDocumentElement()Lorg/w3c/dom/Element;
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->insertChildAt(Lorg/w3c/dom/Node;I)Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->isXMLIdentifier(Ljava/lang/String;)Z
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->isXMLIdentifierPart(C)Z
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->isXMLIdentifierStart(C)Z
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->setDocumentURI(Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/dom/ElementImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->getNodeName()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->getNodeType()S
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->getTagName()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;)V
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->appendChild(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getChildNodes()Lorg/w3c/dom/NodeList;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getFirstChild()Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getLastChild()Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getNextSibling()Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getTextContent()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->hasTextContent(Lorg/w3c/dom/Node;)Z
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->insertChildAt(Lorg/w3c/dom/Node;I)Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->isParentOf(Lorg/w3c/dom/Node;)Z
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->normalize()V
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->refreshIndices(I)V
+HSPLorg/apache/harmony/xml/dom/LeafNodeImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;)V
+HSPLorg/apache/harmony/xml/dom/LeafNodeImpl;->getNextSibling()Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/LeafNodeImpl;->getPreviousSibling()Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/LeafNodeImpl;->isParentOf(Lorg/w3c/dom/Node;)Z
+HSPLorg/apache/harmony/xml/dom/NodeImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;)V
+HSPLorg/apache/harmony/xml/dom/NodeImpl;->getTextContent()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/NodeImpl;->normalize()V
+HSPLorg/apache/harmony/xml/dom/NodeImpl;->setName(Lorg/apache/harmony/xml/dom/NodeImpl;Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/dom/NodeListImpl;-><init>()V
+HSPLorg/apache/harmony/xml/dom/NodeListImpl;->add(Lorg/apache/harmony/xml/dom/NodeImpl;)V
+HSPLorg/apache/harmony/xml/dom/NodeListImpl;->getLength()I
+HSPLorg/apache/harmony/xml/dom/NodeListImpl;->item(I)Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/TextImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/dom/TextImpl;->getNodeType()S
+HSPLorg/apache/harmony/xml/dom/TextImpl;->minimize()Lorg/apache/harmony/xml/dom/TextImpl;
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl;-><init>()V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl;->newDocumentBuilder()Ljavax/xml/parsers/DocumentBuilder;
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;-><clinit>()V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;-><init>()V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->appendText(Lorg/apache/harmony/xml/dom/DocumentImpl;Lorg/w3c/dom/Node;ILjava/lang/String;)V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->parse(Lcom/android/org/kxml2/io/KXmlParser;Lorg/apache/harmony/xml/dom/DocumentImpl;Lorg/w3c/dom/Node;I)V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->parse(Lorg/xml/sax/InputSource;)Lorg/w3c/dom/Document;
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->setCoalescing(Z)V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->setIgnoreComments(Z)V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->setIgnoreElementContentWhitespace(Z)V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->setNamespaceAware(Z)V
 HSPLorg/apache/http/params/HttpConnectionParams;->setConnectionTimeout(Lorg/apache/http/params/HttpParams;I)V
 HSPLorg/apache/http/params/HttpConnectionParams;->setSoTimeout(Lorg/apache/http/params/HttpParams;I)V
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;-><init>()V
 HSPLorg/ccil/cowan/tagsoup/AttributesImpl;-><init>(Lorg/xml/sax/Attributes;)V
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->addAttribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->clear()V
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->ensureCapacity(I)V
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getIndex(Ljava/lang/String;)I
 HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getLength()I
 HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getLocalName(I)Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getQName(I)Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getType(I)Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getURI(I)Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getValue(I)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->removeAttribute(I)V
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->setAttribute(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->setAttributes(Lorg/xml/sax/Attributes;)V
 HSPLorg/ccil/cowan/tagsoup/Element;-><init>(Lorg/ccil/cowan/tagsoup/ElementType;Z)V
 HSPLorg/ccil/cowan/tagsoup/Element;->atts()Lorg/ccil/cowan/tagsoup/AttributesImpl;
@@ -22286,18 +43706,26 @@
 HSPLorg/ccil/cowan/tagsoup/Element;->flags()I
 HSPLorg/ccil/cowan/tagsoup/Element;->isPreclosed()Z
 HSPLorg/ccil/cowan/tagsoup/Element;->localName()Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/Element;->model()I
 HSPLorg/ccil/cowan/tagsoup/Element;->name()Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/Element;->namespace()Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/Element;->next()Lorg/ccil/cowan/tagsoup/Element;
 HSPLorg/ccil/cowan/tagsoup/Element;->parent()Lorg/ccil/cowan/tagsoup/ElementType;
+HSPLorg/ccil/cowan/tagsoup/Element;->setAttribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLorg/ccil/cowan/tagsoup/Element;->setNext(Lorg/ccil/cowan/tagsoup/Element;)V
+HSPLorg/ccil/cowan/tagsoup/ElementType;-><init>(Ljava/lang/String;IIILorg/ccil/cowan/tagsoup/Schema;)V
 HSPLorg/ccil/cowan/tagsoup/ElementType;->atts()Lorg/ccil/cowan/tagsoup/AttributesImpl;
 HSPLorg/ccil/cowan/tagsoup/ElementType;->canContain(Lorg/ccil/cowan/tagsoup/ElementType;)Z
 HSPLorg/ccil/cowan/tagsoup/ElementType;->flags()I
 HSPLorg/ccil/cowan/tagsoup/ElementType;->localName()Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/ElementType;->localName(Ljava/lang/String;)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/ElementType;->model()I
 HSPLorg/ccil/cowan/tagsoup/ElementType;->name()Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/ElementType;->namespace()Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/ElementType;->namespace(Ljava/lang/String;Z)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/ElementType;->normalize(Ljava/lang/String;)Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/ElementType;->parent()Lorg/ccil/cowan/tagsoup/ElementType;
+HSPLorg/ccil/cowan/tagsoup/ElementType;->setAttribute(Lorg/ccil/cowan/tagsoup/AttributesImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLorg/ccil/cowan/tagsoup/HTMLScanner;-><init>()V
 HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->mark()V
 HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->resetDocumentLocator(Ljava/lang/String;Ljava/lang/String;)V
@@ -22306,9 +43734,14 @@
 HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->unread(Ljava/io/PushbackReader;I)V
 HSPLorg/ccil/cowan/tagsoup/Parser$1;-><init>(Lorg/ccil/cowan/tagsoup/Parser;)V
 HSPLorg/ccil/cowan/tagsoup/Parser;-><init>()V
+HSPLorg/ccil/cowan/tagsoup/Parser;->aname([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->aval([CII)V
 HSPLorg/ccil/cowan/tagsoup/Parser;->entity([CII)V
 HSPLorg/ccil/cowan/tagsoup/Parser;->eof([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->etag([CII)V
 HSPLorg/ccil/cowan/tagsoup/Parser;->etag_basic([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->etag_cdata([CII)Z
+HSPLorg/ccil/cowan/tagsoup/Parser;->expandEntities(Ljava/lang/String;)Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/Parser;->foreign(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLorg/ccil/cowan/tagsoup/Parser;->getEntity()I
 HSPLorg/ccil/cowan/tagsoup/Parser;->getReader(Lorg/xml/sax/InputSource;)Ljava/io/Reader;
@@ -22325,38 +43758,52 @@
 HSPLorg/ccil/cowan/tagsoup/Parser;->setContentHandler(Lorg/xml/sax/ContentHandler;)V
 HSPLorg/ccil/cowan/tagsoup/Parser;->setProperty(Ljava/lang/String;Ljava/lang/Object;)V
 HSPLorg/ccil/cowan/tagsoup/Parser;->setup()V
+HSPLorg/ccil/cowan/tagsoup/Parser;->stagc([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->stage([CII)V
 HSPLorg/ccil/cowan/tagsoup/Parser;->truthValue(Z)Ljava/lang/Boolean;
+HSPLorg/ccil/cowan/tagsoup/Schema;->elementType(Ljava/lang/String;III)V
 HSPLorg/ccil/cowan/tagsoup/Schema;->getElementType(Ljava/lang/String;)Lorg/ccil/cowan/tagsoup/ElementType;
+HSPLorg/ccil/cowan/tagsoup/Schema;->getEntity(Ljava/lang/String;)I
 HSPLorg/ccil/cowan/tagsoup/Schema;->getPrefix()Ljava/lang/String;
 HSPLorg/ccil/cowan/tagsoup/Schema;->getURI()Ljava/lang/String;
 HSPLorg/json/JSON;->checkDouble(D)D
 HSPLorg/json/JSON;->toBoolean(Ljava/lang/Object;)Ljava/lang/Boolean;
+HSPLorg/json/JSON;->toDouble(Ljava/lang/Object;)Ljava/lang/Double;
 HSPLorg/json/JSON;->toInteger(Ljava/lang/Object;)Ljava/lang/Integer;
 HSPLorg/json/JSON;->toLong(Ljava/lang/Object;)Ljava/lang/Long;
 HSPLorg/json/JSON;->toString(Ljava/lang/Object;)Ljava/lang/String;
 HSPLorg/json/JSONArray;-><init>()V
+HSPLorg/json/JSONArray;-><init>(Ljava/lang/Object;)V
 HSPLorg/json/JSONArray;-><init>(Ljava/lang/String;)V
 HSPLorg/json/JSONArray;-><init>(Ljava/util/Collection;)V
 HSPLorg/json/JSONArray;-><init>(Lorg/json/JSONTokener;)V
 HSPLorg/json/JSONArray;->get(I)Ljava/lang/Object;
+HSPLorg/json/JSONArray;->getInt(I)I
+HSPLorg/json/JSONArray;->getJSONArray(I)Lorg/json/JSONArray;
 HSPLorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
+HSPLorg/json/JSONArray;->getLong(I)J
 HSPLorg/json/JSONArray;->getString(I)Ljava/lang/String;
 HSPLorg/json/JSONArray;->length()I
 HSPLorg/json/JSONArray;->opt(I)Ljava/lang/Object;
 HSPLorg/json/JSONArray;->optJSONObject(I)Lorg/json/JSONObject;
+HSPLorg/json/JSONArray;->optString(I)Ljava/lang/String;
+HSPLorg/json/JSONArray;->optString(ILjava/lang/String;)Ljava/lang/String;
 HSPLorg/json/JSONArray;->put(I)Lorg/json/JSONArray;
 HSPLorg/json/JSONArray;->put(J)Lorg/json/JSONArray;
 HSPLorg/json/JSONArray;->put(Ljava/lang/Object;)Lorg/json/JSONArray;
 HSPLorg/json/JSONArray;->toString()Ljava/lang/String;
 HSPLorg/json/JSONArray;->writeTo(Lorg/json/JSONStringer;)V
 HSPLorg/json/JSONException;-><init>(Ljava/lang/String;)V
+HSPLorg/json/JSONObject$1;->toString()Ljava/lang/String;
 HSPLorg/json/JSONObject;-><init>()V
 HSPLorg/json/JSONObject;-><init>(Ljava/lang/String;)V
 HSPLorg/json/JSONObject;-><init>(Ljava/util/Map;)V
+HSPLorg/json/JSONObject;-><init>(Lorg/json/JSONObject;[Ljava/lang/String;)V
 HSPLorg/json/JSONObject;-><init>(Lorg/json/JSONTokener;)V
 HSPLorg/json/JSONObject;->checkName(Ljava/lang/String;)Ljava/lang/String;
 HSPLorg/json/JSONObject;->get(Ljava/lang/String;)Ljava/lang/Object;
 HSPLorg/json/JSONObject;->getBoolean(Ljava/lang/String;)Z
+HSPLorg/json/JSONObject;->getDouble(Ljava/lang/String;)D
 HSPLorg/json/JSONObject;->getInt(Ljava/lang/String;)I
 HSPLorg/json/JSONObject;->getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
 HSPLorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
@@ -22370,6 +43817,8 @@
 HSPLorg/json/JSONObject;->opt(Ljava/lang/String;)Ljava/lang/Object;
 HSPLorg/json/JSONObject;->optBoolean(Ljava/lang/String;)Z
 HSPLorg/json/JSONObject;->optBoolean(Ljava/lang/String;Z)Z
+HSPLorg/json/JSONObject;->optDouble(Ljava/lang/String;)D
+HSPLorg/json/JSONObject;->optDouble(Ljava/lang/String;D)D
 HSPLorg/json/JSONObject;->optInt(Ljava/lang/String;)I
 HSPLorg/json/JSONObject;->optInt(Ljava/lang/String;I)I
 HSPLorg/json/JSONObject;->optJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
@@ -22384,10 +43833,14 @@
 HSPLorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
 HSPLorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
 HSPLorg/json/JSONObject;->putOpt(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
+HSPLorg/json/JSONObject;->quote(Ljava/lang/String;)Ljava/lang/String;
+HSPLorg/json/JSONObject;->remove(Ljava/lang/String;)Ljava/lang/Object;
 HSPLorg/json/JSONObject;->toString()Ljava/lang/String;
+HSPLorg/json/JSONObject;->toString(I)Ljava/lang/String;
 HSPLorg/json/JSONObject;->wrap(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLorg/json/JSONObject;->writeTo(Lorg/json/JSONStringer;)V
 HSPLorg/json/JSONStringer;-><init>()V
+HSPLorg/json/JSONStringer;-><init>(I)V
 HSPLorg/json/JSONStringer;->array()Lorg/json/JSONStringer;
 HSPLorg/json/JSONStringer;->beforeKey()V
 HSPLorg/json/JSONStringer;->beforeValue()V
@@ -22412,18 +43865,32 @@
 HSPLorg/json/JSONTokener;->readEscapeCharacter()C
 HSPLorg/json/JSONTokener;->readLiteral()Ljava/lang/Object;
 HSPLorg/json/JSONTokener;->readObject()Lorg/json/JSONObject;
+HSPLorg/json/JSONTokener;->syntaxError(Ljava/lang/String;)Lorg/json/JSONException;
+HSPLorg/json/JSONTokener;->toString()Ljava/lang/String;
+HSPLorg/xml/sax/InputSource;-><init>(Ljava/io/InputStream;)V
 HSPLorg/xml/sax/InputSource;-><init>(Ljava/io/Reader;)V
 HSPLorg/xml/sax/InputSource;->getByteStream()Ljava/io/InputStream;
 HSPLorg/xml/sax/InputSource;->getCharacterStream()Ljava/io/Reader;
 HSPLorg/xml/sax/InputSource;->getEncoding()Ljava/lang/String;
 HSPLorg/xml/sax/InputSource;->getPublicId()Ljava/lang/String;
 HSPLorg/xml/sax/InputSource;->getSystemId()Ljava/lang/String;
+HSPLorg/xml/sax/InputSource;->setByteStream(Ljava/io/InputStream;)V
 HSPLorg/xml/sax/InputSource;->setCharacterStream(Ljava/io/Reader;)V
 HSPLorg/xml/sax/helpers/DefaultHandler;-><init>()V
 HSPLorg/xmlpull/v1/XmlPullParserFactory;-><init>()V
 HSPLorg/xmlpull/v1/XmlPullParserFactory;->getParserInstance()Lorg/xmlpull/v1/XmlPullParser;
+HSPLorg/xmlpull/v1/XmlPullParserFactory;->getSerializerInstance()Lorg/xmlpull/v1/XmlSerializer;
 HSPLorg/xmlpull/v1/XmlPullParserFactory;->newInstance()Lorg/xmlpull/v1/XmlPullParserFactory;
 HSPLorg/xmlpull/v1/XmlPullParserFactory;->newPullParser()Lorg/xmlpull/v1/XmlPullParser;
+HSPLsun/invoke/util/Wrapper;->findPrimitiveType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
+HSPLsun/invoke/util/Wrapper;->forBasicType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
+HSPLsun/invoke/util/Wrapper;->forPrimitiveType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
+HSPLsun/invoke/util/Wrapper;->hashPrim(Ljava/lang/Class;)I
+HSPLsun/invoke/util/Wrapper;->isDoubleWord()Z
+HSPLsun/invoke/util/Wrapper;->isIntegral()Z
+HSPLsun/invoke/util/Wrapper;->isNumeric()Z
+HSPLsun/invoke/util/Wrapper;->isSingleWord()Z
+HSPLsun/invoke/util/Wrapper;->isSubwordOrInt()Z
 HSPLsun/misc/ASCIICaseInsensitiveComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLsun/misc/ASCIICaseInsensitiveComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I
 HSPLsun/misc/ASCIICaseInsensitiveComparator;->isUpper(I)Z
@@ -22439,6 +43906,7 @@
 HSPLsun/misc/CompoundEnumeration;->next()Z
 HSPLsun/misc/FDBigInteger;-><init>(J[CII)V
 HSPLsun/misc/FDBigInteger;-><init>([II)V
+HSPLsun/misc/FDBigInteger;->add(Lsun/misc/FDBigInteger;)Lsun/misc/FDBigInteger;
 HSPLsun/misc/FDBigInteger;->addAndCmp(Lsun/misc/FDBigInteger;Lsun/misc/FDBigInteger;)I
 HSPLsun/misc/FDBigInteger;->big5pow(I)Lsun/misc/FDBigInteger;
 HSPLsun/misc/FDBigInteger;->checkZeroTail([II)I
@@ -22483,6 +43951,7 @@
 HSPLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->roundup()V
 HSPLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->setSign(Z)V
 HSPLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->toJavaFormatString()Ljava/lang/String;
+HSPLsun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer;->appendTo(Ljava/lang/Appendable;)V
 HSPLsun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer;->doubleValue()D
 HSPLsun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer;->floatValue()F
 HSPLsun/misc/FloatingDecimal;->appendTo(DLjava/lang/Appendable;)V
@@ -22502,6 +43971,8 @@
 HSPLsun/misc/FormattedFloatingDecimal;->create(ZI)[C
 HSPLsun/misc/FormattedFloatingDecimal;->fillDecimal(I[CIIZ)V
 HSPLsun/misc/FormattedFloatingDecimal;->getBuffer()[C
+HSPLsun/misc/FormattedFloatingDecimal;->getExponent()[C
+HSPLsun/misc/FormattedFloatingDecimal;->getExponentRounded()I
 HSPLsun/misc/FormattedFloatingDecimal;->getMantissa()[C
 HSPLsun/misc/FormattedFloatingDecimal;->valueOf(DILsun/misc/FormattedFloatingDecimal$Form;)Lsun/misc/FormattedFloatingDecimal;
 HSPLsun/misc/IOUtils;->readFully(Ljava/io/InputStream;IZ)[B
@@ -22518,8 +43989,12 @@
 HSPLsun/misc/Unsafe;->getAndSetObject(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;
 HSPLsun/misc/Unsafe;->getUnsafe()Lsun/misc/Unsafe;
 HSPLsun/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J
+HSPLsun/misc/VM;->isBooted()Z
+HSPLsun/net/NetHooks;->beforeTcpBind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
 HSPLsun/net/NetHooks;->beforeTcpConnect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
+HSPLsun/net/NetProperties;->get(Ljava/lang/String;)Ljava/lang/String;
 HSPLsun/net/ResourceManager;->afterUdpClose()V
+HSPLsun/net/ResourceManager;->beforeUdpCreate()V
 HSPLsun/net/spi/DefaultProxySelector$1;-><init>(Lsun/net/spi/DefaultProxySelector;Ljava/lang/String;Lsun/net/spi/DefaultProxySelector$NonProxyInfo;Ljava/lang/String;)V
 HSPLsun/net/spi/DefaultProxySelector$1;->run()Ljava/lang/Object;
 HSPLsun/net/spi/DefaultProxySelector$1;->run()Ljava/net/Proxy;
@@ -22530,11 +44005,26 @@
 HSPLsun/net/www/ParseUtil;->encodePath(Ljava/lang/String;Z)Ljava/lang/String;
 HSPLsun/net/www/protocol/file/Handler;->parseURL(Ljava/net/URL;Ljava/lang/String;II)V
 HSPLsun/net/www/protocol/jar/Handler;-><init>()V
+HSPLsun/nio/ch/AbstractPollArrayWrapper;-><init>()V
+HSPLsun/nio/ch/AbstractPollArrayWrapper;->getReventOps(I)I
+HSPLsun/nio/ch/AbstractPollArrayWrapper;->putDescriptor(II)V
+HSPLsun/nio/ch/AbstractPollArrayWrapper;->putEventOps(II)V
+HSPLsun/nio/ch/AbstractPollArrayWrapper;->putReventOps(II)V
+HSPLsun/nio/ch/AbstractPollSelectorImpl;-><init>(Ljava/nio/channels/spi/SelectorProvider;II)V
+HSPLsun/nio/ch/AbstractPollSelectorImpl;->implClose()V
+HSPLsun/nio/ch/AbstractPollSelectorImpl;->implRegister(Lsun/nio/ch/SelectionKeyImpl;)V
+HSPLsun/nio/ch/AbstractPollSelectorImpl;->putEventOps(Lsun/nio/ch/SelectionKeyImpl;I)V
+HSPLsun/nio/ch/AbstractPollSelectorImpl;->updateSelectedKeys()I
+HSPLsun/nio/ch/AllocatedNativeObject;-><init>(IZ)V
+HSPLsun/nio/ch/AllocatedNativeObject;->free()V
 HSPLsun/nio/ch/ChannelInputStream;-><init>(Ljava/nio/channels/ReadableByteChannel;)V
+HSPLsun/nio/ch/ChannelInputStream;->available()I
 HSPLsun/nio/ch/ChannelInputStream;->close()V
+HSPLsun/nio/ch/ChannelInputStream;->read()I
 HSPLsun/nio/ch/ChannelInputStream;->read(Ljava/nio/ByteBuffer;)I
 HSPLsun/nio/ch/ChannelInputStream;->read(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/ByteBuffer;Z)I
 HSPLsun/nio/ch/ChannelInputStream;->read([BII)I
+HSPLsun/nio/ch/DefaultSelectorProvider;->create()Ljava/nio/channels/spi/SelectorProvider;
 HSPLsun/nio/ch/FileChannelImpl$Unmapper;-><init>(JJILjava/io/FileDescriptor;)V
 HSPLsun/nio/ch/FileChannelImpl$Unmapper;-><init>(JJILjava/io/FileDescriptor;Lsun/nio/ch/FileChannelImpl$1;)V
 HSPLsun/nio/ch/FileChannelImpl$Unmapper;->run()V
@@ -22543,7 +44033,9 @@
 HSPLsun/nio/ch/FileChannelImpl;->ensureOpen()V
 HSPLsun/nio/ch/FileChannelImpl;->fileLockTable()Lsun/nio/ch/FileLockTable;
 HSPLsun/nio/ch/FileChannelImpl;->finalize()V
+HSPLsun/nio/ch/FileChannelImpl;->force(Z)V
 HSPLsun/nio/ch/FileChannelImpl;->implCloseChannel()V
+HSPLsun/nio/ch/FileChannelImpl;->isSharedFileLockTable()Z
 HSPLsun/nio/ch/FileChannelImpl;->lock(JJZ)Ljava/nio/channels/FileLock;
 HSPLsun/nio/ch/FileChannelImpl;->map(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;
 HSPLsun/nio/ch/FileChannelImpl;->open(Ljava/io/FileDescriptor;Ljava/lang/String;ZZLjava/lang/Object;)Ljava/nio/channels/FileChannel;
@@ -22553,19 +44045,24 @@
 HSPLsun/nio/ch/FileChannelImpl;->read(Ljava/nio/ByteBuffer;)I
 HSPLsun/nio/ch/FileChannelImpl;->release(Lsun/nio/ch/FileLockImpl;)V
 HSPLsun/nio/ch/FileChannelImpl;->size()J
+HSPLsun/nio/ch/FileChannelImpl;->truncate(J)Ljava/nio/channels/FileChannel;
 HSPLsun/nio/ch/FileChannelImpl;->tryLock(JJZ)Ljava/nio/channels/FileLock;
 HSPLsun/nio/ch/FileChannelImpl;->write(Ljava/nio/ByteBuffer;)I
+HSPLsun/nio/ch/FileDescriptorHolderSocketImpl;-><init>(Ljava/io/FileDescriptor;)V
 HSPLsun/nio/ch/FileDispatcher;-><init>()V
 HSPLsun/nio/ch/FileDispatcherImpl;-><init>(Z)V
 HSPLsun/nio/ch/FileDispatcherImpl;->close(Ljava/io/FileDescriptor;)V
 HSPLsun/nio/ch/FileDispatcherImpl;->duplicateForMapping(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor;
+HSPLsun/nio/ch/FileDispatcherImpl;->force(Ljava/io/FileDescriptor;Z)I
 HSPLsun/nio/ch/FileDispatcherImpl;->lock(Ljava/io/FileDescriptor;ZJJZ)I
 HSPLsun/nio/ch/FileDispatcherImpl;->read(Ljava/io/FileDescriptor;JI)I
 HSPLsun/nio/ch/FileDispatcherImpl;->release(Ljava/io/FileDescriptor;JJ)V
 HSPLsun/nio/ch/FileDispatcherImpl;->size(Ljava/io/FileDescriptor;)J
+HSPLsun/nio/ch/FileDispatcherImpl;->truncate(Ljava/io/FileDescriptor;J)I
 HSPLsun/nio/ch/FileDispatcherImpl;->write(Ljava/io/FileDescriptor;JI)I
 HSPLsun/nio/ch/FileKey;-><init>()V
 HSPLsun/nio/ch/FileKey;->create(Ljava/io/FileDescriptor;)Lsun/nio/ch/FileKey;
+HSPLsun/nio/ch/FileKey;->equals(Ljava/lang/Object;)Z
 HSPLsun/nio/ch/FileKey;->hashCode()I
 HSPLsun/nio/ch/FileLockImpl;-><init>(Ljava/nio/channels/FileChannel;JJZ)V
 HSPLsun/nio/ch/FileLockImpl;->invalidate()V
@@ -22576,20 +44073,93 @@
 HSPLsun/nio/ch/IOStatus;->checkAll(J)Z
 HSPLsun/nio/ch/IOStatus;->normalize(I)I
 HSPLsun/nio/ch/IOStatus;->normalize(J)J
+HSPLsun/nio/ch/IOUtil;->newFD(I)Ljava/io/FileDescriptor;
+HSPLsun/nio/ch/IOUtil;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
+HSPLsun/nio/ch/IOUtil;->readIntoNativeBuffer(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
+HSPLsun/nio/ch/IOUtil;->write(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
+HSPLsun/nio/ch/IOUtil;->writeFromNativeBuffer(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
 HSPLsun/nio/ch/NativeDispatcher;-><init>()V
+HSPLsun/nio/ch/NativeObject;-><init>(IZ)V
+HSPLsun/nio/ch/NativeObject;->address()J
+HSPLsun/nio/ch/NativeObject;->getShort(I)S
+HSPLsun/nio/ch/NativeObject;->putInt(II)V
+HSPLsun/nio/ch/NativeObject;->putShort(IS)V
 HSPLsun/nio/ch/NativeThreadSet;-><init>(I)V
 HSPLsun/nio/ch/NativeThreadSet;->add()I
 HSPLsun/nio/ch/NativeThreadSet;->remove(I)V
 HSPLsun/nio/ch/NativeThreadSet;->signalAndWait()V
+HSPLsun/nio/ch/Net;->checkAddress(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
+HSPLsun/nio/ch/Net;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I
+HSPLsun/nio/ch/Net;->connect(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I
+HSPLsun/nio/ch/Net;->isIPv6Available()Z
+HSPLsun/nio/ch/Net;->localAddress(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
+HSPLsun/nio/ch/Net;->socket(Ljava/net/ProtocolFamily;Z)Ljava/io/FileDescriptor;
+HSPLsun/nio/ch/Net;->socket(Z)Ljava/io/FileDescriptor;
+HSPLsun/nio/ch/PollArrayWrapper;-><init>(I)V
+HSPLsun/nio/ch/PollArrayWrapper;->addEntry(Lsun/nio/ch/SelChImpl;)V
+HSPLsun/nio/ch/PollArrayWrapper;->free()V
+HSPLsun/nio/ch/PollArrayWrapper;->initInterrupt(II)V
+HSPLsun/nio/ch/PollArrayWrapper;->interrupt()V
+HSPLsun/nio/ch/PollArrayWrapper;->poll(IIJ)I
+HSPLsun/nio/ch/PollArrayWrapper;->release(I)V
+HSPLsun/nio/ch/PollSelectorImpl;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V
+HSPLsun/nio/ch/PollSelectorImpl;->doSelect(J)I
+HSPLsun/nio/ch/PollSelectorImpl;->implCloseInterrupt()V
+HSPLsun/nio/ch/PollSelectorImpl;->wakeup()Ljava/nio/channels/Selector;
+HSPLsun/nio/ch/PollSelectorProvider;-><init>()V
+HSPLsun/nio/ch/PollSelectorProvider;->openSelector()Ljava/nio/channels/spi/AbstractSelector;
+HSPLsun/nio/ch/SelectionKeyImpl;-><init>(Lsun/nio/ch/SelChImpl;Lsun/nio/ch/SelectorImpl;)V
+HSPLsun/nio/ch/SelectionKeyImpl;->channel()Ljava/nio/channels/SelectableChannel;
+HSPLsun/nio/ch/SelectionKeyImpl;->ensureValid()V
+HSPLsun/nio/ch/SelectionKeyImpl;->getIndex()I
+HSPLsun/nio/ch/SelectionKeyImpl;->interestOps(I)Ljava/nio/channels/SelectionKey;
+HSPLsun/nio/ch/SelectionKeyImpl;->nioInterestOps()I
+HSPLsun/nio/ch/SelectionKeyImpl;->nioInterestOps(I)Ljava/nio/channels/SelectionKey;
+HSPLsun/nio/ch/SelectionKeyImpl;->nioReadyOps()I
+HSPLsun/nio/ch/SelectionKeyImpl;->nioReadyOps(I)V
+HSPLsun/nio/ch/SelectionKeyImpl;->readyOps()I
+HSPLsun/nio/ch/SelectionKeyImpl;->selector()Ljava/nio/channels/Selector;
+HSPLsun/nio/ch/SelectionKeyImpl;->setIndex(I)V
+HSPLsun/nio/ch/SelectorImpl;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V
+HSPLsun/nio/ch/SelectorImpl;->implCloseSelector()V
+HSPLsun/nio/ch/SelectorImpl;->lockAndDoSelect(J)I
+HSPLsun/nio/ch/SelectorImpl;->processDeregisterQueue()V
+HSPLsun/nio/ch/SelectorImpl;->register(Ljava/nio/channels/spi/AbstractSelectableChannel;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;
+HSPLsun/nio/ch/SelectorImpl;->select(J)I
+HSPLsun/nio/ch/SelectorProviderImpl;-><init>()V
+HSPLsun/nio/ch/SelectorProviderImpl;->openSocketChannel()Ljava/nio/channels/SocketChannel;
 HSPLsun/nio/ch/SharedFileLockTable$FileLockReference;-><init>(Ljava/nio/channels/FileLock;Ljava/lang/ref/ReferenceQueue;Lsun/nio/ch/FileKey;)V
+HSPLsun/nio/ch/SharedFileLockTable$FileLockReference;->fileKey()Lsun/nio/ch/FileKey;
 HSPLsun/nio/ch/SharedFileLockTable;-><init>(Ljava/nio/channels/Channel;Ljava/io/FileDescriptor;)V
 HSPLsun/nio/ch/SharedFileLockTable;->add(Ljava/nio/channels/FileLock;)V
+HSPLsun/nio/ch/SharedFileLockTable;->checkList(Ljava/util/List;JJ)V
 HSPLsun/nio/ch/SharedFileLockTable;->remove(Ljava/nio/channels/FileLock;)V
 HSPLsun/nio/ch/SharedFileLockTable;->removeAll()Ljava/util/List;
 HSPLsun/nio/ch/SharedFileLockTable;->removeKeyIfEmpty(Lsun/nio/ch/FileKey;Ljava/util/List;)V
 HSPLsun/nio/ch/SharedFileLockTable;->removeStaleEntries()V
+HSPLsun/nio/ch/SocketAdaptor;-><init>(Lsun/nio/ch/SocketChannelImpl;)V
+HSPLsun/nio/ch/SocketAdaptor;->create(Lsun/nio/ch/SocketChannelImpl;)Ljava/net/Socket;
+HSPLsun/nio/ch/SocketAdaptor;->isClosed()Z
+HSPLsun/nio/ch/SocketChannelImpl;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V
+HSPLsun/nio/ch/SocketChannelImpl;->connect(Ljava/net/SocketAddress;)Z
+HSPLsun/nio/ch/SocketChannelImpl;->ensureOpenAndUnconnected()V
+HSPLsun/nio/ch/SocketChannelImpl;->finalize()V
+HSPLsun/nio/ch/SocketChannelImpl;->finishConnect()Z
+HSPLsun/nio/ch/SocketChannelImpl;->getFD()Ljava/io/FileDescriptor;
+HSPLsun/nio/ch/SocketChannelImpl;->implCloseSelectableChannel()V
+HSPLsun/nio/ch/SocketChannelImpl;->implConfigureBlocking(Z)V
+HSPLsun/nio/ch/SocketChannelImpl;->isConnected()Z
+HSPLsun/nio/ch/SocketChannelImpl;->kill()V
+HSPLsun/nio/ch/SocketChannelImpl;->readerCleanup()V
+HSPLsun/nio/ch/SocketChannelImpl;->socket()Ljava/net/Socket;
+HSPLsun/nio/ch/SocketChannelImpl;->translateAndSetInterestOps(ILsun/nio/ch/SelectionKeyImpl;)V
+HSPLsun/nio/ch/SocketChannelImpl;->translateAndSetReadyOps(ILsun/nio/ch/SelectionKeyImpl;)Z
+HSPLsun/nio/ch/SocketChannelImpl;->translateReadyOps(IILsun/nio/ch/SelectionKeyImpl;)Z
+HSPLsun/nio/ch/SocketDispatcher;->close(Ljava/io/FileDescriptor;)V
+HSPLsun/nio/ch/SocketDispatcher;->preClose(Ljava/io/FileDescriptor;)V
 HSPLsun/nio/ch/Util$1;->initialValue()Ljava/lang/Object;
 HSPLsun/nio/ch/Util$1;->initialValue()Lsun/nio/ch/Util$BufferCache;
+HSPLsun/nio/ch/Util$3;-><init>(Ljava/util/Set;)V
 HSPLsun/nio/ch/Util$BufferCache;-><init>()V
 HSPLsun/nio/ch/Util$BufferCache;->get(I)Ljava/nio/ByteBuffer;
 HSPLsun/nio/ch/Util$BufferCache;->isEmpty()Z
@@ -22597,17 +44167,27 @@
 HSPLsun/nio/ch/Util$BufferCache;->offerFirst(Ljava/nio/ByteBuffer;)Z
 HSPLsun/nio/ch/Util$BufferCache;->removeFirst()Ljava/nio/ByteBuffer;
 HSPLsun/nio/ch/Util;->access$000()I
+HSPLsun/nio/ch/Util;->atBugLevel(Ljava/lang/String;)Z
+HSPLsun/nio/ch/Util;->free(Ljava/nio/ByteBuffer;)V
+HSPLsun/nio/ch/Util;->getTemporaryDirectBuffer(I)Ljava/nio/ByteBuffer;
+HSPLsun/nio/ch/Util;->isBufferTooLarge(I)Z
+HSPLsun/nio/ch/Util;->isBufferTooLarge(Ljava/nio/ByteBuffer;)Z
+HSPLsun/nio/ch/Util;->offerFirstTemporaryDirectBuffer(Ljava/nio/ByteBuffer;)V
+HSPLsun/nio/ch/Util;->ungrowableSet(Ljava/util/Set;)Ljava/util/Set;
 HSPLsun/nio/cs/StreamDecoder;-><init>(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)V
 HSPLsun/nio/cs/StreamDecoder;-><init>(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/CharsetDecoder;)V
 HSPLsun/nio/cs/StreamDecoder;->close()V
 HSPLsun/nio/cs/StreamDecoder;->ensureOpen()V
 HSPLsun/nio/cs/StreamDecoder;->forInputStreamReader(Ljava/io/InputStream;Ljava/lang/Object;Ljava/lang/String;)Lsun/nio/cs/StreamDecoder;
 HSPLsun/nio/cs/StreamDecoder;->forInputStreamReader(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)Lsun/nio/cs/StreamDecoder;
+HSPLsun/nio/cs/StreamDecoder;->forInputStreamReader(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/CharsetDecoder;)Lsun/nio/cs/StreamDecoder;
 HSPLsun/nio/cs/StreamDecoder;->implClose()V
 HSPLsun/nio/cs/StreamDecoder;->implRead([CII)I
 HSPLsun/nio/cs/StreamDecoder;->implReady()Z
 HSPLsun/nio/cs/StreamDecoder;->inReady()Z
+HSPLsun/nio/cs/StreamDecoder;->read()I
 HSPLsun/nio/cs/StreamDecoder;->read([CII)I
+HSPLsun/nio/cs/StreamDecoder;->read0()I
 HSPLsun/nio/cs/StreamDecoder;->readBytes()I
 HSPLsun/nio/cs/StreamDecoder;->ready()Z
 HSPLsun/nio/cs/StreamEncoder;-><init>(Ljava/io/OutputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)V
@@ -22615,6 +44195,7 @@
 HSPLsun/nio/cs/StreamEncoder;->close()V
 HSPLsun/nio/cs/StreamEncoder;->ensureOpen()V
 HSPLsun/nio/cs/StreamEncoder;->flush()V
+HSPLsun/nio/cs/StreamEncoder;->flushBuffer()V
 HSPLsun/nio/cs/StreamEncoder;->flushLeftoverChar(Ljava/nio/CharBuffer;Z)V
 HSPLsun/nio/cs/StreamEncoder;->forOutputStreamWriter(Ljava/io/OutputStream;Ljava/lang/Object;Ljava/lang/String;)Lsun/nio/cs/StreamEncoder;
 HSPLsun/nio/cs/StreamEncoder;->forOutputStreamWriter(Ljava/io/OutputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)Lsun/nio/cs/StreamEncoder;
@@ -22622,22 +44203,41 @@
 HSPLsun/nio/cs/StreamEncoder;->implFlush()V
 HSPLsun/nio/cs/StreamEncoder;->implFlushBuffer()V
 HSPLsun/nio/cs/StreamEncoder;->implWrite([CII)V
+HSPLsun/nio/cs/StreamEncoder;->isOpen()Z
 HSPLsun/nio/cs/StreamEncoder;->write(I)V
 HSPLsun/nio/cs/StreamEncoder;->write(Ljava/lang/String;II)V
 HSPLsun/nio/cs/StreamEncoder;->write([CII)V
 HSPLsun/nio/cs/StreamEncoder;->writeBytes()V
+HSPLsun/nio/cs/ThreadLocalCoders$1;->create(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLsun/nio/cs/ThreadLocalCoders$1;->hasName(Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLsun/nio/cs/ThreadLocalCoders$2;->create(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLsun/nio/cs/ThreadLocalCoders$2;->hasName(Ljava/lang/Object;Ljava/lang/Object;)Z
 HSPLsun/nio/cs/ThreadLocalCoders$Cache;->forName(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLsun/nio/cs/ThreadLocalCoders$Cache;->moveToFront([Ljava/lang/Object;I)V
+HSPLsun/nio/cs/ThreadLocalCoders;->decoderFor(Ljava/lang/Object;)Ljava/nio/charset/CharsetDecoder;
+HSPLsun/nio/cs/ThreadLocalCoders;->encoderFor(Ljava/lang/Object;)Ljava/nio/charset/CharsetEncoder;
 HSPLsun/nio/fs/AbstractBasicFileAttributeView;-><init>()V
+HSPLsun/nio/fs/AbstractFileSystemProvider;->delete(Ljava/nio/file/Path;)V
 HSPLsun/nio/fs/AbstractPath;-><init>()V
+HSPLsun/nio/fs/AbstractPath;->resolve(Ljava/lang/String;)Ljava/nio/file/Path;
+HSPLsun/nio/fs/AbstractPath;->startsWith(Ljava/lang/String;)Z
+HSPLsun/nio/fs/AbstractPath;->toFile()Ljava/io/File;
+PLsun/nio/fs/Globs;-><clinit>()V
+PLsun/nio/fs/Globs;->toUnixRegexPattern(Ljava/lang/String;)Ljava/lang/String;
 HSPLsun/nio/fs/LinuxFileSystemProvider;->getFileAttributeView(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/FileAttributeView;
 HSPLsun/nio/fs/LinuxFileSystemProvider;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;
+HSPLsun/nio/fs/NativeBuffer$Deallocator;-><init>(J)V
+HSPLsun/nio/fs/NativeBuffer$Deallocator;->run()V
+HSPLsun/nio/fs/NativeBuffer;-><init>(I)V
+HSPLsun/nio/fs/NativeBuffer;->access$000()Lsun/misc/Unsafe;
 HSPLsun/nio/fs/NativeBuffer;->address()J
 HSPLsun/nio/fs/NativeBuffer;->owner()Ljava/lang/Object;
 HSPLsun/nio/fs/NativeBuffer;->release()V
 HSPLsun/nio/fs/NativeBuffer;->setOwner(Ljava/lang/Object;)V
 HSPLsun/nio/fs/NativeBuffer;->size()I
+HSPLsun/nio/fs/NativeBuffers;->allocNativeBuffer(I)Lsun/nio/fs/NativeBuffer;
 HSPLsun/nio/fs/NativeBuffers;->copyCStringToNativeBuffer([BLsun/nio/fs/NativeBuffer;)V
+HSPLsun/nio/fs/NativeBuffers;->getNativeBufferFromCache(I)Lsun/nio/fs/NativeBuffer;
 HSPLsun/nio/fs/NativeBuffers;->releaseNativeBuffer(Lsun/nio/fs/NativeBuffer;)V
 HSPLsun/nio/fs/UnixChannelFactory$1;-><clinit>()V
 HSPLsun/nio/fs/UnixChannelFactory$Flags;-><init>()V
@@ -22646,6 +44246,24 @@
 HSPLsun/nio/fs/UnixChannelFactory;->newFileChannel(ILsun/nio/fs/UnixPath;Ljava/lang/String;Ljava/util/Set;I)Ljava/nio/channels/FileChannel;
 HSPLsun/nio/fs/UnixChannelFactory;->newFileChannel(Lsun/nio/fs/UnixPath;Ljava/util/Set;I)Ljava/nio/channels/FileChannel;
 HSPLsun/nio/fs/UnixChannelFactory;->open(ILsun/nio/fs/UnixPath;Ljava/lang/String;Lsun/nio/fs/UnixChannelFactory$Flags;I)Ljava/io/FileDescriptor;
+HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;-><clinit>()V
+HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;-><init>(Lsun/nio/fs/UnixDirectoryStream;Ljava/nio/file/DirectoryStream;)V
+HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->hasNext()Z
+HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->isSelfOrParent([B)Z
+HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->next()Ljava/lang/Object;
+HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->next()Ljava/nio/file/Path;
+HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->readNextEntry()Ljava/nio/file/Path;
+HSPLsun/nio/fs/UnixDirectoryStream;-><init>(Lsun/nio/fs/UnixPath;JLjava/nio/file/DirectoryStream$Filter;)V
+HSPLsun/nio/fs/UnixDirectoryStream;->access$000(Lsun/nio/fs/UnixDirectoryStream;)J
+HSPLsun/nio/fs/UnixDirectoryStream;->access$100(Lsun/nio/fs/UnixDirectoryStream;)Lsun/nio/fs/UnixPath;
+HSPLsun/nio/fs/UnixDirectoryStream;->access$200(Lsun/nio/fs/UnixDirectoryStream;)Ljava/nio/file/DirectoryStream$Filter;
+HSPLsun/nio/fs/UnixDirectoryStream;->close()V
+HSPLsun/nio/fs/UnixDirectoryStream;->closeImpl()Z
+HSPLsun/nio/fs/UnixDirectoryStream;->finalize()V
+HSPLsun/nio/fs/UnixDirectoryStream;->isOpen()Z
+HSPLsun/nio/fs/UnixDirectoryStream;->iterator(Ljava/nio/file/DirectoryStream;)Ljava/util/Iterator;
+HSPLsun/nio/fs/UnixDirectoryStream;->readLock()Ljava/util/concurrent/locks/Lock;
+HSPLsun/nio/fs/UnixDirectoryStream;->writeLock()Ljava/util/concurrent/locks/Lock;
 HSPLsun/nio/fs/UnixException;-><init>(I)V
 HSPLsun/nio/fs/UnixException;->errno()I
 HSPLsun/nio/fs/UnixException;->rethrowAsIOException(Lsun/nio/fs/UnixPath;)V
@@ -22655,41 +44273,80 @@
 HSPLsun/nio/fs/UnixFileAttributeViews$Basic;->readAttributes()Ljava/nio/file/attribute/BasicFileAttributes;
 HSPLsun/nio/fs/UnixFileAttributeViews;->createBasicView(Lsun/nio/fs/UnixPath;Z)Lsun/nio/fs/UnixFileAttributeViews$Basic;
 HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;-><init>(Lsun/nio/fs/UnixFileAttributes;)V
+HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->creationTime()Ljava/nio/file/attribute/FileTime;
 HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->isRegularFile()Z
+HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->lastAccessTime()Ljava/nio/file/attribute/FileTime;
+HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->lastModifiedTime()Ljava/nio/file/attribute/FileTime;
 HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->wrap(Lsun/nio/fs/UnixFileAttributes;)Lsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;
 HSPLsun/nio/fs/UnixFileAttributes;-><init>()V
 HSPLsun/nio/fs/UnixFileAttributes;->asBasicFileAttributes()Ljava/nio/file/attribute/BasicFileAttributes;
+HSPLsun/nio/fs/UnixFileAttributes;->creationTime()Ljava/nio/file/attribute/FileTime;
 HSPLsun/nio/fs/UnixFileAttributes;->get(Lsun/nio/fs/UnixPath;Z)Lsun/nio/fs/UnixFileAttributes;
+HSPLsun/nio/fs/UnixFileAttributes;->isDirectory()Z
 HSPLsun/nio/fs/UnixFileAttributes;->isRegularFile()Z
+HSPLsun/nio/fs/UnixFileAttributes;->isSymbolicLink()Z
+HSPLsun/nio/fs/UnixFileAttributes;->lastAccessTime()Ljava/nio/file/attribute/FileTime;
+HSPLsun/nio/fs/UnixFileAttributes;->lastModifiedTime()Ljava/nio/file/attribute/FileTime;
+HSPLsun/nio/fs/UnixFileAttributes;->toFileTime(JJ)Ljava/nio/file/attribute/FileTime;
+HSPLsun/nio/fs/UnixFileModeAttribute;->toUnixMode(I[Ljava/nio/file/attribute/FileAttribute;)I
+PLsun/nio/fs/UnixFileSystem$3;-><init>(Lsun/nio/fs/UnixFileSystem;Ljava/util/regex/Pattern;)V
+PLsun/nio/fs/UnixFileSystem;->compilePathMatchPattern(Ljava/lang/String;)Ljava/util/regex/Pattern;
 HSPLsun/nio/fs/UnixFileSystem;->getPath(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
+HPLsun/nio/fs/UnixFileSystem;->getPathMatcher(Ljava/lang/String;)Ljava/nio/file/PathMatcher;
 HSPLsun/nio/fs/UnixFileSystem;->needToResolveAgainstDefaultDirectory()Z
 HSPLsun/nio/fs/UnixFileSystem;->normalizeJavaPath(Ljava/lang/String;)Ljava/lang/String;
 HSPLsun/nio/fs/UnixFileSystem;->normalizeNativePath([C)[C
 HSPLsun/nio/fs/UnixFileSystem;->provider()Ljava/nio/file/spi/FileSystemProvider;
+HSPLsun/nio/fs/UnixFileSystemProvider$3;-><clinit>()V
 HSPLsun/nio/fs/UnixFileSystemProvider;->checkAccess(Ljava/nio/file/Path;[Ljava/nio/file/AccessMode;)V
 HSPLsun/nio/fs/UnixFileSystemProvider;->checkPath(Ljava/nio/file/Path;)Lsun/nio/fs/UnixPath;
+HPLsun/nio/fs/UnixFileSystemProvider;->createLink(Ljava/nio/file/Path;Ljava/nio/file/Path;)V
 HSPLsun/nio/fs/UnixFileSystemProvider;->getFileAttributeView(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/FileAttributeView;
+HSPLsun/nio/fs/UnixFileSystemProvider;->implDelete(Ljava/nio/file/Path;Z)Z
 HSPLsun/nio/fs/UnixFileSystemProvider;->newByteChannel(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel;
+HSPLsun/nio/fs/UnixFileSystemProvider;->newDirectoryStream(Ljava/nio/file/Path;Ljava/nio/file/DirectoryStream$Filter;)Ljava/nio/file/DirectoryStream;
 HSPLsun/nio/fs/UnixFileSystemProvider;->newFileChannel(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/FileChannel;
 HSPLsun/nio/fs/UnixFileSystemProvider;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;
+HSPLsun/nio/fs/UnixNativeDispatcher;->access(Lsun/nio/fs/UnixPath;I)V
+HSPLsun/nio/fs/UnixNativeDispatcher;->birthtimeSupported()Z
+HSPLsun/nio/fs/UnixNativeDispatcher;->copyToNativeBuffer(Lsun/nio/fs/UnixPath;)Lsun/nio/fs/NativeBuffer;
+HSPLsun/nio/fs/UnixNativeDispatcher;->lstat(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixFileAttributes;)V
+HSPLsun/nio/fs/UnixNativeDispatcher;->open(Lsun/nio/fs/UnixPath;II)I
+HSPLsun/nio/fs/UnixNativeDispatcher;->openatSupported()Z
+HSPLsun/nio/fs/UnixNativeDispatcher;->stat(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixFileAttributes;)V
 HSPLsun/nio/fs/UnixPath;-><init>(Lsun/nio/fs/UnixFileSystem;Ljava/lang/String;)V
 HSPLsun/nio/fs/UnixPath;-><init>(Lsun/nio/fs/UnixFileSystem;[B)V
+HSPLsun/nio/fs/UnixPath;->asByteArray()[B
+HSPLsun/nio/fs/UnixPath;->checkDelete()V
 HSPLsun/nio/fs/UnixPath;->checkNotNul(Ljava/lang/String;C)V
 HSPLsun/nio/fs/UnixPath;->checkRead()V
+HSPLsun/nio/fs/UnixPath;->checkWrite()V
+HSPLsun/nio/fs/UnixPath;->compareTo(Ljava/nio/file/Path;)I
 HSPLsun/nio/fs/UnixPath;->encode(Lsun/nio/fs/UnixFileSystem;Ljava/lang/String;)[B
 HSPLsun/nio/fs/UnixPath;->getByteArrayForSysCalls()[B
+HSPLsun/nio/fs/UnixPath;->getFileName()Ljava/nio/file/Path;
+HSPLsun/nio/fs/UnixPath;->getFileName()Lsun/nio/fs/UnixPath;
 HSPLsun/nio/fs/UnixPath;->getFileSystem()Ljava/nio/file/FileSystem;
 HSPLsun/nio/fs/UnixPath;->getFileSystem()Lsun/nio/fs/UnixFileSystem;
+HSPLsun/nio/fs/UnixPath;->getNameCount()I
 HSPLsun/nio/fs/UnixPath;->getParent()Ljava/nio/file/Path;
 HSPLsun/nio/fs/UnixPath;->getParent()Lsun/nio/fs/UnixPath;
 HSPLsun/nio/fs/UnixPath;->getPathForExceptionMessage()Ljava/lang/String;
 HSPLsun/nio/fs/UnixPath;->initOffsets()V
 HSPLsun/nio/fs/UnixPath;->isEmpty()Z
+HSPLsun/nio/fs/UnixPath;->normalize(Ljava/lang/String;II)Ljava/lang/String;
 HSPLsun/nio/fs/UnixPath;->normalizeAndCheck(Ljava/lang/String;)Ljava/lang/String;
+HSPLsun/nio/fs/UnixPath;->resolve(Ljava/nio/file/Path;)Ljava/nio/file/Path;
 HSPLsun/nio/fs/UnixPath;->resolve(Ljava/nio/file/Path;)Lsun/nio/fs/UnixPath;
+HSPLsun/nio/fs/UnixPath;->resolve([B)Lsun/nio/fs/UnixPath;
 HSPLsun/nio/fs/UnixPath;->resolve([B[B)[B
+HSPLsun/nio/fs/UnixPath;->startsWith(Ljava/nio/file/Path;)Z
 HSPLsun/nio/fs/UnixPath;->toString()Ljava/lang/String;
 HSPLsun/nio/fs/UnixPath;->toUnixPath(Ljava/nio/file/Path;)Lsun/nio/fs/UnixPath;
+HSPLsun/nio/fs/UnixSecureDirectoryStream;-><init>(Lsun/nio/fs/UnixPath;JILjava/nio/file/DirectoryStream$Filter;)V
+HSPLsun/nio/fs/UnixSecureDirectoryStream;->close()V
+HSPLsun/nio/fs/UnixSecureDirectoryStream;->finalize()V
+HSPLsun/nio/fs/UnixSecureDirectoryStream;->iterator()Ljava/util/Iterator;
 HSPLsun/nio/fs/Util;->followLinks([Ljava/nio/file/LinkOption;)Z
 HSPLsun/nio/fs/Util;->jnuEncoding()Ljava/nio/charset/Charset;
 HSPLsun/nio/fs/Util;->toString([B)Ljava/lang/String;
@@ -22699,6 +44356,9 @@
 HSPLsun/reflect/Reflection;->isSameClassPackage(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;)Z
 HSPLsun/reflect/Reflection;->verifyMemberAccess(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)Z
 HSPLsun/reflect/misc/ReflectUtil;->ensureMemberAccess(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)V
+PLsun/security/action/GetBooleanAction;-><init>(Ljava/lang/String;)V
+PLsun/security/action/GetBooleanAction;->run()Ljava/lang/Boolean;
+PLsun/security/action/GetBooleanAction;->run()Ljava/lang/Object;
 HSPLsun/security/action/GetPropertyAction;-><init>(Ljava/lang/String;)V
 HSPLsun/security/action/GetPropertyAction;->run()Ljava/lang/Object;
 HSPLsun/security/action/GetPropertyAction;->run()Ljava/lang/String;
@@ -22715,6 +44375,7 @@
 HSPLsun/security/jca/GetInstance;->getService(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service;
 HSPLsun/security/jca/GetInstance;->getService(Ljava/lang/String;Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Provider$Service;
 HSPLsun/security/jca/GetInstance;->getServices(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+HSPLsun/security/jca/JCAUtil;->getSecureRandom()Ljava/security/SecureRandom;
 HSPLsun/security/jca/ProviderConfig;-><init>(Ljava/lang/String;)V
 HSPLsun/security/jca/ProviderConfig;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLsun/security/jca/ProviderConfig;-><init>(Ljava/security/Provider;)V
@@ -22748,6 +44409,11 @@
 HSPLsun/security/jca/ProviderList;->providers()Ljava/util/List;
 HSPLsun/security/jca/ProviderList;->removeInvalid()Lsun/security/jca/ProviderList;
 HSPLsun/security/jca/ProviderList;->toArray()[Ljava/security/Provider;
+HSPLsun/security/jca/Providers;->beginThreadProviderList(Lsun/security/jca/ProviderList;)Lsun/security/jca/ProviderList;
+HSPLsun/security/jca/Providers;->checkBouncyCastleDeprecation(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLsun/security/jca/Providers;->checkBouncyCastleDeprecation(Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;)V
+HSPLsun/security/jca/Providers;->endThreadProviderList(Lsun/security/jca/ProviderList;)V
+HSPLsun/security/jca/Providers;->getFullProviderList()Lsun/security/jca/ProviderList;
 HSPLsun/security/jca/Providers;->getProviderList()Lsun/security/jca/ProviderList;
 HSPLsun/security/jca/Providers;->getSystemProviderList()Lsun/security/jca/ProviderList;
 HSPLsun/security/jca/Providers;->getThreadProviderList()Lsun/security/jca/ProviderList;
@@ -22760,6 +44426,7 @@
 HSPLsun/security/pkcs/ContentInfo;->getContent()Lsun/security/util/DerValue;
 HSPLsun/security/pkcs/ContentInfo;->getData()[B
 HSPLsun/security/pkcs/PKCS7$VerbatimX509Certificate;-><init>(Ljava/security/cert/X509Certificate;[B)V
+HSPLsun/security/pkcs/PKCS7$VerbatimX509Certificate;->getEncoded()[B
 HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)V
 HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getIssuerDN()Ljava/security/Principal;
 HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getKeyUsage()[Z
@@ -22795,10 +44462,15 @@
 HSPLsun/security/provider/certpath/AdaptableX509CertSelector;->match(Ljava/security/cert/Certificate;)Z
 HSPLsun/security/provider/certpath/AdaptableX509CertSelector;->matchSubjectKeyID(Ljava/security/cert/X509Certificate;)Z
 HSPLsun/security/provider/certpath/AdaptableX509CertSelector;->setSkiAndSerialNumber(Lsun/security/x509/AuthorityKeyIdentifierExtension;)V
+PLsun/security/provider/certpath/AdaptableX509CertSelector;->setValidityPeriod(Ljava/util/Date;Ljava/util/Date;)V
+PLsun/security/provider/certpath/AdjacencyList;-><init>(Ljava/util/List;)V
 HSPLsun/security/provider/certpath/AlgorithmChecker;-><init>(Ljava/security/cert/TrustAnchor;)V
 HSPLsun/security/provider/certpath/AlgorithmChecker;-><init>(Ljava/security/cert/TrustAnchor;Ljava/security/AlgorithmConstraints;)V
 HSPLsun/security/provider/certpath/AlgorithmChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
+HSPLsun/security/provider/certpath/AlgorithmChecker;->checkFingerprint(Ljava/security/cert/X509Certificate;)Z
 HSPLsun/security/provider/certpath/AlgorithmChecker;->init(Z)V
+PLsun/security/provider/certpath/AlgorithmChecker;->isForwardCheckingSupported()Z
+PLsun/security/provider/certpath/AlgorithmChecker;->trySetTrustAnchor(Ljava/security/cert/TrustAnchor;)V
 HSPLsun/security/provider/certpath/BasicChecker;-><init>(Ljava/security/cert/TrustAnchor;Ljava/util/Date;Ljava/lang/String;Z)V
 HSPLsun/security/provider/certpath/BasicChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
 HSPLsun/security/provider/certpath/BasicChecker;->getPublicKey()Ljava/security/PublicKey;
@@ -22807,16 +44479,47 @@
 HSPLsun/security/provider/certpath/BasicChecker;->verifyNameChaining(Ljava/security/cert/X509Certificate;)V
 HSPLsun/security/provider/certpath/BasicChecker;->verifySignature(Ljava/security/cert/X509Certificate;)V
 HSPLsun/security/provider/certpath/BasicChecker;->verifyTimestamp(Ljava/security/cert/X509Certificate;)V
+PLsun/security/provider/certpath/Builder;-><clinit>()V
+PLsun/security/provider/certpath/Builder;-><init>(Lsun/security/provider/certpath/PKIX$BuilderParams;)V
+HPLsun/security/provider/certpath/Builder;->addMatchingCerts(Ljava/security/cert/X509CertSelector;Ljava/util/Collection;Ljava/util/Collection;Z)Z
+PLsun/security/provider/certpath/CertPathHelper;->setPathToNames(Ljava/security/cert/X509CertSelector;Ljava/util/Set;)V
 HSPLsun/security/provider/certpath/ConstraintsChecker;-><init>(I)V
 HSPLsun/security/provider/certpath/ConstraintsChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
 HSPLsun/security/provider/certpath/ConstraintsChecker;->checkBasicConstraints(Ljava/security/cert/X509Certificate;)V
 HSPLsun/security/provider/certpath/ConstraintsChecker;->init(Z)V
 HSPLsun/security/provider/certpath/ConstraintsChecker;->mergeNameConstraints(Ljava/security/cert/X509Certificate;Lsun/security/x509/NameConstraintsExtension;)Lsun/security/x509/NameConstraintsExtension;
 HSPLsun/security/provider/certpath/ConstraintsChecker;->verifyNameConstraints(Ljava/security/cert/X509Certificate;)V
+PLsun/security/provider/certpath/ForwardBuilder$PKIXCertComparator;-><init>(Ljava/util/Set;Lsun/security/x509/X509CertImpl;)V
+HPLsun/security/provider/certpath/ForwardBuilder$PKIXCertComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HPLsun/security/provider/certpath/ForwardBuilder$PKIXCertComparator;->compare(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)I
+PLsun/security/provider/certpath/ForwardBuilder$PKIXCertComparator;->getSelector(Lsun/security/x509/X509CertImpl;)Ljava/security/cert/X509CertSelector;
+PLsun/security/provider/certpath/ForwardBuilder;-><clinit>()V
+HPLsun/security/provider/certpath/ForwardBuilder;-><init>(Lsun/security/provider/certpath/PKIX$BuilderParams;Z)V
+PLsun/security/provider/certpath/ForwardBuilder;->access$000()Lsun/security/util/Debug;
+PLsun/security/provider/certpath/ForwardBuilder;->addCertToPath(Ljava/security/cert/X509Certificate;Ljava/util/LinkedList;)V
+HPLsun/security/provider/certpath/ForwardBuilder;->getMatchingCACerts(Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
+HPLsun/security/provider/certpath/ForwardBuilder;->getMatchingCerts(Lsun/security/provider/certpath/State;Ljava/util/List;)Ljava/util/Collection;
+PLsun/security/provider/certpath/ForwardBuilder;->getMatchingEECerts(Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
+HPLsun/security/provider/certpath/ForwardBuilder;->isPathCompleted(Ljava/security/cert/X509Certificate;)Z
+PLsun/security/provider/certpath/ForwardState;-><clinit>()V
+PLsun/security/provider/certpath/ForwardState;-><init>()V
+HPLsun/security/provider/certpath/ForwardState;->clone()Ljava/lang/Object;
+PLsun/security/provider/certpath/ForwardState;->initState(Ljava/util/List;)V
+PLsun/security/provider/certpath/ForwardState;->isInitial()Z
+PLsun/security/provider/certpath/ForwardState;->keyParamsNeeded()Z
+HPLsun/security/provider/certpath/ForwardState;->updateState(Ljava/security/cert/X509Certificate;)V
 HSPLsun/security/provider/certpath/KeyChecker;-><init>(ILjava/security/cert/CertSelector;)V
 HSPLsun/security/provider/certpath/KeyChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
 HSPLsun/security/provider/certpath/KeyChecker;->init(Z)V
 HSPLsun/security/provider/certpath/KeyChecker;->verifyCAKeyUsage(Ljava/security/cert/X509Certificate;)V
+PLsun/security/provider/certpath/PKIX$BuilderParams;-><init>(Ljava/security/cert/PKIXBuilderParameters;)V
+HPLsun/security/provider/certpath/PKIX$BuilderParams;->certStores()Ljava/util/List;
+PLsun/security/provider/certpath/PKIX$BuilderParams;->checkParams(Ljava/security/cert/PKIXBuilderParameters;)V
+PLsun/security/provider/certpath/PKIX$BuilderParams;->getTargetSubject(Ljava/util/List;Ljava/security/cert/X509CertSelector;)Ljavax/security/auth/x500/X500Principal;
+PLsun/security/provider/certpath/PKIX$BuilderParams;->maxPathLength()I
+PLsun/security/provider/certpath/PKIX$BuilderParams;->targetSubject()Ljavax/security/auth/x500/X500Principal;
+PLsun/security/provider/certpath/PKIX$CertStoreComparator;-><init>()V
+PLsun/security/provider/certpath/PKIX$CertStoreComparator;-><init>(Lsun/security/provider/certpath/PKIX$1;)V
 HSPLsun/security/provider/certpath/PKIX$ValidatorParams;-><init>(Ljava/security/cert/CertPath;Ljava/security/cert/PKIXParameters;)V
 HSPLsun/security/provider/certpath/PKIX$ValidatorParams;-><init>(Ljava/security/cert/PKIXParameters;)V
 HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->anyPolicyInhibited()Z
@@ -22829,9 +44532,11 @@
 HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->policyMappingInhibited()Z
 HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->policyQualifiersRejected()Z
 HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->revocationEnabled()Z
+PLsun/security/provider/certpath/PKIX$ValidatorParams;->setCertPath(Ljava/security/cert/CertPath;)V
 HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->sigProvider()Ljava/lang/String;
 HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->targetCertConstraints()Ljava/security/cert/CertSelector;
 HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->trustAnchors()Ljava/util/Set;
+PLsun/security/provider/certpath/PKIX;->checkBuilderParams(Ljava/security/cert/CertPathParameters;)Lsun/security/provider/certpath/PKIX$BuilderParams;
 HSPLsun/security/provider/certpath/PKIX;->checkParams(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Lsun/security/provider/certpath/PKIX$ValidatorParams;
 HSPLsun/security/provider/certpath/PKIX;->isDSAPublicKeyWithoutParams(Ljava/security/PublicKey;)Z
 HSPLsun/security/provider/certpath/PKIXCertPathValidator;-><init>()V
@@ -22844,6 +44549,7 @@
 HSPLsun/security/provider/certpath/PolicyChecker;->checkPolicy(Ljava/security/cert/X509Certificate;)V
 HSPLsun/security/provider/certpath/PolicyChecker;->getPolicyTree()Ljava/security/cert/PolicyNode;
 HSPLsun/security/provider/certpath/PolicyChecker;->init(Z)V
+PLsun/security/provider/certpath/PolicyChecker;->isForwardCheckingSupported()Z
 HSPLsun/security/provider/certpath/PolicyChecker;->mergeExplicitPolicy(ILsun/security/x509/X509CertImpl;Z)I
 HSPLsun/security/provider/certpath/PolicyChecker;->mergeInhibitAnyPolicy(ILsun/security/x509/X509CertImpl;)I
 HSPLsun/security/provider/certpath/PolicyChecker;->mergePolicyMapping(ILsun/security/x509/X509CertImpl;)I
@@ -22865,8 +44571,24 @@
 HSPLsun/security/provider/certpath/PolicyNodeImpl;->getValidPolicy()Ljava/lang/String;
 HSPLsun/security/provider/certpath/PolicyNodeImpl;->prune(I)V
 HSPLsun/security/provider/certpath/PolicyNodeImpl;->setImmutable()V
+PLsun/security/provider/certpath/SunCertPathBuilder;-><clinit>()V
+PLsun/security/provider/certpath/SunCertPathBuilder;-><init>()V
+PLsun/security/provider/certpath/SunCertPathBuilder;->build()Ljava/security/cert/PKIXCertPathBuilderResult;
+PLsun/security/provider/certpath/SunCertPathBuilder;->buildCertPath(ZLjava/util/List;)Ljava/security/cert/PKIXCertPathBuilderResult;
+PLsun/security/provider/certpath/SunCertPathBuilder;->buildForward(Ljava/util/List;Ljava/util/LinkedList;Z)V
+PLsun/security/provider/certpath/SunCertPathBuilder;->engineBuild(Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathBuilderResult;
+PLsun/security/provider/certpath/SunCertPathBuilderResult;-><clinit>()V
+PLsun/security/provider/certpath/SunCertPathBuilderResult;-><init>(Ljava/security/cert/CertPath;Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;Lsun/security/provider/certpath/AdjacencyList;)V
+PLsun/security/provider/certpath/Vertex;-><clinit>()V
+HPLsun/security/provider/certpath/Vertex;->getCertificate()Ljava/security/cert/X509Certificate;
+HPLsun/security/provider/certpath/Vertex;->getIndex()I
+HPLsun/security/provider/certpath/Vertex;->getThrowable()Ljava/lang/Throwable;
+PLsun/security/provider/certpath/Vertex;->setIndex(I)V
 HSPLsun/security/util/AbstractAlgorithmConstraints;->checkAlgorithm([Ljava/lang/String;Ljava/lang/String;Lsun/security/util/AlgorithmDecomposer;)Z
 HSPLsun/security/util/AlgorithmDecomposer;->decompose(Ljava/lang/String;)Ljava/util/Set;
+HSPLsun/security/util/AlgorithmDecomposer;->decomposeImpl(Ljava/lang/String;)Ljava/util/Set;
+HSPLsun/security/util/AlgorithmDecomposer;->decomposeOneHash(Ljava/lang/String;)Ljava/util/Set;
+HSPLsun/security/util/AlgorithmDecomposer;->hasLoop(Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)V
 HSPLsun/security/util/BitArray;-><init>(I[B)V
 HSPLsun/security/util/BitArray;->get(I)Z
 HSPLsun/security/util/BitArray;->length()I
@@ -22879,6 +44601,9 @@
 HSPLsun/security/util/Cache$EqualByteArray;->hashCode()I
 HSPLsun/security/util/CertConstraintParameters;-><init>(Ljava/security/cert/X509Certificate;Z)V
 HSPLsun/security/util/CertConstraintParameters;->getCertificate()Ljava/security/cert/X509Certificate;
+HSPLsun/security/util/Debug;->getInstance(Ljava/lang/String;)Lsun/security/util/Debug;
+HSPLsun/security/util/Debug;->getInstance(Ljava/lang/String;Ljava/lang/String;)Lsun/security/util/Debug;
+HSPLsun/security/util/Debug;->isOn(Ljava/lang/String;)Z
 HSPLsun/security/util/DerIndefLenConverter;->isIndefinite(I)Z
 HSPLsun/security/util/DerIndefLenConverter;->isLongForm(I)Z
 HSPLsun/security/util/DerInputBuffer;-><init>([B)V
@@ -23067,6 +44792,9 @@
 HSPLsun/security/x509/CertificateSerialNumber;-><init>(Lsun/security/util/DerValue;)V
 HSPLsun/security/x509/CertificateValidity;-><init>(Lsun/security/util/DerInputStream;)V
 HSPLsun/security/x509/CertificateValidity;->construct(Lsun/security/util/DerValue;)V
+HPLsun/security/x509/CertificateValidity;->get(Ljava/lang/String;)Ljava/util/Date;
+PLsun/security/x509/CertificateValidity;->getNotAfter()Ljava/util/Date;
+PLsun/security/x509/CertificateValidity;->getNotBefore()Ljava/util/Date;
 HSPLsun/security/x509/CertificateVersion;-><init>()V
 HSPLsun/security/x509/CertificateVersion;-><init>(Lsun/security/util/DerValue;)V
 HSPLsun/security/x509/CertificateVersion;->compare(I)I
@@ -23144,19 +44872,26 @@
 HSPLsun/security/x509/X509CertImpl;->getExtension(Lsun/security/util/ObjectIdentifier;)Lsun/security/x509/Extension;
 HSPLsun/security/x509/X509CertImpl;->getIssuerX500Principal()Ljavax/security/auth/x500/X500Principal;
 HSPLsun/security/x509/X509CertImpl;->getNameConstraintsExtension()Lsun/security/x509/NameConstraintsExtension;
+PLsun/security/x509/X509CertImpl;->getNotAfter()Ljava/util/Date;
+PLsun/security/x509/X509CertImpl;->getNotBefore()Ljava/util/Date;
 HSPLsun/security/x509/X509CertImpl;->getPolicyConstraintsExtension()Lsun/security/x509/PolicyConstraintsExtension;
 HSPLsun/security/x509/X509CertImpl;->getPolicyMappingsExtension()Lsun/security/x509/PolicyMappingsExtension;
 HSPLsun/security/x509/X509CertImpl;->getPublicKey()Ljava/security/PublicKey;
 HSPLsun/security/x509/X509CertImpl;->getSigAlgName()Ljava/lang/String;
+PLsun/security/x509/X509CertImpl;->getSubjectAlternativeNameExtension()Lsun/security/x509/SubjectAlternativeNameExtension;
 HSPLsun/security/x509/X509CertImpl;->getSubjectX500Principal()Ljavax/security/auth/x500/X500Principal;
 HSPLsun/security/x509/X509CertImpl;->isSelfIssued(Ljava/security/cert/X509Certificate;)Z
+PLsun/security/x509/X509CertImpl;->isSelfSigned(Ljava/security/cert/X509Certificate;Ljava/lang/String;)Z
 HSPLsun/security/x509/X509CertImpl;->parse(Lsun/security/util/DerValue;)V
 HSPLsun/security/x509/X509CertImpl;->parse(Lsun/security/util/DerValue;[B)V
 HSPLsun/security/x509/X509CertImpl;->toImpl(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl;
+HSPLsun/security/x509/X509CertImpl;->verify(Ljava/security/PublicKey;)V
+HSPLsun/security/x509/X509CertImpl;->verify(Ljava/security/PublicKey;Ljava/lang/String;)V
 HSPLsun/security/x509/X509CertInfo;-><init>(Lsun/security/util/DerValue;)V
 HSPLsun/security/x509/X509CertInfo;-><init>([B)V
 HSPLsun/security/x509/X509CertInfo;->attributeMap(Ljava/lang/String;)I
 HSPLsun/security/x509/X509CertInfo;->get(Ljava/lang/String;)Ljava/lang/Object;
+HSPLsun/security/x509/X509CertInfo;->getEncodedInfo()[B
 HSPLsun/security/x509/X509CertInfo;->getX500Name(Ljava/lang/String;Z)Ljava/lang/Object;
 HSPLsun/security/x509/X509CertInfo;->parse(Lsun/security/util/DerValue;)V
 HSPLsun/security/x509/X509CertInfo;->verifyCert(Lsun/security/x509/X500Name;Lsun/security/x509/CertificateExtensions;)V
@@ -23251,13 +44986,20 @@
 HSPLsun/util/locale/BaseLocale;->getScript()Ljava/lang/String;
 HSPLsun/util/locale/BaseLocale;->getVariant()Ljava/lang/String;
 HSPLsun/util/locale/BaseLocale;->hashCode()I
+HSPLsun/util/locale/Extension;-><init>(CLjava/lang/String;)V
+HSPLsun/util/locale/Extension;->setValue(Ljava/lang/String;)V
 HSPLsun/util/locale/InternalLocaleBuilder;-><init>()V
+HSPLsun/util/locale/InternalLocaleBuilder;->checkVariants(Ljava/lang/String;Ljava/lang/String;)I
 HSPLsun/util/locale/InternalLocaleBuilder;->clear()Lsun/util/locale/InternalLocaleBuilder;
 HSPLsun/util/locale/InternalLocaleBuilder;->clearExtensions()Lsun/util/locale/InternalLocaleBuilder;
 HSPLsun/util/locale/InternalLocaleBuilder;->getBaseLocale()Lsun/util/locale/BaseLocale;
 HSPLsun/util/locale/InternalLocaleBuilder;->getLocaleExtensions()Lsun/util/locale/LocaleExtensions;
 HSPLsun/util/locale/InternalLocaleBuilder;->setExtensions(Ljava/util/List;Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;
+HSPLsun/util/locale/InternalLocaleBuilder;->setLanguage(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;
 HSPLsun/util/locale/InternalLocaleBuilder;->setLanguageTag(Lsun/util/locale/LanguageTag;)Lsun/util/locale/InternalLocaleBuilder;
+HSPLsun/util/locale/InternalLocaleBuilder;->setRegion(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;
+HSPLsun/util/locale/InternalLocaleBuilder;->setScript(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;
+HSPLsun/util/locale/InternalLocaleBuilder;->setVariant(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;
 HSPLsun/util/locale/LanguageTag;-><init>()V
 HSPLsun/util/locale/LanguageTag;->canonicalizeLanguage(Ljava/lang/String;)Ljava/lang/String;
 HSPLsun/util/locale/LanguageTag;->canonicalizeRegion(Ljava/lang/String;)Ljava/lang/String;
@@ -23271,8 +45013,10 @@
 HSPLsun/util/locale/LanguageTag;->getVariants()Ljava/util/List;
 HSPLsun/util/locale/LanguageTag;->isExtlang(Ljava/lang/String;)Z
 HSPLsun/util/locale/LanguageTag;->isLanguage(Ljava/lang/String;)Z
+HSPLsun/util/locale/LanguageTag;->isPrivateusePrefix(Ljava/lang/String;)Z
 HSPLsun/util/locale/LanguageTag;->isRegion(Ljava/lang/String;)Z
 HSPLsun/util/locale/LanguageTag;->isScript(Ljava/lang/String;)Z
+HSPLsun/util/locale/LanguageTag;->isVariant(Ljava/lang/String;)Z
 HSPLsun/util/locale/LanguageTag;->parse(Ljava/lang/String;Lsun/util/locale/ParseStatus;)Lsun/util/locale/LanguageTag;
 HSPLsun/util/locale/LanguageTag;->parseExtensions(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
 HSPLsun/util/locale/LanguageTag;->parseExtlangs(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
@@ -23282,14 +45026,21 @@
 HSPLsun/util/locale/LanguageTag;->parseRegion(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
 HSPLsun/util/locale/LanguageTag;->parseScript(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
 HSPLsun/util/locale/LanguageTag;->parseVariants(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
+HSPLsun/util/locale/LocaleExtensions;-><clinit>()V
+HSPLsun/util/locale/LocaleExtensions;-><init>(Ljava/lang/String;Ljava/lang/Character;Lsun/util/locale/Extension;)V
 HSPLsun/util/locale/LocaleObjectCache$CacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
 HSPLsun/util/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object;
+HSPLsun/util/locale/LocaleObjectCache;-><init>()V
+HSPLsun/util/locale/LocaleObjectCache;-><init>(IFI)V
 HSPLsun/util/locale/LocaleObjectCache;->cleanStaleEntries()V
 HSPLsun/util/locale/LocaleObjectCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLsun/util/locale/LocaleObjectCache;->normalizeKey(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLsun/util/locale/LocaleUtils;->caseIgnoreMatch(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLsun/util/locale/LocaleUtils;->isAlpha(C)Z
+HSPLsun/util/locale/LocaleUtils;->isAlphaNumeric(C)Z
+HSPLsun/util/locale/LocaleUtils;->isAlphaNumericString(Ljava/lang/String;)Z
 HSPLsun/util/locale/LocaleUtils;->isAlphaString(Ljava/lang/String;)Z
+HSPLsun/util/locale/LocaleUtils;->isEmpty(Ljava/lang/String;)Z
 HSPLsun/util/locale/LocaleUtils;->isEmpty(Ljava/util/List;)Z
 HSPLsun/util/locale/LocaleUtils;->isEmpty(Ljava/util/Map;)Z
 HSPLsun/util/locale/LocaleUtils;->isEmpty(Ljava/util/Set;)Z
@@ -23304,11 +45055,29 @@
 HSPLsun/util/locale/StringTokenIterator;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLsun/util/locale/StringTokenIterator;->current()Ljava/lang/String;
 HSPLsun/util/locale/StringTokenIterator;->currentEnd()I
+HSPLsun/util/locale/StringTokenIterator;->currentStart()I
 HSPLsun/util/locale/StringTokenIterator;->hasNext()Z
 HSPLsun/util/locale/StringTokenIterator;->isDone()Z
 HSPLsun/util/locale/StringTokenIterator;->next()Ljava/lang/String;
 HSPLsun/util/locale/StringTokenIterator;->nextDelimiter(I)I
 HSPLsun/util/locale/StringTokenIterator;->setStart(I)Lsun/util/locale/StringTokenIterator;
+HSPLsun/util/locale/UnicodeLocaleExtension;-><clinit>()V
+HSPLsun/util/locale/UnicodeLocaleExtension;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLsun/util/logging/LoggingSupport$2;-><init>()V
+HSPLsun/util/logging/LoggingSupport$2;->run()Ljava/lang/Object;
+HSPLsun/util/logging/LoggingSupport$2;->run()Ljava/lang/String;
+HSPLsun/util/logging/LoggingSupport;->ensureAvailable()V
+HSPLsun/util/logging/LoggingSupport;->getLogger(Ljava/lang/String;)Ljava/lang/Object;
+HSPLsun/util/logging/LoggingSupport;->getSimpleFormat()Ljava/lang/String;
+HSPLsun/util/logging/LoggingSupport;->getSimpleFormat(Z)Ljava/lang/String;
+HSPLsun/util/logging/LoggingSupport;->parseLevel(Ljava/lang/String;)Ljava/lang/Object;
+HSPLsun/util/logging/PlatformLogger$JavaLoggerProxy;-><clinit>()V
+HSPLsun/util/logging/PlatformLogger$JavaLoggerProxy;-><init>(Ljava/lang/String;)V
+HSPLsun/util/logging/PlatformLogger$JavaLoggerProxy;-><init>(Ljava/lang/String;Lsun/util/logging/PlatformLogger$Level;)V
+HSPLsun/util/logging/PlatformLogger$Level;->values()[Lsun/util/logging/PlatformLogger$Level;
+HSPLsun/util/logging/PlatformLogger$LoggerProxy;-><init>(Ljava/lang/String;)V
+HSPLsun/util/logging/PlatformLogger;-><init>(Ljava/lang/String;)V
+HSPLsun/util/logging/PlatformLogger;->getLogger(Ljava/lang/String;)Lsun/util/logging/PlatformLogger;
 Landroid/R$styleable;
 Landroid/accessibilityservice/AccessibilityServiceInfo$1;
 Landroid/accessibilityservice/AccessibilityServiceInfo;
@@ -23434,6 +45203,7 @@
 Landroid/animation/TypeEvaluator;
 Landroid/animation/ValueAnimator$AnimatorUpdateListener;
 Landroid/animation/ValueAnimator;
+Landroid/annotation/ColorInt;
 Landroid/annotation/IntRange;
 Landroid/annotation/NonNull;
 Landroid/annotation/SystemApi;
@@ -23550,6 +45320,8 @@
 Landroid/app/AppOpsManager$1;
 Landroid/app/AppOpsManager$2;
 Landroid/app/AppOpsManager$3;
+Landroid/app/AppOpsManager$AppOpsCollector$1;
+Landroid/app/AppOpsManager$AppOpsCollector;
 Landroid/app/AppOpsManager$HistoricalFeatureOps;
 Landroid/app/AppOpsManager$HistoricalOp$1;
 Landroid/app/AppOpsManager$HistoricalOp;
@@ -23887,6 +45659,7 @@
 Landroid/app/SystemServiceRegistry$119;
 Landroid/app/SystemServiceRegistry$11;
 Landroid/app/SystemServiceRegistry$120;
+Landroid/app/SystemServiceRegistry$121;
 Landroid/app/SystemServiceRegistry$12;
 Landroid/app/SystemServiceRegistry$13;
 Landroid/app/SystemServiceRegistry$14;
@@ -24671,6 +46444,7 @@
 Landroid/content/om/OverlayManager;
 Landroid/content/om/OverlayableInfo;
 Landroid/content/pm/-$$Lambda$B12dZLpdwpXn89QSesmkaZjD72Q;
+Landroid/content/pm/-$$Lambda$IPackageManager$Stub$ZVp6oEh-Gn_bn8lM7TgSgpaGriw;
 Landroid/content/pm/-$$Lambda$PackageParser$0DZRgzfgaIMpCOhJqjw6PUiU5vw;
 Landroid/content/pm/-$$Lambda$PackageParser$0aobsT7Zf7WVZCqMZ5z2clAuQf4;
 Landroid/content/pm/-$$Lambda$PackageParser$M-9fHqS_eEp1oYkuKJhRHOGUxf8;
@@ -24836,6 +46610,9 @@
 Landroid/content/pm/PackageParser;
 Landroid/content/pm/PackageParserCacheHelper$ReadHelper;
 Landroid/content/pm/PackageParserCacheHelper$WriteHelper;
+Landroid/content/pm/PackagePartitions$DeferredCanonicalFile;
+Landroid/content/pm/PackagePartitions$SystemPartition;
+Landroid/content/pm/PackagePartitions;
 Landroid/content/pm/PackageStats$1;
 Landroid/content/pm/PackageStats;
 Landroid/content/pm/PackageUserState;
@@ -25276,6 +47053,10 @@
 Landroid/graphics/Typeface;
 Landroid/graphics/Xfermode;
 Landroid/graphics/YuvImage;
+Landroid/graphics/animation/NativeInterpolator;
+Landroid/graphics/animation/NativeInterpolatorFactory;
+Landroid/graphics/animation/RenderNodeAnimator$ViewListener;
+Landroid/graphics/animation/RenderNodeAnimator;
 Landroid/graphics/drawable/-$$Lambda$AnimatedVectorDrawable$VectorDrawableAnimatorRT$PzjgSeyQweoFjbEZJP80UteZqm8;
 Landroid/graphics/drawable/-$$Lambda$BitmapDrawable$LMqt8JvxZ4giSOIRAtlCKDg39Jw;
 Landroid/graphics/drawable/-$$Lambda$Drawable$bbJz2VgQAwkXlE27mR8nPMYacEw;
@@ -25648,6 +47429,10 @@
 Landroid/hardware/display/ColorDisplayManager;
 Landroid/hardware/display/Curve$1;
 Landroid/hardware/display/Curve;
+Landroid/hardware/display/DeviceProductInfo$1;
+Landroid/hardware/display/DeviceProductInfo$ManufactureDate$1;
+Landroid/hardware/display/DeviceProductInfo$ManufactureDate;
+Landroid/hardware/display/DeviceProductInfo;
 Landroid/hardware/display/DisplayManager$DisplayListener;
 Landroid/hardware/display/DisplayManager;
 Landroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;
@@ -26165,9 +47950,11 @@
 Landroid/icu/impl/ICUService$Key;
 Landroid/icu/impl/ICUService;
 Landroid/icu/impl/IDNA2003;
+Landroid/icu/impl/IllegalIcuArgumentException;
 Landroid/icu/impl/JavaTimeZone;
 Landroid/icu/impl/LocaleIDParser;
 Landroid/icu/impl/LocaleIDs;
+Landroid/icu/impl/LocaleUtility;
 Landroid/icu/impl/Norm2AllModes$1;
 Landroid/icu/impl/Norm2AllModes$ComposeNormalizer2;
 Landroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;
@@ -26202,6 +47989,7 @@
 Landroid/icu/impl/StaticUnicodeSets$ParseDataSink;
 Landroid/icu/impl/StaticUnicodeSets;
 Landroid/icu/impl/StringPrepDataReader;
+Landroid/icu/impl/StringRange;
 Landroid/icu/impl/StringSegment;
 Landroid/icu/impl/TextTrieMap$Node;
 Landroid/icu/impl/TextTrieMap;
@@ -26233,6 +48021,7 @@
 Landroid/icu/impl/UCaseProps$IsAcceptable;
 Landroid/icu/impl/UCaseProps$LatinCase;
 Landroid/icu/impl/UCaseProps;
+Landroid/icu/impl/UCharacterName;
 Landroid/icu/impl/UCharacterProperty$10;
 Landroid/icu/impl/UCharacterProperty$11;
 Landroid/icu/impl/UCharacterProperty$12;
@@ -26361,6 +48150,7 @@
 Landroid/icu/impl/number/parse/SeriesMatcher;
 Landroid/icu/impl/number/parse/SymbolMatcher;
 Landroid/icu/impl/number/parse/ValidationMatcher;
+Landroid/icu/lang/CharSequences;
 Landroid/icu/lang/CharacterProperties;
 Landroid/icu/lang/UCharacter;
 Landroid/icu/lang/UCharacterEnums$ECharacterCategory;
@@ -26399,6 +48189,7 @@
 Landroid/icu/text/AlphabeticIndex$Bucket;
 Landroid/icu/text/AlphabeticIndex$BucketList;
 Landroid/icu/text/AlphabeticIndex$ImmutableIndex;
+Landroid/icu/text/AnyTransliterator;
 Landroid/icu/text/Bidi$ImpTabPair;
 Landroid/icu/text/Bidi;
 Landroid/icu/text/BidiClassifier;
@@ -26409,6 +48200,9 @@
 Landroid/icu/text/BreakIteratorFactory$BFService$1RBBreakIteratorFactory;
 Landroid/icu/text/BreakIteratorFactory$BFService;
 Landroid/icu/text/BreakIteratorFactory;
+Landroid/icu/text/BreakTransliterator;
+Landroid/icu/text/CaseFoldTransliterator$1;
+Landroid/icu/text/CaseFoldTransliterator;
 Landroid/icu/text/CaseMap$Title;
 Landroid/icu/text/CaseMap$Upper;
 Landroid/icu/text/CaseMap;
@@ -26463,11 +48257,31 @@
 Landroid/icu/text/DisplayContext;
 Landroid/icu/text/Edits$Iterator;
 Landroid/icu/text/Edits;
+Landroid/icu/text/EscapeTransliterator$1;
+Landroid/icu/text/EscapeTransliterator$2;
+Landroid/icu/text/EscapeTransliterator$3;
+Landroid/icu/text/EscapeTransliterator$4;
+Landroid/icu/text/EscapeTransliterator$5;
+Landroid/icu/text/EscapeTransliterator$6;
+Landroid/icu/text/EscapeTransliterator$7;
+Landroid/icu/text/EscapeTransliterator$8;
+Landroid/icu/text/EscapeTransliterator;
 Landroid/icu/text/FormattedValue;
 Landroid/icu/text/IDNA;
 Landroid/icu/text/LanguageBreakEngine;
+Landroid/icu/text/LowercaseTransliterator$1;
+Landroid/icu/text/LowercaseTransliterator;
 Landroid/icu/text/MeasureFormat$FormatWidth;
 Landroid/icu/text/MeasureFormat;
+Landroid/icu/text/NameUnicodeTransliterator$1;
+Landroid/icu/text/NameUnicodeTransliterator;
+Landroid/icu/text/NormalizationTransliterator$1;
+Landroid/icu/text/NormalizationTransliterator$2;
+Landroid/icu/text/NormalizationTransliterator$3;
+Landroid/icu/text/NormalizationTransliterator$4;
+Landroid/icu/text/NormalizationTransliterator$5;
+Landroid/icu/text/NormalizationTransliterator$6;
+Landroid/icu/text/NormalizationTransliterator;
 Landroid/icu/text/Normalizer$FCDMode;
 Landroid/icu/text/Normalizer$Mode;
 Landroid/icu/text/Normalizer$ModeImpl;
@@ -26480,6 +48294,7 @@
 Landroid/icu/text/Normalizer$QuickCheckResult;
 Landroid/icu/text/Normalizer2;
 Landroid/icu/text/Normalizer;
+Landroid/icu/text/NullTransliterator;
 Landroid/icu/text/NumberFormat$Field;
 Landroid/icu/text/NumberFormat$NumberFormatShim;
 Landroid/icu/text/NumberFormat;
@@ -26513,6 +48328,8 @@
 Landroid/icu/text/RelativeDateTimeFormatter$Cache;
 Landroid/icu/text/RelativeDateTimeFormatter$Loader;
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;
+Landroid/icu/text/RemoveTransliterator$1;
+Landroid/icu/text/RemoveTransliterator;
 Landroid/icu/text/Replaceable;
 Landroid/icu/text/ReplaceableString;
 Landroid/icu/text/RuleBasedBreakIterator$BreakCache;
@@ -26524,32 +48341,62 @@
 Landroid/icu/text/RuleBasedCollator$NFDIterator;
 Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;
 Landroid/icu/text/RuleBasedCollator;
+Landroid/icu/text/RuleBasedTransliterator$Data;
 Landroid/icu/text/SimpleDateFormat$PatternItem;
 Landroid/icu/text/SimpleDateFormat;
 Landroid/icu/text/StringPrep;
 Landroid/icu/text/StringPrepParseException;
 Landroid/icu/text/StringTransform;
+Landroid/icu/text/SymbolTable;
 Landroid/icu/text/TimeZoneNames$Cache;
 Landroid/icu/text/TimeZoneNames$Factory;
 Landroid/icu/text/TimeZoneNames$NameType;
 Landroid/icu/text/TimeZoneNames;
+Landroid/icu/text/TitlecaseTransliterator$1;
+Landroid/icu/text/TitlecaseTransliterator;
 Landroid/icu/text/Transform;
+Landroid/icu/text/Transliterator$Factory;
+Landroid/icu/text/Transliterator$Position;
 Landroid/icu/text/Transliterator;
+Landroid/icu/text/TransliteratorIDParser$SingleID;
+Landroid/icu/text/TransliteratorIDParser$Specs;
+Landroid/icu/text/TransliteratorIDParser;
+Landroid/icu/text/TransliteratorRegistry$AliasEntry;
+Landroid/icu/text/TransliteratorRegistry$IDEnumeration;
+Landroid/icu/text/TransliteratorRegistry$ResourceEntry;
+Landroid/icu/text/TransliteratorRegistry$Spec;
+Landroid/icu/text/TransliteratorRegistry;
 Landroid/icu/text/UCharacterIterator;
 Landroid/icu/text/UFieldPosition;
 Landroid/icu/text/UFormat;
 Landroid/icu/text/UForwardCharacterIterator;
 Landroid/icu/text/UTF16$StringComparator;
 Landroid/icu/text/UTF16;
+Landroid/icu/text/UnescapeTransliterator$1;
+Landroid/icu/text/UnescapeTransliterator$2;
+Landroid/icu/text/UnescapeTransliterator$3;
+Landroid/icu/text/UnescapeTransliterator$4;
+Landroid/icu/text/UnescapeTransliterator$5;
+Landroid/icu/text/UnescapeTransliterator$6;
+Landroid/icu/text/UnescapeTransliterator$7;
+Landroid/icu/text/UnescapeTransliterator;
 Landroid/icu/text/UnhandledBreakEngine;
 Landroid/icu/text/UnicodeFilter;
 Landroid/icu/text/UnicodeMatcher;
+Landroid/icu/text/UnicodeNameTransliterator$1;
+Landroid/icu/text/UnicodeNameTransliterator;
 Landroid/icu/text/UnicodeSet$Filter;
 Landroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;
 Landroid/icu/text/UnicodeSet$IntPropertyFilter;
+Landroid/icu/text/UnicodeSet$NumericValueFilter;
+Landroid/icu/text/UnicodeSet$ScriptExtensionsFilter;
 Landroid/icu/text/UnicodeSet$SpanCondition;
 Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;
+Landroid/icu/text/UnicodeSet$VersionFilter;
+Landroid/icu/text/UnicodeSet$XSymbolTable;
 Landroid/icu/text/UnicodeSet;
+Landroid/icu/text/UppercaseTransliterator$1;
+Landroid/icu/text/UppercaseTransliterator;
 Landroid/icu/util/AnnualTimeZoneRule;
 Landroid/icu/util/BasicTimeZone;
 Landroid/icu/util/BytesTrie$Result;
@@ -26560,6 +48407,7 @@
 Landroid/icu/util/Calendar$WeekData;
 Landroid/icu/util/Calendar$WeekDataCache;
 Landroid/icu/util/Calendar;
+Landroid/icu/util/CaseInsensitiveString;
 Landroid/icu/util/CharsTrie$Entry;
 Landroid/icu/util/CharsTrie$Iterator;
 Landroid/icu/util/CodePointMap$Range;
@@ -26581,6 +48429,7 @@
 Landroid/icu/util/Freezable;
 Landroid/icu/util/GregorianCalendar;
 Landroid/icu/util/ICUException;
+Landroid/icu/util/ICUUncheckedIOException;
 Landroid/icu/util/InitialTimeZoneRule;
 Landroid/icu/util/Measure;
 Landroid/icu/util/MeasureUnit$1;
@@ -26755,6 +48604,8 @@
 Landroid/media/AudioDevice;
 Landroid/media/AudioDeviceAddress$1;
 Landroid/media/AudioDeviceAddress;
+Landroid/media/AudioDeviceAttributes$1;
+Landroid/media/AudioDeviceAttributes;
 Landroid/media/AudioDeviceCallback;
 Landroid/media/AudioDeviceInfo;
 Landroid/media/AudioDevicePort;
@@ -27211,6 +49062,7 @@
 Landroid/media/tv/TvStreamConfig$1;
 Landroid/media/tv/TvStreamConfig$Builder;
 Landroid/media/tv/TvStreamConfig;
+Landroid/media/tv/tunerresourcemanager/TunerResourceManager;
 Landroid/metrics/LogMaker;
 Landroid/metrics/MetricsReader$Event;
 Landroid/metrics/MetricsReader$LogReader;
@@ -27533,6 +49385,7 @@
 Landroid/net/sip/ISipSessionListener;
 Landroid/net/sip/SipException;
 Landroid/net/sip/SipManager;
+Landroid/net/sip/SipProfile$1;
 Landroid/net/sip/SipProfile;
 Landroid/net/sip/SipSessionAdapter;
 Landroid/net/util/-$$Lambda$MultinetworkPolicyTracker$8YMQ0fPTKk7Fw-_gJjln0JT-g8E;
@@ -27548,6 +49401,7 @@
 Landroid/net/wifi/WifiNetworkScoreCache$CacheListener$1;
 Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;
 Landroid/net/wifi/WifiNetworkScoreCache;
+Landroid/net/wifi/nl80211/WifiNl80211Manager;
 Landroid/net/wifi/wificond/ChannelSettings$1;
 Landroid/net/wifi/wificond/ChannelSettings;
 Landroid/net/wifi/wificond/HiddenNetwork$1;
@@ -28048,6 +49902,7 @@
 Landroid/os/UserManager$EnforcingUser;
 Landroid/os/UserManager$UserOperationException;
 Landroid/os/UserManager;
+Landroid/os/VibrationAttributes$1;
 Landroid/os/VibrationAttributes$Builder;
 Landroid/os/VibrationAttributes;
 Landroid/os/VibrationEffect$1;
@@ -28136,6 +49991,7 @@
 Landroid/os/strictmode/DiskWriteViolation;
 Landroid/os/strictmode/ExplicitGcViolation;
 Landroid/os/strictmode/ImplicitDirectBootViolation;
+Landroid/os/strictmode/IncorrectContextUseViolation;
 Landroid/os/strictmode/InstanceCountViolation;
 Landroid/os/strictmode/IntentReceiverLeakedViolation;
 Landroid/os/strictmode/LeakedClosableViolation;
@@ -30023,6 +51879,12 @@
 Landroid/view/TouchDelegate;
 Landroid/view/VelocityTracker$Estimator;
 Landroid/view/VelocityTracker;
+Landroid/view/VerifiedInputEvent$1;
+Landroid/view/VerifiedInputEvent;
+Landroid/view/VerifiedKeyEvent$1;
+Landroid/view/VerifiedKeyEvent;
+Landroid/view/VerifiedMotionEvent$1;
+Landroid/view/VerifiedMotionEvent;
 Landroid/view/View$10;
 Landroid/view/View$11;
 Landroid/view/View$12;
@@ -30331,6 +52193,7 @@
 Landroid/view/contentcapture/IDataShareWriteAdapter;
 Landroid/view/contentcapture/MainContentCaptureSession$1;
 Landroid/view/contentcapture/MainContentCaptureSession;
+Landroid/view/inputmethod/-$$Lambda$InputMethodManager$DelegateImpl$r2X8PLo_YIORJTYJGDfinf_IvK4;
 Landroid/view/inputmethod/-$$Lambda$InputMethodManager$dfnCauFoZCf-HfXs1QavrkwWDf0;
 Landroid/view/inputmethod/-$$Lambda$InputMethodManager$iDWn3IGSUFqIcs8Py42UhfrshxI;
 Landroid/view/inputmethod/BaseInputConnection;
@@ -30343,6 +52206,7 @@
 Landroid/view/inputmethod/CursorAnchorInfo$Builder;
 Landroid/view/inputmethod/CursorAnchorInfo;
 Landroid/view/inputmethod/EditorInfo$1;
+Landroid/view/inputmethod/EditorInfo$InitialSurroundingText$1;
 Landroid/view/inputmethod/EditorInfo$InitialSurroundingText;
 Landroid/view/inputmethod/EditorInfo;
 Landroid/view/inputmethod/ExtractedText$1;
@@ -31053,6 +52917,8 @@
 Lcom/android/internal/app/IVoiceInteractor$Stub;
 Lcom/android/internal/app/IVoiceInteractor;
 Lcom/android/internal/app/IntentForwarderActivity;
+Lcom/android/internal/app/MessageSamplingConfig$1;
+Lcom/android/internal/app/MessageSamplingConfig;
 Lcom/android/internal/app/MicroAlertController;
 Lcom/android/internal/app/NetInitiatedActivity;
 Lcom/android/internal/app/ProcessMap;
@@ -31123,6 +52989,18 @@
 Lcom/android/internal/content/PackageMonitor;
 Lcom/android/internal/content/ReferrerIntent$1;
 Lcom/android/internal/content/ReferrerIntent;
+Lcom/android/internal/content/om/-$$Lambda$8ZY6dnO1FkDIliprAt8K651mwFE;
+Lcom/android/internal/content/om/-$$Lambda$OverlayConfig$2-NucNRcrJn4xnLpjFKSY7827lQ;
+Lcom/android/internal/content/om/-$$Lambda$OverlayConfig$bPcIgkiZP3FiPOvGMosWxnh9KGA;
+Lcom/android/internal/content/om/-$$Lambda$TnMimLdK-xwmEZLrRzFg7LG1Yfg;
+Lcom/android/internal/content/om/OverlayConfig$Configuration;
+Lcom/android/internal/content/om/OverlayConfig$IdmapInvocation;
+Lcom/android/internal/content/om/OverlayConfig;
+Lcom/android/internal/content/om/OverlayConfigParser$OverlayPartition;
+Lcom/android/internal/content/om/OverlayConfigParser$ParsedConfiguration;
+Lcom/android/internal/content/om/OverlayConfigParser;
+Lcom/android/internal/content/om/OverlayScanner$ParsedOverlayInfo;
+Lcom/android/internal/content/om/OverlayScanner;
 Lcom/android/internal/database/SortCursor;
 Lcom/android/internal/graphics/-$$Lambda$ColorUtils$zbDH-52c8D9XBeqmvTHi3Boxl14;
 Lcom/android/internal/graphics/ColorUtils$ContrastCalculator;
@@ -31334,6 +53212,11 @@
 Lcom/android/internal/os/KernelCpuThreadReaderDiff;
 Lcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;
 Lcom/android/internal/os/KernelCpuThreadReaderSettingsObserver;
+Lcom/android/internal/os/KernelCpuUidBpfMapReader$BpfMapIterator;
+Lcom/android/internal/os/KernelCpuUidBpfMapReader$KernelCpuUidActiveTimeBpfMapReader;
+Lcom/android/internal/os/KernelCpuUidBpfMapReader$KernelCpuUidClusterTimeBpfMapReader;
+Lcom/android/internal/os/KernelCpuUidBpfMapReader$KernelCpuUidFreqTimeBpfMapReader;
+Lcom/android/internal/os/KernelCpuUidBpfMapReader;
 Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;
 Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidActiveTimeReader;
 Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidClusterTimeReader;
@@ -31341,6 +53224,7 @@
 Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader;
 Lcom/android/internal/os/KernelCpuUidTimeReader;
 Lcom/android/internal/os/KernelMemoryBandwidthStats;
+Lcom/android/internal/os/KernelSingleUidTimeReader$Injector;
 Lcom/android/internal/os/KernelSingleUidTimeReader;
 Lcom/android/internal/os/KernelWakelockReader;
 Lcom/android/internal/os/KernelWakelockStats$Entry;
@@ -33332,8 +55216,6 @@
 Ljava/net/AddressCache$AddressCacheEntry;
 Ljava/net/AddressCache$AddressCacheKey;
 Ljava/net/AddressCache;
-Ljava/net/Authenticator$RequestorType;
-Ljava/net/Authenticator;
 Ljava/net/ConnectException;
 Ljava/net/CookieHandler;
 Ljava/net/CookieManager$CookiePathComparator;
@@ -33385,7 +55267,6 @@
 Ljava/net/NetworkInterface;
 Ljava/net/NoRouteToHostException;
 Ljava/net/Parts;
-Ljava/net/PasswordAuthentication;
 Ljava/net/PlainDatagramSocketImpl;
 Ljava/net/PlainSocketImpl;
 Ljava/net/PortUnreachableException;
@@ -34515,6 +56396,7 @@
 Ljava/util/stream/Streams$2;
 Ljava/util/stream/Streams$ConcatSpliterator$OfRef;
 Ljava/util/stream/Streams$ConcatSpliterator;
+Ljava/util/stream/Streams$RangeIntSpliterator;
 Ljava/util/stream/Streams;
 Ljava/util/stream/TerminalOp;
 Ljava/util/stream/TerminalSink;
@@ -34640,6 +56522,7 @@
 Ljavax/security/cert/CertificateException;
 Ljavax/security/cert/X509Certificate$1;
 Ljavax/security/cert/X509Certificate;
+Ljavax/sip/ObjectInUseException;
 Ljavax/sip/SipException;
 Ljavax/xml/parsers/DocumentBuilder;
 Ljavax/xml/parsers/DocumentBuilderFactory;
diff --git a/config/preloaded-classes b/config/preloaded-classes
index c6b10ed..d5fba70 100644
--- a/config/preloaded-classes
+++ b/config/preloaded-classes
@@ -146,6 +146,7 @@
 android.animation.TypeEvaluator
 android.animation.ValueAnimator$AnimatorUpdateListener
 android.animation.ValueAnimator
+android.annotation.ColorInt
 android.annotation.IntRange
 android.annotation.NonNull
 android.annotation.SystemApi
@@ -262,6 +263,8 @@
 android.app.AppOpsManager$1
 android.app.AppOpsManager$2
 android.app.AppOpsManager$3
+android.app.AppOpsManager$AppOpsCollector$1
+android.app.AppOpsManager$AppOpsCollector
 android.app.AppOpsManager$HistoricalFeatureOps
 android.app.AppOpsManager$HistoricalOp$1
 android.app.AppOpsManager$HistoricalOp
@@ -599,6 +602,7 @@
 android.app.SystemServiceRegistry$119
 android.app.SystemServiceRegistry$11
 android.app.SystemServiceRegistry$120
+android.app.SystemServiceRegistry$121
 android.app.SystemServiceRegistry$12
 android.app.SystemServiceRegistry$13
 android.app.SystemServiceRegistry$14
@@ -1382,6 +1386,7 @@
 android.content.om.OverlayManager
 android.content.om.OverlayableInfo
 android.content.pm.-$$Lambda$B12dZLpdwpXn89QSesmkaZjD72Q
+android.content.pm.-$$Lambda$IPackageManager$Stub$ZVp6oEh-Gn_bn8lM7TgSgpaGriw
 android.content.pm.-$$Lambda$PackageParser$0DZRgzfgaIMpCOhJqjw6PUiU5vw
 android.content.pm.-$$Lambda$PackageParser$0aobsT7Zf7WVZCqMZ5z2clAuQf4
 android.content.pm.-$$Lambda$PackageParser$M-9fHqS_eEp1oYkuKJhRHOGUxf8
@@ -1547,6 +1552,9 @@
 android.content.pm.PackageParser
 android.content.pm.PackageParserCacheHelper$ReadHelper
 android.content.pm.PackageParserCacheHelper$WriteHelper
+android.content.pm.PackagePartitions$DeferredCanonicalFile
+android.content.pm.PackagePartitions$SystemPartition
+android.content.pm.PackagePartitions
 android.content.pm.PackageStats$1
 android.content.pm.PackageStats
 android.content.pm.PackageUserState
@@ -1986,6 +1994,10 @@
 android.graphics.Typeface
 android.graphics.Xfermode
 android.graphics.YuvImage
+android.graphics.animation.NativeInterpolator
+android.graphics.animation.NativeInterpolatorFactory
+android.graphics.animation.RenderNodeAnimator$ViewListener
+android.graphics.animation.RenderNodeAnimator
 android.graphics.drawable.-$$Lambda$AnimatedVectorDrawable$VectorDrawableAnimatorRT$PzjgSeyQweoFjbEZJP80UteZqm8
 android.graphics.drawable.-$$Lambda$BitmapDrawable$LMqt8JvxZ4giSOIRAtlCKDg39Jw
 android.graphics.drawable.-$$Lambda$Drawable$bbJz2VgQAwkXlE27mR8nPMYacEw
@@ -2358,6 +2370,10 @@
 android.hardware.display.ColorDisplayManager
 android.hardware.display.Curve$1
 android.hardware.display.Curve
+android.hardware.display.DeviceProductInfo$1
+android.hardware.display.DeviceProductInfo$ManufactureDate$1
+android.hardware.display.DeviceProductInfo$ManufactureDate
+android.hardware.display.DeviceProductInfo
 android.hardware.display.DisplayManager$DisplayListener
 android.hardware.display.DisplayManager
 android.hardware.display.DisplayManagerGlobal$DisplayListenerDelegate
@@ -2875,9 +2891,11 @@
 android.icu.impl.ICUService$Key
 android.icu.impl.ICUService
 android.icu.impl.IDNA2003
+android.icu.impl.IllegalIcuArgumentException
 android.icu.impl.JavaTimeZone
 android.icu.impl.LocaleIDParser
 android.icu.impl.LocaleIDs
+android.icu.impl.LocaleUtility
 android.icu.impl.Norm2AllModes$1
 android.icu.impl.Norm2AllModes$ComposeNormalizer2
 android.icu.impl.Norm2AllModes$DecomposeNormalizer2
@@ -2912,6 +2930,7 @@
 android.icu.impl.StaticUnicodeSets$ParseDataSink
 android.icu.impl.StaticUnicodeSets
 android.icu.impl.StringPrepDataReader
+android.icu.impl.StringRange
 android.icu.impl.StringSegment
 android.icu.impl.TextTrieMap$Node
 android.icu.impl.TextTrieMap
@@ -2943,6 +2962,7 @@
 android.icu.impl.UCaseProps$IsAcceptable
 android.icu.impl.UCaseProps$LatinCase
 android.icu.impl.UCaseProps
+android.icu.impl.UCharacterName
 android.icu.impl.UCharacterProperty$10
 android.icu.impl.UCharacterProperty$11
 android.icu.impl.UCharacterProperty$12
@@ -3071,6 +3091,7 @@
 android.icu.impl.number.parse.SeriesMatcher
 android.icu.impl.number.parse.SymbolMatcher
 android.icu.impl.number.parse.ValidationMatcher
+android.icu.lang.CharSequences
 android.icu.lang.CharacterProperties
 android.icu.lang.UCharacter
 android.icu.lang.UCharacterEnums$ECharacterCategory
@@ -3109,6 +3130,7 @@
 android.icu.text.AlphabeticIndex$Bucket
 android.icu.text.AlphabeticIndex$BucketList
 android.icu.text.AlphabeticIndex$ImmutableIndex
+android.icu.text.AnyTransliterator
 android.icu.text.Bidi$ImpTabPair
 android.icu.text.Bidi
 android.icu.text.BidiClassifier
@@ -3119,6 +3141,9 @@
 android.icu.text.BreakIteratorFactory$BFService$1RBBreakIteratorFactory
 android.icu.text.BreakIteratorFactory$BFService
 android.icu.text.BreakIteratorFactory
+android.icu.text.BreakTransliterator
+android.icu.text.CaseFoldTransliterator$1
+android.icu.text.CaseFoldTransliterator
 android.icu.text.CaseMap$Title
 android.icu.text.CaseMap$Upper
 android.icu.text.CaseMap
@@ -3173,11 +3198,31 @@
 android.icu.text.DisplayContext
 android.icu.text.Edits$Iterator
 android.icu.text.Edits
+android.icu.text.EscapeTransliterator$1
+android.icu.text.EscapeTransliterator$2
+android.icu.text.EscapeTransliterator$3
+android.icu.text.EscapeTransliterator$4
+android.icu.text.EscapeTransliterator$5
+android.icu.text.EscapeTransliterator$6
+android.icu.text.EscapeTransliterator$7
+android.icu.text.EscapeTransliterator$8
+android.icu.text.EscapeTransliterator
 android.icu.text.FormattedValue
 android.icu.text.IDNA
 android.icu.text.LanguageBreakEngine
+android.icu.text.LowercaseTransliterator$1
+android.icu.text.LowercaseTransliterator
 android.icu.text.MeasureFormat$FormatWidth
 android.icu.text.MeasureFormat
+android.icu.text.NameUnicodeTransliterator$1
+android.icu.text.NameUnicodeTransliterator
+android.icu.text.NormalizationTransliterator$1
+android.icu.text.NormalizationTransliterator$2
+android.icu.text.NormalizationTransliterator$3
+android.icu.text.NormalizationTransliterator$4
+android.icu.text.NormalizationTransliterator$5
+android.icu.text.NormalizationTransliterator$6
+android.icu.text.NormalizationTransliterator
 android.icu.text.Normalizer$FCDMode
 android.icu.text.Normalizer$Mode
 android.icu.text.Normalizer$ModeImpl
@@ -3190,6 +3235,7 @@
 android.icu.text.Normalizer$QuickCheckResult
 android.icu.text.Normalizer2
 android.icu.text.Normalizer
+android.icu.text.NullTransliterator
 android.icu.text.NumberFormat$Field
 android.icu.text.NumberFormat$NumberFormatShim
 android.icu.text.NumberFormat
@@ -3223,6 +3269,8 @@
 android.icu.text.RelativeDateTimeFormatter$Cache
 android.icu.text.RelativeDateTimeFormatter$Loader
 android.icu.text.RelativeDateTimeFormatter$RelDateTimeDataSink
+android.icu.text.RemoveTransliterator$1
+android.icu.text.RemoveTransliterator
 android.icu.text.Replaceable
 android.icu.text.ReplaceableString
 android.icu.text.RuleBasedBreakIterator$BreakCache
@@ -3234,32 +3282,62 @@
 android.icu.text.RuleBasedCollator$NFDIterator
 android.icu.text.RuleBasedCollator$UTF16NFDIterator
 android.icu.text.RuleBasedCollator
+android.icu.text.RuleBasedTransliterator$Data
 android.icu.text.SimpleDateFormat$PatternItem
 android.icu.text.SimpleDateFormat
 android.icu.text.StringPrep
 android.icu.text.StringPrepParseException
 android.icu.text.StringTransform
+android.icu.text.SymbolTable
 android.icu.text.TimeZoneNames$Cache
 android.icu.text.TimeZoneNames$Factory
 android.icu.text.TimeZoneNames$NameType
 android.icu.text.TimeZoneNames
+android.icu.text.TitlecaseTransliterator$1
+android.icu.text.TitlecaseTransliterator
 android.icu.text.Transform
+android.icu.text.Transliterator$Factory
+android.icu.text.Transliterator$Position
 android.icu.text.Transliterator
+android.icu.text.TransliteratorIDParser$SingleID
+android.icu.text.TransliteratorIDParser$Specs
+android.icu.text.TransliteratorIDParser
+android.icu.text.TransliteratorRegistry$AliasEntry
+android.icu.text.TransliteratorRegistry$IDEnumeration
+android.icu.text.TransliteratorRegistry$ResourceEntry
+android.icu.text.TransliteratorRegistry$Spec
+android.icu.text.TransliteratorRegistry
 android.icu.text.UCharacterIterator
 android.icu.text.UFieldPosition
 android.icu.text.UFormat
 android.icu.text.UForwardCharacterIterator
 android.icu.text.UTF16$StringComparator
 android.icu.text.UTF16
+android.icu.text.UnescapeTransliterator$1
+android.icu.text.UnescapeTransliterator$2
+android.icu.text.UnescapeTransliterator$3
+android.icu.text.UnescapeTransliterator$4
+android.icu.text.UnescapeTransliterator$5
+android.icu.text.UnescapeTransliterator$6
+android.icu.text.UnescapeTransliterator$7
+android.icu.text.UnescapeTransliterator
 android.icu.text.UnhandledBreakEngine
 android.icu.text.UnicodeFilter
 android.icu.text.UnicodeMatcher
+android.icu.text.UnicodeNameTransliterator$1
+android.icu.text.UnicodeNameTransliterator
 android.icu.text.UnicodeSet$Filter
 android.icu.text.UnicodeSet$GeneralCategoryMaskFilter
 android.icu.text.UnicodeSet$IntPropertyFilter
+android.icu.text.UnicodeSet$NumericValueFilter
+android.icu.text.UnicodeSet$ScriptExtensionsFilter
 android.icu.text.UnicodeSet$SpanCondition
 android.icu.text.UnicodeSet$UnicodeSetIterator2
+android.icu.text.UnicodeSet$VersionFilter
+android.icu.text.UnicodeSet$XSymbolTable
 android.icu.text.UnicodeSet
+android.icu.text.UppercaseTransliterator$1
+android.icu.text.UppercaseTransliterator
 android.icu.util.AnnualTimeZoneRule
 android.icu.util.BasicTimeZone
 android.icu.util.BytesTrie$Result
@@ -3270,6 +3348,7 @@
 android.icu.util.Calendar$WeekData
 android.icu.util.Calendar$WeekDataCache
 android.icu.util.Calendar
+android.icu.util.CaseInsensitiveString
 android.icu.util.CharsTrie$Entry
 android.icu.util.CharsTrie$Iterator
 android.icu.util.CodePointMap$Range
@@ -3291,6 +3370,7 @@
 android.icu.util.Freezable
 android.icu.util.GregorianCalendar
 android.icu.util.ICUException
+android.icu.util.ICUUncheckedIOException
 android.icu.util.InitialTimeZoneRule
 android.icu.util.Measure
 android.icu.util.MeasureUnit$1
@@ -3465,6 +3545,8 @@
 android.media.AudioDevice
 android.media.AudioDeviceAddress$1
 android.media.AudioDeviceAddress
+android.media.AudioDeviceAttributes$1
+android.media.AudioDeviceAttributes
 android.media.AudioDeviceCallback
 android.media.AudioDeviceInfo
 android.media.AudioDevicePort
@@ -3921,6 +4003,7 @@
 android.media.tv.TvStreamConfig$1
 android.media.tv.TvStreamConfig$Builder
 android.media.tv.TvStreamConfig
+android.media.tv.tunerresourcemanager.TunerResourceManager
 android.metrics.LogMaker
 android.metrics.MetricsReader$Event
 android.metrics.MetricsReader$LogReader
@@ -4242,6 +4325,7 @@
 android.net.sip.ISipSessionListener
 android.net.sip.SipException
 android.net.sip.SipManager
+android.net.sip.SipProfile$1
 android.net.sip.SipProfile
 android.net.sip.SipSessionAdapter
 android.net.util.-$$Lambda$MultinetworkPolicyTracker$8YMQ0fPTKk7Fw-_gJjln0JT-g8E
@@ -4257,6 +4341,7 @@
 android.net.wifi.WifiNetworkScoreCache$CacheListener$1
 android.net.wifi.WifiNetworkScoreCache$CacheListener
 android.net.wifi.WifiNetworkScoreCache
+android.net.wifi.nl80211.WifiNl80211Manager
 android.net.wifi.wificond.ChannelSettings$1
 android.net.wifi.wificond.ChannelSettings
 android.net.wifi.wificond.HiddenNetwork$1
@@ -4755,6 +4840,7 @@
 android.os.UserManager$EnforcingUser
 android.os.UserManager$UserOperationException
 android.os.UserManager
+android.os.VibrationAttributes$1
 android.os.VibrationAttributes$Builder
 android.os.VibrationAttributes
 android.os.VibrationEffect$1
@@ -4843,6 +4929,7 @@
 android.os.strictmode.DiskWriteViolation
 android.os.strictmode.ExplicitGcViolation
 android.os.strictmode.ImplicitDirectBootViolation
+android.os.strictmode.IncorrectContextUseViolation
 android.os.strictmode.InstanceCountViolation
 android.os.strictmode.IntentReceiverLeakedViolation
 android.os.strictmode.LeakedClosableViolation
@@ -6725,6 +6812,12 @@
 android.view.TouchDelegate
 android.view.VelocityTracker$Estimator
 android.view.VelocityTracker
+android.view.VerifiedInputEvent$1
+android.view.VerifiedInputEvent
+android.view.VerifiedKeyEvent$1
+android.view.VerifiedKeyEvent
+android.view.VerifiedMotionEvent$1
+android.view.VerifiedMotionEvent
 android.view.View$10
 android.view.View$11
 android.view.View$12
@@ -7033,6 +7126,7 @@
 android.view.contentcapture.IDataShareWriteAdapter
 android.view.contentcapture.MainContentCaptureSession$1
 android.view.contentcapture.MainContentCaptureSession
+android.view.inputmethod.-$$Lambda$InputMethodManager$DelegateImpl$r2X8PLo_YIORJTYJGDfinf_IvK4
 android.view.inputmethod.-$$Lambda$InputMethodManager$dfnCauFoZCf-HfXs1QavrkwWDf0
 android.view.inputmethod.-$$Lambda$InputMethodManager$iDWn3IGSUFqIcs8Py42UhfrshxI
 android.view.inputmethod.BaseInputConnection
@@ -7045,6 +7139,7 @@
 android.view.inputmethod.CursorAnchorInfo$Builder
 android.view.inputmethod.CursorAnchorInfo
 android.view.inputmethod.EditorInfo$1
+android.view.inputmethod.EditorInfo$InitialSurroundingText$1
 android.view.inputmethod.EditorInfo$InitialSurroundingText
 android.view.inputmethod.EditorInfo
 android.view.inputmethod.ExtractedText$1
@@ -7754,6 +7849,8 @@
 com.android.internal.app.IVoiceInteractor$Stub
 com.android.internal.app.IVoiceInteractor
 com.android.internal.app.IntentForwarderActivity
+com.android.internal.app.MessageSamplingConfig$1
+com.android.internal.app.MessageSamplingConfig
 com.android.internal.app.MicroAlertController
 com.android.internal.app.NetInitiatedActivity
 com.android.internal.app.ProcessMap
@@ -7824,6 +7921,18 @@
 com.android.internal.content.PackageMonitor
 com.android.internal.content.ReferrerIntent$1
 com.android.internal.content.ReferrerIntent
+com.android.internal.content.om.-$$Lambda$8ZY6dnO1FkDIliprAt8K651mwFE
+com.android.internal.content.om.-$$Lambda$OverlayConfig$2-NucNRcrJn4xnLpjFKSY7827lQ
+com.android.internal.content.om.-$$Lambda$OverlayConfig$bPcIgkiZP3FiPOvGMosWxnh9KGA
+com.android.internal.content.om.-$$Lambda$TnMimLdK-xwmEZLrRzFg7LG1Yfg
+com.android.internal.content.om.OverlayConfig$Configuration
+com.android.internal.content.om.OverlayConfig$IdmapInvocation
+com.android.internal.content.om.OverlayConfig
+com.android.internal.content.om.OverlayConfigParser$OverlayPartition
+com.android.internal.content.om.OverlayConfigParser$ParsedConfiguration
+com.android.internal.content.om.OverlayConfigParser
+com.android.internal.content.om.OverlayScanner$ParsedOverlayInfo
+com.android.internal.content.om.OverlayScanner
 com.android.internal.database.SortCursor
 com.android.internal.graphics.-$$Lambda$ColorUtils$zbDH-52c8D9XBeqmvTHi3Boxl14
 com.android.internal.graphics.ColorUtils$ContrastCalculator
@@ -8035,6 +8144,11 @@
 com.android.internal.os.KernelCpuThreadReaderDiff
 com.android.internal.os.KernelCpuThreadReaderSettingsObserver$UidPredicate
 com.android.internal.os.KernelCpuThreadReaderSettingsObserver
+com.android.internal.os.KernelCpuUidBpfMapReader$BpfMapIterator
+com.android.internal.os.KernelCpuUidBpfMapReader$KernelCpuUidActiveTimeBpfMapReader
+com.android.internal.os.KernelCpuUidBpfMapReader$KernelCpuUidClusterTimeBpfMapReader
+com.android.internal.os.KernelCpuUidBpfMapReader$KernelCpuUidFreqTimeBpfMapReader
+com.android.internal.os.KernelCpuUidBpfMapReader
 com.android.internal.os.KernelCpuUidTimeReader$Callback
 com.android.internal.os.KernelCpuUidTimeReader$KernelCpuUidActiveTimeReader
 com.android.internal.os.KernelCpuUidTimeReader$KernelCpuUidClusterTimeReader
@@ -8042,6 +8156,7 @@
 com.android.internal.os.KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader
 com.android.internal.os.KernelCpuUidTimeReader
 com.android.internal.os.KernelMemoryBandwidthStats
+com.android.internal.os.KernelSingleUidTimeReader$Injector
 com.android.internal.os.KernelSingleUidTimeReader
 com.android.internal.os.KernelWakelockReader
 com.android.internal.os.KernelWakelockStats$Entry
@@ -10032,8 +10147,6 @@
 java.net.AddressCache$AddressCacheEntry
 java.net.AddressCache$AddressCacheKey
 java.net.AddressCache
-java.net.Authenticator$RequestorType
-java.net.Authenticator
 java.net.ConnectException
 java.net.CookieHandler
 java.net.CookieManager$CookiePathComparator
@@ -10085,7 +10198,6 @@
 java.net.NetworkInterface
 java.net.NoRouteToHostException
 java.net.Parts
-java.net.PasswordAuthentication
 java.net.PlainDatagramSocketImpl
 java.net.PlainSocketImpl
 java.net.PortUnreachableException
@@ -11215,6 +11327,7 @@
 java.util.stream.Streams$2
 java.util.stream.Streams$ConcatSpliterator$OfRef
 java.util.stream.Streams$ConcatSpliterator
+java.util.stream.Streams$RangeIntSpliterator
 java.util.stream.Streams
 java.util.stream.TerminalOp
 java.util.stream.TerminalSink
@@ -11339,6 +11452,7 @@
 javax.security.cert.CertificateException
 javax.security.cert.X509Certificate$1
 javax.security.cert.X509Certificate
+javax.sip.ObjectInUseException
 javax.sip.SipException
 javax.xml.parsers.DocumentBuilder
 javax.xml.parsers.DocumentBuilderFactory
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java
index e7036bb..f3759fd 100644
--- a/core/java/android/accessibilityservice/AccessibilityService.java
+++ b/core/java/android/accessibilityservice/AccessibilityService.java
@@ -33,7 +33,6 @@
 import android.graphics.ParcelableColorSpace;
 import android.graphics.Region;
 import android.hardware.HardwareBuffer;
-import android.os.Binder;
 import android.os.Build;
 import android.os.Handler;
 import android.os.IBinder;
@@ -576,6 +575,46 @@
     public static final int SHOW_MODE_HARD_KEYBOARD_OVERRIDDEN = 0x40000000;
 
     /**
+     * Annotations for error codes of taking screenshot.
+     * @hide
+     */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = { "TAKE_SCREENSHOT_" }, value = {
+            ERROR_TAKE_SCREENSHOT_INTERNAL_ERROR,
+            ERROR_TAKE_SCREENSHOT_NO_ACCESSIBILITY_ACCESS,
+            ERROR_TAKE_SCREENSHOT_INTERVAL_TIME_SHORT,
+            ERROR_TAKE_SCREENSHOT_INVALID_DISPLAY
+    })
+    public @interface ScreenshotErrorCode {}
+
+    /**
+     * The status of taking screenshot is success.
+     * @hide
+     */
+    public static final int TAKE_SCREENSHOT_SUCCESS = 0;
+
+    /**
+     * The status of taking screenshot is failure and the reason is internal error.
+     */
+    public static final int ERROR_TAKE_SCREENSHOT_INTERNAL_ERROR = 1;
+
+    /**
+     * The status of taking screenshot is failure and the reason is no accessibility access.
+     */
+    public static final int ERROR_TAKE_SCREENSHOT_NO_ACCESSIBILITY_ACCESS = 2;
+
+    /**
+     * The status of taking screenshot is failure and the reason is that too little time has
+     * elapsed since the last screenshot.
+     */
+    public static final int ERROR_TAKE_SCREENSHOT_INTERVAL_TIME_SHORT = 3;
+
+    /**
+     * The status of taking screenshot is failure and the reason is invalid display Id.
+     */
+    public static final int ERROR_TAKE_SCREENSHOT_INVALID_DISPLAY = 4;
+
+    /**
      * The interval time of calling
      * {@link AccessibilityService#takeScreenshot(int, Executor, Consumer)} API.
      * @hide
@@ -584,6 +623,10 @@
     public static final int ACCESSIBILITY_TAKE_SCREENSHOT_REQUEST_INTERVAL_TIMES_MS = 1000;
 
     /** @hide */
+    public static final String KEY_ACCESSIBILITY_SCREENSHOT_STATUS =
+            "screenshot_status";
+
+    /** @hide */
     public static final String KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER =
             "screenshot_hardwareBuffer";
 
@@ -1945,14 +1988,13 @@
      * @param displayId The logic display id, must be {@link Display#DEFAULT_DISPLAY} for
      *                  default display.
      * @param executor Executor on which to run the callback.
-     * @param callback The callback invoked when the taking screenshot is done.
+     * @param callback The callback invoked when taking screenshot has succeeded or failed.
+     *                 See {@link TakeScreenshotCallback} for details.
      *
-     * @return {@code true} if the taking screenshot accepted, {@code false} if too little time
-     * has elapsed since the last screenshot, invalid display or internal errors.
      * @throws IllegalArgumentException if displayId is not {@link Display#DEFAULT_DISPLAY}.
      */
-    public boolean takeScreenshot(int displayId, @NonNull @CallbackExecutor Executor executor,
-            @NonNull Consumer<ScreenshotResult> callback) {
+    public void takeScreenshot(int displayId, @NonNull @CallbackExecutor Executor executor,
+            @NonNull TakeScreenshotCallback callback) {
         Preconditions.checkNotNull(executor, "executor cannot be null");
         Preconditions.checkNotNull(callback, "callback cannot be null");
 
@@ -1964,18 +2006,24 @@
                 AccessibilityInteractionClient.getInstance().getConnection(
                         mConnectionId);
         if (connection == null) {
-            return false;
+            sendScreenshotFailure(ERROR_TAKE_SCREENSHOT_INTERNAL_ERROR, executor, callback);
+            return;
         }
         try {
-            return connection.takeScreenshot(displayId, new RemoteCallback((result) -> {
+            connection.takeScreenshot(displayId, new RemoteCallback((result) -> {
+                final int status = result.getInt(KEY_ACCESSIBILITY_SCREENSHOT_STATUS);
+                if (status != TAKE_SCREENSHOT_SUCCESS) {
+                    sendScreenshotFailure(status, executor, callback);
+                    return;
+                }
                 final HardwareBuffer hardwareBuffer =
                         result.getParcelable(KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER);
                 final ParcelableColorSpace colorSpace =
                         result.getParcelable(KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE);
-                ScreenshotResult screenshot = new ScreenshotResult(hardwareBuffer,
+                final ScreenshotResult screenshot = new ScreenshotResult(hardwareBuffer,
                         colorSpace.getColorSpace(),
                         result.getLong(KEY_ACCESSIBILITY_SCREENSHOT_TIMESTAMP));
-                sendScreenshotResult(executor, callback, screenshot);
+                sendScreenshotSuccess(screenshot, executor, callback);
             }));
         } catch (RemoteException re) {
             throw new RuntimeException(re);
@@ -2374,15 +2422,32 @@
         }
     }
 
-    private void sendScreenshotResult(Executor executor, Consumer<ScreenshotResult> callback,
-            ScreenshotResult screenshot) {
-        final ScreenshotResult result = screenshot;
-        final long identity = Binder.clearCallingIdentity();
-        try {
-            executor.execute(() -> callback.accept(result));
-        } finally {
-            Binder.restoreCallingIdentity(identity);
-        }
+    private void sendScreenshotSuccess(ScreenshotResult screenshot, Executor executor,
+            TakeScreenshotCallback callback) {
+        executor.execute(() -> callback.onSuccess(screenshot));
+    }
+
+    private void sendScreenshotFailure(@ScreenshotErrorCode int errorCode, Executor executor,
+            TakeScreenshotCallback callback) {
+        executor.execute(() -> callback.onFailure(errorCode));
+    }
+
+    /**
+     * Interface used to report status of taking screenshot.
+     */
+    public interface TakeScreenshotCallback {
+        /** Called when taking screenshot has completed successfully.
+         *
+         * @param screenshot The content of screenshot.
+         */
+        void onSuccess(@NonNull ScreenshotResult screenshot);
+
+        /** Called when taking screenshot has failed. {@code errorCode} will identify the
+         * reason of failure.
+         *
+         * @param errorCode The error code of this operation.
+         */
+        void onFailure(@ScreenshotErrorCode int errorCode);
     }
 
     /**
diff --git a/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl b/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
index 1b7b4af..0b3b9b2 100644
--- a/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
+++ b/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
@@ -110,7 +110,7 @@
 
     int getWindowIdForLeashToken(IBinder token);
 
-    boolean takeScreenshot(int displayId, in RemoteCallback callback);
+    void takeScreenshot(int displayId, in RemoteCallback callback);
 
     void setGestureDetectionPassthroughRegion(int displayId, in Region region);
 
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index f4ee8fa..556f841 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -73,7 +73,7 @@
 import android.util.DisplayMetrics;
 import android.util.Singleton;
 import android.util.Size;
-import android.view.IWindowContainer;
+import android.window.IWindowContainer;
 import android.view.Surface;
 
 import com.android.internal.app.LocalePicker;
@@ -3628,11 +3628,40 @@
         }
     }
 
+    /**
+     * Set custom state data for this process. It will be included in the record of
+     * {@link ApplicationExitInfo} on the death of the current calling process; the new process
+     * of the app can retrieve this state data by calling
+     * {@link ApplicationExitInfo#getProcessStateSummary} on the record returned by
+     * {@link #getHistoricalProcessExitReasons}.
+     *
+     * <p> This would be useful for the calling app to save its stateful data: if it's
+     * killed later for any reason, the new process of the app can know what the
+     * previous process of the app was doing. For instance, you could use this to encode
+     * the current level in a game, or a set of features/experiments that were enabled. Later you
+     * could analyze under what circumstances the app tends to crash or use too much memory.
+     * However, it's not suggested to rely on this to restore the applications previous UI state
+     * or so, it's only meant for analyzing application healthy status.</p>
+     *
+     * <p> System might decide to throttle the calls to this API; so call this API in a reasonable
+     * manner, excessive calls to this API could result a {@link java.lang.RuntimeException}.
+     * </p>
+     *
+     * @param state The state data
+     */
+    public void setProcessStateSummary(@Nullable byte[] state) {
+        try {
+            getService().setProcessStateSummary(state);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
     /*
      * @return Whether or not the low memory kill will be reported in
      * {@link #getHistoricalProcessExitReasons}.
      *
-     * @see {@link ApplicationExitInfo#REASON_LOW_MEMORY}
+     * @see ApplicationExitInfo#REASON_LOW_MEMORY
      */
     public static boolean isLowMemoryKillReportSupported() {
         return SystemProperties.getBoolean("persist.sys.lmk.reportkills", false);
@@ -4627,7 +4656,6 @@
      * @return Returns the boolean result.
      * @hide
      */
-    @SystemApi
     @RequiresPermission(anyOf = {
             android.Manifest.permission.MANAGE_USERS,
             android.Manifest.permission.CREATE_USERS
@@ -4793,9 +4821,9 @@
 
     /**
      * Register with {@link HomeVisibilityObserver} with ActivityManager.
+     * TODO: b/144351078 expose as SystemApi
      * @hide
      */
-    @SystemApi
     public void registerHomeVisibilityObserver(@NonNull HomeVisibilityObserver observer) {
         Preconditions.checkNotNull(observer);
         try {
@@ -4810,9 +4838,9 @@
 
     /**
      * Unregister with {@link HomeVisibilityObserver} with ActivityManager.
+     * TODO: b/144351078 expose as SystemApi
      * @hide
      */
-    @SystemApi
     public void unregisterHomeVisibilityObserver(@NonNull HomeVisibilityObserver observer) {
         Preconditions.checkNotNull(observer);
         try {
diff --git a/core/java/android/app/ActivityOptions.java b/core/java/android/app/ActivityOptions.java
index 4aacf48..7fd02112 100644
--- a/core/java/android/app/ActivityOptions.java
+++ b/core/java/android/app/ActivityOptions.java
@@ -209,6 +209,12 @@
             "android.activity.pendingIntentLaunchFlags";
 
     /**
+     * See {@link #setTaskAlwaysOnTop}.
+     * @hide
+     */
+    private static final String KEY_TASK_ALWAYS_ON_TOP = "android.activity.alwaysOnTop";
+
+    /**
      * See {@link #setTaskOverlay}.
      * @hide
      */
@@ -337,6 +343,7 @@
     private int mSplitScreenCreateMode = SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT;
     private boolean mLockTaskMode = false;
     private boolean mDisallowEnterPictureInPictureWhileLaunching;
+    private boolean mTaskAlwaysOnTop;
     private boolean mTaskOverlay;
     private boolean mTaskOverlayCanResume;
     private boolean mAvoidMoveToFront;
@@ -971,6 +978,7 @@
         mLaunchActivityType = opts.getInt(KEY_LAUNCH_ACTIVITY_TYPE, ACTIVITY_TYPE_UNDEFINED);
         mLaunchTaskId = opts.getInt(KEY_LAUNCH_TASK_ID, -1);
         mPendingIntentLaunchFlags = opts.getInt(KEY_PENDING_INTENT_LAUNCH_FLAGS, 0);
+        mTaskAlwaysOnTop = opts.getBoolean(KEY_TASK_ALWAYS_ON_TOP, false);
         mTaskOverlay = opts.getBoolean(KEY_TASK_OVERLAY, false);
         mTaskOverlayCanResume = opts.getBoolean(KEY_TASK_OVERLAY_CAN_RESUME, false);
         mAvoidMoveToFront = opts.getBoolean(KEY_AVOID_MOVE_TO_FRONT, false);
@@ -1300,6 +1308,22 @@
     }
 
     /**
+     * Set's whether the task for the activity launched with this option should always be on top.
+     * @hide
+     */
+    @TestApi
+    public void setTaskAlwaysOnTop(boolean alwaysOnTop) {
+        mTaskAlwaysOnTop = alwaysOnTop;
+    }
+
+    /**
+     * @hide
+     */
+    public boolean getTaskAlwaysOnTop() {
+        return mTaskAlwaysOnTop;
+    }
+
+    /**
      * Set's whether the activity launched with this option should be a task overlay. That is the
      * activity will always be the top activity of the task.
      * @param canResume {@code false} if the task will also not be moved to the front of the stack.
@@ -1556,6 +1580,9 @@
         if (mPendingIntentLaunchFlags != 0) {
             b.putInt(KEY_PENDING_INTENT_LAUNCH_FLAGS, mPendingIntentLaunchFlags);
         }
+        if (mTaskAlwaysOnTop) {
+            b.putBoolean(KEY_TASK_ALWAYS_ON_TOP, mTaskAlwaysOnTop);
+        }
         if (mTaskOverlay) {
             b.putBoolean(KEY_TASK_OVERLAY, mTaskOverlay);
         }
diff --git a/core/java/android/app/ActivityTaskManager.java b/core/java/android/app/ActivityTaskManager.java
index fb315ad..1b941de 100644
--- a/core/java/android/app/ActivityTaskManager.java
+++ b/core/java/android/app/ActivityTaskManager.java
@@ -158,24 +158,6 @@
                 }
             };
 
-    /** @hide */
-    @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
-    public static ITaskOrganizerController getTaskOrganizerController() {
-        return ITaskOrganizerControllerSingleton.get();
-    }
-
-    private static final Singleton<ITaskOrganizerController> ITaskOrganizerControllerSingleton =
-            new Singleton<ITaskOrganizerController>() {
-                @Override
-                protected ITaskOrganizerController create() {
-                    try {
-                        return getService().getTaskOrganizerController();
-                    } catch (RemoteException e) {
-                        return null;
-                    }
-                }
-            };
-
     /**
      * Sets the windowing mode for a specific task. Only works on tasks of type
      * {@link WindowConfiguration#ACTIVITY_TYPE_STANDARD}
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index a62f0a6..21b56d3 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -201,6 +201,7 @@
 import java.net.InetAddress;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
 import java.text.DateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -4973,10 +4974,8 @@
     ActivityClientRecord performDestroyActivity(IBinder token, boolean finishing,
             int configChanges, boolean getNonConfigInstance, String reason) {
         ActivityClientRecord r = mActivities.get(token);
-        Class<? extends Activity> activityClass = null;
         if (localLOGV) Slog.v(TAG, "Performing finish of " + r);
         if (r != null) {
-            activityClass = r.activity.getClass();
             r.activity.mConfigChangeFlags |= configChanges;
             if (finishing) {
                 r.activity.mFinished = true;
@@ -5029,7 +5028,6 @@
         synchronized (mResourcesManager) {
             mActivities.remove(token);
         }
-        StrictMode.decrementExpectedActivityCount(activityClass);
         return r;
     }
 
@@ -5049,6 +5047,7 @@
         ActivityClientRecord r = performDestroyActivity(token, finishing,
                 configChanges, getNonConfigInstance, reason);
         if (r != null) {
+            Class<? extends Activity> activityClass = r.activity.getClass();
             cleanUpPendingRemoveWindows(r, finishing);
             WindowManager wm = r.activity.getWindowManager();
             View v = r.activity.mDecor;
@@ -5073,14 +5072,14 @@
                 }
                 if (wtoken != null && r.mPendingRemoveWindow == null) {
                     WindowManagerGlobal.getInstance().closeAll(wtoken,
-                            r.activity.getClass().getName(), "Activity");
+                            activityClass.getName(), "Activity");
                 } else if (r.mPendingRemoveWindow != null) {
                     // We're preserving only one window, others should be closed so app views
                     // will be detached before the final tear down. It should be done now because
                     // some components (e.g. WebView) rely on detach callbacks to perform receiver
                     // unregister and other cleanup.
                     WindowManagerGlobal.getInstance().closeAllExceptView(token, v,
-                            r.activity.getClass().getName(), "Activity");
+                            activityClass.getName(), "Activity");
                 }
                 r.activity.mDecor = null;
             }
@@ -5092,18 +5091,23 @@
                 // about leaking windows, because that is a bug, so if they are
                 // using this recreate facility then they get to live with leaks.
                 WindowManagerGlobal.getInstance().closeAll(token,
-                        r.activity.getClass().getName(), "Activity");
+                        activityClass.getName(), "Activity");
             }
 
             // Mocked out contexts won't be participating in the normal
             // process lifecycle, but if we're running with a proper
             // ApplicationContext we need to have it tear down things
             // cleanly.
-            Context c = r.activity.getBaseContext();
-            if (c instanceof ContextImpl) {
-                ((ContextImpl) c).scheduleFinalCleanup(
-                        r.activity.getClass().getName(), "Activity");
+            final ContextImpl impl = ContextImpl.getImpl(r.activity);
+            if (impl != null) {
+                impl.scheduleFinalCleanup(activityClass.getName(), "Activity");
             }
+
+            r.activity = null;
+            r.window = null;
+            r.hideForNow = false;
+            r.nextIdle = null;
+            StrictMode.decrementExpectedActivityCount(activityClass);
         }
         if (finishing) {
             try {
@@ -5333,10 +5337,6 @@
 
         handleDestroyActivity(r.token, false, configChanges, true, reason);
 
-        r.activity = null;
-        r.window = null;
-        r.hideForNow = false;
-        r.nextIdle = null;
         // Merge any pending results and pending intents; don't just replace them
         if (pendingResults != null) {
             if (r.pendingResults == null) {
@@ -7413,8 +7413,10 @@
                 if (e.errno == OsConstants.EXDEV && oldPath.startsWith("/storage/")) {
                     Log.v(TAG, "Recovering failed rename " + oldPath + " to " + newPath);
                     try {
-                        Files.move(new File(oldPath).toPath(), new File(newPath).toPath());
+                        Files.move(new File(oldPath).toPath(), new File(newPath).toPath(),
+                                StandardCopyOption.REPLACE_EXISTING);
                     } catch (IOException e2) {
+                        Log.e(TAG, "Rename recovery failed ", e);
                         throw e;
                     }
                 } else {
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index 9c1a861..c04588d 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -776,151 +776,157 @@
 
     /** @hide No operation specified. */
     @UnsupportedAppUsage
-    public static final int OP_NONE = -1;
+    public static final int OP_NONE = AppProtoEnums.APP_OP_NONE;
     /** @hide Access to coarse location information. */
     @UnsupportedAppUsage
     @TestApi
-    public static final int OP_COARSE_LOCATION = 0;
+    public static final int OP_COARSE_LOCATION = AppProtoEnums.APP_OP_COARSE_LOCATION;
     /** @hide Access to fine location information. */
     @UnsupportedAppUsage
-    public static final int OP_FINE_LOCATION = 1;
+    public static final int OP_FINE_LOCATION = AppProtoEnums.APP_OP_FINE_LOCATION;
     /** @hide Causing GPS to run. */
     @UnsupportedAppUsage
-    public static final int OP_GPS = 2;
+    public static final int OP_GPS = AppProtoEnums.APP_OP_GPS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_VIBRATE = 3;
+    public static final int OP_VIBRATE = AppProtoEnums.APP_OP_VIBRATE;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_READ_CONTACTS = 4;
+    public static final int OP_READ_CONTACTS = AppProtoEnums.APP_OP_READ_CONTACTS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_WRITE_CONTACTS = 5;
+    public static final int OP_WRITE_CONTACTS = AppProtoEnums.APP_OP_WRITE_CONTACTS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_READ_CALL_LOG = 6;
+    public static final int OP_READ_CALL_LOG = AppProtoEnums.APP_OP_READ_CALL_LOG;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_WRITE_CALL_LOG = 7;
+    public static final int OP_WRITE_CALL_LOG = AppProtoEnums.APP_OP_WRITE_CALL_LOG;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_READ_CALENDAR = 8;
+    public static final int OP_READ_CALENDAR = AppProtoEnums.APP_OP_READ_CALENDAR;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_WRITE_CALENDAR = 9;
+    public static final int OP_WRITE_CALENDAR = AppProtoEnums.APP_OP_WRITE_CALENDAR;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_WIFI_SCAN = 10;
+    public static final int OP_WIFI_SCAN = AppProtoEnums.APP_OP_WIFI_SCAN;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_POST_NOTIFICATION = 11;
+    public static final int OP_POST_NOTIFICATION = AppProtoEnums.APP_OP_POST_NOTIFICATION;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_NEIGHBORING_CELLS = 12;
+    public static final int OP_NEIGHBORING_CELLS = AppProtoEnums.APP_OP_NEIGHBORING_CELLS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_CALL_PHONE = 13;
+    public static final int OP_CALL_PHONE = AppProtoEnums.APP_OP_CALL_PHONE;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_READ_SMS = 14;
+    public static final int OP_READ_SMS = AppProtoEnums.APP_OP_READ_SMS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_WRITE_SMS = 15;
+    public static final int OP_WRITE_SMS = AppProtoEnums.APP_OP_WRITE_SMS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_RECEIVE_SMS = 16;
+    public static final int OP_RECEIVE_SMS = AppProtoEnums.APP_OP_RECEIVE_SMS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_RECEIVE_EMERGECY_SMS = 17;
+    public static final int OP_RECEIVE_EMERGECY_SMS =
+            AppProtoEnums.APP_OP_RECEIVE_EMERGENCY_SMS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_RECEIVE_MMS = 18;
+    public static final int OP_RECEIVE_MMS = AppProtoEnums.APP_OP_RECEIVE_MMS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_RECEIVE_WAP_PUSH = 19;
+    public static final int OP_RECEIVE_WAP_PUSH = AppProtoEnums.APP_OP_RECEIVE_WAP_PUSH;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_SEND_SMS = 20;
+    public static final int OP_SEND_SMS = AppProtoEnums.APP_OP_SEND_SMS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_READ_ICC_SMS = 21;
+    public static final int OP_READ_ICC_SMS = AppProtoEnums.APP_OP_READ_ICC_SMS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_WRITE_ICC_SMS = 22;
+    public static final int OP_WRITE_ICC_SMS = AppProtoEnums.APP_OP_WRITE_ICC_SMS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_WRITE_SETTINGS = 23;
+    public static final int OP_WRITE_SETTINGS = AppProtoEnums.APP_OP_WRITE_SETTINGS;
     /** @hide Required to draw on top of other apps. */
     @UnsupportedAppUsage
     @TestApi
-    public static final int OP_SYSTEM_ALERT_WINDOW = 24;
+    public static final int OP_SYSTEM_ALERT_WINDOW = AppProtoEnums.APP_OP_SYSTEM_ALERT_WINDOW;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_ACCESS_NOTIFICATIONS = 25;
+    public static final int OP_ACCESS_NOTIFICATIONS =
+            AppProtoEnums.APP_OP_ACCESS_NOTIFICATIONS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_CAMERA = 26;
+    public static final int OP_CAMERA = AppProtoEnums.APP_OP_CAMERA;
     /** @hide */
     @UnsupportedAppUsage
     @TestApi
-    public static final int OP_RECORD_AUDIO = 27;
+    public static final int OP_RECORD_AUDIO = AppProtoEnums.APP_OP_RECORD_AUDIO;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_PLAY_AUDIO = 28;
+    public static final int OP_PLAY_AUDIO = AppProtoEnums.APP_OP_PLAY_AUDIO;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_READ_CLIPBOARD = 29;
+    public static final int OP_READ_CLIPBOARD = AppProtoEnums.APP_OP_READ_CLIPBOARD;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_WRITE_CLIPBOARD = 30;
+    public static final int OP_WRITE_CLIPBOARD = AppProtoEnums.APP_OP_WRITE_CLIPBOARD;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_TAKE_MEDIA_BUTTONS = 31;
+    public static final int OP_TAKE_MEDIA_BUTTONS = AppProtoEnums.APP_OP_TAKE_MEDIA_BUTTONS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_TAKE_AUDIO_FOCUS = 32;
+    public static final int OP_TAKE_AUDIO_FOCUS = AppProtoEnums.APP_OP_TAKE_AUDIO_FOCUS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_AUDIO_MASTER_VOLUME = 33;
+    public static final int OP_AUDIO_MASTER_VOLUME = AppProtoEnums.APP_OP_AUDIO_MASTER_VOLUME;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_AUDIO_VOICE_VOLUME = 34;
+    public static final int OP_AUDIO_VOICE_VOLUME = AppProtoEnums.APP_OP_AUDIO_VOICE_VOLUME;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_AUDIO_RING_VOLUME = 35;
+    public static final int OP_AUDIO_RING_VOLUME = AppProtoEnums.APP_OP_AUDIO_RING_VOLUME;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_AUDIO_MEDIA_VOLUME = 36;
+    public static final int OP_AUDIO_MEDIA_VOLUME = AppProtoEnums.APP_OP_AUDIO_MEDIA_VOLUME;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_AUDIO_ALARM_VOLUME = 37;
+    public static final int OP_AUDIO_ALARM_VOLUME = AppProtoEnums.APP_OP_AUDIO_ALARM_VOLUME;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_AUDIO_NOTIFICATION_VOLUME = 38;
+    public static final int OP_AUDIO_NOTIFICATION_VOLUME =
+            AppProtoEnums.APP_OP_AUDIO_NOTIFICATION_VOLUME;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_AUDIO_BLUETOOTH_VOLUME = 39;
+    public static final int OP_AUDIO_BLUETOOTH_VOLUME =
+            AppProtoEnums.APP_OP_AUDIO_BLUETOOTH_VOLUME;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_WAKE_LOCK = 40;
+    public static final int OP_WAKE_LOCK = AppProtoEnums.APP_OP_WAKE_LOCK;
     /** @hide Continually monitoring location data. */
     @UnsupportedAppUsage
-    public static final int OP_MONITOR_LOCATION = 41;
+    public static final int OP_MONITOR_LOCATION =
+            AppProtoEnums.APP_OP_MONITOR_LOCATION;
     /** @hide Continually monitoring location data with a relatively high power request. */
     @UnsupportedAppUsage
-    public static final int OP_MONITOR_HIGH_POWER_LOCATION = 42;
+    public static final int OP_MONITOR_HIGH_POWER_LOCATION =
+            AppProtoEnums.APP_OP_MONITOR_HIGH_POWER_LOCATION;
     /** @hide Retrieve current usage stats via {@link UsageStatsManager}. */
     @UnsupportedAppUsage
-    public static final int OP_GET_USAGE_STATS = 43;
+    public static final int OP_GET_USAGE_STATS = AppProtoEnums.APP_OP_GET_USAGE_STATS;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_MUTE_MICROPHONE = 44;
+    public static final int OP_MUTE_MICROPHONE = AppProtoEnums.APP_OP_MUTE_MICROPHONE;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_TOAST_WINDOW = 45;
+    public static final int OP_TOAST_WINDOW = AppProtoEnums.APP_OP_TOAST_WINDOW;
     /** @hide Capture the device's display contents and/or audio */
     @UnsupportedAppUsage
-    public static final int OP_PROJECT_MEDIA = 46;
+    public static final int OP_PROJECT_MEDIA = AppProtoEnums.APP_OP_PROJECT_MEDIA;
     /**
      * Start (without additional user intervention) a VPN connection, as used by {@link
      * android.net.VpnService} along with as Platform VPN connections, as used by {@link
@@ -933,130 +939,142 @@
      * @hide
      */
     @UnsupportedAppUsage
-    public static final int OP_ACTIVATE_VPN = 47;
+    public static final int OP_ACTIVATE_VPN = AppProtoEnums.APP_OP_ACTIVATE_VPN;
     /** @hide Access the WallpaperManagerAPI to write wallpapers. */
     @UnsupportedAppUsage
-    public static final int OP_WRITE_WALLPAPER = 48;
+    public static final int OP_WRITE_WALLPAPER = AppProtoEnums.APP_OP_WRITE_WALLPAPER;
     /** @hide Received the assist structure from an app. */
     @UnsupportedAppUsage
-    public static final int OP_ASSIST_STRUCTURE = 49;
+    public static final int OP_ASSIST_STRUCTURE = AppProtoEnums.APP_OP_ASSIST_STRUCTURE;
     /** @hide Received a screenshot from assist. */
     @UnsupportedAppUsage
-    public static final int OP_ASSIST_SCREENSHOT = 50;
+    public static final int OP_ASSIST_SCREENSHOT = AppProtoEnums.APP_OP_ASSIST_SCREENSHOT;
     /** @hide Read the phone state. */
     @UnsupportedAppUsage
-    public static final int OP_READ_PHONE_STATE = 51;
+    public static final int OP_READ_PHONE_STATE = AppProtoEnums.APP_OP_READ_PHONE_STATE;
     /** @hide Add voicemail messages to the voicemail content provider. */
     @UnsupportedAppUsage
-    public static final int OP_ADD_VOICEMAIL = 52;
+    public static final int OP_ADD_VOICEMAIL = AppProtoEnums.APP_OP_ADD_VOICEMAIL;
     /** @hide Access APIs for SIP calling over VOIP or WiFi. */
     @UnsupportedAppUsage
-    public static final int OP_USE_SIP = 53;
+    public static final int OP_USE_SIP = AppProtoEnums.APP_OP_USE_SIP;
     /** @hide Intercept outgoing calls. */
     @UnsupportedAppUsage
-    public static final int OP_PROCESS_OUTGOING_CALLS = 54;
+    public static final int OP_PROCESS_OUTGOING_CALLS =
+            AppProtoEnums.APP_OP_PROCESS_OUTGOING_CALLS;
     /** @hide User the fingerprint API. */
     @UnsupportedAppUsage
-    public static final int OP_USE_FINGERPRINT = 55;
+    public static final int OP_USE_FINGERPRINT = AppProtoEnums.APP_OP_USE_FINGERPRINT;
     /** @hide Access to body sensors such as heart rate, etc. */
     @UnsupportedAppUsage
-    public static final int OP_BODY_SENSORS = 56;
+    public static final int OP_BODY_SENSORS = AppProtoEnums.APP_OP_BODY_SENSORS;
     /** @hide Read previously received cell broadcast messages. */
     @UnsupportedAppUsage
-    public static final int OP_READ_CELL_BROADCASTS = 57;
+    public static final int OP_READ_CELL_BROADCASTS = AppProtoEnums.APP_OP_READ_CELL_BROADCASTS;
     /** @hide Inject mock location into the system. */
     @UnsupportedAppUsage
-    public static final int OP_MOCK_LOCATION = 58;
+    public static final int OP_MOCK_LOCATION = AppProtoEnums.APP_OP_MOCK_LOCATION;
     /** @hide Read external storage. */
     @UnsupportedAppUsage
-    public static final int OP_READ_EXTERNAL_STORAGE = 59;
+    public static final int OP_READ_EXTERNAL_STORAGE = AppProtoEnums.APP_OP_READ_EXTERNAL_STORAGE;
     /** @hide Write external storage. */
     @UnsupportedAppUsage
-    public static final int OP_WRITE_EXTERNAL_STORAGE = 60;
+    public static final int OP_WRITE_EXTERNAL_STORAGE =
+            AppProtoEnums.APP_OP_WRITE_EXTERNAL_STORAGE;
     /** @hide Turned on the screen. */
     @UnsupportedAppUsage
-    public static final int OP_TURN_SCREEN_ON = 61;
+    public static final int OP_TURN_SCREEN_ON = AppProtoEnums.APP_OP_TURN_SCREEN_ON;
     /** @hide Get device accounts. */
     @UnsupportedAppUsage
-    public static final int OP_GET_ACCOUNTS = 62;
+    public static final int OP_GET_ACCOUNTS = AppProtoEnums.APP_OP_GET_ACCOUNTS;
     /** @hide Control whether an application is allowed to run in the background. */
     @UnsupportedAppUsage
-    public static final int OP_RUN_IN_BACKGROUND = 63;
+    public static final int OP_RUN_IN_BACKGROUND =
+            AppProtoEnums.APP_OP_RUN_ANY_IN_BACKGROUND;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_AUDIO_ACCESSIBILITY_VOLUME = 64;
+    public static final int OP_AUDIO_ACCESSIBILITY_VOLUME =
+            AppProtoEnums.APP_OP_AUDIO_ACCESSIBILITY_VOLUME;
     /** @hide Read the phone number. */
     @UnsupportedAppUsage
-    public static final int OP_READ_PHONE_NUMBERS = 65;
+    public static final int OP_READ_PHONE_NUMBERS = AppProtoEnums.APP_OP_READ_PHONE_NUMBERS;
     /** @hide Request package installs through package installer */
     @UnsupportedAppUsage
-    public static final int OP_REQUEST_INSTALL_PACKAGES = 66;
+    public static final int OP_REQUEST_INSTALL_PACKAGES =
+            AppProtoEnums.APP_OP_REQUEST_INSTALL_PACKAGES;
     /** @hide Enter picture-in-picture. */
     @UnsupportedAppUsage
-    public static final int OP_PICTURE_IN_PICTURE = 67;
+    public static final int OP_PICTURE_IN_PICTURE = AppProtoEnums.APP_OP_PICTURE_IN_PICTURE;
     /** @hide Instant app start foreground service. */
     @UnsupportedAppUsage
-    public static final int OP_INSTANT_APP_START_FOREGROUND = 68;
+    public static final int OP_INSTANT_APP_START_FOREGROUND =
+            AppProtoEnums.APP_OP_INSTANT_APP_START_FOREGROUND;
     /** @hide Answer incoming phone calls */
     @UnsupportedAppUsage
-    public static final int OP_ANSWER_PHONE_CALLS = 69;
+    public static final int OP_ANSWER_PHONE_CALLS = AppProtoEnums.APP_OP_ANSWER_PHONE_CALLS;
     /** @hide Run jobs when in background */
     @UnsupportedAppUsage
-    public static final int OP_RUN_ANY_IN_BACKGROUND = 70;
+    public static final int OP_RUN_ANY_IN_BACKGROUND = AppProtoEnums.APP_OP_RUN_ANY_IN_BACKGROUND;
     /** @hide Change Wi-Fi connectivity state */
     @UnsupportedAppUsage
-    public static final int OP_CHANGE_WIFI_STATE = 71;
+    public static final int OP_CHANGE_WIFI_STATE = AppProtoEnums.APP_OP_CHANGE_WIFI_STATE;
     /** @hide Request package deletion through package installer */
     @UnsupportedAppUsage
-    public static final int OP_REQUEST_DELETE_PACKAGES = 72;
+    public static final int OP_REQUEST_DELETE_PACKAGES =
+            AppProtoEnums.APP_OP_REQUEST_DELETE_PACKAGES;
     /** @hide Bind an accessibility service. */
     @UnsupportedAppUsage
-    public static final int OP_BIND_ACCESSIBILITY_SERVICE = 73;
+    public static final int OP_BIND_ACCESSIBILITY_SERVICE =
+            AppProtoEnums.APP_OP_BIND_ACCESSIBILITY_SERVICE;
     /** @hide Continue handover of a call from another app */
     @UnsupportedAppUsage
-    public static final int OP_ACCEPT_HANDOVER = 74;
+    public static final int OP_ACCEPT_HANDOVER = AppProtoEnums.APP_OP_ACCEPT_HANDOVER;
     /** @hide Create and Manage IPsec Tunnels */
     @UnsupportedAppUsage
-    public static final int OP_MANAGE_IPSEC_TUNNELS = 75;
+    public static final int OP_MANAGE_IPSEC_TUNNELS = AppProtoEnums.APP_OP_MANAGE_IPSEC_TUNNELS;
     /** @hide Any app start foreground service. */
     @UnsupportedAppUsage
     @TestApi
-    public static final int OP_START_FOREGROUND = 76;
+    public static final int OP_START_FOREGROUND = AppProtoEnums.APP_OP_START_FOREGROUND;
     /** @hide */
     @UnsupportedAppUsage
-    public static final int OP_BLUETOOTH_SCAN = 77;
+    public static final int OP_BLUETOOTH_SCAN = AppProtoEnums.APP_OP_BLUETOOTH_SCAN;
     /** @hide Use the BiometricPrompt/BiometricManager APIs. */
-    public static final int OP_USE_BIOMETRIC = 78;
+    public static final int OP_USE_BIOMETRIC = AppProtoEnums.APP_OP_USE_BIOMETRIC;
     /** @hide Physical activity recognition. */
-    public static final int OP_ACTIVITY_RECOGNITION = 79;
+    public static final int OP_ACTIVITY_RECOGNITION = AppProtoEnums.APP_OP_ACTIVITY_RECOGNITION;
     /** @hide Financial app sms read. */
-    public static final int OP_SMS_FINANCIAL_TRANSACTIONS = 80;
+    public static final int OP_SMS_FINANCIAL_TRANSACTIONS =
+            AppProtoEnums.APP_OP_SMS_FINANCIAL_TRANSACTIONS;
     /** @hide Read media of audio type. */
-    public static final int OP_READ_MEDIA_AUDIO = 81;
+    public static final int OP_READ_MEDIA_AUDIO = AppProtoEnums.APP_OP_READ_MEDIA_AUDIO;
     /** @hide Write media of audio type. */
-    public static final int OP_WRITE_MEDIA_AUDIO = 82;
+    public static final int OP_WRITE_MEDIA_AUDIO = AppProtoEnums.APP_OP_WRITE_MEDIA_AUDIO;
     /** @hide Read media of video type. */
-    public static final int OP_READ_MEDIA_VIDEO = 83;
+    public static final int OP_READ_MEDIA_VIDEO = AppProtoEnums.APP_OP_READ_MEDIA_VIDEO;
     /** @hide Write media of video type. */
-    public static final int OP_WRITE_MEDIA_VIDEO = 84;
+    public static final int OP_WRITE_MEDIA_VIDEO = AppProtoEnums.APP_OP_WRITE_MEDIA_VIDEO;
     /** @hide Read media of image type. */
-    public static final int OP_READ_MEDIA_IMAGES = 85;
+    public static final int OP_READ_MEDIA_IMAGES = AppProtoEnums.APP_OP_READ_MEDIA_IMAGES;
     /** @hide Write media of image type. */
-    public static final int OP_WRITE_MEDIA_IMAGES = 86;
+    public static final int OP_WRITE_MEDIA_IMAGES = AppProtoEnums.APP_OP_WRITE_MEDIA_IMAGES;
     /** @hide Has a legacy (non-isolated) view of storage. */
-    public static final int OP_LEGACY_STORAGE = 87;
+    public static final int OP_LEGACY_STORAGE = AppProtoEnums.APP_OP_LEGACY_STORAGE;
     /** @hide Accessing accessibility features */
-    public static final int OP_ACCESS_ACCESSIBILITY = 88;
+    public static final int OP_ACCESS_ACCESSIBILITY = AppProtoEnums.APP_OP_ACCESS_ACCESSIBILITY;
     /** @hide Read the device identifiers (IMEI / MEID, IMSI, SIM / Build serial) */
-    public static final int OP_READ_DEVICE_IDENTIFIERS = 89;
+    public static final int OP_READ_DEVICE_IDENTIFIERS =
+            AppProtoEnums.APP_OP_READ_DEVICE_IDENTIFIERS;
     /** @hide Read location metadata from media */
-    public static final int OP_ACCESS_MEDIA_LOCATION = 90;
+    public static final int OP_ACCESS_MEDIA_LOCATION = AppProtoEnums.APP_OP_ACCESS_MEDIA_LOCATION;
     /** @hide Query all apps on device, regardless of declarations in the calling app manifest */
-    public static final int OP_QUERY_ALL_PACKAGES = 91;
+    public static final int OP_QUERY_ALL_PACKAGES = AppProtoEnums.APP_OP_QUERY_ALL_PACKAGES;
     /** @hide Access all external storage */
-    public static final int OP_MANAGE_EXTERNAL_STORAGE = 92;
+    public static final int OP_MANAGE_EXTERNAL_STORAGE =
+            AppProtoEnums.APP_OP_MANAGE_EXTERNAL_STORAGE;
     /** @hide Communicate cross-profile within the same profile group. */
-    public static final int OP_INTERACT_ACROSS_PROFILES = 93;
+    public static final int OP_INTERACT_ACROSS_PROFILES =
+            AppProtoEnums.APP_OP_INTERACT_ACROSS_PROFILES;
     /**
      * Start (without additional user intervention) a Platform VPN connection, as used by {@link
      * android.net.VpnManager}
@@ -1067,14 +1085,16 @@
      *
      * @hide
      */
-    public static final int OP_ACTIVATE_PLATFORM_VPN = 94;
+    public static final int OP_ACTIVATE_PLATFORM_VPN = AppProtoEnums.APP_OP_ACTIVATE_PLATFORM_VPN;
     /** @hide */
-    public static final int OP_LOADER_USAGE_STATS = 95;
-    /** @hide Access telephony call audio */
-    public static final int OP_ACCESS_CALL_AUDIO = 96;
+    public static final int OP_LOADER_USAGE_STATS = AppProtoEnums.APP_OP_LOADER_USAGE_STATS;
+
+    // App op deprecated/removed.
+    private static final int OP_DEPRECATED_1 = AppProtoEnums.APP_OP_DEPRECATED_1;
 
     /** @hide Auto-revoke app permissions if app is unused for an extended period */
-    public static final int OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED = 97;
+    public static final int OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED =
+            AppProtoEnums.APP_OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED;
 
     /**
      * Whether {@link #OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED} is allowed to be changed by
@@ -1082,7 +1102,8 @@
      *
      * @hide
      */
-    public static final int OP_AUTO_REVOKE_MANAGED_BY_INSTALLER = 98;
+    public static final int OP_AUTO_REVOKE_MANAGED_BY_INSTALLER =
+            AppProtoEnums.APP_OP_AUTO_REVOKE_MANAGED_BY_INSTALLER;
 
     /** @hide */
     @UnsupportedAppUsage
@@ -1376,9 +1397,6 @@
     @SystemApi
     public static final String OPSTR_MANAGE_EXTERNAL_STORAGE =
             "android:manage_external_storage";
-    /** @hide Access telephony call audio */
-    @SystemApi
-    public static final String OPSTR_ACCESS_CALL_AUDIO = "android:access_call_audio";
 
     /** @hide Auto-revoke app permissions if app is unused for an extended period */
     @SystemApi
@@ -1478,9 +1496,6 @@
             OP_MANAGE_EXTERNAL_STORAGE,
             OP_INTERACT_ACROSS_PROFILES,
             OP_LOADER_USAGE_STATS,
-            OP_ACCESS_CALL_AUDIO,
-            OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED,
-            OP_AUTO_REVOKE_MANAGED_BY_INSTALLER,
     };
 
     /**
@@ -1588,7 +1603,7 @@
             OP_INTERACT_ACROSS_PROFILES,        //INTERACT_ACROSS_PROFILES
             OP_ACTIVATE_PLATFORM_VPN,           // ACTIVATE_PLATFORM_VPN
             OP_LOADER_USAGE_STATS,              // LOADER_USAGE_STATS
-            OP_ACCESS_CALL_AUDIO,               // ACCESS_CALL_AUDIO
+            OP_DEPRECATED_1,                    // deprecated
             OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED, //AUTO_REVOKE_PERMISSIONS_IF_UNUSED
             OP_AUTO_REVOKE_MANAGED_BY_INSTALLER, //OP_AUTO_REVOKE_MANAGED_BY_INSTALLER
     };
@@ -1693,7 +1708,7 @@
             OPSTR_INTERACT_ACROSS_PROFILES,
             OPSTR_ACTIVATE_PLATFORM_VPN,
             OPSTR_LOADER_USAGE_STATS,
-            OPSTR_ACCESS_CALL_AUDIO,
+            "", // deprecated
             OPSTR_AUTO_REVOKE_PERMISSIONS_IF_UNUSED,
             OPSTR_AUTO_REVOKE_MANAGED_BY_INSTALLER,
     };
@@ -1799,7 +1814,7 @@
             "INTERACT_ACROSS_PROFILES",
             "ACTIVATE_PLATFORM_VPN",
             "LOADER_USAGE_STATS",
-            "ACCESS_CALL_AUDIO",
+            "deprecated",
             "AUTO_REVOKE_PERMISSIONS_IF_UNUSED",
             "AUTO_REVOKE_MANAGED_BY_INSTALLER",
     };
@@ -1906,7 +1921,7 @@
             android.Manifest.permission.INTERACT_ACROSS_PROFILES,
             null, // no permission for OP_ACTIVATE_PLATFORM_VPN
             android.Manifest.permission.LOADER_USAGE_STATS,
-            Manifest.permission.ACCESS_CALL_AUDIO,
+            null, // deprecated operation
             null, // no permission for OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED
             null, // no permission for OP_AUTO_REVOKE_MANAGED_BY_INSTALLER
     };
@@ -2013,7 +2028,7 @@
             null, // INTERACT_ACROSS_PROFILES
             null, // ACTIVATE_PLATFORM_VPN
             null, // LOADER_USAGE_STATS
-            null, // ACCESS_CALL_AUDIO
+            null, // deprecated operation
             null, // AUTO_REVOKE_PERMISSIONS_IF_UNUSED
             null, // AUTO_REVOKE_MANAGED_BY_INSTALLER
     };
@@ -2119,7 +2134,7 @@
             null, // INTERACT_ACROSS_PROFILES
             null, // ACTIVATE_PLATFORM_VPN
             null, // LOADER_USAGE_STATS
-            null, // ACCESS_CALL_AUDIO
+            null, // deprecated operation
             null, // AUTO_REVOKE_PERMISSIONS_IF_UNUSED
             null, // AUTO_REVOKE_MANAGED_BY_INSTALLER
     };
@@ -2224,7 +2239,7 @@
             AppOpsManager.MODE_DEFAULT, // INTERACT_ACROSS_PROFILES
             AppOpsManager.MODE_IGNORED, // ACTIVATE_PLATFORM_VPN
             AppOpsManager.MODE_DEFAULT, // LOADER_USAGE_STATS
-            AppOpsManager.MODE_DEFAULT, // ACCESS_CALL_AUDIO
+            AppOpsManager.MODE_IGNORED, // deprecated operation
             AppOpsManager.MODE_DEFAULT, // OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED
             AppOpsManager.MODE_ALLOWED, // OP_AUTO_REVOKE_MANAGED_BY_INSTALLER
     };
@@ -2333,120 +2348,12 @@
             false, // INTERACT_ACROSS_PROFILES
             false, // ACTIVATE_PLATFORM_VPN
             false, // LOADER_USAGE_STATS
-            false, // ACCESS_CALL_AUDIO
+            false, // deprecated operation
             false, // AUTO_REVOKE_PERMISSIONS_IF_UNUSED
             false, // AUTO_REVOKE_MANAGED_BY_INSTALLER
     };
 
     /**
-     * This maps each operation to its statsd logging code.
-     */
-    private static int[] sOpToLoggingId = new int[]{
-            AppProtoEnums.APP_OP_COARSE_LOCATION, // OP_COARSE_LOCATION
-            AppProtoEnums.APP_OP_FINE_LOCATION, // OP_FINE_LOCATION
-            AppProtoEnums.APP_OP_GPS, // OP_ID__GPS
-            AppProtoEnums.APP_OP_VIBRATE, // OP_VIBRATE
-            AppProtoEnums.APP_OP_READ_CONTACTS, // OP_READ_CONTACTS
-            AppProtoEnums.APP_OP_WRITE_CONTACTS, // OP_WRITE_CONTACTS
-            AppProtoEnums.APP_OP_READ_CALL_LOG, // OP_READ_CALL_LOG
-            AppProtoEnums.APP_OP_WRITE_CALL_LOG, // OP_WRITE_CALL_LOG
-            AppProtoEnums.APP_OP_READ_CALENDAR, // OP_READ_CALENDAR
-            AppProtoEnums.APP_OP_WRITE_CALENDAR, // OP_WRITE_CALENDAR
-            AppProtoEnums.APP_OP_WIFI_SCAN, // OP_WIFI_SCAN
-            AppProtoEnums.APP_OP_POST_NOTIFICATION, // OP_POST_NOTIFICATION
-            AppProtoEnums.APP_OP_NEIGHBORING_CELLS, // OP_NEIGHBORING_CELLS
-            AppProtoEnums.APP_OP_CALL_PHONE, // OP_CALL_PHONE
-            AppProtoEnums.APP_OP_READ_SMS, // OP_READ_SMS
-            AppProtoEnums.APP_OP_WRITE_SMS, // OP_WRITE_SMS
-            AppProtoEnums.APP_OP_RECEIVE_SMS, // OP_RECEIVE_SMS
-            AppProtoEnums.APP_OP_RECEIVE_EMERGENCY_SMS, // OP_RECEIVE_EMERGENCY_SMS
-            AppProtoEnums.APP_OP_RECEIVE_MMS, // OP_RECEIVE_MMS
-            AppProtoEnums.APP_OP_RECEIVE_WAP_PUSH, // OP_RECEIVE_WAP_PUSH
-            AppProtoEnums.APP_OP_SEND_SMS, // OP_SEND_SMS
-            AppProtoEnums.APP_OP_READ_ICC_SMS, // OP_READ_ICC_SMS
-            AppProtoEnums.APP_OP_WRITE_ICC_SMS, // OP_WRITE_ICC_SMS
-            AppProtoEnums.APP_OP_WRITE_SETTINGS, // OP_WRITE_SETTINGS
-            AppProtoEnums.APP_OP_SYSTEM_ALERT_WINDOW, // OP_SYSTEM_ALERT_WINDOW
-            AppProtoEnums.APP_OP_ACCESS_NOTIFICATIONS, // OP_ACCESS_NOTIFICATIONS
-            AppProtoEnums.APP_OP_CAMERA, // OP_CAMERA
-            AppProtoEnums.APP_OP_RECORD_AUDIO, // OP_RECORD_AUDIO
-            AppProtoEnums.APP_OP_PLAY_AUDIO, // OP_PLAY_AUDIO
-            AppProtoEnums.APP_OP_READ_CLIPBOARD, // OP_READ_CLIPBOARD
-            AppProtoEnums.APP_OP_WRITE_CLIPBOARD, // OP_WRITE_CLIPBOARD
-            AppProtoEnums.APP_OP_TAKE_MEDIA_BUTTONS, // OP_TAKE_MEDIA_BUTTONS
-            AppProtoEnums.APP_OP_TAKE_AUDIO_FOCUS, // OP_TAKE_AUDIO_FOCUS
-            AppProtoEnums.APP_OP_AUDIO_MASTER_VOLUME, // OP_AUDIO_MASTER_VOLUME
-            AppProtoEnums.APP_OP_AUDIO_VOICE_VOLUME, // OP_AUDIO_VOICE_VOLUME
-            AppProtoEnums.APP_OP_AUDIO_RING_VOLUME, // OP_AUDIO_RING_VOLUME
-            AppProtoEnums.APP_OP_AUDIO_MEDIA_VOLUME, // OP_AUDIO_MEDIA_VOLUME
-            AppProtoEnums.APP_OP_AUDIO_ALARM_VOLUME, // OP_AUDIO_ALARM_VOLUME
-            AppProtoEnums.APP_OP_AUDIO_NOTIFICATION_VOLUME, // OP_AUDIO_NOTIFICATION_VOLUME
-            AppProtoEnums.APP_OP_AUDIO_BLUETOOTH_VOLUME, // OP_AUDIO_BLUETOOTH_VOLUME
-            AppProtoEnums.APP_OP_WAKE_LOCK, // OP_WAKE_LOCK
-            AppProtoEnums.APP_OP_MONITOR_LOCATION, // OP_MONITOR_LOCATION
-            AppProtoEnums.APP_OP_MONITOR_HIGH_POWER_LOCATION, // OP_MONITOR_HIGH_POWER_LOCATION
-            AppProtoEnums.APP_OP_GET_USAGE_STATS, // OP_GET_USAGE_STATS
-            AppProtoEnums.APP_OP_MUTE_MICROPHONE, //OP_MUTE_MICROPHONE
-            AppProtoEnums.APP_OP_TOAST_WINDOW, // OP_TOAST_WINDOW
-            AppProtoEnums.APP_OP_PROJECT_MEDIA, // OP_PROJECT_MEDIA
-            AppProtoEnums.APP_OP_ACTIVATE_VPN, // OP_ACTIVATE_VPN
-            AppProtoEnums.APP_OP_WRITE_WALLPAPER, // OP_WRITE_WALLPAPER
-            AppProtoEnums.APP_OP_ASSIST_STRUCTURE, // OP_ASSIST_STRUCTURE
-            AppProtoEnums.APP_OP_ASSIST_SCREENSHOT, // OP_ASSIST_SCREENSHOT
-            AppProtoEnums.APP_OP_READ_PHONE_STATE, // OP_READ_PHONE_STATE
-            AppProtoEnums.APP_OP_ADD_VOICEMAIL, // OP_ADD_VOICEMAIL
-            AppProtoEnums.APP_OP_USE_SIP, // OP_USE_SIP
-            AppProtoEnums.APP_OP_PROCESS_OUTGOING_CALLS, // OP_PROCESS_OUTGOING_CALLS
-            AppProtoEnums.APP_OP_USE_FINGERPRINT, // OP_USE_FINGERPRINT
-            AppProtoEnums.APP_OP_BODY_SENSORS, // OP_BODY_SENSORS
-            AppProtoEnums.APP_OP_READ_CELL_BROADCASTS, // OP_READ_CELL_BROADCASTS
-            AppProtoEnums.APP_OP_MOCK_LOCATION, // OP_MOCK_LOCATION
-            AppProtoEnums.APP_OP_READ_EXTERNAL_STORAGE, // OP_READ_EXTERNAL_STORAGE
-            AppProtoEnums.APP_OP_WRITE_EXTERNAL_STORAGE, // OP_WRITE_EXTERNAL_STORAGE
-            AppProtoEnums.APP_OP_TURN_SCREEN_ON, // OP_TURN_SCREEN_ON
-            AppProtoEnums.APP_OP_GET_ACCOUNTS, // OP_GET_ACCOUNTS
-            AppProtoEnums.APP_OP_RUN_IN_BACKGROUND, // OP_RUN_IN_BACKGROUND
-            AppProtoEnums.APP_OP_AUDIO_ACCESSIBILITY_VOLUME, // OP_AUDIO_ACCESSIBILITY_VOLUME
-            AppProtoEnums.APP_OP_READ_PHONE_NUMBERS, // OP_READ_PHONE_NUMBERS
-            AppProtoEnums.APP_OP_REQUEST_INSTALL_PACKAGES, // OP_REQUEST_INSTALL_PACKAGES
-            AppProtoEnums.APP_OP_PICTURE_IN_PICTURE, // OP_PICTURE_IN_PICTURE
-            AppProtoEnums.APP_OP_INSTANT_APP_START_FOREGROUND, // OP_INSTANT_APP_START_FOREGROUND
-            AppProtoEnums.APP_OP_ANSWER_PHONE_CALLS, // OP_ANSWER_PHONE_CALLS
-            AppProtoEnums.APP_OP_RUN_ANY_IN_BACKGROUND, // OP_RUN_ANY_IN_BACKGROUND
-            AppProtoEnums.APP_OP_CHANGE_WIFI_STATE, // OP_CHANGE_WIFI_STATE
-            AppProtoEnums.APP_OP_REQUEST_DELETE_PACKAGES, // OP_REQUEST_DELETE_PACKAGES
-            AppProtoEnums.APP_OP_BIND_ACCESSIBILITY_SERVICE, // OP_BIND_ACCESSIBILITY_SERVICE
-            AppProtoEnums.APP_OP_ACCEPT_HANDOVER, // OP_ACCEPT_HANDOVER
-            AppProtoEnums.APP_OP_MANAGE_IPSEC_TUNNELS, // OP_MANAGE_IPSEC_TUNNELS
-            AppProtoEnums.APP_OP_START_FOREGROUND, // OP_START_FOREGROUND
-            AppProtoEnums.APP_OP_BLUETOOTH_SCAN, // OP_BLUETOOTH_SCAN
-            AppProtoEnums.APP_OP_USE_BIOMETRIC, // OP_USE_BIOMETRIC
-            AppProtoEnums.APP_OP_ACTIVITY_RECOGNITION, // OP_ACTIVITY_RECOGNITION
-            AppProtoEnums.APP_OP_SMS_FINANCIAL_TRANSACTIONS, // OP_SMS_FINANCIAL_TRANSACTIONS
-            AppProtoEnums.APP_OP_READ_MEDIA_AUDIO, // OP_READ_MEDIA_AUDIO
-            AppProtoEnums.APP_OP_WRITE_MEDIA_AUDIO, // OP_WRITE_MEDIA_AUDIO
-            AppProtoEnums.APP_OP_READ_MEDIA_VIDEO, // OP_READ_MEDIA_VIDEO
-            AppProtoEnums.APP_OP_WRITE_MEDIA_VIDEO, // OP_WRITE_MEDIA_VIDEO
-            AppProtoEnums.APP_OP_READ_MEDIA_IMAGES, // OP_READ_MEDIA_IMAGES
-            AppProtoEnums.APP_OP_WRITE_MEDIA_IMAGES, // OP_WRITE_MEDIA_IMAGES
-            AppProtoEnums.APP_OP_LEGACY_STORAGE, // OP_LEGACY_STORAGE
-            AppProtoEnums.APP_OP_ACCESS_ACCESSIBILITY, // OP_ACCESS_ACCESSIBILITY
-            AppProtoEnums.APP_OP_READ_DEVICE_IDENTIFIERS, // OP_READ_DEVICE_IDENTIFIERS
-            AppProtoEnums.APP_OP_ACCESS_MEDIA_LOCATION, // OP_ACCESS_MEDIA_LOCATION
-            AppProtoEnums.APP_OP_QUERY_ALL_PACKAGES, // OP_QUERY_ALL_PACKAGES
-            AppProtoEnums.APP_OP_MANAGE_EXTERNAL_STORAGE, // OP_MANAGE_EXTERNAL_STORAGE
-            AppProtoEnums.APP_OP_INTERACT_ACROSS_PROFILES, // OP_INTERACT_ACROSS_PROFILES
-            AppProtoEnums.APP_OP_ACTIVATE_PLATFORM_VPN, // OP_ACTIVATE_PLATFORM_VPN
-            AppProtoEnums.APP_OP_LOADER_USAGE_STATS, // OP_LOADER_USAGE_STATS
-            AppProtoEnums.APP_OP_ACCESS_CALL_AUDIO, // OP_ACCESS_CALL_AUDIO
-            AppProtoEnums.APP_OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED,
-            // OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED
-            AppProtoEnums.APP_OP_AUTO_REVOKE_MANAGED_BY_INSTALLER 
-            //OP_AUTO_REVOKE_MANAGED_BY_INSTALLER
-    };
-
-
-    /**
      * Mapping from an app op name to the app op code.
      */
     private static HashMap<String, Integer> sOpStrToOp = new HashMap<>();
@@ -2487,10 +2394,6 @@
             throw new IllegalStateException("sOpToString length " + sOpToString.length
                     + " should be " + _NUM_OP);
         }
-        if (sOpToLoggingId.length != _NUM_OP) {
-            throw new IllegalStateException("sOpToLoggingId length " + sOpToLoggingId.length
-                    + " should be " + _NUM_OP);
-        }
         if (sOpNames.length != _NUM_OP) {
             throw new IllegalStateException("sOpNames length " + sOpNames.length
                     + " should be " + _NUM_OP);
@@ -2575,15 +2478,6 @@
     }
 
     /**
-     * Retrieve a logging id for the operation.
-     *
-     * @hide
-     */
-    public static int opToLoggingId(int op) {
-        return sOpToLoggingId[op];
-    }
-
-    /**
      * @hide
      */
     public static int strDebugOpToOp(String op) {
@@ -6037,11 +5931,6 @@
             return mOp;
         }
 
-        /** @hide */
-        public int getLoggingOpCode() {
-            return AppOpsManager.opToLoggingId(mOp);
-        }
-
         /**
          * Gets the number times the op was accessed (performed) in the foreground.
          *
@@ -8552,7 +8441,9 @@
 
     /**
      * Pulls current AppOps access report and picks package and op to watch for next access report
-     *
+     * Returns null if no reports were collected since last call. There is no guarantee of report
+     * collection, hence this method should be called periodically even if no report was collected
+     * to pick different package and op to watch.
      * @hide
      */
     @SystemApi
diff --git a/core/java/android/app/ApplicationExitInfo.java b/core/java/android/app/ApplicationExitInfo.java
index 5df3257..0ecc003 100644
--- a/core/java/android/app/ApplicationExitInfo.java
+++ b/core/java/android/app/ApplicationExitInfo.java
@@ -23,7 +23,9 @@
 import android.app.ActivityManager.RunningAppProcessInfo.Importance;
 import android.icu.text.SimpleDateFormat;
 import android.os.Parcel;
+import android.os.ParcelFileDescriptor;
 import android.os.Parcelable;
+import android.os.RemoteException;
 import android.os.UserHandle;
 import android.text.TextUtils;
 import android.util.DebugUtils;
@@ -31,12 +33,17 @@
 import android.util.proto.ProtoOutputStream;
 import android.util.proto.WireTypeMismatchException;
 
+import com.android.internal.util.ArrayUtils;
+
+import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.PrintWriter;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.Date;
 import java.util.Objects;
+import java.util.zip.GZIPInputStream;
 
 /**
  * Describes the information of an application process's death.
@@ -321,85 +328,105 @@
     // be categorized in {@link #REASON_OTHER}, with subreason code starting from 1000.
 
     /**
-     * @see {@link #getPid}
+     * @see #getPid
      */
     private int mPid;
 
     /**
-     * @see {@link #getRealUid}
+     * @see #getRealUid
      */
     private int mRealUid;
 
     /**
-     * @see {@link #getPackageUid}
+     * @see #getPackageUid
      */
     private int mPackageUid;
 
     /**
-     * @see {@link #getDefiningUid}
+     * @see #getDefiningUid
      */
     private int mDefiningUid;
 
     /**
-     * @see {@link #getProcessName}
+     * @see #getProcessName
      */
     private String mProcessName;
 
     /**
-     * @see {@link #getReason}
+     * @see #getReason
      */
     private @Reason int mReason;
 
     /**
-     * @see {@link #getStatus}
+     * @see #getStatus
      */
     private int mStatus;
 
     /**
-     * @see {@link #getImportance}
+     * @see #getImportance
      */
     private @Importance int mImportance;
 
     /**
-     * @see {@link #getPss}
+     * @see #getPss
      */
     private long mPss;
 
     /**
-     * @see {@link #getRss}
+     * @see #getRss
      */
     private long mRss;
 
     /**
-     * @see {@link #getTimestamp}
+     * @see #getTimestamp
      */
     private @CurrentTimeMillisLong long mTimestamp;
 
     /**
-     * @see {@link #getDescription}
+     * @see #getDescription
      */
     private @Nullable String mDescription;
 
     /**
-     * @see {@link #getSubReason}
+     * @see #getSubReason
      */
     private @SubReason int mSubReason;
 
     /**
-     * @see {@link #getConnectionGroup}
+     * @see #getConnectionGroup
      */
     private int mConnectionGroup;
 
     /**
-     * @see {@link #getPackageName}
+     * @see #getPackageName
      */
     private String mPackageName;
 
     /**
-     * @see {@link #getPackageList}
+     * @see #getPackageList
      */
     private String[] mPackageList;
 
+    /**
+     * @see #getProcessStateSummary
+     */
+    private byte[] mState;
+
+    /**
+     * The file to the trace file in the storage;
+     *
+     * for system internal use only, will not retain across processes.
+     *
+     * @see #getTraceInputStream
+     */
+    private File mTraceFile;
+
+    /**
+     * The Binder interface to retrieve the file descriptor to
+     * the trace file from the system.
+     */
+    private IAppTraceRetriever mAppTraceRetriever;
+
     /** @hide */
     @IntDef(prefix = { "REASON_" }, value = {
         REASON_UNKNOWN,
@@ -472,9 +499,11 @@
 
     /**
      * Return the defining kernel user identifier, maybe different from {@link #getRealUid} and
-     * {@link #getPackageUid}, if an external service was bound with the flag
-     * {@link android.content.Context#BIND_EXTERNAL_SERVICE} - in this case, this field here
-     * will be the kernel user identifier of the external service provider.
+     * {@link #getPackageUid}, if an external service has the
+     * {@link android.R.styleable#AndroidManifestService_useAppZygote android:useAppZygote} set
+     * to <code>true<code> and was bound with the flag
+     * {@link android.content.Context#BIND_EXTERNAL_SERVICE} - in this case, this field here will
+     * be the kernel user identifier of the external service provider.
      */
     public int getDefiningUid() {
         return mDefiningUid;
@@ -557,6 +586,54 @@
     }
 
     /**
+     * Return the state data set by calling {@link ActivityManager#setProcessStateSummary}
+     * from the process before its death.
+     *
+     * @return The process-customized data
+     * @see ActivityManager#setProcessStateSummary(byte[])
+     */
+    public @Nullable byte[] getProcessStateSummary() {
+        return mState;
+    }
+
+    /**
+     * Return the InputStream to the traces that was taken by the system
+     * prior to the death of the process; typically it'll be available when
+     * the reason is {@link #REASON_ANR}, though if the process gets an ANR
+     * but recovers, and dies for another reason later, this trace will be included
+     * in the record of {@link ApplicationExitInfo} still.
+     *
+     * @return The input stream to the traces that was taken by the system
+     *         prior to the death of the process.
+     */
+    public @Nullable InputStream getTraceInputStream() throws IOException {
+        if (mAppTraceRetriever == null) {
+            return null;
+        }
+        try {
+            final ParcelFileDescriptor fd = mAppTraceRetriever.getTraceFileDescriptor(
+                    mPackageName, mPackageUid, mPid);
+            if (fd == null) {
+                return null;
+            }
+            return new GZIPInputStream(new ParcelFileDescriptor.AutoCloseInputStream(fd));
+        } catch (RemoteException e) {
+            return null;
+        }
+    }
+
+    /**
+     * Similar to {@link #getTraceInputStream} but return the File object.
+     *
+     * For internal use only.
+     *
+     * @hide
+     */
+    public @Nullable File getTraceFile() {
+        return mTraceFile;
+    }
+
+    /**
      * A subtype reason in conjunction with {@link #mReason}.
      *
      * For internal use only.
@@ -569,7 +646,7 @@
 
     /**
      * The connection group this process belongs to, if there is any.
-     * @see {@link android.content.Context#updateServiceGroup}.
+     * @see android.content.Context#updateServiceGroup
      *
      * For internal use only.
      *
@@ -582,8 +659,6 @@
     /**
      * Name of first package running in this process;
      *
-     * For system internal use only, will not retain across processes.
-     *
      * @hide
      */
     public String getPackageName() {
@@ -602,7 +677,7 @@
     }
 
     /**
-     * @see {@link #getPid}
+     * @see #getPid
      *
      * @hide
      */
@@ -611,7 +686,7 @@
     }
 
     /**
-     * @see {@link #getRealUid}
+     * @see #getRealUid
      *
      * @hide
      */
@@ -620,7 +695,7 @@
     }
 
     /**
-     * @see {@link #getPackageUid}
+     * @see #getPackageUid
      *
      * @hide
      */
@@ -629,7 +704,7 @@
     }
 
     /**
-     * @see {@link #getDefiningUid}
+     * @see #getDefiningUid
      *
      * @hide
      */
@@ -638,7 +713,7 @@
     }
 
     /**
-     * @see {@link #getProcessName}
+     * @see #getProcessName
      *
      * @hide
      */
@@ -647,7 +722,7 @@
     }
 
     /**
-     * @see {@link #getReason}
+     * @see #getReason
      *
      * @hide
      */
@@ -656,7 +731,7 @@
     }
 
     /**
-     * @see {@link #getStatus}
+     * @see #getStatus
      *
      * @hide
      */
@@ -665,7 +740,7 @@
     }
 
     /**
-     * @see {@link #getImportance}
+     * @see #getImportance
      *
      * @hide
      */
@@ -674,7 +749,7 @@
     }
 
     /**
-     * @see {@link #getPss}
+     * @see #getPss
      *
      * @hide
      */
@@ -683,7 +758,7 @@
     }
 
     /**
-     * @see {@link #getRss}
+     * @see #getRss
      *
      * @hide
      */
@@ -692,7 +767,7 @@
     }
 
     /**
-     * @see {@link #getTimestamp}
+     * @see #getTimestamp
      *
      * @hide
      */
@@ -701,7 +776,7 @@
     }
 
     /**
-     * @see {@link #getDescription}
+     * @see #getDescription
      *
      * @hide
      */
@@ -710,7 +785,7 @@
     }
 
     /**
-     * @see {@link #getSubReason}
+     * @see #getSubReason
      *
      * @hide
      */
@@ -719,7 +794,7 @@
     }
 
     /**
-     * @see {@link #getConnectionGroup}
+     * @see #getConnectionGroup
      *
      * @hide
      */
@@ -728,7 +803,7 @@
     }
 
     /**
-     * @see {@link #getPackageName}
+     * @see #getPackageName
      *
      * @hide
      */
@@ -737,7 +812,7 @@
     }
 
     /**
-     * @see {@link #getPackageList}
+     * @see #getPackageList
      *
      * @hide
      */
@@ -745,6 +820,33 @@
         mPackageList = packageList;
     }
 
+    /**
+     * @see #getProcessStateSummary
+     *
+     * @hide
+     */
+    public void setProcessStateSummary(final byte[] state) {
+        mState = state;
+    }
+
+    /**
+     * @see #getTraceFile
+     *
+     * @hide
+     */
+    public void setTraceFile(final File traceFile) {
+        mTraceFile = traceFile;
+    }
+
+    /**
+     * @see #mAppTraceRetriever
+     *
+     * @hide
+     */
+    public void setAppTraceRetriever(final IAppTraceRetriever retriever) {
+        mAppTraceRetriever = retriever;
+    }
+
     @Override
     public int describeContents() {
         return 0;
@@ -757,6 +859,7 @@
         dest.writeInt(mPackageUid);
         dest.writeInt(mDefiningUid);
         dest.writeString(mProcessName);
+        dest.writeString(mPackageName);
         dest.writeInt(mConnectionGroup);
         dest.writeInt(mReason);
         dest.writeInt(mSubReason);
@@ -766,6 +869,13 @@
         dest.writeLong(mRss);
         dest.writeLong(mTimestamp);
         dest.writeString(mDescription);
+        dest.writeByteArray(mState);
+        if (mAppTraceRetriever != null) {
+            dest.writeInt(1);
+            dest.writeStrongBinder(mAppTraceRetriever.asBinder());
+        } else {
+            dest.writeInt(0);
+        }
     }
 
     /** @hide */
@@ -779,6 +889,7 @@
         mPackageUid = other.mPackageUid;
         mDefiningUid = other.mDefiningUid;
         mProcessName = other.mProcessName;
+        mPackageName = other.mPackageName;
         mConnectionGroup = other.mConnectionGroup;
         mReason = other.mReason;
         mStatus = other.mStatus;
@@ -790,6 +901,9 @@
         mDescription = other.mDescription;
         mPackageName = other.mPackageName;
         mPackageList = other.mPackageList;
+        mState = other.mState;
+        mTraceFile = other.mTraceFile;
+        mAppTraceRetriever = other.mAppTraceRetriever;
     }
 
     private ApplicationExitInfo(@NonNull Parcel in) {
@@ -798,6 +912,7 @@
         mPackageUid = in.readInt();
         mDefiningUid = in.readInt();
         mProcessName = in.readString();
+        mPackageName = in.readString();
         mConnectionGroup = in.readInt();
         mReason = in.readInt();
         mSubReason = in.readInt();
@@ -807,6 +922,10 @@
         mRss = in.readLong();
         mTimestamp = in.readLong();
         mDescription = in.readString();
+        mState = in.createByteArray();
+        if (in.readInt() == 1) {
+            mAppTraceRetriever = IAppTraceRetriever.Stub.asInterface(in.readStrongBinder());
+        }
     }
 
     public @NonNull static final Creator<ApplicationExitInfo> CREATOR =
@@ -839,6 +958,9 @@
         pw.print(prefix + "  pss="); DebugUtils.printSizeValue(pw, mPss << 10); pw.println();
         pw.print(prefix + "  rss="); DebugUtils.printSizeValue(pw, mRss << 10); pw.println();
         pw.println(prefix + "  description=" + mDescription);
+        pw.println(prefix + "  state=" + (ArrayUtils.isEmpty(mState)
+                ? "empty" : Integer.toString(mState.length) + " bytes"));
+        pw.println(prefix + "  trace=" + mTraceFile);
     }
 
     @Override
@@ -859,6 +981,9 @@
         sb.append(" pss="); DebugUtils.sizeValueToString(mPss << 10, sb);
         sb.append(" rss="); DebugUtils.sizeValueToString(mRss << 10, sb);
         sb.append(" description=").append(mDescription);
+        sb.append(" state=").append(ArrayUtils.isEmpty(mState)
+                ? "empty" : Integer.toString(mState.length) + " bytes");
+        sb.append(" trace=").append(mTraceFile);
         return sb.toString();
     }
 
@@ -961,6 +1086,9 @@
         proto.write(ApplicationExitInfoProto.RSS, mRss);
         proto.write(ApplicationExitInfoProto.TIMESTAMP, mTimestamp);
         proto.write(ApplicationExitInfoProto.DESCRIPTION, mDescription);
+        proto.write(ApplicationExitInfoProto.STATE, mState);
+        proto.write(ApplicationExitInfoProto.TRACE_FILE,
+                mTraceFile == null ? null : mTraceFile.getAbsolutePath());
         proto.end(token);
     }
 
@@ -1019,6 +1147,15 @@
                 case (int) ApplicationExitInfoProto.DESCRIPTION:
                     mDescription = proto.readString(ApplicationExitInfoProto.DESCRIPTION);
                     break;
+                case (int) ApplicationExitInfoProto.STATE:
+                    mState = proto.readBytes(ApplicationExitInfoProto.STATE);
+                    break;
+                case (int) ApplicationExitInfoProto.TRACE_FILE:
+                    final String path = proto.readString(ApplicationExitInfoProto.TRACE_FILE);
+                    if (!TextUtils.isEmpty(path)) {
+                        mTraceFile = new File(path);
+                    }
+                    break;
             }
         }
         proto.end(token);
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 0b0a803..a1ec27b 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -3358,31 +3358,20 @@
         }
     }
 
+    @Override
     public void setMimeGroup(String mimeGroup, Set<String> mimeTypes) {
         try {
-            mPM.setMimeGroup(mContext.getPackageName(), mimeGroup,
-                    new ArrayList<String>(mimeTypes));
+            mPM.setMimeGroup(mContext.getPackageName(), mimeGroup, new ArrayList<>(mimeTypes));
         } catch (RemoteException e) {
             throw e.rethrowAsRuntimeException();
         }
     }
 
-    @Override
-    public void clearMimeGroup(String mimeGroup) {
-        try {
-            mPM.clearMimeGroup(mContext.getPackageName(), mimeGroup);
-        } catch (RemoteException e) {
-            throw e.rethrowAsRuntimeException();
-        }
-    }
-
+    @NonNull
     @Override
     public Set<String> getMimeGroup(String group) {
         try {
             List<String> mimeGroup = mPM.getMimeGroup(mContext.getPackageName(), group);
-            if (mimeGroup == null) {
-                return null;
-            }
             return new ArraySet<>(mimeGroup);
         } catch (RemoteException e) {
             throw e.rethrowAsRuntimeException();
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 9ccfe8d..d8757c3 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -1920,7 +1920,9 @@
         return SystemServiceRegistry.getSystemServiceName(serviceClass);
     }
 
-    private boolean isUiContext() {
+    /** @hide */
+    @Override
+    public boolean isUiContext() {
         return mIsSystemOrSystemUiContext || mIsUiContext || isSystemOrSystemUI();
     }
 
@@ -2414,8 +2416,7 @@
                 : CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO;
         final List<ResourcesLoader> loaders = mResources.getLoaders();
 
-        // TODO(b/128338354): Rename to createTokenResources
-        return mResourcesManager.createBaseActivityResources(mToken, resDir, splitResDirs,
+        return mResourcesManager.createBaseTokenResources(mToken, resDir, splitResDirs,
                 overlayDirs, libDirs, displayId, null /* overrideConfig */,
                 compatInfo, mClassLoader, loaders);
     }
@@ -2684,7 +2685,7 @@
 
         // Create the base resources for which all configuration contexts for this Activity
         // will be rebased upon.
-        context.setResources(resourcesManager.createBaseActivityResources(activityToken,
+        context.setResources(resourcesManager.createBaseTokenResources(activityToken,
                 packageInfo.getResDir(),
                 splitDirs,
                 packageInfo.getOverlayDirs(),
diff --git a/core/java/android/app/HomeVisibilityObserver.java b/core/java/android/app/HomeVisibilityObserver.java
index f3465f8..8422c6f 100644
--- a/core/java/android/app/HomeVisibilityObserver.java
+++ b/core/java/android/app/HomeVisibilityObserver.java
@@ -16,7 +16,6 @@
 
 package android.app;
 
-import android.annotation.SystemApi;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
@@ -28,9 +27,9 @@
  * An observer / callback to create and register by
  * {@link ActivityManager#registerHomeVisibilityObserver} so that it's triggered when
  * visibility of home page changes.
+ * TODO: b/144351078 expose as SystemApi
  * @hide
  */
-@SystemApi
 public abstract class HomeVisibilityObserver {
     private Context mContext;
     private ActivityManager mActivityManager;
diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl
index 6f0611e..833bfed 100644
--- a/core/java/android/app/IActivityManager.aidl
+++ b/core/java/android/app/IActivityManager.aidl
@@ -99,6 +99,7 @@
     void unregisterUidObserver(in IUidObserver observer);
     boolean isUidActive(int uid, String callingPackage);
     int getUidProcessState(int uid, in String callingPackage);
+    boolean isUidActiveOrForeground(int uid, String callingPackage);
     // =============== End of transactions used on native side as well ============================
 
     // Special low-level communication with activity manager.
@@ -143,9 +144,6 @@
     void attachApplication(in IApplicationThread app, long startSeq);
     List<ActivityManager.RunningTaskInfo> getTasks(int maxNum);
     @UnsupportedAppUsage
-    List<ActivityManager.RunningTaskInfo> getFilteredTasks(int maxNum, int ignoreActivityType,
-            int ignoreWindowingMode);
-    @UnsupportedAppUsage
     void moveTaskToFront(in IApplicationThread caller, in String callingPackage, int task,
             int flags, in Bundle options);
     @UnsupportedAppUsage
@@ -652,4 +650,27 @@
      */
     void setActivityLocusContext(in ComponentName activity, in LocusId locusId,
             in IBinder appToken);
+
+    /**
+     * Set custom state data for this process. It will be included in the record of
+     * {@link ApplicationExitInfo} on the death of the current calling process; the new process
+     * of the app can retrieve this state data by calling
+     * {@link ApplicationExitInfo#getProcessStateSummary} on the record returned by
+     * {@link #getHistoricalProcessExitReasons}.
+     *
+     * <p> This would be useful for the calling app to save its stateful data: if it's
+     * killed later for any reason, the new process of the app can know what the
+     * previous process of the app was doing. For instance, you could use this to encode
+     * the current level in a game, or a set of features/experiments that were enabled. Later you
+     * could analyze under what circumstances the app tends to crash or use too much memory.
+     * However, it's not suggested to rely on this to restore the applications previous UI state
+     * or so, it's only meant for analyzing application healthy status.</p>
+     *
+     * <p> System might decide to throttle the calls to this API; so call this API in a reasonable
+     * manner, excessive calls to this API could result a {@link java.lang.RuntimeException}.
+     * </p>
+     *
+     * @param state The customized state data
+     */
+    void setProcessStateSummary(in byte[] state);
 }
diff --git a/core/java/android/app/IActivityTaskManager.aidl b/core/java/android/app/IActivityTaskManager.aidl
index 7c89263..e476993 100644
--- a/core/java/android/app/IActivityTaskManager.aidl
+++ b/core/java/android/app/IActivityTaskManager.aidl
@@ -29,7 +29,6 @@
 import android.app.IRequestFinishCallback;
 import android.app.IServiceConnection;
 import android.app.IStopUserCallback;
-import android.app.ITaskOrganizerController;
 import android.app.ITaskStackListener;
 import android.app.IUiAutomationConnection;
 import android.app.IUidObserver;
@@ -69,9 +68,9 @@
 import android.os.WorkSource;
 import android.service.voice.IVoiceInteractionSession;
 import android.view.IRecentsAnimationRunner;
-import android.view.ITaskOrganizer;
 import android.view.RemoteAnimationDefinition;
 import android.view.RemoteAnimationAdapter;
+import android.window.IWindowOrganizerController;
 import com.android.internal.app.IVoiceInteractor;
 import com.android.internal.os.IResultReceiver;
 import com.android.internal.policy.IKeyguardDismissCallback;
@@ -156,8 +155,8 @@
     boolean removeTask(int taskId);
     void removeAllVisibleRecentTasks();
     List<ActivityManager.RunningTaskInfo> getTasks(int maxNum);
-    List<ActivityManager.RunningTaskInfo> getFilteredTasks(int maxNum, int ignoreActivityType,
-            int ignoreWindowingMode);
+    List<ActivityManager.RunningTaskInfo> getFilteredTasks(int maxNum,
+            boolean filterOnlyVisibleRecents);
     boolean shouldUpRecreateTask(in IBinder token, in String destAffinity);
     boolean navigateUpTo(in IBinder token, in Intent target, int resultCode,
             in Intent resultData);
@@ -299,13 +298,6 @@
     void reportSizeConfigurations(in IBinder token, in int[] horizontalSizeConfiguration,
             in int[] verticalSizeConfigurations, in int[] smallestWidthConfigurations);
 
-    /**
-     * Dismisses PiP
-     * @param animate True if the dismissal should be animated.
-     * @param animationDuration The duration of the resize animation in milliseconds or -1 if the
-     *                          default animation duration should be used.
-     */
-    void dismissPip(boolean animate, int animationDuration);
     void suppressResizeConfigChanges(boolean suppress);
     void moveTasksToFullscreenStack(int fromStackId, boolean onTop);
     boolean moveTopActivityToPinnedStack(int stackId, in Rect bounds);
@@ -340,10 +332,8 @@
             in Rect tempDockedTaskInsetBounds,
             in Rect tempOtherTaskBounds, in Rect tempOtherTaskInsetBounds);
 
-    /**
-     * Returns an interface enabling the management of task organizers.
-     */
-    ITaskOrganizerController getTaskOrganizerController();
+    /** Returns an interface enabling the management of window organizers. */
+    IWindowOrganizerController getWindowOrganizerController();
 
     /**
      * Sets whether we are currently in an interactive split screen resize operation where we
diff --git a/core/java/android/app/IAppTraceRetriever.aidl b/core/java/android/app/IAppTraceRetriever.aidl
new file mode 100644
index 0000000..1463da7
--- /dev/null
+++ b/core/java/android/app/IAppTraceRetriever.aidl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app;
+
+import android.os.ParcelFileDescriptor;
+
+/**
+ * An interface that's to be used by {@link ApplicationExitInfo#getTraceFile()}
+ * to retrieve the actual file descriptor to its trace file.
+ *
+ * @hide
+ */
+interface IAppTraceRetriever {
+    /**
+     * Retrieve the trace file with given packageName/uid/pid.
+     *
+     * @param packagename The target package name of the trace
+     * @param uid The target UID of the trace
+     * @param pid The target PID of the trace
+     * @return The file descriptor to the trace file, or null if it's not found.
+     */
+    ParcelFileDescriptor getTraceFileDescriptor(in String packageName,
+            int uid, int pid);
+}
diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl
index 948546b..78d3581 100644
--- a/core/java/android/app/INotificationManager.aidl
+++ b/core/java/android/app/INotificationManager.aidl
@@ -48,8 +48,6 @@
     void clearData(String pkg, int uid, boolean fromApp);
     void enqueueTextToast(String pkg, IBinder token, CharSequence text, int duration, int displayId, @nullable ITransientNotificationCallback callback);
     void enqueueToast(String pkg, IBinder token, ITransientNotification callback, int duration, int displayId);
-    // TODO(b/144152069): Remove this after assessing impact on dogfood.
-    void enqueueTextOrCustomToast(String pkg, IBinder token, ITransientNotification callback, int duration, int displayId, boolean isCustom);
     void cancelToast(String pkg, IBinder token);
     void finishToken(String pkg, IBinder token);
 
@@ -123,10 +121,14 @@
     // INotificationListener method.
     @UnsupportedAppUsage
     StatusBarNotification[] getActiveNotifications(String callingPkg);
+    StatusBarNotification[] getActiveNotificationsWithAttribution(String callingPkg,
+            String callingAttributionTag);
     @UnsupportedAppUsage
     StatusBarNotification[] getHistoricalNotifications(String callingPkg, int count, boolean includeSnoozed);
+    StatusBarNotification[] getHistoricalNotificationsWithAttribution(String callingPkg,
+            String callingAttributionTag, int count, boolean includeSnoozed);
 
-    NotificationHistory getNotificationHistory(String callingPkg);
+    NotificationHistory getNotificationHistory(String callingPkg, String callingAttributionTag);
 
     void registerListener(in INotificationListener listener, in ComponentName component, int userid);
     void unregisterListener(in INotificationListener listener, int userid);
diff --git a/core/java/android/app/InstantAppResolverService.java b/core/java/android/app/InstantAppResolverService.java
index 0cd030e..4c847db 100644
--- a/core/java/android/app/InstantAppResolverService.java
+++ b/core/java/android/app/InstantAppResolverService.java
@@ -16,6 +16,7 @@
 
 package android.app;
 
+import android.annotation.MainThread;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
@@ -225,11 +226,12 @@
      *
      * @see InstantAppResolveInfo
      */
+    @MainThread
     public void onGetInstantAppResolveInfo(@NonNull InstantAppRequestInfo request,
             @NonNull InstantAppResolutionCallback callback) {
         // If not overridden, forward to the old method.
-        onGetInstantAppResolveInfo(request.intent, request.hostDigestPrefix, request.userHandle,
-                request.token, callback);
+        onGetInstantAppResolveInfo(request.getIntent(), request.getHostDigestPrefix(),
+                request.getUserHandle(), request.getToken(), callback);
     }
 
     /**
@@ -241,11 +243,12 @@
      * @param request The parameters for this resolution request
      * @param callback The {@link InstantAppResolutionCallback} to provide results to.
      */
+    @MainThread
     public void onGetInstantAppIntentFilter(@NonNull InstantAppRequestInfo request,
             @NonNull InstantAppResolutionCallback callback) {
         // If not overridden, forward to the old method.
-        onGetInstantAppIntentFilter(request.intent, request.hostDigestPrefix, request.userHandle,
-                request.token, callback);
+        onGetInstantAppIntentFilter(request.getIntent(), request.getHostDigestPrefix(),
+                request.getUserHandle(), request.getToken(), callback);
     }
 
     /**
@@ -268,7 +271,7 @@
             public void getInstantAppResolveInfoList(InstantAppRequestInfo request, int sequence,
                     IRemoteCallback callback) {
                 if (DEBUG_INSTANT) {
-                    Slog.v(TAG, "[" + request.token + "] Phase1 called; posting");
+                    Slog.v(TAG, "[" + request.getToken() + "] Phase1 called; posting");
                 }
                 final SomeArgs args = SomeArgs.obtain();
                 args.arg1 = request;
@@ -281,7 +284,7 @@
             public void getInstantAppIntentFilterList(InstantAppRequestInfo request,
                     IRemoteCallback callback) {
                 if (DEBUG_INSTANT) {
-                    Slog.v(TAG, "[" + request.token + "] Phase2 called; posting");
+                    Slog.v(TAG, "[" + request.getToken() + "] Phase2 called; posting");
                 }
                 final SomeArgs args = SomeArgs.obtain();
                 args.arg1 = request;
@@ -336,9 +339,9 @@
                     args.recycle();
                     final int sequence = message.arg1;
                     if (DEBUG_INSTANT) {
-                        Slog.d(TAG, "[" + request.token + "] Phase1 request;"
-                                + " prefix: " + Arrays.toString(request.hostDigestPrefix)
-                                + ", userId: " + request.userHandle.getIdentifier());
+                        Slog.d(TAG, "[" + request.getToken() + "] Phase1 request;"
+                                + " prefix: " + Arrays.toString(request.getHostDigestPrefix())
+                                + ", userId: " + request.getUserHandle().getIdentifier());
                     }
                     onGetInstantAppResolveInfo(request,
                             new InstantAppResolutionCallback(sequence, callback));
@@ -350,9 +353,9 @@
                     final IRemoteCallback callback = (IRemoteCallback) args.arg2;
                     args.recycle();
                     if (DEBUG_INSTANT) {
-                        Slog.d(TAG, "[" + request.token + "] Phase2 request;"
-                                + " prefix: " + Arrays.toString(request.hostDigestPrefix)
-                                + ", userId: " + request.userHandle.getIdentifier());
+                        Slog.d(TAG, "[" + request.getToken() + "] Phase2 request;"
+                                + " prefix: " + Arrays.toString(request.getHostDigestPrefix())
+                                + ", userId: " + request.getUserHandle().getIdentifier());
                     }
                     onGetInstantAppIntentFilter(request,
                             new InstantAppResolutionCallback(-1 /*sequence*/, callback));
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java
index d650801..10f7835 100644
--- a/core/java/android/app/LoadedApk.java
+++ b/core/java/android/app/LoadedApk.java
@@ -801,6 +801,11 @@
         makePaths(mActivityThread, isBundledApp, mApplicationInfo, zipPaths, libPaths);
 
         String libraryPermittedPath = mDataDir;
+        if (mActivityThread == null) {
+            // In a zygote context where mActivityThread is null we can't access the app data dir
+            // and including this in libraryPermittedPath would cause SELinux denials.
+            libraryPermittedPath = "";
+        }
 
         if (isBundledApp) {
             // For bundled apps, add the base directory of the app (e.g.,
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 864af3d..31fc2d0 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -21,7 +21,6 @@
 import static android.graphics.drawable.Icon.TYPE_URI_ADAPTIVE_BITMAP;
 
 import static com.android.internal.util.ContrastColorUtil.satisfiesTextContrast;
-import static com.android.internal.widget.ConversationLayout.CONVERSATION_LAYOUT_ENABLED;
 
 import android.annotation.ColorInt;
 import android.annotation.DimenRes;
@@ -34,6 +33,7 @@
 import android.annotation.RequiresPermission;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
+import android.annotation.SuppressLint;
 import android.annotation.SystemApi;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.Context;
@@ -1229,6 +1229,9 @@
      */
     public static final String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
 
+    /** @hide */
+    public static final String EXTRA_CONVERSATION_ICON = "android.conversationIcon";
+
     /**
      * {@link #extras} key: an array of {@link android.app.Notification.MessagingStyle.Message}
      * bundles provided by a
@@ -2533,8 +2536,8 @@
             }
         }
 
-        if (mBubbleMetadata != null && mBubbleMetadata.getBubbleIcon() != null) {
-            final Icon icon = mBubbleMetadata.getBubbleIcon();
+        if (mBubbleMetadata != null && mBubbleMetadata.getIcon() != null) {
+            final Icon icon = mBubbleMetadata.getIcon();
             final int iconType = icon.getType();
             if (iconType == TYPE_URI_ADAPTIVE_BITMAP || iconType == TYPE_URI) {
                 visitor.accept(icon.getUri());
@@ -3576,7 +3579,6 @@
                         }
                     }
                 }
-
             }
         }
 
@@ -3596,15 +3598,14 @@
          * notification content, or don't show {@link android.content.pm.ShortcutManager shortcuts}.
          *
          * If this notification has {@link BubbleMetadata} attached that was created with
-         * {@link BubbleMetadata.Builder#createShortcutBubble(String)} a check will be performed
-         * to ensure the shortcutId supplied to bubble metadata matches the shortcutId set here,
-         * if one was set. If the shortcutId's were specified but do not match, an exception
-         * is thrown.
+         * a shortcutId a check will be performed to ensure the shortcutId supplied to bubble
+         * metadata matches the shortcutId set here, if one was set. If the shortcutId's were
+         * specified but do not match, an exception is thrown.
          *
          * @param shortcutId the {@link ShortcutInfo#getId() id} of the shortcut this notification
          *                   supersedes
          *
-         * @see BubbleMetadata.Builder#createShortcutBubble(String)
+         * @see Notification.BubbleMetadata.Builder#Builder(String)
          */
         @NonNull
         public Builder setShortcutId(String shortcutId) {
@@ -5962,12 +5963,11 @@
          * object.
          *
          * If this notification has {@link BubbleMetadata} attached that was created with
-         * {@link BubbleMetadata.Builder#createShortcutBubble(String)} a check will be performed
-         * to ensure the shortcutId supplied to bubble metadata matches the shortcutId set on the
-         * notification builder, if one was set. If the shortcutId's were specified but do not
-         * match, an exception is thrown here.
+         * a shortcutId a check will be performed to ensure the shortcutId supplied to bubble
+         * metadata matches the shortcutId set on the  notification builder, if one was set.
+         * If the shortcutId's were specified but do not match, an exception is thrown here.
          *
-         * @see BubbleMetadata.Builder#createShortcutBubble(String)
+         * @see Notification.BubbleMetadata.Builder#Builder(String)
          * @see #setShortcutId(String)
          */
         @NonNull
@@ -6118,9 +6118,11 @@
         }
 
         private int getMessagingLayoutResource() {
-            return CONVERSATION_LAYOUT_ENABLED
-                    ? R.layout.notification_template_material_conversation
-                    : R.layout.notification_template_material_messaging;
+            return R.layout.notification_template_material_messaging;
+        }
+
+        private int getConversationLayoutResource() {
+            return R.layout.notification_template_material_conversation;
         }
 
         private int getActionLayoutResource() {
@@ -7078,11 +7080,28 @@
          */
         public static final int MAXIMUM_RETAINED_MESSAGES = 25;
 
+
+        /** @hide */
+        public static final int CONVERSATION_TYPE_LEGACY = 0;
+        /** @hide */
+        public static final int CONVERSATION_TYPE_NORMAL = 1;
+        /** @hide */
+        public static final int CONVERSATION_TYPE_IMPORTANT = 2;
+
+        /** @hide */
+        @IntDef(prefix = {"CONVERSATION_TYPE_"}, value = {
+                CONVERSATION_TYPE_LEGACY, CONVERSATION_TYPE_NORMAL, CONVERSATION_TYPE_IMPORTANT
+        })
+        @Retention(RetentionPolicy.SOURCE)
+        public @interface ConversationType {}
+
         @NonNull Person mUser;
         @Nullable CharSequence mConversationTitle;
+        @Nullable Icon mShortcutIcon;
         List<Message> mMessages = new ArrayList<>();
         List<Message> mHistoricMessages = new ArrayList<>();
         boolean mIsGroupConversation;
+        @ConversationType int mConversationType = CONVERSATION_TYPE_LEGACY;
 
         MessagingStyle() {
         }
@@ -7160,6 +7179,11 @@
         /**
          * Sets the title to be displayed on this conversation. May be set to {@code null}.
          *
+         * <p>Starting in {@link Build.VERSION_CODES#R, this conversation title will be ignored if a
+         * valid shortcutId is added via {@link Notification.Builder#setShortcutId(String)}. In this
+         * case, {@link ShortcutInfo#getShortLabel()} will be shown as the conversation title
+         * instead.
+         *
          * <p>This API's behavior was changed in SDK version {@link Build.VERSION_CODES#P}. If your
          * application's target version is less than {@link Build.VERSION_CODES#P}, setting a
          * conversation title to a non-null value will make {@link #isGroupConversation()} return
@@ -7184,6 +7208,46 @@
         }
 
         /**
+         * Sets the icon to be displayed on the conversation, derived from the shortcutId.
+         *
+         * @hide
+         */
+        public MessagingStyle setShortcutIcon(@Nullable Icon conversationIcon) {
+            mShortcutIcon = conversationIcon;
+            return this;
+        }
+
+        /**
+         * Return the icon to be displayed on this conversation, derived from the shortcutId. May
+         * return {@code null}.
+         *
+         * @hide
+         */
+        @Nullable
+        public Icon getShortcutIcon() {
+            return mShortcutIcon;
+        }
+
+        /**
+         * Sets the conversation type of this MessageStyle notification.
+         * {@link #CONVERSATION_TYPE_LEGACY} will use the "older" layout from pre-R,
+         * {@link #CONVERSATION_TYPE_NORMAL} will use the new "conversation" layout, and
+         * {@link #CONVERSATION_TYPE_IMPORTANT} will add additional "important" treatments.
+         *
+         * @hide
+         */
+        public MessagingStyle setConversationType(@ConversationType int conversationType) {
+            mConversationType = conversationType;
+            return this;
+        }
+
+        /** @hide */
+        @ConversationType
+        public int getConversationType() {
+            return mConversationType;
+        }
+
+        /**
          * Adds a message for display by this notification. Convenience call for a simple
          * {@link Message} in {@link #addMessage(Notification.MessagingStyle.Message)}.
          * @param text A {@link CharSequence} to be displayed as the message content
@@ -7334,6 +7398,9 @@
             if (!mHistoricMessages.isEmpty()) { extras.putParcelableArray(EXTRA_HISTORIC_MESSAGES,
                     Message.getBundleArrayForMessages(mHistoricMessages));
             }
+            if (mShortcutIcon != null) {
+                extras.putParcelable(EXTRA_CONVERSATION_ICON, mShortcutIcon);
+            }
 
             fixTitleAndTextExtras(extras);
             extras.putBoolean(EXTRA_IS_GROUP_CONVERSATION, mIsGroupConversation);
@@ -7515,24 +7582,34 @@
             } else {
                 isOneToOne = !isGroupConversation();
             }
+            boolean isConversationLayout = mConversationType != CONVERSATION_TYPE_LEGACY;
+            boolean isImportantConversation = mConversationType == CONVERSATION_TYPE_IMPORTANT;
+            Icon largeIcon = isConversationLayout && mShortcutIcon != null
+                    ? mShortcutIcon
+                    : mBuilder.mN.mLargeIcon;
             TemplateBindResult bindResult = new TemplateBindResult();
-            StandardTemplateParams p = mBuilder.mParams.reset().hasProgress(false).title(
-                    conversationTitle).text(null)
+            StandardTemplateParams p = mBuilder.mParams.reset()
+                    .hasProgress(false)
+                    .title(conversationTitle)
+                    .text(null)
                     .hideLargeIcon(hideRightIcons || isOneToOne)
                     .hideReplyIcon(hideRightIcons)
                     .headerTextSecondary(conversationTitle);
             RemoteViews contentView = mBuilder.applyStandardTemplateWithActions(
-                    mBuilder.getMessagingLayoutResource(),
+                    isConversationLayout
+                            ? mBuilder.getConversationLayoutResource()
+                            : mBuilder.getMessagingLayoutResource(),
                     p,
                     bindResult);
             addExtras(mBuilder.mN.extras);
-            if (!CONVERSATION_LAYOUT_ENABLED) {
+            if (!isConversationLayout) {
                 // also update the end margin if there is an image
                 contentView.setViewLayoutMarginEnd(R.id.notification_messaging,
                         bindResult.getIconMarginEnd());
             }
             contentView.setInt(R.id.status_bar_latest_event_content, "setLayoutColor",
-                    mBuilder.isColorized(p) ? mBuilder.getPrimaryTextColor(p)
+                    mBuilder.isColorized(p)
+                            ? mBuilder.getPrimaryTextColor(p)
                             : mBuilder.resolveContrastColor(p));
             contentView.setInt(R.id.status_bar_latest_event_content, "setSenderTextColor",
                     mBuilder.getPrimaryTextColor(p));
@@ -7551,8 +7628,12 @@
                     isOneToOne);
             contentView.setCharSequence(R.id.status_bar_latest_event_content,
                     "setConversationTitle", conversationTitle);
+            if (isConversationLayout) {
+                contentView.setBoolean(R.id.status_bar_latest_event_content,
+                        "setIsImportantConversation", isImportantConversation);
+            }
             contentView.setIcon(R.id.status_bar_latest_event_content, "setLargeIcon",
-                    mBuilder.mN.mLargeIcon);
+                    largeIcon);
             contentView.setBundle(R.id.status_bar_latest_event_content, "setData",
                     mBuilder.mN.extras);
             return contentView;
@@ -7615,7 +7696,7 @@
         public RemoteViews makeHeadsUpContentView(boolean increasedHeight) {
             RemoteViews remoteViews = makeMessagingView(true /* isCollapsed */,
                     true /* hideLargeIcon */);
-            if (!CONVERSATION_LAYOUT_ENABLED) {
+            if (mConversationType == CONVERSATION_TYPE_LEGACY) {
                 remoteViews.setInt(R.id.notification_messaging, "setMaxDisplayedLines", 1);
             }
             return remoteViews;
@@ -8669,9 +8750,8 @@
      * <p>A bubble is used to display app content in a floating window over the existing
      * foreground activity. A bubble has a collapsed state represented by an icon and an
      * expanded state that displays an activity. These may be defined via
-     * {@link BubbleMetadata.Builder#createIntentBubble(PendingIntent, Icon)} or they may
-     * be definied via an existing shortcut using
-     * {@link BubbleMetadata.Builder#createShortcutBubble(String)}.
+     * {@link Builder#Builder(PendingIntent, Icon)} or they may
+     * be defined via an existing shortcut using {@link Builder#Builder(String)}.
      * </p>
      *
      * <b>Notifications with a valid and allowed bubble will display in collapsed state
@@ -8692,8 +8772,7 @@
 
         /**
          * If set and the app creating the bubble is in the foreground, the bubble will be posted
-         * in its expanded state, with the contents of {@link #getBubbleIntent()} in a floating
-         * window.
+         * in its expanded state.
          *
          * <p>This flag has no effect if the app posting the bubble is not in the foreground.
          * The app is considered foreground if it is visible and on the screen, note that
@@ -8759,7 +8838,9 @@
         }
 
         /**
-         * @return the shortcut id used to populate the bubble, if it exists.
+         * @return the shortcut id used for this bubble if created via
+         * {@link Builder#Builder(String)} or null if created
+         * via {@link Builder#Builder(PendingIntent, Icon)}.
          */
         @Nullable
         public String getShortcutId() {
@@ -8767,20 +8848,20 @@
         }
 
         /**
-         * @deprecated use {@link #getBubbleIntent()} or use {@link #getShortcutId()} if created
-         * with a valid shortcut instead.
+         * @return the pending intent used to populate the floating window for this bubble, or
+         * null if this bubble is created via {@link Builder#Builder(String)}.
          */
-        @Deprecated
-        @NonNull
+        @SuppressLint("InvalidNullConversion")
+        @Nullable
         public PendingIntent getIntent() {
             return mPendingIntent;
         }
 
         /**
-         * @return the pending intent used to populate the floating window for this bubble, or
-         * null if this bubble is shortcut based.
+         * @deprecated use {@link #getIntent()} instead.
          */
         @Nullable
+        @Deprecated
         public PendingIntent getBubbleIntent() {
             return mPendingIntent;
         }
@@ -8794,27 +8875,27 @@
         }
 
         /**
-         * @deprecated use {@link #getBubbleIcon()} or use {@link #getShortcutId()} if created
-         * with a valid shortcut instead.
+         * @return the icon that will be displayed for this bubble when it is collapsed, or null
+         * if the bubble is created via {@link Builder#Builder(String)}.
          */
-        @Deprecated
-        @NonNull
+        @SuppressLint("InvalidNullConversion")
+        @Nullable
         public Icon getIcon() {
             return mIcon;
         }
 
         /**
-         * @return the icon that will be displayed for this bubble when it is collapsed, or null
-         * if the bubble is shortcut based.
+         * @deprecated use {@link #getIcon()} instead.
          */
         @Nullable
+        @Deprecated
         public Icon getBubbleIcon() {
             return mIcon;
         }
 
         /**
          * @return the ideal height, in DPs, for the floating window that app content defined by
-         * {@link #getBubbleIntent()} for this bubble. A value of 0 indicates a desired height has
+         * {@link #getIntent()} for this bubble. A value of 0 indicates a desired height has
          * not been set.
          */
         @Dimension(unit = DP)
@@ -8824,7 +8905,7 @@
 
         /**
          * @return the resId of ideal height for the floating window that app content defined by
-         * {@link #getBubbleIntent()} for this bubble. A value of 0 indicates a res value has not
+         * {@link #getIntent()} for this bubble. A value of 0 indicates a res value has not
          * been provided for the desired height.
          */
         @DimenRes
@@ -8938,15 +9019,20 @@
             private String mShortcutId;
 
             /**
-             * Constructs a new builder object.
+             * @deprecated use {@link Builder#Builder(String)} for a bubble created via a
+             * {@link ShortcutInfo} or {@link Builder#Builder(PendingIntent, Icon)} for a bubble
+             * created via a {@link PendingIntent}.
              */
+            @Deprecated
             public Builder() {
             }
 
             /**
-             * Creates a {@link BubbleMetadata.Builder} based on a shortcut. Only
-             * {@link android.content.pm.ShortcutManager#addDynamicShortcuts(List)} shortcuts are
-             * supported.
+             * Creates a {@link BubbleMetadata.Builder} based on a {@link ShortcutInfo}. To create
+             * a shortcut bubble, ensure that the shortcut associated with the provided
+             * {@param shortcutId} is published as a dynamic shortcut that was built with
+             * {@link ShortcutInfo.Builder#setLongLived(boolean)} being true, otherwise your
+             * notification will not be able to bubble.
              *
              * <p>The shortcut icon will be used to represent the bubble when it is collapsed.</p>
              *
@@ -8957,11 +9043,55 @@
              * no bubble will be produced. If the shortcut is deleted while the bubble is active,
              * the bubble will be removed.</p>
              *
-             * <p>Calling this method will clear the contents of
-             * {@link #createIntentBubble(PendingIntent, Icon)} if it was previously called on
-             * this builder.</p>
+             * @throws NullPointerException if shortcutId is null.
+             *
+             * @see ShortcutInfo
+             * @see ShortcutInfo.Builder#setLongLived(boolean)
+             * @see android.content.pm.ShortcutManager#addDynamicShortcuts(List)
+             */
+            public Builder(@NonNull String shortcutId) {
+                if (TextUtils.isEmpty(shortcutId)) {
+                    throw new NullPointerException("Bubble requires a non-null shortcut id");
+                }
+                mShortcutId = shortcutId;
+            }
+
+            /**
+             * Creates a {@link BubbleMetadata.Builder} based on the provided intent and icon.
+             *
+             * <p>The icon will be used to represent the bubble when it is collapsed. An icon
+             * should be representative of the content within the bubble. If your app produces
+             * multiple bubbles, the icon should be unique for each of them.</p>
+             *
+             * <p>The intent that will be used when the bubble is expanded. This will display the
+             * app content in a floating window over the existing foreground activity. The intent
+             * should point to a resizable activity. </p>
+             *
+             * @throws NullPointerException if intent is null.
+             * @throws NullPointerException if icon is null.
+             */
+            public Builder(@NonNull PendingIntent intent, @NonNull Icon icon) {
+                if (intent == null) {
+                    throw new NullPointerException("Bubble requires non-null pending intent");
+                }
+                if (icon == null) {
+                    throw new NullPointerException("Bubbles require non-null icon");
+                }
+                if (icon.getType() != TYPE_URI_ADAPTIVE_BITMAP
+                        && icon.getType() != TYPE_URI) {
+                    Log.w(TAG, "Bubbles work best with icons of TYPE_URI or "
+                            + "TYPE_URI_ADAPTIVE_BITMAP. "
+                            + "In the future, using an icon of this type will be required.");
+                }
+                mPendingIntent = intent;
+                mIcon = icon;
+            }
+
+            /**
+             * @deprecated use {@link Builder#Builder(String)} instead.
              */
             @NonNull
+            @Deprecated
             public BubbleMetadata.Builder createShortcutBubble(@NonNull String shortcutId) {
                 if (!TextUtils.isEmpty(shortcutId)) {
                     // If shortcut id is set, we don't use these if they were previously set.
@@ -8973,23 +9103,10 @@
             }
 
             /**
-             * Creates a {@link BubbleMetadata.Builder} based on the provided intent and icon.
-             *
-             * <p>The icon will be used to represent the bubble when it is collapsed. An icon
-             * should be representative of the content within the bubble. If your app produces
-             * multiple bubbles, the icon should be unique for each of them.</p>
-             *
-             * <p>The intent that will be used when the bubble is expanded. This will display the
-             * app content in a floating window over the existing foreground activity.</p>
-             *
-             * <p>Calling this method will clear the contents of
-             * {@link #createShortcutBubble(String)} if it was previously called on this builder.
-             * </p>
-             *
-             * @throws IllegalArgumentException if intent is null.
-             * @throws IllegalArgumentException if icon is null.
+             * @deprecated use {@link Builder#Builder(PendingIntent, Icon)} instead.
              */
             @NonNull
+            @Deprecated
             public BubbleMetadata.Builder createIntentBubble(@NonNull PendingIntent intent,
                     @NonNull Icon icon) {
                 if (intent == null) {
@@ -9011,31 +9128,61 @@
             }
 
             /**
-             * @deprecated use {@link #createIntentBubble(PendingIntent, Icon)}
-             * or {@link #createShortcutBubble(String)} instead.
+             * Sets the intent for the bubble.
+             *
+             * <p>The intent that will be used when the bubble is expanded. This will display the
+             * app content in a floating window over the existing foreground activity. The intent
+             * should point to a resizable activity. </p>
+             *
+             * @throws NullPointerException  if intent is null.
+             * @throws IllegalStateException if this builder was created via
+             *                               {@link Builder#Builder(String)}.
              */
-            @Deprecated
             @NonNull
             public BubbleMetadata.Builder setIntent(@NonNull PendingIntent intent) {
-                if (intent == null) {
-                    throw new IllegalArgumentException("Bubble requires non-null pending intent");
+                if (mShortcutId != null) {
+                    throw new IllegalStateException("Created as a shortcut bubble, cannot set a "
+                            + "PendingIntent. Consider using "
+                            + "BubbleMetadata.Builder(PendingIntent,Icon) instead.");
                 }
-                mShortcutId = null;
+                if (intent == null) {
+                    throw new NullPointerException("Bubble requires non-null pending intent");
+                }
                 mPendingIntent = intent;
                 return this;
             }
 
             /**
-             * @deprecated use {@link #createIntentBubble(PendingIntent, Icon)}
-             * or {@link #createShortcutBubble(String)} instead.
+             * Sets the icon for the bubble. Can only be used if the bubble was created
+             * via {@link Builder#Builder(PendingIntent, Icon)}.
+             *
+             * <p>The icon will be used to represent the bubble when it is collapsed. An icon
+             * should be representative of the content within the bubble. If your app produces
+             * multiple bubbles, the icon should be unique for each of them.</p>
+             *
+             * <p>It is recommended to use an {@link Icon} of type {@link Icon#TYPE_URI}
+             * or {@link Icon#TYPE_URI_ADAPTIVE_BITMAP}</p>
+             *
+             * @throws NullPointerException  if icon is null.
+             * @throws IllegalStateException if this builder was created via
+             *                               {@link Builder#Builder(String)}.
              */
-            @Deprecated
             @NonNull
             public BubbleMetadata.Builder setIcon(@NonNull Icon icon) {
-                if (icon == null) {
-                    throw new IllegalArgumentException("Bubbles require non-null icon");
+                if (mShortcutId != null) {
+                    throw new IllegalStateException("Created as a shortcut bubble, cannot set an "
+                            + "Icon. Consider using "
+                            + "BubbleMetadata.Builder(PendingIntent,Icon) instead.");
                 }
-                mShortcutId = null;
+                if (icon == null) {
+                    throw new NullPointerException("Bubbles require non-null icon");
+                }
+                if (icon.getType() != TYPE_URI_ADAPTIVE_BITMAP
+                        && icon.getType() != TYPE_URI) {
+                    Log.w(TAG, "Bubbles work best with icons of TYPE_URI or "
+                            + "TYPE_URI_ADAPTIVE_BITMAP. "
+                            + "In the future, using an icon of this type will be required.");
+                }
                 mIcon = icon;
                 return this;
             }
@@ -9084,8 +9231,7 @@
             }
 
             /**
-             * Sets whether the bubble will be posted in its expanded state (with the contents of
-             * {@link #getBubbleIntent()} in a floating window).
+             * Sets whether the bubble will be posted in its expanded state.
              *
              * <p>This flag has no effect if the app posting the bubble is not in the foreground.
              * The app is considered foreground if it is visible and on the screen, note that
@@ -9138,17 +9284,16 @@
             /**
              * Creates the {@link BubbleMetadata} defined by this builder.
              *
-             * @throws IllegalStateException if neither {@link #createShortcutBubble(String)} or
-             * {@link #createIntentBubble(PendingIntent, Icon)} have been called on this builder.
+             * @throws NullPointerException if required elements have not been set.
              */
             @NonNull
             public BubbleMetadata build() {
                 if (mShortcutId == null && mPendingIntent == null) {
-                    throw new IllegalStateException(
+                    throw new NullPointerException(
                             "Must supply pending intent or shortcut to bubble");
                 }
                 if (mShortcutId == null && mIcon == null) {
-                    throw new IllegalStateException(
+                    throw new NullPointerException(
                             "Must supply an icon or shortcut for the bubble");
                 }
                 BubbleMetadata data = new BubbleMetadata(mPendingIntent, mDeleteIntent,
diff --git a/core/java/android/app/NotificationChannel.java b/core/java/android/app/NotificationChannel.java
index 94b237c..d1d67f0 100644
--- a/core/java/android/app/NotificationChannel.java
+++ b/core/java/android/app/NotificationChannel.java
@@ -370,15 +370,18 @@
 
     /**
      * Allows users to block notifications sent through this channel, if this channel belongs to
-     * a package that is signed with the system signature. If the channel does not belong to a
-     * package that is signed with the system signature, this method does nothing.
-     * @param blockableSystem if {@code true}, allows users to block notifications on this channel.
+     * a package that is signed with the system signature.
+     *
+     * If the channel does not belong to a package that is signed with the system signature, this
+     * method does nothing, since such channels are blockable by default and cannot be set to be
+     * unblockable.
+     * @param blockable if {@code true}, allows users to block notifications on this channel.
      * @hide
      */
     @SystemApi
     @TestApi
-    public void setBlockableSystem(boolean blockableSystem) {
-        mBlockableSystem = blockableSystem;
+    public void setBlockable(boolean blockable) {
+        mBlockableSystem = blockable;
     }
     // Modifiable by apps post channel creation
 
@@ -749,7 +752,7 @@
      * @hide
      */
     @TestApi
-    public boolean isBlockableSystem() {
+    public boolean isBlockable() {
         return mBlockableSystem;
     }
 
@@ -873,7 +876,7 @@
         setGroup(parser.getAttributeValue(null, ATT_GROUP));
         lockFields(safeInt(parser, ATT_USER_LOCKED, 0));
         setFgServiceShown(safeBool(parser, ATT_FG_SERVICE_SHOWN, false));
-        setBlockableSystem(safeBool(parser, ATT_BLOCKABLE_SYSTEM, false));
+        setBlockable(safeBool(parser, ATT_BLOCKABLE_SYSTEM, false));
         setAllowBubbles(safeBool(parser, ATT_ALLOW_BUBBLE, DEFAULT_ALLOW_BUBBLE));
         setOriginalImportance(safeInt(parser, ATT_ORIG_IMP, DEFAULT_IMPORTANCE));
         setConversationId(parser.getAttributeValue(null, ATT_PARENT_CHANNEL),
@@ -995,8 +998,8 @@
         if (getGroup() != null) {
             out.attribute(null, ATT_GROUP, getGroup());
         }
-        if (isBlockableSystem()) {
-            out.attribute(null, ATT_BLOCKABLE_SYSTEM, Boolean.toString(isBlockableSystem()));
+        if (isBlockable()) {
+            out.attribute(null, ATT_BLOCKABLE_SYSTEM, Boolean.toString(isBlockable()));
         }
         if (canBubble() != DEFAULT_ALLOW_BUBBLE) {
             out.attribute(null, ATT_ALLOW_BUBBLE, Boolean.toString(canBubble()));
@@ -1060,7 +1063,7 @@
         record.put(ATT_SHOW_BADGE, Boolean.toString(canShowBadge()));
         record.put(ATT_DELETED, Boolean.toString(isDeleted()));
         record.put(ATT_GROUP, getGroup());
-        record.put(ATT_BLOCKABLE_SYSTEM, isBlockableSystem());
+        record.put(ATT_BLOCKABLE_SYSTEM, isBlockable());
         record.put(ATT_ALLOW_BUBBLE, canBubble());
         // TODO: original importance
         return record;
@@ -1162,7 +1165,7 @@
                 && mVibrationEnabled == that.mVibrationEnabled
                 && mShowBadge == that.mShowBadge
                 && isDeleted() == that.isDeleted()
-                && isBlockableSystem() == that.isBlockableSystem()
+                && isBlockable() == that.isBlockable()
                 && mAllowBubbles == that.mAllowBubbles
                 && Objects.equals(getId(), that.getId())
                 && Objects.equals(getName(), that.getName())
@@ -1186,7 +1189,7 @@
                 getLockscreenVisibility(), getSound(), mLights, getLightColor(),
                 getUserLockedFields(),
                 isFgServiceShown(), mVibrationEnabled, mShowBadge, isDeleted(), getGroup(),
-                getAudioAttributes(), isBlockableSystem(), mAllowBubbles,
+                getAudioAttributes(), isBlockable(), mAllowBubbles,
                 mImportanceLockedByOEM, mImportanceLockedDefaultApp, mOriginalImportance,
                 mParentId, mConversationId, mDemoted, mImportantConvo);
         result = 31 * result + Arrays.hashCode(mVibration);
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index 811b9c0..0e97e3f 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -29,6 +29,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ParceledListSlice;
+import android.content.pm.ShortcutInfo;
 import android.graphics.drawable.Icon;
 import android.net.Uri;
 import android.os.Build;
@@ -841,7 +842,8 @@
     }
 
     /**
-     * Returns the notification channel settings for a given channel and conversation id.
+     * Returns the notification channel settings for a given channel and
+     * {@link ShortcutInfo#getId() conversation id}.
      *
      * <p>The channel must belong to your package, or to a package you are an approved notification
      * delegate for (see {@link #canNotifyAsPackage(String)}), or it will not be returned. To query
diff --git a/core/java/android/app/ResourcesManager.java b/core/java/android/app/ResourcesManager.java
index 9f5dee9..392c05a 100644
--- a/core/java/android/app/ResourcesManager.java
+++ b/core/java/android/app/ResourcesManager.java
@@ -250,6 +250,28 @@
         return dm;
     }
 
+    private static void applyNonDefaultDisplayMetricsToConfiguration(
+            @NonNull DisplayMetrics dm, @NonNull Configuration config) {
+        config.touchscreen = Configuration.TOUCHSCREEN_NOTOUCH;
+        config.densityDpi = dm.densityDpi;
+        config.screenWidthDp = (int) (dm.widthPixels / dm.density);
+        config.screenHeightDp = (int) (dm.heightPixels / dm.density);
+        int sl = Configuration.resetScreenLayout(config.screenLayout);
+        if (dm.widthPixels > dm.heightPixels) {
+            config.orientation = Configuration.ORIENTATION_LANDSCAPE;
+            config.screenLayout = Configuration.reduceScreenLayout(sl,
+                    config.screenWidthDp, config.screenHeightDp);
+        } else {
+            config.orientation = Configuration.ORIENTATION_PORTRAIT;
+            config.screenLayout = Configuration.reduceScreenLayout(sl,
+                    config.screenHeightDp, config.screenWidthDp);
+        }
+        config.smallestScreenWidthDp = Math.min(config.screenWidthDp, config.screenHeightDp);
+        config.compatScreenWidthDp = config.screenWidthDp;
+        config.compatScreenHeightDp = config.screenHeightDp;
+        config.compatSmallestScreenWidthDp = config.smallestScreenWidthDp;
+    }
+
     public boolean applyCompatConfigurationLocked(int displayDensity,
             @NonNull Configuration compatConfiguration) {
         if (mResCompatibilityInfo != null && !mResCompatibilityInfo.supportsScreen()) {
@@ -346,10 +368,9 @@
 
         // We must load this from disk.
         if (overlay) {
-            apkAssets = ApkAssets.loadOverlayFromPath(overlayPathToIdmapPath(path),
-                    false /*system*/);
+            apkAssets = ApkAssets.loadOverlayFromPath(overlayPathToIdmapPath(path), 0 /*flags*/);
         } else {
-            apkAssets = ApkAssets.loadFromPath(path, false /*system*/, sharedLib);
+            apkAssets = ApkAssets.loadFromPath(path, sharedLib ? ApkAssets.PROPERTY_DYNAMIC : 0);
         }
 
         if (mLoadedApkAssets != null) {
@@ -497,11 +518,17 @@
 
     private Configuration generateConfig(@NonNull ResourcesKey key, @NonNull DisplayMetrics dm) {
         Configuration config;
+        final boolean isDefaultDisplay = (key.mDisplayId == Display.DEFAULT_DISPLAY);
         final boolean hasOverrideConfig = key.hasOverrideConfiguration();
-        if (hasOverrideConfig) {
+        if (!isDefaultDisplay || hasOverrideConfig) {
             config = new Configuration(getConfiguration());
-            config.updateFrom(key.mOverrideConfiguration);
-            if (DEBUG) Slog.v(TAG, "Applied overrideConfig=" + key.mOverrideConfiguration);
+            if (!isDefaultDisplay) {
+                applyNonDefaultDisplayMetricsToConfiguration(dm, config);
+            }
+            if (hasOverrideConfig) {
+                config.updateFrom(key.mOverrideConfiguration);
+                if (DEBUG) Slog.v(TAG, "Applied overrideConfig=" + key.mOverrideConfiguration);
+            }
         } else {
             config = getConfiguration();
         }
@@ -668,26 +695,26 @@
     }
 
     /**
-     * Creates base resources for an Activity. Calls to
+     * Creates base resources for a binder token. Calls to
      * {@link #getResources(IBinder, String, String[], String[], String[], int, Configuration,
-     * CompatibilityInfo, ClassLoader, List)} with the same activityToken will have their override
+     * CompatibilityInfo, ClassLoader, List)} with the same binder token will have their override
      * configurations merged with the one specified here.
      *
-     * @param activityToken Represents an Activity.
+     * @param token Represents an {@link Activity} or {@link WindowContext}.
      * @param resDir The base resource path. Can be null (only framework resources will be loaded).
      * @param splitResDirs An array of split resource paths. Can be null.
      * @param overlayDirs An array of overlay paths. Can be null.
      * @param libDirs An array of resource library paths. Can be null.
      * @param displayId The ID of the display for which to create the resources.
      * @param overrideConfig The configuration to apply on top of the base configuration. Can be
-     *                       null. This provides the base override for this Activity.
+     *                       {@code null}. This provides the base override for this token.
      * @param compatInfo The compatibility settings to use. Cannot be null. A default to use is
      *                   {@link CompatibilityInfo#DEFAULT_COMPATIBILITY_INFO}.
      * @param classLoader The class loader to use when inflating Resources. If null, the
      *                    {@link ClassLoader#getSystemClassLoader()} is used.
      * @return a Resources object from which to access resources.
      */
-    public @Nullable Resources createBaseActivityResources(@NonNull IBinder activityToken,
+    public @Nullable Resources createBaseTokenResources(@NonNull IBinder token,
             @Nullable String resDir,
             @Nullable String[] splitResDirs,
             @Nullable String[] overlayDirs,
@@ -712,24 +739,24 @@
             classLoader = classLoader != null ? classLoader : ClassLoader.getSystemClassLoader();
 
             if (DEBUG) {
-                Slog.d(TAG, "createBaseActivityResources activity=" + activityToken
+                Slog.d(TAG, "createBaseActivityResources activity=" + token
                         + " with key=" + key);
             }
 
             synchronized (this) {
                 // Force the creation of an ActivityResourcesStruct.
-                getOrCreateActivityResourcesStructLocked(activityToken);
+                getOrCreateActivityResourcesStructLocked(token);
             }
 
             // Update any existing Activity Resources references.
-            updateResourcesForActivity(activityToken, overrideConfig, displayId,
+            updateResourcesForActivity(token, overrideConfig, displayId,
                     false /* movedToDifferentDisplay */);
 
-            cleanupReferences(activityToken);
-            rebaseKeyForActivity(activityToken, key);
+            cleanupReferences(token);
+            rebaseKeyForActivity(token, key);
 
             synchronized (this) {
-                Resources resources = findResourcesForActivityLocked(activityToken, key,
+                Resources resources = findResourcesForActivityLocked(token, key,
                         classLoader);
                 if (resources != null) {
                     return resources;
@@ -737,7 +764,7 @@
             }
 
             // Now request an actual Resources object.
-            return createResources(activityToken, key, classLoader);
+            return createResources(token, key, classLoader);
         } finally {
             Trace.traceEnd(Trace.TRACE_TAG_RESOURCES);
         }
@@ -1082,6 +1109,8 @@
                     + resourcesImpl + " config to: " + config);
         }
         int displayId = key.mDisplayId;
+        final boolean hasOverrideConfiguration = key.hasOverrideConfiguration();
+        tmpConfig.setTo(config);
 
         // Get new DisplayMetrics based on the DisplayAdjustments given to the ResourcesImpl. Update
         // a copy if the CompatibilityInfo changed, because the ResourcesImpl object will handle the
@@ -1091,12 +1120,15 @@
             daj = new DisplayAdjustments(daj);
             daj.setCompatibilityInfo(compat);
         }
-        tmpConfig.setTo(config);
-        if (key.hasOverrideConfiguration()) {
+        daj.setConfiguration(config);
+        DisplayMetrics dm = getDisplayMetrics(displayId, daj);
+        if (displayId != Display.DEFAULT_DISPLAY) {
+            applyNonDefaultDisplayMetricsToConfiguration(dm, tmpConfig);
+        }
+
+        if (hasOverrideConfiguration) {
             tmpConfig.updateFrom(key.mOverrideConfiguration);
         }
-        daj.setConfiguration(tmpConfig);
-        DisplayMetrics dm = getDisplayMetrics(displayId, daj);
         resourcesImpl.updateConfiguration(tmpConfig, dm, compat);
     }
 
@@ -1256,7 +1288,8 @@
          * instance uses.
          */
         @Override
-        public void onLoadersChanged(Resources resources, List<ResourcesLoader> newLoader) {
+        public void onLoadersChanged(@NonNull Resources resources,
+                @NonNull List<ResourcesLoader> newLoader) {
             synchronized (ResourcesManager.this) {
                 final ResourcesKey oldKey = findKeyForResourceImplLocked(resources.getImpl());
                 if (oldKey == null) {
@@ -1284,7 +1317,7 @@
          * {@code loader} to apply any changes of the set of {@link ApkAssets}.
          **/
         @Override
-        public void onLoaderUpdated(ResourcesLoader loader) {
+        public void onLoaderUpdated(@NonNull ResourcesLoader loader) {
             synchronized (ResourcesManager.this) {
                 final ArrayMap<ResourcesImpl, ResourcesKey> updatedResourceImplKeys =
                         new ArrayMap<>();
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index e8f30df..054e5e0 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -359,14 +359,6 @@
             }
         });
 
-        registerService(Context.NETWORK_STACK_SERVICE, IBinder.class,
-                new StaticServiceFetcher<IBinder>() {
-                    @Override
-                    public IBinder createService() {
-                        return ServiceManager.getService(Context.NETWORK_STACK_SERVICE);
-                    }
-                });
-
         registerService(Context.TETHERING_SERVICE, TetheringManager.class,
                 new CachedServiceFetcher<TetheringManager>() {
             @Override
@@ -1318,7 +1310,7 @@
                             throws ServiceNotFoundException {
                         IBinder b = ServiceManager.getServiceOrThrow(
                                 Context.FILE_INTEGRITY_SERVICE);
-                        return new FileIntegrityManager(
+                        return new FileIntegrityManager(ctx.getOuterContext(),
                                 IFileIntegrityService.Stub.asInterface(b));
                     }});
         //CHECKSTYLE:ON IndentationCheck
diff --git a/core/java/android/app/TaskEmbedder.java b/core/java/android/app/TaskEmbedder.java
index 5ebcc46..b8ad308 100644
--- a/core/java/android/app/TaskEmbedder.java
+++ b/core/java/android/app/TaskEmbedder.java
@@ -16,6 +16,7 @@
 
 package android.app;
 
+import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
 import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_DESTROY_CONTENT_ON_REMOVAL;
 import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY;
 import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC;
@@ -291,7 +292,7 @@
      * @see #startActivity(PendingIntent)
      */
     public void startActivity(@NonNull Intent intent) {
-        final ActivityOptions options = prepareActivityOptions();
+        final ActivityOptions options = prepareActivityOptions(null);
         mContext.startActivity(intent, options.toBundle());
     }
 
@@ -304,7 +305,7 @@
      * @see #startActivity(PendingIntent)
      */
     public void startActivity(@NonNull Intent intent, UserHandle user) {
-        final ActivityOptions options = prepareActivityOptions();
+        final ActivityOptions options = prepareActivityOptions(null);
         mContext.startActivityAsUser(intent, options.toBundle(), user);
     }
 
@@ -316,7 +317,7 @@
      * @see #startActivity(Intent)
      */
     public void startActivity(@NonNull PendingIntent pendingIntent) {
-        final ActivityOptions options = prepareActivityOptions();
+        final ActivityOptions options = prepareActivityOptions(null);
         try {
             pendingIntent.send(null /* context */, 0 /* code */, null /* intent */,
                     null /* onFinished */, null /* handler */, null /* requiredPermission */,
@@ -337,8 +338,7 @@
      */
     public void startActivity(@NonNull PendingIntent pendingIntent, @Nullable Intent fillInIntent,
             @NonNull ActivityOptions options) {
-
-        options.setLaunchDisplayId(mVirtualDisplay.getDisplay().getDisplayId());
+        prepareActivityOptions(options);
         try {
             pendingIntent.send(mContext, 0 /* code */, fillInIntent,
                     null /* onFinished */, null /* handler */, null /* requiredPermission */,
@@ -364,21 +364,25 @@
             @NonNull ActivityOptions options, @Nullable Rect sourceBounds) {
         LauncherApps service =
                 (LauncherApps) mContext.getSystemService(Context.LAUNCHER_APPS_SERVICE);
-        options.setLaunchDisplayId(mVirtualDisplay.getDisplay().getDisplayId());
+        prepareActivityOptions(options);
         service.startShortcut(shortcut, sourceBounds, options.toBundle());
     }
 
     /**
-     * Check if container is ready to launch and create {@link ActivityOptions} to target the
-     * virtual display.
+     * Check if container is ready to launch and modify {@param options} to target the virtual
+     * display, creating them if necessary.
      */
-    private ActivityOptions prepareActivityOptions() {
+    private ActivityOptions prepareActivityOptions(ActivityOptions options) {
         if (mVirtualDisplay == null) {
             throw new IllegalStateException(
                     "Trying to start activity before ActivityView is ready.");
         }
-        final ActivityOptions options = ActivityOptions.makeBasic();
+        if (options == null) {
+            options = ActivityOptions.makeBasic();
+        }
         options.setLaunchDisplayId(getDisplayId());
+        options.setLaunchWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+        options.setTaskAlwaysOnTop(true);
         return options;
     }
 
diff --git a/core/java/android/app/TaskInfo.java b/core/java/android/app/TaskInfo.java
index b2dd0ef..7c0fc42 100644
--- a/core/java/android/app/TaskInfo.java
+++ b/core/java/android/app/TaskInfo.java
@@ -28,7 +28,7 @@
 import android.os.Parcel;
 import android.os.RemoteException;
 import android.util.Log;
-import android.view.IWindowContainer;
+import android.window.IWindowContainer;
 
 /**
  * Stores information about a particular Task.
diff --git a/core/java/android/app/WallpaperColors.java b/core/java/android/app/WallpaperColors.java
index 6765d0b..e4818b2 100644
--- a/core/java/android/app/WallpaperColors.java
+++ b/core/java/android/app/WallpaperColors.java
@@ -222,6 +222,14 @@
     public WallpaperColors(@NonNull Color primaryColor, @Nullable Color secondaryColor,
             @Nullable Color tertiaryColor) {
         this(primaryColor, secondaryColor, tertiaryColor, 0);
+
+        // Calculate dark theme support based on primary color.
+        final float[] tmpHsl = new float[3];
+        ColorUtils.colorToHSL(primaryColor.toArgb(), tmpHsl);
+        final float luminance = tmpHsl[2];
+        if (luminance < DARK_THEME_MEAN_LUMINANCE) {
+            mColorHints |= HINT_SUPPORTS_DARK_THEME;
+        }
     }
 
     /**
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java
index 1b1568a..c5d343d 100644
--- a/core/java/android/app/WallpaperManager.java
+++ b/core/java/android/app/WallpaperManager.java
@@ -178,6 +178,13 @@
     public static final String COMMAND_DROP = "android.home.drop";
 
     /**
+     * Command for {@link #sendWallpaperCommand}: reported when the wallpaper that was already
+     * set is re-applied by the user.
+     * @hide
+     */
+    public static final String COMMAND_REAPPLY = "android.wallpaper.reapply";
+
+    /**
      * Extra passed back from setWallpaper() giving the new wallpaper's assigned ID.
      * @hide
      */
diff --git a/core/java/android/app/WindowConfiguration.java b/core/java/android/app/WindowConfiguration.java
index 6b40890..37e07de 100644
--- a/core/java/android/app/WindowConfiguration.java
+++ b/core/java/android/app/WindowConfiguration.java
@@ -141,6 +141,8 @@
     public static final int ACTIVITY_TYPE_RECENTS = 3;
     /** Assistant activity type. */
     public static final int ACTIVITY_TYPE_ASSISTANT = 4;
+    /** Dream activity type. */
+    public static final int ACTIVITY_TYPE_DREAM = 5;
 
     /** @hide */
     @IntDef(prefix = { "ACTIVITY_TYPE_" }, value = {
@@ -149,6 +151,7 @@
             ACTIVITY_TYPE_HOME,
             ACTIVITY_TYPE_RECENTS,
             ACTIVITY_TYPE_ASSISTANT,
+            ACTIVITY_TYPE_DREAM,
     })
     public @interface ActivityType {}
 
@@ -746,9 +749,11 @@
      * @hide
      */
     public boolean isAlwaysOnTop() {
-        return mWindowingMode == WINDOWING_MODE_PINNED || (mAlwaysOnTop == ALWAYS_ON_TOP_ON
-                && (mWindowingMode == WINDOWING_MODE_FREEFORM
-                    || mWindowingMode == WINDOWING_MODE_MULTI_WINDOW));
+        if (mWindowingMode == WINDOWING_MODE_PINNED) return true;
+        if (mActivityType == ACTIVITY_TYPE_DREAM) return true;
+        if (mAlwaysOnTop != ALWAYS_ON_TOP_ON) return false;
+        return mWindowingMode == WINDOWING_MODE_FREEFORM
+                    || mWindowingMode == WINDOWING_MODE_MULTI_WINDOW;
     }
 
     /**
@@ -798,7 +803,7 @@
 
     /** @hide */
     public static boolean supportSplitScreenWindowingMode(int activityType) {
-        return activityType != ACTIVITY_TYPE_ASSISTANT;
+        return activityType != ACTIVITY_TYPE_ASSISTANT && activityType != ACTIVITY_TYPE_DREAM;
     }
 
     /** @hide */
@@ -823,6 +828,7 @@
             case ACTIVITY_TYPE_HOME: return "home";
             case ACTIVITY_TYPE_RECENTS: return "recents";
             case ACTIVITY_TYPE_ASSISTANT: return "assistant";
+            case ACTIVITY_TYPE_DREAM: return "dream";
         }
         return String.valueOf(applicationType);
     }
diff --git a/core/java/android/app/admin/DevicePolicyKeyguardService.java b/core/java/android/app/admin/DevicePolicyKeyguardService.java
index 2ac5ebf..5b7e387 100644
--- a/core/java/android/app/admin/DevicePolicyKeyguardService.java
+++ b/core/java/android/app/admin/DevicePolicyKeyguardService.java
@@ -16,6 +16,7 @@
 
 package android.app.admin;
 
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.Service;
 import android.content.Intent;
@@ -27,7 +28,7 @@
 /**
  * Client interface for providing the SystemUI with secondary lockscreen information.
  *
- * <p>An implementation must be provided by the device admin app when
+ * <p>An implementation must be provided by the Profile Owner when
  * {@link DevicePolicyManager#setSecondaryLockscreenEnabled} is set to true and the service must be
  * declared in the manifest as handling the action
  * {@link DevicePolicyManager#ACTION_BIND_SECONDARY_LOCKSCREEN_SERVICE}, otherwise the keyguard
@@ -41,10 +42,11 @@
 
     private final IKeyguardClient mClient = new IKeyguardClient.Stub() {
         @Override
-        public void onSurfaceReady(@Nullable IBinder hostInputToken, IKeyguardCallback callback) {
+        public void onCreateKeyguardSurface(@Nullable IBinder hostInputToken,
+                IKeyguardCallback callback) {
             mCallback = callback;
             SurfaceControlViewHost.SurfacePackage surfacePackage =
-                    DevicePolicyKeyguardService.this.onSurfaceReady(hostInputToken);
+                    DevicePolicyKeyguardService.this.onCreateKeyguardSurface(hostInputToken);
 
             if (mCallback != null) {
                 try {
@@ -63,13 +65,27 @@
     }
 
     /**
-     * Called by keyguard once the host surface for the secondary lockscreen is ready to display
-     * remote content.
+     * Called by keyguard once the host surface for the secondary lockscreen is created and ready to
+     * display remote content.
+     *
+     * <p>Implementations are expected to create a Surface hierarchy with view elements for the
+     * admin's desired secondary lockscreen UI, and optionally, interactive elements
+     * that will allow the user to dismiss the secondary lockscreen, subject to the implementation's
+     * requirements. The view hierarchy is expected to be embedded via the
+     * {@link SurfaceControlViewHost} APIs, and returned as a SurfacePackage via
+     * {@link SurfaceControlViewHost#getSurfacePackage}for the keyguard to reparent into its
+     * prepared SurfaceView.
+     *
+     * @param hostInputToken Token of the SurfaceView which will hosting the embedded hierarchy,
+     *                       primarily required by {@link SurfaceControlViewHost} for ANR reporting.
+     *                       It will be provided by the keyguard via
+     *                       {@link android.view.SurfaceView#getHostToken}.
      * @return the {@link SurfaceControlViewHost.SurfacePackage} for the Surface the
      *      secondary lockscreen content is attached to.
      */
     @Nullable
-    public SurfaceControlViewHost.SurfacePackage onSurfaceReady(@Nullable IBinder hostInputToken) {
+    public SurfaceControlViewHost.SurfacePackage onCreateKeyguardSurface(
+            @NonNull IBinder hostInputToken) {
         return null;
     }
 
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 32e815e..10309a9 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -2429,7 +2429,7 @@
             PERSONAL_APPS_SUSPENDED_PROFILE_TIMEOUT
     })
     @Retention(RetentionPolicy.SOURCE)
-    public @interface PersonalAppSuspensionReason {}
+    public @interface PersonalAppsSuspensionReason {}
 
     /**
      * Return true if the given administrator component is currently active (enabled) in the system.
@@ -4424,11 +4424,13 @@
      * the current factory reset protection (FRP) policy set previously by
      * {@link #setFactoryResetProtectionPolicy}.
      * <p>
-     * This method can also be called by the FRP management agent on device, in which case,
-     * it can pass {@code null} as the ComponentName.
+     * This method can also be called by the FRP management agent on device or with the permission
+     * {@link android.Manifest.permission#MASTER_CLEAR}, in which case, it can pass {@code null}
+     * as the ComponentName.
      *
      * @param admin Which {@link DeviceAdminReceiver} this request is associated with or
-     *              {@code null} if called by the FRP management agent on device.
+     *              {@code null} if called by the FRP management agent on device or with the
+     *              permission {@link android.Manifest.permission#MASTER_CLEAR}.
      * @return The current FRP policy object or {@code null} if no policy is set.
      * @throws SecurityException if {@code admin} is not a device owner, a profile owner of
      *                           an organization-owned device or the FRP management agent.
@@ -6832,6 +6834,10 @@
      * package will no longer be suspended. The admin can block this by using
      * {@link #setUninstallBlocked}.
      *
+     * <p>Some apps cannot be suspended, such as device admins, the active launcher, the required
+     * package installer, the required package uninstaller, the required package verifier, the
+     * default dialer, and the permission controller.
+     *
      * @param admin The name of the admin component to check, or {@code null} if the caller is a
      *            package access delegate.
      * @param packageNames The package names to suspend or unsuspend.
@@ -7067,7 +7073,6 @@
      *
      * @hide
      */
-    @SystemApi
     public boolean hasDeviceIdentifierAccess(@NonNull String packageName, int pid, int uid) {
         throwIfParentInstance("hasDeviceIdentifierAccess");
         if (packageName == null) {
@@ -8654,11 +8659,11 @@
      * @hide
      */
     @SystemApi
-    public boolean isSecondaryLockscreenEnabled(int userId) {
+    public boolean isSecondaryLockscreenEnabled(@NonNull UserHandle userHandle) {
         throwIfParentInstance("isSecondaryLockscreenEnabled");
         if (mService != null) {
             try {
-                return mService.isSecondaryLockscreenEnabled(userId);
+                return mService.isSecondaryLockscreenEnabled(userHandle);
             } catch (RemoteException e) {
                 throw e.rethrowFromSystemServer();
             }
@@ -9384,9 +9389,9 @@
     }
 
     /**
-     * Called by device owner or profile owner of secondary users  that is affiliated with the
-     * device to disable the status bar. Disabling the status bar blocks notifications, quick
-     * settings and other screen overlays that allow escaping from a single use device.
+     * Called by device owner or profile owner of secondary users that is affiliated with the
+     * device to disable the status bar. Disabling the status bar blocks notifications and quick
+     * settings.
      * <p>
      * <strong>Note:</strong> This method has no effect for LockTask mode. The behavior of the
      * status bar in LockTask mode can be configured with
@@ -11492,7 +11497,11 @@
 
     /**
      * Deprecated. Use {@code markProfileOwnerOnOrganizationOwnedDevice} instead.
-     * Throws UnsupportedOperationException when called.
+     * When called by an app targeting SDK level {@link android.os.Build.VERSION_CODES#Q} or
+     * below, will behave the same as {@link #markProfileOwnerOnOrganizationOwnedDevice}.
+     *
+     * When called by an app targeting SDK level {@link android.os.Build.VERSION_CODES#R}
+     * or above, will throw an UnsupportedOperationException when called.
      *
      * @deprecated Use {@link #markProfileOwnerOnOrganizationOwnedDevice} instead.
      *
@@ -11503,9 +11512,14 @@
     @RequiresPermission(value = android.Manifest.permission.GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS,
             conditional = true)
     public void setProfileOwnerCanAccessDeviceIds(@NonNull ComponentName who) {
-        throw new UnsupportedOperationException(
-                "This method is deprecated. use markProfileOwnerOnOrganizationOwnedDevice instead"
-                        + ".");
+        ApplicationInfo ai = mContext.getApplicationInfo();
+        if (ai.targetSdkVersion > Build.VERSION_CODES.Q) {
+            throw new UnsupportedOperationException(
+                    "This method is deprecated. use markProfileOwnerOnOrganizationOwnedDevice"
+                    + " instead.");
+        } else {
+            markProfileOwnerOnOrganizationOwnedDevice(who);
+        }
     }
 
     /**
@@ -11949,7 +11963,7 @@
      *     {@link #PERSONAL_APPS_NOT_SUSPENDED} if apps are not suspended.
      * @see #setPersonalAppsSuspended
      */
-    public @PersonalAppSuspensionReason int getPersonalAppsSuspendedReasons(
+    public @PersonalAppsSuspensionReason int getPersonalAppsSuspendedReasons(
             @NonNull ComponentName admin) {
         throwIfParentInstance("getPersonalAppsSuspendedReasons");
         if (mService != null) {
diff --git a/core/java/android/app/admin/FactoryResetProtectionPolicy.java b/core/java/android/app/admin/FactoryResetProtectionPolicy.java
index 954db04..aa94e81 100644
--- a/core/java/android/app/admin/FactoryResetProtectionPolicy.java
+++ b/core/java/android/app/admin/FactoryResetProtectionPolicy.java
@@ -43,6 +43,12 @@
  * reset protection policy for the device by calling the {@code DevicePolicyManager} method
  * {@link DevicePolicyManager#setFactoryResetProtectionPolicy(ComponentName,
  * FactoryResetProtectionPolicy)}}.
+ * <p>
+ * Normally factory reset protection does not kick in if the device is factory reset via Settings.
+ * This is also the case when a device owner sets factory reset protection policy. However,
+ * when a profile owner of an organization-owned device sets factory reset protection policy that
+ * locks the device to specific accounts, the policy will take effect even if factory reset is
+ * performed from Settings.
  *
  * @see DevicePolicyManager#setFactoryResetProtectionPolicy
  * @see DevicePolicyManager#getFactoryResetProtectionPolicy
@@ -236,4 +242,16 @@
         }
     }
 
+    /**
+     * Returns if the policy will result in factory reset protection being locked to
+     * admin-specified accounts.
+     * <p>
+     * When a device has a non-empty factory reset protection policy, trusted factory reset
+     * via Settings will no longer remove factory reset protection from the device.
+     * @hide
+     */
+    public boolean isNotEmpty() {
+        return !mFactoryResetProtectionAccounts.isEmpty() && mFactoryResetProtectionEnabled;
+    }
+
 }
diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl
index 514677e..fc1eb0a 100644
--- a/core/java/android/app/admin/IDevicePolicyManager.aidl
+++ b/core/java/android/app/admin/IDevicePolicyManager.aidl
@@ -255,7 +255,7 @@
     String[] getAccountTypesWithManagementDisabledAsUser(int userId, in boolean parent);
 
     void setSecondaryLockscreenEnabled(in ComponentName who, boolean enabled);
-    boolean isSecondaryLockscreenEnabled(int userId);
+    boolean isSecondaryLockscreenEnabled(in UserHandle userHandle);
 
     void setLockTaskPackages(in ComponentName who, in String[] packages);
     String[] getLockTaskPackages(in ComponentName who);
diff --git a/core/java/android/app/admin/IKeyguardClient.aidl b/core/java/android/app/admin/IKeyguardClient.aidl
index 4bfd990..9b2f3f4 100644
--- a/core/java/android/app/admin/IKeyguardClient.aidl
+++ b/core/java/android/app/admin/IKeyguardClient.aidl
@@ -23,5 +23,5 @@
  * @hide
  */
 interface IKeyguardClient {
-    oneway void onSurfaceReady(in IBinder hostInputToken, in IKeyguardCallback keyguardCallback);
+    oneway void onCreateKeyguardSurface(in IBinder hostInputToken, in IKeyguardCallback keyguardCallback);
 }
diff --git a/core/java/android/app/timezonedetector/ManualTimeZoneSuggestion.java b/core/java/android/app/timezonedetector/ManualTimeZoneSuggestion.java
index 3a9adc7..22e2efb 100644
--- a/core/java/android/app/timezonedetector/ManualTimeZoneSuggestion.java
+++ b/core/java/android/app/timezonedetector/ManualTimeZoneSuggestion.java
@@ -20,7 +20,9 @@
 import android.annotation.Nullable;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.os.ShellCommand;
 
+import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -127,4 +129,32 @@
                 + ", mDebugInfo=" + mDebugInfo
                 + '}';
     }
+
+    /** @hide */
+    public static ManualTimeZoneSuggestion parseCommandLineArg(@NonNull ShellCommand cmd) {
+        String zoneId = null;
+        String opt;
+        while ((opt = cmd.getNextArg()) != null) {
+            switch (opt) {
+                case "--zone_id": {
+                    zoneId = cmd.getNextArgRequired();
+                    break;
+                }
+                default: {
+                    throw new IllegalArgumentException("Unknown option: " + opt);
+                }
+            }
+        }
+        ManualTimeZoneSuggestion suggestion = new ManualTimeZoneSuggestion(zoneId);
+        suggestion.addDebugInfo("Command line injection");
+        return suggestion;
+    }
+
+    /** @hide */
+    public static void printCommandLineOpts(@NonNull PrintWriter pw) {
+        pw.println("Manual suggestion options:");
+        pw.println("  --zone_id <Olson ID>");
+        pw.println();
+        pw.println("See " + ManualTimeZoneSuggestion.class.getName() + " for more information");
+    }
 }
diff --git a/core/java/android/app/timezonedetector/TelephonyTimeZoneSuggestion.java b/core/java/android/app/timezonedetector/TelephonyTimeZoneSuggestion.java
index 150c01d..430462b 100644
--- a/core/java/android/app/timezonedetector/TelephonyTimeZoneSuggestion.java
+++ b/core/java/android/app/timezonedetector/TelephonyTimeZoneSuggestion.java
@@ -21,7 +21,10 @@
 import android.annotation.Nullable;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.os.ShellCommand;
+import android.text.TextUtils;
 
+import java.io.PrintWriter;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
@@ -392,4 +395,96 @@
             return new TelephonyTimeZoneSuggestion(this);
         }
     }
+
+    /** @hide */
+    public static TelephonyTimeZoneSuggestion parseCommandLineArg(@NonNull ShellCommand cmd)
+            throws IllegalArgumentException {
+        Integer slotIndex = null;
+        String zoneId = null;
+        Integer quality = null;
+        Integer matchType = null;
+        String opt;
+        while ((opt = cmd.getNextArg()) != null) {
+            switch (opt) {
+                case "--slot_index": {
+                    slotIndex = Integer.parseInt(cmd.getNextArgRequired());
+                    break;
+                }
+                case "--zone_id": {
+                    zoneId = cmd.getNextArgRequired();
+                    break;
+                }
+                case "--quality": {
+                    quality = parseQualityCommandLineArg(cmd.getNextArgRequired());
+                    break;
+                }
+                case "--match_type": {
+                    matchType = parseMatchTypeCommandLineArg(cmd.getNextArgRequired());
+                    break;
+                }
+                default: {
+                    throw new IllegalArgumentException("Unknown option: " + opt);
+                }
+            }
+        }
+
+        if (slotIndex == null) {
+            throw new IllegalArgumentException("No slotIndex specified.");
+        }
+
+        Builder builder = new Builder(slotIndex);
+        if (!(TextUtils.isEmpty(zoneId) || "_".equals(zoneId))) {
+            builder.setZoneId(zoneId);
+        }
+        if (quality != null) {
+            builder.setQuality(quality);
+        }
+        if (matchType != null) {
+            builder.setMatchType(matchType);
+        }
+        builder.addDebugInfo("Command line injection");
+        return builder.build();
+    }
+
+    private static int parseQualityCommandLineArg(@NonNull String arg) {
+        switch (arg) {
+            case "single":
+                return QUALITY_SINGLE_ZONE;
+            case "multiple_same":
+                return QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET;
+            case "multiple_different":
+                return QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS;
+            default:
+                throw new IllegalArgumentException("Unrecognized quality: " + arg);
+        }
+    }
+
+    private static int parseMatchTypeCommandLineArg(@NonNull String arg) {
+        switch (arg) {
+            case "emulator":
+                return MATCH_TYPE_EMULATOR_ZONE_ID;
+            case "country_with_offset":
+                return MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET;
+            case "country":
+                return MATCH_TYPE_NETWORK_COUNTRY_ONLY;
+            case "test_network":
+                return MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY;
+            default:
+                throw new IllegalArgumentException("Unrecognized match_type: " + arg);
+        }
+    }
+
+    /** @hide */
+    public static void printCommandLineOpts(@NonNull PrintWriter pw) {
+        pw.println("Telephony suggestion options:");
+        pw.println("  --slot_index <number>");
+        pw.println("  To withdraw a previous suggestion:");
+        pw.println("    [--zone_id \"_\"]");
+        pw.println("  To make a new suggestion:");
+        pw.println("    --zone_id <Olson ID>");
+        pw.println("    --quality <single|multiple_same|multiple_different>");
+        pw.println("    --match_type <emulator|country_with_offset|country|test_network>");
+        pw.println();
+        pw.println("See " + TelephonyTimeZoneSuggestion.class.getName() + " for more information");
+    }
 }
diff --git a/core/java/android/app/usage/UsageStats.java b/core/java/android/app/usage/UsageStats.java
index d06baed..4d73a61 100644
--- a/core/java/android/app/usage/UsageStats.java
+++ b/core/java/android/app/usage/UsageStats.java
@@ -27,6 +27,7 @@
 import static android.app.usage.UsageEvents.Event.FOREGROUND_SERVICE_START;
 import static android.app.usage.UsageEvents.Event.FOREGROUND_SERVICE_STOP;
 import static android.app.usage.UsageEvents.Event.ROLLOVER_FOREGROUND_SERVICE;
+import static android.app.usage.UsageEvents.Event.USER_INTERACTION;
 
 import android.annotation.SystemApi;
 import android.compat.annotation.UnsupportedAppUsage;
@@ -580,6 +581,18 @@
                     incrementServiceTimeUsed(timeStamp);
                 }
                 break;
+            case USER_INTERACTION:
+                if (hasForegroundActivity()) {
+                    incrementTimeUsed(timeStamp);
+                } else {
+                    mLastTimeUsed = timeStamp;
+                }
+                if (hasVisibleActivity()) {
+                    incrementTimeVisible(timeStamp);
+                } else {
+                    mLastTimeVisible = timeStamp;
+                }
+                break;
             default:
                 break;
         }
diff --git a/core/java/android/appwidget/AppWidgetManager.java b/core/java/android/appwidget/AppWidgetManager.java
index 0d461f5..8441287 100644
--- a/core/java/android/appwidget/AppWidgetManager.java
+++ b/core/java/android/appwidget/AppWidgetManager.java
@@ -1240,4 +1240,18 @@
             throw e.rethrowFromSystemServer();
         }
     }
+
+    /**
+     * Note an app widget is tapped on.
+     * @param uid App UID.
+     * @param packageName App package name.
+     * @hide
+     */
+    public void noteAppWidgetTapped(int uid, @NonNull String packageName) {
+        try {
+            mService.noteAppWidgetTapped(uid, packageName);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
 }
diff --git a/core/java/android/bluetooth/BluetoothA2dp.java b/core/java/android/bluetooth/BluetoothA2dp.java
index b672a08..5374d6d 100644
--- a/core/java/android/bluetooth/BluetoothA2dp.java
+++ b/core/java/android/bluetooth/BluetoothA2dp.java
@@ -433,7 +433,7 @@
      * is active
      * @hide
      */
-    @SystemApi
+    @UnsupportedAppUsage
     @Nullable
     @RequiresPermission(Manifest.permission.BLUETOOTH)
     public BluetoothDevice getActiveDevice() {
@@ -462,7 +462,7 @@
      * @return true if priority is set, false on error
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setPriority(BluetoothDevice device, int priority) {
         if (DBG) log("setPriority(" + device + ", " + priority + ")");
         return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
@@ -481,7 +481,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
             @ConnectionPolicy int connectionPolicy) {
         if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
@@ -517,7 +517,18 @@
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
     public int getPriority(BluetoothDevice device) {
         if (VDBG) log("getPriority(" + device + ")");
-        return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
+        try {
+            final IBluetoothA2dp service = getService();
+            if (service != null && isEnabled()
+                    && isValidDevice(device)) {
+                return BluetoothAdapter.connectionPolicyToPriority(service.getPriority(device));
+            }
+            if (service == null) Log.w(TAG, "Proxy not attached to service");
+            return BluetoothProfile.PRIORITY_OFF;
+        } catch (RemoteException e) {
+            Log.e(TAG, "Stack:" + Log.getStackTraceString(new Throwable()));
+            return BluetoothProfile.PRIORITY_OFF;
+        }
     }
 
     /**
@@ -532,7 +543,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
         if (VDBG) log("getConnectionPolicy(" + device + ")");
         try {
@@ -640,7 +651,7 @@
      * @return the current codec status
      * @hide
      */
-    @SystemApi
+    @UnsupportedAppUsage
     @Nullable
     @RequiresPermission(Manifest.permission.BLUETOOTH)
     public BluetoothCodecStatus getCodecStatus(@NonNull BluetoothDevice device) {
@@ -669,8 +680,8 @@
      * @param codecConfig the codec configuration preference
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @UnsupportedAppUsage
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public void setCodecConfigPreference(@NonNull BluetoothDevice device,
                                          @NonNull BluetoothCodecConfig codecConfig) {
         if (DBG) Log.d(TAG, "setCodecConfigPreference(" + device + ")");
@@ -699,8 +710,8 @@
      * active A2DP Bluetooth device.
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @UnsupportedAppUsage
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public void enableOptionalCodecs(@NonNull BluetoothDevice device) {
         if (DBG) Log.d(TAG, "enableOptionalCodecs(" + device + ")");
         verifyDeviceNotNull(device, "enableOptionalCodecs");
@@ -714,8 +725,8 @@
      * active A2DP Bluetooth device.
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @UnsupportedAppUsage
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public void disableOptionalCodecs(@NonNull BluetoothDevice device) {
         if (DBG) Log.d(TAG, "disableOptionalCodecs(" + device + ")");
         verifyDeviceNotNull(device, "disableOptionalCodecs");
@@ -755,7 +766,7 @@
      * OPTIONAL_CODECS_SUPPORTED.
      * @hide
      */
-    @SystemApi
+    @UnsupportedAppUsage
     @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
     @OptionalCodecsSupportStatus
     public int isOptionalCodecsSupported(@NonNull BluetoothDevice device) {
@@ -781,7 +792,7 @@
      * OPTIONAL_CODECS_PREF_DISABLED.
      * @hide
      */
-    @SystemApi
+    @UnsupportedAppUsage
     @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
     @OptionalCodecsPreferenceStatus
     public int isOptionalCodecsEnabled(@NonNull BluetoothDevice device) {
@@ -808,8 +819,8 @@
      * OPTIONAL_CODECS_PREF_DISABLED.
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @UnsupportedAppUsage
+    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
     public void setOptionalCodecsEnabled(@NonNull BluetoothDevice device,
             @OptionalCodecsPreferenceStatus int value) {
         verifyDeviceNotNull(device, "setOptionalCodecsEnabled");
diff --git a/core/java/android/bluetooth/BluetoothA2dpSink.java b/core/java/android/bluetooth/BluetoothA2dpSink.java
index ab49230..53f87e6 100755
--- a/core/java/android/bluetooth/BluetoothA2dpSink.java
+++ b/core/java/android/bluetooth/BluetoothA2dpSink.java
@@ -17,7 +17,7 @@
 package android.bluetooth;
 
 import android.Manifest;
-import android.annotation.Nullable;
+import android.annotation.NonNull;
 import android.annotation.RequiresPermission;
 import android.annotation.SuppressLint;
 import android.annotation.SystemApi;
@@ -120,7 +120,7 @@
      * @return false on immediate error, true otherwise
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean connect(BluetoothDevice device) {
         if (DBG) log("connect(" + device + ")");
         final IBluetoothA2dpSink service = getService();
@@ -277,7 +277,7 @@
      * @return true if priority is set, false on error
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setPriority(BluetoothDevice device, int priority) {
         if (DBG) log("setPriority(" + device + ", " + priority + ")");
         return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
@@ -297,7 +297,7 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
-    public boolean setConnectionPolicy(@Nullable BluetoothDevice device,
+    public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
             @ConnectionPolicy int connectionPolicy) {
         if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
         final IBluetoothA2dpSink service = getService();
@@ -327,7 +327,7 @@
      * @return priority of the device
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public int getPriority(BluetoothDevice device) {
         if (VDBG) log("getPriority(" + device + ")");
         return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
@@ -346,7 +346,7 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
-    public @ConnectionPolicy int getConnectionPolicy(@Nullable BluetoothDevice device) {
+    public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
         if (VDBG) log("getConnectionPolicy(" + device + ")");
         final IBluetoothA2dpSink service = getService();
         if (service != null && isEnabled() && isValidDevice(device)) {
@@ -371,7 +371,7 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
-    public boolean isAudioPlaying(@Nullable BluetoothDevice device) {
+    public boolean isAudioPlaying(@NonNull BluetoothDevice device) {
         final IBluetoothA2dpSink service = getService();
         if (service != null && isEnabled() && isValidDevice(device)) {
             try {
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index 608b563..4aad3cb 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -1224,7 +1224,7 @@
      * @return true to indicate that the config file was successfully cleared
      * @hide
      */
-    @SystemApi
+    @UnsupportedAppUsage
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean factoryReset() {
         try {
@@ -1517,8 +1517,9 @@
      * @return true if the scan mode was set, false otherwise
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @UnsupportedAppUsage(publicAlternatives = "Use {@link #ACTION_REQUEST_DISCOVERABLE}, which "
+            + "shows UI that confirms the user wants to go into discoverable mode.")
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public boolean setScanMode(@ScanMode int mode, long durationMillis) {
         if (getState() != STATE_ON) {
             return false;
@@ -1566,8 +1567,8 @@
      * @return true if the scan mode was set, false otherwise
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @UnsupportedAppUsage
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public boolean setScanMode(@ScanMode int mode) {
         if (getState() != STATE_ON) {
             return false;
@@ -1631,7 +1632,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public long getDiscoveryEndMillis() {
         try {
             mServiceLock.readLock().lock();
@@ -1883,7 +1884,6 @@
      *
      * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean connectAllEnabledProfiles(@NonNull BluetoothDevice device) {
         try {
@@ -1912,7 +1912,6 @@
      *
      * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean disconnectAllEnabledProfiles(@NonNull BluetoothDevice device) {
         try {
diff --git a/core/java/android/bluetooth/BluetoothCodecConfig.java b/core/java/android/bluetooth/BluetoothCodecConfig.java
index 93e76fa..d2a1535 100644
--- a/core/java/android/bluetooth/BluetoothCodecConfig.java
+++ b/core/java/android/bluetooth/BluetoothCodecConfig.java
@@ -18,7 +18,6 @@
 
 import android.annotation.IntDef;
 import android.annotation.NonNull;
-import android.annotation.SystemApi;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -34,7 +33,6 @@
  *
  * {@hide}
  */
-@SystemApi
 public final class BluetoothCodecConfig implements Parcelable {
     // Add an entry for each source codec here.
     // NOTE: The values should be same as those listed in the following file:
diff --git a/core/java/android/bluetooth/BluetoothCodecStatus.java b/core/java/android/bluetooth/BluetoothCodecStatus.java
index b6e7739..1e394b8 100644
--- a/core/java/android/bluetooth/BluetoothCodecStatus.java
+++ b/core/java/android/bluetooth/BluetoothCodecStatus.java
@@ -17,7 +17,6 @@
 package android.bluetooth;
 
 import android.annotation.Nullable;
-import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
@@ -32,7 +31,6 @@
  *
  * {@hide}
  */
-@SystemApi
 public final class BluetoothCodecStatus implements Parcelable {
     /**
      * Extra for the codec configuration intents of the individual profiles.
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java
index 6e5f914..594e5ff 100644
--- a/core/java/android/bluetooth/BluetoothDevice.java
+++ b/core/java/android/bluetooth/BluetoothDevice.java
@@ -36,8 +36,6 @@
 import android.os.RemoteException;
 import android.util.Log;
 
-import com.android.internal.annotations.VisibleForTesting;
-
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.lang.annotation.Retention;
@@ -231,6 +229,13 @@
     public static final int BATTERY_LEVEL_UNKNOWN = -1;
 
     /**
+     * Used as an error value for {@link #getBatteryLevel()} to represent bluetooth is off
+     *
+     * @hide
+     */
+    public static final int BATTERY_LEVEL_BLUETOOTH_OFF = -100;
+
+    /**
      * Used as a Parcelable {@link BluetoothDevice} extra field in every intent
      * broadcast by this class. It contains the {@link BluetoothDevice} that
      * the intent applies to.
@@ -1093,8 +1098,8 @@
      * @return true on success, false on error
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @UnsupportedAppUsage
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public boolean setAlias(@NonNull String alias) {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1112,18 +1117,18 @@
     /**
      * Get the most recent identified battery level of this Bluetooth device
      *
-     * @return Battery level in percents from 0 to 100, or {@link #BATTERY_LEVEL_UNKNOWN} if
-     * Bluetooth is disabled, or device is disconnected, or does not have any battery reporting
-     * service, or return value is invalid
+     * @return Battery level in percents from 0 to 100, {@link #BATTERY_LEVEL_BLUETOOTH_OFF} if
+     * Bluetooth is disabled or {@link #BATTERY_LEVEL_UNKNOWN} if device is disconnected, or does
+     * not have any battery reporting service, or return value is invalid
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @UnsupportedAppUsage
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public int getBatteryLevel() {
         final IBluetooth service = sService;
         if (service == null) {
             Log.e(TAG, "Bluetooth disabled. Cannot get remote device battery level");
-            return BATTERY_LEVEL_UNKNOWN;
+            return BATTERY_LEVEL_BLUETOOTH_OFF;
         }
         try {
             return service.getBatteryLevel(this);
@@ -1208,8 +1213,8 @@
      *
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @UnsupportedAppUsage
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public boolean isBondingInitiatedLocally() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1532,7 +1537,7 @@
      * @return true pin has been set false for error
      * @hide
      */
-    @SystemApi
+    @UnsupportedAppUsage
     @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
     public boolean setPin(@NonNull String pin) {
         byte[] pinBytes = convertPinToBytes(pin);
@@ -1569,8 +1574,8 @@
      *
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @UnsupportedAppUsage
+    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
     public boolean cancelPairing() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1601,8 +1606,8 @@
      * #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link #ACCESS_REJECTED}.
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @UnsupportedAppUsage
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public @AccessPermission int getPhonebookAccessPermission() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1709,8 +1714,8 @@
      * @return Whether the message access is allowed to this device.
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @UnsupportedAppUsage
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public @AccessPermission int getMessageAccessPermission() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1727,7 +1732,9 @@
     /**
      * Sets whether the message access is allowed to this device.
      *
-     * @param value is the value we are setting the message access permission to
+     * @param value Can be {@link #ACCESS_UNKNOWN} if the device is unbonded,
+     * {@link #ACCESS_ALLOWED} if the permission is being granted, or {@link #ACCESS_REJECTED} if
+     * the permission is not being granted.
      * @return Whether the value has been successfully set.
      * @hide
      */
@@ -1757,7 +1764,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public @AccessPermission int getSimAccessPermission() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1774,8 +1781,9 @@
     /**
      * Sets whether the Sim access is allowed to this device.
      *
-     * @param value Can be {@link #ACCESS_UNKNOWN}, {@link #ACCESS_ALLOWED} or {@link
-     * #ACCESS_REJECTED}.
+     * @param value Can be {@link #ACCESS_UNKNOWN} if the device is unbonded,
+     * {@link #ACCESS_ALLOWED} if the permission is being granted, or {@link #ACCESS_REJECTED} if
+     * the permission is not being granted.
      * @return Whether the value has been successfully set.
      * @hide
      */
@@ -2011,7 +2019,7 @@
      * @return the pin code as a UTF-8 byte array, or null if it is an invalid Bluetooth pin.
      * @hide
      */
-    @VisibleForTesting
+    @UnsupportedAppUsage
     public static byte[] convertPinToBytes(String pin) {
         if (pin == null) {
             return null;
diff --git a/core/java/android/bluetooth/BluetoothHeadset.java b/core/java/android/bluetooth/BluetoothHeadset.java
index 1ba2bb5..6ce05f9 100644
--- a/core/java/android/bluetooth/BluetoothHeadset.java
+++ b/core/java/android/bluetooth/BluetoothHeadset.java
@@ -572,7 +572,22 @@
     @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN)
     public boolean setPriority(BluetoothDevice device, int priority) {
         if (DBG) log("setPriority(" + device + ", " + priority + ")");
-        return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
+        final IBluetoothHeadset service = mService;
+        if (service != null && isEnabled() && isValidDevice(device)) {
+            if (priority != BluetoothProfile.PRIORITY_OFF
+                    && priority != BluetoothProfile.PRIORITY_ON) {
+                return false;
+            }
+            try {
+                return service.setPriority(
+                        device, BluetoothAdapter.priorityToConnectionPolicy(priority));
+            } catch (RemoteException e) {
+                Log.e(TAG, Log.getStackTraceString(new Throwable()));
+                return false;
+            }
+        }
+        if (service == null) Log.w(TAG, "Proxy not attached to service");
+        return false;
     }
 
     /**
@@ -588,7 +603,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
             @ConnectionPolicy int connectionPolicy) {
         if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
@@ -624,7 +639,17 @@
     @RequiresPermission(Manifest.permission.BLUETOOTH)
     public int getPriority(BluetoothDevice device) {
         if (VDBG) log("getPriority(" + device + ")");
-        return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
+        final IBluetoothHeadset service = mService;
+        if (service != null && isEnabled() && isValidDevice(device)) {
+            try {
+                return BluetoothAdapter.connectionPolicyToPriority(service.getPriority(device));
+            } catch (RemoteException e) {
+                Log.e(TAG, Log.getStackTraceString(new Throwable()));
+                return BluetoothProfile.PRIORITY_OFF;
+            }
+        }
+        if (service == null) Log.w(TAG, "Proxy not attached to service");
+        return BluetoothProfile.PRIORITY_OFF;
     }
 
     /**
@@ -639,7 +664,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
         if (VDBG) log("getConnectionPolicy(" + device + ")");
         final IBluetoothHeadset service = mService;
@@ -1126,16 +1151,13 @@
     /**
      * Get the connected device that is active.
      *
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH}
-     * permission.
-     *
      * @return the connected device that is active or null if no device
      * is active.
      * @hide
      */
-    @SystemApi
+    @UnsupportedAppUsage
     @Nullable
-    @RequiresPermission(android.Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public BluetoothDevice getActiveDevice() {
         if (VDBG) {
             Log.d(TAG, "getActiveDevice");
diff --git a/core/java/android/bluetooth/BluetoothHeadsetClient.java b/core/java/android/bluetooth/BluetoothHeadsetClient.java
index fbda9e9..85e0e08 100644
--- a/core/java/android/bluetooth/BluetoothHeadsetClient.java
+++ b/core/java/android/bluetooth/BluetoothHeadsetClient.java
@@ -17,6 +17,7 @@
 package android.bluetooth;
 
 import android.Manifest;
+import android.annotation.NonNull;
 import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
 import android.compat.annotation.UnsupportedAppUsage;
@@ -442,6 +443,8 @@
      * @param device a remote device we want connect to
      * @return <code>true</code> if command has been issued successfully; <code>false</code>
      * otherwise; upon completion HFP sends {@link #ACTION_CONNECTION_STATE_CHANGED} intent.
+     *
+     * @hide
      */
     @UnsupportedAppUsage
     public boolean connect(BluetoothDevice device) {
@@ -466,6 +469,8 @@
      * @param device a remote device we want disconnect
      * @return <code>true</code> if command has been issued successfully; <code>false</code>
      * otherwise; upon completion HFP sends {@link #ACTION_CONNECTION_STATE_CHANGED} intent.
+     *
+     * @hide
      */
     @UnsupportedAppUsage
     public boolean disconnect(BluetoothDevice device) {
@@ -564,7 +569,7 @@
      * @return true if priority is set, false on error
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setPriority(BluetoothDevice device, int priority) {
         if (DBG) log("setPriority(" + device + ", " + priority + ")");
         return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
@@ -583,8 +588,8 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
-    public boolean setConnectionPolicy(BluetoothDevice device,
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
             @ConnectionPolicy int connectionPolicy) {
         if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
         final IBluetoothHeadsetClient service =
@@ -634,7 +639,7 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.BLUETOOTH)
-    public @ConnectionPolicy int getConnectionPolicy(BluetoothDevice device) {
+    public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
         if (VDBG) log("getConnectionPolicy(" + device + ")");
         final IBluetoothHeadsetClient service =
                 getService();
diff --git a/core/java/android/bluetooth/BluetoothHearingAid.java b/core/java/android/bluetooth/BluetoothHearingAid.java
index 38498bc..fa62a02 100644
--- a/core/java/android/bluetooth/BluetoothHearingAid.java
+++ b/core/java/android/bluetooth/BluetoothHearingAid.java
@@ -162,13 +162,11 @@
      * the state. Users can get the connection state of the profile
      * from this intent.
      *
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
-     * permission.
-     *
      * @param device Remote Bluetooth Device
      * @return false on immediate error, true otherwise
      * @hide
      */
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean connect(BluetoothDevice device) {
         if (DBG) log("connect(" + device + ")");
         final IBluetoothHearingAid service = getService();
@@ -202,13 +200,11 @@
      * {@link #STATE_DISCONNECTING} can be used to distinguish between the
      * two scenarios.
      *
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
-     * permission.
-     *
      * @param device Remote Bluetooth Device
      * @return false on immediate error, true otherwise
      * @hide
      */
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean disconnect(BluetoothDevice device) {
         if (DBG) log("disconnect(" + device + ")");
         final IBluetoothHearingAid service = getService();
@@ -327,15 +323,12 @@
     /**
      * Get the connected physical Hearing Aid devices that are active
      *
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH}
-     * permission.
-     *
      * @return the list of active devices. The first element is the left active
      * device; the second element is the right active device. If either or both side
      * is not active, it will be null on that position. Returns empty list on error.
      * @hide
      */
-    @SystemApi
+    @UnsupportedAppUsage
     @RequiresPermission(Manifest.permission.BLUETOOTH)
     public @NonNull List<BluetoothDevice> getActiveDevices() {
         if (VDBG) log("getActiveDevices()");
@@ -363,7 +356,7 @@
      * @return true if priority is set, false on error
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setPriority(BluetoothDevice device, int priority) {
         if (DBG) log("setPriority(" + device + ", " + priority + ")");
         return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
@@ -382,10 +375,11 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
             @ConnectionPolicy int connectionPolicy) {
         if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
+        verifyDeviceNotNull(device, "setConnectionPolicy");
         final IBluetoothHearingAid service = getService();
         try {
             if (service != null && isEnabled()
@@ -414,7 +408,7 @@
      * @return priority of the device
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public int getPriority(BluetoothDevice device) {
         if (VDBG) log("getPriority(" + device + ")");
         return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
@@ -432,9 +426,10 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
         if (VDBG) log("getConnectionPolicy(" + device + ")");
+        verifyDeviceNotNull(device, "getConnectionPolicy");
         final IBluetoothHearingAid service = getService();
         try {
             if (service != null && isEnabled()
@@ -496,18 +491,22 @@
     }
 
     /**
-     * Get the CustomerId of the device.
+     * Get the HiSyncId (unique hearing aid device identifier) of the device.
+     *
+     * <a href=https://source.android.com/devices/bluetooth/asha#hisyncid>HiSyncId documentation
+     * can be found here</a>
      *
      * @param device Bluetooth device
-     * @return the CustomerId of the device
+     * @return the HiSyncId of the device
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
-    public long getHiSyncId(@Nullable BluetoothDevice device) {
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    public long getHiSyncId(@NonNull BluetoothDevice device) {
         if (VDBG) {
-            log("getCustomerId(" + device + ")");
+            log("getHiSyncId(" + device + ")");
         }
+        verifyDeviceNotNull(device, "getConnectionPolicy");
         final IBluetoothHearingAid service = getService();
         try {
             if (service == null) {
@@ -581,6 +580,13 @@
         return false;
     }
 
+    private void verifyDeviceNotNull(BluetoothDevice device, String methodName) {
+        if (device == null) {
+            Log.e(TAG, methodName + ": device param is null");
+            throw new IllegalArgumentException("Device cannot be null");
+        }
+    }
+
     private boolean isValidDevice(BluetoothDevice device) {
         if (device == null) return false;
 
diff --git a/core/java/android/bluetooth/BluetoothHidHost.java b/core/java/android/bluetooth/BluetoothHidHost.java
index e9e1f68..9561d93 100644
--- a/core/java/android/bluetooth/BluetoothHidHost.java
+++ b/core/java/android/bluetooth/BluetoothHidHost.java
@@ -263,13 +263,11 @@
      * the state. Users can get the connection state of the profile
      * from this intent.
      *
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
-     * permission.
-     *
      * @param device Remote Bluetooth Device
      * @return false on immediate error, true otherwise
      * @hide
      */
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean connect(BluetoothDevice device) {
         if (DBG) log("connect(" + device + ")");
         final IBluetoothHidHost service = getService();
@@ -303,13 +301,11 @@
      * {@link #STATE_DISCONNECTING} can be used to distinguish between the
      * two scenarios.
      *
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
-     * permission.
-     *
      * @param device Remote Bluetooth Device
      * @return false on immediate error, true otherwise
      * @hide
      */
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean disconnect(BluetoothDevice device) {
         if (DBG) log("disconnect(" + device + ")");
         final IBluetoothHidHost service = getService();
@@ -327,7 +323,10 @@
 
     /**
      * {@inheritDoc}
+     *
+     * @hide
      */
+    @SystemApi
     @Override
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public @NonNull List<BluetoothDevice> getConnectedDevices() {
@@ -368,7 +367,10 @@
 
     /**
      * {@inheritDoc}
+     *
+     * @hide
      */
+    @SystemApi
     @Override
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public int getConnectionState(@NonNull BluetoothDevice device) {
@@ -400,7 +402,7 @@
      * @return true if priority is set, false on error
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setPriority(BluetoothDevice device, int priority) {
         if (DBG) log("setPriority(" + device + ", " + priority + ")");
         return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
@@ -419,7 +421,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
             @ConnectionPolicy int connectionPolicy) {
         if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
@@ -453,7 +455,7 @@
      * @return priority of the device
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public int getPriority(BluetoothDevice device) {
         if (VDBG) log("getPriority(" + device + ")");
         return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
@@ -471,7 +473,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
         if (VDBG) log("getConnectionPolicy(" + device + ")");
         if (device == null) {
diff --git a/core/java/android/bluetooth/BluetoothMap.java b/core/java/android/bluetooth/BluetoothMap.java
index cc2b615..14a71c4 100644
--- a/core/java/android/bluetooth/BluetoothMap.java
+++ b/core/java/android/bluetooth/BluetoothMap.java
@@ -18,7 +18,6 @@
 
 import android.Manifest;
 import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
 import android.annotation.SuppressLint;
 import android.annotation.SystemApi;
@@ -328,7 +327,7 @@
      * @return true if priority is set, false on error
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setPriority(BluetoothDevice device, int priority) {
         if (DBG) log("setPriority(" + device + ", " + priority + ")");
         return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
@@ -347,8 +346,8 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
-    public boolean setConnectionPolicy(@Nullable BluetoothDevice device,
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
             @ConnectionPolicy int connectionPolicy) {
         if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
         final IBluetoothMap service = getService();
@@ -378,7 +377,7 @@
      * @return priority of the device
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public int getPriority(BluetoothDevice device) {
         if (VDBG) log("getPriority(" + device + ")");
         return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
@@ -396,8 +395,8 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
-    public @ConnectionPolicy int getConnectionPolicy(@Nullable BluetoothDevice device) {
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
         if (VDBG) log("getConnectionPolicy(" + device + ")");
         final IBluetoothMap service = getService();
         if (service != null && isEnabled() && isValidDevice(device)) {
diff --git a/core/java/android/bluetooth/BluetoothMapClient.java b/core/java/android/bluetooth/BluetoothMapClient.java
index 8d2aadd..19240dc 100644
--- a/core/java/android/bluetooth/BluetoothMapClient.java
+++ b/core/java/android/bluetooth/BluetoothMapClient.java
@@ -17,6 +17,7 @@
 package android.bluetooth;
 
 import android.Manifest;
+import android.annotation.NonNull;
 import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
 import android.app.PendingIntent;
@@ -140,7 +141,10 @@
     /**
      * Initiate connection. Initiation of outgoing connections is not
      * supported for MAP server.
+     *
+     * @hide
      */
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean connect(BluetoothDevice device) {
         if (DBG) Log.d(TAG, "connect(" + device + ")" + "for MAPS MCE");
         final IBluetoothMapClient service = getService();
@@ -162,7 +166,10 @@
      *
      * @param device Remote Bluetooth Device
      * @return false on error, true otherwise
+     *
+     * @hide
      */
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean disconnect(BluetoothDevice device) {
         if (DBG) Log.d(TAG, "disconnect(" + device + ")");
         final IBluetoothMapClient service = getService();
@@ -251,7 +258,7 @@
      * @return true if priority is set, false on error
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setPriority(BluetoothDevice device, int priority) {
         if (DBG) Log.d(TAG, "setPriority(" + device + ", " + priority + ")");
         return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
@@ -270,8 +277,8 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
-    public boolean setConnectionPolicy(BluetoothDevice device,
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
             @ConnectionPolicy int connectionPolicy) {
         if (DBG) Log.d(TAG, "setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
         final IBluetoothMapClient service = getService();
@@ -301,7 +308,7 @@
      * @return priority of the device
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public int getPriority(BluetoothDevice device) {
         if (VDBG) Log.d(TAG, "getPriority(" + device + ")");
         return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
@@ -319,8 +326,8 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
-    public @ConnectionPolicy int getConnectionPolicy(BluetoothDevice device) {
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
         if (VDBG) Log.d(TAG, "getConnectionPolicy(" + device + ")");
         final IBluetoothMapClient service = getService();
         if (service != null && isEnabled() && isValidDevice(device)) {
diff --git a/core/java/android/bluetooth/BluetoothPan.java b/core/java/android/bluetooth/BluetoothPan.java
index ec63fd0..a80f5b7 100644
--- a/core/java/android/bluetooth/BluetoothPan.java
+++ b/core/java/android/bluetooth/BluetoothPan.java
@@ -19,7 +19,6 @@
 import android.Manifest;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
@@ -30,7 +29,6 @@
 import android.os.Binder;
 import android.os.IBinder;
 import android.os.RemoteException;
-import android.util.CloseGuard;
 import android.util.Log;
 
 import java.lang.annotation.Retention;
@@ -51,11 +49,10 @@
  * @hide
  */
 @SystemApi
-public final class BluetoothPan implements BluetoothProfile, AutoCloseable {
+public final class BluetoothPan implements BluetoothProfile {
     private static final String TAG = "BluetoothPan";
     private static final boolean DBG = true;
     private static final boolean VDBG = false;
-    private CloseGuard mCloseGuard;
 
     /**
      * Intent used to broadcast the change in connection state of the Pan
@@ -168,15 +165,13 @@
         mAdapter = BluetoothAdapter.getDefaultAdapter();
         mContext = context;
         mProfileConnector.connect(context, listener);
-        mCloseGuard = new CloseGuard();
-        mCloseGuard.open("close");
     }
 
     /**
      * Closes the connection to the service and unregisters callbacks
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
-    public void close() {
+    @UnsupportedAppUsage
+    void close() {
         if (VDBG) log("close()");
         mProfileConnector.disconnect();
     }
@@ -185,11 +180,8 @@
         return mProfileConnector.getService();
     }
 
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    /** @hide */
     protected void finalize() {
-        if (mCloseGuard != null) {
-            mCloseGuard.warnIfOpen();
-        }
         close();
     }
 
@@ -203,9 +195,6 @@
      * the state. Users can get the connection state of the profile
      * from this intent.
      *
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
-     * permission.
-     *
      * @param device Remote Bluetooth Device
      * @return false on immediate error, true otherwise
      * @hide
@@ -244,9 +233,6 @@
      * {@link #STATE_DISCONNECTING} can be used to distinguish between the
      * two scenarios.
      *
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}
-     * permission.
-     *
      * @param device Remote Bluetooth Device
      * @return false on immediate error, true otherwise
      * @hide
@@ -280,7 +266,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
             @ConnectionPolicy int connectionPolicy) {
         if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
@@ -304,8 +290,11 @@
 
     /**
      * {@inheritDoc}
+     * @hide
      */
+    @SystemApi
     @Override
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public @NonNull List<BluetoothDevice> getConnectedDevices() {
         if (VDBG) log("getConnectedDevices()");
         final IBluetoothPan service = getService();
@@ -344,10 +333,12 @@
 
     /**
      * {@inheritDoc}
+     * @hide
      */
+    @SystemApi
     @Override
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
-    public int getConnectionState(@Nullable BluetoothDevice device) {
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    public int getConnectionState(@NonNull BluetoothDevice device) {
         if (VDBG) log("getState(" + device + ")");
         final IBluetoothPan service = getService();
         if (service != null && isEnabled() && isValidDevice(device)) {
@@ -366,8 +357,10 @@
      * Turns on/off bluetooth tethering
      *
      * @param value is whether to enable or disable bluetooth tethering
+     * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @SystemApi
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public void setBluetoothTethering(boolean value) {
         String pkgName = mContext.getOpPackageName();
         if (DBG) log("setBluetoothTethering(" + value + "), calling package:" + pkgName);
@@ -385,8 +378,10 @@
      * Determines whether tethering is enabled
      *
      * @return true if tethering is on, false if not or some error occurred
+     * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @SystemApi
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean isTetheringOn() {
         if (VDBG) log("isTetheringOn()");
         final IBluetoothPan service = getService();
diff --git a/core/java/android/bluetooth/BluetoothPbap.java b/core/java/android/bluetooth/BluetoothPbap.java
index 277a5a8..d58a893 100644
--- a/core/java/android/bluetooth/BluetoothPbap.java
+++ b/core/java/android/bluetooth/BluetoothPbap.java
@@ -18,7 +18,6 @@
 
 import android.Manifest;
 import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
 import android.annotation.SdkConstant;
 import android.annotation.SuppressLint;
@@ -239,7 +238,7 @@
     @SystemApi
     @Override
     @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
-    public @BtProfileState int getConnectionState(@Nullable BluetoothDevice device) {
+    public @BtProfileState int getConnectionState(@NonNull BluetoothDevice device) {
         log("getConnectionState: device=" + device);
         try {
             final IBluetoothPbap service = mService;
diff --git a/core/java/android/bluetooth/BluetoothPbapClient.java b/core/java/android/bluetooth/BluetoothPbapClient.java
index 9563c68..d3452ff 100644
--- a/core/java/android/bluetooth/BluetoothPbapClient.java
+++ b/core/java/android/bluetooth/BluetoothPbapClient.java
@@ -17,6 +17,7 @@
 package android.bluetooth;
 
 import android.Manifest;
+import android.annotation.NonNull;
 import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
 import android.content.Context;
@@ -101,7 +102,10 @@
      * @param device a remote device we want connect to
      * @return <code>true</code> if command has been issued successfully; <code>false</code>
      * otherwise;
+     *
+     * @hide
      */
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean connect(BluetoothDevice device) {
         if (DBG) {
             log("connect(" + device + ") for PBAP Client.");
@@ -126,7 +130,10 @@
      *
      * @param device Remote Bluetooth Device
      * @return false on error, true otherwise
+     *
+     * @hide
      */
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean disconnect(BluetoothDevice device) {
         if (DBG) {
             log("disconnect(" + device + ")" + new Exception());
@@ -251,7 +258,7 @@
      * @return true if priority is set, false on error
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setPriority(BluetoothDevice device, int priority) {
         if (DBG) log("setPriority(" + device + ", " + priority + ")");
         return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
@@ -270,8 +277,8 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
-    public boolean setConnectionPolicy(BluetoothDevice device,
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
             @ConnectionPolicy int connectionPolicy) {
         if (DBG) {
             log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
@@ -305,7 +312,7 @@
      * @return priority of the device
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public int getPriority(BluetoothDevice device) {
         if (VDBG) log("getPriority(" + device + ")");
         return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
@@ -323,8 +330,8 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
-    public @ConnectionPolicy int getConnectionPolicy(BluetoothDevice device) {
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+    public @ConnectionPolicy int getConnectionPolicy(@NonNull BluetoothDevice device) {
         if (VDBG) {
             log("getConnectionPolicy(" + device + ")");
         }
diff --git a/core/java/android/bluetooth/BluetoothSap.java b/core/java/android/bluetooth/BluetoothSap.java
index bfc3a4d..6e03481 100644
--- a/core/java/android/bluetooth/BluetoothSap.java
+++ b/core/java/android/bluetooth/BluetoothSap.java
@@ -310,7 +310,7 @@
      * @return true if priority is set, false on error
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setPriority(BluetoothDevice device, int priority) {
         if (DBG) log("setPriority(" + device + ", " + priority + ")");
         return setConnectionPolicy(device, BluetoothAdapter.priorityToConnectionPolicy(priority));
@@ -329,7 +329,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean setConnectionPolicy(BluetoothDevice device,
             @ConnectionPolicy int connectionPolicy) {
         if (DBG) log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
@@ -360,7 +360,7 @@
      * @return priority of the device
      * @hide
      */
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public int getPriority(BluetoothDevice device) {
         if (VDBG) log("getPriority(" + device + ")");
         return BluetoothAdapter.connectionPolicyToPriority(getConnectionPolicy(device));
@@ -378,7 +378,7 @@
      * @hide
      */
     @SystemApi
-    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public @ConnectionPolicy int getConnectionPolicy(BluetoothDevice device) {
         if (VDBG) log("getConnectionPolicy(" + device + ")");
         final IBluetoothSap service = getService();
diff --git a/core/java/android/content/ContentProvider.java b/core/java/android/content/ContentProvider.java
index d8e8b27..9cf6569 100644
--- a/core/java/android/content/ContentProvider.java
+++ b/core/java/android/content/ContentProvider.java
@@ -47,6 +47,7 @@
 import android.os.CancellationSignal;
 import android.os.IBinder;
 import android.os.ICancellationSignal;
+import android.os.Parcel;
 import android.os.ParcelFileDescriptor;
 import android.os.Process;
 import android.os.RemoteCallback;
@@ -303,7 +304,11 @@
         @Override
         public void getTypeAsync(Uri uri, RemoteCallback callback) {
             final Bundle result = new Bundle();
-            result.putString(ContentResolver.REMOTE_CALLBACK_RESULT, getType(uri));
+            try {
+                result.putString(ContentResolver.REMOTE_CALLBACK_RESULT, getType(uri));
+            } catch (Exception e) {
+                putExceptionInBundle(result, ContentResolver.REMOTE_CALLBACK_ERROR, e);
+            }
             callback.sendResult(result);
         }
 
@@ -585,8 +590,12 @@
         public void canonicalizeAsync(String callingPkg, @Nullable String attributionTag, Uri uri,
                 RemoteCallback callback) {
             final Bundle result = new Bundle();
-            result.putParcelable(ContentResolver.REMOTE_CALLBACK_RESULT,
-                    canonicalize(callingPkg, attributionTag, uri));
+            try {
+                result.putParcelable(ContentResolver.REMOTE_CALLBACK_RESULT,
+                        canonicalize(callingPkg, attributionTag, uri));
+            } catch (Exception e) {
+                putExceptionInBundle(result, ContentResolver.REMOTE_CALLBACK_ERROR, e);
+            }
             callback.sendResult(result);
         }
 
@@ -700,6 +709,22 @@
 
             return AppOpsManager.MODE_ALLOWED;
         }
+
+        private void putExceptionInBundle(Bundle bundle, String key, Exception e) {
+            Parcel parcel = Parcel.obtain();
+            try {
+                try {
+                    parcel.writeException(e);
+                } catch (Exception ex) {
+                    // getType threw an unparcelable exception. Wrap the message into
+                    // a parcelable exception type
+                    parcel.writeException(new IllegalStateException(e.getMessage()));
+                }
+                bundle.putByteArray(key, parcel.marshall());
+            } finally {
+                parcel.recycle();
+            }
+        }
     }
 
     boolean checkUser(int pid, int uid, Context context) {
@@ -1585,6 +1610,10 @@
      * This method is typically used when the provider implements more dynamic
      * access controls that cannot be expressed with {@code <path-permission>}
      * style static rules.
+     * <p>
+     * Because validation of these dynamic access controls has significant
+     * system health impact, this feature is only available to providers that
+     * are built into the system.
      *
      * @param uri the {@link Uri} to perform an access check on.
      * @param uid the UID to check the permission for.
diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java
index b134c37..59862ae 100644
--- a/core/java/android/content/ContentResolver.java
+++ b/core/java/android/content/ContentResolver.java
@@ -55,6 +55,7 @@
 import android.os.IBinder;
 import android.os.ICancellationSignal;
 import android.os.OperationCanceledException;
+import android.os.Parcel;
 import android.os.ParcelFileDescriptor;
 import android.os.RemoteCallback;
 import android.os.RemoteException;
@@ -735,6 +736,9 @@
     /** @hide */
     public static final String REMOTE_CALLBACK_RESULT = "result";
 
+    /** @hide */
+    public static final String REMOTE_CALLBACK_ERROR = "error";
+
     /**
      * How long we wait for an attached process to publish its content providers
      * before we decide it must be hung.
@@ -874,6 +878,9 @@
                 final StringResultListener resultListener = new StringResultListener();
                 provider.getTypeAsync(url, new RemoteCallback(resultListener));
                 resultListener.waitForResult(CONTENT_PROVIDER_TIMEOUT_MILLIS);
+                if (resultListener.exception != null) {
+                    throw resultListener.exception;
+                }
                 return resultListener.result;
             } catch (RemoteException e) {
                 // Arbitrary and not worth documenting, as Activity
@@ -898,6 +905,9 @@
                     resolveUserId(url),
                     new RemoteCallback(resultListener));
             resultListener.waitForResult(REMOTE_CONTENT_PROVIDER_TIMEOUT_MILLIS);
+            if (resultListener.exception != null) {
+                throw resultListener.exception;
+            }
             return resultListener.result;
         } catch (RemoteException e) {
             // We just failed to send a oneway request to the System Server. Nothing to do.
@@ -915,15 +925,41 @@
         @GuardedBy("this")
         public T result;
 
+        @GuardedBy("this")
+        public RuntimeException exception;
+
         @Override
         public void onResult(Bundle result) {
             synchronized (this) {
-                this.result = getResultFromBundle(result);
+                this.exception = getExceptionFromBundle(result);
+                if (this.exception == null) {
+                    this.result = getResultFromBundle(result);
+                }
                 done = true;
                 notifyAll();
             }
         }
 
+        private RuntimeException getExceptionFromBundle(Bundle result) {
+            byte[] bytes = result.getByteArray(REMOTE_CALLBACK_ERROR);
+            if (bytes == null) {
+                return null;
+            }
+
+            Parcel parcel = Parcel.obtain();
+            try {
+                parcel.unmarshall(bytes, 0, bytes.length);
+                parcel.setDataPosition(0);
+                parcel.readException();
+            } catch (RuntimeException ex) {
+                return ex;
+            } finally {
+                parcel.recycle();
+            }
+
+            return null;
+        }
+
         protected abstract T getResultFromBundle(Bundle result);
 
         public void waitForResult(long timeout) {
@@ -1250,6 +1286,9 @@
             provider.canonicalizeAsync(mPackageName, mAttributionTag, url,
                     new RemoteCallback(resultListener));
             resultListener.waitForResult(CONTENT_PROVIDER_TIMEOUT_MILLIS);
+            if (resultListener.exception != null) {
+                throw resultListener.exception;
+            }
             return resultListener.result;
         } catch (RemoteException e) {
             // Arbitrary and not worth documenting, as Activity
@@ -1357,8 +1396,28 @@
         }
     }
 
-    /** {@hide} */
+    /**
+     * Perform a detailed internal check on a {@link Uri} to determine if a UID
+     * is able to access it with specific mode flags.
+     * <p>
+     * This method is typically used when the provider implements more dynamic
+     * access controls that cannot be expressed with {@code <path-permission>}
+     * style static rules.
+     * <p>
+     * Because validation of these dynamic access controls has significant
+     * system health impact, this feature is only available to providers that
+     * are built into the system.
+     *
+     * @param uri the {@link Uri} to perform an access check on.
+     * @param uid the UID to check the permission for.
+     * @param modeFlags the access flags to use for the access check, such as
+     *            {@link Intent#FLAG_GRANT_READ_URI_PERMISSION}.
+     * @return {@link PackageManager#PERMISSION_GRANTED} if access is allowed,
+     *         otherwise {@link PackageManager#PERMISSION_DENIED}.
+     * @hide
+     */
     @Override
+    @SystemApi
     public int checkUriPermission(@NonNull Uri uri, int uid, @Intent.AccessUriMode int modeFlags) {
         Objects.requireNonNull(uri, "uri");
 
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 318ae11..e21a31e 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -3430,7 +3430,7 @@
             TELEPHONY_SUBSCRIPTION_SERVICE,
             CARRIER_CONFIG_SERVICE,
             EUICC_SERVICE,
-            MMS_SERVICE,
+            //@hide: MMS_SERVICE,
             TELECOM_SERVICE,
             CLIPBOARD_SERVICE,
             INPUT_METHOD_SERVICE,
@@ -3984,15 +3984,13 @@
      * @hide
      * @see NetworkStackClient
      */
-    @SystemApi
-    @TestApi
     public static final String NETWORK_STACK_SERVICE = "network_stack";
 
     /**
-     * Use with {@link android.os.ServiceManager.getService()} to retrieve a
-     * {@link ITetheringConnector} IBinder for communicating with the tethering service
+     * Use with {@link #getSystemService(String)} to retrieve a {@link android.net.TetheringManager}
+     * for managing tethering functions.
      * @hide
-     * @see TetheringClient
+     * @see android.net.TetheringManager
      */
     @SystemApi
     public static final String TETHERING_SERVICE = "tethering";
@@ -4067,8 +4065,6 @@
      */
     public static final String NETWORK_STATS_SERVICE = "netstats";
     /** {@hide} */
-    @SystemApi
-    @SuppressLint("ServiceName")
     public static final String NETWORK_POLICY_SERVICE = "netpolicy";
     /** {@hide} */
     public static final String NETWORK_WATCHLIST_SERVICE = "network_watchlist";
@@ -4344,6 +4340,7 @@
      *
      * @see #getSystemService(String)
      * @see android.telephony.MmsManager
+     * @hide
      */
     public static final String MMS_SERVICE = "mms";
 
@@ -5105,7 +5102,6 @@
      * {@link TelephonyRegistryManager}.
      * @hide
      */
-    @SystemApi
     public static final String TELEPHONY_REGISTRY_SERVICE = "telephony_registry";
 
     /**
@@ -6107,4 +6103,13 @@
                     + "get a UI context from ActivityThread#getSystemUiContext()");
         }
     }
+
+    /**
+     * Indicates if this context is a visual context such as {@link android.app.Activity} or
+     * a context created from {@link #createWindowContext(int, Bundle)}.
+     * @hide
+     */
+    public boolean isUiContext() {
+        throw new RuntimeException("Not implemented. Must override in a subclass.");
+    }
 }
diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java
index d389d2a..5dc41e4 100644
--- a/core/java/android/content/ContextWrapper.java
+++ b/core/java/android/content/ContextWrapper.java
@@ -1145,4 +1145,12 @@
             mBase.setContentCaptureOptions(options);
         }
     }
+
+    /**
+     * @hide
+     */
+    @Override
+    public boolean isUiContext() {
+        return mBase.isUiContext();
+    }
 }
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 38c1890..b1d6c83 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -3675,9 +3675,7 @@
      * {@link android.Manifest.permission#MANAGE_USERS} to receive this broadcast.
      * @hide
      */
-    @RequiresPermission(android.Manifest.permission.MANAGE_USERS)
-    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
-    @SystemApi
+    @UnsupportedAppUsage
     public static final String ACTION_USER_SWITCHED =
             "android.intent.action.USER_SWITCHED";
 
@@ -11217,6 +11215,17 @@
                 && hasWebURI();
     }
 
+    private boolean isImageCaptureIntent() {
+        return (MediaStore.ACTION_IMAGE_CAPTURE.equals(mAction)
+                || MediaStore.ACTION_IMAGE_CAPTURE_SECURE.equals(mAction)
+                || MediaStore.ACTION_VIDEO_CAPTURE.equals(mAction));
+    }
+
+    /** @hide */
+    public boolean isImplicitImageCaptureIntent() {
+        return mPackage == null && mComponent == null && isImageCaptureIntent();
+    }
+
     /**
      * @hide
      */
@@ -11243,9 +11252,7 @@
                 }
                 putParcelableArrayListExtra(EXTRA_STREAM, newStreams);
             }
-        } else if (MediaStore.ACTION_IMAGE_CAPTURE.equals(action)
-                || MediaStore.ACTION_IMAGE_CAPTURE_SECURE.equals(action)
-                || MediaStore.ACTION_VIDEO_CAPTURE.equals(action)) {
+        } else if (isImageCaptureIntent()) {
             final Uri output = getParcelableExtra(MediaStore.EXTRA_OUTPUT);
             if (output != null) {
                 putExtra(MediaStore.EXTRA_OUTPUT, maybeAddUserId(output, contentUserHint));
@@ -11351,9 +11358,7 @@
                 }
             } catch (ClassCastException e) {
             }
-        } else if (MediaStore.ACTION_IMAGE_CAPTURE.equals(action)
-                || MediaStore.ACTION_IMAGE_CAPTURE_SECURE.equals(action)
-                || MediaStore.ACTION_VIDEO_CAPTURE.equals(action)) {
+        } else if (isImageCaptureIntent()) {
             final Uri output;
             try {
                 output = getParcelableExtra(MediaStore.EXTRA_OUTPUT);
diff --git a/core/java/android/content/IntentFilter.java b/core/java/android/content/IntentFilter.java
index f19ab01..f951d2b 100644
--- a/core/java/android/content/IntentFilter.java
+++ b/core/java/android/content/IntentFilter.java
@@ -274,8 +274,13 @@
      */
     public static final String SCHEME_HTTPS = "https";
 
-    /** The value to indicate a wildcard for incoming match arguments. */
-    private static final String WILDCARD = "*";
+    /**
+     * The value to indicate a wildcard for incoming match arguments.
+     * @hide
+     */
+    public static final String WILDCARD = "*";
+    /** @hide */
+    public static final String WILDCARD_PATH = "/" + WILDCARD;
 
     private int mPriority;
     @UnsupportedAppUsage
@@ -1439,7 +1444,7 @@
         if (mDataPaths == null) {
             return false;
         }
-        if (wildcardSupported && WILDCARD.equals(data)) {
+        if (wildcardSupported && WILDCARD_PATH.equals(data)) {
             return true;
         }
         final int numDataPaths = mDataPaths.size();
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java
index c82fffa..b6706011 100644
--- a/core/java/android/content/pm/ApplicationInfo.java
+++ b/core/java/android/content/pm/ApplicationInfo.java
@@ -59,8 +59,6 @@
  * &lt;application&gt; tag.
  */
 public class ApplicationInfo extends PackageItemInfo implements Parcelable {
-    private static ForBoolean sForBoolean = Parcelling.Cache.getOrCreate(ForBoolean.class);
-
     /**
      * Default task affinity of all activities in this application. See 
      * {@link ActivityInfo#taskAffinity} for more information.  This comes 
@@ -754,6 +752,30 @@
     public @interface ApplicationInfoPrivateFlags {}
 
     /**
+     * Constant corresponding to <code>allowed</code> in the
+     * {@link android.R.attr#autoRevokePermissions} attribute.
+     *
+     * @hide
+     */
+    public static final int AUTO_REVOKE_ALLOWED = 0;
+
+    /**
+     * Constant corresponding to <code>discouraged</code> in the
+     * {@link android.R.attr#autoRevokePermissions} attribute.
+     *
+     * @hide
+     */
+    public static final int AUTO_REVOKE_DISCOURAGED = 1;
+
+    /**
+     * Constant corresponding to <code>disallowed</code> in the
+     * {@link android.R.attr#autoRevokePermissions} attribute.
+     *
+     * @hide
+     */
+    public static final int AUTO_REVOKE_DISALLOWED = 2;
+
+    /**
      * Private/hidden flags. See {@code PRIVATE_FLAG_...} constants.
      * @hide
      */
@@ -1277,12 +1299,37 @@
     public String zygotePreloadName;
 
     /**
-     * Indicates if the application has requested GWP-ASan to be enabled, disabled, or left
-     * unspecified. Processes can override this setting.
+     * Default (unspecified) setting of GWP-ASan.
+     */
+    public static final int GWP_ASAN_DEFAULT = -1;
+
+    /**
+     * Never enable GWP-ASan in this application or process.
+     */
+    public static final int GWP_ASAN_NEVER = 0;
+
+    /**
+     * Always enable GWP-ASan in this application or process.
+     */
+    public static final int GWP_ASAN_ALWAYS = 1;
+
+    /**
+     * These constants need to match the values of gwpAsanMode in application manifest.
      * @hide
      */
-    @Nullable
-    public Boolean enableGwpAsan;
+    @IntDef(prefix = {"GWP_ASAN_"}, value = {
+            GWP_ASAN_DEFAULT,
+            GWP_ASAN_NEVER,
+            GWP_ASAN_ALWAYS,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface GwpAsanMode {}
+
+    /**
+     * Indicates if the application has requested GWP-ASan to be enabled, disabled, or left
+     * unspecified. Processes can override this setting.
+     */
+    private @GwpAsanMode int gwpAsanMode;
 
     /**
      * Represents the default policy. The actual policy used will depend on other properties of
@@ -1425,8 +1472,8 @@
             pw.println(prefix + "usesNonSdkApi=" + usesNonSdkApi());
             pw.println(prefix + "allowsPlaybackCapture="
                         + (isAudioPlaybackCaptureAllowed() ? "true" : "false"));
-            if (enableGwpAsan != null) {
-                pw.println(prefix + "enableGwpAsan=" + enableGwpAsan);
+            if (gwpAsanMode != GWP_ASAN_DEFAULT) {
+                pw.println(prefix + "gwpAsanMode=" + gwpAsanMode);
             }
         }
         super.dumpBack(pw, prefix);
@@ -1526,8 +1573,8 @@
             if (category != CATEGORY_UNDEFINED) {
                 proto.write(ApplicationInfoProto.Detail.CATEGORY, category);
             }
-            if (enableGwpAsan != null) {
-                proto.write(ApplicationInfoProto.Detail.ENABLE_GWP_ASAN, enableGwpAsan);
+            if (gwpAsanMode != GWP_ASAN_DEFAULT) {
+                proto.write(ApplicationInfoProto.Detail.ENABLE_GWP_ASAN, gwpAsanMode);
             }
             proto.end(detailToken);
         }
@@ -1638,7 +1685,7 @@
         mHiddenApiPolicy = orig.mHiddenApiPolicy;
         hiddenUntilInstalled = orig.hiddenUntilInstalled;
         zygotePreloadName = orig.zygotePreloadName;
-        enableGwpAsan = orig.enableGwpAsan;
+        gwpAsanMode = orig.gwpAsanMode;
     }
 
     public String toString() {
@@ -1722,7 +1769,7 @@
         dest.writeInt(mHiddenApiPolicy);
         dest.writeInt(hiddenUntilInstalled ? 1 : 0);
         dest.writeString(zygotePreloadName);
-        sForBoolean.parcel(enableGwpAsan, dest, parcelableFlags);
+        dest.writeInt(gwpAsanMode);
     }
 
     public static final @android.annotation.NonNull Parcelable.Creator<ApplicationInfo> CREATOR
@@ -1803,7 +1850,7 @@
         mHiddenApiPolicy = source.readInt();
         hiddenUntilInstalled = source.readInt() != 0;
         zygotePreloadName = source.readString();
-        enableGwpAsan = sForBoolean.unparcel(source);
+        gwpAsanMode = source.readInt();
     }
 
     /**
@@ -2182,7 +2229,7 @@
     /** {@hide} */ public void setResourcePath(String resourcePath) { scanPublicSourceDir = resourcePath; }
     /** {@hide} */ public void setBaseResourcePath(String baseResourcePath) { publicSourceDir = baseResourcePath; }
     /** {@hide} */ public void setSplitResourcePaths(String[] splitResourcePaths) { splitPublicSourceDirs = splitResourcePaths; }
-    /** {@hide} */ public void setGwpAsanEnabled(@Nullable Boolean value) { enableGwpAsan = value; }
+    /** {@hide} */ public void setGwpAsanMode(@GwpAsanMode int value) { gwpAsanMode = value; }
 
     /** {@hide} */
     @UnsupportedAppUsage
@@ -2194,6 +2241,6 @@
     @UnsupportedAppUsage
     public String getBaseResourcePath() { return publicSourceDir; }
     /** {@hide} */ public String[] getSplitResourcePaths() { return splitPublicSourceDirs; }
-    @Nullable
-    public Boolean isGwpAsanEnabled() { return enableGwpAsan; }
+    @GwpAsanMode
+    public int getGwpAsanMode() { return gwpAsanMode; }
 }
diff --git a/core/java/android/content/pm/CrossProfileApps.java b/core/java/android/content/pm/CrossProfileApps.java
index dc3a029..7578ede 100644
--- a/core/java/android/content/pm/CrossProfileApps.java
+++ b/core/java/android/content/pm/CrossProfileApps.java
@@ -268,15 +268,17 @@
     }
 
     /**
-     * Returns whether the calling package can request user consent to interact across profiles.
+     * Returns whether the calling package can request to navigate the user to
+     * the relevant settings page to request user consent to interact across profiles.
      *
-     * <p>If {@code true}, user consent can be obtained via {@link
+     * <p>If {@code true}, the navigation intent can be obtained via {@link
      * #createRequestInteractAcrossProfilesIntent()}. The package can then listen to {@link
      * #ACTION_CAN_INTERACT_ACROSS_PROFILES_CHANGED} broadcasts.
      *
      * <p>Specifically, returns whether the following are all true:
      * <ul>
-     * <li>{@link #getTargetUserProfiles()} returns a non-empty list for the calling user.</li>
+     * <li>{@code UserManager#getEnabledProfileIds(int)} ()} returns at least one other profile for
+     * the calling user.</li>
      * <li>The calling app has requested</li>
      * {@code android.Manifest.permission.INTERACT_ACROSS_PROFILES} in its manifest.
      * <li>The calling package has either been whitelisted by default by the OEM or has been
@@ -285,6 +287,10 @@
      * </li>
      * </ul>
      *
+     * <p>Note that in order for the user to be able to grant the consent, the requesting package
+     * must be whitelisted by the admin or the OEM and installed in the other profile. If this is
+     * not the case the user will be shown a message explaining why they can't grant the consent.
+     *
      * <p>Note that user consent could already be granted if given a return value of {@code true}.
      * The package's current ability to interact across profiles can be checked with {@link
      * #canInteractAcrossProfiles()}.
@@ -334,7 +340,7 @@
      * Returns an {@link Intent} to open the settings page that allows the user to decide whether
      * the calling app can interact across profiles.
      *
-     * <p>Returns {@code null} if {@link #canRequestInteractAcrossProfiles()} is {@code false}.
+     * <p>The method {@link #canRequestInteractAcrossProfiles()} must be returning {@code true}.
      *
      * <p>Note that the user may already have given consent and the app may already be able to
      * interact across profiles, even if {@link #canRequestInteractAcrossProfiles()} is {@code
@@ -345,11 +351,12 @@
      * the app can interact across profiles
      *
      * @throws SecurityException if {@code mContext.getPackageName()} does not belong to the
-     * calling UID.
+     * calling UID, or {@link #canRequestInteractAcrossProfiles()} is {@code false}.
      */
-    public @Nullable Intent createRequestInteractAcrossProfilesIntent() {
+    public @NonNull Intent createRequestInteractAcrossProfilesIntent() {
         if (!canRequestInteractAcrossProfiles()) {
-            return null;
+            throw new SecurityException(
+                    "The calling package can not request to interact across profiles.");
         }
         final Intent settingsIntent = new Intent();
         settingsIntent.setAction(Settings.ACTION_MANAGE_CROSS_PROFILE_ACCESS);
@@ -421,6 +428,23 @@
     }
 
     /**
+     * Returns {@code true} if the given package has requested
+     * {@link android.Manifest.permission#INTERACT_ACROSS_PROFILES} and the user has at least one
+     * other profile in the same profile group.
+     *
+     * <p>This differs from {@link #canConfigureInteractAcrossProfiles(String)} since it will
+     * not return {@code false} if the app is not whitelisted or not installed in the other profile.
+     *
+     * @hide
+     */
+    public boolean canUserAttemptToConfigureInteractAcrossProfiles(String packageName) {
+        try {
+            return mService.canUserAttemptToConfigureInteractAcrossProfiles(packageName);
+        } catch (RemoteException ex) {
+            throw ex.rethrowFromSystemServer();
+        }
+    }
+    /**
      * For each of the packages defined in {@code previousCrossProfilePackages} but not included in
      * {@code newCrossProfilePackages}, resets the app-op for {@link android.Manifest.permission
      * #INTERACT_ACROSS_PROFILES} back to its default value if it can no longer be configured by
@@ -463,6 +487,34 @@
         }
     }
 
+    /**
+     * Clears the app-op for {@link android.Manifest.permission#INTERACT_ACROSS_PROFILES} back to
+     * its default value for every package on the device.
+     *
+     * <p>This method can be used to ensure that app-op state is not left around on existing users
+     * for previously-configured profiles.
+     *
+     * <p>If the caller does not have the {@link android.Manifest.permission
+     * #CONFIGURE_INTERACT_ACROSS_PROFILES} permission, then they must have the permissions that
+     * would have been required to call {@link android.app.AppOpsManager#setMode(int, int, String,
+     * int)}, which includes {@link android.Manifest.permission#MANAGE_APP_OPS_MODES}.
+     *
+     * <p>Also requires either {@link android.Manifest.permission#INTERACT_ACROSS_USERS} or {@link
+     * android.Manifest.permission#INTERACT_ACROSS_USERS_FULL}.
+     *
+     * @hide
+     */
+    @RequiresPermission(
+            allOf={android.Manifest.permission.CONFIGURE_INTERACT_ACROSS_PROFILES,
+                    android.Manifest.permission.INTERACT_ACROSS_USERS})
+    public void clearInteractAcrossProfilesAppOps() {
+        try {
+            mService.clearInteractAcrossProfilesAppOps();
+        } catch (RemoteException ex) {
+            throw ex.rethrowFromSystemServer();
+        }
+    }
+
     private void verifyCanAccessUser(UserHandle userHandle) {
         if (!getTargetUserProfiles().contains(userHandle)) {
             throw new SecurityException("Not allowed to access " + userHandle);
diff --git a/core/java/android/content/pm/DataLoaderParams.java b/core/java/android/content/pm/DataLoaderParams.java
index 60d7bb3..a791026 100644
--- a/core/java/android/content/pm/DataLoaderParams.java
+++ b/core/java/android/content/pm/DataLoaderParams.java
@@ -17,14 +17,8 @@
 package android.content.pm;
 
 import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.annotation.SystemApi;
 import android.content.ComponentName;
-import android.os.ParcelFileDescriptor;
-
-import java.util.Arrays;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * This class represents the parameters used to configure a Data Loader.
@@ -46,7 +40,7 @@
      */
     public static final @NonNull DataLoaderParams forStreaming(@NonNull ComponentName componentName,
             @NonNull String arguments) {
-        return new DataLoaderParams(DataLoaderType.STREAMING, componentName, arguments, null);
+        return new DataLoaderParams(DataLoaderType.STREAMING, componentName, arguments);
     }
 
     /**
@@ -54,34 +48,20 @@
      *
      * @param componentName Data Loader component supporting Incremental installation.
      * @param arguments free form installation arguments
-     * @param namedFds TODO(b/146080380) remove
      */
     public static final @NonNull DataLoaderParams forIncremental(
-            @NonNull ComponentName componentName, @NonNull String arguments,
-            @Nullable Map<String, ParcelFileDescriptor> namedFds) {
-        return new DataLoaderParams(DataLoaderType.INCREMENTAL, componentName, arguments, namedFds);
+            @NonNull ComponentName componentName, @NonNull String arguments) {
+        return new DataLoaderParams(DataLoaderType.INCREMENTAL, componentName, arguments);
     }
 
     /** @hide */
     public DataLoaderParams(@NonNull @DataLoaderType int type, @NonNull ComponentName componentName,
-            @NonNull String arguments, @Nullable Map<String, ParcelFileDescriptor> namedFds) {
+            @NonNull String arguments) {
         DataLoaderParamsParcel data = new DataLoaderParamsParcel();
         data.type = type;
         data.packageName = componentName.getPackageName();
         data.className = componentName.getClassName();
         data.arguments = arguments;
-        if (namedFds == null || namedFds.isEmpty()) {
-            data.dynamicArgs = new NamedParcelFileDescriptor[0];
-        } else {
-            data.dynamicArgs = new NamedParcelFileDescriptor[namedFds.size()];
-            int i = 0;
-            for (Map.Entry<String, ParcelFileDescriptor> namedFd : namedFds.entrySet()) {
-                data.dynamicArgs[i] = new NamedParcelFileDescriptor();
-                data.dynamicArgs[i].name = namedFd.getKey();
-                data.dynamicArgs[i].fd = namedFd.getValue();
-                i += 1;
-            }
-        }
         mData = data;
     }
 
@@ -115,12 +95,4 @@
     public final @NonNull String getArguments() {
         return mData.arguments;
     }
-
-    /**
-     * @return data loader's dynamic arguments such as file descriptors TODO: remove
-     */
-    public final @NonNull Map<String, ParcelFileDescriptor> getDynamicArgs() {
-        return Arrays.stream(mData.dynamicArgs).collect(
-                Collectors.toMap(p -> p.name, p -> p.fd));
-    }
 }
diff --git a/core/java/android/content/pm/DataLoaderParamsParcel.aidl b/core/java/android/content/pm/DataLoaderParamsParcel.aidl
index e05843b..d40012fd 100644
--- a/core/java/android/content/pm/DataLoaderParamsParcel.aidl
+++ b/core/java/android/content/pm/DataLoaderParamsParcel.aidl
@@ -17,7 +17,6 @@
 package android.content.pm;
 
 import android.content.pm.DataLoaderType;
-import android.content.pm.NamedParcelFileDescriptor;
 
 /**
  * Class for holding data loader configuration parameters.
@@ -28,5 +27,4 @@
     @utf8InCpp String packageName;
     @utf8InCpp String className;
     @utf8InCpp String arguments;
-    NamedParcelFileDescriptor[] dynamicArgs;
 }
diff --git a/core/java/android/content/pm/ICrossProfileApps.aidl b/core/java/android/content/pm/ICrossProfileApps.aidl
index 4cecb30..e2850f1 100644
--- a/core/java/android/content/pm/ICrossProfileApps.aidl
+++ b/core/java/android/content/pm/ICrossProfileApps.aidl
@@ -38,5 +38,7 @@
     boolean canRequestInteractAcrossProfiles(in String callingPackage);
     void setInteractAcrossProfilesAppOp(in String packageName, int newMode);
     boolean canConfigureInteractAcrossProfiles(in String packageName);
+    boolean canUserAttemptToConfigureInteractAcrossProfiles(in String packageName);
     void resetInteractAcrossProfilesAppOps(in List<String> packageNames);
+    void clearInteractAcrossProfilesAppOps();
 }
diff --git a/core/java/android/content/pm/IDataLoaderStatusListener.aidl b/core/java/android/content/pm/IDataLoaderStatusListener.aidl
index 5011faa..9819b5d 100644
--- a/core/java/android/content/pm/IDataLoaderStatusListener.aidl
+++ b/core/java/android/content/pm/IDataLoaderStatusListener.aidl
@@ -31,9 +31,7 @@
     const int DATA_LOADER_IMAGE_READY = 4;
     const int DATA_LOADER_IMAGE_NOT_READY = 5;
 
-    const int DATA_LOADER_SLOW_CONNECTION = 6;
-    const int DATA_LOADER_NO_CONNECTION = 7;
-    const int DATA_LOADER_CONNECTION_OK = 8;
+    const int DATA_LOADER_UNRECOVERABLE = 6;
 
     /** Data loader status callback */
     void onStatusChanged(in int dataLoaderId, in int status);
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index b52034f..5bad055 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -743,8 +743,6 @@
 
     void setMimeGroup(String packageName, String group, in List<String> mimeTypes);
 
-    void clearMimeGroup(String packageName, String group);
-
     List<String> getMimeGroup(String packageName, String group);
 
     boolean isAutoRevokeWhitelisted(String packageName);
diff --git a/core/java/android/content/pm/InstantAppRequestInfo.java b/core/java/android/content/pm/InstantAppRequestInfo.java
index 83d5536..c531632 100644
--- a/core/java/android/content/pm/InstantAppRequestInfo.java
+++ b/core/java/android/content/pm/InstantAppRequestInfo.java
@@ -31,7 +31,7 @@
  * @hide
  */
 @SystemApi
-@DataClass(genParcelable = true, genConstructor = true, genAidl = true)
+@DataClass(genParcelable = true, genConstructor = true, genAidl = true, genGetters = true)
 public final class InstantAppRequestInfo implements Parcelable {
 
     /**
@@ -40,26 +40,26 @@
      * host + path of the data, if defined.
      */
     @NonNull
-    public final Intent intent;
+    private final Intent mIntent;
 
     /** The hash prefix of the instant app's domain or null if no host is defined. */
     @Nullable
-    public final int[] hostDigestPrefix;
+    private final int[] mHostDigestPrefix;
 
     /** The user requesting the instant application */
     @NonNull
-    public final UserHandle userHandle;
+    private final UserHandle mUserHandle;
 
     /** Whether or not the requesting package was an instant app itself */
-    public final boolean isRequesterInstantApp;
+    private final boolean mRequesterInstantApp;
 
     /** A unique identifier */
     @NonNull
-    public final String token;
+    private final String mToken;
 
 
 
-    // Code below generated by codegen v1.0.13.
+    // Code below generated by codegen v1.0.15.
     //
     // DO NOT MODIFY!
     // CHECKSTYLE:OFF Generated code
@@ -83,7 +83,7 @@
      *   The hash prefix of the instant app's domain or null if no host is defined.
      * @param userHandle
      *   The user requesting the instant application
-     * @param isRequesterInstantApp
+     * @param requesterInstantApp
      *   Whether or not the requesting package was an instant app itself
      * @param token
      *   A unique identifier
@@ -93,23 +93,65 @@
             @NonNull Intent intent,
             @Nullable int[] hostDigestPrefix,
             @NonNull UserHandle userHandle,
-            boolean isRequesterInstantApp,
+            boolean requesterInstantApp,
             @NonNull String token) {
-        this.intent = intent;
+        this.mIntent = intent;
         com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, intent);
-        this.hostDigestPrefix = hostDigestPrefix;
-        this.userHandle = userHandle;
+                NonNull.class, null, mIntent);
+        this.mHostDigestPrefix = hostDigestPrefix;
+        this.mUserHandle = userHandle;
         com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, userHandle);
-        this.isRequesterInstantApp = isRequesterInstantApp;
-        this.token = token;
+                NonNull.class, null, mUserHandle);
+        this.mRequesterInstantApp = requesterInstantApp;
+        this.mToken = token;
         com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, token);
+                NonNull.class, null, mToken);
 
         // onConstructed(); // You can define this method to get a callback
     }
 
+    /**
+     * The sanitized {@link Intent} used for resolution. A sanitized Intent is an intent with
+     * potential PII removed from the original intent. Fields removed include extras and the
+     * host + path of the data, if defined.
+     */
+    @DataClass.Generated.Member
+    public @NonNull Intent getIntent() {
+        return mIntent;
+    }
+
+    /**
+     * The hash prefix of the instant app's domain or null if no host is defined.
+     */
+    @DataClass.Generated.Member
+    public @Nullable int[] getHostDigestPrefix() {
+        return mHostDigestPrefix;
+    }
+
+    /**
+     * The user requesting the instant application
+     */
+    @DataClass.Generated.Member
+    public @NonNull UserHandle getUserHandle() {
+        return mUserHandle;
+    }
+
+    /**
+     * Whether or not the requesting package was an instant app itself
+     */
+    @DataClass.Generated.Member
+    public boolean isRequesterInstantApp() {
+        return mRequesterInstantApp;
+    }
+
+    /**
+     * A unique identifier
+     */
+    @DataClass.Generated.Member
+    public @NonNull String getToken() {
+        return mToken;
+    }
+
     @Override
     @DataClass.Generated.Member
     public void writeToParcel(@NonNull android.os.Parcel dest, int flags) {
@@ -117,13 +159,13 @@
         // void parcelFieldName(Parcel dest, int flags) { ... }
 
         byte flg = 0;
-        if (isRequesterInstantApp) flg |= 0x8;
-        if (hostDigestPrefix != null) flg |= 0x2;
+        if (mRequesterInstantApp) flg |= 0x8;
+        if (mHostDigestPrefix != null) flg |= 0x2;
         dest.writeByte(flg);
-        dest.writeTypedObject(intent, flags);
-        if (hostDigestPrefix != null) dest.writeIntArray(hostDigestPrefix);
-        dest.writeTypedObject(userHandle, flags);
-        dest.writeString(token);
+        dest.writeTypedObject(mIntent, flags);
+        if (mHostDigestPrefix != null) dest.writeIntArray(mHostDigestPrefix);
+        dest.writeTypedObject(mUserHandle, flags);
+        dest.writeString(mToken);
     }
 
     @Override
@@ -138,23 +180,23 @@
         // static FieldType unparcelFieldName(Parcel in) { ... }
 
         byte flg = in.readByte();
-        boolean _isRequesterInstantApp = (flg & 0x8) != 0;
-        Intent _intent = (Intent) in.readTypedObject(Intent.CREATOR);
-        int[] _hostDigestPrefix = (flg & 0x2) == 0 ? null : in.createIntArray();
-        UserHandle _userHandle = (UserHandle) in.readTypedObject(UserHandle.CREATOR);
-        String _token = in.readString();
+        boolean requesterInstantApp = (flg & 0x8) != 0;
+        Intent intent = (Intent) in.readTypedObject(Intent.CREATOR);
+        int[] hostDigestPrefix = (flg & 0x2) == 0 ? null : in.createIntArray();
+        UserHandle userHandle = (UserHandle) in.readTypedObject(UserHandle.CREATOR);
+        String token = in.readString();
 
-        this.intent = _intent;
+        this.mIntent = intent;
         com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, intent);
-        this.hostDigestPrefix = _hostDigestPrefix;
-        this.userHandle = _userHandle;
+                NonNull.class, null, mIntent);
+        this.mHostDigestPrefix = hostDigestPrefix;
+        this.mUserHandle = userHandle;
         com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, userHandle);
-        this.isRequesterInstantApp = _isRequesterInstantApp;
-        this.token = _token;
+                NonNull.class, null, mUserHandle);
+        this.mRequesterInstantApp = requesterInstantApp;
+        this.mToken = token;
         com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, token);
+                NonNull.class, null, mToken);
 
         // onConstructed(); // You can define this method to get a callback
     }
@@ -174,10 +216,10 @@
     };
 
     @DataClass.Generated(
-            time = 1574373347443L,
-            codegenVersion = "1.0.13",
+            time = 1583964236162L,
+            codegenVersion = "1.0.15",
             sourceFile = "frameworks/base/core/java/android/content/pm/InstantAppRequestInfo.java",
-            inputSignatures = "public final @android.annotation.NonNull android.content.Intent intent\npublic final @android.annotation.Nullable int[] hostDigestPrefix\npublic final @android.annotation.NonNull android.os.UserHandle userHandle\npublic final  boolean isRequesterInstantApp\npublic final @android.annotation.NonNull java.lang.String token\nclass InstantAppRequestInfo extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genParcelable=true, genConstructor=true, genAidl=true)")
+            inputSignatures = "private final @android.annotation.NonNull android.content.Intent mIntent\nprivate final @android.annotation.Nullable int[] mHostDigestPrefix\nprivate final @android.annotation.NonNull android.os.UserHandle mUserHandle\nprivate final  boolean mRequesterInstantApp\nprivate final @android.annotation.NonNull java.lang.String mToken\nclass InstantAppRequestInfo extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genParcelable=true, genConstructor=true, genAidl=true, genGetters=true)")
     @Deprecated
     private void __metadata() {}
 
diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java
index e73fd03..6c161fc 100644
--- a/core/java/android/content/pm/LauncherApps.java
+++ b/core/java/android/content/pm/LauncherApps.java
@@ -1299,6 +1299,38 @@
         }
     }
 
+    /**
+     * @hide
+     */
+    public Icon getShortcutIcon(@NonNull ShortcutInfo shortcut) {
+        if (shortcut.hasIconFile()) {
+            final ParcelFileDescriptor pfd = getShortcutIconFd(shortcut);
+            if (pfd == null) {
+                return null;
+            }
+            try {
+                final Bitmap bmp = BitmapFactory.decodeFileDescriptor(pfd.getFileDescriptor());
+                if (bmp != null) {
+                    if (shortcut.hasAdaptiveBitmap()) {
+                        return Icon.createWithAdaptiveBitmap(bmp);
+                    } else {
+                        return Icon.createWithBitmap(bmp);
+                    }
+                }
+                return null;
+            } finally {
+                try {
+                    pfd.close();
+                } catch (IOException ignore) {
+                }
+            }
+        } else if (shortcut.hasIconResource()) {
+            return Icon.createWithResource(shortcut.getPackage(), shortcut.getIconResourceId());
+        } else {
+            return shortcut.getIcon();
+        }
+    }
+
     private Drawable loadDrawableResourceFromPackage(String packageName, int resId,
             UserHandle user, int density) {
         try {
diff --git a/core/java/android/content/pm/NamedParcelFileDescriptor.aidl b/core/java/android/content/pm/NamedParcelFileDescriptor.aidl
deleted file mode 100644
index 68dd5f5..0000000
--- a/core/java/android/content/pm/NamedParcelFileDescriptor.aidl
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content.pm;
-
-import android.os.ParcelFileDescriptor;
-
-/**
- * A named ParcelFileDescriptor.
- * @hide
- */
-parcelable NamedParcelFileDescriptor {
-    @utf8InCpp String name;
-    ParcelFileDescriptor fd;
-}
diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java
index 50bee85..1e0b2e3 100644
--- a/core/java/android/content/pm/PackageInstaller.java
+++ b/core/java/android/content/pm/PackageInstaller.java
@@ -1118,6 +1118,7 @@
          * {@hide}
          */
         @SystemApi
+        @RequiresPermission(android.Manifest.permission.USE_INSTALLER_V2)
         public @Nullable DataLoaderParams getDataLoaderParams() {
             try {
                 DataLoaderParamsParcel data = mSession.getDataLoaderParams();
@@ -1157,6 +1158,7 @@
          * {@hide}
          */
         @SystemApi
+        @RequiresPermission(android.Manifest.permission.USE_INSTALLER_V2)
         public void addFile(@FileLocation int location, @NonNull String name, long lengthBytes,
                 @NonNull byte[] metadata, @Nullable byte[] signature) {
             try {
@@ -1180,6 +1182,7 @@
          * {@hide}
          */
         @SystemApi
+        @RequiresPermission(android.Manifest.permission.USE_INSTALLER_V2)
         public void removeFile(@FileLocation int location, @NonNull String name) {
             try {
                 mSession.removeFile(location, name);
@@ -1927,7 +1930,9 @@
          * {@hide}
          */
         @SystemApi
-        @RequiresPermission(Manifest.permission.INSTALL_PACKAGES)
+        @RequiresPermission(allOf = {
+                Manifest.permission.INSTALL_PACKAGES,
+                Manifest.permission.USE_INSTALLER_V2})
         public void setDataLoaderParams(@NonNull DataLoaderParams dataLoaderParams) {
             this.dataLoaderParams = dataLoaderParams;
         }
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 84eabdb..370469e 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -3399,6 +3399,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public static final int FLAG_PERMISSION_ONE_TIME = 1 << 16;
 
     /**
@@ -3623,28 +3624,24 @@
      * Constant for noting system app state as hidden before installation
      * @hide
      */
-    @SystemApi
     public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_HIDDEN = 0;
 
     /**
      * Constant for noting system app state as visible before installation
      * @hide
      */
-    @SystemApi
     public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_VISIBLE = 1;
 
     /**
      * Constant for noting system app state as installed
      * @hide
      */
-    @SystemApi
     public static final int SYSTEM_APP_STATE_INSTALLED = 2;
 
     /**
      * Constant for noting system app state as not installed
      * @hide
      */
-    @SystemApi
     public static final int SYSTEM_APP_STATE_UNINSTALLED = 3;
 
     /** {@hide} */
@@ -6834,7 +6831,6 @@
      * @param state State of the app.
      * @hide
      */
-    @SystemApi
     public void setSystemAppState(@NonNull String packageName, @SystemAppState int state) {
         throw new RuntimeException("Not implemented. Must override in a subclass");
     }
@@ -7092,7 +7088,7 @@
      * Returns any packages in a given set of packages that cannot be suspended via a call to {@link
      * #setPackagesSuspended(String[], boolean, PersistableBundle, PersistableBundle,
      * SuspendDialogInfo) setPackagesSuspended}. The platform prevents suspending certain critical
-     * packages to keep the device in a functioning state, e.g. the default dialer.
+     * packages to keep the device in a functioning state, e.g. the default dialer and launcher.
      * Apps need to hold {@link Manifest.permission#SUSPEND_APPS SUSPEND_APPS} to call this API.
      *
      * <p>
@@ -7110,7 +7106,7 @@
     @RequiresPermission(Manifest.permission.SUSPEND_APPS)
     @NonNull
     public String[] getUnsuspendablePackages(@NonNull String[] packageNames) {
-        throw new UnsupportedOperationException("canSuspendPackages not implemented");
+        throw new UnsupportedOperationException("getUnsuspendablePackages not implemented");
     }
 
     /**
@@ -7899,10 +7895,14 @@
     }
 
     /**
-     * Sets MIME group's MIME types
+     * Sets MIME group's MIME types.
      *
-     * @param mimeGroup MIME group to modify
-     * @param mimeTypes new MIME types contained by MIME group
+     * Libraries should use a reverse-DNS prefix followed by a ':' character and library-specific
+     * group name to avoid namespace collisions, e.g. "com.example:myFeature".
+     *
+     * @param mimeGroup MIME group to modify.
+     * @param mimeTypes new MIME types contained by MIME group.
+     * @throws IllegalArgumentException if the MIME group was not declared in the manifest.
      */
     public void setMimeGroup(@NonNull String mimeGroup, @NonNull Set<String> mimeTypes) {
         throw new UnsupportedOperationException(
@@ -7910,22 +7910,16 @@
     }
 
     /**
-     * Clears MIME group by removing all MIME types from it
+     * Gets all MIME types contained by MIME group.
      *
-     * @param mimeGroup MIME group to clear
-     */
-    public void clearMimeGroup(@NonNull String mimeGroup) {
-        throw new UnsupportedOperationException(
-                "clearMimeGroup not implemented in subclass");
-    }
-
-    /**
-     * Gets all MIME types that MIME group contains
+     * Libraries should use a reverse-DNS prefix followed by a ':' character and library-specific
+     * group name to avoid namespace collisions, e.g. "com.example:myFeature".
      *
-     * @return MIME types contained by the MIME group,
-     *         or null if the MIME group was not declared in the manifest.
+     * @param mimeGroup MIME group to retrieve.
+     * @return MIME types contained by the MIME group.
+     * @throws IllegalArgumentException if the MIME group was not declared in the manifest.
      */
-    @Nullable
+    @NonNull
     public Set<String> getMimeGroup(@NonNull String mimeGroup) {
         throw new UnsupportedOperationException(
                 "getMimeGroup not implemented in subclass");
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 18f1343..1dadbda 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -1443,7 +1443,7 @@
         try {
             try {
                 apkAssets = fd != null
-                        ? ApkAssets.loadFromFd(fd, debugPathName, false, false)
+                        ? ApkAssets.loadFromFd(fd, debugPathName, 0 /* flags */, null /* assets */)
                         : ApkAssets.loadFromPath(apkPath);
             } catch (IOException e) {
                 throw new PackageParserException(INSTALL_PARSE_FAILED_NOT_APK,
@@ -1837,6 +1837,12 @@
 
         pkg.coreApp = parser.getAttributeBooleanValue(null, "coreApp", false);
 
+        final boolean isolatedSplits = sa.getBoolean(
+                com.android.internal.R.styleable.AndroidManifest_isolatedSplits, false);
+        if (isolatedSplits) {
+            pkg.applicationInfo.privateFlags |= ApplicationInfo.PRIVATE_FLAG_ISOLATED_SPLIT_LOADING;
+        }
+
         pkg.mCompileSdkVersion = sa.getInteger(
                 com.android.internal.R.styleable.AndroidManifest_compileSdkVersion, 0);
         pkg.applicationInfo.compileSdkVersion = pkg.mCompileSdkVersion;
@@ -1912,10 +1918,6 @@
             pkg.applicationInfo.flags |= ApplicationInfo.FLAG_EXTERNAL_STORAGE;
         }
 
-        if (sa.getBoolean(com.android.internal.R.styleable.AndroidManifest_isolatedSplits, false)) {
-            pkg.applicationInfo.privateFlags |= ApplicationInfo.PRIVATE_FLAG_ISOLATED_SPLIT_LOADING;
-        }
-
         // Resource boolean are -1, so 1 means we don't know the value.
         int supportsSmallScreens = 1;
         int supportsNormalScreens = 1;
diff --git a/core/java/android/content/pm/ProcessInfo.java b/core/java/android/content/pm/ProcessInfo.java
index a373067..d45ff98 100644
--- a/core/java/android/content/pm/ProcessInfo.java
+++ b/core/java/android/content/pm/ProcessInfo.java
@@ -18,6 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.content.pm.ApplicationInfo;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.text.TextUtils;
@@ -50,14 +51,13 @@
     /**
      * Indicates if the process has requested GWP-ASan to be enabled, disabled, or left unspecified.
      */
-    @Nullable
-    public Boolean enableGwpAsan;
+    public @ApplicationInfo.GwpAsanMode int gwpAsanMode;
 
     @Deprecated
     public ProcessInfo(@NonNull ProcessInfo orig) {
         this.name = orig.name;
         this.deniedPermissions = orig.deniedPermissions;
-        this.enableGwpAsan = orig.enableGwpAsan;
+        this.gwpAsanMode = orig.gwpAsanMode;
     }
 
 
@@ -82,19 +82,21 @@
      *   The name of the process, fully-qualified based on the app's package name.
      * @param deniedPermissions
      *   If non-null, these are permissions that are not allowed in this process.
-     * @param enableGwpAsan
+     * @param gwpAsanMode
      *   Indicates if the process has requested GWP-ASan to be enabled, disabled, or left unspecified.
      */
     @DataClass.Generated.Member
     public ProcessInfo(
             @NonNull String name,
             @Nullable ArraySet<String> deniedPermissions,
-            @Nullable Boolean enableGwpAsan) {
+            @ApplicationInfo.GwpAsanMode int gwpAsanMode) {
         this.name = name;
         com.android.internal.util.AnnotationValidations.validate(
                 NonNull.class, null, name);
         this.deniedPermissions = deniedPermissions;
-        this.enableGwpAsan = enableGwpAsan;
+        this.gwpAsanMode = gwpAsanMode;
+        com.android.internal.util.AnnotationValidations.validate(
+                ApplicationInfo.GwpAsanMode.class, null, gwpAsanMode);
 
         // onConstructed(); // You can define this method to get a callback
     }
@@ -118,11 +120,10 @@
 
         byte flg = 0;
         if (deniedPermissions != null) flg |= 0x2;
-        if (enableGwpAsan != null) flg |= 0x4;
         dest.writeByte(flg);
         dest.writeString(name);
         sParcellingForDeniedPermissions.parcel(deniedPermissions, dest, flags);
-        if (enableGwpAsan != null) dest.writeBoolean(enableGwpAsan);
+        dest.writeInt(gwpAsanMode);
     }
 
     @Override
@@ -139,13 +140,15 @@
         byte flg = in.readByte();
         String _name = in.readString();
         ArraySet<String> _deniedPermissions = sParcellingForDeniedPermissions.unparcel(in);
-        Boolean _enableGwpAsan = (flg & 0x4) == 0 ? null : (Boolean) in.readBoolean();
+        int _gwpAsanMode = in.readInt();
 
         this.name = _name;
         com.android.internal.util.AnnotationValidations.validate(
                 NonNull.class, null, name);
         this.deniedPermissions = _deniedPermissions;
-        this.enableGwpAsan = _enableGwpAsan;
+        this.gwpAsanMode = _gwpAsanMode;
+        com.android.internal.util.AnnotationValidations.validate(
+                ApplicationInfo.GwpAsanMode.class, null, gwpAsanMode);
 
         // onConstructed(); // You can define this method to get a callback
     }
@@ -165,10 +168,10 @@
     };
 
     @DataClass.Generated(
-            time = 1582840056156L,
+            time = 1584555730519L,
             codegenVersion = "1.0.15",
             sourceFile = "frameworks/base/core/java/android/content/pm/ProcessInfo.java",
-            inputSignatures = "public @android.annotation.NonNull java.lang.String name\npublic @android.annotation.Nullable @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedStringArraySet.class) android.util.ArraySet<java.lang.String> deniedPermissions\npublic @android.annotation.Nullable java.lang.Boolean enableGwpAsan\nclass ProcessInfo extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genGetters=true, genSetters=false, genParcelable=true, genAidl=false, genBuilder=false)")
+            inputSignatures = "public @android.annotation.NonNull java.lang.String name\npublic @android.annotation.Nullable @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedStringArraySet.class) android.util.ArraySet<java.lang.String> deniedPermissions\npublic @android.content.pm.ApplicationInfo.GwpAsanMode int gwpAsanMode\nclass ProcessInfo extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genGetters=true, genSetters=false, genParcelable=true, genAidl=false, genBuilder=false)")
     @Deprecated
     private void __metadata() {}
 
diff --git a/core/java/android/content/pm/parsing/ApkLiteParseUtils.java b/core/java/android/content/pm/parsing/ApkLiteParseUtils.java
index 4c6da03..27399e4 100644
--- a/core/java/android/content/pm/parsing/ApkLiteParseUtils.java
+++ b/core/java/android/content/pm/parsing/ApkLiteParseUtils.java
@@ -220,7 +220,7 @@
         try {
             try {
                 apkAssets = fd != null
-                        ? ApkAssets.loadFromFd(fd, debugPathName, false, false)
+                        ? ApkAssets.loadFromFd(fd, debugPathName, 0 /* flags */, null /* assets */)
                         : ApkAssets.loadFromPath(apkPath);
             } catch (IOException e) {
                 throw new PackageParser.PackageParserException(
diff --git a/core/java/android/content/pm/parsing/ParsingPackage.java b/core/java/android/content/pm/parsing/ParsingPackage.java
index 1304ba8..4c95532 100644
--- a/core/java/android/content/pm/parsing/ParsingPackage.java
+++ b/core/java/android/content/pm/parsing/ParsingPackage.java
@@ -192,9 +192,7 @@
 
     ParsingPackage setAllowNativeHeapPointerTagging(boolean allowNativeHeapPointerTagging);
 
-    ParsingPackage setDontAutoRevokePermissions(boolean dontAutoRevokePermissions);
-
-    ParsingPackage setAllowDontAutoRevokePermissions(boolean allowDontAutoRevokePermissions);
+    ParsingPackage setAutoRevokePermissions(int autoRevokePermissions);
 
     ParsingPackage setPreserveLegacyExternalStorage(boolean preserveLegacyExternalStorage);
 
@@ -240,7 +238,7 @@
 
     ParsingPackage setEnabled(boolean enabled);
 
-    ParsingPackage setGwpAsanEnabled(Boolean enableGwpAsan);
+    ParsingPackage setGwpAsanMode(int gwpAsanMode);
 
     ParsingPackage setCrossProfile(boolean crossProfile);
 
diff --git a/core/java/android/content/pm/parsing/ParsingPackageImpl.java b/core/java/android/content/pm/parsing/ParsingPackageImpl.java
index 3390f16..894ad55 100644
--- a/core/java/android/content/pm/parsing/ParsingPackageImpl.java
+++ b/core/java/android/content/pm/parsing/ParsingPackageImpl.java
@@ -30,7 +30,6 @@
 import android.content.pm.FeatureInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageParser;
-import android.content.pm.ProcessInfo;
 import android.content.pm.parsing.component.ParsedActivity;
 import android.content.pm.parsing.component.ParsedAttribution;
 import android.content.pm.parsing.component.ParsedComponent;
@@ -405,13 +404,10 @@
     private boolean hasFragileUserData;
     private boolean cantSaveState;
     private boolean allowNativeHeapPointerTagging;
-    private boolean dontAutoRevokePermissions;
-    private boolean allowDontAutoRevokePermissions;
+    private int autoRevokePermissions;
     private boolean preserveLegacyExternalStorage;
 
-    @Nullable
-    @DataClass.ParcelWith(ForBoolean.class)
-    protected Boolean enableGwpAsan = null;
+    protected int gwpAsanMode;
 
     // TODO(chiuwinson): Non-null
     @Nullable
@@ -437,6 +433,10 @@
                     R.styleable.AndroidManifest_compileSdkVersion, 0));
             setCompileSdkVersionCodename(manifestArray.getNonConfigurationString(
                     R.styleable.AndroidManifest_compileSdkVersionCodename, 0));
+
+            setIsolatedSplitLoading(manifestArray.getBoolean(
+                    R.styleable.AndroidManifest_isolatedSplits, false));
+
         }
     }
 
@@ -911,7 +911,7 @@
         appInfo.volumeUuid = volumeUuid;
         appInfo.zygotePreloadName = zygotePreloadName;
         appInfo.crossProfile = isCrossProfile();
-        appInfo.setGwpAsanEnabled(enableGwpAsan);
+        appInfo.setGwpAsanMode(gwpAsanMode);
         appInfo.setBaseCodePath(baseCodePath);
         appInfo.setBaseResourcePath(baseCodePath);
         appInfo.setCodePath(codePath);
@@ -1091,11 +1091,10 @@
         dest.writeBoolean(this.hasFragileUserData);
         dest.writeBoolean(this.cantSaveState);
         dest.writeBoolean(this.allowNativeHeapPointerTagging);
-        dest.writeBoolean(this.dontAutoRevokePermissions);
-        dest.writeBoolean(this.allowDontAutoRevokePermissions);
+        dest.writeInt(this.autoRevokePermissions);
         dest.writeBoolean(this.preserveLegacyExternalStorage);
         dest.writeArraySet(this.mimeGroups);
-        sForBoolean.parcel(this.enableGwpAsan, dest, flags);
+        dest.writeInt(this.gwpAsanMode);
     }
 
     public ParsingPackageImpl(Parcel in) {
@@ -1251,11 +1250,10 @@
         this.hasFragileUserData = in.readBoolean();
         this.cantSaveState = in.readBoolean();
         this.allowNativeHeapPointerTagging = in.readBoolean();
-        this.dontAutoRevokePermissions = in.readBoolean();
-        this.allowDontAutoRevokePermissions = in.readBoolean();
+        this.autoRevokePermissions = in.readInt();
         this.preserveLegacyExternalStorage = in.readBoolean();
         this.mimeGroups = (ArraySet<String>) in.readArraySet(boot);
-        this.enableGwpAsan = sForBoolean.unparcel(in);
+        this.gwpAsanMode = in.readInt();
     }
 
     public static final Parcelable.Creator<ParsingPackageImpl> CREATOR =
@@ -1978,9 +1976,8 @@
     }
 
     @Override
-    @Nullable
-    public Boolean isGwpAsanEnabled() {
-        return enableGwpAsan;
+    public int getGwpAsanMode() {
+        return gwpAsanMode;
     }
 
     @Override
@@ -2029,13 +2026,8 @@
     }
 
     @Override
-    public boolean isDontAutoRevokePermmissions() {
-        return dontAutoRevokePermissions;
-    }
-
-    @Override
-    public boolean isAllowDontAutoRevokePermmissions() {
-        return allowDontAutoRevokePermissions;
+    public int getAutoRevokePermissions() {
+        return autoRevokePermissions;
     }
 
     @Override
@@ -2449,8 +2441,8 @@
     }
 
     @Override
-    public ParsingPackageImpl setGwpAsanEnabled(@Nullable Boolean value) {
-        enableGwpAsan = value;
+    public ParsingPackageImpl setGwpAsanMode(int value) {
+        gwpAsanMode = value;
         return this;
     }
 
@@ -2509,14 +2501,8 @@
     }
 
     @Override
-    public ParsingPackageImpl setDontAutoRevokePermissions(boolean value) {
-        dontAutoRevokePermissions = value;
-        return this;
-    }
-
-    @Override
-    public ParsingPackageImpl setAllowDontAutoRevokePermissions(boolean value) {
-        allowDontAutoRevokePermissions = value;
+    public ParsingPackageImpl setAutoRevokePermissions(int value) {
+        autoRevokePermissions = value;
         return this;
     }
 
diff --git a/core/java/android/content/pm/parsing/ParsingPackageRead.java b/core/java/android/content/pm/parsing/ParsingPackageRead.java
index 9c13c85..687bc23 100644
--- a/core/java/android/content/pm/parsing/ParsingPackageRead.java
+++ b/core/java/android/content/pm/parsing/ParsingPackageRead.java
@@ -771,11 +771,7 @@
     /** @see ApplicationInfo#PRIVATE_FLAG_ALLOW_NATIVE_HEAP_POINTER_TAGGING */
     boolean isAllowNativeHeapPointerTagging();
 
-    /** @see ApplicationInfo#PRIVATE_FLAG2_DONT_AUTO_REVOKE_PERMISSIONS */
-    boolean isDontAutoRevokePermmissions();
-
-    /** @see ApplicationInfo#PRIVATE_FLAG2_ALLOW_DONT_AUTO_REVOKE_PERMISSIONS */
-    boolean isAllowDontAutoRevokePermmissions();
+    int getAutoRevokePermissions();
 
     boolean hasPreserveLegacyExternalStorage();
 
@@ -847,11 +843,10 @@
     Set<String> getMimeGroups();
 
     /**
-     * @see ApplicationInfo#enableGwpAsan
-     * @see R.styleable#AndroidManifest_enableGwpAsan
+     * @see ApplicationInfo#gwpAsanMode
+     * @see R.styleable#AndroidManifest_gwpAsanMode
      */
-    @Nullable
-    public Boolean isGwpAsanEnabled();
+    public int getGwpAsanMode();
 
     // TODO(b/135203078): Hide and enforce going through PackageInfoUtils
     ApplicationInfo toAppInfoWithoutState();
diff --git a/core/java/android/content/pm/parsing/ParsingPackageUtils.java b/core/java/android/content/pm/parsing/ParsingPackageUtils.java
index e41ed85..e90ccdf 100644
--- a/core/java/android/content/pm/parsing/ParsingPackageUtils.java
+++ b/core/java/android/content/pm/parsing/ParsingPackageUtils.java
@@ -40,7 +40,6 @@
 import android.content.pm.FeatureGroupInfo;
 import android.content.pm.FeatureInfo;
 import android.content.pm.PackageInfo;
-import android.content.pm.PackageItemInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageParser;
 import android.content.pm.PackageParser.PackageParserException;
@@ -387,15 +386,14 @@
             return input.error(PackageManager.INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME);
         }
 
-        TypedArray manifestArray = res.obtainAttributes(parser, R.styleable.AndroidManifest);
+        final TypedArray manifestArray = res.obtainAttributes(parser, R.styleable.AndroidManifest);
         try {
-            boolean isCoreApp = parser.getAttributeBooleanValue(null, "coreApp", false);
-
-            ParsingPackage pkg = mCallback.startParsingPackage(pkgName, apkPath, codePath,
-                    manifestArray, isCoreApp);
-
-            ParseResult<ParsingPackage> result = parseBaseApkTags(input, pkg, manifestArray,
-                    res, parser, flags);
+            final boolean isCoreApp =
+                    parser.getAttributeBooleanValue(null, "coreApp", false);
+            final ParsingPackage pkg = mCallback.startParsingPackage(
+                    pkgName, apkPath, codePath, manifestArray, isCoreApp);
+            final ParseResult<ParsingPackage> result =
+                    parseBaseApkTags(input, pkg, manifestArray, res, parser, flags);
             if (result.isError()) {
                 return result;
             }
@@ -621,14 +619,12 @@
             return sharedUserResult;
         }
 
-        pkg.setInstallLocation(anInt(PackageParser.PARSE_DEFAULT_INSTALL_LOCATION,
+        pkg.setInstallLocation(anInteger(PackageParser.PARSE_DEFAULT_INSTALL_LOCATION,
                 R.styleable.AndroidManifest_installLocation, sa))
-                .setTargetSandboxVersion(anInt(PackageParser.PARSE_DEFAULT_TARGET_SANDBOX,
+                .setTargetSandboxVersion(anInteger(PackageParser.PARSE_DEFAULT_TARGET_SANDBOX,
                         R.styleable.AndroidManifest_targetSandboxVersion, sa))
                 /* Set the global "on SD card" flag */
-                .setExternalStorage((flags & PackageParser.PARSE_EXTERNAL_STORAGE) != 0)
-                .setIsolatedSplitLoading(
-                        bool(false, R.styleable.AndroidManifest_isolatedSplits, sa));
+                .setExternalStorage((flags & PackageParser.PARSE_EXTERNAL_STORAGE) != 0);
 
         boolean foundApp = false;
         final int depth = parser.getDepth();
@@ -1390,7 +1386,7 @@
 
                 Uri data = null;
                 String dataType = null;
-                String host = "";
+                String host = IntentFilter.WILDCARD;
                 final int numActions = intentInfo.countActions();
                 final int numSchemes = intentInfo.countDataSchemes();
                 final int numTypes = intentInfo.countDataTypes();
@@ -1421,10 +1417,23 @@
                     data = new Uri.Builder()
                             .scheme(intentInfo.getDataScheme(0))
                             .authority(host)
+                            .path(IntentFilter.WILDCARD_PATH)
                             .build();
                 }
                 if (numTypes == 1) {
                     dataType = intentInfo.getDataType(0);
+                    // The dataType may have had the '/' removed for the dynamic mimeType feature.
+                    // If we detect that case, we add the * back.
+                    if (!dataType.contains("/")) {
+                        dataType = dataType + "/*";
+                    }
+                    if (data == null) {
+                        data = new Uri.Builder()
+                                .scheme("content")
+                                .authority(IntentFilter.WILDCARD)
+                                .path(IntentFilter.WILDCARD_PATH)
+                                .build();
+                    }
                 }
                 intent.setDataAndType(data, dataType);
                 if (numActions == 1) {
@@ -1665,10 +1674,7 @@
                 return input.error("Invalid class loader name: " + classLoaderName);
             }
 
-            if (sa.hasValue(R.styleable.AndroidManifestApplication_enableGwpAsan)) {
-                pkg.setGwpAsanEnabled(
-                        sa.getBoolean(R.styleable.AndroidManifestApplication_enableGwpAsan, false));
-            }
+            pkg.setGwpAsanMode(sa.getInt(R.styleable.AndroidManifestApplication_gwpAsanMode, -1));
         } finally {
             sa.recycle();
         }
@@ -1820,8 +1826,7 @@
                 .setUseEmbeddedDex(bool(false, R.styleable.AndroidManifestApplication_useEmbeddedDex, sa))
                 .setUsesNonSdkApi(bool(false, R.styleable.AndroidManifestApplication_usesNonSdkApi, sa))
                 .setVmSafeMode(bool(false, R.styleable.AndroidManifestApplication_vmSafeMode, sa))
-                .setDontAutoRevokePermissions(bool(false, R.styleable.AndroidManifestApplication_requestDontAutoRevokePermissions, sa))
-                .setAllowDontAutoRevokePermissions(bool(false, R.styleable.AndroidManifestApplication_allowDontAutoRevokePermissions, sa))
+                .setAutoRevokePermissions(anInt(R.styleable.AndroidManifestApplication_autoRevokePermissions, sa))
                 // targetSdkVersion gated
                 .setAllowAudioPlaybackCapture(bool(targetSdk >= Build.VERSION_CODES.Q, R.styleable.AndroidManifestApplication_allowAudioPlaybackCapture, sa))
                 .setBaseHardwareAccelerated(bool(targetSdk >= Build.VERSION_CODES.ICE_CREAM_SANDWICH, R.styleable.AndroidManifestApplication_hardwareAccelerated, sa))
@@ -2650,6 +2655,10 @@
         return sa.getInt(attribute, defaultValue);
     }
 
+    private static int anInteger(int defaultValue, @StyleableRes int attribute, TypedArray sa) {
+        return sa.getInteger(attribute, defaultValue);
+    }
+
     private static int anInt(@StyleableRes int attribute, TypedArray sa) {
         return sa.getInt(attribute, 0);
     }
@@ -2680,6 +2689,6 @@
         boolean hasFeature(String feature);
 
         ParsingPackage startParsingPackage(String packageName, String baseCodePath, String codePath,
-                TypedArray manifestArray, boolean isCoreApp);
+                @NonNull TypedArray manifestArray, boolean isCoreApp);
     }
 }
diff --git a/core/java/android/content/pm/parsing/component/ParsedProcess.java b/core/java/android/content/pm/parsing/component/ParsedProcess.java
index 3b6020a..e0ae81b 100644
--- a/core/java/android/content/pm/parsing/component/ParsedProcess.java
+++ b/core/java/android/content/pm/parsing/component/ParsedProcess.java
@@ -41,8 +41,7 @@
     @DataClass.ParcelWith(Parcelling.BuiltIn.ForInternedStringSet.class)
     protected Set<String> deniedPermissions = emptySet();
 
-    @Nullable
-    protected Boolean enableGwpAsan = null;
+    protected int gwpAsanMode = -1;
 
     public ParsedProcess() {
     }
@@ -58,7 +57,7 @@
 
 
 
-    // Code below generated by codegen v1.0.14.
+    // Code below generated by codegen v1.0.15.
     //
     // DO NOT MODIFY!
     // CHECKSTYLE:OFF Generated code
@@ -75,14 +74,14 @@
     public ParsedProcess(
             @NonNull String name,
             @NonNull Set<String> deniedPermissions,
-            @Nullable Boolean enableGwpAsan) {
+            int gwpAsanMode) {
         this.name = name;
         com.android.internal.util.AnnotationValidations.validate(
                 NonNull.class, null, name);
         this.deniedPermissions = deniedPermissions;
         com.android.internal.util.AnnotationValidations.validate(
                 NonNull.class, null, deniedPermissions);
-        this.enableGwpAsan = enableGwpAsan;
+        this.gwpAsanMode = gwpAsanMode;
 
         // onConstructed(); // You can define this method to get a callback
     }
@@ -98,8 +97,8 @@
     }
 
     @DataClass.Generated.Member
-    public @Nullable Boolean getEnableGwpAsan() {
-        return enableGwpAsan;
+    public int getGwpAsanMode() {
+        return gwpAsanMode;
     }
 
     @DataClass.Generated.Member
@@ -119,12 +118,9 @@
         // You can override field parcelling by defining methods like:
         // void parcelFieldName(Parcel dest, int flags) { ... }
 
-        byte flg = 0;
-        if (enableGwpAsan != null) flg |= 0x4;
-        dest.writeByte(flg);
         dest.writeString(name);
         sParcellingForDeniedPermissions.parcel(deniedPermissions, dest, flags);
-        if (enableGwpAsan != null) dest.writeBoolean(enableGwpAsan);
+        dest.writeInt(gwpAsanMode);
     }
 
     @Override
@@ -138,10 +134,9 @@
         // You can override field unparcelling by defining methods like:
         // static FieldType unparcelFieldName(Parcel in) { ... }
 
-        byte flg = in.readByte();
         String _name = in.readString();
         Set<String> _deniedPermissions = sParcellingForDeniedPermissions.unparcel(in);
-        Boolean _enableGwpAsan = (flg & 0x4) == 0 ? null : (Boolean) in.readBoolean();
+        int _gwpAsanMode = in.readInt();
 
         this.name = _name;
         com.android.internal.util.AnnotationValidations.validate(
@@ -149,7 +144,7 @@
         this.deniedPermissions = _deniedPermissions;
         com.android.internal.util.AnnotationValidations.validate(
                 NonNull.class, null, deniedPermissions);
-        this.enableGwpAsan = _enableGwpAsan;
+        this.gwpAsanMode = _gwpAsanMode;
 
         // onConstructed(); // You can define this method to get a callback
     }
@@ -169,10 +164,10 @@
     };
 
     @DataClass.Generated(
-            time = 1582589960479L,
-            codegenVersion = "1.0.14",
+            time = 1584557524776L,
+            codegenVersion = "1.0.15",
             sourceFile = "frameworks/base/core/java/android/content/pm/parsing/component/ParsedProcess.java",
-            inputSignatures = "protected @android.annotation.NonNull java.lang.String name\nprotected @android.annotation.NonNull @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedStringSet.class) java.util.Set<java.lang.String> deniedPermissions\nprotected @android.annotation.Nullable java.lang.Boolean enableGwpAsan\npublic  void addStateFrom(android.content.pm.parsing.component.ParsedProcess)\nclass ParsedProcess extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genGetters=true, genSetters=false, genParcelable=true, genAidl=false, genBuilder=false)")
+            inputSignatures = "protected @android.annotation.NonNull java.lang.String name\nprotected @android.annotation.NonNull @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedStringSet.class) java.util.Set<java.lang.String> deniedPermissions\nprotected  int gwpAsanMode\npublic  void addStateFrom(android.content.pm.parsing.component.ParsedProcess)\nclass ParsedProcess extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genGetters=true, genSetters=false, genParcelable=true, genAidl=false, genBuilder=false)")
     @Deprecated
     private void __metadata() {}
 
diff --git a/core/java/android/content/pm/parsing/component/ParsedProcessUtils.java b/core/java/android/content/pm/parsing/component/ParsedProcessUtils.java
index 3820790..8372707 100644
--- a/core/java/android/content/pm/parsing/component/ParsedProcessUtils.java
+++ b/core/java/android/content/pm/parsing/component/ParsedProcessUtils.java
@@ -104,10 +104,7 @@
                 return input.error("<process> does not specify android:process");
             }
 
-            if (sa.hasValue(R.styleable.AndroidManifestProcess_enableGwpAsan)) {
-                proc.enableGwpAsan =
-                        sa.getBoolean(R.styleable.AndroidManifestProcess_enableGwpAsan, false);
-            }
+            proc.gwpAsanMode = sa.getInt(R.styleable.AndroidManifestProcess_gwpAsanMode, -1);
         } finally {
             sa.recycle();
         }
diff --git a/core/java/android/content/res/ApkAssets.java b/core/java/android/content/res/ApkAssets.java
index 8db2785..bc41806 100644
--- a/core/java/android/content/res/ApkAssets.java
+++ b/core/java/android/content/res/ApkAssets.java
@@ -15,17 +15,20 @@
  */
 package android.content.res;
 
+import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.om.OverlayableInfo;
+import android.content.res.loader.AssetsProvider;
 import android.content.res.loader.ResourcesProvider;
-import android.text.TextUtils;
 
 import com.android.internal.annotations.GuardedBy;
 
 import java.io.FileDescriptor;
 import java.io.IOException;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.Objects;
 
 /**
@@ -39,14 +42,79 @@
  * @hide
  */
 public final class ApkAssets {
-    @GuardedBy("this") private final long mNativePtr;
+
+    /**
+     * The apk assets contains framework resource values specified by the system.
+     * This allows some functions to filter out this package when computing what
+     * configurations/resources are available.
+     */
+    public static final int PROPERTY_SYSTEM = 1 << 0;
+
+    /**
+     * The apk assets is a shared library or was loaded as a shared library by force.
+     * The package ids of dynamic apk assets are assigned at runtime instead of compile time.
+     */
+    public static final int PROPERTY_DYNAMIC = 1 << 1;
+
+    /**
+     * The apk assets has been loaded dynamically using a {@link ResourcesProvider}.
+     * Loader apk assets overlay resources like RROs except they are not backed by an idmap.
+     */
+    public static final int PROPERTY_LOADER = 1 << 2;
+
+    /**
+     * The apk assets is a RRO.
+     * An RRO overlays resource values of its target package.
+     */
+    private static final int PROPERTY_OVERLAY = 1 << 3;
+
+    /** Flags that change the behavior of loaded apk assets. */
+    @IntDef(prefix = { "PROPERTY_" }, value = {
+            PROPERTY_SYSTEM,
+            PROPERTY_DYNAMIC,
+            PROPERTY_LOADER,
+            PROPERTY_OVERLAY,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface PropertyFlags {}
+
+    /** The path used to load the apk assets represents an APK file. */
+    private static final int FORMAT_APK = 0;
+
+    /** The path used to load the apk assets represents an idmap file. */
+    private static final int FORMAT_IDMAP = 1;
+
+    /** The path used to load the apk assets represents an resources.arsc file. */
+    private static final int FORMAT_ARSC = 2;
+
+    /** the path used to load the apk assets represents a directory. */
+    private static final int FORMAT_DIR = 3;
+
+    // Format types that change how the apk assets are loaded.
+    @IntDef(prefix = { "FORMAT_" }, value = {
+            FORMAT_APK,
+            FORMAT_IDMAP,
+            FORMAT_ARSC,
+            FORMAT_DIR
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface FormatType {}
+
+    @GuardedBy("this")
+    private final long mNativePtr;
 
     @Nullable
-    @GuardedBy("this") private final StringBlock mStringBlock;
+    @GuardedBy("this")
+    private final StringBlock mStringBlock;
 
-    @GuardedBy("this") private boolean mOpen = true;
+    @GuardedBy("this")
+    private boolean mOpen = true;
 
-    private final boolean mForLoader;
+    @PropertyFlags
+    private final int mFlags;
+
+    @Nullable
+    private final AssetsProvider mAssets;
 
     /**
      * Creates a new ApkAssets instance from the given path on disk.
@@ -56,59 +124,77 @@
      * @throws IOException if a disk I/O error or parsing error occurred.
      */
     public static @NonNull ApkAssets loadFromPath(@NonNull String path) throws IOException {
-        return new ApkAssets(path, false /*system*/, false /*forceSharedLib*/, false /*overlay*/,
-                false /*arscOnly*/, false /*forLoader*/);
+        return loadFromPath(path, 0 /* flags */);
     }
 
     /**
      * Creates a new ApkAssets instance from the given path on disk.
      *
      * @param path The path to an APK on disk.
-     * @param system When true, the APK is loaded as a system APK (framework).
+     * @param flags flags that change the behavior of loaded apk assets
      * @return a new instance of ApkAssets.
      * @throws IOException if a disk I/O error or parsing error occurred.
      */
-    public static @NonNull ApkAssets loadFromPath(@NonNull String path, boolean system)
+    public static @NonNull ApkAssets loadFromPath(@NonNull String path, @PropertyFlags int flags)
             throws IOException {
-        return new ApkAssets(path, system, false /*forceSharedLib*/, false /*overlay*/,
-                false /*arscOnly*/, false /*forLoader*/);
+        return new ApkAssets(FORMAT_APK, path, flags, null /* assets */);
     }
 
     /**
      * Creates a new ApkAssets instance from the given path on disk.
      *
      * @param path The path to an APK on disk.
-     * @param system When true, the APK is loaded as a system APK (framework).
-     * @param forceSharedLibrary When true, any packages within the APK with package ID 0x7f are
-     *                           loaded as a shared library.
+     * @param flags flags that change the behavior of loaded apk assets
+     * @param assets The assets provider that overrides the loading of file-based resources
      * @return a new instance of ApkAssets.
      * @throws IOException if a disk I/O error or parsing error occurred.
      */
-    public static @NonNull ApkAssets loadFromPath(@NonNull String path, boolean system,
-            boolean forceSharedLibrary) throws IOException {
-        return new ApkAssets(path, system, forceSharedLibrary, false /*overlay*/,
-                false /*arscOnly*/, false /*forLoader*/);
+    public static @NonNull ApkAssets loadFromPath(@NonNull String path, @PropertyFlags int flags,
+            @Nullable AssetsProvider assets) throws IOException {
+        return new ApkAssets(FORMAT_APK, path, flags, assets);
     }
 
     /**
-     * Creates a new ApkAssets instance from the given file descriptor. Not for use by applications.
+     * Creates a new ApkAssets instance from the given file descriptor.
      *
      * Performs a dup of the underlying fd, so you must take care of still closing
      * the FileDescriptor yourself (and can do that whenever you want).
      *
      * @param fd The FileDescriptor of an open, readable APK.
      * @param friendlyName The friendly name used to identify this ApkAssets when logging.
-     * @param system When true, the APK is loaded as a system APK (framework).
-     * @param forceSharedLibrary When true, any packages within the APK with package ID 0x7f are
-     *                           loaded as a shared library.
+     * @param flags flags that change the behavior of loaded apk assets
+     * @param assets The assets provider that overrides the loading of file-based resources
      * @return a new instance of ApkAssets.
      * @throws IOException if a disk I/O error or parsing error occurred.
      */
     public static @NonNull ApkAssets loadFromFd(@NonNull FileDescriptor fd,
-            @NonNull String friendlyName, boolean system, boolean forceSharedLibrary)
+            @NonNull String friendlyName, @PropertyFlags int flags,
+            @Nullable AssetsProvider assets) throws IOException {
+        return new ApkAssets(FORMAT_APK, fd, friendlyName, flags, assets);
+    }
+
+    /**
+     * Creates a new ApkAssets instance from the given file descriptor.
+     *
+     * Performs a dup of the underlying fd, so you must take care of still closing
+     * the FileDescriptor yourself (and can do that whenever you want).
+     *
+     * @param fd The FileDescriptor of an open, readable APK.
+     * @param friendlyName The friendly name used to identify this ApkAssets when logging.
+     * @param offset The location within the file that the apk starts. This must be 0 if length is
+     *               {@link AssetFileDescriptor#UNKNOWN_LENGTH}.
+     * @param length The number of bytes of the apk, or {@link AssetFileDescriptor#UNKNOWN_LENGTH}
+     *               if it extends to the end of the file.
+     * @param flags flags that change the behavior of loaded apk assets
+     * @param assets The assets provider that overrides the loading of file-based resources
+     * @return a new instance of ApkAssets.
+     * @throws IOException if a disk I/O error or parsing error occurred.
+     */
+    public static @NonNull ApkAssets loadFromFd(@NonNull FileDescriptor fd,
+            @NonNull String friendlyName, long offset, long length, @PropertyFlags int flags,
+            @Nullable AssetsProvider assets)
             throws IOException {
-        return new ApkAssets(fd, friendlyName, system, forceSharedLibrary, false /*arscOnly*/,
-                false /*forLoader*/);
+        return new ApkAssets(FORMAT_APK, fd, friendlyName, offset, length, flags, assets);
     }
 
     /**
@@ -116,97 +202,124 @@
      * is encoded within the IDMAP.
      *
      * @param idmapPath Path to the IDMAP of an overlay APK.
-     * @param system When true, the APK is loaded as a system APK (framework).
+     * @param flags flags that change the behavior of loaded apk assets
      * @return a new instance of ApkAssets.
      * @throws IOException if a disk I/O error or parsing error occurred.
      */
-    public static @NonNull ApkAssets loadOverlayFromPath(@NonNull String idmapPath, boolean system)
-            throws IOException {
-        return new ApkAssets(idmapPath, system, false /*forceSharedLibrary*/, true /*overlay*/,
-                false /*arscOnly*/, false /*forLoader*/);
+    public static @NonNull ApkAssets loadOverlayFromPath(@NonNull String idmapPath,
+            @PropertyFlags int flags) throws IOException {
+        return new ApkAssets(FORMAT_IDMAP, idmapPath, flags, null /* assets */);
     }
 
     /**
-     * Creates a new ApkAssets instance from the given path on disk for use with a
-     * {@link ResourcesProvider}.
-     *
-     * @param path The path to an APK on disk.
-     * @return a new instance of ApkAssets.
-     * @throws IOException if a disk I/O error or parsing error occurred.
-     */
-    public static @NonNull ApkAssets loadApkForLoader(@NonNull String path)
-            throws IOException {
-        return new ApkAssets(path, false /*system*/, false /*forceSharedLibrary*/,
-                false /*overlay*/, false /*arscOnly*/, true /*forLoader*/);
-    }
-
-    /**
-     * Creates a new ApkAssets instance from the given file descriptor for use with a
-     * {@link ResourcesProvider}.
-     *
-     * Performs a dup of the underlying fd, so you must take care of still closing
-     * the FileDescriptor yourself (and can do that whenever you want).
-     *
-     * @param fd The FileDescriptor of an open, readable APK.
-     * @return a new instance of ApkAssets.
-     * @throws IOException if a disk I/O error or parsing error occurred.
-     */
-    @NonNull
-    public static ApkAssets loadApkForLoader(@NonNull FileDescriptor fd) throws IOException {
-        return new ApkAssets(fd, TextUtils.emptyIfNull(fd.toString()),
-                false /*system*/, false /*forceSharedLib*/, false /*arscOnly*/, true /*forLoader*/);
-    }
-
-    /**
-     * Creates a new ApkAssets instance from the given file descriptor representing an ARSC
+     * Creates a new ApkAssets instance from the given file descriptor representing a resources.arsc
      * for use with a {@link ResourcesProvider}.
      *
      * Performs a dup of the underlying fd, so you must take care of still closing
      * the FileDescriptor yourself (and can do that whenever you want).
      *
-     * @param fd The FileDescriptor of an open, readable .arsc.
+     * @param fd The FileDescriptor of an open, readable resources.arsc.
+     * @param friendlyName The friendly name used to identify this ApkAssets when logging.
+     * @param flags flags that change the behavior of loaded apk assets
+     * @param assets The assets provider that overrides the loading of file-based resources
      * @return a new instance of ApkAssets.
      * @throws IOException if a disk I/O error or parsing error occurred.
      */
-    public static @NonNull ApkAssets loadArscForLoader(@NonNull FileDescriptor fd)
-            throws IOException {
-        return new ApkAssets(fd, TextUtils.emptyIfNull(fd.toString()),
-                false /*system*/, false /*forceSharedLib*/, true /*arscOnly*/, true /*forLoader*/);
+    public static @NonNull ApkAssets loadTableFromFd(@NonNull FileDescriptor fd,
+            @NonNull String friendlyName, @PropertyFlags int flags,
+            @Nullable AssetsProvider assets) throws IOException {
+        return new ApkAssets(FORMAT_ARSC, fd, friendlyName, flags, assets);
+    }
+
+    /**
+     * Creates a new ApkAssets instance from the given file descriptor representing a resources.arsc
+     * for use with a {@link ResourcesProvider}.
+     *
+     * Performs a dup of the underlying fd, so you must take care of still closing
+     * the FileDescriptor yourself (and can do that whenever you want).
+     *
+     * @param fd The FileDescriptor of an open, readable resources.arsc.
+     * @param friendlyName The friendly name used to identify this ApkAssets when logging.
+     * @param offset The location within the file that the table starts. This must be 0 if length is
+     *               {@link AssetFileDescriptor#UNKNOWN_LENGTH}.
+     * @param length The number of bytes of the table, or {@link AssetFileDescriptor#UNKNOWN_LENGTH}
+     *               if it extends to the end of the file.
+     * @param flags flags that change the behavior of loaded apk assets
+     * @param assets The assets provider that overrides the loading of file-based resources
+     * @return a new instance of ApkAssets.
+     * @throws IOException if a disk I/O error or parsing error occurred.
+     */
+    public static @NonNull ApkAssets loadTableFromFd(@NonNull FileDescriptor fd,
+            @NonNull String friendlyName, long offset, long length, @PropertyFlags int flags,
+            @Nullable AssetsProvider assets) throws IOException {
+        return new ApkAssets(FORMAT_ARSC, fd, friendlyName, offset, length, flags, assets);
+    }
+
+    /**
+     * Creates a new ApkAssets instance from the given directory path. The directory should have the
+     * file structure of an APK.
+     *
+     * @param path The path to a directory on disk.
+     * @param flags flags that change the behavior of loaded apk assets
+     * @param assets The assets provider that overrides the loading of file-based resources
+     * @return a new instance of ApkAssets.
+     * @throws IOException if a disk I/O error or parsing error occurred.
+     */
+    public static @NonNull ApkAssets loadFromDir(@NonNull String path,
+            @PropertyFlags int flags, @Nullable AssetsProvider assets) throws IOException {
+        return new ApkAssets(FORMAT_DIR, path, flags, assets);
     }
 
     /**
      * Generates an entirely empty ApkAssets. Needed because the ApkAssets instance and presence
      * is required for a lot of APIs, and it's easier to have a non-null reference rather than
      * tracking a separate identifier.
+     *
+     * @param flags flags that change the behavior of loaded apk assets
+     * @param assets The assets provider that overrides the loading of file-based resources
      */
     @NonNull
-    public static ApkAssets loadEmptyForLoader() {
-        return new ApkAssets(true);
+    public static ApkAssets loadEmptyForLoader(@PropertyFlags int flags,
+            @Nullable AssetsProvider assets) {
+        return new ApkAssets(flags, assets);
     }
 
-    private ApkAssets(boolean forLoader) {
-        mForLoader = forLoader;
-        mNativePtr = nativeLoadEmpty(forLoader);
-        mStringBlock = null;
-    }
-
-    private ApkAssets(@NonNull String path, boolean system, boolean forceSharedLib, boolean overlay,
-            boolean arscOnly, boolean forLoader) throws IOException {
-        mForLoader = forLoader;
+    private ApkAssets(@FormatType int format, @NonNull String path, @PropertyFlags int flags,
+            @Nullable AssetsProvider assets) throws IOException {
         Objects.requireNonNull(path, "path");
-        mNativePtr = arscOnly ? nativeLoadArsc(path, forLoader)
-                : nativeLoad(path, system, forceSharedLib, overlay, forLoader);
+        mFlags = flags;
+        mNativePtr = nativeLoad(format, path, flags, assets);
         mStringBlock = new StringBlock(nativeGetStringBlock(mNativePtr), true /*useSparse*/);
+        mAssets = assets;
     }
 
-    private ApkAssets(@NonNull FileDescriptor fd, @NonNull String friendlyName, boolean system,
-            boolean forceSharedLib, boolean arscOnly, boolean forLoader) throws IOException {
-        mForLoader = forLoader;
+    private ApkAssets(@FormatType int format, @NonNull FileDescriptor fd,
+            @NonNull String friendlyName, @PropertyFlags int flags, @Nullable AssetsProvider assets)
+            throws IOException {
         Objects.requireNonNull(fd, "fd");
         Objects.requireNonNull(friendlyName, "friendlyName");
-        mNativePtr = arscOnly ? nativeLoadArscFromFd(fd, friendlyName, forLoader)
-                : nativeLoadFromFd(fd, friendlyName, system, forceSharedLib, forLoader);
+        mFlags = flags;
+        mNativePtr = nativeLoadFd(format, fd, friendlyName, flags, assets);
         mStringBlock = new StringBlock(nativeGetStringBlock(mNativePtr), true /*useSparse*/);
+        mAssets = assets;
+    }
+
+    private ApkAssets(@FormatType int format, @NonNull FileDescriptor fd,
+            @NonNull String friendlyName, long offset, long length, @PropertyFlags int flags,
+            @Nullable AssetsProvider assets) throws IOException {
+        Objects.requireNonNull(fd, "fd");
+        Objects.requireNonNull(friendlyName, "friendlyName");
+        mFlags = flags;
+        mNativePtr = nativeLoadFdOffsets(format, fd, friendlyName, offset, length, flags, assets);
+        mStringBlock = new StringBlock(nativeGetStringBlock(mNativePtr), true /*useSparse*/);
+        mAssets = assets;
+    }
+
+    private ApkAssets(@PropertyFlags int flags, @Nullable AssetsProvider assets) {
+        mFlags = flags;
+        mNativePtr = nativeLoadEmpty(flags, assets);
+        mStringBlock = null;
+        mAssets = assets;
     }
 
     @UnsupportedAppUsage
@@ -226,8 +339,17 @@
         }
     }
 
+    /** Returns whether this apk assets was loaded using a {@link ResourcesProvider}. */
     public boolean isForLoader() {
-        return mForLoader;
+        return (mFlags & PROPERTY_LOADER) != 0;
+    }
+
+    /**
+     * Returns the assets provider that overrides the loading of assets present in this apk assets.
+     */
+    @Nullable
+    public AssetsProvider getAssetsProvider() {
+        return mAssets;
     }
 
     /**
@@ -300,18 +422,16 @@
         }
     }
 
-    private static native long nativeLoad(@NonNull String path, boolean system,
-            boolean forceSharedLib, boolean overlay, boolean forLoader)
-            throws IOException;
-    private static native long nativeLoadFromFd(@NonNull FileDescriptor fd,
-            @NonNull String friendlyName, boolean system, boolean forceSharedLib,
-            boolean forLoader)
-            throws IOException;
-    private static native long nativeLoadArsc(@NonNull String path, boolean forLoader)
-            throws IOException;
-    private static native long nativeLoadArscFromFd(@NonNull FileDescriptor fd,
-            @NonNull String friendlyName, boolean forLoader) throws IOException;
-    private static native long nativeLoadEmpty(boolean forLoader);
+    private static native long nativeLoad(@FormatType int format, @NonNull String path,
+            @PropertyFlags int flags, @Nullable AssetsProvider asset) throws IOException;
+    private static native long nativeLoadEmpty(@PropertyFlags int flags,
+            @Nullable AssetsProvider asset);
+    private static native long nativeLoadFd(@FormatType int format, @NonNull FileDescriptor fd,
+            @NonNull String friendlyName, @PropertyFlags int flags,
+            @Nullable AssetsProvider asset) throws IOException;
+    private static native long nativeLoadFdOffsets(@FormatType int format,
+            @NonNull FileDescriptor fd, @NonNull String friendlyName, long offset, long length,
+            @PropertyFlags int flags, @Nullable AssetsProvider asset) throws IOException;
     private static native void nativeDestroy(long ptr);
     private static native @NonNull String nativeGetAssetPath(long ptr);
     private static native long nativeGetStringBlock(long ptr);
diff --git a/core/java/android/content/res/AssetManager.java b/core/java/android/content/res/AssetManager.java
index f295f8c..d2103af 100644
--- a/core/java/android/content/res/AssetManager.java
+++ b/core/java/android/content/res/AssetManager.java
@@ -27,9 +27,7 @@
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.pm.ActivityInfo;
 import android.content.res.Configuration.NativeConfig;
-import android.content.res.loader.AssetsProvider;
 import android.content.res.loader.ResourcesLoader;
-import android.content.res.loader.ResourcesProvider;
 import android.os.ParcelFileDescriptor;
 import android.util.ArraySet;
 import android.util.Log;
@@ -44,7 +42,6 @@
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
-import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -151,12 +148,9 @@
                 final List<ApkAssets> currentLoaderApkAssets = mLoaders.get(i).getApkAssets();
                 for (int j = currentLoaderApkAssets.size() - 1; j >= 0; j--) {
                     final ApkAssets apkAssets = currentLoaderApkAssets.get(j);
-                    if (uniqueLoaderApkAssets.contains(apkAssets)) {
-                        continue;
+                    if (uniqueLoaderApkAssets.add(apkAssets)) {
+                        loaderApkAssets.add(0, apkAssets);
                     }
-
-                    uniqueLoaderApkAssets.add(apkAssets);
-                    loaderApkAssets.add(0, apkAssets);
                 }
             }
 
@@ -242,12 +236,12 @@
 
         try {
             final ArrayList<ApkAssets> apkAssets = new ArrayList<>();
-            apkAssets.add(ApkAssets.loadFromPath(frameworkPath, true /*system*/));
+            apkAssets.add(ApkAssets.loadFromPath(frameworkPath, ApkAssets.PROPERTY_SYSTEM));
 
             final String[] systemIdmapPaths =
                     OverlayConfig.getZygoteInstance().createImmutableFrameworkIdmapsInZygote();
             for (String idmapPath : systemIdmapPaths) {
-                apkAssets.add(ApkAssets.loadOverlayFromPath(idmapPath, true /*system*/));
+                apkAssets.add(ApkAssets.loadOverlayFromPath(idmapPath, ApkAssets.PROPERTY_SYSTEM));
             }
 
             sSystemApkAssetsSet = new ArraySet<>(apkAssets);
@@ -332,6 +326,42 @@
     }
 
     /**
+     * Changes the {@link ResourcesLoader ResourcesLoaders} used in this AssetManager.
+     * @hide
+     */
+    void setLoaders(@NonNull List<ResourcesLoader> newLoaders) {
+        Objects.requireNonNull(newLoaders, "newLoaders");
+
+        final ArrayList<ApkAssets> apkAssets = new ArrayList<>();
+        for (int i = 0; i < mApkAssets.length; i++) {
+            // Filter out the previous loader apk assets.
+            if (!mApkAssets[i].isForLoader()) {
+                apkAssets.add(mApkAssets[i]);
+            }
+        }
+
+        if (!newLoaders.isEmpty()) {
+            // Filter so that assets provided by multiple loaders are only included once
+            // in the final assets list. The last appearance of the ApkAssets dictates its load
+            // order.
+            final int loaderStartIndex = apkAssets.size();
+            final ArraySet<ApkAssets> uniqueLoaderApkAssets = new ArraySet<>();
+            for (int i = newLoaders.size() - 1; i >= 0; i--) {
+                final List<ApkAssets> currentLoaderApkAssets = newLoaders.get(i).getApkAssets();
+                for (int j = currentLoaderApkAssets.size() - 1; j >= 0; j--) {
+                    final ApkAssets loaderApkAssets = currentLoaderApkAssets.get(j);
+                    if (uniqueLoaderApkAssets.add(loaderApkAssets)) {
+                        apkAssets.add(loaderStartIndex, loaderApkAssets);
+                    }
+                }
+            }
+        }
+
+        mLoaders = newLoaders.toArray(new ResourcesLoader[0]);
+        setApkAssets(apkAssets.toArray(new ApkAssets[0]), true /* invalidate_caches */);
+    }
+
+    /**
      * Invalidates the caches in this AssetManager according to the bitmask `diff`.
      *
      * @param diff The bitmask of changes generated by {@link Configuration#diff(Configuration)}.
@@ -443,9 +473,10 @@
                     final String idmapPath = "/data/resource-cache/"
                             + path.substring(1).replace('/', '@')
                             + "@idmap";
-                    assets = ApkAssets.loadOverlayFromPath(idmapPath, false /*system*/);
+                    assets = ApkAssets.loadOverlayFromPath(idmapPath, 0 /* flags */);
                 } else {
-                    assets = ApkAssets.loadFromPath(path, false /*system*/, appAsLib);
+                    assets = ApkAssets.loadFromPath(path,
+                            appAsLib ? ApkAssets.PROPERTY_DYNAMIC : 0);
                 }
             } catch (IOException e) {
                 return 0;
@@ -827,13 +858,6 @@
         Objects.requireNonNull(fileName, "fileName");
         synchronized (this) {
             ensureOpenLocked();
-
-            String path = Paths.get("assets", fileName).toString();
-            InputStream inputStream = searchLoaders(0, path, accessMode);
-            if (inputStream != null) {
-                return inputStream;
-            }
-
             final long asset = nativeOpenAsset(mObject, fileName, accessMode);
             if (asset == 0) {
                 throw new FileNotFoundException("Asset file: " + fileName);
@@ -858,13 +882,6 @@
         Objects.requireNonNull(fileName, "fileName");
         synchronized (this) {
             ensureOpenLocked();
-
-            String path = Paths.get("assets", fileName).toString();
-            AssetFileDescriptor fileDescriptor = searchLoadersFd(0, path);
-            if (fileDescriptor != null) {
-                return fileDescriptor;
-            }
-
             final ParcelFileDescriptor pfd = nativeOpenAssetFd(mObject, fileName, mOffsets);
             if (pfd == null) {
                 throw new FileNotFoundException("Asset file: " + fileName);
@@ -958,12 +975,6 @@
         Objects.requireNonNull(fileName, "fileName");
         synchronized (this) {
             ensureOpenLocked();
-
-            InputStream inputStream = searchLoaders(cookie, fileName, accessMode);
-            if (inputStream != null) {
-                return inputStream;
-            }
-
             final long asset = nativeOpenNonAsset(mObject, cookie, fileName, accessMode);
             if (asset == 0) {
                 throw new FileNotFoundException("Asset absolute file: " + fileName);
@@ -1003,12 +1014,6 @@
         Objects.requireNonNull(fileName, "fileName");
         synchronized (this) {
             ensureOpenLocked();
-
-            AssetFileDescriptor fileDescriptor = searchLoadersFd(cookie, fileName);
-            if (fileDescriptor != null) {
-                return fileDescriptor;
-            }
-
             final ParcelFileDescriptor pfd =
                     nativeOpenNonAssetFd(mObject, cookie, fileName, mOffsets);
             if (pfd == null) {
@@ -1071,15 +1076,7 @@
         synchronized (this) {
             ensureOpenLocked();
 
-            final long xmlBlock;
-            AssetFileDescriptor fileDescriptor = searchLoadersFd(cookie, fileName);
-            if (fileDescriptor != null) {
-                xmlBlock = nativeOpenXmlAssetFd(mObject, cookie,
-                        fileDescriptor.getFileDescriptor());
-            } else {
-                xmlBlock = nativeOpenXmlAsset(mObject, cookie, fileName);
-            }
-
+            final long xmlBlock = nativeOpenXmlAsset(mObject, cookie, fileName);
             if (xmlBlock == 0) {
                 throw new FileNotFoundException("Asset XML file: " + fileName);
             }
@@ -1089,122 +1086,6 @@
         }
     }
 
-    private ResourcesProvider findResourcesProvider(int assetCookie) {
-        if (mLoaders == null) {
-            return null;
-        }
-
-        int apkAssetsIndex = assetCookie - 1;
-        if (apkAssetsIndex >= mApkAssets.length || apkAssetsIndex < 0) {
-            return null;
-        }
-
-        final ApkAssets apkAssets = mApkAssets[apkAssetsIndex];
-        if (!apkAssets.isForLoader()) {
-            return null;
-        }
-
-        for (int i = mLoaders.length - 1; i >= 0; i--) {
-            final ResourcesLoader loader = mLoaders[i];
-            for (int j = 0, n = loader.getProviders().size(); j < n; j++) {
-                final ResourcesProvider provider = loader.getProviders().get(j);
-                if (apkAssets == provider.getApkAssets()) {
-                    return provider;
-                }
-            }
-        }
-
-        return null;
-    }
-
-    private InputStream searchLoaders(int cookie, @NonNull String fileName, int accessMode)
-            throws IOException {
-        if (mLoaders == null) {
-            return null;
-        }
-
-        if (cookie == 0) {
-            // A cookie of 0 means no specific ApkAssets, so search everything
-            for (int i = mLoaders.length - 1; i >= 0; i--) {
-                final ResourcesLoader loader = mLoaders[i];
-                final List<ResourcesProvider> providers = loader.getProviders();
-                for (int j = providers.size() - 1; j >= 0; j--) {
-                    final AssetsProvider assetsProvider = providers.get(j).getAssetsProvider();
-                    if (assetsProvider == null) {
-                        continue;
-                    }
-
-                    try {
-                        final InputStream inputStream = assetsProvider.loadAsset(
-                                fileName, accessMode);
-                        if (inputStream != null) {
-                            return inputStream;
-                        }
-                    } catch (IOException ignored) {
-                        // When searching, ignore read failures
-                    }
-                }
-            }
-
-            return null;
-        }
-
-        final ResourcesProvider provider = findResourcesProvider(cookie);
-        if (provider != null && provider.getAssetsProvider() != null) {
-            return provider.getAssetsProvider().loadAsset(
-                    fileName, accessMode);
-        }
-
-        return null;
-    }
-
-    private AssetFileDescriptor searchLoadersFd(int cookie, @NonNull String fileName)
-            throws IOException {
-        if (mLoaders == null) {
-            return null;
-        }
-
-        if (cookie == 0) {
-            // A cookie of 0 means no specific ApkAssets, so search everything
-            for (int i = mLoaders.length - 1; i >= 0; i--) {
-                final ResourcesLoader loader = mLoaders[i];
-                final List<ResourcesProvider> providers = loader.getProviders();
-                for (int j = providers.size() - 1; j >= 0; j--) {
-                    final AssetsProvider assetsProvider = providers.get(j).getAssetsProvider();
-                    if (assetsProvider == null) {
-                        continue;
-                    }
-
-                    try {
-                        final ParcelFileDescriptor fileDescriptor = assetsProvider
-                                .loadAssetParcelFd(fileName);
-                        if (fileDescriptor != null) {
-                            return new AssetFileDescriptor(fileDescriptor, 0,
-                                    AssetFileDescriptor.UNKNOWN_LENGTH);
-                        }
-                    } catch (IOException ignored) {
-                        // When searching, ignore read failures
-                    }
-                }
-            }
-
-            return null;
-        }
-
-        final ResourcesProvider provider = findResourcesProvider(cookie);
-        if (provider != null && provider.getAssetsProvider() != null) {
-            final ParcelFileDescriptor fileDescriptor = provider.getAssetsProvider()
-                    .loadAssetParcelFd(fileName);
-            if (fileDescriptor != null) {
-                return new AssetFileDescriptor(fileDescriptor, 0,
-                        AssetFileDescriptor.UNKNOWN_LENGTH);
-            }
-            return null;
-        }
-
-        return null;
-    }
-
     void xmlBlockGone(int id) {
         synchronized (this) {
             decRefsLocked(id);
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index cb809da..d6a9f69 100644
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
@@ -66,6 +66,7 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.GrowingArrayUtils;
+import com.android.internal.util.Preconditions;
 import com.android.internal.util.XmlUtils;
 
 import org.xmlpull.v1.XmlPullParser;
@@ -244,7 +245,36 @@
          * @param resources the instance being updated
          * @param newLoaders the new set of loaders for the instance
          */
-        void onLoadersChanged(Resources resources, List<ResourcesLoader> newLoaders);
+        void onLoadersChanged(@NonNull Resources resources,
+                @NonNull List<ResourcesLoader> newLoaders);
+    }
+
+    /**
+     * Handler that propagates updates of the {@link Resources} instance to the underlying
+     * {@link AssetManager} when the Resources is not registered with a
+     * {@link android.app.ResourcesManager}.
+     * @hide
+     */
+    public class AssetManagerUpdateHandler implements UpdateCallbacks{
+
+        @Override
+        public void onLoadersChanged(@NonNull Resources resources,
+                @NonNull List<ResourcesLoader> newLoaders) {
+            Preconditions.checkArgument(Resources.this == resources);
+            final ResourcesImpl impl = mResourcesImpl;
+            impl.clearAllCaches();
+            impl.getAssets().setLoaders(newLoaders);
+        }
+
+        @Override
+        public void onLoaderUpdated(@NonNull ResourcesLoader loader) {
+            final ResourcesImpl impl = mResourcesImpl;
+            final AssetManager assets = impl.getAssets();
+            if (assets.getLoaders().contains(loader)) {
+                impl.clearAllCaches();
+                assets.setLoaders(assets.getLoaders());
+            }
+        }
     }
 
     /**
@@ -2367,8 +2397,9 @@
 
     private void checkCallbacksRegistered() {
         if (mCallbacks == null) {
-            throw new IllegalArgumentException("Cannot modify resource loaders of Resources"
-                    + " instances created outside of ResourcesManager");
+            // Fallback to updating the underlying AssetManager if the Resources is not associated
+            // with a ResourcesManager.
+            mCallbacks = new AssetManagerUpdateHandler();
         }
     }
 
@@ -2388,6 +2419,9 @@
      * Adds a loader to the list of loaders. If the loader is already present in the list, the list
      * will not be modified.
      *
+     * <p>This should only be called from the UI thread to avoid lock contention when propagating
+     * loader changes.
+     *
      * @param loaders the loaders to add
      */
     public void addLoaders(@NonNull ResourcesLoader... loaders) {
@@ -2419,6 +2453,9 @@
      * Removes loaders from the list of loaders. If the loader is not present in the list, the list
      * will not be modified.
      *
+     * <p>This should only be called from the UI thread to avoid lock contention when propagating
+     * loader changes.
+     *
      * @param loaders the loaders to remove
      */
     public void removeLoaders(@NonNull ResourcesLoader... loaders) {
@@ -2448,6 +2485,9 @@
 
     /**
      * Removes all {@link ResourcesLoader ResourcesLoader(s)}.
+     *
+     * <p>This should only be called from the UI thread to avoid lock contention when propagating
+     * loader changes.
      * @hide
      */
     @VisibleForTesting
diff --git a/core/java/android/content/res/loader/AssetsProvider.java b/core/java/android/content/res/loader/AssetsProvider.java
index c315494..0f8f1d1 100644
--- a/core/java/android/content/res/loader/AssetsProvider.java
+++ b/core/java/android/content/res/loader/AssetsProvider.java
@@ -18,12 +18,10 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.content.res.AssetFileDescriptor;
 import android.content.res.AssetManager;
 import android.os.ParcelFileDescriptor;
 
-import java.io.IOException;
-import java.io.InputStream;
-
 /**
  * Provides callbacks that allow for the value of a file-based resources or assets of a
  * {@link ResourcesProvider} to be specified or overridden.
@@ -34,6 +32,10 @@
      * Callback that allows the value of a file-based resources or asset to be specified or
      * overridden.
      *
+     * <p>The system will take ownership of the file descriptor returned from this method, so
+     * {@link ParcelFileDescriptor#dup() dup} the file descriptor before returning if the system
+     * should not own it.
+     *
      * <p>There are two situations in which this method will be called:
      * <ul>
      * <li>AssetManager is queried for an InputStream of an asset using APIs like
@@ -52,17 +54,7 @@
      * @see AssetManager#open
      */
     @Nullable
-    default InputStream loadAsset(@NonNull String path, int accessMode) throws IOException {
-        return null;
-    }
-
-    /**
-     * {@link ParcelFileDescriptor} variant of {@link #loadAsset(String, int)}.
-     *
-     * @param path the asset path being loaded
-     */
-    @Nullable
-    default ParcelFileDescriptor loadAssetParcelFd(@NonNull String path) throws IOException {
+    default AssetFileDescriptor loadAssetFd(@NonNull String path, int accessMode) {
         return null;
     }
 }
diff --git a/core/java/android/content/res/loader/DirectoryAssetsProvider.java b/core/java/android/content/res/loader/DirectoryAssetsProvider.java
deleted file mode 100644
index 81c2a4c..0000000
--- a/core/java/android/content/res/loader/DirectoryAssetsProvider.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content.res.loader;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.os.ParcelFileDescriptor;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * A {@link AssetsProvider} that searches a directory for assets.
- * Assumes that resource paths are resolvable child paths of the root directory passed in.
- */
-public class DirectoryAssetsProvider implements AssetsProvider {
-
-    @NonNull
-    private final File mDirectory;
-
-    /**
-     * Creates a DirectoryAssetsProvider with given root directory.
-     *
-     * @param directory the root directory to resolve files from
-     */
-    public DirectoryAssetsProvider(@NonNull File directory) {
-        this.mDirectory = directory;
-    }
-
-    @Nullable
-    @Override
-    public InputStream loadAsset(@NonNull String path, int accessMode) throws IOException {
-        final File file = findFile(path);
-        if (file == null || !file.exists()) {
-            return null;
-        }
-        return new FileInputStream(file);
-    }
-
-    @Nullable
-    @Override
-    public ParcelFileDescriptor loadAssetParcelFd(@NonNull String path) throws IOException {
-        final File file = findFile(path);
-        if (file == null || !file.exists()) {
-            return null;
-        }
-        return ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
-    }
-
-    /**
-     * Finds the file relative to the root directory.
-     *
-     * @param path the relative path of the file
-     */
-    @Nullable
-    public File findFile(@NonNull String path) {
-        return mDirectory.toPath().resolve(path).toFile();
-    }
-
-    @NonNull
-    public File getDirectory() {
-        return mDirectory;
-    }
-}
diff --git a/core/java/android/content/res/loader/ResourcesLoader.java b/core/java/android/content/res/loader/ResourcesLoader.java
index 58fec60..c308400 100644
--- a/core/java/android/content/res/loader/ResourcesLoader.java
+++ b/core/java/android/content/res/loader/ResourcesLoader.java
@@ -45,6 +45,11 @@
  *
  * <p>Providers retrieved with {@link #getProviders()} are listed in increasing precedence order. A
  * provider will override the resources and assets of providers listed before itself.
+ *
+ * <p>Modifying the list of providers a loader contains or the list of loaders a Resources object
+ * contains can cause lock contention with the UI thread. APIs that modify the lists of loaders or
+ * providers should only be used on the UI thread. Providers can be instantiated on any thread
+ * without causing lock contention.
  */
 public class ResourcesLoader {
     private final Object mLock = new Object();
@@ -88,6 +93,9 @@
      * Appends a provider to the end of the provider list. If the provider is already present in the
      * loader list, the list will not be modified.
      *
+     * <p>This should only be called from the UI thread to avoid lock contention when propagating
+     * provider changes.
+     *
      * @param resourcesProvider the provider to add
      */
     public void addProvider(@NonNull ResourcesProvider resourcesProvider) {
@@ -102,6 +110,9 @@
      * Removes a provider from the provider list. If the provider is not present in the provider
      * list, the list will not be modified.
      *
+     * <p>This should only be called from the UI thread to avoid lock contention when propagating
+     * provider changes.
+     *
      * @param resourcesProvider the provider to remove
      */
     public void removeProvider(@NonNull ResourcesProvider resourcesProvider) {
@@ -115,6 +126,9 @@
     /**
      * Sets the list of providers.
      *
+     * <p>This should only be called from the UI thread to avoid lock contention when propagating
+     * provider changes.
+     *
      * @param resourcesProviders the new providers
      */
     public void setProviders(@NonNull List<ResourcesProvider> resourcesProviders) {
@@ -124,7 +138,12 @@
         }
     }
 
-    /** Removes all {@link ResourcesProvider ResourcesProvider(s)}. */
+    /**
+     * Removes all {@link ResourcesProvider ResourcesProvider(s)}.
+     *
+     * <p>This should only be called from the UI thread to avoid lock contention when propagating
+     * provider changes.
+     */
     public void clearProviders() {
         synchronized (mLock) {
             mProviders = null;
@@ -206,7 +225,6 @@
         return true;
     }
 
-
     /**
      * Invokes registered callbacks when the list of {@link ResourcesProvider} instances this loader
      * uses changes.
diff --git a/core/java/android/content/res/loader/ResourcesProvider.java b/core/java/android/content/res/loader/ResourcesProvider.java
index 419ec78..0a698d1 100644
--- a/core/java/android/content/res/loader/ResourcesProvider.java
+++ b/core/java/android/content/res/loader/ResourcesProvider.java
@@ -21,19 +21,21 @@
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.res.ApkAssets;
+import android.content.res.AssetFileDescriptor;
 import android.os.ParcelFileDescriptor;
-import android.os.SharedMemory;
 import android.util.Log;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.ArrayUtils;
 
 import java.io.Closeable;
+import java.io.File;
 import java.io.IOException;
 
 /**
  * Provides methods to load resources data from APKs ({@code .apk}) and resources tables
- * {@code .arsc} for use with {@link ResourcesLoader ResourcesLoader(s)}.
+ * (eg. {@code resources.arsc}) for use with {@link ResourcesLoader ResourcesLoader(s)}.
  */
 public class ResourcesProvider implements AutoCloseable, Closeable {
     private static final String TAG = "ResourcesProvider";
@@ -48,73 +50,111 @@
     @GuardedBy("mLock")
     private final ApkAssets mApkAssets;
 
-    private final AssetsProvider mAssetsProvider;
-
     /**
-     * Creates an empty ResourcesProvider with no resource data. This is useful for loading assets
-     * that are not associated with resource identifiers.
+     * Creates an empty ResourcesProvider with no resource data. This is useful for loading
+     * file-based assets not associated with resource identifiers.
      *
-     * @param assetsProvider the assets provider that overrides the loading of file-based resources
+     * @param assetsProvider the assets provider that implements the loading of file-based resources
      */
     @NonNull
     public static ResourcesProvider empty(@NonNull AssetsProvider assetsProvider) {
-        return new ResourcesProvider(ApkAssets.loadEmptyForLoader(), assetsProvider);
+        return new ResourcesProvider(ApkAssets.loadEmptyForLoader(ApkAssets.PROPERTY_LOADER,
+                assetsProvider));
     }
 
     /**
      * Creates a ResourcesProvider from an APK ({@code .apk}) file descriptor.
      *
-     * The file descriptor is duplicated and the original may be closed by the application at any
+     * <p>The file descriptor is duplicated and the original may be closed by the application at any
      * time without affecting the ResourcesProvider.
      *
      * @param fileDescriptor the file descriptor of the APK to load
+     *
+     * @see ParcelFileDescriptor#open(File, int)
+     * @see android.system.Os#memfd_create(String, int)
      */
     @NonNull
     public static ResourcesProvider loadFromApk(@NonNull ParcelFileDescriptor fileDescriptor)
             throws IOException {
-        return loadFromApk(fileDescriptor, null);
+        return loadFromApk(fileDescriptor, null /* assetsProvider */);
     }
 
     /**
      * Creates a ResourcesProvider from an APK ({@code .apk}) file descriptor.
      *
-     * The file descriptor is duplicated and the original may be closed by the application at any
+     * <p>The file descriptor is duplicated and the original may be closed by the application at any
      * time without affecting the ResourcesProvider.
      *
+     * <p>The assets provider can override the loading of files within the APK and can provide
+     * entirely new files that do not exist in the APK.
+     *
      * @param fileDescriptor the file descriptor of the APK to load
      * @param assetsProvider the assets provider that overrides the loading of file-based resources
+     *
+     * @see ParcelFileDescriptor#open(File, int)
+     * @see android.system.Os#memfd_create(String, int)
      */
     @NonNull
     public static ResourcesProvider loadFromApk(@NonNull ParcelFileDescriptor fileDescriptor,
             @Nullable AssetsProvider assetsProvider)
             throws IOException {
-        return new ResourcesProvider(
-                ApkAssets.loadApkForLoader(fileDescriptor.getFileDescriptor()), assetsProvider);
+        return new ResourcesProvider(ApkAssets.loadFromFd(fileDescriptor.getFileDescriptor(),
+                fileDescriptor.toString(), ApkAssets.PROPERTY_LOADER, assetsProvider));
     }
 
     /**
-     * Creates a ResourcesProvider from an {@code .apk} file representation in memory.
+     * Creates a ResourcesProvider from an APK ({@code .apk}) file descriptor.
      *
-     * @param sharedMemory the shared memory containing the data of the APK to load
+     * <p>The file descriptor is duplicated and the original may be closed by the application at any
+     * time without affecting the ResourcesProvider.
+     *
+     * <p>The assets provider can override the loading of files within the APK and can provide
+     * entirely new files that do not exist in the APK.
+     *
+     * @param fileDescriptor the file descriptor of the APK to load
+     * @param offset The location within the file that the apk starts. This must be 0 if length is
+     *               {@link AssetFileDescriptor#UNKNOWN_LENGTH}.
+     * @param length The number of bytes of the apk, or {@link AssetFileDescriptor#UNKNOWN_LENGTH}
+     *               if it extends to the end of the file.
+     * @param assetsProvider the assets provider that overrides the loading of file-based resources
+     *
+     * @see ParcelFileDescriptor#open(File, int)
+     * @see android.system.Os#memfd_create(String, int)
+     * @hide
      */
+    @VisibleForTesting
     @NonNull
-    public static ResourcesProvider loadFromApk(@NonNull SharedMemory sharedMemory)
+    public static ResourcesProvider loadFromApk(@NonNull ParcelFileDescriptor fileDescriptor,
+            long offset, long length, @Nullable AssetsProvider assetsProvider)
             throws IOException {
-        return loadFromApk(sharedMemory, null);
+        return new ResourcesProvider(ApkAssets.loadFromFd(fileDescriptor.getFileDescriptor(),
+                fileDescriptor.toString(), offset, length, ApkAssets.PROPERTY_LOADER,
+                assetsProvider));
     }
 
     /**
-     * Creates a ResourcesProvider from an {@code .apk} file representation in memory.
+     * Creates a ResourcesProvider from a resources table ({@code .arsc}) file descriptor.
      *
-     * @param sharedMemory the shared memory containing the data of the APK to load
+     * <p>The file descriptor is duplicated and the original may be closed by the application at any
+     * time without affecting the ResourcesProvider.
+     *
+     * <p>The resources table format is not an archive format and therefore cannot asset files
+     * within itself. The assets provider can instead provide files that are potentially referenced
+     * by path in the resources table.
+     *
+     * @param fileDescriptor the file descriptor of the resources table to load
      * @param assetsProvider the assets provider that implements the loading of file-based resources
+     *
+     * @see ParcelFileDescriptor#open(File, int)
+     * @see android.system.Os#memfd_create(String, int)
      */
     @NonNull
-    public static ResourcesProvider loadFromApk(@NonNull SharedMemory sharedMemory,
+    public static ResourcesProvider loadFromTable(@NonNull ParcelFileDescriptor fileDescriptor,
             @Nullable AssetsProvider assetsProvider)
             throws IOException {
         return new ResourcesProvider(
-                ApkAssets.loadApkForLoader(sharedMemory.getFileDescriptor()), assetsProvider);
+                ApkAssets.loadTableFromFd(fileDescriptor.getFileDescriptor(),
+                        fileDescriptor.toString(), ApkAssets.PROPERTY_LOADER, assetsProvider));
     }
 
     /**
@@ -123,30 +163,30 @@
      * The file descriptor is duplicated and the original may be closed by the application at any
      * time without affecting the ResourcesProvider.
      *
+     * <p>The resources table format is not an archive format and therefore cannot asset files
+     * within itself. The assets provider can instead provide files that are potentially referenced
+     * by path in the resources table.
+     *
      * @param fileDescriptor the file descriptor of the resources table to load
-     * @param assetsProvider the assets provider that implements the loading of file-based resources
+     * @param offset The location within the file that the table starts. This must be 0 if length is
+     *               {@link AssetFileDescriptor#UNKNOWN_LENGTH}.
+     * @param length The number of bytes of the table, or {@link AssetFileDescriptor#UNKNOWN_LENGTH}
+     *               if it extends to the end of the file.
+     * @param assetsProvider the assets provider that overrides the loading of file-based resources
+     *
+     * @see ParcelFileDescriptor#open(File, int)
+     * @see android.system.Os#memfd_create(String, int)
+     * @hide
      */
+    @VisibleForTesting
     @NonNull
     public static ResourcesProvider loadFromTable(@NonNull ParcelFileDescriptor fileDescriptor,
-            @Nullable AssetsProvider assetsProvider)
+            long offset, long length, @Nullable AssetsProvider assetsProvider)
             throws IOException {
         return new ResourcesProvider(
-                ApkAssets.loadArscForLoader(fileDescriptor.getFileDescriptor()), assetsProvider);
-    }
-
-    /**
-     * Creates a ResourcesProvider from a resources table ({@code .arsc}) file representation in
-     * memory.
-     *
-     * @param sharedMemory the shared memory containing the data of the resources table to load
-     * @param assetsProvider the assets provider that overrides the loading of file-based resources
-     */
-    @NonNull
-    public static ResourcesProvider loadFromTable(@NonNull SharedMemory sharedMemory,
-            @Nullable AssetsProvider assetsProvider)
-            throws IOException {
-        return new ResourcesProvider(
-                ApkAssets.loadArscForLoader(sharedMemory.getFileDescriptor()), assetsProvider);
+                ApkAssets.loadTableFromFd(fileDescriptor.getFileDescriptor(),
+                        fileDescriptor.toString(), offset, length, ApkAssets.PROPERTY_LOADER,
+                        assetsProvider));
     }
 
     /**
@@ -166,18 +206,28 @@
         }
 
         String splitPath = appInfo.getSplitCodePaths()[splitIndex];
-        return new ResourcesProvider(ApkAssets.loadApkForLoader(splitPath), null);
+        return new ResourcesProvider(ApkAssets.loadFromPath(splitPath, ApkAssets.PROPERTY_LOADER,
+                null /* assetsProvider */));
     }
 
-    private ResourcesProvider(@NonNull ApkAssets apkAssets,
-            @Nullable AssetsProvider assetsProvider) {
+    /**
+     * Creates a ResourcesProvider from a directory path.
+     *
+     * File-based resources will be resolved within the directory as if the directory is an APK.
+     *
+     * @param path the path of the directory to treat as an APK
+     * @param assetsProvider the assets provider that overrides the loading of file-based resources
+     */
+    @NonNull
+    public static ResourcesProvider loadFromDirectory(@NonNull String path,
+            @Nullable AssetsProvider assetsProvider) throws IOException {
+        return new ResourcesProvider(ApkAssets.loadFromDir(path, ApkAssets.PROPERTY_LOADER,
+                assetsProvider));
+    }
+
+
+    private ResourcesProvider(@NonNull ApkAssets apkAssets) {
         this.mApkAssets = apkAssets;
-        this.mAssetsProvider = assetsProvider;
-    }
-
-    @Nullable
-    public AssetsProvider getAssetsProvider() {
-        return mAssetsProvider;
     }
 
     /** @hide */
diff --git a/core/java/android/hardware/HardwareBuffer.java b/core/java/android/hardware/HardwareBuffer.java
index e97a5b9..dd34930 100644
--- a/core/java/android/hardware/HardwareBuffer.java
+++ b/core/java/android/hardware/HardwareBuffer.java
@@ -46,7 +46,7 @@
 public final class HardwareBuffer implements Parcelable, AutoCloseable {
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef(prefix = { "RGB", "BLOB", "D_", "DS_", "S_" }, value = {
+    @IntDef(prefix = { "RGB", "BLOB", "YCBCR_", "D_", "DS_", "S_" }, value = {
             RGBA_8888,
             RGBA_FP16,
             RGBA_1010102,
@@ -54,6 +54,7 @@
             RGB_888,
             RGB_565,
             BLOB,
+            YCBCR_420_888,
             D_16,
             D_24,
             DS_24UI8,
@@ -79,6 +80,8 @@
     public static final int RGBA_1010102 = 0x2b;
     /** Format: opaque format used for raw data transfer; must have a height of 1 */
     public static final int BLOB         = 0x21;
+    /** Format: Planar YCbCr 420; must have an even width and height */
+    public static final int YCBCR_420_888 = 0x23;
     /** Format: 16 bits depth */
     public static final int D_16         = 0x30;
     /** Format: 24 bits depth */
@@ -396,6 +399,7 @@
             case RGB_565:
             case RGB_888:
             case BLOB:
+            case YCBCR_420_888:
             case D_16:
             case D_24:
             case DS_24UI8:
diff --git a/core/java/android/hardware/biometrics/BiometricConstants.java b/core/java/android/hardware/biometrics/BiometricConstants.java
index add67aa..8e3f809 100644
--- a/core/java/android/hardware/biometrics/BiometricConstants.java
+++ b/core/java/android/hardware/biometrics/BiometricConstants.java
@@ -204,4 +204,18 @@
      * @hide
      */
     int BIOMETRIC_ACQUIRED_VENDOR_BASE = 1000;
+
+    //
+    // Internal messages.
+    //
+
+    /**
+     * See {@link BiometricPrompt.Builder#setReceiveSystemEvents(boolean)}. This message is sent
+     * immediately when the user cancels authentication for example by tapping the back button or
+     * tapping the scrim. This is before {@link #BIOMETRIC_ERROR_USER_CANCELED}, which is sent when
+     * dismissal animation completes.
+     * @hide
+     */
+    int BIOMETRIC_SYSTEM_EVENT_EARLY_USER_CANCEL = 1;
+
 }
diff --git a/core/java/android/hardware/biometrics/BiometricNativeHandleUtils.java b/core/java/android/hardware/biometrics/BiometricNativeHandleUtils.java
deleted file mode 100644
index 5544eae..0000000
--- a/core/java/android/hardware/biometrics/BiometricNativeHandleUtils.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.hardware.biometrics;
-
-import android.os.NativeHandle;
-import android.os.ParcelFileDescriptor;
-
-import java.io.IOException;
-
-/**
- * A class that contains utilities for IBiometricNativeHandle.
- *
- * @hide
- */
-public final class BiometricNativeHandleUtils {
-
-    private BiometricNativeHandleUtils() {
-    }
-
-    /**
-     * Converts a {@link NativeHandle} into an {@link IBiometricNativeHandle} by duplicating the
-     * underlying file descriptors.
-     *
-     * Both the original and new handle must be closed after use.
-     *
-     * @param h {@link NativeHandle}. Usually used to identify a WindowManager window. Can be null.
-     * @return A {@link IBiometricNativeHandle} representation of {@code h}. Will be null if
-     * {@code h} or its raw file descriptors are null.
-     */
-    public static IBiometricNativeHandle dup(NativeHandle h) {
-        IBiometricNativeHandle handle = null;
-        if (h != null && h.getFileDescriptors() != null && h.getInts() != null) {
-            handle = new IBiometricNativeHandle();
-            handle.ints = h.getInts().clone();
-            handle.fds = new ParcelFileDescriptor[h.getFileDescriptors().length];
-            for (int i = 0; i < h.getFileDescriptors().length; ++i) {
-                try {
-                    handle.fds[i] = ParcelFileDescriptor.dup(h.getFileDescriptors()[i]);
-                } catch (IOException e) {
-                    return null;
-                }
-            }
-        }
-        return handle;
-    }
-
-    /**
-     * Closes the handle's file descriptors.
-     *
-     * @param h {@link IBiometricNativeHandle} handle.
-     */
-    public static void close(IBiometricNativeHandle h) {
-        if (h != null) {
-            for (ParcelFileDescriptor fd : h.fds) {
-                if (fd != null) {
-                    try {
-                        fd.close();
-                    } catch (IOException e) {
-                        // do nothing.
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/core/java/android/hardware/biometrics/BiometricPrompt.java b/core/java/android/hardware/biometrics/BiometricPrompt.java
index a3aa258..5af7cef 100644
--- a/core/java/android/hardware/biometrics/BiometricPrompt.java
+++ b/core/java/android/hardware/biometrics/BiometricPrompt.java
@@ -63,6 +63,7 @@
     /**
      * @hide
      */
+    @RequiresPermission(USE_BIOMETRIC_INTERNAL)
     public static final String KEY_USE_DEFAULT_TITLE = "use_default_title";
     /**
      * @hide
@@ -75,14 +76,17 @@
     /**
      * @hide
      */
+    @RequiresPermission(USE_BIOMETRIC_INTERNAL)
     public static final String KEY_DEVICE_CREDENTIAL_TITLE = "device_credential_title";
     /**
      * @hide
      */
+    @RequiresPermission(USE_BIOMETRIC_INTERNAL)
     public static final String KEY_DEVICE_CREDENTIAL_SUBTITLE = "device_credential_subtitle";
     /**
      * @hide
      */
+    @RequiresPermission(USE_BIOMETRIC_INTERNAL)
     public static final String KEY_DEVICE_CREDENTIAL_DESCRIPTION = "device_credential_description";
     /**
      * @hide
@@ -106,7 +110,15 @@
      * If this is set, check the Device Policy Manager for allowed biometrics.
      * @hide
      */
+    @RequiresPermission(USE_BIOMETRIC_INTERNAL)
     public static final String EXTRA_DISALLOW_BIOMETRICS_IF_POLICY_EXISTS = "check_dpm";
+    /**
+     * Request to receive system events, such as back gesture/button. See
+     * {@link AuthenticationCallback#onSystemEvent(int)}
+     * @hide
+     */
+    @RequiresPermission(USE_BIOMETRIC_INTERNAL)
+    public static final String KEY_RECEIVE_SYSTEM_EVENTS = "receive_system_events";
 
     /**
      * Error/help message will show for this amount of time.
@@ -384,6 +396,18 @@
         }
 
         /**
+         * If set, receive internal events via {@link AuthenticationCallback#onSystemEvent(int)}
+         * @param set
+         * @return This builder.
+         * @hide
+         */
+        @NonNull
+        public Builder setReceiveSystemEvents(boolean set) {
+            mBundle.putBoolean(KEY_RECEIVE_SYSTEM_EVENTS, set);
+            return this;
+        }
+
+        /**
          * Creates a {@link BiometricPrompt}.
          *
          * @return An instance of {@link BiometricPrompt}.
@@ -493,6 +517,13 @@
                 });
             }
         }
+
+        @Override
+        public void onSystemEvent(int event) throws RemoteException {
+            mExecutor.execute(() -> {
+                mAuthenticationCallback.onSystemEvent(event);
+            });
+        }
     };
 
     private BiometricPrompt(Context context, Bundle bundle,
@@ -732,6 +763,12 @@
          */
         @Override
         public void onAuthenticationAcquired(int acquireInfo) {}
+
+        /**
+         * Receiver for internal system events. See {@link Builder#setReceiveSystemEvents(boolean)}
+         * @hide
+         */
+        public void onSystemEvent(int event) {}
     }
 
     /**
diff --git a/core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl b/core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl
index 1d43aa6..b0cddfd 100644
--- a/core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl
+++ b/core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl
@@ -30,4 +30,6 @@
     void onAcquired(int acquiredInfo, String message);
     // Notifies that the SystemUI dialog has been dismissed.
     void onDialogDismissed(int reason);
+    // Notifies the client that an internal event, e.g. back button has occurred.
+    void onSystemEvent(int event);
 }
diff --git a/core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl b/core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl
index 8bcaf82..e57abd5 100644
--- a/core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl
+++ b/core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl
@@ -26,7 +26,9 @@
 oneway interface IBiometricServiceReceiverInternal {
     // Notify BiometricService that authentication was successful. If user confirmation is required,
     // the auth token must be submitted into KeyStore.
-    void onAuthenticationSucceeded(boolean requireConfirmation, in byte[] token);
+    // TODO(b/151967372): Strength should be changed to authenticatorId
+    void onAuthenticationSucceeded(boolean requireConfirmation, in byte[] token,
+            boolean isStrongBiometric);
     // Notify BiometricService authentication was rejected.
     void onAuthenticationFailed();
     // Notify BiometricService than an error has occured. Forward to the correct receiver depending
@@ -40,4 +42,6 @@
     void onTryAgainPressed();
     // Notifies that the user has pressed the "use password" button on SystemUI
     void onDeviceCredentialPressed();
+    // Notifies the client that an internal event, e.g. back button has occurred.
+    void onSystemEvent(int event);
 }
diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java
index 7e72b73d..eb6901f 100644
--- a/core/java/android/hardware/camera2/CameraCharacteristics.java
+++ b/core/java/android/hardware/camera2/CameraCharacteristics.java
@@ -1125,42 +1125,43 @@
             new Key<android.util.Range<Integer>>("android.control.postRawSensitivityBoostRange", new TypeReference<android.util.Range<Integer>>() {{ }});
 
     /**
-     * <p>The list of bokeh modes for {@link CaptureRequest#CONTROL_BOKEH_MODE android.control.bokehMode} that are supported by this camera
-     * device, and each bokeh mode's maximum streaming (non-stall) size with bokeh effect.</p>
-     * <p>For OFF mode, the camera behaves normally with no bokeh effect.</p>
-     * <p>For STILL_CAPTURE mode, the maximum streaming dimension specifies the limit under which
-     * bokeh is effective when capture intent is PREVIEW. Note that when capture intent is
-     * PREVIEW, the bokeh effect may not be as high quality compared to STILL_CAPTURE intent
-     * in order to maintain reasonable frame rate. The maximum streaming dimension must be one
-     * of the YUV_420_888 or PRIVATE resolutions in availableStreamConfigurations, or (0, 0)
-     * if preview bokeh is not supported. If the application configures a stream larger than
-     * the maximum streaming dimension, bokeh effect may not be applied for this stream for
-     * PREVIEW intent.</p>
-     * <p>For CONTINUOUS mode, the maximum streaming dimension specifies the limit under which
-     * bokeh is effective. This dimension must be one of the YUV_420_888 or PRIVATE resolutions
-     * in availableStreamConfigurations, and if the sensor maximum resolution is larger than or
-     * equal to 1080p, the maximum streaming dimension must be at least 1080p. If the
-     * application configures a stream with larger dimension, the stream may not have bokeh
-     * effect applied.</p>
+     * <p>The list of extended scene modes for {@link CaptureRequest#CONTROL_EXTENDED_SCENE_MODE android.control.extendedSceneMode} that are supported
+     * by this camera device, and each extended scene mode's maximum streaming (non-stall) size
+     * with  effect.</p>
+     * <p>For DISABLED mode, the camera behaves normally with no extended scene mode enabled.</p>
+     * <p>For BOKEH_STILL_CAPTURE mode, the maximum streaming dimension specifies the limit
+     * under which bokeh is effective when capture intent is PREVIEW. Note that when capture
+     * intent is PREVIEW, the bokeh effect may not be as high in quality compared to
+     * STILL_CAPTURE intent in order to maintain reasonable frame rate. The maximum streaming
+     * dimension must be one of the YUV_420_888 or PRIVATE resolutions in
+     * availableStreamConfigurations, or (0, 0) if preview bokeh is not supported. If the
+     * application configures a stream larger than the maximum streaming dimension, bokeh
+     * effect may not be applied for this stream for PREVIEW intent.</p>
+     * <p>For BOKEH_CONTINUOUS mode, the maximum streaming dimension specifies the limit under
+     * which bokeh is effective. This dimension must be one of the YUV_420_888 or PRIVATE
+     * resolutions in availableStreamConfigurations, and if the sensor maximum resolution is
+     * larger than or equal to 1080p, the maximum streaming dimension must be at least 1080p.
+     * If the application configures a stream with larger dimension, the stream may not have
+     * bokeh effect applied.</p>
      * <p><b>Units</b>: (mode, width, height)</p>
      * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
      * <p><b>Limited capability</b> -
      * Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the
      * {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} key</p>
      *
-     * @see CaptureRequest#CONTROL_BOKEH_MODE
+     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
      * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
      * @hide
      */
-    public static final Key<int[]> CONTROL_AVAILABLE_BOKEH_MAX_SIZES =
-            new Key<int[]>("android.control.availableBokehMaxSizes", int[].class);
+    public static final Key<int[]> CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES =
+            new Key<int[]>("android.control.availableExtendedSceneModeMaxSizes", int[].class);
 
     /**
-     * <p>The ranges of supported zoom ratio for non-OFF {@link CaptureRequest#CONTROL_BOKEH_MODE android.control.bokehMode}.</p>
-     * <p>When bokeh mode is enabled, the camera device may have limited range of zoom ratios
-     * compared to when bokeh mode is disabled. This tag lists the zoom ratio ranges for all
-     * supported non-OFF bokeh modes, in the same order as in
-     * {@link CameraCharacteristics#CONTROL_AVAILABLE_BOKEH_CAPABILITIES android.control.availableBokehCapabilities}.</p>
+     * <p>The ranges of supported zoom ratio for non-DISABLED {@link CaptureRequest#CONTROL_EXTENDED_SCENE_MODE android.control.extendedSceneMode}.</p>
+     * <p>When extended scene mode is set, the camera device may have limited range of zoom ratios
+     * compared to when extended scene mode is DISABLED. This tag lists the zoom ratio ranges
+     * for all supported non-DISABLED extended scene modes, in the same order as in
+     * android.control.availableExtended.</p>
      * <p>Range [1.0, 1.0] means that no zoom (optical or digital) is supported.</p>
      * <p><b>Units</b>: (minZoom, maxZoom)</p>
      * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
@@ -1168,53 +1169,52 @@
      * Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the
      * {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} key</p>
      *
-     * @see CameraCharacteristics#CONTROL_AVAILABLE_BOKEH_CAPABILITIES
-     * @see CaptureRequest#CONTROL_BOKEH_MODE
+     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
      * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
      * @hide
      */
-    public static final Key<float[]> CONTROL_AVAILABLE_BOKEH_ZOOM_RATIO_RANGES =
-            new Key<float[]>("android.control.availableBokehZoomRatioRanges", float[].class);
+    public static final Key<float[]> CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES =
+            new Key<float[]>("android.control.availableExtendedSceneModeZoomRatioRanges", float[].class);
 
     /**
-     * <p>The list of bokeh modes for {@link CaptureRequest#CONTROL_BOKEH_MODE android.control.bokehMode} that are supported by
-     * this camera device, and each bokeh mode's capabilities such as maximum streaming size
-     * with bokeh effect, and supported zoom ratio ranges.</p>
-     * <p>For OFF mode, the camera behaves normally with no bokeh effect.</p>
-     * <p>For STILL_CAPTURE mode, the maximum streaming dimension specifies the limit under which
-     * bokeh is effective when capture intent is PREVIEW. Note that when capture intent is
-     * PREVIEW, the bokeh effect may not be as high quality compared to STILL_CAPTURE intent
-     * in order to maintain reasonable frame rate. The maximum streaming dimension must be one
-     * of the YUV_420_888 or PRIVATE resolutions in availableStreamConfigurations, or (0, 0)
-     * if preview bokeh is not supported. If the application configures a stream larger than
-     * the maximum streaming dimension, bokeh effect may not be applied for this stream for
-     * PREVIEW intent.</p>
-     * <p>For CONTINUOUS mode, the maximum streaming dimension specifies the limit under which
-     * bokeh is effective. This dimension must be one of the YUV_420_888 or PRIVATE resolutions
-     * in availableStreamConfigurations, and if the sensor maximum resolution is larger than or
-     * equal to 1080p, the maximum streaming dimension must be at least 1080p. If the
-     * application configures a stream with larger dimension, the stream may not have bokeh
-     * effect applied.</p>
-     * <p>When bokeh mode is enabled, the camera device may have limited range of zoom ratios
-     * compared to when bokeh mode is disabled. availableBokehCapabilities lists the zoom
-     * ranges for all supported bokeh modes. A range of (1.0, 1.0) means that no zoom
+     * <p>The list of extended scene modes for {@link CaptureRequest#CONTROL_EXTENDED_SCENE_MODE android.control.extendedSceneMode} that
+     * are supported by this camera device, and each extended scene mode's capabilities such
+     * as maximum streaming size, and supported zoom ratio ranges.</p>
+     * <p>For DISABLED mode, the camera behaves normally with no extended scene mdoe enabled.</p>
+     * <p>For BOKEH_STILL_CAPTURE mode, the maximum streaming dimension specifies the limit
+     * under which bokeh is effective when capture intent is PREVIEW. Note that when capture
+     * intent is PREVIEW, the bokeh effect may not be as high quality compared to STILL_CAPTURE
+     * intent in order to maintain reasonable frame rate. The maximum streaming dimension must
+     * be one of the YUV_420_888 or PRIVATE resolutions in availableStreamConfigurations, or
+     * (0, 0) if preview bokeh is not supported. If the application configures a stream
+     * larger than the maximum streaming dimension, bokeh effect may not be applied for this
+     * stream for PREVIEW intent.</p>
+     * <p>For BOKEH_CONTINUOUS mode, the maximum streaming dimension specifies the limit under
+     * which bokeh is effective. This dimension must be one of the YUV_420_888 or PRIVATE
+     * resolutions in availableStreamConfigurations, and if the sensor maximum resolution is
+     * larger than or equal to 1080p, the maximum streaming dimension must be at least 1080p.
+     * If the application configures a stream with larger dimension, the stream may not have
+     * bokeh effect applied.</p>
+     * <p>When extended scene mode is set, the camera device may have limited range of zoom ratios
+     * compared to when the mode is DISABLED. availableExtendedSceneModeCapabilities lists the
+     * zoom ranges for all supported extended modes. A range of (1.0, 1.0) means that no zoom
      * (optical or digital) is supported.</p>
      * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
      *
-     * @see CaptureRequest#CONTROL_BOKEH_MODE
+     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
      */
     @PublicKey
     @NonNull
     @SyntheticKey
-    public static final Key<android.hardware.camera2.params.Capability[]> CONTROL_AVAILABLE_BOKEH_CAPABILITIES =
-            new Key<android.hardware.camera2.params.Capability[]>("android.control.availableBokehCapabilities", android.hardware.camera2.params.Capability[].class);
+    public static final Key<android.hardware.camera2.params.Capability[]> CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_CAPABILITIES =
+            new Key<android.hardware.camera2.params.Capability[]>("android.control.availableExtendedSceneModeCapabilities", android.hardware.camera2.params.Capability[].class);
 
     /**
      * <p>Minimum and maximum zoom ratios supported by this camera device.</p>
      * <p>If the camera device supports zoom-out from 1x zoom, minZoom will be less than 1.0, and
      * setting {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} to values less than 1.0 increases the camera's field
      * of view.</p>
-     * <p><b>Units</b>: A pair of zoom ratio in floating points: (minZoom, maxZoom)</p>
+     * <p><b>Units</b>: A pair of zoom ratio in floating-points: (minZoom, maxZoom)</p>
      * <p><b>Range of valid values:</b><br></p>
      * <p>maxZoom &gt;= 1.0 &gt;= minZoom</p>
      * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
@@ -2860,36 +2860,20 @@
             new Key<android.hardware.camera2.params.MandatoryStreamCombination[]>("android.scaler.mandatoryStreamCombinations", android.hardware.camera2.params.MandatoryStreamCombination[].class);
 
     /**
-     * <p>List of rotate-and-crop modes for {@link CaptureRequest#SCALER_ROTATE_AND_CROP android.scaler.rotateAndCrop} that are supported by this camera device.</p>
-     * <p>This entry lists the valid modes for {@link CaptureRequest#SCALER_ROTATE_AND_CROP android.scaler.rotateAndCrop} for this camera device.</p>
-     * <p>Starting with API level 30, all devices will list at least <code>ROTATE_AND_CROP_NONE</code>.
-     * Devices with support for rotate-and-crop will additionally list at least
-     * <code>ROTATE_AND_CROP_AUTO</code> and <code>ROTATE_AND_CROP_90</code>.</p>
-     * <p><b>Range of valid values:</b><br>
-     * Any value listed in {@link CaptureRequest#SCALER_ROTATE_AND_CROP android.scaler.rotateAndCrop}</p>
-     * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
-     *
-     * @see CaptureRequest#SCALER_ROTATE_AND_CROP
-     */
-    @PublicKey
-    @NonNull
-    public static final Key<int[]> SCALER_AVAILABLE_ROTATE_AND_CROP_MODES =
-            new Key<int[]>("android.scaler.availableRotateAndCropModes", int[].class);
-    /**
      * <p>An array of mandatory concurrent stream combinations.
      * This is an app-readable conversion of the concurrent mandatory stream combination
      * {@link android.hardware.camera2.CameraDevice#createCaptureSession tables}.</p>
      * <p>The array of
      * {@link android.hardware.camera2.params.MandatoryStreamCombination combinations} is
      * generated according to the documented
-     * {@link android.hardware.camera2.CameraDevice#createCaptureSession guideline} for each device
-     * which has its Id present in the set returned by
-     * {@link android.hardware.camera2.CameraManager#getConcurrentCameraIds}.
+     * {@link android.hardware.camera2.CameraDevice#createCaptureSession guideline} for each
+     * device which has its Id present in the set returned by
+     * {@link android.hardware.camera2.CameraManager#getConcurrentCameraIds }.
      * Clients can use the array as a quick reference to find an appropriate camera stream
      * combination.
-     * The mandatory stream combination array will be {@code null} in case the device is not a part
-     * of at least one set of combinations returned by
-     * {@link android.hardware.camera2.CameraManager#getConcurrentCameraIds}.</p>
+     * The mandatory stream combination array will be {@code null} in case the device is not a
+     * part of at least one set of combinations returned by
+     * {@link android.hardware.camera2.CameraManager#getConcurrentCameraIds }.</p>
      * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
      */
     @PublicKey
@@ -2897,6 +2881,21 @@
     @SyntheticKey
     public static final Key<android.hardware.camera2.params.MandatoryStreamCombination[]> SCALER_MANDATORY_CONCURRENT_STREAM_COMBINATIONS =
             new Key<android.hardware.camera2.params.MandatoryStreamCombination[]>("android.scaler.mandatoryConcurrentStreamCombinations", android.hardware.camera2.params.MandatoryStreamCombination[].class);
+
+    /**
+     * <p>List of rotate-and-crop modes for android.scaler.rotateAndCrop that are supported by this camera device.</p>
+     * <p>This entry lists the valid modes for android.scaler.rotateAndCrop for this camera device.</p>
+     * <p>Starting at some future API level, all devices will list at least <code>ROTATE_AND_CROP_NONE</code>.
+     * Devices with support for rotate-and-crop will additionally list at least
+     * <code>ROTATE_AND_CROP_AUTO</code> and <code>ROTATE_AND_CROP_90</code>.</p>
+     * <p><b>Range of valid values:</b><br>
+     * Any value listed in android.scaler.rotateAndCrop</p>
+     * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
+     * @hide
+     */
+    public static final Key<int[]> SCALER_AVAILABLE_ROTATE_AND_CROP_MODES =
+            new Key<int[]>("android.scaler.availableRotateAndCropModes", int[].class);
+
     /**
      * <p>The area of the image sensor which corresponds to active pixels after any geometric
      * distortion correction has been applied.</p>
diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java
index 45d6fed..91dae66 100644
--- a/core/java/android/hardware/camera2/CameraMetadata.java
+++ b/core/java/android/hardware/camera2/CameraMetadata.java
@@ -2190,6 +2190,7 @@
      * This setting can only be used if scene mode is supported (i.e.
      * {@link CameraCharacteristics#CONTROL_AVAILABLE_SCENE_MODES android.control.availableSceneModes}
      * contain some modes other than DISABLED).</p>
+     * <p>For extended scene modes such as BOKEH, please use USE_EXTENDED_SCENE_MODE instead.</p>
      *
      * @see CameraCharacteristics#CONTROL_AVAILABLE_SCENE_MODES
      * @see CaptureRequest#CONTROL_MODE
@@ -2209,6 +2210,19 @@
      */
     public static final int CONTROL_MODE_OFF_KEEP_STATE = 3;
 
+    /**
+     * <p>Use a specific extended scene mode.</p>
+     * <p>When extended scene mode is on, the camera device may override certain control
+     * parameters, such as targetFpsRange, AE, AWB, and AF modes, to achieve best power and
+     * quality tradeoffs. Only the mandatory stream combinations of LIMITED hardware level
+     * are guaranteed.</p>
+     * <p>This setting can only be used if extended scene mode is supported (i.e.
+     * android.control.availableExtendedSceneModes
+     * contains some modes other than DISABLED).</p>
+     * @see CaptureRequest#CONTROL_MODE
+     */
+    public static final int CONTROL_MODE_USE_EXTENDED_SCENE_MODE = 4;
+
     //
     // Enumeration values for CaptureRequest#CONTROL_SCENE_MODE
     //
@@ -2540,32 +2554,39 @@
     public static final int CONTROL_VIDEO_STABILIZATION_MODE_ON = 1;
 
     //
-    // Enumeration values for CaptureRequest#CONTROL_BOKEH_MODE
+    // Enumeration values for CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
     //
 
     /**
-     * <p>Bokeh mode is disabled.</p>
-     * @see CaptureRequest#CONTROL_BOKEH_MODE
+     * <p>Extended scene mode is disabled.</p>
+     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
      */
-    public static final int CONTROL_BOKEH_MODE_OFF = 0;
+    public static final int CONTROL_EXTENDED_SCENE_MODE_DISABLED = 0;
 
     /**
      * <p>High quality bokeh mode is enabled for all non-raw streams (including YUV,
      * JPEG, and IMPLEMENTATION_DEFINED) when capture intent is STILL_CAPTURE. Due to the
      * extra image processing, this mode may introduce additional stall to non-raw streams.
      * This mode should be used in high quality still capture use case.</p>
-     * @see CaptureRequest#CONTROL_BOKEH_MODE
+     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
      */
-    public static final int CONTROL_BOKEH_MODE_STILL_CAPTURE = 1;
+    public static final int CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE = 1;
 
     /**
      * <p>Bokeh effect must not slow down capture rate relative to sensor raw output,
      * and the effect is applied to all processed streams no larger than the maximum
      * streaming dimension. This mode should be used if performance and power are a
      * priority, such as video recording.</p>
-     * @see CaptureRequest#CONTROL_BOKEH_MODE
+     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
      */
-    public static final int CONTROL_BOKEH_MODE_CONTINUOUS = 2;
+    public static final int CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS = 2;
+
+    /**
+     * <p>Vendor defined extended scene modes. These depend on vendor implementation.</p>
+     * @see CaptureRequest#CONTROL_EXTENDED_SCENE_MODE
+     * @hide
+     */
+    public static final int CONTROL_EXTENDED_SCENE_MODE_VENDOR_START = 0x40;
 
     //
     // Enumeration values for CaptureRequest#EDGE_MODE
@@ -2756,6 +2777,7 @@
     /**
      * <p>No rotate and crop is applied. Processed outputs are in the sensor orientation.</p>
      * @see CaptureRequest#SCALER_ROTATE_AND_CROP
+     * @hide
      */
     public static final int SCALER_ROTATE_AND_CROP_NONE = 0;
 
@@ -2763,6 +2785,7 @@
      * <p>Processed images are rotated by 90 degrees clockwise, and then cropped
      * to the original aspect ratio.</p>
      * @see CaptureRequest#SCALER_ROTATE_AND_CROP
+     * @hide
      */
     public static final int SCALER_ROTATE_AND_CROP_90 = 1;
 
@@ -2770,6 +2793,7 @@
      * <p>Processed images are rotated by 180 degrees.  Since the aspect ratio does not
      * change, no cropping is performed.</p>
      * @see CaptureRequest#SCALER_ROTATE_AND_CROP
+     * @hide
      */
     public static final int SCALER_ROTATE_AND_CROP_180 = 2;
 
@@ -2777,6 +2801,7 @@
      * <p>Processed images are rotated by 270 degrees clockwise, and then cropped
      * to the original aspect ratio.</p>
      * @see CaptureRequest#SCALER_ROTATE_AND_CROP
+     * @hide
      */
     public static final int SCALER_ROTATE_AND_CROP_270 = 3;
 
@@ -2796,6 +2821,7 @@
      * coordinate system to make the operation transparent for applications.</p>
      * <p>No coordinate mapping will be done when the application selects a non-AUTO mode.</p>
      * @see CaptureRequest#SCALER_ROTATE_AND_CROP
+     * @hide
      */
     public static final int SCALER_ROTATE_AND_CROP_AUTO = 4;
 
diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java
index 30fbde2..6905f83 100644
--- a/core/java/android/hardware/camera2/CaptureRequest.java
+++ b/core/java/android/hardware/camera2/CaptureRequest.java
@@ -1911,10 +1911,10 @@
      * capture parameters itself.</p>
      * <p>When set to AUTO, the individual algorithm controls in
      * android.control.* are in effect, such as {@link CaptureRequest#CONTROL_AF_MODE android.control.afMode}.</p>
-     * <p>When set to USE_SCENE_MODE, the individual controls in
+     * <p>When set to USE_SCENE_MODE or USE_EXTENDED_SCENE_MODE, the individual controls in
      * android.control.* are mostly disabled, and the camera device
-     * implements one of the scene mode settings (such as ACTION,
-     * SUNSET, or PARTY) as it wishes. The camera device scene mode
+     * implements one of the scene mode or extended scene mode settings (such as ACTION,
+     * SUNSET, PARTY, or BOKEH) as it wishes. The camera device scene mode
      * 3A settings are provided by {@link android.hardware.camera2.CaptureResult capture results}.</p>
      * <p>When set to OFF_KEEP_STATE, it is similar to OFF mode, the only difference
      * is that this frame will not be used by camera device background 3A statistics
@@ -1927,6 +1927,7 @@
      *   <li>{@link #CONTROL_MODE_AUTO AUTO}</li>
      *   <li>{@link #CONTROL_MODE_USE_SCENE_MODE USE_SCENE_MODE}</li>
      *   <li>{@link #CONTROL_MODE_OFF_KEEP_STATE OFF_KEEP_STATE}</li>
+     *   <li>{@link #CONTROL_MODE_USE_EXTENDED_SCENE_MODE USE_EXTENDED_SCENE_MODE}</li>
      * </ul></p>
      * <p><b>Available values for this device:</b><br>
      * {@link CameraCharacteristics#CONTROL_AVAILABLE_MODES android.control.availableModes}</p>
@@ -1938,6 +1939,7 @@
      * @see #CONTROL_MODE_AUTO
      * @see #CONTROL_MODE_USE_SCENE_MODE
      * @see #CONTROL_MODE_OFF_KEEP_STATE
+     * @see #CONTROL_MODE_USE_EXTENDED_SCENE_MODE
      */
     @PublicKey
     @NonNull
@@ -2127,52 +2129,49 @@
             new Key<Boolean>("android.control.enableZsl", boolean.class);
 
     /**
-     * <p>Whether bokeh mode is enabled for a particular capture request.</p>
+     * <p>Whether extended scene mode is enabled for a particular capture request.</p>
      * <p>With bokeh mode, the camera device may blur out the parts of scene that are not in
      * focus, creating a bokeh (or shallow depth of field) effect for people or objects.</p>
-     * <p>When set to STILL_CAPTURE bokeh mode with STILL_CAPTURE capture intent, due to the extra
+     * <p>When set to BOKEH_STILL_CAPTURE mode with STILL_CAPTURE capture intent, due to the extra
      * processing needed for high quality bokeh effect, the stall may be longer than when
      * capture intent is not STILL_CAPTURE.</p>
-     * <p>When set to STILL_CAPTURE bokeh mode with PREVIEW capture intent,</p>
+     * <p>When set to BOKEH_STILL_CAPTURE mode with PREVIEW capture intent,</p>
      * <ul>
      * <li>If the camera device has BURST_CAPTURE capability, the frame rate requirement of
      * BURST_CAPTURE must still be met.</li>
-     * <li>All streams not larger than the maximum streaming dimension for STILL_CAPTURE mode
-     * (queried via {@link android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_BOKEH_CAPABILITIES })
+     * <li>All streams not larger than the maximum streaming dimension for BOKEH_STILL_CAPTURE mode
+     * (queried via {@link android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_CAPABILITIES })
      * will have preview bokeh effect applied.</li>
      * </ul>
-     * <p>When set to CONTINUOUS mode, configured streams dimension should not exceed this mode's
+     * <p>When set to BOKEH_CONTINUOUS mode, configured streams dimension should not exceed this mode's
      * maximum streaming dimension in order to have bokeh effect applied. Bokeh effect may not
      * be available for streams larger than the maximum streaming dimension.</p>
-     * <p>Switching between different bokeh modes may involve reconfiguration of the camera
+     * <p>Switching between different extended scene modes may involve reconfiguration of the camera
      * pipeline, resulting in long latency. The application should check this key against the
      * available session keys queried via
      * {@link android.hardware.camera2.CameraCharacteristics#getAvailableSessionKeys }.</p>
-     * <p>When bokeh mode is on, the camera device may override certain control parameters, such as
-     * reduce frame rate or use face priority scene mode, to achieve best power and quality
-     * tradeoffs. When turned on, AE, AWB, and AF run in auto modes, and only the mandatory
-     * stream combinations of LIMITED hardware level are guaranteed.</p>
      * <p>For a logical multi-camera, bokeh may be implemented by stereo vision from sub-cameras
      * with different field of view. As a result, when bokeh mode is enabled, the camera device
-     * may override {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion}, and the field of view will be smaller than when
-     * bokeh mode is off.</p>
+     * may override {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion} or {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio}, and the field of
+     * view may be smaller than when bokeh mode is off.</p>
      * <p><b>Possible values:</b>
      * <ul>
-     *   <li>{@link #CONTROL_BOKEH_MODE_OFF OFF}</li>
-     *   <li>{@link #CONTROL_BOKEH_MODE_STILL_CAPTURE STILL_CAPTURE}</li>
-     *   <li>{@link #CONTROL_BOKEH_MODE_CONTINUOUS CONTINUOUS}</li>
+     *   <li>{@link #CONTROL_EXTENDED_SCENE_MODE_DISABLED DISABLED}</li>
+     *   <li>{@link #CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE BOKEH_STILL_CAPTURE}</li>
+     *   <li>{@link #CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS BOKEH_CONTINUOUS}</li>
      * </ul></p>
      * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
      *
+     * @see CaptureRequest#CONTROL_ZOOM_RATIO
      * @see CaptureRequest#SCALER_CROP_REGION
-     * @see #CONTROL_BOKEH_MODE_OFF
-     * @see #CONTROL_BOKEH_MODE_STILL_CAPTURE
-     * @see #CONTROL_BOKEH_MODE_CONTINUOUS
+     * @see #CONTROL_EXTENDED_SCENE_MODE_DISABLED
+     * @see #CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
+     * @see #CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
      */
     @PublicKey
     @NonNull
-    public static final Key<Integer> CONTROL_BOKEH_MODE =
-            new Key<Integer>("android.control.bokehMode", int.class);
+    public static final Key<Integer> CONTROL_EXTENDED_SCENE_MODE =
+            new Key<Integer>("android.control.extendedSceneMode", int.class);
 
     /**
      * <p>The desired zoom ratio</p>
@@ -2181,27 +2180,66 @@
      * {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion} can still be used to specify the horizontal or vertical
      * crop to achieve aspect ratios different than the native camera sensor.</p>
      * <p>By using this control, the application gains a simpler way to control zoom, which can
-     * be a combination of optical and digital zoom. More specifically, for a logical
-     * multi-camera with more than one focal length, using a floating point zoom ratio offers
-     * more zoom precision when a telephoto lens is used, as well as allowing zoom ratio of
-     * less than 1.0 to zoom out to a wide field of view.</p>
-     * <p>Note that the coordinate system of cropRegion, AE/AWB/AF regions, and faces now changes
-     * to the effective after-zoom field-of-view represented by rectangle of (0, 0,
-     * activeArrayWidth, activeArrayHeight).</p>
-     * <p>For example, if {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize} is 4032*3024, and the preview stream
-     * is configured to the same 4:3 aspect ratio, the application can achieve 2.0x zoom in
-     * one of two ways:</p>
+     * be a combination of optical and digital zoom. For example, a multi-camera system may
+     * contain more than one lens with different focal lengths, and the user can use optical
+     * zoom by switching between lenses. Using zoomRatio has benefits in the scenarios below:
+     * <em> Zooming in from a wide-angle lens to a telephoto lens: A floating-point ratio provides
+     *   better precision compared to an integer value of {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion}.
+     * </em> Zooming out from a wide lens to an ultrawide lens: zoomRatio supports zoom-out whereas
+     *   {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion} doesn't.</p>
+     * <p>To illustrate, here are several scenarios of different zoom ratios, crop regions,
+     * and output streams, for a hypothetical camera device with an active array of size
+     * <code>(2000,1500)</code>.</p>
      * <ul>
-     * <li>zoomRatio = 2.0, scaler.cropRegion = (0, 0, 4032, 3024)</li>
-     * <li>zoomRatio = 1.0 (default), scaler.cropRegion = (1008, 756, 3024, 2268)</li>
+     * <li>Camera Configuration:<ul>
+     * <li>Active array size: <code>2000x1500</code> (3 MP, 4:3 aspect ratio)</li>
+     * <li>Output stream #1: <code>640x480</code> (VGA, 4:3 aspect ratio)</li>
+     * <li>Output stream #2: <code>1280x720</code> (720p, 16:9 aspect ratio)</li>
      * </ul>
-     * <p>If the application intends to set aeRegions to be top-left quarter of the preview
-     * field-of-view, the {@link CaptureRequest#CONTROL_AE_REGIONS android.control.aeRegions} should be set to (0, 0, 2016, 1512) with
+     * </li>
+     * <li>Case #1: 4:3 crop region with 2.0x zoom ratio<ul>
+     * <li>Zoomed field of view: 1/4 of original field of view</li>
+     * <li>Crop region: <code>Rect(0, 0, 2000, 1500) // (left, top, right, bottom)</code> (post zoom)</li>
+     * </ul>
+     * </li>
+     * <li><img alt="4:3 aspect ratio crop diagram" src="/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-2-crop-43.png" /><ul>
+     * <li><code>640x480</code> stream source area: <code>(0, 0, 2000, 1500)</code> (equal to crop region)</li>
+     * <li><code>1280x720</code> stream source area: <code>(0, 187, 2000, 1312)</code> (letterboxed)</li>
+     * </ul>
+     * </li>
+     * <li>Case #2: 16:9 crop region with 2.0x zoom.<ul>
+     * <li>Zoomed field of view: 1/4 of original field of view</li>
+     * <li>Crop region: <code>Rect(0, 187, 2000, 1312)</code></li>
+     * <li><img alt="16:9 aspect ratio crop diagram" src="/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-2-crop-169.png" /></li>
+     * <li><code>640x480</code> stream source area: <code>(250, 187, 1750, 1312)</code> (pillarboxed)</li>
+     * <li><code>1280x720</code> stream source area: <code>(0, 187, 2000, 1312)</code> (equal to crop region)</li>
+     * </ul>
+     * </li>
+     * <li>Case #3: 1:1 crop region with 0.5x zoom out to ultrawide lens.<ul>
+     * <li>Zoomed field of view: 4x of original field of view (switched from wide lens to ultrawide lens)</li>
+     * <li>Crop region: <code>Rect(250, 0, 1750, 1500)</code></li>
+     * <li><img alt="1:1 aspect ratio crop diagram" src="/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-0.5-crop-11.png" /></li>
+     * <li><code>640x480</code> stream source area: <code>(250, 187, 1750, 1312)</code> (letterboxed)</li>
+     * <li><code>1280x720</code> stream source area: <code>(250, 328, 1750, 1172)</code> (letterboxed)</li>
+     * </ul>
+     * </li>
+     * </ul>
+     * <p>As seen from the graphs above, the coordinate system of cropRegion now changes to the
+     * effective after-zoom field-of-view, and is represented by the rectangle of (0, 0,
+     * activeArrayWith, activeArrayHeight). The same applies to AE/AWB/AF regions, and faces.
+     * This coordinate system change isn't applicable to RAW capture and its related
+     * metadata such as intrinsicCalibration and lensShadingMap.</p>
+     * <p>Using the same hypothetical example above, and assuming output stream #1 (640x480) is
+     * the viewfinder stream, the application can achieve 2.0x zoom in one of two ways:</p>
+     * <ul>
+     * <li>zoomRatio = 2.0, scaler.cropRegion = (0, 0, 2000, 1500)</li>
+     * <li>zoomRatio = 1.0 (default), scaler.cropRegion = (500, 375, 1500, 1125)</li>
+     * </ul>
+     * <p>If the application intends to set aeRegions to be top-left quarter of the viewfinder
+     * field-of-view, the {@link CaptureRequest#CONTROL_AE_REGIONS android.control.aeRegions} should be set to (0, 0, 1000, 750) with
      * zoomRatio set to 2.0. Alternatively, the application can set aeRegions to the equivalent
-     * region of (1008, 756, 2016, 1512) for zoomRatio of 1.0. If the application doesn't
+     * region of (500, 375, 1000, 750) for zoomRatio of 1.0. If the application doesn't
      * explicitly set {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio}, its value defaults to 1.0.</p>
-     * <p>This coordinate system change isn't applicable to RAW capture and its related metadata
-     * such as intrinsicCalibration and lensShadingMap.</p>
      * <p>One limitation of controlling zoom using zoomRatio is that the {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion}
      * must only be used for letterboxing or pillarboxing of the sensor active array, and no
      * FREEFORM cropping can be used with {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} other than 1.0.</p>
@@ -2217,7 +2255,6 @@
      * @see CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
      * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
      * @see CaptureRequest#SCALER_CROP_REGION
-     * @see CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
      */
     @PublicKey
     @NonNull
@@ -2575,12 +2612,15 @@
      * frames before the lens can change to the requested focal length.
      * While the focal length is still changing, {@link CaptureResult#LENS_STATE android.lens.state} will
      * be set to MOVING.</p>
-     * <p>Optical zoom will not be supported on most devices.</p>
+     * <p>Optical zoom via this control will not be supported on most devices. Starting from API
+     * level 30, the camera device may combine optical and digital zoom through the
+     * {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} control.</p>
      * <p><b>Units</b>: Millimeters</p>
      * <p><b>Range of valid values:</b><br>
      * {@link CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS android.lens.info.availableFocalLengths}</p>
      * <p>This key is available on all devices.</p>
      *
+     * @see CaptureRequest#CONTROL_ZOOM_RATIO
      * @see CaptureRequest#LENS_APERTURE
      * @see CaptureRequest#LENS_FOCUS_DISTANCE
      * @see CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
@@ -2916,14 +2956,13 @@
      *   <li>{@link #SCALER_ROTATE_AND_CROP_AUTO AUTO}</li>
      * </ul></p>
      * <p><b>Available values for this device:</b><br>
-     * {@link CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES android.scaler.availableRotateAndCropModes}</p>
+     * android.scaler.availableRotateAndCropModes</p>
      * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
      *
      * @see CaptureRequest#CONTROL_AE_REGIONS
      * @see CaptureRequest#CONTROL_AF_REGIONS
      * @see CaptureRequest#CONTROL_AWB_REGIONS
      * @see CaptureRequest#CONTROL_ZOOM_RATIO
-     * @see CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
      * @see CaptureRequest#SCALER_CROP_REGION
      * @see CaptureResult#STATISTICS_FACES
      * @see #SCALER_ROTATE_AND_CROP_NONE
@@ -2931,9 +2970,8 @@
      * @see #SCALER_ROTATE_AND_CROP_180
      * @see #SCALER_ROTATE_AND_CROP_270
      * @see #SCALER_ROTATE_AND_CROP_AUTO
+     * @hide
      */
-    @PublicKey
-    @NonNull
     public static final Key<Integer> SCALER_ROTATE_AND_CROP =
             new Key<Integer>("android.scaler.rotateAndCrop", int.class);
 
diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java
index 641a3e1..be03502 100644
--- a/core/java/android/hardware/camera2/CaptureResult.java
+++ b/core/java/android/hardware/camera2/CaptureResult.java
@@ -2118,10 +2118,10 @@
      * capture parameters itself.</p>
      * <p>When set to AUTO, the individual algorithm controls in
      * android.control.* are in effect, such as {@link CaptureRequest#CONTROL_AF_MODE android.control.afMode}.</p>
-     * <p>When set to USE_SCENE_MODE, the individual controls in
+     * <p>When set to USE_SCENE_MODE or USE_EXTENDED_SCENE_MODE, the individual controls in
      * android.control.* are mostly disabled, and the camera device
-     * implements one of the scene mode settings (such as ACTION,
-     * SUNSET, or PARTY) as it wishes. The camera device scene mode
+     * implements one of the scene mode or extended scene mode settings (such as ACTION,
+     * SUNSET, PARTY, or BOKEH) as it wishes. The camera device scene mode
      * 3A settings are provided by {@link android.hardware.camera2.CaptureResult capture results}.</p>
      * <p>When set to OFF_KEEP_STATE, it is similar to OFF mode, the only difference
      * is that this frame will not be used by camera device background 3A statistics
@@ -2134,6 +2134,7 @@
      *   <li>{@link #CONTROL_MODE_AUTO AUTO}</li>
      *   <li>{@link #CONTROL_MODE_USE_SCENE_MODE USE_SCENE_MODE}</li>
      *   <li>{@link #CONTROL_MODE_OFF_KEEP_STATE OFF_KEEP_STATE}</li>
+     *   <li>{@link #CONTROL_MODE_USE_EXTENDED_SCENE_MODE USE_EXTENDED_SCENE_MODE}</li>
      * </ul></p>
      * <p><b>Available values for this device:</b><br>
      * {@link CameraCharacteristics#CONTROL_AVAILABLE_MODES android.control.availableModes}</p>
@@ -2145,6 +2146,7 @@
      * @see #CONTROL_MODE_AUTO
      * @see #CONTROL_MODE_USE_SCENE_MODE
      * @see #CONTROL_MODE_OFF_KEEP_STATE
+     * @see #CONTROL_MODE_USE_EXTENDED_SCENE_MODE
      */
     @PublicKey
     @NonNull
@@ -2357,52 +2359,49 @@
             new Key<Integer>("android.control.afSceneChange", int.class);
 
     /**
-     * <p>Whether bokeh mode is enabled for a particular capture request.</p>
+     * <p>Whether extended scene mode is enabled for a particular capture request.</p>
      * <p>With bokeh mode, the camera device may blur out the parts of scene that are not in
      * focus, creating a bokeh (or shallow depth of field) effect for people or objects.</p>
-     * <p>When set to STILL_CAPTURE bokeh mode with STILL_CAPTURE capture intent, due to the extra
+     * <p>When set to BOKEH_STILL_CAPTURE mode with STILL_CAPTURE capture intent, due to the extra
      * processing needed for high quality bokeh effect, the stall may be longer than when
      * capture intent is not STILL_CAPTURE.</p>
-     * <p>When set to STILL_CAPTURE bokeh mode with PREVIEW capture intent,</p>
+     * <p>When set to BOKEH_STILL_CAPTURE mode with PREVIEW capture intent,</p>
      * <ul>
      * <li>If the camera device has BURST_CAPTURE capability, the frame rate requirement of
      * BURST_CAPTURE must still be met.</li>
-     * <li>All streams not larger than the maximum streaming dimension for STILL_CAPTURE mode
-     * (queried via {@link android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_BOKEH_CAPABILITIES })
+     * <li>All streams not larger than the maximum streaming dimension for BOKEH_STILL_CAPTURE mode
+     * (queried via {@link android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_CAPABILITIES })
      * will have preview bokeh effect applied.</li>
      * </ul>
-     * <p>When set to CONTINUOUS mode, configured streams dimension should not exceed this mode's
+     * <p>When set to BOKEH_CONTINUOUS mode, configured streams dimension should not exceed this mode's
      * maximum streaming dimension in order to have bokeh effect applied. Bokeh effect may not
      * be available for streams larger than the maximum streaming dimension.</p>
-     * <p>Switching between different bokeh modes may involve reconfiguration of the camera
+     * <p>Switching between different extended scene modes may involve reconfiguration of the camera
      * pipeline, resulting in long latency. The application should check this key against the
      * available session keys queried via
      * {@link android.hardware.camera2.CameraCharacteristics#getAvailableSessionKeys }.</p>
-     * <p>When bokeh mode is on, the camera device may override certain control parameters, such as
-     * reduce frame rate or use face priority scene mode, to achieve best power and quality
-     * tradeoffs. When turned on, AE, AWB, and AF run in auto modes, and only the mandatory
-     * stream combinations of LIMITED hardware level are guaranteed.</p>
      * <p>For a logical multi-camera, bokeh may be implemented by stereo vision from sub-cameras
      * with different field of view. As a result, when bokeh mode is enabled, the camera device
-     * may override {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion}, and the field of view will be smaller than when
-     * bokeh mode is off.</p>
+     * may override {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion} or {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio}, and the field of
+     * view may be smaller than when bokeh mode is off.</p>
      * <p><b>Possible values:</b>
      * <ul>
-     *   <li>{@link #CONTROL_BOKEH_MODE_OFF OFF}</li>
-     *   <li>{@link #CONTROL_BOKEH_MODE_STILL_CAPTURE STILL_CAPTURE}</li>
-     *   <li>{@link #CONTROL_BOKEH_MODE_CONTINUOUS CONTINUOUS}</li>
+     *   <li>{@link #CONTROL_EXTENDED_SCENE_MODE_DISABLED DISABLED}</li>
+     *   <li>{@link #CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE BOKEH_STILL_CAPTURE}</li>
+     *   <li>{@link #CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS BOKEH_CONTINUOUS}</li>
      * </ul></p>
      * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
      *
+     * @see CaptureRequest#CONTROL_ZOOM_RATIO
      * @see CaptureRequest#SCALER_CROP_REGION
-     * @see #CONTROL_BOKEH_MODE_OFF
-     * @see #CONTROL_BOKEH_MODE_STILL_CAPTURE
-     * @see #CONTROL_BOKEH_MODE_CONTINUOUS
+     * @see #CONTROL_EXTENDED_SCENE_MODE_DISABLED
+     * @see #CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
+     * @see #CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
      */
     @PublicKey
     @NonNull
-    public static final Key<Integer> CONTROL_BOKEH_MODE =
-            new Key<Integer>("android.control.bokehMode", int.class);
+    public static final Key<Integer> CONTROL_EXTENDED_SCENE_MODE =
+            new Key<Integer>("android.control.extendedSceneMode", int.class);
 
     /**
      * <p>The desired zoom ratio</p>
@@ -2411,27 +2410,66 @@
      * {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion} can still be used to specify the horizontal or vertical
      * crop to achieve aspect ratios different than the native camera sensor.</p>
      * <p>By using this control, the application gains a simpler way to control zoom, which can
-     * be a combination of optical and digital zoom. More specifically, for a logical
-     * multi-camera with more than one focal length, using a floating point zoom ratio offers
-     * more zoom precision when a telephoto lens is used, as well as allowing zoom ratio of
-     * less than 1.0 to zoom out to a wide field of view.</p>
-     * <p>Note that the coordinate system of cropRegion, AE/AWB/AF regions, and faces now changes
-     * to the effective after-zoom field-of-view represented by rectangle of (0, 0,
-     * activeArrayWidth, activeArrayHeight).</p>
-     * <p>For example, if {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize} is 4032*3024, and the preview stream
-     * is configured to the same 4:3 aspect ratio, the application can achieve 2.0x zoom in
-     * one of two ways:</p>
+     * be a combination of optical and digital zoom. For example, a multi-camera system may
+     * contain more than one lens with different focal lengths, and the user can use optical
+     * zoom by switching between lenses. Using zoomRatio has benefits in the scenarios below:
+     * <em> Zooming in from a wide-angle lens to a telephoto lens: A floating-point ratio provides
+     *   better precision compared to an integer value of {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion}.
+     * </em> Zooming out from a wide lens to an ultrawide lens: zoomRatio supports zoom-out whereas
+     *   {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion} doesn't.</p>
+     * <p>To illustrate, here are several scenarios of different zoom ratios, crop regions,
+     * and output streams, for a hypothetical camera device with an active array of size
+     * <code>(2000,1500)</code>.</p>
      * <ul>
-     * <li>zoomRatio = 2.0, scaler.cropRegion = (0, 0, 4032, 3024)</li>
-     * <li>zoomRatio = 1.0 (default), scaler.cropRegion = (1008, 756, 3024, 2268)</li>
+     * <li>Camera Configuration:<ul>
+     * <li>Active array size: <code>2000x1500</code> (3 MP, 4:3 aspect ratio)</li>
+     * <li>Output stream #1: <code>640x480</code> (VGA, 4:3 aspect ratio)</li>
+     * <li>Output stream #2: <code>1280x720</code> (720p, 16:9 aspect ratio)</li>
      * </ul>
-     * <p>If the application intends to set aeRegions to be top-left quarter of the preview
-     * field-of-view, the {@link CaptureRequest#CONTROL_AE_REGIONS android.control.aeRegions} should be set to (0, 0, 2016, 1512) with
+     * </li>
+     * <li>Case #1: 4:3 crop region with 2.0x zoom ratio<ul>
+     * <li>Zoomed field of view: 1/4 of original field of view</li>
+     * <li>Crop region: <code>Rect(0, 0, 2000, 1500) // (left, top, right, bottom)</code> (post zoom)</li>
+     * </ul>
+     * </li>
+     * <li><img alt="4:3 aspect ratio crop diagram" src="/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-2-crop-43.png" /><ul>
+     * <li><code>640x480</code> stream source area: <code>(0, 0, 2000, 1500)</code> (equal to crop region)</li>
+     * <li><code>1280x720</code> stream source area: <code>(0, 187, 2000, 1312)</code> (letterboxed)</li>
+     * </ul>
+     * </li>
+     * <li>Case #2: 16:9 crop region with 2.0x zoom.<ul>
+     * <li>Zoomed field of view: 1/4 of original field of view</li>
+     * <li>Crop region: <code>Rect(0, 187, 2000, 1312)</code></li>
+     * <li><img alt="16:9 aspect ratio crop diagram" src="/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-2-crop-169.png" /></li>
+     * <li><code>640x480</code> stream source area: <code>(250, 187, 1750, 1312)</code> (pillarboxed)</li>
+     * <li><code>1280x720</code> stream source area: <code>(0, 187, 2000, 1312)</code> (equal to crop region)</li>
+     * </ul>
+     * </li>
+     * <li>Case #3: 1:1 crop region with 0.5x zoom out to ultrawide lens.<ul>
+     * <li>Zoomed field of view: 4x of original field of view (switched from wide lens to ultrawide lens)</li>
+     * <li>Crop region: <code>Rect(250, 0, 1750, 1500)</code></li>
+     * <li><img alt="1:1 aspect ratio crop diagram" src="/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-0.5-crop-11.png" /></li>
+     * <li><code>640x480</code> stream source area: <code>(250, 187, 1750, 1312)</code> (letterboxed)</li>
+     * <li><code>1280x720</code> stream source area: <code>(250, 328, 1750, 1172)</code> (letterboxed)</li>
+     * </ul>
+     * </li>
+     * </ul>
+     * <p>As seen from the graphs above, the coordinate system of cropRegion now changes to the
+     * effective after-zoom field-of-view, and is represented by the rectangle of (0, 0,
+     * activeArrayWith, activeArrayHeight). The same applies to AE/AWB/AF regions, and faces.
+     * This coordinate system change isn't applicable to RAW capture and its related
+     * metadata such as intrinsicCalibration and lensShadingMap.</p>
+     * <p>Using the same hypothetical example above, and assuming output stream #1 (640x480) is
+     * the viewfinder stream, the application can achieve 2.0x zoom in one of two ways:</p>
+     * <ul>
+     * <li>zoomRatio = 2.0, scaler.cropRegion = (0, 0, 2000, 1500)</li>
+     * <li>zoomRatio = 1.0 (default), scaler.cropRegion = (500, 375, 1500, 1125)</li>
+     * </ul>
+     * <p>If the application intends to set aeRegions to be top-left quarter of the viewfinder
+     * field-of-view, the {@link CaptureRequest#CONTROL_AE_REGIONS android.control.aeRegions} should be set to (0, 0, 1000, 750) with
      * zoomRatio set to 2.0. Alternatively, the application can set aeRegions to the equivalent
-     * region of (1008, 756, 2016, 1512) for zoomRatio of 1.0. If the application doesn't
+     * region of (500, 375, 1000, 750) for zoomRatio of 1.0. If the application doesn't
      * explicitly set {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio}, its value defaults to 1.0.</p>
-     * <p>This coordinate system change isn't applicable to RAW capture and its related metadata
-     * such as intrinsicCalibration and lensShadingMap.</p>
      * <p>One limitation of controlling zoom using zoomRatio is that the {@link CaptureRequest#SCALER_CROP_REGION android.scaler.cropRegion}
      * must only be used for letterboxing or pillarboxing of the sensor active array, and no
      * FREEFORM cropping can be used with {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} other than 1.0.</p>
@@ -2447,7 +2485,6 @@
      * @see CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
      * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
      * @see CaptureRequest#SCALER_CROP_REGION
-     * @see CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
      */
     @PublicKey
     @NonNull
@@ -2849,12 +2886,15 @@
      * frames before the lens can change to the requested focal length.
      * While the focal length is still changing, {@link CaptureResult#LENS_STATE android.lens.state} will
      * be set to MOVING.</p>
-     * <p>Optical zoom will not be supported on most devices.</p>
+     * <p>Optical zoom via this control will not be supported on most devices. Starting from API
+     * level 30, the camera device may combine optical and digital zoom through the
+     * {@link CaptureRequest#CONTROL_ZOOM_RATIO android.control.zoomRatio} control.</p>
      * <p><b>Units</b>: Millimeters</p>
      * <p><b>Range of valid values:</b><br>
      * {@link CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS android.lens.info.availableFocalLengths}</p>
      * <p>This key is available on all devices.</p>
      *
+     * @see CaptureRequest#CONTROL_ZOOM_RATIO
      * @see CaptureRequest#LENS_APERTURE
      * @see CaptureRequest#LENS_FOCUS_DISTANCE
      * @see CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
@@ -3562,14 +3602,13 @@
      *   <li>{@link #SCALER_ROTATE_AND_CROP_AUTO AUTO}</li>
      * </ul></p>
      * <p><b>Available values for this device:</b><br>
-     * {@link CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES android.scaler.availableRotateAndCropModes}</p>
+     * android.scaler.availableRotateAndCropModes</p>
      * <p><b>Optional</b> - The value for this key may be {@code null} on some devices.</p>
      *
      * @see CaptureRequest#CONTROL_AE_REGIONS
      * @see CaptureRequest#CONTROL_AF_REGIONS
      * @see CaptureRequest#CONTROL_AWB_REGIONS
      * @see CaptureRequest#CONTROL_ZOOM_RATIO
-     * @see CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
      * @see CaptureRequest#SCALER_CROP_REGION
      * @see CaptureResult#STATISTICS_FACES
      * @see #SCALER_ROTATE_AND_CROP_NONE
@@ -3577,9 +3616,8 @@
      * @see #SCALER_ROTATE_AND_CROP_180
      * @see #SCALER_ROTATE_AND_CROP_270
      * @see #SCALER_ROTATE_AND_CROP_AUTO
+     * @hide
      */
-    @PublicKey
-    @NonNull
     public static final Key<Integer> SCALER_ROTATE_AND_CROP =
             new Key<Integer>("android.scaler.rotateAndCrop", int.class);
 
diff --git a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
index df77f52..786db6e 100644
--- a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
+++ b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
@@ -714,12 +714,12 @@
                     }
                 });
         sGetCommandMap.put(
-                CameraCharacteristics.CONTROL_AVAILABLE_BOKEH_CAPABILITIES.getNativeKey(),
+                CameraCharacteristics.CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_CAPABILITIES.getNativeKey(),
                         new GetCommand() {
                     @Override
                     @SuppressWarnings("unchecked")
                     public <T> T getValue(CameraMetadataNative metadata, Key<T> key) {
-                        return (T) metadata.getBokehCapabilities();
+                        return (T) metadata.getExtendedSceneModeCapabilities();
                     }
                 });
     }
@@ -1442,53 +1442,55 @@
         return samples;
     }
 
-    private Capability[] getBokehCapabilities() {
-        int[] bokehMaxSizes = getBase(CameraCharacteristics.CONTROL_AVAILABLE_BOKEH_MAX_SIZES);
-        float[] bokehZoomRanges = getBase(
-                CameraCharacteristics.CONTROL_AVAILABLE_BOKEH_ZOOM_RATIO_RANGES);
+    private Capability[] getExtendedSceneModeCapabilities() {
+        int[] maxSizes =
+                getBase(CameraCharacteristics.CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES);
+        float[] zoomRanges = getBase(
+                CameraCharacteristics.CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES);
         Range<Float> zoomRange = getBase(CameraCharacteristics.CONTROL_ZOOM_RATIO_RANGE);
         float maxDigitalZoom = getBase(CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM);
 
-        if (bokehMaxSizes == null) {
+        if (maxSizes == null) {
             return null;
         }
-        if (bokehMaxSizes.length % 3 != 0) {
-            throw new AssertionError("availableBokehMaxSizes must be tuples of " +
-                    "[mode, width, height]");
+        if (maxSizes.length % 3 != 0) {
+            throw new AssertionError("availableExtendedSceneModeMaxSizes must be tuples of "
+                    + "[mode, width, height]");
         }
-        int numBokehModes = bokehMaxSizes.length / 3;
-        int numBokehZoomRanges = 0;
-        if (bokehZoomRanges != null) {
-            if (bokehZoomRanges.length % 2 != 0) {
-                throw new AssertionError("availableBokehZoomRanges must be tuples of " +
-                        "[minZoom, maxZoom]");
+        int numExtendedSceneModes = maxSizes.length / 3;
+        int numExtendedSceneModeZoomRanges = 0;
+        if (zoomRanges != null) {
+            if (zoomRanges.length % 2 != 0) {
+                throw new AssertionError("availableExtendedSceneModeZoomRanges must be tuples of "
+                        + "[minZoom, maxZoom]");
             }
-            numBokehZoomRanges = bokehZoomRanges.length / 2;
-            if (numBokehModes - numBokehZoomRanges != 1) {
-                throw new AssertionError("Number of bokeh zoom ranges must be 1 less than " +
-                        "number of supported bokeh modes");
+            numExtendedSceneModeZoomRanges = zoomRanges.length / 2;
+            if (numExtendedSceneModes - numExtendedSceneModeZoomRanges != 1) {
+                throw new AssertionError("Number of extended scene mode zoom ranges must be 1 "
+                        + "less than number of supported modes");
             }
         }
 
-        float bokehOffMinZoomRatio = 1.0f;
-        float bokehOffMaxZoomRatio = maxDigitalZoom;
+        float modeOffMinZoomRatio = 1.0f;
+        float modeOffMaxZoomRatio = maxDigitalZoom;
         if (zoomRange != null) {
-            bokehOffMinZoomRatio = zoomRange.getLower();
-            bokehOffMaxZoomRatio = zoomRange.getUpper();
+            modeOffMinZoomRatio = zoomRange.getLower();
+            modeOffMaxZoomRatio = zoomRange.getUpper();
         }
 
-        Capability[] capabilities = new Capability[numBokehModes];
-        for (int i = 0, j = 0; i < numBokehModes; i++) {
-            int mode = bokehMaxSizes[3 * i];
-            int width = bokehMaxSizes[3 * i + 1];
-            int height = bokehMaxSizes[3 * i + 2];
-            if (mode != CameraMetadata.CONTROL_BOKEH_MODE_OFF && j < numBokehZoomRanges) {
-                capabilities[i] = new Capability(mode, width, height, bokehZoomRanges[2 * j],
-                        bokehZoomRanges[2 * j + 1]);
+        Capability[] capabilities = new Capability[numExtendedSceneModes];
+        for (int i = 0, j = 0; i < numExtendedSceneModes; i++) {
+            int mode = maxSizes[3 * i];
+            int width = maxSizes[3 * i + 1];
+            int height = maxSizes[3 * i + 2];
+            if (mode != CameraMetadata.CONTROL_EXTENDED_SCENE_MODE_DISABLED
+                    && j < numExtendedSceneModeZoomRanges) {
+                capabilities[i] = new Capability(mode, width, height, zoomRanges[2 * j],
+                        zoomRanges[2 * j + 1]);
                 j++;
             } else {
-                capabilities[i] = new Capability(mode, width, height, bokehOffMinZoomRatio,
-                        bokehOffMaxZoomRatio);
+                capabilities[i] = new Capability(mode, width, height, modeOffMinZoomRatio,
+                        modeOffMaxZoomRatio);
             }
         }
 
diff --git a/core/java/android/hardware/camera2/params/Capability.java b/core/java/android/hardware/camera2/params/Capability.java
index 367690c..6f59c5f 100644
--- a/core/java/android/hardware/camera2/params/Capability.java
+++ b/core/java/android/hardware/camera2/params/Capability.java
@@ -30,7 +30,7 @@
  * Immutable class to store the camera capability, its corresponding maximum
  * streaming dimension and zoom range.
  *
- * @see CameraCharacteristics#CONTROL_AVAILABLE_BOKEH_CAPABILITIES
+ * @see CameraCharacteristics#CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_CAPABILITIES
  */
 
 public final class Capability {
@@ -72,10 +72,10 @@
     /**
      * Return the supported mode for this capability.
      *
-     * @return One of supported modes for the capability. For example, for available bokeh modes,
-     * this will be one of {@link CameraMetadata#CONTROL_BOKEH_MODE_OFF},
-     * {@link CameraMetadata#CONTROL_BOKEH_MODE_STILL_CAPTURE}, and
-     * {@link CameraMetadata#CONTROL_BOKEH_MODE_CONTINUOUS}.
+     * @return One of supported modes for the capability. For example, for available extended
+     * scene modes, this will be one of {@link CameraMetadata#CONTROL_EXTENDED_SCENE_MODE_DISABLED},
+     * {@link CameraMetadata#CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE}, and
+     * {@link CameraMetadata#CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS}.
      */
     public int getMode() {
         return mMode;
diff --git a/core/java/android/hardware/camera2/params/StreamConfigurationMap.java b/core/java/android/hardware/camera2/params/StreamConfigurationMap.java
index 478922d..c37f9fe 100644
--- a/core/java/android/hardware/camera2/params/StreamConfigurationMap.java
+++ b/core/java/android/hardware/camera2/params/StreamConfigurationMap.java
@@ -865,22 +865,21 @@
      * <p>{@code size} should be one of the ones returned by
      * {@link #getOutputSizes(int)}.</p>
      *
-     * <p>This should correspond to the frame duration when only that stream is active, with all
-     * processing (typically in {@code android.*.mode}) set to either {@code OFF} or {@code FAST}.
-     * </p>
+     * <p>This corresponds to the minimum frame duration (maximum frame rate) possible when only
+     * that stream is configured in a session, with all processing (typically in
+     * {@code android.*.mode}) set to either {@code OFF} or {@code FAST}.  </p>
      *
-     * <p>When multiple streams are used in a request, the minimum frame duration will be
-     * {@code max(individual stream min durations)}.</p>
+     * <p>When multiple streams are used in a session, the minimum frame duration will be
+     * {@code max(individual stream min durations)}.  See {@link #getOutputStallDuration} for
+     * details of timing for formats that may cause frame rate slowdown when they are targeted by a
+     * capture request.</p>
      *
      * <p>For devices that do not support manual sensor control
      * ({@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR}),
      * this function may return 0.</p>
      *
-     * <!--
-     * TODO: uncomment after adding input stream support
      * <p>The minimum frame duration of a stream (of a particular format, size) is the same
      * regardless of whether the stream is input or output.</p>
-     * -->
      *
      * @param format an image format from {@link ImageFormat} or {@link PixelFormat}
      * @param size an output-compatible size
@@ -918,22 +917,21 @@
      * <p>{@code size} should be one of the ones returned by
      * {@link #getOutputSizes(int)}.</p>
      *
-     * <p>This should correspond to the frame duration when only that stream is active, with all
-     * processing (typically in {@code android.*.mode}) set to either {@code OFF} or {@code FAST}.
-     * </p>
+     * <p>This corresponds to the minimum frame duration (maximum frame rate) possible when only
+     * that stream is configured in a session, with all processing (typically in
+     * {@code android.*.mode}) set to either {@code OFF} or {@code FAST}.  </p>
      *
-     * <p>When multiple streams are used in a request, the minimum frame duration will be
-     * {@code max(individual stream min durations)}.</p>
+     * <p>When multiple streams are used in a session, the minimum frame duration will be
+     * {@code max(individual stream min durations)}.  See {@link #getOutputStallDuration} for
+     * details of timing for formats that may cause frame rate slowdown when they are targeted by a
+     * capture request.</p>
      *
      * <p>For devices that do not support manual sensor control
      * ({@link android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR}),
      * this function may return 0.</p>
      *
-     * <!--
-     * TODO: uncomment after adding input stream support
      * <p>The minimum frame duration of a stream (of a particular format, size) is the same
      * regardless of whether the stream is input or output.</p>
-     * -->
      *
      * @param klass
      *          a class which is supported by {@link #isOutputSupportedFor(Class)} and has a
diff --git a/core/java/android/hardware/display/DisplayManagerGlobal.java b/core/java/android/hardware/display/DisplayManagerGlobal.java
index 9d92c89..526db85 100644
--- a/core/java/android/hardware/display/DisplayManagerGlobal.java
+++ b/core/java/android/hardware/display/DisplayManagerGlobal.java
@@ -18,6 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.app.PropertyInvalidatedCache;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.Context;
 import android.content.pm.ParceledListSlice;
@@ -99,6 +100,20 @@
         }
     }
 
+    private PropertyInvalidatedCache<Integer, DisplayInfo> mDisplayCache =
+            new PropertyInvalidatedCache<Integer, DisplayInfo>(
+                8, // size of display cache
+                CACHE_KEY_DISPLAY_INFO_PROPERTY) {
+                @Override
+                protected DisplayInfo recompute(Integer id) {
+                    try {
+                        return mDm.getDisplayInfo(id);
+                    } catch (RemoteException ex) {
+                        throw ex.rethrowFromSystemServer();
+                    }
+                }
+            };
+
     /**
      * Gets an instance of the display manager global singleton.
      *
@@ -127,33 +142,27 @@
      */
     @UnsupportedAppUsage
     public DisplayInfo getDisplayInfo(int displayId) {
-        try {
-            synchronized (mLock) {
-                DisplayInfo info;
-                if (USE_CACHE) {
-                    info = mDisplayInfoCache.get(displayId);
-                    if (info != null) {
-                        return info;
-                    }
+        synchronized (mLock) {
+            DisplayInfo info = null;
+            if (mDisplayCache != null) {
+                info = mDisplayCache.query(displayId);
+            } else {
+                try {
+                    info = mDm.getDisplayInfo(displayId);
+                } catch (RemoteException ex) {
+                    ex.rethrowFromSystemServer();
                 }
-
-                info = mDm.getDisplayInfo(displayId);
-                if (info == null) {
-                    return null;
-                }
-
-                if (USE_CACHE) {
-                    mDisplayInfoCache.put(displayId, info);
-                }
-                registerCallbackIfNeededLocked();
-
-                if (DEBUG) {
-                    Log.d(TAG, "getDisplayInfo: displayId=" + displayId + ", info=" + info);
-                }
-                return info;
             }
-        } catch (RemoteException ex) {
-            throw ex.rethrowFromSystemServer();
+            if (info == null) {
+                return null;
+            }
+
+            registerCallbackIfNeededLocked();
+
+            if (DEBUG) {
+                Log.d(TAG, "getDisplayInfo: displayId=" + displayId + ", info=" + info);
+            }
+            return info;
         }
     }
 
@@ -777,4 +786,26 @@
             }
         }
     }
+
+    /**
+     * Name of the property containing a unique token which changes every time we update the
+     * system's display configuration.
+     */
+    public static final String CACHE_KEY_DISPLAY_INFO_PROPERTY =
+            "cache_key.display_info";
+
+    /**
+     * Invalidates the contents of the display info cache for all applications. Can only
+     * be called by system_server.
+     */
+    public static void invalidateLocalDisplayInfoCaches() {
+        PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DISPLAY_INFO_PROPERTY);
+    }
+
+    /**
+     * Disables the binder call cache.
+     */
+    public void disableLocalDisplayInfoCaches() {
+        mDisplayCache = null;
+    }
 }
diff --git a/core/java/android/hardware/face/FaceManager.java b/core/java/android/hardware/face/FaceManager.java
index b422252..23e38ae 100644
--- a/core/java/android/hardware/face/FaceManager.java
+++ b/core/java/android/hardware/face/FaceManager.java
@@ -29,9 +29,7 @@
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.biometrics.BiometricConstants;
 import android.hardware.biometrics.BiometricFaceConstants;
-import android.hardware.biometrics.BiometricNativeHandleUtils;
 import android.hardware.biometrics.CryptoObject;
-import android.hardware.biometrics.IBiometricNativeHandle;
 import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
 import android.os.Binder;
 import android.os.CancellationSignal;
@@ -40,7 +38,6 @@
 import android.os.IBinder;
 import android.os.IRemoteCallback;
 import android.os.Looper;
-import android.os.NativeHandle;
 import android.os.PowerManager;
 import android.os.RemoteException;
 import android.os.Trace;
@@ -250,19 +247,6 @@
     }
 
     /**
-     * Defaults to {@link FaceManager#enroll(int, byte[], CancellationSignal, EnrollmentCallback,
-     * int[], NativeHandle)} with {@code windowId} set to null.
-     *
-     * @see FaceManager#enroll(int, byte[], CancellationSignal, EnrollmentCallback, int[],
-     * NativeHandle)
-     */
-    @RequiresPermission(MANAGE_BIOMETRIC)
-    public void enroll(int userId, byte[] token, CancellationSignal cancel,
-            EnrollmentCallback callback, int[] disabledFeatures) {
-        enroll(userId, token, cancel, callback, disabledFeatures, null /* windowId */);
-    }
-
-    /**
      * Request face authentication enrollment. This call operates the face authentication hardware
      * and starts capturing images. Progress will be indicated by callbacks to the
      * {@link EnrollmentCallback} object. It terminates when
@@ -277,13 +261,11 @@
      * @param flags    optional flags
      * @param userId   the user to whom this face will belong to
      * @param callback an object to receive enrollment events
-     * @param windowId optional ID of a camera preview window for a single-camera device. Must be
-     *                 null if not used.
      * @hide
      */
     @RequiresPermission(MANAGE_BIOMETRIC)
     public void enroll(int userId, byte[] token, CancellationSignal cancel,
-            EnrollmentCallback callback, int[] disabledFeatures, @Nullable NativeHandle windowId) {
+            EnrollmentCallback callback, int[] disabledFeatures) {
         if (callback == null) {
             throw new IllegalArgumentException("Must supply an enrollment callback");
         }
@@ -298,72 +280,20 @@
         }
 
         if (mService != null) {
-            IBiometricNativeHandle handle = BiometricNativeHandleUtils.dup(windowId);
             try {
                 mEnrollmentCallback = callback;
                 Trace.beginSection("FaceManager#enroll");
                 mService.enroll(userId, mToken, token, mServiceReceiver,
-                        mContext.getOpPackageName(), disabledFeatures, handle);
-            } catch (RemoteException e) {
-                Log.w(TAG, "Remote exception in enroll: ", e);
-                // Though this may not be a hardware issue, it will cause apps to give up or
-                // try again later.
-                callback.onEnrollmentError(FACE_ERROR_HW_UNAVAILABLE,
-                        getErrorString(mContext, FACE_ERROR_HW_UNAVAILABLE,
-                                0 /* vendorCode */));
-            } finally {
-                Trace.endSection();
-                BiometricNativeHandleUtils.close(handle);
-            }
-        }
-    }
-
-    /**
-     * Request face authentication enrollment for a remote client, for example Android Auto.
-     * This call operates the face authentication hardware and starts capturing images.
-     * Progress will be indicated by callbacks to the
-     * {@link EnrollmentCallback} object. It terminates when
-     * {@link EnrollmentCallback#onEnrollmentError(int, CharSequence)} or
-     * {@link EnrollmentCallback#onEnrollmentProgress(int) is called with remaining == 0, at
-     * which point the object is no longer valid. The operation can be canceled by using the
-     * provided cancel object.
-     *
-     * @param token    a unique token provided by a recent creation or verification of device
-     *                 credentials (e.g. pin, pattern or password).
-     * @param cancel   an object that can be used to cancel enrollment
-     * @param userId   the user to whom this face will belong to
-     * @param callback an object to receive enrollment events
-     * @hide
-     */
-    @RequiresPermission(MANAGE_BIOMETRIC)
-    public void enrollRemotely(int userId, byte[] token, CancellationSignal cancel,
-            EnrollmentCallback callback, int[] disabledFeatures) {
-        if (callback == null) {
-            throw new IllegalArgumentException("Must supply an enrollment callback");
-        }
-
-        if (cancel != null) {
-            if (cancel.isCanceled()) {
-                Log.w(TAG, "enrollRemotely is already canceled.");
-                return;
-            } else {
-                cancel.setOnCancelListener(new OnEnrollCancelListener());
-            }
-        }
-
-        if (mService != null) {
-            try {
-                mEnrollmentCallback = callback;
-                Trace.beginSection("FaceManager#enrollRemotely");
-                mService.enrollRemotely(userId, mToken, token, mServiceReceiver,
                         mContext.getOpPackageName(), disabledFeatures);
             } catch (RemoteException e) {
-                Log.w(TAG, "Remote exception in enrollRemotely: ", e);
-                // Though this may not be a hardware issue, it will cause apps to give up or
-                // try again later.
-                callback.onEnrollmentError(FACE_ERROR_HW_UNAVAILABLE,
-                        getErrorString(mContext, FACE_ERROR_HW_UNAVAILABLE,
+                Log.w(TAG, "Remote exception in enroll: ", e);
+                if (callback != null) {
+                    // Though this may not be a hardware issue, it will cause apps to give up or
+                    // try again later.
+                    callback.onEnrollmentError(FACE_ERROR_HW_UNAVAILABLE,
+                            getErrorString(mContext, FACE_ERROR_HW_UNAVAILABLE,
                                 0 /* vendorCode */));
+                }
             } finally {
                 Trace.endSection();
             }
diff --git a/core/java/android/hardware/face/IFaceService.aidl b/core/java/android/hardware/face/IFaceService.aidl
index 37b7456..03937e0 100644
--- a/core/java/android/hardware/face/IFaceService.aidl
+++ b/core/java/android/hardware/face/IFaceService.aidl
@@ -15,7 +15,6 @@
  */
 package android.hardware.face;
 
-import android.hardware.biometrics.IBiometricNativeHandle;
 import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
 import android.hardware.face.IFaceServiceReceiver;
@@ -52,10 +51,6 @@
 
     // Start face enrollment
     void enroll(int userId, IBinder token, in byte [] cryptoToken, IFaceServiceReceiver receiver,
-            String opPackageName, in int [] disabledFeatures, in IBiometricNativeHandle windowId);
-
-    // Start remote face enrollment
-    void enrollRemotely(int userId, IBinder token, in byte [] cryptoToken, IFaceServiceReceiver receiver,
             String opPackageName, in int [] disabledFeatures);
 
     // Cancel enrollment in progress
diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java
index 9145142..d57a7e4b 100644
--- a/core/java/android/hardware/fingerprint/FingerprintManager.java
+++ b/core/java/android/hardware/fingerprint/FingerprintManager.java
@@ -32,9 +32,7 @@
 import android.content.pm.PackageManager;
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.biometrics.BiometricFingerprintConstants;
-import android.hardware.biometrics.BiometricNativeHandleUtils;
 import android.hardware.biometrics.BiometricPrompt;
-import android.hardware.biometrics.IBiometricNativeHandle;
 import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
 import android.os.Binder;
 import android.os.CancellationSignal;
@@ -43,7 +41,6 @@
 import android.os.IBinder;
 import android.os.IRemoteCallback;
 import android.os.Looper;
-import android.os.NativeHandle;
 import android.os.PowerManager;
 import android.os.RemoteException;
 import android.os.UserHandle;
@@ -415,33 +412,15 @@
     }
 
     /**
-     * Defaults to {@link FingerprintManager#authenticate(CryptoObject, CancellationSignal, int,
-     * AuthenticationCallback, Handler, int, NativeHandle)} with {@code windowId} set to null.
-     *
-     * @see FingerprintManager#authenticate(CryptoObject, CancellationSignal, int,
-     * AuthenticationCallback, Handler, int, NativeHandle)
-     *
+     * Per-user version, see {@link FingerprintManager#authenticate(CryptoObject,
+     * CancellationSignal, int, AuthenticationCallback, Handler)}. This version does not
+     * display the BiometricPrompt.
+     * @param userId the user ID that the fingerprint hardware will authenticate for.
      * @hide
      */
     @RequiresPermission(anyOf = {USE_BIOMETRIC, USE_FINGERPRINT})
     public void authenticate(@Nullable CryptoObject crypto, @Nullable CancellationSignal cancel,
             int flags, @NonNull AuthenticationCallback callback, Handler handler, int userId) {
-        authenticate(crypto, cancel, flags, callback, handler, userId, null /* windowId */);
-    }
-
-    /**
-     * Per-user version, see {@link FingerprintManager#authenticate(CryptoObject,
-     * CancellationSignal, int, AuthenticationCallback, Handler)}. This version does not
-     * display the BiometricPrompt.
-     * @param userId the user ID that the fingerprint hardware will authenticate for.
-     * @param windowId for optical fingerprint sensors that require active illumination by the OLED
-     *        display. Should be null for devices that don't require illumination.
-     * @hide
-     */
-    @RequiresPermission(anyOf = {USE_BIOMETRIC, USE_FINGERPRINT})
-    public void authenticate(@Nullable CryptoObject crypto, @Nullable CancellationSignal cancel,
-            int flags, @NonNull AuthenticationCallback callback, Handler handler, int userId,
-            @Nullable NativeHandle windowId) {
         if (callback == null) {
             throw new IllegalArgumentException("Must supply an authentication callback");
         }
@@ -455,44 +434,26 @@
             }
         }
 
-        if (mService != null) {
-            IBiometricNativeHandle handle = BiometricNativeHandleUtils.dup(windowId);
-            try {
-                useHandler(handler);
-                mAuthenticationCallback = callback;
-                mCryptoObject = crypto;
-                long sessionId = crypto != null ? crypto.getOpId() : 0;
-                mService.authenticate(mToken, sessionId, userId, mServiceReceiver, flags,
-                        mContext.getOpPackageName(), handle);
-            } catch (RemoteException e) {
-                Slog.w(TAG, "Remote exception while authenticating: ", e);
+        if (mService != null) try {
+            useHandler(handler);
+            mAuthenticationCallback = callback;
+            mCryptoObject = crypto;
+            long sessionId = crypto != null ? crypto.getOpId() : 0;
+            mService.authenticate(mToken, sessionId, userId, mServiceReceiver, flags,
+                    mContext.getOpPackageName());
+        } catch (RemoteException e) {
+            Slog.w(TAG, "Remote exception while authenticating: ", e);
+            if (callback != null) {
                 // Though this may not be a hardware issue, it will cause apps to give up or try
                 // again later.
                 callback.onAuthenticationError(FINGERPRINT_ERROR_HW_UNAVAILABLE,
                         getErrorString(mContext, FINGERPRINT_ERROR_HW_UNAVAILABLE,
-                                0 /* vendorCode */));
-            } finally {
-                BiometricNativeHandleUtils.close(handle);
+                            0 /* vendorCode */));
             }
         }
     }
 
     /**
-     * Defaults to {@link FingerprintManager#enroll(byte[], CancellationSignal, int, int,
-     * EnrollmentCallback, NativeHandle)} with {@code windowId} set to null.
-     *
-     * @see FingerprintManager#enroll(byte[], CancellationSignal, int, int, EnrollmentCallback,
-     * NativeHandle)
-     *
-     * @hide
-     */
-    @RequiresPermission(MANAGE_FINGERPRINT)
-    public void enroll(byte [] token, CancellationSignal cancel, int flags,
-            int userId, EnrollmentCallback callback) {
-        enroll(token, cancel, flags, userId, callback, null /* windowId */);
-    }
-
-    /**
      * Request fingerprint enrollment. This call warms up the fingerprint hardware
      * and starts scanning for fingerprints. Progress will be indicated by callbacks to the
      * {@link EnrollmentCallback} object. It terminates when
@@ -510,7 +471,7 @@
      */
     @RequiresPermission(MANAGE_FINGERPRINT)
     public void enroll(byte [] token, CancellationSignal cancel, int flags,
-            int userId, EnrollmentCallback callback, @Nullable NativeHandle windowId) {
+            int userId, EnrollmentCallback callback) {
         if (userId == UserHandle.USER_CURRENT) {
             userId = getCurrentUserId();
         }
@@ -527,21 +488,18 @@
             }
         }
 
-        if (mService != null) {
-            IBiometricNativeHandle handle = BiometricNativeHandleUtils.dup(windowId);
-            try {
-                mEnrollmentCallback = callback;
-                mService.enroll(mToken, token, userId, mServiceReceiver, flags,
-                        mContext.getOpPackageName(), handle);
-            } catch (RemoteException e) {
-                Slog.w(TAG, "Remote exception in enroll: ", e);
+        if (mService != null) try {
+            mEnrollmentCallback = callback;
+            mService.enroll(mToken, token, userId, mServiceReceiver, flags,
+                    mContext.getOpPackageName());
+        } catch (RemoteException e) {
+            Slog.w(TAG, "Remote exception in enroll: ", e);
+            if (callback != null) {
                 // Though this may not be a hardware issue, it will cause apps to give up or try
                 // again later.
                 callback.onEnrollmentError(FINGERPRINT_ERROR_HW_UNAVAILABLE,
                         getErrorString(mContext, FINGERPRINT_ERROR_HW_UNAVAILABLE,
-                                0 /* vendorCode */));
-            } finally {
-                BiometricNativeHandleUtils.close(handle);
+                            0 /* vendorCode */));
             }
         }
     }
diff --git a/core/java/android/hardware/fingerprint/IFingerprintService.aidl b/core/java/android/hardware/fingerprint/IFingerprintService.aidl
index c33e445..2507c84 100644
--- a/core/java/android/hardware/fingerprint/IFingerprintService.aidl
+++ b/core/java/android/hardware/fingerprint/IFingerprintService.aidl
@@ -15,7 +15,6 @@
  */
 package android.hardware.fingerprint;
 
-import android.hardware.biometrics.IBiometricNativeHandle;
 import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
 import android.hardware.fingerprint.IFingerprintClientActiveCallback;
@@ -32,8 +31,7 @@
     // USE_FINGERPRINT/USE_BIOMETRIC permission. This is effectively deprecated, since it only comes
     // through FingerprintManager now.
     void authenticate(IBinder token, long sessionId, int userId,
-            IFingerprintServiceReceiver receiver, int flags, String opPackageName,
-            in IBiometricNativeHandle windowId);
+            IFingerprintServiceReceiver receiver, int flags, String opPackageName);
 
     // This method prepares the service to start authenticating, but doesn't start authentication.
     // This is protected by the MANAGE_BIOMETRIC signatuer permission. This method should only be
@@ -42,7 +40,7 @@
     // startPreparedClient().
     void prepareForAuthentication(IBinder token, long sessionId, int userId,
             IBiometricServiceReceiverInternal wrapperReceiver, String opPackageName, int cookie,
-            int callingUid, int callingPid, int callingUserId, in IBiometricNativeHandle windowId);
+            int callingUid, int callingPid, int callingUserId);
 
     // Starts authentication with the previously prepared client.
     void startPreparedClient(int cookie);
@@ -57,7 +55,7 @@
 
     // Start fingerprint enrollment
     void enroll(IBinder token, in byte [] cryptoToken, int groupId, IFingerprintServiceReceiver receiver,
-            int flags, String opPackageName, in IBiometricNativeHandle windowId);
+            int flags, String opPackageName);
 
     // Cancel enrollment in progress
     void cancelEnrollment(IBinder token);
diff --git a/core/java/android/hardware/input/InputManagerInternal.java b/core/java/android/hardware/input/InputManagerInternal.java
index d8da548..f6cd726 100644
--- a/core/java/android/hardware/input/InputManagerInternal.java
+++ b/core/java/android/hardware/input/InputManagerInternal.java
@@ -16,7 +16,9 @@
 
 package android.hardware.input;
 
+import android.annotation.NonNull;
 import android.hardware.display.DisplayViewport;
+import android.os.IBinder;
 import android.view.InputEvent;
 
 import java.util.List;
@@ -59,4 +61,21 @@
      * Set whether the input stack should deliver pulse gesture events when the device is asleep.
      */
     public abstract void setPulseGestureEnabled(boolean enabled);
+
+    /**
+     * Atomically transfers touch focus from one window to another as identified by
+     * their input channels.  It is possible for multiple windows to have
+     * touch focus if they support split touch dispatch
+     * {@link android.view.WindowManager.LayoutParams#FLAG_SPLIT_TOUCH} but this
+     * method only transfers touch focus of the specified window without affecting
+     * other windows that may also have touch focus at the same time.
+     *
+     * @param fromChannelToken The channel token of a window that currently has touch focus.
+     * @param toChannelToken The channel token of the window that should receive touch focus in
+     * place of the first.
+     * @return {@code true} if the transfer was successful. {@code false} if the window with the
+     * specified channel did not actually have touch focus at the time of the request.
+     */
+    public abstract boolean transferTouchFocus(@NonNull IBinder fromChannelToken,
+            @NonNull IBinder toChannelToken);
 }
diff --git a/core/java/android/hardware/soundtrigger/ConversionUtil.java b/core/java/android/hardware/soundtrigger/ConversionUtil.java
index 3d763e6..425218a 100644
--- a/core/java/android/hardware/soundtrigger/ConversionUtil.java
+++ b/core/java/android/hardware/soundtrigger/ConversionUtil.java
@@ -106,11 +106,11 @@
 
     public static SoundModel api2aidlSoundModel(SoundTrigger.SoundModel apiModel) {
         SoundModel aidlModel = new SoundModel();
-        aidlModel.type = apiModel.type;
-        aidlModel.uuid = api2aidlUuid(apiModel.uuid);
-        aidlModel.vendorUuid = api2aidlUuid(apiModel.vendorUuid);
-        aidlModel.data = byteArrayToSharedMemory(apiModel.data, "SoundTrigger SoundModel");
-        aidlModel.dataSize = apiModel.data.length;
+        aidlModel.type = apiModel.getType();
+        aidlModel.uuid = api2aidlUuid(apiModel.getUuid());
+        aidlModel.vendorUuid = api2aidlUuid(apiModel.getVendorUuid());
+        aidlModel.data = byteArrayToSharedMemory(apiModel.getData(), "SoundTrigger SoundModel");
+        aidlModel.dataSize = apiModel.getData().length;
         return aidlModel;
     }
 
@@ -122,20 +122,20 @@
             SoundTrigger.KeyphraseSoundModel apiModel) {
         PhraseSoundModel aidlModel = new PhraseSoundModel();
         aidlModel.common = api2aidlSoundModel(apiModel);
-        aidlModel.phrases = new Phrase[apiModel.keyphrases.length];
-        for (int i = 0; i < apiModel.keyphrases.length; ++i) {
-            aidlModel.phrases[i] = api2aidlPhrase(apiModel.keyphrases[i]);
+        aidlModel.phrases = new Phrase[apiModel.getKeyphrases().length];
+        for (int i = 0; i < apiModel.getKeyphrases().length; ++i) {
+            aidlModel.phrases[i] = api2aidlPhrase(apiModel.getKeyphrases()[i]);
         }
         return aidlModel;
     }
 
     public static Phrase api2aidlPhrase(SoundTrigger.Keyphrase apiPhrase) {
         Phrase aidlPhrase = new Phrase();
-        aidlPhrase.id = apiPhrase.id;
-        aidlPhrase.recognitionModes = api2aidlRecognitionModes(apiPhrase.recognitionModes);
-        aidlPhrase.users = Arrays.copyOf(apiPhrase.users, apiPhrase.users.length);
-        aidlPhrase.locale = apiPhrase.locale.toLanguageTag();
-        aidlPhrase.text = apiPhrase.text;
+        aidlPhrase.id = apiPhrase.getId();
+        aidlPhrase.recognitionModes = api2aidlRecognitionModes(apiPhrase.getRecognitionModes());
+        aidlPhrase.users = Arrays.copyOf(apiPhrase.getUsers(), apiPhrase.getUsers().length);
+        aidlPhrase.locale = apiPhrase.getLocale().toLanguageTag();
+        aidlPhrase.text = apiPhrase.getText();
         return aidlPhrase;
     }
 
diff --git a/core/java/android/hardware/soundtrigger/KeyphraseEnrollmentInfo.java b/core/java/android/hardware/soundtrigger/KeyphraseEnrollmentInfo.java
index 1aeb76a3..0593545 100644
--- a/core/java/android/hardware/soundtrigger/KeyphraseEnrollmentInfo.java
+++ b/core/java/android/hardware/soundtrigger/KeyphraseEnrollmentInfo.java
@@ -43,7 +43,6 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.Set;
 
 /**
  * Enrollment information about the different available keyphrases.
@@ -120,11 +119,6 @@
     private final KeyphraseMetadata[] mKeyphrases;
 
     /**
-     * Set of UIDs associated with the detected enrollment applications.
-     */
-    private final Set<Integer> mEnrollmentApplicationUids;
-
-    /**
      * Map between KeyphraseMetadata and the package name of the enrollment app that provides it.
      */
     final private Map<KeyphraseMetadata, String> mKeyphrasePackageMap;
@@ -142,13 +136,11 @@
             mParseError = "No enrollment applications found";
             mKeyphrasePackageMap = Collections.<KeyphraseMetadata, String>emptyMap();
             mKeyphrases = null;
-            mEnrollmentApplicationUids = Collections.emptySet();
             return;
         }
 
         List<String> parseErrors = new LinkedList<String>();
         mKeyphrasePackageMap = new HashMap<KeyphraseMetadata, String>();
-        mEnrollmentApplicationUids = new ArraySet<>();
         for (ResolveInfo ri : ris) {
             try {
                 ApplicationInfo ai = pm.getApplicationInfo(
@@ -170,7 +162,6 @@
                         getKeyphraseMetadataFromApplicationInfo(pm, ai, parseErrors);
                 if (metadata != null) {
                     mKeyphrasePackageMap.put(metadata, ai.packageName);
-                    mEnrollmentApplicationUids.add(ai.uid);
                 }
             } catch (PackageManager.NameNotFoundException e) {
                 String error = "error parsing voice enrollment meta-data for "
@@ -373,21 +364,9 @@
         return null;
     }
 
-    /**
-     * Tests if the input UID matches a supported enrollment application.
-     *
-     * @param uid UID of the caller to test against.
-     * @return Returns true if input uid matches the uid of a supported enrollment application.
-     *         False if not.
-     */
-    public boolean isUidSupportedEnrollmentApplication(int uid) {
-        return mEnrollmentApplicationUids.contains(uid);
-    }
-
     @Override
     public String toString() {
         return "KeyphraseEnrollmentInfo [KeyphrasePackageMap=" + mKeyphrasePackageMap.toString()
-                + ", enrollmentApplicationUids=" + mEnrollmentApplicationUids.toString()
                 + ", ParseError=" + mParseError + "]";
     }
 }
diff --git a/core/java/android/hardware/soundtrigger/SoundTrigger.java b/core/java/android/hardware/soundtrigger/SoundTrigger.java
index a74871d2..98c4f61 100644
--- a/core/java/android/hardware/soundtrigger/SoundTrigger.java
+++ b/core/java/android/hardware/soundtrigger/SoundTrigger.java
@@ -104,76 +104,37 @@
 
         /**
          * If set the underlying module supports AEC.
-         * Describes bit field {@link ModuleProperties#audioCapabilities}
+         * Describes bit field {@link ModuleProperties#mAudioCapabilities}
          */
         public static final int AUDIO_CAPABILITY_ECHO_CANCELLATION = 0x1;
         /**
          * If set, the underlying module supports noise suppression.
-         * Describes bit field {@link ModuleProperties#audioCapabilities}
+         * Describes bit field {@link ModuleProperties#mAudioCapabilities}
          */
         public static final int AUDIO_CAPABILITY_NOISE_SUPPRESSION = 0x2;
 
-        /** Unique module ID provided by the native service */
-        public final int id;
-
-        /** human readable voice detection engine implementor */
+        private final int mId;
         @NonNull
-        public final String implementor;
-
-        /** human readable voice detection engine description */
+        private final String mImplementor;
         @NonNull
-        public final String description;
-
-        /** Unique voice engine Id (changes with each version) */
+        private final String mDescription;
         @NonNull
-        public final UUID uuid;
-
-        /** Voice detection engine version */
-        public final int version;
-
-        /**
-         * String naming the architecture used for running the supported models.
-         * (eg. a platform running models on a DSP could implement this string to convey the DSP
-         * architecture used)
-         */
+        private final UUID mUuid;
+        private final int mVersion;
         @NonNull
-        public final String supportedModelArch;
-
-        /** Maximum number of active sound models */
-        public final int maxSoundModels;
-
-        /** Maximum number of key phrases */
-        public final int maxKeyphrases;
-
-        /** Maximum number of users per key phrase */
-        public final int maxUsers;
-
-        /** Supported recognition modes (bit field, RECOGNITION_MODE_VOICE_TRIGGER ...) */
+        private final String mSupportedModelArch;
+        private final int mMaxSoundModels;
+        private final int mMaxKeyphrases;
+        private final int mMaxUsers;
         @RecognitionModes
-        public final int recognitionModes;
-
-        /** Supports seamless transition to capture mode after recognition */
-        public final boolean supportsCaptureTransition;
-
-        /** Maximum buffering capacity in ms if supportsCaptureTransition() is true */
-        public final int maxBufferMs;
-
-        /** Supports capture by other use cases while detection is active */
-        public final boolean supportsConcurrentCapture;
-
-        /** Rated power consumption when detection is active with TDB silence/sound/speech ratio */
-        public final int powerConsumptionMw;
-
-        /** Returns the trigger (key phrase) capture in the binary data of the
-         * recognition callback event */
-        public final boolean returnsTriggerInEvent;
-
-        /**
-         * Bit field encoding of the AudioCapabilities
-         * supported by the firmware.
-         */
+        private final int mRecognitionModes;
+        private final boolean mSupportsCaptureTransition;
+        private final int mMaxBufferMillis;
+        private final boolean mSupportsConcurrentCapture;
+        private final int mPowerConsumptionMw;
+        private final boolean mReturnsTriggerInEvent;
         @AudioCapabilities
-        public final int audioCapabilities;
+        private final int mAudioCapabilities;
 
         ModuleProperties(int id, @NonNull String implementor, @NonNull String description,
                 @NonNull String uuid, int version, @NonNull String supportedModelArch,
@@ -181,22 +142,116 @@
                 @RecognitionModes int recognitionModes, boolean supportsCaptureTransition,
                 int maxBufferMs, boolean supportsConcurrentCapture, int powerConsumptionMw,
                 boolean returnsTriggerInEvent, int audioCapabilities) {
-            this.id = id;
-            this.implementor = requireNonNull(implementor);
-            this.description = requireNonNull(description);
-            this.uuid = UUID.fromString(requireNonNull(uuid));
-            this.version = version;
-            this.supportedModelArch = requireNonNull(supportedModelArch);
-            this.maxSoundModels = maxSoundModels;
-            this.maxKeyphrases = maxKeyphrases;
-            this.maxUsers = maxUsers;
-            this.recognitionModes = recognitionModes;
-            this.supportsCaptureTransition = supportsCaptureTransition;
-            this.maxBufferMs = maxBufferMs;
-            this.supportsConcurrentCapture = supportsConcurrentCapture;
-            this.powerConsumptionMw = powerConsumptionMw;
-            this.returnsTriggerInEvent = returnsTriggerInEvent;
-            this.audioCapabilities = audioCapabilities;
+            this.mId = id;
+            this.mImplementor = requireNonNull(implementor);
+            this.mDescription = requireNonNull(description);
+            this.mUuid = UUID.fromString(requireNonNull(uuid));
+            this.mVersion = version;
+            this.mSupportedModelArch = requireNonNull(supportedModelArch);
+            this.mMaxSoundModels = maxSoundModels;
+            this.mMaxKeyphrases = maxKeyphrases;
+            this.mMaxUsers = maxUsers;
+            this.mRecognitionModes = recognitionModes;
+            this.mSupportsCaptureTransition = supportsCaptureTransition;
+            this.mMaxBufferMillis = maxBufferMs;
+            this.mSupportsConcurrentCapture = supportsConcurrentCapture;
+            this.mPowerConsumptionMw = powerConsumptionMw;
+            this.mReturnsTriggerInEvent = returnsTriggerInEvent;
+            this.mAudioCapabilities = audioCapabilities;
+        }
+
+        /** Unique module ID provided by the native service */
+        public int getId() {
+            return mId;
+        }
+
+        /** human readable voice detection engine implementor */
+        @NonNull
+        public String getImplementor() {
+            return mImplementor;
+        }
+
+        /** human readable voice detection engine description */
+        @NonNull
+        public String getDescription() {
+            return mDescription;
+        }
+
+        /** Unique voice engine Id (changes with each version) */
+        @NonNull
+        public UUID getUuid() {
+            return mUuid;
+        }
+
+        /** Voice detection engine version */
+        public int getVersion() {
+            return mVersion;
+        }
+
+        /**
+         * String naming the architecture used for running the supported models.
+         * (eg. a platform running models on a DSP could implement this string to convey the DSP
+         * architecture used)
+         */
+        @NonNull
+        public String getSupportedModelArch() {
+            return mSupportedModelArch;
+        }
+
+        /** Maximum number of active sound models */
+        public int getMaxSoundModels() {
+            return mMaxSoundModels;
+        }
+
+        /** Maximum number of key phrases */
+        public int getMaxKeyphrases() {
+            return mMaxKeyphrases;
+        }
+
+        /** Maximum number of users per key phrase */
+        public int getMaxUsers() {
+            return mMaxUsers;
+        }
+
+        /** Supported recognition modes (bit field, RECOGNITION_MODE_VOICE_TRIGGER ...) */
+        @RecognitionModes
+        public int getRecognitionModes() {
+            return mRecognitionModes;
+        }
+
+        /** Supports seamless transition to capture mode after recognition */
+        public boolean isCaptureTransitionSupported() {
+            return mSupportsCaptureTransition;
+        }
+
+        /** Maximum buffering capacity in ms if supportsCaptureTransition() is true */
+        public int getMaxBufferMillis() {
+            return mMaxBufferMillis;
+        }
+
+        /** Supports capture by other use cases while detection is active */
+        public boolean isConcurrentCaptureSupported() {
+            return mSupportsConcurrentCapture;
+        }
+
+        /** Rated power consumption when detection is active with TDB silence/sound/speech ratio */
+        public int getPowerConsumptionMw() {
+            return mPowerConsumptionMw;
+        }
+
+        /** Returns the trigger (key phrase) capture in the binary data of the
+         * recognition callback event */
+        public boolean isTriggerReturnedInEvent() {
+            return mReturnsTriggerInEvent;
+        }
+
+        /**
+         * Bit field encoding of the AudioCapabilities
+         * supported by the firmware.
+         */
+        @AudioCapabilities
+        public int getAudioCapabilities() {
+            return mAudioCapabilities;
         }
 
         public static final @android.annotation.NonNull Parcelable.Creator<ModuleProperties> CREATOR
@@ -235,22 +290,22 @@
 
         @Override
         public void writeToParcel(Parcel dest, int flags) {
-            dest.writeInt(id);
-            dest.writeString(implementor);
-            dest.writeString(description);
-            dest.writeString(uuid.toString());
-            dest.writeInt(version);
-            dest.writeString(supportedModelArch);
-            dest.writeInt(maxSoundModels);
-            dest.writeInt(maxKeyphrases);
-            dest.writeInt(maxUsers);
-            dest.writeInt(recognitionModes);
-            dest.writeByte((byte) (supportsCaptureTransition ? 1 : 0));
-            dest.writeInt(maxBufferMs);
-            dest.writeByte((byte) (supportsConcurrentCapture ? 1 : 0));
-            dest.writeInt(powerConsumptionMw);
-            dest.writeByte((byte) (returnsTriggerInEvent ? 1 : 0));
-            dest.writeInt(audioCapabilities);
+            dest.writeInt(getId());
+            dest.writeString(getImplementor());
+            dest.writeString(getDescription());
+            dest.writeString(getUuid().toString());
+            dest.writeInt(getVersion());
+            dest.writeString(getSupportedModelArch());
+            dest.writeInt(getMaxSoundModels());
+            dest.writeInt(getMaxKeyphrases());
+            dest.writeInt(getMaxUsers());
+            dest.writeInt(getRecognitionModes());
+            dest.writeByte((byte) (isCaptureTransitionSupported() ? 1 : 0));
+            dest.writeInt(getMaxBufferMillis());
+            dest.writeByte((byte) (isConcurrentCaptureSupported() ? 1 : 0));
+            dest.writeInt(getPowerConsumptionMw());
+            dest.writeByte((byte) (isTriggerReturnedInEvent() ? 1 : 0));
+            dest.writeInt(getAudioCapabilities());
         }
 
         @Override
@@ -260,16 +315,17 @@
 
         @Override
         public String toString() {
-            return "ModuleProperties [id=" + id + ", implementor=" + implementor + ", description="
-                    + description + ", uuid=" + uuid + ", version=" + version
-                    + " , supportedModelArch=" + supportedModelArch + ", maxSoundModels="
-                    + maxSoundModels + ", maxKeyphrases=" + maxKeyphrases + ", maxUsers="
-                    + maxUsers + ", recognitionModes=" + recognitionModes
-                    + ", supportsCaptureTransition=" + supportsCaptureTransition + ", maxBufferMs="
-                    + maxBufferMs + ", supportsConcurrentCapture=" + supportsConcurrentCapture
-                    + ", powerConsumptionMw=" + powerConsumptionMw
-                    + ", returnsTriggerInEvent=" + returnsTriggerInEvent
-                    + ", audioCapabilities=" + audioCapabilities + "]";
+            return "ModuleProperties [id=" + getId() + ", implementor=" + getImplementor()
+                    + ", description=" + getDescription() + ", uuid=" + getUuid()
+                    + ", version=" + getVersion() + " , supportedModelArch="
+                    + getSupportedModelArch() + ", maxSoundModels=" + getMaxSoundModels()
+                    + ", maxKeyphrases=" + getMaxKeyphrases() + ", maxUsers=" + getMaxUsers()
+                    + ", recognitionModes=" + getRecognitionModes() + ", supportsCaptureTransition="
+                    + isCaptureTransitionSupported() + ", maxBufferMs=" + getMaxBufferMillis()
+                    + ", supportsConcurrentCapture=" + isConcurrentCaptureSupported()
+                    + ", powerConsumptionMw=" + getPowerConsumptionMw()
+                    + ", returnsTriggerInEvent=" + isTriggerReturnedInEvent()
+                    + ", audioCapabilities=" + getAudioCapabilities() + "]";
         }
     }
 
@@ -305,44 +361,64 @@
          */
         public static final int TYPE_GENERIC_SOUND = 1;
 
-        /** Unique sound model identifier */
         @NonNull
-        public final UUID uuid;
-
-        /** Sound model type (e.g. TYPE_KEYPHRASE); */
+        private final UUID mUuid;
         @SoundModelType
-        public final int type;
-
-        /** Unique sound model vendor identifier */
+        private final int mType;
         @NonNull
-        public final UUID vendorUuid;
-
-        /** vendor specific version number of the model */
-        public final int version;
-
-        /** Opaque data. For use by vendor implementation and enrollment application */
+        private final UUID mVendorUuid;
+        private final int mVersion;
         @NonNull
-        public final byte[] data;
+        private final byte[] mData;
 
         /** @hide */
         public SoundModel(@NonNull UUID uuid, @Nullable UUID vendorUuid, @SoundModelType int type,
                 @Nullable byte[] data, int version) {
-            this.uuid = requireNonNull(uuid);
-            this.vendorUuid = vendorUuid != null ? vendorUuid : new UUID(0, 0);
-            this.type = type;
-            this.version = version;
-            this.data = data != null ? data : new byte[0];
+            this.mUuid = requireNonNull(uuid);
+            this.mVendorUuid = vendorUuid != null ? vendorUuid : new UUID(0, 0);
+            this.mType = type;
+            this.mVersion = version;
+            this.mData = data != null ? data : new byte[0];
+        }
+
+        /** Unique sound model identifier */
+        @NonNull
+        public UUID getUuid() {
+            return mUuid;
+        }
+
+        /** Sound model type (e.g. TYPE_KEYPHRASE); */
+        @SoundModelType
+        public int getType() {
+            return mType;
+        }
+
+        /** Unique sound model vendor identifier */
+        @NonNull
+        public UUID getVendorUuid() {
+            return mVendorUuid;
+        }
+
+        /** vendor specific version number of the model */
+        public int getVersion() {
+            return mVersion;
+        }
+
+        /** Opaque data. For use by vendor implementation and enrollment application */
+        @NonNull
+        public byte[] getData() {
+            return mData;
         }
 
         @Override
         public int hashCode() {
             final int prime = 31;
             int result = 1;
-            result = prime * result + version;
-            result = prime * result + Arrays.hashCode(data);
-            result = prime * result + type;
-            result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());
-            result = prime * result + ((vendorUuid == null) ? 0 : vendorUuid.hashCode());
+            result = prime * result + getVersion();
+            result = prime * result + Arrays.hashCode(getData());
+            result = prime * result + getType();
+            result = prime * result + ((getUuid() == null) ? 0 : getUuid().hashCode());
+            result = prime * result + ((getVendorUuid() == null) ? 0 : getVendorUuid().hashCode());
             return result;
         }
 
@@ -358,27 +434,27 @@
                 return false;
             }
             SoundModel other = (SoundModel) obj;
-            if (type != other.type) {
+            if (getType() != other.getType()) {
                 return false;
             }
-            if (uuid == null) {
-                if (other.uuid != null) {
+            if (getUuid() == null) {
+                if (other.getUuid() != null) {
                     return false;
                 }
-            } else if (!uuid.equals(other.uuid)) {
+            } else if (!getUuid().equals(other.getUuid())) {
                 return false;
             }
-            if (vendorUuid == null) {
-                if (other.vendorUuid != null) {
+            if (getVendorUuid() == null) {
+                if (other.getVendorUuid() != null) {
                     return false;
                 }
-            } else if (!vendorUuid.equals(other.vendorUuid)) {
+            } else if (!getVendorUuid().equals(other.getVendorUuid())) {
                 return false;
             }
-            if (!Arrays.equals(data, other.data)) {
+            if (!Arrays.equals(getData(), other.getData())) {
                 return false;
             }
-            if (version != other.version) {
+            if (getVersion() != other.getVersion()) {
                 return false;
             }
             return true;
@@ -390,34 +466,16 @@
      * {@link KeyphraseSoundModel}
      */
     public static final class Keyphrase implements Parcelable {
-        /** Unique identifier for this keyphrase */
-        public final int id;
 
-        /**
-         * Recognition modes supported for this key phrase in the model
-         *
-         * @see #RECOGNITION_MODE_VOICE_TRIGGER
-         * @see #RECOGNITION_MODE_USER_IDENTIFICATION
-         * @see #RECOGNITION_MODE_USER_AUTHENTICATION
-         * @see #RECOGNITION_MODE_GENERIC
-         */
+        private final int mId;
         @RecognitionModes
-        public final int recognitionModes;
-
-        /** Locale of the keyphrase. */
+        private final int mRecognitionModes;
         @NonNull
-        public final Locale locale;
-
-        /** Key phrase text */
+        private final Locale mLocale;
         @NonNull
-        public final String text;
-
-        /**
-         * Users this key phrase has been trained for. countains sound trigger specific user IDs
-         * derived from system user IDs {@link android.os.UserHandle#getIdentifier()}.
-         */
+        private final String mText;
         @NonNull
-        public final int[] users;
+        private final int[] mUsers;
 
         /**
          * Constructor for Keyphrase describes a key phrase that can be detected by a
@@ -432,11 +490,50 @@
          */
         public Keyphrase(int id, @RecognitionModes int recognitionModes, @NonNull Locale locale,
                 @NonNull String text, @Nullable int[] users) {
-            this.id = id;
-            this.recognitionModes = recognitionModes;
-            this.locale = requireNonNull(locale);
-            this.text = requireNonNull(text);
-            this.users = users != null ? users : new int[0];
+            this.mId = id;
+            this.mRecognitionModes = recognitionModes;
+            this.mLocale = requireNonNull(locale);
+            this.mText = requireNonNull(text);
+            this.mUsers = users != null ? users : new int[0];
+        }
+
+        /** Unique identifier for this keyphrase */
+        public int getId() {
+            return mId;
+        }
+
+        /**
+         * Recognition modes supported for this key phrase in the model
+         *
+         * @see #RECOGNITION_MODE_VOICE_TRIGGER
+         * @see #RECOGNITION_MODE_USER_IDENTIFICATION
+         * @see #RECOGNITION_MODE_USER_AUTHENTICATION
+         * @see #RECOGNITION_MODE_GENERIC
+         */
+        @RecognitionModes
+        public int getRecognitionModes() {
+            return mRecognitionModes;
+        }
+
+        /** Locale of the keyphrase. */
+        @NonNull
+        public Locale getLocale() {
+            return mLocale;
+        }
+
+        /** Key phrase text */
+        @NonNull
+        public String getText() {
+            return mText;
+        }
+
+        /**
+         * Users this key phrase has been trained for. countains sound trigger specific user IDs
+         * derived from system user IDs {@link android.os.UserHandle#getIdentifier()}.
+         */
+        @NonNull
+        public int[] getUsers() {
+            return mUsers;
         }
 
         public static final @NonNull Parcelable.Creator<Keyphrase> CREATOR =
@@ -472,13 +569,13 @@
 
         @Override
         public void writeToParcel(@NonNull Parcel dest, int flags) {
-            dest.writeInt(id);
-            dest.writeInt(recognitionModes);
-            dest.writeString(locale.toLanguageTag());
-            dest.writeString(text);
-            if (users != null) {
-                dest.writeInt(users.length);
-                dest.writeIntArray(users);
+            dest.writeInt(getId());
+            dest.writeInt(getRecognitionModes());
+            dest.writeString(getLocale().toLanguageTag());
+            dest.writeString(getText());
+            if (getUsers() != null) {
+                dest.writeInt(getUsers().length);
+                dest.writeIntArray(getUsers());
             } else {
                 dest.writeInt(-1);
             }
@@ -494,11 +591,11 @@
         public int hashCode() {
             final int prime = 31;
             int result = 1;
-            result = prime * result + ((text == null) ? 0 : text.hashCode());
-            result = prime * result + id;
-            result = prime * result + ((locale == null) ? 0 : locale.hashCode());
-            result = prime * result + recognitionModes;
-            result = prime * result + Arrays.hashCode(users);
+            result = prime * result + ((getText() == null) ? 0 : getText().hashCode());
+            result = prime * result + getId();
+            result = prime * result + ((getLocale() == null) ? 0 : getLocale().hashCode());
+            result = prime * result + getRecognitionModes();
+            result = prime * result + Arrays.hashCode(getUsers());
             return result;
         }
 
@@ -514,27 +611,27 @@
                 return false;
             }
             Keyphrase other = (Keyphrase) obj;
-            if (text == null) {
-                if (other.text != null) {
+            if (getText() == null) {
+                if (other.getText() != null) {
                     return false;
                 }
-            } else if (!text.equals(other.text)) {
+            } else if (!getText().equals(other.getText())) {
                 return false;
             }
-            if (id != other.id) {
+            if (getId() != other.getId()) {
                 return false;
             }
-            if (locale == null) {
-                if (other.locale != null) {
+            if (getLocale() == null) {
+                if (other.getLocale() != null) {
                     return false;
                 }
-            } else if (!locale.equals(other.locale)) {
+            } else if (!getLocale().equals(other.getLocale())) {
                 return false;
             }
-            if (recognitionModes != other.recognitionModes) {
+            if (getRecognitionModes() != other.getRecognitionModes()) {
                 return false;
             }
-            if (!Arrays.equals(users, other.users)) {
+            if (!Arrays.equals(getUsers(), other.getUsers())) {
                 return false;
             }
             return true;
@@ -542,9 +639,9 @@
 
         @Override
         public String toString() {
-            return "Keyphrase [id=" + id + ", recognitionModes=" + recognitionModes
-                    + ", locale=" + locale.toLanguageTag() + ", text=" + text
-                    + ", users=" + Arrays.toString(users) + "]";
+            return "Keyphrase [id=" + getId() + ", recognitionModes=" + getRecognitionModes()
+                    + ", locale=" + getLocale().toLanguageTag() + ", text=" + getText()
+                    + ", users=" + Arrays.toString(getUsers()) + "]";
         }
     }
 
@@ -554,15 +651,15 @@
      * and the list of corresponding {@link Keyphrase} descriptors.
      */
     public static final class KeyphraseSoundModel extends SoundModel implements Parcelable {
-        /** Key phrases in this sound model */
+
         @NonNull
-        public final Keyphrase[] keyphrases; // keyword phrases in model
+        private final Keyphrase[] mKeyphrases;
 
         public KeyphraseSoundModel(
                 @NonNull UUID uuid, @NonNull UUID vendorUuid, @Nullable byte[] data,
                 @Nullable Keyphrase[] keyphrases, int version) {
             super(uuid, vendorUuid, TYPE_KEYPHRASE, data, version);
-            this.keyphrases = keyphrases != null ? keyphrases : new Keyphrase[0];
+            this.mKeyphrases = keyphrases != null ? keyphrases : new Keyphrase[0];
         }
 
         public KeyphraseSoundModel(@NonNull UUID uuid, @NonNull UUID vendorUuid,
@@ -570,6 +667,12 @@
             this(uuid, vendorUuid, data, keyphrases, -1);
         }
 
+        /** Key phrases in this sound model */
+        @NonNull
+        public Keyphrase[] getKeyphrases() {
+            return mKeyphrases;
+        }
+
         public static final @NonNull Parcelable.Creator<KeyphraseSoundModel> CREATOR =
                 new Parcelable.Creator<KeyphraseSoundModel>() {
             @NonNull
@@ -608,32 +711,32 @@
 
         @Override
         public void writeToParcel(@NonNull Parcel dest, int flags) {
-            dest.writeString(uuid.toString());
-            if (vendorUuid == null) {
+            dest.writeString(getUuid().toString());
+            if (getVendorUuid() == null) {
                 dest.writeInt(-1);
             } else {
-                dest.writeInt(vendorUuid.toString().length());
-                dest.writeString(vendorUuid.toString());
+                dest.writeInt(getVendorUuid().toString().length());
+                dest.writeString(getVendorUuid().toString());
             }
-            dest.writeInt(version);
-            dest.writeBlob(data);
-            dest.writeTypedArray(keyphrases, flags);
+            dest.writeInt(getVersion());
+            dest.writeBlob(getData());
+            dest.writeTypedArray(getKeyphrases(), flags);
         }
 
         @Override
         public String toString() {
-            return "KeyphraseSoundModel [keyphrases=" + Arrays.toString(keyphrases)
-                    + ", uuid=" + uuid + ", vendorUuid=" + vendorUuid
-                    + ", type=" + type
-                    + ", data=" + (data == null ? 0 : data.length)
-                    + ", version=" + version + "]";
+            return "KeyphraseSoundModel [keyphrases=" + Arrays.toString(getKeyphrases())
+                    + ", uuid=" + getUuid() + ", vendorUuid=" + getVendorUuid()
+                    + ", type=" + getType()
+                    + ", data=" + (getData() == null ? 0 : getData().length)
+                    + ", version=" + getVersion() + "]";
         }
 
         @Override
         public int hashCode() {
             final int prime = 31;
             int result = super.hashCode();
-            result = prime * result + Arrays.hashCode(keyphrases);
+            result = prime * result + Arrays.hashCode(getKeyphrases());
             return result;
         }
 
@@ -649,7 +752,7 @@
                 return false;
             }
             KeyphraseSoundModel other = (KeyphraseSoundModel) obj;
-            if (!Arrays.equals(keyphrases, other.keyphrases)) {
+            if (!Arrays.equals(getKeyphrases(), other.getKeyphrases())) {
                 return false;
             }
             return true;
@@ -706,23 +809,23 @@
 
         @Override
         public void writeToParcel(Parcel dest, int flags) {
-            dest.writeString(uuid.toString());
-            if (vendorUuid == null) {
+            dest.writeString(getUuid().toString());
+            if (getVendorUuid() == null) {
                 dest.writeInt(-1);
             } else {
-                dest.writeInt(vendorUuid.toString().length());
-                dest.writeString(vendorUuid.toString());
+                dest.writeInt(getVendorUuid().toString().length());
+                dest.writeString(getVendorUuid().toString());
             }
-            dest.writeBlob(data);
-            dest.writeInt(version);
+            dest.writeBlob(getData());
+            dest.writeInt(getVersion());
         }
 
         @Override
         public String toString() {
-            return "GenericSoundModel [uuid=" + uuid + ", vendorUuid=" + vendorUuid
-                    + ", type=" + type
-                    + ", data=" + (data == null ? 0 : data.length)
-                    + ", version=" + version + "]";
+            return "GenericSoundModel [uuid=" + getUuid() + ", vendorUuid=" + getVendorUuid()
+                    + ", type=" + getType()
+                    + ", data=" + (getData() == null ? 0 : getData().length)
+                    + ", version=" + getVersion() + "]";
         }
     }
 
@@ -1825,7 +1928,7 @@
     /**
      * Get an interface on a hardware module to control sound models and recognition on
      * this module.
-     * @param moduleId Sound module system identifier {@link ModuleProperties#id}. mandatory.
+     * @param moduleId Sound module system identifier {@link ModuleProperties#mId}. mandatory.
      * @param listener {@link StatusListener} interface. Mandatory.
      * @param handler the Handler that will receive the callabcks. Can be null if default handler
      *                is OK.
diff --git a/core/java/android/inputmethodservice/InlineSuggestionSession.java b/core/java/android/inputmethodservice/InlineSuggestionSession.java
index c31cb4e..9b3e8c9 100644
--- a/core/java/android/inputmethodservice/InlineSuggestionSession.java
+++ b/core/java/android/inputmethodservice/InlineSuggestionSession.java
@@ -166,9 +166,14 @@
             }
             return;
         }
-
+        // The IME doesn't have information about the virtual view id for the child views in the
+        // web view, so we are only comparing the parent view id here. This means that for cases
+        // where there are two input fields in the web view, they will have the same view id
+        // (although different virtual child id), and we will not be able to distinguish them.
+        final AutofillId imeClientFieldId = mClientAutofillIdSupplier.get();
         if (!mComponentName.getPackageName().equals(mClientPackageNameSupplier.get())
-                || !fieldId.equalsIgnoreSession(mClientAutofillIdSupplier.get())) {
+                || imeClientFieldId == null
+                || fieldId.getViewId() != imeClientFieldId.getViewId()) {
             if (DEBUG) {
                 Log.d(TAG,
                         "handleOnInlineSuggestionsResponse() called on the wrong package/field "
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index 7e4d68d..782fff2 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -60,7 +60,6 @@
 import android.util.Log;
 import android.util.PrintWriterPrinter;
 import android.util.Printer;
-import android.util.Size;
 import android.view.Gravity;
 import android.view.KeyCharacterMap;
 import android.view.KeyEvent;
@@ -878,8 +877,7 @@
     }
 
     private void notifyImeHidden() {
-        setImeWindowStatus(IME_ACTIVE | IME_INVISIBLE, mBackDisposition);
-        onPreRenderedWindowVisibilityChanged(false /* setVisible */);
+        requestHideSelf(0);
     }
 
     private void removeImeSurface() {
@@ -1250,6 +1248,7 @@
                 WindowManager.LayoutParams.TYPE_INPUT_METHOD, Gravity.BOTTOM, false);
         mWindow.getWindow().getAttributes().setFitInsetsTypes(statusBars() | navigationBars());
         mWindow.getWindow().getAttributes().setFitInsetsSides(Side.all() & ~Side.BOTTOM);
+        mWindow.getWindow().getAttributes().setFitInsetsIgnoringVisibility(true);
 
         // IME layout should always be inset by navigation bar, no matter its current visibility,
         // unless automotive requests it, since automotive may hide the navigation bar.
@@ -1480,8 +1479,8 @@
      */
     public int getMaxWidth() {
         final WindowManager windowManager = getSystemService(WindowManager.class);
-        final Size windowSize = windowManager.getCurrentWindowMetrics().getSize();
-        return windowSize.getWidth();
+        final Rect windowBounds = windowManager.getCurrentWindowMetrics().getBounds();
+        return windowBounds.width();
     }
     
     /**
@@ -2284,7 +2283,11 @@
         if (mDecorViewVisible) {
             // When insets API is enabled, it is responsible for client and server side
             // visibility of IME window.
-            if (!isVisibilityAppliedUsingInsetsConsumer()) {
+            if (isVisibilityAppliedUsingInsetsConsumer()) {
+                if (mInputView != null) {
+                    mInputView.dispatchWindowVisibilityChanged(View.GONE);
+                }
+            } else {
                 mWindow.hide();
             }
             mDecorViewVisible = false;
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index 81735ac..7332ede 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -145,16 +145,6 @@
     public static final String CONNECTIVITY_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
 
     /**
-     * A temporary hack until SUPL system can get off the legacy APIS.
-     * They do too many network requests and the long list of apps listening
-     * and waking due to the CONNECTIVITY_ACTION broadcast makes it expensive.
-     * Use this broadcast intent instead for SUPL requests.
-     * @hide
-     */
-    public static final String CONNECTIVITY_ACTION_SUPL =
-            "android.net.conn.CONNECTIVITY_CHANGE_SUPL";
-
-    /**
      * The device has connected to a network that has presented a captive
      * portal, which is blocking Internet connectivity. The user was presented
      * with a notification that network sign in is required,
@@ -715,6 +705,36 @@
     @Deprecated
     public static final int TYPE_TEST = 18; // TODO: Remove this once NetworkTypes are unused.
 
+    /**
+     * @deprecated Use {@link NetworkCapabilities} instead.
+     * @hide
+     */
+    @Deprecated
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = { "TYPE_" }, value = {
+                TYPE_NONE,
+                TYPE_MOBILE,
+                TYPE_WIFI,
+                TYPE_MOBILE_MMS,
+                TYPE_MOBILE_SUPL,
+                TYPE_MOBILE_DUN,
+                TYPE_MOBILE_HIPRI,
+                TYPE_WIMAX,
+                TYPE_BLUETOOTH,
+                TYPE_DUMMY,
+                TYPE_ETHERNET,
+                TYPE_MOBILE_FOTA,
+                TYPE_MOBILE_IMS,
+                TYPE_MOBILE_CBS,
+                TYPE_WIFI_P2P,
+                TYPE_MOBILE_IA,
+                TYPE_MOBILE_EMERGENCY,
+                TYPE_PROXY,
+                TYPE_VPN,
+                TYPE_TEST
+    })
+    public @interface LegacyNetworkType {}
+
     // Deprecated constants for return values of startUsingNetworkFeature. They used to live
     // in com.android.internal.telephony.PhoneConstants until they were made inaccessible.
     private static final int DEPRECATED_PHONE_CONSTANT_APN_ALREADY_ACTIVE = 0;
@@ -1517,84 +1537,6 @@
         return null;
     }
 
-    /**
-     * Guess what the network request was trying to say so that the resulting
-     * network is accessible via the legacy (deprecated) API such as
-     * requestRouteToHost.
-     *
-     * This means we should try to be fairly precise about transport and
-     * capability but ignore things such as networkSpecifier.
-     * If the request has more than one transport or capability it doesn't
-     * match the old legacy requests (they selected only single transport/capability)
-     * so this function cannot map the request to a single legacy type and
-     * the resulting network will not be available to the legacy APIs.
-     *
-     * This code is only called from the requestNetwork API (L and above).
-     *
-     * Setting a legacy type causes CONNECTIVITY_ACTION broadcasts, which are expensive
-     * because they wake up lots of apps - see http://b/23350688 . So we currently only
-     * do this for SUPL requests, which are the only ones that we know need it. If
-     * omitting these broadcasts causes unacceptable app breakage, then for backwards
-     * compatibility we can send them:
-     *
-     * if (targetSdkVersion < Build.VERSION_CODES.M) &&        // legacy API unsupported >= M
-     *     targetSdkVersion >= Build.VERSION_CODES.LOLLIPOP))  // requestNetwork not present < L
-     *
-     * TODO - This should be removed when the legacy APIs are removed.
-     */
-    private int inferLegacyTypeForNetworkCapabilities(NetworkCapabilities netCap) {
-        if (netCap == null) {
-            return TYPE_NONE;
-        }
-
-        if (!netCap.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
-            return TYPE_NONE;
-        }
-
-        // Do this only for SUPL, until GnssLocationProvider is fixed. http://b/25876485 .
-        if (!netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_SUPL)) {
-            // NOTE: if this causes app breakage, we should not just comment out this early return;
-            // instead, we should make this early return conditional on the requesting app's target
-            // SDK version, as described in the comment above.
-            return TYPE_NONE;
-        }
-
-        String type = null;
-        int result = TYPE_NONE;
-
-        if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_CBS)) {
-            type = "enableCBS";
-            result = TYPE_MOBILE_CBS;
-        } else if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_IMS)) {
-            type = "enableIMS";
-            result = TYPE_MOBILE_IMS;
-        } else if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_FOTA)) {
-            type = "enableFOTA";
-            result = TYPE_MOBILE_FOTA;
-        } else if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_DUN)) {
-            type = "enableDUN";
-            result = TYPE_MOBILE_DUN;
-        } else if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_SUPL)) {
-            type = "enableSUPL";
-            result = TYPE_MOBILE_SUPL;
-        // back out this hack for mms as they no longer need this and it's causing
-        // device slowdowns - b/23350688 (note, supl still needs this)
-        //} else if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_MMS)) {
-        //    type = "enableMMS";
-        //    result = TYPE_MOBILE_MMS;
-        } else if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)) {
-            type = "enableHIPRI";
-            result = TYPE_MOBILE_HIPRI;
-        }
-        if (type != null) {
-            NetworkCapabilities testCap = networkCapabilitiesForFeature(TYPE_MOBILE, type);
-            if (testCap.equalsNetCapabilities(netCap) && testCap.equalsTransportTypes(netCap)) {
-                return result;
-            }
-        }
-        return TYPE_NONE;
-    }
-
     private int legacyTypeForNetworkCapabilities(NetworkCapabilities netCap) {
         if (netCap == null) return TYPE_NONE;
         if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_CBS)) {
@@ -2575,13 +2517,13 @@
             }
 
             @Override
-            public void onTetheringFailed(final int resultCode) {
+            public void onTetheringFailed(final int error) {
                 callback.onTetheringFailed();
             }
         };
 
         final TetheringRequest request = new TetheringRequest.Builder(type)
-                .setSilentProvisioning(!showProvisioningUi).build();
+                .setShouldShowEntitlementUi(showProvisioningUi).build();
 
         mTetheringManager.startTethering(request, executor, tetheringCallback);
     }
@@ -2801,11 +2743,12 @@
     public static final int TETHER_ERROR_UNAVAIL_IFACE =
             TetheringManager.TETHER_ERROR_UNAVAIL_IFACE;
     /**
-     * @deprecated Use {@link TetheringManager#TETHER_ERROR_MASTER_ERROR}.
+     * @deprecated Use {@link TetheringManager#TETHER_ERROR_INTERNAL_ERROR}.
      * {@hide}
      */
     @Deprecated
-    public static final int TETHER_ERROR_MASTER_ERROR = TetheringManager.TETHER_ERROR_MASTER_ERROR;
+    public static final int TETHER_ERROR_MASTER_ERROR =
+            TetheringManager.TETHER_ERROR_INTERNAL_ERROR;
     /**
      * @deprecated Use {@link TetheringManager#TETHER_ERROR_TETHER_IFACE_ERROR}.
      * {@hide}
@@ -2821,19 +2764,19 @@
     public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR =
             TetheringManager.TETHER_ERROR_UNTETHER_IFACE_ERROR;
     /**
-     * @deprecated Use {@link TetheringManager#TETHER_ERROR_ENABLE_NAT_ERROR}.
+     * @deprecated Use {@link TetheringManager#TETHER_ERROR_ENABLE_FORWARDING_ERROR}.
      * {@hide}
      */
     @Deprecated
     public static final int TETHER_ERROR_ENABLE_NAT_ERROR =
-            TetheringManager.TETHER_ERROR_ENABLE_NAT_ERROR;
+            TetheringManager.TETHER_ERROR_ENABLE_FORWARDING_ERROR;
     /**
-     * @deprecated Use {@link TetheringManager#TETHER_ERROR_DISABLE_NAT_ERROR}.
+     * @deprecated Use {@link TetheringManager#TETHER_ERROR_DISABLE_FORWARDING_ERROR}.
      * {@hide}
      */
     @Deprecated
     public static final int TETHER_ERROR_DISABLE_NAT_ERROR =
-            TetheringManager.TETHER_ERROR_DISABLE_NAT_ERROR;
+            TetheringManager.TETHER_ERROR_DISABLE_FORWARDING_ERROR;
     /**
      * @deprecated Use {@link TetheringManager#TETHER_ERROR_IFACE_CFG_ERROR}.
      * {@hide}
@@ -2842,13 +2785,13 @@
     public static final int TETHER_ERROR_IFACE_CFG_ERROR =
             TetheringManager.TETHER_ERROR_IFACE_CFG_ERROR;
     /**
-     * @deprecated Use {@link TetheringManager#TETHER_ERROR_PROVISION_FAILED}.
+     * @deprecated Use {@link TetheringManager#TETHER_ERROR_PROVISIONING_FAILED}.
      * {@hide}
      */
     @SystemApi
     @Deprecated
     public static final int TETHER_ERROR_PROVISION_FAILED =
-            TetheringManager.TETHER_ERROR_PROVISION_FAILED;
+            TetheringManager.TETHER_ERROR_PROVISIONING_FAILED;
     /**
      * @deprecated Use {@link TetheringManager#TETHER_ERROR_DHCPSERVER_ERROR}.
      * {@hide}
@@ -2880,7 +2823,14 @@
     @UnsupportedAppUsage
     @Deprecated
     public int getLastTetherError(String iface) {
-        return mTetheringManager.getLastTetherError(iface);
+        int error = mTetheringManager.getLastTetherError(iface);
+        if (error == TetheringManager.TETHER_ERROR_UNKNOWN_TYPE) {
+            // TETHER_ERROR_UNKNOWN_TYPE was introduced with TetheringManager and has never been
+            // returned by ConnectivityManager. Convert it to the legacy TETHER_ERROR_UNKNOWN_IFACE
+            // instead.
+            error = TetheringManager.TETHER_ERROR_UNKNOWN_IFACE;
+        }
+        return error;
     }
 
     /** @hide */
@@ -3773,29 +3723,29 @@
     /**
      * Helper function to request a network with a particular legacy type.
      *
-     * @deprecated This is temporarily public for tethering to backwards compatibility that uses
-     * the NetworkRequest API to request networks with legacy type and relies on
-     * CONNECTIVITY_ACTION broadcasts instead of NetworkCallbacks. New caller should use
+     * This API is only for use in internal system code that requests networks with legacy type and
+     * relies on CONNECTIVITY_ACTION broadcasts instead of NetworkCallbacks. New caller should use
      * {@link #requestNetwork(NetworkRequest, NetworkCallback, Handler)} instead.
      *
-     * TODO: update said system code to rely on NetworkCallbacks and make this method private.
-
      * @param request {@link NetworkRequest} describing this request.
-     * @param networkCallback The {@link NetworkCallback} to be utilized for this request. Note
-     *                        the callback must not be shared - it uniquely specifies this request.
      * @param timeoutMs The time in milliseconds to attempt looking for a suitable network
      *                  before {@link NetworkCallback#onUnavailable()} is called. The timeout must
      *                  be a positive value (i.e. >0).
      * @param legacyType to specify the network type(#TYPE_*).
      * @param handler {@link Handler} to specify the thread upon which the callback will be invoked.
+     * @param networkCallback The {@link NetworkCallback} to be utilized for this request. Note
+     *                        the callback must not be shared - it uniquely specifies this request.
      *
      * @hide
      */
     @SystemApi
-    @Deprecated
+    @RequiresPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK)
     public void requestNetwork(@NonNull NetworkRequest request,
-            @NonNull NetworkCallback networkCallback, int timeoutMs, int legacyType,
-            @NonNull Handler handler) {
+            int timeoutMs, int legacyType, @NonNull Handler handler,
+            @NonNull NetworkCallback networkCallback) {
+        if (legacyType == TYPE_NONE) {
+            throw new IllegalArgumentException("TYPE_NONE is meaningless legacy type");
+        }
         CallbackHandler cbHandler = new CallbackHandler(handler);
         NetworkCapabilities nc = request.networkCapabilities;
         sendRequestForNetwork(nc, networkCallback, timeoutMs, REQUEST, legacyType, cbHandler);
@@ -3893,9 +3843,9 @@
      */
     public void requestNetwork(@NonNull NetworkRequest request,
             @NonNull NetworkCallback networkCallback, @NonNull Handler handler) {
-        int legacyType = inferLegacyTypeForNetworkCapabilities(request.networkCapabilities);
         CallbackHandler cbHandler = new CallbackHandler(handler);
-        requestNetwork(request, networkCallback, 0, legacyType, cbHandler);
+        NetworkCapabilities nc = request.networkCapabilities;
+        sendRequestForNetwork(nc, networkCallback, 0, REQUEST, TYPE_NONE, cbHandler);
     }
 
     /**
@@ -3928,8 +3878,9 @@
     public void requestNetwork(@NonNull NetworkRequest request,
             @NonNull NetworkCallback networkCallback, int timeoutMs) {
         checkTimeout(timeoutMs);
-        int legacyType = inferLegacyTypeForNetworkCapabilities(request.networkCapabilities);
-        requestNetwork(request, networkCallback, timeoutMs, legacyType, getDefaultHandler());
+        NetworkCapabilities nc = request.networkCapabilities;
+        sendRequestForNetwork(nc, networkCallback, timeoutMs, REQUEST, TYPE_NONE,
+                getDefaultHandler());
     }
 
     /**
@@ -3954,9 +3905,9 @@
     public void requestNetwork(@NonNull NetworkRequest request,
             @NonNull NetworkCallback networkCallback, @NonNull Handler handler, int timeoutMs) {
         checkTimeout(timeoutMs);
-        int legacyType = inferLegacyTypeForNetworkCapabilities(request.networkCapabilities);
         CallbackHandler cbHandler = new CallbackHandler(handler);
-        requestNetwork(request, networkCallback, timeoutMs, legacyType, cbHandler);
+        NetworkCapabilities nc = request.networkCapabilities;
+        sendRequestForNetwork(nc, networkCallback, timeoutMs, REQUEST, TYPE_NONE, cbHandler);
     }
 
     /**
diff --git a/core/java/android/net/EthernetManager.java b/core/java/android/net/EthernetManager.java
index 83b5f63..d975017 100644
--- a/core/java/android/net/EthernetManager.java
+++ b/core/java/android/net/EthernetManager.java
@@ -200,6 +200,21 @@
     }
 
     /**
+     * Whether to treat interfaces created by {@link TestNetworkManager#createTapInterface}
+     * as Ethernet interfaces. The effects of this method apply to any test interfaces that are
+     * already present on the system.
+     * @hide
+     */
+    @TestApi
+    public void setIncludeTestInterfaces(boolean include) {
+        try {
+            mService.setIncludeTestInterfaces(include);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
      * A request for a tethered interface.
      */
     public static class TetheredInterfaceRequest {
diff --git a/core/java/android/net/IEthernetManager.aidl b/core/java/android/net/IEthernetManager.aidl
index ccc6e35..e058e5a 100644
--- a/core/java/android/net/IEthernetManager.aidl
+++ b/core/java/android/net/IEthernetManager.aidl
@@ -33,6 +33,7 @@
     boolean isAvailable(String iface);
     void addListener(in IEthernetServiceListener listener);
     void removeListener(in IEthernetServiceListener listener);
+    void setIncludeTestInterfaces(boolean include);
     void requestTetheredInterface(in ITetheredInterfaceCallback callback);
     void releaseTetheredInterface(in ITetheredInterfaceCallback callback);
 }
diff --git a/core/java/android/net/InvalidPacketException.java b/core/java/android/net/InvalidPacketException.java
index 909998d..1873d77 100644
--- a/core/java/android/net/InvalidPacketException.java
+++ b/core/java/android/net/InvalidPacketException.java
@@ -27,8 +27,8 @@
  * @hide
  */
 @SystemApi
-public class InvalidPacketException extends Exception {
-    public final int error;
+public final class InvalidPacketException extends Exception {
+    private final int mError;
 
     // Must match SocketKeepalive#ERROR_INVALID_IP_ADDRESS.
     /** Invalid IP address. */
@@ -56,6 +56,11 @@
      * See the error code for details.
      */
     public InvalidPacketException(@ErrorCode final int error) {
-        this.error = error;
+        this.mError = error;
+    }
+
+    /** Get error code. */
+    public int getError() {
+        return mError;
     }
 }
diff --git a/core/java/android/net/KeepalivePacketData.java b/core/java/android/net/KeepalivePacketData.java
index 6c0ba2f..e21cb44 100644
--- a/core/java/android/net/KeepalivePacketData.java
+++ b/core/java/android/net/KeepalivePacketData.java
@@ -19,6 +19,7 @@
 import static android.net.InvalidPacketException.ERROR_INVALID_IP_ADDRESS;
 import static android.net.InvalidPacketException.ERROR_INVALID_PORT;
 
+import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
 import android.net.util.IpUtils;
@@ -37,17 +38,17 @@
 
     /** Source IP address */
     @NonNull
-    public final InetAddress srcAddress;
+    private final InetAddress mSrcAddress;
 
     /** Destination IP address */
     @NonNull
-    public final InetAddress dstAddress;
+    private final InetAddress mDstAddress;
 
     /** Source port */
-    public final int srcPort;
+    private final int mSrcPort;
 
     /** Destination port */
-    public final int dstPort;
+    private final int mDstPort;
 
     /** Packet data. A raw byte string of packet data, not including the link-layer header. */
     private final byte[] mPacket;
@@ -60,13 +61,14 @@
     /**
      * A holding class for data necessary to build a keepalive packet.
      */
-    protected KeepalivePacketData(@NonNull InetAddress srcAddress, int srcPort,
-            @NonNull InetAddress dstAddress, int dstPort,
-                    @NonNull byte[] data) throws InvalidPacketException {
-        this.srcAddress = srcAddress;
-        this.dstAddress = dstAddress;
-        this.srcPort = srcPort;
-        this.dstPort = dstPort;
+    protected KeepalivePacketData(@NonNull InetAddress srcAddress,
+            @IntRange(from = 0, to = 65535) int srcPort, @NonNull InetAddress dstAddress,
+            @IntRange(from = 0, to = 65535) int dstPort,
+            @NonNull byte[] data) throws InvalidPacketException {
+        this.mSrcAddress = srcAddress;
+        this.mDstAddress = dstAddress;
+        this.mSrcPort = srcPort;
+        this.mDstPort = dstPort;
         this.mPacket = data;
 
         // Check we have two IP addresses of the same family.
@@ -83,6 +85,31 @@
         }
     }
 
+    /** Get source IP address. */
+    @NonNull
+    public InetAddress getSrcAddress() {
+        return mSrcAddress;
+    }
+
+    /** Get destination IP address. */
+    @NonNull
+    public InetAddress getDstAddress() {
+        return mDstAddress;
+    }
+
+    /** Get source port number. */
+    public int getSrcPort() {
+        return mSrcPort;
+    }
+
+    /** Get destination port number. */
+    public int getDstPort() {
+        return mDstPort;
+    }
+
+    /**
+     * Returns a byte array of the given packet data.
+     */
     @NonNull
     public byte[] getPacket() {
         return mPacket.clone();
diff --git a/core/java/android/net/LinkProperties.java b/core/java/android/net/LinkProperties.java
index 732ceb5..7ff954b 100644
--- a/core/java/android/net/LinkProperties.java
+++ b/core/java/android/net/LinkProperties.java
@@ -167,7 +167,19 @@
         this(source, false /* parcelSensitiveFields */);
     }
 
-    private LinkProperties(@Nullable LinkProperties source, boolean parcelSensitiveFields) {
+    /**
+     * Create a copy of a {@link LinkProperties} that may preserve fields that were set
+     * based on the permissions of the process that originally received it.
+     *
+     * <p>By default {@link LinkProperties} does not preserve such fields during parceling, as
+     * they should not be shared outside of the process that receives them without appropriate
+     * checks.
+     * @param parcelSensitiveFields Whether the sensitive fields should be kept when parceling
+     * @hide
+     */
+    @SystemApi
+    @TestApi
+    public LinkProperties(@Nullable LinkProperties source, boolean parcelSensitiveFields) {
         mParcelSensitiveFields = parcelSensitiveFields;
         if (source == null) return;
         mIfaceName = source.mIfaceName;
@@ -674,17 +686,29 @@
             route.getDestination(),
             route.getGateway(),
             mIfaceName,
-            route.getType());
+            route.getType(),
+            route.getMtu());
+    }
+
+    private int findRouteIndexByRouteKey(RouteInfo route) {
+        for (int i = 0; i < mRoutes.size(); i++) {
+            if (mRoutes.get(i).getRouteKey().equals(route.getRouteKey())) {
+                return i;
+            }
+        }
+        return -1;
     }
 
     /**
-     * Adds a {@link RouteInfo} to this {@code LinkProperties}, if not present. If the
-     * {@link RouteInfo} had an interface name set and that differs from the interface set for this
-     * {@code LinkProperties} an {@link IllegalArgumentException} will be thrown.  The proper
-     * course is to add either un-named or properly named {@link RouteInfo}.
+     * Adds a {@link RouteInfo} to this {@code LinkProperties}, if a {@link RouteInfo}
+     * with the same {@link RouteInfo.RouteKey} with different properties
+     * (e.g., different MTU), it will be updated. If the {@link RouteInfo} had an
+     * interface name set and that differs from the interface set for this
+     * {@code LinkProperties} an {@link IllegalArgumentException} will be thrown.
+     * The proper course is to add either un-named or properly named {@link RouteInfo}.
      *
      * @param route A {@link RouteInfo} to add to this object.
-     * @return {@code false} if the route was already present, {@code true} if it was added.
+     * @return {@code true} was added or updated, false otherwise.
      */
     public boolean addRoute(@NonNull RouteInfo route) {
         String routeIface = route.getInterface();
@@ -694,11 +718,20 @@
                             + " vs. " + mIfaceName);
         }
         route = routeWithInterface(route);
-        if (!mRoutes.contains(route)) {
+
+        int i = findRouteIndexByRouteKey(route);
+        if (i == -1) {
+            // Route was not present. Add it.
             mRoutes.add(route);
             return true;
+        } else if (mRoutes.get(i).equals(route)) {
+            // Route was present and has same properties. Do nothing.
+            return false;
+        } else {
+            // Route was present and has different properties. Update it.
+            mRoutes.set(i, route);
+            return true;
         }
-        return false;
     }
 
     /**
@@ -706,6 +739,7 @@
      * specify an interface and the interface must match the interface of this
      * {@code LinkProperties}, or it will not be removed.
      *
+     * @param route A {@link RouteInfo} specifying the route to remove.
      * @return {@code true} if the route was removed, {@code false} if it was not present.
      *
      * @hide
@@ -1561,22 +1595,6 @@
     }
 
     /**
-     * Create a copy of this {@link LinkProperties} that will preserve fields that were set
-     * based on the permissions of the process that received this {@link LinkProperties}.
-     *
-     * <p>By default {@link LinkProperties} does not preserve such fields during parceling, as
-     * they should not be shared outside of the process that receives them without appropriate
-     * checks.
-     * @hide
-     */
-    @SystemApi
-    @TestApi
-    @NonNull
-    public LinkProperties makeSensitiveFieldsParcelingCopy() {
-        return new LinkProperties(this, true /* parcelSensitiveFields */);
-    }
-
-    /**
      * Compares this {@code LinkProperties} instance against the target
      * LinkProperties in {@code obj}. Two LinkPropertieses are equal if
      * all their fields are equal in values.
diff --git a/core/java/android/net/NattKeepalivePacketData.java b/core/java/android/net/NattKeepalivePacketData.java
index 29da495..22288b6 100644
--- a/core/java/android/net/NattKeepalivePacketData.java
+++ b/core/java/android/net/NattKeepalivePacketData.java
@@ -94,10 +94,10 @@
 
     /** Write to parcel */
     public void writeToParcel(@NonNull Parcel out, int flags) {
-        out.writeString(srcAddress.getHostAddress());
-        out.writeString(dstAddress.getHostAddress());
-        out.writeInt(srcPort);
-        out.writeInt(dstPort);
+        out.writeString(getSrcAddress().getHostAddress());
+        out.writeString(getDstAddress().getHostAddress());
+        out.writeInt(getSrcPort());
+        out.writeInt(getDstPort());
     }
 
     /** Parcelable Creator */
@@ -115,7 +115,7 @@
                                     dstAddress, dstPort);
                     } catch (InvalidPacketException e) {
                         throw new IllegalArgumentException(
-                                "Invalid NAT-T keepalive data: " + e.error);
+                                "Invalid NAT-T keepalive data: " + e.getError());
                     }
                 }
 
@@ -128,14 +128,16 @@
     public boolean equals(@Nullable final Object o) {
         if (!(o instanceof NattKeepalivePacketData)) return false;
         final NattKeepalivePacketData other = (NattKeepalivePacketData) o;
-        return this.srcAddress.equals(other.srcAddress)
-            && this.dstAddress.equals(other.dstAddress)
-            && this.srcPort == other.srcPort
-            && this.dstPort == other.dstPort;
+        final InetAddress srcAddress = getSrcAddress();
+        final InetAddress dstAddress = getDstAddress();
+        return srcAddress.equals(other.getSrcAddress())
+            && dstAddress.equals(other.getDstAddress())
+            && getSrcPort() == other.getSrcPort()
+            && getDstPort() == other.getDstPort();
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(srcAddress, dstAddress, srcPort, dstPort);
+        return Objects.hash(getSrcAddress(), getDstAddress(), getSrcPort(), getDstPort());
     }
 }
diff --git a/core/java/android/net/Network.java b/core/java/android/net/Network.java
index 6f5471b..f807a49 100644
--- a/core/java/android/net/Network.java
+++ b/core/java/android/net/Network.java
@@ -64,7 +64,7 @@
      * The unique id of the network.
      * @hide
      */
-    @SystemApi
+    @UnsupportedAppUsage
     public final int netId;
 
     // Objects used to perform per-network operations such as getSocketFactory
@@ -170,6 +170,17 @@
     }
 
     /**
+     * Get the unique id of the network.
+     *
+     * @hide
+     */
+    @TestApi
+    @SystemApi
+    public int getNetId() {
+        return netId;
+    }
+
+    /**
      * Returns a netid marked with the Private DNS bypass flag.
      *
      * This flag must be kept in sync with the NETID_USE_LOCAL_NAMESERVERS flag
diff --git a/core/java/android/net/NetworkAgent.java b/core/java/android/net/NetworkAgent.java
index 5c754a1..fe90a84 100644
--- a/core/java/android/net/NetworkAgent.java
+++ b/core/java/android/net/NetworkAgent.java
@@ -16,6 +16,8 @@
 
 package android.net;
 
+import android.annotation.IntDef;
+import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
@@ -32,18 +34,53 @@
 import com.android.internal.util.AsyncChannel;
 import com.android.internal.util.Protocol;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Objects;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
- * A Utility class for handling for communicating between bearer-specific
+ * A utility class for handling for communicating between bearer-specific
  * code and ConnectivityService.
  *
+ * An agent manages the life cycle of a network. A network starts its
+ * life cycle when {@link register} is called on NetworkAgent. The network
+ * is then connecting. When full L3 connectivity has been established,
+ * the agent shoud call {@link markConnected} to inform the system that
+ * this network is ready to use. When the network disconnects its life
+ * ends and the agent should call {@link unregister}, at which point the
+ * system will clean up and free resources.
+ * Any reconnection becomes a new logical network, so after a network
+ * is disconnected the agent cannot be used any more. Network providers
+ * should create a new NetworkAgent instance to handle new connections.
+ *
  * A bearer may have more than one NetworkAgent if it can simultaneously
  * support separate networks (IMS / Internet / MMS Apns on cellular, or
  * perhaps connections with different SSID or P2P for Wi-Fi).
  *
+ * This class supports methods to start and stop sending keepalive packets.
+ * Keepalive packets are typically sent at periodic intervals over a network
+ * with NAT when there is no other traffic to avoid the network forcefully
+ * closing the connection. NetworkAgents that manage technologies that
+ * have hardware support for keepalive should implement the related
+ * methods to save battery life. NetworkAgent that cannot get support
+ * without waking up the CPU should not, as this would be prohibitive in
+ * terms of battery - these agents should simply not override the related
+ * methods, which results in the implementation returning
+ * {@link SocketKeepalive.ERROR_UNSUPPORTED} as appropriate.
+ *
+ * Keepalive packets need to be sent at relatively frequent intervals
+ * (a few seconds to a few minutes). As the contents of keepalive packets
+ * depend on the current network status, hardware needs to be configured
+ * to send them and has a limited amount of memory to do so. The HAL
+ * formalizes this as slots that an implementation can configure to send
+ * the correct packets. Devices typically have a small number of slots
+ * per radio technology, and the specific number of slots for each
+ * technology is specified in configuration files.
+ * {@see SocketKeepalive} for details.
+ *
  * @hide
  */
 @SystemApi
@@ -65,7 +102,7 @@
     private final String LOG_TAG;
     private static final boolean DBG = true;
     private static final boolean VDBG = false;
-    private final ArrayList<Message>mPreConnectedQueue = new ArrayList<Message>();
+    private final ArrayList<Message> mPreConnectedQueue = new ArrayList<Message>();
     private volatile long mLastBwRefreshTime = 0;
     private static final long BW_REFRESH_MIN_WIN_MS = 500;
     private boolean mBandwidthUpdateScheduled = false;
@@ -74,6 +111,8 @@
     // into the internal API of ConnectivityService.
     @NonNull
     private NetworkInfo mNetworkInfo;
+    @NonNull
+    private final Object mRegisterLock = new Object();
 
     /**
      * The ID of the {@link NetworkProvider} that created this object, or
@@ -158,6 +197,14 @@
      */
     public static final int VALIDATION_STATUS_NOT_VALID = 2;
 
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = { "VALIDATION_STATUS_" }, value = {
+            VALIDATION_STATUS_VALID,
+            VALIDATION_STATUS_NOT_VALID
+    })
+    public @interface ValidationStatus {}
+
     // TODO: remove.
     /** @hide */
     public static final int VALID_NETWORK = 1;
@@ -202,7 +249,7 @@
      * Sent by ConnectivityService to the NetworkAgent to request that the specified packet be sent
      * periodically on the given interval.
      *
-     *   arg1 = the slot number of the keepalive to start
+     *   arg1 = the hardware slot number of the keepalive to start
      *   arg2 = interval in seconds
      *   obj = KeepalivePacketData object describing the data to be sent
      *
@@ -214,7 +261,7 @@
     /**
      * Requests that the specified keepalive packet be stopped.
      *
-     * arg1 = slot number of the keepalive to stop.
+     * arg1 = hardware slot number of the keepalive to stop.
      *
      * Also used internally by ConnectivityService / KeepaliveTracker, with different semantics.
      * @hide
@@ -229,7 +276,7 @@
      * This is also sent by KeepaliveTracker to the app's {@link SocketKeepalive},
      * so that the app's {@link SocketKeepalive.Callback} methods can be called.
      *
-     * arg1 = slot number of the keepalive
+     * arg1 = hardware slot number of the keepalive
      * arg2 = error code
      * @hide
      */
@@ -259,7 +306,7 @@
      * remote site will send ACK packets in response to the keepalive packets, the firmware also
      * needs to be configured to properly filter the ACKs to prevent the system from waking up.
      * This does not happen with UDP, so this message is TCP-specific.
-     * arg1 = slot number of the keepalive to filter for.
+     * arg1 = hardware slot number of the keepalive to filter for.
      * obj = the keepalive packet to send repeatedly.
      * @hide
      */
@@ -268,7 +315,7 @@
     /**
      * Sent by the KeepaliveTracker to NetworkAgent to remove a packet filter. See
      * {@link #CMD_ADD_KEEPALIVE_PACKET_FILTER}.
-     * arg1 = slot number of the keepalive packet filter to remove.
+     * arg1 = hardware slot number of the keepalive packet filter to remove.
      * @hide
      */
     public static final int CMD_REMOVE_KEEPALIVE_PACKET_FILTER = BASE + 17;
@@ -441,7 +488,15 @@
                                 + (msg.arg1 == VALID_NETWORK ? "VALID, " : "INVALID, ")
                                 + redirectUrl);
                     }
-                    onValidationStatus(msg.arg1 /* status */, redirectUrl);
+                    Uri uri = null;
+                    try {
+                        if (null != redirectUrl) {
+                            uri = Uri.parse(redirectUrl);
+                        }
+                    } catch (Exception e) {
+                        Log.wtf(LOG_TAG, "Surprising URI : " + redirectUrl, e);
+                    }
+                    onValidationStatus(msg.arg1 /* status */, uri);
                     break;
                 }
                 case CMD_SAVE_ACCEPT_UNVALIDATED: {
@@ -449,7 +504,8 @@
                     break;
                 }
                 case CMD_START_SOCKET_KEEPALIVE: {
-                    onStartSocketKeepalive(msg.arg1 /* slot */, msg.arg2 /* interval */,
+                    onStartSocketKeepalive(msg.arg1 /* slot */,
+                            Duration.ofSeconds(msg.arg2) /* interval */,
                             (KeepalivePacketData) msg.obj /* packet */);
                     break;
                 }
@@ -489,19 +545,29 @@
 
     /**
      * Register this network agent with ConnectivityService.
+     *
+     * This method can only be called once per network agent.
+     *
      * @return the Network associated with this network agent (which can also be obtained later
      *         by calling getNetwork() on this agent).
+     * @throws IllegalStateException thrown by the system server if this network agent is
+     *         already registered.
      */
     @NonNull
     public Network register() {
         if (VDBG) log("Registering NetworkAgent");
         final ConnectivityManager cm = (ConnectivityManager) mInitialConfiguration.context
                 .getSystemService(Context.CONNECTIVITY_SERVICE);
-        mNetwork = cm.registerNetworkAgent(new Messenger(mHandler),
-                new NetworkInfo(mInitialConfiguration.info),
-                mInitialConfiguration.properties, mInitialConfiguration.capabilities,
-                mInitialConfiguration.score, mInitialConfiguration.config, providerId);
-        mInitialConfiguration = null; // All this memory can now be GC'd
+        synchronized (mRegisterLock) {
+            if (mNetwork != null) {
+                throw new IllegalStateException("Agent already registered");
+            }
+            mNetwork = cm.registerNetworkAgent(new Messenger(mHandler),
+                    new NetworkInfo(mInitialConfiguration.info),
+                    mInitialConfiguration.properties, mInitialConfiguration.capabilities,
+                    mInitialConfiguration.score, mInitialConfiguration.config, providerId);
+            mInitialConfiguration = null; // All this memory can now be GC'd
+        }
         return mNetwork;
     }
 
@@ -544,18 +610,19 @@
      * Must be called by the agent when the network's {@link LinkProperties} change.
      * @param linkProperties the new LinkProperties.
      */
-    public void sendLinkProperties(@NonNull LinkProperties linkProperties) {
+    public final void sendLinkProperties(@NonNull LinkProperties linkProperties) {
         Objects.requireNonNull(linkProperties);
         queueOrSendMessage(EVENT_NETWORK_PROPERTIES_CHANGED, new LinkProperties(linkProperties));
     }
 
     /**
      * Inform ConnectivityService that this agent has now connected.
+     * Call {@link #unregister} to disconnect.
      */
-    public void setConnected() {
+    public void markConnected() {
         if (mIsLegacy) {
             throw new UnsupportedOperationException(
-                    "Legacy agents can't call setConnected.");
+                    "Legacy agents can't call markConnected.");
         }
         mNetworkInfo.setDetailedState(NetworkInfo.DetailedState.CONNECTED, null, null);
         queueOrSendMessage(EVENT_NETWORK_INFO_CHANGED, mNetworkInfo);
@@ -569,8 +636,7 @@
      */
     public void unregister() {
         if (mIsLegacy) {
-            throw new UnsupportedOperationException(
-                    "Legacy agents can't call unregister.");
+            throw new UnsupportedOperationException("Legacy agents can't call unregister.");
         }
         mNetworkInfo.setDetailedState(NetworkInfo.DetailedState.DISCONNECTED, null, null);
         queueOrSendMessage(EVENT_NETWORK_INFO_CHANGED, mNetworkInfo);
@@ -626,7 +692,7 @@
      * @hide TODO: expose something better.
      */
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
-    public void sendNetworkInfo(NetworkInfo networkInfo) {
+    public final void sendNetworkInfo(NetworkInfo networkInfo) {
         if (!mIsLegacy) {
             throw new UnsupportedOperationException("Only legacy agents can call sendNetworkInfo.");
         }
@@ -637,7 +703,7 @@
      * Must be called by the agent when the network's {@link NetworkCapabilities} change.
      * @param networkCapabilities the new NetworkCapabilities.
      */
-    public void sendNetworkCapabilities(@NonNull NetworkCapabilities networkCapabilities) {
+    public final void sendNetworkCapabilities(@NonNull NetworkCapabilities networkCapabilities) {
         Objects.requireNonNull(networkCapabilities);
         mBandwidthUpdatePending.set(false);
         mLastBwRefreshTime = System.currentTimeMillis();
@@ -647,9 +713,10 @@
 
     /**
      * Must be called by the agent to update the score of this network.
-     * @param score the new score.
+     *
+     * @param score the new score, between 0 and 99.
      */
-    public void sendNetworkScore(int score) {
+    public final void sendNetworkScore(@IntRange(from = 0, to = 99) int score) {
         if (score < 0) {
             throw new IllegalArgumentException("Score must be >= 0");
         }
@@ -733,15 +800,15 @@
      * {@code VALIDATION_STATUS_VALID} if Internet connectivity was validated,
      * {@code VALIDATION_STATUS_NOT_VALID} if Internet connectivity was not validated.
      *
-     * This may be called multiple times as network status changes, or if there are multiple
-     * subsequent attempts to validate connectivity that fail.
+     * This is guaranteed to be called again when the network status changes, but the system
+     * may also call this multiple times even if the status does not change.
      *
      * @param status one of {@code VALIDATION_STATUS_VALID} or {@code VALIDATION_STATUS_NOT_VALID}.
-     * @param redirectUrl If Internet connectivity is being redirected (e.g., on a captive portal),
+     * @param redirectUri If Internet connectivity is being redirected (e.g., on a captive portal),
      *        this is the destination the probes are being redirected to, otherwise {@code null}.
      */
-    public void onValidationStatus(int status, @Nullable String redirectUrl) {
-        networkStatus(status, redirectUrl);
+    public void onValidationStatus(@ValidationStatus int status, @Nullable Uri redirectUri) {
+        networkStatus(status, redirectUri.toString());
     }
     /** @hide TODO delete once subclasses have moved to onValidationStatus */
     protected void networkStatus(int status, String redirectUrl) {
@@ -767,13 +834,25 @@
      * Requests that the network hardware send the specified packet at the specified interval.
      *
      * @param slot the hardware slot on which to start the keepalive.
-     * @param intervalSeconds the interval between packets
+     * @param interval the interval between packets, between 10 and 3600. Note that this API
+     *                 does not support sub-second precision and will round off the request.
      * @param packet the packet to send.
      */
-    public void onStartSocketKeepalive(int slot, int intervalSeconds,
+    // seconds is from SocketKeepalive.MIN_INTERVAL_SEC to MAX_INTERVAL_SEC, but these should
+    // not be exposed as constants because they may change in the future (API guideline 4.8)
+    // and should have getters if exposed at all. Getters can't be used in the annotation,
+    // so the values unfortunately need to be copied.
+    public void onStartSocketKeepalive(int slot, @NonNull Duration interval,
             @NonNull KeepalivePacketData packet) {
-        Message msg = mHandler.obtainMessage(CMD_START_SOCKET_KEEPALIVE, slot, intervalSeconds,
-                packet);
+        final long intervalSeconds = interval.getSeconds();
+        if (intervalSeconds < SocketKeepalive.MIN_INTERVAL_SEC
+                || intervalSeconds > SocketKeepalive.MAX_INTERVAL_SEC) {
+            throw new IllegalArgumentException("Interval needs to be comprised between "
+                    + SocketKeepalive.MIN_INTERVAL_SEC + " and " + SocketKeepalive.MAX_INTERVAL_SEC
+                    + " but was " + intervalSeconds);
+        }
+        final Message msg = mHandler.obtainMessage(CMD_START_SOCKET_KEEPALIVE, slot,
+                (int) intervalSeconds, packet);
         startSocketKeepalive(msg);
         msg.recycle();
     }
@@ -801,9 +880,11 @@
      * Must be called by the agent when a socket keepalive event occurs.
      *
      * @param slot the hardware slot on which the event occurred.
-     * @param event the event that occurred.
+     * @param event the event that occurred, as one of the SocketKeepalive.ERROR_*
+     *              or SocketKeepalive.SUCCESS constants.
      */
-    public void sendSocketKeepaliveEvent(int slot, int event) {
+    public final void sendSocketKeepaliveEvent(int slot,
+            @SocketKeepalive.KeepaliveEvent int event) {
         queueOrSendMessage(EVENT_SOCKET_KEEPALIVE, slot, event);
     }
     /** @hide TODO delete once callers have moved to sendSocketKeepaliveEvent */
@@ -845,9 +926,18 @@
     }
 
     /**
-     * Called by ConnectivityService to inform this network transport of signal strength thresholds
+     * Called by ConnectivityService to inform this network agent of signal strength thresholds
      * that when crossed should trigger a system wakeup and a NetworkCapabilities update.
      *
+     * When the system updates the list of thresholds that should wake up the CPU for a
+     * given agent it will call this method on the agent. The agent that implement this
+     * should implement it in hardware so as to ensure the CPU will be woken up on breach.
+     * Agents are expected to react to a breach by sending an updated NetworkCapabilities
+     * object with the appropriate signal strength to sendNetworkCapabilities.
+     *
+     * The specific units are bearer-dependent. See details on the units and requests in
+     * {@link NetworkCapabilities.Builder#setSignalStrength}.
+     *
      * @param thresholds the array of thresholds that should trigger wakeups.
      */
     public void onSignalStrengthThresholdsUpdated(@NonNull int[] thresholds) {
diff --git a/core/java/android/net/NetworkAgentConfig.java b/core/java/android/net/NetworkAgentConfig.java
index ca9328a..fee868a 100644
--- a/core/java/android/net/NetworkAgentConfig.java
+++ b/core/java/android/net/NetworkAgentConfig.java
@@ -155,6 +155,7 @@
     /**
      * @return the legacy type
      */
+    @ConnectivityManager.LegacyNetworkType
     public int getLegacyType() {
         return legacyType;
     }
@@ -206,7 +207,7 @@
     /**
      * Builder class to facilitate constructing {@link NetworkAgentConfig} objects.
      */
-    public static class Builder {
+    public static final class Builder {
         private final NetworkAgentConfig mConfig = new NetworkAgentConfig();
 
         /**
diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java
index 7d8df6a..91ef911 100644
--- a/core/java/android/net/NetworkCapabilities.java
+++ b/core/java/android/net/NetworkCapabilities.java
@@ -19,6 +19,7 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
 import android.annotation.TestApi;
 import android.compat.annotation.UnsupportedAppUsage;
@@ -32,6 +33,7 @@
 import android.util.proto.ProtoOutputStream;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.BitUtils;
 import com.android.internal.util.Preconditions;
 
@@ -86,6 +88,7 @@
     /**
      * Completely clears the contents of this object, removing even the capabilities that are set
      * by default when the object is constructed.
+     * @hide
      */
     public void clearAll() {
         mNetworkCapabilities = mTransportTypes = mUnwantedNetworkCapabilities = 0;
@@ -412,12 +415,27 @@
             | (1 << NET_CAPABILITY_PARTIAL_CONNECTIVITY);
 
     /**
+     * Capabilities that are allowed for test networks. This list must be set so that it is safe
+     * for an unprivileged user to create a network with these capabilities via shell. As such,
+     * it must never contain capabilities that are generally useful to the system, such as
+     * INTERNET, IMS, SUPL, etc.
+     */
+    private static final long TEST_NETWORKS_ALLOWED_CAPABILITIES =
+            (1 << NET_CAPABILITY_NOT_METERED)
+            | (1 << NET_CAPABILITY_NOT_RESTRICTED)
+            | (1 << NET_CAPABILITY_NOT_VPN)
+            | (1 << NET_CAPABILITY_NOT_ROAMING)
+            | (1 << NET_CAPABILITY_NOT_CONGESTED)
+            | (1 << NET_CAPABILITY_NOT_SUSPENDED);
+
+    /**
      * Adds the given capability to this {@code NetworkCapability} instance.
-     * Multiple capabilities may be applied sequentially.  Note that when searching
-     * for a network to satisfy a request, all capabilities requested must be satisfied.
+     * Note that when searching for a network to satisfy a request, all capabilities
+     * requested must be satisfied.
      *
      * @param capability the capability to be added.
      * @return This NetworkCapabilities instance, to facilitate chaining.
+     * @hide
      */
     public @NonNull NetworkCapabilities addCapability(@NetCapability int capability) {
         // If the given capability was previously added to the list of unwanted capabilities
@@ -432,9 +450,9 @@
 
     /**
      * Adds the given capability to the list of unwanted capabilities of this
-     * {@code NetworkCapability} instance.  Multiple unwanted capabilities may be applied
-     * sequentially.  Note that when searching for a network to satisfy a request, the network
-     * must not contain any capability from unwanted capability list.
+     * {@code NetworkCapability} instance. Note that when searching for a network to
+     * satisfy a request, the network must not contain any capability from unwanted capability
+     * list.
      * <p>
      * If the capability was previously added to the list of required capabilities (for
      * example, it was there by default or added using {@link #addCapability(int)} method), then
@@ -454,6 +472,7 @@
      *
      * @param capability the capability to be removed.
      * @return This NetworkCapabilities instance, to facilitate chaining.
+     * @hide
      */
     public @NonNull NetworkCapabilities removeCapability(@NetCapability int capability) {
         // Note that this method removes capabilities that were added via addCapability(int),
@@ -468,7 +487,7 @@
     /**
      * Sets (or clears) the given capability on this {@link NetworkCapabilities}
      * instance.
-     *
+     * @hide
      */
     public @NonNull NetworkCapabilities setCapability(@NetCapability int capability,
             boolean value) {
@@ -641,6 +660,21 @@
     }
 
     /**
+     * Test networks have strong restrictions on what capabilities they can have. Enforce these
+     * restrictions.
+     * @hide
+     */
+    public void restrictCapabilitesForTestNetwork() {
+        final long originalCapabilities = mNetworkCapabilities;
+        final NetworkSpecifier originalSpecifier = mNetworkSpecifier;
+        clearAll();
+        // Reset the transports to only contain TRANSPORT_TEST.
+        mTransportTypes = (1 << TRANSPORT_TEST);
+        mNetworkCapabilities = originalCapabilities & TEST_NETWORKS_ALLOWED_CAPABILITIES;
+        mNetworkSpecifier = originalSpecifier;
+    }
+
+    /**
      * Representing the transport type.  Apps should generally not care about transport.  A
      * request for a fast internet connection could be satisfied by a number of different
      * transports.  If any are specified here it will be satisfied a Network that matches
@@ -728,7 +762,7 @@
 
     /**
      * Adds the given transport type to this {@code NetworkCapability} instance.
-     * Multiple transports may be applied sequentially.  Note that when searching
+     * Multiple transports may be applied.  Note that when searching
      * for a network to satisfy a request, any listed in the request will satisfy the request.
      * For example {@code TRANSPORT_WIFI} and {@code TRANSPORT_ETHERNET} added to a
      * {@code NetworkCapabilities} would cause either a Wi-Fi network or an Ethernet network
@@ -737,6 +771,7 @@
      *
      * @param transportType the transport type to be added.
      * @return This NetworkCapabilities instance, to facilitate chaining.
+     * @hide
      */
     public @NonNull NetworkCapabilities addTransportType(@Transport int transportType) {
         checkValidTransportType(transportType);
@@ -849,6 +884,7 @@
 
     /**
      * Set the UID of the owner app.
+     * @hide
      */
     public @NonNull NetworkCapabilities setOwnerUid(final int uid) {
         mOwnerUid = uid;
@@ -866,6 +902,8 @@
      *   <li>The user's location toggle is on
      * </ol>
      *
+     * Instances of NetworkCapabilities sent to apps without the appropriate permissions will
+     * have this field cleared out.
      */
     public int getOwnerUid() {
         return mOwnerUid;
@@ -904,7 +942,6 @@
      * @hide
      */
     @NonNull
-    @SystemApi
     public NetworkCapabilities setAdministratorUids(@NonNull final int[] administratorUids) {
         mAdministratorUids = Arrays.copyOf(administratorUids, administratorUids.length);
         return this;
@@ -918,6 +955,7 @@
      */
     @NonNull
     @SystemApi
+    @TestApi
     public int[] getAdministratorUids() {
         return Arrays.copyOf(mAdministratorUids, mAdministratorUids.length);
     }
@@ -940,15 +978,10 @@
      * Sets the upstream bandwidth for this network in Kbps.  This always only refers to
      * the estimated first hop transport bandwidth.
      * <p>
-     * Note that when used to request a network, this specifies the minimum acceptable.
-     * When received as the state of an existing network this specifies the typical
-     * first hop bandwidth expected.  This is never measured, but rather is inferred
-     * from technology type and other link parameters.  It could be used to differentiate
-     * between very slow 1xRTT cellular links and other faster networks or even between
-     * 802.11b vs 802.11AC wifi technologies.  It should not be used to differentiate between
-     * fast backhauls and slow backhauls.
+     * {@see Builder#setLinkUpstreamBandwidthKbps}
      *
      * @param upKbps the estimated first hop upstream (device to network) bandwidth.
+     * @hide
      */
     public @NonNull NetworkCapabilities setLinkUpstreamBandwidthKbps(int upKbps) {
         mLinkUpBandwidthKbps = upKbps;
@@ -969,15 +1002,10 @@
      * Sets the downstream bandwidth for this network in Kbps.  This always only refers to
      * the estimated first hop transport bandwidth.
      * <p>
-     * Note that when used to request a network, this specifies the minimum acceptable.
-     * When received as the state of an existing network this specifies the typical
-     * first hop bandwidth expected.  This is never measured, but rather is inferred
-     * from technology type and other link parameters.  It could be used to differentiate
-     * between very slow 1xRTT cellular links and other faster networks or even between
-     * 802.11b vs 802.11AC wifi technologies.  It should not be used to differentiate between
-     * fast backhauls and slow backhauls.
+     * {@see Builder#setLinkUpstreamBandwidthKbps}
      *
      * @param downKbps the estimated first hop downstream (network to device) bandwidth.
+     * @hide
      */
     public @NonNull NetworkCapabilities setLinkDownstreamBandwidthKbps(int downKbps) {
         mLinkDownBandwidthKbps = downKbps;
@@ -1036,6 +1064,7 @@
      * @param networkSpecifier A concrete, parcelable framework class that extends
      *                         NetworkSpecifier.
      * @return This NetworkCapabilities instance, to facilitate chaining.
+     * @hide
      */
     public @NonNull NetworkCapabilities setNetworkSpecifier(
             @NonNull NetworkSpecifier networkSpecifier) {
@@ -1057,7 +1086,6 @@
      * @return This NetworkCapabilities instance, to facilitate chaining.
      * @hide
      */
-    @SystemApi
     public @NonNull NetworkCapabilities setTransportInfo(@NonNull TransportInfo transportInfo) {
         mTransportInfo = transportInfo;
         return this;
@@ -1067,7 +1095,7 @@
      * Gets the optional bearer specific network specifier. May be {@code null} if not set.
      *
      * @return The optional {@link NetworkSpecifier} specifying the bearer specific network
-     *         specifier or {@code null}. See {@link #setNetworkSpecifier}.
+     *         specifier or {@code null}.
      */
     public @Nullable NetworkSpecifier getNetworkSpecifier() {
         return mNetworkSpecifier;
@@ -1094,7 +1122,7 @@
     }
 
     private boolean satisfiedBySpecifier(NetworkCapabilities nc) {
-        return mNetworkSpecifier == null || mNetworkSpecifier.satisfiedBy(nc.mNetworkSpecifier)
+        return mNetworkSpecifier == null || mNetworkSpecifier.canBeSatisfiedBy(nc.mNetworkSpecifier)
                 || nc.mNetworkSpecifier instanceof MatchAllNetworkSpecifier;
     }
 
@@ -1137,6 +1165,7 @@
      * effect when requesting a callback.
      *
      * @param signalStrength the bearer-specific signal strength.
+     * @hide
      */
     public @NonNull NetworkCapabilities setSignalStrength(int signalStrength) {
         mSignalStrength = signalStrength;
@@ -1363,7 +1392,6 @@
      * Sets the SSID of this network.
      * @hide
      */
-    @SystemApi
     public @NonNull NetworkCapabilities setSSID(@Nullable String ssid) {
         mSSID = ssid;
         return this;
@@ -1374,7 +1402,8 @@
      * @hide
      */
     @SystemApi
-    public @Nullable String getSSID() {
+    @TestApi
+    public @Nullable String getSsid() {
         return mSSID;
     }
 
@@ -1854,25 +1883,32 @@
     }
 
     /**
-     * Set the uid of the app making the request.
+     * Set the UID of the app making the request.
      *
-     * Note: This works only for {@link NetworkAgent} instances. Any capabilities passed in
-     * via the public {@link ConnectivityManager} API's will have this field overwritten.
+     * For instances of NetworkCapabilities representing a request, sets the
+     * UID of the app making the request. For a network created by the system,
+     * sets the UID of the only app whose requests can match this network.
+     * This can be set to {@link Process#INVALID_UID} if there is no such app,
+     * or if this instance of NetworkCapabilities is about to be sent to a
+     * party that should not learn about this.
      *
      * @param uid UID of the app.
      * @hide
      */
-    @SystemApi
     public @NonNull NetworkCapabilities setRequestorUid(int uid) {
         mRequestorUid = uid;
         return this;
     }
 
     /**
-     * @return the uid of the app making the request.
+     * Returns the UID of the app making the request.
      *
-     * Note: This could return {@link Process#INVALID_UID} if the {@link NetworkRequest}
-     * object was not obtained from {@link ConnectivityManager}.
+     * For a NetworkRequest being made by an app, contains the app's UID. For a network
+     * created by the system, contains the UID of the only app whose requests can match
+     * this network, or {@link Process#INVALID_UID} if none or if the
+     * caller does not have permission to learn about this.
+     *
+     * @return the uid of the app making the request.
      * @hide
      */
     public int getRequestorUid() {
@@ -1882,23 +1918,29 @@
     /**
      * Set the package name of the app making the request.
      *
-     * Note: This works only for {@link NetworkAgent} instances. Any capabilities passed in
-     * via the public {@link ConnectivityManager} API's will have this field overwritten.
+     * For instances of NetworkCapabilities representing a request, sets the
+     * package name of the app making the request. For a network created by the system,
+     * sets the package name of the only app whose requests can match this network.
+     * This can be set to null if there is no such app, or if this instance of
+     * NetworkCapabilities is about to be sent to a party that should not learn about this.
      *
      * @param packageName package name of the app.
      * @hide
      */
-    @SystemApi
     public @NonNull NetworkCapabilities setRequestorPackageName(@NonNull String packageName) {
         mRequestorPackageName = packageName;
         return this;
     }
 
     /**
-     * @return the package name of the app making the request.
+     * Returns the package name of the app making the request.
      *
-     * Note: This could return {@code null} if the {@link NetworkRequest} object was not obtained
-     * from {@link ConnectivityManager}.
+     * For a NetworkRequest being made by an app, contains the app's package name. For a
+     * network created by the system, contains the package name of the only app whose
+     * requests can match this network, or null if none or if the caller does not have
+     * permission to learn about this.
+     *
+     * @return the package name of the app making the request.
      * @hide
      */
     @Nullable
@@ -1907,9 +1949,9 @@
     }
 
     /**
-     * Set the uid and package name of the app making the request.
+     * Set the uid and package name of the app causing this network to exist.
      *
-     * Note: This is intended to be only invoked from within connectivitiy service.
+     * {@see #setRequestorUid} and {@link #setRequestorPackageName}
      *
      * @param uid UID of the app.
      * @param packageName package name of the app.
@@ -1968,4 +2010,316 @@
         return mRequestorUid == nc.mRequestorUid
                 && TextUtils.equals(mRequestorPackageName, nc.mRequestorPackageName);
     }
+
+    /**
+     * Builder class for NetworkCapabilities.
+     *
+     * This class is mainly for for {@link NetworkAgent} instances to use. Many fields in
+     * the built class require holding a signature permission to use - mostly
+     * {@link android.Manifest.permission.NETWORK_FACTORY}, but refer to the specific
+     * description of each setter. As this class lives entirely in app space it does not
+     * enforce these restrictions itself but the system server clears out the relevant
+     * fields when receiving a NetworkCapabilities object from a caller without the
+     * appropriate permission.
+     *
+     * Apps don't use this builder directly. Instead, they use {@link NetworkRequest} via
+     * its builder object.
+     *
+     * @hide
+     */
+    @SystemApi
+    @TestApi
+    public static final class Builder {
+        private final NetworkCapabilities mCaps;
+
+        /**
+         * Creates a new Builder to construct NetworkCapabilities objects.
+         */
+        public Builder() {
+            mCaps = new NetworkCapabilities();
+        }
+
+        /**
+         * Creates a new Builder of NetworkCapabilities from an existing instance.
+         */
+        public Builder(@NonNull final NetworkCapabilities nc) {
+            Objects.requireNonNull(nc);
+            mCaps = new NetworkCapabilities(nc);
+        }
+
+        /**
+         * Adds the given transport type.
+         *
+         * Multiple transports may be added. Note that when searching for a network to satisfy a
+         * request, satisfying any of the transports listed in the request will satisfy the request.
+         * For example {@code TRANSPORT_WIFI} and {@code TRANSPORT_ETHERNET} added to a
+         * {@code NetworkCapabilities} would cause either a Wi-Fi network or an Ethernet network
+         * to be selected. This is logically different than
+         * {@code NetworkCapabilities.NET_CAPABILITY_*}.
+         *
+         * @param transportType the transport type to be added or removed.
+         * @return this builder
+         */
+        @NonNull
+        public Builder addTransportType(@Transport int transportType) {
+            checkValidTransportType(transportType);
+            mCaps.addTransportType(transportType);
+            return this;
+        }
+
+        /**
+         * Removes the given transport type.
+         *
+         * {@see #addTransportType}.
+         *
+         * @param transportType the transport type to be added or removed.
+         * @return this builder
+         */
+        @NonNull
+        public Builder removeTransportType(@Transport int transportType) {
+            checkValidTransportType(transportType);
+            mCaps.removeTransportType(transportType);
+            return this;
+        }
+
+        /**
+         * Adds the given capability.
+         *
+         * @param capability the capability
+         * @return this builder
+         */
+        @NonNull
+        public Builder addCapability(@NetCapability final int capability) {
+            mCaps.setCapability(capability, true);
+            return this;
+        }
+
+        /**
+         * Removes the given capability.
+         *
+         * @param capability the capability
+         * @return this builder
+         */
+        @NonNull
+        public Builder removeCapability(@NetCapability final int capability) {
+            mCaps.setCapability(capability, false);
+            return this;
+        }
+
+        /**
+         * Sets the owner UID.
+         *
+         * The default value is {@link Process#INVALID_UID}. Pass this value to reset.
+         *
+         * Note: for security the system will clear out this field when received from a
+         * non-privileged source.
+         *
+         * @param ownerUid the owner UID
+         * @return this builder
+         */
+        @NonNull
+        @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
+        public Builder setOwnerUid(final int ownerUid) {
+            mCaps.setOwnerUid(ownerUid);
+            return this;
+        }
+
+        /**
+         * Sets the list of UIDs that are administrators of this network.
+         *
+         * <p>UIDs included in administratorUids gain administrator privileges over this
+         * Network. Examples of UIDs that should be included in administratorUids are:
+         * <ul>
+         *     <li>Carrier apps with privileges for the relevant subscription
+         *     <li>Active VPN apps
+         *     <li>Other application groups with a particular Network-related role
+         * </ul>
+         *
+         * <p>In general, user-supplied networks (such as WiFi networks) do not have
+         * administrators.
+         *
+         * <p>An app is granted owner privileges over Networks that it supplies. The owner
+         * UID MUST always be included in administratorUids.
+         *
+         * The default value is the empty array. Pass an empty array to reset.
+         *
+         * Note: for security the system will clear out this field when received from a
+         * non-privileged source, such as an app using reflection to call this or
+         * mutate the member in the built object.
+         *
+         * @param administratorUids the UIDs to be set as administrators of this Network.
+         * @return this builder
+         */
+        @NonNull
+        @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
+        public Builder setAdministratorUids(@NonNull final int[] administratorUids) {
+            Objects.requireNonNull(administratorUids);
+            mCaps.setAdministratorUids(administratorUids);
+            return this;
+        }
+
+        /**
+         * Sets the upstream bandwidth of the link.
+         *
+         * Sets the upstream bandwidth for this network in Kbps. This always only refers to
+         * the estimated first hop transport bandwidth.
+         * <p>
+         * Note that when used to request a network, this specifies the minimum acceptable.
+         * When received as the state of an existing network this specifies the typical
+         * first hop bandwidth expected. This is never measured, but rather is inferred
+         * from technology type and other link parameters. It could be used to differentiate
+         * between very slow 1xRTT cellular links and other faster networks or even between
+         * 802.11b vs 802.11AC wifi technologies. It should not be used to differentiate between
+         * fast backhauls and slow backhauls.
+         *
+         * @param upKbps the estimated first hop upstream (device to network) bandwidth.
+         * @return this builder
+         */
+        @NonNull
+        public Builder setLinkUpstreamBandwidthKbps(final int upKbps) {
+            mCaps.setLinkUpstreamBandwidthKbps(upKbps);
+            return this;
+        }
+
+        /**
+         * Sets the downstream bandwidth for this network in Kbps. This always only refers to
+         * the estimated first hop transport bandwidth.
+         * <p>
+         * Note that when used to request a network, this specifies the minimum acceptable.
+         * When received as the state of an existing network this specifies the typical
+         * first hop bandwidth expected. This is never measured, but rather is inferred
+         * from technology type and other link parameters. It could be used to differentiate
+         * between very slow 1xRTT cellular links and other faster networks or even between
+         * 802.11b vs 802.11AC wifi technologies. It should not be used to differentiate between
+         * fast backhauls and slow backhauls.
+         *
+         * @param downKbps the estimated first hop downstream (network to device) bandwidth.
+         * @return this builder
+         */
+        @NonNull
+        public Builder setLinkDownstreamBandwidthKbps(final int downKbps) {
+            mCaps.setLinkDownstreamBandwidthKbps(downKbps);
+            return this;
+        }
+
+        /**
+         * Sets the optional bearer specific network specifier.
+         * This has no meaning if a single transport is also not specified, so calling
+         * this without a single transport set will generate an exception, as will
+         * subsequently adding or removing transports after this is set.
+         * </p>
+         *
+         * @param specifier a concrete, parcelable framework class that extends NetworkSpecifier,
+         *        or null to clear it.
+         * @return this builder
+         */
+        @NonNull
+        public Builder setNetworkSpecifier(@Nullable final NetworkSpecifier specifier) {
+            mCaps.setNetworkSpecifier(specifier);
+            return this;
+        }
+
+        /**
+         * Sets the optional transport specific information.
+         *
+         * @param info A concrete, parcelable framework class that extends {@link TransportInfo},
+         *             or null to clear it.
+         * @return this builder
+         */
+        @NonNull
+        public Builder setTransportInfo(@Nullable final TransportInfo info) {
+            mCaps.setTransportInfo(info);
+            return this;
+        }
+
+        /**
+         * Sets the signal strength. This is a signed integer, with higher values indicating a
+         * stronger signal. The exact units are bearer-dependent. For example, Wi-Fi uses the
+         * same RSSI units reported by wifi code.
+         * <p>
+         * Note that when used to register a network callback, this specifies the minimum
+         * acceptable signal strength. When received as the state of an existing network it
+         * specifies the current value. A value of code SIGNAL_STRENGTH_UNSPECIFIED} means
+         * no value when received and has no effect when requesting a callback.
+         *
+         * Note: for security the system will throw if it receives a NetworkRequest where
+         * the underlying NetworkCapabilities has this member set from a source that does
+         * not hold the {@link android.Manifest.permission.NETWORK_SIGNAL_STRENGTH_WAKEUP}
+         * permission. Apps with this permission can use this indirectly through
+         * {@link android.net.NetworkRequest}.
+         *
+         * @param signalStrength the bearer-specific signal strength.
+         * @return this builder
+         */
+        @NonNull
+        @RequiresPermission(android.Manifest.permission.NETWORK_SIGNAL_STRENGTH_WAKEUP)
+        public Builder setSignalStrength(final int signalStrength) {
+            mCaps.setSignalStrength(signalStrength);
+            return this;
+        }
+
+        /**
+         * Sets the SSID of this network.
+         *
+         * Note: for security the system will clear out this field when received from a
+         * non-privileged source, like an app using reflection to set this.
+         *
+         * @param ssid the SSID, or null to clear it.
+         * @return this builder
+         */
+        @NonNull
+        @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
+        public Builder setSsid(@Nullable final String ssid) {
+            mCaps.setSSID(ssid);
+            return this;
+        }
+
+        /**
+         * Set the uid of the app causing this network to exist.
+         *
+         * Note: for security the system will clear out this field when received from a
+         * non-privileged source.
+         *
+         * @param uid UID of the app.
+         * @return this builder
+         */
+        @NonNull
+        @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
+        public Builder setRequestorUid(final int uid) {
+            mCaps.setRequestorUid(uid);
+            return this;
+        }
+
+        /**
+         * Set the package name of the app causing this network to exist.
+         *
+         * Note: for security the system will clear out this field when received from a
+         * non-privileged source.
+         *
+         * @param packageName package name of the app, or null to clear it.
+         * @return this builder
+         */
+        @NonNull
+        @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
+        public Builder setRequestorPackageName(@Nullable final String packageName) {
+            mCaps.setRequestorPackageName(packageName);
+            return this;
+        }
+
+        /**
+         * Builds the instance of the capabilities.
+         *
+         * @return the built instance of NetworkCapabilities.
+         */
+        @NonNull
+        public NetworkCapabilities build() {
+            if (mCaps.getOwnerUid() != Process.INVALID_UID) {
+                if (!ArrayUtils.contains(mCaps.getAdministratorUids(), mCaps.getOwnerUid())) {
+                    throw new IllegalStateException("The owner UID must be included in "
+                            + " administrator UIDs.");
+                }
+            }
+            return new NetworkCapabilities(mCaps);
+        }
+    }
 }
diff --git a/core/java/android/net/NetworkIdentity.java b/core/java/android/net/NetworkIdentity.java
index c1198aa..0948a4da 100644
--- a/core/java/android/net/NetworkIdentity.java
+++ b/core/java/android/net/NetworkIdentity.java
@@ -25,6 +25,7 @@
 import android.net.wifi.WifiManager;
 import android.os.Build;
 import android.service.NetworkIdentityProto;
+import android.telephony.Annotation.NetworkType;
 import android.util.Slog;
 import android.util.proto.ProtoOutputStream;
 
@@ -39,16 +40,6 @@
 public class NetworkIdentity implements Comparable<NetworkIdentity> {
     private static final String TAG = "NetworkIdentity";
 
-    /**
-     * When enabled, combine all {@link #mSubType} together under
-     * {@link #SUBTYPE_COMBINED}.
-     *
-     * @deprecated we no longer offer to collect statistics on a per-subtype
-     *             basis; this is always disabled.
-     */
-    @Deprecated
-    public static final boolean COMBINE_SUBTYPE_ENABLED = true;
-
     public static final int SUBTYPE_COMBINED = -1;
 
     final int mType;
@@ -63,7 +54,7 @@
             int type, int subType, String subscriberId, String networkId, boolean roaming,
             boolean metered, boolean defaultNetwork) {
         mType = type;
-        mSubType = COMBINE_SUBTYPE_ENABLED ? SUBTYPE_COMBINED : subType;
+        mSubType = subType;
         mSubscriberId = subscriberId;
         mNetworkId = networkId;
         mRoaming = roaming;
@@ -95,7 +86,7 @@
         final StringBuilder builder = new StringBuilder("{");
         builder.append("type=").append(getNetworkTypeName(mType));
         builder.append(", subType=");
-        if (COMBINE_SUBTYPE_ENABLED) {
+        if (mSubType == SUBTYPE_COMBINED) {
             builder.append("COMBINED");
         } else {
             builder.append(mSubType);
@@ -187,13 +178,14 @@
     }
 
     /**
-     * Build a {@link NetworkIdentity} from the given {@link NetworkState},
-     * assuming that any mobile networks are using the current IMSI.
+     * Build a {@link NetworkIdentity} from the given {@link NetworkState} and {@code subType},
+     * assuming that any mobile networks are using the current IMSI. The subType if applicable,
+     * should be set as one of the TelephonyManager.NETWORK_TYPE_* constants, or
+     * {@link android.telephony.TelephonyManager#NETWORK_TYPE_UNKNOWN} if not.
      */
     public static NetworkIdentity buildNetworkIdentity(Context context, NetworkState state,
-            boolean defaultNetwork) {
+            boolean defaultNetwork, @NetworkType int subType) {
         final int type = state.networkInfo.getType();
-        final int subType = state.networkInfo.getSubtype();
 
         String subscriberId = null;
         String networkId = null;
diff --git a/core/java/android/net/NetworkProvider.java b/core/java/android/net/NetworkProvider.java
index 418d691..75086cf 100644
--- a/core/java/android/net/NetworkProvider.java
+++ b/core/java/android/net/NetworkProvider.java
@@ -16,6 +16,7 @@
 
 package android.net;
 
+import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
@@ -33,8 +34,8 @@
  * {@link NetworkAgent}s. The networks can then provide connectivity to apps and can be interacted
  * with via networking APIs such as {@link ConnectivityManager}.
  *
- * Subclasses should implement {@link #onNetworkRequested} and {@link #onRequestWithdrawn} to
- * receive {@link NetworkRequest}s sent by the system and by apps. A network that is not the
+ * Subclasses should implement {@link #onNetworkRequested} and {@link #onNetworkRequestWithdrawn}
+ * to receive {@link NetworkRequest}s sent by the system and by apps. A network that is not the
  * best (highest-scoring) network for any request is generally not used by the system, and torn
  * down.
  *
@@ -77,7 +78,7 @@
      * Constructs a new NetworkProvider.
      *
      * @param looper the Looper on which to run {@link #onNetworkRequested} and
-     *               {@link #onRequestWithdrawn}.
+     *               {@link #onNetworkRequestWithdrawn}.
      * @param name the name of the listener, used only for debugging.
      *
      * @hide
@@ -94,7 +95,7 @@
                         onNetworkRequested((NetworkRequest) m.obj, m.arg1, m.arg2);
                         break;
                     case CMD_CANCEL_REQUEST:
-                        onRequestWithdrawn((NetworkRequest) m.obj);
+                        onNetworkRequestWithdrawn((NetworkRequest) m.obj);
                         break;
                     default:
                         Log.e(mName, "Unhandled message: " + m.what);
@@ -142,14 +143,15 @@
      *  @hide
      */
     @SystemApi
-    public void onNetworkRequested(@NonNull NetworkRequest request, int score, int providerId) {}
+    public void onNetworkRequested(@NonNull NetworkRequest request,
+            @IntRange(from = 0, to = 99) int score, int providerId) {}
 
     /**
      *  Called when a NetworkRequest is withdrawn.
      *  @hide
      */
     @SystemApi
-    public void onRequestWithdrawn(@NonNull NetworkRequest request) {}
+    public void onNetworkRequestWithdrawn(@NonNull NetworkRequest request) {}
 
     /**
      * Asserts that no provider will ever be able to satisfy the specified request. The provider
@@ -157,7 +159,7 @@
      * satisfying this request, and that the request cannot be satisfied. The application filing the
      * request will receive an {@link NetworkCallback#onUnavailable()} callback.
      *
-     * @param request the request that cannot be fulfilled
+     * @param request the request that permanently cannot be fulfilled
      * @hide
      */
     @SystemApi
diff --git a/core/java/android/net/NetworkRequest.java b/core/java/android/net/NetworkRequest.java
index 964f13f..a6bd74a 100644
--- a/core/java/android/net/NetworkRequest.java
+++ b/core/java/android/net/NetworkRequest.java
@@ -473,10 +473,8 @@
      *
      * @param nc Capabilities that should satisfy this NetworkRequest. null capabilities do not
      *           satisfy any request.
-     * @hide
      */
-    @SystemApi
-    public boolean satisfiedBy(@Nullable NetworkCapabilities nc) {
+    public boolean canBeSatisfiedBy(@Nullable NetworkCapabilities nc) {
         return networkCapabilities.satisfiedByNetworkCapabilities(nc);
     }
 
diff --git a/core/java/android/net/NetworkSpecifier.java b/core/java/android/net/NetworkSpecifier.java
index 2dd0c4e..160259e 100644
--- a/core/java/android/net/NetworkSpecifier.java
+++ b/core/java/android/net/NetworkSpecifier.java
@@ -35,7 +35,9 @@
      * @hide
      */
     @SystemApi
-    public abstract boolean satisfiedBy(@Nullable NetworkSpecifier other);
+    public boolean canBeSatisfiedBy(@Nullable NetworkSpecifier other) {
+        return false;
+    }
 
     /**
      * Optional method which can be overridden by concrete implementations of NetworkSpecifier to
diff --git a/core/java/android/net/NetworkStack.java b/core/java/android/net/NetworkStack.java
index a46c410..86f3dfd 100644
--- a/core/java/android/net/NetworkStack.java
+++ b/core/java/android/net/NetworkStack.java
@@ -19,15 +19,17 @@
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.SystemApi;
 import android.annotation.TestApi;
 import android.content.Context;
+import android.os.IBinder;
+import android.os.ServiceManager;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 /**
- *
- * Constants for client code communicating with the network stack service.
+ * Constants and utilities for client code communicating with the network stack service.
  * @hide
  */
 @SystemApi
@@ -43,6 +45,34 @@
     public static final String PERMISSION_MAINLINE_NETWORK_STACK =
             "android.permission.MAINLINE_NETWORK_STACK";
 
+    @Nullable
+    private static volatile IBinder sMockService;
+
+    /**
+     * Get an {@link IBinder} representing the NetworkStack stable AIDL Interface, if registered.
+     * @hide
+     */
+    @Nullable
+    @SystemApi
+    @TestApi
+    public static IBinder getService() {
+        final IBinder mockService = sMockService;
+        if (mockService != null) return mockService;
+        return ServiceManager.getService(Context.NETWORK_STACK_SERVICE);
+    }
+
+    /**
+     * Set a mock service for testing, to be returned by future calls to {@link #getService()}.
+     *
+     * <p>Passing a {@code null} {@code mockService} resets {@link #getService()} to normal
+     * behavior.
+     * @hide
+     */
+    @TestApi
+    public static void setServiceForTest(@Nullable IBinder mockService) {
+        sMockService = mockService;
+    }
+
     private NetworkStack() {}
 
     /**
diff --git a/core/java/android/net/NetworkTemplate.java b/core/java/android/net/NetworkTemplate.java
index 5498f74..cb9463a 100644
--- a/core/java/android/net/NetworkTemplate.java
+++ b/core/java/android/net/NetworkTemplate.java
@@ -34,9 +34,13 @@
 import static android.net.NetworkStats.ROAMING_YES;
 import static android.net.wifi.WifiInfo.sanitizeSsid;
 
+import android.annotation.Nullable;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.telephony.Annotation.NetworkType;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
 import android.util.BackupUtils;
 import android.util.Log;
 
@@ -73,6 +77,14 @@
     public static final int MATCH_BLUETOOTH = 8;
     public static final int MATCH_PROXY = 9;
 
+    /**
+     * Include all network types when filtering. This is meant to merge in with the
+     * {@code TelephonyManager.NETWORK_TYPE_*} constants, and thus needs to stay in sync.
+     *
+     * @hide
+     */
+    public static final int NETWORK_TYPE_ALL = -1;
+
     private static boolean isKnownMatchRule(final int rule) {
         switch (rule) {
             case MATCH_MOBILE:
@@ -117,7 +129,22 @@
     }
 
     /**
-     * Template to match {@link ConnectivityManager#TYPE_MOBILE} networks,
+     * Template to match cellular networks with the given IMSI and {@code ratType}.
+     * Use {@link #NETWORK_TYPE_ALL} to include all network types when filtering.
+     * See {@code TelephonyManager.NETWORK_TYPE_*}.
+     */
+    public static NetworkTemplate buildTemplateMobileWithRatType(@Nullable String subscriberId,
+            @NetworkType int ratType) {
+        if (TextUtils.isEmpty(subscriberId)) {
+            return new NetworkTemplate(MATCH_MOBILE_WILDCARD, null, null, null,
+                    METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, ratType);
+        }
+        return new NetworkTemplate(MATCH_MOBILE, subscriberId, new String[]{subscriberId}, null,
+                METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, ratType);
+    }
+
+    /**
+     * Template to match metered {@link ConnectivityManager#TYPE_MOBILE} networks,
      * regardless of IMSI.
      */
     @UnsupportedAppUsage
@@ -126,7 +153,7 @@
     }
 
     /**
-     * Template to match all {@link ConnectivityManager#TYPE_WIFI} networks,
+     * Template to match all metered {@link ConnectivityManager#TYPE_WIFI} networks,
      * regardless of SSID.
      */
     @UnsupportedAppUsage
@@ -192,6 +219,7 @@
     private final int mMetered;
     private final int mRoaming;
     private final int mDefaultNetwork;
+    private final int mSubType;
 
     @UnsupportedAppUsage
     public NetworkTemplate(int matchRule, String subscriberId, String networkId) {
@@ -201,11 +229,11 @@
     public NetworkTemplate(int matchRule, String subscriberId, String[] matchSubscriberIds,
             String networkId) {
         this(matchRule, subscriberId, matchSubscriberIds, networkId, METERED_ALL, ROAMING_ALL,
-                DEFAULT_NETWORK_ALL);
+                DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL);
     }
 
     public NetworkTemplate(int matchRule, String subscriberId, String[] matchSubscriberIds,
-            String networkId, int metered, int roaming, int defaultNetwork) {
+            String networkId, int metered, int roaming, int defaultNetwork, int subType) {
         mMatchRule = matchRule;
         mSubscriberId = subscriberId;
         mMatchSubscriberIds = matchSubscriberIds;
@@ -213,6 +241,7 @@
         mMetered = metered;
         mRoaming = roaming;
         mDefaultNetwork = defaultNetwork;
+        mSubType = subType;
 
         if (!isKnownMatchRule(matchRule)) {
             Log.e(TAG, "Unknown network template rule " + matchRule
@@ -228,6 +257,7 @@
         mMetered = in.readInt();
         mRoaming = in.readInt();
         mDefaultNetwork = in.readInt();
+        mSubType = in.readInt();
     }
 
     @Override
@@ -239,6 +269,7 @@
         dest.writeInt(mMetered);
         dest.writeInt(mRoaming);
         dest.writeInt(mDefaultNetwork);
+        dest.writeInt(mSubType);
     }
 
     @Override
@@ -271,13 +302,16 @@
             builder.append(", defaultNetwork=").append(NetworkStats.defaultNetworkToString(
                     mDefaultNetwork));
         }
+        if (mSubType != NETWORK_TYPE_ALL) {
+            builder.append(", subType=").append(mSubType);
+        }
         return builder.toString();
     }
 
     @Override
     public int hashCode() {
         return Objects.hash(mMatchRule, mSubscriberId, mNetworkId, mMetered, mRoaming,
-                mDefaultNetwork);
+                mDefaultNetwork, mSubType);
     }
 
     @Override
@@ -289,7 +323,8 @@
                     && Objects.equals(mNetworkId, other.mNetworkId)
                     && mMetered == other.mMetered
                     && mRoaming == other.mRoaming
-                    && mDefaultNetwork == other.mDefaultNetwork;
+                    && mDefaultNetwork == other.mDefaultNetwork
+                    && mSubType == other.mSubType;
         }
         return false;
     }
@@ -376,6 +411,11 @@
             || (mDefaultNetwork == DEFAULT_NETWORK_NO && !ident.mDefaultNetwork);
     }
 
+    private boolean matchesCollapsedRatType(NetworkIdentity ident) {
+        return mSubType == NETWORK_TYPE_ALL
+                || getCollapsedRatType(mSubType) == getCollapsedRatType(ident.mSubType);
+    }
+
     public boolean matchesSubscriberId(String subscriberId) {
         return ArrayUtils.contains(mMatchSubscriberIds, subscriberId);
     }
@@ -388,9 +428,52 @@
             // TODO: consider matching against WiMAX subscriber identity
             return true;
         } else {
+            // Only metered mobile network would be matched regardless of metered filter.
+            // This is used to exclude non-metered APNs, e.g. IMS. See ag/908650.
+            // TODO: Respect metered filter and remove mMetered condition.
             return (sForceAllNetworkTypes || (ident.mType == TYPE_MOBILE && ident.mMetered))
                     && !ArrayUtils.isEmpty(mMatchSubscriberIds)
-                    && ArrayUtils.contains(mMatchSubscriberIds, ident.mSubscriberId);
+                    && ArrayUtils.contains(mMatchSubscriberIds, ident.mSubscriberId)
+                    && matchesCollapsedRatType(ident);
+        }
+    }
+
+    /**
+     * Get a Radio Access Technology(RAT) type that is representative of a group of RAT types.
+     * The mapping is corresponding to {@code TelephonyManager#NETWORK_CLASS_BIT_MASK_*}.
+     *
+     * @param ratType An integer defined in {@code TelephonyManager#NETWORK_TYPE_*}.
+     */
+    // TODO: 1. Consider move this to TelephonyManager if used by other modules.
+    //       2. Consider make this configurable.
+    //       3. Use TelephonyManager APIs when available.
+    public static int getCollapsedRatType(int ratType) {
+        switch (ratType) {
+            case TelephonyManager.NETWORK_TYPE_GPRS:
+            case TelephonyManager.NETWORK_TYPE_GSM:
+            case TelephonyManager.NETWORK_TYPE_EDGE:
+            case TelephonyManager.NETWORK_TYPE_IDEN:
+            case TelephonyManager.NETWORK_TYPE_CDMA:
+            case TelephonyManager.NETWORK_TYPE_1xRTT:
+                return TelephonyManager.NETWORK_TYPE_GSM;
+            case TelephonyManager.NETWORK_TYPE_EVDO_0:
+            case TelephonyManager.NETWORK_TYPE_EVDO_A:
+            case TelephonyManager.NETWORK_TYPE_EVDO_B:
+            case TelephonyManager.NETWORK_TYPE_EHRPD:
+            case TelephonyManager.NETWORK_TYPE_UMTS:
+            case TelephonyManager.NETWORK_TYPE_HSDPA:
+            case TelephonyManager.NETWORK_TYPE_HSUPA:
+            case TelephonyManager.NETWORK_TYPE_HSPA:
+            case TelephonyManager.NETWORK_TYPE_HSPAP:
+            case TelephonyManager.NETWORK_TYPE_TD_SCDMA:
+                return TelephonyManager.NETWORK_TYPE_UMTS;
+            case TelephonyManager.NETWORK_TYPE_LTE:
+            case TelephonyManager.NETWORK_TYPE_IWLAN:
+                return TelephonyManager.NETWORK_TYPE_LTE;
+            case TelephonyManager.NETWORK_TYPE_NR:
+                return TelephonyManager.NETWORK_TYPE_NR;
+            default:
+                return TelephonyManager.NETWORK_TYPE_UNKNOWN;
         }
     }
 
@@ -421,7 +504,8 @@
         if (ident.mType == TYPE_WIMAX) {
             return true;
         } else {
-            return sForceAllNetworkTypes || (ident.mType == TYPE_MOBILE && ident.mMetered);
+            return (sForceAllNetworkTypes || (ident.mType == TYPE_MOBILE && ident.mMetered))
+                    && matchesCollapsedRatType(ident);
         }
     }
 
diff --git a/core/java/android/net/RouteInfo.java b/core/java/android/net/RouteInfo.java
index 2b9e9fe..dbdaa4c 100644
--- a/core/java/android/net/RouteInfo.java
+++ b/core/java/android/net/RouteInfo.java
@@ -26,6 +26,7 @@
 import android.os.Build;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.util.Pair;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -527,6 +528,30 @@
     }
 
     /**
+     * A helper class that contains the destination and the gateway in a {@code RouteInfo},
+     * used by {@link ConnectivityService#updateRoutes} or
+     * {@link LinkProperties#addRoute} to calculate the list to be updated.
+     *
+     * @hide
+     */
+    public static class RouteKey extends Pair<IpPrefix, InetAddress> {
+        RouteKey(@NonNull IpPrefix destination, @Nullable InetAddress gateway) {
+            super(destination, gateway);
+        }
+    }
+
+    /**
+     * Get {@code RouteKey} of this {@code RouteInfo}.
+     * @return a {@code RouteKey} object.
+     *
+     * @hide
+     */
+    @NonNull
+    public RouteKey getRouteKey() {
+        return new RouteKey(mDestination, mGateway);
+    }
+
+    /**
      *  Returns a hashcode for this <code>RouteInfo</code> object.
      */
     public int hashCode() {
diff --git a/core/java/android/net/SocketKeepalive.java b/core/java/android/net/SocketKeepalive.java
index fc9a8f6..46aef10 100644
--- a/core/java/android/net/SocketKeepalive.java
+++ b/core/java/android/net/SocketKeepalive.java
@@ -109,6 +109,17 @@
     })
     public @interface ErrorCode {}
 
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(value = {
+            SUCCESS,
+            ERROR_INVALID_LENGTH,
+            ERROR_UNSUPPORTED,
+            ERROR_INSUFFICIENT_RESOURCES,
+            ERROR_HARDWARE_UNSUPPORTED
+    })
+    public @interface KeepaliveEvent {}
+
     /**
      * The minimum interval in seconds between keepalive packet transmissions.
      *
diff --git a/core/java/android/net/StringNetworkSpecifier.java b/core/java/android/net/StringNetworkSpecifier.java
index 6ae5971..3f2aa17 100644
--- a/core/java/android/net/StringNetworkSpecifier.java
+++ b/core/java/android/net/StringNetworkSpecifier.java
@@ -40,7 +40,7 @@
 
     /** @hide */
     @Override
-    public boolean satisfiedBy(NetworkSpecifier other) {
+    public boolean canBeSatisfiedBy(NetworkSpecifier other) {
         return equals(other);
     }
 
diff --git a/core/java/android/net/TelephonyNetworkSpecifier.java b/core/java/android/net/TelephonyNetworkSpecifier.java
index 726f770..aafebd7 100644
--- a/core/java/android/net/TelephonyNetworkSpecifier.java
+++ b/core/java/android/net/TelephonyNetworkSpecifier.java
@@ -97,7 +97,7 @@
 
     /** @hide */
     @Override
-    public boolean satisfiedBy(NetworkSpecifier other) {
+    public boolean canBeSatisfiedBy(NetworkSpecifier other) {
         // Any generic requests should be satisfied by a specific telephony network.
         // For simplicity, we treat null same as MatchAllNetworkSpecifier
         return equals(other) || other == null || other instanceof MatchAllNetworkSpecifier;
diff --git a/core/java/android/net/TestNetworkManager.java b/core/java/android/net/TestNetworkManager.java
index c3284df..a0a563b 100644
--- a/core/java/android/net/TestNetworkManager.java
+++ b/core/java/android/net/TestNetworkManager.java
@@ -30,6 +30,18 @@
  */
 @TestApi
 public class TestNetworkManager {
+    /**
+     * Prefix for tun interfaces created by this class.
+     * @hide
+     */
+    public static final String TEST_TUN_PREFIX = "testtun";
+
+    /**
+     * Prefix for tap interfaces created by this class.
+     * @hide
+     */
+    public static final String TEST_TAP_PREFIX = "testtap";
+
     @NonNull private static final String TAG = TestNetworkManager.class.getSimpleName();
 
     @NonNull private final ITestNetworkManager mService;
diff --git a/core/java/android/net/util/SocketUtils.java b/core/java/android/net/util/SocketUtils.java
index e9ea99f..6967084 100644
--- a/core/java/android/net/util/SocketUtils.java
+++ b/core/java/android/net/util/SocketUtils.java
@@ -66,6 +66,10 @@
 
     /**
      * Make socket address that packet sockets can bind to.
+     *
+     * @param protocol the layer 2 protocol of the packets to receive. One of the {@code ETH_P_*}
+     *                 constants in {@link android.system.OsConstants}.
+     * @param ifIndex the interface index on which packets will be received.
      */
     @NonNull
     public static SocketAddress makePacketSocketAddress(int protocol, int ifIndex) {
@@ -78,6 +82,9 @@
     /**
      * Make a socket address that packet socket can send packets to.
      * @deprecated Use {@link #makePacketSocketAddress(int, int, byte[])} instead.
+     *
+     * @param ifIndex the interface index on which packets will be sent.
+     * @param hwAddr the hardware address to which packets will be sent.
      */
     @Deprecated
     @NonNull
@@ -89,7 +96,12 @@
     }
 
     /**
-     * Make a socket address that packet socket can send packets to.
+     * Make a socket address that a packet socket can send packets to.
+     *
+     * @param protocol the layer 2 protocol of the packets to send. One of the {@code ETH_P_*}
+     *                 constants in {@link android.system.OsConstants}.
+     * @param ifIndex the interface index on which packets will be sent.
+     * @param hwAddr the hardware address to which packets will be sent.
      */
     @NonNull
     public static SocketAddress makePacketSocketAddress(int protocol, int ifIndex,
diff --git a/core/java/android/os/ConfigUpdate.java b/core/java/android/os/ConfigUpdate.java
index a28f5fb..4908919 100644
--- a/core/java/android/os/ConfigUpdate.java
+++ b/core/java/android/os/ConfigUpdate.java
@@ -16,7 +16,6 @@
 
 package android.os;
 
-import android.annotation.RequiresPermission;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
 import android.annotation.SystemApi;
@@ -119,14 +118,14 @@
     /**
     * Update the emergency number database into the devices.
     * <p>Extra: {@link #EXTRA_VERSION} the numeric version of the database.
-    * <p>Extra: {@link #EXTRA_REQUIRED_HASH} the hash of the database.
+    * <p>Extra: {@link #EXTRA_REQUIRED_HASH} hash of the database, which is encoded by base-16
+     * SHA512.
     * <p>Input: {@link android.content.Intent#getData} the URI to download emergency number
     * database.
     *
     * @hide
     */
     @SystemApi
-    @RequiresPermission(android.Manifest.permission.UPDATE_CONFIG)
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
     public static final String ACTION_UPDATE_EMERGENCY_NUMBER_DB =
             "android.os.action.UPDATE_EMERGENCY_NUMBER_DB";
@@ -141,7 +140,7 @@
     public static final String EXTRA_VERSION = "android.os.extra.VERSION";
 
     /**
-     * A string to indicate the hash of the data.
+     * Hash of the database, which is encoded by base-16 SHA512.
      *
      * @hide
      */
diff --git a/core/java/android/os/IVibratorService.aidl b/core/java/android/os/IVibratorService.aidl
index 84013e7..615ae65 100644
--- a/core/java/android/os/IVibratorService.aidl
+++ b/core/java/android/os/IVibratorService.aidl
@@ -28,7 +28,7 @@
     boolean registerVibratorStateListener(in IVibratorStateListener listener);
     boolean unregisterVibratorStateListener(in IVibratorStateListener listener);
     boolean hasAmplitudeControl();
-    boolean[] areEffectsSupported(in int[] effectIds);
+    int[] areEffectsSupported(in int[] effectIds);
     boolean[] arePrimitivesSupported(in int[] primitiveIds);
     boolean setAlwaysOnEffect(int uid, String opPkg, int alwaysOnId, in VibrationEffect effect,
             in VibrationAttributes attributes);
diff --git a/core/java/android/os/LimitExceededException.java b/core/java/android/os/LimitExceededException.java
new file mode 100644
index 0000000..d934326
--- /dev/null
+++ b/core/java/android/os/LimitExceededException.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.os;
+
+import android.annotation.NonNull;
+
+/** Indicates that the app has exceeded a limit set by the System. */
+public class LimitExceededException extends IllegalStateException {
+
+    /**
+     * Constructs a new {@code LimitExceededException} with {@code null} as its
+     * detail message. The cause is not initialized, and may subsequently be
+     * initialized by a call to {@link #initCause}.
+     */
+    public LimitExceededException() {
+        super();
+    }
+
+    /**
+     * Constructs a new {@code LimitExceededException} with the specified detail message.
+     * The cause is not initialized, and may subsequently be initialized by a
+     * call to {@link #initCause}.
+     *
+     * @param message the detail message which is saved for later retrieval
+     *                by the {@link #getMessage()} method.
+     */
+    public LimitExceededException(@NonNull String message) {
+        super(message);
+    }
+}
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index 40ff5ca..cdc0019 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -1984,20 +1984,20 @@
      * temperature sensor. This means that there is no benefit to calling this function more
      * frequently than about once per second, and attempts to call significantly more frequently may
      * result in the function returning {@code NaN}.
-     *
+     * <p>
      * In addition, in order to be able to provide an accurate forecast, the system does not attempt
      * to forecast until it has multiple temperature samples from which to extrapolate. This should
      * only take a few seconds from the time of the first call, but during this time, no forecasting
      * will occur, and the current headroom will be returned regardless of the value of
      * {@code forecastSeconds}.
-     *
+     * <p>
      * The value returned is a non-negative float that represents how much of the thermal envelope
      * is in use (or is forecasted to be in use). A value of 1.0 indicates that the device is (or
      * will be) throttled at {@link #THERMAL_STATUS_SEVERE}. Such throttling can affect the CPU,
      * GPU, and other subsystems. Values may exceed 1.0, but there is no implied mapping to specific
      * thermal status levels beyond that point. This means that values greater than 1.0 may
      * correspond to {@link #THERMAL_STATUS_SEVERE}, but may also represent heavier throttling.
-     *
+     * <p>
      * A value of 0.0 corresponds to a fixed distance from 1.0, but does not correspond to any
      * particular thermal status or temperature. Values on (0.0, 1.0] may be expected to scale
      * linearly with temperature, though temperature changes over time are typically not linear.
@@ -2224,15 +2224,27 @@
      * Intent that is broadcast when the state of {@link #isPowerSaveMode()} is about to change.
      * This broadcast is only sent to registered receivers.
      *
+     * @deprecated This is sent at the same time as {@link #ACTION_POWER_SAVE_MODE_CHANGED} so it
+     * does not provide advanced warning. As such it will be removed in future Android versions.
+     * Use {@link #ACTION_POWER_SAVE_MODE_CHANGED} and {@link #isPowerSaveMode()} instead.
+     *
      * @hide
      */
-    @UnsupportedAppUsage
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.Q,
+            publicAlternatives = "Use {@link #ACTION_POWER_SAVE_MODE_CHANGED} instead.")
     @SdkConstant(SdkConstant.SdkConstantType.BROADCAST_INTENT_ACTION)
+    @Deprecated
     public static final String ACTION_POWER_SAVE_MODE_CHANGING
             = "android.os.action.POWER_SAVE_MODE_CHANGING";
 
-    /** @hide */
-    @UnsupportedAppUsage
+    /**
+     * @deprecated Use {@link #isPowerSaveMode()} instead.
+     *
+     * @hide
+     */
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.Q,
+            publicAlternatives = "Use {@link #isPowerSaveMode()} instead.")
+    @Deprecated
     public static final String EXTRA_POWER_SAVE_MODE = "mode";
 
     /**
diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java
index d60820e..8cdcd49 100644
--- a/core/java/android/os/RecoverySystem.java
+++ b/core/java/android/os/RecoverySystem.java
@@ -665,15 +665,17 @@
      * the preparation for unattended update is reset.
      *
      * @param context the Context to use.
-     * @throws IOException if there were any errors setting up unattended update
+     * @throws IOException if there were any errors clearing the unattended update state
      * @hide
      */
     @SystemApi
     @RequiresPermission(android.Manifest.permission.RECOVERY)
-    public static boolean clearPrepareForUnattendedUpdate(@NonNull Context context)
+    public static void clearPrepareForUnattendedUpdate(@NonNull Context context)
             throws IOException {
         RecoverySystem rs = (RecoverySystem) context.getSystemService(Context.RECOVERY_SERVICE);
-        return rs.clearLskf();
+        if (!rs.clearLskf()) {
+            throw new IOException("could not reset unattended update state");
+        }
     }
 
     /**
@@ -684,21 +686,22 @@
      * @param context the Context to use.
      * @param updateToken the token used to call {@link #prepareForUnattendedUpdate} before
      * @param reason the reboot reason to give to the {@link PowerManager}
-     * @throws IOException if there were any errors setting up unattended update
-     * @return false if the reboot couldn't proceed because the device wasn't ready for an
+     * @throws IOException if the reboot couldn't proceed because the device wasn't ready for an
      *               unattended reboot or if the {@code updateToken} did not match the previously
      *               given token
      * @hide
      */
     @SystemApi
     @RequiresPermission(android.Manifest.permission.RECOVERY)
-    public static boolean rebootAndApply(@NonNull Context context, @NonNull String updateToken,
+    public static void rebootAndApply(@NonNull Context context, @NonNull String updateToken,
             @NonNull String reason) throws IOException {
         if (updateToken == null) {
             throw new NullPointerException("updateToken == null");
         }
         RecoverySystem rs = (RecoverySystem) context.getSystemService(Context.RECOVERY_SERVICE);
-        return rs.rebootWithLskf(updateToken, reason);
+        if (!rs.rebootWithLskf(updateToken, reason)) {
+            throw new IOException("system not prepared to apply update");
+        }
     }
 
     /**
diff --git a/core/java/android/os/SystemVibrator.java b/core/java/android/os/SystemVibrator.java
index da20c7f..2dba8dc 100644
--- a/core/java/android/os/SystemVibrator.java
+++ b/core/java/android/os/SystemVibrator.java
@@ -21,12 +21,13 @@
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.Context;
 import android.media.AudioAttributes;
-import android.os.IVibratorStateListener;
 import android.util.ArrayMap;
 import android.util.Log;
+
 import com.android.internal.annotations.GuardedBy;
-import java.util.concurrent.Executor;
+
 import java.util.Objects;
+import java.util.concurrent.Executor;
 
 /**
  * Vibrator implementation that controls the main system vibrator.
@@ -238,13 +239,13 @@
     }
 
     @Override
-    public boolean[] areEffectsSupported(@VibrationEffect.EffectType int... effectIds) {
+    public int[] areEffectsSupported(@VibrationEffect.EffectType int... effectIds) {
         try {
             return mService.areEffectsSupported(effectIds);
         } catch (RemoteException e) {
             Log.w(TAG, "Failed to query effect support");
+            throw e.rethrowAsRuntimeException();
         }
-        return new boolean[effectIds.length];
     }
 
     @Override
@@ -254,8 +255,8 @@
             return mService.arePrimitivesSupported(primitiveIds);
         } catch (RemoteException e) {
             Log.w(TAG, "Failed to query effect support");
+            throw e.rethrowAsRuntimeException();
         }
-        return new boolean[primitiveIds.length];
     }
 
 
diff --git a/core/java/android/os/TelephonyServiceManager.java b/core/java/android/os/TelephonyServiceManager.java
index 1128f4c..6993671 100644
--- a/core/java/android/os/TelephonyServiceManager.java
+++ b/core/java/android/os/TelephonyServiceManager.java
@@ -17,7 +17,6 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.SystemApi;
 import android.content.Context;
 
 /**
@@ -28,7 +27,6 @@
  *
  * @hide
  */
-@SystemApi
 public class TelephonyServiceManager {
     /**
      * @hide
@@ -97,7 +95,6 @@
      *
      * @hide
      */
-    @SystemApi
     public static class ServiceNotFoundException extends ServiceManager.ServiceNotFoundException {
         /**
          * Constructor.
diff --git a/core/java/android/os/VibrationEffect.java b/core/java/android/os/VibrationEffect.java
index 1992f1d..ca86157 100644
--- a/core/java/android/os/VibrationEffect.java
+++ b/core/java/android/os/VibrationEffect.java
@@ -343,6 +343,14 @@
     @TestApi
     @Nullable
     public static VibrationEffect get(Uri uri, Context context) {
+        String[] uris = context.getResources().getStringArray(
+                com.android.internal.R.array.config_ringtoneEffectUris);
+
+        // Skip doing any IPC if we don't have any effects configured.
+        if (uris.length == 0) {
+            return null;
+        }
+
         final ContentResolver cr = context.getContentResolver();
         Uri uncanonicalUri = cr.uncanonicalize(uri);
         if (uncanonicalUri == null) {
@@ -351,8 +359,7 @@
             // place.
             uncanonicalUri = uri;
         }
-        String[] uris = context.getResources().getStringArray(
-                com.android.internal.R.array.config_ringtoneEffectUris);
+
         for (int i = 0; i < uris.length && i < RINGTONES.length; i++) {
             if (uris[i] == null) {
                 continue;
@@ -954,7 +961,7 @@
      *
      * @see VibrationEffect#startComposition()
      */
-    public static class Composition {
+    public static final class Composition {
         /** @hide */
         @IntDef(prefix = { "PRIMITIVE_" }, value = {
                 PRIMITIVE_CLICK,
@@ -1013,6 +1020,8 @@
 
         private ArrayList<PrimitiveEffect> mEffects = new ArrayList<>();
 
+        Composition() { }
+
         /**
          * Add a haptic primitive to the end of the current composition.
          *
@@ -1023,7 +1032,7 @@
          *
          * @return The {@link Composition} object to enable adding multiple primitives in one chain.
          */
-        @Nullable
+        @NonNull
         public Composition addPrimitive(@Primitive int primitiveId) {
             addPrimitive(primitiveId, /*scale*/ 1.0f, /*delay*/ 0);
             return this;
@@ -1039,7 +1048,7 @@
          *
          * @return The {@link Composition} object to enable adding multiple primitives in one chain.
          */
-        @Nullable
+        @NonNull
         public Composition addPrimitive(@Primitive int primitiveId,
                 @FloatRange(from = 0f, to = 1f) float scale) {
             addPrimitive(primitiveId, scale, /*delay*/ 0);
@@ -1051,11 +1060,11 @@
          *
          * @param primitiveId The primitive to add
          * @param scale The scale to apply to the intensity of the primitive.
-         * @param delay The amount of time, in milliseconds, to wait before playing the prior
+         * @param delay The amount of time, in milliseconds, to wait between playing the prior
          *              primitive and this one
          * @return The {@link Composition} object to enable adding multiple primitives in one chain.
          */
-        @Nullable
+        @NonNull
         public Composition addPrimitive(@Primitive int primitiveId,
                 @FloatRange(from = 0f, to = 1f) float scale, @IntRange(from = 0) int delay) {
             mEffects.add(new PrimitiveEffect(checkPrimitive(primitiveId), scale, delay));
diff --git a/core/java/android/os/Vibrator.java b/core/java/android/os/Vibrator.java
index d4da7a8..86d009e 100644
--- a/core/java/android/os/Vibrator.java
+++ b/core/java/android/os/Vibrator.java
@@ -32,6 +32,7 @@
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.Arrays;
 import java.util.concurrent.Executor;
 
 /**
@@ -72,6 +73,37 @@
      */
     public static final int VIBRATION_INTENSITY_HIGH = 3;
 
+    /**
+     * Vibration effect support: unknown
+     *
+     * The hardware doesn't report it's supported effects, so we can't determine whether the
+     * effect is supported or not.
+     */
+    public static final int VIBRATION_EFFECT_SUPPORT_UNKNOWN = 0;
+
+    /**
+     * Vibration effect support: supported
+     *
+     * This effect is supported by the underlying hardware.
+     */
+    public static final int VIBRATION_EFFECT_SUPPORT_YES = 1;
+
+    /**
+     * Vibration effect support: unsupported
+     *
+     * This effect is <b>not</b> supported by the underlying hardware.
+     */
+    public static final int VIBRATION_EFFECT_SUPPORT_NO = 2;
+
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = {"VIBRATION_EFFECT_SUPPORT_"}, value = {
+            VIBRATION_EFFECT_SUPPORT_UNKNOWN,
+            VIBRATION_EFFECT_SUPPORT_YES,
+            VIBRATION_EFFECT_SUPPORT_NO,
+    })
+    public @interface VibrationEffectSupport {}
+
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef(prefix = {"VIBRATION_INTENSITY_"}, value = {
@@ -318,47 +350,61 @@
     /**
      * Query whether the vibrator supports the given effects.
      *
-     * If the returned array is {@code null}, the hardware doesn't support querying its supported
-     * effects. It may support any or all effects, but there's no way to programmatically know
-     * whether a {@link #vibrate} call will be successful.
+     * Not all hardware reports its effect capabilities, so the system may not necessarily know
+     * whether an effect is supported or not.
      *
-     * If the returned array is non-null, then it will be the same length as the query array and
-     * the value at a given index will contain whether the effect at that same index in the
-     * querying array is supported or not.
+     * The returned array will be the same length as the query array and the value at a given index
+     * will contain {@link #VIBRATION_EFFECT_SUPPORT_YES} if the effect at that same index in the
+     * querying array is supported, {@link #VIBRATION_EFFECT_SUPPORT_NO} if it isn't supported, or
+     * {@link #VIBRATION_EFFECT_SUPPORT_UNKNOWN} if the system can't determine whether it's
+     * supported or not.
      *
      * @param effectIds Which effects to query for.
-     * @return Whether the effects are supported. Null when the hardware doesn't tell us what it
-     *         supports.
+     * @return An array containing the systems current knowledge about whether the given effects
+     * are supported or not.
      */
-    @Nullable
-    public boolean[] areEffectsSupported(
+    @NonNull
+    @VibrationEffectSupport
+    public int[] areEffectsSupported(
             @NonNull @VibrationEffect.EffectType int... effectIds) {
-        return new boolean[effectIds.length];
+        final int[] support = new int[effectIds.length];
+        Arrays.fill(support, VIBRATION_EFFECT_SUPPORT_NO);
+        return support;
     }
 
     /**
      * Query whether the vibrator supports all of the given effects.
      *
-     * If the result is {@code null}, the hardware doesn't support querying its supported
-     * effects. It may support any or all effects, but there's no way to programmatically know
-     * whether a {@link #vibrate} call will be successful.
+     * Not all hardware reports its effect capabilities, so the system may not necessarily know
+     * whether an effect is supported or not.
      *
-     * If the returned array is non-null, then it will return whether all of the effects are
+     * If the result is {@link #VIBRATION_EFFECT_SUPPORT_YES}, all effects in the query are
      * supported by the hardware.
      *
+     * If the result is {@link #VIBRATION_EFFECT_SUPPORT_NO}, at least one of the effects in the
+     * query is not supported.
+     *
+     * If the result is {@link #VIBRATION_EFFECT_SUPPORT_UNKNOWN}, the system doesn't know whether
+     * all of the effects are supported. It may support any or all of the queried effects,
+     * but there's no way to programmatically know whether a {@link #vibrate} call will successfully
+     * cause a vibration. It's guaranteed, however, that none of the queried effects are
+     * definitively unsupported by the hardware.
+     *
      * @param effectIds Which effects to query for.
-     * @return Whether the effects are supported. {@code null} when the hardware doesn't tell us
-     *         what it supports.
+     * @return Whether all of the effects are supported.
      */
-    @Nullable
-    public Boolean areAllEffectsSupported(
+    @VibrationEffectSupport
+    public final int areAllEffectsSupported(
             @NonNull @VibrationEffect.EffectType int... effectIds) {
-        for (boolean supported : areEffectsSupported(effectIds)) {
-            if (!supported) {
-                return false;
+        int support = VIBRATION_EFFECT_SUPPORT_YES;
+        for (int supported : areEffectsSupported(effectIds)) {
+            if (supported == VIBRATION_EFFECT_SUPPORT_NO) {
+                return VIBRATION_EFFECT_SUPPORT_NO;
+            } else if (supported == VIBRATION_EFFECT_SUPPORT_UNKNOWN) {
+                support = VIBRATION_EFFECT_SUPPORT_UNKNOWN;
             }
         }
-        return true;
+        return support;
     }
 
 
@@ -384,7 +430,7 @@
      * @param primitiveIds Which primitives to query for.
      * @return Whether primitives effects are supported.
      */
-    public boolean areAllPrimitivesSupported(
+    public final boolean areAllPrimitivesSupported(
             @NonNull @VibrationEffect.Composition.Primitive int... primitiveIds) {
         for (boolean supported : arePrimitivesSupported(primitiveIds)) {
             if (!supported) {
diff --git a/core/java/android/os/connectivity/CellularBatteryStats.java b/core/java/android/os/connectivity/CellularBatteryStats.java
index 633b374..121fd33 100644
--- a/core/java/android/os/connectivity/CellularBatteryStats.java
+++ b/core/java/android/os/connectivity/CellularBatteryStats.java
@@ -315,6 +315,8 @@
      * <li> index 3 = 15dBm < tx_power < 20dBm. </li>
      * <li> index 4 = tx_power > 20dBm. </li>
      * </ul>
+     *
+     * @hide
      */
     @NonNull
     public long getTxTimeMillis(
diff --git a/core/java/android/os/incremental/V4Signature.java b/core/java/android/os/incremental/V4Signature.java
index 71f931d..5cc73ca 100644
--- a/core/java/android/os/incremental/V4Signature.java
+++ b/core/java/android/os/incremental/V4Signature.java
@@ -72,16 +72,16 @@
      * V4 signature data.
      */
     public static class SigningInfo {
-        public final byte[] v3Digest;  // used to match with the corresponding APK
+        public final byte[] apkDigest;  // used to match with the corresponding APK
         public final byte[] certificate; // ASN.1 DER form
         public final byte[] additionalData; // a free-form binary data blob
         public final byte[] publicKey; // ASN.1 DER, must match the certificate
         public final int signatureAlgorithmId; // see the APK v2 doc for the list
         public final byte[] signature;
 
-        SigningInfo(byte[] v3Digest, byte[] certificate, byte[] additionalData,
+        SigningInfo(byte[] apkDigest, byte[] certificate, byte[] additionalData,
                 byte[] publicKey, int signatureAlgorithmId, byte[] signature) {
-            this.v3Digest = v3Digest;
+            this.apkDigest = apkDigest;
             this.certificate = certificate;
             this.additionalData = additionalData;
             this.publicKey = publicKey;
@@ -94,13 +94,13 @@
          */
         public static SigningInfo fromByteArray(byte[] bytes) throws IOException {
             ByteBuffer buffer = ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN);
-            byte[] v3Digest = readBytes(buffer);
+            byte[] apkDigest = readBytes(buffer);
             byte[] certificate = readBytes(buffer);
             byte[] additionalData = readBytes(buffer);
             byte[] publicKey = readBytes(buffer);
             int signatureAlgorithmId = buffer.getInt();
             byte[] signature = readBytes(buffer);
-            return new SigningInfo(v3Digest, certificate, additionalData, publicKey,
+            return new SigningInfo(apkDigest, certificate, additionalData, publicKey,
                     signatureAlgorithmId, signature);
         }
     }
@@ -150,7 +150,7 @@
         final int size =
                 4/*size*/ + 8/*fileSize*/ + 4/*hash_algorithm*/ + 1/*log2_blocksize*/ + bytesSize(
                         hashingInfo.salt) + bytesSize(hashingInfo.rawRootHash) + bytesSize(
-                        signingInfo.v3Digest) + bytesSize(signingInfo.certificate) + bytesSize(
+                        signingInfo.apkDigest) + bytesSize(signingInfo.certificate) + bytesSize(
                         signingInfo.additionalData);
         ByteBuffer buffer = ByteBuffer.allocate(size).order(ByteOrder.LITTLE_ENDIAN);
         buffer.putInt(size);
@@ -159,7 +159,7 @@
         buffer.put(hashingInfo.log2BlockSize);
         writeBytes(buffer, hashingInfo.salt);
         writeBytes(buffer, hashingInfo.rawRootHash);
-        writeBytes(buffer, signingInfo.v3Digest);
+        writeBytes(buffer, signingInfo.apkDigest);
         writeBytes(buffer, signingInfo.certificate);
         writeBytes(buffer, signingInfo.additionalData);
         return buffer.array();
diff --git a/core/java/android/os/storage/IStorageManager.aidl b/core/java/android/os/storage/IStorageManager.aidl
index bbc936d..99bdfd1 100644
--- a/core/java/android/os/storage/IStorageManager.aidl
+++ b/core/java/android/os/storage/IStorageManager.aidl
@@ -194,4 +194,5 @@
     boolean needsCheckpoint() = 86;
     void abortChanges(in String message, boolean retry) = 87;
     void clearUserKeyAuth(int userId, int serialNumber, in byte[] token, in byte[] secret) = 88;
+    void fixupAppDir(in String path) = 89;
 }
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index 1454aac..aee32ed 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -162,7 +162,12 @@
     /** {@hide} */
     public static final String PROP_SETTINGS_FUSE = FeatureFlagUtils.PERSIST_PREFIX
             + FeatureFlagUtils.SETTINGS_FUSE_FLAG;
-
+    /**
+     * Property that determines whether {@link OP_LEGACY_STORAGE} is sticky for
+     * legacy apps.
+     * @hide
+     */
+    public static final String PROP_LEGACY_OP_STICKY = "persist.sys.legacy_storage_sticky";
 
     /** {@hide} */
     public static final String UUID_PRIVATE_INTERNAL = null;
@@ -2470,6 +2475,36 @@
         }
     }
 
+    /**
+     * Asks StorageManager to fixup the permissions of an application-private directory.
+     *
+     * On devices without sdcardfs, filesystem permissions aren't magically fixed up. This
+     * is problematic mostly in application-private directories, which are owned by the
+     * application itself; if another process with elevated permissions creates a file
+     * in these directories, the UID will be wrong, and the owning package won't be able
+     * to access the files.
+     *
+     * This API can be used to recursively fix up the permissions on the passed in path.
+     * The default platform user of this API is the DownloadProvider, which can download
+     * things in application-private directories on their behalf.
+     *
+     * This API doesn't require any special permissions, because it merely changes the
+     * permissions of a directory to what they should anyway be.
+     *
+     * @param path the path for which we should fix up the permissions
+     *
+     * @hide
+     */
+    public void fixupAppDir(@NonNull File path) {
+        try {
+            mStorageManager.fixupAppDir(path.getCanonicalPath());
+        } catch (IOException e) {
+            Log.e(TAG, "Failed to get canonical path for " + path.getPath(), e);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
     /** {@hide} */
     private static void setCacheBehavior(File path, String name, boolean enabled)
             throws IOException {
diff --git a/core/java/android/permission/IPermissionManager.aidl b/core/java/android/permission/IPermissionManager.aidl
index 09df72c..235b083 100644
--- a/core/java/android/permission/IPermissionManager.aidl
+++ b/core/java/android/permission/IPermissionManager.aidl
@@ -54,6 +54,8 @@
 
     int checkUidPermission(String permName, int uid);
 
+    int checkDeviceIdentifierAccess(String packageName, String callingFeatureId, String message, int pid, int uid);
+
     void addOnPermissionsChangeListener(in IOnPermissionsChangeListener listener);
 
     void removeOnPermissionsChangeListener(in IOnPermissionsChangeListener listener);
diff --git a/core/java/android/permission/PermissionControllerService.java b/core/java/android/permission/PermissionControllerService.java
index 4a42230..82a7d78 100644
--- a/core/java/android/permission/PermissionControllerService.java
+++ b/core/java/android/permission/PermissionControllerService.java
@@ -58,6 +58,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Executor;
 import java.util.function.Consumer;
 import java.util.function.IntConsumer;
 
@@ -214,6 +215,7 @@
     @BinderThread
     public abstract void onGrantOrUpgradeDefaultRuntimePermissions(@NonNull Runnable callback);
 
+
     /**
      * Called by system to update the
      * {@link PackageManager}{@code .FLAG_PERMISSION_USER_SENSITIVE_WHEN_*} flags for permissions.
@@ -223,10 +225,22 @@
      *
      * Typically called by the system when a new app is installed or updated or when creating a
      * new user or upgrading either system or permission controller package.
+     *
+     * The callback will be executed by the provided Executor.
+     */
+    @BinderThread
+    public void onUpdateUserSensitivePermissionFlags(int uid, @NonNull Executor executor,
+            @NonNull Runnable callback) {
+        throw new AbstractMethodError("Must be overridden in implementing class");
+    }
+
+    /**
+     * Runs {@link #onUpdateUserSensitivePermissionFlags(int, Executor, Runnable)} with the main
+     * executor.
      */
     @BinderThread
     public void onUpdateUserSensitivePermissionFlags(int uid, @NonNull Runnable callback) {
-        throw new AbstractMethodError("Must be overridden in implementing class");
+        onUpdateUserSensitivePermissionFlags(uid, getMainExecutor(), callback);
     }
 
     /**
diff --git a/core/java/android/permission/PermissionManager.java b/core/java/android/permission/PermissionManager.java
index 8308bb3..3dc8e99 100644
--- a/core/java/android/permission/PermissionManager.java
+++ b/core/java/android/permission/PermissionManager.java
@@ -40,6 +40,7 @@
 import android.util.Slog;
 
 import com.android.internal.annotations.Immutable;
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.CollectionUtils;
 
 import java.util.ArrayList;
@@ -84,10 +85,25 @@
      */
     public PermissionManager(@NonNull Context context, IPackageManager packageManager)
             throws ServiceManager.ServiceNotFoundException {
+        this(context, packageManager, IPermissionManager.Stub.asInterface(
+                ServiceManager.getServiceOrThrow("permissionmgr")));
+    }
+
+    /**
+     * Creates a new instance with the provided instantiation of the IPermissionManager.
+     *
+     * @param context           the current context in which to operate
+     * @param packageManager    package manager service to be used for package related permission
+     *                          requests
+     * @param permissionManager injectable permission manager service
+     * @hide
+     */
+    @VisibleForTesting
+    public PermissionManager(@NonNull Context context, IPackageManager packageManager,
+            IPermissionManager permissionManager) {
         mContext = context;
         mPackageManager = packageManager;
-        mPermissionManager = IPermissionManager.Stub.asInterface(
-                ServiceManager.getServiceOrThrow("permissionmgr"));
+        mPermissionManager = permissionManager;
     }
 
     /**
@@ -177,7 +193,6 @@
      * @param callback The callback provided by caller to be notified when grant completes
      * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS)
     public void grantDefaultPermissionsToLuiApp(
             @NonNull String packageName, @NonNull UserHandle user,
@@ -199,7 +214,6 @@
      * @param callback The callback provided by caller to be notified when grant completes
      * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS)
     public void revokeDefaultPermissionsFromLuiApps(
             @NonNull String[] packageNames, @NonNull UserHandle user,
@@ -221,7 +235,6 @@
      * @param callback The callback provided by caller to be notified when grant completes
      * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS)
     public void grantDefaultPermissionsToEnabledImsServices(
             @NonNull String[] packageNames, @NonNull UserHandle user,
@@ -243,7 +256,6 @@
      * @param callback The callback provided by caller to be notified when grant completes
      * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS)
     public void grantDefaultPermissionsToEnabledTelephonyDataServices(
             @NonNull String[] packageNames, @NonNull UserHandle user,
@@ -265,7 +277,6 @@
      * @param callback The callback provided by caller to be notified when revoke completes
      * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS)
     public void revokeDefaultPermissionsFromDisabledTelephonyDataServices(
             @NonNull String[] packageNames, @NonNull UserHandle user,
@@ -287,7 +298,6 @@
      * @param callback The callback provided by caller to be notified when grant completes
      * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS)
     public void grantDefaultPermissionsToEnabledCarrierApps(@NonNull String[] packageNames,
             @NonNull UserHandle user, @NonNull @CallbackExecutor Executor executor,
@@ -492,6 +502,30 @@
         }
     }
 
+    /**
+     * Checks whether the package with the given pid/uid can read device identifiers.
+     *
+     * @param packageName      the name of the package to be checked for identifier access
+     * @param message          the message to be used for logging during identifier access
+     *                         verification
+     * @param callingFeatureId the feature in the package
+     * @param pid              the process id of the package to be checked
+     * @param uid              the uid of the package to be checked
+     * @return {@link PackageManager#PERMISSION_GRANTED} if the package is allowed identifier
+     * access, {@link PackageManager#PERMISSION_DENIED} otherwise
+     * @hide
+     */
+    @SystemApi
+    public int checkDeviceIdentifierAccess(@Nullable String packageName, @Nullable String message,
+            @Nullable String callingFeatureId, int pid, int uid) {
+        try {
+            return mPermissionManager.checkDeviceIdentifierAccess(packageName, message,
+                    callingFeatureId, pid, uid);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
     /* @hide */
     private static int checkPermissionUncached(@Nullable String permission, int pid, int uid) {
         final IActivityManager am = ActivityManager.getService();
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index 146387e..31e0a06 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -57,6 +57,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.List;
 
 /**
  * <p>
@@ -2210,6 +2211,28 @@
         public static InputStream openContactPhotoInputStream(ContentResolver cr, Uri contactUri) {
             return openContactPhotoInputStream(cr, contactUri, false);
         }
+
+        /**
+         * Creates and returns a corp lookup URI from the given enterprise lookup URI by removing
+         * {@link #ENTERPRISE_CONTACT_LOOKUP_PREFIX} from the key. Returns {@code null} if the given
+         * URI is not an enterprise lookup URI.
+         *
+         * @hide
+         */
+        @Nullable
+        public static Uri createCorpLookupUriFromEnterpriseLookupUri(
+                @NonNull Uri enterpriseLookupUri) {
+            final List<String> pathSegments = enterpriseLookupUri.getPathSegments();
+            if (pathSegments == null || pathSegments.size() <= 2) {
+                return null;
+            }
+            final String key = pathSegments.get(2);
+            if (TextUtils.isEmpty(key) || !key.startsWith(ENTERPRISE_CONTACT_LOOKUP_PREFIX)) {
+                return null;
+            }
+            final String actualKey = key.substring(ENTERPRISE_CONTACT_LOOKUP_PREFIX.length());
+            return Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, actualKey);
+        }
     }
 
     /**
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index ff34055..530585d 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -6564,13 +6564,6 @@
          * Setting specifying if the accessibility shortcut is enabled.
          * @hide
          */
-        public static final String ACCESSIBILITY_SHORTCUT_ENABLED =
-                "accessibility_shortcut_enabled";
-
-        /**
-         * Setting specifying if the accessibility shortcut is enabled.
-         * @hide
-         */
         public static final String ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN =
                 "accessibility_shortcut_on_lock_screen";
 
@@ -6596,11 +6589,9 @@
                 "accessibility_shortcut_target_service";
 
         /**
-         * Setting specifying the accessibility services, accessibility shortcut targets,
-         * or features to be toggled via the accessibility button in the navigation bar.
-         *
-         * <p> This is a colon-separated string list which contains the flattened
-         * {@link ComponentName} and the class name of a system class implementing a supported
+         * Setting specifying the accessibility service or feature to be toggled via the
+         * accessibility button in the navigation bar. This is either a flattened
+         * {@link ComponentName} or the class name of a system class implementing a supported
          * accessibility feature.
          * @hide
          */
@@ -6609,15 +6600,14 @@
 
         /**
          * Setting specifying the accessibility services, accessibility shortcut targets,
-         * or features to be toggled via the long press accessibility button in the navigation bar.
+         * or features to be toggled via the accessibility button in the navigation bar.
          *
          * <p> This is a colon-separated string list which contains the flattened
          * {@link ComponentName} and the class name of a system class implementing a supported
          * accessibility feature.
          * @hide
          */
-        public static final String ACCESSIBILITY_BUTTON_LONG_PRESS_TARGETS =
-                "accessibility_button_long_press_targets";
+        public static final String ACCESSIBILITY_BUTTON_TARGETS = "accessibility_button_targets";
 
         /**
          * The system class name of magnification controller which is a target to be toggled via
@@ -6782,8 +6772,8 @@
          * zoom in the display content and is targeted to low vision users. The current
          * magnification scale is controlled by {@link #ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE}.
          *
-         * @deprecated Use {@link #ACCESSIBILITY_BUTTON_TARGET_COMPONENT} instead.
-         * {@link #ACCESSIBILITY_BUTTON_TARGET_COMPONENT} holds the magnification system class name
+         * @deprecated Use {@link #ACCESSIBILITY_BUTTON_TARGETS} instead.
+         * {@link #ACCESSIBILITY_BUTTON_TARGETS} holds the magnification system class name
          * when navigation bar magnification is enabled.
          * @hide
          */
@@ -8058,8 +8048,11 @@
         @RequiresPermission(Manifest.permission.WRITE_SECURE_SETTINGS)
         public static final String SYNC_PARENT_SOUNDS = "sync_parent_sounds";
 
-        /** @hide */
+        /**
+         * @hide
+         */
         @UnsupportedAppUsage
+        @TestApi
         public static final String IMMERSIVE_MODE_CONFIRMATIONS = "immersive_mode_confirmations";
 
         /**
@@ -8578,6 +8571,16 @@
         public static final String QS_TILES = "sysui_qs_tiles";
 
         /**
+         * Whether this user has enabled Quick controls.
+         *
+         * 0 indicates disabled and 1 indicates enabled. A non existent value should be treated as
+         * enabled.
+         *
+         * @hide
+         */
+        public static final String CONTROLS_ENABLED = "controls_enabled";
+
+        /**
          * Specifies whether the web action API is enabled.
          *
          * @hide
@@ -9718,6 +9721,8 @@
        public static final String NETSTATS_SAMPLE_ENABLED = "netstats_sample_enabled";
        /** {@hide} */
        public static final String NETSTATS_AUGMENT_ENABLED = "netstats_augment_enabled";
+       /** {@hide} */
+       public static final String NETSTATS_COMBINE_SUBTYPE_ENABLED = "netstats_combine_subtype_enabled";
 
        /** {@hide} */
        public static final String NETSTATS_DEV_BUCKET_DURATION = "netstats_dev_bucket_duration";
@@ -10333,6 +10338,15 @@
         public static final String WIFI_WAKEUP_ENABLED = "wifi_wakeup_enabled";
 
         /**
+         * Value to specify if wifi settings migration is complete or not.
+         * Note: This should only be used from within {@link android.net.wifi.WifiMigration} class.
+         *
+         * Type: int (0 for false, 1 for true)
+         * @hide
+         */
+        public static final String WIFI_MIGRATION_COMPLETED = "wifi_migration_completed";
+
+        /**
          * Value to specify whether network quality scores and badging should be shown in the UI.
          *
          * Type: int (0 for false, 1 for true)
@@ -12755,12 +12769,12 @@
          * <p>
          * Type: int (0 for false, 1 for true)
          * @hide
-         * @deprecated Use {@link android.provider.Telephony.SimInfo#ENHANCED_4G_MODE_ENABLED}
-         * instead.
+         * @deprecated Use
+         * {@link android.provider.Telephony.SimInfo#COLUMN_ENHANCED_4G_MODE_ENABLED} instead.
          */
         @Deprecated
         public static final String ENHANCED_4G_MODE_ENABLED =
-                Telephony.SimInfo.ENHANCED_4G_MODE_ENABLED;
+                Telephony.SimInfo.COLUMN_ENHANCED_4G_MODE_ENABLED;
 
         /**
          * Whether VT (Video Telephony over IMS) is enabled
@@ -12768,10 +12782,10 @@
          * Type: int (0 for false, 1 for true)
          *
          * @hide
-         * @deprecated Use {@link android.provider.Telephony.SimInfo#VT_IMS_ENABLED} instead.
+         * @deprecated Use {@link android.provider.Telephony.SimInfo#COLUMN_VT_IMS_ENABLED} instead.
          */
         @Deprecated
-        public static final String VT_IMS_ENABLED = Telephony.SimInfo.VT_IMS_ENABLED;
+        public static final String VT_IMS_ENABLED = Telephony.SimInfo.COLUMN_VT_IMS_ENABLED;
 
         /**
          * Whether WFC is enabled
@@ -12779,10 +12793,11 @@
          * Type: int (0 for false, 1 for true)
          *
          * @hide
-         * @deprecated Use {@link android.provider.Telephony.SimInfo#WFC_IMS_ENABLED} instead.
+         * @deprecated Use
+         * {@link android.provider.Telephony.SimInfo#COLUMN_WFC_IMS_ENABLED} instead.
          */
         @Deprecated
-        public static final String WFC_IMS_ENABLED = Telephony.SimInfo.WFC_IMS_ENABLED;
+        public static final String WFC_IMS_ENABLED = Telephony.SimInfo.COLUMN_WFC_IMS_ENABLED;
 
         /**
          * WFC mode on home/non-roaming network.
@@ -12790,10 +12805,10 @@
          * Type: int - 2=Wi-Fi preferred, 1=Cellular preferred, 0=Wi-Fi only
          *
          * @hide
-         * @deprecated Use {@link android.provider.Telephony.SimInfo#WFC_IMS_MODE} instead.
+         * @deprecated Use {@link android.provider.Telephony.SimInfo#COLUMN_WFC_IMS_MODE} instead.
          */
         @Deprecated
-        public static final String WFC_IMS_MODE = Telephony.SimInfo.WFC_IMS_MODE;
+        public static final String WFC_IMS_MODE = Telephony.SimInfo.COLUMN_WFC_IMS_MODE;
 
         /**
          * WFC mode on roaming network.
@@ -12801,11 +12816,12 @@
          * Type: int - see {@link #WFC_IMS_MODE} for values
          *
          * @hide
-         * @deprecated Use {@link android.provider.Telephony.SimInfo#WFC_IMS_ROAMING_MODE}
+         * @deprecated Use {@link android.provider.Telephony.SimInfo#COLUMN_WFC_IMS_ROAMING_MODE}
          * instead.
          */
         @Deprecated
-        public static final String WFC_IMS_ROAMING_MODE = Telephony.SimInfo.WFC_IMS_ROAMING_MODE;
+        public static final String WFC_IMS_ROAMING_MODE =
+                Telephony.SimInfo.COLUMN_WFC_IMS_ROAMING_MODE;
 
         /**
          * Whether WFC roaming is enabled
@@ -12813,12 +12829,12 @@
          * Type: int (0 for false, 1 for true)
          *
          * @hide
-         * @deprecated Use {@link android.provider.Telephony.SimInfo#WFC_IMS_ROAMING_ENABLED}
+         * @deprecated Use {@link android.provider.Telephony.SimInfo#COLUMN_WFC_IMS_ROAMING_ENABLED}
          * instead
          */
         @Deprecated
         public static final String WFC_IMS_ROAMING_ENABLED =
-                Telephony.SimInfo.WFC_IMS_ROAMING_ENABLED;
+                Telephony.SimInfo.COLUMN_WFC_IMS_ROAMING_ENABLED;
 
         /**
          * Whether user can enable/disable LTE as a preferred network. A carrier might control
diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java
index 17e3748..1eb53aa 100644
--- a/core/java/android/provider/Telephony.java
+++ b/core/java/android/provider/Telephony.java
@@ -4778,7 +4778,6 @@
      * Contains SIM Information
      * @hide
      */
-    @SystemApi
     public static final class SimInfo {
         /**
          * Not instantiable.
@@ -4788,6 +4787,7 @@
 
         /**
          * The {@code content://} style URI for this provider.
+         * @hide
          */
         @NonNull
         public static final Uri CONTENT_URI = Uri.parse("content://telephony/siminfo");
@@ -4795,25 +4795,32 @@
         /**
          * TelephonyProvider unique key column name is the subscription id.
          * <P>Type: TEXT (String)</P>
+         *
+         * @hide
          */
-        public static final String UNIQUE_KEY_SUBSCRIPTION_ID = "_id";
+        public static final String COLUMN_UNIQUE_KEY_SUBSCRIPTION_ID = "_id";
 
         /**
          * TelephonyProvider column name for a unique identifier for the subscription within the
          * specific subscription type. For example, it contains SIM ICC Identifier subscriptions
          * on Local SIMs. and Mac-address for Remote-SIM Subscriptions for Bluetooth devices.
          * <P>Type: TEXT (String)</P>
+         *
+         * @hide
          */
-        public static final String ICC_ID = "icc_id";
+        public static final String COLUMN_ICC_ID = "icc_id";
 
         /**
          * TelephonyProvider column name for user SIM_SlOT_INDEX
          * <P>Type: INTEGER (int)</P>
+         *
+         * @hide
          */
-        public static final String SIM_SLOT_INDEX = "sim_id";
+        public static final String COLUMN_SIM_SLOT_INDEX = "sim_id";
 
         /**
          * SIM is not inserted
+         * @hide
          */
         public static final int SIM_NOT_INSERTED = -1;
 
@@ -4822,14 +4829,18 @@
          * <P>Type: INTEGER (int)</P> {@link #SUBSCRIPTION_TYPE_LOCAL_SIM} for Local-SIM
          * Subscriptions, {@link #SUBSCRIPTION_TYPE_REMOTE_SIM} for Remote-SIM Subscriptions.
          * Default value is 0.
+         *
+         * @hide
          */
-        public static final String SUBSCRIPTION_TYPE = "subscription_type";
+        public static final String COLUMN_SUBSCRIPTION_TYPE = "subscription_type";
 
         /**
          * This constant is to designate a subscription as a Local-SIM Subscription.
          * <p> A Local-SIM can be a physical SIM inserted into a sim-slot in the device, or eSIM on
          * the device.
          * </p>
+         *
+         * @hide
          */
         public static final int SUBSCRIPTION_TYPE_LOCAL_SIM = 0;
 
@@ -4856,6 +4867,8 @@
          * phone; i.e., new Remote-SIM subscription treats the reconnected phone as a Remote-SIM
          * that was never seen before.
          * </p>
+         *
+         * @hide
          */
         public static final int SUBSCRIPTION_TYPE_REMOTE_SIM = 1;
 
@@ -4868,71 +4881,89 @@
          * subscription and while is in voice call.
          *
          * Default value is empty string.
+         *
+         * @hide
          */
-        public static final String DATA_ENABLED_OVERRIDE_RULES = "data_enabled_override_rules";
+        public static final String COLUMN_DATA_ENABLED_OVERRIDE_RULES =
+                "data_enabled_override_rules";
 
         /**
          * TelephonyProvider column name for user displayed name.
          * <P>Type: TEXT (String)</P>
+         *
+         * @hide
          */
-        public static final String DISPLAY_NAME = "display_name";
+        public static final String COLUMN_DISPLAY_NAME = "display_name";
 
         /**
          * TelephonyProvider column name for the service provider name for the SIM.
          * <P>Type: TEXT (String)</P>
+         *
+         * @hide
          */
-        public static final String CARRIER_NAME = "carrier_name";
+        public static final String COLUMN_CARRIER_NAME = "carrier_name";
 
         /**
          * TelephonyProvider column name for source of the user displayed name.
          * <P>Type: INT (int)</P> with one of the NAME_SOURCE_XXXX values below
+         *
+         * @hide
          */
-        public static final String NAME_SOURCE = "name_source";
+        public static final String COLUMN_NAME_SOURCE = "name_source";
 
-        /** The name_source is the default, which is from the carrier id. */
-        public static final int NAME_SOURCE_DEFAULT = 0;
+        /** The name_source is from the carrier id. {@hide} */
+        public static final int NAME_SOURCE_CARRIER_ID = 0;
 
         /**
          * The name_source is from SIM EF_SPN.
+         * @hide
          */
         public static final int NAME_SOURCE_SIM_SPN = 1;
 
         /**
          * The name_source is from user input
+         * @hide
          */
         public static final int NAME_SOURCE_USER_INPUT = 2;
 
         /**
          * The name_source is carrier (carrier app, carrier config, etc.)
+         * @hide
          */
         public static final int NAME_SOURCE_CARRIER = 3;
 
         /**
          * The name_source is from SIM EF_PNN.
+         * @hide
          */
         public static final int NAME_SOURCE_SIM_PNN = 4;
 
         /**
          * TelephonyProvider column name for the color of a SIM.
          * <P>Type: INTEGER (int)</P>
+         *
+         * @hide
          */
-        public static final String COLOR = "color";
+        public static final String COLUMN_COLOR = "color";
 
-        /** TelephonyProvider column name for the default color of a SIM {@hide} */
+        /** The default color of a SIM {@hide} */
         public static final int COLOR_DEFAULT = 0;
 
         /**
          * TelephonyProvider column name for the phone number of a SIM.
          * <P>Type: TEXT (String)</P>
+         *
+         * @hide
          */
-        public static final String NUMBER = "number";
+        public static final String COLUMN_NUMBER = "number";
 
         /**
          * TelephonyProvider column name for the number display format of a SIM.
          * <P>Type: INTEGER (int)</P>
+         *
          * @hide
          */
-        public static final String DISPLAY_NUMBER_FORMAT = "display_number_format";
+        public static final String COLUMN_DISPLAY_NUMBER_FORMAT = "display_number_format";
 
         /**
          * TelephonyProvider column name for the default display format of a SIM
@@ -4943,73 +4974,89 @@
         /**
          * TelephonyProvider column name for whether data roaming is enabled.
          * <P>Type: INTEGER (int)</P>
+         *
+         * @hide
          */
-        public static final String DATA_ROAMING = "data_roaming";
+        public static final String COLUMN_DATA_ROAMING = "data_roaming";
 
-        /** Indicates that data roaming is enabled for a subscription */
+        /** Indicates that data roaming is enabled for a subscription {@hide} */
         public static final int DATA_ROAMING_ENABLE = 1;
 
-        /** Indicates that data roaming is disabled for a subscription */
+        /** Indicates that data roaming is disabled for a subscription {@hide} */
         public static final int DATA_ROAMING_DISABLE = 0;
 
-        /** TelephonyProvider column name for default data roaming setting: disable */
-        public static final int DATA_ROAMING_DEFAULT = DATA_ROAMING_DISABLE;
-
         /**
          * TelephonyProvider column name for subscription carrier id.
          * @see TelephonyManager#getSimCarrierId()
          * <p>Type: INTEGER (int) </p>
+         *
+         * @hide
          */
-        public static final String CARRIER_ID = "carrier_id";
+        public static final String COLUMN_CARRIER_ID = "carrier_id";
 
         /**
          * A comma-separated list of EHPLMNs associated with the subscription
          * <P>Type: TEXT (String)</P>
+         *
+         * @hide
          */
-        public static final String EHPLMNS = "ehplmns";
+        public static final String COLUMN_EHPLMNS = "ehplmns";
 
         /**
          * A comma-separated list of HPLMNs associated with the subscription
          * <P>Type: TEXT (String)</P>
+         *
+         * @hide
          */
-        public static final String HPLMNS = "hplmns";
+        public static final String COLUMN_HPLMNS = "hplmns";
 
         /**
          * TelephonyProvider column name for the MCC associated with a SIM, stored as a string.
          * <P>Type: TEXT (String)</P>
+         *
+         * @hide
          */
-        public static final String MCC_STRING = "mcc_string";
+        public static final String COLUMN_MCC_STRING = "mcc_string";
 
         /**
          * TelephonyProvider column name for the MNC associated with a SIM, stored as a string.
          * <P>Type: TEXT (String)</P>
+         *
+         * @hide
          */
-        public static final String MNC_STRING = "mnc_string";
+        public static final String COLUMN_MNC_STRING = "mnc_string";
 
         /**
          * TelephonyProvider column name for the MCC associated with a SIM.
          * <P>Type: INTEGER (int)</P>
+         *
+         * @hide
          */
-        public static final String MCC = "mcc";
+        public static final String COLUMN_MCC = "mcc";
 
         /**
          * TelephonyProvider column name for the MNC associated with a SIM.
          * <P>Type: INTEGER (int)</P>
+         *
+         * @hide
          */
-        public static final String MNC = "mnc";
+        public static final String COLUMN_MNC = "mnc";
 
         /**
          * TelephonyProvider column name for the iso country code associated with a SIM.
          * <P>Type: TEXT (String)</P>
+         *
+         * @hide
          */
-        public static final String ISO_COUNTRY_CODE = "iso_country_code";
+        public static final String COLUMN_ISO_COUNTRY_CODE = "iso_country_code";
 
         /**
          * TelephonyProvider column name for the sim provisioning status associated with a SIM.
          * <P>Type: INTEGER (int)</P>
+         *
          * @hide
          */
-        public static final String SIM_PROVISIONING_STATUS = "sim_provisioning_status";
+        public static final String COLUMN_SIM_PROVISIONING_STATUS = "sim_provisioning_status";
 
         /** The sim is provisioned {@hide} */
         public static final int SIM_PROVISIONED = 0;
@@ -5018,147 +5065,174 @@
          * TelephonyProvider column name for whether a subscription is embedded (that is, present on
          * an eSIM).
          * <p>Type: INTEGER (int), 1 for embedded or 0 for non-embedded.
+         *
+         * @hide
          */
-        public static final String IS_EMBEDDED = "is_embedded";
+        public static final String COLUMN_IS_EMBEDDED = "is_embedded";
 
         /**
          * TelephonyProvider column name for SIM card identifier. For UICC card it is the ICCID of
          * the current enabled profile on the card, while for eUICC card it is the EID of the card.
          * <P>Type: TEXT (String)</P>
+         *
+         * @hide
          */
-        public static final String CARD_ID = "card_id";
+        public static final String COLUMN_CARD_ID = "card_id";
 
         /**
          * TelephonyProvider column name for the encoded {@link UiccAccessRule}s from
-         * {@link UiccAccessRule#encodeRules}. Only present if {@link #IS_EMBEDDED} is 1.
+         * {@link UiccAccessRule#encodeRules}. Only present if {@link #COLUMN_IS_EMBEDDED} is 1.
          * <p>TYPE: BLOB
+         *
+         * @hide
          */
-        public static final String ACCESS_RULES = "access_rules";
+        public static final String COLUMN_ACCESS_RULES = "access_rules";
 
         /**
          * TelephonyProvider column name for the encoded {@link UiccAccessRule}s from
          * {@link UiccAccessRule#encodeRules} but for the rules that come from CarrierConfigs.
          * Only present if there are access rules in CarrierConfigs
          * <p>TYPE: BLOB
+         *
+         * @hide
          */
-        public static final String ACCESS_RULES_FROM_CARRIER_CONFIGS =
+        public static final String COLUMN_ACCESS_RULES_FROM_CARRIER_CONFIGS =
                 "access_rules_from_carrier_configs";
 
         /**
          * TelephonyProvider column name identifying whether an embedded subscription is on a
          * removable card. Such subscriptions are marked inaccessible as soon as the current card
          * is removed. Otherwise, they will remain accessible unless explicitly deleted. Only
-         * present if {@link #IS_EMBEDDED} is 1.
+         * present if {@link #COLUMN_IS_EMBEDDED} is 1.
          * <p>TYPE: INTEGER (int), 1 for removable or 0 for non-removable.
+         *
+         * @hide
          */
-        public static final String IS_REMOVABLE = "is_removable";
+        public static final String COLUMN_IS_REMOVABLE = "is_removable";
 
-        /** TelephonyProvider column name for extreme threat in CB settings */
-        public static final String CB_EXTREME_THREAT_ALERT = "enable_cmas_extreme_threat_alerts";
+        /** TelephonyProvider column name for extreme threat in CB settings {@hide} */
+        public static final String COLUMN_CB_EXTREME_THREAT_ALERT =
+                "enable_cmas_extreme_threat_alerts";
 
-        /** TelephonyProvider column name for severe threat in CB settings */
-        public static final String CB_SEVERE_THREAT_ALERT = "enable_cmas_severe_threat_alerts";
+        /** TelephonyProvider column name for severe threat in CB settings {@hide} */
+        public static final String COLUMN_CB_SEVERE_THREAT_ALERT =
+                "enable_cmas_severe_threat_alerts";
 
-        /** TelephonyProvider column name for amber alert in CB settings */
-        public static final String CB_AMBER_ALERT = "enable_cmas_amber_alerts";
+        /** TelephonyProvider column name for amber alert in CB settings {@hide} */
+        public static final String COLUMN_CB_AMBER_ALERT = "enable_cmas_amber_alerts";
 
-        /** TelephonyProvider column name for emergency alert in CB settings */
-        public static final String CB_EMERGENCY_ALERT = "enable_emergency_alerts";
+        /** TelephonyProvider column name for emergency alert in CB settings {@hide} */
+        public static final String COLUMN_CB_EMERGENCY_ALERT = "enable_emergency_alerts";
 
-        /** TelephonyProvider column name for alert sound duration in CB settings */
-        public static final String CB_ALERT_SOUND_DURATION = "alert_sound_duration";
+        /** TelephonyProvider column name for alert sound duration in CB settings {@hide} */
+        public static final String COLUMN_CB_ALERT_SOUND_DURATION = "alert_sound_duration";
 
-        /** TelephonyProvider column name for alert reminder interval in CB settings */
-        public static final String CB_ALERT_REMINDER_INTERVAL = "alert_reminder_interval";
+        /** TelephonyProvider column name for alert reminder interval in CB settings {@hide} */
+        public static final String COLUMN_CB_ALERT_REMINDER_INTERVAL = "alert_reminder_interval";
 
-        /** TelephonyProvider column name for enabling vibrate in CB settings */
-        public static final String CB_ALERT_VIBRATE = "enable_alert_vibrate";
+        /** TelephonyProvider column name for enabling vibrate in CB settings {@hide} */
+        public static final String COLUMN_CB_ALERT_VIBRATE = "enable_alert_vibrate";
 
-        /** TelephonyProvider column name for enabling alert speech in CB settings */
-        public static final String CB_ALERT_SPEECH = "enable_alert_speech";
+        /** TelephonyProvider column name for enabling alert speech in CB settings {@hide} */
+        public static final String COLUMN_CB_ALERT_SPEECH = "enable_alert_speech";
 
-        /** TelephonyProvider column name for ETWS test alert in CB settings */
-        public static final String CB_ETWS_TEST_ALERT = "enable_etws_test_alerts";
+        /** TelephonyProvider column name for ETWS test alert in CB settings {@hide} */
+        public static final String COLUMN_CB_ETWS_TEST_ALERT = "enable_etws_test_alerts";
 
-        /** TelephonyProvider column name for enable channel50 alert in CB settings */
-        public static final String CB_CHANNEL_50_ALERT = "enable_channel_50_alerts";
+        /** TelephonyProvider column name for enable channel50 alert in CB settings {@hide} */
+        public static final String COLUMN_CB_CHANNEL_50_ALERT = "enable_channel_50_alerts";
 
-        /** TelephonyProvider column name for CMAS test alert in CB settings */
-        public static final String CB_CMAS_TEST_ALERT = "enable_cmas_test_alerts";
+        /** TelephonyProvider column name for CMAS test alert in CB settings {@hide} */
+        public static final String COLUMN_CB_CMAS_TEST_ALERT = "enable_cmas_test_alerts";
 
-        /** TelephonyProvider column name for Opt out dialog in CB settings */
-        public static final String CB_OPT_OUT_DIALOG = "show_cmas_opt_out_dialog";
+        /** TelephonyProvider column name for Opt out dialog in CB settings {@hide} */
+        public static final String COLUMN_CB_OPT_OUT_DIALOG = "show_cmas_opt_out_dialog";
 
         /**
          * TelephonyProvider column name for enable Volte.
          *
          * If this setting is not initialized (set to -1)  then we use the Carrier Config value
          * {@link CarrierConfigManager#KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL}.
+         *
+         * @hide
          */
-        public static final String ENHANCED_4G_MODE_ENABLED = "volte_vt_enabled";
+        public static final String COLUMN_ENHANCED_4G_MODE_ENABLED = "volte_vt_enabled";
 
-        /** TelephonyProvider column name for enable VT (Video Telephony over IMS) */
-        public static final String VT_IMS_ENABLED = "vt_ims_enabled";
+        /** TelephonyProvider column name for enable VT (Video Telephony over IMS) {@hide} */
+        public static final String COLUMN_VT_IMS_ENABLED = "vt_ims_enabled";
 
-        /** TelephonyProvider column name for enable Wifi calling */
-        public static final String WFC_IMS_ENABLED = "wfc_ims_enabled";
+        /** TelephonyProvider column name for enable Wifi calling {@hide} */
+        public static final String COLUMN_WFC_IMS_ENABLED = "wfc_ims_enabled";
 
-        /** TelephonyProvider column name for Wifi calling mode */
-        public static final String WFC_IMS_MODE = "wfc_ims_mode";
+        /** TelephonyProvider column name for Wifi calling mode {@hide} */
+        public static final String COLUMN_WFC_IMS_MODE = "wfc_ims_mode";
 
-        /** TelephonyProvider column name for Wifi calling mode in roaming */
-        public static final String WFC_IMS_ROAMING_MODE = "wfc_ims_roaming_mode";
+        /** TelephonyProvider column name for Wifi calling mode in roaming {@hide} */
+        public static final String COLUMN_WFC_IMS_ROAMING_MODE = "wfc_ims_roaming_mode";
 
-        /** TelephonyProvider column name for enable Wifi calling in roaming */
-        public static final String WFC_IMS_ROAMING_ENABLED = "wfc_ims_roaming_enabled";
+        /** TelephonyProvider column name for enable Wifi calling in roaming {@hide} */
+        public static final String COLUMN_WFC_IMS_ROAMING_ENABLED = "wfc_ims_roaming_enabled";
 
         /**
          * TelephonyProvider column name for determining if the user has enabled IMS RCS User
          * Capability Exchange (UCE) for this subscription.
+         *
+         * @hide
          */
-        public static final String IMS_RCS_UCE_ENABLED = "ims_rcs_uce_enabled";
+        public static final String COLUMN_IMS_RCS_UCE_ENABLED = "ims_rcs_uce_enabled";
 
         /**
          * TelephonyProvider column name for whether a subscription is opportunistic, that is,
          * whether the network it connects to is limited in functionality or coverage.
          * For example, CBRS.
          * <p>Type: INTEGER (int), 1 for opportunistic or 0 for non-opportunistic.
+         *
+         * @hide
          */
-        public static final String IS_OPPORTUNISTIC = "is_opportunistic";
+        public static final String COLUMN_IS_OPPORTUNISTIC = "is_opportunistic";
 
         /**
          * TelephonyProvider column name for group ID. Subscriptions with same group ID
          * are considered bundled together, and should behave as a single subscription at
          * certain scenarios.
+         *
+         * @hide
          */
-        public static final String GROUP_UUID = "group_uuid";
+        public static final String COLUMN_GROUP_UUID = "group_uuid";
 
         /**
          * TelephonyProvider column name for group owner. It's the package name who created
          * the subscription group.
+         *
+         * @hide
          */
-        public static final String GROUP_OWNER = "group_owner";
+        public static final String COLUMN_GROUP_OWNER = "group_owner";
 
         /**
          * TelephonyProvider column name for whether a subscription is metered or not, that is,
          * whether the network it connects to charges for subscription or not. For example, paid
          * CBRS or unpaid.
+         *
          * @hide
          */
-        public static final String IS_METERED = "is_metered";
+        public static final String COLUMN_IS_METERED = "is_metered";
 
         /**
          * TelephonyProvider column name for the profile class of a subscription
-         * Only present if {@link #IS_EMBEDDED} is 1.
+         * Only present if {@link #COLUMN_IS_EMBEDDED} is 1.
          * <P>Type: INTEGER (int)</P>
+         *
+         * @hide
          */
-        public static final String PROFILE_CLASS = "profile_class";
+        public static final String COLUMN_PROFILE_CLASS = "profile_class";
 
         /**
          * A testing profile can be pre-loaded or downloaded onto
          * the eUICC and provides connectivity to test equipment
          * for the purpose of testing the device and the eUICC. It
          * is not intended to store any operator credentials.
+         *
+         * @hide
          */
         public static final int PROFILE_CLASS_TESTING = 0;
 
@@ -5166,6 +5240,8 @@
          * A provisioning profile is pre-loaded onto the eUICC and
          * provides connectivity to a mobile network solely for the
          * purpose of provisioning profiles.
+         *
+         * @hide
          */
         public static final int PROFILE_CLASS_PROVISIONING = 1;
 
@@ -5173,6 +5249,8 @@
          * An operational profile can be pre-loaded or downloaded
          * onto the eUICC and provides services provided by the
          * operator.
+         *
+         * @hide
          */
         public static final int PROFILE_CLASS_OPERATIONAL = 2;
 
@@ -5180,26 +5258,32 @@
          * The profile class is unset. This occurs when profile class
          * info is not available. The subscription either has no profile
          * metadata or the profile metadata did not encode profile class.
+         *
+         * @hide
          */
         public static final int PROFILE_CLASS_UNSET = -1;
 
-        /** Default profile class */
-        public static final int PROFILE_CLASS_DEFAULT = PROFILE_CLASS_UNSET;
-
         /**
          * IMSI (International Mobile Subscriber Identity).
          * <P>Type: TEXT </P>
+         *
+         * @hide
          */
-        public static final String IMSI = "imsi";
+        public static final String COLUMN_IMSI = "imsi";
 
-        /** Whether uicc applications is set to be enabled or disabled. By default it's enabled. */
-        public static final String UICC_APPLICATIONS_ENABLED = "uicc_applications_enabled";
+        /**
+         * Whether uicc applications is set to be enabled or disabled. By default it's enabled.
+         * @hide
+         */
+        public static final String COLUMN_UICC_APPLICATIONS_ENABLED = "uicc_applications_enabled";
 
         /**
          * TelephonyProvider column name for allowed network types. Indicate which network types
          * are allowed. Default is -1.
          * <P>Type: BIGINT (long) </P>
+         *
+         * @hide
          */
-        public static final String ALLOWED_NETWORK_TYPES = "allowed_network_types";
+        public static final String COLUMN_ALLOWED_NETWORK_TYPES = "allowed_network_types";
     }
 }
diff --git a/core/java/android/security/FileIntegrityManager.java b/core/java/android/security/FileIntegrityManager.java
index cdd6584..266046e 100644
--- a/core/java/android/security/FileIntegrityManager.java
+++ b/core/java/android/security/FileIntegrityManager.java
@@ -31,9 +31,11 @@
 @SystemService(Context.FILE_INTEGRITY_SERVICE)
 public final class FileIntegrityManager {
     @NonNull private final IFileIntegrityService mService;
+    @NonNull private final Context mContext;
 
     /** @hide */
-    public FileIntegrityManager(@NonNull IFileIntegrityService service) {
+    public FileIntegrityManager(@NonNull Context context, @NonNull IFileIntegrityService service) {
+        mContext = context;
         mService = service;
     }
 
@@ -69,7 +71,8 @@
     public boolean isAppSourceCertificateTrusted(@NonNull X509Certificate certificate)
             throws CertificateEncodingException {
         try {
-            return mService.isAppSourceCertificateTrusted(certificate.getEncoded());
+            return mService.isAppSourceCertificateTrusted(
+                    certificate.getEncoded(), mContext.getOpPackageName());
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
diff --git a/core/java/android/security/IFileIntegrityService.aidl b/core/java/android/security/IFileIntegrityService.aidl
index ebb8bcb..dff347e 100644
--- a/core/java/android/security/IFileIntegrityService.aidl
+++ b/core/java/android/security/IFileIntegrityService.aidl
@@ -22,5 +22,5 @@
  */
 interface IFileIntegrityService {
     boolean isApkVeritySupported();
-    boolean isAppSourceCertificateTrusted(in byte[] certificateBytes);
+    boolean isAppSourceCertificateTrusted(in byte[] certificateBytes, in String packageName);
 }
diff --git a/core/java/android/service/autofill/FillResponse.java b/core/java/android/service/autofill/FillResponse.java
index 06b5fa0..bc08b84 100644
--- a/core/java/android/service/autofill/FillResponse.java
+++ b/core/java/android/service/autofill/FillResponse.java
@@ -88,8 +88,6 @@
     private final @Nullable UserData mUserData;
     private final @Nullable int[] mCancelIds;
     private final boolean mSupportsInlineSuggestions;
-    // TODO(b/149240554): revert back to use ParceledListSlice after the bug is resolved.
-    private final @Nullable ArrayList<InlineAction> mInlineActions;
 
     private FillResponse(@NonNull Builder builder) {
         mDatasets = (builder.mDatasets != null) ? new ParceledListSlice<>(builder.mDatasets) : null;
@@ -109,7 +107,6 @@
         mUserData = builder.mUserData;
         mCancelIds = builder.mCancelIds;
         mSupportsInlineSuggestions = builder.mSupportsInlineSuggestions;
-        mInlineActions = builder.mInlineActions;
     }
 
     /** @hide */
@@ -212,11 +209,6 @@
         return mSupportsInlineSuggestions;
     }
 
-    /** @hide */
-    public @Nullable List<InlineAction> getInlineActions() {
-        return mInlineActions;
-    }
-
     /**
      * Builder for {@link FillResponse} objects. You must to provide at least
      * one dataset or set an authentication intent with a presentation view.
@@ -239,7 +231,6 @@
         private UserData mUserData;
         private int[] mCancelIds;
         private boolean mSupportsInlineSuggestions;
-        private ArrayList<InlineAction> mInlineActions;
 
         /**
          * Triggers a custom UI before before autofilling the screen with any data set in this
@@ -656,22 +647,6 @@
         }
 
         /**
-         * Adds a new {@link InlineAction} to this response representing an action UI.
-         *
-         * @return This builder.
-         */
-        @NonNull
-        public Builder addInlineAction(@NonNull InlineAction inlineAction) {
-            throwIfDestroyed();
-            throwIfAuthenticationCalled();
-            if (mInlineActions == null) {
-                mInlineActions = new ArrayList<>();
-            }
-            mInlineActions.add(inlineAction);
-            return this;
-        }
-
-        /**
          * Builds a new {@link FillResponse} instance.
          *
          * @throws IllegalStateException if any of the following conditions occur:
@@ -788,9 +763,6 @@
             builder.append(", mCancelIds=").append(mCancelIds.length);
         }
         builder.append(", mSupportInlinePresentations=").append(mSupportsInlineSuggestions);
-        if (mInlineActions != null) {
-            builder.append(", mInlineActions=" + mInlineActions);
-        }
         return builder.append("]").toString();
     }
 
@@ -820,7 +792,6 @@
         parcel.writeParcelableArray(mFieldClassificationIds, flags);
         parcel.writeInt(mFlags);
         parcel.writeIntArray(mCancelIds);
-        parcel.writeTypedList(mInlineActions, flags);
         parcel.writeInt(mRequestId);
     }
 
@@ -878,14 +849,6 @@
             final int[] cancelIds = parcel.createIntArray();
             builder.setPresentationCancelIds(cancelIds);
 
-            final List<InlineAction> inlineActions = parcel.createTypedArrayList(
-                    InlineAction.CREATOR);
-            if (inlineActions != null) {
-                for (InlineAction inlineAction : inlineActions) {
-                    builder.addInlineAction(inlineAction);
-                }
-            }
-
             final FillResponse response = builder.build();
             response.setRequestId(parcel.readInt());
 
diff --git a/core/java/android/service/autofill/IInlineSuggestionUiCallback.aidl b/core/java/android/service/autofill/IInlineSuggestionUiCallback.aidl
index 1bcc76b..bed4302 100644
--- a/core/java/android/service/autofill/IInlineSuggestionUiCallback.aidl
+++ b/core/java/android/service/autofill/IInlineSuggestionUiCallback.aidl
@@ -16,6 +16,7 @@
 
 package android.service.autofill;
 
+import android.content.IntentSender;
 import android.os.IBinder;
 import android.view.SurfaceControlViewHost;
 
@@ -30,4 +31,5 @@
     void onContent(in SurfaceControlViewHost.SurfacePackage surface);
     void onError();
     void onTransferTouchFocusToImeWindow(in IBinder sourceInputToken, int displayId);
+    void onStartIntentSender(in IntentSender intentSender);
 }
diff --git a/core/java/android/service/autofill/InlineAction.java b/core/java/android/service/autofill/InlineAction.java
deleted file mode 100644
index 17c4b33..0000000
--- a/core/java/android/service/autofill/InlineAction.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.service.autofill;
-
-import android.annotation.NonNull;
-import android.content.IntentSender;
-import android.os.Parcelable;
-
-import com.android.internal.util.DataClass;
-
-/**
- * Represents an inline action as part of the autofill/augmented autofill response.
- *
- * <p> It includes both the action intent and the UI presentation. For example, the UI can be
- * associated with an intent which can open an activity for the user to manage the Autofill provider
- * settings.
- */
-@DataClass(
-        genToString = true,
-        genHiddenConstDefs = true,
-        genEqualsHashCode = true)
-public final class InlineAction implements Parcelable {
-
-    /**
-     * Representation of the inline action.
-     */
-    private final @NonNull InlinePresentation mInlinePresentation;
-
-    /**
-     * The associated intent which will be triggered when the action is selected. It will only be
-     * called by the OS.
-     */
-    private final @NonNull IntentSender mAction;
-
-
-
-    // Code below generated by codegen v1.0.15.
-    //
-    // DO NOT MODIFY!
-    // CHECKSTYLE:OFF Generated code
-    //
-    // To regenerate run:
-    // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/service/autofill/InlineAction.java
-    //
-    // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
-    //   Settings > Editor > Code Style > Formatter Control
-    //@formatter:off
-
-
-    /**
-     * Creates a new InlineAction.
-     *
-     * @param inlinePresentation
-     *   Representation of the inline action.
-     * @param action
-     *   The associated intent which will be triggered when the action is selected. It will only be
-     *   invoked by the OS.
-     */
-    @DataClass.Generated.Member
-    public InlineAction(
-            @NonNull InlinePresentation inlinePresentation,
-            @NonNull IntentSender action) {
-        this.mInlinePresentation = inlinePresentation;
-        com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, mInlinePresentation);
-        this.mAction = action;
-        com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, mAction);
-
-        // onConstructed(); // You can define this method to get a callback
-    }
-
-    /**
-     * Representation of the inline action.
-     */
-    @DataClass.Generated.Member
-    public @NonNull InlinePresentation getInlinePresentation() {
-        return mInlinePresentation;
-    }
-
-    /**
-     * The associated intent which will be triggered when the action is selected. It will only be
-     * invoked by the OS.
-     */
-    @DataClass.Generated.Member
-    public @NonNull IntentSender getAction() {
-        return mAction;
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public String toString() {
-        // You can override field toString logic by defining methods like:
-        // String fieldNameToString() { ... }
-
-        return "InlineAction { " +
-                "inlinePresentation = " + mInlinePresentation + ", " +
-                "action = " + mAction +
-        " }";
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public boolean equals(@android.annotation.Nullable Object o) {
-        // You can override field equality logic by defining either of the methods like:
-        // boolean fieldNameEquals(InlineAction other) { ... }
-        // boolean fieldNameEquals(FieldType otherValue) { ... }
-
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        @SuppressWarnings("unchecked")
-        InlineAction that = (InlineAction) o;
-        //noinspection PointlessBooleanExpression
-        return true
-                && java.util.Objects.equals(mInlinePresentation, that.mInlinePresentation)
-                && java.util.Objects.equals(mAction, that.mAction);
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public int hashCode() {
-        // You can override field hashCode logic by defining methods like:
-        // int fieldNameHashCode() { ... }
-
-        int _hash = 1;
-        _hash = 31 * _hash + java.util.Objects.hashCode(mInlinePresentation);
-        _hash = 31 * _hash + java.util.Objects.hashCode(mAction);
-        return _hash;
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public void writeToParcel(@NonNull android.os.Parcel dest, int flags) {
-        // You can override field parcelling by defining methods like:
-        // void parcelFieldName(Parcel dest, int flags) { ... }
-
-        dest.writeTypedObject(mInlinePresentation, flags);
-        dest.writeTypedObject(mAction, flags);
-    }
-
-    @Override
-    @DataClass.Generated.Member
-    public int describeContents() { return 0; }
-
-    /** @hide */
-    @SuppressWarnings({"unchecked", "RedundantCast"})
-    @DataClass.Generated.Member
-    /* package-private */ InlineAction(@NonNull android.os.Parcel in) {
-        // You can override field unparcelling by defining methods like:
-        // static FieldType unparcelFieldName(Parcel in) { ... }
-
-        InlinePresentation inlinePresentation = (InlinePresentation) in.readTypedObject(InlinePresentation.CREATOR);
-        IntentSender action = (IntentSender) in.readTypedObject(IntentSender.CREATOR);
-
-        this.mInlinePresentation = inlinePresentation;
-        com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, mInlinePresentation);
-        this.mAction = action;
-        com.android.internal.util.AnnotationValidations.validate(
-                NonNull.class, null, mAction);
-
-        // onConstructed(); // You can define this method to get a callback
-    }
-
-    @DataClass.Generated.Member
-    public static final @NonNull Parcelable.Creator<InlineAction> CREATOR
-            = new Parcelable.Creator<InlineAction>() {
-        @Override
-        public InlineAction[] newArray(int size) {
-            return new InlineAction[size];
-        }
-
-        @Override
-        public InlineAction createFromParcel(@NonNull android.os.Parcel in) {
-            return new InlineAction(in);
-        }
-    };
-
-    @DataClass.Generated(
-            time = 1583798182424L,
-            codegenVersion = "1.0.15",
-            sourceFile = "frameworks/base/core/java/android/service/autofill/InlineAction.java",
-            inputSignatures = "private final @android.annotation.NonNull android.service.autofill.InlinePresentation mInlinePresentation\nprivate final @android.annotation.NonNull android.content.IntentSender mAction\nclass InlineAction extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genHiddenConstDefs=true, genEqualsHashCode=true)")
-    @Deprecated
-    private void __metadata() {}
-
-
-    //@formatter:on
-    // End of generated code
-
-}
diff --git a/core/java/android/service/autofill/InlinePresentation.java b/core/java/android/service/autofill/InlinePresentation.java
index a9addba..b6a8ced 100644
--- a/core/java/android/service/autofill/InlinePresentation.java
+++ b/core/java/android/service/autofill/InlinePresentation.java
@@ -49,7 +49,8 @@
     private final @NonNull InlinePresentationSpec mInlinePresentationSpec;
 
     /**
-     * Indicates whether the UI should be pinned, hence non-scrollable, in the host.
+     * Indicates whether the UI should be pinned, hence non-scrollable and non-filterable, in the
+     * host.
      */
     private final boolean mPinned;
 
diff --git a/core/java/android/service/autofill/InlineSuggestionRenderService.java b/core/java/android/service/autofill/InlineSuggestionRenderService.java
index 7fbc309..0d4be58 100644
--- a/core/java/android/service/autofill/InlineSuggestionRenderService.java
+++ b/core/java/android/service/autofill/InlineSuggestionRenderService.java
@@ -24,6 +24,7 @@
 import android.app.Service;
 import android.app.slice.Slice;
 import android.content.Intent;
+import android.content.IntentSender;
 import android.graphics.PixelFormat;
 import android.os.Bundle;
 import android.os.Handler;
@@ -60,6 +61,8 @@
 
     private final Handler mHandler = new Handler(Looper.getMainLooper(), null, true);
 
+    private IInlineSuggestionUiCallback mCallback;
+
     private void handleRenderSuggestion(IInlineSuggestionUiCallback callback,
             InlinePresentation presentation, int width, int height, IBinder hostInputToken,
             int displayId) {
@@ -84,6 +87,7 @@
                 }
                 return;
             }
+            mCallback = callback;
 
             final InlineSuggestionRoot suggestionRoot = new InlineSuggestionRoot(this, callback);
             suggestionRoot.addView(suggestionView);
@@ -155,6 +159,20 @@
     }
 
     /**
+     * Starts the {@link IntentSender} from the client app.
+     *
+     * @param intentSender the {@link IntentSender} to start the attribution UI from the client app.
+     */
+    public final void startIntentSender(@NonNull IntentSender intentSender) {
+        if (mCallback == null) return;
+        try {
+            mCallback.onStartIntentSender(intentSender);
+        } catch (RemoteException e) {
+            e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
      *  Returns the metadata about the renderer. Returns {@code null} if no metadata is provided.
      */
     @Nullable
diff --git a/core/java/android/service/autofill/InlineSuggestionRoot.java b/core/java/android/service/autofill/InlineSuggestionRoot.java
index 6c9d36b..653e513 100644
--- a/core/java/android/service/autofill/InlineSuggestionRoot.java
+++ b/core/java/android/service/autofill/InlineSuggestionRoot.java
@@ -68,7 +68,9 @@
             case MotionEvent.ACTION_MOVE: {
                 final float distance = MathUtils.dist(mDownX, mDownY,
                         event.getX(), event.getY());
-                if (distance > mTouchSlop) {
+                final boolean isSecure = (event.getFlags()
+                        & MotionEvent.FLAG_WINDOW_IS_PARTIALLY_OBSCURED) == 0;
+                if (!isSecure || distance > mTouchSlop) {
                     try {
                         mCallback.onTransferTouchFocusToImeWindow(getViewRootImpl().getInputToken(),
                                 getContext().getDisplayId());
diff --git a/core/java/android/service/autofill/augmented/AugmentedAutofillService.java b/core/java/android/service/autofill/augmented/AugmentedAutofillService.java
index 5b08ae2..1efa3dd 100644
--- a/core/java/android/service/autofill/augmented/AugmentedAutofillService.java
+++ b/core/java/android/service/autofill/augmented/AugmentedAutofillService.java
@@ -40,7 +40,6 @@
 import android.os.SystemClock;
 import android.service.autofill.Dataset;
 import android.service.autofill.FillEventHistory;
-import android.service.autofill.InlineAction;
 import android.service.autofill.augmented.PresentationParams.SystemPopupPresentationParams;
 import android.util.Log;
 import android.util.Pair;
@@ -559,10 +558,9 @@
             }
         }
 
-        void reportResult(@Nullable List<Dataset> inlineSuggestionsData,
-                @Nullable List<InlineAction> inlineActions) {
+        void reportResult(@Nullable List<Dataset> inlineSuggestionsData) {
             try {
-                mCallback.onSuccess(inlineSuggestionsData, inlineActions);
+                mCallback.onSuccess(inlineSuggestionsData);
             } catch (RemoteException e) {
                 Log.e(TAG, "Error calling back with the inline suggestions data: " + e);
             }
diff --git a/core/java/android/service/autofill/augmented/FillCallback.java b/core/java/android/service/autofill/augmented/FillCallback.java
index 6b4e118..526a749 100644
--- a/core/java/android/service/autofill/augmented/FillCallback.java
+++ b/core/java/android/service/autofill/augmented/FillCallback.java
@@ -55,14 +55,14 @@
 
         if (response == null) {
             mProxy.logEvent(AutofillProxy.REPORT_EVENT_NO_RESPONSE);
-            mProxy.reportResult(/* inlineSuggestionsData */ null, /* inlineActions */null);
+            mProxy.reportResult(/* inlineSuggestionsData */ null);
             return;
         }
 
         List<Dataset> inlineSuggestions = response.getInlineSuggestions();
         if (inlineSuggestions != null && !inlineSuggestions.isEmpty()) {
             mProxy.logEvent(AutofillProxy.REPORT_EVENT_INLINE_RESPONSE);
-            mProxy.reportResult(inlineSuggestions, response.getInlineActions());
+            mProxy.reportResult(inlineSuggestions);
             return;
         }
 
diff --git a/core/java/android/service/autofill/augmented/FillResponse.java b/core/java/android/service/autofill/augmented/FillResponse.java
index f564b3b..f72eb78 100644
--- a/core/java/android/service/autofill/augmented/FillResponse.java
+++ b/core/java/android/service/autofill/augmented/FillResponse.java
@@ -21,7 +21,6 @@
 import android.annotation.TestApi;
 import android.os.Bundle;
 import android.service.autofill.Dataset;
-import android.service.autofill.InlineAction;
 
 import com.android.internal.util.DataClass;
 
@@ -53,12 +52,6 @@
     private @Nullable List<Dataset> mInlineSuggestions;
 
     /**
-     * Defaults to null if no inline actions are provided.
-     */
-    @DataClass.PluralOf("inlineAction")
-    private @Nullable List<InlineAction> mInlineActions;
-
-    /**
      * The client state that {@link AugmentedAutofillService} implementation can put anything in to
      * identify the request and the response when calling
      * {@link AugmentedAutofillService#getFillEventHistory()}.
@@ -73,10 +66,6 @@
         return null;
     }
 
-    private static List<InlineAction> defaultInlineActions() {
-        return null;
-    }
-
     private static Bundle defaultClientState() {
         return null;
     }
@@ -85,7 +74,6 @@
     /** @hide */
     abstract static class BaseBuilder {
         abstract FillResponse.Builder addInlineSuggestion(@NonNull Dataset value);
-        abstract FillResponse.Builder addInlineAction(@NonNull InlineAction value);
     }
 
 
@@ -107,11 +95,9 @@
     /* package-private */ FillResponse(
             @Nullable FillWindow fillWindow,
             @Nullable List<Dataset> inlineSuggestions,
-            @Nullable List<InlineAction> inlineActions,
             @Nullable Bundle clientState) {
         this.mFillWindow = fillWindow;
         this.mInlineSuggestions = inlineSuggestions;
-        this.mInlineActions = inlineActions;
         this.mClientState = clientState;
 
         // onConstructed(); // You can define this method to get a callback
@@ -139,16 +125,6 @@
     }
 
     /**
-     * Defaults to null if no inline actions are provided.
-     *
-     * @hide
-     */
-    @DataClass.Generated.Member
-    public @Nullable List<InlineAction> getInlineActions() {
-        return mInlineActions;
-    }
-
-    /**
      * The client state that {@link AugmentedAutofillService} implementation can put anything in to
      * identify the request and the response when calling
      * {@link AugmentedAutofillService#getFillEventHistory()}.
@@ -169,7 +145,6 @@
 
         private @Nullable FillWindow mFillWindow;
         private @Nullable List<Dataset> mInlineSuggestions;
-        private @Nullable List<InlineAction> mInlineActions;
         private @Nullable Bundle mClientState;
 
         private long mBuilderFieldsSet = 0L;
@@ -210,26 +185,6 @@
         }
 
         /**
-         * Defaults to null if no inline actions are provided.
-         */
-        @DataClass.Generated.Member
-        public @NonNull Builder setInlineActions(@NonNull List<InlineAction> value) {
-            checkNotUsed();
-            mBuilderFieldsSet |= 0x4;
-            mInlineActions = value;
-            return this;
-        }
-
-        /** @see #setInlineActions */
-        @DataClass.Generated.Member
-        @Override
-        @NonNull FillResponse.Builder addInlineAction(@NonNull InlineAction value) {
-            if (mInlineActions == null) setInlineActions(new ArrayList<>());
-            mInlineActions.add(value);
-            return this;
-        }
-
-        /**
          * The client state that {@link AugmentedAutofillService} implementation can put anything in to
          * identify the request and the response when calling
          * {@link AugmentedAutofillService#getFillEventHistory()}.
@@ -237,7 +192,7 @@
         @DataClass.Generated.Member
         public @NonNull Builder setClientState(@NonNull Bundle value) {
             checkNotUsed();
-            mBuilderFieldsSet |= 0x8;
+            mBuilderFieldsSet |= 0x4;
             mClientState = value;
             return this;
         }
@@ -245,7 +200,7 @@
         /** Builds the instance. This builder should not be touched after calling this! */
         public @NonNull FillResponse build() {
             checkNotUsed();
-            mBuilderFieldsSet |= 0x10; // Mark builder used
+            mBuilderFieldsSet |= 0x8; // Mark builder used
 
             if ((mBuilderFieldsSet & 0x1) == 0) {
                 mFillWindow = defaultFillWindow();
@@ -254,21 +209,17 @@
                 mInlineSuggestions = defaultInlineSuggestions();
             }
             if ((mBuilderFieldsSet & 0x4) == 0) {
-                mInlineActions = defaultInlineActions();
-            }
-            if ((mBuilderFieldsSet & 0x8) == 0) {
                 mClientState = defaultClientState();
             }
             FillResponse o = new FillResponse(
                     mFillWindow,
                     mInlineSuggestions,
-                    mInlineActions,
                     mClientState);
             return o;
         }
 
         private void checkNotUsed() {
-            if ((mBuilderFieldsSet & 0x10) != 0) {
+            if ((mBuilderFieldsSet & 0x8) != 0) {
                 throw new IllegalStateException(
                         "This Builder should not be reused. Use a new Builder instance instead");
             }
@@ -276,10 +227,10 @@
     }
 
     @DataClass.Generated(
-            time = 1583793032373L,
+            time = 1584480900526L,
             codegenVersion = "1.0.15",
             sourceFile = "frameworks/base/core/java/android/service/autofill/augmented/FillResponse.java",
-            inputSignatures = "private @android.annotation.Nullable android.service.autofill.augmented.FillWindow mFillWindow\nprivate @com.android.internal.util.DataClass.PluralOf(\"inlineSuggestion\") @android.annotation.Nullable java.util.List<android.service.autofill.Dataset> mInlineSuggestions\nprivate @com.android.internal.util.DataClass.PluralOf(\"inlineAction\") @android.annotation.Nullable java.util.List<android.service.autofill.InlineAction> mInlineActions\nprivate @android.annotation.Nullable android.os.Bundle mClientState\nprivate static  android.service.autofill.augmented.FillWindow defaultFillWindow()\nprivate static  java.util.List<android.service.autofill.Dataset> defaultInlineSuggestions()\nprivate static  java.util.List<android.service.autofill.InlineAction> defaultInlineActions()\nprivate static  android.os.Bundle defaultClientState()\nclass FillResponse extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genBuilder=true, genHiddenGetters=true)\nabstract  android.service.autofill.augmented.FillResponse.Builder addInlineSuggestion(android.service.autofill.Dataset)\nabstract  android.service.autofill.augmented.FillResponse.Builder addInlineAction(android.service.autofill.InlineAction)\nclass BaseBuilder extends java.lang.Object implements []")
+            inputSignatures = "private @android.annotation.Nullable android.service.autofill.augmented.FillWindow mFillWindow\nprivate @com.android.internal.util.DataClass.PluralOf(\"inlineSuggestion\") @android.annotation.Nullable java.util.List<android.service.autofill.Dataset> mInlineSuggestions\nprivate @android.annotation.Nullable android.os.Bundle mClientState\nprivate static  android.service.autofill.augmented.FillWindow defaultFillWindow()\nprivate static  java.util.List<android.service.autofill.Dataset> defaultInlineSuggestions()\nprivate static  android.os.Bundle defaultClientState()\nclass FillResponse extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genBuilder=true, genHiddenGetters=true)\nabstract  android.service.autofill.augmented.FillResponse.Builder addInlineSuggestion(android.service.autofill.Dataset)\nclass BaseBuilder extends java.lang.Object implements []")
     @Deprecated
     private void __metadata() {}
 
diff --git a/core/java/android/service/autofill/augmented/IFillCallback.aidl b/core/java/android/service/autofill/augmented/IFillCallback.aidl
index 545dab2..24af1e5 100644
--- a/core/java/android/service/autofill/augmented/IFillCallback.aidl
+++ b/core/java/android/service/autofill/augmented/IFillCallback.aidl
@@ -20,7 +20,6 @@
 import android.os.ICancellationSignal;
 
 import android.service.autofill.Dataset;
-import android.service.autofill.InlineAction;
 
 import java.util.List;
 
@@ -31,8 +30,7 @@
  */
 interface IFillCallback {
     void onCancellable(in ICancellationSignal cancellation);
-    void onSuccess(in @nullable List<Dataset> inlineSuggestionsData,
-                   in @nullable List<InlineAction> inlineActions);
+    void onSuccess(in @nullable List<Dataset> inlineSuggestionsData);
     boolean isCompleted();
     void cancel();
 }
diff --git a/core/java/android/service/contentcapture/ContentCaptureService.java b/core/java/android/service/contentcapture/ContentCaptureService.java
index cecfe24..61744e42 100644
--- a/core/java/android/service/contentcapture/ContentCaptureService.java
+++ b/core/java/android/service/contentcapture/ContentCaptureService.java
@@ -18,7 +18,7 @@
 import static android.view.contentcapture.ContentCaptureHelper.sDebug;
 import static android.view.contentcapture.ContentCaptureHelper.sVerbose;
 import static android.view.contentcapture.ContentCaptureHelper.toList;
-import static android.view.contentcapture.ContentCaptureSession.NO_SESSION_ID;
+import static android.view.contentcapture.ContentCaptureManager.NO_SESSION_ID;
 
 import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
 
diff --git a/core/java/android/service/controls/ControlsProviderService.java b/core/java/android/service/controls/ControlsProviderService.java
index 9accf5b..4262c40 100644
--- a/core/java/android/service/controls/ControlsProviderService.java
+++ b/core/java/android/service/controls/ControlsProviderService.java
@@ -304,12 +304,11 @@
         Preconditions.checkNotNull(context);
         Preconditions.checkNotNull(componentName);
         Preconditions.checkNotNull(control);
-        final ComponentName sysuiComponent = ComponentName.unflattenFromString(
-                context.getResources().getString(
-                        com.android.internal.R.string.config_systemUIServiceComponent));
+        final String controlsPackage = context.getString(
+                com.android.internal.R.string.config_controlsPackage);
         Intent intent = new Intent(ACTION_ADD_CONTROL);
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME, componentName);
-        intent.setPackage(sysuiComponent.getPackageName());
+        intent.setPackage(controlsPackage);
         if (isStatelessControl(control)) {
             intent.putExtra(EXTRA_CONTROL, control);
         } else {
diff --git a/core/java/android/service/controls/actions/ControlAction.java b/core/java/android/service/controls/actions/ControlAction.java
index 37a75f0..10f526d 100644
--- a/core/java/android/service/controls/actions/ControlAction.java
+++ b/core/java/android/service/controls/actions/ControlAction.java
@@ -136,7 +136,8 @@
     /**
      * Response code for the {@code consumer} in
      * {@link ControlsProviderService#performControlAction} indicating that in order for the action
-     * to be performed, acknowledgment from the user is required.
+     * to be performed, acknowledgment from the user is required. Any non-empty string returned
+     * from {@link #getChallengeValue} shall be treated as a positive acknowledgment.
      */
     public static final @ResponseResult int RESPONSE_CHALLENGE_ACK = 3;
     /**
diff --git a/core/java/android/service/dataloader/DataLoaderService.java b/core/java/android/service/dataloader/DataLoaderService.java
index 0170726..c047dc0 100644
--- a/core/java/android/service/dataloader/DataLoaderService.java
+++ b/core/java/android/service/dataloader/DataLoaderService.java
@@ -29,7 +29,6 @@
 import android.content.pm.IDataLoaderStatusListener;
 import android.content.pm.InstallationFile;
 import android.content.pm.InstallationFileParcel;
-import android.content.pm.NamedParcelFileDescriptor;
 import android.os.IBinder;
 import android.os.ParcelFileDescriptor;
 import android.util.ExceptionUtils;
@@ -133,16 +132,6 @@
                         }
                     }
                 }
-                if (params.dynamicArgs != null) {
-                    NamedParcelFileDescriptor[] fds = params.dynamicArgs;
-                    for (NamedParcelFileDescriptor nfd : fds) {
-                        try {
-                            nfd.fd.close();
-                        } catch (IOException e) {
-                            Slog.e(TAG, "Failed to close DynamicArgs parcel file descriptor " + e);
-                        }
-                    }
-                }
             }
         }
 
diff --git a/core/java/android/service/dreams/DreamActivity.java b/core/java/android/service/dreams/DreamActivity.java
index 8cdd24e..0a29edc 100644
--- a/core/java/android/service/dreams/DreamActivity.java
+++ b/core/java/android/service/dreams/DreamActivity.java
@@ -19,6 +19,7 @@
 import android.annotation.Nullable;
 import android.app.Activity;
 import android.os.Bundle;
+import android.view.WindowInsets;
 
 /**
  * The Activity used by the {@link DreamService} to draw screensaver content
@@ -55,5 +56,8 @@
         if (callback != null) {
             callback.onActivityCreated(this);
         }
+
+        // Hide all insets (nav bar, status bar, etc) when the dream is showing
+        getWindow().getInsetsController().hide(WindowInsets.Type.systemBars());
     }
 }
diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java
index e70311f..c9be1c1 100644
--- a/core/java/android/service/dreams/DreamService.java
+++ b/core/java/android/service/dreams/DreamService.java
@@ -15,8 +15,6 @@
  */
 package android.service.dreams;
 
-import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
-
 import android.annotation.IdRes;
 import android.annotation.LayoutRes;
 import android.annotation.NonNull;
@@ -1071,7 +1069,6 @@
     private void onWindowCreated(Window w) {
         mWindow = w;
         mWindow.setCallback(this);
-        mWindow.setType(TYPE_DREAM);
         mWindow.requestFeature(Window.FEATURE_NO_TITLE);
 
         WindowManager.LayoutParams lp = mWindow.getAttributes();
diff --git a/core/java/android/service/dreams/OWNERS b/core/java/android/service/dreams/OWNERS
index 426f002..708ab4c 100644
--- a/core/java/android/service/dreams/OWNERS
+++ b/core/java/android/service/dreams/OWNERS
@@ -1,3 +1,4 @@
 dsandler@android.com
 michaelwr@google.com
 roosa@google.com
+galinap@google.com
diff --git a/core/java/android/service/quickaccesswallet/WalletServiceEvent.java b/core/java/android/service/quickaccesswallet/WalletServiceEvent.java
index fb524be..5ee92da 100644
--- a/core/java/android/service/quickaccesswallet/WalletServiceEvent.java
+++ b/core/java/android/service/quickaccesswallet/WalletServiceEvent.java
@@ -40,10 +40,16 @@
     public static final int TYPE_NFC_PAYMENT_STARTED = 1;
 
     /**
+     * Indicates that the wallet cards have changed and should be refreshed.
+     * @hide
+     */
+    public static final int TYPE_WALLET_CARDS_UPDATED = 2;
+
+    /**
      * @hide
      */
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef({TYPE_NFC_PAYMENT_STARTED})
+    @IntDef({TYPE_NFC_PAYMENT_STARTED, TYPE_WALLET_CARDS_UPDATED})
     public @interface EventType {
     }
 
diff --git a/core/java/android/service/storage/ExternalStorageService.java b/core/java/android/service/storage/ExternalStorageService.java
index fe797eb..3b4d84a 100644
--- a/core/java/android/service/storage/ExternalStorageService.java
+++ b/core/java/android/service/storage/ExternalStorageService.java
@@ -25,11 +25,13 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
-import android.os.Looper;
 import android.os.ParcelFileDescriptor;
 import android.os.ParcelableException;
 import android.os.RemoteCallback;
 import android.os.RemoteException;
+import android.os.storage.StorageVolume;
+
+import com.android.internal.os.BackgroundThread;
 
 import java.io.File;
 import java.io.IOException;
@@ -97,7 +99,7 @@
     public @interface SessionFlag {}
 
     private final ExternalStorageServiceWrapper mWrapper = new ExternalStorageServiceWrapper();
-    private final Handler mHandler = new Handler(Looper.getMainLooper(), null, true);
+    private final Handler mHandler = BackgroundThread.getHandler();
 
     /**
      * Called when the system starts a session associated with {@code deviceFd}
@@ -131,6 +133,20 @@
      */
     public abstract void onEndSession(@NonNull String sessionId) throws IOException;
 
+    /**
+     * Called when any volume's state changes.
+     *
+     * <p> This is required to communicate volume state changes with the Storage Service before
+     * broadcasting to other apps. The Storage Service needs to process any change in the volume
+     * state (before other apps receive a broadcast for the same) to update the database so that
+     * other apps have the correct view of the volume.
+     *
+     * <p> Blocks until the Storage Service processes/scans the volume or fails in doing so.
+     *
+     * @param vol name of the volume that was changed
+     */
+    public abstract void onVolumeStateChanged(@NonNull StorageVolume vol) throws IOException;
+
     @Override
     @NonNull
     public final IBinder onBind(@NonNull Intent intent) {
@@ -154,6 +170,19 @@
         }
 
         @Override
+        public void notifyVolumeStateChanged(String sessionId, StorageVolume vol,
+                RemoteCallback callback) {
+            mHandler.post(() -> {
+                try {
+                    onVolumeStateChanged(vol);
+                    sendResult(sessionId, null /* throwable */, callback);
+                } catch (Throwable t) {
+                    sendResult(sessionId, t, callback);
+                }
+            });
+        }
+
+        @Override
         public void endSession(String sessionId, RemoteCallback callback) throws RemoteException {
             mHandler.post(() -> {
                 try {
diff --git a/core/java/android/service/storage/IExternalStorageService.aidl b/core/java/android/service/storage/IExternalStorageService.aidl
index ae46f1f..30fefd3 100644
--- a/core/java/android/service/storage/IExternalStorageService.aidl
+++ b/core/java/android/service/storage/IExternalStorageService.aidl
@@ -18,6 +18,7 @@
 
 import android.os.ParcelFileDescriptor;
 import android.os.RemoteCallback;
+import android.os.storage.StorageVolume;
 
 /**
  * @hide
@@ -27,4 +28,6 @@
     void startSession(@utf8InCpp String sessionId, int type, in ParcelFileDescriptor deviceFd,
          @utf8InCpp String upperPath, @utf8InCpp String lowerPath, in RemoteCallback callback);
     void endSession(@utf8InCpp String sessionId, in RemoteCallback callback);
+    void notifyVolumeStateChanged(@utf8InCpp String sessionId, in StorageVolume vol,
+        in RemoteCallback callback);
 }
\ No newline at end of file
diff --git a/core/java/android/service/voice/AlwaysOnHotwordDetector.java b/core/java/android/service/voice/AlwaysOnHotwordDetector.java
index 7d070b1..97cd760 100644
--- a/core/java/android/service/voice/AlwaysOnHotwordDetector.java
+++ b/core/java/android/service/voice/AlwaysOnHotwordDetector.java
@@ -487,7 +487,7 @@
             ModuleProperties properties =
                     mModelManagementService.getDspModuleProperties();
             if (properties != null) {
-                return properties.audioCapabilities;
+                return properties.getAudioCapabilities();
             }
 
             return 0;
@@ -780,15 +780,16 @@
             audioCapabilities |= AUDIO_CAPABILITY_NOISE_SUPPRESSION;
         }
 
-        int code = STATUS_ERROR;
+        int code;
         try {
             code = mModelManagementService.startRecognition(
                     mKeyphraseMetadata.id, mLocale.toLanguageTag(), mInternalCallback,
                     new RecognitionConfig(captureTriggerAudio, allowMultipleTriggers,
                             recognitionExtra, null /* additional data */, audioCapabilities));
         } catch (RemoteException e) {
-            Slog.w(TAG, "RemoteException in startRecognition!", e);
+            throw e.rethrowFromSystemServer();
         }
+
         if (code != STATUS_OK) {
             Slog.w(TAG, "startRecognition() failed with error code " + code);
         }
@@ -796,12 +797,12 @@
     }
 
     private int stopRecognitionLocked() {
-        int code = STATUS_ERROR;
+        int code;
         try {
             code = mModelManagementService.stopRecognition(mKeyphraseMetadata.id,
                     mInternalCallback);
         } catch (RemoteException e) {
-            Slog.w(TAG, "RemoteException in stopRecognition!", e);
+            throw e.rethrowFromSystemServer();
         }
 
         if (code != STATUS_OK) {
@@ -968,12 +969,12 @@
                 }
             }
 
-            ModuleProperties dspModuleProperties = null;
+            ModuleProperties dspModuleProperties;
             try {
                 dspModuleProperties =
                         mModelManagementService.getDspModuleProperties();
             } catch (RemoteException e) {
-                Slog.w(TAG, "RemoteException in getDspProperties!", e);
+                throw e.rethrowFromSystemServer();
             }
 
             // No DSP available
@@ -989,7 +990,7 @@
                 mKeyphraseMetadata = mModelManagementService.getEnrolledKeyphraseMetadata(
                         mText, mLocale.toLanguageTag());
             } catch (RemoteException e) {
-                Slog.w(TAG, "RemoteException in internalUpdateEnrolledKeyphraseMetadata", e);
+                throw e.rethrowFromSystemServer();
             }
         }
     }
diff --git a/core/java/android/service/voice/VoiceInteractionService.java b/core/java/android/service/voice/VoiceInteractionService.java
index b54e4d9..45d3465 100644
--- a/core/java/android/service/voice/VoiceInteractionService.java
+++ b/core/java/android/service/voice/VoiceInteractionService.java
@@ -35,6 +35,7 @@
 import android.os.ServiceManager;
 import android.provider.Settings;
 import android.util.ArraySet;
+import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.IVoiceActionCheckCallback;
@@ -47,6 +48,7 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
+import java.util.Objects;
 import java.util.Set;
 
 /**
@@ -63,6 +65,8 @@
  * separate process from this one.
  */
 public class VoiceInteractionService extends Service {
+    static final String TAG = VoiceInteractionService.class.getSimpleName();
+
     /**
      * The {@link Intent} that must be declared as handled by the service.
      * To be supported, the service must also require the
@@ -240,9 +244,22 @@
     public void onReady() {
         mSystemService = IVoiceInteractionManagerService.Stub.asInterface(
                 ServiceManager.getService(Context.VOICE_INTERACTION_MANAGER_SERVICE));
+        Objects.requireNonNull(mSystemService);
+        try {
+            mSystemService.asBinder().linkToDeath(mDeathRecipient, 0);
+        } catch (RemoteException e) {
+            Log.wtf(TAG, "unable to link to death with system service");
+        }
         mKeyphraseEnrollmentInfo = new KeyphraseEnrollmentInfo(getPackageManager());
     }
 
+    private IBinder.DeathRecipient mDeathRecipient = () -> {
+        Log.e(TAG, "system service binder died shutting down");
+        Handler.getMain().executeOrSendMessage(PooledLambda.obtainMessage(
+                VoiceInteractionService::onShutdownInternal, VoiceInteractionService.this));
+    };
+
+
     private void onShutdownInternal() {
         onShutdown();
         // Stop any active recognitions when shutting down.
@@ -349,16 +366,24 @@
     }
 
     private void safelyShutdownHotwordDetector() {
-        try {
-            synchronized (mLock) {
-                if (mHotwordDetector != null) {
-                    mHotwordDetector.stopRecognition();
-                    mHotwordDetector.invalidate();
-                    mHotwordDetector = null;
-                }
+        synchronized (mLock) {
+            if (mHotwordDetector == null) {
+                return;
             }
-        } catch (Exception ex) {
-            // Ignore.
+
+            try {
+                mHotwordDetector.stopRecognition();
+            } catch (Exception ex) {
+                // Ignore.
+            }
+
+            try {
+                mHotwordDetector.invalidate();
+            } catch (Exception ex) {
+                // Ignore.
+            }
+
+            mHotwordDetector = null;
         }
     }
 
diff --git a/core/java/android/telephony/PhoneStateListener.java b/core/java/android/telephony/PhoneStateListener.java
index 28db270..f6d56ee 100644
--- a/core/java/android/telephony/PhoneStateListener.java
+++ b/core/java/android/telephony/PhoneStateListener.java
@@ -855,16 +855,16 @@
 
     /**
      * Callback invoked when the display info has changed on the registered subscription.
-     * <p> The {@link DisplayInfo} contains status information shown to the user based on
+     * <p> The {@link TelephonyDisplayInfo} contains status information shown to the user based on
      * carrier policy.
      *
      * Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE} or that the calling
      * app has carrier privileges (see {@link TelephonyManager#hasCarrierPrivileges}).
      *
-     * @param displayInfo The display information.
+     * @param telephonyDisplayInfo The display information.
      */
     @RequiresPermission((android.Manifest.permission.READ_PHONE_STATE))
-    public void onDisplayInfoChanged(@NonNull DisplayInfo displayInfo) {
+    public void onDisplayInfoChanged(@NonNull TelephonyDisplayInfo telephonyDisplayInfo) {
         // default implementation empty
     }
 
@@ -1247,13 +1247,13 @@
                             () -> psl.onUserMobileDataStateChanged(enabled)));
         }
 
-        public void onDisplayInfoChanged(DisplayInfo displayInfo) {
+        public void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) {
             PhoneStateListener psl = mPhoneStateListenerWeakRef.get();
             if (psl == null) return;
 
             Binder.withCleanCallingIdentity(
                     () -> mExecutor.execute(
-                            () -> psl.onDisplayInfoChanged(displayInfo)));
+                            () -> psl.onDisplayInfoChanged(telephonyDisplayInfo)));
         }
 
         public void onOemHookRawEvent(byte[] rawData) {
diff --git a/core/java/android/telephony/SubscriptionPlan.java b/core/java/android/telephony/SubscriptionPlan.java
index 901957f..d5ac436 100644
--- a/core/java/android/telephony/SubscriptionPlan.java
+++ b/core/java/android/telephony/SubscriptionPlan.java
@@ -372,5 +372,15 @@
             plan.networkTypes = Arrays.copyOf(networkTypes, networkTypes.length);
             return this;
         }
+
+        /**
+         * Reset any network types that were set with {@link #setNetworkTypes(int[])}.
+         * This will make the SubscriptionPlan apply to all network types.
+         */
+        public @NonNull Builder resetNetworkTypes() {
+            plan.networkTypes = Arrays.copyOf(TelephonyManager.getAllNetworkTypes(),
+                    TelephonyManager.getAllNetworkTypes().length);
+            return this;
+        }
     }
 }
diff --git a/core/java/android/telephony/TelephonyRegistryManager.java b/core/java/android/telephony/TelephonyRegistryManager.java
index ab9df56..0854452 100644
--- a/core/java/android/telephony/TelephonyRegistryManager.java
+++ b/core/java/android/telephony/TelephonyRegistryManager.java
@@ -61,7 +61,6 @@
  *
  * @hide
  */
-@TestApi
 public class TelephonyRegistryManager {
 
     private static final String TAG = "TelephonyRegistryManager";
@@ -590,12 +589,12 @@
      * derived from {@code subscriptionId} except when {@code subscriptionId} is invalid, such as
      * when the device is in emergency-only mode.
      * @param subscriptionId Subscription id for which display network info has changed.
-     * @param displayInfo The display info.
+     * @param telephonyDisplayInfo The display info.
      */
     public void notifyDisplayInfoChanged(int slotIndex, int subscriptionId,
-                                         @NonNull DisplayInfo displayInfo) {
+                                         @NonNull TelephonyDisplayInfo telephonyDisplayInfo) {
         try {
-            sRegistry.notifyDisplayInfoChanged(slotIndex, subscriptionId, displayInfo);
+            sRegistry.notifyDisplayInfoChanged(slotIndex, subscriptionId, telephonyDisplayInfo);
         } catch (RemoteException ex) {
             // system process is dead
         }
diff --git a/core/java/android/text/AndroidBidi.java b/core/java/android/text/AndroidBidi.java
index f1e2181..b981163 100644
--- a/core/java/android/text/AndroidBidi.java
+++ b/core/java/android/text/AndroidBidi.java
@@ -17,11 +17,7 @@
 package android.text;
 
 import android.compat.annotation.UnsupportedAppUsage;
-import android.icu.lang.UCharacter;
-import android.icu.lang.UCharacterDirection;
-import android.icu.lang.UProperty;
 import android.icu.text.Bidi;
-import android.icu.text.BidiClassifier;
 import android.text.Layout.Directions;
 
 import com.android.internal.annotations.VisibleForTesting;
@@ -34,32 +30,6 @@
 public class AndroidBidi {
 
     /**
-     * Overrides ICU {@link BidiClassifier} in order to correctly handle character directions for
-     * newest emoji that ICU is not aware of.
-     */
-    public static class EmojiBidiOverride extends BidiClassifier {
-        public EmojiBidiOverride() {
-            super(null /* No persisting object needed */);
-        }
-
-        // Tells ICU to use the standard Unicode value.
-        private static final int NO_OVERRIDE =
-                UCharacter.getIntPropertyMaxValue(UProperty.BIDI_CLASS) + 1;
-
-        @Override
-        public int classify(int c) {
-            if (Emoji.isNewEmoji(c)) {
-                // All new emoji characters in Unicode 10.0 are of the bidi class ON.
-                return UCharacterDirection.OTHER_NEUTRAL;
-            } else {
-                return NO_OVERRIDE;
-            }
-        }
-    }
-
-    private static final EmojiBidiOverride sEmojiBidiOverride = new EmojiBidiOverride();
-
-    /**
      * Runs the bidi algorithm on input text.
      */
     @UnsupportedAppUsage
@@ -82,7 +52,6 @@
             default: paraLevel = Bidi.LTR; break;
         }
         final Bidi icuBidi = new Bidi(length /* maxLength */, 0 /* maxRunCount */);
-        icuBidi.setCustomClassifier(sEmojiBidiOverride);
         icuBidi.setPara(chs, paraLevel, null /* embeddingLevels */);
         for (int i = 0; i < length; i++) {
             chInfo[i] = icuBidi.getLevelAt(i);
@@ -220,4 +189,5 @@
         }
         return new Directions(ld);
     }
-}
\ No newline at end of file
+}
+
diff --git a/core/java/android/text/BidiFormatter.java b/core/java/android/text/BidiFormatter.java
index 77f17a7..422d347 100644
--- a/core/java/android/text/BidiFormatter.java
+++ b/core/java/android/text/BidiFormatter.java
@@ -604,15 +604,10 @@
 
         /**
          * Return Character directionality. Same as {@link Character#getDirectionality(int)} except
-         * it overrides values for newest emoji that are not covered by ICU.
+         * it can override values for newest emoji that are not covered by ICU.
          */
         public static byte getDirectionality(int codePoint) {
-            if (Emoji.isNewEmoji(codePoint)) {
-                // TODO: Fix or remove once emoji-data.text 5.0 is in ICU or update to 6.0.
-                return Character.DIRECTIONALITY_OTHER_NEUTRALS;
-            } else {
-                return Character.getDirectionality(codePoint);
-            }
+            return Character.getDirectionality(codePoint);
         }
 
         // Internal instance variables.
diff --git a/core/java/android/text/Emoji.java b/core/java/android/text/Emoji.java
index 04fa110..cf0e3c2 100644
--- a/core/java/android/text/Emoji.java
+++ b/core/java/android/text/Emoji.java
@@ -60,40 +60,16 @@
         if (c == 0x1F91D || c == 0x1F93C) {
             return true;
         }
-        // Emoji Modifier Base characters new in Unicode emoji 11
-        // From https://www.unicode.org/Public/emoji/11.0/emoji-data.txt
-        // TODO: Remove once emoji-data.text 11 is in ICU or update to 11.
-        if ((0x1F9B5 <= c && c <= 0x1F9B6) || (0x1F9B8 <= c && c <= 0x1F9B9)) {
-            return true;
-        }
+        // If Android's copy of ICU is behind, check for new codepoints here.
+        // Consult log for implementation pattern.
         return UCharacter.hasBinaryProperty(c, UProperty.EMOJI_MODIFIER_BASE);
     }
 
     /**
-     * Returns true if the character is a new emoji still not supported in our version of ICU.
-     */
-    public static boolean isNewEmoji(int c) {
-        // Emoji characters new in Unicode emoji 12
-        // From https://www.unicode.org/Public/emoji/12.0/emoji-data.txt
-        // TODO: Remove once emoji-data.text 12 is in ICU or update to 12.
-        if (c < 0x1F6D5 || c > 0x1FA95) {
-            // Optimization for characters outside the new emoji range.
-            return false;
-        }
-        return c == 0x1F6D5 || c == 0x1F6FA || c == 0x1F93F || c == 0x1F971 || c == 0x1F97B
-                || (0x1F7E0 <= c && c <= 0x1F7EB) || (0x1F90D <= c && c <= 0x1F90F)
-                || (0x1F9A5 <= c && c <= 0x1F9AA) || (0x1F9AE <= c && c <= 0x1F9AF)
-                || (0x1F9BA <= c && c <= 0x1F9BF) || (0x1F9C3 <= c && c <= 0x1F9CA)
-                || (0x1F9CD <= c && c <= 0x1F9CF) || (0x1FA70 <= c && c <= 0x1FA73)
-                || (0x1FA78 <= c && c <= 0x1FA7A) || (0x1FA80 <= c && c <= 0x1FA82)
-                || (0x1FA90 <= c && c <= 0x1FA95);
-    }
-
-    /**
      * Returns true if the character has Emoji property.
      */
     public static boolean isEmoji(int codePoint) {
-        return isNewEmoji(codePoint) || UCharacter.hasBinaryProperty(codePoint, UProperty.EMOJI);
+        return UCharacter.hasBinaryProperty(codePoint, UProperty.EMOJI);
     }
 
     // Returns true if the character can be a base character of COMBINING ENCLOSING KEYCAP.
diff --git a/core/java/android/text/style/ReplacementSpan.java b/core/java/android/text/style/ReplacementSpan.java
index 0553232..9430fd3 100644
--- a/core/java/android/text/style/ReplacementSpan.java
+++ b/core/java/android/text/style/ReplacementSpan.java
@@ -63,7 +63,7 @@
                               int top, int y, int bottom, @NonNull Paint paint);
 
     /**
-     * Gets a brief description of this ImageSpan for use in accessibility support.
+     * Gets a brief description of this ReplacementSpan for use in accessibility support.
      *
      * @return The content description.
      */
@@ -73,7 +73,7 @@
     }
 
     /**
-     * Sets the specific content description into ImageSpan.
+     * Sets the specific content description into ReplacementSpan.
      * ReplacementSpans are shared with accessibility services,
      * but only the content description is available from them.
      *
diff --git a/core/java/android/util/FeatureFlagUtils.java b/core/java/android/util/FeatureFlagUtils.java
index 4dafc0d..faa5cf5 100644
--- a/core/java/android/util/FeatureFlagUtils.java
+++ b/core/java/android/util/FeatureFlagUtils.java
@@ -73,7 +73,7 @@
 
         DEFAULT_FLAGS.put("settings_tether_all_in_one", "false");
         DEFAULT_FLAGS.put(SETTINGS_SCHEDULES_FLAG, "false");
-        DEFAULT_FLAGS.put("settings_contextual_home2", "false");
+        DEFAULT_FLAGS.put("settings_contextual_home2", "true");
     }
 
     /**
diff --git a/core/java/android/util/Log.java b/core/java/android/util/Log.java
index 9921bf0..2ded473 100644
--- a/core/java/android/util/Log.java
+++ b/core/java/android/util/Log.java
@@ -27,6 +27,8 @@
 import com.android.internal.util.FastPrintWriter;
 import com.android.internal.util.LineBreakBufferedWriter;
 
+import dalvik.annotation.optimization.FastNative;
+
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.io.Writer;
@@ -228,6 +230,7 @@
      *         for Nougat (7.0) releases (API <= 23) and prior, there is no
      *         tag limit of concern after this API level.
      */
+    @FastNative
     public static native boolean isLoggable(@Nullable String tag, @Level int level);
 
     /**
diff --git a/core/java/android/util/apk/ApkSignatureSchemeV2Verifier.java b/core/java/android/util/apk/ApkSignatureSchemeV2Verifier.java
index 04be71f..346fe29 100644
--- a/core/java/android/util/apk/ApkSignatureSchemeV2Verifier.java
+++ b/core/java/android/util/apk/ApkSignatureSchemeV2Verifier.java
@@ -24,6 +24,7 @@
 import static android.util.apk.ApkSigningBlockUtils.getSignatureAlgorithmJcaKeyAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.getSignatureAlgorithmJcaSignatureAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.isSupportedSignatureAlgorithm;
+import static android.util.apk.ApkSigningBlockUtils.pickBestDigestForV4;
 import static android.util.apk.ApkSigningBlockUtils.readLengthPrefixedByteArray;
 
 import android.util.ArrayMap;
@@ -117,7 +118,10 @@
         return vSigner.certs;
     }
 
-    private static VerifiedSigner verify(String apkFile, boolean verifyIntegrity)
+    /**
+     * Same as above returns the full signer object, containing additional info e.g. digest.
+     */
+    public static VerifiedSigner verify(String apkFile, boolean verifyIntegrity)
             throws SignatureNotFoundException, SecurityException, IOException {
         try (RandomAccessFile apk = new RandomAccessFile(apkFile, "r")) {
             return verify(apk, verifyIntegrity);
@@ -209,9 +213,11 @@
                     verityDigest, apk.length(), signatureInfo);
         }
 
+        byte[] digest = pickBestDigestForV4(contentDigests);
+
         return new VerifiedSigner(
                 signerCerts.toArray(new X509Certificate[signerCerts.size()][]),
-                verityRootHash);
+                verityRootHash, digest);
     }
 
     private static X509Certificate[] verifySigner(
@@ -426,11 +432,14 @@
      */
     public static class VerifiedSigner {
         public final X509Certificate[][] certs;
-        public final byte[] verityRootHash;
 
-        public VerifiedSigner(X509Certificate[][] certs, byte[] verityRootHash) {
+        public final byte[] verityRootHash;
+        public final byte[] digest;
+
+        public VerifiedSigner(X509Certificate[][] certs, byte[] verityRootHash, byte[] digest) {
             this.certs = certs;
             this.verityRootHash = verityRootHash;
+            this.digest = digest;
         }
 
     }
diff --git a/core/java/android/util/apk/ApkSignatureSchemeV3Verifier.java b/core/java/android/util/apk/ApkSignatureSchemeV3Verifier.java
index 2437af2..4ab541b 100644
--- a/core/java/android/util/apk/ApkSignatureSchemeV3Verifier.java
+++ b/core/java/android/util/apk/ApkSignatureSchemeV3Verifier.java
@@ -16,8 +16,6 @@
 
 package android.util.apk;
 
-import static android.util.apk.ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA256;
-import static android.util.apk.ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA512;
 import static android.util.apk.ApkSigningBlockUtils.CONTENT_DIGEST_VERITY_CHUNKED_SHA256;
 import static android.util.apk.ApkSigningBlockUtils.compareSignatureAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.getContentDigestAlgorithmJcaDigestAlgorithm;
@@ -26,6 +24,7 @@
 import static android.util.apk.ApkSigningBlockUtils.getSignatureAlgorithmJcaKeyAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.getSignatureAlgorithmJcaSignatureAlgorithm;
 import static android.util.apk.ApkSigningBlockUtils.isSupportedSignatureAlgorithm;
+import static android.util.apk.ApkSigningBlockUtils.pickBestDigestForV4;
 import static android.util.apk.ApkSigningBlockUtils.readLengthPrefixedByteArray;
 
 import android.os.Build;
@@ -213,24 +212,11 @@
                     verityDigest, apk.length(), signatureInfo);
         }
 
-        result.digest = pickBestV3DigestForV4(contentDigests);
+        result.digest = pickBestDigestForV4(contentDigests);
 
         return result;
     }
 
-    // Keep in sync with pickBestV3DigestForV4 in apksigner.V3SchemeVerifier.
-    private static byte[] pickBestV3DigestForV4(Map<Integer, byte[]> contentDigests) {
-        final int[] orderedContentDigestTypes =
-                {CONTENT_DIGEST_CHUNKED_SHA512, CONTENT_DIGEST_VERITY_CHUNKED_SHA256,
-                        CONTENT_DIGEST_CHUNKED_SHA256};
-        for (int contentDigestType : orderedContentDigestTypes) {
-            if (contentDigests.containsKey(contentDigestType)) {
-                return contentDigests.get(contentDigestType);
-            }
-        }
-        return null;
-    }
-
     private static VerifiedSigner verifySigner(
             ByteBuffer signerBlock,
             Map<Integer, byte[]> contentDigests,
diff --git a/core/java/android/util/apk/ApkSignatureSchemeV4Verifier.java b/core/java/android/util/apk/ApkSignatureSchemeV4Verifier.java
index 8c240d9..d40efce 100644
--- a/core/java/android/util/apk/ApkSignatureSchemeV4Verifier.java
+++ b/core/java/android/util/apk/ApkSignatureSchemeV4Verifier.java
@@ -145,7 +145,7 @@
                     "Public key mismatch between certificate and signature record");
         }
 
-        return new VerifiedSigner(new Certificate[]{certificate}, signingInfo.v3Digest);
+        return new VerifiedSigner(new Certificate[]{certificate}, signingInfo.apkDigest);
     }
 
     /**
@@ -155,11 +155,11 @@
      */
     public static class VerifiedSigner {
         public final Certificate[] certs;
-        public byte[] v3Digest;
+        public byte[] apkDigest;
 
-        public VerifiedSigner(Certificate[] certs, byte[] v3Digest) {
+        public VerifiedSigner(Certificate[] certs, byte[] apkDigest) {
             this.certs = certs;
-            this.v3Digest = v3Digest;
+            this.apkDigest = apkDigest;
         }
 
     }
diff --git a/core/java/android/util/apk/ApkSignatureVerifier.java b/core/java/android/util/apk/ApkSignatureVerifier.java
index c1cee48..ab8f80d3 100644
--- a/core/java/android/util/apk/ApkSignatureVerifier.java
+++ b/core/java/android/util/apk/ApkSignatureVerifier.java
@@ -184,27 +184,45 @@
             Signature[] signerSigs = convertToSignatures(signerCerts);
 
             if (verifyFull) {
-                // v4 is an add-on and requires v3 signature to validate against its certificates
-                ApkSignatureSchemeV3Verifier.VerifiedSigner nonstreaming =
-                        ApkSignatureSchemeV3Verifier.unsafeGetCertsWithoutVerification(apkPath);
-                Certificate[][] nonstreamingCerts = new Certificate[][]{nonstreaming.certs};
-                Signature[] nonstreamingSigs = convertToSignatures(nonstreamingCerts);
+                byte[] nonstreamingDigest = null;
+                Certificate[][] nonstreamingCerts = null;
 
+                try {
+                    // v4 is an add-on and requires v2 or v3 signature to validate against its
+                    // certificate and digest
+                    ApkSignatureSchemeV3Verifier.VerifiedSigner v3Signer =
+                            ApkSignatureSchemeV3Verifier.unsafeGetCertsWithoutVerification(apkPath);
+                    nonstreamingDigest = v3Signer.digest;
+                    nonstreamingCerts = new Certificate[][]{v3Signer.certs};
+                } catch (SignatureNotFoundException e) {
+                    try {
+                        ApkSignatureSchemeV2Verifier.VerifiedSigner v2Signer =
+                                ApkSignatureSchemeV2Verifier.verify(apkPath, false);
+                        nonstreamingDigest = v2Signer.digest;
+                        nonstreamingCerts = v2Signer.certs;
+                    } catch (SignatureNotFoundException ee) {
+                        throw new SecurityException(
+                                "V4 verification failed to collect V2/V3 certificates from : "
+                                        + apkPath, ee);
+                    }
+                }
+
+                Signature[] nonstreamingSigs = convertToSignatures(nonstreamingCerts);
                 if (nonstreamingSigs.length != signerSigs.length) {
                     throw new SecurityException(
-                            "Invalid number of certificates: " + nonstreaming.certs.length);
+                            "Invalid number of certificates: " + nonstreamingSigs.length);
                 }
 
                 for (int i = 0, size = signerSigs.length; i < size; ++i) {
                     if (!nonstreamingSigs[i].equals(signerSigs[i])) {
-                        throw new SecurityException("V4 signature certificate does not match V3");
+                        throw new SecurityException(
+                                "V4 signature certificate does not match V2/V3");
                     }
                 }
 
-                // TODO(b/151240006): add support for v2 digest and make it mandatory.
-                if (!ArrayUtils.isEmpty(vSigner.v3Digest) && !ArrayUtils.equals(vSigner.v3Digest,
-                        nonstreaming.digest, vSigner.v3Digest.length)) {
-                    throw new SecurityException("V3 digest in V4 signature does not match V3");
+                if (!ArrayUtils.equals(vSigner.apkDigest, nonstreamingDigest,
+                        vSigner.apkDigest.length)) {
+                    throw new SecurityException("APK digest in V4 signature does not match V2/V3");
                 }
             }
 
diff --git a/core/java/android/util/apk/ApkSigningBlockUtils.java b/core/java/android/util/apk/ApkSigningBlockUtils.java
index 4fe8515..2a4b65d 100644
--- a/core/java/android/util/apk/ApkSigningBlockUtils.java
+++ b/core/java/android/util/apk/ApkSigningBlockUtils.java
@@ -421,6 +421,10 @@
     static final int CONTENT_DIGEST_CHUNKED_SHA512 = 2;
     static final int CONTENT_DIGEST_VERITY_CHUNKED_SHA256 = 3;
 
+    private static final int[] V4_CONTENT_DIGEST_ALGORITHMS =
+            {CONTENT_DIGEST_CHUNKED_SHA512, CONTENT_DIGEST_VERITY_CHUNKED_SHA256,
+                    CONTENT_DIGEST_CHUNKED_SHA256};
+
     static int compareSignatureAlgorithm(int sigAlgorithm1, int sigAlgorithm2) {
         int digestAlgorithm1 = getSignatureAlgorithmContentDigestAlgorithm(sigAlgorithm1);
         int digestAlgorithm2 = getSignatureAlgorithmContentDigestAlgorithm(sigAlgorithm2);
@@ -572,6 +576,21 @@
     }
 
     /**
+     * Returns the best digest from the map of available digests.
+     * similarly to compareContentDigestAlgorithm.
+     *
+     * Keep in sync with pickBestDigestForV4 in apksigner's ApkSigningBlockUtils.
+     */
+    static byte[] pickBestDigestForV4(Map<Integer, byte[]> contentDigests) {
+        for (int algo : V4_CONTENT_DIGEST_ALGORITHMS) {
+            if (contentDigests.containsKey(algo)) {
+                return contentDigests.get(algo);
+            }
+        }
+        return null;
+    }
+
+    /**
      * Returns new byte buffer whose content is a shared subsequence of this buffer's content
      * between the specified start (inclusive) and end (exclusive) positions. As opposed to
      * {@link ByteBuffer#slice()}, the returned buffer's byte order is the same as the source
diff --git a/core/java/android/util/proto/ProtoOutputStream.java b/core/java/android/util/proto/ProtoOutputStream.java
index 9a555c16..2c260f6 100644
--- a/core/java/android/util/proto/ProtoOutputStream.java
+++ b/core/java/android/util/proto/ProtoOutputStream.java
@@ -201,7 +201,9 @@
     }
 
     /**
-     * Returns the uncompressed buffer size
+     * Returns the total size of the data that has been written, after full
+     * protobuf encoding has occurred.
+     *
      * @return the uncompressed buffer size
      */
     public int getRawSize() {
@@ -2271,9 +2273,12 @@
     }
 
     /**
-     * Write a field tag to the stream.
+     * Write an individual field tag by hand.
+     *
+     * @see See <a href="https://developers.google.com/protocol-buffers/docs/encoding">Protobuf
+     * Encoding</a> for details on the structure of how tags and data are written.
      */
-    public void writeTag(int id, int wireType) {
+    public void writeTag(int id, @WireType int wireType) {
         mBuffer.writeRawVarint32((id << FIELD_ID_SHIFT) | wireType);
     }
 
diff --git a/core/java/android/util/proto/ProtoStream.java b/core/java/android/util/proto/ProtoStream.java
index 4969d8a..1940da9 100644
--- a/core/java/android/util/proto/ProtoStream.java
+++ b/core/java/android/util/proto/ProtoStream.java
@@ -16,9 +16,14 @@
 
 package android.util.proto;
 
+import android.annotation.IntDef;
+import android.annotation.LongDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
 /**
  * Base utility class for protobuf streams.
  *
@@ -30,6 +35,71 @@
 public class ProtoStream {
 
     /**
+     * A protobuf wire type.  All application-level types are represented using
+     * varint, fixed64, length-delimited and fixed32 wire types. The start-group
+     * and end-group types are unused in modern protobuf versions (proto2 and proto3),
+     * but are included here for completeness.
+     *
+     * @see <a href="https://developers.google.com/protocol-buffers/docs/encoding">Protobuf
+     * Encoding</a>
+     */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef({
+        WIRE_TYPE_VARINT,
+        WIRE_TYPE_FIXED64,
+        WIRE_TYPE_LENGTH_DELIMITED,
+        WIRE_TYPE_START_GROUP,
+        WIRE_TYPE_END_GROUP,
+        WIRE_TYPE_FIXED32
+    })
+    public @interface WireType {}
+
+    /**
+     * Application-level protobuf field types, as would be used in a .proto file.
+     *
+     * @see <a href="https://developers.google.com/protocol-buffers/docs/encoding">Protobuf
+     * Encoding</a>
+     */
+    @Retention(RetentionPolicy.SOURCE)
+    @LongDef({
+        FIELD_TYPE_UNKNOWN,
+        FIELD_TYPE_DOUBLE,
+        FIELD_TYPE_FLOAT,
+        FIELD_TYPE_INT64,
+        FIELD_TYPE_UINT64,
+        FIELD_TYPE_INT32,
+        FIELD_TYPE_FIXED64,
+        FIELD_TYPE_FIXED32,
+        FIELD_TYPE_BOOL,
+        FIELD_TYPE_STRING,
+        FIELD_TYPE_MESSAGE,
+        FIELD_TYPE_BYTES,
+        FIELD_TYPE_UINT32,
+        FIELD_TYPE_ENUM,
+        FIELD_TYPE_SFIXED32,
+        FIELD_TYPE_SFIXED64,
+        FIELD_TYPE_SINT32,
+        FIELD_TYPE_SINT64,
+    })
+    public @interface FieldType {}
+
+
+    /**
+     * Represents the cardinality of a protobuf field.
+     *
+     * @see <a href="https://developers.google.com/protocol-buffers/docs/encoding">Protobuf
+     * Encoding</a>
+     */
+    @Retention(RetentionPolicy.SOURCE)
+    @LongDef({
+        FIELD_COUNT_UNKNOWN,
+        FIELD_COUNT_SINGLE,
+        FIELD_COUNT_REPEATED,
+        FIELD_COUNT_PACKED,
+    })
+    public @interface FieldCount {}
+
+    /**
      * Number of bits to shift the field number to form a tag.
      *
      * <pre>
@@ -128,7 +198,7 @@
     public static final long FIELD_TYPE_MASK = 0x0ffL << FIELD_TYPE_SHIFT;
 
     /**
-     * Not a real wire type.
+     * Not a real field type.
      * @hide
      */
     public static final long FIELD_TYPE_UNKNOWN = 0;
@@ -378,7 +448,7 @@
     /**
      * Get the developer-usable name of a field type.
      */
-    public static @Nullable String getFieldTypeString(long fieldType) {
+    public static @Nullable String getFieldTypeString(@FieldType long fieldType) {
         int index = ((int) ((fieldType & FIELD_TYPE_MASK) >>> FIELD_TYPE_SHIFT)) - 1;
         if (index >= 0 && index < FIELD_TYPE_NAMES.length) {
             return FIELD_TYPE_NAMES[index];
@@ -405,7 +475,7 @@
     /**
      * Get the developer-usable name of a wire type.
      */
-    public static @Nullable String getWireTypeString(int wireType) {
+    public static @Nullable String getWireTypeString(@WireType int wireType) {
         switch (wireType) {
             case WIRE_TYPE_VARINT:
                 return "Varint";
diff --git a/core/java/android/view/BatchedInputEventReceiver.java b/core/java/android/view/BatchedInputEventReceiver.java
index 95b2c70..30e3ec1 100644
--- a/core/java/android/view/BatchedInputEventReceiver.java
+++ b/core/java/android/view/BatchedInputEventReceiver.java
@@ -35,7 +35,7 @@
     }
 
     @Override
-    public void onBatchedInputEventPending() {
+    public void onBatchedInputEventPending(int source) {
         scheduleBatchedInput();
     }
 
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index dffcafe..0ccb1e0 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -57,8 +57,8 @@
  * <li>The application display area specifies the part of the display that may contain
  * an application window, excluding the system decorations.  The application display area may
  * be smaller than the real display area because the system subtracts the space needed
- * for decor elements such as the status bar.  Use {@link WindowMetrics#getSize()} to query the
- * application window size.</li>
+ * for decor elements such as the status bar.  Use {@link WindowMetrics#getBounds()} to query the
+ * application window bounds.</li>
  * <li>The real display area specifies the part of the display that contains content
  * including the system decorations.  Even so, the real display area may be smaller than the
  * physical size of the display if the window manager is emulating a smaller display
@@ -673,7 +673,7 @@
      *
      * @param outSize A {@link Point} object to receive the size information.
      * @deprecated Use {@link WindowManager#getCurrentWindowMetrics()} to obtain an instance of
-     * {@link WindowMetrics} and use {@link WindowMetrics#getSize()} instead.
+     * {@link WindowMetrics} and use {@link WindowMetrics#getBounds()} instead.
      */
     @Deprecated
     public void getSize(Point outSize) {
@@ -689,7 +689,7 @@
      * Gets the size of the display as a rectangle, in pixels.
      *
      * @param outSize A {@link Rect} object to receive the size information.
-     * @deprecated Use {@link WindowMetrics#getSize()} to get the dimensions of the application
+     * @deprecated Use {@link WindowMetrics#getBounds()} to get the dimensions of the application
      * window area.
      */
     @Deprecated
@@ -755,7 +755,7 @@
     }
 
     /**
-     * @deprecated Use {@link WindowMetrics#getSize()} instead.
+     * @deprecated Use {@link WindowMetrics#getBounds#width()} instead.
      */
     @Deprecated
     public int getWidth() {
@@ -766,7 +766,7 @@
     }
 
     /**
-     * @deprecated Use {@link WindowMetrics#getSize()} instead.
+     * @deprecated Use {@link WindowMetrics#getBounds()#height()} instead.
      */
     @Deprecated
     public int getHeight() {
@@ -1105,7 +1105,7 @@
      * </p>
      *
      * @param outMetrics A {@link DisplayMetrics} object to receive the metrics.
-     * @deprecated Use {@link WindowMetrics#getSize()} to get the dimensions of the application
+     * @deprecated Use {@link WindowMetrics#getBounds()} to get the dimensions of the application
      * window area, and {@link Configuration#densityDpi} to get the current density.
      */
     @Deprecated
diff --git a/core/java/android/view/IDisplayWindowRotationCallback.aidl b/core/java/android/view/IDisplayWindowRotationCallback.aidl
index 79a15ad..1ffe2dd 100644
--- a/core/java/android/view/IDisplayWindowRotationCallback.aidl
+++ b/core/java/android/view/IDisplayWindowRotationCallback.aidl
@@ -16,7 +16,7 @@
 
 package android.view;
 
-import android.view.WindowContainerTransaction;
+import android.window.WindowContainerTransaction;
 
 /**
  * Interface to be invoked by the controller when it has finished preparing for a display rotation.
diff --git a/core/java/android/view/ITaskOrganizer.aidl b/core/java/android/view/ITaskOrganizer.aidl
deleted file mode 100644
index 565f694..0000000
--- a/core/java/android/view/ITaskOrganizer.aidl
+++ /dev/null
@@ -1,52 +0,0 @@
-/* //device/java/android/android/view/ITaskOrganizer.aidl
-**
-** Copyright 2019, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
-
-package android.view;
-
-import android.view.IWindowContainer;
-import android.view.SurfaceControl;
-import android.app.ActivityManager;
-
-/**
- * Interface for ActivityTaskManager/WindowManager to delegate control of tasks.
- * {@hide}
- */
-oneway interface ITaskOrganizer {
-    void taskAppeared(in ActivityManager.RunningTaskInfo taskInfo);
-    void taskVanished(in ActivityManager.RunningTaskInfo taskInfo);
-
-    /**
-     * Called upon completion of
-     * ActivityTaskManagerService#applyTaskOrganizerTransaction
-     */
-    void transactionReady(int id, in SurfaceControl.Transaction t);
-
-    /**
-     * Will fire when core attributes of a Task's info change. Relevant properties include the
-     * {@link WindowConfiguration.ActivityType} and whether it is resizable.
-     *
-     * This is used, for example, during split-screen. The flow for starting is: Something sends an
-     * Intent with windowingmode. Then WM finds a matching root task and launches the new task into
-     * it. This causes the root task's info to change because now it has a task when it didn't
-     * before. The default Divider implementation interprets this as a request to enter
-     * split-screen mode and will move all other Tasks into the secondary root task. When WM
-     * applies this change, it triggers an info change in the secondary root task because it now
-     * has children. The Divider impl looks at the info and can see that the secondary root task
-     * has adopted an ActivityType of HOME and proceeds to show the minimized dock UX.
-     */
-    void onTaskInfoChanged(in ActivityManager.RunningTaskInfo info);
-}
\ No newline at end of file
diff --git a/core/java/android/view/IWindowSession.aidl b/core/java/android/view/IWindowSession.aidl
index dfe89a3..45e51f7 100644
--- a/core/java/android/view/IWindowSession.aidl
+++ b/core/java/android/view/IWindowSession.aidl
@@ -318,8 +318,7 @@
      * Called when the client has changed the local insets state, and now the server should reflect
      * that new state.
      */
-    void insetsModified(IWindow window, in InsetsState state);
-
+    oneway void insetsModified(IWindow window, in InsetsState state);
 
     /**
      * Called when the system gesture exclusion has changed.
diff --git a/core/java/android/view/InputEventReceiver.java b/core/java/android/view/InputEventReceiver.java
index 7986ceb..25a4108 100644
--- a/core/java/android/view/InputEventReceiver.java
+++ b/core/java/android/view/InputEventReceiver.java
@@ -147,8 +147,9 @@
      * samples until the recipient calls {@link #consumeBatchedInputEvents} or
      * an event is received that ends the batch and causes it to be consumed
      * immediately (such as a pointer up event).
+     * @param source The source of the batched event.
      */
-    public void onBatchedInputEventPending() {
+    public void onBatchedInputEventPending(int source) {
         consumeBatchedInputEvents(-1);
     }
 
@@ -219,13 +220,6 @@
         onInputEvent(event);
     }
 
-    // Called from native code.
-    @SuppressWarnings("unused")
-    @UnsupportedAppUsage
-    private void dispatchBatchedInputEventPending() {
-        onBatchedInputEventPending();
-    }
-
     /**
      * Factory for InputEventReceiver
      */
diff --git a/core/java/android/view/InsetsAnimationControlImpl.java b/core/java/android/view/InsetsAnimationControlImpl.java
index d2e6036..07b6cc1 100644
--- a/core/java/android/view/InsetsAnimationControlImpl.java
+++ b/core/java/android/view/InsetsAnimationControlImpl.java
@@ -68,7 +68,6 @@
     private final @InsetsType int mTypes;
     private final InsetsAnimationControlCallbacks mController;
     private final WindowInsetsAnimation mAnimation;
-    private final boolean mFade;
     private Insets mCurrentInsets;
     private Insets mPendingInsets;
     private float mPendingFraction;
@@ -83,11 +82,10 @@
             InsetsState state, WindowInsetsAnimationControlListener listener,
             @InsetsType int types,
             InsetsAnimationControlCallbacks controller, long durationMs, Interpolator interpolator,
-            boolean fade, @AnimationType int animationType) {
+            @AnimationType int animationType) {
         mControls = controls;
         mListener = listener;
         mTypes = types;
-        mFade = fade;
         mController = controller;
         mInitialInsetsState = new InsetsState(state, true /* copySources */);
         mCurrentInsets = getInsetsFromState(mInitialInsetsState, frame, null /* typeSideMap */);
@@ -198,11 +196,10 @@
         if (mCancelled || mFinished) {
             return;
         }
+        mShownOnFinish = shown;
         setInsetsAndAlpha(shown ? mShownInsets : mHiddenInsets, 1f /* alpha */, 1f /* fraction */);
         mFinished = true;
         mListener.onFinished(this);
-
-        mShownOnFinish = shown;
     }
 
     @Override
@@ -261,7 +258,6 @@
         return state.calculateInsets(frame, null /* ignoringVisibilityState */,
                 false /* isScreenRound */,
                 false /* alwaysConsumeSystemBars */, null /* displayCutout */,
-                null /* legacyContentInsets */, null /* legacyStableInsets */,
                 LayoutParams.SOFT_INPUT_ADJUST_RESIZE /* legacySoftInputMode*/,
                 0 /* legacySystemUiFlags */, typeSideMap)
                .getInsets(mTypes);
@@ -299,13 +295,11 @@
 
             // If the system is controlling the insets source, the leash can be null.
             if (leash != null) {
-                // TODO: use a better interpolation for fade.
-                alpha = mFade ? ((float) inset / maxInset * 0.3f + 0.7f) : alpha;
                 SurfaceParams params = new SurfaceParams.Builder(leash)
                         .withAlpha(side == ISIDE_FLOATING ? 1 : alpha)
                         .withMatrix(mTmpMatrix)
                         .withVisibility(side == ISIDE_FLOATING
-                                ? state.getSource(source.getType()).isVisible()
+                                ? mShownOnFinish
                                 : inset != 0 /* visible */)
                         .build();
                 surfaceParams.add(params);
diff --git a/core/java/android/view/InsetsAnimationThreadControlRunner.java b/core/java/android/view/InsetsAnimationThreadControlRunner.java
index 13b4cd8..40ffa7ef 100644
--- a/core/java/android/view/InsetsAnimationThreadControlRunner.java
+++ b/core/java/android/view/InsetsAnimationThreadControlRunner.java
@@ -88,11 +88,11 @@
             InsetsState state, WindowInsetsAnimationControlListener listener,
             @InsetsType int types,
             InsetsAnimationControlCallbacks controller, long durationMs, Interpolator interpolator,
-            boolean fade, @AnimationType int animationType, Handler mainThreadHandler) {
+            @AnimationType int animationType, Handler mainThreadHandler) {
         mMainThreadHandler = mainThreadHandler;
         mOuterCallbacks = controller;
         mControl = new InsetsAnimationControlImpl(copyControls(controls), frame, state, listener,
-                types, mCallbacks, durationMs, interpolator, fade, animationType);
+                types, mCallbacks, durationMs, interpolator, animationType);
         InsetsAnimationThread.getHandler().post(() -> listener.onReady(mControl, types));
     }
 
diff --git a/core/java/android/view/InsetsController.java b/core/java/android/view/InsetsController.java
index 96f7340..40a460d 100644
--- a/core/java/android/view/InsetsController.java
+++ b/core/java/android/view/InsetsController.java
@@ -16,7 +16,9 @@
 
 package android.view;
 
+import static android.view.InsetsState.ITYPE_CAPTION_BAR;
 import static android.view.InsetsState.ITYPE_IME;
+import static android.view.InsetsState.toInternalType;
 import static android.view.InsetsState.toPublicType;
 import static android.view.WindowInsets.Type.all;
 import static android.view.WindowInsets.Type.ime;
@@ -26,8 +28,8 @@
 import android.animation.AnimationHandler;
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
-import android.animation.ObjectAnimator;
 import android.animation.TypeEvaluator;
+import android.animation.ValueAnimator;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -39,7 +41,6 @@
 import android.util.ArraySet;
 import android.util.Log;
 import android.util.Pair;
-import android.util.Property;
 import android.util.SparseArray;
 import android.view.InsetsSourceConsumer.ShowResult;
 import android.view.InsetsState.InternalInsetsType;
@@ -50,6 +51,7 @@
 import android.view.WindowInsetsAnimation.Bounds;
 import android.view.WindowManager.LayoutParams.SoftInputModeFlags;
 import android.view.animation.Interpolator;
+import android.view.animation.LinearInterpolator;
 import android.view.animation.PathInterpolator;
 
 import com.android.internal.annotations.VisibleForTesting;
@@ -72,9 +74,20 @@
 
     private static final int ANIMATION_DURATION_SHOW_MS = 275;
     private static final int ANIMATION_DURATION_HIDE_MS = 340;
+
+    private static final int ANIMATION_DURATION_SYNC_IME_MS = 285;
+    private static final int ANIMATION_DURATION_UNSYNC_IME_MS = 200;
+
     private static final int PENDING_CONTROL_TIMEOUT_MS = 2000;
 
-    public static final Interpolator INTERPOLATOR = new PathInterpolator(0.4f, 0f, 0.2f, 1f);
+    public static final Interpolator SYSTEM_BARS_INTERPOLATOR =
+            new PathInterpolator(0.4f, 0f, 0.2f, 1f);
+    private static final Interpolator SYNC_IME_INTERPOLATOR =
+            new PathInterpolator(0.2f, 0f, 0f, 1f);
+    private static final Interpolator LINEAR_OUT_SLOW_IN_INTERPOLATOR =
+            new PathInterpolator(0, 0, 0.2f, 1f);
+    private static final Interpolator FAST_OUT_LINEAR_IN_INTERPOLATOR =
+            new PathInterpolator(0.4f, 0f, 1f, 1f);
 
     /**
      * Layout mode during insets animation: The views should be laid out as if the changing inset
@@ -139,27 +152,6 @@
             (int) (startValue.bottom + fraction * (endValue.bottom - startValue.bottom)));
 
     /**
-     * Linear animation property
-     */
-    private static class InsetsProperty extends Property<WindowInsetsAnimationController, Insets> {
-        InsetsProperty() {
-            super(Insets.class, "Insets");
-        }
-
-        @Override
-        public Insets get(WindowInsetsAnimationController object) {
-            return object.getCurrentInsets();
-        }
-        @Override
-        public void set(WindowInsetsAnimationController controller, Insets value) {
-            controller.setInsetsAndAlpha(
-                    value, 1f /* alpha */, (((InternalAnimationControlListener)
-                            ((InsetsAnimationControlImpl) controller).getListener())
-                                    .getRawFraction()));
-        }
-    }
-
-    /**
      * The default implementation of listener, to be used by InsetsController and InsetsPolicy to
      * animate insets.
      */
@@ -167,9 +159,11 @@
             implements WindowInsetsAnimationControlListener {
 
         private WindowInsetsAnimationController mController;
-        private ObjectAnimator mAnimator;
+        private ValueAnimator mAnimator;
         private final boolean mShow;
-        private final boolean mUseSfVsync;
+        private final boolean mHasAnimationCallbacks;
+        private final @InsetsType int mRequestedTypes;
+        private final long mDurationMs;
 
         private ThreadLocal<AnimationHandler> mSfAnimationHandlerThreadLocal =
                 new ThreadLocal<AnimationHandler>() {
@@ -181,24 +175,40 @@
             }
         };
 
-        public InternalAnimationControlListener(boolean show, boolean useSfVsync) {
+        public InternalAnimationControlListener(boolean show, boolean hasAnimationCallbacks,
+                int requestedTypes) {
             mShow = show;
-            mUseSfVsync = useSfVsync;
+            mHasAnimationCallbacks = hasAnimationCallbacks;
+            mRequestedTypes = requestedTypes;
+            mDurationMs = calculateDurationMs();
         }
 
         @Override
         public void onReady(WindowInsetsAnimationController controller, int types) {
             mController = controller;
 
-            mAnimator = ObjectAnimator.ofObject(
-                    controller,
-                    new InsetsProperty(),
-                    sEvaluator,
-                    mShow ? controller.getHiddenStateInsets() : controller.getShownStateInsets(),
-                    mShow ? controller.getShownStateInsets() : controller.getHiddenStateInsets()
-            );
-            mAnimator.setDuration(getDurationMs());
-            mAnimator.setInterpolator(INTERPOLATOR);
+            mAnimator = ValueAnimator.ofFloat(0f, 1f);
+            mAnimator.setDuration(mDurationMs);
+            mAnimator.setInterpolator(new LinearInterpolator());
+            Insets start = mShow
+                    ? controller.getHiddenStateInsets()
+                    : controller.getShownStateInsets();
+            Insets end = mShow
+                    ? controller.getShownStateInsets()
+                    : controller.getHiddenStateInsets();
+            Interpolator insetsInterpolator = getInterpolator();
+            Interpolator alphaInterpolator = getAlphaInterpolator();
+            mAnimator.addUpdateListener(animation -> {
+                float rawFraction = animation.getAnimatedFraction();
+                float alphaFraction = mShow
+                        ? rawFraction
+                        : 1 - rawFraction;
+                float insetsFraction = insetsInterpolator.getInterpolation(rawFraction);
+                controller.setInsetsAndAlpha(
+                        sEvaluator.evaluate(insetsFraction, start, end),
+                        alphaInterpolator.getInterpolation(alphaFraction),
+                        rawFraction);
+            });
             mAnimator.addListener(new AnimatorListenerAdapter() {
 
                 @Override
@@ -206,7 +216,7 @@
                     onAnimationFinish();
                 }
             });
-            if (mUseSfVsync) {
+            if (!mHasAnimationCallbacks) {
                 mAnimator.setAnimationHandler(mSfAnimationHandlerThreadLocal.get());
             }
             mAnimator.start();
@@ -224,22 +234,57 @@
             }
         }
 
-        protected void onAnimationFinish() {
-            mController.finish(mShow);
+        Interpolator getInterpolator() {
+            if ((mRequestedTypes & ime()) != 0) {
+                if (mHasAnimationCallbacks) {
+                    return SYNC_IME_INTERPOLATOR;
+                } else if (mShow) {
+                    return LINEAR_OUT_SLOW_IN_INTERPOLATOR;
+                } else {
+                    return FAST_OUT_LINEAR_IN_INTERPOLATOR;
+                }
+            } else {
+                return SYSTEM_BARS_INTERPOLATOR;
+            }
         }
 
-        protected float getRawFraction() {
-            return (float) mAnimator.getCurrentPlayTime() / mAnimator.getDuration();
+        Interpolator getAlphaInterpolator() {
+            if ((mRequestedTypes & ime()) != 0) {
+                if (mHasAnimationCallbacks) {
+                    return input -> 1f;
+                } else if (mShow) {
+
+                    // Alpha animation takes half the time with linear interpolation;
+                    return input -> Math.min(1f, 2 * input);
+                } else {
+                    return FAST_OUT_LINEAR_IN_INTERPOLATOR;
+                }
+            } else {
+                return input -> 1f;
+            }
+        }
+
+        protected void onAnimationFinish() {
+            mController.finish(mShow);
         }
 
         /**
          * To get the animation duration in MS.
          */
         public long getDurationMs() {
-            if (mAnimator != null) {
-                return mAnimator.getDuration();
+            return mDurationMs;
+        }
+
+        private long calculateDurationMs() {
+            if ((mRequestedTypes & ime()) != 0) {
+                if (mHasAnimationCallbacks) {
+                    return ANIMATION_DURATION_SYNC_IME_MS;
+                } else {
+                    return ANIMATION_DURATION_UNSYNC_IME_MS;
+                }
+            } else {
+                return mShow ? ANIMATION_DURATION_SHOW_MS : ANIMATION_DURATION_HIDE_MS;
             }
-            return mShow ? ANIMATION_DURATION_SHOW_MS : ANIMATION_DURATION_HIDE_MS;
         }
     }
 
@@ -316,9 +361,6 @@
 
     private final Runnable mAnimCallback;
 
-    private final Rect mLastLegacyContentInsets = new Rect();
-    private final Rect mLastLegacyStableInsets = new Rect();
-
     /** Pending control request that is waiting on IME to be ready to be shown */
     private PendingControlRequest mPendingImeControlRequest;
 
@@ -326,6 +368,7 @@
     private int mLastLegacySystemUiFlags;
     private DisplayCutout mLastDisplayCutout;
     private boolean mStartingAnimation;
+    private int mCaptionInsetsHeight = 0;
 
     private SyncRtSurfaceTransactionApplier mApplier;
 
@@ -388,8 +431,8 @@
 
             WindowInsets insets = state.calculateInsets(mFrame, mState /* ignoringVisibilityState*/,
                     mLastInsets.isRound(), mLastInsets.shouldAlwaysConsumeSystemBars(),
-                    mLastDisplayCutout, mLastLegacyContentInsets, mLastLegacyStableInsets,
-                    mLastLegacySoftInputMode, mLastLegacySystemUiFlags, null /* typeSideMap */);
+                    mLastDisplayCutout, mLastLegacySoftInputMode, mLastLegacySystemUiFlags,
+                    null /* typeSideMap */);
             mViewRoot.mView.dispatchWindowInsetsAnimationProgress(insets,
                     mUnmodifiableTmpRunningAnims);
 
@@ -419,44 +462,76 @@
 
     @VisibleForTesting
     public boolean onStateChanged(InsetsState state) {
-        if (mState.equals(state) && mLastDispachedState.equals(state)) {
+        boolean localStateChanged = !mState.equals(state, true /* excludingCaptionInsets */)
+                || !captionInsetsUnchanged();
+        if (!localStateChanged && mLastDispachedState.equals(state)) {
             return false;
         }
-        mState.set(state);
+        updateState(state);
         mLastDispachedState.set(state, true /* copySources */);
         applyLocalVisibilityOverride();
-        mViewRoot.notifyInsetsChanged();
-        if (!mState.equals(mLastDispachedState)) {
+        if (localStateChanged) {
+            mViewRoot.notifyInsetsChanged();
+        }
+        if (!mState.equals(mLastDispachedState, true /* excludingCaptionInsets */)) {
             sendStateToWindowManager();
         }
         return true;
     }
 
+    private void updateState(InsetsState newState) {
+        mState.setDisplayFrame(newState.getDisplayFrame());
+        for (int i = newState.getSourcesCount() - 1; i >= 0; i--) {
+            InsetsSource source = newState.sourceAt(i);
+            getSourceConsumer(source.getType()).updateSource(source);
+        }
+        for (int i = mState.getSourcesCount() - 1; i >= 0; i--) {
+            InsetsSource source = mState.sourceAt(i);
+            if (newState.peekSource(source.getType()) == null) {
+                mState.removeSource(source.getType());
+            }
+        }
+        if (mCaptionInsetsHeight != 0) {
+            mState.getSource(ITYPE_CAPTION_BAR).setFrame(new Rect(mFrame.left, mFrame.top,
+                    mFrame.right, mFrame.top + mCaptionInsetsHeight));
+        }
+    }
+
+    private boolean captionInsetsUnchanged() {
+        if (mState.peekSource(ITYPE_CAPTION_BAR) == null
+                && mCaptionInsetsHeight == 0) {
+            return true;
+        }
+        if (mState.peekSource(ITYPE_CAPTION_BAR) != null
+                && mCaptionInsetsHeight
+                == mState.peekSource(ITYPE_CAPTION_BAR).getFrame().height()) {
+            return true;
+        }
+        return false;
+    }
+
     /**
      * @see InsetsState#calculateInsets
      */
     @VisibleForTesting
     public WindowInsets calculateInsets(boolean isScreenRound,
-            boolean alwaysConsumeSystemBars, DisplayCutout cutout, Rect legacyContentInsets,
-            Rect legacyStableInsets, int legacySoftInputMode, int legacySystemUiFlags) {
-        mLastLegacyContentInsets.set(legacyContentInsets);
-        mLastLegacyStableInsets.set(legacyStableInsets);
+            boolean alwaysConsumeSystemBars, DisplayCutout cutout,
+            int legacySoftInputMode, int legacySystemUiFlags) {
         mLastLegacySoftInputMode = legacySoftInputMode;
         mLastLegacySystemUiFlags = legacySystemUiFlags;
         mLastDisplayCutout = cutout;
         mLastInsets = mState.calculateInsets(mFrame, null /* ignoringVisibilityState*/,
-                isScreenRound, alwaysConsumeSystemBars, cutout, legacyContentInsets,
-                legacyStableInsets, legacySoftInputMode, legacySystemUiFlags,
+                isScreenRound, alwaysConsumeSystemBars, cutout,
+                legacySoftInputMode, legacySystemUiFlags,
                 null /* typeSideMap */);
         return mLastInsets;
     }
 
     /**
-     * @see InsetsState#calculateVisibleInsets(Rect, Rect, int)
+     * @see InsetsState#calculateVisibleInsets(Rect, int)
      */
-    public Rect calculateVisibleInsets(Rect legacyVisibleInsets,
-            @SoftInputModeFlags int softInputMode) {
-        return mState.calculateVisibleInsets(mFrame, legacyVisibleInsets, softInputMode);
+    public Rect calculateVisibleInsets(@SoftInputModeFlags int softInputMode) {
+        return mState.calculateVisibleInsets(mFrame, softInputMode);
     }
 
     /**
@@ -525,7 +600,7 @@
                     pendingRequest.types, pendingRequest.cancellationSignal,
                     pendingRequest.listener, mFrame,
                     true /* fromIme */, pendingRequest.durationMs, pendingRequest.interpolator,
-                    false /* fade */, pendingRequest.animationType,
+                    pendingRequest.animationType,
                     pendingRequest.layoutInsetsDuringAnimation,
                     pendingRequest.useInsetsAnimationThread);
             return;
@@ -590,9 +665,9 @@
             listener.onCancelled(null);
             return;
         }
+
         controlAnimationUnchecked(types, cancellationSignal, listener, mFrame, fromIme, durationMs,
-                interpolator, false /* fade */, animationType,
-                getLayoutInsetsDuringAnimationMode(types),
+                interpolator, animationType, getLayoutInsetsDuringAnimationMode(types),
                 false /* useInsetsAnimationThread */);
     }
 
@@ -606,7 +681,7 @@
     private void controlAnimationUnchecked(@InsetsType int types,
             @Nullable CancellationSignal cancellationSignal,
             WindowInsetsAnimationControlListener listener, Rect frame, boolean fromIme,
-            long durationMs, Interpolator interpolator, boolean fade,
+            long durationMs, Interpolator interpolator,
             @AnimationType int animationType,
             @LayoutInsetsDuringAnimation int layoutInsetsDuringAnimation,
             boolean useInsetsAnimationThread) {
@@ -652,10 +727,10 @@
 
         final InsetsAnimationControlRunner runner = useInsetsAnimationThread
                 ? new InsetsAnimationThreadControlRunner(controls,
-                        frame, mState, listener, typesReady, this, durationMs, interpolator, fade,
+                        frame, mState, listener, typesReady, this, durationMs, interpolator,
                         animationType, mViewRoot.mHandler)
                 : new InsetsAnimationControlImpl(controls,
-                        frame, mState, listener, typesReady, this, durationMs, interpolator, fade,
+                        frame, mState, listener, typesReady, this, durationMs, interpolator,
                         animationType);
         mRunningAnimations.add(new RunningAnimation(runner, animationType));
         if (cancellationSignal != null) {
@@ -814,8 +889,15 @@
             control.cancel();
         }
         for (int i = mRunningAnimations.size() - 1; i >= 0; i--) {
-            if (mRunningAnimations.get(i).runner == control) {
+            RunningAnimation runningAnimation = mRunningAnimations.get(i);
+            if (runningAnimation.runner == control) {
                 mRunningAnimations.remove(i);
+                ArraySet<Integer> types = toInternalType(control.getTypes());
+                for (int j = types.size() - 1; j >= 0; j--) {
+                    if (getSourceConsumer(types.valueAt(j)).notifyAnimationFinished()) {
+                        mViewRoot.notifyInsetsChanged();
+                    }
+                }
                 break;
             }
         }
@@ -902,12 +984,12 @@
         InsetsState tmpState = new InsetsState();
         for (int i = mSourceConsumers.size() - 1; i >= 0; i--) {
             final InsetsSourceConsumer consumer = mSourceConsumers.valueAt(i);
+            if (consumer.getType() == ITYPE_CAPTION_BAR) continue;
             if (consumer.getControl() != null) {
                 tmpState.addSource(mState.getSource(consumer.getType()));
             }
         }
 
-        // TODO: Put this on a dispatcher thread.
         try {
             mViewRoot.mWindowSession.insetsModified(mViewRoot.mWindow, tmpState);
         } catch (RemoteException e) {
@@ -921,25 +1003,26 @@
             return;
         }
 
-        boolean useInsetsAnimationThread = canUseInsetsAnimationThread();
+        boolean hasAnimationCallbacks = hasAnimationCallbacks();
         final InternalAnimationControlListener listener =
-                new InternalAnimationControlListener(show, useInsetsAnimationThread);
+                new InternalAnimationControlListener(show, hasAnimationCallbacks, types);
+
         // Show/hide animations always need to be relative to the display frame, in order that shown
         // and hidden state insets are correct.
         controlAnimationUnchecked(
                 types, null /* cancellationSignal */, listener, mState.getDisplayFrame(), fromIme,
-                listener.getDurationMs(),
-                INTERPOLATOR, true /* fade */, show ? ANIMATION_TYPE_SHOW : ANIMATION_TYPE_HIDE,
-                show ? LAYOUT_INSETS_DURING_ANIMATION_SHOWN
-                        : LAYOUT_INSETS_DURING_ANIMATION_HIDDEN,
-                useInsetsAnimationThread);
+                listener.getDurationMs(), listener.getInterpolator(),
+                show ? ANIMATION_TYPE_SHOW : ANIMATION_TYPE_HIDE,
+                show ? LAYOUT_INSETS_DURING_ANIMATION_SHOWN : LAYOUT_INSETS_DURING_ANIMATION_HIDDEN,
+                !hasAnimationCallbacks /* useInsetsAnimationThread */);
+
     }
 
-    private boolean canUseInsetsAnimationThread() {
+    private boolean hasAnimationCallbacks() {
         if (mViewRoot.mView == null) {
-            return true;
+            return false;
         }
-        return !mViewRoot.mView.hasWindowInsetsAnimationCallback();
+        return mViewRoot.mView.hasWindowInsetsAnimationCallback();
     }
 
     private void hideDirectly(
@@ -1043,6 +1126,11 @@
     }
 
     @Override
+    public void setCaptionInsetsHeight(int height) {
+        mCaptionInsetsHeight = height;
+    }
+
+    @Override
     public void setSystemBarsBehavior(@Behavior int behavior) {
         mViewRoot.mWindowAttributes.privateFlags |= PRIVATE_FLAG_BEHAVIOR_CONTROLLED;
         if (mViewRoot.mWindowAttributes.insetsFlags.behavior != behavior) {
@@ -1118,7 +1206,7 @@
             // Make sure a frame gets scheduled.
             mViewRoot.mView.invalidate();
         } else {
-              sc.release();
+            sc.release();
         }
     }
 }
diff --git a/core/java/android/view/InsetsSource.java b/core/java/android/view/InsetsSource.java
index 719f649..033ccef 100644
--- a/core/java/android/view/InsetsSource.java
+++ b/core/java/android/view/InsetsSource.java
@@ -16,8 +16,10 @@
 
 package android.view;
 
+import static android.view.InsetsState.ITYPE_CAPTION_BAR;
 import static android.view.InsetsState.ITYPE_IME;
 
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.graphics.Insets;
 import android.graphics.Rect;
@@ -114,9 +116,15 @@
         if (!ignoreVisibility && !mVisible) {
             return Insets.NONE;
         }
-        if (!mTmpFrame.setIntersect(frame, relativeFrame)) {
+        if (!getIntersection(frame, relativeFrame, mTmpFrame)) {
             return Insets.NONE;
         }
+        // During drag-move and drag-resizing, the caption insets position may not get updated
+        // before the app frame get updated. To layout the app content correctly during drag events,
+        // we always return the insets with the corresponding height covering the top.
+        if (getType() == ITYPE_CAPTION_BAR) {
+            return Insets.of(0, frame.height(), 0, 0);
+        }
 
         // TODO: Currently, non-floating IME always intersects at bottom due to issues with cutout.
         // However, we should let the policy decide from the server.
@@ -144,12 +152,33 @@
         }
     }
 
+    /**
+     * Outputs the intersection of two rectangles. The shared edges will also be counted in the
+     * intersection.
+     *
+     * @param a The first rectangle being intersected with.
+     * @param b The second rectangle being intersected with.
+     * @param out The rectangle which represents the intersection.
+     * @return {@code true} if there is any intersection.
+     */
+    private static boolean getIntersection(@NonNull Rect a, @NonNull Rect b, @NonNull Rect out) {
+        if (a.left <= b.right && b.left <= a.right && a.top <= b.bottom && b.top <= a.bottom) {
+            out.left = Math.max(a.left, b.left);
+            out.top = Math.max(a.top, b.top);
+            out.right = Math.min(a.right, b.right);
+            out.bottom = Math.min(a.bottom, b.bottom);
+            return true;
+        }
+        out.setEmpty();
+        return false;
+    }
+
     public void dump(String prefix, PrintWriter pw) {
         pw.print(prefix);
         pw.print("InsetsSource type="); pw.print(InsetsState.typeToString(mType));
         pw.print(" frame="); pw.print(mFrame.toShortString());
         if (mVisibleFrame != null) {
-            pw.print(" visibleFrmae="); pw.print(mVisibleFrame.toShortString());
+            pw.print(" visibleFrame="); pw.print(mVisibleFrame.toShortString());
         }
         pw.print(" visible="); pw.print(mVisible);
         pw.println();
diff --git a/core/java/android/view/InsetsSourceConsumer.java b/core/java/android/view/InsetsSourceConsumer.java
index 3325734..f36621c 100644
--- a/core/java/android/view/InsetsSourceConsumer.java
+++ b/core/java/android/view/InsetsSourceConsumer.java
@@ -16,11 +16,13 @@
 
 package android.view;
 
+import static android.view.InsetsController.ANIMATION_TYPE_NONE;
 import static android.view.InsetsController.AnimationType;
 import static android.view.InsetsState.toPublicType;
 
 import android.annotation.IntDef;
 import android.annotation.Nullable;
+import android.graphics.Rect;
 import android.view.InsetsState.InternalInsetsType;
 import android.view.SurfaceControl.Transaction;
 import android.view.WindowInsets.Type.InsetsType;
@@ -64,6 +66,8 @@
     private final Supplier<Transaction> mTransactionSupplier;
     private @Nullable InsetsSourceControl mSourceControl;
     private boolean mHasWindowFocus;
+    private Rect mPendingFrame;
+    private Rect mPendingVisibleFrame;
 
     public InsetsSourceConsumer(@InternalInsetsType int type, InsetsState state,
             Supplier<Transaction> transactionSupplier, InsetsController controller) {
@@ -215,6 +219,38 @@
         // no-op for types that always return ShowResult#SHOW_IMMEDIATELY.
     }
 
+    void updateSource(InsetsSource newSource) {
+        InsetsSource source = mState.peekSource(mType);
+        if (source == null || mController.getAnimationType(mType) == ANIMATION_TYPE_NONE
+                || source.getFrame().equals(newSource.getFrame())) {
+            mState.addSource(newSource);
+            return;
+        }
+
+        // Frame is changing while animating. Keep note of the new frame but keep existing frame
+        // until animaition is finished.
+        newSource = new InsetsSource(newSource);
+        mPendingFrame = new Rect(newSource.getFrame());
+        mPendingVisibleFrame = newSource.getVisibleFrame() != null
+                ? new Rect(newSource.getVisibleFrame())
+                : null;
+        newSource.setFrame(source.getFrame());
+        newSource.setVisibleFrame(source.getVisibleFrame());
+        mState.addSource(newSource);
+    }
+
+    boolean notifyAnimationFinished() {
+        if (mPendingFrame != null) {
+            InsetsSource source = mState.getSource(mType);
+            source.setFrame(mPendingFrame);
+            source.setVisibleFrame(mPendingVisibleFrame);
+            mPendingFrame = null;
+            mPendingVisibleFrame = null;
+            return true;
+        }
+        return false;
+    }
+
     /**
      * Sets requested visibility from the client, regardless of whether we are able to control it at
      * the moment.
diff --git a/core/java/android/view/InsetsState.java b/core/java/android/view/InsetsState.java
index c2ad74a..c515466 100644
--- a/core/java/android/view/InsetsState.java
+++ b/core/java/android/view/InsetsState.java
@@ -45,6 +45,8 @@
 import android.view.WindowInsets.Type.InsetsType;
 import android.view.WindowManager.LayoutParams.SoftInputModeFlags;
 
+import com.android.internal.annotations.VisibleForTesting;
+
 import java.io.PrintWriter;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -160,7 +162,6 @@
      */
     public WindowInsets calculateInsets(Rect frame, @Nullable InsetsState ignoringVisibilityState,
             boolean isScreenRound, boolean alwaysConsumeSystemBars, DisplayCutout cutout,
-            @Nullable Rect legacyContentInsets, @Nullable Rect legacyStableInsets,
             int legacySoftInputMode, int legacySystemUiFlags,
             @Nullable @InternalInsetsSide SparseIntArray typeSideMap) {
         Insets[] typeInsetsMap = new Insets[Type.SIZE];
@@ -168,11 +169,6 @@
         boolean[] typeVisibilityMap = new boolean[SIZE];
         final Rect relativeFrame = new Rect(frame);
         final Rect relativeFrameMax = new Rect(frame);
-        if (ViewRootImpl.sNewInsetsMode != NEW_INSETS_MODE_FULL
-                && legacyContentInsets != null && legacyStableInsets != null) {
-            WindowInsets.assignCompatInsets(typeInsetsMap, legacyContentInsets);
-            WindowInsets.assignCompatInsets(typeMaxInsetsMap, legacyStableInsets);
-        }
         for (int type = FIRST_TYPE; type <= LAST_TYPE; type++) {
             InsetsSource source = mSources.get(type);
             if (source == null) {
@@ -217,12 +213,7 @@
                         && (legacySystemUiFlags & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0);
     }
 
-    public Rect calculateVisibleInsets(Rect frame, Rect legacyVisibleInsets,
-            @SoftInputModeFlags int softInputMode) {
-        if (sNewInsetsMode == NEW_INSETS_MODE_NONE) {
-            return legacyVisibleInsets;
-        }
-
+    public Rect calculateVisibleInsets(Rect frame, @SoftInputModeFlags int softInputMode) {
         Insets insets = Insets.NONE;
         for (int type = FIRST_TYPE; type <= LAST_TYPE; type++) {
             InsetsSource source = mSources.get(type);
@@ -509,6 +500,19 @@
 
     @Override
     public boolean equals(Object o) {
+        return equals(o, false);
+    }
+
+    /**
+     * An equals method can exclude the caption insets. This is useful because we assemble the
+     * caption insets information on the client side, and when we communicate with server, it's
+     * excluded.
+     * @param excludingCaptionInsets {@code true} if we want to compare two InsetsState objects but
+     *                                           ignore the caption insets source value.
+     * @return {@code true} if the two InsetsState objects are equal, {@code false} otherwise.
+     */
+    @VisibleForTesting
+    public boolean equals(Object o, boolean excludingCaptionInsets) {
         if (this == o) { return true; }
         if (o == null || getClass() != o.getClass()) { return false; }
 
@@ -517,11 +521,24 @@
         if (!mDisplayFrame.equals(state.mDisplayFrame)) {
             return false;
         }
-        if (mSources.size() != state.mSources.size()) {
+        int size = mSources.size();
+        int otherSize = state.mSources.size();
+        if (excludingCaptionInsets) {
+            if (mSources.get(ITYPE_CAPTION_BAR) != null) {
+                size--;
+            }
+            if (state.mSources.get(ITYPE_CAPTION_BAR) != null) {
+                otherSize--;
+            }
+        }
+        if (size != otherSize) {
             return false;
         }
         for (int i = mSources.size() - 1; i >= 0; i--) {
             InsetsSource source = mSources.valueAt(i);
+            if (excludingCaptionInsets) {
+                if (source.getType() == ITYPE_CAPTION_BAR) continue;
+            }
             InsetsSource otherSource = state.mSources.get(source.getType());
             if (otherSource == null) {
                 return false;
diff --git a/core/java/android/view/PendingInsetsController.java b/core/java/android/view/PendingInsetsController.java
index 229ee03..a106b2c 100644
--- a/core/java/android/view/PendingInsetsController.java
+++ b/core/java/android/view/PendingInsetsController.java
@@ -42,6 +42,7 @@
     private InsetsController mReplayedInsetsController;
     private ArrayList<OnControllableInsetsChangedListener> mControllableInsetsChangedListeners
             = new ArrayList<>();
+    private int mCaptionInsetsHeight = 0;
 
     @Override
     public void show(int types) {
@@ -80,6 +81,11 @@
     }
 
     @Override
+    public void setCaptionInsetsHeight(int height) {
+        mCaptionInsetsHeight = height;
+    }
+
+    @Override
     public void setSystemBarsBehavior(int behavior) {
         if (mReplayedInsetsController != null) {
             mReplayedInsetsController.setSystemBarsBehavior(behavior);
@@ -134,6 +140,9 @@
         if (mAppearanceMask != 0) {
             controller.setSystemBarsAppearance(mAppearance, mAppearanceMask);
         }
+        if (mCaptionInsetsHeight != 0) {
+            controller.setCaptionInsetsHeight(mCaptionInsetsHeight);
+        }
         int size = mRequests.size();
         for (int i = 0; i < size; i++) {
             mRequests.get(i).replay(controller);
diff --git a/core/java/android/view/Surface.java b/core/java/android/view/Surface.java
index 13d6dd6..d12ca73 100644
--- a/core/java/android/view/Surface.java
+++ b/core/java/android/view/Surface.java
@@ -871,24 +871,24 @@
     /**
      * Sets the intended frame rate for this surface.
      *
-     * On devices that are capable of running the display at different refresh rates, the
-     * system may choose a display refresh rate to better match this surface's frame
+     * <p>On devices that are capable of running the display at different refresh rates,
+     * the system may choose a display refresh rate to better match this surface's frame
      * rate. Usage of this API won't introduce frame rate throttling, or affect other
      * aspects of the application's frame production pipeline. However, because the system
      * may change the display refresh rate, calls to this function may result in changes
      * to Choreographer callback timings, and changes to the time interval at which the
-     * system releases buffers back to the application.
+     * system releases buffers back to the application.</p>
      *
-     * Note that this only has an effect for surfaces presented on the display. If this
+     * <p>Note that this only has an effect for surfaces presented on the display. If this
      * surface is consumed by something other than the system compositor, e.g. a media
-     * codec, this call has no effect.
+     * codec, this call has no effect.</p>
      *
      * @param frameRate The intended frame rate of this surface, in frames per second. 0
      * is a special value that indicates the app will accept the system's choice for the
      * display frame rate, which is the default behavior if this function isn't
-     * called. The frameRate param does *not* need to be a valid refresh rate for this
-     * device's display - e.g., it's fine to pass 30fps to a device that can only run the
-     * display at 60fps.
+     * called. The frameRate param does <em>not</em> need to be a valid refresh rate for
+     * this device's display - e.g., it's fine to pass 30fps to a device that can only run
+     * the display at 60fps.
      *
      * @param compatibility The frame rate compatibility of this surface. The
      * compatibility value may influence the system's choice of display frame rate. See
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index c87808b..a37c1cb 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -2738,7 +2738,7 @@
 
         /**
          * Sets the intended frame rate for the surface {@link SurfaceControl}.
-         *
+         * <p>
          * On devices that are capable of running the display at different refresh rates, the system
          * may choose a display refresh rate to better match this surface's frame rate. Usage of
          * this API won't directly affect the application's frame production pipeline. However,
@@ -2750,9 +2750,9 @@
          * @param frameRate The intended frame rate for this surface, in frames per second. 0 is a
          *                  special value that indicates the app will accept the system's choice for
          *                  the display frame rate, which is the default behavior if this function
-         *                  isn't called. The frameRate param does *not* need to be a valid refresh
-         *                  rate for this device's display - e.g., it's fine to pass 30fps to a
-         *                  device that can only run the display at 60fps.
+         *                  isn't called. The frameRate param does <em>not</em> need to be a valid
+         *                  refresh rate for this device's display - e.g., it's fine to pass 30fps
+         *                  to a device that can only run the display at 60fps.
          * @param compatibility The frame rate compatibility of this surface. The compatibility
          *                      value may influence the system's choice of display frame rate. See
          *                      the Surface.FRAME_RATE_COMPATIBILITY_* values for more info.
diff --git a/core/java/android/view/SurfaceControlViewHost.java b/core/java/android/view/SurfaceControlViewHost.java
index b587fbe..fe70ff7 100644
--- a/core/java/android/view/SurfaceControlViewHost.java
+++ b/core/java/android/view/SurfaceControlViewHost.java
@@ -98,7 +98,10 @@
         }
 
         /**
-         * Release the SurfaceControl associated with the SurfacePackage.
+         * Release the {@link SurfaceControl} associated with this package.
+         * It's not necessary to call this if you pass the package to
+         * {@link SurfaceView#setChildSurfacePackage} as {@link SurfaceView} will
+         * take ownership in that case.
          */
         public void release() {
             if (mSurfaceControl != null) {
@@ -189,6 +192,7 @@
         final WindowManager.LayoutParams lp =
                 new WindowManager.LayoutParams(width, height,
                         WindowManager.LayoutParams.TYPE_APPLICATION, 0, PixelFormat.TRANSPARENT);
+        lp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
         setView(view, lp);
     }
 
@@ -230,7 +234,7 @@
      * and render the object unusable.
      */
     public void release() {
-        mViewRoot.dispatchDetachedFromWindow();
+        mViewRoot.die(false /* immediate */);
         mSurfaceControl.release();
     }
 
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index 1f7c3504..c89e0c9 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -176,6 +176,7 @@
     boolean mUseAlpha = false;
     float mSurfaceAlpha = 1f;
     boolean mClipSurfaceToBounds;
+    int mBackgroundColor = Color.BLACK;
 
     @UnsupportedAppUsage
     boolean mHaveFrame = false;
@@ -496,8 +497,17 @@
 
         updateSurface();
         releaseSurfaces();
-        mHaveFrame = false;
 
+        // We don't release this as part of releaseSurfaces as
+        // that is also called on transient visibility changes. We can't
+        // recreate this Surface, so only release it when we are fully
+        // detached.
+        if (mSurfacePackage != null) {
+            mSurfacePackage.release();
+            mSurfacePackage = null;
+        }
+
+        mHaveFrame = false;
         super.onDetachedFromWindow();
     }
 
@@ -677,16 +687,107 @@
      * SurfaceView is in will be visible on top of its surface.
      *
      * <p>Note that this must be set before the surface view's containing
-     * window is attached to the window manager.
+     * window is attached to the window manager. If you target {@link Build.VERSION_CODES#R}
+     * the Z ordering can be changed dynamically if the backing surface is
+     * created, otherwise it would be applied at surface construction time.
      *
      * <p>Calling this overrides any previous call to {@link #setZOrderMediaOverlay}.
+     *
+     * @param onTop Whether to show the surface on top of this view's window.
      */
     public void setZOrderOnTop(boolean onTop) {
+        // In R and above we allow dynamic layer changes.
+        final boolean allowDynamicChange = getContext().getApplicationInfo().targetSdkVersion
+                > Build.VERSION_CODES.Q;
+        setZOrderedOnTop(onTop, allowDynamicChange);
+    }
+
+    /**
+     * @return Whether the surface backing this view appears on top of its parent.
+     *
+     * @hide
+     */
+    public boolean isZOrderedOnTop() {
+        return mSubLayer > 0;
+    }
+
+    /**
+     * Controls whether the surface view's surface is placed on top of its
+     * window. Normally it is placed behind the window, to allow it to
+     * (for the most part) appear to composite with the views in the
+     * hierarchy. By setting this, you cause it to be placed above the
+     * window. This means that none of the contents of the window this
+     * SurfaceView is in will be visible on top of its surface.
+     *
+     * <p>Calling this overrides any previous call to {@link #setZOrderMediaOverlay}.
+     *
+     * @param onTop Whether to show the surface on top of this view's window.
+     * @param allowDynamicChange Whether this can happen after the surface is created.
+     * @return Whether the Z ordering changed.
+     *
+     * @hide
+     */
+    public boolean setZOrderedOnTop(boolean onTop, boolean allowDynamicChange) {
+        final int subLayer;
         if (onTop) {
-            mSubLayer = APPLICATION_PANEL_SUBLAYER;
+            subLayer = APPLICATION_PANEL_SUBLAYER;
         } else {
-            mSubLayer = APPLICATION_MEDIA_SUBLAYER;
+            subLayer = APPLICATION_MEDIA_SUBLAYER;
         }
+        if (mSubLayer == subLayer) {
+            return false;
+        }
+        mSubLayer = subLayer;
+
+        if (!allowDynamicChange) {
+            return false;
+        }
+        if (mSurfaceControl == null) {
+            return true;
+        }
+        final ViewRootImpl viewRoot = getViewRootImpl();
+        if (viewRoot == null) {
+            return true;
+        }
+        final Surface parent = viewRoot.mSurface;
+        if (parent == null || !parent.isValid()) {
+            return true;
+        }
+
+        /*
+         * Schedule a callback that reflects an alpha value onto the underlying surfaces.
+         * This gets called on a RenderThread worker thread, so members accessed here must
+         * be protected by a lock.
+         */
+        final boolean useBLAST = viewRoot.useBLAST();
+        viewRoot.registerRtFrameCallback(frame -> {
+            try {
+                final SurfaceControl.Transaction t = useBLAST
+                        ? viewRoot.getBLASTSyncTransaction()
+                        : new SurfaceControl.Transaction();
+                synchronized (mSurfaceControlLock) {
+                    if (!parent.isValid() || mSurfaceControl == null) {
+                        return;
+                    }
+                    updateRelativeZ(t);
+                    if (!useBLAST) {
+                        t.deferTransactionUntil(mSurfaceControl,
+                                viewRoot.getRenderSurfaceControl(), frame);
+                    }
+                }
+                // It's possible that mSurfaceControl is released in the UI thread before
+                // the transaction completes. If that happens, an exception is thrown, which
+                // must be caught immediately.
+                t.apply();
+             } catch (Exception e) {
+                Log.e(TAG, System.identityHashCode(this)
+                        + "setZOrderOnTop RT: Exception during surface transaction", e);
+            }
+        });
+
+        invalidate();
+
+        return true;
     }
 
     /**
@@ -728,6 +829,12 @@
         }
     }
 
+    private Transaction updateBackgroundColor(Transaction t) {
+        final float[] colorComponents = new float[] { Color.red(mBackgroundColor) / 255.f,
+                Color.green(mBackgroundColor) / 255.f, Color.blue(mBackgroundColor) / 255.f };
+        t.setColor(mBackgroundControl, colorComponents);
+        return t;
+    }
 
     private void releaseSurfaces() {
         mSurfaceAlpha = 1f;
@@ -900,6 +1007,7 @@
                     }
 
                     updateBackgroundVisibility(mTmpTransaction);
+                    updateBackgroundColor(mTmpTransaction);
                     if (mUseAlpha) {
                         mTmpTransaction.setAlpha(mSurfaceControl, alpha);
                         mSurfaceAlpha = alpha;
@@ -1299,10 +1407,8 @@
             return;
         }
 
-        final float[] colorComponents = new float[] { Color.red(bgColor) / 255.f,
-                Color.green(bgColor) / 255.f, Color.blue(bgColor) / 255.f };
-
-        mTmpTransaction.setColor(mBackgroundControl, colorComponents).apply();
+        mBackgroundColor = bgColor;
+        updateBackgroundColor(mTmpTransaction).apply();
     }
 
     @UnsupportedAppUsage
@@ -1546,7 +1652,9 @@
      * Display the view-hierarchy embedded within a {@link SurfaceControlViewHost.SurfacePackage}
      * within this SurfaceView. If this SurfaceView is above it's host Surface (see
      * {@link #setZOrderOnTop} then the embedded Surface hierarchy will be able to receive
-     * input.
+     * input. This will take ownership of the SurfaceControl contained inside the SurfacePackage
+     * and free the caller of the obligation to call
+     * {@link SurfaceControlViewHost.SurfacePackage#release}.
      *
      * @param p The SurfacePackage to embed.
      */
@@ -1556,6 +1664,7 @@
             mSurfacePackage.getSurfaceControl() : null;
         if (mSurfaceControl != null && lastSc != null) {
             mTmpTransaction.reparent(lastSc, null).apply();
+            mSurfacePackage.release();
         } else if (mSurfaceControl != null) {
             reparentSurfacePackage(mTmpTransaction, p);
             mTmpTransaction.apply();
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 708a094..da18608 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -80,6 +80,7 @@
 import android.hardware.display.DisplayManagerGlobal;
 import android.net.Uri;
 import android.os.Build;
+import android.os.Build.VERSION_CODES;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -3474,7 +3475,7 @@
     /**
      * Flag indicating the field should not have yellow highlight when autofilled.
      */
-    private static final int PFLAG4_AUTOFILL_HIDE_HIGHLIGHT = 0x100;
+    private static final int PFLAG4_AUTOFILL_HIDE_HIGHLIGHT = 0x200;
 
     /* End of masks for mPrivateFlags4 */
 
@@ -9581,18 +9582,6 @@
         // First check if context has client, so it saves a service lookup when it doesn't
         if (mContext.getContentCaptureOptions() == null) return;
 
-        // Then check if it's enabled in the context...
-        final ContentCaptureManager ccm = ai != null ? ai.getContentCaptureManager(mContext)
-                : mContext.getSystemService(ContentCaptureManager.class);
-        if (ccm == null || !ccm.isContentCaptureEnabled()) return;
-
-        // ... and finally at the view level
-        // NOTE: isImportantForContentCapture() is more expensive than cm.isContentCaptureEnabled()
-        if (!isImportantForContentCapture()) return;
-
-        ContentCaptureSession session = getContentCaptureSession();
-        if (session == null) return;
-
         if (appeared) {
             if (!isLaidOut() || getVisibility() != VISIBLE
                     || (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0) {
@@ -9601,12 +9590,36 @@
                             + isLaidOut() + ", visibleToUser=" + isVisibleToUser()
                             + ", visible=" + (getVisibility() == VISIBLE)
                             + ": alreadyNotifiedAppeared=" + ((mPrivateFlags4
-                                    & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0)
+                            & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0)
                             + ", alreadyNotifiedDisappeared=" + ((mPrivateFlags4
-                                    & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0));
+                            & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0));
                 }
                 return;
             }
+        } else {
+            if ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) == 0
+                    || (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0) {
+                if (DEBUG_CONTENT_CAPTURE) {
+                    Log.v(CONTENT_CAPTURE_LOG_TAG, "Ignoring 'disappeared' on " + this + ": laid="
+                            + isLaidOut() + ", visibleToUser=" + isVisibleToUser()
+                            + ", visible=" + (getVisibility() == VISIBLE)
+                            + ": alreadyNotifiedAppeared=" + ((mPrivateFlags4
+                            & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0)
+                            + ", alreadyNotifiedDisappeared=" + ((mPrivateFlags4
+                            & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0));
+                }
+                return;
+            }
+        }
+
+        ContentCaptureSession session = getContentCaptureSession();
+        if (session == null) return;
+
+        // ... and finally at the view level
+        // NOTE: isImportantForContentCapture() is more expensive than cm.isContentCaptureEnabled()
+        if (!isImportantForContentCapture()) return;
+
+        if (appeared) {
             setNotifiedContentCaptureAppeared();
 
             if (ai != null) {
@@ -9617,19 +9630,6 @@
                 }
             }
         } else {
-            if ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) == 0
-                    || (mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0) {
-                if (DEBUG_CONTENT_CAPTURE) {
-                    Log.v(CONTENT_CAPTURE_LOG_TAG, "Ignoring 'disappeared' on " + this + ": laid="
-                            + isLaidOut() + ", visibleToUser=" + isVisibleToUser()
-                            + ", visible=" + (getVisibility() == VISIBLE)
-                            + ": alreadyNotifiedAppeared=" + ((mPrivateFlags4
-                                    & PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED) != 0)
-                            + ", alreadyNotifiedDisappeared=" + ((mPrivateFlags4
-                                    & PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED) != 0));
-                }
-                return;
-            }
             mPrivateFlags4 |= PFLAG4_NOTIFIED_CONTENT_CAPTURE_DISAPPEARED;
             mPrivateFlags4 &= ~PFLAG4_NOTIFIED_CONTENT_CAPTURE_APPEARED;
 
@@ -28746,7 +28746,8 @@
          * of the screen decorations, these are the current insets for the
          * content of the window.
          */
-        @UnsupportedAppUsage
+        @UnsupportedAppUsage(maxTargetSdk = VERSION_CODES.Q,
+                publicAlternatives = "Use {@link WindowInsets#getInsets(int)}")
         final Rect mContentInsets = new Rect();
 
         /**
@@ -28754,7 +28755,8 @@
          * of the screen decorations, these are the current insets for the
          * actual visible parts of the window.
          */
-        @UnsupportedAppUsage
+        @UnsupportedAppUsage(maxTargetSdk = VERSION_CODES.Q,
+                publicAlternatives = "Use {@link WindowInsets#getInsets(int)}")
         final Rect mVisibleInsets = new Rect();
 
         /**
@@ -28762,9 +28764,15 @@
          * of the screen decorations, these are the current insets for the
          * stable system windows.
          */
-        @UnsupportedAppUsage
+        @UnsupportedAppUsage(maxTargetSdk = VERSION_CODES.Q,
+                publicAlternatives = "Use {@link WindowInsets#getInsets(int)}")
         final Rect mStableInsets = new Rect();
 
+        /**
+         * Current caption insets to the display coordinate.
+         */
+        final Rect mCaptionInsets = new Rect();
+
         final DisplayCutout.ParcelableWrapper mDisplayCutout =
                 new DisplayCutout.ParcelableWrapper(DisplayCutout.NO_CUTOUT);
 
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index 47a79bd..69d37ab 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -16,19 +16,24 @@
 
 package android.view;
 
+import static android.os.StrictMode.vmIncorrectContextUseEnabled;
+
 import android.annotation.FloatRange;
 import android.annotation.TestApi;
+import android.app.Activity;
 import android.app.AppGlobals;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.Context;
 import android.content.res.Configuration;
 import android.content.res.Resources;
-import android.graphics.Point;
+import android.graphics.Rect;
 import android.os.Build;
+import android.os.Bundle;
 import android.os.RemoteException;
+import android.os.StrictMode;
 import android.provider.Settings;
 import android.util.DisplayMetrics;
-import android.util.Size;
+import android.util.Log;
 import android.util.SparseArray;
 import android.util.TypedValue;
 
@@ -36,6 +41,8 @@
  * Contains methods to standard constants used in the UI for timeouts, sizes, and distances.
  */
 public class ViewConfiguration {
+    private static final String TAG = "ViewConfiguration";
+
     /**
      * Defines the width of the horizontal scrollbar and the height of the vertical scrollbar in
      * dips
@@ -66,8 +73,9 @@
     /**
      * Defines the default duration in milliseconds before a press turns into
      * a long press
+     * @hide
      */
-    private static final int DEFAULT_LONG_PRESS_TIMEOUT = 500;
+    public static final int DEFAULT_LONG_PRESS_TIMEOUT = 400;
 
     /**
      * Defines the default duration in milliseconds between the first tap's up event and the second
@@ -372,11 +380,13 @@
     }
 
     /**
-     * Creates a new configuration for the specified context. The configuration depends on
-     * various parameters of the context, like the dimension of the display or the density
-     * of the display.
+     * Creates a new configuration for the specified visual {@link Context}. The configuration
+     * depends on various parameters of the {@link Context}, like the dimension of the display or
+     * the density of the display.
      *
-     * @param context The application context used to initialize this view configuration.
+     * @param context A visual {@link Context} used to initialize the view configuration. It must
+     *                be {@link Activity} or other {@link Context} created with
+     *                {@link Context#createWindowContext(int, Bundle)}.
      *
      * @see #get(android.content.Context)
      * @see android.util.DisplayMetrics
@@ -410,8 +420,8 @@
 
         // Size of the screen in bytes, in ARGB_8888 format
         final WindowManager windowManager = context.getSystemService(WindowManager.class);
-        final Size maxWindowSize = windowManager.getMaximumWindowMetrics().getSize();
-        mMaximumDrawingCacheSize = 4 * maxWindowSize.getWidth() * maxWindowSize.getHeight();
+        final Rect maxWindowBounds = windowManager.getMaximumWindowMetrics().getBounds();
+        mMaximumDrawingCacheSize = 4 * maxWindowBounds.width() * maxWindowBounds.height();
 
         mOverscrollDistance = (int) (sizeAndDensity * OVERSCROLL_DISTANCE + 0.5f);
         mOverflingDistance = (int) (sizeAndDensity * OVERFLING_DISTANCE + 0.5f);
@@ -480,13 +490,27 @@
     }
 
     /**
-     * Returns a configuration for the specified context. The configuration depends on
-     * various parameters of the context, like the dimension of the display or the
+     * Returns a configuration for the specified visual {@link Context}. The configuration depends
+     * on various parameters of the {@link Context}, like the dimension of the display or the
      * density of the display.
      *
-     * @param context The application context used to initialize the view configuration.
+     * @param context A visual {@link Context} used to initialize the view configuration. It must
+     *                be {@link Activity} or other {@link Context} created with
+     *                {@link Context#createWindowContext(int, Bundle)}.
      */
     public static ViewConfiguration get(Context context) {
+        if (!context.isUiContext() && vmIncorrectContextUseEnabled()) {
+            final String errorMessage = "Tried to access UI constants from a non-visual Context.";
+            final String message = "UI constants, such as display metrics or window metrics, "
+                    + "must be accessed from Activity or other visual Context. "
+                    + "Use an Activity or a Context created with "
+                    + "Context#createWindowContext(int, Bundle), which are adjusted to the "
+                    + "configuration and visual bounds of an area on screen.";
+            final Exception exception = new IllegalArgumentException(errorMessage);
+            StrictMode.onIncorrectContextUsed(message, exception);
+            Log.e(TAG, errorMessage + message, exception);
+        }
+
         final DisplayMetrics metrics = context.getResources().getDisplayMetrics();
         final int density = (int) (100.0f * metrics.density);
 
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index dd34bcb..51304dc 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -158,6 +158,7 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.os.IResultReceiver;
 import com.android.internal.os.SomeArgs;
+import com.android.internal.policy.DecorView;
 import com.android.internal.policy.PhoneFallbackEventHandler;
 import com.android.internal.util.Preconditions;
 import com.android.internal.view.BaseSurfaceHolder;
@@ -504,7 +505,6 @@
     int mPendingInputEventCount;
     boolean mProcessInputEventsScheduled;
     boolean mUnbufferedInputDispatch;
-    boolean mUnbufferedInputDispatchBySource;
     @InputSourceClass
     int mUnbufferedInputSource = SOURCE_CLASS_NONE;
 
@@ -548,13 +548,11 @@
     boolean mAddedTouchMode;
 
     final Rect mTmpFrame = new Rect();
+    final Rect mTmpRect = new Rect();
 
     // These are accessed by multiple threads.
     final Rect mWinFrame; // frame given by window manager.
 
-    final Rect mPendingVisibleInsets = new Rect();
-    final Rect mPendingStableInsets = new Rect();
-    final Rect mPendingContentInsets = new Rect();
     final Rect mPendingBackDropFrame = new Rect();
     final DisplayCutout.ParcelableWrapper mPendingDisplayCutout =
             new DisplayCutout.ParcelableWrapper(DisplayCutout.NO_CUTOUT);
@@ -563,10 +561,6 @@
     final ViewTreeObserver.InternalInsetsInfo mLastGivenInsets
             = new ViewTreeObserver.InternalInsetsInfo();
 
-    final Rect mDispatchContentInsets = new Rect();
-    final Rect mDispatchStableInsets = new Rect();
-    DisplayCutout mDispatchDisplayCutout = DisplayCutout.NO_CUTOUT;
-
     private WindowInsets mLastWindowInsets;
 
     // Insets types hidden by legacy window flags or system UI flags.
@@ -1020,10 +1014,7 @@
                 if (mTranslator != null) {
                     mTranslator.translateRectInScreenToAppWindow(mAttachInfo.mContentInsets);
                 }
-                mPendingContentInsets.set(mAttachInfo.mContentInsets);
-                mPendingStableInsets.set(mAttachInfo.mStableInsets);
                 mPendingDisplayCutout.set(mAttachInfo.mDisplayCutout);
-                mPendingVisibleInsets.set(0, 0, 0, 0);
                 mAttachInfo.mAlwaysConsumeSystemBars =
                         (res & WindowManagerGlobal.ADD_FLAG_ALWAYS_CONSUME_SYSTEM_BARS) != 0;
                 mPendingAlwaysConsumeSystemBars = mAttachInfo.mAlwaysConsumeSystemBars;
@@ -1872,9 +1863,6 @@
             mTraversalBarrier = mHandler.getLooper().getQueue().postSyncBarrier();
             mChoreographer.postCallback(
                     Choreographer.CALLBACK_TRAVERSAL, mTraversalRunnable, null);
-            if (!mUnbufferedInputDispatch && !mUnbufferedInputDispatchBySource) {
-                scheduleConsumeBatchedInput();
-            }
             notifyRendererOfFramePending();
             pokeDrawLockIfNeeded();
         }
@@ -2204,47 +2192,22 @@
 
     /* package */ WindowInsets getWindowInsets(boolean forceConstruct) {
         if (mLastWindowInsets == null || forceConstruct) {
-            mDispatchContentInsets.set(mAttachInfo.mContentInsets);
-            mDispatchStableInsets.set(mAttachInfo.mStableInsets);
-            mDispatchDisplayCutout = mAttachInfo.mDisplayCutout.get();
-
-            Rect contentInsets = mDispatchContentInsets;
-            Rect stableInsets = mDispatchStableInsets;
-            DisplayCutout displayCutout = mDispatchDisplayCutout;
-            // For dispatch we preserve old logic, but for direct requests from Views we allow to
-            // immediately use pending insets. This is such that getRootWindowInsets returns the
-            // result from the layout hint before we ran a traversal shortly after adding a window.
-            if (!forceConstruct
-                    && (!mPendingContentInsets.equals(contentInsets) ||
-                        !mPendingStableInsets.equals(stableInsets) ||
-                        !mPendingDisplayCutout.get().equals(displayCutout))) {
-                contentInsets = mPendingContentInsets;
-                stableInsets = mPendingStableInsets;
-                displayCutout = mPendingDisplayCutout.get();
-            }
-            contentInsets = ensureInsetsNonNegative(contentInsets, "content");
-            stableInsets = ensureInsetsNonNegative(stableInsets, "stable");
             mLastWindowInsets = mInsetsController.calculateInsets(
                     mContext.getResources().getConfiguration().isScreenRound(),
-                    mAttachInfo.mAlwaysConsumeSystemBars, displayCutout,
-                    contentInsets, stableInsets, mWindowAttributes.softInputMode,
-                    (mWindowAttributes.systemUiVisibility
+                    mAttachInfo.mAlwaysConsumeSystemBars, mPendingDisplayCutout.get(),
+                    mWindowAttributes.softInputMode, (mWindowAttributes.systemUiVisibility
                             | mWindowAttributes.subtreeSystemUiVisibility));
+
+            Rect visibleInsets = mInsetsController.calculateVisibleInsets(
+                    mWindowAttributes.softInputMode);
+
+            mAttachInfo.mVisibleInsets.set(visibleInsets);
+            mAttachInfo.mContentInsets.set(mLastWindowInsets.getSystemWindowInsets().toRect());
+            mAttachInfo.mStableInsets.set(mLastWindowInsets.getStableInsets().toRect());
         }
         return mLastWindowInsets;
     }
 
-    private Rect ensureInsetsNonNegative(Rect insets, String kind) {
-        if (insets.left < 0  || insets.top < 0  || insets.right < 0  || insets.bottom < 0) {
-            Log.wtf(mTag, "Negative " + kind + "Insets: " + insets + ", mFirst=" + mFirst);
-            return new Rect(Math.max(0, insets.left),
-                    Math.max(0, insets.top),
-                    Math.max(0, insets.right),
-                    Math.max(0, insets.bottom));
-        }
-        return insets;
-    }
-
     public void dispatchApplyInsets(View host) {
         Trace.traceBegin(Trace.TRACE_TAG_VIEW, "dispatchApplyInsets");
         mApplyInsetsRequested = false;
@@ -2259,6 +2222,19 @@
         Trace.traceEnd(Trace.TRACE_TAG_VIEW);
     }
 
+    private boolean updateCaptionInsets() {
+        if (!(mView instanceof DecorView)) return false;
+        final int captionInsetsHeight = ((DecorView) mView).getCaptionInsetsHeight();
+        final Rect captionFrame = new Rect();
+        if (captionInsetsHeight != 0) {
+            captionFrame.set(mWinFrame.left, mWinFrame.top, mWinFrame.right,
+                            mWinFrame.top + captionInsetsHeight);
+        }
+        if (mAttachInfo.mCaptionInsets.equals(captionFrame)) return false;
+        mAttachInfo.mCaptionInsets.set(captionFrame);
+        return true;
+    }
+
     private boolean shouldDispatchCutout() {
         return mWindowAttributes.layoutInDisplayCutoutMode
                         == LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
@@ -2266,12 +2242,6 @@
                         == LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
     }
 
-    private void updateVisibleInsets() {
-        Rect visibleInsets = mInsetsController.calculateVisibleInsets(mPendingVisibleInsets,
-                mWindowAttributes.softInputMode);
-        mAttachInfo.mVisibleInsets.set(visibleInsets);
-    }
-
     @VisibleForTesting
     public InsetsController getInsetsController() {
         return mInsetsController;
@@ -2347,9 +2317,18 @@
                 mDisplay.getRealSize(size);
                 desiredWindowWidth = size.x;
                 desiredWindowHeight = size.y;
+            } else if (lp.width == ViewGroup.LayoutParams.WRAP_CONTENT
+                    || lp.height == ViewGroup.LayoutParams.WRAP_CONTENT) {
+                // For wrap content, we have to remeasure later on anyways. Use size consistent with
+                // below so we get best use of the measure cache.
+                desiredWindowWidth = dipToPx(config.screenWidthDp);
+                desiredWindowHeight = dipToPx(config.screenHeightDp);
             } else {
-                desiredWindowWidth = mWinFrame.width();
-                desiredWindowHeight = mWinFrame.height();
+                // After addToDisplay, the frame contains the frameHint from window manager, which
+                // for most windows is going to be the same size as the result of relayoutWindow.
+                // Using this here allows us to avoid remeasuring after relayoutWindow
+                desiredWindowWidth = frame.width();
+                desiredWindowHeight = frame.height();
             }
 
             // We used to use the following condition to choose 32 bits drawing caches:
@@ -2398,7 +2377,7 @@
         // Execute enqueued actions on every traversal in case a detached view enqueued an action
         getRunQueue().executeActions(mAttachInfo.mHandler);
 
-        boolean insetsChanged = false;
+        boolean cutoutChanged = false;
 
         boolean layoutRequested = mLayoutRequested && (!mStopped || mReportNextDraw);
         if (layoutRequested) {
@@ -2411,22 +2390,8 @@
                 mAttachInfo.mInTouchMode = !mAddedTouchMode;
                 ensureTouchModeLocally(mAddedTouchMode);
             } else {
-                if (!mPendingContentInsets.equals(mAttachInfo.mContentInsets)) {
-                    insetsChanged = true;
-                }
-                if (!mPendingStableInsets.equals(mAttachInfo.mStableInsets)) {
-                    insetsChanged = true;
-                }
                 if (!mPendingDisplayCutout.equals(mAttachInfo.mDisplayCutout)) {
-                    insetsChanged = true;
-                }
-                if (!mPendingVisibleInsets.equals(mAttachInfo.mVisibleInsets)) {
-                    updateVisibleInsets();
-                    if (DEBUG_LAYOUT) Log.v(mTag, "Visible insets changing to: "
-                            + mAttachInfo.mVisibleInsets);
-                }
-                if (mPendingAlwaysConsumeSystemBars != mAttachInfo.mAlwaysConsumeSystemBars) {
-                    insetsChanged = true;
+                    cutoutChanged = true;
                 }
                 if (lp.width == ViewGroup.LayoutParams.WRAP_CONTENT
                         || lp.height == ViewGroup.LayoutParams.WRAP_CONTENT) {
@@ -2489,7 +2454,6 @@
         }
 
         if (mApplyInsetsRequested) {
-            updateVisibleInsets();
             dispatchApplyInsets(host);
             if (mLayoutRequested) {
                 // Short-circuit catching a new layout request here, so
@@ -2557,8 +2521,8 @@
             controlInsetsForCompatibility(params);
         }
 
-        if (mFirst || windowShouldResize || insetsChanged ||
-                viewVisibilityChanged || params != null || mForceNextWindowRelayout) {
+        if (mFirst || windowShouldResize || viewVisibilityChanged || cutoutChanged || params != null
+                || mForceNextWindowRelayout) {
             mForceNextWindowRelayout = false;
 
             if (isViewVisible) {
@@ -2580,7 +2544,7 @@
             }
 
             boolean hwInitialized = false;
-            boolean contentInsetsChanged = false;
+            boolean dispatchApplyInsets = false;
             boolean hadSurface = mSurface.isValid();
 
             try {
@@ -2603,9 +2567,6 @@
                 relayoutResult = relayoutWindow(params, viewVisibility, insetsPending);
 
                 if (DEBUG_LAYOUT) Log.v(mTag, "relayout: frame=" + frame.toShortString()
-                        + " content=" + mPendingContentInsets.toShortString()
-                        + " visible=" + mPendingVisibleInsets.toShortString()
-                        + " stable=" + mPendingStableInsets.toShortString()
                         + " cutout=" + mPendingDisplayCutout.get().toString()
                         + " surface=" + mSurface);
 
@@ -2622,14 +2583,7 @@
                     updatedConfiguration = true;
                 }
 
-                contentInsetsChanged = !mPendingContentInsets.equals(
-                        mAttachInfo.mContentInsets);
-                final boolean visibleInsetsChanged = !mPendingVisibleInsets.equals(
-                        mAttachInfo.mVisibleInsets);
-                final boolean stableInsetsChanged = !mPendingStableInsets.equals(
-                        mAttachInfo.mStableInsets);
-                final boolean cutoutChanged = !mPendingDisplayCutout.equals(
-                        mAttachInfo.mDisplayCutout);
+                cutoutChanged = !mPendingDisplayCutout.equals(mAttachInfo.mDisplayCutout);
                 surfaceSizeChanged = (relayoutResult
                         & WindowManagerGlobal.RELAYOUT_RES_SURFACE_RESIZED) != 0;
                 final boolean alwaysConsumeSystemBarsChanged =
@@ -2640,42 +2594,28 @@
                 surfaceReplaced = (surfaceGenerationId != mSurface.getGenerationId())
                         && mSurface.isValid();
 
-                if (contentInsetsChanged) {
-                    mAttachInfo.mContentInsets.set(mPendingContentInsets);
-                    if (DEBUG_LAYOUT) Log.v(mTag, "Content insets changing to: "
-                            + mAttachInfo.mContentInsets);
-                }
-                if (stableInsetsChanged) {
-                    mAttachInfo.mStableInsets.set(mPendingStableInsets);
-                    if (DEBUG_LAYOUT) Log.v(mTag, "Decor insets changing to: "
-                            + mAttachInfo.mStableInsets);
-                    // Need to relayout with content insets.
-                    contentInsetsChanged = true;
-                }
                 if (cutoutChanged) {
                     mAttachInfo.mDisplayCutout.set(mPendingDisplayCutout);
                     if (DEBUG_LAYOUT) {
                         Log.v(mTag, "DisplayCutout changing to: " + mAttachInfo.mDisplayCutout);
                     }
                     // Need to relayout with content insets.
-                    contentInsetsChanged = true;
+                    dispatchApplyInsets = true;
                 }
                 if (alwaysConsumeSystemBarsChanged) {
                     mAttachInfo.mAlwaysConsumeSystemBars = mPendingAlwaysConsumeSystemBars;
-                    contentInsetsChanged = true;
+                    dispatchApplyInsets = true;
                 }
-                if (contentInsetsChanged || mLastSystemUiVisibility !=
+                if (updateCaptionInsets()) {
+                    dispatchApplyInsets = true;
+                }
+                if (dispatchApplyInsets || mLastSystemUiVisibility !=
                         mAttachInfo.mSystemUiVisibility || mApplyInsetsRequested) {
                     mLastSystemUiVisibility = mAttachInfo.mSystemUiVisibility;
                     dispatchApplyInsets(host);
                     // We applied insets so force contentInsetsChanged to ensure the
                     // hierarchy is measured below.
-                    contentInsetsChanged = true;
-                }
-                if (visibleInsetsChanged) {
-                    updateVisibleInsets();
-                    if (DEBUG_LAYOUT) Log.v(mTag, "Visible insets changing to: "
-                            + mAttachInfo.mVisibleInsets);
+                    dispatchApplyInsets = true;
                 }
                 if (colorModeChanged && mAttachInfo.mThreadedRenderer != null) {
                     mAttachInfo.mThreadedRenderer.setWideGamut(
@@ -2766,7 +2706,8 @@
                                         && mWinFrame.height() == mPendingBackDropFrame.height();
                         // TODO: Need cutout?
                         startDragResizing(mPendingBackDropFrame, !backdropSizeMatchesFrame,
-                                mPendingVisibleInsets, mPendingStableInsets, mResizeMode);
+                                mLastWindowInsets.getSystemWindowInsets().toRect(),
+                                mLastWindowInsets.getStableInsets().toRect(), mResizeMode);
                     } else {
                         // We shouldn't come here, but if we come we should end the resize.
                         endDragResizing();
@@ -2857,7 +2798,7 @@
                 boolean focusChangedDueToTouchMode = ensureTouchModeLocally(
                         (relayoutResult&WindowManagerGlobal.RELAYOUT_RES_IN_TOUCH_MODE) != 0);
                 if (focusChangedDueToTouchMode || mWidth != host.getMeasuredWidth()
-                        || mHeight != host.getMeasuredHeight() || contentInsetsChanged ||
+                        || mHeight != host.getMeasuredHeight() || dispatchApplyInsets ||
                         updatedConfiguration) {
                     int childWidthMeasureSpec = getRootMeasureSpec(mWidth, lp.width);
                     int childHeightMeasureSpec = getRootMeasureSpec(mHeight, lp.height);
@@ -2866,7 +2807,7 @@
                             + mWidth + " measuredWidth=" + host.getMeasuredWidth()
                             + " mHeight=" + mHeight
                             + " measuredHeight=" + host.getMeasuredHeight()
-                            + " coveredInsetsChanged=" + contentInsetsChanged);
+                            + " dispatchApplyInsets=" + dispatchApplyInsets);
 
                      // Ask host how big it wants to be
                     performMeasure(childWidthMeasureSpec, childHeightMeasureSpec);
@@ -4912,12 +4853,9 @@
                     // Recycled in the fall through...
                     SomeArgs args = (SomeArgs) msg.obj;
                     if (mWinFrame.equals(args.arg1)
-                            && mPendingContentInsets.equals(args.arg2)
-                            && mPendingStableInsets.equals(args.arg6)
                             && mPendingDisplayCutout.get().equals(args.arg9)
-                            && mPendingVisibleInsets.equals(args.arg3)
                             && mPendingBackDropFrame.equals(args.arg8)
-                            && args.arg4 == null
+                            && mLastReportedMergedConfiguration.equals(args.arg4)
                             && args.argi1 == 0
                             && mDisplay.getDisplayId() == args.argi3) {
                         break;
@@ -4945,16 +4883,10 @@
                         }
 
                         final boolean framesChanged = !mWinFrame.equals(args.arg1)
-                                || !mPendingContentInsets.equals(args.arg2)
-                                || !mPendingStableInsets.equals(args.arg6)
-                                || !mPendingDisplayCutout.get().equals(args.arg9)
-                                || !mPendingVisibleInsets.equals(args.arg3);
+                                || !mPendingDisplayCutout.get().equals(args.arg9);
 
                         setFrame((Rect) args.arg1);
-                        mPendingContentInsets.set((Rect) args.arg2);
-                        mPendingStableInsets.set((Rect) args.arg6);
                         mPendingDisplayCutout.set((DisplayCutout) args.arg9);
-                        mPendingVisibleInsets.set((Rect) args.arg3);
                         mPendingBackDropFrame.set((Rect) args.arg8);
                         mForceNextWindowRelayout = args.argi1 != 0;
                         mPendingAlwaysConsumeSystemBars = args.argi2 != 0;
@@ -7408,10 +7340,9 @@
                 (int) (mView.getMeasuredWidth() * appScale + 0.5f),
                 (int) (mView.getMeasuredHeight() * appScale + 0.5f), viewVisibility,
                 insetsPending ? WindowManagerGlobal.RELAYOUT_INSETS_PENDING : 0, frameNumber,
-                mTmpFrame, mPendingContentInsets, mPendingVisibleInsets,
-                mPendingStableInsets, mPendingBackDropFrame, mPendingDisplayCutout,
-                mPendingMergedConfiguration, mSurfaceControl, mTempInsets, mSurfaceSize,
-                mBlastSurfaceControl);
+                mTmpFrame, mTmpRect, mTmpRect, mTmpRect, mPendingBackDropFrame,
+                mPendingDisplayCutout, mPendingMergedConfiguration, mSurfaceControl, mTempInsets,
+                mSurfaceSize, mBlastSurfaceControl);
         if (mSurfaceControl.isValid()) {
             if (!mUseBLASTAdapter) {
                 mSurface.copyFrom(mSurfaceControl);
@@ -7432,9 +7363,6 @@
 
         if (mTranslator != null) {
             mTranslator.translateRectInScreenToAppWinFrame(mTmpFrame);
-            mTranslator.translateRectInScreenToAppWindow(mPendingContentInsets);
-            mTranslator.translateRectInScreenToAppWindow(mPendingVisibleInsets);
-            mTranslator.translateRectInScreenToAppWindow(mPendingStableInsets);
         }
         setFrame(mTmpFrame);
         mInsetsController.onStateChanged(mTempInsets);
@@ -8147,7 +8075,6 @@
         @Override
         public void onInputEvent(InputEvent event) {
             Trace.traceBegin(Trace.TRACE_TAG_VIEW, "processInputEventForCompatibility");
-            processUnbufferedRequest(event);
             List<InputEvent> processedEvents;
             try {
                 processedEvents =
@@ -8172,12 +8099,18 @@
         }
 
         @Override
-        public void onBatchedInputEventPending() {
-            if (mUnbufferedInputDispatch || mUnbufferedInputDispatchBySource) {
-                super.onBatchedInputEventPending();
-            } else {
-                scheduleConsumeBatchedInput();
+        public void onBatchedInputEventPending(int source) {
+            final boolean unbuffered = mUnbufferedInputDispatch
+                    || (source & mUnbufferedInputSource) != SOURCE_CLASS_NONE;
+            if (unbuffered) {
+                if (mConsumeBatchedInputScheduled) {
+                    unscheduleConsumeBatchedInput();
+                }
+                // Consume event immediately if unbuffered input dispatch has been requested.
+                consumeBatchedInputEvents(-1);
+                return;
             }
+            scheduleConsumeBatchedInput();
         }
 
         @Override
@@ -8190,17 +8123,6 @@
             unscheduleConsumeBatchedInput();
             super.dispose();
         }
-
-        private void processUnbufferedRequest(InputEvent event) {
-            if (!(event instanceof MotionEvent)) {
-                return;
-            }
-            mUnbufferedInputDispatchBySource =
-                    (event.getSource() & mUnbufferedInputSource) != SOURCE_CLASS_NONE;
-            if (mUnbufferedInputDispatchBySource && mConsumeBatchedInputScheduled) {
-                scheduleConsumeBatchedInputImmediately();
-            }
-        }
     }
     WindowInputEventReceiver mInputEventReceiver;
 
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java
index 0c5c183..ae9afaba 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -49,9 +49,6 @@
 import android.transition.TransitionManager;
 import android.util.Pair;
 import android.view.View.OnApplyWindowInsetsListener;
-import android.view.ViewGroup.LayoutParams;
-import android.view.WindowInsets.Side.InsetsSide;
-import android.view.WindowInsets.Type.InsetsType;
 import android.view.accessibility.AccessibilityEvent;
 
 import java.util.Collections;
@@ -323,7 +320,7 @@
     @UnsupportedAppUsage
     private boolean mDestroyed;
 
-    private boolean mOverlayWithDecorCaptionEnabled = false;
+    private boolean mOverlayWithDecorCaptionEnabled = true;
     private boolean mCloseOnSwipeEnabled = false;
 
     // The current window attributes.
diff --git a/core/java/android/view/WindowInsets.java b/core/java/android/view/WindowInsets.java
index fde184c..9b2a6cb 100644
--- a/core/java/android/view/WindowInsets.java
+++ b/core/java/android/view/WindowInsets.java
@@ -17,6 +17,7 @@
 
 package android.view;
 
+import static android.view.WindowInsets.Type.CAPTION_BAR;
 import static android.view.WindowInsets.Type.DISPLAY_CUTOUT;
 import static android.view.WindowInsets.Type.FIRST;
 import static android.view.WindowInsets.Type.IME;
diff --git a/core/java/android/view/WindowInsetsController.java b/core/java/android/view/WindowInsetsController.java
index 0282eca..439223c 100644
--- a/core/java/android/view/WindowInsetsController.java
+++ b/core/java/android/view/WindowInsetsController.java
@@ -196,6 +196,15 @@
     @Appearance int getSystemBarsAppearance();
 
     /**
+     * Notify the caption insets height change. The information will be used on the client side to,
+     * make sure the InsetsState has the correct caption insets.
+     *
+     * @param height the height of caption bar insets.
+     * @hide
+     */
+    void setCaptionInsetsHeight(int height);
+
+    /**
      * Controls the behavior of system bars.
      *
      * @param behavior Determines how the bars behave when being hidden by the application.
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 77ce5c1..cc380f3 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -781,8 +781,6 @@
                         to = "BOOT_PROGRESS"),
                 @ViewDebug.IntToString(from = TYPE_INPUT_CONSUMER,
                         to = "INPUT_CONSUMER"),
-                @ViewDebug.IntToString(from = TYPE_DREAM,
-                        to = "DREAM"),
                 @ViewDebug.IntToString(from = TYPE_NAVIGATION_BAR_PANEL,
                         to = "NAVIGATION_BAR_PANEL"),
                 @ViewDebug.IntToString(from = TYPE_DISPLAY_OVERLAY,
@@ -1105,13 +1103,6 @@
         public static final int TYPE_INPUT_CONSUMER = FIRST_SYSTEM_WINDOW+22;
 
         /**
-         * Window type: Dreams (screen saver) window, just above keyguard.
-         * In multiuser systems shows only on the owning user's window.
-         * @hide
-         */
-        public static final int TYPE_DREAM = FIRST_SYSTEM_WINDOW+23;
-
-        /**
          * Window type: Navigation bar panel (when navigation bar is distinct from status bar)
          * In multiuser systems shows on all users' windows.
          * @hide
@@ -1180,8 +1171,9 @@
         public static final int TYPE_QS_DIALOG = FIRST_SYSTEM_WINDOW+35;
 
         /**
-         * Window type: shares similar characteristics with {@link #TYPE_DREAM}. The layer is
+         * Window type: shows directly above the keyguard. The layer is
          * reserved for screenshot region selection. These windows must not take input focus.
+         * In multiuser systems shows only on the owning user's window.
          * @hide
          */
         public static final int TYPE_SCREENSHOT = FIRST_SYSTEM_WINDOW + 36;
diff --git a/core/java/android/view/WindowManagerImpl.java b/core/java/android/view/WindowManagerImpl.java
index 4050da1..316a5f2 100644
--- a/core/java/android/view/WindowManagerImpl.java
+++ b/core/java/android/view/WindowManagerImpl.java
@@ -35,7 +35,6 @@
 import android.os.Bundle;
 import android.os.IBinder;
 import android.os.RemoteException;
-import android.util.Size;
 
 import com.android.internal.os.IResultReceiver;
 
@@ -220,7 +219,7 @@
         final Context context = mParentWindow != null ? mParentWindow.getContext() : mContext;
         final Rect bounds = getCurrentBounds(context);
 
-        return new WindowMetrics(toSize(bounds), computeWindowInsets(bounds));
+        return new WindowMetrics(bounds, computeWindowInsets(bounds));
     }
 
     private static Rect getCurrentBounds(Context context) {
@@ -232,11 +231,7 @@
     @Override
     public WindowMetrics getMaximumWindowMetrics() {
         final Rect maxBounds = getMaximumBounds();
-        return new WindowMetrics(toSize(maxBounds), computeWindowInsets(maxBounds));
-    }
-
-    private Size toSize(Rect frame) {
-        return new Size(frame.width(), frame.height());
+        return new WindowMetrics(maxBounds, computeWindowInsets(maxBounds));
     }
 
     private Rect getMaximumBounds() {
@@ -278,7 +273,7 @@
             if (ViewRootImpl.sNewInsetsMode == NEW_INSETS_MODE_FULL) {
                 return insetsState.calculateInsets(bounds, null /* ignoringVisibilityState*/,
                         isScreenRound, alwaysConsumeSystemBars, displayCutout.get(),
-                        systemWindowInsets, stableInsets, SOFT_INPUT_ADJUST_NOTHING,
+                        SOFT_INPUT_ADJUST_NOTHING,
                         SYSTEM_UI_FLAG_VISIBLE, null /* typeSideMap */);
             } else {
                 return new WindowInsets.Builder()
diff --git a/core/java/android/view/WindowMetrics.java b/core/java/android/view/WindowMetrics.java
index ab5a06e..86ef879 100644
--- a/core/java/android/view/WindowMetrics.java
+++ b/core/java/android/view/WindowMetrics.java
@@ -18,10 +18,10 @@
 
 import android.annotation.NonNull;
 import android.graphics.Point;
-import android.util.Size;
+import android.graphics.Rect;
 
 /**
- * Metrics about a Window, consisting of the size and {@link WindowInsets}.
+ * Metrics about a Window, consisting of the bounds and {@link WindowInsets}.
  * <p>
  * This is usually obtained from {@link WindowManager#getCurrentWindowMetrics()} and
  * {@link WindowManager#getMaximumWindowMetrics()}.
@@ -31,21 +31,22 @@
  * @see WindowManager#getMaximumWindowMetrics()
  */
 public final class WindowMetrics {
-    private final @NonNull Size mSize;
+    private final @NonNull Rect mBounds;
     private final @NonNull WindowInsets mWindowInsets;
 
-    public WindowMetrics(@NonNull Size size, @NonNull WindowInsets windowInsets) {
-        mSize = size;
+    public WindowMetrics(@NonNull Rect bounds, @NonNull WindowInsets windowInsets) {
+        mBounds = bounds;
         mWindowInsets = windowInsets;
     }
 
     /**
-     * Returns the size of the window.
+     * Returns the bounds of the area associated with this window or visual context.
      * <p>
-     * <b>Note that this reports a different size than {@link Display#getSize(Point)}.</b>
-     * This method reports the window size including all system bars area, while
-     * {@link Display#getSize(Point)} reports the area excluding navigation bars and display cutout
-     * areas. The value reported by {@link Display#getSize(Point)} can be obtained by using:
+     * <b>Note that the size of the reported bounds can have different size than
+     * {@link Display#getSize(Point)}.</b> This method reports the window size including all system
+     * bar areas, while {@link Display#getSize(Point)} reports the area excluding navigation bars
+     * and display cutout areas. The value reported by {@link Display#getSize(Point)} can be
+     * obtained by using:
      * <pre class="prettyprint">
      * final WindowMetrics metrics = windowManager.getCurrentMetrics();
      * // Gets all excluding insets
@@ -66,16 +67,16 @@
      * </pre>
      * </p>
      *
-     * @return window size in pixel.
+     * @return window bounds in pixels.
      */
-    public @NonNull Size getSize() {
-        return mSize;
+    public @NonNull Rect getBounds() {
+        return mBounds;
     }
 
     /**
-     * Returns the {@link WindowInsets} of the window.
+     * Returns the {@link WindowInsets} of the area associated with this window or visual context.
      *
-     * @return the {@link WindowInsets} of the window.
+     * @return the {@link WindowInsets} of the visual area.
      */
     public @NonNull WindowInsets getWindowInsets() {
         return mWindowInsets;
diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
index 5fccf40..4980b33 100644
--- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java
+++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
@@ -2876,7 +2876,7 @@
     }
 
     /**
-     * Replaces any ClickableSpans in mText with placeholders.
+     * Replaces any ClickableSpan in the given {@code text} with placeholders.
      *
      * @param text The text.
      *
@@ -2910,7 +2910,7 @@
     }
 
     /**
-     * Replace any ImageSpans in mText with its content description.
+     * Replaces any ReplacementSpan in the given {@code text} if the object has content description.
      *
      * @param text The text.
      *
diff --git a/core/java/android/view/autofill/AutofillManager.java b/core/java/android/view/autofill/AutofillManager.java
index 39a9ed4..83a7934 100644
--- a/core/java/android/view/autofill/AutofillManager.java
+++ b/core/java/android/view/autofill/AutofillManager.java
@@ -41,7 +41,9 @@
 import android.metrics.LogMaker;
 import android.os.Build;
 import android.os.Bundle;
+import android.os.Handler;
 import android.os.IBinder;
+import android.os.Looper;
 import android.os.Parcelable;
 import android.os.RemoteException;
 import android.os.SystemClock;
@@ -63,6 +65,7 @@
 import android.view.accessibility.AccessibilityNodeInfo;
 import android.view.accessibility.AccessibilityNodeProvider;
 import android.view.accessibility.AccessibilityWindowInfo;
+import android.view.inputmethod.InputMethodManager;
 import android.widget.EditText;
 import android.widget.TextView;
 
@@ -1242,9 +1245,10 @@
                 if (mLastAutofilledData.containsKey(id)) {
                     value = view.getAutofillValue();
                     valueWasRead = true;
+                    final boolean hideHighlight = mLastAutofilledData.keySet().size() == 1;
 
                     if (Objects.equals(mLastAutofilledData.get(id), value)) {
-                        view.setAutofilled(true, false);
+                        view.setAutofilled(true, hideHighlight);
                     } else {
                         view.setAutofilled(false, false);
                         mLastAutofilledData.remove(id);
@@ -2443,6 +2447,44 @@
         }
     }
 
+    private void requestShowSoftInput(@NonNull AutofillId id) {
+        if (sVerbose) Log.v(TAG, "requestShowSoftInput(" + id + ")");
+        final AutofillClient client = getClient();
+        if (client == null) {
+            return;
+        }
+        final View view = client.autofillClientFindViewByAutofillIdTraversal(id);
+        if (view == null) {
+            if (sVerbose) Log.v(TAG, "View is not found");
+            return;
+        }
+        final Handler handler = view.getHandler();
+        if (handler == null) {
+            if (sVerbose) Log.v(TAG, "Ignoring requestShowSoftInput due to no handler in view");
+            return;
+        }
+        if (handler.getLooper() != Looper.myLooper()) {
+            // The view is running on a different thread than our own, so we need to reschedule
+            // our work for over there.
+            if (sVerbose) Log.v(TAG, "Scheduling showSoftInput() on the view UI thread");
+            handler.post(() -> requestShowSoftInputInViewThread(view));
+        } else {
+            requestShowSoftInputInViewThread(view);
+        }
+    }
+
+    // This method must be called from within the View thread.
+    private static void requestShowSoftInputInViewThread(@NonNull View view) {
+        if (!view.isFocused()) {
+            Log.w(TAG, "Ignoring requestShowSoftInput() due to non-focused view");
+            return;
+        }
+        final InputMethodManager inputMethodManager = view.getContext().getSystemService(
+                InputMethodManager.class);
+        boolean ret = inputMethodManager.showSoftInput(view, /*flags=*/ 0);
+        if (sVerbose) Log.v(TAG, " InputMethodManager.showSoftInput returns " + ret);
+    }
+
     /** @hide */
     public void requestHideFillUi() {
         requestHideFillUi(mIdShownFillUi, true);
@@ -3367,6 +3409,14 @@
                 afm.post(() -> afm.getAugmentedAutofillClient(result));
             }
         }
+
+        @Override
+        public void requestShowSoftInput(@NonNull AutofillId id) {
+            final AutofillManager afm = mAfm.get();
+            if (afm != null) {
+                afm.post(() -> afm.requestShowSoftInput(id));
+            }
+        }
     }
 
     private static final class AugmentedAutofillManagerClient
diff --git a/core/java/android/view/autofill/AutofillPopupWindow.java b/core/java/android/view/autofill/AutofillPopupWindow.java
index 8d3dc83..2ead352 100644
--- a/core/java/android/view/autofill/AutofillPopupWindow.java
+++ b/core/java/android/view/autofill/AutofillPopupWindow.java
@@ -25,7 +25,6 @@
 import android.os.RemoteException;
 import android.transition.Transition;
 import android.util.Log;
-import android.util.Size;
 import android.view.View;
 import android.view.View.OnTouchListener;
 import android.view.ViewTreeObserver;
@@ -129,10 +128,10 @@
             // Gravity.BOTTOM because PopupWindow base class does not expose computeGravity().
             final WindowManager windowManager = anchor.getContext()
                     .getSystemService(WindowManager.class);
-            final Size windowSize = windowManager.getCurrentWindowMetrics().getSize();
-            width = windowSize.getWidth();
+            final Rect windowBounds = windowManager.getCurrentWindowMetrics().getBounds();
+            width = windowBounds.width();
             if (height != LayoutParams.MATCH_PARENT) {
-                offsetY = windowSize.getHeight() - height;
+                offsetY = windowBounds.height() - height;
             }
             actualAnchor = anchor;
         } else if (virtualBounds != null) {
diff --git a/core/java/android/view/autofill/IAutoFillManagerClient.aidl b/core/java/android/view/autofill/IAutoFillManagerClient.aidl
index 4371b3c..87d65c2 100644
--- a/core/java/android/view/autofill/IAutoFillManagerClient.aidl
+++ b/core/java/android/view/autofill/IAutoFillManagerClient.aidl
@@ -117,4 +117,9 @@
     * Notifies disables autofill for the app or activity.
     */
    void notifyDisableAutofill(long disableDuration, in ComponentName componentName);
+
+   /**
+    * Requests to show the soft input method if the focus is on the given id.
+    */
+   void requestShowSoftInput(in AutofillId id);
 }
diff --git a/core/java/android/view/contentcapture/ContentCaptureContext.java b/core/java/android/view/contentcapture/ContentCaptureContext.java
index 1692051..b84cb88 100644
--- a/core/java/android/view/contentcapture/ContentCaptureContext.java
+++ b/core/java/android/view/contentcapture/ContentCaptureContext.java
@@ -15,7 +15,7 @@
  */
 package android.view.contentcapture;
 
-import static android.view.contentcapture.ContentCaptureSession.NO_SESSION_ID;
+import static android.view.contentcapture.ContentCaptureManager.NO_SESSION_ID;
 
 import android.annotation.IntDef;
 import android.annotation.NonNull;
diff --git a/core/java/android/view/contentcapture/ContentCaptureEvent.java b/core/java/android/view/contentcapture/ContentCaptureEvent.java
index ea34d94..f49b1be 100644
--- a/core/java/android/view/contentcapture/ContentCaptureEvent.java
+++ b/core/java/android/view/contentcapture/ContentCaptureEvent.java
@@ -16,7 +16,7 @@
 package android.view.contentcapture;
 
 import static android.view.contentcapture.ContentCaptureHelper.getSanitizedString;
-import static android.view.contentcapture.ContentCaptureSession.NO_SESSION_ID;
+import static android.view.contentcapture.ContentCaptureManager.NO_SESSION_ID;
 
 import android.annotation.IntDef;
 import android.annotation.NonNull;
diff --git a/core/java/android/view/contentcapture/ContentCaptureManager.java b/core/java/android/view/contentcapture/ContentCaptureManager.java
index b988927..954b83b 100644
--- a/core/java/android/view/contentcapture/ContentCaptureManager.java
+++ b/core/java/android/view/contentcapture/ContentCaptureManager.java
@@ -235,6 +235,13 @@
     public static final int RESULT_CODE_SECURITY_EXCEPTION = -1;
 
     /**
+     * ID used to indicate that a session does not exist
+     * @hide
+     */
+    @SystemApi
+    public static final int NO_SESSION_ID = 0;
+
+    /**
      * Timeout for calls to system_server.
      */
     private static final int SYNC_CALLS_TIMEOUT_MS = 5000;
diff --git a/core/java/android/view/contentcapture/ContentCaptureSession.java b/core/java/android/view/contentcapture/ContentCaptureSession.java
index 012f5e6..39c7210 100644
--- a/core/java/android/view/contentcapture/ContentCaptureSession.java
+++ b/core/java/android/view/contentcapture/ContentCaptureSession.java
@@ -17,12 +17,12 @@
 
 import static android.view.contentcapture.ContentCaptureHelper.sDebug;
 import static android.view.contentcapture.ContentCaptureHelper.sVerbose;
+import static android.view.contentcapture.ContentCaptureManager.NO_SESSION_ID;
 
 import android.annotation.CallSuper;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.SystemApi;
 import android.graphics.Insets;
 import android.util.DebugUtils;
 import android.util.Log;
@@ -53,13 +53,6 @@
     private static final Random sIdGenerator = new Random();
 
     /**
-    *  ID used to indicate that a session does not exist
-    *  @hide
-    */
-    @SystemApi
-    public static final int NO_SESSION_ID = 0;
-
-    /**
      * Initial state, when there is no session.
      *
      * @hide
diff --git a/core/java/android/view/inline/InlineContentView.java b/core/java/android/view/inline/InlineContentView.java
index 2a8ca0b..df5bc2f 100644
--- a/core/java/android/view/inline/InlineContentView.java
+++ b/core/java/android/view/inline/InlineContentView.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,22 +17,189 @@
 package android.view.inline;
 
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.content.Context;
 import android.graphics.PixelFormat;
+import android.util.AttributeSet;
+import android.view.SurfaceControl;
 import android.view.SurfaceControlViewHost;
+import android.view.SurfaceHolder;
 import android.view.SurfaceView;
+import android.view.ViewGroup;
 
 /**
- * This class represents a view that can hold an opaque content that may be from a different source.
+ * This class represents a view that holds opaque content from another app that
+ * you can inline in your UI.
  *
- * @hide
+ * <p>Since the content presented by this view is from another security domain,it is
+ * shown on a remote surface preventing the host application from accessing that content.
+ * Also the host application cannot interact with the inlined content by injecting touch
+ * events or clicking programmatically.
+ *
+ * <p>This view can be overlaid by other windows, i.e. redressed, but if this is the case
+ * the inined UI would not be interactive. Sometimes this is desirable, e.g. animating
+ * transitions.
+ *
+ * <p>By default the surface backing this view is shown on top of the hosting window such
+ * that the inlined content is interactive. However, you can temporarily move the surface
+ * under the hosting window which could be useful in some cases, e.g. animating transitions.
+ * At this point the inlined content will not be interactive and the touch events would
+ * be delivered to your app.
  */
-public class InlineContentView extends SurfaceView {
-    public InlineContentView(@NonNull Context context,
-            @NonNull SurfaceControlViewHost.SurfacePackage surfacePackage) {
-        super(context);
-        setZOrderOnTop(true);
-        setChildSurfacePackage(surfacePackage);
-        getHolder().setFormat(PixelFormat.TRANSPARENT);
+public class InlineContentView extends ViewGroup {
+
+    /**
+     * Callback for observing the lifecycle of the surface control
+     * that manipulates the backing secure embedded UI surface.
+     */
+    public interface SurfaceControlCallback {
+        /**
+         * Called when the backing surface is being created.
+         *
+         * @param surfaceControl The surface control to manipulate the surface.
+         */
+        void onCreated(@NonNull SurfaceControl surfaceControl);
+
+        /**
+         * Called when the backing surface is being destroyed.
+         *
+         * @param surfaceControl The surface control to manipulate the surface.
+         */
+        void onDestroyed(@NonNull SurfaceControl surfaceControl);
+    }
+
+    private final @NonNull SurfaceHolder.Callback mSurfaceCallback = new SurfaceHolder.Callback() {
+        @Override
+        public void surfaceCreated(@NonNull SurfaceHolder holder) {
+            mSurfaceControlCallback.onCreated(mSurfaceView.getSurfaceControl());
+        }
+
+        @Override
+        public void surfaceChanged(@NonNull SurfaceHolder holder,
+                int format, int width, int height) {
+            /* do nothing */
+        }
+
+        @Override
+        public void surfaceDestroyed(@NonNull SurfaceHolder holder) {
+            mSurfaceControlCallback.onDestroyed(mSurfaceView.getSurfaceControl());
+        }
+    };
+
+    private final @NonNull SurfaceView mSurfaceView;
+
+    private @Nullable SurfaceControlCallback mSurfaceControlCallback;
+
+    /**
+     * @inheritDoc
+     *
+     * @hide
+     */
+    public InlineContentView(@NonNull Context context) {
+        this(context, null);
+    }
+
+    /**
+     * @inheritDoc
+     *
+     * @hide
+     */
+    public InlineContentView(@NonNull Context context, @Nullable AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    /**
+     * @inheritDoc
+     *
+     * @hide
+     */
+    public InlineContentView(@NonNull Context context, @Nullable AttributeSet attrs,
+            int defStyleAttr) {
+        this(context, attrs, defStyleAttr, 0);
+    }
+
+    /**
+     * Gets the surface control. If the surface is not created this method
+     * returns {@code null}.
+     *
+     * @return The surface control.
+     *
+     * @see #setSurfaceControlCallback(SurfaceControlCallback) 
+     */
+    public @Nullable SurfaceControl getSurfaceControl() {
+        return mSurfaceView.getSurfaceControl();
+    }
+
+    /**
+     * @inheritDoc
+     *
+     * @hide
+     */
+    public InlineContentView(@NonNull Context context, @Nullable AttributeSet attrs,
+            int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        mSurfaceView = new SurfaceView(context, attrs, defStyleAttr, defStyleRes);
+        mSurfaceView.setZOrderOnTop(true);
+        mSurfaceView.getHolder().setFormat(PixelFormat.TRANSPARENT);
+        addView(mSurfaceView);
+    }
+
+    /**
+     * Sets the embedded UI.
+     * @param surfacePackage The embedded UI.
+     *
+     * @hide
+     */
+    public void setChildSurfacePackage(
+            @Nullable SurfaceControlViewHost.SurfacePackage surfacePackage) {
+        mSurfaceView.setChildSurfacePackage(surfacePackage);
+    }
+
+    @Override
+    public void onLayout(boolean changed, int l, int t, int r, int b) {
+        mSurfaceView.layout(l, t, r, b);
+    }
+
+    /**
+     * Sets a callback to observe the lifecycle of the surface control for
+     * managing the backing surface.
+     *
+     * @param callback The callback to set or {@code null} to clear.
+     */
+    public void setSurfaceControlCallback(@Nullable SurfaceControlCallback callback) {
+        if (mSurfaceControlCallback != null) {
+            mSurfaceView.getHolder().removeCallback(mSurfaceCallback);
+        }
+        mSurfaceControlCallback = callback;
+        if (mSurfaceControlCallback != null) {
+            mSurfaceView.getHolder().addCallback(mSurfaceCallback);
+        }
+    }
+
+    /**
+     * @return Whether the surface backing this view appears on top of its parent.
+     *
+     * @see #setZOrderedOnTop(boolean)
+     */
+    public boolean isZOrderedOnTop() {
+        return mSurfaceView.isZOrderedOnTop();
+    }
+
+    /**
+     * Controls whether the backing surface is placed on top of this view's window.
+     * Normally, it is placed on top of the window, to allow interaction
+     * with the inlined UI. Via this method, you can place the surface below the
+     * window. This means that all of the contents of the window this view is in
+     * will be visible on top of its surface.
+     *
+     * <p> The Z ordering can be changed dynamically if the backing surface is
+     * created, otherwise the ordering would be applied at surface construction time.
+     *
+     * @param onTop Whether to show the surface on top of this view's window.
+     *
+     * @see #isZOrderedOnTop()
+     */
+    public boolean setZOrderedOnTop(boolean onTop) {
+        return mSurfaceView.setZOrderedOnTop(onTop, /*allowDynamicChange*/ true);
     }
 }
diff --git a/core/java/android/view/inputmethod/InlineSuggestion.java b/core/java/android/view/inputmethod/InlineSuggestion.java
index dd1738a..ab8f36d 100644
--- a/core/java/android/view/inputmethod/InlineSuggestion.java
+++ b/core/java/android/view/inputmethod/InlineSuggestion.java
@@ -29,7 +29,6 @@
 import android.util.Size;
 import android.util.Slog;
 import android.view.SurfaceControlViewHost;
-import android.view.View;
 import android.view.inline.InlineContentView;
 import android.view.inline.InlinePresentationSpec;
 
@@ -94,15 +93,15 @@
         this(info, contentProvider, /* inlineContentCallback */ null);
     }
 
-
     /**
      * Inflates a view with the content of this suggestion at a specific size.
      * The size must be between the {@link InlinePresentationSpec#getMinSize() min size}
      * and the {@link InlinePresentationSpec#getMaxSize() max size} of the presentation
      * spec returned by {@link InlineSuggestionInfo#getPresentationSpec()}.
      *
-     * <p> The caller can attach an {@link View.OnClickListener} and/or an
-     * {@link View.OnLongClickListener} to the view in the {@code callback} to receive click and
+     * <p> The caller can attach an {@link android.view.View.OnClickListener} and/or an
+     * {@link android.view.View.OnLongClickListener} to the view in the
+     * {@code callback} to receive click and
      * long click events on the view.
      *
      * @param context  Context in which to inflate the view.
@@ -113,7 +112,7 @@
      */
     public void inflate(@NonNull Context context, @NonNull Size size,
             @NonNull @CallbackExecutor Executor callbackExecutor,
-            @NonNull Consumer<View> callback) {
+            @NonNull Consumer<InlineContentView> callback) {
         final Size minSize = mInfo.getPresentationSpec().getMinSize();
         final Size maxSize = mInfo.getPresentationSpec().getMaxSize();
         if (size.getHeight() < minSize.getHeight() || size.getHeight() > maxSize.getHeight()
@@ -138,7 +137,7 @@
     }
 
     private synchronized InlineContentCallbackImpl getInlineContentCallback(Context context,
-            Executor callbackExecutor, Consumer<View> callback) {
+            Executor callbackExecutor, Consumer<InlineContentView> callback) {
         if (mInlineContentCallback != null) {
             throw new IllegalStateException("Already called #inflate()");
         }
@@ -185,12 +184,12 @@
 
         private final @NonNull Context mContext;
         private final @NonNull Executor mCallbackExecutor;
-        private final @NonNull Consumer<View> mCallback;
-        private @Nullable View mView;
+        private final @NonNull Consumer<InlineContentView> mCallback;
+        private @Nullable InlineContentView mView;
 
         InlineContentCallbackImpl(@NonNull Context context,
                 @NonNull @CallbackExecutor Executor callbackExecutor,
-                @NonNull Consumer<View> callback) {
+                @NonNull Consumer<InlineContentView> callback) {
             mContext = context;
             mCallbackExecutor = callbackExecutor;
             mCallback = callback;
@@ -201,7 +200,8 @@
             if (content == null) {
                 mCallbackExecutor.execute(() -> mCallback.accept(/* view */null));
             } else {
-                mView = new InlineContentView(mContext, content);
+                mView = new InlineContentView(mContext);
+                mView.setChildSurfacePackage(content);
                 mCallbackExecutor.execute(() -> mCallback.accept(mView));
             }
         }
@@ -398,10 +398,10 @@
     };
 
     @DataClass.Generated(
-            time = 1583889058241L,
+            time = 1584679775946L,
             codegenVersion = "1.0.15",
             sourceFile = "frameworks/base/core/java/android/view/inputmethod/InlineSuggestion.java",
-            inputSignatures = "private static final  java.lang.String TAG\nprivate final @android.annotation.NonNull android.view.inputmethod.InlineSuggestionInfo mInfo\nprivate final @android.annotation.Nullable com.android.internal.view.inline.IInlineContentProvider mContentProvider\nprivate @com.android.internal.util.DataClass.ParcelWith(android.view.inputmethod.InlineSuggestion.InlineContentCallbackImplParceling.class) @android.annotation.Nullable android.view.inputmethod.InlineSuggestion.InlineContentCallbackImpl mInlineContentCallback\npublic static @android.annotation.TestApi @android.annotation.NonNull android.view.inputmethod.InlineSuggestion newInlineSuggestion(android.view.inputmethod.InlineSuggestionInfo)\npublic  void inflate(android.content.Context,android.util.Size,java.util.concurrent.Executor,java.util.function.Consumer<android.view.View>)\nprivate synchronized  android.view.inputmethod.InlineSuggestion.InlineContentCallbackImpl getInlineContentCallback(android.content.Context,java.util.concurrent.Executor,java.util.function.Consumer<android.view.View>)\nclass InlineSuggestion extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genEqualsHashCode=true, genToString=true, genHiddenConstDefs=true, genHiddenConstructor=true)")
+            inputSignatures = "private static final  java.lang.String TAG\nprivate final @android.annotation.NonNull android.view.inputmethod.InlineSuggestionInfo mInfo\nprivate final @android.annotation.Nullable com.android.internal.view.inline.IInlineContentProvider mContentProvider\nprivate @com.android.internal.util.DataClass.ParcelWith(android.view.inputmethod.InlineSuggestion.InlineContentCallbackImplParceling.class) @android.annotation.Nullable android.view.inputmethod.InlineSuggestion.InlineContentCallbackImpl mInlineContentCallback\npublic static @android.annotation.TestApi @android.annotation.NonNull android.view.inputmethod.InlineSuggestion newInlineSuggestion(android.view.inputmethod.InlineSuggestionInfo)\npublic  void inflate(android.content.Context,android.util.Size,java.util.concurrent.Executor,java.util.function.Consumer<android.view.inline.InlineContentView>)\nprivate synchronized  android.view.inputmethod.InlineSuggestion.InlineContentCallbackImpl getInlineContentCallback(android.content.Context,java.util.concurrent.Executor,java.util.function.Consumer<android.view.inline.InlineContentView>)\nclass InlineSuggestion extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genEqualsHashCode=true, genToString=true, genHiddenConstDefs=true, genHiddenConstructor=true)")
     @Deprecated
     private void __metadata() {}
 
diff --git a/core/java/android/widget/EditText.java b/core/java/android/widget/EditText.java
index 728824c..d661bc6 100644
--- a/core/java/android/widget/EditText.java
+++ b/core/java/android/widget/EditText.java
@@ -24,7 +24,6 @@
 import android.text.method.ArrowKeyMovementMethod;
 import android.text.method.MovementMethod;
 import android.util.AttributeSet;
-import android.view.accessibility.AccessibilityNodeInfo;
 
 /*
  * This is supposed to be a *very* thin veneer over TextView.
@@ -179,13 +178,4 @@
     protected boolean supportsAutoSizeText() {
         return false;
     }
-
-    /** @hide */
-    @Override
-    public void onInitializeAccessibilityNodeInfoInternal(AccessibilityNodeInfo info) {
-        super.onInitializeAccessibilityNodeInfoInternal(info);
-        if (isEnabled()) {
-            info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_SET_TEXT);
-        }
-    }
 }
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index 16d9ed3..62dd192 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -317,6 +317,7 @@
     private SelectionActionModeHelper mSelectionActionModeHelper;
 
     boolean mIsBeingLongClicked;
+    boolean mIsBeingLongClickedByAccessibility;
 
     private SuggestionsPopupWindow mSuggestionsPopupWindow;
     SuggestionRangeSpan mSuggestionRangeSpan;
@@ -404,6 +405,13 @@
     // The actual zoom value may changes based on this initial zoom value.
     private float mInitialZoom = 1f;
 
+    // For calculating the line change slops while moving cursor/selection.
+    // The slop max/min value include line height and the slop on the upper/lower line.
+    private static final int LINE_CHANGE_SLOP_MAX_DP = 45;
+    private static final int LINE_CHANGE_SLOP_MIN_DP = 12;
+    private int mLineChangeSlopMax;
+    private int mLineChangeSlopMin;
+
     Editor(TextView textView) {
         mTextView = textView;
         // Synchronize the filter list, which places the undo input filter at the end.
@@ -429,6 +437,14 @@
             logCursor("Editor", "New magnifier is %s.",
                     mNewMagnifierEnabled ? "enabled" : "disabled");
         }
+
+        mLineChangeSlopMax = (int) TypedValue.applyDimension(
+                TypedValue.COMPLEX_UNIT_DIP, LINE_CHANGE_SLOP_MAX_DP,
+                mTextView.getContext().getResources().getDisplayMetrics());
+        mLineChangeSlopMin = (int) TypedValue.applyDimension(
+                TypedValue.COMPLEX_UNIT_DIP, LINE_CHANGE_SLOP_MIN_DP,
+                mTextView.getContext().getResources().getDisplayMetrics());
+
     }
 
     @VisibleForTesting
@@ -1312,6 +1328,12 @@
         if (TextView.DEBUG_CURSOR) {
             logCursor("performLongClick", "handled=%s", handled);
         }
+        if (mIsBeingLongClickedByAccessibility) {
+            if (!handled) {
+                toggleInsertionActionMode();
+            }
+            return true;
+        }
         // Long press in empty space moves cursor and starts the insertion action mode.
         if (!handled && !isPositionOnText(mTouchState.getLastDownX(), mTouchState.getLastDownY())
                 && !mTouchState.isOnHandle() && mInsertionControllerEnabled) {
@@ -1359,6 +1381,14 @@
         return handled;
     }
 
+    private void toggleInsertionActionMode() {
+        if (mTextActionMode != null) {
+            stopTextActionMode();
+        } else {
+            startInsertionActionMode();
+        }
+    }
+
     float getLastUpPositionX() {
         return mTouchState.getLastUpX();
     }
@@ -5436,11 +5466,7 @@
                                 config.getScaledTouchSlop());
                         if (isWithinTouchSlop) {
                             // Tapping on the handle toggles the insertion action mode.
-                            if (mTextActionMode != null) {
-                                stopTextActionMode();
-                            } else {
-                                startInsertionActionMode();
-                            }
+                            toggleInsertionActionMode();
                         }
                     } else {
                         if (mTextActionMode != null) {
@@ -6007,7 +6033,14 @@
         }
     }
 
-    private int getCurrentLineAdjustedForSlop(Layout layout, int prevLine, float y) {
+    @VisibleForTesting
+    public void setLineChangeSlopMinMaxForTesting(final int min, final int max) {
+        mLineChangeSlopMin = min;
+        mLineChangeSlopMax = max;
+    }
+
+    @VisibleForTesting
+    public int getCurrentLineAdjustedForSlop(Layout layout, int prevLine, float y) {
         final int trueLine = mTextView.getLineAtCoordinate(y);
         if (layout == null || prevLine > layout.getLineCount()
                 || layout.getLineCount() <= 0 || prevLine < 0) {
@@ -6020,28 +6053,21 @@
             return trueLine;
         }
 
+        final int lineHeight = layout.getLineBottom(prevLine) - layout.getLineTop(prevLine);
+        int slop = (int)(LINE_SLOP_MULTIPLIER_FOR_HANDLEVIEWS
+                * (layout.getLineBottom(trueLine) - layout.getLineTop(trueLine)));
+        slop = Math.max(mLineChangeSlopMin,
+                Math.min(mLineChangeSlopMax, lineHeight + slop)) - lineHeight;
+        slop = Math.max(0, slop);
+
         final float verticalOffset = mTextView.viewportToContentVerticalOffset();
-        final int lineCount = layout.getLineCount();
-        final float slop = mTextView.getLineHeight() * LINE_SLOP_MULTIPLIER_FOR_HANDLEVIEWS;
-
-        final float firstLineTop = layout.getLineTop(0) + verticalOffset;
-        final float prevLineTop = layout.getLineTop(prevLine) + verticalOffset;
-        final float yTopBound = Math.max(prevLineTop - slop, firstLineTop + slop);
-
-        final float lastLineBottom = layout.getLineBottom(lineCount - 1) + verticalOffset;
-        final float prevLineBottom = layout.getLineBottom(prevLine) + verticalOffset;
-        final float yBottomBound = Math.min(prevLineBottom + slop, lastLineBottom - slop);
-
-        // Determine if we've moved lines based on y position and previous line.
-        int currLine;
-        if (y <= yTopBound) {
-            currLine = Math.max(prevLine - 1, 0);
-        } else if (y >= yBottomBound) {
-            currLine = Math.min(prevLine + 1, lineCount - 1);
-        } else {
-            currLine = prevLine;
+        if (trueLine > prevLine && y >= layout.getLineBottom(prevLine) + slop + verticalOffset) {
+            return trueLine;
         }
-        return currLine;
+        if (trueLine < prevLine && y <= layout.getLineTop(prevLine) - slop + verticalOffset) {
+            return trueLine;
+        }
+        return prevLine;
     }
 
     /**
diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java
index bf696f5..cc3d744 100644
--- a/core/java/android/widget/PopupWindow.java
+++ b/core/java/android/widget/PopupWindow.java
@@ -1818,7 +1818,7 @@
         final int winOffsetY = screenLocationY - drawingLocationY;
         final int anchorTopInScreen = outParams.y + winOffsetY;
         final int spaceBelow = displayFrameBottom - anchorTopInScreen;
-        if (anchorTopInScreen >= 0 && height <= spaceBelow) {
+        if (anchorTopInScreen >= displayFrameTop && height <= spaceBelow) {
             return true;
         }
 
@@ -1880,7 +1880,7 @@
         final int winOffsetX = screenLocationX - drawingLocationX;
         final int anchorLeftInScreen = outParams.x + winOffsetX;
         final int spaceRight = displayFrameRight - anchorLeftInScreen;
-        if (anchorLeftInScreen >= 0 && width <= spaceRight) {
+        if (anchorLeftInScreen >= displayFrameLeft && width <= spaceRight) {
             return true;
         }
 
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index 7f6c0d2..4a27d3a0 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -29,6 +29,7 @@
 import android.app.PendingIntent;
 import android.app.RemoteInput;
 import android.appwidget.AppWidgetHostView;
+import android.appwidget.AppWidgetManager;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.Context;
 import android.content.ContextWrapper;
@@ -4130,8 +4131,18 @@
             // The NEW_TASK flags are applied through the activity options and not as a part of
             // the call to startIntentSender() to ensure that they are consistently applied to
             // both mutable and immutable PendingIntents.
+            final IntentSender intentSender = pendingIntent.getIntentSender();
+            final int uid = intentSender.getCreatorUid();
+            final String packageName = intentSender.getCreatorPackage();
+            if (uid != -1 && packageName != null) {
+                final AppWidgetManager appWidgetManager =
+                        context.getSystemService(AppWidgetManager.class);
+                if (appWidgetManager != null) {
+                    appWidgetManager.noteAppWidgetTapped(uid, packageName);
+                }
+            }
             context.startIntentSender(
-                    pendingIntent.getIntentSender(), options.first,
+                    intentSender, options.first,
                     0, 0, 0, options.second.toBundle());
         } catch (IntentSender.SendIntentException e) {
             Log.e(LOG_TAG, "Cannot send pending intent: ", e);
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 2168018..e178318 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -12108,6 +12108,23 @@
                     onEditorAction(getImeActionId());
                 }
             } return true;
+            case AccessibilityNodeInfo.ACTION_LONG_CLICK: {
+                if (isLongClickable()) {
+                    boolean handled;
+                    if (isEnabled() && (mBufferType == BufferType.EDITABLE)) {
+                        mEditor.mIsBeingLongClickedByAccessibility = true;
+                        try {
+                            handled = performLongClick();
+                        } finally {
+                            mEditor.mIsBeingLongClickedByAccessibility = false;
+                        }
+                    } else {
+                        handled = performLongClick();
+                    }
+                    return handled;
+                }
+            }
+            return false;
             default: {
                 return super.performAccessibilityActionInternal(action, arguments);
             }
diff --git a/core/java/android/widget/Toast.java b/core/java/android/widget/Toast.java
index 7d97a91..4f14539 100644
--- a/core/java/android/widget/Toast.java
+++ b/core/java/android/widget/Toast.java
@@ -144,9 +144,6 @@
     @Nullable
     private CharSequence mText;
 
-    // TODO(b/144152069): Remove this after assessing impact on dogfood.
-    private boolean mIsCustomToast;
-
     /**
      * Construct an empty Toast object.  You must call {@link #setView} before you
      * can call {@link #show}.
@@ -214,8 +211,7 @@
                     service.enqueueTextToast(pkg, mToken, mText, mDuration, displayId, callback);
                 }
             } else {
-                service.enqueueTextOrCustomToast(pkg, mToken, tn, mDuration, displayId,
-                        mIsCustomToast);
+                service.enqueueToast(pkg, mToken, tn, mDuration, displayId);
             }
         } catch (RemoteException e) {
             // Empty
@@ -253,7 +249,6 @@
      */
     @Deprecated
     public void setView(View view) {
-        mIsCustomToast = true;
         mNextView = view;
     }
 
@@ -755,8 +750,9 @@
     /**
      * Callback object to be called when the toast is shown or hidden.
      *
-     * Callback methods will be called on the looper thread provided on construction.
+     * <p>Callback methods will be called on the looper thread used for the {@link Toast} object.
      *
+     * @see #makeText(Context, Looper, CharSequence, int)
      * @see #addCallback(Callback)
      */
     public abstract static class Callback {
diff --git a/core/java/android/hardware/biometrics/IBiometricNativeHandle.aidl b/core/java/android/window/IDisplayAreaOrganizer.aidl
similarity index 66%
copy from core/java/android/hardware/biometrics/IBiometricNativeHandle.aidl
copy to core/java/android/window/IDisplayAreaOrganizer.aidl
index 6dcdc1b..1045ab2 100644
--- a/core/java/android/hardware/biometrics/IBiometricNativeHandle.aidl
+++ b/core/java/android/window/IDisplayAreaOrganizer.aidl
@@ -13,14 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
+
+package android.window;
+
+import android.window.IWindowContainer;
 
 /**
- * Representation of a native handle.
- * Copied from /common/aidl/android/hardware/common/NativeHandle.aidl
- * @hide
+ * Interface for WindowManager to delegate control of display areas.
+ * {@hide}
  */
-parcelable IBiometricNativeHandle {
-    ParcelFileDescriptor[] fds;
-    int[] ints;
+oneway interface IDisplayAreaOrganizer {
+    void onDisplayAreaAppeared(in IWindowContainer displayArea);
+    void onDisplayAreaVanished(in IWindowContainer displayArea);
 }
diff --git a/core/java/android/window/IDisplayAreaOrganizerController.aidl b/core/java/android/window/IDisplayAreaOrganizerController.aidl
new file mode 100644
index 0000000..fc6fbef
--- /dev/null
+++ b/core/java/android/window/IDisplayAreaOrganizerController.aidl
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.window;
+
+import android.window.IDisplayAreaOrganizer;
+
+/** @hide */
+interface IDisplayAreaOrganizerController {
+
+    /** Register a DisplayAreaOrganizer to manage display areas for a given feature. */
+    void registerOrganizer(in IDisplayAreaOrganizer organizer, int displayAreaFeature);
+}
diff --git a/core/java/android/window/ITaskOrganizer.aidl b/core/java/android/window/ITaskOrganizer.aidl
new file mode 100644
index 0000000..fcf4830
--- /dev/null
+++ b/core/java/android/window/ITaskOrganizer.aidl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.window;
+
+import android.view.SurfaceControl;
+import android.app.ActivityManager;
+import android.window.IWindowContainer;
+
+/**
+ * Interface for ActivityTaskManager/WindowManager to delegate control of tasks.
+ * {@hide}
+ */
+oneway interface ITaskOrganizer {
+    void onTaskAppeared(in ActivityManager.RunningTaskInfo taskInfo);
+    void onTaskVanished(in ActivityManager.RunningTaskInfo taskInfo);
+
+    /**
+     * Will fire when core attributes of a Task's info change. Relevant properties include the
+     * {@link WindowConfiguration.ActivityType} and whether it is resizable.
+     *
+     * This is used, for example, during split-screen. The flow for starting is: Something sends an
+     * Intent with windowingmode. Then WM finds a matching root task and launches the new task into
+     * it. This causes the root task's info to change because now it has a task when it didn't
+     * before. The default Divider implementation interprets this as a request to enter
+     * split-screen mode and will move all other Tasks into the secondary root task. When WM
+     * applies this change, it triggers an info change in the secondary root task because it now
+     * has children. The Divider impl looks at the info and can see that the secondary root task
+     * has adopted an ActivityType of HOME and proceeds to show the minimized dock UX.
+     */
+    void onTaskInfoChanged(in ActivityManager.RunningTaskInfo info);
+}
diff --git a/core/java/android/app/ITaskOrganizerController.aidl b/core/java/android/window/ITaskOrganizerController.aidl
similarity index 67%
rename from core/java/android/app/ITaskOrganizerController.aidl
rename to core/java/android/window/ITaskOrganizerController.aidl
index 9d6c3d6..a8b6aae 100644
--- a/core/java/android/app/ITaskOrganizerController.aidl
+++ b/core/java/android/window/ITaskOrganizerController.aidl
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-package android.app;
+package android.window;
 
 import android.app.ActivityManager;
-import android.view.ITaskOrganizer;
-import android.view.IWindowContainer;
-import android.view.WindowContainerTransaction;
+import android.window.ITaskOrganizer;
+import android.window.IWindowContainer;
+import android.window.WindowContainerTransaction;
 
 /** @hide */
 interface ITaskOrganizerController {
@@ -32,18 +32,9 @@
     void registerTaskOrganizer(ITaskOrganizer organizer, int windowingMode);
 
     /**
-     * Apply multiple WindowContainer operations at once.
-     * @param organizer If non-null this transaction will use the synchronization
-     *        scheme described in BLASTSyncEngine.java. The SurfaceControl transaction
-     *        containing the effects of this WindowContainer transaction will be passed
-     *        to the organizers Transaction ready callback. If null the transaction
-     *        will apply with non particular synchronization constraints (other than
-     *        it will all apply at once).
-     * @return If organizer was non-null returns an ID for the sync operation which will
-     *         later be passed to transactionReady. This lets TaskOrganizer implementations
-     *         differentiate overlapping sync operations.
+     * Unregisters a previously registered task organizer.
      */
-    int applyContainerTransaction(in WindowContainerTransaction t, ITaskOrganizer organizer);
+    void unregisterTaskOrganizer(ITaskOrganizer organizer);
 
     /** Creates a persistent root task in WM for a particular windowing-mode. */
     ActivityManager.RunningTaskInfo createRootTask(int displayId, int windowingMode);
diff --git a/core/java/android/view/IWindowContainer.aidl b/core/java/android/window/IWindowContainer.aidl
similarity index 97%
rename from core/java/android/view/IWindowContainer.aidl
rename to core/java/android/window/IWindowContainer.aidl
index 878d86b..f2960f6 100644
--- a/core/java/android/view/IWindowContainer.aidl
+++ b/core/java/android/window/IWindowContainer.aidl
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.view;
+package android.window;
 
 import android.view.SurfaceControl;
 
diff --git a/core/java/android/hardware/biometrics/IBiometricNativeHandle.aidl b/core/java/android/window/IWindowContainerTransactionCallback.aidl
similarity index 66%
rename from core/java/android/hardware/biometrics/IBiometricNativeHandle.aidl
rename to core/java/android/window/IWindowContainerTransactionCallback.aidl
index 6dcdc1b..0579932 100644
--- a/core/java/android/hardware/biometrics/IBiometricNativeHandle.aidl
+++ b/core/java/android/window/IWindowContainerTransactionCallback.aidl
@@ -13,14 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.hardware.biometrics;
+
+package android.window;
+
+import android.view.SurfaceControl;
 
 /**
- * Representation of a native handle.
- * Copied from /common/aidl/android/hardware/common/NativeHandle.aidl
- * @hide
+ * See WindowOrganizer#applyTransaction.
+ * {@hide}
  */
-parcelable IBiometricNativeHandle {
-    ParcelFileDescriptor[] fds;
-    int[] ints;
+oneway interface IWindowContainerTransactionCallback {
+    /** Called upon completion of WindowOrganizer#applyTransaction */
+    void transactionReady(int id, in SurfaceControl.Transaction t);
 }
diff --git a/core/java/android/window/IWindowOrganizerController.aidl b/core/java/android/window/IWindowOrganizerController.aidl
new file mode 100644
index 0000000..7f4b26d
--- /dev/null
+++ b/core/java/android/window/IWindowOrganizerController.aidl
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2020, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.window;
+
+import android.window.IDisplayAreaOrganizerController;
+import android.window.ITaskOrganizerController;
+import android.window.IWindowContainerTransactionCallback;
+import android.window.WindowContainerTransaction;
+
+/** @hide */
+interface IWindowOrganizerController {
+
+    /**
+     * Apply multiple WindowContainer operations at once.
+     * @param t The transaction to apply.
+     */
+    void applyTransaction(in WindowContainerTransaction t);
+
+    /**
+     * Apply multiple WindowContainer operations at once.
+     * @param t The transaction to apply.
+     * @param callback This transaction will use the synchronization scheme described in
+     *        BLASTSyncEngine.java. The SurfaceControl transaction containing the effects of this
+     *        WindowContainer transaction will be passed to this callback when ready.
+     * @return An ID for the sync operation which will later be passed to transactionReady callback.
+     *         This lets the caller differentiate overlapping sync operations.
+     */
+    int applySyncTransaction(in WindowContainerTransaction t,
+            in IWindowContainerTransactionCallback callback);
+
+    /** @return An interface enabling the management of task organizers. */
+    ITaskOrganizerController getTaskOrganizerController();
+
+    /** @return An interface enabling the management of display area organizers. */
+    IDisplayAreaOrganizerController getDisplayAreaOrganizerController();
+}
diff --git a/core/java/android/window/OWNERS b/core/java/android/window/OWNERS
new file mode 100644
index 0000000..d10fb31
--- /dev/null
+++ b/core/java/android/window/OWNERS
@@ -0,0 +1,3 @@
+set noparent
+
+include ../../../../services/core/java/com/android/server/wm/OWNERS
diff --git a/core/java/android/view/WindowContainerTransaction.aidl b/core/java/android/window/WindowContainerTransaction.aidl
similarity index 96%
rename from core/java/android/view/WindowContainerTransaction.aidl
rename to core/java/android/window/WindowContainerTransaction.aidl
index 46ba6c1..da77a00 100644
--- a/core/java/android/view/WindowContainerTransaction.aidl
+++ b/core/java/android/window/WindowContainerTransaction.aidl
@@ -14,6 +14,6 @@
  * limitations under the License.
  */
 
-package android.view;
+package android.window;
 
 parcelable WindowContainerTransaction;
diff --git a/core/java/android/view/WindowContainerTransaction.java b/core/java/android/window/WindowContainerTransaction.java
similarity index 99%
rename from core/java/android/view/WindowContainerTransaction.java
rename to core/java/android/window/WindowContainerTransaction.java
index 56b4951..483dec6 100644
--- a/core/java/android/view/WindowContainerTransaction.java
+++ b/core/java/android/window/WindowContainerTransaction.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.view;
+package android.window;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -26,6 +26,7 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.util.ArrayMap;
+import android.window.IWindowContainer;
 import android.view.SurfaceControl;
 
 import java.util.ArrayList;
diff --git a/core/java/android/window/WindowOrganizer.java b/core/java/android/window/WindowOrganizer.java
new file mode 100644
index 0000000..4bd5b29
--- /dev/null
+++ b/core/java/android/window/WindowOrganizer.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.window;
+
+import android.annotation.RequiresPermission;
+import android.app.ActivityManager;
+import android.app.ActivityTaskManager;
+import android.os.RemoteException;
+import android.util.Singleton;
+
+import java.util.List;
+
+/**
+ * Class for organizing specific types of windows like Tasks and DisplayAreas
+ *
+ * @hide
+ */
+public class WindowOrganizer {
+
+    /**
+     * Apply multiple WindowContainer operations at once.
+     * @param t The transaction to apply.
+     * @hide
+     */
+    @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+    public static void applyTransaction(WindowContainerTransaction t) throws RemoteException {
+        getWindowOrganizerController().applyTransaction(t);
+    }
+
+    /**
+     * Apply multiple WindowContainer operations at once.
+     * @param t The transaction to apply.
+     * @param callback This transaction will use the synchronization scheme described in
+     *        BLASTSyncEngine.java. The SurfaceControl transaction containing the effects of this
+     *        WindowContainer transaction will be passed to this callback when ready.
+     * @return An ID for the sync operation which will later be passed to transactionReady callback.
+     *         This lets the caller differentiate overlapping sync operations.
+     * @hide
+     */
+    @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+    public static int applySyncTransaction(WindowContainerTransaction t,
+            IWindowContainerTransactionCallback callback) throws RemoteException {
+        return getWindowOrganizerController().applySyncTransaction(t, callback);
+    }
+
+    /** @hide */
+    @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+    private static IWindowOrganizerController getWindowOrganizerController() {
+        return IWindowOrganizerControllerSingleton.get();
+    }
+
+    private static final Singleton<IWindowOrganizerController> IWindowOrganizerControllerSingleton =
+            new Singleton<IWindowOrganizerController>() {
+                @Override
+                protected IWindowOrganizerController create() {
+                    try {
+                        return ActivityTaskManager.getService().getWindowOrganizerController();
+                    } catch (RemoteException e) {
+                        return null;
+                    }
+                }
+            };
+
+    public static class TaskOrganizer {
+
+        /**
+         * Register a TaskOrganizer to manage tasks as they enter the given windowing mode.
+         * If there was already a TaskOrganizer for this windowing mode it will be evicted
+         * and receive taskVanished callbacks in the process.
+         */
+        @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+        public static void registerOrganizer(ITaskOrganizer organizer, int windowingMode)
+                throws RemoteException {
+            getController().registerTaskOrganizer(organizer, windowingMode);
+        }
+
+        /** Unregisters a previously registered task organizer. */
+        @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+        public static void unregisterOrganizer(ITaskOrganizer organizer) throws RemoteException {
+            getController().unregisterTaskOrganizer(organizer);
+        }
+
+        /** Creates a persistent root task in WM for a particular windowing-mode. */
+        @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+        public static ActivityManager.RunningTaskInfo createRootTask(
+                int displayId, int windowingMode) throws RemoteException {
+            return getController().createRootTask(displayId, windowingMode);
+        }
+
+        /** Deletes a persistent root task in WM */
+        @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+        public static boolean deleteRootTask(IWindowContainer task) throws RemoteException {
+            return getController().deleteRootTask(task);
+        }
+
+        /** Gets direct child tasks (ordered from top-to-bottom) */
+        @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+        public static List<ActivityManager.RunningTaskInfo> getChildTasks(IWindowContainer parent,
+                int[] activityTypes) throws RemoteException {
+            return getController().getChildTasks(parent, activityTypes);
+        }
+
+        /** Gets all root tasks on a display (ordered from top-to-bottom) */
+        @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+        public static List<ActivityManager.RunningTaskInfo> getRootTasks(
+                int displayId, int[] activityTypes) throws RemoteException {
+            return getController().getRootTasks(displayId, activityTypes);
+        }
+
+        /** Get the root task which contains the current ime target */
+        @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+        public static IWindowContainer getImeTarget(int display) throws RemoteException {
+            return getController().getImeTarget(display);
+        }
+
+        /**
+         * Set's the root task to launch new tasks into on a display. {@code null} means no launch
+         * root and thus new tasks just end up directly on the display.
+         */
+        @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+        public static void setLaunchRoot(int displayId, IWindowContainer root)
+                throws RemoteException {
+            getController().setLaunchRoot(displayId, root);
+        }
+
+        private static ITaskOrganizerController getController() {
+            return ITaskOrganizerControllerSingleton.get();
+        }
+
+        private static final Singleton<ITaskOrganizerController> ITaskOrganizerControllerSingleton =
+                new Singleton<ITaskOrganizerController>() {
+                    @Override
+                    protected ITaskOrganizerController create() {
+                        try {
+                            return getWindowOrganizerController().getTaskOrganizerController();
+                        } catch (RemoteException e) {
+                            return null;
+                        }
+                    }
+                };
+    }
+
+    /** Class for organizing display areas. */
+    public static class DisplayAreaOrganizer {
+
+        public static final int FEATURE_UNDEFINED = -1;
+        public static final int FEATURE_SYSTEM_FIRST = 0;
+        // The Root display area on a display
+        public static final int FEATURE_ROOT = FEATURE_SYSTEM_FIRST;
+        // Display area hosting the task container.
+        public static final int FEATURE_TASK_CONTAINER = FEATURE_SYSTEM_FIRST + 1;
+        // Display area hosting non-activity window tokens.
+        public static final int FEATURE_WINDOW_TOKENS = FEATURE_SYSTEM_FIRST + 2;
+
+        public static final int FEATURE_SYSTEM_LAST = 10_000;
+
+        // Vendor specific display area definition can start with this value.
+        public static final int FEATURE_VENDOR_FIRST = FEATURE_SYSTEM_LAST + 1;
+
+        /** @hide */
+        @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+        public static void registerOrganizer(
+                IDisplayAreaOrganizer organizer, int displayAreaFeature) throws RemoteException {
+            getController().registerOrganizer(organizer, displayAreaFeature);
+        }
+
+        /** @hide */
+        private static IDisplayAreaOrganizerController getController() {
+            return IDisplayAreaOrganizerControllerSingleton.get();
+        }
+
+        private static final Singleton<IDisplayAreaOrganizerController>
+                IDisplayAreaOrganizerControllerSingleton =
+                new Singleton<IDisplayAreaOrganizerController>() {
+                    @Override
+                    protected IDisplayAreaOrganizerController create() {
+                        try {
+                            return getWindowOrganizerController()
+                                    .getDisplayAreaOrganizerController();
+                        } catch (RemoteException e) {
+                            return null;
+                        }
+                    }
+                };
+
+    }
+}
diff --git a/core/java/com/android/ims/internal/uce/uceservice/ImsUceManager.java b/core/java/com/android/ims/internal/uce/uceservice/ImsUceManager.java
index 9aee879f..ef8d018 100644
--- a/core/java/com/android/ims/internal/uce/uceservice/ImsUceManager.java
+++ b/core/java/com/android/ims/internal/uce/uceservice/ImsUceManager.java
@@ -50,6 +50,16 @@
     public static final String ACTION_UCE_SERVICE_DOWN =
                                         "com.android.ims.internal.uce.UCE_SERVICE_DOWN";
 
+    /**
+     * Uce Service status received in IUceListener.setStatus() callback
+     */
+    public static final int UCE_SERVICE_STATUS_FAILURE = 0;
+    /** indicate UI to call Presence/Options API.   */
+    public static final int UCE_SERVICE_STATUS_ON = 1;
+    /** Indicate UI destroy Presence/Options   */
+    public static final int UCE_SERVICE_STATUS_CLOSED = 2;
+    /** Service up and trying to register for network events  */
+    public static final int UCE_SERVICE_STATUS_READY = 3;
 
     /**
      * Gets the instance of UCE Manager
diff --git a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
index 54ea57a..d64b5f1 100644
--- a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
+++ b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
@@ -144,9 +144,6 @@
                 Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE),
                 false, co, UserHandle.USER_ALL);
         mContext.getContentResolver().registerContentObserver(
-                Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_SHORTCUT_ENABLED),
-                false, co, UserHandle.USER_ALL);
-        mContext.getContentResolver().registerContentObserver(
                 Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN),
                 false, co, UserHandle.USER_ALL);
         mContext.getContentResolver().registerContentObserver(
@@ -174,8 +171,6 @@
     public void onSettingsChanged() {
         final boolean hasShortcutTarget = hasShortcutTarget();
         final ContentResolver cr = mContext.getContentResolver();
-        final boolean enabled = Settings.Secure.getIntForUser(
-                cr, Settings.Secure.ACCESSIBILITY_SHORTCUT_ENABLED, 1, mUserId) == 1;
         // Enable the shortcut from the lockscreen by default if the dialog has been shown
         final int dialogAlreadyShown = Settings.Secure.getIntForUser(
                 cr, Settings.Secure.ACCESSIBILITY_SHORTCUT_DIALOG_SHOWN, DialogStaus.NOT_SHOWN,
@@ -183,7 +178,7 @@
         mEnabledOnLockScreen = Settings.Secure.getIntForUser(
                 cr, Settings.Secure.ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN,
                 dialogAlreadyShown, mUserId) == 1;
-        mIsShortcutEnabled = enabled && hasShortcutTarget;
+        mIsShortcutEnabled = hasShortcutTarget;
     }
 
     /**
diff --git a/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java b/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java
index ec2653f..c535163 100644
--- a/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java
+++ b/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java
@@ -115,6 +115,10 @@
         mInjector = injector;
     }
 
+    protected boolean isQuietModeEnabled(UserHandle workProfileUserHandle) {
+        return mInjector.isQuietModeEnabled(workProfileUserHandle);
+    }
+
     void setOnProfileSelectedListener(OnProfileSelectedListener listener) {
         mOnProfileSelectedListener = listener;
     }
@@ -339,23 +343,32 @@
     protected abstract void showNoPersonalToWorkIntentsEmptyState(
             ResolverListAdapter activeListAdapter);
 
+    protected abstract void showNoPersonalAppsAvailableEmptyState(
+            ResolverListAdapter activeListAdapter);
+
+    protected abstract void showNoWorkAppsAvailableEmptyState(
+            ResolverListAdapter activeListAdapter);
+
     protected abstract void showNoWorkToPersonalIntentsEmptyState(
             ResolverListAdapter activeListAdapter);
 
-    void showEmptyState(ResolverListAdapter listAdapter) {
+    void showNoAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
         UserHandle listUserHandle = listAdapter.getUserHandle();
-        if (UserHandle.myUserId() == listUserHandle.getIdentifier()
-                || !hasAppsInOtherProfile(listAdapter)) {
-            if (mWorkProfileUserHandle != null) {
-                DevicePolicyEventLogger.createEvent(
-                        DevicePolicyEnums.RESOLVER_EMPTY_STATE_NO_APPS_RESOLVED)
-                        .setStrings(getMetricsCategory())
-                        .write();
+        if (mWorkProfileUserHandle != null
+                && (UserHandle.myUserId() == listUserHandle.getIdentifier()
+                        || !hasAppsInOtherProfile(listAdapter))) {
+            DevicePolicyEventLogger.createEvent(
+                    DevicePolicyEnums.RESOLVER_EMPTY_STATE_NO_APPS_RESOLVED)
+                    .setStrings(getMetricsCategory())
+                    .setBoolean(/*isPersonalProfile*/ listUserHandle == mPersonalProfileUserHandle)
+                    .write();
+            if (listUserHandle == mPersonalProfileUserHandle) {
+                showNoPersonalAppsAvailableEmptyState(listAdapter);
+            } else {
+                showNoWorkAppsAvailableEmptyState(listAdapter);
             }
-            showEmptyState(listAdapter,
-                    R.drawable.ic_no_apps,
-                    R.string.resolver_no_apps_available,
-                    /* subtitleRes */ 0);
+        } else if (mWorkProfileUserHandle == null) {
+            showConsumerUserNoAppsAvailableEmptyState(listAdapter);
         }
     }
 
@@ -371,12 +384,9 @@
                 userHandleToPageIndex(activeListAdapter.getUserHandle()));
         descriptor.rootView.findViewById(R.id.resolver_list).setVisibility(View.GONE);
         View emptyStateView = descriptor.getEmptyStateView();
-        resetViewVisibilities(emptyStateView);
+        resetViewVisibilitiesForWorkProfileEmptyState(emptyStateView);
         emptyStateView.setVisibility(View.VISIBLE);
 
-        ImageView icon = emptyStateView.findViewById(R.id.resolver_empty_state_icon);
-        icon.setImageResource(iconRes);
-
         TextView title = emptyStateView.findViewById(R.id.resolver_empty_state_title);
         title.setText(titleRes);
 
@@ -388,9 +398,28 @@
             subtitle.setVisibility(View.GONE);
         }
 
+        ImageView icon = emptyStateView.findViewById(R.id.resolver_empty_state_icon);
         Button button = emptyStateView.findViewById(R.id.resolver_empty_state_button);
-        button.setVisibility(buttonOnClick != null ? View.VISIBLE : View.GONE);
-        button.setOnClickListener(buttonOnClick);
+        if (!getContext().getResources().getBoolean(R.bool.resolver_landscape_phone)) {
+            icon.setVisibility(View.VISIBLE);
+            icon.setImageResource(iconRes);
+            button.setVisibility(buttonOnClick != null ? View.VISIBLE : View.GONE);
+            button.setOnClickListener(buttonOnClick);
+        } else {
+            icon.setVisibility(View.GONE);
+            button.setVisibility(View.GONE);
+        }
+
+        activeListAdapter.markTabLoaded();
+    }
+
+    private void showConsumerUserNoAppsAvailableEmptyState(ResolverListAdapter activeListAdapter) {
+        ProfileDescriptor descriptor = getItem(
+                userHandleToPageIndex(activeListAdapter.getUserHandle()));
+        descriptor.rootView.findViewById(R.id.resolver_list).setVisibility(View.GONE);
+        View emptyStateView = descriptor.getEmptyStateView();
+        resetViewVisibilitiesForConsumerUserEmptyState(emptyStateView);
+        emptyStateView.setVisibility(View.VISIBLE);
 
         activeListAdapter.markTabLoaded();
     }
@@ -398,18 +427,27 @@
     private void showSpinner(View emptyStateView) {
         emptyStateView.findViewById(R.id.resolver_empty_state_icon).setVisibility(View.INVISIBLE);
         emptyStateView.findViewById(R.id.resolver_empty_state_title).setVisibility(View.INVISIBLE);
-        emptyStateView.findViewById(R.id.resolver_empty_state_subtitle)
-                .setVisibility(View.INVISIBLE);
         emptyStateView.findViewById(R.id.resolver_empty_state_button).setVisibility(View.INVISIBLE);
         emptyStateView.findViewById(R.id.resolver_empty_state_progress).setVisibility(View.VISIBLE);
+        emptyStateView.findViewById(R.id.empty).setVisibility(View.GONE);
     }
 
-    private void resetViewVisibilities(View emptyStateView) {
+    private void resetViewVisibilitiesForWorkProfileEmptyState(View emptyStateView) {
         emptyStateView.findViewById(R.id.resolver_empty_state_icon).setVisibility(View.VISIBLE);
         emptyStateView.findViewById(R.id.resolver_empty_state_title).setVisibility(View.VISIBLE);
         emptyStateView.findViewById(R.id.resolver_empty_state_subtitle).setVisibility(View.VISIBLE);
         emptyStateView.findViewById(R.id.resolver_empty_state_button).setVisibility(View.INVISIBLE);
         emptyStateView.findViewById(R.id.resolver_empty_state_progress).setVisibility(View.GONE);
+        emptyStateView.findViewById(R.id.empty).setVisibility(View.GONE);
+    }
+
+    private void resetViewVisibilitiesForConsumerUserEmptyState(View emptyStateView) {
+        emptyStateView.findViewById(R.id.resolver_empty_state_icon).setVisibility(View.GONE);
+        emptyStateView.findViewById(R.id.resolver_empty_state_title).setVisibility(View.GONE);
+        emptyStateView.findViewById(R.id.resolver_empty_state_subtitle).setVisibility(View.GONE);
+        emptyStateView.findViewById(R.id.resolver_empty_state_button).setVisibility(View.GONE);
+        emptyStateView.findViewById(R.id.resolver_empty_state_progress).setVisibility(View.GONE);
+        emptyStateView.findViewById(R.id.empty).setVisibility(View.VISIBLE);
     }
 
     protected void showListView(ResolverListAdapter activeListAdapter) {
diff --git a/core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java b/core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java
index c408641..51b1334 100644
--- a/core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java
+++ b/core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java
@@ -169,13 +169,41 @@
     private static List<AccessibilityButtonTarget> getInstalledServiceTargets(
             @NonNull Context context) {
         final List<AccessibilityButtonTarget> targets = new ArrayList<>();
-        targets.addAll(getAccessibilityServiceTargets(context));
-        targets.addAll(getAccessibilityActivityTargets(context));
+        targets.addAll(getAccessibilityFilteredTargets(context));
         targets.addAll(getWhiteListingServiceTargets(context));
 
         return targets;
     }
 
+    private static List<AccessibilityButtonTarget> getAccessibilityFilteredTargets(
+            @NonNull Context context) {
+        final List<AccessibilityButtonTarget> serviceTargets =
+                getAccessibilityServiceTargets(context);
+        final List<AccessibilityButtonTarget> activityTargets =
+                getAccessibilityActivityTargets(context);
+
+        for (AccessibilityButtonTarget activityTarget : activityTargets) {
+            serviceTargets.removeIf(serviceTarget -> {
+                final ComponentName serviceComponentName =
+                        ComponentName.unflattenFromString(serviceTarget.getId());
+                final ComponentName activityComponentName =
+                        ComponentName.unflattenFromString(activityTarget.getId());
+                final boolean isSamePackageName = activityComponentName.getPackageName().equals(
+                        serviceComponentName.getPackageName());
+                final boolean isSameLabel = activityTarget.getLabel().equals(
+                        serviceTarget.getLabel());
+
+                return isSamePackageName && isSameLabel;
+            });
+        }
+
+        final List<AccessibilityButtonTarget> targets = new ArrayList<>();
+        targets.addAll(serviceTargets);
+        targets.addAll(activityTargets);
+
+        return targets;
+    }
+
     private static List<AccessibilityButtonTarget> getAccessibilityServiceTargets(
             @NonNull Context context) {
         final AccessibilityManager ams = context.getSystemService(AccessibilityManager.class);
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java
index 78a0ae0..dca682e 100644
--- a/core/java/com/android/internal/app/ChooserActivity.java
+++ b/core/java/com/android/internal/app/ChooserActivity.java
@@ -2418,13 +2418,20 @@
         if (isLayoutUpdated
                 || mLastNumberOfChildren != recyclerView.getChildCount()) {
             mCurrAvailableWidth = availableWidth;
-            if (isLayoutUpdated
-                    && mChooserMultiProfilePagerAdapter.getCurrentUserHandle() != getUser()) {
-                // This fixes b/150936654 - empty work tab in share sheet when swiping
-                mChooserMultiProfilePagerAdapter.getActiveAdapterView()
-                        .setAdapter(mChooserMultiProfilePagerAdapter.getCurrentRootAdapter());
+            if (isLayoutUpdated) {
+                // It is very important we call setAdapter from here. Otherwise in some cases
+                // the resolver list doesn't get populated, such as b/150922090, b/150918223
+                // and b/150936654
+                recyclerView.setAdapter(gridAdapter);
+                ((GridLayoutManager) recyclerView.getLayoutManager()).setSpanCount(
+                        gridAdapter.getMaxTargetsPerRow());
+            }
+
+            if (mChooserMultiProfilePagerAdapter.getCurrentUserHandle() != getUser()) {
                 return;
-            } else if (mChooserMultiProfilePagerAdapter.getCurrentUserHandle() != getUser()) {
+            }
+
+            if (mLastNumberOfChildren == recyclerView.getChildCount()) {
                 return;
             }
 
@@ -2667,7 +2674,7 @@
      */
     private boolean shouldShowStickyContentPreview() {
         return shouldShowStickyContentPreviewNoOrientationCheck()
-                && getResources().getBoolean(R.bool.sharesheet_show_content_preview);
+                && !getResources().getBoolean(R.bool.resolver_landscape_phone);
     }
 
     private boolean shouldShowStickyContentPreviewNoOrientationCheck() {
diff --git a/core/java/com/android/internal/app/ChooserMultiProfilePagerAdapter.java b/core/java/com/android/internal/app/ChooserMultiProfilePagerAdapter.java
index c6a00f3..57157f7 100644
--- a/core/java/com/android/internal/app/ChooserMultiProfilePagerAdapter.java
+++ b/core/java/com/android/internal/app/ChooserMultiProfilePagerAdapter.java
@@ -175,7 +175,7 @@
             View.OnClickListener listener) {
         showEmptyState(activeListAdapter,
                 R.drawable.ic_work_apps_off,
-                R.string.resolver_turn_on_work_apps_share,
+                R.string.resolver_turn_on_work_apps,
                 /* subtitleRes */ 0,
                 listener);
     }
@@ -185,7 +185,7 @@
         showEmptyState(activeListAdapter,
                 R.drawable.ic_sharing_disabled,
                 R.string.resolver_cant_share_with_work_apps,
-                R.string.resolver_cant_share_cross_profile_explanation);
+                R.string.resolver_cant_share_with_work_apps_explanation);
     }
 
     @Override
@@ -193,7 +193,23 @@
         showEmptyState(activeListAdapter,
                 R.drawable.ic_sharing_disabled,
                 R.string.resolver_cant_share_with_personal_apps,
-                R.string.resolver_cant_share_cross_profile_explanation);
+                R.string.resolver_cant_share_with_personal_apps_explanation);
+    }
+
+    @Override
+    protected void showNoPersonalAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
+        showEmptyState(listAdapter,
+                R.drawable.ic_no_apps,
+                R.string.resolver_no_personal_apps_available_share,
+                /* subtitleRes */ 0);
+    }
+
+    @Override
+    protected void showNoWorkAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
+        showEmptyState(listAdapter,
+                R.drawable.ic_no_apps,
+                R.string.resolver_no_work_apps_available_share,
+                /* subtitleRes */ 0);
     }
 
     class ChooserProfileDescriptor extends ProfileDescriptor {
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
index 8e64b97..2352180 100644
--- a/core/java/com/android/internal/app/ResolverActivity.java
+++ b/core/java/com/android/internal/app/ResolverActivity.java
@@ -752,6 +752,11 @@
             }
             mRegistered = true;
         }
+        if (shouldShowTabs() && mMultiProfilePagerAdapter.isWaitingToEnableWorkProfile()) {
+            if (mMultiProfilePagerAdapter.isQuietModeEnabled(getWorkProfileUserHandle())) {
+                mMultiProfilePagerAdapter.markWorkProfileEnabledBroadcastReceived();
+            }
+        }
         mMultiProfilePagerAdapter.getActiveListAdapter().handlePackagesChanged();
         updateProfileViewButton();
     }
@@ -990,7 +995,7 @@
             return;
         }
         if (shouldShowEmptyState(listAdapter)) {
-            mMultiProfilePagerAdapter.showEmptyState(listAdapter);
+            mMultiProfilePagerAdapter.showNoAppsAvailableEmptyState(listAdapter);
         } else {
             mMultiProfilePagerAdapter.showListView(listAdapter);
         }
diff --git a/core/java/com/android/internal/app/ResolverMultiProfilePagerAdapter.java b/core/java/com/android/internal/app/ResolverMultiProfilePagerAdapter.java
index 578f6ae..b690a18 100644
--- a/core/java/com/android/internal/app/ResolverMultiProfilePagerAdapter.java
+++ b/core/java/com/android/internal/app/ResolverMultiProfilePagerAdapter.java
@@ -167,7 +167,7 @@
             View.OnClickListener listener) {
         showEmptyState(activeListAdapter,
                 R.drawable.ic_work_apps_off,
-                R.string.resolver_turn_on_work_apps_view,
+                R.string.resolver_turn_on_work_apps,
                 /* subtitleRes */ 0,
                 listener);
     }
@@ -188,6 +188,22 @@
                 R.string.resolver_cant_access_personal_apps_explanation);
     }
 
+    @Override
+    protected void showNoPersonalAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
+        showEmptyState(listAdapter,
+                R.drawable.ic_no_apps,
+                R.string.resolver_no_personal_apps_available_resolve,
+                /* subtitleRes */ 0);
+    }
+
+    @Override
+    protected void showNoWorkAppsAvailableEmptyState(ResolverListAdapter listAdapter) {
+        showEmptyState(listAdapter,
+                R.drawable.ic_no_apps,
+                R.string.resolver_no_work_apps_available_resolve,
+                /* subtitleRes */ 0);
+    }
+
     class ResolverProfileDescriptor extends ProfileDescriptor {
         private ResolverListAdapter resolverListAdapter;
         final ListView listView;
diff --git a/core/java/com/android/internal/appwidget/IAppWidgetService.aidl b/core/java/com/android/internal/appwidget/IAppWidgetService.aidl
index 6d1d1ab..9e09cf3 100644
--- a/core/java/com/android/internal/appwidget/IAppWidgetService.aidl
+++ b/core/java/com/android/internal/appwidget/IAppWidgetService.aidl
@@ -77,5 +77,6 @@
     boolean requestPinAppWidget(String packageName, in ComponentName providerComponent,
             in Bundle extras, in IntentSender resultIntent);
     boolean isRequestPinAppWidgetSupported();
+    void noteAppWidgetTapped(int uid, String packageName);
 }
 
diff --git a/core/java/com/android/internal/inputmethod/InputMethodDebug.java b/core/java/com/android/internal/inputmethod/InputMethodDebug.java
index 3876976..a660493 100644
--- a/core/java/com/android/internal/inputmethod/InputMethodDebug.java
+++ b/core/java/com/android/internal/inputmethod/InputMethodDebug.java
@@ -229,7 +229,7 @@
 
     /**
      * Return a fixed size string of the object.
-     * TODO(b/141738570): Take & return with StringBuilder to make more memory efficient.
+     * TODO(b/151575861): Take & return with StringBuilder to make more memory efficient.
      */
     @NonNull
     @AnyThread
diff --git a/core/java/com/android/internal/notification/SystemNotificationChannels.java b/core/java/com/android/internal/notification/SystemNotificationChannels.java
index 1296ddc..41be5c4 100644
--- a/core/java/com/android/internal/notification/SystemNotificationChannels.java
+++ b/core/java/com/android/internal/notification/SystemNotificationChannels.java
@@ -65,7 +65,7 @@
                 VIRTUAL_KEYBOARD,
                 context.getString(R.string.notification_channel_virtual_keyboard),
                 NotificationManager.IMPORTANCE_LOW);
-        keyboard.setBlockableSystem(true);
+        keyboard.setBlockable(true);
         channelsList.add(keyboard);
 
         final NotificationChannel physicalKeyboardChannel = new NotificationChannel(
@@ -74,7 +74,7 @@
                 NotificationManager.IMPORTANCE_DEFAULT);
         physicalKeyboardChannel.setSound(Settings.System.DEFAULT_NOTIFICATION_URI,
                 Notification.AUDIO_ATTRIBUTES_DEFAULT);
-        physicalKeyboardChannel.setBlockableSystem(true);
+        physicalKeyboardChannel.setBlockable(true);
         channelsList.add(physicalKeyboardChannel);
 
         final NotificationChannel security = new NotificationChannel(
@@ -87,7 +87,7 @@
                 CAR_MODE,
                 context.getString(R.string.notification_channel_car_mode),
                 NotificationManager.IMPORTANCE_LOW);
-        car.setBlockableSystem(true);
+        car.setBlockable(true);
         channelsList.add(car);
 
         channelsList.add(newAccountChannel(context));
@@ -96,14 +96,14 @@
                 DEVELOPER,
                 context.getString(R.string.notification_channel_developer),
                 NotificationManager.IMPORTANCE_LOW);
-        developer.setBlockableSystem(true);
+        developer.setBlockable(true);
         channelsList.add(developer);
 
         final NotificationChannel developerImportant = new NotificationChannel(
                 DEVELOPER_IMPORTANT,
                 context.getString(R.string.notification_channel_developer_important),
                 NotificationManager.IMPORTANCE_HIGH);
-        developer.setBlockableSystem(true);
+        developer.setBlockable(true);
         channelsList.add(developerImportant);
 
         final NotificationChannel updates = new NotificationChannel(
@@ -116,21 +116,21 @@
                 NETWORK_STATUS,
                 context.getString(R.string.notification_channel_network_status),
                 NotificationManager.IMPORTANCE_LOW);
-        network.setBlockableSystem(true);
+        network.setBlockable(true);
         channelsList.add(network);
 
         final NotificationChannel networkAlertsChannel = new NotificationChannel(
                 NETWORK_ALERTS,
                 context.getString(R.string.notification_channel_network_alerts),
                 NotificationManager.IMPORTANCE_HIGH);
-        networkAlertsChannel.setBlockableSystem(true);
+        networkAlertsChannel.setBlockable(true);
         channelsList.add(networkAlertsChannel);
 
         final NotificationChannel networkAvailable = new NotificationChannel(
                 NETWORK_AVAILABLE,
                 context.getString(R.string.notification_channel_network_available),
                 NotificationManager.IMPORTANCE_LOW);
-        networkAvailable.setBlockableSystem(true);
+        networkAvailable.setBlockable(true);
         channelsList.add(networkAvailable);
 
         final NotificationChannel vpn = new NotificationChannel(
@@ -167,7 +167,7 @@
                 FOREGROUND_SERVICE,
                 context.getString(R.string.notification_channel_foreground_service),
                 NotificationManager.IMPORTANCE_LOW);
-        foregroundChannel.setBlockableSystem(true);
+        foregroundChannel.setBlockable(true);
         channelsList.add(foregroundChannel);
 
         NotificationChannel heavyWeightChannel = new NotificationChannel(
diff --git a/core/java/com/android/internal/policy/DecorView.java b/core/java/com/android/internal/policy/DecorView.java
index 51b73fc..d2508f36 100644
--- a/core/java/com/android/internal/policy/DecorView.java
+++ b/core/java/com/android/internal/policy/DecorView.java
@@ -78,7 +78,6 @@
 import android.view.Gravity;
 import android.view.InputQueue;
 import android.view.InsetsState;
-import android.view.InsetsController;
 import android.view.InsetsState.InternalInsetsType;
 import android.view.KeyEvent;
 import android.view.KeyboardShortcutGroup;
@@ -1174,6 +1173,12 @@
                     false /* matchVertical */, statusBarNeedsLeftInset, statusBarSideInset,
                     animate && !disallowAnimate,
                     mForceWindowDrawsBarBackgrounds, state);
+
+            if (mHasCaption) {
+                final int captionColor = calculateStatusBarColor();
+                mDecorCaptionView.getCaption().setBackgroundColor(captionColor);
+                updateDecorCaptionShade();
+            }
         }
 
         // When we expand the window with FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS or
@@ -1355,7 +1360,7 @@
                 : state.attributes.isPresent(insetsState, mWindow.getAttributes().flags, force);
         boolean show = state.attributes.isVisible(state.present, color,
                 mWindow.getAttributes().flags, force);
-        boolean showView = show && !isResizing() && size > 0;
+        boolean showView = show && !isResizing() && !mHasCaption && size > 0;
 
         boolean visibilityChanged = false;
         View view = state.view;
@@ -2021,6 +2026,7 @@
             if (getForeground() != null) {
                 drawableChanged();
             }
+            getWindowInsetsController().setCaptionInsetsHeight(getCaptionInsetsHeight());
         }
     }
 
@@ -2094,6 +2100,7 @@
             mDecorCaptionView.onConfigurationChanged(displayWindowDecor);
             enableCaption(displayWindowDecor);
         }
+        getWindowInsetsController().setCaptionInsetsHeight(getCaptionInsetsHeight());
     }
 
     void onResourcesLoaded(LayoutInflater inflater, int layoutResource) {
@@ -2182,11 +2189,11 @@
         inflater = inflater.from(context);
         final DecorCaptionView view = (DecorCaptionView) inflater.inflate(R.layout.decor_caption,
                 null);
-        setDecorCaptionShade(context, view);
+        setDecorCaptionShade(view);
         return view;
     }
 
-    private void setDecorCaptionShade(Context context, DecorCaptionView view) {
+    private void setDecorCaptionShade(DecorCaptionView view) {
         final int shade = mWindow.getDecorCaptionShade();
         switch (shade) {
             case DECOR_CAPTION_SHADE_LIGHT:
@@ -2196,15 +2203,10 @@
                 setDarkDecorCaptionShade(view);
                 break;
             default: {
-                TypedValue value = new TypedValue();
-                context.getTheme().resolveAttribute(R.attr.colorPrimary, value, true);
-                // We invert the shade depending on brightness of the theme. Dark shade for light
-                // theme and vice versa. Thanks to this the buttons should be visible on the
-                // background.
-                if (Color.luminance(value.data) < 0.5) {
-                    setLightDecorCaptionShade(view);
-                } else {
+                if ((getWindowSystemUiVisibility() & SYSTEM_UI_FLAG_LIGHT_STATUS_BAR) != 0) {
                     setDarkDecorCaptionShade(view);
+                } else {
+                    setLightDecorCaptionShade(view);
                 }
                 break;
             }
@@ -2213,7 +2215,7 @@
 
     void updateDecorCaptionShade() {
         if (mDecorCaptionView != null) {
-            setDecorCaptionShade(getContext(), mDecorCaptionView);
+            setDecorCaptionShade(mDecorCaptionView);
         }
     }
 
@@ -2484,6 +2486,15 @@
     }
 
     /**
+     * @hide
+     * @return the height of insets covering the top of window content area.
+     */
+    public int getCaptionInsetsHeight() {
+        if (!mWindow.isOverlayWithDecorCaptionEnabled()) return 0;
+        return getCaptionHeight();
+    }
+
+    /**
      * Converts a DIP measure into physical pixels.
      * @param dip The dip value.
      * @return Returns the number of pixels.
diff --git a/core/java/com/android/internal/telephony/IPhoneStateListener.aidl b/core/java/com/android/internal/telephony/IPhoneStateListener.aidl
index 3d5dfbb..b2c5a99 100644
--- a/core/java/com/android/internal/telephony/IPhoneStateListener.aidl
+++ b/core/java/com/android/internal/telephony/IPhoneStateListener.aidl
@@ -21,7 +21,7 @@
 import android.telephony.CellIdentity;
 import android.telephony.CellInfo;
 import android.telephony.DataConnectionRealTimeInfo;
-import android.telephony.DisplayInfo;
+import android.telephony.TelephonyDisplayInfo;
 import android.telephony.PhoneCapability;
 import android.telephony.PreciseCallState;
 import android.telephony.PreciseDataConnectionState;
@@ -55,7 +55,7 @@
     void onOemHookRawEvent(in byte[] rawData);
     void onCarrierNetworkChange(in boolean active);
     void onUserMobileDataStateChanged(in boolean enabled);
-    void onDisplayInfoChanged(in DisplayInfo displayInfo);
+    void onDisplayInfoChanged(in TelephonyDisplayInfo telephonyDisplayInfo);
     void onPhoneCapabilityChanged(in PhoneCapability capability);
     void onActiveDataSubIdChanged(in int subId);
     void onRadioPowerStateChanged(in int state);
diff --git a/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl b/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl
index 520ffc9..5a04992 100644
--- a/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl
+++ b/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl
@@ -23,7 +23,7 @@
 import android.telephony.CallQuality;
 import android.telephony.CellIdentity;
 import android.telephony.CellInfo;
-import android.telephony.DisplayInfo;
+import android.telephony.TelephonyDisplayInfo;
 import android.telephony.ims.ImsReasonInfo;
 import android.telephony.PhoneCapability;
 import android.telephony.PhysicalChannelConfig;
@@ -88,7 +88,7 @@
     void notifyOpportunisticSubscriptionInfoChanged();
     void notifyCarrierNetworkChange(in boolean active);
     void notifyUserMobileDataStateChangedForPhoneId(in int phoneId, in int subId, in boolean state);
-    void notifyDisplayInfoChanged(int slotIndex, int subId, in DisplayInfo displayInfo);
+    void notifyDisplayInfoChanged(int slotIndex, int subId, in TelephonyDisplayInfo telephonyDisplayInfo);
     void notifyPhoneCapabilityChanged(in PhoneCapability capability);
     void notifyActiveDataSubIdChanged(int activeDataSubId);
     void notifyRadioPowerStateChanged(in int phoneId, in int subId, in int state);
diff --git a/core/java/com/android/internal/view/menu/MenuPopupHelper.java b/core/java/com/android/internal/view/menu/MenuPopupHelper.java
index 0aeaa47..980943e 100644
--- a/core/java/com/android/internal/view/menu/MenuPopupHelper.java
+++ b/core/java/com/android/internal/view/menu/MenuPopupHelper.java
@@ -22,14 +22,10 @@
 import android.annotation.StyleRes;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.content.Context;
-import android.graphics.Point;
 import android.graphics.Rect;
-import android.util.Size;
-import android.view.Display;
 import android.view.Gravity;
 import android.view.View;
 import android.view.WindowManager;
-import android.view.WindowMetrics;
 import android.widget.PopupWindow.OnDismissListener;
 
 import com.android.internal.view.menu.MenuPresenter.Callback;
@@ -227,9 +223,9 @@
     @NonNull
     private MenuPopup createPopup() {
         final WindowManager windowManager = mContext.getSystemService(WindowManager.class);
-        final Size maxWindowSize = windowManager.getMaximumWindowMetrics().getSize();
+        final Rect maxWindowBounds = windowManager.getMaximumWindowMetrics().getBounds();
 
-        final int smallestWidth = Math.min(maxWindowSize.getWidth(), maxWindowSize.getHeight());
+        final int smallestWidth = Math.min(maxWindowBounds.width(), maxWindowBounds.height());
         final int minSmallestWidthCascading = mContext.getResources().getDimensionPixelSize(
             com.android.internal.R.dimen.cascading_menus_min_smallest_width);
         final boolean enableCascadingSubmenus = smallestWidth >= minSmallestWidthCascading;
diff --git a/core/java/com/android/internal/widget/ConversationLayout.java b/core/java/com/android/internal/widget/ConversationLayout.java
index 73da600..bedf55d 100644
--- a/core/java/com/android/internal/widget/ConversationLayout.java
+++ b/core/java/com/android/internal/widget/ConversationLayout.java
@@ -16,6 +16,9 @@
 
 package com.android.internal.widget;
 
+import static com.android.internal.widget.MessagingGroup.IMAGE_DISPLAY_LOCATION_EXTERNAL;
+import static com.android.internal.widget.MessagingGroup.IMAGE_DISPLAY_LOCATION_INLINE;
+
 import android.annotation.AttrRes;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -35,6 +38,7 @@
 import android.os.Parcelable;
 import android.text.TextUtils;
 import android.util.ArrayMap;
+import android.util.ArraySet;
 import android.util.AttributeSet;
 import android.util.DisplayMetrics;
 import android.view.Gravity;
@@ -46,6 +50,7 @@
 import android.view.animation.PathInterpolator;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.RemoteViews;
 import android.widget.TextView;
 
@@ -66,7 +71,6 @@
 public class ConversationLayout extends FrameLayout
         implements ImageMessageConsumer, IMessagingLayout {
 
-    public static final boolean CONVERSATION_LAYOUT_ENABLED = true;
     private static final float COLOR_SHIFT_AMOUNT = 60;
     /**
      *  Pattren for filter some ingonable characters.
@@ -89,7 +93,6 @@
     private MessagingLinearLayout mMessagingLinearLayout;
     private boolean mShowHistoricMessages;
     private ArrayList<MessagingGroup> mGroups = new ArrayList<>();
-    private TextView mTitleView;
     private int mLayoutColor;
     private int mSenderTextColor;
     private int mMessageTextColor;
@@ -104,19 +107,27 @@
     private boolean mIsCollapsed;
     private ImageResolver mImageResolver;
     private ImageView mConversationIcon;
+    private View mConversationIconContainer;
+    private int mConversationIconTopPadding;
+    private int mConversationIconTopPaddingExpandedGroup;
+    private int mConversationIconTopPaddingNoAppName;
+    private int mExpandedGroupMessagePaddingNoAppName;
     private TextView mConversationText;
     private View mConversationIconBadge;
+    private ImageView mConversationIconBadgeBg;
     private Icon mLargeIcon;
     private View mExpandButtonContainer;
     private ViewGroup mExpandButtonAndContentContainer;
     private NotificationExpandButton mExpandButton;
+    private MessagingLinearLayout mImageMessageContainer;
     private int mExpandButtonExpandedTopMargin;
     private int mBadgedSideMargins;
-    private int mIconSizeBadged;
-    private int mIconSizeCentered;
+    private int mConversationAvatarSize;
+    private int mConversationAvatarSizeExpanded;
     private CachingIconView mIcon;
-    private int mExpandedGroupTopMargin;
-    private int mExpandButtonExpandedSize;
+    private View mImportanceRingView;
+    private int mExpandedGroupSideMargin;
+    private int mExpandedGroupSideMarginFacePile;
     private View mConversationFacePile;
     private int mNotificationBackgroundColor;
     private CharSequence mFallbackChatName;
@@ -127,6 +138,13 @@
     private View mContentContainer;
     private boolean mExpandable = true;
     private int mContentMarginEnd;
+    private Rect mMessagingClipRect;
+    private ObservableTextView mAppName;
+    private boolean mAppNameGone;
+    private int mFacePileAvatarSize;
+    private int mFacePileAvatarSizeExpandedGroup;
+    private int mFacePileProtectionWidth;
+    private int mFacePileProtectionWidthExpanded;
 
     public ConversationLayout(@NonNull Context context) {
         super(context);
@@ -151,19 +169,22 @@
         super.onFinishInflate();
         mMessagingLinearLayout = findViewById(R.id.notification_messaging);
         mMessagingLinearLayout.setMessagingLayout(this);
+        mImageMessageContainer = findViewById(R.id.conversation_image_message_container);
         // We still want to clip, but only on the top, since views can temporarily out of bounds
         // during transitions.
         DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
         int size = Math.max(displayMetrics.widthPixels, displayMetrics.heightPixels);
-        Rect rect = new Rect(0, 0, size, size);
-        mMessagingLinearLayout.setClipBounds(rect);
-        mTitleView = findViewById(R.id.title);
+        mMessagingClipRect = new Rect(0, 0, size, size);
+        setMessagingClippingDisabled(false);
         mAvatarSize = getResources().getDimensionPixelSize(R.dimen.messaging_avatar_size);
         mTextPaint.setTextAlign(Paint.Align.CENTER);
         mTextPaint.setAntiAlias(true);
         mConversationIcon = findViewById(R.id.conversation_icon);
+        mConversationIconContainer = findViewById(R.id.conversation_icon_container);
         mIcon = findViewById(R.id.icon);
+        mImportanceRingView = findViewById(R.id.conversation_icon_badge_ring);
         mConversationIconBadge = findViewById(R.id.conversation_icon_badge);
+        mConversationIconBadgeBg = findViewById(R.id.conversation_icon_badge_bg);
         mIcon.setOnVisibilityChangedListener((visibility) -> {
             // Always keep the badge visibility in sync with the icon. This is necessary in cases
             // Where the icon is being hidden externally like in group children.
@@ -177,25 +198,46 @@
         mExpandButton = findViewById(R.id.expand_button);
         mExpandButtonExpandedTopMargin = getResources().getDimensionPixelSize(
                 R.dimen.conversation_expand_button_top_margin_expanded);
-        mExpandButtonExpandedSize = getResources().getDimensionPixelSize(
-                R.dimen.conversation_expand_button_expanded_size);
         mNotificationHeaderExpandedPadding = getResources().getDimensionPixelSize(
                 R.dimen.conversation_header_expanded_padding_end);
         mContentMarginEnd = getResources().getDimensionPixelSize(
                 R.dimen.notification_content_margin_end);
         mBadgedSideMargins = getResources().getDimensionPixelSize(
                 R.dimen.conversation_badge_side_margin);
-        mIconSizeBadged = getResources().getDimensionPixelSize(
-                R.dimen.conversation_icon_size_badged);
-        mIconSizeCentered = getResources().getDimensionPixelSize(
-                R.dimen.conversation_icon_size_centered);
-        mExpandedGroupTopMargin = getResources().getDimensionPixelSize(
-                R.dimen.conversation_icon_margin_top_centered);
+        mConversationAvatarSize = getResources().getDimensionPixelSize(
+                R.dimen.conversation_avatar_size);
+        mConversationAvatarSizeExpanded = getResources().getDimensionPixelSize(
+                R.dimen.conversation_avatar_size_group_expanded);
+        mConversationIconTopPadding = getResources().getDimensionPixelSize(
+                R.dimen.conversation_icon_container_top_padding);
+        mConversationIconTopPaddingExpandedGroup = getResources().getDimensionPixelSize(
+                R.dimen.conversation_icon_container_top_padding_small_avatar);
+        mConversationIconTopPaddingNoAppName = getResources().getDimensionPixelSize(
+                R.dimen.conversation_icon_container_top_padding_no_app_name);
+        mExpandedGroupMessagePaddingNoAppName = getResources().getDimensionPixelSize(
+                R.dimen.expanded_group_conversation_message_padding_without_app_name);
+        mExpandedGroupSideMargin = getResources().getDimensionPixelSize(
+                R.dimen.conversation_badge_side_margin_group_expanded);
+        mExpandedGroupSideMarginFacePile = getResources().getDimensionPixelSize(
+                R.dimen.conversation_badge_side_margin_group_expanded_face_pile);
         mConversationFacePile = findViewById(R.id.conversation_face_pile);
+        mFacePileAvatarSize = getResources().getDimensionPixelSize(
+                R.dimen.conversation_face_pile_avatar_size);
+        mFacePileAvatarSizeExpandedGroup = getResources().getDimensionPixelSize(
+                R.dimen.conversation_face_pile_avatar_size_group_expanded);
+        mFacePileProtectionWidth = getResources().getDimensionPixelSize(
+                R.dimen.conversation_face_pile_protection_width);
+        mFacePileProtectionWidthExpanded = getResources().getDimensionPixelSize(
+                R.dimen.conversation_face_pile_protection_width_expanded);
         mFallbackChatName = getResources().getString(
                 R.string.conversation_title_fallback_one_to_one);
         mFallbackGroupChatName = getResources().getString(
                 R.string.conversation_title_fallback_group_chat);
+        mAppName = findViewById(R.id.app_name_text);
+        mAppNameGone = mAppName.getVisibility() == GONE;
+        mAppName.setOnVisibilityChangedListener((visibility) -> {
+            onAppNameVisibilityChanged();
+        });
     }
 
     @RemotableViewMethod
@@ -209,6 +251,14 @@
     }
 
     /**
+     * Sets this conversation as "important", adding some additional UI treatment.
+     */
+    @RemotableViewMethod
+    public void setIsImportantConversation(boolean isImportantConversation) {
+        mImportanceRingView.setVisibility(isImportantConversation ? VISIBLE : GONE);
+    }
+
+    /**
      * Set this layout to show the collapsed representation.
      *
      * @param isCollapsed is it collapsed
@@ -218,7 +268,7 @@
         mIsCollapsed = isCollapsed;
         mMessagingLinearLayout.setMaxDisplayedLines(isCollapsed ? 1 : Integer.MAX_VALUE);
         updateExpandButton();
-        updateContentPaddings();
+        updateContentEndPaddings();
     }
 
     @RemotableViewMethod
@@ -305,14 +355,12 @@
         updateTitleAndNamesDisplay();
 
         updateConversationLayout();
-
     }
 
     /**
      * Update the layout according to the data provided (i.e mIsOneToOne, expanded etc);
      */
     private void updateConversationLayout() {
-        // TODO: resolve this from shortcuts
         // Set avatar and name
         CharSequence conversationText = mConversationTitle;
         // TODO: display the secondary text somewhere
@@ -340,21 +388,17 @@
                 }
             }
         } else {
-            if (mIsCollapsed) {
-                if (mLargeIcon != null) {
-                    mConversationIcon.setVisibility(VISIBLE);
-                    mConversationFacePile.setVisibility(GONE);
-                    mConversationIcon.setImageIcon(mLargeIcon);
-                } else {
-                    mConversationIcon.setVisibility(GONE);
-                    // This will also inflate it!
-                    mConversationFacePile.setVisibility(VISIBLE);
-                    mConversationFacePile = findViewById(R.id.conversation_face_pile);
-                    bindFacePile();
-                }
-            } else {
+            if (mLargeIcon != null) {
+                mConversationIcon.setVisibility(VISIBLE);
                 mConversationFacePile.setVisibility(GONE);
+                mConversationIcon.setImageIcon(mLargeIcon);
+            } else {
                 mConversationIcon.setVisibility(GONE);
+                // This will also inflate it!
+                mConversationFacePile.setVisibility(VISIBLE);
+                // rebind the value to the inflated view instead of the stub
+                mConversationFacePile = findViewById(R.id.conversation_face_pile);
+                bindFacePile();
             }
         }
         if (TextUtils.isEmpty(conversationText)) {
@@ -370,12 +414,49 @@
                     && TextUtils.equals(conversationText, messageSender);
             messagingGroup.setCanHideSenderIfFirst(canHide);
         }
+        updateAppName();
         updateIconPositionAndSize();
+        updateImageMessages();
+        updatePaddingsBasedOnContentAvailability();
+    }
+
+    private void updateImageMessages() {
+        boolean displayExternalImage = false;
+        ArraySet<View> newMessages = new ArraySet<>();
+        if (mIsCollapsed) {
+
+            // When collapsed, we're displaying all image messages in a dedicated container
+            // on the right of the layout instead of inline. Let's add all isolated images there
+            int imageIndex = 0;
+            for (int i = 0; i < mGroups.size(); i++) {
+                MessagingGroup messagingGroup = mGroups.get(i);
+                MessagingImageMessage isolatedMessage = messagingGroup.getIsolatedMessage();
+                if (isolatedMessage != null) {
+                    newMessages.add(isolatedMessage.getView());
+                    displayExternalImage = true;
+                    if (imageIndex
+                            != mImageMessageContainer.indexOfChild(isolatedMessage.getView())) {
+                        mImageMessageContainer.removeView(isolatedMessage.getView());
+                        mImageMessageContainer.addView(isolatedMessage.getView(), imageIndex);
+                    }
+                    imageIndex++;
+                }
+            }
+        }
+        // Remove all messages that don't belong into the image layout
+        for (int i = 0; i < mImageMessageContainer.getChildCount(); i++) {
+            View child = mImageMessageContainer.getChildAt(i);
+            if (!newMessages.contains(child)) {
+                mImageMessageContainer.removeView(child);
+                i--;
+            }
+        }
+        mImageMessageContainer.setVisibility(displayExternalImage ? VISIBLE : GONE);
     }
 
     private void bindFacePile() {
         // Let's bind the face pile
-        View bottomBackground = mConversationFacePile.findViewById(
+        ImageView bottomBackground = mConversationFacePile.findViewById(
                 R.id.conversation_face_pile_bottom_background);
         applyNotificationBackgroundColor(bottomBackground);
         ImageView bottomView = mConversationFacePile.findViewById(
@@ -413,38 +494,107 @@
             secondLastIcon = createAvatarSymbol("", "", mLayoutColor);
         }
         topView.setImageIcon(secondLastIcon);
+
+        int conversationAvatarSize;
+        int facepileAvatarSize;
+        int facePileBackgroundSize;
+        if (mIsCollapsed) {
+            conversationAvatarSize = mConversationAvatarSize;
+            facepileAvatarSize = mFacePileAvatarSize;
+            facePileBackgroundSize = facepileAvatarSize + 2 * mFacePileProtectionWidth;
+        } else {
+            conversationAvatarSize = mConversationAvatarSizeExpanded;
+            facepileAvatarSize = mFacePileAvatarSizeExpandedGroup;
+            facePileBackgroundSize = facepileAvatarSize + 2 * mFacePileProtectionWidthExpanded;
+        }
+        LayoutParams layoutParams = (LayoutParams) mConversationIcon.getLayoutParams();
+        layoutParams.width = conversationAvatarSize;
+        layoutParams.height = conversationAvatarSize;
+        mConversationFacePile.setLayoutParams(layoutParams);
+
+        layoutParams = (LayoutParams) bottomView.getLayoutParams();
+        layoutParams.width = facepileAvatarSize;
+        layoutParams.height = facepileAvatarSize;
+        bottomView.setLayoutParams(layoutParams);
+
+        layoutParams = (LayoutParams) topView.getLayoutParams();
+        layoutParams.width = facepileAvatarSize;
+        layoutParams.height = facepileAvatarSize;
+        topView.setLayoutParams(layoutParams);
+
+        layoutParams = (LayoutParams) bottomBackground.getLayoutParams();
+        layoutParams.width = facePileBackgroundSize;
+        layoutParams.height = facePileBackgroundSize;
+        bottomBackground.setLayoutParams(layoutParams);
+    }
+
+    private void updateAppName() {
+        mAppName.setVisibility(mIsCollapsed ? GONE : VISIBLE);
+    }
+
+    public boolean shouldHideAppName() {
+        return mIsCollapsed;
     }
 
     /**
      * update the icon position and sizing
      */
     private void updateIconPositionAndSize() {
-        int gravity;
-        int marginStart;
-        int marginTop;
-        int iconSize;
+        int sidemargin;
+        int conversationAvatarSize;
         if (mIsOneToOne || mIsCollapsed) {
-            // Baded format
-            gravity = Gravity.LEFT;
-            marginStart = mBadgedSideMargins;
-            marginTop = mBadgedSideMargins;
-            iconSize = mIconSizeBadged;
+            sidemargin = mBadgedSideMargins;
+            conversationAvatarSize = mConversationAvatarSize;
         } else {
-            gravity = Gravity.CENTER_HORIZONTAL;
-            marginStart = 0;
-            marginTop = mExpandedGroupTopMargin;
-            iconSize = mIconSizeCentered;
+            sidemargin = mConversationFacePile.getVisibility() == VISIBLE
+                    ? mExpandedGroupSideMarginFacePile
+                    : mExpandedGroupSideMargin;
+            conversationAvatarSize = mConversationAvatarSizeExpanded;
         }
         LayoutParams layoutParams =
                 (LayoutParams) mConversationIconBadge.getLayoutParams();
-        layoutParams.gravity = gravity;
-        layoutParams.topMargin = marginTop;
-        layoutParams.setMarginStart(marginStart);
+        layoutParams.topMargin = sidemargin;
+        layoutParams.setMarginStart(sidemargin);
         mConversationIconBadge.setLayoutParams(layoutParams);
-        ViewGroup.LayoutParams iconParams = mIcon.getLayoutParams();
-        iconParams.width = iconSize;
-        iconParams.height = iconSize;
-        mIcon.setLayoutParams(iconParams);
+
+        if (mConversationIcon.getVisibility() == VISIBLE) {
+            layoutParams = (LayoutParams) mConversationIcon.getLayoutParams();
+            layoutParams.width = conversationAvatarSize;
+            layoutParams.height = conversationAvatarSize;
+            mConversationIcon.setLayoutParams(layoutParams);
+        }
+    }
+
+    private void updatePaddingsBasedOnContentAvailability() {
+        int containerTopPadding;
+        int messagingPadding = 0;
+        if (mIsOneToOne || mIsCollapsed) {
+            containerTopPadding = mConversationIconTopPadding;
+        } else {
+            if (mAppName.getVisibility() != GONE) {
+                // The app name is visible, let's center outselves in the two lines
+                containerTopPadding = mConversationIconTopPaddingExpandedGroup;
+            } else {
+                // App name is gone, let's center ourselves int he one remaining line
+                containerTopPadding = mConversationIconTopPaddingNoAppName;
+
+                // The app name is gone and we're a group, we'll need to add some extra padding
+                // to the messages, since otherwise it will overlap with the group
+                messagingPadding = mExpandedGroupMessagePaddingNoAppName;
+            }
+        }
+
+        mConversationIconContainer.setPaddingRelative(
+                mConversationIconContainer.getPaddingStart(),
+                containerTopPadding,
+                mConversationIconContainer.getPaddingEnd(),
+                mConversationIconContainer.getPaddingBottom());
+
+        mMessagingLinearLayout.setPaddingRelative(
+                mMessagingLinearLayout.getPaddingStart(),
+                messagingPadding,
+                mMessagingLinearLayout.getPaddingEnd(),
+                mMessagingLinearLayout.getPaddingBottom());
     }
 
     @RemotableViewMethod
@@ -622,11 +772,11 @@
     @RemotableViewMethod
     public void setNotificationBackgroundColor(int color) {
         mNotificationBackgroundColor = color;
-        applyNotificationBackgroundColor(mConversationIconBadge);
+        applyNotificationBackgroundColor(mConversationIconBadgeBg);
     }
 
-    private void applyNotificationBackgroundColor(View view) {
-        view.setBackgroundTintList(ColorStateList.valueOf(mNotificationBackgroundColor));
+    private void applyNotificationBackgroundColor(ImageView view) {
+        view.setImageTintList(ColorStateList.valueOf(mNotificationBackgroundColor));
     }
 
     @RemotableViewMethod
@@ -663,7 +813,9 @@
                 newGroup = MessagingGroup.createGroup(mMessagingLinearLayout);
                 mAddedGroups.add(newGroup);
             }
-            newGroup.setDisplayImagesAtEnd(mIsCollapsed);
+            newGroup.setImageDisplayLocation(mIsCollapsed
+                    ? IMAGE_DISPLAY_LOCATION_EXTERNAL
+                    : IMAGE_DISPLAY_LOCATION_INLINE);
             newGroup.setIsInConversation(true);
             newGroup.setLayoutColor(mLayoutColor);
             newGroup.setTextColors(mSenderTextColor, mMessageTextColor);
@@ -818,6 +970,10 @@
         return mMessagingLinearLayout;
     }
 
+    public @NonNull ViewGroup getImageMessageContainer() {
+        return mImageMessageContainer;
+    }
+
     public ArrayList<MessagingGroup> getMessagingGroups() {
         return mGroups;
     }
@@ -828,20 +984,17 @@
         int gravity;
         int topMargin = 0;
         ViewGroup newContainer;
-        int newContainerHeight;
         if (mIsCollapsed) {
             drawableId = R.drawable.ic_expand_notification;
             contentDescriptionId = R.string.expand_button_content_description_collapsed;
             gravity = Gravity.CENTER;
             newContainer = mExpandButtonAndContentContainer;
-            newContainerHeight = LayoutParams.MATCH_PARENT;
         } else {
             drawableId = R.drawable.ic_collapse_notification;
             contentDescriptionId = R.string.expand_button_content_description_expanded;
             gravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP;
             topMargin = mExpandButtonExpandedTopMargin;
             newContainer = this;
-            newContainerHeight = mExpandButtonExpandedSize;
         }
         mExpandButton.setImageDrawable(getContext().getDrawable(drawableId));
         mExpandButton.setColorFilter(mExpandButton.getOriginalNotificationColor());
@@ -851,14 +1004,11 @@
         if (newContainer != mExpandButtonContainer.getParent()) {
             ((ViewGroup) mExpandButtonContainer.getParent()).removeView(mExpandButtonContainer);
             newContainer.addView(mExpandButtonContainer);
-            MarginLayoutParams layoutParams =
-                    (MarginLayoutParams) mExpandButtonContainer.getLayoutParams();
-            layoutParams.height = newContainerHeight;
-            mExpandButtonContainer.setLayoutParams(layoutParams);
         }
 
         // update if the expand button is centered
-        FrameLayout.LayoutParams layoutParams = (LayoutParams) mExpandButton.getLayoutParams();
+        LinearLayout.LayoutParams layoutParams =
+                (LinearLayout.LayoutParams) mExpandButton.getLayoutParams();
         layoutParams.gravity = gravity;
         layoutParams.topMargin = topMargin;
         mExpandButton.setLayoutParams(layoutParams);
@@ -866,7 +1016,7 @@
         mExpandButtonContainer.setContentDescription(mContext.getText(contentDescriptionId));
     }
 
-    private void updateContentPaddings() {
+    private void updateContentEndPaddings() {
 
         // Let's make sure the conversation header can't run into the expand button when we're
         // collapsed and update the paddings of the content
@@ -895,6 +1045,14 @@
                 mContentContainer.getPaddingBottom());
     }
 
+    private void onAppNameVisibilityChanged() {
+        boolean appNameGone = mAppName.getVisibility() == GONE;
+        if (appNameGone != mAppNameGone) {
+            mAppNameGone = appNameGone;
+            updatePaddingsBasedOnContentAvailability();
+        }
+    }
+
     public void updateExpandability(boolean expandable, @Nullable OnClickListener onClickListener) {
         mExpandable = expandable;
         if (expandable) {
@@ -904,6 +1062,11 @@
             // TODO: handle content paddings to end of layout
             mExpandButtonContainer.setVisibility(GONE);
         }
-        updateContentPaddings();
+        updateContentEndPaddings();
+    }
+
+    @Override
+    public void setMessagingClippingDisabled(boolean clippingDisabled) {
+        mMessagingLinearLayout.setClipBounds(clippingDisabled ? null : mMessagingClipRect);
     }
 }
diff --git a/core/java/com/android/internal/widget/DecorCaptionView.java b/core/java/com/android/internal/widget/DecorCaptionView.java
index b5d787c2..7a01024 100644
--- a/core/java/com/android/internal/widget/DecorCaptionView.java
+++ b/core/java/com/android/internal/widget/DecorCaptionView.java
@@ -17,7 +17,6 @@
 package com.android.internal.widget;
 
 import android.content.Context;
-import android.graphics.Color;
 import android.graphics.Rect;
 import android.os.RemoteException;
 import android.util.AttributeSet;
@@ -53,8 +52,7 @@
  * <li>..</li>
  * </ul>
  *
- * Although this ViewGroup has only two direct sub-Views, its behavior is more complex due to
- * overlaying caption on the content and drawing.
+ * Here describe the behavior of overlaying caption on the content and drawing.
  *
  * First, no matter where the content View gets added, it will always be the first child and the
  * caption will be the second. This way the caption will always be drawn on top of the content when
@@ -66,11 +64,9 @@
  * <li>DecorCaptionView.onInterceptTouchEvent() will try intercepting the touch events if the
  * down action is performed on top close or maximize buttons; the reason for that is we want these
  * buttons to always work.</li>
- * <li>The content View will receive the touch event. Mind that content is actually underneath the
- * caption, so we need to introduce our own dispatch ordering. We achieve this by overriding
- * {@link #buildTouchDispatchChildList()}.</li>
- * <li>If the touch event is not consumed by the content View, it will go to the caption View
- * and the dragging logic will be executed.</li>
+ * <li>The caption view will try to consume the event to apply the dragging logic.</li>
+ * <li>If the touch event is not consumed by the caption, the content View will receive the touch
+ * event</li>
  * </ul>
  */
 public class DecorCaptionView extends ViewGroup implements View.OnTouchListener,
@@ -137,11 +133,6 @@
         mOwner = owner;
         mShow = show;
         mOverlayWithAppContent = owner.isOverlayWithDecorCaptionEnabled();
-        if (mOverlayWithAppContent) {
-            // The caption is covering the content, so we make its background transparent to make
-            // the content visible.
-            mCaption.setBackgroundColor(Color.TRANSPARENT);
-        }
         updateCaptionVisibility();
         // By changing the outline provider to BOUNDS, the window can remove its
         // background without removing the shadow.
@@ -236,18 +227,6 @@
     }
 
     @Override
-    public ArrayList<View> buildTouchDispatchChildList() {
-        mTouchDispatchList.ensureCapacity(3);
-        if (mCaption != null) {
-            mTouchDispatchList.add(mCaption);
-        }
-        if (mContent != null) {
-            mTouchDispatchList.add(mContent);
-        }
-        return mTouchDispatchList;
-    }
-
-    @Override
     public boolean shouldDelayChildPressedState() {
         return false;
     }
diff --git a/core/java/com/android/internal/widget/IMessagingLayout.java b/core/java/com/android/internal/widget/IMessagingLayout.java
index 149d056..b72c081 100644
--- a/core/java/com/android/internal/widget/IMessagingLayout.java
+++ b/core/java/com/android/internal/widget/IMessagingLayout.java
@@ -39,4 +39,9 @@
      * @return the list of messaging groups
      */
     ArrayList<MessagingGroup> getMessagingGroups();
+
+    /**
+     * Disable the clipping of the messaging container.
+     */
+    void setMessagingClippingDisabled(boolean clippingDisabled);
 }
diff --git a/core/java/com/android/internal/widget/MessagingGroup.java b/core/java/com/android/internal/widget/MessagingGroup.java
index c68da97..53272f7 100644
--- a/core/java/com/android/internal/widget/MessagingGroup.java
+++ b/core/java/com/android/internal/widget/MessagingGroup.java
@@ -17,6 +17,7 @@
 package com.android.internal.widget;
 
 import android.annotation.AttrRes;
+import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.StyleRes;
@@ -44,6 +45,8 @@
 
 import com.android.internal.R;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -54,6 +57,23 @@
 public class MessagingGroup extends LinearLayout implements MessagingLinearLayout.MessagingChild {
     private static Pools.SimplePool<MessagingGroup> sInstancePool
             = new Pools.SynchronizedPool<>(10);
+
+    /**
+     * Images are displayed inline.
+     */
+    public static final int IMAGE_DISPLAY_LOCATION_INLINE = 0;
+
+    /**
+     * Images are displayed at the end of the group.
+     */
+    public static final int IMAGE_DISPLAY_LOCATION_AT_END = 1;
+
+    /**
+     *     Images are displayed externally.
+     */
+    public static final int IMAGE_DISPLAY_LOCATION_EXTERNAL = 2;
+
+
     private MessagingLinearLayout mMessageContainer;
     ImageFloatingTextView mSenderView;
     private ImageView mAvatarView;
@@ -70,7 +90,7 @@
     private boolean mIsHidingAnimated;
     private boolean mNeedsGeneratedAvatar;
     private Person mSender;
-    private boolean mImagesAtEnd;
+    private @ImageDisplayLocation int mImageDisplayLocation;
     private ViewGroup mImageContainer;
     private MessagingImageMessage mIsolatedMessage;
     private boolean mClippingDisabled;
@@ -476,7 +496,7 @@
                 mAddedMessages.add(message);
             }
             boolean isImage = message instanceof MessagingImageMessage;
-            if (mImagesAtEnd && isImage) {
+            if (mImageDisplayLocation != IMAGE_DISPLAY_LOCATION_INLINE && isImage) {
                 isolatedMessage = (MessagingImageMessage) message;
             } else {
                 if (removeFromParentIfDifferent(message, mMessageContainer)) {
@@ -500,9 +520,12 @@
             }
         }
         if (isolatedMessage != null) {
-            if (removeFromParentIfDifferent(isolatedMessage, mImageContainer)) {
+            if (mImageDisplayLocation == IMAGE_DISPLAY_LOCATION_AT_END
+                    && removeFromParentIfDifferent(isolatedMessage, mImageContainer)) {
                 mImageContainer.removeAllViews();
                 mImageContainer.addView(isolatedMessage.getView());
+            } else if (mImageDisplayLocation == IMAGE_DISPLAY_LOCATION_EXTERNAL) {
+                mImageContainer.removeAllViews();
             }
             isolatedMessage.setIsolated(true);
         } else if (mIsolatedMessage != null) {
@@ -515,7 +538,8 @@
     }
 
     private void updateImageContainerVisibility() {
-        mImageContainer.setVisibility(mIsolatedMessage != null && mImagesAtEnd
+        mImageContainer.setVisibility(mIsolatedMessage != null
+                && mImageDisplayLocation == IMAGE_DISPLAY_LOCATION_AT_END
                 ? View.VISIBLE : View.GONE);
     }
 
@@ -620,9 +644,9 @@
         mClippingDisabled = disabled;
     }
 
-    public void setDisplayImagesAtEnd(boolean atEnd) {
-        if (mImagesAtEnd != atEnd) {
-            mImagesAtEnd = atEnd;
+    public void setImageDisplayLocation(@ImageDisplayLocation int displayLocation) {
+        if (mImageDisplayLocation != displayLocation) {
+            mImageDisplayLocation = displayLocation;
             updateImageContainerVisibility();
         }
     }
@@ -670,4 +694,13 @@
             mMessagingIconContainer.setLayoutParams(layoutParams);
         }
     }
+
+    @IntDef(prefix = {"IMAGE_DISPLAY_LOCATION_"}, value = {
+            IMAGE_DISPLAY_LOCATION_INLINE,
+            IMAGE_DISPLAY_LOCATION_AT_END,
+            IMAGE_DISPLAY_LOCATION_EXTERNAL
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    private @interface ImageDisplayLocation {
+    }
 }
diff --git a/core/java/com/android/internal/widget/MessagingImageMessage.java b/core/java/com/android/internal/widget/MessagingImageMessage.java
index c243f3b..27689d4 100644
--- a/core/java/com/android/internal/widget/MessagingImageMessage.java
+++ b/core/java/com/android/internal/widget/MessagingImageMessage.java
@@ -149,10 +149,16 @@
     protected void onDraw(Canvas canvas) {
         canvas.save();
         canvas.clipPath(getRoundedRectPath());
-        int width = (int) Math.max(getActualWidth(), getActualHeight() * mAspectRatio);
-        int height = (int) (width / mAspectRatio);
+        // Calculate the right sizing ensuring that the image is nicely centered in the layout
+        // during transitions
+        int width = (int) Math.max((Math.min(getHeight(), getActualHeight()) * mAspectRatio),
+                getActualWidth());
+        int height = (int) Math.max((Math.min(getWidth(), getActualWidth()) / mAspectRatio),
+                getActualHeight());
+        height = (int) Math.max(height, width / mAspectRatio);
         int left = (int) ((getActualWidth() - width) / 2.0f);
-        mDrawable.setBounds(left, 0, left + width, height);
+        int top = (int) ((getActualHeight() - height) / 2.0f);
+        mDrawable.setBounds(left, top, left + width, top + height);
         mDrawable.draw(canvas);
         canvas.restore();
     }
@@ -222,8 +228,17 @@
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
         if (mIsIsolated) {
+            // When isolated we have a fixed size, let's use that sizing.
             setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec),
                     MeasureSpec.getSize(heightMeasureSpec));
+        } else {
+            // If we are displaying inline, we never want to go wider than actual size of the
+            // image, otherwise it will look quite blurry.
+            int width = Math.min(MeasureSpec.getSize(widthMeasureSpec),
+                    mDrawable.getIntrinsicWidth());
+            int height = (int) Math.min(MeasureSpec.getSize(heightMeasureSpec), width
+                    / mAspectRatio);
+            setMeasuredDimension(width, height);
         }
     }
 
@@ -231,7 +246,7 @@
     protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
         super.onLayout(changed, left, top, right, bottom);
         // TODO: ensure that this isn't called when transforming
-        setActualWidth(getStaticWidth());
+        setActualWidth(getWidth());
         setActualHeight(getHeight());
     }
 
@@ -258,13 +273,6 @@
         return mActualHeight;
     }
 
-    public int getStaticWidth() {
-        if (mIsIsolated) {
-            return getWidth();
-        }
-        return (int) (getHeight() * mAspectRatio);
-    }
-
     public void setIsolated(boolean isolated) {
         if (mIsIsolated != isolated) {
             mIsIsolated = isolated;
diff --git a/core/java/com/android/internal/widget/MessagingLayout.java b/core/java/com/android/internal/widget/MessagingLayout.java
index 3fb5d43..a162e4e 100644
--- a/core/java/com/android/internal/widget/MessagingLayout.java
+++ b/core/java/com/android/internal/widget/MessagingLayout.java
@@ -16,6 +16,9 @@
 
 package com.android.internal.widget;
 
+import static com.android.internal.widget.MessagingGroup.IMAGE_DISPLAY_LOCATION_AT_END;
+import static com.android.internal.widget.MessagingGroup.IMAGE_DISPLAY_LOCATION_INLINE;
+
 import android.annotation.AttrRes;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -447,7 +450,9 @@
                 newGroup = MessagingGroup.createGroup(mMessagingLinearLayout);
                 mAddedGroups.add(newGroup);
             }
-            newGroup.setDisplayImagesAtEnd(mDisplayImagesAtEnd);
+            newGroup.setImageDisplayLocation(mDisplayImagesAtEnd
+                    ? IMAGE_DISPLAY_LOCATION_AT_END
+                    : IMAGE_DISPLAY_LOCATION_INLINE);
             newGroup.setIsInConversation(false);
             newGroup.setLayoutColor(mLayoutColor);
             newGroup.setTextColors(mSenderTextColor, mMessageTextColor);
@@ -599,4 +604,9 @@
     public ArrayList<MessagingGroup> getMessagingGroups() {
         return mGroups;
     }
+
+    @Override
+    public void setMessagingClippingDisabled(boolean clippingDisabled) {
+        // Don't do anything, this is only used for the ConversationLayout
+    }
 }
diff --git a/core/java/com/android/internal/widget/ObservableTextView.java b/core/java/com/android/internal/widget/ObservableTextView.java
new file mode 100644
index 0000000..1f3c296
--- /dev/null
+++ b/core/java/com/android/internal/widget/ObservableTextView.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.internal.widget;
+
+import android.annotation.Nullable;
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.RemoteViews;
+import android.widget.TextView;
+
+import java.util.function.Consumer;
+
+/**
+ * A text view whose visibility can be observed.
+ */
+@RemoteViews.RemoteView
+public class ObservableTextView extends TextView {
+
+    private Consumer<Integer> mOnVisibilityChangedListener;
+
+    public ObservableTextView(Context context) {
+        super(context);
+    }
+
+    public ObservableTextView(Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public ObservableTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    public ObservableTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+    }
+
+    @Override
+    protected void onVisibilityChanged(View changedView, int visibility) {
+        super.onVisibilityChanged(changedView, visibility);
+        if (changedView == this) {
+            if (mOnVisibilityChangedListener != null) {
+                mOnVisibilityChangedListener.accept(visibility);
+            }
+        }
+    }
+
+    public void setOnVisibilityChangedListener(Consumer<Integer> listener) {
+        mOnVisibilityChangedListener = listener;
+    }
+}
diff --git a/core/java/com/android/internal/widget/ResolverDrawerLayout.java b/core/java/com/android/internal/widget/ResolverDrawerLayout.java
index c83cab7..31527e8 100644
--- a/core/java/com/android/internal/widget/ResolverDrawerLayout.java
+++ b/core/java/com/android/internal/widget/ResolverDrawerLayout.java
@@ -227,7 +227,7 @@
         }
 
         final int oldCollapsibleHeight = mCollapsibleHeight;
-        mCollapsibleHeight = Math.max(mCollapsibleHeight, getMaxCollapsedHeight());
+        mCollapsibleHeight = Math.min(mCollapsibleHeight, getMaxCollapsedHeight());
 
         if (updateCollapseOffset(oldCollapsibleHeight, !isDragging())) {
             return;
diff --git a/core/jni/android_content_res_ApkAssets.cpp b/core/jni/android_content_res_ApkAssets.cpp
index b55dc68..fbdd406 100644
--- a/core/jni/android_content_res_ApkAssets.cpp
+++ b/core/jni/android_content_res_ApkAssets.cpp
@@ -37,8 +37,128 @@
   jmethodID constructor;
 } gOverlayableInfoOffsets;
 
-static jlong NativeLoad(JNIEnv* env, jclass /*clazz*/, jstring java_path, jboolean system,
-                        jboolean force_shared_lib, jboolean overlay, jboolean for_loader) {
+static struct assetfiledescriptor_offsets_t {
+  jfieldID mFd;
+  jfieldID mStartOffset;
+  jfieldID mLength;
+} gAssetFileDescriptorOffsets;
+
+static struct assetsprovider_offsets_t {
+  jclass classObject;
+  jmethodID loadAssetFd;
+} gAssetsProviderOffsets;
+
+static struct {
+  jmethodID detachFd;
+} gParcelFileDescriptorOffsets;
+
+// Keep in sync with f/b/android/content/res/ApkAssets.java
+using format_type_t = jint;
+enum : format_type_t {
+  // The path used to load the apk assets represents an APK file.
+  FORMAT_APK = 0,
+
+  // The path used to load the apk assets represents an idmap file.
+  FORMAT_IDMAP = 1,
+
+  // The path used to load the apk assets represents an resources.arsc file.
+  FORMAT_ARSC = 2,
+
+  // The path used to load the apk assets represents the a directory.
+  FORMAT_DIRECTORY = 3,
+};
+
+class LoaderAssetsProvider : public AssetsProvider {
+ public:
+  static std::unique_ptr<AssetsProvider> Create(JNIEnv* env, jobject assets_provider) {
+    return (!assets_provider) ? nullptr
+                              : std::unique_ptr<AssetsProvider>(new LoaderAssetsProvider(
+                                  env->NewGlobalRef(assets_provider)));
+  }
+
+  ~LoaderAssetsProvider() override {
+    const auto env = AndroidRuntime::getJNIEnv();
+    CHECK(env != nullptr)  << "Current thread not attached to a Java VM."
+                           << " Failed to close LoaderAssetsProvider.";
+    env->DeleteGlobalRef(assets_provider_);
+  }
+
+ protected:
+  std::unique_ptr<Asset> OpenInternal(const std::string& path,
+                                      Asset::AccessMode mode,
+                                      bool* file_exists) const override {
+    const auto env = AndroidRuntime::getJNIEnv();
+    CHECK(env != nullptr) << "Current thread not attached to a Java VM."
+                          << " ResourcesProvider assets cannot be retrieved on current thread.";
+
+    jstring java_string = env->NewStringUTF(path.c_str());
+    if (env->ExceptionCheck()) {
+      env->ExceptionDescribe();
+      env->ExceptionClear();
+      return nullptr;
+    }
+
+    // Check if the AssetsProvider provides a value for the path.
+    jobject asset_fd = env->CallObjectMethod(assets_provider_,
+                                             gAssetsProviderOffsets.loadAssetFd,
+                                             java_string, static_cast<jint>(mode));
+    env->DeleteLocalRef(java_string);
+    if (env->ExceptionCheck()) {
+      env->ExceptionDescribe();
+      env->ExceptionClear();
+      return nullptr;
+    }
+
+    if (!asset_fd) {
+      if (file_exists) {
+        *file_exists = false;
+      }
+      return nullptr;
+    }
+
+    const jlong mOffset = env->GetLongField(asset_fd, gAssetFileDescriptorOffsets.mStartOffset);
+    const jlong mLength = env->GetLongField(asset_fd, gAssetFileDescriptorOffsets.mLength);
+    jobject mFd = env->GetObjectField(asset_fd, gAssetFileDescriptorOffsets.mFd);
+    env->DeleteLocalRef(asset_fd);
+
+    if (!mFd) {
+      jniThrowException(env, "java/lang/NullPointerException", nullptr);
+      env->ExceptionDescribe();
+      env->ExceptionClear();
+      return nullptr;
+    }
+
+    // Gain ownership of the file descriptor.
+    const jint fd = env->CallIntMethod(mFd, gParcelFileDescriptorOffsets.detachFd);
+    env->DeleteLocalRef(mFd);
+    if (env->ExceptionCheck()) {
+      env->ExceptionDescribe();
+      env->ExceptionClear();
+      return nullptr;
+    }
+
+    if (file_exists) {
+      *file_exists = true;
+    }
+
+    return ApkAssets::CreateAssetFromFd(base::unique_fd(fd),
+                                        nullptr /* path */,
+                                        static_cast<off64_t>(mOffset),
+                                        static_cast<off64_t>(mLength));
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(LoaderAssetsProvider);
+
+  explicit LoaderAssetsProvider(jobject assets_provider)
+    : assets_provider_(assets_provider) { }
+
+  // The global reference to the AssetsProvider
+  jobject assets_provider_;
+};
+
+static jlong NativeLoad(JNIEnv* env, jclass /*clazz*/, const format_type_t format,
+                        jstring java_path, const jint property_flags, jobject assets_provider) {
   ScopedUtfChars path(env, java_path);
   if (path.c_str() == nullptr) {
     return 0;
@@ -46,26 +166,38 @@
 
   ATRACE_NAME(base::StringPrintf("LoadApkAssets(%s)", path.c_str()).c_str());
 
+  auto loader_assets = LoaderAssetsProvider::Create(env, assets_provider);
   std::unique_ptr<const ApkAssets> apk_assets;
-  if (overlay) {
-    apk_assets = ApkAssets::LoadOverlay(path.c_str(), system);
-  } else if (force_shared_lib) {
-    apk_assets = ApkAssets::LoadAsSharedLibrary(path.c_str(), system);
-  } else {
-    apk_assets = ApkAssets::Load(path.c_str(), system, for_loader);
+  switch (format) {
+    case FORMAT_APK:
+      apk_assets = ApkAssets::Load(path.c_str(), property_flags, std::move(loader_assets));
+      break;
+    case FORMAT_IDMAP:
+      apk_assets = ApkAssets::LoadOverlay(path.c_str(), property_flags);
+      break;
+    case FORMAT_ARSC:
+      apk_assets = ApkAssets::LoadTable(path.c_str(), property_flags, std::move(loader_assets));
+      break;
+    case FORMAT_DIRECTORY:
+      apk_assets = ApkAssets::LoadFromDir(path.c_str(), property_flags,  std::move(loader_assets));
+      break;
+    default:
+      const std::string error_msg = base::StringPrintf("Unsupported format type %d", format);
+      jniThrowException(env, "java/lang/IllegalArgumentException", error_msg.c_str());
+      return 0;
   }
 
   if (apk_assets == nullptr) {
-    std::string error_msg = base::StringPrintf("Failed to load asset path %s", path.c_str());
+    const std::string error_msg = base::StringPrintf("Failed to load asset path %s", path.c_str());
     jniThrowException(env, "java/io/IOException", error_msg.c_str());
     return 0;
   }
   return reinterpret_cast<jlong>(apk_assets.release());
 }
 
-static jlong NativeLoadFromFd(JNIEnv* env, jclass /*clazz*/, jobject file_descriptor,
-                              jstring friendly_name, jboolean system, jboolean force_shared_lib,
-                              jboolean for_loader) {
+static jlong NativeLoadFromFd(JNIEnv* env, jclass /*clazz*/, const format_type_t format,
+                              jobject file_descriptor, jstring friendly_name,
+                              const jint property_flags, jobject assets_provider) {
   ScopedUtfChars friendly_name_utf8(env, friendly_name);
   if (friendly_name_utf8.c_str() == nullptr) {
     return 0;
@@ -85,48 +217,56 @@
     return 0;
   }
 
-  std::unique_ptr<const ApkAssets> apk_assets = ApkAssets::LoadFromFd(std::move(dup_fd),
-                                                                      friendly_name_utf8.c_str(),
-                                                                      system, force_shared_lib,
-                                                                      for_loader);
+  auto loader_assets = LoaderAssetsProvider::Create(env, assets_provider);
+  std::unique_ptr<const ApkAssets> apk_assets;
+  switch (format) {
+    case FORMAT_APK:
+      apk_assets = ApkAssets::LoadFromFd(std::move(dup_fd), friendly_name_utf8.c_str(),
+                                         property_flags, std::move(loader_assets));
+      break;
+    case FORMAT_ARSC:
+      apk_assets = ApkAssets::LoadTableFromFd(std::move(dup_fd), friendly_name_utf8.c_str(),
+                                              property_flags, std::move(loader_assets));
+      break;
+    default:
+      const std::string error_msg = base::StringPrintf("Unsupported format type %d", format);
+      jniThrowException(env, "java/lang/IllegalArgumentException", error_msg.c_str());
+      return 0;
+  }
 
   if (apk_assets == nullptr) {
     std::string error_msg = base::StringPrintf("Failed to load asset path %s from fd %d",
-                                               friendly_name_utf8.c_str(), dup_fd.get());
+                                               friendly_name_utf8.c_str(), fd);
     jniThrowException(env, "java/io/IOException", error_msg.c_str());
     return 0;
   }
   return reinterpret_cast<jlong>(apk_assets.release());
 }
 
-static jlong NativeLoadArsc(JNIEnv* env, jclass /*clazz*/, jstring java_path,
-                            jboolean for_loader) {
-  ScopedUtfChars path(env, java_path);
-  if (path.c_str() == nullptr) {
-    return 0;
-  }
-
-  ATRACE_NAME(base::StringPrintf("LoadApkAssetsArsc(%s)", path.c_str()).c_str());
-
-  std::unique_ptr<const ApkAssets> apk_assets = ApkAssets::LoadArsc(path.c_str(), for_loader);
-
-  if (apk_assets == nullptr) {
-    std::string error_msg = base::StringPrintf("Failed to load asset path %s", path.c_str());
-    jniThrowException(env, "java/io/IOException", error_msg.c_str());
-    return 0;
-  }
-  return reinterpret_cast<jlong>(apk_assets.release());
-}
-
-static jlong NativeLoadArscFromFd(JNIEnv* env, jclass /*clazz*/, jobject file_descriptor,
-                                  jstring friendly_name, jboolean for_loader) {
+static jlong NativeLoadFromFdOffset(JNIEnv* env, jclass /*clazz*/, const format_type_t format,
+                                    jobject file_descriptor, jstring friendly_name,
+                                    const jlong offset, const jlong length,
+                                    const jint property_flags, jobject assets_provider) {
   ScopedUtfChars friendly_name_utf8(env, friendly_name);
   if (friendly_name_utf8.c_str() == nullptr) {
     return 0;
   }
 
+  ATRACE_NAME(base::StringPrintf("LoadApkAssetsFd(%s)", friendly_name_utf8.c_str()).c_str());
+
+  if (offset < 0) {
+    jniThrowException(env, "java/lang/IllegalArgumentException",
+                     "offset cannot be negative");
+    return 0;
+  }
+
+  if (length < 0) {
+    jniThrowException(env, "java/lang/IllegalArgumentException",
+                     "length cannot be negative");
+    return 0;
+  }
+
   int fd = jniGetFDFromFileDescriptor(env, file_descriptor);
-  ATRACE_NAME(base::StringPrintf("LoadApkAssetsArscFd(%d)", fd).c_str());
   if (fd < 0) {
     jniThrowException(env, "java/lang/IllegalArgumentException", "Bad FileDescriptor");
     return 0;
@@ -138,18 +278,39 @@
     return 0;
   }
 
-  std::unique_ptr<const ApkAssets> apk_assets =
-      ApkAssets::LoadArsc(std::move(dup_fd), friendly_name_utf8.c_str(), for_loader);
+  auto loader_assets = LoaderAssetsProvider::Create(env, assets_provider);
+  std::unique_ptr<const ApkAssets> apk_assets;
+  switch (format) {
+    case FORMAT_APK:
+      apk_assets = ApkAssets::LoadFromFd(std::move(dup_fd), friendly_name_utf8.c_str(),
+                                         property_flags, std::move(loader_assets),
+                                         static_cast<off64_t>(offset),
+                                         static_cast<off64_t>(length));
+      break;
+    case FORMAT_ARSC:
+      apk_assets = ApkAssets::LoadTableFromFd(std::move(dup_fd), friendly_name_utf8.c_str(),
+                                              property_flags, std::move(loader_assets),
+                                              static_cast<off64_t>(offset),
+                                              static_cast<off64_t>(length));
+      break;
+    default:
+      const std::string error_msg = base::StringPrintf("Unsupported format type %d", format);
+      jniThrowException(env, "java/lang/IllegalArgumentException", error_msg.c_str());
+      return 0;
+  }
+
   if (apk_assets == nullptr) {
-    std::string error_msg = base::StringPrintf("Failed to load asset path from fd %d", fd);
+    std::string error_msg = base::StringPrintf("Failed to load asset path %s from fd %d",
+                                               friendly_name_utf8.c_str(), fd);
     jniThrowException(env, "java/io/IOException", error_msg.c_str());
     return 0;
   }
   return reinterpret_cast<jlong>(apk_assets.release());
 }
 
-static jlong NativeLoadEmpty(JNIEnv* env, jclass /*clazz*/, jboolean for_loader) {
-  std::unique_ptr<const ApkAssets> apk_assets = ApkAssets::LoadEmpty(for_loader);
+static jlong NativeLoadEmpty(JNIEnv* env, jclass /*clazz*/, jint flags, jobject assets_provider) {
+  auto loader_assets = LoaderAssetsProvider::Create(env, assets_provider);
+  auto apk_assets = ApkAssets::LoadEmpty(flags, std::move(loader_assets));
   return reinterpret_cast<jlong>(apk_assets.release());
 }
 
@@ -179,8 +340,8 @@
   }
 
   const ApkAssets* apk_assets = reinterpret_cast<const ApkAssets*>(ptr);
-  std::unique_ptr<Asset> asset = apk_assets->Open(path_utf8.c_str(),
-                                                  Asset::AccessMode::ACCESS_RANDOM);
+  std::unique_ptr<Asset> asset = apk_assets->GetAssetsProvider()->Open(
+      path_utf8.c_str(),Asset::AccessMode::ACCESS_RANDOM);
   if (asset == nullptr) {
     jniThrowException(env, "java/io/FileNotFoundException", path_utf8.c_str());
     return 0;
@@ -251,13 +412,15 @@
 
 // JNI registration.
 static const JNINativeMethod gApkAssetsMethods[] = {
-    {"nativeLoad", "(Ljava/lang/String;ZZZZ)J", (void*)NativeLoad},
-    {"nativeLoadFromFd", "(Ljava/io/FileDescriptor;Ljava/lang/String;ZZZ)J",
-        (void*)NativeLoadFromFd},
-    {"nativeLoadArsc", "(Ljava/lang/String;Z)J", (void*)NativeLoadArsc},
-    {"nativeLoadArscFromFd", "(Ljava/io/FileDescriptor;Ljava/lang/String;Z)J",
-        (void*)NativeLoadArscFromFd},
-    {"nativeLoadEmpty", "(Z)J", (void*)NativeLoadEmpty},
+    {"nativeLoad", "(ILjava/lang/String;ILandroid/content/res/loader/AssetsProvider;)J",
+     (void*)NativeLoad},
+    {"nativeLoadEmpty", "(ILandroid/content/res/loader/AssetsProvider;)J", (void*)NativeLoadEmpty},
+    {"nativeLoadFd",
+     "(ILjava/io/FileDescriptor;Ljava/lang/String;ILandroid/content/res/loader/AssetsProvider;)J",
+     (void*)NativeLoadFromFd},
+    {"nativeLoadFdOffsets",
+     "(ILjava/io/FileDescriptor;Ljava/lang/String;JJILandroid/content/res/loader/AssetsProvider;)J",
+     (void*)NativeLoadFromFdOffset},
     {"nativeDestroy", "(J)V", (void*)NativeDestroy},
     {"nativeGetAssetPath", "(J)Ljava/lang/String;", (void*)NativeGetAssetPath},
     {"nativeGetStringBlock", "(J)J", (void*)NativeGetStringBlock},
@@ -274,6 +437,21 @@
   gOverlayableInfoOffsets.constructor = GetMethodIDOrDie(env, gOverlayableInfoOffsets.classObject,
       "<init>", "(Ljava/lang/String;Ljava/lang/String;)V");
 
+  jclass assetFd = FindClassOrDie(env, "android/content/res/AssetFileDescriptor");
+  gAssetFileDescriptorOffsets.mFd =
+      GetFieldIDOrDie(env, assetFd, "mFd", "Landroid/os/ParcelFileDescriptor;");
+  gAssetFileDescriptorOffsets.mStartOffset = GetFieldIDOrDie(env, assetFd, "mStartOffset", "J");
+  gAssetFileDescriptorOffsets.mLength = GetFieldIDOrDie(env, assetFd, "mLength", "J");
+
+  jclass assetsProvider = FindClassOrDie(env, "android/content/res/loader/AssetsProvider");
+  gAssetsProviderOffsets.classObject = MakeGlobalRefOrDie(env, assetsProvider);
+  gAssetsProviderOffsets.loadAssetFd = GetMethodIDOrDie(
+      env, gAssetsProviderOffsets.classObject, "loadAssetFd",
+      "(Ljava/lang/String;I)Landroid/content/res/AssetFileDescriptor;");
+
+  jclass parcelFd = FindClassOrDie(env, "android/os/ParcelFileDescriptor");
+  gParcelFileDescriptorOffsets.detachFd = GetMethodIDOrDie(env, parcelFd, "detachFd", "()I");
+
   return RegisterMethodsOrDie(env, "android/content/res/ApkAssets", gApkAssetsMethods,
                               arraysize(gApkAssetsMethods));
 }
diff --git a/core/jni/android_media_AudioProductStrategies.cpp b/core/jni/android_media_AudioProductStrategies.cpp
index 17a02b2..34be2a5 100644
--- a/core/jni/android_media_AudioProductStrategies.cpp
+++ b/core/jni/android_media_AudioProductStrategies.cpp
@@ -85,10 +85,23 @@
     jStrategyId = static_cast<jint>(strategy.getId());
 
     // Audio Attributes Group array
-    std::map<int, std::vector<AudioAttributes> > groups;
+    int attrGroupIndex = 0;
+    std::map<int /**attributesGroupIndex*/, std::vector<AudioAttributes> > groups;
     for (const auto &attr : strategy.getAudioAttributes()) {
-        int attrGroupId = attr.getGroupId();
-        groups[attrGroupId].push_back(attr);
+        int groupId = attr.getGroupId();
+        int streamType = attr.getStreamType();
+        const auto &iter = std::find_if(begin(groups), end(groups),
+                                        [groupId, streamType](const auto &iter) {
+            const auto &frontAttr = iter.second.front();
+            return frontAttr.getGroupId() == groupId && frontAttr.getStreamType() == streamType;
+        });
+        // Same Volume Group Id and same stream type
+        if (iter != end(groups)) {
+             groups[iter->first].push_back(attr);
+        } else {
+            // Add a new Group of AudioAttributes for this product strategy
+            groups[attrGroupIndex++].push_back(attr);
+        }
     }
     numAttributesGroups = groups.size();
 
@@ -97,7 +110,7 @@
     for (const auto &iter : groups) {
         std::vector<AudioAttributes> audioAttributesGroups = iter.second;
         jint numAttributes = audioAttributesGroups.size();
-        jint jGroupId = iter.first;
+        jint jGroupId = audioAttributesGroups.front().getGroupId();
         jint jLegacyStreamType = audioAttributesGroups.front().getStreamType();
 
         jStatus = JNIAudioAttributeHelper::getJavaArray(env, &jAudioAttributes, numAttributes);
diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp
index 062b886..bf3fc57 100644
--- a/core/jni/android_util_AssetManager.cpp
+++ b/core/jni/android_util_AssetManager.cpp
@@ -75,12 +75,6 @@
   jfieldID mDensity;
 } gTypedValueOffsets;
 
-static struct assetfiledescriptor_offsets_t {
-  jfieldID mFd;
-  jfieldID mStartOffset;
-  jfieldID mLength;
-} gAssetFileDescriptorOffsets;
-
 // This is also used by asset_manager.cpp.
 assetmanager_offsets_t gAssetManagerOffsets;
 
@@ -220,12 +214,8 @@
 
 // ----------------------------------------------------------------------------
 
-static std::unique_ptr<DynamicLibManager> sDynamicLibManager =
-    std::make_unique<DynamicLibManager>();
-
 // Let the opaque type AAssetManager refer to a guarded AssetManager2 instance.
 struct GuardedAssetManager : public ::AAssetManager {
-  GuardedAssetManager() : guarded_assetmanager(sDynamicLibManager.get()) {}
   Guarded<AssetManager2> guarded_assetmanager;
 };
 
@@ -1596,12 +1586,6 @@
       GetFieldIDOrDie(env, typedValue, "changingConfigurations", "I");
   gTypedValueOffsets.mDensity = GetFieldIDOrDie(env, typedValue, "density", "I");
 
-  jclass assetFd = FindClassOrDie(env, "android/content/res/AssetFileDescriptor");
-  gAssetFileDescriptorOffsets.mFd =
-      GetFieldIDOrDie(env, assetFd, "mFd", "Landroid/os/ParcelFileDescriptor;");
-  gAssetFileDescriptorOffsets.mStartOffset = GetFieldIDOrDie(env, assetFd, "mStartOffset", "J");
-  gAssetFileDescriptorOffsets.mLength = GetFieldIDOrDie(env, assetFd, "mLength", "J");
-
   jclass assetManager = FindClassOrDie(env, "android/content/res/AssetManager");
   gAssetManagerOffsets.mObject = GetFieldIDOrDie(env, assetManager, "mObject", "J");
 
diff --git a/core/jni/android_view_InputEventReceiver.cpp b/core/jni/android_view_InputEventReceiver.cpp
index 649e5d2..cc94d6f 100644
--- a/core/jni/android_view_InputEventReceiver.cpp
+++ b/core/jni/android_view_InputEventReceiver.cpp
@@ -49,7 +49,7 @@
 
     jmethodID dispatchInputEvent;
     jmethodID onFocusEvent;
-    jmethodID dispatchBatchedInputEventPending;
+    jmethodID onBatchedInputEventPending;
 } gInputEventReceiverClassInfo;
 
 
@@ -242,37 +242,40 @@
 
         status_t status = mInputConsumer.consume(&mInputEventFactory,
                 consumeBatches, frameTime, &seq, &inputEvent);
-        if (status) {
-            if (status == WOULD_BLOCK) {
-                if (!skipCallbacks && !mBatchedInputEventPending
-                        && mInputConsumer.hasPendingBatch()) {
-                    // There is a pending batch.  Come back later.
-                    if (!receiverObj.get()) {
-                        receiverObj.reset(jniGetReferent(env, mReceiverWeakGlobal));
-                        if (!receiverObj.get()) {
-                            ALOGW("channel '%s' ~ Receiver object was finalized "
-                                    "without being disposed.", getInputChannelName().c_str());
-                            return DEAD_OBJECT;
-                        }
-                    }
+        if (status != OK && status != WOULD_BLOCK) {
+            ALOGE("channel '%s' ~ Failed to consume input event.  status=%d",
+                  getInputChannelName().c_str(), status);
+            return status;
+        }
 
-                    mBatchedInputEventPending = true;
-                    if (kDebugDispatchCycle) {
-                        ALOGD("channel '%s' ~ Dispatching batched input event pending notification.",
-                                getInputChannelName().c_str());
-                    }
-                    env->CallVoidMethod(receiverObj.get(),
-                            gInputEventReceiverClassInfo.dispatchBatchedInputEventPending);
-                    if (env->ExceptionCheck()) {
-                        ALOGE("Exception dispatching batched input events.");
-                        mBatchedInputEventPending = false; // try again later
+        if (status == WOULD_BLOCK) {
+            if (!skipCallbacks && !mBatchedInputEventPending && mInputConsumer.hasPendingBatch()) {
+                // There is a pending batch.  Come back later.
+                if (!receiverObj.get()) {
+                    receiverObj.reset(jniGetReferent(env, mReceiverWeakGlobal));
+                    if (!receiverObj.get()) {
+                        ALOGW("channel '%s' ~ Receiver object was finalized "
+                              "without being disposed.",
+                              getInputChannelName().c_str());
+                        return DEAD_OBJECT;
                     }
                 }
-                return OK;
+
+                mBatchedInputEventPending = true;
+                if (kDebugDispatchCycle) {
+                    ALOGD("channel '%s' ~ Dispatching batched input event pending notification.",
+                          getInputChannelName().c_str());
+                }
+
+                env->CallVoidMethod(receiverObj.get(),
+                                    gInputEventReceiverClassInfo.onBatchedInputEventPending,
+                                    mInputConsumer.getPendingBatchSource());
+                if (env->ExceptionCheck()) {
+                    ALOGE("Exception dispatching batched input events.");
+                    mBatchedInputEventPending = false; // try again later
+                }
             }
-            ALOGE("channel '%s' ~ Failed to consume input event.  status=%d",
-                    getInputChannelName().c_str(), status);
-            return status;
+            return OK;
         }
         assert(inputEvent);
 
@@ -441,8 +444,9 @@
             "dispatchInputEvent", "(ILandroid/view/InputEvent;)V");
     gInputEventReceiverClassInfo.onFocusEvent =
             GetMethodIDOrDie(env, gInputEventReceiverClassInfo.clazz, "onFocusEvent", "(ZZ)V");
-    gInputEventReceiverClassInfo.dispatchBatchedInputEventPending = GetMethodIDOrDie(env,
-            gInputEventReceiverClassInfo.clazz, "dispatchBatchedInputEventPending", "()V");
+    gInputEventReceiverClassInfo.onBatchedInputEventPending =
+            GetMethodIDOrDie(env, gInputEventReceiverClassInfo.clazz, "onBatchedInputEventPending",
+                             "(I)V");
 
     return res;
 }
diff --git a/core/proto/android/app/appexitinfo.proto b/core/proto/android/app/appexitinfo.proto
index 66173f6..4b9444e 100644
--- a/core/proto/android/app/appexitinfo.proto
+++ b/core/proto/android/app/appexitinfo.proto
@@ -42,4 +42,6 @@
     optional int64 rss = 12;
     optional int64 timestamp = 13;
     optional string description = 14;
+    optional bytes state = 15;
+    optional string trace_file = 16;
 }
diff --git a/core/proto/android/app/enums.proto b/core/proto/android/app/enums.proto
index 42437d5..563ef14 100644
--- a/core/proto/android/app/enums.proto
+++ b/core/proto/android/app/enums.proto
@@ -203,9 +203,7 @@
     APP_OP_INTERACT_ACROSS_PROFILES = 93;
     APP_OP_ACTIVATE_PLATFORM_VPN = 94;
     APP_OP_LOADER_USAGE_STATS = 95;
-    APP_OP_ACCESS_CALL_AUDIO = 96;
+    APP_OP_DEPRECATED_1 = 96 [deprecated = true];
     APP_OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED = 97;
     APP_OP_AUTO_REVOKE_MANAGED_BY_INSTALLER = 98;
 }
-
-
diff --git a/core/proto/android/app/settings_enums.proto b/core/proto/android/app/settings_enums.proto
index ef6eb38..ab57e3d 100644
--- a/core/proto/android/app/settings_enums.proto
+++ b/core/proto/android/app/settings_enums.proto
@@ -734,6 +734,16 @@
     // CATEGORY: SETTINGS
     // OS: R
     ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_PASSWORD = 1737;
+
+    // ACTION: Settings > Security > Toggle on Confirm Sim deletion
+    // CATEGORY: SETTINGS
+    // OS: R
+    ACTION_CONFIRM_SIM_DELETION_ON = 1738;
+
+    // ACTION: Settings > Security > Toggle off Confirm Sim deletion
+    // CATEGORY: SETTINGS
+    // OS: R
+    ACTION_CONFIRM_SIM_DELETION_OFF = 1739;
 }
 
 /**
@@ -2643,4 +2653,20 @@
     // CATEGORY: SETTINGS
     // OS: R
     ADB_WIRELESS_DEVICE_DETAILS = 1836;
+
+    // Open: Settings > Sound > Do Not Disturb > People > Conversations
+    // OS: R
+    DND_CONVERSATIONS = 1837;
+
+    // Open: Settings > Sound > Do Not Disturb > People > Calls
+    // OS: R
+    DND_CALLS = 1838;
+
+    // Open: Settings > Sound > Do Not Disturb > People > Messages
+    // OS: R
+    DND_MESSAGES = 1839;
+
+    // Open: Settings > Sound > Do Not Disturb > Apps > <Choose App>
+    // OS: R
+    DND_APPS_BYPASSING = 1840;
 }
diff --git a/core/proto/android/content/package_item_info.proto b/core/proto/android/content/package_item_info.proto
index e8ae1b3..e683306 100644
--- a/core/proto/android/content/package_item_info.proto
+++ b/core/proto/android/content/package_item_info.proto
@@ -109,7 +109,7 @@
         }
         optional int32 network_security_config_res = 17;
         optional int32 category = 18;
-        optional bool enable_gwp_asan = 19;
+        optional int32 enable_gwp_asan = 19;
     }
     optional Detail detail = 17;
 }
diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto
index a3313b2..075aa97 100644
--- a/core/proto/android/providers/settings/secure.proto
+++ b/core/proto/android/providers/settings/secure.proto
@@ -77,7 +77,7 @@
         optional SettingProto interactive_ui_timeout_ms = 33 [ (android.privacy).dest = DEST_AUTOMATIC ];
         // Settings for magnification mode
         optional SettingProto accessibility_magnification_mode = 34 [ (android.privacy).dest = DEST_AUTOMATIC ];
-        optional SettingProto button_long_press_targets = 35 [ (android.privacy).dest = DEST_AUTOMATIC ];
+        optional SettingProto button_targets = 35 [ (android.privacy).dest = DEST_AUTOMATIC ];
     }
     optional Accessibility accessibility = 2;
 
@@ -180,6 +180,14 @@
     optional SettingProto cmas_additional_broadcast_pkg = 14 [ (android.privacy).dest = DEST_AUTOMATIC ];
     repeated SettingProto completed_categories = 15;
     optional SettingProto connectivity_release_pending_intent_delay_ms = 16 [ (android.privacy).dest = DEST_AUTOMATIC ];
+
+    message Controls {
+        option (android.msg_privacy).dest = DEST_EXPLICIT;
+
+        optional SettingProto enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ];
+    }
+    optional Controls controls = 79;
+
     optional SettingProto device_paired = 17 [ (android.privacy).dest = DEST_AUTOMATIC ];
     optional SettingProto dialer_default_application = 18 [ (android.privacy).dest = DEST_AUTOMATIC ];
     optional SettingProto display_density_forced = 19 [ (android.privacy).dest = DEST_AUTOMATIC ];
@@ -580,5 +588,5 @@
 
     // Please insert fields in alphabetical order and group them into messages
     // if possible (to avoid reaching the method limit).
-    // Next tag = 79;
+    // Next tag = 80;
 }
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index ad984e6..eae6145 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -734,7 +734,7 @@
     <!-- ====================================================================== -->
     <eat-comment />
 
-    <!-- @SystemApi Allows accessing the messages on ICC
+    <!-- Allows accessing the messages on ICC
          @hide Used internally. -->
     <permission android:name="android.permission.ACCESS_MESSAGES_ON_ICC"
         android:protectionLevel="signature" />
@@ -1213,15 +1213,6 @@
                 android:description="@string/permdesc_acceptHandovers"
                 android:protectionLevel="dangerous" />
 
-    <!-- Allows an application assigned to the Dialer role to be granted access to the telephony
-         call audio streams, both TX and RX.
-         <p>Protection level: signature|appop
-    -->
-    <permission android:name="android.permission.ACCESS_CALL_AUDIO"
-                android.label="@string/permlab_accessCallAudio"
-                android:description="@string/permdesc_accessCallAudio"
-                android:protectionLevel="signature|appop" />
-
     <!-- ====================================================================== -->
     <!-- Permissions for accessing the device microphone                        -->
     <!-- ====================================================================== -->
@@ -2164,7 +2155,7 @@
     <permission android:name="android.permission.READ_ACTIVE_EMERGENCY_SESSION"
         android:protectionLevel="signature" />
 
-    <!-- @SystemApi Allows listen permission to always reported signal strength.
+    <!-- Allows listen permission to always reported signal strength.
          @hide Used internally. -->
     <permission android:name="android.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH"
         android:protectionLevel="signature" />
@@ -3447,12 +3438,25 @@
     <permission android:name="android.permission.BIND_AUGMENTED_AUTOFILL_SERVICE"
                 android:protectionLevel="signature" />
 
-    <!-- Must be required by hotword enrollment application,
-         to ensure that only the system can interact with it.
-         @hide <p>Not for use by third-party applications.</p> -->
+    <!-- Must be required by a {@link android.service.voice.VoiceInteractionService} implementation
+         to enroll its own sound models. This is a more restrictive permission than the higher-level
+         permission KEYPHRASE_ENROLLMENT_APPLICATION. For the caller to enroll sound models with
+         this permission, it must hold the permission and be the active VoiceInteractionService in
+         the system.
+         {@see Settings.Secure.VOICE_INTERACTION_SERVICE}
+         @hide -->
     <permission android:name="android.permission.MANAGE_VOICE_KEYPHRASES"
         android:protectionLevel="signature|privileged" />
 
+    <!-- Must be required by a keyphrase enrollment application, to enroll sound models. This is
+         treated as a higher-level permission to MANAGE_VOICE_KEYPHRASES as a caller can enroll
+         sound models at any time. This permission should be reserved for system enrollment
+         applications detected by {@link android.hardware.soundtrigger.KeyphraseEnrollmentInfo}
+         only.
+         @hide <p>Not for use by third-party applications.</p> -->
+    <permission android:name="android.permission.KEYPHRASE_ENROLLMENT_APPLICATION"
+        android:protectionLevel="signature|privileged" />
+
     <!-- Must be required by a {@link com.android.media.remotedisplay.RemoteDisplayProvider},
          to ensure that only the system can bind to it.
          @hide -->
@@ -3641,6 +3645,16 @@
     <permission android:name="com.android.permission.INSTALL_EXISTING_PACKAGES"
         android:protectionLevel="signature|privileged" />
 
+    <!-- Allows an application to use the package installer v2 APIs.
+         <p>The package installer v2 APIs are still a work in progress and we're
+         currently validating they work in all scenarios.
+         <p>Not for use by third-party applications.
+         TODO(b/152310230): remove this permission once the APIs are confirmed to be sufficient.
+         @hide
+    -->
+    <permission android:name="com.android.permission.USE_INSTALLER_V2"
+        android:protectionLevel="signature|verifier" />
+
     <!-- @SystemApi @TestApi Allows an application to clear user data.
          <p>Not for use by third-party applications
          @hide
diff --git a/core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml b/core/res/res/drawable/conversation_badge_ring.xml
similarity index 62%
copy from core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml
copy to core/res/res/drawable/conversation_badge_ring.xml
index 24a0a2a..11ba8ad 100644
--- a/core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml
+++ b/core/res/res/drawable/conversation_badge_ring.xml
@@ -12,16 +12,21 @@
   ~ distributed under the License is distributed on an "AS IS" BASIS,
   ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
+  ~ limitations under the License
   -->
 
-<manifest
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    package="android.content.res.loader.test"
-    split="split_four"
-    >
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="oval">
 
-    <uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
-    <application android:hasCode="false" />
+    <solid
+        android:color="@color/transparent"/>
 
-</manifest>
+    <stroke
+        android:color="@color/conversation_important_highlight"
+        android:width="2dp"/>
+
+    <size
+        android:width="26dp"
+        android:height="26dp"/>
+</shape>
+
diff --git a/core/res/res/drawable/resolver_turn_on_work_button_ripple_background.xml b/core/res/res/drawable/resolver_turn_on_work_button_ripple_background.xml
new file mode 100644
index 0000000..786f5e6
--- /dev/null
+++ b/core/res/res/drawable/resolver_turn_on_work_button_ripple_background.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="?attr/colorAccent">
+    <item android:id="@android:id/mask">
+        <shape android:shape="rectangle">
+            <solid android:color="?attr/colorControlHighlight" />
+            <corners android:radius="?attr/buttonCornerRadius" />
+        </shape>
+    </item>
+</ripple>
\ No newline at end of file
diff --git a/core/res/res/layout/conversation_face_pile_layout.xml b/core/res/res/layout/conversation_face_pile_layout.xml
index 1db3870..5285625 100644
--- a/core/res/res/layout/conversation_face_pile_layout.xml
+++ b/core/res/res/layout/conversation_face_pile_layout.xml
@@ -23,21 +23,25 @@
     >
     <ImageView
         android:id="@+id/conversation_face_pile_top"
-        android:layout_width="36dp"
-        android:layout_height="36dp"
+        android:layout_width="@dimen/messaging_avatar_size"
+        android:layout_height="@dimen/messaging_avatar_size"
         android:scaleType="centerCrop"
         android:layout_gravity="end|top"
         />
     <FrameLayout
-        android:id="@+id/conversation_face_pile_bottom_background"
-        android:layout_width="40dp"
-        android:layout_height="40dp"
-        android:layout_gravity="start|bottom"
-        android:background="@drawable/conversation_badge_background">
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="start|bottom">
+        <ImageView
+            android:id="@+id/conversation_face_pile_bottom_background"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/conversation_badge_background"
+            />
         <ImageView
             android:id="@+id/conversation_face_pile_bottom"
-            android:layout_width="36dp"
-            android:layout_height="36dp"
+            android:layout_width="@dimen/messaging_avatar_size"
+            android:layout_height="@dimen/messaging_avatar_size"
             android:scaleType="centerCrop"
             android:layout_gravity="center"
             />
diff --git a/core/res/res/layout/notification_template_material_conversation.xml b/core/res/res/layout/notification_template_material_conversation.xml
index 2348dee..7cadecb 100644
--- a/core/res/res/layout/notification_template_material_conversation.xml
+++ b/core/res/res/layout/notification_template_material_conversation.xml
@@ -25,12 +25,14 @@
     >
 
     <FrameLayout
+        android:id="@+id/conversation_icon_container"
         android:layout_width="@dimen/conversation_content_start"
         android:layout_height="wrap_content"
         android:gravity="start|top"
         android:clipChildren="false"
         android:clipToPadding="false"
         android:paddingTop="12dp"
+        android:paddingBottom="12dp"
     >
 
         <FrameLayout
@@ -57,18 +59,31 @@
 
             <FrameLayout
                 android:id="@+id/conversation_icon_badge"
-                android:layout_width="20dp"
-                android:layout_height="20dp"
+                android:layout_width="@dimen/conversation_icon_size_badged"
+                android:layout_height="@dimen/conversation_icon_size_badged"
                 android:layout_marginLeft="@dimen/conversation_badge_side_margin"
                 android:layout_marginTop="@dimen/conversation_badge_side_margin"
-                android:background="@drawable/conversation_badge_background" >
-                <!-- Badge: 20x20, 48dp padding left + top -->
+            >
+                <ImageView
+                    android:id="@+id/conversation_icon_badge_bg"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:src="@drawable/conversation_badge_background"
+                />
                 <com.android.internal.widget.CachingIconView
                     android:id="@+id/icon"
-                    android:layout_width="@dimen/conversation_icon_size_badged"
-                    android:layout_height="@dimen/conversation_icon_size_badged"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_margin="4dp"
                     android:layout_gravity="center"
                 />
+                <ImageView
+                    android:id="@+id/conversation_icon_badge_ring"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:src="@drawable/conversation_badge_ring"
+                    android:visibility="gone"
+                />
             </FrameLayout>
         </FrameLayout>
     </FrameLayout>
@@ -107,6 +122,7 @@
                     android:layout_height="wrap_content"
                     android:orientation="horizontal"
                     android:paddingTop="16dp"
+                    android:layout_marginBottom="2dp"
                     android:paddingStart="@dimen/conversation_content_start"
                 >
                     <TextView
@@ -159,12 +175,22 @@
                     />
                 </LinearLayout>
 
+                <!-- App Name -->
+                <com.android.internal.widget.ObservableTextView
+                    android:id="@+id/app_name_text"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/conversation_content_start"
+                    android:textSize="12sp"
+                    android:layout_marginBottom="16dp"
+                    android:textAppearance="@style/TextAppearance.DeviceDefault.Notification"
+                />
+
                 <!-- Messages -->
                 <com.android.internal.widget.MessagingLinearLayout
                     android:id="@+id/notification_messaging"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginTop="2dp"
                     android:spacing="@dimen/notification_messaging_spacing"
                     android:clipToPadding="false"
                     android:clipChildren="false"
@@ -186,13 +212,29 @@
     </com.android.internal.widget.RemeasuringLinearLayout>
 
     <!--This is dynamically placed between here and at the end of the layout-->
-    <FrameLayout
+    <LinearLayout
         android:id="@+id/expand_button_container"
         android:layout_width="wrap_content"
-        android:layout_height="@dimen/conversation_expand_button_expanded_size"
+        android:layout_height="@dimen/conversation_expand_button_size"
         android:layout_gravity="end|top"
         android:paddingStart="16dp"
-        android:paddingEnd="@dimen/notification_content_margin_end">
+        android:orientation="horizontal"
+        android:paddingEnd="@dimen/notification_content_margin_end"
+        android:clipToPadding="false"
+        android:clipChildren="false"
+        >
+        <!-- Images -->
+        <com.android.internal.widget.MessagingLinearLayout
+            android:id="@+id/conversation_image_message_container"
+            android:forceHasOverlappingRendering="false"
+            android:layout_width="40dp"
+            android:layout_height="40dp"
+            android:layout_marginEnd="11dp"
+            android:spacing="0dp"
+            android:layout_gravity="center"
+            android:clipToPadding="false"
+            android:clipChildren="false"
+            />
         <com.android.internal.widget.NotificationExpandButton
             android:id="@+id/expand_button"
             android:layout_width="@dimen/notification_header_expand_icon_size"
@@ -202,5 +244,5 @@
             android:clickable="false"
             android:importantForAccessibility="no"
             />
-    </FrameLayout>
+    </LinearLayout>
 </com.android.internal.widget.ConversationLayout>
diff --git a/core/res/res/layout/resolver_empty_states.xml b/core/res/res/layout/resolver_empty_states.xml
index 5fdf190..c7e1a21 100644
--- a/core/res/res/layout/resolver_empty_states.xml
+++ b/core/res/res/layout/resolver_empty_states.xml
@@ -18,15 +18,15 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/resolver_empty_state"
     android:layout_width="match_parent"
-    android:layout_height="@dimen/resolver_empty_state_height"
+    android:layout_height="wrap_content"
     android:orientation="vertical"
     android:gravity="center_horizontal"
     android:visibility="gone"
+    android:paddingTop="48dp"
     android:paddingStart="24dp"
     android:paddingEnd="24dp">
     <ImageView
         android:id="@+id/resolver_empty_state_icon"
-        android:layout_marginTop="48dp"
         android:layout_width="24dp"
         android:layout_height="24dp"
         android:layout_centerHorizontal="true" />
@@ -57,19 +57,29 @@
         android:text="@string/resolver_switch_on_work"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:background="@null"
         android:fontFamily="@string/config_headlineFontFamilyMedium"
         android:textSize="14sp"
         android:textColor="?attr/colorAccent"
-        android:layout_centerHorizontal="true" />
+        android:layout_centerHorizontal="true"
+        android:background="@drawable/resolver_turn_on_work_button_ripple_background"/>
     <ProgressBar
         android:id="@+id/resolver_empty_state_progress"
         style="@style/Widget.Material.Light.ProgressBar"
         android:visibility="gone"
         android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
+        android:layout_height="match_parent"
         android:indeterminate="true"
+        android:layout_alignTop="@+id/resolver_empty_state_icon"
+        android:layout_alignBottom="@+id/resolver_empty_state_button"
         android:layout_centerHorizontal="true"
         android:layout_below="@+id/resolver_empty_state_subtitle"
         android:indeterminateTint="?attr/colorAccent"/>
+    <TextView android:id="@+id/empty"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="?attr/colorBackgroundFloating"
+        android:text="@string/noApplications"
+        android:padding="@dimen/chooser_edge_margin_normal"
+        android:layout_marginBottom="56dp"
+        android:gravity="center"/>
 </RelativeLayout>
\ No newline at end of file
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 632c400..e506512 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Jou toestel sal uitgevee word"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Die administrasieprogram kan nie gebruik word nie. Jou toestel sal nou uitgevee word.\n\nKontak jou organisasie se administrateur as jy vrae het."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Druk is gedeaktiveer deur <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Persoonlike programme is deur \'n administrateur opgeskort"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tik hier om voldoening aan beleid te kontroleer."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Ek"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet-opsies"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV-opsies"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Foonopsies"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Skermslot"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Sit af"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Noodgeval"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Foutverslag"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Beëindig sessie"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"neem foto\'s en video\'s"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Hierdie program kan enige tyd met die kamera foto\'s neem en video\'s opneem."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Gee \'n program of diens toegang tot stelselkameras om foto\'s en video\'s te neem"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Hierdie bevoorregte | stelselprogram kan enige tyd met \'n stelselkamera foto\'s neem en video\'s opneem. Vereis dat die program ook die android.permission.CAMERA-toestemming het"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Laat \'n program of diens toe om terugbeloproepe te ontvang oor kameratoestelle wat oopgemaak of toegemaak word."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"beheer vibrasie"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Laat die program toe om die vibrator te beheer."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Stel die program in staat om toegang tot die vibreerderstand te kry."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Laat die program toe om sy oproepe deur die stelsel te stuur om die oproepervaring te verbeter."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"sien en beheer oproepe deur die stelsel."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Laat die program toe om deurlopende oproepe op die toestel te sien en te beheer. Dit sluit inligting in soos oproepnommers vir oproepe en die toedrag van die oproepe."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"vrygestel van beperkings op oudio-opnames"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Stel die program vry van beperkings om oudio op te neem."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"gaan voort met \'n oproep uit \'n ander program"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Laat die program toe om \'n oproep voort te sit wat in \'n ander program begin is."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"lees foonnommers"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Vee uit"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Invoermetode"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Teksaksies"</string>
-    <string name="email" msgid="2503484245190492693">"E-pos"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Stuur e-pos aan gekose adres"</string>
-    <string name="dial" msgid="4954567785798679706">"Bel"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Bel dié foonnommer"</string>
-    <string name="map" msgid="6865483125449986339">"Kaart"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Soek geselekteerde adres"</string>
-    <string name="browse" msgid="8692753594669717779">"Maak oop"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Maak gekose URL oop"</string>
-    <string name="sms" msgid="3976991545867187342">"SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Stuur SMS aan gekose foonnommer"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Voeg by"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Voeg by kontakte"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Bekyk"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Bekyk gekose tyd in kalender"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Skeduleer"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Skeduleer geleentheid vir gekose tyd"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Spoor na"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Spoor gekose vlug na"</string>
-    <string name="translate" msgid="1416909787202727524">"Vertaal"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Vertaal geselekteerde teks"</string>
-    <string name="define" msgid="5214255850068764195">"Definieer"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definieer geselekteerde teks"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Bergingspasie word min"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Sommige stelselfunksies werk moontlik nie"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Nie genoeg berging vir die stelsel nie. Maak seker jy het 250 MB spasie beskikbaar en herbegin."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Selnetwerk het nie internettoegang nie"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Netwerk het nie internettoegang nie"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Daar kan nie by private DNS-bediener ingegaan word nie"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Gekoppel"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> het beperkte konnektiwiteit"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Tik om in elk geval te koppel"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Het oorgeskakel na <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,18 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Verhoog volume bo aanbevole vlak?\n\nOm lang tydperke teen hoë volume te luister, kan jou gehoor beskadig."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Gebruik toeganklikheidkortpad?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Wanneer die kortpad aan is, sal \'n toeganklikheidkenmerk begin word as albei volumeknoppies 3 sekondes lank gedruk word."</string>
-    <string name="accessibility_select_shortcut_menu_title" msgid="7310194076629867377">"Tik op die toeganklikheidprogram wat jy wil gebruik"</string>
-    <string name="accessibility_edit_shortcut_menu_button_title" msgid="6096484087245145325">"Kies programme wat jy met toeganklikheidknoppie wil gebruik"</string>
-    <string name="accessibility_edit_shortcut_menu_volume_title" msgid="4849108668454490699">"Kies programme wat jy met die volumesleutelkortpad wil gebruik"</string>
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Gee <xliff:g id="SERVICE">%1$s</xliff:g> volle beheer oor jou toestel?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"As jy <xliff:g id="SERVICE">%1$s</xliff:g> aanskakel, sal jou toestel nie jou skermslot gebruik om data-enkripsie te verbeter nie."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Volle beheer is gepas vir programme wat jou help met toeganklikheidsbehoeftes, maar nie vir die meeste programme nie."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Bekyk en beheer skerm"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Dit kan alle inhoud op die skerm lees en inhoud bo-oor ander programme vertoon."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Bekyk en voer handelinge uit"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Dit kan jou interaksies met \'n program of \'n hardewaresensor naspoor en namens jou met programme interaksie hê."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Laat toe"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Weier"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Tik op \'n kenmerk om dit te begin gebruik:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> is afgeskakel"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Wysig kortpaaie"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Kanselleer"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Klaar"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Skakel kortpad af"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Gebruik kortpad"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Kleuromkering"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Kleurkorreksie"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Toeganklikheidskortpad het <xliff:g id="SERVICE_NAME">%1$s</xliff:g> aangeskakel"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Toeganklikheidskortpad het <xliff:g id="SERVICE_NAME">%1$s</xliff:g> afgeskakel"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Druk en hou albei volumesleutels drie sekondes lank om <xliff:g id="SERVICE_NAME">%1$s</xliff:g> te gebruik"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Vergroting"</string>
     <string name="user_switched" msgid="7249833311585228097">"Huidige gebruiker <xliff:g id="NAME">%1$s</xliff:g> ."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Skakel tans oor na <xliff:g id="NAME">%1$s</xliff:g> …"</string>
@@ -2013,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> lêers</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> lêer</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Regstreekse deling is nie beskikbaar nie"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Programmelys"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Opneemtoestemming is nie aan hierdie program verleen nie, maar dit kan oudio deur hierdie USB-toestel opneem."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Tuis"</string>
@@ -2028,21 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Toeganklikheid-kieslys"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> se onderskrifbalk."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> is in die BEPERK-groep geplaas"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Gesprek"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Groepsgesprek"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Persoonlik"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Werk"</string>
     <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Persoonlike aansig"</string>
     <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Werkaansig"</string>
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Kan nie met werkprogramme deel nie"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Kan nie met persoonlike programme deel nie"</string>
-    <string name="resolver_cant_share_cross_profile_explanation" msgid="5556640604460901386">"Jou IT-admin het deling tussen persoonlike en werkprofiele geblokkeer"</string>
-    <string name="resolver_cant_access_work_apps" msgid="375634344111233790">"Kan nie toegang tot werkprogramme kry nie"</string>
-    <string name="resolver_cant_access_work_apps_explanation" msgid="3958762224516867388">"Jou IT-admin laat jou nie toe om persoonlike inhoud in werkprogramme te bekyk nie"</string>
-    <string name="resolver_cant_access_personal_apps" msgid="1953215925406474177">"Kan nie toegang tot persoonlike programme kry nie"</string>
-    <string name="resolver_cant_access_personal_apps_explanation" msgid="1725572276741281136">"Jou IT-admin laat jou nie toe om werkinhoud in persoonlike programme te bekyk nie"</string>
-    <string name="resolver_turn_on_work_apps_share" msgid="619263911204978175">"Skakel werkprofiel aan om inhoud te deel"</string>
-    <string name="resolver_turn_on_work_apps_view" msgid="3073389230905543680">"Skakel werkprofiel aan om inhoud te bekyk"</string>
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Geen programme beskikbaar nie"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Kan dit nie met werkprogramme deel nie"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Jou IT-administrateur laat jou nie toe om hierdie inhoud met programme in jou werkprofiel te deel nie"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Kan dit nie met werkprogramme oopmaak nie"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Jou IT-administrateur laat jou nie toe om hierdie inhoud met programme in jou werkprofiel oop te maak nie"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Kan dit nie met persoonlike programme deel nie"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Jou IT-administrateur laat jou nie toe om hierdie inhoud met programme in jou persoonlike profiel te deel nie"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Kan nie met persoonlike programme oopmaak nie"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Jou IT-administrateur laat jou nie toe om hierdie inhoud met programme in jou persoonlike profiel oop te maak nie"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Werkprofiel is onderbreek"</string>
     <string name="resolver_switch_on_work" msgid="2873009160846966379">"Skakel aan"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Geen werkprogramme kan hierdie inhoud steun nie"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Geen werkprogramme kan hierdie inhoud oopmaak nie"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Geen persoonlike programme kan hierdie inhoud steun nie"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Geen persoonlike programme kan hierdie inhoud oopmaak nie"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Neem oudio in telefonie-oproepe op of speel dit"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Laat hierdie program, indien dit as die verstekbellerprogram aangewys is, toe om oudio in telefonie-oproepe op te neem of te speel."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 898a56a..7f7fe96 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"የእርስዎ መሣሪያ ይደመሰሳል"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"የአስተዳዳሪ መተግበሪያ ስራ ላይ ሊውል አይችልም። የእርስዎን መሣሪያ አሁን ይደመሰሳል።\n\nጥያቄዎች ካለዎት የድርጅትዎን አስተዳዳሪ ያነጋግሩ።"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"ማተም በ<xliff:g id="OWNER_APP">%s</xliff:g> ተሰናክሏል።"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"የግል መተግበሪያዎች በአስተዳዳሪ ታግዷል"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"የመመሪያ ተገዥነትን ለመፈተሽ እዚህ ላይ መለያ ያድርጉ።"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"እኔ"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"የጡባዊ አማራጮች"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV አማራጮች"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"የስልክ አማራጮች"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"ማያ ቆልፍ"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"ኃይል አጥፋ"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"ድንገተኛ አደጋ"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"የሳንካ ሪፖርት"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"ክፍለ-ጊዜን አብቃ"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ፎቶዎች እና ቪዲዮዎች ያንሱ"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"ይህ መተግበሪያ በማናቸውም ጊዜ ካሜራውን በመጠቀም ፎቶ ሊያነሳ እና ቪዲዮዎችን ሊቀርጽ ይችላል።"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"ሥዕሎችን ለማንሣት እና ቪዲዮዎችን ለመቅረጽ እንዲችሉ ወደ ሥርዓት ካሜራዎች ለመተግበሪያ ወይም ለአገልግሎት መዳረሻ ይፍቀዱ"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"ይህ ልዩ ፈቃድ ያለው | የሥርዓት መተግበሪያ በማናቸውም ጊዜ የሥርዓት ካሜራን በመጠቀም ሥዕሎችን ማንሣት እና ቪዲዮ መቅረጽ ይችላል። የ android.ፈቃድን ይጠይቃል። ካሜራ ፍቃድ በመተግበሪያውም ጭምር መያዝ ይኖርበታል"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"አንድ መተግበሪያ ወይም አገልግሎት እየተከፈቱ ወይም እየተዘጉ ስላሉ የካሜራ መሣሪያዎች መልሶ ጥሪዎችን እንዲቀበል ይፍቀዱ።"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"ነዛሪ ተቆጣጠር"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"ነዛሪውን ለመቆጣጠር ለመተግበሪያው ይፈቅዳሉ።"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"መተግበሪያው የንዝረት ሁኔታውን እንዲደርስ ያስችለዋል።"</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"መተግበሪያው የጥሪ ተሞክሮን እንዲያሻሽል ጥሪዎቹን በስርዓቱ በኩል እንዲያዞር ያስችለዋል።"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"በሥርዓቱ በኩል ጥሪዎችን ይመልከቱ እና ይቆጣጠሩ።"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"መተግበሪያው በመሣሪያው ላይ በመካሄድ ላይ ያሉ ጥሪዎችን እንዲመለከት እና እንዲቆጣጠር ይፈቅድለታል። ይህ ለጥሪዎች እንደ የጥሪ ቁጥሮች እና የጥሪዎች ሁኔታ የመሰለ መረጃን ያካትታል።"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ከኦዲዮ ቅጂ ገደቦች ያስወጡት"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"ኦዲዮን ለመቅዳት መተግበሪያውን ከገደቦች ያስወጡት።"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"በሌላ መተግበሪያ የተጀመረ ጥሪን መቀጠል"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"መተግበሪያው በሌላ መተግበሪያ ውስጥ የተጀመረ ጥሪ እንዲቀጥል ያስችለዋል።"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ስልክ ቁጥሮች ያንብቡ"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"ሰርዝ"</string>
     <string name="inputMethod" msgid="1784759500516314751">"ግቤት ስልት"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"የፅሁፍ እርምጃዎች"</string>
-    <string name="email" msgid="2503484245190492693">"ኢሜይል"</string>
-    <string name="email_desc" msgid="8291893932252173537">"ለተመረጡ አድራሻዎች ኢሜይል ላክ"</string>
-    <string name="dial" msgid="4954567785798679706">"ጥሪ"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"ወደ ተመረጠው ስልክ ቁጥር ደውል"</string>
-    <string name="map" msgid="6865483125449986339">"ካርታ"</string>
-    <string name="map_desc" msgid="1068169741300922557">"የተመረጠውን አድራሻ ያለበትን አግኝ"</string>
-    <string name="browse" msgid="8692753594669717779">"ክፈት"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"የተመረጠውን ዩአርኤል ክፈት"</string>
-    <string name="sms" msgid="3976991545867187342">"መልዕክት"</string>
-    <string name="sms_desc" msgid="997349906607675955">"ለተመረጠው ስልክ ቁጥር መልዕክት ላክ"</string>
-    <string name="add_contact" msgid="7404694650594333573">"አክል"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"ወደ እውቂያዎች ያክሉ"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"ይመልከቱ"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"የተመረጠውን ሰዓት በቀን መቁጠሪያ ውስጥ ይመልከቱ"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"መርሐግብር"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"ለተመረጠው ጊዜ የክስተት መርሐግብር ያስይዙ"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ተከታተል"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"የተመረጠውን በረራ ይከታተሉ"</string>
-    <string name="translate" msgid="1416909787202727524">"ተርጉም"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"የተመረጠ ጽሑፍን ተርጉም"</string>
-    <string name="define" msgid="5214255850068764195">"ግለጽ"</string>
-    <string name="define_desc" msgid="6916651934713282645">"የተመረጠ ጽሑፍን ግለጽ"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"የማከማቻ ቦታ እያለቀ ነው"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"አንዳንድ የስርዓት ተግባራት ላይሰሩ ይችላሉ"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"ለስርዓቱ የሚሆን በቂ ቦታ የለም። 250 ሜባ ነጻ ቦታ እንዳለዎት ያረጋግጡና ዳግም ያስጀምሩ።"</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"የተንቀሳቃሽ ስልክ አውታረ መረብ የበይነመረብ መዳረሻ የለውም"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"አውታረ መረብ የበይነመረብ መዳረሻ የለውም"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"የግል ዲኤንኤስ አገልጋይ ሊደረስበት አይችልም"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"ተገናኝቷል"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> የተገደበ ግንኙነት አለው"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"ለማንኛውም ለማገናኘት መታ ያድርጉ"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"ወደ <xliff:g id="NETWORK_TYPE">%1$s</xliff:g> ተቀይሯል"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ድምጹ ከሚመከረው መጠን በላይ ከፍ ይበል?\n\nበከፍተኛ ድምጽ ለረጅም ጊዜ ማዳመጥ ጆሮዎን ሊጎዳው ይችላል።"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"የተደራሽነት አቋራጭ ጥቅም ላይ ይዋል?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"አቋራጩ ሲበራ ሁለቱንም የድምጽ አዝራሮች ለ3 ሰከንዶች ተጭኖ መቆየት የተደራሽነት ባህሪን ያስጀምረዋል።"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> ሙሉ የመሣሪያዎ ቁጥጥር እንዲኖረው ይፈቀድለት?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g>ን ካበሩት መሳሪያዎ የውሂብ ምስጠራን ለማላቅ የማያ ገጽ መቆለፊያዎን አይጠቀምም።"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"ሙሉ ቁጥጥር ከተደራሽነት ፍላጎቶች ጋር እርስዎን ለሚያግዝዎት መተግበሪያዎች ተገቢ ነው ሆኖም ግን ለአብዛኛዎቹ መተግበሪያዎች አይሆንም።"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"ማያ ገጽን ይመልከቱ እና ይቆጣጠሩ"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"በማያ ገጹ ላይ ሁሉንም ይዘት ሊያነብ እና በሌሎች መተግበሪያዎች ላይ ይዘትን ሊያሳይ ይችላል።"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"ይመልከቱ እና እርምጃዎችን ይውሰዱ"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"ከመተግበሪያ ጋር ወይም የሃርድዌር ዳሳሽ ጋር እርስዎ ያልዎትን መስተጋብሮች ዱካ መከታተል እና በእርስዎ ምትክ ከመተግበሪያዎች ጋር መስተጋብር መፈጸም ይችላል።"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"ፍቀድ"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"ከልክል"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"አንድ ባህሪን መጠቀም ለመጀመር መታ ያድርጉት፦"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> ጠፍቷል"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"አቋራጮችን አርትዕ ያድርጉ"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ይቅር"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"ተከናውኗል"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"አቋራጩን አጥፋ"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"አቋራጭ ይጠቀሙ"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"ተቃራኒ ቀለም"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"የቀለም ማስተካከያ"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"የተደራሽነት አቋራጭ <xliff:g id="SERVICE_NAME">%1$s</xliff:g>ን አብርቶታል"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"የተደራሽነት አቋራጭ <xliff:g id="SERVICE_NAME">%1$s</xliff:g>ን አጥፍቶታል"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g>ን ለመጠቀም ለሦስት ሰከንዶች ሁለቱንም የድምፅ ቁልፎች ተጭነው ይያዙ"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"ማጉላት"</string>
     <string name="user_switched" msgid="7249833311585228097">"የአሁኑ ተጠቃሚ <xliff:g id="NAME">%1$s</xliff:g>።"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"ወደ <xliff:g id="NAME">%1$s</xliff:g> በመቀየር ላይ…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ፋይሎች</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ፋይሎች</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"ቀጥታ ማጋራት አይገኝም"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"የመተግበሪያዎች ዝርዝር"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"ይህ መተግበሪያ የመቅረጽ ፈቃድ አልተሰጠውም፣ ነገር ግን በዚህ ዩኤስቢ መሣሪያ በኩል ኦዲዮን መቅረጽ ይችላል።"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"መነሻ"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"የተደራሽነት ምናሌ"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"የ<xliff:g id="APP_NAME">%1$s</xliff:g> የሥዕል ገላጭ ጽሑፍ አሞሌ።"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ወደ የRESTRICTED ባልዲ ተከትቷል"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>፦"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"ውይይት"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"የቡድን ውይይት"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"የግል"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ሥራ"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"በሥራ መተግበሪያዎች ማጋራት አይቻልም"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"በግል መተግበሪያዎች ማጋራት አይቻልም"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ምንም መተግበሪያዎች አይገኙም"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"የግል እይታ"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"የስራ እይታ"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"ይህን በሥራ መተግበሪያዎች ማጋራት አይቻልም"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"የእርስዎ አይቲ አስተዳዳሪ ይህን ይዘት በእርስዎ የሥራ መገለጫ ላይ ባሉ መተግበሪያዎች ማጋራትን አይፈቅድም"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"ይህን በሥራ መተግበሪያዎች መክፈት አይቻልም"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"የእርስዎ አይቲ አስተዳዳሪ ይህን ይዘት በእርስዎ የሥራ መገለጫ ላይ ባሉ መተግበሪያዎች መክፈትን አይፈቅድም"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"ይህን በግል መተግበሪያዎች ማጋራት አይቻልም"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"የእርስዎ አይቲ አስተዳዳሪ ይህን ይዘት በእርስዎ የግል መገለጫ ላይ ባሉ መተግበሪያዎች ማጋራትን አይፈቅድም"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"ይህን በግል መተግበሪያዎች መክፈት አይቻልም"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"የእርስዎ አይቲ አስተዳዳሪ ይህን ይዘት በእርስዎ የግል መገለጫ ላይ ባሉ መተግበሪያዎች መክፈትን አይፈቅድም"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"የሥራ መገለጫ ባለበት ቆሟል"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"አብራ"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"ምንም የሥራ መተግበሪያዎች ይህን ይዘት መደገፍ አይችሉም"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"ምንም የሥራ መተግበሪያዎችን ይህን ይዘት መክፈት አይችሉም"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"ምንም የግል መተግበሪያዎች ይህን ይዘት መደገፍ አይችሉም"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"ምንም የግል መተግበሪያዎችን ይህን ይዘት መክፈት አይችሉም"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"በስልክ ጥሪዎች ላይ ኦዲዮን መቅዳት ወይም ማጫወት"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ይህ መተግበሪያ እንደ ነባሪ የመደወያ መተግበሪያ ሲመደብ በስልክ ጥሪዎች ላይ ኦዲዮን እንዲቀዳ ወይም እንዲያጫውት ያስችለዋል።"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index cf9cab1..dc7b597 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -208,8 +208,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"سيتم محو بيانات جهازك."</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"تعذّر استخدام تطبيق المشرف. سيتم محو بيانات جهازك الآن.\n\nإذا كانت لديك أسئلة، اتصل بمشرف مؤسستك."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"تم إيقاف الطباعة بواسطة <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"علّق المشرف عمل التطبيقات الشخصية"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"انقر هنا للتحقّق من الالتزام بالسياسات."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"أنا"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"خيارات الجهاز اللوحي"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"‏خيارات Android TV"</string>
@@ -243,6 +249,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"خيارات الهاتف"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"قفل الشاشة"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"إيقاف التشغيل"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"الطوارئ"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"تقرير الأخطاء"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"إنهاء الجلسة"</string>
@@ -446,7 +456,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"التقاط صور وفيديوهات"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"يمكن لهذا التطبيق التقاط صور وتسجيل فيديوهات باستخدام الكاميرا في أي وقت."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"السماح لتطبيق أو خدمة بالوصول إلى كاميرات النظام لالتقاط صور وتسجيل فيديوهات"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"‏إذا حصل تطبيق النظام على هذا الإذن، سيمكن لهذا التطبيق التقاط صور وتسجيل فيديوهات باستخدام كاميرا النظام في أي وقت. ويجب أن يحصل التطبيق أيضًا على الإذن android.permission.CAMERA."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"يسمح الإذن لتطبيق أو خدمة بتلقّي استدعاءات عما إذا كانت أجهزة الكاميرات مفتوحة أو مغلقة."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"التحكم في الاهتزاز"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"للسماح للتطبيق بالتحكم في الهزّاز."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"يسمح هذا الإذن للتطبيق بالوصول إلى حالة الهزّاز."</string>
@@ -460,6 +474,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"يسمح للتطبيق بتوجيه المكالمات من خلال النظام لتحسين تجربة الاتصال."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"رؤية المكالمات والتحكّم فيها من خلال النظام"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"يستطيع التطبيق رؤية المكالمات الجارية على الجهاز والتحكّم فيها. ويشمل ذلك معلومات مثل الأرقام وحالة المكالمات."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"الإعفاء من القيود على تسجيل الصوت"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"إعفاء التطبيق من القيود على تسجيل الصوت"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"مواصلة مكالمة من تطبيق آخر"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"السماح للتطبيق بمواصلة مكالمة بدأت في تطبيق آخر."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"قراءة أرقام الهواتف"</string>
@@ -1179,28 +1195,6 @@
     <string name="deleteText" msgid="4200807474529938112">"حذف"</string>
     <string name="inputMethod" msgid="1784759500516314751">"طريقة الإرسال"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"إجراءات النص"</string>
-    <string name="email" msgid="2503484245190492693">"إرسال بريد إلكتروني"</string>
-    <string name="email_desc" msgid="8291893932252173537">"مراسلة العنوان المختار عبر البريد الإلكتروني"</string>
-    <string name="dial" msgid="4954567785798679706">"اتصال"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"الاتصال برقم الهاتف المختار"</string>
-    <string name="map" msgid="6865483125449986339">"فتح تطبيق خرائط"</string>
-    <string name="map_desc" msgid="1068169741300922557">"تحديد موقع العنوان المختار"</string>
-    <string name="browse" msgid="8692753594669717779">"فتح"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"‏فتح عنوان URL المختار"</string>
-    <string name="sms" msgid="3976991545867187342">"إرسال رسائل قصيرة"</string>
-    <string name="sms_desc" msgid="997349906607675955">"مراسلة رقم الهاتف المختار"</string>
-    <string name="add_contact" msgid="7404694650594333573">"إضافة"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"إضافة إلى جهات الاتصال"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"عرض"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"عرض الوقت المختار في التقويم"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"تحديد موعد حدث"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"جدولة الحدث في الوقت المختار"</string>
-    <string name="view_flight" msgid="2042802613849690108">"تتبّع"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"تتبُّع الرحلة الجوية المختارة"</string>
-    <string name="translate" msgid="1416909787202727524">"ترجمة"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"ترجمة النص المُختار"</string>
-    <string name="define" msgid="5214255850068764195">"تعريف"</string>
-    <string name="define_desc" msgid="6916651934713282645">"تحديد النص المُختار"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"مساحة التخزين منخفضة"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"قد لا تعمل بعض وظائف النظام"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"ليست هناك مساحة تخزين كافية للنظام. تأكد من أنه لديك مساحة خالية تبلغ ٢٥٠ ميغابايت وأعد التشغيل."</string>
@@ -1339,7 +1333,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"شبكة الجوّال هذه غير متصلة بالإنترنت"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"الشبكة غير متصلة بالإنترنت"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"لا يمكن الوصول إلى خادم أسماء نظام نطاقات خاص"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"تمّ الاتصال."</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"إمكانية اتصال <xliff:g id="NETWORK_SSID">%1$s</xliff:g> محدودة."</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"يمكنك النقر للاتصال على أي حال."</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"تم التبديل إلى <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1401,7 +1394,7 @@
     <string name="usb_power_notification_message" msgid="7284765627437897702">"جارٍ شحن الجهاز المتصل. انقر لعرض خيارات أكثر."</string>
     <string name="usb_unsupported_audio_accessory_title" msgid="2335775548086533065">"تم اكتشاف ملحق صوتي تناظري"</string>
     <string name="usb_unsupported_audio_accessory_message" msgid="1300168007129796621">"الجهاز الذي تم توصيله بالهاتف غير متوافق معه. انقر للحصول على المزيد من المعلومات."</string>
-    <string name="adb_active_notification_title" msgid="408390247354560331">"‏تم توصيل تصحيح أخطاء الجهاز عبر USB"</string>
+    <string name="adb_active_notification_title" msgid="408390247354560331">"‏تم توصيل أداة تصحيح أخطاء الجهاز عبر USB"</string>
     <string name="adb_active_notification_message" msgid="5617264033476778211">"‏انقر لإيقاف تصحيح أخطاء الجهاز عبر USB."</string>
     <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"‏اختيار إيقاف تصحيح أخطاء USB."</string>
     <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"‏تم تفعيل ميزة \"تصحيح الأخطاء عبر شبكة Wi-Fi\""</string>
@@ -1719,21 +1712,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"هل تريد رفع مستوى الصوت فوق المستوى الموصى به؟\n\nقد يضر سماع صوت عالٍ لفترات طويلة بسمعك."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"هل تريد استخدام اختصار \"سهولة الاستخدام\"؟"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"عند تفعيل الاختصار، يؤدي الضغط على زرّي التحكّم في مستوى الصوت معًا لمدة 3 ثوانٍ إلى تفعيل إحدى ميزات إمكانية الوصول."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"هل تريد السماح لخدمة <xliff:g id="SERVICE">%1$s</xliff:g> بالتحكّم الكامل في جهازك؟"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"في حال تفعيل <xliff:g id="SERVICE">%1$s</xliff:g>، لن يستخدم جهازك ميزة قفل الشاشة لتحسين ترميز البيانات."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"إنّ التحكّم الكامل ليس ملائمًا لمعظم التطبيقات، باستثناء التطبيقات المعنية بسهولة الاستخدام."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"قراءة محتوى الشاشة والتحكم به"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"يمكنها قراءة كل المحتوى على الشاشة وعرض المحتوى عبر تطبيقات أخرى."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"عرض الإجراءات وتنفيذها"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"يمكنها تتبّع تعاملاتك مع تطبيق أو جهاز استشعار والتفاعل مع التطبيقات نيابةً عنك."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"سماح"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"رفض"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"انقر على ميزة لبدء استخدامها:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"تم إيقاف <xliff:g id="SERVICE_NAME">%s</xliff:g>."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"تعديل الاختصارات"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"إلغاء"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"تم"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"إيقاف الاختصار"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"استخدام الاختصار"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"عكس الألوان"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"تصحيح الألوان"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"شغَّل اختصار إمكانية الوصول خدمة <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"أوقف اختصار إمكانية الوصول خدمة <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"اضغط مع الاستمرار على مفتاحي مستوى الصوت لمدة 3 ثوانٍ لاستخدام <xliff:g id="SERVICE_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"التكبير"</string>
     <string name="user_switched" msgid="7249833311585228097">"المستخدم الحالي <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"جارٍ التبديل إلى <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2152,7 +2186,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> و<xliff:g id="COUNT_3">%d</xliff:g> ملف</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> وملف (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"لا تتوفّر إمكانية المشاركة المباشرة."</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"قائمة التطبيقات"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"‏لم يتم منح هذا التطبيق إذن تسجيل، ولكن يمكنه تسجيل الصوت من خلال جهاز USB هذا."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"الشاشة الرئيسية"</string>
@@ -2167,31 +2202,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"قائمة \"سهولة الاستخدام\""</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"شريط الشرح لتطبيق <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"تم وضع <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> في الحزمة \"محظورة\"."</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"محادثة"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"محادثة جماعية"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"شخصي"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"عمل"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"عرض المحتوى الشخصي"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"عرض محتوى العمل"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"تتعذّر المشاركة مع تطبيقات العمل"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"تتعذّر المشاركة مع التطبيقات الشخصية"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ليس هناك تطبيقات متاحة"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"تفعيل"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"تسجيل الصوت أو تشغيله في المكالمات الهاتفية"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"يسمح الإذن لهذا التطبيق بتسجيل الصوت أو تشغيله في المكالمات الهاتفية عندما يتم تخصيصه كالتطبيق التلقائي لبرنامج الاتصال."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index 75308c0..6befa3b 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"আপোনাৰ ডিভাইচৰ ডেটা মচা হ\'ব"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"এই প্ৰশাসক এপটো ব্যৱহাৰ কৰিব নোৱাৰি। এতিয়া আপোনাৰ ডিভাইচটোৰ ডেটা মচা হ\'ব।\n\nআপোনাৰ কিবা প্ৰশ্ন থাকিলে আপোনাৰ প্ৰতিষ্ঠানৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"প্ৰিণ্ট কৰা কাৰ্য <xliff:g id="OWNER_APP">%s</xliff:g>এ অক্ষম কৰি ৰাখিছে।"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ব্যক্তিগত এপ্‌সমূহ এগৰাকী প্ৰশাসকে নিলম্বিত কৰিছে"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"নীতি মানি চলেনে নাই পৰীক্ষা কৰিবলৈ ইয়াত টিপক।"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"মই"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"টে\'বলেটৰ বিকল্পসমূহ"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TVৰ বিকল্পসমূহ"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"ফ\'নৰ বিকল্পসমূহ"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"স্ক্ৰীণ ল\'ক"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"পাৱাৰ অফ"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"জৰুৰীকালীন কল"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"বাগ সম্পর্কীয় অভিযোগ"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"ছেশ্বন সমাপ্ত কৰক"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ফট\' তোলা আৰু ভিডিঅ\' ৰেকৰ্ড কৰা"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"এই এপে যিকোনো সময়তে কেমেৰা ব্যৱহাৰ কৰি ফট\' তুলিব আৰু ভিডিঅ\' ৰেকর্ড কৰিব পাৰে।"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"ফট’ উঠাবলৈ আৰু ভিডিঅ’ ৰেকৰ্ড কৰিবলৈ এটা এপ্লিকেশ্বন অথবা সেৱাক ছিষ্টেম কেমেৰাসমূহ এক্সেছ কৰিবলৈ দিয়ক"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"এই বিশেষাধিকাৰ প্ৰাপ্ত | ছিষ্টেম এপ্‌টোৱে এটা ছিষ্টেম কেমেৰা ব্যৱহাৰ কৰি যিকোনো সময়তে ফট’ উঠাব পাৰে আৰু ভিডিঅ’ ৰেকৰ্ড কৰিব পাৰে। লগতে এপ্‌টোৰো android.permission.CAMERAৰ অনুমতি থকাটো প্ৰয়োজনীয়"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"কোনো এপ্লিকেশ্বন অথবা সেৱাক কেমেৰা ডিভাইচসমূহ খোলা অথবা বন্ধ কৰাৰ বিষয়ে কলবেকসমূহ গ্ৰহণ কৰিবলৈ অনুমতি দিয়ক।"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"কম্পন নিয়ন্ত্ৰণ কৰক"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"ভাইব্ৰেটৰ নিয়ন্ত্ৰণ কৰিবলৈ এপটোক অনুমতি দিয়ে।"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"এপ্‌টোক কম্পন স্থিতিটো এক্সেছ কৰিবলৈ অনুমতি দিয়ে।"</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"কল কৰাৰ অভিজ্ঞতাক উন্নত কৰিবলৈ এপটোক ছিষ্টেমৰ জৰিয়তে কলসমূহ কৰিবলৈ দিয়ে।"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ছিষ্টেমৰ জৰিয়তে কলবোৰ চোৱা আৰু নিয়ন্ত্ৰণ কৰা।"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"এপটোক ডিভাইচত চলি থকা কল চাবলৈ আৰু নিয়ন্ত্ৰণ কৰিবলৈ অনুমতি দিয়ে। কলৰ সংখ্যা আৰু কলবোৰৰ স্থিতি ইয়াত অন্তৰ্ভুক্ত হয়।"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"অডিঅ’ ৰেকৰ্ড কৰাৰ প্ৰতিবন্ধকতাসমূহৰ পৰা ৰেহাই দিয়ক"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"অডিঅ’ ৰেকৰ্ড কৰাৰ প্ৰতিবন্ধকতাসমূহৰ পৰা এপ্‌টোক ৰেহাই দিয়ক।"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"অইন এটা এপত আৰম্ভ হোৱা কল এটা অব্যাহত ৰাখিব পাৰে"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"এপটোক এনে কল কৰিবলৈ দিয়ে যিটোৰ আৰম্ভণি অইন এটা এপত হৈছিল।"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ফ\'ন নম্বৰসমূহ পঢ়ে"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"মচক"</string>
     <string name="inputMethod" msgid="1784759500516314751">"ইনপুট পদ্ধতি"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"পাঠ বিষয়ক কাৰ্য"</string>
-    <string name="email" msgid="2503484245190492693">"ইমেইল কৰক"</string>
-    <string name="email_desc" msgid="8291893932252173537">"বাছনি কৰা ঠিকনালৈ ইমেইল পঠিয়াওক"</string>
-    <string name="dial" msgid="4954567785798679706">"কল কৰক"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"বাছনি কৰা ফ\'ন নাম্বাৰত কল কৰক"</string>
-    <string name="map" msgid="6865483125449986339">"মেপ খোলক"</string>
-    <string name="map_desc" msgid="1068169741300922557">"বাছনি কৰা ঠিকনাটো বিচাৰি উলিয়াওক"</string>
-    <string name="browse" msgid="8692753594669717779">"খোলক"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"বাছনি কৰা URL খোলক"</string>
-    <string name="sms" msgid="3976991545867187342">"বাৰ্তা পঠিয়াওক"</string>
-    <string name="sms_desc" msgid="997349906607675955">"বাছনি কৰা ফ’ন নম্বৰলৈ বাৰ্তা পঠিয়াওক"</string>
-    <string name="add_contact" msgid="7404694650594333573">"যোগ দিয়ক"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"সর্ম্পকসূচীত যোগ কৰক"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"চাওক"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"কেলেণ্ডাৰত বাছনি কৰা সময় চাওক"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"সময়সূচী নিৰ্ধাৰণ কৰক"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"বাছনি কৰা তাৰিখটো কাৰ্যক্ৰমৰ সময় হিচাপে নিৰ্ধাৰণ কৰক"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ট্ৰেক কৰক"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"বাছনি কৰা বিমানটো ট্ৰেক কৰক"</string>
-    <string name="translate" msgid="1416909787202727524">"অনুবাদ কৰক"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"বাছনি কৰা পাঠ অনুবাদ কৰক"</string>
-    <string name="define" msgid="5214255850068764195">"সংজ্ঞা দিব পাৰে"</string>
-    <string name="define_desc" msgid="6916651934713282645">"বাছনি কৰা পাঠৰ সংজ্ঞা দিব পাৰে"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"সঞ্চয়াগাৰৰ খালী ঠাই শেষ হৈ আছে"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"ছিষ্টেমৰ কিছুমান কাৰ্যকলাপে কাম নকৰিবও পাৰে"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"ছিষ্টেমৰ বাবে পৰ্যাপ্ত খালী ঠাই নাই। আপোনাৰ ২৫০এম. বি. খালী ঠাই থকাটো নিশ্চিত কৰক আৰু ৰিষ্টাৰ্ট কৰক।"</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"ম’বাইল নেটৱৰ্কৰ কোনো ইণ্টাৰনেটৰ এক্সেছ নাই"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"নেটৱৰ্কৰ কোনো ইণ্টাৰনেটৰ এক্সেছ নাই"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"ব্যক্তিগত DNS ছাৰ্ভাৰ এক্সেছ কৰিব নোৱাৰি"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"সংযোগ কৰা হ’ল"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g>ৰ সকলো সেৱাৰ এক্সেছ নাই"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"যিকোনো প্ৰকাৰে সংযোগ কৰিবলৈ টিপক"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g>লৈ সলনি কৰা হ’ল"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"অনুমোদিত স্তৰতকৈ ওপৰলৈ ভলিউম বঢ়াব নেকি?\n\nদীৰ্ঘ সময়ৰ বাবে উচ্চ ভলিউমত শুনাৰ ফলত শ্ৰৱণ ক্ষমতাৰ ক্ষতি হ\'ব পাৰে।"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"দিব্যাংগসকলৰ সুবিধাৰ শ্বৰ্টকাট ব্যৱহাৰ কৰেনে?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"শ্বৰ্টকাটটো অন হৈ থকাৰ সময়ত দুয়োটা ভলিউম বুটাম ৩ ছেকেণ্ডৰ বাবে হেঁচি ধৰি ৰাখিলে এটা সাধ্য সুবিধা আৰম্ভ হ’ব।"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g>ক আপোনাৰ ডিভাইচটোৰ সম্পূর্ণ নিয়ন্ত্ৰণ দিবনে?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"যদি আপুনি <xliff:g id="SERVICE">%1$s</xliff:g> অন কৰে, তেন্তে আপোনাৰ ডিভাইচটোৱে ডেটা এনক্ৰিপশ্বনৰ গুণগত মান উন্নত কৰিবলৈ স্ক্ৰীন লক ব্যৱহাৰ নকৰে।"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"আপোনাক সাধ্য সুবিধাৰ প্ৰয়োজনসমূহৰ জৰিয়তে সহায় কৰা এপ্‌সমূহৰ বাবে সম্পূর্ণ নিয়ন্ত্ৰণৰ সুবিধাটো সঠিক যদিও অধিকাংশ এপৰ বাবে এয়া সঠিক নহয়।"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"চাওক আৰু স্ক্ৰীণ নিয়ন্ত্ৰণ কৰক"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"ই স্ক্ৰীণৰ সকলো সমল পঢ়িব পাৰে আৰু অন্য এপ্‌সমূহৰ ওপৰত সমল প্ৰদর্শন কৰিব পাৰে।"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"কার্যসমূহ চাওক আৰু কৰক"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"ই আপুনি কোনো এপ্ বা হার্ডৱেৰ ছেন্সৰৰ সৈতে কৰা ভাব-বিনিময় আৰু আপোনাৰ হৈ অন্য কোনো লোকে এপৰ সৈতে কৰা ভাব-বিনিময় ট্ৰেক কৰিব পাৰে।"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"অনুমতি দিয়ক"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"অস্বীকাৰ কৰক"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"কোনো এটা সুবিধা ব্যৱহাৰ কৰিবলৈ সেইটোত টিপক:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> বন্ধ কৰা হৈছে"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"শ্বৰ্টকাটসমূহ সম্পাদনা কৰক"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"বাতিল কৰক"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"কৰা হ’ল"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"শ্বৰ্টকাট অফ কৰক"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"শ্বৰ্টকাট ব্যৱহাৰ কৰক"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"ৰং বিপৰীতকৰণ"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"ৰং শুধৰণী"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"দিব্যাংগসকলৰ সুবিধাৰ শ্বৰ্টকাটটোৱে <xliff:g id="SERVICE_NAME">%1$s</xliff:g>ক অন কৰিছে"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"দিব্যাংগসকলৰ সুবিধাৰ শ্বৰ্টকাটটোৱে <xliff:g id="SERVICE_NAME">%1$s</xliff:g>ক অফ কৰিছে"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> ব্যৱহাৰ কৰিবলৈ দুয়োটা ভলিউম বুটাম তিনি ছেকেণ্ডৰ বাবে হেঁচি ৰাখক"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"বিবৰ্ধন"</string>
     <string name="user_switched" msgid="7249833311585228097">"বৰ্তমানৰ ব্যৱহাৰকাৰী <xliff:g id="NAME">%1$s</xliff:g>।"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>লৈ সলনি কৰি থকা হৈছে…"</string>
@@ -1859,8 +1893,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"শ্ৰেণীবদ্ধ নকৰা"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"এই জাননীবোৰৰ গুৰুত্ব আপুনি ছেট কৰব লাগিব।"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"এই কার্যৰ সৈতে জড়িত থকা লোকসকলক ভিত্তি কৰি এইয়া গুৰুত্বপূর্ণ বুলি বিবেচনা কৰা হৈছ।"</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"কাষ্টম এপৰ জাননী"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g>ক <xliff:g id="ACCOUNT">%2$s</xliff:g>ৰ (এই একাউণ্টটোৰ এজন ব্যৱহাৰকাৰী ইতিমধ্যে আছে) জৰিয়তে এজন নতুন ব্যৱহাৰকাৰী সৃষ্টি কৰিবলৈ অনুমতি দিবনে ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g>ক <xliff:g id="ACCOUNT">%2$s</xliff:g>ৰ জৰিয়তে এজন নতুন ব্যৱহাৰকাৰী সৃষ্টি কৰিবলৈ অনুমতি দিবনে?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ভাষা যোগ কৰক"</string>
@@ -2017,7 +2050,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g>টা ফাইল</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g>টা ফাইল</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"পোনপটীয়া শ্বেয়াৰৰ সুবিধা নাই"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"এপ্‌সমূহৰ সূচী"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"এই এপ্‌টোক ৰেকর্ড কৰাৰ অনুমতি দিয়া হোৱা নাই কিন্তু ই এই ইউএছবি ডিভাইচটোৰ জৰিয়তে অডিঅ\' ৰেকর্ড কৰিব পাৰে।"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"গৃহ"</string>
@@ -2032,31 +2066,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"সাধ্য সুবিধাৰ মেনু"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>ৰ কেপশ্বন বাৰ।"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>ক সীমাবদ্ধ বাকেটটোত ৰখা হৈছে"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"বাৰ্তালাপ"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"গোটত কৰা বাৰ্তালাপ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ব্যক্তিগত"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"কৰ্মস্থান"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"ব্যক্তিগত ভিউ"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"কৰ্মস্থানৰ ভিউ"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"কৰ্মস্থানৰ এপ্‌সমূহৰ সৈতে শ্বেয়াৰ কৰিব নোৱাৰি"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ব্যক্তিগত এপ্‌সমূহৰ সৈতে শ্বেয়াৰ কৰিব নোৱাৰি"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"কোনো এপ্‌ উপলব্ধ নহয়"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"অন কৰক"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"টেলিফ’নী কলসমূহত অডিঅ’ ৰেকৰ্ড অথবা প্লে’ কৰক"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ডিফ’ল্ট ডায়েলাৰ এপ্লিকেশ্বন হিচাপে আবণ্টন কৰিলে, এই এপ্‌টোক টেলিফ’নী কলসমূহত অডিঅ’ ৰেকৰ্ড অথবা প্লে’ কৰিবলৈ অনুমতি দিয়ে।"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index fa3dbf6..e72ac4e 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Cihazınız təmizlənəcəkdir"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Admin tətbiqini istifadə etmək mümkün deyil. Cihaz indi təmizlənəcək.\n\nSualınız varsa, təşkilatın admini ilə əlaqə saxlayın."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Çap <xliff:g id="OWNER_APP">%s</xliff:g> tərəfindən deaktiv edildi."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Şəxsi tətbiqlər admin tərəfindən dayandırılıb"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Siyasətə uyğunluğu yoxlamaq üçün bura toxunun."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Mən"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Planşet seçimləri"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV seçimləri"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Telefon seçimləri"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Ekran kilidi"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Söndür"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Təcili"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Baq hesabatı"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Sessiyanı sonlandırın"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"şəkil və video çəkmək"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Bu tətbiq istədiyiniz zaman kameranı istifadə edərək şəkil çəkə və video qeydə ala bilər."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Şəkil və video çəkmək üçün tətbiq və ya xidmətlərin sistem kameralarına girişinə icazə verin"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Bu icazəli | sistem tətbiqi istənilən vaxt sistem kamerasından istifadə edərək şəkil və videolar çəkə bilər. Tətbiqdə saxlanılması üçün android.permission.CAMERA icazəsini tələb edir"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Tətbiqə və ya xidmətə kamera cihazlarının açılması və ya bağlanması haqqında geri zənglər qəbul etməyə icazə verin."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"vibrasiyaya nəzarət edir"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Tətbiqə vibratoru idarə etmə icazəsi verir."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Tətbiqə vibrasiya vəziyyətinə daxil olmaq imkanı verir."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Tətbiqə, zəng təcrübəsini yaxşılaşdırmaq üçün, zəngləri sistem üzərindən yönləndirməyə icazə verilir."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"zənglərə sistemdə baxın və nəzarət edin."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Tətbiqin cihazda davam edən zəngləri görməsinə və nəzarət etməsinə icazə verin. Bura zəng edən nömrələr və zənglərin statusu haqqında məlumat daxildir."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"səs yazısı məhdudiyyətlərindən azad etmə"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Səs yazmaq üçün tətbiqi məhdudiyyətlərdən azad edin."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"zəngə digər tətbiqdən davam edin"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Tətbiqə digər tətbiqdə başlayan zəngə davam etmək icazəsi verilir."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"telefon nömrələrini oxuyun"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Sil"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Daxiletmə metodu"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Mətn əməliyyatları"</string>
-    <string name="email" msgid="2503484245190492693">"E-poçtu aç"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Seçilmiş ünvana e-məktub yazın"</string>
-    <string name="dial" msgid="4954567785798679706">"Zəng edin"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Seçilmiş telefon nömrəsinə zəng edin"</string>
-    <string name="map" msgid="6865483125449986339">"Xəritəni aç"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Seçilmiş ünvanları tapın"</string>
-    <string name="browse" msgid="8692753594669717779">"Açın"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Seçilmiş linki açın"</string>
-    <string name="sms" msgid="3976991545867187342">"Mesaj yazın"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Seçilmiş telefon nömrəsini mesajla göndərin"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Əlavə edin"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Kontakta əlavə edin"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Baxın"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Təqvimdə seçilmiş vaxta baxın"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Təqvimdə planlayın"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Tədbiri seçilmiş vaxta planlaşdırın"</string>
-    <string name="view_flight" msgid="2042802613849690108">"İzləyin"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Seçilmiş uçuşu izləyin"</string>
-    <string name="translate" msgid="1416909787202727524">"Tərcümə edin"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Seçilmiş mətni tərcümə edin"</string>
-    <string name="define" msgid="5214255850068764195">"Təyin edin"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Seçilmiş mətni təyin edin"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Yaddaş yeri bitir"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Bəzi sistem funksiyaları işləməyə bilər"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Sistem üçün yetərincə yaddaş ehtiyatı yoxdur. 250 MB yaddaş ehtiyatının olmasına əmin olun və yenidən başladın."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobil şəbəkənin internetə girişi yoxdur"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Şəbəkənin internetə girişi yoxdur"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Özəl DNS serverinə giriş mümkün deyil"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Qoşuldu"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> bağlantını məhdudlaşdırdı"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"İstənilən halda klikləyin"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> şəbəkə növünə keçirildi"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Səsin həcmi tövsiyə olunan səviyyədən artıq olsun?\n\nYüksək səsi uzun zaman dinləmək eşitmə qabiliyyətinizə zərər vura bilər."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Əlçatımlılıq Qısayolu istifadə edilsin?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Qısayol aktiv olduqda, hər iki səs düyməsinə 3 saniyə basıb saxlamaqla əlçatımlılıq funksiyası başladılacaq."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> xidmətinin cihaza tam nəzarət etməsinə icazə verilsin?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g> aktiv olarsa, cihazınız data şifrələnməsini genişləndirmək üçün ekran kilidini istifadə etməyəcək."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Tam nəzarət əlçatımlılıq ehtiyaclarınızı ödəyən bəzi tətbiqlər üçün uyğundur."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Baxış və nəzarət ekranı"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Ekrandakı bütün kontenti oxuya və digər tətbiqlərdəki kontenti göstərə bilər."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Əməliyyatlara baxın və icra edin"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"O, tətbiq və ya avadanlıq sensoru ilə interaktivliyinizi izləyir və əvəzinizdən tətbiqlərlə qarşılıqlı əlaqəyə girir."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"İcazə verin"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"İmtina edin"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Funksiyanı istifadə etmək üçün onun üzərinə toxunun:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> deaktiv edilib"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Qısayolları redaktə edin"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Ləğv edin"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Hazırdır"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Qısayolu Deaktiv edin"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Qısayol İstifadə edin"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Rəng İnversiyası"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Rəng korreksiyası"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Əlçatımlıq Qısayolu <xliff:g id="SERVICE_NAME">%1$s</xliff:g> xidmətini aktiv etdi"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Əlçatımlıq Qısayolu <xliff:g id="SERVICE_NAME">%1$s</xliff:g> xidmətini deaktiv etdi"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> istifadə etmək üçün hər iki səs düyməsini üç saniyə basıb saxlayın"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Böyütmə"</string>
     <string name="user_switched" msgid="7249833311585228097">"Cari istifadəçi <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> adına keçirilir…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> fayl</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> fayl</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Birbaşa paylaşım əlçatan deyil"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Tətbiq siyahısı"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Bu tətbiqə yazmaq icazəsi verilməyib, lakin, bu USB vasitəsilə səs yaza bilər."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Əsas səhifə"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Əlçatımlılıq Menyusu"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> başlıq paneli."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> MƏHDUDLAŞDIRILMIŞ səbətinə yerləşdirilib"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Söhbət"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Qrup Söhbəti"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Şəxsi"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"İş"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"İş tətbiqləri ilə paylaşmaq olmur"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Şəxsi tətbiqlərlə paylaşmaq olmur"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Heç bir tətbiq əlçatan deyil"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Şəxsi məzmuna baxış"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"İş məzmununa baxış"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Bunu iş tətbiqləri ilə paylaşmaq mümkün deyil"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"İT admininiz bu məzmunu iş profilinizdəki tətbiqlər ilə paylaşmağa icazə vermir"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Bunu iş tətbiqləri ilə açmaq mümkün deyil"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"İT admininiz bu məzmunu iş profilinizdəki tətbiqlər ilə açmağa icazə vermir"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Bunu şəxsi tətbiqlərlə paylaşmaq mümkün deyil"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"İT admininiz bu məzmunu şəxsi profilinizdəki tətbiqlər ilə paylaşmağa icazə vermir"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Bunu şəxsi tətbiqlər ilə açmaq mümkün deyil"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"İT admininiz bu məzmunu şəxsi profilinizdəki tətbiqlər ilə açmağa icazə vermir"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"İş profilinə fasilə verilib"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Aktiv edin"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Bu məzmunu heç bir iş tətbiqi dəstəkləyə bilmir"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Bu məzmunu heç bir iş tətbiqi ilə açmaq mümkün deyil"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Bu məzmunu heç bir şəxsi tətbiq dəstəkləyə bilmir"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Bu məzmunu heç bir şəxsi tətbiq ilə açmaq mümkün deyil"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Telefon zənglərində audio yazmaq və ya oxutmaq"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Defolt nömrəyığan tətbiq kimi təyin edildikdə, bu tətbiqə telefon zənglərində audio yazmaq və ya oxutmaq üçün icazə verir."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index c128521..c32c2eb 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -202,8 +202,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Uređaj će biti obrisan"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Ne možete da koristite ovu aplikaciju za administratore. Uređaj će sada biti obrisan.\n\nAko imate pitanja, kontaktirajte administratora organizacije."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Štampanje je onemogućila aplikacija <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Administrator je suspendovao lične aplikacije"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Dodirnite ovde da biste proverili usklađenost sa smernicama."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Ja"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opcije za tablet"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opcije Android TV-a"</string>
@@ -237,6 +243,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opcije telefona"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Zaključaj ekran"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Isključi"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Hitni poziv"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Izveštaj o grešci"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Završi sesiju"</string>
@@ -437,7 +447,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"snimanje fotografija i video snimaka"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Ova aplikacija može da snima fotografije i video snimke pomoću kamere u bilo kom trenutku."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Dozvolite nekoj aplikaciji ili usluzi da pristupa kamerama sistema da bi snimala slike i video snimke"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Ova privilegovana | sistemska aplikacija može da snima slike i video snimke pomoću kamere sistema u bilo kom trenutku. Aplikacija treba da ima i dozvolu android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Dozvolite aplikaciji ili usluzi da dobija povratne pozive o otvaranju ili zatvaranju uređaja sa kamerom."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"kontrola vibracije"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Dozvoljava aplikaciji da kontroliše vibraciju."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Dozvoljava aplikaciji da pristupa stanju vibriranja."</string>
@@ -451,6 +465,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Dozvoljava aplikaciji da preusmerava pozive preko sistema da bi poboljšala doživljaj pozivanja."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"pregled i kontrola poziva preko sistema."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Dozvoljava aplikaciji da pregleda i kontroliše trenutne pozive na uređaju. To obuhvata informacije poput brojeva telefona i statusa poziva."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"izuzimanje iz ograničenja za snimanje zvuka"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Izuzmite aplikaciju iz ograničenja za snimanje zvuka."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"nastavi poziv u drugoj aplikaciji"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Dozvoljava aplikaciji da nastavi poziv koji je započet u drugoj aplikaciji."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"čitanje brojeva telefona"</string>
@@ -1119,28 +1135,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Izbriši"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Metod unosa"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Radnje u vezi sa tekstom"</string>
-    <string name="email" msgid="2503484245190492693">"Pošalji imejl"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Pošaljite imejl na izabranu adresu"</string>
-    <string name="dial" msgid="4954567785798679706">"Pozovi"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Pozovite izabrani broj telefona"</string>
-    <string name="map" msgid="6865483125449986339">"Prikaži na mapi"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Pronađite izabranu adresu"</string>
-    <string name="browse" msgid="8692753594669717779">"Otvori"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Otvorite izabrani URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Pošalji SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Pošaljite SMS na izabrani broj telefona"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Dodaj"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Dodajte u kontakte"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Prikaži"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Pogledajte izabrano vreme u kalendaru"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Zakaži"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Zakažite događaj u izabrano vreme"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Prati"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Pratite izabrani let"</string>
-    <string name="translate" msgid="1416909787202727524">"Prevedi"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Prevedite izabrani tekst"</string>
-    <string name="define" msgid="5214255850068764195">"Definiši"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definišite izabrani tekst"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Memorijski prostor je na izmaku"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Neke sistemske funkcije možda ne funkcionišu"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Nema dovoljno memorijskog prostora za sistem. Uverite se da imate 250 MB slobodnog prostora i ponovo pokrenite."</string>
@@ -1279,7 +1273,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobilna mreža nema pristup internetu"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Mreža nema pristup internetu"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Pristup privatnom DNS serveru nije uspeo"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Povezano je"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> ima ograničenu vezu"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Dodirnite da biste se ipak povezali"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Prešli ste na tip mreže <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1653,21 +1646,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Želite da pojačate zvuk iznad preporučenog nivoa?\n\nSlušanje glasne muzike duže vreme može da vam ošteti sluh."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Želite li da koristite prečicu za pristupačnost?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kada je prečica uključena, pritisnite oba dugmeta za jačinu zvuka da biste pokrenuli funkciju pristupačnosti."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Želite li da dozvolite da usluga <xliff:g id="SERVICE">%1$s</xliff:g> ima potpunu kontrolu nad uređajem?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Ako uključite uslugu <xliff:g id="SERVICE">%1$s</xliff:g>, uređaj neće koristiti zaključavanje ekrana da bi poboljšao šifrovanje podataka."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Potpuna kontrola je primerena za aplikacije koje vam pomažu kod usluga pristupačnosti, ali ne i za većinu aplikacija."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Pregledaj i kontroliši ekran"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Može da čita sav sadržaj na ekranu i prikazuje ga u drugim aplikacijama."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Pregledaj i obavljaj radnje"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Može da prati interakcije sa aplikacijom ili senzorom hardvera i koristi aplikacije umesto vas."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Dozvoli"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Odbij"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Dodirnite neku funkciju da biste počeli da je koristite:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Usluga <xliff:g id="SERVICE_NAME">%s</xliff:g> je isključena"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Izmenite prečice"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Otkaži"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Gotovo"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Isključi prečicu"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Koristi prečicu"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inverzija boja"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Korekcija boja"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Prečica za pristupačnost je uključila uslugu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Prečica za pristupačnost je isključila uslugu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Pritisnite i zadržite oba tastera za jačinu zvuka tri sekunde da biste koristili <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Uvećanje"</string>
     <string name="user_switched" msgid="7249833311585228097">"Aktuelni korisnik <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Prebacivanje na <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2050,7 +2084,8 @@
       <item quantity="few"><xliff:g id="FILE_NAME_2">%s</xliff:g> i još <xliff:g id="COUNT_3">%d</xliff:g> datoteke</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> i još <xliff:g id="COUNT_3">%d</xliff:g> datoteka</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Direktno deljenje nije dostupno"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Lista aplikacija"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Ova aplikacija nema dozvolu za snimanje, ali bi mogla da snima zvuk pomoću ovog USB uređaja."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Početak"</string>
@@ -2065,31 +2100,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Meni Pristupačnost"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Traka sa naslovima aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Paket <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> je dodat u segment OGRANIČENO"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Konverzacija"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Grupna konverzacija"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Lični"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Poslovni"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ne možete da delite sadržaj sa aplikacijama za posao"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Ne možete da delite sadržaj sa ličnim aplikacijama"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nema dostupnih aplikacija"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Lični prikaz"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Prikaz za posao"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Ne možete da delite ovaj sadržaj pomoću aplikacija za posao"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"IT administrator vam ne dozvoljava da delite ovaj sadržaj pomoću aplikacija na profilu za Work"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Ne možete da otvorite ovaj sadržaj pomoću aplikacija za posao"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"IT administrator vam ne dozvoljava da otvorite ovaj sadržaj pomoću aplikacija na profilu za Work"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Ne možete da delite ovaj sadržaj pomoću ličnih aplikacija"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"IT administrator vam ne dozvoljava da delite ovaj sadržaj pomoću aplikacija na ličnom profilu"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Ne možete da otvorite ovaj sadržaj pomoću ličnih aplikacija"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"IT administrator vam ne dozvoljava da otvorite ovaj sadržaj pomoću aplikacija na ličnom profilu"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Profil za Work je pauziran"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Uključi"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Nijedna aplikacija za posao ne može da podržava ovaj sadržaj"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Nijedna aplikacija za posao ne može da otvori ovaj sadržaj"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Nijedna lična aplikacija ne može da podržava ovaj sadržaj"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Nijedna lična aplikacija ne može da otvori ovaj sadržaj"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Snimanje ili puštanje zvuka u telefonskim pozivima"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Omogućava ovoj aplikaciji, kada je dodeljena kao podrazumevana aplikacija za pozivanje, da snima ili pušta zvuk u telefonskim pozivima."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 87ccfe5..4ca0e9d 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -204,8 +204,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Даныя вашай прылады будуць сцерты"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Немагчыма выкарыстоўваць праграму адміністравання. Звесткі на вашай прыладзе будуць выдалены.\n\nКалі ў вас ёсць пытанні, звярніцеся да адміністратара арганізацыі."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Друк адключаны ўладальнікам праграмы <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Асабістыя праграмы заблакіраваны адміністратарам"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Націсніце тут, каб упэўніцца ў адпаведнасці правілам."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Я"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Параметры планшэта"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Параметры Android TV"</string>
@@ -239,6 +245,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Параметры тэлефона"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Блакіроўка экрана"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Выключыць"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Экстранны выклік"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Справаздача пра памылкі"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Скончыць сеанс"</string>
@@ -440,7 +450,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"рабіць фатаграфіі і відэа"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Гэта праграма можа рабіць фота і запісваць відэа з дапамогай камеры ў любы час."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Дазволіць праграме або сэрвісу атрымліваць доступ да сістэмных камер, каб здымаць фота і запісваць відэа"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Гэта прыярытэтная | сістэмная праграма можа здымаць фота і запісваць відэа, выкарыстоўваючы сістэмную камеру. Праграме патрэбны дазвол android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Дазволіць праграме ці сэрвісу атрымліваць зваротныя выклікі наконт адкрыцця ці закрыцця прылад камеры."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"кіраванне вібрацыяй"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Дазваляе прыкладанням кіраваць вібрацыяй."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Дазваляе праграме атрымліваць доступ да вібрасігналу."</string>
@@ -454,6 +468,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Дазваляе праграме перанакіроўваць выклікі праз сістэму ў мэтах паляпшэння выклікаў."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"праглядаць выклікі і кіраваць імі праз сістэму."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Дазваляе праграме праглядаць на прыладзе ўваходныя выклікі і кіраваць імі. Гэта інфармацыя ўключае нумары выклікаў і звесткі пра іх краіну."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"скасаванне абмежаванняў на запіс аўдыя"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"У дачыненні да вашай праграмы не будуць дзейнічаць абмежаванні на запіс аўдыя."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"працяг выкліку з іншай праграмы"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Дазваляе праграме працягваць выклік, які пачаўся ў іншай праграме."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"счытваць нумары тэлефонаў"</string>
@@ -1139,28 +1155,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Выдалiць"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Метад уводу"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Дзеянні з тэкстам"</string>
-    <string name="email" msgid="2503484245190492693">"Напісаць ліст"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Напісаць электронны ліст на выбраны адрас"</string>
-    <string name="dial" msgid="4954567785798679706">"Выклікаць"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Звязацца з абанентам"</string>
-    <string name="map" msgid="6865483125449986339">"Адкрыць карту"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Паказаць выбраны адрас на карце"</string>
-    <string name="browse" msgid="8692753594669717779">"Адкрыць"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Адкрыць URL у браўзеры"</string>
-    <string name="sms" msgid="3976991545867187342">"Напісаць SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Адправіць паведамленне на выбраны нумар"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Дадаць"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Дадаць у кантакты"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Прагледзець"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Паказаць выбраны час у календары"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Запланаваць"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Запланаваць падзею ў выбраны час"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Сачыць"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Адсочваць рэйс"</string>
-    <string name="translate" msgid="1416909787202727524">"Перакласці"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Перакласці вылучаны тэкст"</string>
-    <string name="define" msgid="5214255850068764195">"Вызначыць"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Вызначыць вылучаны тэкст"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Месца для захавання на зыходзе"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Некаторыя сістэмныя функцыі могуць не працаваць"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Не хапае сховішча для сістэмы. Пераканайцеся, што ў вас ёсць 250 МБ свабоднага месца, і перазапусціце."</string>
@@ -1299,7 +1293,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Мабільная сетка не мае доступу ў інтэрнэт"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Сетка не мае доступу ў інтэрнэт"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Не ўдалося атрымаць доступ да прыватнага DNS-сервера"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Падключана"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> мае абмежаваную магчымасць падключэння"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Націсніце, каб падключыцца"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Выкананы пераход да <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1675,21 +1668,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Павялiчыць гук вышэй рэкамендаванага ўзроўню?\n\nДоўгае праслухоўванне музыкi на вялiкай гучнасцi можа пашкодзiць ваш слых."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Выкарыстоўваць камбінацыю хуткага доступу для спецыяльных магчымасцей?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Калі хуткі доступ уключаны, вы можаце націснуць абедзве кнопкі гучнасці і ўтрымліваць іх 3 секунды, каб запусціць функцыю спецыяльных магчымасцей."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Дазволіць сэрвісу \"<xliff:g id="SERVICE">%1$s</xliff:g>\" мець поўны кантроль над вашай прыладай?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Калі вы ўключыце сэрвіс \"<xliff:g id="SERVICE">%1$s</xliff:g>\", на прыладзе не будзе выкарыстоўвацца блакіроўка экрана для паляпшэння шыфравання даных."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Поўны кантроль прызначаны для сэрвісаў спецыяльных магчымасцей, аднак не падыходзіць для большасці праграм."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Прагляд экрана і кіраванне ім"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Функцыя можа распазнаваць усё змесціва на экране і адлюстроўваць яго паверх іншых праграм."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Прагляд і выкананне дзеянняў"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Гэта функцыя можа адсочваць вашы ўзаемадзеянні з праграмай ці датчыкам апаратнага забеспячэння і ўзаемадзейнічаць з праграмамі ад вашага імя."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Дазволіць"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Адмовіць"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Каб пачаць выкарыстоўваць функцыю, націсніце на яе:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Сэрвіс \"<xliff:g id="SERVICE_NAME">%s</xliff:g>\" выключаны"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Змяніць ярлыкі"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Скасаваць"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Гатова"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Дэактываваць камбінацыю хуткага доступу"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Выкарыстоўваць камбінацыю хуткага доступу"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Інверсія колеру"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Карэкцыя колеру"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> быў уключаны з дапамогай камбінацыі хуткага доступу для спецыяльных магчымасцей"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> быў адключаны з дапамогай камбінацыі хуткага доступу для спецыяльных магчымасцей"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Каб карыстацца сэрвісам \"<xliff:g id="SERVICE_NAME">%1$s</xliff:g>\", націсніце і ўтрымлівайце на працягу трох секунд абедзве клавішы гучнасці"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Павелічэнне"</string>
     <string name="user_switched" msgid="7249833311585228097">"Бягучы карыстальнік <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Пераход да <xliff:g id="NAME">%1$s</xliff:g>..."</string>
@@ -2084,7 +2118,8 @@
       <item quantity="many"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> файлаў</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> файла</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Непасрэднае абагульванне недаступнае"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Спіс праграм"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"У гэтай праграмы няма дазволу на запіс, аднак яна зможа запісваць аўдыя праз гэту USB-прыладу."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Галоўная старонка"</string>
@@ -2099,31 +2134,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Меню спецыяльных магчымасцей"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Панэль субцітраў праграмы \"<xliff:g id="APP_NAME">%1$s</xliff:g>\"."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакет \"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>\" дададзены ў АБМЕЖАВАНУЮ групу"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Размова"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Групавая размова"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Асабістыя"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Працоўныя"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Прагляд асабістага змесціва"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Прагляд працоўнага змесціва"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Не ўдалося абагуліць з працоўнымі праграмамі"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Не ўдалося абагуліць з асабістымі праграмамі"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Няма даступных праграм"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Уключыць"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Запісваць або прайграваць аўдыя ў тэлефонных выкліках"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Дазваляе гэтай праграме (калі яна наладжана ў якасці стандартнага набіральніка нумара) запісваць або прайграваць аўдыя ў тэлефонных выкліках."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index d683062..b50fadf 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Данните на устройството ви ще бъдат изтрити"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Приложението за администриране не може да се използва. Сега данните на устройството ви ще бъдат изтрити.\n\nАко имате въпроси, свържете се с администратора на организацията си."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Отпечатването е деактивиранo от <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Личните приложения може да са спрени от администратора"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Докоснете тук, за да проверите дали правилата ст спазват."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Аз"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Опции за таблета"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Опции за Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Опции на телефона"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Заключване на екрана"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Изключване"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Спешно обаждане"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Сигнал за програмна грешка"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Прекратяване на сесията"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"правене на снимки и видеоклипове"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Това приложение може по всяко време да прави снимки и да записва видеоклипове посредством камерата."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Разрешаване на достъп на приложение или услуга до системните камери с цел правене на снимки и видеоклипове"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Това привилегировано/системно приложение може по всяко време да прави снимки и да записва видеоклипове посредством системна камера. Необходимо е също на приложението да бъде дадено разрешението android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Разрешаване на приложение или услуга да получават обратни повиквания за отварянето или затварянето на снимачни устройства."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"контролиране на вибрирането"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Разрешава на приложението да контролира устройството за вибрация."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Дава възможност на приложението да осъществява достъп до състоянието на вибриране."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Разрешава на приложението да маршрутизира обажданията си чрез системата с цел подобряване на свързаната с тях практическа работа."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"вижда и управлява обажданията чрез системата."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Разрешава на приложението да вижда и управлява текущите обаждания на устройството. Това включва различна информация, като например номерата и състоянието на обажданията."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"освобождаване от ограниченията за запис на звук"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Освобождава приложението от ограниченията за запис на звук."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"продължаване на обаждане от друго приложение"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Разрешава на приложението да продължи обаждане, стартирано в друго приложение."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"четене на телефонните номера"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Изтриване"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Метод на въвеждане"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Действия с текста"</string>
-    <string name="email" msgid="2503484245190492693">"Имейл"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Изпращане на имейл до избрания адрес"</string>
-    <string name="dial" msgid="4954567785798679706">"Обаждане"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Обаждане на избрания телефонен номер"</string>
-    <string name="map" msgid="6865483125449986339">"Карта"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Намиране на избрания адрес"</string>
-    <string name="browse" msgid="8692753594669717779">"Отваряне"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Отваряне на избрания URL адрес"</string>
-    <string name="sms" msgid="3976991545867187342">"Съобщение"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Изпращане на съобщение до избрания телефонен номер"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Добавяне"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Добавяне към контактите"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Преглед"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Преглед на избраната дата в календара"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Насрочване"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Насрочване на събитие за избраната дата"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Проследяване"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Проследяване на избрания полет"</string>
-    <string name="translate" msgid="1416909787202727524">"Превод"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Превод на избрания текст"</string>
-    <string name="define" msgid="5214255850068764195">"Определение"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Определение на избрания текст"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Мястото в хранилището е на изчерпване"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Възможно е някои функции на системата да не работят"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"За системата няма достатъчно място в хранилището. Уверете се, че имате свободни 250 МБ, и рестартирайте."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Мобилната мрежа няма достъп до интернет"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Мрежата няма достъп до интернет"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Не може да се осъществи достъп до частния DNS сървър"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Установена е връзка"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> има ограничена свързаност"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Докоснете, за да се свържете въпреки това"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Превключи се към <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Да се увеличи ли силата на звука над препоръчителното ниво?\n\nПродължителното слушане при висока сила на звука може да увреди слуха ви."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Искате ли да използвате пряк път към функцията за достъпност?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Когато прекият път е включен, можете да стартирате дадена функция за достъпност, като натиснете двата бутона за силата на звука и ги задържите за 3 секунди."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Искате ли да разрешите на <xliff:g id="SERVICE">%1$s</xliff:g> да има пълен контрол над устройството ви?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Ако включите <xliff:g id="SERVICE">%1$s</xliff:g>, устройството ви няма да подобрява шифроването на данни посредством опцията ви за заключване на екрана."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Пълният контрол е подходящ за приложенията, които помагат на потребителите със специални нужди, но не и за повечето приложения."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Преглед и управление на екрана"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Услугата може да чете цялото съдържание на екрана и да показва такова върху други приложения."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Преглед и извършване на действия"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Услугата може да проследява взаимодействията ви с дадено приложение или хардуерен сензор, както и да взаимодейства с приложенията от ваше име."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Разреш."</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Отказ"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Докоснете дадена функция, за да започнете да я използвате:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Изключихте <xliff:g id="SERVICE_NAME">%s</xliff:g>"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Редактиране на преките пътища"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Отказ"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Готово"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Изключване на прекия път"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Използване на пряк път"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Инвертиране на цветовете"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Коригиране на цветовете"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Прекият път за достъпност включи <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Прекият път за достъпност изключи <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"За да използвате <xliff:g id="SERVICE_NAME">%1$s</xliff:g>, натиснете двата бутона за силата на звука и ги задръжте за 3 секунди"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ниво на мащаба"</string>
     <string name="user_switched" msgid="7249833311585228097">"Текущ потребител <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Превключва се към <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> файла</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> файл</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Няма възможност за директно споделяне"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Списък с приложения"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Приложението няма разрешение за записване, но може да записва звук чрез това USB устройство."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Начало"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Меню за достъпност"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Лента за надписи на <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакетът <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> е поставен в ОГРАНИЧЕНИЯ контейнер"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Разговор"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Групов разговор"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Лични"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Служебни"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Споделянето със служебни приложения не е възможно"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Споделянето с лични приложения не е възможно"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Няма приложения"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Личен изглед"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Служебен изглед"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Споделянето чрез служебни приложения не е възможно"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Системният ви администратор не разрешава споделянето на това съдържание с приложения в служебния ви потребителски профил"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Отварянето със служебни приложения не е възможно"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Системният ви администратор не разрешава отварянето на това съдържание с приложения в служебния ви потребителски профил"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Споделянето чрез лични приложения не е възможно"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Системният ви администратор не разрешава споделянето на това съдържание с приложения в личния ви потребителски профил"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Отварянето с лични приложения не е възможно"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Системният ви администратор не разрешава отварянето на това съдържание с приложения в личния ви потребителски профил"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Служебният потребителски профил е поставен на пауза"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Включване"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Това съдържание не се поддържа от нито едно служебно приложение"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Това съдържание не може да се отвори от нито едно служебно приложение"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Това съдържание не се поддържа от нито едно лично приложение"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Това съдържание не може да се отвори от нито едно лично приложение"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Записване или възпроизвеждане на аудио при телефонни обаждания"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Дава възможност на това приложение да записва или възпроизвежда аудио при телефонни обаждания, когато е зададено като основно приложение за набиране."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index 8994e86..1aa3895 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"আপনার ডিভাইসটি মুছে ফেলা হবে"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"অ্যাডমিন অ্যাপটি ব্যবহার করা যাবে না। আপনার ডিভাইসে থাকা সবকিছু এখন মুছে ফেলা হবে।\n\nকোনও প্রশ্ন থাকলে আপনার প্রতিষ্ঠানের অ্যাডমিনের সাথে যোগাযোগ করুন।"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> প্রিন্টিং বন্ধ রেখেছে।"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"অ্যাডমিন ব্যক্তিগত অ্যাপ সাসপেন্ড করেছেন"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"নীতি মেনে চলা হচ্ছে কিনা তা যাচাই করতে এখানে ট্যাপ করুন।"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"আমাকে"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ট্যাবলেট বিকল্পগুলি"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV-র বিকল্প"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"ফোন বিকল্পগুলি"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"স্ক্রীণ লক"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"পাওয়ার বন্ধ করুন"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"জরুরী"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"ত্রুটির প্রতিবেদন"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"সেশন শেষ করুন"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ছবি এবং ভিডিও তোলে"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"এই অ্যাপটি যে কোনো সময় ক্যামেরা ব্যবহার করে ছবি তুলতে বা ভিডিও রেকর্ড করতে পারে৷"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"সিস্টেম ক্যামেরা ব্যবহার করে ফটো এবং ভিডিও নেওয়ার জন্য অ্যাপ্লিকেশন বা পরিষেবা অ্যাক্সেসের অনুমতি দিন"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"এই প্রিভিলিজ | সিস্টেম অ্যাপটি যেকোনও সময়ে সিস্টেম ক্যামেরা ব্যবহার করে ছবি তুলতে এবং ভিডিও রেকর্ড করতে পারবে। এর জন্য অ্যাপের Android.permission.CAMERA -এর অনুমতি প্রয়োজন"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"কোনও অ্যাপ্লিকেশন বা পরিষেবাকে ক্যামেরা ডিভাইসগুলি খোলা বা বন্ধ হওয়া সম্পর্কে কলব্যাকগুলি গ্রহণ করার অনুমতি দিন।"</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"কোনও ক্যামেরা ডিভাইস খোলা (অ্যাপ্লিকেশনের সাহায্যে) বা বন্ধ করা হলে এই অ্যাপ কলব্যাক গ্রহণ করতে পারে।"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"ভাইব্রেশন নিয়ন্ত্রণ করুন"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"অ্যাপ্লিকেশানকে কম্পক নিয়ন্ত্রণ করতে দেয়৷"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ভাইব্রেট করার স্থিতি অ্যাক্সেস করার অনুমতি দিন।"</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"কল করার অভিজ্ঞতা উন্নত করার জন্য অ্যাপকে সিস্টেমের মাধ্যমে তার কলগুলি রুট করতে দেয়।"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"সিস্টেমের মাধ্যমে কল দেখা এবং নিয়ন্ত্রণ করা।"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"ডিভাইসে চালু আছে এমন কল দেখতে এবং নিয়ন্ত্রণ করতে অ্যাপকে অনুমতি দেয়। কল করা হচ্ছে যে নম্বরে সেটি এবং কলের স্ট্যাটাস কী সেই সব তথ্য এতে অন্তর্ভুক্ত।"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"অডিও রেকর্ড করার বিধিনিষেধ থেকে বাদ দিন"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"অডিও রেকর্ড করার বিধিনিষেধ থেকে অ্যাপটি বাদ দিন।"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"অন্য কোনও অ্যাপ দিয়ে করে থাকা কল চালিয়ে যান"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"অন্য কোনও অ্যাপ দিয়ে কল করলে এই অ্যাপটিকে সেটি চালিয়ে যেতে দেয়।"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ফোন নম্বরগুলি পড়া হোক"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"মুছুন"</string>
     <string name="inputMethod" msgid="1784759500516314751">"ইনপুট পদ্ধতি"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"পাঠ্য ক্রিয়াগুলি"</string>
-    <string name="email" msgid="2503484245190492693">"ইমেল করুন"</string>
-    <string name="email_desc" msgid="8291893932252173537">"বেছে নেওয়া আইডিতে ইমেল পাঠান"</string>
-    <string name="dial" msgid="4954567785798679706">"কল খুলুন"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"বেছে নেওয়া ফোন নম্বরে কল করুন"</string>
-    <string name="map" msgid="6865483125449986339">"ম্যাপ খুলুন"</string>
-    <string name="map_desc" msgid="1068169741300922557">"বেছে নেওয়া ঠিকানাটি ম্যাপে দেখুন"</string>
-    <string name="browse" msgid="8692753594669717779">"খুলুন"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"বেছে নেওয়া ইউআরএল-এ যান"</string>
-    <string name="sms" msgid="3976991545867187342">"মেসেজ করুন"</string>
-    <string name="sms_desc" msgid="997349906607675955">"বেছে নেওয়া ফোন নম্বরে মেসেজ পাঠান"</string>
-    <string name="add_contact" msgid="7404694650594333573">"যোগ করুন"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"পরিচিতিতে যোগ করুন"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"দেখুন"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"বেছে নেওয়া দিনটি ক্যালেন্ডারে দেখুন"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"সময়সূচি সেট করুন"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"বেছে নেওয়া সময়ে ইভেন্ট সেট করুন"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ট্র্যাক করুন"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"বেছে নেওয়া ফ্লাইট ট্র্যাক করুন"</string>
-    <string name="translate" msgid="1416909787202727524">"অনুবাদ করুন"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"বেছে নেওয়া টেক্সট অনুবাদ করুন"</string>
-    <string name="define" msgid="5214255850068764195">"ব্যাখ্যা দিন"</string>
-    <string name="define_desc" msgid="6916651934713282645">"বেছে নেওয়া টেক্সটের ব্যাখ্যা দিন"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"স্টোরেজ পূর্ণ হতে চলেছে"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"কিছু কিছু সিস্টেম ক্রিয়াকলাপ কাজ নাও করতে পারে"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"সিস্টেমের জন্য যথেষ্ট স্টোরেজ নেই৷ আপনার কাছে ২৫০এমবি ফাঁকা স্থান রয়েছে কিনা সে বিষয়ে নিশ্চিত হন এবং সিস্টেম চালু করুন৷"</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"মোবাইল নেটওয়ার্কে কোনও ইন্টারনেট অ্যাক্সেস নেই"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"নেটওয়ার্কে কোনও ইন্টারনেট অ্যাক্সেস নেই"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"ব্যক্তিগত ডিএনএস সার্ভার অ্যাক্সেস করা যাবে না"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"কানেক্ট করা হয়েছে"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g>-এর সীমিত কানেক্টিভিটি আছে"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"তবুও কানেক্ট করতে ট্যাপ করুন"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> এ পাল্টানো হয়েছে"</string>
@@ -1631,21 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"প্রস্তাবিত স্তরের চেয়ে বেশি উঁচুতে ভলিউম বাড়াবেন?\n\nউঁচু ভলিউমে বেশি সময় ধরে কিছু শুনলে আপনার শ্রবনশক্তির ক্ষতি হতে পারে।"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"অ্যাক্সেসযোগ্যতা শর্টকাট ব্যবহার করবেন?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"শর্টকাট চালু করা থাকাকালীন দুটি ভলিউম বোতাম একসাথে ৩ সেকেন্ড টিপে ধরে রাখলে একটি অ্যাকসেসিবিলিটি ফিচার চালু হবে।"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> অ্যাপটিকে আপনার ডিভাইসে সম্পূর্ণ নিয়ন্ত্রণের অনুমতি দিতে চান?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g> চালু করলে, ডেটা এনক্রিপশন উন্নত করার উদ্দেশ্যে আপনার ডিভাইস স্ক্রিন লক ব্যবহার করবে না।"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"যে অ্যাপগুলি আপনাকে অ্যাক্সেসিবিলিটির প্রয়োজন মেটাতে সাহায্য করে সেই অ্যাপগুলির জন্য সম্পূর্ণ নিয়ন্ত্রণের বিষয়টি উপযুক্ত, কিন্তু তা বলে সমস্ত অ্যাপের জন্য নয়।"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"স্ক্রিন দেখে নিয়ন্ত্রণ করা"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"এটি স্ক্রিনের সমস্ত কন্টেন্ট পড়তে এবং অন্য অ্যাপেও কন্টেন্ট ডিসপ্লে করতে পারে।"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"দেখুন এবং কাজটি করুন"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"এটি কোনও একটি অ্যাপের সাথে অথবা হার্ডওয়্যার সেন্সরের সাথে আপনার ইন্টার‍্যাকশন ট্র্যাক করতে এবং আপনার হয়ে বিভিন্ন অ্যাপের সাথে ইন্টার‍্যাক্ট করতে পারে।"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"অনুমতি দিন"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"খারিজ করুন"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"কোনও ফিচার ব্যবহার করা শুরু করতে, সেটিতে ট্যাপ করুন:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> বন্ধ করে দেওয়া হয়েছে"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"শর্টকাট এডিট করুন"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"বাতিল করুন"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"হয়ে গেছে"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"শর্টকাট বন্ধ করুন"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"শর্টকাট ব্যবহার করুন"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"রঙ উল্টানো"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"রঙ সংশোধন"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"অ্যাক্সেসযোগ্যতা শর্টকাট <xliff:g id="SERVICE_NAME">%1$s</xliff:g> কে চালু করেছে"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"অ্যাক্সেসযোগ্যতা শর্টকাট <xliff:g id="SERVICE_NAME">%1$s</xliff:g> কে বন্ধ করেছে"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> ব্যবহার করতে ভলিউম কী বোতাম ৩ সেকেন্ডের জন্য চেপে ধরে রাখুন"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"বড় করে দেখা"</string>
     <string name="user_switched" msgid="7249833311585228097">"বর্তমান ব্যবহারকারী <xliff:g id="NAME">%1$s</xliff:g>৷"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> নামের ব্যবহারকারীতে যাচ্ছে…"</string>
@@ -1859,8 +1892,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"বিভাগ নির্ধারিত নয়"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"আপনি এই বিজ্ঞপ্তিগুলির গুরুত্ব সেট করেছেন।"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"লোকজন জড়িত থাকার কারণে এটি গুরুত্বপূর্ণ।"</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"কাস্টম অ্যাপ বিজ্ঞপ্তি"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g>-এ (একজন ব্যবহারকারী এই অ্যাকাউন্টে আগে থেকেই রয়েছেন) একজন নতুন ব্যবহারকারী তৈরি করার অনুমতি <xliff:g id="APP">%1$s</xliff:g>-কে দেবেন?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g>-এ একজন নতুন ব্যবহারকারী তৈরি করার অনুমতি <xliff:g id="APP">%1$s</xliff:g>-কে দেবেন?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"একটি ভাষা যোগ করুন"</string>
@@ -2017,7 +2049,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> এবং আরও <xliff:g id="COUNT_3">%d</xliff:g>টি ফাইল</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> এবং আরও <xliff:g id="COUNT_3">%d</xliff:g>টি ফাইল</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"সরাসরি শেয়ার করার সুবিধা নেই"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"অ্যাপের তালিকা"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"এই অ্যাপকে রেকর্ড করার অনুমতি দেওয়া হয়নি কিন্তু USB ডিভাইসের মাধ্যমে সেটি অডিও রেকর্ড করতে পারে।"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"হোম স্ক্রিন"</string>
@@ -2032,31 +2065,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"অ্যাক্সেসিবিলিটি মেনু"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>-এর ক্যাপশন বার।"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> সীমাবদ্ধ গ্রুপে অন্তর্ভুক্ত করা হয়েছে"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"কথোপকথন"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"গ্রুপ কথোপকথন"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ব্যক্তিগত"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"অফিস"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"ব্যক্তিগত ভিউ"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"অফিসের ভিউ"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"অফিস অ্যাপের সাথে শেয়ার করা যাচ্ছে না"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ব্যক্তিগত অ্যাপের সাথে শেয়ার করা যাচ্ছে না"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"কোনও অ্যাপ উপলভ্য নেই"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"চালু করুন"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"টেলিফোন কলে অডিও রেকর্ড বা প্লে করুন"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ডিফল্ট ডায়ালার অ্যাপ্লিকেশন হিসেবে বেছে নেওয়া হলে, টেলিফোন কলে অডিও রেকর্ড বা প্লে করার জন্য এই অ্যাপকে অনুমতি দেয়।"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index 724c1c36..5663885 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -202,8 +202,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Uređaj će biti izbrisan"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Nije moguće koristiti aplikaciju administratora. Potpuno će se izbrisati podaci na vašem uređaju.\n\nAko imate pitanja, obratite se administratoru svoje organizacije."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Štampanje je onemogućila aplikacija <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Lične aplikacije je obustavio administrator"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Dodirnite ovdje da provjerite usklađenost s pravilima."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Ja"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opcije tableta"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opcije Android TV uređaja"</string>
@@ -237,6 +243,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opcije telefona"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Zaključavanje ekrana"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Isključi telefon"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Hitno"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Izvještaj o greškama"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Završi sesiju"</string>
@@ -437,7 +447,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"snimanje slika i videozapisa"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Ova aplikacija može slikati fotografije i snimati videozapise koristeći kameru bilo kada."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Dopustite aplikaciji ili usluzi da pristupa kamerama sistema radi snimanja fotografija i videozapisa"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Ova povlaštena | sistemska aplikacija u svakom trenutku može snimati fotografije i videozapise pomoću kamere sistema. Aplikacija također mora imati dopuštenje android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Dozvoliti aplikaciji ili usluzi da prima povratne pozive o otvaranju ili zatvaranju kamera."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"kontrola vibracije"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Dozvoljava aplikaciji upravljanje vibracijom."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Dozvoljava aplikaciji pristup stanju vibracije."</string>
@@ -451,6 +465,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Dopušta aplikaciji da pozive usmjeri preko sistema radi poboljšanja iskustva pozivanja."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"vidjeti i kontrolirati pozive preko sistema."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Dozvoljava aplikaciji da vidi i kontrolira odlazne pozive na uređaju. To uključuje informacije kao što su brojevi telefona i stanja poziva."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"oslobađanje od ograničenja snimanja zvuka"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Oslobodite aplikaciju od ograničenja snimаnja zvuka."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"nastavlja poziv iz druge aplikacije"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Dozvoljava aplikaciji nastavljanje poziva koji je započet u drugoj aplikaciji."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"čitanje telefonskih brojeva"</string>
@@ -1119,28 +1135,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Izbriši"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Način unosa"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Akcije za tekst"</string>
-    <string name="email" msgid="2503484245190492693">"Pošalji e-poruku"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Pošalji e-poruku na odabranu adresu"</string>
-    <string name="dial" msgid="4954567785798679706">"Pozovi"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Pozovi odabrani broj telefona"</string>
-    <string name="map" msgid="6865483125449986339">"Prikaži na mapi"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Lociraj odabranu adresu"</string>
-    <string name="browse" msgid="8692753594669717779">"Otvori"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Otvori odabrani URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Pošalji SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Pošalji SMS odabranom broju telefona"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Dodaj"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Dodaj u kontakte"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Prikaži"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Prikaži odabrano vrijeme u kalendaru"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Zakaži"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Zakaži događaj za odabrano vrijeme"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Prati"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Prati odabrani let"</string>
-    <string name="translate" msgid="1416909787202727524">"Prevedi"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Prevedi odabrani tekst"</string>
-    <string name="define" msgid="5214255850068764195">"Definiraj"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definiraj odabrani tekst"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Ponestaje prostora za pohranu"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Neke funkcije sistema možda neće raditi"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Nema dovoljno prostora za sistem. Obezbijedite 250MB slobodnog prostora i ponovo pokrenite uređaj."</string>
@@ -1281,7 +1275,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobilna mreža nema pristup internetu"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Mreža nema pristup internetu"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Nije moguće pristupiti privatnom DNS serveru"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Povezano"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"Mreža <xliff:g id="NETWORK_SSID">%1$s</xliff:g> ima ograničenu povezivost"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Dodirnite da se ipak povežete"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Prebačeno na: <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1655,21 +1648,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Želite li pojačati zvuk iznad preporučenog nivoa?\n\nDužim slušanjem glasnog zvuka možete oštetiti sluh."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Želite li koristiti Prečicu za pristupačnost?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kada je prečica uključena, pritiskom i držanjem oba dugmeta za jačinu zvuka u trajanju od 3 sekunde pokrenut će se funkcija pristupačnosti."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Dozvoliti da usluga <xliff:g id="SERVICE">%1$s</xliff:g> ima punu kontrolu nad vašim uređajem?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Ako uključite uslugu <xliff:g id="SERVICE">%1$s</xliff:g>, uređaj neće koristiti zaključavanje ekrana za poboljšanje šifriranja podataka."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Puna kontrola je prikladna za aplikacije koje vam pomažu kod potreba za pristupačnosti, ali nije za većinu aplikacija."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Prikaz i kontrola ekrana"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Može čitati sav sadržaj na ekranu i prikazivati sadržaj u drugim aplikacijama."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Prikaz i izvršavanje radnji"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Može pratiti vaše interakcije s aplikacijom ili hardverskim senzorom te ostvariti interakciju s aplikacijama umjesto vas."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Dozvoli"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Odbij"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Dodirnite funkciju da je počnete koristiti:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Usluga <xliff:g id="SERVICE_NAME">%s</xliff:g> je isključena"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Uredi prečice"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Otkaži"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Gotovo"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Isključi prečicu"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Koristi prečicu"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inverzija boja"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Ispravka boja"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Prečica za pristupačnost je uključila uslugu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Prečica za pristupačnost je isključila uslugu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Pritisnite obje tipke za podešavanje jačine zvuka i držite ih pritisnutim tri sekunde da koristite uslugu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Uvećavanje"</string>
     <string name="user_switched" msgid="7249833311585228097">"Trenutni korisnik <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Prebacivanje na korisnika <xliff:g id="NAME">%1$s</xliff:g>..."</string>
@@ -2052,7 +2086,8 @@
       <item quantity="few"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> fajla</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> fajlova</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Direktno dijeljenje nije dostupno"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Spisak aplikacija"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Ovoj aplikaciji nije dato odobrenje za snimanje, ali može snimati zvuk putem ovog USB uređaja."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Početna stranica"</string>
@@ -2067,31 +2102,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Meni za pristupačnost"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Traka za natpis aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Paket <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> je stavljen u odjeljak OGRANIČENO"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Razgovor"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Grupni razgovor"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Lično"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Posao"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nije moguće dijeliti s poslovnim aplikacijama"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nije moguće dijeliti s ličnim aplikacijama"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nema dostupnih aplikacija"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Prikaz ličnog sadržaja"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Prikaz poslovnog sadržaja"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Ovo nije moguće dijeliti putem poslovnih aplikacija"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Vaš IT administrator ne dozvoljava da dijelite ovaj sadržaj putem aplikacija na svom poslovnom profilu"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Ovo nije moguće otvoriti s poslovnim aplikacijama"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Vaš IT administrator ne dozvoljava da otvorite ovaj sadržaj putem aplikacija na svom poslovnom profilu"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Ovo nije moguće dijeliti putem ličnih aplikacija"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Vaš IT administrator ne dozvoljava da dijelite ovaj sadržaj putem aplikacija na svom ličnom profilu"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Ovo nije moguće otvoriti s ličnim aplikacijama"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Vaš IT administrator ne dozvoljava da otvorite ovaj sadržaj putem aplikacija na svom ličnom profilu"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Radni profil je pauziran"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Uključi"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Poslovne aplikacije ne mogu podržati ovaj sadržaj"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Poslovne aplikacije ne mogu otvoriti ovaj sadržaj"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Lične aplikacije ne mogu podržati ovaj sadržaj"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Lične aplikacije ne mogu otvoriti ovaj sadržaj"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Snimanje ili reproduciranje zvuka u telefonskim pozivima"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Kad je ova aplikacija postavljena kao zadana aplikacija za pozivanje, omogućava joj snimanje ili reproduciranje zvuka u telefonskim pozivima."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index f3d8c36..d6a7698 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"El contingut del dispositiu s\'esborrarà"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"No es pot utilitzar l\'aplicació d\'administració. S\'esborraran les dades del dispositiu.\n\nSi tens cap dubte, contacta amb l\'administrador de la teva organització."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ha desactivat la impressió."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Un administrador ha suspès les aplicacions personals"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Toca per comprovar si es compleix la política."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Mi"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opcions de la tauleta"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opcions d\'Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opcions del telèfon"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Bloqueig de pantalla"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Apaga"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emergència"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Informe d\'error"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Finalitza la sessió"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"fer fotos i vídeos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Aquesta aplicació pot fer fotos i gravar vídeos amb la càmera en qualsevol moment."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Permet que una aplicació o un servei tinguin accés a les càmeres del sistema per fer fotos i vídeos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Aquesta aplicació del sistema pot fer fotos i gravar vídeos amb una càmera del sistema en qualsevol moment. L\'aplicació també ha de tenir el permís android.permission.CAMERA per accedir-hi"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Permet que una aplicació o un servei pugui rebre crides de retorn sobre els dispositius de càmera que s\'obren o es tanquen."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"controlar la vibració"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Permet que l\'aplicació controli el vibrador."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permet que l\'aplicació accedeixi a l\'estat de vibració."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Permet que l\'aplicació encamini les trucades a través del sistema per millorar-ne l\'experiència."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"consulta i controla les trucades a través del sistema."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Permet que l\'aplicació consulti i controli les trucades en curs al dispositiu. Inclou informació com ara l\'estat i els números de les trucades."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"exclou de les restriccions per gravar àudio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Exclou l\'aplicació de les restriccions per gravar àudio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"Continua una trucada d\'una altra aplicació"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Permet que l\'aplicació continuï una trucada que s\'havia iniciat en una altra aplicació."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"llegir els números de telèfon"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Suprimeix"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Mètode d\'introducció de text"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Accions de text"</string>
-    <string name="email" msgid="2503484245190492693">"Envia un correu"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Envia un correu electrònic a l\'adreça seleccionada"</string>
-    <string name="dial" msgid="4954567785798679706">"Truca"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Truca al número de telèfon seleccionat"</string>
-    <string name="map" msgid="6865483125449986339">"Mapa"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Localitza l\'adreça seleccionada"</string>
-    <string name="browse" msgid="8692753594669717779">"Obre"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Obre l\'URL seleccionat"</string>
-    <string name="sms" msgid="3976991545867187342">"Envia un SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Envia un SMS al número de telèfon seleccionat"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Afegeix"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Afegeix als contactes"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Mostra"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Consulta la data seleccionada al calendari"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Programa"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Programa un esdeveniment per a la data seleccionada"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Fes un seguiment"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Fes un seguiment del vol seleccionat"</string>
-    <string name="translate" msgid="1416909787202727524">"Tradueix"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Tradueix el text seleccionat"</string>
-    <string name="define" msgid="5214255850068764195">"Defineix"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Defineix el text seleccionat"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"L\'espai d\'emmagatzematge s\'està esgotant"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"És possible que algunes funcions del sistema no funcionin"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"No hi ha prou espai d\'emmagatzematge per al sistema. Comprova que tinguis 250 MB d\'espai lliure i reinicia."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"La xarxa mòbil no té accés a Internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"La xarxa no té accés a Internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"No es pot accedir al servidor DNS privat"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Connectat"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> té una connectivitat limitada"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Toca per connectar igualment"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Actualment en ús: <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vols apujar el volum per sobre del nivell recomanat?\n\nSi escoltes música a un volum alt durant períodes llargs, pots danyar-te l\'oïda."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vols fer servir la drecera d\'accessibilitat?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Si la drecera està activada, prem els dos botons de volum durant 3 segons per iniciar una funció d\'accessibilitat."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Vols permetre que <xliff:g id="SERVICE">%1$s</xliff:g> controli el teu dispositiu per complet?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Si actives <xliff:g id="SERVICE">%1$s</xliff:g>, el dispositiu no farà servir el bloqueig de pantalla per millorar l\'encriptació de dades."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"El control total és adequat per a les aplicacions que t\'ajuden amb l\'accessibilitat, però no per a la majoria de les aplicacions."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Veure i controlar la pantalla"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Pot llegir tot el contingut de la pantalla i mostrar contingut sobre altres aplicacions."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Mostra i duu a terme accions"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Pot fer un seguiment de les teves interaccions amb una aplicació o un sensor de maquinari, i interaccionar amb aplicacions en nom teu."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Permet"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Denega"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Toca una funció per començar a utilitzar-la:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> s\'ha desactivat"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Edita les dreceres"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancel·la"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Fet"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desactiva la drecera"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Utilitza la drecera"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inversió dels colors"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Correcció del color"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"La drecera d\'accessibilitat ha activat <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"La drecera d\'accessibilitat ha desactivat <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Mantén premudes les dues tecles de volum durant 3 segons per fer servir <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ampliació"</string>
     <string name="user_switched" msgid="7249833311585228097">"Usuari actual: <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"S\'està canviant a <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> i <xliff:g id="COUNT_3">%d</xliff:g> fitxers més</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> i <xliff:g id="COUNT_1">%d</xliff:g> fitxer més</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"La compartició directa no està disponible"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Llista d\'aplicacions"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Aquesta aplicació no té permís de gravació, però pot capturar àudio a través d\'aquest dispositiu USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Inici"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menú d\'accessibilitat"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de títol de l\'aplicació <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> s\'ha transferit al segment RESTRINGIT"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversa"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Conversa de grup"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Feina"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"No es pot compartir amb les aplicacions de treball"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"No es pot compartir amb les aplicacions personals"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"No hi ha cap aplicació disponible"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Visualització personal"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Visualització de treball"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"No es pot compartir amb aplicacions de treball"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"L\'administrador de TI no et permet compartir aquest contingut amb aplicacions del teu perfil de treball"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"No es pot obrir amb aplicacions de treball"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"L\'administrador de TI no et permet obrir aquest contingut amb aplicacions del teu perfil de treball"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"No es pot compartir amb aplicacions personals"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"L\'administrador de TI no et permet compartir aquest contingut amb aplicacions del teu perfil personal"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"No es pot obrir amb aplicacions personals"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"L\'administrador de TI no et permet obrir aquest contingut amb aplicacions del teu perfil personal"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"El perfil de treball està en pausa"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Activa"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"No hi ha cap aplicació de treball compatible amb aquest contingut"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"No hi ha cap aplicació de treball que pugui obrir aquest contingut"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"No hi ha cap aplicació personal compatible amb aquest contingut"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"No hi ha cap aplicació personal que pugui obrir aquest contingut"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Gravar o reproduir àudio en trucades"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permet que l\'aplicació gravi o reprodueixi àudio en trucades si està assignada com a aplicació de marcador predeterminada."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index f4b02f1..4716028 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -204,8 +204,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Zařízení bude vymazáno"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Aplikaci pro správu nelze použít. Zařízení teď bude vymazáno.\n\nV případě dotazů vám pomůže administrátor organizace."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Aplikace <xliff:g id="OWNER_APP">%s</xliff:g> tisk zakazuje."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Osobní aplikace byly pozastaveny administrátorem"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Klepnutím sem zkontrolujete soulad se zásadami."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Já"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Možnosti tabletu"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Možnosti zařízení Android TV"</string>
@@ -239,6 +245,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Možnosti telefonu"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Zámek obrazovky"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Vypnout"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Stav nouze"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Hlášení chyb"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Ukončit relaci"</string>
@@ -440,7 +450,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"pořizování fotografií a videí"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Tato aplikace může pomocí fotoaparátu kdykoli pořídit snímek nebo nahrát video."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Povolte aplikaci nebo službě k systémovým fotoaparátům za účelem pořizování fotek a videí"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Tato privilegovaná | systémová aplikace může pomocí fotoaparátu kdykoli pořídit snímek nebo nahrát video. Aplikace musí zároveň mít oprávnění android.permission.CAMERA."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Povolte aplikaci nebo službě přijímat zpětná volání o otevření nebo zavření zařízení s fotoaparátem."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"ovládání vibrací"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Umožňuje aplikaci ovládat vibrace."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Umožňuje aplikaci přístup ke stavu vibrací."</string>
@@ -454,6 +468,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Umožňuje aplikaci směrovat volání prostřednictvím systému za účelem vylepšení funkcí volání."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"zobrazení a ovládání hovorů v systému."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Umožňuje aplikaci zobrazit a ovládat probíhající hovory v zařízení. Zahrnuje to informace jako zúčastněna čísla a stav hovoru."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"udělit výjimku z omezení nahrávání zvuku"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Udělit aplikaci výjimku z omezení nahrávání zvuku."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"pokračování v hovoru v jiné aplikaci"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Umožňuje aplikace pokračovat v hovoru, který byl zahájen v jiné aplikaci."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"přístup k telefonním číslům"</string>
@@ -1139,28 +1155,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Smazat"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Metoda zadávání dat"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Operace s textem"</string>
-    <string name="email" msgid="2503484245190492693">"Poslat e-mail"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Napsat na vybranou e-mailovou adresu"</string>
-    <string name="dial" msgid="4954567785798679706">"Zavolat"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Zavolat na vybrané telefonní číslo"</string>
-    <string name="map" msgid="6865483125449986339">"Mapa"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Vyhledat vybranou adresu"</string>
-    <string name="browse" msgid="8692753594669717779">"Otevřít"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Otevřít vybranou adresu URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Napsat zprávu"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Napsat SMS na vybrané telefonní číslo"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Přidat"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Přidat do kontaktů"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Zobrazit"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Zobrazit vybraný čas v kalendáři"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Naplánovat"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Naplánovat událost na vybraný čas"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Sledovat"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Sledovat vybraný let"</string>
-    <string name="translate" msgid="1416909787202727524">"Přeložit"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Přeložit vybraný text"</string>
-    <string name="define" msgid="5214255850068764195">"Definovat"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definovat vybraný text"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"V úložišti je málo místa"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Některé systémové funkce nemusí fungovat"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Pro systém není dostatek místa v úložišti. Uvolněte alespoň 250 MB místa a restartujte zařízení."</string>
@@ -1299,7 +1293,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobilní síť nemá přístup k internetu"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Síť nemá přístup k internetu"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Nelze získat přístup k soukromému serveru DNS"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Připojeno"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"Síť <xliff:g id="NETWORK_SSID">%1$s</xliff:g> umožňuje jen omezené připojení"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Klepnutím se i přesto připojíte"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Přechod na síť <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1675,21 +1668,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Zvýšit hlasitost nad doporučenou úroveň?\n\nDlouhodobý poslech hlasitého zvuku může poškodit sluch."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Použít zkratku přístupnosti?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Když je tato zkratka zapnutá, můžete funkci přístupnosti spustit tím, že na tři sekundy podržíte obě tlačítka hlasitosti."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Chcete službě <xliff:g id="SERVICE">%1$s</xliff:g> povolit, aby nad vaším zařízením měla plnou kontrolu?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Pokud zapnete službu <xliff:g id="SERVICE">%1$s</xliff:g>, zařízení nebude používat zámek obrazovky k vylepšení šifrování dat."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Plná kontrola je vhodná u aplikací, které vám pomáhají s usnadněním přístupu, nikoli u většiny aplikací."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Zobrazení a ovládání obrazovky"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Může číst veškerý obsah obrazovky a zobrazovat obsah přes ostatní aplikace."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Zobrazení a provádění akcí"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Může sledovat vaše interakce s aplikací nebo hardwarovým senzorem a komunikovat s aplikacemi namísto vás."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Povolit"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Zakázat"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Chcete-li některou funkci začít používat, klepněte na ni:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Služba <xliff:g id="SERVICE_NAME">%s</xliff:g> byla vypnuta"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Upravit zkratky"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Zrušit"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Hotovo"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Vypnout zkratku"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Použít zkratku"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Převrácení barev"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Oprava barev"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Zkratka přístupnosti zapnula službu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Zkratka přístupnosti vypnula službu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Chcete-li používat službu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>, tři sekundy podržte stisknutá obě tlačítka hlasitosti"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Zvětšení"</string>
     <string name="user_switched" msgid="7249833311585228097">"Aktuální uživatel je <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Přepínání na účet <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2084,7 +2118,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> souborů</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> soubor</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Přímé sdílení není k dispozici"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Seznam aplikací"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Tato aplikace nemá oprávnění k nahrávání, ale může zaznamenávat zvuk prostřednictvím tohoto zařízení USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Plocha"</string>
@@ -2099,31 +2134,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Nabídka usnadnění přístupu"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Popisek aplikace <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Balíček <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> byl vložen do sekce OMEZENO"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Konverzace"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Skupinová konverzace"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Osobní"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Pracovní"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Sdílení s pracovními aplikacemi je zakázáno"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Sdílení s osobními aplikacemi je zakázáno"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Žádné aplikace k dispozici"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Osobní zobrazení"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Pracovní zobrazení"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Sdílení s pracovními aplikacemi je zakázáno"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Administrátor IT nepovoluje sdílet tento obsah pomocí aplikací z vašeho pracovního profilu"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Otevírání pomocí pracovních aplikací je zakázáno"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Administrátor IT nepovoluje otevírat tento obsah pomocí aplikací z vašeho pracovního profilu"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Sdílení s osobními aplikacemi je zakázáno"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Administrátor IT nepovoluje sdílet tento obsah pomocí aplikací z vašeho osobního profilu"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Otevírání pomocí osobních aplikací je zakázáno"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Administrátor IT nepovoluje otevírat tento obsah pomocí aplikací z vašeho osobního profilu"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Pracovní profil je pozastaven"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Zapnout"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Tento obsah nepodporují žádné pracovní aplikace"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Tento obsah nemohou otevřít žádné pracovní aplikace"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Tento obsah nepodporují žádné osobní aplikace"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Tento obsah nemohou otevřít žádné osobní aplikace"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Záznam a přehrávání zvuků při telefonických hovorech"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Pokud aplikace bude mít toto oprávnění a bude vybrána jako výchozí aplikace pro vytáčení, bude při telefonických hovorech moci přehrávat a zaznamenávat zvuky."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 47fd69d..d3f9cd0 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Enheden slettes"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administrationsappen kan ikke bruges. Enheden vil nu blive ryddet. \n\nKontakt din organisations administrator, hvis du har spørgsmål."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Udskrivning er deaktiveret af <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"En administrator har suspenderet personlige apps."</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tryk her for at tjekke overholdelsen af politikker."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Mig"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Valgmuligheder for tabletcomputeren"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Valgmuligheder for Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Indstillinger for telefon"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Skærmlås"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Sluk"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Nødsituation"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Fejlrapport"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Afslut sessionen"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"tage billeder og optage video"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Med denne app kan du tage billeder og optage video med kameraet når som helst."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Giv en app eller tjeneste adgang til systemkameraer for at tage billeder og optage video"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Denne privilegerede app | systemapp kan tage billeder og optage video med kameraet når som helst. Appen skal også have tilladelsen android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Tillad, at en app eller tjeneste modtager tilbagekald om kameraenheder, der åbnes eller lukkes."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"administrere vibration"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Tillader, at appen kan administrere vibratoren."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Tillader, at appen bruger vibration."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Tillader appen at dirigere sine opkald gennem systemet for at forbedre opkaldsoplevelsen."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"se og styre opkald via systemet."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Tillader, at appen kan se og styre igangværende opkald på enheden. Dette omfatter oplysninger såsom telefonnumre og status for opkaldene."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"fritaget fra begrænsninger ift. optagelse af lyd"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Fritag appen fra begrænsninger ift. optagelse af lyd."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"fortsætte et opkald fra en anden app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Tillader, at appen fortsætter et opkald, der blev startet i en anden app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"læse telefonnumre"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Slet"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Inputmetode"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Teksthandlinger"</string>
-    <string name="email" msgid="2503484245190492693">"Send mail"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Send en mail til den valgte adresse"</string>
-    <string name="dial" msgid="4954567785798679706">"Ring op"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Ring til det valgte telefonnummer"</string>
-    <string name="map" msgid="6865483125449986339">"Åbn kort"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Find den valgte adresse"</string>
-    <string name="browse" msgid="8692753594669717779">"Åbn"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Åbn den valgte webadresse"</string>
-    <string name="sms" msgid="3976991545867187342">"Send besked"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Send en besked til det valgte telefonnummer"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Tilføj"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Føj til kontakter"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Se"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Se det valgte tidspunkt i kalenderen"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Planlæg"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Planlæg begivenhed på det valgte tidspunkt"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Spor"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Følg det valgte fly"</string>
-    <string name="translate" msgid="1416909787202727524">"Oversæt"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Oversæt den markerede tekst"</string>
-    <string name="define" msgid="5214255850068764195">"Definer"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definer den markerede tekst"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Der er snart ikke mere lagerplads"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Nogle systemfunktioner virker måske ikke"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Der er ikke nok ledig lagerplads til systemet. Sørg for, at du har 250 MB ledig plads, og genstart."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobilnetværket har ingen internetadgang"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Netværket har ingen internetadgang"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Der er ikke adgang til den private DNS-server"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Der er oprettet forbindelse"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> har begrænset forbindelse"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Tryk for at oprette forbindelse alligevel"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Der blev skiftet til <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vil du skrue højere op end det anbefalede lydstyrkeniveau?\n\nDu kan skade hørelsen ved at lytte til meget høj musik over længere tid."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vil du bruge genvejen til Hjælpefunktioner?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Når genvejen er aktiveret, kan du starte en hjælpefunktion ved at trykke på begge lydstyrkeknapper i tre sekunder."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Vil du give <xliff:g id="SERVICE">%1$s</xliff:g> fuld kontrol over din enhed?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Hvis du aktiverer <xliff:g id="SERVICE">%1$s</xliff:g>, vil enheden ikke benytte skærmlåsen til at forbedre datakrypteringen."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Fuld kontrol er velegnet til apps, der hjælper dig med hjælpefunktioner, men ikke de fleste apps."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Se og styre skærm"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Den kan læse alt indhold på skærmen og vise indhold oven på andre apps."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Se og udfør handlinger"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Den kan spore dine interaktioner med en app eller en hardwaresensor og interagere med apps på dine vegne."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Tillad"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Afvis"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Tryk på en funktion for at bruge den:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> er blevet deaktiveret"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Rediger genveje"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Annuller"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Udfør"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Deaktiver genvej"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Brug genvej"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Ombytning af farver"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Korriger farve"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Genvejen til hjælpefunktioner aktiverede <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Genvejen til hjælpefunktioner deaktiverede <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Hold begge lydstyrkeknapper nede i tre sekunder for at bruge <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Forstørrelse"</string>
     <string name="user_switched" msgid="7249833311585228097">"Nuværende bruger <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Skifter til <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> fil</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> filer</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Det er ikke muligt at dele direkte"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Liste over apps"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Denne app har ikke fået tilladelse til at optage, men optager muligvis lyd via denne USB-enhed."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Hjem"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menuen Hjælpefunktioner"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Titellinje for <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> er blevet placeret i samlingen BEGRÆNSET"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Samtale"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Gruppesamtale"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personlig"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Arbejde"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Der kan ikke deles med arbejdsapps"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Der kan ikke deles med personlige apps"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Ingen tilgængelige apps"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Visningen Personligt"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Visningen Arbejde"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Indholdet kan ikke deles med arbejdsapps"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Din it-administrator har ikke givet dig tilladelse til at dele dette indhold med apps fra din arbejdsprofil"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Indholdet kan ikke åbnes med arbejdsapps"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Din it-administrator har ikke givet dig tilladelse til at åbne dette indhold med apps fra din arbejdsprofil"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Indholdet kan ikke deles med personlige apps"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Din it-administrator har ikke givet dig tilladelse til at dele dette indhold med apps fra din personlige profil"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Indholdet kan ikke åbnes med personlige apps"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Din it-administrator har ikke givet dig tilladelse til at åbne dette indhold med apps fra din personlige profil"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Arbejdsprofilen er sat på pause"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Aktivér"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Dette indhold understøttes ikke af arbejdsapps"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Dette indhold kan ikke åbnes af arbejdsapps"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Dette indhold understøttes ikke af personlige apps"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Dette indhold kan ikke åbnes af personlige apps"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Optage eller afspille lyd i telefonopkald"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Tillader, at denne app kan optage og afspille lyd i telefonopkald, når den er angivet som standardapp til opkald."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index d61d961..c216b26 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Die Daten auf deinem Gerät werden gelöscht."</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Die Admin-App kann nicht verwendet werden. Die Daten auf deinem Gerät werden nun gelöscht.\n\nBitte wende dich bei Fragen an den Administrator deiner Organisation."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Drucken wurde von <xliff:g id="OWNER_APP">%s</xliff:g> deaktiviert."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Private Apps wurden von einem Administrator gesperrt"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tippe hier, um die Einhaltung der Richtlinie zu prüfen."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Eigene"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet-Optionen"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV-Optionen"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Telefonoptionen"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Displaysperre"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Ausschalten"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Notfall"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Fehlerbericht"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Sitzung beenden"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"Bilder und Videos aufnehmen"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Diese App kann mit der Kamera jederzeit Bilder und Videos aufnehmen."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Einer App oder einem Dienst Zugriff auf Systemkameras erlauben, um Fotos und Videos aufnehmen zu können"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Diese privilegierte App | System-App kann jederzeit mit einer Systemkamera Bilder und Videos aufnehmen. Die App benötigt auch die Berechtigung \"android.permission.CAMERA\"."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Einer App oder einem Dienst den Empfang von Callbacks erlauben, wenn eine Kamera geöffnet oder geschlossen wird."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"Vibrationsalarm steuern"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Ermöglicht der App, den Vibrationsalarm zu steuern"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Ermöglicht der App, auf den Vibrationsstatus zuzugreifen."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Ermöglicht der App, Anrufe über das System durchzuführen, um die Anrufqualität zu verbessern."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"Anrufe durch das System einsehen und verwalten."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Ermöglicht der App, aktuelle Anrufe einzusehen und zu verwalten. Dies beinhaltet Informationen wie Nummern für Anrufe und den Status der Anrufe."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"von Einschränkungen für Audioaufnahmen ausnehmen"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Die App von Einschränkungen für Audioaufnahmen ausnehmen."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"Anruf aus einer anderen App weiterführen"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Ermöglicht der App, einen Anruf weiterzuführen, der in einer anderen App begonnen wurde."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"Telefonnummern vorlesen"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Löschen"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Eingabemethode"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Textaktionen"</string>
-    <string name="email" msgid="2503484245190492693">"E-Mail senden"</string>
-    <string name="email_desc" msgid="8291893932252173537">"E-Mail an ausgewählte Adresse senden"</string>
-    <string name="dial" msgid="4954567785798679706">"Anrufen"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Ausgewählte Telefonnummer anrufen"</string>
-    <string name="map" msgid="6865483125449986339">"Karte öffnen"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Ausgewählte Adresse finden"</string>
-    <string name="browse" msgid="8692753594669717779">"Öffnen"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Ausgewählte URL öffnen"</string>
-    <string name="sms" msgid="3976991545867187342">"SMS senden"</string>
-    <string name="sms_desc" msgid="997349906607675955">"SMS an ausgewählte Telefonnummer senden"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Hinzufügen"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Zu Kontakten hinzufügen"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Aufrufen"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Ausgewählte Zeit im Kalender anzeigen"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Termin planen"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Termin für die ausgewählte Zeit planen"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Verfolgen"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Ausgewählten Flug verfolgen"</string>
-    <string name="translate" msgid="1416909787202727524">"Übersetzen"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Ausgewählten Text übersetzen"</string>
-    <string name="define" msgid="5214255850068764195">"Definieren"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Ausgewählten Text definieren"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Der Speicherplatz wird knapp"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Einige Systemfunktionen funktionieren eventuell nicht."</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Der Speicherplatz reicht nicht für das System aus. Stelle sicher, dass 250 MB freier Speicherplatz vorhanden sind, und starte das Gerät dann neu."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobiles Netzwerk hat keinen Internetzugriff"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Netzwerk hat keinen Internetzugriff"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Auf den privaten DNS-Server kann nicht zugegriffen werden"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Verbunden"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"Schlechte Verbindung mit <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Tippen, um die Verbindung trotzdem herzustellen"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Zu <xliff:g id="NETWORK_TYPE">%1$s</xliff:g> gewechselt"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Lautstärke über den Schwellenwert anheben?\n\nWenn du über einen längeren Zeitraum Musik in hoher Lautstärke hörst, kann dies dein Gehör schädigen."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Verknüpfung für Bedienungshilfen verwenden?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Wenn die Verknüpfung aktiviert ist, kannst du die beiden Lautstärketasten drei Sekunden lang gedrückt halten, um eine Bedienungshilfe zu starten."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> die vollständige Kontrolle über dein Gerät geben?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Wenn du <xliff:g id="SERVICE">%1$s</xliff:g> aktivierst, verwendet dein Gerät nicht die Displaysperre, um die Datenverschlüsselung zu verbessern."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Die vollständige Kontrolle sollte nur für die Apps aktiviert werden, die dir den Zugang zu den App-Funktionen erleichtern. Das ist in der Regel nur ein kleiner Teil der Apps."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Bildschirm aufrufen und steuern"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Die Funktion kann alle Inhalte auf dem Bildschirm lesen und diese Inhalte über andere Apps anzeigen."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Aktionen aufrufen und durchführen"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Die Funktion kann deine Interaktionen mit einer App oder einem Hardwaresensor verfolgen und in deinem Namen mit Apps interagieren."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Zulassen"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Ablehnen"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Zum Auswählen der gewünschten Funktion tippen:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> wurde deaktiviert"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Verknüpfungen bearbeiten"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Abbrechen"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Fertig"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Verknüpfung deaktivieren"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Verknüpfung verwenden"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Farbumkehr"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Farbkorrektur"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> wurde durch die Bedienungshilfenverknüpfung aktiviert"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> wurde durch die Bedienungshilfenverknüpfung deaktiviert"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Halten Sie beide Lautstärketasten drei Sekunden lang gedrückt, um <xliff:g id="SERVICE_NAME">%1$s</xliff:g> zu verwenden"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Vergrößerung"</string>
     <string name="user_switched" msgid="7249833311585228097">"Aktueller Nutzer <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Wechseln zu <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -1859,8 +1893,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Unkategorisiert"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Du hast die Wichtigkeit dieser Benachrichtigungen festgelegt."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Diese Benachrichtigung ist aufgrund der beteiligten Personen wichtig."</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"Benutzerdefinierte App-Benachrichtigung"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Es gibt bereits einen Nutzer mit <xliff:g id="ACCOUNT">%2$s</xliff:g>. Möchtest du zulassen, dass <xliff:g id="APP">%1$s</xliff:g> einen neuen Nutzer mit diesem Konto erstellt?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Möchtest du zulassen, dass <xliff:g id="APP">%1$s</xliff:g> einen neuen Nutzer mit <xliff:g id="ACCOUNT">%2$s</xliff:g> erstellt?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Sprache hinzufügen"</string>
@@ -2017,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> und <xliff:g id="COUNT_3">%d</xliff:g> Dateien</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> und <xliff:g id="COUNT_1">%d</xliff:g> Datei</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Direct Share nicht verfügbar"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Liste der Apps"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Diese App hat noch keine Berechtigung zum Aufnehmen erhalten, könnte aber Audioaufnahmen über dieses USB-Gerät machen."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Startseite"</string>
@@ -2032,31 +2066,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menü \"Bedienungshilfen\""</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Untertitelleiste von <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> wurde in den BESCHRÄNKT-Bucket gelegt"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Unterhaltung"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Gruppenunterhaltung"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Privat"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Geschäftlich"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Private Ansicht"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Geschäftliche Ansicht"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Teilen mit geschäftlichen Apps nicht möglich"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Teilen mit privaten Apps nicht möglich"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Keine Apps verfügbar"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Aktivieren"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Audio bei Telefonanrufen aufnehmen oder wiedergeben"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Ermöglicht dieser App das Aufnehmen und Wiedergeben von Audio bei Telefonanrufen, wenn sie als Standard-Telefon-App festgelegt wurde."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 16daec8..10af8f2 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Η συσκευή σας θα διαγραφεί"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Δεν είναι δυνατή η χρήση της εφαρμογής διαχειριστή. Η συσκευή σας θα διαγραφεί.\n\nΕάν έχετε ερωτήσεις, επικοινωνήστε με τον διαχειριστή του οργανισμού σας."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Η εκτύπωση απενεργοποιήθηκε από τον χρήστη <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Οι προσωπικές εφαρμογές έχουν τεθεί σε αναστολή από έναν διαχειριστή"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Πατήστε εδώ για να ελέγξετε τη συμμόρφωση πολιτικής."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Για εμένα"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Επιλογές tablet"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Επιλογές Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Επιλογές τηλεφώνου"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Κλείδωμα οθόνης"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Απενεργοποίηση"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Κλήση έκτακτης ανάγκης"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Αναφορά σφαλμάτων"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Λήξη περιόδου σύνδεσης"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"κάνει λήψη φωτογραφιών και βίντεο"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Αυτή η εφαρμογή μπορεί να τραβήξει φωτογραφίες και βίντεο χρησιμοποιώντας την κάμερα, ανά πάσα στιγμή."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Παραχωρήστε σε μια εφαρμογή ή υπηρεσία πρόσβαση στις κάμερες του συστήματος για τη λήψη φωτογραφιών και βίντεο"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Αυτή η προνομιούχα εφαρμογή | εφαρμογή συστήματος μπορεί να τραβάει φωτογραφίες και να εγγράφει βίντεο, χρησιμοποιώντας μια κάμερα του συστήματος ανά πάσα στιγμή. Απαιτείται, επίσης, η εφαρμογή να έχει την άδεια android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Επιτρέψτε σε μια εφαρμογή ή μια υπηρεσία να λαμβάνει επανάκλησεις σχετικά με το άνοιγμα ή το κλείσιμο συσκευών κάμερας."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"ελέγχει τη δόνηση"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Επιτρέπει στην εφαρμογή τον έλεγχο της δόνησης."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Επιτρέπει στην εφαρμογή να έχει πρόσβαση στην κατάσταση δόνησης."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Επιτρέπει στην εφαρμογή να δρομολογεί τις κλήσεις της μέσω του συστήματος για να βελτιώσει την εμπειρία κλήσης."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"προβολή και έλεγχος κλήσεων μέσω του συστήματος."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Επιτρέπει στην εφαρμογή να βλέπει και να ελέγχει τις εισερχόμενες κλήσεις στη συσκευή. Αυτό περιλαμβάνει πληροφορίες όπως τους αριθμούς κλήσεων για τις κλήσεις και την κατάσταση των κλήσεων."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"εξαίρεση από περιορισμούς εγγραφής ήχου"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Εξαιρέστε την εφαρμογή από περιορισμούς για την εγγραφή ήχου."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"συνέχιση κλήσης από άλλη συσκευή"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Επιτρέπει στην εφαρμογή να συνεχίσει μια κλήση η οποία ξεκίνησε σε άλλη εφαρμογή."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ανάγνωση αριθμών τηλεφώνου"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Διαγραφή"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Μέθοδος εισόδου"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Ενέργειες κειμένου"</string>
-    <string name="email" msgid="2503484245190492693">"Ηλεκτρονικό ταχυδρομείο"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου στην επιλεγμένη διεύθυνση ηλεκτρονικού ταχυδρομείου"</string>
-    <string name="dial" msgid="4954567785798679706">"Κλήση"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Κλήση επιλεγμένου αριθμού τηλεφώνου"</string>
-    <string name="map" msgid="6865483125449986339">"Χάρτης"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Εντοπισμός επιλεγμένης διεύθυνσης"</string>
-    <string name="browse" msgid="8692753594669717779">"Άνοιγμα"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Άνοιγμα επιλεγμένου URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Μήνυμα"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Αποστολή μηνύματος στον επιλεγμένο αριθμό τηλεφώνου"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Προσθήκη"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Προσθήκη στις επαφές"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Προβολή"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Προβολή επιλεγμένης ώρας στο ημερολόγιο"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Πρόγραμμα"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Προγραμματισμός συμβάντος για επιλεγμένο χρόνο"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Κομμάτι"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Παρακολούθηση επιλεγμένης πτήσης"</string>
-    <string name="translate" msgid="1416909787202727524">"Μετάφραση"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Μετάφραση επιλεγμένου κειμένου"</string>
-    <string name="define" msgid="5214255850068764195">"Ορισμός"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Ορισμός επιλεγμένου κειμένου"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Ο αποθηκευτικός χώρος εξαντλείται"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Ορισμένες λειτουργίες συστήματος ενδέχεται να μην λειτουργούν"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Δεν υπάρχει αρκετός αποθηκευτικός χώρος για το σύστημα. Βεβαιωθείτε ότι διαθέτετε 250 MB ελεύθερου χώρου και κάντε επανεκκίνηση."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Το δίκτυο κινητής τηλεφωνίας δεν έχει πρόσβαση στο διαδίκτυο."</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Το δίκτυο δεν έχει πρόσβαση στο διαδίκτυο."</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Δεν είναι δυνατή η πρόσβαση στον ιδιωτικό διακομιστή DNS."</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Συνδέθηκε"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"Το δίκτυο <xliff:g id="NETWORK_SSID">%1$s</xliff:g> έχει περιορισμένη συνδεσιμότητα"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Πατήστε για σύνδεση ούτως ή άλλως"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Μετάβαση σε δίκτυο <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Αυξάνετε την ένταση ήχου πάνω από το επίπεδο ασφαλείας;\n\nΑν ακούτε μουσική σε υψηλή ένταση για μεγάλο χρονικό διάστημα ενδέχεται να προκληθεί βλάβη στην ακοή σας."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Να χρησιμοποιείται η συντόμευση προσβασιμότητας;"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Όταν η συντόμευση είναι ενεργοποιημένη, το πάτημα και των δύο κουμπιών έντασης ήχου για 3 δευτερόλεπτα θα ξεκινήσει μια λειτουργία προσβασιμότητας."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Να επιτρέπεται στην υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g> να έχει τον πλήρη έλεγχο της συσκευής σας;"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Εάν ενεργοποιήσετε την υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g>, η συσκευή σας δεν θα χρησιμοποιεί το κλείδωμα οθόνης για τη βελτίωση της κρυπτογράφησης δεδομένων."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Ο πλήρης έλεγχος είναι κατάλληλος για εφαρμογές που εξυπηρετούν τις ανάγκες προσβασιμότητάς σας, αλλά όχι για όλες τις εφαρμογές."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Προβολή και έλεγχος οθόνης"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Μπορεί να διαβάσει όλα τα περιεχόμενα της οθόνης σας και να εμφανίσει περιεχόμενο πάνω από άλλες εφαρμογές."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Προβολή και εκτέλεση ενεργειών"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Μπορεί να παρακολουθήσει τις αλληλεπιδράσεις σας με μια εφαρμογή ή έναν αισθητήρα εξοπλισμού και να αλληλεπιδράσει με εφαρμογές εκ μέρους σας."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Ναι"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Όχι"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Πατήστε μια λειτουργία για να ξεκινήσετε να τη χρησιμοποιείτε:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Η υπηρεσία <xliff:g id="SERVICE_NAME">%s</xliff:g> έχει απενεργοποιηθεί."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Επεξεργασία συντομεύσεων"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Άκυρο"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Τέλος"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Απενεργοποίηση συντόμευσης"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Χρήση συντόμευσης"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Αντιστροφή χρωμάτων"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Διόρθωση χρωμάτων"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Η συντόμευση προσβασιμότητας ενεργοποίησε την υπηρεσία <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Η συντόμευση προσβασιμότητας απενεργοποίησε την υπηρεσία <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Πατήστε παρατεταμένα και τα δύο κουμπιά έντασης ήχου για τρία δευτερόλεπτα, ώστε να χρησιμοποιήσετε την υπηρεσία <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Μεγιστοποίηση"</string>
     <string name="user_switched" msgid="7249833311585228097">"Τρέχων χρήστης <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Εναλλαγή σε <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> αρχεία</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> αρχείο</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Η άμεση κοινοποίηση δεν είναι διαθέσιμη"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Λίστα εφαρμογών"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Δεν έχει εκχωρηθεί άδεια εγγραφής σε αυτήν την εφαρμογή, αλλά μέσω αυτής της συσκευής USB θα μπορεί να εγγράφει ήχο."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Αρχική οθόνη"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Μενού προσβασιμότητας"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Γραμμή υποτίτλων για την εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Το πακέτο <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> τοποθετήθηκε στον κάδο ΠΕΡΙΟΡΙΣΜΕΝΗΣ ΠΡΟΣΒΑΣΗΣ."</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Συνομιλία"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Ομαδική συνομιλία"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Προσωπικό"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Εργασία"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Δεν είναι δυνατή η κοινοποίηση σε εφαρμογές εργασιών"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Δεν είναι δυνατή η κοινοποίηση σε προσωπικές εφαρμογές"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Δεν υπάρχουν διαθέσιμες εφαρμογές"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Προσωπική προβολή"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Προβολή εργασίας"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Δεν είναι δυνατή η κοινοποίηση αυτού του περιεχομένου με εφαρμογές εργασιών"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Ο διαχειριστής IT δεν σας επιτρέπει να κοινοποιήσετε αυτό το περιεχόμενο με εφαρμογές στο προφίλ εργασίας σας."</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Δεν είναι δυνατό το άνοιγμα με εφαρμογές εργασίας"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Ο διαχειριστής IT δεν σας επιτρέπει να ανοίξετε αυτό το περιεχόμενο με εφαρμογές στο προφίλ εργασίας σας."</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Δεν είναι δυνατή η κοινοποίηση αυτού του περιεχομένου με προσωπικές εφαρμογές"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Ο διαχειριστής IT δεν σας επιτρέπει να κοινοποιήσετε αυτό το περιεχόμενο με εφαρμογές στο προσωπικό προφίλ σας."</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Δεν είναι δυνατό το άνοιγμα με προσωπικές εφαρμογές"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Ο διαχειριστής IT δεν σας επιτρέπει να ανοίξετε αυτό το περιεχόμενο με εφαρμογές στο προσωπικό προφίλ σας."</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Το προφίλ εργασίας σας έχει τεθεί σε παύση."</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Ενεργοποίηση"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Καμία εφαρμογή εργασιών δεν μπορεί να υποστηρίξει αυτό το περιεχόμενο."</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Καμία εφαρμογή εργασιών δεν μπορεί να ανοίξει αυτό το περιεχόμενο."</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Καμία προσωπική εφαρμογή δεν μπορεί να υποστηρίξει αυτό το περιεχόμενο."</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Καμία προσωπική εφαρμογή δεν μπορεί να ανοίξει αυτό το περιεχόμενο."</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Εγγραφή ή αναπαραγωγή ήχου σε τηλεφωνικές κλήσεις"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Επιτρέπει σε αυτήν την εφαρμογή, όταν ορίζεται ως προεπιλεγμένη εφαρμογή κλήσης, να εγγράφει ή να αναπαράγει ήχο σε τηλεφωνικές κλήσεις."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index c8e03c6..5aa5d0b 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Personal apps have been suspended by an admin"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tap here to check policy compliance."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Me"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet options"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV options"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Phone options"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Screen lock"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Power off"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emergency"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Bug report"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"End session"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"take pictures and videos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"This app can take pictures and record videos using the camera at any time."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Grant an application or service access to system cameras to take pictures and videos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"This privileged | system app can take pictures and record videos using a system camera at any time. Requires the android.permission.CAMERA permission to be held by the app as well"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Allow an application or service to receive callbacks about camera devices being opened or closed."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"This app can receive callbacks when any camera device is being opened (by what application) or closed."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"control vibration"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Allows the app to control the vibrator."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Allows the app to access the vibrator state."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Allows the app to route its calls through the system in order to improve the calling experience."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"see and control calls through the system."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Allows the app to see and control ongoing calls on the device. This includes information such as call numbers for calls and the state of the calls."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"exempt from audio recording restrictions"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Exempt the app from restrictions to record audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continue a call from another app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Allows the app to continue a call which was started in another app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"read phone numbers"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Delete"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Input method"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Text actions"</string>
-    <string name="email" msgid="2503484245190492693">"Email"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Email selected address"</string>
-    <string name="dial" msgid="4954567785798679706">"Call"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Call selected phone number"</string>
-    <string name="map" msgid="6865483125449986339">"Map"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Locate selected address"</string>
-    <string name="browse" msgid="8692753594669717779">"Open"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Open selected URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Message"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Message selected phone number"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Add"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Add to contacts"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"View"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"View selected time in calendar"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Schedule"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Schedule event for selected time"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Track"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Track selected flight"</string>
-    <string name="translate" msgid="1416909787202727524">"Translate"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Translate selected text"</string>
-    <string name="define" msgid="5214255850068764195">"Define"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Define selected text"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Storage space running out"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Some system functions may not work"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Not enough storage for the system. Make sure that you have 250 MB of free space and restart."</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobile network has no Internet access"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Network has no Internet access"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Private DNS server cannot be accessed"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Connected"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> has limited connectivity"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Tap to connect anyway"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Switched to <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,18 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Raise volume above recommended level?\n\nListening at high volume for long periods may damage your hearing."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Use Accessibility Shortcut?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"When the shortcut is on, pressing both volume buttons for three seconds will start an accessibility feature."</string>
-    <string name="accessibility_select_shortcut_menu_title" msgid="7310194076629867377">"Tap the accessibility app that you want to use"</string>
-    <string name="accessibility_edit_shortcut_menu_button_title" msgid="6096484087245145325">"Choose apps that you want to use with Accessibility button"</string>
-    <string name="accessibility_edit_shortcut_menu_volume_title" msgid="4849108668454490699">"Choose apps that you want to use with volume key shortcut"</string>
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"If you turn on <xliff:g id="SERVICE">%1$s</xliff:g>, your device won’t use your screen lock to enhance data encryption."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"View and control screen"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"It can read all content on the screen and display content over other apps."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"View and perform actions"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Allow"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Deny"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Tap a feature to start using it:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> has been turned off"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Edit shortcuts"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancel"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Done"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Turn off Shortcut"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Use Shortcut"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Colour Inversion"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Colour Correction"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Accessibility Shortcut turned <xliff:g id="SERVICE_NAME">%1$s</xliff:g> on"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Accessibility Shortcut turned <xliff:g id="SERVICE_NAME">%1$s</xliff:g> off"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Press and hold both volume keys for three seconds to use <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Magnification"</string>
     <string name="user_switched" msgid="7249833311585228097">"Current user <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Switching to <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2013,7 +2049,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> files</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> file</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Direct share not available"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Apps list"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"This app has not been granted record permission but could capture audio through this USB device."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Home"</string>
@@ -2028,21 +2065,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Accessibility menu"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Caption bar of <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> has been put into the RESTRICTED bucket"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversation"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Group conversation"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Work"</string>
     <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Personal view"</string>
     <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Work view"</string>
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Can’t share with work apps"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Can’t share with personal apps"</string>
-    <string name="resolver_cant_share_cross_profile_explanation" msgid="5556640604460901386">"Your IT admin blocked sharing between personal and work profiles"</string>
-    <string name="resolver_cant_access_work_apps" msgid="375634344111233790">"Can’t access work apps"</string>
-    <string name="resolver_cant_access_work_apps_explanation" msgid="3958762224516867388">"Your IT admin doesn’t let you view personal content in work apps"</string>
-    <string name="resolver_cant_access_personal_apps" msgid="1953215925406474177">"Can’t access personal apps"</string>
-    <string name="resolver_cant_access_personal_apps_explanation" msgid="1725572276741281136">"Your IT admin doesn’t let you view work content in personal apps"</string>
-    <string name="resolver_turn_on_work_apps_share" msgid="619263911204978175">"Turn on work profile to share content"</string>
-    <string name="resolver_turn_on_work_apps_view" msgid="3073389230905543680">"Turn on work profile to view content"</string>
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"No apps available"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Can’t share this with work apps"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Your IT admin doesn’t allow you to share this content with apps in your work profile"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Can’t open this with work apps"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Your IT admin doesn’t allow you to open this content with apps in your work profile"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Can’t share this with personal apps"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Your IT admin doesn’t allow you to share this content with apps in your personal profile"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Can’t open this with personal apps"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Your IT admin doesn’t allow you to open this content with apps in your personal profile"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Work profile is paused"</string>
     <string name="resolver_switch_on_work" msgid="2873009160846966379">"Turn on"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"No work apps can support this content"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"No work apps can open this content"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"No personal apps can support this content"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"No personal apps can open this content"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Record or play audio in telephony calls"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Allows this app, when assigned as a default dialler application, to record or play audio in telephony calls."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml
index 07d1862..35f554b 100644
--- a/core/res/res/values-en-rCA/strings.xml
+++ b/core/res/res/values-en-rCA/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Personal apps have been suspended by an admin"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tap here to check policy compliance."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Me"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet options"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV options"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Phone options"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Screen lock"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Power off"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emergency"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Bug report"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"End session"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"take pictures and videos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"This app can take pictures and record videos using the camera at any time."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Grant an application or service access to system cameras to take pictures and videos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"This privileged | system app can take pictures and record videos using a system camera at any time. Requires the android.permission.CAMERA permission to be held by the app as well"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Allow an application or service to receive callbacks about camera devices being opened or closed."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"This app can receive callbacks when any camera device is being opened (by what application) or closed."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"control vibration"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Allows the app to control the vibrator."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Allows the app to access the vibrator state."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Allows the app to route its calls through the system in order to improve the calling experience."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"see and control calls through the system."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Allows the app to see and control ongoing calls on the device. This includes information such as call numbers for calls and the state of the calls."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"exempt from audio recording restrictions"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Exempt the app from restrictions to record audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continue a call from another app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Allows the app to continue a call which was started in another app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"read phone numbers"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Delete"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Input method"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Text actions"</string>
-    <string name="email" msgid="2503484245190492693">"Email"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Email selected address"</string>
-    <string name="dial" msgid="4954567785798679706">"Call"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Call selected phone number"</string>
-    <string name="map" msgid="6865483125449986339">"Map"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Locate selected address"</string>
-    <string name="browse" msgid="8692753594669717779">"Open"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Open selected URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Message"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Message selected phone number"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Add"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Add to contacts"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"View"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"View selected time in calendar"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Schedule"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Schedule event for selected time"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Track"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Track selected flight"</string>
-    <string name="translate" msgid="1416909787202727524">"Translate"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Translate selected text"</string>
-    <string name="define" msgid="5214255850068764195">"Define"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Define selected text"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Storage space running out"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Some system functions may not work"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Not enough storage for the system. Make sure that you have 250 MB of free space and restart."</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobile network has no Internet access"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Network has no Internet access"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Private DNS server cannot be accessed"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Connected"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> has limited connectivity"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Tap to connect anyway"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Switched to <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,18 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Raise volume above recommended level?\n\nListening at high volume for long periods may damage your hearing."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Use Accessibility Shortcut?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"When the shortcut is on, pressing both volume buttons for three seconds will start an accessibility feature."</string>
-    <string name="accessibility_select_shortcut_menu_title" msgid="7310194076629867377">"Tap the accessibility app that you want to use"</string>
-    <string name="accessibility_edit_shortcut_menu_button_title" msgid="6096484087245145325">"Choose apps that you want to use with Accessibility button"</string>
-    <string name="accessibility_edit_shortcut_menu_volume_title" msgid="4849108668454490699">"Choose apps that you want to use with volume key shortcut"</string>
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"If you turn on <xliff:g id="SERVICE">%1$s</xliff:g>, your device won’t use your screen lock to enhance data encryption."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"View and control screen"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"It can read all content on the screen and display content over other apps."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"View and perform actions"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Allow"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Deny"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Tap a feature to start using it:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> has been turned off"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Edit shortcuts"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancel"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Done"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Turn off Shortcut"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Use Shortcut"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Colour Inversion"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Colour Correction"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Accessibility Shortcut turned <xliff:g id="SERVICE_NAME">%1$s</xliff:g> on"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Accessibility Shortcut turned <xliff:g id="SERVICE_NAME">%1$s</xliff:g> off"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Press and hold both volume keys for three seconds to use <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Magnification"</string>
     <string name="user_switched" msgid="7249833311585228097">"Current user <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Switching to <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2013,7 +2049,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> files</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> file</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Direct share not available"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Apps list"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"This app has not been granted record permission but could capture audio through this USB device."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Home"</string>
@@ -2028,21 +2065,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Accessibility menu"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Caption bar of <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> has been put into the RESTRICTED bucket"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversation"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Group conversation"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Work"</string>
     <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Personal view"</string>
     <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Work view"</string>
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Can’t share with work apps"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Can’t share with personal apps"</string>
-    <string name="resolver_cant_share_cross_profile_explanation" msgid="5556640604460901386">"Your IT admin blocked sharing between personal and work profiles"</string>
-    <string name="resolver_cant_access_work_apps" msgid="375634344111233790">"Can’t access work apps"</string>
-    <string name="resolver_cant_access_work_apps_explanation" msgid="3958762224516867388">"Your IT admin doesn’t let you view personal content in work apps"</string>
-    <string name="resolver_cant_access_personal_apps" msgid="1953215925406474177">"Can’t access personal apps"</string>
-    <string name="resolver_cant_access_personal_apps_explanation" msgid="1725572276741281136">"Your IT admin doesn’t let you view work content in personal apps"</string>
-    <string name="resolver_turn_on_work_apps_share" msgid="619263911204978175">"Turn on work profile to share content"</string>
-    <string name="resolver_turn_on_work_apps_view" msgid="3073389230905543680">"Turn on work profile to view content"</string>
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"No apps available"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Can’t share this with work apps"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Your IT admin doesn’t allow you to share this content with apps in your work profile"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Can’t open this with work apps"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Your IT admin doesn’t allow you to open this content with apps in your work profile"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Can’t share this with personal apps"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Your IT admin doesn’t allow you to share this content with apps in your personal profile"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Can’t open this with personal apps"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Your IT admin doesn’t allow you to open this content with apps in your personal profile"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Work profile is paused"</string>
     <string name="resolver_switch_on_work" msgid="2873009160846966379">"Turn on"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"No work apps can support this content"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"No work apps can open this content"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"No personal apps can support this content"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"No personal apps can open this content"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Record or play audio in telephony calls"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Allows this app, when assigned as a default dialler application, to record or play audio in telephony calls."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index c8e03c6..5aa5d0b 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Personal apps have been suspended by an admin"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tap here to check policy compliance."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Me"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet options"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV options"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Phone options"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Screen lock"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Power off"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emergency"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Bug report"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"End session"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"take pictures and videos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"This app can take pictures and record videos using the camera at any time."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Grant an application or service access to system cameras to take pictures and videos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"This privileged | system app can take pictures and record videos using a system camera at any time. Requires the android.permission.CAMERA permission to be held by the app as well"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Allow an application or service to receive callbacks about camera devices being opened or closed."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"This app can receive callbacks when any camera device is being opened (by what application) or closed."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"control vibration"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Allows the app to control the vibrator."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Allows the app to access the vibrator state."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Allows the app to route its calls through the system in order to improve the calling experience."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"see and control calls through the system."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Allows the app to see and control ongoing calls on the device. This includes information such as call numbers for calls and the state of the calls."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"exempt from audio recording restrictions"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Exempt the app from restrictions to record audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continue a call from another app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Allows the app to continue a call which was started in another app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"read phone numbers"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Delete"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Input method"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Text actions"</string>
-    <string name="email" msgid="2503484245190492693">"Email"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Email selected address"</string>
-    <string name="dial" msgid="4954567785798679706">"Call"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Call selected phone number"</string>
-    <string name="map" msgid="6865483125449986339">"Map"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Locate selected address"</string>
-    <string name="browse" msgid="8692753594669717779">"Open"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Open selected URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Message"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Message selected phone number"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Add"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Add to contacts"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"View"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"View selected time in calendar"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Schedule"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Schedule event for selected time"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Track"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Track selected flight"</string>
-    <string name="translate" msgid="1416909787202727524">"Translate"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Translate selected text"</string>
-    <string name="define" msgid="5214255850068764195">"Define"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Define selected text"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Storage space running out"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Some system functions may not work"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Not enough storage for the system. Make sure that you have 250 MB of free space and restart."</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobile network has no Internet access"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Network has no Internet access"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Private DNS server cannot be accessed"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Connected"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> has limited connectivity"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Tap to connect anyway"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Switched to <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,18 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Raise volume above recommended level?\n\nListening at high volume for long periods may damage your hearing."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Use Accessibility Shortcut?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"When the shortcut is on, pressing both volume buttons for three seconds will start an accessibility feature."</string>
-    <string name="accessibility_select_shortcut_menu_title" msgid="7310194076629867377">"Tap the accessibility app that you want to use"</string>
-    <string name="accessibility_edit_shortcut_menu_button_title" msgid="6096484087245145325">"Choose apps that you want to use with Accessibility button"</string>
-    <string name="accessibility_edit_shortcut_menu_volume_title" msgid="4849108668454490699">"Choose apps that you want to use with volume key shortcut"</string>
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"If you turn on <xliff:g id="SERVICE">%1$s</xliff:g>, your device won’t use your screen lock to enhance data encryption."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"View and control screen"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"It can read all content on the screen and display content over other apps."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"View and perform actions"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Allow"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Deny"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Tap a feature to start using it:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> has been turned off"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Edit shortcuts"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancel"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Done"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Turn off Shortcut"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Use Shortcut"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Colour Inversion"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Colour Correction"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Accessibility Shortcut turned <xliff:g id="SERVICE_NAME">%1$s</xliff:g> on"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Accessibility Shortcut turned <xliff:g id="SERVICE_NAME">%1$s</xliff:g> off"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Press and hold both volume keys for three seconds to use <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Magnification"</string>
     <string name="user_switched" msgid="7249833311585228097">"Current user <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Switching to <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2013,7 +2049,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> files</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> file</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Direct share not available"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Apps list"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"This app has not been granted record permission but could capture audio through this USB device."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Home"</string>
@@ -2028,21 +2065,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Accessibility menu"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Caption bar of <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> has been put into the RESTRICTED bucket"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversation"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Group conversation"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Work"</string>
     <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Personal view"</string>
     <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Work view"</string>
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Can’t share with work apps"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Can’t share with personal apps"</string>
-    <string name="resolver_cant_share_cross_profile_explanation" msgid="5556640604460901386">"Your IT admin blocked sharing between personal and work profiles"</string>
-    <string name="resolver_cant_access_work_apps" msgid="375634344111233790">"Can’t access work apps"</string>
-    <string name="resolver_cant_access_work_apps_explanation" msgid="3958762224516867388">"Your IT admin doesn’t let you view personal content in work apps"</string>
-    <string name="resolver_cant_access_personal_apps" msgid="1953215925406474177">"Can’t access personal apps"</string>
-    <string name="resolver_cant_access_personal_apps_explanation" msgid="1725572276741281136">"Your IT admin doesn’t let you view work content in personal apps"</string>
-    <string name="resolver_turn_on_work_apps_share" msgid="619263911204978175">"Turn on work profile to share content"</string>
-    <string name="resolver_turn_on_work_apps_view" msgid="3073389230905543680">"Turn on work profile to view content"</string>
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"No apps available"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Can’t share this with work apps"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Your IT admin doesn’t allow you to share this content with apps in your work profile"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Can’t open this with work apps"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Your IT admin doesn’t allow you to open this content with apps in your work profile"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Can’t share this with personal apps"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Your IT admin doesn’t allow you to share this content with apps in your personal profile"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Can’t open this with personal apps"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Your IT admin doesn’t allow you to open this content with apps in your personal profile"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Work profile is paused"</string>
     <string name="resolver_switch_on_work" msgid="2873009160846966379">"Turn on"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"No work apps can support this content"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"No work apps can open this content"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"No personal apps can support this content"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"No personal apps can open this content"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Record or play audio in telephony calls"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Allows this app, when assigned as a default dialler application, to record or play audio in telephony calls."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index c8e03c6..5aa5d0b 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Personal apps have been suspended by an admin"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tap here to check policy compliance."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Me"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet options"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV options"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Phone options"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Screen lock"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Power off"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emergency"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Bug report"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"End session"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"take pictures and videos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"This app can take pictures and record videos using the camera at any time."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Grant an application or service access to system cameras to take pictures and videos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"This privileged | system app can take pictures and record videos using a system camera at any time. Requires the android.permission.CAMERA permission to be held by the app as well"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Allow an application or service to receive callbacks about camera devices being opened or closed."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"This app can receive callbacks when any camera device is being opened (by what application) or closed."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"control vibration"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Allows the app to control the vibrator."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Allows the app to access the vibrator state."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Allows the app to route its calls through the system in order to improve the calling experience."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"see and control calls through the system."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Allows the app to see and control ongoing calls on the device. This includes information such as call numbers for calls and the state of the calls."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"exempt from audio recording restrictions"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Exempt the app from restrictions to record audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continue a call from another app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Allows the app to continue a call which was started in another app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"read phone numbers"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Delete"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Input method"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Text actions"</string>
-    <string name="email" msgid="2503484245190492693">"Email"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Email selected address"</string>
-    <string name="dial" msgid="4954567785798679706">"Call"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Call selected phone number"</string>
-    <string name="map" msgid="6865483125449986339">"Map"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Locate selected address"</string>
-    <string name="browse" msgid="8692753594669717779">"Open"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Open selected URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Message"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Message selected phone number"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Add"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Add to contacts"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"View"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"View selected time in calendar"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Schedule"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Schedule event for selected time"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Track"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Track selected flight"</string>
-    <string name="translate" msgid="1416909787202727524">"Translate"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Translate selected text"</string>
-    <string name="define" msgid="5214255850068764195">"Define"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Define selected text"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Storage space running out"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Some system functions may not work"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Not enough storage for the system. Make sure that you have 250 MB of free space and restart."</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobile network has no Internet access"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Network has no Internet access"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Private DNS server cannot be accessed"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Connected"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> has limited connectivity"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Tap to connect anyway"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Switched to <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,18 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Raise volume above recommended level?\n\nListening at high volume for long periods may damage your hearing."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Use Accessibility Shortcut?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"When the shortcut is on, pressing both volume buttons for three seconds will start an accessibility feature."</string>
-    <string name="accessibility_select_shortcut_menu_title" msgid="7310194076629867377">"Tap the accessibility app that you want to use"</string>
-    <string name="accessibility_edit_shortcut_menu_button_title" msgid="6096484087245145325">"Choose apps that you want to use with Accessibility button"</string>
-    <string name="accessibility_edit_shortcut_menu_volume_title" msgid="4849108668454490699">"Choose apps that you want to use with volume key shortcut"</string>
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"If you turn on <xliff:g id="SERVICE">%1$s</xliff:g>, your device won’t use your screen lock to enhance data encryption."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"View and control screen"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"It can read all content on the screen and display content over other apps."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"View and perform actions"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Allow"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Deny"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Tap a feature to start using it:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> has been turned off"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Edit shortcuts"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancel"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Done"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Turn off Shortcut"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Use Shortcut"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Colour Inversion"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Colour Correction"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Accessibility Shortcut turned <xliff:g id="SERVICE_NAME">%1$s</xliff:g> on"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Accessibility Shortcut turned <xliff:g id="SERVICE_NAME">%1$s</xliff:g> off"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Press and hold both volume keys for three seconds to use <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Magnification"</string>
     <string name="user_switched" msgid="7249833311585228097">"Current user <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Switching to <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2013,7 +2049,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> files</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> file</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Direct share not available"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Apps list"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"This app has not been granted record permission but could capture audio through this USB device."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Home"</string>
@@ -2028,21 +2065,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Accessibility menu"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Caption bar of <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> has been put into the RESTRICTED bucket"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversation"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Group conversation"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Work"</string>
     <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Personal view"</string>
     <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Work view"</string>
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Can’t share with work apps"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Can’t share with personal apps"</string>
-    <string name="resolver_cant_share_cross_profile_explanation" msgid="5556640604460901386">"Your IT admin blocked sharing between personal and work profiles"</string>
-    <string name="resolver_cant_access_work_apps" msgid="375634344111233790">"Can’t access work apps"</string>
-    <string name="resolver_cant_access_work_apps_explanation" msgid="3958762224516867388">"Your IT admin doesn’t let you view personal content in work apps"</string>
-    <string name="resolver_cant_access_personal_apps" msgid="1953215925406474177">"Can’t access personal apps"</string>
-    <string name="resolver_cant_access_personal_apps_explanation" msgid="1725572276741281136">"Your IT admin doesn’t let you view work content in personal apps"</string>
-    <string name="resolver_turn_on_work_apps_share" msgid="619263911204978175">"Turn on work profile to share content"</string>
-    <string name="resolver_turn_on_work_apps_view" msgid="3073389230905543680">"Turn on work profile to view content"</string>
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"No apps available"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Can’t share this with work apps"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Your IT admin doesn’t allow you to share this content with apps in your work profile"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Can’t open this with work apps"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Your IT admin doesn’t allow you to open this content with apps in your work profile"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Can’t share this with personal apps"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Your IT admin doesn’t allow you to share this content with apps in your personal profile"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Can’t open this with personal apps"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Your IT admin doesn’t allow you to open this content with apps in your personal profile"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Work profile is paused"</string>
     <string name="resolver_switch_on_work" msgid="2873009160846966379">"Turn on"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"No work apps can support this content"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"No work apps can open this content"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"No personal apps can support this content"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"No personal apps can open this content"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Record or play audio in telephony calls"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Allows this app, when assigned as a default dialler application, to record or play audio in telephony calls."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-en-rXC/strings.xml b/core/res/res/values-en-rXC/strings.xml
index c30c10e..ec83013 100644
--- a/core/res/res/values-en-rXC/strings.xml
+++ b/core/res/res/values-en-rXC/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‎Your device will be erased‎‏‎‎‏‎"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‎‏‎The admin app can\'t be used. Your device will now be erased.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎If you have questions, contact your organization\'s admin.‎‏‎‎‏‎"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‏‎‏‏‏‎‎‎‎‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‎‏‎Printing disabled by ‎‏‎‎‏‏‎<xliff:g id="OWNER_APP">%s</xliff:g>‎‏‎‎‏‏‏‎.‎‏‎‎‏‎"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‎‏‎‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‎‏‏‎‎Personal apps have been suspended by an admin‎‏‎‎‏‎"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‎‏‎‎‏‎‏‏‏‎‎‎‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎Tap here to check policy compliance.‎‏‎‎‏‎"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‎‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎Me‎‏‎‎‏‎"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‎Tablet options‎‏‎‎‏‎"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‏‎‏‏‏‎‎‏‏‏‎‎‏‎‎‏‏‏‎‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‎Android TV options‎‏‎‎‏‎"</string>
@@ -235,6 +241,8 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‏‏‎‏‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‎‏‎‎‎‏‎‎‏‎‎‎Phone options‎‏‎‎‏‎"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‎‎‎‏‎‎‎‏‎‎‏‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‎‏‎‏‏‎‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‏‏‏‎Screen lock‎‏‎‎‏‎"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‏‎‎‏‎‎‎‎‏‎‏‏‏‏‎‏‎‎‏‏‎‎‎‎‏‏‎‏‏‏‎‏‎‏‏‏‎‏‎‏‎‎‏‎‏‏‎‏‏‏‎‏‏‎‎‏‏‎Power off‎‏‎‎‏‎"</string>
+    <string name="global_action_power_options" msgid="1185286119330160073">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‏‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‎‏‎‎‎‎‏‎‎‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‏‎‏‏‏‎‎‏‎‎‏‎Power‎‏‎‎‏‎"</string>
+    <string name="global_action_restart" msgid="4678451019561687074">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‎‏‏‎‏‎‎‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‏‏‎‎‎‎‎‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‎‎‏‎‎‎‏‎‎Restart‎‏‎‎‏‎"</string>
     <string name="global_action_emergency" msgid="1387617624177105088">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‎‎‎‏‏‏‎‎‏‏‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‏‎‏‎‎‏‎‎‏‎‏‏‏‎‏‏‎‎‎‏‏‎‎‎‎‎‎‎Emergency‎‏‎‎‏‎"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‏‎‏‎‎‏‏‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‎‏‎‎‏‎‎‎‏‎‎‏‏‎Bug report‎‏‎‎‏‎"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‎‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎‎‎‎‏‎‏‎‏‎‎‎‎‎‏‏‎‏‎‏‏‏‎‏‏‏‏‏‎End session‎‏‎‎‏‎"</string>
@@ -434,7 +442,9 @@
     <string name="permlab_camera" msgid="6320282492904119413">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‏‏‎‏‏‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‏‎‏‏‎‏‎‏‎‏‏‏‎‎‏‏‏‎‎‎‏‏‏‎‏‎‏‎take pictures and videos‎‏‎‎‏‎"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎‏‏‎‎‏‎‎‎‎‎‎‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‎‏‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎This app can take pictures and record videos using the camera at any time.‎‏‎‎‏‎"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‏‏‎‎‎‏‏‏‏‏‎‎‎‏‎‎‎‎‎‎‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‎‎‎‏‏‏‏‏‏‎‎‏‎‏‎‎‎Allow an application or service access to system cameras to take pictures and videos‎‏‎‎‏‎"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‎‏‎‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‎This privileged | system app can take pictures and record videos using a system camera at any time. Requires the android.permission.CAMERA permission to be held by the app as well‎‏‎‎‏‎"</string>
+    <string name="permdesc_systemCamera" msgid="5938360914419175986">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‏‎‎‏‎‏‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎This privileged or system app can take pictures and record videos using a system camera at any time. Requires the android.permission.CAMERA permission to be held by the app as well‎‏‎‎‏‎"</string>
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‎‎‎‎‎‏‎‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‎Allow an application or service to receive callbacks about camera devices being opened or closed.‎‏‎‎‏‎"</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎‎This app can receive callbacks when any camera device is being opened (by what application) or closed.‎‏‎‎‏‎"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎control vibration‎‏‎‎‏‎"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‎Allows the app to control the vibrator.‎‏‎‎‏‎"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‏‎‏‏‏‎‎‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‎Allows the app to access the vibrator state.‎‏‎‎‏‎"</string>
@@ -448,6 +458,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‏‏‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‏‎‏‎‎‏‎‏‏‎‏‏‏‎‏‏‎‏‏‏‎‎Allows the app to route its calls through the system in order to improve the calling experience.‎‏‎‎‏‎"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‎‏‏‎‏‏‏‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‎‎‎‎‏‎‎‎‎‏‎‎‏‎‎‏‎‎‎see and control calls through the system.‎‏‎‎‏‎"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎‏‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‏‎Allows the app to see and control ongoing calls on the device. This includes information such as call numbers for calls and the state of the calls.‎‏‎‎‏‎"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎‎‏‎‎‎‏‏‏‏‏‎‎exempt from audio record restrictions‎‏‎‎‏‎"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‏‏‏‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‏‎‏‎‏‎‎‎‎‏‎‏‎‎‎‎Exempt the app from restrictions to record audio.‎‏‎‎‏‎"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‎‎‏‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎continue a call from another app‎‏‎‎‏‎"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎‎‎‎‎‏‏‎‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‎‎Allows the app to continue a call which was started in another app.‎‏‎‎‏‎"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‏‎‏‎‎‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‏‏‏‏‏‏‎‎‎read phone numbers‎‏‎‎‏‎"</string>
@@ -1099,28 +1111,6 @@
     <string name="deleteText" msgid="4200807474529938112">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎‏‏‎‎‎‏‎‎‎‏‎‎‎‎‏‎‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‎‏‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎Delete‎‏‎‎‏‎"</string>
     <string name="inputMethod" msgid="1784759500516314751">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‎‏‎‎‏‎‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‏‎‏‎‎‏‏‏‎‎‏‏‏‏‏‏‏‎Input method‎‏‎‎‏‎"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‏‏‎‎‏‏‏‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‏‏‏‏‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‎Text actions‎‏‎‎‏‎"</string>
-    <string name="email" msgid="2503484245190492693">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‏‏‏‏‏‎‎‎‏‎‏‎‎‏‏‎‏‎‏‎‎‎‎‎‏‎‏‏‏‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‎‏‎Email‎‏‎‎‏‎"</string>
-    <string name="email_desc" msgid="8291893932252173537">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎‏‏‏‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‏‎‏‏‎‎‎‏‏‎‏‏‏‎‎‏‎‏‎‎‏‏‏‎‎‎‎‏‎Email selected address‎‏‎‎‏‎"</string>
-    <string name="dial" msgid="4954567785798679706">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎‏‎‎‎‏‎‏‎‎‏‎‎‏‎‎‏‏‎‏‎‎‏‏‎‎‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‏‏‎‏‎‎Call‎‏‎‎‏‎"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‎‏‎‏‎‏‎‏‏‏‏‏‏‎‏‎‎‎‏‎‎‏‏‏‎‏‏‎‏‎‎‏‏‎‎‎‎‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‎Call selected phone number‎‏‎‎‏‎"</string>
-    <string name="map" msgid="6865483125449986339">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‎‏‏‎‎‎‏‎‎‎‎‏‏‏‎‎‎‏‎‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‎‎‎‏‎‎‏‎‎‎‏‏‎Map‎‏‎‎‏‎"</string>
-    <string name="map_desc" msgid="1068169741300922557">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‏‎‎‏‎‏‏‏‎‎‏‏‎‏‎‏‏‏‎‎‎‎‏‏‎‎‏‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‎‏‎Locate selected address‎‏‎‎‏‎"</string>
-    <string name="browse" msgid="8692753594669717779">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‏‎‎‏‏‏‎‏‏‎‎‏‎‎‎‏‎‎‏‏‎Open‎‏‎‎‏‎"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎‎‎‎‏‎‏‎‏‎‏‏‎‎‏‏‎‎‏‏‎‎‏‏‏‎‎‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‎‎Open selected URL‎‏‎‎‏‎"</string>
-    <string name="sms" msgid="3976991545867187342">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‎‏‏‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎‏‎‎‏‎‎‎‏‏‏‎‎Message‎‏‎‎‏‎"</string>
-    <string name="sms_desc" msgid="997349906607675955">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‎‏‏‏‎‏‎‎‏‏‎‎‎‏‏‏‎‏‎‎‏‎‏‏‎‏‎‎‎‎‎‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‏‏‎‎‏‏‎Message selected phone number‎‏‎‎‏‎"</string>
-    <string name="add_contact" msgid="7404694650594333573">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‎‏‏‎‎‎‎‏‎‏‎‎‎‏‏‎‏‏‎‎‎‏‏‏‎‏‏‏‎‏‎‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‎‏‎Add‎‏‎‎‏‎"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‎‎‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‏‏‎Add to contacts‎‏‎‎‏‎"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‎‎‏‎‏‎‏‏‏‎‏‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‏‎‎‎‎‏‎View‎‏‎‎‏‎"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‏‏‏‎‏‎‎‎‎‏‎‎‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‏‏‎‏‏‎‏‏‏‏‏‏‎‎‎View selected time in calendar‎‏‎‎‏‎"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‎‏‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‎‏‏‏‏‎‎‏‎‏‏‎‏‎‎‎‎‏‎‎‏‎‎‏‏‏‎‎‎Schedule‎‏‎‎‏‎"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‎‎‏‎‎‎‏‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎Schedule event for selected time‎‏‎‎‏‎"</string>
-    <string name="view_flight" msgid="2042802613849690108">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‏‏‎‎‎‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎Track‎‏‎‎‏‎"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‏‎‎‏‏‎‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‏‎‏‏‎‎Track selected flight‎‏‎‎‏‎"</string>
-    <string name="translate" msgid="1416909787202727524">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‏‎‏‎‏‎‎‏‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‏‏‎‎‏‎‎‎Translate‎‏‎‎‏‎"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‎‏‎‎‏‎‎‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‎‎Translate selected text‎‏‎‎‏‎"</string>
-    <string name="define" msgid="5214255850068764195">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎‎‏‏‎Define‎‏‎‎‏‎"</string>
-    <string name="define_desc" msgid="6916651934713282645">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‏‎‎‏‎‎‏‎‎‏‏‏‏‎‎‎‏‏‏‎‎‏‏‎‏‎‏‎‎‎‎‎‎‎‎‏‎‏‎‏‎‏‎Define selected text‎‏‎‎‏‎"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‏‎‎‎‎‎‏‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‎‏‏‎‎Storage space running out‎‏‎‎‏‎"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‎‏‏‏‏‎‎‏‎‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‎Some system functions may not work‎‏‎‎‏‎"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‎‎‏‏‎‏‎‏‎‎‏‎‏‎‎‏‎‏‎‎‏‎‎‏‎‎‏‏‎‎‎Not enough storage for the system. Make sure you have 250MB of free space and restart.‎‏‎‎‏‎"</string>
@@ -1259,7 +1249,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‎‏‎‏‏‎‏‏‎‎‏‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎Mobile network has no internet access‎‏‎‎‏‎"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‏‎‎‏‎‎‎‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‎Network has no internet access‎‏‎‎‏‎"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‎‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‏‏‎‎‏‏‏‎‎‎‏‎‎‏‎‏‎‎‎‎‏‏‏‎Private DNS server cannot be accessed‎‏‎‎‏‎"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‎‏‏‎‎‏‎‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‎‎‏‎‏‏‏‏‏‎‎‎‎Connected‎‏‎‎‏‎"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎<xliff:g id="NETWORK_SSID">%1$s</xliff:g>‎‏‎‎‏‏‏‎ has limited connectivity‎‏‎‎‏‎"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‏‏‎‎‏‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‏‎‎‏‏‎‎‎‎‎‎Tap to connect anyway‎‏‎‎‏‎"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‎‎‏‎‎‏‎‎‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‎‎Switched to ‎‏‎‎‏‏‎<xliff:g id="NETWORK_TYPE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
@@ -1631,18 +1620,43 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‎‎‎‏‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎Raise volume above recommended level?‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Listening at high volume for long periods may damage your hearing.‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‎‏‎‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎‏‎‏‎‏‎‏‎Use Accessibility Shortcut?‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‎‎‏‎‎‏‏‏‎‎‏‏‎‎‎‎‏‎‏‎‎‎‏‎‎‎‎When the shortcut is on, pressing both volume buttons for 3 seconds will start an accessibility feature.‎‏‎‎‏‎"</string>
-    <string name="accessibility_select_shortcut_menu_title" msgid="7310194076629867377">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‏‎‎‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎‏‏‏‎‎‎‏‎Tap the accessibility app you want to use‎‏‎‎‏‎"</string>
-    <string name="accessibility_edit_shortcut_menu_button_title" msgid="6096484087245145325">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‎‎‏‎‎‏‏‏‎‏‏‎‏‎Choose apps you want to use with accessibility button‎‏‎‎‏‎"</string>
-    <string name="accessibility_edit_shortcut_menu_volume_title" msgid="4849108668454490699">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‎‎‏‎‏‏‎Choose apps you want to use with volume key shortcut‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_multiple_service_warning_title" msgid="8417489297036013065">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‎‏‏‏‎‏‏‎‏‏‏‏‎‏‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎Turn on accessibility features?‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_multiple_service_warning" msgid="3740723309483706911">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎‎‎‎‎‎‎‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‏‏‎‎‏‏‎‎‏‎‏‎‎‎‎‏‏‏‏‏‎Holding down both volume keys for a few seconds turns on accessibility features. This may change how your device works.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Current features:‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎You can change selected features in Settings &gt; Accessibility.‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_multiple_service_list" msgid="6935581470716541531">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‎‏‏‏‏‏‎‎‎‎‏‏‎‏‎‏‏‏‎‎‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎	• ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_talkback_warning_title" msgid="3410100187167382427">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‎‎‏‏‎‏‏‎Turn on TalkBack?‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_talkback_warning" msgid="8412954203626349109">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‎‎‎‏‏‎‏‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‏‎‏‎Holding down both volume keys for a few seconds turns on TalkBack, a screen reader that is helpful for people who are blind or have low vision. TalkBack completely changes how your device works.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎You can change this shortcut to another feature in Settings &gt; Accessibility.‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_single_service_warning_title" msgid="2819109500943271385">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‏‏‏‎‏‎‎‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‏‎‏‏‏‎‏‏‎‎‏‎Turn on ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎?‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_single_service_warning" msgid="6363127705112844257">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‏‎‎‏‎‏‎‎‏‎‏‏‏‏‏‏‎‎‎‎‏‎Holding down both volume keys for a few seconds turns on ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎, an accessibility feature. This may change how your device works.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎You can change this shortcut to another feature in Settings &gt; Accessibility.‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_on" msgid="5463618449556111344">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‎‏‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎Turn on‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_off" msgid="3651336255403648739">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‎‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‏‏‎‎‏‏‎‏‏‏‎‎‎‏‏‎Don’t turn on‎‏‎‎‏‎"</string>
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‏‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎Allow ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ to have full control of your device?‎‏‎‎‏‎"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‏‏‏‏‎‎‎‏‏‎‏‏‎‏‎‏‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‏‏‎‎‏‏‏‏‏‎‏‏‎‏‎If you turn on ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎, your device won’t use your screen lock to enhance data encryption.‎‏‎‎‏‎"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‎‎‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‏‎Full control is appropriate for apps that help you with accessibility needs, but not for most apps.‎‏‎‎‏‎"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‏‏‎‏‎‏‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‏‎‎‎‎‏‏‎‎‎‏‎‏‏‎‎‎‎‎‎View and control screen‎‏‎‎‏‎"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‎‏‏‎‎‏‎‎‎‏‎‏‏‎‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‏‏‎‏‏‎‏‏‏‎‏‏‏‎‎‏‎‏‎‎‏‎‏‎It can read all content on the screen and display content over other apps.‎‏‎‎‏‎"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‎‏‏‎‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‎‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‏‎‎‏‎‏‎‏‎‏‏‎‎‎‎‎View and perform actions‎‏‎‎‏‎"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‎‏‎‏‏‏‎‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‏‏‏‏‏‏‎‎It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf.‎‏‎‎‏‎"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‎‎‏‎‏‎‎‎‎‏‏‎‏‎‏‎‏‎‎‎‏‎‎‎‎‎‎‏‏‏‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎Allow‎‏‎‎‏‎"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‎‏‏‏‏‎‎‏‏‎‎‏‏‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‏‎‏‎‏‏‏‏‏‎Deny‎‏‎‎‏‎"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‏‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‎‎‎‎‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‎‎‏‏‎‎‎‎Tap a feature to start using it:‎‏‎‎‏‎"</string>
+    <string name="accessibility_edit_shortcut_menu_button_title" msgid="239446795930436325">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‏‎‏‎‏‎‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‎‎‏‎‏‎‎‎‎‎‎‎‏‎‏‏‏‎‎‏‎‏‎Choose features to use with the accessibility button‎‏‎‎‏‎"</string>
+    <string name="accessibility_edit_shortcut_menu_volume_title" msgid="1077294237378645981">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‏‏‏‎‎‏‏‎‏‎‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‏‎‎‎‎‏‏‏‏‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎Choose features to use with the volume key shortcut‎‏‎‎‏‎"</string>
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎‏‎‏‎‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="SERVICE_NAME">%s</xliff:g>‎‏‎‎‏‏‏‎ has been turned off‎‏‎‎‏‎"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‎‏‎‎‎‏‎‎‏‎‎‎‎‏‎‎‏‏‎‎‎‎‎‏‎‎‎‏‎‏‏‏‎‎‏‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎Edit shortcuts‎‏‎‎‏‎"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‏‏‎‏‏‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‎‏‏‏‎‏‎‎Cancel‎‏‎‎‏‎"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‏‏‎‎‎‎‎‏‎‏‎‏‎‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‏‏‎‎‎Done‎‏‎‎‏‎"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‎‏‏‎‏‏‎‎‎‎‏‎‏‎‏‏‎‎‎‏‏‎‏‎‎‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎Turn off Shortcut‎‏‎‎‏‎"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‎‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‏‎‎‏‎‏‏‏‏‎‎Use Shortcut‎‏‎‎‏‎"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‎‎‎‎‏‏‎‎‏‎‏‏‏‎‎‏‏‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‎‏‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎‎Color Inversion‎‏‎‎‏‎"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎Color Correction‎‏‎‎‏‎"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‏‎‏‏‎‏‏‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‎‏‏‎‏‎‎‎‎‎‎‎‏‎Accessibility Shortcut turned ‎‏‎‎‏‏‎<xliff:g id="SERVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ on‎‏‎‎‏‎"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‎‏‎‏‎‎‏‏‎‎‏‏‏‎‏‎‎‏‎‎‎‏‎‎‏‎‏‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎Accessibility Shortcut turned ‎‏‎‎‏‏‎<xliff:g id="SERVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ off‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_enabling_service" msgid="5473495203759847687">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎‎‎‏‏‏‎Held volume keys. ‎‏‎‎‏‏‎<xliff:g id="SERVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ turned on.‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_disabling_service" msgid="8675244165062700619">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‏‎‏‎‎‎‏‎‎‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‏‏‏‎‎‏‎‎‏‎‏‏‎Held volume keys. ‎‏‎‎‏‏‎<xliff:g id="SERVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ turned off.‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‏‎‏‎‏‎‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‏‎‏‎‎‏‎‏‏‏‏‎‎‏‎‎Press and hold both volume keys for three seconds to use ‎‏‎‎‏‏‎<xliff:g id="SERVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="accessibility_button_prompt_text" msgid="8343213623338605305">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‏‎‎‎‎‎‏‎‎‏‏‎‎‎‎‎‏‏‎‏‎‏‏‏‏‏‎‎‏‎Choose a feature to use when you tap the accessibility button:‎‏‎‎‏‎"</string>
+    <string name="accessibility_gesture_prompt_text" msgid="8742535972130563952">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‏‏‎‏‏‏‎‏‎‎‎‏‎‎‏‎‏‏‎‎‎‏‏‏‎‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‎Choose a feature to use with the accessibility gesture (swipe up from the bottom of the screen with two fingers):‎‏‎‎‏‎"</string>
+    <string name="accessibility_gesture_3finger_prompt_text" msgid="5211827854510660203">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‏‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‎‎‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎Choose a feature to use with the accessibility gesture (swipe up from the bottom of the screen with three fingers):‎‏‎‎‏‎"</string>
+    <string name="accessibility_button_instructional_text" msgid="8853928358872550500">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎‏‏‎‏‏‎‎‎‎‏‏‎‎‎‏‏‎‎‏‎‎‎To switch between features, touch &amp; hold the accessibility button.‎‏‎‎‏‎"</string>
+    <string name="accessibility_gesture_instructional_text" msgid="9196230728837090497">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‏‏‎‏‏‏‎‎‏‏‎‎‏‏‎‎‎‎‎‏‎To switch between features, swipe up with two fingers and hold.‎‏‎‎‏‎"</string>
+    <string name="accessibility_gesture_3finger_instructional_text" msgid="3425123684990193765">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‎‎‎‎‎‏‎‏‎‏‏‏‎‎‏‏‏‏‎‎‎‎‏‎‎‎‎‎‏‏‎‎‏‎‏‎To switch between features, swipe up with three fingers and hold.‎‏‎‎‏‎"</string>
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‎‏‎‏‏‏‎‏‎‏‎‎‏‎‏‎‎‎‎‎‎‏‏‎‎‎Magnification‎‏‎‎‏‎"</string>
     <string name="user_switched" msgid="7249833311585228097">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‎Current user ‎‏‎‎‏‏‎<xliff:g id="NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎.‎‏‎‎‏‎"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‏‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎‎‎‎Switching to ‎‏‎‎‏‏‎<xliff:g id="NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎…‎‏‎‎‏‎"</string>
@@ -2013,7 +2027,7 @@
       <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‏‎‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="FILE_NAME_2">%s</xliff:g>‎‏‎‎‏‏‏‎ + ‎‏‎‎‏‏‎<xliff:g id="COUNT_3">%d</xliff:g>‎‏‎‎‏‏‏‎ files‎‏‎‎‏‎</item>
       <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‏‎‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="FILE_NAME_0">%s</xliff:g>‎‏‎‎‏‏‏‎ + ‎‏‎‎‏‏‎<xliff:g id="COUNT_1">%d</xliff:g>‎‏‎‎‏‏‏‎ file‎‏‎‎‏‎</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‎‏‎‏‎‏‏‏‎‏‏‏‎‎‎‏‏‎‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‏‎‎‏‏‎Direct share not available‎‏‎‎‏‎"</string>
+    <string name="chooser_no_direct_share_targets" msgid="1511722103987329028">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‎‏‏‏‏‏‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎‎No recommended people to share with‎‏‎‎‏‎"</string>
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‏‎‎‏‏‎‎‏‎‎‎‏‏‏‎‏‏‎‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎Apps list‎‏‎‎‏‎"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‎‎‎‎‏‎‏‏‎‏‏‏‎‏‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‎‎‎‎‎‎‏‏‏‎‎‎‏‏‏‎‎‎‏‏‏‎This app has not been granted record permission but could capture audio through this USB device.‎‏‎‎‏‎"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‎‏‎‏‎‎‎‎‎‏‎‏‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‎‎‏‏‏‎‏‎‏‏‏‎‎Home‎‏‎‎‏‎"</string>
@@ -2028,21 +2042,135 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‎‏‎‏‎‎‏‏‏‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‎‎‎‎‎‎Accessibility Menu‎‏‎‎‏‎"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‎‎‎‏‎‏‏‏‎‏‏‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‎‏‎‏‎‎Caption bar of ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎.‎‏‎‎‏‎"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‎‏‎‎‏‎‏‏‎‎‏‎‏‎‎‎‎‎‎‎‏‎‎‎‎‎‎‏‏‏‎‏‎‎‎‎‎‏‎‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ has been put into the RESTRICTED bucket‎‏‎‎‏‎"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‎‏‎‎‏‎‏‎‎‎‎‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‎‏‏‏‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="SENDER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎:‎‏‎‎‏‎"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‎‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‏‎‏‏‎‎‏‎‎‎‎‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎Conversation‎‏‎‎‏‎"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‎‏‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‎‏‏‎‏‎‏‏‏‏‎Group Conversation‎‏‎‎‏‎"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‏‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‏‎‎‎‏‏‏‎‎‏‏‏‎‎‏‎‏‏‎‎‏‎Personal‎‏‎‎‏‎"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎‏‏‎Work‎‏‎‎‏‎"</string>
     <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‎‎‎‎‏‏‏‎‏‎‎‏‏‎‎‎‎Personal view‎‏‎‎‏‎"</string>
     <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‏‏‏‎‎‎‏‎‎‎‎‎‎‏‏‎‏‎‏‏‎‎‎‏‏‎‏‏‏‎‎Work view‎‏‎‎‏‎"</string>
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‎‏‎‏‎‏‏‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‏‎‏‎‎‎‏‎Can’t share with work apps‎‏‎‎‏‎"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‎‏‏‏‎‏‏‎‏‎‏‎‎‏‎‎‏‎‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‏‏‏‏‎‎‏‎Can’t share with personal apps‎‏‎‎‏‎"</string>
-    <string name="resolver_cant_share_cross_profile_explanation" msgid="5556640604460901386">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‎‏‏‏‎‏‎‎‏‎‎‏‏‏‎‎‏‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‎‎‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‎‏‎‎Your IT admin blocked sharing between personal and work profiles‎‏‎‎‏‎"</string>
-    <string name="resolver_cant_access_work_apps" msgid="375634344111233790">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‏‏‎‏‎‎‎‎‏‎‏‎‏‏‏‎‎‏‎‎‎‎‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‎Can’t access work apps‎‏‎‎‏‎"</string>
-    <string name="resolver_cant_access_work_apps_explanation" msgid="3958762224516867388">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‎‎‎‎‎‏‎‏‏‎‎‏‎‏‎‎‎‏‎‎‏‏‎‎‏‏‏‎‏‎‎‏‎‎‎‎‎‎‏‎‎‏‎‏‎‎‏‏‏‏‎‎‎Your IT admin doesn’t let you view personal content in work apps‎‏‎‎‏‎"</string>
-    <string name="resolver_cant_access_personal_apps" msgid="1953215925406474177">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‏‏‎‏‏‏‏‎‎‎‏‎‎‏‎‎‎‏‏‎‏‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎Can’t access personal apps‎‏‎‎‏‎"</string>
-    <string name="resolver_cant_access_personal_apps_explanation" msgid="1725572276741281136">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‏‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎Your IT admin doesn’t let you view work content in personal apps‎‏‎‎‏‎"</string>
-    <string name="resolver_turn_on_work_apps_share" msgid="619263911204978175">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‎Turn on work profile to share content‎‏‎‎‏‎"</string>
-    <string name="resolver_turn_on_work_apps_view" msgid="3073389230905543680">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‏‏‎‎‎‏‏‎‏‎‏‎‎‏‎‏‎‎‎‏‎‏‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎Turn on work profile to view content‎‏‎‎‏‎"</string>
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎‎No apps available‎‏‎‎‏‎"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‏‎‎‏‏‎‎‎‎‏‎‎‏‎‎‏‏‎‎‎‏‎‏‏‎‎‏‎‎‎‎‎‏‎‎‏‏‎‎‎‏‏‏‏‎‏‎‎‏‎‏‏‎Can’t share this with work apps‎‏‎‎‏‎"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‏‎‎‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎‎‏‎Your IT admin doesn’t allow you to share this content with apps in your work profile‎‏‎‎‏‎"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‏‏‎‎‏‏‎‎‎‎‏‎‏‎‏‎‏‏‏‎Can’t open this with work apps‎‏‎‎‏‎"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‏‎‏‎‎‎‎‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎Your IT admin doesn’t allow you to open this content with apps in your work profile‎‏‎‎‏‎"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‏‎‏‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‎‏‏‏‎‎‎‏‎‏‎‏‏‎‏‎‏‏‎Can’t share this with personal apps‎‏‎‎‏‎"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‏‎‎‎‏‎‎‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‎‎‏‏‎Your IT admin doesn’t allow you to share this content with apps in your personal profile‎‏‎‎‏‎"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‎‎‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‎‏‏‎Can’t open this with personal apps‎‏‎‎‏‎"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‎‏‎‎‏‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‏‏‎‎‏‎‏‎‎‏‏‏‏‏‏‎‎‎‏‏‏‎Your IT admin doesn’t allow you to open this content with apps in your personal profile‎‏‎‎‏‎"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‏‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎Work profile is paused‎‏‎‎‏‎"</string>
     <string name="resolver_switch_on_work" msgid="2873009160846966379">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‎‎‎‏‎‎‏‎‎‏‎‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎Turn on‎‏‎‎‏‎"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‏‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‎No work apps can support this content‎‏‎‎‏‎"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‎‎‏‏‎‏‎‎‏‎‎‏‏‎‏‎‎‏‎‎‏‏‏‎‏‎‏‏‏‎‎‏‎‎‏‏‏‎‏‏‎‎‎‏‏‏‏‎‎‎‏‏‏‎No work apps can open this content‎‏‎‎‏‎"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‎‎‎‎‏‎‎‎‎‏‏‏‏‎‎‎‏‎‎‎‏‎‎‎‎‏‎‏‏‎‎‏‏‎‎‏‎‏‎‏‏‎‏‎‏‎‎‎‏‏‏‏‎‎‎No personal apps can support this content‎‏‎‎‏‎"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‏‏‎‏‎‎‏‏‏‎‎‏‎‎‎‎‏‏‎‎‎‎‏‎‎No personal apps can open this content‎‏‎‎‏‎"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‎‎‏‏‏‏‎‎‎‎‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‏‏‎‎‏‎‎‎‎‎‎‎‎‎‎Record or play audio in telephony calls‎‏‎‎‏‎"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎Allows this app, when assigned as default dialer application, to record or play audio in telephony calls.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_ENTRY" msgid="8050953231914637819">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‏‎‎‎‏‏‏‎‎‎‎‏‏‎‎‏‏‏‏‏‏‎‏‏‎SIM network unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY" msgid="7164399703751688214">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‎‏‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‏‎‏‎‏‏‎‎‎‎‏‎‎‎‏‎‎‎‎‎‎‎‎‎‎‏‎‏‏‎‎SIM network subset unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_ENTRY" msgid="4447629474818217364">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‏‏‏‎‎‏‎‎‏‎‎‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‏‎‏‏‎‎‎‏‏‎‎‎‏‏‎‏‎‏‎‏‏‎‎‏‎‏‎‎‎SIM corporate unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY" msgid="973059024670737358">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‎‎‎‎‎‏‏‏‎‎‎‎‎‏‏‎‏‏‏‏‏‏‎‎‏‏‎‎‎‎‏‏‏‏‎‎‏‏‏‎‎SIM service provider unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SIM_ENTRY" msgid="4487435301206073787">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‎‏‎‎‏‎‏‎‏‎‎‎‎‏‏‎‎‎‏‎‎‎‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎SIM unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY" msgid="768060297218652809">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‏‎‎‎‏‎‏‏‎‎‏‎‏‏‎‎‎‏‎‏‎‏‎‏‏‏‎‏‏‏‎‎‏‏‎‎‎‏‏‏‏‎‏‎‏‎‎‎‏‎‎‏‎Enter PUK‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY" msgid="7129527319490548930">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‎‏‎‏‎‎‏‏‎‎‎‎‏‎‎Enter PUK‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY" msgid="2876126640607573252">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‎‏‏‏‏‏‎‎‎‎‏‏‏‏‎‏‏‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‎‏‎‎‎‎‎‏‎‎‎Enter PUK‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY" msgid="8952595089930109282">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‎‏‎‎‏‏‎‎‎‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‏‎‎Enter PUK‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SIM_PUK_ENTRY" msgid="3013902515773728996">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‎‎‏‏‏‎‎‎‏‎‎‎‎‏‎‏‏‏‏‎‏‎‏‎‏‎‎‎‎‏‎‏‏‎‎‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‎‎‎Enter PUK‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_ENTRY" msgid="2974411408893410289">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‏‎RUIM network1 unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_ENTRY" msgid="687618528751880721">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‎‏‎‏‏‏‎‏‎‎‏‎‏‏‎‏‎‎‎‏‎‏‎‎‎‏‏‎‎‏‏‏‎‏‏‏‎‎‎‏‎‏‎‎‎‎‏‎‎‎‏‎RUIM network2 unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_HRPD_ENTRY" msgid="6810596579655575381">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‎‎‎‎‏‎‏‎‎‏‏‏‎‏‏‎‏‏‏‎‎‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎RUIM hrpd unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_ENTRY" msgid="2715929642540980259">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‎‎‏‏‏‎‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‎‎‎‎‎‏‎‎‎‏‏‎RUIM corporate unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY" msgid="8557791623303951590">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‏‎‏‏‎‎‎‏‎‎‎‏‎‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎‎‏‏‏‎‏‎‎‏‏‏‎‎‏‏‎‎RUIM service provider unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_RUIM_ENTRY" msgid="7382468767274580323">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‏‎‏‏‎‏‏‎‏‎‎‎‏‎‎‏‏‏‎‎‏‎‏‏‎‎‎‏‏‎RUIM unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY" msgid="6730880791104286987">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‎‏‏‏‏‎‎‏‏‎‏‎‎‎‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎‏‎‏‏‎Enter PUK‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY" msgid="6432126539782267026">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‏‎‎‏‎‏‎‎‏‎‎‎‎‏‎‏‎‏‏‎‏‎‎‎‎‎‏‎‎‏‎‎‏‎‎Enter PUK‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY" msgid="1730510161529488920">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‏‎‎‎‏‎‏‎‏‏‎‏‎‎‎‏‏‎‎‎‎‏‏‎‎‎‎Enter PUK‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY" msgid="3369885925003346830">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‏‏‏‎‏‎‏‎‏‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‏‏‏‎‎Enter PUK‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY" msgid="9129139686191167829">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‏‏‎‎‎‎‎‏‎‏‏‎‏‎‎‏‎‎‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‏‎‎‏‎‏‎‏‎‏‎‏‎Enter PUK‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY" msgid="2869929685874615358">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‎‎‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎Enter PUK‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SPN_ENTRY" msgid="1238663472392741771">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎‎‎‎‏‎‎‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‎‎‎‎‏‏‏‎‎‎‏‎‏‎‎‎‏‏‏‎‎‎‏‎‏‏‎SPN unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY" msgid="3988705848553894358">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‏‎‏‎‏‏‏‎‏‎‏‏‎‏‎‏‏‎‎‎‎‏‎‎‎‎‏‎‎‏‎‎‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‎‎SP Equivalent Home PLMN unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_ICCID_ENTRY" msgid="6186770686690993200">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‎‏‎‎‏‎‎‎‏‏‏‏‏‎‎‎‎‎‏‎‎‎‎‏‎‎‏‎‎‎‎‏‏‎‎‎‎‎ICCID unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_IMPI_ENTRY" msgid="7043865376145617024">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‏‎‎‎‏‏‏‏‎‏‎‏‎‏‎‏‏‎‏‏‎‏‎‏‎‏‎‎‏‏‎‎‎‎‏‎‎‎‎‎‎‎‎IMPI unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NS_SP_ENTRY" msgid="6144227308185112176">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‎‏‎‎‏‎‏‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‏‏‎‏‎‎‎‎‎‏‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎‎Network subset service provider unlock PIN‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS" msgid="4233355366318061180">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‎‏‏‎‏‏‎‏‏‎‎‏‏‏‏‏‎‎‎Requesting SIM network unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS" msgid="6742563947637715645">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‏‎‎‏‏‎‎‏‏‎‎‎‏‎‏‏‏‏‏‏‎‎‏‏‏‎‎‏‎‎‏‏‎‏‎‎‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎Requesting SIM network subset unlock …‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS" msgid="2033399698172403560">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‎‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎Requesting SIM service provider un lock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS" msgid="4795977251920732254">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‎‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‎‎‎‎‎‏‏‏‎‎‏‎‏‏‎‏‏‏‎‎‎‎‎‎‏‎‏‏‏‏‎‎Requesting SIM corporate unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS" msgid="1090425878157254446">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‏‏‎‎‎‏‎‎‎‏‎‏‏‏‎‏‎‎‏‏‎‏‏‏‏‏‎‎‏‎‏‏‏‎‎Requesting PUK unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS" msgid="6476898876518094438">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‎‎‏‎‏‎‎‏‎‎‎‏‎‎‏‏‎‏‏‎‎‏‎‎‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎‎‏‏‎‎‏‏‎‎Requesting PUK unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS" msgid="6006806734293747731">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎‎‏‏‏‎‏‏‎‏‏‏‎‎‏‏‎‎‏‎‎‎‎‎‎‎‎‎‎‎‎‎‎‏‏‎‎‏‎‎‎‎‎‎‏‎‎‏‏‎Requesting PUK unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS" msgid="6546680489620881893">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎‎‎‏‏‎‎‎‏‏‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‎Requesting PUK unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS" msgid="3506845511000727015">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‎‏‎‏‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‏‎‎‏‏‏‎Requesting PUK unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SIM_IN_PROGRESS" msgid="6709169861932992750">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‏‎‎‎‏‎‏‎‏‎‏‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‎‎‎‏‏‏‎‏‏‏‎‎Requesting SIM unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS" msgid="4013870911606478520">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‎‎‏‎‎‏‎‏‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‎‏‏‏‏‎‏‎‏‏‎‏‎‏‏‏‎‎‎‎Requesting RUIM network1 unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS" msgid="9032651188219523434">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‎‏‏‎‏‏‎‎‎‏‏‎‎‏‏‎‎‎‎‎‏‏‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‏‏‎‏‎‏‎‎Requesting RUIM network2 unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS" msgid="6584576506344491207">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‏‏‎‎‎‏‏‏‎Requesting RUIM hrpd unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS" msgid="830981927724888114">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‎‏‎‎‏‎‎‎‏‏‎‎‎‏‏‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‏‎‎‏‎‎Requesting RUIM service provider unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS" msgid="7851790973098894802">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‎‏‎‎‏‎‏‎‎‎‎‏‏‎‏‎‎‎‏‎‏‏‎‏‏‎‏‎‎‏‎‏‏‏‎‏‎‎‏‎‎Requesting RUIM corporate unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SPN_IN_PROGRESS" msgid="1149560739586960121">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‎‏‎‏‏‎‏‎‎‎‎‏‏‏‎‏‎‏‎‏‏‏‏‏‎‎‏‎Requesting SPN unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS" msgid="5708964693522116025">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‏‎‎‎‏‎‎‏‎‎‏‎‎‎‎‏‏‎‎‎‎‏‎‏‎‎‎‎‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‎‏‎Requesting SP Equivalent Home PLMN unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS" msgid="7288103122966483455">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‏‎‏‏‎‎‏‎‏‏‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‎‏‎‎‎‏‎‎‎‏‏‏‏‏‏‏‏‏‎Requesting ICCID unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS" msgid="4036752174056147753">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‎‏‎‏‎‏‏‎‏‏‎‎‏‎‏‏‎‏‏‎‏‏‏‏‎‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎Requesting IMPI unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS" msgid="5089536274515338566">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‎‏‏‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‏‎‏‎‎‎‏‏‎‎Requesting Network subset service provider unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS" msgid="6737197986936251958">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‏‏‎‎Requesting RUIM unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS" msgid="5658767775619998623">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎‎‎‎‎‏‏‏‏‎‎‎‏‏‏‎‎‏‏‏‏‏‎Requesting PUK unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS" msgid="665978313257653727">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎‏‏‏‎‏‏‏‏‏‎Requesting PUK unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS" msgid="3857142652251836850">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‎‏‏‎‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‏‎‎Requesting PUK unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS" msgid="2695664012344346788">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‏‎‏‎‎‎‏‏‏‎‏‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‎‎‏‏‎‎‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‎‎Requesting PUK unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS" msgid="2695678959963807782">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‏‎‏‎‎‎‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‎Requesting PUK unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS" msgid="1230605365926493599">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‏‎Requesting PUK unlock…‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_ERROR" msgid="1924844017037151535">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‎‏‎‎‏‎‎‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎SIM Network unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR" msgid="3372797822292089708">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‏‏‏‎‏‎‎‏‎‏‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‏‏‏‎‎‏‎‏‏‎‏‏‎‏‏‎‏‏‎‎‎SIM Network Subset unlock request unsucces sful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR" msgid="1878443146720411381">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‎‎‎‏‏‎‎‏‎‎‏‎‎‎‎‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‎‎‏‎‎‏‎‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‎SIM Service Provider unlock request unsu ccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_ERROR" msgid="7664778312218023192">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‎‏‏‎‎‎‎SIM Corporate unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SIM_ERROR" msgid="2472944311643350302">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‏‎‎‎‏‏‏‏‎‎SIM unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_ERROR" msgid="828089694480999120">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‏‏‏‎‏‎‎‎‏‎‏‏‎‏‎‎‎‎‎RUIM Network1 unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_ERROR" msgid="17619001007092511">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‎‏‏‎‎‎‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎‏‏‎‎‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎RUIM Network2 unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_HRPD_ERROR" msgid="807214229604353614">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‎‏‏‎‏‎‏‎‏‎‎‎‏‏‎‎‏‎‎‏‏‏‎‎RUIM Hrpd unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_ERROR" msgid="8644184447744175747">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‏‎‎‏‎‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‎‎‏‏‎RUIM Corporate unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR" msgid="3801002648649640407">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‏‎‏‏‏‎‎‎‏‎‏‎‎‏‎‏‎‏‎‎‏‏‏‎‏‎‏‏‏‎RUIM Service Provider unlock request un successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_RUIM_ERROR" msgid="707397021218680753">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‏‏‎‏‎‎‎‏‎‎‏‎‏‏‎‏‏‏‎‏‎‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎RUIM unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR" msgid="894358680773257820">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‎‎‏‏‎‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‎‎‏‏‎‏‏‏‎‏‎‏‎‎‏‎‏‏‏‎‎‎PUK unlock unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR" msgid="352466878146726991">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‏‎‎‎‎‏‏‎‏‏‎‏‏‎‎‎‎‏‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‏‎‏‏‎‎‏‏‎‎‎‏‎‎‏‏‏‏‎PUK unlock unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR" msgid="7353389721907138671">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‏‎‎‎‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‏‎‎‏‎‎‎‎‎‏‏‎‏‏‏‏‎PUK unlock unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR" msgid="2655263155490857920">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‏‏‎‎‏‎‏‏‎‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‎‎‎‎‎‏‏‎‏‏‏‎‎‏‎‎‎‏‏‏‏‎‎‎‎‎‎‎PUK unlock unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SIM_PUK_ERROR" msgid="6903740900892931310">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎‏‏‏‎‏‏‏‏‎‏‎‎‏‏‏‎‏‏‏‎‎PUK unlock unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR" msgid="5165901670447518687">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‏‏‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎PUK unlock unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR" msgid="2856763216589267623">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎‏‏‎‎‎‎‎‎‏‎‎‏‏‏‏‏‎‎‎‎‏‏‎‏‎‎‏‎‏‎‎‎‏‎‏‎‏‎‎‏‏‏‎PUK unlock unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR" msgid="817542684437829139">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‎‎‎‏‎‏‏‎‏‎‏‏‎‎‎‎‏‎‎‏‏‎PUK unlock unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR" msgid="5178635064113393143">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‏‏‎‎‎‏‏‎‏‏‎‏‏‏‏‏‎‏‏‏‎PUK unlock unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR" msgid="5391587926974531008">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‏‎‎‏‎‏‏‎‎‎‏‎‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎‏‎‏‎‎‏‏‎‏‎‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‎PUK unlock unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR" msgid="4895494864493315868">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‎‏‎‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‏‏‏‎‎‎PUK unlock unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SPN_ERROR" msgid="9017576601595353649">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‏‎‎‏‎‎‎‏‎‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‎‎‏‎SPN unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR" msgid="1116993930995545742">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‎‎‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‏‎‎SP Equivalent Home PLMN unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_ICCID_ERROR" msgid="7559167306794441462">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‏‏‏‏‎‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‎‏‏‏‏‎‏‏‎‎ICCID unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_IMPI_ERROR" msgid="2782926139511136588">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‎‏‎‎‎‏‎‎‏‏‎‏‏‎‏‏‎‏‎‏‏‏‏‎‎‎‎‏‎‏‎‎‏‏‎‎‎IMPI unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NS_SP_ERROR" msgid="1890493954453456758">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‏‏‏‎‎‎‏‏‎‎‎‏‎‎‎‏‏‏‏‎‎‎‎‏‏‏‏‎‏‎‎‏‏‏‎‎‎‏‏‎‎‎‏‏‏‎‏‏‏‎‏‏‎‎Network subset service provider unlock request unsuccessful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUCCESS" msgid="4886243367747126325">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‎‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‏‎SIM Network unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS" msgid="4053809277733513987">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‏‎‎‎‎‏‎‎‎‎‎‎‏‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‏‏‏‎‏‎‎‏‎‏‎‏‏‎‎‎‎‎‎‏‏‎SIM Network Subset unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS" msgid="8249342930499801740">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‏‏‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎‏‏‎‏‎‎‏‎‎‎‎‏‎‎‏‎‏‎‎‎‏‏‎‎‎SIM Service Provider unlock successful .‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_SUCCESS" msgid="2339794542560381270">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‏‏‎‎‎‏‎‎‏‏‏‏‎‏‎‏‏‏‏‎‏‎‏‎‏‏‏‎‎‏‎‏‏‎‏‎‏‏‎‎‎‏‎‎‏‎‏‎‏‎‏‏‎‎SIM Corporate unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SIM_SUCCESS" msgid="6975608174152828954">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‎‎‏‎‏‎‏‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎‎‏‏‎‎‏‎‎‎‎‎‎‏‏‎‏‎‎SIM unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS" msgid="2846699261330463192">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‎‎‎‎‎‎‏‏‏‏‎‎‏‎‏‎‏‎‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‎‏‏‏‎‏‏‎‎‎‎RUIM Network1 unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS" msgid="5335414726057102801">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‎‏‏‎‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‎‎‎‎‏‎‏‏‎‎‎‏‏‎‏‏‏‎‏‎‎‎‏‎RUIM Network2 unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_HRPD_SUCCESS" msgid="8868100318474971969">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‏‏‏‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎‏‏‎‏‎‎‎‎‎‏‎RUIM Hrpd unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS" msgid="6020936629725666932">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‏‏‏‎‏‎‏‎‏‎‎‏‏‏‏‏‎‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‏‏‎‎‏‏‏‎‏‎‎‎RUIM Service Provider unlock successf ul.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS" msgid="6944873647584595489">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‎‎‎‏‎‎‏‎‎‏‎‏‏‏‎‎‏‎‎‏‎‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‏‎‎‎‏‎‎‎‎‏‎RUIM Corporate unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_RUIM_SUCCESS" msgid="2526483514124121988">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‎‎‏‎‎‎RUIM unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS" msgid="7662200333621664621">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‏‎‏‏‎‎‏‏‎‏‎‏‎‎‏‏‎‏‏‎‏‏‏‏‎‏‏‎‏‏‎‎‏‏‎‎‎‎‏‏‎‏‏‎‏‏‎‏‏‎‏‎PUK unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS" msgid="2861223407953766632">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‏‏‎‏‎‏‎‎‎‏‏‎‏‏‏‎‎‎‎‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‏‏‎‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‎‎‎PUK unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS" msgid="5345648571175243272">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‎‏‎‎‏‎‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‎‏‎‎‎‎PUK unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS" msgid="3725278343103422466">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‎‏‏‎‎‏‎‏‏‎‏‏‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‎‏‎‎‎‏‎‎‎‏‎‏‎‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎PUK unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS" msgid="6998502547560297983">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎PUK unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS" msgid="8555433771162560361">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎‎‏‏‎‎‏‏‎‎‏‏‏‎‏‏‎‏‎‎‏‎PUK unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS" msgid="3555767296933606232">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‏‎‎‎‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‏‎‏‏‎‏‏‎‏‎‏‏‎‏‏‎‏‏‎‎‏‏‎‏‎‏‏‎‎‎‎PUK unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS" msgid="6778051818199974237">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‎‎‎‏‏‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‏‎‏‎‏‏‏‎‏‎PUK unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS" msgid="4080108758498911429">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‏‎‎‎‏‏‎‏‎‏‏‎‏‎‎‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎‎‎‏‎‏‎PUK unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS" msgid="7873675303000794343">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‏‎‎‏‏‏‎‏‎‎‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‎‏‎‎‏‏‏‎‎‏‏‏‎PUK unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS" msgid="1763198215069819523">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‏‎‏‎‎‎‎‎‏‏‎PUK unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SPN_SUCCESS" msgid="2053891977727320532">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‏‏‎‏‏‏‎‏‏‎‎‎‏‎‎‎‎‏‏‏‎‏‎‏‎‎‎SPN unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS" msgid="8146602361895007345">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‏‎‎‎‎‎‏‏‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‎‎‏‏‏‎‎‎‏‎SP Equivalent Home PLMN unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_ICCID_SUCCESS" msgid="8058678548991999545">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‏‏‎‏‎‏‏‏‎‎‎‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‏‏‏‏‎‎‎‏‏‏‎‎‏‎ICCID unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_IMPI_SUCCESS" msgid="2545608067978550571">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‏‏‏‎‏‎‎‎‏‎‎‎‎‏‏‎‎‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‎‏‎‏‎‏‏‎IMPI unlock successful.‎‏‎‎‏‎"</string>
+    <string name="PERSOSUBSTATE_SIM_NS_SP_SUCCESS" msgid="4352382949744625007">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎‎‎‏‎‏‎‎‏‏‏‎‏‏‏‎‎‏‏‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‏‎‏‏‏‏‎Network subset service provider unlock successful.‎‏‎‎‏‎"</string>
 </resources>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index af4b577..a84c311 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Se borrarán los datos del dispositivo"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"No se puede usar la app de administrador. Ahora se borrará tu dispositivo.\n\nSi tienes preguntas, comunícate con el administrador de tu organización."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> inhabilitó la impresión."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Un administrador suspendió las apps personales"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Presiona aquí para consultar el cumplimiento de políticas."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Yo"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opciones de tablet"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opciones de Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opciones de dispositivo"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Bloqueo de pantalla"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Apagar"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emergencias"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Informe de errores"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Finalizar sesión"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"tomar fotografías y grabar videos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Esta app puede tomar fotos y grabar videos con la cámara en cualquier momento."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Permitir que una aplicación o un servicio accedan a las cámaras del sistema para tomar fotos y grabar videos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Esta privilegiada | app del sistema puede tomar fotos y grabar videos con una cámara del sistema en cualquier momento. También se requiere que la app posea el permiso android.permission.CAMERA."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Permite que una aplicación o un servicio reciba devoluciones de llamada cuando se abren o cierran dispositivos de cámara."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"Esta app puede recibir devoluciones de llamada cuando se cierra o se abre cualquier dispositivo de cámara (y qué aplicación lo hace)."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"controlar la vibración"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite que la aplicación controle la vibración."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que la app acceda al estado del modo de vibración."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Permite que la app transmita las llamadas a través del sistema para mejorar la experiencia de llamadas."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"Mirar y controlar las llamadas con el sistema"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Permite que la app vea y controle las llamadas entrantes del dispositivo. Incluye información como los números emisores y el estado de las llamadas."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"eximida de restricciones para grabar audio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Exime a la app de las restricciones para grabar audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continuar llamada de otra app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Permite que la app continúe con una llamada que se inició en otra app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"leer números de teléfono"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Eliminar"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Método de entrada"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Acciones de texto"</string>
-    <string name="email" msgid="2503484245190492693">"Correo electrónico"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Enviar un correo electrónico a la dirección seleccionada"</string>
-    <string name="dial" msgid="4954567785798679706">"Llamar"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Llamar al número de teléfono seleccionado"</string>
-    <string name="map" msgid="6865483125449986339">"Mapa"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Buscar la dirección seleccionada"</string>
-    <string name="browse" msgid="8692753594669717779">"Abrir"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Abrir URL seleccionada"</string>
-    <string name="sms" msgid="3976991545867187342">"Mensaje"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Enviar un mensaje al número de teléfono seleccionado"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Agregar"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Agregar a contactos"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Ver"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Ver la hora seleccionada en el calendario"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Programar"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Programar un evento para la hora seleccionada"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Realizar seguimiento"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Seguir el vuelo seleccionado"</string>
-    <string name="translate" msgid="1416909787202727524">"Traducir"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Traducir texto seleccionado"</string>
-    <string name="define" msgid="5214255850068764195">"Definir"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definir texto seleccionado"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Queda poco espacio de almacenamiento"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Es posible que algunas funciones del sistema no estén disponibles."</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"No hay espacio suficiente para el sistema. Asegúrate de que haya 250 MB libres y reinicia el dispositivo."</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"La red móvil no tiene acceso a Internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"La red no tiene acceso a Internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"No se puede acceder al servidor DNS privado"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Se estableció conexión"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> tiene conectividad limitada"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Presiona para conectarte de todas formas"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Se cambió a <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"¿Quieres subir el volumen por encima del nivel recomendado?\n\nEscuchar a un alto volumen durante largos períodos puede dañar tu audición."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"¿Usar acceso directo de accesibilidad?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Cuando la combinación de teclas está activada, puedes presionar los botones de volumen durante 3 segundos para iniciar una función de accesibilidad."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"¿Deseas permitir que <xliff:g id="SERVICE">%1$s</xliff:g> tenga el control total del dispositivo?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Si activas <xliff:g id="SERVICE">%1$s</xliff:g>, el dispositivo no utilizará el bloqueo de pantalla para mejorar la encriptación de datos."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"El control total es apropiado para las apps que te ayudan con las necesidades de accesibilidad, pero no para la mayoría de las apps."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ver y controlar la pantalla"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Puede leer todo el contenido en la pantalla y mostrarlo sobre otras apps."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Ver y realizar acciones"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Puede realizar el seguimiento de tus interacciones con una app o un sensor de hardware, así como interactuar con las apps por ti."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Permitir"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Rechazar"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Presiona una función para comenzar a usarla:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Se desactivó <xliff:g id="SERVICE_NAME">%s</xliff:g>"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar accesos directos"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancelar"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Listo"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desactivar acceso directo"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Usar acceso directo"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inversión de color"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Corrección de color"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"El acceso directo de accesibilidad activó <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"El acceso directo de accesibilidad desactivó <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Mantén presionadas ambas teclas de volumen durante tres segundos para usar <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ampliación"</string>
     <string name="user_switched" msgid="7249833311585228097">"Usuario actual: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Cambiando a <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2049,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> y <xliff:g id="COUNT_3">%d</xliff:g> archivos más</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> y <xliff:g id="COUNT_1">%d</xliff:g> archivo más</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"No está disponible el uso compartido directo"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Lista de apps"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Aunque no se le otorgó permiso de grabación a esta app, puede capturar audio con este dispositivo USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Página principal"</string>
@@ -2031,31 +2065,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menú de accesibilidad"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de subtítulos de <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Se colocó <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> en el depósito RESTRICTED"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversación"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Conversación en grupo"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Trabajo"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Vista personal"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Vista de trabajo"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"No se puede compartir con apps de trabajo"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"No se puede compartir con apps personales"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"No hay apps disponibles"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Activar"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Graba o reproduce audio en llamadas de telefonía"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permite que esta app grabe o reproduzca audio en llamadas de telefonía cuando se la asigna como aplicación de teléfono predeterminada."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 518b132..ac01527 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Tu dispositivo se borrará"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"No se puede utilizar la aplicación de administración. Se borrarán todos los datos del dispositivo.\n\nSi tienes alguna pregunta, ponte en contacto con el administrador de tu organización."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ha inhabilitado la impresión."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Un administrador ha suspendido las aplicaciones personales"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Toca aquí para comprobar el cumplimiento de las políticas."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Yo"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opciones del tablet"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opciones de Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opciones del teléfono"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Bloqueo de pantalla"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Apagar"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emergencia"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Informe de error"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Finalizar sesión"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"realizar fotografías y vídeos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Esta aplicación puede hacer fotografías y grabar vídeos con la cámara en cualquier momento."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Permitir que una aplicación o servicio acceda a las cámaras del sistema para hacer fotos y vídeos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Esta aplicación del sistema tiene permiso para hacer fotos y grabar vídeos en cualquier momento con una cámara del sistema, aunque debe tener también el permiso android.permission.CAMERA para hacerlo"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Permitir que una aplicación o servicio reciba retrollamadas cada vez que se abra o cierre una cámara."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"controlar la vibración"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite que la aplicación controle la función de vibración."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que la aplicación acceda al ajuste de vibración."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Permite a la aplicación direccionar sus llamadas hacia el sistema para mejorar la calidad de estas."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ver y controlar llamadas a través del sistema."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Permite que la aplicación vea y controle las llamadas entrantes en el dispositivo. Esto incluye información como los números de las llamadas y su estado."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"excluir de las restricciones de grabación de audio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Excluye la aplicación de las restricciones de grabación de audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continuar una llamada de otra aplicación"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Permite que la aplicación continúe una llamada que se ha iniciado en otra aplicación."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"leer números de teléfono"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Eliminar"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Método de introducción de texto"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Acciones de texto"</string>
-    <string name="email" msgid="2503484245190492693">"Enviar correo"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Enviar un correo electrónico a la dirección seleccionada"</string>
-    <string name="dial" msgid="4954567785798679706">"Llamar"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Llamar al número de teléfono seleccionado"</string>
-    <string name="map" msgid="6865483125449986339">"Mapa"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Buscar la dirección seleccionada"</string>
-    <string name="browse" msgid="8692753594669717779">"Abrir"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Abrir la URL seleccionada"</string>
-    <string name="sms" msgid="3976991545867187342">"Enviar SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Enviar SMS al teléfono seleccionado"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Añadir"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Añadir a contactos"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Ver"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Ver la hora seleccionada en el calendario"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Programar"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Programar un evento para la hora seleccionada"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Hacer seguimiento"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Seguir el vuelo seleccionado"</string>
-    <string name="translate" msgid="1416909787202727524">"Traducir"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Traducir el texto seleccionado"</string>
-    <string name="define" msgid="5214255850068764195">"Definir"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definir el texto seleccionado"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Queda poco espacio"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Es posible que algunas funciones del sistema no funcionen."</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"No hay espacio suficiente para el sistema. Comprueba que haya 250 MB libres y reinicia el dispositivo."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"La red móvil no tiene acceso a Internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"La red no tiene acceso a Internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"No se ha podido acceder al servidor DNS privado"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Conectado"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> tiene una conectividad limitada"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Toca para conectarte de todas formas"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Se ha cambiado a <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"¿Quieres subir el volumen por encima del nivel recomendado?\n\nEscuchar sonidos fuertes durante mucho tiempo puede dañar los oídos."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"¿Utilizar acceso directo de accesibilidad?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Si el acceso directo está activado, pulsa los dos botones de volumen durante 3 segundos para iniciar una función de accesibilidad."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"¿Quieres permitir que <xliff:g id="SERVICE">%1$s</xliff:g> pueda controlar totalmente tu dispositivo?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Si activas <xliff:g id="SERVICE">%1$s</xliff:g>, el dispositivo no utilizará el bloqueo de pantalla para mejorar el cifrado de datos."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"El control total es adecuado para las aplicaciones de accesibilidad, pero no para la mayoría de las aplicaciones."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ver y controlar la pantalla"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Puede leer todo el contenido de la pantalla y mostrar contenido sobre otras aplicaciones."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Ver y realizar acciones"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Puede registrar tus interacciones con una aplicación o un sensor de hardware, así como interactuar con las aplicaciones en tu nombre."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Permitir"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Denegar"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Toca una función para empezar a usarla:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Se ha desactivado <xliff:g id="SERVICE_NAME">%s</xliff:g>"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar accesos directos"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancelar"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Listo"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desactivar acceso directo"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Utilizar acceso directo"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inversión de color"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Corrección de color"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"El acceso directo a accesibilidad ha activado <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"El acceso directo a accesibilidad ha desactivado <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Para utilizar <xliff:g id="SERVICE_NAME">%1$s</xliff:g>, mantén pulsadas ambas teclas de volumen durante 3 segundos"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ampliar"</string>
     <string name="user_switched" msgid="7249833311585228097">"Usuario actual: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Cambiando a <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -1779,8 +1813,8 @@
     <string name="package_updated_device_owner" msgid="7560272363805506941">"Actualizado por el administrador"</string>
     <string name="package_deleted_device_owner" msgid="2292335928930293023">"Eliminado por el administrador"</string>
     <string name="confirm_battery_saver" msgid="5247976246208245754">"Aceptar"</string>
-    <string name="battery_saver_description_with_learn_more" msgid="1817385558636532621">"Para que la batería dure más, Ahorro de batería:\nActiva el tema oscuro\nDesactiva o restringe actividad en segundo plano, algunos efectos visuales y otras funciones como \"Ok Google\"\n\n"<annotation id="url">"Más información"</annotation></string>
-    <string name="battery_saver_description" msgid="7618492104632328184">"Para que la batería dure más, Ahorro de batería:\nActiva el tema oscuro\nDesactiva o restringe actividad en segundo plano, algunos efectos visuales y otras funciones como \"Ok Google\""</string>
+    <string name="battery_saver_description_with_learn_more" msgid="1817385558636532621">"Para que la batería dure más, Ahorro de batería:\n· Activa el tema oscuro\n· Desactiva o restringe actividad en segundo plano, algunos efectos visuales y otras funciones como \"Ok Google\"\n\n"<annotation id="url">"Más información"</annotation></string>
+    <string name="battery_saver_description" msgid="7618492104632328184">"Para que la batería dure más, Ahorro de batería:\n· Activa el tema oscuro\n· Desactiva o restringe actividad en segundo plano, algunos efectos visuales y otras funciones como \"Ok Google\""</string>
     <string name="data_saver_description" msgid="4995164271550590517">"El ahorro de datos evita que algunas aplicaciones envíen o reciban datos en segundo plano, lo que permite reducir el uso de datos. Una aplicación activa podrá acceder a los datos, aunque con menos frecuencia. Esto significa que, por ejemplo, algunas imágenes no se mostrarán hasta que las toques."</string>
     <string name="data_saver_enable_title" msgid="7080620065745260137">"¿Activar ahorro de datos?"</string>
     <string name="data_saver_enable_button" msgid="4399405762586419726">"Activar"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> y <xliff:g id="COUNT_3">%d</xliff:g> archivos</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> y <xliff:g id="COUNT_1">%d</xliff:g> archivo</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"No se puede compartir directamente"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Lista de aplicaciones"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Esta aplicación no tiene permiso para grabar, pero podría registrar audio con este dispositivo USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Inicio"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menú de accesibilidad"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de subtítulos de <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> se ha incluido en el grupo de restringidos"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversación"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Conversación de grupo"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Trabajo"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"No se puede compartir con las aplicaciones de trabajo"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"No se puede compartir con las aplicaciones personales"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"No hay ninguna aplicación disponible"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Ver contenido personal"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Ver contenido de trabajo"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"No se puede compartir con una aplicación de trabajo"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Tu administrador de TI no te permite compartir este contenido con ninguna aplicación de tu perfil de trabajo"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"No se puede abrir con una aplicación de trabajo"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Tu administrador de TI no te permite abrir este contenido con ninguna aplicación de tu perfil de trabajo"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"No se puede compartir con una aplicación personal"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Tu administrador de TI no te permite compartir este contenido con ninguna aplicación de tu perfil personal"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"No se puede abrir con una aplicación personal"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Tu administrador de TI no te permite abrir este contenido con ninguna aplicación de tu perfil personal"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"El perfil de trabajo está en pausa"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Activar"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Ninguna aplicación de trabajo es compatible con este contenido"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Ninguna aplicación de trabajo puede abrir este contenido"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Ninguna aplicación personal es compatible con este contenido"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Ninguna aplicación personal puede abrir este contenido"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Grabar o reproducir audio en llamadas telefónicas"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permite que la aplicación grabe o reproduzca audio en las llamadas telefónicas si está asignada como aplicación Teléfono predeterminada."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index a0ccf68..3af3c9b 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Seade kustutatakse"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administraatori rakendust ei saa kasutada. Teie seade tühjendatakse nüüd.\n\nKui teil on küsimusi, võtke ühendust organisatsiooni administraatoriga."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Rakendus <xliff:g id="OWNER_APP">%s</xliff:g> on printimise keelanud."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Administraator on isiklikud rakendused peatanud"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Eeskirjade järgimise kontrollimiseks puudutage siin."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Mina"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tahvelarvuti valikud"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV valikud"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Telefonivalikud"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Ekraanilukk"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Lülita välja"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Hädaabi"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Veaaruanne"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Seansi lõpp"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"piltide ja videote tegemine"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"See rakendus saab mis tahes ajal kaameraga pildistada ja videoid salvestada."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Rakendusel või teenusel lubatakse süsteemi kaameratele juurde pääseda, et pilte ja videoid jäädvustada"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"See privileegidega | süsteemirakendus saab süsteemi kaameraga alati pilte ja videoid jäädvustada. Rakendusel peab olema ka luba android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Lubab rakendusel või teenusel kaameraseadmete avamise või sulgemise kohta tagasikutseid vastu võtta."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"juhtige vibreerimist"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Võimaldab rakendusel juhtida vibreerimist."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Võimaldab rakendusel juurde pääseda vibreerimise olekule."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Võimaldab rakendusel kõnesid süsteemi kaudu marsruutida, et helistamiskogemust täiustada."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"süsteemi kaudu kõnede vaatamine ja juhtimine."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Lubab rakendusel seadmes vaadata ja juhtida käimasolevaid kõnesid. See hõlmab sellist teavet nagu kõnede numbrid ja olek."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"vabastus heli salvestamise piirangutest"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Vabastage rakendus heli salvestamise piirangutest."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"jätka kõnet teises rakenduses"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Lubab rakendusel jätkata kõnet, mida alustati teises rakenduses."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"lugeda telefoninumbreid"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Kustuta"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Sisestusmeetod"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Tekstitoimingud"</string>
-    <string name="email" msgid="2503484245190492693">"E-post"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Saada valitud aadressile meil"</string>
-    <string name="dial" msgid="4954567785798679706">"Helista"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Helista valitud telefoninumbrile"</string>
-    <string name="map" msgid="6865483125449986339">"Kaart"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Leia valitud aadress"</string>
-    <string name="browse" msgid="8692753594669717779">"Ava"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Ava valitud URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Saada sõnum"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Saada valitud telefoninumbrile sõnum"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Lisa"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Lisa kontaktide hulka"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Kuva"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Kuva valitud aeg kalendris"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Lisa ajakavasse"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Ajasta üritus valitud ajale"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Jälgi"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Jälgi valitud lendu"</string>
-    <string name="translate" msgid="1416909787202727524">"Tõlgi"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Tõlgi valitud tekst"</string>
-    <string name="define" msgid="5214255850068764195">"Defineeri"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Defineeri valitud tekst"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Talletusruum saab täis"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Mõned süsteemifunktsioonid ei pruugi töötada"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Süsteemis pole piisavalt talletusruumi. Veenduge, et seadmes oleks 250 MB vaba ruumi, ja käivitage seade uuesti."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobiilsidevõrgul puudub Interneti-ühendus"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Võrgul puudub Interneti-ühendus"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Privaatsele DNS-serverile ei pääse juurde"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Ühendatud"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"Võrgu <xliff:g id="NETWORK_SSID">%1$s</xliff:g> ühendus on piiratud"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Puudutage, kui soovite siiski ühenduse luua"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Lülitati võrgule <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Kas suurendada helitugevuse taset üle soovitatud taseme?\n\nPikaajaline valju helitugevusega kuulamine võib kuulmist kahjustada."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Kas kasutada juurdepääsetavuse otseteed?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kui otsetee on sisse lülitatud, käivitab mõlema helitugevuse nupu kolm sekundit all hoidmine juurdepääsetavuse funktsiooni."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Kas anda teenusele <xliff:g id="SERVICE">%1$s</xliff:g> teie seadme üle täielik kontroll?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Kui lülitate sisse teenuse <xliff:g id="SERVICE">%1$s</xliff:g>, ei kasuta seade andmete krüpteerimise täiustamiseks ekraanilukku."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Täielik haldusõigus sobib rakendustele, mis pakuvad juurdepääsufunktsioone. Enamiku rakenduste puhul seda ei soovitata."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ekraanikuva vaatamine ja haldamine"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"See saab lugeda kogu ekraanil kuvatud sisu ja kuvada sisu rakenduste peal."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Toimingute vaatamine ja tegemine"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"See saab jälgida teie suhtlust rakenduse või riistvaraanduriga ja teie eest rakendustega suhelda."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Luba"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Keela"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Puudutage funktsiooni, et selle kasutamist alustada."</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> on välja lülitatud"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Muuda otseteid"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Tühista"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Valmis"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Lülita otsetee välja"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Kasuta otseteed"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Värvide ümberpööramine"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Värviparandus"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Juurdepääsetavuse otsetee lülitas teenuse <xliff:g id="SERVICE_NAME">%1$s</xliff:g> sisse"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Juurdepääsetavuse otsetee lülitas teenuse <xliff:g id="SERVICE_NAME">%1$s</xliff:g> välja"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Teenuse <xliff:g id="SERVICE_NAME">%1$s</xliff:g> kasutamiseks hoidke kolm sekundit all mõlemat helitugevuse klahvi"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Suurendus"</string>
     <string name="user_switched" msgid="7249833311585228097">"Praegune kasutaja <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Üleminek kasutajale <xliff:g id="NAME">%1$s</xliff:g> ..."</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> faili</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> fail</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Vahetu jagamine ei ole saadaval"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Rakenduste loend"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Sellele rakendusele pole antud salvestamise luba, kuid see saab heli jäädvustada selle USB-seadme kaudu."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Avakuva"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Juurdepääsetavuse menüü"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Rakenduse <xliff:g id="APP_NAME">%1$s</xliff:g> pealkirjariba."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> on lisatud salve PIIRANGUTEGA"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Vestlus"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Grupivestlus"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Isiklik"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Töö"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Töörakendustega ei saa jagada"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Isiklike rakendustega ei saa jagada"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Ühtegi rakendust pole saadaval"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Isiklik vaade"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Töövaade"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Seda ei saa töörakendustega jagada"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Teie IT-administraator ei luba seda sisu teie tööprofiilil olevate rakendustega jagada"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Seda ei saa töörakendustega avada"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Teie IT-administraator ei luba seda sisu teie tööprofiilil olevate rakendustega avada"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Seda ei saa isiklike rakendustega jagada"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Teie IT-administraator ei luba seda sisu teie isiklikul profiilil olevate rakendustega jagada"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Seda ei saa isiklike rakendustega avada"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Teie IT-administraator ei luba seda sisu teie isiklikul profiilil olevate rakendustega avada"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Tööprofiil on peatatud"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Lülita sisse"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Töörakendused ei toeta seda sisu"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Seda sisu ei saa töörakendustega avada"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Isiklikud rakendused ei toeta seda sisu"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Seda sisu ei saa isiklike rakendustega avada"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Telefonikõnede heli salvestamine ja esitamine"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Kui see rakendus on määratud helistamise vaikerakenduseks, lubatakse sellel salvestada ja esitada telefonikõnede heli."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index 047e998..a3d5688 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -145,7 +145,7 @@
     <string name="wifi_calling_off_summary" msgid="5626710010766902560">"Desaktibatuta"</string>
     <string name="wfc_mode_wifi_preferred_summary" msgid="1035175836270943089">"Deitu wifi bidez"</string>
     <string name="wfc_mode_cellular_preferred_summary" msgid="4958965609212575619">"Deitu sare mugikorraren bidez"</string>
-    <string name="wfc_mode_wifi_only_summary" msgid="104951993894678665">"Wi-Fi sarea soilik"</string>
+    <string name="wfc_mode_wifi_only_summary" msgid="104951993894678665">"Wifi-sarea soilik"</string>
     <string name="cfTemplateNotForwarded" msgid="862202427794270501">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: ez da desbideratu"</string>
     <string name="cfTemplateForwarded" msgid="9132506315842157860">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
     <string name="cfTemplateForwardedTime" msgid="735042369233323609">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> zenbakira <xliff:g id="TIME_DELAY">{2}</xliff:g> segundotan"</string>
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Gailuko datuak ezabatu egingo dira"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Ezin da erabili administratzeko aplikazioa. Ezabatu egingo da gailuko eduki guztia.\n\nZalantzarik baduzu, jarri erakundeko administratzailearekin harremanetan."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> aplikazioak desgaitu egin du inprimatzeko aukera."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Aplikazio pertsonalak desgaitu egin ditu administratzaile batek"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Sakatu hau gidalerroa gordetzen den egiaztatzeko."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Ni"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tabletaren aukerak"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV gailuaren aukerak"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Telefonoaren aukerak"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Pantailaren blokeoa"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Itzali"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Larrialdi-deiak"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Akatsen txostena"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Amaitu saioa"</string>
@@ -343,7 +353,7 @@
     <string name="permdesc_receiveSms" msgid="1797345626687832285">"SMS mezuak jasotzeko eta prozesatzeko baimena ematen die aplikazioei. Horrela, aplikazioak gailura bidalitako mezuak kontrola eta ezaba ditzake zuri erakutsi gabe."</string>
     <string name="permlab_receiveMms" msgid="4000650116674380275">"jaso testu-mezuak (MMSak)"</string>
     <string name="permdesc_receiveMms" msgid="958102423732219710">"MMS mezuak jasotzeko eta prozesatzeko baimena ematen die aplikazioei. Horrela, aplikazioak gailura bidalitako mezuak kontrola eta ezaba ditzake zuri erakutsi gabe."</string>
-    <string name="permlab_bindCellBroadcastService" msgid="586746677002040651">"Desbideratu sare mugikor bidezko igorpen-mezuak"</string>
+    <string name="permlab_bindCellBroadcastService" msgid="586746677002040651">"desbideratu sare mugikor bidezko igorpen-mezuak"</string>
     <string name="permdesc_bindCellBroadcastService" msgid="6540910200973641606">"Sare mugikor bidezko igorpen-modulura lotzeko baimena ematen dio aplikazioari, sare mugikor bidezko igorpen-mezuak jaso ahala desbideratu ahal izateko. Sare mugikor bidezko igorpen-alertak kokapen batzuetan entregatzen dira larrialdi-egoeren berri emateko. Sare mugikor bidezko larrialdi-igorpenak jasotzean, aplikazio maltzurrek gailuaren errendimenduari edota funtzionamenduari eragin diezaiokete."</string>
     <string name="permlab_readCellBroadcasts" msgid="5869884450872137693">"irakurri sare mugikor bidezko igorpen-mezuak"</string>
     <string name="permdesc_readCellBroadcasts" msgid="672513437331980168">"Gailuak jasotako sare mugikor bidezko igorpenen mezuak irakurtzeko baimena ematen die aplikazioei. Sare mugikor bidezko igorpen-alertak kokapen batzuetan ematen dira larrialdi-egoeren berri emateko. Aplikazio gaiztoek gailuaren errendimendua edo funtzionamendua oztopa dezakete larrialdi-igorpen horietako bat jasotzen denean."</string>
@@ -377,7 +387,7 @@
     <string name="permdesc_persistentActivity" product="tablet" msgid="6055271149187369916">"Beren zati batzuk memoria modu iraunkorrean ezartzeko baimena ematen die aplikazioei. Horrela, beste aplikazioek erabilgarri duten memoria murritz daiteke eta tableta motel daiteke."</string>
     <string name="permdesc_persistentActivity" product="tv" msgid="6800526387664131321">"Beren zati batzuk memorian modu iraunkorrean ezartzeko baimena ematen die aplikazioei. Ondorioz, beste aplikazioek memoria gutxiago izan lezakete erabilgarri, eta Android TV gailuak motelago funtziona lezake."</string>
     <string name="permdesc_persistentActivity" product="default" msgid="1914841924366562051">"Beren zati batzuk memoria modu iraunkorrean ezartzeko baimena ematen die aplikazioei. Horrela, beste aplikazioek erabilgarri duten memoria murritz daiteke eta telefonoa motel daiteke."</string>
-    <string name="permlab_foregroundService" msgid="1768855976818467491">"Abiarazi zerbitzuak aurreko planoan"</string>
+    <string name="permlab_foregroundService" msgid="1768855976818467491">"abiarazi zerbitzuak aurreko planoan"</string>
     <string name="permdesc_foregroundService" msgid="8720071450020922795">"Aurreko planoko zerbitzuak erabiltzea baimentzen dio aplikazioari."</string>
     <string name="permlab_getPackageSize" msgid="375391550792886641">"neurtu aplikazioen biltegiratzeko tokia"</string>
     <string name="permdesc_getPackageSize" msgid="742743530909966782">"Bere kodea, datuak eta cache-tamainak eskuratzeko baimena ematen die aplikazioei."</string>
@@ -421,7 +431,7 @@
     <string name="permdesc_accessFineLocation" msgid="9221079523494157324">"Aplikazioak aurreko planoan funtzionatzen duenean bakarrik lor dezake zure kokapen zehatza. Kokapen-zerbitzuak aktibatuta eta erabilgarri eduki behar dituzu gailuan, aplikazioak erabil ditzan. Baliteke bateria gehiago erabiltzea."</string>
     <string name="permlab_accessCoarseLocation" msgid="1561042925407799741">"atzitu gutxi gorabeherako kokapena aurreko planoan bakarrik"</string>
     <string name="permdesc_accessCoarseLocation" msgid="4826281078353537786">"Aplikazioak aurreko planoan funtzionatzen duenean bakarrik lor dezake zure gutxi gorabeherako kokapena. Kokapen-zerbitzuak aktibatuta eta erabilgarri eduki behar dituzu gailuan, aplikazioak erabil ditzan."</string>
-    <string name="permlab_accessBackgroundLocation" msgid="1721164702777366138">"Atzitu kokapena atzeko planoan"</string>
+    <string name="permlab_accessBackgroundLocation" msgid="1721164702777366138">"atzitu kokapena atzeko planoan"</string>
     <string name="permdesc_accessBackgroundLocation" msgid="623676842127558197">"Aurreko planoan egotean bezala, aplikazioak kokapena atzi dezake atzeko planoan egotean."</string>
     <string name="permlab_modifyAudioSettings" msgid="6129039778010031815">"aldatu audio-ezarpenak"</string>
     <string name="permdesc_modifyAudioSettings" msgid="8687227609663124921">"Audio-ezarpen orokorrak aldatzeko baimena ematen dio; besteak beste, bolumena eta irteerarako zer bozgorailu erabiltzen den."</string>
@@ -433,8 +443,12 @@
     <string name="permdesc_activityRecognition" msgid="8667484762991357519">"Aplikazioak ariketa fisikoa hauteman dezake."</string>
     <string name="permlab_camera" msgid="6320282492904119413">"atera argazkiak eta grabatu bideoak"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Aplikazioak edonoiz erabil dezake kamera argazkiak ateratzeko eta bideoak grabatzeko."</string>
-    <string name="permlab_systemCamera" msgid="3642917457796210580">"Onartu aplikazio edo zerbitzu bati sistemako kamerak atzitzea argazkiak eta bideoak ateratzeko"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Pribilegioa duen sistema-aplikazio honek edonoiz erabil dezake kamera argazkiak ateratzeko eta bideoak grabatzeko. Halaber, android.permission.CAMERA baimena izan behar du aplikazioak."</string>
+    <string name="permlab_systemCamera" msgid="3642917457796210580">"onartu aplikazio edo zerbitzu bati sistemako kamerak atzitzea argazkiak eta bideoak ateratzeko"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"eman jakinarazpenak jasotzeko baimena aplikazioari edo zerbitzuari kamerak ireki edo ixten direnean."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"kontrolatu dardara"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Bibragailua kontrolatzeko aukera ematen die aplikazioei."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Dardara-egoera atzitzeko baimena ematen dio aplikazioari."</string>
@@ -448,7 +462,9 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Deiak sistemaren bidez bideratzea baimentzen die aplikazioei, deien zerbitzua ahal bezain ona izan dadin."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ikusi eta kontrolatu deiak sistemaren bidez."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Gailuan abian diren deiak eta deion informazioa ikusi eta kontrolatzeko baimena ematen dio aplikazioari; besteak beste, deien zenbakiak eta deien egoera."</string>
-    <string name="permlab_acceptHandover" msgid="2925523073573116523">"Jarraitu beste aplikazio batean hasitako deia"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"salbuetsi audioa grabatzeko murriztapenen aurrean"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Salbuetsi aplikazioa audioa grabatzeko murriztapenen aurrean."</string>
+    <string name="permlab_acceptHandover" msgid="2925523073573116523">"jarraitu beste aplikazio batean hasitako deia"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Beste aplikazio batean hasitako dei bat jarraitzea baimentzen dio aplikazioari."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"irakurri telefono-zenbakiak"</string>
     <string name="permdesc_readPhoneNumbers" msgid="7368652482818338871">"Gailuaren telefono-zenbakiak atzitzeko baimena ematen die aplikazioei."</string>
@@ -484,9 +500,9 @@
     <string name="permdesc_changeNetworkState" msgid="649341947816898736">"Sarearen konexioaren egoera aldatzeko baimena ematen die aplikazioei."</string>
     <string name="permlab_changeTetherState" msgid="9079611809931863861">"aldatu telefono bidezko konektagarritasuna"</string>
     <string name="permdesc_changeTetherState" msgid="3025129606422533085">"Partekatutako Interneterako konexioaren egoera aldatzeko baimena ematen die aplikazioei."</string>
-    <string name="permlab_accessWifiState" msgid="5552488500317911052">"ikusi Wi-Fi konexioak"</string>
+    <string name="permlab_accessWifiState" msgid="5552488500317911052">"ikusi wifi bidezko konexioak"</string>
     <string name="permdesc_accessWifiState" msgid="6913641669259483363">"Wi-Fi sareei buruzko informazioa ikusteko baimena ematen die aplikazioei, adibidez, Wi-Fi konexioa aktibatuta dagoen eta konektatutako Wi-Fi gailuen izenak zein diren."</string>
-    <string name="permlab_changeWifiState" msgid="7947824109713181554">"konektatu Wi-Fira edo deskonektatu bertatik"</string>
+    <string name="permlab_changeWifiState" msgid="7947824109713181554">"konektatu wifira edo deskonektatu bertatik"</string>
     <string name="permdesc_changeWifiState" msgid="7170350070554505384">"Wi-Fi sarbide-puntuetara konektatzeko edo haietatik deskonektatzeko baimena ematen die aplikazioei, baita Wi-Fi sareen gailu-konfigurazioari aldaketak egitekoa ere."</string>
     <string name="permlab_changeWifiMulticastState" msgid="285626875870754696">"onartu Wi-Fi Multicast harrera"</string>
     <string name="permdesc_changeWifiMulticastState" product="tablet" msgid="191079868596433554">"Wi-Fi sarearen bidez gailu guztiei bidalitako paketeak jasotzeko baimena ematen die aplikazioei multidifusio-helbideak erabilita, ez tableta soilik. Multidifusiokoa ez den moduak baino bateria gehiago erabiltzen du."</string>
@@ -512,9 +528,9 @@
     <string name="permdesc_nfc" msgid="8352737680695296741">"Near Field Communication (NFC) etiketekin, txartelekin eta irakurgailuekin komunikatzea baimentzen die aplikazioei."</string>
     <string name="permlab_disableKeyguard" msgid="3605253559020928505">"desgaitu pantailaren blokeoa"</string>
     <string name="permdesc_disableKeyguard" msgid="3223710003098573038">"Teklen blokeoa eta erlazionatutako pasahitz-segurtasuna desgaitzeko baimena ematen die aplikazioei. Adibidez, telefonoak teklen blokeoa desgaitzen du telefono-deiak jasotzen dituenean, eta berriro gaitzen du deiak amaitzean."</string>
-    <string name="permlab_requestPasswordComplexity" msgid="1808977190557794109">"Eskatu pantailaren blokeoa konplexua izatea"</string>
+    <string name="permlab_requestPasswordComplexity" msgid="1808977190557794109">"eskatu pantailaren blokeoa konplexua izatea"</string>
     <string name="permdesc_requestPasswordComplexity" msgid="1130556896836258567">"Pantailaren blokeoaren konplexutasun-maila (handia, ertaina, txikia edo bat ere ez) jakiteko aukera ematen dio aplikazioari. Informazio horrekin, pantailaren blokeoaren luzera-barruti edo mota posiblea ondoriozta liteke. Halaber, pantailaren blokeoa maila jakin batera igotzeko iradoki diezaieke aplikazioak erabiltzaileei, baina horri ez ikusi egin eta aplikazioa erabiltzen jarraitzeko aukera dute erabiltzaileek. Kontuan izan pantailaren blokeoa ez dela gordetzen testu arrunt gisa; beraz, aplikazioak ez du jakingo pasahitz zehatza zein den."</string>
-    <string name="permlab_useBiometric" msgid="6314741124749633786">"Erabili hardware biometrikoa"</string>
+    <string name="permlab_useBiometric" msgid="6314741124749633786">"erabili hardware biometrikoa"</string>
     <string name="permdesc_useBiometric" msgid="7502858732677143410">"Autentifikatzeko hardware biometrikoa erabiltzeko baimena ematen die aplikazioei."</string>
     <string name="permlab_manageFingerprint" msgid="7432667156322821178">"kudeatu hatz-marken hardwarea"</string>
     <string name="permdesc_manageFingerprint" msgid="2025616816437339865">"Erreferentzia-gako digitalen txantiloiak gehitzeko eta ezabatzeko metodoei dei egitea baimentzen die aplikazioei."</string>
@@ -611,7 +627,7 @@
     <string name="permdesc_readSyncStats" msgid="3867809926567379434">"Kontu baten sinkronizazio-estatistikak irakurtzeko baimena ematen dio; besteak beste, sinkronizazio-gertaeren historia eta sinkronizatutako datu kopurua."</string>
     <string name="permlab_sdcardRead" msgid="5791467020950064920">"Irakurri biltegiratze partekatuko edukia"</string>
     <string name="permdesc_sdcardRead" msgid="6872973242228240382">"Biltegiratze partekatuko edukia irakurtzeko baimena ematen die aplikazioei."</string>
-    <string name="permlab_sdcardWrite" msgid="4863021819671416668">"Aldatu edo ezabatu biltegiratze partekatuko edukia"</string>
+    <string name="permlab_sdcardWrite" msgid="4863021819671416668">"aldatu edo ezabatu biltegiratze partekatuko edukia"</string>
     <string name="permdesc_sdcardWrite" msgid="8376047679331387102">"Biltegiratze partekatuko edukian idazteko baimena ematen die aplikazioei."</string>
     <string name="permlab_use_sip" msgid="8250774565189337477">"egin/jaso SIP deiak"</string>
     <string name="permdesc_use_sip" msgid="3590270893253204451">"SIP deiak egitea eta jasotzeko baimena ematen die aplikazioei."</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Ezabatu"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Idazketa-metodoa"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Testu-ekintzak"</string>
-    <string name="email" msgid="2503484245190492693">"Bidali mezu bat"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Bidali mezu elektroniko bat hautatutako helbidera"</string>
-    <string name="dial" msgid="4954567785798679706">"Deitu"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Deitu hautatutako telefono-zenbakira"</string>
-    <string name="map" msgid="6865483125449986339">"Mapa"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Bilatu hautatutako helbidea"</string>
-    <string name="browse" msgid="8692753594669717779">"Ireki"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Ireki hautatutako URLa"</string>
-    <string name="sms" msgid="3976991545867187342">"Bidali SMS bat"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Bidali testu-mezu bat hautatutako telefono-zenbakira"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Gehitu"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Gehitu kontaktuetan"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Ikusi"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Ikusi hautatutako ordua egutegian"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Antolatu"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Antolatu gertaera bat hautatutako ordurako"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Egin jarraipena"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Egin hautatutako hegaldiaren jarraipena"</string>
-    <string name="translate" msgid="1416909787202727524">"Itzuli"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Itzuli hautatutako testua"</string>
-    <string name="define" msgid="5214255850068764195">"Definitu"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definitu hautatutako testua"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Memoria betetzen ari da"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Sistemaren funtzio batzuek ez dute agian funtzionatuko"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Sisteman ez dago behar adina memoria. Ziurtatu gutxienez 250 MB erabilgarri dituzula eta, ondoren, berrabiarazi gailua."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Sare mugikorra ezin da konektatu Internetera"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Sarea ezin da konektatu Internetera"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Ezin da atzitu DNS zerbitzari pribatua"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Konektatuta"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> sareak konektagarritasun murriztua du"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Sakatu hala ere konektatzeko"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> erabiltzen ari zara orain"</string>
@@ -1476,7 +1469,7 @@
     <string name="sync_do_nothing" msgid="4528734662446469646">"Ez egin ezer, oraingoz"</string>
     <string name="choose_account_label" msgid="5557833752759831548">"Aukeratu kontu bat"</string>
     <string name="add_account_label" msgid="4067610644298737417">"Gehitu kontu bat"</string>
-    <string name="add_account_button_label" msgid="322390749416414097">"Gehitu kontua"</string>
+    <string name="add_account_button_label" msgid="322390749416414097">"Gehitu kontu bat"</string>
     <string name="number_picker_increment_button" msgid="7621013714795186298">"Handitu"</string>
     <string name="number_picker_decrement_button" msgid="5116948444762708204">"Txikitu"</string>
     <string name="number_picker_increment_scroll_mode" msgid="8403893549806805985">"Eduki sakatuta <xliff:g id="VALUE">%s</xliff:g>."</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Bolumena gomendatutako mailatik gora igo nahi duzu?\n\nMusika bolumen handian eta denbora luzez entzuteak entzumena kalte diezazuke."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Erabilerraztasun-lasterbidea erabili nahi duzu?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Lasterbidea aktibatuta dagoenean, bi bolumen-botoiak hiru segundoz sakatuta abiaraziko da erabilerraztasun-eginbidea."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Gailua guztiz kontrolatzeko baimena eman nahi diozu <xliff:g id="SERVICE">%1$s</xliff:g> zerbitzuari?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g> aktibatzen baduzu, gailuak ez du pantailaren blokeoa erabiliko datuen enkriptatzea hobetzeko."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Erabilerraztasun-beharrak asetzen dituzten aplikazioetan da egokia kontrol osoa, baina ez aplikazio gehienetan."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ikusi eta kontrolatu pantaila"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Pantailako eduki guztia irakur dezake, eta beste aplikazioen gainean edukia bistaratu."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Ikusi eta gauzatu ekintzak"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Aplikazioekin edo hardware-sentsoreekin dituzun interakzioen jarraipena egin dezake, eta zure izenean beste aplikazio batzuekin interakzioan jardun."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Baimendu"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Ukatu"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Eginbide bat erabiltzen hasteko, saka ezazu:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Desaktibatu da <xliff:g id="SERVICE_NAME">%s</xliff:g>"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editatu lasterbideak"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Utzi"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Eginda"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desaktibatu lasterbidea"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Erabili lasterbidea"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Koloreen alderantzikatzea"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Koloreen zuzenketa"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Erabilerraztasun-lasterbideak <xliff:g id="SERVICE_NAME">%1$s</xliff:g> aktibatu du"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Erabilerraztasun-lasterbideak <xliff:g id="SERVICE_NAME">%1$s</xliff:g> desaktibatu du"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> erabiltzeko, eduki sakatuta bolumen-tekla biak hiru segundoz"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Lupa"</string>
     <string name="user_switched" msgid="7249833311585228097">"Uneko erabiltzailea: <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> erabiltzailera aldatzen…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> fitxategi</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> fitxategi</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Zuzenean partekatzeko aukera ez dago erabilgarri"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Aplikazioen zerrenda"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Aplikazioak ez du grabatzeko baimenik, baina baliteke audioa grabatzea USB bidezko gailu horren bidez."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Pantaila nagusia"</string>
@@ -2031,31 +2066,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Erabilerraztasun-menua"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioko azpitituluen barra."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Murriztuen edukiontzian ezarri da <xliff:g id="PACKAGE_NAME">%1$s</xliff:g>"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Elkarrizketa"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Taldeko elkarrizketa"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Pertsonala"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Lanekoa"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Ikuspegi pertsonala"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Laneko ikuspegia"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ezin da partekatu laneko aplikazioekin"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Ezin da partekatu aplikazio pertsonalekin"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Ez dago aplikaziorik erabilgarri"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Aktibatu"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
     <skip />
-    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Grabatu edo erreproduzitu telefono-deietako audioa"</string>
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
+    <skip />
+    <string name="permlab_accessCallAudio" msgid="1682957511874097664">"grabatu edo erreproduzitu telefono-deietako audioa"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Aplikazio hau markagailu lehenetsia denean, telefono-deietako audioa grabatu edo erreproduzitzeko aukera ematen dio."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index f3572dc..14020eb 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"دستگاهتان پاک خواهد شد"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"برنامه سرپرست سیستم را نمی‌توان استفاده کرد. دستگاه شما در این لحظه پاک می‌شود.\n\nاگر سؤالی دارید، با سرپرست سیستم سازمانتان تماس بگیرید."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> چاپ کردن را غیرفعال کرده است."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"سرپرستْ برنامه‌های شخصی را به حالت تعلیق درآورد"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"برای بررسی مطابقت با خط‌مشی، اینجا ضربه بزنید."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"من"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"گزینه‌های رایانهٔ لوحی"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"‏گزینه‌های Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"گزینه‌های تلفن"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"قفل صفحه"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"خاموش کردن"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"اضطراری"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"گزارش اشکال"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"پایان جلسه"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"عکسبرداری و فیلمبرداری"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"این برنامه می‌تواند در هرزمانی با استفاده از دوربین عکس و فیلم بگیرد."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"به برنامه یا سرویسی اجازه دهید برای عکس‌برداری و فیلم‌برداری به دوربین‌های سیستم دسترسی داشته باشد"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"‏این برنامه سیستم که دارای امتیاز دسترسی است می‌تواند با استفاده از دوربین سیستم در هر زمانی عکس‌برداری و فیلم‌برداری کند. برنامه به مجوز android.permission.CAMERA هم نیاز دارد."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"مجاز کردن برنامه یا سرویس برای دریافت پاسخ تماس درباره دستگاه‌های دوربینی که باز یا بسته می‌شوند."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"کنترل لرزش"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"‏به برنامه اجازه می‎دهد تا لرزاننده را کنترل کند."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"به برنامه اجازه می‌دهد تا به وضعیت لرزاننده دسترسی داشته باشد."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"به برنامه امکان می‌دهد برای بهبود تجربه تماس، تماس‌هایش را ازطریق سیستم برقرار کند."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"دیدن و کنترل تماس‌ها ازطریق سیستم."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"به برنامه‌ها اجازه می‌دهد تماس‌های درحال انجام را در این دستگاه ببیند و کنترل کند. این مورد شامل اطلاعاتی مانند شماره تلفن برای تماس‌ها و وضعیت تماس‌ها است."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"معافیت از محدودیت‌های مربوط به ضبط صدا"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"برنامه را از محدودیت‌های مربوط به ضبط صدا معاف کنید."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"ادامه دادن تماس از برنامه‌ای دیگر"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"به برنامه اجازه می‌دهد تماسی را که در برنامه دیگری شروع شده ادامه دهد."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"خواندن شماره تلفن‌ها"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"حذف"</string>
     <string name="inputMethod" msgid="1784759500516314751">"روش ورودی"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"کنش‌های متنی"</string>
-    <string name="email" msgid="2503484245190492693">"فرستادن ایمیل"</string>
-    <string name="email_desc" msgid="8291893932252173537">"ارسال ایمیل به نشانی انتخابی"</string>
-    <string name="dial" msgid="4954567785798679706">"تماس گرفتن"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"تماس با شماره تلفن انتخابی"</string>
-    <string name="map" msgid="6865483125449986339">"نقشه"</string>
-    <string name="map_desc" msgid="1068169741300922557">"مکان‌یابی نشانی انتخاب‌شده"</string>
-    <string name="browse" msgid="8692753594669717779">"باز کردن"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"باز کردن نشانی وب انتخابی"</string>
-    <string name="sms" msgid="3976991545867187342">"فرستادن پیام"</string>
-    <string name="sms_desc" msgid="997349906607675955">"ارسال پیام به شماره تلفن انتخابی"</string>
-    <string name="add_contact" msgid="7404694650594333573">"افزودن"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"افزودن به مخاطبین"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"مشاهده"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"مشاهده زمان انتخابی در تقویم"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"زمان‌بندی کردن"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"زمان‌بندی رویداد برای زمان انتخابی"</string>
-    <string name="view_flight" msgid="2042802613849690108">"انجام پیگیری"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"ردیابی پرواز انتخابی"</string>
-    <string name="translate" msgid="1416909787202727524">"ترجمه کردن"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"ترجمه کردن نوشتار انتخاب‌شده"</string>
-    <string name="define" msgid="5214255850068764195">"تعریف کردن"</string>
-    <string name="define_desc" msgid="6916651934713282645">"تعریف نوشتار انتخابی"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"حافظه درحال پر شدن است"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"برخی از عملکردهای سیستم ممکن است کار نکنند"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"فضای ذخیره‌سازی سیستم کافی نیست. اطمینان حاصل کنید که دارای ۲۵۰ مگابایت فضای خالی هستید و سیستم را راه‌اندازی مجدد کنید."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"شبکه تلفن همراه به اینترنت دسترسی ندارد"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"شبکه به اینترنت دسترسی ندارد"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"‏سرور DNS خصوصی قابل دسترسی نیست"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"متصل"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> اتصال محدودی دارد"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"به‌هرصورت، برای اتصال ضربه بزنید"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"به <xliff:g id="NETWORK_TYPE">%1$s</xliff:g> تغییر کرد"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"میزان صدا را به بالاتر از حد توصیه شده افزایش می‌دهید؟\n\nگوش دادن به صداهای بلند برای مدت طولانی می‌تواند به شنوایی‌تان آسیب وارد کند."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"از میان‌بر دسترس‌پذیری استفاده شود؟"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"وقتی میان‌بر روشن باشد، با فشار دادن هردو دکمه صدا به‌مدت ۳ ثانیه ویژگی دسترس‌پذیری فعال می‌شود."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"به <xliff:g id="SERVICE">%1$s</xliff:g> اجازه می‌دهید بر دستگاهتان کنترل کامل داشته باشد؟"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"اگر <xliff:g id="SERVICE">%1$s</xliff:g> را روشن کنید، دستگاه شما از قفل صفحه شما جهت بهبود رمزگذاری اطلاعات استفاده نخواهد کرد."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"کنترل کامل برای بیشتر برنامه‌ها مناسب نیست، به‌جز برنامه‌هایی که به شما در زمینه نیازهای دسترس‌پذیری کمک می‌کند."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"مشاهده و کنترل صفحه"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"می‌تواند همه محتوای صفحه را بخواند و آن را روی بقیه برنامه‌ها نمایش دهد."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"مشاهده و انجام کنش‌ها"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"این عملکرد می‌تواند با برنامه یا حسگری سخت‌افزاری تعاملاتتان را ردیابی کند و ازطرف شما با برنامه‌ها تعامل داشته باشد."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"مجاز"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"رد کردن"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"برای استفاده از ویژگی، روی آن ضربه بزنید:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> خاموش شده است"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ویرایش میان‌برها"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"لغو"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"تمام"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"خاموش کردن میان‌بر"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"استفاده از میان‌بر"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"وارونگی رنگ"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"تصحیح رنگ"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"«میان‌بر دسترس‌پذیری» <xliff:g id="SERVICE_NAME">%1$s</xliff:g> را روشن کرد"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"«میان‌بر دسترس‌پذیری» <xliff:g id="SERVICE_NAME">%1$s</xliff:g> را خاموش کرد"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"برای استفاده از <xliff:g id="SERVICE_NAME">%1$s</xliff:g>، هر دو کلید صدا را فشار دهید و سه ثانیه نگه دارید"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"درشت‌نمایی"</string>
     <string name="user_switched" msgid="7249833311585228097">"کاربر کنونی <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"در حالت تغییر به <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> فایل</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> فایل</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"اشتراک‌گذاری مستقیم دردسترس نیست"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"فهرست برنامه‌ها"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"‏مجوز ضبط به این برنامه داده نشده است اما می‌تواند صدا را ازطریق این دستگاه USB ضبط کند."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"صفحه اصلی"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"منوی دسترس‌پذیری"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"نوار شرح <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> در سطل «محدودشده» قرار گرفت"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"مکالمه"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"مکالمه گروهی"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"شخصی"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"کاری"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"هم‌رسانی بااستفاده از «برنامه‌های کاری» امکان‌پذیر نیست"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"هم‌رسانی بااستفاده از برنامه‌های شخصی امکان‌پذیر نیست"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"هیچ برنامه‌ای در دسترس نیست"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"نمای شخصی"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"نمای کاری"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"این محتوا با برنامه‌های کاری هم‌رسانی نمی‌شود"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"سرپرست فناوری اطلاعات اجازه نمی‌دهد این محتوا را با برنامه‌های موجود در نمایه کاری هم‌رسانی کنید"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"این محتوا با برنامه‌های کاری باز نمی‌شود"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"سرپرست فناوری اطلاعات اجازه نمی‌دهد این محتوا را با برنامه‌های موجود در نمایه کاری باز کنید"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"این محتوا با برنامه‌های شخصی هم‌رسانی نمی‌شود"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"سرپرست فناوری اطلاعات اجازه نمی‌دهد این محتوا را با برنامه‌های موجود در نمایه شخصی هم‌رسانی کنید"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"این محتوا با برنامه‌های شخصی باز نمی‌شود"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"سرپرست فناوری اطلاعات اجازه نمی‌دهد این محتوا را با برنامه‌های موجود در نمایه شخصی باز کنید"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"نمایه کاری موقتاً متوقف شده است"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"روشن کردن"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"هیچ‌کدام از برنامه‌های کاری نمی‌توانند از این محتوا پشتیبانی کنند"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"هیچ‌کدام از برنامه‌های کاری نمی‌توانند این محتوا را باز کنند"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"هیچ‌کدام از برنامه‌های شخصی نمی‌توانند از این محتوا پشتیبانی کنند"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"هیچ‌کدام از برنامه‌های شخصی نمی‌توانند این محتوا را باز کنند"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ضبط یا پخش صدا در تماس‌های تلفنی"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"به این برنامه اجازه می‌دهد وقتی به‌عنوان برنامه شماره‌گیر پیش‌فرض تنظیم شده است، در تماس‌های تلفنی صدا ضبط یا پخش کند."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index a70d9a4..8251fc0 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Laitteen tiedot poistetaan"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Hallintasovellusta ei voi käyttää. Laitteen tiedot pyyhitään.\n\nPyydä ohjeita järjestelmänvalvojaltasi."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> on poistanut tulostuksen käytöstä."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Järjestelmänvalvoja on estänyt henkilökohtaisten sovellusten käytön"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Katso käytäntöjen noudattaminen napauttamalla tätä."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Minä"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet-laitteen asetukset"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV ‑vaihtoehdot"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Puhelimen asetukset"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Näytön lukitus"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Katkaise virta"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Hätäpuhelu"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Virheraportti"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Lopeta käyttökerta"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ota kuvia ja videoita"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Tämä sovellus voi ottaa kameralla kuvia ja videoita koska tahansa."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Salli sovellukselle tai palvelulle pääsy järjestelmän kameroihin, jotta se voi ottaa kuvia ja nauhoittaa videoita"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Tämä käyttöoikeuden saanut | järjestelmäsovellus voi ottaa järjestelmän kameralla kuvia ja videoita koska tahansa. Sovelluksella on oltava myös android.permission.CAMERA-käyttöoikeus"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Salli sovelluksen tai palvelun vastaanottaa vastakutsuja kameralaitteiden avaamisesta tai sulkemisesta."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"hallita värinää"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Antaa sovelluksen hallita värinää."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Sallii sovelluksen käyttää värinätilaa."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Tämä sallii sovelluksen ohjata puhelut järjestelmän kautta, mikä auttaa parantamaan puhelujen laatua."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"nähdä puhelut ja päättää niistä järjestelmässä"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Sovellus voi nähdä laitteella käynnissä olevat puhelut ja päättää niistä. Se näkee esimerkiksi puheluihin liittyvät numerot ja niiden tilat."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"saada vapautuksen äänen tallennusrajoituksista"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Vapauta sovellus äänen tallennusrajoituksista"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"jatkaa toisen sovelluksen puhelua"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Antaa sovelluksen jatkaa puhelua, joka aloitettiin toisessa sovelluksessa."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"lukea puhelinnumeroita"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Poista"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Syöttötapa"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Tekstitoiminnot"</string>
-    <string name="email" msgid="2503484245190492693">"Sähköposti"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Lähetä sähköposti valittuun osoitteeseen"</string>
-    <string name="dial" msgid="4954567785798679706">"Soita"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Soita valittuun puhelinnumeroon"</string>
-    <string name="map" msgid="6865483125449986339">"Kartta"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Etsi valittu osoite kartalta"</string>
-    <string name="browse" msgid="8692753594669717779">"Avaa"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Avaa valittu URL-osoite"</string>
-    <string name="sms" msgid="3976991545867187342">"Viesti"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Lähetä viesti valittuun puhelinnumeroon"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Lisää"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Lisää yhteystietoihin"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Näytä"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Näytä valittu aika kalenterissa"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Aikatauluta"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Ajoita tapahtuma valitulle ajalle"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Seuraa"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Seuraa valittua lentoa"</string>
-    <string name="translate" msgid="1416909787202727524">"Käännä"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Käännä valittu teksti."</string>
-    <string name="define" msgid="5214255850068764195">"Määrittele"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Määrittele valittu teksti"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Tallennustila loppumassa"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Kaikki järjestelmätoiminnot eivät välttämättä toimi"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Tallennustila ei riitä. Varmista, että vapaata tilaa on 250 Mt, ja käynnistä uudelleen."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobiiliverkko ei ole yhteydessä internetiin"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Verkko ei ole yhteydessä internetiin"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Ei pääsyä yksityiselle DNS-palvelimelle"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Yhdistetty"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> toimii rajoitetulla yhteydellä"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Yhdistä napauttamalla"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> otettiin käyttöön"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Nostetaanko äänenvoimakkuus suositellun tason yläpuolelle?\n\nPitkäkestoinen kova äänenvoimakkuus saattaa heikentää kuuloa."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Käytetäänkö esteettömyyden pikanäppäintä?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kun pikanäppäin on käytössä, voit käynnistää esteettömyystoiminnon pitämällä molempia äänenvoimakkuuspainikkeita painettuna kolmen sekunnin ajan."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Saako <xliff:g id="SERVICE">%1$s</xliff:g> laitteesi täyden käyttöoikeuden?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Jos <xliff:g id="SERVICE">%1$s</xliff:g> otetaan käyttöön, laitteesi ei käytä näytön lukitusta tiedon salauksen parantamiseen."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Täysi käyttöoikeus sopii esteettömyyssovelluksille, mutta ei useimmille sovelluksille."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Näytön katselu ja ohjaus"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Se voi lukea kaiken näytön sisällön ja näyttää sisältöä kaikista sovelluksista."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Toimintojen näkeminen ja suorittaminen"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Se voi seurata toimintaasi sovelluksella tai laitteistoanturilla ja käyttää sovelluksia puolestasi."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Salli"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Estä"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Aloita ominaisuuden käyttö napauttamalla sitä:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> on laitettu pois päältä"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Muokkaa pikakuvakkeita"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Peruuta"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Valmis"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Poista pikanäppäin käytöstä"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Käytä pikanäppäintä"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Käänteiset värit"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Värinkorjaus"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> otettiin käyttöön esteettömyystilan pikanäppäimellä."</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> poistettiin käytöstä esteettömyystilan pikanäppäimellä."</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Voit käyttää palvelua <xliff:g id="SERVICE_NAME">%1$s</xliff:g> painamalla molempia äänenvoimakkuuspainikkeita kolmen sekunnin ajan"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Suurennus"</string>
     <string name="user_switched" msgid="7249833311585228097">"Nykyinen käyttäjä: <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Vaihdetaan käyttäjään <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> tiedostoa</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> tiedosto</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Suora jakaminen ei käytettävissä"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Sovellusluettelo"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Sovellus ei ole saanut tallennuslupaa mutta voi tallentaa ääntä tämän USB-laitteen avulla."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Aloitusnäyttö"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Esteettömyysvalikko"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Tekstityspalkki: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> on nyt rajoitettujen ryhmässä"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Keskustelu"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Ryhmäkeskustelu"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Henkilökohtainen"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Työ"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ei voi jakaa työsovellusten kanssa"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Ei voi jakaa henkilökohtaisten sovellusten kanssa"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Sovelluksia ei ole käytettävissä"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Henkilökohtainen näkymä"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Työnäkymä"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Tätä ei voi jakaa työsovelluksilla"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"IT-järjestelmänvalvoja ei anna sinun jakaa tätä sisältöä työprofiilisi sovelluksilla"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Tätä ei voi avata työsovelluksilla"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"IT-järjestelmänvalvoja ei anna sinun avata tätä sisältöä työprofiilisi sovelluksilla"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Tätä ei voi jakaa henkilökohtaisilla sovelluksilla"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"IT-järjestelmänvalvoja ei anna sinun jakaa tätä sisältöä henkilökohtaisen profiilisi sovelluksilla"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Tätä ei voi avata henkilökohtaisilla sovelluksilla"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"IT-järjestelmänvalvoja ei anna sinun avata tätä sisältöä henkilökohtaisen profiilisi sovelluksilla"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Työprofiilin käyttö on keskeytetty"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Laita päälle"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Työsovellukset eivät voi tukea tätä sisältöä"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Työsovelluksilla ei voi avata tätä sisältöä"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Henkilökohtaiset sovellukset eivät voi tukea tätä sisältöä"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Henkilökohtaisilla sovelluksilla ei voi avata tätä sisältöä"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Äänen tallentaminen tai toistaminen puheluiden aikana"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Sallii tämän sovelluksen tallentaa tai toistaa ääntä puheluiden aikana, kun sovellus on valittu oletuspuhelusovellukseksi."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index af4be33..d6ec47c 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Le contenu de votre appareil sera effacé"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Impossible d\'utiliser l\'application d\'administration. Les données de votre appareil vont maintenant être effacées.\n\nSi vous avez des questions, communiquez avec l\'administrateur de votre organisation."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Impression désactivée par <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Les applications personnelles ont été suspendues par un administrateur"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Touchez ici pour vérifier la conformité aux politiques."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Moi"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Options de la tablette"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Options d\'Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Options du téléphone"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Verrouillage de l\'écran"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Éteindre"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Urgence"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Rapport de bogue"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Fermer la session"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"prendre des photos et filmer des vidéos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Cette application peut prendre des photos et enregistrer des vidéos à l\'aide de l\'appareil photo en tout temps."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Autoriser une application ou un service à accéder aux appareils photo système pour prendre des photos et filmer des vidéos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Cette application privilégiée | système peut prendre des photos ou filmer des vidéos à l\'aide d\'un appareil photo système en tout temps. L\'application doit également posséder l\'autorisation android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Autoriser une application ou un service de recevoir des rappels relatifs à l\'ouverture ou à la fermeture des appareils photos."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"gérer le vibreur"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Permet à l\'application de gérer le vibreur de l\'appareil."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permet à l\'application d\'accéder au mode vibration."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Permet à l\'application d\'acheminer ses appels dans le système afin d\'améliorer l\'expérience d\'appel."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"afficher et gérer les appels à l\'aide du système."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Autorise l\'application à afficher et à gérer les appels sortants sur l\'appareil. Cela comprend de l\'information comme les numéros pour les appels et l\'état des appels."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"est exemptée des restrictions relatives à l\'enregistrement de fichiers audio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Exempter l\'application des restrictions relatives à l\'enregistrement de fichiers audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continuer un appel d\'une autre application"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Permet à l\'application de continuer un appel commencé dans une autre application."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"lire les numéros de téléphone"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Supprimer"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Mode de saisie"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Actions sur le texte"</string>
-    <string name="email" msgid="2503484245190492693">"Envoyer un courriel"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Envoyer un courriel à l\'adresse sélectionnée"</string>
-    <string name="dial" msgid="4954567785798679706">"Appeler"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Téléphoner au numéro sélectionné"</string>
-    <string name="map" msgid="6865483125449986339">"Ouvrir une carte"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Localiser l\'adresse sélectionnée"</string>
-    <string name="browse" msgid="8692753594669717779">"Ouvrir"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Ouvrir l\'adresse URL sélectionnée"</string>
-    <string name="sms" msgid="3976991545867187342">"Envoyer un texto"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Envoyer un message texte au numéro de téléphone sélectionné"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Ajouter"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Ajouter aux contacts"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Afficher"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Voir la date sélectionnée dans l\'agenda"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Planifier"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Planifier un événement à l\'heure sélectionnée"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Effectuer le suivi"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Obtenir des informations sur le vol sélectionné"</string>
-    <string name="translate" msgid="1416909787202727524">"Traduire"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Traduire le texte sélectionné"</string>
-    <string name="define" msgid="5214255850068764195">"Définir"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Définir le texte sélectionné"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Espace de stockage bientôt saturé"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Il est possible que certaines fonctionnalités du système ne soient pas opérationnelles."</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Espace de stockage insuffisant pour le système. Assurez-vous de disposer de 250 Mo d\'espace libre, puis redémarrez."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Le réseau cellulaire n\'offre aucun accès à Internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Le réseau n\'offre aucun accès à Internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Impossible d\'accéder au serveur DNS privé"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Connecté"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"Le réseau <xliff:g id="NETWORK_SSID">%1$s</xliff:g> offre une connectivité limitée"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Touchez pour vous connecter quand même"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Passé au réseau <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Augmenter le volume au-dessus du niveau recommandé?\n\nL\'écoute prolongée à un volume élevé peut endommager vos facultés auditives."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Utiliser le raccourci d\'accessibilité?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Quand le raccourci est activé, appuyez sur les deux boutons de volume pendant trois secondes pour lancer une fonctionnalité d\'accessibilité."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Permettre à <xliff:g id="SERVICE">%1$s</xliff:g> de commander complètement votre appareil?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Si vous activez <xliff:g id="SERVICE">%1$s</xliff:g>, votre appareil n\'utilisera pas le verrouillage de l\'écran pour améliorer le chiffrement des données."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Le contrôle total convient aux applications qui répondent à vos besoins d\'accessibilité. Il ne convient pas à la plupart des applications."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Afficher et commander l\'écran"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Cette fonctionnalité peut lire tout le contenu à l\'écran et afficher du contenu par-dessus d\'autres applications."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Afficher et effectuer des actions"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Cette fonctionnalité peut faire le suivi de vos interactions avec une application ou un capteur matériel, et interagir avec des applications en votre nom."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Autoriser"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Refuser"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Toucher une fonctionnalité pour commencer à l\'utiliser :"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> a été désactivé"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Modifier les raccourcis"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Annuler"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"OK"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Désactiver le raccourci"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Utiliser le raccourci"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inversion des couleurs"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Correction des couleurs"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Le raccourci d\'accessibilité a activé la fonction <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Le raccourci d\'accessibilité a désactivé la fonction <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Maintenez enfoncées les deux touches de volume pendant trois secondes pour utiliser <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Zoom"</string>
     <string name="user_switched" msgid="7249833311585228097">"Utilisateur actuel : <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Changement d\'utilisateur (<xliff:g id="NAME">%1$s</xliff:g>) en cours…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> fichier</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> fichiers</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Le partage direct n\'est pas disponible"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Liste des applications"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Cette application n\'a pas été autorisée à effectuer des enregistrements, mais elle pourrait capturer du contenu audio par l\'intermédiaire de cet appareil USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Accueil"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu d\'accessibilité"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barre de légende de l\'application <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> a été placé dans le compartiment RESTREINT"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g> :"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversation"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Conversation de groupe"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personnel"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Bureau"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Partage impossible avec les applications professionnelles"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Partage impossible avec les applications personnelles"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Aucune application disponible"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Affichage personnel"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Affichage professionnel"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Partage impossible avec les applications professionnelles"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Votre administrateur informatique ne vous permet pas de partager ce contenu à l\'aide des applications qui figurent dans votre profil professionnel"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Ouverture impossible avec les applications professionnelles"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Votre administrateur informatique ne vous permet pas d\'ouvrir ce contenu à l\'aide des applications qui figurent dans votre profil professionnel"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Partage impossible avec les applications personnelles"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Votre administrateur informatique ne vous permet pas de partager ce contenu à l\'aide des applications qui figurent dans votre profil personnel"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Ouverture impossible avec les applications personnelles"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Votre administrateur informatique ne vous permet pas d\'ouvrir ce contenu à l\'aide des applications qui figurent dans votre profil personnel"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Le profil professionnel est interrompu"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Activer"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Aucune de vos applications professionnelles ne prend en charge ce contenu"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Aucune de vos applications professionnelles ne peut ouvrir ce contenu"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Aucune de vos applications personnelles ne prend en charge ce contenu"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Aucune de vos applications personnelles ne peut ouvrir ce contenu"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Enregistrer ou lire du contenu audio lors des appels téléphoniques"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permet à cette application, lorsqu\'elle est définie comme composeur par défaut, d\'enregistrer ou de lire du contenu audio lors des appels téléphoniques."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index f4309ba..5066289 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Les données de votre appareil vont être effacées"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Impossible d\'utiliser l\'application d\'administration. Les données de votre appareil vont maintenant être effacées.\n\nSi vous avez des questions, contactez l\'administrateur de votre organisation."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Impression désactivée par <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Les applications personnelles ont été suspendues par un administrateur"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Appuyez ici pour vérifier que les règles sont respectées."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Moi"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Options de la tablette"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Options Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Options du téléphone"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Verrouillage de l\'écran"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Éteindre"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Urgences"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Rapport de bug"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Fermer la session"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"prendre des photos et enregistrer des vidéos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Cette application peut utiliser l\'appareil photo pour prendre des photos et enregistrer des vidéos à tout moment."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Autoriser une application ou un service à accéder aux caméras système pour prendre des photos et enregistrer des vidéos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Cette application privilégiée ou système peut utiliser une caméra photo système pour prendre des photos et enregistrer des vidéos à tout moment. Pour cela, l\'application doit également disposer de l\'autorisation android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Autoriser une application ou un service à recevoir des rappels liés à l\'ouverture ou à la fermeture de caméras"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"contrôler le vibreur"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Permet à l\'application de contrôler le vibreur."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permet à l\'application d\'accéder à l\'état du vibreur."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Autorise l\'application à acheminer les appels via le système afin d\'optimiser le confort d\'utilisation."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"voir et contrôler les appels via le système."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Permet à l\'application de voir et contrôler les appels en cours sur l\'appareil. Cela inclut des informations telles que les numéros associés aux appels et l\'état des appels."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"Lever les restrictions portant sur l\'enregistrement audio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Exemptez l\'application des restrictions portant sur l\'enregistrement audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continuer un appel issu d\'une autre application"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Autorise l\'application à continuer un appel qui a été démarré dans une autre application."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"lire les numéros de téléphone"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Supprimer"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Mode de saisie"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Actions sur le texte"</string>
-    <string name="email" msgid="2503484245190492693">"Envoyer un e-mail"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Envoyer un e-mail à l\'adresse sélectionnée"</string>
-    <string name="dial" msgid="4954567785798679706">"Appeler"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Appeler le numéro de téléphone sélectionné"</string>
-    <string name="map" msgid="6865483125449986339">"Ouvrir une carte"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Localiser l\'adresse sélectionnée"</string>
-    <string name="browse" msgid="8692753594669717779">"Ouvrir"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Ouvrir l\'URL sélectionnée"</string>
-    <string name="sms" msgid="3976991545867187342">"Envoyer un SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Envoyer un SMS au numéro de téléphone sélectionné"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Ajouter"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Ajouter aux contacts"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Afficher"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Afficher l\'heure sélectionnée dans l\'agenda"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Planifier"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Planifier un événement à l\'heure sélectionnée"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Suivre"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Obtenir des informations sur le vol sélectionné"</string>
-    <string name="translate" msgid="1416909787202727524">"Traduire"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Traduire le texte sélectionné"</string>
-    <string name="define" msgid="5214255850068764195">"Définir"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Définir le texte sélectionné"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Espace de stockage bientôt saturé"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Il est possible que certaines fonctionnalités du système ne soient pas opérationnelles."</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Espace de stockage insuffisant pour le système. Assurez-vous de disposer de 250 Mo d\'espace libre, puis redémarrez."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Le réseau mobile ne dispose d\'aucun accès à Internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Le réseau ne dispose d\'aucun accès à Internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Impossible d\'accéder au serveur DNS privé"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Connecté"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"La connectivité de <xliff:g id="NETWORK_SSID">%1$s</xliff:g> est limitée"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Appuyer pour se connecter quand même"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Nouveau réseau : <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Augmenter le volume au dessus du niveau recommandé ?\n\nL\'écoute prolongée à un volume élevé peut endommager vos facultés auditives."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Utiliser le raccourci d\'accessibilité ?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Quand le raccourci est activé, appuyez sur les deux boutons de volume pendant trois secondes pour démarrer une fonctionnalité d\'accessibilité."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Accorder le contrôle total de votre appareil au service <xliff:g id="SERVICE">%1$s</xliff:g> ?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Si vous activez <xliff:g id="SERVICE">%1$s</xliff:g>, votre appareil n\'utilisera pas le verrouillage de l\'écran pour améliorer le chiffrement des données."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Le contrôle total convient aux applications qui répondent à vos besoins d\'accessibilité. Il ne convient pas à la plupart des applications."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Afficher et contrôler l\'écran"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Cette fonctionnalité peut lire l\'intégralité du contenu à l\'écran et afficher du contenu par-dessus d\'autres applications."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Afficher et effectuer des actions"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Cette fonctionnalité peut effectuer le suivi de vos interactions avec une application ou un capteur matériel, et interagir avec les applications en votre nom."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Autoriser"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Refuser"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Appuyez sur une fonctionnalité pour commencer à l\'utiliser :"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Le service <xliff:g id="SERVICE_NAME">%s</xliff:g> a été désactivé"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Modifier les raccourcis"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Annuler"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"OK"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Désactiver le raccourci"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Utiliser le raccourci"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inversion des couleurs"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Correction des couleurs"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Le raccourci d\'accessibilité a activé <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Le raccourci d\'accessibilité a désactivé <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Appuyez de manière prolongée sur les deux touches de volume pendant trois secondes pour utiliser <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Agrandissement"</string>
     <string name="user_switched" msgid="7249833311585228097">"Utilisateur actuel : <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Chargement du profil de <xliff:g id="NAME">%1$s</xliff:g>..."</string>
@@ -2016,7 +2050,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> fichier</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> fichiers</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Le partage direct n\'est pas disponible"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Liste des applications"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Cette application n\'a pas reçu l\'autorisation d\'enregistrer des contenus audio, mais peut le faire via ce périphérique USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Accueil"</string>
@@ -2031,31 +2066,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu d\'accessibilité"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barre de légende de l\'application <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> a été placé dans le bucket RESTRICTED"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g> :"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversation"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Conversation de groupe"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personnel"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Professionnel"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Vue personnelle"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Vue professionnelle"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Partage impossible avec les applications professionnelles"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Partage impossible avec les applications personnelles"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Aucune application disponible"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Activer"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Enregistrer ou lire du contenu audio lors des appels téléphoniques"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permet à cette application d\'enregistrer ou de lire du contenu audio lors des appels téléphoniques lorsqu\'elle est définie comme clavier par défaut."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index 838ea9e..fe5a9d6 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Borrarase o teu dispositivo"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Non se pode utilizar a aplicación de administración. Borrarase o teu dispositivo.\n\nSe tes preguntas, contacta co administrador da organización."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> desactivou a impresión."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Un administrador suspendeu as aplicacións persoais"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Toca aquí para comprobar o cumprimento da política."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Eu"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opcións da tableta"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opcións de Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opcións de teléfono"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Bloqueo de pantalla"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Apagar"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emerxencia"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Informe de erros"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Finalizar a sesión"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"facer fotos e vídeos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Esta aplicación pode utilizar a cámara en calquera momento para sacar fotos e gravar vídeos."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Permitir que unha aplicación ou un servizo acceda ás cámaras do sistema para sacar fotos e gravar vídeos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Esta aplicación do sistema con privilexios pode utilizar unha cámara do sistema en calquera momento para sacar fotos e gravar vídeos. Require que a aplicación tamén teña o permiso android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Permitir que unha aplicación ou servizo reciba retrochamadas cando se abran ou se pechen dispositivos con cámara."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"controlar a vibración"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite á aplicación controlar o vibrador."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que a aplicación acceda ao estado de vibrador"</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Permite á aplicación dirixir as súas chamadas a través do sistema para mellorar a túa experiencia durante as chamadas."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"consultar e controlar as chamadas a través do sistema."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Permite que a aplicación consulte e controle as chamadas en curso do dispositivo. Pode acceder a información como os números e os estados das chamadas."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"aplicación exenta de restricións para gravar audio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Aplicación exenta de restricións para gravar audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continuar unha chamada iniciada noutra aplicación"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Permite que a aplicación continúe unha chamada que se iniciou noutra aplicación."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ler números de teléfono"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Eliminar"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Método de introdución de texto"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Accións de texto"</string>
-    <string name="email" msgid="2503484245190492693">"Correo electrónico"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Enviar un correo electrónico ao enderezo seleccionado"</string>
-    <string name="dial" msgid="4954567785798679706">"Chamar"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Chamar ao número de teléfono seleccionado"</string>
-    <string name="map" msgid="6865483125449986339">"Mapa"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Localizar o enderezo seleccionado"</string>
-    <string name="browse" msgid="8692753594669717779">"Abrir"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Abrir o URL seleccionado"</string>
-    <string name="sms" msgid="3976991545867187342">"Enviar SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Enviar unha mensaxe ao número de teléfono seleccionado"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Engadir"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Engadir o elemento aos contactos"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Ver"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Consultar a hora seleccionada no calendario"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Programar"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Programar un evento para a data seleccionada"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Realizar seguimento"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Facer un seguimento do voo seleccionado"</string>
-    <string name="translate" msgid="1416909787202727524">"Traducir"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Traducir o texto seleccionado"</string>
-    <string name="define" msgid="5214255850068764195">"Definir"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definir o texto seleccionado"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Estase esgotando o espazo de almacenamento"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"É posible que algunhas funcións do sistema non funcionen"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Non hai almacenamento suficiente para o sistema. Asegúrate de ter un espazo libre de 250 MB e reinicia o dispositivo."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"A rede de telefonía móbil non ten acceso a Internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"A rede non ten acceso a Internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Non se puido acceder ao servidor DNS privado"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Estableceuse conexión"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"A conectividade de <xliff:g id="NETWORK_SSID">%1$s</xliff:g> é limitada"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Toca para conectarte de todas formas"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Cambiouse a: <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Queres subir o volume máis do nivel recomendado?\n\nA reprodución de son a un volume elevado durante moito tempo pode provocar danos nos oídos."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Queres utilizar o atallo de accesibilidade?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Cando o atallo está activado, podes premer os dous botóns de volume durante 3 segundos para iniciar unha función de accesibilidade."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Queres permitir que <xliff:g id="SERVICE">%1$s</xliff:g> poida controlar totalmente o teu dispositivo?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Se activas <xliff:g id="SERVICE">%1$s</xliff:g>, o dispositivo non utilizará o teu bloqueo de pantalla para mellorar a encriptación de datos."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"O control total é adecuado para as aplicacións que che axudan coa accesibilidade, pero non para a maioría das aplicacións."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ver e controlar a pantalla"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Pode ler todo o contido da pantalla e mostralo sobre outras aplicacións."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Ver e realizar accións"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Pode facer un seguimento das túas interaccións cunha aplicación ou cun sensor de hardware, así como interactuar por ti coas aplicacións."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Permitir"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Denegar"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Tocar unha función para comezar a utilizala:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g>: desactivouse"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar atallos"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancelar"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Feito"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desactivar atallo"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Utilizar atallo"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inversión de cor"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Corrección de cor"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"O atallo de accesibilidade activou <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"O atallo de accesibilidade desactivou <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Mantén premidas as teclas do volume durante tres segudos para usar <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ampliación"</string>
     <string name="user_switched" msgid="7249833311585228097">"Usuario actual <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Cambiando a <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ficheiros</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> ficheiro</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Non está dispoñible a función de compartir directamente"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Lista de aplicacións"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Esta aplicación non está autorizada a realizar gravacións, pero pode capturar audio a través deste dispositivo USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Inicio"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menú de accesibilidade"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de subtítulos de <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> incluíuse no grupo RESTRINXIDO"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversa"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Conversa de grupo"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Persoal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Traballo"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Non se pode compartir información coas aplicacións do traballo"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Non se pode compartir información coas aplicacións persoais"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Non hai aplicacións dispoñibles"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Vista persoal"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Vista de traballo"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Non se pode compartir este contido coas aplicacións do traballo"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"O teu administrador de TI non permite compartir este contido coas aplicacións do teu perfil de traballo"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Non se pode abrir este contido coas aplicacións do traballo"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"O teu administrador de TI non permite abrir este contido coas aplicacións do teu perfil de traballo"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Non se pode compartir este contido coas aplicacións persoais"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"O teu administrador de TI non permite compartir este contido coas aplicacións do teu perfil persoal"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Non se pode abrir este contido coas aplicacións persoais"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"O teu administrador de TI non permite abrir este contido coas aplicacións do teu perfil persoal"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"O perfil de traballo está en pausa"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Activar"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Ningunha aplicación do traballo admite este contido"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Ningunha aplicación do traballo pode abrir este contido"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Ningunha aplicación persoal admite este contido"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Ningunha aplicación persoal pode abrir este contido"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Gravar ou reproducir audio en chamadas telefónicas"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permite que esta aplicación, cando está asignada como aplicación predeterminada do marcador, grave e reproduza audio en chamadas telefónicas."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index 6dba380..1baf26b 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"તમારું ઉપકરણ કાઢી નાખવામાં આવશે"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"વ્યવસ્થાપક ઍપનો ઉપયોગ કરી શકાશે નહીં. તમારું ઉપકરણ હવે કાઢી નાખવામાં આવશે.\n\nજો તમને પ્રશ્નો હોય, તો તમારી સંસ્થાના વ્યવસ્થાપકનો સંપર્ક કરો."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> દ્વારા પ્રિન્ટ કરવાનું બંધ કરાયું છે."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"વ્યવસ્થાપક દ્વારા વ્યક્તિગત ઍપ સ્થગિત કરવામાં આવી છે"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"નીતિનું પાલન થાય છે કે કેમ તે તપાસવા માટે અહીં ટૅપ કરો."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"હું"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ટેબ્લેટ વિકલ્પો"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TVના વિકલ્પો"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"ફોન વિકલ્પો"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"સ્ક્રીન લૉક"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"પાવર બંધ"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"કટોકટી"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"બગ રિપોર્ટ"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"સત્ર સમાપ્ત કરો"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ચિત્રો અને વિડિઓઝ લો"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"આ ઍપ્લિકેશન, કૅમેરાનો ઉપયોગ કરીને કોઈપણ સમયે ચિત્રો લઈ અને વિડિઓઝ રેકોર્ડ કરી શકે છે."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"ઍપ્લિકેશન અથવા સેવા ઍક્સેસને સિસ્ટમ કૅમેરાનો ઉપયોગ કરીને ફોટા અને વીડિયો લેવાની મંજૂરી આપો"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"આ વિશેષાધિકૃત | સિસ્ટમ ઍપ કોઈપણ સમયે સિસ્ટમ કૅમેરાનો ઉપયોગ કરીને ફોટા લઈ અને વીડિયો રેકોર્ડ કરી શકે છે. ઍપ દ્વારા આયોજિત કરવા માટે android.permission.CAMERAની પરવાનગી પણ જરૂરી છે"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"કૅમેરા ડિવાઇસ ચાલુ કે બંધ થવા વિશે કૉલબૅક પ્રાપ્ત કરવાની ઍપ્લિકેશન કે સેવાને મંજૂરી આપો."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"જ્યારે કોઈ કૅમેરા ડિવાઇસ (કયા ઍપ્લિકેશન વડે) ખોલવા કે બંધ કરવામાં આવે, ત્યારે આ વિશેષ ઍપ કૉલબૅક પ્રાપ્ત કરી શકે છે."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"વાઇબ્રેશન નિયંત્રિત કરો"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"એપ્લિકેશનને વાઇબ્રેટરને નિયંત્રિત કરવાની મંજૂરી આપે છે."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ઍપને વાઇબ્રેટર સ્થિતિને ઍક્સેસ કરવાની મંજૂરી આપે છે."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"કૉલિંગ અનુભવ સુધારવા માટે ઍપ્લિકેશનને સિસ્ટમ મારફતે કૉલ બીજે વાળવાની મંજૂરી આપે છે."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"સિસ્ટમ મારફતે કૉલ જુઓ અને નિયંત્રિત કરો."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"ઍપને ડિવાઇસ પરના ચાલી રહેલા કૉલને જોવાની અને નિયંત્રિત કરવાની મંજૂરી આપે છે. આમાં કૉલ માટેના કૉલ નંબર અને તેની સ્થિતિ જેવી માહિતી શામેલ હોય છે."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ઑડિયો રેકૉર્ડ કરવા અંગેના પ્રતિબંધોમાંથી બાકાત રાખો"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"ઑડિયો રેકૉર્ડ કરવા માટે ઍપને પ્રતિબંધોમાંથી બાકાત રાખો."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"તૃતીય પક્ષ ઍપમાંનો કૉલ ચાલુ રાખો"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"એક અન્ય તૃતીય પક્ષ ઍપમાં ચાલુ થયેલા કૉલને આ ઍપમાં ચાલુ રાખવાની મંજૂરી આપે છે."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ફોન નંબર વાંચો"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"ડિલીટ કરો"</string>
     <string name="inputMethod" msgid="1784759500516314751">"ઇનપુટ પદ્ધતિ"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"ટેક્સ્ટ ક્રિયાઓ"</string>
-    <string name="email" msgid="2503484245190492693">"ઇમેઇલ કરો"</string>
-    <string name="email_desc" msgid="8291893932252173537">"પસંદ કરેલ ઍડ્રેસ પર ઇમેઇલ મોકલો"</string>
-    <string name="dial" msgid="4954567785798679706">"કૉલ કરો"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"પસંદ કરેલ ફોન નંબર પર કૉલ કરો"</string>
-    <string name="map" msgid="6865483125449986339">"નકશો ખોલો"</string>
-    <string name="map_desc" msgid="1068169741300922557">"પસંદ કરેલ સરનામું શોધો"</string>
-    <string name="browse" msgid="8692753594669717779">"ખોલો"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"પસંદ કરેલ URL ખોલો"</string>
-    <string name="sms" msgid="3976991545867187342">"સંદેશ મોકલો"</string>
-    <string name="sms_desc" msgid="997349906607675955">"પસંદ કરેલ ફોન નંબર પર સંદેશ મોકલો"</string>
-    <string name="add_contact" msgid="7404694650594333573">"ઉમેરો"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"સંપર્કોમાં ઉમેરો"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"જુઓ"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"કૅલેન્ડરમાં પસંદ કરેલો સમય જુઓ"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"શેડ્યૂલ કરો"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"પસંદ કરેલ સમય માટે ઇવેન્ટ શેડ્યૂલ કરો"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ટ્રૅક કરો"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"પસંદ કરેલ ફ્લાઇટને ટ્રૅક કરો"</string>
-    <string name="translate" msgid="1416909787202727524">"અનુવાદ કરો"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"પસંદ કરેલી ટેક્સ્ટનો અનુવાદ કરો"</string>
-    <string name="define" msgid="5214255850068764195">"વ્યાખ્યાતિત કરો"</string>
-    <string name="define_desc" msgid="6916651934713282645">"પસંદ કરેલી ટેક્સ્ટને વ્યાખ્યાતિત કરો"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"સ્ટોરેજ સ્થાન સમાપ્ત થયું"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"કેટલાક સિસ્ટમ Tasks કામ કરી શકશે નહીં"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"સિસ્ટમ માટે પર્યાપ્ત સ્ટોરેજ નથી. ખાતરી કરો કે તમારી પાસે 250MB ખાલી સ્થાન છે અને ફરીથી પ્રારંભ કરો."</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"મોબાઇલ નેટવર્ક કોઈ ઇન્ટરનેટ ઍક્સેસ ધરાવતું નથી"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"નેટવર્ક કોઈ ઇન્ટરનેટ ઍક્સેસ ધરાવતું નથી"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"ખાનગી DNS સર્વર ઍક્સેસ કરી શકાતા નથી"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"કનેક્ટેડ"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> મર્યાદિત કનેક્ટિવિટી ધરાવે છે"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"છતાં કનેક્ટ કરવા માટે ટૅપ કરો"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> પર સ્વિચ કર્યું"</string>
@@ -1631,21 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ભલામણ કરેલ સ્તરની ઉપર વૉલ્યૂમ વધાર્યો?\n\nલાંબા સમય સુધી ઊંચા અવાજે સાંભળવું તમારી શ્રવણક્ષમતાને નુકસાન પહોંચાડી શકે છે."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ઍક્સેસિબિલિટી શૉર્ટકટનો ઉપયોગ કરીએ?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"જ્યારે શૉર્ટકટ ચાલુ હોય, ત્યારે બન્ને વૉલ્યૂમ બટનને 3 સેકન્ડ સુધી દબાવી રાખવાથી ઍક્સેસિબિલિટી સુવિધા શરૂ થઈ જશે."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"શું <xliff:g id="SERVICE">%1$s</xliff:g>ને તમારા ડિવાઇસના સંપૂર્ણ નિયંત્રણની મંજૂરી આપીએ?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"જો તમે <xliff:g id="SERVICE">%1$s</xliff:g> ચાલુ કરશો, તો તમારું ડિવાઇસ ડેટા એન્ક્રિપ્શનને બહેતર બનાવવા તમારા સ્ક્રીન લૉકનો ઉપયોગ કરશે નહીં."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"ઍક્સેસિબિલિટી સંબંધિત આવશ્યકતા માટે સહાય કરતી ઍપ માટે સંપૂર્ણ નિયંત્રણ યોગ્ય છે, પણ મોટા ભાગની ઍપ માટે યોગ્ય નથી."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"જોવા અને નિયંત્રણ માટેની સ્ક્રીન"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"તે સ્ક્રીન પરનું બધું કન્ટેન્ટ વાંચી શકે છે અને કન્ટેન્ટને અન્ય ઍપ પર બતાવી શકે છે."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"ક્રિયાઓ જુઓ અને કરો"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"તે ઍપ અથવા હાર્ડવેર સેન્સર વડે તમારી ક્રિયાપ્રતિક્રિયાને ટ્રૅક કરી શકે છે અને તમારા વતી ઍપ સાથે ક્રિયાપ્રતિક્રિયા કરી શકે છે."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"મંજૂરી આપો"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"નકારો"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"સુવિધાનો ઉપયોગ શરૂ કરવા તેના પર ટૅપ કરો:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> બંધ કરવામાં આવ્યું છે"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"શૉર્ટકટમાં ફેરફાર કરો"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"રદ કરો"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"થઈ ગયું"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"શૉર્ટકટ બંધ કરો"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"શૉર્ટકટનો ઉપયોગ કરો"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"રંગનો વ્યુત્ક્રમ"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"રંગ સુધારણા"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"ઍક્સેસિબિલિટી શૉર્ટકટે <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ચાલુ કરી"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"ઍક્સેસિબિલિટી શૉર્ટકટે <xliff:g id="SERVICE_NAME">%1$s</xliff:g> બંધ કરી"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g>નો ઉપયોગ કરવા માટે બન્ને વૉલ્યૂમ કીને ત્રણ સેકન્ડ સુધી દબાવી રાખો"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"વિસ્તૃતીકરણ"</string>
     <string name="user_switched" msgid="7249833311585228097">"વર્તમાન વપરાશકર્તા <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> પર સ્વિચ કરી રહ્યાં છે…"</string>
@@ -1859,8 +1892,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"અવર્ગીકૃત"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"તમે આ સૂચનાઓનું મહત્વ સેટ કર્યું છે."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"શામેલ થયેલ લોકોને કારણે આ મહત્વપૂર્ણ છે."</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"ઍપનું કસ્ટમ નોટિફિકેશન"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g>ને <xliff:g id="ACCOUNT">%2$s</xliff:g> માટે એક નવા વપરાશકર્તા બનાવવાની મંજૂરી આપીએ (આ એકાઉન્ટ માટે એક વપરાશકર્તા પહેલાંથી અસ્તિત્વમાં છે) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g>ને <xliff:g id="ACCOUNT">%2$s</xliff:g> માટે એક નવા વપરાશકર્તા બનાવવાની મંજૂરી આપીએ ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ભાષા ઉમેરો"</string>
@@ -2017,7 +2049,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ફાઇલ</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ફાઇલ</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"ડાયરેક્ટ શેર કરવાનું ઉપલબ્ધ નથી"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"ઍપની સૂચિ"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"આ ઍપને રેકૉર્ડ કરવાની પરવાનગી આપવામાં આવી નથી પરંતુ તે આ USB ડિવાઇસ મારફતે ઑડિયો કૅપ્ચર કરી શકે છે."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"હોમ"</string>
@@ -2032,31 +2065,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ઍક્સેસિબિલિટી મેનૂ"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>નું કૅપ્શન બાર."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>ને પ્રતિબંધિત સમૂહમાં મૂકવામાં આવ્યું છે"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"વાતચીત"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"ગ્રૂપ વાતચીત"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"વ્યક્તિગત"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"કાર્યાલય"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ઑફિસ માટેની ઍપની સાથે શેર કરી શકતાં નથી"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"વ્યક્તિગત ઍપની સાથે શેર કરી શકતાં નથી"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"કોઈ ઍપ ઉપલબ્ધ નથી"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"વ્યક્તિગત વ્યૂ"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"ઑફિસ વ્યૂ"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"આને ઑફિસ માટેની ઍપ સાથે શેર કરી શકતાં નથી"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"તમારા IT વ્યવસ્થાપક તમને તમારી કાર્યાલયની પ્રોફાઇલમાંની ઍપ વડે આ કન્ટેન્ટ શેર કરવાની મંજૂરી આપતા નથી"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"ઑફિસ માટેની ઍપ વડે આને ખોલી શકતાં નથી"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"તમારા IT વ્યવસ્થાપક તમને તમારી કાર્યાલયની પ્રોફાઇલમાંની ઍપ વડે આ કન્ટેન્ટ ખોલવાની મંજૂરી આપતા નથી"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"આને વ્યક્તિગત ઍપ સાથે શેર કરી શકતાં નથી"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"તમારા IT વ્યવસ્થાપક તમને તમારી વ્યક્તિગત પ્રોફાઇલમાંની ઍપ વડે આ કન્ટેન્ટ શેર કરવાની મંજૂરી આપતા નથી"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"વ્યક્તિગત ઍપ વડે આને ખોલી શકતાં નથી"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"તમારા IT વ્યવસ્થાપક તમને તમારી વ્યક્તિગત પ્રોફાઇલમાંની ઍપ વડે આ કન્ટેન્ટ ખોલવાની મંજૂરી આપતા નથી"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"કાર્યાલયની પ્રોફાઇલ થોભાવી છે"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"ચાલુ કરો"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"કોઈ ઑફિસ માટેની ઍપ આ કન્ટેન્ટને સપોર્ટ કરી શકતી નથી"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"કોઈ ઑફિસ માટેની ઍપ આ કન્ટેન્ટ ખોલી શકતી નથી"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"કોઈ વ્યક્તિગત ઍપ આ કન્ટેન્ટને સપોર્ટ કરી શકતી નથી"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"કોઈ વ્યક્તિગત ઍપ આ કન્ટેન્ટ ખોલી શકતી નથી"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ટેલિફોની કૉલમાં ઑડિયો રેકૉર્ડ કરો અથવા ચલાવો"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ડિફૉલ્ટ ડાયલર ઍપ તરીકે સોંપણી કરવામાં આવવા પર આ ઍપને ટેલિફોની કૉલમાં ઑડિયો રેકૉર્ડ કરવાની અથવા ચલાવવાની મંજૂરી આપે છે."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-h480dp/bools.xml b/core/res/res/values-h480dp/bools.xml
index 65e3ae6..7896d9b 100644
--- a/core/res/res/values-h480dp/bools.xml
+++ b/core/res/res/values-h480dp/bools.xml
@@ -16,5 +16,5 @@
   -->
 
 <resources>
-    <bool name="sharesheet_show_content_preview">true</bool>
+    <bool name="resolver_landscape_phone">false</bool>
 </resources>
\ No newline at end of file
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index e73bafa..c9cbd26 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -193,19 +193,21 @@
     <string name="network_logging_notification_text" msgid="1327373071132562512">"आपका संगठन इस डिवाइस का प्रबंधन करता है और वह नेटवर्क ट्रैफ़िक की निगरानी भी कर सकता है. विवरण के लिए टैप करें."</string>
     <string name="location_changed_notification_title" msgid="4119726617105166830">"आपके एडमिन ने जगह की सेटिंग बदली है"</string>
     <string name="location_changed_notification_text" msgid="198907268219396399">"जगह की सेटिंग देखने के लिए टैप करें."</string>
-    <!-- no translation found for country_detector (7023275114706088854) -->
-    <skip />
-    <!-- no translation found for location_service (2439187616018455546) -->
-    <skip />
-    <!-- no translation found for sensor_notification_service (7474531979178682676) -->
-    <skip />
-    <!-- no translation found for twilight_service (8964898045693187224) -->
-    <skip />
+    <string name="country_detector" msgid="7023275114706088854">"देश की पहचान करने वाली सुविधा"</string>
+    <string name="location_service" msgid="2439187616018455546">"जगह की जानकारी"</string>
+    <string name="sensor_notification_service" msgid="7474531979178682676">"सेंसर से जुड़ी सूचना सेवा"</string>
+    <string name="twilight_service" msgid="8964898045693187224">"ट्वाइलाइट समय बताने वाली सेवा"</string>
     <string name="factory_reset_warning" msgid="6858705527798047809">"आपके डिवाइस को मिटा दिया जाएगा"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"एडमिन ऐप्लिकेशन का इस्तेमाल नहीं किया जा सकता. आपके डिवाइस पर मौजूद डेटा अब मिटा दिया जाएगा.\n\nअगर आप कुछ पूछना चाहते हैं तो, अपने संगठन के एडमिन से संपर्क करें."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ने प्रिंटिंग सुविधा बंद कर दी है."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"किसी एडमिन ने निजी ऐप्लिकेशन निलंबित कर दिए हैं"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"नीति का पालन किया जा रहा है या नहीं, इसकी जांच करने के लिए यहां टैप करें."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"मैं"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"टैबलेट विकल्‍प"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV डिवाइस में फ़ोन से जुड़े विकल्प"</string>
@@ -239,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"फ़ोन विकल्‍प"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"स्‍क्रीन लॉक"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"पावर बंद"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"आपातकाल"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"गड़बड़ी की रिपोर्ट"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"सत्र खत्म करें"</string>
@@ -438,7 +444,12 @@
     <string name="permlab_camera" msgid="6320282492904119413">"चित्र और वीडियो लें"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"यह ऐप्लिकेशन किसी भी समय कैमरे का उपयोग करके चित्र ले सकता है और वीडियो रिकॉर्ड कर सकता है."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"तस्वीरें और वीडियो लेने के लिए ऐप्लिकेशन या सेवा को सिस्टम के कैमरे का ऐक्सेस दें"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"यह सिस्टम ऐप्लिकेशन तस्वीरें लेने और वीडियो रिकॉर्ड करने के लिए जब चाहे, सिस्टम के कैमरे का इस्तेमाल कर सकता है. ऐप्लिकेशन को android.permission.CAMERA की अनुमति देना भी ज़रूरी है"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <!-- no translation found for permlab_cameraOpenCloseListener (5548732769068109315) -->
+    <skip />
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"कंपन (वाइब्रेशन) को नियंत्रित करें"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"ऐप्स को कंपनकर्ता नियंत्रित करने देता है."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"इससे ऐप्लिकेशन, डिवाइस का वाइब्रेटर ऐक्सेस कर पाएगा."</string>
@@ -452,6 +463,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"कॉल करने के अनुभव को बेहतर बनाने के लिए ऐप्लिकेशन को सिस्टम के माध्यम से उसके कॉल रूट करने देती है."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"सिस्टम के ज़रिए कॉल देखना और नियंत्रित करना."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"ऐप्लिकेशन को डिवाइस पर चल रहे कॉल देखने और नियंत्रित करने देती है. इसमें कॉल के नंबर और उनकी स्थिति से जुड़ी जानकारी शामिल है."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ऑडियो रिकॉर्ड करने की पाबंदी लागू न करें"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"इस ऐप्लिकेशन पर, ऑडियो को रिकॉर्ड करने की पाबंदी लागू न करें."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"दूसरे ऐप्लिकेशन से शुरू किया गया कॉल जारी रखें"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"इसके ज़रिए आप, किसी ऐप्लिकेशन में शुरू किया गया कॉल दूसरे ऐप्लिकेशन में जारी रख सकते हैं."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"फ़ोन नंबर पढ़ना"</string>
@@ -1103,28 +1116,6 @@
     <string name="deleteText" msgid="4200807474529938112">"मिटाएं"</string>
     <string name="inputMethod" msgid="1784759500516314751">"इनपुट विधि"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"लेख क्रियाएं"</string>
-    <string name="email" msgid="2503484245190492693">"ईमेल करें"</string>
-    <string name="email_desc" msgid="8291893932252173537">"चुने गए पते पर ईमेल भेजें"</string>
-    <string name="dial" msgid="4954567785798679706">"कॉल करें"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"चुने गए फ़ोन नंबर पर कॉल करें"</string>
-    <string name="map" msgid="6865483125449986339">"मैप"</string>
-    <string name="map_desc" msgid="1068169741300922557">"चुना गया पता मैप पर दिखाएं"</string>
-    <string name="browse" msgid="8692753594669717779">"खोलें"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"चुना गया यूआरएल खोलें"</string>
-    <string name="sms" msgid="3976991545867187342">"मैसेज"</string>
-    <string name="sms_desc" msgid="997349906607675955">"चुने गए फ़ोन नंबर को मैसेज करें"</string>
-    <string name="add_contact" msgid="7404694650594333573">"जोड़ें"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"संपर्क सूची में जोड़ें"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"देखें"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"चुना गया समय कैलेंडर में देखें"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"शेड्यूल करें"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"चुने गए समय के लिए इवेंट शेड्यूल करें"</string>
-    <string name="view_flight" msgid="2042802613849690108">"मौजूदा स्थिति जानें"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"चुनी गई फ़्लाइट की मौजूदा स्थिति देखें"</string>
-    <string name="translate" msgid="1416909787202727524">"अनुवाद करें"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"चुने गए टेक्स्ट का अनुवाद करें"</string>
-    <string name="define" msgid="5214255850068764195">"परिभाषित करें"</string>
-    <string name="define_desc" msgid="6916651934713282645">"चुना गया टेक्स्ट परिभाषित करें"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"मेमोरी में जगह नहीं बची है"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"हो सकता है कुछ सिस्टम फ़ंक्शन काम नहीं करें"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"सिस्टम के लिए ज़रूरी मेमोरी नहीं है. पक्का करें कि आपके पास 250एमबी की खाली जगह है और फिर से शुरू करें."</string>
@@ -1263,7 +1254,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"मोबाइल नेटवर्क पर इंटरनेट ऐक्सेस नहीं है"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"इस नेटवर्क पर इंटरनेट ऐक्सेस नहीं है"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"निजी डीएनएस सर्वर को ऐक्सेस नहीं किया जा सकता"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"जुड़ गया है"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> की कनेक्टिविटी सीमित है"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"फिर भी कनेक्ट करने के लिए टैप करें"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> पर ले जाया गया"</string>
@@ -1635,21 +1625,67 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"वॉल्यूम को सुझाए गए स्तर से ऊपर बढ़ाएं?\n\nअत्यधिक वॉल्यूम पर ज़्यादा समय तक सुनने से आपकी सुनने की क्षमता को नुकसान हो सकता है."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"सुलभता शॉर्टकट का इस्तेमाल करना चाहते हैं?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"शॉर्टकट के चालू होने पर, दाेनाें वॉल्यूम बटन (आवाज़ कम या ज़्यादा करने वाले बटन) को तीन सेकंड तक दबाने से, सुलभता सुविधा शुरू हाे जाएगी."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <!-- no translation found for accessibility_enable_service_title (3931558336268541484) -->
+    <skip />
+    <!-- no translation found for accessibility_enable_service_encryption_warning (8603532708618236909) -->
+    <skip />
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"पूरी तरह नियंत्रित करने की अनुमति उन ऐप्लिकेशन के लिए ठीक है जो सुलभता से जुड़ी ज़रूरतों के लिए बने हैं, लेकिन ज़्यादातर ऐप्लिकेशन के लिए यह ठीक नहीं है."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"स्क्रीन को देखें और नियंत्रित करें"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"यह स्क्रीन पर दिखने वाली हर तरह की सामग्री को पढ़ सकता है और उसे दूसरे ऐप्लिकेशन पर दिखा सकता है."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"देखें और कार्रवाई करें"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"यह आपके और किसी ऐप्लिकेशन या हार्डवेयर सेंसर के बीच होने वाले इंटरैक्शन को ट्रैक कर सकता है और आपकी तरफ़ से ऐप्लिकेशन के साथ इंटरैक्ट कर सकता है."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"अनुमति दें"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"इंकार करें"</string>
+    <!-- no translation found for accessibility_select_shortcut_menu_title (6002726538854613272) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <!-- no translation found for accessibility_uncheck_legacy_item_warning (8047830891064817447) -->
     <skip />
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"शॉर्टकट में बदलाव करें"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"अभी नहीं"</string>
+    <!-- no translation found for done_accessibility_shortcut_menu_button (3668407723770815708) -->
+    <skip />
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"शॉर्टकट बंद करें"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"शॉर्टकट का उपयोग करें"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"रंग बदलने की सुविधा"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"रंग में सुधार करने की सुविधा"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"सुलभता शॉर्टकट ने <xliff:g id="SERVICE_NAME">%1$s</xliff:g> को चालू किया"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"सुलभता शॉर्टकट ने <xliff:g id="SERVICE_NAME">%1$s</xliff:g> को बंद किया"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> इस्तेमाल करने के लिए आवाज़ वाले दोनों बटन तीन सेकंड तक दबाकर रखें"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"बड़ा करना"</string>
     <string name="user_switched" msgid="7249833311585228097">"मौजूदा उपयोगकर्ता <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> पर स्विच किया जा रहा है…"</string>
@@ -1863,8 +1899,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"बिना किसी श्रेणी के"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"आपने इन सूचनाओं की अहमियत सेट की है."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"यह मौजूद व्यक्तियों के कारण महत्वपूर्ण है."</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"ऐप्लिकेशन की सूचना पसंद के मुताबिक बनाएं"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g> को <xliff:g id="ACCOUNT">%2$s</xliff:g> के नाम से एक नया उपयोगकर्ता बनाने की अनुमति दें (इस नाम से एक खाता पहले से मौजूद है)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Allow <xliff:g id="APP">%1$s</xliff:g> to create a new User with <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"भाषा जोड़ें"</string>
@@ -2021,7 +2056,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> फ़ाइलें</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> फ़ाइलें</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"सीधे शेयर नहीं किया जा सकता"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"ऐप्लिकेशन की सूची"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"इस ऐप्लिकेशन को रिकॉर्ड करने की अनुमति नहीं दी गई है. हालांकि, ऐप्लिकेशन इस यूएसबी डिवाइस से ऐसा कर सकता है."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"होम"</string>
@@ -2036,31 +2072,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"सुलभता मेन्यू"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> का कैप्शन बार."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> को प्रतिबंधित बकेट में रखा गया है"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"बातचीत"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"ग्रुप में बातचीत"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"निजी प्रोफ़ाइल"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"वर्क प्रोफ़ाइल"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ऑफ़िस के काम से जुड़े ऐप्लिकेशन के साथ चीज़ें शेयर नहीं की जा सकतीं"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"निजी ऐप्लिकेशन के साथ कुछ शेयर नहीं किया जा सकता"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"कोई ऐप्लिकेशन उपलब्ध नहीं है"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"निजी व्यू"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"वर्क व्यू"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"इस सामग्री को ऑफ़िस के काम से जुड़े ऐप्लिकेशन का इस्तेमाल करके शेयर नहीं किया जा सकता"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"आपके आईटी एडमिन ने आपको आपकी वर्क प्रोफ़ाइल में शामिल ऐप्लिकेशन का इस्तेमाल करके, इस सामग्री को शेयर करने की अनुमति नहीं दी है"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"इस सामग्री को ऑफ़िस के काम से जुड़े ऐप्लिकेशन इस्तेमाल करके खोला नहीं जा सकता"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"आपके आईटी एडमिन ने आपको आपकी वर्क प्रोफ़ाइल में शामिल ऐप्लिकेशन का इस्तेमाल करके, इस सामग्री को खोलने की अनुमति नहीं दी है"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"इस सामग्री को निजी ऐप्लिकेशन का इस्तेमाल करके शेयर नहीं किया जा सकता"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"आपके आईटी एडमिन ने आपको आपकी निजी प्रोफ़ाइल में शामिल ऐप्लिकेशन का इस्तेमाल करके, इस सामग्री को शेयर करने की अनुमति नहीं दी है"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"इस सामग्री को निजी ऐप्लिकेशन का इस्तेमाल करके खोला नहीं जा सकता"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"आपके आईटी एडमिन ने आपको आपकी निजी प्रोफ़ाइल में शामिल ऐप्लिकेशन का इस्तेमाल करके, इस सामग्री को खोलने की अनुमति नहीं दी है"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"वर्क प्रोफ़ाइल रोक दी गई है"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"चालू करें"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"इस सामग्री का इस्तेमाल, ऑफ़िस के काम से जुड़े किसी भी ऐप्लिकेशन पर नहीं किया जा सकता"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"ऑफ़िस के काम से जुड़े किसी भी ऐप्लिकेशन का इस्तेमाल करके, इस सामग्री को खोला नहीं जा सकता"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"इस सामग्री का इस्तेमाल किसी भी निजी ऐप्लिकेशन पर नहीं किया जा सकता"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"किसी भी निजी ऐप्लिकेशन का इस्तेमाल करके, इस सामग्री को खोला नहीं जा सकता"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"फ़ोन कॉल के दौरान, ऑडियो रिकॉर्ड करने या उसे चलाने की अनुमति"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"डिफ़ॉल्ट डायलर ऐप्लिकेशन के तौर पर असाइन होने पर, इस ऐप्लिकेशन को फ़ोन कॉल के दौरान ऑडियो रिकॉर्ड करने और उसे चलाने की मंज़ूरी मिल जाती है."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 202c3ca..54a5cfd 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -202,8 +202,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Uređaj će se izbrisati"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administratorska aplikacija ne može se upotrebljavati. Uređaj će se izbrisati.\n\nAko imate pitanja, obratite se administratoru organizacije."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Ispis je onemogućila aplikacija <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Administrator je obustavio osobne aplikacije"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Dodirnite ovdje da biste provjerili usklađenost s pravilima."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Ja"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opcije tabletnog uređaja"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opcije Android TV-a"</string>
@@ -237,6 +243,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opcije telefona"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Zaključavanje zaslona"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Isključi"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Hitne službe"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Izvješće o bugovima"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Završi sesiju"</string>
@@ -437,7 +447,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"snimi fotografije i videozapise"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Aplikacija u svakom trenutku može snimati fotografije i videozapise fotoaparatom."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Dopustite aplikaciji ili usluzi da pristupa kamerama sustava radi snimanja fotografija i videozapisa"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Ova povlaštena aplikacija sustava | u svakom trenutku može snimati fotografije i videozapise kamerom sustava. Aplikacija mora imati i dopuštenje android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Dopustite aplikaciji ili usluzi da prima povratne pozive o otvaranju ili zatvaranju fotoaparata."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"upravljanje vibracijom"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Aplikaciji omogućuje nadzor nad vibratorom."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Aplikaciji omogućuje da pristupi stanju vibracije."</string>
@@ -451,6 +465,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Omogućuje aplikaciji da preusmjerava pozive putem sustava radi poboljšanja doživljaja."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"vidjeti i kontrolirati pozive putem sustava."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Omogućuje aplikaciji da vidi i kontrolira pozive koji su u tijeku na uređaju. To uključuje podatke kao što su brojevi i stanja poziva."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"izuzeće iz ograničenja audiozapisa"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Izuzmite aplikaciju iz ograničenja kako biste snimili audiozapis."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"nastaviti poziv iz neke druge aplikacije"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Omogućuje aplikaciji da nastavi poziv započet u nekoj drugoj aplikaciji."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"čitati telefonske brojeve"</string>
@@ -1119,28 +1135,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Izbriši"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Način unosa"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Radnje s tekstom"</string>
-    <string name="email" msgid="2503484245190492693">"Pošalji e-poštu"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Pošalji e-poštu na odabranu adresu"</string>
-    <string name="dial" msgid="4954567785798679706">"Nazovi"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Nazovi odabrani telefonski broj"</string>
-    <string name="map" msgid="6865483125449986339">"Prikaži na karti"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Prikaži odabrane adrese na karti"</string>
-    <string name="browse" msgid="8692753594669717779">"Otvori"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Otvori odabrani URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Pošalji poruku"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Pošalji poruku na odabrani telefonski broj"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Dodaj"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Dodaj u kontakte"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Prikaži"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Prikaži odabrano vrijeme u kalendaru"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Zakaži"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Zakaži događaj za određeno vrijeme"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Prati"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Prati odabrani let"</string>
-    <string name="translate" msgid="1416909787202727524">"Prevedi"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Prevedi odabrani tekst"</string>
-    <string name="define" msgid="5214255850068764195">"Definiraj"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definiraj odabrani tekst"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Ponestaje prostora za pohranu"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Neke sistemske funkcije možda neće raditi"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Nema dovoljno pohrane za sustav. Oslobodite 250 MB prostora i pokrenite uređaj ponovo."</string>
@@ -1279,7 +1273,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobilna mreža nema pristup internetu"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Mreža nema pristup internetu"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Nije moguće pristupiti privatnom DNS poslužitelju"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Povezano"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> ima ograničenu povezivost"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Dodirnite da biste se ipak povezali"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Prelazak na drugu mrežu: <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1653,21 +1646,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Želite li pojačati zvuk iznad preporučene razine?\n\nDugotrajno slušanje glasne glazbe može vam oštetiti sluh."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Želite li upotrebljavati prečac za pristupačnost?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kad je taj prečac uključen, pritiskom na obje tipke za glasnoću na tri sekunde pokrenut će se značajka pristupačnosti."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Želite li dopustiti usluzi <xliff:g id="SERVICE">%1$s</xliff:g> potpunu kontrolu nad uređajem?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Ako uključite <xliff:g id="SERVICE">%1$s</xliff:g>, vaš uređaj neće upotrebljavati zaključavanje zaslona za bolju enkripciju podataka."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Potpuna kontrola prikladna je za aplikacije koje vam pomažu s potrebama pristupačnosti, ali ne i za većinu aplikacija."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Prikaz zaslona i upravljanje njime"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Može čitati sav sadržaj na zaslonu i prikazati sadržaj povrh drugih aplikacija."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Prikaz i izvršavanje radnji"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Može pratiti vaše interakcije s aplikacijama ili senzorom uređaja i stupati u interakciju s aplikacijama u vaše ime."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Dopusti"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Odbij"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Dodirnite značajku da biste je počeli koristiti:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Usluga <xliff:g id="SERVICE_NAME">%s</xliff:g> je isključena"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Uredi prečace"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Otkaži"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Gotovo"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Isključi prečac"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Upotrijebi prečac"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inverzija boja"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Korekcija boje"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Prečac pristupačnosti uključio je uslugu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Prečac pristupačnosti isključio je uslugu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Pritisnite i zadržite tipke za glasnoću na tri sekunde da biste koristili uslugu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Povećavanje"</string>
     <string name="user_switched" msgid="7249833311585228097">"Trenutačni korisnik <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Prebacivanje na korisnika <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2050,7 +2084,8 @@
       <item quantity="few"><xliff:g id="FILE_NAME_2">%s</xliff:g> i još <xliff:g id="COUNT_3">%d</xliff:g> datoteke</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> i još <xliff:g id="COUNT_3">%d</xliff:g> datoteka</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Izravno dijeljenje nije dostupno"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Popis aplikacija"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Ta aplikacija nema dopuštenje za snimanje, no mogla bi primati zvuk putem ovog USB uređaja."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Početni zaslon"</string>
@@ -2065,31 +2100,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Izbornik pristupačnosti"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Traka naslova aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Paket <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> premješten je u spremnik OGRANIČENO"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Razgovor"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Grupni razgovor"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Osobno"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Posao"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Dijeljenje s poslovnim aplikacijama nije moguće"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Dijeljenje s osobnim aplikacijama nije moguće"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Aplikacije nisu dostupne"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Osobni prikaz"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Poslovni prikaz"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"To se ne može dijeliti pomoću poslovnih aplikacija"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Vaš IT administrator ne dopušta vam dijeljenje tog sadržaja pomoću aplikacija s vašeg poslovnog profila"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"To se ne može otvoriti pomoću poslovnih aplikacija"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Vaš IT administrator ne dopušta vam otvaranje tog sadržaja pomoću aplikacija s vašeg poslovnog profila"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"To se ne može dijeliti pomoću osobnih aplikacija"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Vaš IT administrator ne dopušta vam dijeljenje tog sadržaja pomoću aplikacija s vašeg osobnog profila"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"To se ne može otvoriti pomoću osobnih aplikacija"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Vaš IT administrator ne dopušta vam otvaranje tog sadržaja pomoću aplikacija s vašeg osobnog profila"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Poslovni je profil pauziran"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Uključi"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Nijedna poslovna aplikacija ne može podržati taj sadržaj"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Nijedna poslovna aplikacija ne može otvoriti taj sadržaj"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Nijedna osobna aplikacija ne može podržati taj sadržaj"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Nijedna osobna aplikacija ne može otvoriti taj sadržaj"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Snimanje ili reprodukcija zvuka u telefonskim pozivima"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Kad je ova aplikacija postavljena kao zadana aplikacija za biranje, omogućuje joj snimanje ili reprodukciju zvuka u telefonskim pozivima."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 356d179..8142843 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"A rendszer törölni fogja eszközét"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"A rendszergazdai alkalmazás nem használható. A rendszer most törli az eszközt.\n\nKérdéseivel forduljon szervezete rendszergazdájához."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"A(z) <xliff:g id="OWNER_APP">%s</xliff:g> letiltotta a nyomtatást."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"A személyes alkalmazások adminisztrátori felfüggesztés alá kerültek"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Koppintson ide az irányelvek betartásának ellenőrzéséhez."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Saját"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Táblagép beállításai"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV beállításai"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Telefonbeállítások"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Képernyő lezárása"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Kikapcsolás"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Segélyhívás"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Programhiba bejelentése"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Munkamenet befejezése"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"fotók és videók készítése"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Az alkalmazás a kamera használatával bármikor készíthet fényképeket és rögzíthet videókat."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"A rendszerkamerákhoz való hozzáférés, illetve képek és videók rögzítésének engedélyezése alkalmazás vagy szolgáltatás számára"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"A rendszerkamera használatával ez az előnyben részesített vagy rendszeralkalmazás bármikor készíthet fényképeket és videókat. Az alkalmazásnak az „android.permission.CAMERA” engedéllyel is rendelkeznie kell."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Visszahívás fogadásának engedélyezése alkalmazás vagy szolgáltatás számára, ha a kamerákat megnyitják vagy bezárják."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"rezgés szabályozása"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Lehetővé teszi az alkalmazás számára a rezgés vezérlését."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Lehetővé teszi az alkalmazás számára a rezgés állapotához való hozzáférést."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"A telefonálási élmény javítása érdekében lehetővé teszi az alkalmazás számára a rendszeren keresztüli hívásirányítást."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"Hívások megtekintése és vezérlése a rendszeren keresztül"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Engedélyezi az alkalmazásnak az eszközön folyamatban lévő hívások megtekintését és vezérlését. Ebbe beletartoznak az olyan információk is, mint a hívásban részt vevő felek hívószáma és a hívások állapota."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"kivétel a hangrögzítési korlátozások alól"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Kivétel biztosítása az alkalmazásnak a hangrögzítésre vonatkozó korlátozások alól."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"Másik alkalmazásból indított hívás folytatása"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Engedélyezi az alkalmazásnak, hogy folytassa a hívást, amelyet valamelyik másik alkalmazásban kezdtek meg."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"telefonszámok olvasása"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Törlés"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Beviteli mód"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Műveletek szöveggel"</string>
-    <string name="email" msgid="2503484245190492693">"E-mail"</string>
-    <string name="email_desc" msgid="8291893932252173537">"E-mail küldése a kiválasztott címre"</string>
-    <string name="dial" msgid="4954567785798679706">"Hívás"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Kiválasztott telefonszám hívása"</string>
-    <string name="map" msgid="6865483125449986339">"Térkép"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Kiválasztott cím megkeresése a térképen"</string>
-    <string name="browse" msgid="8692753594669717779">"Megnyitás"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Kiválasztott URL megnyitása"</string>
-    <string name="sms" msgid="3976991545867187342">"Üzenet"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Üzenet küldése a kijelölt telefonszámra"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Hozzáadás"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Hozzáadás a névjegyekhez"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Megtekintés"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Kijelölt idő megtekintése a naptárban"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Ütemezés"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Esemény ütemezése a kiválasztott időpontra"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Nyomon követés"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Kiválasztott járat nyomon követése"</string>
-    <string name="translate" msgid="1416909787202727524">"Fordítás"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"A kijelölt szöveg fordítása"</string>
-    <string name="define" msgid="5214255850068764195">"Definiálás"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Kijelölt szöveg definiálása"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Kevés a szabad terület"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Előfordulhat, hogy néhány rendszerfunkció nem működik."</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Nincs elegendő tárhely a rendszerhez. Győződjön meg arról, hogy rendelkezik 250 MB szabad területtel, majd kezdje elölről."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"A mobilhálózaton nincs internet-hozzáférés"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"A hálózaton nincs internet-hozzáférés"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"A privát DNS-kiszolgálóhoz nem lehet hozzáférni"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Csatlakozva"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"A(z) <xliff:g id="NETWORK_SSID">%1$s</xliff:g> hálózat korlátozott kapcsolatot biztosít"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Koppintson, ha mindenképpen csatlakozni szeretne"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Átváltva erre: <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Az ajánlott szint fölé szeretné emelni a hangerőt?\n\nHa hosszú időn át teszi ki magát nagy hangerőnek, azzal károsíthatja a hallását."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Szeretné használni a Kisegítő lehetőségek billentyűparancsot?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Ha a gyorsparancs aktív, akkor a két hangerőgomb három másodpercig tartó együttes lenyomásával kisegítő funkciót indíthat el."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Teljes körű vezérlést biztosít eszköze felett a(z) <xliff:g id="SERVICE">%1$s</xliff:g> szolgáltatás számára?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Ha engedélyezi a(z) <xliff:g id="SERVICE">%1$s</xliff:g> szolgáltatást, az eszköz nem fogja használni a képernyőzárat az adattitkosítás növelése érdekében."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"A teljes vezérlés indokolt olyan alkalmazásoknál, amelyek kisegítő lehetőségeket nyújtanak, a legtöbb alkalmazásnál azonban nem."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Képernyő megtekintése és kezelése"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Elolvashatja a képernyő tartalmát, és tartalmakat jeleníthet meg más alkalmazások felett."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Műveletek megtekintése és elvégzése"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Követheti az alkalmazásokkal és hardveres érzékelőkkel való interakcióit, és műveleteket végezhet az alkalmazásokkal az Ön nevében."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Engedélyezés"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Tiltás"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Koppintson valamelyik funkcióra a használatához:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> kikapcsolva"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Gyorsparancsszerkesztés"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Mégse"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Kész"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Billentyűparancs kikapcsolása"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Billentyűparancs használata"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Színek invertálása"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Színkorrekció"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"A Kisegítő lehetőségek gyorsparancsa bekapcsolta a következő szolgáltatást: <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"A Kisegítő lehetőségek gyorsparancsa kikapcsolta a következő szolgáltatást: <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"A(z) <xliff:g id="SERVICE_NAME">%1$s</xliff:g> használatához tartsa lenyomva három másodpercig a két hangerőgombot"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Nagyítás"</string>
     <string name="user_switched" msgid="7249833311585228097">"<xliff:g id="NAME">%1$s</xliff:g> az aktuális felhasználó."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Átváltás erre: <xliff:g id="NAME">%1$s</xliff:g>..."</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> fájl</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> fájl</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"A közvetlen megosztás nem áll rendelkezésre"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Alkalmazások listája"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Ez az alkalmazás nem rendelkezik rögzítési engedéllyel, de ezzel az USB-eszközzel képes a hangfelvételre."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Kezdőképernyő"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Kisegítő lehetőségek menü"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> alkalmazás címsora."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"A következő csomag a KORLÁTOZOTT csoportba került: <xliff:g id="PACKAGE_NAME">%1$s</xliff:g>"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Beszélgetés"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Csoportos beszélgetés"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Személyes"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Munka"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nem lehetséges a munkahelyi alkalmazásokkal való megosztás"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nem lehetséges a személyes alkalmazásokkal való megosztás"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nem áll rendelkezésre alkalmazás"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Személyes nézet"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Munkanézet"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Ez a tartalom nem osztható meg munkahelyi alkalmazásokkal"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Rendszergazdája nem engedélyezi, hogy ezt a tartalmat a munkaprofiljában lévő alkalmazásokkal ossza meg"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Ez a tartalom nem nyitható meg munkahelyi alkalmazásokkal"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Rendszergazdája nem engedélyezi, hogy ezt a tartalmat a munkaprofiljában lévő alkalmazásokkal nyissa meg"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Ez a tartalom nem osztható meg személyes alkalmazásokkal"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Rendszergazdája nem engedélyezi, hogy ezt a tartalmat a személyes profiljában lévő alkalmazásokkal ossza meg"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Ez a tartalom nem nyitható meg személyes alkalmazásokkal"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Rendszergazdája nem engedélyezi, hogy ezt a tartalmat a személyes profiljában lévő alkalmazásokkal nyissa meg"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"A munkaprofil szüneteltetve van"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Bekapcsolás"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"A munkahelyi alkalmazások nem támogatják ezt a tartalmat"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Munkahelyi alkalmazásokkal nem nyitható meg ez a tartalom"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"A személyes alkalmazások nem támogatják ezt a tartalmat"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Személyes alkalmazásokkal nem nyitható meg ez a tartalom"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Audiotartalmak felvétele és lejátszása telefonhívások közben"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Lehetővé teszi ennek az alkalmazásnak audiotartalmak felvételét és lejátszását telefonhívások közben, amennyiben az alkalmazás alapértelmezett tárcsázóalkalmazásként van kijelölve."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index ca98331..d1cb677 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Ձեր սարքը ջնջվելու է"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Հնարավոր չէ օգտագործել ադմինիստրատորի հավելվածը։ Ձեր սարքից բոլոր տվյալները կջնջվեն։\n\nՀարցեր ունենալու դեպքում դիմեք ձեր կազմակերպության ադմինիստրատորին։"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Տպումն անջատված է <xliff:g id="OWNER_APP">%s</xliff:g> հավելվածի կողմից։"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Անձնական հավելվածները կասեցվել են ադմինիստրատորի կողմից"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Հպեք այստեղ, որպեսզի ստուգեք՝ արդյոք որևէ կանոն չի խախտվել։"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Իմ"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Պլանշետի ընտրանքները"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV-ի կարգավորումներ"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Հեռախոսի ընտրանքներ"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Էկրանի կողպում"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Անջատել"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Շտապ կանչ"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Վրիպակի զեկույց"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Ավարտել աշխատաշրջանը"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"լուսանկարել և տեսանկարել"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Այս հավելվածը կարող է ցանկացած պահի լուսանկարել և տեսագրել՝ օգտագործելով տեսախցիկը:"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Թույլատրել որևէ հավելվածի կամ ծառայության օգտագործել համակարգի տեսախցիկները՝ լուսանկարելու և տեսանկարելու համար"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Այս արտոնյալ | համակարգային հավելվածը կարող է ցանկացած պահի լուսանկարել և տեսագրել՝ օգտագործելով համակարգի տեսախցիկները: Հավելվածին նաև անհրաժեշտ է android.permission.CAMERA թույլտվությունը:"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Թույլատրել հավելվածին կամ ծառայությանը հետզանգեր ստանալ՝ տեսախցիկների բացվելու և փակվելու դեպքում։"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"կառավարել թրթռումը"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Թույլ է տալիս հավելվածին կառավարել թրթռոցը:"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Հավելվածին թույլ է տալիս օգտագործել սարքի թրթռալու ռեժիմը։"</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Հավելվածին թույլ է տալիս իր զանգերն ուղարկել համակարգի միջոցով՝ կապի որակը բարձրացնելու նպատակով։"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"Զանգերի դիտում և վերահսկում համակարգի միջոցով"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Թույլ է տալիս հավելվածին տեսնել և վերահսկել ընթացիկ զանգերը սարքում: Սա ներառում է այնպիսի տեղեկություններ, ինչպիսիք են, օրինակ, հեռախոսահամարները և զանգերի վիճակը:"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"Ձայնագրելու հետ կապված սահմանափակումները հանված են"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Հանեք սահմանափակումները, որոնք թույլ չեն տալիս հավելվածին ձայնագրել"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"շարունակել զանգը այլ հավելվածի միջոցով"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Թույլ է տալիս հավելվածին շարունակել մեկ այլ հավելվածի միջոցով սկսած զանգը:"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"օգտագործել հեռախոսահամարները"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Ջնջել"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Մուտքագրման եղանակը"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Տեքստի գործողությունները"</string>
-    <string name="email" msgid="2503484245190492693">"Էլփոստ"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Նամակ ուղարկել ընտրված հասցեին"</string>
-    <string name="dial" msgid="4954567785798679706">"Զանգել"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Զանգել ընտրված հեռախոսահամարին"</string>
-    <string name="map" msgid="6865483125449986339">"Քարտեզ"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Գտնել ընտրված հասցեն քարտեզում"</string>
-    <string name="browse" msgid="8692753594669717779">"Բացել"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Բացել ընտրված URL-ը"</string>
-    <string name="sms" msgid="3976991545867187342">"SMS գրել"</string>
-    <string name="sms_desc" msgid="997349906607675955">"SMS ուղարկել ընտրված հեռախոսահամարին"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Ավելացնել"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Ավելացնել կոնտակտներում"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Դիտել"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Դիտել ընտրված օրն օրացույցում"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Ժամանակացույց"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Ստեղծել միջոցառում նշված օրվա համար"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Հետագծել"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Հետագծել ընտրված չվերթը"</string>
-    <string name="translate" msgid="1416909787202727524">"Թարգմանել"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Թարգմանել ընտրված տեքստը"</string>
-    <string name="define" msgid="5214255850068764195">"Սահմանել"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Սահմանել ընտրված տեքստը"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Հիշողությունը սպառվում է"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Որոշ գործառույթներ կարող են չաշխատել"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Համակարգի համար բավարար հիշողություն չկա: Համոզվեք, որ ունեք 250ՄԲ ազատ տարածություն և վերագործարկեք:"</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Բջջային ցանցը չի ապահովում ինտերնետ կապ"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Ցանցը միացված չէ ինտերնետին"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Մասնավոր DNS սերվերն անհասանելի է"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Միացված է"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> ցանցի կապը սահմանափակ է"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Հպեք՝ միանալու համար"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Անցել է <xliff:g id="NETWORK_TYPE">%1$s</xliff:g> ցանցի"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ձայնը բարձրացնե՞լ խորհուրդ տրվող մակարդակից ավել:\n\nԵրկարատև բարձրաձայն լսելը կարող է վնասել ձեր լսողությունը:"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Օգտագործե՞լ Մատչելիության դյուրանցումը։"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Հատուկ գործառույթն օգտագործելու համար սեղմեք և 3 վայրկյան սեղմած պահեք ձայնի ուժգնության երկու կոճակները, երբ գործառույթը միացված է:"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Թույլատրե՞լ <xliff:g id="SERVICE">%1$s</xliff:g> ծառայությանը կառավարել ձեր սարքը"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Եթե միացնեք <xliff:g id="SERVICE">%1$s</xliff:g> ծառայությունը, ձեր սարքը չի օգտագործի էկրանի կողպումը՝ տվյալների գաղտնագրումը բարելավելու համար:"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Ամբողջական վերահսկումն անհրաժեշտ է միայն այն հավելվածներին, որոնք օգնում են ձեզ հատուկ գործառույթներից օգտվելիս։"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Դիտել և կառավարել էկրանը"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Կարող է կարդալ էկրանի բովանդակությունն ու ցուցադրել այլ հավելվածներում։"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Դիտել և համակարգել գործողությունները"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Կարող է հետագծել ձեր գործողությունները հավելվածներում և սարքակազմի սենսորների վրա, ինչպես նաև հավելվածներում կատարել գործողություններ ձեր անունից։"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Թույլատրել"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Մերժել"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Ընտրեք՝ որ գործառույթն օգտագործել"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> ծառայությունն անջատված է"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Փոփոխել դյուրանցումները"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Չեղարկել"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Պատրաստ է"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Անջատել դյուրանցումը"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Օգտագործել դյուրանցումը"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Գունաշրջում"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Գունաշտկում"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Մատչելիության դյուրանցումն միացրել է <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ծառայությունը"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Մատչելիության դյուրանցումն անջատել է <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ծառայությունը"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"«<xliff:g id="SERVICE_NAME">%1$s</xliff:g>» ծառայությունն օգտագործելու համար սեղմեք և 3 վայրկյան պահեք ձայնի ուժգնության երկու կոճակները"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Խոշորացում"</string>
     <string name="user_switched" msgid="7249833311585228097">"Ներկայիս օգտատերը <xliff:g id="NAME">%1$s</xliff:g>:"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Փոխարկվում է <xliff:g id="NAME">%1$s</xliff:g>-ին..."</string>
@@ -2016,7 +2050,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ֆայլ</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ֆայլ</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Direct Share գործառույթը հասանելի չէ"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Հավելվածների ցանկ"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Հավելվածը ձայնագրելու թույլտվություն չունի, սակայն կկարողանա գրանցել ձայնն այս USB սարքի միջոցով։"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Սկիզբ"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Հատուկ գործառույթների ընտրացանկ"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածի ենթագրերի գոտին։"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> փաթեթը գցվեց ՍԱՀՄԱՆԱՓԱԿՎԱԾ զամբյուղի մեջ"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>՝"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Նամակագրություն"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Խմբային նամակագրություն"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Անձնական"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Աշխատանքային"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Հնարավոր չէ կիսվել աշխատանքային հավելվածների հետ"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Հնարավոր չէ կիսվել անձնական հավելվածների հետ"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Հասանելի հավելվածներ չկան"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Անձնական"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Աշխատանքային"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Հնարավոր չէ հասանելի դարձնել աշխատանքային հավելվածներին"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"ՏՏ ադմինիստրատորն արգելել է այս բովանդակությունը հասանելի դարձնել ձեր աշխատանքային պրոֆիլի հավելվածներին"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Հնարավոր չէ բացել աշխատանքային հավելվածներով"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"ՏՏ ադմինիստրատորն արգելել է այս բովանդակությունը բացել ձեր աշխատանքային պրոֆիլի հավելվածներով"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Հնարավոր չէ հասանելի դարձնել անձնական հավելվածներին"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"ՏՏ ադմինիստրատորն արգելել է այս բովանդակությունը հասանելի դարձնել ձեր անձնական պրոֆիլի հավելվածներին"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Հնարավոր չէ բացել անձնական հավելվածներով"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"ՏՏ ադմինիստրատորն արգելել է այս բովանդակությունը բացել ձեր անձնական պրոֆիլի հավելվածներով"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Աշխատանքային պրոֆիլի ծառայությունը դադարեցված է"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Միացնել"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Աշխատանքային հավելվածները չեն կարող աջակցել այս բովանդակությունը"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Աշխատանքային հավելվածները չեն կարող բացել այս բովանդակությունը"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Անձնական հավելվածները չեն կարող աջակցել այս բովանդակությունը"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Անձնական հավելվածները չեն կարող բացել այս բովանդակությունը"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Հեռախոսային զանգերի ձայնագրում և նվագարկում"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Եթե այս հավելվածն ըստ կանխադրման օգտագործվում է զանգերի համար, այն կարող է ձայնագրել և նվագարկել հեռախոսային խոսակցությունները։"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 8b28f63..9f42569 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Perangkat akan dihapus"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Aplikasi admin tidak dapat digunakan. Perangkat Anda kini akan dihapus.\n\nJika ada pertanyaan, hubungi admin organisasi."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Fitur pencetakan dinonaktifkan oleh <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Aplikasi pribadi telah ditangguhkan oleh admin"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Ketuk di sini untuk memeriksa kepatuhan kebijakan."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Saya"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opsi tablet"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opsi Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opsi telepon"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Kunci layar"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Matikan perangkat"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Darurat"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Laporan bug"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Akhiri sesi"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ambil gambar dan video"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Aplikasi ini dapat mengambil foto dan merekam video menggunakan kamera kapan saja."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Izinkan akses aplikasi atau layanan ke kamera sistem untuk mengambil gambar dan video"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Hak istimewa ini | aplikasi sistem dapat mengambil gambar dan merekam video menggunakan kamera sistem kapan saja. Mewajibkan aplikasi juga memegang izin android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Izinkan aplikasi atau layanan untuk menerima callback tentang perangkat kamera yang sedang dibuka atau ditutup."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"kontrol getaran"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Mengizinkan aplikasi untuk mengendalikan vibrator."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Mengizinkan aplikasi untuk mengakses status vibrator."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Mengizinkan aplikasi menyambungkan panggilan telepon melalui sistem untuk menyempurnakan pengalaman menelepon."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"melihat dan mengontrol panggilan melalui sistem."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Memungkinkan aplikasi melihat dan mengontrol panggilan telepon yang sedang berlangsung di perangkat. Ini mencakup informasi seperti nomor yang menelepon dan status panggilan telepon."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"mengecualikan dari pembatasan rekaman audio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Mengecualikan aplikasi dari pembatasan untuk merekam audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"lanjutkan panggilan dari aplikasi lain"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Mengizinkan aplikasi melanjutkan panggilan yang dimulai di aplikasi lain."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"membaca nomor telepon"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Hapus"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Metode masukan"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Tindakan teks"</string>
-    <string name="email" msgid="2503484245190492693">"Email"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Mengirimkan email ke alamat yang dipilih"</string>
-    <string name="dial" msgid="4954567785798679706">"Panggil"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Panggil nomor telepon yang dipilih"</string>
-    <string name="map" msgid="6865483125449986339">"Peta"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Cari alamat yang dipilih"</string>
-    <string name="browse" msgid="8692753594669717779">"Buka"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Buka URL yang dipilih"</string>
-    <string name="sms" msgid="3976991545867187342">"SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Kirim SMS ke nomor telepon yang dipilih"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Tambahkan"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Tambahkan ke kontak"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Lihat"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Melihat waktu yang dipilih di kalender"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Jadwalkan"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Menjadwalkan acara untuk waktu yang dipilih"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Pantau"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Pantau penerbangan yang dipilih"</string>
-    <string name="translate" msgid="1416909787202727524">"Terjemahkan"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Terjemahkan teks yang dipilih"</string>
-    <string name="define" msgid="5214255850068764195">"Definisikan"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definisikan teks yang dipilih"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Ruang penyimpanan hampir habis"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Beberapa fungsi sistem mungkin tidak dapat bekerja"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Penyimpanan tidak cukup untuk sistem. Pastikan Anda memiliki 250 MB ruang kosong, lalu mulai ulang."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Jaringan seluler tidak memiliki akses internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Jaringan tidak memiliki akses internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Server DNS pribadi tidak dapat diakses"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Tersambung"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> memiliki konektivitas terbatas"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Ketuk untuk tetap menyambungkan"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Dialihkan ke <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Mengeraskan volume di atas tingkat yang disarankan?\n\nMendengarkan dengan volume keras dalam waktu yang lama dapat merusak pendengaran Anda."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Gunakan Pintasan Aksesibilitas?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Saat pintasan aktif, menekan kedua tombol volume selama 3 detik akan memulai fitur aksesibilitas."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Izinkan <xliff:g id="SERVICE">%1$s</xliff:g> memiliki kontrol penuh atas perangkat Anda?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Jika Anda mengaktifkan <xliff:g id="SERVICE">%1$s</xliff:g>, perangkat tidak akan menggunakan kunci layar untuk meningkatkan enkripsi data."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Kontrol penuh sesuai untuk aplikasi yang membantu Anda terkait kebutuhan aksesibilitas, tetapi tidak untuk sebagian besar aplikasi."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Tampilan dan layar kontrol"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Aplikasi dapat membaca semua konten di layar dan menampilkan konten di atas aplikasi lain."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Menampilkan dan melakukan tindakan"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Aplikasi dapat melacak interaksi Anda dengan aplikasi atau sensor hardware, dan berinteraksi dengan aplikasi atas nama Anda."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Izinkan"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Tolak"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Ketuk fitur untuk mulai menggunakannya:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> telah dinonaktifkan"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Edit pintasan"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Batal"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Selesai"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Nonaktifkan Pintasan"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Gunakan Pintasan"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inversi Warna"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Koreksi Warna"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Pintasan Aksesibilitas mengaktifkan <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Pintasan Aksesibilitas menonaktifkan <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Tekan dan tahan kedua tombol volume selama tiga detik untuk menggunakan <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Pembesaran"</string>
     <string name="user_switched" msgid="7249833311585228097">"Pengguna saat ini <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Beralih ke <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> file</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> file</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Berbagi langsung tidak tersedia"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Daftar aplikasi"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Aplikasi ini tidak diberi izin merekam, tetapi dapat merekam audio melalui perangkat USB ini."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Beranda"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu Aksesibilitas"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Kolom teks <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> telah dimasukkan ke dalam bucket DIBATASI"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Percakapan"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Percakapan Grup"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Pribadi"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Kerja"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Tidak dapat membagikan ke aplikasi kerja"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Tidak dapat membagikan ke aplikasi pribadi"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Tidak ada aplikasi yang tersedia"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Tampilan pribadi"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Tampilan kerja"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Tidak dapat membagikan dengan aplikasi kerja"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Admin IT tidak mengizinkan Anda membagikan konten ini dengan aplikasi di profil kerja Anda"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Tidak dapat membukanya dengan aplikasi kerja"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Admin IT tidak mengizinkan Anda membuka konten ini dengan aplikasi di profil kerja Anda"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Tidak dapat membagikan dengan aplikasi pribadi"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Admin IT tidak mengizinkan Anda membagikan konten ini dengan aplikasi di profil pribadi Anda"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Tidak dapat membukanya dengan aplikasi pribadi"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Admin IT tidak mengizinkan Anda membuka konten ini dengan aplikasi di profil pribadi Anda"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Profil kerja dijeda"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Aktifkan"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Tidak ada aplikasi kerja yang dapat mendukung konten ini"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Tidak ada aplikasi kerja yang dapat membuka konten ini"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Tidak ada aplikasi pribadi yang dapat mendukung konten ini"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Tidak ada aplikasi pribadi yang dapat membuka konten ini"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Rekam atau putar audio dalam panggilan telepon"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Mengizinkan aplikasi ini, saat ditetapkan sebagai aplikasi telepon default, untuk merekam atau memutar audio dalam panggilan telepon."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml
index 1aecb57..3f55055 100644
--- a/core/res/res/values-is/strings.xml
+++ b/core/res/res/values-is/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Tækið verður hreinsað"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Ekki er hægt að nota stjórnunarforritið. Tækinu verður eytt.\n\nEf spurningar vakna skaltu hafa samband við kerfisstjóra fyrirtækisins."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> lokaði á prentun."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Stjórnandi hefur lokað á persónuleg forrit"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Ýttu hér til að sjá reglufylgni."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Ég"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Valkostir spjaldtölvu"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Valkostir Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Valkostir síma"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Skjálás"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Slökkva"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Neyðarsímtal"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Villutilkynning"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Ljúka lotu"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"taka myndir og myndskeið"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Þetta forrit getur tekið myndir og tekið upp myndskeið með myndavélinni hvenær sem er."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Veittu forriti eða þjónustu aðgang að myndavélum kerfis til að taka myndir og myndskeið"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Þetta kerfisforrit hefur heimild til að taka myndir og taka upp myndskeið með myndavél kerfisins hvenær sem er. Forritið þarf einnig að vera með heimildina android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Leyfa forriti eða þjónustu að taka við svörum um myndavélar sem verið er að opna eða loka."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"stjórna titringi"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Leyfir forriti að stjórna titraranum."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Veitir forritinu aðgang að stöðu titrings."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Heimilar forritinu að senda símtöl sín gegnum kerfið til að bæta gæði símtalsins."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"sjá og stjórna símtölum í gegnum kerfið."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Leyfir forritinu að sjá og stjórna hringdum símtölum í tækinu. Þar á meðal eru upplýsingar á borð við símanúmer í símtölum og stöður símtala."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"gefa undanþágu frá takmörkunum á hljóðupptökum"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Veita forritinu undanþágu frá takmörkunum á hljóðupptökum."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"halda áfram með símtal úr öðru forriti"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Leyfir forritinu að halda áfram með símtal sem hófst í öðru forriti."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"lesa símanúmer"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Eyða"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Innsláttaraðferð"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Textaaðgerðir"</string>
-    <string name="email" msgid="2503484245190492693">"Senda tölvupóst"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Senda á valið netfang"</string>
-    <string name="dial" msgid="4954567785798679706">"Símtal"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Hringja í valið símanúmer"</string>
-    <string name="map" msgid="6865483125449986339">"Kort"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Finna valið heimilisfang"</string>
-    <string name="browse" msgid="8692753594669717779">"Opna"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Opna valda vefslóð"</string>
-    <string name="sms" msgid="3976991545867187342">"Senda skilaboð"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Senda skilaboð í valið símanúmer"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Bæta við"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Bæta við tengiliði"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Skoða"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Skoða valinn tíma í dagatali"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Setja á dagskrá"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Skipuleggja viðburð á völdum tíma"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Rekja"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Fylgjast með völdu flugi"</string>
-    <string name="translate" msgid="1416909787202727524">"Þýða"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Þýða valinn texta"</string>
-    <string name="define" msgid="5214255850068764195">"Skilgreina"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Skilgreina valinn texta"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Geymslurýmið er senn á þrotum"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Sumir kerfiseiginleikar kunna að vera óvirkir"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Ekki nægt geymslurými fyrir kerfið. Gakktu úr skugga um að 250 MB séu laus og endurræstu."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Farsímakerfið er ekki tengt við internetið"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Netkerfið er ekki tengt við internetið"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Ekki næst í DNS-einkaþjón"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Tengt"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"Tengigeta <xliff:g id="NETWORK_SSID">%1$s</xliff:g> er takmörkuð"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Ýttu til að tengjast samt"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Skipt yfir á <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Hækka hljóðstyrk umfram ráðlagðan styrk?\n\nEf hlustað er á háum hljóðstyrk í langan tíma kann það að skaða heyrnina."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Viltu nota aðgengisflýtileið?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Þegar flýtileiðin er virk er kveikt á aðgengiseiginleikanum með því að halda báðum hljóðstyrkshnöppunum inni í þrjár sekúndur."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Viltu leyfa <xliff:g id="SERVICE">%1$s</xliff:g> að hafa fulla stjórn yfir tækinu þínu?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Ef þú kveikir á <xliff:g id="SERVICE">%1$s</xliff:g> mun tækið ekki nota skjálásinn til að efla dulkóðun gagna."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Full stjórnun er viðeigandi fyrir forrit sem hjálpa þér ef þú hefur ekki aðgang, en ekki fyrir flest forrit."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Skoða og stjórna skjá"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Það getur lesið allt efni á skjánum og birt efni yfir öðrum forritum."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Skoða og framkvæma aðgerðir"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Það getur fylgst með samskiptum þínum við forrit eða skynjara vélbúnaðar, og haft samskipti við forrit fyrir þína hönd."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Leyfa"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Hafna"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Ýttu á eiginleika til að byrja að nota hann:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Slökkt hefur verið á <xliff:g id="SERVICE_NAME">%s</xliff:g>"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Breyta flýtileiðum"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Hætta við"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Lokið"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Slökkva á flýtileið"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Nota flýtileið"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Umsnúningur lita"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Litaleiðrétting"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Flýtileið aðgengisstillingar kveikti á <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Flýtileið aðgengisstillingar slökkti á <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Haltu báðum hljóðstyrkstökkunum inni í þrjár sekúndur til að nota <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Stækkun"</string>
     <string name="user_switched" msgid="7249833311585228097">"Núverandi notandi <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Skiptir yfir á <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> skrá</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> skrá</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Bein deiling er ekki tiltæk"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Forritalisti"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Þetta forrit hefur ekki fengið heimild fyrir upptöku en gæti tekið upp hljóð í gegnum þetta USB-tæki."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Heim"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Aðgengisvalmynd"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Skjátextastika <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> var sett í flokkinn TAKMARKAÐ"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Samtal"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Hópsamtal"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Persónulegt"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Vinna"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ekki er hægt að deila með vinnuforritum"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Ekki er hægt að deila með persónulegum forritum"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Engin forrit í boði"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Persónulegt yfirlit"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Vinnuyfirlit"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Ekki er hægt að deila þessu með vinnuforritum"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Kerfisstjórinn þinn leyfir þér ekki að deila þessu efni með forritum á vinnusniðinu"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Ekki er hægt að opna þetta með vinnuforritum"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Kerfisstjórinn þinn leyfir þér ekki að opna þetta efni með forritum á vinnusniðinu"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Ekki er hægt að deila þessu með forritum til einkanota"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Kerfisstjórinn þinn leyfir þér ekki að deila þessu efni með forritum á eigin sniði"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Ekki er hægt að opna þetta með forritum til einkanota"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Kerfisstjórinn þinn leyfir þér ekki að opna þetta efni með forritum á eigin sniði"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Hlé gert á vinnusniði"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Kveikja"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Engin vinnuforrit styðja þetta efni"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Engin vinnuforrit geta opnað þetta efni"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Engin forrit til einkanota styðja þetta efni"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Engin forrit til einkanota geta opnað þetta efni"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Taka upp eða spila hljóð í símtölum"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Gerir þessu forriti kleift að taka upp og spila hljóð í símtölum þegar það er valið sem sjálfgefið hringiforrit."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 85fbf61..0c53727 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Il dispositivo verrà resettato"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Impossibile usare l\'app di amministrazione. Il dispositivo verrà resettato.\n\nPer eventuali domande, contatta l\'amministratore della tua organizzazione."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Stampa disattivata da <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Le app personali sono state sospese da un amministratore"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tocca qui per controllare il rispetto delle norme."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Io"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opzioni tablet"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opzioni Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opzioni telefono"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Blocco schermo"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Spegni"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emergenza"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Segnalazione di bug"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Termina sessione"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"acquisizione di foto e video"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Questa app può scattare foto e registrare video tramite la fotocamera in qualsiasi momento."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Consenti a un\'applicazione o a un servizio di accedere alle videocamere del sistema per fare foto e video"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Questa app di sistema | privilegiata può fare foto e video tramite una videocamera del sistema in qualsiasi momento. Richiede che l\'autorizzazione android.permission.CAMERA sia concessa anche all\'app"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Consenti a un\'applicazione o a un servizio di ricevere callback relativi all\'apertura o alla chiusura di videocamere."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"controllo vibrazione"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Consente all\'applicazione di controllare la vibrazione."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Consente all\'app di accedere allo stato di vibrazione."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Consente all\'app di indirizzare le proprie chiamate tramite il sistema al fine di migliorare l\'esperienza di chiamata."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"visualizzazione e controllo delle chiamate tramite il sistema."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Consente all\'app di visualizzare e controllare le chiamate in corso sul dispositivo. Sono incluse informazioni quali i numeri e lo stato relativi alle chiamate."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"Esclusione dalle limitazioni relative alla registrazione di audio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Consente di escludere l\'app dalle limitazioni relative alla registrazione di audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continuazione di una chiamata da un\'altra app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Consente all\'app di continuare una chiamata che è stata iniziata in un\'altra app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"lettura dei numeri di telefono"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Elimina"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Metodo inserimento"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Azioni testo"</string>
-    <string name="email" msgid="2503484245190492693">"Invia email"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Invia un\'email all\'indirizzo selezionato"</string>
-    <string name="dial" msgid="4954567785798679706">"Chiama"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Chiama il numero di telefono selezionato"</string>
-    <string name="map" msgid="6865483125449986339">"Mappa"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Localizza l\'indirizzo selezionato"</string>
-    <string name="browse" msgid="8692753594669717779">"Apri"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Apri l\'URL selezionato"</string>
-    <string name="sms" msgid="3976991545867187342">"Invia messaggio"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Invia un SMS al numero di telefono selezionato"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Aggiungi"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Aggiungi ai contatti"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Visualizza"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Visualizza la data selezionata nel calendario"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Pianifica"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Pianifica l\'evento nella data selezionata"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Monitora"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Monitora il volo selezionato"</string>
-    <string name="translate" msgid="1416909787202727524">"Traduci"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Traduci il testo selezionato"</string>
-    <string name="define" msgid="5214255850068764195">"Definisci"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definisci il testo selezionato"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Spazio di archiviazione in esaurimento"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Alcune funzioni di sistema potrebbero non funzionare"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Memoria insufficiente per il sistema. Assicurati di avere 250 MB di spazio libero e riavvia."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"La rete mobile non ha accesso a Internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"La rete non ha accesso a Internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Non è possibile accedere al server DNS privato"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Connesso"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> ha una connettività limitata"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Tocca per connettere comunque"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Passato a <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vuoi aumentare il volume oltre il livello consigliato?\n\nL\'ascolto ad alto volume per lunghi periodi di tempo potrebbe danneggiare l\'udito."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Usare la scorciatoia Accessibilità?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Quando la scorciatoia è attiva, puoi premere entrambi i pulsanti del volume per tre secondi per avviare una funzione di accessibilità."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Vuoi consentire a <xliff:g id="SERVICE">%1$s</xliff:g> di avere il controllo totale del tuo dispositivo?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Se attivi <xliff:g id="SERVICE">%1$s</xliff:g>, il dispositivo non utilizzerà il blocco schermo per migliorare la crittografia dei dati."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Il pieno controllo è appropriato per le app che rispondono alle tue esigenze di accessibilità, ma non per gran parte delle app."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Visualizza e controlla lo schermo"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Può leggere i contenuti presenti sullo schermo e mostrare i contenuti su altre app."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Visualizza ed esegui azioni"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Può tenere traccia delle tue interazioni con un\'app o un sensore hardware e interagire con app per tuo conto."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Consenti"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Rifiuta"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Tocca una funzionalità per iniziare a usarla:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Il servizio <xliff:g id="SERVICE_NAME">%s</xliff:g> è stato disattivato"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Modifica scorciatoie"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Annulla"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Fine"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Disattiva scorciatoia"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Usa scorciatoia"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inversione colori"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Correzione del colore"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"La scorciatoia Accessibilità ha attivato <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"La scorciatoia Accessibilità ha disattivato <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Tieni premuti entrambi i tasti del volume per tre secondi per utilizzare <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ingrandimento"</string>
     <string name="user_switched" msgid="7249833311585228097">"Utente corrente <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Passaggio a <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> file</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> file</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Condivisione diretta non disponibile"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Elenco di app"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"A questa app non è stata concessa l\'autorizzazione di registrazione, ma l\'app potrebbe acquisire l\'audio tramite questo dispositivo USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Home"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu Accessibilità"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra del titolo di <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> è stato inserito nel bucket RESTRICTED"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversazione"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Conversazione di gruppo"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personale"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Lavoro"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Impossibile condividere con app di lavoro"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Impossibile condividere con app personali"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nessuna app disponibile"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Visualizzazione personale"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Visualizzazione di lavoro"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Impossibile condividere questi contenuti con app di lavoro"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"L\'amministratore IT non ti consente di condividere questi contenuti con app nel tuo profilo di lavoro"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Impossibile aprire questi contenuti con app di lavoro"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"L\'amministratore IT non ti consente di aprire questi contenuti con app nel tuo profilo di lavoro"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Impossibile condividere questi contenuti con app personali"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"L\'amministratore IT non ti consente di condividere questi contenuti con app nel tuo profilo personale"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Impossibile aprire questi contenuti con app personali"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"L\'amministratore IT non ti consente di aprire questi contenuti con app nel tuo profilo personale"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Profilo di lavoro sospeso"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Attiva"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Nessuna app di lavoro supporta questi contenuti"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Nessuna app di lavoro può aprire questi contenuti"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Nessuna app personale supporta questi contenuti"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Nessuna app personale può aprire questi contenuti"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Registrazione o riproduzione dell\'audio delle telefonate"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Consente a questa app, se assegnata come applicazione telefono predefinita, di registrare o riprodurre l\'audio delle telefonate."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index b4e47e3..84b5bb1 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -204,8 +204,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"תתבצע מחיקה של המכשיר"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"לא ניתן להשתמש באפליקציה של מנהל המערכת.\n\nאם יש לך שאלות, יש ליצור קשר עם מנהל המערכת של הארגון."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"ההדפסה הושבתה על ידי <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"אפליקציות אישיות הושעו על ידי מנהל מערכת"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"יש להקיש כאן כדי לבדוק תאימות למדיניות."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"אני"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"אפשרויות טאבלט"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"‏אפשרויות Android TV"</string>
@@ -239,6 +245,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"אפשרויות טלפון"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"נעילת מסך"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"כיבוי"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"חירום"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"דיווח על באג"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"סיום הפעלה"</string>
@@ -440,7 +450,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"צלם תמונות וסרטונים"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"אפליקציה זו יכולה להשתמש במצלמה כדי לצלם תמונות ולהקליט סרטונים בכל עת."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"הרשאת גישה לאפליקציה או לשירות למצלמות המערכת כדי לצלם תמונות וסרטונים"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"‏לאפליקציית המערכת | הזו יש הרשאות מיוחדות והיא יכולה לצלם תמונות ולהקליט סרטונים באמצעות מצלמת מערכת בכל זמן. בנוסף, לאפליקציה נדרשת ההרשאה android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"‏אפליקציה או שירות יוכלו לקבל קריאות חוזרות (callback) כשמכשירי מצלמה ייפתחו או ייסגרו."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"שליטה ברטט"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"מאפשר לאפליקציה לשלוט ברטט."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"מאפשרת לאפליקציה לקבל גישה למצב רטט."</string>
@@ -454,6 +468,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"מאפשרת לאפליקציה לנתב את השיחות דרך המערכת כדי לשפר את חוויית השיחה."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ניתן להציג שיחות ולשלוט בהן באמצעות המערכת."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"מאפשר לאפליקציה להציג שיחות נוכחיות ולשלוט בהן במכשיר. זה כולל פרטים כמו מספרי שיחה של שיחות ומצב השיחה."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"פטור מהגבלות של הקלטת אודיו"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"פוטרת את האפליקציה מהגבלות של הקלטת אודיו."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"המשך שיחה מאפליקציה אחרת"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"הרשאה זו מתירה לאפליקציה להמשיך שיחה שהחלה באפליקציה אחרת."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"גישה למספרי הטלפון"</string>
@@ -1139,28 +1155,6 @@
     <string name="deleteText" msgid="4200807474529938112">"מחיקה"</string>
     <string name="inputMethod" msgid="1784759500516314751">"שיטת קלט"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"פעולות טקסט"</string>
-    <string name="email" msgid="2503484245190492693">"התכתבות באימייל"</string>
-    <string name="email_desc" msgid="8291893932252173537">"שליחת אימייל לכתובת שנבחרה"</string>
-    <string name="dial" msgid="4954567785798679706">"ביצוע שיחה"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"התקשרות למספר הטלפון שנבחר"</string>
-    <string name="map" msgid="6865483125449986339">"צפייה במפה"</string>
-    <string name="map_desc" msgid="1068169741300922557">"איתור הכתובת שנבחרה"</string>
-    <string name="browse" msgid="8692753594669717779">"פתיחה"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"פתיחה של כתובת האתר שנבחרה"</string>
-    <string name="sms" msgid="3976991545867187342">"התכתבות בהודעות"</string>
-    <string name="sms_desc" msgid="997349906607675955">"שליחת הודעה למספר הטלפון שנבחר"</string>
-    <string name="add_contact" msgid="7404694650594333573">"הוספה"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"הוספה לאנשי הקשר"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"צפייה"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"הצגת התאריך שנבחר ביומן"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"קביעת מועד"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"קביעת מועד לאירוע בתאריך שנבחר"</string>
-    <string name="view_flight" msgid="2042802613849690108">"מעקב"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"מעקב אחרי הטיסה שנבחרה"</string>
-    <string name="translate" msgid="1416909787202727524">"תרגום"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"תרגום הטקסט שנבחר"</string>
-    <string name="define" msgid="5214255850068764195">"מציאת הפירוש"</string>
-    <string name="define_desc" msgid="6916651934713282645">"פירוש הטקסט שנבחר"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"שטח האחסון אוזל"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"ייתכן שפונקציות מערכת מסוימות לא יפעלו"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"‏אין מספיק שטח אחסון עבור המערכת. ודא שיש לך שטח פנוי בגודל 250MB התחל שוב."</string>
@@ -1299,7 +1293,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"לרשת הסלולרית אין גישה לאינטרנט"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"לרשת אין גישה לאינטרנט"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"‏לא ניתן לגשת לשרת DNS הפרטי"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"הרשת מחוברת"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"הקישוריות של <xliff:g id="NETWORK_SSID">%1$s</xliff:g> מוגבלת"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"כדי להתחבר למרות זאת יש להקיש"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"מעבר אל <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1675,21 +1668,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"האם להעלות את עוצמת הקול מעל לרמה המומלצת?\n\nהאזנה בעוצמת קול גבוהה למשכי זמן ממושכים עלולה לפגוע בשמיעה."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"להשתמש בקיצור הדרך לתכונת הנגישות?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"כשקיצור הדרך מופעל, לחיצה על שני לחצני עוצמת הקול למשך שלוש שניות מפעילה את תכונת הנגישות."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"ברצונך להעניק לשירות <xliff:g id="SERVICE">%1$s</xliff:g> שליטה מלאה במכשיר?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"אם השירות <xliff:g id="SERVICE">%1$s</xliff:g> יופעל, המכשיר לא ישתמש בנעילת המסך כדי לשפר את הצפנת הנתונים."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"שליטה מלאה מתאימה לאפליקציות שעוזרות עם צורכי הנגישות שלך, אבל לא לרוב האפליקציות."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"הצגת המסך ושליטה בו"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"זוהי אפשרות לקריאת כל התוכן במסך ולהצגת התוכן מעל אפליקציות אחרות."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"הצגה וביצוע של פעולות"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"זוהי אפשרות למעקב אחר האינטראקציות שלך עם אפליקציה או חיישן חומרה כלשהם, ולביצוע אינטראקציה בשמך."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"אישור"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"עדיף שלא"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"יש להקיש על תכונה כדי להתחיל להשתמש בה:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> כובה"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"עריכת קיצורי הדרך"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ביטול"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"סיום"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"כבה את קיצור הדרך"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"השתמש בקיצור הדרך"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"היפוך צבעים"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"תיקון צבעים"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> הופעל על-ידי קיצור הדרך לנגישות"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> הושבת על-ידי קיצור הדרך לנגישות"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"יש ללחוץ לחיצה ארוכה על שני לחצני עוצמת הקול למשך שלוש שניות כדי להשתמש בשירות <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"הגדלה"</string>
     <string name="user_switched" msgid="7249833311585228097">"המשתמש הנוכחי <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"עובר אל <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2084,7 +2118,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> קבצים</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + קובץ  אחד (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"שיתוף ישיר אינו זמין"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"רשימת האפליקציות"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"‏לאפליקציה זו לא ניתנה הרשאת הקלטה, אבל אפשר להקליט אודיו באמצעות התקן ה-USB הזה."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"בית"</string>
@@ -2099,31 +2134,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"תפריט נגישות"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"סרגל כיתוב של <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> התווספה לקטגוריה \'מוגבל\'"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"שיחה"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"שיחה קבוצתית"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"אישי"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"עבודה"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"לא ניתן לשתף עם אפליקציות לעבודה"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"לא ניתן לשתף עם אפליקציות פרטיות"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"אין אפליקציות זמינות"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"תצוגה אישית"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"תצוגת עבודה"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"לא ניתן לשתף את התוכן הזה עם אפליקציות לעבודה"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"‏מנהל ה-IT לא מתיר לשתף את התוכן הזה עם אפליקציות מפרופיל העבודה שלך"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"לא ניתן לפתוח את התוכן הזה באפליקציות לעבודה"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"‏מנהל ה-IT לא מתיר לפתוח את התוכן הזה באפליקציות מפרופיל העבודה שלך"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"לא ניתן לשתף את התוכן הזה עם אפליקציות לשימוש אישי"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"‏מנהל ה-IT לא מתיר לשתף את התוכן הזה עם אפליקציות מהפרופיל האישי שלך"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"לא ניתן לפתוח את התוכן הזה באפליקציות לשימוש אישי"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"‏מנהל ה-IT לא מתיר לפתוח את התוכן הזה באפליקציות מהפרופיל האישי שלך"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"פרופיל העבודה מושהה"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"הפעלה"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"אין תמיכה בתוכן הזה באפליקציות לעבודה"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"אי אפשר לפתוח את התוכן הזה באמצעות אפליקציות לעבודה"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"אין תמיכה בתוכן הזה באפליקציות לשימוש אישי"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"אי אפשר לפתוח את התוכן הזה באמצעות אפליקציות לשימוש אישי"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"הקלטה או הפעלה של אודיו בשיחות טלפוניות"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"כאשר האפליקציה הזו מוגדרת כאפליקציית חייגן בברירת מחדל, תהיה לה הרשאה להקליט ולהפעיל אודיו בשיחות טלפוניות."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 1a7f301..577e3a3 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"デバイスのデータが消去されます"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"管理アプリを使用できません。デバイスのデータはこれから消去されます。\n\nご不明な点がある場合は、組織の管理者にお問い合わせください。"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"「<xliff:g id="OWNER_APP">%s</xliff:g>」により印刷は無効にされています。"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"個人用アプリは管理者によって停止されています"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ポリシー コンプライアンスを確認するにはここをタップしてください。"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"自分"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"タブレットオプション"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV のオプション"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"携帯電話オプション"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"画面ロック"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"電源を切る"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"緊急通報"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"バグレポート"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"セッションを終了"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"写真と動画の撮影"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"このアプリは、いつでもカメラを使用して写真や動画を撮影できます。"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"写真と動画を撮影するには、システムカメラへのアクセスをアプリまたはサービスに許可してください"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"権限を付与されたこのシステムアプリは、いつでもシステムカメラを使用して写真と動画を撮影できます。アプリには android.permission.CAMERA 権限も必要です"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"カメラデバイスが起動または終了したときにコールバックを受け取ることを、アプリまたはサービスに許可してください。"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"バイブレーションの制御"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"バイブレーションの制御をアプリに許可します。"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"バイブレーションのオン / オフ状態の把握をアプリに許可します。"</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"通話環境の改善のために、システム経由での通話転送をアプリに許可します。"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"システム経由の通話の表示と操作。"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"デバイスで進行中の通話の表示と操作をアプリに許可します。通話の電話番号や状態などの情報も含まれます。"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"録音制限からの除外"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"このアプリを録音制限から除外します。"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"別のアプリでの通話の続行"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"別のアプリで通話を続行することをこのアプリに許可します。"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"電話番号の読み取り"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"削除"</string>
     <string name="inputMethod" msgid="1784759500516314751">"入力方法"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"テキスト操作"</string>
-    <string name="email" msgid="2503484245190492693">"メール"</string>
-    <string name="email_desc" msgid="8291893932252173537">"選択したメールアドレスにメールを送信します"</string>
-    <string name="dial" msgid="4954567785798679706">"電話"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"選択した電話番号に電話をかけます"</string>
-    <string name="map" msgid="6865483125449986339">"地図"</string>
-    <string name="map_desc" msgid="1068169741300922557">"選択した住所を探します"</string>
-    <string name="browse" msgid="8692753594669717779">"開く"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"選択した URL を開きます"</string>
-    <string name="sms" msgid="3976991545867187342">"メッセージ"</string>
-    <string name="sms_desc" msgid="997349906607675955">"選択した電話番号に SMS を送信します"</string>
-    <string name="add_contact" msgid="7404694650594333573">"追加"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"連絡先に追加します"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"表示"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"カレンダーで選択した日時を表示します"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"予定を作成"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"選択した日時に予定を設定します"</string>
-    <string name="view_flight" msgid="2042802613849690108">"フライト"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"選択したフライトをチェックします"</string>
-    <string name="translate" msgid="1416909787202727524">"翻訳"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"選択したテキストを翻訳します"</string>
-    <string name="define" msgid="5214255850068764195">"辞書で調べる"</string>
-    <string name="define_desc" msgid="6916651934713282645">"選択したテキストを辞書で調べます"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"空き容量わずか"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"一部のシステム機能が動作しない可能性があります"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"システムに十分な容量がありません。250MBの空き容量を確保して再起動してください。"</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"モバイル ネットワークがインターネットに接続されていません"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"ネットワークがインターネットに接続されていません"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"プライベート DNS サーバーにアクセスできません"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"接続しました"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> の接続が制限されています"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"接続するにはタップしてください"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"「<xliff:g id="NETWORK_TYPE">%1$s</xliff:g>」に切り替えました"</string>
@@ -1631,18 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"推奨レベルを超えるまで音量を上げますか?\n\n大音量で長時間聞き続けると、聴力を損なう恐れがあります。"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ユーザー補助機能のショートカットの使用"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"ショートカットが ON の場合、両方の音量ボタンを 3 秒ほど長押しするとユーザー補助機能が起動します。"</string>
-    <string name="accessibility_select_shortcut_menu_title" msgid="7310194076629867377">"使用するユーザー補助アプリをタップ"</string>
-    <string name="accessibility_edit_shortcut_menu_button_title" msgid="6096484087245145325">"ユーザー補助機能ボタンで使用できるアプリを選択"</string>
-    <string name="accessibility_edit_shortcut_menu_volume_title" msgid="4849108668454490699">"音量キーのショートカットで使用できるアプリを選択"</string>
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> にデバイスのフル コントロールを許可しますか?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g> をオンにすると、デバイスデータの暗号化の強化に画面ロックは使用されなくなります。"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"フル コントロールは、ユーザー補助機能を必要とするユーザーをサポートするアプリには適していますが、ほとんどのアプリには適していません。"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"画面の表示と操作"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"画面上のすべてのコンテンツを読み取り、他のアプリでコンテンツを表示することができます。"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"操作の表示と実行"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"アプリやハードウェア センサーの操作を記録したり、自動的にアプリを操作したりできます。"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"許可"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"許可しない"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"使用を開始する機能をタップ:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> はオフになっています"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ショートカットの編集"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"キャンセル"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"完了"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ショートカットを OFF にする"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"ショートカットを使用"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"色反転"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"色補正"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"ユーザー補助機能のショートカットにより <xliff:g id="SERVICE_NAME">%1$s</xliff:g> は ON になっています"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"ユーザー補助機能のショートカットにより <xliff:g id="SERVICE_NAME">%1$s</xliff:g> は OFF になっています"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> を使用するには、音量大と音量小の両方のボタンを 3 秒間長押ししてください"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"拡大"</string>
     <string name="user_switched" msgid="7249833311585228097">"現在のユーザーは<xliff:g id="NAME">%1$s</xliff:g>です。"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>に切り替えています…"</string>
@@ -2013,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g>、他 <xliff:g id="COUNT_3">%d</xliff:g> ファイル</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g>、他 <xliff:g id="COUNT_1">%d</xliff:g> ファイル</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"ダイレクト シェアは利用できません"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"アプリのリスト"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"このアプリに録音権限は付与されていませんが、この USB デバイスから音声を収集できるようになります。"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"ホーム"</string>
@@ -2028,21 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ユーザー補助機能メニュー"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> のキャプション バーです。"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> は RESTRICTED バケットに移動しました。"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"会話"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"グループの会話"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"個人用"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"仕事用"</string>
     <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"個人用ビュー"</string>
     <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"仕事用ビュー"</string>
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"仕事用アプリと共有できません"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"個人用アプリと共有できません"</string>
-    <string name="resolver_cant_share_cross_profile_explanation" msgid="5556640604460901386">"IT 管理者が個人用プロファイルと仕事用プロファイルの間の共有をブロックしました"</string>
-    <string name="resolver_cant_access_work_apps" msgid="375634344111233790">"仕事用アプリにアクセスできません"</string>
-    <string name="resolver_cant_access_work_apps_explanation" msgid="3958762224516867388">"IT 管理者は個人用コンテンツを仕事用アプリで表示することを許可していません"</string>
-    <string name="resolver_cant_access_personal_apps" msgid="1953215925406474177">"個人用アプリにアクセスできません"</string>
-    <string name="resolver_cant_access_personal_apps_explanation" msgid="1725572276741281136">"IT 管理者は仕事用コンテンツを個人用アプリで表示することを許可していません"</string>
-    <string name="resolver_turn_on_work_apps_share" msgid="619263911204978175">"コンテンツを共有するには、仕事用プロファイルをオンにしてください"</string>
-    <string name="resolver_turn_on_work_apps_view" msgid="3073389230905543680">"コンテンツを表示するには、仕事用プロファイルをオンにしてください"</string>
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"利用できるアプリはありません"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"仕事用アプリでこのコンテンツを共有することはできません"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"IT 管理者は、仕事用プロファイルのアプリでこのコンテンツを共有することを許可していません"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"仕事用アプリでこのコンテンツを開くことはできません"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"IT 管理者は、仕事用プロファイルのアプリでこのコンテンツを開くことを許可していません"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"個人用アプリでこのコンテンツを共有することはできません"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"IT 管理者は、個人用プロファイルのアプリでこのコンテンツを共有することを許可していません"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"個人用アプリでこのコンテンツを開くことはできません"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"IT 管理者は、個人用プロファイルのアプリでこのコンテンツを開くことを許可していません"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"仕事用プロファイルが一時停止しています"</string>
     <string name="resolver_switch_on_work" msgid="2873009160846966379">"オンにする"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"このコンテンツに対応する仕事用アプリはありません"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"このコンテンツを開くことができる仕事用アプリはありません"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"このコンテンツに対応する個人用アプリはありません"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"このコンテンツを開くことができる個人用アプリはありません"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"通話中に録音または音声の再生を行う"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"デフォルトの電話アプリケーションとして割り当てられている場合、このアプリに通話中の録音または音声の再生を許可します。"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index e1c9733..4e5e00a 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"თქვენი მოწყობილობა წაიშლება"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"ადმინისტრატორის აპის გამოყენება ვერ მოხერხდება. თქვენი მოწყობილობა ახლა ამოიშლება.\n\nთუ შეკითხვები გაქვთ, დაუკავშირდით თქვენი ორგანიზაციის ადმინისტრატორს."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"ბეჭდვა გათიშულია <xliff:g id="OWNER_APP">%s</xliff:g>-ის მიერ."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"პირადი აპები შეჩერებულია ადმინისტრატორის მიერ"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"შეეხეთ აქ წესებთან შესაბამისობის შესამოწმებლად."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"მე"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ტაბლეტის პარამეტრები"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV ვარიანტები"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"ტელეფონის პარამეტრები"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"ეკრანის დაბლოკვა"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"გამორთვ."</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"საგანგებო სამსახურები"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"ხარვეზის შესახებ ანგარიში"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"სესიის დასრულება"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"სურათებისა და ვიდეოების გადაღება"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"ამ აპს ნებისმიერ დროს შეუძლია კამერით სურათების გადაღება და ვიდეოების ჩაწერა."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"ნება დაერთოს აპლიკაციას ან სერვისს, ჰქონდეს წვდომა სისტემის კამერებზე სურათების და ვიდეოების გადასაღებად"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"ამ პრივილეგირებულ | სისტემის აპს შეუძლია ფოტოების გადაღება და ვიდეოების ჩაწერა ნებისმიერ დროს სისტემის კამერის გამოყენებით. საჭიროა, რომ აპს ჰქოდეს android.permission.CAMERA ნებართვაც"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"ნება დაერთოს აპლიკაციას ან სერვისს, მიიღოს გადმორეკვები კამერის მოწყობილობის გახსნის ან დახურვისას."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"ვიბრაციის კონტროლი"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"აპს შეეძლება, მართოს ვიბრირება."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ნებას რთავს აპს, ჰქონდეს წვდომა ვიბრაციის მდგომარეობაზე."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"დარეკვის ხარისხის გაუმჯობესების მიზნით, აპს ზარების სისტემის მეშვეობით მარშრუტიზაციის საშუალებას აძლევს."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ზარების ნახვა და გაკონტროლება სისტემის მეშვეობით."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"საშუალებას აძლევს აპს, იხილოს და გააკონტროლოს მიმდინარე ზარები მოწყობილობაზე. აღნიშნული მოიცავს ისეთ ინფორმაციას, როგორიცაა ზარებთან დაკავშირებული აბონენტების ნომრები და ზარების მდგომარეობა."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"გაათავისუფლეთ აუდიოს ჩაწერის შეზღუდვებისგან"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"გაათავისუფლეთ აპი აუდიოს ჩაწერის შეზღუდვებისგან."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"ზარის სხვა აპიდან გაგრძელება"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"ნებას რთავს აპს, გააგრძელოს ზარი, რომელიც სხვა აპშია წამოწყებული."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ტელეფონის ნომრების წაკითხვა"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"წაშლა"</string>
     <string name="inputMethod" msgid="1784759500516314751">"შეყვანის მეთოდი"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"ქმედებები ტექსტზე"</string>
-    <string name="email" msgid="2503484245190492693">"ელფოსტის გაგზავნა"</string>
-    <string name="email_desc" msgid="8291893932252173537">"არჩეულ მისამართზე ელფოსტის გაგზავნა"</string>
-    <string name="dial" msgid="4954567785798679706">"ზარი"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"არჩეულ ტელეფონის ნომერზე დარეკვა"</string>
-    <string name="map" msgid="6865483125449986339">"რუკის გახსნა"</string>
-    <string name="map_desc" msgid="1068169741300922557">"არჩეული მისამართის მდებარეობის დადგენა"</string>
-    <string name="browse" msgid="8692753594669717779">"გახსნა"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"არჩეული URL-ის გახსნა"</string>
-    <string name="sms" msgid="3976991545867187342">"შეტყობინება"</string>
-    <string name="sms_desc" msgid="997349906607675955">"არჩეული ტელეფონის ნომრისთვის შეტყობინების გაგზავნა"</string>
-    <string name="add_contact" msgid="7404694650594333573">"დამატება"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"დამატება"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"ნახვა"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"არჩეული დროის კალენდარში ნახვა"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"დაგეგმვა"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"მოვლენის არჩეული დროისთვის დაგეგმვა"</string>
-    <string name="view_flight" msgid="2042802613849690108">"მიდევნება"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"არჩეული ფრენისთვის თვალის მიდევნება"</string>
-    <string name="translate" msgid="1416909787202727524">"თარგმნა"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"არჩეული ტექსტის თარგმნა"</string>
-    <string name="define" msgid="5214255850068764195">"განსაზღვრა"</string>
-    <string name="define_desc" msgid="6916651934713282645">"არჩეული ტექსტის განსაზღვრა"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"თავისუფალი ადგილი იწურება"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"სისტემის ზოგიერთმა ფუნქციამ შესაძლოა არ იმუშავოს"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"სისტემისათვის საკმარისი საცავი არ არის. დარწმუნდით, რომ იქონიოთ სულ მცირე 250 მბაიტი თავისუფალი სივრცე და დაიწყეთ ხელახლა."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"მობილურ ქსელს არ აქვს ინტერნეტზე წვდომა"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"ქსელს არ აქვს ინტერნეტზე წვდომა"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"პირად DNS სერვერზე წვდომა შეუძლებელია"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"დაკავშირებულია"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g>-ის კავშირები შეზღუდულია"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"შეეხეთ, თუ მაინც გსურთ დაკავშირება"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"ახლა გამოიყენება <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"გსურთ ხმის რეკომენდებულ დონეზე მაღლა აწევა?\n\nხანგრძლივად ხმამაღლა მოსმენით შესაძლოა სმენადობა დაიზიანოთ."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"გსურთ მარტივი წვდომის მალსახმობის გამოყენება?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"თუ მალსახმობი ჩართულია, ხმის ორივე ღილაკზე 3 წამის განმავლობაში დაჭერით მარტივი წვდომის ფუნქცია ჩაირთვება."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"დართავთ ნებას <xliff:g id="SERVICE">%1$s</xliff:g>-ს, სრულად მართოს თქვენი მოწყობილობა?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g>-ს თუ ჩართავთ, მონაცემთა დაშიფვრის გასაძლიერებლად თქვენი მოწყობილობა ეკრანის დაბლოკვას არ გამოიყენებს."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"სრული კონტროლი გამოსადეგია აპებისთვის, რომლებიც მარტივი წვდომის საჭიროებისას გეხმარებათ, მაგრამ არა აპების უმრავლესობისთვის."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"ეკრანის ნახვა და მართვა"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"მას შეუძლია წაიკითხოს ეკრანზე არსებული მთელი კონტენტი და აჩვენოს კონტენტი სხვა აპებში."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"მოქმედებების ნახვა და შესრულება"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"მას შეუძლია თვალი მიადევნოს თქვენს ინტერაქციებს აპის ან აპარატურის სენსორის საშუალებით, ასევე, თქვენი სახელით აწარმოოს აპებთან ინტერაქცია."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"დაშვება"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"უარყოფა"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"შეეხეთ ფუნქციას მისი გამოყენების დასაწყებად:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> გამორთულია"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"მალსახმობების რედაქტირება"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"გაუქმება"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"მზადაა"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"მალსახმობის გამორთვა"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"მალსახმობის გამოყენება"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"ფერთა ინვერსია"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"ფერთა კორექცია"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"მარტივი წვდომის მალსახმობმა ჩართო <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"მარტივი წვდომის მალსახმობმა გამორთო <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> რომ გამოიყენოთ, დააჭირეთ ხმის ორივე ღილაკზე 3 წამის განმავლობაში"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"გადიდება"</string>
     <string name="user_switched" msgid="7249833311585228097">"ამჟამინდელი მომხმარებელი <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>-ზე გადართვა…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ფაილი</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> ფაილი</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"პირდაპირი გაზიარება მიუწვდომელია"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"აპების სია"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"ამ აპს არ აქვს მინიჭებული ჩაწერის ნებართვა, მაგრამ შეუძლია ჩაიწეროს აუდიო ამ USB მოწყობილობის მეშვეობით."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"მთავარი"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"მარტივი წვდომის მენიუ"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ის სუბტიტრების ზოლი."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> მოთავსდა კალათაში „შეზღუდული“"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"მიმოწერა"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"ჯგუფური მიმოწერა"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"პირადი"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"სამსახური"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"სამსახურის აპებით გაზიარება შეუძლებელია"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"პირადი აპებით გაზიარება შეუძლებელია"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ხელმისაწვდომი აპები არ არის"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"პირადი ხედი"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"სამსახურის ხედი"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"სამსახურის აპებით გაზიარება ვერ მოხერხდება"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"თქვენი IT ადმინისტრატორი გიკრძალავთ ამ კონტენტის გაზიარებას თქვენი სამსახურის პროფილის აპებიდან"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"ამის სამსახურის აპებით გახსნა ვერ მოხერხდება"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"თქვენი IT ადმინისტრატორი გიკრძალავთ ამ კონტენტის გახსნას თქვენი სამსახურის პროფილის აპებიდან"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"პირადი აპებით გაზიარება ვერ მოხერხდება"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"თქვენი IT ადმინისტრატორი გიკრძალავთ ამ კონტენტის გაზიარებას თქვენი პერსონალური პროფილის აპებიდან"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"ამის პირადი აპებით გახსნა ვერ მოხერხდება"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"თქვენი IT ადმინისტრატორი გიკრძალავთ ამ კონტენტის გახსნას თქვენი პერსონალური პროფილის აპებიდან"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"სამსახურის პროფილი დაპაუზებულია"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"ჩართვა"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"სამსახურის აპებს არ აქვს ამ კონტენტის მხარდაჭერა"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"ამ კონტენტს სამსახურის აპები ვერ გახსნის"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"პერსონალურ აპებს არ აქვს ამ კონტენტის მხარდაჭერა"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"ამ კონტენტს პერსონალური აპები ვერ გახსნის"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"სატელეფონო ზარებში აუდიოს ჩაწერა ან დაკვრა"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ნაგულისხმევ დასარეკ აპლიკაციად არჩევის შემთხვევაში, ნებას რთავს აპს ჩაიწეროს ან დაუკრას აუდიო სატელეფონო ზარებში."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index f3108d2..42338ea 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Құрылғыңыздағы деректер өшіріледі"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Әкімші қолданбасын пайдалану мүмкін емес. Қазір құрылғыдағы деректер өшіріледі\n\nСұрақтарыңыз болса, ұйым әкімшісіне хабарласыңыз."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Басып шығаруды <xliff:g id="OWNER_APP">%s</xliff:g> өшірді."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Әкімші жеке қолданбаларды уақытша тоқтатты"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Саясат талаптарының сай келуін тексеру үшін осы жерді түртіңіз."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Мен"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Планшет опциялары"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV опциялары"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Телефон опциялары"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Экранды құлыптау"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Өшіру"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Төтенше жағдай"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Вирус туралы хабарлау"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Сеансты аяқтау"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"фотосурет жасау және бейне жазу"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Бұл қолданба кез келген уақытта камерамен суретке түсіруі және бейнелерді жазуы мүмкін."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Суретке немесе бейнеге түсіру үшін қолданбаға немесе қызметке жүйелік камераларды пайдалануға рұқсат беру"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Осы айрықша | жүйе қолданбасы кез келген уақытта жүйелік камера арқылы суретке не бейнеге түсіре алады. Қолданбаға android.permission.CAMERA рұқсаты қажет болады."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Қолданбаға не қызметке ашылып не жабылып жатқан камера құрылғылары туралы кері шақыру алуға рұқсат ету"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"тербелісті басқару"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Қолданбаға вибраторды басқаруға рұқсат береді."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Қолданбаға діріл күйін пайдалануға мүмкіндік береді."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Қоңырау шалу тәжірибесін жақсарту үшін қолданба қоңырауларды жүйе арқылы бағыттай алады."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"жүйе арқылы қоңырауларды көру және басқару."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Қолданбаға құрылғыдағы қазіргі қоңырауларды көруге және басқаруға мүмкіндік береді. Бұл – қоңырау шалу нөмірлері және қоңыраулардың күйі сияқты ақпаратқа қатысты."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"аудио жазу шектеулерінен босату"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Қолданбаны аудио жазу шектеулерінен босатыңыз."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"басқа қолданбадағы қоңырауды жалғастыру"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Қолданбаға басқа қолданбадағы қоңырауды жалғастыруға рұқсат береді."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"телефон нөмірлерін оқу"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Жою"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Енгізу әдісі"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Мәтін әрекеттері"</string>
-    <string name="email" msgid="2503484245190492693">"Эл. поштаны ашу"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Таңдалған мекенжайға хабар жіберу"</string>
-    <string name="dial" msgid="4954567785798679706">"Қоңырау шалу"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Таңдалған телефон нөміріне қоңырау шалу"</string>
-    <string name="map" msgid="6865483125449986339">"Картаны ашу"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Таңдалған мекенжайды табу"</string>
-    <string name="browse" msgid="8692753594669717779">"Ашу"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Таңдалған URL мекенжайын ашу"</string>
-    <string name="sms" msgid="3976991545867187342">"Хабар жазу"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Таңдалған телефон нөміріне хабар жіберу"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Енгізу"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Контактілер тізіміне енгізу"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Көру"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Таңдалған уақытты күнтізбеден көру"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Жоспарлау"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Таңдалған уақытқа іс-шара жоспарлау"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Қадағалау"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Таңдалған ұшу рейсін қадағалау"</string>
-    <string name="translate" msgid="1416909787202727524">"Аудару"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Таңдалған мәтінді аудару"</string>
-    <string name="define" msgid="5214255850068764195">"Анықтау"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Таңдалған мәтінді анықтау"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Жадта орын азайып барады"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Жүйенің кейбір функциялары жұмыс істемеуі мүмкін"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Жүйе үшін жад жеткіліксіз. 250 МБ бос орын бар екенін тексеріп, қайта іске қосыңыз."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Мобильдік желі интернетке қосылмаған."</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Желі интернетке қосылмаған."</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Жеке DNS серверіне кіру мүмкін емес."</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Жалғанды"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> желісінің қосылу мүмкіндігі шектеулі."</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Бәрібір жалғау үшін түртіңіз."</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> желісіне ауысты"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Дыбыс деңгейін ұсынылған деңгейден көтеру керек пе?\n\nЖоғары дыбыс деңгейінде ұзақ кезеңдер бойы тыңдау есту қабілетіңізге зиян тигізуі мүмкін."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Арнайы мүмкіндік төте жолын пайдалану керек пе?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Түймелер тіркесімі қосулы кезде, екі дыбыс түймесін 3 секунд басып тұрсаңыз, \"Арнайы мүмкіндіктер\" функциясы іске қосылады."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> қызметі құрылғыңызды толық басқаруына рұқсат етілсін бе?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g> қоссаңыз, құрылғыңыз деректерді шифрлау үшін экранды бекітуді пайдаланбайды."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Арнайы мүмкіндіктер бойынша көмектесетін қолданбаларға ғана құрылғыны толық басқару рұқсатын берген дұрыс."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Экранды көру және басқару"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Ол экрандағы мазмұнды толық оқиды және мазмұнды басқа қолданбалардың үстінен көрсете алады."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Әрекеттерді көру және орындау"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Ол қолданбамен немесе жабдық датчигімен істеген тапсырмаларыңызды бақылайды және қолданбаларды сіздің атыңыздан пайдаланады."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Рұқсат ету"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Қабылдамау"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Функцияны пайдалана бастау үшін түртіңіз:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> қызметі өшірулі."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Таңбашаларды өзгерту"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Бас тарту"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Дайын"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Төте жолды өшіру"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Төте жолды пайдалану"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Түстер инверсиясы"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Түсті түзету"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Арнайы мүмкіндіктер таңбашасы <xliff:g id="SERVICE_NAME">%1$s</xliff:g> қызметін қосты"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Арнайы мүмкіндіктер таңбашасы <xliff:g id="SERVICE_NAME">%1$s</xliff:g> қызметін өшірді"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> қызметін пайдалану үшін дыбыс деңгейін реттейтін екі түймені де 3 секунд басып тұрыңыз"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ұлғайту"</string>
     <string name="user_switched" msgid="7249833311585228097">"Ағымдағы пайдаланушы <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> ауысу орындалуда…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> файл</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> файл</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Тікелей бөлісу мүмкін емес."</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Қолданбалар тізімі"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Қолданбаға жазу рұқсаты берілмеді, бірақ ол осы USB құрылғысы арқылы дыбыс жаза алады."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Негізгі экран"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Арнайы мүмкіндіктер мәзірі"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> қолданбасының жазу жолағы."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ШЕКТЕЛГЕН себетке салынды."</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Чат"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Топтық чат"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Жеке"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Жұмыс"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Жұмыс қолданбаларымен бөлісілмейді"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Жеке қолданбалармен бөлісілмейді"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Қолданбалар жоқ"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Жеке көру"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Жұмыс деректерін көру"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Мұны жұмыс қолданбаларымен бөлісу мүмкін емес"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Әкімші бұл мазмұнды жұмыс профиліндегі қолданбалармен бөлісуге рұқсат етпейді."</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Мұны жұмыс қолданбаларымен ашу мүмкін емес"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Әкімші бұл мазмұнды жұмыс профиліндегі қолданбалармен ашуға рұқсат етпейді."</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Мұны жеке қолданбалармен бөлісу мүмкін емес"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Әкімші бұл мазмұнды жеке профильдегі қолданбалармен бөлісуге рұқсат етпейді."</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Мұны жеке қолданбалармен ашу мүмкін емес"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Әкімші бұл мазмұнды жеке профильдегі қолданбалармен ашуға рұқсат етпейді."</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Жұмыс профилі кідіртілді."</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Қосу"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Бұл мазмұнды ешқандай жұмыс қолданбасы қолдай алмайды."</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Бұл мазмұнды ешқандай жұмыс қолданбасы аша алмайды."</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Бұл мазмұнды ешқандай жеке қолданба қолдай алмайды."</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Бұл мазмұнды ешқандай жеке қолданба аша алмайды."</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Телефон қоңырауларында аудио жазу немесе ойнату"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Қолданба әдепкі нөмір тергіш қолданба ретінде тағайындалған кезде, телефон қоңырауларында аудионы жазуға немесе ойнатуға мүмкіндік береді."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index 180031a..3604b4c 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"ឧបករណ៍របស់អ្នកនឹងត្រូវបានលុប"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"មិនអាច​ប្រើ​កម្មវិធី​អ្នកគ្រប់គ្រង​បានទេ។ ឧបករណ៍​របស់អ្នក​នឹងលុប​ឥឡូវនេះ។\n\nប្រសិនបើ​អ្នកមាន​សំណួរផ្សេងៗ​ សូមទាក់ទង​ទៅអ្នក​គ្រប់គ្រង​ស្ថាប័ន​របស់​អ្នក។"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"ការបោះពុម្ព​ត្រូវបាន​បិទ​ដោយ <xliff:g id="OWNER_APP">%s</xliff:g> ។"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"អ្នកគ្រប់គ្រង​បានផ្អាក​កម្មវិធី​ផ្ទាល់ខ្លួន"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ចុច​ត្រង់នេះ ដើម្បី​ពិនិត្យមើល​ការអនុលោម​តាម​គោលការណ៍​។"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"ខ្ញុំ"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ជម្រើស​កុំព្យូទ័រ​បន្ទះ"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"ជម្រើស Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"ជម្រើស​ទូរស័ព្ទ"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"ចាក់​សោ​អេក្រង់"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"បិទ"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"អាសន្ន"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"របាយការណ៍​កំហុស"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"បញ្ចប់​សម័យ"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ថត​រូប និងវីដេអូ"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"កម្មវិធី​នេះ​អាច​ថត​រូប​ និង​ថត​វីដេអូ​ ដោយ​ប្រើ​កាមេរ៉ា​បាន​គ្រប់​ពេល​។"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"អនុញ្ញាតឱ្យកម្មវិធី ឬសេវាកម្ម​ចូលប្រើកាមេរ៉ា​ប្រព័ន្ធ ដើម្បីថតរូប និង​ថតវីដេអូ"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"កម្មវិធីប្រព័ន្ធ​ដែលមានសិទ្ធិអនុញ្ញាត​នេះអាចថត​រូប និង​ថតវីដេអូ​ ដោយប្រើកាមេរ៉ា​ប្រព័ន្ធបាន​គ្រប់ពេល។ តម្រូវឱ្យមាន​ការអនុញ្ញាត android.permission.CAMERA ដើម្បីឱ្យ​កម្មវិធីអាចធ្វើ​សកម្មភាព​បានផងដែរ"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"អនុញ្ញាតឱ្យកម្មវិធី ឬសេវាកម្ម​ទទួលការហៅត្រឡប់វិញអំពី​កាមេរ៉ាដែលកំពុងបិទ ឬបើក។"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"ពិនិត្យ​ការ​ញ័រ"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"ឲ្យ​កម្មវិធី​គ្រប់គ្រង​កម្មវិធី​ញ័រ។"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"អនុញ្ញាតឱ្យ​កម្មវិធី​ចូលប្រើ​ស្ថានភាពកម្មវិធី​ញ័រ។"</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"អនុញ្ញាត​ឲ្យ​កម្មវិធី​នេះ​បញ្ជូន​ការ​ហៅ​ទូរសព្ទ​របស់វា​តាមរយៈ​ប្រព័ន្ធ ​ដើម្បី​ធ្វើ​ឲ្យ​ការ​ហៅ​ទូរសព្ទ​ប្រសើរ​ជាង​មុន។"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"មើល និង​គ្រប់គ្រង​ការហៅទូរសព្ទ​តាមរយៈប្រព័ន្ធ។"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"អនុញ្ញាត​ឱ្យកម្មវិធី​មើល និងគ្រប់គ្រង​ការហៅទូរសព្ទ​ដែល​កំពុង​ដំណើរការ​នៅលើ​ឧបករណ៍។ សកម្មភាព​នេះរួមមាន​ព័ត៌មាន​ដូចជា លេខទូរសព្ទ​សម្រាប់ការ​ហៅទូរសព្ទ និង​ស្ថានភាព​នៃការហៅទូរសព្ទជាដើម។"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"លើកលែងពី​ការដាក់កំហិត​ការថតសំឡេង"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"លើកលែង​កម្មវិធីពី​ការដាក់កំហិត​លើការថតសំឡេង។"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"បន្ត​ការ​ហៅ​ទូរសព្ទ​ពី​កម្មវិធី​ផ្សេង​"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"អនុញ្ញាត​ឱ្យ​កម្មវិធី​បន្ត​ការ​ហៅ​ទូរសព្ទ​ ដែល​បាន​ចាប់ផ្តើម​នៅក្នុង​កម្មវិធី​ផ្សេង​។"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"អាន​លេខ​ទូរសព្ទ"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"លុប"</string>
     <string name="inputMethod" msgid="1784759500516314751">"វិធីសាស្ត្រ​បញ្ចូល"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"សកម្មភាព​អត្ថបទ"</string>
-    <string name="email" msgid="2503484245190492693">"អ៊ីមែល"</string>
-    <string name="email_desc" msgid="8291893932252173537">"ផ្ញើ​អ៊ីមែល​ទៅ​អាសយដ្ឋាន​ដែល​បាន​ជ្រើសរើស"</string>
-    <string name="dial" msgid="4954567785798679706">"ហៅទូរសព្ទ"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"ហៅ​ទូរសព្ទ​ទៅ​លេខ​ដែល​បាន​ជ្រើសរើស"</string>
-    <string name="map" msgid="6865483125449986339">"ផែនទី"</string>
-    <string name="map_desc" msgid="1068169741300922557">"កំណត់​ទីតាំង​អាសយដ្ឋាន​ដែល​បាន​ជ្រើសរើស"</string>
-    <string name="browse" msgid="8692753594669717779">"បើក"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"បើក URL ដែល​បាន​ជ្រើសរើស"</string>
-    <string name="sms" msgid="3976991545867187342">"សារ"</string>
-    <string name="sms_desc" msgid="997349906607675955">"ផ្ញើសារ​ទៅ​លេខ​ទូរសព្ទ​ដែល​បាន​ជ្រើសរើស"</string>
-    <string name="add_contact" msgid="7404694650594333573">"បញ្ចូល"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"បញ្ចូល​ទៅ​ក្នុង​ទំនាក់ទំនង"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"មើល"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"មើល​ពេលវេលា​ដែល​បាន​ជ្រើសរើស​នៅក្នុង​ប្រតិទិន"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"កំណត់​កាលវិភាគ"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"កំណត់​កាលវិភាគ​ព្រឹត្តិការណ៍​សម្រាប់ពេល​វេលាដែល​បាន​ជ្រើសរើស"</string>
-    <string name="view_flight" msgid="2042802613849690108">"តាម​ដាន"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"តាមដាន​ជើង​ហោះហើរ​ដែល​បាន​ជ្រើសរើស"</string>
-    <string name="translate" msgid="1416909787202727524">"បកប្រែ"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"បកប្រែអត្ថបទដែលបានជ្រើសរើស"</string>
-    <string name="define" msgid="5214255850068764195">"កំណត់​អត្ថន័យ"</string>
-    <string name="define_desc" msgid="6916651934713282645">"កំណត់​អត្ថន័យ​ពាក្យដែល​បានជ្រើសរើស"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"អស់​ទំហំ​ផ្ទុក"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"មុខងារ​ប្រព័ន្ធ​មួយ​ចំនួន​អាច​មិន​ដំណើរការ​"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"មិន​មាន​ទំហំ​ផ្ទុក​​គ្រប់​គ្រាន់​សម្រាប់​ប្រព័ន្ធ​។ សូម​ប្រាកដ​ថា​អ្នក​មាន​ទំហំ​ទំនេរ​ 250MB ហើយ​ចាប់ផ្ដើម​ឡើង​វិញ។"</string>
@@ -1261,7 +1255,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"បណ្ដាញ​ទូរសព្ទ​ចល័ត​មិនមានការតភ្ជាប់​អ៊ីនធឺណិតទេ"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"បណ្ដាញ​មិនមាន​ការតភ្ជាប់​អ៊ីនធឺណិតទេ"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"មិនអាច​ចូលប្រើ​ម៉ាស៊ីនមេ DNS ឯកជន​បានទេ"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"បានភ្ជាប់"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> មានការតភ្ជាប់​មានកម្រិត"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"មិន​អី​ទេ ចុច​​ភ្ជាប់​ចុះ"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"បានប្តូរទៅ <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1633,21 +1626,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"បង្កើន​កម្រិត​សំឡេង​លើស​ពី​កម្រិត​បាន​ផ្ដល់​យោបល់?\n\nការ​ស្ដាប់​នៅ​កម្រិត​សំឡេង​ខ្លាំង​យូរ​អាច​ធ្វើឲ្យ​ខូច​ត្រចៀក។"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ប្រើប្រាស់​ផ្លូវកាត់​ភាព​ងាយស្រួល?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"នៅពេលបើក​ផ្លូវកាត់ ការចុច​ប៊ូតុង​កម្រិតសំឡេង​ទាំងពីរ​រយៈពេល 3 វិនាទី​នឹង​ចាប់ផ្តើម​មុខងារ​ភាពងាយប្រើ។"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"អនុញ្ញាតឱ្យ <xliff:g id="SERVICE">%1$s</xliff:g> មានសិទ្ធិគ្រប់គ្រងឧបករណ៍​របស់អ្នក​ទាំងស្រុងឬ?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"បើ​អ្នក​បើក <xliff:g id="SERVICE">%1$s</xliff:g> ឧបករណ៍របស់​អ្នកនឹង​មិន​ប្រើ​ការចាក់សោអេក្រង់របស់​អ្នក​ ដើម្បី​បង្កើន​ប្រសិទ្ធភាពការ​អ៊ីនគ្រីប​ទិន្នន័យ​ទេ។"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"ការគ្រប់គ្រង​ទាំងស្រុងមានលក្ខណៈ​សមស្របសម្រាប់​កម្មវិធី ដែលជួយអ្នក​ទាក់ទងនឹងការប្រើមុខងារភាពងាយស្រួល ប៉ុន្តែមិនសមស្របសម្រាប់​កម្មវិធីភាគច្រើនទេ។"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"មើល និង​គ្រប់គ្រងអេក្រង់"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"ការគ្រប់គ្រងអេក្រង់​អាចអានខ្លឹមសារទាំងអស់​នៅលើអេក្រង់ និងបង្ហាញខ្លឹមសារ​លើកម្មវិធីផ្សេងទៀត។"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"មើល និង​ធ្វើសកម្មភាព"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"វា​អាចតាមដានអន្តរកម្មរបស់អ្នកជាមួយនឹងកម្មវិធី ឬឧបករណ៍ចាប់​សញ្ញាហាតវែរ និងធ្វើអន្តរកម្ម​ជាមួយកម្មវិធីនានា​ជំនួសឱ្យអ្នក។"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"អនុញ្ញាត"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"បដិសេធ"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"ចុចមុខងារណាមួយ ដើម្បចាប់ផ្ដើមប្រើ៖"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"បានបិទ <xliff:g id="SERVICE_NAME">%s</xliff:g>"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"កែ​ផ្លូវកាត់"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"បោះបង់"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"រួចរាល់"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"បិទ​ផ្លូវកាត់"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"ប្រើប្រាស់​ផ្លូវកាត់"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"បញ្ច្រាស​ពណ៌"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"ការ​កែ​ពណ៌"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"ផ្លូវកាត់​ភាព​ងាយ​ស្រួល​បាន​បើក <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"ផ្លូវកាត់​ភាព​ងាយ​ស្រួល​បាន​បិទ <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"ចុចគ្រាប់ចុច​កម្រិត​សំឡេងទាំងពីរ​ឱ្យជាប់រយៈពេលបីវិនាទី ដើម្បីប្រើ <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"ការ​ពង្រីក"</string>
     <string name="user_switched" msgid="7249833311585228097">"អ្នក​ប្រើ​បច្ចុប្បន្ន <xliff:g id="NAME">%1$s</xliff:g> ។"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"កំពុង​ប្ដូរ​ទៅ <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2018,7 +2052,8 @@
       <item quantity="other">ឯកសារ <xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g></item>
       <item quantity="one">ឯកសារ​ <xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g></item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"មិនមាន​ការចែករំលែក​ដោយផ្ទាល់ទេ"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"បញ្ជីកម្មវិធី"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"កម្មវិធីនេះ​មិនទាន់បាន​ទទួលសិទ្ធិ​ថតសំឡេង​នៅឡើយទេ ប៉ុន្តែអាច​ថតសំឡេង​តាមរយៈ​ឧបករណ៍ USB នេះបាន។"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"ទំព័រដើម"</string>
@@ -2033,31 +2068,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ម៉ឺនុយ​ភាពងាយស្រួល"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"របារពណ៌នា​អំពី <xliff:g id="APP_NAME">%1$s</xliff:g>។"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ត្រូវបានដាក់​ទៅក្នុងធុង​ដែលបានដាក់កំហិត"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>៖"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"ការ​សន្ទនា"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"ការសន្ទនា​ជាក្រុម"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ផ្ទាល់ខ្លួន"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ការងារ"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"មិនអាច​ចែករំលែក​ជាមួយ​កម្មវិធី​ការងារ​បានទេ"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"មិនអាច​ចែករំលែក​ជាមួយ​កម្មវិធី​ផ្ទាល់ខ្លួន​បានទេ"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"មិនមាន​កម្មវិធី​ដែល​អាចប្រើ​បានទេ"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"ទិដ្ឋភាពផ្ទាល់ខ្លួន"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"ទិដ្ឋភាព​ការងារ"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"មិនអាចចែករំលែកខ្លឹមសារនេះតាមរយៈ​កម្មវិធី​ការងារបានទេ"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"អ្នកគ្រប់គ្រងផ្នែកព័ត៌មានវិទ្យារបស់អ្នក​មិនអនុញ្ញាតឱ្យអ្នកចែករំលែក​ខ្លឹមសារនេះ​តាមរយៈកម្មវិធី​នៅក្នុងកម្រងព័ត៌មានការងាររបស់អ្នកទេ"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"មិនអាច​បើកខ្លឹមសារនេះដោយប្រើ​កម្មវិធី​ការងារបានទេ"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"អ្នកគ្រប់គ្រងផ្នែកព័ត៌មានវិទ្យារបស់អ្នក​មិនអនុញ្ញាតឱ្យអ្នកបើក​ខ្លឹមសារនេះ​ដោយប្រើ​កម្មវិធី​នៅក្នុងកម្រងព័ត៌មាន​ការងាររបស់អ្នកទេ"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"មិនអាចចែករំលែកខ្លឹមសារនេះតាមរយៈ​កម្មវិធី​ផ្ទាល់ខ្លួន​បានទេ"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"អ្នកគ្រប់គ្រងផ្នែកព័ត៌មានវិទ្យារបស់អ្នក​មិនអនុញ្ញាតឱ្យអ្នកចែករំលែក​ខ្លឹមសារនេះតាមរយៈ​កម្មវិធី​នៅក្នុងកម្រងព័ត៌មាន​ផ្ទាល់ខ្លួនរបស់អ្នកទេ"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"មិនអាច​បើកខ្លឹមសារនេះដោយប្រើ​កម្មវិធី​ផ្ទាល់ខ្លួន​បានទេ"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"អ្នកគ្រប់គ្រងផ្នែកព័ត៌មានវិទ្យារបស់អ្នក​មិនអនុញ្ញាតឱ្យអ្នកបើក​ខ្លឹមសារនេះ​ដោយប្រើ​កម្មវិធី​នៅក្នុងកម្រងព័ត៌មាន​ផ្ទាល់ខ្លួនរបស់អ្នកទេ"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"កម្រងព័ត៌មានការងារត្រូវបាន​ផ្អាក"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"បើក"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"មិនមានកម្មវិធីការងារដែលអាចប្រើ​ខ្លឹមសារនេះបានទេ"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"មិនមានកម្មវិធីការងារដែលអាចបើក​ខ្លឹមសារនេះបានទេ"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"មិនមានកម្មវិធីផ្ទាល់ខ្លួន​ដែលអាចប្រើ​ខ្លឹមសារនេះបានទេ"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"មិនមានកម្មវិធីផ្ទាល់ខ្លួន​ដែលអាចបើក​ខ្លឹមសារនេះបានទេ"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ថត ឬចាក់សំឡេង​នៅក្នុង​ការហៅទូរសព្ទ"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"នៅពេលកំណត់​ជាកម្មវិធីផ្ទាំងចុច​ហៅទូរសព្ទលំនាំដើម សូមអនុញ្ញាត​ឱ្យកម្មវិធីនេះថត ឬចាក់សំឡេង​នៅក្នុង​ការហៅទូរសព្ទ។"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index 8072123..9cf4888 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"ನಿರ್ವಹಣೆ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿಮ್ಮ ಸಾಧನವನ್ನು ಇದೀಗ ಅಳಿಸಲಾಗುತ್ತದೆ.\n\nನಿಮ್ಮಲ್ಲಿ ಪ್ರಶ್ನೆಗಳಿದ್ದರೆ, ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ಮೂಲಕ ಪ್ರಿಂಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ವೈಯಕ್ತಿಕ ಆ್ಯಪ್‌ಗಳನ್ನು ನಿರ್ವಾಹಕರು ಅಮಾನತುಗೊಳಿಸಿದ್ದಾರೆ"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ಕಾರ್ಯನೀತಿ ಅನುಸರಣೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಇಲ್ಲಿ ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"ನಾನು"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ಟ್ಯಾಬ್ಲೆಟ್ ಆಯ್ಕೆಗಳು"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV ಆಯ್ಕೆಗಳು"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"ಫೋನ್ ಆಯ್ಕೆಗಳು"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"ಸ್ಕ್ರೀನ್ ಲಾಕ್"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"ಪವರ್ ಆಫ್ ಮಾಡು"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"ತುರ್ತು"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"ದೋಷದ ವರದಿ"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"ಸೆಷನ್ ಅಂತ್ಯಗೊಳಿಸಿ"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ಚಿತ್ರಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳನ್ನು ಸೆರೆಹಿಡಿಯಿರಿ"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"ಈ ಅಪ್ಲಿಕೇಶನ್ ಯಾವ ಸಮಯದಲ್ಲಾದರೂ ಕ್ಯಾಮರಾ ಬಳಸಿಕೊಂಡು ಚಿತ್ರಗಳು ಮತ್ತು ವಿಡಿಯೋಗಳನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಬಹುದು."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ಸಿಸ್ಟಂ ಕ್ಯಾಮರಾಗಳಿಗೆ ಅಪ್ಲಿಕೇಶನ್ ಅಥವಾ ಸೇವಾ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಿ"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"ಈ ವಿಶೇಷ | ಸಿಸ್ಟಂ ಆ್ಯಪ್ ಯಾವುದೇ ಸಮಯದಲ್ಲಾದರೂ ಸಿಸ್ಟಂ ಕ್ಯಾಮರಾವನ್ನು ಬಳಸಿಕೊಂಡು ಫೋಟೋಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು ಮತ್ತು ವೀಡಿಯೋಗಳನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಬಹುದು. ಆ್ಯಪ್‌ಗೆ android.permission.CAMERA ಅನುಮತಿಯ ಅಗತ್ಯವಿರುತ್ತದೆ"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"ಕ್ಯಾಮರಾ ಸಾಧನಗಳನ್ನು ತೆರೆಯುತ್ತಿರುವ ಅಥವಾ ಮುಚ್ಚುತ್ತಿರುವ ಕುರಿತು ಕಾಲ್‌ಬ್ಯಾಕ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಆ್ಯಪ್‌ ಅಥವಾ ಸೇವೆಗೆ ಅನುಮತಿಸಿ."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"ವೈಬ್ರೇಷನ್‌‌ ನಿಯಂತ್ರಿಸಿ"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"ವೈಬ್ರೇಟರ್‌ ನಿಯಂತ್ರಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ವೈಬ್ರೇಟರ್ ಸ್ಥಿತಿಯನ್ನು ಪ್ರವೇಶಿಸಲು ಆ್ಯಪ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"ಕರೆಯ ಅನುಭವವನ್ನು ಸುಧಾರಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌ನ ಕರೆಗಳನ್ನು ಸಿಸ್ಟಂ ಮೂಲಕ ರವಾನಿಸಲು ಅನುಮತಿಸುತ್ತದೆ."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ಸಿಸ್ಟಂ ಮೂಲಕ ಕರೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"ಸಾಧನದಲ್ಲಿನ ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕರೆಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಮತ್ತು ನಿಯಂತ್ರಿಸಲು ಆ್ಯಪ್ ಅನುಮತಿಸುತ್ತದೆ. ಕರೆಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಕರೆ ಸಂಖ್ಯೆಗಳು ಮತ್ತು ಕರೆ ಮಾಡಿದ ರಾಜ್ಯದಂತಹ ಮಾಹಿತಿಯನ್ನು ಇದು ಒಳಗೊಂಡಿರುತ್ತದೆ."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ಆಡಿಯೋ ರೆಕಾರ್ಡ್ ಮಾಡುವ ನಿರ್ಬಂಧಗಳಿಂದ ವಿನಾಯಿತಿ ನೀಡಿ"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"ಆಡಿಯೋ ರೆಕಾರ್ಡ್ ಮಾಡುವ ನಿರ್ಬಂಧದಿಂದ ಈ ಆ್ಯಪ್‌ಗೆ ವಿನಾಯಿತಿ ನೀಡಿ."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"ಮತ್ತೊಂದು ಅಪ್ಲಿಕೇಶನ್‌ ಮೂಲಕ ಕರೆಯನ್ನು ಮುಂದುವರಿಸಿ"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"ಮತ್ತೊಂದು ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಪ್ರಾರಂಭವಾದ ಕರೆಯನ್ನು ಮುಂದುವರಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡಿ."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ಫೋನ್‌ ಸಂಖ್ಯೆಗಳನ್ನು ಓದಿ"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"ಅಳಿಸಿ"</string>
     <string name="inputMethod" msgid="1784759500516314751">"ಇನ್‌ಪುಟ್ ವಿಧಾನ"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"ಪಠ್ಯದ ಕ್ರಮಗಳು"</string>
-    <string name="email" msgid="2503484245190492693">"ಇಮೇಲ್ ಮಾಡಿ"</string>
-    <string name="email_desc" msgid="8291893932252173537">"ಆಯ್ಕೆಮಾಡಿದ ವಿಳಾಸಕ್ಕೆ ಇಮೇಲ್‌ ಮಾಡಿ"</string>
-    <string name="dial" msgid="4954567785798679706">"ಕರೆ ಮಾಡಿ"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"ಆಯ್ಕೆಮಾಡಿದ ಫೋನ್ ಸಂಖ್ಯೆಗೆ ಕರೆ ಮಾಡಿ"</string>
-    <string name="map" msgid="6865483125449986339">"ನಕ್ಷೆ"</string>
-    <string name="map_desc" msgid="1068169741300922557">"ಆಯ್ಕೆ ಮಾಡಿದ ವಿಳಾಸವನ್ನು ಗುರುತಿಸಿ"</string>
-    <string name="browse" msgid="8692753594669717779">"ತೆರೆಯಿರಿ"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"ಆಯ್ಕೆ ಮಾಡಿದ URL ತೆರೆಯಿರಿ"</string>
-    <string name="sms" msgid="3976991545867187342">"ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
-    <string name="sms_desc" msgid="997349906607675955">"ಆಯ್ಕೆಮಾಡಿದ ಫೋನ್ ಸಂಖ್ಯೆಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
-    <string name="add_contact" msgid="7404694650594333573">"ಸೇರಿಸಿ"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸಿ"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"ವೀಕ್ಷಿಸಿ"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"ಕ್ಯಾಲೆಂಡರ್‌ನಲ್ಲಿ ಆಯ್ಕೆಮಾಡಿದ ಸಮಯವನ್ನು ವೀಕ್ಷಿಸಿ"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"ಸಮಯ ನಿಗದಿಗೊಳಿಸಿ"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"ಆಯ್ಕೆ ಮಾಡಿದ ಸಮಯಕ್ಕೆ ಈವೆಂಟ್ ನಿಗದಿಗೊಳಿಸಿ"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"ಆಯ್ಕೆಮಾಡಿದ ವಿಮಾನವನ್ನು ಟ್ರ್ಯಾಕ್‌ ಮಾಡಿ"</string>
-    <string name="translate" msgid="1416909787202727524">"ಅನುವಾದ ಮಾಡಿ"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"ಆಯ್ಕೆಮಾಡಿದ ಪಠ್ಯವನ್ನು ಅನುವಾದಿಸಿ"</string>
-    <string name="define" msgid="5214255850068764195">"ವಿವರಿಸಿ"</string>
-    <string name="define_desc" msgid="6916651934713282645">"ಆಯ್ಕೆಮಾಡಿದ ಪಠ್ಯವನ್ನು ವಿವರಿಸಿ"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"ಸಂಗ್ರಹಣೆ ಸ್ಥಳವು ತುಂಬಿದೆ"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"ಕೆಲವು ಸಿಸ್ಟಂ ಕಾರ್ಯವಿಧಾನಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"ಸಿಸ್ಟಂನಲ್ಲಿ ಸಾಕಷ್ಟು ಸಂಗ್ರಹಣೆಯಿಲ್ಲ. ನೀವು 250MB ನಷ್ಟು ಖಾಲಿ ಸ್ಥಳವನ್ನು ಹೊಂದಿರುವಿರಾ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಹಾಗೂ ಮರುಪ್ರಾರಂಭಿಸಿ."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ ಯಾವುದೇ ಇಂಟರ್ನೆಟ್ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿಲ್ಲ"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"ನೆಟ್‌ವರ್ಕ್‌ ಇಂಟರ್ನೆಟ್‌ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿಲ್ಲ"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"ಖಾಸಗಿ DNS ಸರ್ವರ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"ಸಂಪರ್ಕಿಸಲಾಗಿದೆ"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> ಸೀಮಿತ ಸಂಪರ್ಕ ಕಲ್ಪಿಸುವಿಕೆಯನ್ನು ಹೊಂದಿದೆ"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"ಹೇಗಾದರೂ ಸಂಪರ್ಕಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ವಾಲ್ಯೂಮ್‌ ಅನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾದ ಮಟ್ಟಕ್ಕಿಂತಲೂ ಹೆಚ್ಚು ಮಾಡುವುದೇ?\n\nದೀರ್ಘ ಅವಧಿಯವರೆಗೆ ಹೆಚ್ಚಿನ ವಾಲ್ಯೂಮ್‌ನಲ್ಲಿ ಆಲಿಸುವುದರಿಂದ ನಿಮ್ಮ ಆಲಿಸುವಿಕೆ ಸಾಮರ್ಥ್ಯಕ್ಕೆ ಹಾನಿಯುಂಟು ಮಾಡಬಹುದು."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ಪ್ರವೇಶಿಸುವಿಕೆ ಶಾರ್ಟ್‌ಕಟ್ ಬಳಸುವುದೇ?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"ಶಾರ್ಟ್‌ಕಟ್ ಆನ್ ಆಗಿರುವಾಗ, ಎರಡೂ ವಾಲ್ಯೂಮ್ ಬಟನ್‌ಗಳನ್ನು 3 ಸೆಕೆಂಡುಗಳ ಕಾಲ ಒತ್ತಿದರೆ ಪ್ರವೇಶಿಸುವಿಕೆ ವೈಶಿಷ್ಟ್ಯವೊಂದು ಪ್ರಾರಂಭವಾಗುತ್ತದೆ."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"ನಿಮ್ಮ ಸಾಧನದ ಪೂರ್ಣ ನಿಯಂತ್ರಣ ಹೊಂದಲು <xliff:g id="SERVICE">%1$s</xliff:g> ಗೆ ಅನುಮತಿಸಬೇಕೆ?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"ನೀವು <xliff:g id="SERVICE">%1$s</xliff:g> ಅನ್ನು ಆನ್ ಮಾಡಿದರೆ, ನಿಮ್ಮ ಸಾಧನವು ಡೇಟಾ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಅನ್ನು ವರ್ಧಿಸಲು ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ಲಾಕ್ ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"ಪ್ರವೇಶಿಸುವಿಕೆಯ ಅವಶ್ಯಕತೆಗಳಿಗೆ ಸಹಾಯ ಮಾಡುವ ಆ್ಯಪ್‌ಗಳಿಗೆ ಪೂರ್ಣ ನಿಯಂತ್ರಣ ನೀಡುವುದು ಸೂಕ್ತವಾಗಿರುತ್ತದೆ, ಆದರೆ ಬಹುತೇಕ ಆ್ಯಪ್‌ಗಳಿಗೆ ಇದು ಸೂಕ್ತವಲ್ಲ."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"ಪರದೆಯನ್ನು ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"ಇದು ಪರದೆಯ ಮೇಲಿನ ಎಲ್ಲಾ ವಿಷಯವನ್ನು ಓದಬಹುದು ಮತ್ತು ಇತರ ಆ್ಯಪ್‌ಗಳ ಮೇಲೆ ವಿಷಯವನ್ನು ಪ್ರದರ್ಶಿಸಬಹುದು."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"ಕ್ರಿಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"ಇದು ಆ್ಯಪ್ ಅಥವಾ ಹಾರ್ಡ್‌ವೇರ್ ಸೆನ್ಸರ್‌ನ ಜೊತೆಗಿನ ನಿಮ್ಮ ಸಂವಹನಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಬಹುದು, ಮತ್ತು ನಿಮ್ಮ ಪರವಾಗಿ ಆ್ಯಪ್‌ಗಳ ಜೊತೆ ಸಂವಹನ ನಡೆಸಬಹುದು."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"ಅನುಮತಿಸಿ"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"ನಿರಾಕರಿಸಿ"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"ವೈಶಿಷ್ಟ್ದ ಬಳಸುವುದನ್ನು ಪ್ರಾರಂಭಿಸಲು ಅದನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> ಅನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ಶಾರ್ಟ್‌ಕಟ್‌‍ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಿ"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ರದ್ದುಗೊಳಿಸಿ"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"ಪೂರ್ಣಗೊಂಡಿದೆ"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ಶಾರ್ಟ್‌ಕಟ್‌ ಆಫ್ ಮಾಡಿ"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"ಶಾರ್ಟ್‌ಕಟ್ ಬಳಸಿ"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"ಬಣ್ಣ ವಿಲೋಮ"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"ಬಣ್ಣ ತಿದ್ದುಪಡಿ"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"ಪ್ರವೇಶಿಸುವಿಕೆ ಶಾರ್ಟ್‌ಕಟ್‌, <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ಅನ್ನು ಆನ್ ಮಾಡಿದೆ"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"ಪ್ರವೇಶಿಸುವಿಕೆ ಶಾರ್ಟ್‌ಕಟ್‌, <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ಅನ್ನು ಆಫ್ ಮಾಡಿದೆ"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> ಅನ್ನು ಬಳಸಲು ಎರಡೂ ಧ್ವನಿ ಕೀಗಳನ್ನು ಮೂರು ಸೆಕೆಂಡ್‌ಗಳ ಕಾಲ ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"ಹಿಗ್ಗಿಸುವಿಕೆ"</string>
     <string name="user_switched" msgid="7249833311585228097">"ಪ್ರಸ್ತುತ ಬಳಕೆದಾರರು <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> ಗೆ ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ…"</string>
@@ -1859,8 +1893,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"ವರ್ಗೀಕರಿಸದಿರುವುದು"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ನೀವು ಈ ಅಧಿಸೂಚನೆಗಳ ಪ್ರಾಮುಖ್ಯತೆಯನ್ನು ಹೊಂದಿಸಿರುವಿರಿ."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ಜನರು ತೊಡಗಿಕೊಂಡಿರುವ ಕಾರಣ ಇದು ಅತ್ಯಂತ ಪ್ರಮುಖವಾಗಿದೆ."</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"ಕಸ್ಟಮ್ ಆ್ಯಪ್ ಅಧಿಸೂಚನೆ"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g> (ಈ ಖಾತೆಯ ಬಳಕೆದಾರರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದಾರೆ) ಮೂಲಕ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಲು <xliff:g id="APP">%1$s</xliff:g> ಗೆ ಅನುಮತಿಸಬೇಕೆ ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> ಮೂಲಕ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಲು <xliff:g id="APP">%1$s</xliff:g> ಗೆ ಅನುಮತಿಸುವುದೇ ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ಭಾಷೆ ಸೇರಿಸಿ"</string>
@@ -2017,7 +2050,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ಫೈಲ್‌ಗಳು</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ಫೈಲ್‌ಗಳು</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"ನೇರ ಹಂಚಿಕೆ ಲಭ್ಯವಿಲ್ಲ"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"ಆ್ಯಪ್‌ಗಳ ಪಟ್ಟಿ"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"ಈ ಆ್ಯಪ್‌ಗೆ ರೆಕಾರ್ಡ್ ಅನುಮತಿಯನ್ನು ನೀಡಲಾಗಿಲ್ಲ, ಆದರೆ ಈ USB ಸಾಧನದ ಮೂಲಕ ಆಡಿಯೊವನ್ನು ಸೆರೆಹಿಡಿಯಬಲ್ಲದು."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"ಹೋಮ್"</string>
@@ -2032,31 +2066,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ಪ್ರವೇಶಿಸುವಿಕೆ ಮೆನು"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> ಆ್ಯಪ್‌ನ ಶೀರ್ಷಿಕೆಯ ಪಟ್ಟಿ."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ಅನ್ನು ನಿರ್ಬಂಧಿತ ಬಕೆಟ್‌ಗೆ ಹಾಕಲಾಗಿದೆ"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"ಸಂವಾದ"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"ಗುಂಪು ಸಂವಾದ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ವೈಯಕ್ತಿಕ"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ಕೆಲಸ"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"ವೈಯಕ್ತಿಕ ವೀಕ್ಷಣೆ"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"ಕೆಲಸದ ವೀಕ್ಷಣೆ"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ಕೆಲಸದ ಆ್ಯಪ್‌ಗಳೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ವೈಯಕ್ತಿಕ ಆ್ಯಪ್‌ಗಳೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ಯಾವುದೇ ಆ್ಯಪ್‌ಗಳು ಲಭ್ಯವಿಲ್ಲ"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"ಆನ್ ಮಾಡಿ"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ಫೋನ್ ಕರೆಗಳಲ್ಲಿ ಆಡಿಯೊವನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಿ ಅಥವಾ ಪ್ಲೇ ಮಾಡಿ"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ಡೀಫಾಲ್ಟ್ ಡಯಲರ್ ಅಪ್ಲಿಕೇಶನ್ ರೀತಿ ಬಳಸಿದಾಗ ಫೋನ್ ಕರೆಗಳಲ್ಲಿ ಆಡಿಯೊವನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಲು ಅಥವಾ ಪ್ಲೇ ಮಾಡಲು ಈ ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸಿ."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index f7c24da8..b236ce1 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"기기가 삭제됩니다."</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"관리자 앱을 사용할 수 없습니다. 곧 기기가 삭제됩니다.\n\n궁금한 점이 있으면 조직의 관리자에게 문의하세요."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g>에 의해 사용 중지되었습니다."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"관리자가 개인 앱을 정지함"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"정책 준수를 확인하려면 여기를 탭하세요."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"나"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"태블릿 옵션"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV 옵션"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"휴대전화 옵션"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"화면 잠금"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"종료"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"긴급 전화"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"버그 신고"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"세션 끝내기"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"사진과 동영상 찍기"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"이 앱은 언제든지 카메라를 사용하여 사진을 촬영하고 동영상을 녹화할 수 있습니다."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"사진 및 동영상 촬영을 위해 애플리케이션 또는 서비스에서 시스템 카메라에 액세스하도록 허용"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"이 권한을 가진 시스템 앱은 언제든지 시스템 카메라를 사용하여 사진을 촬영하고 동영상을 녹화할 수 있습니다. 또한 앱에 android.permission.CAMERA 권한이 필요합니다."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"애플리케이션 또는 서비스에서 카메라 기기 열림 또는 닫힘에 대한 콜백을 수신하도록 허용"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"진동 제어"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"앱이 진동을 제어할 수 있도록 허용합니다."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"앱이 진동 상태에 액세스하도록 허용합니다."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"통화 환경을 개선하기 위해 앱이 시스템을 통해 통화를 연결하도록 허용합니다."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"시스템을 통해 통화 확인 및 제어"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"앱이 기기에서 진행 중인 통화를 확인 및 제어하도록 허용합니다. 여기에는 통화에 사용된 전화번호 및 통화 상태 등의 정보가 포함됩니다."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"오디오 기록 제한에서 제외"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"오디오를 기록할 수 있도록 앱을 제한에서 제외하세요."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"다른 앱에서 전화 받기"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"다른 앱에서 수신한 전화를 계속하려면 앱을 허용합니다."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"전화번호 읽기"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"삭제"</string>
     <string name="inputMethod" msgid="1784759500516314751">"입력 방법"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"텍스트 작업"</string>
-    <string name="email" msgid="2503484245190492693">"이메일"</string>
-    <string name="email_desc" msgid="8291893932252173537">"선택한 주소로 이메일 보내기"</string>
-    <string name="dial" msgid="4954567785798679706">"전화"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"선택한 전화번호로 전화 걸기"</string>
-    <string name="map" msgid="6865483125449986339">"지도"</string>
-    <string name="map_desc" msgid="1068169741300922557">"선택한 주소 위치 확인"</string>
-    <string name="browse" msgid="8692753594669717779">"열기"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"선택한 URL 열기"</string>
-    <string name="sms" msgid="3976991545867187342">"메시지"</string>
-    <string name="sms_desc" msgid="997349906607675955">"선택한 전화번호로 메시지 전송"</string>
-    <string name="add_contact" msgid="7404694650594333573">"추가"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"연락처에 추가"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"보기"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"선택한 시간 캘린더에서 보기"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"일정 만들기"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"선택한 시간으로 일정 만들기"</string>
-    <string name="view_flight" msgid="2042802613849690108">"추적"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"선택한 항공편 추적"</string>
-    <string name="translate" msgid="1416909787202727524">"번역"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"선택한 텍스트 번역"</string>
-    <string name="define" msgid="5214255850068764195">"정의"</string>
-    <string name="define_desc" msgid="6916651934713282645">"선택한 텍스트 정의"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"저장 공간이 부족함"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"일부 시스템 기능이 작동하지 않을 수 있습니다."</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"시스템의 저장 공간이 부족합니다. 250MB의 여유 공간이 확보한 후 다시 시작하세요."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"모바일 네트워크에 인터넷이 연결되어 있지 않습니다."</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"네트워크에 인터넷이 연결되어 있지 않습니다."</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"비공개 DNS 서버에 액세스할 수 없습니다."</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"연결되었습니다."</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g>에서 연결을 제한했습니다."</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"계속 연결하려면 탭하세요."</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g>(으)로 전환"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"권장 수준 이상으로 볼륨을 높이시겠습니까?\n\n높은 볼륨으로 장시간 청취하면 청력에 손상이 올 수 있습니다."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"접근성 단축키를 사용하시겠습니까?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"단축키가 사용 설정된 경우 볼륨 버튼 두 개를 동시에 3초간 누르면 접근성 기능이 시작됩니다."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g>에서 기기를 완전히 제어하도록 허용하시겠습니까?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g>을(를) 사용 설정하면 기기에서 데이터 암호화를 개선하기 위해 화면 잠금을 사용하지 않습니다."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"접근성 관련 지원을 제공하는 앱에는 완벽한 제어권을 부여하는 것이 좋으나, 대부분의 앱에는 적합하지 않습니다."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"화면 확인 및 제어"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"화면에 표시된 모든 콘텐츠를 읽고 다른 앱 위에 콘텐츠를 표시할 수 있습니다."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"작업 확인 및 실행"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"앱 또는 하드웨어 센서와의 상호작용을 추적할 수 있으며 나를 대신해 앱과 상호작용할 수 있습니다."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"허용"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"거부"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"기능을 사용하려면 탭하세요"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g>이(가) 사용 중지됨"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"단축키 수정"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"취소"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"완료"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"단축키 사용 중지"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"단축키 사용"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"색상 반전"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"색상 보정"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"접근성 단축키로 인해 <xliff:g id="SERVICE_NAME">%1$s</xliff:g>이(가) 사용 설정되었습니다."</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"접근성 단축키로 인해 <xliff:g id="SERVICE_NAME">%1$s</xliff:g>이(가) 사용 중지되었습니다."</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> 서비스를 사용하려면 두 볼륨 키를 3초 동안 길게 누르세요"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"확대"</string>
     <string name="user_switched" msgid="7249833311585228097">"현재 사용자는 <xliff:g id="NAME">%1$s</xliff:g>님입니다."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>(으)로 전환하는 중…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> 및 파일 <xliff:g id="COUNT_3">%d</xliff:g>개</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> 및 파일 <xliff:g id="COUNT_1">%d</xliff:g>개</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"직접 공유가 지원되지 않음"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"앱 목록"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"이 앱에는 녹음 권한이 부여되지 않았지만, 이 USB 기기를 통해 오디오를 녹음할 수 있습니다."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"홈"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"접근성 메뉴"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>의 자막 표시줄입니다."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> 항목이 RESTRICTED 버킷으로 이동함"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"대화"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"그룹 대화"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"개인"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"직장"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"직장 앱과 공유할 수 없음"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"개인 앱과 공유할 수 없음"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"사용 가능한 앱 없음"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"개인 뷰"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"직장 뷰"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"직장 앱과 공유할 수 없는 콘텐츠"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"IT 관리자가 직장 프로필의 앱에서 이 콘텐츠를 공유하도록 허용하지 않습니다."</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"직장 앱으로 열 수 없는 콘텐츠"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"IT 관리자가 직장 프로필의 앱에서 이 콘텐츠를 열도록 허용하지 않습니다."</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"개인 앱과 공유할 수 없는 콘텐츠"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"IT 관리자가 개인 프로필의 앱에서 이 콘텐츠를 공유하도록 허용하지 않습니다."</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"개인 앱으로 열 수 없는 콘텐츠"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"IT 관리자가 개인 프로필의 앱에서 이 콘텐츠를 열도록 허용하지 않습니다."</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"직장 프로필이 일시중지됨"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"사용 설정"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"이 콘텐츠를 지원하는 직장 앱이 없음"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"이 콘텐츠를 열 수 있는 직장 앱이 없음"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"이 콘텐츠를 지원하는 개인 앱이 없음"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"이 콘텐츠를 열 수 있는 개인 앱이 없음"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"전화 통화 중에 오디오 녹음 또는 재생"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"이 앱이 기본 다이얼러 애플리케이션으로 지정되었을 때 전화 통화 중에 오디오를 녹음하거나 재생하도록 허용합니다."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index b04863c..af6e672 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Түзмөгүңүз тазаланат"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Түзмөктү башкаруучу колдонмо жараксыз. Түзмөгүңүз азыр тазаланат.\n\nСуроолоруңуз болсо, ишканаңыздын администраторуна кайрылыңыз."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Басып чыгаруу <xliff:g id="OWNER_APP">%s</xliff:g> тарабынан өчүрүлдү."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Жеке колдонмолорду администратор убактылуу токтотту"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Саясатка ылайыктуулугун текшерүү үчүн бул жерди таптап коюңуз"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Мен"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Планшет мүмкүнчүлүктөрү"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV параметрлери"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Телефон мүмкүнчүлүктөрү"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Экран кулпусу"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Өчүрүү"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Тез жардам"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Ката тууралуу билдирүү"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Сеансты бүтүрүү"</string>
@@ -377,7 +387,7 @@
     <string name="permdesc_persistentActivity" product="tablet" msgid="6055271149187369916">"Колдонмого өзүнүн бөлүктөрүн эстутумда туруктуу кармоого уруксат берет.Бул эстутумдун башка колдонмолорго жетиштүүлүгүн чектеши жана телефондун иштешин жайлатышы мүмкүн."</string>
     <string name="permdesc_persistentActivity" product="tv" msgid="6800526387664131321">"Колдонмого өз бөлүктөрүн эстутумда туруктуу сактоого уруксат берет. Бул башка колдонмолор үчүн жеткиликтүү болгон эстутумду чектеп, Android TV түзмөгүңүздүн иштешин жайлатышы мүмкүн."</string>
     <string name="permdesc_persistentActivity" product="default" msgid="1914841924366562051">"Колдонмого  өзүнүн бөлүктөрүн эстутумда туруктуу кармоого уруксат берет. Бул эстутумдун башка колдонмолорго жетиштүүлүгүн чектеши жана телефондун иштешин жайлатышы мүмкүн."</string>
-    <string name="permlab_foregroundService" msgid="1768855976818467491">"алдыңкы пландагы кызматты аткаруу"</string>
+    <string name="permlab_foregroundService" msgid="1768855976818467491">"активдүү кызматты иштетүү"</string>
     <string name="permdesc_foregroundService" msgid="8720071450020922795">"Колдонмолорго алдынкы пландагы кызматтарды колдонууга уруксат берет."</string>
     <string name="permlab_getPackageSize" msgid="375391550792886641">"колдонмо сактагычынын мейкиндигин өлчөө"</string>
     <string name="permdesc_getPackageSize" msgid="742743530909966782">"Колдонмого өз кодун, дайындарын жана кэш өлчөмдөрүн түшүрүп алуу мүмкүнчүлүгүн берет"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"сүрөт жана видео тартуу"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Бул колдонмо каалаган убакта камера менен сүрөт же видеолорду тарта алат."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Сүрөткө тартып, видеолорду жаздыруу үчүн бул колдонмого же кызматка тутумдун камерасын колдонууга уруксат берүү"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Бул артыкчылыктуу | тутум колдонмосу тутумдун камерасын каалаган убакта колдонуп, сүрөткө тартып, видео жаздыра алат. Ошондой эле колдонмого android.permission.CAMERA уруксатын берүү керек."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Колдонмого же кызматка камера ачылып же жабылып жатканда чалууларды кабыл алууга уруксат берүү."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"титирөөнү башкаруу"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Колдонмого дирилдегичти көзөмөлдөө мүмкүнчүлүгүн берет."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Колдонмого дирилдөө абалына кирүүгө уруксат берет."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Чалуунун сапатын жакшыртуу максатында колдонмого чалууларын тутум аркылуу өткөрүүгө уруксат берет."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"тутум аркылуу чалууларды көрүп, көзөмөлдөө."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Колдонмого түзмөктөгү аткарылып жаткан чалууларды көрүп, көзөмөлдөөгө уруксат берет. Буга чалуулардын саны жана абалы сыяктуу маалымат кирет."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"аудиону жаздырууга чектөө коюлбасын"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Колдонмого аудиону жаздырууга чектөө коюлбасын."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"чалууну башка колдонмодон улантуу"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Башка колдонмодон аткарылган чалууну бул колдонмодо улантууга уруксат берүү."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"телефон номерлерин окуу"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Жок кылуу"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Киргизүү ыкмасы"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Текст боюнча иштер"</string>
-    <string name="email" msgid="2503484245190492693">"Кат жөнөтүү"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Тандалган дарекке электрондук кат жөнөтүү"</string>
-    <string name="dial" msgid="4954567785798679706">"Чалуу"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Тандалган телефон номерине чалуу"</string>
-    <string name="map" msgid="6865483125449986339">"Картадан кароо"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Тандалган даректи картада табуу"</string>
-    <string name="browse" msgid="8692753594669717779">"Ачуу"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Тандалган URL\'ди ачуу"</string>
-    <string name="sms" msgid="3976991545867187342">"Билдирүү жазуу"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Тандалган телефон номерине билдирүү жөнөтүү"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Кошуу"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Байланыштарга кошуу"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Көрүү"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Тандалган убакытты жылнаамада көрүү"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Графикке киргизүү"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Иш-чараны тандалган убакытка графикке киргизүү"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Көз салуу"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Тандалган аба каттамына көз салуу"</string>
-    <string name="translate" msgid="1416909787202727524">"Которуу"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Тандалган текстти которуу"</string>
-    <string name="define" msgid="5214255850068764195">"Аныктоо"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Тандалган текстти аныктоо"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Сактагычта орун калбай баратат"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Системанын кээ бир функциялары иштебеши мүмкүн"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Тутумда сактагыч жетишсиз. 250МБ бош орун бар экенин текшерип туруп, өчүрүп күйгүзүңүз."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Мобилдик Интернет жок"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Тармактын Интернет жок"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Жеке DNS сервери жеткиликсиз"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Туташты"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> байланышы чектелген"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Баары бир туташуу үчүн таптаңыз"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> тармагына которуштурулду"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Сунушталган деңгээлден да катуулатып уккуңуз келеби?\n\nМузыканы узакка чейин катуу уксаңыз, угууңуз начарлап кетиши мүмкүн."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Ыкчам иштетесизби?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Атайын мүмкүнчүлүктөр функциясын пайдалануу үчүн ал күйгүзүлгөндө, үндү катуулатып/акырындаткан эки баскычты тең 3 секунддай коё бербей басып туруңуз."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> кызматына түзмөгүңүздү толугу менен көзөмөлдөөгө уруксат бересизби?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Эгер <xliff:g id="SERVICE">%1$s</xliff:g> күйгүзүлсө, түзмөгүңүз дайын-даректерди шифрлөөнү күчтөндүрүү үчүн экраныңыздын кулпусун пайдаланбайт."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Толук көзөмөл атайын мүмкүнчүлүктөрдү пайдаланууга керек, бирок калган көпчүлүк колдонмолорго кереги жок."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Экранды көрүп, көзөмөлдөө"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Кызмат экрандагы нерселерди окуп, материалды башка колдонмолордун үстүнөн көрсөтөт."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Аракеттерди көрүп, аткаруу"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Кызмат колдонмодо жасаган аракеттериңизге же түзмөктүн сенсорлоруна көз салып, сиздин атыңыздан буйруктарды берет."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Уруксат берүү"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Жок"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Функцияны колдонуп баштоо үчүн аны таптап коюңуз:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> өчүрүлдү"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Кыска жолдорду түзөтүү"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Жокко чыгаруу"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Бүттү"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Кыска жолду өчүрүү"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Кыска жолду колдонуу"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Түстү инверсиялоо"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Түсүн тууралоо"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Атайын мүмкүнчүлүктөр кыска жолу <xliff:g id="SERVICE_NAME">%1$s</xliff:g> кызматын күйгүздү"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Атайын мүмкүнчүлүктөр кыска жолу <xliff:g id="SERVICE_NAME">%1$s</xliff:g> кызматын өчүрдү"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> кызматын колдонуу үчүн үнүн чоңойтуп/кичирейтүү баскычтарын үч секунд коё бербей басып туруңуз"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Чоңойтуу"</string>
     <string name="user_switched" msgid="7249833311585228097">"Учурдагы колдонуучу <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> дегенге которулууда…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> файл</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> файл</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Түздөн-түз бөлүшүүгө болбойт"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Колдонмолордун тизмеси"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Бул колдонмонун жаздырууга уруксаты жок, бирок бул USB түзмөгү аркылуу аудиону жаздыра алат."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Башкы бет"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Атайын мүмкүнчүлүктөр менюсу"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосунун маалымат тилкеси."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ЧЕКТЕЛГЕН чакага коюлган"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Жазышуу"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Топтук маек"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Жеке"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Жумуш"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Жумуш колдонмолору менен бөлүшүүгө болбойт"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Жеке колдонмолор менен бөлүшүүгө болбойт"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Колдонмолор жок"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Жеке көрүнүш"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Жумуш көрүнүшү"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Бул мазмунду жумуш колдонмолору аркылуу бөлүшүүгө болбойт"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"IT администраторуңуз бул мазмунду жумуш профилиңиздеги колдонмолор аркылуу бөлүшүүгө тыюу салды"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Жумуш колдонмолору менен ачууга болбойт"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"IT администраторуңуз бул мазмунду жумуш профилиңиздеги колдонмолор менен ачууга тыюу салды"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Бул мазмунду жеке колдонмолор аркылуу бөлүшүүгө болбойт"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"IT администраторуңуз бул мазмунду жеке профилиңиздеги колдонмолор аркылуу бөлүшүүгө тыюу салды"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Жеке колдонмолор менен ачууга болбойт"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"IT администраторуңуз бул мазмунду жеке профилиңиздеги колдонмолор менен ачууга тыюу салды"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Жумуш профили тындырылган"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Күйгүзүү"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Жумуш колдонмолору бул мазмунду колдоого алышпайт"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Жумуш колдонмолору бул мазмунду ача алышпайт"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Жеке колдонмолор бул мазмунду колдоого алышпайт"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Жеке колдонмолор бул мазмунду ача алышпайт"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Телефон чалууларда жаздырып же аудиону ойнотуу"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Бул колдонмо демейки телефон катары дайындалганда ага чалууларды жаздырууга жана аудиону ойнотууга уруксат берет."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index 92ab1d3..046d92c 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ຈະ​ຖືກ​ລຶບ"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"ບໍ່ສາມາດໃຊ້ແອັບຜູ້ເບິ່ງແຍງລະບົບໄດ້. ອຸປະກອນຂອງທ່ານຈະຖືກລຶບຂໍ້ມູນໃນຕອນນີ້.\n\nຫາກທ່ານມີຄຳຖາມ, ໃຫ້ຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບອົງກອນຂອງທ່ານ."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"ການພິມຖືກປິດໄວ້ໂດຍ <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ແອັບສ່ວນຕົວຖືກລະງັບໄວ້ໂດຍຜູ້ເບິ່ງແຍງ"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ແຕະບ່ອນນີ້ເພື່ອກວດສອບການປະຕິບັດຕາມນະໂຍບາຍ."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"ຂ້າພະເຈົ້າ"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ໂຕເລືອກແທັບເລັດ"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"ຕົວເລືອກ Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"ໂຕເລືອກໂທລະສັບ"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"ລັອກໜ້າຈໍ"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"ປິດ"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"ສຸກເສີນ"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"ລາຍງານຂໍ້ຜິດພາດ"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"ສິ້ນສຸດເຊດຊັນ"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ຖ່າຍຮູບ ແລະວິດີໂອ"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"This app can take pictures and record videos using the camera at any time."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"ອະນຸຍາດໃຫ້ແອັບພລິເຄຊັນ ຫຼື ບໍລິການເຂົ້າເຖິງກ້ອງຂອງລະບົບໄດ້ເພື່ອຖ່າຍຮູບ ແລະ ວິດີໂອ"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"ສິດນີ້ | ແອັບລະບົບສາມາດຖ່າຍຮູບ ແລະ ບັນທຶກວິດີໂອໄດ້ໂດຍໃຊ້ກ້ອງຂອງລະບົບຕອນໃດກໍໄດ້. ຕ້ອງໃຊ້ສິດອະນຸຍາດ android.permission.CAMERA ໃຫ້ແອັບຖືນຳ"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"ອະນຸຍາດໃຫ້ແອັບພລິເຄຊັນ ຫຼື ບໍລິການຮັບການເອີ້ນກັບກ່ຽວກັບອຸປະກອນກ້ອງຖືກເປີດ ຫຼື ປິດໄດ້."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"ຄວບຄຸມການສັ່ນ"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"ອະນຸຍາດໃຫ້ແອັບຯຄວບຄຸມໂຕສັ່ນ."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງສະຖານະການສັ່ນໄດ້."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Allows the app to route its calls through the system in order to improve the calling experience."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ເຫັນ ແລະ ຄວບຄຸມການໂທຜ່ານລະບົບ."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"ອະນຸຍາດໃຫ້ແອັບເຫັນ ແລະ ຄວບຄຸມການໂທທີ່ກຳລັງດຳເນີນຢູ່ອຸປະກອນ. ນີ້ຮວມເຖິງຂໍ້ມູນ ເຊັ່ນ: ເບີໂທສຳລັບການໂທ ແລະ ສະຖານະຂອງການໂທນຳ."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ຍົກເວັ້ນຈາກການຈຳກັດການບັນທຶກສຽງ"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"ຍົກເວັ້ນແອັບຈາກການຈຳກັດເພື່ອບັນທຶກສຽງ."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"ສືບຕໍ່ການໂທຈາກແອັບອື່ນ"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"ອະນຸຍາດໃຫ້ແອັບສືບຕໍ່ການໂທເຊິ່ງອາດຖືກເລີ່ມຕົ້ນໃນແອັບອື່ນ."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ອ່ານເບີໂທລະສັບ"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"ລຶບ"</string>
     <string name="inputMethod" msgid="1784759500516314751">"ຮູບແບບການປ້ອນຂໍ້ມູນ"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"ການເຮັດວຽກຂອງຂໍ້ຄວາມ"</string>
-    <string name="email" msgid="2503484245190492693">"ອີເມວ"</string>
-    <string name="email_desc" msgid="8291893932252173537">"ສົ່ງອີເມວຫາທີ່ຢູ່ທີ່ເລືອກ"</string>
-    <string name="dial" msgid="4954567785798679706">"ໂທ"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"ໂທຫາເບີໂທລະສັບທີ່ເລືອກ"</string>
-    <string name="map" msgid="6865483125449986339">"ແຜນທີ່"</string>
-    <string name="map_desc" msgid="1068169741300922557">"ຊອກຫາທີ່ຢູ່ທີ່ເລືອກ"</string>
-    <string name="browse" msgid="8692753594669717779">"ເປີດ"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"ເປີດ URL ທີ່ເລືອກ"</string>
-    <string name="sms" msgid="3976991545867187342">"ຂໍ້ຄວາມ"</string>
-    <string name="sms_desc" msgid="997349906607675955">"ສົ່ງຂໍ້ຄວາມຫາເບີໂທລະສັບທີ່ເລືອກ"</string>
-    <string name="add_contact" msgid="7404694650594333573">"ເພີ່ມ"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"ເພີ່ມໃສ່ລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"ເບິ່ງ"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"ເບິ່ງເວລາທີ່ເລືອກໃນປະຕິທິນ"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"ກຳນົດເວລາ"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"ກຳນົດເວລາສຳລັບເວລາທີ່ເລືອກ"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ຕິດຕາມ"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"ຕິດຕາມຖ້ຽວບິນທີ່ເລືອກ"</string>
-    <string name="translate" msgid="1416909787202727524">"ແປພາສາ"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"ແປຂໍ້ຄວາມທີ່ເລືອກ"</string>
-    <string name="define" msgid="5214255850068764195">"ນິຍາມ"</string>
-    <string name="define_desc" msgid="6916651934713282645">"ນິຍາມຂໍ້ຄວາມທີ່ເລືອກໄວ້"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"ພື້ນທີ່ຈັດເກັບຂໍ້ມູນກຳລັງຈະເຕັມ"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"ການເຮັດວຽກບາງຢ່າງຂອງລະບົບບາງອາດຈະໃຊ້ບໍ່ໄດ້"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"​ບໍ່​ມີ​ບ່ອນ​ເກັບ​ຂໍ້​ມູນ​ພຽງ​ພໍ​ສຳ​ລັບ​ລະ​ບົບ. ກວດ​ສອບ​ໃຫ້​ແນ່​ໃຈ​ວ່າ​ທ່ານ​ມີ​ພື້ນ​ທີ່​ຫວ່າງ​ຢ່າງ​ໜ້ອຍ 250MB ​ແລ້ວລອງ​ໃໝ່."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"ເຄືອຂ່າຍມືຖືບໍ່ສາມາດເຂົ້າເຖິງອິນເຕີເນັດໄດ້"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"ເຄືອຂ່າຍບໍ່ສາມາດເຂົ້າເຖິງອິນເຕີເນັດໄດ້"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"ບໍ່ສາມາດເຂົ້າເຖິງເຊີບເວີ DNS ສ່ວນຕົວໄດ້"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"ເຊື່ອມຕໍ່ແລ້ວ"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> ມີການເຊື່ອມຕໍ່ທີ່ຈຳກັດ"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"ແຕະເພື່ອຢືນຢັນການເຊື່ອມຕໍ່"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"ສະຫຼັບໄປໃຊ້ <xliff:g id="NETWORK_TYPE">%1$s</xliff:g> ແລ້ວ"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ເພີ່ມ​ລະ​ດັບ​ສຽງ​ໃຫ້​ເກີນກວ່າ​ລະ​ດັບ​ທີ່​ແນະ​ນຳ​ບໍ?\n\n​ການ​ຮັບ​ຟັງ​ສຽງ​ໃນ​ລະ​ດັບ​ທີ່​ສູງ​ເປັນ​ໄລ​ຍະ​ເວ​ລາ​ດົນ​​ອາດ​ເຮັດ​ໃຫ້​ການ​ຟັງ​ຂອງ​ທ່ານ​ມີ​ບັນ​ຫາ​ໄດ້."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ໃຊ້ປຸ່ມລັດການຊ່ວຍເຂົ້າເຖິງບໍ?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"ເມື່ອເປີດໃຊ້ທາງລັດແລ້ວ, ການກົດປຸ່ມລະດັບສຽງທັງສອງຄ້າງໄວ້ 3 ວິນາທີຈະເປັນການເລີ່ມຄຸນສົມບັດການຊ່ວຍເຂົ້າເຖິງ."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"ອະນຸຍາດໃຫ້ <xliff:g id="SERVICE">%1$s</xliff:g> ຄວບຄຸມອຸປະກອນທ່ານໄດ້ເຕັມຮູບແບບບໍ?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"ຫາກ​ທ່ານ​ເປີດ​ໃຊ້ <xliff:g id="SERVICE">%1$s</xliff:g>, ​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ຈະ​ບໍ່​ໃຊ້​ການ​ລັອກ​ໜ້າ​ຈໍ​ຂອງ​ທ່ານ​ເພື່ອ​ເພີ່ມ​ການ​ເຂົ້າ​ລະ​ຫັດ​ຂໍ້​ມູນ."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"ການຄວບຄຸມແບບເຕັມຮູບແບບແມ່ນເໝາະສົມສຳລັບແອັບທີ່ຊ່ວຍທ່ານໃນດ້ານການຊ່ວຍເຂົ້າເຖິງ, ແຕ່ບໍ່ເໝາະສຳລັບທຸກແອັບ."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"ເບິ່ງ ແລະ ຄວບຄຸມໜ້າຈໍ"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"ມັນສາມາດອ່ານເນື້ອຫາທັງໝົດຢູ່ໜ້າຈໍ ແລະ ສະແດງເນື້ອຫາບັງແອັບອື່ນໄດ້."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"ເບິ່ງ ແລະ ດຳເນີນການ"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"ມັນສາມາດຕິດຕາມການໂຕ້ຕອບຂອງທ່ານກັບແອັບ ຫຼື ເຊັນເຊີຮາດແວໃດໜຶ່ງ ແລະ ໂຕ້ຕອບກັບແອັບໃນນາມຂອງທ່ານໄດ້."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"ອະນຸຍາດ"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"ປະຕິເສດ"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"ແຕະໃສ່ຄຸນສົມບັດໃດໜຶ່ງເພື່ອເລີ່ມການນຳໃຊ້ມັນ:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"ປິດ <xliff:g id="SERVICE_NAME">%s</xliff:g> ໄວ້ແລ້ວ"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ແກ້ໄຂທາງລັດ"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ຍົກເລີກ"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"ແລ້ວໆ"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ປິດປຸ່ມລັດ"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"ໃຊ້ປຸ່ມລັດ"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"ການປີ້ນສີ"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"ການແກ້ໄຂຄ່າສີ"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Accessibility Shortcut turned <xliff:g id="SERVICE_NAME">%1$s</xliff:g> on"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Accessibility Shortcut turned <xliff:g id="SERVICE_NAME">%1$s</xliff:g> off"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"ກົດປຸ່ມສຽງທັງສອງພ້ອມກັນຄ້າງໄວ້ສາມວິນາທີເພື່ອໃຊ້ <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"ການຂະຫຍາຍ"</string>
     <string name="user_switched" msgid="7249833311585228097">"ຜູ່ໃຊ້ປັດຈຸບັນ <xliff:g id="NAME">%1$s</xliff:g> ."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"ກຳ​ລັງ​ສະ​ລັບ​​ໄປ​ຫາ <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ໄຟລ໌</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> ໄຟລ໌</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"ບໍ່ສາມາດແບ່ງປັນໂດຍກົງໄດ້"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"ລາຍຊື່ແອັບ"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"ແອັບນີ້ບໍ່ໄດ້ຮັບສິດອະນຸຍາດໃນການບັນທຶກ ແຕ່ສາມາດບັນທຶກສຽງໄດ້ຜ່ານອຸປະກອນ USB ນີ້."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"ເຮືອນ"</string>
@@ -2031,31 +2066,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"​ເມ​ນູ​ການ​ຊ່ວຍ​ເຂົ້າ​ເຖິງ"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"ແຖບຄຳບັນຍາຍຂອງ <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ຖືກວາງໄວ້ໃນກະຕ່າ \"ຈຳກັດ\" ແລ້ວ"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"ການສົນທະນາ"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"ການສົນທະນາກຸ່ມ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ສ່ວນຕົວ"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ວຽກ"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"ມຸມມອງສ່ວນຕົວ"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"ມຸມມອງວຽກ"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ບໍ່ສາມາດແບ່ງປັນກັບແອັບວຽກໄດ້"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ບໍ່ສາມາດແບ່ງປັນກັບແອັບສ່ວນຕົວໄດ້"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ບໍ່ມີແອັບທີ່ສາມາດໃຊ້ໄດ້"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"ເປີດໃຊ້"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ບັນທຶກ ຫຼື ຫຼິ້ນສຽງໃນການໂທລະສັບ"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ອະນຸຍາດແອັບນີ້, ເມື່ອມອບໝາຍເປັນແອັບພລິເຄຊັນໂທລະສັບເລີ່ມຕົ້ນເພື່ອບັນທຶກ ຫຼື ຫຼິ້ນສຽງໃນການໂທລະສັບ."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 518bb18..7281793 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -204,8 +204,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Įrenginys bus ištrintas"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administratoriaus programos negalima naudoti. Dabar įrenginio duomenys bus ištrinti.\n\nJei turite klausimų, susisiekite su organizacijos administratoriumi."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Neleidžiama spausdinti (<xliff:g id="OWNER_APP">%s</xliff:g>)."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Administratorius laikinai sustabdė asmenines programas"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Palieskite čia, kad patikrintumėte, ar laikomasi politikos."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Aš"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Planšetinio kompiuterio parinktys"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"„Android TV“ parinktys"</string>
@@ -239,6 +245,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Telefono parinktys"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Ekrano užraktas"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Išjungiamas maitinimas"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Skambutis pagalbos numeriu"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Pranešimas apie riktą"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Baigti seansą"</string>
@@ -440,7 +450,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"fotografuoti ir filmuoti"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Ši programa gali bet kada fotografuoti ir įrašyti vaizdo įrašų naudodama fotoaparatą."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Suteikti programai arba paslaugai prieigą prie sistemos fotoaparatų, kad būtų galima daryti nuotraukas ir įrašyti vaizdo įrašus"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Ši privilegijuota | sistemos programa gali daryti nuotraukas ir įrašyti vaizdo įrašus naudodama sistemos fotoaparatą bet kuriuo metu. Programai taip pat būtinas leidimas „android.permission.CAMERA“"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Leisti programai ar paslaugai sulaukti atgalinio skambinimo, kai atidaromas ar uždaromas fotoaparatas."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"valdyti vibraciją"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Leidžiama programai valdyti vibravimą."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Programai leidžiama pasiekti vibratoriaus būseną."</string>
@@ -454,6 +468,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Programai leidžiama nukreipti jos skambučius per sistemą siekiant pagerinti skambinimo paslaugas."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"matyti ir valdyti skambučius per sistemą."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Programai leidžiama matyti ir valdyti vykstančius skambučius įrenginyje. Tai apima tokią informaciją kaip skambučių telefono numeriai ir skambučių būsena."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"netaikyti garso įrašymo apribojimų"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Netaikyti programai garso įrašymo apribojimų."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"tęsti skambutį naudojant kitą programą"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Programai leidžiama tęsti skambutį, kuris buvo pradėtas naudojant kitą programą."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"skaityti telefonų numerius"</string>
@@ -1139,28 +1155,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Ištrinti"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Įvesties būdas"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Teksto veiksmai"</string>
-    <string name="email" msgid="2503484245190492693">"Siųsti el. laišką"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Siųsti el. laišką pasirinktu adresu"</string>
-    <string name="dial" msgid="4954567785798679706">"Skambinti"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Skambinti pasirinktu telefono numeriu"</string>
-    <string name="map" msgid="6865483125449986339">"Žemėlapis"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Rasti vietą pasirinktu adresu"</string>
-    <string name="browse" msgid="8692753594669717779">"Atidaryti"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Atidaryti pasirinktą URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Rašyti pranešimą"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Siųsti pranešimą pasirinktu telefono numeriu"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Pridėti"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Pridėti prie kontaktų"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Peržiūrėti"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Peržiūrėti kalendoriuje pasirinktą laiką"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Tvarkaraštis"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Planuoti įvykį pasirinktam laikui"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Stebėti"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Stebėti pasirinktą skrydį"</string>
-    <string name="translate" msgid="1416909787202727524">"Versti"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Versti pasirinktą tekstą"</string>
-    <string name="define" msgid="5214255850068764195">"Apibrėžti"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Apibrėžti pasirinktą tekstą"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Mažėja laisvos saugyklos vietos"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Kai kurios sistemos funkcijos gali neveikti"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Sistemos saugykloje nepakanka vietos. Įsitikinkite, kad yra 250 MB laisvos vietos, ir paleiskite iš naujo."</string>
@@ -1299,7 +1293,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobiliojo ryšio tinkle nėra prieigos prie interneto"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Tinkle nėra prieigos prie interneto"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Privataus DNS serverio negalima pasiekti"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Prisijungta"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"„<xliff:g id="NETWORK_SSID">%1$s</xliff:g>“ ryšys apribotas"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Palieskite, jei vis tiek norite prisijungti"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Perjungta į tinklą <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1675,21 +1668,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Padidinti garsą daugiau nei rekomenduojamas lygis?\n\nIlgai klausydami dideliu garsu galite pažeisti klausą."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Naudoti spartųjį pritaikymo neįgaliesiems klavišą?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kai spartusis klavišas įjungtas, paspaudus abu garsumo mygtukus ir palaikius 3 sekundes bus įjungta pritaikymo neįgaliesiems funkcija."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Leisti „<xliff:g id="SERVICE">%1$s</xliff:g>“ valdyti visas įrenginio funkcijas?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Jei įjungsite „<xliff:g id="SERVICE">%1$s</xliff:g>“, įrenginyje nebus naudojamas ekrano užraktas siekiant patobulinti duomenų šifruotę."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Galimybę valdyti visas funkcijas patariama suteikti programoms, kurios padeda specialiųjų poreikių turintiems asmenims, bet ne daugumai programų."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ekrano peržiūra ir valdymas"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Naudojant šį ekrano valdiklį galima skaityti visą ekrane rodomą turinį ir rodyti turinį virš kitų programų."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Veiksmų peržiūra ir atlikimas"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Naudojant šią funkciją galima stebėti jūsų sąveiką su programa ar aparatinės įrangos jutikliu ir sąveikauti su programomis jūsų vardu."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Leisti"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Atmesti"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Norėdami naudoti funkciją, palieskite ją:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Paslauga „<xliff:g id="SERVICE_NAME">%s</xliff:g>“ išjungta"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Redaguoti sparčiuosius klavišus"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Atšaukti"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Atlikta"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Išjungti spartųjį klavišą"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Naudoti spartųjį klavišą"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Spalvų inversija"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Spalvų taisymas"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Pritaikymo neįgaliesiems sparčiuoju klavišu buvo įjungta „<xliff:g id="SERVICE_NAME">%1$s</xliff:g>“"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Pritaikymo neįgaliesiems sparčiuoju klavišu buvo išjungta „<xliff:g id="SERVICE_NAME">%1$s</xliff:g>“"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Jei norite naudoti „<xliff:g id="SERVICE_NAME">%1$s</xliff:g>“, paspauskite abu garsumo klavišus ir palaikykite tris sekundes"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Didinimas"</string>
     <string name="user_switched" msgid="7249833311585228097">"Dabartinis naudotojas: <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Perjungiama į <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2084,7 +2118,8 @@
       <item quantity="many">„<xliff:g id="FILE_NAME_2">%s</xliff:g>“ ir <xliff:g id="COUNT_3">%d</xliff:g> failo</item>
       <item quantity="other">„<xliff:g id="FILE_NAME_2">%s</xliff:g>“ ir <xliff:g id="COUNT_3">%d</xliff:g> failų</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Tiesioginio bendrinimo funkcija nepasiekiama"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Programų sąrašas"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Šiai programai nebuvo suteiktas leidimas įrašyti, bet ji gali užfiksuoti garsą per šį USB įrenginį."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Pagrindinis"</string>
@@ -2099,31 +2134,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Pritaikomumo meniu"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Programos „<xliff:g id="APP_NAME">%1$s</xliff:g>“ antraštės juosta."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"„<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>“ įkeltas į grupę APRIBOTA"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Pokalbis"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Grupės pokalbis"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Asmeninė"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Darbo"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Negalima bendrinti su darbo programomis"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Negalima bendrinti su asmeninėmis programomis"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nėra pasiekiamų programų"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Asmeninė peržiūra"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Darbo peržiūra"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Negalima bendrinti su darbo programomis"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"IT administratorius neleidžia bendrinti šio turinio naudojant programas jūsų darbo profilyje"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Negalima atidaryti naudojant darbo programas"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"IT administratorius neleidžia atidaryti šio turinio naudojant programas jūsų darbo profilyje"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Negalima bendrinti su asmeninėmis programomis"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"IT administratorius neleidžia bendrinti šio turinio naudojant programas jūsų asmeniniame profilyje"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Negalima atidaryti naudojant asmenines programas"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"IT administratorius neleidžia atidaryti šio turinio naudojant programas jūsų asmeniniame profilyje"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Darbo profilis pristabdytas"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Įjungti"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Jokios darbo programos nepalaiko šio turinio"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Jokiose darbo programose negalima atidaryti šio turinio"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Jokios asmeninės programos nepalaiko šio turinio"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Jokiose asmeninėse programose negalima atidaryti šio turinio"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Telefonų skambučių garso įrašo įrašymas arba leidimas"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Leidžiama šiai programai, esant prisijungus kaip numatytajai numerio rinkiklio programai, įrašyti ar leisti telefonų skambučių garso įrašą."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index afe8f9a..538749e 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -202,8 +202,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Jūsu ierīces dati tiks dzēsti"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administratora lietotni nevar izmantot. Ierīcē saglabātie dati tiks dzēsti.\n\nJa jums ir kādi jautājumi, sazinieties ar savas organizācijas administratoru."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Drukāšanu atspējoja <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Administrators apturēja privāto lietotņu darbību"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Pieskarieties šeit, lai noskaidrotu atbilstību politikai."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Man"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Planšetdatora opcijas"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV opcijas"</string>
@@ -237,6 +243,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Tālruņa opcijas"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Ekrāna bloķētājs"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Strāvas padeve ir izslēgta."</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Ārkārtas situācija"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Kļūdu ziņojums"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Beigt sesiju"</string>
@@ -437,7 +447,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"uzņemt attēlus un videoklipus"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Šī lietotne jebkurā brīdī var uzņemt attēlus un ierakstīt videoklipus, izmantojot kameru."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Atļauja lietojumprogrammai vai pakalpojumam piekļūt sistēmas kamerām, lai uzņemtu attēlus un videoklipus"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Šī privileģētā/sistēmas lietotne var jebkurā brīdī uzņemt attēlus un ierakstīt videoklipus, izmantojot sistēmas kamerus. Lietotnei nepieciešama arī atļauja android.permission.CAMERA."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Atļaut lietojumprogrammai vai pakalpojumam saņemt atzvanus par kameras ierīču atvēršanu vai aizvēršanu"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"kontrolēt vibrosignālu"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Ļauj lietotnei kontrolēt vibrosignālu."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Ļauj lietotnei piekļūt vibrosignāla statusam."</string>
@@ -451,6 +465,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Ļauj lietotnei maršrutēt tās zvanus sistēmā, lai uzlabotu zvanīšanas pieredzi."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"skatīt un kontrolēt zvanus sistēmā."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Ļauj lietotnei ierīcē skatīt un kontrolēt aktīvos zvanus. Šeit ir ietverta tāda informācija kā zvanu tālruņa numuri un zvanu statuss."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"atbrīvošana no audio ierakstīšanas ierobežojumiem"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Atbrīvot lietotni no audio ierakstīšanas ierobežojumiem."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"turpināt zvanu no citas lietotnes"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Ļauj lietotnei turpināt zvanu, kas tika sākts citā lietotnē."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"lasīt tālruņa numurus"</string>
@@ -1119,28 +1135,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Dzēst"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Ievades metode"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Teksta darbības"</string>
-    <string name="email" msgid="2503484245190492693">"E-pasts"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Nosūtīt e-pasta ziņojumu uz atlasīto adresi"</string>
-    <string name="dial" msgid="4954567785798679706">"Zvans"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Zvanīt uz atlasīto tālruņa numuru"</string>
-    <string name="map" msgid="6865483125449986339">"Karte"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Atrast atlasīto adresi"</string>
-    <string name="browse" msgid="8692753594669717779">"Atvērt"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Atvērt atlasīto URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Īsziņa"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Nosūtīt īsziņu uz atlasīto tālruņa numuru"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Pievienot"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Pievienot kontaktpersonām"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Skatīt"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Skatīt atlasīto laiku kalendārā"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Grafiks"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Ieplānot pasākumu konkrētā laikā"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Izsekot"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Izsekot atlasīto lidojumu"</string>
-    <string name="translate" msgid="1416909787202727524">"Tulkot"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Tulkot atlasīto tekstu"</string>
-    <string name="define" msgid="5214255850068764195">"Definēt"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definēt atlasīto tekstu"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Paliek maz brīvas vietas"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Dažas sistēmas funkcijas var nedarboties."</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Sistēmai pietrūkst vietas. Atbrīvojiet vismaz 250 MB vietas un restartējiet ierīci."</string>
@@ -1279,7 +1273,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobilajā tīklā nav piekļuves internetam."</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Tīklā nav piekļuves internetam."</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Nevar piekļūt privātam DNS serverim."</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Izveidots savienojums"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"Tīklā <xliff:g id="NETWORK_SSID">%1$s</xliff:g> ir ierobežota savienojamība"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Lai tik un tā izveidotu savienojumu, pieskarieties"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Pārslēdzās uz tīklu <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1653,21 +1646,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vai palielināt skaļumu virs ieteicamā līmeņa?\n\nIlgstoši klausoties skaņu lielā skaļumā, var tikt bojāta dzirde."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vai izmantot pieejamības saīsni?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kad īsinājumtaustiņš ir ieslēgts, nospiežot abas skaļuma pogas un 3 sekundes turot tās, tiks aktivizēta pieejamības funkcija."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Vai atļaut pakalpojumam <xliff:g id="SERVICE">%1$s</xliff:g> pilnībā kontrolēt jūsu ierīci?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Ja ieslēgsiet pakalpojumu <xliff:g id="SERVICE">%1$s</xliff:g>, ierīce neizmantos ekrāna bloķēšanu datu šifrēšanas uzlabošanai."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Pilnīga kontrole ir piemērota lietotnēm, kas nepieciešamas lietotājiem ar īpašām vajadzībām, taču ne lielākajai daļai lietotņu."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Skatīt un pārvaldīt ekrānu"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Tā var nolasīt visu ekrānā esošo saturu un attēlot saturu citām lietotnēm."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Darbību skatīšana un veikšana"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Tā var izsekot jūsu mijiedarbību ar lietotni vai aparatūras sensoru un mijiedarboties ar lietotnēm jūsu vārdā."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Atļaut"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Neatļaut"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Pieskarieties funkcijai, lai sāktu to izmantot"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Pakalpojums <xliff:g id="SERVICE_NAME">%s</xliff:g> ir izslēgts."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Rediģēt īsinājumtaustiņus"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Atcelt"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Gatavs"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Izslēgt saīsni"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Izmantot saīsni"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Krāsu inversija"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Krāsu korekcija"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Pieejamības saīsne aktivizēja lietotni <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Pieejamības saīsne deaktivizēja lietotni <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Lai izmantotu pakalpojumu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>, nospiediet abus skaļuma taustiņus un turiet tos trīs sekundes."</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Palielinājums"</string>
     <string name="user_switched" msgid="7249833311585228097">"Pašreizējais lietotājs: <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Notiek pāriešana uz: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -2050,7 +2084,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> un <xliff:g id="COUNT_3">%d</xliff:g> fails</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> un <xliff:g id="COUNT_3">%d</xliff:g> faili</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Tiešā kopīgošana nav pieejama"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Lietotņu saraksts"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Šai lietotnei nav piešķirta ierakstīšanas atļauja, taču tā varētu tvert audio, izmantojot šo USB ierīci."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Sākums"</string>
@@ -2065,31 +2100,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Pieejamības izvēlne"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Lietotnes <xliff:g id="APP_NAME">%1$s</xliff:g> subtitru josla."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Pakotne “<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>” ir ievietota ierobežotā kopā."</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Saruna"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Grupas saruna"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Privātais profils"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Darba profils"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nevar kopīgot ar darba lietotnēm"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nevar kopīgot ar personīgajām lietotnēm"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nav pieejamu lietotņu"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Personisks skats"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Darba skats"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Šo saturu nevar kopīgot, izmantojot darba lietotnes"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Jūsu IT administrators neatļauj kopīgot šo saturu, izmantojot jūsu darba profila lietotnes."</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Šo saturu nevar atvērt, izmantojot darba lietotnes"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Jūsu IT administrators neatļauj atvērt šo saturu, izmantojot jūsu darba profila lietotnes."</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Šo saturu nevar kopīgot, izmantojot personīgās lietotnes"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Jūsu IT administrators neatļauj kopīgot šo saturu, izmantojot jūsu personīgā profila lietotnes."</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Šo saturu nevar atvērt, izmantojot personīgās lietotnes"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Jūsu IT administrators neatļauj atvērt šo saturu, izmantojot jūsu personīgā profila lietotnes."</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Darba profila darbība ir apturēta."</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Ieslēgt"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Darba lietotnes nevar atbalstīt šo saturu."</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Šo saturu nevar atvērt darba lietotnēs."</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Personīgās lietotnes nevar atbalstīt šo saturu."</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Šo saturu nevar atvērt personīgajās lietotnēs."</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Ierakstīt vai atskaņot audio tālruņa sarunās"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Ļauj šai lietotnei ierakstīt vai atskaņot audio tālruņa sarunās, kad tā ir iestatīta kā noklusējuma tālruņa lietojumprogramma."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index 14979bd..e30c51c 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -21,9 +21,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="byteShort" msgid="202579285008794431">"Б"</string>
-    <string name="kilobyteShort" msgid="2214285521564195803">"КБ"</string>
-    <string name="megabyteShort" msgid="6649361267635823443">"МБ"</string>
-    <string name="gigabyteShort" msgid="7515809460261287991">"ГБ"</string>
+    <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string>
+    <string name="megabyteShort" msgid="6649361267635823443">"MB"</string>
+    <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string>
     <string name="terabyteShort" msgid="1822367128583886496">"ТБ"</string>
     <string name="petabyteShort" msgid="5651571254228534832">"ПБ"</string>
     <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string>
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Уредот ќе се избрише"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Апликацијата на администраторот не може да се користи. Уредот ќе се избрише сега.\n\nАко имате прашања, контактирајте со администраторот на организацијата."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Печатењето е оневозможено од <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Администраторот ги суспендирал личните апликации"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Допрете тука за да ја проверите усогласеноста со правилата."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Јас"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Опции на таблет"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Опции на Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Опции на телефон"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Заклучи екран"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Исклучи"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Итен случај"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Извештај за грешка"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Завршете ја сесијата"</string>
@@ -249,10 +259,8 @@
       <item quantity="one">Ќе се направи слика од екранот за извештајот за грешки за <xliff:g id="NUMBER_1">%d</xliff:g> секунда.</item>
       <item quantity="other">Ќе се направи слика од екранот за извештајот за грешки за <xliff:g id="NUMBER_1">%d</xliff:g> секунди.</item>
     </plurals>
-    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
-    <skip />
-    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
-    <skip />
+    <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"Се сними слика од екранот со извештај за грешка"</string>
+    <string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"Не успеа да се сними слика од екранот со извештај за грешка"</string>
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Тивок режим"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Звукот е исклучен"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"Звукот е вклучен"</string>
@@ -436,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"снимај слики и видеа"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Апликацијава може да фотографира и да снима видеа со камерата во секое време."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Дозволете апликацијата или услугата да пристапува до системските камери за да фотографира и да снима видеа"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Оваа привилегирана | системска апликација може да фотографира и да снима видеа со системската камера во секое време. Потребно е апликацијата да ја има и дозволата android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Дозволете апликацијатa или услугата да прима повратни повици за отворањето или затворањето на уредите со камера."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"контролирај вибрации"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Дозволува апликацијата да ги контролира вибрациите."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Ѝ дозволува на апликацијата да пристапи до состојбата на вибрации."</string>
@@ -450,13 +462,17 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Дозволете ѝ на апликацијата да ги пренасочи повиците преку системот за да го подобри искуството при јавувањето."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"гледање и контролирање повици преку системот."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Дозволува апликацијата да гледа и контролира тековни повици на уредот. Ова вклучува информации како телефонски броеви за повици и состојбата на повиците."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"изземање од ограничувања за снимање аудио"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Изземете ја апликацијата од ограничувања за снимање аудио."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"продолжување повик од друга апликација"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Овозможува апликацијата да продолжи повик започнат на друга апликација."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"да чита телефонски броеви"</string>
     <string name="permdesc_readPhoneNumbers" msgid="7368652482818338871">"Ѝ дозволува на апликацијата да пристапи до телефонските броеви на уредот."</string>
+    <string name="permlab_wakeLock" product="automotive" msgid="1904736682319375676">"оставете го екранот на автомобилот вклучен"</string>
     <string name="permlab_wakeLock" product="tablet" msgid="1527660973931694000">"спречи режим на штедење кај таблет"</string>
     <string name="permlab_wakeLock" product="tv" msgid="2856941418123343518">"го спречува вашиот уред Android TV да влезе во режим на мирување"</string>
     <string name="permlab_wakeLock" product="default" msgid="569409726861695115">"спречи телефон од режим на штедење"</string>
+    <string name="permdesc_wakeLock" product="automotive" msgid="5995045369683254571">"Дозволува апликацијата да го држи екранот на автомобилот вклучен."</string>
     <string name="permdesc_wakeLock" product="tablet" msgid="2441742939101526277">"Дозволува апликацијата да го спречи таблетот да не заспие."</string>
     <string name="permdesc_wakeLock" product="tv" msgid="2329298966735118796">"Дозволува апликацијата да го спречи вашиот уред Android TV да влезе во режим на мирување."</string>
     <string name="permdesc_wakeLock" product="default" msgid="3689523792074007163">"Дозволува апликацијата да го спречи телефонот да не заспие."</string>
@@ -1099,31 +1115,9 @@
     <string name="deleteText" msgid="4200807474529938112">"Избриши"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Метод на внес"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Дејства со текст"</string>
-    <string name="email" msgid="2503484245190492693">"Испрати е-пошта"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Испраќа е-порака на избраната адреса"</string>
-    <string name="dial" msgid="4954567785798679706">"Повикај"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Го повикува избраниот телефонски број"</string>
-    <string name="map" msgid="6865483125449986339">"Отвори карта"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Лоцирај ја избраната адреса"</string>
-    <string name="browse" msgid="8692753594669717779">"Отвори"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Ја отвора избраната URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Испрати порака"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Испраќа порака на избраниот телефонски број"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Додај"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Додава во контакти"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Прикажи"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Го гледа избраното време во календарот"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Закажи"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Закажува настан за избраното време"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Следи го"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Следи избран лет"</string>
-    <string name="translate" msgid="1416909787202727524">"Преведи"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Преведете го избраниот текст"</string>
-    <string name="define" msgid="5214255850068764195">"Дефинирај"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Дефинирајте го избраниот текст"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Капацитетот е речиси полн"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Некои системски функции може да не работат"</string>
-    <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Нема доволно меморија во системот. Проверете дали има слободен простор од 250 МБ и рестартирајте."</string>
+    <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Нема доволно меморија во системот. Проверете дали има слободен простор од 250 MB и рестартирајте."</string>
     <string name="app_running_notification_title" msgid="8985999749231486569">"<xliff:g id="APP_NAME">%1$s</xliff:g> работи"</string>
     <string name="app_running_notification_text" msgid="5120815883400228566">"Допрете за повеќе информации или за сопирање на апликацијата."</string>
     <string name="ok" msgid="2646370155170753815">"Во ред"</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Мобилната мрежа нема интернет-пристап"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Мрежата нема интернет-пристап"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Не може да се пристапи до приватниот DNS-сервер"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Поврзано"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> има ограничена поврзливост"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Допрете за да се поврзете и покрај тоа"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Префрлено на <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1633,15 +1626,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Да го зголемиме звукот над препорачаното ниво?\n\nСлушањето звуци со голема јачина подолги периоди може да ви го оштети сетилото за слух."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Да се користи кратенка за „Пристапност“?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Кога е вклучена кратенката, ако ги притиснете двете копчиња за јачина на звук во времетраење од 3 секунди, ќе се стартува функција за пристапност."</string>
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Дали дозволувате <xliff:g id="SERVICE">%1$s</xliff:g> да има целосна контрола врз вашиот уред?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Ако вклучите <xliff:g id="SERVICE">%1$s</xliff:g>, уредот нема да го користи заклучувањето на екранот за да го подобри шифрирањето на податоците."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Целосната контрола е соодветна за апликации што ви помагаат со потребите за пристапност, но не и за повеќето апликации."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Приказ и контрола на екранот"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Може да ги чита сите содржини на екранот и да прикажува содржини на други апликации."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Приказ и изведување дејства"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Може да ги следи вашите интеракции со апликациите или хардверскиот сензор и да комуницира со апликациите во ваше име."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Дозволи"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Одбиј"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Допрете на функција за да почнете да ја користите:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> е исклучена"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Изменете ги кратенките"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Откажи"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Готово"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Исклучи ја кратенката"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Користи кратенка"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Инверзија на бои"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Корекција на бои"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Кратенката за пристапност ја вклучи <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Кратенката за пристапност ја исклучи <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Притиснете ги и задржете ги двете копчиња за јачина на звукот во траење од три секунди за да користите <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Зголемување"</string>
     <string name="user_switched" msgid="7249833311585228097">"Тековен корисник <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Се префрла на <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -1855,8 +1895,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"Некатегоризирано"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"Ја поставивте важноста на известувањава."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"Ова е важно заради луѓето кои се вклучени."</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"Приспособено известување за апликација"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"Дозволувате <xliff:g id="APP">%1$s</xliff:g> да создаде нов корисник со <xliff:g id="ACCOUNT">%2$s</xliff:g>? (Веќе постои корисник со оваа сметка.)"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"Дозволувате <xliff:g id="APP">%1$s</xliff:g> да создаде нов корисник со <xliff:g id="ACCOUNT">%2$s</xliff:g>?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"Додај јазик"</string>
@@ -2013,7 +2052,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> датотека</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> датотеки</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Не е достапно директно споделување"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Список со апликации"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"На апликацијава не ѝ е доделена дозвола за снимање, но може да снима аудио преку овој USB-уред."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Почеток"</string>
@@ -2028,16 +2068,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Мени за пристапност"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Насловна лента на <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> е ставен во корпата ОГРАНИЧЕНИ"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Разговор"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Групен разговор"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Лични"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Службени"</string>
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Не може да се споделува со работни апликации"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Не може да се споделува со лични апликации"</string>
-    <string name="resolver_cant_share_cross_profile_explanation" msgid="3536237105241882679">"Вашиот администратор за ИТ го блокирал споделувањето помеѓу лични и работни апликации"</string>
-    <string name="resolver_turn_on_work_apps" msgid="8987359079870455469">"Вклучете работни апликации"</string>
-    <string name="resolver_turn_on_work_apps_explanation" msgid="6322467455509618928">"Вклучете работни апликации за да пристапувате до работни апликации и контакти"</string>
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Нема достапни апликации"</string>
-    <string name="resolver_no_apps_available_explanation" msgid="4662694431121196560">"Не можевме да најдеме ниедна апликација"</string>
-    <string name="resolver_switch_on_work" msgid="8294542702883688533">"Промени на работен"</string>
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Личен приказ"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Работен приказ"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Ова не може да се споделува со работни апликации"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Вашиот IT-администратор не ви дозволува да ги споделувате овие содржини со апликации од вашиот работен профил"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Ова не може да се отвора со работни апликации"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Вашиот IT-администратор не ви дозволува да ги отворате овие содржини со апликации од вашиот работен профил"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Ова не може да се споделува со лични апликации"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Вашиот IT-администратор не ви дозволува да ги споделувате овие содржини со апликации од вашиот личен профил"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Ова не може да се отвора со лични апликации"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Вашиот IT-администратор не ви дозволува да ги отворате овие содржини со апликации од вашиот личен профил"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Работниот профил е паузиран"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Вклучи"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Нема работни апликации што може да ги поддржат овие содржини"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Нема работни апликации што може да ги отворат овие содржини"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Нема лични апликации што може да ги поддржат овие содржини"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Нема лични апликации што може да ги отворат овие содржини"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Снимајте или пуштајте аудио во телефонски повици"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Дозволува апликацијава да снима или да пушта аудио во телефонски повици кога е назначена како стандардна апликација за бирање."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index 8bf137f..cf4583c 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"നിങ്ങളുടെ ഉപകരണം മായ്‌ക്കും"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"അഡ്‌മിൻ ആപ്പ് ഉപയോഗിക്കാനാകില്ല. നിങ്ങളുടെ ഉപകരണം ഇപ്പോൾ മായ്ക്കപ്പെടും.\n\nനിങ്ങൾക്ക് ചോദ്യങ്ങൾ ഉണ്ടെങ്കിൽ, നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ അഡ്‌മിനെ ബന്ധപ്പെടുക."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> പ്രിന്റിംഗ് പ്രവർത്തനരഹിതമാക്കി."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"വ്യക്തഗത ആപ്പുകൾ ഒരു അഡ്‌മിൻ താൽക്കാലികമായി റദ്ദാക്കിയിരിക്കുന്നു"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"നയത്തിന് അനുസൃതമാണോ എന്ന് പരിശോധിക്കാൻ ഇവിടെ ടാപ്പ് ചെയ്യുക."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"ഞാന്‍"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ടാബ്‌ലെറ്റ് ഓപ്‌ഷനുകൾ"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android ടിവി ഓപ്‌ഷനുകൾ"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"ഫോൺ ഓപ്‌ഷനുകൾ"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"സ്‌ക്രീൻ ലോക്ക്"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"പവർ ഓഫാക്കുക"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"അടിയന്തിരാവശ്യം"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"ബഗ് റിപ്പോർട്ട്"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"സെഷൻ അവസാനിപ്പിക്കുക"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ചിത്രങ്ങളും വീഡിയോകളും എടുക്കുക"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"ഏതുസമയത്തും ക്യാമറ ഉപയോഗിച്ചുകൊണ്ട് ചിത്രങ്ങൾ എടുക്കാനും വീഡിയോകൾ റെക്കോർഡുചെയ്യാനും ഈ ആപ്പിന് കഴിയും."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"ചിത്രങ്ങളും വീഡിയോകളും എടുക്കാൻ, സിസ്‌റ്റം ക്യാമറ ആക്‌സസ് ചെയ്യുന്നതിന് ആപ്പിനെയോ സേവനത്തെയോ അനുവദിക്കുക"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"സിസ്‌റ്റം ക്യാമറ ഉപയോഗിച്ച് ഏത് സമയത്തും ചിത്രങ്ങളെടുക്കാനും വീഡിയോകൾ റെക്കോർഡ് ചെയ്യാനും ഈ വിശേഷാധികാര | സിസ്‌റ്റം ആപ്പിന് കഴിയും. ആപ്പിലും android.permission.CAMERA അനുമതി ഉണ്ടായിരിക്കണം"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"ക്യാമറയുള്ള ഉപകരണങ്ങൾ ഓണാക്കുന്നതിനെയോ അടയ്ക്കുന്നതിനെയോ കുറിച്ചുള്ള കോൾബാക്കുകൾ സ്വീകരിക്കാൻ ആപ്പിനെയോ സേവനത്തെയോ അനുവദിക്കുക."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"ക്യാമറയുള്ള ഏതെങ്കിലും ഉപകരണം ഓണാക്കുമ്പോഴോ (ആപ്പ് മുഖേന) അടയ്ക്കുമ്പോഴോ ഈ ആപ്പിന് കോൾബാക്കുകൾ സ്വീകരിക്കാനാവും."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"വൈബ്രേറ്റുചെയ്യൽ നിയന്ത്രിക്കുക"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"വൈബ്രേറ്റർ നിയന്ത്രിക്കുന്നതിന് അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"വൈബ്രേറ്റ് ചെയ്യൽ ആക്‌സസ് ചെയ്യാൻ ആപ്പിനെ അനുവദിക്കുന്നു."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"കോളിംഗ് അനുഭവം ‌മെച്ചപ്പെടുത്തുന്നതിനായി തങ്ങളുടെ ‌കോളുകൾ സിസ്റ്റത്തിലേയ്ക്ക് വഴിതിരിച്ചുവിടാൻ ആപ്പുകളെ അനുവദിക്കുന്നു."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"സിസ്‌റ്റത്തിലൂടെ കോളുകൾ കാണുകയും നിയന്ത്രിക്കുകയും ചെയ്യുക."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"ഉപകരണത്തിൽ നിലവിലുള്ള കോളുകൾ കാണാനും നിയന്തിക്കാനും ആപ്പിനെ അനുവദിക്കുന്നു. കോളുകൾക്കുള്ള നമ്പറുകളും അവയുടെ നിലയും പോലെയുള്ള വിവരങ്ങൾ ഇതിൽ ഉൾപ്പെടുന്നു."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ഓഡിയോ റെക്കോർഡ് ചെയ്യുന്നതിനുള്ള നിയന്ത്രണങ്ങളിൽ നിന്ന് ഒഴിവാക്കുക"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"ഓഡിയോ റെക്കോർഡ് ചെയ്യുന്നതിനുള്ള നിയന്ത്രണങ്ങളിൽ നിന്ന് ആപ്പിനെ ഒഴിവാക്കുക."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"മറ്റൊരു ആപ്പിൽ നിന്നുള്ള കോൾ തുടരുക"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"മറ്റൊരു ആപ്പിൽ ആരംഭിച്ച കോൾ തുടരാൻ ആപ്പിനെ അനുവദിക്കുന്നു."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ഫോൺ നമ്പറുകൾ റീഡുചെയ്യൽ"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"ഇല്ലാതാക്കുക"</string>
     <string name="inputMethod" msgid="1784759500516314751">"ടൈപ്പുചെയ്യൽ രീതി"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"ടെക്‌സ്‌റ്റ് പ്രവർത്തനങ്ങൾ"</string>
-    <string name="email" msgid="2503484245190492693">"ഇമെയിൽ അയയ്ക്കൂക"</string>
-    <string name="email_desc" msgid="8291893932252173537">"തിരഞ്ഞെടുത്ത വിലാസത്തിലേക്ക് ഇമെയിൽ അയയ്ക്കുക"</string>
-    <string name="dial" msgid="4954567785798679706">"വിളിക്കുക"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"തിരഞ്ഞെടുത്ത നമ്പറിലേക്ക് വിളിക്കുക"</string>
-    <string name="map" msgid="6865483125449986339">"മാപ്പ് തുറക്കുക"</string>
-    <string name="map_desc" msgid="1068169741300922557">"തിരഞ്ഞെടുത്ത വിലാസം കണ്ടെത്തുക"</string>
-    <string name="browse" msgid="8692753594669717779">"തുറക്കുക"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"തിരഞ്ഞെടുത്ത URL തുറക്കുക"</string>
-    <string name="sms" msgid="3976991545867187342">"സന്ദേശം അയയ്ക്കുക"</string>
-    <string name="sms_desc" msgid="997349906607675955">"തിരഞ്ഞെടുത്ത നമ്പറിലേക്ക് സന്ദേശം അയയ്ക്കുക"</string>
-    <string name="add_contact" msgid="7404694650594333573">"ചേർക്കുക"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"കോൺടാക്‌റ്റുകളിലേക്ക് ചേർക്കുക"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"കാണുക"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"കലണ്ടറിൽ തിരഞ്ഞെടുത്ത സമയം കാണുക"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"ഷെഡ്യൂള്‍‌ ചെയ്യുക"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"തിരഞ്ഞെടുത്ത സമയത്തേക്ക് ഇവന്റ് ഷെഡ്യൂൾ ചെയ്യുക"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ട്രാക്ക് ചെയ്യുക"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"തിരഞ്ഞെടുത്ത ഫ്ലൈറ്റ് ട്രാക്ക് ചെയ്യുക"</string>
-    <string name="translate" msgid="1416909787202727524">"വിവർത്തനം ചെയ്യുക"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"തിരഞ്ഞെടുത്ത ടെക്‌സ്‌റ്റ് വിവർത്തനം ചെയ്യുക"</string>
-    <string name="define" msgid="5214255850068764195">"നിർവചിക്കുക"</string>
-    <string name="define_desc" msgid="6916651934713282645">"തിരഞ്ഞെടുത്ത ടെക്‌സ്‌റ്റ് നിർവചിക്കുക"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"സംഭരണയിടം കഴിഞ്ഞു"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"ചില സിസ്റ്റം പ്രവർത്തനങ്ങൾ പ്രവർത്തിക്കണമെന്നില്ല."</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"സിസ്‌റ്റത്തിനായി മതിയായ സംഭരണമില്ല. 250MB സൗജന്യ സംഭരണമുണ്ടെന്ന് ഉറപ്പുവരുത്തി പുനരാരംഭിക്കുക."</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"മൊബെെൽ നെറ്റ്‌വർക്കിന് ഇന്റർനെറ്റ് ആക്‌സസ് ഇല്ല"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"നെറ്റ്‌വർക്കിന് ഇന്റർനെറ്റ് ആക്‌സസ് ഇല്ല"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"സ്വകാര്യ DNS സെർവർ ആക്‌സസ് ചെയ്യാനാവില്ല"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"കണക്‌റ്റ് ചെയ്‌തു"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> എന്നതിന് പരിമിതമായ കണക്റ്റിവിറ്റി ഉണ്ട്"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"ഏതുവിധേനയും കണക്‌റ്റ് ചെയ്യാൻ ടാപ്പ് ചെയ്യുക"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> എന്നതിലേക്ക് മാറി"</string>
@@ -1631,21 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"മുകളിൽക്കൊടുത്തിരിക്കുന്ന ശുപാർശചെയ്‌ത ലെവലിലേക്ക് വോളിയം വർദ്ധിപ്പിക്കണോ?\n\nഉയർന്ന വോളിയത്തിൽ ദീർഘനേരം കേൾക്കുന്നത് നിങ്ങളുടെ ശ്രവണ ശേഷിയെ ദോഷകരമായി ബാധിക്കാം."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ഉപയോഗസഹായി കുറുക്കുവഴി ഉപയോഗിക്കണോ?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"കുറുക്കുവഴി ഓണായിരിക്കുമ്പോൾ, രണ്ട് വോളിയം ബട്ടണുകളും 3 സെക്കൻഡ് നേരത്തേക്ക് അമർത്തുന്നത് ഉപയോഗസഹായി ഫീച്ചർ ആരംഭിക്കും."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> എന്നതിന് നിങ്ങളുടെ ഉപകരണത്തിന്മേൽ പൂർണ്ണ നിയന്ത്രണം അനുവദിക്കണോ?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g> ഓണാക്കിയെങ്കിൽ, ഡാറ്റ എൻക്രിപ്‌ഷൻ മെച്ചപ്പെടുത്താൻ ഉപകരണം നിങ്ങളുടെ സ്‌ക്രീൻ ലോക്ക് ഉപയോഗിക്കില്ല."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"ഉപയോഗസഹായി ആവശ്യങ്ങൾക്കായി നിങ്ങളെ സഹായിക്കുന്ന ആപ്പുകൾക്ക് പൂർണ്ണ നിയന്ത്രണം അനുയോജ്യമാണെങ്കിലും മിക്ക ആപ്പുകൾക്കും അനുയോജ്യമല്ല."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"സ്‌ക്രീൻ കാണുക, നിയന്ത്രിക്കുക"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"ഇതിന് സ്‌ക്രീനിലെ എല്ലാ ഉള്ളടക്കവും വായിക്കാനും മറ്റ് ആപ്പുകളിൽ ഉള്ളടക്കം പ്രദർശിപ്പിക്കാനുമാവും."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"കാണുക, പ്രവർത്തനങ്ങൾ നിർവഹിക്കുക"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"ഇതിന് ഒരു ആപ്പുമായോ ഹാർഡ്‌വെയർ സെൻസറുമായോ ഉള്ള നിങ്ങളുടെ ആശയവിനിമയങ്ങൾ ട്രാക്ക് ചെയ്യാനും നിങ്ങളുടെ പേരിൽ ആശയവിനിമയം നടത്താനും കഴിയും."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"അനുവദിക്കൂ"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"നിരസിക്കുക"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"ഇത് ഉപയോഗിക്കാൻ ആരംഭിക്കുന്നതിന് ഫീച്ചർ ടാപ്പ് ചെയ്യുക:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> ഓഫാക്കിയിരിക്കുന്നു"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"കുറുക്കുവഴികൾ തിരുത്തുക"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"റദ്ദാക്കുക"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"പൂർത്തിയാക്കി"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"കുറുക്കുവഴി ‌ഓഫാക്കുക"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"കുറുക്കുവഴി ഉപയോഗിക്കുക"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"വർണ്ണ വിപര്യയം"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"വർണ്ണം ക്രമീകരിക്കൽ"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"ഉപയോഗസഹായിക്കുള്ള കുറുക്കുവഴി <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ഓൺ ചെയ്തിരിക്കുന്നു"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"ഉപയോഗസഹായിക്കുള്ള കുറുക്കുവഴി <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ഓഫ് ചെയ്തിരിക്കുന്നു"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> ഉപയോഗിക്കാൻ, രണ്ട് വോളിയം കീകളും മൂന്ന് സെക്കൻഡ് അമർത്തിപ്പിടിക്കുക"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"മാഗ്നിഫിക്കേഷൻ"</string>
     <string name="user_switched" msgid="7249833311585228097">"നിലവിലെ ഉപയോക്താവ് <xliff:g id="NAME">%1$s</xliff:g> ആണ്."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> എന്ന ഉപയോക്താവിലേക്ക് മാറുന്നു…"</string>
@@ -1859,8 +1892,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"വർഗ്ഗീകരിച്ചിട്ടില്ലാത്ത"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ഈ അറിയിപ്പുകളുടെ പ്രാധാന്യം നിങ്ങൾ സജ്ജീകരിച്ചു."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ഉൾപ്പെട്ടിട്ടുള്ള ആളുകളെ കണക്കിലെടുക്കുമ്പോള്‍ ഇത് പ്രധാനപ്പെട്ടതാണ്‌."</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"ഇഷ്ടാനുസൃത ആപ്പ് അറിയിപ്പുകൾ"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g> എന്ന അക്കൗണ്ട് (ഈ അക്കൗണ്ട് ഉപയോഗിക്കുന്ന ഒരു ഉപയോക്താവ് നിലവിലുണ്ട്) ഉപയോഗിച്ച് പുതിയ ഉപയോക്താവിനെ സൃഷ്‌ടിക്കാൻ <xliff:g id="APP">%1$s</xliff:g> എന്നതിനെ അനുവദിക്കണോ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> എന്ന അക്കൗണ്ട് ഉപയോഗിച്ച് പുതിയ ഉപയോക്താവിനെ സൃഷ്‌ടിക്കാൻ <xliff:g id="APP">%1$s</xliff:g> എന്നതിനെ അനുവദിക്കണോ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ഒരു ഭാഷ ചേർക്കുക"</string>
@@ -2017,7 +2049,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ഫയലുകൾ</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> ഫയൽ</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"നേരിട്ടുള്ള പങ്കിടൽ ലഭ്യമല്ല"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"ആപ്പുകളുടെ ലിസ്‌റ്റ്"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"ഈ ആപ്പിന് റെക്കോർഡ് അനുമതി നൽകിയിട്ടില്ല, എന്നാൽ ഈ USB ഉപകരണത്തിലൂടെ ഓഡിയോ ക്യാപ്‌ചർ ചെയ്യാനാവും."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"ഹോം"</string>
@@ -2032,31 +2065,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ഉപയോഗസഹായി മെനു"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> എന്നതിന്റെ അടിക്കുറിപ്പ് ബാർ."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> നിയന്ത്രിത ബക്കറ്റിലേക്ക് നീക്കി"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"സംഭാഷണം"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"ഗ്രൂപ്പ് സംഭാഷണം"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"വ്യക്തിപരമായത്"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ജോലിസ്ഥലം"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ഔദ്യോഗിക ആപ്പുകൾ ഉപയോഗിച്ച് പങ്കിടാനാവില്ല"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"വ്യക്തിപരമാക്കിയ ആപ്പുകൾ ഉപയോഗിച്ച് പങ്കിടാനാവില്ല"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ആപ്പുകളൊന്നും ലഭ്യമല്ല"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"വ്യക്തിപര കാഴ്‌ച"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"ഔദ്യോഗിക കാഴ്‌ച"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"ഔദ്യോഗിക ആപ്പുകൾ ഉപയോഗിച്ച് ഇത് പങ്കിടാനാവില്ല"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫെെലിലെ ആപ്പുകൾ ഉപയോഗിച്ച് ഈ ഉള്ളടക്കം പങ്കിടാൻ ഐടി അഡ്‌മിൻ അനുവദിക്കുന്നില്ല"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"ഔദ്യോഗിക ആപ്പുകൾ ഉപയോഗിച്ച് ഇത് തുറക്കാനാവില്ല"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫെെലിലെ ആപ്പുകൾ ഉപയോഗിച്ച് ഈ ഉള്ളടക്കം തുറക്കാൻ ഐടി അഡ്‌മിൻ അനുവദിക്കുന്നില്ല"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"വ്യക്തിപര ആപ്പുകൾ ഉപയോഗിച്ച് ഇത് പങ്കിടാനാവില്ല"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"നിങ്ങളുടെ വ്യക്തിപര പ്രൊഫെെലിലെ ആപ്പുകൾ ഉപയോഗിച്ച് ഈ ഉള്ളടക്കം പങ്കിടാൻ ഐടി അഡ്‌മിൻ അനുവദിക്കുന്നില്ല"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"വ്യക്തിപര ആപ്പുകൾ ഉപയോഗിച്ച് ഇത് തുറക്കാനാവില്ല"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"നിങ്ങളുടെ വ്യക്തിപര പ്രൊഫെെലിലെ ആപ്പുകൾ ഉപയോഗിച്ച് ഈ ഉള്ളടക്കം തുറക്കാൻ ഐടി അഡ്‌മിൻ അനുവദിക്കുന്നില്ല"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"ഔദ്യോഗിക പ്രൊഫൈൽ തൽക്കാലം നിർത്തിയിരിക്കുന്നു"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"ഓണാക്കുക"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"ഔദ്യോഗിക ആപ്പുകൾക്കൊന്നും ഈ ഉള്ളടക്കത്തെ പിന്തുണയ്‌ക്കാനാവില്ല"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"ഔദ്യോഗിക ആപ്പുകൾക്കൊന്നും ഈ ഉള്ളടക്കം തുറക്കാനാവില്ല"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"വ്യക്തിപര ആപ്പുകൾക്കൊന്നും ഈ ഉള്ളടക്കത്തെ പിന്തുണയ്‌ക്കാനാവില്ല"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"വ്യക്തിപര ആപ്പുകൾക്കൊന്നും ഈ ഉള്ളടക്കം തുറക്കാനാവില്ല"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ടെലിഫോൺ കോളുകൾ ചെയ്യുമ്പോൾ റെക്കോർഡ് ചെയ്യുക അല്ലെങ്കിൽ ഓഡിയോ പ്ലേ ചെയ്യുക"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ഡിഫോൾട്ട് ഡയലർ ആപ്പായി അസെെൻ ചെയ്യുന്ന സമയത്ത്, ടെലിഫോൺ കോളുകൾ ചെയ്യുമ്പോൾ റെക്കോർഡ് ചെയ്യാൻ അല്ലെങ്കിൽ ഓഡിയോ പ്ലേ ചെയ്യാൻ ഈ ആപ്പിനെ അനുവദിക്കുന്നു."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index 4054a3a..e9f27ff 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Таны төхөөрөмж устах болно."</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Админ аппыг ашиглах боломжгүй. Таны төхөөрөмжийг одоо устгана.\n\nХэрэв танд асуулт байгаа бол байгууллагынхаа админтай холбогдоно уу."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> хэвлэх үйлдлийг идэвхгүй болгосон."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Хувийн аппуудыг админ түр хаасан байна"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Удирдамжийн нийцлийг шалгахын тулд энд товшино уу."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Би"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Таблетын сонголтууд"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android ТВ-н сонголт"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Утасны сонголтууд"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Дэлгэцний түгжээ"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Унтраах"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Яаралтай тусламж"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Алдаа мэдээлэх"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Гаргах харилцан үйлдэл"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"зураг авах болон видео бичих"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Энэ апп ямар ч үед камер ашиглан зураг авж, видео хийх боломжтой."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Видео болон зураг авахын тулд апп эсвэл үйлчилгээнд хандахыг системийн камерт зөвшөөрөх"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Энэ хамгаалагдсан | системийн апп нь системийн камер ашиглан ямар ч үед зураг авж, видео бичих боломжтой. Аппыг ашиглахын тулд android.permission.CAMERA-н зөвшөөрөл мөн шаардлагатай"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Аппликэйшн эсвэл үйлчилгээнд камерын төхөөрөмжүүдийг нээж эсвэл хааж байгаа тухай залгасан дуудлага хүлээн авахыг зөвшөөрөх."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"Энэ апп нь дурын камерын төхөөрөмжийг нээх (ямар аппликэйшнээр болох) эсвэл хаах үед буцааж залгасан дуудлага хүлээн авах боломжтой."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"чичиргээг удирдах"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Апп нь чичиргээг удирдах боломжтой."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Аппыг чичиргээний төлөвт хандахыг зөвшөөрдөг."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Дуудлагыг сайжруулахын тулд дуудлагаа системээр дамжуулах зөвшөөрлийг апп-д олгодог."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"систем дэх дуудлагыг харах болон хянах."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Аппад төхөөрөмж дээр хийж буй дуудлагыг харах болон хянахыг зөвшөөрдөг. Үүнд дуудлагын дугаар болон дуудлагын төлөв зэрэг мэдээллийг агуулдаг."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"аудио бичих хязгаарлалтаас гаргах"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Аудио бичихийн тулд аппыг хязгаарлалтаас гаргана уу."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"дуудлагыг өөр аппаас үргэлжлүүлэх"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Аппад өөр аппад эхлүүлсэн дуудлагыг үргэлжлүүлэхийг зөвшөөрдөг."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"утасны дугаарыг унших"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Устгах"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Оруулах арга"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Текст үйлдэл"</string>
-    <string name="email" msgid="2503484245190492693">"Имэйл бичих"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Сонгосон хаяг руу имэйл илгээх"</string>
-    <string name="dial" msgid="4954567785798679706">"Залгах"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Сонгосон утасны дугаар руу залгах"</string>
-    <string name="map" msgid="6865483125449986339">"Газрын зураг хийх"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Сонгосон хаягийг байршуулах"</string>
-    <string name="browse" msgid="8692753594669717779">"Нээх"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Сонгосон URL-г нээх"</string>
-    <string name="sms" msgid="3976991545867187342">"Зурвас бичих"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Сонгосон утасны дугаар руу мессеж илгээх"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Нэмэх"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Харилцагчид нэмэх"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Үзэх"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Календариас сонгосон огноог харах"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Хуваарь гаргах"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Aрга хэмжээг сонгосон цагт хуваарилах"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Хянах"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Сонгосон нислэгийг хянах"</string>
-    <string name="translate" msgid="1416909787202727524">"Орчуулах"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Сонгосон текстийг орчуулах"</string>
-    <string name="define" msgid="5214255850068764195">"Тодорхойлох"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Сонгосон текстийг тодорхойлох"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Сангийн хэмжээ дутагдаж байна"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Зарим систем функц ажиллахгүй байна"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Системд хангалттай сан байхгүй байна. 250MБ чөлөөтэй зай байгаа эсэхийг шалгаад дахин эхлүүлнэ үү."</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Мобайл сүлжээнд интернэт хандалт байхгүй байна"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Сүлжээнд интернэт хандалт байхгүй байна"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Хувийн DNS серверт хандах боломжгүй байна"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Холбогдсон"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> зарим үйлчилгээнд хандах боломжгүй байна"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Ямар ч тохиолдолд холбогдохын тулд товших"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> руу шилжүүлсэн"</string>
@@ -1631,18 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Дууг санал болгосноос чанга болгож өсгөх үү?\n\nУрт хугацаанд чанга хөгжим сонсох нь таны сонсголыг муутгаж болно."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Хүртээмжийн товчлолыг ашиглах уу?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Товчлол асаалттай үед дууны түвшний хоёр товчлуурыг хамтад нь 3 секунд дарснаар хандалтын онцлогийг эхлүүлнэ."</string>
-    <string name="accessibility_select_shortcut_menu_title" msgid="7310194076629867377">"Ашиглахыг хүсэж буй хандалтын аппаа товших"</string>
-    <string name="accessibility_edit_shortcut_menu_button_title" msgid="6096484087245145325">"Хандалтын товчлуурын тусламжтай ашиглахыг хүсэж буй аппуудаа сонгох"</string>
-    <string name="accessibility_edit_shortcut_menu_volume_title" msgid="4849108668454490699">"Дууны түвшин тохируулах түлхүүрийн товчлолын тусламжтай ашиглахыг хүсэж буй аппуудаа сонгох"</string>
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g>-д таны төхөөрөмжийг бүрэн хянахыг зөвшөөрөх үү?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Хэрэв та <xliff:g id="SERVICE">%1$s</xliff:g>-г асаавал таны төхөөрөмж өгөгдлийн шифрлэлтийг сайжруулахын тулд таны дэлгэцийн түгжээг ашиглахгүй."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Бүрэн хянах нь таны хандалтын үйлчилгээний шаардлагад тусалдаг аппуудад тохиромжтой боловч ихэнх аппад тохиромжгүй байдаг."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Харах болон хянах дэлгэц"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Энэ нь дэлгэц дээрх бүх контентыг унших болон контентыг бусад аппад харуулах боломжтой."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Үйлдлийг харах болон гүйцэтгэх"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Энэ нь таны апп болон техник хангамжийн мэдрэгчтэй хийх харилцан үйлдлийг хянах болон таны өмнөөс апптай харилцан үйлдэл хийх боломжтой."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Зөвшөөрөх"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Татгалзах"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Үүнийг ашиглаж эхлэхийн тулд онцлог дээр товшино уу:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g>-г унтраалаа"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Товчлолуудыг засах"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Болих"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Болсон"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Товчлолыг унтраах"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Товчлол ашиглах"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Өнгө хувиргалт"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Өнгөний засвар"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Хүртээмжийн товчлол <xliff:g id="SERVICE_NAME">%1$s</xliff:g>-г асаасан"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Хүртээмжийн товчлол <xliff:g id="SERVICE_NAME">%1$s</xliff:g>-г унтраасан"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g>-г ашиглахын тулд дууны түвшнийг ихэсгэх, багасгах түлхүүрийг 3 секундийн турш зэрэг дарна уу"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Томруулах"</string>
     <string name="user_switched" msgid="7249833311585228097">"Одоогийн хэрэглэгч <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> руу сэлгэж байна…"</string>
@@ -2013,7 +2049,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> файл</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> файл</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Шууд хуваалцах боломжгүй"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Аппын жагсаалт"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Энэ апликейшнд бичих зөвшөөрөл олгогдоогүй ч энэ USB төхөөрөмжөөр дамжуулан аудио бичиж чадсан."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Нүүр"</string>
@@ -2028,21 +2065,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Хандалтын цэс"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>-н гарчгийн талбар."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>-г ХЯЗГААРЛАСАН сагс руу орууллаа"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Харилцан яриа"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Бүлгийн харилцан яриа"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Хувийн"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Ажил"</string>
     <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Хувийн харагдах байдал"</string>
     <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Ажлын харагдах байдал"</string>
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ажлын аппуудтай хуваалцах боломжгүй"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Хувийн аппуудтай хуваалцах боломжгүй"</string>
-    <string name="resolver_cant_share_cross_profile_explanation" msgid="5556640604460901386">"Таны IT админ хувийн болон ажлын профайлуудын хооронд хуваалцахыг блоклосон"</string>
-    <string name="resolver_cant_access_work_apps" msgid="375634344111233790">"Ажлын аппуудад хандах боломжгүй байна"</string>
-    <string name="resolver_cant_access_work_apps_explanation" msgid="3958762224516867388">"Таны IT админ ажлын аппууд дахь хувийн контентыг харахыг танд зөвшөөрөхгүй байна"</string>
-    <string name="resolver_cant_access_personal_apps" msgid="1953215925406474177">"Хувийн аппуудад хандах боломжгүй байна"</string>
-    <string name="resolver_cant_access_personal_apps_explanation" msgid="1725572276741281136">"Таны IT админ хувийн аппууд дахь ажлын контентыг харахыг танд зөвшөөрөхгүй байна"</string>
-    <string name="resolver_turn_on_work_apps_share" msgid="619263911204978175">"Контентыг хуваалцахын тулд ажлын профайлыг асаана уу"</string>
-    <string name="resolver_turn_on_work_apps_view" msgid="3073389230905543680">"Контентыг харахын тулд ажлын профайлыг асаана уу"</string>
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Боломжтой апп алга байна"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
+    <skip />
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
+    <skip />
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
+    <skip />
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
+    <skip />
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
+    <skip />
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
+    <skip />
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
+    <skip />
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
+    <skip />
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
+    <skip />
     <string name="resolver_switch_on_work" msgid="2873009160846966379">"Асаах"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
+    <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Утасны дуудлагын үеэр аудио бичих эсвэл тоглуулах"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Энэ аппыг залгагч өгөгдмөл аппликэйшн болгосон үед түүнд утасны дуудлагын үеэр аудио бичих эсвэл тоглуулахыг зөвшөөрдөг."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index 94b779b..95d274e 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"तुमचे डिव्हाइस मिटविले जाईल"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"प्रशासक अ‍ॅप वापरता येणार नाही. तुमचे डिव्हाइस आता साफ केले जाईल.\n\nतुम्हाला कुठलेही प्रश्न असल्यास, तुमच्या संस्थेच्या प्रशासकाशी संपर्क साधा."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> नी प्रिंट करणे बंद केले आहे."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ॲडमिनद्वारे वैयक्तिक ॲप निलंबित केले गेले आहेत"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"धोरणाचे पालन तपासण्यासाठी येथे टॅप करा."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"मी"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"टॅबलेट पर्याय"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV पर्याय"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"फोन पर्याय"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"स्क्रीन लॉक"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"बंद"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"आणीबाणी"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"बग रीपोर्ट"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"सेशन समाप्त करा"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"चित्रे आणि व्हिडिओ घ्या"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"हा अ‍ॅप कोणत्याही वेळी कॅमेरा वापरून चित्रेे घेऊ आणि व्ह‍िडिओ रेकॉर्ड करू शकतो."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"फोटो आणि व्हिडिओ काढण्यासाठी ॲप्लिकेशन किंवा सेवेला सिस्टम कॅमेरे ॲक्सेस करण्याची अनुमती द्या"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"हे विशेषाधिकृत आहे | सिस्टम ॲप कधीही सिस्टम कॅमेरा वापरून फोटो आणि व्हिडिओ रेकॉर्ड करू शकते. ॲपला android.permission.CAMERA परवानगी देण्याचीदेखील आवश्यकता आहे"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"एखाद्या अ‍ॅप्लिकेशन किंवा सेवेला कॅमेरा डिव्हाइस सुरू किंवा बंद केल्याची कॉलबॅक मिळवण्याची अनुमती द्या."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"व्हायब्रेट नियंत्रित करा"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"अ‍ॅप ला व्हायब्रेटर नियंत्रित करण्यासाठी अनुमती देते."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"अ‍ॅपला व्हायब्रेटर स्थितीचा अ‍ॅक्सेस करण्याची अनुमती देते."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"कॉल करण्याचा अनुभव सुधारण्यासाठी ॲपला त्याचे कॉल प्रणालीच्या माध्यमातून रूट करू देते."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"सिस्टम वापरून कॉल पाहा आणि नियंत्रण ठेवा."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"डिव्हाइसवर येणार कॉल पाहण्यासाठी आणि नियंत्रित करण्यासाठी ॲपला अनुमती देते. यामध्ये कॉल करण्यासाठी कॉलचा नंबर आणि कॉलची स्थिती यासारख्या माहितीचा समावेश असतो."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ऑडिओ रेकॉर्ड प्रतिबंधांपासून मुक्त"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"ऑडिओ रेकॉर्ड करण्यासाठी प्रतिबंधांपासून ॲपला मुक्त करा."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"दुसऱ्या ॲपवरून कॉल करणे सुरू ठेवा"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"दुसऱ्या ॲपमध्ये सुरू झालेल्या कॉलला पुढे सुरू ठेवण्याची ॲपला अनुमती देते."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"फोन नंबर वाचा"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"हटवा"</string>
     <string name="inputMethod" msgid="1784759500516314751">"इनपुट पद्धत"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"मजकूर क्रिया"</string>
-    <string name="email" msgid="2503484245190492693">"ईमेल करा"</string>
-    <string name="email_desc" msgid="8291893932252173537">"निवडलेल्या ॲड्रेसवर ईमेल करा"</string>
-    <string name="dial" msgid="4954567785798679706">"कॉल करा"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"निवडलेल्या फोन नंबरवर कॉल करा"</string>
-    <string name="map" msgid="6865483125449986339">"नकाशा उघडा"</string>
-    <string name="map_desc" msgid="1068169741300922557">"निवडलेला पत्ता शोधा"</string>
-    <string name="browse" msgid="8692753594669717779">"उघडा"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"निवडलेली URL उघडा"</string>
-    <string name="sms" msgid="3976991545867187342">"मेसेज करा"</string>
-    <string name="sms_desc" msgid="997349906607675955">"निवडलेल्या फोन नंबरवर एसएमएस करा"</string>
-    <string name="add_contact" msgid="7404694650594333573">"जोडा"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"संपर्कांमध्ये जोडा"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"पाहा"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"निवडलेली वेळ कॅलेंडरमध्ये पाहा"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"शेड्युल करा"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"निवडलेल्या वेळेसाठी इव्हेंट शेड्युल करा"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ट्रॅक करा"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"निवडलेले विमान ट्रॅक करा"</string>
-    <string name="translate" msgid="1416909787202727524">"भाषांतर करा"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"निवडलेल्या मजकुराचे भाषांतर करा"</string>
-    <string name="define" msgid="5214255850068764195">"व्याख्या सांगा"</string>
-    <string name="define_desc" msgid="6916651934713282645">"निवडलेल्या मजकुराची व्याख्या सांगा"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"संचयन स्थान संपत आहे"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"काही सिस्टम कार्ये कार्य करू शकत नाहीत"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"सिस्टीमसाठी पुरेसे संचयन नाही. आपल्याकडे 250MB मोकळे स्थान असल्याचे सुनिश्चित करा आणि रीस्टार्ट करा."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"मोबाइल नेटवर्कला इंटरनेट ॲक्सेस नाही"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"नेटवर्कला इंटरनेट ॲक्सेस नाही"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"खाजगी DNS सर्व्हर ॲक्सेस करू शकत नाही"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"कनेक्ट केले"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> ला मर्यादित कनेक्टिव्हिटी आहे"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"तरीही कनेक्ट करण्यासाठी टॅप करा"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> वर स्विच केले"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"शिफारस केलेल्‍या पातळीच्या वर आवाज वाढवायचा?\n\nउच्च आवाजात दीर्घ काळ ऐकण्‍याने आपल्‍या श्रवणशक्तीची हानी होऊ शकते."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"प्रवेशयोग्यता शॉर्टकट वापरायचा?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"शॉर्टकट सुरू असताना, दोन्ही व्‍हॉल्‍यूम बटणे तीन सेकंदांसाठी दाबून ठेवल्याने अ‍ॅक्सेसिबिलिटी वैशिष्ट्य सुरू होईल."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> ला तुमचे डिव्हाइसच संपूर्णपणे नियंत्रित करायची अनुमती द्यायची का?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"तुम्ही <xliff:g id="SERVICE">%1$s</xliff:g> सुरू केल्‍यास, तुमचे डिव्हाइस डेटा एंक्रिप्शनमध्ये सुधारणा करण्‍यासाठी स्क्रीन लॉक वापरणार नाही."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"जी ॲप्स तुमच्या ॲक्सेसिबिलिटी गरजा पूर्ण करतात अशा ॲप्ससाठी संपूर्ण नियंत्रण योग्य आहे. पण ते सर्व ॲप्सना लागू होईल असे नाही."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"स्क्रीन पाहा आणि नियंत्रित करा"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"ते स्क्रीनवरील सर्व आशय वाचू शकते आणि इतर ॲप्सवर आशय प्रदर्शित करू शकते."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"पाहा आणि क्रिया करा"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"तुम्ही ॲप किंवा हार्डवेअर सेन्सर कसे वापरता याचा हे मागोवा घेऊ शकते आणि इतर ॲप्ससोबत तुमच्या वतीने काम करू शकते."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"अनुमती द्या"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"नकार द्या"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"वैशिष्ट्य वापरणे सुरू करण्यासाठी त्यावर टॅप करा:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> बंद केले आहे"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"शॉर्टकट संपादित करा"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"रद्द करा"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"पूर्ण झाले"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"शॉर्टकट बंद करा"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"शॉर्टकट वापरा"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"रंगांची उलटापालट"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"रंग सुधारणा"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"प्रवेशयोग्यता शॉर्टकटने <xliff:g id="SERVICE_NAME">%1$s</xliff:g> चालू केली"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"प्रवेशयोग्यता शॉर्टकटने <xliff:g id="SERVICE_NAME">%1$s</xliff:g> बंद केली"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> वापरण्यासाठी दोन्ही व्हॉल्युम की तीन सेकंद दाबा आणि धरून ठेवा"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"मोठे करणे"</string>
     <string name="user_switched" msgid="7249833311585228097">"वर्तमान वापरकर्ता <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> वर स्विच करत आहे…"</string>
@@ -1859,8 +1893,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"वर्गीकरण न केलेले"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"तुम्ही या सूचनांचे महत्त्व सेट केले."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"सामील असलेल्या लोकांमुळे हे महत्वाचे आहे."</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"कस्टम ॲप सूचना"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g> सह नवीन वापरकर्ता तयार करण्याची (हे खाते असलेला वापरकर्ता आधीपासून अस्तित्वात आहे) <xliff:g id="APP">%1$s</xliff:g> ला अनुमती द्यायची आहे का?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> सह नवीन वापरकर्ता तयार करण्याची <xliff:g id="APP">%1$s</xliff:g> ला अनुमती द्यायची आहे का?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"एक भाषा जोडा"</string>
@@ -2017,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> फायली</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> फाइल</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"थेट शेअर करणे उपलब्ध नाही"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"अ‍ॅप्स सूची"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"या अ‍ॅपला रेकॉर्ड करण्याची परवानगी दिली गेली नाही पण हे USB डिव्हाइस वापरून ऑडिओ कॅप्चर केला जाऊ शकतो."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"होम"</string>
@@ -2032,31 +2066,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"अ‍ॅक्सेसिबिलिटी मेनू"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> चा शीर्षक बार."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> हे प्रतिबंधित बादलीमध्ये ठेवण्यात आले आहे"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"संभाषण"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"गट संभाषण"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"वैयक्तिक"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ऑफिस"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"वैयक्तिक दृश्य"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"कार्य दृश्य"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ऑफिस ॲप्स सोबत शेअर करू शकत नाही"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"वैयक्तिक अ‍ॅप्स सोबत शेअर करू शकत नाही"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"कोणतीही अ‍ॅप्स उपलब्ध नाहीत"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"सुरू करा"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"टेलिफोनी कॉलमध्ये ऑडिओ रेकॉर्ड करा किंवा प्ले करा"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"टेलिफोनी कॉलमध्ये ऑडिओ रेकॉर्ड करण्याची किंवा प्ले करण्यासाठी डीफॉल्ट डायलर अ‍ॅप्लिकेशन म्हणून असाइन केले असताना या ॲपला परवानगी देते."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index 23606c0..347c55b 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Peranti anda akan dipadam"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Apl pentadbir tidak dapat digunakan. Peranti anda akan dipadamkan sekarang.\n\nJika anda ingin mengemukakan soalan, hubungi pentadbir organisasi anda."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Pencetakan dilumpuhkan oleh <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Apl peribadi telah digantung oleh pentadbir"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Ketik di sini untuk menyemak pematuhan dasar."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Saya"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Pilihan tablet"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Pilihan Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Pilihan telefon"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Kunci skrin"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Matikan kuasa"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Kecemasan"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Laporan pepijat"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Tamatkan sesi"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ambil gambar dan video"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Apl ini boleh mengambil gambar dan merakam video menggunakan kamera pada bila-bila masa."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Benarkan aplikasi atau perkhidmatan mengakses kamera sistem untuk mengambil gambar dan video"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Apl sistem | terlindung ini boleh mengambil gambar dan merakam video menggunakan kamera sistem pada bila-bila masa. Apl juga perlu mempunyai kebenaran android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Benarkan aplikasi atau perkhidmatan menerima panggilan balik tentang peranti kamera yang dibuka atau ditutup."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"kawal getaran"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Membenarkan apl mengawal penggetar."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Membenarkan apl mengakses keadaan penggetar."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Membenarkan apl menghalakan panggilan menerusi sistem untuk meningkatkan pengalaman panggilan."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"lihat dan kawal panggilan melalui sistem."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Membenarkan apl melihat dan mengawal panggilan yang sedang berlangsung pada peranti. Ini termasuklah maklumat seperti nombor panggilan untuk panggilan dan keadaan panggilan tersebut."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"kecualikan daripada sekatan rakaman audio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Kecualikan apl daripada sekatan untuk merakam audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"teruskan panggilan daripada apl lain"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Membenarkan apl meneruskan panggilan yang dimulakan dalam apl lain."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"baca nombor telefon"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Padam"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Kaedah input"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Tindakan teks"</string>
-    <string name="email" msgid="2503484245190492693">"E-mel"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Hantar e-mel ke alamat yang dipilih"</string>
-    <string name="dial" msgid="4954567785798679706">"Panggil"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Panggil nombor telefon yang dipilih"</string>
-    <string name="map" msgid="6865483125449986339">"Peta"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Cari alamat yang dipilih"</string>
-    <string name="browse" msgid="8692753594669717779">"Buka"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Buka URL yang dipilih"</string>
-    <string name="sms" msgid="3976991545867187342">"Mesej"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Hantar mesej kepada nombor telefon yang dipilih"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Tambah"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Tambah pada kenalan"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Lihat"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Lihat masa yang dipilih dalam kalendar"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Jadual"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Jadualkan acara untuk masa yang dipilih"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Pantau"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Jejak penerbangan yang dipilih"</string>
-    <string name="translate" msgid="1416909787202727524">"Terjemah"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Terjemahkan teks yang dipilih"</string>
-    <string name="define" msgid="5214255850068764195">"Takrifkan"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Takrifkan teks yang dipilih"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Ruang storan semakin berkurangan"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Beberapa fungsi sistem mungkin tidak berfungsi"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Tidak cukup storan untuk sistem. Pastikan anda mempunyai 250MB ruang kosong dan mulakan semula."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Rangkaian mudah alih tiada akses Internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Rangkaian tiada akses Internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Pelayan DNS peribadi tidak boleh diakses"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Disambungkan"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> mempunyai kesambungan terhad"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Ketik untuk menyambung juga"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Beralih kepada <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Naikkan kelantangan melebihi paras yang disyokorkan?\n\nMendengar pada kelantangan yang tinggi untuk tempoh yang lama boleh merosakkan pendengaran anda."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Gunakan Pintasan Kebolehaksesan?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Apabila pintasan dihidupkan, tindakan menekan kedua-dua butang kelantangan selama 3 saat akan memulakan ciri kebolehaksesan."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Benarkan <xliff:g id="SERVICE">%1$s</xliff:g> mempunyai kawalan penuh atas peranti anda?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Jika anda menghidupkan <xliff:g id="SERVICE">%1$s</xliff:g>, peranti anda tidak akan menggunakan kunci skrin anda untuk meningkatkan penyulitan data."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Kawalan penuh sesuai untuk apl yang membantu anda dengan keperluan kebolehaksesan tetapi bukan untuk kebanyakan apl."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Melihat dan mengawal skrin"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Ciri ini boleh membaca semua kandungan pada skrin dan memaparkan kandungan di atas apl lain."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Lihat dan laksanakan tindakan"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Tindakan ini boleh menjejak interaksi anda dengan apl atau penderia perkakasan dan berinteraksi dengan apl bagi pihak anda."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Benarkan"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Tolak"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Ketik ciri untuk mula menggunakan ciri itu:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> telah dimatikan"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Edit pintasan"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Batal"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Selesai"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Matikan pintasan"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Gunakan Pintasan"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Penyongsangan Warna"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Pembetulan Warna"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Pintasan kebolehaksesan menghidupkan <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Pintasan Kebolehaksesan mematikan <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Tekan dan tahan kedua-dua kekunci kelantangan selama tiga saat untuk menggunakan <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Pembesaran"</string>
     <string name="user_switched" msgid="7249833311585228097">"Pengguna semasa <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Bertukar kepada <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> fail</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> fail</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Perkongsian langsung tidak tersedia"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Senarai apl"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Apl ini belum diberikan kebenaran merakam tetapi dapat merakam audio melalui peranti USB ini."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Skrin Utama"</string>
@@ -2031,31 +2066,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu Kebolehaksesan"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Bar kapsyen <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> telah diletakkan dalam baldi TERHAD"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Perbualan"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Perbualan Kumpulan"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Peribadi"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Kerja"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Paparan peribadi"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Paparan kerja"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Tidak dapat berkongsi dengan apl kerja"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Tidak dapat berkongsi dengan apl peribadi"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Tiada rangkaian yang tersedia"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Hidupkan"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Rakam atau mainkan audio dalam panggilan telefoni"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Apabila ditetapkan sebagai apl pendail lalai, membenarkan apl ini merakam atau memainkan audio dalam panggilan telefoni."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index 05dadf0..ed6bfdb 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"သင့်ကိရိယာအား ပယ်ဖျက်လိမ့်မည်"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"စီမံခန့်ခွဲမှု အက်ပ်ကို သုံး၍မရပါ။ သင်၏ စက်ပစ္စည်းအတွင်းရှိ အရာများကို ဖျက်လိုက်ပါမည်\n\nမေးစရာများရှိပါက သင့်အဖွဲ့အစည်း၏ စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> က ပုံနှိပ်ထုတ်ယူခြင်းကို ပိတ်ထားသည်။"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ကိုယ်ပိုင်အက်ပ်များကို စီမံခန့်ခွဲသူက ဆိုင်းငံ့ထားသည်"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"မူဝါဒလိုက်နာမှုကို စစ်ဆေးရန် ဤနေရာကို တို့ပါ။"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"ကျွန်ုပ်"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tabletဆိုင်ရာရွေးချယ်မှုများ"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV ရွေးချယ်စရာများ"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"ဖုန်းဆိုင်ရာရွေးချယ်မှုများ"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"ဖန်သားပြင် လော့ခ်ချခြင်း"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"ပါဝါပိတ်ရန်"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"အရေးပေါ်"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"အမှားရှာဖွေပြင်ဆင်မှုမှတ်တမ်း"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"သတ်မှတ်ပေးထားသည့်အချိန် ပြီးဆုံးပြီ"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ဓါတ်ပုံနှင့်ဗွီဒီယိုရိုက်ခြင်း"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"ဤအက်ပ်သည် ကင်မရာကို အသုံးပြု၍ ဓာတ်ပုံနှင့် ဗီဒီယိုများကို အချိန်မရွေး ရိုက်ကူးနိုင်ပါသည်။"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"ဓာတ်ပုံနှင့် ဗီဒီယိုများရိုက်ရန်အတွက် စနစ်ကင်မရာများကို အက်ပ် သို့မဟုတ် ဝန်‌ဆောင်မှုအား အသုံးပြုခွင့်ပေးခြင်း"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"ခွင့်ပြုချက်ရှိသည့် | ဤစနစ်အက်ပ်သည် စနစ်ကင်မရာကို အသုံးပြု၍ ဓာတ်ပုံနှင့် ဗီဒီယိုများကို အချိန်မရွေး ရိုက်ကူးနိုင်သည်။ အက်ပ်ကလည်း android.permission.CAMERA ခွင့်ပြုချက် ရှိရပါမည်"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"ကင်မရာစက်များ ပွင့်နေခြင်း သို့မဟုတ် ပိတ်နေခြင်းနှင့် ပတ်သက်ပြီး ပြန်လည်ခေါ်ဆိုမှုများ ရယူရန် အပလီကေးရှင်း သို့မဟုတ် ဝန်ဆောင်မှုကို ခွင့်ပြုခြင်း။"</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"(မည်သည့် အပလီကေးရှင်းကြောင့်) ကင်မရာစက်တစ်ခုခု ပွင့်နေသည့်အခါ သို့မဟုတ် ပိတ်နေသည့်အခါ ဤအက်ပ်က ပြန်လည်ခေါ်ဆိုမှုများ ရယူနိုင်သည်။"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"တုန်ခုန်မှုအား ထိန်းချုပ်ခြင်း"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"အက်ပ်အား တုန်ခါစက်ကို ထိန်းချုပ်ခွင့် ပြုသည်။"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"အက်ပ်ကို တုန်ခါမှုအခြေအနေအား သုံးခွင့်ပေးပါ။"</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"ခေါ်ဆိုမှု အတွေ့အကြုံ ပိုမိုကောင်းမွန်လာစေရန်အတွက် အက်ပ်၏ ခေါ်ဆိုမှုအား စနစ်မှတစ်ဆင့် ဖြတ်သန်းရန် ခွင့်ပြုပါသည်။"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"စနစ်မှတစ်ဆင့် ခေါ်ဆိုမှုများကို ကြည့်ရှုထိန်းချုပ်ပါ။"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"စက်ပစ္စည်းပေါ်ရှိ လက်ရှိခေါ်ဆိုမှုများကို အက်ပ်အား ကြည့်ရှုထိန်းချုပ်ခွင့်ပြုသည်။ ၎င်းတွင် ခေါ်ဆိုမှုနံပါတ်များနှင့် ခေါ်ဆိုမှုအခြေအနေများကဲ့သို့သော အခြေအနေများ ပါဝင်သည်။"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ဤအက်ပ်ကို အသံဖမ်းခွင့် ပေးသည်"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"ဤအက်ပ်ကို အသံဖမ်းခွင့် ပေးသည်။"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"အခြားအက်ပ်မှ ဖုန်းခေါ်ဆိုမှုကို ဆက်လက်ပြုလုပ်ပါ"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"အခြားအက်ပ်တွင် စတင်ထားသည့် ဖုန်းခေါ်ဆိုမှုကို ဆက်လက်ပြုလုပ်ရန် ဤအက်ပ်ကို ခွင့်ပြုသည်။"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ဖုန်းနံပါတ်များကို ဖတ်ရန်"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"ဖျက်ရန်"</string>
     <string name="inputMethod" msgid="1784759500516314751">"ထည့်သွင်းရန်နည်းလမ်း"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"စာတို လုပ်ဆောင်ချက်"</string>
-    <string name="email" msgid="2503484245190492693">"အီးမေးလ်ပို့ရန်"</string>
-    <string name="email_desc" msgid="8291893932252173537">"ရွေးထားသည့် လိပ်စာသို့ အီးမေးလ်ပို့ရန်"</string>
-    <string name="dial" msgid="4954567785798679706">"ခေါ်ဆိုရန်"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"ရွေးထားသည့် ဖုန်းနံပါတ်ကို ခေါ်ရန်"</string>
-    <string name="map" msgid="6865483125449986339">"မြေပုံဖွင့်ရန်"</string>
-    <string name="map_desc" msgid="1068169741300922557">"ရွေးထားသည့် လိပ်စာကို ရှာဖွေရန်"</string>
-    <string name="browse" msgid="8692753594669717779">"ဖွင့်ရန်"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"ရွေးထားသည့် URL ကို ဖွင့်ရန်"</string>
-    <string name="sms" msgid="3976991545867187342">"SMS ပို့ရန်"</string>
-    <string name="sms_desc" msgid="997349906607675955">"ရွေးထားသည့် ဖုန်းနံပါတ်ကို မက်ဆေ့ဂျ်ပို့ရန်"</string>
-    <string name="add_contact" msgid="7404694650594333573">"ထည့်ရန်"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"အဆက်အသွယ်များသို့ ထည့်ရန်"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"ကြည့်ရန်"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"ရွေးထားသည့် အချိန်ကို ပြက္ခဒိန်တွင် ကြည့်ရန်"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"အစီအစဉ်ထည့်ရန်"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"ရွေးထားသည့်အချိန်အတွက် အစီအစဉ်ပြုလုပ်ရန်"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ရှာရန်"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"ရွေးထားသည့် လေယာဉ်ခရီးစဉ်ကို ရှာရန်"</string>
-    <string name="translate" msgid="1416909787202727524">"ဘာသာပြန်ရန်"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"ရွေးထားသောစာသားကို ဘာသာပြန်ရန်"</string>
-    <string name="define" msgid="5214255850068764195">"အဓိပ္ပာယ်ဖွင့်ဆိုရန်"</string>
-    <string name="define_desc" msgid="6916651934713282645">"ရွေးထားသောစာသားကို အဓိပ္ပာယ်ဖွင့်ဆိုရန်"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"သိမ်းဆည်သော နေရာ နည်းနေပါသည်"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"တချို့ စနစ်လုပ်ငန်းများ အလုပ် မလုပ်ခြင်း ဖြစ်နိုင်ပါသည်"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"စနစ်အတွက် သိုလှောင်ခန်း မလုံလောက်ပါ။ သင့်ဆီမှာ နေရာလွတ် ၂၅၀ MB ရှိတာ စစ်ကြည့်ပြီး စတင်ပါ။"</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"မိုဘိုင်းကွန်ရက်တွင် အင်တာနက်ချိတ်ဆက်မှု မရှိပါ"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"ကွန်ရက်တွင် အင်တာနက်အသုံးပြုခွင့် မရှိပါ"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"သီးသန့် ဒီအန်အက်စ် (DNS) ဆာဗာကို သုံး၍မရပါ။"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"ချိတ်ဆက်ထားသည်"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> တွင် ချိတ်ဆက်မှုကို ကန့်သတ်ထားသည်"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"မည်သို့ပင်ဖြစ်စေ ချိတ်ဆက်ရန် တို့ပါ"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> သို့ ပြောင်းလိုက်ပြီ"</string>
@@ -1631,21 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"အသံကို အကြံပြုထားသည့် ပမာဏထက် မြှင့်ပေးရမလား?\n\nအသံကို မြင့်သည့် အဆင့်မှာ ကြာရှည်စွာ နားထောင်ခြင်းက သင်၏ နားကို ထိခိုက်စေနိုင်သည်။"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"အများသုံးစွဲနိုင်မှု ဖြတ်လမ်းလင့်ခ်ကို အသုံးပြုလိုပါသလား။"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"ဖြတ်လမ်းလင့်ခ်ကို ဖွင့်ထားစဉ် အသံထိန်းခလုတ် နှစ်ခုစလုံးကို ၃ စက္ကန့်ခန့် ဖိထားခြင်းဖြင့် အများသုံးစွဲနိုင်မှုဆိုင်ရာ ဝန်ဆောင်မှုကို ဖွင့်နိုင်သည်။"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> ကို သင့်စက်အား အပြည့်အဝထိန်းချုပ်ခွင့် ပေးလိုပါသလား။"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g> ဖွင့်လိုက်ပါက သင်၏စက်သည် ဒေတာအသွင်ဝှက်ခြင်း ပိုကောင်းမွန်စေရန် သင့်ဖန်သားပြင်လော့ခ်ကို သုံးမည်မဟုတ်ပါ။"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"အများသုံးစွဲနိုင်မှု လိုအပ်ချက်များအတွက် အထောက်အကူပြုသည့် အက်ပ်များကို အပြည့်အဝထိန်းချုပ်ခြင်းသည် သင့်လျော်သော်လည်း အက်ပ်အများစုအတွက် မသင့်လျော်ပါ။"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"မျက်နှာပြင်ကို ကြည့်ရှုပြီး ထိန်းချုပ်ပါ"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"၎င်းသည် မျက်နှာပြင်ပေါ်ရှိ အကြောင်းအရာများအားလုံးကို ဖတ်နိုင်ပြီး အခြားအက်ပ်များအပေါ်တွင် ထိုအကြောင်းအရာကို ဖော်ပြနိုင်သည်။"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"လုပ်ဆောင်ချက်များကို ကြည့်ရှုလုပ်ဆောင်ပါ"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"၎င်းသည် အက်ပ်တစ်ခု သို့မဟုတ် အာရုံခံကိရိယာကို အသုံးပြု၍ သင့်ပြန်လှန်တုံ့ပြန်မှုများကို မှတ်သားနိုင်ပြီး သင့်ကိုယ်စား အက်ပ်များနှင့် ပြန်လှန်တုံ့ပြန်နိုင်သည်။"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"ခွင့်ပြု"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"ပယ်ရန်"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"ဝန်ဆောင်မှုကို စတင်အသုံးပြုရန် တို့ပါ−"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> ကို ပိတ်ထားသည်"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ဖြတ်လမ်းများကို တည်းဖြတ်ရန်"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"မလုပ်တော့"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"ပြီးပြီ"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ဖြတ်လမ်းလင့်ခ်ကို ပိတ်ရန်"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"ဖြတ်လမ်းလင့်ခ်ကို သုံးရန်"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"အရောင် ပြောင်းပြန်လှန်ခြင်း"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"အရောင်ပြင်ဆင်ခြင်း"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"အများသုံးစွဲနိုင်မှု ဖြတ်လမ်းလင့်ခ်သည် <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ကို ဖွင့်လိုက်ပါသည်"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"အများသုံးစွဲနိုင်မှု ဖြတ်လမ်းလင့်ခ်သည် <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ကို ပိတ်လိုက်ပါသည်"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> ကို သုံးရန် အသံအတိုးအလျှော့ ခလုတ်နှစ်ခုလုံးကို သုံးစက္ကန့်ကြာ ဖိထားပါ"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"ချဲ့ခြင်း"</string>
     <string name="user_switched" msgid="7249833311585228097">"လက်ရှိအသုံးပြုနေသူ <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>သို့ ပြောင်းနေ…"</string>
@@ -2016,7 +2049,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ဖိုင်</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> ဖိုင်</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"တိုက်ရိုက်မျှဝေ၍ မရပါ"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"အက်ပ်စာရင်း"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"ဤအက်ပ်ကို အသံဖမ်းခွင့် ပေးမထားသော်လည်း ၎င်းသည် ဤ USB စက်ပစ္စည်းမှတစ်ဆင့် အသံများကို ဖမ်းယူနိုင်ပါသည်။"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"ပင်မစာမျက်နှာ"</string>
@@ -2031,31 +2065,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"အများသုံးစွဲနိုင်မှု မီနူး"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>၏ ခေါင်းစီး ဘား။"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ကို တားမြစ်ထားသော သိမ်းဆည်းမှုအတွင်းသို့ ထည့်ပြီးပါပြီ"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>-"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"စကားဝိုင်း"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"အဖွဲ့စကားဝိုင်း"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ကိုယ်ပိုင်"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"အလုပ်"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"အလုပ်သုံးအက်ပ်များနှင့် မျှဝေ၍ မရပါ"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ကိုယ်ပိုင်သုံးအက်ပ်များနှင့် မျှဝေ၍ မရပါ"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"မည်သည့်အက်ပ်မျှ မရှိပါ"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"ပုဂ္ဂိုလ်ရေးဆိုင်ရာ မြင်ကွင်း"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"အလုပ် မြင်ကွင်း"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"၎င်းကို အလုပ်သုံးအက်ပ်များအား မျှဝေ၍ မရပါ"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"ဤအကြောင်းအရာကို သင့်အလုပ်ပရိုဖိုင်ရှိ အက်ပ်များအား မျှဝေရန် သင်၏ IT စီမံခန့်ခွဲသူက ခွင့်မပြုပါ"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"၎င်းကို အလုပ်သုံးအက်ပ်များဖြင့် ဖွင့်၍မရပါ"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"ဤအကြောင်းအရာကို သင့်အလုပ်ပရိုဖိုင်ရှိ အက်ပ်များဖြင့် ဖွင့်ရန် သင်၏ IT စီမံခန့်ခွဲသူက ခွင့်မပြုပါ"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"၎င်းကို ကိုယ်ပိုင်အက်ပ်များအား မျှဝေ၍ မရပါ"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"ဤအကြောင်းအရာကို သင့်ကိုယ်ပိုင်ပရိုဖိုင်ရှိ အက်ပ်များအား မျှဝေရန် သင်၏ IT စီမံခန့်ခွဲသူက ခွင့်မပြုပါ"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"၎င်းကို ကိုယ်ပိုင်အက်ပ်များဖြင့် ဖွင့်၍မရပါ"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"ဤအကြောင်းအရာကို သင့်ကိုယ်ပိုင်ပရိုဖိုင်ရှိ အက်ပ်များဖြင့် ဖွင့်ရန် သင်၏ IT စီမံခန့်ခွဲသူက ခွင့်မပြုပါ"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"အလုပ်ပရိုဖိုင် ခဏရပ်ထားသည်"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"ဖွင့်ရန်"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"ဤအကြောင်းအရာကို အလုပ်သုံးအက်ပ်များက မပံ့ပိုးနိုင်ပါ"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"ဤအကြောင်းအရာကို အလုပ်သုံးအက်ပ်များက ဖွင့်၍မရပါ"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"ဤအကြောင်းအရာကို ကိုယ်ပိုင်အက်ပ်များက မပံ့ပိုးနိုင်ပါ"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"ဤအကြောင်းအရာကို ကိုယ်ပိုင်အက်ပ်များက ဖွင့်၍မရပါ"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ဖုန်းခေါ်ဆိုမှုများအတွင်း အသံဖမ်းခြင်း သို့မဟုတ် ဖွင့်ခြင်း"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ဤအက်ပ်အား မူလ dialer အပလီကေးရှင်းအဖြစ် သတ်မှတ်ထားစဉ် ဖုန်းခေါ်ဆိုမှုများအတွင်း အသံဖမ်းခြင်း သို့မဟုတ် ဖွင့်ခြင်း ပြုလုပ်ရန် ခွင့်ပြုပါ။"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 8848a3e..7cbdc0f 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Enheten blir slettet"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administratorappen kan ikke brukes. Enheten din blir nå tømt.\n\nTa kontakt med administratoren for organisasjonen din hvis du har spørsmål."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> har slått av utskrift."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Personlige apper er sperret midlertidig av en administrator"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Trykk her for å sjekke overholdelse av retningslinjer."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Meg"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Innstillinger for nettbrettet"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV-alternativer"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Telefoninnstillinger"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Lås skjermen"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Slå av"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Nødssituasjon"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Feilrapport"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Avslutt økten"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ta bilder og videoer"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Denne appen kan når som helst ta bilder og spille inn videoer ved hjelp av kameraet."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Gi en app eller tjeneste tilgang til systemkameraene for å ta bilder og spille inn videoer"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Denne privilegerte | systemappen kan når som helst ta bilder og spille inn videoer med et systemkamera. Dette krever at appen også har tillatelsen android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Tillat at en app eller tjeneste mottar tilbakekallinger om kameraenheter som åpnes eller lukkes."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"kontrollere vibreringen"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Lar appen kontrollere vibreringsfunksjonen."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Gir appen tilgang til vibreringstilstanden."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Lar appen sende anrop gjennom systemet for å forbedre anropsopplevelsen."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"se og kontrollere anrop i systemet."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Lar appen se og kontrollere anrop som pågår på enheten. Dette inkluderer informasjon som anropsnumre og tilstanden til anropene."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"fritatt fra begrensningene om å ta opp lyd"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Frita appen fra begrensningene om å ta opp lyd."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"fortsette et anrop fra en annen app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Lar appen fortsette et anrop som ble startet i en annen app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"les telefonnumre"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Slett"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Inndatametode"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Teksthandlinger"</string>
-    <string name="email" msgid="2503484245190492693">"Send e-post"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Send e-post til den valgte adressen"</string>
-    <string name="dial" msgid="4954567785798679706">"Ring"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Ring det valgte telefonnummeret"</string>
-    <string name="map" msgid="6865483125449986339">"Se Kart"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Finn den valgte adressen"</string>
-    <string name="browse" msgid="8692753594669717779">"Åpne"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Åpne den valgte nettadressen"</string>
-    <string name="sms" msgid="3976991545867187342">"Send melding"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Send melding til det valgte telefonnummeret"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Legg til"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Legg til i kontakter"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Se"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Se det valgte klokkeslettet i kalenderen"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Planlegg"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Planlegg aktivitet for valgt klokkeslett"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Spor"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Spor den valgte flyvningen"</string>
-    <string name="translate" msgid="1416909787202727524">"Oversett"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Oversett den valgte teksten"</string>
-    <string name="define" msgid="5214255850068764195">"Definer"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definer den valgte teksten"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Lite ledig lagringsplass"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Enkelte systemfunksjoner fungerer muligens ikke slik de skal"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Det er ikke nok lagringsplass for systemet. Kontrollér at du har 250 MB ledig plass, og start på nytt."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobilnettverket har ingen internettilgang"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Nettverket har ingen internettilgang"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Den private DNS-tjeneren kan ikke nås"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Tilkoblet"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> har begrenset tilkobling"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Trykk for å koble til likevel"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Byttet til <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vil du øke volumet til over anbefalt nivå?\n\nHvis du hører på et høyt volum over lengre perioder, kan det skade hørselen din."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vil du bruke tilgjengelighetssnarveien?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Når snarveien er på, starter en tilgjengelighetsfunksjon når du trykker inn begge volumknappene i tre sekunder."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Vil du gi <xliff:g id="SERVICE">%1$s</xliff:g> full kontroll over enheten din?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Hvis du slår på <xliff:g id="SERVICE">%1$s</xliff:g>, bruker ikke enheten skjermlåsen til å forbedre datakryptering."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Full kontroll er passende for apper som hjelper deg med tilgjengelighetsbehov, men ikke for de fleste apper."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Se og kontrollér skjermen"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Den kan lese alt innhold på skjermen og vise innhold over andre apper."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Se og utfør handlinger"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Den kan spore kommunikasjonen din med en app eller maskinvaresensor og kommunisere med apper på dine vegne."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Tillat"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Avvis"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Trykk på en funksjon for å begynne å bruke den:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> er slått av"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Endre snarveier"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Avbryt"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Ferdig"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Slå av snarveien"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Bruk snarveien"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Fargeinvertering"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Fargekorrigering"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Snarveien for tilgjengelighet slo på <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Snarveien for tilgjengelighet slo av <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Trykk og hold inne begge volumtastene i tre sekunder for å bruke <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Forstørring"</string>
     <string name="user_switched" msgid="7249833311585228097">"Gjeldende bruker: <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Bytter til <xliff:g id="NAME">%1$s</xliff:g> …"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> filer</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> fil</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Direktedeling er ikke tilgjengelig"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Appliste"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Denne appen har ikke fått tillatelse til å spille inn, men kan ta opp lyd med denne USB-enheten."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Start"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Tilgjengelighet-meny"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Tekstingsfelt i <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> er blitt plassert i TILGANGSBEGRENSET-toppmappen"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Samtale"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Gruppesamtale"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personlig"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Jobb"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Kan ikke dele med jobbapper"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Kan ikke dele med personlige apper"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Ingen apper er tilgjengelige"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Personlig visning"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Jobbvisning"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Du kan ikke dele dette med jobbapper"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"IT-administratoren din tillater ikke at du deler dette innholdet med apper i jobbprofilen din"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Du kan ikke åpne dette med jobbapper"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"IT-administratoren din tillater ikke at du åpner dette innholdet med apper i jobbprofilen din"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Du kan ikke dele dette med personlige apper"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"IT-administratoren din tillater ikke at du deler dette innholdet med apper i den personlige profilen din"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Du kan ikke åpne dette med personlige apper"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"IT-administratoren din tillater ikke at du åpner dette innholdet med apper i den personlige profilen din"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Jobbprofilen er satt på pause"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Slå på"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Ingen jobbapper støtter dette innholdet"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Ingen jobbapper kan åpne dette innholdet"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Ingen personlige apper støtter dette innholdet"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Ingen personlige apper kan åpne dette innholdet"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Ta opp eller spill av lyd i telefonsamtaler"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Tillater at denne appen tar opp eller spiller av lyd i telefonsamtaler når den er angitt som standard ringeapp."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index a6d0dbd..49b2553 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"तपाईंको यन्त्र मेटिनेछ"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"प्रशासकको अनुप्रयोग प्रयोग गर्न मिल्दैन। तपाईंको यन्त्रको डेटा अब मेटाइने छ।\n\nतपाईंसँग प्रश्नहरू भएका खण्डमा आफ्नो संगठनका प्रशासकसँग सम्पर्क गर्नुहोस्।"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ले छाप्ने कार्यलाई असक्षम पार्यो।"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"व्यक्तिगत एपहरू एकजना प्रशासकले निलम्बन गरिरहनुभएको छ"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"नीति पालनाबारे जाँच गर्न यहाँ ट्याप गर्नुहोस्।"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"मलाई"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ट्याब्लेट विकल्पहरू"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV सम्बन्धी विकल्पहरू"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"फोन विकल्पहरू"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"स्क्रिन बन्द"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"बन्द गर्नुहोस्"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"आपतकालीन"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"बग रिपोर्ट"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"सत्रको अन्त्य गर्नुहोस्"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"तस्बिरहरू र भिडियोहरू लिनुहोस्।"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"यस अनुप्रयोगले जुनसुकै समय क्यामेराको प्रयोग गरी तस्बिर खिच्न र भिडियो रेकर्ड गर्न सक्छ।"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"अनुप्रयोग वा सेवालाई तस्बिर र भिडियो खिच्न प्रणालीका क्यामेराहरूमाथि पहुँच राख्न दिनुहोस्"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"यस विशेषाधिकार प्राप्त अनुप्रयोगले जुनसुकै समय प्रणालीको क्यामेरा प्रयोग गरी तस्बिर खिच्न र भिडियो रेकर्ड गर्न सक्छ। अनुप्रयोगसँग पनि android.permission.CAMERA सम्बन्धी अनुमति हुनु पर्छ"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"कुनै अनुप्रयोग वा सेवालाई खोलिँदै वा बन्द गरिँदै गरेका क्यामेरा यन्त्रहरूका बारेमा कलब्याक प्राप्त गर्ने अनुमति दिनुहोस्।"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"कम्पन नियन्त्रण गर्नुहोस्"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"अनुप्रयोगलाई भाइब्रेटर नियन्त्रण गर्न अनुमति दिन्छ।"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"यो अनुप्रयोगलाई कम्पनको स्थितिमाथि पहुँच राख्न दिनुहोस्।"</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"कल गर्दाको अनुभवलाई सुधार्न यस अनुप्रयोगलाई प्रणाली मार्फत कलहरू गर्न अनुमति दिन्छ।"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"प्रणालीमार्फत कलहरू हेर्नुका साथै तिनीहरूलाई नियन्त्रण गर्नुहोस्‌।"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"अनुप्रयोगलाई यन्त्रमा जारी रहेका कलहरू हेर्नुका साथै तिनीहरूलाई गर्ने अनुमति दिनुहोस्‌। यसमा गरिएका कलहरूको सङ्ख्या र कलहरूको अवस्था जस्ता जानकारी समावेश हुन्छन्‌।"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"अडियो रेकर्ड गर्ने कार्यमा लगाइएका प्रतिबन्धहरूबाट छुट दिनुहोस्"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"यो अनुप्रयोगलाई अडियो रेकर्ड गर्ने कार्यमा लगाइएका प्रतिबन्धहरूबाट छुट दिनुहोस्।"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"अर्को अनुप्रयोगमा सुरु गरिएको कल जारी राख्नुहोस्"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"यस अनुप्रयोगलाई अर्को अनुप्रयोगमा सुरु गरिएको कल जारी राख्ने अनुमति दिन्छ।"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"फोन नम्बरहरू पढ्ने"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"मेट्नुहोस्"</string>
     <string name="inputMethod" msgid="1784759500516314751">"निवेश विधि"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"पाठ कार्यहरू"</string>
-    <string name="email" msgid="2503484245190492693">"इमेल गर्नुहोस्"</string>
-    <string name="email_desc" msgid="8291893932252173537">"चयन गरिएको ठेगानामा इमेल पठाउनुहोस्"</string>
-    <string name="dial" msgid="4954567785798679706">"कल गर्नुहोस्"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"चयन गरिएको फोन नम्बरमा कल गर्नुहोस्"</string>
-    <string name="map" msgid="6865483125449986339">"नक्सा अनुप्रयोग खोल्नुहोस्"</string>
-    <string name="map_desc" msgid="1068169741300922557">"चयन गरिएको ठेगाना पत्ता लगाउनुहोस्"</string>
-    <string name="browse" msgid="8692753594669717779">"खोल्नुहोस्"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"चयन गरिएको URL खोल्नुहोस्"</string>
-    <string name="sms" msgid="3976991545867187342">"सन्देश पठाउनुहोस्"</string>
-    <string name="sms_desc" msgid="997349906607675955">"चयन गरिएको फोन नम्बरमा सन्देश पठाउनुहोस्‌"</string>
-    <string name="add_contact" msgid="7404694650594333573">"थप्नुहोस्"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"सम्पर्क सूचीमा थप्नुहोस्"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"हेर्नुहोस्"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"पात्रोमा चयन गरिएको समय हेर्नुहोस्"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"समयतालिका बनाउनुहोस्"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"चयन गरिएको समयका लागि कार्यक्रमको समयतालिका बनाउनुहोस्‌"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ट्र्याक गर्नुहोस्"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"चयन गरिएको उडान ट्रयाक गर्नुहोस्"</string>
-    <string name="translate" msgid="1416909787202727524">"अनुवाद गर्नुहोस्"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"चयन गरिएको पाठको अनुवाद गर्नुहोस्"</string>
-    <string name="define" msgid="5214255850068764195">"परिभाषा दिनुहोस्"</string>
-    <string name="define_desc" msgid="6916651934713282645">"चयन गरिएको पाठको परिभाषा दिनुहोस्"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"भण्डारण ठाउँ सकिँदै छ"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"सायद केही प्रणाली कार्यक्रमहरूले काम गर्दैनन्"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"प्रणालीको लागि पर्याप्त भण्डारण छैन। तपाईँसँग २५० मेगा बाइट ठाउँ खाली भएको निश्चित गर्नुहोस् र फेरि सुरु गर्नुहोस्।"</string>
@@ -1265,7 +1259,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"मोबाइल नेटवर्कको इन्टरनेटमाथि पहुँच छैन"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"नेटवर्कको इन्टरनेटमाथि पहुँच छैन"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"निजी DNS सर्भरमाथि पहुँच प्राप्त गर्न सकिँदैन"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"जोडियो"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> को जडान सीमित छ"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"जसरी भए पनि जडान गर्न ट्याप गर्नुहोस्"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> मा बदल्नुहोस्"</string>
@@ -1637,21 +1630,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"सिफारिस तहभन्दा आवाज ठुलो गर्नुहुन्छ?\n\nलामो समय सम्म उच्च आवाजमा सुन्दा तपाईँको सुन्ने शक्तिलाई हानी गर्न सक्छ।"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"पहुँच सम्बन्धी सर्टकट प्रयोग गर्ने हो?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"यो सर्टकट सक्रिय हुँदा, ३ सेकेन्डसम्म दुवै भोल्युम बटन थिच्नुले पहुँचसम्बन्धी कुनै सुविधा सुरु गर्ने छ।"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> लाई तपाईंको यन्त्र पूर्ण रूपमा नियन्त्रण गर्न दिने हो?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"तपाईंले <xliff:g id="SERVICE">%1$s</xliff:g> सक्रिय गर्नुभयो भने तपाईंको यन्त्रले डेटा इन्क्रिप्ट गर्ने सुविधाको स्तरोन्नति गर्न तपाईंको स्क्रिन लक सुविधाको प्रयोग गर्ने छैन।"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"तपाईंलाई पहुँच राख्न आवश्यक पर्ने कुरामा सहयोग गर्ने अनुप्रयोगहरूमाथि पूर्ण नियन्त्रण गर्नु उपयुक्त हुन्छ तर अधिकांश अनुप्रयोगहरूका हकमा यस्तो नियन्त्रण उपयुक्त हुँदैन।"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"स्क्रिन हेर्नुहोस् र नियन्त्रण गर्नुहोस्"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"यसले स्क्रिनमा देखिने सबै सामग्री पढ्न सक्छ र अन्य अनुप्रयोगहरूमा उक्त सामग्री देखाउन सक्छ।"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"कारबाहीहरू हेर्नुहोस् र तिनमा कार्य गर्नुहोस्"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"यसले कुनै अनुप्रयोग वा हार्डवेयर सेन्सरसँग तपाईंले गर्ने अन्तर्क्रियाको ट्र्याक गर्न सक्छ र तपाईंका तर्फबाट अनुप्रयोगहरूसँग अन्तर्क्रिया गर्न सक्छ।"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"अनुमति दिनुहोस्"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"इन्कार गर्नु⋯"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"कुनै सुविधा प्रयोग गर्न थाल्न उक्त सुविधामा ट्याप गर्नुहोस्:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> निष्क्रिय पारिएको छ"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"सर्टकटहरू सम्पादन गर्नुहोस्"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"रद्द गर्नुहोस्"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"सम्पन्न भयो"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"सर्टकटलाई निष्क्रिय पार्नुहोस्"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"सर्टकट प्रयोग गर्नुहोस्"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"रङ्ग उल्टाउने सुविधा"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"रङ सच्याउने सुविधा"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"पहुँचको सर्टकटले <xliff:g id="SERVICE_NAME">%1$s</xliff:g> लाई सक्रिय पार्‍यो"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"पहुँचको सर्टकटले <xliff:g id="SERVICE_NAME">%1$s</xliff:g> लाई निष्क्रिय पार्‍यो"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> प्रयोग गर्न दुवै भोल्युम कुञ्जीहरूलाई तीन सेकेन्डसम्म थिचिराख्नुहोस्"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"म्याग्निफिकेसन"</string>
     <string name="user_switched" msgid="7249833311585228097">"अहिलेको प्रयोगकर्ता <xliff:g id="NAME">%1$s</xliff:g>।"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> मा स्विच गर्दै..."</string>
@@ -1865,8 +1899,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"वर्गीकरण नगरिएको"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"तपाईंले यी सूचनाहरूको महत्त्व सेट गर्नुहोस् ।"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"यसमा सङ्लग्न भएका मानिसहरूको कारणले गर्दा यो महत्वपूर्ण छ।"</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"अनुप्रयोगसम्बन्धी आफ्नो रोजाइअनुसारको सूचना"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g> (यस खाताको प्रयोगकर्ता पहिले नै अवस्थित छ) मा नयाँ प्रयोगकर्ता सिर्जना गर्न <xliff:g id="APP">%1$s</xliff:g> लाई अनुमति दिने हो?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> मा नयाँ प्रयोगकर्ता सिर्जना गर्न <xliff:g id="APP">%1$s</xliff:g> लाई अनुमति दिने हो?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"भाषा थप्नुहोस्"</string>
@@ -2023,7 +2056,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> फाइलहरू</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> फाइल</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"सीधै आदान प्रदान गर्ने सुविधा उपलब्ध छैन"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"अनुप्रयोगहरूको सूची"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"यो अनुप्रयोगलाई रेकर्ड गर्ने अनुमति प्रदान गरिएको छैन तर यसले यो USB यन्त्रमार्फत अडियो क्याप्चर गर्न सक्छ।"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"गृहपृष्ठ"</string>
@@ -2038,31 +2072,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"पहुँचसम्बन्धी मेनु"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> को क्याप्सन बार।"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> लाई प्रतिबन्धित बाल्टीमा राखियो"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"वार्तालाप"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"सामूहिक वार्तालाप"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"व्यक्तिगत"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"काम"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"व्यक्तिगत दृश्य"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"कार्य दृश्य"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"कामसम्बन्धी अनुप्रयोगहरूसँग आदान प्रदान गर्न सकिँदैन"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"व्यक्तिगत अनुप्रयोगहरूसँग आदान प्रदान गर्न सकिँदैन"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"कुनै पनि अनुप्रयोग उपलब्ध छैन"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"सक्रिय गर्नुहोस्"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"टेलिफोन कल गर्दै गर्दा अडियो रेकर्ड गर्नुहोस् वा प्ले गर्नुहोस्"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"यस अनुप्रयोगलाई पूर्वनिर्धारित डायलर अनुप्रयोग निर्धारण गर्दा टेलिफोन कलको अडियो रेकर्ड गर्ने र प्ले गर्ने अनुमति दिन्छ।"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index c4c9bbe..7f6d8fe 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Je apparaat wordt gewist"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"De beheer-app kan niet worden gebruikt. Je apparaat wordt nu gewist.\n\nNeem contact op met de beheerder van je organisatie als je vragen hebt."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Afdrukken uitgeschakeld door <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Persoonlijke apps zijn opgeschort door een beheerder"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tik hier om beleidsnaleving te controleren."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Ik"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tabletopties"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opties voor Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Telefoonopties"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Schermvergrendeling"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Uitschakelen"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Noodgeval"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Bugrapport"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Sessie beëindigen"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"foto\'s en video\'s maken"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Deze app kan op elk moment foto\'s maken en video\'s opnemen met de camera."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Een app of service toegang tot systeemcamera\'s geven om foto\'s en video\'s te maken"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Deze gemachtigde app/systeem-app kan op elk gewenst moment foto\'s maken en video\'s opnemen met een systeemcamera. De app moet ook het recht android.permission.CAMERA hebben."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Een app of service toestaan callbacks te ontvangen over camera-apparaten die worden geopend of gesloten."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"trilling beheren"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Hiermee kan de app de trilstand beheren."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Hiermee heeft de app toegang tot de status van de trilstand."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Hiermee kan de app de bijbehorende gesprekken doorschakelen via het systeem om de belfunctionaliteit te verbeteren."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"gesprekken via het systeem bekijken en beheren"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Hiermee kan de app actieve gesprekken op het apparaat bekijken en beheren. Dit omvat informatie zoals nummers voor gesprekken en de status van de gesprekken."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"vrijstellen van beperkingen voor audio-opnamen"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"De app vrijstellen van beperkingen voor audio-opnamen."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"een gesprek voortzetten vanuit een andere app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Hiermee kan de app een gesprek voortzetten dat is gestart in een andere app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"telefoonnummers lezen"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Verwijderen"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Invoermethode"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Tekstacties"</string>
-    <string name="email" msgid="2503484245190492693">"E-mailen"</string>
-    <string name="email_desc" msgid="8291893932252173537">"E-mail sturen aan geselecteerd e-mailadres"</string>
-    <string name="dial" msgid="4954567785798679706">"Bellen"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Geselecteerd telefoonnummer bellen"</string>
-    <string name="map" msgid="6865483125449986339">"Kaart openen"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Geselecteerd adres zoeken"</string>
-    <string name="browse" msgid="8692753594669717779">"Openen"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Geselecteerde URL openen"</string>
-    <string name="sms" msgid="3976991545867187342">"Bericht verzenden"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Sms sturen aan geselecteerd telefoonnummer"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Toevoegen"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Toevoegen aan contacten"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Weergeven"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Geselecteerde tijd weergeven op de kalender"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Plannen"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Afspraak plannen voor geselecteerde tijd"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Volgen"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Geselecteerde vlucht volgen"</string>
-    <string name="translate" msgid="1416909787202727524">"Vertalen"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Geselecteerde tekst vertalen"</string>
-    <string name="define" msgid="5214255850068764195">"Definiëren"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Geselecteerde tekst definiëren"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Opslagruimte is bijna vol"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Bepaalde systeemfuncties werken mogelijk niet"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Onvoldoende opslagruimte voor het systeem. Zorg ervoor dat je 250 MB vrije ruimte hebt en start opnieuw."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobiel netwerk heeft geen internettoegang"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Netwerk heeft geen internettoegang"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Geen toegang tot privé-DNS-server"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Verbonden"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> heeft beperkte connectiviteit"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Tik om toch verbinding te maken"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Overgeschakeld naar <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Volume verhogen tot boven het aanbevolen niveau?\n\nAls je langere tijd op hoog volume naar muziek luistert, raakt je gehoor mogelijk beschadigd."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Snelkoppeling toegankelijkheid gebruiken?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Als de snelkoppeling is ingeschakeld, kun je drie seconden op beide volumeknoppen drukken om een toegankelijkheidsfunctie te starten."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Toestaan dat <xliff:g id="SERVICE">%1$s</xliff:g> volledige controle over je apparaat heeft?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Als je <xliff:g id="SERVICE">%1$s</xliff:g> inschakelt, maakt je apparaat geen gebruik van schermvergrendeling om de gegevensversleuteling te verbeteren."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Volledige controle is gepast voor apps die je helpen met toegankelijkheid, maar voor de meeste apps is het ongepast."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Scherm bekijken en bedienen"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"De functie kan alle content op het scherm lezen en content via andere apps weergeven."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Acties bekijken en uitvoeren"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"De functie kan je interacties met een app of een hardwaresensor bijhouden en namens jou met apps communiceren."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Toestaan"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Weigeren"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Tik op een functie om deze te gebruiken:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> is uitgeschakeld"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Snelkoppelingen bewerken"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Annuleren"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Gereed"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Sneltoets uitschakelen"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Sneltoets gebruiken"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Kleurinversie"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Kleurcorrectie"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"\'Snelkoppeling toegankelijkheid\' heeft <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ingeschakeld"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"\'Snelkoppeling toegankelijkheid\' heeft <xliff:g id="SERVICE_NAME">%1$s</xliff:g> uitgeschakeld"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Houd beide volumetoetsen drie seconden ingedrukt om <xliff:g id="SERVICE_NAME">%1$s</xliff:g> te gebruiken"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Vergroting"</string>
     <string name="user_switched" msgid="7249833311585228097">"Huidige gebruiker <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Overschakelen naar <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> bestanden</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> bestand</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Rechtstreeks delen is niet beschikbaar"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Lijst met apps"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Deze app heeft geen opnamerechten gekregen, maar zou audio kunnen vastleggen via dit USB-apparaat."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Homepage"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Toegankelijkheidsmenu"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Ondertitelingsbalk van <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> is in de bucket RESTRICTED geplaatst"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Gesprek"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Groepsgesprek"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Persoonlijk"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Werk"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Kan niet delen met werk-apps"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Kan niet delen met persoonlijke apps"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Geen apps beschikbaar"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Persoonlijke weergave"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Werkweergave"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Kan deze content niet delen met werk-apps"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Je IT-beheerder staat niet toe dat je deze content deelt met apps in je werkprofiel"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Kan deze content niet openen met werk-apps"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Je IT-beheerder staat niet toe dat je deze content opent met apps in je werkprofiel"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Kan deze content niet delen met persoonlijke apps"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Je IT-beheerder staat niet toe dat je deze content deelt met apps in je persoonlijke profiel"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Kan deze content niet openen met persoonlijke apps"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Je IT-beheerder staat niet toe dat je deze content opent met apps in je persoonlijke profiel"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Werkprofiel is onderbroken"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Inschakelen"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Er zijn geen werk-apps die deze content kunnen ondersteunen"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Er zijn geen werk-apps die deze content kunnen openen"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Er zijn geen persoonlijke apps die deze content kunnen ondersteunen"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Er zijn geen persoonlijke apps die deze content kunnen openen"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Audio opnemen of afspelen in telefoongesprekken"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Hiermee mag deze app (indien toegewezen als standaard dialer-app) audio opnemen of afspelen in telefoongesprekken."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml
index 1ea50ee..36c5dce 100644
--- a/core/res/res/values-or/strings.xml
+++ b/core/res/res/values-or/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"ଆପଣଙ୍କ ଡିଭାଇସ୍‍ ବର୍ତ୍ତମାନ ଲିଭାଯିବ"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"ଆଡମିନ୍‍ ଆପ୍‍‍ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ। ଆପଣଙ୍କ ଡିଭାଇସ୍‍‌ର ସମସ୍ତ ଡାଟାକୁ ବର୍ତ୍ତମାନ ଲିଭାଇଦିଆଯିବ। \n\nଯଦି ଆପଣଙ୍କର କୌଣସି ପ୍ରଶ୍ନ ରହିଥାଏ, ଆପଣଙ୍କ ସଂସ୍ଥାର ଆଡମିନ୍‌ଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ଦ୍ଵାରା ପ୍ରିଣ୍ଟିଙ୍ଗ ଅକ୍ଷମ କରାଯାଇଛି"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ବ୍ୟକ୍ତିଗତ ଆପଗୁଡ଼ିକୁ ଆଡମିନଙ୍କ ଦ୍ୱାରା ସାମୟିକ ଭାବରେ ବନ୍ଦ କରାଯାଇଛି"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ନୀତି ଅନୁପାଳନର ଯାଞ୍ଚ କରିବା ପାଇଁ ଏଠାରେ ଟାପ୍ କରନ୍ତୁ।"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"ମୁଁ"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ଟାବଲେଟ୍‌ର ବିକଳ୍ପ"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android ଟିଭିର ବିକଳ୍ପଗୁଡ଼ିକ"</string>
@@ -210,7 +216,7 @@
     <string name="turn_on_radio" msgid="2961717788170634233">"ୱେୟାରଲେସ୍‌କୁ ଚାଲୁ କରନ୍ତୁ"</string>
     <string name="turn_off_radio" msgid="7222573978109933360">"ୱେୟାରଲେସ୍‌କୁ ବନ୍ଦ କରନ୍ତୁ"</string>
     <string name="screen_lock" msgid="2072642720826409809">"ସ୍କ୍ରୀନ୍‌ ଲକ୍‌"</string>
-    <string name="power_off" msgid="4111692782492232778">"ପାୱାର୍ ଅଫ୍"</string>
+    <string name="power_off" msgid="4111692782492232778">"ପାୱାର୍ ବନ୍ଦ"</string>
     <string name="silent_mode_silent" msgid="5079789070221150912">"ରିଙ୍ଗର୍‍ ଅଫ୍‍ ଅଛି"</string>
     <string name="silent_mode_vibrate" msgid="8821830448369552678">"ରିଙ୍ଗର୍‍ କମ୍ପନ"</string>
     <string name="silent_mode_ring" msgid="6039011004781526678">"ରିଙ୍ଗର୍‍ ଅନ୍‍ ଅଛି"</string>
@@ -234,11 +240,15 @@
     <string name="global_actions" product="tv" msgid="3871763739487450369">"Android ଟିଭିର ବିକଳ୍ପଗୁଡ଼ିକ"</string>
     <string name="global_actions" product="default" msgid="6410072189971495460">"ଫୋନ ବିକଳ୍ପ"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"ସ୍କ୍ରୀନ୍‌ ଲକ୍‌"</string>
-    <string name="global_action_power_off" msgid="4404936470711393203">"ପାୱାର୍ ଅଫ୍"</string>
+    <string name="global_action_power_off" msgid="4404936470711393203">"ପାୱାର୍ ବନ୍ଦ"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"ଜରୁରୀକାଳୀନ"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"ବଗ୍‌ ରିପୋର୍ଟ"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"ସେସନ୍‍ ଶେଷ କରନ୍ତୁ"</string>
-    <string name="global_action_screenshot" msgid="2610053466156478564">"ସ୍କ୍ରୀନଶଟ୍‌"</string>
+    <string name="global_action_screenshot" msgid="2610053466156478564">"ସ୍କ୍ରିନସଟ୍‌"</string>
     <string name="bugreport_title" msgid="8549990811777373050">"ବଗ୍‌ ରିପୋର୍ଟ"</string>
     <string name="bugreport_message" msgid="5212529146119624326">"ଇ-ମେଲ୍ ମେସେଜ୍‍ ଭାବରେ ପଠାଇବାକୁ, ଆପଣଙ୍କ ବର୍ତ୍ତମାନର ଡିଭାଇସ୍‌ ବିଷୟରେ ଏହା ସୂଚନା ସଂଗ୍ରହ କରିବ। ବଗ୍ ରିପୋର୍ଟ ଆରମ୍ଭ ହେବାପରଠାରୁ ଏହାକୁ ପଠାଇବା ପାଇଁ କିଛି ସମୟ ଲାଗିବ, ଦୟାକରି ଧୈର୍ଯ୍ୟ ରଖନ୍ତୁ।"</string>
     <string name="bugreport_option_interactive_title" msgid="7968287837902871289">"ଇଣ୍ଟରାକ୍ଟିଭ୍‍ ରିପୋର୍ଟ"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ଫଟୋ ଓ ଭିଡିଓଗୁଡ଼ିକୁ ନିଅନ୍ତୁ"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"ଏହି ଆପ୍‍ ଯେକୌଣସି ସମୟରେ କ୍ୟାମେରା ବ୍ୟବହାର କରି ଫଟୋ ଉଠାଇପାରେ ଏବଂ ଭିଡିଓ ରେକର୍ଡ କରିପାରେ।"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"ଛବି ଏବଂ ଭିଡିଓଗୁଡ଼ିକୁ ନେବା ପାଇଁ ସିଷ୍ଟମ୍ କ୍ୟାମେରା‌ଗୁଡ଼ିକୁ କୌଣସି ଆପ୍ଲିକେସନ୍ କିମ୍ବା ସେବା ଆକ୍ସେସ୍ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"ଏହି ପ୍ରମୁଖ | ସିଷ୍ଟମ୍ ଆପ୍ ଯେକୌଣସି ସମୟରେ ଏକ ସିଷ୍ଟମ୍ କ୍ୟାମେରା ବ୍ୟବହାର କରି ଛବିଗୁଡ଼ିକ ନେଇପାରେ ଏବଂ ଭିଡିଓଗୁଡ଼ିକ ରେକର୍ଡ କରିପାରେ। ଆପ୍ ମଧ୍ୟ android.permission.CAMERA ଅନୁମତି ଆବଶ୍ୟକ କରେ"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"କ୍ୟାମେରା ଡିଭାଇସଗୁଡ଼ିକ ଖୋଲିବା କିମ୍ବା ବନ୍ଦ କରିବା ବିଷୟରେ କଲବ୍ୟାକଗୁଡ଼ିକ ପାଇବାକୁ ଏକ ଆପ୍ଲିକେସନ୍ କିମ୍ବା ସେବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"କମ୍ପନ ନିୟନ୍ତ୍ରଣ କରନ୍ତୁ"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"ଆପ୍‍କୁ, ଭାଇବ୍ରେଟର୍‍ ନିୟନ୍ତ୍ରଣ କରିବାକୁ ଦେଇଥାଏ।"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ଭାଇବ୍ରେଟର୍ ସ୍ଥିତି ଆକ୍ସେସ୍ କରିବାକୁ ଆପକୁ ଅନୁମତି ଦିଏ।"</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"କଲ୍‍ କରିବାର ଅନୁଭୂତି ବଢ଼ାଇବାକୁ ସିଷ୍ଟମ୍‍ ଜରିଆରେ ଆପର କଲ୍‍ଗୁଡ଼ିକୁ ରୁଟ୍‍ କରିବାକୁ ଏହାକୁ ଅନୁମତି ଦେଇଥାଏ।"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ସିଷ୍ଟମ୍‍ ମାଧ୍ୟମରେ କଲ୍‍ଗୁଡ଼ିକୁ ଦେଖିଥାଏ ଏବଂ ନିୟନ୍ତ୍ରଣ କରିଥାଏ।"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"ଆପ୍‍କୁ ଡିଭାଇସ୍‍‍ରେ ଚାଲୁଥିବା କଲ୍‍ଗୁଡ଼ିକୁ ଦେଖିବାକୁ ଏବଂ ନିୟନ୍ତ୍ରଣ କରିବାକୁ ଅନୁମତି ଦେଇଥାଏ। ଏଥିରେ କଲ୍‍ଗୁଡ଼ିକ ପାଇଁ କଲ୍‍ ନମ୍ବର୍‍ ଏବଂ କଲ୍‍ଗୁଡ଼ିକର ସ୍ଥିତି ପରି ସୂଚନା ଅନ୍ତର୍ଭୁକ୍ତ ଅଛି।"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ଅଡିଓ ରେକର୍ଡ କରିବାର ପ୍ରତିବନ୍ଧକରୁ ମୁକ୍ତ କରନ୍ତୁ"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"ଅଡିଓ ରେକର୍ଡ କରିବାର ପ୍ରତିବନ୍ଧକରୁ ଆପକୁ ମୁକ୍ତ କରନ୍ତୁ।"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"ଅନ୍ୟ ଏକ ଆପ୍‌ରୁ କଲ୍‌କୁ ଜାରି ରଖନ୍ତୁ"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"ଅନ୍ୟ ଆପ୍‌ରେ ଆରମ୍ଭ ହୋଇଥିବା ଗୋଟିଏ କଲ୍‌କୁ ଜାରି ରଖିବା ପାଇଁ ଆପ୍‌କୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ଫୋନ୍‍ ନମ୍ବର ପଢ଼େ"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"ଡିଲିଟ୍‍ କରନ୍ତୁ"</string>
     <string name="inputMethod" msgid="1784759500516314751">"ଇନପୁଟ୍ ପଦ୍ଧତି"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"ଟେକ୍ସଟ୍‌ କାର୍ଯ୍ୟ"</string>
-    <string name="email" msgid="2503484245190492693">"ଇମେଲ୍"</string>
-    <string name="email_desc" msgid="8291893932252173537">"ଚୟନିତ ଠିକଣାକୁ ଇମେଲ୍‍ ପଠାନ୍ତୁ"</string>
-    <string name="dial" msgid="4954567785798679706">"କଲ୍"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"ଚୟନିତ ଫୋନ୍‍ ନମ୍ବର୍‍କୁ କଲ୍‍ କରନ୍ତୁ"</string>
-    <string name="map" msgid="6865483125449986339">"ମ୍ୟାପ୍‍"</string>
-    <string name="map_desc" msgid="1068169741300922557">"ଚୟନିତ ଠିକଣା ଖୋଜନ୍ତୁ"</string>
-    <string name="browse" msgid="8692753594669717779">"ଖୋଲନ୍ତୁ"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"ଚୟନିତ URL ଖୋଲନ୍ତୁ"</string>
-    <string name="sms" msgid="3976991545867187342">"ମେସେଜ୍‌"</string>
-    <string name="sms_desc" msgid="997349906607675955">"ଚୟନିତ ଫୋନ୍‌ ନମ୍ବର୍‌କୁ ମେସେଜ୍‌ ପଠାନ୍ତୁ"</string>
-    <string name="add_contact" msgid="7404694650594333573">"ଯୋଗ କରନ୍ତୁ"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"ଯୋଗାଯୋଗରେ ଯୋଗ କରନ୍ତୁ"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"ଦେଖନ୍ତୁ"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"କ୍ୟାଲେଣ୍ଡର୍‌ରେ ଚୟନିତ ସମୟ ଦେଖନ୍ତୁ"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"ସୂଚୀ"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"ଚୟନିତ ସମୟ ପାଇଁ ଇଭେଣ୍ଟ ସୂଚୀବଦ୍ଧ କରନ୍ତୁ"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ଟ୍ରାକ୍‌ କରନ୍ତୁ"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"ଚୟନିତ ଫ୍ଲାଇଟ୍‍କୁ ଟ୍ରାକ କରନ୍ତୁ"</string>
-    <string name="translate" msgid="1416909787202727524">"ଅନୁବାଦ କରନ୍ତୁ"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"ଚୟନିତ ଟେକ୍ସଟ୍‍କୁ ଅନୁବାଦ କରନ୍ତୁ"</string>
-    <string name="define" msgid="5214255850068764195">"ପରିଭାଷିତ କରନ୍ତୁ"</string>
-    <string name="define_desc" msgid="6916651934713282645">"ଚୟନିତି ଟେକ୍ସଟ୍‍କୁ ପରିଭାଷିତ କରନ୍ତୁ"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"ଷ୍ଟୋରେଜ୍‌ ସ୍ପେସ୍‌ ଶେଷ ହେବାରେ ଲାଗିଛି"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"କିଛି ସିଷ୍ଟମ ଫଙ୍କଶନ୍‍ କାମ କରିନପାରେ"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"ସିଷ୍ଟମ୍ ପାଇଁ ପ୍ରର୍ଯ୍ୟାପ୍ତ ଷ୍ଟୋରେଜ୍‌ ନାହିଁ। ସୁନିଶ୍ଚିତ କରନ୍ତୁ ଯେ, ଆପଣଙ୍କ ପାଖରେ 250MB ଖାଲି ଜାଗା ଅଛି ଏବଂ ପୁନଃ ଆରମ୍ଭ କରନ୍ତୁ।"</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"ମୋବାଇଲ୍ ନେଟ୍‌ୱାର୍କରେ ଇଣ୍ଟର୍ନେଟ୍ ଆକ୍ସେସ୍ ନାହିଁ"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"ନେଟ୍‌ୱାର୍କରେ ଇଣ୍ଟର୍ନେଟ୍ ଆକ୍ସେସ୍ ନାହିଁ"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"ବ୍ୟକ୍ତିଗତ DNS ସର୍ଭର୍ ଆକ୍ସେସ୍ କରିହେବ ନାହିଁ"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"ସଂଯୁକ୍ତ ହୋଇଛି"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g>ର ସୀମିତ ସଂଯୋଗ ଅଛି"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"ତଥାପି ଯୋଗାଯୋଗ କରିବାକୁ ଟାପ୍ କରନ୍ତୁ"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g>କୁ ବଦଳାଗଲା"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ମାତ୍ରା ବଢ଼ାଇ ସୁପାରିଶ ସ୍ତର ବଢ଼ାଉଛନ୍ତି? \n\n ଲମ୍ବା ସମୟ ପର୍ଯ୍ୟନ୍ତ ଉଚ୍ଚ ଶବ୍ଦରେ ଶୁଣିଲେ ଆପଣଙ୍କ ଶ୍ରବଣ ଶକ୍ତି ଖରାପ ହୋଇପାରେ।"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ଆକ୍ସେସବିଲିଟି ଶର୍ଟକଟ୍‍ ବ୍ୟବହାର କରିବେ?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"ସର୍ଟକଟ୍ ଚାଲୁ ଥିବା ବେଳେ, ଉଭୟ ଭଲ୍ୟୁମ୍ ବଟନ୍ 3 ସେକେଣ୍ଡ ପାଇଁ ଦବାଇବା ଦ୍ୱାରା ଏକ ଆକ୍ସେସବିଲିଟି ଫିଚର୍ ଆରମ୍ଭ ହେବ।"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g>କୁ ଆପଣଙ୍କ ଡିଭାଇସର ସମ୍ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣର ଅନୁମତି ଦେବେ?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"ଯଦି ଆପଣ <xliff:g id="SERVICE">%1$s</xliff:g> ଚାଲୁ କରନ୍ତି, ତେବେ ଆପଣଙ୍କ ଡିଭାଇସ୍ ଡାଟା ଏନକ୍ରିପ୍ସନ୍ ବୃଦ୍ଧି କରିବାକୁ ଆପଣଙ୍କର ସ୍କ୍ରିନ୍ ଲକ୍ ବ୍ୟବହାର କରିବ ନାହିଁ।"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"ଯେଉଁ ଆପ୍ସ ଆପଣଙ୍କୁ ଆକ୍ସେସିବିଲିଟୀ ଆବଶ୍ୟକତାରେ ସହାୟତା କରେ, ସେହି ଆପ୍ସ ପାଇଁ ସମ୍ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣ ଉପଯୁକ୍ତ ଅଟେ, କିନ୍ତୁ ଅଧିକାଂଶ ଆପ୍ସ ପାଇଁ ଉପଯୁକ୍ତ ନୁହେଁ।"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"ଭ୍ୟୁ ଏବଂ ସ୍କ୍ରିନ୍‍ ନିୟନ୍ତ୍ରଣ"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"ଏହା ସ୍କ୍ରିନ୍‍ର ସମସ୍ତ ବିଷୟବସ୍ତୁ ପଢ଼ିପାରେ ଏବଂ ଅନ୍ୟ ଆପ୍ସରେ ବିଷୟବସ୍ତୁ ପ୍ରଦର୍ଶନ କରିପାରେ।"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"ଦେଖନ୍ତୁ ଏବଂ କାର୍ଯ୍ୟ ସମ୍ପାଦନ କରନ୍ତୁ"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"ଏହା କୌଣସି ଆପ୍‍ କିମ୍ବା ହାର୍ଡୱେର୍‍ ସେନ୍ସର୍‍ ସହ ଆପଣଙ୍କର ପାରସ୍ପରିକ ଆଦାନପ୍ରଦାନକୁ ଟ୍ରାକ୍‍ କରିପାରେ ଏବଂ ଆପଣଙ୍କ ତରଫରୁ ଆପ୍ସ ସହ ପରିଚିତ ହୋଇପାରେ।"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"ଅନୁମତି"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"ପ୍ରତ୍ୟାଖ୍ୟାନ"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"ଏକ ଫିଚର୍ ବ୍ୟବହାର କରିବା ଆରମ୍ଭ କରିବାକୁ ଏହାକୁ ଟାପ୍ କରନ୍ତୁ:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> ବନ୍ଦ ହୋଇଯାଇଛି"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ସର୍ଟକଟଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ବାତିଲ୍ କରନ୍ତୁ"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"ହୋଇଗଲା"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ଶର୍ଟକଟ୍‍ ବନ୍ଦ କରନ୍ତୁ"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"ଶର୍ଟକଟ୍‍ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"ରଙ୍ଗ ବଦଳାଇବାର ସୁବିଧା"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"ରଙ୍ଗ ସଂଶୋଧନ"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"ଆକ୍ସେସିବିଲିଟୀ ଶର୍ଟକଟ୍‍ <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ଅନ୍‍ କରାଯାଇଛି"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"ଆକ୍ସେସିବିଲିଟୀ ଶର୍ଟକଟ୍‍ <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ଅଫ୍‍ କରାଯାଇଛି"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> ବ୍ୟବହାର କରିବାକୁ ତିନି ସେକେଣ୍ଡ ପାଇଁ ଉଭୟ ଭଲ୍ୟୁମ୍‍ କୀ ଦବାଇ ଧରି ରଖନ୍ତୁ"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"ମ୍ୟାଗ୍ନିଫିକେସନ୍‍"</string>
     <string name="user_switched" msgid="7249833311585228097">"ବର୍ତ୍ତମାନର ୟୁଜର୍‌ ହେଉଛନ୍ତି <xliff:g id="NAME">%1$s</xliff:g>।"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> ରେ ସୁଇଚ୍ କରନ୍ତୁ…"</string>
@@ -1859,8 +1893,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"ଅବର୍ଗୀକୃତ"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ଏହି ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକର ପ୍ରମୁଖତା ଆପଣ ସେଟ୍‍ କରନ୍ତି।"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ସମ୍ପୃକ୍ତ ଲୋକଙ୍କ କାରଣରୁ ଏହା ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ ଅଟେ।"</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"କଷ୍ଟମ୍ ଆପ୍ ବିଜ୍ଞପ୍ତି"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g>ରେ ଏକ ନୂଆ ଉପଯୋଗକର୍ତ୍ତା ତିଆରି କରିବା ପାଇଁ <xliff:g id="ACCOUNT">%2$s</xliff:g>କୁ (ପୂର୍ବରୁ ଏହି ଆକାଉଣ୍ଟ ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ନାମରେ ଅଛି) ଅନୁମତି ଦେବେ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="APP">%1$s</xliff:g>ରେ ଏକ ନୂଆ ଉପଯୋଗକର୍ତ୍ତା ତିଆରି କରିବା ପାଇଁ <xliff:g id="ACCOUNT">%2$s</xliff:g>କୁ ଅନୁମତି ଦେବେ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ଏକ ଭାଷା ଯୋଡ଼ନ୍ତୁ"</string>
@@ -2017,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g>ଟି ଫାଇଲ୍</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g>ଟି ଫାଇଲ୍</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"ସିଧାସଳଖ ସେୟାର୍ ସୁବିଧା ଉପଲବ୍ଧ ନାହିଁ"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"ଆପ୍ସ ତାଲିକା"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"ଏହି ଆପ୍‌କୁ ରେକର୍ଡ କରିବାକୁ ଅନୁମତି ଦିଆଯାଇ ନାହିଁ କିନ୍ତୁ ଏହି USB ଡିଭାଇସ୍ ଜରିଆରେ ଅଡିଓ କ୍ୟାପ୍‍ଚର୍‍ କରିପାରିବ।"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"ମୂଳପୃଷ୍ଠା"</string>
@@ -2032,31 +2066,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ଆକ୍ସେସିବିଲିଟୀ ମେନୁ"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>ର କ୍ୟାପ୍ସନ୍ ବାର୍।"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>କୁ ପ୍ରତିବନ୍ଧିତ ବକେଟରେ ରଖାଯାଇଛି"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"ବାର୍ତ୍ତାଳାପ"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"ଗୋଷ୍ଠୀ ବାର୍ତ୍ତାଳାପ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ବ୍ୟକ୍ତିଗତ"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"କାର୍ଯ୍ୟ"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"ବ୍ୟକ୍ତିଗତ ଭ୍ୟୁ"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"କାର୍ଯ୍ୟସ୍ଥଳୀ ସମ୍ବନ୍ଧିତ ଭ୍ୟୁ"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"କାର୍ଯ୍ୟସ୍ଥଳୀ ଆପଗୁଡ଼ିକ ସହ ସେୟାର୍ କରିପାରିବ ନାହିଁ"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ବ୍ୟକ୍ତିଗତ ଆପଗୁଡ଼ିକ ସହ ସେୟାର୍ କରିପାରିବ ନାହିଁ"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"କୌଣସି ଆପ୍ ଉପଲବ୍ଧ ନାହିଁ"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"ଚାଲୁ କରନ୍ତୁ"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ଟେଲିଫୋନି କଲଗୁଡ଼ିକରେ ଅଡିଓ ରେକର୍ଡ କରନ୍ତୁ ବା ଚଲାନ୍ତୁ"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ଏହି ଆପ୍ ଡିଫଲ୍ଟ ଡାଏଲର୍ ଆପ୍ଲିକେସନ୍ ଭାବରେ ଆସାଇନ୍ ହୋଇଥିଲେ ଟେଲିଫୋନି କଲଗୁଡ଼ିକରେ ଅଡିଓ ରେକର୍ଡ କରିବା ବା ଚଲାଇବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index 8e5ae7d..3c883ea 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਮਿਟਾਇਆ ਜਾਏਗਾ"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਵਰਤੀ ਨਹੀਂ ਜਾ ਸਕਦੀ। ਹੁਣ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਡਾਟਾ ਮਿਟਾਇਆ ਜਾਵੇਗਾ।\n\nਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਸਵਾਲ ਹਨ, ਤਾਂ ਆਪਣੀ ਸੰਸਥਾ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ਵੱਲੋਂ ਪ੍ਰਿੰਟ ਕਰਨਾ ਬੰਦ ਕੀਤਾ ਗਿਆ।"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ਨਿੱਜੀ ਐਪਾਂ ਨੂੰ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਮੁਅੱਤਲ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ਨੀਤੀ ਦੀ ਪਾਲਣਾ ਨੂੰ ਦੇਖਣ ਲਈ ਇੱਥੇ ਟੈਪ ਕਰੋ।"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"ਮੈਂ"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ਟੈਬਲੈੱਟ ਵਿਕਲਪ"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV ਦੇ ਵਿਕਲਪ"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"ਫ਼ੋਨ ਚੋਣਾਂ"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"ਸਕ੍ਰੀਨ ਲਾਕ"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"ਫ਼ੋਨ ਬੰਦ ਕਰੋ"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"ਸੰਕਟਕਾਲ"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"ਬਗ ਰਿਪੋਰਟ"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"ਸੈਸ਼ਨ ਸਮਾਪਤ ਕਰੋ"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ਤਸਵੀਰਾਂ ਅਤੇ ਵੀਡੀਓ ਬਣਾਓ"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"ਇਹ ਐਪ ਕਿਸੇ ਵੀ ਸਮੇਂ ਕੈਮਰੇ ਨੂੰ ਵਰਤ ਕੇ ਤਸਵੀਰਾਂ ਖਿੱਚ ਸਕਦੀ ਹੈ ਅਤੇ ਵੀਡੀਓ ਫ਼ਾਈਲਾਂ ਰਿਕਾਰਡ ਕਰ ਸਕਦੀ ਹੈ।"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"ਸਿਸਟਮ ਕੈਮਰੇ ਨੂੰ ਤਸਵੀਰਾਂ ਅਤੇ ਵੀਡੀਓ ਬਣਾਉਣ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਜਾਂ ਸੇਵਾ ਤੱਕ ਪਹੁੰਚ ਦਿਓ"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"ਇਹ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਸਿਸਟਮ ਐਪ ਕਿਸੇ ਵੇਲੇ ਵੀ ਸਿਸਟਮ ਕੈਮਰੇ ਨੂੰ ਵਰਤ ਕੇ ਤਸਵੀਰਾਂ ਖਿੱਚ ਸਕਦੀ ਹੈ ਅਤੇ ਵੀਡੀਓ ਫ਼ਾਈਲਾਂ ਰਿਕਾਰਡ ਕਰ ਸਕਦੀ ਹੈ। ਐਪ ਨੂੰ ਵੀ android.permission.CAMERA ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ।"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"ਐਪਲੀਕੇਸ਼ਨ ਜਾਂ ਸੇਵਾ ਨੂੰ ਕੈਮਰਾ ਡੀਵਾਈਸਾਂ ਦੇ ਚਾਲੂ ਜਾਂ ਬੰਦ ਕੀਤੇ ਜਾਣ ਬਾਰੇ ਕਾਲਬੈਕ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ।"</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"ਇਹ ਐਪ ਕੋਈ ਵੀ ਕੈਮਰਾ ਡੀਵਾਈਸ ਚਾਲੂ ਹੋਣ (ਕਿਸ ਐਪਲੀਕੇਸ਼ਨ ਰਾਹੀਂ) ਜਾਂ ਬੰਦ ਹੋਣ \'ਤੇ ਕਾਲਬੈਕ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੀ ਹੈ।"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"ਵਾਈਬ੍ਰੇਸ਼ਨ ਤੇ ਨਿਯੰਤਰਣ ਪਾਓ"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"ਐਪ ਨੂੰ ਵਾਈਬ੍ਰੇਟਰ ਤੇ ਨਿਯੰਤਰਣ ਪਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ਐਪ ਨੂੰ ਥਰਥਰਾਹਟ ਸਥਿਤੀ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦਿੰਦਾ ਹੈ।"</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"ਕਾਲ ਕਰਨ ਦੇ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਐਪ ਨੂੰ ਇਸਦੀਆਂ ਕਾਲਾਂ ਨੂੰ ਸਿਸਟਮ ਰਾਹੀਂ ਰੂਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ।"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ਸਿਸਟਮ ਰਾਹੀਂ ਕਾਲਾਂ ਦੇਖੋ ਅਤੇ ਕੰਟਰੋਲ ਕਰੋ।"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"ਐਪ ਨੂੰ ਡੀਵਾਈਸ \'ਤੇ ਜਾਰੀ ਕਾਲਾਂ ਦੇਖਣ ਅਤੇ ਕੰਟਰੋਲ ਕਰਨ ਦਿਓ। ਇਸ ਵਿੱਚ ਕਾਲਾਂ ਦੇ ਨੰਬਰਾਂ ਅਤੇ ਉਹਨਾਂ ਦੀ ਸਥਿਤੀ ਬਾਰੇ ਜਾਣਕਾਰੀ ਸ਼ਾਮਲ ਹੈ।"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ਆਡੀਓ ਰਿਕਾਰਡ ਕਰਨ ਦੀਆਂ ਪਾਬੰਦੀਆਂ ਤੋਂ ਛੋਟ ਦਿਓ"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"ਐਪ ਨੂੰ ਆਡੀਓ ਰਿਕਾਰਡ ਕਰਨ ਦੀ ਪਾਬੰਦੀਆਂ ਤੋਂ ਛੋਟ ਦਿਓ।"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"ਕਿਸੇ ਹੋਰ ਐਪ ਤੋਂ ਕਾਲ ਜਾਰੀ ਰੱਖੋ"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"ਐਪ ਨੂੰ ਉਹ ਕਾਲ ਜਾਰੀ ਰੱਖਣ ਦਿਓ ਜਿਸਨੂੰ ਹੋਰ ਐਪ ਤੋਂ ਚਾਲੂ ਕੀਤਾ ਗਿਆ ਸੀ।"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ਫ਼ੋਨ ਨੰਬਰ ਪੜ੍ਹੋ"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"ਮਿਟਾਓ"</string>
     <string name="inputMethod" msgid="1784759500516314751">"ਇਨਪੁੱਟ ਵਿਧੀ"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"ਟੈਕਸਟ ਕਿਰਿਆਵਾਂ"</string>
-    <string name="email" msgid="2503484245190492693">"ਈਮੇਲ ਖੋਲ੍ਹੋ"</string>
-    <string name="email_desc" msgid="8291893932252173537">"ਚੁਣੇ ਹੋਏ ਪਤੇ \'ਤੇ ਈਮੇਲ ਭੇਜੋ"</string>
-    <string name="dial" msgid="4954567785798679706">"ਕਾਲ ਕਰੋ"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"ਚੁਣੇ ਗਏ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"</string>
-    <string name="map" msgid="6865483125449986339">"ਨਕਸ਼ਾ ਖੋਲ੍ਹੋ"</string>
-    <string name="map_desc" msgid="1068169741300922557">"ਚੁਣਿਆ ਗਿਆ ਪਤਾ ਨਕਸ਼ੇ \'ਤੇ ਦਿਖਾਓ"</string>
-    <string name="browse" msgid="8692753594669717779">"ਖੋਲ੍ਹੋ"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"ਚੁਣਿਆ ਗਿਆ URL ਖੋਲ੍ਹੋ"</string>
-    <string name="sms" msgid="3976991545867187342">"ਸੁਨੇਹਾ ਭੇਜੋ"</string>
-    <string name="sms_desc" msgid="997349906607675955">"ਚੁਣੇ ਗਏ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
-    <string name="add_contact" msgid="7404694650594333573">"ਸ਼ਾਮਲ ਕਰੋ"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"ਸੰਪਰਕਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"ਦੇਖੋ"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"ਕੈਲੰਡਰ ਵਿੱਚ ਚੁਣਿਆ ਗਿਆ ਸਮਾਂ ਦੇਖੋ"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"ਸਮਾਂ-ਸੂਚੀ ਬਣਾਓ"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"ਚੁਣੇ ਗਏ ਸਮੇਂ ਲਈ ਇਵੈਂਟ ਦੀ ਸਮਾਂ-ਸੂਚੀ ਬਣਾਓ"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ਟਰੈਕ ਕਰੋ"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"ਚੁਣੀ ਗਈ ਉਡਾਣ ਨੂੰ ਟਰੈਕ ਕਰੋ"</string>
-    <string name="translate" msgid="1416909787202727524">"ਅਨੁਵਾਦ ਕਰੋ"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"ਚੋਣਵੀਂ ਲਿਖਤ ਦਾ ਅਨੁਵਾਦ ਕਰੋ"</string>
-    <string name="define" msgid="5214255850068764195">"ਪਰਿਭਾਸ਼ਾ ਦਿਓ"</string>
-    <string name="define_desc" msgid="6916651934713282645">"ਚੋਣਵੀਂ ਲਿਖਤ ਦਾ ਅਨੁਵਾਦ ਕਰੋ"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"ਸਟੋਰੇਜ ਦੀ ਜਗ੍ਹਾ ਖਤਮ ਹੋ ਰਹੀ ਹੈ"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"ਕੁਝ ਸਿਸਟਮ ਫੰਕਸ਼ਨ ਕੰਮ ਨਹੀਂ ਵੀ ਕਰ ਸਕਦੇ"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"ਸਿਸਟਮ ਲਈ ਲੋੜੀਂਦੀ ਸਟੋਰੇਜ ਨਹੀਂ ਹੈ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡੇ ਕੋਲ 250MB ਖਾਲੀ ਜਗ੍ਹਾ ਹੈ ਅਤੇ ਮੁੜ-ਚਾਲੂ ਕਰੋ।"</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਕੋਲ ਇੰਟਰਨੈੱਟ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਹੈ"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"ਨੈੱਟਵਰਕ ਕੋਲ ਇੰਟਰਨੈੱਟ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਹੈ"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"ਨਿੱਜੀ ਡੋਮੇਨ ਨਾਮ ਪ੍ਰਣਾਲੀ (DNS) ਸਰਵਰ \'ਤੇ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"ਕਨੈਕਟ ਹੋਏ"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> ਕੋਲ ਸੀਮਤ ਕਨੈਕਟੀਵਿਟੀ ਹੈ"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"ਫਿਰ ਵੀ ਕਨੈਕਟ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"ਬਦਲਕੇ <xliff:g id="NETWORK_TYPE">%1$s</xliff:g> ਲਿਆਂਦਾ ਗਿਆ"</string>
@@ -1631,21 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ਕੀ ਵੌਲਿਊਮ  ਸਿਫ਼ਾਰਸ਼  ਕੀਤੇ ਪੱਧਰ ਤੋਂ ਵਧਾਉਣੀ ਹੈ?\n\nਲੰਮੇ ਸਮੇਂ ਤੱਕ ਉੱਚ ਵੌਲਿਊਮ ਤੇ ਸੁਣਨ ਨਾਲ ਤੁਹਾਡੀ ਸੁਣਨ ਸ਼ਕਤੀ ਨੂੰ ਨੁਕਸਾਨ ਪਹੁੰਚ ਸਕਦਾ ਹੈ।"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ਕੀ ਪਹੁੰਚਯੋਗਤਾ ਸ਼ਾਰਟਕੱਟ ਵਰਤਣਾ ਹੈ?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"ਸ਼ਾਰਟਕੱਟ ਚਾਲੂ ਹੋਣ \'ਤੇ, ਕਿਸੇ ਪਹੁੰਚਯੋਗਤਾ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਦੋਵੇਂ ਅਵਾਜ਼ ਬਟਨਾਂ ਨੂੰ 3 ਸਕਿੰਟ ਲਈ ਦਬਾ ਕੇ ਰੱਖੋ।"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"ਕੀ <xliff:g id="SERVICE">%1$s</xliff:g> ਨੂੰ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਪੂਰਾ ਕੰਟਰੋਲ ਦੇਣਾ ਹੈ?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"ਜੇਕਰ ਤੁਸੀਂ <xliff:g id="SERVICE">%1$s</xliff:g> ਚਾਲੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਇਨਕ੍ਰਿਪਸ਼ਨ ਦਾ ਵਿਸਤਾਰ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਸਕ੍ਰੀਨ ਲਾਕ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰੇਗਾ।"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"ਪੂਰਾ ਕੰਟਰੋਲ ਉਹਨਾਂ ਐਪਾਂ ਲਈ ਢੁਕਵਾਂ ਹੈ ਜੋ ਪਹੁੰਚਯੋਗਤਾ ਸੰਬੰਧੀ ਲੋੜਾਂ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰਦੀਆਂ ਹਨ, ਪਰ ਜ਼ਿਆਦਾਤਰ ਐਪਾਂ ਲਈ ਢੁਕਵਾਂ ਨਹੀਂ ਹੁੰਦਾ।"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"ਸਕ੍ਰੀਨ ਨੂੰ ਦੇਖੋ ਅਤੇ ਕੰਟਰੋਲ ਕਰੋ"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"ਇਹ ਸਕ੍ਰੀਨ \'ਤੇ ਸਾਰੀ ਸਮੱਗਰੀ ਪੜ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਸਮੱਗਰੀ ਨੂੰ ਦੂਜੀਆਂ ਐਪਾਂ ਦੇ ਉੱਪਰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰ ਸਕਦੀ ਹੈ।"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"ਕਾਰਵਾਈਆਂ ਦੇਖੋ ਅਤੇ ਕਰੋ"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"ਇਹ ਕਿਸੇ ਐਪ ਜਾਂ ਹਾਰਡਵੇਅਰ ਸੈਂਸਰ ਦੇ ਨਾਲ ਤੁਹਾਡੀਆਂ ਅੰਤਰਕਿਰਿਆਵਾਂ ਨੂੰ ਟਰੈਕ ਕਰ ਸਕਦੀ ਹੈ, ਅਤੇ ਤੁਹਾਡੀ ਤਰਫ਼ੋਂ ਐਪਾਂ ਦੇ ਨਾਲ ਅੰਤਰਕਿਰਿਆ ਕਰ ਸਕਦੀ ਹੈ।"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"ਕਰਨ ਦਿਓ"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"ਮਨ੍ਹਾਂ ਕਰੋ"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"ਕਿਸੇ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਵਰਤਣਾ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਉਸ \'ਤੇ ਟੈਪ ਕਰੋ:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> ਨੂੰ ਬੰਦ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ਸ਼ਾਰਟਕੱਟਾਂ ਦਾ ਸੰਪਾਦਨ ਕਰੋ"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ਰੱਦ ਕਰੋ"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"ਹੋ ਗਿਆ"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ਸ਼ਾਰਟਕੱਟ ਬੰਦ ਕਰੋ"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"ਸ਼ਾਰਟਕੱਟ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"ਰੰਗ ਦੀ ਉਲਟੀ ਤਰਤੀਬ"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"ਰੰਗ ਸੁਧਾਈ"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"ਪਹੁੰਚਯੋਗਤਾ ਸ਼ਾਰਟਕੱਟ ਨੇ <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ਨੂੰ ਚਾਲੂ ਕੀਤਾ"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"ਪਹੁੰਚਯੋਗਤਾ ਸ਼ਾਰਟਕੱਟ ਨੇ <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ਨੂੰ ਬੰਦ ਕੀਤਾ"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਦੋਵੇਂ ਅਵਾਜ਼ ਕੁੰਜੀਆਂ ਨੂੰ 3 ਸਕਿੰਟਾਂ ਲਈ ਦਬਾਈ ਰੱਖੋ"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"ਵੱਡਦਰਸ਼ੀਕਰਨ"</string>
     <string name="user_switched" msgid="7249833311585228097">"ਮੌਜੂਦਾ ਉਪਭੋਗਤਾ <xliff:g id="NAME">%1$s</xliff:g>।"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> ਤੇ ਸਵਿਚ ਕਰ ਰਿਹਾ ਹੈ…"</string>
@@ -1859,8 +1892,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"ਗੈਰ-ਸ਼੍ਰੇਣੀਕਿਰਤ"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ਤੁਸੀਂ ਇਹਨਾਂ ਸੂਚਨਾਵਾਂ ਦੀ ਮਹੱਤਤਾ ਸੈੱਟ ਕੀਤੀ।"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ਇਹ ਸ਼ਾਮਲ ਲੋਕਾਂ ਦੇ ਕਾਰਨ ਮਹੱਤਵਪੂਰਨ ਹੈ।"</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"ਵਿਉਂਤੀ ਐਪ ਸੂਚਨਾ"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"ਕੀ <xliff:g id="APP">%1$s</xliff:g> ਨੂੰ <xliff:g id="ACCOUNT">%2$s</xliff:g> ਨਾਲ ਨਵਾਂ ਵਰਤੋਂਕਾਰ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣੀ ਹੈ (ਇਸ ਖਾਤੇ ਨਾਲ ਇੱਕ ਵਰਤੋਂਕਾਰ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਮੌਜੂਦ ਹੈ)?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"ਕੀ <xliff:g id="APP">%1$s</xliff:g> ਨੂੰ <xliff:g id="ACCOUNT">%2$s</xliff:g> ਨਾਲ ਨਵਾਂ ਵਰਤੋਂਕਾਰ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣੀ ਹੈ?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ਇੱਕ ਭਾਸ਼ਾ ਸ਼ਾਮਲ ਕਰੋ"</string>
@@ -2017,7 +2049,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ਫ਼ਾਈਲ</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ਫ਼ਾਈਲਾਂ</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"ਸਿੱਧਾ ਸਾਂਝਾ ਕਰਨ ਦੀ ਸੁਵਿਧਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"ਐਪ ਸੂਚੀ"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"ਇਸ ਐਪ ਨੂੰ ਰਿਕਾਰਡ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੱਤੀ ਗਈ ਪਰ ਇਹ USB ਡੀਵਾਈਸ ਰਾਹੀਂ ਆਡੀਓ ਕੈਪਚਰ ਕਰ ਸਕਦੀ ਹੈ।"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"ਹੋਮ"</string>
@@ -2032,31 +2065,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ਪਹੁੰਚਯੋਗਤਾ ਮੀਨੂ"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਦੀ ਸੁਰਖੀ ਪੱਟੀ।"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ਨੂੰ ਪ੍ਰਤਿਬੰਧਿਤ ਖਾਨੇ ਵਿੱਚ ਪਾਇਆ ਗਿਆ ਹੈ"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"ਗੱਲਬਾਤ"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"ਗੁਰੱਪ ਗੱਲਬਾਤ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ਨਿੱਜੀ"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"ਕੰਮ"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"ਵਿਅਕਤੀਗਤ ਦ੍ਰਿਸ਼"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"ਕਾਰਜ ਦ੍ਰਿਸ਼"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਨਾਲ ਸਾਂਝਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ਨਿੱਜੀ ਐਪਾਂ ਨਾਲ ਸਾਂਝਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ਕੋਈ ਐਪ ਉਪਲਬਧ ਨਹੀਂ"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"ਚਾਲੂ ਕਰੋ"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ਟੈਲੀਫ਼ੋਨੀ ਕਾਲਾਂ ਵਿੱਚ ਰਿਕਾਰਡ ਕਰੋ ਜਾਂ ਆਡੀਓ ਚਲਾਓ"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"ਇਹ ਇਸ ਐਪ ਨੂੰ, ਪੂਰਵ-ਨਿਰਧਾਰਤ ਡਾਇਲਰ ਐਪਲੀਕੇਸ਼ਨ ਵਜੋਂ ਜਿੰਮੇ ਲਾਏ ਜਾਣ \'ਤੇ, ਟੈਲੀਫ਼ੋਨੀ ਕਾਲਾਂ ਵਿੱਚ ਰਿਕਾਰਡ ਕਰਨ ਜਾਂ ਆਡੀਓ ਚਲਾਉਣ ਦਿੰਦਾ ਹੈ।"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 91c8c70..54bad3e 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -204,8 +204,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Twoje urządzenie zostanie wyczyszczone"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Nie można użyć aplikacji administratora. Dane z urządzenia zostaną wykasowane.\n\nJeśli masz pytania, skontaktuj się z administratorem organizacji."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Drukowanie wyłączone przez: <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Aplikacje osobiste zostały zawieszone przez administratora"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Kliknij tutaj, by sprawdzić zgodność z zasadami."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Ja"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opcje tabletu"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opcje Androida TV"</string>
@@ -239,6 +245,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opcje telefonu"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Blokada ekranu"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Wyłącz"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Alarmowy"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Zgłoszenie błędu"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Zakończ sesję"</string>
@@ -440,7 +450,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"wykonywanie zdjęć i filmów wideo"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Ta aplikacja może w dowolnym momencie robić zdjęcia i nagrywać filmy przy użyciu aparatu."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Zezwól na dostęp aplikacji lub usługi do aparatów systemu i robienie zdjęć oraz nagrywanie filmów"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Ta aplikacja systemowa | o podwyższonych uprawnieniach może w dowolnym momencie robić zdjęcia i nagrywać filmy przy użyciu aparatu systemu. Wymaga przyznania uprawnień android.permission.CAMERA również aplikacji"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Zezwól na dostęp aplikacji lub usługi na otrzymywanie wywoływania zwrotnego o urządzeniach z aparatem, kiedy są one uruchamiane lub zamykane."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"Ta aplikacja może korzystać z wywoływania zwrotnego, kiedy urządzenie z aparatem jest uruchamiane (przez jaką aplikację) albo zamykane."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"sterowanie wibracjami"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Pozwala aplikacji na sterowanie wibracjami."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Zezwala aplikacji na dostęp do stanu wibracji"</string>
@@ -454,6 +467,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Zezwala aplikacji na przekazywanie połączeń przez system, by poprawić ich jakość."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"przeglądanie i kontrolowanie połączeń w systemie."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Zezwala aplikacji na przeglądanie i kontrolowanie trwających połączeń na urządzeniu. Dotyczy to informacji takich jak numery, z którymi nawiązane jest połączenie, oraz stan połączeń."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"wyłączenie ograniczeń do nagrywania dźwięku"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Wyłączenie ograniczeń aplikacji do nagrywania dźwięku."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"kontynuuj połączenie w innej aplikacji"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Zezwala na kontynuowanie przez aplikację połączenia rozpoczętego w innej aplikacji."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"odczytywanie numerów telefonów"</string>
@@ -1139,28 +1154,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Usuń"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Sposób wprowadzania tekstu"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Działania na tekście"</string>
-    <string name="email" msgid="2503484245190492693">"Wyślij e-maila"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Wyślij e-maila na wybrany adres"</string>
-    <string name="dial" msgid="4954567785798679706">"Zadzwoń"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Zadzwoń pod wybrany numer telefonu"</string>
-    <string name="map" msgid="6865483125449986339">"Otwórz mapę"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Pokaż wybrany adres na mapie"</string>
-    <string name="browse" msgid="8692753594669717779">"Otwórz"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Otwórz wybrany adres URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Wyślij SMS-a"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Wyślij SMS-a pod wybrany numer telefonu"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Dodaj"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Dodaj do kontaktów"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Wyświetl"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Wyświetl wybraną datę w kalendarzu"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Zaplanuj"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Zaplanuj wydarzenie na wybraną godzinę"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Śledź"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Śledź wybrany lot"</string>
-    <string name="translate" msgid="1416909787202727524">"Tłumacz"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Przetłumacz zaznaczony tekst"</string>
-    <string name="define" msgid="5214255850068764195">"Pokaż definicję"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Pokaż definicję zaznaczonego tekstu"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Kończy się miejsce"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Niektóre funkcje systemu mogą nie działać"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Za mało pamięci w systemie. Upewnij się, że masz 250 MB wolnego miejsca i uruchom urządzenie ponownie."</string>
@@ -1299,7 +1292,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Sieć komórkowa nie ma dostępu do internetu"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Sieć nie ma dostępu do internetu"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Brak dostępu do prywatnego serwera DNS"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Połączono"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> ma ograniczoną łączność"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Kliknij, by mimo to nawiązać połączenie"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Zmieniono na połączenie typu <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1675,21 +1667,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Zwiększyć głośność ponad zalecany poziom?\n\nSłuchanie głośno przez długi czas może uszkodzić Twój słuch."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Użyć skrótu do ułatwień dostępu?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Gdy skrót jest włączony, jednoczesne naciskanie przez trzy sekundy obu przycisków głośności uruchamia funkcję ułatwień dostępu."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Pozwolić usłudze <xliff:g id="SERVICE">%1$s</xliff:g> na pełną kontrolę nad urządzeniem?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Jeśli włączysz usługę <xliff:g id="SERVICE">%1$s</xliff:g>, Twoje urządzenie nie będzie korzystać z blokady ekranu, by usprawnić szyfrowanie danych."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Pełna kontrola jest odpowiednia dla aplikacji, które pomagają Ci radzić sobie z niepełnosprawnością, ale nie należy jej przyznawać wszystkim aplikacjom."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Wyświetlaj i steruj ekranem"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Może odczytywać całą zawartość ekranu i wyświetlać treść nad innymi aplikacjami."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Wyświetlaj i wykonuj działania"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Może śledzić Twoje interakcje z aplikacjami lub czujnikiem sprzętowym, a także obsługiwać aplikacje za Ciebie."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Zezwól"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Odmów"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Wybierz funkcję, aby zacząć z niej korzystać:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Usługa <xliff:g id="SERVICE_NAME">%s</xliff:g> została wyłączona"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Edytuj skróty"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Anuluj"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"OK"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Wyłącz skrót"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Użyj skrótu"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Odwrócenie kolorów"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Korekcja kolorów"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Skrót ułatwień dostępu wyłączył usługę <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Skrót ułatwień dostępu wyłączył usługę <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Naciśnij i przytrzymaj oba przyciski głośności przez trzy sekundy, by użyć usługi <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Powiększenie"</string>
     <string name="user_switched" msgid="7249833311585228097">"Bieżący użytkownik: <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Przełączam na użytkownika <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2084,7 +2117,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> pliku</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> plik</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Udostępnianie bezpośrednie jest niedostępne"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Lista aplikacji"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Ta aplikacja nie ma uprawnień do nagrywania, ale może rejestrować dźwięk za pomocą tego urządzenia USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Ekran główny"</string>
@@ -2099,31 +2133,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu ułatwień dostępu"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Pasek napisów w aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Umieszczono pakiet <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> w zasobniku danych RESTRICTED"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Rozmowa"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Rozmowa grupowa"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Osobiste"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Do pracy"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nie można udostępnić aplikacji do pracy"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nie można udostępnić aplikacji osobistej"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Brak dostępnych aplikacji"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Widok osobisty"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Widok służbowy"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Nie można udostępnić aplikacjom do pracy"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Administrator IT nie pozwala na udostępnianie tej zawartości w profilu do pracy"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Nie można otworzyć w aplikacjach do pracy"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Administrator IT nie pozwala na otwieranie tej zawartości w profilu do pracy"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Nie można udostępnić aplikacjom osobistym"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Administrator IT nie pozwala na udostępnianie tej zawartości w profilu osobistym"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Nie można otworzyć w aplikacjach osobistych"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Administrator IT nie pozwala na otwieranie tej zawartości w profilu osobistym"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Działanie profilu do pracy jest wstrzymane"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Włącz"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Brak aplikacji do pracy, które obsługują tę zawartość"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Brak aplikacji do pracy, które mogą otworzyć tę zawartość"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Brak aplikacji osobistych, które obsługują tę zawartość"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Brak aplikacji osobistych, które mogą otworzyć tę zawartość"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Nagrywanie lub odtwarzanie dźwięku podczas połączeń telefonicznych"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Zezwala na odtwarzanie dźwięku podczas rozmów telefonicznych przez aplikację przypisaną jako domyślnie wybierającą numery."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index 7bdfffa..4915812 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Seu dispositivo será limpo"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Não é possível usar o aplicativo para administrador. Seu dispositivo passará por uma limpeza agora.\n\nEm caso de dúvidas, entre em contato com o administrador da sua organização."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Impressão desativada por <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Os apps pessoais foram suspensos por um administrador"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Toque aqui para ver a conformidade com a política."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Eu"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opções do tablet"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opções do Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opções do telefone"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Bloquear tela"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Desligar"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emergência"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Relatório de bugs"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Finalizar sessão"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"tirar fotos e gravar vídeos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Este app pode tirar fotos e gravar vídeos usando a câmera a qualquer momento."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Permitir que um aplicativo ou serviço acesse as câmeras do sistema para tirar fotos e gravar vídeos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Este app do sistema/com privilégios pode tirar fotos e gravar vídeos a qualquer momento usando a câmera do sistema. É necessário que o app tenha também a permissão android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Permitir que um aplicativo ou serviço receba callbacks sobre dispositivos de câmera sendo abertos ou fechados."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"Esse app pode receber callbacks quando um dispositivo de câmera é aberto (por qualquer app) ou fechado."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"controlar vibração"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite que o app controle a vibração."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que o app acesse o estado da vibração."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Permite que o app encaminhe suas chamadas por meio do sistema para melhorar a experiência com chamadas."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ver e controlar chamadas pelo sistema."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Permite que o app veja e controle chamadas em andamento no dispositivo. Isso inclui informações como número e estado das chamadas."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"isento de restrições de gravação de áudio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Isenta o app de restrições para gravar áudio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continuar uma chamada de outro app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Permite que o app continue uma chamada que foi iniciada em outro app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ler números de telefone"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Excluir"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Método de entrada"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Ações de texto"</string>
-    <string name="email" msgid="2503484245190492693">"Mandar e-mail"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Enviar e-mail para endereço selecionado"</string>
-    <string name="dial" msgid="4954567785798679706">"Ligar"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Ligar para o número de telefone selecionado"</string>
-    <string name="map" msgid="6865483125449986339">"Mapa"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Localizar endereço selecionado"</string>
-    <string name="browse" msgid="8692753594669717779">"Abrir"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Abrir URL selecionado"</string>
-    <string name="sms" msgid="3976991545867187342">"Mensagem"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Enviar mensagem para número de telefone selecionado"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Adicionar"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Adicionar aos contatos"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Ver"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Ver horário selecionado na agenda"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Agendar"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Agendar evento no horário selecionado"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Rastrear"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Rastrear voo selecionado"</string>
-    <string name="translate" msgid="1416909787202727524">"Traduzir"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Traduzir texto selecionado"</string>
-    <string name="define" msgid="5214255850068764195">"Definir"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definir texto selecionado"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Pouco espaço de armazenamento"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Algumas funções do sistema podem não funcionar"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Não há armazenamento suficiente para o sistema. Certifique-se de ter 250 MB de espaço livre e reinicie."</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"A rede móvel não tem acesso à Internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"A rede não tem acesso à Internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Não é possível acessar o servidor DNS privado"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Conectado"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> tem conectividade limitada"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Toque para conectar mesmo assim"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Alternado para <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Aumentar o volume acima do nível recomendado?\n\nOuvir em volume alto por longos períodos pode danificar sua audição."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Usar atalho de Acessibilidade?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Quando o atalho estiver ativado, pressione os dois botões de volume por três segundos para iniciar um recurso de acessibilidade."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Permitir que o <xliff:g id="SERVICE">%1$s</xliff:g> tenha controle total do seu dispositivo?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Se o <xliff:g id="SERVICE">%1$s</xliff:g> for ativado, o dispositivo não usará o bloqueio de tela para melhorar a criptografia de dados."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"O controle total é adequado para apps que ajudam você com as necessidades de acessibilidade, mas não para a maioria dos apps."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ver e controlar tela"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Pode ler todo o conteúdo na tela e mostrar conteúdo sobreposto a outros apps."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Ver e realizar ações"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Pode monitorar suas interações com um app ou um sensor de hardware e interagir com apps em seu nome."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Permitir"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Negar"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Toque em um recurso para começar a usá-lo:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"O <xliff:g id="SERVICE_NAME">%s</xliff:g> foi desativado"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar atalhos"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancelar"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Concluído"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desativar atalho"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Usar atalho"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inversão de cores"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Correção de cor"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"O atalho de acessibilidade ativou o <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"O atalho de acessibilidade desativou o <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Toque nos dois botões de volume e os mantenha pressionados por três segundo para usar o <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ampliação"</string>
     <string name="user_switched" msgid="7249833311585228097">"Usuário atual <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Alternando para <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2049,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> arquivo</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> arquivos</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Compartilhamento direto indisponível"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Lista de apps"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Este app não tem permissão de gravação, mas pode capturar áudio pelo dispositivo USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Início"</string>
@@ -2031,31 +2065,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu de acessibilidade"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de legendas do app <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> foi colocado no intervalo \"RESTRITO\""</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversa"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Conversa em grupo"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Pessoal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Trabalho"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Não é possível compartilhar com apps de trabalho"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Não é possível compartilhar com apps pessoais"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nenhum app disponível"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Visualização pessoal"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Visualização de trabalho"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Não é possível compartilhar este conteúdo com apps de trabalho"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Seu administrador de TI não permite que você compartilhe este conteúdo com apps no seu perfil de trabalho"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Não é possível abrir com apps de trabalho"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Seu administrador de TI não permite que você abra este conteúdo com apps no seu perfil de trabalho"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Não é possível compartilhar este conteúdo com apps pessoais"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Seu administrador de TI não permite que você compartilhe este conteúdo com apps no seu perfil pessoal"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Não é possível abrir este conteúdo com apps pessoais"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Seu administrador de TI não permite que você abra este conteúdo com apps no seu perfil pessoal"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"O perfil de trabalho está pausado"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Ativar"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Apps de trabalho não são compatíveis com este conteúdo"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Apps de trabalho não podem abrir este conteúdo"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Apps pessoais não são compatíveis com este conteúdo"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Apps pessoais não podem abrir este conteúdo"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Gravar ou tocar áudio em chamadas telefônicas"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permitir que esse app grave ou toque áudio em chamadas telefônicas quando for usado como aplicativo discador padrão."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index da2207e..6ee0ae9 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"O seu dispositivo será apagado"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Não é possível utilizar a aplicação de administrador. O seu dispositivo será agora apagado.\n\nSe tiver questões, contacte o administrador da entidade."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Impressão desativada por <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"As apps pessoais foram suspensas por um administrador"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Toque aqui para verificar a conformidade da política."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Eu"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opções do tablet"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opções do Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opções do telefone"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Bloqueio de ecrã"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Desligar"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emergência"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Relatório de erros"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Terminar sessão"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"tirar fotos e vídeos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Esta aplicação pode tirar fotos e gravar vídeos através da câmara em qualquer altura."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Permitir que uma aplicação ou um serviço aceda às câmaras do sistema para tirar fotos e vídeos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Esta aplicação do sistema | privilegiada pode tirar fotos e gravar vídeos através de uma câmara do sistema em qualquer altura. Também necessita da autorização android.permission.CAMERA para a aplicação."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Permitir que uma app ou um serviço receba chamadas de retorno sobre dispositivos de câmara que estão a ser abertos ou fechados"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"controlar vibração"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite à aplicação controlar o vibrador."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que a app aceda ao estado de vibração."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Permite que a aplicação encaminhe as respetivas chamadas através do sistema de modo a melhorar a experiência da chamada."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ver e controlar chamadas através do sistema."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Permite à aplicação ver e controlar as chamadas em curso no dispositivo. Isto inclui informações como números de telefone das chamadas e o estado das mesmas."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"isenta de restrições de gravação de áudio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Isente a app de restrições para gravar áudio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continuar uma chamada a partir de outra aplicação"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Permite à aplicação continuar uma chamada iniciada noutra aplicação."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ler os números de telefone"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Eliminar"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Método de entrada"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Acções de texto"</string>
-    <string name="email" msgid="2503484245190492693">"Email"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Enviar um email para o endereço selecionado"</string>
-    <string name="dial" msgid="4954567785798679706">"Telefonar"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Telefonar para o número de telefone selecionado"</string>
-    <string name="map" msgid="6865483125449986339">"Mapa"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Localizar o endereço selecionado"</string>
-    <string name="browse" msgid="8692753594669717779">"Abrir"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Abrir o URL selecionado"</string>
-    <string name="sms" msgid="3976991545867187342">"Mensagem"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Enviar uma mensagem para o número de telefone selecionado"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Adicionar"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Adicionar aos contactos"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Ver"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Ver a hora selecionada no calendário"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Agendar"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Agendar um evento para a hora selecionada"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Monitorizar"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Monitorizar o voo selecionado"</string>
-    <string name="translate" msgid="1416909787202727524">"Traduzir"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Traduzir o texto selecionado"</string>
-    <string name="define" msgid="5214255850068764195">"Definir"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definir o texto selecionado"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Está quase sem espaço de armazenamento"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Algumas funções do sistema poderão não funcionar"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Não existe armazenamento suficiente para o sistema. Certifique-se de que tem 250 MB de espaço livre e reinicie."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"A rede móvel não tem acesso à Internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"A rede não tem acesso à Internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Não é possível aceder ao servidor DNS."</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Ligado"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> tem conetividade limitada."</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Toque para ligar mesmo assim."</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Mudou para <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Aumentar o volume acima do nível recomendado?\n\nOuvir com um volume elevado durante longos períodos poderá ser prejudicial para a sua audição."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Pretende utilizar o atalho de acessibilidade?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Quando o atalho está ativado, premir ambos os botões de volume durante 3 segundos inicia uma funcionalidade de acessibilidade."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Pretende permitir que o serviço <xliff:g id="SERVICE">%1$s</xliff:g> tenha controlo total sobre o seu dispositivo?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Se ativar o serviço <xliff:g id="SERVICE">%1$s</xliff:g>, o dispositivo não utilizará o bloqueio de ecrã para otimizar a encriptação de dados."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"O controlo total é adequado para aplicações que ajudam nas necessidades de acessibilidade, mas não para a maioria das aplicações."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ver e controlar o ecrã"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Pode ler todo o conteúdo do ecrã e sobrepor conteúdo a outras aplicações."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Veja e execute ações"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Pode monitorizar as suas interações com uma aplicação ou um sensor de hardware e interagir com aplicações em seu nome."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Permitir"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Recusar"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Toque numa funcionalidade para começar a utilizá-la:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"O serviço <xliff:g id="SERVICE_NAME">%s</xliff:g> foi desativado."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar atalhos"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancelar"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Concluído"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desativar atalho"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Utilizar atalho"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inversão de cores"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Correção da cor"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"O Atalho de acessibilidade ativou o serviço <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"O Atalho de acessibilidade desativou o serviço <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Prima sem soltar as teclas de volume durante três segundos para utilizar o serviço <xliff:g id="SERVICE_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ampliação"</string>
     <string name="user_switched" msgid="7249833311585228097">"<xliff:g id="NAME">%1$s</xliff:g> do utilizador atual."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"A mudar para <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ficheiros</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> ficheiro</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"A partilha direta não está disponível."</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Lista de aplicações"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Esta aplicação não recebeu autorização de gravação, mas pode capturar áudio através deste dispositivo USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Página inicial"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu Acessibilidade"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de legendas da aplicação <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> foi colocado no contentor RESTRITO."</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversa"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Conversa de grupo"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Pessoal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Trabalho"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Não é possível partilhar com apps de trabalho."</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Não é possível partilhar com apps pessoais."</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nenhuma app disponível."</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Vista pessoal"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Vista de trabalho"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Não é possível partilhar este conteúdo com apps de trabalho"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"O seu administrador de TI não lhe permite partilhar este conteúdo com apps no seu perfil de trabalho."</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Não é possível abrir este conteúdo com apps de trabalho"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"O seu administrador de TI não lhe permite abrir este conteúdo com apps no seu perfil de trabalho."</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Não é possível partilhar este conteúdo com apps pessoais"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"O seu administrador de TI não lhe permite partilhar este conteúdo com apps no seu perfil pessoal."</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Não é possível abrir este conteúdo com apps pessoais"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"O seu administrador de TI não lhe permite abrir este conteúdo com apps no seu perfil pessoal."</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Perfil de trabalho em pausa."</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Ativar"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Este conteúdo não é suportado por nenhuma app de trabalho."</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Este conteúdo não pode ser aberto por nenhuma app de trabalho."</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Este conteúdo não é suportado por nenhuma app pessoal."</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Este conteúdo não pode ser aberto por nenhuma app pessoal."</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Gravar ou reproduzir áudio em chamadas telefónicas"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permite que esta app, quando atribuída como uma aplicação de telefone predefinida, grave ou reproduza áudio em chamadas telefónicas."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 7bdfffa..4915812 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Seu dispositivo será limpo"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Não é possível usar o aplicativo para administrador. Seu dispositivo passará por uma limpeza agora.\n\nEm caso de dúvidas, entre em contato com o administrador da sua organização."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Impressão desativada por <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Os apps pessoais foram suspensos por um administrador"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Toque aqui para ver a conformidade com a política."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Eu"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opções do tablet"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opções do Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opções do telefone"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Bloquear tela"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Desligar"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emergência"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Relatório de bugs"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Finalizar sessão"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"tirar fotos e gravar vídeos"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Este app pode tirar fotos e gravar vídeos usando a câmera a qualquer momento."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Permitir que um aplicativo ou serviço acesse as câmeras do sistema para tirar fotos e gravar vídeos"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Este app do sistema/com privilégios pode tirar fotos e gravar vídeos a qualquer momento usando a câmera do sistema. É necessário que o app tenha também a permissão android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Permitir que um aplicativo ou serviço receba callbacks sobre dispositivos de câmera sendo abertos ou fechados."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"Esse app pode receber callbacks quando um dispositivo de câmera é aberto (por qualquer app) ou fechado."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"controlar vibração"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite que o app controle a vibração."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que o app acesse o estado da vibração."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Permite que o app encaminhe suas chamadas por meio do sistema para melhorar a experiência com chamadas."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ver e controlar chamadas pelo sistema."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Permite que o app veja e controle chamadas em andamento no dispositivo. Isso inclui informações como número e estado das chamadas."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"isento de restrições de gravação de áudio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Isenta o app de restrições para gravar áudio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"continuar uma chamada de outro app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Permite que o app continue uma chamada que foi iniciada em outro app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ler números de telefone"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Excluir"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Método de entrada"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Ações de texto"</string>
-    <string name="email" msgid="2503484245190492693">"Mandar e-mail"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Enviar e-mail para endereço selecionado"</string>
-    <string name="dial" msgid="4954567785798679706">"Ligar"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Ligar para o número de telefone selecionado"</string>
-    <string name="map" msgid="6865483125449986339">"Mapa"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Localizar endereço selecionado"</string>
-    <string name="browse" msgid="8692753594669717779">"Abrir"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Abrir URL selecionado"</string>
-    <string name="sms" msgid="3976991545867187342">"Mensagem"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Enviar mensagem para número de telefone selecionado"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Adicionar"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Adicionar aos contatos"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Ver"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Ver horário selecionado na agenda"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Agendar"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Agendar evento no horário selecionado"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Rastrear"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Rastrear voo selecionado"</string>
-    <string name="translate" msgid="1416909787202727524">"Traduzir"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Traduzir texto selecionado"</string>
-    <string name="define" msgid="5214255850068764195">"Definir"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definir texto selecionado"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Pouco espaço de armazenamento"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Algumas funções do sistema podem não funcionar"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Não há armazenamento suficiente para o sistema. Certifique-se de ter 250 MB de espaço livre e reinicie."</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"A rede móvel não tem acesso à Internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"A rede não tem acesso à Internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Não é possível acessar o servidor DNS privado"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Conectado"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> tem conectividade limitada"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Toque para conectar mesmo assim"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Alternado para <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Aumentar o volume acima do nível recomendado?\n\nOuvir em volume alto por longos períodos pode danificar sua audição."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Usar atalho de Acessibilidade?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Quando o atalho estiver ativado, pressione os dois botões de volume por três segundos para iniciar um recurso de acessibilidade."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Permitir que o <xliff:g id="SERVICE">%1$s</xliff:g> tenha controle total do seu dispositivo?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Se o <xliff:g id="SERVICE">%1$s</xliff:g> for ativado, o dispositivo não usará o bloqueio de tela para melhorar a criptografia de dados."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"O controle total é adequado para apps que ajudam você com as necessidades de acessibilidade, mas não para a maioria dos apps."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ver e controlar tela"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Pode ler todo o conteúdo na tela e mostrar conteúdo sobreposto a outros apps."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Ver e realizar ações"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Pode monitorar suas interações com um app ou um sensor de hardware e interagir com apps em seu nome."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Permitir"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Negar"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Toque em um recurso para começar a usá-lo:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"O <xliff:g id="SERVICE_NAME">%s</xliff:g> foi desativado"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editar atalhos"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Cancelar"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Concluído"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desativar atalho"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Usar atalho"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inversão de cores"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Correção de cor"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"O atalho de acessibilidade ativou o <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"O atalho de acessibilidade desativou o <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Toque nos dois botões de volume e os mantenha pressionados por três segundo para usar o <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ampliação"</string>
     <string name="user_switched" msgid="7249833311585228097">"Usuário atual <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Alternando para <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2049,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> arquivo</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> arquivos</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Compartilhamento direto indisponível"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Lista de apps"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Este app não tem permissão de gravação, mas pode capturar áudio pelo dispositivo USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Início"</string>
@@ -2031,31 +2065,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu de acessibilidade"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de legendas do app <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> foi colocado no intervalo \"RESTRITO\""</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversa"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Conversa em grupo"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Pessoal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Trabalho"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Não é possível compartilhar com apps de trabalho"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Não é possível compartilhar com apps pessoais"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nenhum app disponível"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Visualização pessoal"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Visualização de trabalho"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Não é possível compartilhar este conteúdo com apps de trabalho"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Seu administrador de TI não permite que você compartilhe este conteúdo com apps no seu perfil de trabalho"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Não é possível abrir com apps de trabalho"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Seu administrador de TI não permite que você abra este conteúdo com apps no seu perfil de trabalho"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Não é possível compartilhar este conteúdo com apps pessoais"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Seu administrador de TI não permite que você compartilhe este conteúdo com apps no seu perfil pessoal"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Não é possível abrir este conteúdo com apps pessoais"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Seu administrador de TI não permite que você abra este conteúdo com apps no seu perfil pessoal"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"O perfil de trabalho está pausado"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Ativar"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Apps de trabalho não são compatíveis com este conteúdo"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Apps de trabalho não podem abrir este conteúdo"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Apps pessoais não são compatíveis com este conteúdo"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Apps pessoais não podem abrir este conteúdo"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Gravar ou tocar áudio em chamadas telefônicas"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permitir que esse app grave ou toque áudio em chamadas telefônicas quando for usado como aplicativo discador padrão."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index e489249..a08c655 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -202,8 +202,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Datele de pe dispozitiv vor fi șterse"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Aplicația de administrare nu poate fi utilizată. Dispozitivul va fi șters.\n\nDacă aveți întrebări, contactați administratorul organizației dvs."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Printare dezactivată de <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Aplicațiile personale au fost suspendate de un administrator"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Atingeți aici ca să verificați conformitatea cu politicile."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Eu"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opțiuni tablet PC"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opțiuni pentru Android TV"</string>
@@ -237,6 +243,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opțiuni telefon"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Blocați ecranul"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Opriți"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Urgență"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Raport despre erori"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Încheiați sesiunea"</string>
@@ -437,7 +447,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"realizarea de fotografii și videoclipuri"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Această aplicație poate să facă fotografii și să înregistreze videoclipuri folosind camera foto în orice moment."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Permiteți unei aplicații sau unui serviciu accesul la camerele de sistem, ca să fotografieze și să înregistreze videoclipuri"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Această aplicație de sistem | privilegiată poate să fotografieze și să înregistreze videoclipuri folosind o cameră de sistem în orice moment. Necesită și permisiunea android.permission.CAMERA pentru aplicație"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Permiteți unei aplicații sau unui serviciu să primească apeluri inverse atunci când sunt deschise sau închise dispozitive cu cameră."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"controlează vibrarea"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite aplicației să controleze mecanismul de vibrare."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite aplicației să acceseze modul de vibrații."</string>
@@ -451,6 +465,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Permiteți aplicației să direcționeze apelurile prin intermediul sistemului pentru a îmbunătăți calitatea apelurilor."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"Vedeți și controlați apelurile prin intermediul sistemului."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Permite aplicației să vadă și să controleze apelurile în desfășurare pe dispozitiv. Aceasta include informații ca numerele pentru apeluri și starea apelurilor."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"scutită de restricțiile pentru înregistrarea conținutului audio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Scutiți aplicația de restricțiile pentru înregistrarea conținutului audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"să continue un apel dintr-o altă aplicație"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Permite aplicației să continue un apel care a fost inițiat dintr-o altă aplicație."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"să citească numerele de telefon"</string>
@@ -1119,28 +1135,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Ștergeți"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Metodă de intrare"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Acțiuni pentru text"</string>
-    <string name="email" msgid="2503484245190492693">"E-mail"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Trimiteți un e-mail la adresa selectată"</string>
-    <string name="dial" msgid="4954567785798679706">"Sunați"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Sunați la numărul de telefon selectat"</string>
-    <string name="map" msgid="6865483125449986339">"Hartă"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Localizați adresa selectată"</string>
-    <string name="browse" msgid="8692753594669717779">"Deschideți"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Deschideți adresa URL selectată"</string>
-    <string name="sms" msgid="3976991545867187342">"Trimiteți mesaj"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Trimiteți un mesaj la numărul de telefon selectat"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Adăugați"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Adăugați în agendă"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Afișați"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Afișați data selectată în calendar"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Programați"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Programați evenimentul pentru data selectată"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Urmăriți"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Urmăriți zborul selectat"</string>
-    <string name="translate" msgid="1416909787202727524">"Traduceți"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Traduceți textul selectat"</string>
-    <string name="define" msgid="5214255850068764195">"Definiți"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definiți textul selectat"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Spațiul de stocare aproape ocupat"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Este posibil ca unele funcții de sistem să nu funcționeze"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Spațiu de stocare insuficient pentru sistem. Asigurați-vă că aveți 250 MB de spațiu liber și reporniți."</string>
@@ -1279,7 +1273,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Rețeaua mobilă nu are acces la internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Rețeaua nu are acces la internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Serverul DNS privat nu poate fi accesat"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Conectat"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> are conectivitate limitată"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Atingeți pentru a vă conecta oricum"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"S-a comutat la <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1653,21 +1646,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ridicați volumul mai sus de nivelul recomandat?\n\nAscultarea la volum ridicat pe perioade lungi de timp vă poate afecta auzul."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Utilizați comanda rapidă pentru accesibilitate?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Atunci când comanda rapidă este activată, dacă apăsați ambele butoane de volum timp de trei secunde, veți lansa o funcție de accesibilitate."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Permiteți serviciului <xliff:g id="SERVICE">%1$s</xliff:g> să aibă control total asupra dispozitivului dvs.?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Dacă activați <xliff:g id="SERVICE">%1$s</xliff:g>, dispozitivul nu va folosi blocarea ecranului pentru a îmbunătăți criptarea datelor."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Controlul total este adecvat pentru aplicații care vă ajută cu accesibilitatea, însă nu pentru majoritatea aplicaților."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Vă vede și vă controlează ecranul"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Poate citi tot conținutul de pe ecran și poate afișa conținut peste alte aplicații."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Vă vede interacțiunile și le realizează"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Poate urmări interacțiunile dvs. cu o aplicație sau cu un senzor hardware și poate interacționa cu aplicații în numele dvs."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Permiteți"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Refuzați"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Atingeți o funcție ca să începeți să o folosiți:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> a fost dezactivat"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Editați comenzile rapide"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Anulați"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Gata"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Dezactivați comanda rapidă"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Utilizați comanda rapidă"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inversarea culorilor"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Corecția culorii"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Comanda rapidă de accesibilitate a activat <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Comanda rapidă de accesibilitate a dezactivat <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Apăsați ambele butoane de volum timp de trei secunde pentru a folosi <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Mărire"</string>
     <string name="user_switched" msgid="7249833311585228097">"Utilizator curent: <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Se comută la <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2050,7 +2084,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> de fișiere</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> fișier</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Trimiterea directă nu este disponibilă"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Lista de aplicații"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Permisiunea de înregistrare nu a fost acordată aplicației, dar aceasta poate să înregistreze conținut audio prin intermediul acestui dispozitiv USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Pornire"</string>
@@ -2065,31 +2100,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Meniul Accesibilitate"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Bară cu legenda pentru <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> a fost adăugat la grupul RESTRICȚIONATE"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Conversație"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Conversație de grup"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Serviciu"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nu se poate trimite către aplicații pentru lucru"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nu se poate trimite către aplicații personale"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nicio aplicație disponibilă"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Afișarea conținutului personal"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Afișarea conținutului de lucru"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Nu se poate trimite către aplicații pentru lucru"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Administratorul IT nu vă permite să trimiteți acest conținut cu aplicațiile din profilul de serviciu"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Nu se poate deschide cu aplicații pentru lucru"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Administratorul IT nu vă permite să deschideți acest conținut cu aplicațiile din profilul de serviciu"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Nu se poate trimite către aplicații personale"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Administratorul IT nu vă permite să trimiteți acest conținut cu aplicațiile din profilul personal"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Nu se poate deschide cu aplicații personale"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Administratorul IT nu vă permite să deschideți acest conținut cu aplicațiile din profilul personal"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Profilul de serviciu este întrerupt"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Activați"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Aplicațiile pentru lucru nu acceptă acest conținut"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Aplicațiile pentru lucru nu pot deschide acest conținut"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Aplicațiile personale nu acceptă acest conținut"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Aplicațiile personale nu pot deschide acest conținut"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Înregistrează sau redă conținut audio în apelurile telefonice"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Permite acestei aplicații, atunci când este setată ca aplicație telefon prestabilită, să înregistreze sau să redea conținut audio în apelurile telefonice."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 7abf646..daa5b27 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -204,8 +204,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Все данные с устройства будут удалены"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Невозможно использовать приложение для администрирования. С устройства будут удалены все данные.\n\nЕсли у вас возникли вопросы, обратитесь к администратору."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Функция печати отключена приложением \"<xliff:g id="OWNER_APP">%s</xliff:g>\""</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Личные приложения временно заблокированы администратором"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Нажмите здесь, чтобы проверить их на соответствие правилам."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Я"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Настройки планшетного ПК"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Настройки Android TV"</string>
@@ -239,6 +245,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Параметры телефона"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Блокировка экрана"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Выключить"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Экстренный вызов"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Отчет об ошибке"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Закончить сеанс"</string>
@@ -255,7 +265,7 @@
       <item quantity="many">Скриншот будет сделан через <xliff:g id="NUMBER_1">%d</xliff:g> секунд</item>
       <item quantity="other">Скриншот будет сделан через <xliff:g id="NUMBER_1">%d</xliff:g> секунды</item>
     </plurals>
-    <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"Сделан скриншот с информацией об ошибке."</string>
+    <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"Вместе с отчетом об ошибке был сделан скриншот."</string>
     <string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"Не удалось сделать скриншот с информацией об ошибке."</string>
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"Режим без звука"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"Выключить"</string>
@@ -440,7 +450,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"Фото- и видеосъемка"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Приложение может в любое время делать фотографии и снимать видео с помощью камеры."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Доступ приложения или сервиса к системным настройкам камеры, позволяющим снимать фото и видео"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Это привилегированное или системное приложение может в любое время делать фотографии и снимать видео с помощью камеры. Для этого приложению также требуется разрешение android.permission.CAMERA."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Разрешить приложению или сервису получать обратные вызовы при открытии и закрытии камер"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"Управление функцией вибросигнала"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Приложение сможет контролировать вибросигналы."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Приложение сможет получать доступ к состоянию виброотклика."</string>
@@ -454,6 +468,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Приложение сможет перенаправлять звонки в системе с целью улучшения качества связи."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"Управление вызовами через систему"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Приложение сможет управлять текущими вызовами на устройстве, а также получит доступ к сведениям о них, в том числе к номерам телефонов и статусам звонков."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"Исключение из ограничений на запись аудио"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"В отношении приложения не будут действовать ограничения на запись аудио."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"Продолжить вызов, начатый в другом приложении"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Разрешает приложению продолжить вызов, начатый в другом приложении."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"чтение номеров телефонов"</string>
@@ -1139,28 +1155,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Удалить"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Способ ввода"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Операции с текстом"</string>
-    <string name="email" msgid="2503484245190492693">"Написать письмо"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Отправить письмо выбранному адресату"</string>
-    <string name="dial" msgid="4954567785798679706">"Позвонить"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Позвонить по выбранному номеру"</string>
-    <string name="map" msgid="6865483125449986339">"Карта"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Показать на карте выбранный адрес"</string>
-    <string name="browse" msgid="8692753594669717779">"Открыть"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Открыть выбранный URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Написать SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Отправить SMS на выбранный номер"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Добавить"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Добавить в контакты"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Открыть"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Посмотреть выбранный день в календаре"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Запланировать"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Запланировать событие на выбранный день"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Отследить"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Отслеживать выбранный рейс"</string>
-    <string name="translate" msgid="1416909787202727524">"Перевести"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Перевести выделенный текст"</string>
-    <string name="define" msgid="5214255850068764195">"Найти определение"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Найти определения слов в выбранном тексте"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Недостаточно памяти"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Некоторые функции могут не работать"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Недостаточно свободного места для системы. Освободите не менее 250 МБ дискового пространства и перезапустите устройство."</string>
@@ -1299,7 +1293,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Мобильная сеть не подключена к Интернету"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Сеть не подключена к Интернету"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Доступа к частному DNS-серверу нет."</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Подключено"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"Подключение к сети \"<xliff:g id="NETWORK_SSID">%1$s</xliff:g>\" ограничено"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Нажмите, чтобы подключиться"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Новое подключение: <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1675,21 +1668,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Установить громкость выше рекомендуемого уровня?\n\nВоздействие громкого звука в течение долгого времени может привести к повреждению слуха."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Использовать быстрое включение?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Чтобы использовать функцию специальных возможностей, когда она включена, нажмите и удерживайте обе кнопки регулировки громкости в течение трех секунд."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Предоставить сервису \"<xliff:g id="SERVICE">%1$s</xliff:g>\" полный контроль над устройством?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Если включить сервис \"<xliff:g id="SERVICE">%1$s</xliff:g>\", устройство не будет использовать блокировку экрана для защиты данных."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Полный контроль нужен приложениям для реализации специальных возможностей и не нужен большинству остальных."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Просмотр и контроль экрана"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Сервис может читать весь контент на экране и отображать контент поверх других приложений."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Просмотр и выполнение действий"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Сервис может отслеживать ваше взаимодействие с приложением или датчиками устройства и давать приложениям команды от вашего имени."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Разрешить"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Отклонить"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Выберите, какую функцию использовать:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Сервис \"<xliff:g id="SERVICE_NAME">%s</xliff:g>\" отключен."</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Изменить быстрые клавиши"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Отмена"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Готово"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Деактивировать быстрое включение"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Использовать быстрое включение"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Инверсия цветов"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Коррекция цвета"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Сервис <xliff:g id="SERVICE_NAME">%1$s</xliff:g> включен"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Сервис <xliff:g id="SERVICE_NAME">%1$s</xliff:g> отключен"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Чтобы использовать сервис \"<xliff:g id="SERVICE_NAME">%1$s</xliff:g>\", нажмите и удерживайте обе клавиши громкости в течение трех секунд."</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Увеличение"</string>
     <string name="user_switched" msgid="7249833311585228097">"Выбран аккаунт пользователя <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Смена профиля на <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2084,7 +2118,8 @@
       <item quantity="many">\"<xliff:g id="FILE_NAME_2">%s</xliff:g>\" и ещё <xliff:g id="COUNT_3">%d</xliff:g> файлов</item>
       <item quantity="other">\"<xliff:g id="FILE_NAME_2">%s</xliff:g>\" и ещё <xliff:g id="COUNT_3">%d</xliff:g> файла</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Функция Direct Share недоступна."</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Список приложений"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Приложению не разрешено записывать звук, однако оно может делать это с помощью этого USB-устройства."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Главный экран"</string>
@@ -2099,31 +2134,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Меню специальных возможностей"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Строка субтитров в приложении \"<xliff:g id="APP_NAME">%1$s</xliff:g>\"."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Приложение \"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>\" помещено в категорию с ограниченным доступом."</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Чат"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Групповой чат"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Личный"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Рабочий"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Нельзя обмениваться данными с рабочими приложениями"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Нельзя обмениваться данными с личными приложениями"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Нет доступных приложений"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Просмотр личных данных"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Просмотр рабочих данных"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Этим контентом нельзя делиться в рабочих приложениях"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Системный администратор запретил делиться этим контентом, используя приложения из рабочего профиля."</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Этот контент нельзя открывать в рабочих приложениях"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Системный администратор запретил открывать этот контент, используя приложения из рабочего профиля."</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Этим контентом нельзя делиться в личных приложениях"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Системный администратор запретил делиться этим контентом, используя приложения из личного профиля."</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Этот контент нельзя открывать в личных приложениях"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Системный администратор запретил открывать этот контент, используя приложения из личного профиля."</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Рабочий профиль приостановлен."</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Включить"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Нет рабочих приложений, поддерживающих этот контент."</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Нет рабочих приложений, с помощью которых можно открыть этот контент."</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Нет личных приложений, поддерживающих этот контент."</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Нет личных приложений, с помощью которых можно открыть этот контент."</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Запись и воспроизведение телефонных разговоров"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Если это приложение используется для звонков по умолчанию, оно сможет записывать и воспроизводить телефонные разговоры."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index 67f1ca1..c414174 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"ඔබගේ උපාංගය මකා දැමෙනු ඇත"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"පරිපාලක යෙදුම භාවිතා කළ නොහැකිය. ඔබේ උපාංගය දැන් මකා දමනු ඇත.\n\nඔබට ප්‍රශ්න තිබේ නම්, ඔබේ සංවිධානයේ පරිපාලකට අමතන්න."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> විසින් මුද්‍රණය කිරීම අබල කර ඇත."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"පුද්ගලික යෙදුම් පරිපාලකයෙකු විසින් අත්හිටුවා ඇත"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ප්‍රතිපත්ති අනුකූලතාව පරීක්ෂා කිරීමට මෙහි තට්ටු කරන්න."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"මම"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ටැබ්ලට විකල්ප"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV විකල්ප"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"දුරකථන විකල්ප"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"තිර අගුල"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"බල රහිත"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"හදිසි"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"දෝෂ වර්තාව"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"සැසිය අවසන් කරන්න"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"පින්තූර සහ වීඩියෝ ගන්න"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"මෙම යෙදුමට ඕනෑම වේලාවක කැමරාව භාවිත කර පින්තූර ගැනීමට සහ වීඩියෝ පටිගත කිරීමට හැකිය."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"පින්තූර සහ වීඩියෝ ගැනීමට පද්ධති කැමරාවලට යෙදුමකට හෝ සේවාවකට ප්‍රවේශය ඉඩ දෙන්න"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"මෙම වරප්‍රසාද ලත් | යෙදුමට ඕනෑම වේලාවක කැමරාව භාවිත කර පින්තූර ගැනීමට සහ වීඩියෝ පටිගත කිරීමට හැකිය. යෙදුම විසින් රඳවා තබා ගැනීමට android.permission.CAMERA ප්‍රවේශයද අවශ්‍ය වේ"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"විවෘත වෙමින් හෝ වැසෙමින් පවතින කැමරා උපාංග පිළිබඳ පසු ඇමතුම් ලබා ගැනීමට යෙදුමකට හෝ සේවාවකට ඉඩ දෙන්න."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"මෙම යෙදුමට ඕනෑම කැමරා උපාංගයක් විවෘත වෙමින් පවතින විට (කුමන යෙදුමකින්) හෝ වැසෙමින් පවතින විට පසු ඇමතුම් ලබා ගැනීමට හැකිය."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"කම්පනය පාලනය කිරීම"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"කම්පකය පාලනයට යෙදුමට අවසර දෙන්න."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"යෙදුමට කම්පන තත්ත්වයට ප්‍රවේශ වීමට ඉඩ දෙන්න."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"ඇමතුම් අත්දැකීම වැඩිදියුණු කිරීම සඳහා යෙදුමට පද්ධතිය හරහා එහි ඇමතුම් මාර්ගගත කිරීමට ඉඩ දෙයි."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"පද්ධතිය හරහා ඇමතුම් බලන්න සහ පාලනය කරන්න."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"යෙදුමට උපාංගයෙහි පවතින ඇමතුම් බැලීමට සහ පාලනය කිරීමට ඉඩ දෙයි මෙහි ඇමතුම් සඳහා ඇමතුම් අංක සහ ඇමතුම්වල තත්ත්වය වැනි තොරතුරු ඇතුළත් වේ."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ඕඩියෝ පටිගත කිරීමේ සීමා කිරීම්වලින් නිදහස් කරයි"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"ඕඩියෝ පටිගත කිරීමට සීමා කිරීම්වලින් යෙදුම නිදහස් කරයි."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"වෙනත් යෙදුමක් වෙතින් වන ඇමතුමක් දිගටම කරගෙන යන්න"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"වෙනත් යෙදුමක ආරම්භ කරන ලද ඇමතුමක් දිගටම කරගෙන යාමට යෙදුමට ඉඩ දෙයි."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"දුරකථන අංක කියවන්න"</string>
@@ -1101,28 +1116,6 @@
     <string name="deleteText" msgid="4200807474529938112">"මකන්න"</string>
     <string name="inputMethod" msgid="1784759500516314751">"ආදාන ක්‍රමය"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"පෙළ ක්‍රියාවන්"</string>
-    <string name="email" msgid="2503484245190492693">"ඊ-තැපෑල"</string>
-    <string name="email_desc" msgid="8291893932252173537">"තෝරා ගත් ලිපිනයට ඊ-තැපැල් කරන්න"</string>
-    <string name="dial" msgid="4954567785798679706">"අමතන්න"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"තෝරා ගත් දුරකථන අංකය අමතන්න"</string>
-    <string name="map" msgid="6865483125449986339">"සිතියම"</string>
-    <string name="map_desc" msgid="1068169741300922557">"තෝරා ගත් ලිපිනය සොයා ගන්න"</string>
-    <string name="browse" msgid="8692753594669717779">"විවෘත කරන්න"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"තෝරා ගත් URL විවෘත කරන්න"</string>
-    <string name="sms" msgid="3976991545867187342">"පණිවිඩය"</string>
-    <string name="sms_desc" msgid="997349906607675955">"තෝරා ගත් දුරකථන අංකයට පණිවිඩයක් යවන්න"</string>
-    <string name="add_contact" msgid="7404694650594333573">"එක් කරන්න"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"සම්බන්ධතාවලට එක් කරන්න"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"බලන්න"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"තෝරා ගත් වේලාව දින දර්ශනයෙහි බලන්න"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"කාල සටහන"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"තෝරා ගත් වේලාව සඳහා සිදුවීම කාලසටහන්ගත කරන්න"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ශ්‍රව්‍ය ඛණ්ඩය"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"තෝරා ගත් ගුවන් ගමන හඹා යන්න"</string>
-    <string name="translate" msgid="1416909787202727524">"පරිවර්තනය කරන්න"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"තෝරා ගත් පෙළ පරිවර්තනය කරන්න"</string>
-    <string name="define" msgid="5214255850068764195">"නිර්වචනය කරන්න"</string>
-    <string name="define_desc" msgid="6916651934713282645">"තෝරා ගත් පෙළ නිර්වචනය කරන්න"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"ආචයනය ඉඩ ප්‍රමාණය අඩු වී ඇත"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"සමහර පද්ධති කාර්යයන් ක්‍රියා නොකරනු ඇත"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"පද්ධතිය සඳහා ප්‍රමාණවත් ඉඩ නොමැත. ඔබට 250MB නිදහස් ඉඩක් තිබෙන ඔබට තිබෙන බව සහතික කරගෙන නැවත උත්සාහ කරන්න."</string>
@@ -1261,7 +1254,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"ජංගම ජාලවලට අන්තර්ජාල ප්‍රවේශය නැත"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"ජාලයට අන්තර්ජාල ප්‍රවේශය නැත"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"පුද්ගලික DNS සේවාදායකයට ප්‍රවේශ වීමට නොහැකිය"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"සම්බන්ධයි"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> හට සීමිත සබැඳුම් හැකියාවක් ඇත"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"කෙසේ වෙතත් ඉදිරියට යාමට තට්ටු කරන්න"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> වෙත මාරු විය"</string>
@@ -1633,21 +1625,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"නිර්දේශිතයි මට්ටමට වඩා ශබ්දය වැඩිද?\n\nදිගු කාලයක් සඳහා ඉහළ ශබ්දයක් ඇසීමෙන් ඇතැම් විට ඔබගේ ඇසීමට හානි විය හැක."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ප්‍රවේශ්‍යතා කෙටිමඟ භාවිතා කරන්නද?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"කෙටිමග ක්‍රියාත්මක විට, හඬ පරිමා බොත්තම් දෙකම තත්පර 3ක් තිස්සේ එබීමෙන් ප්‍රවේශ්‍යතා විශේෂාංගය ආරම්භ වනු ඇත."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> හට ඔබේ උපාංගයේ සම්පූර්ණ පාලනය තබා ගැනීමට ඉඩ දෙන්නද?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"ඔබ <xliff:g id="SERVICE">%1$s</xliff:g> ක්‍රියාත්මක කරන්නේ නම්, දත්ත සංකේතනය වැඩිදියුණු කිරීමට ඔබේ උපාංගය ඔබේ තිර අගුල භාවිත නොකරනු ඇත."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"පූර්ණ පාලනය ඔබට ප්‍රවේශ්‍යතා අවශ්‍යතා සමඟ උදවු කරන යෙදුම් සඳහා සුදුසු වන නමුත් බොහෝ යෙදුම් සඳහා සුදුසු නොවේ."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"තිරය බලන්න සහ පාලන කරන්න"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"එයට තිරයේ සියලුම අන්තර්ගත කියවිය හැකි අතර අනෙකුත් යෙදුම් මත අන්තර්ගතය සංදර්ශන කළ හැක."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"බලන්න සහ ක්‍රියා කරන්න"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"මෙයට යෙදුමක් හෝ දෘඪාංග සංවේදකයක් සමඟ ඔබේ අන්තර්ක්‍රියා හඹා යෑමට, සහ ඔබ වෙනුවෙන් යෙදුම් සමඟ අන්තර්ක්‍රියාවේ යෙදීමට හැකි ය."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"ඉඩ දෙන්න"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"ප්‍රතික්‍ෂේප කරන්න"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"එය භාවිත කිරීම ආරම්භ කිරීමට විශේෂාංගයක් තට්ටු කරන්න:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> ක්‍රියාවිරහිත කර ඇත"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"කෙටිමං සංස්කරණ කරන්න"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"අවලංගු කරන්න"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"නිමයි"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"කෙටිමඟ ක්‍රියාවිරහිත කරන්න"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"කෙටිමඟ භාවිතා කරන්න"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"වර්ණ අපවර්තනය"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"වර්ණ නිවැරදි කිරීම"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"ප්‍රවේශ්‍යතා කෙටි මග <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ක්‍රියාත්මක කරන ලදී"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"ප්‍රවේශ්‍යතා කෙටි මග <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ක්‍රියාවිරහිත කරන ලදී"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> භාවිත කිරීමට හඬ පරිමා යතුරු දෙකම තත්පර තුනකට ඔබාගෙන සිටින්න"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"විශාලනය"</string>
     <string name="user_switched" msgid="7249833311585228097">"දැනට සිටින පරිශීලකයා <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> වෙත මාරු කරමින්…"</string>
@@ -2018,7 +2051,8 @@
       <item quantity="one">ගොනු<xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g></item>
       <item quantity="other">ගොනු<xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g></item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"ඍජු බෙදා ගැනීම නොලැබේ"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"යෙදුම් ලැයිස්තුව"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"මෙම යෙදුමට පටිගත කිරීම් අවසරයක් ලබා දී නොමැති නමුත් මෙම USB උපාංගය හරහා ශ්‍රව්‍ය ග්‍රහණය කර ගත හැකිය."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"මුල් පිටුව"</string>
@@ -2033,31 +2067,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ප්‍රවේශ්‍යතා මෙනුව"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> හි සිරස්තල තීරුව."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> අවහිර කළ බාල්දියට දමා ඇත"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"සංවාදය"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"සමූහ සංවාදය"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"පුද්ගලික"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"කාර්යාල"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"කාර්යාල යෙදුම් සමග බෙදා ගැනීමට නොහැකිය"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"පෞද්ගලික යෙදුම් සමග බෙදා ගැනීමට නොහැකිය"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ලබා ගත හැකි යෙදුම් නැත"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"පෞද්ගලික දසුන"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"කාර්යාල දසුන"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"මෙය කාර්යාල යෙදුම් සමග බෙදා ගැනීමට නොහැකිය"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"ඔබේ IT පරිපාලක ඔබට ඔබේ කාර්යාල පැතිකඩේ ඇති යෙදුම්වලින් මෙම අන්තර්ගතය බෙදා ගැනීමට ඉඩ නොදේ"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"මෙය කාර්යාල යෙදුමෙන් විවෘත කළ නොහැකිය"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"ඔබේ IT පරිපාලක ඔබට ඔබේ කාර්යාල පැතිකඩේ ඇති යෙදුම්වලින් මෙම අන්තර්ගතය විවෘත කිරීමට ඉඩ නොදේ"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"මෙය පෞද්ගලික යෙදුම් සමග බෙදා ගැනීමට නොහැකිය"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"ඔබේ IT පරිපාලක ඔබට ඔබේ පෞද්ගලික පැතිකඩේ ඇති යෙදුම්වලින් මෙම අන්තර්ගතය බෙදා ගැනීමට ඉඩ නොදේ"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"මෙය පෞද්ගලික යෙදුම්වලින් විවෘත කළ නොහැකිය"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"ඔබේ IT පරිපාලක ඔබට ඔබේ පෞද්ගලික පැතිකඩේ ඇති යෙදුම්වලින් මෙම අන්තර්ගතය විවෘත කිරීමට ඉඩ නොදේ"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"කාර්යාල පැතිකඩ විරාම කර ඇත"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"ක්‍රියාත්මක කරන්න"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"කාර්යාල යෙදුම් කිසිවකට මෙම අන්තර්ගතයට සහාය දැක්විය නොහැකිය"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"කාර්යාල යෙදුම් කිසිවකට මෙම අන්තර්ගතය විවෘත කළ නොහැකිය"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"පෞද්ගලික යෙදුම් කිසිවකට මෙම අන්තර්ගතයට සහාය දැක්විය නොහැකිය"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"පෞද්ගලික යෙදුම් කිසිවකට මෙම අන්තර්ගතය විවෘත කළ නොහැකිය"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ටෙලිෆොනි ඇමතුම්වලින් ඕඩියෝ පටිගත කරන්න නැතහොත් වාදනය කරන්න"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"පෙරනිමි ඩයලන යෙදුමක් ලෙස පැවරූ විට, මෙම යෙදුමට ටෙලිෆොනි ඇමතුම්වලින් ඕඩියෝ පටිගත කිරීමට හෝ වාදනය කිරීමට ඉඩ දෙයි."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index de9175d..67cee61 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -204,8 +204,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Vaše zariadenie bude vymazané"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Daná aplikácia na správu sa nedá použiť. Vaše zariadenie bude vymazané.\n\nV prípade otázok kontaktujte správcu organizácie."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Tlač zakázala aplikácia <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Osobné aplikácie boli pozastavené správcom"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Klepnutím tu skontrolujte súlad s pravidlami."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Ja"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Možnosti tabletu"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Možnosti zariadenia Android TV"</string>
@@ -239,6 +245,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Možnosti telefónu"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Zámka obrazovky"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Vypnúť"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Tieseň"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Hlásenie o chybách"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Ukončiť reláciu"</string>
@@ -440,7 +450,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"fotiť a nakrúcať videá"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Táto aplikácia môže kedykoľvek fotografovať a zaznamenávať videá pomocou fotoaparátu."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Povoľte aplikácii alebo službe prístup k fotoaparátom systému na snímanie fotiek a videí"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Táto oprávnená alebo systémová aplikácia môže kedykoľvek fotiť a nahrávať videá fotoaparátom systému. Aplikácia musí mať tiež povolenie android.permission.CAMERA."</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Povoliť aplikácii alebo službe prijímať spätné volanie, keď sú zariadenia s kamerou otvorené alebo zatvorené."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"Táto aplikácia môže prijímať spätné volanie, keď je ľubovoľné zariadenie s kamerou otvorené (aplikáciou, ktorú určíte) alebo zatvorené."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"ovládať vibrovanie"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Umožňuje aplikácii ovládať vibrácie."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Povoľuje aplikácii prístup k stavu vibrátora."</string>
@@ -454,6 +467,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Umožňuje aplikácii presmerovať hovory cez systém na účely zlepšenia kvality hovorov."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"zobrazenie a kontrola hovorov prostredníctvom systému."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Umožňuje aplikácii zobrazovať a kontrolovať prebiehajúce hovory v zariadení. Táto možnosť zahŕňa údaje, akými sú napríklad čísla jednotlivých hovorov alebo stav hovorov."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"udelenie výnimky z obmedzení nahrávania zvuku"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Udeľte aplikácii výnimku z obmedzení nahrávania zvuku."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"pokračovať v hovore z inej aplikácie"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Umožňuje aplikácii pokračovať v hovore začatom v inej aplikácii."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"čítanie telefónnych čísel"</string>
@@ -1139,28 +1154,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Odstrániť"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Metóda vstupu"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Operácie s textom"</string>
-    <string name="email" msgid="2503484245190492693">"Poslať e-mail"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Napísať na vybratú e-mailovú adresu"</string>
-    <string name="dial" msgid="4954567785798679706">"Volať"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Zavolať na vybraté telefónne číslo"</string>
-    <string name="map" msgid="6865483125449986339">"Otvoriť mapu"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Nájsť vybranú adresu"</string>
-    <string name="browse" msgid="8692753594669717779">"Otvoriť"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Otvoriť vybratú webovú adresu"</string>
-    <string name="sms" msgid="3976991545867187342">"Poslať správu"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Napísať SMS na vybraté telefónne číslo"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Pridať"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Pridať medzi kontakty"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Zobraziť"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Zobraziť vybratý čas v kalendári"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Naplánovať"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Naplánovať udalosť na vybratý čas"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Sledovať"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Sledovať vybratý let"</string>
-    <string name="translate" msgid="1416909787202727524">"Preložiť"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Preložiť vybraný text"</string>
-    <string name="define" msgid="5214255850068764195">"Definovať"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definovať vybraný text"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Nedostatok ukladacieho priestoru"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Niektoré systémové funkcie nemusia fungovať"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"V úložisku nie je dostatok voľného miesta pre systém. Zaistite, aby ste mali 250 MB voľného miesta a zariadenie reštartujte."</string>
@@ -1299,7 +1292,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobilná sieť nemá prístup k internetu"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Sieť nemá prístup k internetu"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"K súkromnému serveru DNS sa nepodarilo získať prístup"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Pripojené"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> má obmedzené pripojenie"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Ak sa chcete aj napriek tomu pripojiť, klepnite"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Prepnuté na sieť: <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1675,21 +1667,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Zvýšiť hlasitosť nad odporúčanú úroveň?\n\nDlhodobé počúvanie pri vysokej hlasitosti môže poškodiť váš sluch."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Použiť skratku dostupnosti?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Keď je skratka zapnutá, stlačením obidvoch tlačidiel hlasitosti na tri sekundy spustíte funkciu dostupnosti."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Chcete povoliť službe <xliff:g id="SERVICE">%1$s</xliff:g> úplnú kontrolu nad zariadením?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Ak zapnete službu <xliff:g id="SERVICE">%1$s</xliff:g>, vaše zariadenie nezvýši úroveň šifrovania údajov zámkou obrazovky."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Úplná kontrola je vhodná pre aplikácie, ktoré vám pomáhajú s dostupnosťou, ale nie pre väčšinu aplikácií."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Zobrazenie a ovládanie obrazovky"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Môže čítať všetok obsah na obrazovke a zobrazovať obsah cez ďalšie aplikácie."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Zobrazenie a vykonávanie akcií"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Môže sledovať vaše interakcie s aplikáciou alebo hardvérovým senzorom a interagovať s aplikáciami za vás."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Povoliť"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Zamietnuť"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Klepnutím na funkciu ju začnite používať:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Služba <xliff:g id="SERVICE_NAME">%s</xliff:g> bola vypnutá"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Upraviť skratky"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Zrušiť"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Hotovo"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Vypnúť skratku"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Použiť skratku"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inverzia farieb"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Úprava farieb"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Skratka dostupnosti zapla službu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Skratka dostupnosti vypla službu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Ak chcete používať službu <xliff:g id="SERVICE_NAME">%1$s</xliff:g>, pridržte tri sekundy oba klávesy hlasitosti"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Priblíženie"</string>
     <string name="user_switched" msgid="7249833311585228097">"Aktuálny používateľ je <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Prepína sa na účet <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2084,7 +2117,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> súborov</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> súbor</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Priame zdieľanie nie je k dispozícii"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Zoznam aplikácií"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Tejto aplikácii nebolo udelené povolenie na nahrávanie, ale môže nasnímať zvuk cez toto zariadenie USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Domov"</string>
@@ -2099,31 +2133,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Ponuka Dostupnosť"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Popis aplikácie <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Balík <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> bol vložený do kontajnera OBMEDZENÉ"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Konverzácia"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Skupinová konverzácia"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Osobné"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Práca"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nedá sa zdieľa s pracovnými aplikáciami"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nedá sa zdieľať s osobnými aplikáciami"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"K dispozícii nie sú žiadne aplikácie"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Osobné zobrazenie"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Pracovné zobrazenie"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Nedá sa zdieľať s pracovnými aplikáciami"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Správca IT vám zakázal zdieľať tento obsah pomocou aplikácií v pracovnom profile"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Nedá sa otvoriť pomocou pracovných aplikácií"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Správca IT vám zakázal otvoriť tento obsah pomocou aplikácií v pracovnom profile"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Nedá sa zdieľať pomocou osobných aplikácií"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Správca IT vám zakázal zdieľať tento obsah pomocou aplikácií v osobnom profile"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Nedá sa otvoriť pomocou osobných aplikácií"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Správca IT vám zakázal otvoriť tento obsah pomocou aplikácií v osobnom profile"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Pracovný profil je pozastavený"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Zapnúť"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Tento obsah nepodporujú žiadne pracovné aplikácie"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Tento obsah neotvoria žiadne pracovné aplikácie"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Tento obsah nepodporujú žiadne osobné aplikácie"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Tento obsah neotvoria žiadne osobné aplikácie"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Nahrávanie alebo prehrávanie zvuku počas telefonických hovorov"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Povoľuje tejto aplikácii, keď je priradená ako predvolená aplikácia na vytáčanie, nahrávať alebo prehrávať zvuk počas telefonických hovorov."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index d5ae025..d6f0861 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -204,8 +204,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Podatki v napravi bodo izbrisani"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Skrbniške aplikacije ni mogoče uporabljati. Podatki v napravi bodo izbrisani.\n\nČe imate vprašanja, se obrnite na skrbnika organizacije."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Tiskanje je onemogočil pravilnik <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Osebne aplikacije je onemogočil skrbnik"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Dotaknite se tukaj, da preverite skladnost s pravilniki."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Jaz"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Možnosti tabličnega računalnika"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Možnosti naprave Android TV"</string>
@@ -239,6 +245,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Možnosti telefona"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Zaklep zaslona"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Izklopi"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Klic v sili"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Poročilo o napakah"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Končaj sejo"</string>
@@ -440,7 +450,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"fotografiranje in snemanje videoposnetkov"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Ta aplikacija lahko poljubno uporablja fotoaparat za snemanje fotografij ali videoposnetkov."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Aplikaciji ali storitvi dovoli dostop do vgrajenih fotoaparatov za snemanje fotografij in videoposnetkov"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Ta odobrena/sistemska aplikacija lahko z vgrajenim fotoaparatom kadar koli snema fotografije in videoposnetke. Aplikacija mora imeti omogočeno tudi dovoljenje android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Aplikaciji ali storitvi dovoli prejemanje povratnih klicev o odpiranju ali zapiranju naprav s fotoaparati."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"nadzor vibriranja"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Aplikaciji omogoča nadzor vibriranja."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Aplikaciji dovoljuje dostop do stanja vibriranja."</string>
@@ -454,6 +468,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Dovoli, da aplikacija usmeri klice prek sistema, da se tako izboljša izkušnja klicanja."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ogled in nadzor klicev prek sistema."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Aplikaciji dovoljuje, da si ogleda in nadzoruje aktivne klice v napravi. To vključuje informacije, kot so telefonske številke klicev in stanje klicev."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"izvzetje iz omejitev pri snemanju zvoka"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Za aplikacijo ne veljajo omejitve pri snemanju zvoka."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"Nadaljevanje klica iz druge aplikacije"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Aplikaciji dovoljuje nadaljevanje klica, ki se je začel v drugi aplikaciji."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"branje telefonskih številk"</string>
@@ -1139,28 +1155,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Izbriši"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Način vnosa"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Besedilna dejanja"</string>
-    <string name="email" msgid="2503484245190492693">"Pošlji e-pošto"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Pošlji na izbrani naslov"</string>
-    <string name="dial" msgid="4954567785798679706">"Pokliči"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Pokliči izbrano telefonsko številko"</string>
-    <string name="map" msgid="6865483125449986339">"Odpri zemljevid"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Poišči izbrani naslov na zemljevidu"</string>
-    <string name="browse" msgid="8692753594669717779">"Odpri"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Odpri izbrani URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Pošlji SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Pošlji sporočilo na izbrano telefonsko številko"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Dodaj"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Dodaj med stike"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Prikaži"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Prikaži izbrani čas v koledarju"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Dodaj na razpored"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Razporedi dogodek na izbrano uro"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Sledi"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Sledi izbranemu letu"</string>
-    <string name="translate" msgid="1416909787202727524">"Prevedi"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Prevedi izbrano besedilo"</string>
-    <string name="define" msgid="5214255850068764195">"Opredeli"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Opredeli izbrano besedilo"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Prostor za shranjevanje bo pošel"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Nekatere sistemske funkcije morda ne delujejo"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"V shrambi ni dovolj prostora za sistem. Sprostite 250 MB prostora in znova zaženite napravo."</string>
@@ -1299,7 +1293,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobilno omrežje nima dostopa do interneta"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Omrežje nima dostopa do interneta"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Do zasebnega strežnika DNS ni mogoče dostopati"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Povezava je vzpostavljena"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"Povezljivost omrežja <xliff:g id="NETWORK_SSID">%1$s</xliff:g> je omejena"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Dotaknite se, da kljub temu vzpostavite povezavo"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Preklopljeno na omrežje vrste <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1675,21 +1668,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ali želite povečati glasnost nad priporočeno raven?\n\nDolgotrajno poslušanje pri veliki glasnosti lahko poškoduje sluh."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Želite uporabljati bližnjico funkcij za ljudi s posebnimi potrebami?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Ko je bližnjica vklopljena, pritisnite gumba za glasnost in ju pridržite tri sekunde, če želite zagnati funkcijo za ljudi s posebnimi potrebami."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Ali storitvi <xliff:g id="SERVICE">%1$s</xliff:g> dovolite popoln nadzor nad svojo napravo?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Če vklopite storitev <xliff:g id="SERVICE">%1$s</xliff:g>, vaša naprava ne bo uporabljala zaklepanja zaslona za izboljšanje šifriranja podatkov."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Popoln nadzor je ustrezen za aplikacije, ki vam pomagajo pri funkcijah za ljudi s posebnimi potrebami, vendar ne za večino aplikacij."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ogledovanje in upravljanje zaslona"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Bere lahko vso vsebino na zaslonu ter prikaže vsebino prek drugih aplikacij."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Ogledovanje in izvajanje dejanj"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Spremlja lahko vaše interakcije z aplikacijo ali senzorjem strojne opreme ter komunicira z aplikacijami v vašem imenu."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Dovoli"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Zavrni"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Če želite začeti uporabljati funkcijo, se je dotaknite:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Storitev <xliff:g id="SERVICE_NAME">%s</xliff:g> je izklopljena"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Uredi bližnjice"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Prekliči"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Končano"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Izklopi bližnjico"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Uporabi bližnjico"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inverzija barv"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Popravljanje barv"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Bližnjica funkcij za ljudi s posebnimi potrebami je vklopila <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Bližnjica funkcij za ljudi s posebnimi potrebami je izklopila <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Za uporabo storitve <xliff:g id="SERVICE_NAME">%1$s</xliff:g> pritisnite obe tipki za glasnost in ju pridržite tri sekunde"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Povečava"</string>
     <string name="user_switched" msgid="7249833311585228097">"Trenutni uporabnik <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Preklop na uporabnika <xliff:g id="NAME">%1$s</xliff:g> …"</string>
@@ -2084,7 +2118,8 @@
       <item quantity="few"><xliff:g id="FILE_NAME_2">%s</xliff:g> in še <xliff:g id="COUNT_3">%d</xliff:g> datoteke</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> in še <xliff:g id="COUNT_3">%d</xliff:g> datotek</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Neposredna skupna raba ni na voljo"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Seznam aplikacij"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Ta aplikacija sicer nima dovoljenja za snemanje, vendar bi lahko zajemala zvok prek te naprave USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Začetni zaslon"</string>
@@ -2099,31 +2134,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Meni s funkcijami za ljudi s posebnimi potrebami"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Vrstica s podnapisi aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Paket <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> je bil dodan v segment OMEJENO"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Pogovor"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Skupinski pogovor"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Osebno"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Služba"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Deljenje z delovnimi aplikacijami ni mogoče"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Deljenje z osebnimi aplikacijami ni mogoče"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Na voljo ni nobena aplikacija"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Pogled osebnega profila"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Pogled delovnega profila"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Tega ne smete deliti z delovnimi aplikacijami"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Skrbnik za IT vam ne dovoli deljenja te vsebine z aplikacijami v delovnem profilu"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Tega ne smete odpreti z delovnimi aplikacijami"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Skrbnik za IT vam ne dovoli odpiranja te vsebine z aplikacijami v delovnem profilu"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Tega ne smete deliti z osebnimi aplikacijami"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Skrbnik za IT vam ne dovoli deljenja te vsebine z aplikacijami v osebnem profilu"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Tega ne smete odpreti z osebnimi aplikacijami"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Skrbnik za IT vam ne dovoli odpiranja te vsebine z aplikacijami v osebnem profilu"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Delovni profil je začasno zaustavljen"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Vklop"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Nobena delovna aplikacija ne podpira te vsebine"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Nobena delovna aplikacija ne more odpreti te vsebine"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Nobena osebna aplikacija ne podpira te vsebine"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Nobena osebna aplikacija ne more odpreti te vsebine"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Snemanje ali predvajanje zvoka med telefonskimi klici"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Tej aplikaciji dovoljuje snemanje ali predvajanje zvoka med telefonskimi klici, ko je nastavljena kot privzeta aplikacija za klicanje."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml
index 3cb7288..553b03a 100644
--- a/core/res/res/values-sq/strings.xml
+++ b/core/res/res/values-sq/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Pajisja do të spastrohet"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Aplikacioni i administratorit nuk mund të përdoret. Pajisja jote tani do të fshihet.\n\nNëse ke pyetje, kontakto me administratorin e organizatës."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Printimi është çaktivizuar nga <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Aplikacionet personale janë pezulluar nga një administrator"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Trokit këtu për të kontrolluar përputhshmërinë me politikën."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Unë"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opsionet e tabletit"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Opsionet e Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Opsionet e telefonit"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Kyçja e ekranit"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Fik"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Urgjenca"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Raporti i defekteve në kod"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Jepi fund sesionit"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"bëj fotografi dhe video"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Ky aplikacion mund të nxjerrë fotografi dhe të regjistrojë video me kamerën tënde në çdo kohë."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Lejo një aplikacion ose shërbim të ketë qasje në kamerat e sistemit për të shkrepur fotografi dhe regjistruar video"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Ky aplikacion sistemi | i privilegjuar mund të shkrepë fotografi dhe të regjistrojë video duke përdorur një kamerë në çdo moment. Kërkon që autorizimi i android.permission.CAMERA të mbahet edhe nga aplikacioni"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Lejo që një aplikacion ose shërbim të marrë telefonata mbrapsht për pajisjet e kamerës që hapen ose mbyllen."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"Ky aplikacion mund të marrë telefonata mbrapsht kur hapet ose mbyllet një pajisje e kamerës (nga një aplikacion)."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"kontrollo dridhjen"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Lejon aplikacionin të kontrollojë dridhësin."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Lejon që aplikacioni të ketë qasje te gjendja e dridhësit."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Lejon që aplikacioni të kalojë telefonatat përmes sistemit për të përmirësuar përvojën e telefonatës."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"Shiko dhe kontrollo telefonatat nëpërmjet sistemit."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Lejon që aplikacioni të shikojë dhe të kontrollojë telefonatat në vazhdim në pajisje. Kjo përfshin informacione si p.sh. numrat e telefonatave për telefonatat dhe gjendjen e telefonatave."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"përjashto nga kufizimet e regjistrimit të audios"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Përjashto aplikacionin nga kufizimet për të regjistruar audion."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"vazhdo një telefonatë nga një aplikacion tjetër"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Lejon që aplikacioni të vazhdojë një telefonatë që është nisur në një aplikacion tjetër."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"lexo numrat e telefonit"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Fshi"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Metoda e hyrjes"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Veprimet e tekstit"</string>
-    <string name="email" msgid="2503484245190492693">"Dërgo mail"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Dërgo email tek adresa e zgjedhur"</string>
-    <string name="dial" msgid="4954567785798679706">"Telefono"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Telefono në numrin e zgjedhur të telefonit"</string>
-    <string name="map" msgid="6865483125449986339">"Hap hartën"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Gjej adresën e zgjedhur"</string>
-    <string name="browse" msgid="8692753594669717779">"Hap"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Hap URL-në e zgjedhur"</string>
-    <string name="sms" msgid="3976991545867187342">"Dërgo mesazh"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Dërgo mesazh te numri i zgjedhur i telefonit"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Shto"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Shto te kontaktet"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Shiko"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Shiko kohën e zgjedhur në kalendar"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Planifiko"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Planifiko ngjarjen për kohën e zgjedhur"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Monitoro"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Monitoro fluturimin e zgjedhur"</string>
-    <string name="translate" msgid="1416909787202727524">"Përkthe"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Përkthe tekstin e zgjedhur"</string>
-    <string name="define" msgid="5214255850068764195">"Përkufizo"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Përkufizo tekstin e zgjedhur"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Hapësira ruajtëse po mbaron"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Disa funksione të sistemit mund të mos punojnë"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Nuk ka hapësirë të mjaftueshme ruajtjeje për sistemin. Sigurohu që të kesh 250 MB hapësirë të lirë dhe pastaj të rifillosh."</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Rrjeti celular nuk ka qasje në internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Rrjeti nuk ka qasje në internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Serveri privat DNS nuk mund të qaset"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Lidhur"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> ka lidhshmëri të kufizuar"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Trokit për t\'u lidhur gjithsesi"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Kaloi te <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Të ngrihet volumi mbi nivelin e rekomanduar?\n\nDëgjimi me volum të lartë për periudha të gjata mund të dëmtojë dëgjimin."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Të përdoret shkurtorja e qasshmërisë?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kur shkurtorja është e aktivizuar, shtypja e të dy butonave për 3 sekonda do të nisë një funksion qasshmërie."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Do të lejosh që <xliff:g id="SERVICE">%1$s</xliff:g> të ketë kontroll të plotë të pajisjes sate?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Nëse aktivizon <xliff:g id="SERVICE">%1$s</xliff:g>, pajisja nuk do të përdorë kyçjen e ekranit për të përmirësuar enkriptimin e të dhënave."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Kontrolli i plotë është i përshtatshëm për aplikacionet që të ndihmojnë me nevojat e qasshmërisë, por jo për shumicën e aplikacioneve."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Shiko dhe kontrollo ekranin"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Ai mund të lexojë të gjithë përmbajtjen në ekran dhe të shfaqë përmbajtjen mbi aplikacione të tjera."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Shiko dhe kryej veprimet"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Ai mund të monitorojë ndërveprimet me një aplikacion ose një sensor hardueri dhe të ndërveprojë me aplikacionet në emrin tënd."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Lejo"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Refuzo"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Trokit te një veçori për të filluar ta përdorësh atë:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> është çaktivizuar"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Redakto shkurtoret"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Anulo"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"U krye"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Çaktivizo shkurtoren"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Përdor shkurtoren"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Kthimi i ngjyrës"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Korrigjimi i ngjyrës"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Shkurtorja e qasshmërisë e aktivizoi <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Shkurtorja e qasshmërisë e çaktivizoi <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Shtyp dhe mbaj shtypur të dy butonat e volumit për tre sekonda për të përdorur <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Zmadhimi"</string>
     <string name="user_switched" msgid="7249833311585228097">"Emri i përdoruesit aktual: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Po kalon në <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2049,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> skedarë</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> skedar</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Ndarja e drejtpërdrejtë nuk ofrohet"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Lista e aplikacioneve"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Këtij aplikacioni nuk i është dhënë leje për regjistrim, por mund të regjistrojë audio përmes kësaj pajisjeje USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Ekrani bazë"</string>
@@ -2031,31 +2065,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menyja e qasshmërisë"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Shiriti i nëntitullit të <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> është vendosur në grupin E KUFIZUAR"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Biseda"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Bisedë në grup"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Puna"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Nuk mund të ndash me aplikacionet e punës"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Nuk mund të ndash me aplikacionet personale"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Nuk ofrohet asnjë aplikacion"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Pamja personale"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Pamja e punës"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Nuk mund ta ndash këtë me aplikacionet e punës"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Administratori yt i teknologjisë së informacionit nuk të lejon ta ndash këtë përmbajtje me aplikacionet në profilin tënd të punës"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Nuk mund ta hapësh këtë me aplikacionet e punës"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Administratori yt i teknologjisë së informacionit nuk të lejon ta hapësh këtë përmbajtje me aplikacionet në profilin tënd të punës"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Nuk mund ta ndash këtë me aplikacionet personale"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Administratori yt i teknologjisë së informacionit nuk të lejon ta ndash këtë përmbajtje me aplikacionet në profilin tënd personal"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Nuk mund ta hapësh këtë me aplikacionet personale"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Administratori yt i teknologjisë së informacionit nuk të lejon ta hapësh këtë përmbajtje me aplikacionet në profilin tënd personal"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Profili i punës është në pauzë"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Aktivizo"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Asnjë aplikacion pune nuk mund ta mbështesë këtë përmbajtje"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Asnjë aplikacion pune nuk mund ta hapë këtë përmbajtje"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Asnjë aplikacion personal nuk mund ta mbështesë këtë përmbajtje"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Asnjë aplikacion personal nuk mund ta hapë këtë përmbajtje"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Të regjistrojë ose luajë audio në telefonata"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Lejon këtë aplikacion, kur caktohet si aplikacioni i parazgjedhur i formuesit të numrave, të regjistrojë ose luajë audio në telefonata."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index c84f4a9..014ad3a 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -202,8 +202,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Уређај ће бити обрисан"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Не можете да користите ову апликацију за администраторе. Уређај ће сада бити обрисан.\n\nАко имате питања, контактирајте администратора организације."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Штампање је онемогућила апликација <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Администратор је суспендовао личне апликације"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Додирните овде да бисте проверили усклађеност са смерницама."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Ја"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Опције за таблет"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Опције Android TV-а"</string>
@@ -237,6 +243,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Опције телефона"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Закључај екран"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Искључи"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Хитни позив"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Извештај о грешци"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Заврши сесију"</string>
@@ -437,7 +447,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"снимање фотографија и видео снимака"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Ова апликација може да снима фотографије и видео снимке помоћу камере у било ком тренутку."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Дозволите некој апликацији или услузи да приступа камерама система да би снимала слике и видео снимке"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Ова привилегована | системска апликација може да снима слике и видео снимке помоћу камере система у било ком тренутку. Апликација треба да има и дозволу android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Дозволите апликацији или услузи да добија повратне позиве о отварању или затварању уређаја са камером."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"контрола вибрације"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Дозвољава апликацији да контролише вибрацију."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Дозвољава апликацији да приступа стању вибрирања."</string>
@@ -451,6 +465,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Дозвољава апликацији да преусмерава позиве преко система да би побољшала доживљај позивања."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"преглед и контрола позива преко система."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Дозвољава апликацији да прегледа и контролише тренутне позиве на уређају. То обухвата информације попут бројева телефона и статуса позива."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"изузимање из ограничења за снимање звука"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Изузмите апликацију из ограничења за снимање звука."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"настави позив у другој апликацији"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Дозвољава апликацији да настави позив који је започет у другој апликацији."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"читање бројева телефона"</string>
@@ -1119,28 +1135,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Избриши"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Метод уноса"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Радње у вези са текстом"</string>
-    <string name="email" msgid="2503484245190492693">"Пошаљи имејл"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Пошаљите имејл на изабрану адресу"</string>
-    <string name="dial" msgid="4954567785798679706">"Позови"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Позовите изабрани број телефона"</string>
-    <string name="map" msgid="6865483125449986339">"Прикажи на мапи"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Пронађите изабрану адресу"</string>
-    <string name="browse" msgid="8692753594669717779">"Отвори"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Отворите изабрани URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Пошаљи SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Пошаљите SMS на изабрани број телефона"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Додај"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Додајте у контакте"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Прикажи"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Погледајте изабрано време у календару"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Закажи"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Закажите догађај у изабрано време"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Прати"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Пратите изабрани лет"</string>
-    <string name="translate" msgid="1416909787202727524">"Преведи"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Преведите изабрани текст"</string>
-    <string name="define" msgid="5214255850068764195">"Дефиниши"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Дефинишите изабрани текст"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Меморијски простор је на измаку"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Неке системске функције можда не функционишу"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Нема довољно меморијског простора за систем. Уверите се да имате 250 MB слободног простора и поново покрените."</string>
@@ -1279,7 +1273,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Мобилна мрежа нема приступ интернету"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Мрежа нема приступ интернету"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Приступ приватном DNS серверу није успео"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Повезано је"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> има ограничену везу"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Додирните да бисте се ипак повезали"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Прешли сте на тип мреже <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1653,21 +1646,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Желите да појачате звук изнад препорученог нивоа?\n\nСлушање гласне музике дуже време може да вам оштети слух."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Желите ли да користите пречицу за приступачност?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Када је пречица укључена, притисните оба дугмета за јачину звука да бисте покренули функцију приступачности."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Желите ли да дозволите да услуга <xliff:g id="SERVICE">%1$s</xliff:g> има потпуну контролу над уређајем?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Ако укључите услугу <xliff:g id="SERVICE">%1$s</xliff:g>, уређај неће користити закључавање екрана да би побољшао шифровање података."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Потпуна контрола је примерена за апликације које вам помажу код услуга приступачности, али не и за већину апликација."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Прегледај и контролиши екран"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Може да чита сав садржај на екрану и приказује га у другим апликацијама."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Прегледај и обављај радње"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Може да прати интеракције са апликацијом или сензором хардвера и користи апликације уместо вас."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Дозволи"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Одбиј"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Додирните неку функцију да бисте почели да је користите:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Услуга <xliff:g id="SERVICE_NAME">%s</xliff:g> је искључена"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Измените пречице"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Откажи"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Готово"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Искључи пречицу"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Користи пречицу"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Инверзија боја"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Корекција боја"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Пречица за приступачност је укључила услугу <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Пречица за приступачност је искључила услугу <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Притисните и задржите оба тастера за јачину звука три секунде да бисте користили <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Увећање"</string>
     <string name="user_switched" msgid="7249833311585228097">"Актуелни корисник <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Пребацивање на <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2050,7 +2084,8 @@
       <item quantity="few"><xliff:g id="FILE_NAME_2">%s</xliff:g> и још <xliff:g id="COUNT_3">%d</xliff:g> датотеке</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> и још <xliff:g id="COUNT_3">%d</xliff:g> датотека</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Директно дељење није доступно"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Листа апликација"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Ова апликација нема дозволу за снимање, али би могла да снима звук помоћу овог USB уређаја."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Почетак"</string>
@@ -2065,31 +2100,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Мени Приступачност"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Трака са насловима апликације <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакет <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> је додат у сегмент ОГРАНИЧЕНО"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Конверзација"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Групна конверзација"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Лични"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Пословни"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Не можете да делите садржај са апликацијама за посао"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Не можете да делите садржај са личним апликацијама"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Нема доступних апликација"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Лични приказ"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Приказ за посао"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Не можете да делите овај садржај помоћу апликација за посао"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"ИТ администратор вам не дозвољава да делите овај садржај помоћу апликација на профилу за Work"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Не можете да отворите овај садржај помоћу апликација за посао"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"ИТ администратор вам не дозвољава да отворите овај садржај помоћу апликација на профилу за Work"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Не можете да делите овај садржај помоћу личних апликација"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"ИТ администратор вам не дозвољава да делите овај садржај помоћу апликација на личном профилу"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Не можете да отворите овај садржај помоћу личних апликација"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"ИТ администратор вам не дозвољава да отворите овај садржај помоћу апликација на личном профилу"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Профил за Work је паузиран"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Укључи"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Ниједна апликација за посао не може да подржава овај садржај"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Ниједна апликација за посао не може да отвори овај садржај"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Ниједна лична апликација не може да подржава овај садржај"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Ниједна лична апликација не може да отвори овај садржај"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Снимање или пуштање звука у телефонским позивима"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Омогућава овој апликацији, када је додељена као подразумевана апликација за позивање, да снима или пушта звук у телефонским позивима."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 4c07f22..05a1abe 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Enheten kommer att rensas"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Det går inte att använda administratörsappen. Enheten rensas.\n\nKontakta organisationens administratör om du har några frågor."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Utskrift har inaktiverats av <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Administratören har stängt av privata appar"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tryck här för att kontrollera att policyn följs."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Jag"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Alternativ för surfplattan"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Alternativ för Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Telefonalternativ"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Skärmlås"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Stäng av"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Nödsituation"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Felrapport"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Avsluta session"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ta bilder och spela in videoklipp"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Appen kan ta kort och spela in video med kameran när som helst."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Ge en app eller tjänst behörighet att ta bilder och spela in videor med systemets kameror"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Denna systemapp | med behörighet kan ta bilder och spela in videor med systemets kamera när som helst. Appen måste även ha behörigheten android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Tillåt att en app eller tjänst får återanrop när en kameraenhet öppnas eller stängs."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"styra vibration"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Tillåter att appen styr vibrationen."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Appen beviljas åtkomst till vibrationsstatus."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Appen tillåts att dirigera samtal via systemet för att förbättra samtalsupplevelsen."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"visa och styra samtal via systemet."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Tillåter att appen kan visa och styra pågående samtal på enheten. Detta omfattar information som telefonnummer för samtal och samtalens status."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"undanta från begränsningar för ljudinspelning"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Undanta appen från begränsningar för ljudinspelning."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"fortsätta ett samtal från en annan app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Tillåter att appen fortsätter ett samtal som har startats i en annan app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"läsa telefonnummer"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Ta bort"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Indatametod"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Textåtgärder"</string>
-    <string name="email" msgid="2503484245190492693">"Skicka e-post"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Skicka e-post till vald adress"</string>
-    <string name="dial" msgid="4954567785798679706">"Ring"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Ring valt telefonnummer"</string>
-    <string name="map" msgid="6865483125449986339">"Öppna karta"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Hitta den valda adressen"</string>
-    <string name="browse" msgid="8692753594669717779">"Öppna"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Öppna vald webbadress"</string>
-    <string name="sms" msgid="3976991545867187342">"Sms:a"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Skicka meddelande till valt telefonnummer"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Lägg till"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Lägg till i Kontakter"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Visa"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Visa vald tid i kalendern"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Schemalägg"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Schemalägg händelse på den valda tiden"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Spåra"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Spåra valt flyg"</string>
-    <string name="translate" msgid="1416909787202727524">"Översätt"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Översätt markerad text"</string>
-    <string name="define" msgid="5214255850068764195">"Definiera"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Definiera markerad text"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Lagringsutrymmet börjar ta slut"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Det kan hända att vissa systemfunktioner inte fungerar"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Det finns inte tillräckligt med utrymme för systemet. Kontrollera att du har ett lagringsutrymme på minst 250 MB och starta om."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobilnätverket har ingen internetanslutning"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Nätverket har ingen internetanslutning"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Det går inte att komma åt den privata DNS-servern."</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Ansluten"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> har begränsad anslutning"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Tryck för att ansluta ändå"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Byte av nätverk till <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vill du höja volymen över den rekommenderade nivån?\n\nAtt lyssna med stark volym långa stunder åt gången kan skada hörseln."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vill du använda Aktivera tillgänglighet snabbt?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"När kortkommandot har aktiverats startar du en tillgänglighetsfunktion genom att trycka ned båda volymknapparna i tre sekunder."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Vill du tillåta att <xliff:g id="SERVICE">%1$s</xliff:g> får fullständig kontroll över enheten?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Om du aktiverar <xliff:g id="SERVICE">%1$s</xliff:g> används inte skärmlåset för att förbättra datakryptering på enheten."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Fullständig kontroll lämpar sig för appar med tillgänglighetsfunktioner, men är inte lämplig för de flesta appar."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Visa och styra skärmen"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Den kan läsa allt innehåll på skärmen och visa innehåll över andra appar."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Visa och vidta åtgärder"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Den kan registrera din användning av en app eller maskinvarusensor och interagera med appar åt dig."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Tillåt"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Neka"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Tryck på funktioner som du vill aktivera:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> har inaktiverats"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Redigera genvägar"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Avbryt"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Klar"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Inaktivera kortkommandot"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Använd kortkommandot"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Inverterade färger"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Färgkorrigering"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> aktiverades av Aktivera tillgänglighet snabbt"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> inaktiverades av Aktivera tillgänglighet snabbt"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Tryck och håll båda volymknapparna i tre sekunder för att använda <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Förstoring"</string>
     <string name="user_switched" msgid="7249833311585228097">"Nuvarande användare: <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Byter till <xliff:g id="NAME">%1$s</xliff:g> …"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> filer</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> fil</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Dela direkt är inte tillgängligt"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Applista"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Appen har inte fått inspelningsbehörighet men kan spela in ljud via denna USB-enhet."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Startsida"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Tillgänglighetsmenyn"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Textningsfält för <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> har placerats i hinken RESTRICTED"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Konversation"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Gruppkonversation"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Privat"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Jobb"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Det går inte att dela med jobbappar"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Det går inte att dela med personliga appar"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Det finns inga tillgängliga appar"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Personlig vy"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Jobbvy"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Det går inte att dela detta med jobbappar"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"IT-administratören tillåter inte att du delar innehållet med appar i din jobbprofil"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Det går inte att öppna detta med jobbappar"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"IT-administratören tillåter inte att du öppnar innehållet med appar i din jobbprofil"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Det går inte att dela detta med privata appar"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"IT-administratören tillåter inte att du delar innehållet med appar i din privata profil"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Det går inte att öppna detta med privata appar"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"IT-administratören tillåter inte att du öppnar innehållet med appar i din privata profil"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Jobbprofilen är pausad"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Aktivera"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Inga jobbappar har stöd för det här innehållet"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Det går inte att öppna innehållet med några jobbappar"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Inga privata appar har stöd för det här innehållet"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Det går inte att öppna innehållet med några privata appar"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Spela in och spela upp ljud i telefonsamtal"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Tillåter appen att spela in och spela upp ljud i telefonsamtal när den har angetts som standardapp för uppringningsfunktionen."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index b5c07b3..bea3803 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Data iliyomo kwenye kifaa chako itafutwa"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Huwezi kutumia programu ya msimamizi. Sasa data iliyo kwenye kifaa chako itafutwa.\n\nIkiwa una maswali yoyote, wasiliana na msimamizi wa shirika lako."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Kipengele cha kuchapisha kimezimwa na <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Programu za binafsi zimesimamishwa na msimamizi"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Gusa hapa ili uangalie utii wa sera."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Mimi"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Chaguo za kompyuta ndogo"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Chaguo za Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Chaguo za simu"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Funga skrini"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Zima"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Dharura"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Ripoti ya hitilafu"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Maliza kipindi"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"Kupiga picha na kurekodi video"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Programu hii inaweza kupiga picha na kurekodi video kwa kutumia kamera wakati wowote."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Ruhusu programu au huduma ifikie kamera za mfumo ili ipige picha na irekodi video"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Programu hii ya mfumo ya | inayopendelewa inaweza kupiga picha na kurekodi video ikitumia kamera ya mfumo wakati wowote. Inahitaji ruhusa ya android.permission.CAMERA iwepo kwenye programu pia"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Ruhusu programu au huduma ipokee simu zinazopigwa tena kuhusu vifaa vya kamera kufunguliwa au kufungwa."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"Kudhibiti mtetemo"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Inaruhusu programu kudhibiti kitingishi."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Huruhusu programu kufikia hali ya kitetemeshaji."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Huruhusu programu kuelekeza simu zake kupitia mfumo ili kuboresha hali ya kupiga simu."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"kuona na kudhibiti simu kupitia mfumo."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Inaruhusu programu ione na kudhibiti simu zinazoendelea kupigwa kwenye kifaa. Hii inajumuisha maelezo kama vile nambari za simu zinazopigwa na hali ya simu."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ondoa vikwazo vya kurekodi sauti"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Ondolea programu vikwazo ili urekodi sauti."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"endelea na simu kutoka programu nyingine"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Huruhusu programu kuendelea na simu ambayo ilianzishwa katika programu nyingine."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"kusoma nambari za simu"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Futa"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Mbinu ya uingizaji"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Vitendo vya maandishi"</string>
-    <string name="email" msgid="2503484245190492693">"Barua pepe"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Tuma barua pepe kwa anwani uliyochagua"</string>
-    <string name="dial" msgid="4954567785798679706">"Simu"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Piga simu kwa nambari uliyochagua"</string>
-    <string name="map" msgid="6865483125449986339">"Ramani"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Fungua anwani uliyochagua"</string>
-    <string name="browse" msgid="8692753594669717779">"Fungua"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Fungua URL uliyochagua"</string>
-    <string name="sms" msgid="3976991545867187342">"Ujumbe"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Tuma SMS kwa nambari ya simu uliyochagua"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Ongeza"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Ongeza kwenye anwani"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Angalia"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Angalia wakati uliochagua katika kalenda"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Ratibu"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Ratibu tukio la wakati uliochagua"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Fuatilia"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Fuatilia ndege uliyochagua"</string>
-    <string name="translate" msgid="1416909787202727524">"Tafsiri"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Tafsiri maandishi yaliyochaguliwa"</string>
-    <string name="define" msgid="5214255850068764195">"Fafanua"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Fafanua maandishi yaliyochaguliwa"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Nafasi ya kuhifadhi inakaribia kujaa"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Baadhi ya vipengee vya mfumo huenda visifanye kazi"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Hifadhi haitoshi kwa ajili ya mfumo. Hakikisha una MB 250 za nafasi ya hifadhi isiyotumika na uanzishe upya."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mtandao wa simu hauna uwezo wa kufikia intaneti"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Mtandao hauna uwezo wa kufikia intaneti"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Seva ya faragha ya DNS haiwezi kufikiwa"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Imeunganisha"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> ina muunganisho unaofikia huduma chache."</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Gusa ili uunganishe tu"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Sasa inatumia <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ungependa kupandisha sauti zaidi ya kiwango kinachopendekezwa?\n\nKusikiliza kwa sauti ya juu kwa muda mrefu kunaweza kuharibu uwezo wako wa kusikia."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Ungependa kutumia njia ya mkato ya ufikivu?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Unapowasha kipengele cha njia ya mkato, hatua ya kubonyeza vitufe vyote viwili vya sauti kwa sekunde tatu itafungua kipengele cha ufikivu."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Ungependa kuruhusu <xliff:g id="SERVICE">%1$s</xliff:g> idhibiti kifaa chako kikamilifu?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Ukiwasha <xliff:g id="SERVICE">%1$s</xliff:g>, kifaa chako hakitatumia kipengele cha kufunga skrini yako ili kuboresha usimbaji wa data kwa njia fiche."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Udhibiti kamili unafaa kwa programu zinazokusaidia kwa mahitaji ya ufikivu, ila si kwa programu nyingi."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Kuangalia na kudhibiti skrini"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Kinaweza kusoma maudhui yote kwenye skrini na kuonyesha maudhui kwenye programu zingine."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Kuangalia na kutekeleza vitendo"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Kinaweza kufuatilia mawasiliano yako na programu au kitambuzi cha maunzi na kuwasiliana na programu zingine kwa niaba yako."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Ruhusu"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Kataa"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Gusa kipengele ili uanze kukitumia:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Huduma ya <xliff:g id="SERVICE_NAME">%s</xliff:g> imezimwa"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Kubadilisha njia za mkato"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Ghairi"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Nimemaliza"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Zima kipengele cha Njia ya Mkato"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Tumia Njia ya Mkato"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Ugeuzaji rangi"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Usahihishaji wa rangi"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Njia ya mkato ya ufikivu imewasha <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Njia ya mkato ya ufikivu imezima <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Bonyeza na ushikilie vitufe vyote viwili vya sauti kwa sekunde tatu ili utumie <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ukuzaji"</string>
     <string name="user_switched" msgid="7249833311585228097">"Mtumiaji wa sasa <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Inabadili kwenda <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other">Faili <xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g></item>
       <item quantity="one">Faili <xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g></item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Huwezi kushiriki moja kwa moja"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Orodha ya programu"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Programu hii haijapewa ruhusa ya kurekodi lakini inaweza kurekodi sauti kupitia kifaa hiki cha USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Mwanzo"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menyu ya Ufikivu"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Upau wa manukuu wa <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> kimewekwa katika kikundi KILICHODHIBITIWA"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Mazungumzo"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Mazungumzo ya Kikundi"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Binafsi"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Kazini"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Imeshindwa kushiriki na programu za kazini"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Imeshindwa kushiriki na programu za binafsi"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Hakuna programu zinazopatikana"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Mwonekano wa binafsi"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Mwonekano wa kazini"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Imeshindwa kushiriki maudhui haya na programu za kazini"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Msimamizi wako wa TEHAMA hakuruhusu ushiriki maudhui haya ukitumia programu zilizo kwenye wasifu wako wa kazini"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Huwezi kufungua maudhui haya ukitumia programu za kazini"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Msimamizi wako wa TEHAMA hakuruhusu ufungue maudhui haya ukitumia programu zilizo kwenye wasifu wako wa kazini"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Imeshindwa kushiriki maudhui haya na programu za binafsi"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Msimamizi wako wa TEHAMA hakuruhusu ushiriki maudhui haya ukitumia programu zilizo kwenye wasifu wako wa binafsi"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Huwezi kufungua maudhui haya ukitumia programu za binafsi"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Msimamizi wako wa TEHAMA hakuruhusu ufungue maudhui haya ukitumia programu zilizo kwenye wasifu wako wa binafsi"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Wasifu wa kazini umesimamishwa"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Washa"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Hakuna programu za kazini zinazoweza kutumia maudhui haya"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Hakuna programu za kazini zinazoweza kufungua maudhui haya"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Hakuna programu za binafsi zinazoweza kutumia maudhui haya"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Hakuna programu za binafsi zinazoweza kufungua maudhui haya"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Kurekodi au kucheza sauti katika simu"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Huruhusu programu hii, wakati imekabidhiwa kuwa programu chaguomsingi ya kipiga simu, kurekodi au kucheza sauti katika simu."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-sw600dp/config.xml b/core/res/res/values-sw600dp/config.xml
index c891268..368e307 100644
--- a/core/res/res/values-sw600dp/config.xml
+++ b/core/res/res/values-sw600dp/config.xml
@@ -45,5 +45,8 @@
     <!-- Controls whether the nav bar can move from the bottom to the side in landscape.
          Only applies if the device display is not square. -->
     <bool name="config_navBarCanMove">false</bool>
+
+    <!-- Set to true to enable the user switcher on the keyguard. -->
+    <bool name="config_keyguardUserSwitcher">true</bool>
 </resources>
 
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index 8a8a327..ff75921 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"சாதனத் தரவு அழிக்கப்படும்"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"நிர்வாகி ஆப்ஸை உபயோகிக்க முடியாது. இப்போது, உங்கள் சாதனம் ஆரம்ப நிலைக்கு மீட்டமைக்கப்படும்.\n\nஏதேனும் கேள்விகள் இருப்பின், உங்கள் நிறுவனத்தின் நிர்வாகியைத் தொடர்புகொள்ளவும்."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"பிரிண்ட் செய்வதை <xliff:g id="OWNER_APP">%s</xliff:g> தடுத்துள்ளது."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"தனிப்பட்ட ஆப்ஸை நிர்வாகி ஒருவர் இடைநிறுத்தியுள்ளார்"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"கொள்கை இணக்கத்தைச் சரிபார்ப்பதற்கு இங்கே தட்டவும்."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"நான்"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"டேப்லெட் விருப்பங்கள்"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV விருப்பத்தேர்வுகள்"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"தொலைபேசி விருப்பங்கள்"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"திரைப் பூட்டு"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"பவர் ஆஃப்"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"அவசர அழைப்பு"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"பிழை அறிக்கை"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"அமர்வை முடிக்கிறது"</string>
@@ -249,10 +259,8 @@
       <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> வினாடிகளில் பிழை அறிக்கைக்கான ஸ்கிரீன்ஷாட் எடுக்கப்படும்.</item>
       <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> வினாடியில் பிழை அறிக்கைக்கான ஸ்கிரீன்ஷாட் எடுக்கப்படும்.</item>
     </plurals>
-    <!-- no translation found for bugreport_screenshot_success_toast (7986095104151473745) -->
-    <skip />
-    <!-- no translation found for bugreport_screenshot_failure_toast (6736320861311294294) -->
-    <skip />
+    <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"பிழை அறிக்கை ஸ்க்ரீன்ஷாட் எடுக்கப்பட்டது"</string>
+    <string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"பிழை அறிக்கையை ஸ்க்ரீன்ஷாட் எடுக்க முடியவில்லை"</string>
     <string name="global_action_toggle_silent_mode" msgid="8464352592860372188">"நிசப்த பயன்முறை"</string>
     <string name="global_action_silent_mode_on_status" msgid="2371892537738632013">"ஒலி முடக்கத்தில் உள்ளது"</string>
     <string name="global_action_silent_mode_off_status" msgid="6608006545950920042">"ஒலி இயக்கத்தில் உள்ளது"</string>
@@ -436,7 +444,12 @@
     <string name="permlab_camera" msgid="6320282492904119413">"படங்கள் மற்றும் வீடியோக்களை எடுத்தல்"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"இந்த ஆப்ஸ் எப்போது வேண்டுமானாலும் கேமராவைப் பயன்படுத்தி படங்களை எடுக்கலாம், வீடியோக்களை ரெக்கார்டு செய்யலாம்."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"படங்களையும் வீடியோக்களையும் எடுப்பதற்கு சிஸ்டம் கேமராக்களை அணுக ஆப்ஸையோ சேவையையோ அனுமதி"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"இந்த முன்னுரிமை பெற்ற சிஸ்டம் ஆப்ஸால் சிஸ்டம் கேமராவைப் பயன்படுத்தி எப்போது வேண்டுமானாலும் படங்களை எடுக்கவோ வீடியோக்களை ரெக்கார்டு செய்யவோ முடியும். android.permission.CAMERA அனுமதியும் ஆப்ஸிற்குத் தேவை"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <!-- no translation found for permlab_cameraOpenCloseListener (5548732769068109315) -->
+    <skip />
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"அதிர்வைக் கட்டுப்படுத்துதல்"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"அதிர்வைக் கட்டுப்படுத்தப் ஆப்ஸை அனுமதிக்கிறது."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"அதிர்வு நிலையை அணுக ஆப்ஸை அனுமதிக்கும்."</string>
@@ -450,6 +463,10 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"அழைக்கும் அனுபவத்தை மேம்படுத்தும் பொருட்டு, சிஸ்டம் மூலம் தனது அழைப்புகளை ரூட் செய்ய ஆப்ஸை அனுமதிக்கும்."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"சிஸ்டம் மூலமாக அழைப்புகளைப் பார்த்தலும் கட்டுப்படுத்துதலும்."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"செயலில் உள்ள அழைப்புகளைச் சாதனத்தில் பார்க்கவும் கட்டுப்படுத்தவும் ஆப்ஸை அனுமதிக்கிறது. அழைப்பு எண்கள் மற்றும் அழைப்புகளின் நிலை போன்ற தகவல்களும் இதில் அடங்கும்."</string>
+    <!-- no translation found for permlab_exemptFromAudioRecordRestrictions (1164725468350759486) -->
+    <skip />
+    <!-- no translation found for permdesc_exemptFromAudioRecordRestrictions (2425117015896871976) -->
+    <skip />
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"மற்றொரு பயன்பாட்டிலிருந்து அழைப்பைத் தொடருதல்"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"மற்றொரு பயன்பாட்டில் தொடங்கப்பட்ட அழைப்பைத் தொடருவதற்கு, ஆப்ஸை அனுமதிக்கிறது."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ஃபோன் எண்களைப் படித்தல்"</string>
@@ -1101,28 +1118,6 @@
     <string name="deleteText" msgid="4200807474529938112">"நீக்கு"</string>
     <string name="inputMethod" msgid="1784759500516314751">"உள்ளீட்டு முறை"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"உரை நடவடிக்கைகள்"</string>
-    <string name="email" msgid="2503484245190492693">"மின்னஞ்சல் அனுப்பு"</string>
-    <string name="email_desc" msgid="8291893932252173537">"தேர்ந்தெடுத்த முகவரிக்கு மின்னஞ்சல் அனுப்பும்"</string>
-    <string name="dial" msgid="4954567785798679706">"அழை"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"தேர்ந்தெடுத்த ஃபோன் எண்ணை அழைக்கும்"</string>
-    <string name="map" msgid="6865483125449986339">"வரைபடம்"</string>
-    <string name="map_desc" msgid="1068169741300922557">"தேர்ந்தெடுத்த முகவரிக்கான வரைபடத்தைத் திறக்கும்"</string>
-    <string name="browse" msgid="8692753594669717779">"திற"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"தேர்ந்தெடுத்த URLஐத் திறக்கும்"</string>
-    <string name="sms" msgid="3976991545867187342">"செய்தி அனுப்பு"</string>
-    <string name="sms_desc" msgid="997349906607675955">"தேர்ந்தெடுத்த ஃபோன் எண்ணிற்குச் செய்தி அனுப்பும்"</string>
-    <string name="add_contact" msgid="7404694650594333573">"சேர்"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"தொடர்புகளில் சேர்க்கும்"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"காண்பி"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"கேலெண்டரில் தேர்ந்தெடுத்த நேரத்தைக் காட்டும்"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"திட்டமிடு"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"தேர்ந்தெடுத்த நேரத்திற்கு நிகழ்வைத் திட்டமிடும்"</string>
-    <string name="view_flight" msgid="2042802613849690108">"கண்காணி"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"தேர்ந்தெடுத்த விமானத்தைக் கண்காணிக்கும்"</string>
-    <string name="translate" msgid="1416909787202727524">"மொழிபெயர்"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"தேர்ந்தெடுத்த உரையை மொழிபெயர்க்கும்"</string>
-    <string name="define" msgid="5214255850068764195">"விளக்குக"</string>
-    <string name="define_desc" msgid="6916651934713282645">"தேர்ந்தெடுத்த உரையை விளக்கும்"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"சேமிப்பிடம் குறைகிறது"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"சில அமைப்பு செயல்பாடுகள் வேலை செய்யாமல் போகலாம்"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"முறைமையில் போதுமான சேமிப்பகம் இல்லை. 250மெ.பை. அளவு காலி இடவசதி இருப்பதை உறுதிசெய்து மீண்டும் தொடங்கவும்."</string>
@@ -1261,7 +1256,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"மொபைல் நெட்வொர்க்கிற்கு இணைய அணுகல் இல்லை"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"நெட்வொர்க்கிற்கு இணைய அணுகல் இல்லை"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"தனிப்பட்ட DNS சேவையகத்தை அணுக இயலாது"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"இணைக்கப்பட்டது"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> வரம்பிற்கு உட்பட்ட இணைப்புநிலையைக் கொண்டுள்ளது"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"எப்படியேனும் இணைப்பதற்குத் தட்டவும்"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g>க்கு மாற்றப்பட்டது"</string>
@@ -1633,21 +1627,67 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"பரிந்துரைத்த அளவை விட ஒலியை அதிகரிக்கவா?\n\nநீண்ட நேரத்திற்கு அதிகளவில் ஒலி கேட்பது கேட்கும் திறனைப் பாதிக்கலாம்."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"அணுகல்தன்மை ஷார்ட்கட்டைப் பயன்படுத்தவா?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"ஷார்ட்கட் இயக்கத்தில் இருக்கும்போது ஒலியளவு பட்டன்கள் இரண்டையும் 3 வினாடிகளுக்கு அழுத்தினால் அணுகல்தன்மை அம்சம் இயக்கப்படும்."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <!-- no translation found for accessibility_enable_service_title (3931558336268541484) -->
+    <skip />
+    <!-- no translation found for accessibility_enable_service_encryption_warning (8603532708618236909) -->
+    <skip />
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"உங்களுக்கு உதவக்கூடிய ஆப்ஸுக்குக் தேவையான அணுகல்தன்மையை அளித்து முழுக் கட்டுப்பாட்டையும் அளிக்கலாம், ஆனால் பெரும்பாலான ஆப்ஸுக்கு இது பொருந்தாது."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"திரையைப் பார்த்தலும் நிர்வகித்தலும்"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"இந்த அம்சத்தால் திரையில் உள்ள அனைத்தையும் படிக்க முடிவதோடு பிற ஆப்ஸின் மேல் உள்ளடக்கத்தைக் காட்டும்."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"செயல்பாடுகளைப் பார்த்தலும் செயல்படுத்தலும்"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"ஏதேனும் ஆப்ஸ் அல்லது வன்பொருள் சென்சாரின் உதவியுடன் உரையாடல்களைக் கண்காணித்து உங்கள் சார்பாக ஆப்ஸுடன் உரையாட இச்சேவையால் இயலும்."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"அனுமதி"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"நிராகரி"</string>
+    <!-- no translation found for accessibility_select_shortcut_menu_title (6002726538854613272) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <!-- no translation found for accessibility_uncheck_legacy_item_warning (8047830891064817447) -->
     <skip />
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"ஷார்ட்கட்களை மாற்று"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ரத்துசெய்"</string>
+    <!-- no translation found for done_accessibility_shortcut_menu_button (3668407723770815708) -->
+    <skip />
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ஷார்ட்கட்டை முடக்கு"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"ஷார்ட்கட்டைப் பயன்படுத்து"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"வண்ணத்தை நேர் எதிராக மாற்றுதல்"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"வண்ணத் திருத்தம்"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"அணுகல்தன்மை ஷார்ட்கட்டானது <xliff:g id="SERVICE_NAME">%1$s</xliff:g>ஐ இயக்கியது"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"அணுகல்தன்மை ஷார்ட்கட்டானது <xliff:g id="SERVICE_NAME">%1$s</xliff:g>ஐ முடக்கியது"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g>ஐப் பயன்படுத்த 3 விநாடிகளுக்கு இரண்டு ஒலியளவு பட்டன்களையும் அழுத்திப் பிடிக்கவும்"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"பெரிதாக்கல்"</string>
     <string name="user_switched" msgid="7249833311585228097">"நடப்பு பயனர் <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>க்கு மாறுகிறது…"</string>
@@ -1861,8 +1901,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"வகைப்படுத்தப்படாதவை"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"இந்த அறிவிப்புகளின் முக்கியத்துவத்தை அமைத்துள்ளீர்கள்."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ஈடுபட்டுள்ளவர்களின் காரணமாக, இது முக்கியமானது."</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"பிரத்தியேக ஆப்ஸ் அறிவிப்பு"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g> மூலம் புதிய பயனரை உருவாக்க <xliff:g id="APP">%1$s</xliff:g> ஆப்ஸை அனுமதிக்கவா (இந்தக் கணக்கில் ஏற்கெனவே ஒரு பயனர் உள்ளார்) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> மூலம் புதிய பயனரை உருவாக்க <xliff:g id="APP">%1$s</xliff:g> ஆப்ஸை அனுமதிக்கவா?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"மொழியைச் சேர்"</string>
@@ -2019,7 +2058,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ஃபைல்கள்</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> ஃபைல்</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"நேரடிப் பகிர்வு இல்லை"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"ஆப்ஸ் பட்டியல்"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"இந்த ஆப்ஸிற்கு ரெக்கார்டு செய்வதற்கான அனுமதி வழங்கப்படவில்லை, எனினும் இந்த USB சாதனம் மூலம் ஆடியோவைப் பதிவுசெய்ய முடியும்."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"முகப்பு"</string>
@@ -2034,31 +2074,259 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"அணுகல்தன்மை மெனு"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> ஆப்ஸின் தலைப்புப் பட்டி."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> என்பதை வரம்பிடப்பட்ட பக்கெட்திற்குள் சேர்க்கப்பட்டது"</string>
+    <!-- no translation found for conversation_single_line_name_display (8958948312915255999) -->
+    <skip />
+    <!-- no translation found for conversation_title_fallback_one_to_one (1980753619726908614) -->
+    <skip />
+    <!-- no translation found for conversation_title_fallback_group_chat (456073374993104303) -->
+    <skip />
     <string name="resolver_personal_tab" msgid="2051260504014442073">"தனிப்பட்ட சுயவிவரம்"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"பணிச் சுயவிவரம்"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"தனிப்பட்ட காட்சி"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"பணிக் காட்சி"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"பணி ஆப்ஸுக்குப் பகிர முடியாது"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"தனிப்பட்ட ஆப்ஸுக்குப் பகிர முடியாது"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ஆப்ஸ் இல்லை"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"இயக்கு"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"அழைப்புகளின்போது ரெக்கார்டு செய்தல் அல்லது ஆடியோவைப் பிளே செய்தல்"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"இயல்பான டயலர் ஆப்ஸாக இதை அமைக்கும்போது, அழைப்புகளை ரெக்கார்டு செய்ய அல்லது ஆடியோவைப் பிளே செய்ய இதை அனுமதிக்கும்."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index 130efbd..b0972b3 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"మీ పరికరంలోని డేటా తొలగించబడుతుంది"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"నిర్వాహక యాప్‌ ఉపయోగించడం సాధ్యపడదు. మీ పరికరంలోని డేటా ఇప్పుడు తొలగించబడుతుంది.\n\nమీకు ప్రశ్నలు ఉంటే, మీ సంస్థ యొక్క నిర్వాహకులను సంప్రదించండి."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"ముద్రణ <xliff:g id="OWNER_APP">%s</xliff:g> ద్వారా నిలిపివేయబడింది."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"అడ్మిన్ ద్వారా వ్యక్తిగత యాప్‌లు సస్పెండ్ చేయబడ్డాయి"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"పాలసీ పాటించబడుతోందో లేదో తనిఖీ చేయడానికి ఇక్కడ ట్యాప్ చేయండి."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"నేను"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"టాబ్లెట్ ఎంపికలు"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV ఎంపికలు"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"ఫోన్ ఎంపికలు"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"స్క్రీన్ లాక్"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"పవర్ ఆఫ్ చేయి"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"అత్యవసరం"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"బగ్ నివేదిక"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"సెషన్‌ను ముగించు"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"చిత్రాలు మరియు వీడియోలు తీయడం"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"ఈ యాప్‌ కెమెరాను ఉపయోగించి ఎప్పుడైనా చిత్రాలను తీయగలదు మరియు వీడియోలను రికార్డ్ చేయగలదు."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"ఫోటోలు, వీడియోలు తీయడానికి సిస్టమ్ కెమెరాలకు యాప్, లేదా సేవా యాక్సెస్‌ను అనుమతించండి"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"ఈ విశేష | సిస్టమ్ యాప్ ఎప్పుడైనా సిస్టమ్ కెమెరాను ఉపయోగించి ఫోటోలు తీయగలదు, వీడియోలను రికార్డ్ చేయగలదు. యాప్‌కు android.permission.CAMERA అనుమతి ఇవ్వడం కూడా అవసరం"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"కెమెరా పరికరాలు తెరుచుకుంటున్నప్పుడు లేదా మూసుకుంటున్నప్పుడు కాల్‌బ్యాక్‌లను స్వీకరించడానికి యాప్‌ను లేదా సర్వీస్‌ను అనుమతించండి."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"వైబ్రేషన్‌ను నియంత్రించడం"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"వైబ్రేటర్‌ను నియంత్రించడానికి యాప్‌ను అనుమతిస్తుంది."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"వైబ్రేటర్ స్థితిని యాక్సెస్ చేసేందుకు యాప్‌ను అనుమతిస్తుంది."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"కాలింగ్ అనుభవాన్ని మెరుగుపరచడం కోసం తన కాల్‌లను సిస్టమ్ ద్వారా వెళ్లేలా చేయడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"సిస్టమ్ ద్వారా కాల్‌లను చూసి, నియంత్రించండి."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"పరికరంలో కొనసాగుతున్న కాల్‌లను చూడడానికి మరియు నియంత్రించడానికి యాప్‌ను అనుమతిస్తుంది. ఇందులో కాల్ కోసం కాల్‌ల నంబర్‌లు మరియు రాష్ట్ర కాల్ వంటి సమాచారం ఉంటుంది."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ఆడియో రికార్డ్ పరిమితుల నుండి మినహాయింపు"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"ఆడియోను రికార్డ్ చేయడానికి యాప్‌ను పరిమితుల నుండి మినహాయించండి."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"మరో యాప్ నుండి కాల్‌ని కొనసాగించండి"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"మరో యాప్‌లో ప్రారంభించిన కాల్‌ని కొనసాగించడానికి యాప్‌ని అనుమతిస్తుంది."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"ఫోన్ నంబర్‌లను చదువు"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"తొలగించు"</string>
     <string name="inputMethod" msgid="1784759500516314751">"ఇన్‌పుట్ పద్ధతి"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"వచనానికి సంబంధించిన చర్యలు"</string>
-    <string name="email" msgid="2503484245190492693">"ఇమెయిల్ చేయి"</string>
-    <string name="email_desc" msgid="8291893932252173537">"ఎంచుకున్న చిరునామాకు ఇమెయిల్‌ను పంపుతుంది"</string>
-    <string name="dial" msgid="4954567785798679706">"కాల్ చేయి"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"ఎంచుకున్న ఫోన్ నంబర్‌కు కాల్ చేస్తుంది"</string>
-    <string name="map" msgid="6865483125449986339">"మ్యాప్ తెరువు"</string>
-    <string name="map_desc" msgid="1068169741300922557">"ఎంచుకున్న చిరునామాను గుర్తించు"</string>
-    <string name="browse" msgid="8692753594669717779">"తెరువు"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"ఎంచుకున్న URLని తెరుస్తుంది"</string>
-    <string name="sms" msgid="3976991545867187342">"సందేశం పంపు"</string>
-    <string name="sms_desc" msgid="997349906607675955">"ఎంచుకున్న ఫోన్ నంబర్‌కి సందేశం పంపుతుంది"</string>
-    <string name="add_contact" msgid="7404694650594333573">"జోడించు"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"పరిచయాలకు జోడిస్తుంది"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"చూడు"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"ఎంచుకున్న సమయాన్ని క్యాలెండర్‌లో వీక్షించండి"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"షెడ్యూల్ చేయి"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"ఎంచుకున్న సమయానికి ఈవెంట్‌ను షెడ్యూల్ చేస్తుంది"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ట్రాక్ చేయి"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"ఎంచుకున్న విమానాన్ని ట్రాక్ చేస్తుంది"</string>
-    <string name="translate" msgid="1416909787202727524">"అనువదించు"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"ఎంచుకున్న వచనాన్ని అనువదించండి"</string>
-    <string name="define" msgid="5214255850068764195">"నిర్వహించు"</string>
-    <string name="define_desc" msgid="6916651934713282645">"ఎంచుకున్న వచనాన్ని నిర్వచించండి"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"నిల్వ ఖాళీ అయిపోతోంది"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"కొన్ని సిస్టమ్ కార్యాచరణలు పని చేయకపోవచ్చు"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"సిస్టమ్ కోసం తగినంత నిల్వ లేదు. మీకు 250MB ఖాళీ స్థలం ఉందని నిర్ధారించుకుని, పునఃప్రారంభించండి."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"మొబైల్ నెట్‌వర్క్‌కు ఇంటర్నెట్ యాక్సెస్ లేదు"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"నెట్‌వర్క్‌కు ఇంటర్నెట్ యాక్సెస్ లేదు"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"ప్రైవేట్ DNS సర్వర్‌ను యాక్సెస్ చేయడం సాధ్యపడదు"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"కనెక్ట్ చేయబడింది"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> పరిమిత కనెక్టివిటీని కలిగి ఉంది"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"ఏదేమైనా కనెక్ట్ చేయడానికి నొక్కండి"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g>కి మార్చబడింది"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"వాల్యూమ్‌ను సిఫార్సు చేయబడిన స్థాయి కంటే ఎక్కువగా పెంచాలా?\n\nసుదీర్ఘ వ్యవధుల పాటు అధిక వాల్యూమ్‌లో వినడం వలన మీ వినికిడి శక్తి దెబ్బ తినవచ్చు."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"యాక్సెస్ సామర్థ్యం షార్ట్‌కట్‌ను ఉపయోగించాలా?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"షార్ట్‌కట్ ఆన్ చేసి ఉన్నప్పుడు, రెండు వాల్యూమ్ బటన్‌లను 3 సెకన్ల పాటు నొక్కి ఉంచితే యాక్సెస్ సౌలభ్య ఫీచర్ ప్రారంభం అవుతుంది."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g>కి మీ పరికరంపై పూర్తి నియంత్రణను ఇవ్వాలనుకుంటున్నారా?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"మీరు <xliff:g id="SERVICE">%1$s</xliff:g>ని ఆన్ చేస్తే, డేటా ఎన్‌క్రిప్షన్‌ను మెరుగుపరచడానికి మీ పరికరం మీ స్క్రీన్ లాక్‌ను ఉపయోగించదు."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"అవసరమైన యాక్సెస్ సామర్ధ్యం కోసం యాప్‌లకు పూర్తి నియంత్రణ ఇవ్వడం తగిన పనే అయినా, అన్ని యాప్‌లకు అలా ఇవ్వడం సరికాదు."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"స్క్రీన్‌ను చూసి, నియంత్రించండి"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"స్క్రీన్‌పై ఉండే కంటెంట్‌ మొత్తాన్ని చదవగలుగుతుంది మరియు ఇతర యాప్‌లలో కూడా ఈ కంటెంట్‌ను ప్రదర్శిస్తుంది."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"చర్యలను చూసి, అమలు చేయండి"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"మీరు యాప్‌‌తో చేసే పరస్పర చర్యల‌ను లేదా హార్డ్‌వేర్ సెన్సార్‌ను ట్రాక్ చేస్తూ మీ త‌ర‌ఫున యాప్‌లతో పరస్పరం సమన్వయం చేస్తుంది."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"అనుమతించు"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"నిరాకరించు"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"ఫీచర్‌ని ఉపయోగించడం ప్రారంభించడానికి, దాన్ని ట్యాప్ చేయండి:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> ఆఫ్ చేయబడింది"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"షార్ట్‌కట్‌లను ఎడిట్ చేయి"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"రద్దు చేయి"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"పూర్తయింది"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"సత్వరమార్గాన్ని ఆఫ్ చేయి"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"సత్వరమార్గాన్ని ఉపయోగించు"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"రంగుల మార్పిడి"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"రంగు సవరణ"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"యాక్సెస్ సామర్థ్య షార్ట్‌కట్ ద్వారా <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ఆన్ చేయబడింది"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"యాక్సెస్ సామర్థ్య షార్ట్‌కట్ ద్వారా <xliff:g id="SERVICE_NAME">%1$s</xliff:g> ఆఫ్ చేయబడింది"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g>ని ఉపయోగించడానికి వాల్యూమ్ కీలు రెండింటినీ 3 సెకన్లు నొక్కి ఉంచండి"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"మాగ్నిఫికేషన్"</string>
     <string name="user_switched" msgid="7249833311585228097">"ప్రస్తుత వినియోగదారు <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>కి మారుస్తోంది…"</string>
@@ -1859,8 +1893,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"వర్గీకరించబడలేదు"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"మీరు ఈ నోటిఫికేషన్‌ల ప్రాముఖ్యతను సెట్ చేసారు."</string>
     <string name="importance_from_person" msgid="4235804979664465383">"ఇందులో పేర్కొనబడిన వ్యక్తులను బట్టి ఇది చాలా ముఖ్యమైనది."</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"అనుకూల యాప్ నోటిఫికేషన్"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="ACCOUNT">%2$s</xliff:g>తో కొత్త వినియోగదారుని సృష్టించడానికి <xliff:g id="APP">%1$s</xliff:g>ను అనుమతించాలా (ఈ ఖాతాతో ఇప్పటికే ఒక వినియోగదారు ఉన్నారు) ?"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g>తో కొత్త వినియోగదారుని సృష్టించడానికి <xliff:g id="APP">%1$s</xliff:g>ను అనుమతించాలా?"</string>
     <string name="language_selection_title" msgid="52674936078683285">"భాషను జోడించండి"</string>
@@ -2017,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ఫైల్‌లు</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> ఫైల్</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"డైరెక్ట్ షేర్ అందుబాటులో లేదు"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"యాప్‌ల జాబితా"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"ఈ యాప్‌కు రికార్డ్ చేసే అనుమతి మంజూరు కాలేదు, అయినా ఈ USB పరికరం ద్వారా ఆడియోను క్యాప్చర్ చేయగలదు."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"హోమ్"</string>
@@ -2032,31 +2066,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"యాక్సెసిబిలిటీ మెను"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> క్యాప్షన్ బార్."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> పరిమితం చేయబడిన బకెట్‌లో ఉంచబడింది"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"సంభాషణ"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"గ్రూప్ సంభాషణ"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"వ్యక్తిగతం"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"కార్యాలయం"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"వ్యక్తిగత వీక్షణ"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"పని వీక్షణ"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"వర్క్ యాప్‌లతో షేర్ చేయడం సాధ్యపడదు"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"వ్యక్తిగత యాప్‌లతో షేర్ చేయడం సాధ్యపడదు"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"యాప్‌లు ఏవీ అందుబాటులో లేవు"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"ఆన్ చేయి"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"టెలిఫోనీ కాల్స్‌లో రికార్డ్ చేయండి లేదా ఆడియో ప్లే చేయండి"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"డిఫాల్ట్ డయలర్ యాప్‌గా కేటాయించినప్పుడు, టెలిఫోనీ కాల్స్‌లో రికార్డ్ చేయడానికి లేదా ఆడియో ప్లే చేయడానికి ఈ యాప్‌ను అనుమతిస్తుంది."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 3ab4170..abdf041 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"ระบบจะลบข้อมูลในอุปกรณ์ของคุณ"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"ใช้แอปผู้ดูแลระบบนี้ไม่ได้ ขณะนี้ระบบจะลบข้อมูลในอุปกรณ์ของคุณ\n\nโปรดติดต่อผู้ดูแลระบบขององค์กรหากมีคำถาม"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ปิดใช้การพิมพ์แล้ว"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ผู้ดูแลระบบได้ระงับแอปส่วนตัวไว้"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"แตะที่นี่เพื่อตรวจสอบการปฏิบัติตามข้อกำหนดของนโยบาย"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"ฉัน"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ตัวเลือกของแท็บเล็ต"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"ตัวเลือกของ Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"ตัวเลือกโทรศัพท์"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"ล็อกหน้าจอ"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"ปิดเครื่อง"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"เหตุฉุกเฉิน"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"รายงานข้อบกพร่อง"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"จบเซสชัน"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"ถ่ายภาพและวิดีโอ"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"แอปนี้สามารถถ่ายภาพและวิดีโอด้วยกล้องได้ทุกเมื่อ"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"อนุญาตให้แอปพลิเคชันหรือบริการเข้าถึงกล้องของระบบเพื่อถ่ายภาพและวิดีโอ"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"แอปของระบบ | ที่ได้รับสิทธิ์นี้จะถ่ายภาพและบันทึกวิดีโอโดยใช้กล้องของระบบได้ทุกเมื่อ แอปต้องมีสิทธิ์ android.permission.CAMERA ด้วย"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"อนุญาตให้แอปพลิเคชันหรือบริการได้รับโค้ดเรียกกลับเมื่อมีการเปิดหรือปิดอุปกรณ์กล้อง"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"ควบคุมการสั่นเตือน"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"อนุญาตให้แอปพลิเคชันควบคุมการสั่นเตือน"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"อนุญาตให้แอปเข้าถึงสถานะการสั่น"</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"อนุญาตให้แอปกำหนดเส้นทางการโทรของแอปผ่านระบบเพื่อปรับปรุงประสบการณ์ในการโทร"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"ดูและจัดการการติดต่อผ่านระบบ"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"อนุญาตให้แอปดูและจัดการการติดต่อในอุปกรณ์ ซึ่งรวมถึงข้อมูลอย่างเช่น หมายเลขที่ใช้ในการติดต่อและสถานะการติดต่อ"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ยกเว้นจากข้อจำกัดในการบันทึกเสียง"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"ยกเว้นแอปจากข้อจำกัดในการบันทึกเสียง"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"ต่อสายจากแอปอื่น"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"อนุญาตให้แอปต่อสายที่เริ่มจากแอปอื่น"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"อ่านหมายเลขโทรศัพท์"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"ลบ"</string>
     <string name="inputMethod" msgid="1784759500516314751">"วิธีป้อนข้อมูล"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"การทำงานของข้อความ"</string>
-    <string name="email" msgid="2503484245190492693">"อีเมล"</string>
-    <string name="email_desc" msgid="8291893932252173537">"ส่งอีเมลไปยังที่อยู่ที่เลือก"</string>
-    <string name="dial" msgid="4954567785798679706">"โทร"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"โทรหาหมายเลขโทรศัพท์ที่เลือก"</string>
-    <string name="map" msgid="6865483125449986339">"แผนที่"</string>
-    <string name="map_desc" msgid="1068169741300922557">"หาที่อยู่ที่เลือก"</string>
-    <string name="browse" msgid="8692753594669717779">"เปิด"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"เปิด URL ที่เลือก"</string>
-    <string name="sms" msgid="3976991545867187342">"ข้อความ"</string>
-    <string name="sms_desc" msgid="997349906607675955">"ส่งข้อความไปยังหมายเลขโทรศัพท์ที่เลือก"</string>
-    <string name="add_contact" msgid="7404694650594333573">"เพิ่ม"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"เพิ่มในรายชื่อติดต่อ"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"ดู"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"ดูเวลาที่เลือกในปฏิทิน"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"ตั้งเวลา"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"ตั้งเวลากิจกรรมสำหรับเวลาที่เลือก"</string>
-    <string name="view_flight" msgid="2042802613849690108">"ติดตาม"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"ติดตามเที่ยวบินที่เลือก"</string>
-    <string name="translate" msgid="1416909787202727524">"แปล"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"แปลข้อความที่เลือก"</string>
-    <string name="define" msgid="5214255850068764195">"หาความหมาย"</string>
-    <string name="define_desc" msgid="6916651934713282645">"หาความหมายข้อความที่เลือก"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"พื้นที่จัดเก็บเหลือน้อย"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"บางฟังก์ชันระบบอาจไม่ทำงาน"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"พื้นที่เก็บข้อมูลไม่เพียงพอสำหรับระบบ โปรดตรวจสอบว่าคุณมีพื้นที่ว่าง 250 MB แล้วรีสตาร์ท"</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"เครือข่ายมือถือไม่มีการเข้าถึงอินเทอร์เน็ต"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"เครือข่ายไม่มีการเข้าถึงอินเทอร์เน็ต"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"เข้าถึงเซิร์ฟเวอร์ DNS ไม่ได้"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"เชื่อมต่อแล้ว"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> มีการเชื่อมต่อจำกัด"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"แตะเพื่อเชื่อมต่อ"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"เปลี่ยนเป็น <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"นี่เป็นการเพิ่มระดับเสียงเกินระดับที่แนะนำ\n\nการฟังเสียงดังเป็นเวลานานอาจทำให้การได้ยินของคุณบกพร่องได้"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ใช้ทางลัดการช่วยเหลือพิเศษไหม"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"เมื่อทางลัดเปิดอยู่ การกดปุ่มปรับระดับเสียงทั้ง 2 ปุ่มนาน 3 วินาทีจะเริ่มฟีเจอร์การช่วยเหลือพิเศษ"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"อนุญาตให้ <xliff:g id="SERVICE">%1$s</xliff:g> ควบคุมอุปกรณ์อย่างเต็มที่ไหม"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"หากคุณเปิด <xliff:g id="SERVICE">%1$s</xliff:g> อุปกรณ์ของคุณจะไม่ใช้ล็อกหน้าจอเพื่อปรับปรุงการเข้ารหัสข้อมูล"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"การควบคุมอย่างเต็มที่เหมาะสำหรับแอปที่ช่วยคุณในเรื่องความต้องการความช่วยเหลือพิเศษแต่ไม่เหมาะสำหรับแอปส่วนใหญ่"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"ดูและควบคุมหน้าจอ"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"การควบคุมนี้อ่านเนื้อหาทั้งหมดบนหน้าจอและแสดงเนื้อหาทับแอปอื่นๆ"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"ดูและดำเนินการ"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"การกระทำนี้ติดตามการโต้ตอบของคุณกับแอปหรือกับเซ็นเซอร์ของฮาร์ดแวร์ และจะโต้ตอบกับแอปต่างๆ แทนคุณ"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"อนุญาต"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"ปฏิเสธ"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"แตะฟีเจอร์เพื่อเริ่มใช้"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"ปิด <xliff:g id="SERVICE_NAME">%s</xliff:g> แล้ว"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"แก้ไขทางลัด"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"ยกเลิก"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"เสร็จ"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"ปิดทางลัด"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"ใช้ทางลัด"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"การกลับสี"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"การปรับแก้สี"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"ทางลัดการเข้าถึงเปิด <xliff:g id="SERVICE_NAME">%1$s</xliff:g> แล้ว"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"ทางลัดการเข้าถึงปิด <xliff:g id="SERVICE_NAME">%1$s</xliff:g> แล้ว"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"กดปุ่มปรับระดับเสียงทั้ง 2 ปุ่มค้างไว้ 3 วินาทีเพื่อใช้ <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"การขยาย"</string>
     <string name="user_switched" msgid="7249833311585228097">"ผู้ใช้ปัจจุบัน <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"กำลังเปลี่ยนเป็น <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> และอีก <xliff:g id="COUNT_3">%d</xliff:g> ไฟล์</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> และอีก <xliff:g id="COUNT_1">%d</xliff:g> ไฟล์</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"การแชร์โดยตรงไม่พร้อมใช้งาน"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"รายชื่อแอป"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"แอปนี้ไม่ได้รับอนุญาตให้บันทึกเสียงแต่จะบันทึกเสียงผ่านอุปกรณ์ USB นี้ได้"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"หน้าแรก"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"เมนูการช่วยเหลือพิเศษ"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"แถบคำบรรยาย <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"ใส่ <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ในที่เก็บข้อมูลที่ถูกจำกัดแล้ว"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"การสนทนา"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"บทสนทนากลุ่ม"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ส่วนตัว"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"งาน"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"แชร์ด้วยแอปงานไม่ได้"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"แชร์ด้วยแอปส่วนตัวไม่ได้"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"ไม่มีแอป"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"มุมมองส่วนตัว"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"ดูงาน"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"แชร์ด้วยแอปงานไม่ได้"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"ผู้ดูแลระบบไอทีไม่อนุญาตให้คุณแชร์เนื้อหานี้ด้วยแอปในโปรไฟล์งาน"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"เปิดด้วยแอปงานไม่ได้"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"ผู้ดูแลระบบไอทีไม่อนุญาตให้คุณเปิดเนื้อหานี้ด้วยแอปในโปรไฟล์งาน"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"แชร์ด้วยแอปส่วนตัวไม่ได้"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"ผู้ดูแลระบบไอทีไม่อนุญาตให้คุณแชร์เนื้อหานี้ด้วยแอปในโปรไฟล์ส่วนตัว"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"เปิดด้วยแอปส่วนตัวไม่ได้"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"ผู้ดูแลระบบไอทีไม่อนุญาตให้คุณเปิดเนื้อหานี้ด้วยแอปในโปรไฟล์ส่วนตัว"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"โปรไฟล์งานปิดชั่วคราว"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"เปิด"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"ไม่มีแอปงานที่รองรับเนื้อหานี้"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"ไม่มีแอปงานที่เปิดเนื้อหานี้ได้"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"ไม่มีแอปส่วนตัวที่รองรับเนื้อหานี้"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"ไม่มีแอปส่วนตัวที่เปิดเนื้อหานี้ได้"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"บันทึกหรือเปิดเสียงในสายโทรศัพท์"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"อนุญาตให้แอปนี้ (เมื่อกำหนดให้เป็นแอปโทรออกเริ่มต้น) บันทึกหรือเปิดเสียงในสายโทรศัพท์ได้"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 2502137..dd76d5b 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Buburahin ang iyong device"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Hindi magamit ang admin app. Mabubura na ang iyong device.\n\nKung mayroon kang mga tanong, makipag-ugnayan sa admin ng iyong organisasyon."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Na-disable ng <xliff:g id="OWNER_APP">%s</xliff:g> ang pag-print."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Sinuspinde ng isang admin ang mga personal na app"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Mag-tap dito para matingnan ang pagsunod sa patakaran."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Ako"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Mga pagpipilian sa tablet"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Mga opsyon sa Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Pagpipilian sa telepono"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Pag-lock sa screen"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"I-off"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Emergency"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Ulat sa bug"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Tapusin ang session"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"kumuha ng mga larawan at video"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Makakakuha ng mga larawan at makakapag-record ng mga video ang app na ito gamit ang camera anumang oras."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Bigyan ang isang application o serbisyo ng access sa mga camera ng system para kumuha ng mga larawan at video"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Ang privileged | system app na ito ay makakakuha ng mga larawan at makakapag-record ng mga video gamit ang isang camera ng system anumang oras. Nangangailangang may android.permission.CAMERA na pahintulot din ang app"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Payagan ang isang application o serbisyo na makatanggap ng mga callback tungkol sa pagbubukas o pagsasara ng mga camera device."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"kontrolin ang pag-vibrate"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Pinapayagan ang app na kontrolin ang vibrator."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Pinapayagan ang app na ma-access ang naka-vibrate na status."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Pinapayagan ang app na iruta ang mga tawag nito sa pamamagitan ng system upang mapahusay ang karanasan sa pagtawag."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"tingnan at kontrolin ang mga tawag sa pamamagitan ng system."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Binibigyang-daan ang app na makita at makontrol ang mga kasalukuyang tawag sa device. Kabilang dito ang impormasyon gaya ng mga numero ng tawag para sa mga tawag at ang status ng mga tawag."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ibukod sa mga paghihigpit sa pag-record ng audio"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Huwag ilapat sa app ang mga paghihigpit sa pag-record ng audio."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"ipagpatuloy ang isang tawag mula sa ibang app"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Pinapayagan ang app na ipagpatuloy ang isang tawag na sinimulan sa ibang app."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"basahin ang mga numero ng telepono"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"I-delete"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Pamamaraan ng pag-input"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Pagkilos ng teksto"</string>
-    <string name="email" msgid="2503484245190492693">"Mag-email"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Mag-email sa mga piniling address"</string>
-    <string name="dial" msgid="4954567785798679706">"Tumawag"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Tawagan ang piniling numero ng telepono"</string>
-    <string name="map" msgid="6865483125449986339">"Mag-mapa"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Hanapin ang piniling address"</string>
-    <string name="browse" msgid="8692753594669717779">"Buksan"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Buksan ang piniling URL"</string>
-    <string name="sms" msgid="3976991545867187342">"Magmensahe"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Padalhan ng mensahe ang piniling numero ng telepono"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Magdagdag"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Idagdag sa mga contact"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Tingnan"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Tingnan ang piniling oras sa kalendaryo"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Mag-iskedyul"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Mag-iskedyul ng event para sa piniling oras"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Subaybayan"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"I-track ang piniling flight"</string>
-    <string name="translate" msgid="1416909787202727524">"I-translate"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"I-translate ang piniling text"</string>
-    <string name="define" msgid="5214255850068764195">"Ilarawan"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Ilarawan ang piniling text"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Nauubusan na ang puwang ng storage"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Maaaring hindi gumana nang tama ang ilang paggana ng system"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Walang sapat na storage para sa system. Tiyaking mayroon kang 250MB na libreng espasyo at i-restart."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Walang access sa internet ang mobile network"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Walang access sa internet ang network"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Hindi ma-access ang pribadong DNS server"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Nakakonekta"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"Limitado ang koneksyon ng <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"I-tap para kumonekta pa rin"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Lumipat sa <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Lakasan ang volume nang lagpas sa inirerekomendang antas?\n\nMaaaring mapinsala ng pakikinig sa malakas na volume sa loob ng mahahabang panahon ang iyong pandinig."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Gagamitin ang Shortcut sa Pagiging Accessible?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kapag naka-on ang shortcut, magsisimula ang isang feature ng pagiging naa-access kapag pinindot ang parehong button ng volume."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Bigyan ang <xliff:g id="SERVICE">%1$s</xliff:g> ng ganap na kontrol sa iyong device?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Kung io-on mo ang <xliff:g id="SERVICE">%1$s</xliff:g>, hindi gagamitin ng iyong device ang lock ng screen mo para pahusayin ang pag-encrypt ng data."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Naaangkop ang ganap na kontrol sa mga app na tumutulong sa mga pangangailangan mo sa accessibility, pero hindi sa karamihan ng mga app."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Tingnan at kontrolin ang screen"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Mababasa nito ang lahat ng content na nasa screen at makakapagpakita ito ng content sa iba pang app."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Tumingin at magsagawa ng mga pagkilos"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Masusubaybayan nito ang iyong mga pakikipag-ugayan sa isang app o hardware na sensor, at puwede itong makipag-ugnayan sa mga app para sa iyo."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Payagan"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Tanggihan"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"I-tap ang isang feature para simulan itong gamitin:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Na-off ang <xliff:g id="SERVICE_NAME">%s</xliff:g>"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"I-edit ang mga shortcut"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Kanselahin"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Tapos na"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"I-off ang Shortcut"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Gamitin ang Shortcut"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Pag-invert ng Kulay"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Pagwawasto ng Kulay"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Na-on ng Shortcut sa Accessibility ang <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Na-off ng Shortcut sa Accessibility ang <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Pindutin nang matagal ang parehong volume key sa loob ng tatlong segundo para magamit ang <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Pag-magnify"</string>
     <string name="user_switched" msgid="7249833311585228097">"Kasalukuyang user <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Lumilipat kay <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> file</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> na file</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Hindi available ang direktang pagbabahagi"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Listahan ng mga app"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Hindi nabigyan ng pahintulot ang app na ito para mag-record pero nakakapag-capture ito ng audio sa pamamagitan ng USB device na ito."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Home"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu ng Accessibility"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Caption bar ng <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Inilagay ang <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> sa PINAGHIHIGPITANG bucket"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Pag-uusap"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Panggrupong Pag-uusap"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Trabaho"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Hindi puwedeng magbahagi sa mga app para sa trabaho"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Hindi puwedeng magbahagi sa mga personal na app"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Walang available na app"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Personal na view"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"View ng trabaho"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Hindi ito puwedeng ibahagi sa mga app para sa trabaho"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Hindi ka pinapayagan ng iyong IT admin na ibahagi ang content na ito sa pamamagitan ng mga app sa iyong profile sa trabaho"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Hindi ito mabubuksan sa pamamagitan ng mga app para sa trabaho"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Hindi ka pinapayagan ng iyong IT admin na buksan ang content na ito sa pamamagitan ng mga app sa iyong profile sa trabaho"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Hindi ito puwedeng ibahagi sa mga personal na app"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Hindi ka pinapayagan ng iyong IT admin na ibahagi ang content na ito sa pamamagitan ng mga app sa iyong personal na profile"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Hindi ito mabubuksan sa pamamagitan ng mga personal na app"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Hindi ka pinapayagan ng iyong IT admin na buksan ang content na ito sa pamamagitan ng mga app sa iyong personal na profile"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Naka-pause ang profile sa trabaho"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"I-on"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Hindi masusuportahan ng mga app para sa trabaho ang content na ito"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Hindi mabubuksan ng mga app para sa trabaho ang content na ito"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Hindi masusuportahan ng mga personal na app ang content na ito"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Hindi mabubuksan ng mga personal na app ang content na ito"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Mag-record o mag-play ng audio sa mga tawag sa telephony"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Papayagan ang app na ito na mag-record o mag-play ng audio sa mga tawag sa telephony kapag naitalaga bilang default na dialer application."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 245b4a1..9fb136a 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Cihazınız silinecek"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Yönetim uygulaması kullanılamıyor. Cihazınız şimdi silinecek.\n\nSorularınız varsa kuruluşunuzun yöneticisine başvurun."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Yazdırma işlemi <xliff:g id="OWNER_APP">%s</xliff:g> tarafından devre dışı bırakıldı."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Kişisel uygulamalar bir yönetici tarafından askıya alındı"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Politika uyumluluğunu kontrol etmek için buraya dokunun."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Ben"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet seçenekleri"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV seçenekleri"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Telefon seçenekleri"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Ekran kilidi"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Kapat"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Acil durum"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Hata raporu"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Oturumu sonlandır"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"resim çekme ve görüntü kaydetme"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Bu uygulama, herhangi bir zamanda kamerayı kullanarak fotoğraf ve video çekebilir."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Bir uygulama veya hizmetin fotoğraf ve video çekmek için sistem kameralarına erişmesine izin verin"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Ayrıcalık tanınmış bu | sistem uygulaması herhangi bir zamanda sistem kamerası kullanarak fotoğraf çekebilir ve video kaydedebilir. Uygulamanın da bu ayrıcalığa sahip olması için android.permission.CAMERA izni gerektirir"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Bir uygulama veya hizmetin açılıp kapatılan kamera cihazları hakkında geri çağırmalar almasına izin verin."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"titreşimi denetleme"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Uygulamaya, titreşimi denetleme izni verir."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Uygulamanın titreşim durumuna erişimesine izni verir."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Uygulamanın, çağrı deneyimini iyileştirmek için çağrılarını sistem üzerinden yönlendirmesine olanak tanır."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"aramaları sistemde görüp denetleme."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Uygulamanın cihazda devam eden aramaları görmesini ve denetlemesini sağlar. Bu bilgiler arasında aramaların yapıldığı numaralar ve aramaların durumu gibi bilgiler yer alır."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"ses kaydı kısıtlamalarından muafiyet"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Ses kaydetmek için uygulamayı kısıtlamalardan muaf tutun."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"başka bir uygulamadaki çağrıya devam etme"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Uygulamanın, başka bir uygulamada başlatılan çağrıya devam etmesine izin verir."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"telefon numaralarını oku"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Sil"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Giriş yöntemi"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Metin eylemleri"</string>
-    <string name="email" msgid="2503484245190492693">"E-posta"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Seçilen adrese e-posta gönder"</string>
-    <string name="dial" msgid="4954567785798679706">"Telefon et"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Seçilen telefon numarasını ara"</string>
-    <string name="map" msgid="6865483125449986339">"Harita"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Seçilen adresi bul"</string>
-    <string name="browse" msgid="8692753594669717779">"Aç"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Seçilen URL\'yi aç"</string>
-    <string name="sms" msgid="3976991545867187342">"Mesaj"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Seçilen telefon numarasına mesaj gönder"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Ekle"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Kişilere ekle"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Göster"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Seçilen zamanı takvimde göster"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Program yap"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Seçilen zaman için etkinlik programla"</string>
-    <string name="view_flight" msgid="2042802613849690108">"İzle"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Seçilen uçuşu takip et"</string>
-    <string name="translate" msgid="1416909787202727524">"Çevir"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Seçili metni çevir"</string>
-    <string name="define" msgid="5214255850068764195">"Tanımla"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Seçilen metni tanımla"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Depolama alanı bitiyor"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Bazı sistem işlevleri çalışmayabilir"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Sistem için yeterli depolama alanı yok. 250 MB boş alanınızın bulunduğundan emin olun ve yeniden başlatın."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobil ağın internet bağlantısı yok"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Ağın internet bağlantısı yok"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Gizli DNS sunucusuna erişilemiyor"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Bağlandı"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> sınırlı bağlantıya sahip"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Yine de bağlanmak için dokunun"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> ağına geçildi"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ses seviyesi önerilen düzeyin üzerine yükseltilsin mi?\n\nUzun süre yüksek ses seviyesinde dinlemek işitme duyunuza zarar verebilir."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Erişilebilirlik Kısayolu Kullanılsın mı?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Kısayol açıkken ses düğmelerinin ikisini birden 3 saniyeliğine basılı tutmanız bir erişilebilirlik özelliğini başlatır."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> hizmetinin cihazınızı tamamen kontrol etmesine izin veriyor musunuz?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"<xliff:g id="SERVICE">%1$s</xliff:g> hizmetini açarsanız cihazınız veri şifrelemeyi geliştirmek için ekran kilidinizi kullanmaz."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Erişebilirlik ihtiyaçlarınıza yardımcı olan uygulamalara tam kontrol verilmesi uygundur ancak diğer pek çok uygulama için uygun değildir."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ekranı görüntüleme ve kontrol etme"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Ekrandaki tüm içeriği okuyabilir ve içeriği diğer uygulamaların üzerinde gösterebilir"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"İşlemleri görüntüleyin ve gerçekleştirin"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Bir uygulama veya donanım sensörüyle etkileşimlerinizi takip edebilir ve sizin adınıza uygulamalarla etkileşimde bulunabilir."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"İzin ver"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Reddet"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Kullanmaya başlamak için bir özelliğe dokunun:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> kapatıldı"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Kısayolları düzenle"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"İptal"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Bitti"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Kısayolu Kapat"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Kısayolu Kullan"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Rengi Ters Çevirme"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Renk Düzeltme"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Erişilebilirlik Kısayolu <xliff:g id="SERVICE_NAME">%1$s</xliff:g> hizmetini açtı"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Erişilebilirlik Kısayolu <xliff:g id="SERVICE_NAME">%1$s</xliff:g> hizmetini kapattı"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> hizmetini kullanmak için her iki ses tuşunu basılı tutun"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Büyütme"</string>
     <string name="user_switched" msgid="7249833311585228097">"Geçerli kullanıcı: <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> adlı kullanıcıya geçiliyor…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> dosya</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> dosya</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Doğrudan paylaşım mevcut değil"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Uygulama listesi"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Bu uygulamaya ses kaydetme izni verilmedi ancak bu USB cihazı üzerinden sesleri yakalayabilir."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Ana Ekran"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Erişilebilirlik Menüsü"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> uygulamasının başlık çubuğu."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> KISITLANMIŞ gruba yerleştirildi"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Görüşme"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Grup Görüşmesi"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Kişisel"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"İş"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"İş uygulamalarıyla paylaşılamıyor"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Kişisel uygulamalarla paylaşılamıyor"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Kullanılabilir uygulama yok"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Kişisel görünüm"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"İş görünümü"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Bu içerik, iş uygulamalarıyla paylaşılamıyor"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"BT yöneticiniz bu içeriği iş profilinizdeki uygulamalarla paylaşmanıza izin vermiyor"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Bu içerik, iş uygulamalarıyla açılamıyor"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"BT yöneticiniz bu içeriği iş profilinizdeki uygulamalarla açmanıza izin vermiyor"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Kişisel uygulamalarla paylaşılamıyor"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"BT yöneticiniz bu içeriği kişisel profilinizdeki uygulamalarla paylaşmanıza izin vermiyor"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Bu içerik, kişisel uygulamalarla açılamıyor"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"BT yöneticiniz bu içeriği kişisel profilinizdeki uygulamalarla açmanıza izin vermiyor"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"İş profili duraklatıldı"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Aç"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Hiçbir iş uygulaması bu içeriği destekleyemez"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Hiçbir iş uygulaması bu içeriği açamaz"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Hiçbir kişisel uygulama bu içeriği destekleyemez"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Hiçbir kişisel uygulama bu içeriği açamaz"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Telefon aramalarında sesi kaydet veya çal"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Varsayılan çevirici uygulaması olarak atandığında bu uygulamanın telefon aramalarında sesi kaydetmesine veya çalmasına izin verir."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index b1a954a..37ce497 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -204,8 +204,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"З вашого пристрою буде стерто всі дані"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Не можна запускати додаток для адміністраторів. Буде відновлено заводські налаштування пристрою.\n\nЯкщо у вас є запитання, зв’яжіться з адміністратором своєї організації."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Додаток <xliff:g id="OWNER_APP">%s</xliff:g> вимкнув друк."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Особисті додатки заблоковано адміністратором"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Натисніть тут, щоб перевірити відповідність правилам."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Я"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Парам. пристрою"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Опції Android TV"</string>
@@ -239,6 +245,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Параметри телеф."</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Блокування екрана"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Вимкнути"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Екстрений виклик"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Звіт про помилки"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Завершити сеанс"</string>
@@ -440,7 +450,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"фотограф. та знімати відео"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Цей додаток може будь-коли робити фотографії та записувати відео за допомогою камери."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Дозволити додатку або сервісу отримувати доступ до системних камер, робити фото й записувати відео"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Цей пріоритетний | системний додаток може будь-коли робити фото й записувати відео, використовуючи камеру системи. Додатку потрібен дозвіл android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Дозволити додатку або сервісу отримувати зворотні виклики щодо відкриття чи закриття камер."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"контролювати вібросигнал"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Дозволяє програмі контролювати вібросигнал."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Надає додатку доступ до стану вібрації."</string>
@@ -454,6 +468,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Дозволяє додатку маршрутизувати виклики через систему, щоб було зручніше телефонувати."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"Переглядати виклики через систему й керувати ними."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Додаток може переглядати поточні виклики на пристрої та керувати ними. Це стосується такої інформації, як номери та стан викликів."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"зняти обмеження на запис аудіо"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Зняти для додатка обмеження на запис аудіо."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"продовжувати виклик з іншого додатка"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Додаток може продовжувати виклик, початий в іншому додатку."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"переглядати номери телефону"</string>
@@ -1139,28 +1155,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Видалити"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Метод введення"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Дії з текстом"</string>
-    <string name="email" msgid="2503484245190492693">"Написати лист"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Надіслати електронний лист на вибрану адресу"</string>
-    <string name="dial" msgid="4954567785798679706">"Телефонувати"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Телефонувати за вибраним номером"</string>
-    <string name="map" msgid="6865483125449986339">"Відкрити карту"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Знайти вибрану адресу"</string>
-    <string name="browse" msgid="8692753594669717779">"Відкрити"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Відкрити вибрану URL-адресу"</string>
-    <string name="sms" msgid="3976991545867187342">"Написати SMS"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Надіслати повідомлення за вибраним номером телефону"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Додати"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Додати в контакти"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Переглянути"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Переглянути вибраний час у календарі"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Запланувати"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Запланувати подію на вибраний час"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Відстежити"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Відстежувати вибраний авіарейс"</string>
-    <string name="translate" msgid="1416909787202727524">"Перекласти"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Перекласти виділений текст"</string>
-    <string name="define" msgid="5214255850068764195">"Знайти визначення"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Знайти визначення виділеного тексту"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Закінчується пам’ять"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Деякі системні функції можуть не працювати"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Недостатньо місця для системи. Переконайтесь, що на пристрої є 250 МБ вільного місця, і повторіть спробу."</string>
@@ -1299,7 +1293,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Мобільна мережа не має доступу до Інтернету"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Мережа не має доступу до Інтернету"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Немає доступу до приватного DNS-сервера"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Підключено"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"Підключення до мережі <xliff:g id="NETWORK_SSID">%1$s</xliff:g> обмежено"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Натисніть, щоб усе одно підключитися"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Пристрій перейшов на мережу <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1319,7 +1312,7 @@
     <string name="sms_control_title" msgid="4748684259903148341">"Надсил. SMS повідомлень"</string>
     <string name="sms_control_message" msgid="6574313876316388239">"Програма &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; надсилає велику кількість SMS-повідомлень. Дозволити цій програмі й надалі надсилати повідомлення?"</string>
     <string name="sms_control_yes" msgid="4858845109269524622">"Дозволити"</string>
-    <string name="sms_control_no" msgid="4845717880040355570">"Відмовити"</string>
+    <string name="sms_control_no" msgid="4845717880040355570">"Заборонити"</string>
     <string name="sms_short_code_confirm_message" msgid="1385416688897538724">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; хоче надіслати повідомлення на таку адресу: &lt;b&gt;<xliff:g id="DEST_ADDRESS">%2$s</xliff:g>&lt;/b&gt;."</string>
     <string name="sms_short_code_details" msgid="2723725738333388351"><b>"Можуть стягуватися кошти"</b>" з вашого мобільного рахунку."</string>
     <string name="sms_premium_short_code_details" msgid="1400296309866638111"><b>"Буде стягнено кошти з вашого мобільного рахунку."</b></string>
@@ -1675,21 +1668,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Збільшити гучність понад рекомендований рівень?\n\nЯкщо слухати надто гучну музику тривалий час, можна пошкодити слух."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Використовувати швидке ввімкнення?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Якщо цей засіб увімкнено, ви можете активувати спеціальні можливості, утримуючи обидві кнопки гучності протягом трьох секунд."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Надати сервісу <xliff:g id="SERVICE">%1$s</xliff:g> повний доступ до вашого пристрою?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Якщо ви ввімкнете сервіс <xliff:g id="SERVICE">%1$s</xliff:g>, дані на пристрої не захищатимуться екраном блокування."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Повний доступ доречний для додатків, які надають спеціальні можливості, але його не варто відкривати для більшості інших додатків."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Перегляд і контроль екрана"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Цей сервіс може переглядати всі дані на екрані й показувати вміст над іншими додатками."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Переглянути й виконати дії"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Цей сервіс може відстежувати вашу взаємодію з додатком чи апаратним датчиком, а також взаємодіяти з додатками від вашого імені."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Дозволити"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Заборонити"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Натисніть функцію, щоб почати використовувати її:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"Сервіс <xliff:g id="SERVICE_NAME">%s</xliff:g> вимкнено"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Редагувати засоби"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Скасувати"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Готово"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Вимкнути ярлик"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Використовувати ярлик"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Інверсія кольорів"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Корекція кольорів"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Сервіс <xliff:g id="SERVICE_NAME">%1$s</xliff:g> увімкнено"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Сервіс <xliff:g id="SERVICE_NAME">%1$s</xliff:g> вимкнено"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Щоб скористатися службою <xliff:g id="SERVICE_NAME">%1$s</xliff:g>, утримуйте обидві клавіші гучності впродовж трьох секунд"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Збільшення"</string>
     <string name="user_switched" msgid="7249833311585228097">"Поточний користувач: <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Перехід в обліковий запис \"<xliff:g id="NAME">%1$s</xliff:g>\"…"</string>
@@ -2084,7 +2118,8 @@
       <item quantity="many"><xliff:g id="FILE_NAME_2">%s</xliff:g> і ще <xliff:g id="COUNT_3">%d</xliff:g> файлів</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> і ще <xliff:g id="COUNT_3">%d</xliff:g> файлу</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Прямий обмін даними недоступний"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Список додатків"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Цей додаток не має дозволу на запис, але він може фіксувати звук через цей USB-пристрій."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"На головний екран"</string>
@@ -2099,31 +2134,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Меню спеціальних можливостей"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Смуга із субтитрами для додатка <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакет \"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>\" додано в сегмент з обмеженнями"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Чат"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Груповий чат"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Особисте"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Робоче"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Не можна надсилати дані робочим додаткам"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Не можна надсилати дані особистим додаткам"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Немає доступних додатків"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Особистий перегляд"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Робочий перегляд"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Цей контент не можна надсилати в робочих додатках"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Ваш ІТ-адміністратор не дозволяє надсилати цей контент у додатках у робочому профілі"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Цей контент не можна відкривати в робочих додатках"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Ваш ІТ-адміністратор не дозволяє відкривати цей контент у додатках у робочому профілі"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Цей контент не можна надсилати в особистих додатках"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Ваш ІТ-адміністратор не дозволяє надсилати цей контент у додатках в особистому профілі"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Цей контент не можна відкривати в особистих додатках"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Ваш ІТ-адміністратор не дозволяє відкривати цей контент у додатках в особистому профілі"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Робочий профіль призупинено"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Увімкнути"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Робочі додатки не можуть підтримувати цей контент"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Робочі додатки не можуть відкривати цей контент"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Особисті додатки не можуть підтримувати цей контент"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Особисті додатки не можуть відкривати цей контент"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Записувати й відтворювати звук під час викликів"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Дозволяє цьому додатку записувати й відтворювати звук під час викликів, коли його вибрано додатком для дзвінків за умовчанням."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index 31ff6cf..51a0d79 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"آپ کا آلہ صاف کر دیا جائے گا"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"منتظم کی ایپ استعمال نہیں کی جا سکتی۔ آپ کا آلہ اب مٹا دیا جائے گا۔\n\nاگر آپ کے سوالات ہیں تو اپنی تنظیم کے منتظم سے رابطہ کریں۔"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> نے پرنٹنگ کو غیر فعال کر دیا ہے۔"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ایک منتظم کے ذریعہ ذاتی ایپس معطل کر دی گئی ہیں"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"پالیسی کی تعمیل کو چیک کرنے کے ليے یہاں تھپتھپائیں۔"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"میں"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"ٹیبلیٹ کے اختیارات"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"‏Android TV اختیارات"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"فون کے اختیارات"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"اسکرین لاک"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"پاور آف"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"ایمرجنسی"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"بگ کی اطلاع"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"سیشن ختم کریں"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"تصاویر لیں اور ویڈیوز بنائیں"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"یہ ایپ کسی بھی وقت کیمرا استعمال کرتے ہوئے تصاویر لے سکتی ہے اور ویڈیوز ریکارڈ کر سکتی ہے۔"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"ایپلیکیشن یا سروس کو سسٹم کے کیمرے تک رسائی حاصل کرنے کی اجازت دیتا ہے تاکہ وہ تصاویر لیں اور ویڈیوز ریکارڈ کریں۔"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"‏یہ مراعات یافتہ سسٹم ایپ کسی بھی وقت ایک سسٹم کیمرا استعمال کرتے ہوئے تصاویر اور ویڈیوز ریکارڈ کر سکتی ہے۔ ایپ کے پاس android.permission.CAMERA کے ليے بھی اجازت ہونا ضروری ہے۔"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"ایپلیکیشن یا سروس کو کیمرا کے آلات کے کُھلنے یا بند ہونے سے متعلق کال بیکس موصول کرنے کی اجازت دیں۔"</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"یہ ایپ کال بیکس موصول کر سکتی ہے جب کوئی بھی کیمرا کا آلہ (کسی ایپلیکیشن سے) کھولا جا رہا ہو یا بند کیا جا رہا ہو۔"</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"ارتعاش کو کنٹرول کریں"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"ایپ کو وائبریٹر کنٹرول کرنے کی اجازت دیتا ہے۔"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ایپ کو وائبریٹر اسٹیٹ تک رسائی حاصل کرنے کی اجازت دیتا ہے۔"</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"کالںگ کا تجربہ بہتر بنانے کے لیے سسٹم کے ذریعہ ایپ کو کالز روٹ کرنے کی اجازت دیتا ہے۔"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"سسٹم کے ذریعے کالز دیکھیں اور کنٹرول کریں۔"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"ایپ کو آلہ پر جاری کالز دیکھنے اور کنٹرول کرنے کی اجازت دیں۔ اس میں کالز کیلئے کال نمبرز اور کالز کی حالت جیسی معلومات شامل ہیں۔"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"آڈیو ریکاڈ کی پابندیوں سے مبرّا"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"آڈیو ریکارڈ کرنے کے لیے ایپ کو پابندیوں سے مبرّا کریں۔"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"دوسری ایپ کی کال جاری رکھیں"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"ایپ کو دوسری ایپ میں شروع کردہ کال کو جاری رکھنے کی اجازت ملتی ہے۔"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"فون نمبرز پڑھیں"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"حذف کریں"</string>
     <string name="inputMethod" msgid="1784759500516314751">"اندراج کا طریقہ"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"متن کی کارروائیاں"</string>
-    <string name="email" msgid="2503484245190492693">"ای میل بھیجیں"</string>
-    <string name="email_desc" msgid="8291893932252173537">"منتخب کردہ پتہ پر ای میل کریں"</string>
-    <string name="dial" msgid="4954567785798679706">"کال کریں"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"منتخب کردہ فون نمبر پر کال کریں"</string>
-    <string name="map" msgid="6865483125449986339">"نقشہ کی ایپ کھولیں"</string>
-    <string name="map_desc" msgid="1068169741300922557">"منتخب کردہ پتہ تلاش کریں"</string>
-    <string name="browse" msgid="8692753594669717779">"کھولیں"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"‏منتخب کردہ URL کھولیں"</string>
-    <string name="sms" msgid="3976991545867187342">"پیغام بھیجیں"</string>
-    <string name="sms_desc" msgid="997349906607675955">"منتخب کردہ فون نمبر پر پیغام بھیجیں"</string>
-    <string name="add_contact" msgid="7404694650594333573">"شامل کریں"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"رابطوں میں شامل کریں"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"دیکھیں"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"کیلنڈر میں منتخب کردہ وقت دیکھیں"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"شیڈول کریں"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"منتخب کردہ وقت کے لیے ایونٹ شیٹول کریں"</string>
-    <string name="view_flight" msgid="2042802613849690108">"پتہ لگائیں"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"منتخب کردہ پرواز ٹریک کریں"</string>
-    <string name="translate" msgid="1416909787202727524">"ترجمہ کریں"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"منتخب کردہ متن کا ترجمہ کریں"</string>
-    <string name="define" msgid="5214255850068764195">"وضاحت کریں"</string>
-    <string name="define_desc" msgid="6916651934713282645">"منتخب کردہ متن کی وضاحت کریں"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"اسٹوریج کی جگہ ختم ہو رہی ہے"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"ممکن ہے سسٹم کے کچھ فنکشنز کام نہ کریں"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"‏سسٹم کیلئے کافی اسٹوریج نہیں ہے۔ اس بات کو یقینی بنائیں کہ آپ کے پاس 250MB خالی جگہ ہے اور دوبارہ شروع کریں۔"</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"موبائل نیٹ ورک کو انٹرنیٹ تک رسائی حاصل نہیں ہے"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"نیٹ ورک کو انٹرنیٹ تک رسائی حاصل نہیں ہے"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"‏نجی DNS سرور تک رسائی حاصل نہیں کی جا سکی"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"منسلک ہے"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> کی کنیکٹوٹی محدود ہے"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"بہر حال منسلک کرنے کے لیے تھپتھپائیں"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> پر سوئچ ہو گیا"</string>
@@ -1631,21 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"والیوم کو تجویز کردہ سطح سے زیادہ کریں؟\n\nزیادہ وقت تک اونچی آواز میں سننے سے آپ کی سماعت کو نقصان پہنچ سکتا ہے۔"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ایکسیسبیلٹی شارٹ کٹ استعمال کریں؟"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"شارٹ کٹ آن ہونے پر، 3 سیکنڈ تک دونوں والیوم بٹنز کو دبانے سے ایک ایکسیسبیلٹی خصوصیت شروع ہو جائے گی۔"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> کو آپ کے آلے کا مکمل کنٹرول حاصل کرنے کی اجازت دیں؟"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"اگر آپ <xliff:g id="SERVICE">%1$s</xliff:g> کو آن کرتے ہیں تو آپ کا آلہ ڈیٹا کی مرموزکاری کو بڑھانے کیلئے آپ کی اسکرین کا قفل استعمال نہیں کرے گا۔"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"مکمل کنٹرول ان ایپس کے لیے مناسب ہے جو ایکسیسبیلٹی کی ضروریات میں آپ کی مدد کرتی ہیں، لیکن زیادہ تر ایپس کیلئے مناسب نہیں۔"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"اسکرین کو دیکھیں اور کنٹرول کریں"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"یہ تمام مواد کو اسکرین پر پڑھ اور دیگر ایپس پر مواد کو ڈسپلے کر سکتا ہے۔"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"کارروائیاں دیکھیں اور انجام دیں"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"یہ آپ کے تعاملات کو ایپ یا ہارڈویئر سینسر کے ذریعے ٹریک کر سکتا ہے، اور آپ کی طرف سے ایپ کے ساتھ تعمل کر سکتا ہے۔"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"اجازت دیں"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"مسترد کریں"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"ایک خصوصیت کا استعمال شروع کرنے کیلئے اسے تھپتھپائیں:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> کو آف کر دیا گیا ہے"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"شارٹ کٹس میں ترمیم کریں"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"منسوخ کریں"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"ہو گیا"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"شارٹ کٹ آف کریں"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"شارٹ کٹ استعمال کریں"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"رنگوں کی تقلیب"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"رنگ کی تصحیح"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"ایکسیسبیلٹی شارٹ کٹ نے <xliff:g id="SERVICE_NAME">%1$s</xliff:g> کو آن کر دیا"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"ایکسیسبیلٹی شارٹ کٹ نے <xliff:g id="SERVICE_NAME">%1$s</xliff:g> کو آف کر دیا"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> کا استعمال کرنے کے لیے 3 سیکنڈ تک والیوم کی دونوں کلیدوں کو چھوئیں اور دبائے رکھیں"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"میگنیفکیشن"</string>
     <string name="user_switched" msgid="7249833311585228097">"موجودہ صارف <xliff:g id="NAME">%1$s</xliff:g>۔"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> پر سوئچ کیا جا رہا ہے…"</string>
@@ -1859,8 +1892,7 @@
     <string name="default_notification_channel_label" msgid="3697928973567217330">"غیر زمرہ بند"</string>
     <string name="importance_from_user" msgid="2782756722448800447">"ان اطلاعات کی اہمیت آپ مقرر کرتے ہیں۔"</string>
     <string name="importance_from_person" msgid="4235804979664465383">"اس میں موجود لوگوں کی وجہ سے یہ اہم ہے۔"</string>
-    <!-- no translation found for notification_history_title_placeholder (7748630986182249599) -->
-    <skip />
+    <string name="notification_history_title_placeholder" msgid="7748630986182249599">"حسب ضرورت ایپ کی اطلاع"</string>
     <string name="user_creation_account_exists" msgid="2239146360099708035">"<xliff:g id="APP">%1$s</xliff:g> کو <xliff:g id="ACCOUNT">%2$s</xliff:g> کے ساتھ ایک نیا صارف بنانے کی اجازت دیں (اس اکاؤنٹ کے ساتھ ایک صارف پہلے سے موجود ہے) ؟"</string>
     <string name="user_creation_adding" msgid="7305185499667958364">"<xliff:g id="ACCOUNT">%2$s</xliff:g> کے ساتھ نئے صارف کو تخلیق کرنے کے لیے <xliff:g id="APP">%1$s</xliff:g> کو اجازت دیں ؟"</string>
     <string name="language_selection_title" msgid="52674936078683285">"ایک زبان شامل کریں"</string>
@@ -2017,7 +2049,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> فائلز</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> فائل</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"بلاواسطہ اشتراک دستیاب نہیں ہے"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"ایپس کی فہرست"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"‏اس ایپ کو ریکارڈ کرنے کی اجازت عطا نہیں کی گئی ہے مگر اس USB آلہ کے ذریعے آڈیو کیپچر کر سکتی ہے۔"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"گھر"</string>
@@ -2032,31 +2065,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ایکسیسبیلٹی مینو"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> کی کیپشن بار۔"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> کو پابند کردہ بکٹ میں رکھ دیا گیا ہے"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"گفتگو"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"گروپ گفتگو"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"ذاتی"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"دفتر"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"ذاتی ملاحظہ"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"دفتری ملاحظہ"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"ورک ایپس کے ساتھ اشتراک نہیں کر سکتے"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"ذاتی ایپس کے ساتھ اشتراک نہیں کر سکتے"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"کوئی ایپ دستیاب نہیں"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"آن کریں"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"ٹیلیفون کالز میں آڈیو ریکارڈ کریں یا چلائیں"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"اس ایپ کو، جب ڈیفالٹ ڈائلر ایپلیکیشن کے بطور تفویض کیا جاتا ہے، تو ٹیلیفون کالز میں آڈیو ریکارڈ کرنے یا چلانے کی اجازت دیتا ہے۔"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index 7365dfd..7b90111 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Qurilmangizdagi ma’lumotlar o‘chirib tashlanadi"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Administrator ilovasini ishlatib bo‘lmaydi. Qurilmada barcha ma’lumotlar o‘chirib tashlanadi.\n\nSavollaringiz bo‘lsa, administrator bilan bog‘laning."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Chop etish funksiyasi <xliff:g id="OWNER_APP">%s</xliff:g> tomonidan faolsizlantirilgan."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Shaxsiy ilovalar administrator tomonidan faolsizlantirildi"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Siyosatga muvofiqligini tekshirish uchun shu yerga bosing."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Men"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Planshet sozlamalari"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV parametrlari"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Telefon sozlamalari"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Ekran qulfi"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"O‘chirish"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Favqulodda chaqiruv"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Nosozlik haqida ma’lumot berish"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Seansni yakunlash"</string>
@@ -434,7 +444,10 @@
     <string name="permlab_camera" msgid="6320282492904119413">"rasm va videoga olish"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Bu ilova xohlagan vaqtda kamera orqali suratga olishi va video yozib olishi mumkin."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Ilova yoki xizmatga tizim kamerasi orqali surat va videolar olishga ruxsat berish"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Bu imtiyozli | tizim ilovasi istalgan vaqtda tizim kamerasi orqali surat va videolar olishi mumkin. Ilovada android.permission.CAMERA ruxsati ham yoqilgan boʻlishi talab qilinadi"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Ilova yoki xizmatga kamera qurilmalari ochilayotgani yoki yopilayotgani haqida qayta chaqiruvlar qabul qilishi uchun ruxsat berish."</string>
+    <string name="permdesc_cameraOpenCloseListener" msgid="2002636131008772908">"Bu ilova har qanday kamera qurilmasi ochilayotganda (istalgan ilova tarafidan) yoki yopilayotganda qayta chaqiruvlar qabul qilishi mumkin."</string>
     <string name="permlab_vibrate" msgid="8596800035791962017">"tebranishni boshqarish"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Ilova tebranishli signallarni boshqarishi mumkin."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Ilovaga tebranish holatini aniqlash ruxsatini beradi."</string>
@@ -448,6 +461,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Ilova aloqa sifatini yaxshilash maqsadida chaqiruvlarni tizim orqali yo‘naltirishi mumkin."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"tizim orqali chaqiruvlarni tekshirish va boshqarish."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Ilovaga qurilmadagi amaldagi chaqiruvlarni tekshirish va boshqarish imkonini beradi. Shuningdek, chaqiruvlar holati va kiruvchi-chiquvchi chaqiruv raqamlari axborotiga ham ruxsat beradi."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"audio yozish cheklovlaridan ozod qilish"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Audio yozib olish cheklovlaridan ilovani ozod qilish"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"chaqiruvni boshqa ilovada davom ettirish"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Ilovaga boshqa ilovada boshlangan chaqiruvni davom ettirish imkon beradi"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"telefon raqamlarini o‘qish"</string>
@@ -1099,28 +1114,6 @@
     <string name="deleteText" msgid="4200807474529938112">"O‘chirish"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Kiritish uslubi"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Matn yozish"</string>
-    <string name="email" msgid="2503484245190492693">"Email"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Belgilangan e-pochta manziliga xat yuborish"</string>
-    <string name="dial" msgid="4954567785798679706">"Chaqiruv"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Belgilangan raqamga telefon qilish"</string>
-    <string name="map" msgid="6865483125449986339">"Xarita"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Belgilangan manzilni xaritadan topish"</string>
-    <string name="browse" msgid="8692753594669717779">"Ochish"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Belgilangan URL manzilini ochish"</string>
-    <string name="sms" msgid="3976991545867187342">"SMS yozish"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Belgilangan telefon raqamiga SMS yuborish"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Saqlab olish"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Kontaktlarga saqlash"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Ochish"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Belgilangan vaqtni taqvimda ochish"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Rejalashtirish"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Belgilangan vaqt uchun tadbir rejalashtirish"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Kuzatish"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Belgilangan parvozni kuzatish"</string>
-    <string name="translate" msgid="1416909787202727524">"Tarjima qilish"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Belgilangan matnni tarjima qilish"</string>
-    <string name="define" msgid="5214255850068764195">"Izohini olish"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Belgilangan matnning izohini aniqlash"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Xotirada bo‘sh joy tugamoqda"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Ba‘zi tizim funksiyalari ishlamasligi mumkin"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Tizim uchun xotirada joy yetarli emas. Avval 250 megabayt joy bo‘shatib, keyin qurilmani o‘chirib yoqing."</string>
@@ -1259,7 +1252,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mobil tarmoq internetga ulanmagan"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Tarmoq internetga ulanmagan"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Xususiy DNS server ishlamayapti"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Ulandi"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> nomli tarmoqda aloqa cheklangan"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Baribir ulash uchun bosing"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"<xliff:g id="NETWORK_TYPE">%1$s</xliff:g> tarmog‘iga ulanildi"</string>
@@ -1631,21 +1623,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Tovush balandligi tavsiya etilgan darajadan ham yuqori qilinsinmi?\n\nUzoq vaqt davomida baland ovozda tinglash eshitish qobiliyatingizga salbiy ta’sir ko‘rsatishi mumkin."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Tezkor ishga tushirishdan foydalanilsinmi?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Maxsus imkoniyatlar funksiyasidan foydalanish uchun u yoniqligida ikkala tovush tugmasini 3 soniya bosib turing."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"<xliff:g id="SERVICE">%1$s</xliff:g> xizmatiga qurilmangizni boshqarish uchun toʻliq ruxsat berilsinmi?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Agar <xliff:g id="SERVICE">%1$s</xliff:g> xizmatini yoqsangiz, qurilmangiz maʼlumotlarni shifrlashni kuchaytirish uchun ekran qulfidan foydalanmaydi."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Toʻliq nazorat maxsus imkoniyatlar bilan ishlovchi ilovalar uchun mos, lekin barcha ilovalar uchun emas."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Ekranni ochish va boshqarish"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Ekrandagi barcha kontentni oʻqishi va kontentni boshqa ilovalar ustida ochishi mumkin."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Harakatlarni koʻrish va bajarish"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Ilova yoki qurilma sensori bilan munosabatlaringizni kuzatishi hamda sizning nomingizdan ilovalar bilan ishlashi mumkin."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Ruxsat"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Rad etish"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Funksiyadan foydalanish uchun ustiga bosing:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> faolsizlantirildi"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Tezkor tugmalarni tahrirlash"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Bekor qilish"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"OK"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Tezkor ishga tushirishni o‘chirib qo‘yish"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Tezkor ishga tushirishdan foydalanish"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Ranglarni akslantirish"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Rangni tuzatish"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> xizmati yoqildi"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> xizmati o‘chirib qo‘yildi"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"<xliff:g id="SERVICE_NAME">%1$s</xliff:g> xizmatidan foydalanish uchun ikkala ovoz balandligi tugmalarini uzoq bosib turing"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Kattalashtirish"</string>
     <string name="user_switched" msgid="7249833311585228097">"Joriy foydalanuvchi <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Quyidagi foydalanuvchiga o‘tilmoqda: <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2049,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ta fayl</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> ta fayl</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Bevosita ulashuv ishlamaydi"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Ilovalar roʻyxati"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Bu ilovaga yozib olish ruxsati berilmagan, lekin shu USB orqali ovozlarni yozib olishi mumkin."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Bosh sahifa"</string>
@@ -2031,31 +2065,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Maxsus imkoniyatlar menyusi"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> taglavhalar paneli."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> cheklangan turkumga joylandi"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Suhbat"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Guruh suhbati"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Shaxsiy"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Ish"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ishga oid ilovalarga ulashilmaydi"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Shaxsiy ilovalarga ulashilmaydi"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Mos ilova topilmadi"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Shaxsiy rejim"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Ishchi rejim"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Ishga oid ilovalarga ulashilmaydi"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"AT administratoringiz bu turdagi kontentni ishchi profildagi ilovada ulashishni taqiqlagan"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Ishga oid ilovalarda ochilmaydi"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"AT administratoringiz bu turdagi kontentni ishchi profildagi ilovada ochilishini taqiqlagan"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Shaxsiy ilovalarga ulashilmaydi"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"AT administratoringiz bu turdagi kontentni shaxsiy profildagi ilovada ulashishni taqiqlagan"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Shaxsiy ilovalarda ochilmaydi"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"AT administratoringiz bu turdagi kontentni shaxsiy profildagi ilovada ochilishini taqiqlagan"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Ishchi profil pauzada"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Yoqish"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Bu kontent bilan ishlay oladigan ishga oid ilovalar topilmadi"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Bu kontentni ocha oladigan ishga oid ilovalar topilmadi"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Bu kontent bilan ishlay oladigan shaxsiy ilovalar topilmadi"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Bu kontentni ocha oladigan shaxsiy ilovalar topilmadi"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Telefondagi suhbatlarni yozib olish va ularni ijro qilish"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Bu ilova chaqiruvlar uchun asosiy ilova sifatida tayinlanganda u telefon chaqiruvlarida suhbatlarni yozib olish va shu audiolarni ijro etish imkonini beradi."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index bce8e37..c87296d 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Thiết bị của bạn sẽ bị xóa"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Không thể sử dụng ứng dụng quản trị. Thiết bị của bạn sẽ bị xóa ngay bây giờ.\n\nHãy liên hệ với quản trị viên của tổ chức nếu bạn có thắc mắc."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> đã tắt tính năng in."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Các ứng dụng cá nhân đã bị một quản trị viên tạm ngưng"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Nhấn vào đây để kiểm tra tính tuân thủ đối với chính sách."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Tôi"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tùy chọn máy tính bảng"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Tùy chọn dành cho Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Tùy chọn điện thoại"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Phương thức khoá màn hình"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Tắt nguồn"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Khẩn cấp"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Báo cáo lỗi"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Kết thúc phiên"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"chụp ảnh và quay video"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Ứng dụng này có thể chụp ảnh và quay video bằng máy ảnh bất cứ lúc nào."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Cho phép một ứng dụng hoặc dịch vụ truy cập vào máy ảnh hệ thống để chụp ảnh và quay video"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Ứng dụng hệ thống/đặc quyền này có thể dùng máy ảnh hệ thống để chụp ảnh và quay video bất cứ lúc nào. Ngoài ra, ứng dụng này cũng cần có quyền android.permission.CAMERA"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Cho phép một ứng dụng hoặc dịch vụ nhận lệnh gọi lại khi các thiết bị máy ảnh đang được mở/đóng."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"kiểm soát rung"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Cho phép ứng dụng kiểm soát bộ rung."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Cho phép ứng dụng truy cập vào trạng thái bộ rung."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Cho phép ứng dụng định tuyến cuộc gọi thông qua hệ thống nhằm cải thiện trải nghiệm gọi điện."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"xem và kiểm soát cuộc gọi thông qua hệ thống."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Cho phép ứng dụng xem và kiểm soát cuộc gọi đến trên thiết bị. Ứng dụng sẽ xem và kiểm soát các thông tin như số điện thoại của các cuộc gọi và trạng thái cuộc gọi."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"miễn các hạn chế ghi âm"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Miễn các hạn chế ghi âm cho ứng dụng."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"tiếp tục cuộc gọi từ một ứng dụng khác"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Cho phép ứng dụng tiếp tục cuộc gọi được bắt đầu trong một ứng dụng khác."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"đọc số điện thoại"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Xóa"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Phương thức nhập"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Tác vụ văn bản"</string>
-    <string name="email" msgid="2503484245190492693">"Gửi email"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Gửi email đến địa chỉ đã chọn"</string>
-    <string name="dial" msgid="4954567785798679706">"Gọi điện"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Gọi đến số điện thoại đã chọn"</string>
-    <string name="map" msgid="6865483125449986339">"Xem bản đồ"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Tìm địa chỉ đã chọn"</string>
-    <string name="browse" msgid="8692753594669717779">"Mở"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Mở URL đã chọn"</string>
-    <string name="sms" msgid="3976991545867187342">"Nhắn tin"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Nhắn tin đến số điện thoại đã chọn"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Thêm"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Thêm vào danh bạ"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Xem"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Xem thời gian đã chọn trong lịch"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Lên lịch"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Lên lịch sự kiện cho thời gian đã chọn"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Theo dõi"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Theo dõi chuyến bay đã chọn"</string>
-    <string name="translate" msgid="1416909787202727524">"Dịch"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Dịch văn bản đã chọn"</string>
-    <string name="define" msgid="5214255850068764195">"Định nghĩa"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Định nghĩa văn bản đã chọn"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Sắp hết dung lượng lưu trữ"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Một số chức năng hệ thống có thể không hoạt động"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Không đủ bộ nhớ cho hệ thống. Đảm bảo bạn có 250 MB dung lượng trống và khởi động lại."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Mạng di động không có quyền truy cập Internet"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Mạng không có quyền truy cập Internet"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Không thể truy cập máy chủ DNS riêng tư"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Đã kết nối"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> có khả năng kết nối giới hạn"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Nhấn để tiếp tục kết nối"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Đã chuyển sang <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Bạn tăng âm lượng lên quá mức khuyên dùng?\n\nViệc nghe ở mức âm lượng cao trong thời gian dài có thể gây tổn thương thính giác của bạn."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Sử dụng phím tắt Hỗ trợ tiếp cận?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Khi phím tắt này đang bật, thao tác nhấn cả hai nút âm lượng trong 3 giây sẽ mở tính năng hỗ trợ tiếp cận."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Cho phép <xliff:g id="SERVICE">%1$s</xliff:g> toàn quyền kiểm soát thiết bị của bạn?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Nếu bạn bật <xliff:g id="SERVICE">%1$s</xliff:g>, thiết bị của bạn sẽ không dùng phương thức khóa màn hình để tăng cường mã hóa dữ liệu."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Bạn chỉ nên cấp toàn quyền kiểm soát cho những ứng dụng trợ giúp mình khi cần hỗ trợ tiếp cận, chứ không nên cấp cho hầu hết các ứng dụng."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Xem và điều khiển màn hình"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Dịch vụ này có thể đọc toàn bộ nội dung trên màn hình và hiển thị nội dung trên các ứng dụng khác."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Xem và thực hiện hành động"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Dịch vụ này có thể theo dõi các hoạt động tương tác của bạn với một ứng dụng hoặc bộ cảm biến phần cứng, cũng như có thể thay mặt bạn tương tác với các ứng dụng."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Cho phép"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Từ chối"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Nhấn vào một tính năng để bắt đầu sử dụng:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> đã bị tắt"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Chỉnh sửa phím tắt"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Hủy"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Xong"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Tắt phím tắt"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Sử dụng phím tắt"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Đảo màu"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Sửa màu"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Đã bật phím tắt trợ năng <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Đã tắt phím tắt trợ năng <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Nhấn và giữ đồng thời cả hai phím âm lượng trong 3 giây để sử dụng <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Phóng to"</string>
     <string name="user_switched" msgid="7249833311585228097">"Người dùng hiện tại <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Đang chuyển sang <xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> tệp</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> tệp</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Không thể chia sẻ trực tiếp"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Danh sách ứng dụng"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Ứng dụng này chưa được cấp quyền ghi âm nhưng vẫn có thể ghi âm thông qua thiết bị USB này."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Màn hình chính"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Trình đơn Hỗ trợ tiếp cận"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Thanh phụ đề của <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Đã đưa <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> vào bộ chứa BỊ HẠN CHẾ"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Cuộc trò chuyện"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Cuộc trò chuyện nhóm"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Cá nhân"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Cơ quan"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Không thể chia sẻ với các ứng dụng công việc"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Không thể chia sẻ với các ứng dụng cá nhân"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Không có ứng dụng nào"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Chế độ xem cá nhân"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Chế độ xem công việc"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Không thể chia sẻ nội dung này với các ứng dụng công việc"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Quản trị viên CNTT không cho phép chia sẻ nội dung này với các ứng dụng trong hồ sơ công việc của bạn"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Không thể mở nội dung này bằng các ứng dụng công việc"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Quản trị viên CNTT không cho phép mở nội dung này bằng các ứng dụng trong hồ sơ công việc của bạn"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Không thể chia sẻ nội dung này với các ứng dụng cá nhân"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Quản trị viên CNTT không cho phép chia sẻ nội dung này với các ứng dụng trong hồ sơ cá nhân của bạn"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Không thể mở nội dung này bằng các ứng dụng cá nhân"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Quản trị viên CNTT không cho phép mở nội dung này bằng các ứng dụng trong hồ sơ cá nhân của bạn"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Hồ sơ công việc bị tạm dừng"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Bật"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Các ứng dụng công việc không hỗ trợ nội dung này"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Các ứng dụng công việc không thể mở nội dung này"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Các ứng dụng cá nhân không hỗ trợ nội dung này"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Các ứng dụng cá nhân không thể mở nội dung này"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Ghi âm hoặc phát âm thanh trong cuộc gọi điện thoại"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Cho phép ứng dụng này ghi âm hoặc phát âm thanh trong cuộc gọi điện thoại khi được chỉ định làm ứng dụng trình quay số mặc định."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index b24a89e..39b40c3 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"系统将清空您的设备"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"无法使用管理应用,系统现在将清空您的设备。\n\n如有疑问,请与您所在单位的管理员联系。"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"“<xliff:g id="OWNER_APP">%s</xliff:g>”已停用打印功能。"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"管理员已暂停个人应用"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"点按此处即可检查政策合规性。"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"我"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"平板电脑选项"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV 选项"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"手机选项"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"屏幕锁定"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"关机"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"紧急呼救"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"错误报告"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"结束会话"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"拍摄照片和视频"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"此应用可随时使用相机拍摄照片和录制视频。"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"要拍照或录制视频,请允许应用或服务访问系统相机"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"获取访问权限后,这个系统应用就随时可以使用系统相机拍照及录制视频。另外,应用还需要获取 android.permission.CAMERA 权限"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"允许应用或服务接收与打开或关闭摄像头设备有关的回调。"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"控制振动"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"允许应用控制振动器。"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"允许该应用访问振动器状态。"</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"允许该应用通过系统转接来电,以改善通话体验。"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"查看并控制通过系统拨打的电话。"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"允许应用查看并控制设备上正在进行的通话,其中包括通话号码和通话状态等信息。"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"免受录音限制"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"使应用免受录音限制。"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"继续进行来自其他应用的通话"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"允许该应用继续进行在其他应用中发起的通话。"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"读取电话号码"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"删除"</string>
     <string name="inputMethod" msgid="1784759500516314751">"输入法"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"文字操作"</string>
-    <string name="email" msgid="2503484245190492693">"发送电子邮件"</string>
-    <string name="email_desc" msgid="8291893932252173537">"将电子邮件发送至所选地址"</string>
-    <string name="dial" msgid="4954567785798679706">"拨打电话"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"拨打所选电话号码"</string>
-    <string name="map" msgid="6865483125449986339">"查看地图"</string>
-    <string name="map_desc" msgid="1068169741300922557">"找到所选地址"</string>
-    <string name="browse" msgid="8692753594669717779">"打开"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"打开所选网址"</string>
-    <string name="sms" msgid="3976991545867187342">"发短信"</string>
-    <string name="sms_desc" msgid="997349906607675955">"将短信发送至所选电话号码"</string>
-    <string name="add_contact" msgid="7404694650594333573">"添加"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"添加到通讯录"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"查看"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"在日历中查看所选时间"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"排定时间"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"将活动安排在所选时间"</string>
-    <string name="view_flight" msgid="2042802613849690108">"跟踪"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"跟踪所选航班"</string>
-    <string name="translate" msgid="1416909787202727524">"翻译"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"翻译所选文字"</string>
-    <string name="define" msgid="5214255850068764195">"定义"</string>
-    <string name="define_desc" msgid="6916651934713282645">"定义所选文字"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"存储空间不足"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"某些系统功能可能无法正常使用"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"系统存储空间不足。请确保您有250MB的可用空间,然后重新启动。"</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"此移动网络无法访问互联网"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"此网络无法访问互联网"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"无法访问私人 DNS 服务器"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"已连接"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> 的连接受限"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"点按即可继续连接"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"已切换至<xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"要将音量调高到建议的音量以上吗?\n\n长时间保持高音量可能会损伤听力。"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"要使用无障碍快捷方式吗?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"启用这项快捷方式后,同时按下两个音量按钮 3 秒钟即可启动无障碍功能。"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"要允许<xliff:g id="SERVICE">%1$s</xliff:g>完全控制您的设备吗?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"如果您开启<xliff:g id="SERVICE">%1$s</xliff:g>,您的设备将无法使用屏幕锁定功能来增强数据加密效果。"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"对于能满足您的无障碍功能需求的应用,可授予其完全控制权限;但对大部分应用来说,都不适合授予此权限。"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"查看和控制屏幕"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"此功能可以读出屏幕上的所有内容,并在其他应用上层显示内容。"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"查看及执行操作"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"此功能可以跟踪您与应用或硬件传感器的互动,并代表您与应用互动。"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"允许"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"拒绝"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"点按相应功能即可开始使用:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"已关闭<xliff:g id="SERVICE_NAME">%s</xliff:g>"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"修改快捷方式"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"取消"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"完成"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"关闭快捷方式"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"使用快捷方式"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"颜色反转"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"色彩校正"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"无障碍快捷方式已开启<xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"无障碍快捷方式已关闭<xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"同时按住两个音量键 3 秒钟即可使用 <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"放大功能"</string>
     <string name="user_switched" msgid="7249833311585228097">"当前用户是<xliff:g id="NAME">%1$s</xliff:g>。"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"正在切换为<xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> 个文件</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> 个文件</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"无法使用直接分享功能"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"应用列表"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"此应用未获得录音权限,但能通过此 USB 设备录制音频。"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"主屏幕"</string>
@@ -2031,31 +2066,256 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"无障碍功能菜单"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>的标题栏。"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> 已被放入受限存储分区"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"对话"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"群组对话"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"个人"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"工作"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"个人视图"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"工作视图"</string>
+    <!-- no translation found for resolver_cant_share_with_work_apps (637686613606502219) -->
     <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
+    <!-- no translation found for resolver_cant_share_with_work_apps_explanation (3332302070341130545) -->
     <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"无法与工作应用共享数据"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"无法与个人应用共享数据"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
+    <!-- no translation found for resolver_cant_access_work_apps (2455757966397563223) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
+    <!-- no translation found for resolver_cant_access_work_apps_explanation (3626983885525445790) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps (3079139799233316203) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
+    <!-- no translation found for resolver_cant_share_with_personal_apps_explanation (2959282422751315171) -->
     <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
+    <!-- no translation found for resolver_cant_access_personal_apps (648291604475669395) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
+    <!-- no translation found for resolver_cant_access_personal_apps_explanation (2298773629302296519) -->
     <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
+    <!-- no translation found for resolver_turn_on_work_apps (884910835250037247) -->
     <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"没有可用的应用"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"开启"</string>
+    <!-- no translation found for resolver_no_work_apps_available_share (7933949011797699505) -->
+    <skip />
+    <!-- no translation found for resolver_no_work_apps_available_resolve (1244844292366099399) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_share (5639102815174748732) -->
+    <skip />
+    <!-- no translation found for resolver_no_personal_apps_available_resolve (5120671970531446978) -->
     <skip />
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"录制或播放电话通话音频"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"允许此应用在被指定为默认拨号器应用时录制或播放电话通话音频。"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index b0331bf..a698d26 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"您的裝置將被清除"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"無法使用管理員應用程式。系統會現在清除您的裝置。\n\n如有任何疑問,請聯絡您的機構管理員。"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"「<xliff:g id="OWNER_APP">%s</xliff:g>」暫停了列印。"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"管理員已停用個人應用程式"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"輕按這裡查看應用程式是否符合政策要求。"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"我本人"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"平板電腦選項"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV 選項"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"手機選項"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"螢幕鎖定"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"關機"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"緊急"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"錯誤報告"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"結束工作階段"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"拍照和拍攝影片"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"此應用程式可以隨時使用相機拍照和攝錄。"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"允許應用程式或服務存取系統相機來拍照和攝錄"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"這個獲特別權限的系統應用程式可以在任何時候使用系統相機來拍照和攝錄。此外,應用程式亦需要 android.permission.CAMERA 權限"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"允許應用程式或服務接收相機裝置開啟或關閉的相關回電。"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"控制震動"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"允許應用程式控制震動。"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"允許應用程式存取震動狀態。"</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"允許應用程式透過系統轉接來電,以改善通話體驗。"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"透過系統查看和控制通話。"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"允許應用程式查看和控制裝置上正在進行的通話,當中包括通話號碼和通話狀態等資訊。"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"移除錄音限制"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"移除應用程式的錄音限制。"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"繼續進行來自其他應用程式的通話"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"允許應用程式繼續進行在其他應用程式中開始的通話。"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"讀取電話號碼"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"刪除"</string>
     <string name="inputMethod" msgid="1784759500516314751">"輸入法"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"文字操作"</string>
-    <string name="email" msgid="2503484245190492693">"電郵"</string>
-    <string name="email_desc" msgid="8291893932252173537">"Send email 去指定地址"</string>
-    <string name="dial" msgid="4954567785798679706">"通話"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"打指定電話號碼"</string>
-    <string name="map" msgid="6865483125449986339">"地圖"</string>
-    <string name="map_desc" msgid="1068169741300922557">"搵出指定地址"</string>
-    <string name="browse" msgid="8692753594669717779">"開啟"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"打開指定網址"</string>
-    <string name="sms" msgid="3976991545867187342">"發短訊"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Send 短訊去指定電話號碼"</string>
-    <string name="add_contact" msgid="7404694650594333573">"新增"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"加入通訊錄"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"查看"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"喺日曆度睇返指定時間"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"時間表"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"將活動安排喺指定時間"</string>
-    <string name="view_flight" msgid="2042802613849690108">"追蹤"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"追蹤指定航班"</string>
-    <string name="translate" msgid="1416909787202727524">"翻譯"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"翻譯揀咗嘅文字"</string>
-    <string name="define" msgid="5214255850068764195">"定義"</string>
-    <string name="define_desc" msgid="6916651934713282645">"定義揀左嘅文字"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"儲存空間即將用盡"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"部分系統功能可能無法運作"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"系統儲存空間不足。請確認裝置有 250 MB 的可用空間,然後重新啟動。"</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"流動網絡並未連接互聯網"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"網絡並未連接互聯網"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"無法存取私人 DNS 伺服器"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"已連接"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g>連線受限"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"仍要輕按以連結至此網絡"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"已切換至<xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"要調高音量 (比建議的音量更大聲) 嗎?\n\n長時間聆聽高分貝音量可能會導致您的聽力受損。"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"要使用無障礙功能快速鍵嗎?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"啟用快速鍵後,同時按住音量按鈕 3 秒便可啟用無障礙功能。"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"要允許 <xliff:g id="SERVICE">%1$s</xliff:g> 完全控制您的裝置嗎?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"如果您開啟 <xliff:g id="SERVICE">%1$s</xliff:g>,裝置將無法使用螢幕鎖定功能加強資料加密。"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"為您提供所需無障礙功能的應用程式有權完全控制您的裝置,但大部分應用程式均沒有此權限。"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"查看和控制螢幕"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"這項功能可以讀出螢幕上的所有內容,並透過其他應用程式顯示內容。"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"查看和執行動作"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"這項功能會追蹤您與應用程式或硬件感應器的互動,並代表您直接與應用程式互動。"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"允許"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"拒絕"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"輕按即可開始使用所需功能:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"<xliff:g id="SERVICE_NAME">%s</xliff:g> 已關閉"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"編輯捷徑"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"取消"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"完成"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"關閉快速鍵"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"使用快速鍵"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"色彩反轉"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"色彩校正"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"無障礙功能快速鍵已啟用 <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"無障礙功能快速鍵已停用 <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"㩒住兩個音量鍵 3 秒就可以用 <xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"放大"</string>
     <string name="user_switched" msgid="7249833311585228097">"目前的使用者是<xliff:g id="NAME">%1$s</xliff:g>。"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"正在切換至<xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> 個檔案</item>
       <item quantity="one"><xliff:g id="FILE_NAME_0">%s</xliff:g> + <xliff:g id="COUNT_1">%d</xliff:g> 個檔案</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"無法直接分享"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"應用程式清單"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"此應用程式尚未獲授予錄音權限,但可透過此 USB 裝置記錄音訊。"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"主頁"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"無障礙功能選單"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」的說明列。"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> 已納入受限制的儲存區"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"對話"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"群組對話"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"個人"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"公司"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"無法與工作應用程式分享"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"無法與個人應用程式分享"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"沒有可用的應用程式"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"個人檢視模式"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"工作檢視模式"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"無法透過工作應用程式分享此內容"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"IT 管理員不允許您透過工作設定檔中的應用程式分享此內容"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"無法透過工作應用程式開啟此內容"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"IT 管理員不允許您透過工作設定檔中的應用程式開啟此內容"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"無法透過個人應用程式分享此內容"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"IT 管理員不允許您透過個人設定檔中的應用程式分享此內容"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"無法透過個人應用程式開啟此內容"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"IT 管理員不允許您透過個人設定檔中的應用程式開啟此內容"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"工作設定檔已暫停使用"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"開啟"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"沒有可支援此內容的工作應用程式"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"沒有可開啟此內容的工作應用程式"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"沒有可支援此內容的個人應用程式"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"沒有可開啟此內容的個人應用程式"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"在電話通話中錄音或播放音訊"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"如將此應用程式指定為預設撥號器應用程式,則允許應用程式在電話通話中錄音或播放音訊。"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index fe5fe1a..ad0d239 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"你的裝置資料將遭到清除"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"無法使用管理應用程式,系統現在將清除你裝置中的資料。\n\n如有任何問題,請與貴機構的管理員聯絡。"</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"「<xliff:g id="OWNER_APP">%s</xliff:g>」已停用列印功能。"</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"管理員已將個人應用程式設為暫停使用"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"輕觸這裡即可查看政策違規問題。"</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"我"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"平板電腦選項"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV 選項"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"電話選項"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"螢幕鎖定"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"關機"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"緊急電話"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"錯誤報告"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"結束"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"拍攝相片和影片"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"這個應用程式隨時可使用相機拍照及錄影。"</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"如要拍照或錄影,請允許應用程式或服務存取系統攝影機"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"取得存取權後,這個系統應用程式就隨時可以使用系統攝影機拍照及錄影。此外,你也必須將 android.permission.CAMERA 權限授予這個應用程式"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"允許應用程式或服務接收相機裝置開啟或關閉的相關回呼。"</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"控制震動"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"允許應用程式控制震動。"</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"允許應用程式存取震動功能狀態。"</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"允許應用程式透過系統接通來電,以改善通話品質。"</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"查看及控管透過系統撥打的電話。"</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"允許應用程式查看及控管在裝置上撥出的電話,包括撥打的電話號碼和通話狀態等資訊。"</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"移除錄音限制"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"移除應用程式的錄音限制。"</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"繼續進行來自其他應用程式的通話"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"允許應用程式繼續進行在其他應用程式中發起的通話。"</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"讀取電話號碼"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"刪除"</string>
     <string name="inputMethod" msgid="1784759500516314751">"輸入法"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"文字動作"</string>
-    <string name="email" msgid="2503484245190492693">"發送電子郵件"</string>
-    <string name="email_desc" msgid="8291893932252173537">"將電子郵件寄到選取的地址"</string>
-    <string name="dial" msgid="4954567785798679706">"撥號通話"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"撥打選取的電話號碼"</string>
-    <string name="map" msgid="6865483125449986339">"查看地圖"</string>
-    <string name="map_desc" msgid="1068169741300922557">"尋找選取的地址"</string>
-    <string name="browse" msgid="8692753594669717779">"開啟"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"開啟選取的網址"</string>
-    <string name="sms" msgid="3976991545867187342">"發送訊息"</string>
-    <string name="sms_desc" msgid="997349906607675955">"將訊息傳送到選取的電話號碼"</string>
-    <string name="add_contact" msgid="7404694650594333573">"新增"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"新增至聯絡人"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"查看"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"在日曆中查看選取的時間"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"加入日曆"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"將活動安排在選取的時間"</string>
-    <string name="view_flight" msgid="2042802613849690108">"追蹤"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"追蹤選取的航班"</string>
-    <string name="translate" msgid="1416909787202727524">"翻譯"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"翻譯選取的文字"</string>
-    <string name="define" msgid="5214255850068764195">"查看定義"</string>
-    <string name="define_desc" msgid="6916651934713282645">"定義選取的文字"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"儲存空間即將用盡"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"部分系統功能可能無法運作"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"系統儲存空間不足。請確定你已釋出 250MB 的可用空間,然後重新啟動。"</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"這個行動網路沒有網際網路連線"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"這個網路沒有網際網路連線"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"無法存取私人 DNS 伺服器"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"已連線"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> 的連線能力受限"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"輕觸即可繼續連線"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"已切換至<xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"要調高音量,比建議的音量更大聲嗎?\n\n長時間聆聽高分貝音量可能會使你的聽力受損。"</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"要使用無障礙捷徑嗎?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"啟用捷徑功能,只要同時按下兩個音量按鈕 3 秒,就能啟動無障礙功能。"</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"要將裝置的完整控制權授予「<xliff:g id="SERVICE">%1$s</xliff:g>」嗎?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"如果你開啟「<xliff:g id="SERVICE">%1$s</xliff:g>」,裝置將無法使用螢幕鎖定功能強化資料加密。"</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"如果你有無障礙服務需求,可以將完整控制權授予具有相關功能的應用程式,但請勿將完整控制權授予大多數的應用程式。"</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"查看及控制螢幕"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"可讀取螢幕上的所有內容及在其他應用程式上顯示內容。"</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"查看及執行動作"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"可追蹤你與應用程式或硬體感應器的互動,並代表你與應用程式進行互動。"</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"允許"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"拒絕"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"輕觸即可開始使用所需功能:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"「<xliff:g id="SERVICE_NAME">%s</xliff:g>」已關閉"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"編輯捷徑"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"取消"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"完成"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"停用捷徑"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"使用捷徑"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"色彩反轉"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"色彩校正"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"無障礙捷徑啟用了「<xliff:g id="SERVICE_NAME">%1$s</xliff:g>」"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"無障礙捷徑停用了「<xliff:g id="SERVICE_NAME">%1$s</xliff:g>」"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"同時按住調低及調高音量鍵三秒即可使用「<xliff:g id="SERVICE_NAME">%1$s</xliff:g>」"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"放大"</string>
     <string name="user_switched" msgid="7249833311585228097">"目前的使用者是 <xliff:g id="NAME">%1$s</xliff:g>。"</string>
     <string name="user_switching_message" msgid="1912993630661332336">"正在切換至<xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="other">「<xliff:g id="FILE_NAME_2">%s</xliff:g>」及另外 <xliff:g id="COUNT_3">%d</xliff:g> 個檔案</item>
       <item quantity="one">「<xliff:g id="FILE_NAME_0">%s</xliff:g>」及另外 <xliff:g id="COUNT_1">%d</xliff:g> 個檔案</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"無法使用直接分享功能"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"應用程式清單"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"這個應用程式未取得錄製內容的權限,但可以透過這部 USB 裝置錄製音訊。"</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"主螢幕"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"無障礙選單"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」的說明文字列。"</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"已將「<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>」移入受限制的值區"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"對話"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"群組對話"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"個人"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"工作"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"無法與工作應用程式分享"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"無法與個人應用程式分享"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"沒有可用的應用程式"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"個人檢視模式"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"工作檢視模式"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"無法透過工作應用程式分享這項內容"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"IT 管理員不允許你透過工作資料夾中的應用程式分享這項內容"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"無法透過工作應用程式開啟這項內容"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"IT 管理員不允許你透過工作資料夾中的應用程式開啟這項內容"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"無法透過個人應用程式分享這項內容"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"IT 管理員不允許你透過個人資料夾中的應用程式分享這項內容"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"無法透過個人應用程式開啟這項內容"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"IT 管理員不允許你透過個人資料夾中的應用程式開啟這項內容"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"工作資料夾已暫停使用"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"開啟"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"沒有可支援這項內容的工作應用程式"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"沒有可開啟這項內容的工作應用程式"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"沒有可支援這項內容的個人應用程式"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"沒有可開啟這項內容的個人應用程式"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"在通話期間錄製或播放音訊"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"將這個應用程式指派為預設撥號應用程式時,允許應用程式在通話期間錄製或播放音訊。"</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 148272d..7c90a4f 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -200,8 +200,14 @@
     <string name="factory_reset_warning" msgid="6858705527798047809">"Idivayisi yakho izosulwa"</string>
     <string name="factory_reset_message" msgid="2657049595153992213">"Uhlelo lokusebenza lomlawuli alikwazi ukusetshenziswa. Idivayisi yakho manje izosuswa.\n\nUma unemibuzo, xhumana nomlawuli wezinhlangano zakho."</string>
     <string name="printing_disabled_by" msgid="3517499806528864633">"Ukuphrinta kukhutshazwe nge-<xliff:g id="OWNER_APP">%s</xliff:g>."</string>
-    <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Izinhlelo zokusebenza zimiswe okwesikhashana ngumlawuli"</string>
-    <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Thepha lapha ukuze uhlole ukuthobelana kwenqubomgomo."</string>
+    <!-- no translation found for personal_apps_suspended_title (4543693107104417750) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_tomorrow_title (6414440257969874914) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_text (8954038765131038226) -->
+    <skip />
+    <!-- no translation found for personal_apps_suspended_turn_profile_on (4278188538997940785) -->
+    <skip />
     <string name="me" msgid="6207584824693813140">"Mina"</string>
     <string name="power_dialog" product="tablet" msgid="8333207765671417261">"Okukhethwa kukho kwethebhulethi"</string>
     <string name="power_dialog" product="tv" msgid="7792839006640933763">"Izinketho ze-Android TV"</string>
@@ -235,6 +241,10 @@
     <string name="global_actions" product="default" msgid="6410072189971495460">"Okukhethwa kukho kwefoni"</string>
     <string name="global_action_lock" msgid="6949357274257655383">"Ukuvala isikrini"</string>
     <string name="global_action_power_off" msgid="4404936470711393203">"Vala amandla"</string>
+    <!-- no translation found for global_action_power_options (1185286119330160073) -->
+    <skip />
+    <!-- no translation found for global_action_restart (4678451019561687074) -->
+    <skip />
     <string name="global_action_emergency" msgid="1387617624177105088">"Isimo esiphuthumayo"</string>
     <string name="global_action_bug_report" msgid="5127867163044170003">"Umbiko wephutha"</string>
     <string name="global_action_logout" msgid="6093581310002476511">"Phothula isikhathi"</string>
@@ -434,7 +444,11 @@
     <string name="permlab_camera" msgid="6320282492904119413">"thatha izithombe namavidiyo"</string>
     <string name="permdesc_camera" msgid="1354600178048761499">"Lolu hlelo lokusebenza lungathatha izithombe futhi lirekhode amavidiyo lusebenzisa ikhamera noma kunini."</string>
     <string name="permlab_systemCamera" msgid="3642917457796210580">"Vumela uhlelo lokusebenza noma isevisi ukufinyelela kumakhamera wesistimu ukuze uthathe izithombe namavidiyo"</string>
-    <string name="permdesc_systemCamera" msgid="544730545441964482">"Lolu hlelo lokusebenza lesistimu le-| lingathatha izithombe futhi lirekhode amavidiyo lisebenzisa ikhamera yesistimu noma kunini. Idinga imvume ye-android.permission.CAMERA permission ukuthi iphathwa uhlelo lokusebenza futhi"</string>
+    <!-- no translation found for permdesc_systemCamera (5938360914419175986) -->
+    <skip />
+    <string name="permlab_cameraOpenCloseListener" msgid="5548732769068109315">"Vumela uhlelo lokusebenza noma isevisi ukwamukela ukuphinda ufonelwe mayelana namadivayisi wekhamera avuliwe noma avaliwe."</string>
+    <!-- no translation found for permdesc_cameraOpenCloseListener (2002636131008772908) -->
+    <skip />
     <string name="permlab_vibrate" msgid="8596800035791962017">"lawula ukudlidliza"</string>
     <string name="permdesc_vibrate" msgid="8733343234582083721">"Ivumela uhlelo lokusebenza ukulawula isidlidlizi."</string>
     <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Ivumela uhlelo lokusebenza ukuthi lufinyelele kusimo sesidlidlizeli."</string>
@@ -448,6 +462,8 @@
     <string name="permdesc_manageOwnCalls" msgid="4431178362202142574">"Ivumela uhlelo lokusebenza ukwenza imizila yamakholi ngesistimu ukuze ithuthukise umuzwa wokushaya."</string>
     <string name="permlab_callCompanionApp" msgid="3654373653014126884">"bona futhi ulawule amakholi ngesistimu."</string>
     <string name="permdesc_callCompanionApp" msgid="8474168926184156261">"Ivumela uhlelo lokusebenza ukubona nokulawula amakholi aqhubekayo kudivayisi. Lokhu kubandakanya ulwazi olufana nezinombolo zamakholi nesimo samakholi."</string>
+    <string name="permlab_exemptFromAudioRecordRestrictions" msgid="1164725468350759486">"khipha kusuka kwimikhawulo yokurekhoda umsindo"</string>
+    <string name="permdesc_exemptFromAudioRecordRestrictions" msgid="2425117015896871976">"Khipha uhlelo lokusebenza kwimikhawulo yokurekhoda umsindo."</string>
     <string name="permlab_acceptHandover" msgid="2925523073573116523">"qhuba ikholi kusukela kolunye uhlelo lokusebenza"</string>
     <string name="permdesc_acceptHandovers" msgid="7129026180128626870">"Ivumela uhlelo lokusebenza ukuze luqhube ikholi eqalwe kolunye uhlelo lokusebenza."</string>
     <string name="permlab_readPhoneNumbers" msgid="5668704794723365628">"funda izinombolo zefoni"</string>
@@ -1099,28 +1115,6 @@
     <string name="deleteText" msgid="4200807474529938112">"Susa"</string>
     <string name="inputMethod" msgid="1784759500516314751">"Indlela yokufakwayo"</string>
     <string name="editTextMenuTitle" msgid="857666911134482176">"Izenzo zombhalo"</string>
-    <string name="email" msgid="2503484245190492693">"I-imeyili"</string>
-    <string name="email_desc" msgid="8291893932252173537">"I-imeyili ikhethe amakheli"</string>
-    <string name="dial" msgid="4954567785798679706">"Shaya"</string>
-    <string name="dial_desc" msgid="3072967472129276617">"Ikholi ikhethe inombolo yefoni"</string>
-    <string name="map" msgid="6865483125449986339">"Imephu"</string>
-    <string name="map_desc" msgid="1068169741300922557">"Thola ikheli elikhethiwe"</string>
-    <string name="browse" msgid="8692753594669717779">"Vula"</string>
-    <string name="browse_desc" msgid="5328523986921597700">"Vula i-URL ekhethiwe"</string>
-    <string name="sms" msgid="3976991545867187342">"Umlayezo"</string>
-    <string name="sms_desc" msgid="997349906607675955">"Umlayezo ukhethe inombolo yefoni"</string>
-    <string name="add_contact" msgid="7404694650594333573">"Engeza"</string>
-    <string name="add_contact_desc" msgid="6419581556288775911">"Engeza koxhumana nabo"</string>
-    <string name="view_calendar" msgid="4274396845124626977">"Buka"</string>
-    <string name="view_calendar_desc" msgid="1739770773927245564">"Buka isikhathi esikhethiwe kwikhalenda"</string>
-    <string name="add_calendar_event" msgid="5564364269553091740">"Shejula"</string>
-    <string name="add_calendar_event_desc" msgid="5827530672900331107">"Shejula imicimbi yesikhathi esikhethiwe"</string>
-    <string name="view_flight" msgid="2042802613849690108">"Landelela"</string>
-    <string name="view_flight_desc" msgid="2802812586218764790">"Ithrekhi ikhethe indiza"</string>
-    <string name="translate" msgid="1416909787202727524">"Humusha"</string>
-    <string name="translate_desc" msgid="4096225388385338322">"Humusha umbhalo ohumushiwe"</string>
-    <string name="define" msgid="5214255850068764195">"Chaza"</string>
-    <string name="define_desc" msgid="6916651934713282645">"Chaza umbhalo okhethiwe"</string>
     <string name="low_internal_storage_view_title" msgid="9024241779284783414">"Isikhala sokulondoloza siyaphela"</string>
     <string name="low_internal_storage_view_text" msgid="8172166728369697835">"Eminye imisebenzi yohlelo ingahle ingasebenzi"</string>
     <string name="low_internal_storage_view_text_no_boot" msgid="7368968163411251788">"Akusona isitoreji esanele sesistimu. Qiniseka ukuthi unesikhala esikhululekile esingu-250MB uphinde uqalise kabusha."</string>
@@ -1259,7 +1253,6 @@
     <string name="mobile_no_internet" msgid="4014455157529909781">"Inethiwekhi yeselula ayinakho ukufinyelela kwe-inthanethi"</string>
     <string name="other_networks_no_internet" msgid="6698711684200067033">"Inethiwekhi ayinakho ukufinyelela kwenethiwekhi"</string>
     <string name="private_dns_broken_detailed" msgid="3709388271074611847">"Iseva eyimfihlo ye-DNS ayikwazi ukufinyelelwa"</string>
-    <string name="captive_portal_logged_in_detailed" msgid="3897392681039344376">"Kuxhunyiwe"</string>
     <string name="network_partial_connectivity" msgid="4791024923851432291">"I-<xliff:g id="NETWORK_SSID">%1$s</xliff:g> inokuxhumeka okukhawulelwe"</string>
     <string name="network_partial_connectivity_detailed" msgid="5741329444564575840">"Thepha ukuze uxhume noma kunjalo"</string>
     <string name="network_switch_metered" msgid="1531869544142283384">"Kushintshelwe ku-<xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
@@ -1631,21 +1624,62 @@
     <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Khuphukisa ivolumu ngaphezu kweleveli enconyiwe?\n\nUkulalela ngevolumu ephezulu izikhathi ezide kungahle kulimaze ukuzwa kwakho."</string>
     <string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Sebenzisa isinqamuleli sokufinyelela?"</string>
     <string name="accessibility_shortcut_toogle_warning" msgid="4161716521310929544">"Uma isinqamuleli sivuliwe, ukucindezela zombili izinkinobho zevolumu amasekhondi angu-3 kuzoqalisa isici sokufinyelela."</string>
-    <!-- no translation found for accessibility_select_shortcut_menu_title (7310194076629867377) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning_title (8417489297036013065) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (6096484087245145325) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_warning (3740723309483706911) -->
     <skip />
-    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (4849108668454490699) -->
+    <!-- no translation found for accessibility_shortcut_multiple_service_list (6935581470716541531) -->
     <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning_title (3410100187167382427) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_talkback_warning (8412954203626349109) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning_title (2819109500943271385) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_single_service_warning (6363127705112844257) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_on (5463618449556111344) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_off (3651336255403648739) -->
+    <skip />
+    <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Vumela i-<xliff:g id="SERVICE">%1$s</xliff:g> ukuthola ukulawula okuphelele kwedivayisi yakho?"</string>
+    <string name="accessibility_enable_service_encryption_warning" msgid="8603532708618236909">"Uma uvula i-<xliff:g id="SERVICE">%1$s</xliff:g>, idivayisi yakho ngeke isebenzise ukukhiya kwakho kwesikrini sakho ukuthuthukisa ukubethelwa kwedatha."</string>
+    <string name="accessibility_service_warning_description" msgid="291674995220940133">"Ukulawula okugcwele kulungele izinhlelo zokusebenza ezikusiza ngezidingo zokufinyelela, kodwa hhayi izinhlelo zokusebenza eziningi."</string>
+    <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Buka futhi ulawule isikrini"</string>
+    <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Singafunda konke okuqukethwe esikrinini futhi sibonise okuqukethwe kwezinye izinhlelo zokusebenza."</string>
+    <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Buka uphinde wenze izenzo"</string>
+    <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Ingalandela ukusebenzisana kwakho nohlelo lokusebenza noma inzwa yehadiwe, nokusebenzisana nezinhlelo zokusebenza engxenyeni yakho."</string>
+    <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Vumela"</string>
+    <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Phika"</string>
+    <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Thepha isici ukuqala ukusisebenzisa:"</string>
+    <!-- no translation found for accessibility_edit_shortcut_menu_button_title (239446795930436325) -->
+    <skip />
+    <!-- no translation found for accessibility_edit_shortcut_menu_volume_title (1077294237378645981) -->
+    <skip />
+    <string name="accessibility_uncheck_legacy_item_warning" msgid="8047830891064817447">"I-<xliff:g id="SERVICE_NAME">%s</xliff:g> ivaliwe"</string>
     <string name="edit_accessibility_shortcut_menu_button" msgid="8885752738733772935">"Hlela izinqamuleli"</string>
-    <string name="cancel_accessibility_shortcut_menu_button" msgid="1817413122335452474">"Khansela"</string>
+    <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Kwenziwe"</string>
     <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Vala isinqamuleli"</string>
     <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Sebenzisa isinqamuleli"</string>
     <string name="color_inversion_feature_name" msgid="326050048927789012">"Ukuguqulwa kombala"</string>
     <string name="color_correction_feature_name" msgid="3655077237805422597">"Ukulungiswa kombala"</string>
-    <string name="accessibility_shortcut_enabling_service" msgid="6141620395915529473">"Isinqamuleli sokufinyelela sivule i-<xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_shortcut_disabling_service" msgid="1287340429965172651">"Isinqamuleli sokufinyelela sivale i-<xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_shortcut_enabling_service (5473495203759847687) -->
+    <skip />
+    <!-- no translation found for accessibility_shortcut_disabling_service (8675244165062700619) -->
+    <skip />
     <string name="accessibility_shortcut_spoken_feedback" msgid="4228997042855695090">"Cindezela uphinde ubambe bobabili okhiye bevolumu ngamasekhondi amathathu ukuze usebenzise i-<xliff:g id="SERVICE_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for accessibility_button_prompt_text (8343213623338605305) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_prompt_text (8742535972130563952) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_prompt_text (5211827854510660203) -->
+    <skip />
+    <!-- no translation found for accessibility_button_instructional_text (8853928358872550500) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_instructional_text (9196230728837090497) -->
+    <skip />
+    <!-- no translation found for accessibility_gesture_3finger_instructional_text (3425123684990193765) -->
+    <skip />
     <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ukukhuliswa"</string>
     <string name="user_switched" msgid="7249833311585228097">"Umsebenzisi wamanje <xliff:g id="NAME">%1$s</xliff:g>."</string>
     <string name="user_switching_message" msgid="1912993630661332336">"Ishintshela ku-<xliff:g id="NAME">%1$s</xliff:g>…"</string>
@@ -2016,7 +2050,8 @@
       <item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> amafayela</item>
       <item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> amafayela</item>
     </plurals>
-    <string name="chooser_no_direct_share_targets" msgid="492542066060841139">"Ukwabelana okuqondile akutholakali"</string>
+    <!-- no translation found for chooser_no_direct_share_targets (1511722103987329028) -->
+    <skip />
     <string name="chooser_all_apps_button_label" msgid="3230427756238666328">"Uhlu lwezinhlelo zokusebenza"</string>
     <string name="usb_device_resolve_prompt_warn" msgid="325871329788064199">"Lolu hlelo lokusebenza alunikeziwe imvume yokurekhoda kodwa lungathwebula umsindo ngale divayisi ye-USB."</string>
     <string name="accessibility_system_action_home_label" msgid="3234748160850301870">"Ikhaya"</string>
@@ -2031,31 +2066,243 @@
     <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Imenyu yokufinyeleleka"</string>
     <string name="accessibility_freeform_caption" msgid="8377519323496290122">"Ibha yamazwibela we-<xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
     <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"I-<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ifakwe kubhakede LOKUKHAWULELWE"</string>
+    <string name="conversation_single_line_name_display" msgid="8958948312915255999">"<xliff:g id="SENDER_NAME">%1$s</xliff:g>:"</string>
+    <string name="conversation_title_fallback_one_to_one" msgid="1980753619726908614">"Ingxoxo"</string>
+    <string name="conversation_title_fallback_group_chat" msgid="456073374993104303">"Ingxoxo Yeqembu"</string>
     <string name="resolver_personal_tab" msgid="2051260504014442073">"Okomuntu siqu"</string>
     <string name="resolver_work_tab" msgid="2690019516263167035">"Umsebenzi"</string>
-    <!-- no translation found for resolver_personal_tab_accessibility (5739524949153091224) -->
-    <skip />
-    <!-- no translation found for resolver_work_tab_accessibility (4753168230363802734) -->
-    <skip />
-    <string name="resolver_cant_share_with_work_apps" msgid="7539495559434146897">"Ayikwazi ukwabelana ngezinhlelo zokusebenza zomsebenzi"</string>
-    <string name="resolver_cant_share_with_personal_apps" msgid="8020581735267157241">"Ayikwazi ukwabelana ngezinhlelo zokusebenza zomuntu siqu"</string>
-    <!-- no translation found for resolver_cant_share_cross_profile_explanation (5556640604460901386) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps (375634344111233790) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_work_apps_explanation (3958762224516867388) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps (1953215925406474177) -->
-    <skip />
-    <!-- no translation found for resolver_cant_access_personal_apps_explanation (1725572276741281136) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_share (619263911204978175) -->
-    <skip />
-    <!-- no translation found for resolver_turn_on_work_apps_view (3073389230905543680) -->
-    <skip />
-    <string name="resolver_no_apps_available" msgid="7710339903040989654">"Azikho izinhlelo zokusebenza ezitholakalayo"</string>
-    <!-- no translation found for resolver_switch_on_work (2873009160846966379) -->
-    <skip />
+    <string name="resolver_personal_tab_accessibility" msgid="5739524949153091224">"Ukubuka komuntu siqu"</string>
+    <string name="resolver_work_tab_accessibility" msgid="4753168230363802734">"Ukubuka komsebenzi"</string>
+    <string name="resolver_cant_share_with_work_apps" msgid="637686613606502219">"Ayikwazi ukwabelana ngalokhu ngezinhlelo zokusebenza"</string>
+    <string name="resolver_cant_share_with_work_apps_explanation" msgid="3332302070341130545">"Umphathi wakho we-IT akakuvumeli ukuthi wabelane ngalokhu okuqukethwe nezinhlelo zokusebenza kuphrofayela yakho yomsebenzi"</string>
+    <string name="resolver_cant_access_work_apps" msgid="2455757966397563223">"Ayikwazi ukuvula lokhu ngezinhlelo zokusebenza zomsebenzi"</string>
+    <string name="resolver_cant_access_work_apps_explanation" msgid="3626983885525445790">"Umphathi wakho we-IT akakuvumeli ukuthi uvule lokhu okuqukethwe ngezinhlelo zokusebenza kuphrofayela yakho yomsebenzi"</string>
+    <string name="resolver_cant_share_with_personal_apps" msgid="3079139799233316203">"Ayikwazi ukwabelana ngalokhu ngezinhlelo zokusebenza zomuntu siqu"</string>
+    <string name="resolver_cant_share_with_personal_apps_explanation" msgid="2959282422751315171">"Umphathi wakho we-IT akakuvumeli ukuthi wabelane ngalokhu okuqukethwe ngezinhlelo zokusebenza kuphrofayela yakho yomuntu siqu"</string>
+    <string name="resolver_cant_access_personal_apps" msgid="648291604475669395">"Ayikwazi ukuvula lokhu ngezinhlelo zokusebenza zomuntu siqu"</string>
+    <string name="resolver_cant_access_personal_apps_explanation" msgid="2298773629302296519">"Umphathi wakho we-IT akakuvumeli ukuthi uvule lokhu okuqukethwe ngezinhlelo zokusebenza kuphrofayela yakho yomuntu siqu"</string>
+    <string name="resolver_turn_on_work_apps" msgid="884910835250037247">"Iphrofayela yomsebenzi iphunyuziwe"</string>
+    <string name="resolver_switch_on_work" msgid="2873009160846966379">"Vula"</string>
+    <string name="resolver_no_work_apps_available_share" msgid="7933949011797699505">"Azikho izinhlelo zokusebenza zomsebenzi ezingasekela lokhu okuqukethwe"</string>
+    <string name="resolver_no_work_apps_available_resolve" msgid="1244844292366099399">"Azikho izinhlelo zokusebenza ezingavula lokhu okuqukethwe"</string>
+    <string name="resolver_no_personal_apps_available_share" msgid="5639102815174748732">"Azikho izinhlelo zokusebenza ezingasekela lokhu okuqukethwe"</string>
+    <string name="resolver_no_personal_apps_available_resolve" msgid="5120671970531446978">"Azikho izinhlelo zokusebenza zomuntu siqu ezingavula lokhu okuqukethwe"</string>
     <string name="permlab_accessCallAudio" msgid="1682957511874097664">"Rekhoda noma dlala umsindo kumakholi ocingo"</string>
     <string name="permdesc_accessCallAudio" msgid="8448360894684277823">"Ivumela lolu hlelo lokusebenza, uma lunikezwe njengohlelo lokusebenza oluzenzakalelayo lokudayela, ukuze kurekhodwe noma kudlalwe umsindo kumakholi ocingo."</string>
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ENTRY (8050953231914637819) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY (7164399703751688214) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ENTRY (4447629474818217364) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY (973059024670737358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ENTRY (4487435301206073787) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY (768060297218652809) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY (7129527319490548930) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY (2876126640607573252) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY (8952595089930109282) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ENTRY (3013902515773728996) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ENTRY (2974411408893410289) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ENTRY (687618528751880721) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ENTRY (6810596579655575381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ENTRY (2715929642540980259) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY (8557791623303951590) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ENTRY (7382468767274580323) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY (6730880791104286987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY (6432126539782267026) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY (1730510161529488920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY (3369885925003346830) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY (9129139686191167829) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY (2869929685874615358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ENTRY (1238663472392741771) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY (3988705848553894358) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ENTRY (6186770686690993200) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ENTRY (7043865376145617024) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ENTRY (6144227308185112176) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS (4233355366318061180) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS (6742563947637715645) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS (2033399698172403560) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS (4795977251920732254) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS (1090425878157254446) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS (6476898876518094438) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS (6006806734293747731) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (6546680489620881893) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS (3506845511000727015) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_IN_PROGRESS (6709169861932992750) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS (4013870911606478520) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS (9032651188219523434) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS (6584576506344491207) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS (830981927724888114) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS (7851790973098894802) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_IN_PROGRESS (1149560739586960121) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS (5708964693522116025) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS (7288103122966483455) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS (4036752174056147753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS (5089536274515338566) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS (6737197986936251958) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS (5658767775619998623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS (665978313257653727) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS (3857142652251836850) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS (2695664012344346788) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS (2695678959963807782) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS (1230605365926493599) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_ERROR (1924844017037151535) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR (3372797822292089708) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR (1878443146720411381) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_ERROR (7664778312218023192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_ERROR (2472944311643350302) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_ERROR (828089694480999120) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_ERROR (17619001007092511) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_ERROR (807214229604353614) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_ERROR (8644184447744175747) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR (3801002648649640407) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_ERROR (707397021218680753) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR (894358680773257820) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR (352466878146726991) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR (7353389721907138671) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR (2655263155490857920) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_ERROR (6903740900892931310) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR (5165901670447518687) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR (2856763216589267623) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR (817542684437829139) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR (5178635064113393143) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR (5391587926974531008) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR (4895494864493315868) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_ERROR (9017576601595353649) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR (1116993930995545742) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_ERROR (7559167306794441462) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_ERROR (2782926139511136588) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_ERROR (1890493954453456758) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUCCESS (4886243367747126325) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS (4053809277733513987) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS (8249342930499801740) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_SUCCESS (2339794542560381270) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_SUCCESS (6975608174152828954) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS (2846699261330463192) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS (5335414726057102801) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_SUCCESS (8868100318474971969) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS (6020936629725666932) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS (6944873647584595489) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_SUCCESS (2526483514124121988) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS (7662200333621664621) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS (2861223407953766632) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS (5345648571175243272) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS (3725278343103422466) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS (6998502547560297983) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS (8555433771162560361) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS (3555767296933606232) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS (6778051818199974237) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS (4080108758498911429) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS (7873675303000794343) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS (1763198215069819523) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SPN_SUCCESS (2053891977727320532) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS (8146602361895007345) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_ICCID_SUCCESS (8058678548991999545) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_IMPI_SUCCESS (2545608067978550571) -->
+    <skip />
+    <!-- no translation found for PERSOSUBSTATE_SIM_NS_SP_SUCCESS (4352382949744625007) -->
+    <skip />
 </resources>
diff --git a/core/res/res/values/arrays.xml b/core/res/res/values/arrays.xml
index deb6afc..8f2d6c3 100644
--- a/core/res/res/values/arrays.xml
+++ b/core/res/res/values/arrays.xml
@@ -165,7 +165,7 @@
         <item>中文 (繁體)</item>
     </string-array>
 
-    <array name="simColors">
+    <array name="sim_colors">
         <item>@color/Teal_700</item>
         <item>@color/Blue_700</item>
         <item>@color/Indigo_700</item>
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index 93b2063..2a2da6a 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -1547,19 +1547,18 @@
          See the <a href="http://llvm.org/docs/GwpAsan.html">LLVM documentation</a>
          for more information about this feature.
 
-         <p>This tag can be applied to any tag that allows
-         {@link android.R.styleable#AndroidManifestProcess process} tag:
+         <p>This attribute can be applied to a
+         {@link android.R.styleable#AndroidManifestProcess process} tag, or to an
          {@link android.R.styleable#AndroidManifestApplication application} tag (to supply
-         a default setting for all application components), or with the
-         {@link android.R.styleable#AndroidManifestProvider provider},
-         {@link android.R.styleable#AndroidManifestService service},
-         {@link android.R.styleable#AndroidManifestReceiver receiver},
-         {@link android.R.styleable#AndroidManifestActivity activity} tag.
-         When multiple components run in the same process,
-         the first component to start determines the behavior of the entire process.
-
-         The default value is {@code false}. -->
-    <attr name="enableGwpAsan" format="boolean" />
+         a default setting for all application components). -->
+    <attr name="gwpAsanMode">
+        <!-- Default behavior: GwpAsan is disabled in user apps, randomly enabled in system apps. -->
+        <enum name="default" value="-1" />
+        <!-- Never enable GwpAsan. -->
+        <enum name="never" value="0" />
+        <!-- Always enable GwpAsan. -->
+       <enum name="always" value="1" />
+    </attr>
 
     <!-- The <code>manifest</code> tag is the root of an
          <code>AndroidManifest.xml</code> file,
@@ -1826,21 +1825,16 @@
              The default value is {@code true}. -->
         <attr name="allowNativeHeapPointerTagging" format="boolean" />
 
-        <attr name="enableGwpAsan" />
+        <attr name="gwpAsanMode" />
 
-        <!-- If {@code true} allow requesting that its permissions don't get automatically
-             revoked when the app is unused for an extended amount of time.
+        <!-- @hide no longer used, kept to preserve padding -->
+        <attr name="allowAutoRevokePermissionsExemption" format="boolean" />
 
-             The default value is {@code false}. -->
-        <attr name="requestDontAutoRevokePermissions" format="boolean" />
-
-        <!-- If {@code true} its permissions shouldn't get automatically
-             revoked when the app is unused for an extended amount of time.
-
-             This implies {@code requestDontAutoRevokePermissions=true}
-
-             The default value is {@code false}. -->
-        <attr name="allowDontAutoRevokePermissions" format="boolean" />
+        <attr name="autoRevokePermissions">
+            <enum name="allowed" value="0" />
+            <enum name="discouraged" value="1" />
+            <enum name="disallowed" value="2" />
+        </attr>
     </declare-styleable>
 
     <!-- An attribution is a logical part of an app and is identified by a tag.
@@ -2351,7 +2345,7 @@
     <declare-styleable name="AndroidManifestProcess" parent="AndroidManifestProcesses">
         <!-- Required name of the process that is allowed -->
         <attr name="process" />
-        <attr name="enableGwpAsan" />
+        <attr name="gwpAsanMode" />
     </declare-styleable>
 
     <!-- The <code>deny-permission</code> tag specifies that a permission is to be denied
diff --git a/core/res/res/values/bools.xml b/core/res/res/values/bools.xml
index c5127dc..fe296c7 100644
--- a/core/res/res/values/bools.xml
+++ b/core/res/res/values/bools.xml
@@ -29,5 +29,5 @@
          <p>The main purpose is for OEMs to customize the rendering of the
          lockscreen, setting this to true should come with customized drawables. -->
     <bool name="use_lock_pattern_drawable">false</bool>
-    <bool name="sharesheet_show_content_preview">false</bool>
+    <bool name="resolver_landscape_phone">true</bool>
 </resources>
diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml
index 91248f1..831da6f 100644
--- a/core/res/res/values/colors.xml
+++ b/core/res/res/values/colors.xml
@@ -226,4 +226,6 @@
     <color name="resolver_text_color_secondary_dark">#ffC4C6C6</color>
     <color name="resolver_empty_state_text">#FF202124</color>
     <color name="resolver_empty_state_icon">#FF5F6368</color>
+
+    <color name="conversation_important_highlight">#F9AB00</color>
 </resources>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 94764ca..acda77f 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -2779,6 +2779,10 @@
     <string name="config_systemUIServiceComponent" translatable="false"
             >com.android.systemui/com.android.systemui.SystemUIService</string>
 
+    <!-- Package handling Quick controls -->
+    <string name="config_controlsPackage" translatable="false"
+            >com.android.systemui</string>
+
     <!-- Keyguard component -->
     <string name="config_keyguardComponent" translatable="false"
             >com.android.systemui/com.android.systemui.keyguard.KeyguardService</string>
@@ -4420,4 +4424,11 @@
     <!-- Package name that will receive an explicit manifest broadcast for
          android.os.action.POWER_SAVE_MODE_CHANGED. -->
     <string name="config_powerSaveModeChangedListenerPackage" translatable="false"></string>
+
+    <!-- Set to true to enable the user switcher on the keyguard. -->
+    <bool name="config_keyguardUserSwitcher">false</bool>
+
+    <!-- Set to true to make assistant show in front of the dream/screensaver. -->
+    <bool name="config_assistantOnTopOfDream">false</bool>
+
 </resources>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 4dedc63..7edb86b 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -686,18 +686,39 @@
     <dimen name="conversation_avatar_size">52dp</dimen>
     <!-- Start of the content in the conversation template -->
     <dimen name="conversation_content_start">80dp</dimen>
-    <!-- Size of the expand button when expanded -->
-    <dimen name="conversation_expand_button_expanded_size">80dp</dimen>
+    <!-- Size of the expand button in the conversation layout -->
+    <dimen name="conversation_expand_button_size">80dp</dimen>
     <!-- Top margin of the expand button for conversations when expanded -->
     <dimen name="conversation_expand_button_top_margin_expanded">18dp</dimen>
     <!-- Side margins of the conversation badge in relation to the conversation icon -->
     <dimen name="conversation_badge_side_margin">36dp</dimen>
-    <!-- size of the notification icon when badged in a conversation -->
-    <dimen name="conversation_icon_size_badged">15dp</dimen>
-    <!-- size of the notification icon when centered in a conversation -->
-    <dimen name="conversation_icon_size_centered">20dp</dimen>
-    <!-- margin on the top when the icon is centered for group conversations -->
-    <dimen name="conversation_icon_margin_top_centered">5dp</dimen>
+    <!-- size of the notification badge when applied to the conversation icon -->
+    <dimen name="conversation_icon_size_badged">20dp</dimen>
+    <!-- size of the conversation avatar in an expanded group -->
+    <dimen name="conversation_avatar_size_group_expanded">@dimen/messaging_avatar_size</dimen>
+    <!-- size of the face pile icons -->
+    <dimen name="conversation_face_pile_avatar_size">@dimen/messaging_avatar_size</dimen>
+    <!-- size of the face pile icons when the group is expanded -->
+    <dimen name="conversation_face_pile_avatar_size_group_expanded">25dp</dimen>
+    <!-- Side margins of the conversation badge in relation to the conversation icon when the group is expanded-->
+    <dimen name="conversation_badge_side_margin_group_expanded">22dp</dimen>
+    <!-- Side margins of the conversation badge in relation to the conversation icon when the group is expanded-->
+    <dimen name="conversation_badge_side_margin_group_expanded_face_pile">18dp</dimen>
+    <!-- The width of the protection of the face pile layout-->
+    <dimen name="conversation_face_pile_protection_width">2dp</dimen>
+    <!-- The width of the protection of the face pile layout when expanded-->
+    <dimen name="conversation_face_pile_protection_width_expanded">1dp</dimen>
+    <!-- The padding of the expanded message container when the app name is gone-->
+    <dimen name="expanded_group_conversation_message_padding_without_app_name">14dp</dimen>
+
+    <!-- The top padding of the conversation icon container in the regular state-->
+    <dimen name="conversation_icon_container_top_padding">12dp</dimen>
+
+    <!-- The top padding of the conversation icon container when there's no app name present in a group-->
+    <dimen name="conversation_icon_container_top_padding_no_app_name">9dp</dimen>
+
+    <!-- The top padding of the conversation icon container when the avatar is small-->
+    <dimen name="conversation_icon_container_top_padding_small_avatar">17.5dp</dimen>
 
     <!-- The padding of the conversation header when expanded. This is calculated from the expand button size + notification_content_margin_end -->
     <dimen name="conversation_header_expanded_padding_end">38dp</dimen>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index cf68aff..67d20da 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -3014,11 +3014,12 @@
       <!-- @hide @SystemApi -->
       <public name="minExtensionVersion" />
       <public name="allowNativeHeapPointerTagging" />
-      <public name="requestDontAutoRevokePermissions" />
-      <public name="allowDontAutoRevokePermissions" />
+      <!-- @hide no longer used, kept to preserve padding -->
+      <public name="allowAutoRevokePermissionsExemption"/>
+      <public name="autoRevokePermissions" />
       <public name="preserveLegacyExternalStorage" />
       <public name="mimeGroup" />
-      <public name="enableGwpAsan" />
+      <public name="gwpAsanMode" />
     </public-group>
 
     <public-group type="drawable" first-id="0x010800b5">
@@ -3068,11 +3069,6 @@
       <public name="accessibilityActionImeEnter" />
     </public-group>
 
-    <public-group type="array" first-id="0x01070006">
-      <!-- @hide @SystemApi -->
-      <public name="simColors" />
-    </public-group>
-
     <public-group type="string" first-id="0x0104002c">
       <!-- @hide -->
       <public name="config_customMediaKeyDispatcher" />
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 26024ed..e2e65dd 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -416,10 +416,10 @@
 
     <!-- Content title for a notification. This notification indicates that the device owner has
          changed the location settings. [CHAR LIMIT=NONE] -->
-    <string name="location_changed_notification_title">Location settings changed by your admin</string>
+    <string name="location_changed_notification_title">Apps can access your location</string>
     <!-- Content text for a notification. Tapping opens device location settings.
          [CHAR LIMIT=NONE] -->
-    <string name="location_changed_notification_text">Tap to see your location settings.</string>
+    <string name="location_changed_notification_text">Contact your IT admin to learn more</string>
 
     <!-- Feature Id for Country Detector. [CHAR LIMIT=NONE]-->
     <string name="country_detector">Country Detector</string>
@@ -441,11 +441,23 @@
     <!-- A toast message displayed when printing is attempted but disabled by policy. -->
     <string name="printing_disabled_by">Printing disabled by <xliff:g id="owner_app">%s</xliff:g>.</string>
 
-    <!-- Content title for a notification that personal apps are suspended [CHAR LIMIT=NONE] -->
-    <string name="personal_apps_suspended_notification_title">Personal apps have been suspended by an admin</string>
-
-    <!-- Message for a notification about personal apps suspension when work profile is off. [CHAR LIMIT=NONE] -->
-    <string name="personal_apps_suspended_notification_text">Tap here to check policy compliance.</string>
+    <!-- Notification title. This notification lets a user know that their personal apps are
+        blocked due to a work policy from their IT admin, and tells them what they need to do
+        to unblock their apps.[CHAR LIMIT=29] -->
+    <string name="personal_apps_suspended_title">Unblock your personal apps</string>
+    <!-- Notification title. This notification lets a user know that their apps will be blocked
+        tomorrow due to a work policy from their IT admin, and tells them what they need to do to
+        prevent the apps from being blocked. [CHAR LIMIT=29] -->
+    <string name="personal_apps_suspended_tomorrow_title">Apps will be blocked tomorrow</string>
+    <!-- Notification text. This notification lets a user know that they need to turn on their
+        work profile due to a work policy from their IT admin. The number of days is at least 3.
+        [CHAR LIMIT=NONE] -->
+    <string name="personal_apps_suspended_text">Your IT admin doesn\u2019t allow your
+        work profile to be paused for more than <xliff:g id="days" example="3">%1$d</xliff:g>
+        days</string>
+    <!-- Title for the button that turns work profile on. To be used in a notification
+        [CHAR LIMIT=NONE] -->
+    <string name="personal_apps_suspended_turn_profile_on">Turn on work profile</string>
 
     <!-- Display name for any time a piece of data refers to the owner of the phone. For example, this could be used in place of the phone's phone number. -->
     <string name="me">Me</string>
@@ -533,26 +545,28 @@
     <!-- Title of the Global Actions Dialog -->
     <string name="global_actions" product="default">Phone options</string>
 
-    <!-- label for item that locks the phone in the phone options dialog -->
+    <!-- label for item that locks the phone in the phone options dialog [CHAR LIMIT=24]-->
     <string name="global_action_lock">Screen lock</string>
 
-    <!-- label for item that turns off power in phone options dialog -->
+    <!-- label for item that turns off power in phone options dialog [CHAR LIMIT=24] -->
     <string name="global_action_power_off">Power off</string>
 
-    <!-- label for item that restarts phone in phone options dialog -->
-    <!-- TODO: promote to separate string-->
-    <string name="global_action_restart" translatable="false">@string/sim_restart_button</string>
+    <!-- label for item that shows options to power off and restart the phone [CHAR LIMIT=24]-->
+    <string name="global_action_power_options">Power</string>
 
-    <!-- label for item that starts emergency call -->
+    <!-- label for item that restarts phone in phone options dialog [CHAR LIMIT=24]-->
+    <string name="global_action_restart">Restart</string>
+
+    <!-- label for item that opens emergency features in the phone options dialog [CHAR LIMIT=24]-->
     <string name="global_action_emergency">Emergency</string>
 
-    <!-- label for item that generates a bug report in the phone options dialog -->
+    <!-- label for item that generates a bug report in the phone options dialog [CHAR LIMIT=24] -->
     <string name="global_action_bug_report">Bug report</string>
 
-    <!-- label for item that logouts the current user -->
+    <!-- label for item that logouts the current user [CHAR LIMIT=24]-->
     <string name="global_action_logout">End session</string>
 
-    <!-- label for screenshot item in power menu -->
+    <!-- label for screenshot item in power menu [CHAR LIMIT=24]-->
     <string name="global_action_screenshot">Screenshot</string>
 
     <!-- Take bug report menu title [CHAR LIMIT=30] -->
@@ -617,7 +631,7 @@
     <!-- label for item that launches voice assist in phone options dialog [CHAR LIMIT=15]-->
     <string name="global_action_voice_assist">Voice Assist</string>
 
-    <!-- label for item that locks the phone and enforces that it can't be unlocked without strong authentication. [CHAR LIMIT=15] -->
+    <!-- label for item that locks the phone and enforces that it can't be unlocked without strong authentication. [CHAR LIMIT=24] -->
     <string name="global_action_lockdown">Lockdown</string>
 
     <!-- Text to use when the number in a notification info is too large
@@ -1124,17 +1138,17 @@
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_accessFineLocation">access precise location only in the foreground</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permdesc_accessFineLocation">This app can get your exact location only when it is in the foreground. Location services must be turned on and available on your device for the app to be able to use them. This may increase battery consumption.</string>
+    <string name="permdesc_accessFineLocation">This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_accessCoarseLocation">access approximate location only in the foreground</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permdesc_accessCoarseLocation">This app can get your approximate location only when it is in the foreground. Location services must be turned on and available on your device for the app to be able to use them.</string>
+    <string name="permdesc_accessCoarseLocation">This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_accessBackgroundLocation">access location in the background</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permdesc_accessBackgroundLocation">This app can access location while running in the background, in addition to foreground location access.</string>
+    <string name="permdesc_accessBackgroundLocation">This app can access location at any time, even while the app is not in use.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_modifyAudioSettings">change your audio settings</string>
@@ -1164,7 +1178,7 @@
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=NONE] -->
     <string name="permlab_systemCamera">Allow an application or service access to system cameras to take pictures and videos</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=NONE] -->
-    <string name="permdesc_systemCamera">This privileged | system app can take pictures and record videos using a system camera at any time. Requires the android.permission.CAMERA permission to be held by the app as well</string>
+    <string name="permdesc_systemCamera">This privileged or system app can take pictures and record videos using a system camera at any time. Requires the android.permission.CAMERA permission to be held by the app as well</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=NONE] -->
     <string name="permlab_cameraOpenCloseListener">Allow an application or service to receive callbacks about camera devices being opened or closed.</string>
@@ -3583,6 +3597,8 @@
     <string name="ext_media_new_notification_title">New <xliff:g id="name" example="SD card">%s</xliff:g></string>
     <!-- Notification body when new external media is detected [CHAR LIMIT=NONE] -->
     <string name="ext_media_new_notification_message">Tap to set up</string>
+    <!-- Automotive specific notification body when new external media is detected. Empty because there is no fix action (b/151671685) [CHAR LIMIT=NONE] -->
+    <string name="ext_media_new_notification_message" product="automotive"></string>
 
     <!-- Notification body when external media is ready for use [CHAR LIMIT=NONE] -->
     <string name="ext_media_ready_notification_message">For transferring photos and media</string>
@@ -3591,8 +3607,10 @@
     <string name="ext_media_unmountable_notification_title">Issue with <xliff:g id="name" example="SD card">%s</xliff:g></string>
     <!-- Notification body when external media is unmountable (corrupt) [CHAR LIMIT=NONE] -->
     <string name="ext_media_unmountable_notification_message">Tap to fix</string>
-    <!-- TV-specifiv notification body when external media is unmountable (corrupt) [CHAR LIMIT=NONE] -->
+    <!-- TV-specific notification body when external media is unmountable (corrupt) [CHAR LIMIT=NONE] -->
     <string name="ext_media_unmountable_notification_message" product="tv"><xliff:g id="name" example="SD card">%s</xliff:g> is corrupt. Select to fix.</string>
+    <!-- Automotive specific notification body when external media is unmountable (corrupt). Empty because there is no fix action (b/151671685) [CHAR LIMIT=NONE] -->
+    <string name="ext_media_unmountable_notification_message" product="automotive"></string>
 
     <!-- Notification title when external media is unsupported [CHAR LIMIT=30] -->
     <string name="ext_media_unsupported_notification_title">Unsupported <xliff:g id="name" example="SD card">%s</xliff:g></string>
@@ -3600,6 +3618,8 @@
     <string name="ext_media_unsupported_notification_message">This device doesn\u2019t support this <xliff:g id="name" example="SD card">%s</xliff:g>. Tap to set up in a supported format.</string>
     <!-- TV-specific notification body when external media is unsupported [CHAR LIMIT=NONE] -->
     <string name="ext_media_unsupported_notification_message" product="tv">This device doesn\u2019t support this <xliff:g id="name" example="SD card">%s</xliff:g>. Select to set up in a supported format.</string>
+    <!-- Automotive specific notification body when external media is unsupported. No action is specified to fix (b/151671685) [CHAR LIMIT=NONE] -->
+    <string name="ext_media_unsupported_notification_message" product="automotive">This device doesn\u2019t support this <xliff:g id="name" example="SD card">%s</xliff:g>.</string>
 
     <!-- Notification title when external media is unsafely removed [CHAR LIMIT=30] -->
     <string name="ext_media_badremoval_notification_title"><xliff:g id="name" example="SD card">%s</xliff:g> unexpectedly removed</string>
@@ -4348,6 +4368,35 @@
         accessibility feature.
     </string>
 
+    <!-- Dialog title for dialog shown when the multiple accessibility shortcut is activated, and we want to confirm that the user understands what's going to happen. [CHAR LIMIT=none] -->
+    <string name="accessibility_shortcut_multiple_service_warning_title">Turn on accessibility features?</string>
+
+    <!-- Message shown in dialog when user is in the process of enabling the multiple accessibility service via the volume buttons shortcut for the first time. [CHAR LIMIT=none] -->
+    <string name="accessibility_shortcut_multiple_service_warning">Holding down both volume keys for a few seconds turns on accessibility features. This may change how your device works.\n\nCurrent features:\n<xliff:g id="service" example="TalkBack">%1$s</xliff:g>\nYou can change selected features in Settings > Accessibility.</string>
+
+    <!-- Used in multiple service warning to list current features. [CHAR LIMIT=none] -->
+    <string name="accessibility_shortcut_multiple_service_list">\t• <xliff:g id="service" example="TalkBack">%1$s</xliff:g>\n</string>
+
+    <!-- Dialog title for dialog shown when the TalkBack shortcut is activated, and we want to confirm that the user understands what's going to happen. [CHAR LIMIT=none] -->
+    <string name="accessibility_shortcut_talkback_warning_title">Turn on TalkBack?</string>
+
+    <!-- Message shown in dialog when user is in the process of enabling the TalkBack via the volume buttons shortcut for the first time. [CHAR LIMIT=none] -->
+    <string name="accessibility_shortcut_talkback_warning">Holding down both volume keys for a few seconds turns on TalkBack, a screen reader that is helpful for people who are blind or have low vision. TalkBack completely changes how your device works.\n\nYou can change this shortcut to another feature in Settings > Accessibility.</string>
+
+    <!-- Dialog title for dialog shown when this accessibility shortcut is activated, and we want to confirm that the user understands what's going to happen. [CHAR LIMIT=none] -->
+    <string name="accessibility_shortcut_single_service_warning_title">Turn on <xliff:g id="service" example="TalkBack">%1$s</xliff:g>?</string>
+
+    <!-- Message shown in dialog when user is in the process of enabling this accessibility service via the volume buttons shortcut for the first time. [CHAR LIMIT=none] -->
+    <string name="accessibility_shortcut_single_service_warning">Holding down both volume keys for a few seconds turns on <xliff:g id="service" example="TalkBack">%1$s</xliff:g>, an accessibility feature. This may change how your device works.\n\nYou can change this shortcut to another feature in Settings > Accessibility.</string>
+
+    <!-- Text in button that closes the warning dialog about the accessibility shortcut, leaving the
+    shortcut enabled. [CHAR LIMIT=none]-->
+    <string name="accessibility_shortcut_on">Turn on</string>
+
+    <!-- Text in button that closes the warning dialog about the accessibility shortcut, leaving the
+    shortcut enabled. [CHAR LIMIT=none] -->
+    <string name="accessibility_shortcut_off">Don’t turn on</string>
+
     <!-- Title for a warning about security implications of enabling an accessibility
     service. [CHAR LIMIT=NONE] -->
     <string name="accessibility_enable_service_title">Allow
@@ -4393,13 +4442,13 @@
 
     <!-- Title for accessibility edit shortcut selection menu dialog, and dialog is triggered
     from accessibility button. [CHAR LIMIT=100] -->
-    <string name="accessibility_edit_shortcut_menu_button_title">Choose apps to use with the
+    <string name="accessibility_edit_shortcut_menu_button_title">Choose features to use with the
         accessibility button
     </string>
 
     <!-- Title for accessibility edit shortcut selection menu dialog, and dialog is triggered
     from volume key shortcut. [CHAR LIMIT=100] -->
-    <string name="accessibility_edit_shortcut_menu_volume_title">Choose apps to use with the
+    <string name="accessibility_edit_shortcut_menu_volume_title">Choose features to use with the
         volume key shortcut
     </string>
 
@@ -4430,20 +4479,30 @@
      shown in the warning dialog about the accessibility shortcut. -->
     <string name="color_correction_feature_name">Color Correction</string>
 
-    <!-- Text in toast to alert the user that the accessibility shortcut turned on an accessibility
-    service.-->
-    <string name="accessibility_shortcut_enabling_service">Accessibility Shortcut turned
-        <xliff:g id="service_name" example="TalkBack">%1$s</xliff:g> on</string>
+    <!-- Text in toast to alert the user that the accessibility shortcut turned on an accessibility service. [CHAR LIMIT=none] -->
+    <string name="accessibility_shortcut_enabling_service">Held volume keys. <xliff:g id="service_name" example="TalkBack">%1$s</xliff:g> turned on.</string>
 
-    <!-- Text in toast to alert the user that the accessibility shortcut turned off an accessibility
-    service.-->
-    <string name="accessibility_shortcut_disabling_service">Accessibility Shortcut turned
-        <xliff:g id="service_name" example="TalkBack">%1$s</xliff:g> off</string>
+    <!-- Text in toast to alert the user that the accessibility shortcut turned off an accessibility service. [CHAR LIMIT=none] -->
+    <string name="accessibility_shortcut_disabling_service">Held volume keys. <xliff:g id="service_name" example="TalkBack">%1$s</xliff:g> turned off.</string>
 
     <!-- Text spoken when accessibility shortcut warning dialog is shown. [CHAR LIMIT=none] -->
     <string name="accessibility_shortcut_spoken_feedback">Press and hold both volume keys for three seconds to use
         <xliff:g id="service_name" example="TalkBack">%1$s</xliff:g></string>
 
+    <!-- Text appearing in a prompt at the top of UI allowing the user to select a target service or feature to be assigned to the Accessibility button in the navigation bar. [CHAR LIMIT=none]-->
+    <string name="accessibility_button_prompt_text">Choose a feature to use when you tap the accessibility button:</string>
+    <!-- Text appearing in a prompt at the top of UI allowing the user to select a target service or feature to be assigned to the Accessibility button when gesture navigation is enabled [CHAR LIMIT=none] -->
+    <string name="accessibility_gesture_prompt_text">Choose a feature to use with the accessibility gesture (swipe up from the bottom of the screen with two fingers):</string>
+    <!-- Text appearing in a prompt at the top of UI allowing the user to select a target service or feature to be assigned to the Accessibility button when gesture navigation and TalkBack is enabled [CHAR LIMIT=none] -->
+    <string name="accessibility_gesture_3finger_prompt_text">Choose a feature to use with the accessibility gesture (swipe up from the bottom of the screen with three fingers):</string>
+
+    <!-- Text describing how to display UI allowing a user to select a target service or feature to be assigned to the Accessibility button in the navigation bar. [CHAR LIMIT=none]-->
+    <string name="accessibility_button_instructional_text">To switch between features, touch &amp; hold the accessibility button.</string>
+    <!-- Text describing how to display UI allowing a user to select a target service or feature to be assigned to the Accessibility button when gesture navigation is enabled. [CHAR LIMIT=none] -->
+    <string name="accessibility_gesture_instructional_text">To switch between features, swipe up with two fingers and hold.</string>
+    <!-- Text describing how to display UI allowing a user to select a target service or feature to be assigned to the Accessibility button when gesture navigation and TalkBack is enabled. [CHAR LIMIT=none] -->
+    <string name="accessibility_gesture_3finger_instructional_text">To switch between features, swipe up with three fingers and hold.</string>
+
     <!-- Text used to describe system navigation features, shown within a UI allowing a user to assign system magnification features to the Accessibility button in the navigation bar. -->
     <string name="accessibility_magnification_chooser_text">Magnification</string>
 
@@ -5338,7 +5397,7 @@
     </plurals>
 
     <!-- ChooserActivity - No direct share targets are available. [CHAR LIMIT=NONE] -->
-    <string name="chooser_no_direct_share_targets">Direct share not available</string>
+    <string name="chooser_no_direct_share_targets">No recommended people to share with</string>
 
     <!-- ChooserActivity - Alphabetically sorted apps list label. [CHAR LIMIT=NONE] -->
     <string name="chooser_all_apps_button_label">Apps list</string>
@@ -5388,35 +5447,277 @@
     <string name="resolver_personal_tab">Personal</string>
     <!-- Label of a tab on a screen. A user can tap this tab to switch to the 'Work' view (that shows their work content) if they have a work profile on their device. [CHAR LIMIT=NONE] -->
     <string name="resolver_work_tab">Work</string>
+
     <!-- Accessibility label for the personal tab button. [CHAR LIMIT=NONE] -->
     <string name="resolver_personal_tab_accessibility">Personal view</string>
     <!-- Accessibility label for the work tab button. [CHAR LIMIT=NONE] -->
     <string name="resolver_work_tab_accessibility">Work view</string>
-    <!-- Title of a screen. This text lets the user know that their IT admin doesn't allow them to share personal content with work apps. [CHAR LIMIT=NONE] -->
-    <string name="resolver_cant_share_with_work_apps">Can\u2019t share with work apps</string>
-    <!-- Title of a screen. This text lets the user know that their IT admin doesn't allow them to share work content with personal apps. [CHAR LIMIT=NONE] -->
-    <string name="resolver_cant_share_with_personal_apps">Can\u2019t share with personal apps</string>
-    <!-- Error message. This text is explaining that the user's IT admin doesn't allow sharing between personal and work apps. [CHAR LIMIT=NONE] -->
-    <string name="resolver_cant_share_cross_profile_explanation">Your IT admin blocked sharing between personal and work profiles</string>
-    <!-- Title of an error screen. This error message lets the user know that their IT admin blocked access to work apps, and the personal content that they're trying to view in a work app, such as Chrome, isn't allowed. [CHAR LIMIT=NONE] -->
-    <string name="resolver_cant_access_work_apps">Can\u2019t access work apps</string>
-    <!-- Error message. This message lets the user know that their IT admin blocked access to work apps, and the personal content that they're trying to view in a work app, such as Chrome, isn't allowed. [CHAR LIMIT=NONE] -->
-    <string name="resolver_cant_access_work_apps_explanation">Your IT admin doesn\u2019t let you view personal content in work apps</string>
-    <!-- Title of an error screen. This error message lets the user know that their IT admin blocked access to personal apps, and the work content that they're trying to view in a personal app, such as Chrome, isn't allowed. [CHAR LIMIT=NONE] -->
-    <string name="resolver_cant_access_personal_apps">Can\u2019t access personal apps</string>
-    <!-- Error message. This message lets the user know that their IT admin blocked access to personal apps, and the work content that they're trying to view in a personal app, such as Chrome, isn't allowed. [CHAR LIMIT=NONE] -->
-    <string name="resolver_cant_access_personal_apps_explanation">Your IT admin doesn\u2019t let you view work content in personal apps</string>
-    <!-- Error message. This text lets the user know that they need to turn on work apps in order to share content. There's also a button a user can tap to turn on the apps. [CHAR LIMIT=NONE] -->
-    <string name="resolver_turn_on_work_apps_share">Turn on work profile to share content</string>
-    <!-- Error message. This text lets the user know that they need to turn on work apps in order to view content. There's also a button a user can tap to turn on the apps. [CHAR LIMIT=NONE] -->
-    <string name="resolver_turn_on_work_apps_view">Turn on work profile to view content</string>
-    <!-- Error message. This text lets the user know that work apps aren't available on the device. [CHAR LIMIT=NONE] -->
-    <string name="resolver_no_apps_available">No apps available</string>
+
+    <!-- Title of a screen. This text lets the user know that their IT admin doesn't allow them to share this specific content with work apps. [CHAR LIMIT=NONE] -->
+    <string name="resolver_cant_share_with_work_apps">Can\u2019t share this with work apps</string>
+    <!-- Error message. This text is explaining that the user's IT admin doesn't allow this specific content to be shared with apps in the work profile. [CHAR LIMIT=NONE] -->
+    <string name="resolver_cant_share_with_work_apps_explanation">Your IT admin doesn\u2019t allow you to share this content with apps in your work profile</string>
+
+    <!-- Title of an error screen. This error message lets the user know that their IT admin doesn't allow them to open this specific content with a work app. [CHAR LIMIT=NONE] -->
+    <string name="resolver_cant_access_work_apps">Can\u2019t open this with work apps</string>
+    <!-- Error message. This message lets the user know that their IT admin doesn't allow them to open this specific content with an app in their work profile. [CHAR LIMIT=NONE] -->
+    <string name="resolver_cant_access_work_apps_explanation">Your IT admin doesn\u2019t allow you to open this content with apps in your work profile</string>
+
+    <!-- Title of a screen. This text lets the user know that their IT admin doesn't allow them to share this specific content with personal apps. [CHAR LIMIT=NONE] -->
+    <string name="resolver_cant_share_with_personal_apps">Can\u2019t share this with personal apps</string>
+    <!-- Error message. This text is explaining that the user's IT admin doesn't allow them to share this specific content with apps in their personal profile. [CHAR LIMIT=NONE] -->
+    <string name="resolver_cant_share_with_personal_apps_explanation">Your IT admin doesn\u2019t allow you to share this content with apps in your personal profile</string>
+
+    <!-- Title of an error screen. This error message lets the user know that their IT admin doesn't allow them to open this specific content with a personal app. [CHAR LIMIT=NONE] -->
+    <string name="resolver_cant_access_personal_apps">Can\u2019t open this with personal apps</string>
+    <!-- Error message. This message lets the user know that their IT admin doesn't allow them to open this specific content with an app in their personal profile. [CHAR LIMIT=NONE] -->
+    <string name="resolver_cant_access_personal_apps_explanation">Your IT admin doesn\u2019t allow you to open this content with apps in your personal profile</string>
+
+    <!-- Error message. This text lets the user know that they need to turn on work apps in order to share or open content. There's also a button a user can tap to turn on the apps. [CHAR LIMIT=NONE] -->
+    <string name="resolver_turn_on_work_apps">Work profile is paused</string>
     <!-- Button text. This button turns on a user's work profile so they can access their work apps and data. [CHAR LIMIT=NONE] -->
     <string name="resolver_switch_on_work">Turn on</string>
 
-    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE] -->
-    <string name="permlab_accessCallAudio">Record or play audio in telephony calls</string>
-    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. [CHAR LIMIT=NONE] -->
-    <string name="permdesc_accessCallAudio">Allows this app, when assigned as default dialer application, to record or play audio in telephony calls.</string>
+    <!-- Error message. This text lets the user know that their current work apps don't support the specific content that they're trying to share. [CHAR LIMIT=NONE] -->
+    <string name="resolver_no_work_apps_available_share">No work apps can support this content</string>
+    <!-- Error message. This text lets the user know that their current work apps can't open this specific content. [CHAR LIMIT=NONE] -->
+    <string name="resolver_no_work_apps_available_resolve">No work apps can open this content</string>
+
+    <!-- Error message. This text lets the user know that their current personal apps don't support the specific content that they're trying to share. [CHAR LIMIT=NONE] -->
+    <string name="resolver_no_personal_apps_available_share">No personal apps can support this content</string>
+    <!-- Error message. This text lets the user know that their current personal apps can't open this specific content. [CHAR LIMIT=NONE] -->
+    <string name="resolver_no_personal_apps_available_resolve">No personal apps can open this content</string>
+
+    <!-- Icc depersonalization related strings -->
+    <!-- Label text for PIN entry widget on SIM Network Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_ENTRY">SIM network unlock PIN</string>
+    <!-- Label text for PIN entry widget on SIM Network Subset Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_ENTRY">SIM network subset unlock PIN</string>
+    <!-- Label text for PIN entry widget on SIM Corporate Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_ENTRY">SIM corporate unlock PIN</string>
+    <!-- Label text for PIN entry widget on SIM Service Provider Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ENTRY">SIM service provider unlock PIN</string>
+    <!-- Label text for PIN entry widget on SIM SIM Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SIM_ENTRY">SIM unlock PIN</string>
+    <!-- Label text for PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_PUK_ENTRY">Enter PUK</string>
+    <!-- Label text for Subset PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ENTRY">Enter PUK</string>
+    <!-- Label text for Corporate PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_PUK_ENTRY">Enter PUK</string>
+    <!-- Label text for SIM service provider PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ENTRY">Enter PUK</string>
+    <!-- Label text for SIM PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SIM_PUK_ENTRY">Enter PUK</string>
+    <!-- Label text for PIN entry widget on RUIM Network1 Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_ENTRY">RUIM network1 unlock PIN</string>
+    <!-- Label text for PIN entry widget on RUIM Network2 Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_ENTRY">RUIM network2 unlock PIN</string>
+    <!-- Label text for PIN entry widget on RUIM Hrpd Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_HRPD_ENTRY">RUIM hrpd unlock PIN</string>
+    <!-- Label text for PIN entry widget on RUIM Corporate Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_ENTRY">RUIM corporate unlock PIN</string>
+    <!-- Label text for PIN entry widget on RUIM Service Provider Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ENTRY">RUIM service provider unlock PIN</string>
+    <!-- Label text for PIN entry widget on RUIM RUIM Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_RUIM_ENTRY">RUIM unlock PIN</string>
+    <!-- Label text for PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_PUK_ENTRY">Enter PUK</string>
+    <!-- Label text for PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_PUK_ENTRY">Enter PUK</string>
+    <!-- Label text for PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_HRPD_PUK_ENTRY">Enter PUK</string>
+    <!-- Label text for PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ENTRY">Enter PUK</string>
+    <!-- Label text for PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_RUIM_PUK_ENTRY">Enter PUK</string>
+    <!-- Label text for PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_PUK_ENTRY">Enter PUK</string>
+
+    <!-- Label text for PIN entry widget on SIM SPN Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SPN_ENTRY">SPN unlock PIN</string>
+    <!-- Label text for PIN entry widget on SIM SP EHPLMN Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SP_EHPLMN_ENTRY">SP Equivalent Home PLMN unlock PIN</string>
+    <!-- Label text for PIN entry widget on SIM ICCID Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_ICCID_ENTRY">ICCID unlock PIN</string>
+    <!-- Label text for PIN entry widget on SIM IMPI Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_IMPI_ENTRY">IMPI unlock PIN</string>
+    <!-- Label text for PIN entry widget on SIM NS_SP Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NS_SP_ENTRY">Network subset service provider unlock PIN</string>
+
+    <!-- Status message displayed on SIM Network Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_IN_PROGRESS">Requesting SIM network unlock\u2026</string>
+    <!-- Status message displayed on SIM Network Subset Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_IN_PROGRESS">Requesting SIM network subset unlock
+\u2026</string>
+    <!-- Status message displayed on SIM Service Provider Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_IN_PROGRESS">Requesting SIM service provider un
+lock\u2026</string>
+    <!-- Status message displayed on SIM Corporate Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_IN_PROGRESS">Requesting SIM corporate unlock\u2026</string>
+    <!-- Status message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_PUK_IN_PROGRESS">Requesting PUK unlock\u2026</string>
+    <!-- Status message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_IN_PROGRESS">Requesting PUK unlock\u2026</string>
+    <!-- Status message displayed on Corporate PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_PUK_IN_PROGRESS">Requesting PUK unlock\u2026</string>
+    <!-- Status message displayed on SIM Service provider PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_IN_PROGRESS">Requesting PUK unlock\u2026</string>
+    <!-- Status message displayed on SIM PUK entry widget on Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SIM_PUK_IN_PROGRESS">Requesting PUK unlock\u2026</string>
+    <!-- Status message displayed on SIM SIM Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SIM_IN_PROGRESS">Requesting SIM unlock\u2026</string>
+    <!-- Status message displayed on RUIM Network1 Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_IN_PROGRESS">Requesting RUIM network1 unlock\u2026</string>
+    <!-- Status message displayed on RUIM Network2 Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_IN_PROGRESS">Requesting RUIM network2 unlock\u2026</string>
+    <!-- Status message displayed on RUIM Hrpd Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_HRPD_IN_PROGRESS">Requesting RUIM hrpd unlock\u2026</string>
+    <!-- Status message displayed on RUIM Service Provider Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_IN_PROGRESS">Requesting RUIM service provider
+unlock\u2026</string>
+    <!-- Status message displayed on RUIM Corporate Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_IN_PROGRESS">Requesting RUIM corporate unlock\u2026</string>
+
+    <!-- Status message displayed on SIM SPN Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SPN_IN_PROGRESS">Requesting SPN unlock\u2026</string>
+    <!-- Status message displayed on SIM SP EHPLMN Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SP_EHPLMN_IN_PROGRESS">Requesting SP Equivalent Home PLMN unlock\u2026</string>
+    <!-- Status message displayed on SIM ICCID Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_ICCID_IN_PROGRESS">Requesting ICCID unlock\u2026</string>
+    <!-- Status message displayed on SIM IMPI Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_IMPI_IN_PROGRESS">Requesting IMPI unlock\u2026</string>
+    <!-- Status message displayed on SIM NS_SP Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NS_SP_IN_PROGRESS">Requesting Network subset service provider unlock\u2026</string>
+
+    <!-- Status message displayed on RUIM RUIM Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_RUIM_IN_PROGRESS">Requesting RUIM unlock\u2026</string>
+    <!-- Status message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_PUK_IN_PROGRESS">Requesting PUK unlock\u2026</string>
+    <!-- Status message displayed on PUK Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_PUK_IN_PROGRESS">Requesting PUK unlock\u2026</string>
+    <!-- Status message displayed on PUK Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_HRPD_PUK_IN_PROGRESS">Requesting PUK unlock\u2026</string>
+    <!-- Status message displayed on PUK Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_PUK_IN_PROGRESS">Requesting PUK unlock\u2026</string>
+    <!-- Status message displayed on PUK Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_IN_PROGRESS">Requesting PUK unlock\u2026</string>
+    <!-- Status message displayed on PUK Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_RUIM_PUK_IN_PROGRESS">Requesting PUK unlock\u2026</string>
+    <!-- Error message displayed on SIM Network Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_ERROR">SIM Network unlock request unsuccessful.</string>
+    <!-- Error message displayed on SIM Network Subset Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_ERROR">SIM Network Subset unlock request unsucces
+sful.</string>
+    <!-- Error message displayed on SIM Service Provider Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_ERROR">SIM Service Provider unlock request unsu
+ccessful.</string>
+    <!-- Error message displayed on SIM Corporate Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_ERROR">SIM Corporate unlock request unsuccessful.</string>
+    <!-- Error message displayed on SIM SIM Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SIM_ERROR">SIM unlock request unsuccessful.</string>
+    <!-- Error message displayed on RUIM Network1 Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_ERROR">RUIM Network1 unlock request unsuccessful.</string>
+    <!-- Error message displayed on RUIM Network2 Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_ERROR">RUIM Network2 unlock request unsuccessful.</string>
+    <!-- Error message displayed on RUIM Hrpd Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_HRPD_ERROR">RUIM Hrpd unlock request unsuccessful.</string>
+    <!-- Error message displayed on RUIM Corporate Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_ERROR">RUIM Corporate unlock request unsuccessful.</string>
+    <!-- Error message displayed on RUIM Service Provider Depersonalization panel  [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_ERROR">RUIM Service Provider unlock request un
+successful.</string>
+    <!-- Error message displayed on RUIM RUIM Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_RUIM_ERROR">RUIM unlock request unsuccessful.</string>
+    <!-- Error message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_PUK_ERROR">PUK unlock unsuccessful.</string>
+    <!-- Error message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_ERROR">PUK unlock unsuccessful.</string>
+    <!-- Error message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_PUK_ERROR">PUK unlock unsuccessful.</string>
+    <!-- Error message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_ERROR">PUK unlock unsuccessful.</string>
+    <!-- Error message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SIM_PUK_ERROR">PUK unlock unsuccessful.</string>
+    <!-- Error message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_PUK_ERROR">PUK unlock unsuccessful.</string>
+    <!-- Error message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_PUK_ERROR">PUK unlock unsuccessful.</string>
+    <!-- Error message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_HRPD_PUK_ERROR">PUK unlock unsuccessful.</string>
+    <!-- Error message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_ERROR">PUK unlock unsuccessful.</string>
+    <!-- Error message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_RUIM_PUK_ERROR">PUK unlock unsuccessful.</string>
+    <!-- Error message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_PUK_ERROR">PUK unlock unsuccessful.</string>
+
+    <!--  Error message displayed on SIM SPN Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SPN_ERROR">SPN unlock request unsuccessful.</string>
+    <!--  Error message displayed on SIM SP EHPLMN Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SP_EHPLMN_ERROR">SP Equivalent Home PLMN unlock request unsuccessful.</string>
+    <!--  Error message displayed on SIM ICCID Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_ICCID_ERROR">ICCID unlock request unsuccessful.</string>
+    <!--  Error message displayed on SIM IMPI Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_IMPI_ERROR">IMPI unlock request unsuccessful.</string>
+    <!--  Error message displayed on SIM NS_SP Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NS_SP_ERROR">Network subset service provider unlock request unsuccessful.</string>
+
+    <!-- Success message displayed on SIM Network Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUCCESS">SIM Network unlock successful.</string>
+    <!-- Success message displayed on SIM Network Subset Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_SUCCESS">SIM Network Subset unlock successful.</string>
+    <!-- Success message displayed on SIM Service Provider Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_SUCCESS">SIM Service Provider unlock successful
+.</string>
+    <!-- Success message displayed on SIM Corporate Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_SUCCESS">SIM Corporate unlock successful.</string>
+    <!-- Success message displayed on SIM SIM Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SIM_SUCCESS">SIM unlock successful.</string>
+    <!-- Success message displayed on RUIM Network1 Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_SUCCESS">RUIM Network1 unlock successful.</string>
+    <!-- Success message displayed on RUIM Network2 Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_SUCCESS">RUIM Network2 unlock successful.</string>
+    <!-- Success message displayed on RUIM Hrpd Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_HRPD_SUCCESS">RUIM Hrpd unlock successful.</string>
+    <!-- Success message displayed on RUIM Service Provider Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_SUCCESS">RUIM Service Provider unlock successf
+ul.</string>
+    <!-- Success message displayed on RUIM Corporate Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_SUCCESS">RUIM Corporate unlock successful.</string>
+    <!-- Success message displayed on RUIM RUIM Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_RUIM_SUCCESS">RUIM unlock successful.</string>
+    <!-- Success message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_PUK_SUCCESS">PUK unlock successful.</string>
+    <!-- Success message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK_SUCCESS">PUK unlock successful.</string>
+    <!-- Success message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_CORPORATE_PUK_SUCCESS">PUK unlock successful.</string>
+    <!-- Success message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK_SUCCESS">PUK unlock successful.</string>
+    <!-- Success message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SIM_PUK_SUCCESS">PUK unlock successful.</string>
+    <!-- Success message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK1_PUK_SUCCESS">PUK unlock successful.</string>
+    <!-- Success message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_NETWORK2_PUK_SUCCESS">PUK unlock successful.</string>
+    <!-- Success message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_HRPD_PUK_SUCCESS">PUK unlock successful.</string>
+    <!-- Success message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_CORPORATE_PUK_SUCCESS">PUK unlock successful.</string>
+    <!-- Success message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK_SUCCESS">PUK unlock successful.</string>
+    <!-- Success message displayed on PUK Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_RUIM_RUIM_PUK_SUCCESS">PUK unlock successful.</string>
+
+    <!-- Success message displayed on SIM SPN Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SPN_SUCCESS">SPN unlock successful.</string>
+    <!-- Success message displayed on SIM SP EHPLMN Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_SP_EHPLMN_SUCCESS">SP Equivalent Home PLMN unlock successful.</string>
+    <!-- Success message displayed on SIM ICCID Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_ICCID_SUCCESS">ICCID unlock successful.</string>
+    <!-- Success message displayed on SIM IMPI Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_IMPI_SUCCESS">IMPI unlock successful.</string>
+    <!-- Success message displayed on SIM NS_SP Depersonalization panel [CHAR LIMIT=none] -->
+    <string name="PERSOSUBSTATE_SIM_NS_SP_SUCCESS">Network subset service provider unlock successful.</string>
 </resources>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index a1b00f2..04c6a41 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -365,6 +365,7 @@
   <java-symbol type="bool" name="config_hasRecents" />
   <java-symbol type="string" name="config_recentsComponentName" />
   <java-symbol type="string" name="config_systemUIServiceComponent" />
+  <java-symbol type="string" name="config_controlsPackage" />
   <java-symbol type="string" name="config_screenRecorderComponent" />
   <java-symbol type="string" name="config_somnambulatorComponent" />
   <java-symbol type="string" name="config_screenshotServiceComponent" />
@@ -1194,8 +1195,9 @@
   <java-symbol type="string" name="network_logging_notification_text" />
   <java-symbol type="string" name="location_changed_notification_title" />
   <java-symbol type="string" name="location_changed_notification_text" />
-  <java-symbol type="string" name="personal_apps_suspended_notification_title" />
-  <java-symbol type="string" name="personal_apps_suspended_notification_text" />
+  <java-symbol type="string" name="personal_apps_suspended_title" />
+  <java-symbol type="string" name="personal_apps_suspended_tomorrow_title" />
+  <java-symbol type="string" name="personal_apps_suspended_text" />
   <java-symbol type="string" name="factory_reset_warning" />
   <java-symbol type="string" name="factory_reset_message" />
   <java-symbol type="string" name="lockscreen_transport_play_description" />
@@ -1222,7 +1224,7 @@
   <java-symbol type="array" name="preloaded_color_state_lists" />
   <java-symbol type="array" name="preloaded_drawables" />
   <java-symbol type="array" name="preloaded_freeform_multi_window_drawables" />
-  <java-symbol type="array" name="simColors" />
+  <java-symbol type="array" name="sim_colors" />
   <java-symbol type="array" name="special_locale_codes" />
   <java-symbol type="array" name="special_locale_names" />
   <java-symbol type="array" name="supported_locales" />
@@ -3860,6 +3862,8 @@
   <java-symbol type="string" name="conversation_title_fallback_group_chat" />
   <java-symbol type="id" name="conversation_icon" />
   <java-symbol type="id" name="conversation_icon_badge" />
+  <java-symbol type="id" name="conversation_icon_badge_ring" />
+  <java-symbol type="id" name="conversation_icon_badge_bg" />
   <java-symbol type="id" name="expand_button_container" />
   <java-symbol type="id" name="messaging_group_content_container" />
   <java-symbol type="id" name="expand_button_and_content_container" />
@@ -3870,16 +3874,26 @@
   <java-symbol type="id" name="conversation_face_pile" />
   <java-symbol type="id" name="conversation_text" />
   <java-symbol type="id" name="message_icon_container" />
+  <java-symbol type="id" name="conversation_image_message_container" />
+  <java-symbol type="id" name="conversation_icon_container" />
   <java-symbol type="dimen" name="conversation_expand_button_top_margin_expanded" />
-  <java-symbol type="dimen" name="conversation_expand_button_expanded_size" />
   <java-symbol type="dimen" name="messaging_group_singleline_sender_padding_end" />
   <java-symbol type="dimen" name="conversation_badge_side_margin" />
-  <java-symbol type="dimen" name="conversation_icon_size_badged" />
-  <java-symbol type="dimen" name="conversation_icon_size_centered" />
-  <java-symbol type="dimen" name="conversation_icon_margin_top_centered" />
+  <java-symbol type="dimen" name="conversation_avatar_size" />
+  <java-symbol type="dimen" name="conversation_avatar_size_group_expanded" />
+  <java-symbol type="dimen" name="conversation_face_pile_avatar_size" />
+  <java-symbol type="dimen" name="conversation_face_pile_avatar_size_group_expanded" />
+  <java-symbol type="dimen" name="conversation_face_pile_protection_width" />
+  <java-symbol type="dimen" name="conversation_face_pile_protection_width_expanded" />
+  <java-symbol type="dimen" name="conversation_badge_side_margin_group_expanded" />
+  <java-symbol type="dimen" name="conversation_badge_side_margin_group_expanded_face_pile" />
   <java-symbol type="dimen" name="conversation_content_start" />
+  <java-symbol type="dimen" name="expanded_group_conversation_message_padding_without_app_name" />
   <java-symbol type="dimen" name="messaging_layout_margin_end" />
   <java-symbol type="dimen" name="conversation_header_expanded_padding_end" />
+  <java-symbol type="dimen" name="conversation_icon_container_top_padding" />
+  <java-symbol type="dimen" name="conversation_icon_container_top_padding_small_avatar" />
+  <java-symbol type="dimen" name="conversation_icon_container_top_padding_no_app_name" />
   <java-symbol type="layout" name="notification_template_material_conversation" />
   <java-symbol type="layout" name="conversation_face_pile_layout" />
 
@@ -3897,15 +3911,18 @@
   <java-symbol type="id" name="resolver_empty_state_progress" />
   <java-symbol type="id" name="resolver_tab_divider" />
   <java-symbol type="string" name="resolver_cant_share_with_work_apps" />
+  <java-symbol type="string" name="resolver_cant_share_with_work_apps_explanation" />
   <java-symbol type="string" name="resolver_cant_share_with_personal_apps" />
-  <java-symbol type="string" name="resolver_cant_share_cross_profile_explanation" />
+  <java-symbol type="string" name="resolver_cant_share_with_personal_apps_explanation" />
   <java-symbol type="string" name="resolver_cant_access_work_apps" />
   <java-symbol type="string" name="resolver_cant_access_work_apps_explanation" />
   <java-symbol type="string" name="resolver_cant_access_personal_apps" />
   <java-symbol type="string" name="resolver_cant_access_personal_apps_explanation" />
-  <java-symbol type="string" name="resolver_turn_on_work_apps_view" />
-  <java-symbol type="string" name="resolver_turn_on_work_apps_share" />
-  <java-symbol type="string" name="resolver_no_apps_available" />
+  <java-symbol type="string" name="resolver_turn_on_work_apps" />
+  <java-symbol type="string" name="resolver_no_work_apps_available_share" />
+  <java-symbol type="string" name="resolver_no_work_apps_available_resolve" />
+  <java-symbol type="string" name="resolver_no_personal_apps_available_share" />
+  <java-symbol type="string" name="resolver_no_personal_apps_available_resolve" />
   <java-symbol type="string" name="resolver_switch_on_work" />
   <java-symbol type="drawable" name="ic_work_apps_off" />
   <java-symbol type="drawable" name="ic_sharing_disabled" />
@@ -3913,7 +3930,7 @@
   <java-symbol type="dimen" name="resolver_empty_state_height" />
   <java-symbol type="dimen" name="resolver_empty_state_height_with_tabs" />
   <java-symbol type="dimen" name="resolver_max_collapsed_height_with_tabs" />
-  <java-symbol type="bool" name="sharesheet_show_content_preview" />
+  <java-symbol type="bool" name="resolver_landscape_phone" />
   <java-symbol type="dimen" name="resolver_tab_text_size" />
 
   <!-- Toast message for background started foreground service while-in-use permission restriction feature -->
@@ -3934,4 +3951,10 @@
   <java-symbol type="string" name="config_customSessionPolicyProvider" />
   <!-- The max scale for the wallpaper when it's zoomed in -->
   <java-symbol type="dimen" name="config_wallpaperMaxScale"/>
+
+  <!-- Set to true to enable the user switcher on the keyguard. -->
+  <java-symbol type="bool" name="config_keyguardUserSwitcher" />
+
+  <!-- Set to true to make assistant show in front of the dream/screensaver. -->
+  <java-symbol type="bool" name="config_assistantOnTopOfDream"/>
 </resources>
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index 2ef0c92..88f9fc2 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -702,7 +702,7 @@
     </style>
 
     <style name="Theme.Dream">
-        <item name="windowBackground">@null</item>
+        <item name="windowBackground">@color/black</item>
         <item name="windowDisablePreview">true</item>
     </style>
 
diff --git a/core/tests/ResourceLoaderTests/Android.bp b/core/tests/ResourceLoaderTests/Android.bp
index fec4628..2b14bca 100644
--- a/core/tests/ResourceLoaderTests/Android.bp
+++ b/core/tests/ResourceLoaderTests/Android.bp
@@ -21,44 +21,44 @@
     ],
     libs: [
         "android.test.runner",
-        "android.test.base",
+        "android.test.base"
     ],
     static_libs: [
+        "FrameworksResourceLoaderTests_Providers",
         "androidx.test.espresso.core",
         "androidx.test.ext.junit",
         "androidx.test.runner",
         "androidx.test.rules",
         "mockito-target-minus-junit4",
-        "truth-prebuilt",
+        "truth-prebuilt"
     ],
-    resource_zips: [ ":FrameworksResourceLoaderTestsAssets" ],
+    resource_dirs: ["res", "resources/provider_stable/res"],
     platform_apis: true,
     test_suites: ["device-tests"],
-    aaptflags: [
-        "--no-compress",
-    ],
+    aaptflags: ["-0 .txt"],
     data: [
-        ":FrameworksResourceLoaderTestsSplitOne",
-        ":FrameworksResourceLoaderTestsSplitTwo",
-        ":FrameworksResourceLoaderTestsSplitThree",
-        ":FrameworksResourceLoaderTestsSplitFour",
-    ],
-    java_resources: [ "NonAsset.txt" ]
+        ":FrameworksResourceLoaderTests_ProviderOne_Split",
+        ":FrameworksResourceLoaderTests_ProviderTwo_Split",
+        ":FrameworksResourceLoaderTests_ProviderThree_Split",
+        ":FrameworksResourceLoaderTests_ProviderFour_Split"
+    ]
 }
 
-filegroup {
-    name: "FrameworksResourceLoaderTestsResources",
-    srcs: ["resources"],
-}
-
-genrule {
-    name: "FrameworksResourceLoaderTestsAssets",
-    srcs: [
-        ":framework-res",
-        ":FrameworksResourceLoaderTestsResources",
+java_genrule {
+    name: "FrameworksResourceLoaderTests_Providers",
+    tools: ["soong_zip"],
+    srcs : [
+        ":FrameworksResourceLoaderTests_ProviderOne",
+        ":FrameworksResourceLoaderTests_ProviderOne_ARSC",
+        ":FrameworksResourceLoaderTests_ProviderTwo",
+        ":FrameworksResourceLoaderTests_ProviderTwo_ARSC",
+        ":FrameworksResourceLoaderTests_ProviderThree",
+        ":FrameworksResourceLoaderTests_ProviderThree_ARSC",
+        ":FrameworksResourceLoaderTests_ProviderFour",
+        ":FrameworksResourceLoaderTests_ProviderFour_ARSC"
     ],
-    tools: [ ":aapt2", ":soong_zip" ],
-    tool_files: [ "resources/compileAndLink.sh" ],
-    cmd: "$(location resources/compileAndLink.sh) $(location :aapt2) $(location :soong_zip) $(genDir) $(in) $(in)",
-    out: [ "out.zip" ]
-}
+    out: ["FrameworksResourceLoaderTests_Providers.jar"],
+    cmd: "mkdir -p $(genDir)/assets/ && cp $(in) $(genDir)/assets/ && " +
+         "$(location soong_zip) -o $(out) " +
+         "-L 0 -C $(genDir) -D $(genDir)/assets/"
+}
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/AndroidTest.xml b/core/tests/ResourceLoaderTests/AndroidTest.xml
index d732132..800e7a7 100644
--- a/core/tests/ResourceLoaderTests/AndroidTest.xml
+++ b/core/tests/ResourceLoaderTests/AndroidTest.xml
@@ -22,7 +22,7 @@
         <option name="cleanup-apks" value="true" />
         <!-- The following value cannot be multi-line as whitespace is parsed by the installer -->
         <option name="split-apk-file-names"
-            value="FrameworksResourceLoaderTests.apk,FrameworksResourceLoaderTestsSplitOne.apk,FrameworksResourceLoaderTestsSplitTwo.apk,FrameworksResourceLoaderTestsSplitThree.apk,FrameworksResourceLoaderTestsSplitFour.apk" />
+            value="FrameworksResourceLoaderTests.apk,FrameworksResourceLoaderTests_ProviderOne_Split.apk,FrameworksResourceLoaderTests_ProviderTwo_Split.apk,FrameworksResourceLoaderTests_ProviderThree_Split.apk,FrameworksResourceLoaderTests_ProviderFour_Split.apk" />
     </target_preparer>
 
     <test class="com.android.tradefed.testtype.AndroidJUnitTest">
diff --git a/core/tests/ResourceLoaderTests/NonAsset.txt b/core/tests/ResourceLoaderTests/NonAsset.txt
deleted file mode 100644
index 5c0b2cc..0000000
--- a/core/tests/ResourceLoaderTests/NonAsset.txt
+++ /dev/null
@@ -1 +0,0 @@
-Outside assets directory
diff --git a/core/tests/ResourceLoaderTests/assets/Asset.txt b/core/tests/ResourceLoaderTests/assets/asset.txt
similarity index 94%
rename from core/tests/ResourceLoaderTests/assets/Asset.txt
rename to core/tests/ResourceLoaderTests/assets/asset.txt
index 03f9a0f..271704b 100644
--- a/core/tests/ResourceLoaderTests/assets/Asset.txt
+++ b/core/tests/ResourceLoaderTests/assets/asset.txt
@@ -1 +1 @@
-In assets directory
+In assets directory
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/assets/base_asset.txt b/core/tests/ResourceLoaderTests/assets/base_asset.txt
new file mode 100644
index 0000000..8e62cc3
--- /dev/null
+++ b/core/tests/ResourceLoaderTests/assets/base_asset.txt
@@ -0,0 +1 @@
+Base
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/res/drawable-nodpi/non_asset_bitmap.png b/core/tests/ResourceLoaderTests/res/drawable-nodpi/drawable_png.png
similarity index 100%
rename from core/tests/ResourceLoaderTests/res/drawable-nodpi/non_asset_bitmap.png
rename to core/tests/ResourceLoaderTests/res/drawable-nodpi/drawable_png.png
Binary files differ
diff --git a/core/tests/ResourceLoaderTests/res/drawable-nodpi/non_asset_drawable.xml b/core/tests/ResourceLoaderTests/res/drawable-nodpi/drawable_xml.xml
similarity index 100%
rename from core/tests/ResourceLoaderTests/res/drawable-nodpi/non_asset_drawable.xml
rename to core/tests/ResourceLoaderTests/res/drawable-nodpi/drawable_xml.xml
diff --git a/core/tests/ResourceLoaderTests/res/values/strings.xml b/core/tests/ResourceLoaderTests/res/values/strings.xml
deleted file mode 100644
index 28b8f73..0000000
--- a/core/tests/ResourceLoaderTests/res/values/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<resources>
-
-    <string name="loader_path_change_test">Not overlaid</string>
-    <string name="split_overlaid">Not overlaid</string>
-
-</resources>
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/non_asset_bitmap_id.xml b/core/tests/ResourceLoaderTests/res/values/values.xml
similarity index 89%
rename from core/tests/ResourceLoaderTests/resources/res/values/non_asset_bitmap_id.xml
rename to core/tests/ResourceLoaderTests/res/values/values.xml
index 38b152b..ad78532 100644
--- a/core/tests/ResourceLoaderTests/resources/res/values/non_asset_bitmap_id.xml
+++ b/core/tests/ResourceLoaderTests/res/values/values.xml
@@ -16,5 +16,6 @@
   -->
 
 <resources>
-    <public type="drawable" name="non_asset_bitmap" id="0x7f010000" />
+    <dimen name="test">0dp</dimen>
+    <string name="test">Not overlaid</string>
 </resources>
diff --git a/core/tests/ResourceLoaderTests/resources/Android.bp b/core/tests/ResourceLoaderTests/resources/Android.bp
new file mode 100644
index 0000000..18ef64b
--- /dev/null
+++ b/core/tests/ResourceLoaderTests/resources/Android.bp
@@ -0,0 +1,115 @@
+//
+// Copyright (C) 2020 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+android_test_helper_app {
+    name: "FrameworksResourceLoaderTests_ProviderOne",
+    manifest: "AndroidManifestApp.xml",
+    asset_dirs: ["provider1/assets"],
+    resource_dirs: ["provider1/res", "provider_stable/res"],
+    aaptflags: ["-0 .txt"]
+}
+
+android_test_helper_app {
+    name: "FrameworksResourceLoaderTests_ProviderTwo",
+    manifest: "AndroidManifestApp.xml",
+    asset_dirs: ["provider2/assets"],
+    resource_dirs: ["provider2/res", "provider_stable/res"],
+    aaptflags: ["-0 .txt"]
+}
+
+android_test_helper_app {
+    name: "FrameworksResourceLoaderTests_ProviderThree",
+    manifest: "AndroidManifestApp.xml",
+    asset_dirs: ["provider3/assets"],
+    resource_dirs: ["provider3/res", "provider_stable/res"],
+    aaptflags: ["-0 .txt"]
+}
+
+android_test_helper_app {
+    name: "FrameworksResourceLoaderTests_ProviderFour",
+    manifest: "AndroidManifestApp.xml",
+    asset_dirs: ["provider4/assets"],
+    resource_dirs: ["provider4/res", "provider_stable/res"],
+    aaptflags: ["-0 .txt"]
+}
+
+// Resources.arsc(s)
+
+genrule {
+    name: "FrameworksResourceLoaderTests_ProviderOne_ARSC",
+    srcs: [":FrameworksResourceLoaderTests_ProviderOne"],
+    cmd: "unzip $(in) resources.arsc -d $(genDir) && "
+         + " mv $(genDir)/resources.arsc $(genDir)/FrameworksResourceLoaderTests_ProviderOne.arsc",
+    out: ["FrameworksResourceLoaderTests_ProviderOne.arsc"]
+}
+
+genrule {
+    name: "FrameworksResourceLoaderTests_ProviderTwo_ARSC",
+    srcs: [":FrameworksResourceLoaderTests_ProviderTwo"],
+    cmd: "unzip $(in) resources.arsc -d $(genDir) && "
+         + " mv $(genDir)/resources.arsc $(genDir)/FrameworksResourceLoaderTests_ProviderTwo.arsc",
+    out: ["FrameworksResourceLoaderTests_ProviderTwo.arsc"]
+}
+
+genrule {
+    name: "FrameworksResourceLoaderTests_ProviderThree_ARSC",
+    srcs: [":FrameworksResourceLoaderTests_ProviderThree"],
+    cmd: "unzip $(in) resources.arsc -d $(genDir) && "
+         + " mv $(genDir)/resources.arsc $(genDir)/FrameworksResourceLoaderTests_ProviderThree.arsc",
+    out: ["FrameworksResourceLoaderTests_ProviderThree.arsc"]
+}
+
+genrule {
+    name: "FrameworksResourceLoaderTests_ProviderFour_ARSC",
+    srcs: [":FrameworksResourceLoaderTests_ProviderFour"],
+    cmd: "unzip $(in) resources.arsc -d $(genDir) && "
+         + " mv $(genDir)/resources.arsc $(genDir)/FrameworksResourceLoaderTests_ProviderFour.arsc",
+    out: ["FrameworksResourceLoaderTests_ProviderFour.arsc"]
+}
+
+// Split APKs
+
+android_test_helper_app {
+    name: "FrameworksResourceLoaderTests_ProviderOne_Split",
+    manifest: "AndroidManifestSplit1.xml",
+    asset_dirs: ["provider1/assets"],
+    resource_dirs: ["provider1/res", "provider_stable/res"],
+    aaptflags: ["-0 .txt"]
+}
+
+android_test_helper_app {
+    name: "FrameworksResourceLoaderTests_ProviderTwo_Split",
+    manifest: "AndroidManifestSplit2.xml",
+    asset_dirs: ["provider2/assets"],
+    resource_dirs: ["provider2/res", "provider_stable/res"],
+    aaptflags: ["-0 .txt"]
+}
+
+android_test_helper_app {
+    name: "FrameworksResourceLoaderTests_ProviderThree_Split",
+    manifest: "AndroidManifestSplit3.xml",
+    asset_dirs: ["provider3/assets"],
+    resource_dirs: ["provider3/res", "provider_stable/res"],
+    aaptflags: ["-0 .txt"]
+}
+
+android_test_helper_app {
+    name: "FrameworksResourceLoaderTests_ProviderFour_Split",
+    manifest: "AndroidManifestSplit4.xml",
+    asset_dirs: ["provider4/assets"],
+    resource_dirs: ["provider4/res", "provider_stable/res"],
+    aaptflags: ["-0 .txt"]
+}
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/AndroidManifestApp.xml b/core/tests/ResourceLoaderTests/resources/AndroidManifestApp.xml
index 5dd8a96..c8a3590 100644
--- a/core/tests/ResourceLoaderTests/resources/AndroidManifestApp.xml
+++ b/core/tests/ResourceLoaderTests/resources/AndroidManifestApp.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2019 The Android Open Source Project
+  ~ Copyright (C) 2020 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -15,12 +15,9 @@
   ~ limitations under the License.
   -->
 
-<manifest
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    package="android.content.res.loader.test"
-    >
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="android.content.res.loader.test">
 
     <uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
     <application/>
-
 </manifest>
diff --git a/core/tests/ResourceLoaderTests/resources/AndroidManifestFramework.xml b/core/tests/ResourceLoaderTests/resources/AndroidManifestFramework.xml
index 5a92ae9..d5fa83f 100644
--- a/core/tests/ResourceLoaderTests/resources/AndroidManifestFramework.xml
+++ b/core/tests/ResourceLoaderTests/resources/AndroidManifestFramework.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2019 The Android Open Source Project
+  ~ Copyright (C) 2020 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -16,12 +16,9 @@
   -->
 
 <!-- Mocks the framework package name so that AAPT2 assigns the correct package -->
-<manifest
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    package="android"
-    >
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="android">
 
     <uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
     <application/>
-
 </manifest>
diff --git a/core/tests/ResourceLoaderTests/splits/SplitOne/AndroidManifest.xml b/core/tests/ResourceLoaderTests/resources/AndroidManifestSplit1.xml
similarity index 90%
rename from core/tests/ResourceLoaderTests/splits/SplitOne/AndroidManifest.xml
rename to core/tests/ResourceLoaderTests/resources/AndroidManifestSplit1.xml
index b14bd86..5cd4227 100644
--- a/core/tests/ResourceLoaderTests/splits/SplitOne/AndroidManifest.xml
+++ b/core/tests/ResourceLoaderTests/resources/AndroidManifestSplit1.xml
@@ -18,7 +18,8 @@
 <manifest
     xmlns:android="http://schemas.android.com/apk/res/android"
     package="android.content.res.loader.test"
-    split="split_one"
+    split="FrameworksResourceLoaderTests_ProviderOne_Split"
+    android:isFeatureSplit="true"
     >
 
     <uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
diff --git a/core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml b/core/tests/ResourceLoaderTests/resources/AndroidManifestSplit2.xml
similarity index 90%
rename from core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml
rename to core/tests/ResourceLoaderTests/resources/AndroidManifestSplit2.xml
index 24a0a2a..b5180e6 100644
--- a/core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml
+++ b/core/tests/ResourceLoaderTests/resources/AndroidManifestSplit2.xml
@@ -18,7 +18,8 @@
 <manifest
     xmlns:android="http://schemas.android.com/apk/res/android"
     package="android.content.res.loader.test"
-    split="split_four"
+    split="FrameworksResourceLoaderTests_ProviderTwo_Split"
+    android:isFeatureSplit="true"
     >
 
     <uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
diff --git a/core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml b/core/tests/ResourceLoaderTests/resources/AndroidManifestSplit3.xml
similarity index 89%
copy from core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml
copy to core/tests/ResourceLoaderTests/resources/AndroidManifestSplit3.xml
index 24a0a2a..8ddb892 100644
--- a/core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml
+++ b/core/tests/ResourceLoaderTests/resources/AndroidManifestSplit3.xml
@@ -18,7 +18,8 @@
 <manifest
     xmlns:android="http://schemas.android.com/apk/res/android"
     package="android.content.res.loader.test"
-    split="split_four"
+    split="FrameworksResourceLoaderTests_ProviderThree_Split"
+    android:isFeatureSplit="true"
     >
 
     <uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
diff --git a/core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml b/core/tests/ResourceLoaderTests/resources/AndroidManifestSplit4.xml
similarity index 90%
copy from core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml
copy to core/tests/ResourceLoaderTests/resources/AndroidManifestSplit4.xml
index 24a0a2a..b6bf552 100644
--- a/core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml
+++ b/core/tests/ResourceLoaderTests/resources/AndroidManifestSplit4.xml
@@ -18,7 +18,8 @@
 <manifest
     xmlns:android="http://schemas.android.com/apk/res/android"
     package="android.content.res.loader.test"
-    split="split_four"
+    split="FrameworksResourceLoaderTests_ProviderFour_Split"
+    android:isFeatureSplit="true"
     >
 
     <uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
diff --git a/core/tests/ResourceLoaderTests/resources/compileAndLink.sh b/core/tests/ResourceLoaderTests/resources/compileAndLink.sh
deleted file mode 100755
index 8e05aef..0000000
--- a/core/tests/ResourceLoaderTests/resources/compileAndLink.sh
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/bin/bash
-# Copyright (C) 2019 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-aapt2=$1
-soong_zip=$2
-genDir=$3
-FRAMEWORK_RES_APK=$4
-inDir=$5
-
-# (String name, boolean retainFiles = false, String... files)
-function compileAndLink {
-    moduleName=$1
-    mkdir "$genDir"/out/"$moduleName"
-
-    args=""
-    for arg in "${@:4}"; do
-        if [[ $arg == res* ]]; then
-            args="$args $inDir/$arg"
-        else
-            args="$args $arg"
-        fi
-    done
-
-    $aapt2 compile -o "$genDir"/out/"$moduleName" $args
-
-    $aapt2 link \
-        -I "$FRAMEWORK_RES_APK" \
-        --manifest "$inDir"/"$3" \
-        -o "$genDir"/out/"$moduleName"/apk.apk \
-        "$genDir"/out/"$moduleName"/*.flat \
-        --no-compress
-
-    unzip -qq "$genDir"/out/"$moduleName"/apk.apk -d "$genDir"/out/"$moduleName"/unzip
-
-    if [[ "$2" == "APK_WITHOUT_FILE" || "$2" == "BOTH_WITHOUT_FILE" ]]; then
-        zip -q -d "$genDir"/out/"$moduleName"/apk.apk "res/*"
-        cp "$genDir"/out/"$moduleName"/apk.apk "$genDir"/output/raw/"$moduleName"Apk.apk
-    elif [[ "$2" == "APK" || "$2" == "BOTH" ]]; then
-        cp "$genDir"/out/"$moduleName"/apk.apk "$genDir"/output/raw/"$moduleName"Apk.apk
-    fi
-
-    if [[ "$2" == "ARSC" || "$2" == "BOTH" || "$2" == "BOTH_WITHOUT_FILE" ]]; then
-        zip -d "$genDir"/out/"$moduleName"/apk.apk "res/*"
-        cp "$genDir"/out/"$moduleName"/unzip/resources.arsc "$genDir"/output/raw/"$moduleName"Arsc.arsc
-    fi
-}
-
-rm -r "$genDir"/out
-rm -r "$genDir"/output
-rm -r "$genDir"/temp
-
-mkdir "$genDir"/out
-mkdir -p "$genDir"/output/raw
-mkdir -p "$genDir"/temp/res/drawable-nodpi
-mkdir -p "$genDir"/temp/res/layout
-
-compileAndLink stringOne BOTH AndroidManifestFramework.xml res/values/string_one.xml
-compileAndLink stringTwo BOTH AndroidManifestFramework.xml res/values/string_two.xml
-compileAndLink stringThree BOTH AndroidManifestFramework.xml res/values/string_three.xml
-compileAndLink stringFour BOTH AndroidManifestFramework.xml res/values/string_four.xml
-
-compileAndLink dimenOne BOTH AndroidManifestFramework.xml res/values/dimen_one.xml
-compileAndLink dimenTwo BOTH AndroidManifestFramework.xml res/values/dimen_two.xml
-compileAndLink dimenThree BOTH AndroidManifestFramework.xml res/values/dimen_three.xml
-compileAndLink dimenFour BOTH AndroidManifestFramework.xml res/values/dimen_four.xml
-
-compileAndLink drawableMdpiWithoutFile BOTH_WITHOUT_FILE AndroidManifestFramework.xml res/values/drawable_one.xml res/drawable-mdpi/ic_delete.png
-compileAndLink drawableMdpiWithFile APK AndroidManifestFramework.xml res/values/drawable_one.xml res/drawable-mdpi/ic_delete.png
-
-compileAndLink layoutWithoutFile BOTH_WITHOUT_FILE AndroidManifestFramework.xml res/values/activity_list_item_id.xml res/layout/activity_list_item.xml
-compileAndLink layoutWithFile APK AndroidManifestFramework.xml res/values/activity_list_item_id.xml res/layout/activity_list_item.xml
-
-cp -f "$inDir"/res/layout/layout_one.xml "$genDir"/temp/res/layout/layout.xml
-compileAndLink layoutOne ARSC AndroidManifestApp.xml "$genDir"/temp/res/layout/layout.xml res/values/layout_id.xml
-cp -f "$genDir"/out/layoutOne/unzip/res/layout/layout.xml "$genDir"/output/raw/layoutOne.xml
-
-cp -f "$inDir"/res/layout/layout_two.xml "$genDir"/temp/res/layout/layout.xml
-compileAndLink layoutTwo ARSC AndroidManifestApp.xml "$genDir"/temp/res/layout/layout.xml res/values/layout_id.xml
-cp -f "$genDir"/out/layoutTwo/unzip/res/layout/layout.xml "$genDir"/output/raw/layoutTwo.xml
-
-cp -f "$inDir"/res/layout/layout_three.xml "$genDir"/temp/res/layout/layout.xml
-compileAndLink layoutThree ARSC AndroidManifestApp.xml "$genDir"/temp/res/layout/layout.xml res/values/layout_id.xml
-cp -f "$genDir"/out/layoutThree/unzip/res/layout/layout.xml "$genDir"/output/raw/layoutThree.xml
-
-cp -f "$inDir"/res/layout/layout_four.xml "$genDir"/temp/res/layout/layout.xml
-compileAndLink layoutFour ARSC AndroidManifestApp.xml "$genDir"/temp/res/layout/layout.xml res/values/layout_id.xml
-cp -f "$genDir"/out/layoutFour/unzip/res/layout/layout.xml "$genDir"/output/raw/layoutFour.xml
-
-drawableNoDpi="/res/drawable-nodpi"
-inDirDrawableNoDpi="$inDir$drawableNoDpi"
-
-cp -f "$inDirDrawableNoDpi"/nonAssetDrawableOne.xml "$genDir"/temp/res/drawable-nodpi/non_asset_drawable.xml
-compileAndLink nonAssetDrawableOne ARSC AndroidManifestApp.xml "$genDir"/temp/res/drawable-nodpi/non_asset_drawable.xml res/values/non_asset_drawable_id.xml
-cp -f "$genDir"/out/nonAssetDrawableOne/unzip/res/drawable-nodpi-v4/non_asset_drawable.xml "$genDir"/output/raw/nonAssetDrawableOne.xml
-
-cp -f "$inDirDrawableNoDpi"/nonAssetDrawableTwo.xml "$genDir"/temp/res/drawable-nodpi/non_asset_drawable.xml
-compileAndLink nonAssetDrawableTwo ARSC AndroidManifestApp.xml "$genDir"/temp/res/drawable-nodpi/non_asset_drawable.xml res/values/non_asset_drawable_id.xml
-cp -f "$genDir"/out/nonAssetDrawableTwo/unzip/res/drawable-nodpi-v4/non_asset_drawable.xml "$genDir"/output/raw/nonAssetDrawableTwo.xml
-
-cp -f "$inDirDrawableNoDpi"/nonAssetDrawableThree.xml "$genDir"/temp/res/drawable-nodpi/non_asset_drawable.xml
-compileAndLink nonAssetDrawableThree ARSC AndroidManifestApp.xml "$genDir"/temp/res/drawable-nodpi/non_asset_drawable.xml res/values/non_asset_drawable_id.xml
-cp -f "$genDir"/out/nonAssetDrawableThree/unzip/res/drawable-nodpi-v4/non_asset_drawable.xml "$genDir"/output/raw/nonAssetDrawableThree.xml
-
-cp -f "$inDirDrawableNoDpi"/nonAssetDrawableFour.xml "$genDir"/temp/res/drawable-nodpi/non_asset_drawable.xml
-compileAndLink nonAssetDrawableFour ARSC AndroidManifestApp.xml "$genDir"/temp/res/drawable-nodpi/non_asset_drawable.xml res/values/non_asset_drawable_id.xml
-cp -f "$genDir"/out/nonAssetDrawableFour/unzip/res/drawable-nodpi-v4/non_asset_drawable.xml "$genDir"/output/raw/nonAssetDrawableFour.xml
-
-cp -f "$inDirDrawableNoDpi"/nonAssetBitmapRed.png "$genDir"/temp/res/drawable-nodpi/non_asset_bitmap.png
-compileAndLink nonAssetBitmapRed BOTH AndroidManifestApp.xml "$genDir"/temp/res/drawable-nodpi/non_asset_bitmap.png res/values/non_asset_bitmap_id.xml
-cp -f "$genDir"/out/nonAssetBitmapRed/unzip/res/drawable-nodpi-v4/non_asset_bitmap.png "$genDir"/output/raw/nonAssetBitmapRed.png
-
-cp -f "$inDirDrawableNoDpi"/nonAssetBitmapGreen.png "$genDir"/temp/res/drawable-nodpi/non_asset_bitmap.png
-compileAndLink nonAssetBitmapGreen BOTH AndroidManifestApp.xml "$genDir"/temp/res/drawable-nodpi/non_asset_bitmap.png res/values/non_asset_bitmap_id.xml
-cp -f "$genDir"/out/nonAssetBitmapGreen/unzip/res/drawable-nodpi-v4/non_asset_bitmap.png "$genDir"/output/raw/nonAssetBitmapGreen.png
-
-cp -f "$inDirDrawableNoDpi"/nonAssetBitmapBlue.png "$genDir"/temp/res/drawable-nodpi/non_asset_bitmap.png
-compileAndLink nonAssetBitmapBlue ARSC AndroidManifestApp.xml "$genDir"/temp/res/drawable-nodpi/non_asset_bitmap.png res/values/non_asset_bitmap_id.xml
-cp -f "$genDir"/out/nonAssetBitmapBlue/unzip/res/drawable-nodpi-v4/non_asset_bitmap.png "$genDir"/output/raw/nonAssetBitmapBlue.png
-
-cp -f "$inDirDrawableNoDpi"/nonAssetBitmapWhite.png "$genDir"/temp/res/drawable-nodpi/non_asset_bitmap.png
-compileAndLink nonAssetBitmapWhite ARSC AndroidManifestApp.xml "$genDir"/temp/res/drawable-nodpi/non_asset_bitmap.png res/values/non_asset_bitmap_id.xml
-cp -f "$genDir"/out/nonAssetBitmapWhite/unzip/res/drawable-nodpi-v4/non_asset_bitmap.png "$genDir"/output/raw/nonAssetBitmapWhite.png
-
-$soong_zip -o "$genDir"/out.zip -C "$genDir"/output/ -D "$genDir"/output/
diff --git a/core/tests/ResourceLoaderTests/resources/res/drawable-mdpi/ic_delete.png b/core/tests/ResourceLoaderTests/resources/framework/res/drawable-mdpi/ic_delete.png
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/drawable-mdpi/ic_delete.png
rename to core/tests/ResourceLoaderTests/resources/framework/res/drawable-mdpi/ic_delete.png
Binary files differ
diff --git a/core/tests/ResourceLoaderTests/resources/res/layout/activity_list_item.xml b/core/tests/ResourceLoaderTests/resources/framework/res/layout/activity_list_item.xml
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/layout/activity_list_item.xml
rename to core/tests/ResourceLoaderTests/resources/framework/res/layout/activity_list_item.xml
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml b/core/tests/ResourceLoaderTests/resources/framework/res/values/public.xml
similarity index 84%
rename from core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
rename to core/tests/ResourceLoaderTests/resources/framework/res/values/public.xml
index 82cd6ec..2e50182 100644
--- a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
+++ b/core/tests/ResourceLoaderTests/resources/framework/res/values/public.xml
@@ -16,6 +16,7 @@
   -->
 
 <resources>
+    <public type="drawable" name="ic_delete" id="0x0108001d" />
+    <public type="layout" name="activity_list_item" id="0x01090000" />
     <public type="string" name="cancel" id="0x01040000" />
-    <string name="cancel">SomeRidiculouslyUnlikelyStringThree</string>
-</resources>
+</resources>
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/dimen_three.xml b/core/tests/ResourceLoaderTests/resources/framework/res/values/values.xml
similarity index 85%
copy from core/tests/ResourceLoaderTests/resources/res/values/dimen_three.xml
copy to core/tests/ResourceLoaderTests/resources/framework/res/values/values.xml
index 07a35ce..5f6e90c 100644
--- a/core/tests/ResourceLoaderTests/resources/res/values/dimen_three.xml
+++ b/core/tests/ResourceLoaderTests/resources/framework/res/values/values.xml
@@ -16,6 +16,5 @@
   -->
 
 <resources>
-    <public type="dimen" name="app_icon_size" id="0x01050000" />
-    <dimen name="app_icon_size">300dp</dimen>
+    <string name="cancel">SomeRidiculouslyUnlikelyString</string>
 </resources>
diff --git a/core/tests/ResourceLoaderTests/resources/provider1/assets/asset.txt b/core/tests/ResourceLoaderTests/resources/provider1/assets/asset.txt
new file mode 100644
index 0000000..6dcd8e4
--- /dev/null
+++ b/core/tests/ResourceLoaderTests/resources/provider1/assets/asset.txt
@@ -0,0 +1 @@
+One
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/provider1/assets/loader_asset.txt b/core/tests/ResourceLoaderTests/resources/provider1/assets/loader_asset.txt
new file mode 100644
index 0000000..0e41ffa
--- /dev/null
+++ b/core/tests/ResourceLoaderTests/resources/provider1/assets/loader_asset.txt
@@ -0,0 +1 @@
+LoaderOne
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetBitmapRed.png b/core/tests/ResourceLoaderTests/resources/provider1/res/drawable-nodpi/drawable_png.png
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetBitmapRed.png
rename to core/tests/ResourceLoaderTests/resources/provider1/res/drawable-nodpi/drawable_png.png
Binary files differ
diff --git a/core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetDrawableOne.xml b/core/tests/ResourceLoaderTests/resources/provider1/res/drawable-nodpi/drawable_xml.xml
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetDrawableOne.xml
rename to core/tests/ResourceLoaderTests/resources/provider1/res/drawable-nodpi/drawable_xml.xml
diff --git a/core/tests/ResourceLoaderTests/resources/res/layout/layout_one.xml b/core/tests/ResourceLoaderTests/resources/provider1/res/layout/layout.xml
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/layout/layout_one.xml
rename to core/tests/ResourceLoaderTests/resources/provider1/res/layout/layout.xml
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml b/core/tests/ResourceLoaderTests/resources/provider1/res/values/values.xml
similarity index 79%
copy from core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
copy to core/tests/ResourceLoaderTests/resources/provider1/res/values/values.xml
index 82cd6ec..5ef75d5 100644
--- a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
+++ b/core/tests/ResourceLoaderTests/resources/provider1/res/values/values.xml
@@ -16,6 +16,9 @@
   -->
 
 <resources>
-    <public type="string" name="cancel" id="0x01040000" />
-    <string name="cancel">SomeRidiculouslyUnlikelyStringThree</string>
-</resources>
+    <dimen name="test">100dp</dimen>
+    <string name="test">One</string>
+
+    <string name="additional">One</string>
+    <public type="string" name="additional" id="0x7f0400fe" />
+</resources>
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/provider2/assets/asset.txt b/core/tests/ResourceLoaderTests/resources/provider2/assets/asset.txt
new file mode 100644
index 0000000..5673baa
--- /dev/null
+++ b/core/tests/ResourceLoaderTests/resources/provider2/assets/asset.txt
@@ -0,0 +1 @@
+Two
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/provider2/assets/loader_asset.txt b/core/tests/ResourceLoaderTests/resources/provider2/assets/loader_asset.txt
new file mode 100644
index 0000000..bca782e
--- /dev/null
+++ b/core/tests/ResourceLoaderTests/resources/provider2/assets/loader_asset.txt
@@ -0,0 +1 @@
+LoaderTwo
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetBitmapGreen.png b/core/tests/ResourceLoaderTests/resources/provider2/res/drawable-nodpi/drawable_png.png
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetBitmapGreen.png
rename to core/tests/ResourceLoaderTests/resources/provider2/res/drawable-nodpi/drawable_png.png
Binary files differ
diff --git a/core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetDrawableTwo.xml b/core/tests/ResourceLoaderTests/resources/provider2/res/drawable-nodpi/drawable_xml.xml
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetDrawableTwo.xml
rename to core/tests/ResourceLoaderTests/resources/provider2/res/drawable-nodpi/drawable_xml.xml
diff --git a/core/tests/ResourceLoaderTests/resources/res/layout/layout_two.xml b/core/tests/ResourceLoaderTests/resources/provider2/res/layout/layout.xml
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/layout/layout_two.xml
rename to core/tests/ResourceLoaderTests/resources/provider2/res/layout/layout.xml
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml b/core/tests/ResourceLoaderTests/resources/provider2/res/values/values.xml
similarity index 79%
copy from core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
copy to core/tests/ResourceLoaderTests/resources/provider2/res/values/values.xml
index 82cd6ec..387c519 100644
--- a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
+++ b/core/tests/ResourceLoaderTests/resources/provider2/res/values/values.xml
@@ -16,6 +16,9 @@
   -->
 
 <resources>
-    <public type="string" name="cancel" id="0x01040000" />
-    <string name="cancel">SomeRidiculouslyUnlikelyStringThree</string>
-</resources>
+    <dimen name="test">200dp</dimen>
+    <string name="test">Two</string>
+
+    <string name="additional">Two</string>
+    <public type="string" name="additional" id="0x7f0400fe" />
+</resources>
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/provider3/assets/asset.txt b/core/tests/ResourceLoaderTests/resources/provider3/assets/asset.txt
new file mode 100644
index 0000000..368c34d
--- /dev/null
+++ b/core/tests/ResourceLoaderTests/resources/provider3/assets/asset.txt
@@ -0,0 +1 @@
+Three
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/provider3/assets/loader_asset.txt b/core/tests/ResourceLoaderTests/resources/provider3/assets/loader_asset.txt
new file mode 100644
index 0000000..bae8ef7
--- /dev/null
+++ b/core/tests/ResourceLoaderTests/resources/provider3/assets/loader_asset.txt
@@ -0,0 +1 @@
+LoaderThree
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetBitmapBlue.png b/core/tests/ResourceLoaderTests/resources/provider3/res/drawable-nodpi/drawable_png.png
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetBitmapBlue.png
rename to core/tests/ResourceLoaderTests/resources/provider3/res/drawable-nodpi/drawable_png.png
Binary files differ
diff --git a/core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetDrawableThree.xml b/core/tests/ResourceLoaderTests/resources/provider3/res/drawable-nodpi/drawable_xml.xml
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetDrawableThree.xml
rename to core/tests/ResourceLoaderTests/resources/provider3/res/drawable-nodpi/drawable_xml.xml
diff --git a/core/tests/ResourceLoaderTests/resources/res/layout/layout_three.xml b/core/tests/ResourceLoaderTests/resources/provider3/res/layout/layout.xml
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/layout/layout_three.xml
rename to core/tests/ResourceLoaderTests/resources/provider3/res/layout/layout.xml
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml b/core/tests/ResourceLoaderTests/resources/provider3/res/values/values.xml
similarity index 78%
copy from core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
copy to core/tests/ResourceLoaderTests/resources/provider3/res/values/values.xml
index 82cd6ec..ab75bfa 100644
--- a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
+++ b/core/tests/ResourceLoaderTests/resources/provider3/res/values/values.xml
@@ -16,6 +16,9 @@
   -->
 
 <resources>
-    <public type="string" name="cancel" id="0x01040000" />
-    <string name="cancel">SomeRidiculouslyUnlikelyStringThree</string>
-</resources>
+    <dimen name="test">300dp</dimen>
+    <string name="test">Three</string>
+
+    <string name="additional">Three</string>
+    <public type="string" name="additional" id="0x7f0400fe" />
+</resources>
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/provider4/assets/asset.txt b/core/tests/ResourceLoaderTests/resources/provider4/assets/asset.txt
new file mode 100644
index 0000000..ad70cdd
--- /dev/null
+++ b/core/tests/ResourceLoaderTests/resources/provider4/assets/asset.txt
@@ -0,0 +1 @@
+Four
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/provider4/assets/loader_asset.txt b/core/tests/ResourceLoaderTests/resources/provider4/assets/loader_asset.txt
new file mode 100644
index 0000000..b75d996
--- /dev/null
+++ b/core/tests/ResourceLoaderTests/resources/provider4/assets/loader_asset.txt
@@ -0,0 +1 @@
+LoaderFour
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetBitmapWhite.png b/core/tests/ResourceLoaderTests/resources/provider4/res/drawable-nodpi/drawable_png.png
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetBitmapWhite.png
rename to core/tests/ResourceLoaderTests/resources/provider4/res/drawable-nodpi/drawable_png.png
Binary files differ
diff --git a/core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetDrawableFour.xml b/core/tests/ResourceLoaderTests/resources/provider4/res/drawable-nodpi/drawable_xml.xml
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/drawable-nodpi/nonAssetDrawableFour.xml
rename to core/tests/ResourceLoaderTests/resources/provider4/res/drawable-nodpi/drawable_xml.xml
diff --git a/core/tests/ResourceLoaderTests/resources/res/layout/layout_four.xml b/core/tests/ResourceLoaderTests/resources/provider4/res/layout/layout.xml
similarity index 100%
rename from core/tests/ResourceLoaderTests/resources/res/layout/layout_four.xml
rename to core/tests/ResourceLoaderTests/resources/provider4/res/layout/layout.xml
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml b/core/tests/ResourceLoaderTests/resources/provider4/res/values/values.xml
similarity index 78%
copy from core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
copy to core/tests/ResourceLoaderTests/resources/provider4/res/values/values.xml
index 82cd6ec..896993e 100644
--- a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
+++ b/core/tests/ResourceLoaderTests/resources/provider4/res/values/values.xml
@@ -16,6 +16,9 @@
   -->
 
 <resources>
-    <public type="string" name="cancel" id="0x01040000" />
-    <string name="cancel">SomeRidiculouslyUnlikelyStringThree</string>
-</resources>
+    <dimen name="test">400dp</dimen>
+    <string name="test">Four</string>
+
+    <string name="additional">Four</string>
+    <public type="string" name="additional" id="0x7f0400fe" />
+</resources>
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/dimen_three.xml b/core/tests/ResourceLoaderTests/resources/provider_additional/res/values/values.xml
similarity index 85%
rename from core/tests/ResourceLoaderTests/resources/res/values/dimen_three.xml
rename to core/tests/ResourceLoaderTests/resources/provider_additional/res/values/values.xml
index 07a35ce..29918d7 100644
--- a/core/tests/ResourceLoaderTests/resources/res/values/dimen_three.xml
+++ b/core/tests/ResourceLoaderTests/resources/provider_additional/res/values/values.xml
@@ -16,6 +16,5 @@
   -->
 
 <resources>
-    <public type="dimen" name="app_icon_size" id="0x01050000" />
-    <dimen name="app_icon_size">300dp</dimen>
+    <public type="string" name="additional" id="0x7f0400fe" />
 </resources>
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml b/core/tests/ResourceLoaderTests/resources/provider_stable/res/values/public.xml
similarity index 69%
copy from core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
copy to core/tests/ResourceLoaderTests/resources/provider_stable/res/values/public.xml
index 82cd6ec..269c40f 100644
--- a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
+++ b/core/tests/ResourceLoaderTests/resources/provider_stable/res/values/public.xml
@@ -16,6 +16,9 @@
   -->
 
 <resources>
-    <public type="string" name="cancel" id="0x01040000" />
-    <string name="cancel">SomeRidiculouslyUnlikelyStringThree</string>
-</resources>
+    <public type="dimen" name="test" id="0x7f010000" />
+    <public type="drawable" name="drawable_png" id="0x7f020000" />
+    <public type="drawable" name="drawable_xml" id="0x7f020001" />
+    <public type="layout" name="layout" id="0x7f030000" />
+    <public type="string" name="test" id="0x7f040000" />
+</resources>
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/activity_list_item_id.xml b/core/tests/ResourceLoaderTests/resources/res/values/activity_list_item_id.xml
deleted file mode 100644
index a552431..0000000
--- a/core/tests/ResourceLoaderTests/resources/res/values/activity_list_item_id.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-    <public type="layout" name="activity_list_item" id="0x01090000" />
-</resources>
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/dimen_four.xml b/core/tests/ResourceLoaderTests/resources/res/values/dimen_four.xml
deleted file mode 100644
index 5b30eba..0000000
--- a/core/tests/ResourceLoaderTests/resources/res/values/dimen_four.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2020 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<resources>
-    <public type="dimen" name="app_icon_size" id="0x01050000" />
-    <dimen name="app_icon_size">400dp</dimen>
-</resources>
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/dimen_one.xml b/core/tests/ResourceLoaderTests/resources/res/values/dimen_one.xml
deleted file mode 100644
index b17ec1c..0000000
--- a/core/tests/ResourceLoaderTests/resources/res/values/dimen_one.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-    <public type="dimen" name="app_icon_size" id="0x01050000" />
-    <dimen name="app_icon_size">100dp</dimen>
-</resources>
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/dimen_two.xml b/core/tests/ResourceLoaderTests/resources/res/values/dimen_two.xml
deleted file mode 100644
index 570b40a..0000000
--- a/core/tests/ResourceLoaderTests/resources/res/values/dimen_two.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-    <public type="dimen" name="app_icon_size" id="0x01050000" />
-    <dimen name="app_icon_size">200dp</dimen>
-</resources>
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/drawable_one.xml b/core/tests/ResourceLoaderTests/resources/res/values/drawable_one.xml
deleted file mode 100644
index b5b4dfd..0000000
--- a/core/tests/ResourceLoaderTests/resources/res/values/drawable_one.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-    <public type="drawable" name="ic_delete" id="0x0108001d" />
-</resources>
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/layout_id.xml b/core/tests/ResourceLoaderTests/resources/res/values/layout_id.xml
deleted file mode 100644
index 4962a07..0000000
--- a/core/tests/ResourceLoaderTests/resources/res/values/layout_id.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<resources>
-    <public type="layout" name="layout" id="0x7f020000" />
-</resources>
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/non_asset_drawable_id.xml b/core/tests/ResourceLoaderTests/resources/res/values/non_asset_drawable_id.xml
deleted file mode 100644
index bdd6f58..0000000
--- a/core/tests/ResourceLoaderTests/resources/res/values/non_asset_drawable_id.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<resources>
-    <public type="drawable" name="non_asset_drawable" id="0x7f010001" />
-</resources>
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/string_four.xml b/core/tests/ResourceLoaderTests/resources/res/values/string_four.xml
deleted file mode 100644
index 8789bcd..0000000
--- a/core/tests/ResourceLoaderTests/resources/res/values/string_four.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2020 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<resources>
-    <public type="string" name="cancel" id="0x01040000" />
-    <string name="cancel">SomeRidiculouslyUnlikelyStringFour</string>
-</resources>
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/string_one.xml b/core/tests/ResourceLoaderTests/resources/res/values/string_one.xml
deleted file mode 100644
index 4fc5272..0000000
--- a/core/tests/ResourceLoaderTests/resources/res/values/string_one.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-    <public type="string" name="cancel" id="0x01040000" />
-    <string name="cancel">SomeRidiculouslyUnlikelyStringOne</string>
-</resources>
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/string_two.xml b/core/tests/ResourceLoaderTests/resources/res/values/string_two.xml
deleted file mode 100644
index 3604d7b..0000000
--- a/core/tests/ResourceLoaderTests/resources/res/values/string_two.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-    <public type="string" name="cancel" id="0x01040000" />
-    <string name="cancel">SomeRidiculouslyUnlikelyStringTwo</string>
-</resources>
diff --git a/core/tests/ResourceLoaderTests/splits/SplitFour/Android.bp b/core/tests/ResourceLoaderTests/splits/SplitFour/Android.bp
deleted file mode 100644
index eb4d8e1..0000000
--- a/core/tests/ResourceLoaderTests/splits/SplitFour/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2019 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-android_test_helper_app {
-    name: "FrameworksResourceLoaderTestsSplitFour"
-}
diff --git a/core/tests/ResourceLoaderTests/splits/SplitFour/res/values/string_split.xml b/core/tests/ResourceLoaderTests/splits/SplitFour/res/values/string_split.xml
deleted file mode 100644
index 4759db9..0000000
--- a/core/tests/ResourceLoaderTests/splits/SplitFour/res/values/string_split.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2020 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<resources>
-    <public type="string" name="split_overlaid" id="0x7f040001" />
-    <string name="split_overlaid">Split FOUR Overlaid</string>
-</resources>
diff --git a/core/tests/ResourceLoaderTests/splits/SplitOne/Android.bp b/core/tests/ResourceLoaderTests/splits/SplitOne/Android.bp
deleted file mode 100644
index 897897f..0000000
--- a/core/tests/ResourceLoaderTests/splits/SplitOne/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2019 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-android_test_helper_app {
-    name: "FrameworksResourceLoaderTestsSplitOne"
-}
diff --git a/core/tests/ResourceLoaderTests/splits/SplitOne/res/values/string_split.xml b/core/tests/ResourceLoaderTests/splits/SplitOne/res/values/string_split.xml
deleted file mode 100644
index 3c215eb..0000000
--- a/core/tests/ResourceLoaderTests/splits/SplitOne/res/values/string_split.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<resources>
-    <public type="string" name="split_overlaid" id="0x7f040001" />
-    <string name="split_overlaid">Split ONE Overlaid</string>
-</resources>
diff --git a/core/tests/ResourceLoaderTests/splits/SplitThree/Android.bp b/core/tests/ResourceLoaderTests/splits/SplitThree/Android.bp
deleted file mode 100644
index bf98a74..0000000
--- a/core/tests/ResourceLoaderTests/splits/SplitThree/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2019 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-android_test_helper_app {
-    name: "FrameworksResourceLoaderTestsSplitThree"
-}
diff --git a/core/tests/ResourceLoaderTests/splits/SplitThree/AndroidManifest.xml b/core/tests/ResourceLoaderTests/splits/SplitThree/AndroidManifest.xml
deleted file mode 100644
index ae1579b..0000000
--- a/core/tests/ResourceLoaderTests/splits/SplitThree/AndroidManifest.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2020 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<manifest
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    package="android.content.res.loader.test"
-    split="split_three"
-    >
-
-    <uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
-    <application android:hasCode="false" />
-
-</manifest>
diff --git a/core/tests/ResourceLoaderTests/splits/SplitThree/res/values/string_spli.xml b/core/tests/ResourceLoaderTests/splits/SplitThree/res/values/string_spli.xml
deleted file mode 100644
index 97682aa..0000000
--- a/core/tests/ResourceLoaderTests/splits/SplitThree/res/values/string_spli.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2020 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<resources>
-    <public type="string" name="split_overlaid" id="0x7f040001" />
-    <string name="split_overlaid">Split THREE Overlaid</string>
-</resources>
diff --git a/core/tests/ResourceLoaderTests/splits/SplitTwo/Android.bp b/core/tests/ResourceLoaderTests/splits/SplitTwo/Android.bp
deleted file mode 100644
index 4582808..0000000
--- a/core/tests/ResourceLoaderTests/splits/SplitTwo/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2019 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-android_test_helper_app {
-    name: "FrameworksResourceLoaderTestsSplitTwo"
-}
diff --git a/core/tests/ResourceLoaderTests/splits/SplitTwo/AndroidManifest.xml b/core/tests/ResourceLoaderTests/splits/SplitTwo/AndroidManifest.xml
deleted file mode 100644
index aad8c27..0000000
--- a/core/tests/ResourceLoaderTests/splits/SplitTwo/AndroidManifest.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<manifest
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    package="android.content.res.loader.test"
-    split="split_two"
-    >
-
-    <uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
-    <application android:hasCode="false" />
-
-</manifest>
diff --git a/core/tests/ResourceLoaderTests/splits/SplitTwo/res/values/string_split.xml b/core/tests/ResourceLoaderTests/splits/SplitTwo/res/values/string_split.xml
deleted file mode 100644
index a367063..0000000
--- a/core/tests/ResourceLoaderTests/splits/SplitTwo/res/values/string_split.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<resources>
-    <public type="string" name="split_overlaid" id="0x7f040001" />
-    <string name="split_overlaid">Split TWO Overlaid</string>
-</resources>
diff --git a/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/DirectoryAssetsProviderTest.kt b/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/DirectoryAssetsProviderTest.kt
deleted file mode 100644
index afe9d7f..0000000
--- a/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/DirectoryAssetsProviderTest.kt
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content.res.loader.test
-
-import android.content.res.loader.AssetsProvider
-import android.content.res.loader.DirectoryAssetsProvider
-import android.content.res.loader.ResourcesLoader
-import android.graphics.Color
-import android.graphics.drawable.BitmapDrawable
-import android.graphics.drawable.ColorDrawable
-import com.google.common.truth.Truth.assertThat
-import org.junit.After
-import org.junit.Before
-import org.junit.Rule
-import org.junit.Test
-import org.junit.rules.TestName
-import java.io.File
-
-class DirectoryAssetsProviderTest : ResourceLoaderTestBase() {
-
-    @get:Rule
-    val testName = TestName()
-
-    private lateinit var testDir: File
-    private lateinit var assetsProvider: AssetsProvider
-    private lateinit var loader: ResourcesLoader
-
-    @Before
-    fun setUpTestDir() {
-        testDir = context.filesDir.resolve("DirectoryAssetsProvider_${testName.methodName}")
-        assetsProvider = DirectoryAssetsProvider(testDir)
-        loader = ResourcesLoader()
-        resources.addLoaders(loader)
-    }
-
-    @After
-    fun deleteTestFiles() {
-        testDir.deleteRecursively()
-    }
-
-    @Test
-    fun loadDrawableXml() {
-        "nonAssetDrawableOne" writeTo "res/drawable-nodpi-v4/non_asset_drawable.xml"
-        val provider = openArsc("nonAssetDrawableOne", assetsProvider)
-
-        fun getValue() = (resources.getDrawable(R.drawable.non_asset_drawable) as ColorDrawable)
-                .color
-
-        assertThat(getValue()).isEqualTo(Color.parseColor("#B2D2F2"))
-
-        loader.addProvider(provider)
-
-        assertThat(getValue()).isEqualTo(Color.parseColor("#000001"))
-    }
-
-    @Test
-    fun loadDrawableBitmap() {
-        "nonAssetBitmapGreen" writeTo "res/drawable-nodpi-v4/non_asset_bitmap.png"
-        val provider = openArsc("nonAssetBitmapGreen", assetsProvider)
-
-        fun getValue() = (resources.getDrawable(R.drawable.non_asset_bitmap) as BitmapDrawable)
-                .bitmap.getColor(0, 0).toArgb()
-
-        assertThat(getValue()).isEqualTo(Color.MAGENTA)
-
-        loader.addProvider(provider)
-
-        assertThat(getValue()).isEqualTo(Color.GREEN)
-    }
-
-    @Test
-    fun loadXml() {
-        "layoutOne" writeTo "res/layout/layout.xml"
-        val provider = openArsc("layoutOne", assetsProvider)
-
-        fun getValue() = resources.getLayout(R.layout.layout).advanceToRoot().name
-
-        assertThat(getValue()).isEqualTo("MysteryLayout")
-
-        loader.addProvider(provider)
-
-        assertThat(getValue()).isEqualTo("RelativeLayout")
-    }
-
-    private infix fun String.writeTo(path: String) {
-        val testFile = testDir.resolve(path)
-        testFile.parentFile!!.mkdirs()
-        resources.openRawResource(rawFile(this))
-                .copyTo(testFile.outputStream())
-    }
-}
diff --git a/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/ResourceLoaderAssetsTest.kt b/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/ResourceLoaderAssetsTest.kt
deleted file mode 100644
index da5092d..0000000
--- a/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/ResourceLoaderAssetsTest.kt
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content.res.loader.test
-
-import android.content.res.AssetManager
-import android.content.res.loader.AssetsProvider
-import android.content.res.loader.DirectoryAssetsProvider
-import android.content.res.loader.ResourcesLoader
-import android.content.res.loader.ResourcesProvider
-import com.google.common.truth.Truth.assertThat
-import org.junit.Before
-import org.junit.Rule
-import org.junit.Test
-import org.junit.rules.TestName
-import org.junit.runner.RunWith
-import org.junit.runners.Parameterized
-import org.mockito.Mockito.anyInt
-import org.mockito.Mockito.anyString
-import org.mockito.Mockito.doAnswer
-import org.mockito.Mockito.doReturn
-import org.mockito.Mockito.eq
-import org.mockito.Mockito.inOrder
-import org.mockito.Mockito.mock
-import java.io.File
-import java.io.FileNotFoundException
-import java.io.IOException
-import java.nio.file.Paths
-
-@RunWith(Parameterized::class)
-class ResourceLoaderAssetsTest : ResourceLoaderTestBase() {
-
-    companion object {
-        private const val BASE_TEST_PATH = "android/content/res/loader/test/file.txt"
-        private const val TEST_TEXT = "some text"
-
-        @JvmStatic
-        @Parameterized.Parameters(name = "{0}")
-        fun parameters(): Array<Array<out Any?>> {
-            val fromInputStream: AssetsProvider.(String) -> Any? = {
-                loadAsset(eq(it), anyInt())
-            }
-
-            val fromFileDescriptor: AssetsProvider.(String) -> Any? = {
-                loadAssetParcelFd(eq(it))
-            }
-
-            val openAsset: AssetManager.() -> String? = {
-                open(BASE_TEST_PATH).reader().readText()
-            }
-
-            val openNonAsset: AssetManager.() -> String? = {
-                openNonAssetFd(BASE_TEST_PATH).readText()
-            }
-
-            return arrayOf(
-                    arrayOf("assets", fromInputStream, openAsset),
-                    arrayOf("", fromFileDescriptor, openNonAsset)
-            )
-        }
-    }
-
-    @get:Rule
-    val testName = TestName()
-
-    @JvmField
-    @field:Parameterized.Parameter(0)
-    var prefix: String? = null
-
-    @field:Parameterized.Parameter(1)
-    lateinit var loadAssetFunction: AssetsProvider.(String) -> Any?
-
-    @field:Parameterized.Parameter(2)
-    lateinit var openAssetFunction: AssetManager.() -> String?
-
-    private val testPath: String
-        get() = Paths.get(prefix.orEmpty(), BASE_TEST_PATH).toString()
-
-    private fun AssetsProvider.loadAsset() = loadAssetFunction(testPath)
-
-    private fun AssetManager.openAsset() = openAssetFunction()
-
-    private lateinit var testDir: File
-
-    @Before
-    fun setUpTestDir() {
-        testDir = context.filesDir.resolve("DirectoryAssetsProvider_${testName.methodName}")
-        testDir.resolve(testPath).apply { parentFile!!.mkdirs() }.writeText(TEST_TEXT)
-    }
-
-    @Test
-    fun multipleProvidersSearchesBackwards() {
-        // DirectoryResourceLoader relies on a private field and can't be spied directly, so wrap it
-        val assetsProvider = DirectoryAssetsProvider(testDir)
-        val assetProviderWrapper = mock(AssetsProvider::class.java).apply {
-            doAnswer { assetsProvider.loadAsset(it.arguments[0] as String, it.arguments[1] as Int) }
-                    .`when`(this).loadAsset(anyString(), anyInt())
-            doAnswer { assetsProvider.loadAssetParcelFd(it.arguments[0] as String) }
-                    .`when`(this).loadAssetParcelFd(anyString())
-        }
-
-        val one = ResourcesProvider.empty(assetProviderWrapper)
-        val two = mockProvider {
-            doReturn(null).`when`(it).loadAsset()
-        }
-
-        val loader = ResourcesLoader()
-        loader.providers = listOf(one, two)
-        resources.addLoaders(loader)
-
-        assertOpenedAsset()
-        inOrder(two.assetsProvider, one.assetsProvider).apply {
-            verify(two.assetsProvider)?.loadAsset()
-            verify(one.assetsProvider)?.loadAsset()
-        }
-    }
-
-    @Test
-    fun multipleLoadersSearchesBackwards() {
-        // DirectoryResourceLoader relies on a private field and can't be spied directly, so wrap it
-        val assetsProvider = DirectoryAssetsProvider(testDir)
-        val assetProviderWrapper = mock(AssetsProvider::class.java).apply {
-            doAnswer { assetsProvider.loadAsset(it.arguments[0] as String, it.arguments[1] as Int) }
-                    .`when`(this).loadAsset(anyString(), anyInt())
-            doAnswer { assetsProvider.loadAssetParcelFd(it.arguments[0] as String) }
-                    .`when`(this).loadAssetParcelFd(anyString())
-        }
-
-        val one = ResourcesProvider.empty(assetProviderWrapper)
-        val two = mockProvider {
-            doReturn(null).`when`(it).loadAsset()
-        }
-
-        val loader1 = ResourcesLoader()
-        loader1.addProvider(one)
-        val loader2 = ResourcesLoader()
-        loader2.addProvider(two)
-
-        resources.addLoaders(loader1, loader2)
-
-        assertOpenedAsset()
-        inOrder(two.assetsProvider, one.assetsProvider).apply {
-            verify(two.assetsProvider)?.loadAsset()
-            verify(one.assetsProvider)?.loadAsset()
-        }
-    }
-
-    @Test(expected = FileNotFoundException::class)
-    fun failToFindThrowsFileNotFound() {
-        val assetsProvider1 = mock(AssetsProvider::class.java).apply {
-            doReturn(null).`when`(this).loadAsset()
-        }
-        val assetsProvider2 = mock(AssetsProvider::class.java).apply {
-            doReturn(null).`when`(this).loadAsset()
-        }
-
-        val loader = ResourcesLoader()
-        val one = ResourcesProvider.empty(assetsProvider1)
-        val two = ResourcesProvider.empty(assetsProvider2)
-        resources.addLoaders(loader)
-        loader.providers = listOf(one, two)
-
-        assertOpenedAsset()
-    }
-
-    @Test
-    fun throwingIOExceptionIsSkipped() {
-        val assetsProvider1 = DirectoryAssetsProvider(testDir)
-        val assetsProvider2 = mock(AssetsProvider::class.java).apply {
-            doAnswer { throw IOException() }.`when`(this).loadAsset()
-        }
-
-        val loader = ResourcesLoader()
-        val one = ResourcesProvider.empty(assetsProvider1)
-        val two = ResourcesProvider.empty(assetsProvider2)
-        resources.addLoaders(loader)
-        loader.providers = listOf(one, two)
-
-        assertOpenedAsset()
-    }
-
-    @Test(expected = IllegalStateException::class)
-    fun throwingNonIOExceptionCausesFailure() {
-        val assetsProvider1 = DirectoryAssetsProvider(testDir)
-        val assetsProvider2 = mock(AssetsProvider::class.java).apply {
-            doAnswer { throw IllegalStateException() }.`when`(this).loadAsset()
-        }
-
-        val loader = ResourcesLoader()
-        val one = ResourcesProvider.empty(assetsProvider1)
-        val two = ResourcesProvider.empty(assetsProvider2)
-        resources.addLoaders(loader)
-        loader.providers = listOf(one, two)
-
-        assertOpenedAsset()
-    }
-
-    private fun mockProvider(block: (AssetsProvider) -> Unit = {}): ResourcesProvider {
-        return ResourcesProvider.empty(mock(AssetsProvider::class.java).apply {
-            block.invoke(this)
-        })
-    }
-
-    private fun assertOpenedAsset() {
-        assertThat(resources.assets.openAsset()).isEqualTo(TEST_TEXT)
-    }
-}
diff --git a/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/ResourceLoaderTestBase.kt b/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/ResourceLoaderTestBase.kt
index 4c62955..ec6a605 100644
--- a/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/ResourceLoaderTestBase.kt
+++ b/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/ResourceLoaderTestBase.kt
@@ -17,29 +17,58 @@
 package android.content.res.loader.test
 
 import android.content.Context
-import android.content.res.AssetManager
+import android.content.res.AssetFileDescriptor
+import android.content.res.Configuration
 import android.content.res.Resources
 import android.content.res.loader.AssetsProvider
 import android.content.res.loader.ResourcesProvider
 import android.os.ParcelFileDescriptor
+import android.system.Os
+import android.util.ArrayMap
 import androidx.test.InstrumentationRegistry
+import org.json.JSONObject
 import org.junit.After
 import org.junit.Before
-import org.mockito.ArgumentMatchers.anyInt
-import org.mockito.ArgumentMatchers.eq
-import org.mockito.Mockito.doAnswer
-import org.mockito.Mockito.mock
 import java.io.Closeable
+import java.io.FileOutputStream
+import java.io.File
+import java.io.FileDescriptor
+import java.util.zip.ZipInputStream
 
 abstract class ResourceLoaderTestBase {
+    protected val PROVIDER_ONE: String = "FrameworksResourceLoaderTests_ProviderOne"
+    protected val PROVIDER_TWO: String = "FrameworksResourceLoaderTests_ProviderTwo"
+    protected val PROVIDER_THREE: String = "FrameworksResourceLoaderTests_ProviderThree"
+    protected val PROVIDER_FOUR: String = "FrameworksResourceLoaderTests_ProviderFour"
+    protected val PROVIDER_EMPTY: String = "empty"
 
+    companion object {
+        /** Converts the map to a stable JSON string representation. */
+        fun mapToString(m: Map<String, String>): String {
+            return JSONObject(ArrayMap<String, String>().apply { putAll(m) }).toString()
+        }
+
+        /** Creates a lambda that runs multiple resources queries and concatenates the results. */
+        fun query(queries: Map<String, (Resources) -> String>): Resources.() -> String {
+            return {
+                val resultMap = ArrayMap<String, String>()
+                queries.forEach { q ->
+                    resultMap[q.key] = try {
+                        q.value.invoke(this)
+                    } catch (e: Exception) {
+                        e.javaClass.simpleName
+                    }
+                }
+                mapToString(resultMap)
+            }
+        }
+    }
+
+    // Data type of the current test iteration
     open lateinit var dataType: DataType
 
     protected lateinit var context: Context
-    protected open val resources: Resources
-        get() = context.resources
-    protected open val assets: AssetManager
-        get() = resources.assets
+    protected lateinit var resources: Resources
 
     // Track opened streams and ResourcesProviders to close them after testing
     private val openedObjects = mutableListOf<Closeable>()
@@ -47,6 +76,8 @@
     @Before
     fun setUpBase() {
         context = InstrumentationRegistry.getTargetContext()
+                .createConfigurationContext(Configuration())
+        resources = context.resources
     }
 
     @After
@@ -61,82 +92,207 @@
         }
     }
 
-    protected fun String.openProvider(
-        dataType: DataType = this@ResourceLoaderTestBase.dataType
-    ): ResourcesProvider = when (dataType) {
-        DataType.APK -> {
-            context.copiedRawFile("${this}Apk").use {
-                ResourcesProvider.loadFromApk(it, mock(AssetsProvider::class.java))
-            }.also { openedObjects += it }
+    protected fun String.openProvider(dataType: DataType,
+                                      assetsProvider: MemoryAssetsProvider?): ResourcesProvider {
+        if (assetsProvider != null) {
+            openedObjects += assetsProvider
         }
-        DataType.ARSC -> {
-            openArsc(this, mock(AssetsProvider::class.java))
-        }
-        DataType.SPLIT -> {
-            ResourcesProvider.loadFromSplit(context, this)
-        }
-        DataType.ASSET -> {
-            val assetsProvider = mock(AssetsProvider::class.java)
-            doAnswer { byteInputStream() }.`when`(assetsProvider)
-                    .loadAsset(eq("assets/Asset.txt"), anyInt())
-            ResourcesProvider.empty(assetsProvider)
-        }
-        DataType.ASSET_FD -> {
-            val assetsProvider = mock(AssetsProvider::class.java)
-            doAnswer {
-                val file = context.filesDir.resolve("Asset.txt")
-                file.writeText(this)
-                ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY)
-            }.`when`(assetsProvider).loadAssetParcelFd("assets/Asset.txt")
-            ResourcesProvider.empty(assetsProvider)
-        }
-        DataType.NON_ASSET -> {
-            val assetsProvider = mock(AssetsProvider::class.java)
-            doAnswer {
-                val file = context.filesDir.resolve("NonAsset.txt")
-                file.writeText(this)
-                ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY)
-            }.`when`(assetsProvider).loadAssetParcelFd("NonAsset.txt")
-            ResourcesProvider.empty(assetsProvider)
-        }
-        DataType.NON_ASSET_DRAWABLE -> {
-            val assetsProvider = mock(AssetsProvider::class.java)
-            doAnswer { context.copiedRawFile(this) }.`when`(assetsProvider)
-                    .loadAssetParcelFd("res/drawable-nodpi-v4/non_asset_drawable.xml")
-            openArsc(this, assetsProvider)
-        }
-        DataType.NON_ASSET_BITMAP -> {
-            val assetsProvider = mock(AssetsProvider::class.java)
-            doAnswer { resources.openRawResource(rawFile(this)) }
-                    .`when`(assetsProvider)
-                    .loadAsset(eq("res/drawable-nodpi-v4/non_asset_bitmap.png"), anyInt())
-            openArsc(this, assetsProvider)
-        }
-        DataType.NON_ASSET_LAYOUT -> {
-            val assetsProvider = mock(AssetsProvider::class.java)
-            doAnswer { resources.openRawResource(rawFile(this)) }.`when`(assetsProvider)
-                    .loadAsset(eq("res/layout/layout.xml"), anyInt())
-            doAnswer { context.copiedRawFile(this) }.`when`(assetsProvider)
-                    .loadAssetParcelFd("res/layout/layout.xml")
-            openArsc(this, assetsProvider)
+        return when (dataType) {
+            DataType.APK_DISK_FD -> {
+                val file = context.copiedAssetFile("$this.apk")
+                ResourcesProvider.loadFromApk(ParcelFileDescriptor.fromFd(file.fd),
+                        assetsProvider).apply {
+                    file.close()
+                }
+            }
+            DataType.APK_DISK_FD_OFFSETS -> {
+                val asset = context.assets.openFd("$this.apk")
+                ResourcesProvider.loadFromApk(asset.parcelFileDescriptor, asset.startOffset,
+                        asset.length, assetsProvider).apply {
+                    asset.close()
+                }
+            }
+            DataType.ARSC_DISK_FD -> {
+                val file = context.copiedAssetFile("$this.arsc")
+                ResourcesProvider.loadFromTable(ParcelFileDescriptor.fromFd(file.fd),
+                        assetsProvider).apply {
+                    file.close()
+                }
+            }
+            DataType.ARSC_DISK_FD_OFFSETS -> {
+                val asset = context.assets.openFd("$this.arsc")
+                ResourcesProvider.loadFromTable(asset.parcelFileDescriptor, asset.startOffset,
+                        asset.length, assetsProvider).apply {
+                    asset.close()
+                }
+            }
+            DataType.APK_RAM_OFFSETS -> {
+                val asset = context.assets.openFd("$this.apk")
+                val leadingGarbageSize = 100L
+                val trailingGarbageSize = 55L
+                val fd = loadAssetIntoMemory(asset, leadingGarbageSize.toInt(),
+                        trailingGarbageSize.toInt())
+                ResourcesProvider.loadFromApk(fd, leadingGarbageSize, asset.declaredLength,
+                        assetsProvider).apply {
+                    asset.close()
+                    fd.close()
+                }
+            }
+            DataType.APK_RAM_FD -> {
+                val asset = context.assets.openFd("$this.apk")
+                var fd = loadAssetIntoMemory(asset)
+                ResourcesProvider.loadFromApk(fd, assetsProvider).apply {
+                    asset.close()
+                    fd.close()
+                }
+            }
+            DataType.ARSC_RAM_MEMORY -> {
+                val asset = context.assets.openFd("$this.arsc")
+                var fd = loadAssetIntoMemory(asset)
+                ResourcesProvider.loadFromTable(fd, assetsProvider).apply {
+                    asset.close()
+                    fd.close()
+                }
+            }
+            DataType.ARSC_RAM_MEMORY_OFFSETS -> {
+                val asset = context.assets.openFd("$this.arsc")
+                val leadingGarbageSize = 100L
+                val trailingGarbageSize = 55L
+                val fd = loadAssetIntoMemory(asset, leadingGarbageSize.toInt(),
+                        trailingGarbageSize.toInt())
+                ResourcesProvider.loadFromTable(fd, leadingGarbageSize, asset.declaredLength,
+                        assetsProvider).apply {
+                    asset.close()
+                    fd.close()
+                }
+            }
+            DataType.EMPTY -> {
+                if (equals(PROVIDER_EMPTY)) {
+                    ResourcesProvider.empty(EmptyAssetsProvider())
+                } else {
+                    if (assetsProvider == null) ResourcesProvider.empty(ZipAssetsProvider(this))
+                        else ResourcesProvider.empty(assetsProvider)
+                }
+            }
+            DataType.DIRECTORY -> {
+                ResourcesProvider.loadFromDirectory(zipToDir("$this.apk").absolutePath,
+                        assetsProvider)
+            }
+            DataType.SPLIT -> {
+                ResourcesProvider.loadFromSplit(context, "${this}_Split")
+            }
         }
     }
 
-    protected fun openArsc(rawName: String, assetsProvider: AssetsProvider): ResourcesProvider {
-        return context.copiedRawFile("${rawName}Arsc")
-                .use { ResourcesProvider.loadFromTable(it, assetsProvider) }
-                .also { openedObjects += it }
+    class EmptyAssetsProvider : AssetsProvider
+
+    /** An AssetsProvider that reads from a zip asset. */
+    inner class ZipAssetsProvider(val providerName: String) : AssetsProvider {
+        val root: File = zipToDir("$providerName.apk")
+
+        override fun loadAssetFd(path: String, accessMode: Int): AssetFileDescriptor? {
+            val f = File(root, path)
+            return if (f.exists()) AssetFileDescriptor(
+                    ParcelFileDescriptor.open(File(root, path),
+                            ParcelFileDescriptor.MODE_READ_ONLY), 0,
+                    AssetFileDescriptor.UNKNOWN_LENGTH) else null
+        }
+    }
+
+    /** AssetsProvider for testing that returns file descriptors to files in RAM. */
+    class MemoryAssetsProvider : AssetsProvider, Closeable {
+        var loadAssetResults = HashMap<String, FileDescriptor>()
+
+        fun addLoadAssetFdResult(path: String, value: String) = apply {
+            val fd = Os.memfd_create(path, 0)
+            val valueBytes = value.toByteArray()
+            Os.write(fd, valueBytes, 0, valueBytes.size)
+            loadAssetResults[path] = fd
+        }
+
+        override fun loadAssetFd(path: String, accessMode: Int): AssetFileDescriptor? {
+            return if (loadAssetResults.containsKey(path)) AssetFileDescriptor(
+                    ParcelFileDescriptor.dup(loadAssetResults[path]), 0,
+                    AssetFileDescriptor.UNKNOWN_LENGTH) else null
+        }
+
+        override fun close() {
+            for (f in loadAssetResults.values) {
+                Os.close(f)
+            }
+        }
+    }
+
+    /** Extracts an archive-based asset into a directory on disk. */
+    private fun zipToDir(name: String): File {
+        val root = File(context.filesDir, name.split('.')[0])
+        if (root.exists()) {
+            return root
+        }
+
+        root.mkdir()
+        ZipInputStream(context.assets.open(name)).use { zis ->
+            while (true) {
+                val entry = zis.nextEntry ?: break
+                val file = File(root, entry.name)
+                if (entry.isDirectory) {
+                    continue
+                }
+
+                file.parentFile.mkdirs()
+                file.outputStream().use { output ->
+                    var b = zis.read()
+                    while (b != -1) {
+                        output.write(b)
+                        b = zis.read()
+                    }
+                }
+            }
+        }
+        return root
+    }
+
+    /** Loads the asset into a temporary file stored in RAM. */
+    private fun loadAssetIntoMemory(
+        asset: AssetFileDescriptor,
+        leadingGarbageSize: Int = 0,
+        trailingGarbageSize: Int = 0
+    ): ParcelFileDescriptor {
+        val originalFd = Os.memfd_create(asset.toString(), 0 /* flags */)
+        val fd = ParcelFileDescriptor.dup(originalFd)
+        Os.close(originalFd)
+
+        val input = asset.createInputStream()
+        FileOutputStream(fd.fileDescriptor).use { output ->
+            // Add garbage before the APK data
+            for (i in 0 until leadingGarbageSize) {
+                output.write(Math.random().toInt())
+            }
+
+            for (i in 0 until asset.length.toInt()) {
+                output.write(input.read())
+            }
+
+            // Add garbage after the APK data
+            for (i in 0 until trailingGarbageSize) {
+                output.write(Math.random().toInt())
+            }
+        }
+
+        return fd
     }
 
     enum class DataType {
-        APK,
-        ARSC,
-        SPLIT,
-        ASSET,
-        ASSET_FD,
-        NON_ASSET,
-        NON_ASSET_DRAWABLE,
-        NON_ASSET_BITMAP,
-        NON_ASSET_LAYOUT,
+        APK_DISK_FD,
+        APK_DISK_FD_OFFSETS,
+        APK_RAM_FD,
+        APK_RAM_OFFSETS,
+        ARSC_DISK_FD,
+        ARSC_DISK_FD_OFFSETS,
+        ARSC_RAM_MEMORY,
+        ARSC_RAM_MEMORY_OFFSETS,
+        EMPTY,
+        DIRECTORY,
+        SPLIT
     }
 }
diff --git a/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/ResourceLoaderValuesTest.kt b/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/ResourceLoaderValuesTest.kt
index 16eafcd..5aa8814 100644
--- a/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/ResourceLoaderValuesTest.kt
+++ b/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/ResourceLoaderValuesTest.kt
@@ -19,6 +19,7 @@
 import android.app.Activity
 import android.content.Context
 import android.content.Intent
+import android.content.res.AssetManager
 import android.content.res.Configuration
 import android.content.res.Resources
 import android.content.res.loader.ResourcesLoader
@@ -54,98 +55,177 @@
         fun parameters(): Array<Any> {
             val parameters = mutableListOf<Parameter>()
 
-            // R.string
+            // Test resolution of resources encoded within the resources.arsc.
             parameters += Parameter(
-                    { getString(android.R.string.cancel) },
-                    "stringOne", { "SomeRidiculouslyUnlikelyStringOne" },
-                    "stringTwo", { "SomeRidiculouslyUnlikelyStringTwo" },
-                    "stringThree", { "SomeRidiculouslyUnlikelyStringThree" },
-                    "stringFour", { "SomeRidiculouslyUnlikelyStringFour" },
-                    listOf(DataType.APK, DataType.ARSC)
+                    "tableBased",
+                    query(mapOf(
+                            "getOverlaid" to { res ->
+                                res.getString(R.string.test)
+                            },
+                            "getAdditional" to { res ->
+                                res.getString(0x7f0400fe /* R.string.additional */)
+                            },
+                            "getIdentifier" to { res ->
+                                res.getString(res.getIdentifier("test", "string",
+                                        "android.content.res.loader.test"))
+                            },
+                            "getIdentifierAdditional" to { res ->
+                                res.getString(res.getIdentifier("additional", "string",
+                                        "android.content.res.loader.test"))
+                            }
+                    )),
+                    mapOf("getOverlaid" to "Not overlaid",
+                            "getAdditional" to "NotFoundException",
+                            "getIdentifier" to "Not overlaid",
+                            "getIdentifierAdditional" to "NotFoundException"),
+
+                    mapOf("getOverlaid" to "One",
+                            "getAdditional" to "One",
+                            "getIdentifier" to "One",
+                            "getIdentifierAdditional" to "One"),
+
+                    mapOf("getOverlaid" to "Two",
+                            "getAdditional" to "Two",
+                            "getIdentifier" to "Two",
+                            "getIdentifierAdditional" to "Two"),
+
+                    mapOf("getOverlaid" to "Three",
+                            "getAdditional" to "Three",
+                            "getIdentifier" to "Three",
+                            "getIdentifierAdditional" to "Three"),
+
+                    mapOf("getOverlaid" to "Four",
+                            "getAdditional" to "Four",
+                            "getIdentifier" to "Four",
+                            "getIdentifierAdditional" to "Four"),
+                    listOf(DataType.APK_DISK_FD, DataType.APK_DISK_FD_OFFSETS, DataType.APK_RAM_FD,
+                            DataType.APK_RAM_OFFSETS, DataType.ARSC_DISK_FD,
+                            DataType.ARSC_DISK_FD_OFFSETS, DataType.ARSC_RAM_MEMORY,
+                            DataType.ARSC_RAM_MEMORY_OFFSETS, DataType.SPLIT, DataType.DIRECTORY)
             )
 
-            // R.dimen
+            // Test resolution of file-based resources and assets with no assets provider.
             parameters += Parameter(
-                    { getDimensionPixelSize(android.R.dimen.app_icon_size) },
-                    "dimenOne", { 100.dpToPx(resources) },
-                    "dimenTwo", { 200.dpToPx(resources) },
-                    "dimenThree", { 300.dpToPx(resources) },
-                    "dimenFour", { 400.dpToPx(resources) },
-                    listOf(DataType.APK, DataType.ARSC)
+                    "tableFileBased",
+                    query(mapOf(
+                            // Drawable xml in res directory
+                            "drawableXml" to { res ->
+                                (res.getDrawable(R.drawable.drawable_xml) as ColorDrawable)
+                                        .color.toString()
+                            },
+                            // Asset as compiled XML layout in res directory
+                            "layout" to { res ->
+                                res.getLayout(R.layout.layout).advanceToRoot().name
+                            },
+                            // Bitmap drawable in res directory
+                            "drawablePng" to { res ->
+                                (res.getDrawable(R.drawable.drawable_png) as BitmapDrawable)
+                                        .bitmap.getColor(0, 0).toArgb().toString()
+                            }
+                    )),
+                    mapOf("drawableXml" to Color.parseColor("#B2D2F2").toString(),
+                            "layout" to "MysteryLayout",
+                            "drawablePng" to Color.parseColor("#FF00FF").toString()),
+
+                    mapOf("drawableXml" to Color.parseColor("#000001").toString(),
+                            "layout" to "RelativeLayout",
+                            "drawablePng" to Color.RED.toString()),
+
+                    mapOf("drawableXml" to Color.parseColor("#000002").toString(),
+                            "layout" to "LinearLayout",
+                            "drawablePng" to Color.GREEN.toString()),
+
+                    mapOf("drawableXml" to Color.parseColor("#000003").toString(),
+                            "layout" to "FrameLayout",
+                            "drawablePng" to Color.BLUE.toString()),
+
+                    mapOf("drawableXml" to Color.parseColor("#000004").toString(),
+                            "layout" to "TableLayout",
+                            "drawablePng" to Color.WHITE.toString()),
+                    listOf(DataType.APK_DISK_FD, DataType.APK_DISK_FD_OFFSETS, DataType.APK_RAM_FD,
+                            DataType.APK_RAM_OFFSETS, DataType.SPLIT, DataType.DIRECTORY)
             )
 
-            // File in the assets directory
+            // Test resolution of assets.
             parameters += Parameter(
-                    { assets.open("Asset.txt").reader().readText() },
-                    "assetOne", { "assetOne" },
-                    "assetTwo", { "assetTwo" },
-                    "assetFour", { "assetFour" },
-                    "assetThree", { "assetThree" },
-                    listOf(DataType.ASSET)
+                    "fileBased",
+                    query(mapOf(
+                            // File in the assets directory
+                            "openAsset" to { res ->
+                                res.assets.open("asset.txt").reader().readText()
+                            },
+                            // From assets directory returning file descriptor
+                            "openAssetFd" to { res ->
+                                res.assets.openFd("asset.txt").readText()
+                            },
+                            // Asset as compiled XML layout in res directory
+                            "layout" to { res ->
+                                res.assets.openXmlResourceParser("res/layout/layout.xml")
+                                        .advanceToRoot().name
+                            }
+                    )),
+                    mapOf("openAsset" to "In assets directory",
+                            "openAssetFd" to "In assets directory",
+                            "layout" to "MysteryLayout"),
+
+                    mapOf("openAsset" to "One",
+                            "openAssetFd" to "One",
+                            "layout" to "RelativeLayout"),
+
+                    mapOf("openAsset" to "Two",
+                            "openAssetFd" to "Two",
+                            "layout" to "LinearLayout"),
+
+                    mapOf("openAsset" to "Three",
+                            "openAssetFd" to "Three",
+                            "layout" to "FrameLayout"),
+
+                    mapOf("openAsset" to "Four",
+                            "openAssetFd" to "Four",
+                            "layout" to "TableLayout"),
+                    listOf(DataType.EMPTY)
             )
 
-            // From assets directory returning file descriptor
+            // Test assets from apk and provider
             parameters += Parameter(
-                    { assets.openFd("Asset.txt").readText() },
-                    "assetOne", { "assetOne" },
-                    "assetTwo", { "assetTwo" },
-                    "assetFour", { "assetFour" },
-                    "assetThree", { "assetThree" },
-                    listOf(DataType.ASSET_FD)
+                    "fileBasedApkAssetsProvider",
+                    query(mapOf(
+                            // File in the assets directory
+                            "openAsset" to { res ->
+                                res.assets.open("asset.txt").reader().readText()
+                            },
+                            // From assets directory returning file descriptor
+                            "openAssetFd" to { res ->
+                                res.assets.openFd("asset.txt").readText()
+                            }
+                    )),
+                    mapOf("openAsset" to "In assets directory",
+                            "openAssetFd" to "In assets directory"),
+
+                    mapOf("openAsset" to "AssetsOne",
+                            "openAssetFd" to "AssetsOne"),
+                    { MemoryAssetsProvider().addLoadAssetFdResult("assets/asset.txt",
+                            "AssetsOne") },
+
+                    mapOf("openAsset" to "Two",
+                            "openAssetFd" to "Two"),
+                    null /* assetProviderTwo */,
+
+                    mapOf("openAsset" to "AssetsThree",
+                            "openAssetFd" to "AssetsThree"),
+                    { MemoryAssetsProvider().addLoadAssetFdResult("assets/asset.txt",
+                            "AssetsThree") },
+
+                    mapOf("openAsset" to "Four",
+                            "openAssetFd" to "Four"),
+                    null /* assetProviderFour */,
+                    listOf(DataType.APK_DISK_FD, DataType.APK_DISK_FD_OFFSETS, DataType.APK_RAM_FD,
+                            DataType.APK_RAM_OFFSETS, DataType.DIRECTORY)
+
             )
 
-            // From root directory returning file descriptor
-            parameters += Parameter(
-                    { assets.openNonAssetFd("NonAsset.txt").readText() },
-                    "NonAssetOne", { "NonAssetOne" },
-                    "NonAssetTwo", { "NonAssetTwo" },
-                    "NonAssetThree", { "NonAssetThree" },
-                    "NonAssetFour", { "NonAssetFour" },
-                    listOf(DataType.NON_ASSET)
-            )
-
-            // Asset as compiled XML drawable
-            parameters += Parameter(
-                    { (getDrawable(R.drawable.non_asset_drawable) as ColorDrawable).color },
-                    "nonAssetDrawableOne", { Color.parseColor("#000001") },
-                    "nonAssetDrawableTwo", { Color.parseColor("#000002") },
-                    "nonAssetDrawableThree", { Color.parseColor("#000003") },
-                    "nonAssetDrawableFour", { Color.parseColor("#000004") },
-                    listOf(DataType.NON_ASSET_DRAWABLE)
-            )
-
-            // Asset as compiled bitmap drawable
-            parameters += Parameter(
-                    {
-                        (getDrawable(R.drawable.non_asset_bitmap) as BitmapDrawable)
-                                .bitmap.getColor(0, 0).toArgb()
-                    },
-                    "nonAssetBitmapRed", { Color.RED },
-                    "nonAssetBitmapGreen", { Color.GREEN },
-                    "nonAssetBitmapBlue", { Color.BLUE },
-                    "nonAssetBitmapWhite", { Color.WHITE },
-                    listOf(DataType.NON_ASSET_BITMAP)
-            )
-
-            // Asset as compiled XML layout
-            parameters += Parameter(
-                    { getLayout(R.layout.layout).advanceToRoot().name },
-                    "layoutOne", { "RelativeLayout" },
-                    "layoutTwo", { "LinearLayout" },
-                    "layoutThree", { "FrameLayout" },
-                    "layoutFour", { "TableLayout" },
-                    listOf(DataType.NON_ASSET_LAYOUT)
-            )
-
-            // Isolated resource split
-            parameters += Parameter(
-                    { getString(R.string.split_overlaid) },
-                    "split_one", { "Split ONE Overlaid" },
-                    "split_two", { "Split TWO Overlaid" },
-                    "split_three", { "Split THREE Overlaid" },
-                    "split_four", { "Split FOUR Overlaid" },
-                    listOf(DataType.SPLIT)
-            )
+            // TODO(151949807): Increase testing for cookie based APIs and for what happens when
+            // some providers do not overlay base resources
 
             return parameters.flatMap { parameter ->
                 parameter.dataTypes.map { dataType ->
@@ -162,23 +242,31 @@
     @field:Parameterized.Parameter(1)
     lateinit var parameter: Parameter
 
-    private val valueOne by lazy { parameter.valueOne(this) }
-    private val valueTwo by lazy { parameter.valueTwo(this) }
-    private val valueThree by lazy { parameter.valueThree(this) }
-    private val valueFour by lazy { parameter.valueFour(this) }
+    private val valueOriginal by lazy { mapToString(parameter.valueOriginal) }
+    private val valueOne by lazy { mapToString(parameter.valueOne) }
+    private val valueTwo by lazy { mapToString(parameter.valueTwo) }
+    private val valueThree by lazy { mapToString(parameter.valueThree) }
+    private val valueFour by lazy { mapToString(parameter.valueFour) }
 
-    private fun openOne() = parameter.providerOne.openProvider()
-    private fun openTwo() = parameter.providerTwo.openProvider()
-    private fun openThree() = parameter.providerThree.openProvider()
-    private fun openFour() = parameter.providerFour.openProvider()
+    private fun openOne() = PROVIDER_ONE.openProvider(dataType,
+            parameter.assetProviderOne?.invoke())
+    private fun openTwo() = PROVIDER_TWO.openProvider(dataType,
+            parameter.assetProviderTwo?.invoke())
+    private fun openThree() = PROVIDER_THREE.openProvider(dataType,
+            parameter.assetProviderThree?.invoke())
+    private fun openFour() = PROVIDER_FOUR.openProvider(dataType,
+            parameter.assetProviderFour?.invoke())
+    private fun openEmpty() = PROVIDER_EMPTY.openProvider(DataType.EMPTY, null)
 
     // Class method for syntax highlighting purposes
     private fun getValue(c: Context = context) = parameter.getValue(c.resources)
+    private fun getValue(r: Resources) = parameter.getValue(r)
 
     @Test
     fun assertValueUniqueness() {
         // Ensure the parameters are valid in case of coding errors
         val original = getValue()
+        assertEquals(valueOriginal, original)
         assertNotEquals(valueOne, original)
         assertNotEquals(valueTwo, original)
         assertNotEquals(valueThree, original)
@@ -193,7 +281,6 @@
 
     @Test
     fun addProvidersRepeatedly() {
-        val originalValue = getValue()
         val testOne = openOne()
         val testTwo = openTwo()
         val loader = ResourcesLoader()
@@ -209,12 +296,11 @@
         assertEquals(valueTwo, getValue())
 
         loader.removeProvider(testTwo)
-        assertEquals(originalValue, getValue())
+        assertEquals(valueOriginal, getValue())
     }
 
     @Test
     fun addLoadersRepeatedly() {
-        val originalValue = getValue()
         val testOne = openOne()
         val testTwo = openTwo()
         val loader1 = ResourcesLoader()
@@ -232,12 +318,11 @@
         assertEquals(valueTwo, getValue())
 
         resources.removeLoaders(loader2)
-        assertEquals(originalValue, getValue())
+        assertEquals(valueOriginal, getValue())
     }
 
     @Test
     fun setMultipleProviders() {
-        val originalValue = getValue()
         val testOne = openOne()
         val testTwo = openTwo()
         val loader = ResourcesLoader()
@@ -250,12 +335,11 @@
         assertEquals(valueOne, getValue())
 
         loader.providers = Collections.emptyList()
-        assertEquals(originalValue, getValue())
+        assertEquals(valueOriginal, getValue())
     }
 
     @Test
     fun addMultipleLoaders() {
-        val originalValue = getValue()
         val loader1 = ResourcesLoader()
         loader1.addProvider(openOne())
         val loader2 = ResourcesLoader()
@@ -268,7 +352,28 @@
         assertEquals(valueOne, getValue())
 
         resources.removeLoaders(loader1)
-        assertEquals(originalValue, getValue())
+        assertEquals(valueOriginal, getValue())
+    }
+
+    @Test
+    fun emptyProvider() {
+        val testOne = openOne()
+        val testTwo = openTwo()
+        val testEmpty = openEmpty()
+        val loader = ResourcesLoader()
+
+        resources.addLoaders(loader)
+        loader.providers = listOf(testOne, testEmpty, testTwo)
+        assertEquals(valueTwo, getValue())
+
+        loader.removeProvider(testTwo)
+        assertEquals(valueOne, getValue())
+
+        loader.removeProvider(testOne)
+        assertEquals(valueOriginal, getValue())
+
+        loader.providers = Collections.emptyList()
+        assertEquals(valueOriginal, getValue())
     }
 
     @Test(expected = UnsupportedOperationException::class)
@@ -385,7 +490,6 @@
 
     @Test
     fun reorderProviders() {
-        val originalValue = getValue()
         val testOne = openOne()
         val testTwo = openTwo()
         val loader = ResourcesLoader()
@@ -405,12 +509,11 @@
         assertEquals(valueOne, getValue())
 
         loader.removeProvider(testOne)
-        assertEquals(originalValue, getValue())
+        assertEquals(valueOriginal, getValue())
     }
 
     @Test
     fun reorderLoaders() {
-        val originalValue = getValue()
         val testOne = openOne()
         val testTwo = openTwo()
         val loader1 = ResourcesLoader()
@@ -432,7 +535,7 @@
         assertEquals(valueOne, getValue())
 
         resources.removeLoaders(loader1)
-        assertEquals(originalValue, getValue())
+        assertEquals(valueOriginal, getValue())
     }
 
     @Test
@@ -460,6 +563,9 @@
 
         loader1.removeProvider(testOne)
         assertEquals(valueFour, getValue())
+
+        loader2.removeProvider(testFour)
+        assertEquals(valueThree, getValue())
     }
 
     private fun createContext(context: Context, id: Int): Context {
@@ -470,7 +576,6 @@
 
     @Test
     fun copyContextLoaders() {
-        val originalValue = getValue()
         val loader1 = ResourcesLoader()
         loader1.addProvider(openOne())
         val loader2 = ResourcesLoader()
@@ -490,13 +595,13 @@
 
         // Changing the loaders of the original context should not affect the child context.
         resources.removeLoaders(loader1)
-        assertEquals(originalValue, getValue())
+        assertEquals(valueOriginal, getValue())
         assertEquals(valueTwo, getValue(childContext))
 
         // A new context created from the original after an update to the original's loaders should
         // have the updated loaders.
         val originalPrime = createContext(context, 2)
-        assertEquals(originalValue, getValue(originalPrime))
+        assertEquals(valueOriginal, getValue(originalPrime))
 
         // A new context created from the child context after an update to the child's loaders
         // should have the updated loaders.
@@ -506,7 +611,6 @@
 
     @Test
     fun loaderUpdatesAffectContexts() {
-        val originalValue = getValue()
         val testOne = openOne()
         val testTwo = openTwo()
         val loader = ResourcesLoader()
@@ -525,15 +629,15 @@
 
         // Changes to the loaders for a context do not affect providers.
         resources.clearLoaders()
-        assertEquals(originalValue, getValue())
+        assertEquals(valueOriginal, getValue())
         assertEquals(valueTwo, getValue(childContext))
 
         val childContext2 = createContext(context, 1)
-        assertEquals(originalValue, getValue())
-        assertEquals(originalValue, getValue(childContext2))
+        assertEquals(valueOriginal, getValue())
+        assertEquals(valueOriginal, getValue(childContext2))
 
         childContext2.resources.addLoaders(loader)
-        assertEquals(originalValue, getValue())
+        assertEquals(valueOriginal, getValue())
         assertEquals(valueTwo, getValue(childContext))
         assertEquals(valueTwo, getValue(childContext2))
     }
@@ -629,22 +733,82 @@
         provider.close()
     }
 
+    @Test
+    fun addLoadersRepeatedlyCustomResources() {
+        val res = Resources(AssetManager::class.java.newInstance(), resources.displayMetrics,
+                resources.configuration!!)
+        val originalValue = getValue(res)
+        val testOne = openOne()
+        val testTwo = openTwo()
+        val loader1 = ResourcesLoader()
+        val loader2 = ResourcesLoader()
+
+        res.addLoaders(loader1)
+        loader1.addProvider(testOne)
+        assertEquals(valueOne, getValue(res))
+
+        res.addLoaders(loader2)
+        loader2.addProvider(testTwo)
+        assertEquals(valueTwo, getValue(res))
+
+        res.removeLoaders(loader1)
+        res.addLoaders(loader1)
+        assertEquals(valueOne, getValue(res))
+
+        res.removeLoaders(loader1)
+        assertEquals(valueTwo, getValue(res))
+
+        res.removeLoaders(loader2)
+        assertEquals(originalValue, getValue(res))
+    }
+
+    @Test
+    fun setMultipleProvidersCustomResources() {
+        val res = Resources(AssetManager::class.java.newInstance(), resources.displayMetrics,
+                resources.configuration!!)
+        val originalValue = getValue(res)
+        val testOne = openOne()
+        val testTwo = openTwo()
+        val loader = ResourcesLoader()
+
+        res.addLoaders(loader)
+        loader.providers = listOf(testOne, testTwo)
+        assertEquals(valueTwo, getValue(res))
+
+        loader.removeProvider(testTwo)
+        assertEquals(valueOne, getValue(res))
+
+        loader.providers = Collections.emptyList()
+        assertEquals(originalValue, getValue(res))
+    }
+
     data class Parameter(
-        val getValue: Resources.() -> Any,
-        val providerOne: String,
-        val valueOne: ResourceLoaderValuesTest.() -> Any,
-        val providerTwo: String,
-        val valueTwo: ResourceLoaderValuesTest.() -> Any,
-        val providerThree: String,
-        val valueThree: ResourceLoaderValuesTest.() -> Any,
-        val providerFour: String,
-        val valueFour: ResourceLoaderValuesTest.() -> Any,
+        val testPrefix: String,
+        val getValue: Resources.() -> String,
+        val valueOriginal: Map<String, String>,
+        val valueOne: Map<String, String>,
+        val assetProviderOne: (() -> MemoryAssetsProvider)? = null,
+        val valueTwo: Map<String, String>,
+        val assetProviderTwo: (() -> MemoryAssetsProvider)? = null,
+        val valueThree: Map<String, String>,
+        val assetProviderThree: (() -> MemoryAssetsProvider)? = null,
+        val valueFour: Map<String, String>,
+        val assetProviderFour: (() -> MemoryAssetsProvider)? = null,
         val dataTypes: List<DataType>
     ) {
-        override fun toString(): String {
-            val prefix = providerOne.commonPrefixWith(providerTwo)
-            return "$prefix${providerOne.removePrefix(prefix)}|${providerTwo.removePrefix(prefix)}"
-        }
+        constructor(
+            testPrefix: String,
+            getValue: Resources.() -> String,
+            valueOriginal: Map<String, String>,
+            valueOne: Map<String, String>,
+            valueTwo: Map<String, String>,
+            valueThree: Map<String, String>,
+            valueFour: Map<String, String>,
+            dataTypes: List<DataType>
+        ): this(testPrefix, getValue, valueOriginal, valueOne,
+                null, valueTwo, null, valueThree, null, valueFour, null, dataTypes)
+
+        override fun toString() = testPrefix
     }
 }
 
diff --git a/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/Utils.kt b/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/Utils.kt
index 4e8ee5c..526160d 100644
--- a/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/Utils.kt
+++ b/core/tests/ResourceLoaderTests/src/android/content/res/loader/test/Utils.kt
@@ -44,25 +44,20 @@
 
 fun AssetFileDescriptor.readText() = createInputStream().reader().readText()
 
-fun rawFile(fileName: String) = R.raw::class.java.getDeclaredField(fileName).getInt(null)
-
 fun XmlPullParser.advanceToRoot() = apply {
     while (next() != XmlPullParser.START_TAG) {
         // Empty
     }
 }
 
-fun Context.copiedRawFile(fileName: String): ParcelFileDescriptor {
-    return resources.openRawResourceFd(rawFile(fileName)).use { asset ->
+fun Context.copiedAssetFile(fileName: String): ParcelFileDescriptor {
+    return resources.assets.open(fileName).use { input ->
         // AssetManager doesn't expose a direct file descriptor to the asset, so copy it to
         // an individual file so one can be created manually.
         val copiedFile = File(filesDir, fileName)
-        asset.createInputStream().use { input ->
-            copiedFile.outputStream().use { output ->
-                input.copyTo(output)
-            }
+        copiedFile.outputStream().use { output ->
+            input.copyTo(output)
         }
-
         ParcelFileDescriptor.open(copiedFile, ParcelFileDescriptor.MODE_READ_WRITE)
     }
 }
diff --git a/core/tests/coretests/AndroidManifest.xml b/core/tests/coretests/AndroidManifest.xml
index b42fce0..45490ae 100644
--- a/core/tests/coretests/AndroidManifest.xml
+++ b/core/tests/coretests/AndroidManifest.xml
@@ -56,6 +56,7 @@
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.INJECT_EVENTS" />
     <uses-permission android:name="android.permission.MANAGE_APP_PREDICTIONS"/>
+    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
     <uses-permission android:name="android.permission.READ_DREAM_STATE" />
diff --git a/core/tests/coretests/BstatsTestApp/src/com/android/coretests/apps/bstatstestapp/TestService.java b/core/tests/coretests/BstatsTestApp/src/com/android/coretests/apps/bstatstestapp/TestService.java
index a027f9e..0cd0643e 100644
--- a/core/tests/coretests/BstatsTestApp/src/com/android/coretests/apps/bstatstestapp/TestService.java
+++ b/core/tests/coretests/BstatsTestApp/src/com/android/coretests/apps/bstatstestapp/TestService.java
@@ -15,19 +15,24 @@
  */
 package com.android.coretests.apps.bstatstestapp;
 
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
+
 import android.R;
 import android.app.Notification;
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.app.Service;
+import android.content.Context;
 import android.content.Intent;
 import android.graphics.Color;
+import android.graphics.Rect;
+import android.hardware.display.DisplayManager;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Process;
 import android.os.RemoteException;
 import android.util.Log;
-import android.util.Size;
+import android.view.Display;
 import android.view.Gravity;
 import android.view.View;
 import android.view.ViewGroup;
@@ -46,11 +51,17 @@
 
     private static final int TIMEOUT_OVERLAY_SEC = 2;
 
+    private Context mOverlayContext;
     private View mOverlay;
 
     @Override
     public void onCreate() {
         Log.d(TAG, "onCreate called. myUid=" + Process.myUid());
+
+        final DisplayManager dm = getSystemService(DisplayManager.class);
+        final Display defaultDisplay = dm.getDisplay(Display.DEFAULT_DISPLAY);
+        final Context defaultDisplayContext = createDisplayContext(defaultDisplay);
+        mOverlayContext = defaultDisplayContext.createWindowContext(TYPE_APPLICATION_OVERLAY, null);
     }
 
     @Override
@@ -93,7 +104,7 @@
 
     private void removeOverlays() {
         if (mOverlay != null) {
-            final WindowManager wm = TestService.this.getSystemService(WindowManager.class);
+            final WindowManager wm = mOverlayContext.getSystemService(WindowManager.class);
             wm.removeView(mOverlay);
             mOverlay = null;
         }
@@ -107,16 +118,16 @@
 
         @Override
         public void showApplicationOverlay() throws RemoteException {
-            final WindowManager wm = TestService.this.getSystemService(WindowManager.class);
-            final Size size = wm.getCurrentWindowMetrics().getSize();
+            final WindowManager wm = mOverlayContext.getSystemService(WindowManager.class);
+            final Rect bounds = wm.getCurrentWindowMetrics().getBounds();
 
             final WindowManager.LayoutParams wmlp = new WindowManager.LayoutParams(
-                    WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
+                    TYPE_APPLICATION_OVERLAY,
                     WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                             | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                             | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
-            wmlp.width = size.getWidth() / 2;
-            wmlp.height = size.getHeight() / 2;
+            wmlp.width = bounds.width() / 2;
+            wmlp.height = bounds.height() / 2;
             wmlp.gravity = Gravity.CENTER | Gravity.LEFT;
             wmlp.setTitle(TAG);
 
@@ -124,7 +135,7 @@
                     ViewGroup.LayoutParams.MATCH_PARENT,
                     ViewGroup.LayoutParams.MATCH_PARENT);
 
-            mOverlay = new View(TestService.this);
+            mOverlay = new View(mOverlayContext);
             mOverlay.setBackgroundColor(Color.GREEN);
             mOverlay.setLayoutParams(vglp);
 
diff --git a/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java b/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java
index 90d8bab..c328d72 100644
--- a/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java
+++ b/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java
@@ -40,10 +40,7 @@
 import android.app.servertransaction.StopActivityItem;
 import android.content.Intent;
 import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.graphics.Rect;
 import android.os.IBinder;
-import android.util.DisplayMetrics;
 import android.util.MergedConfiguration;
 import android.view.Display;
 import android.view.View;
@@ -310,58 +307,6 @@
     }
 
     @Test
-    public void testHandleConfigurationChangedDoesntOverrideActivityConfig() {
-        final TestActivity activity = mActivityTestRule.launchActivity(new Intent());
-
-        InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
-            final Configuration oldActivityConfig =
-                    new Configuration(activity.getResources().getConfiguration());
-            final DisplayMetrics oldActivityMetrics = new DisplayMetrics();
-            activity.getDisplay().getMetrics(oldActivityMetrics);
-            final Resources oldAppResources = activity.getApplication().getResources();
-            final Configuration oldAppConfig =
-                    new Configuration(oldAppResources.getConfiguration());
-            final DisplayMetrics oldApplicationMetrics = new DisplayMetrics();
-            oldApplicationMetrics.setTo(oldAppResources.getDisplayMetrics());
-            assertEquals("Process config must match the top activity config by default",
-                    0, oldActivityConfig.diffPublicOnly(oldAppConfig));
-            assertEquals("Process config must match the top activity config by default",
-                    oldActivityMetrics, oldApplicationMetrics);
-
-            // Update the application configuration separately from activity config
-            final Configuration newAppConfig = new Configuration(oldAppConfig);
-            newAppConfig.densityDpi += 100;
-            newAppConfig.screenHeightDp += 100;
-            final Rect newBounds = new Rect(newAppConfig.windowConfiguration.getAppBounds());
-            newBounds.bottom += 100;
-            newAppConfig.windowConfiguration.setAppBounds(newBounds);
-            newAppConfig.windowConfiguration.setBounds(newBounds);
-            newAppConfig.seq++;
-
-            final ActivityThread activityThread = activity.getActivityThread();
-            activityThread.handleConfigurationChanged(newAppConfig);
-
-            // Verify that application config update was applied, but didn't change activity config.
-            assertEquals("Activity config must not change if the process config changes",
-                    oldActivityConfig, activity.getResources().getConfiguration());
-
-            final DisplayMetrics newActivityMetrics = new DisplayMetrics();
-            activity.getDisplay().getMetrics(newActivityMetrics);
-            assertEquals("Activity display size must not change if the process config changes",
-                    oldActivityMetrics, newActivityMetrics);
-            final Resources newAppResources = activity.getApplication().getResources();
-            assertEquals("Application config must be updated",
-                    newAppConfig, newAppResources.getConfiguration());
-            final DisplayMetrics newApplicationMetrics = new DisplayMetrics();
-            newApplicationMetrics.setTo(newAppResources.getDisplayMetrics());
-            assertNotEquals("Application display size must be updated after config update",
-                    oldApplicationMetrics, newApplicationMetrics);
-            assertNotEquals("Application display size must be updated after config update",
-                    newActivityMetrics, newApplicationMetrics);
-        });
-    }
-
-    @Test
     public void testResumeAfterNewIntent() {
         final Activity activity = mActivityTestRule.launchActivity(new Intent());
         final ActivityThread activityThread = activity.getActivityThread();
diff --git a/core/tests/coretests/src/android/app/timezonedetector/ManualTimeZoneSuggestionTest.java b/core/tests/coretests/src/android/app/timezonedetector/ManualTimeZoneSuggestionTest.java
index 02ed0ed..17838bb 100644
--- a/core/tests/coretests/src/android/app/timezonedetector/ManualTimeZoneSuggestionTest.java
+++ b/core/tests/coretests/src/android/app/timezonedetector/ManualTimeZoneSuggestionTest.java
@@ -18,12 +18,19 @@
 
 import static android.app.timezonedetector.ParcelableTestSupport.assertRoundTripParcelable;
 import static android.app.timezonedetector.ParcelableTestSupport.roundTripParcelable;
+import static android.app.timezonedetector.ShellCommandTestSupport.createShellCommandWithArgsAndOptions;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
+
+import android.os.ShellCommand;
 
 import org.junit.Test;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
 public class ManualTimeZoneSuggestionTest {
 
     private static final String ARBITRARY_ZONE_ID1 = "Europe/London";
@@ -58,4 +65,36 @@
         ManualTimeZoneSuggestion rtSuggestion = roundTripParcelable(suggestion);
         assertEquals(suggestion.getDebugInfo(), rtSuggestion.getDebugInfo());
     }
+
+    @Test
+    public void testPrintCommandLineOpts() throws Exception {
+        try (StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw)) {
+            ManualTimeZoneSuggestion.printCommandLineOpts(pw);
+            assertTrue(sw.getBuffer().length() > 0);
+        }
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testParseCommandLineArg_noArgs() {
+        ShellCommand testShellCommand = createShellCommandWithArgsAndOptions("");
+        ManualTimeZoneSuggestion.parseCommandLineArg(testShellCommand);
+    }
+
+    @Test
+    public void testParseCommandLineArg_validSuggestion() {
+        ShellCommand testShellCommand =
+                createShellCommandWithArgsAndOptions("--zone_id Europe/London");
+        ManualTimeZoneSuggestion expectedSuggestion =
+                new ManualTimeZoneSuggestion("Europe/London");
+        ManualTimeZoneSuggestion actualSuggestion =
+                ManualTimeZoneSuggestion.parseCommandLineArg(testShellCommand);
+        assertEquals(expectedSuggestion, actualSuggestion);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testParseCommandLineArg_unknownArgument() {
+        ShellCommand testShellCommand = createShellCommandWithArgsAndOptions(
+                "--zone_id Europe/London --bad_arg 0");
+        ManualTimeZoneSuggestion.parseCommandLineArg(testShellCommand);
+    }
 }
diff --git a/core/tests/coretests/src/android/app/timezonedetector/ShellCommandTestSupport.java b/core/tests/coretests/src/android/app/timezonedetector/ShellCommandTestSupport.java
new file mode 100644
index 0000000..8d8290c
--- /dev/null
+++ b/core/tests/coretests/src/android/app/timezonedetector/ShellCommandTestSupport.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.app.timezonedetector;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.os.ShellCommand;
+
+import org.mockito.stubbing.Answer;
+
+import java.util.Arrays;
+import java.util.List;
+
+/** Utility methods related to {@link ShellCommand} objects used in several tests. */
+final class ShellCommandTestSupport {
+    private ShellCommandTestSupport() {}
+
+    static ShellCommand createShellCommandWithArgsAndOptions(String argsWithSpaces) {
+        return createShellCommandWithArgsAndOptions(Arrays.asList(argsWithSpaces.split(" ")));
+    }
+
+    static ShellCommand createShellCommandWithArgsAndOptions(List<String> args) {
+        ShellCommand command = mock(ShellCommand.class);
+        class ArgProvider {
+            private int mCount;
+
+            String getNext() {
+                if (mCount >= args.size()) {
+                    return null;
+                }
+                return args.get(mCount++);
+            }
+
+            String getNextRequired() {
+                String next = getNext();
+                if (next == null) {
+                    throw new IllegalArgumentException("No next");
+                }
+                return next;
+            }
+        }
+        ArgProvider argProvider = new ArgProvider();
+        when(command.getNextArg()).thenAnswer(
+                (Answer<String>) invocation -> argProvider.getNext());
+        when(command.getNextOption()).thenAnswer(
+                (Answer<String>) invocation -> argProvider.getNext());
+        when(command.getNextArgRequired()).thenAnswer(
+                (Answer<String>) invocation -> argProvider.getNextRequired());
+        return command;
+    }
+}
diff --git a/core/tests/coretests/src/android/app/timezonedetector/TelephonyTimeZoneSuggestionTest.java b/core/tests/coretests/src/android/app/timezonedetector/TelephonyTimeZoneSuggestionTest.java
index 59d55b7..c4ff9be 100644
--- a/core/tests/coretests/src/android/app/timezonedetector/TelephonyTimeZoneSuggestionTest.java
+++ b/core/tests/coretests/src/android/app/timezonedetector/TelephonyTimeZoneSuggestionTest.java
@@ -18,13 +18,19 @@
 
 import static android.app.timezonedetector.ParcelableTestSupport.assertRoundTripParcelable;
 import static android.app.timezonedetector.ParcelableTestSupport.roundTripParcelable;
+import static android.app.timezonedetector.ShellCommandTestSupport.createShellCommandWithArgsAndOptions;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertTrue;
 
+import android.os.ShellCommand;
+
 import org.junit.Test;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
 public class TelephonyTimeZoneSuggestionTest {
     private static final int SLOT_INDEX = 99999;
 
@@ -159,4 +165,57 @@
         assertEquals(suggestion1, suggestion1_2);
         assertTrue(suggestion1_2.getDebugInfo().contains(debugString));
     }
+
+    @Test
+    public void testPrintCommandLineOpts() throws Exception {
+        try (StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw)) {
+            TelephonyTimeZoneSuggestion.printCommandLineOpts(pw);
+            assertTrue(sw.getBuffer().length() > 0);
+        }
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testParseCommandLineArg_noArgs() {
+        ShellCommand testShellCommand = createShellCommandWithArgsAndOptions("");
+        TelephonyTimeZoneSuggestion.parseCommandLineArg(testShellCommand);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testParseCommandLineArg_noSlotIndex() {
+        ShellCommand testShellCommand = createShellCommandWithArgsAndOptions("--zone_id _");
+        TelephonyTimeZoneSuggestion.parseCommandLineArg(testShellCommand);
+    }
+
+    @Test
+    public void testParseCommandLineArg_validEmptyZoneIdSuggestion() {
+        ShellCommand testShellCommand = createShellCommandWithArgsAndOptions(
+                "--slot_index 0 --zone_id _");
+        TelephonyTimeZoneSuggestion expectedSuggestion =
+                new TelephonyTimeZoneSuggestion.Builder(0).build();
+        TelephonyTimeZoneSuggestion actualSuggestion =
+                TelephonyTimeZoneSuggestion.parseCommandLineArg(testShellCommand);
+        assertEquals(expectedSuggestion, actualSuggestion);
+    }
+
+    @Test
+    public void testParseCommandLineArg_validNonEmptySuggestion() {
+        ShellCommand testShellCommand = createShellCommandWithArgsAndOptions(
+                "--slot_index 0 --zone_id Europe/London --quality single --match_type country");
+        TelephonyTimeZoneSuggestion expectedSuggestion =
+                new TelephonyTimeZoneSuggestion.Builder(0)
+                        .setZoneId("Europe/London")
+                        .setQuality(TelephonyTimeZoneSuggestion.QUALITY_SINGLE_ZONE)
+                        .setMatchType(TelephonyTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY)
+                        .build();
+        TelephonyTimeZoneSuggestion actualSuggestion =
+                TelephonyTimeZoneSuggestion.parseCommandLineArg(testShellCommand);
+        assertEquals(expectedSuggestion, actualSuggestion);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testParseCommandLineArg_unknownArgument() {
+        ShellCommand testShellCommand = createShellCommandWithArgsAndOptions(
+                "--slot_index 0 --zone_id _ --bad_arg 0");
+        TelephonyTimeZoneSuggestion.parseCommandLineArg(testShellCommand);
+    }
 }
diff --git a/core/tests/coretests/src/android/content/ContentResolverTest.java b/core/tests/coretests/src/android/content/ContentResolverTest.java
index 1737bd0..f48e666 100644
--- a/core/tests/coretests/src/android/content/ContentResolverTest.java
+++ b/core/tests/coretests/src/android/content/ContentResolverTest.java
@@ -20,6 +20,7 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -236,10 +237,28 @@
     }
 
     @Test
+    public void testGetType_providerException() {
+        String type =
+                mResolver.getType(Uri.parse("content://android.content.FakeProviderRemote/error"));
+        assertThat(type).isNull();
+    }
+
+    @Test
     public void testCanonicalize() {
         Uri canonical = mResolver.canonicalize(
                 Uri.parse("content://android.content.FakeProviderRemote/something"));
         assertThat(canonical).isEqualTo(
                 Uri.parse("content://android.content.FakeProviderRemote/canonical"));
     }
+
+    @Test
+    public void testCanonicalize_providerException() {
+        try {
+            mResolver.canonicalize(
+                    Uri.parse("content://android.content.FakeProviderRemote/error"));
+            fail("Expected IllegalArgumentException");
+        } catch (IllegalArgumentException e) {
+            // Expected
+        }
+    }
 }
diff --git a/core/tests/coretests/src/android/content/FakeProviderRemote.java b/core/tests/coretests/src/android/content/FakeProviderRemote.java
index 1d7ba5d..8bc5660 100644
--- a/core/tests/coretests/src/android/content/FakeProviderRemote.java
+++ b/core/tests/coretests/src/android/content/FakeProviderRemote.java
@@ -37,6 +37,9 @@
 
     @Override
     public String getType(Uri uri) {
+        if (uri.getPath() != null && uri.getPath().contains("error")) {
+            throw new IllegalArgumentException("Expected exception");
+        }
         return "fake/remote";
     }
 
@@ -57,6 +60,9 @@
 
     @Override
     public Uri canonicalize(Uri uri) {
+        if (uri.getPath() != null && uri.getPath().contains("error")) {
+            throw new IllegalArgumentException("Expected exception");
+        }
         return new Uri.Builder().scheme(uri.getScheme()).authority(uri.getAuthority())
                 .appendPath("canonical").build();
     }
diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
index 0ab5367..ed2436a 100644
--- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
+++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
@@ -424,20 +424,19 @@
             assertNotNull(info);
             assertEquals(pkgName, info.packageName);
             File dataDir = Environment.getDataDirectory();
-            String appInstallPath = new File(dataDir, "app").getPath();
-            String drmInstallPath = new File(dataDir, "app-private").getPath();
+            String appInstallParent = new File(dataDir, "app").getPath();
             File srcDir = new File(info.sourceDir);
-            String srcPath = srcDir.getParentFile().getParent();
+            String srcPathParent = srcDir.getParentFile().getParentFile().getParent();
             File publicSrcDir = new File(info.publicSourceDir);
-            String publicSrcPath = publicSrcDir.getParentFile().getParent();
+            String publicSrcPath = publicSrcDir.getParentFile().getParentFile().getParent();
             long pkgLen = new File(info.sourceDir).length();
             String expectedLibPath = new File(new File(info.sourceDir).getParentFile(), "lib")
                     .getPath();
 
             int rLoc = getInstallLoc(flags, expInstallLocation, pkgLen);
             if (rLoc == INSTALL_LOC_INT) {
-                assertEquals(appInstallPath, srcPath);
-                assertEquals(appInstallPath, publicSrcPath);
+                assertEquals(appInstallParent, srcPathParent);
+                assertEquals(appInstallParent, publicSrcPath);
                 assertStartsWith("Native library should point to shared lib directory",
                         expectedLibPath, info.nativeLibraryDir);
                 assertDirOwnerGroupPermsIfExists(
@@ -464,7 +463,7 @@
                 // Might need to check:
                 // ((info.privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0)
                 assertStartsWith("The APK path should point to the ASEC",
-                        SECURE_CONTAINERS_PREFIX, srcPath);
+                        SECURE_CONTAINERS_PREFIX, srcPathParent);
                 assertStartsWith("The public APK path should point to the ASEC",
                         SECURE_CONTAINERS_PREFIX, publicSrcPath);
                 assertStartsWith("The native library path should point to the ASEC",
@@ -991,6 +990,7 @@
 
 
     @LargeTest
+    @Suppress // TODO(b/152007236): un-suppress when we root cause this
     public void testDeleteNormalInternalRetainData() throws Exception {
         deleteFromRawResource(0, PackageManager.DELETE_KEEP_DATA);
     }
@@ -2298,6 +2298,7 @@
         }
     }
 
+    @Suppress // TODO(b/152007236): un-suppress when we root cause this
     public void testIsSignedBy() throws Exception {
         PackageManager pm = getPm();
         String mPkgName = mContext.getPackageName();
diff --git a/core/tests/coretests/src/android/content/res/ResourcesManagerTest.java b/core/tests/coretests/src/android/content/res/ResourcesManagerTest.java
index df5c9d2..4114b28 100644
--- a/core/tests/coretests/src/android/content/res/ResourcesManagerTest.java
+++ b/core/tests/coretests/src/android/content/res/ResourcesManagerTest.java
@@ -184,7 +184,7 @@
     @SmallTest
     public void testThemesGetUpdatedWithNewImpl() {
         Binder activity1 = new Binder();
-        Resources resources1 = mResourcesManager.createBaseActivityResources(
+        Resources resources1 = mResourcesManager.createBaseTokenResources(
                 activity1, APP_ONE_RES_DIR, null, null, null, Display.DEFAULT_DISPLAY, null,
                 CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO, null, null);
         assertNotNull(resources1);
@@ -217,7 +217,7 @@
         // Create a Resources for the Activity.
         Configuration config1 = new Configuration();
         config1.densityDpi = 280;
-        Resources resources1 = mResourcesManager.createBaseActivityResources(
+        Resources resources1 = mResourcesManager.createBaseTokenResources(
                 activity1, APP_ONE_RES_DIR, null, null, null, Display.DEFAULT_DISPLAY, config1,
                 CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO, null, null);
         assertNotNull(resources1);
diff --git a/core/tests/coretests/src/android/service/controls/ControlProviderServiceTest.java b/core/tests/coretests/src/android/service/controls/ControlProviderServiceTest.java
index 13000e9..f4ebe2f 100644
--- a/core/tests/coretests/src/android/service/controls/ControlProviderServiceTest.java
+++ b/core/tests/coretests/src/android/service/controls/ControlProviderServiceTest.java
@@ -64,8 +64,7 @@
 @RunWith(AndroidJUnit4.class)
 public class ControlProviderServiceTest {
 
-    private static final ComponentName TEST_SYSUI_COMPONENT =
-            ComponentName.unflattenFromString("sysui/.test.cls");
+    private static final String TEST_CONTROLS_PACKAGE = "sysui";
     private static final ComponentName TEST_COMPONENT =
             ComponentName.unflattenFromString("test.pkg/.test.cls");
 
@@ -97,8 +96,8 @@
         when(mSubscriber.asBinder()).thenCallRealMethod();
         when(mSubscriber.queryLocalInterface(any())).thenReturn(mSubscriber);
 
-        when(mResources.getString(com.android.internal.R.string.config_systemUIServiceComponent))
-                .thenReturn(TEST_SYSUI_COMPONENT.flattenToString());
+        when(mResources.getString(com.android.internal.R.string.config_controlsPackage))
+                .thenReturn(TEST_CONTROLS_PACKAGE);
         when(mContext.getResources()).thenReturn(mResources);
 
         Bundle b = new Bundle();
@@ -252,7 +251,7 @@
                 eq(Manifest.permission.BIND_CONTROLS));
         Intent intent = mIntentArgumentCaptor.getValue();
         assertEquals(ControlsProviderService.ACTION_ADD_CONTROL, intent.getAction());
-        assertEquals(TEST_SYSUI_COMPONENT.getPackageName(), intent.getPackage());
+        assertEquals(TEST_CONTROLS_PACKAGE, intent.getPackage());
         assertEquals(TEST_COMPONENT, intent.getParcelableExtra(Intent.EXTRA_COMPONENT_NAME));
         assertTrue(equals(control,
                 intent.getParcelableExtra(ControlsProviderService.EXTRA_CONTROL)));
diff --git a/core/tests/coretests/src/android/text/EmojiTest.java b/core/tests/coretests/src/android/text/EmojiTest.java
index 7a42731..0aeeb74 100644
--- a/core/tests/coretests/src/android/text/EmojiTest.java
+++ b/core/tests/coretests/src/android/text/EmojiTest.java
@@ -83,12 +83,27 @@
                         {0x1FA70, 0x1FA73},
                         {0x1FA78, 0x1FA7A},
                         {0x1FA80, 0x1FA82},
-                        {0x1FA90, 0x1FA95}
+                        {0x1FA90, 0x1FA95},
+                },
+                {       // EMOJI 13
+                        {0x1F6D6, 0x1F6D7},
+                        {0x1F6FB, 0x1F6FC},
+                        {0x1F90C, 0x1F90C},
+                        {0x1F972, 0x1F972},
+                        {0x1F977, 0x1F978},
+                        {0x1F9A3, 0x1F9A4},
+                        {0x1F9AB, 0x1F9AD},
+                        {0x1F9CB, 0x1F9CB},
+                        {0x1FA74, 0x1FA74},
+                        {0x1FA83, 0x1FA86},
+                        {0x1FA96, 0x1FAA8},
+                        {0x1FAB0, 0x1FAB6},
+                        {0x1FAC0, 0x1FAC2},
+                        {0x1FAD0, 0x1FAD6},
                 }
         };
 
         final Bidi icuBidi = new Bidi(0 /* maxLength */, 0 /* maxRunCount */);
-        icuBidi.setCustomClassifier(new AndroidBidi.EmojiBidiOverride());
 
         for (int version = 0; version < data.length; version++) {
             for (int row = 0; row < data[version].length; row++) {
@@ -125,6 +140,15 @@
                 {       // EMOJI 11
                         {0x1F9B5, 0x1F9B6},
                         {0x1F9B8, 0x1F9B9}
+                },
+                {       // EMOJI 12
+                        {0x1F90F, 0x1F90F},
+                        {0x1F9BB, 0x1F9BB},
+                        {0x1F9CD, 0x1F9CF},
+                },
+                {       // EMOJI 13
+                        {0x1F90C, 0x1F90C},
+                        {0x1F977, 0x1F977}
                 }
         };
         for (int version = 0; version < data.length; version++) {
diff --git a/core/tests/coretests/src/android/util/GridScenario.java b/core/tests/coretests/src/android/util/GridScenario.java
index 4809a21..e7ee1cd 100644
--- a/core/tests/coretests/src/android/util/GridScenario.java
+++ b/core/tests/coretests/src/android/util/GridScenario.java
@@ -233,7 +233,7 @@
         // turn off title bar
         requestWindowFeature(Window.FEATURE_NO_TITLE);
 
-        mScreenHeight = getWindowManager().getCurrentWindowMetrics().getSize().getHeight();
+        mScreenHeight = getWindowManager().getCurrentWindowMetrics().getBounds().height();
 
         final Params params = new Params();
         init(params);
diff --git a/core/tests/coretests/src/android/util/ListScenario.java b/core/tests/coretests/src/android/util/ListScenario.java
index d4e5a43..74dc4b4 100644
--- a/core/tests/coretests/src/android/util/ListScenario.java
+++ b/core/tests/coretests/src/android/util/ListScenario.java
@@ -306,7 +306,7 @@
         requestWindowFeature(Window.FEATURE_NO_TITLE);
 
 
-        mScreenHeight = getWindowManager().getCurrentWindowMetrics().getSize().getHeight();
+        mScreenHeight = getWindowManager().getCurrentWindowMetrics().getBounds().height();
 
         final Params params = createParams();
         init(params);
diff --git a/core/tests/coretests/src/android/util/ScrollViewScenario.java b/core/tests/coretests/src/android/util/ScrollViewScenario.java
index 2c0aa73..ab1a642 100644
--- a/core/tests/coretests/src/android/util/ScrollViewScenario.java
+++ b/core/tests/coretests/src/android/util/ScrollViewScenario.java
@@ -239,7 +239,7 @@
 
         // for test stability, turn off title bar
         requestWindowFeature(Window.FEATURE_NO_TITLE);
-        int screenHeight = getWindowManager().getCurrentWindowMetrics().getSize().getHeight()
+        int screenHeight = getWindowManager().getCurrentWindowMetrics().getBounds().height()
                 - 25;
         mLinearLayout = new LinearLayout(this);
         mLinearLayout.setOrientation(LinearLayout.VERTICAL);
diff --git a/core/tests/coretests/src/android/view/BigCache.java b/core/tests/coretests/src/android/view/BigCache.java
index e465a85..3038e79 100644
--- a/core/tests/coretests/src/android/view/BigCache.java
+++ b/core/tests/coretests/src/android/view/BigCache.java
@@ -17,8 +17,8 @@
 package android.view;
 
 import android.app.Activity;
+import android.graphics.Rect;
 import android.os.Bundle;
-import android.util.Size;
 import android.widget.LinearLayout;
 import android.widget.ScrollView;
 
@@ -39,9 +39,9 @@
                 ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
 
         final int cacheSize = ViewConfiguration.getMaximumDrawingCacheSize();
-        final Size windowSize = getWindowManager().getCurrentWindowMetrics().getSize();
-        final int screenWidth = windowSize.getWidth();
-        final int screenHeight = windowSize.getHeight();
+        final Rect windowBounds = getWindowManager().getCurrentWindowMetrics().getBounds();
+        final int screenWidth = windowBounds.width();
+        final int screenHeight = windowBounds.height();
 
         final View tiny = new View(this);
         tiny.setId(R.id.a);
diff --git a/core/tests/coretests/src/android/view/ImeInsetsSourceConsumerTest.java b/core/tests/coretests/src/android/view/ImeInsetsSourceConsumerTest.java
index 7f0e0d2..03aba25 100644
--- a/core/tests/coretests/src/android/view/ImeInsetsSourceConsumerTest.java
+++ b/core/tests/coretests/src/android/view/ImeInsetsSourceConsumerTest.java
@@ -74,7 +74,7 @@
                     false,
                     new DisplayCutout(
                             Insets.of(10, 10, 10, 10), rect, rect, rect, rect),
-                    rect, rect, SOFT_INPUT_ADJUST_RESIZE, 0);
+                    SOFT_INPUT_ADJUST_RESIZE, 0);
             mImeConsumer = new ImeInsetsSourceConsumer(
                     new InsetsState(), Transaction::new, mController);
         });
diff --git a/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java b/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java
index 22b4e45..d787469 100644
--- a/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java
+++ b/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java
@@ -16,13 +16,13 @@
 
 package android.view;
 
-import static android.view.InsetsController.LAYOUT_INSETS_DURING_ANIMATION_SHOWN;
 import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
 import static android.view.InsetsState.ITYPE_STATUS_BAR;
 import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL;
 import static android.view.WindowInsets.Type.systemBars;
-
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
@@ -43,8 +43,6 @@
 import android.view.animation.LinearInterpolator;
 import android.view.test.InsetsModeSession;
 
-import androidx.test.runner.AndroidJUnit4;
-
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -56,6 +54,8 @@
 
 import java.util.List;
 
+import androidx.test.runner.AndroidJUnit4;
+
 /**
  * Tests for {@link InsetsAnimationControlImpl}.
  *
@@ -123,7 +123,7 @@
         mController = new InsetsAnimationControlImpl(controls,
                 new Rect(0, 0, 500, 500), mInsetsState, mMockListener, systemBars(),
                 mMockController, 10 /* durationMs */, new LinearInterpolator(),
-                false /* fade */, 0 /* animationType */);
+                0 /* animationType */);
     }
 
     @Test
@@ -135,6 +135,13 @@
     }
 
     @Test
+    public void testReady() {
+        assertTrue(mController.isReady());
+        assertFalse(mController.isFinished());
+        assertFalse(mController.isCancelled());
+    }
+
+    @Test
     public void testChangeInsets() {
         mController.setInsetsAndAlpha(Insets.of(0, 30, 40, 0), 1f /* alpha */,
                 0f /* fraction */);
@@ -178,6 +185,10 @@
         mController.applyChangeInsets(mInsetsState);
         assertEquals(Insets.of(0, 100, 100, 0), mController.getCurrentInsets());
         verify(mMockController).notifyFinished(eq(mController), eq(true /* shown */));
+        assertFalse(mController.isReady());
+        assertTrue(mController.isFinished());
+        assertFalse(mController.isCancelled());
+        verify(mMockListener).onFinished(mController);
     }
 
     @Test
@@ -188,6 +199,9 @@
             fail("Expected exception to be thrown");
         } catch (IllegalStateException ignored) {
         }
+        assertFalse(mController.isReady());
+        assertFalse(mController.isFinished());
+        assertTrue(mController.isCancelled());
         verify(mMockListener).onCancelled(mController);
         mController.finish(true /* shown */);
     }
diff --git a/core/tests/coretests/src/android/view/InsetsControllerTest.java b/core/tests/coretests/src/android/view/InsetsControllerTest.java
index 90a62e7..cbb379b 100644
--- a/core/tests/coretests/src/android/view/InsetsControllerTest.java
+++ b/core/tests/coretests/src/android/view/InsetsControllerTest.java
@@ -21,6 +21,7 @@
 import static android.view.InsetsController.ANIMATION_TYPE_SHOW;
 import static android.view.InsetsSourceConsumer.ShowResult.IME_SHOW_DELAYED;
 import static android.view.InsetsSourceConsumer.ShowResult.SHOW_IMMEDIATELY;
+import static android.view.InsetsState.ITYPE_CAPTION_BAR;
 import static android.view.InsetsState.ITYPE_IME;
 import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
 import static android.view.InsetsState.ITYPE_STATUS_BAR;
@@ -31,6 +32,7 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
@@ -87,7 +89,6 @@
 @Presubmit
 @RunWith(AndroidJUnit4.class)
 public class InsetsControllerTest {
-
     private InsetsController mController;
     private SurfaceSession mSession = new SurfaceSession();
     private SurfaceControl mLeash;
@@ -162,7 +163,7 @@
                     false,
                     new DisplayCutout(
                             Insets.of(10, 10, 10, 10), rect, rect, rect, rect),
-                    rect, rect, SOFT_INPUT_ADJUST_RESIZE, 0);
+                    SOFT_INPUT_ADJUST_RESIZE, 0);
             mController.onFrameChanged(new Rect(0, 0, 100, 100));
         });
         InstrumentationRegistry.getInstrumentation().waitForIdleSync();
@@ -195,6 +196,9 @@
         InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
             mController.onControlsChanged(createSingletonControl(ITYPE_STATUS_BAR));
 
+            ArgumentCaptor<WindowInsetsAnimationController> animationController =
+                    ArgumentCaptor.forClass(WindowInsetsAnimationController.class);
+
             WindowInsetsAnimationControlListener mockListener =
                     mock(WindowInsetsAnimationControlListener.class);
             mController.controlWindowInsetsAnimation(statusBars(), 10 /* durationMs */,
@@ -202,9 +206,10 @@
 
             // Ready gets deferred until next predraw
             mViewRoot.getView().getViewTreeObserver().dispatchOnPreDraw();
-            verify(mockListener).onReady(any(), anyInt());
+            verify(mockListener).onReady(animationController.capture(), anyInt());
             mController.onControlsChanged(new InsetsSourceControl[0]);
             verify(mockListener).onCancelled(notNull());
+            assertTrue(animationController.getValue().isCancelled());
         });
     }
 
@@ -634,6 +639,52 @@
         });
     }
 
+    @Test
+    public void testFrameUpdateDuringAnimation() {
+        InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
+
+            mController.onControlsChanged(createSingletonControl(ITYPE_IME));
+
+            // Pretend IME is calling
+            mController.show(ime(), true /* fromIme */);
+
+            InsetsState copy = new InsetsState(mController.getState(), true /* copySources */);
+            copy.getSource(ITYPE_IME).setFrame(0, 1, 2, 3);
+            copy.getSource(ITYPE_IME).setVisibleFrame(new Rect(4, 5, 6, 7));
+            mController.onStateChanged(copy);
+            assertNotEquals(new Rect(0, 1, 2, 3),
+                    mController.getState().getSource(ITYPE_IME).getFrame());
+            assertNotEquals(new Rect(4, 5, 6, 7),
+                    mController.getState().getSource(ITYPE_IME).getVisibleFrame());
+            mController.cancelExistingAnimation();
+            assertEquals(new Rect(0, 1, 2, 3),
+                    mController.getState().getSource(ITYPE_IME).getFrame());
+            assertEquals(new Rect(4, 5, 6, 7),
+                    mController.getState().getSource(ITYPE_IME).getVisibleFrame());
+        });
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+    }
+
+    @Test
+    public void testCaptionInsetsStateAssemble() {
+        InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
+            mController.onFrameChanged(new Rect(0, 0, 100, 300));
+            final InsetsState state = new InsetsState(mController.getState(), true);
+            final Rect captionFrame = new Rect(0, 0, 100, 100);
+            mController.setCaptionInsetsHeight(100);
+            mController.onStateChanged(state);
+            final InsetsState currentState = new InsetsState(mController.getState());
+            // The caption bar source should be synced with the info in mAttachInfo.
+            assertEquals(captionFrame, currentState.peekSource(ITYPE_CAPTION_BAR).getFrame());
+            assertTrue(currentState.equals(state, true /* excludingCaptionInsets*/));
+            mController.setCaptionInsetsHeight(0);
+            mController.onStateChanged(state);
+            // The caption bar source should not be there at all, because we don't add empty
+            // caption to the state from the server.
+            assertNull(mController.getState().peekSource(ITYPE_CAPTION_BAR));
+        });
+    }
+
     private void waitUntilNextFrame() throws Exception {
         final CountDownLatch latch = new CountDownLatch(1);
         Choreographer.getMainThreadInstance().postCallback(Choreographer.CALLBACK_COMMIT,
diff --git a/core/tests/coretests/src/android/view/InsetsSourceTest.java b/core/tests/coretests/src/android/view/InsetsSourceTest.java
index 756d63d..b3f6fe9 100644
--- a/core/tests/coretests/src/android/view/InsetsSourceTest.java
+++ b/core/tests/coretests/src/android/view/InsetsSourceTest.java
@@ -127,6 +127,48 @@
     }
 
     @Test
+    public void testCalculateInsets_noIntersection_vertical() {
+        mSource.setFrame(new Rect(0, 0, 500, 100));
+        Insets insets = mSource.calculateInsets(new Rect(0, 100, 500, 500), false);
+        assertEquals(Insets.NONE, insets);
+    }
+
+    @Test
+    public void testCalculateInsets_zeroWidthIntersection_vertical_start() {
+        mSource.setFrame(new Rect(0, 0, 500, 100));
+        Insets insets = mSource.calculateInsets(new Rect(0, 0, 0, 500), false);
+        assertEquals(Insets.of(0, 100, 0, 0), insets);
+    }
+
+    @Test
+    public void testCalculateInsets_zeroWidthIntersection_vertical_end() {
+        mSource.setFrame(new Rect(0, 0, 500, 100));
+        Insets insets = mSource.calculateInsets(new Rect(500, 0, 500, 500), false);
+        assertEquals(Insets.of(0, 100, 0, 0), insets);
+    }
+
+    @Test
+    public void testCalculateInsets_noIntersection_horizontal() {
+        mSource.setFrame(new Rect(0, 0, 100, 500));
+        Insets insets = mSource.calculateInsets(new Rect(100, 0, 500, 500), false);
+        assertEquals(Insets.NONE, insets);
+    }
+
+    @Test
+    public void testCalculateInsets_zeroWidthIntersection_horizontal_start() {
+        mSource.setFrame(new Rect(0, 0, 100, 500));
+        Insets insets = mSource.calculateInsets(new Rect(0, 0, 500, 0), false);
+        assertEquals(Insets.of(100, 0, 0, 0), insets);
+    }
+
+    @Test
+    public void testCalculateInsets_zeroWidthIntersection_horizontal_end() {
+        mSource.setFrame(new Rect(0, 0, 100, 500));
+        Insets insets = mSource.calculateInsets(new Rect(0, 500, 500, 500), false);
+        assertEquals(Insets.of(100, 0, 0, 0), insets);
+    }
+
+    @Test
     public void testCalculateVisibleInsets_override() {
         mSource.setFrame(new Rect(0, 0, 500, 100));
         mSource.setVisibleFrame(new Rect(0, 0, 500, 200));
diff --git a/core/tests/coretests/src/android/view/InsetsStateTest.java b/core/tests/coretests/src/android/view/InsetsStateTest.java
index 1d8e0a3..2884777 100644
--- a/core/tests/coretests/src/android/view/InsetsStateTest.java
+++ b/core/tests/coretests/src/android/view/InsetsStateTest.java
@@ -73,7 +73,7 @@
             mState.getSource(ITYPE_IME).setVisible(true);
             SparseIntArray typeSideMap = new SparseIntArray();
             WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
-                    false, DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_RESIZE, 0, typeSideMap);
+                    false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_RESIZE, 0, typeSideMap);
             assertEquals(Insets.of(0, 100, 0, 100), insets.getSystemWindowInsets());
             assertEquals(Insets.of(0, 100, 0, 100), insets.getInsets(Type.all()));
             assertEquals(ISIDE_TOP, typeSideMap.get(ITYPE_STATUS_BAR));
@@ -92,7 +92,7 @@
             mState.getSource(ITYPE_IME).setFrame(new Rect(0, 100, 100, 300));
             mState.getSource(ITYPE_IME).setVisible(true);
             WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
-                    false, DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_RESIZE, 0, null);
+                    false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_RESIZE, 0, null);
             assertEquals(100, insets.getStableInsetBottom());
             assertEquals(Insets.of(0, 0, 0, 100), insets.getInsetsIgnoringVisibility(Type.systemBars()));
             assertEquals(Insets.of(0, 0, 0, 200), insets.getSystemWindowInsets());
@@ -111,7 +111,7 @@
             mState.getSource(ITYPE_NAVIGATION_BAR).setFrame(new Rect(80, 0, 100, 300));
             mState.getSource(ITYPE_NAVIGATION_BAR).setVisible(true);
             WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
-                    false, DisplayCutout.NO_CUTOUT, null, null, 0, 0, null);
+                    false, DisplayCutout.NO_CUTOUT, 0, 0, null);
             assertEquals(Insets.of(0, 100, 20, 0), insets.getSystemWindowInsets());
             assertEquals(Insets.of(0, 100, 0, 0), insets.getInsets(Type.statusBars()));
             assertEquals(Insets.of(0, 0, 20, 0), insets.getInsets(Type.navigationBars()));
@@ -127,7 +127,7 @@
             mState.getSource(ITYPE_IME).setFrame(new Rect(0, 200, 100, 300));
             mState.getSource(ITYPE_IME).setVisible(true);
             WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
-                    false, DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_NOTHING, 0, null);
+                    false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_NOTHING, 0, null);
             assertEquals(0, insets.getSystemWindowInsetBottom());
             assertEquals(100, insets.getInsets(ime()).bottom);
             assertTrue(insets.isVisible(ime()));
@@ -143,16 +143,45 @@
             mState.getSource(ITYPE_IME).setFrame(new Rect(0, 200, 100, 300));
             mState.getSource(ITYPE_IME).setVisible(true);
             WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false,
-                    false, DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_NOTHING,
+                    false, DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_NOTHING,
                     SYSTEM_UI_FLAG_LAYOUT_STABLE, null);
             assertEquals(100, insets.getSystemWindowInsetTop());
             insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false, false,
-                    DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_NOTHING,
+                    DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_NOTHING,
                     0 /* legacySystemUiFlags */, null);
             assertEquals(0, insets.getSystemWindowInsetTop());
         }
     }
 
+
+    @Test
+    public void testCalculateInsets_captionStatusBarOverlap() throws Exception {
+        try (InsetsModeSession session =
+                     new InsetsModeSession(ViewRootImpl.NEW_INSETS_MODE_FULL)) {
+            mState.getSource(ITYPE_STATUS_BAR).setFrame(new Rect(0, 0, 100, 100));
+            mState.getSource(ITYPE_STATUS_BAR).setVisible(true);
+            mState.getSource(ITYPE_CAPTION_BAR).setFrame(new Rect(0, 0, 100, 300));
+            mState.getSource(ITYPE_CAPTION_BAR).setVisible(true);
+
+            Rect visibleInsets = mState.calculateVisibleInsets(
+                    new Rect(0, 0, 100, 400), SOFT_INPUT_ADJUST_NOTHING);
+            assertEquals(new Rect(0, 300, 0, 0), visibleInsets);
+        }
+    }
+
+    @Test
+    public void testCalculateInsets_captionBarOffset() throws Exception {
+        try (InsetsModeSession session =
+                     new InsetsModeSession(ViewRootImpl.NEW_INSETS_MODE_FULL)) {
+            mState.getSource(ITYPE_CAPTION_BAR).setFrame(new Rect(0, 0, 100, 300));
+            mState.getSource(ITYPE_CAPTION_BAR).setVisible(true);
+
+            Rect visibleInsets = mState.calculateVisibleInsets(
+                    new Rect(0, 0, 150, 400), SOFT_INPUT_ADJUST_NOTHING);
+            assertEquals(new Rect(0, 300, 0, 0), visibleInsets);
+        }
+    }
+
     @Test
     public void testStripForDispatch() {
         mState.getSource(ITYPE_STATUS_BAR).setFrame(new Rect(0, 0, 100, 100));
@@ -161,7 +190,7 @@
         mState.getSource(ITYPE_IME).setVisible(true);
         mState.removeSource(ITYPE_IME);
         WindowInsets insets = mState.calculateInsets(new Rect(0, 0, 100, 300), null, false, false,
-                DisplayCutout.NO_CUTOUT, null, null, SOFT_INPUT_ADJUST_RESIZE, 0, null);
+                DisplayCutout.NO_CUTOUT, SOFT_INPUT_ADJUST_RESIZE, 0, null);
         assertEquals(0, insets.getSystemWindowInsetBottom());
     }
 
@@ -255,7 +284,7 @@
             mState.getSource(ITYPE_BOTTOM_GESTURES).setFrame(new Rect(0, 100, 100, 300));
             mState.getSource(ITYPE_BOTTOM_GESTURES).setVisible(true);
             Rect visibleInsets = mState.calculateVisibleInsets(
-                    new Rect(0, 0, 100, 300), new Rect(), SOFT_INPUT_ADJUST_PAN);
+                    new Rect(0, 0, 100, 300), SOFT_INPUT_ADJUST_PAN);
             assertEquals(new Rect(0, 100, 0, 100), visibleInsets);
         }
     }
@@ -273,7 +302,7 @@
             mState.getSource(ITYPE_BOTTOM_GESTURES).setFrame(new Rect(0, 100, 100, 300));
             mState.getSource(ITYPE_BOTTOM_GESTURES).setVisible(true);
             Rect visibleInsets = mState.calculateVisibleInsets(
-                    new Rect(0, 0, 100, 300), new Rect(), SOFT_INPUT_ADJUST_NOTHING);
+                    new Rect(0, 0, 100, 300), SOFT_INPUT_ADJUST_NOTHING);
             assertEquals(new Rect(0, 100, 0, 0), visibleInsets);
         }
     }
diff --git a/core/tests/coretests/src/android/view/ScaleGestureDetectorTest.java b/core/tests/coretests/src/android/view/ScaleGestureDetectorTest.java
index 039387c..46e55fa 100644
--- a/core/tests/coretests/src/android/view/ScaleGestureDetectorTest.java
+++ b/core/tests/coretests/src/android/view/ScaleGestureDetectorTest.java
@@ -22,7 +22,7 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import android.util.Size;
+import android.graphics.Rect;
 import android.widget.TextView;
 
 import androidx.test.filters.LargeTest;
@@ -55,9 +55,9 @@
 
         // Specify start and end coordinates with respect to the window size.
         final WindowManager wm = mScaleGestureActivity.getSystemService(WindowManager.class);
-        final Size windowSize = wm.getCurrentWindowMetrics().getSize();
-        final int windowWidth = windowSize.getWidth();
-        final int windowHeight = windowSize.getHeight();
+        final Rect windowBounds = wm.getCurrentWindowMetrics().getBounds();
+        final int windowWidth = windowBounds.width();
+        final int windowHeight = windowBounds.height();
 
         // Obtain coordinates to perform pinch and zoom from the center, to 75% of the display.
         final int centerX = windowWidth / 2;
diff --git a/core/tests/coretests/src/android/view/WindowMetricsTest.java b/core/tests/coretests/src/android/view/WindowMetricsTest.java
index fa68860..74524bf 100644
--- a/core/tests/coretests/src/android/view/WindowMetricsTest.java
+++ b/core/tests/coretests/src/android/view/WindowMetricsTest.java
@@ -22,10 +22,10 @@
 import static org.junit.Assert.assertTrue;
 
 import android.content.Context;
+import android.graphics.Rect;
 import android.hardware.display.DisplayManager;
 import android.os.Handler;
 import android.platform.test.annotations.Presubmit;
-import android.util.Size;
 
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.SmallTest;
@@ -87,10 +87,12 @@
 
     private static void verifyMetricsSanity(WindowMetrics currentMetrics,
             WindowMetrics maxMetrics) {
-        Size currentSize = currentMetrics.getSize();
-        Size maxSize = maxMetrics.getSize();
+        Rect currentBounds = currentMetrics.getBounds();
+        Rect maxBounds = maxMetrics.getBounds();
 
-        assertTrue(maxSize.getWidth() >= currentSize.getWidth());
-        assertTrue(maxSize.getHeight() >= currentSize.getHeight());
+        assertTrue(maxBounds.width() >= currentBounds.width());
+        assertTrue(maxBounds.height() >= currentBounds.height());
+        assertTrue(maxBounds.left >= 0);
+        assertTrue(maxBounds.top >= 0);
     }
 }
diff --git a/core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java b/core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java
index 12f67a6..75a7504 100644
--- a/core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java
+++ b/core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java
@@ -156,9 +156,7 @@
         return -1;
     }
 
-    public boolean takeScreenshot(int displayId, RemoteCallback callback) {
-        return false;
-    }
+    public void takeScreenshot(int displayId, RemoteCallback callback) {}
 
     public void setTouchExplorationPassthroughRegion(int displayId, Region region) {}
 
diff --git a/core/tests/coretests/src/android/view/contentcapture/ContentCaptureManagerTest.java b/core/tests/coretests/src/android/view/contentcapture/ContentCaptureManagerTest.java
index ba27fac..eae1bbc 100644
--- a/core/tests/coretests/src/android/view/contentcapture/ContentCaptureManagerTest.java
+++ b/core/tests/coretests/src/android/view/contentcapture/ContentCaptureManagerTest.java
@@ -15,11 +15,12 @@
  */
 package android.view.contentcapture;
 
+import static org.mockito.Mockito.mock;
 import static org.testng.Assert.assertThrows;
 
+import android.content.ContentCaptureOptions;
 import android.content.Context;
 
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -37,16 +38,20 @@
     @Mock
     private Context mMockContext;
 
-    private ContentCaptureManager mManager;
-
-    @Before
-    public void before() {
-        mManager = new ContentCaptureManager(mMockContext, /* service= */ null,
-                /* options= */ null);
+    @Test
+    public void testConstructor_invalidParametersThrowsException() {
+        assertThrows(NullPointerException.class,
+                () -> new ContentCaptureManager(mMockContext, /* service= */ null, /* options= */
+                        null));
     }
 
     @Test
-    public void testRemoveData_invalid() {
-        assertThrows(NullPointerException.class, () -> mManager.removeData(null));
+    public void testRemoveData_invalidParametersThrowsException() {
+        final IContentCaptureManager mockService = mock(IContentCaptureManager.class);
+        final ContentCaptureOptions options = new ContentCaptureOptions(null);
+        final ContentCaptureManager manager =
+                new ContentCaptureManager(mMockContext, mockService, options);
+
+        assertThrows(NullPointerException.class, () -> manager.removeData(null));
     }
 }
diff --git a/core/tests/coretests/src/android/view/menu/ContextMenuTest.java b/core/tests/coretests/src/android/view/menu/ContextMenuTest.java
index d5825e2..4bd9ccd 100644
--- a/core/tests/coretests/src/android/view/menu/ContextMenuTest.java
+++ b/core/tests/coretests/src/android/view/menu/ContextMenuTest.java
@@ -16,9 +16,9 @@
 
 package android.view.menu;
 
+import android.graphics.Rect;
 import android.test.ActivityInstrumentationTestCase;
 import android.util.PollingCheck;
-import android.util.Size;
 import android.view.View;
 import android.view.WindowManager;
 import android.widget.espresso.ContextMenuUtils;
@@ -81,8 +81,8 @@
      */
     private int getMinScreenDimension() {
         final WindowManager windowManager = getActivity().getSystemService(WindowManager.class);
-        final Size maxWindowSize = windowManager.getMaximumWindowMetrics().getSize();
-        return Math.min(maxWindowSize.getWidth(), maxWindowSize.getHeight());
+        final Rect maxWindowBounds = windowManager.getMaximumWindowMetrics().getBounds();
+        return Math.min(maxWindowBounds.width(), maxWindowBounds.height());
     }
 
     /**
diff --git a/core/tests/coretests/src/android/widget/EditorCursorDragTest.java b/core/tests/coretests/src/android/widget/EditorCursorDragTest.java
index f81964c..4bfffd7 100644
--- a/core/tests/coretests/src/android/widget/EditorCursorDragTest.java
+++ b/core/tests/coretests/src/android/widget/EditorCursorDragTest.java
@@ -16,6 +16,7 @@
 
 package android.widget;
 
+import static android.text.Spanned.SPAN_INCLUSIVE_EXCLUSIVE;
 import static android.widget.espresso.TextViewActions.clickOnTextAtIndex;
 import static android.widget.espresso.TextViewActions.dragOnText;
 import static android.widget.espresso.TextViewAssertions.hasInsertionPointerAtIndex;
@@ -36,7 +37,11 @@
 import android.app.Activity;
 import android.app.Instrumentation;
 import android.graphics.Rect;
+import android.platform.test.annotations.Presubmit;
 import android.text.Layout;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.style.AbsoluteSizeSpan;
 import android.util.ArraySet;
 import android.util.Log;
 import android.view.InputDevice;
@@ -44,7 +49,7 @@
 import android.view.View;
 
 import androidx.test.InstrumentationRegistry;
-import androidx.test.filters.SmallTest;
+import androidx.test.filters.MediumTest;
 import androidx.test.filters.Suppress;
 import androidx.test.rule.ActivityTestRule;
 import androidx.test.runner.AndroidJUnit4;
@@ -63,7 +68,8 @@
 import java.util.concurrent.atomic.AtomicLong;
 
 @RunWith(AndroidJUnit4.class)
-@SmallTest
+@MediumTest
+@Presubmit
 public class EditorCursorDragTest {
     private static final String LOG_TAG = EditorCursorDragTest.class.getSimpleName();
 
@@ -488,6 +494,39 @@
         simulateDrag(tv, events, true);
     }
 
+    @Suppress // b/152574363
+    @Test
+    public void testLineChangeSlop() throws Throwable {
+        TextView tv = mActivity.findViewById(R.id.textview);
+        Spannable s = new SpannableString("a\nb\nc");
+        s.setSpan(new AbsoluteSizeSpan(10), 2, 4, SPAN_INCLUSIVE_EXCLUSIVE);
+        s.setSpan(new AbsoluteSizeSpan(32), 4, 5, SPAN_INCLUSIVE_EXCLUSIVE);
+        mInstrumentation.runOnMainSync(() -> tv.setText(s));
+
+        Layout layout = tv.getLayout();
+        Editor editor = tv.getEditorForTesting();
+        final float verticalOffset = tv.getExtendedPaddingTop();
+        editor.setLineChangeSlopMinMaxForTesting(30, 65);
+        // Hit top part of upper line, jump to upper line.
+        assertThat(editor.getCurrentLineAdjustedForSlop(layout, 1, 5 + verticalOffset))
+                .isEqualTo(0);
+        // Hit bottom part of upper line, stay at current line.
+        assertThat(editor.getCurrentLineAdjustedForSlop(layout, 1, 40 + verticalOffset))
+                .isEqualTo(1);
+        // Hit current line, stay at current line.
+        assertThat(editor.getCurrentLineAdjustedForSlop(layout, 1, 70 + verticalOffset))
+                .isEqualTo(1);
+        // Hit top part of lower line, stay at current line.
+        assertThat(editor.getCurrentLineAdjustedForSlop(layout, 1, 85 + verticalOffset))
+                .isEqualTo(1);
+        // Hit bottom part of lower line, jump to lower line.
+        assertThat(editor.getCurrentLineAdjustedForSlop(layout, 1, 110 + verticalOffset))
+                .isEqualTo(2);
+        // Hit lower line of lower line, jump to target line.
+        assertThat(editor.getCurrentLineAdjustedForSlop(layout, 0, 110 + verticalOffset))
+                .isEqualTo(2);
+    }
+
     @Test
     public void testCursorDrag_snapDistance() throws Throwable {
         String text = "line1: This is the 1st line: A\n"
diff --git a/core/tests/coretests/src/android/widget/EditorTouchStateTest.java b/core/tests/coretests/src/android/widget/EditorTouchStateTest.java
index 3dc001d..ec75e40 100644
--- a/core/tests/coretests/src/android/widget/EditorTouchStateTest.java
+++ b/core/tests/coretests/src/android/widget/EditorTouchStateTest.java
@@ -22,6 +22,7 @@
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
 
+import android.platform.test.annotations.Presubmit;
 import android.view.InputDevice;
 import android.view.MotionEvent;
 import android.view.ViewConfiguration;
@@ -36,6 +37,7 @@
 
 @RunWith(JUnit4.class)
 @SmallTest
+@Presubmit
 public class EditorTouchStateTest {
 
     private EditorTouchState mTouchState;
diff --git a/core/tests/coretests/src/android/widget/TextViewActivityTest.java b/core/tests/coretests/src/android/widget/TextViewActivityTest.java
index a72be25..45d4b38 100644
--- a/core/tests/coretests/src/android/widget/TextViewActivityTest.java
+++ b/core/tests/coretests/src/android/widget/TextViewActivityTest.java
@@ -65,6 +65,7 @@
 import android.app.Instrumentation;
 import android.content.ClipData;
 import android.content.ClipboardManager;
+import android.os.Bundle;
 import android.support.test.uiautomator.UiDevice;
 import android.text.InputType;
 import android.text.Selection;
@@ -75,6 +76,7 @@
 import android.view.KeyEvent;
 import android.view.Menu;
 import android.view.MenuItem;
+import android.view.accessibility.AccessibilityNodeInfo;
 import android.view.textclassifier.SelectionEvent;
 import android.view.textclassifier.TextClassificationManager;
 import android.view.textclassifier.TextClassifier;
@@ -358,6 +360,20 @@
     }
 
     @Test
+    public void testToolbarAppearsAccessibilityLongClick() throws Throwable {
+        final String text = "Toolbar appears after performing accessibility's ACTION_LONG_CLICK.";
+        mActivityRule.runOnUiThread(() -> {
+            final TextView textView = mActivity.findViewById(R.id.textview);
+            final Bundle args = new Bundle();
+            textView.performAccessibilityAction(AccessibilityNodeInfo.ACTION_LONG_CLICK, args);
+        });
+        mInstrumentation.waitForIdleSync();
+
+        sleepForFloatingToolbarPopup();
+        assertFloatingToolbarIsDisplayed();
+    }
+
+    @Test
     public void testSelectionRemovedWhenNonselectableTextLosesFocus() throws Throwable {
         final TextLinks.TextLink textLink = addLinkifiedTextToTextView(R.id.nonselectable_textview);
         final int position = (textLink.getStart() + textLink.getEnd()) / 2;
diff --git a/core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java b/core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java
index 8e90a82..d51cc32 100644
--- a/core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java
+++ b/core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java
@@ -111,7 +111,7 @@
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
-        mScreenHeight = getWindowManager().getCurrentWindowMetrics().getSize().getHeight();
+        mScreenHeight = getWindowManager().getCurrentWindowMetrics().getBounds().height();
 
         Bundle extras = getIntent().getExtras();
         if (extras != null) {
diff --git a/core/tests/coretests/src/android/widget/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java b/core/tests/coretests/src/android/widget/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java
index fd1dbfc..5cedd13 100644
--- a/core/tests/coretests/src/android/widget/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java
+++ b/core/tests/coretests/src/android/widget/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java
@@ -106,8 +106,8 @@
 
         int firstTop = firstChild.getTop();
 
-        int windowHeight = mActivity.getWindowManager().getCurrentWindowMetrics().getSize()
-                .getHeight();
+        int windowHeight = mActivity.getWindowManager().getCurrentWindowMetrics().getBounds()
+                .height();
         int distance = TouchUtils.dragViewBy(this, firstChild, 
                 Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, (int) (windowHeight * 0.75f));
         
diff --git a/core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java b/core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java
index e6195b1..5cca766 100644
--- a/core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java
+++ b/core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java
@@ -66,7 +66,7 @@
         super.onCreate(savedInstanceState);
 
         final int desiredHeight =
-                (int) (0.8 * getWindowManager().getCurrentWindowMetrics().getSize().getHeight());
+                (int) (0.8 * getWindowManager().getCurrentWindowMetrics().getBounds().height());
 
         mLeftListView = new ListView(this);
         mLeftListView.setAdapter(new AdjacentISVAdapter(desiredHeight));
diff --git a/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java
index 9af0ed0..4a33da6 100644
--- a/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java
+++ b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java
@@ -17,7 +17,6 @@
 package com.android.internal.accessibility;
 
 import static android.provider.Settings.Secure.ACCESSIBILITY_SHORTCUT_DIALOG_SHOWN;
-import static android.provider.Settings.Secure.ACCESSIBILITY_SHORTCUT_ENABLED;
 import static android.provider.Settings.Secure.ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN;
 import static android.provider.Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
 import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
@@ -102,10 +101,8 @@
     private static final long[] VIBRATOR_PATTERN_LONG = {VIBRATOR_PATTERN_1, VIBRATOR_PATTERN_2};
 
     // Convenience values for enabling/disabling to make code more readable
-    private static final int DISABLED = 0;
     private static final int ENABLED_EXCEPT_LOCK_SCREEN = 1;
     private static final int ENABLED_INCLUDING_LOCK_SCREEN = 2;
-    private static final int DISABLED_BUT_LOCK_SCREEN_ON = 3;
 
     private @Mock Context mContext;
     private @Mock FrameworkObjectProvider mFrameworkObjectProvider;
@@ -225,14 +222,6 @@
     }
 
     @Test
-    public void testShortcutAvailable_disabledWithValidServiceWhenCreated_shouldReturnFalse()
-            throws Exception {
-        configureValidShortcutService();
-        configureShortcutEnabled(DISABLED_BUT_LOCK_SCREEN_ON);
-        assertFalse(getController().isAccessibilityShortcutAvailable(false));
-    }
-
-    @Test
     public void testShortcutAvailable_onLockScreenButDisabledThere_shouldReturnFalse()
             throws Exception {
         configureValidShortcutService();
@@ -285,20 +274,8 @@
     }
 
     @Test
-    public void testShortcutAvailable_whenShortcutBecomesDisabled_shouldReturnFalse()
-            throws Exception {
-        configureShortcutEnabled(ENABLED_EXCEPT_LOCK_SCREEN);
-        configureValidShortcutService();
-        AccessibilityShortcutController accessibilityShortcutController = getController();
-        configureShortcutEnabled(DISABLED);
-        accessibilityShortcutController.onSettingsChanged();
-        assertFalse(accessibilityShortcutController.isAccessibilityShortcutAvailable(false));
-    }
-
-    @Test
     public void testShortcutAvailable_whenShortcutBecomesEnabled_shouldReturnTrue()
             throws Exception {
-        configureShortcutEnabled(DISABLED);
         configureValidShortcutService();
         AccessibilityShortcutController accessibilityShortcutController = getController();
         configureShortcutEnabled(ENABLED_EXCEPT_LOCK_SCREEN);
@@ -594,31 +571,19 @@
     }
 
     private void configureShortcutEnabled(int enabledValue) {
-        final boolean enabled;
         final boolean lockscreen;
 
         switch (enabledValue) {
-            case DISABLED:
-                enabled = false;
-                lockscreen = false;
-                break;
-            case DISABLED_BUT_LOCK_SCREEN_ON:
-                enabled = false;
-                lockscreen = true;
-                break;
             case ENABLED_INCLUDING_LOCK_SCREEN:
-                enabled = true;
                 lockscreen = true;
                 break;
             case ENABLED_EXCEPT_LOCK_SCREEN:
-                enabled = true;
                 lockscreen = false;
                 break;
             default:
                 throw new IllegalArgumentException();
         }
 
-        Settings.Secure.putInt(mContentResolver, ACCESSIBILITY_SHORTCUT_ENABLED, enabled ? 1 : 0);
         Settings.Secure.putInt(
                 mContentResolver, ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN, lockscreen ? 1 : 0);
     }
diff --git a/core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java b/core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java
index a6cbc1a..e427421 100644
--- a/core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java
+++ b/core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java
@@ -1343,7 +1343,7 @@
         onView(withText(R.string.resolver_work_tab)).perform(click());
         waitForIdle();
 
-        onView(withText(R.string.resolver_turn_on_work_apps_share))
+        onView(withText(R.string.resolver_turn_on_work_apps))
                 .check(matches(isDisplayed()));
     }
 
@@ -1368,7 +1368,7 @@
         onView(withText(R.string.resolver_work_tab)).perform(click());
         waitForIdle();
 
-        onView(withText(R.string.resolver_no_apps_available))
+        onView(withText(R.string.resolver_no_work_apps_available_share))
                 .check(matches(isDisplayed()));
     }
 
diff --git a/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java b/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java
index 9d1ca61..4ec89b7 100644
--- a/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java
+++ b/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java
@@ -624,7 +624,7 @@
         onView(withText(R.string.resolver_work_tab)).perform(click());
         waitForIdle();
 
-        onView(withText(R.string.resolver_turn_on_work_apps_view))
+        onView(withText(R.string.resolver_turn_on_work_apps))
                 .check(matches(isDisplayed()));
     }
 
@@ -648,7 +648,7 @@
         onView(withText(R.string.resolver_work_tab)).perform(click());
         waitForIdle();
 
-        onView(withText(R.string.resolver_no_apps_available))
+        onView(withText(R.string.resolver_no_work_apps_available_resolve))
                 .check(matches(isDisplayed()));
     }
 
diff --git a/data/etc/hiddenapi-package-whitelist.xml b/data/etc/hiddenapi-package-whitelist.xml
index 5c89da0..98f5824 100644
--- a/data/etc/hiddenapi-package-whitelist.xml
+++ b/data/etc/hiddenapi-package-whitelist.xml
@@ -61,7 +61,6 @@
   <hidden-api-whitelisted-app package="com.android.terminal" />
   <hidden-api-whitelisted-app package="com.android.wallpaper" />
   <hidden-api-whitelisted-app package="jp.co.omronsoft.openwnn" />
-  <!-- STOPSHIP: Remove this when fixing all @hide usage for tethering.-->
-  <hidden-api-whitelisted-app package="com.android.networkstack.tethering" />
+  <!-- TODO: Remove NetworkStack whitelisting -->
   <hidden-api-whitelisted-app package="com.android.networkstack" />
 </config>
diff --git a/data/etc/platform.xml b/data/etc/platform.xml
index 6929d0d..f63ec6b 100644
--- a/data/etc/platform.xml
+++ b/data/etc/platform.xml
@@ -190,6 +190,8 @@
     <assign-permission name="android.permission.STATSCOMPANION" uid="statsd" />
     <assign-permission name="android.permission.UPDATE_APP_OPS_STATS" uid="statsd" />
 
+    <assign-permission name="android.permission.REGISTER_STATS_PULL_ATOM" uid="gpu_service" />
+
     <split-permission name="android.permission.ACCESS_FINE_LOCATION">
         <new-permission name="android.permission.ACCESS_COARSE_LOCATION" />
     </split-permission>
diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml
index 5466ac8..59bdf3d 100644
--- a/data/etc/privapp-permissions-platform.xml
+++ b/data/etc/privapp-permissions-platform.xml
@@ -27,6 +27,10 @@
         <permission name="android.permission.INTERACT_ACROSS_USERS" />
     </privapp-permissions>
 
+    <privapp-permissions package="com.android.angle">
+        <permission name="android.permission.WRITE_SECURE_SETTINGS"/>
+    </privapp-permissions>
+
     <privapp-permissions package="com.android.apps.tag">
         <permission name="android.permission.WRITE_SECURE_SETTINGS"/>
     </privapp-permissions>
@@ -36,11 +40,6 @@
         <permission name="android.permission.CRYPT_KEEPER"/>
     </privapp-permissions>
 
-    <privapp-permissions package="com.android.captiveportallogin">
-        <permission name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS"/>
-        <permission name="android.permission.NETWORK_BYPASS_PRIVATE_DNS"/>
-    </privapp-permissions>
-
     <privapp-permissions package="com.android.cellbroadcastreceiver">
         <permission name="android.permission.INTERACT_ACROSS_USERS"/>
         <permission name="android.permission.MANAGE_USERS"/>
@@ -260,6 +259,7 @@
     </privapp-permissions>
 
     <privapp-permissions package="com.android.networkstack.tethering">
+        <permission name="android.permission.BLUETOOTH_PRIVILEGED" />
         <permission name="android.permission.MANAGE_USB"/>
         <permission name="android.permission.MODIFY_PHONE_STATE"/>
         <permission name="android.permission.READ_NETWORK_USAGE_HISTORY"/>
@@ -361,6 +361,7 @@
         <permission name="android.permission.SUSPEND_APPS" />
         <permission name="android.permission.UPDATE_APP_OPS_STATS"/>
         <permission name="android.permission.USE_RESERVED_DISK"/>
+        <permission name="android.permission.WIFI_UPDATE_USABILITY_STATS_SCORE"/>
         <permission name="android.permission.WRITE_MEDIA_STORAGE"/>
         <permission name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
         <permission name="android.permission.WRITE_SECURE_SETTINGS"/>
@@ -400,6 +401,12 @@
         <permission name="android.permission.COMPANION_APPROVE_WIFI_CONNECTIONS" />
         <!-- Permission required for testing registering pull atom callbacks. -->
         <permission name="android.permission.REGISTER_STATS_PULL_ATOM"/>
+        <!-- Permission required for testing system audio effect APIs. -->
+        <permission name="android.permission.MODIFY_DEFAULT_AUDIO_EFFECTS"/>
+        <!-- Permissions required for CTS test - TunerTest -->
+        <permission name="android.permission.ACCESS_TV_DESCRAMBLER" />
+        <permission name="android.permission.ACCESS_TV_TUNER" />
+        <permission name="android.permission.TUNER_RESOURCE_ACCESS" />
     </privapp-permissions>
 
     <privapp-permissions package="com.android.statementservice">
diff --git a/docs/html/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-0.5-crop-11.png b/docs/html/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-0.5-crop-11.png
new file mode 100644
index 0000000..1acc59d
--- /dev/null
+++ b/docs/html/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-0.5-crop-11.png
Binary files differ
diff --git a/docs/html/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-2-crop-169.png b/docs/html/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-2-crop-169.png
new file mode 100644
index 0000000..4ab9ca4
--- /dev/null
+++ b/docs/html/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-2-crop-169.png
Binary files differ
diff --git a/docs/html/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-2-crop-43.png b/docs/html/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-2-crop-43.png
new file mode 100644
index 0000000..d74e673
--- /dev/null
+++ b/docs/html/reference/images/camera2/metadata/android.control.zoomRatio/zoom-ratio-2-crop-43.png
Binary files differ
diff --git a/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java b/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java
index 746378e..31ad81b 100644
--- a/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java
+++ b/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java
@@ -975,6 +975,7 @@
 
                 mChangingConfigurations = orig.mChangingConfigurations;
                 mChildrenChangingConfigurations = orig.mChildrenChangingConfigurations;
+                mSourceDrawableId = orig.mSourceDrawableId;
 
                 for (int i = 0; i < N_CHILDREN; i++) {
                     final ChildDrawable or = origChildDrawable[i];
diff --git a/libs/androidfw/Android.bp b/libs/androidfw/Android.bp
index f87f98a..02c85aa 100644
--- a/libs/androidfw/Android.bp
+++ b/libs/androidfw/Android.bp
@@ -44,7 +44,6 @@
         "AttributeResolution.cpp",
         "ChunkIterator.cpp",
         "ConfigDescription.cpp",
-        "DynamicLibManager.cpp",
         "Idmap.cpp",
         "LoadedArsc.cpp",
         "Locale.cpp",
diff --git a/libs/androidfw/ApkAssets.cpp b/libs/androidfw/ApkAssets.cpp
index 18934fd..918e7af 100644
--- a/libs/androidfw/ApkAssets.cpp
+++ b/libs/androidfw/ApkAssets.cpp
@@ -21,6 +21,7 @@
 #include "android-base/errors.h"
 #include "android-base/file.h"
 #include "android-base/logging.h"
+#include "android-base/stringprintf.h"
 #include "android-base/unique_fd.h"
 #include "android-base/utf8.h"
 #include "utils/Compat.h"
@@ -40,29 +41,342 @@
 
 static const std::string kResourcesArsc("resources.arsc");
 
-ApkAssets::ApkAssets(ZipArchiveHandle unmanaged_handle,
-                     const std::string& path,
+ApkAssets::ApkAssets(std::unique_ptr<const AssetsProvider> assets_provider,
+                     std::string path,
                      time_t last_mod_time,
                      package_property_t property_flags)
-    : zip_handle_(unmanaged_handle, ::CloseArchive), path_(path), last_mod_time_(last_mod_time),
+    : assets_provider_(std::move(assets_provider)),
+      path_(std::move(path)),
+      last_mod_time_(last_mod_time),
       property_flags_(property_flags) {
 }
 
-std::unique_ptr<const ApkAssets> ApkAssets::Load(const std::string& path, bool system,
-                                                 bool for_loader) {
-  package_property_t flags = (system ? PROPERTY_SYSTEM : 0U) |
-                             (for_loader ? PROPERTY_LOADER : 0U);
-  return LoadImpl({} /*fd*/, path, nullptr, nullptr, flags);
+// Provides asset files from a zip file.
+class ZipAssetsProvider : public AssetsProvider {
+ public:
+  ~ZipAssetsProvider() override = default;
+
+  static std::unique_ptr<const AssetsProvider> Create(const std::string& path) {
+    ::ZipArchiveHandle unmanaged_handle;
+    const int32_t result = ::OpenArchive(path.c_str(), &unmanaged_handle);
+    if (result != 0) {
+      LOG(ERROR) << "Failed to open APK '" << path << "' " << ::ErrorCodeString(result);
+      ::CloseArchive(unmanaged_handle);
+      return {};
+    }
+
+    return std::unique_ptr<AssetsProvider>(new ZipAssetsProvider(path, path, unmanaged_handle));
+  }
+
+  static std::unique_ptr<const AssetsProvider> Create(
+      unique_fd fd, const std::string& friendly_name, const off64_t offset = 0,
+      const off64_t length = ApkAssets::kUnknownLength) {
+
+    ::ZipArchiveHandle unmanaged_handle;
+    const int32_t result = (length == ApkAssets::kUnknownLength)
+        ? ::OpenArchiveFd(fd.release(), friendly_name.c_str(), &unmanaged_handle)
+        : ::OpenArchiveFdRange(fd.release(), friendly_name.c_str(), &unmanaged_handle, length,
+                               offset);
+
+    if (result != 0) {
+      LOG(ERROR) << "Failed to open APK '" << friendly_name << "' through FD with offset " << offset
+                 << " and length " << length << ": " << ::ErrorCodeString(result);
+      ::CloseArchive(unmanaged_handle);
+      return {};
+    }
+
+    return std::unique_ptr<AssetsProvider>(new ZipAssetsProvider({}, friendly_name,
+                                                                 unmanaged_handle));
+  }
+
+  // Iterate over all files and directories within the zip. The order of iteration is not
+  // guaranteed to be the same as the order of elements in the central directory but is stable for a
+  // given zip file.
+  bool ForEachFile(const std::string& root_path,
+                   const std::function<void(const StringPiece&, FileType)>& f) const override {
+    // If this is a resource loader from an .arsc, there will be no zip handle
+    if (zip_handle_ == nullptr) {
+      return false;
+    }
+
+    std::string root_path_full = root_path;
+    if (root_path_full.back() != '/') {
+      root_path_full += '/';
+    }
+
+    void* cookie;
+    if (::StartIteration(zip_handle_.get(), &cookie, root_path_full, "") != 0) {
+      return false;
+    }
+
+    std::string name;
+    ::ZipEntry entry{};
+
+    // We need to hold back directories because many paths will contain them and we want to only
+    // surface one.
+    std::set<std::string> dirs{};
+
+    int32_t result;
+    while ((result = ::Next(cookie, &entry, &name)) == 0) {
+      StringPiece full_file_path(name);
+      StringPiece leaf_file_path = full_file_path.substr(root_path_full.size());
+
+      if (!leaf_file_path.empty()) {
+        auto iter = std::find(leaf_file_path.begin(), leaf_file_path.end(), '/');
+        if (iter != leaf_file_path.end()) {
+          std::string dir =
+              leaf_file_path.substr(0, std::distance(leaf_file_path.begin(), iter)).to_string();
+          dirs.insert(std::move(dir));
+        } else {
+          f(leaf_file_path, kFileTypeRegular);
+        }
+      }
+    }
+    ::EndIteration(cookie);
+
+    // Now present the unique directories.
+    for (const std::string& dir : dirs) {
+      f(dir, kFileTypeDirectory);
+    }
+
+    // -1 is end of iteration, anything else is an error.
+    return result == -1;
+  }
+
+ protected:
+  std::unique_ptr<Asset> OpenInternal(
+      const std::string& path, Asset::AccessMode mode, bool* file_exists) const override {
+    if (file_exists) {
+      *file_exists = false;
+    }
+
+    ::ZipEntry entry;
+    int32_t result = ::FindEntry(zip_handle_.get(), path, &entry);
+    if (result != 0) {
+      return {};
+    }
+
+    if (file_exists) {
+      *file_exists = true;
+    }
+
+    const int fd = ::GetFileDescriptor(zip_handle_.get());
+     const off64_t fd_offset = ::GetFileDescriptorOffset(zip_handle_.get());
+    if (entry.method == kCompressDeflated) {
+      std::unique_ptr<FileMap> map = util::make_unique<FileMap>();
+      if (!map->create(GetPath(), fd, entry.offset + fd_offset, entry.compressed_length,
+                       true /*readOnly*/)) {
+        LOG(ERROR) << "Failed to mmap file '" << path << "' in APK '" << friendly_name_ << "'";
+        return {};
+      }
+
+      std::unique_ptr<Asset> asset =
+          Asset::createFromCompressedMap(std::move(map), entry.uncompressed_length, mode);
+      if (asset == nullptr) {
+        LOG(ERROR) << "Failed to decompress '" << path << "' in APK '" << friendly_name_ << "'";
+        return {};
+      }
+      return asset;
+    } else {
+      std::unique_ptr<FileMap> map = util::make_unique<FileMap>();
+      if (!map->create(GetPath(), fd, entry.offset + fd_offset, entry.uncompressed_length,
+                       true /*readOnly*/)) {
+        LOG(ERROR) << "Failed to mmap file '" << path << "' in APK '" << friendly_name_ << "'";
+        return {};
+      }
+
+      unique_fd ufd;
+      if (!GetPath()) {
+        // If the `path` is not set, create a new `fd` for the new Asset to own in order to create
+        // new file descriptors using Asset::openFileDescriptor. If the path is set, it will be used
+        // to create new file descriptors.
+        ufd = unique_fd(dup(fd));
+        if (!ufd.ok()) {
+          LOG(ERROR) << "Unable to dup fd '" << path << "' in APK '" << friendly_name_ << "'";
+          return {};
+        }
+      }
+
+      std::unique_ptr<Asset> asset = Asset::createFromUncompressedMap(std::move(map),
+          std::move(ufd), mode);
+      if (asset == nullptr) {
+        LOG(ERROR) << "Failed to mmap file '" << path << "' in APK '" << friendly_name_ << "'";
+        return {};
+      }
+      return asset;
+    }
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(ZipAssetsProvider);
+
+  explicit ZipAssetsProvider(std::string path,
+                             std::string friendly_name,
+                             ZipArchiveHandle unmanaged_handle)
+                             : zip_handle_(unmanaged_handle, ::CloseArchive),
+                               path_(std::move(path)),
+                               friendly_name_(std::move(friendly_name)) { }
+
+  const char* GetPath() const {
+    return path_.empty() ? nullptr : path_.c_str();
+  }
+
+  using ZipArchivePtr = std::unique_ptr<ZipArchive, void (*)(ZipArchiveHandle)>;
+  ZipArchivePtr zip_handle_;
+  std::string path_;
+  std::string friendly_name_;
+};
+
+class DirectoryAssetsProvider : AssetsProvider {
+ public:
+  ~DirectoryAssetsProvider() override = default;
+
+  static std::unique_ptr<const AssetsProvider> Create(const std::string& path) {
+    struct stat sb{};
+    const int result = stat(path.c_str(), &sb);
+    if (result == -1) {
+      LOG(ERROR) << "Failed to find directory '" << path << "'.";
+      return nullptr;
+    }
+
+    if (!S_ISDIR(sb.st_mode)) {
+      LOG(ERROR) << "Path '" << path << "' is not a directory.";
+      return nullptr;
+    }
+
+    return std::unique_ptr<AssetsProvider>(new DirectoryAssetsProvider(path));
+  }
+
+ protected:
+  std::unique_ptr<Asset> OpenInternal(
+      const std::string& path, Asset::AccessMode /* mode */, bool* file_exists) const override {
+    const std::string resolved_path = ResolvePath(path);
+    if (file_exists) {
+      struct stat sb{};
+      const int result = stat(resolved_path.c_str(), &sb);
+      *file_exists = result != -1 && S_ISREG(sb.st_mode);
+    }
+
+    return ApkAssets::CreateAssetFromFile(resolved_path);
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(DirectoryAssetsProvider);
+
+  explicit DirectoryAssetsProvider(std::string path) : path_(std::move(path)) { }
+
+  inline std::string ResolvePath(const std::string& path) const {
+    return base::StringPrintf("%s%c%s", path_.c_str(), OS_PATH_SEPARATOR, path.c_str());
+  }
+
+  const std::string path_;
+};
+
+// AssetProvider implementation that does not provide any assets. Used for ApkAssets::LoadEmpty.
+class EmptyAssetsProvider : public AssetsProvider {
+ public:
+  EmptyAssetsProvider() = default;
+  ~EmptyAssetsProvider() override = default;
+
+ protected:
+  std::unique_ptr<Asset> OpenInternal(const std::string& /*path */,
+                                      Asset::AccessMode /* mode */,
+                                      bool* file_exists) const override {
+    if (file_exists) {
+      *file_exists = false;
+    }
+    return nullptr;
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(EmptyAssetsProvider);
+};
+
+// AssetProvider implementation
+class MultiAssetsProvider : public AssetsProvider {
+ public:
+  ~MultiAssetsProvider() override = default;
+
+  static std::unique_ptr<const AssetsProvider> Create(
+      std::unique_ptr<const AssetsProvider> child, std::unique_ptr<const AssetsProvider> parent) {
+    CHECK(parent != nullptr) << "parent provider must not be null";
+    return (!child) ? std::move(parent)
+                    : std::unique_ptr<const AssetsProvider>(new MultiAssetsProvider(
+                        std::move(child), std::move(parent)));
+  }
+
+  bool ForEachFile(const std::string& root_path,
+                   const std::function<void(const StringPiece&, FileType)>& f) const override {
+    // TODO: Only call the function once for files defined in the parent and child
+    return child_->ForEachFile(root_path, f) && parent_->ForEachFile(root_path, f);
+  }
+
+ protected:
+  std::unique_ptr<Asset> OpenInternal(
+      const std::string& path, Asset::AccessMode mode, bool* file_exists) const override {
+    auto asset = child_->Open(path, mode, file_exists);
+    return (asset) ? std::move(asset) : parent_->Open(path, mode, file_exists);
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(MultiAssetsProvider);
+
+  MultiAssetsProvider(std::unique_ptr<const AssetsProvider> child,
+                      std::unique_ptr<const AssetsProvider> parent)
+                      : child_(std::move(child)), parent_(std::move(parent)) { }
+
+  std::unique_ptr<const AssetsProvider> child_;
+  std::unique_ptr<const AssetsProvider> parent_;
+};
+
+// Opens the archive using the file path. Calling CloseArchive on the zip handle will close the
+// file.
+std::unique_ptr<const ApkAssets> ApkAssets::Load(
+    const std::string& path, const package_property_t flags,
+    std::unique_ptr<const AssetsProvider> override_asset) {
+  auto assets = ZipAssetsProvider::Create(path);
+  return (assets) ? LoadImpl(std::move(assets), path, flags, std::move(override_asset))
+                  : nullptr;
 }
 
-std::unique_ptr<const ApkAssets> ApkAssets::LoadAsSharedLibrary(const std::string& path,
-                                                                bool system) {
-  package_property_t flags = PROPERTY_DYNAMIC | (system ? PROPERTY_SYSTEM : 0U);
-  return LoadImpl({} /*fd*/, path, nullptr, nullptr, flags);
+// Opens the archive using the file file descriptor with the specified file offset and read length.
+// If the `assume_ownership` parameter is 'true' calling CloseArchive will close the file.
+std::unique_ptr<const ApkAssets> ApkAssets::LoadFromFd(
+    unique_fd fd, const std::string& friendly_name, const package_property_t flags,
+    std::unique_ptr<const AssetsProvider> override_asset, const off64_t offset,
+    const off64_t length) {
+  CHECK(length >= kUnknownLength) << "length must be greater than or equal to " << kUnknownLength;
+  CHECK(length != kUnknownLength || offset == 0) << "offset must be 0 if length is "
+                                                 << kUnknownLength;
+
+  auto assets = ZipAssetsProvider::Create(std::move(fd), friendly_name, offset, length);
+  return (assets) ? LoadImpl(std::move(assets), friendly_name, flags, std::move(override_asset))
+                  : nullptr;
+}
+
+std::unique_ptr<const ApkAssets> ApkAssets::LoadTable(
+    const std::string& path, const package_property_t flags,
+    std::unique_ptr<const AssetsProvider> override_asset) {
+
+  auto assets = CreateAssetFromFile(path);
+  return (assets) ? LoadTableImpl(std::move(assets), path, flags, std::move(override_asset))
+                  : nullptr;
+}
+
+std::unique_ptr<const ApkAssets> ApkAssets::LoadTableFromFd(
+    unique_fd fd, const std::string& friendly_name, const package_property_t flags,
+    std::unique_ptr<const AssetsProvider> override_asset, const off64_t offset,
+    const off64_t length) {
+
+  auto assets = CreateAssetFromFd(std::move(fd), nullptr /* path */, offset, length);
+  return (assets) ? LoadTableImpl(std::move(assets), friendly_name, flags,
+                                  std::move(override_asset))
+                  : nullptr;
 }
 
 std::unique_ptr<const ApkAssets> ApkAssets::LoadOverlay(const std::string& idmap_path,
-                                                        bool system) {
+                                                        const package_property_t flags) {
+  CHECK((flags & PROPERTY_LOADER) == 0U) << "Cannot load RROs through loaders";
   std::unique_ptr<Asset> idmap_asset = CreateAssetFromFile(idmap_path);
   if (idmap_asset == nullptr) {
     return {};
@@ -76,110 +390,115 @@
     LOG(ERROR) << "failed to load IDMAP " << idmap_path;
     return {};
   }
-
-  return LoadImpl({} /*fd*/, loaded_idmap->OverlayApkPath(),
-                  std::move(idmap_asset),
-                  std::move(loaded_idmap),
-                  PROPERTY_OVERLAY | (system ? PROPERTY_SYSTEM : 0U));
+  
+  auto overlay_path = loaded_idmap->OverlayApkPath();
+  auto assets = ZipAssetsProvider::Create(overlay_path);
+  return (assets) ? LoadImpl(std::move(assets), overlay_path, flags | PROPERTY_OVERLAY,
+                             nullptr /* override_asset */, std::move(idmap_asset),
+                             std::move(loaded_idmap))
+                  : nullptr;
 }
 
-std::unique_ptr<const ApkAssets> ApkAssets::LoadFromFd(unique_fd fd,
-                                                       const std::string& friendly_name,
-                                                       bool system, bool force_shared_lib,
-                                                       bool for_loader) {
-  package_property_t flags = (system ? PROPERTY_SYSTEM : 0U) |
-                             (force_shared_lib ? PROPERTY_DYNAMIC : 0U) |
-                             (for_loader ? PROPERTY_LOADER : 0U);
-  return LoadImpl(std::move(fd), friendly_name, nullptr /*idmap_asset*/, nullptr /*loaded_idmap*/,
-                  flags);
+std::unique_ptr<const ApkAssets> ApkAssets::LoadFromDir(
+    const std::string& path, const package_property_t flags,
+    std::unique_ptr<const AssetsProvider> override_asset) {
+
+  auto assets = DirectoryAssetsProvider::Create(path);
+  return (assets) ? LoadImpl(std::move(assets), path, flags, std::move(override_asset))
+                  : nullptr;
 }
 
-std::unique_ptr<const ApkAssets> ApkAssets::LoadArsc(const std::string& path,
-                                                     bool for_loader) {
-  return LoadArscImpl({} /*fd*/, path, for_loader ? PROPERTY_LOADER : 0U);
-}
+std::unique_ptr<const ApkAssets> ApkAssets::LoadEmpty(
+    const package_property_t flags, std::unique_ptr<const AssetsProvider> override_asset) {
 
-std::unique_ptr<const ApkAssets> ApkAssets::LoadArsc(unique_fd fd,
-                                                     const std::string& friendly_name,
-                                                     bool for_loader) {
-  return LoadArscImpl(std::move(fd), friendly_name, for_loader ? PROPERTY_LOADER : 0U);
+  auto assets = (override_asset) ? std::move(override_asset)
+                                 : std::unique_ptr<const AssetsProvider>(new EmptyAssetsProvider());
+  std::unique_ptr<ApkAssets> loaded_apk(new ApkAssets(std::move(assets), "empty" /* path */,
+                                                      -1 /* last_mod-time */, flags));
+  loaded_apk->loaded_arsc_ = LoadedArsc::CreateEmpty();
+  // Need to force a move for mingw32.
+  return std::move(loaded_apk);
 }
 
 std::unique_ptr<Asset> ApkAssets::CreateAssetFromFile(const std::string& path) {
   unique_fd fd(base::utf8::open(path.c_str(), O_RDONLY | O_BINARY | O_CLOEXEC));
-  if (fd == -1) {
+  if (!fd.ok()) {
     LOG(ERROR) << "Failed to open file '" << path << "': " << SystemErrorCodeToString(errno);
     return {};
   }
 
-  const off64_t file_len = lseek64(fd, 0, SEEK_END);
-  if (file_len < 0) {
-    LOG(ERROR) << "Failed to get size of file '" << path << "': " << SystemErrorCodeToString(errno);
-    return {};
+  return CreateAssetFromFd(std::move(fd), path.c_str());
+}
+
+std::unique_ptr<Asset> ApkAssets::CreateAssetFromFd(base::unique_fd fd,
+                                                    const char* path,
+                                                    off64_t offset,
+                                                    off64_t length) {
+  CHECK(length >= kUnknownLength) << "length must be greater than or equal to " << kUnknownLength;
+  CHECK(length != kUnknownLength || offset == 0) << "offset must be 0 if length is "
+                                                 << kUnknownLength;
+  if (length == kUnknownLength) {
+    length = lseek64(fd, 0, SEEK_END);
+    if (length < 0) {
+      LOG(ERROR) << "Failed to get size of file '" << ((path) ? path : "anon") << "': "
+                 << SystemErrorCodeToString(errno);
+      return {};
+    }
   }
 
   std::unique_ptr<FileMap> file_map = util::make_unique<FileMap>();
-  if (!file_map->create(path.c_str(), fd, 0, static_cast<size_t>(file_len), true /*readOnly*/)) {
-    LOG(ERROR) << "Failed to mmap file '" << path << "': " << SystemErrorCodeToString(errno);
+  if (!file_map->create(path, fd, offset, static_cast<size_t>(length), true /*readOnly*/)) {
+    LOG(ERROR) << "Failed to mmap file '" << ((path) ? path : "anon") << "': "
+               << SystemErrorCodeToString(errno);
     return {};
   }
-  return Asset::createFromUncompressedMap(std::move(file_map), Asset::AccessMode::ACCESS_RANDOM);
+
+  // If `path` is set, do not pass ownership of the `fd` to the new Asset since
+  // Asset::openFileDescriptor can use `path` to create new file descriptors.
+  return Asset::createFromUncompressedMap(std::move(file_map),
+                                          (path) ? base::unique_fd(-1) : std::move(fd),
+                                          Asset::AccessMode::ACCESS_RANDOM);
 }
 
 std::unique_ptr<const ApkAssets> ApkAssets::LoadImpl(
-    unique_fd fd, const std::string& path, std::unique_ptr<Asset> idmap_asset,
-    std::unique_ptr<const LoadedIdmap> loaded_idmap, package_property_t property_flags) {
-  ::ZipArchiveHandle unmanaged_handle;
-  int32_t result;
-  if (fd >= 0) {
-    result =
-        ::OpenArchiveFd(fd.release(), path.c_str(), &unmanaged_handle, true /*assume_ownership*/);
-  } else {
-    result = ::OpenArchive(path.c_str(), &unmanaged_handle);
-  }
+    std::unique_ptr<const AssetsProvider> assets, const std::string& path,
+    package_property_t property_flags, std::unique_ptr<const AssetsProvider> override_assets,
+    std::unique_ptr<Asset> idmap_asset, std::unique_ptr<const LoadedIdmap> idmap) {
 
-  if (result != 0) {
-    LOG(ERROR) << "Failed to open APK '" << path << "' " << ::ErrorCodeString(result);
-    ::CloseArchive(unmanaged_handle);
-    return {};
-  }
+  const time_t last_mod_time = getFileModDate(path.c_str());
 
-  time_t last_mod_time = getFileModDate(path.c_str());
+  // Open the resource table via mmap unless it is compressed. This logic is taken care of by Open.
+  bool resources_asset_exists = false;
+  auto resources_asset_ = assets->Open(kResourcesArsc, Asset::AccessMode::ACCESS_BUFFER,
+                                       &resources_asset_exists);
+
+  assets = MultiAssetsProvider::Create(std::move(override_assets), std::move(assets));
 
   // Wrap the handle in a unique_ptr so it gets automatically closed.
   std::unique_ptr<ApkAssets>
-      loaded_apk(new ApkAssets(unmanaged_handle, path, last_mod_time, property_flags));
+      loaded_apk(new ApkAssets(std::move(assets), path, last_mod_time, property_flags));
 
-  // Find the resource table.
-  ::ZipEntry entry;
-  result = ::FindEntry(loaded_apk->zip_handle_.get(), kResourcesArsc, &entry);
-  if (result != 0) {
-    // There is no resources.arsc, so create an empty LoadedArsc and return.
+  if (!resources_asset_exists) {
     loaded_apk->loaded_arsc_ = LoadedArsc::CreateEmpty();
     return std::move(loaded_apk);
   }
 
-  if (entry.method == kCompressDeflated) {
-    ANDROID_LOG(WARNING) << kResourcesArsc << " in APK '" << path << "' is compressed.";
-  }
-
-  // Open the resource table via mmap unless it is compressed. This logic is taken care of by Open.
-  loaded_apk->resources_asset_ = loaded_apk->Open(kResourcesArsc, Asset::AccessMode::ACCESS_BUFFER);
-  if (loaded_apk->resources_asset_ == nullptr) {
+  loaded_apk->resources_asset_ = std::move(resources_asset_);
+  if (!loaded_apk->resources_asset_) {
     LOG(ERROR) << "Failed to open '" << kResourcesArsc << "' in APK '" << path << "'.";
     return {};
   }
 
   // Must retain ownership of the IDMAP Asset so that all pointers to its mmapped data remain valid.
   loaded_apk->idmap_asset_ = std::move(idmap_asset);
-  loaded_apk->loaded_idmap_ = std::move(loaded_idmap);
+  loaded_apk->loaded_idmap_ = std::move(idmap);
 
   const StringPiece data(
       reinterpret_cast<const char*>(loaded_apk->resources_asset_->getBuffer(true /*wordAligned*/)),
       loaded_apk->resources_asset_->getLength());
   loaded_apk->loaded_arsc_ = LoadedArsc::Load(data, loaded_apk->loaded_idmap_.get(),
                                               property_flags);
-  if (loaded_apk->loaded_arsc_ == nullptr) {
+  if (!loaded_apk->loaded_arsc_) {
     LOG(ERROR) << "Failed to load '" << kResourcesArsc << "' in APK '" << path << "'.";
     return {};
   }
@@ -188,27 +507,17 @@
   return std::move(loaded_apk);
 }
 
-std::unique_ptr<const ApkAssets> ApkAssets::LoadArscImpl(unique_fd fd,
-                                                         const std::string& path,
-                                                         package_property_t property_flags) {
-  std::unique_ptr<Asset> resources_asset;
+std::unique_ptr<const ApkAssets> ApkAssets::LoadTableImpl(
+    std::unique_ptr<Asset> resources_asset, const std::string& path,
+    package_property_t property_flags, std::unique_ptr<const AssetsProvider> override_assets) {
 
-  if (fd >= 0) {
-    resources_asset = std::unique_ptr<Asset>(Asset::createFromFd(fd.release(), nullptr,
-        Asset::AccessMode::ACCESS_BUFFER));
-  } else {
-    resources_asset = CreateAssetFromFile(path);
-  }
+  const time_t last_mod_time = getFileModDate(path.c_str());
 
-  if (resources_asset == nullptr) {
-    LOG(ERROR) << "Failed to open ARSC '" << path;
-    return {};
-  }
-
-  time_t last_mod_time = getFileModDate(path.c_str());
+  auto assets = (override_assets) ? std::move(override_assets)
+                                  : std::unique_ptr<AssetsProvider>(new EmptyAssetsProvider());
 
   std::unique_ptr<ApkAssets> loaded_apk(
-      new ApkAssets(nullptr, path, last_mod_time, property_flags));
+      new ApkAssets(std::move(assets), path, last_mod_time, property_flags));
   loaded_apk->resources_asset_ = std::move(resources_asset);
 
   const StringPiece data(
@@ -224,111 +533,9 @@
   return std::move(loaded_apk);
 }
 
-std::unique_ptr<const ApkAssets> ApkAssets::LoadEmpty(bool for_loader) {
-  std::unique_ptr<ApkAssets> loaded_apk(new ApkAssets(nullptr, "", -1, for_loader));
-  loaded_apk->loaded_arsc_ = LoadedArsc::CreateEmpty();
-  // Need to force a move for mingw32.
-  return std::move(loaded_apk);
-}
-
-std::unique_ptr<Asset> ApkAssets::Open(const std::string& path, Asset::AccessMode mode) const {
-  // If this is a resource loader from an .arsc, there will be no zip handle
-  if (zip_handle_ == nullptr) {
-    return {};
-  }
-
-  ::ZipEntry entry;
-  int32_t result = ::FindEntry(zip_handle_.get(), path, &entry);
-  if (result != 0) {
-    return {};
-  }
-
-  if (entry.method == kCompressDeflated) {
-    std::unique_ptr<FileMap> map = util::make_unique<FileMap>();
-    if (!map->create(path_.c_str(), ::GetFileDescriptor(zip_handle_.get()), entry.offset,
-                     entry.compressed_length, true /*readOnly*/)) {
-      LOG(ERROR) << "Failed to mmap file '" << path << "' in APK '" << path_ << "'";
-      return {};
-    }
-
-    std::unique_ptr<Asset> asset =
-        Asset::createFromCompressedMap(std::move(map), entry.uncompressed_length, mode);
-    if (asset == nullptr) {
-      LOG(ERROR) << "Failed to decompress '" << path << "'.";
-      return {};
-    }
-    return asset;
-  } else {
-    std::unique_ptr<FileMap> map = util::make_unique<FileMap>();
-    if (!map->create(path_.c_str(), ::GetFileDescriptor(zip_handle_.get()), entry.offset,
-                     entry.uncompressed_length, true /*readOnly*/)) {
-      LOG(ERROR) << "Failed to mmap file '" << path << "' in APK '" << path_ << "'";
-      return {};
-    }
-
-    std::unique_ptr<Asset> asset = Asset::createFromUncompressedMap(std::move(map), mode);
-    if (asset == nullptr) {
-      LOG(ERROR) << "Failed to mmap file '" << path << "' in APK '" << path_ << "'";
-      return {};
-    }
-    return asset;
-  }
-}
-
-bool ApkAssets::ForEachFile(const std::string& root_path,
-                            const std::function<void(const StringPiece&, FileType)>& f) const {
-  // If this is a resource loader from an .arsc, there will be no zip handle
-  if (zip_handle_ == nullptr) {
-    return false;
-  }
-
-  std::string root_path_full = root_path;
-  if (root_path_full.back() != '/') {
-    root_path_full += '/';
-  }
-
-  void* cookie;
-  if (::StartIteration(zip_handle_.get(), &cookie, root_path_full, "") != 0) {
-    return false;
-  }
-
-  std::string name;
-  ::ZipEntry entry;
-
-  // We need to hold back directories because many paths will contain them and we want to only
-  // surface one.
-  std::set<std::string> dirs;
-
-  int32_t result;
-  while ((result = ::Next(cookie, &entry, &name)) == 0) {
-    StringPiece full_file_path(name);
-    StringPiece leaf_file_path = full_file_path.substr(root_path_full.size());
-
-    if (!leaf_file_path.empty()) {
-      auto iter = std::find(leaf_file_path.begin(), leaf_file_path.end(), '/');
-      if (iter != leaf_file_path.end()) {
-        std::string dir =
-            leaf_file_path.substr(0, std::distance(leaf_file_path.begin(), iter)).to_string();
-        dirs.insert(std::move(dir));
-      } else {
-        f(leaf_file_path, kFileTypeRegular);
-      }
-    }
-  }
-  ::EndIteration(cookie);
-
-  // Now present the unique directories.
-  for (const std::string& dir : dirs) {
-    f(dir, kFileTypeDirectory);
-  }
-
-  // -1 is end of iteration, anything else is an error.
-  return result == -1;
-}
-
 bool ApkAssets::IsUpToDate() const {
   if (IsLoader()) {
-    // Loaders are invalidated by the app, not the system, so assume up to date.
+    // Loaders are invalidated by the app, not the system, so assume they are up to date.
     return true;
   }
 
diff --git a/libs/androidfw/Asset.cpp b/libs/androidfw/Asset.cpp
index c132f34..cd30c18 100644
--- a/libs/androidfw/Asset.cpp
+++ b/libs/androidfw/Asset.cpp
@@ -298,14 +298,13 @@
 /*
  * Create a new Asset from a memory mapping.
  */
-/*static*/ Asset* Asset::createFromUncompressedMap(FileMap* dataMap,
-    AccessMode mode)
+/*static*/ Asset* Asset::createFromUncompressedMap(FileMap* dataMap, AccessMode mode)
 {
     _FileAsset* pAsset;
     status_t result;
 
     pAsset = new _FileAsset;
-    result = pAsset->openChunk(dataMap);
+    result = pAsset->openChunk(dataMap, base::unique_fd(-1));
     if (result != NO_ERROR) {
         delete pAsset;
         return NULL;
@@ -316,11 +315,11 @@
 }
 
 /*static*/ std::unique_ptr<Asset> Asset::createFromUncompressedMap(std::unique_ptr<FileMap> dataMap,
-    AccessMode mode)
+    base::unique_fd fd, AccessMode mode)
 {
     std::unique_ptr<_FileAsset> pAsset = util::make_unique<_FileAsset>();
 
-    status_t result = pAsset->openChunk(dataMap.get());
+    status_t result = pAsset->openChunk(dataMap.get(), std::move(fd));
     if (result != NO_ERROR) {
         return NULL;
     }
@@ -415,7 +414,7 @@
  * Constructor.
  */
 _FileAsset::_FileAsset(void)
-    : mStart(0), mLength(0), mOffset(0), mFp(NULL), mFileName(NULL), mMap(NULL), mBuf(NULL)
+    : mStart(0), mLength(0), mOffset(0), mFp(NULL), mFileName(NULL), mFd(-1), mMap(NULL), mBuf(NULL)
 {
     // Register the Asset with the global list here after it is fully constructed and its
     // vtable pointer points to this concrete type. b/31113965
@@ -485,7 +484,7 @@
 /*
  * Create the chunk from the map.
  */
-status_t _FileAsset::openChunk(FileMap* dataMap)
+status_t _FileAsset::openChunk(FileMap* dataMap, base::unique_fd fd)
 {
     assert(mFp == NULL);    // no reopen
     assert(mMap == NULL);
@@ -494,6 +493,7 @@
     mMap = dataMap;
     mStart = -1;            // not used
     mLength = dataMap->getDataLength();
+    mFd = std::move(fd);
     assert(mOffset == 0);
 
     return NO_ERROR;
@@ -692,6 +692,17 @@
 int _FileAsset::openFileDescriptor(off64_t* outStart, off64_t* outLength) const
 {
     if (mMap != NULL) {
+        if (mFd.ok()) {
+          *outStart = mMap->getDataOffset();
+          *outLength = mMap->getDataLength();
+          const int fd = dup(mFd);
+          if (fd < 0) {
+            ALOGE("Unable to dup fd (%d).", mFd.get());
+            return -1;
+          }
+          lseek64(fd, 0, SEEK_SET);
+          return fd;
+        }
         const char* fname = mMap->getFileName();
         if (fname == NULL) {
             fname = mFileName;
diff --git a/libs/androidfw/AssetManager2.cpp b/libs/androidfw/AssetManager2.cpp
index 3208662..eaf452b 100644
--- a/libs/androidfw/AssetManager2.cpp
+++ b/libs/androidfw/AssetManager2.cpp
@@ -25,7 +25,6 @@
 
 #include "android-base/logging.h"
 #include "android-base/stringprintf.h"
-#include "androidfw/DynamicLibManager.h"
 #include "androidfw/ResourceUtils.h"
 #include "androidfw/Util.h"
 #include "utils/ByteOrder.h"
@@ -67,12 +66,7 @@
   StringPoolRef entry_string_ref;
 };
 
-AssetManager2::AssetManager2() : dynamic_lib_manager_(std::make_unique<DynamicLibManager>()) {
-  memset(&configuration_, 0, sizeof(configuration_));
-}
-
-AssetManager2::AssetManager2(DynamicLibManager* dynamic_lib_manager)
-    : dynamic_lib_manager_(dynamic_lib_manager) {
+AssetManager2::AssetManager2() {
   memset(&configuration_, 0, sizeof(configuration_));
 }
 
@@ -91,6 +85,9 @@
   package_groups_.clear();
   package_ids_.fill(0xff);
 
+  // A mapping from apk assets path to the runtime package id of its first loaded package.
+  std::unordered_map<std::string, uint8_t> apk_assets_package_ids;
+
   // Overlay resources are not directly referenced by an application so their resource ids
   // can change throughout the application's lifetime. Assign overlay package ids last.
   std::vector<const ApkAssets*> sorted_apk_assets(apk_assets_);
@@ -98,37 +95,25 @@
     return !a->IsOverlay();
   });
 
-  std::unordered_map<std::string, uint8_t> apk_assets_package_ids;
-  std::unordered_map<std::string, uint8_t> package_name_package_ids;
-
-  // Assign stable package ids to application packages.
-  uint8_t next_available_package_id = 0U;
-  for (const auto& apk_assets : sorted_apk_assets) {
-    for (const auto& package : apk_assets->GetLoadedArsc()->GetPackages()) {
-      uint8_t package_id = package->GetPackageId();
-      if (package->IsOverlay()) {
-        package_id = GetDynamicLibManager()->FindUnassignedId(next_available_package_id);
-        next_available_package_id = package_id + 1;
-      } else if (package->IsDynamic()) {
-        package_id = GetDynamicLibManager()->GetAssignedId(package->GetPackageName());
-      }
-
-      // Map the path of the apk assets to the package id of its first loaded package.
-      apk_assets_package_ids[apk_assets->GetPath()] = package_id;
-
-      // Map the package name of the package to the first loaded package with that package id.
-      package_name_package_ids[package->GetPackageName()] = package_id;
-    }
+  // The assets cookie must map to the position of the apk assets in the unsorted apk assets list.
+  std::unordered_map<const ApkAssets*, ApkAssetsCookie> apk_assets_cookies;
+  apk_assets_cookies.reserve(apk_assets_.size());
+  for (size_t i = 0, n = apk_assets_.size(); i < n; i++) {
+    apk_assets_cookies[apk_assets_[i]] = static_cast<ApkAssetsCookie>(i);
   }
 
-  const int apk_assets_count = apk_assets_.size();
-  for (int i = 0; i < apk_assets_count; i++) {
-    const auto& apk_assets = apk_assets_[i];
-    for (const auto& package : apk_assets->GetLoadedArsc()->GetPackages()) {
-      const auto package_id_entry = package_name_package_ids.find(package->GetPackageName());
-      CHECK(package_id_entry != package_name_package_ids.end())
-          << "no package id assgined to package " << package->GetPackageName();
-      const uint8_t package_id = package_id_entry->second;
+  // 0x01 is reserved for the android package.
+  int next_package_id = 0x02;
+  for (const ApkAssets* apk_assets : sorted_apk_assets) {
+    const LoadedArsc* loaded_arsc = apk_assets->GetLoadedArsc();
+    for (const std::unique_ptr<const LoadedPackage>& package : loaded_arsc->GetPackages()) {
+      // Get the package ID or assign one if a shared library.
+      int package_id;
+      if (package->IsDynamic()) {
+        package_id = next_package_id++;
+      } else {
+        package_id = package->GetPackageId();
+      }
 
       // Add the mapping for package ID to index if not present.
       uint8_t idx = package_ids_[package_id];
@@ -162,7 +147,7 @@
             target_package_group.overlays_.push_back(
                 ConfiguredOverlay{loaded_idmap->GetTargetResourcesMap(target_package_id,
                                                                       overlay_table.get()),
-                                  static_cast<ApkAssetsCookie>(i)});
+                                  apk_assets_cookies[apk_assets]});
           }
         }
 
@@ -174,7 +159,7 @@
 
       // Add the package and to the set of packages with the same ID.
       package_group->packages_.push_back(ConfiguredPackage{package.get(), {}});
-      package_group->cookies_.push_back(static_cast<ApkAssetsCookie>(i));
+      package_group->cookies_.push_back(apk_assets_cookies[apk_assets]);
 
       // Add the package name -> build time ID mappings.
       for (const DynamicPackageEntry& entry : package->GetDynamicPackageMap()) {
@@ -182,6 +167,8 @@
         package_group->dynamic_ref_table->mEntries.replaceValueFor(
             package_name, static_cast<uint8_t>(entry.package_id));
       }
+
+      apk_assets_package_ids.insert(std::make_pair(apk_assets->GetPath(), package_id));
     }
   }
 
@@ -463,7 +450,7 @@
       files->add(info);
     };
 
-    if (!apk_assets->ForEachFile(full_path, func)) {
+    if (!apk_assets->GetAssetsProvider()->ForEachFile(full_path, func)) {
       return {};
     }
   }
@@ -487,7 +474,7 @@
       continue;
     }
 
-    std::unique_ptr<Asset> asset = apk_assets_[i]->Open(filename, mode);
+    std::unique_ptr<Asset> asset = apk_assets_[i]->GetAssetsProvider()->Open(filename, mode);
     if (asset) {
       if (out_cookie != nullptr) {
         *out_cookie = i;
@@ -508,7 +495,7 @@
   if (cookie < 0 || static_cast<size_t>(cookie) >= apk_assets_.size()) {
     return {};
   }
-  return apk_assets_[cookie]->Open(filename, mode);
+  return apk_assets_[cookie]->GetAssetsProvider()->Open(filename, mode);
 }
 
 ApkAssetsCookie AssetManager2::FindEntry(uint32_t resid, uint16_t density_override,
@@ -1329,16 +1316,6 @@
   return 0;
 }
 
-DynamicLibManager* AssetManager2::GetDynamicLibManager() const {
-  auto dynamic_lib_manager =
-      std::get_if<std::unique_ptr<DynamicLibManager>>(&dynamic_lib_manager_);
-  if (dynamic_lib_manager) {
-    return (*dynamic_lib_manager).get();
-  } else {
-    return *std::get_if<DynamicLibManager*>(&dynamic_lib_manager_);
-  }
-}
-
 std::unique_ptr<Theme> AssetManager2::NewTheme() {
   return std::unique_ptr<Theme>(new Theme(this));
 }
diff --git a/libs/androidfw/DynamicLibManager.cpp b/libs/androidfw/DynamicLibManager.cpp
deleted file mode 100644
index 895b769..0000000
--- a/libs/androidfw/DynamicLibManager.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "androidfw/DynamicLibManager.h"
-
-namespace android {
-
-uint8_t DynamicLibManager::GetAssignedId(const std::string& library_package_name) {
-  auto lib_entry = shared_lib_package_ids_.find(library_package_name);
-  if (lib_entry != shared_lib_package_ids_.end()) {
-    return lib_entry->second;
-  }
-
-  return shared_lib_package_ids_[library_package_name] = next_package_id_++;
-}
-
-uint8_t DynamicLibManager::FindUnassignedId(uint8_t start_package_id) {
-  return (start_package_id < next_package_id_) ? next_package_id_ : start_package_id;
-}
-
-} // namespace android
diff --git a/libs/androidfw/LoadedArsc.cpp b/libs/androidfw/LoadedArsc.cpp
index e35c024..70bb441 100644
--- a/libs/androidfw/LoadedArsc.cpp
+++ b/libs/androidfw/LoadedArsc.cpp
@@ -749,7 +749,7 @@
 
 std::unique_ptr<const LoadedArsc> LoadedArsc::Load(const StringPiece& data,
                                                    const LoadedIdmap* loaded_idmap,
-                                                   package_property_t property_flags) {
+                                                   const package_property_t property_flags) {
   ATRACE_NAME("LoadedArsc::Load");
 
   // Not using make_unique because the constructor is private.
diff --git a/libs/androidfw/include/androidfw/ApkAssets.h b/libs/androidfw/include/androidfw/ApkAssets.h
index af802b0..879b050 100644
--- a/libs/androidfw/include/androidfw/ApkAssets.h
+++ b/libs/androidfw/include/androidfw/ApkAssets.h
@@ -35,62 +35,98 @@
 
 class LoadedIdmap;
 
+// Interface for retrieving assets provided by an ApkAssets.
+class AssetsProvider {
+ public:
+  virtual ~AssetsProvider() = default;
+
+  // Opens a file for reading.
+  std::unique_ptr<Asset> Open(const std::string& path,
+                              Asset::AccessMode mode = Asset::AccessMode::ACCESS_RANDOM,
+                              bool* file_exists = nullptr) const {
+    return OpenInternal(path, mode, file_exists);
+  }
+
+  // Iterate over all files and directories provided by the zip. The order of iteration is stable.
+  virtual bool ForEachFile(const std::string& /* path */,
+                           const std::function<void(const StringPiece&, FileType)>& /* f */) const {
+    return true;
+  }
+
+ protected:
+  AssetsProvider() = default;
+
+  virtual std::unique_ptr<Asset> OpenInternal(const std::string& path,
+                                              Asset::AccessMode mode,
+                                              bool* file_exists) const = 0;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(AssetsProvider);
+};
+
+class ZipAssetsProvider;
+
 // Holds an APK.
 class ApkAssets {
  public:
+  // This means the data extends to the end of the file.
+  static constexpr off64_t kUnknownLength = -1;
+
   // Creates an ApkAssets.
   // If `system` is true, the package is marked as a system package, and allows some functions to
   // filter out this package when computing what configurations/resources are available.
-  static std::unique_ptr<const ApkAssets> Load(const std::string& path, bool system = false,
-                                               bool for_loader = false);
-
-  // Creates an ApkAssets, but forces any package with ID 0x7f to be loaded as a shared library.
-  // If `system` is true, the package is marked as a system package, and allows some functions to
-  // filter out this package when computing what configurations/resources are available.
-  static std::unique_ptr<const ApkAssets> LoadAsSharedLibrary(const std::string& path,
-                                                              bool system = false);
-
-  // Creates an ApkAssets from an IDMAP, which contains the original APK path, and the overlay
-  // data.
-  // If `system` is true, the package is marked as a system package, and allows some functions to
-  // filter out this package when computing what configurations/resources are available.
-  static std::unique_ptr<const ApkAssets> LoadOverlay(const std::string& idmap_path,
-                                                      bool system = false);
+  static std::unique_ptr<const ApkAssets> Load(
+      const std::string& path, package_property_t flags = 0U,
+      std::unique_ptr<const AssetsProvider> override_asset = nullptr);
 
   // Creates an ApkAssets from the given file descriptor, and takes ownership of the file
   // descriptor. The `friendly_name` is some name that will be used to identify the source of
   // this ApkAssets in log messages and other debug scenarios.
-  // If `system` is true, the package is marked as a system package, and allows some functions to
-  // filter out this package when computing what configurations/resources are available.
-  // If `force_shared_lib` is true, any package with ID 0x7f is loaded as a shared library.
-  static std::unique_ptr<const ApkAssets> LoadFromFd(base::unique_fd fd,
-                                                     const std::string& friendly_name, bool system,
-                                                     bool force_shared_lib,
-                                                     bool for_loader = false);
+  // If `length` equals kUnknownLength, offset must equal 0; otherwise, the apk data will be read
+  // using the `offset` into the file descriptor and will be `length` bytes long.
+  static std::unique_ptr<const ApkAssets> LoadFromFd(
+      base::unique_fd fd, const std::string& friendly_name, package_property_t flags = 0U,
+      std::unique_ptr<const AssetsProvider> override_asset = nullptr, off64_t offset = 0,
+      off64_t length = kUnknownLength);
 
-  // Creates an empty wrapper ApkAssets from the given path which points to an .arsc.
-  static std::unique_ptr<const ApkAssets> LoadArsc(const std::string& path,
-                                                   bool for_loader = false);
+  // Creates an ApkAssets from the given path which points to a resources.arsc.
+  static std::unique_ptr<const ApkAssets> LoadTable(
+      const std::string& path, package_property_t flags = 0U,
+      std::unique_ptr<const AssetsProvider> override_asset = nullptr);
 
-  // Creates an empty wrapper ApkAssets from the given file descriptor which points to an .arsc,
-  // Takes ownership of the file descriptor.
-  static std::unique_ptr<const ApkAssets> LoadArsc(base::unique_fd fd,
-                                                   const std::string& friendly_name,
-                                                   bool for_loader = false);
+  // Creates an ApkAssets from the given file descriptor which points to an resources.arsc, and
+  // takes ownership of the file descriptor.
+  // If `length` equals kUnknownLength, offset must equal 0; otherwise, the .arsc data will be read
+  // using the `offset` into the file descriptor and will be `length` bytes long.
+  static std::unique_ptr<const ApkAssets> LoadTableFromFd(
+      base::unique_fd fd, const std::string& friendly_name, package_property_t flags = 0U,
+      std::unique_ptr<const AssetsProvider> override_asset = nullptr, off64_t offset = 0,
+      off64_t length = kUnknownLength);
+
+  // Creates an ApkAssets from an IDMAP, which contains the original APK path, and the overlay
+  // data.
+  static std::unique_ptr<const ApkAssets> LoadOverlay(const std::string& idmap_path,
+                                                      package_property_t flags = 0U);
+
+  // Creates an ApkAssets from the directory path. File-based resources are read within the
+  // directory as if the directory is an APK.
+  static std::unique_ptr<const ApkAssets> LoadFromDir(
+      const std::string& path, package_property_t flags = 0U,
+      std::unique_ptr<const AssetsProvider> override_asset = nullptr);
 
   // Creates a totally empty ApkAssets with no resources table and no file entries.
-  static std::unique_ptr<const ApkAssets> LoadEmpty(bool for_loader = false);
-
-  std::unique_ptr<Asset> Open(const std::string& path,
-                              Asset::AccessMode mode = Asset::AccessMode::ACCESS_RANDOM) const;
-
-  bool ForEachFile(const std::string& path,
-                   const std::function<void(const StringPiece&, FileType)>& f) const;
+  static std::unique_ptr<const ApkAssets> LoadEmpty(
+      package_property_t flags = 0U,
+      std::unique_ptr<const AssetsProvider> override_asset = nullptr);
 
   inline const std::string& GetPath() const {
     return path_;
   }
 
+  inline const AssetsProvider* GetAssetsProvider() const {
+    return assets_provider_.get();
+  }
+
   // This is never nullptr.
   inline const LoadedArsc* GetLoadedArsc() const {
     return loaded_arsc_.get();
@@ -105,34 +141,44 @@
   }
 
   inline bool IsOverlay() const {
-    return (property_flags_ & PROPERTY_OVERLAY) != 0;
+    return loaded_idmap_ != nullptr;
   }
 
   bool IsUpToDate() const;
 
-  // Creates an Asset from any file on the file system.
+  // Creates an Asset from a file on disk.
   static std::unique_ptr<Asset> CreateAssetFromFile(const std::string& path);
 
+  // Creates an Asset from a file descriptor.
+  //
+  // The asset takes ownership of the file descriptor. If `length` equals kUnknownLength, offset
+  // must equal 0; otherwise, the asset data will be read using the `offset` into the file
+  // descriptor and will be `length` bytes long.
+  static std::unique_ptr<Asset> CreateAssetFromFd(base::unique_fd fd,
+                                                  const char* path,
+                                                  off64_t offset = 0,
+                                                  off64_t length = kUnknownLength);
  private:
   DISALLOW_COPY_AND_ASSIGN(ApkAssets);
 
-  static std::unique_ptr<const ApkAssets> LoadImpl(base::unique_fd fd, const std::string& path,
-                                                   std::unique_ptr<Asset> idmap_asset,
-                                                   std::unique_ptr<const LoadedIdmap> loaded_idmap,
-                                                   package_property_t property_flags);
+  static std::unique_ptr<const ApkAssets> LoadImpl(
+      std::unique_ptr<const AssetsProvider> assets, const std::string& path,
+      package_property_t property_flags,
+      std::unique_ptr<const AssetsProvider> override_assets = nullptr,
+      std::unique_ptr<Asset> idmap_asset = nullptr,
+      std::unique_ptr<const LoadedIdmap> idmap  = nullptr);
 
-  static std::unique_ptr<const ApkAssets> LoadArscImpl(base::unique_fd fd,
-                                                       const std::string& path,
-                                                       package_property_t property_flags);
+  static std::unique_ptr<const ApkAssets> LoadTableImpl(
+      std::unique_ptr<Asset> resources_asset, const std::string& path,
+      package_property_t property_flags,
+      std::unique_ptr<const AssetsProvider> override_assets = nullptr);
 
-  ApkAssets(ZipArchiveHandle unmanaged_handle,
-            const std::string& path,
+  ApkAssets(std::unique_ptr<const AssetsProvider> assets_provider,
+            std::string path,
             time_t last_mod_time,
             package_property_t property_flags);
 
-  using ZipArchivePtr = std::unique_ptr<ZipArchive, void (*)(ZipArchiveHandle)>;
-
-  ZipArchivePtr zip_handle_;
+  std::unique_ptr<const AssetsProvider> assets_provider_;
   const std::string path_;
   time_t last_mod_time_;
   package_property_t property_flags_ = 0U;
diff --git a/libs/androidfw/include/androidfw/Asset.h b/libs/androidfw/include/androidfw/Asset.h
index 053dbb7..298509e 100644
--- a/libs/androidfw/include/androidfw/Asset.h
+++ b/libs/androidfw/include/androidfw/Asset.h
@@ -26,6 +26,7 @@
 
 #include <memory>
 
+#include <android-base/unique_fd.h>
 #include <utils/Compat.h>
 #include <utils/Errors.h>
 #include <utils/String8.h>
@@ -158,6 +159,7 @@
     /* AssetManager needs access to our "create" functions */
     friend class AssetManager;
     friend class ApkAssets;
+    friend class ZipAssetsProvider;
 
     /*
      * Create the asset from a named file on disk.
@@ -202,8 +204,14 @@
      */
     static Asset* createFromUncompressedMap(FileMap* dataMap, AccessMode mode);
 
+    /*
+     * Create the asset from a memory-mapped file segment.
+     *
+     * The asset takes ownership of the FileMap and the file descriptor "fd". The file descriptor is
+     * used to request new file descriptors using "openFileDescriptor".
+     */
     static std::unique_ptr<Asset> createFromUncompressedMap(std::unique_ptr<FileMap> dataMap,
-        AccessMode mode);
+        base::unique_fd fd, AccessMode mode);
 
     /*
      * Create the asset from a memory-mapped file segment with compressed
@@ -256,9 +264,9 @@
     /*
      * Use a memory-mapped region.
      *
-     * On success, the object takes ownership of "dataMap".
+     * On success, the object takes ownership of "dataMap" and "fd".
      */
-    status_t openChunk(FileMap* dataMap);
+    status_t openChunk(FileMap* dataMap, base::unique_fd fd);
 
     /*
      * Standard Asset interfaces.
@@ -273,11 +281,12 @@
     virtual bool isAllocated(void) const { return mBuf != NULL; }
 
 private:
-    off64_t     mStart;         // absolute file offset of start of chunk
-    off64_t     mLength;        // length of the chunk
-    off64_t     mOffset;        // current local offset, 0 == mStart
-    FILE*       mFp;            // for read/seek
-    char*       mFileName;      // for opening
+    off64_t         mStart;         // absolute file offset of start of chunk
+    off64_t         mLength;        // length of the chunk
+    off64_t         mOffset;        // current local offset, 0 == mStart
+    FILE*           mFp;            // for read/seek
+    char*           mFileName;      // for opening
+    base::unique_fd mFd;            // for opening file descriptors
 
     /*
      * To support getBuffer() we either need to read the entire thing into
diff --git a/libs/androidfw/include/androidfw/AssetManager2.h b/libs/androidfw/include/androidfw/AssetManager2.h
index b2cec2a..e21abad 100644
--- a/libs/androidfw/include/androidfw/AssetManager2.h
+++ b/libs/androidfw/include/androidfw/AssetManager2.h
@@ -27,7 +27,6 @@
 #include "androidfw/ApkAssets.h"
 #include "androidfw/Asset.h"
 #include "androidfw/AssetManager.h"
-#include "androidfw/DynamicLibManager.h"
 #include "androidfw/ResourceTypes.h"
 #include "androidfw/Util.h"
 
@@ -95,7 +94,6 @@
   };
 
   AssetManager2();
-  explicit AssetManager2(DynamicLibManager* dynamic_lib_manager);
 
   // Sets/resets the underlying ApkAssets for this AssetManager. The ApkAssets
   // are not owned by the AssetManager, and must have a longer lifetime.
@@ -126,6 +124,9 @@
   // This may be nullptr if the APK represented by `cookie` has no resource table.
   std::shared_ptr<const DynamicRefTable> GetDynamicRefTableForCookie(ApkAssetsCookie cookie) const;
 
+  // Retrieve the assigned package id of the package if loaded into this AssetManager
+  uint8_t GetAssignedPackageId(const LoadedPackage* package) const;
+
   // Returns a string representation of the overlayable API of a package.
   bool GetOverlayablesToString(const android::StringPiece& package_name,
                                std::string* out) const;
@@ -370,11 +371,6 @@
   // been seen while traversing bag parents.
   const ResolvedBag* GetBag(uint32_t resid, std::vector<uint32_t>& child_resids);
 
-  // Retrieve the assigned package id of the package if loaded into this AssetManager
-  uint8_t GetAssignedPackageId(const LoadedPackage* package) const;
-
-  DynamicLibManager* GetDynamicLibManager() const;
-
   // The ordered list of ApkAssets to search. These are not owned by the AssetManager, and must
   // have a longer lifetime.
   std::vector<const ApkAssets*> apk_assets_;
@@ -393,9 +389,6 @@
   // may need to be purged.
   ResTable_config configuration_;
 
-  // Component responsible for assigning package ids to shared libraries.
-  std::variant<std::unique_ptr<DynamicLibManager>, DynamicLibManager*> dynamic_lib_manager_;
-
   // Cached set of bags. These are cached because they can inherit keys from parent bags,
   // which involves some calculation.
   std::unordered_map<uint32_t, util::unique_cptr<ResolvedBag>> cached_bags_;
diff --git a/libs/androidfw/include/androidfw/DynamicLibManager.h b/libs/androidfw/include/androidfw/DynamicLibManager.h
deleted file mode 100644
index 1ff7079..0000000
--- a/libs/androidfw/include/androidfw/DynamicLibManager.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROIDFW_DYNAMICLIBMANAGER_H
-#define ANDROIDFW_DYNAMICLIBMANAGER_H
-
-#include <string>
-#include <unordered_map>
-
-#include "android-base/macros.h"
-
-namespace android {
-
-// Manages assigning resource ids for dynamic resources.
-class DynamicLibManager {
- public:
-  DynamicLibManager() = default;
-
-  // Retrieves the assigned package id for the library.
-  uint8_t GetAssignedId(const std::string& library_package_name);
-
-  // Queries in ascending order for the first available package id that is not currently assigned to
-  // a library.
-  uint8_t FindUnassignedId(uint8_t start_package_id);
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(DynamicLibManager);
-
-  uint8_t next_package_id_ = 0x02;
-  std::unordered_map<std::string, uint8_t> shared_lib_package_ids_;
-};
-
-} // namespace android
-
-#endif //ANDROIDFW_DYNAMICLIBMANAGER_H
diff --git a/libs/androidfw/include/androidfw/LoadedArsc.h b/libs/androidfw/include/androidfw/LoadedArsc.h
index b5d3a1f..89ff9f5 100644
--- a/libs/androidfw/include/androidfw/LoadedArsc.h
+++ b/libs/androidfw/include/androidfw/LoadedArsc.h
@@ -69,12 +69,24 @@
   }
 };
 
+// Flags that change the behavior of loaded packages.
+// Keep in sync with f/b/android/content/res/ApkAssets.java
 using package_property_t = uint32_t;
 enum : package_property_t {
-  PROPERTY_DYNAMIC = 1,
-  PROPERTY_LOADER = 2,
-  PROPERTY_OVERLAY = 4,
-  PROPERTY_SYSTEM = 8,
+  // The package contains framework resource values specified by the system.
+  // This allows some functions to filter out this package when computing
+  // what configurations/resources are available.
+  PROPERTY_SYSTEM = 1U << 0U,
+
+  // The package is a shared library or has a package id of 7f and is loaded as a shared library by
+  // force.
+  PROPERTY_DYNAMIC = 1U << 1U,
+
+  // The package has been loaded dynamically using a ResourcesProvider.
+  PROPERTY_LOADER = 1U << 2U,
+
+  // The package is a RRO.
+  PROPERTY_OVERLAY = 1U << 3U,
 };
 
 // TypeSpecPtr points to a block of memory that holds a TypeSpec struct, followed by an array of
diff --git a/libs/androidfw/include/androidfw/MutexGuard.h b/libs/androidfw/include/androidfw/MutexGuard.h
index 8891512..64924f4 100644
--- a/libs/androidfw/include/androidfw/MutexGuard.h
+++ b/libs/androidfw/include/androidfw/MutexGuard.h
@@ -47,8 +47,7 @@
   static_assert(!std::is_pointer<T>::value, "T must not be a raw pointer");
 
  public:
-  template <typename ...Args>
-  explicit Guarded(Args&& ...args) : guarded_(std::forward<Args>(args)...) {
+  explicit Guarded() : guarded_() {
   }
 
   template <typename U = T>
diff --git a/libs/androidfw/tests/ApkAssets_test.cpp b/libs/androidfw/tests/ApkAssets_test.cpp
index 0f2ee6f..19db25c 100644
--- a/libs/androidfw/tests/ApkAssets_test.cpp
+++ b/libs/androidfw/tests/ApkAssets_test.cpp
@@ -42,7 +42,7 @@
   const LoadedArsc* loaded_arsc = loaded_apk->GetLoadedArsc();
   ASSERT_THAT(loaded_arsc, NotNull());
   ASSERT_THAT(loaded_arsc->GetPackageById(0x7fu), NotNull());
-  ASSERT_THAT(loaded_apk->Open("res/layout/main.xml"), NotNull());
+  ASSERT_THAT(loaded_apk->GetAssetsProvider()->Open("res/layout/main.xml"), NotNull());
 }
 
 TEST(ApkAssetsTest, LoadApkFromFd) {
@@ -50,14 +50,13 @@
   unique_fd fd(::open(path.c_str(), O_RDONLY | O_BINARY));
   ASSERT_THAT(fd.get(), Ge(0));
 
-  std::unique_ptr<const ApkAssets> loaded_apk =
-      ApkAssets::LoadFromFd(std::move(fd), path, false /*system*/, false /*force_shared_lib*/);
+  std::unique_ptr<const ApkAssets> loaded_apk = ApkAssets::LoadFromFd(std::move(fd), path);
   ASSERT_THAT(loaded_apk, NotNull());
 
   const LoadedArsc* loaded_arsc = loaded_apk->GetLoadedArsc();
   ASSERT_THAT(loaded_arsc, NotNull());
   ASSERT_THAT(loaded_arsc->GetPackageById(0x7fu), NotNull());
-  ASSERT_THAT(loaded_apk->Open("res/layout/main.xml"), NotNull());
+  ASSERT_THAT(loaded_apk->GetAssetsProvider()->Open("res/layout/main.xml"), NotNull());
 }
 
 TEST(ApkAssetsTest, LoadApkAsSharedLibrary) {
@@ -70,7 +69,7 @@
   ASSERT_THAT(loaded_arsc->GetPackages(), SizeIs(1u));
   EXPECT_FALSE(loaded_arsc->GetPackages()[0]->IsDynamic());
 
-  loaded_apk = ApkAssets::LoadAsSharedLibrary(GetTestDataPath() + "/appaslib/appaslib.apk");
+  loaded_apk = ApkAssets::Load(GetTestDataPath() + "/appaslib/appaslib.apk", PROPERTY_DYNAMIC);
   ASSERT_THAT(loaded_apk, NotNull());
 
   loaded_arsc = loaded_apk->GetLoadedArsc();
@@ -84,9 +83,11 @@
       ApkAssets::Load(GetTestDataPath() + "/basic/basic.apk");
   ASSERT_THAT(loaded_apk, NotNull());
 
-  { ASSERT_THAT(loaded_apk->Open("res/layout/main.xml", Asset::ACCESS_BUFFER), NotNull()); }
+  { ASSERT_THAT(loaded_apk->GetAssetsProvider()->Open("res/layout/main.xml",
+                                                      Asset::ACCESS_BUFFER), NotNull()); }
 
-  { ASSERT_THAT(loaded_apk->Open("res/layout/main.xml", Asset::ACCESS_BUFFER), NotNull()); }
+  { ASSERT_THAT(loaded_apk->GetAssetsProvider()->Open("res/layout/main.xml",
+                                                      Asset::ACCESS_BUFFER), NotNull()); }
 }
 
 TEST(ApkAssetsTest, OpenUncompressedAssetFd) {
@@ -94,7 +95,8 @@
       ApkAssets::Load(GetTestDataPath() + "/basic/basic.apk");
   ASSERT_THAT(loaded_apk, NotNull());
 
-  auto asset = loaded_apk->Open("assets/uncompressed.txt", Asset::ACCESS_UNKNOWN);
+  auto asset = loaded_apk->GetAssetsProvider()->Open("assets/uncompressed.txt",
+                                                     Asset::ACCESS_UNKNOWN);
   ASSERT_THAT(asset, NotNull());
 
   off64_t start, length;
diff --git a/libs/androidfw/tests/AssetManager2_test.cpp b/libs/androidfw/tests/AssetManager2_test.cpp
index 35fea7a..8c255d1 100644
--- a/libs/androidfw/tests/AssetManager2_test.cpp
+++ b/libs/androidfw/tests/AssetManager2_test.cpp
@@ -17,9 +17,9 @@
 #include "androidfw/AssetManager2.h"
 #include "androidfw/AssetManager.h"
 
-#include "android-base/logging.h"
-
 #include "TestHelpers.h"
+#include "android-base/file.h"
+#include "android-base/logging.h"
 #include "androidfw/ResourceUtils.h"
 #include "data/appaslib/R.h"
 #include "data/basic/R.h"
@@ -45,35 +45,43 @@
 class AssetManager2Test : public ::testing::Test {
  public:
   void SetUp() override {
-    basic_assets_ = ApkAssets::Load(GetTestDataPath() + "/basic/basic.apk");
+    // Move to the test data directory so the idmap can locate the overlay APK.
+    std::string original_path = base::GetExecutableDirectory();
+    chdir(GetTestDataPath().c_str());
+
+    basic_assets_ = ApkAssets::Load("basic/basic.apk");
     ASSERT_NE(nullptr, basic_assets_);
 
-    basic_de_fr_assets_ = ApkAssets::Load(GetTestDataPath() + "/basic/basic_de_fr.apk");
+    basic_de_fr_assets_ = ApkAssets::Load("basic/basic_de_fr.apk");
     ASSERT_NE(nullptr, basic_de_fr_assets_);
 
-    style_assets_ = ApkAssets::Load(GetTestDataPath() + "/styles/styles.apk");
+    style_assets_ = ApkAssets::Load("styles/styles.apk");
     ASSERT_NE(nullptr, style_assets_);
 
-    lib_one_assets_ = ApkAssets::Load(GetTestDataPath() + "/lib_one/lib_one.apk");
+    lib_one_assets_ = ApkAssets::Load("lib_one/lib_one.apk");
     ASSERT_NE(nullptr, lib_one_assets_);
 
-    lib_two_assets_ = ApkAssets::Load(GetTestDataPath() + "/lib_two/lib_two.apk");
+    lib_two_assets_ = ApkAssets::Load("lib_two/lib_two.apk");
     ASSERT_NE(nullptr, lib_two_assets_);
 
-    libclient_assets_ = ApkAssets::Load(GetTestDataPath() + "/libclient/libclient.apk");
+    libclient_assets_ = ApkAssets::Load("libclient/libclient.apk");
     ASSERT_NE(nullptr, libclient_assets_);
 
-    appaslib_assets_ = ApkAssets::LoadAsSharedLibrary(GetTestDataPath() + "/appaslib/appaslib.apk");
+    appaslib_assets_ = ApkAssets::Load("appaslib/appaslib.apk", PROPERTY_DYNAMIC);
     ASSERT_NE(nullptr, appaslib_assets_);
 
-    system_assets_ = ApkAssets::Load(GetTestDataPath() + "/system/system.apk", true /*system*/);
+    system_assets_ = ApkAssets::Load("system/system.apk", PROPERTY_SYSTEM);
     ASSERT_NE(nullptr, system_assets_);
 
-    app_assets_ = ApkAssets::Load(GetTestDataPath() + "/app/app.apk");
+    app_assets_ = ApkAssets::Load("app/app.apk");
     ASSERT_THAT(app_assets_, NotNull());
 
-    overlayable_assets_ = ApkAssets::Load(GetTestDataPath() + "/overlayable/overlayable.apk");
+    overlay_assets_ = ApkAssets::LoadOverlay("overlay/overlay.idmap");
+    ASSERT_NE(nullptr, overlay_assets_);
+
+    overlayable_assets_ = ApkAssets::Load("overlayable/overlayable.apk");
     ASSERT_THAT(overlayable_assets_, NotNull());
+    chdir(original_path.c_str());
   }
 
  protected:
@@ -86,6 +94,7 @@
   std::unique_ptr<const ApkAssets> appaslib_assets_;
   std::unique_ptr<const ApkAssets> system_assets_;
   std::unique_ptr<const ApkAssets> app_assets_;
+  std::unique_ptr<const ApkAssets> overlay_assets_;
   std::unique_ptr<const ApkAssets> overlayable_assets_;
 };
 
@@ -214,23 +223,24 @@
   EXPECT_EQ(fix_package_id(appaslib::R::array::integerArray1, 0x02), value.data);
 }
 
-TEST_F(AssetManager2Test, AssignsUnchangingPackageIdToSharedLibrary) {
-  DynamicLibManager lib_manager;
-  AssetManager2 assetmanager(&lib_manager);
+TEST_F(AssetManager2Test, AssignsOverlayPackageIdLast) {
+  AssetManager2 assetmanager;
   assetmanager.SetApkAssets(
-      {lib_one_assets_.get(), lib_two_assets_.get(), libclient_assets_.get()});
+      {overlayable_assets_.get(), overlay_assets_.get(), lib_one_assets_.get()});
 
-  AssetManager2 assetmanager2(&lib_manager);
-  assetmanager2.SetApkAssets(
-      {lib_two_assets_.get(), lib_one_assets_.get(), libclient_assets_.get()});
+  auto apk_assets = assetmanager.GetApkAssets();
+  ASSERT_EQ(3, apk_assets.size());
+  ASSERT_EQ(overlayable_assets_.get(), apk_assets[0]);
+  ASSERT_EQ(overlay_assets_.get(), apk_assets[1]);
+  ASSERT_EQ(lib_one_assets_.get(), apk_assets[2]);
 
-  uint32_t res_id = assetmanager.GetResourceId("com.android.lib_one:string/foo");
-  ASSERT_NE(0U, res_id);
+  auto get_first_package_id = [&assetmanager](const ApkAssets* apkAssets) -> uint8_t {
+    return assetmanager.GetAssignedPackageId(apkAssets->GetLoadedArsc()->GetPackages()[0].get());
+  };
 
-  uint32_t res_id_2 = assetmanager2.GetResourceId("com.android.lib_one:string/foo");
-  ASSERT_NE(0U, res_id_2);
-
-  ASSERT_EQ(res_id, res_id_2);
+  ASSERT_EQ(get_first_package_id(overlayable_assets_.get()), 0x7f);
+  ASSERT_EQ(get_first_package_id(overlay_assets_.get()), 0x03);
+  ASSERT_EQ(get_first_package_id(lib_one_assets_.get()), 0x02);
 }
 
 TEST_F(AssetManager2Test, GetSharedLibraryResourceName) {
@@ -768,7 +778,6 @@
   ASSERT_EQ(api.find("not_overlayable"), std::string::npos);
   ASSERT_NE(api.find("resource='com.android.overlayable:string/overlayable2' overlayable='OverlayableResources1' actor='overlay://theme' policy='0x0000000a'\n"),
             std::string::npos);
-
 }
 
 }  // namespace android
diff --git a/libs/androidfw/tests/AttributeResolution_test.cpp b/libs/androidfw/tests/AttributeResolution_test.cpp
index c8dbe20..24361b5 100644
--- a/libs/androidfw/tests/AttributeResolution_test.cpp
+++ b/libs/androidfw/tests/AttributeResolution_test.cpp
@@ -67,7 +67,7 @@
 
 TEST(AttributeResolutionLibraryTest, ApplyStyleWithDefaultStyleResId) {
   AssetManager2 assetmanager;
-  auto apk_assets = ApkAssets::LoadAsSharedLibrary(GetTestDataPath() + "/styles/styles.apk");
+  auto apk_assets = ApkAssets::Load(GetTestDataPath() + "/styles/styles.apk", PROPERTY_DYNAMIC);
   ASSERT_NE(nullptr, apk_assets);
   assetmanager.SetApkAssets({apk_assets.get()});
 
diff --git a/libs/androidfw/tests/Idmap_test.cpp b/libs/androidfw/tests/Idmap_test.cpp
index b679672..41ba637 100644
--- a/libs/androidfw/tests/Idmap_test.cpp
+++ b/libs/androidfw/tests/Idmap_test.cpp
@@ -221,8 +221,8 @@
 
 TEST_F(IdmapTest, OverlayLoaderInterop) {
   std::string contents;
-  auto loader_assets = ApkAssets::LoadArsc(GetTestDataPath() + "/loader/resources.arsc",
-                                           /* for_loader */ true);
+  auto loader_assets = ApkAssets::LoadTable(GetTestDataPath() + "/loader/resources.arsc",
+                                            PROPERTY_LOADER);
 
   AssetManager2 asset_manager;
   asset_manager.SetApkAssets({overlayable_assets_.get(), loader_assets.get(),
diff --git a/libs/androidfw/tests/Theme_test.cpp b/libs/androidfw/tests/Theme_test.cpp
index be5ecd9..16b9c75 100644
--- a/libs/androidfw/tests/Theme_test.cpp
+++ b/libs/androidfw/tests/Theme_test.cpp
@@ -36,7 +36,7 @@
 class ThemeTest : public ::testing::Test {
  public:
   void SetUp() override {
-    system_assets_ = ApkAssets::Load(GetTestDataPath() + "/system/system.apk", true /*system*/);
+    system_assets_ = ApkAssets::Load(GetTestDataPath() + "/system/system.apk", PROPERTY_SYSTEM);
     ASSERT_NE(nullptr, system_assets_);
 
     style_assets_ = ApkAssets::Load(GetTestDataPath() + "/styles/styles.apk");
diff --git a/libs/hwui/jni/GraphicsStatsService.cpp b/libs/hwui/jni/GraphicsStatsService.cpp
index 6076552..1591ffa 100644
--- a/libs/hwui/jni/GraphicsStatsService.cpp
+++ b/libs/hwui/jni/GraphicsStatsService.cpp
@@ -158,17 +158,17 @@
 static void nativeInit(JNIEnv* env, jobject javaObject) {
     gGraphicsStatsServiceObject = env->NewGlobalRef(javaObject);
     AStatsManager_PullAtomMetadata* metadata = AStatsManager_PullAtomMetadata_obtain();
-    AStatsManager_PullAtomMetadata_setCoolDownNs(metadata, 10 * 1000000);  // 10 milliseconds
-    AStatsManager_PullAtomMetadata_setTimeoutNs(metadata, 2 * NS_PER_SEC); // 2 seconds
+    AStatsManager_PullAtomMetadata_setCoolDownMillis(metadata, 10);             // 10 milliseconds
+    AStatsManager_PullAtomMetadata_setTimeoutMillis(metadata, 2 * MS_PER_SEC);  // 2 seconds
 
-    AStatsManager_registerPullAtomCallback(android::util::GRAPHICS_STATS,
-                                           &graphicsStatsPullCallback, metadata, nullptr);
+    AStatsManager_setPullAtomCallback(android::util::GRAPHICS_STATS, metadata,
+                                      &graphicsStatsPullCallback, nullptr);
 
     AStatsManager_PullAtomMetadata_release(metadata);
 }
 
 static void nativeDestructor(JNIEnv* env, jobject javaObject) {
-    AStatsManager_unregisterPullAtomCallback(android::util::GRAPHICS_STATS);
+    AStatsManager_clearPullAtomCallback(android::util::GRAPHICS_STATS);
     env->DeleteGlobalRef(gGraphicsStatsServiceObject);
     gGraphicsStatsServiceObject = nullptr;
 }
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 4299dd3..c19b187 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -555,9 +555,11 @@
         FrameInfo* forthBehind = mLast4FrameInfos.front().first;
         int64_t composedFrameId = mLast4FrameInfos.front().second;
         nsecs_t acquireTime = -1;
-        native_window_get_frame_timestamps(mNativeSurface->getNativeWindow(), composedFrameId,
-                                           nullptr, &acquireTime, nullptr, nullptr, nullptr,
-                                           nullptr, nullptr, nullptr, nullptr);
+        if (mNativeSurface) {
+            native_window_get_frame_timestamps(mNativeSurface->getNativeWindow(), composedFrameId,
+                                               nullptr, &acquireTime, nullptr, nullptr, nullptr,
+                                               nullptr, nullptr, nullptr, nullptr);
+        }
         // Ignore default -1, NATIVE_WINDOW_TIMESTAMP_INVALID and NATIVE_WINDOW_TIMESTAMP_PENDING
         forthBehind->set(FrameInfoIndex::GpuCompleted) = acquireTime > 0 ? acquireTime : -1;
         mJankTracker.finishGpuDraw(*forthBehind);
diff --git a/libs/incident/Android.bp b/libs/incident/Android.bp
index 512b8c4..af64110 100644
--- a/libs/incident/Android.bp
+++ b/libs/incident/Android.bp
@@ -93,6 +93,7 @@
 
 cc_test {
     name: "libincident_test",
+    test_config: "AndroidTest.xml",
     defaults: ["libincidentpriv_defaults"],
     test_suites: ["device-tests"],
 
@@ -104,7 +105,6 @@
     srcs: [
         "tests/IncidentReportArgs_test.cpp",
         "tests/IncidentReportRequest_test.cpp",
-        "tests/c_api_compile_test.c",
     ],
 
     shared_libs: [
diff --git a/libs/incident/AndroidTest.xml b/libs/incident/AndroidTest.xml
new file mode 100644
index 0000000..7c0b044
--- /dev/null
+++ b/libs/incident/AndroidTest.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<configuration description="Config for libincident_test">
+    <option name="test-suite-tag" value="device-tests" />
+    <option name="config-descriptor:metadata" key="component" value="misc" />
+    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
+        <option name="cleanup" value="true" />
+        <option name="push" value="libincident_test->/data/local/tmp/libincident_test" />
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.GTest" >
+        <option name="native-test-device-path" value="/data/local/tmp" />
+        <option name="module-name" value="libincident_test" />
+    </test>
+</configuration>
+
diff --git a/libs/incident/TEST_MAPPING b/libs/incident/TEST_MAPPING
new file mode 100644
index 0000000..59ebe76
--- /dev/null
+++ b/libs/incident/TEST_MAPPING
@@ -0,0 +1,10 @@
+{
+  "presubmit": [
+    {
+      "name": "libincident_test"
+    },
+    {
+      "name": "GtsLibIncidentTests"
+    }
+  ]
+}
diff --git a/libs/incident/include/incident/incident_report.h b/libs/incident/include/incident/incident_report.h
index 49fe5b9..4fbac96 100644
--- a/libs/incident/include/incident/incident_report.h
+++ b/libs/incident/include/incident/incident_report.h
@@ -18,16 +18,12 @@
  * @file incident_report.h
  */
 
-#ifndef ANDROID_INCIDENT_INCIDENT_REPORT_H
-#define ANDROID_INCIDENT_INCIDENT_REPORT_H
+#pragma once
 
 #include <stdbool.h>
+#include <stdint.h>
 
 #if __cplusplus
-#include <set>
-#include <string>
-#include <vector>
-
 extern "C" {
 #endif // __cplusplus
 
@@ -125,68 +121,5 @@
 
 #if __cplusplus
 } // extern "C"
-
-namespace android {
-namespace os {
-
-class IncidentReportRequest {
-public:
-    inline IncidentReportRequest() {
-        mImpl = AIncidentReportArgs_init();
-    }
-
-    inline IncidentReportRequest(const IncidentReportRequest& that) {
-        mImpl = AIncidentReportArgs_clone(that.mImpl);
-    }
-
-    inline ~IncidentReportRequest() {
-        AIncidentReportArgs_delete(mImpl);
-    }
-
-    inline AIncidentReportArgs* getImpl() {
-        return mImpl;
-    }
-
-    inline void setAll(bool all) {
-        AIncidentReportArgs_setAll(mImpl, all);
-    }
-
-    inline void setPrivacyPolicy(int privacyPolicy) {
-        AIncidentReportArgs_setPrivacyPolicy(mImpl, privacyPolicy);
-    }
-
-    inline void addSection(int section) {
-        AIncidentReportArgs_addSection(mImpl, section);
-    }
-
-    inline void setReceiverPackage(const std::string& pkg) {
-        AIncidentReportArgs_setReceiverPackage(mImpl, pkg.c_str());
-    };
-
-    inline void setReceiverClass(const std::string& cls) {
-        AIncidentReportArgs_setReceiverClass(mImpl, cls.c_str());
-    };
-
-    inline void addHeader(const std::vector<uint8_t>& headerProto) {
-        AIncidentReportArgs_addHeader(mImpl, headerProto.data(), headerProto.size());
-    };
-
-    inline void addHeader(const uint8_t* buf, size_t size) {
-        AIncidentReportArgs_addHeader(mImpl, buf, size);
-    };
-
-    // returns a status_t
-    inline int takeReport() {
-        return AIncidentReportArgs_takeReport(mImpl);
-    }
-
-private:
-    AIncidentReportArgs* mImpl;
-};
-
-} // namespace os
-} // namespace android
-
 #endif // __cplusplus
 
-#endif // ANDROID_INCIDENT_INCIDENT_REPORT_H
diff --git a/libs/incident/tests/IncidentReportRequest_test.cpp b/libs/incident/tests/IncidentReportRequest_test.cpp
index 6d218b6..5619bb6 100644
--- a/libs/incident/tests/IncidentReportRequest_test.cpp
+++ b/libs/incident/tests/IncidentReportRequest_test.cpp
@@ -17,9 +17,67 @@
 
 #include <gtest/gtest.h>
 
-namespace android {
-namespace os {
-namespace statsd {
+#include <vector>
+#include <string>
+
+using namespace std;
+using namespace android::os;
+
+class IncidentReportRequest {
+public:
+    inline IncidentReportRequest() {
+        mImpl = AIncidentReportArgs_init();
+    }
+
+    inline IncidentReportRequest(const IncidentReportRequest& that) {
+        mImpl = AIncidentReportArgs_clone(that.mImpl);
+    }
+
+    inline ~IncidentReportRequest() {
+        AIncidentReportArgs_delete(mImpl);
+    }
+
+    inline AIncidentReportArgs* getImpl() {
+        return mImpl;
+    }
+
+    inline void setAll(bool all) {
+        AIncidentReportArgs_setAll(mImpl, all);
+    }
+
+    inline void setPrivacyPolicy(int privacyPolicy) {
+        AIncidentReportArgs_setPrivacyPolicy(mImpl, privacyPolicy);
+    }
+
+    inline void addSection(int section) {
+        AIncidentReportArgs_addSection(mImpl, section);
+    }
+
+    inline void setReceiverPackage(const string& pkg) {
+        AIncidentReportArgs_setReceiverPackage(mImpl, pkg.c_str());
+    };
+
+    inline void setReceiverClass(const string& cls) {
+        AIncidentReportArgs_setReceiverClass(mImpl, cls.c_str());
+    };
+
+    inline void addHeader(const vector<uint8_t>& headerProto) {
+        AIncidentReportArgs_addHeader(mImpl, headerProto.data(), headerProto.size());
+    };
+
+    inline void addHeader(const uint8_t* buf, size_t size) {
+        AIncidentReportArgs_addHeader(mImpl, buf, size);
+    };
+
+    // returns a status_t
+    inline int takeReport() {
+        return AIncidentReportArgs_takeReport(mImpl);
+    }
+
+private:
+    AIncidentReportArgs* mImpl;
+};
+
 
 TEST(IncidentReportRequestTest, testWrite) {
     IncidentReportRequest request;
@@ -60,6 +118,3 @@
     EXPECT_EQ(headers, args->headers());
 }
 
-}  // namespace statsd
-}  // namespace os
-}  // namespace android
diff --git a/libs/incident/tests/c_api_compile_test.c b/libs/incident/tests/c_api_compile_test.c
deleted file mode 100644
index e1620df..0000000
--- a/libs/incident/tests/c_api_compile_test.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <stdio.h>
-#include <incident/incident_report.h>
-
-/*
- * This file ensures that incident/incident_report.h actually compiles with C,
- * since there is no other place in the tree that actually uses it from C.
- */
-int not_called() {
-    return 0;
-}
-
diff --git a/libs/protoutil/include/android/util/ProtoOutputStream.h b/libs/protoutil/include/android/util/ProtoOutputStream.h
index 42bf03e..f4a358d 100644
--- a/libs/protoutil/include/android/util/ProtoOutputStream.h
+++ b/libs/protoutil/include/android/util/ProtoOutputStream.h
@@ -90,6 +90,7 @@
 {
 public:
     ProtoOutputStream();
+    ProtoOutputStream(sp<EncodedBuffer> buffer);
     ~ProtoOutputStream();
 
     /**
diff --git a/libs/protoutil/src/EncodedBuffer.cpp b/libs/protoutil/src/EncodedBuffer.cpp
index 7ffd887..96b54c6 100644
--- a/libs/protoutil/src/EncodedBuffer.cpp
+++ b/libs/protoutil/src/EncodedBuffer.cpp
@@ -16,6 +16,7 @@
 #define LOG_TAG "libprotoutil"
 
 #include <stdlib.h>
+#include <sys/mman.h>
 
 #include <android/util/EncodedBuffer.h>
 #include <android/util/protobuf.h>
@@ -82,14 +83,16 @@
 }
 
 // ===========================================================
-EncodedBuffer::EncodedBuffer() : EncodedBuffer(0)
+EncodedBuffer::EncodedBuffer() : EncodedBuffer(BUFFER_SIZE)
 {
 }
 
 EncodedBuffer::EncodedBuffer(size_t chunkSize)
         :mBuffers()
 {
-    mChunkSize = chunkSize == 0 ? BUFFER_SIZE : chunkSize;
+    // Align chunkSize to memory page size
+    chunkSize = chunkSize == 0 ? BUFFER_SIZE : chunkSize;
+    mChunkSize = (chunkSize / PAGE_SIZE + ((chunkSize % PAGE_SIZE == 0) ? 0 : 1)) * PAGE_SIZE;
     mWp = Pointer(mChunkSize);
     mEp = Pointer(mChunkSize);
 }
@@ -98,7 +101,7 @@
 {
     for (size_t i=0; i<mBuffers.size(); i++) {
         uint8_t* buf = mBuffers[i];
-        free(buf);
+        munmap(buf, mChunkSize);
     }
 }
 
@@ -135,7 +138,10 @@
     if (mWp.index() > mBuffers.size()) return NULL;
     uint8_t* buf = NULL;
     if (mWp.index() == mBuffers.size()) {
-        buf = (uint8_t*)malloc(mChunkSize);
+        // Use mmap instead of malloc to ensure memory alignment i.e. no fragmentation so that
+        // the mem region can be immediately reused by the allocator after calling munmap()
+        buf = (uint8_t*)mmap(NULL, mChunkSize, PROT_READ | PROT_WRITE,
+                MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
 
         if (buf == NULL) return NULL; // This indicates NO_MEMORY
 
diff --git a/libs/protoutil/src/ProtoOutputStream.cpp b/libs/protoutil/src/ProtoOutputStream.cpp
index ea9b79a..fcf82ee 100644
--- a/libs/protoutil/src/ProtoOutputStream.cpp
+++ b/libs/protoutil/src/ProtoOutputStream.cpp
@@ -26,8 +26,12 @@
 namespace android {
 namespace util {
 
-ProtoOutputStream::ProtoOutputStream()
-        :mBuffer(new EncodedBuffer()),
+ProtoOutputStream::ProtoOutputStream(): ProtoOutputStream(new EncodedBuffer())
+{
+}
+
+ProtoOutputStream::ProtoOutputStream(sp<EncodedBuffer> buffer)
+        :mBuffer(buffer),
          mCopyBegin(0),
          mCompact(false),
          mDepth(0),
diff --git a/location/java/android/location/AbstractListenerManager.java b/location/java/android/location/AbstractListenerManager.java
index 3dc7cfc..36b8689 100644
--- a/location/java/android/location/AbstractListenerManager.java
+++ b/location/java/android/location/AbstractListenerManager.java
@@ -85,11 +85,13 @@
         }
     }
 
-    @GuardedBy("mListeners")
-    private final ArrayMap<Object, Registration<TRequest, TListener>> mListeners =
+    private final Object mLock = new Object();
+
+    @GuardedBy("mLock")
+    private volatile ArrayMap<Object, Registration<TRequest, TListener>> mListeners =
             new ArrayMap<>();
 
-    @GuardedBy("mListeners")
+    @GuardedBy("mLock")
     @Nullable
     private TRequest mMergedRequest;
 
@@ -129,10 +131,16 @@
             throws RemoteException {
         Preconditions.checkNotNull(registration);
 
-        synchronized (mListeners) {
+        synchronized (mLock) {
             boolean initialRequest = mListeners.isEmpty();
 
-            Registration<TRequest, TListener> oldRegistration = mListeners.put(key, registration);
+            ArrayMap<Object, Registration<TRequest, TListener>> newListeners = new ArrayMap<>(
+                    mListeners.size() + 1);
+            newListeners.putAll(mListeners);
+            Registration<TRequest, TListener> oldRegistration = newListeners.put(key,
+                    registration);
+            mListeners = newListeners;
+
             if (oldRegistration != null) {
                 oldRegistration.unregister();
             }
@@ -151,8 +159,12 @@
     }
 
     public void removeListener(Object listener) throws RemoteException {
-        synchronized (mListeners) {
-            Registration<TRequest, TListener> oldRegistration = mListeners.remove(listener);
+        synchronized (mLock) {
+            ArrayMap<Object, Registration<TRequest, TListener>> newListeners = new ArrayMap<>(
+                    mListeners);
+            Registration<TRequest, TListener> oldRegistration = newListeners.remove(listener);
+            mListeners = newListeners;
+
             if (oldRegistration == null) {
                 return;
             }
@@ -190,18 +202,16 @@
     }
 
     protected void execute(Consumer<TListener> operation) {
-        synchronized (mListeners) {
-            for (Registration<TRequest, TListener> registration : mListeners.values()) {
-                registration.execute(operation);
-            }
+        for (Registration<TRequest, TListener> registration : mListeners.values()) {
+            registration.execute(operation);
         }
     }
 
-    @GuardedBy("mListeners")
+    @GuardedBy("mLock")
     @SuppressWarnings("unchecked")
     @Nullable
     private TRequest mergeRequests() {
-        Preconditions.checkState(Thread.holdsLock(mListeners));
+        Preconditions.checkState(Thread.holdsLock(mLock));
 
         if (mListeners.isEmpty()) {
             return null;
diff --git a/media/java/android/media/AudioDeviceInfo.java b/media/java/android/media/AudioDeviceInfo.java
index 6e63d17..db2a1e8 100644
--- a/media/java/android/media/AudioDeviceInfo.java
+++ b/media/java/android/media/AudioDeviceInfo.java
@@ -425,14 +425,14 @@
     /**
      * Returns an array of supported encapsulation modes for the device.
      *
-     * The array can include any of
-     * {@link AudioTrack#ENCAPSULATION_MODE_ELEMENTARY_STREAM},
-     * {@link AudioTrack#ENCAPSULATION_MODE_HANDLE}.
+     * The array can include any of the {@code AudioTrack} encapsulation modes,
+     * e.g. {@link AudioTrack#ENCAPSULATION_MODE_NONE},
+     * or {@link AudioTrack#ENCAPSULATION_MODE_ELEMENTARY_STREAM}.
      *
      * @return An array of supported encapsulation modes for the device.  This
      *     may be an empty array if no encapsulation modes are supported.
      */
-    public @NonNull int[] getEncapsulationModes() {
+    public @NonNull @AudioTrack.EncapsulationMode int[] getEncapsulationModes() {
         // Implement a getter in r-dev or r-tv-dev as needed.
         return new int[0];  // be careful of returning a copy of any internal data.
     }
@@ -451,7 +451,7 @@
      * @return An array of supported encapsulation metadata types for the device.  This
      *     may be an empty array if no metadata types are supported.
      */
-    public @NonNull int[] getEncapsulationMetadataTypes() {
+    public @NonNull @AudioTrack.EncapsulationMetadataType int[] getEncapsulationMetadataTypes() {
         // Implement a getter in r-dev or r-tv-dev as needed.
         return new int[0];  // be careful of returning a copy of any internal data.
     }
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index 383202b..7408987e 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -4579,6 +4579,7 @@
      * {@hide}
      */
     @UnsupportedAppUsage
+    @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
     public void setWiredDeviceConnectionState(int type, int state, String address, String name) {
         final IAudioService service = getService();
         try {
@@ -4768,7 +4769,7 @@
      * opened on that device.
      *
      * @param device an instance of {@link AudioDeviceInfo} returned from {@link getDevices()}.
-     * @param delayMs delay in milliseconds desired.  This should be in range of {@code 0}
+     * @param delayMillis delay in milliseconds desired.  This should be in range of {@code 0}
      *     to the value returned by {@link #getMaxAdditionalOutputDeviceDelay()}.
      * @return true if successful, false if the device does not support output device delay
      *     or the delay is not in range of {@link #getMaxAdditionalOutputDeviceDelay()}.
@@ -4776,7 +4777,7 @@
     @SystemApi
     @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
     public boolean setAdditionalOutputDeviceDelay(
-            @NonNull AudioDeviceInfo device, @IntRange(from = 0) int delayMs) {
+            @NonNull AudioDeviceInfo device, @IntRange(from = 0) long delayMillis) {
         Objects.requireNonNull(device);
         // Implement the setter in r-dev or r-tv-dev as needed.
         return false;
@@ -4792,7 +4793,7 @@
      */
     @SystemApi
     @IntRange(from = 0)
-    public int getAdditionalOutputDeviceDelay(@NonNull AudioDeviceInfo device) {
+    public long getAdditionalOutputDeviceDelay(@NonNull AudioDeviceInfo device) {
         Objects.requireNonNull(device);
         // Implement the getter in r-dev or r-tv-dev as needed.
         return 0;
@@ -4810,7 +4811,7 @@
      */
     @SystemApi
     @IntRange(from = 0)
-    public int getMaxAdditionalOutputDeviceDelay(@NonNull AudioDeviceInfo device) {
+    public long getMaxAdditionalOutputDeviceDelay(@NonNull AudioDeviceInfo device) {
         Objects.requireNonNull(device);
         // Implement the getter in r-dev or r-tv-dev as needed.
         return 0;
@@ -5986,6 +5987,20 @@
         }
     }
 
+    /**
+     * Set whether or not there is an active RTT call.
+     * This method should be called by Telecom service.
+     * @hide
+     * TODO: make this a @SystemApi
+     */
+    public static void setRttEnabled(boolean rttEnabled) {
+        try {
+            getService().setRttEnabled(rttEnabled);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
     //---------------------------------------------------------
     // Inner classes
     //--------------------
diff --git a/media/java/android/media/AudioMetadata.java b/media/java/android/media/AudioMetadata.java
index e67ba59..c91ff0d 100644
--- a/media/java/android/media/AudioMetadata.java
+++ b/media/java/android/media/AudioMetadata.java
@@ -41,130 +41,49 @@
     private static final String TAG = "AudioMetadata";
 
     /**
-     * Key interface for the map.
+     * Key interface for the {@code AudioMetadata} map.
      *
-     * The presence of this {@code Key} interface on an object allows
-     * it to be used to reference metadata in the Audio Framework.
+     * <p>The presence of this {@code Key} interface on an object allows
+     * it to reference metadata in the Audio Framework.</p>
+     *
+     * <p>Vendors are allowed to implement this {@code Key} interface for their debugging or
+     * private application use. To avoid name conflicts, vendor key names should be qualified by
+     * the vendor company name followed by a dot; for example, "vendorCompany.someVolume".</p>
      *
      * @param <T> type of value associated with {@code Key}.
      */
-    // Conceivably metadata keys exposing multiple interfaces
-    // could be eligible to work in multiple framework domains.
+    /*
+     * Internal details:
+     * Conceivably metadata keys exposing multiple interfaces
+     * could be eligible to work in multiple framework domains.
+     */
     public interface Key<T> {
         /**
-         * Returns the internal name of the key.
+         * Returns the internal name of the key.  The name should be unique in the
+         * {@code AudioMetadata} namespace.  Vendors should prefix their keys with
+         * the company name followed by a dot.
          */
         @NonNull
         String getName();
 
         /**
-         * Returns the class type of the associated value.
+         * Returns the class type {@code T} of the associated value.  Valid class types for
+         * {@link android.os.Build.VERSION_CODES#R} are
+         * {@code Integer.class}, {@code Long.class}, {@code Float.class}, {@code Double.class},
+         * {@code String.class}.
          */
         @NonNull
         Class<T> getValueClass();
 
         // TODO: consider adding bool isValid(@NonNull T value)
-
-        /**
-         * Do not allow non-framework apps to create their own keys
-         * by implementing this interface; keep a method hidden.
-         *
-         * @hide
-         */
-        boolean isFromFramework();
     }
 
     /**
-     * A read only {@code Map} interface of {@link Key} value pairs.
-     *
-     * Using a {@link Key} interface, look up the corresponding value.
-     */
-    public interface ReadMap {
-        /**
-         * Returns true if the key exists in the map.
-         *
-         * @param key interface for requesting the value.
-         * @param <T> type of value.
-         * @return true if key exists in the Map.
-         */
-        <T> boolean containsKey(@NonNull Key<T> key);
-
-        /**
-         * Returns a copy of the map.
-         *
-         * This is intended for safe conversion between a {@link ReadMap}
-         * interface and a {@link Map} interface.
-         * Currently only simple objects are used for key values which
-         * means a shallow copy is sufficient.
-         *
-         * @return a Map copied from the existing map.
-         */
-        @NonNull
-        Map dup(); // lint checker doesn't like clone().
-
-        /**
-         * Returns the value associated with the key.
-         *
-         * @param key interface for requesting the value.
-         * @param <T> type of value.
-         * @return returns the value of associated with key or null if it doesn't exist.
-         */
-        @Nullable
-        <T> T get(@NonNull Key<T> key);
-
-        /**
-         * Returns a {@code Set} of keys associated with the map.
-         * @hide
-         */
-        @NonNull
-        Set<Key<?>> keySet();
-
-        /**
-         * Returns the number of elements in the map.
-         */
-        int size();
-    }
-
-    /**
-     * A writeable {@link Map} interface of {@link Key} value pairs.
-     * This interface is not guaranteed to be thread-safe
-     * unless the supplier for the {@code Map} states it as thread safe.
-     */
-    // TODO: Create a wrapper like java.util.Collections.synchronizedMap?
-    public interface Map extends ReadMap {
-        /**
-         * Removes the value associated with the key.
-         * @param key interface for storing the value.
-         * @param <T> type of value.
-         * @return the value of the key, null if it doesn't exist.
-         */
-        @Nullable
-        <T> T remove(@NonNull Key<T> key);
-
-        /**
-         * Sets a value for the key.
-         *
-         * @param key interface for storing the value.
-         * @param <T> type of value.
-         * @param value a non-null value of type T.
-         * @return the previous value associated with key or null if it doesn't exist.
-         */
-        // See automatic Kotlin overloading for Java interoperability.
-        // https://kotlinlang.org/docs/reference/java-interop.html#operators
-        // See also Kotlin set for overloaded operator indexing.
-        // https://kotlinlang.org/docs/reference/operator-overloading.html#indexed
-        // Also the Kotlin mutable-list set.
-        // https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/set.html
-        @Nullable
-        <T> T set(@NonNull Key<T> key, @NonNull T value);
-    }
-
-    /**
-     * Creates a {@link Map} suitable for adding keys.
-     * @return an empty {@link Map} instance.
+     * Creates a {@link AudioMetadataMap} suitable for adding keys.
+     * @return an empty {@link AudioMetadataMap} instance.
      */
     @NonNull
-    public static Map createMap() {
+    public static AudioMetadataMap createMap() {
         return new BaseMap();
     }
 
@@ -301,12 +220,6 @@
                 return mType;
             }
 
-            // hidden interface method to prevent user class implements the of Key interface.
-            @Override
-            public boolean isFromFramework() {
-                return true;
-            }
-
             /**
              * Return true if the name and the type of two objects are the same.
              */
@@ -341,7 +254,7 @@
      * It is possible to require the keys to be of a certain class
      * before allowing a set or get operation.
      */
-    public static class BaseMap implements Map {
+    public static class BaseMap implements AudioMetadataMap {
         @Override
         public <T> boolean containsKey(@NonNull Key<T> key) {
             Pair<Key<?>, Object> valuePair = mHashMap.get(pairFromKey(key));
@@ -350,7 +263,7 @@
 
         @Override
         @NonNull
-        public Map dup() {
+        public AudioMetadataMap dup() {
             BaseMap map = new BaseMap();
             map.mHashMap.putAll(this.mHashMap);
             return map;
diff --git a/media/java/android/media/AudioMetadataMap.java b/media/java/android/media/AudioMetadataMap.java
new file mode 100644
index 0000000..1961931
--- /dev/null
+++ b/media/java/android/media/AudioMetadataMap.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.media;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+
+/**
+ * AudioMetadataMap is a writeable {@code Map}-style
+ * interface of {@link AudioMetadata.Key} value pairs.
+ * This interface is not guaranteed to be thread-safe
+ * unless the underlying implementation for the {@code AudioMetadataMap}
+ * states it as thread safe.
+ *
+ * {@see AudioMetadataReadMap}
+ */
+// TODO: Create a wrapper like java.util.Collections.synchronizedMap?
+
+public interface AudioMetadataMap extends AudioMetadataReadMap {
+    /**
+     * Removes the value associated with the key.
+     * @param key interface for storing the value.
+     * @param <T> type of value.
+     * @return the value of the key, null if it doesn't exist.
+     */
+    @Nullable
+    <T> T remove(@NonNull AudioMetadata.Key<T> key);
+
+    /**
+     * Sets a value for the key.
+     *
+     * @param key interface for storing the value.
+     * @param <T> type of value.
+     * @param value a non-null value of type T.
+     * @return the previous value associated with key or null if it doesn't exist.
+     */
+    // See automatic Kotlin overloading for Java interoperability.
+    // https://kotlinlang.org/docs/reference/java-interop.html#operators
+    // See also Kotlin set for overloaded operator indexing.
+    // https://kotlinlang.org/docs/reference/operator-overloading.html#indexed
+    // Also the Kotlin mutable-list set.
+    // https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/set.html
+    @Nullable
+    <T> T set(@NonNull AudioMetadata.Key<T> key, @NonNull T value);
+}
diff --git a/media/java/android/media/AudioMetadataReadMap.java b/media/java/android/media/AudioMetadataReadMap.java
new file mode 100644
index 0000000..e74242a
--- /dev/null
+++ b/media/java/android/media/AudioMetadataReadMap.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.media;
+
+import android.annotation.IntRange;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+
+import java.util.Set;
+
+/**
+ * A read only {@code Map}-style interface of {@link AudioMetadata.Key} value pairs used
+ * for {@link AudioMetadata}.
+ *
+ * <p>Using a {@link AudioMetadata.Key} interface,
+ * this map looks up the corresponding value.
+ * Read-only maps are thread-safe for lookup, but the underlying object
+ * values may need their own thread protection if mutable.</p>
+ *
+ * {@see AudioMetadataMap}
+ */
+public interface AudioMetadataReadMap {
+    /**
+     * Returns true if the key exists in the map.
+     *
+     * @param key interface for requesting the value.
+     * @param <T> type of value.
+     * @return true if key exists in the Map.
+     */
+    <T> boolean containsKey(@NonNull AudioMetadata.Key<T> key);
+
+    /**
+     * Returns a copy of the map.
+     *
+     * This is intended for safe conversion between a {@link AudioMetadataReadMap}
+     * interface and a {@link AudioMetadataMap} interface.
+     * Currently only simple objects are used for key values which
+     * means a shallow copy is sufficient.
+     *
+     * @return a Map copied from the existing map.
+     */
+    @NonNull
+    AudioMetadataMap dup(); // lint checker doesn't like clone().
+
+    /**
+     * Returns the value associated with the key.
+     *
+     * @param key interface for requesting the value.
+     * @param <T> type of value.
+     * @return returns the value of associated with key or null if it doesn't exist.
+     */
+    @Nullable
+    <T> T get(@NonNull AudioMetadata.Key<T> key);
+
+    /**
+     * Returns a {@code Set} of keys associated with the map.
+     * @hide
+     */
+    @NonNull
+    Set<AudioMetadata.Key<?>> keySet();
+
+    /**
+     * Returns the number of elements in the map.
+     */
+    @IntRange(from = 0)
+    int size();
+}
diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java
index 8b973a1..0a56acc 100644
--- a/media/java/android/media/AudioSystem.java
+++ b/media/java/android/media/AudioSystem.java
@@ -708,6 +708,8 @@
         DEVICE_IN_ALL_USB_SET.add(DEVICE_IN_USB_HEADSET);
     }
 
+    public static final String LEGACY_REMOTE_SUBMIX_ADDRESS = "0";
+
     // device states, must match AudioSystem::device_connection_state
     @UnsupportedAppUsage
     public static final int DEVICE_STATE_UNAVAILABLE = 0;
diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java
index 94d4fcc..1d229b80 100644
--- a/media/java/android/media/AudioTrack.java
+++ b/media/java/android/media/AudioTrack.java
@@ -22,6 +22,8 @@
 import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.RequiresPermission;
+import android.annotation.SystemApi;
 import android.annotation.TestApi;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.os.Binder;
@@ -229,7 +231,7 @@
     @IntDef({
         ENCAPSULATION_MODE_NONE,
         ENCAPSULATION_MODE_ELEMENTARY_STREAM,
-        ENCAPSULATION_MODE_HANDLE,
+        // ENCAPSULATION_MODE_HANDLE, @SystemApi
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface EncapsulationMode {}
@@ -244,16 +246,17 @@
     /**
      * This mode indicates metadata encapsulation with an elementary stream payload.
      * Both compressed and PCM format is allowed.
-     *
-     * TODO(b/147778408) Link: See the Android developers guide for more information.
      */
     public static final int ENCAPSULATION_MODE_ELEMENTARY_STREAM = 1;
     /**
-     * This mode indicates metadata encapsulation with a handle payload.
-     * The handle is a 64 bit long, provided by the Tuner API.
-     *
-     * TODO(b/147778408) Link: Fill in Tuner API to obtain the handle.
+     * This mode indicates metadata encapsulation with a handle payload
+     * and is set through {@link Builder#setEncapsulationMode(int)}.
+     * The handle is a 64 bit long, provided by the Tuner API
+     * in {@link android.os.Build.VERSION_CODES#R}.
+     * @hide
      */
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
     public static final int ENCAPSULATION_MODE_HANDLE = 2;
 
     /* Enumeration of metadata types permitted for use by
@@ -908,12 +911,36 @@
      *
      * Use the Builder to construct the TunerConfiguration object,
      * which is then used by the {@link AudioTrack.Builder} to create an AudioTrack.
+     * @hide
      */
+    @SystemApi
     public static class TunerConfiguration {
         private final int mContentId;
         private final int mSyncId;
 
-        private TunerConfiguration(int contentId, int syncId) {
+        /**
+         * Constructs a TunerConfiguration instance for use in {@link AudioTrack.Builder}
+         *
+         * @param contentId selects the audio stream to use.
+         *     The contentId may be obtained from
+         *     {@link android.media.tv.tuner.filter.Filter#getId()}.
+         *     This is always a positive number.
+         * @param syncId selects the clock to use for synchronization
+         *     of audio with other streams such as video.
+         *     The syncId may be obtained from
+         *     {@link android.media.tv.tuner.Tuner#getAvSyncHwId()}.
+         *     This is always a positive number.
+         */
+        @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
+        public TunerConfiguration(
+                @IntRange(from = 1) int contentId, @IntRange(from = 1)int syncId) {
+            if (contentId < 1) {
+                throw new IllegalArgumentException(
+                        "contentId " + contentId + " must be positive");
+            }
+            if (syncId < 1) {
+                throw new IllegalArgumentException("syncId " + syncId + " must be positive");
+            }
             mContentId = contentId;
             mSyncId = syncId;
         }
@@ -921,77 +948,17 @@
         /**
          * Returns the contentId.
          */
-        public int getContentId() {
-            return mContentId;
+        @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
+        public @IntRange(from = 1) int getContentId() {
+            return mContentId; // The Builder ensures this is > 0.
         }
 
         /**
          * Returns the syncId.
          */
-        public int getSyncId() {
-            return mSyncId;
-        }
-
-        /**
-         * Builder class for {@link AudioTrack.TunerConfiguration} objects.
-         */
-        public static class Builder {
-            private int mContentId;
-            private int mSyncId;
-
-            /**
-             * Sets the contentId from the Tuner filter.
-             *
-             * @param contentId selects the audio stream to use.
-             *     See android.media.tv.tuner.filter.Filter#getId().
-             *     This is always a positive number.
-             *     TODO(b/147778408) Link to tuner filter doc when unhidden.
-             * @return the same Builder instance.
-             */
-            public @NonNull Builder setContentId(@IntRange(from = 1) int contentId) {
-                if (contentId < 1) {
-                    throw new IllegalArgumentException(
-                            "contentId " + contentId + " must be positive");
-                }
-                mContentId = contentId;
-                return this;
-            }
-
-            /**
-             * Sets the syncId from the Tuner filter.
-             *
-             * @param syncId selects the clock to use for synchronization
-             *     of audio with other streams such as video.
-             *     See android.media.tv.tuner.Tuner#getAvSyncHwId().
-             *     This is always a positive number.
-             *     TODO(b/147778408) Link to tuner filter doc when unhidden.
-             * @return the same Builder instance.
-             */
-            public @NonNull Builder setSyncId(@IntRange(from = 1) int syncId) {
-                if (syncId < 1) {
-                    throw new IllegalArgumentException("syncId " + syncId + " must be positive");
-                }
-                mSyncId = syncId;
-                return this;
-            }
-
-            /**
-             * Builds a {@link AudioTrack.TunerConfiguration} instance initialized with
-             * the parameters set on this {@code Builder}.
-             *
-             * @return a new successfully initialized {@link AudioTrack.TunerConfiguration}.
-             * @throws UnsupportedOperationException if the parameters set on the
-             *     {@code Builder} are incompatible.
-             */
-            public @NonNull TunerConfiguration build() {
-                if (mContentId < 1 || mSyncId < 1) {
-                    throw new UnsupportedOperationException(
-                            "contentId " + mContentId
-                            + " syncId " + mSyncId
-                            + " must be set");
-                }
-                return new TunerConfiguration(mContentId, mSyncId);
-            }
+        @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
+        public @IntRange(from = 1) int getSyncId() {
+            return mSyncId;  // The Builder ensures this is > 0.
         }
     }
 
@@ -1113,15 +1080,14 @@
          *
          * Encapsulation mode allows metadata to be sent together with
          * the audio data payload in a {@code ByteBuffer}.
-         * The data format is specified in the Android developers site.
-         *
-         * TODO(b/147778408) Link to doc page.
+         * This requires a compatible hardware audio codec.
          *
          * @param encapsulationMode one of {@link AudioTrack#ENCAPSULATION_MODE_NONE},
-         *        {@link AudioTrack#ENCAPSULATION_MODE_ELEMENTARY_STREAM},
-         *        {@link AudioTrack#ENCAPSULATION_MODE_HANDLE}.
+         *        or {@link AudioTrack#ENCAPSULATION_MODE_ELEMENTARY_STREAM}.
          * @return the same Builder instance.
          */
+        // Note: with the correct permission {@code AudioTrack#ENCAPSULATION_MODE_HANDLE}
+        // may be used as well.
         public @NonNull Builder setEncapsulationMode(@EncapsulationMode int encapsulationMode) {
             switch (encapsulationMode) {
                 case ENCAPSULATION_MODE_NONE:
@@ -1225,7 +1191,10 @@
          *
          * @param tunerConfiguration obtained by {@link AudioTrack.TunerConfiguration.Builder}.
          * @return the same Builder instance.
+         * @hide
          */
+        @SystemApi
+        @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
         public @NonNull Builder setTunerConfiguration(
                 @NonNull TunerConfiguration tunerConfiguration) {
             if (tunerConfiguration == null) {
@@ -1475,7 +1444,7 @@
      *
      * For AudioTracks incorporating a secondary Audio Description stream
      * (where such contents may be sent through an Encapsulation Mode
-     * {@link #ENCAPSULATION_MODE_ELEMENTARY_STREAM} or {@link #ENCAPSULATION_MODE_HANDLE}
+     * other than {@link #ENCAPSULATION_MODE_NONE}).
      * or internally by a HW channel),
      * the level of mixing of the Audio Description to the Main Audio stream
      * is controlled by this method.
@@ -3659,7 +3628,7 @@
     // OnCodecFormatChangedListener notifications uses an instance
     // of ListenerList to manage its listeners.
 
-    private final Utils.ListenerList<AudioMetadata.ReadMap> mCodecFormatChangedListeners =
+    private final Utils.ListenerList<AudioMetadataReadMap> mCodecFormatChangedListeners =
             new Utils.ListenerList();
 
     /**
@@ -3670,13 +3639,13 @@
          * Called when the compressed codec format changes.
          *
          * @param audioTrack is the {@code AudioTrack} instance associated with the codec.
-         * @param info is a {@link AudioMetadata.ReadMap} of values which contains decoded format
+         * @param info is a {@link AudioMetadataReadMap} of values which contains decoded format
          *     changes reported by the codec.  Not all hardware
          *     codecs indicate codec format changes. Acceptable keys are taken from
          *     {@code AudioMetadata.Format.KEY_*} range, with the associated value type.
          */
         void onCodecFormatChanged(
-                @NonNull AudioTrack audioTrack, @Nullable AudioMetadata.ReadMap info);
+                @NonNull AudioTrack audioTrack, @Nullable AudioMetadataReadMap info);
     }
 
     /**
@@ -3694,7 +3663,7 @@
         mCodecFormatChangedListeners.add(
                 listener, /* key for removal */
                 executor,
-                (int eventCode, AudioMetadata.ReadMap readMap) -> {
+                (int eventCode, AudioMetadataReadMap readMap) -> {
                     // eventCode is unused by this implementation.
                     listener.onCodecFormatChanged(this, readMap);
                 }
@@ -4053,7 +4022,7 @@
             ByteBuffer buffer = (ByteBuffer) obj;
             buffer.order(ByteOrder.nativeOrder());
             buffer.rewind();
-            AudioMetadata.ReadMap audioMetaData = AudioMetadata.fromByteBuffer(buffer);
+            AudioMetadataReadMap audioMetaData = AudioMetadata.fromByteBuffer(buffer);
             if (audioMetaData == null) {
                 Log.e(TAG, "Unable to get audio metadata from byte buffer");
                 return;
diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl
index 5f320cd..453a5d8 100644
--- a/media/java/android/media/IAudioService.aidl
+++ b/media/java/android/media/IAudioService.aidl
@@ -292,6 +292,8 @@
     oneway void unregisterStrategyPreferredDeviceDispatcher(
             IStrategyPreferredDeviceDispatcher dispatcher);
 
+    oneway void setRttEnabled(in boolean rttEnabled);
+
     // WARNING: read warning at top of file, new methods that need to be used by native
     // code via IAudioManager.h need to be added to the top section.
 }
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java
index f800f9e..1d70a0d 100644
--- a/media/java/android/media/MediaCodec.java
+++ b/media/java/android/media/MediaCodec.java
@@ -42,8 +42,11 @@
 import java.nio.ReadOnlyBufferException;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
@@ -1957,7 +1960,7 @@
 
     /**
      * If this codec is to be used with {@link LinearBlock} and/or {@link
-     * GraphicBlock}, pass this flag.
+     * HardwareBuffer}, pass this flag.
      * <p>
      * When this flag is set, the following APIs throw {@link IncompatibleWithBlockModelException}.
      * <ul>
@@ -1989,6 +1992,19 @@
      * Thrown when the codec is configured for block model and an incompatible API is called.
      */
     public class IncompatibleWithBlockModelException extends RuntimeException {
+        IncompatibleWithBlockModelException() { }
+
+        IncompatibleWithBlockModelException(String message) {
+            super(message);
+        }
+
+        IncompatibleWithBlockModelException(String message, Throwable cause) {
+            super(message, cause);
+        }
+
+        IncompatibleWithBlockModelException(Throwable cause) {
+            super(cause);
+        }
     }
 
     /**
@@ -2532,7 +2548,9 @@
         throws CryptoException {
         synchronized(mBufferLock) {
             if (mBufferMode == BUFFER_MODE_BLOCK) {
-                throw new IncompatibleWithBlockModelException();
+                throw new IncompatibleWithBlockModelException("queueInputBuffer() "
+                        + "is not compatible with CONFIGURE_FLAG_USE_BLOCK_MODEL. "
+                        + "Please use getQueueRequest() to queue buffers");
             }
             invalidateByteBuffer(mCachedInputBuffers, index);
             mDequeuedInputBuffers.remove(index);
@@ -2784,7 +2802,9 @@
             int flags) throws CryptoException {
         synchronized(mBufferLock) {
             if (mBufferMode == BUFFER_MODE_BLOCK) {
-                throw new IncompatibleWithBlockModelException();
+                throw new IncompatibleWithBlockModelException("queueSecureInputBuffer() "
+                        + "is not compatible with CONFIGURE_FLAG_USE_BLOCK_MODEL. "
+                        + "Please use getQueueRequest() to queue buffers");
             }
             invalidateByteBuffer(mCachedInputBuffers, index);
             mDequeuedInputBuffers.remove(index);
@@ -2819,7 +2839,9 @@
     public final int dequeueInputBuffer(long timeoutUs) {
         synchronized (mBufferLock) {
             if (mBufferMode == BUFFER_MODE_BLOCK) {
-                throw new IncompatibleWithBlockModelException();
+                throw new IncompatibleWithBlockModelException("dequeueInputBuffer() "
+                        + "is not compatible with CONFIGURE_FLAG_USE_BLOCK_MODEL. "
+                        + "Please use MediaCodec.Callback objectes to get input buffer slots.");
             }
         }
         int res = native_dequeueInputBuffer(timeoutUs);
@@ -2989,179 +3011,22 @@
     }
 
     /**
-     * Section of memory that represents a graphic block. Applications may
-     * acquire a block via {@link GraphicBlock#obtain} and queue
-     * the block as an input buffer to a codec, or get a block allocated by
-     * codec as an output buffer from {@link OutputFrame}.
+     * Map a {@link HardwareBuffer} object into {@link Image}, so that the content of the buffer is
+     * accessible. Depending on the usage and pixel format of the hardware buffer, it may not be
+     * mappable; this method returns null in that case.
      *
-     * {@see QueueRequest#setGraphicBlock}
-     * {@see OutputFrame#getGraphicBlock}
+     * @param hardwareBuffer {@link HardwareBuffer} to map.
+     * @return Mapped {@link Image} object, or null if the buffer is not mappable.
      */
-    public static final class GraphicBlock {
-        // No public constructors.
-        private GraphicBlock() {}
-
-        /**
-         * Returns true if the buffer is mappable.
-         * @throws IllegalStateException if invalid
-         */
-        public boolean isMappable() {
-            synchronized (mLock) {
-                if (!mValid) {
-                    throw new IllegalStateException("The graphic block is invalid");
-                }
-                return mMappable;
-            }
-        }
-
-        /**
-         * Map the memory and return the mapped region.
-         * <p>
-         * Calling {@link #recycle} or
-         * {@link QueueRequest#setGraphicBlock} causes the returned
-         * {@link Image} object to be closed, if not already.
-         *
-         * @return mapped memory region as {@link Image} object
-         * @throws IllegalStateException if not mappable or invalid
-         */
-        public @NonNull Image map() {
-            synchronized (mLock) {
-                if (!mValid) {
-                    throw new IllegalStateException("The graphic block is invalid");
-                }
-                if (!mMappable) {
-                    throw new IllegalStateException("The graphic block is not mappable");
-                }
-                if (mMapped == null) {
-                    mMapped = native_map();
-                }
-                return mMapped;
-            }
-        }
-
-        private native Image native_map();
-
-        /**
-         * Mark this block as ready to be recycled by the framework once it is
-         * no longer in use. All operations to this object after
-         * this call will cause exceptions, as well as attempt to access the
-         * previously mapped memory region. Caller should clear all references
-         * to this object after this call.
-         * <p>
-         * To avoid excessive memory consumption, it is recommended that callers
-         * recycle buffers as soon as they no longer need the buffers.
-         *
-         * @throws IllegalStateException if invalid
-         */
-        public void recycle() {
-            synchronized (mLock) {
-                if (!mValid) {
-                    throw new IllegalStateException("The graphic block is invalid");
-                }
-                if (mMapped != null) {
-                    mMapped.close();
-                    mMapped = null;
-                }
-                native_recycle();
-                mValid = false;
-                mNativeContext = 0;
-            }
-            sPool.offer(this);
-        }
-
-        private native void native_recycle();
-
-        /**
-         * Returns true if it is possible to allocate a graphic block that
-         * can be passed to all listed codecs as an input buffer without
-         * copying.
-         * <p>
-         * Note that even if this function returns true, {@link #obtain}
-         * may still throw due to invalid arguments or allocation failure.
-         * In addition, choosing a format that is not natively supported by the
-         * codec may cause color conversion.
-         *
-         * @param codecNames  list of codecs that the client wants to use a
-         *                    graphic block without copying. Null entries are
-         *                    ignored.
-         */
-        public static boolean isCodecCopyFreeCompatible(@NonNull String[] codecNames) {
-            return native_checkCompatible(codecNames);
-        }
-
-        private static native boolean native_checkCompatible(@NonNull String[] codecNames);
-
-        // Called from native
-        private void setInternalStateLocked(long context, boolean isMappable) {
-            mNativeContext = context;
-            mMappable = isMappable;
-            mValid = (context != 0);
-        }
-
-        private static final BlockingQueue<GraphicBlock> sPool =
-                new LinkedBlockingQueue<>();
-
-        /**
-         * Obtain a graphic block object of dimension
-         * {@code width}x{@code height}.
-         * If {@link #isCodecCopyFreeCompatible} with the same
-         * {@code codecNames} returned true, the returned
-         * {@link GraphicBlock} object can be queued to the listed codecs
-         * without copying. The returned {@link GraphicBlock} object is always
-         * read/write mappable.
-         *
-         * @param width requested width of the graphic block
-         * @param height requested height of the graphic block
-         * @param format the format of pixels. One of the {@code COLOR_Format}
-         *               values from {@link MediaCodecInfo.CodecCapabilities}.
-         * @param usage the usage of the buffer. @HardwareBuffer.Usage
-         * @param codecNames  list of codecs that the client wants to use this
-         *                    graphic block without copying. Null entries are
-         *                    ignored.
-         * @return  a graphic block object.
-         * @throws IllegalArgumentException if the parameters are invalid or
-         *     not supported
-         * @throws IOException if an error occurred while allocating a buffer
-         */
-        public static @NonNull GraphicBlock obtain(
-                int width,
-                int height,
-                int format,
-                @HardwareBuffer.Usage long usage,
-                @NonNull String[] codecNames) {
-            GraphicBlock buffer = sPool.poll();
-            if (buffer == null) {
-                buffer = new GraphicBlock();
-            }
-            if (width <= 0 || height <= 0) {
-                throw new IllegalArgumentException(
-                        "non-positive width or height: " + width + "x" + height);
-            }
-            synchronized (buffer.mLock) {
-                buffer.native_obtain(width, height, format, usage, codecNames);
-            }
-            return buffer;
-        }
-
-        private native void native_obtain(
-                int width,
-                int height,
-                int format,
-                @HardwareBuffer.Usage long usage,
-                @NonNull String[] codecNames);
-
-        @Override
-        protected void finalize() {
-            native_recycle();
-        }
-
-        private final Object mLock = new Object();
-        private boolean mValid = false;
-        private boolean mMappable = false;
-        private Image mMapped = null;
-        private long mNativeContext = 0;
+    public static @Nullable Image mapHardwareBuffer(@NonNull HardwareBuffer hardwareBuffer) {
+        return native_mapHardwareBuffer(hardwareBuffer);
     }
 
+    private static native @Nullable Image native_mapHardwareBuffer(
+            @NonNull HardwareBuffer hardwareBuffer);
+
+    private static native void native_closeMediaImage(long context);
+
     /**
      * Builder-like class for queue requests. Use this class to prepare a
      * queue request and send it.
@@ -3184,20 +3049,51 @@
          * @param block The linear block object
          * @param offset The byte offset into the input buffer at which the data starts.
          * @param size The number of bytes of valid input data.
-         * @param cryptoInfo Metadata describing the structure of the encrypted input sample.
-         *                   may be null if clear.
          * @return this object
          * @throws IllegalStateException if a buffer is already set
          */
         public @NonNull QueueRequest setLinearBlock(
                 @NonNull LinearBlock block,
                 int offset,
-                int size,
-                @Nullable MediaCodec.CryptoInfo cryptoInfo) {
+                int size) {
             if (!isAccessible()) {
                 throw new IllegalStateException("The request is stale");
             }
-            if (mLinearBlock != null || mGraphicBlock != null) {
+            if (mLinearBlock != null || mHardwareBuffer != null) {
+                throw new IllegalStateException("Cannot set block twice");
+            }
+            mLinearBlock = block;
+            mOffset = offset;
+            mSize = size;
+            mCryptoInfo = null;
+            return this;
+        }
+
+        /**
+         * Set an encrypted linear block to this queue request. Exactly one buffer must be
+         * set for a queue request before calling {@link #queue}. It is possible
+         * to use the same {@link LinearBlock} object for multiple queue
+         * requests. The behavior is undefined if the range of the buffer
+         * overlaps for multiple requests, or the application writes into the
+         * region being processed by the codec.
+         *
+         * @param block The linear block object
+         * @param offset The byte offset into the input buffer at which the data starts.
+         * @param size The number of bytes of valid input data.
+         * @param cryptoInfo Metadata describing the structure of the encrypted input sample.
+         * @return this object
+         * @throws IllegalStateException if a buffer is already set
+         */
+        public @NonNull QueueRequest setEncryptedLinearBlock(
+                @NonNull LinearBlock block,
+                int offset,
+                int size,
+                @NonNull MediaCodec.CryptoInfo cryptoInfo) {
+            Objects.requireNonNull(cryptoInfo);
+            if (!isAccessible()) {
+                throw new IllegalStateException("The request is stale");
+            }
+            if (mLinearBlock != null || mHardwareBuffer != null) {
                 throw new IllegalStateException("Cannot set block twice");
             }
             mLinearBlock = block;
@@ -3208,22 +3104,27 @@
         }
 
         /**
-         * Set a graphic block to this queue request. Exactly one buffer must
+         * Set a harware graphic buffer to this queue request. Exactly one buffer must
          * be set for a queue request before calling {@link #queue}.
+         * <p>
+         * Note: buffers should have format {@link HardwareBuffer#YCBCR_420_888},
+         * a single layer, and an appropriate usage ({@link HardwareBuffer#USAGE_CPU_READ_OFTEN}
+         * for software codecs and {@link HardwareBuffer#USAGE_VIDEO_ENCODE} for hardware)
+         * for codecs to recognize.  Codecs may throw exception if the buffer is not recognizable.
          *
-         * @param block The graphic block object
+         * @param buffer The hardware graphic buffer object
          * @return this object
          * @throws IllegalStateException if a buffer is already set
          */
-        public @NonNull QueueRequest setGraphicBlock(
-                @NonNull GraphicBlock block) {
+        public @NonNull QueueRequest setHardwareBuffer(
+                @NonNull HardwareBuffer buffer) {
             if (!isAccessible()) {
                 throw new IllegalStateException("The request is stale");
             }
-            if (mLinearBlock != null || mGraphicBlock != null) {
+            if (mLinearBlock != null || mHardwareBuffer != null) {
                 throw new IllegalStateException("Cannot set block twice");
             }
-            mGraphicBlock = block;
+            mHardwareBuffer = buffer;
             return this;
         }
 
@@ -3375,7 +3276,7 @@
             if (!isAccessible()) {
                 throw new IllegalStateException("The request is stale");
             }
-            if (mLinearBlock == null && mGraphicBlock == null) {
+            if (mLinearBlock == null && mHardwareBuffer == null) {
                 throw new IllegalStateException("No block is set");
             }
             setAccessible(false);
@@ -3384,9 +3285,9 @@
                         mIndex, mLinearBlock, mOffset, mSize, mCryptoInfo,
                         mPresentationTimeUs, mFlags,
                         mTuningKeys, mTuningValues);
-            } else if (mGraphicBlock != null) {
-                mCodec.native_queueGraphicBlock(
-                        mIndex, mGraphicBlock, mPresentationTimeUs, mFlags,
+            } else if (mHardwareBuffer != null) {
+                mCodec.native_queueHardwareBuffer(
+                        mIndex, mHardwareBuffer, mPresentationTimeUs, mFlags,
                         mTuningKeys, mTuningValues);
             }
             clear();
@@ -3397,7 +3298,7 @@
             mOffset = 0;
             mSize = 0;
             mCryptoInfo = null;
-            mGraphicBlock = null;
+            mHardwareBuffer = null;
             mPresentationTimeUs = 0;
             mFlags = 0;
             mTuningKeys.clear();
@@ -3420,7 +3321,7 @@
         private int mOffset = 0;
         private int mSize = 0;
         private MediaCodec.CryptoInfo mCryptoInfo = null;
-        private GraphicBlock mGraphicBlock = null;
+        private HardwareBuffer mHardwareBuffer = null;
         private long mPresentationTimeUs = 0;
         private @BufferFlag int mFlags = 0;
         private final ArrayList<String> mTuningKeys = new ArrayList<>();
@@ -3440,9 +3341,9 @@
             @NonNull ArrayList<String> keys,
             @NonNull ArrayList<Object> values);
 
-    private native void native_queueGraphicBlock(
+    private native void native_queueHardwareBuffer(
             int index,
-            @NonNull GraphicBlock block,
+            @NonNull HardwareBuffer buffer,
             long presentationTimeUs,
             int flags,
             @NonNull ArrayList<String> keys,
@@ -3535,7 +3436,9 @@
             @NonNull BufferInfo info, long timeoutUs) {
         synchronized (mBufferLock) {
             if (mBufferMode == BUFFER_MODE_BLOCK) {
-                throw new IncompatibleWithBlockModelException();
+                throw new IncompatibleWithBlockModelException("dequeueOutputBuffer() "
+                        + "is not compatible with CONFIGURE_FLAG_USE_BLOCK_MODEL. "
+                        + "Please use MediaCodec.Callback objects to get output buffer slots.");
             }
         }
         int res = native_dequeueOutputBuffer(info, timeoutUs);
@@ -3917,7 +3820,10 @@
     public ByteBuffer[] getInputBuffers() {
         synchronized (mBufferLock) {
             if (mBufferMode == BUFFER_MODE_BLOCK) {
-                throw new IncompatibleWithBlockModelException();
+                throw new IncompatibleWithBlockModelException("getInputBuffers() "
+                        + "is not compatible with CONFIGURE_FLAG_USE_BLOCK_MODEL. "
+                        + "Please obtain MediaCodec.LinearBlock or HardwareBuffer "
+                        + "objects and attach to QueueRequest objects.");
             }
             if (mCachedInputBuffers == null) {
                 throw new IllegalStateException();
@@ -3953,7 +3859,9 @@
     public ByteBuffer[] getOutputBuffers() {
         synchronized (mBufferLock) {
             if (mBufferMode == BUFFER_MODE_BLOCK) {
-                throw new IncompatibleWithBlockModelException();
+                throw new IncompatibleWithBlockModelException("getOutputBuffers() "
+                        + "is not compatible with CONFIGURE_FLAG_USE_BLOCK_MODEL. "
+                        + "Please use getOutputFrame to get output frames.");
             }
             if (mCachedOutputBuffers == null) {
                 throw new IllegalStateException();
@@ -3985,7 +3893,10 @@
     public ByteBuffer getInputBuffer(int index) {
         synchronized (mBufferLock) {
             if (mBufferMode == BUFFER_MODE_BLOCK) {
-                throw new IncompatibleWithBlockModelException();
+                throw new IncompatibleWithBlockModelException("getInputBuffer() "
+                        + "is not compatible with CONFIGURE_FLAG_USE_BLOCK_MODEL. "
+                        + "Please obtain MediaCodec.LinearBlock or HardwareBuffer "
+                        + "objects and attach to QueueRequest objects.");
             }
         }
         ByteBuffer newBuffer = getBuffer(true /* input */, index);
@@ -4019,7 +3930,10 @@
     public Image getInputImage(int index) {
         synchronized (mBufferLock) {
             if (mBufferMode == BUFFER_MODE_BLOCK) {
-                throw new IncompatibleWithBlockModelException();
+                throw new IncompatibleWithBlockModelException("getInputImage() "
+                        + "is not compatible with CONFIGURE_FLAG_USE_BLOCK_MODEL. "
+                        + "Please obtain MediaCodec.LinearBlock or HardwareBuffer "
+                        + "objects and attach to QueueRequest objects.");
             }
         }
         Image newImage = getImage(true /* input */, index);
@@ -4053,7 +3967,9 @@
     public ByteBuffer getOutputBuffer(int index) {
         synchronized (mBufferLock) {
             if (mBufferMode == BUFFER_MODE_BLOCK) {
-                throw new IncompatibleWithBlockModelException();
+                throw new IncompatibleWithBlockModelException("getOutputBuffer() "
+                        + "is not compatible with CONFIGURE_FLAG_USE_BLOCK_MODEL. "
+                        + "Please use getOutputFrame() to get output frames.");
             }
         }
         ByteBuffer newBuffer = getBuffer(false /* input */, index);
@@ -4086,7 +4002,9 @@
     public Image getOutputImage(int index) {
         synchronized (mBufferLock) {
             if (mBufferMode == BUFFER_MODE_BLOCK) {
-                throw new IncompatibleWithBlockModelException();
+                throw new IncompatibleWithBlockModelException("getOutputImage() "
+                        + "is not compatible with CONFIGURE_FLAG_USE_BLOCK_MODEL. "
+                        + "Please use getOutputFrame() to get output frames.");
             }
         }
         Image newImage = getImage(false /* input */, index);
@@ -4112,22 +4030,22 @@
          * @throws IllegalStateException if this output frame is not linear.
          */
         public @Nullable LinearBlock getLinearBlock() {
-            if (mGraphicBlock != null) {
+            if (mHardwareBuffer != null) {
                 throw new IllegalStateException("This output frame is not linear");
             }
             return mLinearBlock;
         }
 
         /**
-         * Returns the output graphic block, or null if this frame is empty.
+         * Returns the output hardware graphic buffer, or null if this frame is empty.
          *
          * @throws IllegalStateException if this output frame is not graphic.
          */
-        public @Nullable GraphicBlock getGraphicBlock() {
+        public @Nullable HardwareBuffer getHardwareBuffer() {
             if (mLinearBlock != null) {
                 throw new IllegalStateException("This output frame is not graphic");
             }
-            return mGraphicBlock;
+            return mHardwareBuffer;
         }
 
         /**
@@ -4153,21 +4071,24 @@
         }
 
         /**
-         * Populate {@code keys} with the name of entries that has changed from
+         * Returns an unmodifiable set of the names of entries that has changed from
          * the previous frame. The entries may have been removed/changed/added.
          * Client can find out what the change is by querying {@link MediaFormat}
          * object returned from {@link #getFormat}.
          */
-        public void retrieveChangedKeys(@NonNull Set<String> keys) {
-            keys.clear();
-            keys.addAll(mChangedKeys);
+        public @NonNull Set<String> getChangedKeys() {
+            if (mKeySet.isEmpty() && !mChangedKeys.isEmpty()) {
+                mKeySet.addAll(mChangedKeys);
+            }
+            return Collections.unmodifiableSet(mKeySet);
         }
 
         void clear() {
             mLinearBlock = null;
-            mGraphicBlock = null;
+            mHardwareBuffer = null;
             mFormat = null;
             mChangedKeys.clear();
+            mKeySet.clear();
             mLoaded = false;
         }
 
@@ -4194,11 +4115,12 @@
 
         private final int mIndex;
         private LinearBlock mLinearBlock = null;
-        private GraphicBlock mGraphicBlock = null;
+        private HardwareBuffer mHardwareBuffer = null;
         private long mPresentationTimeUs = 0;
         private @BufferFlag int mFlags = 0;
         private MediaFormat mFormat = null;
         private final ArrayList<String> mChangedKeys = new ArrayList<>();
+        private final Set<String> mKeySet = new HashSet<>();
         private boolean mAccessible = false;
         private boolean mLoaded = false;
     }
@@ -4773,6 +4695,7 @@
         private final ByteBuffer mInfo;
         private final int mXOffset;
         private final int mYOffset;
+        private final long mBufferContext;
 
         private final static int TYPE_YUV = 1;
 
@@ -4828,6 +4751,9 @@
                 if (mBuffer != null) {
                     java.nio.NioUtils.freeDirectBuffer(mBuffer);
                 }
+                if (mBufferContext != 0) {
+                    native_closeMediaImage(mBufferContext);
+                }
                 mIsImageValid = false;
             }
         }
@@ -4860,6 +4786,8 @@
             mYOffset = yOffset;
             mInfo = info;
 
+            mBufferContext = 0;
+
             // read media-info.  See MediaImage2
             if (info.remaining() == 104) {
                 int type = info.getInt();
@@ -4921,7 +4849,7 @@
 
         public MediaImage(
                 @NonNull Image.Plane[] planes, int width, int height, int format, boolean readOnly,
-                long timestamp, int xOffset, int yOffset, @Nullable Rect cropRect) {
+                long timestamp, int xOffset, int yOffset, @Nullable Rect cropRect, long context) {
             mWidth = width;
             mHeight = height;
             mFormat = format;
@@ -4941,6 +4869,8 @@
             }
             cropRect.offset(-xOffset, -yOffset);
             super.setCropRect(cropRect);
+
+            mBufferContext = context;
         }
 
         private class MediaPlane extends Plane {
diff --git a/media/java/android/media/MediaFormat.java b/media/java/android/media/MediaFormat.java
index a8f7185..cbf2364 100644
--- a/media/java/android/media/MediaFormat.java
+++ b/media/java/android/media/MediaFormat.java
@@ -316,7 +316,7 @@
      * A key describing the hardware AV sync id.
      * The associated value is an integer
      *
-     * @see android.media.tv.tuner.Tuner#getAvSyncHwId
+     * See android.media.tv.tuner.Tuner#getAvSyncHwId.
      */
     public static final String KEY_HARDWARE_AV_SYNC_ID = "hw-av-sync-id";
 
diff --git a/media/java/android/media/MediaRoute2Info.java b/media/java/android/media/MediaRoute2Info.java
index 36ccf00..e5ad569 100644
--- a/media/java/android/media/MediaRoute2Info.java
+++ b/media/java/android/media/MediaRoute2Info.java
@@ -238,7 +238,7 @@
      * Refer to the class documentation for details about live audio routes.
      * </p>
      */
-    public static final String FEATURE_LIVE_AUDIO = "android.media.intent.category.LIVE_AUDIO";
+    public static final String FEATURE_LIVE_AUDIO = "android.media.route.feature.LIVE_AUDIO";
 
     /**
      * Media feature: Live video.
@@ -259,13 +259,15 @@
      *
      * @see android.app.Presentation
      */
-    public static final String FEATURE_LIVE_VIDEO = "android.media.intent.category.LIVE_VIDEO";
+    public static final String FEATURE_LIVE_VIDEO = "android.media.route.feature.LIVE_VIDEO";
 
     /**
      * Media feature: Remote playback.
      * <p>
      * A route that supports remote playback routing will allow an application to send
      * requests to play content remotely to supported destinations.
+     * A route may only support {@link #FEATURE_REMOTE_AUDIO_PLAYBACK audio playback} or
+     * {@link #FEATURE_REMOTE_VIDEO_PLAYBACK video playback}.
      * </p><p>
      * Remote playback routes destinations operate independently of the local device.
      * When a remote playback route is selected, the application can control the content
@@ -274,9 +276,35 @@
      * </p><p>
      * Refer to the class documentation for details about remote playback routes.
      * </p>
+     * @see #FEATURE_REMOTE_AUDIO_PLAYBACK
+     * @see #FEATURE_REMOTE_VIDEO_PLAYBACK
      */
     public static final String FEATURE_REMOTE_PLAYBACK =
-            "android.media.intent.category.REMOTE_PLAYBACK";
+            "android.media.route.feature.REMOTE_PLAYBACK";
+
+    /**
+     * Media feature: Remote audio playback.
+     * <p>
+     * A route that supports remote audio playback routing will allow an application to send
+     * requests to play audio content remotely to supported destinations.
+     *
+     * @see #FEATURE_REMOTE_PLAYBACK
+     * @see #FEATURE_REMOTE_VIDEO_PLAYBACK
+     */
+    public static final String FEATURE_REMOTE_AUDIO_PLAYBACK =
+            "android.media.route.feature.REMOTE_AUDIO_PLAYBACK";
+
+    /**
+     * Media feature: Remote video playback.
+     * <p>
+     * A route that supports remote video playback routing will allow an application to send
+     * requests to play video content remotely to supported destinations.
+     *
+     * @see #FEATURE_REMOTE_PLAYBACK
+     * @see #FEATURE_REMOTE_AUDIO_PLAYBACK
+     */
+    public static final String FEATURE_REMOTE_VIDEO_PLAYBACK =
+            "android.media.route.feature.REMOTE_VIDEO_PLAYBACK";
 
     final String mId;
     final CharSequence mName;
@@ -635,8 +663,8 @@
         }
 
         /**
-         * Constructor for builder to create {@link MediaRoute2Info} with
-         * existing {@link MediaRoute2Info} instance.
+         * Constructor for builder to create {@link MediaRoute2Info} with existing
+         * {@link MediaRoute2Info} instance.
          *
          * @param routeInfo the existing instance to copy data from.
          */
@@ -662,6 +690,38 @@
         }
 
         /**
+         * Constructor for builder to create {@link MediaRoute2Info} with existing
+         * {@link MediaRoute2Info} instance and replace ID with the given {@code id}.
+         *
+         * @param id The ID of the new route. Must not be empty.
+         * @param routeInfo the existing instance to copy data from.
+         * @hide
+         */
+        public Builder(@NonNull String id, @NonNull MediaRoute2Info routeInfo) {
+            if (TextUtils.isEmpty(id)) {
+                throw new IllegalArgumentException("id must not be empty");
+            }
+            Objects.requireNonNull(routeInfo, "routeInfo must not be null");
+
+            mId = id;
+            mName = routeInfo.mName;
+            mFeatures = new ArrayList<>(routeInfo.mFeatures);
+            mType = routeInfo.mType;
+            mIsSystem = routeInfo.mIsSystem;
+            mIconUri = routeInfo.mIconUri;
+            mDescription = routeInfo.mDescription;
+            mConnectionState = routeInfo.mConnectionState;
+            mClientPackageName = routeInfo.mClientPackageName;
+            mVolumeHandling = routeInfo.mVolumeHandling;
+            mVolumeMax = routeInfo.mVolumeMax;
+            mVolume = routeInfo.mVolume;
+            if (routeInfo.mExtras != null) {
+                mExtras = new Bundle(routeInfo.mExtras);
+            }
+            mProviderId = routeInfo.mProviderId;
+        }
+
+        /**
          * Adds a feature for the route.
          * @param feature a feature that the route has. May be one of predefined features
          *                such as {@link #FEATURE_LIVE_AUDIO}, {@link #FEATURE_LIVE_VIDEO} or
diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java
index bde45d7..25f6059 100644
--- a/media/java/android/media/MediaRouter2.java
+++ b/media/java/android/media/MediaRouter2.java
@@ -374,8 +374,8 @@
      * @param route the route you want to transfer the current media to. Pass {@code null} to
      *              stop routing of the current media.
      *
-     * @see TransferCallback#onTransferred
-     * @see TransferCallback#onTransferFailed
+     * @see TransferCallback#onTransfer
+     * @see TransferCallback#onTransferFailure
      */
     public void transferTo(@NonNull MediaRoute2Info route) {
         Objects.requireNonNull(route, "route must not be null");
@@ -565,9 +565,9 @@
     }
 
     /**
-     * Creates a controller and calls the {@link TransferCallback#onTransferred}.
+     * Creates a controller and calls the {@link TransferCallback#onTransfer}.
      * If the controller creation has failed, then it calls
-     * {@link TransferCallback#onTransferFailed}.
+     * {@link TransferCallback#onTransferFailure}.
      * <p>
      * Pass {@code null} to sessionInfo for the failure case.
      */
@@ -740,21 +740,21 @@
             RoutingController newController) {
         for (TransferCallbackRecord record: mTransferCallbackRecords) {
             record.mExecutor.execute(
-                    () -> record.mTransferCallback.onTransferred(oldController, newController));
+                    () -> record.mTransferCallback.onTransfer(oldController, newController));
         }
     }
 
     private void notifyTransferFailed(MediaRoute2Info route) {
         for (TransferCallbackRecord record: mTransferCallbackRecords) {
             record.mExecutor.execute(
-                    () -> record.mTransferCallback.onTransferFailed(route));
+                    () -> record.mTransferCallback.onTransferFailure(route));
         }
     }
 
     private void notifyStopped(RoutingController controller) {
         for (TransferCallbackRecord record: mTransferCallbackRecords) {
             record.mExecutor.execute(
-                    () -> record.mTransferCallback.onStopped(controller));
+                    () -> record.mTransferCallback.onStop(controller));
         }
     }
 
@@ -805,7 +805,7 @@
          * @param newController the new controller to control routing
          * @see #transferTo(MediaRoute2Info)
          */
-        public void onTransferred(@NonNull RoutingController oldController,
+        public void onTransfer(@NonNull RoutingController oldController,
                 @NonNull RoutingController newController) {}
 
         /**
@@ -813,14 +813,14 @@
          *
          * @param requestedRoute the route info which was used for the transfer
          */
-        public void onTransferFailed(@NonNull MediaRoute2Info requestedRoute) {}
+        public void onTransferFailure(@NonNull MediaRoute2Info requestedRoute) {}
 
         /**
          * Called when a media routing stops. It can be stopped by a user or a provider.
          *
          * @param controller the controller that controlled the stopped media routing.
          */
-        public void onStopped(@NonNull RoutingController controller) { }
+        public void onStop(@NonNull RoutingController controller) { }
     }
 
     /**
diff --git a/media/java/android/media/audiofx/AudioEffect.java b/media/java/android/media/audiofx/AudioEffect.java
index 2587350..4263521 100644
--- a/media/java/android/media/audiofx/AudioEffect.java
+++ b/media/java/android/media/audiofx/AudioEffect.java
@@ -477,13 +477,21 @@
     @SystemApi
     @RequiresPermission(android.Manifest.permission.MODIFY_DEFAULT_AUDIO_EFFECTS)
     public AudioEffect(@NonNull UUID uuid, @NonNull AudioDeviceAttributes device) {
-        this(EFFECT_TYPE_NULL, Objects.requireNonNull(uuid), 0, -2, Objects.requireNonNull(device));
+        this(EFFECT_TYPE_NULL, Objects.requireNonNull(uuid),
+                0, -2, Objects.requireNonNull(device));
     }
 
     private AudioEffect(UUID type, UUID uuid, int priority,
             int audioSession, @Nullable AudioDeviceAttributes device)
             throws IllegalArgumentException, UnsupportedOperationException,
             RuntimeException {
+        this(type, uuid, priority, audioSession, device, false);
+    }
+
+    private AudioEffect(UUID type, UUID uuid, int priority,
+            int audioSession, @Nullable AudioDeviceAttributes device, boolean probe)
+            throws IllegalArgumentException, UnsupportedOperationException,
+            RuntimeException {
         int[] id = new int[1];
         Descriptor[] desc = new Descriptor[1];
 
@@ -498,7 +506,7 @@
         int initResult = native_setup(new WeakReference<AudioEffect>(this),
                 type.toString(), uuid.toString(), priority, audioSession,
                 deviceType, deviceAddress,
-                id, desc, ActivityThread.currentOpPackageName());
+                id, desc, ActivityThread.currentOpPackageName(), probe);
         if (initResult != SUCCESS && initResult != ALREADY_EXISTS) {
             Log.e(TAG, "Error code " + initResult
                     + " when initializing AudioEffect.");
@@ -517,8 +525,33 @@
         }
         mId = id[0];
         mDescriptor = desc[0];
-        synchronized (mStateLock) {
-            mState = STATE_INITIALIZED;
+        if (!probe) {
+            synchronized (mStateLock) {
+                mState = STATE_INITIALIZED;
+            }
+        }
+    }
+
+    /**
+     * Checks if an AudioEffect identified by the supplied uuid can be attached
+     * to an audio device described by the supplied AudioDeviceAttributes.
+     * @param uuid unique identifier of a particular effect implementation.
+     * @param device the device the effect would be attached to.
+     * @return true if possible, false otherwise.
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.MODIFY_DEFAULT_AUDIO_EFFECTS)
+    public static boolean isEffectSupportedForDevice(
+            @NonNull UUID uuid, @NonNull AudioDeviceAttributes device) {
+        try {
+            AudioEffect fx = new AudioEffect(
+                    EFFECT_TYPE_NULL, Objects.requireNonNull(uuid),
+                    0, -2, Objects.requireNonNull(device), true);
+            fx.release();
+            return true;
+        } catch (Exception e) {
+            return false;
         }
     }
 
@@ -1340,7 +1373,7 @@
     private native final int native_setup(Object audioeffect_this, String type,
             String uuid, int priority, int audioSession,
             int deviceType, String deviceAddress, int[] id, Object[] desc,
-            String opPackageName);
+            String opPackageName, boolean probe);
 
     private native final void native_finalize();
 
diff --git a/media/java/android/media/audiopolicy/AudioProductStrategy.java b/media/java/android/media/audiopolicy/AudioProductStrategy.java
index f9dbc50..090f78e 100644
--- a/media/java/android/media/audiopolicy/AudioProductStrategy.java
+++ b/media/java/android/media/audiopolicy/AudioProductStrategy.java
@@ -374,8 +374,8 @@
         if (refAttr.equals(sDefaultAttributes)) {
             return false;
         }
-        return ((refAttr.getUsage() == AudioAttributes.USAGE_UNKNOWN)
-                || (attr.getUsage() == refAttr.getUsage()))
+        return ((refAttr.getSystemUsage() == AudioAttributes.USAGE_UNKNOWN)
+                || (attr.getSystemUsage() == refAttr.getSystemUsage()))
             && ((refAttr.getContentType() == AudioAttributes.CONTENT_TYPE_UNKNOWN)
                 || (attr.getContentType() == refAttr.getContentType()))
             && ((refAttr.getAllFlags() == 0)
diff --git a/media/java/android/media/session/ISessionManager.aidl b/media/java/android/media/session/ISessionManager.aidl
index 6c1b2a6..5fd8f73 100644
--- a/media/java/android/media/session/ISessionManager.aidl
+++ b/media/java/android/media/session/ISessionManager.aidl
@@ -75,4 +75,6 @@
     boolean isTrusted(String controllerPackageName, int controllerPid, int controllerUid);
     void setCustomMediaKeyDispatcherForTesting(String name);
     void setCustomSessionPolicyProviderForTesting(String name);
+    int getSessionPolicies(in MediaSession.Token token);
+    void setSessionPolicies(in MediaSession.Token token, int policies);
 }
diff --git a/media/java/android/media/session/MediaSessionManager.java b/media/java/android/media/session/MediaSessionManager.java
index 4d01301..2fd721e 100644
--- a/media/java/android/media/session/MediaSessionManager.java
+++ b/media/java/android/media/session/MediaSessionManager.java
@@ -913,6 +913,34 @@
     }
 
     /**
+     * Get session policies of the specified {@link MediaSession.Token}.
+     *
+     * @hide
+     */
+    @Nullable
+    public int getSessionPolicies(@NonNull MediaSession.Token token) {
+        try {
+            return mService.getSessionPolicies(token);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Failed to get session policies", e);
+        }
+        return 0;
+    }
+
+    /**
+     * Set new session policies to the specified {@link MediaSession.Token}.
+     *
+     * @hide
+     */
+    public void setSessionPolicies(@NonNull MediaSession.Token token, @Nullable int policies) {
+        try {
+            mService.setSessionPolicies(token, policies);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Failed to set session policies", e);
+        }
+    }
+
+    /**
      * Listens for changes to the list of active sessions. This can be added
      * using {@link #addOnActiveSessionsChangedListener}.
      */
diff --git a/media/java/android/media/soundtrigger/SoundTriggerManager.java b/media/java/android/media/soundtrigger/SoundTriggerManager.java
index 6a8483c..7d51b10 100644
--- a/media/java/android/media/soundtrigger/SoundTriggerManager.java
+++ b/media/java/android/media/soundtrigger/SoundTriggerManager.java
@@ -211,7 +211,7 @@
          */
         @NonNull
         public UUID getModelUuid() {
-            return mGenericSoundModel.uuid;
+            return mGenericSoundModel.getUuid();
         }
 
         /**
@@ -221,7 +221,7 @@
          */
         @NonNull
         public UUID getVendorUuid() {
-            return mGenericSoundModel.vendorUuid;
+            return mGenericSoundModel.getVendorUuid();
         }
 
         /**
@@ -230,7 +230,7 @@
          * @return Version associated with the model
          */
         public int getVersion() {
-            return mGenericSoundModel.version;
+            return mGenericSoundModel.getVersion();
         }
 
         /**
@@ -240,7 +240,7 @@
          */
         @Nullable
         public byte[] getModelData() {
-            return mGenericSoundModel.data;
+            return mGenericSoundModel.getData();
         }
 
         /**
@@ -307,7 +307,7 @@
         }
 
         try {
-            switch (soundModel.type) {
+            switch (soundModel.getType()) {
                 case SoundModel.TYPE_GENERIC_SOUND:
                     return mSoundTriggerService.loadGenericSoundModel(
                             (GenericSoundModel) soundModel);
diff --git a/media/java/android/media/tv/tuner/FrontendSettings.java b/media/java/android/media/tv/tuner/FrontendSettings.java
deleted file mode 100644
index 7f9b982..0000000
--- a/media/java/android/media/tv/tuner/FrontendSettings.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.media.tv.tuner;
-
-/**
- * Frontend settings for tune and scan operations.
- * TODO: remove
- * @hide
- */
-public abstract class FrontendSettings {
-}
diff --git a/media/java/android/media/tv/tuner/Lnb.java b/media/java/android/media/tv/tuner/Lnb.java
index 525ee4d..9ce895e 100644
--- a/media/java/android/media/tv/tuner/Lnb.java
+++ b/media/java/android/media/tv/tuner/Lnb.java
@@ -19,7 +19,6 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
 import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
@@ -173,10 +172,8 @@
      * @param voltage the power voltage constant the Lnb to use.
      * @return result status of the operation.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Result
     public int setVoltage(@Voltage int voltage) {
-        TunerUtils.checkTunerPermission(mContext);
         return nativeSetVoltage(voltage);
     }
 
@@ -186,10 +183,8 @@
      * @param tone the tone mode the Lnb to use.
      * @return result status of the operation.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Result
     public int setTone(@Tone int tone) {
-        TunerUtils.checkTunerPermission(mContext);
         return nativeSetTone(tone);
     }
 
@@ -199,10 +194,8 @@
      * @param position the position the Lnb to use.
      * @return result status of the operation.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Result
     public int setSatellitePosition(@Position int position) {
-        TunerUtils.checkTunerPermission(mContext);
         return nativeSetSatellitePosition(position);
     }
 
@@ -216,19 +209,15 @@
      *
      * @return result status of the operation.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Result
     public int sendDiseqcMessage(@NonNull byte[] message) {
-        TunerUtils.checkTunerPermission(mContext);
         return nativeSendDiseqcMessage(message);
     }
 
     /**
      * Releases the LNB instance.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     public void close() {
-        TunerUtils.checkTunerPermission(mContext);
         nativeClose();
     }
 }
diff --git a/media/java/android/media/tv/tuner/Tuner.java b/media/java/android/media/tv/tuner/Tuner.java
index d24d752..894882f 100644
--- a/media/java/android/media/tv/tuner/Tuner.java
+++ b/media/java/android/media/tv/tuner/Tuner.java
@@ -43,6 +43,8 @@
 import android.media.tv.tuner.frontend.OnTuneEventListener;
 import android.media.tv.tuner.frontend.ScanCallback;
 import android.media.tv.tunerresourcemanager.ResourceClientProfile;
+import android.media.tv.tunerresourcemanager.TunerDemuxRequest;
+import android.media.tv.tunerresourcemanager.TunerDescramblerRequest;
 import android.media.tv.tunerresourcemanager.TunerFrontendRequest;
 import android.media.tv.tunerresourcemanager.TunerLnbRequest;
 import android.media.tv.tunerresourcemanager.TunerResourceManager;
@@ -218,6 +220,9 @@
     @Nullable
     private Executor mOnResourceLostListenerExecutor;
 
+    private Integer mDemuxHandle;
+    private Integer mDescramblerHandle;
+    private Descrambler mDescrambler;
 
     private final TunerResourceManager.ResourcesReclaimListener mResourceListener =
             new TunerResourceManager.ResourcesReclaimListener() {
@@ -241,7 +246,11 @@
         mContext = context;
         mTunerResourceManager = (TunerResourceManager)
                 context.getSystemService(Context.TV_TUNER_RESOURCE_MGR_SERVICE);
+        if (mHandler == null) {
+            mHandler = createEventHandler();
+        }
 
+        mHandler = createEventHandler();
         int[] clientId = new int[1];
         ResourceClientProfile profile = new ResourceClientProfile(tvInputSessionId, useCase);
         mTunerResourceManager.registerClientProfile(
@@ -255,7 +264,6 @@
      * @param executor the executor on which the listener should be invoked.
      * @param listener the listener that will be run.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     public void setResourceLostListener(@NonNull @CallbackExecutor Executor executor,
             @NonNull OnResourceLostListener listener) {
         Objects.requireNonNull(executor, "OnResourceLostListener must not be null");
@@ -267,7 +275,6 @@
     /**
      * Removes the listener for resource lost.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     public void clearResourceLostListener() {
         mOnResourceLostListener = null;
         mOnResourceLostListenerExecutor = null;
@@ -278,9 +285,10 @@
      *
      * @param tuner the Tuner instance to share frontend resource with.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     public void shareFrontendFromTuner(@NonNull Tuner tuner) {
-        // TODO: implementation.
+        mTunerResourceManager.shareFrontend(mClientId, tuner.mClientId);
+        mFrontendHandle = tuner.mFrontendHandle;
+        mFrontend = nativeOpenFrontendByHandle(mFrontendHandle);
     }
 
     /**
@@ -294,9 +302,8 @@
      * @param priority the new priority.
      * @param niceValue the nice value.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     public void updateResourcePriority(int priority, int niceValue) {
-        // TODO: implementation.
+        mTunerResourceManager.updateClientPriority(mClientId, priority, niceValue);
     }
 
     private long mNativeContext; // used by native jMediaTuner
@@ -304,10 +311,17 @@
     /**
      * Releases the Tuner instance.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Override
     public void close() {
-        // TODO: implementation.
+        if (mFrontendHandle != null) {
+            mTunerResourceManager.releaseFrontend(mFrontendHandle);
+            mFrontendHandle = null;
+        }
+        if (mLnb != null) {
+            mTunerResourceManager.releaseLnb(mLnbHandle);
+            mLnb = null;
+        }
+        nativeClose();
     }
 
     /**
@@ -348,13 +362,16 @@
     private native Lnb nativeOpenLnbByHandle(int handle);
     private native Lnb nativeOpenLnbByName(String name);
 
-    private native Descrambler nativeOpenDescrambler();
+    private native Descrambler nativeOpenDescramblerByHandle(int handle);
+    private native Descrambler nativeOpenDemuxByhandle(int handle);
 
     private native DvrRecorder nativeOpenDvrRecorder(long bufferSize);
     private native DvrPlayback nativeOpenDvrPlayback(long bufferSize);
 
     private static native DemuxCapabilities nativeGetDemuxCapabilities();
 
+    private native int nativeClose();
+
 
     /**
      * Listener for resource lost.
@@ -429,10 +446,8 @@
      * @throws SecurityException if the caller does not have appropriate permissions.
      * @see #tune(FrontendSettings)
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     public void setOnTuneEventListener(@NonNull @CallbackExecutor Executor executor,
             @NonNull OnTuneEventListener eventListener) {
-        TunerUtils.checkTunerPermission(mContext);
         mOnTuneEventListener = eventListener;
         mOnTunerEventExecutor = executor;
     }
@@ -443,9 +458,7 @@
      * @throws SecurityException if the caller does not have appropriate permissions.
      * @see #setOnTuneEventListener(Executor, OnTuneEventListener)
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     public void clearOnTuneEventListener() {
-        TunerUtils.checkTunerPermission(mContext);
         mOnTuneEventListener = null;
         mOnTunerEventExecutor = null;
 
@@ -474,7 +487,6 @@
      * @throws SecurityException if the caller does not have appropriate permissions.
      * @see #setOnTuneEventListener(Executor, OnTuneEventListener)
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Result
     public int tune(@NonNull FrontendSettings settings) {
         mFrontendType = settings.getType();
@@ -491,10 +503,8 @@
      *
      * @return result status of the operation.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Result
     public int cancelTuning() {
-        TunerUtils.checkTunerPermission(mContext);
         return nativeStopTune();
     }
 
@@ -509,7 +519,6 @@
      * @throws IllegalStateException if {@code scan} is called again before
      *                               {@link #cancelScanning()} is called.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Result
     public int scan(@NonNull FrontendSettings settings, @ScanType int scanType,
             @NonNull @CallbackExecutor Executor executor, @NonNull ScanCallback scanCallback) {
@@ -537,10 +546,8 @@
      *
      * @throws SecurityException if the caller does not have appropriate permissions.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Result
     public int cancelScanning() {
-        TunerUtils.checkTunerPermission(mContext);
         int retVal = nativeStopScan();
         mScanCallback = null;
         mScanCallbackExecutor = null;
@@ -548,11 +555,12 @@
     }
 
     private boolean requestFrontend() {
-        int[] feId = new int[1];
+        int[] feHandle = new int[1];
         TunerFrontendRequest request = new TunerFrontendRequest(mClientId, mFrontendType);
-        boolean granted = mTunerResourceManager.requestFrontend(request, feId);
+        boolean granted = mTunerResourceManager.requestFrontend(request, feHandle);
         if (granted) {
-            mFrontendHandle = feId[0];
+            mFrontendHandle = feHandle[0];
+            mFrontend = nativeOpenFrontendByHandle(mFrontendHandle);
         }
         return granted;
     }
@@ -579,10 +587,8 @@
      *
      * @return result status of the operation.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Result
     public int setLnaEnabled(boolean enable) {
-        TunerUtils.checkTunerPermission(mContext);
         return nativeSetLna(enable);
     }
 
@@ -605,9 +611,8 @@
      * @param filter the filter instance for the hardware sync ID.
      * @return the id of hardware A/V sync.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     public int getAvSyncHwId(@NonNull Filter filter) {
-        TunerUtils.checkTunerPermission(mContext);
+        checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_DEMUX);
         Integer id = nativeGetAvSyncHwId(filter);
         return id == null ? INVALID_AV_SYNC_ID : id;
     }
@@ -621,9 +626,8 @@
      * @param avSyncHwId the hardware id of A/V sync.
      * @return the current timestamp of hardware A/V sync.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     public long getAvSyncTime(int avSyncHwId) {
-        TunerUtils.checkTunerPermission(mContext);
+        checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_DEMUX);
         Long time = nativeGetAvSyncTime(avSyncHwId);
         return time == null ? INVALID_TIMESTAMP : time;
     }
@@ -637,10 +641,9 @@
      * @param ciCamId specify CI-CAM Id to connect.
      * @return result status of the operation.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Result
     public int connectCiCam(int ciCamId) {
-        TunerUtils.checkTunerPermission(mContext);
+        checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_DEMUX);
         return nativeConnectCiCam(ciCamId);
     }
 
@@ -651,10 +654,9 @@
      *
      * @return result status of the operation.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Result
     public int disconnectCiCam() {
-        TunerUtils.checkTunerPermission(mContext);
+        checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_DEMUX);
         return nativeDisconnectCiCam();
     }
 
@@ -663,10 +665,9 @@
      *
      * @return The frontend information. {@code null} if the operation failed.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Nullable
     public FrontendInfo getFrontendInfo() {
-        TunerUtils.checkTunerPermission(mContext);
+        checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_FRONTEND);
         if (mFrontend == null) {
             throw new IllegalStateException("frontend is not initialized");
         }
@@ -679,14 +680,11 @@
     /**
      * Gets Demux capabilities.
      *
-     * @param context the context of the caller.
      * @return A {@link DemuxCapabilities} instance that represents the demux capabilities.
      *         {@code null} if the operation failed.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Nullable
-    public static DemuxCapabilities getDemuxCapabilities(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public DemuxCapabilities getDemuxCapabilities() {
         return nativeGetDemuxCapabilities();
     }
 
@@ -716,67 +714,70 @@
 
     private void onFrequenciesReport(int[] frequency) {
         if (mScanCallbackExecutor != null && mScanCallback != null) {
-            mScanCallbackExecutor.execute(() -> mScanCallback.onFrequenciesReport(frequency));
+            mScanCallbackExecutor.execute(() -> mScanCallback.onFrequenciesReported(frequency));
         }
     }
 
     private void onSymbolRates(int[] rate) {
         if (mScanCallbackExecutor != null && mScanCallback != null) {
-            mScanCallbackExecutor.execute(() -> mScanCallback.onSymbolRates(rate));
+            mScanCallbackExecutor.execute(() -> mScanCallback.onSymbolRatesReported(rate));
         }
     }
 
     private void onHierarchy(int hierarchy) {
         if (mScanCallbackExecutor != null && mScanCallback != null) {
-            mScanCallbackExecutor.execute(() -> mScanCallback.onHierarchy(hierarchy));
+            mScanCallbackExecutor.execute(() -> mScanCallback.onHierarchyReported(hierarchy));
         }
     }
 
     private void onSignalType(int signalType) {
         if (mScanCallbackExecutor != null && mScanCallback != null) {
-            mScanCallbackExecutor.execute(() -> mScanCallback.onSignalType(signalType));
+            mScanCallbackExecutor.execute(() -> mScanCallback.onSignalTypeReported(signalType));
         }
     }
 
     private void onPlpIds(int[] plpIds) {
         if (mScanCallbackExecutor != null && mScanCallback != null) {
-            mScanCallbackExecutor.execute(() -> mScanCallback.onPlpIds(plpIds));
+            mScanCallbackExecutor.execute(() -> mScanCallback.onPlpIdsReported(plpIds));
         }
     }
 
     private void onGroupIds(int[] groupIds) {
         if (mScanCallbackExecutor != null && mScanCallback != null) {
-            mScanCallbackExecutor.execute(() -> mScanCallback.onGroupIds(groupIds));
+            mScanCallbackExecutor.execute(() -> mScanCallback.onGroupIdsReported(groupIds));
         }
     }
 
     private void onInputStreamIds(int[] inputStreamIds) {
         if (mScanCallbackExecutor != null && mScanCallback != null) {
-            mScanCallbackExecutor.execute(() -> mScanCallback.onInputStreamIds(inputStreamIds));
+            mScanCallbackExecutor.execute(
+                    () -> mScanCallback.onInputStreamIdsReported(inputStreamIds));
         }
     }
 
     private void onDvbsStandard(int dvbsStandandard) {
         if (mScanCallbackExecutor != null && mScanCallback != null) {
-            mScanCallbackExecutor.execute(() -> mScanCallback.onDvbsStandard(dvbsStandandard));
+            mScanCallbackExecutor.execute(
+                    () -> mScanCallback.onDvbsStandardReported(dvbsStandandard));
         }
     }
 
     private void onDvbtStandard(int dvbtStandard) {
         if (mScanCallbackExecutor != null && mScanCallback != null) {
-            mScanCallbackExecutor.execute(() -> mScanCallback.onDvbtStandard(dvbtStandard));
+            mScanCallbackExecutor.execute(() -> mScanCallback.onDvbtStandardReported(dvbtStandard));
         }
     }
 
     private void onAnalogSifStandard(int sif) {
         if (mScanCallbackExecutor != null && mScanCallback != null) {
-            mScanCallbackExecutor.execute(() -> mScanCallback.onAnalogSifStandard(sif));
+            mScanCallbackExecutor.execute(() -> mScanCallback.onAnalogSifStandardReported(sif));
         }
     }
 
     private void onAtsc3PlpInfos(Atsc3PlpInfo[] atsc3PlpInfos) {
         if (mScanCallbackExecutor != null && mScanCallback != null) {
-            mScanCallbackExecutor.execute(() -> mScanCallback.onAtsc3PlpInfos(atsc3PlpInfos));
+            mScanCallbackExecutor.execute(
+                    () -> mScanCallback.onAtsc3PlpInfosReported(atsc3PlpInfos));
         }
     }
 
@@ -792,12 +793,11 @@
      * @param cb the callback to receive notifications from filter.
      * @return the opened filter. {@code null} if the operation failed.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Nullable
     public Filter openFilter(@Type int mainType, @Subtype int subType,
             @BytesLong long bufferSize, @CallbackExecutor @Nullable Executor executor,
             @Nullable FilterCallback cb) {
-        TunerUtils.checkTunerPermission(mContext);
+        checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_DEMUX);
         Filter filter = nativeOpenFilter(
                 mainType, TunerUtils.getFilterSubtype(mainType, subType), bufferSize);
         if (filter != null) {
@@ -821,14 +821,12 @@
      * @param cb the callback to receive notifications from LNB.
      * @return the opened LNB object. {@code null} if the operation failed.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Nullable
     public Lnb openLnb(@CallbackExecutor @NonNull Executor executor, @NonNull LnbCallback cb) {
         Objects.requireNonNull(executor, "executor must not be null");
         Objects.requireNonNull(cb, "LnbCallback must not be null");
         checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_LNB);
-        // TODO: update JNI code for LNB handle,
-        return nativeOpenLnbByHandle(mLnbHandle);
+        return mLnb;
     }
 
     /**
@@ -840,23 +838,22 @@
      * @param cb the callback to receive notifications from LNB.
      * @return the opened LNB object. {@code null} if the operation failed.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Nullable
     public Lnb openLnbByName(@NonNull String name, @CallbackExecutor @NonNull Executor executor,
             @NonNull LnbCallback cb) {
         Objects.requireNonNull(name, "LNB name must not be null");
         Objects.requireNonNull(executor, "executor must not be null");
         Objects.requireNonNull(cb, "LnbCallback must not be null");
-        TunerUtils.checkTunerPermission(mContext);
         return nativeOpenLnbByName(name);
     }
 
     private boolean requestLnb() {
-        int[] lnbId = new int[1];
+        int[] lnbHandle = new int[1];
         TunerLnbRequest request = new TunerLnbRequest(mClientId);
-        boolean granted = mTunerResourceManager.requestLnb(request, lnbId);
+        boolean granted = mTunerResourceManager.requestLnb(request, lnbHandle);
         if (granted) {
-            mLnbHandle = lnbId[0];
+            mLnbHandle = lnbHandle[0];
+            mLnb = nativeOpenLnbByHandle(mLnbHandle);
         }
         return granted;
     }
@@ -868,6 +865,7 @@
      */
     @Nullable
     public TimeFilter openTimeFilter() {
+        checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_DEMUX);
         return nativeOpenTimeFilter();
     }
 
@@ -885,8 +883,8 @@
     @RequiresPermission(android.Manifest.permission.ACCESS_TV_DESCRAMBLER)
     @Nullable
     public Descrambler openDescrambler() {
-        TunerUtils.checkDescramblerPermission(mContext);
-        return nativeOpenDescrambler();
+        checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_DESCRAMBLER);
+        return mDescrambler;
     }
 
     /**
@@ -899,7 +897,6 @@
      * @param l the listener to receive notifications from DVR recorder.
      * @return the opened DVR recorder object. {@code null} if the operation failed.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Nullable
     public DvrRecorder openDvrRecorder(
             @BytesLong long bufferSize,
@@ -907,7 +904,7 @@
             @NonNull OnRecordStatusChangedListener l) {
         Objects.requireNonNull(executor, "executor must not be null");
         Objects.requireNonNull(l, "OnRecordStatusChangedListener must not be null");
-        TunerUtils.checkTunerPermission(mContext);
+        checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_DEMUX);
         DvrRecorder dvr = nativeOpenDvrRecorder(bufferSize);
         return dvr;
     }
@@ -922,7 +919,6 @@
      * @param l the listener to receive notifications from DVR recorder.
      * @return the opened DVR playback object. {@code null} if the operation failed.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @Nullable
     public DvrPlayback openDvrPlayback(
             @BytesLong long bufferSize,
@@ -930,13 +926,34 @@
             @NonNull OnPlaybackStatusChangedListener l) {
         Objects.requireNonNull(executor, "executor must not be null");
         Objects.requireNonNull(l, "OnPlaybackStatusChangedListener must not be null");
-        TunerUtils.checkTunerPermission(mContext);
+        checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_DEMUX);
         DvrPlayback dvr = nativeOpenDvrPlayback(bufferSize);
         return dvr;
     }
 
+    private boolean requestDemux() {
+        int[] demuxHandle = new int[1];
+        TunerDemuxRequest request = new TunerDemuxRequest(mClientId);
+        boolean granted = mTunerResourceManager.requestDemux(request, demuxHandle);
+        if (granted) {
+            mDemuxHandle = demuxHandle[0];
+            nativeOpenDemuxByhandle(mDemuxHandle);
+        }
+        return granted;
+    }
+
+    private boolean requestDescrambler() {
+        int[] descramblerHandle = new int[1];
+        TunerDescramblerRequest request = new TunerDescramblerRequest(mClientId);
+        boolean granted = mTunerResourceManager.requestDescrambler(request, descramblerHandle);
+        if (granted) {
+            mDescramblerHandle = descramblerHandle[0];
+            nativeOpenDescramblerByHandle(mDescramblerHandle);
+        }
+        return granted;
+    }
+
     private boolean checkResource(int resourceType)  {
-        // TODO: demux and descrambler
         switch (resourceType) {
             case TunerResourceManager.TUNER_RESOURCE_TYPE_FRONTEND: {
                 if (mFrontendHandle == null && !requestFrontend()) {
@@ -950,6 +967,18 @@
                 }
                 break;
             }
+            case TunerResourceManager.TUNER_RESOURCE_TYPE_DEMUX: {
+                if (mDemuxHandle == null && !requestDemux()) {
+                    return false;
+                }
+                break;
+            }
+            case TunerResourceManager.TUNER_RESOURCE_TYPE_DESCRAMBLER: {
+                if (mDescramblerHandle == null && !requestDescrambler()) {
+                    return false;
+                }
+                break;
+            }
         }
         return true;
     }
diff --git a/media/java/android/media/tv/tuner/TunerUtils.java b/media/java/android/media/tv/tuner/TunerUtils.java
index c3be12a..547a492 100644
--- a/media/java/android/media/tv/tuner/TunerUtils.java
+++ b/media/java/android/media/tv/tuner/TunerUtils.java
@@ -17,8 +17,6 @@
 package android.media.tv.tuner;
 
 import android.annotation.Nullable;
-import android.content.Context;
-import android.content.pm.PackageManager;
 import android.hardware.tv.tuner.V1_0.Constants;
 import android.media.tv.tuner.filter.Filter;
 
@@ -28,43 +26,6 @@
  * @hide
  */
 public final class TunerUtils {
-    private static final String TUNER_PERMISSION = android.Manifest.permission.ACCESS_TV_TUNER;
-    private static final String DESCRAMBLER_PERMISSION =
-            android.Manifest.permission.ACCESS_TV_DESCRAMBLER;
-
-    /**
-     * Checks whether the caller has permission to access tuner.
-     *
-     * @param context context of the caller.
-     * @throws SecurityException if the caller doesn't have the permission.
-     */
-    public static void checkTunerPermission(Context context) {
-        checkPermission(context, TUNER_PERMISSION);
-    }
-
-    /**
-     * Checks whether the caller has permission to access the descrambler.
-     *
-     * @param context context of the caller.
-     * @throws SecurityException if the caller doesn't have the permission.
-     */
-    public static void checkDescramblerPermission(Context context) {
-        checkPermission(context, DESCRAMBLER_PERMISSION);
-    }
-
-    /**
-     * Checks whether the caller has the given permission.
-     *
-     * @param context context of the caller.
-     * @param permission the given permission.
-     * @throws SecurityException if the caller doesn't have the permission.
-     */
-    public static void checkPermission(Context context, String permission) {
-        if (context.checkCallingOrSelfPermission(permission)
-                != PackageManager.PERMISSION_GRANTED) {
-            throw new SecurityException("Caller must have " + permission + " permission.");
-        }
-    }
 
     /**
      * Gets the corresponding filter subtype constant defined in tuner HAL.
diff --git a/media/java/android/media/tv/tuner/dvr/DvrSettings.java b/media/java/android/media/tv/tuner/dvr/DvrSettings.java
index 362b108..3df721c 100644
--- a/media/java/android/media/tv/tuner/dvr/DvrSettings.java
+++ b/media/java/android/media/tv/tuner/dvr/DvrSettings.java
@@ -19,11 +19,8 @@
 import android.annotation.BytesLong;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
-import android.media.tv.tuner.TunerUtils;
 import android.media.tv.tuner.filter.Filter;
 
 import java.lang.annotation.Retention;
@@ -123,13 +120,9 @@
 
     /**
      * Creates a builder for {@link DvrSettings}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/filter/AlpFilterConfiguration.java b/media/java/android/media/tv/tuner/filter/AlpFilterConfiguration.java
index e40b080..29bc2c9 100644
--- a/media/java/android/media/tv/tuner/filter/AlpFilterConfiguration.java
+++ b/media/java/android/media/tv/tuner/filter/AlpFilterConfiguration.java
@@ -19,11 +19,8 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
-import android.media.tv.tuner.TunerUtils;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -111,13 +108,9 @@
 
     /**
      * Creates a builder for {@link AlpFilterConfiguration}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/filter/AvSettings.java b/media/java/android/media/tv/tuner/filter/AvSettings.java
index bf11893..e9b3660 100644
--- a/media/java/android/media/tv/tuner/filter/AvSettings.java
+++ b/media/java/android/media/tv/tuner/filter/AvSettings.java
@@ -17,9 +17,7 @@
 package android.media.tv.tuner.filter;
 
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.media.tv.tuner.TunerUtils;
 
 /**
@@ -50,27 +48,24 @@
     /**
      * Creates a builder for {@link AvSettings}.
      *
-     * @param context the context of the caller.
      * @param mainType the filter main type.
      * @param isAudio {@code true} if it's audio settings; {@code false} if it's video settings.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(
-            @NonNull Context context, @Filter.Type int mainType, boolean isAudio) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder(@Filter.Type int mainType, boolean isAudio) {
         return new Builder(mainType, isAudio);
     }
 
     /**
      * Builder for {@link AvSettings}.
      */
-    public static class Builder extends Settings.Builder<Builder> {
+    public static class Builder {
+        private final int mMainType;
         private final boolean mIsAudio;
         private boolean mIsPassthrough;
 
         private Builder(int mainType, boolean isAudio) {
-            super(mainType);
+            mMainType = mainType;
             mIsAudio = isAudio;
         }
 
@@ -90,10 +85,5 @@
         public AvSettings build() {
             return new AvSettings(mMainType, mIsAudio, mIsPassthrough);
         }
-
-        @Override
-        Builder self() {
-            return this;
-        }
     }
 }
diff --git a/media/java/android/media/tv/tuner/filter/DownloadSettings.java b/media/java/android/media/tv/tuner/filter/DownloadSettings.java
index 915ad79..7ba923e 100644
--- a/media/java/android/media/tv/tuner/filter/DownloadSettings.java
+++ b/media/java/android/media/tv/tuner/filter/DownloadSettings.java
@@ -17,9 +17,7 @@
 package android.media.tv.tuner.filter;
 
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.media.tv.tuner.TunerUtils;
 
 /**
@@ -46,24 +44,22 @@
     /**
      * Creates a builder for {@link DownloadSettings}.
      *
-     * @param context the context of the caller.
      * @param mainType the filter main type.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context, @Filter.Type int mainType) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder(@Filter.Type int mainType) {
         return new Builder(mainType);
     }
 
     /**
      * Builder for {@link DownloadSettings}.
      */
-    public static class Builder extends Settings.Builder<Builder> {
+    public static class Builder {
+        private final int mMainType;
         private int mDownloadId;
 
         private Builder(int mainType) {
-            super(mainType);
+            mMainType = mainType;
         }
 
         /**
@@ -82,10 +78,5 @@
         public DownloadSettings build() {
             return new DownloadSettings(mMainType, mDownloadId);
         }
-
-        @Override
-        Builder self() {
-            return this;
-        }
     }
 }
diff --git a/media/java/android/media/tv/tuner/filter/Filter.java b/media/java/android/media/tv/tuner/filter/Filter.java
index 8dc0622..d654b45 100644
--- a/media/java/android/media/tv/tuner/filter/Filter.java
+++ b/media/java/android/media/tv/tuner/filter/Filter.java
@@ -22,6 +22,7 @@
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
 import android.hardware.tv.tuner.V1_0.Constants;
+import android.media.tv.tuner.Tuner;
 import android.media.tv.tuner.Tuner.Result;
 import android.media.tv.tuner.TunerUtils;
 
@@ -179,13 +180,14 @@
      */
     public static final int STATUS_OVERFLOW = Constants.DemuxFilterStatus.OVERFLOW;
 
-
     private long mNativeContext;
     private FilterCallback mCallback;
     private Executor mExecutor;
     private final int mId;
     private int mMainType;
     private int mSubtype;
+    private Filter mSource;
+    private boolean mStarted;
 
     private native int nativeConfigureFilter(
             int type, int subType, FilterConfiguration settings);
@@ -203,6 +205,9 @@
     }
 
     private void onFilterStatus(int status) {
+        if (mCallback != null && mExecutor != null) {
+            mExecutor.execute(() -> mCallback.onFilterStatusChanged(this, status));
+        }
     }
 
     private void onFilterEvent(FilterEvent[] events) {
@@ -239,13 +244,12 @@
      */
     @Result
     public int configure(@NonNull FilterConfiguration config) {
-        // TODO: validate main type, subtype, config, settings
-        int subType;
         Settings s = config.getSettings();
-        if (s != null) {
-            subType = s.getType();
-        } else {
-            subType = TunerUtils.getFilterSubtype(mMainType, mSubtype);
+        int subType = (s == null) ? mSubtype : s.getType();
+        if (mMainType != config.getType() || mSubtype != subType) {
+            throw new IllegalArgumentException("Invalid filter config. filter main type="
+                    + mMainType + ", filter subtype=" + mSubtype + ". config main type="
+                    + config.getType() + ", config subtype=" + subType);
         }
         return nativeConfigureFilter(config.getType(), subType, config);
     }
@@ -268,10 +272,18 @@
      * @param source the filter instance which provides data input. Switch to
      * use demux as data source if the filter instance is NULL.
      * @return result status of the operation.
+     * @throws IllegalStateException if the data source has been set.
      */
     @Result
     public int setDataSource(@Nullable Filter source) {
-        return nativeSetDataSource(source);
+        if (mSource != null) {
+            throw new IllegalStateException("Data source is existing");
+        }
+        int res = nativeSetDataSource(source);
+        if (res == Tuner.RESULT_SUCCESS) {
+            mSource = source;
+        }
+        return res;
     }
 
     /**
@@ -330,6 +342,9 @@
      */
     @Override
     public void close() {
-        nativeClose();
+        int res = nativeClose();
+        if (res != Tuner.RESULT_SUCCESS) {
+            TunerUtils.throwExceptionForResult(res, "Failed to close filter.");
+        }
     }
 }
diff --git a/media/java/android/media/tv/tuner/filter/IpFilterConfiguration.java b/media/java/android/media/tv/tuner/filter/IpFilterConfiguration.java
index de75a4f..561e4da 100644
--- a/media/java/android/media/tv/tuner/filter/IpFilterConfiguration.java
+++ b/media/java/android/media/tv/tuner/filter/IpFilterConfiguration.java
@@ -18,11 +18,8 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.RequiresPermission;
 import android.annotation.Size;
 import android.annotation.SystemApi;
-import android.content.Context;
-import android.media.tv.tuner.TunerUtils;
 
 /**
  * Filter configuration for a IP filter.
@@ -92,13 +89,9 @@
 
     /**
      * Creates a builder for {@link IpFilterConfiguration}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/filter/MediaEvent.java b/media/java/android/media/tv/tuner/filter/MediaEvent.java
index b6bd86b..247c1c4 100644
--- a/media/java/android/media/tv/tuner/filter/MediaEvent.java
+++ b/media/java/android/media/tv/tuner/filter/MediaEvent.java
@@ -27,7 +27,9 @@
  * @hide
  */
 @SystemApi
-public class MediaEvent extends FilterEvent{
+public class MediaEvent extends FilterEvent {
+    private native int nativeGetAudioHandle();
+
     private final int mStreamId;
     private final boolean mIsPtsPresent;
     private final long mPts;
@@ -134,7 +136,7 @@
      * @see android.media.AudioTrack#ENCAPSULATION_MODE_HANDLE
      */
     public long getAudioHandle() {
-        // TODO: implement
+        nativeGetAudioHandle();
         return mDataId;
     }
 
diff --git a/media/java/android/media/tv/tuner/filter/MmtpFilterConfiguration.java b/media/java/android/media/tv/tuner/filter/MmtpFilterConfiguration.java
index f19edc9..3a45a18 100644
--- a/media/java/android/media/tv/tuner/filter/MmtpFilterConfiguration.java
+++ b/media/java/android/media/tv/tuner/filter/MmtpFilterConfiguration.java
@@ -18,11 +18,8 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.media.tv.tuner.Tuner;
-import android.media.tv.tuner.TunerUtils;
 
 /**
  * Filter configuration for a MMTP filter.
@@ -54,13 +51,9 @@
 
     /**
      * Creates a builder for {@link IpFilterConfiguration}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/filter/PesSettings.java b/media/java/android/media/tv/tuner/filter/PesSettings.java
index 0f83597..2f551cc 100644
--- a/media/java/android/media/tv/tuner/filter/PesSettings.java
+++ b/media/java/android/media/tv/tuner/filter/PesSettings.java
@@ -17,9 +17,7 @@
 package android.media.tv.tuner.filter;
 
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.media.tv.tuner.TunerUtils;
 
 /**
@@ -59,12 +57,9 @@
      * Creates a builder for {@link PesSettings}.
      *
      * @param mainType the filter main type of the settings.
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context, @Filter.Type int mainType) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder(@Filter.Type int mainType) {
         return new Builder(mainType);
     }
 
diff --git a/media/java/android/media/tv/tuner/filter/RecordSettings.java b/media/java/android/media/tv/tuner/filter/RecordSettings.java
index 0c812ab..ec01e44 100644
--- a/media/java/android/media/tv/tuner/filter/RecordSettings.java
+++ b/media/java/android/media/tv/tuner/filter/RecordSettings.java
@@ -18,9 +18,7 @@
 
 import android.annotation.IntDef;
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
 import android.media.tv.tuner.TunerUtils;
 
@@ -270,26 +268,24 @@
     /**
      * Creates a builder for {@link RecordSettings}.
      *
-     * @param context the context of the caller.
      * @param mainType the filter main type.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context, @Filter.Type int mainType) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder(@Filter.Type int mainType) {
         return new Builder(mainType);
     }
 
     /**
      * Builder for {@link RecordSettings}.
      */
-    public static class Builder extends Settings.Builder<Builder> {
+    public static class Builder {
+        private final int mMainType;
         private int mTsIndexMask;
         private int mScIndexType;
         private int mScIndexMask;
 
         private Builder(int mainType) {
-            super(mainType);
+            mMainType = mainType;
         }
 
         /**
@@ -324,11 +320,6 @@
         public RecordSettings build() {
             return new RecordSettings(mMainType, mTsIndexMask, mScIndexType, mScIndexMask);
         }
-
-        @Override
-        Builder self() {
-            return this;
-        }
     }
 
 }
diff --git a/media/java/android/media/tv/tuner/filter/SectionSettings.java b/media/java/android/media/tv/tuner/filter/SectionSettings.java
index 9470138..58e22c9 100644
--- a/media/java/android/media/tv/tuner/filter/SectionSettings.java
+++ b/media/java/android/media/tv/tuner/filter/SectionSettings.java
@@ -64,14 +64,14 @@
      *
      * @param <T> The subclass to be built.
      */
-    public abstract static class Builder<T extends Builder<T>>
-            extends Settings.Builder<Builder<T>> {
+    public abstract static class Builder<T extends Builder<T>> {
+        final int mMainType;
         boolean mCrcEnabled;
         boolean mIsRepeat;
         boolean mIsRaw;
 
         Builder(int mainType) {
-            super(mainType);
+            mMainType = mainType;
         }
 
         /**
diff --git a/media/java/android/media/tv/tuner/filter/SectionSettingsWithSectionBits.java b/media/java/android/media/tv/tuner/filter/SectionSettingsWithSectionBits.java
index cb547ec..edfe85e 100644
--- a/media/java/android/media/tv/tuner/filter/SectionSettingsWithSectionBits.java
+++ b/media/java/android/media/tv/tuner/filter/SectionSettingsWithSectionBits.java
@@ -17,10 +17,7 @@
 package android.media.tv.tuner.filter;
 
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
-import android.media.tv.tuner.TunerUtils;
 
 /**
  * Bits Settings for Section Filters.
@@ -74,13 +71,10 @@
     /**
      * Creates a builder for {@link SectionSettingsWithSectionBits}.
      *
-     * @param context the context of the caller.
      * @param mainType the filter main type.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context, @Filter.Type int mainType) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder(@Filter.Type int mainType) {
         return new Builder(mainType);
     }
 
@@ -88,9 +82,9 @@
      * Builder for {@link SectionSettingsWithSectionBits}.
      */
     public static class Builder extends SectionSettings.Builder<Builder> {
-        private byte[] mFilter;
-        private byte[] mMask;
-        private byte[] mMode;
+        private byte[] mFilter = {};
+        private byte[] mMask = {};
+        private byte[] mMode = {};
 
         private Builder(int mainType) {
             super(mainType);
@@ -98,6 +92,8 @@
 
         /**
          * Sets filter bytes.
+         *
+         * <p>Default value is an empty byte array.
          */
         @NonNull
         public Builder setFilter(@NonNull byte[] filter) {
@@ -106,6 +102,8 @@
         }
         /**
          * Sets bit mask.
+         *
+         * <p>Default value is an empty byte array.
          */
         @NonNull
         public Builder setMask(@NonNull byte[] mask) {
@@ -114,6 +112,8 @@
         }
         /**
          * Sets mode.
+         *
+         * <p>Default value is an empty byte array.
          */
         @NonNull
         public Builder setMode(@NonNull byte[] mode) {
diff --git a/media/java/android/media/tv/tuner/filter/SectionSettingsWithTableInfo.java b/media/java/android/media/tv/tuner/filter/SectionSettingsWithTableInfo.java
index 09d1dae9..fc6451f 100644
--- a/media/java/android/media/tv/tuner/filter/SectionSettingsWithTableInfo.java
+++ b/media/java/android/media/tv/tuner/filter/SectionSettingsWithTableInfo.java
@@ -17,10 +17,7 @@
 package android.media.tv.tuner.filter;
 
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
-import android.media.tv.tuner.TunerUtils;
 
 /**
  * Table information for Section Filter.
@@ -55,13 +52,10 @@
     /**
      * Creates a builder for {@link SectionSettingsWithTableInfo}.
      *
-     * @param context the context of the caller.
      * @param mainType the filter main type.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context, @Filter.Type int mainType) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder(@Filter.Type int mainType) {
         return new Builder(mainType);
     }
 
diff --git a/media/java/android/media/tv/tuner/filter/Settings.java b/media/java/android/media/tv/tuner/filter/Settings.java
index fee7f66..f89bc06 100644
--- a/media/java/android/media/tv/tuner/filter/Settings.java
+++ b/media/java/android/media/tv/tuner/filter/Settings.java
@@ -37,19 +37,4 @@
     public int getType() {
         return mType;
     }
-
-
-    /**
-     * Builder for {@link Settings}.
-     *
-     * @param <T> The subclass to be built.
-     */
-    public abstract static class Builder<T extends Builder<T>> {
-        /* package */ final int mMainType;
-
-        /* package */ Builder(int mainType) {
-            mMainType = mainType;
-        }
-        /* package */ abstract T self();
-    }
 }
diff --git a/media/java/android/media/tv/tuner/filter/TimeFilter.java b/media/java/android/media/tv/tuner/filter/TimeFilter.java
index be0a055..da77b50 100644
--- a/media/java/android/media/tv/tuner/filter/TimeFilter.java
+++ b/media/java/android/media/tv/tuner/filter/TimeFilter.java
@@ -67,8 +67,7 @@
     @Result
     public int setCurrentTimestamp(long timestamp) {
         int res = nativeSetTimestamp(timestamp);
-        // TODO: use a constant for SUCCESS
-        if (res == 0) {
+        if (res == Tuner.RESULT_SUCCESS) {
             mEnable = true;
         }
         return res;
diff --git a/media/java/android/media/tv/tuner/filter/TlvFilterConfiguration.java b/media/java/android/media/tv/tuner/filter/TlvFilterConfiguration.java
index eb1de52..9bb408d 100644
--- a/media/java/android/media/tv/tuner/filter/TlvFilterConfiguration.java
+++ b/media/java/android/media/tv/tuner/filter/TlvFilterConfiguration.java
@@ -18,10 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
-import android.media.tv.tuner.TunerUtils;
 
 /**
  * Filter configuration for a TLV filter.
@@ -96,13 +93,9 @@
 
     /**
      * Creates a builder for {@link TlvFilterConfiguration}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/filter/TsFilterConfiguration.java b/media/java/android/media/tv/tuner/filter/TsFilterConfiguration.java
index 0579269..d4a1856 100644
--- a/media/java/android/media/tv/tuner/filter/TsFilterConfiguration.java
+++ b/media/java/android/media/tv/tuner/filter/TsFilterConfiguration.java
@@ -18,10 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
-import android.media.tv.tuner.TunerUtils;
 
 /**
  * Filter configuration for a TS filter.
@@ -51,13 +48,9 @@
 
     /**
      * Creates a builder for {@link TsFilterConfiguration}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/frontend/AnalogFrontendSettings.java b/media/java/android/media/tv/tuner/frontend/AnalogFrontendSettings.java
index e68585d..1d36da3 100644
--- a/media/java/android/media/tv/tuner/frontend/AnalogFrontendSettings.java
+++ b/media/java/android/media/tv/tuner/frontend/AnalogFrontendSettings.java
@@ -19,11 +19,8 @@
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
-import android.media.tv.tuner.TunerUtils;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -195,13 +192,9 @@
 
     /**
      * Creates a builder for {@link AnalogFrontendSettings}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/frontend/Atsc3FrontendSettings.java b/media/java/android/media/tv/tuner/frontend/Atsc3FrontendSettings.java
index bf4f3b2..f9eabc5 100644
--- a/media/java/android/media/tv/tuner/frontend/Atsc3FrontendSettings.java
+++ b/media/java/android/media/tv/tuner/frontend/Atsc3FrontendSettings.java
@@ -19,11 +19,8 @@
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
-import android.media.tv.tuner.TunerUtils;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -314,12 +311,9 @@
     /**
      * Creates a builder for {@link Atsc3FrontendSettings}.
      *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/frontend/Atsc3PlpSettings.java b/media/java/android/media/tv/tuner/frontend/Atsc3PlpSettings.java
index fe61dbc..f86eccf 100644
--- a/media/java/android/media/tv/tuner/frontend/Atsc3PlpSettings.java
+++ b/media/java/android/media/tv/tuner/frontend/Atsc3PlpSettings.java
@@ -17,10 +17,7 @@
 package android.media.tv.tuner.frontend;
 
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
-import android.media.tv.tuner.TunerUtils;
 
 /**
  * Physical Layer Pipe (PLP) settings for ATSC-3.
@@ -80,13 +77,9 @@
 
     /**
      * Creates a builder for {@link Atsc3PlpSettings}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/frontend/AtscFrontendSettings.java b/media/java/android/media/tv/tuner/frontend/AtscFrontendSettings.java
index 0674f6e..f7244bb 100644
--- a/media/java/android/media/tv/tuner/frontend/AtscFrontendSettings.java
+++ b/media/java/android/media/tv/tuner/frontend/AtscFrontendSettings.java
@@ -19,11 +19,8 @@
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
-import android.media.tv.tuner.TunerUtils;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -79,13 +76,9 @@
 
     /**
      * Creates a builder for {@link AtscFrontendSettings}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/frontend/DvbcFrontendSettings.java b/media/java/android/media/tv/tuner/frontend/DvbcFrontendSettings.java
index 121de5d..271e91e 100644
--- a/media/java/android/media/tv/tuner/frontend/DvbcFrontendSettings.java
+++ b/media/java/android/media/tv/tuner/frontend/DvbcFrontendSettings.java
@@ -19,11 +19,8 @@
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
-import android.media.tv.tuner.TunerUtils;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -206,13 +203,9 @@
 
     /**
      * Creates a builder for {@link DvbcFrontendSettings}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/frontend/DvbsCodeRate.java b/media/java/android/media/tv/tuner/frontend/DvbsCodeRate.java
index 2bdd379..dcf1511 100644
--- a/media/java/android/media/tv/tuner/frontend/DvbsCodeRate.java
+++ b/media/java/android/media/tv/tuner/frontend/DvbsCodeRate.java
@@ -17,10 +17,7 @@
 package android.media.tv.tuner.frontend;
 
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
-import android.media.tv.tuner.TunerUtils;
 
 /**
  * Code rate for DVBS.
@@ -69,13 +66,9 @@
 
     /**
      * Creates a builder for {@link DvbsCodeRate}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/frontend/DvbsFrontendSettings.java b/media/java/android/media/tv/tuner/frontend/DvbsFrontendSettings.java
index afc79ab..60b070f 100644
--- a/media/java/android/media/tv/tuner/frontend/DvbsFrontendSettings.java
+++ b/media/java/android/media/tv/tuner/frontend/DvbsFrontendSettings.java
@@ -20,12 +20,9 @@
 import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
 import android.media.tv.tuner.Tuner;
-import android.media.tv.tuner.TunerUtils;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -292,13 +289,9 @@
 
     /**
      * Creates a builder for {@link DvbsFrontendSettings}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/frontend/DvbtFrontendSettings.java b/media/java/android/media/tv/tuner/frontend/DvbtFrontendSettings.java
index 67a9fdc..5c057de 100644
--- a/media/java/android/media/tv/tuner/frontend/DvbtFrontendSettings.java
+++ b/media/java/android/media/tv/tuner/frontend/DvbtFrontendSettings.java
@@ -19,11 +19,8 @@
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
-import android.media.tv.tuner.TunerUtils;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -494,13 +491,9 @@
 
     /**
      * Creates a builder for {@link DvbtFrontendSettings}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/frontend/FrontendInfo.java b/media/java/android/media/tv/tuner/frontend/FrontendInfo.java
index 696d839..334900b 100644
--- a/media/java/android/media/tv/tuner/frontend/FrontendInfo.java
+++ b/media/java/android/media/tv/tuner/frontend/FrontendInfo.java
@@ -112,7 +112,7 @@
      * Gets frontend capabilities.
      */
     @NonNull
-    public FrontendCapabilities getFrontendCapability() {
+    public FrontendCapabilities getFrontendCapabilities() {
         return mFrontendCap;
     }
 }
diff --git a/media/java/android/media/tv/tuner/frontend/FrontendStatus.java b/media/java/android/media/tv/tuner/frontend/FrontendStatus.java
index ea91ee9..c265bb9 100644
--- a/media/java/android/media/tv/tuner/frontend/FrontendStatus.java
+++ b/media/java/android/media/tv/tuner/frontend/FrontendStatus.java
@@ -214,7 +214,7 @@
     private Integer mFreqOffset;
     private Integer mHierarchy;
     private Boolean mIsRfLocked;
-    private Atsc3PlpInfo[] mPlpInfo;
+    private Atsc3PlpTuningInfo[] mPlpInfo;
 
     // Constructed and fields set by JNI code.
     private FrontendStatus() {
@@ -419,7 +419,7 @@
     /**
      * Gets lock status for RF.
      */
-    public boolean isRfLock() {
+    public boolean isRfLocked() {
         if (mIsRfLocked == null) {
             throw new IllegalStateException();
         }
@@ -429,7 +429,7 @@
      * Gets an array of PLP status for tuned PLPs for ATSC3 frontend.
      */
     @NonNull
-    public Atsc3PlpInfo[] getAtsc3PlpInfo() {
+    public Atsc3PlpTuningInfo[] getAtsc3PlpTuningInfo() {
         if (mPlpInfo == null) {
             throw new IllegalStateException();
         }
@@ -439,14 +439,14 @@
     /**
      * Status for each tuning Physical Layer Pipes.
      */
-    public static class Atsc3PlpInfo {
+    public static class Atsc3PlpTuningInfo {
         private final int mPlpId;
-        private final boolean mIsLock;
+        private final boolean mIsLocked;
         private final int mUec;
 
-        private Atsc3PlpInfo(int plpId, boolean isLock, int uec) {
+        private Atsc3PlpTuningInfo(int plpId, boolean isLocked, int uec) {
             mPlpId = plpId;
-            mIsLock = isLock;
+            mIsLocked = isLocked;
             mUec = uec;
         }
 
@@ -459,8 +459,8 @@
         /**
          * Gets Demod Lock/Unlock status of this particular PLP.
          */
-        public boolean isLock() {
-            return mIsLock;
+        public boolean isLocked() {
+            return mIsLocked;
         }
         /**
          * Gets Uncorrectable Error Counts (UEC) of this particular PLP since last tune operation.
diff --git a/media/java/android/media/tv/tuner/frontend/Isdbs3FrontendSettings.java b/media/java/android/media/tv/tuner/frontend/Isdbs3FrontendSettings.java
index e0077ca..02cdb96 100644
--- a/media/java/android/media/tv/tuner/frontend/Isdbs3FrontendSettings.java
+++ b/media/java/android/media/tv/tuner/frontend/Isdbs3FrontendSettings.java
@@ -19,12 +19,9 @@
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
 import android.media.tv.tuner.Tuner;
-import android.media.tv.tuner.TunerUtils;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -213,13 +210,9 @@
 
     /**
      * Creates a builder for {@link Isdbs3FrontendSettings}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/frontend/IsdbsFrontendSettings.java b/media/java/android/media/tv/tuner/frontend/IsdbsFrontendSettings.java
index 8dc591b..3cc1aab 100644
--- a/media/java/android/media/tv/tuner/frontend/IsdbsFrontendSettings.java
+++ b/media/java/android/media/tv/tuner/frontend/IsdbsFrontendSettings.java
@@ -19,12 +19,9 @@
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
 import android.media.tv.tuner.Tuner;
-import android.media.tv.tuner.TunerUtils;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -197,13 +194,9 @@
 
     /**
      * Creates a builder for {@link IsdbsFrontendSettings}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/frontend/IsdbtFrontendSettings.java b/media/java/android/media/tv/tuner/frontend/IsdbtFrontendSettings.java
index 915380e..6a14d08 100644
--- a/media/java/android/media/tv/tuner/frontend/IsdbtFrontendSettings.java
+++ b/media/java/android/media/tv/tuner/frontend/IsdbtFrontendSettings.java
@@ -19,11 +19,8 @@
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
-import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
-import android.content.Context;
 import android.hardware.tv.tuner.V1_0.Constants;
-import android.media.tv.tuner.TunerUtils;
 import android.media.tv.tuner.frontend.DvbtFrontendSettings.CodeRate;
 
 import java.lang.annotation.Retention;
@@ -190,13 +187,9 @@
 
     /**
      * Creates a builder for {@link IsdbtFrontendSettings}.
-     *
-     * @param context the context of the caller.
      */
-    @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER)
     @NonNull
-    public static Builder builder(@NonNull Context context) {
-        TunerUtils.checkTunerPermission(context);
+    public static Builder builder() {
         return new Builder();
     }
 
diff --git a/media/java/android/media/tv/tuner/frontend/ScanCallback.java b/media/java/android/media/tv/tuner/frontend/ScanCallback.java
index 63bc248..b0491fd 100644
--- a/media/java/android/media/tv/tuner/frontend/ScanCallback.java
+++ b/media/java/android/media/tv/tuner/frontend/ScanCallback.java
@@ -38,36 +38,36 @@
     void onProgress(@IntRange(from = 0, to = 100) int percent);
 
     /** Signal frequencies in Hertz */
-    void onFrequenciesReport(@NonNull int[] frequency);
+    void onFrequenciesReported(@NonNull int[] frequency);
 
     /** Symbols per second */
-    void onSymbolRates(@NonNull int[] rate);
+    void onSymbolRatesReported(@NonNull int[] rate);
 
     /** Locked Plp Ids for DVBT2 frontend. */
-    void onPlpIds(@NonNull int[] plpIds);
+    void onPlpIdsReported(@NonNull int[] plpIds);
 
     /** Locked group Ids for DVBT2 frontend. */
-    void onGroupIds(@NonNull int[] groupIds);
+    void onGroupIdsReported(@NonNull int[] groupIds);
 
     /** Stream Ids. */
-    void onInputStreamIds(@NonNull int[] inputStreamIds);
+    void onInputStreamIdsReported(@NonNull int[] inputStreamIds);
 
     /** Locked signal standard for DVBS. */
-    void onDvbsStandard(@DvbsFrontendSettings.Standard int dvbsStandard);
+    void onDvbsStandardReported(@DvbsFrontendSettings.Standard int dvbsStandard);
 
     /** Locked signal standard. for DVBT */
-    void onDvbtStandard(@DvbtFrontendSettings.Standard int dvbtStandard);
+    void onDvbtStandardReported(@DvbtFrontendSettings.Standard int dvbtStandard);
 
     /** Locked signal SIF standard for Analog. */
-    void onAnalogSifStandard(@AnalogFrontendSettings.SifStandard int sif);
+    void onAnalogSifStandardReported(@AnalogFrontendSettings.SifStandard int sif);
 
     /** PLP status in a tuned frequency band for ATSC3 frontend. */
-    void onAtsc3PlpInfos(@NonNull Atsc3PlpInfo[] atsc3PlpInfos);
+    void onAtsc3PlpInfosReported(@NonNull Atsc3PlpInfo[] atsc3PlpInfos);
 
     /** Frontend hierarchy. */
-    void onHierarchy(@DvbtFrontendSettings.Hierarchy int hierarchy);
+    void onHierarchyReported(@DvbtFrontendSettings.Hierarchy int hierarchy);
 
     /** Frontend signal type. */
-    void onSignalType(@AnalogFrontendSettings.SignalType int signalType);
+    void onSignalTypeReported(@AnalogFrontendSettings.SignalType int signalType);
 
 }
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp
index 893e516..fc9b91c 100644
--- a/media/jni/android_media_MediaCodec.cpp
+++ b/media/jni/android_media_MediaCodec.cpp
@@ -34,10 +34,14 @@
 #include <nativehelper/JNIHelp.h>
 #include <nativehelper/ScopedLocalRef.h>
 
+#include <C2AllocatorGralloc.h>
+#include <C2BlockInternal.h>
 #include <C2Buffer.h>
 
 #include <android/hardware/cas/native/1.0/IDescrambler.h>
 
+#include <android_runtime/android_hardware_HardwareBuffer.h>
+
 #include <binder/MemoryHeapBase.h>
 
 #include <cutils/compiler.h>
@@ -58,6 +62,8 @@
 #include <media/stagefright/PersistentSurface.h>
 #include <mediadrm/ICrypto.h>
 
+#include <private/android/AHardwareBufferHelpers.h>
+
 #include <system/window.h>
 
 namespace android {
@@ -143,15 +149,6 @@
     jfieldID lockId;
 } gLinearBlockInfo;
 
-static struct {
-    jclass clazz;
-    jmethodID ctorId;
-    jmethodID setInternalStateId;
-    jfieldID contextId;
-    jfieldID validId;
-    jfieldID lockId;
-} gGraphicBlockInfo;
-
 struct fields_t {
     jmethodID postEventFromNativeID;
     jmethodID lockAndGetContextID;
@@ -167,7 +164,7 @@
     jfieldID patternSkipBlocksID;
     jfieldID queueRequestIndexID;
     jfieldID outputFrameLinearBlockID;
-    jfieldID outputFrameGraphicBlockID;
+    jfieldID outputFrameHardwareBufferID;
     jfieldID outputFrameChangedKeysID;
     jfieldID outputFrameFormatID;
 };
@@ -176,16 +173,6 @@
 static const void *sRefBaseOwner;
 
 
-struct JMediaCodecGraphicBlock {
-    std::shared_ptr<C2Buffer> mBuffer;
-    std::shared_ptr<const C2GraphicView> mReadonlyMapping;
-
-    std::shared_ptr<C2GraphicBlock> mBlock;
-    std::shared_ptr<C2GraphicView> mReadWriteMapping;
-
-    sp<MediaCodecBuffer> mLegacyBuffer;
-};
-
 ////////////////////////////////////////////////////////////////////////////////
 
 JMediaCodec::JMediaCodec(
@@ -706,16 +693,22 @@
                     break;
                 }
                 case C2BufferData::GRAPHIC: {
-                    std::unique_ptr<JMediaCodecGraphicBlock> context{new JMediaCodecGraphicBlock};
-                    context->mBuffer = c2Buffer;
-                    ScopedLocalRef<jobject> graphicBlock{env, env->NewObject(
-                            gGraphicBlockInfo.clazz, gGraphicBlockInfo.ctorId)};
-                    env->CallVoidMethod(
-                            graphicBlock.get(),
-                            gGraphicBlockInfo.setInternalStateId,
-                            (jlong)context.release(),
-                            true);
-                    env->SetObjectField(frame, gFields.outputFrameGraphicBlockID, graphicBlock.get());
+                    const C2Handle *c2Handle = c2Buffer->data().graphicBlocks().front().handle();
+                    uint32_t width, height, format, stride, igbp_slot, generation;
+                    uint64_t usage, igbp_id;
+                    _UnwrapNativeCodec2GrallocMetadata(
+                            c2Handle, &width, &height, &format, &usage, &stride, &generation,
+                            &igbp_id, &igbp_slot);
+                    native_handle_t *grallocHandle = UnwrapNativeCodec2GrallocHandle(c2Handle);
+                    GraphicBuffer* graphicBuffer = new GraphicBuffer(
+                            grallocHandle, GraphicBuffer::CLONE_HANDLE,
+                            width, height, format, 1, usage, stride);
+                    ScopedLocalRef<jobject> hardwareBuffer{
+                        env,
+                        android_hardware_HardwareBuffer_createFromAHardwareBuffer(
+                                env, AHardwareBuffer_from_GraphicBuffer(graphicBuffer))};
+                    env->SetObjectField(
+                            frame, gFields.outputFrameHardwareBufferID, hardwareBuffer.get());
                     break;
                 }
                 case C2BufferData::LINEAR_CHUNKS:  [[fallthrough]];
@@ -737,16 +730,7 @@
                         true);
                 env->SetObjectField(frame, gFields.outputFrameLinearBlockID, linearBlock.get());
             } else {
-                std::unique_ptr<JMediaCodecGraphicBlock> context{new JMediaCodecGraphicBlock};
-                context->mLegacyBuffer = buffer;
-                ScopedLocalRef<jobject> graphicBlock{env, env->NewObject(
-                        gGraphicBlockInfo.clazz, gGraphicBlockInfo.ctorId)};
-                env->CallVoidMethod(
-                        graphicBlock.get(),
-                        gGraphicBlockInfo.setInternalStateId,
-                        (jlong)context.release(),
-                        true);
-                env->SetObjectField(frame, gFields.outputFrameGraphicBlockID, graphicBlock.get());
+                // No-op.
             }
         }
     }
@@ -1873,6 +1857,113 @@
             env, err, ACTION_CODE_FATAL, errorDetailMsg.empty() ? NULL : errorDetailMsg.c_str());
 }
 
+static jobject android_media_MediaCodec_mapHardwareBuffer(JNIEnv *env, jobject bufferObj) {
+    ALOGV("android_media_MediaCodec_mapHardwareBuffer");
+    AHardwareBuffer *hardwareBuffer = android_hardware_HardwareBuffer_getNativeHardwareBuffer(
+            env, bufferObj);
+    AHardwareBuffer_Desc desc;
+    AHardwareBuffer_describe(hardwareBuffer, &desc);
+    if (desc.format != AHARDWAREBUFFER_FORMAT_Y8Cb8Cr8_420) {
+        ALOGI("mapHardwareBuffer: unmappable format: %d", desc.format);
+        return nullptr;
+    }
+    if ((desc.usage & AHARDWAREBUFFER_USAGE_CPU_READ_MASK) == 0) {
+        ALOGI("mapHardwareBuffer: buffer not CPU readable");
+        return nullptr;
+    }
+    bool readOnly = ((desc.usage & AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK) == 0);
+
+    uint64_t cpuUsage = desc.usage;
+    cpuUsage = (cpuUsage & AHARDWAREBUFFER_USAGE_CPU_READ_MASK);
+    cpuUsage = (cpuUsage & AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK);
+
+    AHardwareBuffer_Planes planes;
+    int err = AHardwareBuffer_lockPlanes(
+            hardwareBuffer, cpuUsage, -1 /* fence */, nullptr /* rect */, &planes);
+    if (err != 0) {
+        ALOGI("mapHardwareBuffer: Failed to lock planes (err=%d)", err);
+        return nullptr;
+    }
+
+    if (planes.planeCount != 3) {
+        ALOGI("mapHardwareBuffer: planeCount expected 3, actual %u", planes.planeCount);
+        return nullptr;
+    }
+
+    ScopedLocalRef<jclass> planeClazz(
+            env, env->FindClass("android/media/MediaCodec$MediaImage$MediaPlane"));
+    ScopedLocalRef<jobjectArray> planeArray{
+            env, env->NewObjectArray(3, planeClazz.get(), NULL)};
+    CHECK(planeClazz.get() != NULL);
+    jmethodID planeConstructID = env->GetMethodID(planeClazz.get(), "<init>",
+            "([Ljava/nio/ByteBuffer;IIIII)V");
+
+    // plane indices are Y-U-V.
+    for (uint32_t i = 0; i < 3; ++i) {
+        const AHardwareBuffer_Plane &plane = planes.planes[i];
+        ScopedLocalRef<jobject> byteBuffer{env, CreateByteBuffer(
+                env,
+                plane.data,
+                plane.rowStride * (desc.height - 1) + plane.pixelStride * (desc.width - 1) + 1,
+                0,
+                plane.rowStride * (desc.height - 1) + plane.pixelStride * (desc.width - 1) + 1,
+                readOnly,
+                true)};
+
+        ScopedLocalRef<jobject> planeObj{env, env->NewObject(
+                planeClazz.get(), planeConstructID,
+                byteBuffer.get(), plane.rowStride, plane.pixelStride)};
+
+        env->SetObjectArrayElement(planeArray.get(), i, planeObj.get());
+    }
+
+    ScopedLocalRef<jclass> imageClazz(
+            env, env->FindClass("android/media/MediaCodec$MediaImage"));
+    CHECK(imageClazz.get() != NULL);
+
+    jmethodID imageConstructID = env->GetMethodID(imageClazz.get(), "<init>",
+            "([Landroid/media/Image$Plane;IIIZJIILandroid/graphics/Rect;J)V");
+
+    jobject img = env->NewObject(imageClazz.get(), imageConstructID,
+            planeArray.get(),
+            desc.width,
+            desc.height,
+            desc.format, // ???
+            (jboolean)readOnly /* readOnly */,
+            (jlong)0 /* timestamp */,
+            (jint)0 /* xOffset */, (jint)0 /* yOffset */, nullptr /* cropRect */,
+            (jlong)hardwareBuffer);
+
+    // if MediaImage creation fails, return null
+    if (env->ExceptionCheck()) {
+        env->ExceptionDescribe();
+        env->ExceptionClear();
+        return nullptr;
+    }
+
+    AHardwareBuffer_acquire(hardwareBuffer);
+
+    return img;
+}
+
+static void android_media_MediaCodec_closeMediaImage(JNIEnv *, jlong context) {
+    if (context == 0) {
+        return;
+    }
+    AHardwareBuffer *hardwareBuffer = (AHardwareBuffer *)context;
+
+    int32_t fenceFd = -1;
+    int err = AHardwareBuffer_unlock(hardwareBuffer, &fenceFd);
+    if (err == 0) {
+        sp<Fence> fence{new Fence(fenceFd)};
+    } else {
+        ALOGI("closeMediaImage: failed to unlock (err=%d)", err);
+        // Continue to release the hardwareBuffer
+    }
+
+    AHardwareBuffer_release(hardwareBuffer);
+}
+
 static status_t ConvertKeyValueListsToAMessage(
         JNIEnv *env, jobject keys, jobject values, sp<AMessage> *msg) {
     static struct Fields {
@@ -2031,11 +2122,6 @@
         }
 
         NativeCryptoInfo cryptoInfo{env, cryptoInfoObj};
-        size_t cryptoSize = 0;
-        for (int i = 0; i < cryptoInfo.mNumSubSamples; ++i) {
-            cryptoSize += cryptoInfo.mSubSamples[i].mNumBytesOfClearData;
-            cryptoSize += cryptoInfo.mSubSamples[i].mNumBytesOfEncryptedData;
-        }
         err = codec->queueEncryptedLinearBlock(
                 index,
                 memory,
@@ -2059,10 +2145,10 @@
     throwExceptionAsNecessary(env, err, ACTION_CODE_FATAL, errorDetailMsg.c_str());
 }
 
-static void android_media_MediaCodec_native_queueGraphicBlock(
+static void android_media_MediaCodec_native_queueHardwareBuffer(
         JNIEnv *env, jobject thiz, jint index, jobject bufferObj,
         jlong presentationTimeUs, jint flags, jobject keys, jobject values) {
-    ALOGV("android_media_MediaCodec_native_queueGraphicBlock");
+    ALOGV("android_media_MediaCodec_native_queueHardwareBuffer");
 
     sp<JMediaCodec> codec = getMediaCodec(env, thiz);
 
@@ -2078,29 +2164,21 @@
         return;
     }
 
-    std::shared_ptr<C2Buffer> buffer;
-    std::shared_ptr<C2GraphicBlock> block;
-    ScopedLocalRef<jobject> lock{env, env->GetObjectField(bufferObj, gGraphicBlockInfo.lockId)};
-    if (env->MonitorEnter(lock.get()) == JNI_OK) {
-        if (env->GetBooleanField(bufferObj, gGraphicBlockInfo.validId)) {
-            JMediaCodecGraphicBlock *context = (JMediaCodecGraphicBlock *)env->GetLongField(
-                    bufferObj, gGraphicBlockInfo.contextId);
-            buffer = context->mBuffer;
-            block = context->mBlock;
-        }
-        env->MonitorExit(lock.get());
-    } else {
-        throwExceptionAsNecessary(env, INVALID_OPERATION);
-        return;
-    }
+    AHardwareBuffer *hardwareBuffer = android_hardware_HardwareBuffer_getNativeHardwareBuffer(
+            env, bufferObj);
+    sp<GraphicBuffer> graphicBuffer{AHardwareBuffer_to_GraphicBuffer(hardwareBuffer)};
+    C2Handle *handle = WrapNativeCodec2GrallocHandle(
+            graphicBuffer->handle, graphicBuffer->format,
+            graphicBuffer->width, graphicBuffer->height,
+            graphicBuffer->usage, graphicBuffer->stride);
+    std::shared_ptr<C2GraphicBlock> block = _C2BlockFactory::CreateGraphicBlock(handle);
 
-    if (!block && !buffer) {
+    if (!block) {
         throwExceptionAsNecessary(env, BAD_VALUE);
         return;
     }
-    if (!buffer) {
-        buffer = C2Buffer::CreateGraphicBuffer(block->share(block->crop(), C2Fence{}));
-    }
+    std::shared_ptr<C2Buffer> buffer = C2Buffer::CreateGraphicBuffer(block->share(
+            block->crop(), C2Fence{}));
     AString errorDetailMsg;
     err = codec->queueBuffer(index, buffer, presentationTimeUs, flags, tunings, &errorDetailMsg);
     throwExceptionAsNecessary(env, err, ACTION_CODE_FATAL, errorDetailMsg.c_str());
@@ -2534,9 +2612,9 @@
         env->GetFieldID(clazz.get(), "mLinearBlock", "Landroid/media/MediaCodec$LinearBlock;");
     CHECK(gFields.outputFrameLinearBlockID != NULL);
 
-    gFields.outputFrameGraphicBlockID =
-        env->GetFieldID(clazz.get(), "mGraphicBlock", "Landroid/media/MediaCodec$GraphicBlock;");
-    CHECK(gFields.outputFrameGraphicBlockID != NULL);
+    gFields.outputFrameHardwareBufferID =
+        env->GetFieldID(clazz.get(), "mHardwareBuffer", "Landroid/hardware/HardwareBuffer;");
+    CHECK(gFields.outputFrameHardwareBufferID != NULL);
 
     gFields.outputFrameChangedKeysID =
         env->GetFieldID(clazz.get(), "mChangedKeys", "Ljava/util/ArrayList;");
@@ -2729,27 +2807,6 @@
 
     gLinearBlockInfo.lockId = env->GetFieldID(clazz.get(), "mLock", "Ljava/lang/Object;");
     CHECK(gLinearBlockInfo.lockId != NULL);
-
-    clazz.reset(env->FindClass("android/media/MediaCodec$GraphicBlock"));
-    CHECK(clazz.get() != NULL);
-
-    gGraphicBlockInfo.clazz = (jclass)env->NewGlobalRef(clazz.get());
-
-    gGraphicBlockInfo.ctorId = env->GetMethodID(clazz.get(), "<init>", "()V");
-    CHECK(gGraphicBlockInfo.ctorId != NULL);
-
-    gGraphicBlockInfo.setInternalStateId = env->GetMethodID(
-            clazz.get(), "setInternalStateLocked", "(JZ)V");
-    CHECK(gGraphicBlockInfo.setInternalStateId != NULL);
-
-    gGraphicBlockInfo.contextId = env->GetFieldID(clazz.get(), "mNativeContext", "J");
-    CHECK(gGraphicBlockInfo.contextId != NULL);
-
-    gGraphicBlockInfo.validId = env->GetFieldID(clazz.get(), "mValid", "Z");
-    CHECK(gGraphicBlockInfo.validId != NULL);
-
-    gGraphicBlockInfo.lockId = env->GetFieldID(clazz.get(), "mLock", "Ljava/lang/Object;");
-    CHECK(gGraphicBlockInfo.lockId != NULL);
 }
 
 static void android_media_MediaCodec_native_setup(
@@ -2949,196 +3006,6 @@
     return isCompatible;
 }
 
-// MediaCodec.GraphicBlock
-
-template <class T>
-static jobject CreateImage(JNIEnv *env, const std::shared_ptr<T> &view) {
-    bool readOnly = std::is_const<T>::value;
-    const C2PlanarLayout layout = view->layout();
-    jint format = HAL_PIXEL_FORMAT_YCBCR_420_888;
-    switch (layout.type) {
-        case C2PlanarLayout::TYPE_YUV: {
-            if (layout.numPlanes != 3) {
-                throwExceptionAsNecessary(env, INVALID_OPERATION);
-                return nullptr;
-            }
-            const C2PlaneInfo & yPlane = layout.planes[C2PlanarLayout::PLANE_Y];
-            const C2PlaneInfo & uPlane = layout.planes[C2PlanarLayout::PLANE_U];
-            const C2PlaneInfo & vPlane = layout.planes[C2PlanarLayout::PLANE_V];
-            if (yPlane.rowSampling != 1 || yPlane.colSampling != 1) {
-                throwExceptionAsNecessary(env, INVALID_OPERATION);
-                return nullptr;
-            }
-            if (uPlane.rowSampling != vPlane.rowSampling
-                    || uPlane.colSampling != vPlane.colSampling) {
-                throwExceptionAsNecessary(env, INVALID_OPERATION);
-                return nullptr;
-            }
-            if (uPlane.rowSampling == 2 && uPlane.colSampling == 2) {
-                format = HAL_PIXEL_FORMAT_YCBCR_420_888;
-                break;
-            } else if (uPlane.rowSampling == 1 && uPlane.colSampling == 2) {
-                format = HAL_PIXEL_FORMAT_YCBCR_422_888;
-                break;
-            } else if (uPlane.rowSampling == 1 && uPlane.colSampling == 1) {
-                format = HAL_PIXEL_FORMAT_YCBCR_444_888;
-                break;
-            }
-            throwExceptionAsNecessary(env, INVALID_OPERATION);
-            return nullptr;
-        }
-        case C2PlanarLayout::TYPE_RGB: {
-            if (layout.numPlanes != 3) {
-                throwExceptionAsNecessary(env, INVALID_OPERATION);
-                return nullptr;
-            }
-            format = HAL_PIXEL_FORMAT_FLEX_RGB_888;
-            break;
-        }
-        case C2PlanarLayout::TYPE_RGBA: {
-            if (layout.numPlanes != 4) {
-                throwExceptionAsNecessary(env, INVALID_OPERATION);
-                return nullptr;
-            }
-            format = HAL_PIXEL_FORMAT_FLEX_RGBA_8888;
-            break;
-        }
-        case C2PlanarLayout::TYPE_YUVA:
-            [[fallthrough]];
-        default:
-            throwExceptionAsNecessary(env, INVALID_OPERATION);
-            return nullptr;
-    }
-
-    ScopedLocalRef<jclass> planeClazz(
-            env, env->FindClass("android/media/MediaCodec$MediaImage$MediaPlane"));
-    ScopedLocalRef<jobjectArray> planeArray{
-            env, env->NewObjectArray(layout.numPlanes, planeClazz.get(), NULL)};
-    CHECK(planeClazz.get() != NULL);
-    jmethodID planeConstructID = env->GetMethodID(planeClazz.get(), "<init>",
-            "([Ljava/nio/ByteBuffer;IIIII)V");
-
-    // plane indices are happened to be Y-U-V and R-G-B(-A) order.
-    for (uint32_t i = 0; i < layout.numPlanes; ++i) {
-        const C2PlaneInfo &plane = layout.planes[i];
-        if (plane.rowInc < 0 || plane.colInc < 0) {
-            throwExceptionAsNecessary(env, INVALID_OPERATION);
-            return nullptr;
-        }
-        ssize_t minOffset = plane.minOffset(view->width(), view->height());
-        ssize_t maxOffset = plane.maxOffset(view->width(), view->height());
-        ScopedLocalRef<jobject> byteBuffer{env, CreateByteBuffer(
-                env,
-                view->data()[plane.rootIx] + plane.offset + minOffset,
-                maxOffset - minOffset + 1,
-                0,
-                maxOffset - minOffset + 1,
-                readOnly,
-                true)};
-
-        ScopedLocalRef<jobject> jPlane{env, env->NewObject(
-                planeClazz.get(), planeConstructID,
-                byteBuffer.get(), plane.rowInc, plane.colInc)};
-    }
-
-    ScopedLocalRef<jclass> imageClazz(
-            env, env->FindClass("android/media/MediaCodec$MediaImage"));
-    CHECK(imageClazz.get() != NULL);
-
-    jmethodID imageConstructID = env->GetMethodID(imageClazz.get(), "<init>",
-            "([Landroid/media/Image$Plane;IIIZJIILandroid/graphics/Rect;)V");
-
-    jobject img = env->NewObject(imageClazz.get(), imageConstructID,
-            planeArray.get(),
-            view->width(),
-            view->height(),
-            format,
-            (jboolean)readOnly /* readOnly */,
-            (jlong)0 /* timestamp */,
-            (jint)0 /* xOffset */, (jint)0 /* yOffset */, nullptr /* cropRect */);
-
-    // if MediaImage creation fails, return null
-    if (env->ExceptionCheck()) {
-        env->ExceptionDescribe();
-        env->ExceptionClear();
-        return nullptr;
-    }
-
-    return img;
-}
-
-static jobject android_media_MediaCodec_GraphicBlock_native_map(
-        JNIEnv *env, jobject thiz) {
-    JMediaCodecGraphicBlock *context =
-        (JMediaCodecGraphicBlock *)env->GetLongField(thiz, gGraphicBlockInfo.contextId);
-    if (context->mBuffer) {
-        std::shared_ptr<C2Buffer> buffer = context->mBuffer;
-        if (!context->mReadonlyMapping) {
-            const C2BufferData data = buffer->data();
-            if (data.type() != C2BufferData::GRAPHIC) {
-                throwExceptionAsNecessary(env, INVALID_OPERATION);
-                return nullptr;
-            }
-            if (data.graphicBlocks().size() != 1u) {
-                throwExceptionAsNecessary(env, INVALID_OPERATION);
-                return nullptr;
-            }
-            C2ConstGraphicBlock block = data.graphicBlocks().front();
-            context->mReadonlyMapping =
-                std::make_shared<const C2GraphicView>(block.map().get());
-        }
-        return CreateImage(env, context->mReadonlyMapping);
-    } else if (context->mBlock) {
-        std::shared_ptr<C2GraphicBlock> block = context->mBlock;
-        if (!context->mReadWriteMapping) {
-            context->mReadWriteMapping =
-                std::make_shared<C2GraphicView>(block->map().get());
-        }
-        return CreateImage(env, context->mReadWriteMapping);
-    } else if (context->mLegacyBuffer) {
-    }
-    throwExceptionAsNecessary(env, INVALID_OPERATION);
-    return nullptr;
-}
-
-static void android_media_MediaCodec_GraphicBlock_native_recycle(
-        JNIEnv *env, jobject thiz) {
-    JMediaCodecGraphicBlock *context =
-        (JMediaCodecGraphicBlock *)env->GetLongField(thiz, gGraphicBlockInfo.contextId);
-    env->CallVoidMethod(thiz, gGraphicBlockInfo.setInternalStateId, 0, false /* isMappable */);
-    delete context;
-}
-
-static void android_media_MediaCodec_GraphicBlock_native_obtain(
-        JNIEnv *env, jobject thiz,
-        jint width, jint height, jint format, jlong usage, jobjectArray codecNames) {
-    std::unique_ptr<JMediaCodecGraphicBlock> context{new JMediaCodecGraphicBlock};
-    std::vector<std::string> names;
-    PopulateNamesVector(env, codecNames, &names);
-    context->mBlock = MediaCodec::FetchGraphicBlock(width, height, format, usage, names);
-    if (!context->mBlock) {
-        jniThrowException(env, "java/io/IOException", nullptr);
-        return;
-    }
-    env->CallVoidMethod(
-            thiz,
-            gGraphicBlockInfo.setInternalStateId,
-            (jlong)context.release(),
-            true /*isMappable */);
-}
-
-static jboolean android_media_MediaCodec_GraphicBlock_checkCompatible(
-        JNIEnv *env, jobjectArray codecNames) {
-    std::vector<std::string> names;
-    PopulateNamesVector(env, codecNames, &names);
-    bool isCompatible = false;
-    status_t err = MediaCodec::CanFetchGraphicBlock(names, &isCompatible);
-    if (err != OK) {
-        throwExceptionAsNecessary(env, err);
-    }
-    return isCompatible;
-}
-
 static const JNINativeMethod gMethods[] = {
     { "native_release", "()V", (void *)android_media_MediaCodec_release },
 
@@ -3184,14 +3051,20 @@
     { "native_queueSecureInputBuffer", "(IILandroid/media/MediaCodec$CryptoInfo;JI)V",
       (void *)android_media_MediaCodec_queueSecureInputBuffer },
 
+    { "native_mapHardwareBuffer",
+      "(Landroid/hardware/HardwareBuffer;)Landroid/media/Image;",
+      (void *)android_media_MediaCodec_mapHardwareBuffer },
+
+    { "native_closeMediaImage", "(J)V", (void *)android_media_MediaCodec_closeMediaImage },
+
     { "native_queueLinearBlock",
       "(ILandroid/media/MediaCodec$LinearBlock;IILandroid/media/MediaCodec$CryptoInfo;JI"
       "Ljava/util/ArrayList;Ljava/util/ArrayList;)V",
       (void *)android_media_MediaCodec_native_queueLinearBlock },
 
-    { "native_queueGraphicBlock",
-      "(ILandroid/media/MediaCodec$GraphicBlock;JILjava/util/ArrayList;Ljava/util/ArrayList;)V",
-      (void *)android_media_MediaCodec_native_queueGraphicBlock },
+    { "native_queueHardwareBuffer",
+      "(ILandroid/hardware/HardwareBuffer;JILjava/util/ArrayList;Ljava/util/ArrayList;)V",
+      (void *)android_media_MediaCodec_native_queueHardwareBuffer },
 
     { "native_getOutputFrame",
       "(Landroid/media/MediaCodec$OutputFrame;I)V",
@@ -3265,20 +3138,6 @@
       (void *)android_media_MediaCodec_LinearBlock_checkCompatible },
 };
 
-static const JNINativeMethod gGraphicBlockMethods[] = {
-    { "native_map", "()Landroid/media/Image;",
-      (void *)android_media_MediaCodec_GraphicBlock_native_map },
-
-    { "native_recycle", "()V",
-      (void *)android_media_MediaCodec_GraphicBlock_native_recycle },
-
-    { "native_obtain", "(IIIJ[Ljava/lang/String;)V",
-      (void *)android_media_MediaCodec_GraphicBlock_native_obtain },
-
-    { "native_checkCompatible", "([Ljava/lang/String;)Z",
-      (void *)android_media_MediaCodec_GraphicBlock_checkCompatible },
-};
-
 int register_android_media_MediaCodec(JNIEnv *env) {
     int result = AndroidRuntime::registerNativeMethods(env,
                 "android/media/MediaCodec", gMethods, NELEM(gMethods));
@@ -3289,12 +3148,5 @@
                 "android/media/MediaCodec$LinearBlock",
                 gLinearBlockMethods,
                 NELEM(gLinearBlockMethods));
-    if (result != JNI_OK) {
-        return result;
-    }
-    result = AndroidRuntime::registerNativeMethods(env,
-                "android/media/MediaCodec$GraphicBlock",
-                gGraphicBlockMethods,
-                NELEM(gGraphicBlockMethods));
     return result;
 }
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index bbeb451..9310d38 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -40,6 +40,7 @@
 using ::android::hardware::tv::tuner::V1_0::DemuxAlpFilterSettings;
 using ::android::hardware::tv::tuner::V1_0::DemuxAlpFilterType;
 using ::android::hardware::tv::tuner::V1_0::DemuxAlpLengthType;
+using ::android::hardware::tv::tuner::V1_0::DemuxCapabilities;
 using ::android::hardware::tv::tuner::V1_0::DemuxFilterAvSettings;
 using ::android::hardware::tv::tuner::V1_0::DemuxFilterDownloadEvent;
 using ::android::hardware::tv::tuner::V1_0::DemuxFilterDownloadSettings;
@@ -1382,6 +1383,42 @@
     return dvrObj;
 }
 
+jobject JTuner::getDemuxCaps() {
+    DemuxCapabilities caps;
+    Result res;
+    mTuner->getDemuxCaps([&](Result r, const DemuxCapabilities& demuxCaps) {
+        caps = demuxCaps;
+        res = r;
+    });
+    if (res != Result::SUCCESS) {
+        return NULL;
+    }
+    JNIEnv *env = AndroidRuntime::getJNIEnv();
+    jclass clazz = env->FindClass("android/media/tv/tuner/DemuxCapabilities");
+    jmethodID capsInit = env->GetMethodID(clazz, "<init>", "(IIIIIIIIIJI[IZ)V");
+
+    jint numDemux = caps.numDemux;
+    jint numRecord = caps.numRecord;
+    jint numPlayback = caps.numPlayback;
+    jint numTsFilter = caps.numTsFilter;
+    jint numSectionFilter = caps.numSectionFilter;
+    jint numAudioFilter = caps.numAudioFilter;
+    jint numVideoFilter = caps.numVideoFilter;
+    jint numPesFilter = caps.numPesFilter;
+    jint numPcrFilter = caps.numPcrFilter;
+    jlong numBytesInSectionFilter = caps.numBytesInSectionFilter;
+    jint filterCaps = static_cast<jint>(caps.filterCaps);
+    jboolean bTimeFilter = caps.bTimeFilter;
+
+    jintArray linkCaps = env->NewIntArray(caps.linkCaps.size());
+    env->SetIntArrayRegion(
+            linkCaps, 0, caps.linkCaps.size(), reinterpret_cast<jint*>(&caps.linkCaps[0]));
+
+    return env->NewObject(clazz, capsInit, numDemux, numRecord, numPlayback, numTsFilter,
+            numSectionFilter, numAudioFilter, numVideoFilter, numPesFilter, numPcrFilter,
+            numBytesInSectionFilter, filterCaps, linkCaps, bTimeFilter);
+}
+
 }  // namespace android
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -2448,11 +2485,11 @@
     return filterSettings;
 }
 
-static int copyData(JNIEnv *env, sp<Filter> filter, jbyteArray buffer, jint offset, int size) {
-    ALOGD("copyData, size=%d, offset=%d", size, offset);
+static jint copyData(JNIEnv *env, sp<Filter> filter, jbyteArray buffer, jlong offset, jlong size) {
+    ALOGD("copyData, size=%ld, offset=%ld", (long) size, (long) offset);
 
-    int available = filter->mFilterMQ->availableToRead();
-    ALOGD("copyData, available=%d", available);
+    jlong available = filter->mFilterMQ->availableToRead();
+    ALOGD("copyData, available=%ld", (long) available);
     size = std::min(size, available);
 
     jboolean isCopy;
@@ -2474,7 +2511,7 @@
     return size;
 }
 
-static int android_media_tv_Tuner_configure_filter(
+static jint android_media_tv_Tuner_configure_filter(
         JNIEnv *env, jobject filter, int type, int subtype, jobject settings) {
     ALOGD("configure filter type=%d, subtype=%d", type, subtype);
     sp<Filter> filterSp = getFilter(env, filter);
@@ -2485,9 +2522,14 @@
     }
     DemuxFilterSettings filterSettings = getFilterConfiguration(env, type, subtype, settings);
     Result res = iFilterSp->configure(filterSettings);
+
+    if (res != Result::SUCCESS) {
+        return (jint) res;
+    }
+
     MQDescriptorSync<uint8_t> filterMQDesc;
-    if (res == Result::SUCCESS && filterSp->mFilterMQ == NULL) {
-        Result getQueueDescResult = Result::UNKNOWN_ERROR;
+    Result getQueueDescResult = Result::UNKNOWN_ERROR;
+    if (filterSp->mFilterMQ == NULL) {
         iFilterSp->getQueueDesc(
                 [&](Result r, const MQDescriptorSync<uint8_t>& desc) {
                     filterMQDesc = desc;
@@ -2500,59 +2542,97 @@
                     filterSp->mFilterMQ->getEventFlagWord(), &(filterSp->mFilterMQEventFlag));
         }
     }
-    return (int)res;
+    return (jint) getQueueDescResult;
 }
 
-static int android_media_tv_Tuner_get_filter_id(JNIEnv*, jobject) {
-    return 0;
+static jint android_media_tv_Tuner_get_filter_id(JNIEnv* env, jobject filter) {
+    sp<IFilter> iFilterSp = getFilter(env, filter)->getIFilter();
+    if (iFilterSp == NULL) {
+        ALOGD("Failed to get filter ID: filter not found");
+        return (int) Result::INVALID_STATE;
+    }
+    Result res;
+    uint32_t id;
+    iFilterSp->getId(
+            [&](Result r, uint32_t filterId) {
+                res = r;
+                id = filterId;
+            });
+    if (res != Result::SUCCESS) {
+        return (jint) Constant::INVALID_FILTER_ID;
+    }
+    return (jint) id;
 }
 
-static int android_media_tv_Tuner_set_filter_data_source(JNIEnv*, jobject, jobject) {
-    return 0;
+static jint android_media_tv_Tuner_set_filter_data_source(
+        JNIEnv* env, jobject filter, jobject srcFilter) {
+    sp<IFilter> iFilterSp = getFilter(env, filter)->getIFilter();
+    if (iFilterSp == NULL) {
+        ALOGD("Failed to set filter data source: filter not found");
+        return (jint) Result::INVALID_STATE;
+    }
+    Result r;
+    if (srcFilter == NULL) {
+        r = iFilterSp->setDataSource(NULL);
+    } else {
+        sp<IFilter> srcSp = getFilter(env, srcFilter)->getIFilter();
+        if (iFilterSp == NULL) {
+            ALOGD("Failed to set filter data source: src filter not found");
+            return (jint) Result::INVALID_STATE;
+        }
+        r = iFilterSp->setDataSource(srcSp);
+    }
+    return (jint) r;
 }
 
-static int android_media_tv_Tuner_start_filter(JNIEnv *env, jobject filter) {
-    sp<IFilter> filterSp = getFilter(env, filter)->getIFilter();
-    if (filterSp == NULL) {
+static jint android_media_tv_Tuner_start_filter(JNIEnv *env, jobject filter) {
+    sp<IFilter> iFilterSp = getFilter(env, filter)->getIFilter();
+    if (iFilterSp == NULL) {
         ALOGD("Failed to start filter: filter not found");
-        return false;
+        return (jint) Result::INVALID_STATE;
     }
-    Result r = filterSp->start();
-    return (int) r;
+    Result r = iFilterSp->start();
+    return (jint) r;
 }
 
-static int android_media_tv_Tuner_stop_filter(JNIEnv *env, jobject filter) {
-    sp<IFilter> filterSp = getFilter(env, filter)->getIFilter();
-    if (filterSp == NULL) {
+static jint android_media_tv_Tuner_stop_filter(JNIEnv *env, jobject filter) {
+    sp<IFilter> iFilterSp = getFilter(env, filter)->getIFilter();
+    if (iFilterSp == NULL) {
         ALOGD("Failed to stop filter: filter not found");
-        return false;
+        return (jint) Result::INVALID_STATE;
     }
-    Result r = filterSp->stop();
-    return (int) r;
+    Result r = iFilterSp->stop();
+    return (jint) r;
 }
 
-static int android_media_tv_Tuner_flush_filter(JNIEnv *env, jobject filter) {
-    sp<IFilter> filterSp = getFilter(env, filter)->getIFilter();
-    if (filterSp == NULL) {
+static jint android_media_tv_Tuner_flush_filter(JNIEnv *env, jobject filter) {
+    sp<IFilter> iFilterSp = getFilter(env, filter)->getIFilter();
+    if (iFilterSp == NULL) {
         ALOGD("Failed to flush filter: filter not found");
-        return false;
+        return (jint) Result::INVALID_STATE;
     }
-    Result r = filterSp->flush();
-    return (int) r;
+    Result r = iFilterSp->flush();
+    return (jint) r;
 }
 
-static int android_media_tv_Tuner_read_filter_fmq(
+static jint android_media_tv_Tuner_read_filter_fmq(
         JNIEnv *env, jobject filter, jbyteArray buffer, jlong offset, jlong size) {
     sp<Filter> filterSp = getFilter(env, filter);
     if (filterSp == NULL) {
         ALOGD("Failed to read filter FMQ: filter not found");
-        return 0;
+        return (jint) Result::INVALID_STATE;
     }
     return copyData(env, filterSp, buffer, offset, size);
 }
 
-static int android_media_tv_Tuner_close_filter(JNIEnv*, jobject) {
-    return 0;
+static jint android_media_tv_Tuner_close_filter(JNIEnv *env, jobject filter) {
+    sp<IFilter> iFilterSp = getFilter(env, filter)->getIFilter();
+    if (iFilterSp == NULL) {
+        ALOGD("Failed to close filter: filter not found");
+        return (jint) Result::INVALID_STATE;
+    }
+    Result r = iFilterSp->close();
+    return (jint) r;
 }
 
 static sp<TimeFilter> getTimeFilter(JNIEnv *env, jobject filter) {
@@ -2649,7 +2729,7 @@
     return (int) r;
 }
 
-static jobject android_media_tv_Tuner_open_descrambler(JNIEnv *env, jobject thiz) {
+static jobject android_media_tv_Tuner_open_descrambler(JNIEnv *env, jobject thiz, jint) {
     sp<JTuner> tuner = getTuner(env, thiz);
     return tuner->openDescrambler();
 }
@@ -2660,8 +2740,8 @@
     if (descramblerSp == NULL) {
         return false;
     }
-    sp<IFilter> filterSp = getFilter(env, filter)->getIFilter();
-    Result result = descramblerSp->addPid(getDemuxPid((int)pidType, (int)pid), filterSp);
+    sp<IFilter> iFilterSp = getFilter(env, filter)->getIFilter();
+    Result result = descramblerSp->addPid(getDemuxPid((int)pidType, (int)pid), iFilterSp);
     return (int)result;
 }
 
@@ -2671,8 +2751,8 @@
     if (descramblerSp == NULL) {
         return false;
     }
-    sp<IFilter> filterSp = getFilter(env, filter)->getIFilter();
-    Result result = descramblerSp->removePid(getDemuxPid((int)pidType, (int)pid), filterSp);
+    sp<IFilter> iFilterSp = getFilter(env, filter)->getIFilter();
+    Result result = descramblerSp->removePid(getDemuxPid((int)pidType, (int)pid), iFilterSp);
     return (int)result;
 }
 
@@ -2696,27 +2776,28 @@
     return tuner->openDvr(DvrType::PLAYBACK, bufferSize);
 }
 
-static jobject android_media_tv_Tuner_get_demux_caps(JNIEnv*, jobject) {
-    return NULL;
+static jobject android_media_tv_Tuner_get_demux_caps(JNIEnv* env, jobject thiz) {
+    sp<JTuner> tuner = getTuner(env, thiz);
+    return tuner->getDemuxCaps();
 }
 
 static int android_media_tv_Tuner_attach_filter(JNIEnv *env, jobject dvr, jobject filter) {
     sp<IDvr> dvrSp = getDvr(env, dvr)->getIDvr();
-    sp<IFilter> filterSp = getFilter(env, filter)->getIFilter();
-    if (dvrSp == NULL || filterSp == NULL) {
+    sp<IFilter> iFilterSp = getFilter(env, filter)->getIFilter();
+    if (dvrSp == NULL || iFilterSp == NULL) {
         return false;
     }
-    Result result = dvrSp->attachFilter(filterSp);
+    Result result = dvrSp->attachFilter(iFilterSp);
     return (int) result;
 }
 
 static int android_media_tv_Tuner_detach_filter(JNIEnv *env, jobject dvr, jobject filter) {
     sp<IDvr> dvrSp = getDvr(env, dvr)->getIDvr();
-    sp<IFilter> filterSp = getFilter(env, filter)->getIFilter();
-    if (dvrSp == NULL || filterSp == NULL) {
+    sp<IFilter> iFilterSp = getFilter(env, filter)->getIFilter();
+    if (dvrSp == NULL || iFilterSp == NULL) {
         return false;
     }
-    Result result = dvrSp->detachFilter(filterSp);
+    Result result = dvrSp->detachFilter(iFilterSp);
     return (int) result;
 }
 
@@ -2961,7 +3042,7 @@
             (void *)android_media_tv_Tuner_open_lnb_by_handle },
     { "nativeOpenLnbByName", "(Ljava/lang/String;)Landroid/media/tv/tuner/Lnb;",
             (void *)android_media_tv_Tuner_open_lnb_by_name },
-    { "nativeOpenDescrambler", "()Landroid/media/tv/tuner/Descrambler;",
+    { "nativeOpenDescramblerByHandle", "(I)Landroid/media/tv/tuner/Descrambler;",
             (void *)android_media_tv_Tuner_open_descrambler },
     { "nativeOpenDvrRecorder", "(J)Landroid/media/tv/tuner/dvr/DvrRecorder;",
             (void *)android_media_tv_Tuner_open_dvr_recorder },
diff --git a/media/jni/android_media_tv_Tuner.h b/media/jni/android_media_tv_Tuner.h
index 5d2bba6..18aac28 100644
--- a/media/jni/android_media_tv_Tuner.h
+++ b/media/jni/android_media_tv_Tuner.h
@@ -185,6 +185,7 @@
     jobject openTimeFilter();
     jobject openDescrambler();
     jobject openDvr(DvrType type, jlong bufferSize);
+    jobject getDemuxCaps();
 
 protected:
     Result openDemux();
diff --git a/media/jni/audioeffect/android_media_AudioEffect.cpp b/media/jni/audioeffect/android_media_AudioEffect.cpp
index 007dd10..dbe7b4b 100644
--- a/media/jni/audioeffect/android_media_AudioEffect.cpp
+++ b/media/jni/audioeffect/android_media_AudioEffect.cpp
@@ -270,7 +270,7 @@
 android_media_AudioEffect_native_setup(JNIEnv *env, jobject thiz, jobject weak_this,
         jstring type, jstring uuid, jint priority, jint sessionId,
         jint deviceType, jstring deviceAddress,
-        jintArray jId, jobjectArray javadesc, jstring opPackageName)
+        jintArray jId, jobjectArray javadesc, jstring opPackageName, jboolean probe)
 {
     ALOGV("android_media_AudioEffect_native_setup");
     AudioEffectJniStorage* lpJniStorage = NULL;
@@ -345,12 +345,14 @@
                                     &lpJniStorage->mCallbackData,
                                     (audio_session_t) sessionId,
                                     AUDIO_IO_HANDLE_NONE,
-                                    device);
+                                    device,
+                                    probe);
     if (lpAudioEffect == 0) {
         ALOGE("Error creating AudioEffect");
         goto setup_failure;
     }
 
+
     lStatus = AudioEffectJni::translateNativeErrorToJava(lpAudioEffect->initCheck());
     if (lStatus != AUDIOEFFECT_SUCCESS && lStatus != AUDIOEFFECT_ERROR_ALREADY_EXISTS) {
         ALOGE("AudioEffect initCheck failed %d", lStatus);
@@ -387,7 +389,13 @@
     env->SetObjectArrayElement(javadesc, 0, jdesc);
     env->DeleteLocalRef(jdesc);
 
-    setAudioEffect(env, thiz, lpAudioEffect);
+    // In probe mode, release the native object and clear our strong reference
+    // to force all method calls from JAVA to be rejected.
+    if (probe) {
+        setAudioEffect(env, thiz, 0);
+    } else {
+        setAudioEffect(env, thiz, lpAudioEffect);
+    }
 
     env->SetLongField(thiz, fields.fidJniData, (jlong)lpJniStorage);
 
@@ -766,7 +774,7 @@
 // Dalvik VM type signatures
 static const JNINativeMethod gMethods[] = {
     {"native_init",          "()V",      (void *)android_media_AudioEffect_native_init},
-    {"native_setup",         "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;[I[Ljava/lang/Object;Ljava/lang/String;)I",
+    {"native_setup",         "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;[I[Ljava/lang/Object;Ljava/lang/String;Z)I",
                                          (void *)android_media_AudioEffect_native_setup},
     {"native_finalize",      "()V",      (void *)android_media_AudioEffect_native_finalize},
     {"native_release",       "()V",      (void *)android_media_AudioEffect_native_release},
diff --git a/media/jni/soundpool/StreamManager.cpp b/media/jni/soundpool/StreamManager.cpp
index 79e4d8a..c612218 100644
--- a/media/jni/soundpool/StreamManager.cpp
+++ b/media/jni/soundpool/StreamManager.cpp
@@ -340,8 +340,10 @@
     int64_t waitTimeNs = kWaitTimeBeforeCloseNs;
     std::unique_lock lock(mStreamManagerLock);
     while (!mQuit) {
-        mStreamManagerCondition.wait_for(
-                lock, std::chrono::duration<int64_t, std::nano>(waitTimeNs));
+        if (mRestartStreams.empty()) { // on thread start, mRestartStreams can be non-empty.
+            mStreamManagerCondition.wait_for(
+                    lock, std::chrono::duration<int64_t, std::nano>(waitTimeNs));
+        }
         ALOGV("%s(%d) awake", __func__, id);
 
         sanityCheckQueue_l();
diff --git a/media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothPacketDecoder.java b/media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothPacketDecoder.java
index ea95a01..c51c8fa 100644
--- a/media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothPacketDecoder.java
+++ b/media/packages/BluetoothMidiService/src/com/android/bluetoothmidiservice/BluetoothPacketDecoder.java
@@ -22,24 +22,41 @@
 import java.io.IOException;
 
 /**
- * This is an abstract base class that decodes a packet buffer and passes it to a
- * {@link android.media.midi.MidiReceiver}
+ * This is an abstract base class that decodes a BLE-MIDI packet
+ * buffer and passes it to a {@link android.media.midi.MidiReceiver}
  */
 public class BluetoothPacketDecoder extends PacketDecoder {
 
     private static final String TAG = "BluetoothPacketDecoder";
 
     private final byte[] mBuffer;
+    private int mBytesInBuffer;
     private MidiBtleTimeTracker mTimeTracker;
 
-    private final int TIMESTAMP_MASK_HIGH = 0x1F80;
-    private final int TIMESTAMP_MASK_LOW = 0x7F;
-    private final int HEADER_TIMESTAMP_MASK = 0x3F;
+    private int mLowTimestamp;
+    private long mNanoTimestamp;
+
+    private static final int TIMESTAMP_MASK_HIGH = 0x1F80; // top 7 bits
+    private static final int TIMESTAMP_MASK_LOW = 0x7F;    // bottom 7 bits
+    private static final int HEADER_TIMESTAMP_MASK = 0x3F; // bottom 6 bits
 
     public BluetoothPacketDecoder(int maxPacketSize) {
         mBuffer = new byte[maxPacketSize];
     }
 
+    private void flushOutput(MidiReceiver receiver) {
+        if (mBytesInBuffer > 0) {
+            try {
+                receiver.send(mBuffer, 0, mBytesInBuffer, mNanoTimestamp);
+            } catch (IOException e) {
+                // ???
+            }
+            mBytesInBuffer = 0;
+        }
+    }
+
+    // NOTE: this code allows running status across packets,
+    // although the specification does not allow that.
     @Override
     public void decodePacket(byte[] buffer, MidiReceiver receiver) {
         if (mTimeTracker == null) {
@@ -47,14 +64,11 @@
         }
 
         int length = buffer.length;
-
-        // NOTE his code allows running status across packets,
-        // although the specification does not allow that.
-
         if (length < 1) {
             Log.e(TAG, "empty packet");
             return;
         }
+
         byte header = buffer[0];
         if ((header & 0xC0) != 0x80) {
             Log.e(TAG, "packet does not start with header");
@@ -64,52 +78,46 @@
         // shift bits 0 - 5 to bits 7 - 12
         int highTimestamp = (header & HEADER_TIMESTAMP_MASK) << 7;
         boolean lastWasTimestamp = false;
-        int dataCount = 0;
         int previousLowTimestamp = 0;
-        long nanoTimestamp = 0;
-        int currentTimestamp = 0;
+        int currentTimestamp = highTimestamp | mLowTimestamp;
 
-        // iterate through the rest of the packet, separating MIDI data from timestamps
+        // Iterate through the rest of the packet, separating MIDI data from timestamps.
         for (int i = 1; i < buffer.length; i++) {
             byte b = buffer[i];
 
+            // Is this a timestamp byte?
             if ((b & 0x80) != 0 && !lastWasTimestamp) {
                 lastWasTimestamp = true;
-                int lowTimestamp = b & TIMESTAMP_MASK_LOW;
-                if (lowTimestamp < previousLowTimestamp) {
+                mLowTimestamp = b & TIMESTAMP_MASK_LOW;
+
+                // If the low timestamp byte wraps within the packet then
+                // increment the high timestamp byte.
+                if (mLowTimestamp < previousLowTimestamp) {
                     highTimestamp = (highTimestamp + 0x0080) & TIMESTAMP_MASK_HIGH;
                 }
-                previousLowTimestamp = lowTimestamp;
+                previousLowTimestamp = mLowTimestamp;
 
-                int newTimestamp = highTimestamp | lowTimestamp;
+                // If the timestamp advances then send any pending data.
+                int newTimestamp = highTimestamp | mLowTimestamp;
                 if (newTimestamp != currentTimestamp) {
-                    if (dataCount > 0) {
-                        // send previous message separately since it has a different timestamp
-                        try {
-                            receiver.send(mBuffer, 0, dataCount, nanoTimestamp);
-                        } catch (IOException e) {
-                            // ???
-                        }
-                        dataCount = 0;
-                    }
+                    // Send previous message separately since it has a different timestamp.
+                    flushOutput(receiver);
                     currentTimestamp = newTimestamp;
                 }
 
-                // calculate nanoTimestamp
+                // Calculate MIDI nanosecond timestamp from BLE timestamp.
                 long now = System.nanoTime();
-                nanoTimestamp = mTimeTracker.convertTimestampToNanotime(currentTimestamp, now);
+                mNanoTimestamp = mTimeTracker.convertTimestampToNanotime(currentTimestamp, now);
             } else {
                 lastWasTimestamp = false;
-                mBuffer[dataCount++] = b;
+                // Flush if full before adding more data.
+                if (mBytesInBuffer == mBuffer.length) {
+                    flushOutput(receiver);
+                }
+                mBuffer[mBytesInBuffer++] = b;
             }
         }
 
-        if (dataCount > 0) {
-            try {
-                receiver.send(mBuffer, 0, dataCount, nanoTimestamp);
-            } catch (IOException e) {
-                // ???
-            }
-        }
+        flushOutput(receiver);
     }
 }
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java
index 2522095..daeb731 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java
@@ -2210,14 +2210,14 @@
     }
 
     public static Size getPreviewSizeBound(WindowManager windowManager, Size bound) {
-        Size windowSize = windowManager.getCurrentWindowMetrics().getSize();
+        Rect windowBounds = windowManager.getCurrentWindowMetrics().getBounds();
 
-        int width = windowSize.getWidth();
-        int height = windowSize.getHeight();
+        int width = windowBounds.width();
+        int height = windowBounds.height();
 
         if (height > width) {
             height = width;
-            width = windowSize.getHeight();
+            width = windowBounds.height();
         }
 
         if (bound.getWidth() <= width &&
diff --git a/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java b/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java
index a97baaf..77e8f97 100644
--- a/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java
+++ b/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java
@@ -204,7 +204,7 @@
         addRouterCallback(new MediaRouter2.RouteCallback() {});
         addTransferCallback(new MediaRouter2.TransferCallback() {
             @Override
-            public void onTransferred(MediaRouter2.RoutingController oldController,
+            public void onTransfer(MediaRouter2.RoutingController oldController,
                     MediaRouter2.RoutingController newController) {
                 if (newController == null) {
                     return;
diff --git a/mms/java/android/telephony/MmsManager.java b/mms/java/android/telephony/MmsManager.java
index f07cd5e..6e47741 100644
--- a/mms/java/android/telephony/MmsManager.java
+++ b/mms/java/android/telephony/MmsManager.java
@@ -32,6 +32,7 @@
 /**
  * Manages MMS operations such as sending multimedia messages.
  * Get this object by calling Context#getSystemService(Context#MMS_SERVICE).
+ * @hide
  */
 @SystemService(Context.MMS_SERVICE)
 public class MmsManager {
diff --git a/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeApp.java b/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeApp.java
index d4eb2a9..a2da23e 100644
--- a/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeApp.java
+++ b/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeApp.java
@@ -28,11 +28,11 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
+import android.graphics.Rect;
 import android.hardware.display.DisplayManager;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
-import android.util.Size;
 import android.util.Slog;
 import android.view.Display;
 import android.view.ViewGroup;
@@ -134,8 +134,8 @@
         }
         lp.width = ViewGroup.LayoutParams.MATCH_PARENT;
         lp.height = ViewGroup.LayoutParams.MATCH_PARENT;
-        Size maxWindowSize = wm.getMaximumWindowMetrics().getSize();
-        int maxSize = Math.max(maxWindowSize.getWidth(), maxWindowSize.getHeight());
+        Rect maxWindowBounds = wm.getMaximumWindowMetrics().getBounds();
+        int maxSize = Math.max(maxWindowBounds.width(), maxWindowBounds.height());
         maxSize *= 2;
         lp.x = maxSize;
         lp.y = maxSize;
diff --git a/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeBackgroundService.java b/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeBackgroundService.java
index df00eee..e2120f8 100644
--- a/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeBackgroundService.java
+++ b/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeBackgroundService.java
@@ -19,22 +19,22 @@
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
 
-import java.util.ArrayList;
-import java.util.Random;
-
 import android.app.Dialog;
 import android.app.Service;
 import android.content.Context;
 import android.content.Intent;
+import android.graphics.Rect;
 import android.hardware.display.DisplayManager;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
-import android.util.Size;
 import android.view.Display;
 import android.view.ViewGroup;
 import android.view.WindowManager;
 
+import java.util.ArrayList;
+import java.util.Random;
+
 public class FakeBackgroundService extends Service {
     final ArrayList<int[]> mAllocs = new ArrayList<int[]>();
 
@@ -99,8 +99,8 @@
         // Create an instance of WindowManager that is adjusted to the area of the display dedicated
         // for windows with type TYPE_APPLICATION_OVERLAY.
         final WindowManager wm = windowContext.getSystemService(WindowManager.class);
-        Size maxWindowSize = wm.getMaximumWindowMetrics().getSize();
-        int maxSize = Math.max(maxWindowSize.getWidth(), maxWindowSize.getHeight());
+        Rect maxWindowBounds = wm.getMaximumWindowMetrics().getBounds();
+        int maxSize = Math.max(maxWindowBounds.width(), maxWindowBounds.height());
         maxSize *= 2;
         lp.x = maxSize;
         lp.y = maxSize;
diff --git a/packages/PackageInstaller/res/values-ar/strings.xml b/packages/PackageInstaller/res/values-ar/strings.xml
index 2392c96..87f89ce 100644
--- a/packages/PackageInstaller/res/values-ar/strings.xml
+++ b/packages/PackageInstaller/res/values-ar/strings.xml
@@ -24,8 +24,8 @@
     <string name="installing_app" msgid="1165095864863849422">"جارٍ تثبيت <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>…"</string>
     <string name="install_done" msgid="5987363587661783896">"تم تثبيت التطبيق."</string>
     <string name="install_confirm_question" msgid="8176284075816604590">"هل تريد تثبيت هذا التطبيق؟"</string>
-    <string name="install_confirm_question_update" msgid="7942235418781274635">"هل تريد تثبيت إعادة تحميل لهذا التطبيق الحالي؟ لن تفقد بياناتك الحالية."</string>
-    <string name="install_confirm_question_update_system" msgid="4713001702777910263">"هل تريد تثبيت إعادة تحميل لهذا التطبيق المضمَّن؟ لن تفقد بياناتك الحالية."</string>
+    <string name="install_confirm_question_update" msgid="7942235418781274635">"هل تريد تثبيت تحديث لهذا التطبيق الحالي؟ لن تفقد بياناتك الحالية."</string>
+    <string name="install_confirm_question_update_system" msgid="4713001702777910263">"هل تريد تثبيت تحديث لهذا التطبيق المضمَّن؟ لن تفقد بياناتك الحالية."</string>
     <string name="install_failed" msgid="5777824004474125469">"التطبيق ليس مثبتًا."</string>
     <string name="install_failed_blocked" msgid="8512284352994752094">"تم حظر تثبيت الحزمة."</string>
     <string name="install_failed_conflict" msgid="3493184212162521426">"لم يتم تثبيت التطبيق لأن حزمة التثبيت تتعارض مع حزمة حالية."</string>
diff --git a/packages/PackageInstaller/res/values-eu/strings.xml b/packages/PackageInstaller/res/values-eu/strings.xml
index 2011013..65e75cd 100644
--- a/packages/PackageInstaller/res/values-eu/strings.xml
+++ b/packages/PackageInstaller/res/values-eu/strings.xml
@@ -83,9 +83,9 @@
     <string name="untrusted_external_source_warning" product="tablet" msgid="6539403649459942547">"Segurtasuna bermatzeko, ezin dira instalatu iturburu honetako aplikazio ezezagunak tableta honetan."</string>
     <string name="untrusted_external_source_warning" product="tv" msgid="1206648674551321364">"Segurtasuna bermatzeko, ezin dira instalatu iturburu honetako aplikazio ezezagunak telebista honetan."</string>
     <string name="untrusted_external_source_warning" product="default" msgid="7279739265754475165">"Segurtasuna bermatzeko, ezin dira instalatu iturburu honetako aplikazio ezezagunak telefono honetan."</string>
-    <string name="anonymous_source_warning" product="default" msgid="2784902545920822500">"Telefonoak eta datu pertsonalek aplikazio ezezagunen erasoak jaso ditzakete. Aplikazio hau instalatzen baduzu, onartu egingo duzu zu zarela hura erabiltzeagatik telefonoak jasan ditzakeen kalteen edo datu-galeren erantzulea."</string>
-    <string name="anonymous_source_warning" product="tablet" msgid="3939101621438855516">"Tabletak eta datu pertsonalek aplikazio ezezagunen erasoak jaso ditzakete. Aplikazio hau instalatzen baduzu, onartu egingo duzu zu zarela hura erabiltzeagatik tabletak jasan ditzakeen kalteen edo datu-galeren erantzulea."</string>
-    <string name="anonymous_source_warning" product="tv" msgid="5599483539528168566">"Telebistak eta datu pertsonalek aplikazio ezezagunen erasoak jaso ditzakete. Aplikazio hau instalatzen baduzu, onartu egingo duzu zu zarela hura erabiltzeagatik telebistak jasan ditzakeen kalteen edo datu-galeren erantzulea."</string>
+    <string name="anonymous_source_warning" product="default" msgid="2784902545920822500">"Telefonoak eta datu pertsonalek aplikazio ezezagunen erasoak jaso ditzakete. Aplikazio hau instalatzen baduzu, onartu egingo duzu zeu zarela hura erabiltzeagatik telefonoak jasan ditzakeen kalteen edo datu-galeren erantzulea."</string>
+    <string name="anonymous_source_warning" product="tablet" msgid="3939101621438855516">"Tabletak eta datu pertsonalek aplikazio ezezagunen erasoak jaso ditzakete. Aplikazio hau instalatzen baduzu, onartu egingo duzu zeu zarela hura erabiltzeagatik tabletak jasan ditzakeen kalteen edo datu-galeren erantzulea."</string>
+    <string name="anonymous_source_warning" product="tv" msgid="5599483539528168566">"Telebistak eta datu pertsonalek aplikazio ezezagunen erasoak jaso ditzakete. Aplikazio hau instalatzen baduzu, onartu egingo duzu zeu zarela hura erabiltzeagatik telebistak jasan ditzakeen kalteen edo datu-galeren erantzulea."</string>
     <string name="anonymous_source_continue" msgid="4375745439457209366">"Egin aurrera"</string>
     <string name="external_sources_settings" msgid="4046964413071713807">"Ezarpenak"</string>
     <string name="wear_app_channel" msgid="1960809674709107850">"Wear aplikazioak instalatzea/desinstalatzea"</string>
diff --git a/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstalledNotificationUtils.java b/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstalledNotificationUtils.java
index 2ebbefa..caf9718 100644
--- a/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstalledNotificationUtils.java
+++ b/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstalledNotificationUtils.java
@@ -219,7 +219,7 @@
         channel.enableVibration(false);
         channel.setSound(null, null);
         channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
-        channel.setBlockableSystem(true);
+        channel.setBlockable(true);
 
         mNotificationManager.createNotificationChannel(channel);
     }
diff --git a/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java b/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
index a2fa461..a95677d 100644
--- a/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
+++ b/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
@@ -406,6 +406,10 @@
 
         mOk = mAlert.getButton(DialogInterface.BUTTON_POSITIVE);
         mOk.setEnabled(false);
+
+        if (!mOk.isInTouchMode()) {
+            mAlert.getButton(DialogInterface.BUTTON_NEGATIVE).requestFocus();
+        }
     }
 
     /**
diff --git a/packages/SettingsLib/res/drawable/ic_help.xml b/packages/SettingsLib/res/drawable/ic_help.xml
new file mode 100644
index 0000000..73681d3
--- /dev/null
+++ b/packages/SettingsLib/res/drawable/ic_help.xml
@@ -0,0 +1,25 @@
+<!--
+    Copyright (C) 2020 The Android Open Source Project
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?android:attr/colorControlNormal">
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M11,18h2v-2h-2V18zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8s8,3.59 8,8S16.41,20 12,20zM12,6c-2.21,0 -4,1.79 -4,4h2c0,-1.1 0.9,-2 2,-2s2,0.9 2,2c0,2 -3,1.75 -3,5h2c0,-2.25 3,-2.5 3,-5C16,7.79 14.21,6 12,6z"/>
+</vector>
diff --git a/packages/SettingsLib/res/layout/preference_access_point.xml b/packages/SettingsLib/res/layout/preference_access_point.xml
index 472a6e3..fecafa8 100644
--- a/packages/SettingsLib/res/layout/preference_access_point.xml
+++ b/packages/SettingsLib/res/layout/preference_access_point.xml
@@ -93,4 +93,14 @@
         android:gravity="center"
         android:orientation="vertical" />
 
+    <ImageButton
+        android:id="@+id/icon_button"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:minWidth="64dp"
+        android:minHeight="@dimen/min_tap_target_size"
+        android:layout_gravity="center"
+        android:background="?android:attr/selectableItemBackground"
+        android:visibility="gone">
+    </ImageButton>
 </LinearLayout>
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index 649fcb1..88f996a 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-adres en -poort"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Skandeer QR-kode"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Bind toestel oor Wi-Fi saam deur \'n QR-kode te skandeer"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Kortpad na foutverslag"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Wys \'n knoppie in die kragkieslys om \'n foutverslag te doen"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalie (rooi-groen)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalie (blou-geel)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Kleurregstelling"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Kleurregstelling help mense met kleurblindheid om akkurater kleure te sien"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Geneutraliseer deur <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Ongeveer <xliff:g id="TIME_REMAINING">%1$s</xliff:g> oor"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Sal waarskynlik hou tot omtrent <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Sal waarskynlik hou tot omtrent <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Tot <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Verleng batterylewe verby <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Minder as <xliff:g id="THRESHOLD">%1$s</xliff:g> oor"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Minder as <xliff:g id="THRESHOLD">%1$s</xliff:g> oor (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Meer as <xliff:g id="TIME_REMAINING">%1$s</xliff:g> oor (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Foonluidspreker"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Kan nie koppel nie. Skakel toestel af en weer aan"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Bedrade oudiotoestel"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index f55b30e..a402901 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"የአይፒ አድራሻ እና ወደብ"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR ኮድን ይቃኙ"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"የQR ኮድ በመጠቀም መሣሪያን በመቃኘት በWi-Fi ላይ ያጣምሩ"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb፣ ማረም፣ ግንባታ"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"የሳንካ ሪፖርት አቋራጭ"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"የሳንካ ሪፖርት ለመውሰድ በሃይል ምናሌ ውስጥ አዝራር አሳይ"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"ፕሮታኖማሊ (ቀይ-አረንጓዴ)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"ትራይታኖማሊ (ሰማያዊ-ቢጫ)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"የቀለም ማስተካከያ"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"ቀለም ማስተካከያ ቀለም ማየት የማይችሉ ሰዎች ተጨማሪ ትክክለኛ ቀለማትን እንዲመለከቱ ያስችላቸዋል"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"በ<xliff:g id="TITLE">%1$s</xliff:g> ተሽሯል"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ገደማ ቀርቷል"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"እስከ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) ገደማ ድረስ መቆየት አለበት"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"እስከ <xliff:g id="TIME">%1$s</xliff:g> ገደማ መቆየት አለበት"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"እስከ <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"የባትሪ ዕድሜን ከ <xliff:g id="TIME">%1$s</xliff:g> በላይ አራዝም"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"ከ<xliff:g id="THRESHOLD">%1$s</xliff:g> ያነሰ ይቀራል"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"ከ<xliff:g id="THRESHOLD">%1$s</xliff:g> ያነሰ ይቀራል (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"ከ<xliff:g id="TIME_REMAINING">%1$s</xliff:g> በላይ ይቀራል (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"የስልክ ድምጽ ማጉያ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"መገናኘት ላይ ችግር። መሳሪያውን ያጥፉት እና እንደገና ያብሩት"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ባለገመድ የኦዲዮ መሣሪያ"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index 1798e45..7241c30 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"‏عنوان IP والمنفذ"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"المسح الضوئي لرمز الاستجابة السريعة"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"‏إقران الجهاز من خلال شبكة Wi‑Fi عن طريق المسح الضوئي لرمز استجابة سريعة"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"‏adb، تصحيح الأخطاء، مطور برامج"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"اختصار تقرير الأخطاء"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"عرض زر في قائمة خيارات التشغيل لإعداد تقرير بالأخطاء"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"غطش الأحمر (الأحمر والأخضر)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"غمش الأزرق (الأزرق والأصفر)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"تصحيح الألوان"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"تساعد ميزة تصحيح الألوان المصابين بعمى الألوان على رؤية الألوان بدقة أكبر"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"تم الاستبدال بـ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"يتبقى <xliff:g id="TIME_REMAINING">%1$s</xliff:g> تقريبًا"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"قد تكفي طاقة البطارية حتى حوالي الساعة <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"قد تكفي طاقة البطارية حتى حوالي الساعة <xliff:g id="TIME">%1$s</xliff:g>."</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"حتى <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"إطالة عمر البطارية لما بعد <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"يتبقى أقل من <xliff:g id="THRESHOLD">%1$s</xliff:g>."</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"يتبقى أقل من <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"يتبقى أكثر من <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
@@ -512,4 +516,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"مكبر صوت الهاتف"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"حدثت مشكلة أثناء الاتصال. يُرجى إيقاف الجهاز ثم إعادة تشغيله."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"جهاز سماعي سلكي"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-as/strings.xml b/packages/SettingsLib/res/values-as/strings.xml
index 48af12a..a2123d3 100644
--- a/packages/SettingsLib/res/values-as/strings.xml
+++ b/packages/SettingsLib/res/values-as/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"আইপি ঠিকনা &amp; প’ৰ্ট"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"কিউআৰ ক’ড স্কেন কৰক"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"এটা কিউআৰ ক’ড স্কেন কৰি ৱাই-ফাইৰে ডিভাইচ পেয়াৰ কৰক"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, ডিবাগ, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"বাগ ৰিপৰ্টৰ শ্ৱৰ্টকাট"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"পাৱাৰ মেনুত বাগ প্ৰতিবেদন গ্ৰহণ কৰিবলৈ এটা বুটাম দেখুৱাওক"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"প্ৰ’টানোমালি (ৰঙা-সেউজীয়া)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"ট্ৰাইটান\'মেলী (নীলা-হালধীয়া)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"ৰং শুধৰণী"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"ৰং শুধৰণি কৰা কার্যই বর্ণান্ধ লোকসকলক ৰংবোৰ অধিক সঠিককৈ দেখাত সহায় কৰে"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g>ৰ দ্বাৰা অগ্ৰাহ্য কৰা হৈছে"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"প্রায় <xliff:g id="TIME_REMAINING">%1$s</xliff:g> বাকী আছে"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"বেটাৰি আনুমানিকভাৱে <xliff:g id="TIME">%1$s</xliff:g> লৈকে চলিব (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"বেটাৰি আনুমানিকভাৱে <xliff:g id="TIME">%1$s</xliff:g> লৈকে চলিব"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> পৰ্যন্ত"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"বেটাৰিৰ জীৱনকাল <xliff:g id="TIME">%1$s</xliff:g>তকৈ বৃদ্ধি কৰক"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g>তকৈও কম সময় বাকী আছে"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g>তকৈও কম সময় বাকী আছে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>তকৈও বেছি সময় বাকী আছে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ফ’নৰ স্পীকাৰ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"সংযোগ হোৱাত সমস্যা হৈছে। ডিভাইচটো অফ কৰি পুনৰ অন কৰক"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"তাঁৰযুক্ত অডিঅ’ ডিভাইচ"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml
index 29624ab..53fe7a8 100644
--- a/packages/SettingsLib/res/values-az/strings.xml
+++ b/packages/SettingsLib/res/values-az/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP ünvanı və Port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR kodu skanlayın"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR Kodu skanlamaqla cihazı Wi‑Fi vasitəsilə cütləşdirin"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Baq raportu qısa yolu"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Baq raportunu götürmək üçün qidalanma menyusunda düyməni göstərin"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaliya (qırmızı-yaşıl)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaliya (göy-sarı)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Rəng düzəlişi"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Rəng korreksiyası rəng korluğu olan insanlara rəngləri daha dəqiq görməkdə kömək edir"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> tərəfindən qəbul edilmir"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Təxminən <xliff:g id="TIME_REMAINING">%1$s</xliff:g> qalıb"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Təxminən <xliff:g id="TIME">%1$s</xliff:g> olana qədər davam edəcək (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Təxminən <xliff:g id="TIME">%1$s</xliff:g> olana qədər davam edəcək"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> olana qədər"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Batareya istifadəsini <xliff:g id="TIME">%1$s</xliff:g> vaxtından etibarən artırın"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Qalan vaxt <xliff:g id="THRESHOLD">%1$s</xliff:g> və daha azdır"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Qalan vaxt <xliff:g id="THRESHOLD">%1$s</xliff:g> və daha azdır (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Qalan vaxt <xliff:g id="TIME_REMAINING">%1$s</xliff:g> və daha çoxdur (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefon dinamiki"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Qoşulmaqla bağlı problem. Cihazı deaktiv edin, sonra yenidən aktiv edin"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Simli audio cihaz"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index 2d28006..ac0c254 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP adresa i port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Skeniraj QR kôd"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Uparite uređaj pomoću Wi‑Fi mreže ili tako što ćete skenirati QR kôd"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, otklanjanje grešaka, programer"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Prečica za izveštaj o greškama"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Prikaži dugme u meniju napajanja za pravljenje izveštaja o greškama"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalija (crveno-zeleno)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalija (plavo-žuto)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Korekcija boja"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Korekcija boja pomaže ljudima koji su daltonisti da preciznije vide boje"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Zamenjuje ga <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g>–<xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Preostalo je oko <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Trajaće približno do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Trajaće približno do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Produži trajanje baterije u odnosu na period od <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Preostalo je više od <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -509,4 +513,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Zvučnik telefona"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem pri povezivanju. Isključite uređaj, pa ga ponovo uključite"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Žičani audio uređaj"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml
index bd6fdf3..49584eb 100644
--- a/packages/SettingsLib/res/values-be/strings.xml
+++ b/packages/SettingsLib/res/values-be/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-адрас і порт"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Сканіраваць QR-код"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Спалучыць прыладу праз Wi‑Fi шляхам сканіравання QR-кода"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, адладка, распрацоўшчык"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Ярлык для справаздачы пра памылкі"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Паказаць кнопку для прыняцця справаздачы пра памылку ў меню сілкавання"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Пратанамалія (чырвоны-зялёны)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Трытанамалія (сіні-жоўты)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Карэкцыя колеру"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Карэкцыя колеру дазваляе людзям з парушэннямі колеравага зроку лепш распазнаваць выявы на экране"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Перавызначаны <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Зараду хопіць прыблізна на <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Зараду (<xliff:g id="LEVEL">%2$s</xliff:g>) хопіць прыблізна да <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Зараду хопіць прыблізна да <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Да <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Падоўжыце тэрмін службы акумулятара пасля <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Засталося менш за <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Узровень зараду батарэі: <xliff:g id="LEVEL">%2$s</xliff:g> (хопіць менш чым на <xliff:g id="THRESHOLD">%1$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Узровень зараду батарэі: <xliff:g id="LEVEL">%2$s</xliff:g> (хопіць больш чым на <xliff:g id="TIME_REMAINING">%1$s</xliff:g>)"</string>
@@ -510,4 +514,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Дынамік тэлефона"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Праблема з падключэннем. Выключыце і зноў уключыце прыладу"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Правадная аўдыяпрылада"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index 3d27f63..20145b0 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP адрес и порт"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Сканиране на QR код"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Сдвояване на устройството през Wi‑Fi чрез сканиране на QR код"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, отстраняване на грешки, програмиране"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Пряк път за сигнал за програмна грешка"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"В менюто за захранване да се показва бутон за подаване на сигнал за програмна грешка"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Протаномалия (червено – зелено)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Тританомалия (синьо – жълто)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Корекция на цветове"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Коригирането на цветовете помага на хората с цветна слепота да виждат по-точни цветове"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Заменено от „<xliff:g id="TITLE">%1$s</xliff:g>“"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Още около <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Следва да издържи приблизително до <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Следва да издържи до около <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"До <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Удължаване на живота на батерията след <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Остава/т по-малко от <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Остава/т по-малко от <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Остава/т повече от <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Високоговорител на телефона"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"При свързването възникна проблем. Изключете устройството и го включете отново"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Аудиоустройство с кабел"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml
index c06100e..a6f1177 100644
--- a/packages/SettingsLib/res/values-bn/strings.xml
+++ b/packages/SettingsLib/res/values-bn/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP অ্যাড্রেস ও পোর্ট"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR কোড স্ক্যান করুন"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR কোড স্ক্যান করে ওয়াই-ফাই ব্যবহার করে ডিভাইস যোগ করুন"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"ত্রুটি প্রতিবেদনের শর্টকাট"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"সমস্যার তথ্য ক্যাপচার করতে পাওয়ার মেনুতে একটি বোতাম দেখান"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"প্রোটানোম্যালি (লাল-সবুজ)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"ট্রিট্যানোম্যালি (নীল-হলুদ)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"রঙ সংশোধন"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"রঙ অ্যাডজাস্ট করার সেটিংস, বর্ণান্ধতা আছে এমন ব্যক্তিদের আরও সঠিকভাবে রঙ দেখতে সাহায্য করে"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> এর দ্বারা ওভাররাইড করা হয়েছে"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"আর আনুমানিক <xliff:g id="TIME_REMAINING">%1$s</xliff:g> চলবে"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"আনুমানিক <xliff:g id="TIME">%1$s</xliff:g> পর্যন্ত চলবে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"আনুমানিক <xliff:g id="TIME">%1$s</xliff:g> পর্যন্ত চলবে"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> পর্যন্ত"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"<xliff:g id="TIME">%1$s</xliff:g>-এর পর পর্যন্ত ব্যাটারির ব্যবহার চালিয়ে যান"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> এর থেকেও কম বাকি আছে"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"আর <xliff:g id="THRESHOLD">%1$s</xliff:g>-এর কম চার্জ বাকি আছে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"আরও <xliff:g id="TIME_REMAINING">%1$s</xliff:g>-এর বেশি চলবে (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ফেনের স্পিকার"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"কানেক্ট করতে সমস্যা হচ্ছে। ডিভাইস বন্ধ করে আবার চালু করুন"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ওয়্যার অডিও ডিভাইস"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml
index e4c6e0c..5a317ee 100644
--- a/packages/SettingsLib/res/values-bs/strings.xml
+++ b/packages/SettingsLib/res/values-bs/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP adresa i priključak"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Skenirajte QR kôd"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Uparite uređaj putem WiFi-ja skeniranjem QR koda"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, otklanjanje grešaka, programer"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Prečica za izvještaj o greškama"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Prikaz dugmeta za prijavu grešaka u meniju napajanja"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalija (crveno-zeleno)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalija (plavo-žuto)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Ispravka boje"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Ispravka boje pomaže daltonistima da preciznije vide boje"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Zamjenjuje <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Preostalo je još oko <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Trebala bi trajati do otprilike <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Trebala bi trajati otprilike do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Produži trajanje baterije nakon <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Preostalo je više od <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -509,4 +513,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Zvučnik telefona"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Došlo je do problema prilikom povezivanja. Isključite, pa ponovo uključite uređaj"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Žičani audio uređaj"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index 1a6e078..333f8e9 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Adreça IP i port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Escaneja un codi QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Vincula el dispositiu per Wi‑Fi escanejant un codi QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, depurar, desenvolupador"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Drecera per a informe d\'errors"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Mostra un botó al menú d\'engegada per crear un informe d\'errors"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalia (vermell-verd)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalia (blau-groc)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Correcció del color"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"La correcció del color ajuda les persones daltòniques a veure colors més precisos"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"S\'ha substituït per <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g>: <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Temps restant aproximat: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Hauria de durar aproximadament fins a les <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Hauria de durar aproximadament fins a les <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Fins a les <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Allarga la durada de la bateria després de les <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Temps restant inferior a <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Temps restant inferior a <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Temps restant superior a <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altaveu del telèfon"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Hi ha hagut un problema amb la connexió. Desactiva el dispositiu i torna\'l a activar."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositiu d\'àudio amb cable"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index cdec461..453bb87 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP adresa a port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Naskenování QR kódu"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Párovat zařízení přes Wi-Fi naskenováním QR kódu"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, ladění, vývoj"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Zástupce hlášení chyb"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Zobrazit v hlavní nabídce tlačítko k vygenerování chybového hlášení"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomálie (červená a zelená)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomálie (modrá a žlutá)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Korekce barev"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Korekce barev pomáhá barvoslepým lidem vidět přesnější barvy"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Přepsáno nastavením <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Zbývá asi <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Vydrží asi do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Vydrží asi do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Prodloužit výdrž baterie po <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Zbývá méně než <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Zbývá méně než <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Zbývá více než <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -510,4 +514,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Reproduktor telefonu"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problém s připojením. Vypněte zařízení a znovu jej zapněte"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Kabelové audiozařízení"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index d88c149..7206e38 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-adresse og port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Scan QR-kode"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Dan par med en enhed via Wi-Fi ved at scanne en QR-kode"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, fejlfinding, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Genvej til fejlrapportering"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Vis en knap til oprettelse af fejlrapporter i afbrydermenuen"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanopi (rød-grøn)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanopi (blå-gul)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Korriger farver"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Farvekorrigering gør det nemmere for farveblinde at se farver mere nøjagtigt"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Tilsidesat af <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Ca. <xliff:g id="TIME_REMAINING">%1$s</xliff:g> tilbage"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Bør holde indtil ca. <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Bør holde indtil ca. <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Indtil <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Forlæng batteritiden til efter <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Der er mindre end <xliff:g id="THRESHOLD">%1$s</xliff:g> tilbage"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Der er mindre end <xliff:g id="THRESHOLD">%1$s</xliff:g> tilbage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Der er mere end <xliff:g id="TIME_REMAINING">%1$s</xliff:g> tilbage (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefonens højttaler"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Der kunne ikke oprettes forbindelse. Sluk og tænd enheden"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Lydenhed med ledning"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml
index 721163b..f9cf552 100644
--- a/packages/SettingsLib/res/values-de/strings.xml
+++ b/packages/SettingsLib/res/values-de/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-Adresse &amp; Port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR-Code scannen"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Scanne einen QR-Code, um ein Gerät über WLAN zu koppeln"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"ADB, Debug, Dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Verknüpfung zu Fehlerbericht"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Im Menü \"Ein/Aus\" wird eine Option zum Erstellen eines Fehlerberichts angezeigt"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalie (Rot-Grün-Sehschwäche)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalie (Blau-Gelb-Sehschwäche)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Farbkorrektur"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Die Farbkorrektur hilft farbenblinden Menschen, Farben besser zu erkennen"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Außer Kraft gesetzt von \"<xliff:g id="TITLE">%1$s</xliff:g>\""</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Noch etwa <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Sollte etwa bis <xliff:g id="TIME">%1$s</xliff:g> reichen (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Sollte etwa bis <xliff:g id="TIME">%1$s</xliff:g> reichen"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Bis <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Akkulaufzeit über <xliff:g id="TIME">%1$s</xliff:g> hinaus verlängern"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Weniger als <xliff:g id="THRESHOLD">%1$s</xliff:g> verbleibend"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Weniger als <xliff:g id="THRESHOLD">%1$s</xliff:g> verbleibend (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Mehr als <xliff:g id="TIME_REMAINING">%1$s</xliff:g> verbleibend (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Smartphone-Lautsprecher"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Verbindung kann nicht hergestellt werden. Schalte das Gerät aus &amp; und wieder ein."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Netzbetriebenes Audiogerät"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index 07f73c3..07d161d 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Διεύθυνση IP και θύρα"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Σάρωση κωδικού QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Σύζευξη συσκευής μέσω Wi‑Fi με τη σάρωση ενός κωδικού QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, εντοπισμός σφαλμάτων, προγραμματιστής"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Συντόμευση αναφοράς σφαλμάτων"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Εμφάνιση κουμπιού στο μενού ενεργοποίησης για τη λήψη αναφοράς σφαλμάτων"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Πρωτανοπία (κόκκινο-πράσινο)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Τριτανοπία (μπλε-κίτρινο)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Διόρθωση χρωμάτων"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Η διόρθωση χρωμάτων βοηθάει τα άτομα με αχρωματοψία να βλέπουν τα χρώματα με μεγαλύτερη ακρίβεια"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Αντικαταστάθηκε από <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Απομένει/ουν περίπου <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Θα διαρκέσει μέχρι τις <xliff:g id="TIME">%1$s</xliff:g> περίπου (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Θα διαρκέσει μέχρι τις <xliff:g id="TIME">%1$s</xliff:g> περίπου"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Έως τις <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Επέκταση διάρκεια ζωής μπαταρίας πέρα από <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Απομένει/ουν λιγότερo/α από <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Απομένει/ουν λιγότερo/α από <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Απομένουν περισσότερα/ες από <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Ηχείο τηλεφώνου"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Πρόβλημα κατά τη σύνδεση. Απενεργοποιήστε τη συσκευή και ενεργοποιήστε την ξανά"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Ενσύρματη συσκευή ήχου"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index 79cf4df..dae998f 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP address &amp; port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Scan QR code"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Pair device over Wi‑Fi by scanning a QR code"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Bug report shortcut"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Show a button in the power menu for taking a bug report"</string>
@@ -416,7 +418,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaly (red-green)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaly (blue-yellow)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Colour correction"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Colour correction helps people with colour blindness see more accurate colours"</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="1284746051652993443">"Colour correction allows you to adjust how colours are displayed on your device"</string>
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Overridden by <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"About <xliff:g id="TIME_REMAINING">%1$s</xliff:g> left"</string>
@@ -430,7 +432,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Should last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Until <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Extend battery life past <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +511,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Phone speaker"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem connecting. Turn device off and back on"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired audio device"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rCA/strings.xml b/packages/SettingsLib/res/values-en-rCA/strings.xml
index 79cf4df..dae998f 100644
--- a/packages/SettingsLib/res/values-en-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-en-rCA/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP address &amp; port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Scan QR code"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Pair device over Wi‑Fi by scanning a QR code"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Bug report shortcut"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Show a button in the power menu for taking a bug report"</string>
@@ -416,7 +418,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaly (red-green)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaly (blue-yellow)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Colour correction"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Colour correction helps people with colour blindness see more accurate colours"</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="1284746051652993443">"Colour correction allows you to adjust how colours are displayed on your device"</string>
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Overridden by <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"About <xliff:g id="TIME_REMAINING">%1$s</xliff:g> left"</string>
@@ -430,7 +432,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Should last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Until <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Extend battery life past <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +511,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Phone speaker"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem connecting. Turn device off and back on"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired audio device"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index 79cf4df..dae998f 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP address &amp; port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Scan QR code"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Pair device over Wi‑Fi by scanning a QR code"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Bug report shortcut"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Show a button in the power menu for taking a bug report"</string>
@@ -416,7 +418,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaly (red-green)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaly (blue-yellow)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Colour correction"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Colour correction helps people with colour blindness see more accurate colours"</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="1284746051652993443">"Colour correction allows you to adjust how colours are displayed on your device"</string>
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Overridden by <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"About <xliff:g id="TIME_REMAINING">%1$s</xliff:g> left"</string>
@@ -430,7 +432,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Should last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Until <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Extend battery life past <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +511,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Phone speaker"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem connecting. Turn device off and back on"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired audio device"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index 79cf4df..dae998f 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP address &amp; port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Scan QR code"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Pair device over Wi‑Fi by scanning a QR code"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Bug report shortcut"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Show a button in the power menu for taking a bug report"</string>
@@ -416,7 +418,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaly (red-green)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaly (blue-yellow)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Colour correction"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Colour correction helps people with colour blindness see more accurate colours"</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="1284746051652993443">"Colour correction allows you to adjust how colours are displayed on your device"</string>
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Overridden by <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"About <xliff:g id="TIME_REMAINING">%1$s</xliff:g> left"</string>
@@ -430,7 +432,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Should last until about <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Should last until about <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Until <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Extend battery life past <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Less than <xliff:g id="THRESHOLD">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"More than <xliff:g id="TIME_REMAINING">%1$s</xliff:g> remaining (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +511,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Phone speaker"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem connecting. Turn device off and back on"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired audio device"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-en-rXC/strings.xml b/packages/SettingsLib/res/values-en-rXC/strings.xml
index c128e2c..a3822251 100644
--- a/packages/SettingsLib/res/values-en-rXC/strings.xml
+++ b/packages/SettingsLib/res/values-en-rXC/strings.xml
@@ -232,6 +232,7 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‏‎‎‏‎‏‏‏‏‏‎‎‎‎‏‏‏‎‎‏‎‎IP address &amp; Port‎‏‎‎‏‎"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‎‎‏‏‎‏‏‎‎‏‏‏‎‏‎‏‏‎‎‏‎‎‏‏‎Scan QR code‎‏‎‎‏‎"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‏‏‎‏‏‏‏‏‏‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‎Pair device over Wi‑Fi by scanning a QR Code‎‏‎‎‏‎"</string>
+    <string name="adb_wireless_no_network_msg" msgid="2365795244718494658">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‏‏‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‎‎‏‎‎Please connect to a Wi‑Fi network‎‏‎‎‏‎"</string>
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‎‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎adb, debug, dev‎‏‎‎‏‎"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‏‎‏‎‎‎‎‎‏‏‏‎‎‎‏‏‎‏‏‎‏‏‎‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎Bug report shortcut‎‏‎‎‏‎"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‏‎‏‎‏‎‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‏‏‏‏‎Show a button in the power menu for taking a bug report‎‏‎‎‏‎"</string>
@@ -416,7 +417,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎‏‎‎‏‎‏‏‎‎‎‏‎‏‎‎‏‎‏‎‏‎‎‎‎‎‏‏‏‎‎‏‏‏‎‎‎‎Protanomaly (red-green)‎‏‎‎‏‎"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‏‏‏‎‏‏‎‏‏‎‎‏‎‏‏‏‎‎‏‎‏‎‏‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎Tritanomaly (blue-yellow)‎‏‎‎‏‎"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‎‎‎‎‎‎‏‏‎‏‎‏‏‎‏‎‏‏‎‎‎‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎‎‎‏‎‏‏‎‎Color correction‎‏‎‎‏‎"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‎‎‎‎‏‏‏‎‎‎‎‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‎‏‏‎‎‎‎‏‎‏‎‎‎Color correction helps people with colorblindness see more accurate colors‎‏‎‎‏‎"</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="1284746051652993443">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‎‏‎‎‎‏‎‏‎‏‎‏‏‎‏‏‏‎‏‎‎‎‏‎‎‎‏‏‎‏‎‏‏‏‎‎‏‏‎‎‎‎‎‏‏‎‏‎‎‎‏‏‎Color correction allows you to adjust how colors are displayed on your device‎‏‎‎‏‎"</string>
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎‏‎‏‎‏‏‎‏‎‎‎‎‏‎‏‏‎‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎Overridden by ‎‏‎‎‏‏‎<xliff:g id="TITLE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‏‎‏‏‏‎‎‏‏‎‎‎‎‏‏‎‎‏‏‏‎‎‎‏‏‏‎‎‏‏‎‎‏‎‎‏‏‎‎‏‏‎‏‎‎‎‎‏‏‏‎‏‎‎‏‎‎‏‏‎<xliff:g id="PERCENTAGE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ - ‎‏‎‎‏‏‎<xliff:g id="TIME_STRING">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‎‏‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎‏‏‎‎‏‎‏‏‎‏‏‏‎‏‏‎‏‎‎‏‏‏‎About ‎‏‎‎‏‏‎<xliff:g id="TIME_REMAINING">%1$s</xliff:g>‎‏‎‎‏‏‏‎ left‎‏‎‎‏‎"</string>
@@ -430,7 +431,7 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‎‏‎‎‎‎‏‏‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‏‏‏‏‏‏‎‎Should last until about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎‏‏‏‎‎‎‏‏‎‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‎‎Should last until about ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‎‏‎‎‏‏‎‎‎‎‏‏‎‎‎‏‎‏‎‎‏‏‎‏‎‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‎‏‏‏‎‎Until ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‎‎‏‎‏‎‏‎‎‏‏‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‎‏‏‏‎Extend battery life past ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="power_suggestion_battery_run_out" msgid="6332089307827787087">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‎‎‏‏‎‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎Battery may run out by ‎‏‎‎‏‏‎<xliff:g id="TIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‎‎‏‏‏‎‏‏‏‏‏‏‎‎‏‎‏‏‎‎‎‎‎‎‎‎‎‏‎‏‎‏‏‏‎‏‏‎‎‎‎‎‏‎Less than ‎‏‎‎‏‏‎<xliff:g id="THRESHOLD">%1$s</xliff:g>‎‏‎‎‏‏‏‎ remaining‎‏‎‎‏‎"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‎‏‎‏‎‎‏‎‎‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‎‎‎Less than ‎‏‎‎‏‏‎<xliff:g id="THRESHOLD">%1$s</xliff:g>‎‏‎‎‏‏‏‎ remaining (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‏‏‎‎‏‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‏‎‎‏‏‏‎‏‎‎‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‎‎‎‎‎‎More than ‎‏‎‎‏‏‎<xliff:g id="TIME_REMAINING">%1$s</xliff:g>‎‏‎‎‏‏‏‎ remaining (‎‏‎‎‏‏‎<xliff:g id="LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
@@ -508,4 +509,15 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎‎‎‏‏‎‎‏‎‏‏‎‏‎‏‎‎‎‎‎‎‏‎‎‎‎‎‎‏‏‎‎‎‎Phone speaker‎‏‎‎‏‎"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‏‎‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‎‎‏‎‎‎‏‎‎‎‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‏‏‏‎‎‎‏‎Problem connecting. Turn device off &amp; back on‎‏‎‎‏‎"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‎‎‎‏‏‏‎‎‎‏‏‏‎Wired audio device‎‏‎‎‏‎"</string>
+    <string name="help_label" msgid="3528360748637781274">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‎‏‏‎‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‎Help &amp; feedback‎‏‎‎‏‎"</string>
+    <string name="storage_category" msgid="2287342585424631813">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎Storage‎‏‎‎‏‎"</string>
+    <string name="shared_data_title" msgid="1017034836800864953">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‎‏‏‎‏‎‎‎‎‎‏‎‏‎‏‏‏‎‎‏‎Shared data‎‏‎‎‏‎"</string>
+    <string name="shared_data_summary" msgid="5516326713822885652">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‎‎‏‏‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎‏‏‏‎‎‎‏‎‏‎‎‎View and modify shared data‎‏‎‎‏‎"</string>
+    <string name="blob_id_text" msgid="8680078988996308061">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‎‎‏‏‏‏‏‏‎‎‏‎‏‏‏‎‏‎‎‏‏‏‎‏‏‎‎‎‏‎‏‏‏‎‏‎Shared data ID: ‎‏‎‎‏‏‎<xliff:g id="BLOB_ID">%d</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="blob_expires_text" msgid="7882727111491739331">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎‎‎‏‎‏‏‎‎‎‏‏‏‎‏‏‏‎‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎Expires at ‎‏‎‎‏‏‎<xliff:g id="DATE">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="accessor_info_title" msgid="8289823651512477787">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‎‎‎‏‎‎‎‏‏‏‏‎‎‎‎‏‎‎‎‎‏‏‎‏‎‎‎‎‏‎‏‏‎‏‏‎Apps sharing data‎‏‎‎‏‎"</string>
+    <string name="accessor_no_description_text" msgid="7510967452505591456">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‏‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‎‏‎‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‏‎‎‏‏‏‎‏‎‏‎‎‎‎‎‎No description provided by the app.‎‏‎‎‏‎"</string>
+    <string name="accessor_expires_text" msgid="4625619273236786252">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‏‏‏‎‎‎‏‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‏‏‎‎‎Lease expires at ‎‏‎‎‏‏‎<xliff:g id="DATE">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="delete_blob_text" msgid="2819192607255625697">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎Delete shared data‎‏‎‎‏‎"</string>
+    <string name="delete_blob_confirmation_text" msgid="7807446938920827280">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‎‏‏‎‎‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‎‏‎‏‎‎‎‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‎‏‎‎‎‎‎Are you sure you want to delete this shared data?‎‏‎‎‏‎"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index 06660ee..62082a4 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Dirección IP y puerto"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Escanear código QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Escanea un código QR para vincular el dispositivo mediante Wi‑Fi"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Acceso directo para informes de errores"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Mostrar un botón en el menú de encendido para realizar un informe de errores"</string>
@@ -416,7 +418,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalía (rojo-verde)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalía (azul-amarillo)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Corrección de color"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"La corrección de color ayuda a las personas daltónicas a ver mejor los colores"</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="1284746051652993443">"La corrección de color te permite ajustar la manera en que se muestran los colores en el dispositivo"</string>
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Reemplazado por <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Tiempo restante: aproximadamente <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +432,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Duración aproximada hasta: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Debería durar aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Hasta <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Extender la duración de la batería después de las <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Tiempo restante: menos de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Tiempo restante: menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Tiempo restante: más de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +511,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altavoz del teléfono"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Error al establecer la conexión. Apaga el dispositivo y vuelve a encenderlo."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de audio con cable"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index 2e5adb8..62c8bb7 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Dirección IP y puerto"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Escanear código QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Vincula un dispositivo a través de Wi‑Fi con un código QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, depuración, desarrollo"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Atajo a informe de errores"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Mostrar un botón en el menú de encendido para crear un informe de errores"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalía (rojo-verde)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalía (azul-amarillo)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Corrección de color"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"La corrección de color ayuda a que los usuarios con daltonismo vean colores similares a los que perciben otras personas"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Anulado por <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g>: <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Tiempo restante aproximado: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Debería durar aproximadamente hasta <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Duración aproximada hasta: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Hasta: <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Prolongar la duración de la batería después de las <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Tiempo restante: menos de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Queda menos del <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Queda más del <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altavoz del teléfono"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"No se ha podido conectar; reinicia el dispositivo"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de audio con cable"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml
index 027ab1a..fefa3a7 100644
--- a/packages/SettingsLib/res/values-et/strings.xml
+++ b/packages/SettingsLib/res/values-et/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-aadress ja port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR-koodi skannimine"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Siduge seade WiFi kaudu, skannides QR-koodi"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, silumine, arendus"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Veaaruande otsetee"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Kuva toitemenüüs veaaruande jäädvustamise nupp"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaalia (punane-roheline)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaalia (sinine-kollane)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Värvide korrigeerimine"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Värviparanduse funktsioon aitab värvipimedatel värve täpsemini näha"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Alistas <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Ligikaudu <xliff:g id="TIME_REMAINING">%1$s</xliff:g> jäänud"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Peaks kestma kuni <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Peaks kestma kuni <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Kuni <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Pikenda aku eluiga üle <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Jäänud on alla <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Jäänud on alla <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Jäänud on üle <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefoni kõlar"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Probleem ühendamisel. Lülitage seade välja ja uuesti sisse"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Juhtmega heliseade"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml
index e035a81..f29b6e4 100644
--- a/packages/SettingsLib/res/values-eu/strings.xml
+++ b/packages/SettingsLib/res/values-eu/strings.xml
@@ -27,7 +27,7 @@
     <string name="wifi_disabled_generic" msgid="2651916945380294607">"Desgaituta"</string>
     <string name="wifi_disabled_network_failure" msgid="2660396183242399585">"Ezin izan da konfiguratu IP helbidea"</string>
     <string name="wifi_disabled_by_recommendation_provider" msgid="1302938248432705534">"Ez dago konektatuta sarearen kalitate eskasagatik"</string>
-    <string name="wifi_disabled_wifi_failure" msgid="8819554899148331100">"Ezin izan da konektatu Wi-Fi sarera"</string>
+    <string name="wifi_disabled_wifi_failure" msgid="8819554899148331100">"Ezin izan da konektatu wifi-sarera"</string>
     <string name="wifi_disabled_password_failure" msgid="6892387079613226738">"Autentifikazio-arazoa"</string>
     <string name="wifi_cant_connect" msgid="5718417542623056783">"Ezin da konektatu"</string>
     <string name="wifi_cant_connect_to_ap" msgid="3099667989279700135">"Ezin da konektatu \"<xliff:g id="AP_NAME">%1$s</xliff:g>\" sarera"</string>
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP helbidea eta ataka"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Eskaneatu QR kodea"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Parekatu gailua wifi-sare baten bidez QR kode bat eskaneatuta"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, araztu, gailua"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Akatsen txostenerako lasterbidea"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Bateriaren menuan, erakutsi akatsen txostena sortzeko botoia"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanopia (gorri-berdeak)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanopia (urdin-horia)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Koloreen zuzenketa"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Koloreen zuzenketak kolore zehatzagoak ikusten laguntzen die kolore-itsutasuna duten pertsonei"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> hobespena gainjarri zaio"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> inguru gelditzen dira"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Ordu honetara arte iraungo du, gutxi gorabehera: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Ordu honetara arte iraungo du, gutxi gorabehera: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> arte"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Luzatu bateriaren iraupena <xliff:g id="TIME">%1$s</xliff:g> baino harago iraun dezan"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> baino gutxiago gelditzen dira"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> baino gutxiago gelditzen da (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> baino gehiago gelditzen da (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefonoaren bozgorailua"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Arazoren bat izan da konektatzean. Itzali gailua eta pitz ezazu berriro."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Audio-gailu kableduna"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index 4cc6974..cdd416d 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"‏نشانی IP و درگاه"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"‏اسکن کد QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"‏دستگاه را ازطریق Wi‑Fi و با اسکن کردن کد QR مرتبط کنید"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"‏ADB (پل اشکال‌زدایی Android)، اشکال‌زدایی کردن، برنامه‌نویس"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"میان‌بر گزارش مشکل"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"نمایش دکمه‌ای در منوی روشن/خاموش برای گرفتن گزارش اشکال"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"قرمزدشواربینی (قرمز-سبز)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"آبی‌دشواربینی (آبی-زرد)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"تصحیح رنگ"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"تصحیح رنگ به افراد مبتلا به کوررنگی کمک می‌کند رنگ‌ها را دقیق‌تر ببینند"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"توسط <xliff:g id="TITLE">%1$s</xliff:g> لغو شد"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"تقریباً <xliff:g id="TIME_REMAINING">%1$s</xliff:g> شارژ باقی مانده است"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"باید حدوداً تا <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) شارژ داشته باشید"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"باید حدوداً تا <xliff:g id="TIME">%1$s</xliff:g> شارژ داشته باشید"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"تا <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"افزایش عمر باتری پس از <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"کمتر از <xliff:g id="THRESHOLD">%1$s</xliff:g> باقی مانده"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"کمتر از <xliff:g id="THRESHOLD">%1$s</xliff:g> شارژ باقی مانده است (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"بیش از <xliff:g id="TIME_REMAINING">%1$s</xliff:g> شارژ باقی مانده است (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"بلندگوی تلفن"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"مشکل در اتصال. دستگاه را خاموش و دوباره روشن کنید"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"دستگاه صوتی سیمی"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index a2531d5..2bc53af 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-osoite &amp; portti"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Skannaa QR-koodi"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Muodosta laitepari Wi-Fi-yhteyden kautta skannaamalla QR-koodi"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, virheenkorjaus, kehittäminen"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Virheraportin pikakuvake"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Näytä virheraporttipainike virtavalikossa."</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalia (puna-vihersokeus)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalia (sini-keltasokeus)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Värikorjaus"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Värinkorjaus auttaa värisokeita tulkitsemaan värejä"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Tämän ohittaa <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Noin <xliff:g id="TIME_REMAINING">%1$s</xliff:g> jäljellä"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Varaus loppuu noin <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Varaus loppuu noin <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> saakka"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Paranna akunkestoa pidemmälle kuin klo <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Alle <xliff:g id="THRESHOLD">%1$s</xliff:g> jäljellä"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Alle <xliff:g id="THRESHOLD">%1$s</xliff:g> jäljellä (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Yli <xliff:g id="TIME_REMAINING">%1$s</xliff:g> jäljellä (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Puhelimen kaiutin"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Yhteysvirhe. Sammuta laite ja käynnistä se uudelleen."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Langallinen äänilaite"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index e1ff83f..330c180 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Adresse IP et port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Numériser le code QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Associer un appareil par Wi-Fi en numérisant un code QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, débogage, concepteur"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Raccourci de rapport de bogue"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Afficher un bouton permettant d\'établir un rapport de bogue dans le menu de démarrage"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalie (rouge/vert)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalie (bleu/jaune)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Correction des couleurs"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"La correction des couleurs aide les personnes atteintes de daltonisme à mieux percevoir les couleurs"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Remplacé par <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> : <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Il reste environ <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Devrait durer jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Devrait durer jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Jusqu\'à <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Prolonger l\'autonomie au-delà de <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Il reste plus de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Haut-parleur du téléphone"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problème de connexion. Éteingez et rallumez l\'appareil"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Appareil audio à câble"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index 271c52b..2a28037 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Adresse IP et port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Scanner un code QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Associer l\'appareil via le Wi‑Fi à l\'aide d\'un code QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, débogage, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Raccourci vers rapport de bug"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Afficher un bouton dans le menu de démarrage permettant de créer un rapport de bug"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalie (rouge/vert)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalie (bleu-jaune)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Correction couleur"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"La correction des couleurs aide les personnes atteintes de daltonisme à mieux percevoir les couleurs"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Remplacé par <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Temps restant : environ <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Devrait durer jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Devrait durer jusqu\'à environ <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Jusqu\'à <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Prolonger l\'autonomie de la batterie au-delà de <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Il reste moins de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Il reste plus de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Haut-parleur du téléphone"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problème de connexion. Éteignez l\'appareil, puis rallumez-le"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Appareil audio filaire"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index ec600c0..e33d951 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Enderezo IP e porto"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Escanear o código QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Vincula o dispositivo a través da wifi escaneando un código QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, depuración, programador"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Atallo do informe de erros"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Mostra un botón no menú de acendido para crear un informe de erros"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalía (vermello-verde)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalía (azul-amarelo)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Corrección da cor"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"A corrección da cor axuda ás persoas con daltonismo a ver as cores con maior precisión"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Anulado por <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Tempo restante aproximado: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Debería durar aproximadamente ata a seguinte hora: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Debería durar aproximadamente ata a seguinte hora: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Ata: <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Amplía a duración da batería a partir desta hora: <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Tempo restante inferior a <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Tempo restante: menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Tempo restante: máis de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altofalante do teléfono"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Produciuse un problema coa conexión. Apaga e acende o dispositivo."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de audio con cable"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml
index b81eba3..156c0fc 100644
--- a/packages/SettingsLib/res/values-gu/strings.xml
+++ b/packages/SettingsLib/res/values-gu/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP ઍડ્રેસ &amp; પોર્ટ"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR કોડ સ્કૅન કરો"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR કોડને સ્કૅન કરીને વાઇ-ફાઇ પર ડિવાઇસનું જોડાણ બનાવો"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, ડિબગ, ડેવ"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"બગ રિપોર્ટ શોર્ટકટ"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"બગ રિપોર્ટ લેવા માટે પાવર મેનૂમાં એક બટન બતાવો"</string>
@@ -416,7 +418,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"પ્રોટેનોમલી (લાલ-લીલો)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"ટ્રાઇટેનોમલી(વાદળી-પીળો)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"રંગ સુધારણા"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"રંગ સુધારણા રંગ અંધત્વવાળા લોકોને વધુ સચોટ રંગો જોવામાં સહાય કરે છે"</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="1284746051652993443">"રંગ સુધારણા તમને તમારા ડિવાઇસ પર રંગો કેવી રીતે બતાવવામાં આવે તેની ગોઠવણી કરવાની મંજૂરી આપે છે"</string>
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> દ્વારા ઓવરરાઇડ થયું"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"લગભગ <xliff:g id="TIME_REMAINING">%1$s</xliff:g> બાકી છે"</string>
@@ -430,7 +432,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"લગભગ <xliff:g id="TIME">%1$s</xliff:g> સુધી ચાલવી જોઈએ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"લગભગ <xliff:g id="TIME">%1$s</xliff:g> સુધી ચાલવી જોઈએ"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> સુધી"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"બૅટરીની આવરદા <xliff:g id="TIME">%1$s</xliff:g> થી વધારો"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> કરતાં ઓછો સમય બાકી છે"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> કરતાં ઓછો સમય બાકી છે (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> કરતાં વધુ સમય બાકી છે (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +511,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ફોન સ્પીકર"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"કનેક્ટ કરવામાં સમસ્યા આવી રહી છે. ડિવાઇસને બંધ કરીને ફરી ચાલુ કરો"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"વાયરવાળો ઑડિયો ડિવાઇસ"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 414b876..fb2ed03 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"आईपी पता और पोर्ट"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"क्यूआर कोड स्कैन करें"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"क्यूआर कोड स्कैन करके, वाई-फ़ाई से डिवाइस को जोड़ें"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"गड़बड़ी की रिपोर्ट का शॉर्टकट"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"गड़बड़ी की रिपोर्ट लेने के लिए पावर मेन्यू में कोई बटन दिखाएं"</string>
@@ -255,8 +257,7 @@
     <string name="bluetooth_show_devices_without_names" msgid="923584526471885819">"बिना नाम वाले ब्लूटूथ डिवाइस दिखाएं"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="1452342324349203434">"ब्लूटूथ से आवाज़ के नियंत्रण की सुविधा रोकें"</string>
     <string name="bluetooth_enable_gabeldorsche" msgid="9131730396242883416">"Gabeldorsche चालू करें"</string>
-    <!-- no translation found for enhanced_connectivity (7201127377781666804) -->
-    <skip />
+    <string name="enhanced_connectivity" msgid="7201127377781666804">"कनेक्टिविटी बेहतर बनाएं"</string>
     <string name="bluetooth_select_avrcp_version_string" msgid="1710571610177659127">"ब्लूटूथ एवीआरसीपी वर्शन"</string>
     <string name="bluetooth_select_avrcp_version_dialog_title" msgid="7846922290083709633">"ब्लूटूथ AVRCP वर्शन चुनें"</string>
     <string name="bluetooth_select_map_version_string" msgid="526308145174175327">"ब्लूटूथ का MAP वर्शन"</string>
@@ -310,8 +311,7 @@
     <string name="bluetooth_show_devices_without_names_summary" msgid="780964354377854507">"बिना नाम वाले ब्लूटूथ डिवाइस (केवल MAC पते वाले) दिखाए जाएंगे"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="2006309932135547681">"दूर के डिवाइस पर आवाज़ बहुत बढ़ जाने या उससे नियंत्रण हटने जैसी समस्याएं होने पर, यह ब्लूटूथ के ज़रिए आवाज़ के नियंत्रण की सुविधा रोक देता है."</string>
     <string name="bluetooth_enable_gabeldorsche_summary" msgid="2054730331770712629">"ब्लूटूथ सेटिंग में Gabeldorsche सुविधा को चालू करता है."</string>
-    <!-- no translation found for enhanced_connectivity_summary (1576414159820676330) -->
-    <skip />
+    <string name="enhanced_connectivity_summary" msgid="1576414159820676330">"कनेक्टिविटी बेहतर बनाने की सुविधा को चालू करें"</string>
     <string name="enable_terminal_title" msgid="3834790541986303654">"स्थानीय टर्मिनल"</string>
     <string name="enable_terminal_summary" msgid="2481074834856064500">"लोकल शेल तक पहुंचने की सुविधा देने वाले टर्मिनल ऐप को चालू करें"</string>
     <string name="hdcp_checking_title" msgid="3155692785074095986">"एचडीसीपी जाँच"</string>
@@ -418,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"लाल रंग पहचान न पाना (लाल-हरा)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"नीला रंग पहचान न पाना (नीला-पीला)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"रंग सुधार"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"रंग में सुधार करने की सेटिंग, वर्णान्धता (कलर ब्लाइंडनेस) वाले लोगों को ज़्यादा सटीक रंग देखने में मदद करती है"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> के द्वारा ओवरराइड किया गया"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"बैटरी करीब <xliff:g id="TIME_REMAINING">%1$s</xliff:g> में खत्म हो जाएगी"</string>
@@ -432,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"बैटरी करीब <xliff:g id="TIME">%1$s</xliff:g> चलेगी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"बैटरी करीब <xliff:g id="TIME">%1$s</xliff:g> चलेगी"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> तक"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"बैटरी लाइफ़ <xliff:g id="TIME">%1$s</xliff:g> तक के लिए बढाएं"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> से कम समय बचा है"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> से कम बैटरी बची है (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> से ज़्यादा चलने लायक बैटरी बची है (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -510,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"फ़ोन का स्पीकर"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"कनेक्ट करने में समस्या हो रही है. डिवाइस को बंद करके चालू करें"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"वायर वाला ऑडियो डिवाइस"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index a3d1b95..4960735 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP adresa i priključak"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Skeniraj QR kôd"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Uparivanje uređaja putem Wi-Fija skeniranjem QR koda"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, otklanjanje pogrešaka, razvoj"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Prečac izvješća o pogreškama"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Prikaži gumb u izborniku napajanja za izradu izvješća o programskim pogreškama"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalija (crveno – zeleno)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalija (plavo – žuto)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Korekcija boje"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Korekcija boje pomaže slijepima za boje da vide preciznije boje"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Premošćeno postavkom <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Još otprilike <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Otprilike bi trebalo trajati do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Otprilike bi trebalo trajati do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Neka baterija potraje i nakon <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Preostalo je manje od <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Preostalo je više od <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -509,4 +513,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Zvučnik telefona"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem s povezivanjem. Isključite i ponovo uključite uređaj"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Žičani audiouređaj"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index e1c49c8..570b075 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-cím és port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR-kód beolvasása"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Párosítsa az eszközt Wi-Fi-n keresztül QR-kód beolvasásával"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Hibabejelentési gomb"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Gomb megjelenítése a bekapcsolási menüben hibajelentés készítéséhez"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomália (piros– zöld)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomália (kék–sárga)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Színkorrekció"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"A színkorrekció segít a színtévesztőknek abban, hogy pontosabban lássák a színeket"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Felülírva erre: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Körülbelül <xliff:g id="TIME_REMAINING">%1$s</xliff:g> maradt hátra"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Nagyjából még ennyit bír: <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Nagyjából még ennyit bír: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Eddig: <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Akkumulátor-üzemidő kiterjesztése <xliff:g id="TIME">%1$s</xliff:g> utánig"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Kevesebb mint <xliff:g id="THRESHOLD">%1$s</xliff:g> van hátra"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Kevesebb mint <xliff:g id="THRESHOLD">%1$s</xliff:g> van hátra (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Kevesebb mint <xliff:g id="TIME_REMAINING">%1$s</xliff:g> van hátra (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefon hangszórója"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Sikertelen csatlakozás. Kapcsolja ki az eszközt, majd kapcsolja be újra."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Vezetékes audioeszköz"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml
index db1748d..755a75f 100644
--- a/packages/SettingsLib/res/values-hy/strings.xml
+++ b/packages/SettingsLib/res/values-hy/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP հասցե և միացք"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR կոդի սկանավորում"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Զուգակցեք սարքը՝ Wi‑Fi-ի օգնությամբ սկանավորելով QR կոդը"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, վրիպազերծում, ծրագրավորող"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Սխալի հաղորդման դյուրանցում"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Գործարկման ցանկում ցույց տալ կոճակը՝ վրիպակների հաղորդման համար"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Պրոտանոմալիա (կարմիր-կանաչ)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Տրիտանոմալիա (կապույտ-դեղին)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Գունաշտկում"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Գունաշտկումն օգնում է դալթոնիզմ ունեցող մարդկանց ավելի ճշգրիտ տեսնել գույները"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Գերազանցված է <xliff:g id="TITLE">%1$s</xliff:g>-ից"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Լիցքը կբավարարի մոտ <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Լիցքը (<xliff:g id="LEVEL">%2$s</xliff:g>) պետք է որ բավականացնի մինչև <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Լիցքը պետք է որ բավականացնի մինչև <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Մինչև <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Երկարացրեք մարտկոցի աշխատաժամանակը <xliff:g id="TIME">%1$s</xliff:g>-ից"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Մնացել է <xliff:g id="THRESHOLD">%1$s</xliff:g>-ից պակաս"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Մնացել է <xliff:g id="THRESHOLD">%1$s</xliff:g>-ից պակաս (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Մնացել է ավելի քան <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Հեռախոսի բարձրախոս"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Կապի խնդիր կա: Սարքն անջատեք և նորից միացրեք:"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Լարով աուդիո սարք"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index 02500ef..7752f46 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Alamat IP &amp; Port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Memindai kode QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Menyambungkan perangkat melalui Wi‑Fi dengan memindai Kode QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Pintasan laporan bug"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Tampilkan tombol di menu daya untuk mengambil laporan bug"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomali (merah-hijau)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomali (biru-kuning)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Koreksi warna"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Koreksi warna membantu orang penderita buta warna melihat warna yang lebih akurat"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Digantikan oleh <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Sekitar <xliff:g id="TIME_REMAINING">%1$s</xliff:g> lagi"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Akan bertahan kira-kira sampai pukul <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Akan bertahan kira-kira sampai pukul <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Hingga <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Perpanjang masa pakai baterai hingga <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Tersisa kurang dari <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Tersisa kurang dari <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Tersisa lebih dari <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Speaker ponsel"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ada masalah saat menghubungkan. Nonaktifkan perangkat &amp; aktifkan kembali"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Perangkat audio berkabel"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-is/strings.xml b/packages/SettingsLib/res/values-is/strings.xml
index 002709c..28cd4c2 100644
--- a/packages/SettingsLib/res/values-is/strings.xml
+++ b/packages/SettingsLib/res/values-is/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-tala og gátt"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Skanna QR-kóða"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Tengja tæki með Wi-Fi með því að skanna QR-kóða"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, villuleit, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Flýtileið í villutilkynningu"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Sýna hnapp til að skrá villutilkynningu í valmynd aflrofans"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Litblinda (rauðgræn)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Litblinda (blágul)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Litaleiðrétting"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Litaleiðrétting hjálpar fólki með litblindu að sjá réttari liti"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Hnekkt af <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Um það bil <xliff:g id="TIME_REMAINING">%1$s</xliff:g> eftir"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Ætti að endast til u.þ.b. <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Ætti að endast til u.þ.b. <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Til klukkan <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Láttu rafhlöðuna endast lengur en <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Minna en <xliff:g id="THRESHOLD">%1$s</xliff:g> eftir"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Minna en <xliff:g id="THRESHOLD">%1$s</xliff:g> eftir (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Meira en <xliff:g id="TIME_REMAINING">%1$s</xliff:g> eftir (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Símahátalari"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Vandamál í tengingu. Slökktu og kveiktu á tækinu"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Snúrutengt hljómtæki"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index 01d7a65..09282df 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Indirizzo IP e porta"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Scansiona codice QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Accoppia il dispositivo tramite Wi-Fi eseguendo la scansione di un codice QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"ADB, debug, sviluppatori"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Scorciatoia segnalazione bug"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Mostra un pulsante per segnalare i bug nel menu di accensione"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalìa (rosso-verde)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalìa (blu-giallo)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Correzione del colore"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"La correzione del colore consente alle persone daltoniche di vedere colori più accurati"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Valore sostituito da <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Tempo rimanente: <xliff:g id="TIME_REMAINING">%1$s</xliff:g> circa"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Tempo stimato rimanente: <xliff:g id="TIME">%1$s</xliff:g> circa (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Tempo stimato rimanente: <xliff:g id="TIME">%1$s</xliff:g> circa"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Fino alle ore <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Estendi la durata della batteria dopo <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Tempo rimanente: meno di <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Tempo rimanente: meno di <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Tempo rimanente: più di <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altoparlante telefono"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problema di connessione. Spegni e riaccendi il dispositivo"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo audio cablato"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index 975ccdc..3c7fb3d 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"‏יציאה וכתובת IP"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"‏סריקת קוד QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"‏יש לסרוק קוד QR כדי להתאים מכשיר באמצעות Wi‑Fi"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"‏adb, ניפוי באגים, פיתוח"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"קיצור של דוח באגים"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"כדי ליצור דוח באגים, הצג לחצן בתפריט לניהול צריכת החשמל"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"פרוטנומליה (אדום-ירוק)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"טריטנומליה (כחול-צהוב)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"תיקון צבע"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"תיקון צבע עוזר לאנשים עם עיוורון צבעים לראות צבעים באופן מדויק יותר"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"נעקף על ידי <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"הזמן הנותר: בערך <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"אמורה להחזיק מעמד בערך עד <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"אמורה להחזיק מעמד בערך עד <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"עד <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"הארכת חיי הסוללה מעבר ל-<xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"נותרו פחות מ-<xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"נותרו פחות מ-<xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"נותרו יותר מ-<xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -510,4 +514,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"רמקול של טלפון"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"יש בעיה בחיבור. עליך לכבות את המכשיר ולהפעיל אותו מחדש"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"התקן אודיו חוטי"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index c7380f6..5eccfd1 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP アドレスとポート"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR コードのスキャン"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR コードをスキャンして Wi-Fi 経由でデバイスをペア設定します"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, デバッグ, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"バグレポートのショートカット"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"電源メニューにバグレポートを取得するボタンを表示する"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"第一色弱(赤緑)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"第三色弱(青黄)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"色補正"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"色補正機能を利用すると、色覚障がいのある方がより正確に色を判別できるようになります"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g>によって上書き済み"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"残り時間: 約 <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"電池切れの推定時刻: <xliff:g id="TIME">%1$s</xliff:g>(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"電池切れの推定時刻: <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> まで"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"<xliff:g id="TIME">%1$s</xliff:g>まで電池消費量を抑える"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"残り時間: <xliff:g id="THRESHOLD">%1$s</xliff:g>未満"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"残り時間: <xliff:g id="THRESHOLD">%1$s</xliff:g>未満(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"残り時間: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>以上(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"スマートフォンのスピーカー"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"接続エラーです。デバイスを OFF にしてから ON に戻してください"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"有線オーディオ デバイス"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ka/strings.xml b/packages/SettingsLib/res/values-ka/strings.xml
index 43a52f3..ff7e59e 100644
--- a/packages/SettingsLib/res/values-ka/strings.xml
+++ b/packages/SettingsLib/res/values-ka/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP მისამართი და პორტი"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR კოდის სკანირება"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"მოწყობილობის დაწყვილება Wi-Fi-ის მეშვეობით QR კოდის სკანირებით"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, შეცდომების გამართვა, დეველოპერული"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"ხარვეზის შეტყობინების მალსახმობი"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"ელკვების პარამეტრებში ხარვეზის შეტყობინების ღილაკის ჩვენება"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"პროტოანომალია (წითელი-მწვანე)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"ტრიტანომალია (ლურჯი-ყვითელი)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"ფერის კორექცია"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"ფერის კორექცია ეხმარება ფერითი სიბრმავის მქონე ადამიანებს, უფრო ზუსტად გაარჩიონ ფერები"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"უკუგებულია <xliff:g id="TITLE">%1$s</xliff:g>-ის მიერ"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"დარჩა დაახლოებით <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"უნდა იმუშაოს დაახლოებით <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"უნდა იმუშაოს დაახლოებით <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g>-მდე"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"ბატარეის მუშაობის გახანგრძლივება <xliff:g id="TIME">%1$s</xliff:g>-ის შემდეგ"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"დარჩენილია <xliff:g id="THRESHOLD">%1$s</xliff:g>-ზე ნაკლები"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"დარჩენილია <xliff:g id="THRESHOLD">%1$s</xliff:g>-ზე ნაკლები დრო (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"დარჩენილია <xliff:g id="TIME_REMAINING">%1$s</xliff:g>-ზე მეტი დრო (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ტელეფონის დინამიკი"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"დაკავშირებისას წარმოიქმნა პრობლემა. გამორთეთ და კვლავ ჩართეთ მოწყობილობა"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"სადენიანი აუდიო მოწყობილობა"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml
index 2b2093b..bb99d3a 100644
--- a/packages/SettingsLib/res/values-kk/strings.xml
+++ b/packages/SettingsLib/res/values-kk/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP мекенжайы және порт"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR кодын сканерлеу"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR кодын сканерлеп, құрылғыны Wi‑Fi арқылы жұптау"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, түзету, әзірлеуші"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Қате туралы хабарлау"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Қуат мәзірінде қате туралы хабарлауға арналған түймені көрсету"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Протаномалия (қызыл-жасыл)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Тританомалия (көк-сары)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Түсті түзету"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Түсті түзету функциясы түстерді ажырата алмайтын адамдарға оларды дәлірек көруге көмектеседі"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> үстінен басқан"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Шамамен <xliff:g id="TIME_REMAINING">%1$s</xliff:g> қалды"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Шамамен <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) уақытқа жетеді"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Шамамен <xliff:g id="TIME">%1$s</xliff:g> уақытқа жетеді"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> дейін"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"<xliff:g id="TIME">%1$s</xliff:g> кейін батарея жұмысының ұзақтығын арттыру"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> шамасынан аз қалды"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> шамасынан аз қалды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> шамасынан көп уақыт қалды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Телефон динамигі"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Байланыс орнату қатесі шығуып жатыр. Құрылғыны өшіріп, қайта қосыңыз."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Сымды аудио құрылғысы"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml
index 0ceda18..b9ede1d 100644
--- a/packages/SettingsLib/res/values-km/strings.xml
+++ b/packages/SettingsLib/res/values-km/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"អាសយដ្ឋាន IP និងច្រក"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"ស្កេន​កូដ QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"ផ្គូផ្គង​ឧបករណ៍​តាមរយៈ Wi‑Fi ដោយស្កេន​កូដ QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, ជួសជុល, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"ផ្លូវកាត់រាយការណ៍​កំហុស"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"បង្ហាញ​​ប៊ូតុង​ក្នុង​ម៉ឺនុយ​ប៊ូតុង​ថាមពល​​​សម្រាប់​ការ​ទទួល​យក​របាយការណ៍​កំហុស"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaly (ក្រហម​ពណ៌​បៃតង​)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaly (ពណ៌​ខៀវ​-លឿង​)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"ការ​កែ​ពណ៌"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"ការកែតម្រូវ​ពណ៌​ជួយដល់​អ្នកដែល​មិនអាច​បែងចែក​ពណ៌​ឱ្យមើលឃើញ​ពណ៌ដែលត្រឹមត្រូវ​ជាងមុន"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"បដិសេធ​ដោយ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"នៅសល់​ប្រហែល <xliff:g id="TIME_REMAINING">%1$s</xliff:g> ទៀត"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"គួរ​តែ​អាច​ប្រើបាន​រហូតដល់​ម៉ោងប្រហែល <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"គួរ​តែ​អាច​ប្រើបាន​រហូតដល់​ម៉ោងប្រហែល <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"រហូតដល់​ម៉ោង <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"បង្កើន​ថាមពលថ្ម​របស់អ្នកឱ្យប្រើបាន​លើសពី​ម៉ោង <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"នៅ​សល់​តិច​ជាង <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"នៅសល់​តិចជាង <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"នៅសល់​ច្រើនជាង <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ឧបករណ៍​បំពង​សំឡេង​ទូរសព្ទ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"មាន​បញ្ហា​ក្នុងការ​ភ្ជាប់។ បិទ រួច​បើក​ឧបករណ៍​វិញ"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ឧបករណ៍​សំឡេងប្រើខ្សែ"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml
index d23aeff..22c4950 100644
--- a/packages/SettingsLib/res/values-kn/strings.xml
+++ b/packages/SettingsLib/res/values-kn/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP ವಿಳಾಸ ಮತ್ತು ಪೋರ್ಟ್"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR ಕೋಡ್ ಸ್ಕ್ಯಾನ್ ಮಾಡಿ"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡುವ ಮೂಲಕ ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಸಾಧನವನ್ನು ಜೋಡಿಸಿ"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, ಡೀಬಗ್, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"ದೋಷ ವರದಿಯ ಶಾರ್ಟ್‌ಕಟ್‌‌"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"ದೋಷ ವರದಿ ಮಾಡಲು ಪವರ್ ಮೆನುನಲ್ಲಿ ಬಟನ್ ತೋರಿಸು"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"ಪ್ರೊಟನೋಮಲಿ (ಕೆಂಪು-ಹಸಿರು)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"ಟ್ರಿಟನೋಮಲಿ (ನೀಲಿ-ಹಳದಿ)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"ಬಣ್ಣದ ತಿದ್ದುಪಡಿ"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"ವರ್ಣ ಅಂಧತ್ವ ಹೊಂದಿರುವ ಜನರಿಗೆ ಬಣ್ಣಗಳನ್ನು ಹೆಚ್ಚು ನಿಖರವಾಗಿ ವೀಕ್ಷಿಸಲು ಬಣ್ಣ ತಿದ್ದುಪಡಿ ಸಹಾಯ ಮಾಡುತ್ತದೆ"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> ಮೂಲಕ ಅತಿಕ್ರಮಿಸುತ್ತದೆ"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ಸಮಯ ಬಾಕಿ ಉಳಿದಿದೆ"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"<xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) ಸಮಯದವರೆಗೆ ಫೋನ್‌ ರನ್‌ ಆಗಬೇಕು"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"<xliff:g id="TIME">%1$s</xliff:g> ಸಮಯದವರೆಗೆ ಫೋನ್‌ ರನ್‌ ಆಗಬೇಕು"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> ರವರೆಗೆ"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"ಬ್ಯಾಟರಿ ಬಾಳಿಕೆಯನ್ನು <xliff:g id="TIME">%1$s</xliff:g> ಮೊದಲೇ ವಿಸ್ತರಿಸಿ"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ ಸಮಯ ಉಳಿದಿದೆ"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ಕ್ಕಿಂತ ಕಡಿಮೆ (<xliff:g id="LEVEL">%2$s</xliff:g>) ಬಾಕಿ"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ಕ್ಕಿಂತ ಹೆಚ್ಚು (<xliff:g id="LEVEL">%2$s</xliff:g>) ಬಾಕಿ"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ಫೋನ್ ಸ್ಪೀಕರ್"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ಕನೆಕ್ಟ್ ಮಾಡುವಾಗ ಸಮಸ್ಯೆ ಎದುರಾಗಿದೆ ಸಾಧನವನ್ನು ಆಫ್ ಮಾಡಿ ಹಾಗೂ ನಂತರ ಪುನಃ ಆನ್ ಮಾಡಿ"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ವೈರ್ ಹೊಂದಿರುವ ಆಡಿಯೋ ಸಾಧನ"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index 991bc22..e0874a3 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP 주소 및 포트"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR 코드 스캔"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR 코드를 스캔하여 Wi‑Fi를 통해 기기 페어링"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, 디버그, 개발자"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"버그 신고 바로가기"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"전원 메뉴에 버그 신고 버튼 표시"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"적색약(적녹)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"청색약(청황)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"색보정"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"색상 보정을 사용하면 색맹인 사용자가 색상을 정확하게 구분하는 데 도움이 됩니다."</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> 우선 적용됨"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g>, <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"남은 시간 약 <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"약 <xliff:g id="TIME">%1$s</xliff:g>까지 사용 가능(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"약 <xliff:g id="TIME">%1$s</xliff:g>까지 사용 가능"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g>까지"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"<xliff:g id="TIME">%1$s</xliff:g> 이후 배터리 수명 연장"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> 미만 남음"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> 미만 남음(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> 이상 남음(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"휴대전화 스피커"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"연결 중에 문제가 발생했습니다. 기기를 껐다가 다시 켜 보세요."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"유선 오디오 기기"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml
index d6ed074..6e28f0b 100644
--- a/packages/SettingsLib/res/values-ky/strings.xml
+++ b/packages/SettingsLib/res/values-ky/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP дареги жана Оюкча"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR кодун скандоо"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR кодун скандап, түзмөктү Wi‑Fi аркылуу жупташтырыңыз"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, мүчүлүштүктөрдү оңдоо, иштеп чыгуу"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Ката жөнүндө кабарлоо"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Менюда ката жөнүндө кабарлоо баскычы көрүнүп турат"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Протаномалия (кызыл-жашыл)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Тританомалия (көк-сары)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Түсүн тууралоо"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Түстү тууралоо жөндөөсү түстөрдү айырмалап көрбөгөн адамдарга түстөрдү тагыраак билүүгө жардам берет"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> менен алмаштырылган"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Болжол менен <xliff:g id="TIME_REMAINING">%1$s</xliff:g> калды"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Болжол менен <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) кийин өчөт"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Болжол менен <xliff:g id="TIME">%1$s</xliff:g> кийин өчөт"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> чейин"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Батареянын кубатынын мөөнөтүн узартуудан <xliff:g id="TIME">%1$s</xliff:g> өттү"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> жетпеген убакыт калды"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> жетпеген убакыт калды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ашыгыраак убакыт калды (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Телефондун динамиги"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Туташууда маселе келип чыкты. Түзмөктү өчүрүп, кайра күйгүзүп көрүңүз"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Зымдуу аудио түзмөк"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml
index 5f58dfb..f4077a1 100644
--- a/packages/SettingsLib/res/values-lo/strings.xml
+++ b/packages/SettingsLib/res/values-lo/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"ທີ່ຢູ່ IP ແລະ ຜອດ"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"ສະແກນລະຫັດ QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"ຈັບຄູ່ອຸປະກອນຜ່ານ Wi‑Fi ໂດຍການສະແກນລະຫັດ QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"ທາງ​ລັດລ​າຍງານ​ຂໍ້​ຜິດພາດ"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"​ສະ​ແດງ​ປຸ່ມ​ໃນ​ເມ​ນູ​ປິດ​ເປີດ​ເພື່ອ​ບັນ​ທຶກ​ການ​ລາຍ​ງານ​ຂໍ້​ຜິດ​ພາດ"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaly (ສີ​ແດງ​-ສີ​ຂຽວ​)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaly (ສີ​ຟ້າ​-ສີ​ເຫຼືອງ​)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"ການ​ປັບ​ແຕ່ງ​ສີ"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"ການແກ້ໄຂສີຈະຊ່ວຍໃຫ້ຄົນທີ່ຕາບອດສີສາມາດເບິ່ງເຫັນສີໄດ້ຖືກຕ້ອງຍິ່ງຂຶ້ນ"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"ຖືກແທນໂດຍ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"ເຫຼືອອີກປະມານ <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"ໜ້າຈະໃຊ້ໄດ້ຈົນຮອດປະມານ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"ໜ້າຈະໃຊ້ໄດ້ຈົນຮອດປະມານ <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"ຈົນກວ່າຈະຮອດ <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"ຂະຫຍາຍອາຍຸແບັດເຕີຣີກາຍ <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"ຍັງເຫຼືອໜ້ອຍກວ່າ <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"ຍັງເຫຼືອໜ້ອຍກວ່າ <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"ຍັງເຫຼືອຫຼາຍກວ່າ <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ລຳໂພງໂທລະສັບ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ເກີດບັນຫາໃນການເຊື່ອມຕໍ່. ປິດອຸປະກອນແລ້ວເປີດກັບຄືນມາໃໝ່"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ອຸປະກອນສຽງແບບມີສາຍ"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index ce41bc5..1cb60a2 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP adresas ir prievadas"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR kodo nuskaitymas"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Susiekite įrenginį „Wi‑Fi“ ryšiu nuskaitydami QR kodą"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"ADB, derinti, kūrėjas"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Pranešimo apie riktą spartusis klavišas"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Rodyti pranešimo apie riktą mygtuką maitinimo meniu"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalija (raudona, žalia)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalija (mėlyna, geltona)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Spalvų taisymas"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Naudojant spalvų taisymo funkciją daltonikai gali geriau matyti spalvas"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Nepaisyta naudojant nuostatą „<xliff:g id="TITLE">%1$s</xliff:g>“"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Liko maždaug <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Turėtų išsikrauti maždaug po <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Turėtų išsikrauti maždaug po <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Iki <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Pailginti akumuliatoriaus veikimo laiką po <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Liko mažiau nei <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Liko mažiau nei <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Liko daugiau nei <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -510,4 +514,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefono garsiakalbis"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Prisijungiant kilo problema. Išjunkite įrenginį ir vėl jį įjunkite"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Laidinis garso įrenginys"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index 7c2dfbd..2ae3d6d 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP adrese un ports"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR koda skenēšana"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Izveidojiet savienojumu pārī ar ierīci Wi‑Fi tīklā, skenējot QR kodu."</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, atkļūdošana, izstrādātājiem"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Kļūdu pārskata saīsne"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Izslēgšanas izvēlnē rādīt kļūdu pārskata veidošanas pogu"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomālija (sarkans/zaļš)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomālija (zils/dzeltens)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Krāsu korekcija"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Krāsu korekcija palīdz lietotājiem ar krāsu aklumu redzēt precīzākas krāsas."</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Jaunā preference: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> — <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Aptuvenais atlikušais laiks: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Darbosies aptuveni līdz <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Darbosies aptuveni līdz <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Līdz <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Palielināt akumulatora darbības ilgumu, lai ierīce turpinātu darboties pēc <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Atlikušais laiks — mazāk nekā <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Atlicis mazāk nekā <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Atlicis vairāk nekā <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -509,4 +513,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Tālruņa skaļrunis"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Radās problēma ar savienojuma izveidi. Izslēdziet un atkal ieslēdziet ierīci."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Vadu audioierīce"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml
index 33f8f45..439cc11 100644
--- a/packages/SettingsLib/res/values-mk/strings.xml
+++ b/packages/SettingsLib/res/values-mk/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-адреса и порта"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Скенирајте QR-код"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Спарете го уредот преку Wi‑Fi со скенирање QR-код"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, отстранува грешка, програмер"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Кратенка за извештај за грешка"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Прикажи копче во менито за вклучување за да се направи извештај за грешка"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Протаномалија (слепило за црвена и зелена)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Тританомалија (слепило за сина и жолта)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Корекција на бои"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Корекцијата на бои им помага на луѓето што не ги разликуваат боите попрецизно да ги гледаат"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Прескокнато според <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Уште околу <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Треба да трае до околу <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Треба да трае до околу <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"До <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Продолжи го траењето на батеријата после <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Уште помалку од <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Уште помалку од <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Уште повеќе од <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Телефонски звучник"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Проблем со поврзување. Исклучете го уредот и повторно вклучете го"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Жичен аудиоуред"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml
index 06ee219..9ac1f8d 100644
--- a/packages/SettingsLib/res/values-ml/strings.xml
+++ b/packages/SettingsLib/res/values-ml/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP വിലാസവും പോർട്ടും"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR കോഡ് സ്‌കാൻ ചെയ്യുക"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR കോഡ് സ്‌കാൻ ചെയ്‌ത് വൈഫൈയിലൂടെ ഉപകരണം ജോടിയാക്കുക"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"ബഗ് റിപ്പോർട്ട് കുറുക്കുവഴി"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"ബഗ് റിപ്പോർട്ട് എടുക്കുന്നതിന് പവർ മെനുവിൽ ഒരു ബട്ടൺ കാണിക്കുക"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"പ്രോട്ടാനോമലി (ചുവപ്പ്-പച്ച)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"ട്രിട്ടാനോമലി (നീല-മഞ്ഞ)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"വർണ്ണം ക്രമീകരിക്കൽ"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"വർണ്ണം ശരിയാക്കൽ, വർണ്ണാന്ധത ബാധിച്ച ആളുകൾക്ക് നിറങ്ങൾ കൂടുതൽ കൃത്യമായി കാണാൻ സഹായിക്കുന്നു"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> ഉപയോഗിച്ച് അസാധുവാക്കി"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"ഏതാണ്ട് <xliff:g id="TIME_REMAINING">%1$s</xliff:g> ശേഷിക്കുന്നു"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"ഏകദേശം <xliff:g id="TIME">%1$s</xliff:g> വരെ നീണ്ടുനിൽക്കേണ്ടതാണ് (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"ഏകദേശം <xliff:g id="TIME">%1$s</xliff:g> വരെ നീണ്ടുനിൽക്കേണ്ടതാണ്"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> വരെ"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"ബാറ്ററി ലൈഫ് <xliff:g id="TIME">%1$s</xliff:g>-ൽ കൂടുതൽ വർദ്ധിപ്പിക്കുക"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-ൽ കുറവ് സമയം ശേഷിക്കുന്നു"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-ൽ കുറവ് സമയം ശേഷിക്കുന്നു (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>-ൽ കൂടുതൽ സമയം ശേഷിക്കുന്നു (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ഫോൺ സ്‌പീക്കർ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"കണക്‌റ്റ് ചെയ്യുന്നതിൽ പ്രശ്‌നമുണ്ടായി. ഉപകരണം ഓഫാക്കി വീണ്ടും ഓണാക്കുക"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"വയർ മുഖേന ബന്ധിപ്പിച്ച ഓഡിയോ ഉപകരണം"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-mn/strings.xml b/packages/SettingsLib/res/values-mn/strings.xml
index c8fb2a5..428d22c 100644
--- a/packages/SettingsLib/res/values-mn/strings.xml
+++ b/packages/SettingsLib/res/values-mn/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP хаяг ба порт"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Хурдан хариу үйлдлийн кодыг скан хийх"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Хурдан хариу үйлдлийн кодыг скан хийж Wi-Fi-р төхөөрөмжийг хослуулна уу"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, дебаг хийх, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Алдаа мэдээлэх товчлол"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Цэсэнд алдааны мэдэгдэл авахад зориулсан товчийг харуулах"</string>
@@ -416,7 +418,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Протаномаль (улаан-ногоон)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Тританомаль (цэнхэр-шар)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Өнгө тохируулах"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Өнгөний залруулга нь өнгө ялгадаггүй хүмүүст өнгийг илүү оновчтой харахад тусалдаг"</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="1284746051652993443">"Өнгө залруулга нь төхөөрөмж дээрээ өнгийг хэрхэн үзүүлэхийг тохируулах боломжийг танд олгодог"</string>
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Давхарласан <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Ойролцоогоор <xliff:g id="TIME_REMAINING">%1$s</xliff:g> үлдсэн"</string>
@@ -430,7 +432,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Ойролцоогоор <xliff:g id="TIME">%1$s</xliff:g> хүртэл барих ёстой (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Ойролцоогоор <xliff:g id="TIME">%1$s</xliff:g> хүртэл барих ёстой"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> хүртэл"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"<xliff:g id="TIME">%1$s</xliff:g>-с хойш батарейн ажиллах хугацааг сунгах"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-с бага хугацаа үлдсэн"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g>-с бага хугацаа үлдсэн (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>-с их хугацаа үлдсэн (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +511,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Утасны чанга яригч"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Холбогдоход асуудал гарлаа. Төхөөрөмжийг унтраагаад дахин асаана уу"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Утастай аудио төхөөрөмж"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml
index 543152a..377fa89 100644
--- a/packages/SettingsLib/res/values-mr/strings.xml
+++ b/packages/SettingsLib/res/values-mr/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"आयपी अ‍ॅड्रेस आणि पोर्ट"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR कोड स्कॅन करा"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR कोड स्कॅन करून वाय-फाय वापरून डिव्हाइस पेअर करा"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"ADB, डीबग, डेव्हलपर"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"बग रिपोर्ट शॉर्टकट"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"बग रिपोर्ट घेण्यासाठी पॉवर मेनूमध्ये एक बटण दर्शवा"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"क्षीण रक्तवर्णांधता (लाल-हिरवा)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"रंग दृष्टी कमतरता (निळा-पिवळा)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"रंग सुधारणा"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"रंग सुधारणा ही रंगांधळेपणा असलेल्या लोकांना रंग अधिक अचूक दिसण्यात मदत करते"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> द्वारे अधिलिखित"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"अंदाजे <xliff:g id="TIME_REMAINING">%1$s</xliff:g> बाकी आहे"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"सुमारे <xliff:g id="TIME">%1$s</xliff:g> पर्यंत टिकेल (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"सुमारे <xliff:g id="TIME">%1$s</xliff:g> पर्यंत टिकावी"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> पर्यंत"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"<xliff:g id="TIME">%1$s</xliff:g> नंतर वाढलेले बॅटरी लाइफ"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> पेक्षा कमी शिल्लक आहे"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> पेक्षा कमी वेळ शिल्लक आहे (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> पेक्षा जास्त वेळ शिल्लक आहे (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"फोनचा स्पीकर"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"कनेक्‍ट करण्‍यात समस्‍या आली. डिव्हाइस बंद करा आणि नंतर सुरू करा"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"वायर असलेले ऑडिओ डिव्हाइस"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml
index 2c59768..b8e608f 100644
--- a/packages/SettingsLib/res/values-ms/strings.xml
+++ b/packages/SettingsLib/res/values-ms/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Alamat IP &amp; Port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Imbas kod QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Gandingkan peranti melalui Wi-Fi dengan mengimbas Kod QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Pintasan laporan pepijat"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Tunjukkan butang dalam menu kuasa untuk mengambil laporan pepijat"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomali (merah-hijau)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomali (biru-kuning)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Pembetulan warna"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Pembetulan warna membantu orang yang mengalami kebutaan warna melihat warna yang lebih tepat"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Diatasi oleh <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Kira-kira <xliff:g id="TIME_REMAINING">%1$s</xliff:g> lagi"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Seharusnya boleh digunakan hingga kira-kira <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Seharusnya boleh digunakan hingga kira-kira <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Hingga <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Lanjutkan hayat bateri melepasi <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Tinggal kurang daripada <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Kurang daripada <xliff:g id="THRESHOLD">%1$s</xliff:g> lagi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Lebih daripada <xliff:g id="TIME_REMAINING">%1$s</xliff:g> lagi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Pembesar suara telefon"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Masalah penyambungan. Matikan &amp; hidupkan kembali peranti"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Peranti audio berwayar"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml
index ff24590..75c4aa1 100644
--- a/packages/SettingsLib/res/values-my/strings.xml
+++ b/packages/SettingsLib/res/values-my/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"အိုင်ပီ (IP) လိပ်စာနှင့် ပို့တ်"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR ကုဒ်ကို စကင်ဖတ်ပါ"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR ကုဒ် စကင်ဖတ်ခြင်းဖြင့် Wi-Fi ပေါ်တွင် စက်ပစ္စည်းကို အတူတွဲပါ"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"ချွတ်ယွင်းမှု အစီရင်ခံရန် ဖြတ်လမ်း"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"ချွတ်ယွင်းမှု အစီရင်ခံစာကို တင်ရန် ပါဝါမီနူးမှ ခလုတ်ကို ပြပါ"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaly (အနီ-အစိမ်း)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaly (အပြာ-အဝါ)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"အရောင်ပြင်ဆင်မှု"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"အရောင်ပြင်ဆင်ခြင်းက အရောင်မကွဲသူများအတွက် ပိုမိုတိကျသော အရောင်များ ကြည့်နိုင်ရန် ကူညီပေးသည်"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> မှ ကျော်၍ လုပ်ထားသည်။"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ခန့် ကျန်သည်"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"<xliff:g id="TIME">%1$s</xliff:g> ခန့်အထိ သုံးနိုင်သည် (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"<xliff:g id="TIME">%1$s</xliff:g> ခန့်အထိ သုံးနိုင်သည်"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> အထိ"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"ဘက်ထရီသက်တမ်း <xliff:g id="TIME">%1$s</xliff:g> ကျော်အထိ တိုးမြှင့်လိုက်ပါ"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ခန့်သာ ကျန်တော့သည်"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> အောက်သာ ကျန်သည် (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ကျော် ကျန်သည် (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ဖုန်းစပီကာ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ချိတ်ဆက်ရာတွင် ပြဿနာရှိပါသည်။ စက်ကိုပိတ်ပြီး ပြန်ဖွင့်ပါ"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ကြိုးတပ် အသံစက်ပစ္စည်း"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index 8c4e241..82b3270 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-adresse og port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Skann QR-koden"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Koble til enheten via Wi-Fi ved å skanne en QR-kode"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, feilsøking, utvikler"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Snarvei til feilrapport"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Vis en knapp for generering av feilrapport i batterimenyen"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomali (rød-grønn)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomali (blå-gul)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Fargekorrigering"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Med fargekorrigering kan personer med fargeblindhet se mer nøyaktige farger"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Overstyres av <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Omtrent <xliff:g id="TIME_REMAINING">%1$s</xliff:g> gjenstår"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Skal vare til omtrent <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Skal vare til omtrent <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Til <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Forleng batterilevetiden til etter <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Mindre enn <xliff:g id="THRESHOLD">%1$s</xliff:g> gjenstår"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Mindre enn <xliff:g id="THRESHOLD">%1$s</xliff:g> gjenstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Mer enn <xliff:g id="TIME_REMAINING">%1$s</xliff:g> gjenstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefonhøyttaler"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Tilkoblingsproblemer. Slå enheten av og på igjen"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Lydenhet med kabel"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml
index 89d66ab..c694db9 100644
--- a/packages/SettingsLib/res/values-ne/strings.xml
+++ b/packages/SettingsLib/res/values-ne/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP ठेगाना र पोर्ट"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR कोड स्क्यान गर्नुहोस्"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR कोड स्क्यान गरेर Wi‑Fi प्रयोग गरी यन्त्रको जोडा बनाउनुहोस्"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"बग प्रतिवेदन सर्टकट"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"बग रिपोर्ट लिनका लागि पावर मेनुमा बटन देखाउनुहोस्"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"प्रोटानेमली (रातो, हरियो)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"ट्रिटानोमेली (निलो-पंहेलो)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"रङ्ग सुधार"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"रङ सुधार गर्नुले रङ छुट्याउन नसक्ने मान्छेलाई थप सटीक रूपमा रङहरू छुट्याउन मद्दत गर्दछ"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> द्वारा अधिरोहित"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"लगभग <xliff:g id="TIME_REMAINING">%1$s</xliff:g> बाँकी छ"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"ब्याट्री लगभग <xliff:g id="TIME">%1$s</xliff:g> सम्म टिक्नु पर्छ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"लगभग <xliff:g id="TIME">%1$s</xliff:g> सम्म टिक्नु पर्छ"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> सम्म"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"ब्याट्रीको आयु <xliff:g id="TIME">%1$s</xliff:g> पछिसम्म विस्तार गरियो"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> भन्दा कम समय बाँकी छ"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> भन्दा कम समय बाँकी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> भन्दा बढी समय बाँकी (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"फोनको स्पिकर"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"जोड्ने क्रममा समस्या भयो। यन्त्रलाई निष्क्रिय पारेर फेरि सक्रिय गर्नुहोस्"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"तारयुक्त अडियो यन्त्र"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index 221ba53..30e1c13 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-adres en poort"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR-code scannen"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Apparaat koppelen via wifi door een QR-code te scannen"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, foutopsporing, ontwikkeling"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Snelle link naar bugrapport"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Een knop in het voedingsmenu weergeven om een bugrapport te maken"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalie (rood-groen)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalie (blauw-geel)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Kleurcorrectie"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Met behulp van kleurcorrectie kunnen mensen die kleurenblind zijn, nauwkeurigere kleuren te zien krijgen"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Overschreven door <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Nog ongeveer <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Is nog genoeg tot ongeveer <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Is nog genoeg tot ongeveer <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Tot <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Batterijduur verlengen tot na <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Nog minder dan <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Nog minder dan <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Nog meer dan <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefoonspeaker"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Probleem bij verbinding maken. Schakel het apparaat uit en weer in."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Bedraad audioapparaat"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-or/strings.xml b/packages/SettingsLib/res/values-or/strings.xml
index b475846de..9179125 100644
--- a/packages/SettingsLib/res/values-or/strings.xml
+++ b/packages/SettingsLib/res/values-or/strings.xml
@@ -218,7 +218,7 @@
     <string name="adb_paired_devices_title" msgid="5268997341526217362">"ପେୟାର୍ ହୋଇଥିବା ଡିଭାଇସଗୁଡ଼ିକ"</string>
     <string name="adb_wireless_device_connected_summary" msgid="3039660790249148713">"ବର୍ତ୍ତମାନ ସଂଯୁକ୍ତ ଅଛି"</string>
     <string name="adb_wireless_device_details_title" msgid="7129369670526565786">"ଡିଭାଇସ୍ ବିବରଣୀ"</string>
-    <string name="adb_device_forget" msgid="193072400783068417">"ଭୁଲିଗଲେ"</string>
+    <string name="adb_device_forget" msgid="193072400783068417">"ଭୁଲିଯାଆନ୍ତୁ"</string>
     <string name="adb_device_fingerprint_title_format" msgid="291504822917843701">"ଡିଭାଇସ୍ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ: <xliff:g id="FINGERPRINT_PARAM">%1$s</xliff:g>"</string>
     <string name="adb_wireless_connection_failed_title" msgid="664211177427438438">"ସଂଯୋଗ ବିଫଳ ହେଲା"</string>
     <string name="adb_wireless_connection_failed_message" msgid="9213896700171602073">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ଫୋନ୍ ନେଟୱାର୍କ ସହ ସଂଯୁକ୍ତ ଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP ଠିକଣା ଓ ପୋର୍ଟ"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR କୋଡ୍ ସ୍କାନ୍ କରନ୍ତୁ"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"ଏକ QR କୋଡ୍ ସ୍କାନ୍ କରି ୱାଇ-ଫାଇରେ ଡିଭାଇସ୍ ପେୟାର୍ କରନ୍ତୁ"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, ଡିବଗ୍, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"ବଗ୍ ରିପୋର୍ଟ ସର୍ଟକଟ୍‌"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"ବଗ୍ ରିପୋର୍ଟ ଦେବାପାଇଁ ପାୱାର୍‌ ମେନୁରେ ଏକ ବଟନ୍‌ ଦେଖନ୍ତୁ"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"ପ୍ରୋଟାନୋମାଲି (ଲାଲ୍‌-ସବୁଜ)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaly (ନୀଳ-ହଳଦିଆ)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"ରଙ୍ଗ ସଠିକତା"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"ରଙ୍ଗ ଚିହ୍ନିବାରେ ସମସ୍ୟା ଥିବା ଲୋକମାନଙ୍କୁ କଲର୍ କରେକ୍ସନ୍ ସଠିକ୍ ରଙ୍ଗ ଦେଖିବାରେ ସାହାଯ୍ୟ କରିଥାଏ"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> ଦ୍ୱାରା ଓଭର୍‌ରାଇଡ୍‌ କରାଯାଇଛି"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"ପାଖାପାଖି <xliff:g id="TIME_REMAINING">%1$s</xliff:g> ବଳକା ଅଛି"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"ବ୍ୟାଟେରୀ ପାଖାପାଖି <xliff:g id="TIME">%1$s</xliff:g> ଚାଲିବ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"ବ୍ୟାଟେରୀ <xliff:g id="TIME">%1$s</xliff:g> ପର୍ଯ୍ୟନ୍ତ ଚାଲିବ"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> ପର୍ଯ୍ୟନ୍ତ"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"ବ୍ୟାଟେରୀ ଲାଇଫ୍‌କୁ <xliff:g id="TIME">%1$s</xliff:g>ରୁ ଅଧିକ କରନ୍ତୁ"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g>ରୁ କମ୍ ସମୟ ବଳକା ଅଛି"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ରୁ କମ୍ ସମୟ ବଳକା ଅଛି (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>ରୁ ଅଧିକ ସମୟ ବଳକା ଅଛି(<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -453,7 +457,7 @@
     <string name="battery_info_status_full" msgid="4443168946046847468">"ଚାର୍ଜ ସମ୍ପୂର୍ଣ୍ଣ"</string>
     <string name="disabled_by_admin_summary_text" msgid="5343911767402923057">"ଆଡ୍‌ମିନ୍‌ ଦ୍ୱାରା ନିୟନ୍ତ୍ରିତ"</string>
     <string name="disabled" msgid="8017887509554714950">"ଅକ୍ଷମ ହୋଇଛି"</string>
-    <string name="external_source_trusted" msgid="1146522036773132905">"ଅନୁମୋଦିତ"</string>
+    <string name="external_source_trusted" msgid="1146522036773132905">"ଅନୁମତି ଦିଆଯାଇଛି"</string>
     <string name="external_source_untrusted" msgid="5037891688911672227">"ଅନୁମତି ନାହିଁ"</string>
     <string name="install_other_apps" msgid="3232595082023199454">"ଅଜଣା ଆପ୍‌ ଇନଷ୍ଟଲ୍‌ କରନ୍ତୁ"</string>
     <string name="home" msgid="973834627243661438">"ସେଟିଙ୍ଗ ହୋମ୍‌"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ଫୋନ୍ ସ୍ପିକର୍"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ସଂଯୋଗ କରିବାରେ ସମସ୍ୟା ହେଉଛି। ଡିଭାଇସ୍ ବନ୍ଦ କରି ପୁଣି ଚାଲୁ କରନ୍ତୁ"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ତାରଯୁକ୍ତ ଅଡିଓ ଡିଭାଇସ୍"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml
index 6cd3d84..34a836f 100644
--- a/packages/SettingsLib/res/values-pa/strings.xml
+++ b/packages/SettingsLib/res/values-pa/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP ਪਤਾ &amp; ਪੋਰਟ"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR ਕੋਡ ਸਕੈਨ ਕਰੋ"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR ਕੋਡ ਸਕੈਨ ਕਰਕੇ ਵਾਈ-ਫਾਈ \'ਤੇ ਡੀਵਾਈਸ ਜੋੜਾਬੱਧ ਕਰੋ"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, ਡੀਬੱਗ, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"ਬੱਗ ਰਿਪੋਰਟ ਸ਼ਾਰਟਕੱਟ"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"ਇੱਕ ਬੱਗ ਰਿਪੋਰਟ ਲੈਣ ਲਈ ਪਾਵਰ ਮੀਨੂ ਵਿੱਚ ਇੱਕ ਬਟਨ ਦਿਖਾਓ"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaly (ਲਾਲ-ਹਰਾ)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaly (ਨੀਲਾ-ਪੀਲਾ)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"ਰੰਗ ਸੁਧਾਈ"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"ਰੰਗ ਸੁਧਾਈ ਨਾਲ ਰੰਗਾਂ ਦੇ ਅੰਨ੍ਹੇਪਣ ਦੇ ਸ਼ਿਕਾਰ ਲੋਕਾਂ ਦੀ ਵਧੇਰੇ ਸਟੀਕ ਰੰਗਾਂ ਨੂੰ ਦੇਖਣ ਵਿੱਚ ਮਦਦ ਕੀਤੀ ਜਾਂਦੀ ਹੈ"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> ਦੁਆਰਾ ਓਵਰਰਾਈਡ ਕੀਤਾ"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"ਲਗਭਗ <xliff:g id="TIME_REMAINING">%1$s</xliff:g> ਬਾਕੀ"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> ਚੱਲੇਗਾ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"ਲਗਭਗ <xliff:g id="TIME">%1$s</xliff:g> ਤੱਕ ਚੱਲੇਗੀ"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> ਤੱਕ"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"ਬੈਟਰੀ ਲਾਈਫ਼ <xliff:g id="TIME">%1$s</xliff:g> ਤੋਂ ਬਾਅਦ ਤੱਕ ਵਧਾਓ"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ਤੋਂ ਘੱਟ ਸਮਾਂ ਬਾਕੀ"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> ਤੋਂ ਘੱਟ ਸਮਾਂ ਬਾਕੀ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ਤੋਂ ਵੱਧ ਸਮਾਂ ਬਾਕੀ (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ਫ਼ੋਨ ਦਾ ਸਪੀਕਰ"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"ਕਨੈਕਟ ਕਰਨ ਵਿੱਚ ਸਮੱਸਿਆ ਆਈ। ਡੀਵਾਈਸ ਨੂੰ ਬੰਦ ਕਰਕੇ ਵਾਪਸ ਚਾਲੂ ਕਰੋ"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"ਤਾਰ ਵਾਲਾ ਆਡੀਓ ਡੀਵਾਈਸ"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index 8ab91fa..193b307 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Adres IP i port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Zeskanuj kod QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Sparuj urządzenia przez Wi-Fi, skanując kod QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Skrót do zgłoszenia błędu"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Pokaż w menu zasilania przycisk zgłaszania błędu"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalia (czerwony-zielony)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalia (niebieski-żółty)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Korekcja kolorów"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Korekcja kolorów pomaga osobom z zaburzeniami rozpoznawania barw lepiej je widzieć"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Nadpisana przez <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Jeszcze około <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Powinno wystarczyć do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Powinno wystarczyć do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Wydłuż czas pracy na baterii ponad <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Pozostało mniej niż <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Pozostało mniej niż <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Pozostało ponad: <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -510,4 +514,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Głośnik telefonu"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem z połączeniem. Wyłącz i ponownie włącz urządzenie"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Przewodowe urządzenie audio"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 16b92e9..a083a03 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Endereço IP e porta"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Ler código QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Parear dispositivo na rede Wi‑Fi fazendo a leitura do código QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Atalho para relatório de bugs"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Mostrar um botão para gerar relatórios de bugs no menu do botão liga/desliga"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalia (vermelho-verde)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalia (azul-amarelo)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Correção de cor"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"A correção de cores ajuda pessoas com daltonismo a ver cores de forma mais precisa"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Substituído por <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Tempo restante aproximado: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Deve durar até cerca de <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Deve durar até cerca de <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Até <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Estender duração da bateria depois de <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> restante(s)"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Mais de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Alto-falante do smartphone"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ocorreu um problema na conexão. Desligue o dispositivo e ligue-o novamente"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de áudio com fio"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index f1cb113..7dd4dfb 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Porta e endereço IP"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Leia o código QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Sincronize o dispositivo através de Wi-Fi ao ler um código QR."</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, depurar, programador"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Atalho para relatório de erro"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Mostrar um botão no menu ligar/desligar para criar um relatório de erro"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalia (vermelho-verde)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalia (azul-amarelo)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Correção da cor"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"A correção de cor ajuda as pessoas com daltonismo a ver cores mais precisas."</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Substituído por <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Resta(m) cerca de <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Deve durar até cerca da(s) <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Deve durar até cerca da(s) <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Até à(s) <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Prolongar a autonomia da bateria após <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Resta(m) menos de <xliff:g id="THRESHOLD">%1$s</xliff:g>."</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Resta(m) menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Resta(m) mais de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)."</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altifalante do telemóvel"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problema ao ligar. Desligue e volte a ligar o dispositivo."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de áudio com fios"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index 16b92e9..a083a03 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Endereço IP e porta"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Ler código QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Parear dispositivo na rede Wi‑Fi fazendo a leitura do código QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Atalho para relatório de bugs"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Mostrar um botão para gerar relatórios de bugs no menu do botão liga/desliga"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalia (vermelho-verde)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalia (azul-amarelo)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Correção de cor"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"A correção de cores ajuda pessoas com daltonismo a ver cores de forma mais precisa"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Substituído por <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Tempo restante aproximado: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Deve durar até cerca de <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Deve durar até cerca de <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Até <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Estender duração da bateria depois de <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> restante(s)"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Menos de <xliff:g id="THRESHOLD">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Mais de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> restante(s) (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Alto-falante do smartphone"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ocorreu um problema na conexão. Desligue o dispositivo e ligue-o novamente"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispositivo de áudio com fio"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index 06a83f5..1d68fb7 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Adresa IP și portul"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Scanați codul QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Asociați dispozitivul prin Wi-Fi scanând un cod QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, remedierea erorilor, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Comandă rapidă pentru raportul de erori"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Afișați un buton în meniul de pornire pentru a realiza un raport de erori"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalie (roșu-verde)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalie (albastru-galben)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Corecția culorii"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Corecția culorii ajută persoanele cu daltonism să vadă culori mai exacte"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Valoare înlocuită de <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Timp aproximativ rămas: <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Ar trebui să reziste până la <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Ar trebui să reziste până la <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Până la <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Extindeți autonomia bateriei după <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"a mai rămas mai puțin de <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"A mai rămas mai puțin de <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"A mai rămas mai mult de <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -509,4 +513,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Difuzorul telefonului"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problemă la conectare. Opriți și reporniți dispozitivul."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Dispozitiv audio cu fir"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index 5439979..6857dd7 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-адрес и порт"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Сканировать QR-код"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Подключение устройства через Wi‑Fi с использованием QR-кода"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, отладка, разработчик"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Отчет об ошибке"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Показывать в меню кнопки питания пункт для отправки отчета об ошибке"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Протаномалия (красный/зеленый)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Тританомалия (синий/желтый)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Коррекция цвета"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Коррекция цвета помогает пользователям с нарушениями цветового зрения лучше различать изображение на экране"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Новая настройка: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"Уровень заряда – <xliff:g id="PERCENTAGE">%1$s</xliff:g>. <xliff:g id="TIME_STRING">%2$s</xliff:g>."</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Заряда хватит примерно на <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Заряда (<xliff:g id="LEVEL">%2$s</xliff:g>) хватит примерно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Заряда хватит примерно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"До <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Продлите время работы от батареи <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Осталось менее <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Уровень заряда батареи: <xliff:g id="LEVEL">%2$s</xliff:g> (хватит менее чем на <xliff:g id="THRESHOLD">%1$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Уровень заряда батареи: <xliff:g id="LEVEL">%2$s</xliff:g> (хватит более чем на <xliff:g id="TIME_REMAINING">%1$s</xliff:g>)"</string>
@@ -510,4 +514,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Встроенный динамик"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ошибка подключения. Выключите и снова включите устройство."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Проводное аудиоустройство"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml
index b441209..2c732ed 100644
--- a/packages/SettingsLib/res/values-si/strings.xml
+++ b/packages/SettingsLib/res/values-si/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP ලිපිනය &amp; තොට"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR කේතය ස්කෑන් කරන්න"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR කේතය ස්කෑන් කිරීමෙන් Wi‑Fi හරහා උපාංගය යුගල කරන්න"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, දෝෂාවෙක්ෂණ, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"දෝෂය වාර්තා කිරීමේ කෙටිමඟ"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"දෝෂ වාර්තාවක් ගැනීම සඳහා බල මෙනුව තුළ බොත්තම පෙන්වන"</string>
@@ -416,7 +418,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"වර්ණ දුර්වලතාවය (රතු-කොළ)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"වර්ණ අන්ධතාවය (නිල්-කහ)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"වර්ණ නිවැරදි කිරීම"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"වර්ණ අන්ධතාවෙන් පෙළෙන පුද්ගලයන්ට වඩාත් නිරවද්‍ය වර්ණ බැලීමට වර්ණ නිවැරදි කිරීම සහාය වේ"</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="1284746051652993443">"වර්ණ නිවැරදි කිරීම ඔබට ඔබේ උපාංගයෙහි වර්ණ සංදර්ශනය වන ආකාරය සීරුමාරු කිරීමට ඉඩ දේ"</string>
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> මගින් ඉක්මවන ලදී"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> ක් පමණ ඉතිරියි"</string>
@@ -430,7 +432,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"<xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>) පමණ වන තෙක් තිබිය යුතුය"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"<xliff:g id="TIME">%1$s</xliff:g> පමණ වන තෙක් තිබිය යුතුය"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> දක්වා"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"බැටරි ආයු කාලය <xliff:g id="TIME">%1$s</xliff:g> ට වඩා දීර්ඝ කරන්න"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g>ට වඩා අඩුවෙන් ඉතිරිව ඇත"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g>ට වඩා අඩුවෙන් ඉතිරිය (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>ට වඩා වැඩියෙන් ඉතිරිය (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +511,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"දුරකථන ස්පීකරය"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"සම්බන්ධ කිරීමේ ගැටලුවකි උපාංගය ක්‍රියාවිරහිත කර &amp; ආපසු ක්‍රියාත්මක කරන්න"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"රැහැන්ගත කළ ඕඩියෝ උපාංගය"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 41a858d..1032fd8 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Adresa IP a port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Naskenujte QR kód"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Spárujte zariadenie cez sieť Wi-Fi naskenovaním QR kódu"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, ladenie, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Skratka hlásenia chyby"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Zobraziť v hlavnej ponuke tlačidlo na vytvorenie hlásenia chyby"</string>
@@ -416,7 +418,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomália (červená a zelená)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomália (modrá a žltá)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Úprava farieb"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Korekcia farieb pomáha farboslepým ľuďom vidieť presnejšie farby"</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="1284746051652993443">"Úprava farieb umožňuje nastaviť spôsob zobrazovania farieb vo vašom zariadení"</string>
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Prekonané predvoľbou <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Zostáva približne <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +432,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Vydrží asi do <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Vydrží asi do <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Predĺžiť výdrž batérie minimálne do <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Zostáva menej ako <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Zostáva menej ako <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Zostáva viac ako <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -510,4 +513,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Reproduktor telefónu"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Pri pripájaní sa vyskytol problém. Zariadenie vypnite a znova zapnite."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Audio zariadenie s káblom"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index 50b8ef2..a25cdd0 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Naslov IP in vrata"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Optično branje kode QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Seznanitev naprave prek Wi‑Fi-ja z optičnim branjem kode QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, odpravljanje napak, razvoj"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Bližnjica za poročanje o napakah"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Prikaz gumba za ustvarjanje poročila o napakah v meniju za vklop/izklop"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomalija (rdeča – zelena)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomalija (modra – rumena)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Popravljanje barv"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Popravljanje barv osebam z barvno slepoto pomaga, da vidijo razločnejše barve"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Preglasila nastavitev: <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Še približno <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Naprava bi morala delovati do približno <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Moralo bi zadostovati do približno <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Do <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Podaljšanje časa delovanja akumulatorja za dlje kot <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Preostalo manj kot <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Preostanek: manj kot <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Preostali čas delovanja: manj kot <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -510,4 +514,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Zvočnik telefona"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Težava pri povezovanju. Napravo izklopite in znova vklopite."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Žična zvočna naprava"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml
index e3f2680..0ebfef8 100644
--- a/packages/SettingsLib/res/values-sq/strings.xml
+++ b/packages/SettingsLib/res/values-sq/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Adresa e IP-së dhe porta"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Skano kodin QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Çifto pajisjen përmes Wi‑Fi duke skanuar një kod QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, korrigjimi, zhvilluesi"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Shkurtorja e raportit të defektit në kod"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Shfaq një buton në menynë e fikjes për marrjen e raportit të defekteve"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomali (e kuqe - e gjelbër)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomali (e kaltër - e verdhë)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Korrigjimi i ngjyrës"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Korrigjimi i ngjyrës i ndihmon njerëzit me daltonizëm të shohin ngjyra më të sakta"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Mbivendosur nga <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Rreth <xliff:g id="TIME_REMAINING">%1$s</xliff:g> të mbetura"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Duhet të zgjasë deri në rreth <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Duhet të zgjasë deri në rreth <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Deri në <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Rrite kohëzgjatjen e baterisë pas orës <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Më pak se <xliff:g id="THRESHOLD">%1$s</xliff:g> të mbetura"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Mbeten më pak se <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Mbeten më shumë se <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Altoparlanti i telefonit"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Problem me lidhjen. Fike dhe ndize përsëri pajisjen"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Pajisja audio me tel"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index 31e395c..109a93a 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP адреса и порт"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Скенирај QR кôд"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Упарите уређај помоћу Wi‑Fi мреже или тако што ћете скенирати QR кôд"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, отклањање грешака, програмер"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Пречица за извештај о грешкама"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Прикажи дугме у менију напајања за прављење извештаја о грешкама"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Протаномалија (црвено-зелено)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Тританомалија (плаво-жуто)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Корекција боја"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Корекција боја помаже људима који су далтонисти да прецизније виде боје"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Замењује га <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g>–<xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Преостало је око <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Трајаће приближно до <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Трајаће приближно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"До <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Продужи трајање батерије у односу на период од <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Преостало је мање од <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Преостало је мање од <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Преостало је више од <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -509,4 +513,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Звучник телефона"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Проблем при повезивању. Искључите уређај, па га поново укључите"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Жичани аудио уређај"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index 634a16e..5a74966 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-adress och port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Skanna QR-kod"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Parkoppla enheten via Wi-Fi genom att skanna en QR-kod"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev, felsöka, felsökning"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Genväg till felrapport"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Visa en knapp för felrapportering i extramenyn"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomali (rött-grönt)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomali (blått-gult)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Färgkorrigering"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Med färgkorrigering kan färgblinda personer se mer korrekta färger"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Har åsidosatts av <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Cirka <xliff:g id="TIME_REMAINING">%1$s</xliff:g> kvar"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Bör räcka ungefär till klockan <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Bör räcka ungefär till klockan <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Till kl. <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Förläng batteritiden tills efter <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Mindre än <xliff:g id="THRESHOLD">%1$s</xliff:g> återstår"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Mindre än <xliff:g id="THRESHOLD">%1$s</xliff:g> återstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Mer än <xliff:g id="TIME_REMAINING">%1$s</xliff:g> återstår (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefonens högtalare"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Det gick inte att ansluta. Stäng av enheten och slå på den igen"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Ljudenhet med kabelanslutning"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index 3263a6c..6d52cc7 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Anwani ya IP na Mlango"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Changanua msimbo wa QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Oanisha kifaa kupitia Wi-Fi kwa kuchanganua Msimbo wa QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, tatua, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Njia ya mkato ya kuripoti hitilafu"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Onyesha kitufe cha kuripoti hitilafu katika menyu ya kuzima/kuwasha kifaa"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaly (nyekundu-kijani)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaly (samawati-manjano)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Usahihishaji wa rangi"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Urekebishaji wa rangi huwasaidia watu wenye matatizo ya kutofautisha rangi ili waone rangi nyingi sahihi"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Imetanguliwa na <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Zimesalia takribani <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Inapaswa kudumu kwa takribani <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Inapaswa kudumu hadi <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Hadi <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Ongeza muda wa matumizi ya betri upite <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Zimesalia chini ya <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Zimesalia chini ya <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Zimesalia zaidi ya <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Spika ya simu"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Kuna tatizo la kuunganisha kwenye Intaneti. Zima kisha uwashe kifaa"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Kifaa cha sauti kinachotumia waya"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml
index ce4d72d..63faee6 100644
--- a/packages/SettingsLib/res/values-ta/strings.xml
+++ b/packages/SettingsLib/res/values-ta/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP முகவரி &amp; போர்ட்"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR குறியீட்டை ஸ்கேன் செய்தல்"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR குறியீட்டை ஸ்கேன் செய்வதன் மூலம் சாதனத்தை வைஃபை மூலம் இணைக்கலாம்"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"பிழைப் புகாருக்கான ஷார்ட்கட்"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"பிழை அறிக்கையைப் பெற பவர் மெனுவில் விருப்பத்தைக் காட்டு"</string>
@@ -357,8 +359,7 @@
     <string name="enable_gpu_debug_layers" msgid="4986675516188740397">"GPU பிழைத்திருத்த லேயர்களை இயக்கு"</string>
     <string name="enable_gpu_debug_layers_summary" msgid="4921521407377170481">"பிழைத்திருத்த ஆப்ஸிற்கு, GPU பிழைத்திருத்த லேயர்களை ஏற்றுவதற்கு அனுமதி"</string>
     <string name="enable_verbose_vendor_logging" msgid="1196698788267682072">"வெர்போஸ் வெண்டார் பதிவை இயக்கு"</string>
-    <!-- no translation found for enable_verbose_vendor_logging_summary (5426292185780393708) -->
-    <skip />
+    <string name="enable_verbose_vendor_logging_summary" msgid="5426292185780393708">"பிழை அறிக்கைகளில் சாதனம் சார்ந்த கூடுதல் வெண்டார் பதிவுகளைச் சேர்க்கவும். அவற்றில் தனிப்பட்ட தகவல்கள், அதிக பேட்டரி உபயோகம் மற்றும்/அல்லது அதிக சேமிப்பிட உபயோகம் குறித்த தகவல்கள் இருக்கக்கூடும்."</string>
     <string name="window_animation_scale_title" msgid="5236381298376812508">"சாளர அனிமேஷன் வேகம்"</string>
     <string name="transition_animation_scale_title" msgid="1278477690695439337">"அனிமேஷன் மாற்றத்தின் வேகம்"</string>
     <string name="animator_duration_scale_title" msgid="7082913931326085176">"அனிமேட்டர் கால அளவு"</string>
@@ -417,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"நிறம் அடையாளங்காண முடியாமை (சிவப்பு-பச்சை)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"நிறம் அடையாளங்காண முடியாமை (நீலம்-மஞ்சள்)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"வண்ணத்திருத்தம்"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"நிறக்குருடு உள்ளவர்கள் வண்ணங்களை இன்னும் துல்லியமாகப் பார்க்க வண்ணத் திருத்தம் உதவுகிறது"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> மூலம் மேலெழுதப்பட்டது"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"கிட்டத்தட்ட <xliff:g id="TIME_REMAINING">%1$s</xliff:g> மீதமுள்ளது"</string>
@@ -431,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"<xliff:g id="TIME">%1$s</xliff:g> வரை பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"<xliff:g id="TIME">%1$s</xliff:g> வரை பயன்படுத்த முடியும்"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> வரை"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"<xliff:g id="TIME">%1$s</xliff:g> மணிக்குப் பிறகு பேட்டரி நிலையை நீட்டிக்கவும்"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g>க்கும் குறைவாகவே பயன்படுத்த முடியும்"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g>க்கும் குறைவாகவே பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>க்கும் மேல் பயன்படுத்த முடியும் (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -509,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"மொபைல் ஸ்பீக்கர்"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"இணைப்பதில் சிக்கல். சாதனத்தை ஆஃப் செய்து மீண்டும் ஆன் செய்யவும்"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"வயருடன்கூடிய ஆடியோ சாதனம்"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml
index 2508d74..9cfe541 100644
--- a/packages/SettingsLib/res/values-te/strings.xml
+++ b/packages/SettingsLib/res/values-te/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP చిరునామా &amp; పోర్ట్"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR కోడ్‌ను స్కాన్ చేయండి"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"పరికరాన్ని Wi-Fi ద్వారా పెయిర్ చేయడానికి QR కోడ్‌ను స్కాన్ చేయండి"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, డీబగ్, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"బగ్ నివేదిక షార్ట్‌కట్"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"బగ్ నివేదికను తీసుకోవడానికి పవర్ మెనూలో బటన్‌ను చూపు"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"ప్రొటానోమలీ (ఎరుపు-ఆకుపచ్చ రంగు)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"ట్రైటనోమలీ (నీలం-పసుపు రంగు)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"రంగు సవరణ"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"రంగులను సరి చేయడం వల్ల, కలర్ బ్లైండ్‌నెస్ ఉన్నవారు మరింత ఖచ్చితమైన రంగులను చూడగలుగుతారు"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> ద్వారా భర్తీ చేయబడింది"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> సమయం మిగిలి ఉంది"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"దాదాపు <xliff:g id="TIME">%1$s</xliff:g> వరకు ఉండాలి (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"దాదాపు <xliff:g id="TIME">%1$s</xliff:g> వరకు ఉండాలి"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> వరకు"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"గత <xliff:g id="TIME">%1$s</xliff:g> కంటే ఎక్కువ ఉండేలా బ్యాటరీ జీవిత కాలాన్ని పెంచుకోండి"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> కంటే తక్కువ సమయం మిగిలి ఉంది"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> కంటే తక్కువ సమయం మిగిలి ఉంది (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> కంటే ఎక్కువ సమయం మిగిలి ఉంది (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ఫోన్ స్పీకర్"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"కనెక్ట్ చేయడంలో సమస్య ఉంది. పరికరాన్ని ఆఫ్ చేసి, ఆపై తిరిగి ఆన్ చేయండి"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"వైర్ గల ఆడియో పరికరం"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index bc0970c..05633ca 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"ที่อยู่ IP และพอร์ต"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"สแกนคิวอาร์โค้ด"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"จับคู่อุปกรณ์ผ่าน Wi‑Fi ด้วยการสแกนคิวอาร์โค้ด"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, แก้ไขข้อบกพร่อง, พัฒนา"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"ทางลัดรายงานข้อบกพร่อง"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"แสดงปุ่มในเมนูเปิด/ปิดสำหรับการใช้รายงานข้อบกพร่อง"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"ตาบอดจางสีแดง (สีแดง/เขียว)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"ตาบอดจางสีน้ำเงิน (สีน้ำเงิน/เหลือง)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"การแก้สี"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"การแก้ไขสีช่วยให้ผู้ที่มีอาการตาบอดสีเห็นสีต่างๆ ได้ตรงตามจริงยิ่งขึ้น"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"แทนที่โดย <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"เหลืออีกประมาณ <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"น่าจะใช้งานได้ถึงเวลาประมาณ <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"น่าจะใช้งานได้ถึงเวลาประมาณ <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"จนถึง <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"ยืดอายุการใช้งานแบตเตอรี่หลังเวลา <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"เหลืออีกไม่ถึง <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"เหลือเวลาอีกไม่ถึง <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"เหลือเวลามากกว่า <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"ลำโพงโทรศัพท์"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"เกิดปัญหาในการเชื่อมต่อ ปิดอุปกรณ์แล้วเปิดใหม่อีกครั้ง"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"อุปกรณ์เสียงแบบมีสาย"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index 9ed2d9a..ac682f5 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP address at Port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"I-scan ang QR code"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Ipares ang device gamit ang Wi‑Fi sa pamamagitan ng pag-scan ng isang QR Code"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debug, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Shortcut ng ulat sa bug"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Magpakita ng button sa power menu sa pagkuha ng ulat sa bug"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaly (pula-berde)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaly (asul-dilaw)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Pagtatama ng kulay"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Tinutulungan ng color correction ang mga taong colorblind na makakita ng mas tumpak na kulay"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Na-override ng <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Humigit-kumulang <xliff:g id="TIME_REMAINING">%1$s</xliff:g> ang natitira"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Tatagal dapat nang hanggang humigit-kumulang <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Tatagal hanggang mga <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Hanggang <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Patagalin ang baterya nang lampas <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Wala nang <xliff:g id="THRESHOLD">%1$s</xliff:g> ang natitira"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Wala nang <xliff:g id="THRESHOLD">%1$s</xliff:g> ang natitira (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Mahigit <xliff:g id="TIME_REMAINING">%1$s</xliff:g> pa ang natitira (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Speaker ng telepono"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Nagkaproblema sa pagkonekta. I-off at pagkatapos ay i-on ang device"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Wired na audio device"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index 1a489d1..908409b 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP adresi ve Bağlantı noktası"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR kodunu tara"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR kodu tarayarak kablosuz ağ üzerinden cihaz eşleyin"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, hata ayıklama, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Hata raporu kısayolu"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Hata raporu almak için güç menüsünde bir düğme göster"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Kırmızı renk körlüğü (kırmızı-yeşil)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Mavi renk körlüğü (mavi-sarı)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Renk düzeltme"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Renk düzeltme, renk körlüğü olan kişilerin daha doğru renkler görmelerine yardımcı olur"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> tarafından geçersiz kılındı"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Yaklaşık <xliff:g id="TIME_REMAINING">%1$s</xliff:g> kaldı"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Saat yaklaşık <xliff:g id="TIME">%1$s</xliff:g> olana kadar kullanılabilmelidir (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Saat yaklaşık <xliff:g id="TIME">%1$s</xliff:g> olana kadar kullanılabilmelidir"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Şu saate kadar: <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Şu saatten sonra pil ömrünü uzat: <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"En fazla <xliff:g id="THRESHOLD">%1$s</xliff:g> kaldı"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"En çok <xliff:g id="THRESHOLD">%1$s</xliff:g> kaldı (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"En az <xliff:g id="TIME_REMAINING">%1$s</xliff:g> kaldı (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefon hoparlörü"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Bağlanırken sorun oluştu. Cihazı kapatıp tekrar açın"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Kablolu ses cihazı"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index fbe2ba6..c9a785f 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP-адреса та порт"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Сканувати QR-код"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Підключати пристрій через Wi‑Fi за допомогою QR-коду"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, налагодження, розробка"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Ярлик звіту про помилки"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Показувати в меню живлення кнопку створення звіту про помилки"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Протаномалія (червоний – зелений)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Тританомалія (синій – жовтий)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Корекція кольору"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Корекція кольору допомагає людям із дальтонізмом бачити точніші кольори"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Замінено на <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Залишилося приблизно <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Вистачить приблизно до <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Вистачить приблизно до <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"До <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Подовжити час роботи акумулятора до <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Залишилося менше ніж <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Залишилося менше ніж <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Залишилося понад <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -510,4 +514,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Динамік телефона"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Не вдається підключитися. Перезавантажте пристрій."</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Дротовий аудіопристрій"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml
index 56f4f06..335808d 100644
--- a/packages/SettingsLib/res/values-ur/strings.xml
+++ b/packages/SettingsLib/res/values-ur/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"‏IP پتہ اور پورٹ"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"‏QR کوڈ اسکین کریں"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"‏QR کوڈ اسکین کر کے Wi-Fi پر آلہ کا جوڑا بنائیں"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"‏adb، ڈیبگ، dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"بگ رپورٹ کا شارٹ کٹ"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"بگ رپورٹ لینے کیلئے پاور مینو میں ایک بٹن دکھائیں"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"‏Protanomaly (سرخ سبز)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"‏Tritanomaly (نیلا پیلا)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"رنگ کی اصلاح"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"رنگ کی درستگی رنگ نہ دکھائی دینے والے لوگوں کی رنگوں کو مزید درست طریقے سے دیکھنے میں مدد کرتی ہے"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> کے ذریعہ منسوخ کردیا گیا"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"تقریباً <xliff:g id="TIME_REMAINING">%1$s</xliff:g> باقی ہے"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"تقریباً <xliff:g id="TIME">%1$s</xliff:g> تک بیٹری چلے گی (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"تقریباً <xliff:g id="TIME">%1$s</xliff:g> تک بیٹری چلے گی"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> تک"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"<xliff:g id="TIME">%1$s</xliff:g> کے بعد بیٹری لائف بڑھائیں"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g> سے کم باقی ہے"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g> سے کم باقی ہے (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g> سے زیادہ باقی ہے (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"فون اسپیکر"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"منسلک کرنے میں مسئلہ پیش آ گیا۔ آلہ کو آف اور بیک آن کریں"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"وائرڈ آڈیو آلہ"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml
index df11004..c321d85 100644
--- a/packages/SettingsLib/res/values-uz/strings.xml
+++ b/packages/SettingsLib/res/values-uz/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP manzil va port"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"QR kodni skanerlash"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"QR kodni skanerlab, Wi-Fi orqali qurilmani ulang"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, debag, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Xatoliklar hisoboti"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Menyuda xatoliklar hisobotini yuborish tugmasi ko‘rsatilsin"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Protanomaliya (qizil/yashil)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Tritanomaliya (ko‘k/sariq)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Rangni tuzatish"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Ranglarni sozlash ranglarni farqlashda muammosi bor insonlarga (masalan, daltoniklarga) aniq koʻrishda yordam beradi"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"<xliff:g id="TITLE">%1$s</xliff:g> bilan almashtirildi"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> – <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Taxminan <xliff:g id="TIME_REMAINING">%1$s</xliff:g> qoldi"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Taxminan <xliff:g id="TIME">%1$s</xliff:g> gacha davom etadi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Taxminan <xliff:g id="TIME">%1$s</xliff:g> gacha davom etadi"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"<xliff:g id="TIME">%1$s</xliff:g> gacha"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"<xliff:g id="TIME">%1$s</xliff:g> oʻtgach batareya quvvatini oshirish"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"<xliff:g id="THRESHOLD">%1$s</xliff:g>dan kamroq vaqt qoldi"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"<xliff:g id="THRESHOLD">%1$s</xliff:g>dan kamroq vaqt qoldi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"<xliff:g id="TIME_REMAINING">%1$s</xliff:g>dan ko‘proq vaqt qoldi (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Telefon karnayi"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Ulanishda muammo yuz berdi. Qurilmani oʻchiring va yoqing"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Simli audio qurilma"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index 9863bfe..61f99fe 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Địa chỉ IP và cổng"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Quét mã QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Ghép nối thiết bị qua Wi-Fi bằng cách quét mã QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, gỡ lỗi, nhà phát triển"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Phím tắt báo cáo lỗi"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Hiển thị một nút trong menu nguồn để báo cáo lỗi"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"Mù màu đỏ không hoàn toàn (đỏ-xanh lục)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"Mù màu (xanh lam-vàng)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Sửa màu"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Tính năng hiệu chỉnh màu sắc giúp những người bị mù màu thấy màu sắc chính xác hơn"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Bị ghi đè bởi <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Còn khoảng <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Sẽ hết pin cho tới khoảng <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Sẽ hết pin cho tới khoảng <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Cho đến <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Kéo dài thời lượng pin qua <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Còn lại không đến <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Còn lại không đến <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Còn lại hơn <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Loa điện thoại"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Sự cố kết nối. Hãy tắt thiết bị rồi bật lại"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Thiết bị âm thanh có dây"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index b83469b..56be76f 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP 地址和端口"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"扫描二维码"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"扫描二维码即可通过 WLAN 配对设备"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"adb, 调试, debug, 开发, dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"错误报告快捷方式"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"在电源菜单中显示用于提交错误报告的按钮"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"红色弱视(红绿不分)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"蓝色弱视(蓝黄不分)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"色彩校正"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"颜色校正功能有助于色盲用户看到更准确的颜色"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"已被“<xliff:g id="TITLE">%1$s</xliff:g>”覆盖"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"大约还可使用 <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"目前电量为 <xliff:g id="LEVEL">%2$s</xliff:g>,估计能用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"估计能用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"直到<xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"在<xliff:g id="TIME">%1$s</xliff:g> 之后延长电池续航时间"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"剩余电池续航时间不到 <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"电量剩余使用时间不到 <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"电量剩余使用时间超过 <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"手机扬声器"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"连接时遇到问题。请关闭并重新开启设备"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"有线音频设备"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index 992cb5f..cfb86b9 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP 位址和連接埠"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"掃瞄二維條碼"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"掃瞄二維條碼即可透過 Wi-Fi 配對裝置"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"ADB, 偵錯, 開發"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"錯誤舉報捷徑"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"在電源選單中顯示提交錯誤舉報的按鈕"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"紅色弱視 (紅綠)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"藍色弱視 (藍黃)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"色彩校正"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"色彩校正可以協助色盲人士睇到更加準確嘅顏色"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"已由「<xliff:g id="TITLE">%1$s</xliff:g>」覆寫"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"還有大約 <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"電量剩餘約 <xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"電量剩餘約 <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"還可用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"將電池壽命延長至 <xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"剩餘電量時間少於 <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"還有少於 <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"還有超過 <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"手機喇叭"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"無法連接,請關閉裝置然後重新開機"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"有線音響裝置"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index 6c664d9..cf3f343 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"IP 位址和通訊埠"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"掃描 QR 圖碼"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"掃描 QR 圖碼即可透過 Wi-Fi 配對裝置"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"ADB, 偵錯, 開發"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"錯誤回報捷徑"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"在電源選單中顯示取得錯誤報告的按鈕"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"紅色弱視 (紅-綠)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"藍色弱視 (藍-黃)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"色彩校正"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"色彩校正可協助色盲使用者看見較準確的色彩"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"已改為<xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"還能使用約 <xliff:g id="TIME_REMAINING">%1$s</xliff:g>"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"目前電量 <xliff:g id="LEVEL">%2$s</xliff:g>,預估還能持續使用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"預估還能持續使用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"還能持續使用到<xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"在 <xliff:g id="TIME">%1$s</xliff:g>後延長電池續航力"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"電池可用時間不到 <xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"電池可用時間不到 <xliff:g id="THRESHOLD">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"電池可用時間超過 <xliff:g id="TIME_REMAINING">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"手機喇叭"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"無法連線,請關閉裝置後再重新開啟"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"有線音訊裝置"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index 6def217..78e2099 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -232,6 +232,8 @@
     <string name="adb_wireless_ip_addr_preference_title" msgid="8335132107715311730">"Ikheli le-IP nembobo"</string>
     <string name="adb_wireless_qrcode_pairing_title" msgid="1906409667944674707">"Skena ikhodi ye-QR"</string>
     <string name="adb_wireless_qrcode_pairing_description" msgid="8578868049289910131">"Bhangqa idivayisi nge-Wi‑Fi ngokuskena ikhodi ye-QR"</string>
+    <!-- no translation found for adb_wireless_no_network_msg (2365795244718494658) -->
+    <skip />
     <string name="keywords_adb_wireless" msgid="6507505581882171240">"i-adb, ukulungisa amaphutha, i-dev"</string>
     <string name="bugreport_in_power" msgid="8664089072534638709">"Isinqamuleli sombiko wesiphazamisi"</string>
     <string name="bugreport_in_power_summary" msgid="1885529649381831775">"Bonisa inkinobho kwimenyu yamandla ngokuthatha umbiko wesiphazamiso"</string>
@@ -416,7 +418,8 @@
     <string name="daltonizer_mode_protanomaly" msgid="7805583306666608440">"I-Protanomaly (bomvu-luhlaza)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="7135266249220732267">"I-Tritanomaly (luhlaza okwesibhakabhaka-phuzi)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="1810693571332381974">"Ukulungiswa kombala"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="6178138727195403796">"Ukulungisa umbala kusiza abantu abangaboni imibala bobone imibala enembe kakhulu"</string>
+    <!-- no translation found for accessibility_display_daltonizer_preference_subtitle (1284746051652993443) -->
+    <skip />
     <string name="daltonizer_type_overridden" msgid="4509604753672535721">"Igitshezwe ngaphezulu yi-<xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_settings_home_page" msgid="4885165789445462557">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> - <xliff:g id="TIME_STRING">%2$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="8264199158671531431">"Cishe u-<xliff:g id="TIME_REMAINING">%1$s</xliff:g> osele"</string>
@@ -430,7 +433,8 @@
     <string name="power_discharge_by" msgid="4113180890060388350">"Kumele ihlale cishe kube ngu-<xliff:g id="TIME">%1$s</xliff:g> (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_discharge_by_only" msgid="92545648425937000">"Kumele ihlale cishe kube ngu-<xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_discharge_by_only_short" msgid="5883041507426914446">"Kuze kube ngu-<xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="power_suggestion_extend_battery" msgid="5233928707465237447">"Nweba impilo yebhethri idlule okungu-<xliff:g id="TIME">%1$s</xliff:g>"</string>
+    <!-- no translation found for power_suggestion_battery_run_out (6332089307827787087) -->
+    <skip />
     <string name="power_remaining_less_than_duration_only" msgid="5802195288324091585">"Kusele okungaphansi kunokungu-<xliff:g id="THRESHOLD">%1$s</xliff:g>"</string>
     <string name="power_remaining_less_than_duration" msgid="1812668275239801236">"Ngaphansi kuka-<xliff:g id="THRESHOLD">%1$s</xliff:g> osele (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
     <string name="power_remaining_more_than_subtext" msgid="7919119719242734848">"Ngaphezu kuka-<xliff:g id="TIME_REMAINING">%1$s</xliff:g> osele (<xliff:g id="LEVEL">%2$s</xliff:g>)"</string>
@@ -508,4 +512,26 @@
     <string name="media_transfer_this_device_name" msgid="2716555073132169240">"Isipikha sefoni"</string>
     <string name="profile_connect_timeout_subtext" msgid="4043408193005851761">"Inkinga yokuxhumeka. Vala idivayisi futhi uphinde uyivule"</string>
     <string name="media_transfer_wired_device_name" msgid="4447880899964056007">"Idivayisi yomsindo enentambo"</string>
+    <!-- no translation found for help_label (3528360748637781274) -->
+    <skip />
+    <!-- no translation found for storage_category (2287342585424631813) -->
+    <skip />
+    <!-- no translation found for shared_data_title (1017034836800864953) -->
+    <skip />
+    <!-- no translation found for shared_data_summary (5516326713822885652) -->
+    <skip />
+    <!-- no translation found for blob_id_text (8680078988996308061) -->
+    <skip />
+    <!-- no translation found for blob_expires_text (7882727111491739331) -->
+    <skip />
+    <!-- no translation found for accessor_info_title (8289823651512477787) -->
+    <skip />
+    <!-- no translation found for accessor_no_description_text (7510967452505591456) -->
+    <skip />
+    <!-- no translation found for accessor_expires_text (4625619273236786252) -->
+    <skip />
+    <!-- no translation found for delete_blob_text (2819192607255625697) -->
+    <skip />
+    <!-- no translation found for delete_blob_confirmation_text (7807446938920827280) -->
+    <skip />
 </resources>
diff --git a/packages/SettingsLib/res/values/dimens.xml b/packages/SettingsLib/res/values/dimens.xml
index d10e034..a5ec5e6 100644
--- a/packages/SettingsLib/res/values/dimens.xml
+++ b/packages/SettingsLib/res/values/dimens.xml
@@ -92,4 +92,6 @@
     <!-- Size of nearby icon -->
     <dimen name="bt_nearby_icon_size">24dp</dimen>
 
+    <!-- Define minimal size of the tap area -->
+    <dimen name="min_tap_target_size">48dp</dimen>
 </resources>
diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml
index a797066..e61d70f 100644
--- a/packages/SettingsLib/res/values/strings.xml
+++ b/packages/SettingsLib/res/values/strings.xml
@@ -605,6 +605,8 @@
     <string name="adb_wireless_qrcode_pairing_title">Scan QR code</string>
     <!-- [CHAR LIMIT=NONE] Adb Wireless QR code pairing description -->
     <string name="adb_wireless_qrcode_pairing_description">Pair device over Wi\u2011Fi by scanning a QR Code</string>
+    <!-- [CHAR LIMIT=NONE] Toast message when trying to enable Wi-Fi debugging and no Wi-Fi network connected -->
+    <string name="adb_wireless_no_network_msg">Please connect to a Wi\u2011Fi network</string>
     <!--Adb wireless search Keywords [CHAR LIMIT=NONE]-->
     <string name="keywords_adb_wireless">adb, debug, dev</string>
     <!-- [CHAR LIMIT=NONE] Setting checkbox title for Whether to include bug report item in power menu. -->
@@ -1066,8 +1068,8 @@
     <string name="power_discharge_by_only">Should last until about <xliff:g id="time">%1$s</xliff:g></string>
     <!-- [CHAR_LIMIT=20] Label for estimated time that phone will run out of battery -->
     <string name="power_discharge_by_only_short">Until <xliff:g id="time" example="12 PM">%1$s</xliff:g></string>
-    <!-- [CHAR_LIMIT=100] Extend the battery life past a certain time -->
-    <string name="power_suggestion_extend_battery">Extend battery life past <xliff:g id="time" example="12 PM">%1$s</xliff:g></string>
+    <!-- [CHAR_LIMIT=100] Label for estimated time that phone will run out of battery -->
+    <string name="power_suggestion_battery_run_out">Battery may run out by <xliff:g id="time" example="12 PM">%1$s</xliff:g></string>
 
     <!-- [CHAR_LIMIT=60] label for estimated remaining duration of battery when under a certain amount -->
     <string name="power_remaining_less_than_duration_only">Less than <xliff:g id="threshold">%1$s</xliff:g> remaining</string>
@@ -1279,4 +1281,76 @@
 
     <!-- Name of the 3.5mm audio device. [CHAR LIMIT=40] -->
     <string name="media_transfer_wired_device_name">Wired audio device</string>
+
+    <!-- Help button label [CHAR LIMIT=40] -->
+    <string name="help_label">Help &amp; feedback</string>
+
+    <!-- Preference category for storage development settings. [CHAR LIMIT=50] -->
+    <string name="storage_category">Storage</string>
+    <!-- Storage: view and access information about shared blobs [CHAR LIMIT=50] -->
+    <string name="shared_data_title">Shared data</string>
+    <!-- Storage: shared data summary [CHAR LIMIT=80] -->
+    <string name="shared_data_summary">View and modify shared data</string>
+    <!-- Shared data: display text when there are no shared data blobs available [CHAR LIMIT=NONE] -->
+    <string name="shared_data_no_blobs_text">There is no shared data for this user.</string>
+    <!-- Shared data: text to display when there was an error while fetching shared data for the user [CHAR LIMIT=NONE] -->
+    <string name="shared_data_query_failure_text">There was an error fetching shared data. Try again.</string>
+    <!-- Shared data: shared data id [CHAR LIMIT=50] -->
+    <string name="blob_id_text">Shared data ID: <xliff:g id="blob_id" example="100">%d</xliff:g></string>
+    <!-- Shared data: label to indicate when the shared data expires [CHAR LIMIT=80] -->
+    <string name="blob_expires_text">Expires at <xliff:g id="date" example="Mar 20, 2020 11:59:59 GMT">%s</xliff:g></string>
+    <!-- Shared data: text to display when there was an error while deleting a shared data object [CHAR LIMIT=NONE] -->
+    <string name="shared_data_delete_failure_text">There was an error deleting the shared data.</string>
+    <!-- Shared data: dialog text when there are no acquired leases for a blob [CHAR LIMIT=NONE] -->
+    <string name="shared_data_no_accessors_dialog_text">There are no leases acquired for this shared data. Would you like to delete it?</string>
+    <!-- Shared data: title for screen showing list of packages accessing some shared data [CHAR LIMIT=50] -->
+    <string name="accessor_info_title">Apps sharing data</string>
+    <!-- Shared data: text indicating that no description was provided by the app for this shared data [CHAR LIMIT=80] -->
+    <string name="accessor_no_description_text">No description provided by the app.</string>
+    <!-- Shared data: label to indicate when the lease acquired by an app expires [CHAR LIMIT=80] -->
+    <string name="accessor_expires_text">Lease expires at <xliff:g id="date" example="Mar 20, 2020 11:59:59 GMT">%s</xliff:g></string>
+    <!-- Shared data: button text for deleting some shared data [CHAR LIMIT=50] -->
+    <string name="delete_blob_text">Delete shared data</string>
+    <!-- Shared data: confirmation dialog text when attempting delete some shared data [CHAR LIMIT=NONE] -->
+    <string name="delete_blob_confirmation_text">Are you sure you want to delete this shared data?</string>
+
+    <!-- Summary for add user entry in the choice dialog [CHAR LIMIT=none] -->
+    <string name="user_add_user_item_summary">Users have their own apps and content</string>
+    <!-- Summary for add restricted profile entry in the choice dialog [CHAR LIMIT=none] -->
+    <string name="user_add_profile_item_summary">You can restrict access to apps and content from your account</string>
+    <!-- Button text for adding a regular user [CHAR LIMIT=25] -->
+    <string name="user_add_user_item_title">User</string>
+    <!-- Button text for adding a restricted profile [CHAR LIMIT=25] -->
+    <string name="user_add_profile_item_title">Restricted profile</string>
+    <!-- Title for add user confirmation dialog [CHAR LIMIT=30] -->
+    <string name="user_add_user_title">Add new user?</string>
+    <!-- Message for add user confirmation dialog - long version. [CHAR LIMIT=none] -->
+    <string name="user_add_user_message_long">You can share this device with other people by creating additional users. Each user has their own space, which they can customize with apps, wallpaper, and so on. Users can also adjust device settings like Wi\u2011Fi that affect everyone.\n\nWhen you add a new user, that person needs to set up their space.\n\nAny user can update apps for all other users. Accessibility settings and services may not transfer to the new user.</string>
+    <!-- Message for add user confirmation dialog - short version. [CHAR LIMIT=none] -->
+    <string name="user_add_user_message_short">When you add a new user, that person needs to set up their space.\n\nAny user can update apps for all other users. </string>
+    <!-- Title of dialog to setup a new user [CHAR LIMIT=30] -->
+    <string name="user_setup_dialog_title">Set up user now?</string>
+    <!-- Message in dialog to setup a new user after creation [CHAR LIMIT=none] -->
+    <string name="user_setup_dialog_message">Make sure the person is available to take the device and set up their space</string>
+    <!-- Message in dialog to setup a new restricted profile after creation [CHAR LIMIT=none] -->
+    <string name="user_setup_profile_dialog_message">Set up profile now?</string>
+    <!-- Button text to setup the new user now [CHAR LIMIT=25] -->
+    <string name="user_setup_button_setup_now">Set up now</string>
+    <!-- Button text to setup the new user later [CHAR LIMIT=25] -->
+    <string name="user_setup_button_setup_later">Not now</string>
+    <!-- Title for add user type dialog [CHAR LIMIT=45] -->
+    <string name="user_add_user_type_title">Add</string>
+    <!-- User details new user name [CHAR LIMIT=30] -->
+    <string name="user_new_user_name">New user</string>
+    <!-- User details new restricted profile name [CHAR LIMIT=30] -->
+    <string name="user_new_profile_name">New profile</string>
+    <!-- Text shown for title of user info setting [CHAR LIMIT=20]-->
+    <string name="user_info_settings_title">User info</string>
+    <!-- Text shown for title of profile info setting [CHAR LIMIT=20]-->
+    <string name="profile_info_settings_title">Profile info</string>
+    <!-- User settings warning that restricted profile needs a screen lock [CHAR LIMIT=NONE] -->
+    <string name="user_need_lock_message">Before you can create a restricted profile, you\u2019ll need to set up a screen lock to protect your apps and personal data.</string>
+    <!-- User settings dialog button to set screen lock [CHAR LIMIT=25] -->
+    <string name="user_set_lock_button">Set lock</string>
+
 </resources>
diff --git a/packages/SettingsLib/src/com/android/settingslib/accessibility/AccessibilityUtils.java b/packages/SettingsLib/src/com/android/settingslib/accessibility/AccessibilityUtils.java
index 2b84196..59735f4 100644
--- a/packages/SettingsLib/src/com/android/settingslib/accessibility/AccessibilityUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/accessibility/AccessibilityUtils.java
@@ -189,19 +189,6 @@
         return context.getString(R.string.config_defaultAccessibilityService);
     }
 
-    /**
-     * Check if the accessibility shortcut is enabled for a user
-     *
-     * @param context A valid context
-     * @param userId  The user of interest
-     * @return {@code true} if the shortcut is enabled for the user. {@code false} otherwise.
-     * Note that the shortcut may be enabled, but no action associated with it.
-     */
-    public static boolean isShortcutEnabled(Context context, int userId) {
-        return Settings.Secure.getIntForUser(context.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_SHORTCUT_ENABLED, 1, userId) == 1;
-    }
-
     private static Set<ComponentName> getInstalledServices(Context context) {
         final Set<ComponentName> installedServices = new HashSet<>();
         installedServices.clear();
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
index 5d1e4cb..db219c9 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
@@ -494,7 +494,9 @@
 
     /**
      * Get battery level from remote device
-     * @return battery level in percentage [0-100], or {@link BluetoothDevice#BATTERY_LEVEL_UNKNOWN}
+     * @return battery level in percentage [0-100],
+     * {@link BluetoothDevice#BATTERY_LEVEL_BLUETOOTH_OFF}, or
+     * {@link BluetoothDevice#BATTERY_LEVEL_UNKNOWN}
      */
     public int getBatteryLevel() {
         return mDevice.getBatteryLevel();
@@ -937,12 +939,12 @@
         }
 
         String batteryLevelPercentageString = null;
-        // Android framework should only set mBatteryLevel to valid range [0-100] or
-        // BluetoothDevice.BATTERY_LEVEL_UNKNOWN, any other value should be a framework bug.
-        // Thus assume here that if value is not BluetoothDevice.BATTERY_LEVEL_UNKNOWN, it must
-        // be valid
+        // Android framework should only set mBatteryLevel to valid range [0-100],
+        // BluetoothDevice.BATTERY_LEVEL_BLUETOOTH_OFF, or BluetoothDevice.BATTERY_LEVEL_UNKNOWN,
+        // any other value should be a framework bug. Thus assume here that if value is greater
+        // than BluetoothDevice.BATTERY_LEVEL_UNKNOWN, it must be valid
         final int batteryLevel = getBatteryLevel();
-        if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
+        if (batteryLevel > BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
             // TODO: name com.android.settingslib.bluetooth.Utils something different
             batteryLevelPercentageString =
                     com.android.settingslib.Utils.formatPercentage(batteryLevel);
@@ -1050,12 +1052,12 @@
         }
 
         String batteryLevelPercentageString = null;
-        // Android framework should only set mBatteryLevel to valid range [0-100] or
-        // BluetoothDevice.BATTERY_LEVEL_UNKNOWN, any other value should be a framework bug.
-        // Thus assume here that if value is not BluetoothDevice.BATTERY_LEVEL_UNKNOWN, it must
-        // be valid
+        // Android framework should only set mBatteryLevel to valid range [0-100],
+        // BluetoothDevice.BATTERY_LEVEL_BLUETOOTH_OFF, or BluetoothDevice.BATTERY_LEVEL_UNKNOWN,
+        // any other value should be a framework bug. Thus assume here that if value is greater
+        // than BluetoothDevice.BATTERY_LEVEL_UNKNOWN, it must be valid
         final int batteryLevel = getBatteryLevel();
-        if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
+        if (batteryLevel > BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
             // TODO: name com.android.settingslib.bluetooth.Utils something different
             batteryLevelPercentageString =
                     com.android.settingslib.Utils.formatPercentage(batteryLevel);
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java
index d17f242..a1fba4a 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java
@@ -174,7 +174,7 @@
 
     @Override
     public boolean isEnabled(BluetoothDevice device) {
-        if (mService == null) {
+        if (mService == null || device == null) {
             return false;
         }
         return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
@@ -182,7 +182,7 @@
 
     @Override
     public int getConnectionPolicy(BluetoothDevice device) {
-        if (mService == null) {
+        if (mService == null || device == null) {
             return CONNECTION_POLICY_FORBIDDEN;
         }
         return mService.getConnectionPolicy(device);
@@ -191,7 +191,7 @@
     @Override
     public boolean setEnabled(BluetoothDevice device, boolean enabled) {
         boolean isEnabled = false;
-        if (mService == null) {
+        if (mService == null || device == null) {
             return false;
         }
         if (enabled) {
@@ -213,7 +213,7 @@
     }
 
     public long getHiSyncId(BluetoothDevice device) {
-        if (mService == null) {
+        if (mService == null || device == null) {
             return BluetoothHearingAid.HI_SYNC_ID_INVALID;
         }
         return mService.getHiSyncId(device);
diff --git a/packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java b/packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java
index c34c365..7ef0801 100644
--- a/packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java
+++ b/packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java
@@ -169,6 +169,22 @@
                 sourceMetricsCategory);
     }
 
+    /**
+     * Logs an event when the intent is started by Profile select dialog.
+     *
+     * @return true if the intent is loggable, otherwise false
+     */
+    public boolean logStartedIntentWithProfile(Intent intent, int sourceMetricsCategory,
+            boolean isWorkProfile) {
+        if (intent == null) {
+            return false;
+        }
+        final ComponentName cn = intent.getComponent();
+        final String key = cn != null ? cn.flattenToString() : intent.getAction();
+        return logSettingsTileClick(key + (isWorkProfile ? "/work" : "/personal"),
+                sourceMetricsCategory);
+    }
+
     private boolean logSettingsTileClick(String logKey, int sourceMetricsCategory) {
         if (TextUtils.isEmpty(logKey)) {
             // Not loggable
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
index eb0ddfb..24cd551 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
@@ -181,9 +181,13 @@
             return false;
         }
 
-        final RoutingSessionInfo info = getRoutingSessionInfo();
-        if (info != null) {
-            mRouterManager.getControllerForSession(info).release();
+
+        final List<RoutingSessionInfo> sessionInfos =
+                mRouterManager.getRoutingSessions(mPackageName);
+        final RoutingSessionInfo sessionInfo = sessionInfos.get(sessionInfos.size() - 1);
+
+        if (sessionInfo != null) {
+            mRouterManager.releaseSession(sessionInfo);
             return true;
         }
 
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java
index 9ae9b4a4..df0de68 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java
@@ -66,11 +66,12 @@
     private LocalBluetoothManager mLocalBluetoothManager;
     private InfoMediaManager mInfoMediaManager;
     private String mPackageName;
+    private MediaDevice mOnTransferBluetoothDevice;
 
     @VisibleForTesting
-    List<MediaDevice> mMediaDevices = new ArrayList<>();
+    List<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>();
     @VisibleForTesting
-    List<MediaDevice> mDisconnectedMediaDevices = new ArrayList<>();
+    List<MediaDevice> mDisconnectedMediaDevices = new CopyOnWriteArrayList<>();
     @VisibleForTesting
     MediaDevice mPhoneDevice;
     @VisibleForTesting
@@ -143,7 +144,7 @@
             final CachedBluetoothDevice cachedDevice =
                     ((BluetoothMediaDevice) device).getCachedDevice();
             if (!cachedDevice.isConnected() && !cachedDevice.isBusy()) {
-                device.setState(MediaDeviceState.STATE_CONNECTING);
+                mOnTransferBluetoothDevice = connectDevice;
                 cachedDevice.connect();
                 return;
             }
@@ -206,6 +207,7 @@
     public void stopScan() {
         mInfoMediaManager.unregisterCallback(mMediaDeviceCallback);
         mInfoMediaManager.stopScan();
+        unRegisterDeviceAttributeChangeCallback();
     }
 
     /**
@@ -389,35 +391,41 @@
             mCurrentConnectedDevice = infoMediaDevice != null
                     ? infoMediaDevice : updateCurrentConnectedDevice();
             dispatchDeviceListUpdate();
+            if (mOnTransferBluetoothDevice != null && mOnTransferBluetoothDevice.isConnected()) {
+                connectDevice(mOnTransferBluetoothDevice);
+                mOnTransferBluetoothDevice = null;
+            }
         }
 
         private List<MediaDevice> buildDisconnectedBluetoothDevice() {
-            for (MediaDevice device : mDisconnectedMediaDevices) {
-                ((BluetoothMediaDevice) device).getCachedDevice()
-                        .unregisterCallback(mDeviceAttributeChangeCallback);
-            }
-            mDisconnectedMediaDevices.clear();
             final List<BluetoothDevice> bluetoothDevices =
                     mBluetoothAdapter.getMostRecentlyConnectedDevices();
             final CachedBluetoothDeviceManager cachedDeviceManager =
                     mLocalBluetoothManager.getCachedDeviceManager();
 
+            final List<CachedBluetoothDevice> cachedBluetoothDeviceList = new ArrayList<>();
             for (BluetoothDevice device : bluetoothDevices) {
                 final CachedBluetoothDevice cachedDevice =
                         cachedDeviceManager.findDevice(device);
                 if (cachedDevice != null) {
                     if (cachedDevice.getBondState() == BluetoothDevice.BOND_BONDED
                             && !cachedDevice.isConnected()) {
-                        final MediaDevice mediaDevice = new BluetoothMediaDevice(mContext,
-                                cachedDevice,
-                                null, null, mPackageName);
-                        if (!mMediaDevices.contains(mediaDevice)) {
-                            cachedDevice.registerCallback(mDeviceAttributeChangeCallback);
-                            mDisconnectedMediaDevices.add(mediaDevice);
-                        }
+                        cachedBluetoothDeviceList.add(cachedDevice);
                     }
                 }
             }
+
+            unRegisterDeviceAttributeChangeCallback();
+            mDisconnectedMediaDevices.clear();
+            for (CachedBluetoothDevice cachedDevice : cachedBluetoothDeviceList) {
+                final MediaDevice mediaDevice = new BluetoothMediaDevice(mContext,
+                        cachedDevice,
+                        null, null, mPackageName);
+                if (!mMediaDevices.contains(mediaDevice)) {
+                    cachedDevice.registerCallback(mDeviceAttributeChangeCallback);
+                    mDisconnectedMediaDevices.add(mediaDevice);
+                }
+            }
             return new ArrayList<>(mDisconnectedMediaDevices);
         }
 
@@ -440,8 +448,9 @@
             MediaDevice connectDevice = getMediaDeviceById(mMediaDevices, id);
             connectDevice = connectDevice != null
                     ? connectDevice : updateCurrentConnectedDevice();
-            connectDevice.setState(MediaDeviceState.STATE_CONNECTED);
-
+            if (connectDevice != null) {
+                connectDevice.setState(MediaDeviceState.STATE_CONNECTED);
+            }
             if (connectDevice == mCurrentConnectedDevice) {
                 Log.d(TAG, "onConnectedDeviceChanged() this device all ready connected!");
                 return;
@@ -467,6 +476,12 @@
         }
     }
 
+    private void unRegisterDeviceAttributeChangeCallback() {
+        for (MediaDevice device : mDisconnectedMediaDevices) {
+            ((BluetoothMediaDevice) device).getCachedDevice()
+                    .unregisterCallback(mDeviceAttributeChangeCallback);
+        }
+    }
 
     /**
      * Callback for notifying device information updating
diff --git a/packages/SettingsLib/src/com/android/settingslib/net/UidDetailProvider.java b/packages/SettingsLib/src/com/android/settingslib/net/UidDetailProvider.java
index e351615..dad82ee 100644
--- a/packages/SettingsLib/src/com/android/settingslib/net/UidDetailProvider.java
+++ b/packages/SettingsLib/src/com/android/settingslib/net/UidDetailProvider.java
@@ -63,7 +63,7 @@
     }
 
     public UidDetailProvider(Context context) {
-        mContext = context.getApplicationContext();
+        mContext = context;
         mUidDetailCache = new SparseArray<UidDetail>();
     }
 
diff --git a/packages/SettingsLib/src/com/android/settingslib/utils/PowerUtil.java b/packages/SettingsLib/src/com/android/settingslib/utils/PowerUtil.java
index 7046d23..0a70f72 100644
--- a/packages/SettingsLib/src/com/android/settingslib/utils/PowerUtil.java
+++ b/packages/SettingsLib/src/com/android/settingslib/utils/PowerUtil.java
@@ -119,7 +119,7 @@
             return null;
         }
         if (drainTimeMs <= ONE_DAY_MILLIS) {
-            return context.getString(R.string.power_suggestion_extend_battery,
+            return context.getString(R.string.power_suggestion_battery_run_out,
                 getDateTimeStringFromMs(context, drainTimeMs));
         } else {
             return getMoreThanOneDayShortString(context, drainTimeMs,
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiEntryPreference.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiEntryPreference.java
index 6a7000e..8aa0aec 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiEntryPreference.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiEntryPreference.java
@@ -23,8 +23,10 @@
 import android.graphics.drawable.StateListDrawable;
 import android.text.TextUtils;
 import android.view.View;
+import android.widget.ImageButton;
 import android.widget.ImageView;
 
+import androidx.annotation.DrawableRes;
 import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
@@ -37,7 +39,8 @@
 /**
  * Preference to display a WifiEntry in a wifi picker.
  */
-public class WifiEntryPreference extends Preference implements WifiEntry.WifiEntryCallback {
+public class WifiEntryPreference extends Preference implements WifiEntry.WifiEntryCallback,
+        View.OnClickListener {
 
     private static final int[] STATE_SECURED = {
             R.attr.state_encrypted
@@ -62,6 +65,7 @@
     private WifiEntry mWifiEntry;
     private int mLevel = -1;
     private CharSequence mContentDescription;
+    private OnButtonClickListener mOnButtonClickListener;
 
     public WifiEntryPreference(@NonNull Context context, @NonNull WifiEntry wifiEntry) {
         this(context, wifiEntry, new IconInjector(context));
@@ -95,11 +99,36 @@
 
         view.itemView.setContentDescription(mContentDescription);
 
-        final ImageView frictionImageView = (ImageView) view.findViewById(R.id.friction_icon);
-        bindFrictionImage(frictionImageView);
-
         // Turn off divider
         view.findViewById(R.id.two_target_divider).setVisibility(View.INVISIBLE);
+
+        // Enable the icon button when this Entry is a canManageSubscription entry.
+        final ImageButton imageButton = (ImageButton) view.findViewById(R.id.icon_button);
+        final ImageView frictionImageView = (ImageView) view.findViewById(
+                R.id.friction_icon);
+        if (mWifiEntry.canManageSubscription() && !mWifiEntry.isSaved()
+                && !mWifiEntry.isSubscription()
+                && mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_DISCONNECTED) {
+            final Drawable drawablehelp = getDrawable(R.drawable.ic_help);
+            drawablehelp.setTintList(
+                    Utils.getColorAttr(getContext(), android.R.attr.colorControlNormal));
+            ((ImageView) imageButton).setImageDrawable(drawablehelp);
+            imageButton.setVisibility(View.VISIBLE);
+            imageButton.setOnClickListener(this);
+            imageButton.setContentDescription(
+                    getContext().getText(R.string.help_label));
+
+            if (frictionImageView != null) {
+                frictionImageView.setVisibility(View.GONE);
+            }
+        } else {
+            imageButton.setVisibility(View.GONE);
+
+            if (frictionImageView != null) {
+                frictionImageView.setVisibility(View.VISIBLE);
+                bindFrictionImage(frictionImageView);
+            }
+        }
     }
 
     /**
@@ -236,4 +265,44 @@
             return mContext.getDrawable(Utils.getWifiIconResource(level));
         }
     }
+
+    /**
+     * Set listeners, who want to listen the button client event.
+     */
+    public void setOnButtonClickListener(OnButtonClickListener listener) {
+        mOnButtonClickListener = listener;
+        notifyChanged();
+    }
+
+    @Override
+    public void onClick(View view) {
+        if (view.getId() == R.id.icon_button) {
+            if (mOnButtonClickListener != null) {
+                mOnButtonClickListener.onButtonClick(this);
+            }
+        }
+    }
+
+    /**
+     * Callback to inform the caller that the icon button is clicked.
+     */
+    public interface OnButtonClickListener {
+
+        /**
+         * Register to listen the button click event.
+         */
+        void onButtonClick(WifiEntryPreference preference);
+    }
+
+    private Drawable getDrawable(@DrawableRes int iconResId) {
+        Drawable buttonIcon = null;
+
+        try {
+            buttonIcon = getContext().getDrawable(iconResId);
+        } catch (Resources.NotFoundException exception) {
+            // Do nothing
+        }
+        return buttonIcon;
+    }
+
 }
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
index 8bf48e59..c713d78 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
@@ -17,6 +17,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.ConnectivityManager;
+import android.net.ConnectivityManager.NetworkCallback;
 import android.net.Network;
 import android.net.NetworkCapabilities;
 import android.net.NetworkInfo;
@@ -36,7 +37,10 @@
 
 import java.util.List;
 
-public class WifiStatusTracker extends ConnectivityManager.NetworkCallback {
+/**
+ * Track status of Wi-Fi for the Sys UI.
+ */
+public class WifiStatusTracker {
     private final Context mContext;
     private final WifiNetworkScoreCache mWifiNetworkScoreCache;
     private final WifiManager mWifiManager;
@@ -55,8 +59,9 @@
             .clearCapabilities()
             .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)
             .addTransportType(NetworkCapabilities.TRANSPORT_WIFI).build();
-    private final ConnectivityManager.NetworkCallback mNetworkCallback = new ConnectivityManager
-            .NetworkCallback() {
+    private final NetworkCallback mNetworkCallback = new NetworkCallback() {
+        // Note: onCapabilitiesChanged is guaranteed to be called "immediately" after onAvailable
+        // and onLinkPropertiesChanged.
         @Override
         public void onCapabilitiesChanged(
                 Network network, NetworkCapabilities networkCapabilities) {
@@ -64,11 +69,35 @@
             mCallback.run();
         }
     };
+    private final NetworkCallback mDefaultNetworkCallback = new NetworkCallback() {
+                @Override
+                public void onCapabilitiesChanged(Network network, NetworkCapabilities nc) {
+                    // network is now the default network, and its capabilities are nc.
+                    // This method will always be called immediately after the network becomes the
+                    // default, in addition to any time the capabilities change while the network is
+                    // the default.
+                    mDefaultNetwork = network;
+                    mDefaultNetworkCapabilities = nc;
+                    updateStatusLabel();
+                    mCallback.run();
+                }
+                @Override
+                public void onLost(Network network) {
+                    // The system no longer has a default network.
+                    mDefaultNetwork = null;
+                    mDefaultNetworkCapabilities = null;
+                    updateStatusLabel();
+                    mCallback.run();
+                }
+            };
+    private Network mDefaultNetwork = null;
+    private NetworkCapabilities mDefaultNetworkCapabilities = null;
     private final Runnable mCallback;
 
     private WifiInfo mWifiInfo;
     public boolean enabled;
     public boolean isCaptivePortal;
+    public boolean isDefaultNetwork;
     public int state;
     public boolean connected;
     public String ssid;
@@ -94,11 +123,13 @@
             mWifiNetworkScoreCache.registerListener(mCacheListener);
             mConnectivityManager.registerNetworkCallback(
                     mNetworkRequest, mNetworkCallback, mHandler);
+            mConnectivityManager.registerDefaultNetworkCallback(mDefaultNetworkCallback, mHandler);
         } else {
             mNetworkScoreManager.unregisterNetworkScoreCache(NetworkKey.TYPE_WIFI,
                     mWifiNetworkScoreCache);
             mWifiNetworkScoreCache.unregisterListener();
             mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
+            mConnectivityManager.unregisterNetworkCallback(mDefaultNetworkCallback);
         }
     }
 
@@ -154,8 +185,17 @@
     }
 
     private void updateStatusLabel() {
-        final NetworkCapabilities networkCapabilities
-                = mConnectivityManager.getNetworkCapabilities(mWifiManager.getCurrentNetwork());
+        NetworkCapabilities networkCapabilities;
+        final Network currentWifiNetwork = mWifiManager.getCurrentNetwork();
+        if (currentWifiNetwork != null && currentWifiNetwork.equals(mDefaultNetwork)) {
+            // Wifi is connected and the default network.
+            isDefaultNetwork = true;
+            networkCapabilities = mDefaultNetworkCapabilities;
+        } else {
+            isDefaultNetwork = false;
+            networkCapabilities = mConnectivityManager.getNetworkCapabilities(
+                    mWifiManager.getCurrentNetwork());
+        }
         isCaptivePortal = false;
         if (networkCapabilities != null) {
             if (networkCapabilities.hasCapability(NET_CAPABILITY_CAPTIVE_PORTAL)) {
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java
index ed0857c..204a933 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/instrumentation/MetricsFeatureProviderTest.java
@@ -164,6 +164,38 @@
     }
 
     @Test
+    public void logStartedIntentWithProfile_isPersonalProfile_shouldTagPersonal() {
+        final Intent intent = new Intent().setComponent(new ComponentName("pkg", "cls"));
+
+        final boolean loggable = mProvider.logStartedIntentWithProfile(intent,
+                MetricsEvent.SETTINGS_GESTURES, false);
+
+        assertThat(loggable).isTrue();
+        verify(mLogWriter).action(
+                MetricsEvent.SETTINGS_GESTURES,
+                MetricsEvent.ACTION_SETTINGS_TILE_CLICK,
+                SettingsEnums.PAGE_UNKNOWN,
+                "pkg/cls/personal",
+                0);
+    }
+
+    @Test
+    public void logStartedIntentWithProfile_isWorkProfile_shouldTagWork() {
+        final Intent intent = new Intent().setComponent(new ComponentName("pkg", "cls"));
+
+        final boolean loggable = mProvider.logStartedIntentWithProfile(intent,
+                MetricsEvent.SETTINGS_GESTURES, true);
+
+        assertThat(loggable).isTrue();
+        verify(mLogWriter).action(
+                MetricsEvent.SETTINGS_GESTURES,
+                MetricsEvent.ACTION_SETTINGS_TILE_CLICK,
+                SettingsEnums.PAGE_UNKNOWN,
+                "pkg/cls/work",
+                0);
+    }
+
+    @Test
     public void getAttribution_noActivity_shouldReturnUnknown() {
         assertThat(mProvider.getAttribution(null /* activity */))
                 .isEqualTo(SettingsEnums.PAGE_UNKNOWN);
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java
index 559187d..4c61ef5 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java
@@ -23,6 +23,7 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -107,8 +108,8 @@
         when(mLocalProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile);
         when(mLocalProfileManager.getHearingAidProfile()).thenReturn(mHapProfile);
 
-        mInfoMediaDevice1 = new InfoMediaDevice(mContext, mMediaRouter2Manager, mRouteInfo1,
-                TEST_PACKAGE_NAME);
+        mInfoMediaDevice1 = spy(new InfoMediaDevice(mContext, mMediaRouter2Manager, mRouteInfo1,
+                TEST_PACKAGE_NAME));
         mInfoMediaDevice2 = new InfoMediaDevice(mContext, mMediaRouter2Manager, mRouteInfo2,
                 TEST_PACKAGE_NAME);
         mLocalMediaManager = new LocalMediaManager(mContext, mLocalBluetoothManager,
@@ -450,6 +451,12 @@
     }
 
     @Test
+    public void onConnectedDeviceChanged_nullConnectedDevice_noException() {
+        mLocalMediaManager.registerCallback(mCallback);
+        mLocalMediaManager.mMediaDeviceCallback.onConnectedDeviceChanged(TEST_DEVICE_ID_2);
+    }
+
+    @Test
     public void onDeviceAttributesChanged_shouldDispatchDeviceListUpdate() {
         mLocalMediaManager.registerCallback(mCallback);
 
@@ -559,6 +566,34 @@
     }
 
     @Test
+    public void onDeviceListAdded_transferToDisconnectedBluetooth_verifyConnectDevice() {
+        final List<MediaDevice> devices = new ArrayList<>();
+        final MediaDevice currentDevice = mock(MediaDevice.class);
+        final MediaDevice device = mock(BluetoothMediaDevice.class);
+        final CachedBluetoothDevice cachedDevice = mock(CachedBluetoothDevice.class);
+        mLocalMediaManager.mMediaDevices.add(device);
+        mLocalMediaManager.mMediaDevices.add(currentDevice);
+
+        when(device.getId()).thenReturn(TEST_DEVICE_ID_1);
+        when(currentDevice.getId()).thenReturn(TEST_CURRENT_DEVICE_ID);
+        when(((BluetoothMediaDevice) device).getCachedDevice()).thenReturn(cachedDevice);
+        when(cachedDevice.isConnected()).thenReturn(false);
+        when(cachedDevice.isBusy()).thenReturn(false);
+
+        mLocalMediaManager.registerCallback(mCallback);
+        mLocalMediaManager.connectDevice(device);
+
+        verify(cachedDevice).connect();
+        when(device.isConnected()).thenReturn(true);
+        mLocalMediaManager.mCurrentConnectedDevice = currentDevice;
+        devices.add(mInfoMediaDevice1);
+        devices.add(currentDevice);
+        mLocalMediaManager.mMediaDeviceCallback.onDeviceListAdded(devices);
+
+        verify(mInfoMediaDevice1).connect();
+    }
+
+    @Test
     public void onRequestFailed_shouldDispatchOnRequestFailed() {
         mLocalMediaManager.registerCallback(mCallback);
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java
index ed308c8..342d127a 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/utils/PowerUtilTest.java
@@ -42,7 +42,7 @@
     private static final long THIRTY_HOURS_MILLIS = Duration.ofHours(30).toMillis();
     private static final String NORMAL_CASE_EXPECTED_PREFIX = "Should last until about";
     private static final String ENHANCED_SUFFIX = " based on your usage";
-    private static final String EXTEND_PREFIX = "Extend battery life past";
+    private static final String BATTERY_RUN_OUT_PREFIX = "Battery may run out by";
     // matches a time (ex: '1:15 PM', '2 AM', '23:00')
     private static final String TIME_OF_DAY_REGEX = " (\\d)+:?(\\d)* ((AM)*)|((PM)*)";
     // matches a percentage with parenthesis (ex: '(10%)')
@@ -189,9 +189,9 @@
         String info = PowerUtil.getBatteryTipStringFormatted(mContext,
                 SEVENTEEN_MIN_MILLIS);
 
-        // ex: Extend battery life past 1:15 PM
+        // ex: Battery may run out by 1:15 PM
         assertThat(info).containsMatch(Pattern.compile(
-                EXTEND_PREFIX + TIME_OF_DAY_REGEX));
+                BATTERY_RUN_OUT_PREFIX + TIME_OF_DAY_REGEX));
     }
 
     @Test
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEntryPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEntryPreferenceTest.java
index 0f1e0ff..a9f31ce 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEntryPreferenceTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiEntryPreferenceTest.java
@@ -21,7 +21,13 @@
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.LinearLayout;
 
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settingslib.R;
 import com.android.wifitrackerlib.WifiEntry;
 
 import org.junit.Before;
@@ -147,4 +153,49 @@
         assertThat(iconList).containsExactly(mMockDrawable0, mMockDrawable1,
                 mMockDrawable2, mMockDrawable3, mMockDrawable4, null);
     }
+
+    @Test
+    public void canManageSubscription_shouldSetImageButtonVisible() {
+        when(mMockWifiEntry.canManageSubscription()).thenReturn(true);
+        final WifiEntryPreference pref =
+                new WifiEntryPreference(mContext, mMockWifiEntry, mMockIconInjector);
+        final LayoutInflater inflater = LayoutInflater.from(mContext);
+        final View view = inflater.inflate(pref.getLayoutResource(), new LinearLayout(mContext),
+                false);
+        final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(view);
+        pref.onBindViewHolder(holder);
+
+        assertThat(view.findViewById(R.id.icon_button).getVisibility()).isEqualTo(View.VISIBLE);
+    }
+
+    @Test
+    public void helpButton_whenCanManageSubscription_shouldSetCorrectContentDescription() {
+        when(mMockWifiEntry.canManageSubscription()).thenReturn(true);
+        final WifiEntryPreference pref =
+                new WifiEntryPreference(mContext, mMockWifiEntry, mMockIconInjector);
+        final LayoutInflater inflater = LayoutInflater.from(mContext);
+        final View view = inflater.inflate(pref.getLayoutResource(), new LinearLayout(mContext),
+                false);
+        final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(view);
+
+        pref.onBindViewHolder(holder);
+
+        assertThat(view.findViewById(R.id.icon_button).getContentDescription()).isEqualTo(
+                mContext.getString(R.string.help_label));
+    }
+
+    @Test
+    public void subscriptionEntry_shouldSetImageButtonGone() {
+        when(mMockWifiEntry.isSubscription()).thenReturn(true);
+        final WifiEntryPreference pref =
+                new WifiEntryPreference(mContext, mMockWifiEntry, mMockIconInjector);
+        final LayoutInflater inflater = LayoutInflater.from(mContext);
+        final View view = inflater.inflate(pref.getLayoutResource(), new LinearLayout(mContext),
+                false);
+        final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(view);
+
+        pref.onBindViewHolder(holder);
+
+        assertThat(view.findViewById(R.id.icon_button).getVisibility()).isEqualTo(View.GONE);
+    }
 }
diff --git a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java
index d350d9d..736e995 100644
--- a/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java
+++ b/packages/SettingsProvider/src/android/provider/settings/backup/SecureSettings.java
@@ -48,7 +48,6 @@
         Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE,
         Settings.Secure.ACCESSIBILITY_BUTTON_TARGET_COMPONENT,
         Settings.Secure.ACCESSIBILITY_SHORTCUT_DIALOG_SHOWN,
-        Settings.Secure.ACCESSIBILITY_SHORTCUT_ENABLED,
         Settings.Secure.ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN,
         Settings.Secure.ACCESSIBILITY_HIGH_TEXT_CONTRAST_ENABLED,
         Settings.Secure.ACCESSIBILITY_CAPTIONING_PRESET,
@@ -97,6 +96,7 @@
         Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED,
         Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED,
         Settings.Secure.QS_TILES,
+        Settings.Secure.CONTROLS_ENABLED,
         Settings.Secure.DOZE_ENABLED,
         Settings.Secure.DOZE_ALWAYS_ON,
         Settings.Secure.DOZE_PICK_UP_GESTURE,
@@ -164,6 +164,6 @@
         Settings.Secure.AWARE_TAP_PAUSE_TOUCH_COUNT,
         Settings.Secure.PEOPLE_STRIP,
         Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE,
-        Settings.Secure.ACCESSIBILITY_BUTTON_LONG_PRESS_TARGETS,
+        Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS,
     };
 }
diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java
index 4d33b62..b413e8e 100644
--- a/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java
+++ b/packages/SettingsProvider/src/android/provider/settings/validators/SecureSettingsValidators.java
@@ -25,10 +25,10 @@
 import static android.provider.settings.validators.SettingsValidators.COMPONENT_NAME_VALIDATOR;
 import static android.provider.settings.validators.SettingsValidators.JSON_OBJECT_VALIDATOR;
 import static android.provider.settings.validators.SettingsValidators.LOCALE_VALIDATOR;
+import static android.provider.settings.validators.SettingsValidators.NONE_NEGATIVE_LONG_VALIDATOR;
 import static android.provider.settings.validators.SettingsValidators.NON_NEGATIVE_INTEGER_VALIDATOR;
 import static android.provider.settings.validators.SettingsValidators.NULLABLE_COMPONENT_NAME_VALIDATOR;
 import static android.provider.settings.validators.SettingsValidators.PACKAGE_NAME_VALIDATOR;
-import static android.provider.settings.validators.SettingsValidators.NONE_NEGATIVE_LONG_VALIDATOR;
 import static android.provider.settings.validators.SettingsValidators.TILE_LIST_VALIDATOR;
 import static android.provider.settings.validators.SettingsValidators.TTS_LIST_VALIDATOR;
 
@@ -78,11 +78,8 @@
                 ACCESSIBILITY_SHORTCUT_TARGET_LIST_VALIDATOR);
         // technically either ComponentName or class name, but there's proper value
         // validation at callsites, so allow any non-null string
-        VALIDATORS.put(
-                Secure.ACCESSIBILITY_BUTTON_TARGET_COMPONENT,
-                ACCESSIBILITY_SHORTCUT_TARGET_LIST_VALIDATOR);
+        VALIDATORS.put(Secure.ACCESSIBILITY_BUTTON_TARGET_COMPONENT, value -> value != null);
         VALIDATORS.put(Secure.ACCESSIBILITY_SHORTCUT_DIALOG_SHOWN, BOOLEAN_VALIDATOR);
-        VALIDATORS.put(Secure.ACCESSIBILITY_SHORTCUT_ENABLED, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.ACCESSIBILITY_HIGH_TEXT_CONTRAST_ENABLED, BOOLEAN_VALIDATOR);
         VALIDATORS.put(
@@ -144,6 +141,7 @@
         VALIDATORS.put(Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.QS_TILES, TILE_LIST_VALIDATOR);
+        VALIDATORS.put(Secure.CONTROLS_ENABLED, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.DOZE_ENABLED, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.DOZE_ALWAYS_ON, BOOLEAN_VALIDATOR);
         VALIDATORS.put(Secure.DOZE_PICK_UP_GESTURE, BOOLEAN_VALIDATOR);
@@ -249,7 +247,7 @@
                         Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN,
                         Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW));
         VALIDATORS.put(
-                Secure.ACCESSIBILITY_BUTTON_LONG_PRESS_TARGETS,
+                Secure.ACCESSIBILITY_BUTTON_TARGETS,
                 ACCESSIBILITY_SHORTCUT_TARGET_LIST_VALIDATOR);
     }
 }
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
index af74121..8a7b913 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
@@ -1781,9 +1781,6 @@
                 Settings.Secure.ACCESSIBILITY_LARGE_POINTER_ICON,
                 SecureSettingsProto.Accessibility.LARGE_POINTER_ICON);
         dumpSetting(s, p,
-                Settings.Secure.ACCESSIBILITY_SHORTCUT_ENABLED,
-                SecureSettingsProto.Accessibility.SHORTCUT_ENABLED);
-        dumpSetting(s, p,
                 Settings.Secure.ACCESSIBILITY_SHORTCUT_ON_LOCK_SCREEN,
                 SecureSettingsProto.Accessibility.SHORTCUT_ON_LOCK_SCREEN);
         dumpSetting(s, p,
@@ -1814,8 +1811,8 @@
                 Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE,
                 SecureSettingsProto.Accessibility.ACCESSIBILITY_MAGNIFICATION_MODE);
         dumpSetting(s, p,
-                Settings.Secure.ACCESSIBILITY_BUTTON_LONG_PRESS_TARGETS,
-                SecureSettingsProto.Accessibility.BUTTON_LONG_PRESS_TARGETS);
+                Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS,
+                SecureSettingsProto.Accessibility.BUTTON_TARGETS);
         p.end(accessibilityToken);
 
         final long adaptiveSleepToken = p.start(SecureSettingsProto.ADAPTIVE_SLEEP);
@@ -1975,6 +1972,13 @@
         dumpSetting(s, p,
                 Settings.Secure.CONNECTIVITY_RELEASE_PENDING_INTENT_DELAY_MS,
                 SecureSettingsProto.CONNECTIVITY_RELEASE_PENDING_INTENT_DELAY_MS);
+
+        final long controlsToken = p.start(SecureSettingsProto.CONTROLS);
+        dumpSetting(s, p,
+                Settings.Secure.CONTROLS_ENABLED,
+                SecureSettingsProto.Controls.ENABLED);
+        p.end(controlsToken);
+
         dumpSetting(s, p,
                 Settings.Secure.DEVICE_PAIRED,
                 SecureSettingsProto.DEVICE_PAIRED);
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 5a9d749..2fde87c 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -3436,7 +3436,7 @@
         }
 
         private final class UpgradeController {
-            private static final int SETTINGS_VERSION = 188;
+            private static final int SETTINGS_VERSION = 189;
 
             private final int mUserId;
 
@@ -4759,6 +4759,23 @@
                     currentVersion = 188;
                 }
 
+                if (currentVersion == 188) {
+                    // Deprecate ACCESSIBILITY_SHORTCUT_ENABLED, and migrate it
+                    // to ACCESSIBILITY_SHORTCUT_TARGET_SERVICE.
+                    final SettingsState secureSettings = getSecureSettingsLocked(userId);
+                    final Setting shortcutEnabled = secureSettings.getSettingLocked(
+                            "accessibility_shortcut_enabled");
+                    if ("0".equals(shortcutEnabled.getValue())) {
+                        // Clear shortcut key targets list setting.
+                        secureSettings.insertSettingLocked(
+                                Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE,
+                                "", null /* tag */, false /* makeDefault */,
+                                SettingsState.SYSTEM_PACKAGE_NAME);
+                    }
+                    secureSettings.deleteSettingLocked("accessibility_shortcut_enabled");
+                    currentVersion = 189;
+                }
+
                 // vXXX: Add new settings above this point.
 
                 if (currentVersion != newVersion) {
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
index 2d351c7..d93c015 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
@@ -1313,7 +1313,8 @@
             }
 
             // isValuePreservedInRestore shouldn't change back to false if it has been set to true.
-            boolean isPreserved = shouldPreserveSetting(overrideableByRestore, resetToDefault);
+            boolean isPreserved = shouldPreserveSetting(overrideableByRestore, resetToDefault,
+                    packageName, value);
 
             // Is something gonna change?
             if (Objects.equals(value, this.value)
@@ -1339,11 +1340,16 @@
         }
 
         private boolean shouldPreserveSetting(boolean overrideableByRestore,
-                boolean resetToDefault) {
+                boolean resetToDefault, String packageName, String value) {
             if (resetToDefault) {
                 // By default settings are not marked as preserved.
                 return false;
             }
+            if (value != null && value.equals(this.value)
+                    && SYSTEM_PACKAGE_NAME.equals(packageName)) {
+                // Do not mark preserved if it's the system reinitializing to the same value.
+                return false;
+            }
 
             // isValuePreservedInRestore shouldn't change back to false if it has been set to true.
             return this.isValuePreservedInRestore || !overrideableByRestore;
diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
index dab0505..a36949b 100644
--- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
+++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
@@ -355,6 +355,7 @@
                     Settings.Global.NETSTATS_POLL_INTERVAL,
                     Settings.Global.NETSTATS_SAMPLE_ENABLED,
                     Settings.Global.NETSTATS_AUGMENT_ENABLED,
+                    Settings.Global.NETSTATS_COMBINE_SUBTYPE_ENABLED,
                     Settings.Global.NETSTATS_TIME_CACHE_MAX_AGE,
                     Settings.Global.NETSTATS_UID_BUCKET_DURATION,
                     Settings.Global.NETSTATS_UID_DELETE_AGE,
@@ -539,6 +540,7 @@
                     Settings.Global.WIFI_FREQUENCY_BAND,
                     Settings.Global.WIFI_IDLE_MS,
                     Settings.Global.WIFI_MAX_DHCP_RETRY_COUNT,
+                    Settings.Global.WIFI_MIGRATION_COMPLETED,
                     Settings.Global.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS,
                     Settings.Global.WIFI_NETWORK_SHOW_RSSI,
                     Settings.Global.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY,
diff --git a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsStateTest.java b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsStateTest.java
index 6a3c661..9f448af 100644
--- a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsStateTest.java
+++ b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsStateTest.java
@@ -47,6 +47,7 @@
             "日本語";
 
     private static final String TEST_PACKAGE = "package";
+    private static final String SYSTEM_PACKAGE = "android";
     private static final String SETTING_NAME = "test_setting";
 
     private final Object mLock = new Object();
@@ -253,6 +254,26 @@
 
     }
 
+    public void testModifySettingBySystemPackage_sameValue_preserveFlagNotSet() {
+        SettingsState settingsState = getSettingStateObject();
+        // Initialize the setting.
+        settingsState.insertSettingLocked(SETTING_NAME, "1", null, false, SYSTEM_PACKAGE);
+        // Update the setting.
+        settingsState.insertSettingLocked(SETTING_NAME, "1", null, false, SYSTEM_PACKAGE);
+
+        assertFalse(settingsState.getSettingLocked(SETTING_NAME).isValuePreservedInRestore());
+    }
+
+    public void testModifySettingBySystemPackage_newValue_preserveFlagSet() {
+        SettingsState settingsState = getSettingStateObject();
+        // Initialize the setting.
+        settingsState.insertSettingLocked(SETTING_NAME, "1", null, false, SYSTEM_PACKAGE);
+        // Update the setting.
+        settingsState.insertSettingLocked(SETTING_NAME, "2", null, false, SYSTEM_PACKAGE);
+
+        assertTrue(settingsState.getSettingLocked(SETTING_NAME).isValuePreservedInRestore());
+    }
+
     private SettingsState getSettingStateObject() {
         SettingsState settingsState = new SettingsState(getContext(), mLock, mSettingsFile, 1,
                 SettingsState.MAX_BYTES_PER_APP_PACKAGE_UNLIMITED, Looper.getMainLooper());
diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml
index 8f859b2..4771c41 100644
--- a/packages/Shell/AndroidManifest.xml
+++ b/packages/Shell/AndroidManifest.xml
@@ -81,6 +81,8 @@
     <uses-permission android:name="android.permission.READ_INPUT_STATE" />
     <uses-permission android:name="android.permission.SET_ORIENTATION" />
     <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
+    <!--  TODO(b/152310230): remove once APIs are confirmed to be sufficient -->
+    <uses-permission android:name="com.android.permission.USE_INSTALLER_V2" />
     <uses-permission android:name="android.permission.MOVE_PACKAGE" />
     <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
     <uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
@@ -272,12 +274,23 @@
     <!-- Permission needed to read wifi network credentials for CtsNetTestCases -->
     <uses-permission android:name="android.permission.READ_WIFI_CREDENTIAL" />
 
+    <!-- Permission needed to use wifi usability API's for CtsNetTestCases -->
+    <uses-permission android:name="android.permission.WIFI_UPDATE_USABILITY_STATS_SCORE" />
+
     <!-- Permission needed to test registering pull atom callbacks -->
     <uses-permission android:name="android.permission.REGISTER_STATS_PULL_ATOM" />
 
     <!-- Permission needed to modify settings overrideable by restore in CTS tests -->
     <uses-permission android:name="android.permission.MODIFY_SETTINGS_OVERRIDEABLE_BY_RESTORE" />
 
+    <!-- Permission required for testing system audio effect APIs. -->
+    <uses-permission android:name="android.permission.MODIFY_DEFAULT_AUDIO_EFFECTS"/>
+
+    <!-- Permissions required for CTS test - TunerTest -->
+    <uses-permission android:name="android.permission.ACCESS_TV_DESCRAMBLER" />
+    <uses-permission android:name="android.permission.ACCESS_TV_TUNER" />
+    <uses-permission android:name="android.permission.TUNER_RESOURCE_ACCESS" />
+
     <application android:label="@string/app_label"
                 android:theme="@android:style/Theme.DeviceDefault.DayNight"
                 android:defaultToDeviceProtectedStorage="true"
diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java
index c76b50b..a1376c3 100644
--- a/packages/Shell/src/com/android/shell/BugreportProgressService.java
+++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java
@@ -112,6 +112,9 @@
 import java.util.Enumeration;
 import java.util.List;
 import java.util.concurrent.Executor;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 import java.util.zip.ZipOutputStream;
@@ -251,8 +254,6 @@
     private boolean mIsWatch;
     private boolean mIsTv;
 
-    private int mLastProgressPercent;
-
     @Override
     public void onCreate() {
         mContext = getApplicationContext();
@@ -684,12 +685,12 @@
      * Updates the system notification for a given bugreport.
      */
     private void updateProgress(BugreportInfo info) {
-        if (info.getProgress() < 0) {
+        if (info.progress.intValue() < 0) {
             Log.e(TAG, "Invalid progress values for " + info);
             return;
         }
 
-        if (info.isFinished()) {
+        if (info.finished.get()) {
             Log.w(TAG, "Not sending progress notification because bugreport has finished already ("
                     + info + ")");
             return;
@@ -698,7 +699,7 @@
         final NumberFormat nf = NumberFormat.getPercentInstance();
         nf.setMinimumFractionDigits(2);
         nf.setMaximumFractionDigits(2);
-        final String percentageText = nf.format((double) info.getProgress() / 100);
+        final String percentageText = nf.format((double) info.progress.intValue() / 100);
 
         String title = mContext.getString(R.string.bugreport_in_progress_title, info.id);
 
@@ -706,7 +707,7 @@
         if (mIsWatch) {
             nf.setMinimumFractionDigits(0);
             nf.setMaximumFractionDigits(0);
-            final String watchPercentageText = nf.format((double) info.getProgress() / 100);
+            final String watchPercentageText = nf.format((double) info.progress.intValue() / 100);
             title = title + "\n" + watchPercentageText;
         }
 
@@ -718,7 +719,8 @@
                 .setContentTitle(title)
                 .setTicker(title)
                 .setContentText(name)
-                .setProgress(100 /* max value of progress percentage */, info.getProgress(), false)
+                .setProgress(100 /* max value of progress percentage */,
+                        info.progress.intValue(), false)
                 .setOngoing(true);
 
         // Wear and ATV bugreport doesn't need the bug info dialog, screenshot and cancel action.
@@ -747,13 +749,14 @@
                 .setActions(infoAction, screenshotAction, cancelAction);
         }
         // Show a debug log, every LOG_PROGRESS_STEP percent.
-        final int progress = info.getProgress();
+        final int progress = info.progress.intValue();
 
-        if ((info.getProgress() == 0) || (info.getProgress() >= 100)
-                || ((progress / LOG_PROGRESS_STEP) != (mLastProgressPercent / LOG_PROGRESS_STEP))) {
+        if ((progress == 0) || (progress >= 100)
+                || ((progress / LOG_PROGRESS_STEP)
+                != (info.lastProgress.intValue() / LOG_PROGRESS_STEP))) {
             Log.d(TAG, "Progress #" + info.id + ": " + percentageText);
         }
-        mLastProgressPercent = progress;
+        info.lastProgress = new AtomicInteger(progress);
 
         sendForegroundabledNotification(info.id, builder.build());
     }
@@ -810,10 +813,10 @@
         mInfoDialog.cancel();
         synchronized (mLock) {
             final BugreportInfo info = getInfoLocked(id);
-            if (info != null && !info.isFinished()) {
+            if (info != null && !info.finished.get()) {
                 Log.i(TAG, "Cancelling bugreport service (ID=" + id + ") on user's request");
                 mBugreportManager.cancelBugreport();
-                deleteScreenshots(info);
+                info.deleteScreenshots();
             }
             stopProgressLocked(id);
         }
@@ -925,7 +928,7 @@
             mTakingScreenshot = flag;
             for (int i = 0; i < mBugreportInfos.size(); i++) {
                 final BugreportInfo info = getInfoLocked(mBugreportInfos.keyAt(i));
-                if (info.isFinished()) {
+                if (info.finished.get()) {
                     Log.d(TAG, "Not updating progress for " + info.id + " while taking screenshot"
                             + " because share notification was already sent");
                     continue;
@@ -958,7 +961,7 @@
         final String msg;
         if (taken) {
             info.addScreenshot(screenshotFile);
-            if (info.isFinished()) {
+            if (info.finished.get()) {
                 Log.d(TAG, "Screenshot finished after bugreport; updating share notification");
                 info.renameScreenshots();
                 sendBugreportNotification(info, mTakingScreenshot);
@@ -972,16 +975,6 @@
     }
 
     /**
-     * Deletes all screenshots taken for a given bugreport.
-     */
-    private void deleteScreenshots(BugreportInfo info) {
-        for (File file : info.screenshotFiles) {
-            Log.i(TAG, "Deleting screenshot file " + file);
-            file.delete();
-        }
-    }
-
-    /**
      * Stop running on foreground once there is no more active bugreports being watched.
      */
     @GuardedBy("mLock")
@@ -1001,7 +994,7 @@
         if (total > 0) {
             for (int i = 0; i < total; i++) {
                 final BugreportInfo info = getInfoLocked(mBugreportInfos.keyAt(i));
-                if (!info.isFinished()) {
+                if (!info.finished.get()) {
                     updateProgress(info);
                     break;
                 }
@@ -1026,9 +1019,12 @@
      * Wraps up bugreport generation and triggers a notification to share the bugreport.
      */
     private void onBugreportFinished(BugreportInfo info) {
+        if (!TextUtils.isEmpty(info.shareTitle)) {
+            info.setTitle(info.shareTitle);
+        }
         Log.d(TAG, "Bugreport finished with title: " + info.getTitle()
-                + " and shareDescription:  " + info.shareDescription);
-        info.setFinished(true);
+                + " and shareDescription: " + info.shareDescription);
+        info.finished = new AtomicBoolean(true);
 
         synchronized (mLock) {
             // Stop running on foreground, otherwise share notification cannot be dismissed.
@@ -1772,25 +1768,25 @@
          * This will end with the string "wifi"/"telephony" for wifi/telephony bugreports.
          * Bugreport zip file name  = "<baseName>-<name>.zip"
          */
-        String baseName;
+        private final String baseName;
 
         /**
          * Suffix name of the bugreport/screenshot, is set to timestamp initially. User can make
          * modifications to this using interface.
          */
-        String name;
+        private String name;
 
         /**
          * Initial value of the field name. This is required to rename the files later on, as they
          * are created using initial value of name.
          */
-        String initialName;
+        private final String initialName;
 
         /**
          * User-provided, one-line summary of the bug; when set, will be used as the subject
          * of the {@link Intent#ACTION_SEND_MULTIPLE} intent.
          */
-        String title;
+        private String title;
 
         /**
          * One-line summary of the bug; when set, will be used as the subject of the
@@ -1798,23 +1794,32 @@
          * set initially when the request to take a bugreport is made. This overrides any changes
          * in the title that the user makes after the bugreport starts.
          */
-        String shareTitle;
+        private final String shareTitle;
 
         /**
          * User-provided, detailed description of the bugreport; when set, will be added to the body
-         * of the {@link Intent#ACTION_SEND_MULTIPLE} intent.
+         * of the {@link Intent#ACTION_SEND_MULTIPLE} intent. This is shown in the app where the
+         * bugreport is being shared as an attachment. This is not related/dependant on
+         * {@code shareDescription}.
          */
-        String description;
+        private String description;
 
         /**
-         * Current progress (in percentage) of the bugreport generation as displayed by the UI.
+         * Current value of progress (in percentage) of the bugreport generation as
+         * displayed by the UI.
          */
-        int progress;
+        AtomicInteger progress = new AtomicInteger(0);
+
+        /**
+         * Last value of progress (in percentage) of the bugreport generation for which
+         * system notification was updated.
+         */
+        AtomicInteger lastProgress = new AtomicInteger(0);
 
         /**
          * Time of the last progress update.
          */
-        long lastUpdate = System.currentTimeMillis();
+        AtomicLong lastUpdate = new AtomicLong(System.currentTimeMillis());
 
         /**
          * Time of the last progress update when Parcel was created.
@@ -1834,7 +1839,7 @@
         /**
          * Whether dumpstate sent an intent informing it has finished.
          */
-        boolean finished;
+        AtomicBoolean finished = new AtomicBoolean(false);
 
         /**
          * Whether the details entries have been added to the bugreport yet.
@@ -1852,12 +1857,12 @@
          * predefined description which is set initially when the request to take a bugreport is
          * made.
          */
-        String shareDescription;
+        private final String shareDescription;
 
         /**
          * Type of the bugreport
          */
-        int type;
+        final int type;
 
         private final Object mLock = new Object();
 
@@ -1899,18 +1904,6 @@
             return getFd(screenshotFiles.get(0));
         }
 
-        void setFinished(boolean isFinished) {
-            synchronized (mLock) {
-                this.finished = isFinished;
-            }
-        }
-
-        boolean isFinished() {
-            synchronized (mLock) {
-                return finished;
-            }
-        }
-
         void setTitle(String title) {
             synchronized (mLock) {
                 this.title = title;
@@ -1947,30 +1940,6 @@
             }
         }
 
-        void setProgress(int progress) {
-            synchronized (mLock) {
-                this.progress = progress;
-            }
-        }
-
-        int getProgress() {
-            synchronized (mLock) {
-                return progress;
-            }
-        }
-
-        void setLastUpdate(long lastUpdate) {
-            synchronized (mLock) {
-                this.lastUpdate = lastUpdate;
-            }
-        }
-
-        long getLastUpdate() {
-            synchronized (mLock) {
-                return lastUpdate;
-            }
-        }
-
         /**
          * Gets the name for next user triggered screenshot file.
          */
@@ -1994,6 +1963,16 @@
         }
 
         /**
+         * Deletes all screenshots taken for a given bugreport.
+         */
+        private void deleteScreenshots() {
+            for (File file : screenshotFiles) {
+                Log.i(TAG, "Deleting screenshot file " + file);
+                file.delete();
+            }
+        }
+
+        /**
          * Rename all screenshots files so that they contain the new {@code name} instead of the
          * {@code initialName} if user has changed it.
          */
@@ -2040,9 +2019,9 @@
             if (context == null) {
                 // Restored from Parcel
                 return formattedLastUpdate == null ?
-                        Long.toString(getLastUpdate()) : formattedLastUpdate;
+                        Long.toString(lastUpdate.longValue()) : formattedLastUpdate;
             }
-            return DateUtils.formatDateTime(context, getLastUpdate(),
+            return DateUtils.formatDateTime(context, lastUpdate.longValue(),
                     DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_TIME);
         }
 
@@ -2087,8 +2066,8 @@
             initialName = in.readString();
             title = in.readString();
             description = in.readString();
-            progress = in.readInt();
-            lastUpdate = in.readLong();
+            progress = new AtomicInteger(in.readInt());
+            lastUpdate = new AtomicLong(in.readLong());
             formattedLastUpdate = in.readString();
             bugreportFile = readFile(in);
 
@@ -2097,10 +2076,11 @@
                   screenshotFiles.add(readFile(in));
             }
 
-            finished = in.readInt() == 1;
+            finished = new AtomicBoolean(in.readInt() == 1);
             screenshotCounter = in.readInt();
             shareDescription = in.readString();
             shareTitle = in.readString();
+            type = in.readInt();
         }
 
         @Override
@@ -2111,8 +2091,8 @@
             dest.writeString(initialName);
             dest.writeString(title);
             dest.writeString(description);
-            dest.writeInt(progress);
-            dest.writeLong(lastUpdate);
+            dest.writeInt(progress.intValue());
+            dest.writeLong(lastUpdate.longValue());
             dest.writeString(getFormattedLastUpdate());
             writeFile(dest, bugreportFile);
 
@@ -2121,10 +2101,11 @@
                 writeFile(dest, screenshotFile);
             }
 
-            dest.writeInt(finished ? 1 : 0);
+            dest.writeInt(finished.get() ? 1 : 0);
             dest.writeInt(screenshotCounter);
             dest.writeString(shareDescription);
             dest.writeString(shareTitle);
+            dest.writeInt(type);
         }
 
         @Override
@@ -2154,7 +2135,6 @@
                 return new BugreportInfo[size];
             }
         };
-
     }
 
     @GuardedBy("mLock")
@@ -2163,13 +2143,13 @@
             progress = CAPPED_PROGRESS;
         }
         if (DEBUG) {
-            if (progress != info.getProgress()) {
+            if (progress != info.progress.intValue()) {
                 Log.v(TAG, "Updating progress for name " + info.getName() + "(id: " + info.id
-                        + ") from " + info.getProgress() + " to " + progress);
+                        + ") from " + info.progress.intValue() + " to " + progress);
             }
         }
-        info.setProgress(progress);
-        info.setLastUpdate(System.currentTimeMillis());
+        info.progress = new AtomicInteger(progress);
+        info.lastUpdate = new AtomicLong(System.currentTimeMillis());
 
         updateProgress(info);
     }
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
index da93db7..f2d40ce 100644
--- a/packages/SystemUI/AndroidManifest.xml
+++ b/packages/SystemUI/AndroidManifest.xml
@@ -300,11 +300,6 @@
             android:exported="false"
             android:permission="com.android.systemui.permission.SELF" />
 
-        <service android:name=".assist.AssistHandleService"
-            android:exported="true"
-            android:enabled="false"
-        />
-
         <!-- started from PhoneWindowManager
              TODO: Should have an android:permission attribute -->
         <service android:name=".screenshot.TakeScreenshotService"
diff --git a/core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml b/packages/SystemUI/res/drawable/control_background_ripple.xml
similarity index 66%
copy from core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml
copy to packages/SystemUI/res/drawable/control_background_ripple.xml
index 24a0a2a..37914e2 100644
--- a/core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml
+++ b/packages/SystemUI/res/drawable/control_background_ripple.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
   ~ Copyright (C) 2020 The Android Open Source Project
   ~
@@ -15,13 +14,10 @@
   ~ limitations under the License.
   -->
 
-<manifest
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    package="android.content.res.loader.test"
-    split="split_four"
-    >
-
-    <uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
-    <application android:hasCode="false" />
-
-</manifest>
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+        android:color="?android:attr/colorControlHighlight">
+    <item android:id="@android:id/mask">
+        <color android:color="@android:color/white" />
+    </item>
+    <item android:drawable="@drawable/control_background" />
+</ripple>
\ No newline at end of file
diff --git a/core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml b/packages/SystemUI/res/drawable/ic_clear.xml
similarity index 60%
copy from core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml
copy to packages/SystemUI/res/drawable/ic_clear.xml
index 24a0a2a..5ee50d8 100644
--- a/core/tests/ResourceLoaderTests/splits/SplitFour/AndroidManifest.xml
+++ b/packages/SystemUI/res/drawable/ic_clear.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
   ~ Copyright (C) 2020 The Android Open Source Project
   ~
@@ -14,14 +13,12 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-
-<manifest
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    package="android.content.res.loader.test"
-    split="split_four"
-    >
-
-    <uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
-    <application android:hasCode="false" />
-
-</manifest>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24.0dp"
+        android:height="24.0dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12 19,6.41z"
+        android:fillColor="#FF000000"/>
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_air_freshener_off.xml b/packages/SystemUI/res/drawable/ic_device_air_freshener_off.xml
new file mode 100644
index 0000000..c343020
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_air_freshener_off.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M12,5C12.5523,5 13,4.5523 13,4C13,3.4477 12.5523,3 12,3C11.4477,3 11,3.4477 11,4C11,4.5523 11.4477,5 12,5Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,2C12.5523,2 13,1.5523 13,1C13,0.4477 12.5523,0 12,0C11.4477,0 11,0.4477 11,1C11,1.5523 11.4477,2 12,2Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M9.707,4.707C9.8469,4.5671 9.9421,4.389 9.9808,4.195C10.0194,4.001 9.9996,3.7999 9.9239,3.6172C9.8482,3.4344 9.72,3.2782 9.5556,3.1683C9.3911,3.0584 9.1978,2.9998 9,2.9998C8.8022,2.9998 8.6088,3.0584 8.4444,3.1683C8.2799,3.2782 8.1518,3.4344 8.0761,3.6172C8.0004,3.7999 7.9806,4.001 8.0192,4.195C8.0578,4.389 8.1531,4.5671 8.293,4.707C8.4805,4.8944 8.7348,4.9998 9,4.9998C9.2652,4.9998 9.5195,4.8944 9.707,4.707Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M7.707,2.707C7.8469,2.5671 7.9422,2.389 7.9808,2.195C8.0194,2.001 7.9996,1.7999 7.9239,1.6172C7.8482,1.4344 7.7201,1.2782 7.5556,1.1683C7.3911,1.0584 7.1978,0.9998 7,0.9998C6.8022,0.9998 6.6089,1.0584 6.4444,1.1683C6.2799,1.2782 6.1518,1.4344 6.0761,1.6172C6.0004,1.7999 5.9806,2.001 6.0192,2.195C6.0578,2.389 6.1531,2.5671 6.293,2.707C6.4805,2.8944 6.7348,2.9998 7,2.9998C7.2652,2.9998 7.5195,2.8944 7.707,2.707Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M15.707,4.707C15.8469,4.5671 15.9421,4.389 15.9808,4.195C16.0194,4.001 15.9996,3.7999 15.9239,3.6172C15.8482,3.4344 15.7201,3.2782 15.5556,3.1683C15.3911,3.0584 15.1978,2.9998 15,2.9998C14.8022,2.9998 14.6088,3.0584 14.4444,3.1683C14.2799,3.2782 14.1518,3.4344 14.0761,3.6172C14.0004,3.7999 13.9806,4.001 14.0192,4.195C14.0578,4.389 14.1531,4.5671 14.293,4.707C14.4805,4.8944 14.7348,4.9998 15,4.9998C15.2652,4.9998 15.5195,4.8944 15.707,4.707Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M17.707,2.707C17.8469,2.5671 17.9421,2.389 17.9808,2.195C18.0194,2.001 17.9996,1.7999 17.9239,1.6172C17.8482,1.4344 17.7201,1.2782 17.5556,1.1683C17.3911,1.0584 17.1978,0.9998 17,0.9998C16.8022,0.9998 16.6088,1.0584 16.4444,1.1683C16.2799,1.2782 16.1518,1.4344 16.0761,1.6172C16.0004,1.7999 15.9806,2.001 16.0192,2.195C16.0578,2.389 16.1531,2.5671 16.293,2.707C16.4805,2.8944 16.7348,2.9998 17,2.9998C17.2652,2.9998 17.5195,2.8944 17.707,2.707Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M15,9.683V7C15,6.7348 14.8946,6.4804 14.7071,6.2929C14.5196,6.1054 14.2652,6 14,6H10C9.7348,6 9.4804,6.1054 9.2929,6.2929C9.1053,6.4804 9,6.7348 9,7V9.683C7.855,10.2245 6.8787,11.067 6.1756,12.1205C5.4725,13.174 5.0689,14.3988 5.0081,15.6639C4.9473,16.929 5.2315,18.1868 5.8304,19.3029C6.4292,20.4189 7.3202,21.3512 8.408,22H15.592C16.6798,21.3512 17.5707,20.4189 18.1696,19.3029C18.7685,18.1868 19.0527,16.929 18.9919,15.6639C18.9311,14.3988 18.5275,13.174 17.8244,12.1205C17.1212,11.067 16.145,10.2245 15,9.683ZM14.989,20H9.011C8.3852,19.5381 7.877,18.9352 7.5276,18.2402C7.1783,17.5453 6.9975,16.7778 7,16C7.0041,15.0553 7.2746,14.131 7.7803,13.3331C8.286,12.5351 9.0065,11.896 9.859,11.489L11,10.946V8H13V10.946L14.141,11.489C14.9935,11.896 15.714,12.5351 16.2197,13.3331C16.7254,14.131 16.9959,15.0553 17,16C17.0025,16.7778 16.8217,17.5453 16.4723,18.2402C16.123,18.9352 15.6148,19.5381 14.989,20Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_air_freshener_on.xml b/packages/SystemUI/res/drawable/ic_device_air_freshener_on.xml
new file mode 100644
index 0000000..4f3434d
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_air_freshener_on.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M12,5C12.5523,5 13,4.5523 13,4C13,3.4477 12.5523,3 12,3C11.4477,3 11,3.4477 11,4C11,4.5523 11.4477,5 12,5Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,2C12.5523,2 13,1.5523 13,1C13,0.4477 12.5523,0 12,0C11.4477,0 11,0.4477 11,1C11,1.5523 11.4477,2 12,2Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M9.707,4.707C9.8469,4.5671 9.9422,4.389 9.9808,4.195C10.0194,4.001 9.9996,3.7999 9.9239,3.6172C9.8482,3.4344 9.7201,3.2782 9.5556,3.1683C9.3912,3.0584 9.1978,2.9998 9,2.9998C8.8022,2.9998 8.6088,3.0584 8.4444,3.1683C8.2799,3.2782 8.1518,3.4344 8.0761,3.6172C8.0004,3.7999 7.9806,4.001 8.0192,4.195C8.0578,4.389 8.1531,4.5671 8.293,4.707C8.4805,4.8944 8.7348,4.9998 9,4.9998C9.2652,4.9998 9.5195,4.8944 9.707,4.707Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M7.707,2.707C7.8469,2.5671 7.9422,2.389 7.9808,2.195C8.0194,2.001 7.9996,1.7999 7.9239,1.6172C7.8482,1.4344 7.7201,1.2782 7.5556,1.1683C7.3911,1.0584 7.1978,0.9998 7,0.9998C6.8022,0.9998 6.6089,1.0584 6.4444,1.1683C6.2799,1.2782 6.1518,1.4344 6.0761,1.6172C6.0004,1.7999 5.9806,2.001 6.0192,2.195C6.0578,2.389 6.1531,2.5671 6.293,2.707C6.4805,2.8944 6.7348,2.9998 7,2.9998C7.2652,2.9998 7.5195,2.8944 7.707,2.707Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M15.707,4.707C15.8469,4.5671 15.9422,4.389 15.9808,4.195C16.0194,4.001 15.9996,3.7999 15.9239,3.6172C15.8482,3.4344 15.7201,3.2782 15.5556,3.1683C15.3911,3.0584 15.1978,2.9998 15,2.9998C14.8022,2.9998 14.6089,3.0584 14.4444,3.1683C14.2799,3.2782 14.1518,3.4344 14.0761,3.6172C14.0004,3.7999 13.9806,4.001 14.0192,4.195C14.0578,4.389 14.1531,4.5671 14.293,4.707C14.4805,4.8944 14.7348,4.9998 15,4.9998C15.2652,4.9998 15.5195,4.8944 15.707,4.707Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M17.707,2.707C17.8469,2.5671 17.9422,2.389 17.9808,2.195C18.0194,2.001 17.9996,1.7999 17.9239,1.6172C17.8482,1.4344 17.7201,1.2782 17.5556,1.1683C17.3911,1.0584 17.1978,0.9998 17,0.9998C16.8022,0.9998 16.6089,1.0584 16.4444,1.1683C16.2799,1.2782 16.1518,1.4344 16.0761,1.6172C16.0004,1.7999 15.9806,2.001 16.0192,2.195C16.0578,2.389 16.1531,2.5671 16.293,2.707C16.4805,2.8944 16.7348,2.9998 17,2.9998C17.2652,2.9998 17.5195,2.8944 17.707,2.707Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M15,9.683V7C15,6.7348 14.8946,6.4804 14.7071,6.2929C14.5196,6.1054 14.2652,6 14,6H10C9.7348,6 9.4804,6.1054 9.2929,6.2929C9.1053,6.4804 9,6.7348 9,7V9.683C7.855,10.2245 6.8787,11.067 6.1756,12.1205C5.4725,13.174 5.0689,14.3988 5.0081,15.6639C4.9473,16.929 5.2315,18.1868 5.8304,19.3029C6.4292,20.4189 7.3202,21.3512 8.408,22H15.592C16.6798,21.3512 17.5707,20.4189 18.1696,19.3029C18.7685,18.1868 19.0527,16.929 18.9919,15.6639C18.9311,14.3988 18.5275,13.174 17.8244,12.1205C17.1213,11.067 16.145,10.2245 15,9.683Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_air_purifier_off.xml b/packages/SystemUI/res/drawable/ic_device_air_purifier_off.xml
new file mode 100644
index 0000000..b18c3e7
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_air_purifier_off.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M16,19H5V7C5.0016,6.47 5.2128,5.9623 5.5875,5.5875C5.9623,5.2128 6.47,5.0016 7,5H14C14.5299,5.0016 15.0377,5.2128 15.4125,5.5875C15.7872,5.9623 15.9984,6.47 16,7V8H18V7C18,5.9391 17.5786,4.9217 16.8284,4.1716C16.0783,3.4214 15.0609,3 14,3H7C5.9391,3 4.9217,3.4214 4.1716,4.1716C3.4214,4.9217 3,5.9391 3,7V21H18V17H16V19Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M19,13C18.6049,13.378 18.1309,13.6638 17.6122,13.8367C17.0935,14.0096 16.5429,14.0653 16,14V16C16.5429,16.0653 17.0935,16.0096 17.6122,15.8367C18.1309,15.6638 18.6049,15.378 19,15C19.93,14.02 20,14 21,14V12C20,12 19.93,12.02 19,13Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M19,9C18.6049,9.378 18.1309,9.6638 17.6122,9.8367C17.0935,10.0096 16.5429,10.0653 16,10V12C16.5429,12.0653 17.0935,12.0096 17.6122,11.8367C18.1309,11.6638 18.6049,11.378 19,11C19.93,10.02 20,10 21,10V8C20,8 19.93,8.02 19,9Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M10.5,8C9.7089,8 8.9355,8.2346 8.2777,8.6741C7.6199,9.1137 7.1072,9.7383 6.8045,10.4692C6.5017,11.2001 6.4225,12.0044 6.5769,12.7803C6.7312,13.5563 7.1122,14.269 7.6716,14.8284C8.231,15.3878 8.9437,15.7688 9.7196,15.9232C10.4956,16.0775 11.2998,15.9982 12.0307,15.6955C12.7616,15.3927 13.3864,14.8801 13.8259,14.2223C14.2654,13.5645 14.5,12.7911 14.5,12C14.5,10.9391 14.0786,9.9217 13.3284,9.1716C12.5783,8.4214 11.5609,8 10.5,8ZM10.5,14C10.1044,14 9.7178,13.8827 9.3889,13.663C9.06,13.4432 8.8036,13.1308 8.6522,12.7654C8.5009,12.3999 8.4613,11.9978 8.5384,11.6098C8.6156,11.2218 8.8061,10.8655 9.0858,10.5858C9.3655,10.3061 9.7219,10.1156 10.1098,10.0385C10.4978,9.9613 10.8999,10.0008 11.2654,10.1522C11.6308,10.3036 11.9432,10.56 12.1629,10.8889C12.3827,11.2178 12.5,11.6044 12.5,12C12.5,12.5304 12.2893,13.0391 11.9142,13.4142C11.5391,13.7893 11.0304,14 10.5,14Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_air_purifier_on.xml b/packages/SystemUI/res/drawable/ic_device_air_purifier_on.xml
new file mode 100644
index 0000000..b18c3e7
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_air_purifier_on.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M16,19H5V7C5.0016,6.47 5.2128,5.9623 5.5875,5.5875C5.9623,5.2128 6.47,5.0016 7,5H14C14.5299,5.0016 15.0377,5.2128 15.4125,5.5875C15.7872,5.9623 15.9984,6.47 16,7V8H18V7C18,5.9391 17.5786,4.9217 16.8284,4.1716C16.0783,3.4214 15.0609,3 14,3H7C5.9391,3 4.9217,3.4214 4.1716,4.1716C3.4214,4.9217 3,5.9391 3,7V21H18V17H16V19Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M19,13C18.6049,13.378 18.1309,13.6638 17.6122,13.8367C17.0935,14.0096 16.5429,14.0653 16,14V16C16.5429,16.0653 17.0935,16.0096 17.6122,15.8367C18.1309,15.6638 18.6049,15.378 19,15C19.93,14.02 20,14 21,14V12C20,12 19.93,12.02 19,13Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M19,9C18.6049,9.378 18.1309,9.6638 17.6122,9.8367C17.0935,10.0096 16.5429,10.0653 16,10V12C16.5429,12.0653 17.0935,12.0096 17.6122,11.8367C18.1309,11.6638 18.6049,11.378 19,11C19.93,10.02 20,10 21,10V8C20,8 19.93,8.02 19,9Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M10.5,8C9.7089,8 8.9355,8.2346 8.2777,8.6741C7.6199,9.1137 7.1072,9.7383 6.8045,10.4692C6.5017,11.2001 6.4225,12.0044 6.5769,12.7803C6.7312,13.5563 7.1122,14.269 7.6716,14.8284C8.231,15.3878 8.9437,15.7688 9.7196,15.9232C10.4956,16.0775 11.2998,15.9982 12.0307,15.6955C12.7616,15.3927 13.3864,14.8801 13.8259,14.2223C14.2654,13.5645 14.5,12.7911 14.5,12C14.5,10.9391 14.0786,9.9217 13.3284,9.1716C12.5783,8.4214 11.5609,8 10.5,8ZM10.5,14C10.1044,14 9.7178,13.8827 9.3889,13.663C9.06,13.4432 8.8036,13.1308 8.6522,12.7654C8.5009,12.3999 8.4613,11.9978 8.5384,11.6098C8.6156,11.2218 8.8061,10.8655 9.0858,10.5858C9.3655,10.3061 9.7219,10.1156 10.1098,10.0385C10.4978,9.9613 10.8999,10.0008 11.2654,10.1522C11.6308,10.3036 11.9432,10.56 12.1629,10.8889C12.3827,11.2178 12.5,11.6044 12.5,12C12.5,12.5304 12.2893,13.0391 11.9142,13.4142C11.5391,13.7893 11.0304,14 10.5,14Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_blinds_off.xml b/packages/SystemUI/res/drawable/ic_device_blinds_off.xml
new file mode 100644
index 0000000..a511ad2
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_blinds_off.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,18V4H4V18H2V20H22V18H20ZM18,6V9H6V6H18ZM6,18V11H11V13.2771C10.6187,13.4972 10.3207,13.8369 10.1522,14.2437C9.9838,14.6504 9.9542,15.1013 10.0681,15.5266C10.1821,15.9519 10.4332,16.3277 10.7825,16.5957C11.1318,16.8637 11.5597,17.009 12,17.009C12.4403,17.009 12.8682,16.8637 13.2175,16.5957C13.5668,16.3277 13.8179,15.9519 13.9319,15.5266C14.0458,15.1013 14.0162,14.6504 13.8478,14.2437C13.6793,13.8369 13.3813,13.4972 13,13.2771V11H18V18H6Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_blinds_on.xml b/packages/SystemUI/res/drawable/ic_device_blinds_on.xml
new file mode 100644
index 0000000..8166274
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_blinds_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,18V4H4V18H2V20H22V18H20ZM6,18V11H11V13.2771C10.6187,13.4972 10.3207,13.8369 10.1522,14.2437C9.9838,14.6504 9.9542,15.1013 10.0681,15.5266C10.1821,15.9519 10.4332,16.3277 10.7825,16.5957C11.1318,16.8637 11.5597,17.009 12,17.009C12.4403,17.009 12.8682,16.8637 13.2175,16.5957C13.5668,16.3277 13.8179,15.9519 13.9319,15.5266C14.0458,15.1013 14.0162,14.6504 13.8478,14.2437C13.6793,13.8369 13.3813,13.4972 13,13.2771V11H18V18H6Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_camera_off.xml b/packages/SystemUI/res/drawable/ic_device_camera_off.xml
new file mode 100644
index 0000000..32cad14
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_camera_off.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M18,10.48V6C17.9984,5.47 17.7872,4.9624 17.4125,4.5876C17.0377,4.2129 16.5299,4.0016 16,4H4C3.4701,4.0016 2.9623,4.2129 2.5875,4.5876C2.2128,4.9624 2.0016,5.47 2,6V18C2.0016,18.5299 2.2128,19.0376 2.5875,19.4124C2.9623,19.7871 3.4701,19.9984 4,20H16C16.5299,19.9984 17.0377,19.7871 17.4125,19.4124C17.7872,19.0376 17.9984,18.5299 18,18V13.52L22,17.5V6.5L18,10.48ZM16,9.6899V18H4V6H16V9.6899Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_camera_on.xml b/packages/SystemUI/res/drawable/ic_device_camera_on.xml
new file mode 100644
index 0000000..93c50f0
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_camera_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M18,10.48V6C17.9984,5.47 17.7872,4.9624 17.4125,4.5876C17.0377,4.2129 16.5299,4.0016 16,4H4C3.4701,4.0016 2.9623,4.2129 2.5875,4.5876C2.2128,4.9624 2.0016,5.47 2,6V18C2.0016,18.5299 2.2128,19.0376 2.5875,19.4124C2.9623,19.7871 3.4701,19.9984 4,20H16C16.5299,19.9984 17.0377,19.7871 17.4125,19.4124C17.7872,19.0376 17.9984,18.5299 18,18V13.52L22,17.5V6.5L18,10.48Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_dishwasher_off.xml b/packages/SystemUI/res/drawable/ic_device_dishwasher_off.xml
new file mode 100644
index 0000000..16ad90b
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_dishwasher_off.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M18,2.01L6,2C5.7371,1.9991 5.4766,2.0502 5.2335,2.1504C4.9905,2.2506 4.7696,2.3979 4.5837,2.5838C4.3978,2.7696 4.2505,2.9905 4.1504,3.2335C4.0502,3.4766 3.9991,3.7371 4,4V20C3.9991,20.2629 4.0502,20.5234 4.1504,20.7665C4.2505,21.0096 4.3978,21.2304 4.5837,21.4163C4.7696,21.6022 4.9905,21.7494 5.2335,21.8496C5.4766,21.9498 5.7371,22.0009 6,22H18C18.2629,22.0009 18.5234,21.9498 18.7665,21.8496C19.0095,21.7494 19.2304,21.6022 19.4163,21.4163C19.6022,21.2304 19.7495,21.0096 19.8496,20.7665C19.9498,20.5234 20.0009,20.2629 20,20V4C20.0007,3.7376 19.9493,3.4778 19.8489,3.2354C19.7485,2.993 19.6011,2.7728 19.4151,2.5878C19.2291,2.4027 19.0083,2.2564 18.7654,2.1572C18.5225,2.0581 18.2624,2.008 18,2.01ZM18,20H6L5.993,4H18V20Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M11,7C11.5523,7 12,6.5523 12,6C12,5.4477 11.5523,5 11,5C10.4477,5 10,5.4477 10,6C10,6.5523 10.4477,7 11,7Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M8,7C8.5523,7 9,6.5523 9,6C9,5.4477 8.5523,5 8,5C7.4477,5 7,5.4477 7,6C7,6.5523 7.4477,7 8,7Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M8.211,14.272C8.2337,15.2618 8.6429,16.2035 9.351,16.8955C10.0591,17.5875 11.0099,17.975 12,17.975C12.9901,17.975 13.9409,17.5875 14.649,16.8955C15.3571,16.2035 15.7663,15.2618 15.789,14.272C15.7891,13.7805 15.6908,13.2941 15.5,12.8412C15.3092,12.3883 15.0297,11.9782 14.678,11.635L12,9L9.322,11.635C8.9703,11.9782 8.6908,12.3883 8.5,12.8412C8.3092,13.2941 8.2109,13.7805 8.211,14.272ZM10.724,13.061L12,11.806L13.276,13.061C13.4381,13.2184 13.567,13.4065 13.6551,13.6145C13.7432,13.8225 13.7888,14.0461 13.789,14.272C13.7735,14.7361 13.5782,15.1761 13.2444,15.4989C12.9106,15.8217 12.4644,16.0022 12,16.0022C11.5356,16.0022 11.0894,15.8217 10.7556,15.4989C10.4218,15.1761 10.2265,14.7361 10.211,14.272C10.2111,14.0461 10.2566,13.8225 10.3447,13.6145C10.4328,13.4065 10.5618,13.2183 10.724,13.061Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_dishwasher_on.xml b/packages/SystemUI/res/drawable/ic_device_dishwasher_on.xml
new file mode 100644
index 0000000..63f99ce
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_dishwasher_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M18,2.01L6,2C5.7371,1.9991 5.4766,2.0502 5.2335,2.1504C4.9905,2.2506 4.7696,2.3979 4.5837,2.5838C4.3978,2.7696 4.2505,2.9905 4.1504,3.2335C4.0502,3.4766 3.9991,3.7371 4,4V20C3.9991,20.2629 4.0502,20.5234 4.1504,20.7665C4.2505,21.0096 4.3978,21.2304 4.5837,21.4163C4.7696,21.6022 4.9905,21.7494 5.2335,21.8496C5.4766,21.9498 5.7371,22.0009 6,22H18C18.2629,22.0009 18.5234,21.9498 18.7665,21.8496C19.0095,21.7494 19.2304,21.6022 19.4163,21.4163C19.6022,21.2304 19.7495,21.0096 19.8496,20.7665C19.9498,20.5234 20.0009,20.2629 20,20V4C20.0007,3.7376 19.9493,3.4778 19.8489,3.2354C19.7485,2.993 19.6011,2.7728 19.4151,2.5878C19.2291,2.4027 19.0083,2.2564 18.7654,2.1572C18.5225,2.0581 18.2624,2.008 18,2.01ZM11,5C11.1978,5 11.3911,5.0587 11.5556,5.1686C11.72,5.2785 11.8482,5.4346 11.9239,5.6173C11.9996,5.8 12.0194,6.0011 11.9808,6.1951C11.9422,6.3891 11.847,6.5673 11.7071,6.7072C11.5673,6.847 11.3891,6.9423 11.1951,6.9809C11.0011,7.0194 10.8,6.9995 10.6173,6.9238C10.4346,6.8481 10.2784,6.72 10.1685,6.5556C10.0586,6.3911 10,6.1978 10,6C10,5.7348 10.1054,5.4804 10.2929,5.2929C10.4804,5.1053 10.7348,5 11,5ZM7,6C7,5.8022 7.0587,5.6089 7.1685,5.4445C7.2784,5.28 7.4346,5.1519 7.6173,5.0762C7.8,5.0005 8.0011,4.9806 8.1951,5.0192C8.3891,5.0578 8.5673,5.153 8.7071,5.2929C8.847,5.4327 8.9422,5.611 8.9808,5.8049C9.0194,5.9989 8.9996,6.2 8.9239,6.3827C8.8482,6.5654 8.72,6.7215 8.5556,6.8314C8.3911,6.9413 8.1978,7 8,7C7.7348,7 7.4804,6.8947 7.2929,6.7072C7.1054,6.5196 7,6.2652 7,6ZM12,18C11.0032,18.008 10.0441,17.6198 9.3335,16.9207C8.623,16.2216 8.2192,15.2688 8.211,14.272C8.2109,13.7806 8.3092,13.2941 8.5,12.8412C8.6908,12.3883 8.9703,11.9782 9.322,11.635L12,9L14.678,11.635C15.0297,11.9782 15.3092,12.3883 15.5,12.8412C15.6908,13.2941 15.7891,13.7806 15.789,14.272C15.7808,15.2688 15.377,16.2216 14.6665,16.9207C13.9559,17.6198 12.9968,18.008 12,18Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_doorbell_off.xml b/packages/SystemUI/res/drawable/ic_device_doorbell_off.xml
new file mode 100644
index 0000000..6c03a4b
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_doorbell_off.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M17,2H7C6.4696,2 5.9609,2.2106 5.5858,2.5857C5.2107,2.9608 5,3.4696 5,4V20C5,20.5304 5.2107,21.0392 5.5858,21.4143C5.9609,21.7894 6.4696,22 7,22H17C17.5304,22 18.0391,21.7894 18.4142,21.4143C18.7893,21.0392 19,20.5304 19,20V4C19,3.4696 18.7893,2.9608 18.4142,2.5857C18.0391,2.2106 17.5304,2 17,2ZM17,20H7V4H17V20Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,15C11.6044,15 11.2177,15.1174 10.8889,15.3372C10.56,15.5569 10.3036,15.8692 10.1522,16.2346C10.0009,16.6001 9.9613,17.0022 10.0384,17.3901C10.1156,17.7781 10.3061,18.1346 10.5858,18.4143C10.8655,18.694 11.2219,18.8845 11.6098,18.9617C11.9978,19.0388 12.3999,18.999 12.7654,18.8477C13.1308,18.6963 13.4432,18.44 13.6629,18.1111C13.8827,17.7822 14,17.3956 14,17C14,16.4696 13.7893,15.9608 13.4142,15.5857C13.0391,15.2106 12.5304,15 12,15ZM12,18C11.8022,18 11.6089,17.9414 11.4444,17.8315C11.28,17.7217 11.1518,17.5653 11.0761,17.3826C11.0004,17.1998 10.9806,16.9989 11.0192,16.8049C11.0578,16.611 11.153,16.4328 11.2929,16.293C11.4327,16.1531 11.6109,16.0579 11.8049,16.0193C11.9989,15.9807 12.2,16.0005 12.3827,16.0762C12.5654,16.1519 12.7216,16.2799 12.8315,16.4443C12.9413,16.6088 13,16.8022 13,17C13,17.2652 12.8946,17.5195 12.7071,17.707C12.5196,17.8946 12.2652,18 12,18Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M13,12.5H11C11,12.7652 11.1054,13.0195 11.2929,13.207C11.4804,13.3946 11.7348,13.5 12,13.5C12.2652,13.5 12.5196,13.3946 12.7071,13.207C12.8946,13.0195 13,12.7652 13,12.5Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M16,11H15V8.6599C15.0532,7.9533 14.8572,7.2506 14.4462,6.6733C14.0352,6.0961 13.4351,5.6809 12.75,5.5V5.25C12.75,5.0511 12.671,4.8604 12.5303,4.7197C12.3897,4.5791 12.1989,4.5 12,4.5C11.8011,4.5 11.6103,4.5791 11.4697,4.7197C11.329,4.8604 11.25,5.0511 11.25,5.25V5.5C10.5659,5.6827 9.9669,6.0982 9.5562,6.675C9.1455,7.2519 8.9488,7.9537 9,8.6599V11H8V12H16V11Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_doorbell_on.xml b/packages/SystemUI/res/drawable/ic_device_doorbell_on.xml
new file mode 100644
index 0000000..d08393a
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_doorbell_on.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M12,18C12.5523,18 13,17.5523 13,17C13,16.4477 12.5523,16 12,16C11.4477,16 11,16.4477 11,17C11,17.5523 11.4477,18 12,18Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M17,2H7C6.4696,2 5.9609,2.2106 5.5858,2.5857C5.2107,2.9608 5,3.4696 5,4V20C5,20.5304 5.2107,21.0392 5.5858,21.4143C5.9609,21.7894 6.4696,22 7,22H17C17.5304,22 18.0391,21.7894 18.4142,21.4143C18.7893,21.0392 19,20.5304 19,20V4C19,3.4696 18.7893,2.9608 18.4142,2.5857C18.0391,2.2106 17.5304,2 17,2ZM12,19C11.6044,19 11.2178,18.8826 10.8889,18.6628C10.56,18.4431 10.3036,18.1308 10.1522,17.7654C10.0009,17.3999 9.9613,16.9978 10.0384,16.6099C10.1156,16.2219 10.3061,15.8654 10.5858,15.5857C10.8655,15.306 11.2219,15.1155 11.6098,15.0383C11.9978,14.9612 12.3999,15.001 12.7654,15.1523C13.1308,15.3037 13.4432,15.56 13.6629,15.8889C13.8827,16.2178 14,16.6044 14,17C14,17.5304 13.7893,18.0392 13.4142,18.4143C13.0391,18.7894 12.5304,19 12,19ZM11,12.5H13C13,12.7652 12.8946,13.0195 12.7071,13.207C12.5196,13.3946 12.2652,13.5 12,13.5C11.7348,13.5 11.4804,13.3946 11.2929,13.207C11.1054,13.0195 11,12.7652 11,12.5ZM16,12H8V11H9V8.6599C8.9488,7.9537 9.1455,7.2519 9.5562,6.675C9.9669,6.0982 10.5659,5.6827 11.25,5.5V5.25C11.25,5.0511 11.329,4.8604 11.4697,4.7197C11.6103,4.5791 11.8011,4.5 12,4.5C12.1989,4.5 12.3897,4.5791 12.5303,4.7197C12.671,4.8604 12.75,5.0511 12.75,5.25V5.5C13.4351,5.6809 14.0352,6.0961 14.4462,6.6733C14.8572,7.2506 15.0532,7.9533 15,8.6599V11H16V12Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_drawer_off.xml b/packages/SystemUI/res/drawable/ic_device_drawer_off.xml
new file mode 100644
index 0000000..bcab534
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_drawer_off.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M18,3H6C5.4696,3 4.9609,3.2109 4.5858,3.5859C4.2107,3.961 4,4.4696 4,5V21H6V19H18V21H20V5C20,4.4696 19.7893,3.961 19.4142,3.5859C19.0391,3.2109 18.5304,3 18,3ZM18,11H13V9H18V11ZM18,7H13V5H18V7ZM11,5V11H6V5H11ZM6,17V13H18V17H6Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M14,14H10V16H14V14Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_drawer_on.xml b/packages/SystemUI/res/drawable/ic_device_drawer_on.xml
new file mode 100644
index 0000000..800e9f1
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_drawer_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M18,3H6C5.4696,3 4.9609,3.2109 4.5858,3.5859C4.2107,3.961 4,4.4696 4,5V21H6V19H18V21H20V5C20,4.4696 19.7893,3.961 19.4142,3.5859C19.0391,3.2109 18.5304,3 18,3ZM6,5H11V11H6V5ZM14,16H10V14H14V16ZM18,11H13V9H18V11ZM18,7H13V5H18V7Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_fan_off.xml b/packages/SystemUI/res/drawable/ic_device_fan_off.xml
new file mode 100644
index 0000000..c90d574
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_fan_off.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M16.345,8.3611L14.055,9.1791C13.8731,9.0458 13.6785,8.9309 13.474,8.8361C13.6398,7.9956 14.1302,7.2543 14.839,6.7731C15.3079,6.465 15.6646,6.0136 15.8558,5.4861C16.047,4.9587 16.0625,4.3836 15.8999,3.8466C15.7374,3.3097 15.4055,2.8397 14.9538,2.5069C14.5022,2.1741 13.955,1.9963 13.394,2.0001C8.994,2.0001 7.157,5.0071 8.361,7.6551L9.179,9.9451C9.0458,10.1269 8.9309,10.3215 8.836,10.5261C7.9954,10.3606 7.254,9.8701 6.773,9.1611C6.465,8.6922 6.0135,8.3355 5.4861,8.1443C4.9587,7.9531 4.3835,7.9375 3.8466,8.1001C3.3096,8.2627 2.8396,8.5946 2.5068,9.0462C2.174,9.4979 1.9962,10.0451 2,10.6061C2,15.0061 5.007,16.843 7.655,15.639L9.945,14.821C10.1267,14.9541 10.3209,15.069 10.525,15.1641C10.3598,16.0048 9.8692,16.7463 9.16,17.227C8.691,17.5351 8.3343,17.9867 8.1431,18.5142C7.9519,19.0418 7.9365,19.617 8.0992,20.154C8.2619,20.691 8.5939,21.161 9.0457,21.4937C9.4976,21.8264 10.0449,22.004 10.606,22.0001C15.006,22.0001 16.843,18.993 15.639,16.345L14.821,14.0551C14.954,13.8734 15.0689,13.6791 15.164,13.475C16.0048,13.6402 16.7462,14.1309 17.227,14.8401C17.5351,15.3091 17.9866,15.6657 18.5141,15.8569C19.0417,16.0481 19.6169,16.0636 20.1539,15.9009C20.6909,15.7382 21.1609,15.4061 21.4936,14.9543C21.8264,14.5025 22.004,13.9551 22,13.394C22,9 18.993,7.1571 16.345,8.3611ZM12,13.5001C11.7033,13.5001 11.4133,13.4121 11.1666,13.2473C10.92,13.0824 10.7277,12.8482 10.6142,12.5741C10.5006,12.3 10.4709,11.9984 10.5288,11.7074C10.5867,11.4164 10.7296,11.1492 10.9393,10.9394C11.1491,10.7296 11.4164,10.5867 11.7074,10.5289C11.9983,10.471 12.2999,10.5007 12.574,10.6143C12.8481,10.7278 13.0824,10.92 13.2472,11.1667C13.412,11.4134 13.5,11.7034 13.5,12.0001C13.5,12.3979 13.342,12.7794 13.0607,13.0607C12.7793,13.342 12.3978,13.5001 12,13.5001ZM10.245,5.2161C10.6327,4.7742 11.1217,4.4328 11.6701,4.2211C12.2184,4.0093 12.8099,3.9335 13.394,4.0001C13.5259,3.9959 13.6555,4.0354 13.7627,4.1124C13.8699,4.1893 13.9487,4.2995 13.987,4.4258C14.0253,4.5521 14.0208,4.6875 13.9744,4.811C13.9279,4.9346 13.842,5.0393 13.73,5.1091C13.1418,5.5017 12.6392,6.0092 12.2521,6.601C11.8651,7.1929 11.6018,7.8568 11.478,8.553C11.2666,8.5847 11.0587,8.6362 10.857,8.707L10.181,6.8271C10.0515,6.576 9.9893,6.2955 10.0005,6.0131C10.0117,5.7308 10.0959,5.4561 10.245,5.2161ZM6.827,13.816C6.576,13.9458 6.2956,14.0083 6.0132,13.9973C5.7308,13.9862 5.4561,13.902 5.216,13.753C4.7745,13.3655 4.4332,12.8769 4.2215,12.3289C4.0098,11.7809 3.9338,11.1898 4,10.6061C3.9959,10.4742 4.0353,10.3446 4.1123,10.2374C4.1893,10.1302 4.2994,10.0513 4.4257,10.0131C4.552,9.9748 4.6874,9.9792 4.8109,10.0257C4.9345,10.0722 5.0392,10.1581 5.109,10.2701C5.5015,10.8581 6.0088,11.3607 6.6005,11.7477C7.1922,12.1347 7.8559,12.3981 8.552,12.522C8.5844,12.7334 8.6363,12.9413 8.707,13.1431L6.827,13.816ZM13.755,18.782C13.3675,19.2242 12.8786,19.566 12.3302,19.7781C11.7818,19.9902 11.1902,20.0664 10.606,20.0001C10.4741,20.0042 10.3445,19.9647 10.2373,19.8878C10.1301,19.8108 10.0512,19.7006 10.013,19.5743C9.9747,19.448 9.9791,19.3126 10.0256,19.1891C10.0721,19.0656 10.158,18.9608 10.27,18.8911C10.8581,18.4987 11.3606,17.9914 11.7475,17.3997C12.1343,16.808 12.3974,16.1441 12.521,15.4481C12.7327,15.4156 12.9409,15.3638 13.143,15.2931L13.818,17.173C13.9477,17.4241 14.0101,17.7045 13.999,17.9869C13.988,18.2692 13.9039,18.5439 13.755,18.7841V18.782ZM18.891,13.7281C18.4985,13.1399 17.991,12.6373 17.3992,12.2504C16.8073,11.8636 16.1432,11.6005 15.447,11.477C15.4154,11.2653 15.3639,11.057 15.293,10.855L17.173,10.1801C17.424,10.0503 17.7044,9.9879 17.9868,9.9989C18.2692,10.0099 18.5439,10.094 18.784,10.243C19.2261,10.631 19.5677,11.1202 19.7795,11.669C19.9912,12.2178 20.0669,12.8097 20,13.394C20.0041,13.5259 19.9647,13.6555 19.8877,13.7628C19.8107,13.87 19.7006,13.9488 19.5743,13.9871C19.448,14.0253 19.3126,14.0209 19.1891,13.9744C19.0655,13.928 18.9608,13.8421 18.891,13.73V13.7281Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_fan_on.xml b/packages/SystemUI/res/drawable/ic_device_fan_on.xml
new file mode 100644
index 0000000..79950ea
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_fan_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M16.345,8.3611L14.055,9.1791C13.8731,9.0458 13.6785,8.9309 13.474,8.8361C13.6398,7.9956 14.1302,7.2543 14.839,6.7731C15.3079,6.465 15.6646,6.0136 15.8558,5.4861C16.047,4.9587 16.0625,4.3836 15.8999,3.8466C15.7374,3.3097 15.4055,2.8397 14.9538,2.5069C14.5022,2.1741 13.955,1.9963 13.394,2.0001C8.994,2.0001 7.157,5.0071 8.361,7.6551L9.179,9.9451C9.0457,10.1269 8.9309,10.3215 8.836,10.5261C7.9954,10.3606 7.254,9.8701 6.773,9.1611C6.465,8.6922 6.0135,8.3355 5.4861,8.1443C4.9587,7.9531 4.3835,7.9375 3.8466,8.1001C3.3096,8.2627 2.8396,8.5946 2.5068,9.0462C2.174,9.4979 1.9962,10.0451 2,10.6061C2,15.0061 5.007,16.843 7.655,15.639L9.945,14.821C10.1267,14.9541 10.3209,15.069 10.525,15.1641C10.3598,16.0048 9.8692,16.7463 9.16,17.227C8.691,17.5351 8.3343,17.9867 8.1431,18.5142C7.9519,19.0418 7.9365,19.617 8.0992,20.154C8.2619,20.691 8.5939,21.161 9.0457,21.4937C9.4976,21.8264 10.0449,22.004 10.606,22.0001C15.006,22.0001 16.843,18.993 15.639,16.345L14.821,14.0551C14.954,13.8734 15.0689,13.6791 15.164,13.475C16.0048,13.6402 16.7462,14.1309 17.227,14.8401C17.5351,15.3091 17.9866,15.6657 18.5141,15.8569C19.0417,16.0481 19.6169,16.0636 20.1539,15.9009C20.6909,15.7382 21.1609,15.4061 21.4936,14.9543C21.8264,14.5025 22.004,13.9551 22,13.394C22,9 18.993,7.1571 16.345,8.3611ZM12,13.5001C11.7033,13.5001 11.4133,13.4121 11.1666,13.2473C10.92,13.0824 10.7277,12.8482 10.6142,12.5741C10.5006,12.3 10.4709,11.9984 10.5288,11.7074C10.5867,11.4164 10.7296,11.1492 10.9393,10.9394C11.1491,10.7296 11.4164,10.5867 11.7074,10.5289C11.9983,10.471 12.2999,10.5007 12.574,10.6143C12.8481,10.7278 13.0824,10.92 13.2472,11.1667C13.412,11.4134 13.5,11.7034 13.5,12.0001C13.5,12.3979 13.342,12.7794 13.0607,13.0607C12.7794,13.342 12.3978,13.5001 12,13.5001Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_garage_off.xml b/packages/SystemUI/res/drawable/ic_device_garage_off.xml
new file mode 100644
index 0000000..8865983
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_garage_off.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,9L12,3L4,9V21H6V10L12,5.5L18,10V21H20V9Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M7,11V21H17V11H7ZM15,13V15H9V13H15ZM9,19V17H15V19H9Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_garage_on.xml b/packages/SystemUI/res/drawable/ic_device_garage_on.xml
new file mode 100644
index 0000000..8865983
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_garage_on.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,9L12,3L4,9V21H6V10L12,5.5L18,10V21H20V9Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M7,11V21H17V11H7ZM15,13V15H9V13H15ZM9,19V17H15V19H9Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_gate_off.xml b/packages/SystemUI/res/drawable/ic_device_gate_off.xml
new file mode 100644
index 0000000..9f7d9ed
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_gate_off.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M4,7H2V17H4V7Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M15,5H9C7.9391,5 6.9217,5.4215 6.1716,6.1716C5.4214,6.9218 5,7.9391 5,9V19H19V9C19,7.9391 18.5786,6.9218 17.8284,6.1716C17.0783,5.4215 16.0609,5 15,5ZM7,9C7,8.4696 7.2107,7.9608 7.5858,7.5857C7.9609,7.2106 8.4696,7 9,7H11V11H9V13H11V17H7V9ZM17,17H13V13H15V11H13V7H15C15.5304,7 16.0391,7.2106 16.4142,7.5857C16.7893,7.9608 17,8.4696 17,9V17Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M22,7H20V17H22V7Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_gate_on.xml b/packages/SystemUI/res/drawable/ic_device_gate_on.xml
new file mode 100644
index 0000000..1a005ac
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_gate_on.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M4,7H2V17H4V7Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M22,7H20V17H22V7Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M5,9V19H11V13H9V11H11V5H9C7.9391,5 6.9217,5.4215 6.1716,6.1716C5.4214,6.9218 5,7.9391 5,9Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M15,5H13V11H15V13H13V19H19V9C19,7.9391 18.5786,6.9218 17.8284,6.1716C17.0783,5.4215 16.0609,5 15,5Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_hood_off.xml b/packages/SystemUI/res/drawable/ic_device_hood_off.xml
new file mode 100644
index 0000000..71d5f24
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_hood_off.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M21.414,12.414L17,8V3H7V8L2.586,12.414C2.2109,12.789 2.0001,13.2976 2,13.828V18C2,18.5304 2.2107,19.0391 2.5858,19.4142C2.9609,19.7893 3.4696,20 4,20H20C20.5304,20 21.0391,19.7893 21.4142,19.4142C21.7893,19.0391 22,18.5304 22,18V13.828C21.9999,13.2976 21.7891,12.789 21.414,12.414ZM9,8.828V5H15V8.828L18.172,12H5.828L9,8.828ZM20,18H4V14H20V18Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M14,15.25H10V16.75H14V15.25Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_hood_on.xml b/packages/SystemUI/res/drawable/ic_device_hood_on.xml
new file mode 100644
index 0000000..721e68b
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_hood_on.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M21,12L17,8V3H7V8L3,12H21Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M2,14V18C2,18.5304 2.2107,19.0391 2.5858,19.4142C2.9609,19.7893 3.4696,20 4,20H20C20.5304,20 21.0391,19.7893 21.4142,19.4142C21.7893,19.0391 22,18.5304 22,18V14H2ZM14,16.75H10V15.25H14V16.75Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_kettle_off.xml b/packages/SystemUI/res/drawable/ic_device_kettle_off.xml
new file mode 100644
index 0000000..94ad254
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_kettle_off.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,5H18V2H3L6,6V19H18V14H20C20.5304,14 21.0391,13.7893 21.4142,13.4142C21.7893,13.0391 22,12.5304 22,12V7C22,6.4696 21.7893,5.9609 21.4142,5.5858C21.0391,5.2107 20.5304,5 20,5ZM16,17H8V5.333L7,4H16V17ZM20,12H18V7H20V12Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M15,5H12V16H15V5Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M21,20H3V22H21V20Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_kettle_on.xml b/packages/SystemUI/res/drawable/ic_device_kettle_on.xml
new file mode 100644
index 0000000..11081e8
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_kettle_on.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,5H18V2H3L6,6V19H18V14H20C20.5304,14 21.0391,13.7893 21.4142,13.4142C21.7893,13.0391 22,12.5304 22,12V7C22,6.4696 21.7893,5.9609 21.4142,5.5858C21.0391,5.2107 20.5304,5 20,5ZM15,16H12V5H15V16ZM20,12H18V7H20V12Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M21,20H3V22H21V20Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_light_off.xml b/packages/SystemUI/res/drawable/ic_device_light_off.xml
new file mode 100644
index 0000000..62fa631
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_light_off.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M12,22C12.5304,22 13.0391,21.7894 13.4142,21.4143C13.7893,21.0392 14,20.5304 14,20H10C10,20.5304 10.2107,21.0392 10.5858,21.4143C10.9609,21.7894 11.4696,22 12,22Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M16,17H8V19H16V17Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,2C10.3491,2.0023 8.7451,2.5493 7.4367,3.5561C6.1283,4.563 5.1887,5.9734 4.7636,7.5686C4.3385,9.1638 4.4516,10.8547 5.0854,12.3792C5.7191,13.9036 6.8382,15.1764 8.269,16H15.731C17.1618,15.1764 18.2809,13.9036 18.9147,12.3792C19.5485,10.8547 19.6616,9.1638 19.2364,7.5686C18.8113,5.9734 17.8717,4.563 16.5633,3.5561C15.2549,2.5493 13.6509,2.0023 12,2ZM15.148,14H8.848C8.1191,13.4982 7.5239,12.826 7.114,12.0417C6.7041,11.2575 6.4919,10.3849 6.496,9.5C6.496,8.0413 7.0755,6.6423 8.1069,5.6108C9.1384,4.5794 10.5373,4 11.996,4C13.4547,4 14.8536,4.5794 15.8851,5.6108C16.9165,6.6423 17.496,8.0413 17.496,9.5C17.5005,10.3846 17.289,11.2568 16.8798,12.041C16.4706,12.8252 15.8761,13.4977 15.148,14Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_light_on.xml b/packages/SystemUI/res/drawable/ic_device_light_on.xml
new file mode 100644
index 0000000..08f05fc
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_light_on.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M12,22C12.5304,22 13.0391,21.7894 13.4142,21.4143C13.7893,21.0392 14,20.5304 14,20H10C10,20.5304 10.2107,21.0392 10.5858,21.4143C10.9609,21.7894 11.4696,22 12,22Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M16,17H8V19H16V17Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,2C10.3491,2.0023 8.7451,2.5493 7.4367,3.5561C6.1283,4.563 5.1887,5.9734 4.7636,7.5686C4.3385,9.1638 4.4516,10.8547 5.0854,12.3792C5.7191,13.9036 6.8382,15.1764 8.269,16H15.731C17.1618,15.1764 18.2809,13.9036 18.9147,12.3792C19.5485,10.8547 19.6616,9.1638 19.2364,7.5686C18.8113,5.9734 17.8717,4.563 16.5633,3.5561C15.2549,2.5493 13.6509,2.0023 12,2Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_lock_off.xml b/packages/SystemUI/res/drawable/ic_device_lock_off.xml
new file mode 100644
index 0000000..a2662ff
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_lock_off.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M18,8H17V6C17,4.6739 16.4732,3.402 15.5355,2.4644C14.5979,1.5267 13.3261,1 12,1C10.6739,1 9.4021,1.5267 8.4645,2.4644C7.5268,3.402 7,4.6739 7,6V8H6C5.47,8.0016 4.9623,8.2127 4.5875,8.5874C4.2128,8.9621 4.0016,9.47 4,10V20C4.0016,20.5299 4.2128,21.0379 4.5875,21.4126C4.9623,21.7873 5.47,21.9984 6,22H18C18.5299,21.9984 19.0377,21.7873 19.4125,21.4126C19.7872,21.0379 19.9984,20.5299 20,20V10C19.9984,9.47 19.7872,8.9621 19.4125,8.5874C19.0377,8.2127 18.5299,8.0016 18,8ZM9,6C9,5.2043 9.3161,4.4415 9.8787,3.8789C10.4413,3.3163 11.2044,3 12,3C12.7956,3 13.5587,3.3163 14.1213,3.8789C14.6839,4.4415 15,5.2043 15,6V8H9V6ZM18,20H6V10H18V20Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,17C13.1046,17 14,16.1046 14,15C14,13.8954 13.1046,13 12,13C10.8954,13 10,13.8954 10,15C10,16.1046 10.8954,17 12,17Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_lock_on.xml b/packages/SystemUI/res/drawable/ic_device_lock_on.xml
new file mode 100644
index 0000000..5ae7090
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_lock_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M18,8H17V6C17,4.6739 16.4732,3.402 15.5355,2.4644C14.5979,1.5267 13.3261,1 12,1C10.6739,1 9.4022,1.5267 8.4645,2.4644C7.5268,3.402 7,4.6739 7,6V8H6C5.47,8.0016 4.9623,8.2127 4.5875,8.5874C4.2128,8.9621 4.0016,9.47 4,10V20C4.0016,20.5299 4.2128,21.0379 4.5875,21.4126C4.9623,21.7873 5.47,21.9984 6,22H18C18.5299,21.9984 19.0377,21.7873 19.4125,21.4126C19.7872,21.0379 19.9984,20.5299 20,20V10C19.9984,9.47 19.7872,8.9621 19.4125,8.5874C19.0377,8.2127 18.5299,8.0016 18,8ZM12,17C11.6044,17 11.2178,16.8828 10.8889,16.6631C10.56,16.4433 10.3036,16.1306 10.1522,15.7651C10.0009,15.3997 9.9613,14.9978 10.0384,14.6099C10.1156,14.2219 10.3061,13.8656 10.5858,13.5859C10.8655,13.3062 11.2219,13.1157 11.6098,13.0386C11.9978,12.9614 12.3999,13.001 12.7654,13.1523C13.1308,13.3037 13.4432,13.5598 13.6629,13.8887C13.8827,14.2176 14,14.6044 14,15C13.9984,15.5299 13.7872,16.0379 13.4125,16.4126C13.0377,16.7873 12.5299,16.9984 12,17ZM15,8H9V6C9,5.2043 9.3161,4.4415 9.8787,3.8789C10.4413,3.3163 11.2044,3 12,3C12.7956,3 13.5587,3.3163 14.1213,3.8789C14.6839,4.4415 15,5.2043 15,6V8Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_microwave_off.xml b/packages/SystemUI/res/drawable/ic_device_microwave_off.xml
new file mode 100644
index 0000000..771afbb
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_microwave_off.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,4H4C3.4696,4 2.9609,4.2107 2.5858,4.5858C2.2107,4.9609 2,5.4696 2,6V18C2,18.5304 2.2107,19.0391 2.5858,19.4142C2.9609,19.7893 3.4696,20 4,20H20C20.5304,20 21.0391,19.7893 21.4142,19.4142C21.7893,19.0391 22,18.5304 22,18V6C22,5.4696 21.7893,4.9609 21.4142,4.5858C21.0391,4.2107 20.5304,4 20,4ZM20,18H4V6H20V18Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M18,9C18.5523,9 19,8.5523 19,8C19,7.4477 18.5523,7 18,7C17.4477,7 17,7.4477 17,8C17,8.5523 17.4477,9 18,9Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M18,13C18.5523,13 19,12.5523 19,12C19,11.4477 18.5523,11 18,11C17.4477,11 17,11.4477 17,12C17,12.5523 17.4477,13 18,13Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M18,17C18.5523,17 19,16.5523 19,16C19,15.4477 18.5523,15 18,15C17.4477,15 17,15.4477 17,16C17,16.5523 17.4477,17 18,17Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M15,7H5V17H15V7ZM13,15H7V9H13V15Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_microwave_on.xml b/packages/SystemUI/res/drawable/ic_device_microwave_on.xml
new file mode 100644
index 0000000..b05f681
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_microwave_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,4H4C3.4696,4 2.9609,4.2107 2.5858,4.5858C2.2107,4.9609 2,5.4696 2,6V18C2,18.5304 2.2107,19.0391 2.5858,19.4142C2.9609,19.7893 3.4696,20 4,20H20C20.5304,20 21.0391,19.7893 21.4142,19.4142C21.7893,19.0391 22,18.5304 22,18V6C22,5.4696 21.7893,4.9609 21.4142,4.5858C21.0391,4.2107 20.5304,4 20,4ZM15,17H5V7H15V17ZM18,17C17.8022,17 17.6089,16.9413 17.4444,16.8314C17.28,16.7215 17.1518,16.5654 17.0761,16.3827C17.0004,16.2 16.9806,15.9989 17.0192,15.8049C17.0578,15.611 17.153,15.4327 17.2929,15.2928C17.4327,15.153 17.6109,15.0578 17.8049,15.0192C17.9989,14.9806 18.2,15.0005 18.3827,15.0762C18.5654,15.1519 18.7216,15.28 18.8315,15.4445C18.9414,15.6089 19,15.8022 19,16C19,16.2652 18.8946,16.5196 18.7071,16.7072C18.5196,16.8947 18.2652,17 18,17ZM18,13C17.8022,13 17.6089,12.9413 17.4444,12.8314C17.28,12.7215 17.1518,12.5654 17.0761,12.3827C17.0004,12.2 16.9806,11.9989 17.0192,11.8049C17.0578,11.611 17.153,11.4327 17.2929,11.2928C17.4327,11.153 17.6109,11.0578 17.8049,11.0192C17.9989,10.9806 18.2,11.0005 18.3827,11.0762C18.5654,11.1519 18.7216,11.28 18.8315,11.4445C18.9414,11.6089 19,11.8022 19,12C19,12.2652 18.8946,12.5196 18.7071,12.7072C18.5196,12.8947 18.2652,13 18,13ZM18,9C17.8022,9 17.6089,8.9413 17.4444,8.8314C17.28,8.7215 17.1518,8.5654 17.0761,8.3827C17.0004,8.2 16.9806,7.9989 17.0192,7.8049C17.0578,7.6109 17.153,7.4327 17.2929,7.2929C17.4327,7.153 17.6109,7.0578 17.8049,7.0192C17.9989,6.9806 18.2,7.0005 18.3827,7.0762C18.5654,7.1519 18.7216,7.28 18.8315,7.4445C18.9414,7.6089 19,7.8022 19,8C19,8.2652 18.8946,8.5196 18.7071,8.7072C18.5196,8.8947 18.2652,9 18,9Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_mop_off.xml b/packages/SystemUI/res/drawable/ic_device_mop_off.xml
new file mode 100644
index 0000000..7fdaaea
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_mop_off.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M22.379,20.515L21,15V13C21,12.4696 20.7893,11.9609 20.4142,11.5858C20.0391,11.2107 19.5304,11 19,11H15V4C15,3.2043 14.6839,2.4413 14.1213,1.8787C13.5587,1.3161 12.7956,1 12,1C11.2043,1 10.4413,1.3161 9.8786,1.8787C9.316,2.4413 9,3.2043 9,4V11H5C4.4695,11 3.9608,11.2107 3.5858,11.5858C3.2107,11.9609 3,12.4696 3,13V15L1.621,20.515C1.5473,20.8099 1.5417,21.1178 1.6048,21.4151C1.6679,21.7125 1.798,21.9916 1.9851,22.2311C2.1722,22.4707 2.4115,22.6645 2.6847,22.7977C2.958,22.9309 3.258,23.0001 3.562,23H20.438C20.742,23.0001 21.042,22.9309 21.3152,22.7977C21.5884,22.6645 21.8277,22.4707 22.0149,22.2311C22.202,21.9916 22.332,21.7125 22.3951,21.4151C22.4582,21.1178 22.4527,20.8099 22.379,20.515ZM11,4C11,3.7348 11.1053,3.4804 11.2929,3.2929C11.4804,3.1054 11.7348,3 12,3C12.2652,3 12.5195,3.1054 12.7071,3.2929C12.8946,3.4804 13,3.7348 13,4V11H11V4ZM5,13H19V15H5V13ZM18,21V19C18,18.7348 17.8946,18.4804 17.7071,18.2929C17.5195,18.1054 17.2652,18 17,18C16.7348,18 16.4804,18.1054 16.2929,18.2929C16.1053,18.4804 16,18.7348 16,19V21H13V19C13,18.7348 12.8946,18.4804 12.7071,18.2929C12.5195,18.1054 12.2652,18 12,18C11.7348,18 11.4804,18.1054 11.2929,18.2929C11.1053,18.4804 11,18.7348 11,19V21H8V19C8,18.7348 7.8946,18.4804 7.7071,18.2929C7.5195,18.1054 7.2652,18 7,18C6.7348,18 6.4804,18.1054 6.2929,18.2929C6.1053,18.4804 6,18.7348 6,19V21H3.562L4.562,17H19.438L20.438,21H18Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_mop_on.xml b/packages/SystemUI/res/drawable/ic_device_mop_on.xml
new file mode 100644
index 0000000..8350ca1
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_mop_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M22.379,20.515L21,15V13C21,12.4696 20.7893,11.9609 20.4142,11.5858C20.0391,11.2107 19.5304,11 19,11H15V4C15,3.2043 14.6839,2.4413 14.1213,1.8787C13.5587,1.3161 12.7956,1 12,1C11.2043,1 10.4413,1.3161 9.8787,1.8787C9.316,2.4413 9,3.2043 9,4V11H5C4.4695,11 3.9608,11.2107 3.5858,11.5858C3.2107,11.9609 3,12.4696 3,13V15L1.621,20.515C1.5473,20.8099 1.5417,21.1178 1.6048,21.4151C1.6679,21.7125 1.798,21.9916 1.9851,22.2311C2.1722,22.4707 2.4115,22.6645 2.6847,22.7977C2.958,22.9309 3.258,23.0001 3.562,23H20.438C20.742,23.0001 21.042,22.9309 21.3152,22.7977C21.5885,22.6645 21.8277,22.4707 22.0148,22.2311C22.202,21.9916 22.332,21.7125 22.3951,21.4151C22.4582,21.1178 22.4527,20.8099 22.379,20.515ZM18,21V19C18,18.7348 17.8946,18.4804 17.7071,18.2929C17.5195,18.1054 17.2652,18 17,18C16.7348,18 16.4804,18.1054 16.2929,18.2929C16.1053,18.4804 16,18.7348 16,19V21H13V19C13,18.7348 12.8946,18.4804 12.7071,18.2929C12.5195,18.1054 12.2652,18 12,18C11.7348,18 11.4804,18.1054 11.2929,18.2929C11.1053,18.4804 11,18.7348 11,19V21H8V19C8,18.7348 7.8946,18.4804 7.7071,18.2929C7.5195,18.1054 7.2652,18 7,18C6.7348,18 6.4804,18.1054 6.2929,18.2929C6.1053,18.4804 6,18.7348 6,19V21H3.562L4.562,17H19.438L20.438,21H18Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_multicooker_off.xml b/packages/SystemUI/res/drawable/ic_device_multicooker_off.xml
new file mode 100644
index 0000000..8a79b0d
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_multicooker_off.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M19,5H16V4C16,3.4696 15.7893,2.9609 15.4142,2.5858C15.0391,2.2107 14.5304,2 14,2H10C9.4696,2 8.9609,2.2107 8.5858,2.5858C8.2107,2.9609 8,3.4696 8,4V5H5C4.4696,5 3.9609,5.2107 3.5858,5.5858C3.2107,5.9609 3,6.4696 3,7V19C3,19.5304 3.2107,20.0391 3.5858,20.4142C3.9609,20.7893 4.4696,21 5,21H19C19.5304,21 20.0391,20.7893 20.4142,20.4142C20.7893,20.0391 21,19.5304 21,19V7C21,6.4696 20.7893,5.9609 20.4142,5.5858C20.0391,5.2107 19.5304,5 19,5ZM10,4H14V5H10V4ZM19,19H5V10H7V12C7,12.5304 7.2107,13.0391 7.5858,13.4142C7.9609,13.7893 8.4696,14 9,14H15C15.5304,14 16.0391,13.7893 16.4142,13.4142C16.7893,13.0391 17,12.5304 17,12V10H19V19ZM9,12V10H15V12H9ZM5,8V7H19V8H5Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M16,18C16.5523,18 17,17.5523 17,17C17,16.4477 16.5523,16 16,16C15.4477,16 15,16.4477 15,17C15,17.5523 15.4477,18 16,18Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,18C12.5523,18 13,17.5523 13,17C13,16.4477 12.5523,16 12,16C11.4477,16 11,16.4477 11,17C11,17.5523 11.4477,18 12,18Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M8,18C8.5523,18 9,17.5523 9,17C9,16.4477 8.5523,16 8,16C7.4477,16 7,16.4477 7,17C7,17.5523 7.4477,18 8,18Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_multicooker_on.xml b/packages/SystemUI/res/drawable/ic_device_multicooker_on.xml
new file mode 100644
index 0000000..90ede52
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_multicooker_on.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M17,12C17,12.5304 16.7893,13.0391 16.4142,13.4142C16.0391,13.7893 15.5304,14 15,14H9C8.4696,14 7.9609,13.7893 7.5858,13.4142C7.2107,13.0391 7,12.5304 7,12V10H3V19C3,19.5304 3.2107,20.0391 3.5858,20.4142C3.9609,20.7893 4.4696,21 5,21H19C19.5304,21 20.0391,20.7893 20.4142,20.4142C20.7893,20.0391 21,19.5304 21,19V10H17V12ZM8,18C7.8022,18 7.6089,17.9413 7.4444,17.8314C7.28,17.7215 7.1518,17.5654 7.0761,17.3827C7.0004,17.2 6.9806,16.9989 7.0192,16.8049C7.0578,16.611 7.153,16.4327 7.2929,16.2928C7.4328,16.153 7.6109,16.0578 7.8049,16.0192C7.9989,15.9806 8.2,16.0005 8.3827,16.0762C8.5654,16.1519 8.7216,16.28 8.8315,16.4445C8.9413,16.6089 9,16.8022 9,17C9,17.2652 8.8946,17.5196 8.7071,17.7072C8.5196,17.8947 8.2652,18 8,18ZM12,18C11.8022,18 11.6089,17.9413 11.4444,17.8314C11.28,17.7215 11.1518,17.5654 11.0761,17.3827C11.0004,17.2 10.9806,16.9989 11.0192,16.8049C11.0578,16.611 11.153,16.4327 11.2929,16.2928C11.4327,16.153 11.6109,16.0578 11.8049,16.0192C11.9989,15.9806 12.2,16.0005 12.3827,16.0762C12.5654,16.1519 12.7216,16.28 12.8315,16.4445C12.9414,16.6089 13,16.8022 13,17C13,17.2652 12.8946,17.5196 12.7071,17.7072C12.5196,17.8947 12.2652,18 12,18ZM16,18C15.8022,18 15.6089,17.9413 15.4444,17.8314C15.28,17.7215 15.1518,17.5654 15.0761,17.3827C15.0004,17.2 14.9806,16.9989 15.0192,16.8049C15.0578,16.611 15.153,16.4327 15.2929,16.2928C15.4327,16.153 15.6109,16.0578 15.8049,16.0192C15.9989,15.9806 16.2,16.0005 16.3827,16.0762C16.5654,16.1519 16.7216,16.28 16.8315,16.4445C16.9414,16.6089 17,16.8022 17,17C17,17.2652 16.8946,17.5196 16.7071,17.7072C16.5196,17.8947 16.2652,18 16,18Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M15,10H9V12H15V10Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M21,8V7C21,6.4696 20.7893,5.9609 20.4142,5.5858C20.0391,5.2107 19.5304,5 19,5H16V4C16,3.4696 15.7893,2.9609 15.4142,2.5858C15.0391,2.2107 14.5304,2 14,2H10C9.4696,2 8.9609,2.2107 8.5858,2.5858C8.2107,2.9609 8,3.4696 8,4V5H5C4.4696,5 3.9609,5.2107 3.5858,5.5858C3.2107,5.9609 3,6.4696 3,7V8H21ZM10,4H14V5H10V4Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_outlet_off.xml b/packages/SystemUI/res/drawable/ic_device_outlet_off.xml
new file mode 100644
index 0000000..6fe7d12
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_outlet_off.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M12,2C10.0222,2 8.0888,2.5865 6.4443,3.6853C4.7998,4.7841 3.5181,6.346 2.7612,8.1732C2.0043,10.0005 1.8063,12.0111 2.1922,13.9509C2.578,15.8907 3.5304,17.6725 4.9289,19.071C6.3275,20.4696 8.1093,21.422 10.0491,21.8079C11.9889,22.1937 13.9996,21.9956 15.8268,21.2388C17.6541,20.4819 19.2159,19.2002 20.3147,17.5557C21.4135,15.9112 22,13.9778 22,12C22,9.3478 20.9464,6.8043 19.0711,4.929C17.1957,3.0536 14.6522,2 12,2ZM12,20C10.4178,20 8.871,19.5308 7.5554,18.6517C6.2399,17.7727 5.2145,16.5233 4.609,15.0615C4.0035,13.5997 3.845,11.9912 4.1537,10.4393C4.4624,8.8875 5.2243,7.462 6.3432,6.3431C7.462,5.2243 8.8874,4.4624 10.4393,4.1537C11.9911,3.845 13.5997,4.0035 15.0615,4.609C16.5233,5.2145 17.7727,6.2398 18.6518,7.5554C19.5308,8.871 20,10.4177 20,12C20,14.1217 19.1572,16.1566 17.6569,17.6569C16.1566,19.1572 14.1217,20 12,20Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M9,9H7V13H9V9Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,15C11.7348,15 11.4804,15.1053 11.2929,15.2928C11.1054,15.4804 11,15.7348 11,16V17H13V16C13,15.7348 12.8946,15.4804 12.7071,15.2928C12.5196,15.1053 12.2652,15 12,15Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M17,9H15V13H17V9Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_outlet_on.xml b/packages/SystemUI/res/drawable/ic_device_outlet_on.xml
new file mode 100644
index 0000000..e9d80cf
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_outlet_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M12,2C10.0222,2 8.0888,2.5865 6.4443,3.6853C4.7998,4.7841 3.5181,6.346 2.7612,8.1732C2.0043,10.0005 1.8063,12.0111 2.1922,13.9509C2.578,15.8907 3.5304,17.6725 4.9289,19.071C6.3275,20.4696 8.1093,21.422 10.0491,21.8079C11.9889,22.1937 13.9996,21.9956 15.8268,21.2388C17.6541,20.4819 19.2159,19.2002 20.3147,17.5557C21.4135,15.9112 22,13.9778 22,12C22,9.3478 20.9464,6.8043 19.0711,4.929C17.1957,3.0536 14.6522,2 12,2ZM9,13H7V9H9V13ZM13,17H11V16C11,15.7348 11.1054,15.4804 11.2929,15.2928C11.4804,15.1053 11.7348,15 12,15C12.2652,15 12.5196,15.1053 12.7071,15.2928C12.8946,15.4804 13,15.7348 13,16V17ZM17,13H15V9H17V13Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_pergola_off.xml b/packages/SystemUI/res/drawable/ic_device_pergola_off.xml
new file mode 100644
index 0000000..b7113dc
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_pergola_off.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,2C19.7348,2 19.4804,2.1054 19.2929,2.293C19.1054,2.4805 19,2.7348 19,3V4H5V3C5,2.7348 4.8946,2.4805 4.7071,2.293C4.5196,2.1054 4.2652,2 4,2C3.7348,2 3.4804,2.1054 3.2929,2.293C3.1054,2.4805 3,2.7348 3,3V21H5V10H19V21H21V3C21,2.7348 20.8946,2.4805 20.7071,2.293C20.5196,2.1054 20.2652,2 20,2ZM5,8V6H19V8H5Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M8,18H11V21H13V18H16V16H8V18Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_pergola_on.xml b/packages/SystemUI/res/drawable/ic_device_pergola_on.xml
new file mode 100644
index 0000000..b7113dc
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_pergola_on.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,2C19.7348,2 19.4804,2.1054 19.2929,2.293C19.1054,2.4805 19,2.7348 19,3V4H5V3C5,2.7348 4.8946,2.4805 4.7071,2.293C4.5196,2.1054 4.2652,2 4,2C3.7348,2 3.4804,2.1054 3.2929,2.293C3.1054,2.4805 3,2.7348 3,3V21H5V10H19V21H21V3C21,2.7348 20.8946,2.4805 20.7071,2.293C20.5196,2.1054 20.2652,2 20,2ZM5,8V6H19V8H5Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M8,18H11V21H13V18H16V16H8V18Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_refrigerator_off.xml b/packages/SystemUI/res/drawable/ic_device_refrigerator_off.xml
new file mode 100644
index 0000000..33ad44c
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_refrigerator_off.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M18,2.01L6,2C5.4696,2 4.9609,2.2107 4.5858,2.5858C4.2107,2.9609 4,3.4696 4,4V20C4.0016,20.5299 4.2128,21.0377 4.5875,21.4125C4.9623,21.7872 5.47,21.9984 6,22H18C18.5299,21.9984 19.0377,21.7872 19.4125,21.4125C19.7872,21.0377 19.9984,20.5299 20,20V4C19.9999,3.7379 19.948,3.4784 19.8473,3.2363C19.7466,2.9943 19.5991,2.7745 19.4133,2.5896C19.2275,2.4047 19.007,2.2583 18.7645,2.1588C18.5219,2.0594 18.2621,2.0088 18,2.01ZM18,20H6V10.98H18V20ZM18,9H6V4H18V9ZM8,5H10V8H8V5ZM8,12H10V17H8V12Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_refrigerator_on.xml b/packages/SystemUI/res/drawable/ic_device_refrigerator_on.xml
new file mode 100644
index 0000000..fe7a4b6
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_refrigerator_on.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,9V4C20,3.4696 19.7893,2.9609 19.4142,2.5858C19.0391,2.2107 18.5304,2 18,2H6C5.4696,2 4.9609,2.2107 4.5858,2.5858C4.2107,2.9609 4,3.4696 4,4V9H20ZM8,5H10V8H8V5Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M4,11V20C4,20.5304 4.2107,21.0391 4.5858,21.4142C4.9609,21.7893 5.4696,22 6,22H18C18.5304,22 19.0391,21.7893 19.4142,21.4142C19.7893,21.0391 20,20.5304 20,20V11H4ZM10,17H8V12H10V17Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_remote_control_off.xml b/packages/SystemUI/res/drawable/ic_device_remote_control_off.xml
new file mode 100644
index 0000000..761f6430
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_remote_control_off.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M16,1H8C7.4696,1 6.9609,1.2107 6.5858,1.5858C6.2107,1.9609 6,2.4696 6,3V21C6,21.5304 6.2107,22.0391 6.5858,22.4142C6.9609,22.7893 7.4696,23 8,23H16C16.5304,23 17.0391,22.7893 17.4142,22.4142C17.7893,22.0391 18,21.5304 18,21V3C18,2.4696 17.7893,1.9609 17.4142,1.5858C17.0391,1.2107 16.5304,1 16,1ZM16,21H8V3H16V21Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,10C12.5933,10 13.1734,9.824 13.6667,9.4944C14.1601,9.1648 14.5446,8.6963 14.7716,8.1481C14.9987,7.5999 15.0581,6.9966 14.9424,6.4147C14.8266,5.8327 14.5409,5.2982 14.1213,4.8787C13.7018,4.4591 13.1672,4.1734 12.5853,4.0576C12.0033,3.9419 11.4001,4.0013 10.8519,4.2284C10.3038,4.4555 9.8352,4.8399 9.5056,5.3333C9.1759,5.8266 9,6.4067 9,7C9,7.7957 9.3161,8.5587 9.8787,9.1214C10.4413,9.684 11.2044,10 12,10ZM12,6C12.1978,6 12.3911,6.0587 12.5556,6.1686C12.72,6.2785 12.8482,6.4346 12.9239,6.6173C12.9996,6.8 13.0194,7.0011 12.9808,7.1951C12.9422,7.3891 12.847,7.5673 12.7071,7.7072C12.5673,7.847 12.3891,7.9423 12.1951,7.9809C12.0011,8.0194 11.8,7.9995 11.6173,7.9238C11.4346,7.8481 11.2784,7.72 11.1685,7.5556C11.0587,7.3911 11,7.1978 11,7C11,6.7348 11.1054,6.4804 11.2929,6.2929C11.4804,6.1053 11.7348,6 12,6Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M10,14C10.5523,14 11,13.5523 11,13C11,12.4477 10.5523,12 10,12C9.4477,12 9,12.4477 9,13C9,13.5523 9.4477,14 10,14Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M14,14C14.5523,14 15,13.5523 15,13C15,12.4477 14.5523,12 14,12C13.4477,12 13,12.4477 13,13C13,13.5523 13.4477,14 14,14Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M10,17C10.5523,17 11,16.5523 11,16C11,15.4477 10.5523,15 10,15C9.4477,15 9,15.4477 9,16C9,16.5523 9.4477,17 10,17Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M14,17C14.5523,17 15,16.5523 15,16C15,15.4477 14.5523,15 14,15C13.4477,15 13,15.4477 13,16C13,16.5523 13.4477,17 14,17Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M10,20C10.5523,20 11,19.5523 11,19C11,18.4477 10.5523,18 10,18C9.4477,18 9,18.4477 9,19C9,19.5523 9.4477,20 10,20Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M14,20C14.5523,20 15,19.5523 15,19C15,18.4477 14.5523,18 14,18C13.4477,18 13,18.4477 13,19C13,19.5523 13.4477,20 14,20Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_remote_control_on.xml b/packages/SystemUI/res/drawable/ic_device_remote_control_on.xml
new file mode 100644
index 0000000..b2c55a6
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_remote_control_on.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M12,8C12.5523,8 13,7.5523 13,7C13,6.4477 12.5523,6 12,6C11.4477,6 11,6.4477 11,7C11,7.5523 11.4477,8 12,8Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M16,1H8C7.4696,1 6.9609,1.2107 6.5858,1.5858C6.2107,1.9609 6,2.4696 6,3V21C6,21.5304 6.2107,22.0391 6.5858,22.4142C6.9609,22.7893 7.4696,23 8,23H16C16.5304,23 17.0391,22.7893 17.4142,22.4142C17.7893,22.0391 18,21.5304 18,21V3C18,2.4696 17.7893,1.9609 17.4142,1.5858C17.0391,1.2107 16.5304,1 16,1ZM10,20C9.8022,20 9.6089,19.9413 9.4444,19.8314C9.28,19.7215 9.1518,19.5654 9.0761,19.3827C9.0004,19.2 8.9806,18.9989 9.0192,18.8049C9.0578,18.611 9.153,18.4327 9.2929,18.2928C9.4327,18.153 9.6109,18.0578 9.8049,18.0192C9.9989,17.9806 10.2,18.0005 10.3827,18.0762C10.5654,18.1519 10.7216,18.28 10.8315,18.4445C10.9414,18.6089 11,18.8022 11,19C11,19.2652 10.8946,19.5196 10.7071,19.7072C10.5196,19.8947 10.2652,20 10,20ZM10,17C9.8022,17 9.6089,16.9413 9.4444,16.8314C9.28,16.7215 9.1518,16.5654 9.0761,16.3827C9.0004,16.2 8.9806,15.9989 9.0192,15.8049C9.0578,15.611 9.153,15.4327 9.2929,15.2928C9.4327,15.153 9.6109,15.0578 9.8049,15.0192C9.9989,14.9806 10.2,15.0005 10.3827,15.0762C10.5654,15.1519 10.7216,15.28 10.8315,15.4445C10.9414,15.6089 11,15.8022 11,16C11,16.2652 10.8946,16.5196 10.7071,16.7072C10.5196,16.8947 10.2652,17 10,17ZM10,14C9.8022,14 9.6089,13.9413 9.4444,13.8314C9.28,13.7215 9.1518,13.5654 9.0761,13.3827C9.0004,13.2 8.9806,12.9989 9.0192,12.8049C9.0578,12.611 9.153,12.4327 9.2929,12.2928C9.4327,12.153 9.6109,12.0578 9.8049,12.0192C9.9989,11.9806 10.2,12.0005 10.3827,12.0762C10.5654,12.1519 10.7216,12.28 10.8315,12.4445C10.9414,12.6089 11,12.8022 11,13C11,13.2652 10.8946,13.5196 10.7071,13.7072C10.5196,13.8947 10.2652,14 10,14ZM14,20C13.8022,20 13.6089,19.9413 13.4444,19.8314C13.28,19.7215 13.1518,19.5654 13.0761,19.3827C13.0004,19.2 12.9806,18.9989 13.0192,18.8049C13.0578,18.611 13.153,18.4327 13.2929,18.2928C13.4327,18.153 13.6109,18.0578 13.8049,18.0192C13.9989,17.9806 14.2,18.0005 14.3827,18.0762C14.5654,18.1519 14.7216,18.28 14.8315,18.4445C14.9414,18.6089 15,18.8022 15,19C15,19.2652 14.8946,19.5196 14.7071,19.7072C14.5196,19.8947 14.2652,20 14,20ZM14,17C13.8022,17 13.6089,16.9413 13.4444,16.8314C13.28,16.7215 13.1518,16.5654 13.0761,16.3827C13.0004,16.2 12.9806,15.9989 13.0192,15.8049C13.0578,15.611 13.153,15.4327 13.2929,15.2928C13.4327,15.153 13.6109,15.0578 13.8049,15.0192C13.9989,14.9806 14.2,15.0005 14.3827,15.0762C14.5654,15.1519 14.7216,15.28 14.8315,15.4445C14.9414,15.6089 15,15.8022 15,16C15,16.2652 14.8946,16.5196 14.7071,16.7072C14.5196,16.8947 14.2652,17 14,17ZM14,14C13.8022,14 13.6089,13.9413 13.4444,13.8314C13.28,13.7215 13.1518,13.5654 13.0761,13.3827C13.0004,13.2 12.9806,12.9989 13.0192,12.8049C13.0578,12.611 13.153,12.4327 13.2929,12.2928C13.4327,12.153 13.6109,12.0578 13.8049,12.0192C13.9989,11.9806 14.2,12.0005 14.3827,12.0762C14.5654,12.1519 14.7216,12.28 14.8315,12.4445C14.9414,12.6089 15,12.8022 15,13C15,13.2652 14.8946,13.5196 14.7071,13.7072C14.5196,13.8947 14.2652,14 14,14ZM12,10C11.4067,10 10.8266,9.824 10.3333,9.4944C9.8399,9.1647 9.4554,8.6962 9.2284,8.1481C9.0013,7.5999 8.9419,6.9966 9.0576,6.4147C9.1734,5.8327 9.4591,5.2982 9.8787,4.8787C10.2982,4.4591 10.8328,4.1734 11.4147,4.0576C11.9967,3.9419 12.5999,4.0013 13.1481,4.2284C13.6962,4.4555 14.1648,4.8399 14.4944,5.3333C14.8241,5.8266 15,6.4067 15,7C15,7.7957 14.6839,8.5587 14.1213,9.1213C13.5587,9.684 12.7956,10 12,10Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_security_system_off.xml b/packages/SystemUI/res/drawable/ic_device_security_system_off.xml
new file mode 100644
index 0000000..7a987b2
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_security_system_off.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M12,2L4,5V11.0911C4,16.1361 7.413,20.854 12,22C16.587,20.854 20,16.1361 20,11.0911V5L12,2ZM18,11.0911C18.0051,12.9956 17.4351,14.8572 16.3645,16.4324C15.294,18.0075 13.7727,19.2227 12,19.9189C10.2273,19.2227 8.706,18.0075 7.6355,16.4324C6.5649,14.8572 5.9949,12.9956 6,11.0911V6.386L12,4.136L18,6.386V11.0911Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M8.464,10.939L7.05,12.353L10.586,15.8879L16.949,9.5249L15.535,8.1111L10.586,13.0601L8.464,10.939Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_security_system_on.xml b/packages/SystemUI/res/drawable/ic_device_security_system_on.xml
new file mode 100644
index 0000000..f231068
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_security_system_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M12,2L4,5V11.0911C4,16.1361 7.413,20.854 12,22C16.587,20.854 20,16.1361 20,11.0911V5L12,2ZM10.586,15.8889L7.05,12.354L8.464,10.9399L10.586,13.061L15.536,8.1111L16.95,9.5249L10.586,15.8889Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_set_top_off.xml b/packages/SystemUI/res/drawable/ic_device_set_top_off.xml
new file mode 100644
index 0000000..7c9d9ce
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_set_top_off.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M2,7V17H22V7H2ZM20,15H4V9H20V15Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M11,11H5V13H11V11Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M14,13C14.5523,13 15,12.5523 15,12C15,11.4477 14.5523,11 14,11C13.4477,11 13,11.4477 13,12C13,12.5523 13.4477,13 14,13Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M17,13C17.5523,13 18,12.5523 18,12C18,11.4477 17.5523,11 17,11C16.4477,11 16,11.4477 16,12C16,12.5523 16.4477,13 17,13Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_set_top_on.xml b/packages/SystemUI/res/drawable/ic_device_set_top_on.xml
new file mode 100644
index 0000000..c872794
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_set_top_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M2,7V17H22V7H2ZM11,13H5V11H11V13ZM14,13C13.8022,13 13.6089,12.9414 13.4444,12.8315C13.28,12.7217 13.1518,12.5653 13.0761,12.3826C13.0004,12.1998 12.9806,11.9989 13.0192,11.8049C13.0578,11.611 13.153,11.4328 13.2929,11.293C13.4327,11.1531 13.6109,11.0579 13.8049,11.0193C13.9989,10.9807 14.2,11.0005 14.3827,11.0762C14.5654,11.1519 14.7216,11.2799 14.8315,11.4443C14.9414,11.6088 15,11.8022 15,12C15,12.2652 14.8946,12.5195 14.7071,12.707C14.5196,12.8946 14.2652,13 14,13ZM17,13C16.8022,13 16.6089,12.9414 16.4444,12.8315C16.28,12.7217 16.1518,12.5653 16.0761,12.3826C16.0004,12.1998 15.9806,11.9989 16.0192,11.8049C16.0578,11.611 16.153,11.4328 16.2929,11.293C16.4327,11.1531 16.6109,11.0579 16.8049,11.0193C16.9989,10.9807 17.2,11.0005 17.3827,11.0762C17.5654,11.1519 17.7216,11.2799 17.8315,11.4443C17.9414,11.6088 18,11.8022 18,12C18,12.2652 17.8946,12.5195 17.7071,12.707C17.5196,12.8946 17.2652,13 17,13Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_sprinkler_off.xml b/packages/SystemUI/res/drawable/ic_device_sprinkler_off.xml
new file mode 100644
index 0000000..fb6e34e
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_sprinkler_off.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M7.5,18H11V21H13V18H16.5V16H7.5V18Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,13C12.5523,13 13,12.5523 13,12C13,11.4477 12.5523,11 12,11C11.4477,11 11,11.4477 11,12C11,12.5523 11.4477,13 12,13Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,9C12.5523,9 13,8.5523 13,8C13,7.4477 12.5523,7 12,7C11.4477,7 11,7.4477 11,8C11,8.5523 11.4477,9 12,9Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,5C12.5523,5 13,4.5523 13,4C13,3.4477 12.5523,3 12,3C11.4477,3 11,3.4477 11,4C11,4.5523 11.4477,5 12,5Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M15.707,14.707C15.8469,14.5672 15.9421,14.3891 15.9808,14.1951C16.0194,14.0011 15.9996,13.7999 15.9239,13.6172C15.8482,13.4344 15.7201,13.2784 15.5556,13.1685C15.3911,13.0586 15.1978,12.9998 15,12.9998C14.8022,12.9998 14.6088,13.0586 14.4444,13.1685C14.2799,13.2784 14.1518,13.4344 14.0761,13.6172C14.0004,13.7999 13.9806,14.0011 14.0192,14.1951C14.0578,14.3891 14.1531,14.5672 14.293,14.707C14.4805,14.8945 14.7348,14.9998 15,14.9998C15.2652,14.9998 15.5195,14.8945 15.707,14.707Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M17.121,10.4641C16.9812,10.604 16.8861,10.7821 16.8476,10.9761C16.8091,11.17 16.829,11.371 16.9047,11.5537C16.9804,11.7364 17.1086,11.8924 17.273,12.0022C17.4375,12.112 17.6308,12.1707 17.8285,12.1707C18.0262,12.1707 18.2195,12.112 18.3839,12.0022C18.5484,11.8924 18.6765,11.7364 18.7523,11.5537C18.828,11.371 18.8479,11.17 18.8094,10.9761C18.7709,10.7821 18.6757,10.604 18.536,10.4641C18.4431,10.3711 18.3328,10.2972 18.2114,10.2468C18.09,10.1965 17.9599,10.1707 17.8285,10.1707C17.6971,10.1707 17.5669,10.1965 17.4455,10.2468C17.3241,10.2972 17.2139,10.3711 17.121,10.4641Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M21.364,7.6359C21.2242,7.496 21.046,7.4009 20.852,7.3622C20.658,7.3236 20.4569,7.3435 20.2742,7.4191C20.0914,7.4948 19.9352,7.6228 19.8253,7.7873C19.7155,7.9517 19.6568,8.1452 19.6568,8.343C19.6568,8.5407 19.7155,8.7342 19.8253,8.8986C19.9352,9.0631 20.0914,9.1911 20.2742,9.2668C20.4569,9.3425 20.658,9.3623 20.852,9.3237C21.046,9.2851 21.2242,9.1899 21.364,9.05C21.5515,8.8625 21.6568,8.6081 21.6568,8.343C21.6568,8.0778 21.5515,7.8235 21.364,7.6359Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M9.707,14.707C9.8469,14.5672 9.9421,14.3891 9.9808,14.1951C10.0194,14.0011 9.9996,13.7999 9.9239,13.6172C9.8482,13.4344 9.72,13.2784 9.5556,13.1685C9.3911,13.0586 9.1978,12.9998 9,12.9998C8.8022,12.9998 8.6088,13.0586 8.4444,13.1685C8.2799,13.2784 8.1518,13.4344 8.0761,13.6172C8.0004,13.7999 7.9806,14.0011 8.0192,14.1951C8.0578,14.3891 8.1531,14.5672 8.293,14.707C8.4805,14.8945 8.7348,14.9998 9,14.9998C9.2652,14.9998 9.5195,14.8945 9.707,14.707Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M5.464,10.4641C5.3243,10.604 5.2291,10.7821 5.1906,10.9761C5.1522,11.17 5.172,11.371 5.2477,11.5537C5.3235,11.7364 5.4516,11.8924 5.616,12.0022C5.7805,12.112 5.9738,12.1707 6.1715,12.1707C6.3692,12.1707 6.5625,12.112 6.727,12.0022C6.8914,11.8924 7.0196,11.7364 7.0953,11.5537C7.171,11.371 7.1909,11.17 7.1524,10.9761C7.1139,10.7821 7.0188,10.604 6.879,10.4641C6.7861,10.3711 6.6758,10.2972 6.5545,10.2468C6.4331,10.1965 6.3029,10.1707 6.1715,10.1707C6.0401,10.1707 5.91,10.1965 5.7886,10.2468C5.6672,10.2972 5.5569,10.3711 5.464,10.4641Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M2.636,7.636C2.4961,7.7758 2.4009,7.954 2.3623,8.148C2.3236,8.3419 2.3434,8.5431 2.4191,8.7258C2.4948,8.9086 2.623,9.0647 2.7874,9.1746C2.9519,9.2845 3.1452,9.3433 3.343,9.3433C3.5408,9.3433 3.7342,9.2845 3.8986,9.1746C4.0631,9.0647 4.1912,8.9086 4.2669,8.7258C4.3426,8.5431 4.3624,8.3419 4.3238,8.148C4.2852,7.954 4.1899,7.7758 4.05,7.636C3.8625,7.4485 3.6082,7.3433 3.343,7.3433C3.0779,7.3433 2.8235,7.4485 2.636,7.636Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_sprinkler_on.xml b/packages/SystemUI/res/drawable/ic_device_sprinkler_on.xml
new file mode 100644
index 0000000..a5bdf1c
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_sprinkler_on.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20.657,9.343C21.2093,9.343 21.657,8.8953 21.657,8.343C21.657,7.7907 21.2093,7.343 20.657,7.343C20.1047,7.343 19.657,7.7907 19.657,8.343C19.657,8.8953 20.1047,9.343 20.657,9.343Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M7.5,18H11V21H13V18H16.5V16H7.5V18Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,13C12.5523,13 13,12.5523 13,12C13,11.4477 12.5523,11 12,11C11.4477,11 11,11.4477 11,12C11,12.5523 11.4477,13 12,13Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,9C12.5523,9 13,8.5523 13,8C13,7.4477 12.5523,7 12,7C11.4477,7 11,7.4477 11,8C11,8.5523 11.4477,9 12,9Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,5C12.5523,5 13,4.5523 13,4C13,3.4477 12.5523,3 12,3C11.4477,3 11,3.4477 11,4C11,4.5523 11.4477,5 12,5Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M15.707,14.707C15.8469,14.5672 15.9422,14.3891 15.9808,14.1951C16.0194,14.0011 15.9996,13.7999 15.9239,13.6172C15.8483,13.4344 15.7201,13.2784 15.5556,13.1685C15.3912,13.0586 15.1978,12.9998 15,12.9998C14.8022,12.9998 14.6089,13.0586 14.4444,13.1685C14.28,13.2784 14.1518,13.4344 14.0761,13.6172C14.0004,13.7999 13.9807,14.0011 14.0193,14.1951C14.0579,14.3891 14.1531,14.5672 14.293,14.707C14.4806,14.8945 14.7349,14.9998 15,14.9998C15.2652,14.9998 15.5195,14.8945 15.707,14.707Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M18.536,10.4642C18.3961,10.3245 18.2179,10.2293 18.024,10.1908C17.83,10.1523 17.629,10.1722 17.4464,10.2479C17.2637,10.3236 17.1076,10.4516 16.9978,10.616C16.8879,10.7805 16.8293,10.9737 16.8293,11.1715C16.8293,11.3692 16.8879,11.5627 16.9978,11.7271C17.1076,11.8916 17.2637,12.0196 17.4464,12.0953C17.629,12.171 17.83,12.1909 18.024,12.1524C18.2179,12.1139 18.3961,12.0187 18.536,11.879C18.629,11.7861 18.7028,11.6759 18.7531,11.5545C18.8034,11.4331 18.8293,11.3029 18.8293,11.1715C18.8293,11.0401 18.8034,10.9101 18.7531,10.7887C18.7028,10.6673 18.629,10.5571 18.536,10.4642Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M9.707,14.707C9.8469,14.5672 9.9422,14.3891 9.9808,14.1951C10.0194,14.0011 9.9996,13.7999 9.9239,13.6172C9.8483,13.4344 9.7201,13.2784 9.5556,13.1685C9.3912,13.0586 9.1978,12.9998 9,12.9998C8.8022,12.9998 8.6089,13.0586 8.4444,13.1685C8.28,13.2784 8.1518,13.4344 8.0761,13.6172C8.0004,13.7999 7.9807,14.0011 8.0193,14.1951C8.0579,14.3891 8.1531,14.5672 8.293,14.707C8.4806,14.8945 8.7349,14.9998 9,14.9998C9.2652,14.9998 9.5195,14.8945 9.707,14.707Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M5.464,10.4641C5.3243,10.604 5.2291,10.7821 5.1906,10.9761C5.1522,11.17 5.172,11.371 5.2477,11.5537C5.3235,11.7364 5.4516,11.8924 5.616,12.0022C5.7805,12.112 5.9738,12.1707 6.1715,12.1707C6.3692,12.1707 6.5625,12.112 6.727,12.0022C6.8914,11.8924 7.0196,11.7364 7.0953,11.5537C7.171,11.371 7.1909,11.17 7.1524,10.9761C7.1139,10.7821 7.0188,10.604 6.879,10.4641C6.7861,10.3711 6.6758,10.2972 6.5545,10.2468C6.4331,10.1965 6.3029,10.1707 6.1715,10.1707C6.0401,10.1707 5.91,10.1965 5.7886,10.2468C5.6672,10.2972 5.5569,10.3711 5.464,10.4641Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M2.636,7.636C2.4961,7.7758 2.4009,7.954 2.3623,8.148C2.3236,8.3419 2.3434,8.5431 2.4191,8.7258C2.4948,8.9086 2.623,9.0647 2.7874,9.1746C2.9519,9.2845 3.1452,9.3433 3.343,9.3433C3.5408,9.3433 3.7342,9.2845 3.8986,9.1746C4.0631,9.0647 4.1912,8.9086 4.2669,8.7258C4.3426,8.5431 4.3624,8.3419 4.3238,8.148C4.2852,7.954 4.1899,7.7758 4.05,7.636C3.8625,7.4485 3.6082,7.3433 3.343,7.3433C3.0779,7.3433 2.8235,7.4485 2.636,7.636Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_styler_off.xml b/packages/SystemUI/res/drawable/ic_device_styler_off.xml
new file mode 100644
index 0000000..4d5e3f3
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_styler_off.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M19.56,11.361L13,8.4408V6.9999C13,6.7347 12.8946,6.4804 12.7071,6.2929C12.5196,6.1054 12.2652,5.9999 12,5.9999C11.8022,5.9999 11.6089,5.9413 11.4444,5.8315C11.28,5.7216 11.1518,5.5652 11.0761,5.3825C11.0004,5.1998 10.9806,4.9988 11.0192,4.8049C11.0578,4.6109 11.153,4.4327 11.2929,4.2929C11.4327,4.153 11.6109,4.0578 11.8049,4.0192C11.9989,3.9806 12.2,4.0004 12.3827,4.0761C12.5654,4.1518 12.7216,4.2798 12.8315,4.4443C12.9414,4.6087 13,4.8021 13,4.9999H15C15.0015,4.4496 14.8517,3.9095 14.5668,3.4386C14.2819,2.9678 13.8729,2.5843 13.3847,2.3303C12.8965,2.0762 12.3478,1.9613 11.7987,1.9982C11.2496,2.0351 10.7212,2.2224 10.2714,2.5395C9.8216,2.8566 9.4677,3.2915 9.2484,3.7963C9.0291,4.3011 8.9529,4.8563 9.0282,5.4015C9.1034,5.9467 9.3272,6.4608 9.6749,6.8874C10.0227,7.3139 10.4811,7.6365 11,7.82V8.4499L4.44,11.37C4.0115,11.5562 3.6468,11.8636 3.3909,12.2546C3.1351,12.6455 2.9992,13.1028 3,13.57V13.58C2.9995,13.8979 3.0617,14.2129 3.1831,14.5068C3.3046,14.8006 3.4828,15.0676 3.7076,15.2924C3.9325,15.5172 4.1994,15.6954 4.4933,15.8168C4.7871,15.9382 5.1021,16.0004 5.42,15.9999H7V21.9999H17V15.9999H18.58C18.898,16.0004 19.2129,15.9382 19.5067,15.8168C19.8006,15.6954 20.0676,15.5172 20.2924,15.2924C20.5172,15.0676 20.6954,14.8006 20.8169,14.5068C20.9383,14.2129 21.0005,13.8979 21,13.58V13.57C20.9994,13.1019 20.8631,12.644 20.6075,12.2519C20.3519,11.8598 19.988,11.5504 19.56,11.361ZM15,19.9999H9V14.9999H15V19.9999ZM18.58,13.9999H17V12.9999H7V13.9999H5.42C5.3642,13.9993 5.3091,13.9877 5.2577,13.9657C5.2064,13.9438 5.1599,13.9119 5.1209,13.872C5.0819,13.8321 5.0512,13.7846 5.0304,13.7328C5.0097,13.681 4.9993,13.6258 5,13.57C4.999,13.4889 5.0222,13.4094 5.0668,13.3417C5.1114,13.274 5.1752,13.221 5.25,13.1899L12,10.1899L18.75,13.1899C18.8245,13.2243 18.8876,13.2795 18.9319,13.3486C18.9761,13.4176 18.9998,13.4979 19,13.58C18.9995,13.6912 18.9551,13.7977 18.8764,13.8764C18.7978,13.955 18.6912,13.9994 18.58,13.9999Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_styler_on.xml b/packages/SystemUI/res/drawable/ic_device_styler_on.xml
new file mode 100644
index 0000000..58e04e0
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_styler_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M19.56,11.361L13,8.4408V6.9999C13,6.7347 12.8946,6.4804 12.7071,6.2929C12.5196,6.1054 12.2652,5.9999 12,5.9999C11.8022,5.9999 11.6089,5.9413 11.4444,5.8315C11.28,5.7216 11.1518,5.5652 11.0761,5.3825C11.0004,5.1998 10.9806,4.9988 11.0192,4.8049C11.0578,4.6109 11.153,4.4327 11.2929,4.2929C11.4327,4.153 11.6109,4.0578 11.8049,4.0192C11.9989,3.9806 12.2,4.0004 12.3827,4.0761C12.5654,4.1518 12.7216,4.2798 12.8315,4.4443C12.9414,4.6087 13,4.8021 13,4.9999H15C15.0015,4.4496 14.8517,3.9095 14.5668,3.4386C14.2819,2.9678 13.8729,2.5843 13.3847,2.3303C12.8965,2.0762 12.3478,1.9613 11.7987,1.9982C11.2496,2.0351 10.7212,2.2224 10.2714,2.5395C9.8216,2.8566 9.4677,3.2915 9.2484,3.7963C9.0291,4.3011 8.9529,4.8563 9.0282,5.4015C9.1034,5.9467 9.3272,6.4608 9.6749,6.8874C10.0227,7.3139 10.4811,7.6365 11,7.82V8.4499L4.44,11.37C4.0115,11.5562 3.6468,11.8636 3.3909,12.2546C3.1351,12.6455 2.9992,13.1028 3,13.57V13.58C2.9995,13.8979 3.0617,14.2129 3.1831,14.5068C3.3046,14.8006 3.4828,15.0676 3.7076,15.2924C3.9325,15.5172 4.1994,15.6954 4.4933,15.8168C4.7871,15.9382 5.1021,16.0004 5.42,15.9999H7V21.9999H17V15.9999H18.58C18.898,16.0004 19.2129,15.9382 19.5067,15.8168C19.8006,15.6954 20.0676,15.5172 20.2924,15.2924C20.5172,15.0676 20.6954,14.8006 20.8169,14.5068C20.9383,14.2129 21.0005,13.8979 21,13.58V13.57C20.9994,13.1019 20.8631,12.644 20.6075,12.2519C20.3519,11.8598 19.988,11.5504 19.56,11.361ZM18.58,14.0009H17V13.0009H7V14.0009H5.42C5.3642,14.0002 5.3091,13.9887 5.2577,13.9667C5.2064,13.9448 5.1599,13.9129 5.1209,13.873C5.0819,13.833 5.0512,13.7859 5.0304,13.7341C5.0097,13.6822 4.9993,13.6268 5,13.571C4.999,13.4899 5.0222,13.4104 5.0668,13.3427C5.1114,13.275 5.1752,13.222 5.25,13.1908L12,10.1908L18.75,13.1908C18.8245,13.2253 18.8876,13.2804 18.9319,13.3495C18.9761,13.4186 18.9998,13.4989 19,13.581C18.9992,13.692 18.9547,13.7982 18.8761,13.8766C18.7974,13.9551 18.6911,13.9994 18.58,13.9999V14.0009Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_switch_off.xml b/packages/SystemUI/res/drawable/ic_device_switch_off.xml
new file mode 100644
index 0000000..12dcd81
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_switch_off.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M19,3H5C4.4696,3 3.9609,3.2107 3.5858,3.5858C3.2107,3.9609 3,4.4696 3,5V19C3,19.5304 3.2107,20.0391 3.5858,20.4142C3.9609,20.7893 4.4696,21 5,21H19C19.5304,21 20.0391,20.7893 20.4142,20.4142C20.7893,20.0391 21,19.5304 21,19V5C21,4.4696 20.7893,3.9609 20.4142,3.5858C20.0391,3.2107 19.5304,3 19,3ZM19,19H5V5H19V19Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M16,7H8V17H16V7ZM14,15H10V9H14V15Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M13,10H11V12H13V10Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_switch_on.xml b/packages/SystemUI/res/drawable/ic_device_switch_on.xml
new file mode 100644
index 0000000..68678a39
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_switch_on.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M14,9H10V15H14V9ZM13,12H11V10H13V12Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M19,3H5C4.4696,3 3.9609,3.2107 3.5858,3.5858C3.2107,3.9609 3,4.4696 3,5V19C3,19.5304 3.2107,20.0391 3.5858,20.4142C3.9609,20.7893 4.4696,21 5,21H19C19.5304,21 20.0391,20.7893 20.4142,20.4142C20.7893,20.0391 21,19.5304 21,19V5C21,4.4696 20.7893,3.9609 20.4142,3.5858C20.0391,3.2107 19.5304,3 19,3ZM16,17H8V7H16V17Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_thermostat_gm2_24px.xml b/packages/SystemUI/res/drawable/ic_device_thermostat_gm2_24px.xml
deleted file mode 100644
index 45a658f..0000000
--- a/packages/SystemUI/res/drawable/ic_device_thermostat_gm2_24px.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M18,9h-5v2h5m3,-6h-8v2h8m-9,11.97c0.62,-0.83 1,-1.85 1,-2.97 0,-1.63 -0.79,-3.09 -2,-4V6c0,-1.66 -1.34,-3 -3,-3S5,4.34 5,6v6c-1.21,0.91 -2,2.37 -2,4 0,1.12 0.38,2.14 1,2.97V19h0.02c0.91,1.21 2.35,2 3.98,2s3.06,-0.79 3.98,-2H12v-0.03zM6.2,13.6L7,13V6c0,-0.55 0.45,-1 1,-1s1,0.45 1,1v7l0.8,0.6c0.75,0.57 1.2,1.46 1.2,2.4H5c0,-0.94 0.45,-1.84 1.2,-2.4z"/>
-</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_thermostat_off.xml b/packages/SystemUI/res/drawable/ic_device_thermostat_off.xml
new file mode 100644
index 0000000..1ba8741
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_thermostat_off.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M16,18.97C16.6469,18.1148 16.9979,17.0723 17,16C16.9993,15.2239 16.8183,14.4586 16.4712,13.7644C16.1241,13.0702 15.6205,12.4662 15,12V6C15,5.2043 14.6839,4.4413 14.1213,3.8787C13.5587,3.3161 12.7956,3 12,3C11.2044,3 10.4413,3.3161 9.8787,3.8787C9.3161,4.4413 9,5.2043 9,6V12C8.3795,12.4662 7.8759,13.0702 7.5288,13.7644C7.1817,14.4586 7.0007,15.2239 7,16C7.0021,17.0723 7.3531,18.1148 8,18.97V19H8.02C8.4815,19.6206 9.0818,20.1246 9.7729,20.4719C10.4639,20.8192 11.2266,21.0001 12,21.0001C12.7734,21.0001 13.5361,20.8192 14.2271,20.4719C14.9182,20.1246 15.5185,19.6206 15.98,19H16V18.97ZM10.2,13.6L11,13V6C11,5.7348 11.1054,5.4804 11.2929,5.2929C11.4804,5.1054 11.7348,5 12,5C12.2652,5 12.5196,5.1054 12.7071,5.2929C12.8946,5.4804 13,5.7348 13,6V13L13.8,13.6C14.1711,13.8809 14.4723,14.2435 14.6805,14.6598C14.8886,15.076 14.9979,15.5346 15,16H9C9.0009,15.5344 9.1098,15.0754 9.318,14.659C9.5262,14.2426 9.8281,13.8801 10.2,13.6Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_thermostat_on.xml b/packages/SystemUI/res/drawable/ic_device_thermostat_on.xml
new file mode 100644
index 0000000..1ba8741
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_thermostat_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M16,18.97C16.6469,18.1148 16.9979,17.0723 17,16C16.9993,15.2239 16.8183,14.4586 16.4712,13.7644C16.1241,13.0702 15.6205,12.4662 15,12V6C15,5.2043 14.6839,4.4413 14.1213,3.8787C13.5587,3.3161 12.7956,3 12,3C11.2044,3 10.4413,3.3161 9.8787,3.8787C9.3161,4.4413 9,5.2043 9,6V12C8.3795,12.4662 7.8759,13.0702 7.5288,13.7644C7.1817,14.4586 7.0007,15.2239 7,16C7.0021,17.0723 7.3531,18.1148 8,18.97V19H8.02C8.4815,19.6206 9.0818,20.1246 9.7729,20.4719C10.4639,20.8192 11.2266,21.0001 12,21.0001C12.7734,21.0001 13.5361,20.8192 14.2271,20.4719C14.9182,20.1246 15.5185,19.6206 15.98,19H16V18.97ZM10.2,13.6L11,13V6C11,5.7348 11.1054,5.4804 11.2929,5.2929C11.4804,5.1054 11.7348,5 12,5C12.2652,5 12.5196,5.1054 12.7071,5.2929C12.8946,5.4804 13,5.7348 13,6V13L13.8,13.6C14.1711,13.8809 14.4723,14.2435 14.6805,14.6598C14.8886,15.076 14.9979,15.5346 15,16H9C9.0009,15.5344 9.1098,15.0754 9.318,14.659C9.5262,14.2426 9.8281,13.8801 10.2,13.6Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_tv_off.xml b/packages/SystemUI/res/drawable/ic_device_tv_off.xml
new file mode 100644
index 0000000..dd91ed8
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_tv_off.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,4H4C3.4701,4.0016 2.9623,4.2129 2.5875,4.5876C2.2128,4.9624 2.0016,5.47 2,6V17C2.0016,17.5299 2.2128,18.0376 2.5875,18.4124C2.9623,18.7871 3.4701,18.9984 4,19V21H5L5.667,19H18.333L19,21H20V19C20.5299,18.9984 21.0377,18.7871 21.4125,18.4124C21.7872,18.0376 21.9984,17.5299 22,17V6C21.9984,5.47 21.7872,4.9624 21.4125,4.5876C21.0377,4.2129 20.5299,4.0016 20,4ZM20,17H4V6H20V17Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_tv_on.xml b/packages/SystemUI/res/drawable/ic_device_tv_on.xml
new file mode 100644
index 0000000..dd91ed8
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_tv_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,4H4C3.4701,4.0016 2.9623,4.2129 2.5875,4.5876C2.2128,4.9624 2.0016,5.47 2,6V17C2.0016,17.5299 2.2128,18.0376 2.5875,18.4124C2.9623,18.7871 3.4701,18.9984 4,19V21H5L5.667,19H18.333L19,21H20V19C20.5299,18.9984 21.0377,18.7871 21.4125,18.4124C21.7872,18.0376 21.9984,17.5299 22,17V6C21.9984,5.47 21.7872,4.9624 21.4125,4.5876C21.0377,4.2129 20.5299,4.0016 20,4ZM20,17H4V6H20V17Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_vacuum_off.xml b/packages/SystemUI/res/drawable/ic_device_vacuum_off.xml
new file mode 100644
index 0000000..e0fadc8
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_vacuum_off.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M4,16.0001C3.4067,16.0001 2.8266,16.176 2.3333,16.5057C1.8399,16.8353 1.4554,17.3039 1.2284,17.8521C1.0013,18.4002 0.9419,19.0034 1.0576,19.5854C1.1734,20.1673 1.4591,20.7019 1.8787,21.1214C2.2982,21.541 2.8328,21.8267 3.4147,21.9425C3.9967,22.0582 4.5999,21.9988 5.148,21.7717C5.6962,21.5447 6.1648,21.1602 6.4944,20.6668C6.824,20.1735 7,19.5934 7,19.0001C7,18.2045 6.6839,17.4414 6.1213,16.8788C5.5587,16.3162 4.7957,16.0001 4,16.0001ZM4,20.0001C3.8022,20.0001 3.6089,19.9415 3.4444,19.8316C3.28,19.7217 3.1518,19.5655 3.0761,19.3828C3.0004,19.2001 2.9806,18.999 3.0192,18.805C3.0578,18.611 3.153,18.4329 3.2929,18.293C3.4327,18.1532 3.6109,18.0579 3.8049,18.0193C3.9989,17.9807 4.2,18.0005 4.3827,18.0762C4.5654,18.1519 4.7216,18.2801 4.8315,18.4445C4.9413,18.609 5,18.8023 5,19.0001C5,19.2653 4.8946,19.5197 4.7071,19.7072C4.5196,19.8947 4.2652,20.0001 4,20.0001ZM23,20.0001V22.0001H16V20.0001H18.49L12.01,4.5901C11.7747,4.0366 11.3553,3.5814 10.823,3.3016C10.2906,3.0217 9.6779,2.9344 9.0885,3.0544C8.4991,3.1744 7.9693,3.4943 7.5888,3.96C7.2082,4.4257 7.0002,5.0086 7,5.6101V9.0001H9C10.0609,9.0001 11.0783,9.4215 11.8284,10.1717C12.5786,10.9218 13,11.9392 13,13.0001V22.0001H7.99C8.4398,21.4103 8.7508,20.7267 8.9,20.0001H11V13.0001C10.9984,12.4702 10.7872,11.9624 10.4125,11.5876C10.0377,11.2129 9.5299,11.0017 9,11.0001H4V14.0001C3.3113,13.9992 2.6301,14.1422 2,14.4201V9.0001H5V5.6101C5.0002,4.5458 5.3685,3.5144 6.0426,2.6908C6.7165,1.8672 7.6547,1.3021 8.6979,1.0913C9.741,0.8806 10.825,1.0372 11.7659,1.5345C12.7068,2.0319 13.4466,2.8394 13.86,3.8201L20.66,20.0001H23Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_vacuum_on.xml b/packages/SystemUI/res/drawable/ic_device_vacuum_on.xml
new file mode 100644
index 0000000..d3b0a7d
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_vacuum_on.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M4,16.0001C3.4067,16.0001 2.8266,16.176 2.3333,16.5057C1.8399,16.8353 1.4554,17.3039 1.2284,17.8521C1.0013,18.4002 0.9419,19.0034 1.0576,19.5854C1.1734,20.1673 1.4591,20.7018 1.8787,21.1214C2.2982,21.541 2.8328,21.8267 3.4147,21.9424C3.9967,22.0582 4.5999,21.9988 5.148,21.7717C5.6962,21.5447 6.1648,21.1602 6.4944,20.6668C6.824,20.1735 7,19.5934 7,19.0001C7,18.2044 6.6839,17.4414 6.1213,16.8788C5.5587,16.3162 4.7957,16.0001 4,16.0001ZM4,20.0001C3.8022,20.0001 3.6089,19.9415 3.4444,19.8316C3.28,19.7217 3.1518,19.5655 3.0761,19.3828C3.0004,19.2001 2.9806,18.999 3.0192,18.805C3.0578,18.611 3.153,18.4329 3.2929,18.293C3.4327,18.1531 3.6109,18.0579 3.8049,18.0193C3.9989,17.9807 4.2,18.0005 4.3827,18.0762C4.5654,18.1519 4.7216,18.2801 4.8315,18.4445C4.9413,18.609 5,18.8023 5,19.0001C5,19.2653 4.8946,19.5196 4.7071,19.7072C4.5196,19.8947 4.2652,20.0001 4,20.0001Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M20.66,20.0001L13.86,3.8201C13.4466,2.8394 12.7068,2.0319 11.7659,1.5345C10.825,1.0372 9.7411,0.8806 8.6979,1.0913C7.6547,1.3021 6.7165,1.8672 6.0426,2.6908C5.3685,3.5144 5.0002,4.5458 5,5.6101V9.0001H2V14.4261C2.76,14.0908 3.5918,13.9506 4.4197,14.0184C5.2476,14.0861 6.0455,14.3596 6.7409,14.814C7.4363,15.2684 8.0072,15.8893 8.4017,16.6203C8.7962,17.3514 9.0019,18.1694 9,19.0001C8.9968,20.0853 8.637,21.1394 7.976,22.0001H13V13.0001C13,11.9392 12.5786,10.9218 11.8284,10.1717C11.0783,9.4215 10.0609,9.0001 9,9.0001H7V5.6101C7.0002,5.0086 7.2082,4.4257 7.5888,3.96C7.9693,3.4943 8.4991,3.1744 9.0885,3.0544C9.6779,2.9344 10.2906,3.0217 10.823,3.3016C11.3553,3.5814 11.7747,4.0366 12.01,4.5901L18.49,20.0001H16V22.0001H23V20.0001H20.66Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_valve_off.xml b/packages/SystemUI/res/drawable/ic_device_valve_off.xml
new file mode 100644
index 0000000..5bfb46f
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_valve_off.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M11,8H13V5H17V3H7V5H11V8Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M18,13V14H15V11H16V9H8V11H9V14H6V13H4V21H6V20H18V21H20V13H18ZM6,18V16H11V11H13V16H18V18H6Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_valve_on.xml b/packages/SystemUI/res/drawable/ic_device_valve_on.xml
new file mode 100644
index 0000000..66b8829
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_valve_on.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M11,8H13V5H17V3H7V5H11V8Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M18,13V14H15V11H16V9H8V11H9V14H6V13H4V21H6V20H18V21H20V13H18Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_washer_off.xml b/packages/SystemUI/res/drawable/ic_device_washer_off.xml
new file mode 100644
index 0000000..f759bcc
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_washer_off.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M18,2.01L6,2C5.7371,1.9991 5.4766,2.0502 5.2336,2.1504C4.9905,2.2506 4.7696,2.3979 4.5837,2.5838C4.3978,2.7696 4.2505,2.9906 4.1504,3.2336C4.0502,3.4767 3.9991,3.7371 4,4V20C3.9991,20.2629 4.0502,20.5233 4.1504,20.7664C4.2505,21.0094 4.3978,21.2304 4.5837,21.4163C4.7696,21.6022 4.9905,21.7494 5.2336,21.8496C5.4766,21.9498 5.7371,22.0009 6,22H18C18.2629,22.0009 18.5234,21.9498 18.7665,21.8496C19.0095,21.7494 19.2304,21.6022 19.4163,21.4163C19.6022,21.2304 19.7495,21.0094 19.8497,20.7664C19.9498,20.5233 20.0009,20.2629 20,20V4C20.0007,3.7376 19.9493,3.4778 19.8489,3.2354C19.7485,2.993 19.6011,2.773 19.4151,2.5879C19.2291,2.4028 19.0083,2.2564 18.7654,2.1572C18.5225,2.0581 18.2624,2.008 18,2.01ZM18,20H6L5.993,4H18V20Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M11,7C11.5523,7 12,6.5523 12,6C12,5.4477 11.5523,5 11,5C10.4477,5 10,5.4477 10,6C10,6.5523 10.4477,7 11,7Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M8,7C8.5523,7 9,6.5523 9,6C9,5.4477 8.5523,5 8,5C7.4477,5 7,5.4477 7,6C7,6.5523 7.4477,7 8,7Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M12,18.9999C12.9889,18.9999 13.9556,18.7065 14.7778,18.1571C15.6001,17.6077 16.241,16.8269 16.6194,15.9132C16.9978,14.9996 17.0969,13.9945 16.9039,13.0246C16.711,12.0547 16.2348,11.1635 15.5355,10.4643C14.8363,9.765 13.9454,9.289 12.9754,9.0961C12.0055,8.9032 11.0002,9.0021 10.0866,9.3805C9.1729,9.759 8.3921,10.3998 7.8426,11.2221C7.2932,12.0443 7,13.011 7,13.9999C7,15.326 7.5268,16.5979 8.4645,17.5356C9.4021,18.4732 10.6739,18.9999 12,18.9999ZM14.36,11.6398C14.9689,12.2692 15.3061,13.1127 15.2989,13.9884C15.2916,14.8641 14.9405,15.702 14.3213,16.3212C13.7021,16.9404 12.8643,17.2915 11.9886,17.2987C11.1129,17.306 10.2694,16.9689 9.64,16.36L14.36,11.6398Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_washer_on.xml b/packages/SystemUI/res/drawable/ic_device_washer_on.xml
new file mode 100644
index 0000000..b624fb6
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_washer_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M9.64,16.3601C10.2694,16.969 11.1129,17.3061 11.9886,17.2988C12.8643,17.2916 13.7021,16.9405 14.3213,16.3213C14.9406,15.7021 15.2916,14.8642 15.2989,13.9885C15.3061,13.1128 14.9689,12.2693 14.36,11.6399L9.64,16.3601ZM18,2.01L6,2C5.7371,1.9991 5.4766,2.0502 5.2336,2.1504C4.9905,2.2506 4.7696,2.3979 4.5837,2.5838C4.3978,2.7696 4.2505,2.9906 4.1504,3.2336C4.0502,3.4767 3.9991,3.7371 4,4V20C3.9991,20.2629 4.0502,20.5233 4.1504,20.7664C4.2505,21.0094 4.3978,21.2304 4.5837,21.4163C4.7696,21.6022 4.9905,21.7494 5.2336,21.8496C5.4766,21.9498 5.7371,22.0009 6,22H18C18.2629,22.0009 18.5234,21.9498 18.7665,21.8496C19.0095,21.7494 19.2304,21.6022 19.4163,21.4163C19.6022,21.2304 19.7495,21.0094 19.8497,20.7664C19.9498,20.5233 20.0009,20.2629 20,20V4C20.0007,3.7376 19.9493,3.4778 19.8489,3.2354C19.7485,2.993 19.6011,2.773 19.4151,2.5879C19.2291,2.4028 19.0083,2.2564 18.7654,2.1572C18.5225,2.0581 18.2624,2.008 18,2.01ZM11,5C11.1978,5 11.3911,5.0586 11.5556,5.1685C11.72,5.2783 11.8482,5.4347 11.9239,5.6174C11.9996,5.8002 12.0194,6.0011 11.9808,6.1951C11.9422,6.3891 11.847,6.5672 11.7071,6.707C11.5673,6.8469 11.3891,6.9421 11.1951,6.9807C11.0011,7.0193 10.8001,6.9995 10.6173,6.9238C10.4346,6.8481 10.2784,6.7201 10.1685,6.5557C10.0587,6.3912 10,6.1978 10,6C10,5.7348 10.1054,5.4805 10.2929,5.293C10.4804,5.1054 10.7348,5 11,5ZM8,5C8.1978,5 8.3911,5.0586 8.5556,5.1685C8.72,5.2783 8.8482,5.4347 8.9239,5.6174C8.9996,5.8002 9.0194,6.0011 8.9808,6.1951C8.9422,6.3891 8.847,6.5672 8.7071,6.707C8.5673,6.8469 8.3891,6.9421 8.1951,6.9807C8.0011,7.0193 7.8001,6.9995 7.6173,6.9238C7.4346,6.8481 7.2784,6.7201 7.1685,6.5557C7.0587,6.3912 7,6.1978 7,6C7,5.7348 7.1054,5.4805 7.2929,5.293C7.4804,5.1054 7.7348,5 8,5ZM12,19C11.0111,19 10.0444,18.7066 9.2222,18.1572C8.3999,17.6078 7.759,16.827 7.3806,15.9133C7.0022,14.9997 6.9032,13.9946 7.0961,13.0247C7.289,12.0548 7.7652,11.1636 8.4645,10.4644C9.1637,9.7651 10.0547,9.2891 11.0246,9.0962C11.9945,8.9033 12.9998,9.0022 13.9134,9.3806C14.8271,9.7591 15.608,10.3999 16.1574,11.2222C16.7068,12.0444 17,13.0111 17,14C17,15.3261 16.4732,16.598 15.5355,17.5357C14.5979,18.4733 13.3261,19 12,19Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_water_heater_off.xml b/packages/SystemUI/res/drawable/ic_device_water_heater_off.xml
new file mode 100644
index 0000000..1791958
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_water_heater_off.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M16,2H8C6.9391,2 5.9217,2.4212 5.1716,3.1714C4.4214,3.9215 4,4.9391 4,6V20C4,20.5304 4.2107,21.039 4.5858,21.4141C4.9609,21.7891 5.4696,22 6,22H18C18.5304,22 19.0391,21.7891 19.4142,21.4141C19.7893,21.039 20,20.5304 20,20V6C20,4.9391 19.5786,3.9215 18.8284,3.1714C18.0783,2.4212 17.0609,2 16,2ZM18,20H6V18C7.05,18 7.18,19 9,19C10.82,19 10.952,18 12,18C13.048,18 13.189,19 15,19C16.811,19 16.953,18 18,18V20ZM18,16C16.18,16 16.046,17 15,17C13.954,17 13.81,16 12,16C10.19,16 10.047,17 9,17C7.953,17 7.821,16 6,16V6C6,5.4696 6.2107,4.961 6.5858,4.5859C6.9609,4.2109 7.4696,4 8,4H16C16.5304,4 17.0391,4.2109 17.4142,4.5859C17.7893,4.961 18,5.4696 18,6V16Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M13.553,8.0161C13.1979,7.6625 12.9486,7.2166 12.8333,6.729C12.7179,6.2413 12.741,5.7311 12.9,5.2558C12.9134,5.2214 12.9162,5.1839 12.9082,5.1479C12.9003,5.1119 12.8818,5.0792 12.8552,5.0537C12.8286,5.0281 12.795,5.0109 12.7586,5.0044C12.7223,4.9979 12.6849,5.0023 12.6511,5.0171C8.8941,6.6581 10.4031,10.6938 10.4031,10.7568C10.4028,10.8187 10.3848,10.8792 10.3511,10.9311C10.3174,10.9831 10.2695,11.0243 10.2131,11.0498C10.2031,11.0498 9.974,11.1708 9.769,10.8838C9.5395,10.5707 9.3759,10.2145 9.2879,9.8364C9.1999,9.4583 9.1894,9.0663 9.2571,8.6841C9.2647,8.6434 9.2587,8.6012 9.2398,8.5644C9.2209,8.5276 9.1902,8.4984 9.1527,8.4809C9.1152,8.4635 9.0729,8.459 9.0326,8.4682C8.9923,8.4775 8.9562,8.5001 8.93,8.5322C8.503,9.08 8.2253,9.7288 8.1241,10.416C8.023,11.1032 8.1018,11.805 8.3528,12.4526C8.6039,13.1003 9.0187,13.6719 9.5567,14.1113C10.0946,14.5507 10.7373,14.8431 11.4221,14.9599C15.6071,15.4939 17.1871,11.2899 14.7041,8.9599C14.3381,8.6159 13.909,8.3721 13.553,8.0161ZM13.3241,12.8691C13.0354,13.1235 12.6634,13.2626 12.2787,13.2607C11.8939,13.2589 11.5233,13.116 11.2371,12.8589C11.225,12.8488 11.2159,12.836 11.2107,12.8213C11.2054,12.8065 11.2042,12.7903 11.2072,12.7749C11.2101,12.7595 11.2172,12.7452 11.2275,12.7334C11.2379,12.7216 11.2512,12.7129 11.2661,12.708C11.5164,12.6335 11.7426,12.4939 11.9216,12.3037C12.1005,12.1135 12.226,11.8794 12.2851,11.625C12.3198,11.2109 12.2684,10.7941 12.1341,10.4009C12.067,10.0764 12.087,9.74 12.1921,9.4258C12.196,9.4132 12.2035,9.4023 12.2138,9.394C12.2241,9.3858 12.2366,9.3809 12.2497,9.3799C12.2628,9.3788 12.2759,9.3817 12.2874,9.3882C12.2989,9.3946 12.3081,9.4042 12.3141,9.416C12.6801,10.236 13.8361,10.6222 13.8361,11.6162C13.843,11.8492 13.801,12.081 13.7128,12.2969C13.6246,12.5127 13.4922,12.7076 13.3241,12.8691Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_water_heater_on.xml b/packages/SystemUI/res/drawable/ic_device_water_heater_on.xml
new file mode 100644
index 0000000..ee1ca91
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_water_heater_on.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M13.324,12.8694C13.4916,12.7083 13.6238,12.5136 13.7119,12.2986C13.8001,12.0835 13.8424,11.8527 13.836,11.6203C13.836,10.6203 12.68,10.2361 12.314,9.4201C12.3081,9.4084 12.2988,9.3988 12.2874,9.3923C12.2759,9.3859 12.2628,9.3829 12.2496,9.384C12.2365,9.3851 12.224,9.3899 12.2138,9.3982C12.2035,9.4064 12.1959,9.4178 12.192,9.4304C12.087,9.7446 12.067,10.0806 12.134,10.405C12.2683,10.7982 12.3197,11.2151 12.285,11.6291C12.2259,11.8835 12.1005,12.1181 11.9215,12.3083C11.7425,12.4985 11.5164,12.6377 11.266,12.7121C11.2511,12.717 11.2378,12.7257 11.2275,12.7375C11.2171,12.7493 11.2101,12.7636 11.2071,12.779C11.2042,12.7944 11.2054,12.8106 11.2106,12.8254C11.2159,12.8402 11.225,12.8529 11.237,12.863C11.5237,13.1195 11.8947,13.2623 12.2794,13.2634C12.6641,13.2645 13.0358,13.1242 13.324,12.8694Z"
+      android:fillColor="#FF000000" />
+  <path
+      android:pathData="M16,2H8C6.9391,2 5.9217,2.4212 5.1716,3.1714C4.4214,3.9215 4,4.9391 4,6V20C4,20.5304 4.2107,21.039 4.5858,21.4141C4.9609,21.7891 5.4696,22 6,22H18C18.5304,22 19.0391,21.7891 19.4142,21.4141C19.7893,21.039 20,20.5304 20,20V6C20,4.9391 19.5786,3.9215 18.8284,3.1714C18.0783,2.4212 17.0609,2 16,2ZM8.93,8.5278C8.9561,8.4957 8.9922,8.4736 9.0325,8.4644C9.0729,8.4551 9.1151,8.4591 9.1526,8.4766C9.1902,8.494 9.2208,8.5237 9.2397,8.5605C9.2586,8.5974 9.2647,8.6395 9.257,8.6802C9.1893,9.0625 9.1998,9.4544 9.2878,9.8325C9.3758,10.2106 9.5395,10.5668 9.769,10.8799C9.969,11.1669 10.203,11.0499 10.213,11.0459C10.2694,11.0204 10.3173,10.9792 10.351,10.9272C10.3847,10.8753 10.4027,10.8148 10.403,10.7529C10.403,10.6899 8.894,6.6532 12.651,5.0132C12.6848,4.9985 12.7223,4.994 12.7586,5.0005C12.7949,5.007 12.8285,5.0238 12.8551,5.0493C12.8817,5.0749 12.9002,5.108 12.9082,5.144C12.9162,5.1801 12.9133,5.2175 12.9,5.2519C12.741,5.7272 12.7178,6.2374 12.8332,6.7251C12.9486,7.2127 13.1979,7.6586 13.553,8.0122C13.909,8.3682 14.338,8.6121 14.704,8.9541C17.187,11.2821 15.604,15.4861 11.422,14.9541C10.7376,14.8371 10.0952,14.5448 9.5576,14.1055C9.0199,13.6662 8.6053,13.0946 8.3543,12.4473C8.1033,11.7999 8.0244,11.0986 8.1252,10.4116C8.2261,9.7247 8.5034,9.0756 8.93,8.5278ZM18,20H6V16C6.7396,15.9897 7.4619,16.2246 8.054,16.668C8.3188,16.8888 8.6527,17.0098 8.9975,17.0098C9.3423,17.0098 9.6762,16.8888 9.941,16.668C10.5357,16.2281 11.2558,15.9907 11.9955,15.9907C12.7352,15.9907 13.4553,16.2281 14.05,16.668C14.3161,16.889 14.6511,17.0103 14.997,17.0103C15.3429,17.0103 15.6779,16.889 15.944,16.668C16.5368,16.2244 17.2597,15.9896 18,16V20Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_window_off.xml b/packages/SystemUI/res/drawable/ic_device_window_off.xml
new file mode 100644
index 0000000..ea4af98
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_window_off.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,2H4C3.4701,2.0016 2.9623,2.2129 2.5875,2.5877C2.2128,2.9624 2.0016,3.4701 2,4V20C2.0016,20.5299 2.2128,21.0376 2.5875,21.4124C2.9623,21.7871 3.4701,21.9984 4,22H20C20.5299,21.9984 21.0377,21.7871 21.4125,21.4124C21.7872,21.0376 21.9984,20.5299 22,20V4C21.9984,3.4701 21.7872,2.9624 21.4125,2.5877C21.0377,2.2129 20.5299,2.0016 20,2ZM20,11H13V4H20V11ZM11,4V11H4V4H11ZM4,13H11V20H4V13ZM13,20V13H20V20H13Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_device_window_on.xml b/packages/SystemUI/res/drawable/ic_device_window_on.xml
new file mode 100644
index 0000000..ea4af98
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_window_on.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M20,2H4C3.4701,2.0016 2.9623,2.2129 2.5875,2.5877C2.2128,2.9624 2.0016,3.4701 2,4V20C2.0016,20.5299 2.2128,21.0376 2.5875,21.4124C2.9623,21.7871 3.4701,21.9984 4,22H20C20.5299,21.9984 21.0377,21.7871 21.4125,21.4124C21.7872,21.0376 21.9984,20.5299 22,20V4C21.9984,3.4701 21.7872,2.9624 21.4125,2.5877C21.0377,2.2129 20.5299,2.0016 20,2ZM20,11H13V4H20V11ZM11,4V11H4V4H11ZM4,13H11V20H4V13ZM13,20V13H20V20H13Z"
+      android:fillColor="#FF000000" />
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_light_off_gm2_24px.xml b/packages/SystemUI/res/drawable/ic_light_off_gm2_24px.xml
deleted file mode 100644
index 78c3cc5..0000000
--- a/packages/SystemUI/res/drawable/ic_light_off_gm2_24px.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M9,21v-1h6v1c0,0.55 -0.45,1 -1,1h-4c-0.55,0 -1,-0.45 -1,-1z"/>
-  <group>
-    <clip-path android:pathData="M0,0h24v24H0z M 0,0"/>
-  </group>
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M12,2c-1.89,0 -3.6,0.75 -4.86,1.97l1.41,1.41C9.45,4.53 10.67,4 12,4c2.76,0 5,2.24 5,5 0,1.28 -0.5,2.5 -1.36,3.42l-0.02,0.02 1.41,1.41C18.25,12.6 19,10.89 19,9c0,-3.86 -3.14,-7 -7,-7z"
-      android:fillType="evenOdd"/>
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M2.92,2.29L1.65,3.57l3.59,3.59C5.09,7.75 5,8.36 5,9c0,2.38 1.19,4.47 3,5.74V17c0,0.55 0.45,1 1,1h6c0.3,0 0.57,-0.13 0.75,-0.34L20.09,22l1.27,-1.27L2.92,2.29zM10,16v-2.3l-0.85,-0.6C7.8,12.16 7,10.63 7,9v-0.08L14.09,16H10z"/>
-</vector>
diff --git a/packages/SystemUI/res/drawable/ic_lightbulb_outline_gm2_24px.xml b/packages/SystemUI/res/drawable/ic_lightbulb_outline_gm2_24px.xml
deleted file mode 100644
index 87684a3..0000000
--- a/packages/SystemUI/res/drawable/ic_lightbulb_outline_gm2_24px.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M9,21c0,0.55 0.45,1 1,1h4c0.55,0 1,-0.45 1,-1v-1L9,20v1zM12,2C8.14,2 5,5.14 5,9c0,2.38 1.19,4.47 3,5.74L8,17c0,0.55 0.45,1 1,1h6c0.55,0 1,-0.45 1,-1v-2.26c1.81,-1.27 3,-3.36 3,-5.74 0,-3.86 -3.14,-7 -7,-7zM14.85,13.1l-0.85,0.6L14,16h-4v-2.3l-0.85,-0.6C7.8,12.16 7,10.63 7,9c0,-2.76 2.24,-5 5,-5s5,2.24 5,5c0,1.63 -0.8,3.16 -2.15,4.1z"/>
-</vector>
diff --git a/packages/SystemUI/res/drawable/ic_lock_gm2_24px.xml b/packages/SystemUI/res/drawable/ic_lock_gm2_24px.xml
deleted file mode 100644
index f4299e6..0000000
--- a/packages/SystemUI/res/drawable/ic_lock_gm2_24px.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM9,6c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v2L9,8L9,6zM18,20L6,20L6,10h12v10zM12,17c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2z"/>
-</vector>
diff --git a/packages/SystemUI/res/drawable/ic_lock_open_gm2_24px.xml b/packages/SystemUI/res/drawable/ic_lock_open_gm2_24px.xml
deleted file mode 100644
index 59fe0a9..0000000
--- a/packages/SystemUI/res/drawable/ic_lock_open_gm2_24px.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6h2c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM18,20L6,20L6,10h12v10z"/>
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M12,15m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0"/>
-</vector>
diff --git a/packages/SystemUI/res/drawable/ic_more_vert.xml b/packages/SystemUI/res/drawable/ic_more_vert.xml
new file mode 100644
index 0000000..1c6c513
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_more_vert.xml
@@ -0,0 +1,24 @@
+<!--
+     Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_power_gm2_24px.xml b/packages/SystemUI/res/drawable/ic_power_gm2_24px.xml
deleted file mode 100644
index cd95719..0000000
--- a/packages/SystemUI/res/drawable/ic_power_gm2_24px.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M16,9v4.66l-3.5,3.51V19h-1v-1.83L8,13.65V9h8m0,-6h-2v4h-4V3H8v4h-0.01C6.9,6.99 6,7.89 6,8.98v5.52L9.5,18v3h5v-3l3.5,-3.51V9c0,-1.1 -0.9,-2 -2,-2V3z"/>
-</vector>
diff --git a/packages/SystemUI/res/drawable/ic_power_off_gm2_24px.xml b/packages/SystemUI/res/drawable/ic_power_off_gm2_24px.xml
deleted file mode 100644
index 3eb7dd6..0000000
--- a/packages/SystemUI/res/drawable/ic_power_off_gm2_24px.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M21.19,21.19L2.81,2.81 1.39,4.22l4.63,4.63L6,14.5 9.5,18v3h5v-3l0.34,-0.34 4.94,4.94 1.41,-1.41zM12.5,17.17L12.5,19h-1v-1.83L8,13.65v-2.83l5.42,5.42 -0.92,0.93zM11.83,9L8,5.17L8,3h2v4h4L14,3h2v4c1.1,0 2,0.9 2,2v5.49l-0.34,0.34L16,13.17L16,9h-4.17z"/>
-</vector>
diff --git a/packages/SystemUI/res/drawable/ic_switches_gm2_24px.xml b/packages/SystemUI/res/drawable/ic_switches_gm2_24px.xml
deleted file mode 100644
index bb535ce..0000000
--- a/packages/SystemUI/res/drawable/ic_switches_gm2_24px.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M19,9h-8.02C10.06,7.79 8.63,7 7,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5c1.63,0 3.06,-0.79 3.98,-2H19c1.66,0 3,-1.34 3,-3S20.66,9 19,9zM19,13h-7.1c0.07,-0.32 0.1,-0.66 0.1,-1s-0.04,-0.68 -0.1,-1H19c0.55,0 1,0.45 1,1S19.55,13 19,13z"/>
-</vector>
diff --git a/packages/SystemUI/res/drawable/ic_vacuum_gm2_24px.xml b/packages/SystemUI/res/drawable/ic_vacuum_gm2_24px.xml
deleted file mode 100644
index 86b9591..0000000
--- a/packages/SystemUI/res/drawable/ic_vacuum_gm2_24px.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M4,16c-1.66,0 -3,1.34 -3,3s1.34,3 3,3 3,-1.34 3,-3 -1.34,-3 -3,-3zM4,20c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1 1,0.45 1,1 -0.45,1 -1,1zM23,20v2h-7v-2h2.49L12.01,4.59C11.6,3.63 10.66,3 9.61,3 8.17,3 7,4.17 7,5.61L7,9h2c2.21,0 4,1.79 4,4v9L7.99,22c0.44,-0.58 0.76,-1.26 0.91,-2L11,20v-7c0,-1.1 -0.9,-2 -2,-2L4,11v3c-0.71,0 -1.39,0.15 -2,0.42L2,9h3L5,5.61C5,3.07 7.07,1 9.61,1c1.86,0 3.53,1.11 4.25,2.82L20.66,20L23,20z"/>
-</vector>
diff --git a/packages/SystemUI/res/drawable/ic_videocam_gm2_24px.xml b/packages/SystemUI/res/drawable/ic_videocam_gm2_24px.xml
deleted file mode 100644
index 687c9c4..0000000
--- a/packages/SystemUI/res/drawable/ic_videocam_gm2_24px.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M18,10.48L18,6c0,-1.1 -0.9,-2 -2,-2L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2v-4.48l4,3.98v-11l-4,3.98zM16,9.69L16,18L4,18L4,6h12v3.69z"/>
-</vector>
diff --git a/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml b/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml
index c40e47d..19a85fe 100644
--- a/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml
+++ b/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml
@@ -48,11 +48,7 @@
             android:id="@+id/subtitle"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginHorizontal="24dp"
-            android:layout_marginTop="8dp"
-            android:textSize="16sp"
-            android:gravity="center"
-            android:textColor="?android:attr/textColorPrimary"/>
+            style="@style/TextAppearance.AuthCredential.Subtitle"/>
 
         <TextView
             android:id="@+id/description"
@@ -65,11 +61,23 @@
             android:layout_height="0dp"
             android:layout_weight="1"/>
 
+        <TextView
+            android:id="@+id/error"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            style="@style/TextAppearance.AuthCredential.Error"/>
+
+        <Space
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:layout_weight="1"/>
+
     </LinearLayout>
 
     <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
         android:orientation="vertical"
         android:gravity="center"
         android:paddingLeft="0dp"
@@ -93,20 +101,6 @@
 
         </FrameLayout>
 
-        <TextView
-            android:id="@+id/error"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="24dp"
-            android:textSize="16sp"
-            android:gravity="center"
-            android:textColor="?android:attr/colorError"/>
-
-        <Space
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_weight="1"/>
-
     </LinearLayout>
 
 </com.android.systemui.biometrics.AuthCredentialPatternView>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/auth_biometric_contents.xml b/packages/SystemUI/res/layout/auth_biometric_contents.xml
index a1006a8..6b61046 100644
--- a/packages/SystemUI/res/layout/auth_biometric_contents.xml
+++ b/packages/SystemUI/res/layout/auth_biometric_contents.xml
@@ -18,34 +18,24 @@
 
     <TextView
         android:id="@+id/title"
-        android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:paddingHorizontal="24dp"
-        android:paddingTop="24dp"
         android:gravity="@integer/biometric_dialog_text_gravity"
-        android:textSize="20sp"
-        android:textColor="?android:attr/textColorPrimary"/>
+        style="@style/TextAppearance.AuthCredential.Title"/>
 
     <TextView
         android:id="@+id/subtitle"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:paddingTop="8dp"
-        android:paddingHorizontal="24dp"
         android:gravity="@integer/biometric_dialog_text_gravity"
-        android:textSize="16sp"
-        android:textColor="?android:attr/textColorPrimary"/>
+        style="@style/TextAppearance.AuthCredential.Subtitle"/>
 
     <TextView
         android:id="@+id/description"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:paddingHorizontal="24dp"
-        android:paddingTop="8dp"
         android:gravity="@integer/biometric_dialog_text_gravity"
-        android:textSize="16sp"
-        android:textColor="?android:attr/textColorPrimary"/>
+        style="@style/TextAppearance.AuthCredential.Description"/>
 
     <ImageView
         android:id="@+id/biometric_icon"
diff --git a/packages/SystemUI/res/layout/auth_credential_password_view.xml b/packages/SystemUI/res/layout/auth_credential_password_view.xml
index b14bc7d..45638ce 100644
--- a/packages/SystemUI/res/layout/auth_credential_password_view.xml
+++ b/packages/SystemUI/res/layout/auth_credential_password_view.xml
@@ -42,11 +42,7 @@
         android:id="@+id/subtitle"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginHorizontal="24dp"
-        android:layout_marginTop="8dp"
-        android:textSize="16sp"
-        android:gravity="center"
-        android:textColor="?android:attr/textColorPrimary"/>
+        style="@style/TextAppearance.AuthCredential.Subtitle"/>
 
     <TextView
         android:id="@+id/description"
@@ -59,15 +55,6 @@
         android:layout_height="0dp"
         android:layout_weight="1"/>
 
-    <TextView
-        android:id="@+id/error"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginHorizontal="24dp"
-        android:textSize="16sp"
-        android:gravity="center"
-        android:textColor="?android:attr/colorError"/>
-
     <EditText
         android:id="@+id/lockPassword"
         android:layout_width="208dp"
@@ -80,6 +67,12 @@
         android:imeOptions="actionNext|flagNoFullscreen|flagForceAscii"
         style="@style/TextAppearance.AuthCredential.PasswordEntry"/>
 
+    <TextView
+        android:id="@+id/error"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        style="@style/TextAppearance.AuthCredential.Error"/>
+
     <Space
         android:layout_width="0dp"
         android:layout_height="0dp"
diff --git a/packages/SystemUI/res/layout/auth_credential_pattern_view.xml b/packages/SystemUI/res/layout/auth_credential_pattern_view.xml
index eda5ecb..4939ea2 100644
--- a/packages/SystemUI/res/layout/auth_credential_pattern_view.xml
+++ b/packages/SystemUI/res/layout/auth_credential_pattern_view.xml
@@ -42,11 +42,7 @@
         android:id="@+id/subtitle"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginHorizontal="24dp"
-        android:layout_marginTop="8dp"
-        android:textSize="16sp"
-        android:gravity="center"
-        android:textColor="?android:attr/textColorPrimary"/>
+        style="@style/TextAppearance.AuthCredential.Subtitle"/>
 
     <TextView
         android:id="@+id/description"
@@ -89,10 +85,7 @@
             android:id="@+id/error"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginHorizontal="24dp"
-            android:textSize="16sp"
-            android:gravity="center"
-            android:textColor="?android:attr/colorError"/>
+            style="@style/TextAppearance.AuthCredential.Error"/>
 
     </LinearLayout>
 
diff --git a/packages/SystemUI/res/layout/bubble_overflow_activity.xml b/packages/SystemUI/res/layout/bubble_overflow_activity.xml
index a06f434..65b04fd 100644
--- a/packages/SystemUI/res/layout/bubble_overflow_activity.xml
+++ b/packages/SystemUI/res/layout/bubble_overflow_activity.xml
@@ -19,6 +19,7 @@
     android:id="@+id/bubble_overflow_container"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:paddingTop="@dimen/bubble_overflow_padding"
     android:orientation="vertical"
     android:layout_gravity="center_horizontal">
 
diff --git a/packages/SystemUI/res/layout/bubble_overflow_view.xml b/packages/SystemUI/res/layout/bubble_overflow_view.xml
new file mode 100644
index 0000000..d67c81d
--- /dev/null
+++ b/packages/SystemUI/res/layout/bubble_overflow_view.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/bubble_overflow_view"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <com.android.systemui.bubbles.BadgedImageView
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/bubble_view"
+        android:layout_gravity="center"
+        android:layout_width="@dimen/individual_bubble_size"
+        android:layout_height="@dimen/individual_bubble_size"/>
+
+    <TextView
+        android:id="@+id/bubble_view_name"
+        android:fontFamily="@*android:string/config_bodyFontFamily"
+        android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body2"
+        android:textColor="?android:attr/textColorSecondary"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:maxLines="1"
+        android:layout_gravity="center"
+        android:gravity="center"/>
+</LinearLayout>
diff --git a/packages/SystemUI/res/layout/controls_base_item.xml b/packages/SystemUI/res/layout/controls_base_item.xml
index c58f572..b83e500 100644
--- a/packages/SystemUI/res/layout/controls_base_item.xml
+++ b/packages/SystemUI/res/layout/controls_base_item.xml
@@ -30,8 +30,8 @@
 
     <ImageView
         android:id="@+id/icon"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
+        android:layout_width="@dimen/control_icon_size"
+        android:layout_height="@dimen/control_icon_size"
         android:paddingTop="@dimen/control_padding_adjustment"
         android:clickable="false"
         android:focusable="false"
@@ -50,6 +50,7 @@
         app:layout_constraintBottom_toBottomOf="@+id/icon"
         app:layout_constraintStart_toEndOf="@+id/icon" />
 
+
     <TextView
         android:id="@+id/status_extra"
         android:layout_width="wrap_content"
@@ -64,19 +65,29 @@
 
     <TextView
         android:id="@+id/title"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:textAppearance="@style/TextAppearance.Control.Title"
         android:paddingLeft="@dimen/control_padding_adjustment"
         android:paddingRight="@dimen/control_padding_adjustment"
         android:clickable="false"
         android:focusable="false"
-        app:layout_constraintBottom_toTopOf="@+id/subtitle"
-        app:layout_constraintStart_toStartOf="parent" />
+        android:maxLines="1"
+        android:ellipsize="end"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintBottom_toTopOf="@id/barrier"/>
+
+    <androidx.constraintlayout.widget.Barrier
+        android:id="@+id/barrier"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:barrierDirection="top"
+        app:constraint_referenced_ids="subtitle,favorite" />
 
     <TextView
         android:id="@+id/subtitle"
-        android:layout_width="wrap_content"
+        android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:textAppearance="@style/TextAppearance.Control.Subtitle"
         android:paddingLeft="@dimen/control_padding_adjustment"
@@ -84,24 +95,24 @@
         android:paddingBottom="@dimen/control_padding_adjustment"
         android:clickable="false"
         android:focusable="false"
+        android:maxLines="1"
+        android:ellipsize="end"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toStartOf="@id/favorite"
         app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintStart_toStartOf="parent"/>
+    />
 
-    <FrameLayout
-        android:id="@+id/favorite_container"
+    <CheckBox
+        android:id="@+id/favorite"
         android:visibility="gone"
-        android:layout_width="48dp"
-        android:layout_height="48dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom|end"
+        android:button="@drawable/controls_btn_star"
+        android:layout_marginTop="4dp"
+        android:layout_marginStart="4dp"
+        app:layout_constraintStart_toEndOf="@id/subtitle"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintBottom_toBottomOf="parent">
-
-        <CheckBox
-            android:id="@+id/favorite"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="bottom|end"
-            android:button="@drawable/controls_btn_star"/>
-    </FrameLayout>
-
+        app:layout_constraintBottom_toBottomOf="parent"/>
 
 </androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/packages/SystemUI/res/layout/controls_management.xml b/packages/SystemUI/res/layout/controls_management.xml
index 34a966c..9d5eb63 100644
--- a/packages/SystemUI/res/layout/controls_management.xml
+++ b/packages/SystemUI/res/layout/controls_management.xml
@@ -105,7 +105,7 @@
                 android:id="@+id/done"
                 android:layout_width="wrap_content"
                 android:layout_height="match_parent"
-                android:text="Done"
+                android:text="@string/save"
                 style="@*android:style/Widget.DeviceDefault.Button.Colored"
                 app:layout_constraintTop_toTopOf="parent"
                 app:layout_constraintBottom_toBottomOf="parent"
@@ -114,4 +114,4 @@
     </FrameLayout>
 
 
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/core/tests/ResourceLoaderTests/splits/SplitOne/AndroidManifest.xml b/packages/SystemUI/res/layout/controls_more_item.xml
similarity index 72%
copy from core/tests/ResourceLoaderTests/splits/SplitOne/AndroidManifest.xml
copy to packages/SystemUI/res/layout/controls_more_item.xml
index b14bd86..549874a 100644
--- a/core/tests/ResourceLoaderTests/splits/SplitOne/AndroidManifest.xml
+++ b/packages/SystemUI/res/layout/controls_more_item.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
   ~ Copyright (C) 2019 The Android Open Source Project
   ~
@@ -14,14 +13,11 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-
-<manifest
+<TextView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    package="android.content.res.loader.test"
-    split="split_one"
-    >
+    style="@style/Control.MenuItem"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="24dp"
+    android:layout_gravity="start" />
 
-    <uses-sdk android:minSdkVersion="1" android:targetSdkVersion="1" />
-    <application android:hasCode="false" />
-
-</manifest>
diff --git a/packages/SystemUI/res/layout/controls_no_favorites.xml b/packages/SystemUI/res/layout/controls_no_favorites.xml
index 8074efd..4128230 100644
--- a/packages/SystemUI/res/layout/controls_no_favorites.xml
+++ b/packages/SystemUI/res/layout/controls_no_favorites.xml
@@ -40,14 +40,19 @@
         android:paddingBottom="8dp" />
 
     <TextView
+        style="@style/TextAppearance.ControlSetup.Title"
         android:id="@+id/controls_title"
         android:text="@string/quick_controls_title"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:singleLine="true"
-        android:layout_gravity="center"
-        android:textSize="25sp"
-        android:textColor="@*android:color/foreground_material_dark"
-        android:fontFamily="@*android:string/config_headlineFontFamily" />
+        android:layout_gravity="center" />
+
+    <TextView
+        style="@style/TextAppearance.ControlSetup.Subtitle"
+        android:id="@+id/controls_subtitle"
+        android:layout_marginTop="12dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center" />
   </LinearLayout>
 </merge>
diff --git a/packages/SystemUI/res/layout/controls_spinner_item.xml b/packages/SystemUI/res/layout/controls_spinner_item.xml
index 44ae3b1..00654c8 100644
--- a/packages/SystemUI/res/layout/controls_spinner_item.xml
+++ b/packages/SystemUI/res/layout/controls_spinner_item.xml
@@ -17,7 +17,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:padding="4dp">
+    android:padding="8dp">
 
   <LinearLayout
       android:orientation="horizontal"
diff --git a/packages/SystemUI/res/layout/controls_with_favorites.xml b/packages/SystemUI/res/layout/controls_with_favorites.xml
index d3de4cd..1d6c751 100644
--- a/packages/SystemUI/res/layout/controls_with_favorites.xml
+++ b/packages/SystemUI/res/layout/controls_with_favorites.xml
@@ -51,6 +51,18 @@
           android:layout_gravity="center" />
     </LinearLayout>
 
+    <ImageView
+        android:id="@+id/controls_more"
+        android:src="@drawable/ic_more_vert"
+        android:layout_width="48dp"
+        android:layout_height="48dp"
+        android:padding="12dp"
+        android:layout_marginEnd="@dimen/controls_list_side_margin"
+        android:tint="@color/control_more_vert"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
   </androidx.constraintlayout.widget.ConstraintLayout>
 
   <LinearLayout
diff --git a/packages/SystemUI/res/layout/keyguard_media_header.xml b/packages/SystemUI/res/layout/keyguard_media_header.xml
new file mode 100644
index 0000000..de9ef21
--- /dev/null
+++ b/packages/SystemUI/res/layout/keyguard_media_header.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<!-- Layout for media controls on the lockscreen -->
+<com.android.systemui.statusbar.notification.stack.MediaHeaderView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingStart="0dp"
+    android:paddingEnd="0dp"
+    android:focusable="true"
+    android:clickable="true"
+>
+
+    <!-- Background views required by ActivatableNotificationView. -->
+    <com.android.systemui.statusbar.notification.row.NotificationBackgroundView
+        android:id="@+id/backgroundNormal"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+    />
+
+    <com.android.systemui.statusbar.notification.row.NotificationBackgroundView
+        android:id="@+id/backgroundDimmed"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+    />
+
+    <com.android.systemui.statusbar.notification.FakeShadowView
+        android:id="@+id/fake_shadow"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+    />
+
+    <!-- Layout for media controls. -->
+    <LinearLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/keyguard_media_view"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:gravity="center"
+        android:padding="16dp"
+    >
+        <ImageView
+            android:id="@+id/album_art"
+            android:layout_width="@dimen/qs_media_album_size"
+            android:layout_height="@dimen/qs_media_album_size"
+            android:layout_marginRight="16dp"
+            android:layout_weight="0"
+        />
+
+        <!-- Media information -->
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+        >
+            <LinearLayout
+                android:orientation="horizontal"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+            >
+                <com.android.internal.widget.CachingIconView
+                    android:id="@+id/icon"
+                    android:layout_width="16dp"
+                    android:layout_height="16dp"
+                    android:layout_marginEnd="5dp"
+                />
+                <TextView
+                    android:id="@+id/app_name"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="14sp"
+                    android:singleLine="true"
+                />
+            </LinearLayout>
+
+            <!-- Song name -->
+            <TextView
+                android:id="@+id/header_title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:singleLine="true"
+                android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
+                android:textSize="18sp"
+                android:paddingBottom="6dp"
+                android:gravity="center"/>
+
+            <!-- Artist name -->
+            <TextView
+                android:id="@+id/header_artist"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:fontFamily="@*android:string/config_bodyFontFamily"
+                android:textSize="14sp"
+                android:singleLine="true"
+            />
+        </LinearLayout>
+
+        <!-- Controls -->
+        <LinearLayout
+            android:id="@+id/media_actions"
+            android:orientation="horizontal"
+            android:layoutDirection="ltr"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:layout_gravity="center"
+        >
+            <ImageButton
+                style="@android:style/Widget.Material.Button.Borderless.Small"
+                android:layout_width="48dp"
+                android:layout_height="48dp"
+                android:gravity="center"
+                android:visibility="gone"
+                android:id="@+id/action0"
+            />
+            <ImageButton
+                style="@android:style/Widget.Material.Button.Borderless.Small"
+                android:layout_width="48dp"
+                android:layout_height="48dp"
+                android:gravity="center"
+                android:visibility="gone"
+                android:id="@+id/action1"
+            />
+            <ImageButton
+                style="@android:style/Widget.Material.Button.Borderless.Small"
+                android:layout_width="48dp"
+                android:layout_height="48dp"
+                android:gravity="center"
+                android:visibility="gone"
+                android:id="@+id/action2"
+            />
+        </LinearLayout>
+    </LinearLayout>
+
+</com.android.systemui.statusbar.notification.stack.MediaHeaderView>
diff --git a/packages/SystemUI/res/layout/notification_conversation_info.xml b/packages/SystemUI/res/layout/notification_conversation_info.xml
index 6a7f9e2..87cb5c7f 100644
--- a/packages/SystemUI/res/layout/notification_conversation_info.xml
+++ b/packages/SystemUI/res/layout/notification_conversation_info.xml
@@ -53,8 +53,7 @@
             android:layout_centerVertical="true"
             android:gravity="center_vertical"
             android:layout_alignEnd="@id/conversation_icon"
-            android:layout_toEndOf="@id/conversation_icon"
-            android:layout_alignStart="@id/mute">
+            android:layout_toEndOf="@id/conversation_icon">
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
@@ -127,96 +126,230 @@
 
         <!-- end aligned fields -->
         <ImageButton
-            android:id="@+id/mute"
+            android:id="@+id/info"
             android:layout_width="@dimen/notification_importance_toggle_size"
             android:layout_height="@dimen/notification_importance_toggle_size"
             android:layout_centerVertical="true"
             android:background="@drawable/ripple_drawable"
-            android:layout_toStartOf="@id/fave"
-            android:tint="@color/notification_guts_link_icon_tint"/>
-        <ImageButton
-            android:id="@+id/fave"
-            android:layout_width="@dimen/notification_importance_toggle_size"
-            android:layout_height="@dimen/notification_importance_toggle_size"
-            android:layout_centerVertical="true"
-            android:background="@drawable/ripple_drawable"
+            android:contentDescription="@string/notification_more_settings"
+            android:src="@drawable/ic_settings"
             android:layout_alignParentEnd="true"
             android:tint="@color/notification_guts_link_icon_tint"/>
 
     </LinearLayout>
 
     <LinearLayout
-        android:id="@+id/actions"
+        android:id="@+id/inline_controls"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginEnd="@*android:dimen/notification_content_margin_end"
+        android:paddingEnd="@*android:dimen/notification_content_margin_end"
+        android:layout_marginTop="@dimen/notification_guts_option_vertical_padding"
         android:clipChildren="false"
         android:clipToPadding="false"
         android:orientation="vertical">
 
-        <View
+        <!-- Non configurable app/channel text. appears instead of @+id/interruptiveness_settings-->
+        <TextView
+            android:id="@+id/non_configurable_text"
+            android:text="@string/notification_unblockable_desc"
+            android:visibility="gone"
             android:layout_width="match_parent"
-            android:layout_height="0.5dp"
-            android:background="@color/GM2_grey_300" />
+            android:layout_height="wrap_content"
+            style="@*android:style/TextAppearance.DeviceDefault.Notification" />
 
-        <Button
-            android:id="@+id/snooze"
-            android:layout_height="@dimen/notification_guts_conversation_action_height"
+        <!-- Non configurable multichannel text. appears instead of @+id/interruptiveness_settings-->
+        <TextView
+            android:id="@+id/non_configurable_multichannel_text"
+            android:text="@string/notification_multichannel_desc"
+            android:visibility="gone"
             android:layout_width="match_parent"
-            style="?android:attr/borderlessButtonStyle"
-            android:text="@string/notification_menu_snooze_action"
-            android:gravity="left|center_vertical"
-            android:drawableStart="@drawable/ic_snooze"
-            android:drawablePadding="@dimen/notification_guts_conversation_action_text_padding_start"
-            android:drawableTint="@color/notification_guts_link_icon_tint"/>
+            android:layout_height="wrap_content"
+            style="@*android:style/TextAppearance.DeviceDefault.Notification" />
 
-        <View
+        <LinearLayout
+            android:id="@+id/interruptiveness_settings"
             android:layout_width="match_parent"
-            android:layout_height="0.5dp"
-            android:background="@color/GM2_grey_300" />
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:orientation="vertical">
 
-        <Button
-            android:id="@+id/bubble"
-            android:layout_height="@dimen/notification_guts_conversation_action_height"
-            android:layout_width="match_parent"
-            style="?android:attr/borderlessButtonStyle"
-            android:text="@string/notification_conversation_favorite"
-            android:gravity="left|center_vertical"
-            android:drawableStart="@drawable/ic_create_bubble"
-            android:drawablePadding="@dimen/notification_guts_conversation_action_text_padding_start"
-            android:drawableTint="@color/notification_guts_link_icon_tint"/>
+            <com.android.systemui.statusbar.notification.row.ButtonLinearLayout
+                android:id="@+id/priority"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:padding="@dimen/notification_importance_button_padding"
+                android:clickable="true"
+                android:focusable="true"
+                android:background="@drawable/notification_guts_priority_button_bg"
+                android:orientation="vertical">
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:gravity="center"
+                >
+                    <ImageView
+                        android:id="@+id/priority_icon"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:src="@drawable/ic_important_outline"
+                        android:background="@android:color/transparent"
+                        android:tint="@color/notification_guts_priority_contents"
+                        android:clickable="false"
+                        android:focusable="false"/>
+                    <TextView
+                        android:id="@+id/priority_label"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="@dimen/notification_importance_drawable_padding"
+                        android:layout_weight="1"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        android:clickable="false"
+                        android:focusable="false"
+                        android:textAppearance="@style/TextAppearance.NotificationImportanceButton"
+                        android:text="@string/notification_priority_title"/>
+                </LinearLayout>
+                <TextView
+                    android:id="@+id/priority_summary"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/notification_importance_button_description_top_margin"
+                    android:visibility="gone"
+                    android:text="@string/notification_channel_summary_priority"
+                    android:clickable="false"
+                    android:focusable="false"
+                    android:ellipsize="end"
+                    android:maxLines="2"
+                    android:textAppearance="@style/TextAppearance.NotificationImportanceDetail"/>
+            </com.android.systemui.statusbar.notification.row.ButtonLinearLayout>
 
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="0.5dp"
-            android:background="@color/GM2_grey_300" />
-        <Button
-            android:id="@+id/home"
-            android:layout_height="@dimen/notification_guts_conversation_action_height"
-            android:layout_width="match_parent"
-            style="?android:attr/borderlessButtonStyle"
-            android:text="@string/notification_conversation_home_screen"
-            android:gravity="left|center_vertical"
-            android:drawableStart="@drawable/ic_add_to_home"
-            android:drawablePadding="@dimen/notification_guts_conversation_action_text_padding_start"
-            android:drawableTint="@color/notification_guts_link_icon_tint"/>
+            <com.android.systemui.statusbar.notification.row.ButtonLinearLayout
+                android:id="@+id/default_behavior"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/notification_importance_button_separation"
+                android:padding="@dimen/notification_importance_button_padding"
+                android:clickable="true"
+                android:focusable="true"
+                android:background="@drawable/notification_guts_priority_button_bg"
+                android:orientation="vertical">
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:gravity="center"
+                >
+                    <ImageView
+                        android:id="@+id/default_icon"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:src="@drawable/ic_notifications_alert"
+                        android:background="@android:color/transparent"
+                        android:tint="@color/notification_guts_priority_contents"
+                        android:clickable="false"
+                        android:focusable="false"/>
+                    <TextView
+                        android:id="@+id/default_label"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="@dimen/notification_importance_drawable_padding"
+                        android:layout_weight="1"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        android:clickable="false"
+                        android:focusable="false"
+                        android:textAppearance="@style/TextAppearance.NotificationImportanceButton"
+                        android:text="@string/notification_alert_title"/>
+                </LinearLayout>
+                <TextView
+                    android:id="@+id/default_summary"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/notification_importance_button_description_top_margin"
+                    android:visibility="gone"
+                    android:text="@string/notification_channel_summary_default"
+                    android:clickable="false"
+                    android:focusable="false"
+                    android:ellipsize="end"
+                    android:maxLines="2"
+                    android:textAppearance="@style/TextAppearance.NotificationImportanceDetail"/>
+            </com.android.systemui.statusbar.notification.row.ButtonLinearLayout>
 
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="0.5dp"
-            android:background="@color/GM2_grey_300" />
-
-        <Button
-            android:id="@+id/info"
-            android:layout_height="@dimen/notification_guts_conversation_action_height"
-            android:layout_width="match_parent"
-            style="?android:attr/borderlessButtonStyle"
-            android:drawableStart="@drawable/ic_settings"
-            android:text="@string/notification_menu_settings_action"
-            android:gravity="left|center_vertical"
-            android:drawablePadding="@dimen/notification_guts_conversation_action_text_padding_start"
-            android:drawableTint="@color/notification_guts_link_icon_tint"/>
+            <com.android.systemui.statusbar.notification.row.ButtonLinearLayout
+                android:id="@+id/silence"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/notification_importance_button_separation"
+                android:padding="@dimen/notification_importance_button_padding"
+                android:clickable="true"
+                android:focusable="true"
+                android:background="@drawable/notification_guts_priority_button_bg"
+                android:orientation="vertical">
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:gravity="center"
+                >
+                    <ImageView
+                        android:id="@+id/silence_icon"
+                        android:src="@drawable/ic_notifications_silence"
+                        android:background="@android:color/transparent"
+                        android:tint="@color/notification_guts_priority_contents"
+                        android:layout_gravity="center"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:clickable="false"
+                        android:focusable="false"/>
+                    <TextView
+                        android:id="@+id/silence_label"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:ellipsize="end"
+                        android:maxLines="1"
+                        android:clickable="false"
+                        android:focusable="false"
+                        android:layout_toEndOf="@id/silence_icon"
+                        android:layout_marginStart="@dimen/notification_importance_drawable_padding"
+                        android:textAppearance="@style/TextAppearance.NotificationImportanceButton"
+                        android:text="@string/notification_silence_title"/>
+                </LinearLayout>
+                <TextView
+                    android:id="@+id/silence_summary"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/notification_importance_button_description_top_margin"
+                    android:visibility="gone"
+                    android:text="@string/notification_channel_summary_low"
+                    android:clickable="false"
+                    android:focusable="false"
+                    android:ellipsize="end"
+                    android:maxLines="2"
+                    android:textAppearance="@style/TextAppearance.NotificationImportanceDetail"/>
+            </com.android.systemui.statusbar.notification.row.ButtonLinearLayout>
 
         </LinearLayout>
 
+        <RelativeLayout
+            android:id="@+id/bottom_buttons"
+            android:layout_width="match_parent"
+            android:layout_height="60dp"
+            android:gravity="center_vertical"
+            android:paddingStart="4dp"
+            android:paddingEnd="4dp"
+        >
+            <TextView
+                android:id="@+id/done"
+                android:text="@string/inline_ok_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentEnd="true"
+                android:gravity="end|center_vertical"
+                android:minWidth="@dimen/notification_importance_toggle_size"
+                android:minHeight="@dimen/notification_importance_toggle_size"
+                style="@style/TextAppearance.NotificationInfo.Button"/>
+        </RelativeLayout>
+    </LinearLayout>
+
 </com.android.systemui.statusbar.notification.row.NotificationConversationInfo>
diff --git a/packages/SystemUI/res/layout/notification_info.xml b/packages/SystemUI/res/layout/notification_info.xml
index 6ab573b..73b711d 100644
--- a/packages/SystemUI/res/layout/notification_info.xml
+++ b/packages/SystemUI/res/layout/notification_info.xml
@@ -52,8 +52,7 @@
             android:layout_centerVertical="true"
             android:gravity="center_vertical"
             android:layout_alignEnd="@id/pkg_icon"
-            android:layout_toEndOf="@id/pkg_icon"
-            android:layout_alignStart="@id/mute">
+            android:layout_toEndOf="@id/pkg_icon">
             <TextView
                 android:id="@+id/channel_name"
                 android:layout_width="match_parent"
diff --git a/packages/SystemUI/res/layout/qs_media_panel.xml b/packages/SystemUI/res/layout/qs_media_panel.xml
index 34bd703..fe8557b 100644
--- a/packages/SystemUI/res/layout/qs_media_panel.xml
+++ b/packages/SystemUI/res/layout/qs_media_panel.xml
@@ -27,163 +27,174 @@
     android:background="@drawable/qs_media_background"
     >
 
-    <!-- Header section -->
+    <!-- Buttons to remove this view when no longer needed -->
+    <include
+        layout="@layout/qs_media_panel_options"
+        android:visibility="gone"/>
+
     <LinearLayout
-        android:orientation="horizontal"
+        android:id="@+id/media_guts"
+        android:orientation="vertical"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="16dp"
-    >
-
-        <ImageView
-            android:id="@+id/album_art"
-            android:layout_width="@dimen/qs_media_album_size"
-            android:layout_height="@dimen/qs_media_album_size"
-            android:layout_marginRight="16dp"
-            android:layout_weight="0"
-        />
-
+        android:layout_height="match_parent">
+        <!-- Header section -->
         <LinearLayout
-            android:orientation="vertical"
-            android:layout_width="0dp"
-            android:layout_height="@dimen/qs_media_album_size"
-            android:layout_weight="1"
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="16dp"
         >
+
+            <ImageView
+                android:id="@+id/album_art"
+                android:layout_width="@dimen/qs_media_album_size"
+                android:layout_height="@dimen/qs_media_album_size"
+                android:layout_marginRight="16dp"
+                android:layout_weight="0"
+            />
+
             <LinearLayout
-                android:orientation="horizontal"
-                android:layout_width="wrap_content"
+                android:orientation="vertical"
+                android:layout_width="0dp"
                 android:layout_height="wrap_content"
-                android:gravity="center"
+                android:layout_weight="1"
             >
-                <com.android.internal.widget.CachingIconView
-                    android:id="@+id/icon"
-                    android:layout_width="16dp"
-                    android:layout_height="16dp"
-                    android:layout_marginEnd="5dp"
-                />
-                <TextView
-                    android:id="@+id/app_name"
+                <LinearLayout
+                    android:orientation="horizontal"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
+                    android:gravity="center"
+                >
+                    <com.android.internal.widget.CachingIconView
+                        android:id="@+id/icon"
+                        android:layout_width="16dp"
+                        android:layout_height="16dp"
+                        android:layout_marginEnd="5dp"
+                    />
+                    <TextView
+                        android:id="@+id/app_name"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textSize="14sp"
+                        android:singleLine="true"
+                    />
+                </LinearLayout>
+
+                <!-- Song name -->
+                <TextView
+                    android:id="@+id/header_title"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:singleLine="true"
+                    android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
+                    android:textSize="18sp"
+                    android:paddingBottom="6dp"
+                    android:gravity="center"/>
+
+                <!-- Artist name -->
+                <TextView
+                    android:id="@+id/header_artist"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:fontFamily="@*android:string/config_bodyFontFamily"
                     android:textSize="14sp"
                     android:singleLine="true"
                 />
             </LinearLayout>
 
-            <!-- Song name -->
-            <TextView
-                android:id="@+id/header_title"
-                android:layout_width="wrap_content"
+            <!-- Output chip -->
+            <LinearLayout
+                android:layout_width="0dp"
                 android:layout_height="wrap_content"
-                android:singleLine="true"
-                android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
-                android:textSize="18sp"
+                android:orientation="horizontal"
+                android:visibility="gone"
+                android:paddingTop="6dp"
                 android:paddingBottom="6dp"
-                android:gravity="center"/>
-
-            <!-- Artist name -->
-            <TextView
-                android:id="@+id/header_artist"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:fontFamily="@*android:string/config_bodyFontFamily"
-                android:textSize="14sp"
-                android:singleLine="true"
-            />
+                android:paddingLeft="12dp"
+                android:paddingRight="12dp"
+                android:gravity="center"
+                android:id="@+id/media_seamless"
+                android:background="@*android:drawable/media_seamless_background"
+                android:layout_weight="1"
+            >
+                <ImageView
+                    android:layout_width="@dimen/qs_seamless_icon_size"
+                    android:layout_height="@dimen/qs_seamless_icon_size"
+                    android:src="@*android:drawable/ic_media_seamless"
+                    android:layout_marginRight="8dp"
+                    android:id="@+id/media_seamless_image"
+                />
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:fontFamily="@*android:string/config_bodyFontFamily"
+                    android:text="@*android:string/ext_media_seamless_action"
+                    android:textSize="14sp"
+                    android:id="@+id/media_seamless_text"
+                    android:singleLine="true"
+                />
+            </LinearLayout>
         </LinearLayout>
 
-        <!-- Output chip -->
+        <!-- Controls -->
         <LinearLayout
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
+            android:id="@+id/media_actions"
             android:orientation="horizontal"
-            android:visibility="gone"
-            android:paddingTop="6dp"
-            android:paddingBottom="6dp"
-            android:paddingLeft="12dp"
-            android:paddingRight="12dp"
+            android:layoutDirection="ltr"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
             android:gravity="center"
-            android:id="@+id/media_seamless"
-            android:background="@*android:drawable/media_seamless_background"
-            android:layout_weight="1"
-        >
-            <ImageView
-                android:layout_width="@dimen/qs_seamless_icon_size"
-                android:layout_height="@dimen/qs_seamless_icon_size"
-                android:src="@*android:drawable/ic_media_seamless"
-                android:layout_marginRight="8dp"
-                android:id="@+id/media_seamless_image"
+            >
+            <ImageButton
+                style="@android:style/Widget.Material.Button.Borderless.Small"
+                android:layout_width="48dp"
+                android:layout_height="48dp"
+                android:layout_marginStart="8dp"
+                android:layout_marginEnd="8dp"
+                android:gravity="center"
+                android:visibility="gone"
+                android:id="@+id/action0"
             />
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:fontFamily="@*android:string/config_bodyFontFamily"
-                android:text="@*android:string/ext_media_seamless_action"
-                android:textSize="14sp"
-                android:id="@+id/media_seamless_text"
-                android:singleLine="true"
+            <ImageButton
+                style="@android:style/Widget.Material.Button.Borderless.Small"
+                android:layout_width="48dp"
+                android:layout_height="48dp"
+                android:layout_marginStart="8dp"
+                android:layout_marginEnd="8dp"
+                android:gravity="center"
+                android:visibility="gone"
+                android:id="@+id/action1"
+            />
+            <ImageButton
+                style="@android:style/Widget.Material.Button.Borderless.Small"
+                android:layout_width="52dp"
+                android:layout_height="52dp"
+                android:layout_marginStart="8dp"
+                android:layout_marginEnd="8dp"
+                android:gravity="center"
+                android:visibility="gone"
+                android:id="@+id/action2"
+            />
+            <ImageButton
+                style="@android:style/Widget.Material.Button.Borderless.Small"
+                android:layout_width="48dp"
+                android:layout_height="48dp"
+                android:layout_marginStart="8dp"
+                android:layout_marginEnd="8dp"
+                android:gravity="center"
+                android:visibility="gone"
+                android:id="@+id/action3"
+            />
+            <ImageButton
+                style="@android:style/Widget.Material.Button.Borderless.Small"
+                android:layout_width="48dp"
+                android:layout_height="48dp"
+                android:layout_marginStart="8dp"
+                android:layout_marginEnd="8dp"
+                android:gravity="center"
+                android:visibility="gone"
+                android:id="@+id/action4"
             />
         </LinearLayout>
     </LinearLayout>
-
-    <!-- Controls -->
-    <LinearLayout
-        android:id="@+id/media_actions"
-        android:orientation="horizontal"
-        android:layoutDirection="ltr"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center"
-        >
-        <ImageButton
-            style="@android:style/Widget.Material.Button.Borderless.Small"
-            android:layout_width="48dp"
-            android:layout_height="48dp"
-            android:layout_marginStart="8dp"
-            android:layout_marginEnd="8dp"
-            android:gravity="center"
-            android:visibility="gone"
-            android:id="@+id/action0"
-        />
-        <ImageButton
-            style="@android:style/Widget.Material.Button.Borderless.Small"
-            android:layout_width="48dp"
-            android:layout_height="48dp"
-            android:layout_marginStart="8dp"
-            android:layout_marginEnd="8dp"
-            android:gravity="center"
-            android:visibility="gone"
-            android:id="@+id/action1"
-        />
-        <ImageButton
-            style="@android:style/Widget.Material.Button.Borderless.Small"
-            android:layout_width="52dp"
-            android:layout_height="52dp"
-            android:layout_marginStart="8dp"
-            android:layout_marginEnd="8dp"
-            android:gravity="center"
-            android:visibility="gone"
-            android:id="@+id/action2"
-        />
-        <ImageButton
-            style="@android:style/Widget.Material.Button.Borderless.Small"
-            android:layout_width="48dp"
-            android:layout_height="48dp"
-            android:layout_marginStart="8dp"
-            android:layout_marginEnd="8dp"
-            android:gravity="center"
-            android:visibility="gone"
-            android:id="@+id/action3"
-        />
-        <ImageButton
-            style="@android:style/Widget.Material.Button.Borderless.Small"
-            android:layout_width="48dp"
-            android:layout_height="48dp"
-            android:layout_marginStart="8dp"
-            android:layout_marginEnd="8dp"
-            android:gravity="center"
-            android:visibility="gone"
-            android:id="@+id/action4"
-        />
-    </LinearLayout>
 </LinearLayout>
diff --git a/packages/SystemUI/res/layout/qs_media_panel_options.xml b/packages/SystemUI/res/layout/qs_media_panel_options.xml
index 0669357..46655e7 100644
--- a/packages/SystemUI/res/layout/qs_media_panel_options.xml
+++ b/packages/SystemUI/res/layout/qs_media_panel_options.xml
@@ -19,23 +19,40 @@
     android:id="@+id/qs_media_controls_options"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="horizontal"
     android:gravity="center"
-    android:layout_gravity="center"
-    android:padding="10dp"
-    >
-    <ImageButton
+    android:padding="16dp"
+    android:orientation="vertical">
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="48dp"
+        android:layout_weight="1"
+        android:minWidth="48dp"
+        android:layout_gravity="start|bottom"
+        android:gravity="bottom"
         android:id="@+id/remove"
-        android:layout_width="48dp"
-        android:layout_height="48dp"
-        android:src="@android:drawable/ic_menu_delete"
-        android:padding="8dp"
-    />
-    <ImageButton
+        android:orientation="horizontal">
+        <ImageView
+            android:layout_width="18dp"
+            android:layout_height="18dp"
+            android:id="@+id/remove_icon"
+            android:layout_marginEnd="16dp"
+            android:src="@drawable/ic_clear"/>
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:id="@+id/remove_text"
+            android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
+            android:singleLine="true"
+            android:text="@string/controls_media_close_session" />
+    </LinearLayout>
+    <TextView
         android:id="@+id/cancel"
-        android:layout_width="48dp"
+        android:layout_width="wrap_content"
         android:layout_height="48dp"
-        android:src="@android:drawable/ic_menu_revert"
-        android:padding="8dp"
-    />
+        android:layout_weight="1"
+        android:minWidth="48dp"
+        android:layout_gravity="end|bottom"
+        android:gravity="bottom"
+        android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
+        android:text="@string/cancel" />
 </LinearLayout>
diff --git a/packages/SystemUI/res/layout/status_bar_notification_section_header.xml b/packages/SystemUI/res/layout/status_bar_notification_section_header.xml
index 44c409e..b5822c8 100644
--- a/packages/SystemUI/res/layout/status_bar_notification_section_header.xml
+++ b/packages/SystemUI/res/layout/status_bar_notification_section_header.xml
@@ -35,7 +35,34 @@
         android:forceHasOverlappingRendering="false"
         android:clipChildren="false"
         >
-        <include layout="@layout/status_bar_notification_section_header_contents"/>
+        <FrameLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="start|center_vertical"
+            android:layout_weight="1">
+
+            <TextView
+                style="@style/TextAppearance.NotificationSectionHeaderButton"
+                android:id="@+id/header_label"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:forceHasOverlappingRendering="false"
+                android:text="@string/notification_section_header_gentle"
+            />
+
+        </FrameLayout>
+        <ImageView
+            android:id="@+id/btn_clear_all"
+            android:layout_width="48dp"
+            android:layout_height="48dp"
+            android:src="@drawable/status_bar_notification_section_header_clear_btn"
+            android:contentDescription="@string/accessibility_notification_section_header_gentle_clear_all"
+            android:scaleType="center"
+            android:tint="?attr/wallpaperTextColor"
+            android:tintMode="src_in"
+            android:visibility="gone"
+            android:forceHasOverlappingRendering="false"
+        />
     </LinearLayout>
 
 </com.android.systemui.statusbar.notification.stack.SectionHeaderView>
diff --git a/packages/SystemUI/res/layout/status_bar_notification_section_header_contents.xml b/packages/SystemUI/res/layout/status_bar_notification_section_header_contents.xml
deleted file mode 100644
index 3b9c44d..0000000
--- a/packages/SystemUI/res/layout/status_bar_notification_section_header_contents.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--
-  ~ Copyright (C) 2019 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<!-- Used by both status_bar_notification_header and SectionHeaderView -->
-<merge xmlns:android="http://schemas.android.com/apk/res/android" >
-    <FrameLayout
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:gravity="start|center_vertical"
-        android:layout_weight="1">
-
-        <TextView
-            style="@style/TextAppearance.NotificationSectionHeaderButton"
-            android:id="@+id/header_label"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:forceHasOverlappingRendering="false"
-            android:text="@string/notification_section_header_gentle"
-        />
-
-    </FrameLayout>
-    <ImageView
-        android:id="@+id/btn_clear_all"
-        android:layout_width="48dp"
-        android:layout_height="48dp"
-        android:src="@drawable/status_bar_notification_section_header_clear_btn"
-        android:contentDescription="@string/accessibility_notification_section_header_gentle_clear_all"
-        android:scaleType="center"
-        android:tint="?attr/wallpaperTextColor"
-        android:tintMode="src_in"
-        android:visibility="gone"
-        android:forceHasOverlappingRendering="false"
-    />
-</merge>
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 9ba891d..0fb6415 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Probeer weer skermkiekie neem"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Kan weens beperkte bergingspasie nie skermkiekie stoor nie"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Die program of jou organisasie laat nie toe dat skermkiekies geneem word nie"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Skermopnemer"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Deurlopende kennisgewing vir \'n skermopnamesessie"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Begin opname?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Kry jou aandag met klank of vibrasie."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Hou jou aandag met \'n swewende kortpad na hierdie inhoud toe."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Geen onlangse borrels nie"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Onlangse borrels en borrels wat toegemaak is, sal hier verskyn."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Hierdie kennisgewings kan nie gewysig word nie."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Hierdie groep kennisgewings kan nie hier opgestel word nie"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Instaanbediener-kennisgewing"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Toesteldienste"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Titelloos"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Tik om hierdie program te herbegin en maak volskerm oop."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Maak <xliff:g id="APP_NAME">%1$s</xliff:g> oop"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Instellings vir <xliff:g id="APP_NAME">%1$s</xliff:g>-borrels"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Laat borrels vanaf <xliff:g id="APP_NAME">%1$s</xliff:g> toe?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Bestuur"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Weier"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Laat toe"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Vra my later"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> vanaf <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> van <xliff:g id="APP_NAME">%2$s</xliff:g> en <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> meer af"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Beweeg"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Beweeg na links onder"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Beweeg na regs onder"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Maak toe"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Hou kletse prominent"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Nuwe kletse van <xliff:g id="APP_NAME">%1$s</xliff:g> af sal as borrels verskyn. Tik op \'n borrel om dit oop te maak. Sleep om dit te skuif.\n\nTik op die borrel"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tik op Bestuur om borrels vanaf hierdie program af te skakel"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Stelselnavigasie is opgedateer. Gaan na Instellings toe om veranderinge te maak."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Gaan na Instellings toe om stelselnavigasie op te dateer"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Bystandmodus"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontroles"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Kies kontroles vir kitstoegang"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Gunstelinge"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Almal"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Die lys met alle kontroles kon nie gelaai word nie."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Ander"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Voeg by Kitskontroles"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Voeg by gunstelinge"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> het voorgestel dat hierdie kontrole by jou gunstelinge gevoeg word."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN bevat letters of simbole"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verifieer toestel-PIN"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Voer PIN in"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Swiep om ander strukture te sien"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index a73d48d..56df206 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"ቅጽበታዊ ገጽ ዕይታን እንደገና ማንሳት ይሞክሩ"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"ባለው ውሱን የማከማቻ ቦታ ምክንያት ቅጽበታዊ ገጽ ዕይታን ማስቀመጥ አይችልም"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ቅጽበታዊ ገጽ እይታዎችን ማንሳት በመተግበሪያው ወይም በእርስዎ ድርጅት አይፈቀድም"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"ማያ መቅረጫ"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"ለአንድ የማያ ገጽ ቀረጻ ክፍለ-ጊዜ በመካሄድ ያለ ማሳወቂያ"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"መቅረጽ ይጀመር?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ከድምፅ ወይም ንዝረት ጋር የእርስዎን ትኩረት ይስባል።"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ለዚህ ይዞታ ከተንሳፋፊ አቋራጭ ጋር የእርስዎን ትኩረት ያቆያል።"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ምንም የቅርብ ጊዜ አረፋዎች የሉም"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"የቅርብ ጊዜ አረፋዎች እና የተሰናበቱ አረፋዎች እዚህ ይመጣሉ።"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"እነዚህ ማሳወቂያዎች ሊሻሻሉ አይችሉም።"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"የማሳወቂያዎች ይህ ቡድን እዚህ ላይ ሊዋቀር አይችልም"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ተኪ ማሳወቂያ"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"የመሣሪያ አገልግሎቶች"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"ርዕስ የለም"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"ይህን መተግበሪያ እንደገና ለማስጀመር መታ ያድርጉ እና ወደ ሙሉ ማያ ገጽ ይሂዱ።"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> ክፈት"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"ቅንብሮች ለ <xliff:g id="APP_NAME">%1$s</xliff:g> አረፋዎች"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"ከ <xliff:g id="APP_NAME">%1$s</xliff:g> አረፋዎች ይፈቀዱ?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"ያቀናብሩ"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"ከልክል"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"ፍቀድ"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"በኋላ ጠይቀኝ"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> ከ<xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> ከ <xliff:g id="APP_NAME">%2$s</xliff:g> እና <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> ተጨማሪ"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"አንቀሳቅስ"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"የግርጌውን ግራ አንቀሳቅስ"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ታችኛውን ቀኝ ያንቀሳቅሱ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"አሰናብት"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"ውይይቶችን ከፊት ያድርጓቸው"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"ከ<xliff:g id="APP_NAME">%1$s</xliff:g> የመጡ አዲስ ውይይቶች እንደ አረፋዎች ሆነው ይታያሉ። አንድ አረፋን ለመክፈት መታ ያድርጉት። እሱን ለማንቀሳቀስ ይጎትቱት።\n\nአረፋውን መታ ያድርጉት"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"የዚህ መተግበሪያ አረፋዎችን ለማጥፋት አቀናብርን መታ ያድርጉ"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"የስርዓት ዳሰሳ ተዘምኗል። ለውጦችን ለማድረግ ወደ ቅንብሮች ይሂዱ።"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"የስርዓት ዳሰሳን ለማዘመን ወደ ቅንብሮች ይሂዱ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ተጠባባቂ"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"መቆጣጠሪያዎች"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ለፈጣን መዳረሻ መቆጣጠሪያዎችን ይምረጡ"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ተወዳጆች"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ሁሉም"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"የሁሉም መቆጣጠሪያዎች ዝርዝር ሊጫን አልተቻለም።"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"ሌላ"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"ወደ ፈጣን መቆጣጠሪያዎች ያክሉ"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"ወደ ተወዳጆች አክል"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> ይህን ቁጥጥር ወደ ተወዳጆችዎ እንዲታከል ሐሳብ ጠቁሟል።"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"ፒን ፊደሎችን ወይም ምልክቶችን ይይዛል"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"የመሣሪያ ፒን ያረጋግጡ"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"ፒን ያስገቡ"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"ሌሎች መዋቅሮችን ለማየት በጣት ይጥረጉ"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 37f6911..e0c945f 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"جرّب أخذ لقطة الشاشة مرة أخرى"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"يتعذر حفظ لقطة الشاشة لأن مساحة التخزين المتاحة محدودة."</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"يحظر التطبيق أو تحظر مؤسستك التقاط لقطات شاشة"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"مسجّل الشاشة"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"إشعار مستمر لجلسة تسجيل شاشة"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"هل تريد بدء التسجيل؟"</string>
@@ -707,7 +711,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"يلفت هذا الإشعار انتباهك باستخدام الصوت والاهتزاز."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"يلفِت هذا الإشعار انتباهك لهذا المحتوى باستخدام اختصار عائم."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ليس هناك فقاعات حديثة"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"ستظهر هنا أحدث الفقاعات والفقاعات التي تم إغلاقها."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"يتعذّر تعديل هذه الإشعارات."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"يتعذّر ضبط مجموعة الإشعارات هذه هنا."</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"إشعار مستند إلى خادم وكيل"</string>
@@ -985,13 +990,8 @@
     <string name="device_services" msgid="1549944177856658705">"خدمات الأجهزة"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"بلا عنوان"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"انقر لإعادة تشغيل هذا التطبيق والانتقال إلى وضع ملء الشاشة."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"فتح <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"إعداد الفقاعات التفسيرية على <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"هل تريد السماح بالفقاعات التفسيرية من <xliff:g id="APP_NAME">%1$s</xliff:g>؟"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"إدارة"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"رفض"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"سماح"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"اسألني لاحقًا"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> من <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> من <xliff:g id="APP_NAME">%2$s</xliff:g> و<xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> أيضًا"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"نقل"</string>
@@ -1000,9 +1000,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"نقل إلى أسفل يمين الشاشة"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"نقل إلى أسفل اليسار"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"تجاهل"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"الاحتفاظ بالمحادثات في المقدمة"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"ستظهر المحادثات الجديدة من <xliff:g id="APP_NAME">%1$s</xliff:g> كفقاقيع. انقر على فقعة لفتحها. اسحبها لنقلها.\n\nانقر على الفقاعة."</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"انقر على \"إدارة\" لإيقاف الفقاعات من هذا التطبيق."</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"تم تحديث التنقل داخل النظام. لإجراء التغييرات، يُرجى الانتقال إلى \"الإعدادات\"."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"الانتقال إلى \"الإعدادات\" لتعديل التنقل داخل النظام"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"وضع الاستعداد"</string>
@@ -1022,14 +1030,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"عناصر التحكّم"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"اختيار عناصر التحكّم للوصول السريع"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"المفضّلة"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"الكل"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"تعذّر تحميل قائمة كل عناصر التحكّم."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"غير ذلك"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"إضافة إلى \"عناصر التحكم السريعة\""</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"إضافة إلى الإعدادات المفضّلة"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"اقترح تطبيق <xliff:g id="APP">%s</xliff:g> إضافة عنصر التحكّم هذا إلى الإعدادات المفضّلة."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"يشتمل رقم التعريف الشخصي على أحرف أو رموز."</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"التحقّق من رقم التعريف الشخصي للجهاز"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"إدخال رقم التعريف الشخصي"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"مرّر سريعًا لعرض البُنى الأخرى."</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-as/strings.xml b/packages/SystemUI/res/values-as/strings.xml
index 2dc93cd..b2934a4 100644
--- a/packages/SystemUI/res/values-as/strings.xml
+++ b/packages/SystemUI/res/values-as/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"স্ক্ৰীণশ্বট আকৌ ল\'বলৈ চেষ্টা কৰক"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"সঞ্চয়াগাৰত সীমিত খালী ঠাই থকাৰ বাবে স্ক্ৰীণশ্বট ছেভ কৰিব পৰা নগ\'ল"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"এপটোৱে বা আপোনাৰ প্ৰতিষ্ঠানে স্ক্ৰীণশ্বট ল\'বলৈ অনুমতি নিদিয়ে"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"স্ক্ৰীন ৰেকৰ্ডাৰ"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"স্ক্রীণ ৰেকৰ্ডিং ছেশ্বন চলি থকা সময়ত পোৱা জাননী"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"ৰেকৰ্ড কৰা আৰম্ভ কৰিবনে?"</string>
@@ -558,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"<xliff:g id="ORGANIZATION">%1$s</xliff:g>য়ে আপোনাৰ কৰ্মস্থানৰ প্ৰ\'ফাইল পৰিচালনা কৰে। এই প্ৰ\'ফাইলটো <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>ৰে সংযুক্ত হৈ আছে যি ইমেইল, এপ্ আৰু ৱেবছাইটসমূহকে ধৰি আপোনাৰ কর্মস্থানৰ নেটৱর্কৰ কাৰ্যকলাপ নিৰীক্ষণ কৰিব পাৰিব। \n\nআপুনি <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>ৰ সৈতেও সংযুক্ত হৈ আছে, যি আপোনাৰ ব্য়ক্তিগত নেটৱৰ্কৰ কাৰ্যকলাপ নিৰীক্ষণ কৰিব পাৰে।"</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"TrustAgentএ আনলক কৰি ৰাখিছে"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"আপুনি নিজে আনলক নকৰালৈকে ডিভাইচ লক হৈ থাকিব"</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"জাননী ক্ষিপ্ৰতাৰে লাভ কৰক"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"আপুনি আনলক কৰাৰ পূৰ্বে তেওঁলোকক চাওক"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"নালাগে, ধন্যবাদ"</string>
@@ -696,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ধ্বনি অথবা কম্পনৰ জৰিয়তে আপোনাৰ মনোযোগ আকৰ্ষণ কৰে।"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"উপঙি থকা এটা শ্বৰ্টকাটৰ জৰিয়তে এই সমলখিনিৰ প্ৰতি আপোনাক মনোযোগী কৰি ৰাখে।"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"কোনো শেহতীয়া বাবল নাই"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"শেহতীয়া বাবলসমূহ আৰু অগ্ৰাহ্য কৰা বাবলসমূহ ইয়াত প্ৰদর্শিত হ\'ব।"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"এই জাননীসমূহ সংশোধন কৰিব নোৱাৰি।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"এই ধৰণৰ জাননীবোৰ ইয়াত কনফিগাৰ কৰিব পৰা নাযায়"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"প্ৰক্সি হিচাপে পঠিওৱা জাননী"</string>
@@ -966,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"ডিভাইচ সেৱা"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"কোনো শিৰোনাম নাই"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"এপ্‌টো ৰিষ্টাৰ্ট কৰক আৰু পূৰ্ণ স্ক্ৰীণ ব্যৱহাৰ কৰক।"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> খোলক"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g>ৰ বাবলৰ ছেটিংসমূহ"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g>ৰ বাবলসমূহক অনুমতি দিয়ক?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"পৰিচালনা কৰক"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"অস্বীকাৰ কৰক"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"অনুমতি দিয়ক"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"মোক পিছত সুধিব"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g>ৰ পৰা <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> আৰু<xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>টাৰ পৰা <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"আঁতৰাওক"</string>
@@ -981,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"বুটামটো বাওঁফালে নিয়ক"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"তলৰ সোঁফালে নিয়ক"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"অগ্ৰাহ্য কৰক"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"চাটসমূহ সন্মুখত ৰাখক"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g>ৰ নতুন চাটসমূহ বাবল হিচাপে দেখা পোৱা যাব। এইটো খুলিবলৈ এটা বাবলত টিপক। এইটোক আঁতৰাবলৈ টানি আনক।\n\nবাবলটোত টিপক"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"এই এপ্‌টোৰ পৰা বাবল অফ কৰিবলৈ পৰিচালনা কৰকত টিপক"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ছিষ্টেম নেভিগেশ্বন আপডে’ট কৰা হ’ল। সলনি কৰিবলৈ ছেটিংসমূহ-লৈ যাওক।"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ছিষ্টেম নেভিগেশ্বন আপডে’ট কৰিবলৈ ছেটিংসমূহ-লৈ যাওক"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ষ্টেণ্ডবাই"</string>
@@ -999,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"নিয়ন্ত্ৰণসমূহ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ক্ষিপ্ৰ এক্সেছৰ বাবে নিয়ন্ত্ৰণসমূহ বাছনি কৰক"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"প্ৰিয়সমূহ"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"সকলো"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"নিয়ন্ত্ৰণসমূহৰ সম্পূর্ণ সূচীখন ল’ড কৰিব পৰা নগ’ল।"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"অন্য"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"ক্ষিপ্ৰ নিয়ন্ত্ৰণসমূহত যোগ কৰক"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"প্ৰিয়সমূহত যোগ কৰক"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g>এ এই নিয়ন্ত্ৰণটো আপোনাৰ প্ৰিয়সমূহত যোগ কৰাৰ পৰামৰ্শ দিছে।"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"পিনত বৰ্ণ অথবা প্ৰতীকসমূহ থাকে"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"ডিভাইচৰ পিন সত্যাপন কৰক"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"পিন দিয়ক"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"আন সজ্জাসমূহ চাবলৈ ছোৱাইপ কৰক"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml
index f116289..66fbc2d 100644
--- a/packages/SystemUI/res/values-az/strings.xml
+++ b/packages/SystemUI/res/values-az/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Skrinşotu yenidən çəkin"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Yaddaş ehtiyatının az olması səbəbindən skrinşotu yadda saxlamaq olmur"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Skrinşot çəkməyə tətbiq və ya təşkilat tərəfindən icazə verilmir"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Ekran Yazıcısı"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Ekranın video çəkimi ərzində silinməyən bildiriş"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Yazmağa başlanılsın?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Səs və ya vibrasiya ilə diqqətinizi çəkir."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Bu məzmuna üzən qısayol ilə diqqətinizi cəlb edir."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Qabarcıq yoxdur"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Son qabaqcıqlar və buraxılmış qabarcıqlar burada görünəcək."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirişlər dəyişdirilə bilməz."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Bu bildiriş qrupunu burada konfiqurasiya etmək olmaz"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proksi bildirişi"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Cihaz Xidmətləri"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Başlıq yoxdur"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Bu tətbiqi sıfırlayaraq tam ekrana keçmək üçün klikləyin."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> tətbiqini açın"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> qabarcıqları üçün ayarlar"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> qabarcıqlarına icazə verilsin?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"İdarə edin"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"İmtina edin"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"İcazə verin"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Sonra soruşun"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> tətbiqindən <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> tətbiqindən <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> və daha <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> qabarcıq"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Hərəkət etdirin"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Aşağıya sola köçürün"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Aşağıya sağa köçürün"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Kənarlaşdırın"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Söhbətləri öndə saxlayın"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Yeni <xliff:g id="APP_NAME">%1$s</xliff:g> söhbətləri qabarcıq şəklində görünəcək. Açmaq üçün qabarcığa toxunun. Hərəkət etdirmək üçün onu sürüşdürün.\n\nQabarcığa toxunun"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Bu tətbiqdə qabarcıqları deaktiv etmək üçün \"İdarə edin\" seçiminə toxunun"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Sistem naviqasiyası yeniləndi. Dəyişiklik etmək üçün Ayarlara daxil olun."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Sistem naviqasiyasını yeniləmək üçün Ayarlara keçin"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Gözləmə rejimi"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Nizamlayıcılar"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Sürətli Giriş üçün nizamlayıcıları seçin"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Sevimlilər"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Hamısı"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Bütün nizamlayıcıların siyahısı yüklənmədi."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Digər"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Cəld Nizamlayıcılara əlavə edin"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Sevimlilərə əlavə edin"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> sevimlilərə əlavə etmək üçün bu nizamlayıcını təklif edib."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN hərflər və ya simvollar ehtiva edir"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Cihazın PIN kodunu doğrulayın"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"PIN daxil edin"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Digər strukturları görmək üçün çəkin"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index ac8d937..5839f73 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Probajte da ponovo napravite snimak ekrana"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Čuvanje snimka ekrana nije uspelo zbog ograničenog memorijskog prostora"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Aplikacija ili organizacija ne dozvoljavaju pravljenje snimaka ekrana"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Snimač ekrana"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Obaveštenje o sesiji snimanja ekrana je aktivno"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Želite da započnete snimanje?"</string>
@@ -698,7 +702,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Privlači vam pažnju pomoću zvuka ili vibracije."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Privlači vam pažnju pomoću plutajuće prečice do ovog sadržaja."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nema nedavnih oblačića"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Ovde se prikazuju nedavni i odbačeni oblačići."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ova obaveštenja ne mogu da se menjaju."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ova grupa obaveštenja ne može da se konfiguriše ovde"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Obaveštenje preko proksija"</string>
@@ -970,13 +975,8 @@
     <string name="device_services" msgid="1549944177856658705">"Usluge za uređaje"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Bez naslova"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Dodirnite da biste restartovali aplikaciju i prešli u režim celog ekrana."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Otvorite <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Podešavanja za <xliff:g id="APP_NAME">%1$s</xliff:g> oblačiće"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Želite li da omogućite oblačiće iz aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Upravljajte"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Odbij"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Dozvoli"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Pitaj me kasnije"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> iz aplikacije <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> iz aplikacije <xliff:g id="APP_NAME">%2$s</xliff:g> i još <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Premesti"</string>
@@ -985,9 +985,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Premesti dole levo"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Premesti dole desno"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Odbaci"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Neka poruke ćaskanja ostanu u prvom planu"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Nove poruke ćaskanja iz aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g> će se prikazati kao oblačići. Dodirnite oblačić da biste ga otvorili. Prevucite da biste ga premestili.\n\nDodirnite oblačić"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Dodirnite Upravljajte da biste isključili oblačiće iz ove aplikacije"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigacija sistema je ažurirana. Da biste uneli izmene, idite u Podešavanja."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Idite u Podešavanja da biste ažurirali navigaciju sistema"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje pripravnosti"</string>
@@ -1004,14 +1012,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrole"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Odaberite kontrole za brz pristup"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Omiljeno"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Sve"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Učitavanje liste svih kontrola nije uspelo."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Drugo"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Dodajte u brze kontrole"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Dodajte u omiljene"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> predlaže da dodate ovu kontrolu u omiljene."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN sadrži slova ili simbole"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Potvrdite PIN uređaja"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Unesite PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Prevucite da biste videli druge strukture"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml
index 29d76a6..b71e87e 100644
--- a/packages/SystemUI/res/values-be/strings.xml
+++ b/packages/SystemUI/res/values-be/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Паспрабуйце зрабіць здымак экрана яшчэ раз"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Немагчыма захаваць здымак экрана, бо мала месца ў сховішчы"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Рабіць здымкі экрана не дазваляе праграма ці ваша арганізацыя"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Праграма запісу экрана"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Бягучае апавяшчэнне для сеанса запісу экрана"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Пачаць запіс?"</string>
@@ -703,7 +707,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Прыцягвае ўвагу гукам і вібрацыяй."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Прыцягвае ўвагу да гэтага змесціва ўсплывальнай кнопкай."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Няма нядаўніх усплывальных апавяшчэнняў"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Нядаўнія і адхіленыя ўсплывальныя апавяшчэнні будуць паказаны тут."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Гэтыя апавяшчэнні нельга змяніць."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Тут канфігурыраваць гэту групу апавяшчэнняў забаронена"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Праксіраванае апавяшчэнне"</string>
@@ -977,13 +982,8 @@
     <string name="device_services" msgid="1549944177856658705">"Сэрвісы прылады"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Без назвы"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Націсніце, каб перазапусціць гэту праграму і перайсці ў поўнаэкранны рэжым."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Адкрыць праграму \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Налады дыялогаў у праграме \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Дазволіць дыялогі з праграмы \"<xliff:g id="APP_NAME">%1$s</xliff:g>\"?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Кіраваць"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Адмовіць"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Дазволіць"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Спытаць пазней"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> ад праграмы \"<xliff:g id="APP_NAME">%2$s</xliff:g>\""</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> ад праграмы \"<xliff:g id="APP_NAME">%2$s</xliff:g>\" і яшчэ <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Перамясціць"</string>
@@ -992,9 +992,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Перамясціць лявей і ніжэй"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Перамясціць правей і ніжэй"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Адхіліць"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Пакідаць чаты на экране"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Новыя чаты з праграмы \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" будуць паказвацца ў выглядзе ўсплывальных апавяшчэнняў. Каб адкрыць усплывальнае апавяшчэнне, націсніце на яго. Каб перамясціць – перацягніце.\n\nНацісніце на ўсплывальнае апавяшчэнне"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Каб выключыць усплывальная апавяшчэнні з гэтай праграмы, націсніце \"Кіраваць\""</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Навігацыя ў сістэме абноўлена. Каб унесці змяненні, перайдзіце ў Налады."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Перайдзіце ў Налады, каб абнавіць параметры навігацыі ў сістэме"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Рэжым чакання"</string>
@@ -1012,14 +1020,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Сродкі кіравання"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Выберыце сродкі кіравання для хуткага доступу"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Абраныя"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Усе"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Не ўдалося загрузіць спіс усіх сродкаў кіравання."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Іншае"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Дадаць у Хуткае кіраванне"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Дадаць у абраныя"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> прапануе дадаць гэты элемент кіравання ў вашы абраныя."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN-код складаецца з літар або знакаў"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Спраўдзіць PIN-код прылады"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Увядзіце PIN-код"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Прагартайце, каб убачыць іншыя структуры"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index efb5b07..9a6d9c6 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Опитайте да направите екранна снимка отново"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Екранната снимка не може да се запази поради ограничено място в хранилището"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Правенето на екранни снимки не е разрешено от приложението или организацията ви"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Записване на екрана"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Текущо известие за сесия за записване на екрана"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Да се стартира ли записът?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Привлича вниманието ви със звук или вибриране."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Задържа вниманието ви посредством плаващ пряк път към това съдържание."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Няма скорошни балончета"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Скорошните и отхвърлените балончета ще се показват тук."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Тези известия не могат да бъдат променяни."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Тази група от известия не може да бъде конфигурирана тук"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Известие, получено чрез делегиране"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Услуги за устройството"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Няма заглавие"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Докоснете, за да рестартирате това приложение в режим на цял екран."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Отваряне на „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Настройки за балончетата за <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Да се разрешат ли балончетата от <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Управление"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Отказ"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Разрешаване"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Попитайте ме по-късно"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> от <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"„<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>“ от<xliff:g id="APP_NAME">%2$s</xliff:g> и още <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Преместване"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Преместване долу вляво"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Преместване долу вдясно"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Отхвърляне"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Задръжте чатовете на екрана"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Новите чатове от <xliff:g id="APP_NAME">%1$s</xliff:g> ще се показват като балончета. Докоснете някое, за да го отворите. Плъзнете, за да го преместите.\n\nДокоснете балончето"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Докоснете „Управление“, за да изключите балончетата от това приложение"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Режимът за навигиране в системата е актуализиран. За да извършите промени, отворете настройките."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Отворете настройките, за да актуализирате режима за навигиране в системата"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Режим на готовност"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Контроли"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Изберете контроли за бърз достъп"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Любими"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Всички"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Списъкът с всички контроли не бе зареден."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Друго"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Добавяне към бързите контроли"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Добавяне в любимите"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> предложи тази контрола да се добави към любимите ви."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"ПИН кодът съдържа букви или символи"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Потвърждаване на ПИН кода"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Въведете ПИН кода"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Прекарайте пръст, за да видите други елементи"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml
index 7c0701f..437abe8 100644
--- a/packages/SystemUI/res/values-bn/strings.xml
+++ b/packages/SystemUI/res/values-bn/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"আবার স্ক্রিনশট নেওয়ার চেষ্টা করুন"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"বেশি জায়গা নেই তাই স্ক্রিনশটটি সেভ করা যাবে না৷"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"এই অ্যাপ বা আপনার প্রতিষ্ঠান স্ক্রিনশট নেওয়ার অনুমতি দেয়নি"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"স্ক্রিন রেকর্ডার"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"স্ক্রিন রেকর্ডিং সেশন চলার বিজ্ঞপ্তি"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"রেকর্ডিং শুরু করবেন?"</string>
@@ -558,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> আপনার কর্মস্থলের প্রোফাইল পরিচালনা করে। প্রোফাইলটি <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> এর সাথে সংযুক্ত, যেটি ইমেল অ্যাপ, ও ওয়েবসাইট সহ আপনার কর্মস্থলের নেটওয়ার্ক অ্যাক্টিভিটির উপরে নজর রাখতে পারে।\n\n এ ছাড়াও আপনি <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> এর সাথে সংযুক্ত, যেটি আপনার ব্যক্তিগত নেটওয়ার্কে নজর রাখে।"</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"TrustAgent দিয়ে আনলক করে রাখা হয়েছে"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"আপনি নিজে আনলক না করা পর্যন্ত ডিভাইসটি লক হয়ে থাকবে"</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"বিজ্ঞপ্তিগুলি আরও দ্রুত পান"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"আপনি আনলক করার আগে ওগুলো দেখুন"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"না থাক"</string>
@@ -696,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"সাউন্ড বা ভাইব্রেশনের সাহায্যে দৃষ্টি আকর্ষণ করে।"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ফ্লোটিং শর্টকাট ব্যবহার করে এই কন্টেন্টে আপনার দৃষ্টি আকর্ষণ করে রাখে।"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"কোনও সাম্প্রতিক বাবল নেই"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"সাম্প্রতিক বাবল এবং বাতিল করা বাবল এখানে দেখানো হবে।"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"এই বিজ্ঞপ্তিগুলি পরিবর্তন করা যাবে না।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"এই সমস্ত বিজ্ঞপ্তিকে এখানে কনফিগার করা যাবে না"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"প্রক্সি করা বিজ্ঞপ্তি"</string>
@@ -966,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"ডিভাইস সংক্রান্ত পরিষেবা"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"কোনও শীর্ষক নেই"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"এই অ্যাপ রিস্টার্ট করতে ট্যাপ করুন ও ফুল-স্ক্রিন ব্যবহার করুন।"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> খুলুন"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> বাবলের জন্য সেটিংস"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> অ্যাপের বাবল চালু করবেন?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"ম্যানেজ করা"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"খারিজ করুন"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"অনুমতি দিন"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"আমাকে পরে জিজ্ঞাসা করুন"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> অ্যাপ থেকে <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> অ্যাপ এবং আরও <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>টি থেকে <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"সরান"</string>
@@ -981,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"নিচে বাঁদিকে সরান"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"নিচে ডান দিকে সরান"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"খারিজ করুন"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"চ্যাটগুলি সামনে রাখুন"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g>-এর তরফ থেকে নতুন চ্যাট বাবল হিসেবে দেখানো হবে। এটি খোলার জন্য বাবল ট্যাপ করুন। এটি সরানোর জন্য টেনে আনুন।\n\nবাবল ট্যাপ করুন"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"এই অ্যাপ থেকে বাবল বন্ধ করতে ম্যানেজ করুন বিকল্প ট্যাপ করুন"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"সিস্টেম নেভিগেশন আপডেট হয়েছে। পরিবর্তন করার জন্য সেটিংসে যান।"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"সিস্টেম নেভিগেশন আপডেট করতে সেটিংসে যান"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"স্ট্যান্ডবাই"</string>
@@ -999,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"নিয়ন্ত্রণ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"দ্রুত অ্যাক্সেস করার জন্য কন্ট্রোল বেছে নিন"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"পছন্দসই"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"সব"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"সব কন্ট্রোলের তালিকা লোড করা যায়নি।"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"অন্য"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"কুইক কন্ট্রোলে যোগ করুন"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"পছন্দসইতে যোগ করুন"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"আপনার পছন্দসইতে যোগ করতে <xliff:g id="APP">%s</xliff:g> এই কন্ট্রোল সাজেস্ট করেছে।"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"পিন-এ অক্ষর বা চিহ্ন রয়েছে"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"ডিভাইসের পিন যাচাই করান"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"পিন লিখুন"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"অন্য স্ট্রাকচার দেখতে সোয়াইপ করুন"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml
index ce6fe52..655adb6 100644
--- a/packages/SystemUI/res/values-bs/strings.xml
+++ b/packages/SystemUI/res/values-bs/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Pokušajte ponovo snimiti ekran"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Snimak ekrana se ne može sačuvati zbog manjka prostora za pohranu"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Ova aplikacija ili vaša organizacija ne dozvoljavaju snimanje ekrana"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Snimač ekrana"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Obavještenje za sesiju snimanja ekrana je u toku"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Započeti snimanje?"</string>
@@ -700,7 +704,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Privlači vašu pažnju pomoću zvuka ili vibracije."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Privlači vašu pažnju pomoću plutajuće prečice do ovog sadržaja."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nema nedavnih oblačića"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Nedavni oblačići i odbačeni oblačići će se pojaviti ovdje."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ta obavještenja se ne mogu izmijeniti."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ovdje nije moguće konfigurirati ovu grupu obavještenja"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Obavještenje preko proksi servera"</string>
@@ -972,13 +977,8 @@
     <string name="device_services" msgid="1549944177856658705">"Usluge uređaja"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Bez naslova"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Dodirnite da ponovo pokrenete ovu aplikaciju i aktivirate prikaz preko cijelog ekrana."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Otvori aplikaciju <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Postavke za oblačiće aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Dozvoliti oblačiće iz aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Upravljaj"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Odbij"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Dozvoli"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Pitaj me kasnije"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> od aplikacije <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"Obavještenje <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> aplikacije <xliff:g id="APP_NAME">%2$s</xliff:g> i još <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Pomjeri"</string>
@@ -987,9 +987,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Pomjeri dolje lijevo"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Pomjerite dolje desno"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Odbaci"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Zadržite chatove u prvom planu"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Novi chatovi iz aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g> će se prikazati u oblačićima. Dodirnite oblačić da ga otvorite. Prevucite da ga premjestite.\n\nDodirnite oblačić"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Dodirnite Upravljaj da isključite oblačiće iz ove aplikacije"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigiranje sistemom je ažurirano. Da izvršite promjene, idite u Postavke."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Idite u Postavke da ažurirate navigiranje sistemom"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje mirovanja"</string>
@@ -1006,14 +1014,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrole"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Odaberite kontrole za brzi pristup"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Omiljeno"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Sve"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Učitavanje liste svih kontrola nije uspjelo."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Drugo"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Dodajte u Brze kontrole"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Dodajte u omiljeno"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"Aplikacija <xliff:g id="APP">%s</xliff:g> je predložila da se ova kontrola doda u omiljeno."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN sadrži slova ili simbole"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Potvrdite PIN uređaja"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Unesite PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Prevucite da vidite druge strukture"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index f6f89fd..4bb9123 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Prova de tornar a fer una captura de pantalla"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"La captura de pantalla no es pot desar perquè no hi ha prou espai d\'emmagatzematge"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"L\'aplicació o la teva organització no permeten fer captures de pantalla"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Gravadora de pantalla"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notificació en curs d\'una sessió de gravació de la pantalla"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Vols iniciar la gravació?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Atrau la teva atenció amb so i vibració."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Atrau la teva atenció amb una drecera flotant a aquest contingut."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No hi ha bombolles recents"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Les bombolles recents i les ignorades es mostraran aquí."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Aquestes notificacions no es poden modificar."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Aquest grup de notificacions no es pot configurar aquí"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificació mitjançant aplicació intermediària"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Serveis per a dispositius"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Sense títol"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Toca per reiniciar l\'aplicació i passar a pantalla completa."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Obre <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Configuració de les bombolles: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Vols permetre les bombolles de l\'aplicació <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Gestiona"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Denega"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Permet"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Pregunta-m\'ho més tard"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de: <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> (<xliff:g id="APP_NAME">%2$s</xliff:g>) i <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> més"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Mou"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mou a baix a l\'esquerra"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mou a baix a la dreta"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Omet"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Mantén els xats a la vista"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Els xats nous de l\'aplicació <xliff:g id="APP_NAME">%1$s</xliff:g> es mostraran en forma de bombolles. Toca una bombolla per obrir-la. Arrossega-la per moure-la.\n\nToca la bombolla"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Toca Gestiona per desactivar les bombolles d\'aquesta aplicació"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"S\'ha actualitzat el sistema de navegació. Per fer canvis, ves a Configuració."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Ves a Configuració per actualitzar el sistema de navegació"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"En espera"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controls"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Tria controls per a l\'accés ràpid"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Preferits"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tots"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"No s\'ha pogut carregar la llista completa de controls."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Altres"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Afegeix als controls ràpids"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Afegeix als preferits"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> ha suggerit aquest control perquè l\'afegeixis als preferits."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"El PIN conté lletres o símbols"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verifica el PIN del dispositiu"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Introdueix el PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Llisca per veure altres estructures"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index 63290521..3b10898 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Zkuste snímek pořídit znovu"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Snímek obrazovky kvůli nedostatku místa v úložišti nelze uložit"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Aplikace nebo organizace zakazuje pořizování snímků obrazovky"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Nahrávání obrazovky"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Trvalé oznámení o relaci nahrávání"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Spustit nahrávání?"</string>
@@ -701,7 +705,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Upozorňuje vás pomocí zvuku a vibrací."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Přitahuje pozornost pomocí plovoucí zkratky k tomuto obsahu."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Žádné nedávné bubliny"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Zde se budou zobrazovat nedávné bubliny a zavřené bubliny."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Tato oznámení nelze upravit."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Tuto skupinu oznámení tady nelze nakonfigurovat"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Zprostředkované oznámení"</string>
@@ -975,13 +980,8 @@
     <string name="device_services" msgid="1549944177856658705">"Služby zařízení"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Bez názvu"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Klepnutím aplikaci restartujete a přejdete na režim celé obrazovky"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Otevřít <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Nastavení bublin aplikace <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Povolit bubliny z aplikace <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Spravovat"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Zakázat"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Povolit"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Zeptat se později"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"Oznámení <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> z aplikace <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> z aplikace <xliff:g id="APP_NAME">%2$s</xliff:g> a dalších (<xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>)"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Přesunout"</string>
@@ -990,9 +990,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Přesunout vlevo dolů"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Přesunout vpravo dolů"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Zavřít"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Zobrazovat chaty v popředí"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Nové chaty z aplikace <xliff:g id="APP_NAME">%1$s</xliff:g> se budou zobrazovat jako bubliny. Bublinu otevřete klepnutím. Přetažením ji přemístíte.\n\nKlepnout na bublinu"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Bubliny pro tuto aplikaci můžete vypnout klepnutím na Spravovat"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systémová navigace byla aktualizována. Chcete-li provést změny, přejděte do Nastavení."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Přejděte do Nastavení a aktualizujte systémovou navigaci"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Pohotovostní režim"</string>
@@ -1010,14 +1018,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Ovládací prvky"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Vyberte ovládací prvky pro rychlý přístup"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Oblíbené"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Vše"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Načtení seznamu všech ovládacích prvků se nezdařilo."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Jiné"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Přidat do rychlých ovládacích prvků"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Přidat k oblíbeným"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"Aplikace <xliff:g id="APP">%s</xliff:g> navrhuje přidat tento ovládací prvek do oblíbených."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Kód PIN obsahuje písmena nebo symboly"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Ověřte PIN zařízení"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Zadejte PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Přejetím zobrazíte další budovy"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index bb2f57a..d46c050 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Prøv at tage et screenshot igen"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Screenshottet kan ikke gemmes, fordi der er begrænset lagerplads"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Appen eller din organisation tillader ikke, at du tager screenshots"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Skærmoptager"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Konstant notifikation om skærmoptagelse"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Vil du starte optagelse?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Fanger din opmærksomhed med lyd eller vibration."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Fastholder din opmærksomhed med en svævende genvej til indholdet."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Ingen seneste bobler"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Nye bobler og afviste bobler vises her."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Disse notifikationer kan ikke redigeres."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Du kan ikke konfigurere denne gruppe notifikationer her"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxyforbundet notifikation"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Enhedstjenester"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Ingen titel"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Tryk for at genstarte denne app, og gå til fuld skærm."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Åbn <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Indstillinger for <xliff:g id="APP_NAME">%1$s</xliff:g>-bobler"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Vil du tillade bobler fra <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Administrer"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Afvis"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Tillad"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Spørg mig senere"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> fra <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> fra <xliff:g id="APP_NAME">%2$s</xliff:g> og <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> andre"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Flyt"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Flyt ned til venstre"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Flyt ned til højre"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Afvis"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Hold chatsamtaler i forgrunden"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Nye chatsamtaler fra <xliff:g id="APP_NAME">%1$s</xliff:g> vises som bobler. Tryk på en boble for at åbne samtalen. Træk boblen for at flytte den.\n\nTryk på boblen"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tryk på Administrer for at deaktivere bobler fra denne app"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systemnavigationen blev opdateret. Gå til Indstillinger for at foretage ændringer."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Gå til Indstillinger for at opdatere systemnavigationen"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Betjeningselementer"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Vælg betjeningselementer til hurtig adgang"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritter"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Alle"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Listen over styringselementer kunne ikke indlæses."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Andre"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Føj til Hurtig betjening"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Føj til favoritter"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> har foreslået, at du føjer denne funktion til dine favoritter."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Pinkoden indeholder bogstaver eller symboler"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Bekræft enhedspinkode"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Angiv pinkode"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Stryg for at se andre strukturer"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index bfbc735..9feae05 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Versuche noch einmal, den Screenshot zu erstellen"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Speichern des Screenshots aufgrund von zu wenig Speicher nicht möglich"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Die App oder deine Organisation lässt das Erstellen von Screenshots nicht zu"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Bildschirmaufzeichnung"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Fortlaufende Benachrichtigung für eine Bildschirmaufzeichnung"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Aufzeichnung starten?"</string>
@@ -221,13 +225,9 @@
     <string name="accessibility_no_sims" msgid="5711270400476534667">"Keine SIM-Karte"</string>
     <string name="carrier_network_change_mode" msgid="5174141476991149918">"Mobilfunknetzwerk wird gewechselt"</string>
     <string name="accessibility_battery_details" msgid="6184390274150865789">"Akkudetails öffnen"</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for accessibility_battery_level (5143715405241138822) -->
-    <skip />
+    <string name="accessibility_battery_level" msgid="5143715405241138822">"Akku bei <xliff:g id="NUMBER">%d</xliff:g> Prozent."</string>
     <string name="accessibility_battery_level_with_estimate" msgid="4843119982547599452">"Akku bei <xliff:g id="PERCENTAGE">%1$s</xliff:g> Prozent. Bei deinem Nutzungsmuster hast du noch Strom für etwa <xliff:g id="TIME">%2$s</xliff:g>"</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for accessibility_battery_level_charging (8892191177774027364) -->
-    <skip />
+    <string name="accessibility_battery_level_charging" msgid="8892191177774027364">"Akku wird aufgeladen, <xliff:g id="BATTERY_PERCENTAGE">%d</xliff:g> Prozent."</string>
     <string name="accessibility_settings_button" msgid="2197034218538913880">"Systemeinstellungen"</string>
     <string name="accessibility_notifications_button" msgid="3960913924189228831">"Benachrichtigungen"</string>
     <string name="accessibility_overflow_action" msgid="8555835828182509104">"Alle Benachrichtigungen ansehen"</string>
@@ -562,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"Dein Arbeitsprofil wird von <xliff:g id="ORGANIZATION">%1$s</xliff:g> verwaltet. Das Profil ist mit <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> verknüpft. Diese App kann deine Netzwerkaktivitäten überwachen, einschließlich E-Mails, Apps und Websites.\n\nDu bist auch mit <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> verbunden, die deine persönlichen Netzwerkaktivitäten überwachen kann."</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"Durch TrustAgent entsperrt"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"Das Gerät bleibt gesperrt, bis du es manuell entsperrst."</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"Benachrichtigungen schneller erhalten"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"Vor dem Entsperren anzeigen"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"Nein danke"</string>
@@ -700,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Benachrichtigungen werden mit einem Ton oder einer Vibration angekündigt."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Du wirst mit einer unverankerten Verknüpfung darauf aufmerksam gemacht."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Keine kürzlich geschlossenen Bubbles"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Hier werden aktuelle und geschlossene Bubbles angezeigt."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Diese Benachrichtigungen können nicht geändert werden."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Die Benachrichtigungsgruppe kann hier nicht konfiguriert werden"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Weitergeleitete Benachrichtigung"</string>
@@ -970,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Gerätedienste"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Kein Titel"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Tippe, um die App im Vollbildmodus neu zu starten."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> öffnen"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Einstellungen für <xliff:g id="APP_NAME">%1$s</xliff:g>-Bubbles"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g>-Bubbles zulassen?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Verwalten"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Ablehnen"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Zulassen"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Später fragen"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> von <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> aus <xliff:g id="APP_NAME">%2$s</xliff:g> und <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> weiteren"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Verschieben"</string>
@@ -985,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Nach unten links verschieben"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Nach unten rechts verschieben"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Schließen"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Chats im Vordergrund behalten"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Neue <xliff:g id="APP_NAME">%1$s</xliff:g>-Chats werden als Bubbles angezeigt. Wenn du eine Bubble öffnen möchtest, tippe sie an. Wenn du sie verschieben möchtest, ziehe an ihr.\n\nTippe die Bubble an."</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tippe auf \"Verwalten\", um Bubbles für diese App zu deaktivieren"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systemsteuerungseinstellungen wurden angepasst. Änderungen kannst du in den Einstellungen vornehmen."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Gehe zu den Einstellungen, um die Systemsteuerung anzupassen"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -1003,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Steuerelemente"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Steuerelemente für den Schnellzugriff auswählen"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoriten"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Alle"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Fehler beim Laden der Liste mit Steuerelementen."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Andere"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Zu Schnellsteuerung hinzufügen"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Zu Favoriten hinzufügen"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"\"<xliff:g id="APP">%s</xliff:g>\" hat vorgeschlagen, dieses Steuerelement deinen Favoriten hinzuzufügen."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Die PIN enthält Buchstaben oder Symbole"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Geräte-PIN bestätigen"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"PIN eingeben"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Wischen, um andere Strukturen anzuzeigen"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index f0b0934..5aaa991 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Δοκιμάστε να κάνετε ξανά λήψη του στιγμιότυπου οθόνης"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Αδύνατη η αποθήκευση του στιγμιότυπου οθόνης λόγω περιορισμένου αποθηκευτικού χώρου"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Η λήψη στιγμιότυπων οθόνης δεν επιτρέπεται από την εφαρμογή ή τον οργανισμό σας"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Εγγραφή οθόνης"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Ειδοποίηση σε εξέλιξη για μια περίοδο λειτουργίας εγγραφής οθόνης"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Έναρξη εγγραφής;"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Τραβά την προσοχή σας με ήχο ή δόνηση."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Κρατάει την προσοχή σας με μια κινούμενη συντόμευση προς αυτό το περιεχόμενο."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Δεν υπάρχουν πρόσφατες φούσκες"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Τα πρόσφατα συννεφάκια και τα συννεφάκια που παραβλέψατε θα εμφανίζονται εδώ."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Δεν είναι δυνατή η τροποποίηση αυτών των ειδοποιήσεων"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Δεν είναι δυνατή η διαμόρφωση αυτής της ομάδας ειδοποιήσεων εδώ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Ειδοποίηση μέσω διακομιστή μεσολάβησης"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Υπηρεσίες συσκευής"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Χωρίς τίτλο"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Πατήστε για επανεκκίνηση αυτής της εφαρμογής και ενεργοποίηση πλήρους οθόνης."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Άνοιγμα <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Ρυθμίσεις για συννεφάκια <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Να επιτρέπονται συννεφάκια από την εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g>;"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Διαχείριση"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Όχι"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Να επιτρέπεται"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Να ερωτηθώ αργότερα"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> από <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> από την εφαρμογή <xliff:g id="APP_NAME">%2$s</xliff:g> και <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> ακόμη"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Μετακίνηση"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Μετακίνηση κάτω αριστερά"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Μετακίνηση κάτω δεξιά"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Παράβλεψη"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Διατήρηση συζητήσεων στο προσκήνιο"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Οι νέες συζητήσεις από την εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> θα εμφανίζονται ως συννεφάκια. Πατήστε ένα συννεφάκι για άνοιγμα. Σύρετε για μετακίνηση.\n\nΠατήστε το συννεφάκι."</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Πατήστε Διαχείριση για να απενεργοποιήσετε τα συννεφάκια από αυτήν την εφαρμογή."</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Η πλοήγηση συστήματος ενημερώθηκε. Για να κάνετε αλλαγές, μεταβείτε στις Ρυθμίσεις."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Μεταβείτε στις Ρυθμίσεις για να ενημερώσετε την πλοήγηση συστήματος"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Κατάσταση αναμονής"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Στοιχεία ελέγχου"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Επιλέξτε στοιχεία ελέγχου για γρήγορη πρόσβαση"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Αγαπημένα"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Όλα"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Ανεπιτυχής φόρτωση λίστας όλων των στοιχ. ελέγχου."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Άλλο"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Προσθ. σε Στοιχ. γρήγ. ελέγχου"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Προσθήκη στα αγαπημένα"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"Η εφαρμογή <xliff:g id="APP">%s</xliff:g> πρότεινε αυτό το στοιχείο ελέγχου για προσθήκη στα αγαπημένα."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Το PIN περιέχει γράμματα ή σύμβολα"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Επαλήθευση PIN συσκευής"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Εισαγωγή PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Σύρετε για να δείτε άλλες δομές"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index c560b17..c6ee707 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -86,6 +86,8 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Try taking screenshot again"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Can\'t save screenshot due to limited storage space"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Taking screenshots isn\'t allowed by the app or your organisation"</string>
+    <string name="screenshot_dismiss_ui_description" msgid="934736855340147968">"Dismiss screenshot"</string>
+    <string name="screenshot_preview_description" msgid="669177537416980449">"Open screenshot"</string>
     <string name="screenrecord_name" msgid="2596401223859996572">"Screen recorder"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Ongoing notification for a screen record session"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Start recording?"</string>
@@ -695,7 +697,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Gets your attention with sound or vibration."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Keeps your attention with a floating shortcut to this content."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No recent bubbles"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Recent bubbles and dismissed bubbles will appear here."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxied notification"</string>
@@ -965,13 +968,8 @@
     <string name="device_services" msgid="1549944177856658705">"Device Services"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"No title"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Tap to restart this app and go full screen."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Open <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Settings for <xliff:g id="APP_NAME">%1$s</xliff:g> bubbles"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Allow bubbles from <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Manage"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Deny"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Allow"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Ask me later"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> from <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> from <xliff:g id="APP_NAME">%2$s</xliff:g> and <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> more"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Move"</string>
@@ -980,9 +978,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Move bottom left"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Move bottom right"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Dismiss"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Keep chats up front"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"New chats from <xliff:g id="APP_NAME">%1$s</xliff:g> will appear as bubbles. Tap a bubble to open it. Drag to move it.\n\nTap the bubble"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tap Manage to turn off bubbles from this app"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -998,11 +1004,16 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controls"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Choose controls for quick access"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favourites"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"All"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"The list of all controls could not be loaded."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Other"</string>
     <string name="controls_dialog_title" msgid="8806193219278278442">"Add to Quick Controls"</string>
     <string name="controls_dialog_ok" msgid="7011816381344485651">"Add to favourites"</string>
     <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> suggested this control to add to your favourites."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN contains letters or symbols"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verify device PIN"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Enter PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Swipe to see other structures"</string>
+    <string name="controls_seeding_in_progress" msgid="3033855341410264148">"Loading recommendations"</string>
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
+    <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-en-rCA/strings.xml b/packages/SystemUI/res/values-en-rCA/strings.xml
index 91d0d74..6e349d6 100644
--- a/packages/SystemUI/res/values-en-rCA/strings.xml
+++ b/packages/SystemUI/res/values-en-rCA/strings.xml
@@ -86,6 +86,8 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Try taking screenshot again"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Can\'t save screenshot due to limited storage space"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Taking screenshots isn\'t allowed by the app or your organisation"</string>
+    <string name="screenshot_dismiss_ui_description" msgid="934736855340147968">"Dismiss screenshot"</string>
+    <string name="screenshot_preview_description" msgid="669177537416980449">"Open screenshot"</string>
     <string name="screenrecord_name" msgid="2596401223859996572">"Screen recorder"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Ongoing notification for a screen record session"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Start recording?"</string>
@@ -695,7 +697,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Gets your attention with sound or vibration."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Keeps your attention with a floating shortcut to this content."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No recent bubbles"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Recent bubbles and dismissed bubbles will appear here."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxied notification"</string>
@@ -965,13 +968,8 @@
     <string name="device_services" msgid="1549944177856658705">"Device Services"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"No title"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Tap to restart this app and go full screen."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Open <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Settings for <xliff:g id="APP_NAME">%1$s</xliff:g> bubbles"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Allow bubbles from <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Manage"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Deny"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Allow"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Ask me later"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> from <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> from <xliff:g id="APP_NAME">%2$s</xliff:g> and <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> more"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Move"</string>
@@ -980,9 +978,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Move bottom left"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Move bottom right"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Dismiss"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Keep chats up front"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"New chats from <xliff:g id="APP_NAME">%1$s</xliff:g> will appear as bubbles. Tap a bubble to open it. Drag to move it.\n\nTap the bubble"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tap Manage to turn off bubbles from this app"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -998,11 +1004,16 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controls"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Choose controls for quick access"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favourites"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"All"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"The list of all controls could not be loaded."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Other"</string>
     <string name="controls_dialog_title" msgid="8806193219278278442">"Add to Quick Controls"</string>
     <string name="controls_dialog_ok" msgid="7011816381344485651">"Add to favourites"</string>
     <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> suggested this control to add to your favourites."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN contains letters or symbols"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verify device PIN"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Enter PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Swipe to see other structures"</string>
+    <string name="controls_seeding_in_progress" msgid="3033855341410264148">"Loading recommendations"</string>
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
+    <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index c560b17..c6ee707 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -86,6 +86,8 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Try taking screenshot again"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Can\'t save screenshot due to limited storage space"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Taking screenshots isn\'t allowed by the app or your organisation"</string>
+    <string name="screenshot_dismiss_ui_description" msgid="934736855340147968">"Dismiss screenshot"</string>
+    <string name="screenshot_preview_description" msgid="669177537416980449">"Open screenshot"</string>
     <string name="screenrecord_name" msgid="2596401223859996572">"Screen recorder"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Ongoing notification for a screen record session"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Start recording?"</string>
@@ -695,7 +697,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Gets your attention with sound or vibration."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Keeps your attention with a floating shortcut to this content."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No recent bubbles"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Recent bubbles and dismissed bubbles will appear here."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxied notification"</string>
@@ -965,13 +968,8 @@
     <string name="device_services" msgid="1549944177856658705">"Device Services"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"No title"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Tap to restart this app and go full screen."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Open <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Settings for <xliff:g id="APP_NAME">%1$s</xliff:g> bubbles"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Allow bubbles from <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Manage"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Deny"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Allow"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Ask me later"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> from <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> from <xliff:g id="APP_NAME">%2$s</xliff:g> and <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> more"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Move"</string>
@@ -980,9 +978,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Move bottom left"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Move bottom right"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Dismiss"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Keep chats up front"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"New chats from <xliff:g id="APP_NAME">%1$s</xliff:g> will appear as bubbles. Tap a bubble to open it. Drag to move it.\n\nTap the bubble"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tap Manage to turn off bubbles from this app"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -998,11 +1004,16 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controls"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Choose controls for quick access"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favourites"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"All"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"The list of all controls could not be loaded."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Other"</string>
     <string name="controls_dialog_title" msgid="8806193219278278442">"Add to Quick Controls"</string>
     <string name="controls_dialog_ok" msgid="7011816381344485651">"Add to favourites"</string>
     <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> suggested this control to add to your favourites."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN contains letters or symbols"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verify device PIN"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Enter PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Swipe to see other structures"</string>
+    <string name="controls_seeding_in_progress" msgid="3033855341410264148">"Loading recommendations"</string>
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
+    <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index c560b17..c6ee707 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -86,6 +86,8 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Try taking screenshot again"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Can\'t save screenshot due to limited storage space"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Taking screenshots isn\'t allowed by the app or your organisation"</string>
+    <string name="screenshot_dismiss_ui_description" msgid="934736855340147968">"Dismiss screenshot"</string>
+    <string name="screenshot_preview_description" msgid="669177537416980449">"Open screenshot"</string>
     <string name="screenrecord_name" msgid="2596401223859996572">"Screen recorder"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Ongoing notification for a screen record session"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Start recording?"</string>
@@ -695,7 +697,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Gets your attention with sound or vibration."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Keeps your attention with a floating shortcut to this content."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No recent bubbles"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Recent bubbles and dismissed bubbles will appear here."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"These notifications can\'t be modified."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"This group of notifications cannot be configured here"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxied notification"</string>
@@ -965,13 +968,8 @@
     <string name="device_services" msgid="1549944177856658705">"Device Services"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"No title"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Tap to restart this app and go full screen."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Open <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Settings for <xliff:g id="APP_NAME">%1$s</xliff:g> bubbles"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Allow bubbles from <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Manage"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Deny"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Allow"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Ask me later"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> from <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> from <xliff:g id="APP_NAME">%2$s</xliff:g> and <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> more"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Move"</string>
@@ -980,9 +978,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Move bottom left"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Move bottom right"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Dismiss"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Keep chats up front"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"New chats from <xliff:g id="APP_NAME">%1$s</xliff:g> will appear as bubbles. Tap a bubble to open it. Drag to move it.\n\nTap the bubble"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tap Manage to turn off bubbles from this app"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"System navigation updated. To make changes, go to Settings."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Go to Settings to update system navigation"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -998,11 +1004,16 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controls"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Choose controls for quick access"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favourites"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"All"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"The list of all controls could not be loaded."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Other"</string>
     <string name="controls_dialog_title" msgid="8806193219278278442">"Add to Quick Controls"</string>
     <string name="controls_dialog_ok" msgid="7011816381344485651">"Add to favourites"</string>
     <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> suggested this control to add to your favourites."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN contains letters or symbols"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verify device PIN"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Enter PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Swipe to see other structures"</string>
+    <string name="controls_seeding_in_progress" msgid="3033855341410264148">"Loading recommendations"</string>
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
+    <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-en-rXC/strings.xml b/packages/SystemUI/res/values-en-rXC/strings.xml
index 4c83c13..ffee3d3 100644
--- a/packages/SystemUI/res/values-en-rXC/strings.xml
+++ b/packages/SystemUI/res/values-en-rXC/strings.xml
@@ -86,6 +86,8 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‎‎‎‏‎‏‏‏‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‎‎‎‎‏‎‏‏‎‎‎‎‏‎Try taking screenshot again‎‏‎‎‏‎"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‏‎‎‎‏‏‏‎‏‎‏‏‎‎‎‏‏‎‎‏‏‎‏‎‏‎‏‎‎‏‏‏‎‏‏‏‏‎‏‏‎‏‏‎‏‏‎‏‏‎‏‎Can\'t save screenshot due to limited storage space‎‏‎‎‏‎"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‎‎‎‏‎‎‏‏‎‏‎‎‎‎‏‎‏‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎Taking screenshots isn\'t allowed by the app or your organization‎‏‎‎‏‎"</string>
+    <string name="screenshot_dismiss_ui_description" msgid="934736855340147968">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‏‏‏‏‎‎‎‏‏‎‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‏‎‏‏‎‏‎‎‎‎‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎‎‎‎Dismiss screenshot‎‏‎‎‏‎"</string>
+    <string name="screenshot_preview_description" msgid="669177537416980449">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‏‎‎‏‎‎‏‎‏‏‎‎‏‎‏‎‏‏‎‏‏‎‎‏‏‎‎‎‎‎‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎Open screenshot‎‏‎‎‏‎"</string>
     <string name="screenrecord_name" msgid="2596401223859996572">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎‎‎‏‎‏‎‎‏‎‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‎‎‎‎‏‎‎‎‎‏‏‏‏‎‎‏‏‏‎‎‎Screen Recorder‎‏‎‎‏‎"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‏‎‎‎‎‎‏‎‏‎‏‏‎‏‎‎‎‏‏‎‏‏‏‎‎‏‎‎‎‎‎‎‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎Ongoing notification for a screen record session‎‏‎‎‏‎"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‏‎‎‏‎‏‎‎‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎‎‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‎‎‏‎Start Recording?‎‏‎‎‏‎"</string>
@@ -695,7 +697,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‎‎‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎‏‎‏‎Gets your attention with sound or vibration.‎‏‎‎‏‎"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‏‎‏‎‏‎‎‎‎‏‏‏‏‎‎‏‎Keeps your attention with a floating shortcut to this content.‎‏‎‎‏‎"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‎‏‎‎‎‏‏‏‎‏‎‏‎‎‎‏‎‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‎‏‏‎‎‏‏‏‎‏‎‎No recent bubbles‎‏‎‎‏‎"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‏‏‎‎‏‎‎‎‎‎‎‏‎‏‏‎Recent bubbles and dismissed bubbles will appear here.‎‏‎‎‏‎"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‏‏‎‎‎‏‎‏‎‎‏‏‎‏‏‏‎‎‎‎‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‏‎‎‎These notifications can\'t be modified.‎‏‎‎‏‎"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‎‎‎‎‏‏‎‎‏‎‏‏‎‏‏‎‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‎‏‎‎‏‏‎This group of notifications cannot be configured here‎‏‎‎‏‎"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‏‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‏‎‏‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎‎‎‎Proxied notification‎‏‎‎‏‎"</string>
@@ -965,13 +968,8 @@
     <string name="device_services" msgid="1549944177856658705">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‏‏‎‏‏‎‏‎‏‎‎‏‎‏‏‏‏‎‏‎‎‎‏‎‎‎‏‎Device Services‎‏‎‎‏‎"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‏‎‎‎‎‎‎‎‏‏‏‎‎‏‎‎‏‏‎‎‎‏‏‏‎‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‎‎No title‎‏‎‎‏‎"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‎‎‎‎‎‎‏‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‏‎‎‎‎‎‎Tap to restart this app and go full screen.‎‏‎‎‏‎"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎‎‏‎‏‏‏‏‎‏‎‎‎‏‏‎‏‎‎‎‎Open ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‎‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‏‎‎‎‎‎‏‏‏‏‎‎‎‎‏‎‏‎‏‎‎‏‎Settings for ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ bubbles‎‏‎‎‏‎"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‏‎‎‎‏‎‎‎‎‏‎‏‎‏‎‎‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‎‎‏‏‎‎‎‎‎‏‏‏‎‎Allow bubbles from ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎?‎‏‎‎‏‎"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‎‎‏‏‎‎‏‏‎‎‏‎‏‎‎‎‎‏‎‎Manage‎‏‎‎‏‎"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‎‎‎‏‏‏‎‏‏‎‏‎‏‎‏‎‎‎Deny‎‏‎‎‏‎"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‏‎‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎‎‏‎‏‏‏‏‎‎‎‏‎‏‎‎‎‏‎‎Allow‎‏‎‎‏‎"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‎‎‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‎‎‏‎‏‏‏‎‏‎‏‎Ask me later‎‏‎‎‏‎"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‏‏‎‏‎‎‏‏‎‏‏‎‏‏‎‏‎‏‏‏‎‏‎‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‏‎<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ from ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‎‏‎‎‎‎‎‏‏‎‏‎‎‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ from ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%2$s</xliff:g>‎‏‎‎‏‏‏‎ and ‎‏‎‎‏‏‎<xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>‎‏‎‎‏‏‏‎ more‎‏‎‎‏‎"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‏‎‏‏‏‎‎‏‎‎‏‏‏‎‎‏‏‏‎‎‏‏‎‎‏‎‎‏‏‎‏‎‏‎‏‏‎‏‎‏‎‏‎‎Move‎‏‎‎‏‎"</string>
@@ -980,9 +978,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‏‎‏‎‏‏‏‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‏‎Move bottom left‎‏‎‎‏‎"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‎‏‎‏‏‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‎‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‏‎‏‎‏‏‎‎‏‎‎‎Move bottom right‎‏‎‎‏‎"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎‎‏‎‏‏‏‏‎Dismiss‎‏‎‎‏‎"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‏‏‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‏‎‏‏‎‎Keep chats up front‎‏‎‎‏‎"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‏‎‏‎‏‏‎‏‏‎‎New chats from ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ will appear as bubbles. Tap a bubble to open it. Drag to move it.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Tap the bubble‎‏‎‎‏‎"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‎‎‎‎‏‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‎‏‎‏‎‎‎‎‎‏‏‏‎Tap Manage to turn off bubbles from this app‎‏‎‎‏‎"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‎‎‎‎‎‎‎‎System navigation updated. To make changes, go to Settings.‎‏‎‎‏‎"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‏‎‏‎‎‎‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎Go to Settings to update system navigation‎‏‎‎‏‎"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‎‎‎‎‎‏‏‏‎‏‏‎‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‎‎‏‎‏‎‎‎‏‎‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎Standby‎‏‎‎‏‎"</string>
@@ -998,11 +1004,16 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‏‎‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‎‏‏‎‎‏‎Controls‎‏‎‎‏‎"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎‏‎‏‎‎‏‏‏‎‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎Choose controls for quick access‎‏‎‎‏‎"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‎‎‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‏‏‏‎‏‏‏‏‎‏‏‏‏‎‏‏‏‏‏‎Favorites‎‏‎‎‏‎"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎All‎‏‎‎‏‎"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‎‎‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‎‎‏‏‎‎‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎‎The list of all controls could not be loaded.‎‏‎‎‏‎"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‏‎‎‏‎‏‏‎‎‎‏‏‎‏‏‎‏‏‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‎‏‎‏‏‎‎‎‎‏‎‎‎Other‎‏‎‎‏‎"</string>
     <string name="controls_dialog_title" msgid="8806193219278278442">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‎‎‏‏‎‏‏‎‎‎‏‎‏‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‎‏‎‏‎‏‎‎Add to Quick Controls‎‏‎‎‏‎"</string>
     <string name="controls_dialog_ok" msgid="7011816381344485651">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‏‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎Add to favorites‎‏‎‎‏‎"</string>
     <string name="controls_dialog_message" msgid="6292099631702047540">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‎‎‏‏‏‎‏‎‎‎‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="APP">%s</xliff:g>‎‏‎‎‏‏‏‎ suggested this control to add to your favorites.‎‏‎‎‏‎"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‏‎‎‏‎‎‏‎‎‏‏‎‎‎‏‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‎‎‏‎‏‏‎‏‏‏‏‎‎PIN contains letters or symbols‎‏‎‎‏‎"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‎‎‎‏‎‎‎‏‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‏‎‎‏‏‎‏‎Verify device PIN‎‏‎‎‏‎"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎Enter PIN‎‏‎‎‏‎"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‏‎‎‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‎‎‎‏‏‏‎‎‏‎‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎Swipe to see other structures‎‏‎‎‏‎"</string>
+    <string name="controls_seeding_in_progress" msgid="3033855341410264148">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‎‎‎‏‎‏‎‏‎‎‎Loading recommendations‎‏‎‎‏‎"</string>
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
+    <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 979e4ab..b97125c 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Vuelve a hacer una captura de pantalla"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"No se puede guardar la captura de pantalla debido a que no hay suficiente espacio de almacenamiento"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"La app o tu organización no permiten las capturas de pantalla"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Grabadora de pantalla"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notificación constante para una sesión de grabación de pantalla"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"¿Comenzar grabación?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Capta tu atención con sonido o vibración."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Retiene tu atención con un acceso directo flotante a este contenido."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No hay burbujas recientes"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Las burbujas recientes y las descartadas aparecerán aquí."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"No se pueden modificar estas notificaciones."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"No se puede configurar aquí este grupo de notificaciones"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificación almacenada en proxy"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Servicios del dispositivo"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Sin título"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Presiona para reiniciar esta app y acceder al modo de pantalla completa."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Abrir <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Configuración para cuadros de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"¿Quieres permitir cuadros de <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Administrar"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Denegar"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Permitir"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Preguntarme más tarde"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g> y <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> más"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Mover"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Ubicar abajo a la izquierda"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Ubicar abajo a la derecha"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ignorar"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Mantener los chats a la vista"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Los chats nuevos de <xliff:g id="APP_NAME">%1$s</xliff:g> se mostrarán como burbujas. Presiona una burbuja para abrirla. Arrástrala para moverla.\n\nPresiona la burbuja"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Presiona Administrar para desactivar las burbujas de esta app"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Se actualizó el sistema de navegación. Para hacer cambios, ve a Configuración."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Ve a Configuración para actualizar la navegación del sistema"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"En espera"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controles"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Elige los controles de acceso rápido"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritos"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Todo"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"No se cargó la lista completa de controles."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Otros"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Agregar a Controles rápidos"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Agregar a favoritos"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"La app <xliff:g id="APP">%s</xliff:g> sugirió que agregaras este control a favoritos."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"El PIN contiene letras o símbolos"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verificar PIN del dispositivo"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Ingresa el PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Desliza el dedo para ver otras estructuras"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index c58ec87..a9a7be2 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Vuelve a intentar hacer la captura de pantalla"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"No se puede guardar la captura de pantalla porque no hay espacio de almacenamiento suficiente"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"La aplicación o tu organización no permiten realizar capturas de pantalla"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Grabadora de pantalla"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notificación continua de una sesión de grabación de la pantalla"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"¿Empezar a grabar?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Llama tu atención con sonido o vibración."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Llama tu atención con un acceso directo flotante a este contenido."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"No hay burbujas recientes"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Las burbujas recientes y las descartadas aparecerán aquí."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Estas notificaciones no se pueden modificar."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Este grupo de notificaciones no se puede configurar aquí"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificación mediante proxy"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Servicios del dispositivo"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Sin título"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Toca para reiniciar esta aplicación e ir a la pantalla completa."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Abrir <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Ajustes de las burbujas de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"¿Quieres permitir las burbujas de <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Gestionar"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Denegar"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Permitir"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Preguntarme más tarde"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g> y <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> más"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Mover"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mover abajo a la izquierda."</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mover abajo a la derecha"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Cerrar"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Mantén los chats a la vista"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Los nuevos chats de <xliff:g id="APP_NAME">%1$s</xliff:g> se mostrarán como burbujas. Toca una burbuja para abrirla. Arrástrala para moverla.\n\nToca la burbuja"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Toca Gestionar para desactivar las burbujas de esta aplicación"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Se ha actualizado la navegación del sistema. Para hacer cambios, ve a Ajustes."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Ve a Ajustes para actualizar la navegación del sistema"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"En espera"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controles"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Elige controles de acceso rápido"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritos"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Todos"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"No se ha podido cargar la lista de los controles."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Otros"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Añadir a controles rápidos"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Añadir a favoritos"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"La aplicación <xliff:g id="APP">%s</xliff:g> ha sugerido este control para que lo añadas a tus favoritos."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"El PIN contiene letras o símbolos"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verificar PIN del dispositivo"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Introduce el PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Desliza el dedo para ver otras estructuras"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml
index bb15e29..5c4c162 100644
--- a/packages/SystemUI/res/values-et/strings.xml
+++ b/packages/SystemUI/res/values-et/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Proovige ekraanipilt uuesti jäädvustada"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Piiratud salvestusruumi tõttu ei saa ekraanipilti salvestada"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Rakendus või teie organisatsioon ei luba ekraanipilte jäädvustada"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Ekraanikuva salvesti"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Pooleli märguanne ekraanikuva salvestamise seansi puhul"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Kas alustada salvestamist?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Haarab heli või vibreerimisega teie tähelepanu."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Hoiab teie tähelepanu hõljuva otseteega selle sisu juurde."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Hiljutisi mulle pole"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Siin kuvatakse hiljutised mullid ja mullid, millest loobuti."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Neid märguandeid ei saa muuta."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Seda märguannete rühma ei saa siin seadistada"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Puhvriga märguanne"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Seadme teenused"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Pealkiri puudub"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Puudutage rakenduse taaskäivitamiseks ja täisekraanrežiimi aktiveerimiseks."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Ava <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Rakenduse <xliff:g id="APP_NAME">%1$s</xliff:g> mullide seaded"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Kas soovite rakenduse <xliff:g id="APP_NAME">%1$s</xliff:g> mullid lubada?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Halda"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Keela"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Luba"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Küsi hiljem"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> rakendusest <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> rakenduselt <xliff:g id="APP_NAME">%2$s</xliff:g> ja veel <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Teisalda"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Teisalda alla vasakule"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Teisalda alla paremale"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Loobu"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Hoia vestlused esiplaanil"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Uued vestlused rakendusest <xliff:g id="APP_NAME">%1$s</xliff:g> kuvatakse mullidena. Selle avamiseks puudutage mulli. Teisaldamiseks lohistage.\n\nPuudutage mulli"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Selle rakenduse puhul mullide väljalülitamiseks puudutage valikut Haldamine"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Süsteemis navigeerimine on värskendatud. Muutmiseks avage jaotis Seaded."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Süsteemi navigeerimise värskendamiseks avage jaotis Seaded"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Ooterežiim"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Juhtnupud"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Valige kiirjuurdepääsuks juhtnupud"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Lemmikud"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Kõik"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Kõikide juhtelementide loendit ei saanud laadida."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Muu"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Lisa kiirnuppude hulka"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Lisa lemmikutesse"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> soovitas selle juhtnupu teie lemmikutesse lisada."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN-kood sisaldab tähti või sümboleid"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Kinnitage seadme PIN-kood"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Sisestage PIN-kood"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Pühkige muude üksuste nägemiseks"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml
index 5961e52..5024e3c 100644
--- a/packages/SystemUI/res/values-eu/strings.xml
+++ b/packages/SystemUI/res/values-eu/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Saiatu berriro pantaila-argazkia ateratzen"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Ezin da gorde pantaila-argazkia ez delako gelditzen tokirik"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Aplikazioak edo erakundeak ez du onartzen pantaila-argazkiak ateratzea"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Pantaila-grabagailua"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Pantailaren grabaketa-saioaren jakinarazpen jarraitua"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Grabatzen hasi nahi duzu?"</string>
@@ -367,7 +371,7 @@
     <string name="quick_settings_cast_device_default_name" msgid="6988469571141331700">"Izenik gabeko gailua"</string>
     <string name="quick_settings_cast_device_default_description" msgid="2580520859212250265">"Igortzeko prest"</string>
     <string name="quick_settings_cast_detail_empty_text" msgid="2846282280014617785">"Ez dago gailurik erabilgarri"</string>
-    <string name="quick_settings_cast_no_wifi" msgid="6980194769795014875">"Ez zaude konektatuta Wi-Fi sarera"</string>
+    <string name="quick_settings_cast_no_wifi" msgid="6980194769795014875">"Ez zaude konektatuta wifi-sarera"</string>
     <string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Distira"</string>
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="2325362583903258677">"AUTOMATIKOA"</string>
     <string name="quick_settings_inversion_label" msgid="5078769633069667698">"Alderantzikatu koloreak"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Arreta erakartzen du soinua eta dardara eginda."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Eduki honetarako lasterbide gainerakor bat eskaintzen dizu, arretarik gal ez dezazun."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Ez dago azkenaldiko burbuilarik"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Azken burbuilak eta baztertutakoak agertuko dira hemen."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Jakinarazpen horiek ezin dira aldatu."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Jakinarazpen talde hau ezin da konfiguratu hemen"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxy bidezko jakinarazpena"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Gailuetarako zerbitzuak"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Ez du izenik"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Berrabiarazi aplikazio hau eta ezarri pantaila osoko modua."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Ireki <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioaren ezarpenen burbuilak"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioaren burbuilak erabiltzeko baimena eman nahi duzu?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Kudeatu"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Ukatu"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Baimendu"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Galdetu geroago"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> (<xliff:g id="APP_NAME">%2$s</xliff:g>)"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> aplikazioaren \"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>\" jakinarazpena, eta beste <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Eraman"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Eraman behealdera, ezkerretara"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Eraman behealdera, eskuinetara"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Baztertu"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Utzi txatak aurrealdean"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioaren txat berriak burbuila gisa agertuko dira. Burbuilak irekitzeko, saka itzazu. Mugitzeko, berriz, arrasta itzazu.\n\nSakatu burbuila"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Aplikazioaren burbuilak desaktibatzeko, sakatu Kudeatu"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Eguneratu da sistemaren nabigazioa. Aldaketak egiteko, joan Ezarpenak atalera."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Sistemaren nabigazioa eguneratzeko, joan Ezarpenak atalera"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Egonean"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrolatzeko aukerak"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Aukeratu sarbide bizkorra kontrolatzeko aukerak"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Gogokoak"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Guztiak"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Ezin izan da kargatu kontrol guztien zerrenda."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Beste bat"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Gehitu kontrol bizkorretan"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Gehitu gogokoetan"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> aplikazioak aukera hau gogokoetan gehitzea iradoki du."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN kodeak hizkiak edo ikurrak ditu"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Egiaztatu gailuaren PIN kodea"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Idatzi PIN kodea"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Pasatu hatza beste egitura batzuk ikusteko"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index b2c0d2e..edd844a 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"دوباره عکس صفحه‌نمایش بگیرید"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"به دلیل محدود بودن فضای ذخیره‌سازی نمی‌توان عکس صفحه‌نمایش را ذخیره کرد"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"برنامه یا سازمان شما اجازه نمی‌دهند عکس صفحه‌نمایش بگیرید."</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"ضبط‌کننده صفحه‌نمایش"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"اعلان درحال انجام برای جلسه ضبط صفحه‌نمایش"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"ضبط شروع شود؟"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"با صدا یا لرزش توجه شما را جلب می‌کند."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"با میان‌بری شناور به این محتوا، توجه‌تان را جلب می‌کند."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"هیچ ابزارک اعلان جدیدی وجود ندارد"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"ابزارک‌های اعلان اخیر و ابزارک‌های اعلان ردشده اینجا ظاهر خواهند شد."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"این اعلان‌ها قابل اصلاح نیستند."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"نمی‌توانید این گروه اعلان‌ها را در اینجا پیکربندی کنید"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"اعلان‌های دارای پراکسی"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"سرویس‌های دستگاه"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"بدون عنوان"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"برای بازراه‌اندازی این برنامه و تغییر به حالت تمام‌صفحه، ضربه بزنید."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"باز کردن <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"تنظیم برای ابزارک‌های اعلان <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"برای <xliff:g id="APP_NAME">%1$s</xliff:g>، ابزارک‌های اعلان مجاز شوند؟"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"مدیریت"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"رد کردن"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"اجازه دادن"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"بعداً پرسیده شود"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> از <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> از <xliff:g id="APP_NAME">%2$s</xliff:g> و <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> مورد بیشتر"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"انتقال"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"انتقال به پایین سمت راست"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"انتقال به پایین سمت چپ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"رد کردن"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"نگه داشتن گپ‌ها در جلو"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"گپ‌های جدید از <xliff:g id="APP_NAME">%1$s</xliff:g> به‌صورت «حباب» نمایش داده می‌شوند. روی «حباب» ضربه بزنید تا باز شود. آن را بکشید تا جابه‌جا شود.\n\nروی «حباب» ضربه بزنید"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"برای خاموش کردن «حباب‌ها» از این برنامه، روی «مدیریت» ضربه بزنید"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"پیمایش سیستم به‌روزرسانی شد. برای انجام تغییرات به «تنظیمات» بروید."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"برای به‌روزرسانی پیمایش سیستم، به «تنظیمات» بروید"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"آماده‌به‌کار"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"کنترل‌ها"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"کنترل‌های موردنظر را برای دسترسی سریع انتخاب کنید"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"موارد دلخواه"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"همه"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"فهرست همه کنترل‌ها را نمی‌توان بارگیری کرد."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"موارد دیگر"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"افزودن به «کنترل‌های سریع»"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"افزودن به موارد دلخواه"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> پیشنهاد می‌کند این کنترل به موارد دلخواهتان اضافه شود."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"پین شامل حروف یا نماد است"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"به‌تأیید رساندن پین دستگاه"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"پین را وارد کنید"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"برای مشاهده سایر ساختارها تند بکشید"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index 86c6e7c..c8165ab 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Yritä ottaa kuvakaappaus uudelleen."</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Kuvakaappauksen tallennus epäonnistui, sillä tallennustilaa ei ole riittävästi"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Sovellus tai organisaatio ei salli kuvakaappauksien tallentamista."</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Näytön tallentaja"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Pysyvä ilmoitus näytön tallentamisesta"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Aloitetaanko tallennus?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Kiinnittää huomion äänellä tai värinällä"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Kelluva sisällön pikakuvake säilyttää huomiosi"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Ei viimeaikaisia ohjekuplia"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Viimeaikaiset ja äskettäin ohitetut ohjekuplat näkyvät täällä."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Näitä ilmoituksia ei voi muokata"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Tätä ilmoitusryhmää ei voi määrittää tässä"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Välitetty ilmoitus"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Laitepalvelut"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Ei nimeä"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Napauta, niin sovellus käynnistyy uudelleen ja siirtyy koko näytön tilaan."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Avaa <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Kuplien asetukset: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Sallitaanko kuplat (<xliff:g id="APP_NAME">%1$s</xliff:g>)?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Ylläpidä"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Estä"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Salli"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Kysy myöhemmin"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g>: <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> (<xliff:g id="APP_NAME">%2$s</xliff:g>) ja <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> muuta"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Siirrä"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Siirrä vasempaan alareunaan"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Siirrä oikeaan alareunaan"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ohita"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Säilytä chatit etualalla"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Sovelluksen <xliff:g id="APP_NAME">%1$s</xliff:g> uudet chatit näkyvät ohjekuplina. Kosketa ohjekuplaa avataksesi sen. Siirrä sitä vetämällä.\n\n Kosketa ohjekuplaa."</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Valitse Hallinnoi, jos haluat poistaa ohjekuplat käytöstä tästä sovelluksesta"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Järjestelmän navigointitapa vaihdettu. Voit muuttaa sitä asetuksista."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Vaihda järjestelmän navigointitapaa asetuksista"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Virransäästötila"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Säätimet"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Valitse pikakäytön säätimet"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Suosikit"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Kaikki"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Kaikkien säätimien luetteloa ei voitu ladata."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Muu"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Lisää pikasäätimiin"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Lisää suosikkeihin"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> ehdotti tämän säätimen lisäämistä suosikkeihisi."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN-koodi sisältää kirjaimia tai symboleja"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Vahvista laitteen PIN-koodi"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Lisää PIN-koodi"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Pyyhkäise, niin näet muut rakennukset"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index 2c5da71..47e1d6d 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Essayez de faire une autre capture d\'écran"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Impossible d\'enregistrer la capture d\'écran, car l\'espace de stockage est limité"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"L\'application ou votre organisation n\'autorise pas les saisies d\'écran"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Enregistreur d\'écran"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notification en cours pour une session d\'enregistrement d\'écran"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Commencer l\'enregistrement?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Attire votre attention à l\'aide de sons et de vibrations."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Garde votre attention à l\'aide d\'un raccourci flottant vers ce contenu."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Aucune bulle récente"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Les bulles récentes et les bulles ignorées s\'afficheront ici."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ces notifications ne peuvent pas être modifiées"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ce groupe de notifications ne peut pas être configuré ici"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notification par mandataire"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Services de l\'appareil"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Sans titre"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Touchez pour redémarrer cette application et passer en plein écran."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Ouvrir <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Paramètres pour les bulles de l\'application <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Autoriser les bulles de l\'application <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Gérer"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Refuser"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Autoriser"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Me demander plus tard"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g> et <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> autres"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Déplacer"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Déplacer dans coin inf. gauche"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Déplacer dans coin inf. droit"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Fermer"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Garder les messages de clavardage à l\'avant"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Les nouveaux messages de clavardage de <xliff:g id="APP_NAME">%1$s</xliff:g> s\'afficheront sous forme de bulles. Pour ouvrir une bulle, touchez-la. Pour la déplacer, faites-la glisser.\n\nTouchez la bulle"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Toucher Gérer pour désactiver les bulles de cette application"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"La navigation système a été mise à jour. Pour apporter des modifications, accédez au menu Paramètres."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Accédez au menu Paramètres pour mettre à jour la navigation système"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Veille"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Commandes"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Choisissez les commandes d\'accès rapide"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoris"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tous"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Impossible de charger la liste des commandes."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Autre"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Ajouter aux commandes rapides"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Ajouter aux favoris"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"L\'application <xliff:g id="APP">%s</xliff:g> a suggéré d\'ajouter cette commande à vos favoris."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Le NIP contient des lettres ou des symboles"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Vérifiez le NIP de l\'appareil"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Entrez le NIP"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Balayez l\'écran pour voir d\'autres structures"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index aebb52b..cbc7705 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Essayez de nouveau de faire une capture d\'écran"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Impossible d\'enregistrer la capture d\'écran, car l\'espace de stockage est limité"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Les captures d\'écran ne sont pas autorisées par l\'application ni par votre organisation"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Enregistreur d\'écran"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notification en cours pour une session d\'enregistrement de l\'écran"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Démarrer l\'enregistrement ?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Attire votre attention à l\'aide de sons ou de vibrations."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Attire votre attention à l\'aide d\'un raccourci flottant vers ce contenu."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Aucune bulle récente"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Les bulles récentes et fermées s\'afficheront ici."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Impossible de modifier ces notifications."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Vous ne pouvez pas configurer ce groupe de notifications ici"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notification de proxy"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Services pour l\'appareil"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Sans titre"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Appuyez pour redémarrer cette application et activer le mode plein écran."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Ouvrir <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Paramètres des bulles de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Autoriser les bulles pour <xliff:g id="APP_NAME">%1$s</xliff:g> ?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Gérer"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Refuser"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Autoriser"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Me demander plus tard"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de l\'application <xliff:g id="APP_NAME">%2$s</xliff:g> et <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> autres"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Déplacer"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Déplacer en bas à gauche"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Déplacer en bas à droite"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ignorer"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Accédez rapidement à vos chats"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Les nouveaux chats <xliff:g id="APP_NAME">%1$s</xliff:g> s\'afficheront sous forme de bulles. Appuyez sur une bulle pour l\'ouvrir. Faites-la glisser pour la déplacer.\n\nAppuyez sur la bulle"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Appuyez sur \"Gérer\" pour désactiver les bulles pour cette application"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigation système mise à jour. Pour apporter des modifications, accédez aux paramètres."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Accédez aux paramètres pour mettre à jour la navigation système"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Mode Veille imminent"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Commandes"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Sélectionnez des commandes pour pouvoir y accéder rapidement"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoris"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tout"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Impossible de charger toutes les commandes."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Autre"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Ajouter aux commandes rapides"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Ajouter aux favoris"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> a suggéré d\'ajouter cette commande aux favoris."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Le code contient des lettres ou des symboles"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Valider le code de l\'appareil"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Saisissez le code"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Balayer l\'écran pour voir d\'autres structures"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml
index 7711742..3463be88 100644
--- a/packages/SystemUI/res/values-gl/strings.xml
+++ b/packages/SystemUI/res/values-gl/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Volve tentar crear unha captura de pantalla"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Non se puido gardar a captura de pantalla porque o espazo de almacenamento é limitado"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"A aplicación ou a túa organización non permite realizar capturas de pantalla"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Gravadora da pantalla"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notificación en curso sobre unha sesión de gravación de pantalla"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Queres iniciar a gravación?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Chama a túa atención con son ou vibración."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Mantén a túa atención cun atallo flotante a este contido."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Non hai burbullas recentes"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"As burbullas recentes e rexeitadas aparecerán aquí."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Estas notificacións non se poden modificar."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Aquí non se pode configurar este grupo de notificacións"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificación mediante proxy"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Servizos do dispositivo"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Sen título"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Toca o botón para reiniciar esta aplicación e abrila en pantalla completa."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Abre a aplicación <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Configuración das burbullas de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Queres permitir que se mostren as burbullas de <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Xestionar"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Denegar"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Permitir"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Preguntarme máis tarde"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g> e <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> máis"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Mover"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mover á parte infer. esquerda"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mover á parte inferior dereita"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ignorar"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Manter os chats á vista"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Os chats novos de <xliff:g id="APP_NAME">%1$s</xliff:g> mostraranse como burbullas. Toca unha para abrila ou arrástraa para movela.\n\nToca a burbulla"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Para desactivar as burbullas nesta aplicación, toca Xestionar"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Actualizouse a navegación do sistema. Para facer cambios, vai a Configuración."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Para actualizar a navegación do sistema, vai a Configuración"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Modo de espera"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controis"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Escolle os controis aos que queiras acceder rapidamente"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritos"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Todo"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Non se puido cargar a lista de todos os controis."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Outra"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Engadir a Controis rápidos"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Engadir a favoritos"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> suxeriu que se engada este control aos teus favoritos."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"O PIN contén letras ou símbolos"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verifica o PIN do dispositivo"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Escribe o PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Pasar o dedo para ver outras estruturas"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml
index cb09ac9..835e395 100644
--- a/packages/SystemUI/res/values-gu/strings.xml
+++ b/packages/SystemUI/res/values-gu/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"ફરીથી સ્ક્રીનશૉટ લેવાનો પ્રયાસ કરો"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"મર્યાદિત સ્ટોરેજ સ્પેસને કારણે સ્ક્રીનશૉટ સાચવી શકાતો નથી"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ઍપ્લિકેશન કે તમારી સંસ્થા દ્વારા સ્ક્રીનશૉટ લેવાની મંજૂરી નથી"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"સ્ક્રીન રેકૉર્ડર"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"સ્ક્રીન રેકોર્ડિંગ સત્ર માટે ચાલુ નોટિફિકેશન"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"રેકૉર્ડિંગ શરૂ કરીએ?"</string>
@@ -558,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"તમારી કાર્યાલયની પ્રોફાઇલ <xliff:g id="ORGANIZATION">%1$s</xliff:g> દ્વારા સંચાલિત થાય છે. આ પ્રોફાઇલ <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> સાથે કનેક્ટ કરેલ છે, જે ઇમેઇલ, ઍપ્લિકેશનો અને વેબસાઇટો સહિતની તમારી નેટવર્ક પ્રવૃત્તિનું નિયમન કરી શકે છે.\n\nતમે <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> સાથે પણ કનેક્ટ કરેલું છે, જે તમારી વ્યક્તિગત નેટવર્ક પ્રવૃત્તિનું નિયમન કરી શકે છે."</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"TrustAgent દ્વારા અનલૉક રાખેલું"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"તમે ઉપકરણને મેન્યુઅલી અનલૉક કરશો નહીં ત્યાં સુધી તે લૉક રહેશે"</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"વધુ ઝડપથી સૂચનાઓ મેળવો"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"તમે અનલૉક કરો તે પહેલાં તેમને જુઓ"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"ના, આભાર"</string>
@@ -696,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"સાઉન્ડ અથવા વાઇબ્રેશન વિના તમારું ધ્યાન દોરે છે."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ફ્લોટિંગ શૉર્ટકટથી આ કન્ટેન્ટ પર તમારું ધ્યાન દોરી રાખે છે."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"તાજેતરના કોઈ બબલ નથી"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"એકદમ નવા બબલ અને છોડી દીધેલા બબલ અહીં દેખાશે."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"આ નોટિફિકેશનમાં કોઈ ફેરફાર થઈ શકશે નહીં."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"નોટિફિકેશનના આ ગ્રૂપની ગોઠવણી અહીં કરી શકાશે નહીં"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"પ્રૉક્સી નોટિફિકેશન"</string>
@@ -966,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"ડિવાઇસ સેવાઓ"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"કોઈ શીર્ષક નથી"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"આ ઍપ ફરીથી ચાલુ કરવા માટે ટૅપ કરીને પૂર્ણ સ્ક્રીન કરો."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> ખોલો"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> બબલ માટેનાં સેટિંગ"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> પરના બબલને મંજૂરી આપીએ?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"મેનેજ કરો"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"નકારો"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"મંજૂરી આપો"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"મને થોડા સમય પછી પૂછશો"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> તરફથી <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> અને વધુ <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> તરફથી <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"ખસેડો"</string>
@@ -981,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"નીચે ડાબે ખસેડો"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"નીચે જમણે ખસેડો"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"છોડી દો"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"ચૅટને સૌથી પહેલાં રાખો"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g>ની નવી ચૅટ બબલ તરીકે દેખાશે. બબલને ખોલવા માટે તેને ટૅપ કરો. તેને ખસેડવા માટે ખેંચો.\n\nબબલને ટૅપ કરો"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"આ ઍપમાંથી બબલને બંધ કરવા માટે મેનેજ કરો પર ટૅપ કરો"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"સિસ્ટમ નૅવિગેશન અપડેટ કર્યું. ફેરફારો કરવા માટે, સેટિંગ પર જાઓ."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"સિસ્ટમ નૅવિગેશનને અપડેટ કરવા માટે સેટિંગ પર જાઓ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"સ્ટૅન્ડબાય"</string>
@@ -999,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"નિયંત્રણો"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ઝડપી ઍક્સેસ માટેનાં નિયંત્રણો પસંદ કરો"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"મનપસંદ"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"તમામ"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"બધા નિયંત્રણોની સૂચિ લોડ કરી શકાઈ નથી."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"અન્ય"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"ઝડપી નિયંત્રણોમાં ઉમેરો"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"મનપસંદમાં ઉમેરો"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> એ આ નિયંત્રણને તમારા મનપસંદમાં ઉમેરવાનું સૂચવ્યું છે."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"પિનમાં અક્ષરો અથવા પ્રતીકોનો સમાવેશ થાય છે"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"ડિવાઇસનો PIN ચકાસો"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"પિન દાખલ કરો"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"અન્ય માળખા જોવા માટે સ્વાઇપ કરો"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index 4fd8310..f06c060 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"स्क्रीनशॉट दोबारा लेने की कोशिश करें"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"मेमोरी कम होने की वजह से स्क्रीनशॉट सेव नहीं किया जा सका"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ऐप्लिकेशन या आपका संगठन स्क्रीनशॉट लेने की अनुमति नहीं देता"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"स्क्रीन रिकॉर्डर"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"स्क्रीन रिकॉर्ड सेशन के लिए जारी सूचना"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"रिकॉर्डिंग शुरू करना चाहते हैं?"</string>
@@ -558,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"आपकी वर्क प्रोफ़ाइल का प्रबंधन <xliff:g id="ORGANIZATION">%1$s</xliff:g> करता है. प्रोफ़ाइल <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> से कनेक्ट है, जो ईमेल, ऐप्लिकेशन और वेबसाइटों सहित आपकी नेटवर्क गतिविधि की निगरानी कर सकता है.\n\nआप <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> से भी कनेक्ट हैं, जो आपकी व्यक्तिगत नेटवर्क गतिविधि की निगरानी कर सकता है."</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"TrustAgent की वजह से अनलॉक रखा गया है"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"जब तक कि आप मैन्‍युअल रूप से अनलॉक नहीं करते तब तक डिवाइस लॉक रहेगा"</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"सूचनाएं ज़्यादा तेज़ी से पाएं"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"  उन्हें अनलॉक किए जाने से पहले देखें"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"रहने दें"</string>
@@ -696,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"आवाज़ या वाइब्रेशन होने की वजह से आपका ध्यान सूचनाओं पर जाता है."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"फ़्लोट करने वाले शॉर्टकट की मदद से इस सामग्री पर आपका ध्यान बना रहता है."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"हाल ही के बबल्स मौजूद नहीं हैं"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"हाल ही के बबल्स और हटाए गए बबल्स यहां दिखेंगे."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ये सूचनाएं नहीं बदली जा सकती हैं."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"सूचनाओं के इस समूह को यहां कॉन्फ़िगर नहीं किया जा सकता"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"प्रॉक्सी सूचना"</string>
@@ -966,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"डिवाइस सेवाएं"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"कोई शीर्षक नहीं"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"इस ऐप्लिकेशन को रीस्टार्ट करने और फ़ुल स्क्रीन चालू करने के लिए टैप करें."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> खोलें"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> बबल की सेटिंग"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> से बबल की अनुमति दें?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"प्रबंधित करें"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"अनुमति न दें"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"अनुमति दें"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"मुझसे बाद में पूछें"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> से <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> और <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> अन्य ऐप्लिकेशन से <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"ले जाएं"</string>
@@ -981,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"बाईं ओर सबसे नीचे ले जाएं"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"सबसे नीचे दाईं ओर ले जाएं"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"खारिज करें"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"चैट को पहले से तैयार रखें"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> की नई चैट बबल्स की तरह दिखेंगी. इसे खोलने के लिए किसी बबल पर टैप करें. इसे एक जगह से दूसरी जगह ले जाने के लिए, खींचें और छोड़ें.\n\nबबल पर टैप करें"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"इस ऐप्लिकेशन पर बबल्स को बंद करने के लिए \'प्रबंधित करें\' पर टैप करें"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"सिस्टम नेविगेशन अपडेट हो गया. बदलाव करने के लिए \'सेटिंग\' पर जाएं."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"सिस्टम नेविगेशन अपडेट करने के लिए \'सेटिंग\' में जाएं"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"स्टैंडबाई"</string>
@@ -999,14 +1006,20 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"कंट्राेल"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"झटपट ऐक्सेस पाने के लिए कंट्राेल चुनें"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"पसंदीदा"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"सभी"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"सभी कंट्रोल की सूची लोड नहीं हो सकी."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"अन्य"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"फटाफट कंट्रोल में जोड़ें"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"पसंदीदा में जोड़ें"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> आपको इस कंट्रोल को अपनी पसंदीदा में जोड़ने का सुझाव देता है."</string>
+    <!-- no translation found for controls_pin_use_alphanumeric (8478371861023048414) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
+    <!-- no translation found for controls_pin_verify (414043854030774349) -->
     <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_pin_instructions (6363309783822475238) -->
+    <skip />
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"दूसरे स्ट्रक्चर देखने के लिए स्वाइप करें"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
+    <skip />
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index bb53802..09b8384 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Pokušajte ponovo napraviti snimku zaslona"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Zaslon nije snimljen zbog ograničenog prostora za pohranu"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Aplikacija ili vaša organizacija ne dopuštaju snimanje zaslona"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Snimač zaslona"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Tekuća obavijest za sesiju snimanja zaslona"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Želite li započeti snimanje?"</string>
@@ -698,7 +702,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Privlači vašu pažnju zvučnim signalima ili vibracijama."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Održava vam pozornost pomoću plutajućeg prečaca ovom sadržaju."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nema nedavnih oblačića"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Ovdje će se prikazivati nedavni i odbačeni oblačići."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Te se obavijesti ne mogu izmijeniti."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ta se grupa obavijesti ne može konfigurirati ovdje"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Obavijest poslana putem proxyja"</string>
@@ -970,13 +975,8 @@
     <string name="device_services" msgid="1549944177856658705">"Usluge uređaja"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Bez naslova"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Dodirnite da biste ponovo pokrenuli tu aplikaciju i prikazali je na cijelom zaslonu."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Otvorite aplikaciju <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Postavke za oblačiće za aplikaciju <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Želite li dopustiti oblačiće iz aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Upravljanje"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Odbij"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Dopusti"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Pitaj me kasnije"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> iz aplikacije <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> iz aplikacije <xliff:g id="APP_NAME">%2$s</xliff:g> i još <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Premjesti"</string>
@@ -985,9 +985,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Premjesti u donji lijevi kut"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Premjestite u donji desni kut"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Odbaci"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Isticanje chatova"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Novi chatovi iz aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g> prikazat će se kao oblačići. Dodirnite oblačić da biste ga otvorili. Povucite da biste ga premjestili.\n\nDodirnite oblačić"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Dodirnite Upravljanje da biste isključili oblačiće iz ove aplikacije"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Ažurirana je navigacija sustavom. Možete je promijeniti u Postavkama."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Navigaciju sustavom možete ažurirati u Postavkama"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje mirovanja"</string>
@@ -1004,14 +1012,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrole"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Odaberite kontrole za brzi pristup"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoriti"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Sve"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Popis svih kontrola nije se učitao."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Drugo"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Dodaj u brze kontrole"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Dodaj u favorite"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"Aplikacija <xliff:g id="APP">%s</xliff:g> predlaže dodavanje ove kontrole u vaše favorite."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN sadrži slova ili simbole"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Potvrdite PIN uređaja"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Unesite PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Prijeđite prstom da biste vidjeli druge strukture"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 7d1159c..5f526fd 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Próbálja meg újra elkészíteni a képernyőképet"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Nem menthet képernyőképet, mert kevés a tárhely"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Az alkalmazás vagy az Ön szervezete nem engedélyezi képernyőkép készítését"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Képernyőrögzítő"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Folyamatban lévő értesítés képernyőrögzítési munkamenethez"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Elindítja a felvételt?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Figyelemfelkeltő a hangjelzésnek és rezgésnek köszönhetően."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"A tartalomra mutató lebegő parancsikon segítségével tartja fenn az Ön figyelmét."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nincsenek buborékok a közelmúltból"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"A legutóbbi és az elvetett buborékok itt jelennek majd meg."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ezeket az értesítéseket nem lehet módosítani."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Az értesítések jelen csoportját itt nem lehet beállítani"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Továbbított értesítés"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Eszközszolgáltatások"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Nincs cím"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Koppintson az alkalmazás újraindításához és a teljes képernyős mód elindításához."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> megnyitása"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g>-buborékok beállításai"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Engedélyezi a(z) <xliff:g id="APP_NAME">%1$s</xliff:g> alkalmazásból származó buborékokat?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Kezelés"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Tiltás"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Engedélyezés"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Kérdezzen rá később"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>, <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> a(z) <xliff:g id="APP_NAME">%2$s</xliff:g> alkalmazásból és <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> további"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Áthelyezés"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Áthelyezés le és balra"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Áthelyezés le és jobbra"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Elvetés"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"A csevegések előtérben tartása"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> alkalmazásból származó új csevegőüzenetek buborékként jelennek meg. A csevegés megnyitásához koppintson a buborékra. Az áthelyezéséhez húzza a buborékot a kívánt helyre.\n\nKoppintson a buborékra"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"A Kezelés gombra koppintva kapcsolhatja ki az alkalmazásból származó buborékokat"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"A rendszer-navigáció módja megváltozott. Módosításához nyissa meg a Beállításokat."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"A rendszer-navigációs lehetőségeket a Beállításokban módosíthatja"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Készenléti mód"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Vezérlők"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Vezérlők kiválasztása a gyors hozzáféréshez"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Kedvencek"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Összes"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Nem sikerült betölteni az összes vezérlő listáját."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Más"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Hozzáadás a gyorsvezérlőkhöz"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Hozzáadás a kedvencekhez"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"A(z) <xliff:g id="APP">%s</xliff:g> azt javasolta, hogy adja hozzá ezt a vezérlőt a kedvenceihez."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"A PIN-kód betűket vagy szimbólumokat tartalmaz"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Eszköz PIN-kódjának igazolása"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"PIN-kód megadása"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Csúsztasson további struktúrák megtekintéséhez"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml
index 3f44736..ef90f55 100644
--- a/packages/SystemUI/res/values-hy/strings.xml
+++ b/packages/SystemUI/res/values-hy/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Փորձեք նորից"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Չհաջողվեց պահել սքրինշոթը անբավարար հիշողության պատճառով"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Հավելվածը կամ ձեր կազմակերպությունը չի թույլատրում սքրինշոթի ստացումը"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Էկրանի տեսագրիչ"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Էկրանի տեսագրման աշխատաշրջանի ընթացիկ ծանուցում"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Սկսե՞լ տեսագրումը"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Ծանուցումները գալիս են ձայնով կամ թրթռոցով։"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Լողացող դյուրանցման միջոցով ձեր ուշադրությունն է գրավում բովանդակության նկատմամբ"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Վերջին ամպիկներ չկան"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Այստեղ կցուցադրվեն վերջերս օգտագործված և փակված ամպիկները, որոնք կկարողանաք հեշտությամբ վերաբացել։"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Այս ծանուցումները չեն կարող փոփոխվել:"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ծանուցումների տվյալ խումբը հնարավոր չէ կարգավորել այստեղ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Ծանուցումն ուղարկվել է պրոքսի սերվերի միջոցով"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Սարքի ծառայություններ"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Անանուն"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Հպեք՝ հավելվածը վերագործարկելու և լիաէկրան ռեժիմին անցնելու համար։"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Բացել <xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածը"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ի ամպիկների կարգավորումներ"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Թույլատրե՞լ ամպիկներ <xliff:g id="APP_NAME">%1$s</xliff:g>-ից։"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Կառավարել"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Մերժել"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Թույլատրել"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Հարցնել ավելի ուշ"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>՝ <xliff:g id="APP_NAME">%2$s</xliff:g>-ից"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>` <xliff:g id="APP_NAME">%2$s</xliff:g>-ից ու ևս <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> ամպիկ"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Տեղափոխել"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Տեղափոխել ներքև՝ ձախ"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Տեղափոխել ներքև՝ աջ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Փակել"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Ցուցադրել զրույցները առջևում"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածի նոր զրույցները կհայտնվեն ամպիկների տեսքով։ Հպեք ամպիկին՝ այն բացելու համար։ Քաշեք՝ այն տեղափոխելու համար։\n\nՀպեք ամպիկին"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Հպեք «Կառավարել» կոճակին՝ այս հավելվածի ամպիկներն անջատելու համար։"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Համակարգի նավիգացիան թարմացվեց: Փոփոխություններ անելու համար անցեք կարգավորումներ:"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Թարմացրեք համակարգի նավիգացիան կարգավորումներում"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Սպասման ռեժիմ"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Կառավարման տարրեր"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Ընտրեք կառավարման տարրեր՝ արագ մուտքի համար"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Ընտրանի"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Բոլորը"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Չհաջողվեց բեռնել բոլոր կառավարների ցանկը։"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Այլ"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Ավելացրեք արագ կառավարման տարրերում"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Ավելացնել ընտրանիում"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> հավելվածն առաջարկում է ավելացնել այս կառավարը ձեր ընտրանիում։"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN կոդը տառեր և նշաններ է պարունակում"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Հաստատեք սարքի PIN կոդը"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Մուտքագրեք PIN կոդը"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Սահեցրեք մատը՝ այլ կառուցվածքներ տեսնելու համար"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 18728a1..b648d5c 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Coba ambil screenshot lagi"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Tidak dapat menyimpan screenshot karena ruang penyimpanan terbatas"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Mengambil screenshot tidak diizinkan oleh aplikasi atau organisasi"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Perekam Layar"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notifikasi yang sedang berjalan untuk sesi rekaman layar"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Mulai Merekam?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Menarik perhatian Anda dengan suara atau getaran."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Menjaga perhatian dengan pintasan floating ke konten ini."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Tidak ada balon baru-baru ini"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Balon baru-baru ini dan balon yang ditutup akan muncul di sini."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Notifikasi ini tidak dapat diubah."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Grup notifikasi ini tidak dapat dikonfigurasi di sini"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notifikasi proxy"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Layanan Perangkat"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Tanpa judul"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Ketuk untuk memulai ulang aplikasi ini dan membuka layar penuh."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Buka <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Setelan untuk balon <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Izinkan balon dari <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Kelola"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Tolak"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Izinkan"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Nanti saja"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> dari <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> dari <xliff:g id="APP_NAME">%2$s</xliff:g> dan <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> lainnya"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Pindahkan"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Pindahkan ke kiri bawah"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Pindahkan ke kanan bawah"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Tutup"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Tampilkan chat di depan"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Chat baru dari <xliff:g id="APP_NAME">%1$s</xliff:g> akan muncul sebagai balon. Ketuk balon untuk membukanya. Tarik untuk memindahkannya.\n\nKetuk balon"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Ketuk Kelola untuk menonaktifkan balon dari aplikasi ini"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigasi sistem diupdate. Untuk melakukan perubahan, buka Setelan."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Buka Setelan untuk mengupdate navigasi sistem"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Siaga"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrol"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Pilih kontrol untuk akses cepat"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favorit"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Semua"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Daftar semua kontrol tidak dapat dimuat."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Lainnya"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Tambahkan ke Kontrol Cepat"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Tambahkan ke favorit"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> menyarankan kontrol ini ditambahkan ke favorit."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN berisi huruf atau simbol"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verifikasi PIN perangkat"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Masukkan PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Geser untuk melihat struktur lainnya"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml
index 07b0d76..bf347d3 100644
--- a/packages/SystemUI/res/values-is/strings.xml
+++ b/packages/SystemUI/res/values-is/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Prófaðu að taka skjámynd aftur"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Ekki tókst að vista skjámynd vegna takmarkaðs geymslupláss"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Forritið eða fyrirtækið þitt leyfir ekki skjámyndatöku"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Upptökutæki á skjá"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Áframhaldandi tilkynning fyrir skjáupptökulotu"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Hefja upptöku?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Fangar athygli þína með hljóði eða titringi."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Fangar athygli þína með fljótandi flýtileið á þetta efni."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Engar nýlegar blöðrur"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Nýlegar blöðrur og blöðrur sem þú hefur hunsað birtast hér."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ekki er hægt að breyta þessum tilkynningum."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ekki er hægt að stilla þessar tilkynningar hér"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Staðgengilstilkynning"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Tækjaþjónusta"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Enginn titill"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Ýttu til að endurræsa forritið og sýna það á öllum skjánum."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Opna <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Stillingar fyrir blöðrur frá <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Leyfa blöðrur frá <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Stjórna"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Hafna"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Leyfa"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Spyrja mig síðar"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> frá <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"„<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>“ frá <xliff:g id="APP_NAME">%2$s</xliff:g> og <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> í viðbót"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Færa"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Færa neðst til vinstri"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Færðu neðst til hægri"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Hunsa"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Halda spjalli fyrir framan"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Nýtt spjall úr <xliff:g id="APP_NAME">%1$s</xliff:g> birtist sem blöðrur. Ýttu á blöðru til að opna hana. Dragðu hana til að færa hana.\n\nÝttu á blöðruna"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Ýttu á „Stjórna“ til að slökkva á blöðrum frá þessu forriti"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Kerfisstjórnun uppfærð. Þú getur breytt þessu í stillingunum."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Farðu í stillingar til að uppfæra kerfisstjórnun"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Biðstaða"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Stýringar"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Veldu stýringar fyrir skjótan aðgang"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Uppáhald"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Allt"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Ekki tókst að hlaða lista yfir allar stýringar."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Annað"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Bæta við flýtistýringar"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Bæta við uppáhald"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> stakk upp á að bæta þessari stýringu við uppáhald."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN inniheldur bókstafi eða tákn"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Staðfesta PIN-númer tækis"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Sláðu inn PIN-númer"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Strjúktu til að sjá önnur kerfi"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 1c8bafd..6cfd422 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Riprova ad acquisire lo screenshot"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Impossibile salvare lo screenshot a causa dello spazio di archiviazione limitato"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"L\'acquisizione di screenshot non è consentita dall\'app o dall\'organizzazione"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Screen Recorder"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notifica costante per una sessione di registrazione dello schermo"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Avviare la registrazione?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Richiama la tua attenzione con suono o vibrazione."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Mantiene la tua attenzione con una scorciatoia mobile a questi contenuti."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nessuna bolla recente"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Le bolle recenti e ignorate verranno visualizzate qui."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Impossibile modificare queste notifiche."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Qui non è possibile configurare questo gruppo di notifiche"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notifica inviata al proxy"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Servizi del dispositivo"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Senza titolo"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Tocca per riavviare l\'app e passare a schermo intero."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Apri <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Impostazioni per fumetti <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Consentire fumetti da <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Gestisci"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Rifiuta"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Consenti"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Ricordamelo più tardi"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> da <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> da <xliff:g id="APP_NAME">%2$s</xliff:g> e altre <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Sposta"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Sposta in basso a sinistra"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Sposta in basso a destra"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ignora"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Tieni davanti le chat"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Le nuove chat da <xliff:g id="APP_NAME">%1$s</xliff:g> verranno visualizzate come bolle. Tocca una bolla per aprirla. Trascinala per spostarla.\n\nTocca la bolla"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tocca Gestisci per disattivare le bolle dall\'app"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigazione del sistema aggiornata. Per apportare modifiche, usa le Impostazioni."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Usa le Impostazioni per aggiornare la navigazione del sistema"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controlli"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Scegli i controlli per l\'accesso rapido"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Preferiti"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tutti"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Impossibile caricare l\'elenco di tutti i controlli."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Altro"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Aggiungi ai controlli rapidi"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Aggiungi ai preferiti"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> ha suggerito di aggiungere questo controllo ai preferiti."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Il PIN contiene lettere o simboli"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verifica PIN del dispositivo"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Inserisci PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Scorri per vedere altre strutture"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index a798cfa..ee43515 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"יש לנסות שוב לבצע צילום מסך"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"לא היה מספיק מקום לשמור את צילום המסך"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"האפליקציה או הארגון שלך אינם מתירים ליצור צילומי מסך"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"מקליט מסך"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"התראה מתמשכת לסשן הקלטת מסך"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"להתחיל את ההקלטה?"</string>
@@ -701,7 +705,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"מעוררת תשומת לב באמצעות צלילים או רטט."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"מעוררת תשומת לב באמצעות קיצור דרך צף לתוכן הזה."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"אין בועות מהזמן האחרון"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"בועות אחרונות ובועות שנסגרו יופיעו כאן."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"לא ניתן לשנות את ההתראות האלה."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"לא ניתן להגדיר כאן את קבוצת ההתראות הזו"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"‏התראה דרך שרת proxy"</string>
@@ -975,13 +980,8 @@
     <string name="device_services" msgid="1549944177856658705">"שירותים למכשיר"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"ללא שם"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"צריך להקיש כדי להפעיל מחדש את האפליקציה הזו ולעבור למסך מלא."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"לפתיחת <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"הגדרות בשביל בועות של <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"להתיר ל-<xliff:g id="APP_NAME">%1$s</xliff:g> להציג בועות?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"ניהול"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"אני לא מרשה"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"כן, זה בסדר"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"אחליט מאוחר יותר"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> מהאפליקציה <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> מ-<xliff:g id="APP_NAME">%2$s</xliff:g> ועוד <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"העברה"</string>
@@ -990,9 +990,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"העברה לפינה השמאלית התחתונה"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"העברה לפינה הימנית התחתונה"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"סגירה"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"הצ\'אטים תמיד יוצגו מלפנים"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"צ\'אטים חדשים מאפליקציית <xliff:g id="APP_NAME">%1$s</xliff:g> יוצגו כבועות. יש להקיש על בועה כדי לפתוח אותה. יש לגרור אותה כדי להזיז אותה.\n\nיש להקיש על הבועה"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"יש להקיש על \'ניהול\' כדי להשבית את הבועות מהאפליקציה הזו"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"הניווט במערכת עודכן. אפשר לערוך שינויים דרך ההגדרות."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"יש לעבור להגדרות כדי לעדכן את הניווט במערכת"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"המתנה"</string>
@@ -1010,14 +1018,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"פקדים"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"יש לבחור פקדים לגישה מהירה"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"מועדפים"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"הכול"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"לא ניתן היה לטעון את הרשימה של כל הפקדים."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"אחר"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"הוספה לבקרות מהירות"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"הוספה למועדפים"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"בקרה זו הוצעה על ידי <xliff:g id="APP">%s</xliff:g> להוספה למועדפים."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"קוד האימות מכיל אותיות או סמלים"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"אימות של קוד אימות במכשיר"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"יש להזין קוד אימות"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"יש להחליק כדי לראות מבנים אחרים"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index b62dae6..92870ee 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"スクリーンショットを撮り直してください"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"空き容量が足りないため、スクリーンショットを保存できません"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"スクリーンショットの作成はアプリまたは組織で許可されていません"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"画面レコーダー"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"画面の録画セッション中の通知"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"録画を開始しますか?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"音やバイブレーションで通知をお知らせします。"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"このコンテンツのフローティング ショートカットで通知をお知らせします。"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"最近閉じたふきだしはありません"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"最近表示されたふきだしや閉じたふきだしが、ここに表示されます。"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"これらの通知は変更できません。"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"このグループの通知はここでは設定できません"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"代理通知"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"デバイス サービス"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"タイトルなし"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"タップしてこのアプリを再起動すると、全画面表示になります。"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> を開く"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> のふきだしの設定"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> のふきだしを許可しますか?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"管理"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"拒否"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"許可"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"後で確認"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>(<xliff:g id="APP_NAME">%2$s</xliff:g>)"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>(<xliff:g id="APP_NAME">%2$s</xliff:g>)、他 <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> 件"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"移動"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"左下に移動"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"右下に移動"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"閉じる"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"チャットを常に前面に表示"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> からの新しいチャットがバブルとして表示されます。バブルをタップするとチャットが表示されます。ドラッグすると移動します。\n\nバブルをタップしてください"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"このアプリからのバブルをオフにするには、[管理] をタップしてください"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"システム ナビゲーションを更新しました。変更するには [設定] に移動してください。"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"システム ナビゲーションを更新するには [設定] に移動してください"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"スタンバイ"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"コントロール"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"クイック アクセスのコントロールの選択"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"お気に入り"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"すべて"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"全コントロールの一覧を読み込めませんでした。"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"その他"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"クイック コントロールに追加"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"お気に入りに追加"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g>が、お気に入りに追加のためにこのコントロールを提案しました。"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN に英字や記号を含める"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"デバイスの PIN の確認"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"PIN の入力"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"スワイプすると他の構造が表示されます"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml
index 8365673..35fd748 100644
--- a/packages/SystemUI/res/values-ka/strings.xml
+++ b/packages/SystemUI/res/values-ka/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"ხელახლა ცადეთ ეკრანის ანაბეჭდის გაკეთება"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"ეკრანის ანაბეჭდის შენახვა ვერ მოხერხდა შეზღუდული მეხსიერების გამო"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ეკრანის ანაბეჭდების შექმნა არ არის ნებადართული აპის ან თქვენი ორგანიზაციის მიერ"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"ეკრანის რეკორდერი"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"უწყვეტი შეტყობინება ეკრანის ჩაწერის სესიისთვის"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"დაიწყოს ჩაწერა?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"იპყრობს თქვენს ყურადღებას ხმით ან ვიბრაციით."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"იპყრობს თქვენს ყურადღებას ამ კონტენტის მოლივლივე მალსახმობით."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ბოლო დროს გამოყენებული ბუშტები არ არის"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"აქ გამოჩნდება ბოლოდროინდელი ბუშტები და უარყოფილი ბუშტები."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ამ შეტყობინებების შეცვლა შეუძლებელია."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"შეტყობინებების ამ ჯგუფის კონფიგურირება აქ შეუძლებელია"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"პროქსირებული შეტყობინება"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"მოწყობილობის სერვისები"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"უსათაურო"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"შეეხეთ ამ აპის გადასატვირთად და გადადით სრულ ეკრანზე."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ის გახსნა"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"პარამეტრები <xliff:g id="APP_NAME">%1$s</xliff:g> ბუშტებისთვის"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"დაიშვას ბუშტები <xliff:g id="APP_NAME">%1$s</xliff:g>-დან?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"მართვა"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"უარყოფა"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"დაშვება"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"მოგვიანებით მკითხეთ"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> <xliff:g id="APP_NAME">%2$s</xliff:g>-ისგან"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> <xliff:g id="APP_NAME">%2$s</xliff:g>-დან და კიდევ <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"გადატანა"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ქვევით და მარცხნივ გადატანა"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"გადაანაცვ. ქვემოთ და მარჯვნივ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"დახურვა"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"ჩეთები წინ იყოს"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ის ახალი ჩეთები ბუშტების სახით გამოჩნდება. გასახსნელად შეეხეთ ბუშტს. გადასატანად ჩაავლეთ.\n\nშეეხეთ ბუშტს"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"ამ აპის ბუშტების გამოსართავად შეეხეთ „მართვას“"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"სისტემური ნავიგაცია განახლდა. ცვლილებების შესატანად გადადით პარამეტრებზე."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"სისტემური ნავიგაციის გასაახლებლად გადადით პარამეტრებზე"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"მოლოდინის რეჟიმი"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"მართვის საშუალებები"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"აირჩიეთ სწრაფი წვდომის მართვის საშუალებები"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ფავორიტები"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ყველა"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"მართვის ყველა საშუალების სია ვერ ჩაიტვირთა."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"სხვა"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"სწრაფად მართვის საშ. დამატება"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"რჩეულებში დამატება"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> გთავაზობთ, მართვის ეს საშუალება თქვენს რჩეულებში დაამატოთ."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN-კოდი შეიცავს ასოებს ან სიმბოლოებს"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"მოწყობ. PIN-კოდის დადასტურება"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"შეიყვანეთ PIN-კოდი"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"გადაფურცლეთ სხვა სტრუქტურების სანახავად"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml
index e7ca415..394902b 100644
--- a/packages/SystemUI/res/values-kk/strings.xml
+++ b/packages/SystemUI/res/values-kk/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Қайта скриншот жасап көріңіз"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Жадтағы шектеулі бос орынға байланысты скриншот сақталмайды"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Қолданба немесе ұйым скриншоттар түсіруге рұқсат етпейді"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Экрандағы бейнені жазу"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Экранды бейнеге жазудың ағымдағы хабарландыруы"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Жазу басталсын ба?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Хабарландырулар келгенде, дыбыс шығады не дірілдейді"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Осы мазмұнға бекітілген қалқымалы таңбашамен назарыңызды өзіне тартады."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Жақындағы қалқымалы анықтамалар жоқ"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Жақында ашылған және жабылған қалқымалы анықтамалар осы жерде пайда болады."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Бұл хабарландыруларды өзгерту мүмкін емес."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Мұндай хабарландырулар бұл жерде конфигурацияланбайды."</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Прокси-сервер арқылы жіберілген хабарландыру"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Құрылғы қызметтері"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Атауы жоқ"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Бұл қолданбаны қайта қосып, толық экранға өту үшін түртіңіз."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> қолданбасын ашу"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> қалқымалы анықтамаларының параметрлері"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> қолданбасының қалқымалы анықтамаларына рұқсат етілсін бе?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Басқару"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Тыйым салу"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Рұқсат беру"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Кейінірек сұралсын"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> жіберген хабарландыру: <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> қолданбасы жіберген <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> және тағы <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Жылжыту"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Төменгі сол жаққа жылжыту"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Төменгі оң жаққа жылжыту"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Жабу"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Чаттарды жоғары жақтан көрсету"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> қолданбасындағы жаңа чаттар қалқымалы анықтамалар түрінде шығады. Қалқымалы анықтаманы ашу үшін оны түртіңіз. Оны сүйреп жылжытыңыз.\n\nҚалқымалы анықтаманы түртіңіз."</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Бұл қолданбадан қалқымалы анықтамаларды өшіру үшін \"Басқару\" түймесін түртіңіз."</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Жүйе навигациясы жаңартылды. Өзгерту енгізу үшін \"Параметрлер\" бөліміне өтіңіз."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Жүйе навигациясын жаңарту үшін \"Параметрлер\" бөліміне өтіңіз."</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Күту режимі"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Басқару элементтері"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Жылдам кіру үшін басқару элементтерін таңдау"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Таңдаулылар"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Барлығы"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Барлық басқару элементі тізімі жүктелмеді."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Басқа"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Жылдам басқару элементтеріне қосу"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Таңдаулыларға қосу"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> қолданбасы бұл басқару элементін таңдаулыларға қосып қоюды ұсынды."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN коды әріптерден не таңбалардан құралады."</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Құрылғының PIN кодын растау"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"PIN кодын енгізіңіз."</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Басқа құрылғыларды көру үшін экранды сырғытыңыз."</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml
index d8d300f..ecb5ffa 100644
--- a/packages/SystemUI/res/values-km/strings.xml
+++ b/packages/SystemUI/res/values-km/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"សាកល្បង​ថតរូបថត​អេក្រង់​ម្តងទៀត"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"មិនអាច​រក្សាទុក​រូបថតអេក្រង់​បានទេ ​ដោយសារ​ទំហំផ្ទុក​មានកម្រិតទាប"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ការថត​រូបអេក្រង់​មិនត្រូវ​បាន​អនុញ្ញាត​ដោយ​កម្មវិធី​នេះ ឬ​ស្ថាប័ន​របស់អ្នក"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"កម្មវិធីថត​អេក្រង់"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"ការជូនដំណឹង​ដែល​កំពុង​ដំណើរការ​សម្រាប់​រយៈពេលប្រើ​ការថត​សកម្មភាព​អេក្រង់"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"ចាប់ផ្តើម​ថត​ឬ?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ធ្វើឱ្យ​អ្នក​ចាប់អារម្មណ៍​តាមរយៈ​សំឡេង ឬ​ការញ័រ។"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ធ្វើឱ្យអ្នក​ចាប់អារម្មណ៍​ដោយប្រើ​ផ្លូវកាត់​អណ្ដែត​សម្រាប់ខ្លឹមសារនេះ។"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"មិនមាន​សារលេចឡើង​ថ្មីៗ​ទេ"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"សារលេចឡើង​ដែលបានច្រានចោល និងសារលេចឡើង​ថ្មីៗ​នឹង​បង្ហាញ​នៅទីនេះ។"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"មិនអាច​កែប្រែ​ការជូនដំណឹង​ទាំងនេះ​បានទេ។"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"មិនអាច​កំណត់​រចនាសម្ព័ន្ធ​ក្រុមការជូនដំណឹងនេះ​នៅទីនេះ​បានទេ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ការជូនដំណឹង​ជា​ប្រូកស៊ី"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"សេវាកម្មឧបករណ៍"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"គ្មាន​ចំណងជើង"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"ចុចដើម្បី​ចាប់ផ្ដើម​កម្មវិធី​នេះឡើងវិញ រួចចូលប្រើ​ពេញអេក្រង់។"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"បើក <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"ការកំណត់​សម្រាប់សារលេចឡើង <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"អនុញ្ញាត​សារលេចឡើង​ពី <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"គ្រប់គ្រង"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"បដិសេធ"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"អនុញ្ញាត"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"សួរខ្ញុំនៅពេលក្រោយ"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> ពី <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> ពី <xliff:g id="APP_NAME">%2$s</xliff:g> និង <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> ទៀត"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"ផ្លាស់ទី"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ផ្លាស់ទីទៅផ្នែកខាងក្រោមខាងឆ្វេង​"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ផ្លាស់ទីទៅផ្នែកខាងក្រោម​ខាងស្ដាំ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ច្រានចោល"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"រក្សាទុកការជជែក​នៅផ្នែក​ខាងមុខ"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"ការជជែកថ្មីៗពី <xliff:g id="APP_NAME">%1$s</xliff:g> នឹងបង្ហាញ​ជាសារលេចឡើង។ ចុច​សារលេច​ឡើង ដើម្បី​បើកវា។ អូស​ដើម្បីផ្លាស់ទី​សារលេចឡើងនេះ។\n\nចុចសារ​លេចឡើងនេះ"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"ចុច \"គ្រប់គ្រង\" ដើម្បីបិទ​សារលេចឡើង​ពីកម្មវិធីនេះ"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"បានធ្វើ​បច្ចុប្បន្នភាព​ការរុករកក្នុង​ប្រព័ន្ធ។ ដើម្បីធ្វើការផ្លាស់ប្ដូរ សូមចូលទៅ​កាន់ការកំណត់។"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ចូល​ទៅកាន់​ការកំណត់ ដើម្បី​ធ្វើបច្ចុប្បន្នភាព​ការរុករក​ក្នុង​ប្រព័ន្ធ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ផ្អាក​ដំណើរការ"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"ការគ្រប់គ្រង"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ជ្រើសរើស​ការគ្រប់គ្រង​សម្រាប់ការចូលប្រើ​ប្រាស់រហ័ស"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"សំណព្វ"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ទាំងអស់"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"មិនអាច​ផ្ទុក​បញ្ជី​នៃការគ្រប់គ្រង​ទាំងអស់​បានទេ។"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"ផ្សេងៗ"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"បញ្ចូល​ទៅក្នុងការគ្រប់គ្រង​រហ័ស"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"បញ្ចូល​​ទៅ​ក្នុងសំណព្វ"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> បានណែនាំឱ្យបញ្ចូល​ការគ្រប់គ្រងនេះទៅក្នុងសំណព្វរបស់អ្នក។"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"កូដ PIN មាន​អក្សរ ឬនិមិត្តសញ្ញា"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"ផ្ទៀងផ្ទាត់កូដ PIN របស់​ឧបករណ៍"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"បញ្ចូល​កូដ PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"អូសដើម្បី​មើលរចនាសម្ព័ន្ធ​ផ្សេងទៀត"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml
index 0165b08..8bc6fbb 100644
--- a/packages/SystemUI/res/values-kn/strings.xml
+++ b/packages/SystemUI/res/values-kn/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"ಸ್ಕ್ರೀನ್‌ಶಾಟ್ ಅನ್ನು ಪುನಃ ತೆಗೆದುಕೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸಿ"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"ಪರಿಮಿತ ಸಂಗ್ರಹಣೆ ಸ್ಥಳದ ಕಾರಣದಿಂದಾಗಿ ಸ್ಕ್ರೀನ್‌ಶಾಟ್ ಉಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ಅಪ್ಲಿಕೇಶನ್ ಅಥವಾ ಸಂಸ್ಥೆಯು ಸ್ಕ್ರೀನ್‌ಶಾಟ್‌ಗಳನ್ನು ತೆಗೆಯುವುದನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"ಸ್ಕ್ರೀನ್ ರೆಕಾರ್ಡರ್"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"ಸ್ಕ್ರೀನ್ ರೆಕಾರ್ಡಿಂಗ್ ಸೆಶನ್‌ಗಾಗಿ ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಅಧಿಸೂಚನೆ"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"ರೆಕಾರ್ಡಿಂಗ್ ಪ್ರಾರಂಭಿಸಬೇಕೆ?"</string>
@@ -558,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"ನಿಮ್ಮ ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್‌ ಅನ್ನು <xliff:g id="ORGANIZATION">%1$s</xliff:g> ನಿರ್ವಹಿಸುತ್ತಿದೆ. <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> ಗೆ ಪ್ರೊಫೈಲ್ ಸಂಪರ್ಕಗೊಂಡಿರುವ ಕಾರಣ, ಅದು ನಿಮ್ಮ ಇಮೇಲ್‌ಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ವೆಬ್‌ಸೈಟ್‌ಗಳೂ ಸೇರಿದಂತೆ ನೆಟ್‌ವರ್ಕ್ ಚಟುವಟಿಕೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು.\n\nನೀವು <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> ಗೆ ಕೂಡಾ ಸಂಪರ್ಕಗೊಂಡಿದ್ದೀರಿ, ಇದು ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ನೆಟ್‌ವರ್ಕ್ ಚಟುವಟಿಕೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು."</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"TrustAgent ನಿಂದ ಅನ್‌ಲಾಕ್ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"ನೀವಾಗಿಯೇ ಅನ್‌ಲಾಕ್‌ ಮಾಡುವವರೆಗೆ ಸಾಧನವು ಲಾಕ್‌ ಆಗಿಯೇ ಇರುತ್ತದೆ"</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"ವೇಗವಾಗಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"ನೀವು ಅನ್‌ಲಾಕ್‌ ಮಾಡುವ ಮೊದಲೇ ಅವುಗಳನ್ನು ನೋಡಿ"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"ಧನ್ಯವಾದಗಳು"</string>
@@ -696,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ಧ್ವನಿ ಅಥವಾ ವೈಬ್ರೇಷನ್ ಮೂಲಕ ನಿಮ್ಮ ಗಮನವನ್ನು ಸೆಳೆಯುತ್ತದೆ."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ಈ ವಿಷಯಕ್ಕೆ ಲಿಂಕ್ ಮಾಡಿ ಕೊಂಡೊಯ್ಯುವ ಶಾರ್ಟ್‌ಕಟ್‌ ಕಡೆಗೆ ಗಮನ ಇರಿಸಿ."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ಯಾವುದೇ ಇತ್ತೀಚಿನ ಬಬಲ್‌ಗಳಿಲ್ಲ"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"ಇತ್ತೀಚಿನ ಬಬಲ್‌ಗಳು ಮತ್ತು ವಜಾಗೊಳಿಸಿದ ಬಬಲ್‌ಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ಈ ಅಧಿಸೂಚನೆಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ಈ ಗುಂಪಿನ ಅಧಿಸೂಚನೆಗಳನ್ನು ಇಲ್ಲಿ ಕಾನ್ಫಿಗರ್‌ ಮಾಡಲಾಗಿರುವುದಿಲ್ಲ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ಪ್ರಾಕ್ಸಿ ಮಾಡಿದ ಅಧಿಸೂಚನೆಗಳು"</string>
@@ -966,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"ಸಾಧನ ಸೇವೆಗಳು"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"ಯಾವುದೇ ಶೀರ್ಷಿಕೆಯಿಲ್ಲ"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"ಈ ಆ್ಯಪ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು ಮತ್ತು ಪೂರ್ಣ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ನೋಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> ಅನ್ನು ತೆರೆಯಿರಿ"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> ಬಬಲ್‌ಗಳಿಗಾಗಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> ಆ್ಯಪ್‌ನ ಬಬಲ್‌ಗಳನ್ನು ಅನುಮತಿಸುವುದೇ?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"ನಿರ್ವಹಿಸಿ"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"ನಿರಾಕರಿಸಿ"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"ಅನುಮತಿಸಿ"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"ನನ್ನನ್ನು ಆನಂತರ ಕೇಳಿ"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> ಆ್ಯಪ್‌ನ <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> ಮತ್ತು <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> ಹೆಚ್ಚಿನವುಗಳ <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"ಸರಿಸಿ"</string>
@@ -981,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ಸ್ಕ್ರೀನ್‌ನ ಎಡ ಕೆಳಭಾಗಕ್ಕೆ ಸರಿಸಿ"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ಕೆಳಗಿನ ಬಲಭಾಗಕ್ಕೆ ಸರಿಸಿ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ವಜಾಗೊಳಿಸಿ"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"ಚಾಟ್‌ಗಳನ್ನು ಮುಂಚೂಣಿಯಲ್ಲಿಡಿ"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> ನಿಂದ ಹೊಸ ಚಾಟ್‌ಗಳು ಬಬಲ್‌ಗಳಾಗಿ ಕಾಣಿಸುತ್ತದೆ. ಅದನ್ನು ತೆರೆಯಲು ಬಬಲ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ. ಅದನ್ನು ಸರಿಸಲು ಡ್ರ್ಯಾಗ್ ಮಾಡಿ.\n\nಬಬಲ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"ಈ ಆ್ಯಪ್‌ನಿಂದ ಬಬಲ್‌ಗಳನ್ನು ಆಫ್ ಮಾಡಲು ನಿರ್ವಹಿಸಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ಸಿಸ್ಟಂ ನ್ಯಾವಿಗೇಷನ ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗಿದೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲು, ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ಸಿಸ್ಟಂ ನ್ಯಾವಿಗೇಷನ್ ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ಸ್ಟ್ಯಾಂಡ್‌ಬೈ"</string>
@@ -999,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"ನಿಯಂತ್ರಣಗಳು"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ತ್ವರಿತ ಪ್ರವೇಶಕ್ಕಾಗಿ ನಿಯಂತ್ರಣಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ಮೆಚ್ಚಿನವುಗಳು"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ಎಲ್ಲಾ"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"ಎಲ್ಲಾ ನಿಯಂತ್ರಣಗಳ ಪಟ್ಟಿಯನ್ನು ಲೋಡ್ ಮಾಡಲು ಆಗಲಿಲ್ಲ."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"ಇತರ"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"ತ್ವರಿತ ನಿಯಂತ್ರಣಗಳಿಗೆ ಸೇರಿಸಿ"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"ಮೆಚ್ಚಿನವುಗಳಿಗೆ ಸೇರಿಸಿ"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"ಈ ನಿಯಂತ್ರಣವನ್ನು ನಿಮ್ಮ ಮೆಚ್ಚಿನವುಗಳಿಗೆ ಸೇರಿಸಲು <xliff:g id="APP">%s</xliff:g> ಸೂಚಿಸಿದೆ."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"ಪಿನ್ ಅಕ್ಷರಗಳು ಅಥವಾ ಸಂಕೇತಗಳನ್ನು ಒಳಗೊಂಡಿದೆ"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"ಸಾಧನದ ಪಿನ್‌ ದೃಢೀಕರಿಸಿ"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"ಪಿನ್ ನಮೂದಿಸಿ"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"ಇತರ ರಚನೆಗಳನ್ನು ನೋಡಲು ಸ್ವೈಪ್ ಮಾಡಿ"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 64f5ff8..73cdbf4 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"스크린샷을 다시 찍어 보세요."</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"저장용량이 부족하여 스크린샷을 저장할 수 없습니다"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"앱이나 조직에서 스크린샷 촬영을 허용하지 않습니다."</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"화면 녹화"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"화면 녹화 세션에 관한 지속적인 알림"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"녹화를 시작하시겠습니까?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"소리나 진동으로 알립니다."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"이 콘텐츠로 연결되는 플로팅 바로가기로 사용자의 주의를 끕니다."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"최근에 닫은 도움말 풍선 없음"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"최근 버블과 내가 닫은 버블이 여기 표시됩니다."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"이 알림은 수정할 수 없습니다."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"이 알림 그룹은 여기에서 설정할 수 없습니다."</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"프록시를 통한 알림"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"기기 서비스"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"제목 없음"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"탭하여 이 앱을 다시 시작하고 전체 화면으로 이동합니다."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> 열기"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> 알림 풍선 설정"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g>의 알림 풍선을 허용하시겠습니까?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"관리"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"거부"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"허용"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"나중에 알림"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g>의 <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> 외 <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>개의 <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"이동"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"왼쪽 하단으로 이동"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"오른쪽 하단으로 이동"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"닫기"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"채팅을 항상 상단에 표시"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g>의 새로운 채팅이 버블로 표시됩니다. 버블을 열려면 탭하세요. 버블을 이동하려면 드래그하세요.\n\n버블을 탭하세요."</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"이 앱에서 버블을 사용 중지하려면 관리를 탭하세요."</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"시스템 탐색이 업데이트되었습니다. 변경하려면 설정으로 이동하세요."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"설정으로 이동하여 시스템 탐색을 업데이트하세요."</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"대기"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"제어"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"빠른 액세스를 위한 컨트롤을 선택하세요."</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"즐겨찾기"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"전체"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"전체 컨트롤 목록을 로드할 수 없습니다."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"기타"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"빠른 컨트롤에 추가"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"즐겨찾기에 추가"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g>에서 이 제어 기능을 즐겨찾기에 추가할 것을 제안합니다."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN에 문자나 기호가 포함됨"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"기기 PIN 확인"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"PIN 입력"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"다른 구조를 보려면 스와이프하세요."</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml
index 00d6699..074063b 100644
--- a/packages/SystemUI/res/values-ky/strings.xml
+++ b/packages/SystemUI/res/values-ky/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Скриншотту кайра тартып көрүңүз"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Сактагычта бош орун аз болгондуктан, скриншот сакталбай жатат"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Скриншот тартууга колдонмо же ишканаңыз тыюу салган."</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Экранды жаздыргыч"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Экранды жаздыруу сеансы боюнча учурдагы билдирме"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Жаздырып башталсынбы?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Билдирүүдөн үн чыгат же дирилдейт."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Калкыма ыкчам баскыч менен көңүлүңүздү бул мазмунга буруп турат."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Акыркы калкып чыкма билдирмелер жок"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Кайра жөнөтүлгөн жана жабылган калкып чыкма билдирмелер ушул жерде көрүнөт."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Бул билдирмелерди өзгөртүүгө болбойт."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Бул билдирмелердин тобун бул жерде конфигурациялоого болбойт"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Прокси билдирмеси"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Түзмөк кызматтары"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Аталышы жок"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Бул колдонмону өчүрүп күйгүзүп, толук экранга өтүү үчүн таптап коюңуз."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосун ачуу"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> көбүктөрүнүн жөндөөлөрү"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосунун калкып чыкма билдирмелерине уруксат бересизби?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Башкаруу"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Тыюу салынат"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Уруксат берүү"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Кийинчерээк суралсын"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> колдонмосунан <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> жана дагы <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> колдонмодон <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Жылдыруу"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Төмөнкү сол жакка жылдыруу"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Төмөнкү оң жакка жылдырыңыз"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Жабуу"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Маектерди ар дайым көрүп туруңуз"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосундагы жаңы маектер калкып чыкма билдирмелер түрүндө көрүнөт. Аны ачуу үчүн калкып чыкма билдирмени таптап коюңуз. Аны сүйрөп жылдырыңыз.\n\nКалкып чыкма билдирмени таптап коюңуз"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Бул колдонмодогу калкып чыкма билдирмелерди өчүрүү үчүн \"Башкарууну\" басыңыз"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Тутум чабыттоосу жаңырды. Өзгөртүү үчүн, Жөндөөлөргө өтүңүз."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Тутум чабыттоосун жаңыртуу үчүн Жөндөөлөргө өтүңүз"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Көшүү режими"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Башкаруу элементтери"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Тез табуу мүмкүнчүлүгү үчүн көзөмөлдөө функцияларын тандоо"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Сүйүктүүлөр"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Баары"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Бардык көзөмөлдөрдүн тизмеси жүктөлгөн жок."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Башка"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Ыкчам көзөмөлгө кошуу"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Сүйүктүүлөргө кошуу"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> бул көзөмөлдү сүйүктүүлөргө кошууну сунуштады."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN код тамгаларды же символдорду камтыйт"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Түзмөктүн PIN кодун ырастоо"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"PIN кодду киргизиңиз"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Башка структураларды көрүү үчүн экранды сүрүңүз"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml
index c937001..64632dc 100644
--- a/packages/SystemUI/res/values-lo/strings.xml
+++ b/packages/SystemUI/res/values-lo/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"ກະລຸນາລອງຖ່າຍຮູບໜ້າຈໍອີກຄັ້ງ"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"ບໍ່ສາມາດຖ່າຍຮູບໜ້າຈໍໄດ້ເນື່ອງຈາກພື້ນທີ່ຈັດເກັບຂໍ້ມູນມີຈຳກັດ"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ແອັບ ຫຼື ອົງກອນຂອງທ່ານບໍ່ອະນຸຍາດໃຫ້ຖ່າຍຮູບໜ້າຈໍ"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"ຕົວບັນທຶກໜ້າຈໍ"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"ການແຈ້ງເຕືອນສຳລັບເຊດຊັນການບັນທຶກໜ້າຈໍໃດໜຶ່ງ"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"ເລີ່ມການບັນທຶກບໍ?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ດຶງຄວາມສົນໃຈຂອງທ່ານດ້ວຍສຽງ ຫຼື ການສັ່ນເຕືອນ."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ເອົາໃຈໃສ່ທາງລັດແບບລອຍໄປຫາເນື້ອຫານີ້."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ບໍ່ມີ bubble ຫຼ້າສຸດ"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Bubbles ຫຼ້າສຸດ ແລະ Bubbles ທີ່ປິດໄປຈະປາກົດຢູ່ບ່ອນນີ້."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ບໍ່ສາມາດແກ້ໄຂການແຈ້ງເຕືອນເຫຼົ່ານີ້ໄດ້."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ບໍ່ສາມາດຕັ້ງຄ່າກຸ່ມການແຈ້ງເຕືອນນີ້ຢູ່ບ່ອນນີ້ໄດ້"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ການແຈ້ງເຕືອນແບບພຣັອກຊີ"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"ບໍລິການອຸປະກອນ"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"ບໍ່ມີຊື່"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"ແຕະເພື່ອຣີສະຕາດແອັບນີ້ ແລະ ໃຊ້ແບບເຕັມຈໍ."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"ເປີດ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"ການຕັ້ງຄ່າສຳລັບ bubble <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"ອະນຸຍາດໃຫ້ມີ bubbles ຈາກ <xliff:g id="APP_NAME">%1$s</xliff:g> ບໍ?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"ຈັດການ"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"ປະຕິເສດ"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"ອະນຸຍາດ"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"ຖາມຂ້ອຍໃນພາຍຫຼັງ"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> ຈາກ <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> ຈາກ <xliff:g id="APP_NAME">%2$s</xliff:g> ແລະ ອີກ <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"ຍ້າຍ"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ຍ້າຍຊ້າຍລຸ່ມ"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ຍ້າຍຂວາລຸ່ມ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ປິດໄວ້"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"ສະແດງການສົນທະນາໄວ້ໜ້າສະເໝີ"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"ການສົນທະນາໃໝ່ຈາກ <xliff:g id="APP_NAME">%1$s</xliff:g> ຈະປາກົດເປັນ bubble. ແຕະໃສ່ bubble ເພື່ອເປີດມັນ ລາກເພື່ອເປີດມັນ.\n\nແຕະໃສ່ bubble"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"ແຕະຈັດການເພື່ອປິດ bubble ຈາກແອັບນີ້"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ອັບເດດການນຳທາງລະບົບແລ້ວ. ເພື່ອປ່ຽນແປງ, ກະລຸນາໄປທີ່ການຕັ້ງຄ່າ."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ໄປທີ່ການຕັ້ງຄ່າເພື່ອອັບເດດການນຳທາງລະບົບ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ສະແຕນບາຍ"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"ການຄວບຄຸມ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ເລືອກການຄວບຄຸມສຳລັບການເຂົ້າເຖິງດ່ວນ"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ລາຍການທີ່ມັກ"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ທັງໝົດ"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"ບໍ່ສາມາດໂຫຼດລາຍຊື່ການຄວບຄຸມທັງໝົດໄດ້."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"ອື່ນໆ"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"ເພີ່ມໃສ່ການຄວບຄຸມດ່ວນ"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"ເພີ່ມໃສ່ລາຍການທີ່ມັກ"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> ແນະນຳການຄວບຄຸມນີ້ເພື່ອເພີ່ມໃສ່ລາຍການທີ່ທ່ານມັກ."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN ປະກອບມີຕົວອັກສອນ ຫຼື ສັນຍາລັກ"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"ຢັ້ງຢືນ PIN ອຸປະກອນ"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"ປ້ອນ PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"ປັດເພື່ອເບິ່ງໂຄງສ້າງອື່ນ"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index d498878..5f22d16 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Pabandykite padaryti ekrano kopiją dar kartą"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Negalima išsaugoti ekrano kopijos dėl ribotos saugyklos vietos"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Jūsų organizacijoje arba naudojant šią programą neleidžiama daryti ekrano kopijų"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Ekrano garso įrašytuvas"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Šiuo metu rodomas ekrano įrašymo sesijos pranešimas"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Pradėti įrašymą?"</string>
@@ -701,7 +705,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Atkreipia dėmesį garsu arba vibravimu."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Naudojant slankųjį spartųjį klavišą lengviau sutelkti dėmesį į šį turinį."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nėra naujausių debesėlių"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Naujausi ir atmesti debesėliai bus rodomi čia."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Šių pranešimų keisti negalima."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Šios grupės pranešimai čia nekonfigūruojami"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Per tarpinį serverį gautas pranešimas"</string>
@@ -975,13 +980,8 @@
     <string name="device_services" msgid="1549944177856658705">"Įrenginio paslaugos"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Nėra pavadinimo"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Palieskite, kad paleistumėte iš naujo šią programą arba įjungtumėte viso ekrano režimą."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Atidaryti „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"„<xliff:g id="APP_NAME">%1$s</xliff:g>“ debesėlių nustatymai"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Leisti programos „<xliff:g id="APP_NAME">%1$s</xliff:g>“ debesėlius?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Tvarkyti"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Atmesti"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Leisti"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Paklausti vėliau"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"„<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>“ iš „<xliff:g id="APP_NAME">%2$s</xliff:g>“"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"„<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>“ iš „<xliff:g id="APP_NAME">%2$s</xliff:g>“ ir dar <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Perkelti"</string>
@@ -990,9 +990,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Perkelti į apačią kairėje"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Perkelti į apačią dešinėje"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Atmesti"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Rodyti pokalbius priekyje"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Nauji pokalbiai iš programos „<xliff:g id="APP_NAME">%1$s</xliff:g>“ bus rodomi kaip debesėliai. Palieskite debesėlį, kad jį atidarytumėte. Nuvilkite, kad perkeltumėte.\n\nPalieskite debesėlį"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Palieskite „Tvarkyti“, kad išjungtumėte debesėlius šioje programoje"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Sistemos naršymo funkcijos atnaujintos. Jei norite pakeisti, eikite į skiltį „Nustatymai“."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Eikite į skiltį „Nustatymai“, kad atnaujintumėte sistemos naršymo funkcijas"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Budėjimo laikas"</string>
@@ -1010,14 +1018,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Valdikliai"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Pasirinkite sparčiosios prieigos valdiklius"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Mėgstamiausi"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Visi"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Nepavyko įkelti visų valdiklių sąrašo."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Kita"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Pridėj. prie sparč. valdiklių"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Pridėjimas prie mėgstamiausių"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"„<xliff:g id="APP">%s</xliff:g>“ pasiūlė pridėti šį valdiklį prie mėgstamiausių."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN kodą sudaro raidės arba simboliai"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Įrenginio PIN patvirtinimas"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Įveskite PIN kodą"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Perbraukite, kad peržiūrėtumėte kitas struktūras"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index a25ae2a..2dd7500 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Mēģiniet izveidot jaunu ekrānuzņēmumu."</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Nevar saglabāt ekrānuzņēmumu, jo krātuvē nepietiek vietas."</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Lietotne vai jūsu organizācija neatļauj veikt ekrānuzņēmumus."</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Ekrāna ierakstītājs"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Aktīvs paziņojums par ekrāna ierakstīšanas sesiju"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Vai sākt ierakstīšanu?"</string>
@@ -698,7 +702,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Jūsu uzmanība tiek piesaistīta ar skaņas vai vibrācijas signālu."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Piesaista jūsu uzmanību, rādot peldošu saīsni uz šo saturu."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nav nesen aizvērtu burbuļu"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Šeit būs redzami nesen rādītie burbuļi un aizvērtie burbuļi."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Šos paziņojumus nevar modificēt."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Šeit nevar konfigurēt šo paziņojumu grupu."</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Starpniekservera paziņojums"</string>
@@ -970,13 +975,8 @@
     <string name="device_services" msgid="1549944177856658705">"Ierīces pakalpojumi"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Nav nosaukuma"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Pieskarieties, lai restartētu šo lietotni un pārietu pilnekrāna režīmā."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Atvērt lietotni <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Lietotnes <xliff:g id="APP_NAME">%1$s</xliff:g> burbuļu iestatījumi"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Vai atļaut burbuļus no lietotnes <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Pārvaldīt"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Neatļaut"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Atļaut"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Pajautāt vēlāk"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> no: <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> no lietotnes “<xliff:g id="APP_NAME">%2$s</xliff:g>” un vēl <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Pārvietot"</string>
@@ -985,9 +985,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Pārvietot apakšpusē pa kreisi"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Pārvietot apakšpusē pa labi"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Nerādīt"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Sarunas priekšplānā"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Jaunas sarunas no lietotnes <xliff:g id="APP_NAME">%1$s</xliff:g> tiks parādītas kā burbuļi. Pieskarieties kādam burbulim, lai to atvērtu. Velciet, lai to pārvietotu.\n\nPieskarieties burbulim."</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Pieskarieties pogai “Pārvaldīt”, lai izslēgtu burbuļus no šīs lietotnes."</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Sistēmas navigācija ir atjaunināta. Lai veiktu izmaiņas, atveriet iestatījumus."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Atveriet iestatījumus, lai atjauninātu sistēmas navigāciju"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Gaidstāve"</string>
@@ -1004,14 +1012,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Vadīklas"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Izvēlieties vadīklas ātrajai piekļuvei."</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Izlase"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Visas"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Nevarēja ielādēt sarakstu ar visām vadīklām."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Cita"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Pievienot ātrajām vadīklām"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Pievienot izlasei"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> ieteica pievienot šo vadīklu izlasei."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN ietver burtus vai simbolus."</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Ierīces PIN verificēšana"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Ievadiet PIN."</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Velciet, lai skatītu citas struktūras"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml
index f0896e6..02eadae 100644
--- a/packages/SystemUI/res/values-mk/strings.xml
+++ b/packages/SystemUI/res/values-mk/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Повторно обидете се да направите слика од екранот"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Сликата од екранот не може да се зачува поради ограничена меморија"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Апликацијата или вашата организација не дозволува снимање слики од екранот"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Снимач на екранот"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Тековно известување за сесија за снимање на екранот"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Да се започне со снимање?"</string>
@@ -558,6 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> управува со вашиот работен профил. Профилот е поврзан на <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, што може да ја следи вашата работна активност на мрежата, заедно со е-пораките, апликациите и веб-сајтовите.\n\nПоврзани сте и на <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, што може да ја следи вашата лична активност на мрежата."</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"Се одржува отклучен од TrustAgent"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"Уредот ќе остане заклучен додека рачно не го отклучите"</string>
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"Добивајте известувања побрзо"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"Видете ги пред да отклучите"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"Не, фала"</string>
@@ -694,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Ви го привлекува вниманието со звук или вибрации."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Ви го задржува вниманието со лебдечка кратенка на содржинава."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Нема неодамнешни балончиња"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Неодамнешните и отфрлените балончиња ќе се појавуваат тука."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Овие известувања не може да се изменат"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Оваа група известувања не може да се конфигурира тука"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Известување преку прокси"</string>
@@ -964,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Услуги за уредот"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Без наслов"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Допрете за да ја рестартирате апликацијава и да ја отворите на цел екран."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Отворете ја <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Поставки за баланчињата на <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Да се дозволат балончиња од <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Управување"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Одбиј"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Дозволи"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Прашај ме подоцна"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> од <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> од <xliff:g id="APP_NAME">%2$s</xliff:g> и уште <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Премести"</string>
@@ -979,11 +980,16 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Премести долу лево"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Премести долу десно"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Отфрли"</string>
-    <!-- no translation found for bubbles_user_education_title (3385222165904578710) -->
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
     <skip />
-    <!-- no translation found for bubbles_user_education_description (6663205638091146934) -->
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
     <skip />
-    <!-- no translation found for bubbles_user_education_manage (1391639189507036423) -->
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
+    <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Допрете „Управувајте“ за да ги исклучите балончињата од апликацијава"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
     <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Навигацијата на системот е ажурирана. За да извршите промени, одете во „Поставки“."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Одете во „Поставки“ за да ја ажурирате навигацијата на системот"</string>
@@ -1000,8 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Контроли"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Изберете контроли за брз пристап"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Омилени"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Сите"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Не можеше да се вчита списокот со сите контроли."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Друга"</string>
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Додајте во „Брзи контроли“"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Додај во омилени"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> предложи да ја додадете контролава во вашите омилени."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN-кодот содржи букви или симболи"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Потврдете го PIN-кодот на уред"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Внесете PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Повлечете за да видите други структури"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
+    <skip />
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
+    <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml
index 47b0558..c4f75c5 100644
--- a/packages/SystemUI/res/values-ml/strings.xml
+++ b/packages/SystemUI/res/values-ml/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"സ്‌ക്രീൻഷോട്ട് എടുക്കാൻ വീണ്ടും ശ്രമിക്കുക"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"സ്‌റ്റോറേജ് ഇടം പരിമിതമായതിനാൽ സ്‌ക്രീൻഷോട്ട് സംരക്ഷിക്കാനാകുന്നില്ല"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"സ്ക്രീൻഷോട്ടുകൾ എടുക്കുന്നത് ആപ്പോ നിങ്ങളുടെ സ്ഥാപനമോ അനുവദിക്കുന്നില്ല"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"സ്ക്രീൻ റെക്കോർഡർ"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"ഒരു സ്ക്രീൻ റെക്കോർഡിംഗ് സെഷനായി നിലവിലുള്ള അറിയിപ്പ്"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"റെക്കോർഡിംഗ് ആരംഭിക്കണോ?"</string>
@@ -558,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> ആണ് നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ മാനേജുചെയ്യുന്നത്. <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> ആപ്പിലേക്ക് പ്രൊഫൈൽ കണക്റ്റുചെയ്‌തിരിക്കുന്നു, അതിന് ഇമെയിലുകൾ, ആപ്പുകൾ, വെബ്‌സൈറ്റുകൾ എന്നിവ ഉൾപ്പെടെ നിങ്ങളുടെ ഔദ്യോഗിക നെറ്റ്‌വർക്ക് ആക്റ്റിവിറ്റി നിരീക്ഷിക്കാനാകും.\n\n<xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> ആപ്പിലേക്കും നിങ്ങൾ കണക്റ്റുചെയ്‌തിരിക്കുന്നു, അതിന് നിങ്ങളുടെ വ്യക്തിഗത നെറ്റ്‌വർക്ക് ആക്റ്റിവിറ്റി നിരീക്ഷിക്കാനാകും."</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"TrustAgent ഉപയോഗിച്ച് അൺലോക്ക് ചെയ്‌തത്"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"നിങ്ങൾ സ്വമേധയാ അൺലോക്കുചെയ്യുന്നതുവരെ ഉപകരണം ലോക്കുചെയ്‌തതായി തുടരും"</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"അറിയിപ്പുകൾ വേഗത്തിൽ സ്വീകരിക്കുക"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"അൺലോക്കുചെയ്യുന്നതിന് മുമ്പ് അവ കാണുക"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"വേണ്ട, നന്ദി"</string>
@@ -696,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ശബ്‌ദമോ വെെബ്രേഷനോ ഉപയോഗിച്ച് നിങ്ങളുടെ ശ്രദ്ധ ക്ഷണിക്കുന്നു."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ഈ ഉള്ളടക്കത്തിലേക്ക് ഒരു ഫ്ലോട്ടിംഗ് കുറുക്കുവഴി ഉപയോഗിച്ച് നിങ്ങളുടെ ശ്രദ്ധ നിലനിർത്തുന്നു."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"അടുത്തിടെയുള്ള ബബിളുകൾ ഒന്നുമില്ല"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"അടുത്തിടെയുള്ള Bubbles-ഉം ഡിസ്മിസ് ചെയ്ത Bubbles-ഉം ഇവിടെ ദൃശ്യമാവും."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ഈ അറിയിപ്പുകൾ പരിഷ്ക്കരിക്കാനാവില്ല."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"അറിയിപ്പുകളുടെ ഈ ഗ്രൂപ്പ് ഇവിടെ കോണ്‍ഫിഗര്‍ ചെയ്യാൻ കഴിയില്ല"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"പ്രോക്‌സി അറിയിപ്പ്"</string>
@@ -966,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"ഉപകരണ സേവനങ്ങള്‍"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"പേരില്ല"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"ഈ ആപ്പ് റീസ്‌റ്റാർട്ട് ചെയ്യാനും പൂർണ്ണ സ്‌ക്രീനാവാനും ടാപ്പ് ചെയ്യുക."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> തുറക്കുക"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> എന്നതിനുള്ള ബബിളുകളുടെ ക്രമീകരണം"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ൽ നിന്നും ബബിളുകളെ അനുവദിക്കണോ?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"മാനേജ് ചെയ്യുക"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"നിരസിക്കുക"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"അനുവദിക്കുക"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"എന്നോട് പിന്നീട് ചോദിക്കുക"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g>-ൽ നിന്നുള്ള <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> എന്നതിൽ നിന്നുള്ള <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>, <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> കൂടുതലും"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"നീക്കുക"</string>
@@ -981,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ചുവടെ ഇടതുഭാഗത്തേക്ക് നീക്കുക"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ചുവടെ വലതുഭാഗത്തേക്ക് നീക്കുക"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ഡിസ്‌മിസ് ചെയ്യുക"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"ചാറ്റുകൾ ഏറ്റവും ആദ്യം കാണുന്ന രീതിയിൽ വയ്ക്കുക"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> എന്നതിൽ നിന്നുള്ള പുതിയ ചാറ്റുകൾ ബബിളുകളായി ദൃശ്യമാവും. ഇത് തുറക്കാൻ ബബിൾ ടാപ്പ് ചെയ്യുക. ഇത് നീക്കാൻ വലിച്ചിടുക.\n\nബബിൾ ടാപ്പ് ചെയ്യുക"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"ഈ ആപ്പിൽ നിന്നുള്ള ബബിളുകൾ ഓഫാക്കാൻ \'മാനേജ് ചെയ്യുക\' ടാപ്പ് ചെയ്യുക"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"സിസ്‌റ്റം നാവിഗേഷൻ അപ്‌ഡേറ്റ് ചെയ്‌തു. മാറ്റങ്ങൾ വരുത്താൻ ക്രമീകരണത്തിലേക്ക് പോവുക."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"സിസ്‌റ്റം നാവിഗേഷൻ അപ്‌ഡേറ്റ് ചെയ്യാൻ ക്രമീകരണത്തിലേക്ക് പോവുക"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"സ്‌റ്റാൻഡ്‌ബൈ"</string>
@@ -999,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"നിയന്ത്രണങ്ങൾ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"അതിവേഗ ആക്‌സസിനുള്ള നിയന്ത്രണങ്ങൾ തിരഞ്ഞെടുക്കുക"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"പ്രിയപ്പെട്ടവ"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"എല്ലാം"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"എല്ലാ നിയന്ത്രണങ്ങളുടെയും ലിസ്റ്റ് ലോഡ് ചെയ്യാനായില്ല."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"മറ്റുള്ളവ"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"ദ്രുത നിയന്ത്രണങ്ങളിലേക്ക് ചേർക്കൂ"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"പ്രിയപ്പെട്ടവയിലേക്ക് ചേർക്കുക"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"ഈ നിയന്ത്രണത്തെ നിങ്ങളുടെ പ്രിയപ്പെട്ടവയിലേക്ക് ചേർക്കാൻ <xliff:g id="APP">%s</xliff:g> ശുപാർശ ചെയ്‌തു."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"പിന്നിൽ അക്ഷരങ്ങളോ ചിഹ്നങ്ങളോ അടങ്ങിയിരിക്കുന്നു"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"ഉപകരണ പിൻ പരിശോധിച്ചുറപ്പിക്കൂ"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"പിൻ നൽകുക"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"മറ്റ് ഘടനകൾ കാണാൻ സ്വൈപ്പ് ചെയ്യുക"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml
index 247a81d..3e0db6b 100644
--- a/packages/SystemUI/res/values-mn/strings.xml
+++ b/packages/SystemUI/res/values-mn/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Дэлгэцийн зургийг дахин дарж үзнэ үү"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Сангийн багтаамж бага байгаа тул дэлгэцээс дарсан зургийг хадгалах боломжгүй байна"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Таны апп, байгууллагад дэлгэцийн зураг авахыг зөвшөөрдөггүй"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Дэлгэцийн бичигч"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Дэлгэц бичих горимын үргэлжилж буй мэдэгдэл"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Бичлэгийг эхлүүлэх үү?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Дуу эсвэл чичиргээгүйгээр таны анхаарлыг татна."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Энэ контентын хөвөн гарч ирэх товчлолтойгоор таны анхаарлыг татдаг."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Саяхны бөмбөлөг алга байна"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Саяхны бөмбөлгүүд болон үл хэрэгссэн бөмбөлгүүд энд харагдана."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Эдгээр мэдэгдлийг өөрчлөх боломжгүй."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Энэ бүлэг мэдэгдлийг энд тохируулах боломжгүй байна"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Прокси хийсэн мэдэгдэл"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Төхөөрөмжийн үйлчилгээ"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Гарчиггүй"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Энэ аппыг дахин эхлүүлж, бүтэн дэлгэцэд орохын тулд товшино уу."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g>-г нээх"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g>-н хөөсний тохиргоо"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g>-н хөөсийг зөвшөөрөх үү?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Удирдах"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Татгалзах"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Зөвшөөрөх"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Надаас дараа асуу"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g>-н <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g>-н <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> болон бусад <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Зөөх"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Зүүн доош зөөх"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Баруун доош зөөх"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Үл хэрэгсэх"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Чатуудыг дэлгэцийн дээд талд байлгах"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g>-н шинэ чатууд нь бөмбөлөг маягаар харагдана. Бөмбөлгийг нээхийн тулд түүнийг товшино уу. Түүнийг зөөхийн тулд чирнэ үү.\n\nБөмбөлгийг товшино уу"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Энэ аппын бөмбөлгүүдийг унтраахын тулд Удирдах дээр товшино уу"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Системийн навигацыг шинэчиллээ. Өөрчлөхийн тулд Тохиргоо руу очно уу."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Системийн навигацыг шинэчлэхийн тулд Тохиргоо руу очно уу"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Зогсолтын горим"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Хяналт"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Шуурхай хандалтын хяналт сонгох"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Дуртай"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Бүх"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Бүх хяналтын жагсаалтыг ачаалж чадсангүй."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Бусад"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Шуурхай хяналтад нэмэх"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Дуртайд нэмэх"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> нь энэ хяналтыг дуртайдаа нэмэхийг санал болгосон."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"ПИН нь үсэг эсвэл дүрс тэмдэгт агуулдаг"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Төхөөрөмжийн ПИН-г бататгах"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"ПИН оруулна уу"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Бусад бүтцийг харахын тулд шударна уу"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml
index 118627a..115ff9a 100644
--- a/packages/SystemUI/res/values-mr/strings.xml
+++ b/packages/SystemUI/res/values-mr/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"स्क्रीनशॉट पुन्हा घेण्याचा प्रयत्न करा"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"मर्यादित स्टोरेज जागेमुळे स्क्रीनशॉट सेव्ह करू शकत नाही"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"अ‍ॅप किंवा आपल्या संस्थेद्वारे स्क्रीनशॉट घेण्याची अनुमती नाही"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"स्क्रीन रेकॉर्डर"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"स्क्रीन रेकॉर्ड सत्रासाठी सुरू असलेली सूचना"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"रेकॉर्डिंग सुरू करायचे आहे का?"</string>
@@ -558,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"तुमचे कार्य प्रोफाइल <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारे व्यवस्थापित केले जाते. प्रोफाइल <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> शी कनेक्‍ट केले आहे, जे ईमेल, अ‍ॅप्स आणि वेबसाइटसह आपल्‍या कार्य नेटवर्क क्रियाकलापाचे परीक्षण करू शकते.\n\nतुम्ही <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> शीदेखील कनेक्‍ट केले आहे, जे आपल्या वैयक्तिक नेटवर्क क्रियाकलापाचे परीक्षण करू शकते."</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"TrustAgent ने अनलॉक ठेवले"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"तुम्ही मॅन्युअली अनलॉक करेपर्यंत डिव्हाइस लॉक राहील"</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"सूचना अधिक जलद मिळवा"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"तुम्ही अनलॉक करण्‍यापूर्वी त्यांना पहा"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"नाही, नको"</string>
@@ -696,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"आवाज किंवा व्हायब्रेशनने तुमचे लक्ष वेधून घेते."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"या आशयाच्या फ्लोटिंग शॉर्टकटसह तुमचे लक्ष केंद्रित करते."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"अलीकडील कोणतेही बबल नाहीत"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"अलीकडील बबल आणि डिसमिस केलेले बबल येथे दिसतील."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"या सूचनांमध्ये सुधारणा केली जाऊ शकत नाही."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"या सूचनांचा संच येथे कॉन्फिगर केला जाऊ शकत नाही"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"प्रॉक्सी केलेल्या सूचना"</string>
@@ -966,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"डिव्हाइस सेवा"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"शीर्षक नाही"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"हे अ‍ॅप रीस्टार्ट करण्यासाठी आणि फुल स्क्रीन करण्यासाठी टॅप करा."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> उघडा"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> बबलसाठी सेटिंग्ज"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> वरील बबलना अनुमती द्यायची?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"व्यवस्थापित करा"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"नाकारा"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"अनुमती द्या"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"मला नंतर विचारा"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> कडून <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> आणि आणखी <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> कडून <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"हलवा"</string>
@@ -981,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"तळाशी डावीकडे हलवा"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"तळाशी उजवीकडे हलवा"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"डिसमिस करा"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"चॅट दिसतील असे ठेवा"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> वरील नवीन चॅट बुडबुडे म्हणून दिसतील. बुडबुडे उघडण्यासाठी त्यावर टॅप करा. तो हलवण्यासाठी ड्रॅग करा.\n\nबुडबुड्यावर टॅप करा"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"या अ‍ॅपमधून बुडबुडे बंद करण्यासाठी व्यवस्थापित करा वर टॅप करा"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"सिस्टम नेव्हिगेशन अपडेट केले. बदल करण्यासाठी, सेटिंग्जवर जा."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"सिस्टम नेव्हिगेशन अपडेट करण्यासाठी सेटिंग्जवर जा"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"स्टँडबाय"</string>
@@ -999,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"नियंत्रणे"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"झटपट अ‍ॅक्सेससाठी नियंत्रणे निवडा"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"आवडते"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"सर्व"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"सर्व नियंत्रणांची सूची लोड करता आली नाही."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"इतर"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"झटपट नियंत्रणे यामध्ये जोडा"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"आवडीचे यामध्ये जोडा"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> ने तुमच्या आवडीचे मध्ये जोडण्यासाठी या नियंत्रणाची शिफारस केली आहे."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"पिनमध्ये अक्षरांचा किंवा चिन्हांचा समावेश असतो"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"डिव्हाइसच्या पिनची पडताळणी करा"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"पिन एंटर करा"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"इतर संरचना पाहण्यासाठी स्वाइप करा"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index 454ebfb..5c55090 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Cuba ambil tangkapan skrin sekali lagi"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Tidak dapat menyimpan tangkapan skrin kerana ruang storan terhad"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Pengambilan tangkapan skrin tidak dibenarkan oleh apl atau organisasi anda"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Perakam Skrin"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Pemberitahuan breterusan untuk sesi rakaman skrin"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Mula Merakam?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Menarik perhatian anda dengan bunyi atau getaran."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Memastikan anda memberikan perhatian dengan pintasan terapung ke kandungan ini."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Tiada gelembung terbaharu"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Gelembung baharu dan gelembung yang diketepikan akan dipaparkan di sini."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Pemberitahuan ini tidak boleh diubah suai."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Kumpulan pemberitahuan ini tidak boleh dikonfigurasikan di sini"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Pemberitahuan berproksi"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Perkhidmatan Peranti"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Tiada tajuk"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Ketik untuk memulakan semula apl ini dan menggunakan skrin penuh."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Buka <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Tetapan untuk gelembung <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Benarkan gelembung daripada <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Urus"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Tolak"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Benarkan"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Tanya saya kemudian"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> daripada <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> daripada <xliff:g id="APP_NAME">%2$s</xliff:g> dan <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> lagi"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Alih"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Alihkan ke bawah sebelah kiri"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Alihkan ke bawah sebelah kanan"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ketepikan"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Pastikan sembang sentiasa di hadapan"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Sembang baharu daripada <xliff:g id="APP_NAME">%1$s</xliff:g> akan dipaparkan sebagai gelembung. Ketik gelembung untuk membuka. Seret untuk mengalihkan gelembung.\n\nKetik gelembung itu"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Ketik Urus untuk mematikan gelembung daripada apl ini"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigasi sistem dikemas kini. Untuk membuat perubahan, pergi ke Tetapan."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Pergi ke Tetapan untuk mengemas kini navigasi sistem"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Tunggu sedia"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kawalan"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Pilih kawalan untuk akses pantas"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Kegemaran"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Semua"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Senarai semua kawalan tidak dapat dimuatkan."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Lain-lain"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Tambahkan pada Kawalan Pantas"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Tambahkan pada kegemaran"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> mencadangkan kawalan ini untuk ditambahkan pada kegemaran anda."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN mengandungi huruf atau simbol"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Sahkan PIN peranti"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Masukkan PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Leret untuk melihat struktur lain"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml
index c65f949..34f7a46 100644
--- a/packages/SystemUI/res/values-my/strings.xml
+++ b/packages/SystemUI/res/values-my/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"မျက်နှာပြင်ပုံကို ထပ်ရိုက်ကြည့်ပါ"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"သိုလှောင်ခန်းနေရာ အကန့်အသတ်ရှိသောကြောင့် ဖန်သားပြင်ဓာတ်ပုံကို သိမ်းဆည်း၍မရပါ"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ဖန်သားပြင်ဓာတ်ပုံရိုက်ကူးခြင်းကို ဤအက်ပ် သို့မဟုတ် သင်၏အဖွဲ့အစည်းက ခွင့်မပြုပါ"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"ဖန်သားပြင် ရိုက်ကူးမှု"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"ဖန်သားပြင် ရိုက်ကူးသည့် စက်ရှင်အတွက် ဆက်တိုက်လာနေသော အကြောင်းကြားချက်"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"စတင် ရိုက်ကူးမလား။"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"အသံ သို့မဟုတ် တုန်ခါမှုဖြင့် အာရုံစိုက်လာအောင် ပြုလုပ်သည်။"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"အကြောင်းအရာကို floating shortcut ကိုသုံး၍ အာရုံစိုက်လာအောင်လုပ်ပါ။"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"မကြာမီက ပူဖောင်းကွက်များ မရှိပါ"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"လတ်တလော ပူဖောင်းကွက်များနှင့် ပိတ်လိုက်သော ပူဖောင်းကွက်များသည် ဤနေရာတွင် ပေါ်ပါမည်။"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ဤအကြောင်းကြားချက်များကို ပြုပြင်၍ မရပါ။"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ဤအကြောင်းကြားချက်အုပ်စုကို ဤနေရာတွင် စီစဉ်သတ်မှတ်၍ မရပါ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ပရောက်စီထည့်ထားသော အကြောင်းကြားချက်"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"စက်ပစ္စည်းဝန်ဆောင်မှုများ"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"ခေါင်းစဉ် မရှိပါ"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"ဤအက်ပ်ကို ပြန်စတင်ပြီး မျက်နှာပြင်အပြည့်လုပ်ရန် တို့ပါ။"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> ကိုဖွင့်ရန်"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> ပူဖောင်းကွက်များအတွက် ဆက်တင်များ"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> မှ ပူဖောင်းကွက်များကို ခွင့်ပြုလိုပါသလား။"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"စီမံရန်"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"ငြင်းပယ်ရန်"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"ခွင့်ပြုရန်"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"နောက်မှ မေးရန်"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> မှ <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> နှင့် နောက်ထပ် <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> ခုမှ <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"ရွှေ့ရန်"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ဘယ်အောက်ခြေသို့ ရွှေ့ရန်"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ညာအောက်ခြေသို့ ရွှေ့ပါ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ပယ်ရန်"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"ချတ်များကို ‌အရှေ့တွင်ထားခြင်း"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> မှ ချတ်အသစ်များသည် ပူဖောင်းများအဖြစ် ပေါ်လာပါမည်။ ဖွင့်ရန် ပူဖောင်းကို တို့ပါ။ ၎င်းကို ဖိဆွဲ၍ ရွှေ့ပါ။\n\nပူဖောင်းကို တို့ပါ"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"ဤအက်ပ်မှနေ၍ ပူဖောင်းများကို ပိတ်ရန်အတွက် \'စီမံရန်\' ကို တို့ပါ"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"စနစ်လမ်းညွှန်ခြင်း အပ်ဒိတ်လုပ်ပြီးပါပြီ။ အပြောင်းအလဲများ ပြုလုပ်ရန် \'ဆက်တင်များ\' သို့သွားပါ။"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"စနစ်လမ်းညွှန်ခြင်း အပ်ဒိတ်လုပ်ရန် \'ဆက်တင်များ\' သို့သွားပါ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"အသင့်အနေအထား"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"ထိန်းချုပ်မှုများ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"အမြန်သုံးခွင့်အတွက် ထိန်းချုပ်မှုများကို ရွေးချယ်ပါ"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"အကြိုက်ဆုံး"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"အားလုံး"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"ထိန်းချုပ်မှုအားလုံး၏ စာရင်းကို ဖွင့်၍မရပါ။"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"အခြား"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"\'အမြန်ခလုတ်များ\' သို့ထည့်ခြင်း"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"အကြိုက်ဆုံးများသို့ ထည့်ရန်"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> သည် ဤခလုတ်ကို သင့်အကြိုက်ဆုံးများသို့ ထည့်ရန် အကြံပြုထားသည်။"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"ပင်နံပါတ်တွင် စာလုံး သို့မဟုတ် သင်္ကေတများပါဝင်သည်"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"စက်၏ပင်နံပါတ်ကို အတည်ပြုခြင်း"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"ပင်နံပါတ် ထည့်ပါ"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"အခြားတည်ဆောက်ပုံများကို ကြည့်ရန် ပွတ်ဆွဲပါ"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index d8f6294..6673016 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Prøv å ta skjermdump på nytt"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Kan ikke lagre skjermdumpen på grunn av begrenset lagringsplass"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Appen eller organisasjonen din tillater ikke at du tar skjermdumper"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Skjermopptaker"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Vedvarende varsel for et skjermopptak"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Vil du starte opptaket?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Får oppmerksomheten din med lyd eller vibrering."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Holder deg oppmerksom med en svevende snarvei til dette innholdet."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Ingen nylige bobler"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Nylige bobler og avviste bobler vises her."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Disse varslene kan ikke endres."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Denne varselgruppen kan ikke konfigureres her"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Omdirigert varsel"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Enhetstjenester"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Ingen tittel"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Trykk for å starte denne appen på nytt og vise den i fullskjerm."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Åpne <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Innstillinger for <xliff:g id="APP_NAME">%1$s</xliff:g>-bobler"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Vil du tillate bobler fra <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Administrer"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Avvis"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Tillat"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Spør meg senere"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> fra <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> fra <xliff:g id="APP_NAME">%2$s</xliff:g> og <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> flere"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Flytt"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Flytt til nederst til venstre"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Flytt til nederst til høyre"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Avvis"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Ha chatter i forgrunnen"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Nye chatter fra <xliff:g id="APP_NAME">%1$s</xliff:g> vises som bobler. Trykk på en boble for å åpne den. Dra for å flytte den.\n\nTrykk på boblen"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Trykk på Administrer for å slå av bobler for denne appen"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systemnavigeringen er oppdatert. For å gjøre endringer, gå til Innstillinger."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Gå til Innstillinger for å oppdatere systemnavigeringen"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Ventemodus"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontroller"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Velg kontroller for rask tilgang"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritter"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Alle"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Listen over alle kontroller kunne ikke lastes inn."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Annet"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Legg til i hurtigkontroller"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Legg til som favoritt"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> har foreslått at du legger denne kontrollen til i favorittene dine."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN-koden inneholder bokstaver eller symboler"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Bekreft enhetens PIN-kode"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Skriv inn PIN-koden"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Sveip for å se andre strukturer"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml
index 73564a1..d314e09 100644
--- a/packages/SystemUI/res/values-ne/strings.xml
+++ b/packages/SystemUI/res/values-ne/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"स्क्रिनसट फेरि लिएर हेर्नुहोस्"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"भण्डारण ठाउँ सीमित भएका कारण स्क्रिनसट सुरक्षित गर्न सकिएन"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"उक्त अनुप्रयोग वा तपाईंको संगठनले स्क्रिनसटहरू लिन दिँदैन"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"स्क्रिन रेकर्डर"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"कुनै स्क्रिन रेकर्ड गर्ने सत्रका लागि चलिरहेको सूचना"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"रेकर्ड गर्न थाल्ने हो?"</string>
@@ -558,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> ले तपाईंको कार्य प्रोफाइलको व्यवस्थापन गर्छ। उक्त प्रोफाइल तपाईंका इमेल, अनुप्रयोग र वेवसाइटहरू लगायत तपाईंको नेटवर्कको गतिविधिको अनुगमन गर्नसक्ने <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> मा जडान छ। \n\nतपाईं आफ्नो व्यक्तिगत नेटवर्कको गतिविधिको अनुगमन गर्नसक्ने <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> मा पनि जडान हुनुहुन्छ।"</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"TrustAgent ले खुला राखेको"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"तपाईँले नखोले सम्म उपकरण बन्द रहनेछ"</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"छिटो सूचनाहरू प्राप्त गर्नुहोस्"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"तपाईँले अनलक गर्नअघि तिनीहरूलाई हेर्नुहोस्"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"धन्यवाद पर्दैन"</string>
@@ -696,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ध्वनि वा कम्पनमार्फत तपाईंको ध्यान आकर्षित गर्छ।"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"फ्लोटिङ सर्टकटमार्फत यो सामग्रीतर्फ तपाईंको ध्यान आकर्षित गर्दछ।"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"हालसालै खारेज गरिएको कुनै पनि बबल छैन"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"हालैका बबल र खारेज गरिएका बबलहरू यहाँ देखिने छन्।"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"यी सूचनाहरू परिमार्जन गर्न मिल्दैन।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"यहाँबाट सूचनाहरूको यो समूह कन्फिगर गर्न सकिँदैन"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"प्रोक्सीमार्फत आउने सूचना"</string>
@@ -966,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"यन्त्रका सेवाहरू"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"शीर्षक छैन"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"यो अनुप्रयोग पुनः सुरु गर्न ट्याप गर्नुहोस् र पूर्ण स्क्रिन मोडमा जानुहोस्।"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> खोल्नुहोस्"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> का बबलसम्बन्धी सेटिङहरू"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> का बबलहरूलाई अनुमति दिने हो?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"व्यवस्थापन गर्नुहोस्"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"अस्वीकार गर्नुहोस्"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"अनुमति दिनुहोस्"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"मलाई पछि सोध्नुहोस्"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> को <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> का <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> र थप <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"सार्नुहोस्"</string>
@@ -981,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"पुछारमा बायाँतिर सार्नुहोस्"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"पुछारमा दायाँतिर सार्नुहोस्"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"हटाउनुहोस्"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"कुराकानीलाई अग्रभूमिमा राख्नुहोस्"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> का नयाँ कुराकानीहरू बबलका रूपमा देखा पर्ने छन्। बबल खोल्न त्यसमा ट्याप गर्नुहोस्। बबल सार्न त्यसलाई घिसार्नुहोस्।\n\nबबलमा ट्याप गर्नुहोस्"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"यो अनुप्रयोगमा बबल निष्क्रिय पार्न व्यवस्थापन गर्नुहोस् नामक बटन ट्याप गर्नुहोस्"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"प्रणालीको नेभिगेसन अद्यावधिक गरियो। परिवर्तन गर्न सेटिङमा जानुहोस्।"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"प्रणालीको नेभिगेसन अद्यावधिक गर्न सेटिङमा जानुहोस्"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"स्ट्यान्डबाई"</string>
@@ -999,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"नियन्त्रणहरू"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"द्रुत पहुँचका लागि नियन्त्रणहरू छनौट गर्नुहोस्"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"मन पर्ने कुराहरू"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"सबै"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"सबै नियन्त्रणहरूको सूची लोड गर्न सकिएन।"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"अन्य"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"द्रुत नियन्त्रणहरूमा थप्नुहोस्"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"मन पर्ने कुराहरूमा थप्नुहोस्"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> ले यो नियन्त्रण तपाईंका मन पर्ने कुराहरूमा थप्न सुझाव सिफारिस गरेको छ।"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN मा अक्षर वा चिन्हहरू समाविष्ट हुन्छन्"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"यन्त्रको PIN पुष्टि गर्नुहोस्"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"PIN प्रविष्टि गर्नुहोस्"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"अन्य संरचनाहरू हेर्न स्वाइप गर्नुहोस्"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 86f0f8f..8b77c57 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Probeer opnieuw een screenshot te maken"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Kan screenshot niet opslaan vanwege beperkte opslagruimte"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Het maken van screenshots wordt niet toegestaan door de app of je organisatie"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Schermrecorder"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Doorlopende melding voor een schermopname-sessie"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Opname starten?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Trekt je aandacht met geluid of trillingen."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Trekt de aandacht met een zwevende snelkoppeling naar deze content."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Geen recente ballonnen"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Recente bubbels en gesloten bubbels worden hier weergegeven."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Deze meldingen kunnen niet worden aangepast."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Deze groep meldingen kan hier niet worden geconfigureerd"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Melding via proxy"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Apparaatservices"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Geen titel"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Tik om deze app opnieuw te starten en te openen op het volledige scherm."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> openen"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Instellingen voor <xliff:g id="APP_NAME">%1$s</xliff:g>-ballonnen"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Ballonnen van <xliff:g id="APP_NAME">%1$s</xliff:g> toestaan?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Beheren"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Weigeren"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Toestaan"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Later vragen"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> van <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> van <xliff:g id="APP_NAME">%2$s</xliff:g> en nog <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Verplaatsen"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Naar linksonder verplaatsen"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Naar rechtsonder verplaatsen"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Sluiten"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Chats op de voorgrond houden"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Nieuwe chats van <xliff:g id="APP_NAME">%1$s</xliff:g> worden weergegeven als bubbels. Tik op een bubbel om deze te openen. Sleep om deze te verplaatsen.\n\nTik op de bubbel"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tik op Beheren om bubbels van deze app uit te schakelen"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systeemnavigatie geüpdatet. Als je wijzigingen wilt aanbrengen, ga je naar Instellingen."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Ga naar Instellingen om de systeemnavigatie te updaten"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stand-by"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Bedieningselementen"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Kies bedieningselementen voor snelle toegang"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favorieten"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Alle"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Kan lijst met alle bedieningselementen niet laden."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Overig"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Toevoegen aan snelle bedieningselementen"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Toevoegen aan favorieten"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> heeft voorgesteld dit bedieningselement toe te voegen aan je favorieten."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Pincode bevat letters of symbolen"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Apparaatpincode verifiëren"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Geef de pincode op"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Swipe om andere gebouwen te bekijken"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-or/strings.xml b/packages/SystemUI/res/values-or/strings.xml
index f46036e..204c3d1 100644
--- a/packages/SystemUI/res/values-or/strings.xml
+++ b/packages/SystemUI/res/values-or/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"ପୁଣିଥରେ ସ୍କ୍ରୀନ୍‌ଶଟ୍ ନେବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"ସୀମିତ ଷ୍ଟୋରେଜ୍‍ ସ୍ପେସ୍‍ ହେତୁ ସ୍କ୍ରୀନଶଟ୍‍ ସେଭ୍‍ ହୋଇପାରିବ ନାହିଁ"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ଆପ୍‍ କିମ୍ବା ସଂସ୍ଥା ଦ୍ୱାରା ସ୍କ୍ରୀନଶଟ୍‍ ନେବାକୁ ଅନୁମତି ଦିଆଯାଇ ନାହିଁ"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"ସ୍କ୍ରିନ୍ ରେକର୍ଡର୍"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"ଏକ ସ୍କ୍ରି‍ନ୍‍ ରେକର୍ଡ୍‍ ସେସନ୍‍ ପାଇଁ ଚାଲୁଥିବା ବିଜ୍ଞପ୍ତି"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"ରେକର୍ଡିଂ ଆରମ୍ଭ କରିବେ?"</string>
@@ -558,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"ଆପଣଙ୍କ ୱର୍କ ପ୍ରୋଫାଇଲ୍‍ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ଦ୍ୱାରା ପରିଚାଳନା କରାଯାଉଛି। ପ୍ରୋଫାଇଲଟି <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> ସହ ସଂଯୁକ୍ତ ଅଛି, ଯାହା ଇମେଲ୍‍, ଆପ୍‌ ଓ ୱେବସାଇଟ୍‍ ସମେତ ଆପଣଙ୍କ ନେଟୱର୍କ ଗତିବିଧିକୁ ନିରୀକ୍ଷଣ କରିପାରେ।\n\nଆପଣ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>ରେ ମଧ୍ୟ ସଂଯୁକ୍ତ, ଯାହା ଆପଣଙ୍କ ବ୍ୟକ୍ତିଗତ ନେଟୱର୍କ ଗତିବିଧିକୁ ନିରୀକ୍ଷଣ କରିପାରେ।"</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"TrustAgent ଦ୍ୱାରା ଅନ୍‌ଲକ୍ ରହିଛି"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"ଯେତେବେଳ ପର୍ଯ୍ୟନ୍ତ ଆପଣ ମାନୁଆଲୀ ଅନଲକ୍‌ କରିନାହାନ୍ତି, ସେତେବେଳ ପର୍ଯ୍ୟନ୍ତ ଡିଭାଇସ୍‌ ଲକ୍‌ ରହିବ"</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"ବିଜ୍ଞପ୍ତିକୁ ଶୀଘ୍ର ପ୍ରାପ୍ତ କରନ୍ତୁ"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"ଅନଲକ୍‌ କରିବା ପୁର୍ବରୁ ସେମାନଙ୍କୁ ଦେଖନ୍ତୁ"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"ନାହିଁ, ଥାଉ"</string>
@@ -696,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ସାଉଣ୍ଡ କିମ୍ବା ଭାଇବ୍ରେସନ୍ ମାଧ୍ୟମରେ ଆପଣଙ୍କର ଧ୍ୟାନ ଆକର୍ଷିତ କରିଥାଏ।"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ଏହି ବିଷୟବସ୍ତୁ ପାଇଁ ଏକ ଭାସମାନ ସର୍ଟକଟ୍ ସହ ଆପଣଙ୍କର ଧ୍ୟାନ ଦିଅନ୍ତୁ।"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ବର୍ତ୍ତମାନ କୌଣସି ବବଲ୍ ନାହିଁ"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"ବର୍ତ୍ତମାନର ବୁଦବୁଦଗୁଡ଼ିକ ଏବଂ ଖାରଜ କରାଯାଇଥିବା ବୁଦବୁଦଗୁଡ଼ିକ ଏଠାରେ ଦେଖାଯିବ।"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ଏହି ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ପରିବର୍ତ୍ତନ କରିହେବ ନାହିଁ।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ଏଠାରେ ଏହି ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକର ଗ୍ରୁପ୍ କନଫ୍ୟୁଗର୍ କରାଯାଇପାରିବ ନାହିଁ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ବିଜ୍ଞପ୍ତି ପ୍ରକ୍ସୀ ହୋଇଛି"</string>
@@ -966,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"ଡିଭାଇସ୍‍ ସେବାଗୁଡିକ"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"କୌଣସି ଶୀର୍ଷକ ନାହିଁ"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"ଏହି ଆପ୍‌କୁ ରିଷ୍ଟାର୍ଟ କରିବାକୁ ଟାପ୍ କରନ୍ତୁ ଏବଂ ଫୁଲ୍‌ସ୍କ୍ରିନ୍‌କୁ ଯାଆନ୍ତୁ।"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> ଖୋଲନ୍ତୁ"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> ବବଲ୍‌ଗୁଡ଼ିକ ପାଇଁ ସେଟିଂସ୍"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g>ରୁ ବବ୍‌ଲ୍‌ଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"ପରିଚାଳନା କରନ୍ତୁ"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"ପ୍ରତ୍ୟାଖ୍ୟାନ କରନ୍ତୁ"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"ଅନୁମତି ଦିଅନ୍ତୁ"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"ମୋତେ ପରେ ପଚାରନ୍ତୁ"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g>ରୁ <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> ଏବଂ ଅଧିକ <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>ଟିରୁ <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"ନିଅନ୍ତୁ"</string>
@@ -981,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ତଳ ବାମକୁ ନିଅନ୍ତୁ"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ତଳ ଡାହାଣକୁ ନିଅନ୍ତୁ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ଖାରଜ କରନ୍ତୁ"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"ଚାଟଗୁଡ଼ିକ ଆଗ ପଟେ ରଖନ୍ତୁ"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g>ର ନୂଆ ଚାଟଗୁଡ଼ିକ ବବଲ୍‍ ଭାବରେ ଦେଖାଯିବ। ଏହାକୁ ଖୋଲିବା ପାଇଁ ଏକ ବବଲରେ ଟାପ୍ କରନ୍ତୁ। ଏହାକୁ ମୁଭ୍ କରିବା ପାଇଁ ଟାଣନ୍ତୁ। \n\nବବଲରେ ଟାପ୍ କରନ୍ତୁ"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"ଏହି ଆପର ବବଲଗୁଡ଼ିକ ବନ୍ଦ କରିବା ପାଇଁ \'ପରିଚାଳନା କରନ୍ତୁ\' ବଟନରେ ଟାପ୍ କରନ୍ତୁ"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ସିଷ୍ଟମ୍ ନାଭିଗେସନ୍ ଅପ୍‌ଡେଟ୍ ହୋଇଛି। ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ, ସେଟିଂସ୍‌କୁ ଯାଆନ୍ତୁ।"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ସିଷ୍ଟମ୍ ନାଭିଗେସନ୍ ଅପ୍‌ଡେଟ୍ କରିବା ପାଇଁ ସେଟିଂସ୍‍କୁ ଯାଆନ୍ତୁ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ଷ୍ଟାଣ୍ଡବାଏ"</string>
@@ -999,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ଶୀଘ୍ର ଆକ୍ସେସ୍ ପାଇଁ ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକୁ ଚୟନ କରନ୍ତୁ"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ପସନ୍ଦଗୁଡ଼ିକ"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ସବୁ"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"ସବୁ ନିୟନ୍ତ୍ରଣର ତାଲିକା ଲୋଡ୍ କରିପାରିଲା ନାହିଁ।"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"ଅନ୍ୟ"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"ଦ୍ରୁତ ନିୟନ୍ତ୍ରଣରେ ଯୋଗ କରନ୍ତୁ"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"ପସନ୍ଦଗୁଡ଼ିକରେ ଯୋଗ କରନ୍ତୁ"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"ଏହି ନିୟନ୍ତ୍ରଣକୁ ଆପଣଙ୍କ ପସନ୍ଦଗୁଡ଼ିକରେ ଯୋଗ କରିବାକୁ <xliff:g id="APP">%s</xliff:g> ପ୍ରସ୍ତାବ ଦେଇଛି।"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PINରେ ଅକ୍ଷର କିମ୍ୱା ସଙ୍କେତଗୁଡ଼ିକ ଥାଏ"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"ଡିଭାଇସ୍ PIN ଯାଞ୍ଚ କରନ୍ତୁ"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"PIN ଲେଖନ୍ତୁ"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"ଅନ୍ୟ ଷ୍ଟ୍ରକଚରଗୁଡ଼ିକ ଦେଖିବାକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml
index 3a43f0f..e071db5 100644
--- a/packages/SystemUI/res/values-pa/strings.xml
+++ b/packages/SystemUI/res/values-pa/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"ਸਕ੍ਰੀਨਸ਼ਾਟ ਦੁਬਾਰਾ ਲੈ ਕੇ ਦੇਖੋ"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"ਸੀਮਿਤ ਸਟੋਰੇਜ ਹੋਣ ਕਾਰਨ ਸਕ੍ਰੀਨਸ਼ਾਟ ਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ਐਪ ਜਾਂ ਤੁਹਾਡੀ ਸੰਸਥਾ ਵੱਲੋਂ ਸਕ੍ਰੀਨਸ਼ਾਟ ਲੈਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੱਤੀ ਗਈ ਹੈ"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"ਸਕ੍ਰੀਨ ਰਿਕਾਰਡਰ"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"ਕਿਸੇ ਸਕ੍ਰੀਨ ਰਿਕਾਰਡ ਸੈਸ਼ਨ ਲਈ ਚੱਲ ਰਹੀ ਸੂਚਨਾ"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"ਕੀ ਰਿਕਾਰਡਿੰਗ ਸ਼ੁਰੂ ਕਰਨੀ ਹੈ?"</string>
@@ -558,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"ਤੁਹਾਡੇ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਦਾ ਪ੍ਰਬੰਧਨ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਪ੍ਰੋਫਾਈਲ <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਜੋ ਈਮੇਲਾਂ, ਐਪਾਂ, ਅਤੇ ਵੈੱਬਸਾਈਟਾਂ ਸਮੇਤ ਤੁਹਾਡੀ ਕਾਰਜ ਨੈੱਟਵਰਕ ਸਰਗਰਮੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦੀ ਹੈ।\n\nਤੁਸੀਂ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> ਨਾਲ ਵੀ ਕਨੈਕਟ ਹੋਂ, ਜੋ ਤੁਹਾਡੀ ਨਿੱਜੀ ਨੈੱਟਵਰਕ ਸਰਗਰਮੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦੀ ਹੈ।"</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"ਟਰੱਸਟ-ਏਜੰਟ ਵੱਲੋਂ ਅਣਲਾਕ ਰੱਖਿਆ ਗਿਆ"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"ਡੀਵਾਈਸ ਲਾਕ ਰਹੇਗਾ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਮੈਨੂਅਲੀ ਅਣਲਾਕ ਨਹੀਂ ਕਰਦੇ"</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"ਤੇਜ਼ੀ ਨਾਲ ਸੂਚਨਾਵਾਂ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"ਅਣਲਾਕ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਉਹਨਾਂ ਨੂੰ ਦੇਖੋ"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"ਨਹੀਂ ਧੰਨਵਾਦ"</string>
@@ -696,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ਧੁਨੀ ਅਤੇ ਥਰਥਰਾਹਟ ਨਾਲ ਤੁਹਾਡਾ ਧਿਆਨ ਖਿੱਚਦੀ ਹੈ।"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ਇਸ ਸਮੱਗਰੀ ਦੇ ਅਸਥਿਰ ਸ਼ਾਰਟਕੱਟ ਨਾਲ ਆਪਣਾ ਧਿਆਨ ਕੇਂਦਰਿਤ ਰੱਖੋ।"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ਕੋਈ ਹਾਲੀਆ ਬੁਲਬੁਲਾ ਨਹੀਂ"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"ਹਾਲੀਆ ਬੁਲਬੁਲੇ ਅਤੇ ਖਾਰਜ ਕੀਤੇ ਬੁਲਬੁਲੇ ਇੱਥੇ ਦਿਸਣਗੇ।"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ਇਹਨਾਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ਇਹ ਸੂਚਨਾਵਾਂ ਦਾ ਗਰੁੱਪ ਇੱਥੇ ਸੰਰੂਪਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ਇੱਕ ਐਪ ਦੀ ਥਾਂ \'ਤੇ ਦੂਜੀ ਐਪ ਰਾਹੀਂ ਦਿੱਤੀ ਗਈ ਸੂਚਨਾ"</string>
@@ -966,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"ਡੀਵਾਈਸ ਸੇਵਾਵਾਂ"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"ਕੋਈ ਸਿਰਲੇਖ ਨਹੀਂ"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"ਇਸ ਐਪ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ ਅਤੇ ਪੂਰੀ-ਸਕ੍ਰੀਨ ਮੋਡ \'ਤੇ ਜਾਓ।"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਖੋਲ੍ਹੋ"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਬੁਲਬੁਲਿਆਂ ਲਈ ਸੈਟਿੰਗਾਂ"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਤੋਂ ਬੁਲਬੁਲੇ ਆਉਣ ਦਿਓ?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"ਮਨ੍ਹਾ ਕਰੋ"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"ਕਰਨ ਦਿਓ"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"ਮੈਨੂੰ ਬਾਅਦ ਵਿੱਚ ਪੁੱਛੋ"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> ਤੋਂ <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> ਅਤੇ <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> ਹੋਰਾਂ ਤੋਂ <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"ਲਿਜਾਓ"</string>
@@ -981,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ਹੇਠਾਂ ਵੱਲ ਖੱਬੇ ਲਿਜਾਓ"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ਹੇਠਾਂ ਵੱਲ ਸੱਜੇ ਲਿਜਾਓ"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ਖਾਰਜ ਕਰੋ"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"ਚੈਟਾਂ ਨੂੰ ਪਹਿਲਾਂ ਤੋਂ ਤਿਆਰ ਰੱਖੋ"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਦੀਆਂ ਨਵੀਆਂ ਚੈਟਾਂ ਬੁਲਬੁਲਿਆਂ ਵਾਂਗ ਦਿਸਣਗੀਆਂ। ਇਸ ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ ਕਿਸੇ ਬੁਲਬੁਲੇ \'ਤੇ ਟੈਪ ਕਰੋ। ਇਸ ਨੂੰ ਇੱਕ ਥਾਂ ਤੋਂ ਦੂਜੀ ਥਾਂ \'ਤੇ ਲਿਜਾਣ ਲਈ ਘਸੀਟੋ।\n\nਬੁਲਬੁਲੇ \'ਤੇ ਟੈਪ ਕਰੋ"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"ਇਸ ਐਪ \'ਤੇ ਬੁਲਬੁਲੇ ਬੰਦ ਕਰਨ ਲਈ \'ਪ੍ਰਬੰਧਨ ਕਰੋ\' \'ਤੇ ਟੈਪ ਕਰੋ"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"ਸਿਸਟਮ ਨੈਵੀਗੇਸ਼ਨ ਅੱਪਡੇਟ ਹੋ ਗਿਆ। ਤਬਦੀਲੀਆਂ ਕਰਨ ਲਈ, ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ।"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ਸਿਸਟਮ ਨੈਵੀਗੇਸ਼ਨ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"ਸਟੈਂਡਬਾਈ"</string>
@@ -999,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"ਕੰਟਰੋਲ"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ਤਤਕਾਲ ਪਹੁੰਚ ਲਈ ਕੰਟਰੋਲ ਚੁਣੋ"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ਮਨਪਸੰਦ"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ਸਭ"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"ਸਾਰੇ ਕੰਟਰੋਲਾਂ ਦੀ ਸੂਚੀ ਨੂੰ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"ਹੋਰ"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"ਤਤਕਾਲ ਕੰਟਰੋਲ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"ਮਨਪਸੰਦ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> ਨੇ ਇਸ ਕੰਟਰੋਲ ਨੂੰ ਤੁਹਾਡੇ ਮਨਪਸੰਦ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਸੁਝਾਅ ਦਿੱਤਾ ਹੈ।"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"ਪਿੰਨ ਵਿੱਚ ਅੱਖਰ ਜਾਂ ਚਿੰਨ੍ਹ ਸ਼ਾਮਲ ਹਨ"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"ਡੀਵਾਈਸ ਪਿੰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"ਪਿੰਨ ਦਾਖਲ ਕਰੋ"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"ਹੋਰ ਬਣਤਰਾਂ ਦੇਖਣ ਲਈ ਸਵਾਈਪ ਕਰੋ"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 1bbe80a..116d2b2 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Spróbuj jeszcze raz wykonać zrzut ekranu"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Nie można zapisać zrzutu ekranu, bo brakuje miejsca w pamięci"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Nie możesz wykonać zrzutu ekranu, bo nie zezwala na to aplikacja lub Twoja organizacja."</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Rejestrator ekranu"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Stałe powiadomienie o sesji rejestrowania zawartości ekranu"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Rozpocząć rejestrowanie?"</string>
@@ -131,7 +135,7 @@
     <string name="accessibility_unlock_without_fingerprint" msgid="1811563723195375298">"Odblokuj bez używania odcisku palca"</string>
     <string name="accessibility_scanning_face" msgid="3093828357921541387">"Skanowanie twarzy"</string>
     <string name="accessibility_send_smart_reply" msgid="8885032190442015141">"Wyślij"</string>
-    <string name="accessibility_manage_notification" msgid="582215815790143983">"Zarządzanie powiadomieniami"</string>
+    <string name="accessibility_manage_notification" msgid="582215815790143983">"Zarządzaj powiadomieniami"</string>
     <string name="phone_label" msgid="5715229948920451352">"otwórz telefon"</string>
     <string name="voice_assist_label" msgid="3725967093735929020">"otwórz pomoc głosową"</string>
     <string name="camera_label" msgid="8253821920931143699">"otwórz aparat"</string>
@@ -701,7 +705,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Przyciąga uwagę dźwiękiem lub wibracjami."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Przyciąga uwagę dzięki pływającym skrótom do treści."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Brak ostatnich dymków"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Tutaj będą pojawiać się ostatnie i odrzucone dymki."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Tych powiadomień nie można zmodyfikować."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Tej grupy powiadomień nie można tu skonfigurować"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Powiadomienie w zastępstwie"</string>
@@ -975,13 +980,8 @@
     <string name="device_services" msgid="1549944177856658705">"Usługi urządzenia"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Bez tytułu"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Kliknij, by uruchomić tę aplikację ponownie i przejść w tryb pełnoekranowy."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Otwórz: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Ustawienia dymków aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Zezwolić na dymki z aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Zarządzaj"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Odmów"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Zezwól"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Zapytaj później"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> z aplikacji <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> z aplikacji <xliff:g id="APP_NAME">%2$s</xliff:g> i jeszcze <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Przenieś"</string>
@@ -990,9 +990,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Przenieś w lewy dolny róg"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Przenieś w prawy dolny róg"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Zamknij"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Wyświetlaj czaty na wierzchu"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Nowe czaty z aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g> będą pojawiać się jako dymki. Kliknij dymek, aby go otworzyć. Przeciągnij dymek, jeśli chcesz go przenieść.\n\nKliknij dymek"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Kliknij Zarządzaj, aby wyłączyć dymki z tej aplikacji"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Nawigacja w systemie została zaktualizowana. Aby wprowadzić zmiany, otwórz Ustawienia."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Otwórz Ustawienia, by zaktualizować nawigację w systemie"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Tryb gotowości"</string>
@@ -1010,14 +1018,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Elementy sterujące"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Wybierz elementy sterujące dla szybszego dostępu"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Ulubione"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Wszystko"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Nie udało się wczytać listy elementów sterujących."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Inne"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Dodaj do Szybkiego sterowania"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Dodaj do ulubionych"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"Aplikacja <xliff:g id="APP">%s</xliff:g> zaproponowała dodanie tego elementu sterującego do ulubionych."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Kod PIN zawiera litery lub symbole"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Zweryfikuj kod PIN urządzenia"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Wpisz kod PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Przesuń, by zobaczyć inne struktury"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index 61ac664..6d6c8d9 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Tente fazer a captura de tela novamente"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Não é possível salvar a captura de tela, porque não há espaço suficiente"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"O app ou a organização não permitem capturas de tela"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Gravador de tela"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notificação contínua para uma sessão de gravação de tela"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Iniciar gravação?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Chama sua atenção com som ou vibração."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Mantém sua atenção com um atalho flutuante para esse conteúdo."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nenhum balão recente"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Os balões recentes e dispensados aparecerão aqui."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar essas notificações."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Não é possível configurar esse grupo de notificações aqui"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificação salva no proxy"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Serviços do dispositivo"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Sem título"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Toque para reiniciar o app e usar tela cheia."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Abrir <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Configurações de balões do <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Permitir balões de <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Gerenciar"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Negar"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Permitir"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Perguntar depois"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g> mais <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Mover"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mover para canto inferior esquerdo"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mover para canto inferior direito"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Dispensar"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Manter chats em primeiro plano"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Novos chats do app <xliff:g id="APP_NAME">%1$s</xliff:g> aparecerão como balões. Toque em um balão para abrir o chat. Arraste para mover.\n\nToque no balão"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Toque em \"Gerenciar\" para desativar os balões desse app"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navegação no sistema atualizada. Se quiser alterá-la, acesse as configurações."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Acesse as configurações para atualizar a navegação no sistema"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Em espera"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controles"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Escolher controles do acesso rápido"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritos"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Todos"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Não foi possível carregar a lista de controles."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Outro"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Adic. a \"Controles rápidos\""</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Adicionar aos favoritos"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> sugeriu a adição desse controle aos seus favoritos."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"O PIN contém letras ou símbolos"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verificar PIN do dispositivo"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Insira o PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Deslize para ver outras estruturas"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 199da15..1a67e9c 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Experimente voltar a efetuar a captura de ecrã."</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Não é possível guardar a captura de ecrã devido a espaço de armazenamento limitado."</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"A aplicação ou a sua entidade não permitem tirar capturas de ecrã"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Gravador de ecrã"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notificação persistente de uma sessão de gravação de ecrã"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Pretende iniciar a gravação?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Chama a sua atenção com som ou vibração."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Mantém a sua atenção com um atalho flutuante para este conteúdo."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nenhum balão recente"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Os balões recentes e os balões ignorados vão aparecer aqui."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar estas notificações."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Não é possível configurar este grupo de notificações aqui."</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificação de aplicação proxy"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Serviços do dispositivo"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Sem título"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Toque para reiniciar esta aplicação e ficar em ecrã inteiro."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Abrir a aplicação <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Definições dos balões da aplicação <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Pretende permitir balões da aplicação <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Gerir"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Recusar"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Permitir"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Perguntar depois"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> do <xliff:g id="APP_NAME">%2$s</xliff:g> e mais<xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>."</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Mover"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mover p/ parte infer. esquerda"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mover parte inferior direita"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ignorar"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Mantenha os chats em primeiro plano"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Os novos chats da app <xliff:g id="APP_NAME">%1$s</xliff:g> serão apresentados como balões. Toque num balão para o abrir. Arraste para o mover.\n\nToque no balão."</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Toque em Gerir para desativar os balões desta app."</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"A navegação no sistema foi atualizada. Para efetuar alterações, aceda às Definições."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Aceda às Definições para atualizar a navegação no sistema."</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Modo de espera"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controlos"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Escolha os controlos para um acesso rápido."</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritos"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tudo"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Não foi possível carregar a lista dos controlos."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Outro"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Adicione aos Controlos rápidos"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Adicionar aos favoritos"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"A app <xliff:g id="APP">%s</xliff:g> sugeriu este controlo para adicionar aos seus favoritos."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"O PIN contém letras ou símbolos."</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Valide o PIN do dispositivo"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Introduzir PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Deslize rapidamente para ver outras estruturas."</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 61ac664..6d6c8d9 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Tente fazer a captura de tela novamente"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Não é possível salvar a captura de tela, porque não há espaço suficiente"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"O app ou a organização não permitem capturas de tela"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Gravador de tela"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notificação contínua para uma sessão de gravação de tela"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Iniciar gravação?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Chama sua atenção com som ou vibração."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Mantém sua atenção com um atalho flutuante para esse conteúdo."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nenhum balão recente"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Os balões recentes e dispensados aparecerão aqui."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Não é possível modificar essas notificações."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Não é possível configurar esse grupo de notificações aqui"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificação salva no proxy"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Serviços do dispositivo"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Sem título"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Toque para reiniciar o app e usar tela cheia."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Abrir <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Configurações de balões do <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Permitir balões de <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Gerenciar"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Negar"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Permitir"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Perguntar depois"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de <xliff:g id="APP_NAME">%2$s</xliff:g> mais <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Mover"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mover para canto inferior esquerdo"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mover para canto inferior direito"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Dispensar"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Manter chats em primeiro plano"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Novos chats do app <xliff:g id="APP_NAME">%1$s</xliff:g> aparecerão como balões. Toque em um balão para abrir o chat. Arraste para mover.\n\nToque no balão"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Toque em \"Gerenciar\" para desativar os balões desse app"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navegação no sistema atualizada. Se quiser alterá-la, acesse as configurações."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Acesse as configurações para atualizar a navegação no sistema"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Em espera"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Controles"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Escolher controles do acesso rápido"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoritos"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Todos"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Não foi possível carregar a lista de controles."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Outro"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Adic. a \"Controles rápidos\""</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Adicionar aos favoritos"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> sugeriu a adição desse controle aos seus favoritos."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"O PIN contém letras ou símbolos"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verificar PIN do dispositivo"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Insira o PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Deslize para ver outras estruturas"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index e72f68c..350e31f 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Încercați să faceți din nou o captură de ecran"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Captura de ecran nu poate fi salvată din cauza spațiului de stocare limitat"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Crearea capturilor de ecran nu este permisă de aplicație sau de organizația dvs."</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Recorder pentru ecran"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Notificare în curs pentru o sesiune de înregistrare a ecranului"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Începeți înregistrarea?"</string>
@@ -698,7 +702,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Vă atrage atenția fără sunet sau vibrare."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Vă atrage atenția printr-o comandă rapidă flotantă la acest conținut."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nu există baloane recente"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Baloanele recente și baloanele respinse vor apărea aici."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Aceste notificări nu pot fi modificate."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Acest grup de notificări nu poate fi configurat aici"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Notificare prin proxy"</string>
@@ -970,13 +975,8 @@
     <string name="device_services" msgid="1549944177856658705">"Servicii pentru dispozitiv"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Fără titlu"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Atingeți ca să reporniți aplicația și să treceți în modul ecran complet."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Accesați <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Setări pentru baloanele <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Permiteți baloanele de la <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Gestionați"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Refuzați"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Permiteți"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Întreabă-mă mai târziu"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de la <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> de la <xliff:g id="APP_NAME">%2$s</xliff:g> și încă <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Mutați"</string>
@@ -985,9 +985,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Mutați în stânga jos"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Mutați în dreapta jos"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Închideți"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Mențineți conversațiile prin chat în prim-plan"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Conversațiile noi prin chat din <xliff:g id="APP_NAME">%1$s</xliff:g> vor apărea sub forma unor baloane. Atingeți un balon pentru a deschide o conversație. Trageți-l pentru a-l muta.\n\nAtingeți balonul."</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Atingeți Gestionați pentru a dezactiva baloanele din această aplicație"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigarea în sistem a fost actualizată. Pentru a face modificări, accesați Setările."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Accesați Setările pentru a actualiza navigarea în sistem"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Standby"</string>
@@ -1004,14 +1012,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Comenzi"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Alegeți comenzile pentru acces rapid"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favorite"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Toate"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Lista cu toate comenzile nu a putut fi încărcată."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Altul"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Adăugați la Comenzi rapide"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Adăugați la preferate"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> a sugerat adăugarea acestei comenzi la preferate."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Codul PIN conține litere sau simboluri"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Confirmați codul PIN"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Introduceți codul PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Glisați pentru a vedea alte structuri"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 85b1bb3..7b494db 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Попробуйте сделать скриншот снова."</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Не удалось сохранить скриншот: недостаточно места."</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Не удалось сделать скриншот: нет разрешения от приложения или организации."</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Запись видео с экрана"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Текущее уведомление для записи видео с экрана"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Начать запись?"</string>
@@ -701,7 +705,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Уведомления приходят со звуком или вибрацией"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Привлекает ваше внимание к контенту с помощью плавающего ярлыка"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Нет недавних подсказок"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Здесь будут появляться недавние и закрытые всплывающие уведомления."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Эти уведомления нельзя изменить."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Эту группу уведомлений нельзя настроить здесь."</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Уведомление отправлено через прокси-сервер."</string>
@@ -975,13 +980,8 @@
     <string name="device_services" msgid="1549944177856658705">"Сервисы устройства"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Без названия"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Нажмите, чтобы перезапустить приложение и перейти в полноэкранный режим."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Открыть приложение \"<xliff:g id="APP_NAME">%1$s</xliff:g>\"."</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Настройки всплывающих уведомлений от приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\"."</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Разрешить всплывающие уведомления от приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\"?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Настроить"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Запретить"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Разрешить"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Напомнить позже"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> из приложения \"<xliff:g id="APP_NAME">%2$s</xliff:g>\""</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> от приложения \"<xliff:g id="APP_NAME">%2$s</xliff:g>\" и ещё <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Перенести"</string>
@@ -990,9 +990,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Перенести в левый нижний угол"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Перенести в правый нижний угол"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Закрыть"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Чаты на первом плане"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Новые чаты из приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" будут появляться в виде всплывающих уведомлений. Чтобы открыть такое уведомление, нажмите на него. Чтобы переместить всплывающее уведомление, перетащите его.\n\nНажмите на всплывающее уведомление"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Чтобы отключить всплывающие уведомления от приложения, нажмите \"Настроить\"."</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Параметры навигации в системе обновлены. Чтобы изменить их, перейдите в настройки."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Чтобы обновить параметры навигации в системе, перейдите в настройки."</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Переход в режим ожидания"</string>
@@ -1010,14 +1018,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Элементы управления"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Выберите элементы управления для быстрого доступа."</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Избранные"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Все"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Не удалось загрузить список элементов управления."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Другое"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Добавить на панель инструментов"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Добавить в избранное"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"Приложение \"<xliff:g id="APP">%s</xliff:g>\" предлагает добавить этот элемент управления в избранное."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN-код содержит буквы или символы."</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Подтвердите PIN-код устройства"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Введите PIN-код"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Чтобы увидеть другие строения, проведите по экрану"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml
index 17db522..d9cef38 100644
--- a/packages/SystemUI/res/values-si/strings.xml
+++ b/packages/SystemUI/res/values-si/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"තිර රුව නැවත ගැනීමට උත්සාහ කරන්න"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"සීමිත ගබඩා ඉඩ නිසා තිර රුව සුරැකිය නොහැකිය"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"තිර රූ ගැනීමට යෙදුම හෝ ඔබගේ සංවිධානය ඉඩ නොදේ"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"තිර රෙකෝඩරය"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"තිර පටිගත කිරීමේ සැසියක් සඳහා කෙරෙන දැනුම් දීම"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"පටිගත කිරීම ආරම්භ කරන්නද?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ශබ්දය හෝ කම්පනය සමඟ ඔබේ අවධානය ලබා ගනී."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"පාවෙන කෙටිමගක් සමග ඔබේ අවධානය මෙම අන්තර්ගතය වෙත තබා ගන්න."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"මෑත බුබුලු නැත"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"මෑත බුබුලු සහ ඉවත ලූ බුබුලු මෙහි දිස් වනු ඇත."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"මෙම දැනුම්දීම් වෙනස් කළ නොහැක."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"මෙම දැනුම්දීම් සමූහය මෙහි වින්‍යාස කළ නොහැක"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ප්‍රොක්සි කළ දැනුම්දීම"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"උපාංග සේවා"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"මාතෘකාවක් නැත"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"මෙම යෙදුම යළි ඇරඹීමට සහ පූර්ණ තිරයට යාමට තට්ටු කරන්න"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> විවෘත කරන්න"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> බුබුළු සඳහා සැකසීම්"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> වෙතින් බුබුළුවලට ඉඩ දෙන්නේද?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"කළමනා කරන්න"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"ප්‍රතික්‍ෂේප කරන්න"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"ඉඩ දෙන්න"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"පසුව මගෙන් අසන්න"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> වෙතින් <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> වෙතින් <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> සහ තවත් <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> ක්"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"ගෙන යන්න"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"පහළ වමට ගෙන යන්න"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"පහළ දකුණට ගෙන යන්න"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ඉවතලන්න"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"කල් තියා කතාබස් කර ගෙන යන්න"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> වෙතින් නව කතාබස් බුබුලු ලෙස දිස් වනු ඇත. බුබුලක් විවෘත කිරීමට එය තට්ටු කරන්න. එය ගෙන යාමට අදින්න.\n\nබුබුල තට්ටු කරන්න"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"මෙම යෙදුමෙන් බුබුලු ක්‍රියාවිරහිත කිරීමට කළමනාකරණය කරන්න තට්ටු කරන්න"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"පද්ධති සංචලනය යාවත්කාලීන කළා. වෙනස්කම් සිදු කිරීමට, සැකසීම් වෙත යන්න."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"පද්ධති සංචලනය යාවත්කාලීන කිරීමට සැකසීම් වෙත යන්න"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"පොරොත්තු"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"පාලන"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"ඉක්මන් ප්‍රවේශය සඳහා පාලන තෝරා ගන්න"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ප්‍රියතම"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"සියලු"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"සියලු පාලනවල ලැයිස්තුව පූරණය කළ නොහැකි විය."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"වෙනත්"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"ඉක්මන් පාලන වෙත එක් කරන්න"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"ප්‍රියතම වෙත එක් කරන්න"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> ඔබේ ප්‍රියතම වෙත එක් කිරීමට මෙම පාලනය යෝජනා කරන ලදී."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN හි අකුරු හෝ සංකේත අඩංගු වේ"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"උපාංග PIN සත්‍යාපනය කරන්න"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"PIN ඇතුළු කරන්න"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"අනෙක් ආකෘති බැලීමට ස්වයිප් කරන්න"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 295e700..e14ea22 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Skúste snímku urobiť znova"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Snímka obrazovky sa nedá uložiť z dôvodu nedostatku miesta v úložisku"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Vytváranie snímok obrazovky je zakázané aplikáciou alebo vašou organizáciou"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Nahrávanie obrazovky"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Zobrazuje sa upozornenie týkajúce sa relácie záznamu obrazovky"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Chcete spustiť nahrávanie?"</string>
@@ -701,7 +705,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Upúta vás zvukom alebo vibráciami."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Upúta vás plávajúcim odkazom na tento obsah."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Žiadne nedávne bubliny"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Tu sa budú zobrazovať nedávne a zavreté bubliny."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Tieto upozornenia sa nedajú upraviť."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Túto skupinu upozornení nejde na tomto mieste konfigurovať"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Približné upozornenie"</string>
@@ -975,13 +980,8 @@
     <string name="device_services" msgid="1549944177856658705">"Služby zariadenia"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Bez názvu"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Klepnutím reštartujete túto aplikáciu a prejdete do režimu celej obrazovky."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Otvoriť <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Nastavenia bublín aplikácie <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Povoliť bubliny z aplikácie <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Spravovať"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Zamietnuť"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Povoliť"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Spýtať sa neskôr"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> z aplikácie <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> z aplikácie <xliff:g id="APP_NAME">%2$s</xliff:g> a ďalšie (<xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>)"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Presunúť"</string>
@@ -990,9 +990,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Presunúť doľava nadol"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Presunúť doprava nadol"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Zavrieť"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Zobrazovať čety na popredí"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Nové čety z aplikácie <xliff:g id="APP_NAME">%1$s</xliff:g> sa budú zobrazovať ako bubliny. Bubliny otvoríte klepnutím na ne. Premiestnite ich presunutím.\n\nKlepnite na bublinu."</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Klepnutím na Spravovať vypnite bubliny z tejto aplikácie"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigácia v systéme bola aktualizovaná. Ak chcete vykonať zmeny, prejdite do Nastavení."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Prejdite do Nastavení a aktualizujte navigáciu v systéme"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Pohotovostný režim"</string>
@@ -1010,14 +1018,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Ovládacie prvky"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Vyberte ovládacie prvky na rýchly prístup"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Obľúbené"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Všetko"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Zoznam všetkých ovl. prvkov sa nepodarilo načítať."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Iné"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Pridanie do rýchleho ovládania"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Pridať do obľúbených"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"Aplikácia <xliff:g id="APP">%s</xliff:g> vám odporučila pridať tento ovládací prvok do obľúbených."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Kód PIN obsahuje písmená alebo symboly"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Overenie kódu PIN zariadenia"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Zadajte PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Potiahnutím zobrazíte ďalšie budovy"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index b524749..4ba3488 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Poskusite znova ustvariti posnetek zaslona"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Shranjevanje posnetka zaslona ni mogoče zaradi omejenega prostora za shranjevanje"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Aplikacija ali vaša organizacija ne dovoljuje posnetkov zaslona"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Snemalnik zaslona"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Nenehno obveščanje o seji snemanja zaslona"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Želite začeti snemati?"</string>
@@ -701,7 +705,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Pritegne vašo pozornost z zvokom ali vibriranjem"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Zadrži vašo pozornost z lebdečo bližnjico do te vsebine."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Ni nedavnih oblačkov"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Tukaj bodo prikazani tako nedavni kot opuščeni oblački."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Za ta obvestila ni mogoče spremeniti nastavitev."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Te skupine obvestil ni mogoče konfigurirati tukaj"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Posredovano obvestilo"</string>
@@ -975,13 +980,8 @@
     <string name="device_services" msgid="1549944177856658705">"Storitve naprave"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Brez naslova"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Dotaknite se za vnovični zagon te aplikacije in preklop v celozaslonski način."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Odpri aplikacijo <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Nastavitve za oblačke aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Želite dovoliti oblačke iz aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Upravljanje"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Zavrni"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Dovoli"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Vprašaj me pozneje"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> (<xliff:g id="APP_NAME">%2$s</xliff:g>)"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> iz aplikacije <xliff:g id="APP_NAME">%2$s</xliff:g> in toliko drugih: <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Premakni"</string>
@@ -990,9 +990,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Premakni spodaj levo"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Premakni spodaj desno"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Opusti"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Klepete obdrži v ospredju"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Novi klepeti v aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g> bodo prikazani kot oblački. Dotaknite se oblačka, da ga odprete. Povlecite, da ga premaknete.\n\nDotaknite se oblačka"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Dotaknite se »Upravljanje«, da izklopite oblačke iz te aplikacije"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Krmarjenje po sistemu je posodobljeno. Če želite opraviti spremembe, odprite nastavitve."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Če želite posodobiti krmarjenje po sistemu, odprite nastavitve"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Stanje pripravljenosti"</string>
@@ -1010,14 +1018,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrolniki"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Izberite kontrolnike za hiter dostop"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Priljubljene"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Vse"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Seznama vseh kontrolnikov ni bilo mogoče naložiti."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Drugo"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Dodaj med hitre kontrolnike"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Dodaj med priljubljene"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"Aplikacija <xliff:g id="APP">%s</xliff:g> je predlagala, da ta kontrolnik dodate med priljubljene."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Koda PIN vsebuje črke ali simbole"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Potrdite kodo PIN naprave"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Vnesite kodo PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Povlecite za ogled drugih struktur"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml
index 2e83d25..d763fe5 100644
--- a/packages/SystemUI/res/values-sq/strings.xml
+++ b/packages/SystemUI/res/values-sq/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Provo ta nxjerrësh përsëri pamjen e ekranit"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Pamja e ekranit nuk mund të ruhet për shkak të hapësirës ruajtëse të kufizuar"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Nxjerrja e pamjeve të ekranit nuk lejohet nga aplikacioni ose organizata jote."</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Regjistruesi i ekranit"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Njoftim i vazhdueshëm për një seancë regjistrimi të ekranit"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Të niset regjistrimi?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Të tërheq vëmendjen me tinguj ose dridhje."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Mban vëmendjen tënde me një shkurtore pluskuese te kjo përmbajtje."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Nuk ka flluska të fundit"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Flluskat e fundit dhe flluskat e hequra do të shfaqen këtu."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Këto njoftime nuk mund të modifikohen."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ky grup njoftimesh nuk mund të konfigurohet këtu"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Njoftim i dërguar me përfaqësues"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Shërbimet e pajisjes"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Pa titull"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Trokit për ta rinisur këtë aplikacion dhe për të kaluar në ekranin e plotë."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Hap <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Cilësimet për flluskat e <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Të lejohen flluskat nga <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Menaxho"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Refuzo"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Lejo"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Më pyet më vonë"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> nga <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> nga <xliff:g id="APP_NAME">%2$s</xliff:g> dhe <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> të tjera"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Zhvendos"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Zhvendos poshtë majtas"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Lëvize poshtë djathtas"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Hiq"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Mbaji bisedat në plan të parë"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Bisedat e reja nga <xliff:g id="APP_NAME">%1$s</xliff:g> do të shfaqen si flluska. Trokit mbi një flluskë për ta hapur atë. Zvarrit për ta zhvendosur atë.\n\nTrokit mbi flluskë"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Trokit \"Menaxho\" për të çaktivizuar flluskat nga ky aplikacion"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Navigimi i sistemit u përditësua. Për të bërë ndryshime, shko te \"Cilësimet\"."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Shko te \"Cilësimet\" për të përditësuar navigimin e sistemit"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Në gatishmëri"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrollet"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Zgjidh kontrollet për qasjen e shpejtë"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Të preferuarit"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Të gjitha"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Lista e të gjitha kontrolleve nuk mund të ngarkohej."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Tjetër"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Shto te \"Kontrollet e shpejta\""</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Shto te të preferuarat"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> sugjeroi këtë kontroll për ta shtuar te të preferuarat e tua."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Kodi PIN përmban shkronja ose simbole"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verifiko kodin PIN të pajisjes"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Fut kodin PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Rrëshqit për të parë strukturat e tjera"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index f77d4a2..e8432195 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Пробајте да поново направите снимак екрана"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Чување снимка екрана није успело због ограниченог меморијског простора"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Апликација или организација не дозвољавају прављење снимака екрана"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Снимач екрана"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Обавештење о сесији снимања екрана је активно"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Желите да започнете снимање?"</string>
@@ -698,7 +702,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Привлачи вам пажњу помоћу звука или вибрације."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Привлачи вам пажњу помоћу плутајуће пречице до овог садржаја."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Нема недавних облачића"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Овде се приказују недавни и одбачени облачићи."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ова обавештења не могу да се мењају."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ова група обавештења не може да се конфигурише овде"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Обавештење преко проксија"</string>
@@ -970,13 +975,8 @@
     <string name="device_services" msgid="1549944177856658705">"Услуге за уређаје"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Без наслова"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Додирните да бисте рестартовали апликацију и прешли у режим целог екрана."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Отворите <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Подешавања за <xliff:g id="APP_NAME">%1$s</xliff:g> облачиће"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Желите ли да омогућите облачиће из апликације <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Управљајте"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Одбиј"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Дозволи"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Питај ме касније"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> из апликације <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> из апликације <xliff:g id="APP_NAME">%2$s</xliff:g> и још <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Премести"</string>
@@ -985,9 +985,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Премести доле лево"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Премести доле десно"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Одбаци"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Нека поруке ћаскања остану у првом плану"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Нове поруке ћаскања из апликације <xliff:g id="APP_NAME">%1$s</xliff:g> ће се приказати као облачићи. Додирните облачић да бисте га отворили. Превуците да бисте га преместили.\n\nДодирните облачић"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Додирните Управљајте да бисте искључили облачиће из ове апликације"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Навигација система је ажурирана. Да бисте унели измене, идите у Подешавања."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Идите у Подешавања да бисте ажурирали навигацију система"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Стање приправности"</string>
@@ -1004,14 +1012,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Контроле"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Одаберите контроле за брз приступ"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Омиљено"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Све"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Учитавање листе свих контрола није успело."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Друго"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Додајте у брзе контроле"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Додајте у омиљене"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> предлаже да додате ову контролу у омиљене."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN садржи слова или симболе"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Потврдите PIN уређаја"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Унесите PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Превуците да бисте видели друге структуре"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 76635ee..b3e46ac 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Testa att ta en skärmdump igen"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Det går inte att spara skärmdumpen eftersom lagringsutrymmet inte räcker"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Appen eller organisationen tillåter inte att du tar skärmdumpar"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Skärminspelare"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Avisering om att skärminspelning pågår"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Vill du starta inspelningen?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Påkallar uppmärksamhet med ljud eller vibrationer."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Behåller din uppmärksamhet med en flytande genväg till innehållet."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Inga senaste bubblor"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"De senaste bubblorna och ignorerade bubblor visas här."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Det går inte att ändra de här aviseringarna."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Den här aviseringsgruppen kan inte konfigureras här"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Avisering via proxy"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Enhetstjänster"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Ingen titel"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Tryck för att starta om appen i helskärmsläge."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Öppna <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Inställningar för <xliff:g id="APP_NAME">%1$s</xliff:g>-bubblor"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Vill du tillåta bubblor från <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Hantera"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Neka"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Tillåt"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Fråga senare"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> från <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> från <xliff:g id="APP_NAME">%2$s</xliff:g> och <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> fler"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Flytta"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Flytta längst ned till vänster"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Flytta längst ned till höger"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Stäng"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Håll chattar i förgrunden"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Nya chattar från <xliff:g id="APP_NAME">%1$s</xliff:g> visas som bubblor. Tryck på en bubbla som du vill öppna. Flytta den genom att dra.\n\nTryck på bubblan"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Tryck på Hantera för att stänga av bubblor från den här appen"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Systemnavigeringen har uppdaterats. Öppna inställningarna om du vill ändra något."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Öppna inställningarna och uppdatera systemnavigeringen"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Viloläge"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontroller"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Välj kontroller för snabb åtkomst"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoriter"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Alla"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Listan med alla kontroller kunde inte läsas in."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Övrigt"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Lägg till i Snabbinställningar"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Lägg till i Favoriter"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> föreslår att du lägger till kontrollen i dina favoriter."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Pinkoden innehåller bokstäver eller symboler"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Verifiera pinkoden för enheten"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Ange pinkod"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Svep för att se andra strukturer"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 3a5d6ce..962be9c 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Jaribu kupiga picha ya skrini tena"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Imeshindwa kuhifadhi picha ya skrini kwa sababu nafasi haitoshi"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Programu au shirika lako halikuruhusu kupiga picha za skrini"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Kinasa Skrini"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Arifa inayoendelea ya kipindi cha kurekodi skrini"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Ungependa kuanza kurekodi?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Hupata umakinifu wako kwa sauti na mtetemo."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Huweka umakinifu wako kwenye maudhui haya kwa kutumia njia ya mkato ya kuelea."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Hakuna viputo vya hivi majuzi"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Viputo vya hivi karibuni na viputo vilivyoondolewa vitaonekana hapa."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Arifa hizi haziwezi kubadilishwa."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Kikundi hiki cha arifa hakiwezi kuwekewa mipangilio hapa"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Arifa wakilishi"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Huduma za Kifaa"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Wimbo hauna jina"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Gusa ili uzime na uwashe upya programu hii kisha nenda kwenye skrini nzima."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Fungua <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Mipangilio ya viputo vya <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Je, ungependa kuruhusu viputo kutoka <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Dhibiti"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Kataa"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Ruhusu"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Niulize baadaye"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> kutoka kwa <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> kutoka kwa <xliff:g id="APP_NAME">%2$s</xliff:g> na nyingine<xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Sogeza"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Sogeza chini kushoto"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Sogeza chini kulia"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Ondoa"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Zipe gumzo kipaumbele"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Gumzo mpya kutoka <xliff:g id="APP_NAME">%1$s</xliff:g> zitaonekana kama viputo. Gusa kiputo ili ukifungue. Buruta ili ukisogeze.\n\nGusa kiputo"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Gusa Dhibiti ili uzime viputo kwenye programu hii"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Umesasisha usogezaji kwenye mfumo. Ili ubadilishe, nenda kwenye Mipangilio."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Nenda kwenye mipangilio ili usasishe usogezaji kwenye mfumo"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Hali tuli"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Vidhibiti"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Chagua vidhibiti vya kufikia kwa haraka"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Vipendwa"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Vyote"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Imeshindwa kupakia orodha ya vidhibiti vyote."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Nyingine"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Ongeza kwenye Vidhibiti vya Haraka"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Ongeza kwenye vipendwa"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> imependekeza kidhibiti hiki ili ukiongeze kwenye vipendwa vyako."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN ina herufi au alama"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Thibitisha PIN ya kifaa"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Weka PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Telezesha kidole ili uone miundo mingine"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sw600dp/config.xml b/packages/SystemUI/res/values-sw600dp/config.xml
index f91af03..5d20564 100644
--- a/packages/SystemUI/res/values-sw600dp/config.xml
+++ b/packages/SystemUI/res/values-sw600dp/config.xml
@@ -26,9 +26,6 @@
     <!-- The number of columns that the top level tiles span in the QuickSettings -->
     <integer name="quick_settings_user_time_settings_tile_span">1</integer>
 
-    <!-- Set to true to enable the user switcher on the keyguard. -->
-    <bool name="config_keyguardUserSwitcher">true</bool>
-
     <!-- Nav bar button default ordering/layout -->
     <string name="config_navBarLayout" translatable="false">left;back,home,recent;right</string>
 
diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml
index 2442eff..b225a66 100644
--- a/packages/SystemUI/res/values-te/strings.xml
+++ b/packages/SystemUI/res/values-te/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"స్క్రీన్‌షాట్ తీయడానికి మళ్లీ ప్రయత్నించండి"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"నిల్వ స్థలం పరిమితంగా ఉన్న కారణంగా స్క్రీన్‌షాట్‌ను సేవ్ చేయడం సాధ్యపడదు"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"స్క్రీన్‌షాట్‌లు తీయడానికి యాప్ లేదా మీ సంస్థ అనుమతించలేదు"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"స్క్రీన్ రికార్డర్"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"స్క్రీన్ రికార్డ్ సెషన్ కోసం ఆన్‌గోయింగ్ నోటిఫికేషన్"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"రికార్డింగ్‌ను ప్రారంభించాలా?"</string>
@@ -558,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"మీ కార్యాలయ ప్రొఫైల్ <xliff:g id="ORGANIZATION">%1$s</xliff:g> నిర్వహణలో ఉంది. ఇమెయిల్‌లు, అనువర్తనాలు మరియు వెబ్‌సైట్‌లతో సహా మీ కార్యాలయ నెట్‌వర్క్ కార్యాచరణను పర్యవేక్షించగల <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>కి ప్రొఫైల్ కనెక్ట్ చేయబడింది.\n\nమీ వ్యక్తిగత నెట్‌వర్క్ కార్యాచరణను పర్యవేక్షించగల <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>కి కూడా మీరు కనెక్ట్ చేయబడ్డారు."</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"TrustAgent ద్వారా అన్‌లాక్ చేయబడింది"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"మీరు మాన్యువల్‌గా అన్‌లాక్ చేస్తే మినహా పరికరం లాక్ చేయబడి ఉంటుంది"</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"నోటిఫికేషన్‌లను వేగంగా పొందండి"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"వీటిని మీరు అన్‌లాక్ చేయకముందే చూడండి"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"వద్దు, ధన్యవాదాలు"</string>
@@ -676,7 +679,7 @@
     <string name="notification_channel_unsilenced" msgid="94878840742161152">"ఈ నోటిఫికేషన్‌లు మిమ్మల్ని హెచ్చరిస్తాయి"</string>
     <string name="inline_blocking_helper" msgid="2891486013649543452">"మీరు సాధారణంగా ఈ నోటిఫికేషన్‌లను విస్మరిస్తారు. \nవాటి ప్రదర్శనను కొనసాగించాలా?"</string>
     <string name="inline_done_button" msgid="6043094985588909584">"పూర్తయింది"</string>
-    <string name="inline_ok_button" msgid="603075490581280343">"వర్తింపజేయి"</string>
+    <string name="inline_ok_button" msgid="603075490581280343">"అప్లై చేయి"</string>
     <string name="inline_keep_showing" msgid="8736001253507073497">"ఈ నోటిఫికేషన్‌లను చూపిస్తూ ఉండాలా?"</string>
     <string name="inline_stop_button" msgid="2453460935438696090">"నోటిఫికేషన్‌లను ఆపివేయి"</string>
     <string name="inline_deliver_silently_button" msgid="2714314213321223286">"నిశ్శబ్దంగా బట్వాడా చేయండి"</string>
@@ -696,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"శబ్దం లేదా వైబ్రేషన్‌తో మీరు దృష్టి సారించేలా చేస్తుంది."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ఫ్లోటింగ్ షార్ట్‌కట్‌తో మీ దృష్టిని ఈ కంటెంట్‌పై నిలిపి ఉంచుతుంది."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ఇటీవల బబుల్‌లు ఏవీ లేవు"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"ఇటీవలి బబుల్‌లు, తీసివేసిన బబుల్‌లు ఇక్కడ కనిపిస్తాయి."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ఈ నోటిఫికేషన్‌లను సవరించడం వీలుపడదు."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"ఈ నోటిఫికేషన్‌ల సమూహాన్ని ఇక్కడ కాన్ఫిగర్ చేయలేము"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"ప్రాక్సీ చేయబడిన నోటిఫికేషన్"</string>
@@ -966,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"పరికర సేవలు"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"శీర్షిక లేదు"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"ఈ యాప్‌ను పునఃప్రారంభించేలా నొక్కి, ఆపై పూర్తి స్క్రీన్‌‍లోకి వెళ్లండి."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g>ని తెరువు"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> బబుల్‌ల సెట్టింగ్‌లు"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> నుండి బబుల్‌లను అనుమతించాలా?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"నిర్వహించండి"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"తిరస్కరించు"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"అనుమతించు"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"నన్ను తర్వాత అడగు"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> నుండి <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> నుండి <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> మరియు మరో <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"తరలించు"</string>
@@ -981,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"దిగువ ఎడమవైపునకు తరలించు"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"దిగవు కుడివైపునకు జరుపు"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"విస్మరించు"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"చాట్‌లను ముందుగా ఉంచండి"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> నుండి వచ్చే కొత్త చాట్‌లు బబుల్‌లుగా కనిపిస్తాయి. దానిని తెరవడానికి బబుల్‌ను ట్యాప్ చేయండి. దానిని తరలించడానికి లాగండి.\n\nబబుల్‌ను ట్యాప్ చేయండి"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"ఈ యాప్ నుండి వచ్చే బబుల్‌లను ఆఫ్ చేయడానికి మేనేజ్ బటన్‌ను ట్యాప్ చేయండి"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"సిస్టమ్ నావిగేషన్ అప్‌డేట్ చేయబడింది. మార్పులు చేయడానికి, సెట్టింగ్‌లకు వెళ్లండి."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"సిస్టమ్ నావిగేషన్‌ను అప్‌డేట్ చేయడానికి సెట్టింగ్‌లకు వెళ్లండి"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"స్టాండ్‌బై"</string>
@@ -999,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"నియంత్రణలు"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"త్వరిత యాక్సెస్ కోసం నియంత్రణలను ఎంచుకోండి"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"ఇష్టమైనవి"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"అన్ని"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"అన్ని నియంత్రణలు గల జాబితాను లోడ్ చేయలేకపోయాము."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"ఇతరం"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"త్వరిత నియంత్రణలకు జోడించు"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"ఇష్టమైనవాటికి జోడించు"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"మీ ఇష్టమైనవాటికి జోడించడానికి <xliff:g id="APP">%s</xliff:g> ఈ కంట్రోల్‌ను సూచించింది."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"పిన్ అక్షరాలను లేదా చిహ్నాలను కలిగి ఉంది"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"పరికర పిన్‌ని వెరిఫై చేయండి"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"పిన్‌ని ఎంటర్ చేయండి"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"ఇతర నిర్మాణాలను చూడటానికి స్వైప్ చేయండి"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml b/packages/SystemUI/res/values-television/dimens.xml
similarity index 76%
copy from core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
copy to packages/SystemUI/res/values-television/dimens.xml
index 82cd6ec..6da0c69 100644
--- a/core/tests/ResourceLoaderTests/resources/res/values/string_three.xml
+++ b/packages/SystemUI/res/values-television/dimens.xml
@@ -12,10 +12,9 @@
   ~ distributed under the License is distributed on an "AS IS" BASIS,
   ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
+  ~ limitations under the License
   -->
-
 <resources>
-    <public type="string" name="cancel" id="0x01040000" />
-    <string name="cancel">SomeRidiculouslyUnlikelyStringThree</string>
-</resources>
+    <!-- Opacity at which the background for the shutdown UI will be drawn. -->
+    <item name="shutdown_scrim_behind_alpha" format="float" type="dimen">1.0</item>
+</resources>
\ No newline at end of file
diff --git a/packages/SystemUI/res/values-television/styles.xml b/packages/SystemUI/res/values-television/styles.xml
index b59f007..b01c5d8 100644
--- a/packages/SystemUI/res/values-television/styles.xml
+++ b/packages/SystemUI/res/values-television/styles.xml
@@ -17,4 +17,9 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
     <style name="Theme.SystemUI.Dialog" parent="@android:style/Theme.DeviceDefault.Dialog" />
     <style name="Theme.SystemUI.Dialog.Alert" parent="@*android:style/Theme.DeviceDefault.Dialog.Alert" />
+
+    <style name="Animation.ShutdownUi">
+        <item name="android:windowEnterAnimation">@null</item>
+        <item name="android:windowExitAnimation">@null</item>
+    </style>
 </resources>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index 866eb59..e1a4a79 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"ลองบันทึกภาพหน้าจออีกครั้ง"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"บันทึกภาพหน้าจอไม่ได้เนื่องจากพื้นที่เก็บข้อมูลมีจำกัด"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"แอปหรือองค์กรของคุณไม่อนุญาตให้จับภาพหน้าจอ"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"โปรแกรมบันทึกหน้าจอ"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"การแจ้งเตือนต่อเนื่องสำหรับเซสชันการบันทึกหน้าจอ"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"เริ่มบันทึกเลยไหม"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"ดึงความสนใจของคุณด้วยเสียงและการสั่น"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"ดึงดูดความสนใจของคุณไว้เสมอด้วยทางลัดแบบลอยที่มายังเนื้อหานี้"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"ไม่มีบับเบิลเมื่อเร็วๆ นี้"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"บับเบิลที่แสดงและที่ปิดไปเมื่อเร็วๆ นี้จะปรากฏที่นี่"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"แก้ไขการแจ้งเตือนเหล่านี้ไม่ได้"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"การแจ้งเตือนกลุ่มนี้กำหนดค่าที่นี่ไม่ได้"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"การแจ้งเตือนที่ผ่านพร็อกซี"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"บริการของอุปกรณ์"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"ไม่มีชื่อ"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"แตะเพื่อรีสตาร์ทแอปนี้และแสดงแบบเต็มหน้าจอ"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"เปิด <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"การตั้งค่าลูกโป่ง <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"อนุญาตลูกโป่งจาก <xliff:g id="APP_NAME">%1$s</xliff:g> ไหม"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"จัดการ"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"ปฏิเสธ"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"อนุญาต"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"ถามฉันทีหลัง"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> จาก <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> จาก <xliff:g id="APP_NAME">%2$s</xliff:g> และอีก <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> รายการ"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"ย้าย"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"ย้ายไปด้านซ้ายล่าง"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"ย้ายไปด้านขาวล่าง"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"ปิด"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"เข้าถึงแชทได้ง่ายๆ"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"แชทใหม่จาก <xliff:g id="APP_NAME">%1$s</xliff:g> จะปรากฏเป็นบับเบิล แตะบับเบิลเพื่อเปิดแชท ลากเพื่อย้ายตำแหน่ง\n\nแตะบับเบิล"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"แตะ \"จัดการ\" เพื่อปิดบับเบิลจากแอปนี้"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"อัปเดตการไปยังส่วนต่างๆ ของระบบแล้ว หากต้องการเปลี่ยนแปลง ให้ไปที่การตั้งค่า"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"ไปที่การตั้งค่าเพื่ออัปเดตการไปยังส่วนต่างๆ ของระบบ"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"สแตนด์บาย"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"การควบคุม"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"เลือกการควบคุมสำหรับการเข้าถึงด่วน"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"รายการโปรด"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"ทั้งหมด"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"โหลดรายการตัวควบคุมทั้งหมดไม่ได้"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"อื่นๆ"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"เพิ่มการควบคุมอย่างรวดเร็ว"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"เพิ่มในรายการโปรด"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> แนะนำให้เพิ่มการควบคุมนี้ในรายการโปรด"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN ประกอบด้วยตัวอักษรหรือสัญลักษณ์"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"ยืนยัน PIN ของอุปกรณ์"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"ป้อน PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"เลื่อนเพื่อดูโครงสร้างอื่นๆ"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index cdfe732..3a19c52 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Subukang kumuhang muli ng screenshot"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Hindi ma-save ang screenshot dahil sa limitadong espasyo ng storage"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Hindi pinahihintulutan ng app o ng iyong organisasyon ang pagkuha ng mga screenshot"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Screen Recorder"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Kasalukuyang notification para sa session ng pag-record ng screen"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Simulang Mag-record?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Kinukuha ang iyong atensyon sa pamamagitan ng tunog o pag-vibrate."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Pinapanatili ang iyong atensyon sa pamamagitan ng lumulutang na shortcut sa content na ito."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Walang kamakailang bubble"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Lalabas dito ang kamakailang bubbles at na-dismiss na bubbles."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Hindi puwedeng baguhin ang mga notification na ito."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Hindi mako-configure dito ang pangkat na ito ng mga notification"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Na-proxy na notification"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Mga Serbisyo ng Device"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Walang pamagat"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"I-tap para i-restart ang app na ito at mag-full screen."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Buksan ang <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Mga setting para sa mga bubble ng <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Payagan ang mga bubble mula sa <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Pamahalaan"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Tanggihan"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Payagan"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Tanungin ako sa ibang pagkakataon"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> mula sa <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> mula sa <xliff:g id="APP_NAME">%2$s</xliff:g> at <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> pa"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Ilipat"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Ilipat sa kaliwa sa ibaba"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Ilipat sa kanan sa ibaba"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"I-dismiss"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Panatilihing nasa harap ang mga chat"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Lalabas ang mga bagong chat mula sa <xliff:g id="APP_NAME">%1$s</xliff:g> bilang mga bubble. I-tap ang isang bubble para buksan ito. I-drag ito para ilipat ito.\n\nI-tap ang bubble"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"I-tap ang Pamahalaan para i-off ang mga bubble mula sa app na ito"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Na-update na ang pag-navigate ng system. Para gumawa ng mga pagbabago, pumunta sa Mga Setting."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Pumunta sa Mga Setting para i-update ang pag-navigate sa system"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Naka-standby"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Mga Kontrol"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Pumili ng mga kontrol para sa mabilis na pag-access"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Paborito"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Lahat"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Hindi ma-load ang listahan ng lahat ng control."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Iba pa"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Idagdag sa Mabilisang Kontrol"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Idagdag sa mga paborito"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"Iminungkahi ng <xliff:g id="APP">%s</xliff:g> ang kontrol na ito na idagdag sa iyong mga paborito."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"May mga titik o simbolo ang PIN"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"I-verify ang PIN ng device"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Ilagay ang PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Mag-swipe para makita iba pang istraktura"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 8d2d98b..24d8c5f 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Tekrar ekran görüntüsü almayı deneyin"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Depolama alanı sınırlı olduğundan ekran görüntüsü kaydedilemiyor"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Uygulama veya kuruluşunuz, ekran görüntüsü alınmasına izin vermiyor."</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Ekran Kaydedici"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Ekran kaydı oturumu için devam eden bildirim"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Kayıt Başlatılsın mı?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Ses veya titreşimle dikkatinizi çeker."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Kayan kısayolla dikkatinizi bu içerik üzerinde tutar."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Son kapatılan baloncuk yok"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Son baloncuklar ve kapattığınız baloncuklar burada görünür."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirimler değiştirilemez."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Bu bildirim grubu burada yapılandırılamaz"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Proxy uygulanan bildirim"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Cihaz Hizmetleri"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Başlıksız"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Bu uygulamayı yeniden başlatmak ve tam ekrana geçmek için dokunun."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> öğesini açın."</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> baloncukları için ayarlar"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> baloncuklarına izin verilsin mi?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Yönet"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Reddet"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"İzin Ver"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Daha sonra yeniden sor"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> uygulamasından <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> uygulamasından <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> ve diğer <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Taşı"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Sol alta taşı"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Sağ alta taşı"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Kapat"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Sohbetleri önde tutma"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> adlı kişi ile yeni sohbetler balon olarak görünür. Açmak için balona dokunun. Taşımak için sürükleyin.\n\nBalona dokunun"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Bu uygulamanın balonlarını kapatmak için Yönet\'e dokunun"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Sistemde gezinme yöntemi güncellendi. Değişiklik yapmak için Ayarlar\'a gidin."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Sistemde gezinme yöntemini güncellemek için Ayarlar\'a gidin"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Beklemeye alınıyor"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontroller"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Hızlı erişim için kontrolleri seçin"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Favoriler"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tümü"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Tüm kontrollerin listesi yüklenemedi."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Diğer"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Hızlı Kontrollere ekle"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Favorilere ekle"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g>, bu kontrolü favorilerinize eklemenizi önerdi."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN, harf veya simge içerir"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Cihaz PIN\'ini doğrulayın"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"PIN girin"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Diğer yapıları görmek için kaydırın"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index c6bec40..baf7309 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Спробуйте зробити знімок екрана ще раз"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Не вдалося зберегти знімок екрана через обмежений обсяг пам’яті"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Додаток або адміністратор вашої організації не дозволяють робити знімки екрана"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Засіб запису екрана"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Сповіщення про сеанс запису екрана"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Почати запис?"</string>
@@ -701,7 +705,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Привертає увагу звуковим сигналом або вібрацією."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Привертає увагу до контенту плаваючим ярликом."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Немає нещодавніх спливаючих сповіщень"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Тут з\'являтимуться нещодавні й відхилені спливаючі сповіщення."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Ці сповіщення не можна змінити."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Цю групу сповіщень не можна налаштувати тут"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Проксі-сповіщення"</string>
@@ -962,7 +967,7 @@
     <string name="slice_permission_text_2" msgid="6758906940360746983">"- Може виконувати дії в додатку <xliff:g id="APP">%1$s</xliff:g>"</string>
     <string name="slice_permission_checkbox" msgid="4242888137592298523">"Дозволити додатку <xliff:g id="APP">%1$s</xliff:g> показувати фрагменти будь-якого додатка"</string>
     <string name="slice_permission_allow" msgid="6340449521277951123">"Дозволити"</string>
-    <string name="slice_permission_deny" msgid="6870256451658176895">"Відмовити"</string>
+    <string name="slice_permission_deny" msgid="6870256451658176895">"Заборонити"</string>
     <string name="auto_saver_title" msgid="6873691178754086596">"Торкніться, щоб увімкнути автоматичний режим економії заряду акумулятора"</string>
     <string name="auto_saver_text" msgid="3214960308353838764">"Вмикати, коли заряд акумулятора закінчується"</string>
     <string name="no_auto_saver_action" msgid="7467924389609773835">"Ні, дякую"</string>
@@ -975,13 +980,8 @@
     <string name="device_services" msgid="1549944177856658705">"Сервіси на пристрої"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Без назви"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Натисніть, щоб перезапустити додаток і перейти в повноекранний режим."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Відкрити додаток <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Налаштування спливаючих підказок від додатка <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Дозволити спливаючі підказки від додатка <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Керувати"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Заборонити"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Дозволити"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Запитати пізніше"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"Cповіщення \"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>\" від додатка <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"Сповіщення \"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>\" від додатка <xliff:g id="APP_NAME">%2$s</xliff:g> (і ще <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g>)"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Перемістити"</string>
@@ -990,9 +990,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Перемістити ліворуч униз"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Перемістити праворуч униз"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Закрити"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Чати завжди під рукою"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Нові чати з додатка <xliff:g id="APP_NAME">%1$s</xliff:g> з\'являтимуться як спливаючі сповіщення. Щоб відкрити чат, натисніть сповіщення. Щоб перемістити сповіщення, потягніть його.\n\nНатисніть спливаюче сповіщення"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Натисніть \"Керувати\", щоб вимкнути спливаючі сповіщення для цього додатка"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Навігацію в системі оновлено. Щоб внести зміни, перейдіть у налаштування."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Перейдіть у налаштування, щоб оновити навігацію в системі"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Режим очікування"</string>
@@ -1010,14 +1018,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Елементи керування"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Виберіть елементи керування для швидкого доступу"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Вибране"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Усі"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Не вдалося завантажити список усіх елементів керування."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Інше"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Додати в елементи швидкого керування"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Додати у вибране"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> пропонує додати цей елемент керування у вибране."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN-код містить літери чи символи"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Перевірити PIN-код пристрою"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Введіть PIN-код"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Щоб переглянути інші структури, проведіть пальцем"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml
index cc5f3c5..2d5ea2a 100644
--- a/packages/SystemUI/res/values-ur/strings.xml
+++ b/packages/SystemUI/res/values-ur/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"دوبارہ اسکرین شاٹ لینے کی کوشش کریں"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"اسٹوریج کی محدود جگہ کی وجہ سے اسکرین شاٹ کو محفوظ نہیں کیا جا سکتا"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"ایپ یا آپ کی تنظیم کی جانب سے اسکرین شاٹس لینے کی اجازت نہیں ہے"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"اسکرین ریکارڈر"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"اسکرین ریکارڈ سیشن کیلئے جاری اطلاع"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"ریکارڈنگ شروع کریں؟"</string>
@@ -558,8 +562,7 @@
     <string name="monitoring_description_app_personal_work" msgid="6175816356939166101">"آپ کا دفتری پروفائل <xliff:g id="ORGANIZATION">%1$s</xliff:g> کے زیر انتظام ہے۔ پروفائل <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> سے منسلک ہے جو ای میلز، ایپس اور ویب سائٹس سمیت آپ کے دفتری نیٹ ورک کی سرگرمی مانیٹر کر سکتی ہے۔\n\nآپ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> سے بھی منسلک ہیں، جو آپ کے ذاتی نیٹ ورک کی سرگرمی مانیٹر کر سکتی ہے۔"</string>
     <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"ٹرسٹ ایجنٹ نے غیر مقفل رکھا ہے"</string>
     <string name="keyguard_indication_trust_disabled" msgid="6820793704816727918">"آلہ اس وقت تک مقفل رہے گا جب تک آپ دستی طور پر اسے غیر مقفل نہ کریں"</string>
-    <!-- no translation found for keyguard_indication_trust_unlocked_plugged_in (2323452175329362855) -->
-    <skip />
+    <string name="keyguard_indication_trust_unlocked_plugged_in" msgid="2323452175329362855">"<xliff:g id="KEYGUARD_INDICATION">%1$s</xliff:g>\n<xliff:g id="POWER_INDICATION">%2$s</xliff:g>"</string>
     <string name="hidden_notifications_title" msgid="1782412844777612795">"تیزی سے اطلاعات حاصل کریں"</string>
     <string name="hidden_notifications_text" msgid="5899627470450792578">"غیر مقفل کرنے سے پہلے انہیں دیکھیں"</string>
     <string name="hidden_notifications_cancel" msgid="4805370226181001278">"نہیں شکریہ"</string>
@@ -696,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"آواز اور وائبریشن کے ذریعے آپ کی توجہ حاصل کرتا ہے۔"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"اس مواد کے فلوٹنگ شارٹ کٹ کے ساتھ آپ کی توجہ دیتی ہے۔"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"کوئی حالیہ بلبلہ نہیں"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"حالیہ بلبلے اور برخاست بلبلے یہاں ظاہر ہوں گے۔"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"ان اطلاعات کی ترمیم نہیں کی جا سکتی۔"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"اطلاعات کے اس گروپ کو یہاں کنفیگر نہیں کیا جا سکتا"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"پراکسی اطلاع"</string>
@@ -966,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"آلہ کی سروس"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"کوئی عنوان نہیں ہے"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"یہ ایپ دوبارہ شروع کرنے کے لیے تھپتھپائیں اور پوری اسکرین پر جائیں۔"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"<xliff:g id="APP_NAME">%1$s</xliff:g> کھولیں"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> بلبلوں کے لیے ترتیبات"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> کی جانب سے بلبلوں کو اجازت دیں؟"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"نظم کریں"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"مسترد کریں"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"اجازت دیں"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"مجھ سے بعد میں پوچھیں"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g> کی جانب سے <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> اور <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> مزید سے <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"منتقل کریں"</string>
@@ -981,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"نیچے بائیں جانب لے جائیں"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"نیچے دائیں جانب لے جائیں"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"برخاست کریں"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"چیٹس سامنے رکھیں"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> کی نئی چیٹس بلبلوں کے طور پر ظاہر ہوں گی۔ اسے کھولنے کے لیے کسی بلبلہ کو تھپتھپائیں۔ اسے منتقل کرنے کے لیے گھسیٹیں۔\n\nبلبلہ کو تھپتھپائیں"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"اس ایپ سے بلبلوں کو آف کرنے کے لیے نظم کریں پر تھپتھپائیں"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"سسٹم نیویگیشن اپ ڈیٹ کیا گیا۔ تبدیلیاں کرنے کے لیے، ترتیبات پر جائیں۔"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"سسٹم نیویگیشن اپ ڈیٹ کرنے کے لیے ترتیبات پر جائیں"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"اسٹینڈ بائی"</string>
@@ -999,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"کنٹرولز"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"فوری رسائی کیلئے کنٹرولز کا انتخاب کریں"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"پسندیدگیاں"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"تمام"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"تمام کنٹرولز کی فہرست لوڈ نہیں کی جا سکی۔"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"دیگر"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"فوری کنٹرولز میں شامل کریں"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"پسندیدگیوں میں شامل کریں"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> نے آپ کی پسندیدگیوں میں شامل کرنے کے ليے یہ کنٹرول تجویز کیا۔"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"‏PIN میں حروف یا علامات شامل ہیں"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"‏آلہ کے PIN کی توثیق کریں"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"‏PIN درج کریں"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"دوسری ساختیں دیکھنے کے لیے سوائپ کریں"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml
index 6ceaeeb..679a67f 100644
--- a/packages/SystemUI/res/values-uz/strings.xml
+++ b/packages/SystemUI/res/values-uz/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Qayta skrinshot olib ko‘ring"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Xotirada joy kamligi uchun skrinshot saqlanmadi"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Ilova yoki tashkilotingiz skrinshot olishni taqiqlagan"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Ekranni yozib olish vositasi"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Ekrandan yozib olish seansi uchun joriy bildirishnoma"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Yozib olish boshlansinmi?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Bildirishnomalar tovush va tebranish bilan keladi."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Bu kontentni ochuvchi erkin yorliq diqqatingizda boʻladi."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Avvalgi pufakchalar topilmadi"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Bu yerda oxirgi va yopilgan qalqib chiquvchi bildirishnomalar chiqadi."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Bu bildirishnomalarni tahrirlash imkonsiz."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Ushbu bildirishnomalar guruhi bu yerda sozlanmaydi"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Ishonchli bildirishnoma"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Qurilma xizmatlari"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Nomsiz"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Bu ilovani qaytadan ishga tushirish va butun ekranga ochish uchun bosing."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Ochish: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g> pufakchalari uchun sozlamalar"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"<xliff:g id="APP_NAME">%1$s</xliff:g> pufakchalariga ruxsat berilsinmi?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Boshqarish"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Rad etish"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Ruxsat"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Keyinroq soʻralsin"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>, <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g> ilovasidan <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> va yana <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> ta bildirishnoma"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Surish"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Quyi chapga surish"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Quyi oʻngga surish"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Yopish"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Chatlar asosiy planda"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasidan yangi chatlar bulutchalar shaklida chiqadi. Uni ochish uchun bulutchani bosing. Uni surish uchun torting.\n\nBulutchani bosing"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Bu ilova bulutchalarini faolsizlantirish uchun Boshqarish tugmasini bosing"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Tizim navigatsiyasi yangilandi. Buni Sozlamalar orqali oʻzgartirishingiz mumkin."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Tizim navigatsiyasini yangilash uchun Sozlamalarni oching"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Kutib turing"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Boshqaruv elementlari"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Tezkor kirish uchun boshqaruv elementlarini tanlang"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Saralanganlar"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Hammasi"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Boshqaruv elementlarining barchasi yuklanmadi."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Boshqa"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Tezkor sozlamalarga kiriting"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Saralanganlarga kiritish"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> ilovasi bu sozlamani saralanganlarga kiritishni taklif qildi."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN kod harflar va belgilardan iborat boʻladi"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Qurilma PIN kodini tasdiqlang"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"PIN kodni kiriting"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Boshqa tuzilmalarni koʻrish uchun suring"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index 37f71c0..cce3a7c 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Hãy thử chụp lại màn hình"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Không thể lưu ảnh chụp màn hình do giới hạn dung lượng bộ nhớ"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Ứng dụng hoặc tổ chức của bạn không cho phép chụp ảnh màn hình"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Trình ghi màn hình"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Thông báo đang diễn ra về phiên ghi màn hình"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Bắt đầu ghi?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Thu hút sự chú ý của bạn bằng cách bật tiếng hoặc rung."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Luôn chú ý vào nội dung này bằng phím tắt nổi."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Không có bong bóng nào gần đây"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Bong bóng đã tắt và bong bóng gần đây sẽ xuất hiện ở đây."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Không thể sửa đổi các thông báo này."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Không thể định cấu hình nhóm thông báo này tại đây"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Thông báo đã xử lý qua máy chủ proxy"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Dịch vụ cho thiết bị"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Không có tiêu đề"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Nhấn để khởi động lại ứng dụng này và xem ở chế độ toàn màn hình."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Mở <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Tùy chọn cài đặt cho bong bóng <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Bạn muốn cho phép bong bóng của <xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Quản lý"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Từ chối"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Cho phép"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Hỏi tôi sau"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> của <xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> từ <xliff:g id="APP_NAME">%2$s</xliff:g> và <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> bong bóng khác"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Di chuyển"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Chuyển tới dưới cùng bên trái"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Chuyển tới dưới cùng bên phải"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Loại bỏ"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Giữ cuộc trò chuyện trên nền trước"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Các cuộc trò chuyện mới từ ứng dụng <xliff:g id="APP_NAME">%1$s</xliff:g> sẽ hiển thị dưới dạng bong bóng. Hãy nhấn vào bong bóng để mở. Kéo để di chuyển cuộc trò chuyện.\n\nNhấn vào bong bóng"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Nhấn vào nút Quản lý để tắt bong bóng từ ứng dụng này"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Đã cập nhật chế độ di chuyển trên hệ thống. Để thay đổi, hãy chuyển đến phần Cài đặt."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Chuyển đến phần Cài đặt để cập nhật chế độ di chuyển trên hệ thống"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Chế độ chờ"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Các tùy chọn điều khiển"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Chọn các tùy chọn điều khiển để truy cập nhanh"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Tiêu đề yêu thích"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Tất cả"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Không thể tải danh sách tất cả tùy chọn điều khiển."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Khác"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Thêm vào mục Điều khiển nhanh"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Thêm vào mục yêu thích"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g> đã đề xuất thêm tùy chọn điều khiển này vào mục yêu thích của bạn."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Mã PIN chứa các ký tự hoặc ký hiệu"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Xác nhận mã PIN của thiết bị"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Nhập mã PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Vuốt để xem các cấu trúc khác"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 119767b..503f16e 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"请再次尝试截屏"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"由于存储空间有限,无法保存屏幕截图"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"此应用或您所在的单位不允许进行屏幕截图"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"屏幕录制工具"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"持续显示屏幕录制会话通知"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"要开始录制吗?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"通过提示音或振动吸引您的注意。"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"通过可链接到这项内容的浮动快捷方式吸引您的注意。"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"最近没有气泡"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"此处会显示最近的气泡和已关闭的气泡。"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"无法修改这些通知。"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"您无法在此处配置这组通知"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"代理通知"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"设备服务"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"无标题"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"点按即可重启此应用并进入全屏模式。"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"打开<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"<xliff:g id="APP_NAME">%1$s</xliff:g>气泡的相关设置"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"要允许来自<xliff:g id="APP_NAME">%1$s</xliff:g>的气泡吗?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"管理"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"拒绝"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"允许"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"以后再说"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g>:<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"<xliff:g id="APP_NAME">%2$s</xliff:g>和另外 <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> 个应用:<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"移动"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"移至左下角"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"移至右下角"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"关闭"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"让聊天在前台运行"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"来自<xliff:g id="APP_NAME">%1$s</xliff:g>的新聊天消息会显示为气泡。点按某个气泡可将其打开。拖动即可移动气泡。\n\n点按该气泡"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"点按“管理”按钮,可关闭来自此应用的气泡"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"系统导航已更新。要进行更改,请转到“设置”。"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"转到“设置”即可更新系统导航"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"待机"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"控件"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"选择用于快速访问的控件"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"收藏"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"全部"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"无法加载所有控件的列表。"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"其他"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"添加到快捷控件"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"添加到收藏夹"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"<xliff:g id="APP">%s</xliff:g>建议将此控件添加到您的收藏夹。"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN 码由字母或符号组成"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"验证设备 PIN 码"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"输入 PIN 码"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"滑动即可查看其他结构"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 8a3687f..6bf7938 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"請再嘗試拍攝螢幕擷取畫面"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"由於儲存空間有限,因此無法儲存螢幕擷取畫面"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"應用程式或您的機構不允許擷取螢幕畫面"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"螢幕畫面錄影工具"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"持續顯示錄影畫面工作階段通知"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"要開始錄影嗎?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"發出聲音或震動來吸引您的注意。"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"為此內容建立浮動捷徑以保持注意力。"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"沒有最近曾使用的小視窗"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"最近曾使用和關閉的小視窗會在這裡顯示。"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"無法修改這些通知。"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"無法在此設定這組通知"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"代理通知"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"裝置服務"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"無標題"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"輕按即可重新開啟此應用程式並放大至全螢幕。"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"開啟「<xliff:g id="APP_NAME">%1$s</xliff:g>」"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」小視窗設定"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"要允許開啟「<xliff:g id="APP_NAME">%1$s</xliff:g>」的小視窗嗎?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"管理"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"拒絕"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"允許"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"稍後再詢問我"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"來自「<xliff:g id="APP_NAME">%2$s</xliff:g>」的 <xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"來自「<xliff:g id="APP_NAME">%2$s</xliff:g>」及另外 <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> 個應用程式的<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"移動"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"移去左下角"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"移去右下角"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"關閉"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"保持即時通訊在最前面"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」的新即時通訊將以小視窗形式顯示。輕按小視窗即可開啟。拖曳即可移動。\n\n輕按小視窗"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"輕按「管理」即可關閉此應用程式的小視窗"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"系統導覽已更新。如需變更,請前往「設定」。"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"前往「設定」更新系統導覽"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"待機"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"控制項"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"選擇控制項以快速存取"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"常用"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"全部"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"無法載入完整控制項清單。"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"其他"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"加入至快速控制介面"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"加入至常用項目"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"「<xliff:g id="APP">%s</xliff:g>」建議將此控制項加入至常用項目。"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN 含有字母或符號"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"驗證裝置 PIN"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"輸入 PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"滑動即可查看其他結構"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 16ee960..a90086a 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"請再次嘗試拍攝螢幕截圖"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"由於儲存空間有限,因此無法儲存螢幕截圖"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"這個應用程式或貴機構不允許擷取螢幕畫面"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"螢幕畫面錄製工具"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"持續顯示螢幕畫面錄製工作階段通知"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"要開始錄製嗎?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"發出音效或震動吸引你的注意力。"</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"利用浮動式捷徑快速存取這項內容。"</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"最近沒有任何泡泡"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"最近的泡泡和已關閉的泡泡會顯示在這裡。"</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"無法修改這些通知。"</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"無法在這裡設定這個通知群組"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"經過 Proxy 處理的通知"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"裝置服務"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"無標題"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"輕觸即可重新啟動這個應用程式並進入全螢幕模式。"</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"開啟「<xliff:g id="APP_NAME">%1$s</xliff:g>」"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」泡泡的設定"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"要允許「<xliff:g id="APP_NAME">%1$s</xliff:g>」顯示泡泡嗎?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"管理"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"拒絕"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"允許"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"稍後再詢問我"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"<xliff:g id="APP_NAME">%2$s</xliff:g>:<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"「<xliff:g id="APP_NAME">%2$s</xliff:g>」和其他 <xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> 個應用程式:<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g>"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"移動"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"移至左下方"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"移至右下方"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"關閉"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"讓即時通訊繼續在前景執行"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"系統會以泡泡形式顯示來自「<xliff:g id="APP_NAME">%1$s</xliff:g>」的新即時通訊。輕觸泡泡即可開啟,拖曳則可移動泡泡。\n\n輕觸泡泡"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"輕觸 [管理] 即可關閉來自這個應用程式的泡泡"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"系統操作機制已更新。如要進行變更,請前往「設定」。"</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"請前往「設定」更新系統操作機制"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"待機"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"控制項"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"選擇要快速存取的控制項"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"常用控制項"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"全部"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"無法載入完整的控制項清單。"</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"其他"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"新增至快速控制項"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"新增至常用控制項"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"「<xliff:g id="APP">%s</xliff:g>」建議你將這個控制項新增至常用控制項。"</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"PIN 碼含有字母或符號"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"驗證裝置 PIN 碼"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"請輸入 PIN 碼"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"滑動即可查看其他結構"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 7e2b53e..9b91ae8 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -86,6 +86,10 @@
     <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Zama ukuthatha isithombe-skrini futhi"</string>
     <string name="screenshot_failed_to_save_text" msgid="8344173457344027501">"Ayikwazi ukulondoloza isithombe-skrini ngenxa yesikhala sesitoreji esikhawulelwe"</string>
     <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Ukuthatha izithombe-skrini akuvunyelwe uhlelo lokusebenza noma inhlangano yakho"</string>
+    <!-- no translation found for screenshot_dismiss_ui_description (934736855340147968) -->
+    <skip />
+    <!-- no translation found for screenshot_preview_description (669177537416980449) -->
+    <skip />
     <string name="screenrecord_name" msgid="2596401223859996572">"Irekhoda yesikrini"</string>
     <string name="screenrecord_channel_description" msgid="4147077128486138351">"Isaziso esiqhubekayo seseshini yokurekhoda isikrini"</string>
     <string name="screenrecord_start_label" msgid="1750350278888217473">"Qala ukurekhoda?"</string>
@@ -695,7 +699,8 @@
     <string name="notification_channel_summary_default" msgid="3539949463907902037">"Ithola ukunaka kwakho ngomsindo noma ukudlidliza."</string>
     <string name="notification_channel_summary_bubble" msgid="7235935211580860537">"Igcina ukunaka kwakho ngesinqamuleli esintantayo kulokhu okuqukethwe."</string>
     <string name="bubble_overflow_empty_title" msgid="3120029421991510842">"Awekho amabhamuza akamuva"</string>
-    <string name="bubble_overflow_empty_subtitle" msgid="198257239740933131">"Amabhamuza akamuva namabhamuza asusiwe azobonakala lapha."</string>
+    <!-- no translation found for bubble_overflow_empty_subtitle (2030874469510497397) -->
+    <skip />
     <string name="notification_unblockable_desc" msgid="2073030886006190804">"Lezi zaziso azikwazi ukushintshwa."</string>
     <string name="notification_multichannel_desc" msgid="7414593090056236179">"Leli qembu lezaziso alikwazi ukulungiselelwa lapha"</string>
     <string name="notification_delegate_header" msgid="1264510071031479920">"Isaziso sommeli"</string>
@@ -965,13 +970,8 @@
     <string name="device_services" msgid="1549944177856658705">"Amasevisi edivayisi"</string>
     <string name="music_controls_no_title" msgid="4166497066552290938">"Asikho isihloko"</string>
     <string name="restart_button_description" msgid="6916116576177456480">"Thepha ukuze uqale kabusha lolu hlelo lokusebenza uphinde uye kusikrini esigcwele."</string>
-    <string name="bubbles_deep_link_button_description" msgid="3532375322003698792">"Vula i-<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="bubbles_settings_button_description" msgid="7324245408859877545">"Izilungiselelo zamabhamuza e-<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="bubbles_prompt" msgid="8172381116778530318">"Vumela amabhamuza kusukela ku-<xliff:g id="APP_NAME">%1$s</xliff:g>?"</string>
     <string name="manage_bubbles_text" msgid="6856830436329494850">"Phatha"</string>
-    <string name="no_bubbles" msgid="1187859094003006292">"Yenqaba"</string>
-    <string name="yes_bubbles" msgid="3014008797151197346">"Vumela"</string>
-    <string name="ask_me_later_bubbles" msgid="2666199914636253557">"Ngibuze ngesinye isikhathi"</string>
     <string name="bubble_content_description_single" msgid="5175160674436546329">"I-<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> kusuka ku-<xliff:g id="APP_NAME">%2$s</xliff:g>"</string>
     <string name="bubble_content_description_stack" msgid="7907610717462651870">"I-<xliff:g id="NOTIFICATION_TITLE">%1$s</xliff:g> kusukela ku-<xliff:g id="APP_NAME">%2$s</xliff:g> nokungu-<xliff:g id="BUBBLE_COUNT">%3$d</xliff:g> ngaphezulu"</string>
     <string name="bubble_accessibility_action_move" msgid="3185080443743819178">"Hambisa"</string>
@@ -980,9 +980,17 @@
     <string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Hambisa inkinobho ngakwesokunxele"</string>
     <string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Hambisa inkinobho ngakwesokudla"</string>
     <string name="bubble_dismiss_text" msgid="7071770411580452911">"Cashisa"</string>
-    <string name="bubbles_user_education_title" msgid="3385222165904578710">"Gcina izingxoxo ziphambili"</string>
-    <string name="bubbles_user_education_description" msgid="6663205638091146934">"Izingxoxo ezintsha kusuka ku-<xliff:g id="APP_NAME">%1$s</xliff:g>zizovela njengamabhamuza. Thepha ibhamuza ukuze ulivule. Hudula ukuze ulisuse.\n\nThepha ibhamuza"</string>
+    <!-- no translation found for bubbles_dont_bubble_conversation (1033040343437428822) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_title (5547017089271445797) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_description (1160281719576715211) -->
+    <skip />
+    <!-- no translation found for bubbles_user_education_manage_title (2848511858160342320) -->
+    <skip />
     <string name="bubbles_user_education_manage" msgid="1391639189507036423">"Thepha okuthi Phatha ukuvala amabhamuza kusuka kulolu hlelo lokusebenza"</string>
+    <!-- no translation found for bubbles_user_education_got_it (8282812431953161143) -->
+    <skip />
     <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Ukuzulazula kwesistimu kubuyekeziwe. Ukuze wenze ushintsho, hamba kokuthi Izilungiselelo."</string>
     <string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Hamba kuzilungiselelo ukuze ubuyekeze ukuzulazula kwesistimu"</string>
     <string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Ilindile"</string>
@@ -998,14 +1006,17 @@
     </plurals>
     <string name="controls_favorite_default_title" msgid="967742178688938137">"Izilawuli"</string>
     <string name="controls_favorite_subtitle" msgid="4049644994401173949">"Khetha izilawuli mayelana nokufinyelela okusheshayo"</string>
-    <string name="controls_favorite_header_favorites" msgid="3118600046217493471">"Izintandokazi"</string>
-    <string name="controls_favorite_header_all" msgid="7507855973418969992">"Konke"</string>
     <string name="controls_favorite_load_error" msgid="2533215155804455348">"Uhlu lwazo zonke izilawuli alilayishekanga."</string>
     <string name="controls_favorite_other_zone_header" msgid="9089613266575525252">"Okunye"</string>
-    <!-- no translation found for controls_dialog_title (8806193219278278442) -->
+    <string name="controls_dialog_title" msgid="8806193219278278442">"Engeza kuzilawuli ezisheshayo"</string>
+    <string name="controls_dialog_ok" msgid="7011816381344485651">"Engeza kuzintandokazi"</string>
+    <string name="controls_dialog_message" msgid="6292099631702047540">"I-<xliff:g id="APP">%s</xliff:g> iphakamise lokhu kulawula ukwengeza kuzintandokazi zakho."</string>
+    <string name="controls_pin_use_alphanumeric" msgid="8478371861023048414">"Iphinikhodi iqukethe amaletha namasimbui"</string>
+    <string name="controls_pin_verify" msgid="414043854030774349">"Qinisekisa i-PIN yedivayisi"</string>
+    <string name="controls_pin_instructions" msgid="6363309783822475238">"Faka i-PIN"</string>
+    <string name="controls_structure_tooltip" msgid="1392966215435667434">"Swayipha ukubona ezinye izakhiwo"</string>
+    <!-- no translation found for controls_seeding_in_progress (3033855341410264148) -->
     <skip />
-    <!-- no translation found for controls_dialog_ok (7011816381344485651) -->
-    <skip />
-    <!-- no translation found for controls_dialog_message (6292099631702047540) -->
+    <!-- no translation found for controls_media_close_session (9023534788828414585) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index 56e2b06..74bbee6 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -225,6 +225,7 @@
     <color name="control_default_background">@color/GM2_grey_900</color>
     <color name="control_list_popup_background">@*android:color/background_floating_material_dark</color>
     <color name="control_spinner_dropdown">@*android:color/foreground_material_dark</color>
+    <color name="control_more_vert">@*android:color/foreground_material_dark</color>
     <color name="control_enabled_light_background">@color/GM2_yellow_200</color>
     <color name="control_enabled_thermo_heat_background">@color/GM2_red_200</color>
     <color name="control_enabled_thermo_cool_background">@color/GM2_blue_200</color>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 06e027d..922acff 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -175,9 +175,6 @@
          be 'platform' or 'noisy' (i.e. for noisy touch screens). -->
     <string name="velocity_tracker_impl" translatable="false">platform</string>
 
-    <!-- Set to true to enable the user switcher on the keyguard. -->
-    <bool name="config_keyguardUserSwitcher">false</bool>
-
     <!-- Doze: does this device support STATE_DOZE?  -->
     <bool name="doze_display_state_supported">false</bool>
 
@@ -532,4 +529,8 @@
     <!-- Respect drawable/rounded.xml intrinsic size for multiple radius corner path customization -->
     <bool name="config_roundedCornerMultipleRadius">false</bool>
 
+    <!-- Controls can query a preferred application for limited number of suggested controls.
+         This config value should contain the package name of that preferred application.
+    -->
+    <string translatable="false" name="config_controlsPreferredPackage"></string>
 </resources>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index e45cbec..864442e 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -1150,8 +1150,8 @@
     <dimen name="bubble_overflow_height">380dp</dimen>
     <!-- Bubble overflow padding when there are no bubbles  -->
     <dimen name="bubble_overflow_empty_state_padding">16dp</dimen>
-    <!-- Margin of overflow bubbles -->
-    <dimen name="bubble_overflow_margin">16dp</dimen>
+    <!-- Padding of container for overflow bubbles -->
+    <dimen name="bubble_overflow_padding">5dp</dimen>
     <!-- Height of the triangle that points to the expanded bubble -->
     <dimen name="bubble_pointer_height">4dp</dimen>
     <!-- Width of the triangle that points to the expanded bubble -->
@@ -1225,6 +1225,7 @@
     <dimen name="controls_top_margin">44dp</dimen>
     <dimen name="control_header_text_size">22sp</dimen>
     <dimen name="control_text_size">14sp</dimen>
+    <dimen name="control_icon_size">24dp</dimen>
     <dimen name="control_spacing">4dp</dimen>
     <dimen name="control_list_divider">1dp</dimen>
     <dimen name="control_corner_radius">12dp</dimen>
@@ -1265,4 +1266,7 @@
     <dimen name="screenrecord_status_icon_radius">5dp</dimen>
 
     <dimen name="kg_user_switcher_text_size">16sp</dimen>
+
+    <!-- Opacity at which the background for the shutdown UI will be drawn. -->
+    <item name="shutdown_scrim_behind_alpha" format="float" type="dimen">0.95</item>
 </resources>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 93bafdb..b779130 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -375,6 +375,39 @@
     <!-- Error string shown when the user enters too many incorrect attempts [CHAR LIMIT=120]-->
     <string name="biometric_dialog_credential_too_many_attempts">Too many incorrect attempts.\nTry again in <xliff:g id="number">%d</xliff:g> seconds.</string>
 
+    <!-- Error string shown when the user enters an incorrect PIN/pattern/password and it counts towards the max attempts before the data on the device is wiped. [CHAR LIMIT=NONE]-->
+    <string name="biometric_dialog_credential_attempts_before_wipe">Try again. Attempt <xliff:g id="attempts" example="1">%1$d</xliff:g> of <xliff:g id="max_attempts" example="3">%2$d</xliff:g>.</string>
+
+    <!-- Title of a dialog shown when the user only has one attempt left to provide the correct PIN/pattern/password before the device, one of its users, or a work profile is wiped. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_last_attempt_before_wipe_dialog_title">Your data will be deleted</string>
+    <!-- Content of a dialog shown when the user only has one attempt left to provide the correct lock pattern before the device is wiped. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_last_pattern_attempt_before_wipe_device">If you enter an incorrect pattern on the next attempt, this device\u2019s data will be deleted.</string>
+    <!-- Content of a dialog shown when the user only has one attempt left to provide the correct PIN before the device is wiped. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_last_pin_attempt_before_wipe_device">If you enter an incorrect PIN on the next attempt, this device\u2019s data will be deleted.</string>
+    <!-- Content of a dialog shown when the user only has one attempt left to provide the correct password before the device is wiped. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_last_password_attempt_before_wipe_device">If you enter an incorrect password on the next attempt, this device\u2019s data will be deleted.</string>
+    <!-- Content of a dialog shown when the user only has one attempt left to provide the correct lock pattern before the user is removed. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_last_pattern_attempt_before_wipe_user">If you enter an incorrect pattern on the next attempt, this user will be deleted.</string>
+    <!-- Content of a dialog shown when the user only has one attempt left to provide the correct PIN before the user is removed. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_last_pin_attempt_before_wipe_user">If you enter an incorrect PIN on the next attempt, this user will be deleted.</string>
+    <!-- Content of a dialog shown when the user only has one attempt left to provide the correct password before the user is removed. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_last_password_attempt_before_wipe_user">If you enter an incorrect password on the next attempt, this user will be deleted.</string>
+    <!-- Content of a dialog shown when the user only has one attempt left to provide the correct pattern before the work profile is removed. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_last_pattern_attempt_before_wipe_profile">If you enter an incorrect pattern on the next attempt, your work profile and its data will be deleted.</string>
+    <!-- Content of a dialog shown when the user only has one attempt left to provide the correct PIN before the work profile is removed. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_last_pin_attempt_before_wipe_profile">If you enter an incorrect PIN on the next attempt, your work profile and its data will be deleted.</string>
+    <!-- Content of a dialog shown when the user only has one attempt left to provide the correct password before the work profile is removed. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_last_password_attempt_before_wipe_profile">If you enter an incorrect password on the next attempt, your work profile and its data will be deleted.</string>
+
+    <!-- Content of a dialog shown when the user has failed to provide the device lock too many times and the device is wiped. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_failed_attempts_now_wiping_device">Too many incorrect attempts. This device\u2019s data will be deleted.</string>
+    <!-- Content of a dialog shown when the user has failed to provide the user lock too many times and the user is removed. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_failed_attempts_now_wiping_user">Too many incorrect attempts. This user will be deleted.</string>
+    <!-- Content of a dialog shown when the user has failed to provide the work lock too many times and the work profile is removed. [CHAR LIMIT=NONE] -->
+    <string name="biometric_dialog_failed_attempts_now_wiping_profile">Too many incorrect attempts. This work profile and its data will be deleted.</string>
+    <!-- Button label to dismiss the dialog telling the user the device, user, or work profile has been wiped. [CHAR LIMIT=40] -->
+    <string name="biometric_dialog_now_wiping_dialog_dismiss">Dismiss</string>
+
     <!-- Message shown when the system-provided fingerprint dialog is shown, asking for authentication -->
     <string name="fingerprint_dialog_touch_sensor">Touch the fingerprint sensor</string>
     <!-- Content description of the fingerprint icon when the system-provided fingerprint dialog is showing, for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
@@ -1808,11 +1841,23 @@
     <!-- [CHAR LIMIT=150] Notification Importance title: bubble level summary -->
     <string name="notification_channel_summary_bubble">Keeps your attention with a floating shortcut to this content.</string>
 
+    <!-- [CHAR LIMIT=150] Notification Importance title: important conversation level summary -->
+    <string name="notification_channel_summary_priority">Shows at top of conversation section and appears as a bubble.</string>
+
+    <!--[CHAR LIMIT=150] Conversation inline controls footer shown when all conversations from the app are allowed to show as bubbles -->
+    <string name="notification_conversation_channel_all_bubble">All conversations from <xliff:g id="app_name" example="YouTube">%1$s</xliff:g> bubble by default. Manage in <xliff:g id="app_name" example="Settings">%2$s</xliff:g>.</string>
+
+    <!--[CHAR LIMIT=30] Linkable text to Settings app -->
+    <string name="notification_conversation_channel_settings">Settings</string>
+
+    <!-- [CHAR LIMIT=150] Notification Importance title: important conversation level -->
+    <string name="notification_priority_title">Priority</string>
+
     <!-- [CHAR LIMIT=NONE] Empty overflow title -->
     <string name="bubble_overflow_empty_title">No recent bubbles</string>
 
     <!-- [CHAR LIMIT=NONE] Empty overflow subtitle -->
-    <string name="bubble_overflow_empty_subtitle">Recent bubbles and dismissed bubbles will appear here.</string>
+    <string name="bubble_overflow_empty_subtitle">Recent bubbles and dismissed bubbles will appear here</string>
 
     <!-- Notification: Control panel: Label that displays when the app's notifications cannot be blocked. -->
     <string name="notification_unblockable_desc">These notifications can\'t be modified.</string>
@@ -2560,23 +2605,11 @@
     <!-- Description of the restart button in the hint of size compatibility mode. [CHAR LIMIT=NONE] -->
     <string name="restart_button_description">Tap to restart this app and go full screen.</string>
 
-    <!-- Text used for content description of deep link button in the header of expanded bubble
-         view. [CHAR_LIMIT=NONE] -->
-    <string name="bubbles_deep_link_button_description">Open <xliff:g id="app_name" example="YouTube">%1$s</xliff:g></string>
     <!-- Text used for content description of settings button in the header of expanded bubble
          view. [CHAR_LIMIT=NONE] -->
     <string name="bubbles_settings_button_description">Settings for <xliff:g id="app_name" example="YouTube">%1$s</xliff:g> bubbles</string>
-    <!-- Text for asking the user whether bubbles (floating app content) should be enabled for an
-         app. [CHAR LIMIT=NONE] -->
-    <string name="bubbles_prompt">Allow bubbles from <xliff:g id="app_name" example="YouTube">%1$s</xliff:g>?</string>
     <!-- The text for the manage bubbles link. [CHAR LIMIT=NONE] -->
     <string name="manage_bubbles_text">Manage</string>
-    <!-- Text used for button allowing user to opt out of bubbles [CHAR LIMIT=20] -->
-    <string name="no_bubbles">Deny</string>
-    <!-- Text used for button allowing user to approve / enable bubbles [CHAR LIMIT=20] -->
-    <string name="yes_bubbles">Allow</string>
-    <!-- Text used for the button allowing users to postpone their decision to allow or deny bubbles [CHAR LIMIT=40] -->
-    <string name="ask_me_later_bubbles">Ask me later</string>
     <!-- Content description when a bubble is focused. [CHAR LIMIT=NONE] -->
     <string name="bubble_content_description_single"><xliff:g id="notification_title" example="some title">%1$s</xliff:g> from <xliff:g id="app_name" example="YouTube">%2$s</xliff:g></string>
     <!-- Content description when the stack of bubbles is focused. [CHAR LIMIT=NONE] -->
@@ -2593,12 +2626,18 @@
     <string name="bubble_accessibility_action_move_bottom_right">Move bottom right</string>
     <!-- Text used for the bubble dismiss area. Bubbles dragged to, or flung towards, this area will go away. [CHAR LIMIT=20] -->
     <string name="bubble_dismiss_text">Dismiss</string>
+    <!-- Button text to stop a conversation from bubbling [CHAR LIMIT=60]-->
+    <string name="bubbles_dont_bubble_conversation">Don\u2019t bubble conversation</string>
     <!-- Title text for the bubbles feature education cling shown when a bubble is on screen for the first time. [CHAR LIMIT=60]-->
-    <string name="bubbles_user_education_title">Keep chats up front</string>
+    <string name="bubbles_user_education_title">Chat using bubbles</string>
     <!-- Descriptive text for the bubble feature education cling shown when a bubble is on screen for the first time. [CHAR LIMIT=NONE] -->
-    <string name="bubbles_user_education_description">New chats from <xliff:g id="app_name" example="YouTube">%1$s</xliff:g> will appear as bubbles. Tap a bubble to open it. Drag to move it.\n\nTap the bubble</string>
-    <!-- Text for the bubble "manage" button feature education cling shown when a bubble is on screen for the first time. [CHAR LIMIT=80]-->
+    <string name="bubbles_user_education_description">New conversations appear as floating icons, or bubbles. Tap to open bubble. Drag to move it.</string>
+    <!-- Title text for the bubble "manage" button tool tip highlighting where users can go to control bubble settings. [CHAR LIMIT=60]-->
+    <string name="bubbles_user_education_manage_title">Control bubbles anytime</string>
+    <!-- Descriptive text for the bubble "manage" button tool tip highlighting where users can go to control bubble settings. [CHAR LIMIT=80]-->
     <string name="bubbles_user_education_manage">Tap Manage to turn off bubbles from this app</string>
+    <!-- Button text for dismissing the bubble "manage" button tool tip  [CHAR LIMIT=20]-->
+    <string name="bubbles_user_education_got_it">Got it</string>
 
     <!-- Notification content text when the system navigation mode changes as a result of changing the default launcher [CHAR LIMIT=NONE] -->
     <string name="notification_content_system_nav_changed">System navigation updated. To make changes, go to Settings.</string>
@@ -2618,13 +2657,18 @@
     <string name="magnification_controls_title">Magnification Window Controls</string>
 
     <!-- Quick Controls strings -->
-    <!-- Quick Controls view header [CHAR LIMIT=30] -->
-    <string name="quick_controls_title">Quick Controls</string>
+    <!-- Quick Controls empty state, title [CHAR LIMIT=30] -->
+    <string name="quick_controls_title">Quick controls</string>
+    <!-- Quick Controls empty state, subtitle [CHAR LIMIT=100] -->
+    <string name="quick_controls_subtitle">Add controls for your connected devices</string>
 
-    <!-- Controls management providers screen title [CHAR LIMIT=30]-->
-    <string name="controls_providers_title">Add Controls</string>
-    <!-- Controls management providers screen subtitle [CHAR LIMIT=NONE] -->
-    <string name="controls_providers_subtitle">Choose an app from which to add controls</string>
+    <!-- Quick Controls setup, title [CHAR LIMIT=50] -->
+    <string name="quick_controls_setup_title">Set up quick controls</string>
+    <!-- Quick Controls setup, subtitle [CHAR LIMIT=100] -->
+    <string name="quick_controls_setup_subtitle">Hold the Power button to access your controls</string>
+
+    <!-- Controls management providers screen title [CHAR LIMIT=60]-->
+    <string name="controls_providers_title">Choose app to add controls</string>
     <!-- Number of favorites for controls management screen [CHAR LIMIT=NONE]-->
     <plurals name="controls_number_of_favorites">
         <item quantity="one"><xliff:g id="number" example="1">%s</xliff:g> control added.</item>
@@ -2634,27 +2678,60 @@
     <!-- Controls management controls screen default title [CHAR LIMIT=30] -->
     <string name="controls_favorite_default_title">Controls</string>
     <!-- Controls management controls screen subtitle [CHAR LIMIT=NONE] -->
-    <string name="controls_favorite_subtitle">Choose controls for quick access</string>
+    <string name="controls_favorite_subtitle">Choose controls to access from the power menu</string>
+    <!-- Controls management controls screen, user direction for rearranging controls [CHAR LIMIT=NONE] -->
+    <string name="controls_favorite_rearrange">Hold and drag a control to move it</string>
 
     <!-- Controls management controls screen error on load message [CHAR LIMIT=60] -->
     <string name="controls_favorite_load_error">The list of all controls could not be loaded.</string>
     <!-- Controls management controls screen header for Other zone [CHAR LIMIT=60] -->
     <string name="controls_favorite_other_zone_header">Other</string>
 
-    <!-- Controls dialog title [CHAR LIMIT=30] -->
-    <string name="controls_dialog_title">Add to Quick Controls</string>
-    <!-- Controls dialog add to favorites [CHAR LIMIT=30] -->
+    <!-- Controls dialog title [CHAR LIMIT=40] -->
+    <string name="controls_dialog_title">Add to quick controls</string>
+    <!-- Controls dialog add to favorites [CHAR LIMIT=40] -->
     <string name="controls_dialog_ok">Add to favorites</string>
     <!-- Controls dialog message [CHAR LIMIT=NONE] -->
     <string name="controls_dialog_message"><xliff:g id="app" example="System UI">%s</xliff:g> suggested this control to add to your favorites.</string>
+    <!-- Controls dialog confirmation [CHAR LIMIT=30] -->
+    <string name="controls_dialog_confirmation">Controls updated</string>
 
     <!-- Controls PIN entry dialog, switch to alphanumeric keyboard [CHAR LIMIT=100] -->
     <string name="controls_pin_use_alphanumeric">PIN contains letters or symbols</string>
     <!-- Controls PIN entry dialog, title [CHAR LIMIT=30] -->
-    <string name="controls_pin_verify">Verify device PIN</string>
+    <string name="controls_pin_verify">Verify <xliff:g id="device" example="Backdoor lock">%s</xliff:g></string>
+    <!-- Controls PIN entry dialog, waiting to verify [CHAR LIMIT=30] -->
+    <string name="controls_pin_verifying">Verifying\u2026</string>
     <!-- Controls PIN entry dialog, text hint [CHAR LIMIT=30] -->
     <string name="controls_pin_instructions">Enter PIN</string>
+    <!-- Controls PIN entry dialog, text hint, retry [CHAR LIMIT=30] -->
+    <string name="controls_pin_instructions_retry">Try another PIN</string>
+    <!-- Controls confirmation dialog, waiting to confirm [CHAR LIMIT=30] -->
+    <string name="controls_confirmation_confirming">Confirming\u2026</string>
+    <!-- Controls confirmation dialog, user prompt [CHAR LIMIT=NONE] -->
+    <string name="controls_confirmation_message">Confirm change for <xliff:g id="device" example="Backdoor lock">%s</xliff:g></string>
 
     <!-- Tooltip to show in management screen when there are multiple structures [CHAR_LIMIT=50] -->
-    <string name="controls_structure_tooltip">Swipe to see other structures</string>
+    <string name="controls_structure_tooltip">Swipe to see more</string>
+
+    <!-- Message to tell the user to wait while systemui attempts to load a set of
+         recommended controls [CHAR_LIMIT=60] -->
+    <string name="controls_seeding_in_progress">Loading recommendations</string>
+
+    <!-- Close the controls associated with a specific media session [CHAR_LIMIT=NONE] -->
+    <string name="controls_media_close_session">Close this media session</string>
+
+    <!-- Error message indicating that a control timed out while waiting for an update [CHAR_LIMIT=30] -->
+    <string name="controls_error_timeout">Inactive, check app</string>
+    <!-- Error message indicating that a control action failed [CHAR_LIMIT=30] -->
+    <string name="controls_error_failed">Error, try again</string>
+    <!-- Stateless control message informing the user that a routine has started [CHAR_LIMIT=30] -->
+    <string name="controls_in_progress">In progress</string>
+    <!-- Tooltip informing user where the recently added controls are [CHAR_LIMIT=100] -->
+    <string name="controls_added_tooltip">Hold Power button to see new controls</string>
+
+    <!-- Controls menu, add [CHAR_LIMIT=30] -->
+    <string name="controls_menu_add">Add controls</string>
+    <!-- Controls menu, edit [CHAR_LIMIT=30] -->
+    <string name="controls_menu_edit">Edit controls</string>
 </resources>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index 20b88a1..1598465 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -250,28 +250,39 @@
 
     <style name="TextAppearance.AuthCredential">
         <item name="android:gravity">center_horizontal</item>
-        <item name="android:fontFamily">google-sans</item>
         <item name="android:textAlignment">gravity</item>
         <item name="android:layout_gravity">top</item>
         <item name="android:textColor">?android:attr/textColorPrimary</item>
     </style>
 
     <style name="TextAppearance.AuthCredential.Title">
-        <item name="android:layout_marginBottom">2dp</item>
-        <item name="android:layout_marginLeft">24dp</item>
-        <item name="android:layout_marginRight">24dp</item>
-        <item name="android:layout_marginTop">16dp</item>
+        <item name="android:fontFamily">google-sans</item>
+        <item name="android:paddingTop">16dp</item>
+        <item name="android:paddingHorizontal">24dp</item>
         <item name="android:textSize">24sp</item>
     </style>
 
-    <style name="TextAppearance.AuthCredential.Description">
-        <item name="android:layout_marginBottom">12dp</item>
-        <item name="android:layout_marginStart">40dp</item>
-        <item name="android:layout_marginEnd">40dp</item>
-        <item name="android:layout_marginTop">3dp</item>
+    <style name="TextAppearance.AuthCredential.Subtitle">
+        <item name="android:fontFamily">google-sans</item>
+        <item name="android:paddingTop">8dp</item>
+        <item name="android:paddingHorizontal">24dp</item>
         <item name="android:textSize">16sp</item>
     </style>
 
+    <style name="TextAppearance.AuthCredential.Description">
+        <item name="android:fontFamily">google-sans</item>
+        <item name="android:paddingTop">8dp</item>
+        <item name="android:paddingHorizontal">24dp</item>
+        <item name="android:textSize">14sp</item>
+    </style>
+
+    <style name="TextAppearance.AuthCredential.Error">
+        <item name="android:paddingTop">12dp</item>
+        <item name="android:paddingHorizontal">24dp</item>
+        <item name="android:textSize">14sp</item>
+        <item name="android:textColor">?android:attr/colorError</item>
+    </style>
+
     <style name="TextAppearance.AuthCredential.PasswordEntry" parent="@android:style/TextAppearance.DeviceDefault">
         <item name="android:gravity">center</item>
         <item name="android:singleLine">true</item>
@@ -305,6 +316,9 @@
         <item name="android:windowExitAnimation">@null</item>
     </style>
 
+    <style name="Animation.ShutdownUi" parent="@android:style/Animation.Toast">
+    </style>
+
     <!-- Standard animations for hiding and showing the status bar. -->
     <style name="Animation.StatusBar">
     </style>
@@ -659,6 +673,13 @@
 
     <style name="Control" />
 
+    <style name="Control.MenuItem">
+        <item name="android:fontFamily">@*android:string/config_bodyFontFamilyMedium</item>
+        <item name="android:textSize">@dimen/control_text_size</item>
+        <item name="android:textColor">@color/control_primary_text</item>
+        <item name="android:singleLine">true</item>
+    </style>
+
     <style name="Control.Spinner">
         <item name="android:textSize">@dimen/control_header_text_size</item>
         <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
@@ -696,7 +717,21 @@
         <item name="android:overlapAnchor">true</item>
 
         <!-- used to override dark/light theming -->
-        <item name="*android:colorPopupBackground">@color/control_list_popup_background</item>
+        <item name="*android:colorPopupBackground">@color/GM2_grey_900</item>
+    </style>
+
+    <style name="TextAppearance.ControlSetup">
+        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+        <item name="android:textColor">@color/control_primary_text</item>
+        <item name="android:singleLine">true</item>
+    </style>
+
+    <style name="TextAppearance.ControlSetup.Title">
+        <item name="android:textSize">25sp</item>
+    </style>
+
+    <style name="TextAppearance.ControlSetup.Subtitle">
+        <item name="android:textSize">16sp</item>
     </style>
 
     <style name="Theme.ControlsRequestDialog" parent="@style/Theme.SystemUI.MediaProjectionAlertDialog"/>
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java
index 49e3e57..3bda3c8 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java
@@ -20,9 +20,7 @@
 import static android.app.ActivityManager.LOCK_TASK_MODE_NONE;
 import static android.app.ActivityManager.LOCK_TASK_MODE_PINNED;
 import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE;
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
-import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
 import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
@@ -38,7 +36,6 @@
 import android.app.AppGlobals;
 import android.app.IAssistDataReceiver;
 import android.app.WindowConfiguration;
-import android.app.WindowConfiguration.ActivityType;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
@@ -113,15 +110,18 @@
      * @return the top running task (can be {@code null}).
      */
     public ActivityManager.RunningTaskInfo getRunningTask() {
-        return getRunningTask(ACTIVITY_TYPE_RECENTS /* ignoreActivityType */);
+        return getRunningTask(false /* filterVisibleRecents */);
     }
 
-    public ActivityManager.RunningTaskInfo getRunningTask(@ActivityType int ignoreActivityType) {
+    /**
+     * @return the top running task filtering only for tasks that can be visible in the recent tasks
+     * list (can be {@code null}).
+     */
+    public ActivityManager.RunningTaskInfo getRunningTask(boolean filterOnlyVisibleRecents) {
         // Note: The set of running tasks from the system is ordered by recency
         try {
             List<ActivityManager.RunningTaskInfo> tasks =
-                    ActivityTaskManager.getService().getFilteredTasks(1, ignoreActivityType,
-                            WINDOWING_MODE_PINNED /* ignoreWindowingMode */);
+                    ActivityTaskManager.getService().getFilteredTasks(1, filterOnlyVisibleRecents);
             if (tasks.isEmpty()) {
                 return null;
             }
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java
index 07bd3a0..1369350 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java
@@ -73,14 +73,19 @@
     public static final int SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED = 1 << 9;
     // The search feature is disabled (either by SUW/SysUI/device policy)
     public static final int SYSUI_STATE_SEARCH_DISABLED = 1 << 10;
-    // The notification panel is expanded and interactive (either locked or unlocked), and the
-    // quick settings is not expanded
+    // The notification panel is expanded and interactive (either locked or unlocked), and quick
+    // settings is expanded.
     public static final int SYSUI_STATE_QUICK_SETTINGS_EXPANDED = 1 << 11;
     // Winscope tracing is enabled
     public static final int SYSUI_STATE_TRACING_ENABLED = 1 << 12;
     // The Assistant gesture should be constrained. It is up to the launcher implementation to
     // decide how to constrain it
     public static final int SYSUI_STATE_ASSIST_GESTURE_CONSTRAINED = 1 << 13;
+    // The bubble stack is expanded. This means that the home gesture should be ignored, since a
+    // swipe up is an attempt to close the bubble stack, but that the back gesture should remain
+    // enabled (since it's used to navigate back within the bubbled app, or to collapse the bubble
+    // stack.
+    public static final int SYSUI_STATE_BUBBLES_EXPANDED = 1 << 14;
 
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({SYSUI_STATE_SCREEN_PINNING,
@@ -96,7 +101,8 @@
             SYSUI_STATE_HOME_DISABLED,
             SYSUI_STATE_SEARCH_DISABLED,
             SYSUI_STATE_TRACING_ENABLED,
-            SYSUI_STATE_ASSIST_GESTURE_CONSTRAINED
+            SYSUI_STATE_ASSIST_GESTURE_CONSTRAINED,
+            SYSUI_STATE_BUBBLES_EXPANDED
     })
     public @interface SystemUiStateFlags {}
 
@@ -118,6 +124,7 @@
         str.add((flags & SYSUI_STATE_TRACING_ENABLED) != 0 ? "tracing" : "");
         str.add((flags & SYSUI_STATE_ASSIST_GESTURE_CONSTRAINED) != 0
                 ? "asst_gesture_constrain" : "");
+        str.add((flags & SYSUI_STATE_BUBBLES_EXPANDED) != 0 ? "bubbles_expanded" : "");
         return str.toString();
     }
 
diff --git a/packages/SystemUI/src/com/android/keyguard/AdminSecondaryLockScreenController.java b/packages/SystemUI/src/com/android/keyguard/AdminSecondaryLockScreenController.java
index 85724a9..7eb5a8f 100644
--- a/packages/SystemUI/src/com/android/keyguard/AdminSecondaryLockScreenController.java
+++ b/packages/SystemUI/src/com/android/keyguard/AdminSecondaryLockScreenController.java
@@ -170,9 +170,15 @@
 
     private void onSurfaceReady() {
         try {
-            mClient.onSurfaceReady(mView.getHostToken(), mCallback);
+            IBinder hostToken = mView.getHostToken();
+            // Should never be null when SurfaceView is attached to window.
+            if (hostToken != null) {
+                mClient.onCreateKeyguardSurface(hostToken, mCallback);
+            } else {
+                hide();
+            }
         } catch (RemoteException e) {
-            Log.e(TAG, "Error in onSurfaceReady", e);
+            Log.e(TAG, "Error in onCreateKeyguardSurface", e);
             dismiss(KeyguardUpdateMonitor.getCurrentUser());
         }
     }
diff --git a/core/java/android/service/autofill/InlineAction.aidl b/packages/SystemUI/src/com/android/keyguard/KeyguardMedia.kt
similarity index 60%
copy from core/java/android/service/autofill/InlineAction.aidl
copy to packages/SystemUI/src/com/android/keyguard/KeyguardMedia.kt
index 7f85118..487c295 100644
--- a/core/java/android/service/autofill/InlineAction.aidl
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardMedia.kt
@@ -14,6 +14,20 @@
  * limitations under the License.
  */
 
-package android.service.autofill;
+package com.android.keyguard
 
-parcelable InlineAction;
+import android.graphics.drawable.Drawable
+
+import java.util.List
+
+/** State for lock screen media controls. */
+data class KeyguardMedia(
+    val foregroundColor: Int,
+    val backgroundColor: Int,
+    val app: String?,
+    val appIcon: Drawable?,
+    val artist: String?,
+    val song: String?,
+    val artwork: Drawable?,
+    val actionIcons: List<Drawable>
+)
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardMediaPlayer.java b/packages/SystemUI/src/com/android/keyguard/KeyguardMediaPlayer.java
new file mode 100644
index 0000000..d154434
--- /dev/null
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardMediaPlayer.java
@@ -0,0 +1,364 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.keyguard;
+
+import android.app.Notification;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.graphics.Bitmap;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
+import android.media.MediaMetadata;
+import android.util.Log;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.core.graphics.drawable.RoundedBitmapDrawable;
+import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.Observer;
+import androidx.palette.graphics.Palette;
+
+import com.android.internal.util.ContrastColorUtil;
+import com.android.systemui.R;
+import com.android.systemui.dagger.qualifiers.Background;
+import com.android.systemui.statusbar.notification.MediaNotificationProcessor;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.stack.MediaHeaderView;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.Executor;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+/**
+ * Media controls to display on the lockscreen
+ *
+ * TODO: Should extend MediaControlPanel to avoid code duplication.
+ * Unfortunately, it isn't currently possible because the ActivatableNotificationView background is
+ * different.
+ */
+@Singleton
+public class KeyguardMediaPlayer {
+
+    private static final String TAG = "KeyguardMediaPlayer";
+    // Buttons that can be displayed on lock screen media controls.
+    private static final int[] ACTION_IDS = {R.id.action0, R.id.action1, R.id.action2};
+
+    private final Context mContext;
+    private final Executor mBackgroundExecutor;
+    private final KeyguardMediaViewModel mViewModel;
+    private KeyguardMediaObserver mObserver;
+
+    @Inject
+    public KeyguardMediaPlayer(Context context, @Background Executor backgroundExecutor) {
+        mContext = context;
+        mBackgroundExecutor = backgroundExecutor;
+        mViewModel = new KeyguardMediaViewModel(context);
+    }
+
+    /** Binds media controls to a view hierarchy. */
+    public void bindView(View v) {
+        if (mObserver != null) {
+            throw new IllegalStateException("cannot bind views, already bound");
+        }
+        mViewModel.loadDimens();
+        mObserver = new KeyguardMediaObserver(v);
+        // Control buttons
+        for (int i = 0; i < ACTION_IDS.length; i++) {
+            ImageButton button = v.findViewById(ACTION_IDS[i]);
+            if (button == null) {
+                continue;
+            }
+            final int index = i;
+            button.setOnClickListener(unused -> mViewModel.onActionClick(index));
+        }
+        mViewModel.getKeyguardMedia().observeForever(mObserver);
+    }
+
+    /** Unbinds media controls. */
+    public void unbindView() {
+        if (mObserver == null) {
+            throw new IllegalStateException("cannot unbind views, nothing bound");
+        }
+        mViewModel.getKeyguardMedia().removeObserver(mObserver);
+        mObserver = null;
+    }
+
+    /** Clear the media controls because there isn't an active session. */
+    public void clearControls() {
+        mBackgroundExecutor.execute(mViewModel::clearControls);
+    }
+
+    /**
+     * Update the media player
+     *
+     * TODO: consider registering a MediaLister instead of exposing this update method.
+     *
+     * @param entry Media notification that will be used to update the player
+     * @param appIcon Icon for the app playing the media
+     * @param mediaMetadata Media metadata that will be used to update the player
+     */
+    public void updateControls(NotificationEntry entry, Icon appIcon,
+            MediaMetadata mediaMetadata) {
+        if (mObserver == null) {
+            throw new IllegalStateException("cannot update controls, views not bound");
+        }
+        if (mediaMetadata == null) {
+            Log.d(TAG, "media metadata was null, closing media controls");
+            // Note that clearControls() executes on the same background executor, so there
+            // shouldn't be an issue with an outdated update running after clear. However, if stale
+            // controls are observed then consider removing any enqueued updates.
+            clearControls();
+            return;
+        }
+        mBackgroundExecutor.execute(() -> mViewModel.updateControls(entry, appIcon, mediaMetadata));
+    }
+
+    /** ViewModel for KeyguardMediaControls. */
+    private static final class KeyguardMediaViewModel {
+
+        private final Context mContext;
+        private final MutableLiveData<KeyguardMedia> mMedia = new MutableLiveData<>();
+        private final Object mActionsLock = new Object();
+        private List<PendingIntent> mActions;
+        private float mAlbumArtRadius;
+        private int mAlbumArtSize;
+
+        KeyguardMediaViewModel(Context context) {
+            mContext = context;
+            loadDimens();
+        }
+
+        /** Close the media player because there isn't an active session. */
+        public void clearControls() {
+            synchronized (mActionsLock) {
+                mActions = null;
+            }
+            mMedia.postValue(null);
+        }
+
+        /** Update the media player with information about the active session. */
+        public void updateControls(NotificationEntry entry, Icon appIcon,
+                MediaMetadata mediaMetadata) {
+
+            // Foreground and Background colors computed from album art
+            Notification notif = entry.getSbn().getNotification();
+            int fgColor = notif.color;
+            int bgColor = entry.getRow() == null ? -1 : entry.getRow().getCurrentBackgroundTint();
+            Bitmap artworkBitmap = mediaMetadata.getBitmap(MediaMetadata.METADATA_KEY_ART);
+            if (artworkBitmap == null) {
+                artworkBitmap = mediaMetadata.getBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART);
+            }
+            if (artworkBitmap != null) {
+                // If we have art, get colors from that
+                Palette p = MediaNotificationProcessor.generateArtworkPaletteBuilder(artworkBitmap)
+                        .generate();
+                Palette.Swatch swatch = MediaNotificationProcessor.findBackgroundSwatch(p);
+                bgColor = swatch.getRgb();
+                fgColor = MediaNotificationProcessor.selectForegroundColor(bgColor, p);
+            }
+            // Make sure colors will be legible
+            boolean isDark = !ContrastColorUtil.isColorLight(bgColor);
+            fgColor = ContrastColorUtil.resolveContrastColor(mContext, fgColor, bgColor,
+                    isDark);
+            fgColor = ContrastColorUtil.ensureTextContrast(fgColor, bgColor, isDark);
+
+            // Album art
+            RoundedBitmapDrawable artwork = null;
+            if (artworkBitmap != null) {
+                Bitmap original = artworkBitmap.copy(Bitmap.Config.ARGB_8888, true);
+                Bitmap scaled = Bitmap.createScaledBitmap(original, mAlbumArtSize, mAlbumArtSize,
+                        false);
+                artwork = RoundedBitmapDrawableFactory.create(mContext.getResources(), scaled);
+                artwork.setCornerRadius(mAlbumArtRadius);
+            }
+
+            // App name
+            Notification.Builder builder = Notification.Builder.recoverBuilder(mContext, notif);
+            String app = builder.loadHeaderAppName();
+
+            // App Icon
+            Drawable appIconDrawable = appIcon.loadDrawable(mContext);
+
+            // Song name
+            String song = mediaMetadata.getString(MediaMetadata.METADATA_KEY_TITLE);
+
+            // Artist name
+            String artist = mediaMetadata.getString(MediaMetadata.METADATA_KEY_ARTIST);
+
+            // Control buttons
+            List<Drawable> actionIcons = new ArrayList<>();
+            final List<PendingIntent> intents = new ArrayList<>();
+            Notification.Action[] actions = notif.actions;
+            final int[] actionsToShow = notif.extras.getIntArray(
+                    Notification.EXTRA_COMPACT_ACTIONS);
+
+            Context packageContext = entry.getSbn().getPackageContext(mContext);
+            for (int i = 0; i < ACTION_IDS.length; i++) {
+                if (actionsToShow != null && actions != null && i < actionsToShow.length
+                        && actionsToShow[i] < actions.length) {
+                    final int idx = actionsToShow[i];
+                    actionIcons.add(actions[idx].getIcon().loadDrawable(packageContext));
+                    intents.add(actions[idx].actionIntent);
+                } else {
+                    actionIcons.add(null);
+                    intents.add(null);
+                }
+            }
+            synchronized (mActionsLock) {
+                mActions = intents;
+            }
+
+            KeyguardMedia data = new KeyguardMedia(fgColor, bgColor, app, appIconDrawable, artist,
+                    song, artwork, actionIcons);
+            mMedia.postValue(data);
+        }
+
+        /** Gets state for the lock screen media controls. */
+        public LiveData<KeyguardMedia> getKeyguardMedia() {
+            return mMedia;
+        }
+
+        /**
+         * Handle user clicks on media control buttons (actions).
+         *
+         * @param index position of the button that was clicked.
+         */
+        public void onActionClick(int index) {
+            PendingIntent intent = null;
+            // This might block the ui thread to wait for the lock. Currently, however, the
+            // lock is held by the bg thread to assign a member, which should be fast. An
+            // alternative could be to add the intents to the state and let the observer set
+            // the onClick listeners.
+            synchronized (mActionsLock) {
+                if (mActions != null && index < mActions.size()) {
+                    intent = mActions.get(index);
+                }
+            }
+            if (intent != null) {
+                try {
+                    intent.send();
+                } catch (PendingIntent.CanceledException e) {
+                    Log.d(TAG, "failed to send action intent", e);
+                }
+            }
+        }
+
+        void loadDimens() {
+            mAlbumArtRadius = mContext.getResources().getDimension(R.dimen.qs_media_corner_radius);
+            mAlbumArtSize = (int) mContext.getResources().getDimension(
+                    R.dimen.qs_media_album_size);
+        }
+    }
+
+    /** Observer for state changes of lock screen media controls. */
+    private static final class KeyguardMediaObserver implements Observer<KeyguardMedia> {
+
+        private final View mRootView;
+        private final MediaHeaderView mMediaHeaderView;
+        private final ImageView mAlbumView;
+        private final ImageView mAppIconView;
+        private final TextView mAppNameView;
+        private final TextView mTitleView;
+        private final TextView mArtistView;
+        private final List<ImageButton> mButtonViews = new ArrayList<>();
+
+        KeyguardMediaObserver(View v) {
+            mRootView = v;
+            mMediaHeaderView = v instanceof MediaHeaderView ? (MediaHeaderView) v : null;
+            mAlbumView = v.findViewById(R.id.album_art);
+            mAppIconView = v.findViewById(R.id.icon);
+            mAppNameView = v.findViewById(R.id.app_name);
+            mTitleView = v.findViewById(R.id.header_title);
+            mArtistView = v.findViewById(R.id.header_artist);
+            for (int i = 0; i < ACTION_IDS.length; i++) {
+                mButtonViews.add(v.findViewById(ACTION_IDS[i]));
+            }
+        }
+
+        /** Updates lock screen media player views when state changes. */
+        @Override
+        public void onChanged(KeyguardMedia data) {
+            if (data == null) {
+                mRootView.setVisibility(View.GONE);
+                return;
+            }
+            mRootView.setVisibility(View.VISIBLE);
+
+            // Background color
+            if (mMediaHeaderView != null) {
+                mMediaHeaderView.setBackgroundColor(data.getBackgroundColor());
+            }
+
+            // Album art
+            if (mAlbumView != null) {
+                mAlbumView.setImageDrawable(data.getArtwork());
+                mAlbumView.setVisibility(data.getArtwork() == null ? View.GONE : View.VISIBLE);
+            }
+
+            // App icon
+            if (mAppIconView != null) {
+                Drawable iconDrawable = data.getAppIcon();
+                iconDrawable.setTint(data.getForegroundColor());
+                mAppIconView.setImageDrawable(iconDrawable);
+            }
+
+            // App name
+            if (mAppNameView != null) {
+                String appNameString = data.getApp();
+                mAppNameView.setText(appNameString);
+                mAppNameView.setTextColor(data.getForegroundColor());
+            }
+
+            // Song name
+            if (mTitleView != null) {
+                mTitleView.setText(data.getSong());
+                mTitleView.setTextColor(data.getForegroundColor());
+            }
+
+            // Artist name
+            if (mArtistView != null) {
+                mArtistView.setText(data.getArtist());
+                mArtistView.setTextColor(data.getForegroundColor());
+            }
+
+            // Control buttons
+            for (int i = 0; i < ACTION_IDS.length; i++) {
+                ImageButton button = mButtonViews.get(i);
+                if (button == null) {
+                    continue;
+                }
+                Drawable icon = data.getActionIcons().get(i);
+                if (icon == null) {
+                    button.setVisibility(View.GONE);
+                    button.setImageDrawable(null);
+                } else {
+                    button.setVisibility(View.VISIBLE);
+                    button.setImageDrawable(icon);
+                    button.setImageTintList(ColorStateList.valueOf(data.getForegroundColor()));
+                }
+            }
+        }
+    }
+}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 90df124..7cbc840 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -127,6 +127,7 @@
     private static final boolean DEBUG = KeyguardConstants.DEBUG;
     private static final boolean DEBUG_SIM_STATES = KeyguardConstants.DEBUG_SIM_STATES;
     private static final boolean DEBUG_FACE = true;
+    private static final boolean DEBUG_SPEW = false;
     private static final int LOW_BATTERY_THRESHOLD = 20;
 
     private static final String ACTION_FACE_UNLOCK_STARTED
@@ -324,7 +325,8 @@
                 }
             };
 
-    private class BiometricAuthenticated {
+    @VisibleForTesting
+    static class BiometricAuthenticated {
         private final boolean mAuthenticated;
         private final boolean mIsStrongBiometric;
 
@@ -338,11 +340,14 @@
     private SparseBooleanArray mUserHasTrust = new SparseBooleanArray();
     private SparseBooleanArray mUserTrustIsManaged = new SparseBooleanArray();
     private SparseBooleanArray mUserTrustIsUsuallyManaged = new SparseBooleanArray();
-    private SparseArray<BiometricAuthenticated> mUserFingerprintAuthenticated = new SparseArray<>();
-    private SparseArray<BiometricAuthenticated> mUserFaceAuthenticated = new SparseArray<>();
     private SparseBooleanArray mUserFaceUnlockRunning = new SparseBooleanArray();
     private Map<Integer, Intent> mSecondaryLockscreenRequirement = new HashMap<Integer, Intent>();
 
+    @VisibleForTesting
+    SparseArray<BiometricAuthenticated> mUserFingerprintAuthenticated = new SparseArray<>();
+    @VisibleForTesting
+    SparseArray<BiometricAuthenticated> mUserFaceAuthenticated = new SparseArray<>();
+
     private static int sCurrentUser;
     private Runnable mUpdateBiometricListeningState = this::updateBiometricListeningState;
 
@@ -962,20 +967,24 @@
 
     private void updateSecondaryLockscreenRequirement(int userId) {
         Intent oldIntent = mSecondaryLockscreenRequirement.get(userId);
-        boolean enabled = mDevicePolicyManager.isSecondaryLockscreenEnabled(userId);
+        boolean enabled = mDevicePolicyManager.isSecondaryLockscreenEnabled(UserHandle.of(userId));
         boolean changed = false;
 
         if (enabled && (oldIntent == null)) {
-            ResolveInfo resolveInfo =
-                    mContext.getPackageManager().resolveService(
-                            new Intent(
-                                    DevicePolicyManager.ACTION_BIND_SECONDARY_LOCKSCREEN_SERVICE),
-                            0);
-            if (resolveInfo != null) {
-                Intent newIntent = new Intent();
-                newIntent.setComponent(resolveInfo.serviceInfo.getComponentName());
-                mSecondaryLockscreenRequirement.put(userId, newIntent);
-                changed = true;
+            ComponentName poComponent = mDevicePolicyManager.getProfileOwnerAsUser(userId);
+            if (poComponent == null) {
+                Log.e(TAG, "No profile owner found for User " + userId);
+            } else {
+                Intent intent =
+                        new Intent(DevicePolicyManager.ACTION_BIND_SECONDARY_LOCKSCREEN_SERVICE)
+                                .setPackage(poComponent.getPackageName());
+                ResolveInfo resolveInfo = mContext.getPackageManager().resolveService(intent, 0);
+                if (resolveInfo != null && resolveInfo.serviceInfo != null) {
+                    Intent launchIntent =
+                            new Intent().setComponent(resolveInfo.serviceInfo.getComponentName());
+                    mSecondaryLockscreenRequirement.put(userId, launchIntent);
+                    changed = true;
+                }
             }
         } else if (!enabled && (oldIntent != null)) {
             mSecondaryLockscreenRequirement.put(userId, null);
@@ -1846,11 +1855,33 @@
 
         // Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an
         // instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware.
-        return (mBouncer || mAuthInterruptActive || awakeKeyguard || shouldListenForFaceAssistant())
+        final boolean shouldListen =
+                (mBouncer || mAuthInterruptActive || awakeKeyguard
+                        || shouldListenForFaceAssistant())
                 && !mSwitchingUser && !isFaceDisabled(user) && becauseCannotSkipBouncer
                 && !mKeyguardGoingAway && mFaceSettingEnabledForUser.get(user) && !mLockIconPressed
                 && strongAuthAllowsScanning && mIsPrimaryUser
                 && !mSecureCameraLaunched;
+
+        // Too chatty, but very useful when debugging issues.
+        if (DEBUG_SPEW) {
+            Log.v(TAG, "shouldListenForFace(" + user + ")=" + shouldListen + "... "
+                    + ", mBouncer: " + mBouncer
+                    + ", mAuthInterruptActive: " + mAuthInterruptActive
+                    + ", awakeKeyguard: " + awakeKeyguard
+                    + ", shouldListenForFaceAssistant: " + shouldListenForFaceAssistant()
+                    + ", mSwitchingUser: " + mSwitchingUser
+                    + ", isFaceDisabled(" + user + "): " + isFaceDisabled(user)
+                    + ", becauseCannotSkipBouncer: " + becauseCannotSkipBouncer
+                    + ", mKeyguardGoingAway: " + mKeyguardGoingAway
+                    + ", mFaceSettingEnabledForUser(" + user + "): "
+                            + mFaceSettingEnabledForUser.get(user)
+                    + ", mLockIconPressed: " + mLockIconPressed
+                    + ", strongAuthAllowsScanning: " + strongAuthAllowsScanning
+                    + ", isPrimaryUser: " + mIsPrimaryUser
+                    + ", mSecureCameraLaunched: " + mSecureCameraLaunched);
+        }
+        return shouldListen;
     }
 
     /**
@@ -2045,8 +2076,10 @@
     /**
      * Handle {@link #MSG_USER_SWITCHING}
      */
-    private void handleUserSwitching(int userId, IRemoteCallback reply) {
+    @VisibleForTesting
+    void handleUserSwitching(int userId, IRemoteCallback reply) {
         Assert.isMainThread();
+        clearBiometricRecognized();
         mUserTrustIsUsuallyManaged.put(userId, mTrustManager.isTrustUsuallyManaged(userId));
         for (int i = 0; i < mCallbacks.size(); i++) {
             KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
diff --git a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
index e2b12da..59af458 100644
--- a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java
@@ -86,7 +86,8 @@
     private float mInitialTouchSpan;
     private float mLastFocusY;
     private float mLastSpanY;
-    private int mTouchSlop;
+    private final int mTouchSlop;
+    private final float mSlopMultiplier;
     private float mLastMotionY;
     private float mPullGestureMinXSpan;
     private Callback mCallback;
@@ -177,6 +178,7 @@
 
         final ViewConfiguration configuration = ViewConfiguration.get(mContext);
         mTouchSlop = configuration.getScaledTouchSlop();
+        mSlopMultiplier = configuration.getAmbiguousGestureMultiplier();
 
         mSGD = new ScaleGestureDetector(context, mScaleGestureListener);
         mFlingAnimationUtils = new FlingAnimationUtils(mContext.getResources().getDisplayMetrics(),
@@ -258,6 +260,13 @@
         mScrollAdapter = adapter;
     }
 
+    private float getTouchSlop(MotionEvent event) {
+        // Adjust the touch slop if another gesture may be being performed.
+        return event.getClassification() == MotionEvent.CLASSIFICATION_AMBIGUOUS_GESTURE
+                ? mTouchSlop * mSlopMultiplier
+                : mTouchSlop;
+    }
+
     @Override
     public boolean onInterceptTouchEvent(MotionEvent ev) {
         if (!isEnabled()) {
@@ -303,7 +312,7 @@
                 if (mWatchingForPull) {
                     final float yDiff = ev.getRawY() - mInitialTouchY;
                     final float xDiff = ev.getRawX() - mInitialTouchX;
-                    if (yDiff > mTouchSlop && yDiff > Math.abs(xDiff)) {
+                    if (yDiff > getTouchSlop(ev) && yDiff > Math.abs(xDiff)) {
                         if (DEBUG) Log.v(TAG, "got venetian gesture (dy=" + yDiff + "px)");
                         mWatchingForPull = false;
                         if (mResizedView != null && !isFullyExpanded(mResizedView)) {
@@ -431,7 +440,7 @@
                 if (mWatchingForPull) {
                     final float yDiff = ev.getRawY() - mInitialTouchY;
                     final float xDiff = ev.getRawX() - mInitialTouchX;
-                    if (yDiff > mTouchSlop && yDiff > Math.abs(xDiff)) {
+                    if (yDiff > getTouchSlop(ev) && yDiff > Math.abs(xDiff)) {
                         if (DEBUG) Log.v(TAG, "got venetian gesture (dy=" + yDiff + "px)");
                         mWatchingForPull = false;
                         if (mResizedView != null && !isFullyExpanded(mResizedView)) {
diff --git a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java
index 5f004a6..281b566 100644
--- a/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java
+++ b/packages/SystemUI/src/com/android/systemui/ScreenDecorations.java
@@ -33,6 +33,7 @@
 import android.animation.ValueAnimator;
 import android.annotation.Dimension;
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.app.ActivityManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -122,7 +123,8 @@
     protected int mRoundedDefaultBottom;
     @VisibleForTesting
     protected View[] mOverlays;
-    private DisplayCutoutView[] mCutoutViews = new DisplayCutoutView[BOUNDS_POSITION_LENGTH];
+    @Nullable
+    private DisplayCutoutView[] mCutoutViews;
     private float mDensity;
     private WindowManager mWindowManager;
     private int mRotation;
@@ -135,18 +137,32 @@
             new CameraAvailabilityListener.CameraTransitionCallback() {
         @Override
         public void onApplyCameraProtection(@NonNull Path protectionPath, @NonNull Rect bounds) {
+            if (mCutoutViews == null) {
+                Log.w(TAG, "DisplayCutoutView do not initialized");
+                return;
+            }
             // Show the extra protection around the front facing camera if necessary
             for (DisplayCutoutView dcv : mCutoutViews) {
-                dcv.setProtection(protectionPath, bounds);
-                dcv.setShowProtection(true);
+                // Check Null since not all mCutoutViews[pos] be inflated at the meanwhile
+                if (dcv != null) {
+                    dcv.setProtection(protectionPath, bounds);
+                    dcv.setShowProtection(true);
+                }
             }
         }
 
         @Override
         public void onHideCameraProtection() {
+            if (mCutoutViews == null) {
+                Log.w(TAG, "DisplayCutoutView do not initialized");
+                return;
+            }
             // Go back to the regular anti-aliasing
             for (DisplayCutoutView dcv : mCutoutViews) {
-                dcv.setShowProtection(false);
+                // Check Null since not all mCutoutViews[pos] be inflated at the meanwhile
+                if (dcv != null) {
+                    dcv.setShowProtection(false);
+                }
             }
         }
     };
diff --git a/packages/SystemUI/src/com/android/systemui/SwipeHelper.java b/packages/SystemUI/src/com/android/systemui/SwipeHelper.java
index 02a4521..d17ca404 100644
--- a/packages/SystemUI/src/com/android/systemui/SwipeHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/SwipeHelper.java
@@ -69,6 +69,7 @@
 
     private final FlingAnimationUtils mFlingAnimationUtils;
     private float mPagingTouchSlop;
+    private final float mSlopMultiplier;
     private final Callback mCallback;
     private final int mSwipeDirection;
     private final VelocityTracker mVelocityTracker;
@@ -84,11 +85,28 @@
     private float mTranslation = 0;
 
     private boolean mMenuRowIntercepting;
-    private boolean mLongPressSent;
-    private Runnable mWatchLongPress;
     private final long mLongPressTimeout;
+    private boolean mLongPressSent;
+    private final float[] mDownLocation = new float[2];
+    private final Runnable mPerformLongPress = new Runnable() {
 
-    final private int[] mTmpPos = new int[2];
+        private final int[] mViewOffset = new int[2];
+
+        @Override
+        public void run() {
+            if (mCurrView != null && !mLongPressSent) {
+                mLongPressSent = true;
+                if (mCurrView instanceof ExpandableNotificationRow) {
+                    mCurrView.getLocationOnScreen(mViewOffset);
+                    final int x = (int) mDownLocation[0] - mViewOffset[0];
+                    final int y = (int) mDownLocation[1] - mViewOffset[1];
+                    mCurrView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_LONG_CLICKED);
+                    ((ExpandableNotificationRow) mCurrView).doLongClickCallback(x, y);
+                }
+            }
+        }
+    };
+
     private final int mFalsingThreshold;
     private boolean mTouchAboveFalsingThreshold;
     private boolean mDisableHwLayers;
@@ -102,7 +120,9 @@
         mHandler = new Handler();
         mSwipeDirection = swipeDirection;
         mVelocityTracker = VelocityTracker.obtain();
-        mPagingTouchSlop = ViewConfiguration.get(context).getScaledPagingTouchSlop();
+        final ViewConfiguration configuration = ViewConfiguration.get(context);
+        mPagingTouchSlop = configuration.getScaledPagingTouchSlop();
+        mSlopMultiplier = configuration.getScaledAmbiguousGestureMultiplier();
 
         // Extra long-press!
         mLongPressTimeout = (long) (ViewConfiguration.getLongPressTimeout() * 1.5f);
@@ -255,10 +275,7 @@
     }
 
     public void cancelLongPress() {
-        if (mWatchLongPress != null) {
-            mHandler.removeCallbacks(mWatchLongPress);
-            mWatchLongPress = null;
-        }
+        mHandler.removeCallbacks(mPerformLongPress);
     }
 
     @Override
@@ -287,27 +304,9 @@
                     mInitialTouchPos = getPos(ev);
                     mPerpendicularInitialTouchPos = getPerpendicularPos(ev);
                     mTranslation = getTranslation(mCurrView);
-                    if (mWatchLongPress == null) {
-                        mWatchLongPress = new Runnable() {
-                            @Override
-                            public void run() {
-                                if (mCurrView != null && !mLongPressSent) {
-                                    mLongPressSent = true;
-                                    mCurrView.getLocationOnScreen(mTmpPos);
-                                    final int x = (int) ev.getRawX() - mTmpPos[0];
-                                    final int y = (int) ev.getRawY() - mTmpPos[1];
-                                    if (mCurrView instanceof ExpandableNotificationRow) {
-                                        mCurrView.sendAccessibilityEvent(
-                                                AccessibilityEvent.TYPE_VIEW_LONG_CLICKED);
-                                        ExpandableNotificationRow currRow =
-                                                (ExpandableNotificationRow) mCurrView;
-                                        currRow.doLongClickCallback(x, y);
-                                    }
-                                }
-                            }
-                        };
-                    }
-                    mHandler.postDelayed(mWatchLongPress, mLongPressTimeout);
+                    mDownLocation[0] = ev.getRawX();
+                    mDownLocation[1] = ev.getRawY();
+                    mHandler.postDelayed(mPerformLongPress, mLongPressTimeout);
                 }
                 break;
 
@@ -318,7 +317,12 @@
                     float perpendicularPos = getPerpendicularPos(ev);
                     float delta = pos - mInitialTouchPos;
                     float deltaPerpendicular = perpendicularPos - mPerpendicularInitialTouchPos;
-                    if (Math.abs(delta) > mPagingTouchSlop
+                    // Adjust the touch slop if another gesture may be being performed.
+                    final float pagingTouchSlop =
+                            ev.getClassification() == MotionEvent.CLASSIFICATION_AMBIGUOUS_GESTURE
+                            ? mPagingTouchSlop * mSlopMultiplier
+                            : mPagingTouchSlop;
+                    if (Math.abs(delta) > pagingTouchSlop
                             && Math.abs(delta) > Math.abs(deltaPerpendicular)) {
                         if (mCallback.canChildBeDragged(mCurrView)) {
                             mCallback.onBeginDrag(mCurrView);
@@ -327,6 +331,11 @@
                             mTranslation = getTranslation(mCurrView);
                         }
                         cancelLongPress();
+                    } else if (ev.getClassification() == MotionEvent.CLASSIFICATION_DEEP_PRESS
+                                    && mHandler.hasCallbacks(mPerformLongPress)) {
+                        // Accelerate the long press signal.
+                        cancelLongPress();
+                        mPerformLongPress.run();
                     }
                 }
                 break;
diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java
index 3707d61..8cd89dd 100644
--- a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java
+++ b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java
@@ -23,6 +23,7 @@
 import android.os.Handler;
 import android.os.SystemClock;
 import android.util.Log;
+import android.view.accessibility.AccessibilityManager;
 
 import androidx.annotation.Nullable;
 
@@ -45,6 +46,8 @@
 import javax.inject.Provider;
 import javax.inject.Singleton;
 
+import dagger.Lazy;
+
 /**
  * A class for managing Assistant handle logic.
  *
@@ -73,6 +76,7 @@
     private final Provider<AssistHandleViewController> mAssistHandleViewController;
     private final DeviceConfigHelper mDeviceConfigHelper;
     private final Map<AssistHandleBehavior, BehaviorController> mBehaviorMap;
+    private final Lazy<AccessibilityManager> mA11yManager;
 
     private boolean mHandlesShowing = false;
     private long mHandlesLastHiddenAt;
@@ -93,6 +97,7 @@
             DeviceConfigHelper deviceConfigHelper,
             Map<AssistHandleBehavior, BehaviorController> behaviorMap,
             NavigationModeController navigationModeController,
+            Lazy<AccessibilityManager> a11yManager,
             DumpManager dumpManager) {
         mContext = context;
         mAssistUtils = assistUtils;
@@ -100,6 +105,7 @@
         mAssistHandleViewController = assistHandleViewController;
         mDeviceConfigHelper = deviceConfigHelper;
         mBehaviorMap = behaviorMap;
+        mA11yManager = a11yManager;
 
         mInGesturalMode = QuickStepContract.isGesturalMode(
                 navigationModeController.addListener(this::handleNavigationModeChange));
@@ -211,9 +217,11 @@
     }
 
     private long getShowAndGoDuration() {
-        return mDeviceConfigHelper.getLong(
+        long configuredTime = mDeviceConfigHelper.getLong(
                 SystemUiDeviceConfigFlags.ASSIST_HANDLES_SHOW_AND_GO_DURATION_MS,
                 DEFAULT_SHOW_AND_GO_DURATION_MS);
+        return mA11yManager.get().getRecommendedTimeoutMillis(
+                (int) configuredTime, AccessibilityManager.FLAG_CONTENT_ICONS);
     }
 
     private String getBehaviorMode() {
@@ -291,7 +299,7 @@
 
         pw.println("   Phenotype Flags:");
         pw.println("      "
-                + SystemUiDeviceConfigFlags.ASSIST_HANDLES_SHOW_AND_GO_DURATION_MS
+                + SystemUiDeviceConfigFlags.ASSIST_HANDLES_SHOW_AND_GO_DURATION_MS + "(a11y modded)"
                 + "="
                 + getShowAndGoDuration());
         pw.println("      "
diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleService.kt b/packages/SystemUI/src/com/android/systemui/assist/AssistHandleService.kt
deleted file mode 100644
index 9ceafc6..0000000
--- a/packages/SystemUI/src/com/android/systemui/assist/AssistHandleService.kt
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.assist
-
-import android.app.Service
-import android.content.Intent
-import android.os.IBinder
-import dagger.Lazy
-import javax.inject.Inject
-
-class AssistHandleService @Inject constructor(private val assistManager: Lazy<AssistManager>)
-    : Service() {
-
-    private val binder = object : IAssistHandleService.Stub() {
-        override fun requestAssistHandles() {
-            assistManager.get().requestAssistHandles()
-        }
-    }
-
-    override fun onBind(intent: Intent?): IBinder? {
-        return binder
-    }
-}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistModule.java b/packages/SystemUI/src/com/android/systemui/assist/AssistModule.java
index 96939b01..6f5a17d 100644
--- a/packages/SystemUI/src/com/android/systemui/assist/AssistModule.java
+++ b/packages/SystemUI/src/com/android/systemui/assist/AssistModule.java
@@ -16,7 +16,6 @@
 
 package com.android.systemui.assist;
 
-import android.app.Service;
 import android.content.Context;
 import android.os.Handler;
 import android.os.HandlerThread;
@@ -34,11 +33,8 @@
 import javax.inject.Named;
 import javax.inject.Singleton;
 
-import dagger.Binds;
 import dagger.Module;
 import dagger.Provides;
-import dagger.multibindings.ClassKey;
-import dagger.multibindings.IntoMap;
 
 /** Module for dagger injections related to the Assistant. */
 @Module
@@ -91,9 +87,4 @@
     static Clock provideSystemClock() {
         return SystemClock::uptimeMillis;
     }
-
-    @Binds
-    @IntoMap
-    @ClassKey(AssistHandleService.class)
-    abstract Service bindAssistHandleService(AssistHandleService assistHandleService);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
index 0018d33..b736b4d 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
@@ -22,6 +22,7 @@
 import android.content.Context;
 import android.graphics.PixelFormat;
 import android.hardware.biometrics.BiometricAuthenticator;
+import android.hardware.biometrics.BiometricConstants;
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.Handler;
@@ -207,6 +208,7 @@
                     animateAway(AuthDialogCallback.DISMISSED_BIOMETRIC_AUTHENTICATED);
                     break;
                 case AuthBiometricView.Callback.ACTION_USER_CANCELED:
+                    sendEarlyUserCanceled();
                     animateAway(AuthDialogCallback.DISMISSED_USER_CANCELED);
                     break;
                 case AuthBiometricView.Callback.ACTION_BUTTON_NEGATIVE:
@@ -286,11 +288,13 @@
 
         addView(mFrameLayout);
 
+        // TODO: De-dupe the logic with AuthCredentialPasswordView
         setOnKeyListener((v, keyCode, event) -> {
             if (keyCode != KeyEvent.KEYCODE_BACK) {
                 return false;
             }
             if (event.getAction() == KeyEvent.ACTION_UP) {
+                sendEarlyUserCanceled();
                 animateAway(AuthDialogCallback.DISMISSED_USER_CANCELED);
             }
             return true;
@@ -300,6 +304,11 @@
         requestFocus();
     }
 
+    void sendEarlyUserCanceled() {
+        mConfig.mCallback.onSystemEvent(
+                BiometricConstants.BIOMETRIC_SYSTEM_EVENT_EARLY_USER_CANCEL);
+    }
+
     @Override
     public boolean isAllowDeviceCredentials() {
         return Utils.isDeviceCredentialAllowed(mConfig.mBiometricPromptBundle);
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
index c30477c..0c6794c 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
@@ -165,6 +165,19 @@
     }
 
     @Override
+    public void onSystemEvent(int event) {
+        if (mReceiver == null) {
+            Log.e(TAG, "onSystemEvent(" + event + "): Receiver is null");
+            return;
+        }
+        try {
+            mReceiver.onSystemEvent(event);
+        } catch (RemoteException e) {
+            Log.e(TAG, "RemoteException when sending system event", e);
+        }
+    }
+
+    @Override
     public void onDismissed(@DismissedReason int reason, @Nullable byte[] credentialAttestation) {
         switch (reason) {
             case AuthDialogCallback.DISMISSED_USER_CANCELED:
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialPasswordView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialPasswordView.java
index b986f6c..d8a11d3 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialPasswordView.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialPasswordView.java
@@ -51,11 +51,13 @@
         super.onFinishInflate();
         mPasswordField = findViewById(R.id.lockPassword);
         mPasswordField.setOnEditorActionListener(this);
+        // TODO: De-dupe the logic with AuthContainerView
         mPasswordField.setOnKeyListener((v, keyCode, event) -> {
             if (keyCode != KeyEvent.KEYCODE_BACK) {
                 return false;
             }
             if (event.getAction() == KeyEvent.ACTION_UP) {
+                mContainerView.sendEarlyUserCanceled();
                 mContainerView.animateAway(AuthDialogCallback.DISMISSED_USER_CANCELED);
             }
             return true;
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java
index 0d9d426..b006bc1 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java
@@ -16,8 +16,10 @@
 
 package com.android.systemui.biometrics;
 
-import android.annotation.NonNull;
+import android.app.AlertDialog;
+import android.app.admin.DevicePolicyManager;
 import android.content.Context;
+import android.content.pm.UserInfo;
 import android.graphics.drawable.Drawable;
 import android.hardware.biometrics.BiometricPrompt;
 import android.os.AsyncTask;
@@ -26,32 +28,49 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.SystemClock;
+import android.os.UserManager;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.View;
+import android.view.WindowManager;
 import android.view.accessibility.AccessibilityManager;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import androidx.annotation.IntDef;
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
 /**
  * Abstract base class for Pin, Pattern, or Password authentication, for
  * {@link BiometricPrompt.Builder#setAllowedAuthenticators(int)}}
  */
 public abstract class AuthCredentialView extends LinearLayout {
-
     private static final String TAG = "BiometricPrompt/AuthCredentialView";
     private static final int ERROR_DURATION_MS = 3000;
 
-    private final AccessibilityManager mAccessibilityManager;
+    static final int USER_TYPE_PRIMARY = 1;
+    static final int USER_TYPE_MANAGED_PROFILE = 2;
+    static final int USER_TYPE_SECONDARY = 3;
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef({USER_TYPE_PRIMARY, USER_TYPE_MANAGED_PROFILE, USER_TYPE_SECONDARY})
+    private @interface UserType {}
 
     protected final Handler mHandler;
+    protected final LockPatternUtils mLockPatternUtils;
+
+    private final AccessibilityManager mAccessibilityManager;
+    private final UserManager mUserManager;
+    private final DevicePolicyManager mDevicePolicyManager;
 
     private Bundle mBiometricPromptBundle;
     private AuthPanelController mPanelController;
@@ -65,7 +84,6 @@
     protected TextView mErrorView;
 
     protected @Utils.CredentialType int mCredentialType;
-    protected final LockPatternUtils mLockPatternUtils;
     protected AuthContainerView mContainerView;
     protected Callback mCallback;
     protected AsyncTask<?, ?, ?> mPendingLockCheck;
@@ -106,14 +124,18 @@
 
         @Override
         public void onFinish() {
-            mErrorView.setText("");
+            if (mErrorView != null) {
+                mErrorView.setText("");
+            }
         }
     }
 
     protected final Runnable mClearErrorRunnable = new Runnable() {
         @Override
         public void run() {
-            mErrorView.setText("");
+            if (mErrorView != null) {
+                mErrorView.setText("");
+            }
         }
     };
 
@@ -123,12 +145,18 @@
         mLockPatternUtils = new LockPatternUtils(mContext);
         mHandler = new Handler(Looper.getMainLooper());
         mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class);
+        mUserManager = mContext.getSystemService(UserManager.class);
+        mDevicePolicyManager = mContext.getSystemService(DevicePolicyManager.class);
     }
 
     protected void showError(String error) {
-        mHandler.removeCallbacks(mClearErrorRunnable);
-        mErrorView.setText(error);
-        mHandler.postDelayed(mClearErrorRunnable, ERROR_DURATION_MS);
+        if (mHandler != null) {
+            mHandler.removeCallbacks(mClearErrorRunnable);
+            mHandler.postDelayed(mClearErrorRunnable, ERROR_DURATION_MS);
+        }
+        if (mErrorView != null) {
+            mErrorView.setText(error);
+        }
     }
 
     private void setTextOrHide(TextView view, CharSequence text) {
@@ -274,26 +302,161 @@
                 };
                 mErrorTimer.start();
             } else {
-                final int error;
-                switch (mCredentialType) {
-                    case Utils.CREDENTIAL_PIN:
-                        error = R.string.biometric_dialog_wrong_pin;
-                        break;
-                    case Utils.CREDENTIAL_PATTERN:
-                        error = R.string.biometric_dialog_wrong_pattern;
-                        break;
-                    case Utils.CREDENTIAL_PASSWORD:
-                        error = R.string.biometric_dialog_wrong_password;
-                        break;
-                    default:
-                        error = R.string.biometric_dialog_wrong_password;
-                        break;
+                final boolean didUpdateErrorText = reportFailedAttempt();
+                if (!didUpdateErrorText) {
+                    final @StringRes int errorRes;
+                    switch (mCredentialType) {
+                        case Utils.CREDENTIAL_PIN:
+                            errorRes = R.string.biometric_dialog_wrong_pin;
+                            break;
+                        case Utils.CREDENTIAL_PATTERN:
+                            errorRes = R.string.biometric_dialog_wrong_pattern;
+                            break;
+                        case Utils.CREDENTIAL_PASSWORD:
+                        default:
+                            errorRes = R.string.biometric_dialog_wrong_password;
+                            break;
+                    }
+                    showError(getResources().getString(errorRes));
                 }
-                showError(getResources().getString(error));
             }
         }
     }
 
+    private boolean reportFailedAttempt() {
+        boolean result = updateErrorMessage(
+                mLockPatternUtils.getCurrentFailedPasswordAttempts(mEffectiveUserId) + 1);
+        mLockPatternUtils.reportFailedPasswordAttempt(mEffectiveUserId);
+        return result;
+    }
+
+    private boolean updateErrorMessage(int numAttempts) {
+        // Don't show any message if there's no maximum number of attempts.
+        final int maxAttempts = mLockPatternUtils.getMaximumFailedPasswordsForWipe(
+                mEffectiveUserId);
+        if (maxAttempts <= 0 || numAttempts <= 0) {
+            return false;
+        }
+
+        // Update the on-screen error string.
+        if (mErrorView != null) {
+            final String message = getResources().getString(
+                    R.string.biometric_dialog_credential_attempts_before_wipe,
+                    numAttempts,
+                    maxAttempts);
+            showError(message);
+        }
+
+        // Only show dialog if <=1 attempts are left before wiping.
+        final int remainingAttempts = maxAttempts - numAttempts;
+        if (remainingAttempts == 1) {
+            showLastAttemptBeforeWipeDialog();
+        } else if (remainingAttempts <= 0) {
+            showNowWipingDialog();
+        }
+        return true;
+    }
+
+    private void showLastAttemptBeforeWipeDialog() {
+        final AlertDialog alertDialog = new AlertDialog.Builder(mContext)
+                .setTitle(R.string.biometric_dialog_last_attempt_before_wipe_dialog_title)
+                .setMessage(
+                        getLastAttemptBeforeWipeMessageRes(getUserTypeForWipe(), mCredentialType))
+                .setPositiveButton(android.R.string.ok, null)
+                .create();
+        alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL);
+        alertDialog.show();
+    }
+
+    private void showNowWipingDialog() {
+        final AlertDialog alertDialog = new AlertDialog.Builder(mContext)
+                .setMessage(getNowWipingMessageRes(getUserTypeForWipe()))
+                .setPositiveButton(R.string.biometric_dialog_now_wiping_dialog_dismiss, null)
+                .setOnDismissListener(
+                        dialog -> mContainerView.animateAway(AuthDialogCallback.DISMISSED_ERROR))
+                .create();
+        alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL);
+        alertDialog.show();
+    }
+
+    private @UserType int getUserTypeForWipe() {
+        final UserInfo userToBeWiped = mUserManager.getUserInfo(
+                mDevicePolicyManager.getProfileWithMinimumFailedPasswordsForWipe(mEffectiveUserId));
+        if (userToBeWiped == null || userToBeWiped.isPrimary()) {
+            return USER_TYPE_PRIMARY;
+        } else if (userToBeWiped.isManagedProfile()) {
+            return USER_TYPE_MANAGED_PROFILE;
+        } else {
+            return USER_TYPE_SECONDARY;
+        }
+    }
+
+    private static @StringRes int getLastAttemptBeforeWipeMessageRes(
+            @UserType int userType, @Utils.CredentialType int credentialType) {
+        switch (userType) {
+            case USER_TYPE_PRIMARY:
+                return getLastAttemptBeforeWipeDeviceMessageRes(credentialType);
+            case USER_TYPE_MANAGED_PROFILE:
+                return getLastAttemptBeforeWipeProfileMessageRes(credentialType);
+            case USER_TYPE_SECONDARY:
+                return getLastAttemptBeforeWipeUserMessageRes(credentialType);
+            default:
+                throw new IllegalArgumentException("Unrecognized user type:" + userType);
+        }
+    }
+
+    private static @StringRes int getLastAttemptBeforeWipeDeviceMessageRes(
+            @Utils.CredentialType int credentialType) {
+        switch (credentialType) {
+            case Utils.CREDENTIAL_PIN:
+                return R.string.biometric_dialog_last_pin_attempt_before_wipe_device;
+            case Utils.CREDENTIAL_PATTERN:
+                return R.string.biometric_dialog_last_pattern_attempt_before_wipe_device;
+            case Utils.CREDENTIAL_PASSWORD:
+            default:
+                return R.string.biometric_dialog_last_password_attempt_before_wipe_device;
+        }
+    }
+
+    private static @StringRes int getLastAttemptBeforeWipeProfileMessageRes(
+            @Utils.CredentialType int credentialType) {
+        switch (credentialType) {
+            case Utils.CREDENTIAL_PIN:
+                return R.string.biometric_dialog_last_pin_attempt_before_wipe_profile;
+            case Utils.CREDENTIAL_PATTERN:
+                return R.string.biometric_dialog_last_pattern_attempt_before_wipe_profile;
+            case Utils.CREDENTIAL_PASSWORD:
+            default:
+                return R.string.biometric_dialog_last_password_attempt_before_wipe_profile;
+        }
+    }
+
+    private static @StringRes int getLastAttemptBeforeWipeUserMessageRes(
+            @Utils.CredentialType int credentialType) {
+        switch (credentialType) {
+            case Utils.CREDENTIAL_PIN:
+                return R.string.biometric_dialog_last_pin_attempt_before_wipe_user;
+            case Utils.CREDENTIAL_PATTERN:
+                return R.string.biometric_dialog_last_pattern_attempt_before_wipe_user;
+            case Utils.CREDENTIAL_PASSWORD:
+            default:
+                return R.string.biometric_dialog_last_password_attempt_before_wipe_user;
+        }
+    }
+
+    private static @StringRes int getNowWipingMessageRes(@UserType int userType) {
+        switch (userType) {
+            case USER_TYPE_PRIMARY:
+                return R.string.biometric_dialog_failed_attempts_now_wiping_device;
+            case USER_TYPE_MANAGED_PROFILE:
+                return R.string.biometric_dialog_failed_attempts_now_wiping_profile;
+            case USER_TYPE_SECONDARY:
+                return R.string.biometric_dialog_failed_attempts_now_wiping_user;
+            default:
+                throw new IllegalArgumentException("Unrecognized user type:" + userType);
+        }
+    }
+
     @Nullable
     private static CharSequence getTitle(@NonNull Bundle bundle) {
         final CharSequence credentialTitle =
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogCallback.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogCallback.java
index a47621d..d3bd4fb 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogCallback.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthDialogCallback.java
@@ -58,4 +58,11 @@
      * Invoked when the "use password" button is clicked
      */
     void onDeviceCredentialPressed();
+
+    /**
+     * See {@link android.hardware.biometrics.BiometricPrompt.Builder
+     * #setReceiveSystemEvents(boolean)}
+     * @param event
+     */
+    void onSystemEvent(int event);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/broadcast/BroadcastDispatcher.kt b/packages/SystemUI/src/com/android/systemui/broadcast/BroadcastDispatcher.kt
index bd803fa..e89c66e 100644
--- a/packages/SystemUI/src/com/android/systemui/broadcast/BroadcastDispatcher.kt
+++ b/packages/SystemUI/src/com/android/systemui/broadcast/BroadcastDispatcher.kt
@@ -94,7 +94,7 @@
     @Deprecated(message = "Replacing Handler for Executor in SystemUI",
             replaceWith = ReplaceWith("registerReceiver(receiver, filter, executor, user)"))
     @JvmOverloads
-    fun registerReceiverWithHandler(
+    open fun registerReceiverWithHandler(
         receiver: BroadcastReceiver,
         filter: IntentFilter,
         handler: Handler,
@@ -118,7 +118,7 @@
      *                                  categories or the filter has no actions.
      */
     @JvmOverloads
-    fun registerReceiver(
+    open fun registerReceiver(
         receiver: BroadcastReceiver,
         filter: IntentFilter,
         executor: Executor? = context.mainExecutor,
@@ -149,7 +149,7 @@
      *
      * @param receiver The receiver to unregister. It will be unregistered for all users.
      */
-    fun unregisterReceiver(receiver: BroadcastReceiver) {
+    open fun unregisterReceiver(receiver: BroadcastReceiver) {
         handler.obtainMessage(MSG_REMOVE_RECEIVER, receiver).sendToTarget()
     }
 
@@ -159,7 +159,7 @@
      * @param receiver The receiver to unregister. It will be unregistered for all users.
      * @param user The user associated to the registered [receiver]. It can be [UserHandle.ALL].
      */
-    fun unregisterReceiverForUser(receiver: BroadcastReceiver, user: UserHandle) {
+    open fun unregisterReceiverForUser(receiver: BroadcastReceiver, user: UserHandle) {
         handler.obtainMessage(MSG_REMOVE_RECEIVER_FOR_USER, user.identifier, 0, receiver)
                 .sendToTarget()
     }
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BadgedImageView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BadgedImageView.java
index a1cb7f6..55be77c 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BadgedImageView.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BadgedImageView.java
@@ -28,6 +28,8 @@
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
 
+import java.util.EnumSet;
+
 /**
  * View that displays an adaptive icon with an app-badge and a dot.
  *
@@ -42,12 +44,27 @@
     /** Same as value in Launcher3 IconShape */
     public static final int DEFAULT_PATH_SIZE = 100;
 
-    static final int DOT_STATE_DEFAULT = 0;
-    static final int DOT_STATE_SUPPRESSED_FOR_FLYOUT = 1;
-    static final int DOT_STATE_ANIMATING = 2;
+    /**
+     * Flags that suppress the visibility of the 'new' dot, for one reason or another. If any of
+     * these flags are set, the dot will not be shown even if {@link Bubble#showDot()} returns true.
+     */
+    enum SuppressionFlag {
+        // Suppressed because the flyout is visible - it will morph into the dot via animation.
+        FLYOUT_VISIBLE,
+        // Suppressed because this bubble is behind others in the collapsed stack.
+        BEHIND_STACK,
+    }
 
-    // Flyout gets shown before the dot
-    private int mCurrentDotState = DOT_STATE_SUPPRESSED_FOR_FLYOUT;
+    /**
+     * Start by suppressing the dot because the flyout is visible - most bubbles are added with a
+     * flyout, so this is a reasonable default.
+     */
+    private final EnumSet<SuppressionFlag> mDotSuppressionFlags =
+            EnumSet.of(SuppressionFlag.FLYOUT_VISIBLE);
+
+    private float mDotScale = 0f;
+    private float mAnimatingToDotScale = 0f;
+    private boolean mDotIsAnimating = false;
 
     private BubbleViewProvider mBubble;
 
@@ -57,8 +74,6 @@
     private boolean mOnLeft;
 
     private int mDotColor;
-    private float mDotScale = 0f;
-    private boolean mDotDrawn;
 
     private Rect mTempBounds = new Rect();
 
@@ -83,28 +98,28 @@
         Path iconPath = PathParser.createPathFromPathData(
                 getResources().getString(com.android.internal.R.string.config_icon_mask));
         mDotRenderer = new DotRenderer(mBubbleBitmapSize, iconPath, DEFAULT_PATH_SIZE);
+
+        setFocusable(true);
     }
 
     /**
      * Updates the view with provided info.
      */
-    public void update(BubbleViewProvider bubble) {
+    public void setRenderedBubble(BubbleViewProvider bubble) {
         mBubble = bubble;
         setImageBitmap(bubble.getBadgedImage());
-        setDotState(DOT_STATE_SUPPRESSED_FOR_FLYOUT);
         mDotColor = bubble.getDotColor();
         drawDot(bubble.getDotPath());
-        animateDot();
     }
 
     @Override
     public void onDraw(Canvas canvas) {
         super.onDraw(canvas);
-        if (isDotHidden()) {
-            mDotDrawn = false;
+
+        if (!shouldDrawDot()) {
             return;
         }
-        mDotDrawn = mDotScale > 0.1f;
+
         getDrawingRect(mTempBounds);
 
         mDrawParams.color = mDotColor;
@@ -115,23 +130,33 @@
         mDotRenderer.draw(canvas, mDrawParams);
     }
 
-    /**
-     * Sets the dot state, does not animate changes.
-     */
-    void setDotState(int state) {
-        mCurrentDotState = state;
-        if (state == DOT_STATE_SUPPRESSED_FOR_FLYOUT || state == DOT_STATE_DEFAULT) {
-            mDotScale = mBubble.showDot() ? 1f : 0f;
-            invalidate();
+    /** Adds a dot suppression flag, updating dot visibility if needed. */
+    void addDotSuppressionFlag(SuppressionFlag flag) {
+        if (mDotSuppressionFlags.add(flag)) {
+            // Update dot visibility, and animate out if we're now behind the stack.
+            updateDotVisibility(flag == SuppressionFlag.BEHIND_STACK /* animate */);
         }
     }
 
-    /**
-     * Whether the dot should be hidden based on current dot state.
-     */
-    private boolean isDotHidden() {
-        return (mCurrentDotState == DOT_STATE_DEFAULT && !mBubble.showDot())
-                || mCurrentDotState == DOT_STATE_SUPPRESSED_FOR_FLYOUT;
+    /** Removes a dot suppression flag, updating dot visibility if needed. */
+    void removeDotSuppressionFlag(SuppressionFlag flag) {
+        if (mDotSuppressionFlags.remove(flag)) {
+            // Update dot visibility, animating if we're no longer behind the stack.
+            updateDotVisibility(flag == SuppressionFlag.BEHIND_STACK);
+        }
+    }
+
+    /** Updates the visibility of the dot, animating if requested. */
+    void updateDotVisibility(boolean animate) {
+        final float targetScale = shouldDrawDot() ? 1f : 0f;
+
+        if (animate) {
+            animateDotScale(targetScale, null /* after */);
+        } else {
+            mDotScale = targetScale;
+            mAnimatingToDotScale = targetScale;
+            invalidate();
+        }
     }
 
     /**
@@ -194,11 +219,11 @@
     }
 
     /** Sets the position of the 'new' dot, animating it out and back in if requested. */
-    void setDotPosition(boolean onLeft, boolean animate) {
-        if (animate && onLeft != getDotOnLeft() && !isDotHidden()) {
-            animateDot(false /* showDot */, () -> {
+    void setDotPositionOnLeft(boolean onLeft, boolean animate) {
+        if (animate && onLeft != getDotOnLeft() && shouldDrawDot()) {
+            animateDotScale(0f /* showDot */, () -> {
                 setDotOnLeft(onLeft);
-                animateDot(true /* showDot */, null);
+                animateDotScale(1.0f, null /* after */);
             });
         } else {
             setDotOnLeft(onLeft);
@@ -209,28 +234,34 @@
         return getDotOnLeft();
     }
 
-    /** Changes the dot's visibility to match the bubble view's state. */
-    void animateDot() {
-        if (mCurrentDotState == DOT_STATE_DEFAULT) {
-            animateDot(mBubble.showDot(), null);
-        }
+    /** Whether to draw the dot in onDraw(). */
+    private boolean shouldDrawDot() {
+        // Always render the dot if it's animating, since it could be animating out. Otherwise, show
+        // it if the bubble wants to show it, and we aren't suppressing it.
+        return mDotIsAnimating || (mBubble.showDot() && mDotSuppressionFlags.isEmpty());
     }
 
     /**
-     * Animates the dot to show or hide.
+     * Animates the dot to the given scale, running the optional callback when the animation ends.
      */
-    private void animateDot(boolean showDot, Runnable after) {
-        if (mDotDrawn == showDot) {
-            // State is consistent, do nothing.
+    private void animateDotScale(float toScale, @Nullable Runnable after) {
+        mDotIsAnimating = true;
+
+        // Don't restart the animation if we're already animating to the given value.
+        if (mAnimatingToDotScale == toScale || !shouldDrawDot()) {
+            mDotIsAnimating = false;
             return;
         }
 
-        setDotState(DOT_STATE_ANIMATING);
+        mAnimatingToDotScale = toScale;
+
+        final boolean showDot = toScale > 0f;
 
         // Do NOT wait until after animation ends to setShowDot
         // to avoid overriding more recent showDot states.
         clearAnimation();
-        animate().setDuration(200)
+        animate()
+                .setDuration(200)
                 .setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
                 .setUpdateListener((valueAnimator) -> {
                     float fraction = valueAnimator.getAnimatedFraction();
@@ -238,7 +269,7 @@
                     setDotScale(fraction);
                 }).withEndAction(() -> {
                     setDotScale(showDot ? 1f : 0f);
-                    setDotState(DOT_STATE_DEFAULT);
+                    mDotIsAnimating = false;
                     if (after != null) {
                         after.run();
                     }
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/Bubble.java b/packages/SystemUI/src/com/android/systemui/bubbles/Bubble.java
index 4240209c..71f2bc0 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/Bubble.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/Bubble.java
@@ -76,7 +76,6 @@
     private BadgedImageView mIconView;
     private BubbleExpandedView mExpandedView;
 
-    private boolean mInflated;
     private BubbleViewInfoTask mInflationTask;
     private boolean mInflateSynchronously;
 
@@ -166,10 +165,16 @@
         return mExpandedView;
     }
 
-    void cleanupExpandedState() {
+    /**
+     * Call when the views should be removed, ensure this is called to clean up ActivityView
+     * content.
+     */
+    void cleanupViews() {
         if (mExpandedView != null) {
             mExpandedView.cleanUpExpandedState();
+            mExpandedView = null;
         }
+        mIconView = null;
     }
 
     /**
@@ -213,14 +218,21 @@
     }
 
     boolean isInflated() {
-        return mInflated;
+        return mIconView != null && mExpandedView != null;
+    }
+
+    void stopInflation() {
+        if (mInflationTask == null) {
+            return;
+        }
+        mInflationTask.cancel(true /* mayInterruptIfRunning */);
+        cleanupViews();
     }
 
     void setViewInfo(BubbleViewInfoTask.BubbleViewInfo info) {
         if (!isInflated()) {
             mIconView = info.imageView;
             mExpandedView = info.expandedView;
-            mInflated = true;
         }
 
         mShortcutInfo = info.shortcutInfo;
@@ -231,12 +243,12 @@
         mDotColor = info.dotColor;
         mDotPath = info.dotPath;
 
-        mExpandedView.update(this);
-        mIconView.update(this);
-    }
-
-    void setInflated(boolean inflated) {
-        mInflated = inflated;
+        if (mExpandedView != null) {
+            mExpandedView.update(/* bubble */ this);
+        }
+        if (mIconView != null) {
+            mIconView.setRenderedBubble(/* bubble */ this);
+        }
     }
 
     /**
@@ -290,7 +302,7 @@
     void markAsAccessedAt(long lastAccessedMillis) {
         mLastAccessed = lastAccessedMillis;
         setSuppressNotification(true);
-        setShowDot(false /* show */, true /* animate */);
+        setShowDot(false /* show */);
     }
 
     /**
@@ -330,12 +342,11 @@
     /**
      * Sets whether the bubble for this notification should show a dot indicating updated content.
      */
-    void setShowDot(boolean showDot, boolean animate) {
+    void setShowDot(boolean showDot) {
         mShowBubbleUpdateDot = showDot;
-        if (animate && mIconView != null) {
-            mIconView.animateDot();
-        } else if (mIconView != null) {
-            mIconView.invalidate();
+
+        if (mIconView != null) {
+            mIconView.updateDotVisibility(true /* animate */);
         }
     }
 
@@ -417,7 +428,7 @@
     PendingIntent getBubbleIntent() {
         Notification.BubbleMetadata data = mEntry.getBubbleMetadata();
         if (data != null) {
-            return data.getBubbleIntent();
+            return data.getIntent();
         }
         return null;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
index b39dd1a..9d885fd 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
@@ -74,6 +74,7 @@
 import com.android.systemui.R;
 import com.android.systemui.bubbles.dagger.BubbleModule;
 import com.android.systemui.dump.DumpManager;
+import com.android.systemui.model.SysUiState;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.shared.system.ActivityManagerWrapper;
 import com.android.systemui.shared.system.PinnedStackListenerForwarder;
@@ -174,6 +175,7 @@
 
     private final NotificationInterruptStateProvider mNotificationInterruptStateProvider;
     private IStatusBarService mBarService;
+    private SysUiState mSysUiState;
 
     // Used for determining view rect for touch interaction
     private Rect mTempRect = new Rect();
@@ -290,11 +292,12 @@
             NotifPipeline notifPipeline,
             FeatureFlags featureFlags,
             DumpManager dumpManager,
-            FloatingContentCoordinator floatingContentCoordinator) {
+            FloatingContentCoordinator floatingContentCoordinator,
+            SysUiState sysUiState) {
         this(context, notificationShadeWindowController, statusBarStateController, shadeController,
                 data, null /* synchronizer */, configurationController, interruptionStateProvider,
                 zenModeController, notifUserManager, groupManager, entryManager,
-                notifPipeline, featureFlags, dumpManager, floatingContentCoordinator);
+                notifPipeline, featureFlags, dumpManager, floatingContentCoordinator, sysUiState);
     }
 
     /**
@@ -315,7 +318,8 @@
             NotifPipeline notifPipeline,
             FeatureFlags featureFlags,
             DumpManager dumpManager,
-            FloatingContentCoordinator floatingContentCoordinator) {
+            FloatingContentCoordinator floatingContentCoordinator,
+            SysUiState sysUiState) {
         dumpManager.registerDumpable(TAG, this);
         mContext = context;
         mShadeController = shadeController;
@@ -327,19 +331,20 @@
             @Override
             public void onZenChanged(int zen) {
                 for (Bubble b : mBubbleData.getBubbles()) {
-                    b.setShowDot(b.showInShade(), true /* animate */);
+                    b.setShowDot(b.showInShade());
                 }
             }
 
             @Override
             public void onConfigChanged(ZenModeConfig config) {
                 for (Bubble b : mBubbleData.getBubbles()) {
-                    b.setShowDot(b.showInShade(), true /* animate */);
+                    b.setShowDot(b.showInShade());
                 }
             }
         });
 
         configurationController.addCallback(this /* configurationListener */);
+        mSysUiState = sysUiState;
 
         mBubbleData = data;
         mBubbleData.setListener(mBubbleDataListener);
@@ -593,7 +598,8 @@
     private void ensureStackViewCreated() {
         if (mStackView == null) {
             mStackView = new BubbleStackView(
-                    mContext, mBubbleData, mSurfaceSynchronizer, mFloatingContentCoordinator);
+                    mContext, mBubbleData, mSurfaceSynchronizer, mFloatingContentCoordinator,
+                    mSysUiState);
             ViewGroup nsv = mNotificationShadeWindowController.getNotificationShadeView();
             int bubbleScrimIndex = nsv.indexOfChild(nsv.findViewById(R.id.scrim_for_bubble));
             int stackIndex = bubbleScrimIndex + 1;  // Show stack above bubble scrim.
@@ -957,9 +963,10 @@
             String key = orderedKeys[i];
             NotificationEntry entry = mNotificationEntryManager.getPendingOrActiveNotif(key);
             rankingMap.getRanking(key, mTmpRanking);
-            if (mBubbleData.hasBubbleWithKey(key) && !mTmpRanking.canBubble()) {
+            boolean isActiveBubble = mBubbleData.hasBubbleWithKey(key);
+            if (isActiveBubble && !mTmpRanking.canBubble()) {
                 mBubbleData.notificationEntryRemoved(entry, BubbleController.DISMISS_BLOCKED);
-            } else if (entry != null && mTmpRanking.isBubble()) {
+            } else if (entry != null && mTmpRanking.isBubble() && !isActiveBubble) {
                 entry.setFlagBubble(true);
                 onEntryUpdated(entry);
             }
@@ -1094,7 +1101,7 @@
         } else if (interceptBubbleDismissal) {
             Bubble bubble = mBubbleData.getBubbleWithKey(entry.getKey());
             bubble.setSuppressNotification(true);
-            bubble.setShowDot(false /* show */, true /* animate */);
+            bubble.setShowDot(false /* show */);
         } else {
             return false;
         }
@@ -1134,7 +1141,7 @@
                     Bubble bubbleChild = mBubbleData.getBubbleWithKey(child.getKey());
                     mNotificationGroupManager.onEntryRemoved(bubbleChild.getEntry());
                     bubbleChild.setSuppressNotification(true);
-                    bubbleChild.setShowDot(false /* show */, true /* animate */);
+                    bubbleChild.setShowDot(false /* show */);
                 } else {
                     // non-bubbled children can be removed
                     for (NotifCallback cb : mCallbacks) {
@@ -1305,7 +1312,7 @@
      */
     static boolean canLaunchInActivityView(Context context, NotificationEntry entry) {
         PendingIntent intent = entry.getBubbleMetadata() != null
-                ? entry.getBubbleMetadata().getBubbleIntent()
+                ? entry.getBubbleMetadata().getIntent()
                 : null;
         if (entry.getBubbleMetadata() != null
                 && entry.getBubbleMetadata().getShortcutId() != null) {
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java
index ff5e13c..1c69594 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleData.java
@@ -203,20 +203,24 @@
         if (DEBUG_BUBBLE_DATA) {
             Log.d(TAG, "promoteBubbleFromOverflow: " + bubble);
         }
-
-        // Preserve new order for next repack, which sorts by last updated time.
-        bubble.markUpdatedAt(mTimeSource.currentTimeMillis());
-        mOverflowBubbles.remove(bubble);
+        moveOverflowBubbleToPending(bubble);
         bubble.inflate(
                 b -> {
                     notificationEntryUpdated(bubble, /* suppressFlyout */
                             false, /* showInShade */ true);
-                    setSelectedBubbleInternal(bubble);
+                    setSelectedBubble(bubble);
                 },
                 mContext, stack, factory);
         dispatchPendingChanges();
     }
 
+    private void moveOverflowBubbleToPending(Bubble b) {
+        // Preserve new order for next repack, which sorts by last updated time.
+        b.markUpdatedAt(mTimeSource.currentTimeMillis());
+        mOverflowBubbles.remove(b);
+        mPendingBubbles.add(b);
+    }
+
     /**
      * Constructs a new bubble or returns an existing one. Does not add new bubbles to
      * bubble data, must go through {@link #notificationEntryUpdated(Bubble, boolean, boolean)}
@@ -228,8 +232,8 @@
             for (int i = 0; i < mOverflowBubbles.size(); i++) {
                 Bubble b = mOverflowBubbles.get(i);
                 if (b.getKey().equals(entry.getKey())) {
-                    mOverflowBubbles.remove(b);
-                    mPendingBubbles.add(b);
+                    moveOverflowBubbleToPending(b);
+                    b.setEntry(entry);
                     return b;
                 }
             }
@@ -237,6 +241,7 @@
             for (int i = 0; i < mPendingBubbles.size(); i++) {
                 Bubble b = mPendingBubbles.get(i);
                 if (b.getKey().equals(entry.getKey())) {
+                    b.setEntry(entry);
                     return b;
                 }
             }
@@ -283,7 +288,7 @@
         boolean isBubbleExpandedAndSelected = mExpanded && mSelectedBubble == bubble;
         boolean suppress = isBubbleExpandedAndSelected || !showInShade || !bubble.showInShade();
         bubble.setSuppressNotification(suppress);
-        bubble.setShowDot(!isBubbleExpandedAndSelected /* show */, true /* animate */);
+        bubble.setShowDot(!isBubbleExpandedAndSelected /* show */);
 
         dispatchPendingChanges();
     }
@@ -400,6 +405,9 @@
     }
 
     private void doRemove(String key, @DismissReason int reason) {
+        if (DEBUG_BUBBLE_DATA) {
+            Log.d(TAG, "doRemove: " + key);
+        }
         //  If it was pending remove it
         for (int i = 0; i < mPendingBubbles.size(); i++) {
             if (mPendingBubbles.get(i).getKey().equals(key)) {
@@ -442,14 +450,14 @@
         if (reason == BubbleController.DISMISS_AGED
                 || reason == BubbleController.DISMISS_USER_GESTURE) {
             if (DEBUG_BUBBLE_DATA) {
-                Log.d(TAG, "overflowing bubble: " + bubble);
+                Log.d(TAG, "Overflowing: " + bubble);
             }
             mOverflowBubbles.add(0, bubble);
-
+            bubble.stopInflation();
             if (mOverflowBubbles.size() == mMaxOverflowBubbles + 1) {
                 // Remove oldest bubble.
                 if (DEBUG_BUBBLE_DATA) {
-                    Log.d(TAG, "Overflow full. Remove bubble: " + mOverflowBubbles.get(
+                    Log.d(TAG, "Overflow full. Remove: " + mOverflowBubbles.get(
                             mOverflowBubbles.size() - 1));
                 }
                 mOverflowBubbles.remove(mOverflowBubbles.size() - 1);
@@ -753,6 +761,17 @@
     }
 
     @VisibleForTesting(visibility = PRIVATE)
+    Bubble getOverflowBubbleWithKey(String key) {
+        for (int i = 0; i < mOverflowBubbles.size(); i++) {
+            Bubble bubble = mOverflowBubbles.get(i);
+            if (bubble.getKey().equals(key)) {
+                return bubble;
+            }
+        }
+        return null;
+    }
+
+    @VisibleForTesting(visibility = PRIVATE)
     void setTimeSource(TimeSource timeSource) {
         mTimeSource = timeSource;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExperimentConfig.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExperimentConfig.java
index b33eeba..41dbb48 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExperimentConfig.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExperimentConfig.java
@@ -256,8 +256,7 @@
             }
         }
         if (intent != null) {
-            return new Notification.BubbleMetadata.Builder()
-                    .createIntentBubble(intent, icon)
+            return new Notification.BubbleMetadata.Builder(intent, icon)
                     .setDesiredHeight(BUBBLE_HEIGHT)
                     .build();
         }
@@ -265,9 +264,8 @@
     }
 
     static Notification.BubbleMetadata createForShortcut(String shortcutId) {
-        return new Notification.BubbleMetadata.Builder()
+        return new Notification.BubbleMetadata.Builder(shortcutId)
                 .setDesiredHeight(BUBBLE_HEIGHT)
-                .createShortcutBubble(shortcutId)
                 .build();
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleIconFactory.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleIconFactory.java
index 3b818db..74231c6 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleIconFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleIconFactory.java
@@ -17,6 +17,7 @@
 
 import android.app.Notification;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.LauncherApps;
 import android.content.pm.ShortcutInfo;
 import android.graphics.Bitmap;
@@ -57,8 +58,14 @@
             int density = context.getResources().getConfiguration().densityDpi;
             return launcherApps.getShortcutIconDrawable(shortcutInfo, density);
         } else {
-            Icon ic = metadata.getBubbleIcon();
+            Icon ic = metadata.getIcon();
             if (ic != null) {
+                if (ic.getType() == Icon.TYPE_URI
+                        || ic.getType() == Icon.TYPE_URI_ADAPTIVE_BITMAP) {
+                    context.grantUriPermission(context.getPackageName(),
+                            ic.getUri(),
+                            Intent.FLAG_GRANT_READ_URI_PERMISSION);
+                }
                 return ic.loadDrawable(context);
             }
             return null;
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflow.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflow.java
index 4fb2d08..13669a6 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflow.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflow.java
@@ -112,7 +112,7 @@
         mPath.transform(matrix);
 
         mOverflowBtn.setVisibility(GONE);
-        mOverflowBtn.update(this);
+        mOverflowBtn.setRenderedBubble(this);
     }
 
     ImageView getBtn() {
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflowActivity.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflowActivity.java
index 7636c67..2231d11 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflowActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleOverflowActivity.java
@@ -21,14 +21,20 @@
 import static com.android.systemui.bubbles.BubbleDebugConfig.TAG_WITH_CLASS_NAME;
 
 import android.app.Activity;
+import android.app.Notification;
+import android.app.Person;
+import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.Color;
 import android.os.Bundle;
+import android.os.Parcelable;
+import android.util.DisplayMetrics;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.LinearLayout;
+import android.widget.TextView;
 
 import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
@@ -67,13 +73,22 @@
 
         mEmptyState = findViewById(R.id.bubble_overflow_empty_state);
         mRecyclerView = findViewById(R.id.bubble_overflow_recycler);
-        mRecyclerView.setLayoutManager(
-                new GridLayoutManager(getApplicationContext(),
-                        getResources().getInteger(R.integer.bubbles_overflow_columns)));
 
-        int bubbleMargin = getResources().getDimensionPixelSize(R.dimen.bubble_overflow_margin);
+        Resources res = getResources();
+        final int columns = res.getInteger(R.integer.bubbles_overflow_columns);
+        mRecyclerView.setLayoutManager(
+                new GridLayoutManager(getApplicationContext(), columns));
+
+        DisplayMetrics displayMetrics = new DisplayMetrics();
+        getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
+        final int viewWidth = displayMetrics.widthPixels / columns;
+
+        final int maxOverflowBubbles = res.getInteger(R.integer.bubbles_max_overflow);
+        final int rows = (int) Math.ceil((double) maxOverflowBubbles / columns);
+        final int viewHeight = res.getDimensionPixelSize(R.dimen.bubble_overflow_height) / rows;
+
         mAdapter = new BubbleOverflowAdapter(mOverflowBubbles,
-                mBubbleController::promoteBubbleFromOverflow, bubbleMargin);
+                mBubbleController::promoteBubbleFromOverflow, viewWidth, viewHeight);
         mRecyclerView.setAdapter(mAdapter);
         onDataChanged(mBubbleController.getOverflowBubbles());
         mBubbleController.setOverflowCallback(() -> {
@@ -139,39 +154,48 @@
 class BubbleOverflowAdapter extends RecyclerView.Adapter<BubbleOverflowAdapter.ViewHolder> {
     private Consumer<Bubble> mPromoteBubbleFromOverflow;
     private List<Bubble> mBubbles;
-    private int mBubbleMargin;
+    private int mWidth;
+    private int mHeight;
 
-    public BubbleOverflowAdapter(List<Bubble> list, Consumer<Bubble> promoteBubble,
-            int bubbleMargin) {
+    public BubbleOverflowAdapter(List<Bubble> list, Consumer<Bubble> promoteBubble, int width,
+            int height) {
         mBubbles = list;
         mPromoteBubbleFromOverflow = promoteBubble;
-        mBubbleMargin = bubbleMargin;
+        mWidth = width;
+        mHeight = height;
     }
 
     @Override
     public BubbleOverflowAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
             int viewType) {
-        BadgedImageView view = (BadgedImageView) LayoutInflater.from(parent.getContext())
-                .inflate(R.layout.bubble_view, parent, false);
+        LinearLayout overflowView = (LinearLayout) LayoutInflater.from(parent.getContext())
+                .inflate(R.layout.bubble_overflow_view, parent, false);
         LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                 LinearLayout.LayoutParams.WRAP_CONTENT,
-                LinearLayout.LayoutParams.WRAP_CONTENT
-        );
-        params.setMargins(mBubbleMargin, mBubbleMargin, mBubbleMargin, mBubbleMargin);
-        view.setLayoutParams(params);
-        return new ViewHolder(view);
+                LinearLayout.LayoutParams.WRAP_CONTENT);
+        params.width = mWidth;
+        params.height = mHeight;
+        overflowView.setLayoutParams(params);
+        return new ViewHolder(overflowView);
     }
 
     @Override
     public void onBindViewHolder(ViewHolder vh, int index) {
-        Bubble bubble = mBubbles.get(index);
+        Bubble b = mBubbles.get(index);
 
-        vh.mBadgedImageView.update(bubble);
-        vh.mBadgedImageView.setOnClickListener(view -> {
-            mBubbles.remove(bubble);
+        vh.iconView.setRenderedBubble(b);
+        vh.iconView.setOnClickListener(view -> {
+            mBubbles.remove(b);
             notifyDataSetChanged();
-            mPromoteBubbleFromOverflow.accept(bubble);
+            mPromoteBubbleFromOverflow.accept(b);
         });
+
+        Bubble.FlyoutMessage message = b.getFlyoutMessage();
+        if (message != null && message.senderName != null) {
+            vh.textView.setText(message.senderName);
+        } else {
+            vh.textView.setText(b.getAppName());
+        }
     }
 
     @Override
@@ -180,11 +204,13 @@
     }
 
     public static class ViewHolder extends RecyclerView.ViewHolder {
-        public BadgedImageView mBadgedImageView;
+        public BadgedImageView iconView;
+        public TextView textView;
 
-        public ViewHolder(BadgedImageView v) {
+        public ViewHolder(LinearLayout v) {
             super(v);
-            mBadgedImageView = v;
+            iconView = v.findViewById(R.id.bubble_view);
+            textView = v.findViewById(R.id.bubble_view_name);
         }
     }
 }
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java
index e666fb5..6fd6b8d 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java
@@ -22,8 +22,6 @@
 import static com.android.systemui.Interpolators.FAST_OUT_SLOW_IN;
 import static com.android.systemui.Prefs.Key.HAS_SEEN_BUBBLES_EDUCATION;
 import static com.android.systemui.Prefs.Key.HAS_SEEN_BUBBLES_MANAGE_EDUCATION;
-import static com.android.systemui.bubbles.BadgedImageView.DOT_STATE_DEFAULT;
-import static com.android.systemui.bubbles.BadgedImageView.DOT_STATE_SUPPRESSED_FOR_FLYOUT;
 import static com.android.systemui.bubbles.BubbleDebugConfig.DEBUG_BUBBLE_STACK_VIEW;
 import static com.android.systemui.bubbles.BubbleDebugConfig.DEBUG_USER_EDUCATION;
 import static com.android.systemui.bubbles.BubbleDebugConfig.TAG_BUBBLES;
@@ -80,6 +78,8 @@
 import com.android.systemui.bubbles.animation.ExpandedAnimationController;
 import com.android.systemui.bubbles.animation.PhysicsAnimationLayout;
 import com.android.systemui.bubbles.animation.StackAnimationController;
+import com.android.systemui.model.SysUiState;
+import com.android.systemui.shared.system.QuickStepContract;
 import com.android.systemui.shared.system.SysUiStatsLog;
 import com.android.systemui.util.DismissCircleView;
 import com.android.systemui.util.FloatingContentCoordinator;
@@ -224,7 +224,7 @@
     private boolean mIsExpanded;
 
     /** Whether the stack is currently on the left side of the screen, or animating there. */
-    private boolean mStackOnLeftOrWillBe = false;
+    private boolean mStackOnLeftOrWillBe = true;
 
     /** Whether a touch gesture, such as a stack/bubble drag or flyout drag, is in progress. */
     private boolean mIsGestureInProgress = false;
@@ -241,6 +241,7 @@
 
     private BubbleTouchHandler mTouchHandler;
     private BubbleController.BubbleExpandListener mExpandListener;
+    private SysUiState mSysUiState;
 
     private boolean mViewUpdatedRequested = false;
     private boolean mIsExpansionAnimating = false;
@@ -437,7 +438,8 @@
 
     public BubbleStackView(Context context, BubbleData data,
             @Nullable SurfaceSynchronizer synchronizer,
-            FloatingContentCoordinator floatingContentCoordinator) {
+            FloatingContentCoordinator floatingContentCoordinator,
+            SysUiState sysUiState) {
         super(context);
 
         mBubbleData = data;
@@ -445,6 +447,8 @@
         mTouchHandler = new BubbleTouchHandler(this, data, context);
         setOnTouchListener(mTouchHandler);
 
+        mSysUiState = sysUiState;
+
         Resources res = getResources();
         mMaxBubbles = res.getInteger(R.integer.bubbles_max_rendered);
         mBubbleSize = res.getDimensionPixelSize(R.dimen.individual_bubble_size);
@@ -930,9 +934,13 @@
             mStackOnLeftOrWillBe = mStackAnimationController.isStackOnLeftSide();
         }
 
+        if (bubble.getIconView() == null) {
+            return;
+        }
+
         // Set the dot position to the opposite of the side the stack is resting on, since the stack
         // resting slightly off-screen would result in the dot also being off-screen.
-        bubble.getIconView().setDotPosition(
+        bubble.getIconView().setDotPositionOnLeft(
                 !mStackOnLeftOrWillBe /* onLeft */, false /* animate */);
 
         mBubbleContainer.addView(bubble.getIconView(), 0,
@@ -940,7 +948,6 @@
         ViewClippingUtil.setClippingDeactivated(bubble.getIconView(), true, mClippingParameters);
         animateInFlyoutForBubble(bubble);
         updatePointerPosition();
-        updateOverflowBtnVisibility( /*apply */ true);
         requestUpdate();
         logBubbleEvent(bubble, SysUiStatsLog.BUBBLE_UICHANGED__ACTION__POSTED);
     }
@@ -951,16 +958,17 @@
             Log.d(TAG, "removeBubble: " + bubble);
         }
         // Remove it from the views
-        int removedIndex = mBubbleContainer.indexOfChild(bubble.getIconView());
-        if (removedIndex >= 0) {
-            mBubbleContainer.removeViewAt(removedIndex);
-            bubble.cleanupExpandedState();
-            bubble.setInflated(false);
-            logBubbleEvent(bubble, SysUiStatsLog.BUBBLE_UICHANGED__ACTION__DISMISSED);
-        } else {
-            Log.d(TAG, "was asked to remove Bubble, but didn't find the view! " + bubble);
+        for (int i = 0; i < getBubbleCount(); i++) {
+            View v = mBubbleContainer.getChildAt(i);
+            if (v instanceof BadgedImageView
+                    && ((BadgedImageView) v).getKey().equals(bubble.getKey())) {
+                mBubbleContainer.removeViewAt(i);
+                bubble.cleanupViews();
+                logBubbleEvent(bubble, SysUiStatsLog.BUBBLE_UICHANGED__ACTION__DISMISSED);
+                return;
+            }
         }
-        updateOverflowBtnVisibility(/* apply */ true);
+        Log.d(TAG, "was asked to remove Bubble, but didn't find the view! " + bubble);
     }
 
     private void updateOverflowBtnVisibility(boolean apply) {
@@ -1054,6 +1062,11 @@
         if (shouldExpand == mIsExpanded) {
             return;
         }
+
+        mSysUiState
+                .setFlag(QuickStepContract.SYSUI_STATE_BUBBLES_EXPANDED, shouldExpand)
+                .commitUpdate(mContext.getDisplayId());
+
         if (mIsExpanded) {
             animateCollapse();
             logBubbleEvent(mExpandedBubble, SysUiStatsLog.BUBBLE_UICHANGED__ACTION__COLLAPSED);
@@ -1074,11 +1087,6 @@
      */
     private boolean maybeShowStackUserEducation() {
         if (mShouldShowUserEducation && mUserEducationView.getVisibility() != VISIBLE) {
-            Bubble b = mBubbleData.getSelectedBubble();
-            TextView description = mUserEducationView.findViewById(R.id.user_education_description);
-            description.setText(mContext.getString(
-                    R.string.bubbles_user_education_description, b.getAppName()));
-
             mUserEducationView.setAlpha(0);
             mUserEducationView.setVisibility(VISIBLE);
             // Post so we have height of mUserEducationView
@@ -1691,7 +1699,7 @@
                 || mBubbleToExpandAfterFlyoutCollapse != null
                 || bubbleView == null) {
             if (bubbleView != null) {
-                bubbleView.setDotState(DOT_STATE_DEFAULT);
+                bubbleView.removeDotSuppressionFlag(BadgedImageView.SuppressionFlag.FLYOUT_VISIBLE);
             }
             // Skip the message if none exists, we're expanded or animating expansion, or we're
             // about to expand a bubble from the previous tapped flyout, or if bubble view is null.
@@ -1710,12 +1718,16 @@
                 mBubbleData.setExpanded(true);
                 mBubbleToExpandAfterFlyoutCollapse = null;
             }
-            bubbleView.setDotState(DOT_STATE_DEFAULT);
+
+            // Stop suppressing the dot now that the flyout has morphed into the dot.
+            bubbleView.removeDotSuppressionFlag(
+                    BadgedImageView.SuppressionFlag.FLYOUT_VISIBLE);
         };
         mFlyout.setVisibility(INVISIBLE);
 
-        // Don't show the dot when we're animating the flyout
-        bubbleView.setDotState(DOT_STATE_SUPPRESSED_FOR_FLYOUT);
+        // Suppress the dot when we are animating the flyout.
+        bubbleView.addDotSuppressionFlag(
+                BadgedImageView.SuppressionFlag.FLYOUT_VISIBLE);
 
         // Start flyout expansion. Post in case layout isn't complete and getWidth returns 0.
         post(() -> {
@@ -1736,6 +1748,11 @@
                 };
                 mFlyout.postDelayed(mAnimateInFlyout, 200);
             };
+
+            if (bubble.getIconView() == null) {
+                return;
+            }
+
             mFlyout.setupFlyoutStartingAsDot(flyoutMessage,
                     mStackAnimationController.getStackPosition(), getWidth(),
                     mStackAnimationController.isStackOnLeftSide(),
@@ -1870,9 +1887,19 @@
         for (int i = 0; i < bubbleCount; i++) {
             BadgedImageView bv = (BadgedImageView) mBubbleContainer.getChildAt(i);
             bv.setZ((mMaxBubbles * mBubbleElevation) - i);
+
             // If the dot is on the left, and so is the stack, we need to change the dot position.
             if (bv.getDotPositionOnLeft() == mStackOnLeftOrWillBe) {
-                bv.setDotPosition(!mStackOnLeftOrWillBe, animate);
+                bv.setDotPositionOnLeft(!mStackOnLeftOrWillBe, animate);
+            }
+
+            if (!mIsExpanded && i > 0) {
+                // If we're collapsed and this bubble is behind other bubbles, suppress its dot.
+                bv.addDotSuppressionFlag(
+                        BadgedImageView.SuppressionFlag.BEHIND_STACK);
+            } else {
+                bv.removeDotSuppressionFlag(
+                        BadgedImageView.SuppressionFlag.BEHIND_STACK);
             }
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleViewInfoTask.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleViewInfoTask.java
index 55a7a11..501e502 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleViewInfoTask.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleViewInfoTask.java
@@ -25,6 +25,7 @@
 import android.app.Notification;
 import android.app.Person;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ShortcutInfo;
@@ -33,6 +34,7 @@
 import android.graphics.Matrix;
 import android.graphics.Path;
 import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
 import android.os.AsyncTask;
 import android.os.Parcelable;
 import android.service.notification.StatusBarNotification;
@@ -246,9 +248,17 @@
                     bubbleMessage.senderName = sender != null
                             ? sender.getName()
                             : null;
-                    bubbleMessage.senderAvatar = sender != null && sender.getIcon() != null
-                            ? sender.getIcon().loadDrawable(context)
-                            : null;
+
+                    bubbleMessage.senderAvatar = null;
+                    if (sender != null && sender.getIcon() != null) {
+                        if (sender.getIcon().getType() == Icon.TYPE_URI
+                                || sender.getIcon().getType() == Icon.TYPE_URI_ADAPTIVE_BITMAP) {
+                            context.grantUriPermission(context.getPackageName(),
+                                    sender.getIcon().getUri(),
+                                    Intent.FLAG_GRANT_READ_URI_PERMISSION);
+                        }
+                        bubbleMessage.senderAvatar = sender.getIcon().loadDrawable(context);
+                    }
                     return bubbleMessage;
                 }
             } else if (Notification.InboxStyle.class.equals(style)) {
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/animation/StackAnimationController.java b/packages/SystemUI/src/com/android/systemui/bubbles/animation/StackAnimationController.java
index 7ee162e..00de8b4 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/animation/StackAnimationController.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/animation/StackAnimationController.java
@@ -287,7 +287,7 @@
     /** Whether the stack is on the left side of the screen. */
     public boolean isStackOnLeftSide() {
         if (mLayout == null || !isStackPositionSet()) {
-            return false;
+            return true; // Default to left, which is where it starts by default.
         }
 
         float stackCenter = mStackPosition.x + mBubbleBitmapSize / 2;
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/dagger/BubbleModule.java b/packages/SystemUI/src/com/android/systemui/bubbles/dagger/BubbleModule.java
index 27c9e98..e84e932 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/dagger/BubbleModule.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/dagger/BubbleModule.java
@@ -21,6 +21,7 @@
 import com.android.systemui.bubbles.BubbleController;
 import com.android.systemui.bubbles.BubbleData;
 import com.android.systemui.dump.DumpManager;
+import com.android.systemui.model.SysUiState;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.statusbar.FeatureFlags;
 import com.android.systemui.statusbar.NotificationLockscreenUserManager;
@@ -62,7 +63,8 @@
             NotifPipeline notifPipeline,
             FeatureFlags featureFlags,
             DumpManager dumpManager,
-            FloatingContentCoordinator floatingContentCoordinator) {
+            FloatingContentCoordinator floatingContentCoordinator,
+            SysUiState sysUiState) {
         return new BubbleController(
                 context,
                 notificationShadeWindowController,
@@ -79,6 +81,7 @@
                 notifPipeline,
                 featureFlags,
                 dumpManager,
-                floatingContentCoordinator);
+                floatingContentCoordinator,
+                sysUiState);
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlInfo.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlInfo.kt
index 6f2af1b..6e59ac1 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlInfo.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlInfo.kt
@@ -27,11 +27,13 @@
  *
  * @property controlId unique identifier for this [Control].
  * @property controlTitle last title reported for this [Control].
+ * @property controlSubtitle last subtitle reported for this [Control].
  * @property deviceType last reported type for this [Control].
  */
 data class ControlInfo(
     val controlId: String,
     val controlTitle: CharSequence,
+    val controlSubtitle: CharSequence,
     @DeviceTypes.DeviceType val deviceType: Int
 ) {
 
@@ -51,8 +53,9 @@
     class Builder {
         lateinit var controlId: String
         lateinit var controlTitle: CharSequence
+        lateinit var controlSubtitle: CharSequence
         var deviceType: Int = DeviceTypes.TYPE_UNKNOWN
 
-        fun build() = ControlInfo(controlId, controlTitle, deviceType)
+        fun build() = ControlInfo(controlId, controlTitle, controlSubtitle, deviceType)
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt
index c5af436..d4d4d2a 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt
@@ -43,6 +43,14 @@
     fun bindAndLoad(component: ComponentName, callback: LoadCallback): Runnable
 
     /**
+     * Request bind to a service and load a limited number of suggested controls.
+     *
+     * @param component The [ComponentName] of the service to bind
+     * @param callback a callback to return the loaded controls to (or an error).
+     */
+    fun bindAndLoadSuggested(component: ComponentName, callback: LoadCallback)
+
+    /**
      * Request to bind to the given service.
      *
      * @param component The [ComponentName] of the service to bind
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt
index f8d4a39..5d03fc5 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt
@@ -44,6 +44,8 @@
 
     companion object {
         private const val TAG = "ControlsBindingControllerImpl"
+        private const val MAX_CONTROLS_REQUEST = 100000L
+        private const val SUGGESTED_CONTROLS_REQUEST = 4L
     }
 
     private var currentUser = UserHandle.of(ActivityManager.getCurrentUser())
@@ -97,24 +99,37 @@
         component: ComponentName,
         callback: ControlsBindingController.LoadCallback
     ): Runnable {
-        val subscriber = LoadSubscriber(callback)
+        val subscriber = LoadSubscriber(callback, MAX_CONTROLS_REQUEST)
         retrieveLifecycleManager(component).maybeBindAndLoad(subscriber)
         return subscriber.loadCancel()
     }
 
+    override fun bindAndLoadSuggested(
+        component: ComponentName,
+        callback: ControlsBindingController.LoadCallback
+    ) {
+        val subscriber = LoadSubscriber(callback, SUGGESTED_CONTROLS_REQUEST)
+        retrieveLifecycleManager(component).maybeBindAndLoadSuggested(subscriber)
+    }
+
     override fun subscribe(structureInfo: StructureInfo) {
         // make sure this has happened. only allow one active subscription
         unsubscribe()
 
-        statefulControlSubscriber = null
         val provider = retrieveLifecycleManager(structureInfo.componentName)
-        val scs = StatefulControlSubscriber(lazyController.get(), provider, backgroundExecutor)
+        val scs = StatefulControlSubscriber(
+            lazyController.get(),
+            provider,
+            backgroundExecutor,
+            MAX_CONTROLS_REQUEST
+        )
         statefulControlSubscriber = scs
         provider.maybeBindAndSubscribe(structureInfo.controls.map { it.controlId }, scs)
     }
 
     override fun unsubscribe() {
         statefulControlSubscriber?.cancel()
+        statefulControlSubscriber = null
     }
 
     override fun action(
@@ -201,10 +216,11 @@
 
     private inner class OnSubscribeRunnable(
         token: IBinder,
-        val subscription: IControlsSubscription
+        val subscription: IControlsSubscription,
+        val requestLimit: Long
     ) : CallbackRunnable(token) {
         override fun doRun() {
-            provider?.startSubscription(subscription)
+            provider?.startSubscription(subscription, requestLimit)
         }
     }
 
@@ -234,7 +250,8 @@
     }
 
     private inner class LoadSubscriber(
-        val callback: ControlsBindingController.LoadCallback
+        val callback: ControlsBindingController.LoadCallback,
+        val requestLimit: Long
     ) : IControlsSubscriber.Stub() {
         val loadedControls = ArrayList<Control>()
         var hasError = false
@@ -246,7 +263,7 @@
 
         override fun onSubscribe(token: IBinder, subs: IControlsSubscription) {
             _loadCancelInternal = subs::cancel
-            backgroundExecutor.execute(OnSubscribeRunnable(token, subs))
+            backgroundExecutor.execute(OnSubscribeRunnable(token, subs, requestLimit))
         }
 
         override fun onNext(token: IBinder, c: Control) {
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt
index 9e0d26c..ae75dd4 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt
@@ -114,6 +114,25 @@
     // FAVORITE MANAGEMENT
 
     /**
+     * Send a request to seed favorites into the persisted XML file
+     *
+     * @param componentName the component to seed controls from
+     * @param callback true if the favorites were persisted
+     */
+    fun seedFavoritesForComponent(
+        componentName: ComponentName,
+        callback: Consumer<Boolean>
+    )
+
+    /**
+     * Callback to be informed when the seeding process has finished
+     *
+     * @param callback consumer accepts true if successful
+     * @return true if seeding is in progress and the callback was added
+     */
+    fun addSeedingFavoritesCallback(callback: Consumer<Boolean>): Boolean
+
+    /**
      * Get all the favorites.
      *
      * @return a list of the structures that have at least one favorited control
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt
index 9cb902f..fdb0e4c 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt
@@ -31,6 +31,7 @@
 import android.provider.Settings
 import android.service.controls.Control
 import android.service.controls.actions.ControlAction
+import android.util.ArrayMap
 import android.util.Log
 import com.android.internal.annotations.VisibleForTesting
 import com.android.systemui.Dumpable
@@ -64,7 +65,7 @@
 
     companion object {
         private const val TAG = "ControlsControllerImpl"
-        internal const val CONTROLS_AVAILABLE = "systemui.controls_available"
+        internal const val CONTROLS_AVAILABLE = Settings.Secure.CONTROLS_ENABLED
         internal val URI = Settings.Secure.getUriFor(CONTROLS_AVAILABLE)
         private const val USER_CHANGE_RETRY_DELAY = 500L // ms
         private const val DEFAULT_ENABLED = 1
@@ -74,6 +75,9 @@
 
     private var loadCanceller: Runnable? = null
 
+    private var seedingInProgress = false
+    private val seedingCallbacks = mutableListOf<Consumer<Boolean>>()
+
     private var currentUser = UserHandle.of(ActivityManager.getCurrentUser())
     override val currentUserId
         get() = currentUser.identifier
@@ -248,10 +252,17 @@
                                     it.controlId in favoritesForComponentKeys
                                 )
                             }
+                            val removedControls = mutableListOf<ControlStatus>()
+                            Favorites.getStructuresForComponent(componentName).forEach { st ->
+                                st.controls.forEach {
+                                    if (it.controlId in removed) {
+                                        val r = createRemovedStatus(componentName, it, st.structure)
+                                        removedControls.add(r)
+                                    }
+                                }
+                            }
                             val loadData = createLoadDataObject(
-                                Favorites.getControlsForComponent(componentName)
-                                    .filter { it.controlId in removed }
-                                    .map { createRemovedStatus(componentName, it) } +
+                                removedControls +
                                 controlsWithFavorite,
                                 favoritesForComponentKeys
                             )
@@ -262,17 +273,15 @@
                     override fun error(message: String) {
                         loadCanceller = null
                         executor.execute {
-                            val loadData = Favorites.getControlsForComponent(componentName)
-                                .let { controls ->
-                                val keys = controls.map { it.controlId }
-                                createLoadDataObject(
-                                        controls.map {
-                                            createRemovedStatus(componentName, it, false)
-                                        },
-                                        keys,
-                                        true
-                                )
-                            }
+                            val controls = Favorites.getStructuresForComponent(componentName)
+                                    .flatMap { st ->
+                                        st.controls.map {
+                                            createRemovedStatus(componentName, it, st.structure,
+                                                    false)
+                                        }
+                                    }
+                            val keys = controls.map { it.control.controlId }
+                            val loadData = createLoadDataObject(controls, keys, true)
                             dataCallback.accept(loadData)
                         }
                     }
@@ -280,6 +289,85 @@
         )
     }
 
+    override fun addSeedingFavoritesCallback(callback: Consumer<Boolean>): Boolean {
+        if (!seedingInProgress) return false
+        executor.execute {
+            // status may have changed by this point, so check again and inform the
+            // caller if necessary
+            if (seedingInProgress) seedingCallbacks.add(callback)
+            else callback.accept(false)
+        }
+        return true
+    }
+
+    override fun seedFavoritesForComponent(
+        componentName: ComponentName,
+        callback: Consumer<Boolean>
+    ) {
+        Log.i(TAG, "Beginning request to seed favorites for: $componentName")
+        if (!confirmAvailability()) {
+            if (userChanging) {
+                // Try again later, userChanging should not last forever. If so, we have bigger
+                // problems. This will return a runnable that allows to cancel the delayed version,
+                // it will not be able to cancel the load if
+                executor.executeDelayed(
+                    { seedFavoritesForComponent(componentName, callback) },
+                    USER_CHANGE_RETRY_DELAY,
+                    TimeUnit.MILLISECONDS
+                )
+            } else {
+                callback.accept(false)
+            }
+            return
+        }
+        seedingInProgress = true
+        bindingController.bindAndLoadSuggested(
+            componentName,
+            object : ControlsBindingController.LoadCallback {
+                override fun accept(controls: List<Control>) {
+                    executor.execute {
+                        val structureToControls =
+                            ArrayMap<CharSequence, MutableList<ControlInfo>>()
+
+                        controls.forEach {
+                            val structure = it.structure ?: ""
+                            val list = structureToControls.get(structure)
+                                ?: mutableListOf<ControlInfo>()
+                            list.add(
+                                ControlInfo(it.controlId, it.title, it.subtitle, it.deviceType))
+                            structureToControls.put(structure, list)
+                        }
+
+                        structureToControls.forEach {
+                            (s, cs) -> Favorites.replaceControls(
+                                StructureInfo(componentName, s, cs))
+                        }
+
+                        persistenceWrapper.storeFavorites(Favorites.getAllStructures())
+                        callback.accept(true)
+                        endSeedingCall(true)
+                    }
+                }
+
+                override fun error(message: String) {
+                    Log.e(TAG, "Unable to seed favorites: $message")
+                    executor.execute {
+                        callback.accept(false)
+                        endSeedingCall(false)
+                    }
+                }
+            }
+        )
+    }
+
+    private fun endSeedingCall(state: Boolean) {
+        seedingInProgress = false
+        seedingCallbacks.forEach {
+            it.accept(state)
+        }
+        seedingCallbacks.clear()
+    }
+
     override fun cancelLoad() {
         loadCanceller?.let {
             executor.execute(it)
@@ -289,6 +377,7 @@
     private fun createRemovedStatus(
         componentName: ComponentName,
         controlInfo: ControlInfo,
+        structure: CharSequence,
         setRemoved: Boolean = true
     ): ControlStatus {
         val intent = Intent(Intent.ACTION_MAIN).apply {
@@ -301,6 +390,8 @@
                 0)
         val control = Control.StatelessBuilder(controlInfo.controlId, pendingIntent)
                 .setTitle(controlInfo.controlTitle)
+                .setSubtitle(controlInfo.controlSubtitle)
+                .setStructure(structure)
                 .setDeviceType(controlInfo.deviceType)
                 .build()
         return ControlStatus(control, componentName, true, setRemoved)
@@ -348,13 +439,14 @@
             Log.d(TAG, "Controls not available")
             return
         }
-        executor.execute {
-            val changed = Favorites.updateControls(
-                componentName,
-                listOf(control)
-            )
-            if (changed) {
-                persistenceWrapper.storeFavorites(Favorites.getAllStructures())
+
+        // Assume that non STATUS_OK responses may contain incomplete or invalid information about
+        // the control, and do not attempt to update it
+        if (control.getStatus() == Control.STATUS_OK) {
+            executor.execute {
+                if (Favorites.updateControls(componentName, listOf(control))) {
+                    persistenceWrapper.storeFavorites(Favorites.getAllStructures())
+                }
             }
         }
         uiController.onRefreshState(componentName, listOf(control))
@@ -436,10 +528,12 @@
             s.controls.forEach { c ->
                 val (sName, ci) = controlsById.get(c.controlId)?.let { updatedControl ->
                     val controlInfo = if (updatedControl.title != c.controlTitle ||
+                        updatedControl.subtitle != c.controlSubtitle ||
                         updatedControl.deviceType != c.deviceType) {
                         changed = true
                         c.copy(
                             controlTitle = updatedControl.title,
+                            controlSubtitle = updatedControl.subtitle,
                             deviceType = updatedControl.deviceType
                         )
                     } else { c }
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt
index 4bea6ef..afd82e7 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt
@@ -51,6 +51,7 @@
         private const val TAG_COMPONENT = "component"
         private const val TAG_ID = "id"
         private const val TAG_TITLE = "title"
+        private const val TAG_SUBTITLE = "subtitle"
         private const val TAG_TYPE = "type"
         private const val TAG_VERSION = "version"
 
@@ -102,6 +103,7 @@
                             startTag(null, TAG_CONTROL)
                             attribute(null, TAG_ID, c.controlId)
                             attribute(null, TAG_TITLE, c.controlTitle.toString())
+                            attribute(null, TAG_SUBTITLE, c.controlSubtitle.toString())
                             attribute(null, TAG_TYPE, c.deviceType.toString())
                             endTag(null, TAG_CONTROL)
                         }
@@ -168,9 +170,10 @@
             } else if (type == XmlPullParser.START_TAG && tagName == TAG_CONTROL) {
                 val id = parser.getAttributeValue(null, TAG_ID)
                 val title = parser.getAttributeValue(null, TAG_TITLE)
+                val subtitle = parser.getAttributeValue(null, TAG_SUBTITLE) ?: ""
                 val deviceType = parser.getAttributeValue(null, TAG_TYPE)?.toInt()
                 if (id != null && title != null && deviceType != null) {
-                    controls.add(ControlInfo(id, title, deviceType))
+                    controls.add(ControlInfo(id, title, subtitle, deviceType))
                 }
             } else if (type == XmlPullParser.END_TAG && tagName == TAG_STRUCTURE) {
                 infos.add(StructureInfo(lastComponent!!, lastStructure!!, controls.toList()))
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt
index 4918bd7..895f1d2 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt
@@ -66,25 +66,19 @@
     @GuardedBy("subscriptions")
     private val subscriptions = mutableListOf<IControlsSubscription>()
     private var requiresBound = false
-    @GuardedBy("queuedMessages")
-    private val queuedMessages: MutableSet<Message> = ArraySet()
+    @GuardedBy("queuedServiceMethods")
+    private val queuedServiceMethods: MutableSet<ServiceMethod> = ArraySet()
     private var wrapper: ServiceWrapper? = null
     private var bindTryCount = 0
     private val TAG = javaClass.simpleName
     private var onLoadCanceller: Runnable? = null
 
     companion object {
-        private const val MSG_LOAD = 0
-        private const val MSG_SUBSCRIBE = 1
-        private const val MSG_ACTION = 2
-        private const val MSG_UNBIND = 3
         private const val BIND_RETRY_DELAY = 1000L // ms
         private const val LOAD_TIMEOUT_SECONDS = 30L // seconds
         private const val MAX_BIND_RETRIES = 5
-        private const val MAX_CONTROLS_REQUEST = 100000L
         private const val DEBUG = true
-        private val BIND_FLAGS = Context.BIND_AUTO_CREATE or Context.BIND_FOREGROUND_SERVICE or
-                Context.BIND_WAIVE_PRIORITY
+        private val BIND_FLAGS = Context.BIND_AUTO_CREATE or Context.BIND_FOREGROUND_SERVICE
     }
 
     private val intent = Intent().apply {
@@ -130,7 +124,7 @@
             try {
                 service.linkToDeath(this@ControlsProviderLifecycleManager, 0)
             } catch (_: RemoteException) {}
-            handlePendingMessages()
+            handlePendingServiceMethods()
         }
 
         override fun onServiceDisconnected(name: ComponentName?) {
@@ -140,29 +134,14 @@
         }
     }
 
-    private fun handlePendingMessages() {
-        val queue = synchronized(queuedMessages) {
-            ArraySet(queuedMessages).also {
-                queuedMessages.clear()
+    private fun handlePendingServiceMethods() {
+        val queue = synchronized(queuedServiceMethods) {
+            ArraySet(queuedServiceMethods).also {
+                queuedServiceMethods.clear()
             }
         }
-        if (Message.Unbind in queue) {
-            bindService(false)
-            return
-        }
-
-        queue.filter { it is Message.Load }.forEach {
-            val msg = it as Message.Load
-            load(msg.subscriber)
-        }
-
-        queue.filter { it is Message.Subscribe }.forEach {
-            val msg = it as Message.Subscribe
-            subscribe(msg.list, msg.subscriber)
-        }
-        queue.filter { it is Message.Action }.forEach {
-            val msg = it as Message.Action
-            action(msg.id, msg.action)
+        queue.forEach {
+            it.run()
         }
     }
 
@@ -177,33 +156,17 @@
         }
     }
 
-    private fun queueMessage(message: Message) {
-        synchronized(queuedMessages) {
-            queuedMessages.add(message)
+    private fun queueServiceMethod(sm: ServiceMethod) {
+        synchronized(queuedServiceMethods) {
+            queuedServiceMethods.add(sm)
         }
     }
 
-    private fun unqueueMessageType(type: Int) {
-        synchronized(queuedMessages) {
-            queuedMessages.removeIf { it.type == type }
-        }
-    }
-
-    private fun load(subscriber: IControlsSubscriber.Stub) {
-        if (DEBUG) {
-            Log.d(TAG, "load $componentName")
-        }
-        if (!(wrapper?.load(subscriber) ?: false)) {
-            queueMessage(Message.Load(subscriber))
-            binderDied()
-        }
-    }
-
-    private inline fun invokeOrQueue(f: () -> Unit, msg: Message) {
+    private fun invokeOrQueue(sm: ServiceMethod) {
         wrapper?.run {
-            f()
+            sm.run()
         } ?: run {
-            queueMessage(msg)
+            queueServiceMethod(sm)
             bindService(true)
         }
     }
@@ -217,7 +180,6 @@
      * @param subscriber the subscriber that manages coordination for loading controls
      */
     fun maybeBindAndLoad(subscriber: IControlsSubscriber.Stub) {
-        unqueueMessageType(MSG_UNBIND)
         onLoadCanceller = executor.executeDelayed({
             // Didn't receive a response in time, log and send back error
             Log.d(TAG, "Timeout waiting onLoad for $componentName")
@@ -225,7 +187,26 @@
             unbindService()
         }, LOAD_TIMEOUT_SECONDS, TimeUnit.SECONDS)
 
-        invokeOrQueue({ load(subscriber) }, Message.Load(subscriber))
+        invokeOrQueue(Load(subscriber))
+    }
+
+    /**
+     * Request a call to [IControlsProvider.loadSuggested].
+     *
+     * If the service is not bound, the call will be queued and the service will be bound first.
+     * The service will be unbound after the controls are returned or the call times out.
+     *
+     * @param subscriber the subscriber that manages coordination for loading controls
+     */
+    fun maybeBindAndLoadSuggested(subscriber: IControlsSubscriber.Stub) {
+        onLoadCanceller = executor.executeDelayed({
+            // Didn't receive a response in time, log and send back error
+            Log.d(TAG, "Timeout waiting onLoadSuggested for $componentName")
+            subscriber.onError(token, "Timeout waiting onLoadSuggested")
+            unbindService()
+        }, LOAD_TIMEOUT_SECONDS, TimeUnit.SECONDS)
+
+        invokeOrQueue(Suggest(subscriber))
     }
 
     fun cancelLoadTimeout() {
@@ -240,23 +221,8 @@
      *
      * @param controlIds a list of the ids of controls to send status back.
      */
-    fun maybeBindAndSubscribe(controlIds: List<String>, subscriber: IControlsSubscriber) {
-        invokeOrQueue(
-            { subscribe(controlIds, subscriber) },
-            Message.Subscribe(controlIds, subscriber)
-        )
-    }
-
-    private fun subscribe(controlIds: List<String>, subscriber: IControlsSubscriber) {
-        if (DEBUG) {
-            Log.d(TAG, "subscribe $componentName - $controlIds")
-        }
-
-        if (!(wrapper?.subscribe(controlIds, subscriber) ?: false)) {
-            queueMessage(Message.Subscribe(controlIds, subscriber))
-            binderDied()
-        }
-    }
+    fun maybeBindAndSubscribe(controlIds: List<String>, subscriber: IControlsSubscriber) =
+        invokeOrQueue(Subscribe(controlIds, subscriber))
 
     /**
      * Request a call to [ControlsProviderService.performControlAction].
@@ -266,19 +232,8 @@
      * @param controlId the id of the [Control] the action is performed on
      * @param action the action performed
      */
-    fun maybeBindAndSendAction(controlId: String, action: ControlAction) {
-        invokeOrQueue({ action(controlId, action) }, Message.Action(controlId, action))
-    }
-
-    private fun action(controlId: String, action: ControlAction) {
-        if (DEBUG) {
-            Log.d(TAG, "onAction $componentName - $controlId")
-        }
-        if (!(wrapper?.action(controlId, action, actionCallbackService) ?: false)) {
-            queueMessage(Message.Action(controlId, action))
-            binderDied()
-        }
-    }
+    fun maybeBindAndSendAction(controlId: String, action: ControlAction) =
+        invokeOrQueue(Action(controlId, action))
 
     /**
      * Starts the subscription to the [ControlsProviderService] and requests status of controls.
@@ -286,14 +241,14 @@
      * @param subscription the subscription to use to request controls
      * @see maybeBindAndLoad
      */
-    fun startSubscription(subscription: IControlsSubscription) {
+    fun startSubscription(subscription: IControlsSubscription, requestLimit: Long) {
         if (DEBUG) {
             Log.d(TAG, "startSubscription: $subscription")
         }
         synchronized(subscriptions) {
             subscriptions.add(subscription)
         }
-        wrapper?.request(subscription, MAX_CONTROLS_REQUEST)
+        wrapper?.request(subscription, requestLimit)
     }
 
     /**
@@ -316,7 +271,6 @@
      * Request bind to the service.
      */
     fun bindService() {
-        unqueueMessageType(MSG_UNBIND)
         bindService(true)
     }
 
@@ -350,21 +304,55 @@
     }
 
     /**
-     * Messages for the internal queue.
+     * Service methods that can be queued or invoked, and are retryable for failure scenarios
      */
-    sealed class Message {
-        abstract val type: Int
-        class Load(val subscriber: IControlsSubscriber.Stub) : Message() {
-            override val type = MSG_LOAD
+    abstract inner class ServiceMethod {
+        fun run() {
+            if (!callWrapper()) {
+                queueServiceMethod(this)
+                binderDied()
+            }
         }
-        object Unbind : Message() {
-            override val type = MSG_UNBIND
+
+        internal abstract fun callWrapper(): Boolean
+    }
+
+    inner class Load(val subscriber: IControlsSubscriber.Stub) : ServiceMethod() {
+        override fun callWrapper(): Boolean {
+            if (DEBUG) {
+                Log.d(TAG, "load $componentName")
+            }
+            return wrapper?.load(subscriber) ?: false
         }
-        class Subscribe(val list: List<String>, val subscriber: IControlsSubscriber) : Message() {
-            override val type = MSG_SUBSCRIBE
+    }
+
+    inner class Suggest(val subscriber: IControlsSubscriber.Stub) : ServiceMethod() {
+        override fun callWrapper(): Boolean {
+            if (DEBUG) {
+                Log.d(TAG, "suggest $componentName")
+            }
+            return wrapper?.loadSuggested(subscriber) ?: false
         }
-        class Action(val id: String, val action: ControlAction) : Message() {
-            override val type = MSG_ACTION
+    }
+    inner class Subscribe(
+        val list: List<String>,
+        val subscriber: IControlsSubscriber
+    ) : ServiceMethod() {
+        override fun callWrapper(): Boolean {
+            if (DEBUG) {
+                Log.d(TAG, "subscribe $componentName - $list")
+            }
+
+            return wrapper?.subscribe(list, subscriber) ?: false
+        }
+    }
+
+    inner class Action(val id: String, val action: ControlAction) : ServiceMethod() {
+        override fun callWrapper(): Boolean {
+            if (DEBUG) {
+                Log.d(TAG, "onAction $componentName - $id")
+            }
+            return wrapper?.action(id, action, actionCallbackService) ?: false
         }
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ServiceWrapper.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ServiceWrapper.kt
index b2afd3c..2c717f5 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ServiceWrapper.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ServiceWrapper.kt
@@ -50,6 +50,12 @@
         }
     }
 
+    fun loadSuggested(subscriber: IControlsSubscriber): Boolean {
+        return callThroughService {
+            service.loadSuggested(subscriber)
+        }
+    }
+
     fun subscribe(controlIds: List<String>, subscriber: IControlsSubscriber): Boolean {
         return callThroughService {
             service.subscribe(controlIds, subscriber)
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/StatefulControlSubscriber.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/StatefulControlSubscriber.kt
index a371aa6..e3eabff 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/StatefulControlSubscriber.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/StatefulControlSubscriber.kt
@@ -31,7 +31,8 @@
 class StatefulControlSubscriber(
     private val controller: ControlsController,
     private val provider: ControlsProviderLifecycleManager,
-    private val bgExecutor: DelayableExecutor
+    private val bgExecutor: DelayableExecutor,
+    private val requestLimit: Long
 ) : IControlsSubscriber.Stub() {
     private var subscriptionOpen = false
     private var subscription: IControlsSubscription? = null
@@ -50,7 +51,7 @@
         run(token) {
             subscriptionOpen = true
             subscription = subs
-            provider.startSubscription(subs)
+            provider.startSubscription(subs, requestLimit)
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/AllModel.kt b/packages/SystemUI/src/com/android/systemui/controls/management/AllModel.kt
index 01f9069..11181e5 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/AllModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/AllModel.kt
@@ -51,6 +51,7 @@
                 ControlInfo.Builder().apply {
                     controlId = it.controlId
                     controlTitle = it.title
+                    controlSubtitle = it.subtitle
                     deviceType = it.deviceType
                 }
             }
@@ -64,11 +65,18 @@
     override val elements: List<ElementWrapper> = createWrappers(controls)
 
     override fun changeFavoriteStatus(controlId: String, favorite: Boolean) {
+        val toChange = elements.firstOrNull {
+            it is ControlWrapper && it.controlStatus.control.controlId == controlId
+        } as ControlWrapper?
+        if (favorite == toChange?.controlStatus?.favorite) return
         if (favorite) {
             favoriteIds.add(controlId)
         } else {
             favoriteIds.remove(controlId)
         }
+        toChange?.let {
+            it.controlStatus.favorite = favorite
+        }
     }
 
     private fun createWrappers(list: List<ControlStatus>): List<ElementWrapper> {
@@ -120,4 +128,4 @@
             return removed
         }
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt
index 563c2f6..764fda0 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt
@@ -68,6 +68,8 @@
                             width = ViewGroup.LayoutParams.MATCH_PARENT
                         }
                         elevation = this@ControlAdapter.elevation
+                        background = parent.context.getDrawable(
+                                R.drawable.control_background_ripple)
                     }
                 ) { id, favorite ->
                     model?.changeFavoriteStatus(id, favorite)
@@ -137,10 +139,7 @@
     private val title: TextView = itemView.requireViewById(R.id.title)
     private val subtitle: TextView = itemView.requireViewById(R.id.subtitle)
     private val removed: TextView = itemView.requireViewById(R.id.status)
-    private val favorite: CheckBox = itemView.requireViewById<CheckBox>(R.id.favorite)
-    private val favoriteFrame: ViewGroup = itemView
-            .requireViewById<ViewGroup>(R.id.favorite_container)
-            .apply {
+    private val favorite: CheckBox = itemView.requireViewById<CheckBox>(R.id.favorite).apply {
         visibility = View.VISIBLE
     }
 
@@ -155,7 +154,7 @@
         favorite.setOnClickListener {
             favoriteCallback(data.control.controlId, favorite.isChecked)
         }
-        favoriteFrame.setOnClickListener { favorite.performClick() }
+        itemView.setOnClickListener { favorite.performClick() }
         applyRenderInfo(renderInfo)
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt
index 098caf6..0c41f7e 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt
@@ -84,8 +84,6 @@
 
         requireViewById<TextView>(R.id.title).text =
                 resources.getText(R.string.controls_providers_title)
-        requireViewById<TextView>(R.id.subtitle).text =
-                resources.getText(R.string.controls_providers_subtitle)
 
         requireViewById<Button>(R.id.done).setOnClickListener {
             this@ControlsProviderSelectorActivity.finishAffinity()
@@ -117,4 +115,4 @@
         currentUserTracker.stopTracking()
         super.onDestroy()
     }
-}
\ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsRequestDialog.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsRequestDialog.kt
index a7fc2ac8..9b8c036 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsRequestDialog.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsRequestDialog.kt
@@ -55,7 +55,7 @@
     private lateinit var control: Control
     private var dialog: Dialog? = null
     private val callback = object : ControlsListingController.ControlsListingCallback {
-        override fun onServicesUpdated(candidates: List<ControlsServiceInfo>) {}
+        override fun onServicesUpdated(serviceInfos: List<ControlsServiceInfo>) {}
     }
 
     private val currentUserTracker = object : CurrentUserTracker(broadcastDispatcher) {
@@ -169,8 +169,11 @@
 
     override fun onClick(dialog: DialogInterface?, which: Int) {
         if (which == Dialog.BUTTON_POSITIVE) {
-            controller.addFavorite(componentName, control.structure ?: "",
-                    ControlInfo(control.controlId, control.title, control.deviceType))
+            controller.addFavorite(
+                componentName,
+                control.structure ?: "",
+                ControlInfo(control.controlId, control.title, control.subtitle, control.deviceType)
+            )
         }
         finish()
     }
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ChallengeDialogs.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ChallengeDialogs.kt
index 2494fd1..a7a4103 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ChallengeDialogs.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ChallengeDialogs.kt
@@ -34,23 +34,29 @@
 
 /**
  * Creates all dialogs for challengeValues that can occur from a call to
- * {@link ControlsProviderService#performControlAction}. The types of challenge
- * responses are listed in {@link ControlAction.ResponseResult}.
+ * [ControlsProviderService#performControlAction]. The types of challenge responses are listed in
+ * [ControlAction.ResponseResult].
  */
 object ChallengeDialogs {
 
-    fun createPinDialog(cvh: ControlViewHolder): Dialog? {
+    private const val WINDOW_TYPE = WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY
+    private const val STYLE = android.R.style.Theme_DeviceDefault_Dialog_Alert
+
+    /**
+     * AlertDialogs to handle [ControlAction#RESPONSE_CHALLENGE_PIN] and
+     * [ControlAction#RESPONSE_CHALLENGE_PIN] responses, decided by the useAlphaNumeric
+     * parameter.
+     */
+    fun createPinDialog(cvh: ControlViewHolder, useAlphaNumeric: Boolean): Dialog? {
         val lastAction = cvh.lastAction
         if (lastAction == null) {
             Log.e(ControlsUiController.TAG,
                 "PIN Dialog attempted but no last action is set. Will not show")
             return null
         }
-        val builder = AlertDialog.Builder(
-            cvh.context,
-            android.R.style.Theme_DeviceDefault_Dialog_Alert
-        ).apply {
-            setTitle(R.string.controls_pin_verify)
+        val builder = AlertDialog.Builder(cvh.context, STYLE).apply {
+            val res = cvh.context.resources
+            setTitle(res.getString(R.string.controls_pin_verify, cvh.title.getText()))
             setView(R.layout.controls_dialog_pin)
             setPositiveButton(
                 android.R.string.ok,
@@ -70,25 +76,64 @@
         }
         return builder.create().apply {
             getWindow().apply {
-                setType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY)
+                setType(WINDOW_TYPE)
                 setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
             }
             setOnShowListener(DialogInterface.OnShowListener { _ ->
                 val editText = requireViewById<EditText>(R.id.controls_pin_input)
-                requireViewById<CheckBox>(R.id.controls_pin_use_alpha).setOnClickListener { v ->
-                    if ((v as CheckBox).isChecked) {
-                        editText.setInputType(
-                            InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD)
-                    } else {
-                        editText.setInputType(
-                            InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_VARIATION_PASSWORD)
-                    }
+                val useAlphaCheckBox = requireViewById<CheckBox>(R.id.controls_pin_use_alpha)
+                useAlphaCheckBox.setChecked(useAlphaNumeric)
+                setInputType(editText, useAlphaCheckBox.isChecked())
+                requireViewById<CheckBox>(R.id.controls_pin_use_alpha).setOnClickListener { _ ->
+                    setInputType(editText, useAlphaCheckBox.isChecked())
                 }
                 editText.requestFocus()
             })
         }
     }
 
+    /**
+     * AlertDialogs to handle [ControlAction#RESPONSE_CHALLENGE_ACK] response type.
+     */
+    fun createConfirmationDialog(cvh: ControlViewHolder): Dialog? {
+        val lastAction = cvh.lastAction
+        if (lastAction == null) {
+            Log.e(ControlsUiController.TAG,
+                "Confirmation Dialog attempted but no last action is set. Will not show")
+            return null
+        }
+        val builder = AlertDialog.Builder(cvh.context, STYLE).apply {
+            val res = cvh.context.resources
+            setMessage(res.getString(
+                R.string.controls_confirmation_message, cvh.title.getText()))
+            setPositiveButton(
+                android.R.string.ok,
+                DialogInterface.OnClickListener { dialog, _ ->
+                    cvh.action(addChallengeValue(lastAction, "true"))
+                    dialog.dismiss()
+            })
+            setNegativeButton(
+                android.R.string.cancel,
+                DialogInterface.OnClickListener { dialog, _ -> dialog.cancel() }
+            )
+        }
+        return builder.create().apply {
+            getWindow().apply {
+                setType(WINDOW_TYPE)
+            }
+        }
+    }
+
+    private fun setInputType(editText: EditText, useTextInput: Boolean) {
+        if (useTextInput) {
+            editText.setInputType(
+                InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD)
+        } else {
+            editText.setInputType(
+                InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_VARIATION_PASSWORD)
+        }
+    }
+
     private fun addChallengeValue(action: ControlAction, challengeValue: String): ControlAction {
         val id = action.getTemplateId()
         return when (action) {
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt
index b439206..7d3a860 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt
@@ -21,6 +21,7 @@
 import android.graphics.drawable.GradientDrawable
 import android.graphics.drawable.LayerDrawable
 import android.service.controls.Control
+import android.service.controls.DeviceTypes
 import android.service.controls.actions.ControlAction
 import android.service.controls.templates.ControlTemplate
 import android.service.controls.templates.StatelessTemplate
@@ -77,7 +78,7 @@
             Pair(it.getStatus(), it.getControlTemplate())
         } ?: run {
             title.setText(cws.ci.controlTitle)
-            subtitle.setText("")
+            subtitle.setText(cws.ci.controlSubtitle)
             Pair(Control.STATUS_UNKNOWN, ControlTemplate.NO_TEMPLATE)
         }
 
@@ -156,7 +157,11 @@
         statusExtra.setTextColor(fg)
 
         icon.setImageDrawable(ri.icon)
-        icon.setImageTintList(fg)
+
+        // do not color app icons
+        if (deviceType != DeviceTypes.TYPE_ROUTINE) {
+            icon.setImageTintList(fg)
+        }
 
         (clipLayer.getDrawable() as GradientDrawable).apply {
             setColor(context.getResources().getColor(bg, context.getTheme()))
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt
index 138cd47..05a0c45 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt
@@ -29,6 +29,7 @@
 import android.view.ContextThemeWrapper
 import android.view.LayoutInflater
 import android.view.View
+import android.view.View.MeasureSpec
 import android.view.ViewGroup
 import android.view.WindowManager
 import android.widget.AdapterView
@@ -52,6 +53,7 @@
 import dagger.Lazy
 
 import java.text.Collator
+import java.util.function.Consumer
 
 import javax.inject.Inject
 import javax.inject.Singleton
@@ -89,6 +91,7 @@
     private var popup: ListPopupWindow? = null
     private var activeDialog: Dialog? = null
     private val addControlsItem: SelectionItem
+    private var hidden = true
 
     init {
         val addDrawable = context.getDrawable(R.drawable.ic_add).apply {
@@ -134,11 +137,15 @@
     override fun show(parent: ViewGroup) {
         Log.d(ControlsUiController.TAG, "show()")
         this.parent = parent
+        hidden = false
 
         allStructures = controlsController.get().getFavorites()
         selectedStructure = loadPreference(allStructures)
 
-        if (selectedStructure.controls.isEmpty() && allStructures.size <= 1) {
+        val cb = Consumer<Boolean> { _ -> reload(parent) }
+        if (controlsController.get().addSeedingFavoritesCallback(cb)) {
+            listingCallback = createCallback(::showSeedingView)
+        } else if (selectedStructure.controls.isEmpty() && allStructures.size <= 1) {
             // only show initial view if there are really no favorites across any structure
             listingCallback = createCallback(::showInitialSetupView)
         } else {
@@ -154,6 +161,20 @@
         controlsListingController.get().addCallback(listingCallback)
     }
 
+    private fun reload(parent: ViewGroup) {
+        if (hidden) return
+        show(parent)
+    }
+
+    private fun showSeedingView(items: List<SelectionItem>) {
+        parent.removeAllViews()
+
+        val inflater = LayoutInflater.from(context)
+        inflater.inflate(R.layout.controls_no_favorites, parent, true)
+        val subtitle = parent.requireViewById<TextView>(R.id.controls_subtitle)
+        subtitle.setText(context.resources.getString(R.string.controls_seeding_in_progress))
+    }
+
     private fun showInitialSetupView(items: List<SelectionItem>) {
         parent.removeAllViews()
 
@@ -163,6 +184,9 @@
         val viewGroup = parent.requireViewById(R.id.controls_no_favorites_group) as ViewGroup
         viewGroup.setOnClickListener(launchSelectorActivityListener(context))
 
+        val subtitle = parent.requireViewById<TextView>(R.id.controls_subtitle)
+        subtitle.setText(context.resources.getString(R.string.quick_controls_subtitle))
+
         val iconRowGroup = parent.requireViewById(R.id.controls_icon_row) as ViewGroup
         items.forEach {
             val imageView = inflater.inflate(R.layout.controls_icon, viewGroup, false) as ImageView
@@ -190,6 +214,63 @@
 
         createListView()
         createDropDown(items)
+        createMenu()
+    }
+
+    private fun createPopup(): ListPopupWindow {
+        return ListPopupWindow(
+            ContextThemeWrapper(context, R.style.Control_ListPopupWindow)).apply {
+            setWindowLayoutType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY)
+            setModal(true)
+        }
+    }
+
+    private fun createMenu() {
+        val items = arrayOf(
+            context.resources.getString(R.string.controls_menu_add)
+        )
+        var adapter = ArrayAdapter<String>(context, R.layout.controls_more_item, items)
+
+        val anchor = parent.requireViewById<ImageView>(R.id.controls_more)
+        anchor.setOnClickListener(object : View.OnClickListener {
+            override fun onClick(v: View) {
+                popup = createPopup().apply {
+                    setAnchorView(anchor)
+                    setAdapter(adapter)
+                    setOnItemClickListener(object : AdapterView.OnItemClickListener {
+                        override fun onItemClick(
+                            parent: AdapterView<*>,
+                            view: View,
+                            pos: Int,
+                            id: Long
+                        ) {
+                            when (pos) {
+                                // 0: Add Control
+                                0 -> launchSelectorActivityListener(view.context)(parent)
+                                else -> Log.w(ControlsUiController.TAG,
+                                    "Unsupported index ($pos) on 'more' menu selection")
+                            }
+                            dismiss()
+                        }
+                    })
+                    // need to call show() first in order to construct the listView
+                    show()
+                    var width = 0
+                    getListView()?.apply {
+                        // width should be between [.5, .9] of screen
+                        val parentWidth = this@ControlsUiControllerImpl.parent.getWidth()
+                        val widthSpec = MeasureSpec.makeMeasureSpec(
+                            (parentWidth * 0.9).toInt(), MeasureSpec.AT_MOST)
+                        val child = adapter.getView(0, null, this)
+                        child.measure(widthSpec, MeasureSpec.UNSPECIFIED)
+                        width = Math.max(child.getMeasuredWidth(), (parentWidth * 0.5).toInt())
+                    }
+                    setWidth(width)
+                    setHorizontalOffset(-width + anchor.getWidth())
+                    show()
+                }
+            }
+        })
     }
 
     private fun createDropDown(items: List<SelectionItem>) {
@@ -204,7 +285,7 @@
         val selectionItem = findSelectionItem(selectedStructure, itemsWithStructure) ?: items[0]
 
         var adapter = ItemAdapter(context, R.layout.controls_spinner_item).apply {
-            addAll(itemsWithStructure + addControlsItem)
+            addAll(itemsWithStructure)
         }
 
         /*
@@ -212,7 +293,7 @@
          * for this dialog. Use a textView with the ListPopupWindow to achieve
          * a similar effect
          */
-        parent.requireViewById<TextView>(R.id.app_or_structure_spinner).apply {
+        val spinner = parent.requireViewById<TextView>(R.id.app_or_structure_spinner).apply {
             setText(selectionItem.getTitle())
             // override the default color on the dropdown drawable
             (getBackground() as LayerDrawable).getDrawable(1)
@@ -222,16 +303,18 @@
             setContentDescription(selectionItem.getTitle())
             setImageDrawable(selectionItem.icon)
         }
+
+        if (itemsWithStructure.size == 1) {
+            spinner.setBackground(null)
+            return
+        }
+
         val anchor = parent.requireViewById<ViewGroup>(R.id.controls_header)
         anchor.setOnClickListener(object : View.OnClickListener {
             override fun onClick(v: View) {
-                popup = ListPopupWindow(
-                    ContextThemeWrapper(context, R.style.Control_ListPopupWindow))
-                popup?.apply {
-                    setWindowLayoutType(WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY)
+                popup = createPopup().apply {
                     setAnchorView(anchor)
                     setAdapter(adapter)
-                    setModal(true)
                     setOnItemClickListener(object : AdapterView.OnItemClickListener {
                         override fun onItemClick(
                             parent: AdapterView<*>,
@@ -309,24 +392,21 @@
     }
 
     private fun switchAppOrStructure(item: SelectionItem) {
-        if (item == addControlsItem) {
-            launchSelectorActivityListener(context)(parent)
-        } else {
-            val newSelection = allStructures.first {
-                it.structure == item.structure && it.componentName == item.componentName
-            }
+        val newSelection = allStructures.first {
+            it.structure == item.structure && it.componentName == item.componentName
+        }
 
-            if (newSelection != selectedStructure) {
-                selectedStructure = newSelection
-                updatePreferences(selectedStructure)
-                controlsListingController.get().removeCallback(listingCallback)
-                show(parent)
-            }
+        if (newSelection != selectedStructure) {
+            selectedStructure = newSelection
+            updatePreferences(selectedStructure)
+            controlsListingController.get().removeCallback(listingCallback)
+            reload(parent)
         }
     }
 
     override fun hide() {
         Log.d(ControlsUiController.TAG, "hide()")
+        hidden = true
         popup?.dismiss()
         activeDialog?.dismiss()
 
@@ -362,7 +442,15 @@
             controlViewsById.get(key)?.let { cvh ->
                 when (response) {
                     ControlAction.RESPONSE_CHALLENGE_PIN -> {
-                        activeDialog = ChallengeDialogs.createPinDialog(cvh)
+                        activeDialog = ChallengeDialogs.createPinDialog(cvh, false)
+                        activeDialog?.show()
+                    }
+                    ControlAction.RESPONSE_CHALLENGE_PASSPHRASE -> {
+                        activeDialog = ChallengeDialogs.createPinDialog(cvh, true)
+                        activeDialog?.show()
+                    }
+                    ControlAction.RESPONSE_CHALLENGE_ACK -> {
+                        activeDialog = ChallengeDialogs.createConfirmationDialog(cvh)
                         activeDialog?.show()
                     }
                     else -> cvh.actionResponse(response)
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/RenderInfo.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/RenderInfo.kt
index 27e4649..d33cd94 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/RenderInfo.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/RenderInfo.kt
@@ -64,7 +64,7 @@
 
             val iconState = deviceIconMap.getValue(iconKey)
             val resourceId = iconState[enabled]
-            var icon: Drawable? = null
+            var icon: Drawable?
             if (resourceId == APP_ICON_ID) {
                 icon = appIconMap.get(componentName)
                 if (icon == null) {
@@ -110,60 +110,160 @@
 
 private val deviceIconMap = mapOf<Int, IconState>(
     THERMOSTAT_RANGE to IconState(
-        R.drawable.ic_device_thermostat_gm2_24px,
-        R.drawable.ic_device_thermostat_gm2_24px
+        R.drawable.ic_device_thermostat_off,
+        R.drawable.ic_device_thermostat_on
     ),
     (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_OFF) to IconState(
-        R.drawable.ic_device_thermostat_gm2_24px,
-        R.drawable.ic_device_thermostat_gm2_24px
+        R.drawable.ic_device_thermostat_off,
+        R.drawable.ic_device_thermostat_on
     ),
     (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_HEAT) to IconState(
-        R.drawable.ic_device_thermostat_gm2_24px,
-        R.drawable.ic_device_thermostat_gm2_24px
+        R.drawable.ic_device_thermostat_off,
+        R.drawable.ic_device_thermostat_on
     ),
     (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_COOL) to IconState(
-        R.drawable.ic_device_thermostat_gm2_24px,
-        R.drawable.ic_device_thermostat_gm2_24px
+        R.drawable.ic_device_thermostat_off,
+        R.drawable.ic_device_thermostat_on
     ),
     (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_HEAT_COOL) to IconState(
-        R.drawable.ic_device_thermostat_gm2_24px,
-        R.drawable.ic_device_thermostat_gm2_24px
+        R.drawable.ic_device_thermostat_off,
+        R.drawable.ic_device_thermostat_on
     ),
     (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_ECO) to IconState(
-        R.drawable.ic_device_thermostat_gm2_24px,
-        R.drawable.ic_device_thermostat_gm2_24px
+        R.drawable.ic_device_thermostat_off,
+        R.drawable.ic_device_thermostat_on
     ),
     DeviceTypes.TYPE_THERMOSTAT to IconState(
-        R.drawable.ic_device_thermostat_gm2_24px,
-        R.drawable.ic_device_thermostat_gm2_24px
+        R.drawable.ic_device_thermostat_off,
+        R.drawable.ic_device_thermostat_on
     ),
     DeviceTypes.TYPE_LIGHT to IconState(
-        R.drawable.ic_light_off_gm2_24px,
-        R.drawable.ic_lightbulb_outline_gm2_24px
+        R.drawable.ic_device_light_off,
+        R.drawable.ic_device_light_on
     ),
     DeviceTypes.TYPE_CAMERA to IconState(
-        R.drawable.ic_videocam_gm2_24px,
-        R.drawable.ic_videocam_gm2_24px
+        R.drawable.ic_device_camera_off,
+        R.drawable.ic_device_camera_on
     ),
     DeviceTypes.TYPE_LOCK to IconState(
-        R.drawable.ic_lock_open_gm2_24px,
-        R.drawable.ic_lock_gm2_24px
+        R.drawable.ic_device_lock_off,
+        R.drawable.ic_device_lock_on
     ),
     DeviceTypes.TYPE_SWITCH to IconState(
-        R.drawable.ic_switches_gm2_24px,
-        R.drawable.ic_switches_gm2_24px
+        R.drawable.ic_device_switch_off,
+        R.drawable.ic_device_switch_on
     ),
     DeviceTypes.TYPE_OUTLET to IconState(
-        R.drawable.ic_power_off_gm2_24px,
-        R.drawable.ic_power_gm2_24px
+        R.drawable.ic_device_outlet_off,
+        R.drawable.ic_device_outlet_on
     ),
     DeviceTypes.TYPE_VACUUM to IconState(
-        R.drawable.ic_vacuum_gm2_24px,
-        R.drawable.ic_vacuum_gm2_24px
+        R.drawable.ic_device_vacuum_off,
+        R.drawable.ic_device_vacuum_on
     ),
     DeviceTypes.TYPE_MOP to IconState(
-        R.drawable.ic_vacuum_gm2_24px,
-        R.drawable.ic_vacuum_gm2_24px
+        R.drawable.ic_device_mop_off,
+        R.drawable.ic_device_mop_on
+    ),
+    DeviceTypes.TYPE_AIR_FRESHENER to IconState(
+        R.drawable.ic_device_air_freshener_off,
+        R.drawable.ic_device_air_freshener_on
+    ),
+    DeviceTypes.TYPE_AIR_PURIFIER to IconState(
+        R.drawable.ic_device_air_purifier_off,
+        R.drawable.ic_device_air_purifier_on
+    ),
+    DeviceTypes.TYPE_FAN to IconState(
+        R.drawable.ic_device_fan_off,
+        R.drawable.ic_device_fan_on
+    ),
+    DeviceTypes.TYPE_HOOD to IconState(
+        R.drawable.ic_device_hood_off,
+        R.drawable.ic_device_hood_on
+    ),
+    DeviceTypes.TYPE_KETTLE to IconState(
+        R.drawable.ic_device_kettle_off,
+        R.drawable.ic_device_kettle_on
+    ),
+    DeviceTypes.TYPE_MICROWAVE to IconState(
+        R.drawable.ic_device_microwave_off,
+        R.drawable.ic_device_microwave_on
+    ),
+    DeviceTypes.TYPE_REMOTE_CONTROL to IconState(
+        R.drawable.ic_device_remote_control_off,
+        R.drawable.ic_device_remote_control_on
+    ),
+    DeviceTypes.TYPE_SET_TOP to IconState(
+        R.drawable.ic_device_set_top_off,
+        R.drawable.ic_device_set_top_on
+    ),
+    DeviceTypes.TYPE_STYLER to IconState(
+        R.drawable.ic_device_styler_off,
+        R.drawable.ic_device_styler_on
+    ),
+    DeviceTypes.TYPE_TV to IconState(
+        R.drawable.ic_device_tv_off,
+        R.drawable.ic_device_tv_on
+    ),
+    DeviceTypes.TYPE_WATER_HEATER to IconState(
+        R.drawable.ic_device_water_heater_off,
+        R.drawable.ic_device_water_heater_on
+    ),
+    DeviceTypes.TYPE_DISHWASHER to IconState(
+        R.drawable.ic_device_dishwasher_off,
+        R.drawable.ic_device_dishwasher_on
+    ),
+    DeviceTypes.TYPE_MULTICOOKER to IconState(
+        R.drawable.ic_device_multicooker_off,
+        R.drawable.ic_device_multicooker_on
+    ),
+    DeviceTypes.TYPE_SPRINKLER to IconState(
+        R.drawable.ic_device_sprinkler_off,
+        R.drawable.ic_device_sprinkler_on
+    ),
+    DeviceTypes.TYPE_WASHER to IconState(
+        R.drawable.ic_device_washer_off,
+        R.drawable.ic_device_washer_on
+    ),
+    DeviceTypes.TYPE_BLINDS to IconState(
+        R.drawable.ic_device_blinds_off,
+        R.drawable.ic_device_blinds_on
+    ),
+    DeviceTypes.TYPE_DRAWER to IconState(
+        R.drawable.ic_device_drawer_off,
+        R.drawable.ic_device_drawer_on
+    ),
+    DeviceTypes.TYPE_GARAGE to IconState(
+        R.drawable.ic_device_garage_off,
+        R.drawable.ic_device_garage_on
+    ),
+    DeviceTypes.TYPE_GATE to IconState(
+        R.drawable.ic_device_gate_off,
+        R.drawable.ic_device_gate_on
+    ),
+    DeviceTypes.TYPE_PERGOLA to IconState(
+        R.drawable.ic_device_pergola_off,
+        R.drawable.ic_device_pergola_on
+    ),
+    DeviceTypes.TYPE_WINDOW to IconState(
+        R.drawable.ic_device_window_off,
+        R.drawable.ic_device_window_on
+    ),
+    DeviceTypes.TYPE_VALVE to IconState(
+        R.drawable.ic_device_valve_off,
+        R.drawable.ic_device_valve_on
+    ),
+    DeviceTypes.TYPE_SECURITY_SYSTEM to IconState(
+        R.drawable.ic_device_security_system_off,
+        R.drawable.ic_device_security_system_on
+    ),
+    DeviceTypes.TYPE_REFRIGERATOR to IconState(
+        R.drawable.ic_device_refrigerator_off,
+        R.drawable.ic_device_refrigerator_on
+    ),
+    DeviceTypes.TYPE_DOORBELL to IconState(
+        R.drawable.ic_device_doorbell_off,
+        R.drawable.ic_device_doorbell_on
     ),
     DeviceTypes.TYPE_ROUTINE to IconState(
         RenderInfo.APP_ICON_ID,
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ToggleRangeBehavior.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ToggleRangeBehavior.kt
index c495c58..f79c8b2 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ToggleRangeBehavior.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ToggleRangeBehavior.kt
@@ -64,12 +64,13 @@
 
         val gestureListener = ToggleRangeGestureListener(cvh.layout)
         val gestureDetector = GestureDetector(context, gestureListener)
-        cvh.layout.setOnTouchListener { _: View, e: MotionEvent ->
+        cvh.layout.setOnTouchListener { v: View, e: MotionEvent ->
             if (gestureDetector.onTouchEvent(e)) {
                 return@setOnTouchListener true
             }
 
             if (e.getAction() == MotionEvent.ACTION_UP && gestureListener.isDragging) {
+                v.getParent().requestDisallowInterceptTouchEvent(false)
                 gestureListener.isDragging = false
                 endUpdateRange()
                 return@setOnTouchListener true
@@ -254,6 +255,7 @@
             yDiff: Float
         ): Boolean {
             if (!isDragging) {
+                v.getParent().requestDisallowInterceptTouchEvent(true)
                 this@ToggleRangeBehavior.beginUpdateRange()
                 isDragging = true
             }
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemServicesModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemServicesModule.java
index 364babb..5911805 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemServicesModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemServicesModule.java
@@ -32,6 +32,7 @@
 import android.content.pm.IPackageManager;
 import android.content.pm.LauncherApps;
 import android.content.pm.PackageManager;
+import android.content.pm.ShortcutManager;
 import android.content.res.Resources;
 import android.hardware.SensorPrivacyManager;
 import android.media.AudioManager;
@@ -139,6 +140,12 @@
                 ServiceManager.checkService(DreamService.DREAM_SERVICE));
     }
 
+    @Provides
+    @Singleton
+    static IPackageManager provideIPackageManager() {
+        return IPackageManager.Stub.asInterface(ServiceManager.getService("package"));
+    }
+
     @Singleton
     @Provides
     static IStatusBarService provideIStatusBarService() {
@@ -159,13 +166,6 @@
         return WindowManagerGlobal.getWindowManagerService();
     }
 
-    /** */
-    @Singleton
-    @Provides
-    public IPackageManager provideIPackageManager() {
-        return IPackageManager.Stub.asInterface(ServiceManager.getService("package"));
-    }
-
     @Singleton
     @Provides
     static KeyguardManager provideKeyguardManager(Context context) {
@@ -230,6 +230,12 @@
         return context.getSystemService(SensorPrivacyManager.class);
     }
 
+    @Singleton
+    @Provides
+    static ShortcutManager provideShortcutManager(Context context) {
+        return context.getSystemService(ShortcutManager.class);
+    }
+
     @Provides
     @Singleton
     @Nullable
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java
index e50f1fb..9153593 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java
@@ -92,7 +92,7 @@
         final boolean pulseEnding = oldState == DOZE_PULSE_DONE && newState.isAlwaysOn();
         final boolean turningOn = (oldState == DOZE_AOD_PAUSED || oldState == DOZE)
                 && newState.isAlwaysOn();
-        final boolean turningOff = (newState.isAlwaysOn() && newState == DOZE)
+        final boolean turningOff = (oldState.isAlwaysOn() && newState == DOZE)
                 || (oldState == DOZE_AOD_PAUSING && newState == DOZE_AOD_PAUSED);
         final boolean justInitialized = oldState == DozeMachine.State.INITIALIZED;
         if (messagePending || justInitialized || pulseEnding || turningOn) {
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
index 09d7d26..b329991 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
@@ -490,6 +490,9 @@
         public void onPowerSaveChanged(boolean active) {
             if (mDozeHost.isPowerSaveActive()) {
                 mMachine.requestState(DozeMachine.State.DOZE);
+            } else if (mMachine.getState() == DozeMachine.State.DOZE
+                    && mConfig.alwaysOnEnabled(UserHandle.USER_CURRENT)) {
+                mMachine.requestState(DozeMachine.State.DOZE_AOD);
             }
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
index b99d765..6514ca4 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
@@ -31,11 +31,13 @@
 import android.app.admin.DevicePolicyManager;
 import android.app.trust.TrustManager;
 import android.content.BroadcastReceiver;
+import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.SharedPreferences;
 import android.content.pm.UserInfo;
 import android.content.res.Resources;
 import android.database.ContentObserver;
@@ -92,6 +94,8 @@
 import com.android.systemui.MultiListLayout.MultiListAdapter;
 import com.android.systemui.broadcast.BroadcastDispatcher;
 import com.android.systemui.colorextraction.SysuiColorExtractor;
+import com.android.systemui.controls.ControlsServiceInfo;
+import com.android.systemui.controls.controller.ControlsController;
 import com.android.systemui.controls.management.ControlsListingController;
 import com.android.systemui.controls.ui.ControlsUiController;
 import com.android.systemui.dagger.qualifiers.Background;
@@ -148,6 +152,9 @@
     private static final String GLOBAL_ACTION_KEY_EMERGENCY = "emergency";
     private static final String GLOBAL_ACTION_KEY_SCREENSHOT = "screenshot";
 
+    private static final String PREFS_CONTROLS_SEEDING_COMPLETED = "ControlsSeedingCompleted";
+    private static final String PREFS_CONTROLS_FILE = "controls_prefs";
+
     private final Context mContext;
     private final GlobalActionsManager mWindowManagerFuncs;
     private final AudioManager mAudioManager;
@@ -215,7 +222,8 @@
             NotificationShadeWindowController notificationShadeWindowController,
             ControlsUiController controlsUiController, IWindowManager iWindowManager,
             @Background Executor backgroundExecutor,
-            ControlsListingController controlsListingController) {
+            ControlsListingController controlsListingController,
+            ControlsController controlsController) {
         mContext = new ContextThemeWrapper(context, com.android.systemui.R.style.qs_theme);
         mWindowManagerFuncs = windowManagerFuncs;
         mAudioManager = audioManager;
@@ -279,9 +287,46 @@
             }
         });
 
-        mControlsListingController.addCallback(list -> mAnyControlsProviders = !list.isEmpty());
+        String preferredControlsPackage = mContext.getResources()
+                .getString(com.android.systemui.R.string.config_controlsPreferredPackage);
+        mControlsListingController.addCallback(list -> {
+            mAnyControlsProviders = !list.isEmpty();
+
+            /*
+             * See if any service providers match the preferred component. If they do,
+             * and there are no current favorites, and we haven't successfully loaded favorites to
+             * date, query the preferred component for a limited number of suggested controls.
+             */
+            ComponentName preferredComponent = null;
+            for (ControlsServiceInfo info : list) {
+                if (info.componentName.getPackageName().equals(preferredControlsPackage)) {
+                    preferredComponent = info.componentName;
+                    break;
+                }
+            }
+
+            if (preferredComponent == null) return;
+
+            SharedPreferences prefs = context.getSharedPreferences(PREFS_CONTROLS_FILE,
+                    Context.MODE_PRIVATE);
+            boolean isSeeded = prefs.getBoolean(PREFS_CONTROLS_SEEDING_COMPLETED, false);
+            boolean hasFavorites = controlsController.getFavorites().size() > 0;
+            if (!isSeeded && !hasFavorites) {
+                controlsController.seedFavoritesForComponent(
+                        preferredComponent,
+                        (accepted) -> {
+                            Log.i(TAG, "Controls seeded: " + accepted);
+                            prefs.edit().putBoolean(PREFS_CONTROLS_SEEDING_COMPLETED,
+                                    accepted).apply();
+                        }
+                );
+            }
+        });
     }
 
+
+
+
     /**
      * Show the global actions dialog (creating if necessary)
      *
@@ -1804,7 +1849,7 @@
                     .alpha(1)
                     .translationX(0)
                     .translationY(0)
-                    .setDuration(300)
+                    .setDuration(450)
                     .setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
                     .setUpdateListener(animation -> {
                         float animatedValue = animation.getAnimatedFraction();
@@ -1833,7 +1878,7 @@
                     .alpha(0)
                     .translationX(mGlobalActionsLayout.getAnimationOffsetX())
                     .translationY(mGlobalActionsLayout.getAnimationOffsetY())
-                    .setDuration(300)
+                    .setDuration(550)
                     .withEndAction(this::completeDismiss)
                     .setInterpolator(new LogAccelerateInterpolator())
                     .setUpdateListener(animation -> {
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java
index 12955a1..ce29859 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java
@@ -49,8 +49,6 @@
 
 public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks {
 
-    private static final float SHUTDOWN_SCRIM_ALPHA = 0.95f;
-
     private final Context mContext;
     private final Lazy<GlobalActionsDialog> mGlobalActionsDialogLazy;
     private final KeyguardStateController mKeyguardStateController;
@@ -124,7 +122,7 @@
                         | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
                         | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
         window.setBackgroundDrawable(background);
-        window.setWindowAnimations(R.style.Animation_Toast);
+        window.setWindowAnimations(com.android.systemui.R.style.Animation_ShutdownUi);
 
         d.setContentView(R.layout.shutdown_dialog);
         d.setCancelable(false);
@@ -153,7 +151,9 @@
             mBlurUtils.applyBlur(d.getWindow().getDecorView().getViewRootImpl(),
                         mBlurUtils.blurRadiusOfRatio(1));
         } else {
-            background.setAlpha((int) (SHUTDOWN_SCRIM_ALPHA * 255));
+            float backgroundAlpha = mContext.getResources().getFloat(
+                    com.android.systemui.R.dimen.shutdown_scrim_behind_alpha);
+            background.setAlpha((int) (backgroundAlpha * 255));
         }
 
         d.show();
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
index 2cc3d9e..96494cf 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardSliceProvider.java
@@ -305,7 +305,8 @@
                 oldInstance.onDestroy();
             }
             mDatePattern = getContext().getString(R.string.system_ui_aod_date_pattern);
-            mPendingIntent = PendingIntent.getActivity(getContext(), 0, new Intent(), 0);
+            mPendingIntent = PendingIntent.getActivity(getContext(), 0,
+                    new Intent(getContext(), KeyguardSliceProvider.class), 0);
             mMediaManager.addCallback(this);
             mStatusBarStateController.addCallback(this);
             mNextAlarmController.addCallback(this);
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipAnimationController.java b/packages/SystemUI/src/com/android/systemui/pip/PipAnimationController.java
index 4bfcf22..232c23d 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/PipAnimationController.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/PipAnimationController.java
@@ -110,10 +110,6 @@
         return mCurrentAnimator;
     }
 
-    PipTransitionAnimator getCurrentAnimator() {
-        return mCurrentAnimator;
-    }
-
     private PipTransitionAnimator setupPipTransitionAnimator(PipTransitionAnimator animator) {
         animator.setSurfaceTransactionHelper(mSurfaceTransactionHelper);
         animator.setInterpolator(mFastOutSlowInInterpolator);
@@ -178,7 +174,7 @@
         @Override
         public void onAnimationStart(Animator animation) {
             mCurrentValue = mStartValue;
-            applySurfaceControlTransaction(mLeash, newSurfaceControlTransaction(), FRACTION_START);
+            onStartTransaction(mLeash, newSurfaceControlTransaction());
             if (mPipAnimationCallback != null) {
                 mPipAnimationCallback.onPipAnimationStart(this);
             }
@@ -194,7 +190,7 @@
         public void onAnimationEnd(Animator animation) {
             mCurrentValue = mEndValue;
             final SurfaceControl.Transaction tx = newSurfaceControlTransaction();
-            applySurfaceControlTransaction(mLeash, tx, FRACTION_END);
+            onEndTransaction(mLeash, tx);
             if (mPipAnimationCallback != null) {
                 mPipAnimationCallback.onPipAnimationEnd(tx, this);
             }
@@ -253,6 +249,13 @@
             return mTransitionDirection != TRANSITION_DIRECTION_TO_FULLSCREEN;
         }
 
+        boolean inScaleTransition() {
+            if (mAnimationType != ANIM_TYPE_BOUNDS) return false;
+            final int direction = getTransitionDirection();
+            return direction != TRANSITION_DIRECTION_TO_FULLSCREEN
+                    && direction != TRANSITION_DIRECTION_TO_PIP;
+        }
+
         /**
          * Updates the {@link #mEndValue}.
          *
@@ -284,6 +287,10 @@
             mSurfaceTransactionHelper = helper;
         }
 
+        void onStartTransaction(SurfaceControl leash, SurfaceControl.Transaction tx) {}
+
+        void onEndTransaction(SurfaceControl leash, SurfaceControl.Transaction tx) {}
+
         abstract void applySurfaceControlTransaction(SurfaceControl leash,
                 SurfaceControl.Transaction tx, float fraction);
 
@@ -297,11 +304,14 @@
                     final float alpha = getStartValue() * (1 - fraction) + getEndValue() * fraction;
                     setCurrentValue(alpha);
                     getSurfaceTransactionHelper().alpha(tx, leash, alpha);
-                    if (Float.compare(fraction, FRACTION_START) == 0) {
-                        getSurfaceTransactionHelper()
-                                .crop(tx, leash, getDestinationBounds())
-                                .round(tx, leash, shouldApplyCornerRadius());
-                    }
+                    tx.apply();
+                }
+
+                @Override
+                void onStartTransaction(SurfaceControl leash, SurfaceControl.Transaction tx) {
+                    getSurfaceTransactionHelper()
+                            .crop(tx, leash, getDestinationBounds())
+                            .round(tx, leash, shouldApplyCornerRadius());
                     tx.apply();
                 }
             };
@@ -329,15 +339,30 @@
                             getCastedFractionValue(start.right, end.right, fraction),
                             getCastedFractionValue(start.bottom, end.bottom, fraction));
                     setCurrentValue(mTmpRect);
-                    getSurfaceTransactionHelper().crop(tx, leash, mTmpRect);
-                    if (Float.compare(fraction, FRACTION_START) == 0) {
-                        // Ensure the start condition
-                        getSurfaceTransactionHelper()
-                                .alpha(tx, leash, 1f)
-                                .round(tx, leash, shouldApplyCornerRadius());
+                    if (inScaleTransition()) {
+                        getSurfaceTransactionHelper().scale(tx, leash, start, mTmpRect);
+                    } else {
+                        getSurfaceTransactionHelper().crop(tx, leash, mTmpRect);
                     }
                     tx.apply();
                 }
+
+                @Override
+                void onStartTransaction(SurfaceControl leash, SurfaceControl.Transaction tx) {
+                    getSurfaceTransactionHelper()
+                            .alpha(tx, leash, 1f)
+                            .round(tx, leash, shouldApplyCornerRadius());
+                    tx.apply();
+                }
+
+                @Override
+                void onEndTransaction(SurfaceControl leash, SurfaceControl.Transaction tx) {
+                    if (!inScaleTransition()) return;
+                    // NOTE: intentionally does not apply the transaction here.
+                    // this end transaction should get executed synchronously with the final
+                    // WindowContainerTransaction in task organizer
+                    getSurfaceTransactionHelper().resetScale(tx, leash, getDestinationBounds());
+                }
             };
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipBoundsHandler.java b/packages/SystemUI/src/com/android/systemui/pip/PipBoundsHandler.java
index 8be2502..4969fc8 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/PipBoundsHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/PipBoundsHandler.java
@@ -37,8 +37,8 @@
 import android.view.DisplayInfo;
 import android.view.Gravity;
 import android.view.IWindowManager;
-import android.view.WindowContainerTransaction;
 import android.view.WindowManagerGlobal;
+import android.window.WindowContainerTransaction;
 
 import java.io.PrintWriter;
 
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipSurfaceTransactionHelper.java b/packages/SystemUI/src/com/android/systemui/pip/PipSurfaceTransactionHelper.java
index 21f9301..8001e49 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/PipSurfaceTransactionHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/PipSurfaceTransactionHelper.java
@@ -18,7 +18,9 @@
 
 import android.content.Context;
 import android.content.res.Resources;
+import android.graphics.Matrix;
 import android.graphics.Rect;
+import android.graphics.RectF;
 import android.view.SurfaceControl;
 
 import com.android.systemui.R;
@@ -35,6 +37,12 @@
     private final boolean mEnableCornerRadius;
     private final int mCornerRadius;
 
+    /** for {@link #scale(SurfaceControl.Transaction, SurfaceControl, Rect, Rect)} operation */
+    private final Matrix mTmpTransform = new Matrix();
+    private final float[] mTmpFloat9 = new float[9];
+    private final RectF mTmpSourceRectF = new RectF();
+    private final RectF mTmpDestinationRectF = new RectF();
+
     @Inject
     public PipSurfaceTransactionHelper(Context context) {
         final Resources res = context.getResources();
@@ -64,6 +72,31 @@
     }
 
     /**
+     * Operates the scale (setMatrix) on a given transaction and leash
+     * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
+     */
+    PipSurfaceTransactionHelper scale(SurfaceControl.Transaction tx, SurfaceControl leash,
+            Rect sourceBounds, Rect destinationBounds) {
+        mTmpSourceRectF.set(sourceBounds);
+        mTmpDestinationRectF.set(destinationBounds);
+        mTmpTransform.setRectToRect(mTmpSourceRectF, mTmpDestinationRectF, Matrix.ScaleToFit.FILL);
+        tx.setMatrix(leash, mTmpTransform, mTmpFloat9)
+                .setPosition(leash, destinationBounds.left, destinationBounds.top);
+        return this;
+    }
+
+    /**
+     * Resets the scale (setMatrix) on a given transaction and leash if there's any
+     * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
+     */
+    PipSurfaceTransactionHelper resetScale(SurfaceControl.Transaction tx, SurfaceControl leash,
+            Rect destinationBounds) {
+        tx.setMatrix(leash, Matrix.IDENTITY_MATRIX, mTmpFloat9)
+                .setPosition(leash, destinationBounds.left, destinationBounds.top);
+        return this;
+    }
+
+    /**
      * Operates the round corner radius on a given transaction and leash
      * @return same {@link PipSurfaceTransactionHelper} instance for method chaining
      */
diff --git a/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java b/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java
index dc1b5d7..af8b184 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/PipTaskOrganizer.java
@@ -16,6 +16,9 @@
 
 package com.android.systemui.pip;
 
+import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
+import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
+
 import static com.android.systemui.pip.PipAnimationController.ANIM_TYPE_ALPHA;
 import static com.android.systemui.pip.PipAnimationController.ANIM_TYPE_BOUNDS;
 import static com.android.systemui.pip.PipAnimationController.TRANSITION_DIRECTION_NONE;
@@ -26,8 +29,6 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.ActivityManager;
-import android.app.ActivityTaskManager;
-import android.app.ITaskOrganizerController;
 import android.app.PictureInPictureParams;
 import android.content.Context;
 import android.content.pm.ActivityInfo;
@@ -38,10 +39,11 @@
 import android.os.RemoteException;
 import android.util.Log;
 import android.util.Size;
-import android.view.ITaskOrganizer;
-import android.view.IWindowContainer;
 import android.view.SurfaceControl;
-import android.view.WindowContainerTransaction;
+import android.window.ITaskOrganizer;
+import android.window.IWindowContainer;
+import android.window.WindowContainerTransaction;
+import android.window.WindowOrganizer;
 
 import com.android.internal.os.SomeArgs;
 import com.android.systemui.R;
@@ -72,10 +74,10 @@
     private static final int MSG_RESIZE_ANIMATE = 2;
     private static final int MSG_OFFSET_ANIMATE = 3;
     private static final int MSG_FINISH_RESIZE = 4;
+    private static final int MSG_RESIZE_USER = 5;
 
     private final Handler mMainHandler;
     private final Handler mUpdateHandler;
-    private final ITaskOrganizerController mTaskOrganizerController;
     private final PipBoundsHandler mPipBoundsHandler;
     private final PipAnimationController mPipAnimationController;
     private final List<PipTransitionCallback> mPipTransitionCallbacks = new ArrayList<>();
@@ -164,6 +166,12 @@
                 }
                 break;
             }
+            case MSG_RESIZE_USER: {
+                Rect startBounds = (Rect) args.arg2;
+                Rect toBounds = (Rect) args.arg3;
+                userResizePip(startBounds, toBounds);
+                break;
+            }
         }
         args.recycle();
         return true;
@@ -181,7 +189,6 @@
             @NonNull PipSurfaceTransactionHelper surfaceTransactionHelper) {
         mMainHandler = new Handler(Looper.getMainLooper());
         mUpdateHandler = new Handler(PipUpdateThread.get().getLooper(), mUpdateCallbacks);
-        mTaskOrganizerController = ActivityTaskManager.getTaskOrganizerController();
         mPipBoundsHandler = boundsHandler;
         mEnterExitAnimationDuration = context.getResources()
                 .getInteger(R.integer.config_pipResizeAnimationDuration);
@@ -210,8 +217,31 @@
         mOneShotAnimationType = animationType;
     }
 
+    /**
+     * Dismiss PiP, this is done in two phases using {@link WindowContainerTransaction}
+     * - setActivityWindowingMode to fullscreen at beginning of the transaction. without changing
+     *   the windowing mode of the Task itself. This makes sure the activity render it's fullscreen
+     *   configuration while the Task is still in PiP.
+     * - setWindowingMode to fullscreen at the end of transition
+     * @param animationDurationMs duration in millisecond for the exiting PiP transition
+     */
+    public void dismissPip(int animationDurationMs) {
+        try {
+            final WindowContainerTransaction wct = new WindowContainerTransaction();
+            wct.setActivityWindowingMode(mToken, WINDOWING_MODE_FULLSCREEN);
+            WindowOrganizer.applyTransaction(wct);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Failed to apply container transaction", e);
+        }
+        final Rect destinationBounds = mBoundsToRestore.remove(mToken.asBinder());
+        scheduleAnimateResizePip(mLastReportedBounds, destinationBounds,
+                TRANSITION_DIRECTION_TO_FULLSCREEN, animationDurationMs,
+                null /* updateBoundsCallback */);
+        mInPip = false;
+    }
+
     @Override
-    public void taskAppeared(ActivityManager.RunningTaskInfo info) {
+    public void onTaskAppeared(ActivityManager.RunningTaskInfo info) {
         Objects.requireNonNull(info, "Requires RunningTaskInfo");
         final Rect destinationBounds = mPipBoundsHandler.getDestinationBounds(
                 getAspectRatioOrDefault(info.pictureInPictureParams),
@@ -229,7 +259,8 @@
         mBoundsToRestore.put(mToken.asBinder(), currentBounds);
         if (mOneShotAnimationType == ANIM_TYPE_BOUNDS) {
             scheduleAnimateResizePip(currentBounds, destinationBounds,
-                    TRANSITION_DIRECTION_TO_PIP, mEnterExitAnimationDuration, null);
+                    TRANSITION_DIRECTION_TO_PIP, mEnterExitAnimationDuration,
+                    null /* updateBoundsCallback */);
         } else if (mOneShotAnimationType == ANIM_TYPE_ALPHA) {
             mUpdateHandler.post(() -> mPipAnimationController
                     .getAnimator(mLeash, destinationBounds, 0f, 1f)
@@ -243,8 +274,14 @@
         }
     }
 
+    /**
+     * Note that dismissing PiP is now originated from SystemUI, see {@link #dismissPip(int)}.
+     * Meanwhile this callback is invoked whenever the task is removed. For instance:
+     *   - as a result of removeStacksInWindowingModes from WM
+     *   - activity itself is died
+     */
     @Override
-    public void taskVanished(ActivityManager.RunningTaskInfo info) {
+    public void onTaskVanished(ActivityManager.RunningTaskInfo info) {
         IWindowContainer token = info.token;
         Objects.requireNonNull(token, "Requires valid IWindowContainer");
         if (token.asBinder() != mToken.asBinder()) {
@@ -253,15 +290,12 @@
         }
         final Rect boundsToRestore = mBoundsToRestore.remove(token.asBinder());
         scheduleAnimateResizePip(mLastReportedBounds, boundsToRestore,
-                TRANSITION_DIRECTION_TO_FULLSCREEN, mEnterExitAnimationDuration, null);
+                TRANSITION_DIRECTION_TO_FULLSCREEN, mEnterExitAnimationDuration,
+                null /* updateBoundsCallback */);
         mInPip = false;
     }
 
     @Override
-    public void transactionReady(int id, SurfaceControl.Transaction t) {
-    }
-
-    @Override
     public void onTaskInfoChanged(ActivityManager.RunningTaskInfo info) {
         final PictureInPictureParams newParams = info.pictureInPictureParams;
         if (!shouldUpdateDestinationBounds(newParams)) {
@@ -272,7 +306,8 @@
                 getAspectRatioOrDefault(newParams),
                 null /* bounds */, getMinimalSize(info.topActivityInfo));
         Objects.requireNonNull(destinationBounds, "Missing destination bounds");
-        scheduleAnimateResizePip(destinationBounds, mEnterExitAnimationDuration, null);
+        scheduleAnimateResizePip(destinationBounds, mEnterExitAnimationDuration,
+                null /* updateBoundsCallback */);
     }
 
     /**
@@ -324,6 +359,19 @@
     }
 
     /**
+     * Directly perform a scaled matrix transformation on the leash. This will not perform any
+     * {@link WindowContainerTransaction} until {@link #scheduleFinishResizePip} is called.
+     */
+    public void scheduleUserResizePip(Rect startBounds, Rect toBounds,
+            Consumer<Rect> updateBoundsCallback) {
+        SomeArgs args = SomeArgs.obtain();
+        args.arg1 = updateBoundsCallback;
+        args.arg2 = startBounds;
+        args.arg3 = toBounds;
+        mUpdateHandler.sendMessage(mUpdateHandler.obtainMessage(MSG_RESIZE_USER, args));
+    }
+
+    /**
      * Finish an intermediate resize operation. This is expected to be called after
      * {@link #scheduleResizePip}.
      */
@@ -331,6 +379,7 @@
         final SurfaceControl.Transaction tx = mSurfaceControlTransactionFactory.getTransaction();
         mSurfaceTransactionHelper
                 .crop(tx, mLeash, destinationBounds)
+                .resetScale(tx, mLeash, destinationBounds)
                 .round(tx, mLeash, mInPip);
         scheduleFinishResizePip(tx, destinationBounds, TRANSITION_DIRECTION_NONE, null);
     }
@@ -395,6 +444,21 @@
         tx.apply();
     }
 
+    private void userResizePip(Rect startBounds, Rect destinationBounds) {
+        if (Looper.myLooper() != mUpdateHandler.getLooper()) {
+            throw new RuntimeException("Callers should call scheduleUserResizePip() instead of "
+                    + "this directly");
+        }
+        // Could happen when dismissPip
+        if (mToken == null || mLeash == null) {
+            Log.w(TAG, "Abort animation, invalid leash");
+            return;
+        }
+        final SurfaceControl.Transaction tx = mSurfaceControlTransactionFactory.getTransaction();
+        mSurfaceTransactionHelper.scale(tx, mLeash, startBounds, destinationBounds);
+        tx.apply();
+    }
+
     private void finishResize(SurfaceControl.Transaction tx, Rect destinationBounds,
             @PipAnimationController.TransitionDirection int direction) {
         if (Looper.myLooper() != mUpdateHandler.getLooper()) {
@@ -403,19 +467,26 @@
         }
         mLastReportedBounds.set(destinationBounds);
         try {
-            // If we are animating to fullscreen, then we need to reset the override bounds on the
-            // task to ensure that the task "matches" the parent's bounds
-            Rect taskBounds = direction == TRANSITION_DIRECTION_TO_FULLSCREEN
-                    ? null
-                    : destinationBounds;
             final WindowContainerTransaction wct = new WindowContainerTransaction();
+            final Rect taskBounds;
+            if (direction == TRANSITION_DIRECTION_TO_FULLSCREEN) {
+                // If we are animating to fullscreen, then we need to reset the override bounds
+                // on the task to ensure that the task "matches" the parent's bounds, this applies
+                // also to the final windowing mode, which should be reset to undefined rather than
+                // fullscreen.
+                taskBounds = null;
+                wct.setWindowingMode(mToken, WINDOWING_MODE_UNDEFINED)
+                        .setActivityWindowingMode(mToken, WINDOWING_MODE_UNDEFINED);
+            } else {
+                taskBounds = destinationBounds;
+            }
             if (direction == TRANSITION_DIRECTION_TO_PIP) {
                 wct.scheduleFinishEnterPip(mToken, taskBounds);
             } else {
                 wct.setBounds(mToken, taskBounds);
             }
             wct.setBoundsChangeTransaction(mToken, tx);
-            mTaskOrganizerController.applyContainerTransaction(wct, null /* ITaskOrganizer */);
+            WindowOrganizer.applyTransaction(wct);
         } catch (RemoteException e) {
             Log.e(TAG, "Failed to apply container transaction", e);
         }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java
index 020627a..9722c08 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipManager.java
@@ -18,6 +18,7 @@
 
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
 import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
+import static android.window.WindowOrganizer.TaskOrganizer;
 
 import android.app.ActivityManager;
 import android.app.ActivityTaskManager;
@@ -34,7 +35,7 @@
 import android.util.Pair;
 import android.view.DisplayInfo;
 import android.view.IPinnedStackController;
-import android.view.WindowContainerTransaction;
+import android.window.WindowContainerTransaction;
 
 import com.android.systemui.Dependency;
 import com.android.systemui.UiOffloadThread;
@@ -81,10 +82,11 @@
     private PipMenuActivityController mMenuController;
     private PipMediaController mMediaController;
     private PipTouchHandler mTouchHandler;
-    private PipTaskOrganizer mPipTaskOrganizer;
     private PipAppOpsListener mAppOpsListener;
     private IPinnedStackAnimationListener mPinnedStackAnimationRecentsListener;
 
+    protected PipTaskOrganizer mPipTaskOrganizer;
+
     /**
      * Handler for display rotation changes.
      */
@@ -247,8 +249,7 @@
         mPipBoundsHandler.onDisplayInfoChanged(displayInfo);
 
         try {
-            ActivityTaskManager.getTaskOrganizerController().registerTaskOrganizer(
-                    mPipTaskOrganizer, WINDOWING_MODE_PINNED);
+            TaskOrganizer.registerOrganizer(mPipTaskOrganizer, WINDOWING_MODE_PINNED);
             ActivityManager.StackInfo stackInfo = activityTaskManager.getStackInfo(
                     WINDOWING_MODE_PINNED, ACTIVITY_TYPE_UNDEFINED);
             if (stackInfo != null) {
@@ -256,7 +257,7 @@
                 // register the pip input consumer to ensure touch can send to it.
                 mInputConsumerController.registerInputConsumer();
             }
-        } catch (RemoteException e) {
+        } catch (RemoteException | UnsupportedOperationException e) {
             e.printStackTrace();
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
index 449a2bc..7974281 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
@@ -219,11 +219,7 @@
         cancelAnimations();
         mMenuController.hideMenuWithoutResize();
         mPipTaskOrganizer.getUpdateHandler().post(() -> {
-            try {
-                mActivityTaskManager.dismissPip(!skipAnimation, EXPAND_STACK_TO_FULLSCREEN_DURATION);
-            } catch (RemoteException e) {
-                Log.e(TAG, "Error expanding PiP activity", e);
-            }
+            mPipTaskOrganizer.dismissPip(skipAnimation ? 0 : EXPAND_STACK_TO_FULLSCREEN_DURATION);
         });
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipResizeGestureHandler.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipResizeGestureHandler.java
index 25acce6..0b07655 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipResizeGestureHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipResizeGestureHandler.java
@@ -66,6 +66,7 @@
     private final Point mMaxSize = new Point();
     private final Point mMinSize = new Point();
     private final Rect mLastResizeBounds = new Rect();
+    private final Rect mLastDownBounds = new Rect();
     private final Rect mTmpBounds = new Rect();
     private final int mDelta;
 
@@ -98,14 +99,14 @@
         mEnablePipResize = DeviceConfig.getBoolean(
                 DeviceConfig.NAMESPACE_SYSTEMUI,
                 PIP_USER_RESIZE,
-                /* defaultValue = */ false);
+                /* defaultValue = */ true);
         deviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_SYSTEMUI, mMainExecutor,
                 new DeviceConfig.OnPropertiesChangedListener() {
                     @Override
                     public void onPropertiesChanged(DeviceConfig.Properties properties) {
                         if (properties.getKeyset().contains(PIP_USER_RESIZE)) {
                             mEnablePipResize = properties.getBoolean(
-                                    PIP_USER_RESIZE, /* defaultValue = */ false);
+                                    PIP_USER_RESIZE, /* defaultValue = */ true);
                         }
                     }
                 });
@@ -192,6 +193,7 @@
             mAllowGesture = isWithinTouchRegion((int) ev.getX(), (int) ev.getY());
             if (mAllowGesture) {
                 mDownPoint.set(ev.getX(), ev.getY());
+                mLastDownBounds.set(mMotionHelper.getBounds());
             }
 
         } else if (mAllowGesture) {
@@ -206,9 +208,11 @@
                     final Rect currentPipBounds = mMotionHelper.getBounds();
                     mLastResizeBounds.set(TaskResizingAlgorithm.resizeDrag(ev.getX(), ev.getY(),
                             mDownPoint.x, mDownPoint.y, currentPipBounds, mCtrlType, mMinSize.x,
-                            mMinSize.y, mMaxSize, true, true));
+                            mMinSize.y, mMaxSize, true,
+                            mLastDownBounds.width() > mLastDownBounds.height()));
                     mPipBoundsHandler.transformBoundsToAspectRatio(mLastResizeBounds);
-                    mPipTaskOrganizer.scheduleResizePip(mLastResizeBounds, null);
+                    mPipTaskOrganizer.scheduleUserResizePip(mLastDownBounds, mLastResizeBounds,
+                            null);
                     break;
                 case MotionEvent.ACTION_UP:
                 case MotionEvent.ACTION_CANCEL:
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java
index 9b67d80..dfd5d2f 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java
@@ -413,6 +413,8 @@
                 break;
             }
             case MotionEvent.ACTION_HOVER_ENTER:
+                mMenuController.showMenu(MENU_STATE_FULL, mMotionHelper.getBounds(),
+                        mMovementBounds, false /* allowMenuTimeout */, false /* willResizeMenu */);
             case MotionEvent.ACTION_HOVER_MOVE: {
                 if (!shouldDeliverToMenu && !mSendingHoverAccessibilityEvents) {
                     sendAccessibilityHoverEvent(AccessibilityEvent.TYPE_VIEW_HOVER_ENTER);
@@ -421,6 +423,7 @@
                 break;
             }
             case MotionEvent.ACTION_HOVER_EXIT: {
+                mMenuController.hideMenu();
                 if (!shouldDeliverToMenu && mSendingHoverAccessibilityEvents) {
                     sendAccessibilityHoverEvent(AccessibilityEvent.TYPE_VIEW_HOVER_EXIT);
                     mSendingHoverAccessibilityEvents = false;
@@ -538,9 +541,6 @@
                     mSavedSnapFraction = -1f;
                 }
             } else {
-                // If resizing is not allowed, then the PiP should be frozen until the transition
-                // ends as well
-                setTouchEnabled(false);
                 mSavedSnapFraction = -1f;
             }
         }
@@ -714,6 +714,8 @@
                 }
             } else if (mTouchState.isDoubleTap()) {
                 // Expand to fullscreen if this is a double tap
+                // the PiP should be frozen until the transition ends
+                setTouchEnabled(false);
                 mMotionHelper.expandPip();
             } else if (mMenuState != MENU_STATE_FULL) {
                 if (!mTouchState.isWaitingForDoubleTap()) {
diff --git a/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java b/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java
index 050acd5..18dde9d 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/tv/PipManager.java
@@ -19,6 +19,7 @@
 import static android.app.ActivityTaskManager.INVALID_STACK_ID;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
 import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
+import static android.window.WindowOrganizer.TaskOrganizer;
 
 import android.app.ActivityManager.RunningTaskInfo;
 import android.app.ActivityManager.StackInfo;
@@ -293,9 +294,8 @@
 
         try {
             WindowManagerWrapper.getInstance().addPinnedStackListener(mPinnedStackListener);
-            ActivityTaskManager.getTaskOrganizerController().registerTaskOrganizer(
-                    mPipTaskOrganizer, WINDOWING_MODE_PINNED);
-        } catch (RemoteException e) {
+            TaskOrganizer.registerOrganizer(mPipTaskOrganizer, WINDOWING_MODE_PINNED);
+        } catch (RemoteException | UnsupportedOperationException e) {
             Log.e(TAG, "Failed to register pinned stack listener", e);
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java
index 0403a05..cd73721 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java
@@ -142,6 +142,9 @@
     @Override
     public void computeScroll() {
         if (!mScroller.isFinished() && mScroller.computeScrollOffset()) {
+            if (!isFakeDragging()) {
+                beginFakeDrag();
+            }
             fakeDragBy(getScrollX() - mScroller.getCurrX());
             // Keep on drawing until the animation has finished.
             postInvalidateOnAnimation();
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSMediaPlayer.java b/packages/SystemUI/src/com/android/systemui/qs/QSMediaPlayer.java
index d5e5b10..8922e14 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSMediaPlayer.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSMediaPlayer.java
@@ -18,6 +18,7 @@
 
 import android.app.Notification;
 import android.content.Context;
+import android.content.res.ColorStateList;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.Icon;
 import android.media.session.MediaSession;
@@ -25,7 +26,9 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageButton;
+import android.widget.ImageView;
 import android.widget.LinearLayout;
+import android.widget.TextView;
 
 import com.android.settingslib.media.MediaDevice;
 import com.android.systemui.R;
@@ -50,6 +53,8 @@
             R.id.action4
     };
 
+    private final QSPanel mParent;
+
     /**
      * Initialize quick shade version of player
      * @param context
@@ -62,6 +67,7 @@
             Executor foregroundExecutor, Executor backgroundExecutor) {
         super(context, parent, manager, R.layout.qs_media_panel, QS_ACTION_IDS, foregroundExecutor,
                 backgroundExecutor);
+        mParent = (QSPanel) parent;
     }
 
     /**
@@ -108,5 +114,45 @@
             ImageButton thisBtn = mMediaNotifView.findViewById(QS_ACTION_IDS[i]);
             thisBtn.setVisibility(View.GONE);
         }
+
+        // Set up long press menu
+        View guts = mMediaNotifView.findViewById(R.id.media_guts);
+        View options = mMediaNotifView.findViewById(R.id.qs_media_controls_options);
+        options.setMinimumHeight(guts.getHeight());
+
+        View clearView = options.findViewById(R.id.remove);
+        clearView.setOnClickListener(b -> {
+            mParent.removeMediaPlayer(QSMediaPlayer.this);
+        });
+        ImageView removeIcon = options.findViewById(R.id.remove_icon);
+        removeIcon.setImageTintList(ColorStateList.valueOf(iconColor));
+        TextView removeText = options.findViewById(R.id.remove_text);
+        removeText.setTextColor(iconColor);
+
+        TextView cancelView = options.findViewById(R.id.cancel);
+        cancelView.setTextColor(iconColor);
+        cancelView.setOnClickListener(b -> {
+            options.setVisibility(View.GONE);
+            guts.setVisibility(View.VISIBLE);
+        });
+        // ... but don't enable it yet, and make sure is reset when the session is updated
+        mMediaNotifView.setOnLongClickListener(null);
+        options.setVisibility(View.GONE);
+        guts.setVisibility(View.VISIBLE);
+    }
+
+    @Override
+    public void clearControls() {
+        super.clearControls();
+
+        View guts = mMediaNotifView.findViewById(R.id.media_guts);
+        View options = mMediaNotifView.findViewById(R.id.qs_media_controls_options);
+
+        mMediaNotifView.setOnLongClickListener(v -> {
+            // Replace player view with close/cancel view
+            guts.setVisibility(View.GONE);
+            options.setVisibility(View.VISIBLE);
+            return true; // consumed click
+        });
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
index 5ccf8c7..33cc086 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
@@ -133,6 +133,9 @@
             new LocalMediaManager.DeviceCallback() {
         @Override
         public void onDeviceListUpdate(List<MediaDevice> devices) {
+            if (mLocalMediaManager == null) {
+                return;
+            }
             MediaDevice currentDevice = mLocalMediaManager.getCurrentConnectedDevice();
             // Check because this can be called several times while changing devices
             if (mDevice == null || !mDevice.equals(currentDevice)) {
@@ -293,14 +296,17 @@
         if (mMediaPlayers.size() > 0) {
             ((View) mMediaCarousel.getParent()).setVisibility(View.VISIBLE);
 
-            // Set up listener for device changes
-            // TODO: integrate with MediaTransferManager?
-            InfoMediaManager imm =
-                    new InfoMediaManager(mContext, null, null, mLocalBluetoothManager);
-            mLocalMediaManager = new LocalMediaManager(mContext, mLocalBluetoothManager, imm, null);
-            mLocalMediaManager.startScan();
-            mDevice = mLocalMediaManager.getCurrentConnectedDevice();
-            mLocalMediaManager.registerCallback(mDeviceCallback);
+            if (mLocalMediaManager == null) {
+                // Set up listener for device changes
+                // TODO: integrate with MediaTransferManager?
+                InfoMediaManager imm =
+                        new InfoMediaManager(mContext, null, null, mLocalBluetoothManager);
+                mLocalMediaManager = new LocalMediaManager(mContext, mLocalBluetoothManager, imm,
+                        null);
+                mLocalMediaManager.startScan();
+                mDevice = mLocalMediaManager.getCurrentConnectedDevice();
+                mLocalMediaManager.registerCallback(mDeviceCallback);
+            }
         }
     }
 
@@ -323,8 +329,11 @@
         mMediaCarousel.removeView(player.getView());
         if (mMediaPlayers.size() == 0) {
             ((View) mMediaCarousel.getParent()).setVisibility(View.GONE);
-            mLocalMediaManager.stopScan();
-            mLocalMediaManager.unregisterCallback(mDeviceCallback);
+            if (mLocalMediaManager != null) {
+                mLocalMediaManager.stopScan();
+                mLocalMediaManager.unregisterCallback(mDeviceCallback);
+                mLocalMediaManager = null;
+            }
         }
         return true;
     }
@@ -397,6 +406,7 @@
         if (mLocalMediaManager != null) {
             mLocalMediaManager.stopScan();
             mLocalMediaManager.unregisterCallback(mDeviceCallback);
+            mLocalMediaManager = null;
         }
         super.onDetachedFromWindow();
     }
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
index cc7aaea..888c7ab 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
@@ -197,7 +197,7 @@
             CachedBluetoothDevice lastDevice = connectedDevices.get(0);
             final int batteryLevel = lastDevice.getBatteryLevel();
 
-            if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
+            if (batteryLevel > BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
                 return mContext.getString(
                         R.string.quick_settings_bluetooth_secondary_label_battery_level,
                         Utils.formatPercentage(batteryLevel));
@@ -390,7 +390,7 @@
                     if (state == BluetoothProfile.STATE_CONNECTED) {
                         item.iconResId = R.drawable.ic_bluetooth_connected;
                         int batteryLevel = device.getBatteryLevel();
-                        if (batteryLevel != BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
+                        if (batteryLevel > BluetoothDevice.BATTERY_LEVEL_UNKNOWN) {
                             item.icon = new BluetoothBatteryTileIcon(batteryLevel,1 /* iconScale */);
                             item.line2 = mContext.getString(
                                     R.string.quick_settings_connected_battery_level,
diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
index 1cd6388..df85ed5 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
@@ -670,6 +670,12 @@
             });
         }
         startConnectionToCurrentUser();
+
+        // Clean up the minimized state if launcher dies
+        Divider divider = mDividerOptional.get();
+        if (divider != null) {
+            divider.setMinimized(false);
+        }
     }
 
     public void startConnectionToCurrentUser() {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java
index aa64449..3b3d9dd 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java
@@ -17,7 +17,6 @@
 package com.android.systemui.recents;
 
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON;
 
 import static com.android.systemui.Prefs.Key.DISMISSED_RECENTS_SWIPE_UP_ONBOARDING_COUNT;
@@ -27,8 +26,7 @@
 import static com.android.systemui.Prefs.Key.OVERVIEW_OPENED_COUNT;
 import static com.android.systemui.Prefs.Key.OVERVIEW_OPENED_FROM_HOME_COUNT;
 import static com.android.systemui.shared.system.LauncherEventUtil.DISMISS;
-import static com.android.systemui.shared.system.LauncherEventUtil
-        .RECENTS_QUICK_SCRUB_ONBOARDING_TIP;
+import static com.android.systemui.shared.system.LauncherEventUtil.RECENTS_QUICK_SCRUB_ONBOARDING_TIP;
 import static com.android.systemui.shared.system.LauncherEventUtil.RECENTS_SWIPE_UP_ONBOARDING_TIP;
 import static com.android.systemui.shared.system.LauncherEventUtil.VISIBLE;
 
@@ -139,7 +137,7 @@
 
         private void onAppLaunch() {
             ActivityManager.RunningTaskInfo info = ActivityManagerWrapper.getInstance()
-                    .getRunningTask(ACTIVITY_TYPE_UNDEFINED /* ignoreActivityType */);
+                    .getRunningTask();
             if (info == null) {
                 return;
             }
diff --git a/packages/SystemUI/src/com/android/systemui/settings/CurrentUserObservable.java b/packages/SystemUI/src/com/android/systemui/settings/CurrentUserObservable.java
index 3cdc01d..dea8c32 100644
--- a/packages/SystemUI/src/com/android/systemui/settings/CurrentUserObservable.java
+++ b/packages/SystemUI/src/com/android/systemui/settings/CurrentUserObservable.java
@@ -38,7 +38,7 @@
         @Override
         protected void onInactive() {
             super.onInactive();
-            mTracker.startTracking();
+            mTracker.stopTracking();
         }
     };
 
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java b/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
index d7eab3a..66e3211 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
@@ -20,6 +20,7 @@
 import static android.content.res.Configuration.SCREEN_HEIGHT_DP_UNDEFINED;
 import static android.content.res.Configuration.SCREEN_WIDTH_DP_UNDEFINED;
 import static android.view.Display.DEFAULT_DISPLAY;
+import static android.window.WindowOrganizer.TaskOrganizer;
 
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
@@ -32,12 +33,13 @@
 import android.os.RemoteException;
 import android.provider.Settings;
 import android.util.Slog;
-import android.view.IWindowContainer;
 import android.view.LayoutInflater;
 import android.view.SurfaceControl;
 import android.view.SurfaceSession;
 import android.view.View;
-import android.view.WindowContainerTransaction;
+import android.window.IWindowContainer;
+import android.window.WindowContainerTransaction;
+import android.window.WindowOrganizer;
 
 import androidx.annotation.Nullable;
 
@@ -111,6 +113,9 @@
 
     private DisplayChangeController.OnDisplayChangingListener mRotationController =
             (display, fromRotation, toRotation, t) -> {
+                if (!mSplits.isSplitScreenSupported()) {
+                    return;
+                }
                 DisplayLayout displayLayout =
                         new DisplayLayout(mDisplayController.getDisplayLayout(display));
                 SplitDisplayLayout sdl = new SplitDisplayLayout(mContext, displayLayout, mSplits);
@@ -177,8 +182,7 @@
 
         private boolean getSecondaryHasFocus(int displayId) {
             try {
-                IWindowContainer imeSplit = ActivityTaskManager.getTaskOrganizerController()
-                        .getImeTarget(displayId);
+                IWindowContainer imeSplit = TaskOrganizer.getImeTarget(displayId);
                 return imeSplit != null
                         && (imeSplit.asBinder() == mSplits.mSecondary.token.asBinder());
             } catch (RemoteException e) {
@@ -267,16 +271,17 @@
                         SCREEN_WIDTH_DP_UNDEFINED, SCREEN_HEIGHT_DP_UNDEFINED);
             }
             try {
-                ActivityTaskManager.getTaskOrganizerController()
-                        .applyContainerTransaction(wct, null /* organizer */);
+                WindowOrganizer.applyTransaction(wct);
             } catch (RemoteException e) {
             }
 
             // Update all the adjusted-for-ime states
-            mView.setAdjustedForIme(mTargetShown, mTargetShown
-                    ? DisplayImeController.ANIMATION_DURATION_SHOW_MS
-                    : DisplayImeController.ANIMATION_DURATION_HIDE_MS);
-            setAdjustedForIme(mTargetShown);
+            if (!mPaused) {
+                mView.setAdjustedForIme(mTargetShown, mTargetShown
+                        ? DisplayImeController.ANIMATION_DURATION_SHOW_MS
+                        : DisplayImeController.ANIMATION_DURATION_HIDE_MS);
+            }
+            setAdjustedForIme(mTargetShown && !mPaused);
         }
 
         @Override
@@ -390,6 +395,9 @@
                 mTargetPrimaryDim = mTargetSecondaryDim = 0.f;
                 updateImeAdjustState();
                 startAsyncAnimation();
+                if (mAnimation != null) {
+                    mAnimation.end();
+                }
             });
         }
 
@@ -468,23 +476,28 @@
                 mDisplayController.getDisplayLayout(displayId), mSplits);
         mImeController.addPositionProcessor(mImePositionProcessor);
         mDisplayController.addDisplayChangingController(mRotationController);
+        if (!ActivityTaskManager.supportsSplitScreenMultiWindow(mContext)) {
+            removeDivider();
+            return;
+        }
         try {
-            mSplits.init(ActivityTaskManager.getTaskOrganizerController(), mSurfaceSession);
+            mSplits.init(mSurfaceSession);
             // Set starting tile bounds based on middle target
             final WindowContainerTransaction tct = new WindowContainerTransaction();
             int midPos = mSplitLayout.getSnapAlgorithm().getMiddleTarget().position;
             mSplitLayout.resizeSplits(midPos, tct);
-            ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(tct,
-                    null /* organizer */);
+            WindowOrganizer.applyTransaction(tct);
         } catch (Exception e) {
             Slog.e(TAG, "Failed to register docked stack listener", e);
+            removeDivider();
+            return;
         }
         update(mDisplayController.getDisplayContext(displayId).getResources().getConfiguration());
     }
 
     @Override
     public void onDisplayConfigurationChanged(int displayId, Configuration newConfig) {
-        if (displayId != DEFAULT_DISPLAY) {
+        if (displayId != DEFAULT_DISPLAY || !mSplits.isSplitScreenSupported()) {
             return;
         }
         mSplitLayout = new SplitDisplayLayout(mDisplayController.getDisplayContext(displayId),
@@ -494,8 +507,7 @@
             final WindowContainerTransaction tct = new WindowContainerTransaction();
             mSplitLayout.resizeSplits(midPos, tct);
             try {
-                ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(tct,
-                        null /* organizer */);
+                WindowOrganizer.applyTransaction(tct);
             } catch (RemoteException e) {
             }
         } else if (mRotateSplitLayout != null
@@ -605,15 +617,17 @@
                     + mHomeStackResizable + "->" + homeStackResizable + " split:" + inSplitMode());
         }
         WindowContainerTransaction wct = new WindowContainerTransaction();
+        final boolean minimizedChanged = mMinimized != minimized;
         // Update minimized state
-        if (mMinimized != minimized) {
+        if (minimizedChanged) {
             mMinimized = minimized;
         }
         // Always set this because we could be entering split when mMinimized is already true
         wct.setFocusable(mSplits.mPrimary.token, !mMinimized);
 
         // Update home-stack resizability
-        if (mHomeStackResizable != homeStackResizable) {
+        final boolean homeResizableChanged = mHomeStackResizable != homeStackResizable;
+        if (homeResizableChanged) {
             mHomeStackResizable = homeStackResizable;
             if (inSplitMode()) {
                 WindowManagerProxy.applyHomeTasksMinimized(
@@ -629,7 +643,10 @@
             if (mMinimized) {
                 mImePositionProcessor.pause(displayId);
             }
-            mView.setMinimizedDockStack(minimized, getAnimDuration(), homeStackResizable);
+            if (minimizedChanged || homeResizableChanged) {
+                // This conflicts with IME adjustment, so only call it when things change.
+                mView.setMinimizedDockStack(minimized, getAnimDuration(), homeStackResizable);
+            }
             if (!mMinimized) {
                 // afterwards so it can end any animations started in view
                 mImePositionProcessor.resume(displayId);
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
index 131f4e1..1e4c8e4 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
@@ -339,7 +339,6 @@
             insets = state.calculateInsets(state.getDisplayFrame(),
                     null /* ignoringVisibilityState */, insets.isRound(),
                     insets.shouldAlwaysConsumeSystemBars(), insets.getDisplayCutout(),
-                    null /* legacyContentInsets */, null /* legacyStableInsets */,
                     0 /* legacySystemUiFlags */,
                     SOFT_INPUT_ADJUST_NOTHING, null /* typeSideMap */);
         }
@@ -1086,6 +1085,13 @@
         crop.offsetTo(-(otherTaskRect.left - otherRect.left),
                 -(otherTaskRect.top - otherRect.top));
         t.setWindowCrop(mTiles.mSecondarySurface, crop);
+        // Reposition home and recents surfaces or they would be positioned relatively to its
+        // parent (split-screen secondary task) position.
+        for (int i = mTiles.mHomeAndRecentsSurfaces.size() - 1; i >= 0; --i) {
+            t.setPosition(mTiles.mHomeAndRecentsSurfaces.get(i),
+                    mTiles.mHomeBounds.left - otherTaskRect.left,
+                    mTiles.mHomeBounds.top - otherTaskRect.top);
+        }
         final SurfaceControl dividerCtrl = getWindowSurfaceControl();
         if (dividerCtrl != null) {
             if (isHorizontalDivision()) {
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/SplitDisplayLayout.java b/packages/SystemUI/src/com/android/systemui/stackdivider/SplitDisplayLayout.java
index 271faed..3b8addb 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/SplitDisplayLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/SplitDisplayLayout.java
@@ -32,7 +32,7 @@
 import android.content.res.Resources;
 import android.graphics.Rect;
 import android.util.TypedValue;
-import android.view.WindowContainerTransaction;
+import android.window.WindowContainerTransaction;
 
 import com.android.internal.policy.DividerSnapAlgorithm;
 import com.android.internal.policy.DockedDividerUtils;
@@ -191,13 +191,24 @@
         final int currDividerWidth =
                 (int) (dividerWidthInactive * shownFraction + dividerWidth * (1.f - shownFraction));
 
+        // Calculate the highest we can move the bottom of the top stack to keep 30% visible.
         final int minTopStackBottom = displayStableRect.top
                 + (int) ((mPrimary.bottom - displayStableRect.top) * ADJUSTED_STACK_FRACTION_MIN);
-        final int minImeTop = minTopStackBottom + currDividerWidth;
-
-        // Calculate an offset which shifts the stacks up by the height of the IME, but still
-        // leaves at least 30% of the top stack visible.
-        final int yOffset = Math.max(0, dl.height() - Math.max(currImeTop, minImeTop));
+        // Based on that, calculate the maximum amount we'll allow the ime to shift things.
+        final int maxOffset = mPrimary.bottom - minTopStackBottom;
+        // Calculate how much we would shift things without limits (basically the height of ime).
+        final int desiredOffset = hiddenTop - shownTop;
+        // Calculate an "adjustedTop" which is the currImeTop but restricted by our constraints.
+        // We want an effect where the adjustment only occurs during the "highest" portion of the
+        // ime animation. This is done by shifting the adjustment values by the difference in
+        // offsets (effectively playing the whole adjustment animation some fixed amount of pixels
+        // below the ime top).
+        final int topCorrection = Math.max(0, desiredOffset - maxOffset);
+        final int adjustedTop = currImeTop + topCorrection;
+        // The actual yOffset is the distance between adjustedTop and the bottom of the display.
+        // Since our adjustedTop values are playing "below" the ime, we clamp at 0 so we only
+        // see adjustment upward.
+        final int yOffset = Math.max(0, dl.height() - adjustedTop);
 
         // TOP
         // Reduce the offset by an additional small amount to squish the divider bar.
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/SplitScreenTaskOrganizer.java b/packages/SystemUI/src/com/android/systemui/stackdivider/SplitScreenTaskOrganizer.java
index 48ea4ae..0a528a6 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/SplitScreenTaskOrganizer.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/SplitScreenTaskOrganizer.java
@@ -22,17 +22,19 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
 import static android.view.Display.DEFAULT_DISPLAY;
+import static android.window.WindowOrganizer.TaskOrganizer;
 
 import android.app.ActivityManager.RunningTaskInfo;
-import android.app.ITaskOrganizerController;
 import android.app.WindowConfiguration;
+import android.graphics.Rect;
 import android.os.RemoteException;
 import android.util.Log;
 import android.view.Display;
-import android.view.ITaskOrganizer;
-import android.view.IWindowContainer;
 import android.view.SurfaceControl;
 import android.view.SurfaceSession;
+import android.window.ITaskOrganizer;
+
+import java.util.ArrayList;
 
 class SplitScreenTaskOrganizer extends ITaskOrganizer.Stub {
     private static final String TAG = "SplitScreenTaskOrganizer";
@@ -44,22 +46,31 @@
     SurfaceControl mSecondarySurface;
     SurfaceControl mPrimaryDim;
     SurfaceControl mSecondaryDim;
+    ArrayList<SurfaceControl> mHomeAndRecentsSurfaces = new ArrayList<>();
+    Rect mHomeBounds = new Rect();
     final Divider mDivider;
+    private boolean mSplitScreenSupported = false;
 
     SplitScreenTaskOrganizer(Divider divider) {
         mDivider = divider;
     }
 
-    void init(ITaskOrganizerController organizerController, SurfaceSession session)
-            throws RemoteException {
-        organizerController.registerTaskOrganizer(this, WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
-        organizerController.registerTaskOrganizer(this, WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
-        mPrimary = organizerController.createRootTask(Display.DEFAULT_DISPLAY,
-                WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
-        mSecondary = organizerController.createRootTask(Display.DEFAULT_DISPLAY,
-                WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
-        mPrimarySurface = mPrimary.token.getLeash();
-        mSecondarySurface = mSecondary.token.getLeash();
+    void init(SurfaceSession session) throws RemoteException {
+        TaskOrganizer.registerOrganizer(this, WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
+        TaskOrganizer.registerOrganizer(this, WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
+        try {
+            mPrimary = TaskOrganizer.createRootTask(Display.DEFAULT_DISPLAY,
+                    WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
+            mSecondary = TaskOrganizer.createRootTask(Display.DEFAULT_DISPLAY,
+                    WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
+            mPrimarySurface = mPrimary.token.getLeash();
+            mSecondarySurface = mSecondary.token.getLeash();
+        } catch (RemoteException e) {
+            // teardown to prevent callbacks
+            TaskOrganizer.unregisterOrganizer(this);
+            throw e;
+        }
+        mSplitScreenSupported = true;
 
         // Initialize dim surfaces:
         mPrimaryDim = new SurfaceControl.Builder(session).setParent(mPrimarySurface)
@@ -75,6 +86,10 @@
         releaseTransaction(t);
     }
 
+    boolean isSplitScreenSupported() {
+        return mSplitScreenSupported;
+    }
+
     SurfaceControl.Transaction getTransaction() {
         return mDivider.mTransactionPool.acquire();
     }
@@ -84,15 +99,11 @@
     }
 
     @Override
-    public void taskAppeared(RunningTaskInfo taskInfo) {
+    public void onTaskAppeared(RunningTaskInfo taskInfo) {
     }
 
     @Override
-    public void taskVanished(RunningTaskInfo taskInfo) {
-    }
-
-    @Override
-    public void transactionReady(int id, SurfaceControl.Transaction t) {
+    public void onTaskVanished(RunningTaskInfo taskInfo) {
     }
 
     @Override
@@ -108,6 +119,8 @@
      * presentations based on the contents of the split regions.
      */
     private void handleTaskInfoChanged(RunningTaskInfo info) {
+        final boolean secondaryWasHomeOrRecents = mSecondary.topActivityType == ACTIVITY_TYPE_HOME
+                || mSecondary.topActivityType == ACTIVITY_TYPE_RECENTS;
         final boolean primaryWasEmpty = mPrimary.topActivityType == ACTIVITY_TYPE_UNDEFINED;
         final boolean secondaryWasEmpty = mSecondary.topActivityType == ACTIVITY_TYPE_UNDEFINED;
         if (info.token.asBinder() == mPrimary.token.asBinder()) {
@@ -117,9 +130,16 @@
         }
         final boolean primaryIsEmpty = mPrimary.topActivityType == ACTIVITY_TYPE_UNDEFINED;
         final boolean secondaryIsEmpty = mSecondary.topActivityType == ACTIVITY_TYPE_UNDEFINED;
+        final boolean secondaryIsHomeOrRecents = mSecondary.topActivityType == ACTIVITY_TYPE_HOME
+                || mSecondary.topActivityType == ACTIVITY_TYPE_RECENTS;
         if (DEBUG) {
             Log.d(TAG, "onTaskInfoChanged " + mPrimary + "  " + mSecondary);
         }
+        if (primaryIsEmpty == primaryWasEmpty && secondaryWasEmpty == secondaryIsEmpty
+                && secondaryWasHomeOrRecents == secondaryIsHomeOrRecents) {
+            // No relevant changes
+            return;
+        }
         if (primaryIsEmpty || secondaryIsEmpty) {
             // At-least one of the splits is empty which means we are currently transitioning
             // into or out-of split-screen mode.
@@ -146,8 +166,7 @@
                 }
                 mDivider.startEnterSplit();
             }
-        } else if (mSecondary.topActivityType == ACTIVITY_TYPE_HOME
-                || mSecondary.topActivityType == ACTIVITY_TYPE_RECENTS) {
+        } else if (secondaryIsHomeOrRecents) {
             // Both splits are populated but the secondary split has a home/recents stack on top,
             // so enter minimized mode.
             mDivider.ensureMinimizedSplit();
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/WindowManagerProxy.java b/packages/SystemUI/src/com/android/systemui/stackdivider/WindowManagerProxy.java
index fea57a3..6ed7afe 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/WindowManagerProxy.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/WindowManagerProxy.java
@@ -20,6 +20,7 @@
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 import static android.view.Display.DEFAULT_DISPLAY;
+import static android.window.WindowOrganizer.TaskOrganizer;
 
 import android.annotation.NonNull;
 import android.app.ActivityManager;
@@ -28,9 +29,10 @@
 import android.os.RemoteException;
 import android.util.Log;
 import android.view.Display;
-import android.view.IWindowContainer;
-import android.view.WindowContainerTransaction;
 import android.view.WindowManagerGlobal;
+import android.window.IWindowContainer;
+import android.window.WindowContainerTransaction;
+import android.window.WindowOrganizer;
 
 import com.android.internal.annotations.GuardedBy;
 
@@ -111,8 +113,7 @@
         WindowContainerTransaction t = new WindowContainerTransaction();
         splitLayout.resizeSplits(position, t);
         try {
-            ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(t,
-                    null /* organizer */);
+            WindowOrganizer.applyTransaction(t);
         } catch (RemoteException e) {
         }
     }
@@ -122,10 +123,8 @@
         boolean resizable = false;
         try {
             List<ActivityManager.RunningTaskInfo> rootTasks = parent == null
-                    ? ActivityTaskManager.getTaskOrganizerController().getRootTasks(
-                            Display.DEFAULT_DISPLAY, HOME_AND_RECENTS)
-                    : ActivityTaskManager.getTaskOrganizerController().getChildTasks(parent,
-                            HOME_AND_RECENTS);
+                    ? TaskOrganizer.getRootTasks(Display.DEFAULT_DISPLAY, HOME_AND_RECENTS)
+                    : TaskOrganizer.getChildTasks(parent, HOME_AND_RECENTS);
             for (int i = 0, n = rootTasks.size(); i < n; ++i) {
                 final ActivityManager.RunningTaskInfo ti = rootTasks.get(i);
                 out.add(ti.token);
@@ -158,6 +157,7 @@
         for (int i = homeStacks.size() - 1; i >= 0; --i) {
             wct.setBounds(homeStacks.get(i), homeBounds);
         }
+        layout.mTiles.mHomeBounds.set(homeBounds);
         return isHomeResizable;
     }
 
@@ -174,26 +174,27 @@
             // Set launchtile first so that any stack created after
             // getAllStackInfos and before reparent (even if unlikely) are placed
             // correctly.
-            ActivityTaskManager.getTaskOrganizerController().setLaunchRoot(
-                    DEFAULT_DISPLAY, tiles.mSecondary.token);
+            TaskOrganizer.setLaunchRoot(DEFAULT_DISPLAY, tiles.mSecondary.token);
             List<ActivityManager.RunningTaskInfo> rootTasks =
-                    ActivityTaskManager.getTaskOrganizerController().getRootTasks(DEFAULT_DISPLAY,
-                            null /* activityTypes */);
+                    TaskOrganizer.getRootTasks(DEFAULT_DISPLAY, null /* activityTypes */);
             WindowContainerTransaction wct = new WindowContainerTransaction();
             if (rootTasks.isEmpty()) {
                 return false;
             }
+            tiles.mHomeAndRecentsSurfaces.clear();
             for (int i = rootTasks.size() - 1; i >= 0; --i) {
-                if (rootTasks.get(i).configuration.windowConfiguration.getWindowingMode()
+                final ActivityManager.RunningTaskInfo rootTask = rootTasks.get(i);
+                if (isHomeOrRecentTask(rootTask)) {
+                    tiles.mHomeAndRecentsSurfaces.add(rootTask.token.getLeash());
+                }
+                if (rootTask.configuration.windowConfiguration.getWindowingMode()
                         != WINDOWING_MODE_FULLSCREEN) {
                     continue;
                 }
-                wct.reparent(rootTasks.get(i).token, tiles.mSecondary.token,
-                        true /* onTop */);
+                wct.reparent(rootTask.token, tiles.mSecondary.token, true /* onTop */);
             }
             boolean isHomeResizable = applyHomeTasksMinimized(layout, null /* parent */, wct);
-            ActivityTaskManager.getTaskOrganizerController()
-                    .applyContainerTransaction(wct, null /* organizer */);
+            WindowOrganizer.applyTransaction(wct);
             return isHomeResizable;
         } catch (RemoteException e) {
             Log.w(TAG, "Error moving fullscreen tasks to secondary split: " + e);
@@ -216,22 +217,19 @@
         try {
             // Set launch root first so that any task created after getChildContainers and
             // before reparent (pretty unlikely) are put into fullscreen.
-            ActivityTaskManager.getTaskOrganizerController().setLaunchRoot(Display.DEFAULT_DISPLAY,
-                    null);
+            TaskOrganizer.setLaunchRoot(Display.DEFAULT_DISPLAY, null);
+            tiles.mHomeAndRecentsSurfaces.clear();
             // TODO(task-org): Once task-org is more complete, consider using Appeared/Vanished
             //                 plus specific APIs to clean this up.
             List<ActivityManager.RunningTaskInfo> primaryChildren =
-                    ActivityTaskManager.getTaskOrganizerController().getChildTasks(
-                            tiles.mPrimary.token, null /* activityTypes */);
+                    TaskOrganizer.getChildTasks(tiles.mPrimary.token, null /* activityTypes */);
             List<ActivityManager.RunningTaskInfo> secondaryChildren =
-                    ActivityTaskManager.getTaskOrganizerController().getChildTasks(
-                            tiles.mSecondary.token, null /* activityTypes */);
+                    TaskOrganizer.getChildTasks(tiles.mSecondary.token, null /* activityTypes */);
             // In some cases (eg. non-resizable is launched), system-server will leave split-screen.
             // as a result, the above will not capture any tasks; yet, we need to clean-up the
             // home task bounds.
             List<ActivityManager.RunningTaskInfo> freeHomeAndRecents =
-                    ActivityTaskManager.getTaskOrganizerController().getRootTasks(
-                            Display.DEFAULT_DISPLAY, HOME_AND_RECENTS);
+                    TaskOrganizer.getRootTasks(Display.DEFAULT_DISPLAY, HOME_AND_RECENTS);
             if (primaryChildren.isEmpty() && secondaryChildren.isEmpty()
                     && freeHomeAndRecents.isEmpty()) {
                 return;
@@ -281,8 +279,7 @@
             }
             // Reset focusable to true
             wct.setFocusable(tiles.mPrimary.token, true /* focusable */);
-            ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(wct,
-                    null /* organizer */);
+            WindowOrganizer.applyTransaction(wct);
         } catch (RemoteException e) {
             Log.w(TAG, "Failed to remove stack: " + e);
         }
@@ -290,8 +287,7 @@
 
     static void applyContainerTransaction(WindowContainerTransaction wct) {
         try {
-            ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(wct,
-                    null /* organizer */);
+            WindowOrganizer.applyTransaction(wct);
         } catch (RemoteException e) {
             Log.w(TAG, "Error setting focusability: " + e);
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CrossFadeHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/CrossFadeHelper.java
index 164215b..b57b22f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/CrossFadeHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/CrossFadeHelper.java
@@ -50,7 +50,9 @@
                         if (endRunnable != null) {
                             endRunnable.run();
                         }
-                        view.setVisibility(View.INVISIBLE);
+                        if (view.getVisibility() != View.GONE) {
+                            view.setVisibility(View.INVISIBLE);
+                        }
                     }
                 });
         if (view.hasOverlappingRendering()) {
@@ -75,7 +77,7 @@
      */
     public static void fadeOut(View view, float fadeOutAmount, boolean remap) {
         view.animate().cancel();
-        if (fadeOutAmount == 1.0f) {
+        if (fadeOutAmount == 1.0f && view.getVisibility() != View.GONE) {
             view.setVisibility(View.INVISIBLE);
         } else if (view.getVisibility() == View.INVISIBLE) {
             view.setVisibility(View.VISIBLE);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/DragDownHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/DragDownHelper.java
index 5adee40..4fa7822 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/DragDownHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/DragDownHelper.java
@@ -48,7 +48,8 @@
     private float mInitialTouchX;
     private float mInitialTouchY;
     private boolean mDraggingDown;
-    private float mTouchSlop;
+    private final float mTouchSlop;
+    private final float mSlopMultiplier;
     private DragDownCallback mDragDownCallback;
     private View mHost;
     private final int[] mTemp2 = new int[2];
@@ -62,7 +63,9 @@
             FalsingManager falsingManager) {
         mMinDragDistance = context.getResources().getDimensionPixelSize(
                 R.dimen.keyguard_drag_down_min_distance);
-        mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
+        final ViewConfiguration configuration = ViewConfiguration.get(context);
+        mTouchSlop = configuration.getScaledTouchSlop();
+        mSlopMultiplier = configuration.getScaledAmbiguousGestureMultiplier();
         mCallback = callback;
         mDragDownCallback = dragDownCallback;
         mHost = host;
@@ -85,7 +88,12 @@
 
             case MotionEvent.ACTION_MOVE:
                 final float h = y - mInitialTouchY;
-                if (h > mTouchSlop && h > Math.abs(x - mInitialTouchX)) {
+                // Adjust the touch slop if another gesture may be being performed.
+                final float touchSlop =
+                        event.getClassification() == MotionEvent.CLASSIFICATION_AMBIGUOUS_GESTURE
+                        ? mTouchSlop * mSlopMultiplier
+                        : mTouchSlop;
+                if (h > touchSlop && h > Math.abs(x - mInitialTouchX)) {
                     mFalsingManager.onNotificatonStartDraggingDown();
                     mDraggingDown = true;
                     captureStartingChild(mInitialTouchX, mInitialTouchY);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
index b906442..5475812 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
@@ -93,7 +93,7 @@
     private String mRestingIndication;
     private String mAlignmentIndication;
     private CharSequence mTransientIndication;
-    private ColorStateList mTransientTextColorState;
+    private boolean mTransientTextIsError;
     private ColorStateList mInitialTextColorState;
     private boolean mVisible;
     private boolean mHideTransientMessageOnScreenOff;
@@ -260,7 +260,7 @@
      * Shows {@param transientIndication} until it is hidden by {@link #hideTransientIndication}.
      */
     public void showTransientIndication(CharSequence transientIndication) {
-        showTransientIndication(transientIndication, mInitialTextColorState,
+        showTransientIndication(transientIndication, false /* isError */,
                 false /* hideOnScreenOff */);
     }
 
@@ -268,10 +268,10 @@
      * Shows {@param transientIndication} until it is hidden by {@link #hideTransientIndication}.
      */
     private void showTransientIndication(CharSequence transientIndication,
-            ColorStateList textColorState, boolean hideOnScreenOff) {
+            boolean isError, boolean hideOnScreenOff) {
         mTransientIndication = transientIndication;
         mHideTransientMessageOnScreenOff = hideOnScreenOff && transientIndication != null;
-        mTransientTextColorState = textColorState;
+        mTransientTextIsError = isError;
         mHandler.removeMessages(MSG_HIDE_TRANSIENT);
         mHandler.removeMessages(MSG_SWIPE_UP_TO_UNLOCK);
         if (mDozing && !TextUtils.isEmpty(mTransientIndication)) {
@@ -311,7 +311,6 @@
                     mTextView.switchIndication(mTransientIndication);
                 } else if (!TextUtils.isEmpty(mAlignmentIndication)) {
                     mTextView.switchIndication(mAlignmentIndication);
-                    mTextView.setTextColor(Utils.getColorError(mContext));
                 } else if (mPowerPluggedIn) {
                     String indication = computePowerIndication();
                     if (animate) {
@@ -336,11 +335,11 @@
                 powerIndication = computePowerIndication();
             }
 
+            boolean isError = false;
             if (!mKeyguardUpdateMonitor.isUserUnlocked(userId)) {
                 mTextView.switchIndication(com.android.internal.R.string.lockscreen_storage_locked);
-                mTextView.setTextColor(mInitialTextColorState);
             } else if (!TextUtils.isEmpty(mTransientIndication)) {
-                if (powerIndication != null) {
+                if (powerIndication != null && !mTransientIndication.equals(powerIndication)) {
                     String indication = mContext.getResources().getString(
                             R.string.keyguard_indication_trust_unlocked_plugged_in,
                             mTransientIndication, powerIndication);
@@ -348,7 +347,7 @@
                 } else {
                     mTextView.switchIndication(mTransientIndication);
                 }
-                mTextView.setTextColor(mTransientTextColorState);
+                isError = mTransientTextIsError;
             } else if (!TextUtils.isEmpty(trustGrantedIndication)
                     && mKeyguardUpdateMonitor.getUserHasTrust(userId)) {
                 if (powerIndication != null) {
@@ -359,15 +358,13 @@
                 } else {
                     mTextView.switchIndication(trustGrantedIndication);
                 }
-                mTextView.setTextColor(mInitialTextColorState);
             } else if (!TextUtils.isEmpty(mAlignmentIndication)) {
                 mTextView.switchIndication(mAlignmentIndication);
-                mTextView.setTextColor(Utils.getColorError(mContext));
+                isError = true;
             } else if (mPowerPluggedIn) {
                 if (DEBUG_CHARGING_SPEED) {
                     powerIndication += ",  " + (mChargingWattage / 1000) + " mW";
                 }
-                mTextView.setTextColor(mInitialTextColorState);
                 if (animate) {
                     animateText(mTextView, powerIndication);
                 } else {
@@ -377,11 +374,11 @@
                     && mKeyguardUpdateMonitor.getUserTrustIsManaged(userId)
                     && !mKeyguardUpdateMonitor.getUserHasTrust(userId)) {
                 mTextView.switchIndication(trustManagedIndication);
-                mTextView.setTextColor(mInitialTextColorState);
             } else {
                 mTextView.switchIndication(mRestingIndication);
-                mTextView.setTextColor(mInitialTextColorState);
             }
+            mTextView.setTextColor(isError ? Utils.getColorError(mContext)
+                    : mInitialTextColorState);
         }
     }
 
@@ -532,7 +529,7 @@
             mStatusBarKeyguardViewManager.showBouncerMessage(message, mInitialTextColorState);
         } else if (mKeyguardUpdateMonitor.isScreenOn()) {
             showTransientIndication(mContext.getString(R.string.keyguard_unlock),
-                    mInitialTextColorState, true /* hideOnScreenOff */);
+                    false /* isError */, true /* hideOnScreenOff */);
             hideTransientIndicationDelayed(BaseKeyguardCallback.HIDE_DELAY_MS);
         }
     }
@@ -551,7 +548,7 @@
 
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         pw.println("KeyguardIndicationController:");
-        pw.println("  mTransientTextColorState: " + mTransientTextColorState);
+        pw.println("  mTransientTextIsError: " + mTransientTextIsError);
         pw.println("  mInitialTextColorState: " + mInitialTextColorState);
         pw.println("  mPowerPluggedInWired: " + mPowerPluggedInWired);
         pw.println("  mPowerPluggedIn: " + mPowerPluggedIn);
@@ -630,7 +627,7 @@
                 mStatusBarKeyguardViewManager.showBouncerMessage(helpString,
                         mInitialTextColorState);
             } else if (mKeyguardUpdateMonitor.isScreenOn()) {
-                showTransientIndication(helpString, mInitialTextColorState, showSwipeToUnlock);
+                showTransientIndication(helpString, false /* isError */, showSwipeToUnlock);
                 if (!showSwipeToUnlock) {
                     hideTransientIndicationDelayed(TRANSIENT_BIOMETRIC_ERROR_TIMEOUT);
                 }
@@ -704,14 +701,13 @@
 
         @Override
         public void onTrustAgentErrorMessage(CharSequence message) {
-            showTransientIndication(message, Utils.getColorError(mContext),
-                    false /* hideOnScreenOff */);
+            showTransientIndication(message, true /* isError */, false /* hideOnScreenOff */);
         }
 
         @Override
         public void onScreenTurnedOn() {
             if (mMessageToShowOnScreenOn != null) {
-                showTransientIndication(mMessageToShowOnScreenOn, Utils.getColorError(mContext),
+                showTransientIndication(mMessageToShowOnScreenOn, true /* isError */,
                         false /* hideOnScreenOff */);
                 // We want to keep this message around in case the screen was off
                 hideTransientIndicationDelayed(HIDE_DELAY_MS);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationHeaderUtil.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationHeaderUtil.java
index 4759d56..ba3db09 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationHeaderUtil.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationHeaderUtil.java
@@ -28,6 +28,7 @@
 import android.widget.TextView;
 
 import com.android.internal.util.ContrastColorUtil;
+import com.android.internal.widget.ConversationLayout;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
 import com.android.systemui.statusbar.notification.row.NotificationContentView;
 
@@ -42,6 +43,7 @@
 
     private static final TextViewComparator sTextViewComparator = new TextViewComparator();
     private static final VisibilityApplicator sVisibilityApplicator = new VisibilityApplicator();
+    private static final VisibilityApplicator sAppNameApplicator = new AppNameApplicator();
     private static  final DataExtractor sIconExtractor = new DataExtractor() {
         @Override
         public Object extractData(ExpandableNotificationRow row) {
@@ -64,7 +66,7 @@
     };
     private final static ResultApplicator mGreyApplicator = new ResultApplicator() {
         @Override
-        public void apply(View view, boolean apply) {
+        public void apply(View parent, View view, boolean apply, boolean reset) {
             NotificationHeaderView header = (NotificationHeaderView) view;
             ImageView icon = (ImageView) view.findViewById(
                     com.android.internal.R.id.icon);
@@ -132,8 +134,12 @@
                     }
                 },
                 sVisibilityApplicator));
-        mComparators.add(HeaderProcessor.forTextView(mRow,
-                com.android.internal.R.id.app_name_text));
+        mComparators.add(new HeaderProcessor(
+                mRow,
+                com.android.internal.R.id.app_name_text,
+                null,
+                sTextViewComparator,
+                sAppNameApplicator));
         mComparators.add(HeaderProcessor.forTextView(mRow,
                 com.android.internal.R.id.header_text));
         mDividers.add(com.android.internal.R.id.header_text_divider);
@@ -299,19 +305,19 @@
         public void apply(ExpandableNotificationRow row, boolean reset) {
             boolean apply = mApply && !reset;
             if (row.isSummaryWithChildren()) {
-                applyToView(apply, row.getNotificationHeader());
+                applyToView(apply, reset, row.getNotificationHeader());
                 return;
             }
-            applyToView(apply, row.getPrivateLayout().getContractedChild());
-            applyToView(apply, row.getPrivateLayout().getHeadsUpChild());
-            applyToView(apply, row.getPrivateLayout().getExpandedChild());
+            applyToView(apply, reset, row.getPrivateLayout().getContractedChild());
+            applyToView(apply, reset, row.getPrivateLayout().getHeadsUpChild());
+            applyToView(apply, reset, row.getPrivateLayout().getExpandedChild());
         }
 
-        private void applyToView(boolean apply, View parent) {
+        private void applyToView(boolean apply, boolean reset, View parent) {
             if (parent != null) {
                 View view = parent.findViewById(mId);
                 if (view != null && !mComparator.isEmpty(view)) {
-                    mApplicator.apply(view, apply);
+                    mApplicator.apply(parent, view, apply, reset);
                 }
             }
         }
@@ -375,14 +381,26 @@
     }
 
     private interface ResultApplicator {
-        void apply(View view, boolean apply);
+        void apply(View parent, View view, boolean apply, boolean reset);
     }
 
     private static class VisibilityApplicator implements ResultApplicator {
 
         @Override
-        public void apply(View view, boolean apply) {
+        public void apply(View parent, View view, boolean apply, boolean reset) {
             view.setVisibility(apply ? View.GONE : View.VISIBLE);
         }
     }
+
+    private static class AppNameApplicator extends VisibilityApplicator {
+
+        @Override
+        public void apply(View parent, View view, boolean apply, boolean reset) {
+            if (reset && parent instanceof ConversationLayout) {
+                ConversationLayout layout = (ConversationLayout) parent;
+                apply = layout.shouldHideAppName();
+            }
+            super.apply(parent, view, apply, reset);
+        }
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
index d8fdf92..e32d174 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
@@ -46,6 +46,7 @@
 
 import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
 import com.android.internal.statusbar.NotificationVisibility;
+import com.android.keyguard.KeyguardMediaPlayer;
 import com.android.systemui.Dependency;
 import com.android.systemui.Dumpable;
 import com.android.systemui.Interpolators;
@@ -65,6 +66,7 @@
 import com.android.systemui.statusbar.phone.StatusBar;
 import com.android.systemui.statusbar.policy.KeyguardStateController;
 import com.android.systemui.util.DeviceConfigProxy;
+import com.android.systemui.util.Utils;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -111,6 +113,7 @@
     private ScrimController mScrimController;
     @Nullable
     private LockscreenWallpaper mLockscreenWallpaper;
+    private final KeyguardMediaPlayer mMediaPlayer;
 
     private final Executor mMainExecutor;
 
@@ -184,11 +187,13 @@
             NotificationEntryManager notificationEntryManager,
             MediaArtworkProcessor mediaArtworkProcessor,
             KeyguardBypassController keyguardBypassController,
+            KeyguardMediaPlayer keyguardMediaPlayer,
             @Main Executor mainExecutor,
             DeviceConfigProxy deviceConfig) {
         mContext = context;
         mMediaArtworkProcessor = mediaArtworkProcessor;
         mKeyguardBypassController = keyguardBypassController;
+        mMediaPlayer = keyguardMediaPlayer;
         mMediaListeners = new ArrayList<>();
         // TODO: use MediaSessionManager.SessionListener to hook us up to future updates
         // in session state
@@ -468,6 +473,7 @@
             && mBiometricUnlockController.isWakeAndUnlock();
         if (mKeyguardStateController.isLaunchTransitionFadingAway() || wakeAndUnlock) {
             mBackdrop.setVisibility(View.INVISIBLE);
+            mMediaPlayer.clearControls();
             Trace.endSection();
             return;
         }
@@ -490,6 +496,14 @@
             }
         }
 
+        NotificationEntry entry = mEntryManager
+                .getActiveNotificationUnfiltered(mMediaNotificationKey);
+        if (entry != null) {
+            mMediaPlayer.updateControls(entry, getMediaIcon(), mediaMetadata);
+        } else {
+            mMediaPlayer.clearControls();
+        }
+
         // Process artwork on a background thread and send the resulting bitmap to
         // finishUpdateMediaMetaData.
         if (metaDataChanged) {
@@ -498,7 +512,7 @@
             }
             mProcessArtworkTasks.clear();
         }
-        if (artworkBitmap != null) {
+        if (artworkBitmap != null && !Utils.useQsMediaPlayer(mContext)) {
             mProcessArtworkTasks.add(new ProcessArtworkTask(this, metaDataChanged,
                     allowEnterAnimation).execute(artworkBitmap));
         } else {
@@ -612,6 +626,7 @@
                     // We are unlocking directly - no animation!
                     mBackdrop.setVisibility(View.GONE);
                     mBackdropBack.setImageDrawable(null);
+                    mMediaPlayer.clearControls();
                     if (windowController != null) {
                         windowController.setBackdropShowing(false);
                     }
@@ -628,6 +643,7 @@
                                 mBackdrop.setVisibility(View.GONE);
                                 mBackdropFront.animate().cancel();
                                 mBackdropBack.setImageDrawable(null);
+                                mMediaPlayer.clearControls();
                                 mMainExecutor.execute(mHideBackdropFront);
                             });
                     if (mKeyguardStateController.isKeyguardFadingAway()) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt
index 8945f36..a3faa80 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt
@@ -67,32 +67,9 @@
     private var updateScheduled: Boolean = false
     private var shadeExpansion = 0f
     @VisibleForTesting
-    var shadeSpring = SpringAnimation(this, object :
-            FloatPropertyCompat<NotificationShadeDepthController>("shadeBlurRadius") {
-        override fun setValue(rect: NotificationShadeDepthController?, value: Float) {
-            shadeBlurRadius = value.toInt()
-        }
-
-        override fun getValue(rect: NotificationShadeDepthController?): Float {
-            return shadeBlurRadius.toFloat()
-        }
-    })
-    private val zoomInterpolator = Interpolators.ACCELERATE_DECELERATE
-
-    /**
-     * Radius that we're animating to.
-     */
-    private var pendingShadeBlurRadius = -1
-
-    /**
-     * Shade blur radius on the current frame.
-     */
-    private var shadeBlurRadius = 0
-        set(value) {
-            if (field == value) return
-            field = value
-            scheduleUpdate()
-        }
+    var shadeSpring = DepthAnimation()
+    @VisibleForTesting
+    var globalActionsSpring = DepthAnimation()
 
     /**
      * Blur radius of the wake-up animation on this frame.
@@ -103,7 +80,6 @@
             field = value
             scheduleUpdate()
         }
-    private var globalDialogVisibility = 0f
 
     /**
      * Callback that updates the window blur value and is called only once per frame.
@@ -111,12 +87,9 @@
     private val updateBlurCallback = Choreographer.FrameCallback {
         updateScheduled = false
 
-        val blur = max(shadeBlurRadius,
-                max(wakeAndUnlockBlurRadius, blurUtils.blurRadiusOfRatio(globalDialogVisibility)))
+        val blur = max(max(shadeSpring.radius, wakeAndUnlockBlurRadius), globalActionsSpring.radius)
         blurUtils.applyBlur(blurRoot?.viewRootImpl ?: root.viewRootImpl, blur)
-        val rawZoom = max(blurUtils.ratioOfBlurRadius(blur), globalDialogVisibility)
-        wallpaperManager.setWallpaperZoomOut(root.windowToken,
-                zoomInterpolator.getInterpolation(rawZoom))
+        wallpaperManager.setWallpaperZoomOut(root.windowToken, blurUtils.ratioOfBlurRadius(blur))
         notificationShadeWindowController.setBackgroundBlurRadius(blur)
     }
 
@@ -163,8 +136,9 @@
         }
 
         override fun onDozingChanged(isDozing: Boolean) {
-            if (isDozing && shadeSpring.isRunning) {
-                shadeSpring.skipToEnd()
+            if (isDozing) {
+                shadeSpring.finishIfRunning()
+                globalActionsSpring.finishIfRunning()
             }
         }
     }
@@ -174,10 +148,6 @@
         if (WAKE_UP_ANIMATION_ENABLED) {
             keyguardStateController.addCallback(keyguardStateCallback)
         }
-        shadeSpring.spring = SpringForce(0.0f)
-        shadeSpring.spring.dampingRatio = SpringForce.DAMPING_RATIO_NO_BOUNCY
-        shadeSpring.spring.stiffness = SpringForce.STIFFNESS_LOW
-        shadeSpring.addEndListener { _, _, _, _ -> pendingShadeBlurRadius = -1 }
         statusBarStateController.addCallback(statusBarStateCallback)
     }
 
@@ -198,11 +168,7 @@
             newBlur = blurUtils.blurRadiusOfRatio(shadeExpansion)
         }
 
-        if (pendingShadeBlurRadius == newBlur) {
-            return
-        }
-        pendingShadeBlurRadius = newBlur
-        shadeSpring.animateToFinalPosition(newBlur.toFloat())
+        shadeSpring.animateTo(newBlur)
     }
 
     private fun scheduleUpdate(viewToBlur: View? = null) {
@@ -215,19 +181,72 @@
     }
 
     fun updateGlobalDialogVisibility(visibility: Float, dialogView: View) {
-        if (visibility == globalDialogVisibility) {
-            return
-        }
-        globalDialogVisibility = visibility
-        scheduleUpdate(dialogView)
+        globalActionsSpring.animateTo(blurUtils.blurRadiusOfRatio(visibility), dialogView)
     }
 
     override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<out String>) {
         IndentingPrintWriter(pw, "  ").let {
             it.println("StatusBarWindowBlurController:")
             it.increaseIndent()
-            it.println("shadeBlurRadius: $shadeBlurRadius")
+            it.println("shadeRadius: ${shadeSpring.radius}")
+            it.println("globalActionsRadius: ${globalActionsSpring.radius}")
             it.println("wakeAndUnlockBlur: $wakeAndUnlockBlurRadius")
         }
     }
+
+    /**
+     * Animation helper that smoothly animates the depth using a spring and deals with frame
+     * invalidation.
+     */
+    inner class DepthAnimation() {
+        /**
+         * Blur radius visible on the UI, in pixels.
+         */
+        var radius = 0
+            private set
+
+        /**
+         * Radius that we're animating to.
+         */
+        private var pendingRadius = -1
+
+        /**
+         * View on {@link Surface} that wants depth.
+         */
+        private var view: View? = null
+
+        private var springAnimation = SpringAnimation(this, object :
+            FloatPropertyCompat<DepthAnimation>("blurRadius") {
+            override fun setValue(rect: DepthAnimation?, value: Float) {
+                radius = value.toInt()
+                scheduleUpdate(view)
+            }
+
+            override fun getValue(rect: DepthAnimation?): Float {
+                return radius.toFloat()
+            }
+        })
+
+        init {
+            springAnimation.spring = SpringForce(0.0f)
+            springAnimation.spring.dampingRatio = SpringForce.DAMPING_RATIO_NO_BOUNCY
+            springAnimation.spring.stiffness = SpringForce.STIFFNESS_MEDIUM
+            springAnimation.addEndListener { _, _, _, _ -> pendingRadius = -1 }
+        }
+
+        fun animateTo(newRadius: Int, viewToBlur: View? = null) {
+            if (pendingRadius == newRadius && view == viewToBlur) {
+                return
+            }
+            view = viewToBlur
+            pendingRadius = newRadius
+            springAnimation.animateToFinalPosition(newRadius.toFloat())
+        }
+
+        fun finishIfRunning() {
+            if (springAnimation.isRunning) {
+                springAnimation.skipToEnd()
+            }
+        }
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ViewTransformationHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/ViewTransformationHelper.java
index 2a45bc2..83e51cd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ViewTransformationHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ViewTransformationHelper.java
@@ -49,6 +49,14 @@
         mTransformedViews.put(key, transformedView);
     }
 
+    public void addTransformedView(View transformedView) {
+        int key = transformedView.getId();
+        if (key == View.NO_ID) {
+            throw new IllegalArgumentException("View argument does not have a valid id");
+        }
+        addTransformedView(key, transformedView);
+    }
+
     /**
      * Add a view that transforms to a similar sibling, meaning that we should consider any mapping
      * found treated as the same viewType. This is useful for imageViews, where it's hard to compare
@@ -62,6 +70,14 @@
         mKeysTransformingToSimilar.add(key);
     }
 
+    public void addViewTransformingToSimilar(View transformedView) {
+        int key = transformedView.getId();
+        if (key == View.NO_ID) {
+            throw new IllegalArgumentException("View argument does not have a valid id");
+        }
+        addViewTransformingToSimilar(key, transformedView);
+    }
+
     public void reset() {
         mTransformedViews.clear();
         mKeysTransformingToSimilar.clear();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java
index 4c99a90..e64b423 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/StatusBarDependenciesModule.java
@@ -21,6 +21,7 @@
 import android.os.Handler;
 
 import com.android.internal.statusbar.IStatusBarService;
+import com.android.keyguard.KeyguardMediaPlayer;
 import com.android.systemui.bubbles.BubbleController;
 import com.android.systemui.dagger.qualifiers.Main;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
@@ -93,6 +94,7 @@
             NotificationEntryManager notificationEntryManager,
             MediaArtworkProcessor mediaArtworkProcessor,
             KeyguardBypassController keyguardBypassController,
+            KeyguardMediaPlayer keyguardMediaPlayer,
             @Main Executor mainExecutor,
             DeviceConfigProxy deviceConfigProxy) {
         return new NotificationMediaManager(
@@ -102,6 +104,7 @@
                 notificationEntryManager,
                 mediaArtworkProcessor,
                 keyguardBypassController,
+                keyguardMediaPlayer,
                 mainExecutor,
                 deviceConfigProxy);
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ConversationNotificationProcessor.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ConversationNotificationProcessor.kt
new file mode 100644
index 0000000..6be0fff
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ConversationNotificationProcessor.kt
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification
+
+import android.app.Notification
+import android.content.pm.LauncherApps
+import com.android.systemui.statusbar.notification.collection.NotificationEntry
+import javax.inject.Inject
+
+class ConversationNotificationProcessor @Inject constructor(
+    private val launcherApps: LauncherApps
+) {
+    fun processNotification(entry: NotificationEntry, recoveredBuilder: Notification.Builder) {
+        val messagingStyle = recoveredBuilder.style as? Notification.MessagingStyle ?: return
+        messagingStyle.conversationType =
+                if (entry.ranking.channel.isImportantConversation)
+                    Notification.MessagingStyle.CONVERSATION_TYPE_IMPORTANT
+                else
+                    Notification.MessagingStyle.CONVERSATION_TYPE_NORMAL
+        entry.ranking.shortcutInfo?.let { shortcutInfo ->
+            messagingStyle.shortcutIcon = launcherApps.getShortcutIcon(shortcutInfo)
+            shortcutInfo.shortLabel?.let { shortLabel ->
+                messagingStyle.conversationTitle = shortLabel
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ImageTransformState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ImageTransformState.java
index 4882a23..82f7c71 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ImageTransformState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ImageTransformState.java
@@ -117,11 +117,6 @@
     }
 
     @Override
-    protected boolean transformScale(TransformState otherState) {
-        return sameAs(otherState);
-    }
-
-    @Override
     public void recycle() {
         super.recycle();
         if (getClass() == ImageTransformState.class) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/MediaNotificationProcessor.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/MediaNotificationProcessor.java
index 5d1ab4f..db54586 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/MediaNotificationProcessor.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/MediaNotificationProcessor.java
@@ -152,7 +152,13 @@
         }
     }
 
-    private int selectForegroundColor(int backgroundColor, Palette palette) {
+    /**
+     * Select a foreground color depending on whether the background color is dark or light
+     * @param backgroundColor Background color to coordinate with
+     * @param palette Artwork palette, should be obtained from {@link generateArtworkPaletteBuilder}
+     * @return foreground color
+     */
+    public static int selectForegroundColor(int backgroundColor, Palette palette) {
         if (ContrastColorUtil.isColorLight(backgroundColor)) {
             return selectForegroundColorForSwatches(palette.getDarkVibrantSwatch(),
                     palette.getVibrantSwatch(),
@@ -170,7 +176,7 @@
         }
     }
 
-    private int selectForegroundColorForSwatches(Palette.Swatch moreVibrant,
+    private static int selectForegroundColorForSwatches(Palette.Swatch moreVibrant,
             Palette.Swatch vibrant, Palette.Swatch moreMutedSwatch, Palette.Swatch mutedSwatch,
             Palette.Swatch dominantSwatch, int fallbackColor) {
         Palette.Swatch coloredCandidate = selectVibrantCandidate(moreVibrant, vibrant);
@@ -194,7 +200,7 @@
         }
     }
 
-    private Palette.Swatch selectMutedCandidate(Palette.Swatch first,
+    private static Palette.Swatch selectMutedCandidate(Palette.Swatch first,
             Palette.Swatch second) {
         boolean firstValid = hasEnoughPopulation(first);
         boolean secondValid = hasEnoughPopulation(second);
@@ -215,7 +221,8 @@
         return null;
     }
 
-    private Palette.Swatch selectVibrantCandidate(Palette.Swatch first, Palette.Swatch second) {
+    private static Palette.Swatch selectVibrantCandidate(Palette.Swatch first,
+            Palette.Swatch second) {
         boolean firstValid = hasEnoughPopulation(first);
         boolean secondValid = hasEnoughPopulation(second);
         if (firstValid && secondValid) {
@@ -235,7 +242,7 @@
         return null;
     }
 
-    private boolean hasEnoughPopulation(Palette.Swatch swatch) {
+    private static boolean hasEnoughPopulation(Palette.Swatch swatch) {
         // We want a fraction that is at least 1% of the image
         return swatch != null
                 && (swatch.getPopulation() / (float) RESIZE_BITMAP_AREA > MINIMUM_IMAGE_FRACTION);
@@ -257,7 +264,7 @@
      * @param palette Artwork palette, should be obtained from {@link generateArtworkPaletteBuilder}
      * @return Swatch that should be used as the background of the media notification.
      */
-    private static Palette.Swatch findBackgroundSwatch(Palette palette) {
+    public static Palette.Swatch findBackgroundSwatch(Palette palette) {
         // by default we use the dominant palette
         Palette.Swatch dominantSwatch = palette.getDominantSwatch();
         if (dominantSwatch == null) {
@@ -301,7 +308,7 @@
      * @param artwork Media artwork
      * @return Builder that generates the {@link Palette} for the media artwork.
      */
-    private static Palette.Builder generateArtworkPaletteBuilder(Bitmap artwork) {
+    public static Palette.Builder generateArtworkPaletteBuilder(Bitmap artwork) {
         // for the background we only take the left side of the image to ensure
         // a smooth transition
         return Palette.from(artwork)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/MessagingImageTransformState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/MessagingImageTransformState.java
index a3fb225..2ee2153 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/MessagingImageTransformState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/MessagingImageTransformState.java
@@ -82,7 +82,7 @@
             float startActualWidth = getStartActualWidth();
             mImageMessage.setActualWidth(
                     (int) NotificationUtils.interpolate(startActualWidth,
-                            mImageMessage.getStaticWidth(),
+                            mImageMessage.getWidth(),
                             interpolatedValue));
             float startActualHeight = getStartActualHeight();
             mImageMessage.setActualHeight(
@@ -121,7 +121,7 @@
     @Override
     protected void resetTransformedView() {
         super.resetTransformedView();
-        mImageMessage.setActualWidth(mImageMessage.getStaticWidth());
+        mImageMessage.setActualWidth(mImageMessage.getWidth());
         mImageMessage.setActualHeight(mImageMessage.getHeight());
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/MessagingLayoutTransformState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/MessagingLayoutTransformState.java
index 9383f53..5ee4693 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/MessagingLayoutTransformState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/MessagingLayoutTransformState.java
@@ -102,11 +102,11 @@
             MessagingGroup matchingGroup = pairs.get(ownGroup);
             if (!isGone(ownGroup)) {
                 if (matchingGroup != null) {
-                    transformGroups(ownGroup, matchingGroup, transformationAmount, to);
+                    int totalTranslation = transformGroups(ownGroup, matchingGroup,
+                            transformationAmount, to);
                     if (lastPairedGroup == null) {
                         lastPairedGroup = ownGroup;
                         if (to){
-                            float totalTranslation = ownGroup.getTop() - matchingGroup.getTop();
                             currentTranslation = matchingGroup.getAvatar().getTranslationY()
                                     - totalTranslation;
                         } else {
@@ -229,14 +229,19 @@
         return result;
     }
 
-    private void transformGroups(MessagingGroup ownGroup, MessagingGroup otherGroup,
+    /**
+     * Transform two groups towards each other.
+     *
+     * @return the total transformation distance that the group goes through
+     */
+    private int transformGroups(MessagingGroup ownGroup, MessagingGroup otherGroup,
             float transformationAmount, boolean to) {
         boolean useLinearTransformation =
                 otherGroup.getIsolatedMessage() == null && !mTransformInfo.isAnimating();
         transformView(transformationAmount, to, ownGroup.getSenderView(), otherGroup.getSenderView(),
                 true /* sameAsAny */, useLinearTransformation);
-        transformView(transformationAmount, to, ownGroup.getAvatar(), otherGroup.getAvatar(),
-                true /* sameAsAny */, useLinearTransformation);
+        int totalAvatarTranslation = transformView(transformationAmount, to, ownGroup.getAvatar(),
+                otherGroup.getAvatar(), true /* sameAsAny */, useLinearTransformation);
         List<MessagingMessage> ownMessages = ownGroup.getMessages();
         List<MessagingMessage> otherMessages = otherGroup.getMessages();
         float previousTranslation = 0;
@@ -245,6 +250,7 @@
             if (isGone(child)) {
                 continue;
             }
+            float messageAmount = transformationAmount;
             int otherIndex = otherMessages.size() - 1 - i;
             View otherChild = null;
             if (otherIndex >= 0) {
@@ -257,18 +263,19 @@
                 // Let's fade out as we approach the top of the screen. We can only do this if
                 // we're actually moving up
                 float distanceToTop = child.getTop() + child.getHeight() + previousTranslation;
-                transformationAmount = distanceToTop / child.getHeight();
-                transformationAmount = Math.max(0.0f, Math.min(1.0f, transformationAmount));
+                messageAmount = distanceToTop / child.getHeight();
+                messageAmount = Math.max(0.0f, Math.min(1.0f, messageAmount));
                 if (to) {
-                    transformationAmount = 1.0f - transformationAmount;
+                    messageAmount = 1.0f - messageAmount;
                 }
             }
-            transformView(transformationAmount, to, child, otherChild, false, /* sameAsAny */
-                    useLinearTransformation);
+            int totalTranslation = transformView(messageAmount, to, child, otherChild,
+                    false /* sameAsAny */, useLinearTransformation);
             boolean otherIsIsolated = otherGroup.getIsolatedMessage() == otherChild;
-            if (transformationAmount == 0.0f
+            if (messageAmount == 0.0f
                     && (otherIsIsolated || otherGroup.isSingleLine())) {
                 ownGroup.setClippingDisabled(true);
+                mMessagingLayout.setMessagingClippingDisabled(true);
             }
             if (otherChild == null) {
                 child.setTranslationY(previousTranslation);
@@ -276,23 +283,28 @@
             } else if (ownGroup.getIsolatedMessage() == child || otherIsIsolated) {
                 // We don't want to add any translation for the image that is transforming
             } else if (to) {
-                float totalTranslation = child.getTop() + ownGroup.getTop()
-                        - otherChild.getTop() - otherChild.getTop();
                 previousTranslation = otherChild.getTranslationY() - totalTranslation;
             } else {
                 previousTranslation = child.getTranslationY();
             }
         }
         ownGroup.updateClipRect();
+        return totalAvatarTranslation;
     }
 
-    private void transformView(float transformationAmount, boolean to, View ownView,
+    /**
+     * Transform a view to another view.
+     *
+     * @return the total translationY this view goes through
+     */
+    private int transformView(float transformationAmount, boolean to, View ownView,
             View otherView, boolean sameAsAny, boolean useLinearTransformation) {
         TransformState ownState = TransformState.createFrom(ownView, mTransformInfo);
         if (useLinearTransformation) {
             ownState.setDefaultInterpolator(Interpolators.LINEAR);
         }
         ownState.setIsSameAsAnyView(sameAsAny && !isGone(otherView));
+        int totalTranslationDistance = 0;
         if (to) {
             if (otherView != null) {
                 TransformState otherState = TransformState.createFrom(otherView, mTransformInfo);
@@ -306,6 +318,8 @@
                     // since avatars serve as anchors for the rest of the layout transition
                     ownState.transformViewVerticalTo(otherState, transformationAmount);
                 }
+                totalTranslationDistance = ownState.getLaidOutLocationOnScreen()[1]
+                        - otherState.getLaidOutLocationOnScreen()[1];
                 otherState.recycle();
             } else {
                 ownState.disappear(transformationAmount, null);
@@ -323,12 +337,15 @@
                     // since avatars serve as anchors for the rest of the layout transition
                     ownState.transformViewVerticalFrom(otherState, transformationAmount);
                 }
+                totalTranslationDistance = ownState.getLaidOutLocationOnScreen()[1]
+                        - otherState.getLaidOutLocationOnScreen()[1];
                 otherState.recycle();
             } else {
                 ownState.appear(transformationAmount, null);
             }
         }
         ownState.recycle();
+        return totalTranslationDistance;
     }
 
     private HashMap<MessagingGroup, MessagingGroup> findPairs(ArrayList<MessagingGroup> ownGroups,
@@ -362,6 +379,9 @@
         if (view.getVisibility() == View.GONE) {
             return true;
         }
+        if (view.getParent() == null) {
+            return true;
+        }
         final ViewGroup.LayoutParams lp = view.getLayoutParams();
         if (lp instanceof MessagingLinearLayout.LayoutParams
                 && ((MessagingLinearLayout.LayoutParams) lp).hide) {
@@ -433,6 +453,7 @@
             ownGroup.setClippingDisabled(false);
             ownGroup.updateClipRect();
         }
+        mMessagingLayout.setMessagingClippingDisabled(false);
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java
index c6d84ff..d2f781d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java
@@ -651,7 +651,7 @@
      */
     public void updateNotifications(String reason) {
         reapplyFilterAndSort(reason);
-        if (mPresenter != null) {
+        if (mPresenter != null && !mFeatureFlags.isNewNotifPipelineRenderingEnabled()) {
             mPresenter.updateNotificationViews();
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManager.kt
index 48386dc..e2b01ff 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManager.kt
@@ -23,9 +23,11 @@
 import com.android.internal.config.sysui.SystemUiDeviceConfigFlags.NOTIFICATIONS_USE_PEOPLE_FILTERING
 import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_ALERTING
 import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_HEADS_UP
+import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_MEDIA_CONTROLS
 import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_PEOPLE
 import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_SILENT
 import com.android.systemui.util.DeviceConfigProxy
+import com.android.systemui.util.Utils
 
 import javax.inject.Inject
 
@@ -43,9 +45,18 @@
         return usePeopleFiltering(proxy)
     }
 
+    fun isMediaControlsEnabled(): Boolean {
+        return Utils.useQsMediaPlayer(context)
+    }
+
     fun getNotificationBuckets(): IntArray {
         return when {
-            isFilteringEnabled() ->
+            isFilteringEnabled() && isMediaControlsEnabled() ->
+                intArrayOf(BUCKET_HEADS_UP, BUCKET_MEDIA_CONTROLS, BUCKET_PEOPLE, BUCKET_ALERTING,
+                    BUCKET_SILENT)
+            !isFilteringEnabled() && isMediaControlsEnabled() ->
+                intArrayOf(BUCKET_HEADS_UP, BUCKET_MEDIA_CONTROLS, BUCKET_ALERTING, BUCKET_SILENT)
+            isFilteringEnabled() && !isMediaControlsEnabled() ->
                 intArrayOf(BUCKET_HEADS_UP, BUCKET_PEOPLE, BUCKET_ALERTING, BUCKET_SILENT)
             NotificationUtils.useNewInterruptionModel(context) ->
                 intArrayOf(BUCKET_ALERTING, BUCKET_SILENT)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/TransformState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/TransformState.java
index 337f312..27109d2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/TransformState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/TransformState.java
@@ -100,7 +100,7 @@
         transformViewFullyFrom(otherState, transformationAmount);
     }
 
-    protected void ensureVisible() {
+    public void ensureVisible() {
         if (mTransformedView.getVisibility() == View.INVISIBLE
                 || mTransformedView.getAlpha() != 1.0f) {
             // We have the same content, lets show ourselves
@@ -248,7 +248,7 @@
     }
 
     protected boolean transformScale(TransformState otherState) {
-        return false;
+        return sameAs(otherState);
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifViewManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifViewManager.kt
index 0437877..cf670bd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifViewManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifViewManager.kt
@@ -142,9 +142,11 @@
         // To attach rows we can use _this one weird trick_: if the intended view to add does not
         // have a parent, then simply add it (and its children).
         entries.forEach { entry ->
-            val listItem = rowRegistry.requireView(entry)
+            // TODO: We should eventually map GroupEntry's themselves to views so that we don't
+            // depend on representativeEntry here which may actually be null in the future
+            val listItem = rowRegistry.requireView(entry.representativeEntry!!)
 
-            if (listItem.view.parent != null) {
+            if (listItem.view.parent == null) {
                 listContainer.addListItem(listItem)
                 stabilityManager.notifyViewAddition(listItem.view)
             }
@@ -153,7 +155,8 @@
                 for ((idx, childEntry) in entry.children.withIndex()) {
                     val childListItem = rowRegistry.requireView(childEntry)
                     // Child hasn't been added yet. add it!
-                    if (!listItem.notificationChildren.contains(childListItem)) {
+                    if (listItem.notificationChildren == null ||
+                            !listItem.notificationChildren.contains(childListItem)) {
                         // TODO: old code here just Log.wtf()'d here. This might wreak havoc
                         if (childListItem.view.parent != null) {
                             throw IllegalStateException("trying to add a notification child that " +
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java
index 7019b5b..808e1b3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java
@@ -108,6 +108,12 @@
     /** If this notification was filtered out, then the filter that did the filtering. */
     @Nullable NotifFilter mExcludingFilter;
 
+    /**
+     * The NotifFilter, if any, that was active on this notification during the previous run of
+     * the list builder.
+     */
+    @Nullable NotifFilter mPreviousExcludingFilter;
+
     /** If this was a group child that was promoted to the top level, then who did the promoting. */
     @Nullable NotifPromoter mNotifPromoter;
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManager.kt
index 8674047..ec17f4e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManager.kt
@@ -58,7 +58,7 @@
     private val headsUpManager: HeadsUpManager,
     private val notifFilter: NotificationFilter,
     private val logger: NotificationEntryManagerLogger,
-    sectionsFeatureManager: NotificationSectionsFeatureManager,
+    private val sectionsFeatureManager: NotificationSectionsFeatureManager,
     private val peopleNotificationIdentifier: PeopleNotificationIdentifier,
     private val highPriorityProvider: HighPriorityProvider
 ) {
@@ -68,7 +68,8 @@
     private val mediaManager by lazy {
         mediaManagerLazy.get()
     }
-    private val usePeopleFiltering: Boolean = sectionsFeatureManager.isFilteringEnabled()
+    private val usePeopleFiltering: Boolean
+        get() = sectionsFeatureManager.isFilteringEnabled()
     private val rankingComparator: Comparator<NotificationEntry> = Comparator { a, b ->
         val na = a.sbn
         val nb = b.sbn
@@ -78,12 +79,6 @@
         val aPersonType = a.getPeopleNotificationType()
         val bPersonType = b.getPeopleNotificationType()
 
-        val aIsPeople = aPersonType == TYPE_PERSON
-        val bIsPeople = bPersonType == TYPE_PERSON
-
-        val aIsImportantPeople = aPersonType == TYPE_IMPORTANT_PERSON
-        val bIsImportantPeople = bPersonType == TYPE_IMPORTANT_PERSON
-
         val aMedia = isImportantMedia(a)
         val bMedia = isImportantMedia(b)
 
@@ -100,9 +95,14 @@
             aHeadsUp != bHeadsUp -> if (aHeadsUp) -1 else 1
             // Provide consistent ranking with headsUpManager
             aHeadsUp -> headsUpManager.compare(a, b)
-            usePeopleFiltering && aIsPeople != bIsPeople -> if (aIsPeople) -1 else 1
-            usePeopleFiltering && aIsImportantPeople != bIsImportantPeople ->
-                if (aIsImportantPeople) -1 else 1
+            usePeopleFiltering && aPersonType != bPersonType -> when (aPersonType) {
+                TYPE_IMPORTANT_PERSON -> -1
+                TYPE_PERSON -> when (bPersonType) {
+                    TYPE_IMPORTANT_PERSON -> 1
+                    else -> -1
+                }
+                else -> 1
+            }
             // Upsort current media notification.
             aMedia != bMedia -> if (aMedia) -1 else 1
             // Upsort PRIORITY_MAX system notifications
@@ -124,36 +124,31 @@
         entries: Collection<NotificationEntry>,
         reason: String
     ): List<NotificationEntry> {
-        val eSeq = entries.asSequence()
-
         // TODO: may not be ideal to guard on null here, but this code is implementing exactly what
         // NotificationData used to do
         if (newRankingMap != null) {
             rankingMap = newRankingMap
-            updateRankingForEntries(eSeq)
+            updateRankingForEntries(entries)
         }
-
-        val filtered: Sequence<NotificationEntry>
-        synchronized(this) {
-            filtered = filterAndSortLocked(eSeq, reason)
+        return synchronized(this) {
+            filterAndSortLocked(entries, reason)
         }
-
-        return filtered.toList()
     }
 
     /** Uses the [rankingComparator] to sort notifications which aren't filtered */
     private fun filterAndSortLocked(
-        entries: Sequence<NotificationEntry>,
+        entries: Collection<NotificationEntry>,
         reason: String
-    ): Sequence<NotificationEntry> {
+    ): List<NotificationEntry> {
         logger.logFilterAndSort(reason)
-
-        return entries.filter { !notifFilter.shouldFilterOut(it) }
+        val filtered = entries.asSequence()
+                .filterNot(notifFilter::shouldFilterOut)
                 .sortedWith(rankingComparator)
-                .map {
-                    assignBucketForEntry(it)
-                    it
-                }
+                .toList()
+        for (entry in filtered) {
+            assignBucketForEntry(entry)
+        }
+        return filtered
     }
 
     private fun assignBucketForEntry(entry: NotificationEntry) {
@@ -180,13 +175,13 @@
         }
     }
 
-    private fun updateRankingForEntries(entries: Sequence<NotificationEntry>) {
+    private fun updateRankingForEntries(entries: Iterable<NotificationEntry>) {
         rankingMap?.let { rankingMap ->
             synchronized(entries) {
-                entries.forEach { entry ->
+                for (entry in entries) {
                     val newRanking = Ranking()
                     if (!rankingMap.getRanking(entry.key, newRanking)) {
-                        return@forEach
+                        continue
                     }
                     entry.ranking = newRanking
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java
index f7d6cef..19f7cef 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java
@@ -316,6 +316,7 @@
 
         // Step 7: Lock in our group structure and log anything that's changed since the last run
         mPipelineState.incrementTo(STATE_FINALIZING);
+        logFilterChanges();
         logParentingChanges();
         freeEmptyGroups();
 
@@ -363,6 +364,9 @@
             entry.setPreviousParent(entry.getParent());
             entry.setParent(null);
 
+            entry.mPreviousExcludingFilter = entry.mExcludingFilter;
+            entry.mExcludingFilter = null;
+
             if (entry.mFirstAddedIteration == -1) {
                 entry.mFirstAddedIteration = mIterationCount;
             }
@@ -371,8 +375,10 @@
         mNotifList.clear();
     }
 
-    private void filterNotifs(Collection<? extends ListEntry> entries,
-            List<ListEntry> out, List<NotifFilter> filters) {
+    private void filterNotifs(
+            Collection<? extends ListEntry> entries,
+            List<ListEntry> out,
+            List<NotifFilter> filters) {
         final long now = mSystemClock.uptimeMillis();
         for (ListEntry entry : entries)  {
             if (entry instanceof GroupEntry) {
@@ -585,8 +591,9 @@
      * filtered out during any of the filtering steps.
      */
     private void annulAddition(ListEntry entry) {
-        entry.setSection(-1);
-        entry.mNotifSection = null;
+        // TODO: We should null out the entry's section and promoter here. However, if we do that,
+        //  future runs will think that the section changed. We need a mPreviousNotifSection,
+        //  similar to what we do for parents.
         entry.setParent(null);
         if (entry.mFirstAddedIteration == mIterationCount) {
             entry.mFirstAddedIteration = -1;
@@ -615,6 +622,17 @@
         mGroups.values().removeIf(ge -> ge.getSummary() == null && ge.getChildren().isEmpty());
     }
 
+    private void logFilterChanges() {
+        for (NotificationEntry entry : mAllEntries) {
+            if (entry.mExcludingFilter != entry.mPreviousExcludingFilter) {
+                mLogger.logFilterChanged(
+                        entry.getKey(),
+                        entry.mPreviousExcludingFilter,
+                        entry.mExcludingFilter);
+            }
+        }
+    }
+
     private void logParentingChanges() {
         for (NotificationEntry entry : mAllEntries) {
             if (entry.getParent() != entry.getPreviousParent()) {
@@ -680,21 +698,8 @@
     };
 
     private boolean applyFilters(NotificationEntry entry, long now, List<NotifFilter> filters) {
-        NotifFilter filter = findRejectingFilter(entry, now, filters);
-
-        if (filter != entry.mExcludingFilter) {
-            mLogger.logFilterChanged(
-                    entry.getKey(),
-                    entry.mExcludingFilter != null ? entry.mExcludingFilter.getName() : null,
-                    filter != null ? filter.getName() : null);
-
-            // Note that groups and summaries can also be filtered out later if they're part of a
-            // malformed group. We currently don't have a great way to track that beyond parenting
-            // change logs. Consider adding something similar to mExcludingFilter for them.
-            entry.mExcludingFilter = filter;
-        }
-
-        return filter != null;
+        entry.mExcludingFilter = findRejectingFilter(entry, now, filters);
+        return entry.mExcludingFilter != null;
     }
 
     @Nullable private static NotifFilter findRejectingFilter(NotificationEntry entry, long now,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HideNotifsForOtherUsersCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HideNotifsForOtherUsersCoordinator.java
new file mode 100644
index 0000000..261ae07
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HideNotifsForOtherUsersCoordinator.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.collection.coordinator;
+
+import android.content.pm.UserInfo;
+import android.util.SparseArray;
+
+import com.android.systemui.statusbar.NotificationLockscreenUserManager;
+import com.android.systemui.statusbar.NotificationLockscreenUserManager.UserChangedListener;
+import com.android.systemui.statusbar.notification.collection.NotifPipeline;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
+
+import javax.inject.Inject;
+
+/**
+ * A coordinator that filters out notifications for other users
+ *
+ * The NotifCollection contains the notifs for ALL users, so we need to remove any notifications
+ * that have been posted specifically to other users. Note that some system notifications are not
+ * posted to any particular user, and so must be shown to everyone.
+ *
+ * TODO: The NotificationLockscreenUserManager currently maintains the list of active user profiles.
+ *  We should spin that off into a standalone section at some point.
+ */
+public class HideNotifsForOtherUsersCoordinator implements Coordinator {
+    private final NotificationLockscreenUserManager mLockscreenUserManager;
+
+    @Inject
+    public HideNotifsForOtherUsersCoordinator(
+            NotificationLockscreenUserManager lockscreenUserManager) {
+        mLockscreenUserManager = lockscreenUserManager;
+    }
+
+    @Override
+    public void attach(NotifPipeline pipeline) {
+        pipeline.addPreGroupFilter(mFilter);
+        mLockscreenUserManager.addUserChangedListener(mUserChangedListener);
+    }
+
+    private final NotifFilter mFilter = new NotifFilter("NotCurrentUserFilter") {
+        @Override
+        public boolean shouldFilterOut(NotificationEntry entry, long now) {
+            return !mLockscreenUserManager
+                    .isCurrentProfile(entry.getSbn().getUser().getIdentifier());
+        }
+    };
+
+    private final UserChangedListener mUserChangedListener = new UserChangedListener() {
+        @Override
+        public void onCurrentProfilesChanged(SparseArray<UserInfo> currentProfiles) {
+            mFilter.invalidateList();
+        }
+    };
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinator.java
index aaf71f5..b773856 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinator.java
@@ -95,11 +95,6 @@
         public boolean shouldFilterOut(NotificationEntry entry, long now) {
             final StatusBarNotification sbn = entry.getSbn();
 
-            // FILTER OUT the notification when the notification isn't for the current profile
-            if (!mLockscreenUserManager.isCurrentProfile(sbn.getUserId())) {
-                return true;
-            }
-
             // FILTER OUT the notification when the keyguard is showing and...
             if (mKeyguardStateController.isShowing()) {
                 // ... user settings or the device policy manager doesn't allow lockscreen
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/NotifCoordinators.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/NotifCoordinators.java
index 98104f8..03c0ae6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/NotifCoordinators.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/NotifCoordinators.java
@@ -49,15 +49,17 @@
     public NotifCoordinators(
             DumpManager dumpManager,
             FeatureFlags featureFlags,
-            HeadsUpCoordinator headsUpCoordinator,
+            HideNotifsForOtherUsersCoordinator hideNotifsForOtherUsersCoordinator,
             KeyguardCoordinator keyguardCoordinator,
             RankingCoordinator rankingCoordinator,
             ForegroundCoordinator foregroundCoordinator,
             DeviceProvisionedCoordinator deviceProvisionedCoordinator,
             BubbleCoordinator bubbleCoordinator,
+            HeadsUpCoordinator headsUpCoordinator,
             PreparationCoordinator preparationCoordinator) {
         dumpManager.registerDumpable(TAG, this);
         mCoordinators.add(new HideLocallyDismissedNotifsCoordinator());
+        mCoordinators.add(hideNotifsForOtherUsersCoordinator);
         mCoordinators.add(keyguardCoordinator);
         mCoordinators.add(rankingCoordinator);
         mCoordinators.add(foregroundCoordinator);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java
index 7e9e760..e9cbf32 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinator.java
@@ -45,7 +45,8 @@
     public void attach(NotifPipeline pipeline) {
         mStatusBarStateController.addCallback(mStatusBarStateCallback);
 
-        pipeline.addPreGroupFilter(mNotifFilter);
+        pipeline.addPreGroupFilter(mSuspendedFilter);
+        pipeline.addPreGroupFilter(mDozingFilter);
     }
 
     /**
@@ -53,33 +54,30 @@
      * NotifListBuilder invalidates the notification list each time the ranking is updated,
      * so we don't need to explicitly invalidate this filter on ranking update.
      */
-    private final NotifFilter mNotifFilter = new NotifFilter(TAG) {
+    private final NotifFilter mSuspendedFilter = new NotifFilter("IsSuspendedFilter") {
         @Override
         public boolean shouldFilterOut(NotificationEntry entry, long now) {
-            // App suspended from Ranking
-            if (entry.getRanking().isSuspended()) {
-                return true;
-            }
+            return entry.getRanking().isSuspended();
+        }
+    };
 
+    private final NotifFilter mDozingFilter = new NotifFilter("IsDozingFilter") {
+        @Override
+        public boolean shouldFilterOut(NotificationEntry entry, long now) {
             // Dozing + DND Settings from Ranking object
             if (mStatusBarStateController.isDozing() && entry.shouldSuppressAmbient()) {
                 return true;
             }
 
-            if (!mStatusBarStateController.isDozing() && entry.shouldSuppressNotificationList()) {
-                return true;
-            }
-
-            return false;
+            return !mStatusBarStateController.isDozing() && entry.shouldSuppressNotificationList();
         }
     };
 
-
     private final StatusBarStateController.StateListener mStatusBarStateCallback =
             new StatusBarStateController.StateListener() {
                 @Override
                 public void onDozingChanged(boolean isDozing) {
-                    mNotifFilter.invalidateList();
+                    mDozingFilter.invalidateList();
                 }
             };
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt
index 763547c..e946cf1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt
@@ -23,6 +23,7 @@
 import com.android.systemui.log.dagger.NotificationLog
 import com.android.systemui.statusbar.notification.collection.GroupEntry
 import com.android.systemui.statusbar.notification.collection.ListEntry
+import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter
 import javax.inject.Inject
 
 class ShadeListBuilderLogger @Inject constructor(
@@ -126,13 +127,13 @@
 
     fun logFilterChanged(
         key: String,
-        prevFilter: String?,
-        newFilter: String?
+        prevFilter: NotifFilter?,
+        newFilter: NotifFilter?
     ) {
         buffer.log(TAG, INFO, {
             str1 = key
-            str2 = prevFilter
-            str3 = newFilter
+            str2 = prevFilter?.name
+            str3 = newFilter?.name
         }, {
             "Filter changed for $str1: $str2 -> $str3"
         })
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
index 1d8e979..565a082 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
@@ -16,7 +16,10 @@
 
 package com.android.systemui.statusbar.notification.dagger;
 
+import android.app.INotificationManager;
 import android.content.Context;
+import android.content.pm.LauncherApps;
+import android.content.pm.ShortcutManager;
 import android.os.Handler;
 import android.view.accessibility.AccessibilityManager;
 
@@ -103,14 +106,20 @@
             Lazy<StatusBar> statusBarLazy,
             @Main Handler mainHandler,
             AccessibilityManager accessibilityManager,
-            HighPriorityProvider highPriorityProvider) {
+            HighPriorityProvider highPriorityProvider,
+            INotificationManager notificationManager,
+            LauncherApps launcherApps,
+            ShortcutManager shortcutManager) {
         return new NotificationGutsManager(
                 context,
                 visualStabilityManager,
                 statusBarLazy,
                 mainHandler,
                 accessibilityManager,
-                highPriorityProvider);
+                highPriorityProvider,
+                notificationManager,
+                launcherApps,
+                shortcutManager);
     }
 
     /** Provides an instance of {@link VisualStabilityManager} */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java
index 46d5044..324bc92 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java
@@ -156,7 +156,7 @@
 
         if (entry.getBubbleMetadata() == null
                 || (entry.getBubbleMetadata().getShortcutId() == null
-                    && entry.getBubbleMetadata().getBubbleIntent() == null)) {
+                    && entry.getBubbleMetadata().getIntent() == null)) {
             if (DEBUG) {
                 Log.d(TAG, "No bubble up: notification: " + sbn.getKey()
                         + " doesn't have valid metadata");
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
index 5f2b256..0ff058b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
@@ -527,7 +527,7 @@
         if (!isNonblockable && mEntry != null && mEntry.mIsSystemNotification != null) {
             if (mEntry.mIsSystemNotification) {
                 if (mEntry.getChannel() != null
-                        && !mEntry.getChannel().isBlockableSystem()) {
+                        && !mEntry.getChannel().isBlockable()) {
                     isNonblockable = true;
                 }
             }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java
index 91cf285..719f74f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java
@@ -36,9 +36,11 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.widget.ImageMessageConsumer;
+import com.android.systemui.dagger.qualifiers.Background;
 import com.android.systemui.statusbar.InflationTask;
 import com.android.systemui.statusbar.NotificationRemoteInputManager;
 import com.android.systemui.statusbar.SmartReplyController;
+import com.android.systemui.statusbar.notification.ConversationNotificationProcessor;
 import com.android.systemui.statusbar.notification.InflationException;
 import com.android.systemui.statusbar.notification.MediaNotificationProcessor;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
@@ -51,6 +53,7 @@
 import com.android.systemui.util.Assert;
 
 import java.util.HashMap;
+import java.util.concurrent.Executor;
 
 import javax.inject.Inject;
 import javax.inject.Singleton;
@@ -72,17 +75,23 @@
     private final NotifRemoteViewCache mRemoteViewCache;
     private final Lazy<SmartReplyConstants> mSmartReplyConstants;
     private final Lazy<SmartReplyController> mSmartReplyController;
+    private final ConversationNotificationProcessor mConversationProcessor;
+    private final Executor mBgExecutor;
 
     @Inject
     NotificationContentInflater(
             NotifRemoteViewCache remoteViewCache,
             NotificationRemoteInputManager remoteInputManager,
             Lazy<SmartReplyConstants> smartReplyConstants,
-            Lazy<SmartReplyController> smartReplyController) {
+            Lazy<SmartReplyController> smartReplyController,
+            ConversationNotificationProcessor conversationProcessor,
+            @Background Executor bgExecutor) {
         mRemoteViewCache = remoteViewCache;
         mRemoteInputManager = remoteInputManager;
         mSmartReplyConstants = smartReplyConstants;
         mSmartReplyController = smartReplyController;
+        mConversationProcessor = conversationProcessor;
+        mBgExecutor = bgExecutor;
     }
 
     @Override
@@ -110,12 +119,14 @@
         }
 
         AsyncInflationTask task = new AsyncInflationTask(
+                mBgExecutor,
                 mInflateSynchronously,
                 contentToBind,
                 mRemoteViewCache,
                 entry,
                 mSmartReplyConstants.get(),
                 mSmartReplyController.get(),
+                mConversationProcessor,
                 row,
                 bindParams.isLowPriority,
                 bindParams.isChildInGroup,
@@ -126,7 +137,7 @@
         if (mInflateSynchronously) {
             task.onPostExecute(task.doInBackground());
         } else {
-            task.execute();
+            task.executeOnExecutor(mBgExecutor);
         }
     }
 
@@ -152,6 +163,7 @@
                 row.getExistingSmartRepliesAndActions());
 
         apply(
+                mBgExecutor,
                 inflateSynchronously,
                 result,
                 reInflateFlags,
@@ -275,6 +287,7 @@
     }
 
     private static CancellationSignal apply(
+            Executor bgExecutor,
             boolean inflateSynchronously,
             InflationProgress result,
             @InflationFlag int reInflateFlags,
@@ -303,9 +316,10 @@
                     return result.newContentView;
                 }
             };
-            applyRemoteView(inflateSynchronously, result, reInflateFlags, flag, remoteViewCache,
-                    entry, row, isNewView, remoteViewClickHandler, callback, privateLayout,
-                    privateLayout.getContractedChild(), privateLayout.getVisibleWrapper(
+            applyRemoteView(bgExecutor, inflateSynchronously, result, reInflateFlags, flag,
+                    remoteViewCache, entry, row, isNewView, remoteViewClickHandler, callback,
+                    privateLayout,  privateLayout.getContractedChild(),
+                    privateLayout.getVisibleWrapper(
                             NotificationContentView.VISIBLE_TYPE_CONTRACTED),
                     runningInflations, applyCallback);
         }
@@ -327,8 +341,8 @@
                         return result.newExpandedView;
                     }
                 };
-                applyRemoteView(inflateSynchronously, result, reInflateFlags, flag, remoteViewCache,
-                        entry, row, isNewView, remoteViewClickHandler,
+                applyRemoteView(bgExecutor, inflateSynchronously, result, reInflateFlags, flag,
+                        remoteViewCache, entry, row, isNewView, remoteViewClickHandler,
                         callback, privateLayout, privateLayout.getExpandedChild(),
                         privateLayout.getVisibleWrapper(
                                 NotificationContentView.VISIBLE_TYPE_EXPANDED), runningInflations,
@@ -353,8 +367,8 @@
                         return result.newHeadsUpView;
                     }
                 };
-                applyRemoteView(inflateSynchronously, result, reInflateFlags, flag, remoteViewCache,
-                        entry, row, isNewView, remoteViewClickHandler,
+                applyRemoteView(bgExecutor, inflateSynchronously, result, reInflateFlags, flag,
+                        remoteViewCache, entry, row, isNewView, remoteViewClickHandler,
                         callback, privateLayout, privateLayout.getHeadsUpChild(),
                         privateLayout.getVisibleWrapper(
                                 VISIBLE_TYPE_HEADSUP), runningInflations,
@@ -378,8 +392,8 @@
                     return result.newPublicView;
                 }
             };
-            applyRemoteView(inflateSynchronously, result, reInflateFlags, flag, remoteViewCache,
-                    entry, row, isNewView, remoteViewClickHandler, callback,
+            applyRemoteView(bgExecutor, inflateSynchronously, result, reInflateFlags, flag,
+                    remoteViewCache, entry, row, isNewView, remoteViewClickHandler, callback,
                     publicLayout, publicLayout.getContractedChild(),
                     publicLayout.getVisibleWrapper(NotificationContentView.VISIBLE_TYPE_CONTRACTED),
                     runningInflations, applyCallback);
@@ -396,6 +410,7 @@
 
     @VisibleForTesting
     static void applyRemoteView(
+            Executor bgExecutor,
             boolean inflateSynchronously,
             final InflationProgress result,
             final @InflationFlag int reInflateFlags,
@@ -490,14 +505,14 @@
             cancellationSignal = newContentView.applyAsync(
                     result.packageContext,
                     parentLayout,
-                    null,
+                    bgExecutor,
                     listener,
                     remoteViewClickHandler);
         } else {
             cancellationSignal = newContentView.reapplyAsync(
                     result.packageContext,
                     existingView,
-                    null,
+                    bgExecutor,
                     listener,
                     remoteViewClickHandler);
         }
@@ -667,18 +682,22 @@
         private final NotifRemoteViewCache mRemoteViewCache;
         private final SmartReplyConstants mSmartReplyConstants;
         private final SmartReplyController mSmartReplyController;
+        private final Executor mBgExecutor;
         private ExpandableNotificationRow mRow;
         private Exception mError;
         private RemoteViews.OnClickHandler mRemoteViewClickHandler;
         private CancellationSignal mCancellationSignal;
+        private final ConversationNotificationProcessor mConversationProcessor;
 
         private AsyncInflationTask(
+                Executor bgExecutor,
                 boolean inflateSynchronously,
                 @InflationFlag int reInflateFlags,
                 NotifRemoteViewCache cache,
                 NotificationEntry entry,
                 SmartReplyConstants smartReplyConstants,
                 SmartReplyController smartReplyController,
+                ConversationNotificationProcessor conversationProcessor,
                 ExpandableNotificationRow row,
                 boolean isLowPriority,
                 boolean isChildInGroup,
@@ -690,6 +709,7 @@
             mRow = row;
             mSmartReplyConstants = smartReplyConstants;
             mSmartReplyController = smartReplyController;
+            mBgExecutor = bgExecutor;
             mInflateSynchronously = inflateSynchronously;
             mReInflateFlags = reInflateFlags;
             mRemoteViewCache = cache;
@@ -700,6 +720,7 @@
             mUsesIncreasedHeadsUpHeight = usesIncreasedHeadsUpHeight;
             mRemoteViewClickHandler = remoteViewClickHandler;
             mCallback = callback;
+            mConversationProcessor = conversationProcessor;
             entry.setInflationTask(this);
         }
 
@@ -728,6 +749,9 @@
                             packageContext);
                     processor.processNotification(notification, recoveredBuilder);
                 }
+                if (mEntry.getRanking().isConversation()) {
+                    mConversationProcessor.processNotification(mEntry, recoveredBuilder);
+                }
                 InflationProgress inflationProgress = createRemoteViews(mReInflateFlags,
                         recoveredBuilder, mIsLowPriority, mIsChildInGroup, mUsesIncreasedHeight,
                         mUsesIncreasedHeadsUpHeight, packageContext);
@@ -744,8 +768,16 @@
         @Override
         protected void onPostExecute(InflationProgress result) {
             if (mError == null) {
-                mCancellationSignal = apply(mInflateSynchronously, result, mReInflateFlags,
-                        mRemoteViewCache, mEntry, mRow, mRemoteViewClickHandler, this);
+                mCancellationSignal = apply(
+                        mBgExecutor,
+                        mInflateSynchronously,
+                        result,
+                        mReInflateFlags,
+                        mRemoteViewCache,
+                        mEntry,
+                        mRow,
+                        mRemoteViewClickHandler,
+                        this);
             } else {
                 handleError(mError);
             }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java
index 1088cdc3..8e2bfb8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java
@@ -20,11 +20,10 @@
 import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
 import static android.app.NotificationManager.IMPORTANCE_LOW;
 import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
-import static android.content.pm.LauncherApps.ShortcutQuery.FLAG_MATCH_CACHED;
-import static android.content.pm.LauncherApps.ShortcutQuery.FLAG_MATCH_DYNAMIC;
-import static android.content.pm.LauncherApps.ShortcutQuery.FLAG_MATCH_PINNED;
 import static android.provider.Settings.Secure.BUBBLE_IMPORTANT_CONVERSATIONS;
 
+import static com.android.systemui.Interpolators.FAST_OUT_SLOW_IN;
+
 import static java.lang.annotation.RetentionPolicy.SOURCE;
 
 import android.annotation.IntDef;
@@ -36,7 +35,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
-import android.content.pm.LauncherApps;
 import android.content.pm.PackageManager;
 import android.content.pm.ShortcutInfo;
 import android.content.pm.ShortcutManager;
@@ -49,6 +47,10 @@
 import android.provider.Settings;
 import android.service.notification.StatusBarNotification;
 import android.text.TextUtils;
+import android.transition.ChangeBounds;
+import android.transition.Fade;
+import android.transition.TransitionManager;
+import android.transition.TransitionSet;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.util.Slog;
@@ -65,13 +67,10 @@
 import com.android.settingslib.utils.ThreadUtils;
 import com.android.systemui.Dependency;
 import com.android.systemui.R;
-import com.android.systemui.bubbles.BubbleController;
 import com.android.systemui.statusbar.notification.VisualStabilityManager;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
-import com.android.systemui.statusbar.phone.ShadeController;
 
 import java.lang.annotation.Retention;
-import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -83,11 +82,9 @@
 
 
     private INotificationManager mINotificationManager;
-    private LauncherApps mLauncherApps;
     ShortcutManager mShortcutManager;
     private PackageManager mPm;
     private VisualStabilityManager mVisualStabilityManager;
-    private ShadeController mShadeController;
     private ConversationIconFactory mIconFactory;
 
     private String mPackageName;
@@ -97,44 +94,34 @@
     private NotificationChannel mNotificationChannel;
     private ShortcutInfo mShortcutInfo;
     private String mConversationId;
-    private NotificationEntry mEntry;
     private StatusBarNotification mSbn;
     private boolean mIsDeviceProvisioned;
-    private boolean mStartedAsBubble;
-    private boolean mIsBubbleable;
 
+    private TextView mPriorityDescriptionView;
+    private TextView mDefaultDescriptionView;
+    private TextView mSilentDescriptionView;
     private @Action int mSelectedAction = -1;
 
     private OnSnoozeClickListener mOnSnoozeClickListener;
     private OnSettingsClickListener mOnSettingsClickListener;
     private NotificationGuts mGutsContainer;
-    private BubbleController mBubbleController;
 
     @VisibleForTesting
     boolean mSkipPost = false;
 
     @Retention(SOURCE)
-    @IntDef({ACTION_BUBBLE, ACTION_HOME, ACTION_FAVORITE, ACTION_SNOOZE, ACTION_MUTE,
-            ACTION_UNBUBBLE, ACTION_SETTINGS})
+    @IntDef({ACTION_DEFAULT, ACTION_HOME, ACTION_FAVORITE, ACTION_SNOOZE, ACTION_MUTE,
+            ACTION_SETTINGS})
     private @interface Action {}
-    static final int ACTION_BUBBLE = 0;
+    static final int ACTION_DEFAULT = 0;
     static final int ACTION_HOME = 1;
     static final int ACTION_FAVORITE = 2;
     static final int ACTION_SNOOZE = 3;
     static final int ACTION_MUTE = 4;
     static final int ACTION_SETTINGS = 5;
-    static final int ACTION_UNBUBBLE = 6;
 
-    private OnClickListener mOnBubbleClick = v -> {
-        mSelectedAction = mStartedAsBubble ? ACTION_UNBUBBLE : ACTION_BUBBLE;
-        if (mStartedAsBubble) {
-            mBubbleController.onUserDemotedBubbleFromNotification(mEntry);
-        } else {
-            mBubbleController.onUserCreatedBubbleFromNotification(mEntry);
-        }
-        closeControls(v, true);
-    };
-
+    // TODO: b/152050825
+    /*
     private OnClickListener mOnHomeClick = v -> {
         mSelectedAction = ACTION_HOME;
         mShortcutManager.requestPinShortcut(mShortcutInfo, null);
@@ -142,21 +129,30 @@
         closeControls(v, true);
     };
 
-    private OnClickListener mOnFavoriteClick = v -> {
-        mSelectedAction = ACTION_FAVORITE;
-        updateChannel();
-
-    };
-
     private OnClickListener mOnSnoozeClick = v -> {
         mSelectedAction = ACTION_SNOOZE;
         mOnSnoozeClickListener.onClick(v, 1);
         closeControls(v, true);
     };
+    */
+
+    private OnClickListener mOnFavoriteClick = v -> {
+        mSelectedAction = ACTION_FAVORITE;
+        updateToggleActions(mSelectedAction, true);
+    };
+
+    private OnClickListener mOnDefaultClick = v -> {
+        mSelectedAction = ACTION_DEFAULT;
+        updateToggleActions(mSelectedAction, true);
+    };
 
     private OnClickListener mOnMuteClick = v -> {
         mSelectedAction = ACTION_MUTE;
-        updateChannel();
+        updateToggleActions(mSelectedAction, true);
+    };
+
+    private OnClickListener mOnDone = v -> {
+        closeControls(v, true);
     };
 
     public NotificationConversationInfo(Context context, AttributeSet attrs) {
@@ -177,7 +173,6 @@
 
     public void bindNotification(
             ShortcutManager shortcutManager,
-            LauncherApps launcherApps,
             PackageManager pm,
             INotificationManager iNotificationManager,
             VisualStabilityManager visualStabilityManager,
@@ -185,16 +180,13 @@
             NotificationChannel notificationChannel,
             NotificationEntry entry,
             OnSettingsClickListener onSettingsClick,
-            OnAppSettingsClickListener onAppSettingsClick,
             OnSnoozeClickListener onSnoozeClickListener,
             ConversationIconFactory conversationIconFactory,
             boolean isDeviceProvisioned) {
         mSelectedAction = -1;
         mINotificationManager = iNotificationManager;
         mVisualStabilityManager = visualStabilityManager;
-        mBubbleController = Dependency.get(BubbleController.class);
         mPackageName = pkg;
-        mEntry = entry;
         mSbn = entry.getSbn();
         mPm = pm;
         mAppName = mPackageName;
@@ -204,11 +196,9 @@
         mDelegatePkg = mSbn.getOpPkg();
         mIsDeviceProvisioned = isDeviceProvisioned;
         mOnSnoozeClickListener = onSnoozeClickListener;
-        mShadeController = Dependency.get(ShadeController.class);
         mIconFactory = conversationIconFactory;
 
         mShortcutManager = shortcutManager;
-        mLauncherApps = launcherApps;
         mConversationId = mNotificationChannel.getConversationId();
         if (TextUtils.isEmpty(mNotificationChannel.getConversationId())) {
             mConversationId = mSbn.getShortcutId(mContext);
@@ -218,16 +208,13 @@
         }
         mShortcutInfo = entry.getRanking().getShortcutInfo();
 
-        mIsBubbleable = mEntry.getBubbleMetadata() != null
-            && Settings.Global.getInt(mContext.getContentResolver(),
-                Settings.Global.NOTIFICATION_BUBBLES, 0) == 1;
-        mStartedAsBubble = mEntry.isBubble();
-
         createConversationChannelIfNeeded();
 
         bindHeader();
         bindActions();
 
+        View done = findViewById(R.id.done);
+        done.setOnClickListener(mOnDone);
     }
 
     void createConversationChannelIfNeeded() {
@@ -252,37 +239,28 @@
     }
 
     private void bindActions() {
-        // TODO: figure out what should happen for non-configurable channels
 
-        Button bubble = findViewById(R.id.bubble);
-        bubble.setVisibility(mIsBubbleable ? VISIBLE : GONE);
-        bubble.setOnClickListener(mOnBubbleClick);
-        if (mStartedAsBubble) {
-            bubble.setText(R.string.notification_conversation_unbubble);
-        } else {
-            bubble.setText(R.string.notification_conversation_bubble);
-        }
-
+        // TODO: b/152050825
+        /*
         Button home = findViewById(R.id.home);
         home.setOnClickListener(mOnHomeClick);
         home.setVisibility(mShortcutInfo != null
                 && mShortcutManager.isRequestPinShortcutSupported()
                 ? VISIBLE : GONE);
 
-        View favorite = findViewById(R.id.fave);
-        favorite.setOnClickListener(mOnFavoriteClick);
-
         Button snooze = findViewById(R.id.snooze);
         snooze.setOnClickListener(mOnSnoozeClick);
+        */
 
-        View mute = findViewById(R.id.mute);
-        mute.setOnClickListener(mOnMuteClick);
+        findViewById(R.id.priority).setOnClickListener(mOnFavoriteClick);
+        findViewById(R.id.default_behavior).setOnClickListener(mOnDefaultClick);
+        findViewById(R.id.silence).setOnClickListener(mOnMuteClick);
 
         final View settingsButton = findViewById(R.id.info);
         settingsButton.setOnClickListener(getSettingsOnClickListener());
         settingsButton.setVisibility(settingsButton.hasOnClickListeners() ? VISIBLE : GONE);
 
-        updateToggleActions();
+        updateToggleActions(getSelectedAction(), false);
     }
 
     private void bindHeader() {
@@ -310,16 +288,16 @@
         // TODO: bring back when channel name does not include name
         // bindName();
         bindPackage();
-        bindIcon();
+        bindIcon(mNotificationChannel.isImportantConversation());
 
     }
 
-    private void bindIcon() {
+    private void bindIcon(boolean important) {
         ImageView image = findViewById(R.id.conversation_icon);
         if (mShortcutInfo != null) {
             image.setImageDrawable(mIconFactory.getConversationDrawable(
                     mShortcutInfo, mPackageName, mAppUid,
-                    mNotificationChannel.isImportantConversation()));
+                    important));
         } else {
             if (mSbn.getNotification().extras.getBoolean(EXTRA_IS_GROUP_CONVERSATION, false)) {
                 // TODO: maybe use a generic group icon, or a composite of recent senders
@@ -378,11 +356,6 @@
         ((TextView) findViewById(R.id.pkg_name)).setText(mAppName);
     }
 
-    private boolean bubbleImportantConversations() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
-                BUBBLE_IMPORTANT_CONVERSATIONS, 1) == 1;
-    }
-
     private void bindDelegate() {
         TextView delegateView = findViewById(R.id.delegate_name);
 
@@ -431,6 +404,15 @@
     }
 
     @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+
+        mPriorityDescriptionView = findViewById(R.id.priority_summary);
+        mDefaultDescriptionView = findViewById(R.id.default_summary);
+        mSilentDescriptionView = findViewById(R.id.silence_summary);
+    }
+
+    @Override
     public void onFinishedClosing() {
         // TODO: do we need to do anything here?
     }
@@ -450,32 +432,84 @@
         }
     }
 
-    private void updateToggleActions() {
-        ImageButton favorite = findViewById(R.id.fave);
-        if (mNotificationChannel.isImportantConversation()) {
-            favorite.setContentDescription(
-                    mContext.getString(R.string.notification_conversation_favorite));
-            favorite.setImageResource(R.drawable.ic_important);
-        } else {
-            favorite.setContentDescription(
-                    mContext.getString(R.string.notification_conversation_unfavorite));
-            favorite.setImageResource(R.drawable.ic_important_outline);
+    private void updateToggleActions(int selectedAction, boolean userTriggered) {
+        if (userTriggered) {
+            TransitionSet transition = new TransitionSet();
+            transition.setOrdering(TransitionSet.ORDERING_TOGETHER);
+            transition.addTransition(new Fade(Fade.OUT))
+                    .addTransition(new ChangeBounds())
+                    .addTransition(
+                            new Fade(Fade.IN)
+                                    .setStartDelay(150)
+                                    .setDuration(200)
+                                    .setInterpolator(FAST_OUT_SLOW_IN));
+            transition.setDuration(350);
+            transition.setInterpolator(FAST_OUT_SLOW_IN);
+            TransitionManager.beginDelayedTransition(this, transition);
         }
 
-        ImageButton mute = findViewById(R.id.mute);
-        if (mNotificationChannel.getImportance() >= IMPORTANCE_DEFAULT
-                || mNotificationChannel.getImportance() == IMPORTANCE_UNSPECIFIED) {
-            mute.setContentDescription(
-                    mContext.getString(R.string.notification_conversation_unmute));
-            mute.setImageResource(R.drawable.ic_notifications_alert);
-        } else {
-            mute.setContentDescription(
-                    mContext.getString(R.string.notification_conversation_mute));
-            mute.setImageResource(R.drawable.ic_notifications_silence);
+        View priority = findViewById(R.id.priority);
+        View defaultBehavior = findViewById(R.id.default_behavior);
+        View silence = findViewById(R.id.silence);
+
+        switch (selectedAction) {
+            case ACTION_FAVORITE:
+                mPriorityDescriptionView.setVisibility(VISIBLE);
+                mDefaultDescriptionView.setVisibility(GONE);
+                mSilentDescriptionView.setVisibility(GONE);
+                post(() -> {
+                    priority.setSelected(true);
+                    defaultBehavior.setSelected(false);
+                    silence.setSelected(false);
+                });
+                break;
+
+            case ACTION_MUTE:
+                mSilentDescriptionView.setVisibility(VISIBLE);
+                mDefaultDescriptionView.setVisibility(GONE);
+                mPriorityDescriptionView.setVisibility(GONE);
+                post(() -> {
+                    priority.setSelected(false);
+                    defaultBehavior.setSelected(false);
+                    silence.setSelected(true);
+                });
+                break;
+
+            case ACTION_DEFAULT:
+                mDefaultDescriptionView.setVisibility(VISIBLE);
+                mSilentDescriptionView.setVisibility(GONE);
+                mPriorityDescriptionView.setVisibility(GONE);
+                post(() -> {
+                    priority.setSelected(false);
+                    defaultBehavior.setSelected(true);
+                    silence.setSelected(false);
+                });
+                break;
+
+            default:
+                throw new IllegalArgumentException("Unrecognized behavior: " + mSelectedAction);
         }
 
+        boolean isAChange = getSelectedAction() != selectedAction;
+        TextView done = findViewById(R.id.done);
+        done.setText(isAChange
+                ? R.string.inline_ok_button
+                : R.string.inline_done_button);
+
         // update icon in case importance has changed
-        bindIcon();
+        bindIcon(selectedAction == ACTION_FAVORITE);
+    }
+
+    int getSelectedAction() {
+        if (mNotificationChannel.getImportance() <= IMPORTANCE_LOW
+                && mNotificationChannel.getImportance() > IMPORTANCE_UNSPECIFIED) {
+            return ACTION_MUTE;
+        } else {
+            if (mNotificationChannel.isImportantConversation()) {
+                return ACTION_FAVORITE;
+            }
+        }
+        return ACTION_DEFAULT;
     }
 
     private void updateChannel() {
@@ -517,11 +551,7 @@
 
     @Override
     public boolean shouldBeSaved() {
-        // Toggle actions are already saved by the time the guts are closed; save for any other
-        // taps
-        return mSelectedAction > -1
-                && mSelectedAction != ACTION_FAVORITE
-                && mSelectedAction != ACTION_MUTE;
+        return mSelectedAction == ACTION_FAVORITE || mSelectedAction == ACTION_MUTE;
     }
 
     @Override
@@ -568,45 +598,41 @@
         @Override
         public void run() {
             try {
-                boolean channelSettingChanged = mAction != ACTION_HOME && mAction != ACTION_SNOOZE;
                 switch (mAction) {
-                    case ACTION_BUBBLE:
-                    case ACTION_UNBUBBLE:
-                        boolean canBubble = mAction == ACTION_BUBBLE;
-                        if (mChannelToUpdate.canBubble() != canBubble) {
-                            channelSettingChanged = true;
-                            mChannelToUpdate.setAllowBubbles(canBubble);
-                        } else {
-                            channelSettingChanged = false;
-                        }
-                        break;
                     case ACTION_FAVORITE:
                         mChannelToUpdate.setImportantConversation(
                                 !mChannelToUpdate.isImportantConversation());
-                        if (mChannelToUpdate.isImportantConversation()
-                                && bubbleImportantConversations()) {
+                        if (mChannelToUpdate.isImportantConversation()) {
                             mChannelToUpdate.setAllowBubbles(true);
                         }
+                        mChannelToUpdate.setImportance(Math.max(
+                                mChannelToUpdate.getOriginalImportance(), IMPORTANCE_DEFAULT));
+                        break;
+                    case ACTION_DEFAULT:
+                        mChannelToUpdate.setImportance(Math.max(
+                                mChannelToUpdate.getOriginalImportance(), IMPORTANCE_DEFAULT));
+                        if (mChannelToUpdate.isImportantConversation()) {
+                            mChannelToUpdate.setImportantConversation(false);
+                            mChannelToUpdate.setAllowBubbles(false);
+                        }
                         break;
                     case ACTION_MUTE:
                         if (mChannelToUpdate.getImportance() == IMPORTANCE_UNSPECIFIED
                                 || mChannelToUpdate.getImportance() >= IMPORTANCE_DEFAULT) {
                             mChannelToUpdate.setImportance(IMPORTANCE_LOW);
-                        } else {
-                            mChannelToUpdate.setImportance(Math.max(
-                                    mChannelToUpdate.getOriginalImportance(), IMPORTANCE_DEFAULT));
+                        }
+                        if (mChannelToUpdate.isImportantConversation()) {
+                            mChannelToUpdate.setImportantConversation(false);
+                            mChannelToUpdate.setAllowBubbles(false);
                         }
                         break;
                 }
 
-                if (channelSettingChanged) {
-                    mINotificationManager.updateNotificationChannelForPackage(
+                mINotificationManager.updateNotificationChannelForPackage(
                             mAppPkg, mAppUid, mChannelToUpdate);
-                }
             } catch (RemoteException e) {
                 Log.e(TAG, "Unable to update notification channel", e);
             }
-            ThreadUtils.postOnMainThread(() -> updateToggleActions());
         }
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java
index bd4984e..2487d1a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java
@@ -29,7 +29,6 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
-import android.os.ServiceManager;
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.service.notification.StatusBarNotification;
@@ -109,6 +108,9 @@
     private final Lazy<StatusBar> mStatusBarLazy;
     private final Handler mMainHandler;
     private Runnable mOpenRunnable;
+    private final INotificationManager mNotificationManager;
+    private final LauncherApps mLauncherApps;
+    private final ShortcutManager mShortcutManager;
 
     /**
      * Injected constructor. See {@link NotificationsModule}.
@@ -116,13 +118,19 @@
     public NotificationGutsManager(Context context, VisualStabilityManager visualStabilityManager,
             Lazy<StatusBar> statusBarLazy, @Main Handler mainHandler,
             AccessibilityManager accessibilityManager,
-            HighPriorityProvider highPriorityProvider) {
+            HighPriorityProvider highPriorityProvider,
+            INotificationManager notificationManager,
+            LauncherApps launcherApps,
+            ShortcutManager shortcutManager) {
         mContext = context;
         mVisualStabilityManager = visualStabilityManager;
         mStatusBarLazy = statusBarLazy;
         mMainHandler = mainHandler;
         mAccessibilityManager = accessibilityManager;
         mHighPriorityProvider = highPriorityProvider;
+        mNotificationManager = notificationManager;
+        mLauncherApps = launcherApps;
+        mShortcutManager = shortcutManager;
     }
 
     public void setUpWithPresenter(NotificationPresenter presenter,
@@ -306,8 +314,6 @@
         UserHandle userHandle = sbn.getUser();
         PackageManager pmUser = StatusBar.getPackageManagerForUser(
                 mContext, userHandle.getIdentifier());
-        INotificationManager iNotificationManager = INotificationManager.Stub.asInterface(
-                ServiceManager.getService(Context.NOTIFICATION_SERVICE));
         final NotificationInfo.OnAppSettingsClickListener onAppSettingsClick =
                 (View v, Intent intent) -> {
                     mMetricsLogger.action(MetricsProto.MetricsEvent.ACTION_APP_NOTE_SETTINGS);
@@ -328,7 +334,7 @@
 
         notificationInfoView.bindNotification(
                 pmUser,
-                iNotificationManager,
+                mNotificationManager,
                 mVisualStabilityManager,
                 packageName,
                 row.getEntry().getChannel(),
@@ -358,10 +364,6 @@
         UserHandle userHandle = sbn.getUser();
         PackageManager pmUser = StatusBar.getPackageManagerForUser(
                 mContext, userHandle.getIdentifier());
-        LauncherApps launcherApps = mContext.getSystemService(LauncherApps.class);
-        ShortcutManager shortcutManager = mContext.getSystemService(ShortcutManager.class);
-        INotificationManager iNotificationManager = INotificationManager.Stub.asInterface(
-                ServiceManager.getService(Context.NOTIFICATION_SERVICE));
         final NotificationConversationInfo.OnAppSettingsClickListener onAppSettingsClick =
                 (View v, Intent intent) -> {
                     mMetricsLogger.action(MetricsProto.MetricsEvent.ACTION_APP_NOTE_SETTINGS);
@@ -386,21 +388,19 @@
             };
         }
         ConversationIconFactory iconFactoryLoader = new ConversationIconFactory(mContext,
-                launcherApps, pmUser, IconDrawableFactory.newInstance(mContext, false),
+                mLauncherApps, pmUser, IconDrawableFactory.newInstance(mContext, false),
                 mContext.getResources().getDimensionPixelSize(
                         R.dimen.notification_guts_conversation_icon_size));
 
         notificationInfoView.bindNotification(
-                shortcutManager,
-                launcherApps,
+                mShortcutManager,
                 pmUser,
-                iNotificationManager,
+                mNotificationManager,
                 mVisualStabilityManager,
                 packageName,
                 row.getEntry().getChannel(),
                 row.getEntry(),
                 onSettingsClick,
-                onAppSettingsClick,
                 onSnoozeClickListener,
                 iconFactoryLoader,
                 mDeviceProvisionedController.isDeviceProvisioned());
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationConversationTemplateViewWrapper.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationConversationTemplateViewWrapper.kt
index 162786c..593de23 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationConversationTemplateViewWrapper.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationConversationTemplateViewWrapper.kt
@@ -18,47 +18,63 @@
 
 import android.content.Context
 import android.view.View
-
+import android.view.ViewGroup
 import com.android.internal.widget.ConversationLayout
 import com.android.internal.widget.MessagingLinearLayout
 import com.android.systemui.R
+import com.android.systemui.statusbar.TransformableView
+import com.android.systemui.statusbar.ViewTransformationHelper
 import com.android.systemui.statusbar.notification.NotificationUtils
+import com.android.systemui.statusbar.notification.TransformState
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
+import com.android.systemui.statusbar.notification.row.HybridNotificationView
 
 /**
- * Wraps a notification containing a converation template
+ * Wraps a notification containing a conversation template
  */
 class NotificationConversationTemplateViewWrapper constructor(
     ctx: Context,
     view: View,
     row: ExpandableNotificationRow
-)
-    : NotificationTemplateViewWrapper(ctx, view, row) {
+) : NotificationTemplateViewWrapper(ctx, view, row) {
 
-    private val minHeightWithActions: Int
-    private val conversationLayout: ConversationLayout
-    private var conversationIcon: View? = null
-    private var conversationBadge: View? = null
-    private var expandButton: View? = null
+    private val minHeightWithActions: Int = NotificationUtils.getFontScaledHeight(
+            ctx,
+            R.dimen.notification_messaging_actions_min_height
+    )
+    private val conversationLayout: ConversationLayout = view as ConversationLayout
+
+    private lateinit var conversationIcon: View
+    private lateinit var conversationBadgeBg: View
+    private lateinit var expandButton: View
     private lateinit var expandButtonContainer: View
-    private var messagingLinearLayout: MessagingLinearLayout? = null
-
-    init {
-        conversationLayout = view as ConversationLayout
-        minHeightWithActions = NotificationUtils.getFontScaledHeight(ctx,
-                R.dimen.notification_messaging_actions_min_height)
-    }
+    private lateinit var imageMessageContainer: ViewGroup
+    private lateinit var messagingLinearLayout: MessagingLinearLayout
+    private lateinit var conversationTitle: View
+    private lateinit var importanceRing: View
+    private lateinit var appName: View
+    private var facePileBottomBg: View? = null
+    private var facePileBottom: View? = null
+    private var facePileTop: View? = null
 
     private fun resolveViews() {
         messagingLinearLayout = conversationLayout.messagingLinearLayout
-        conversationIcon = conversationLayout.requireViewById(
-                com.android.internal.R.id.conversation_icon)
-        conversationBadge = conversationLayout.requireViewById(
-                com.android.internal.R.id.conversation_icon_badge)
-        expandButton = conversationLayout.requireViewById(
-                com.android.internal.R.id.expand_button)
-        expandButtonContainer = conversationLayout.requireViewById(
-                com.android.internal.R.id.expand_button_container)
+        imageMessageContainer = conversationLayout.imageMessageContainer
+        with(conversationLayout) {
+            conversationIcon = requireViewById(com.android.internal.R.id.conversation_icon)
+            conversationBadgeBg =
+                    requireViewById(com.android.internal.R.id.conversation_icon_badge_bg)
+            expandButton = requireViewById(com.android.internal.R.id.expand_button)
+            expandButtonContainer =
+                    requireViewById(com.android.internal.R.id.expand_button_container)
+            importanceRing = requireViewById(com.android.internal.R.id.conversation_icon_badge_ring)
+            appName = requireViewById(com.android.internal.R.id.app_name_text)
+            conversationTitle = requireViewById(com.android.internal.R.id.conversation_text)
+            facePileTop = findViewById(com.android.internal.R.id.conversation_face_pile_top)
+            facePileBottom = findViewById(com.android.internal.R.id.conversation_face_pile_bottom)
+            facePileBottomBg =
+                    findViewById(com.android.internal.R.id.conversation_face_pile_bottom_background)
+        }
     }
 
     override fun onContentUpdated(row: ExpandableNotificationRow) {
@@ -71,41 +87,72 @@
     override fun updateTransformedTypes() {
         // This also clears the existing types
         super.updateTransformedTypes()
-        messagingLinearLayout?.let {
-            mTransformationHelper.addTransformedView(it.id, it)
-        }
-        conversationIcon?.let {
-            mTransformationHelper.addViewTransformingToSimilar(it.id, it)
-        }
-        conversationBadge?.let {
-            mTransformationHelper.addViewTransformingToSimilar(it.id, it)
-        }
-        expandButton?.let {
-            mTransformationHelper.addViewTransformingToSimilar(it.id, it)
-        }
+
+        addTransformedViews(
+                messagingLinearLayout,
+                appName,
+                conversationTitle)
+
+        // Let's ignore the image message container since that is transforming as part of the
+        // messages already
+        mTransformationHelper.setCustomTransformation(
+                object : ViewTransformationHelper.CustomTransformation() {
+                    override fun transformTo(
+                        ownState: TransformState,
+                        otherView: TransformableView,
+                        transformationAmount: Float
+                    ): Boolean {
+                        if (otherView is HybridNotificationView) {
+                            return false
+                        }
+                        // we're hidden by default by the transformState
+                        ownState.ensureVisible()
+                        // Let's do nothing otherwise, this is already handled by the messages
+                        return true
+                    }
+
+                    override fun transformFrom(
+                        ownState: TransformState,
+                        otherView: TransformableView,
+                        transformationAmount: Float
+                    ): Boolean =
+                            transformTo(ownState, otherView, transformationAmount)
+                },
+                imageMessageContainer.id
+        )
+
+        addViewsTransformingToSimilar(
+                conversationIcon,
+                conversationBadgeBg,
+                expandButton,
+                importanceRing,
+                facePileTop,
+                facePileBottom,
+                facePileBottomBg
+        )
     }
 
-    override fun setRemoteInputVisible(visible: Boolean) {
-        conversationLayout.showHistoricMessages(visible)
-    }
+    override fun setRemoteInputVisible(visible: Boolean) =
+            conversationLayout.showHistoricMessages(visible)
 
-    override fun updateExpandability(expandable: Boolean, onClickListener: View.OnClickListener?) {
-        conversationLayout.updateExpandability(expandable, onClickListener)
-    }
+    override fun updateExpandability(expandable: Boolean, onClickListener: View.OnClickListener?) =
+            conversationLayout.updateExpandability(expandable, onClickListener)
 
     override fun disallowSingleClick(x: Float, y: Float): Boolean {
-        if (expandButtonContainer.visibility == View.VISIBLE
-                && isOnView(expandButtonContainer, x, y)) {
-            return true
-        }
-        return super.disallowSingleClick(x, y)
+        val isOnExpandButton = expandButtonContainer.visibility == View.VISIBLE &&
+                isOnView(expandButtonContainer, x, y)
+        return isOnExpandButton || super.disallowSingleClick(x, y)
     }
 
-    override fun getMinLayoutHeight(): Int {
-        if (mActionsContainer != null && mActionsContainer.visibility != View.GONE) {
-            return minHeightWithActions
-        } else {
-            return super.getMinLayoutHeight()
-        }
-    }
+    override fun getMinLayoutHeight(): Int =
+            if (mActionsContainer != null && mActionsContainer.visibility != View.GONE)
+                minHeightWithActions
+            else
+                super.getMinLayoutHeight()
+
+    private fun addTransformedViews(vararg vs: View?) =
+            vs.forEach { view -> view?.let(mTransformationHelper::addTransformedView) }
+
+    private fun addViewsTransformingToSimilar(vararg vs: View?) =
+            vs.forEach { view -> view?.let(mTransformationHelper::addViewTransformingToSimilar) }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationHeaderViewWrapper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationHeaderViewWrapper.java
index 1d06198..a44ad3d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationHeaderViewWrapper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationHeaderViewWrapper.java
@@ -132,11 +132,6 @@
         updateCropToPaddingForImageViews();
         Notification notification = row.getEntry().getSbn().getNotification();
         mIcon.setTag(ImageTransformState.ICON_TAG, notification.getSmallIcon());
-        if (mWorkProfileImage != null) {
-            // The work profile image is always the same lets just set the icon tag for it not to
-            // animate
-            mWorkProfileImage.setTag(ImageTransformState.ICON_TAG, notification.getSmallIcon());
-        }
 
         // We need to reset all views that are no longer transforming in case a view was previously
         // transformed, but now we decided to transform its container instead.
@@ -183,6 +178,7 @@
         mTransformationHelper.reset();
         mTransformationHelper.addTransformedView(TransformableView.TRANSFORMING_VIEW_ICON,
                 mIcon);
+        mTransformationHelper.addViewTransformingToSimilar(mWorkProfileImage);
         if (mIsLowPriority && mHeaderText != null) {
             mTransformationHelper.addTransformedView(TransformableView.TRANSFORMING_VIEW_TITLE,
                     mHeaderText);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MediaHeaderView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MediaHeaderView.java
new file mode 100644
index 0000000..ab055e1
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MediaHeaderView.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.stack;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+
+import com.android.systemui.R;
+import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
+
+/**
+ * Root view to insert Lock screen media controls into the notification stack.
+ */
+public class MediaHeaderView extends ActivatableNotificationView {
+
+    private View mContentView;
+
+    public MediaHeaderView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    protected void onFinishInflate() {
+        super.onFinishInflate();
+        mContentView = findViewById(R.id.keyguard_media_view);
+    }
+
+    @Override
+    protected View getContentView() {
+        return mContentView;
+    }
+
+    /**
+     * Sets the background color, to be used when album art changes.
+     * @param color background
+     */
+    public void setBackgroundColor(int color) {
+        setTintColor(color);
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.java
index 42a7c6a..5fd11fd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManager.java
@@ -30,6 +30,7 @@
 import android.view.View;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.keyguard.KeyguardMediaPlayer;
 import com.android.systemui.R;
 import com.android.systemui.plugins.ActivityStarter;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
@@ -71,6 +72,7 @@
     private final StatusBarStateController mStatusBarStateController;
     private final ConfigurationController mConfigurationController;
     private final PeopleHubViewAdapter mPeopleHubViewAdapter;
+    private final KeyguardMediaPlayer mKeyguardMediaPlayer;
     private final NotificationSectionsFeatureManager mSectionsFeatureManager;
     private final int mNumberOfSections;
 
@@ -110,17 +112,21 @@
     private boolean mPeopleHubVisible = false;
     @Nullable private Subscription mPeopleHubSubscription;
 
+    private MediaHeaderView mMediaControlsView;
+
     @Inject
     NotificationSectionsManager(
             ActivityStarter activityStarter,
             StatusBarStateController statusBarStateController,
             ConfigurationController configurationController,
             PeopleHubViewAdapter peopleHubViewAdapter,
+            KeyguardMediaPlayer keyguardMediaPlayer,
             NotificationSectionsFeatureManager sectionsFeatureManager) {
         mActivityStarter = activityStarter;
         mStatusBarStateController = statusBarStateController;
         mConfigurationController = configurationController;
         mPeopleHubViewAdapter = peopleHubViewAdapter;
+        mKeyguardMediaPlayer = keyguardMediaPlayer;
         mSectionsFeatureManager = sectionsFeatureManager;
         mNumberOfSections = mSectionsFeatureManager.getNumberOfBuckets();
     }
@@ -188,6 +194,13 @@
         }
         mPeopleHubView = reinflateView(mPeopleHubView, layoutInflater, R.layout.people_strip);
         mPeopleHubSubscription = mPeopleHubViewAdapter.bindView(mPeopleHubViewBoundary);
+
+        if (mMediaControlsView != null) {
+            mKeyguardMediaPlayer.unbindView();
+        }
+        mMediaControlsView = reinflateView(mMediaControlsView, layoutInflater,
+                R.layout.keyguard_media_header);
+        mKeyguardMediaPlayer.bindView(mMediaControlsView);
     }
 
     /** Listener for when the "clear all" button is clicked on the gentle notification header. */
@@ -198,6 +211,7 @@
     @Override
     public boolean beginsSection(@NonNull View view, @Nullable View previous) {
         return view == mGentleHeader
+                || view == mMediaControlsView
                 || view == mPeopleHubView
                 || view == mAlertingHeader
                 || !Objects.equals(getBucket(view), getBucket(previous));
@@ -211,6 +225,8 @@
     private Integer getBucket(View view) {
         if (view == mGentleHeader) {
             return BUCKET_SILENT;
+        } else if (view == mMediaControlsView) {
+            return BUCKET_MEDIA_CONTROLS;
         } else if (view == mPeopleHubView) {
             return BUCKET_PEOPLE;
         } else if (view == mAlertingHeader) {
@@ -238,9 +254,15 @@
 
         final boolean showHeaders = mStatusBarStateController.getState() != StatusBarState.KEYGUARD;
         final boolean usingPeopleFiltering = mSectionsFeatureManager.isFilteringEnabled();
+        final boolean isKeyguard = mStatusBarStateController.getState() == StatusBarState.KEYGUARD;
+        final boolean usingMediaControls = mSectionsFeatureManager.isMediaControlsEnabled();
 
         boolean peopleNotifsPresent = false;
 
+        int currentMediaControlsIdx = -1;
+        // Currently, just putting media controls in the front and incrementing the position based
+        // on the number of heads-up notifs.
+        int mediaControlsTarget = isKeyguard && usingMediaControls ? 0 : -1;
         int currentPeopleHeaderIdx = -1;
         int peopleHeaderTarget = -1;
         int currentAlertingHeaderIdx = -1;
@@ -255,6 +277,10 @@
             View child = mParent.getChildAt(i);
 
             // Track the existing positions of the headers
+            if (child == mMediaControlsView) {
+                currentMediaControlsIdx = i;
+                continue;
+            }
             if (child == mPeopleHubView) {
                 currentPeopleHeaderIdx = i;
                 continue;
@@ -276,6 +302,9 @@
             // Once we enter a new section, calculate the target position for the header.
             switch (row.getEntry().getBucket()) {
                 case BUCKET_HEADS_UP:
+                    if (mediaControlsTarget != -1) {
+                        mediaControlsTarget++;
+                    }
                     break;
                 case BUCKET_PEOPLE:
                     peopleNotifsPresent = true;
@@ -345,6 +374,8 @@
                 alertingHeaderTarget, mAlertingHeader, currentAlertingHeaderIdx);
         adjustHeaderVisibilityAndPosition(
                 peopleHeaderTarget, mPeopleHubView, currentPeopleHeaderIdx);
+        adjustViewPosition(
+                mediaControlsTarget, mMediaControlsView, currentMediaControlsIdx);
 
         // Update headers to reflect state of section contents
         mGentleHeader.setAreThereDismissableGentleNotifs(
@@ -378,6 +409,28 @@
         }
     }
 
+    private void adjustViewPosition(int targetPosition, ExpandableView header,
+            int currentPosition) {
+        if (targetPosition == -1) {
+            if (currentPosition != -1) {
+                mParent.removeView(header);
+            }
+        } else {
+            if (currentPosition == -1) {
+                // If the header is animating away, it will still have a parent, so detach it first
+                // TODO: We should really cancel the active animations here. This will happen
+                // automatically when the view's intro animation starts, but it's a fragile link.
+                if (header.getTransientContainer() != null) {
+                    header.getTransientContainer().removeTransientView(header);
+                    header.setTransientContainer(null);
+                }
+                mParent.addView(header, targetPosition);
+            } else {
+                mParent.changeViewPosition(header, targetPosition);
+            }
+        }
+    }
+
     /**
      * Updates the boundaries (as tracked by their first and last views) of the priority sections.
      *
@@ -447,7 +500,6 @@
         }
     }
 
-
     @VisibleForTesting
     ExpandableView getGentleHeaderView() {
         return mGentleHeader;
@@ -464,6 +516,11 @@
     }
 
     @VisibleForTesting
+    ExpandableView getMediaControlsView() {
+        return mMediaControlsView;
+    }
+
+    @VisibleForTesting
     void setPeopleHubVisible(boolean visible) {
         mPeopleHubVisible = visible;
     }
@@ -471,7 +528,7 @@
     private final ConfigurationListener mConfigurationListener = new ConfigurationListener() {
         @Override
         public void onLocaleListChanged() {
-            mGentleHeader.reinflateContents();
+            reinflateViews(LayoutInflater.from(mParent.getContext()));
         }
     };
 
@@ -502,13 +559,15 @@
     @Retention(SOURCE)
     @IntDef(prefix = { "BUCKET_" }, value = {
             BUCKET_HEADS_UP,
+            BUCKET_MEDIA_CONTROLS,
             BUCKET_PEOPLE,
             BUCKET_ALERTING,
             BUCKET_SILENT
     })
     public @interface PriorityBucket {}
     public static final int BUCKET_HEADS_UP = 0;
-    public static final int BUCKET_PEOPLE = 1;
-    public static final int BUCKET_ALERTING = 2;
-    public static final int BUCKET_SILENT = 3;
+    public static final int BUCKET_MEDIA_CONTROLS = 1;
+    public static final int BUCKET_PEOPLE = 2;
+    public static final int BUCKET_ALERTING = 3;
+    public static final int BUCKET_SILENT = 4;
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
index 4d4a2ded..823b186 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -222,6 +222,7 @@
     private boolean mIsScrollerBoundSet;
     private Runnable mFinishScrollingCallback;
     private int mTouchSlop;
+    private float mSlopMultiplier;
     private int mMinimumVelocity;
     private int mMaximumVelocity;
     private int mOverflingDistance;
@@ -1022,6 +1023,7 @@
         setClipChildren(false);
         final ViewConfiguration configuration = ViewConfiguration.get(context);
         mTouchSlop = configuration.getScaledTouchSlop();
+        mSlopMultiplier = configuration.getScaledAmbiguousGestureMultiplier();
         mMinimumVelocity = configuration.getScaledMinimumFlingVelocity();
         mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
         mOverflingDistance = configuration.getScaledOverflingDistance();
@@ -3744,15 +3746,23 @@
         mLongPressListener = listener;
     }
 
+    private float getTouchSlop(MotionEvent event) {
+        // Adjust the touch slop if another gesture may be being performed.
+        return event.getClassification() == MotionEvent.CLASSIFICATION_AMBIGUOUS_GESTURE
+                ? mTouchSlop * mSlopMultiplier
+                : mTouchSlop;
+    }
+
     @Override
     @ShadeViewRefactor(RefactorComponent.INPUT)
     public boolean onTouchEvent(MotionEvent ev) {
+        NotificationGuts guts = mNotificationGutsManager.getExposedGuts();
         boolean isCancelOrUp = ev.getActionMasked() == MotionEvent.ACTION_CANCEL
                 || ev.getActionMasked() == MotionEvent.ACTION_UP;
         handleEmptySpaceClick(ev);
         boolean expandWantsIt = false;
         boolean swipingInProgress = mSwipingInProgress;
-        if (mIsExpanded && !swipingInProgress && !mOnlyScrollingInThisMotion) {
+        if (mIsExpanded && !swipingInProgress && !mOnlyScrollingInThisMotion && guts == null) {
             if (isCancelOrUp) {
                 mExpandHelper.onlyObserveMovements(false);
             }
@@ -3778,7 +3788,6 @@
         }
 
         // Check if we need to clear any snooze leavebehinds
-        NotificationGuts guts = mNotificationGutsManager.getExposedGuts();
         if (guts != null && !NotificationSwipeHelper.isTouchInView(ev, guts)
                 && guts.getGutsContent() instanceof NotificationSnooze) {
             NotificationSnooze ns = (NotificationSnooze) guts.getGutsContent();
@@ -3891,12 +3900,13 @@
                 int deltaY = mLastMotionY - y;
                 final int xDiff = Math.abs(x - mDownX);
                 final int yDiff = Math.abs(deltaY);
-                if (!mIsBeingDragged && yDiff > mTouchSlop && yDiff > xDiff) {
+                final float touchSlop = getTouchSlop(ev);
+                if (!mIsBeingDragged && yDiff > touchSlop && yDiff > xDiff) {
                     setIsBeingDragged(true);
                     if (deltaY > 0) {
-                        deltaY -= mTouchSlop;
+                        deltaY -= touchSlop;
                     } else {
-                        deltaY += mTouchSlop;
+                        deltaY += touchSlop;
                     }
                 }
                 if (mIsBeingDragged) {
@@ -4046,9 +4056,11 @@
     public boolean onInterceptTouchEvent(MotionEvent ev) {
         initDownStates(ev);
         handleEmptySpaceClick(ev);
+
+        NotificationGuts guts = mNotificationGutsManager.getExposedGuts();
         boolean expandWantsIt = false;
         boolean swipingInProgress = mSwipingInProgress;
-        if (!swipingInProgress && !mOnlyScrollingInThisMotion) {
+        if (!swipingInProgress && !mOnlyScrollingInThisMotion && guts == null) {
             expandWantsIt = mExpandHelper.onInterceptTouchEvent(ev);
         }
         boolean scrollWantsIt = false;
@@ -4065,7 +4077,6 @@
         }
         // Check if we need to clear any snooze leavebehinds
         boolean isUp = ev.getActionMasked() == MotionEvent.ACTION_UP;
-        NotificationGuts guts = mNotificationGutsManager.getExposedGuts();
         if (!NotificationSwipeHelper.isTouchInView(ev, guts) && isUp && !swipeWantsIt &&
                 !expandWantsIt && !scrollWantsIt) {
             mCheckForLeavebehind = false;
@@ -4083,8 +4094,9 @@
     private void handleEmptySpaceClick(MotionEvent ev) {
         switch (ev.getActionMasked()) {
             case MotionEvent.ACTION_MOVE:
-                if (mTouchIsClick && (Math.abs(ev.getY() - mInitialTouchY) > mTouchSlop
-                        || Math.abs(ev.getX() - mInitialTouchX) > mTouchSlop)) {
+                final float touchSlop = getTouchSlop(ev);
+                if (mTouchIsClick && (Math.abs(ev.getY() - mInitialTouchY) > touchSlop
+                        || Math.abs(ev.getX() - mInitialTouchX) > touchSlop)) {
                     mTouchIsClick = false;
                 }
                 break;
@@ -4168,7 +4180,7 @@
                 final int x = (int) ev.getX(pointerIndex);
                 final int yDiff = Math.abs(y - mLastMotionY);
                 final int xDiff = Math.abs(x - mDownX);
-                if (yDiff > mTouchSlop && yDiff > xDiff) {
+                if (yDiff > getTouchSlop(ev) && yDiff > xDiff) {
                     setIsBeingDragged(true);
                     mLastMotionY = y;
                     mDownX = x;
@@ -6466,7 +6478,7 @@
 
     private boolean hasActiveNotifications() {
         if (mFeatureFlags.isNewNotifPipelineRenderingEnabled()) {
-            return mNotifPipeline.getShadeList().isEmpty();
+            return !mNotifPipeline.getShadeList().isEmpty();
         } else {
             return mEntryManager.hasActiveNotifications();
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/PeopleHubView.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/PeopleHubView.kt
index 1b4f98f..bc25c71 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/PeopleHubView.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/PeopleHubView.kt
@@ -76,9 +76,7 @@
             }
         }
 
-    override fun needsClippingToShelf(): Boolean {
-        return true
-    }
+    override fun needsClippingToShelf(): Boolean = true
 
     override fun applyContentTransformation(contentAlpha: Float, translationY: Float) {
         super.applyContentTransformation(contentAlpha, translationY)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/SectionHeaderView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/SectionHeaderView.java
index deb5532..a3d8eec 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/SectionHeaderView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/SectionHeaderView.java
@@ -20,7 +20,6 @@
 import android.annotation.StringRes;
 import android.content.Context;
 import android.util.AttributeSet;
-import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
@@ -30,16 +29,17 @@
 import com.android.systemui.R;
 import com.android.systemui.statusbar.notification.row.StackScrollerDecorView;
 
-import java.util.Objects;
-
 /**
- * Similar in size and appearance to the NotificationShelf, appears at the beginning of some
- * notification sections. Currently only used for gentle notifications.
+ * Header displayed above a notification section in the shade. Currently used for Alerting and
+ * Silent sections.
  */
 public class SectionHeaderView extends StackScrollerDecorView {
+
     private ViewGroup mContents;
     private TextView mLabelView;
     private ImageView mClearAllButton;
+    @StringRes @Nullable private Integer mLabelTextId;
+    @Nullable private View.OnClickListener mLabelClickListener = null;
     @Nullable private View.OnClickListener mOnClearClickListener = null;
 
     public SectionHeaderView(Context context, AttributeSet attrs) {
@@ -48,18 +48,24 @@
 
     @Override
     protected void onFinishInflate() {
-        mContents = Objects.requireNonNull(findViewById(R.id.content));
+        mContents = requireViewById(R.id.content);
         bindContents();
         super.onFinishInflate();
         setVisible(true /* nowVisible */, false /* animate */);
     }
 
     private void bindContents() {
-        mLabelView = Objects.requireNonNull(findViewById(R.id.header_label));
-        mClearAllButton = Objects.requireNonNull(findViewById(R.id.btn_clear_all));
+        mLabelView = requireViewById(R.id.header_label);
+        mClearAllButton = requireViewById(R.id.btn_clear_all);
         if (mOnClearClickListener != null) {
             mClearAllButton.setOnClickListener(mOnClearClickListener);
         }
+        if (mLabelClickListener != null) {
+            mLabelView.setOnClickListener(mLabelClickListener);
+        }
+        if (mLabelTextId != null) {
+            mLabelView.setText(mLabelTextId);
+        }
     }
 
     @Override
@@ -72,21 +78,6 @@
         return null;
     }
 
-    /**
-     * Destroys and reinflates the visible contents of the section header. For use on configuration
-     * changes or any other time that layout values might need to be re-evaluated.
-     *
-     * Does not reinflate the base content view itself ({@link #findContentView()} or any of the
-     * decorator views, such as the background view or shadow view.
-     */
-    void reinflateContents() {
-        mContents.removeAllViews();
-        LayoutInflater.from(getContext()).inflate(
-                R.layout.status_bar_notification_section_header_contents,
-                mContents);
-        bindContents();
-    }
-
     @Override
     public boolean isTransparent() {
         return true;
@@ -105,6 +96,7 @@
      * Fired whenever the user clicks on the body of the header (e.g. no sub-buttons or anything).
      */
     void setOnHeaderClickListener(View.OnClickListener listener) {
+        mLabelClickListener = listener;
         mLabelView.setOnClickListener(listener);
     }
 
@@ -129,6 +121,7 @@
     }
 
     void setHeaderText(@StringRes int resId) {
+        mLabelTextId = resId;
         mLabelView.setText(resId);
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java
index adca10f..8efda21 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java
@@ -112,8 +112,10 @@
     private final int mLongPressTimeout;
 
     private final PointF mDownPoint = new PointF();
+    private final PointF mEndPoint = new PointF();
     private boolean mThresholdCrossed = false;
     private boolean mAllowGesture = false;
+    private boolean mLogGesture = false;
     private boolean mInRejectedExclusion = false;
     private boolean mIsOnLeftEdge;
 
@@ -141,24 +143,16 @@
 
                     mOverviewProxyService.notifyBackAction(true, (int) mDownPoint.x,
                             (int) mDownPoint.y, false /* isButton */, !mIsOnLeftEdge);
-                    int backtype = (mInRejectedExclusion
-                            ? SysUiStatsLog.BACK_GESTURE__TYPE__COMPLETED_REJECTED :
-                            SysUiStatsLog.BACK_GESTURE__TYPE__COMPLETED);
-                    SysUiStatsLog.write(SysUiStatsLog.BACK_GESTURE_REPORTED_REPORTED, backtype,
-                            (int) mDownPoint.y, mIsOnLeftEdge
-                                    ? SysUiStatsLog.BACK_GESTURE__X_LOCATION__LEFT :
-                                    SysUiStatsLog.BACK_GESTURE__X_LOCATION__RIGHT);
+                    logGesture(mInRejectedExclusion
+                            ? SysUiStatsLog.BACK_GESTURE__TYPE__COMPLETED_REJECTED
+                            : SysUiStatsLog.BACK_GESTURE__TYPE__COMPLETED);
                 }
 
                 @Override
                 public void cancelBack() {
+                    logGesture(SysUiStatsLog.BACK_GESTURE__TYPE__INCOMPLETE);
                     mOverviewProxyService.notifyBackAction(false, (int) mDownPoint.x,
                             (int) mDownPoint.y, false /* isButton */, !mIsOnLeftEdge);
-                    int backtype = SysUiStatsLog.BACK_GESTURE__TYPE__INCOMPLETE;
-                    SysUiStatsLog.write(SysUiStatsLog.BACK_GESTURE_REPORTED_REPORTED, backtype,
-                            (int) mDownPoint.y, mIsOnLeftEdge
-                                    ? SysUiStatsLog.BACK_GESTURE__X_LOCATION__LEFT :
-                                    SysUiStatsLog.BACK_GESTURE__X_LOCATION__RIGHT);
                 }
             };
 
@@ -331,39 +325,55 @@
     }
 
     private boolean isWithinTouchRegion(int x, int y) {
-        // Disallow if too far from the edge
-        if (x > mEdgeWidthLeft + mLeftInset
-                && x < (mDisplaySize.x - mEdgeWidthRight - mRightInset)) {
-            return false;
-        }
-
         // Disallow if we are in the bottom gesture area
         if (y >= (mDisplaySize.y - mBottomGestureHeight)) {
             return false;
         }
 
-        // Always allow if the user is in a transient sticky immersive state
-        if (mIsNavBarShownTransiently) {
-            return true;
+        // If the point is way too far (twice the margin), it is
+        // not interesting to us for logging purposes, nor we
+        // should process it.  Simply return false and keep
+        // mLogGesture = false.
+        if (x > 2 * (mEdgeWidthLeft + mLeftInset)
+                && x < (mDisplaySize.x - 2 * (mEdgeWidthRight + mRightInset))) {
+            return false;
         }
 
-        boolean isInExcludedRegion = mExcludeRegion.contains(x, y);
-        if (isInExcludedRegion) {
-            mOverviewProxyService.notifyBackAction(false /* completed */, -1, -1,
-                    false /* isButton */, !mIsOnLeftEdge);
-            SysUiStatsLog.write(SysUiStatsLog.BACK_GESTURE_REPORTED_REPORTED,
-                    SysUiStatsLog.BACK_GESTURE__TYPE__INCOMPLETE_EXCLUDED, y,
-                    mIsOnLeftEdge ? SysUiStatsLog.BACK_GESTURE__X_LOCATION__LEFT :
-                            SysUiStatsLog.BACK_GESTURE__X_LOCATION__RIGHT);
-        } else {
-            mInRejectedExclusion = mUnrestrictedExcludeRegion.contains(x, y);
+        // Denotes whether we should proceed with the gesture.
+        // Even if it is false, we may want to log it assuming
+        // it is not invalid due to exclusion.
+        boolean withinRange = x <= mEdgeWidthLeft + mLeftInset
+                || x >= (mDisplaySize.x - mEdgeWidthRight - mRightInset);
+
+        // Always allow if the user is in a transient sticky immersive state
+        if (mIsNavBarShownTransiently) {
+            mLogGesture = true;
+            return withinRange;
         }
-        return !isInExcludedRegion;
+
+        if (mExcludeRegion.contains(x, y)) {
+            if (withinRange) {
+                // Log as exclusion only if it is in acceptable range in the first place.
+                mOverviewProxyService.notifyBackAction(
+                        false /* completed */, -1, -1, false /* isButton */, !mIsOnLeftEdge);
+                // We don't have the end point for logging purposes.
+                mEndPoint.x = -1;
+                mEndPoint.y = -1;
+                mLogGesture = true;
+                logGesture(SysUiStatsLog.BACK_GESTURE__TYPE__INCOMPLETE_EXCLUDED);
+            }
+            return false;
+        }
+
+        mInRejectedExclusion = mUnrestrictedExcludeRegion.contains(x, y);
+        mLogGesture = true;
+        return withinRange;
     }
 
     private void cancelGesture(MotionEvent ev) {
         // Send action cancel to reset all the touch events
         mAllowGesture = false;
+        mLogGesture = false;
         mInRejectedExclusion = false;
         MotionEvent cancelEv = MotionEvent.obtain(ev);
         cancelEv.setAction(MotionEvent.ACTION_CANCEL);
@@ -371,51 +381,86 @@
         cancelEv.recycle();
     }
 
+    private void logGesture(int backType) {
+        if (!mLogGesture) {
+            return;
+        }
+        mLogGesture = false;
+        SysUiStatsLog.write(SysUiStatsLog.BACK_GESTURE_REPORTED_REPORTED, backType,
+                (int) mDownPoint.y, mIsOnLeftEdge
+                        ? SysUiStatsLog.BACK_GESTURE__X_LOCATION__LEFT
+                        : SysUiStatsLog.BACK_GESTURE__X_LOCATION__RIGHT,
+                (int) mDownPoint.x, (int) mDownPoint.y,
+                (int) mEndPoint.x, (int) mEndPoint.y,
+                mEdgeWidthLeft + mLeftInset,
+                mDisplaySize.x - (mEdgeWidthRight + mRightInset));
+    }
+
     private void onMotionEvent(MotionEvent ev) {
         int action = ev.getActionMasked();
         if (action == MotionEvent.ACTION_DOWN) {
             // Verify if this is in within the touch region and we aren't in immersive mode, and
             // either the bouncer is showing or the notification panel is hidden
             mIsOnLeftEdge = ev.getX() <= mEdgeWidthLeft + mLeftInset;
+            mLogGesture = false;
             mInRejectedExclusion = false;
             mAllowGesture = !QuickStepContract.isBackGestureDisabled(mSysUiFlags)
                     && isWithinTouchRegion((int) ev.getX(), (int) ev.getY());
             if (mAllowGesture) {
                 mEdgeBackPlugin.setIsLeftPanel(mIsOnLeftEdge);
                 mEdgeBackPlugin.onMotionEvent(ev);
-
+            }
+            if (mLogGesture) {
                 mDownPoint.set(ev.getX(), ev.getY());
+                mEndPoint.set(-1, -1);
                 mThresholdCrossed = false;
             }
-
-        } else if (mAllowGesture) {
+        } else if (mAllowGesture || mLogGesture) {
             if (!mThresholdCrossed) {
+                mEndPoint.x = (int) ev.getX();
+                mEndPoint.y = (int) ev.getY();
                 if (action == MotionEvent.ACTION_POINTER_DOWN) {
-                    // We do not support multi touch for back gesture
-                    cancelGesture(ev);
+                    if (mAllowGesture) {
+                        logGesture(SysUiStatsLog.BACK_GESTURE__TYPE__INCOMPLETE_MULTI_TOUCH);
+                        // We do not support multi touch for back gesture
+                        cancelGesture(ev);
+                    }
+                    mLogGesture = false;
                     return;
                 } else if (action == MotionEvent.ACTION_MOVE) {
                     if ((ev.getEventTime() - ev.getDownTime()) > mLongPressTimeout) {
-                        cancelGesture(ev);
+                        if (mAllowGesture) {
+                            logGesture(SysUiStatsLog.BACK_GESTURE__TYPE__INCOMPLETE_LONG_PRESS);
+                            cancelGesture(ev);
+                        }
+                        mLogGesture = false;
                         return;
                     }
                     float dx = Math.abs(ev.getX() - mDownPoint.x);
                     float dy = Math.abs(ev.getY() - mDownPoint.y);
                     if (dy > dx && dy > mTouchSlop) {
-                        cancelGesture(ev);
+                        if (mAllowGesture) {
+                            logGesture(SysUiStatsLog.BACK_GESTURE__TYPE__INCOMPLETE_VERTICAL_MOVE);
+                            cancelGesture(ev);
+                        }
+                        mLogGesture = false;
                         return;
-
                     } else if (dx > dy && dx > mTouchSlop) {
-                        mThresholdCrossed = true;
-                        // Capture inputs
-                        mInputMonitor.pilferPointers();
+                        if (mAllowGesture) {
+                            mThresholdCrossed = true;
+                            // Capture inputs
+                            mInputMonitor.pilferPointers();
+                        } else {
+                            logGesture(SysUiStatsLog.BACK_GESTURE__TYPE__INCOMPLETE_FAR_FROM_EDGE);
+                        }
                     }
                 }
-
             }
 
-            // forward touch
-            mEdgeBackPlugin.onMotionEvent(ev);
+            if (mAllowGesture) {
+                // forward touch
+                mEdgeBackPlugin.onMotionEvent(ev);
+            }
         }
 
         Dependency.get(ProtoTracer.class).update();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
index 3074e33..f06cfec 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
@@ -203,6 +203,7 @@
             Log.wtf(TAG, "onFullyShown when view was null");
         } else {
             mKeyguardView.onResume();
+            mRoot.announceForAccessibility(mKeyguardView.getAccessibilityTitleForCurrentMode());
         }
     }
 
@@ -247,6 +248,7 @@
             if (mExpansion == EXPANSION_VISIBLE) {
                 mKeyguardView.onResume();
                 mKeyguardView.resetSecurityContainer();
+                showPromptReason(mBouncerPromptReason);
             }
             SysUiStatsLog.write(SysUiStatsLog.KEYGUARD_BOUNCER_STATE_CHANGED,
                     SysUiStatsLog.KEYGUARD_BOUNCER_STATE_CHANGED__STATE__SHOWN);
@@ -438,7 +440,6 @@
         mStatusBarHeight = mRoot.getResources().getDimensionPixelOffset(
                 com.android.systemui.R.dimen.status_bar_height);
         mRoot.setVisibility(View.INVISIBLE);
-        mRoot.setAccessibilityPaneTitle(mKeyguardView.getAccessibilityTitleForCurrentMode());
 
         final WindowInsets rootInsets = mRoot.getRootWindowInsets();
         if (rootInsets != null) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
index cf9d43e..d70484e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java
@@ -16,8 +16,6 @@
 
 package com.android.systemui.statusbar.phone;
 
-import static com.android.systemui.util.InjectionInflationController.VIEW_CONTEXT;
-
 import android.annotation.IntDef;
 import android.content.Context;
 import android.content.res.ColorStateList;
@@ -30,241 +28,98 @@
 import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.AttributeSet;
-import android.view.ViewTreeObserver;
-import android.view.accessibility.AccessibilityNodeInfo;
+import android.util.SparseArray;
+import android.view.ViewTreeObserver.OnPreDrawListener;
 
 import com.android.internal.graphics.ColorUtils;
-import com.android.keyguard.KeyguardUpdateMonitor;
-import com.android.systemui.Dependency;
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
 import com.android.systemui.statusbar.KeyguardAffordanceView;
-import com.android.systemui.statusbar.StatusBarState;
-import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
-import com.android.systemui.statusbar.phone.ScrimController.ScrimVisibility;
-import com.android.systemui.statusbar.policy.AccessibilityController;
-import com.android.systemui.statusbar.policy.KeyguardStateController;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
-import javax.inject.Inject;
-import javax.inject.Named;
-
 /**
  * Manages the different states and animations of the unlock icon.
  */
-public class LockIcon extends KeyguardAffordanceView implements
-        ViewTreeObserver.OnPreDrawListener {
+public class LockIcon extends KeyguardAffordanceView {
 
-    private static final int STATE_LOCKED = 0;
-    private static final int STATE_LOCK_OPEN = 1;
-    private static final int STATE_SCANNING_FACE = 2;
-    private static final int STATE_BIOMETRICS_ERROR = 3;
-    private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
-    private final AccessibilityController mAccessibilityController;
-    private final KeyguardStateController mKeyguardStateController;
-    private final KeyguardBypassController mBypassController;
-    private final NotificationWakeUpCoordinator mWakeUpCoordinator;
-    private final HeadsUpManagerPhone mHeadsUpManager;
-
-    private int mLastState = 0;
-    private boolean mForceUpdate;
-    private boolean mTransientBiometricsError;
-    private boolean mIsFaceUnlockState;
-    private boolean mSimLocked;
-    private int mDensity;
+    static final int STATE_LOCKED = 0;
+    static final int STATE_LOCK_OPEN = 1;
+    static final int STATE_SCANNING_FACE = 2;
+    static final int STATE_BIOMETRICS_ERROR = 3;
+    private float mDozeAmount;
+    private int mIconColor;
+    private StateProvider mStateProvider;
+    private int mOldState;
     private boolean mPulsing;
     private boolean mDozing;
-    private boolean mDocked;
-    private boolean mBlockUpdates;
-    private int mIconColor;
-    private float mDozeAmount;
-    private boolean mBouncerShowingScrimmed;
-    private boolean mWakeAndUnlockRunning;
-    private boolean mKeyguardShowing;
-    private boolean mShowingLaunchAffordance;
     private boolean mKeyguardJustShown;
-    private boolean mUpdatePending;
-    private boolean mBouncerPreHideAnimation;
-    private int mStatusBarState = StatusBarState.SHADE;
+    private final SparseArray<Drawable> mDrawableCache = new SparseArray<>();
 
-    private final KeyguardStateController.Callback mKeyguardMonitorCallback =
-            new KeyguardStateController.Callback() {
-                @Override
-                public void onKeyguardShowingChanged() {
-                    boolean force = false;
-                    boolean wasShowing = mKeyguardShowing;
-                    mKeyguardShowing = mKeyguardStateController.isShowing();
-                    if (!wasShowing && mKeyguardShowing && mBlockUpdates) {
-                        mBlockUpdates = false;
-                        force = true;
-                    }
-                    if (!wasShowing && mKeyguardShowing) {
-                        mKeyguardJustShown = true;
-                    }
-                    update(force);
-                }
+    private final OnPreDrawListener mOnPreDrawListener = new OnPreDrawListener() {
+        @Override
+        public boolean onPreDraw() {
+            getViewTreeObserver().removeOnPreDrawListener(this);
 
-                @Override
-                public void onKeyguardFadingAwayChanged() {
-                    if (!mKeyguardStateController.isKeyguardFadingAway()) {
-                        mBouncerPreHideAnimation = false;
-                        if (mBlockUpdates) {
-                            mBlockUpdates = false;
-                            update(true /* force */);
-                        }
-                    }
-                }
+            int newState = mStateProvider.getState();
+            Drawable icon = getIcon(newState);
+            setImageDrawable(icon, false);
 
-                @Override
-                public void onUnlockedChanged() {
-                    update();
-                }
-            };
+            if (newState == STATE_SCANNING_FACE) {
+                announceForAccessibility(getResources().getString(
+                        R.string.accessibility_scanning_face));
+            }
 
-    @Inject
-    public LockIcon(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs,
-            AccessibilityController accessibilityController,
-            KeyguardBypassController bypassController,
-            NotificationWakeUpCoordinator wakeUpCoordinator,
-            KeyguardStateController keyguardStateController,
-            HeadsUpManagerPhone headsUpManager) {
+            if (icon instanceof AnimatedVectorDrawable) {
+                final AnimatedVectorDrawable animation = (AnimatedVectorDrawable) icon;
+                animation.forceAnimationOnUI();
+                animation.clearAnimationCallbacks();
+                animation.registerAnimationCallback(
+                        new Animatable2.AnimationCallback() {
+                            @Override
+                            public void onAnimationEnd(Drawable drawable) {
+                                if (getDrawable() == animation
+                                        && newState == mStateProvider.getState()
+                                        && newState == STATE_SCANNING_FACE) {
+                                    animation.start();
+                                } else {
+                                    Trace.endAsyncSection("LockIcon#Animation", newState);
+                                }
+                            }
+                        });
+                Trace.beginAsyncSection("LockIcon#Animation", newState);
+                animation.start();
+            }
+
+            return true;
+        }
+    };
+
+    public LockIcon(Context context, AttributeSet attrs) {
         super(context, attrs);
-        mContext = context;
-        mKeyguardUpdateMonitor = Dependency.get(KeyguardUpdateMonitor.class);
-        mAccessibilityController = accessibilityController;
-        mBypassController = bypassController;
-        mWakeUpCoordinator = wakeUpCoordinator;
-        mKeyguardStateController = keyguardStateController;
-        mHeadsUpManager = headsUpManager;
     }
 
-    @Override
-    protected void onAttachedToWindow() {
-        super.onAttachedToWindow();
-        mKeyguardStateController.addCallback(mKeyguardMonitorCallback);
-        mSimLocked = mKeyguardUpdateMonitor.isSimPinSecure();
-        update();
-    }
-
-    @Override
-    protected void onDetachedFromWindow() {
-        super.onDetachedFromWindow();
-        mKeyguardStateController.removeCallback(mKeyguardMonitorCallback);
-    }
-
-    /**
-     * If we're currently presenting an authentication error message.
-     */
-    public void setTransientBiometricsError(boolean transientBiometricsError) {
-        mTransientBiometricsError = transientBiometricsError;
-        update();
+    void setStateProvider(StateProvider stateProvider) {
+        mStateProvider = stateProvider;
     }
 
     @Override
     protected void onConfigurationChanged(Configuration newConfig) {
         super.onConfigurationChanged(newConfig);
-        final int density = newConfig.densityDpi;
-        if (density != mDensity) {
-            mDensity = density;
-            update();
-        }
-    }
-
-    public void update() {
-        update(false /* force */);
-    }
-
-    public void update(boolean force) {
-        if (force) {
-            mForceUpdate = true;
-        }
-        if (!mUpdatePending) {
-            mUpdatePending = true;
-            getViewTreeObserver().addOnPreDrawListener(this);
-        }
-    }
-
-    @Override
-    public boolean onPreDraw() {
-        mUpdatePending = false;
-        getViewTreeObserver().removeOnPreDrawListener(this);
-
-        int state = getState();
-        int lastState = mLastState;
-        boolean keyguardJustShown = mKeyguardJustShown;
-        mIsFaceUnlockState = state == STATE_SCANNING_FACE;
-        mLastState = state;
-        mKeyguardJustShown = false;
-
-        boolean shouldUpdate = lastState != state || mForceUpdate;
-        if (mBlockUpdates && canBlockUpdates()) {
-            shouldUpdate = false;
-        }
-        if (shouldUpdate) {
-            mForceUpdate = false;
-            @LockAnimIndex final int lockAnimIndex = getAnimationIndexForTransition(lastState,
-                    state, mPulsing, mDozing, keyguardJustShown);
-            boolean isAnim = lockAnimIndex != -1;
-            int iconRes = isAnim ? getThemedAnimationResId(lockAnimIndex) : getIconForState(state);
-
-            Drawable icon = mContext.getDrawable(iconRes);
-            final AnimatedVectorDrawable animation = icon instanceof AnimatedVectorDrawable
-                    ? (AnimatedVectorDrawable) icon
-                    : null;
-            setImageDrawable(icon, false);
-            if (mIsFaceUnlockState) {
-                announceForAccessibility(getContext().getString(
-                        R.string.accessibility_scanning_face));
-            }
-
-            if (animation != null && isAnim) {
-                animation.forceAnimationOnUI();
-                animation.clearAnimationCallbacks();
-                animation.registerAnimationCallback(new Animatable2.AnimationCallback() {
-                    @Override
-                    public void onAnimationEnd(Drawable drawable) {
-                        if (getDrawable() == animation && state == getState()
-                                && doesAnimationLoop(lockAnimIndex)) {
-                            animation.start();
-                        } else {
-                            Trace.endAsyncSection("LockIcon#Animation", state);
-                        }
-                    }
-                });
-                Trace.beginAsyncSection("LockIcon#Animation", state);
-                animation.start();
-            }
-        }
-        updateDarkTint();
-
-        updateIconVisibility();
-        updateClickability();
-
-        return true;
+        mDrawableCache.clear();
     }
 
     /**
      * Update the icon visibility
      * @return true if the visibility changed
      */
-    boolean updateIconVisibility() {
-        boolean onAodNotPulsingOrDocked = mDozing && (!mPulsing || mDocked);
-        boolean invisible = onAodNotPulsingOrDocked || mWakeAndUnlockRunning
-                || mShowingLaunchAffordance;
-        if (mBypassController.getBypassEnabled() && !mBouncerShowingScrimmed) {
-            if ((mHeadsUpManager.isHeadsUpGoingAway() || mHeadsUpManager.hasPinnedHeadsUp()
-                    || mStatusBarState == StatusBarState.KEYGUARD)
-                    && !mWakeUpCoordinator.getNotificationsFullyHidden()) {
-                invisible = true;
-            }
-        }
-        boolean wasInvisible = getVisibility() == INVISIBLE;
-        if (invisible != wasInvisible) {
-            setVisibility(invisible ? INVISIBLE : VISIBLE);
+    boolean updateIconVisibility(boolean visible) {
+        boolean wasVisible = getVisibility() == VISIBLE;
+        if (visible != wasVisible) {
+            setVisibility(visible ? VISIBLE : INVISIBLE);
             animate().cancel();
-            if (!invisible) {
+            if (visible) {
                 setScaleX(0);
                 setScaleY(0);
                 animate()
@@ -280,49 +135,47 @@
         return false;
     }
 
-    private boolean canBlockUpdates() {
-        return mKeyguardShowing || mKeyguardStateController.isKeyguardFadingAway();
+    void update(int oldState, boolean pulsing, boolean dozing, boolean keyguardJustShown) {
+        mOldState = oldState;
+        mPulsing = pulsing;
+        mDozing = dozing;
+        mKeyguardJustShown = keyguardJustShown;
+
+        getViewTreeObserver().addOnPreDrawListener(mOnPreDrawListener);
     }
 
-    private void updateClickability() {
-        if (mAccessibilityController == null) {
-            return;
+    void setDozeAmount(float dozeAmount) {
+        mDozeAmount = dozeAmount;
+        updateDarkTint();
+    }
+
+    void onThemeChange(int iconColor) {
+        mDrawableCache.clear();
+        mIconColor = iconColor;
+        updateDarkTint();
+    }
+
+    private void updateDarkTint() {
+        int color = ColorUtils.blendARGB(mIconColor, Color.WHITE, mDozeAmount);
+        setImageTintList(ColorStateList.valueOf(color));
+    }
+
+    private Drawable getIcon(int newState) {
+        @LockAnimIndex final int lockAnimIndex =
+                getAnimationIndexForTransition(mOldState, newState, mPulsing, mDozing,
+                        mKeyguardJustShown);
+
+        boolean isAnim = lockAnimIndex != -1;
+        int iconRes = isAnim ? getThemedAnimationResId(lockAnimIndex) : getIconForState(newState);
+
+        if (!mDrawableCache.contains(iconRes)) {
+            mDrawableCache.put(iconRes, getResources().getDrawable(iconRes));
         }
-        boolean canLock = mKeyguardStateController.isMethodSecure()
-                && mKeyguardStateController.canDismissLockScreen();
-        boolean clickToUnlock = mAccessibilityController.isAccessibilityEnabled();
-        setClickable(clickToUnlock);
-        setLongClickable(canLock && !clickToUnlock);
-        setFocusable(mAccessibilityController.isAccessibilityEnabled());
+
+        return mDrawableCache.get(iconRes);
     }
 
-    @Override
-    public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
-        super.onInitializeAccessibilityNodeInfo(info);
-        boolean fingerprintRunning = mKeyguardUpdateMonitor.isFingerprintDetectionRunning();
-        // Only checking if unlocking with Biometric is allowed (no matter strong or non-strong
-        // as long as primary auth, i.e. PIN/pattern/password, is not required), so it's ok to
-        // pass true for isStrongBiometric to isUnlockingWithBiometricAllowed() to bypass the
-        // check of whether non-strong biometric is allowed
-        boolean unlockingAllowed = mKeyguardUpdateMonitor
-                        .isUnlockingWithBiometricAllowed(true /* isStrongBiometric */);
-        if (fingerprintRunning && unlockingAllowed) {
-            AccessibilityNodeInfo.AccessibilityAction unlock
-                    = new AccessibilityNodeInfo.AccessibilityAction(
-                    AccessibilityNodeInfo.ACTION_CLICK,
-                    getContext().getString(R.string.accessibility_unlock_without_fingerprint));
-            info.addAction(unlock);
-            info.setHintText(getContext().getString(
-                    R.string.accessibility_waiting_for_fingerprint));
-        } else if (mIsFaceUnlockState) {
-            //Avoid 'button' to be spoken for scanning face
-            info.setClassName(LockIcon.class.getName());
-            info.setContentDescription(getContext().getString(
-                R.string.accessibility_scanning_face));
-        }
-    }
-
-    private int getIconForState(int state) {
+    static int getIconForState(int state) {
         int iconRes;
         switch (state) {
             case STATE_LOCKED:
@@ -343,11 +196,7 @@
         return iconRes;
     }
 
-    private boolean doesAnimationLoop(@LockAnimIndex int lockAnimIndex) {
-        return lockAnimIndex == SCANNING;
-    }
-
-    private static int getAnimationIndexForTransition(int oldState, int newState, boolean pulsing,
+    static int getAnimationIndexForTransition(int oldState, int newState, boolean pulsing,
             boolean dozing, boolean keyguardJustShown) {
 
         // Never animate when screen is off
@@ -367,42 +216,10 @@
         return -1;
     }
 
-    public void setBouncerShowingScrimmed(boolean bouncerShowing) {
-        mBouncerShowingScrimmed = bouncerShowing;
-        if (mBypassController.getBypassEnabled()) {
-            update();
-        }
-    }
-
-    /**
-     * Animate padlock opening when bouncer challenge is solved.
-     */
-    public void onBouncerPreHideAnimation() {
-        mBouncerPreHideAnimation = true;
-        update();
-    }
-
-    void setIconColor(int iconColor) {
-        mIconColor = iconColor;
-        updateDarkTint();
-    }
-
-    void setSimLocked(boolean simLocked) {
-        mSimLocked = simLocked;
-    }
-
-    /** Set if the device is docked. */
-    public void setDocked(boolean docked) {
-        if (mDocked != docked) {
-            mDocked = docked;
-            update();
-        }
-    }
-
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({ERROR, UNLOCK, LOCK, SCANNING})
     @interface LockAnimIndex {}
-    private static final int ERROR = 0, UNLOCK = 1, LOCK = 2, SCANNING = 3;
+    static final int ERROR = 0, UNLOCK = 1, LOCK = 2, SCANNING = 3;
     private static final int[][] LOCK_ANIM_RES_IDS = new int[][] {
             {
                     R.anim.lock_to_error,
@@ -433,7 +250,7 @@
     private int getThemedAnimationResId(@LockAnimIndex int lockAnimIndex) {
         final String setting = TextUtils.emptyIfNull(
                 Settings.Secure.getString(getContext().getContentResolver(),
-                Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES));
+                        Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES));
         if (setting.contains("com.android.theme.icon_pack.circular.android")) {
             return LOCK_ANIM_RES_IDS[1][lockAnimIndex];
         } else if (setting.contains("com.android.theme.icon_pack.filled.android")) {
@@ -444,83 +261,8 @@
         return LOCK_ANIM_RES_IDS[0][lockAnimIndex];
     }
 
-    private int getState() {
-        KeyguardUpdateMonitor updateMonitor = Dependency.get(KeyguardUpdateMonitor.class);
-        if ((mKeyguardStateController.canDismissLockScreen() || !mKeyguardShowing
-                || mKeyguardStateController.isKeyguardGoingAway()) && !mSimLocked) {
-            return STATE_LOCK_OPEN;
-        } else if (mTransientBiometricsError) {
-            return STATE_BIOMETRICS_ERROR;
-        } else if (updateMonitor.isFaceDetectionRunning() && !mPulsing) {
-            return STATE_SCANNING_FACE;
-        } else {
-            return STATE_LOCKED;
-        }
+    interface StateProvider {
+        int getState();
     }
 
-    /**
-     * When keyguard is in pulsing (AOD2) state.
-     * @param pulsing {@code true} when pulsing.
-     */
-    public void setPulsing(boolean pulsing) {
-        mPulsing = pulsing;
-        update();
-    }
-
-    private void updateDarkTint() {
-        int color = ColorUtils.blendARGB(mIconColor, Color.WHITE, mDozeAmount);
-        setImageTintList(ColorStateList.valueOf(color));
-    }
-
-    /**
-     * We need to hide the lock whenever there's a fingerprint unlock, otherwise you'll see the
-     * icon on top of the black front scrim.
-     * @param wakeAndUnlock are we wake and unlocking
-     * @param isUnlock are we currently unlocking
-     */
-    public void onBiometricAuthModeChanged(boolean wakeAndUnlock, boolean isUnlock) {
-        if (wakeAndUnlock) {
-            mWakeAndUnlockRunning = true;
-        }
-        if (isUnlock && mBypassController.getBypassEnabled() && canBlockUpdates()) {
-            // We don't want the icon to change while we are unlocking
-            mBlockUpdates = true;
-        }
-        update();
-    }
-
-    /**
-     * When we're launching an affordance, like double pressing power to open camera.
-     */
-    public void onShowingLaunchAffordanceChanged(boolean showing) {
-        mShowingLaunchAffordance = showing;
-        update();
-    }
-
-    /**
-     * Called whenever the scrims become opaque, transparent or semi-transparent.
-     */
-    public void onScrimVisibilityChanged(@ScrimVisibility int scrimsVisible) {
-        if (mWakeAndUnlockRunning
-                && scrimsVisible == ScrimController.TRANSPARENT) {
-            mWakeAndUnlockRunning = false;
-            update();
-        }
-    }
-
-    void setDozing(boolean dozing) {
-        mDozing = dozing;
-        update();
-    }
-
-    void setDozeAmount(float dozeAmount) {
-        mDozeAmount = dozeAmount;
-        updateDarkTint();
-    }
-
-    /** Set the StatusBarState. */
-    public void setStatusBarState(int statusBarState) {
-        mStatusBarState = statusBarState;
-        updateIconVisibility();
-    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
index 2b1a8a4..f7c861b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java
@@ -16,11 +16,19 @@
 
 package com.android.systemui.statusbar.phone;
 
+import static com.android.systemui.statusbar.phone.LockIcon.STATE_BIOMETRICS_ERROR;
+import static com.android.systemui.statusbar.phone.LockIcon.STATE_LOCKED;
+import static com.android.systemui.statusbar.phone.LockIcon.STATE_LOCK_OPEN;
+import static com.android.systemui.statusbar.phone.LockIcon.STATE_SCANNING_FACE;
+
+import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.Color;
 import android.hardware.biometrics.BiometricSourceType;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityNodeInfo;
 
 import androidx.annotation.Nullable;
 
@@ -29,15 +37,18 @@
 import com.android.keyguard.KeyguardUpdateMonitor;
 import com.android.keyguard.KeyguardUpdateMonitorCallback;
 import com.android.systemui.R;
+import com.android.systemui.dagger.qualifiers.Main;
 import com.android.systemui.dock.DockManager;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.statusbar.CommandQueue;
 import com.android.systemui.statusbar.KeyguardIndicationController;
+import com.android.systemui.statusbar.StatusBarState;
 import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
 import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator.WakeUpListener;
 import com.android.systemui.statusbar.policy.AccessibilityController;
 import com.android.systemui.statusbar.policy.ConfigurationController;
 import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
+import com.android.systemui.statusbar.policy.KeyguardStateController;
 
 import java.util.Optional;
 
@@ -59,6 +70,21 @@
     private final NotificationWakeUpCoordinator mNotificationWakeUpCoordinator;
     private final KeyguardBypassController mKeyguardBypassController;
     private final Optional<DockManager> mDockManager;
+    private final KeyguardStateController mKeyguardStateController;
+    private final Resources mResources;
+    private final HeadsUpManagerPhone mHeadsUpManagerPhone;
+    private boolean mKeyguardShowing;
+    private boolean mKeyguardJustShown;
+    private boolean mBlockUpdates;
+    private boolean mPulsing;
+    private boolean mDozing;
+    private boolean mSimLocked;
+    private boolean mTransientBiometricsError;
+    private boolean mDocked;
+    private boolean mWakeAndUnlockRunning;
+    private boolean mShowingLaunchAffordance;
+    private boolean mBouncerShowingScrimmed;
+    private int mStatusBarState = StatusBarState.SHADE;
     private LockIcon mLockIcon;
 
     private View.OnAttachStateChangeListener mOnAttachStateChangeListener =
@@ -69,10 +95,13 @@
             mConfigurationController.addCallback(mConfigurationListener);
             mNotificationWakeUpCoordinator.addListener(mWakeUpListener);
             mKeyguardUpdateMonitor.registerCallback(mUpdateMonitorCallback);
+            mKeyguardStateController.addCallback(mKeyguardMonitorCallback);
 
             mDockManager.ifPresent(dockManager -> dockManager.addListener(mDockEventListener));
 
+            mSimLocked = mKeyguardUpdateMonitor.isSimPinSecure();
             mConfigurationListener.onThemeChanged();
+            update();
         }
 
         @Override
@@ -81,7 +110,7 @@
             mConfigurationController.removeCallback(mConfigurationListener);
             mNotificationWakeUpCoordinator.removeListener(mWakeUpListener);
             mKeyguardUpdateMonitor.removeCallback(mUpdateMonitorCallback);
-
+            mKeyguardStateController.removeCallback(mKeyguardMonitorCallback);
 
             mDockManager.ifPresent(dockManager -> dockManager.removeListener(mDockEventListener));
         }
@@ -91,32 +120,44 @@
             new StatusBarStateController.StateListener() {
                 @Override
                 public void onDozingChanged(boolean isDozing) {
-                    mLockIcon.setDozing(isDozing);
+                    setDozing(isDozing);
                 }
 
                 @Override
                 public void onDozeAmountChanged(float linear, float eased) {
-                    mLockIcon.setDozeAmount(eased);
+                    if (mLockIcon != null) {
+                        mLockIcon.setDozeAmount(eased);
+                    }
                 }
 
                 @Override
                 public void onStateChanged(int newState) {
-                    mLockIcon.setStatusBarState(newState);
+                    setStatusBarState(newState);
                 }
             };
 
     private final ConfigurationListener mConfigurationListener = new ConfigurationListener() {
+        private int mDensity;
+
         @Override
         public void onThemeChanged() {
+            if (mLockIcon == null) {
+                return;
+            }
+
             TypedArray typedArray = mLockIcon.getContext().getTheme().obtainStyledAttributes(
                     null, new int[]{ R.attr.wallpaperTextColor }, 0, 0);
             int iconColor = typedArray.getColor(0, Color.WHITE);
             typedArray.recycle();
-            mLockIcon.setIconColor(iconColor);
+            mLockIcon.onThemeChange(iconColor);
         }
 
         @Override
         public void onDensityOrFontScaleChanged() {
+            if (mLockIcon == null) {
+                return;
+            }
+
             ViewGroup.LayoutParams lp = mLockIcon.getLayoutParams();
             if (lp == null) {
                 return;
@@ -125,24 +166,41 @@
             lp.height = mLockIcon.getResources().getDimensionPixelSize(
                     R.dimen.keyguard_lock_height);
             mLockIcon.setLayoutParams(lp);
-            mLockIcon.update(true /* force */);
+            update(true /* force */);
         }
 
         @Override
         public void onLocaleListChanged() {
+            if (mLockIcon == null) {
+                return;
+            }
+
             mLockIcon.setContentDescription(
                     mLockIcon.getResources().getText(R.string.accessibility_unlock_button));
-            mLockIcon.update(true /* force */);
+            update(true /* force */);
+        }
+
+        @Override
+        public void onConfigChanged(Configuration newConfig) {
+            final int density = newConfig.densityDpi;
+            if (density != mDensity) {
+                mDensity = density;
+                update();
+            }
         }
     };
 
     private final WakeUpListener mWakeUpListener = new WakeUpListener() {
         @Override
+        public void onPulseExpansionChanged(boolean expandingChanged) {
+        }
+
+        @Override
         public void onFullyHiddenChanged(boolean isFullyHidden) {
             if (mKeyguardBypassController.getBypassEnabled()) {
-                boolean changed = mLockIcon.updateIconVisibility();
+                boolean changed = updateIconVisibility();
                 if (changed) {
-                    mLockIcon.update();
+                    update();
                 }
             }
         }
@@ -152,30 +210,103 @@
             new KeyguardUpdateMonitorCallback() {
                 @Override
                 public void onSimStateChanged(int subId, int slotId, int simState) {
-                    mLockIcon.setSimLocked(mKeyguardUpdateMonitor.isSimPinSecure());
-                    mLockIcon.update();
+                    mSimLocked = mKeyguardUpdateMonitor.isSimPinSecure();
+                    update();
                 }
 
                 @Override
                 public void onKeyguardVisibilityChanged(boolean showing) {
-                    mLockIcon.update();
+                    update();
                 }
 
                 @Override
                 public void onBiometricRunningStateChanged(boolean running,
                         BiometricSourceType biometricSourceType) {
-                    mLockIcon.update();
+                    update();
                 }
 
                 @Override
                 public void onStrongAuthStateChanged(int userId) {
-                    mLockIcon.update();
+                    update();
                 }
             };
 
     private final DockManager.DockEventListener mDockEventListener =
-            event -> mLockIcon.setDocked(event == DockManager.STATE_DOCKED
-                    || event == DockManager.STATE_DOCKED_HIDE);
+            event -> {
+                boolean docked =
+                        event == DockManager.STATE_DOCKED || event == DockManager.STATE_DOCKED_HIDE;
+                if (docked != mDocked) {
+                    mDocked = docked;
+                    update();
+                }
+            };
+
+    private final KeyguardStateController.Callback mKeyguardMonitorCallback =
+            new KeyguardStateController.Callback() {
+                @Override
+                public void onKeyguardShowingChanged() {
+                    boolean force = false;
+                    boolean wasShowing = mKeyguardShowing;
+                    mKeyguardShowing = mKeyguardStateController.isShowing();
+                    if (!wasShowing && mKeyguardShowing && mBlockUpdates) {
+                        mBlockUpdates = false;
+                        force = true;
+                    }
+                    if (!wasShowing && mKeyguardShowing) {
+                        mKeyguardJustShown = true;
+                    }
+                    update(force);
+                }
+
+                @Override
+                public void onKeyguardFadingAwayChanged() {
+                    if (!mKeyguardStateController.isKeyguardFadingAway()) {
+                        if (mBlockUpdates) {
+                            mBlockUpdates = false;
+                            update(true /* force */);
+                        }
+                    }
+                }
+
+                @Override
+                public void onUnlockedChanged() {
+                    update();
+                }
+            };
+
+    private final View.AccessibilityDelegate mAccessibilityDelegate =
+            new View.AccessibilityDelegate() {
+                @Override
+                public void onInitializeAccessibilityNodeInfo(View host,
+                        AccessibilityNodeInfo info) {
+                    super.onInitializeAccessibilityNodeInfo(host, info);
+                    boolean fingerprintRunning =
+                            mKeyguardUpdateMonitor.isFingerprintDetectionRunning();
+                    // Only checking if unlocking with Biometric is allowed (no matter strong or
+                    // non-strong as long as primary auth, i.e. PIN/pattern/password, is not
+                    // required), so it's ok to pass true for isStrongBiometric to
+                    // isUnlockingWithBiometricAllowed() to bypass the check of whether non-strong
+                    // biometric is allowed
+                    boolean unlockingAllowed = mKeyguardUpdateMonitor
+                            .isUnlockingWithBiometricAllowed(true /* isStrongBiometric */);
+                    if (fingerprintRunning && unlockingAllowed) {
+                        AccessibilityNodeInfo.AccessibilityAction unlock =
+                                new AccessibilityNodeInfo.AccessibilityAction(
+                                AccessibilityNodeInfo.ACTION_CLICK,
+                                mResources.getString(
+                                        R.string.accessibility_unlock_without_fingerprint));
+                        info.addAction(unlock);
+                        info.setHintText(mResources.getString(
+                                R.string.accessibility_waiting_for_fingerprint));
+                    } else if (getState() == STATE_SCANNING_FACE) {
+                        //Avoid 'button' to be spoken for scanning face
+                        info.setClassName(LockIcon.class.getName());
+                        info.setContentDescription(mResources.getString(
+                                R.string.accessibility_scanning_face));
+                    }
+                }
+            };
+    private int mLastState;
 
     @Inject
     public LockscreenLockIconController(LockscreenGestureLogger lockscreenGestureLogger,
@@ -188,7 +319,10 @@
             ConfigurationController configurationController,
             NotificationWakeUpCoordinator notificationWakeUpCoordinator,
             KeyguardBypassController keyguardBypassController,
-            @Nullable DockManager dockManager) {
+            @Nullable DockManager dockManager,
+            KeyguardStateController keyguardStateController,
+            @Main Resources resources,
+            HeadsUpManagerPhone headsUpManagerPhone) {
         mLockscreenGestureLogger = lockscreenGestureLogger;
         mKeyguardUpdateMonitor = keyguardUpdateMonitor;
         mLockPatternUtils = lockPatternUtils;
@@ -200,24 +334,31 @@
         mNotificationWakeUpCoordinator = notificationWakeUpCoordinator;
         mKeyguardBypassController = keyguardBypassController;
         mDockManager = dockManager == null ? Optional.empty() : Optional.of(dockManager);
+        mKeyguardStateController = keyguardStateController;
+        mResources = resources;
+        mHeadsUpManagerPhone = headsUpManagerPhone;
 
         mKeyguardIndicationController.setLockIconController(this);
     }
 
     /**
      * Associate the controller with a {@link LockIcon}
+     *
+     * TODO: change to an init method and inject the view.
      */
     public void attach(LockIcon lockIcon) {
         mLockIcon = lockIcon;
 
         mLockIcon.setOnClickListener(this::handleClick);
         mLockIcon.setOnLongClickListener(this::handleLongClick);
+        mLockIcon.setAccessibilityDelegate(mAccessibilityDelegate);
+        mLockIcon.setStateProvider(this::getState);
 
         if (mLockIcon.isAttachedToWindow()) {
             mOnAttachStateChangeListener.onViewAttachedToWindow(mLockIcon);
         }
         mLockIcon.addOnAttachStateChangeListener(mOnAttachStateChangeListener);
-        mLockIcon.setStatusBarState(mStatusBarStateController.getState());
+        setStatusBarState(mStatusBarStateController.getState());
     }
 
     public LockIcon getView() {
@@ -228,8 +369,10 @@
      * Called whenever the scrims become opaque, transparent or semi-transparent.
      */
     public void onScrimVisibilityChanged(Integer scrimsVisible) {
-        if (mLockIcon != null) {
-            mLockIcon.onScrimVisibilityChanged(scrimsVisible);
+        if (mWakeAndUnlockRunning
+                && scrimsVisible == ScrimController.TRANSPARENT) {
+            mWakeAndUnlockRunning = false;
+            update();
         }
     }
 
@@ -237,55 +380,56 @@
      * Propagate {@link StatusBar} pulsing state.
      */
     public void setPulsing(boolean pulsing) {
-        if (mLockIcon != null) {
-            mLockIcon.setPulsing(pulsing);
-        }
+        mPulsing = pulsing;
+        update();
     }
 
     /**
-     * Called when the biometric authentication mode changes.
-     *
-     * @param wakeAndUnlock If the type is {@link BiometricUnlockController#isWakeAndUnlock()}
-     * @param isUnlock      If the type is {@link BiometricUnlockController#isBiometricUnlock()} ()
+     * We need to hide the lock whenever there's a fingerprint unlock, otherwise you'll see the
+     * icon on top of the black front scrim.
+     * @param wakeAndUnlock are we wake and unlocking
+     * @param isUnlock are we currently unlocking
      */
     public void onBiometricAuthModeChanged(boolean wakeAndUnlock, boolean isUnlock) {
-        if (mLockIcon != null) {
-            mLockIcon.onBiometricAuthModeChanged(wakeAndUnlock, isUnlock);
+        if (wakeAndUnlock) {
+            mWakeAndUnlockRunning = true;
         }
+        if (isUnlock && mKeyguardBypassController.getBypassEnabled() && canBlockUpdates()) {
+            // We don't want the icon to change while we are unlocking
+            mBlockUpdates = true;
+        }
+        update();
     }
 
     /**
      * When we're launching an affordance, like double pressing power to open camera.
      */
     public void onShowingLaunchAffordanceChanged(Boolean showing) {
-        if (mLockIcon != null) {
-            mLockIcon.onShowingLaunchAffordanceChanged(showing);
-        }
+        mShowingLaunchAffordance = showing;
+        update();
     }
 
     /** Sets whether the bouncer is showing. */
     public void setBouncerShowingScrimmed(boolean bouncerShowing) {
-        if (mLockIcon != null) {
-            mLockIcon.setBouncerShowingScrimmed(bouncerShowing);
+        mBouncerShowingScrimmed = bouncerShowing;
+        if (mKeyguardBypassController.getBypassEnabled()) {
+            update();
         }
     }
 
     /**
-     * When {@link KeyguardBouncer} starts to be dismissed and starts to play its animation.
+     * Animate padlock opening when bouncer challenge is solved.
      */
     public void onBouncerPreHideAnimation() {
-        if (mLockIcon != null) {
-            mLockIcon.onBouncerPreHideAnimation();
-        }
+        update();
     }
 
     /**
      * If we're currently presenting an authentication error message.
      */
     public void setTransientBiometricsError(boolean transientBiometricsError) {
-        if (mLockIcon != null) {
-            mLockIcon.setTransientBiometricsError(transientBiometricsError);
-        }
+        mTransientBiometricsError = transientBiometricsError;
+        update();
     }
 
     private boolean handleLongClick(View view) {
@@ -306,4 +450,90 @@
         }
         mShadeController.animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
     }
+
+    private void update() {
+        update(false /* force */);
+    }
+
+    private void update(boolean force) {
+        int state = getState();
+        boolean shouldUpdate = mLastState != state || force;
+        if (mBlockUpdates && canBlockUpdates()) {
+            shouldUpdate = false;
+        }
+        if (shouldUpdate && mLockIcon != null) {
+            mLockIcon.update(mLastState, mPulsing, mDozing, mKeyguardJustShown);
+        }
+        mLastState = state;
+        mKeyguardJustShown = false;
+        updateIconVisibility();
+        updateClickability();
+    }
+
+    private int getState() {
+        if ((mKeyguardStateController.canDismissLockScreen() || !mKeyguardShowing
+                || mKeyguardStateController.isKeyguardGoingAway()) && !mSimLocked) {
+            return STATE_LOCK_OPEN;
+        } else if (mTransientBiometricsError) {
+            return STATE_BIOMETRICS_ERROR;
+        } else if (mKeyguardUpdateMonitor.isFaceDetectionRunning() && !mPulsing) {
+            return STATE_SCANNING_FACE;
+        } else {
+            return STATE_LOCKED;
+        }
+    }
+
+    private boolean canBlockUpdates() {
+        return mKeyguardShowing || mKeyguardStateController.isKeyguardFadingAway();
+    }
+
+    private void setDozing(boolean isDozing) {
+        mDozing = isDozing;
+        update();
+    }
+
+    /** Set the StatusBarState. */
+    private void setStatusBarState(int statusBarState) {
+        mStatusBarState = statusBarState;
+        updateIconVisibility();
+    }
+
+    /**
+     * Update the icon visibility
+     * @return true if the visibility changed
+     */
+    private boolean updateIconVisibility() {
+        boolean onAodNotPulsingOrDocked = mDozing && (!mPulsing || mDocked);
+        boolean invisible = onAodNotPulsingOrDocked || mWakeAndUnlockRunning
+                || mShowingLaunchAffordance;
+        if (mKeyguardBypassController.getBypassEnabled() && !mBouncerShowingScrimmed) {
+            if ((mHeadsUpManagerPhone.isHeadsUpGoingAway()
+                    || mHeadsUpManagerPhone.hasPinnedHeadsUp()
+                    || mStatusBarState == StatusBarState.KEYGUARD)
+                    && !mNotificationWakeUpCoordinator.getNotificationsFullyHidden()) {
+                invisible = true;
+            }
+        }
+
+        if (mLockIcon == null) {
+            return false;
+        }
+
+        return mLockIcon.updateIconVisibility(!invisible);
+    }
+
+    private void updateClickability() {
+        if (mAccessibilityController == null) {
+            return;
+        }
+        boolean canLock = mKeyguardStateController.isMethodSecure()
+                && mKeyguardStateController.canDismissLockScreen();
+        boolean clickToUnlock = mAccessibilityController.isAccessibilityEnabled();
+        if (mLockIcon != null) {
+            mLockIcon.setClickable(clickToUnlock);
+            mLockIcon.setLongClickable(canLock && !clickToUnlock);
+            mLockIcon.setFocusable(mAccessibilityController.isAccessibilityEnabled());
+        }
+    }
+
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
index f9726d2..5588c24 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
@@ -1021,7 +1021,8 @@
                     trackMovement(event);
                     return true;
                 }
-                if (Math.abs(h) > mTouchSlop && Math.abs(h) > Math.abs(x - mInitialTouchX)
+                if (Math.abs(h) > getTouchSlop(event)
+                        && Math.abs(h) > Math.abs(x - mInitialTouchX)
                         && shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, h)) {
                     mQsTracking = true;
                     onQsExpansionStarted();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
index 2719a32..481401b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
@@ -30,8 +30,6 @@
     protected StatusBar mStatusBar;
     protected HeadsUpManagerPhone mHeadsUpManager;
 
-    protected int mTouchSlop;
-
     protected KeyguardBottomAreaView mKeyguardBottomArea;
     private OnConfigurationChangedListener mOnConfigurationChangedListener;
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java
index 30367ed..83cc4e3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelViewController.java
@@ -91,7 +91,8 @@
     protected boolean mTracking;
     private boolean mTouchSlopExceeded;
     private int mTrackingPointer;
-    protected int mTouchSlop;
+    private int mTouchSlop;
+    private float mSlopMultiplier;
     protected boolean mHintAnimationRunning;
     private boolean mOverExpandedBeforeFling;
     private boolean mTouchAboveFalsingThreshold;
@@ -260,11 +261,19 @@
     protected void loadDimens() {
         final ViewConfiguration configuration = ViewConfiguration.get(mView.getContext());
         mTouchSlop = configuration.getScaledTouchSlop();
+        mSlopMultiplier = configuration.getScaledAmbiguousGestureMultiplier();
         mHintDistance = mResources.getDimension(R.dimen.hint_move_distance);
         mUnlockFalsingThreshold = mResources.getDimensionPixelSize(
                 R.dimen.unlock_falsing_threshold);
     }
 
+    protected float getTouchSlop(MotionEvent event) {
+        // Adjust the touch slop if another gesture may be being performed.
+        return event.getClassification() == MotionEvent.CLASSIFICATION_AMBIGUOUS_GESTURE
+                ? mTouchSlop * mSlopMultiplier
+                : mTouchSlop;
+    }
+
     private void addMovement(MotionEvent event) {
         // Add movement to velocity tracker using raw screen X and Y coordinates instead
         // of window coordinates because the window frame may be moving at the same time.
@@ -1111,7 +1120,8 @@
                     addMovement(event);
                     if (scrolledToBottom || mTouchStartedInEmptyArea || mAnimatingOnDown) {
                         float hAbs = Math.abs(h);
-                        if ((h < -mTouchSlop || (mAnimatingOnDown && hAbs > mTouchSlop))
+                        float touchSlop = getTouchSlop(event);
+                        if ((h < -touchSlop || (mAnimatingOnDown && hAbs > touchSlop))
                                 && hAbs > Math.abs(x - mInitialTouchX)) {
                             cancelHeightAnimator();
                             startExpandMotion(x, y, true /* startTracking */, mExpandedHeight);
@@ -1228,7 +1238,8 @@
 
                     // If the panel was collapsed when touching, we only need to check for the
                     // y-component of the gesture, as we have no conflicting horizontal gesture.
-                    if (Math.abs(h) > mTouchSlop && (Math.abs(h) > Math.abs(x - mInitialTouchX)
+                    if (Math.abs(h) > getTouchSlop(event)
+                            && (Math.abs(h) > Math.abs(x - mInitialTouchX)
                             || mIgnoreXTouchSlop)) {
                         mTouchSlopExceeded = true;
                         if (mGestureWaitForTouchSlop && !mTracking && !mCollapsedAndHeadsUpOnDown) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
index 1c1e7c4..977a307 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
@@ -66,7 +66,7 @@
         }
     };
     private DarkReceiver mBattery;
-    private int mRotationOrientation;
+    private int mRotationOrientation = -1;
     @Nullable
     private View mCenterIconSpace;
     @Nullable
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
index 760a6d6..c6f7983 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
@@ -99,11 +99,12 @@
         }
 
         // padding needed for corner cutout.
-        int leftCornerCutoutPadding = 0;
-        int rightCornerCutoutPadding = 0;
+        int leftCornerCutoutPadding = cutout.getSafeInsetLeft();
+        int rightCornerCutoutPadding = cutout.getSafeInsetRight();
         if (cornerCutoutPadding != null) {
-            leftCornerCutoutPadding = cornerCutoutPadding.first;
-            rightCornerCutoutPadding = cornerCutoutPadding.second;
+            leftCornerCutoutPadding = Math.max(leftCornerCutoutPadding, cornerCutoutPadding.first);
+            rightCornerCutoutPadding = Math.max(rightCornerCutoutPadding,
+                    cornerCutoutPadding.second);
         }
 
         return new Pair<>(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
index 496bf68..bf5900f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java
@@ -67,9 +67,9 @@
     private final Handler mBgHandler;
     protected final Context mContext;
 
-    private int mLevel;
-    private boolean mPluggedIn;
-    private boolean mCharging;
+    protected int mLevel;
+    protected boolean mPluggedIn;
+    protected boolean mCharging;
     private boolean mCharged;
     private boolean mPowerSave;
     private boolean mAodPowerSave;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
index 38c165b..60ee75b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
@@ -16,10 +16,13 @@
 
 package com.android.systemui.statusbar.policy;
 
+import static android.net.TetheringManager.TETHERING_WIFI;
+
 import android.app.ActivityManager;
 import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.TetheringManager;
+import android.net.TetheringManager.TetheringRequest;
 import android.net.wifi.WifiClient;
 import android.net.wifi.WifiManager;
 import android.os.Handler;
@@ -190,7 +193,7 @@
         if (enabled) {
             mWaitingForTerminalState = true;
             if (DEBUG) Log.d(TAG, "Starting tethering");
-            mTetheringManager.startTethering(ConnectivityManager.TETHERING_WIFI,
+            mTetheringManager.startTethering(new TetheringRequest.Builder(TETHERING_WIFI).build(),
                     ConcurrentUtils.DIRECT_EXECUTOR,
                     new TetheringManager.StartTetheringCallback() {
                         @Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcher.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcher.java
index 2abae3e..7d54981 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcher.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardUserSwitcher.java
@@ -60,7 +60,8 @@
             KeyguardStatusBarView statusBarView,
             NotificationPanelViewController panelViewController) {
         boolean keyguardUserSwitcherEnabled =
-                context.getResources().getBoolean(R.bool.config_keyguardUserSwitcher) || ALWAYS_ON;
+                context.getResources().getBoolean(
+                        com.android.internal.R.bool.config_keyguardUserSwitcher) || ALWAYS_ON;
         UserSwitcherController userSwitcherController = Dependency.get(UserSwitcherController.class);
         if (userSwitcherController != null && keyguardUserSwitcherEnabled) {
             mUserSwitcherContainer = (Container) userSwitcher.inflate();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
index 54e8e72..17cd98f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
@@ -26,12 +26,12 @@
 import android.telephony.CdmaEriInformation;
 import android.telephony.CellSignalStrength;
 import android.telephony.CellSignalStrengthCdma;
-import android.telephony.DisplayInfo;
 import android.telephony.PhoneStateListener;
 import android.telephony.ServiceState;
 import android.telephony.SignalStrength;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyDisplayInfo;
 import android.telephony.TelephonyManager;
 import android.text.Html;
 import android.text.TextUtils;
@@ -75,8 +75,9 @@
     // this could potentially become part of MobileState for simplification/complication
     // of code.
     private int mDataState = TelephonyManager.DATA_DISCONNECTED;
-    private DisplayInfo mDisplayInfo = new DisplayInfo(TelephonyManager.NETWORK_TYPE_UNKNOWN,
-            DisplayInfo.OVERRIDE_NETWORK_TYPE_NONE);
+    private TelephonyDisplayInfo mTelephonyDisplayInfo =
+            new TelephonyDisplayInfo(TelephonyManager.NETWORK_TYPE_UNKNOWN,
+                    TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE);
     private ServiceState mServiceState;
     private SignalStrength mSignalStrength;
     private MobileIconGroup mDefaultIcons;
@@ -240,41 +241,52 @@
         mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_HSPAP), hPlusGroup);
 
         if (mConfig.show4gForLte) {
-            mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_LTE),
+            mNetworkToIconLookup.put(toIconKey(
+                    TelephonyManager.NETWORK_TYPE_LTE),
                     TelephonyIcons.FOUR_G);
             if (mConfig.hideLtePlus) {
                 mNetworkToIconLookup.put(toDisplayIconKey(
-                        DisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA), TelephonyIcons.FOUR_G);
+                        TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA),
+                        TelephonyIcons.FOUR_G);
             } else {
                 mNetworkToIconLookup.put(toDisplayIconKey(
-                        DisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA), TelephonyIcons.FOUR_G_PLUS);
+                        TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA),
+                        TelephonyIcons.FOUR_G_PLUS);
             }
         } else {
-            mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_LTE),
+            mNetworkToIconLookup.put(toIconKey(
+                    TelephonyManager.NETWORK_TYPE_LTE),
                     TelephonyIcons.LTE);
             if (mConfig.hideLtePlus) {
                 mNetworkToIconLookup.put(toDisplayIconKey(
-                        DisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA), TelephonyIcons.LTE);
+                        TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA),
+                        TelephonyIcons.LTE);
             } else {
                 mNetworkToIconLookup.put(toDisplayIconKey(
-                        DisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA), TelephonyIcons.LTE_PLUS);
+                        TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA),
+                        TelephonyIcons.LTE_PLUS);
             }
         }
-        mNetworkToIconLookup.put(toIconKey(TelephonyManager.NETWORK_TYPE_IWLAN),
+        mNetworkToIconLookup.put(toIconKey(
+                TelephonyManager.NETWORK_TYPE_IWLAN),
                 TelephonyIcons.WFC);
         mNetworkToIconLookup.put(toDisplayIconKey(
-                DisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO), TelephonyIcons.LTE_CA_5G_E);
+                TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO),
+                TelephonyIcons.LTE_CA_5G_E);
         mNetworkToIconLookup.put(toDisplayIconKey(
-                DisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA), TelephonyIcons.NR_5G);
+                TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA),
+                TelephonyIcons.NR_5G);
         mNetworkToIconLookup.put(toDisplayIconKey(
-                DisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE), TelephonyIcons.NR_5G_PLUS);
+                TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE),
+                TelephonyIcons.NR_5G_PLUS);
     }
 
     private String getIconKey() {
-        if (mDisplayInfo.getOverrideNetworkType() == DisplayInfo.OVERRIDE_NETWORK_TYPE_NONE) {
-            return toIconKey(mDisplayInfo.getNetworkType());
+        if (mTelephonyDisplayInfo.getOverrideNetworkType()
+                == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE) {
+            return toIconKey(mTelephonyDisplayInfo.getNetworkType());
         } else {
-            return toDisplayIconKey(mDisplayInfo.getOverrideNetworkType());
+            return toDisplayIconKey(mTelephonyDisplayInfo.getOverrideNetworkType());
         }
     }
 
@@ -284,13 +296,13 @@
 
     private String toDisplayIconKey(@Annotation.OverrideNetworkType int displayNetworkType) {
         switch (displayNetworkType) {
-            case DisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA:
+            case TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA:
                 return toIconKey(TelephonyManager.NETWORK_TYPE_LTE) + "_CA";
-            case DisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO:
+            case TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO:
                 return toIconKey(TelephonyManager.NETWORK_TYPE_LTE) + "_CA_Plus";
-            case DisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA:
+            case TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA:
                 return "5G";
-            case DisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE:
+            case TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE:
                 return "5G_Plus";
             default:
                 return "unsupported";
@@ -502,14 +514,14 @@
 
     /**
      * Updates the current state based on mServiceState, mSignalStrength, mDataState,
-     * mDisplayInfo, and mSimState.  It should be called any time one of these is updated.
+     * mTelephonyDisplayInfo, and mSimState.  It should be called any time one of these is updated.
      * This will call listeners if necessary.
      */
     private final void updateTelephony() {
         if (DEBUG) {
             Log.d(mTag, "updateTelephonySignalStrength: hasService=" +
                     Utils.isInService(mServiceState) + " ss=" + mSignalStrength
-                    + " displayInfo=" + mDisplayInfo);
+                    + " displayInfo=" + mTelephonyDisplayInfo);
         }
         checkDefaultData();
         mCurrentState.connected = Utils.isInService(mServiceState) && mSignalStrength != null;
@@ -595,7 +607,7 @@
         pw.println("  mSubscription=" + mSubscriptionInfo + ",");
         pw.println("  mServiceState=" + mServiceState + ",");
         pw.println("  mSignalStrength=" + mSignalStrength + ",");
-        pw.println("  mDisplayInfo=" + mDisplayInfo + ",");
+        pw.println("  mTelephonyDisplayInfo=" + mTelephonyDisplayInfo + ",");
         pw.println("  mDataState=" + mDataState + ",");
         pw.println("  mInflateSignalStrengths=" + mInflateSignalStrengths + ",");
         pw.println("  isDataDisabled=" + isDataDisabled() + ",");
@@ -634,8 +646,9 @@
                         + " type=" + networkType);
             }
             mDataState = state;
-            if (networkType != mDisplayInfo.getNetworkType()) {
-                mDisplayInfo = new DisplayInfo(networkType, DisplayInfo.OVERRIDE_NETWORK_TYPE_NONE);
+            if (networkType != mTelephonyDisplayInfo.getNetworkType()) {
+                mTelephonyDisplayInfo = new TelephonyDisplayInfo(networkType,
+                        TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE);
             }
             updateTelephony();
         }
@@ -665,11 +678,11 @@
         }
 
         @Override
-        public void onDisplayInfoChanged(DisplayInfo displayInfo) {
+        public void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) {
             if (DEBUG) {
-                Log.d(mTag, "onDisplayInfoChanged: displayInfo=" + displayInfo);
+                Log.d(mTag, "onDisplayInfoChanged: telephonyDisplayInfo=" + telephonyDisplayInfo);
             }
-            mDisplayInfo = displayInfo;
+            mTelephonyDisplayInfo = telephonyDisplayInfo;
             updateTelephony();
         }
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
index 7c96386..c2fc18f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
@@ -37,10 +37,10 @@
 
 public class WifiSignalController extends
         SignalController<WifiSignalController.WifiState, SignalController.IconGroup> {
-    private final boolean mHasMobileData;
+    private final boolean mHasMobileDataFeature;
     private final WifiStatusTracker mWifiTracker;
 
-    public WifiSignalController(Context context, boolean hasMobileData,
+    public WifiSignalController(Context context, boolean hasMobileDataFeature,
             CallbackHandler callbackHandler, NetworkControllerImpl networkController,
             WifiManager wifiManager) {
         super("WifiSignalController", context, NetworkCapabilities.TRANSPORT_WIFI,
@@ -52,7 +52,7 @@
         mWifiTracker = new WifiStatusTracker(mContext, wifiManager, networkScoreManager,
                 connectivityManager, this::handleStatusUpdated);
         mWifiTracker.setListening(true);
-        mHasMobileData = hasMobileData;
+        mHasMobileDataFeature = hasMobileDataFeature;
         if (wifiManager != null) {
             wifiManager.registerTrafficStateCallback(context.getMainExecutor(),
                     new WifiTrafficStateCallback());
@@ -85,9 +85,10 @@
         // only show wifi in the cluster if connected or if wifi-only
         boolean visibleWhenEnabled = mContext.getResources().getBoolean(
                 R.bool.config_showWifiIndicatorWhenEnabled);
-        boolean wifiVisible = mCurrentState.enabled
-                && ((mCurrentState.connected && mCurrentState.inetCondition == 1)
-                    || !mHasMobileData || visibleWhenEnabled);
+        boolean wifiVisible = mCurrentState.enabled && (
+                (mCurrentState.connected && mCurrentState.inetCondition == 1)
+                        || !mHasMobileDataFeature || mWifiTracker.isDefaultNetwork
+                        || visibleWhenEnabled);
         String wifiDesc = mCurrentState.connected ? mCurrentState.ssid : null;
         boolean ssidPresent = wifiVisible && mCurrentState.ssid != null;
         String contentDescription = getTextIfExists(getContentDescription()).toString();
diff --git a/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java b/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java
index 11885c5..442c7ea 100644
--- a/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java
+++ b/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java
@@ -187,8 +187,9 @@
     }
 
     private void updateMissingPrivateVolumes() {
-        if (isTv()) {
+        if (isTv() || isAutomotive()) {
             // On TV, TvSettings displays a modal full-screen activity in this case.
+            // Not applicable for automotive.
             return;
         }
 
@@ -595,6 +596,9 @@
         if (isTv()) {
             intent.setPackage("com.android.tv.settings");
             intent.setAction("com.android.tv.settings.action.NEW_STORAGE");
+        } else if (isAutomotive()) {
+            // TODO(b/151671685): add intent to handle unsupported usb
+            return null;
         } else {
             intent.setClassName("com.android.settings",
                     "com.android.settings.deviceinfo.StorageWizardInit");
@@ -611,6 +615,9 @@
         if (isTv()) {
             intent.setPackage("com.android.tv.settings");
             intent.setAction("com.android.tv.settings.action.NEW_STORAGE");
+        } else if (isAutomotive()) {
+            // TODO(b/151671685): add intent to handle unmountable usb
+            return null;
         } else {
             intent.setClassName("com.android.settings",
                     "com.android.settings.deviceinfo.StorageWizardInit");
@@ -669,6 +676,9 @@
         if (isTv()) {
             intent.setPackage("com.android.tv.settings");
             intent.setAction(Settings.ACTION_INTERNAL_STORAGE_SETTINGS);
+        } else if (isAutomotive()) {
+            // TODO(b/151671685): add volume settings intent for automotive
+            return null;
         } else {
             switch (vol.getType()) {
                 case VolumeInfo.TYPE_PRIVATE:
@@ -700,7 +710,7 @@
     }
 
     private PendingIntent buildForgetPendingIntent(VolumeRecord rec) {
-        // Not used on TV
+        // Not used on TV and Automotive
         final Intent intent = new Intent();
         intent.setClassName("com.android.settings",
                 "com.android.settings.Settings$PrivateVolumeForgetActivity");
@@ -716,6 +726,9 @@
         if (isTv()) {
             intent.setPackage("com.android.tv.settings");
             intent.setAction("com.android.tv.settings.action.MIGRATE_STORAGE");
+        } else if (isAutomotive()) {
+            // TODO(b/151671685): add storage migrate intent for automotive
+            return null;
         } else {
             intent.setClassName("com.android.settings",
                     "com.android.settings.deviceinfo.StorageWizardMigrateProgress");
@@ -735,6 +748,9 @@
         if (isTv()) {
             intent.setPackage("com.android.tv.settings");
             intent.setAction("com.android.tv.settings.action.MOVE_APP");
+        } else if (isAutomotive()) {
+            // TODO(b/151671685): add storage move intent for automotive
+            return null;
         } else {
             intent.setClassName("com.android.settings",
                     "com.android.settings.deviceinfo.StorageWizardMoveProgress");
@@ -750,6 +766,9 @@
         if (isTv()) {
             intent.setPackage("com.android.tv.settings");
             intent.setAction(Settings.ACTION_INTERNAL_STORAGE_SETTINGS);
+        } else if (isAutomotive()) {
+            // TODO(b/151671685): add storage ready intent for automotive
+            return null;
         } else {
             intent.setClassName("com.android.settings",
                     "com.android.settings.deviceinfo.StorageWizardReady");
diff --git a/packages/SystemUI/src/com/android/systemui/util/InjectionInflationController.java b/packages/SystemUI/src/com/android/systemui/util/InjectionInflationController.java
index 56aae17..c637123 100644
--- a/packages/SystemUI/src/com/android/systemui/util/InjectionInflationController.java
+++ b/packages/SystemUI/src/com/android/systemui/util/InjectionInflationController.java
@@ -34,7 +34,6 @@
 import com.android.systemui.qs.customize.QSCustomizer;
 import com.android.systemui.statusbar.NotificationShelf;
 import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
-import com.android.systemui.statusbar.phone.LockIcon;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -148,11 +147,6 @@
         KeyguardMessageArea createKeyguardMessageArea();
 
         /**
-         * Creates the keyguard LockIcon.
-         */
-        LockIcon createLockIcon();
-
-        /**
          * Creates the QSPanel.
          */
         QSPanel createQSPanel();
diff --git a/packages/SystemUI/src/com/android/systemui/util/NotificationChannels.java b/packages/SystemUI/src/com/android/systemui/util/NotificationChannels.java
index 8c60747..90b95ea 100644
--- a/packages/SystemUI/src/com/android/systemui/util/NotificationChannels.java
+++ b/packages/SystemUI/src/com/android/systemui/util/NotificationChannels.java
@@ -53,7 +53,7 @@
                 .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                 .setUsage(AudioAttributes.USAGE_NOTIFICATION_EVENT)
                 .build());
-        batteryChannel.setBlockableSystem(true);
+        batteryChannel.setBlockable(true);
 
         final NotificationChannel alerts = new NotificationChannel(
                 ALERTS,
@@ -118,7 +118,7 @@
 
         screenshotChannel.setSound(null, // silent
                 new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_NOTIFICATION).build());
-        screenshotChannel.setBlockableSystem(true);
+        screenshotChannel.setBlockable(true);
 
         if (legacySS != null) {
             // Respect any user modified fields from the old channel.
diff --git a/packages/SystemUI/src/com/android/systemui/volume/Events.java b/packages/SystemUI/src/com/android/systemui/volume/Events.java
index e121001..6131e3b 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/Events.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/Events.java
@@ -238,7 +238,7 @@
         @UiEvent(doc = "The ringer mode was toggled to vibrate")
         RINGER_MODE_VIBRATE(155),
         @UiEvent(doc = "The ringer mode was toggled to normal")
-        RINGER_MODE_NORMAL(156),
+        RINGER_MODE_NORMAL(334),
         @UiEvent(doc = "USB Overheat alarm was raised")
         USB_OVERHEAT_ALARM(160),
         @UiEvent(doc = "USB Overheat alarm was dismissed")
@@ -293,7 +293,7 @@
     public enum ZenModeEvent implements UiEventLogger.UiEventEnum {
         INVALID(0),
         @UiEvent(doc = "Zen (do not disturb) mode was toggled to off")
-        ZEN_MODE_OFF(156),
+        ZEN_MODE_OFF(335),
         @UiEvent(doc = "Zen (do not disturb) mode was toggled to important interruptions only")
         ZEN_MODE_IMPORTANT_ONLY(157),
         @UiEvent(doc = "Zen (do not disturb) mode was toggled to alarms only")
diff --git a/packages/SystemUI/src/com/android/systemui/wm/DisplayChangeController.java b/packages/SystemUI/src/com/android/systemui/wm/DisplayChangeController.java
index 66bc306..6eba9ac 100644
--- a/packages/SystemUI/src/com/android/systemui/wm/DisplayChangeController.java
+++ b/packages/SystemUI/src/com/android/systemui/wm/DisplayChangeController.java
@@ -21,7 +21,7 @@
 import android.view.IDisplayWindowRotationCallback;
 import android.view.IDisplayWindowRotationController;
 import android.view.IWindowManager;
-import android.view.WindowContainerTransaction;
+import android.window.WindowContainerTransaction;
 
 import java.util.ArrayList;
 
diff --git a/packages/SystemUI/src/com/android/systemui/wm/DisplayImeController.java b/packages/SystemUI/src/com/android/systemui/wm/DisplayImeController.java
index 5411839..bae5bb4 100644
--- a/packages/SystemUI/src/com/android/systemui/wm/DisplayImeController.java
+++ b/packages/SystemUI/src/com/android/systemui/wm/DisplayImeController.java
@@ -20,6 +20,7 @@
 import android.animation.AnimatorListenerAdapter;
 import android.animation.ValueAnimator;
 import android.content.res.Configuration;
+import android.graphics.Point;
 import android.os.Handler;
 import android.os.RemoteException;
 import android.util.Slog;
@@ -97,7 +98,7 @@
         }
         if (mSystemWindows.mDisplayController.getDisplayLayout(displayId).rotation()
                 != pd.mRotation && isImeShowing(displayId)) {
-            pd.startAnimation(true);
+            pd.startAnimation(true, false /* forceRestart */);
         }
     }
 
@@ -200,7 +201,15 @@
                         continue;
                     }
                     if (activeControl.getType() == InsetsState.ITYPE_IME) {
-                        mImeSourceControl = activeControl;
+                        mHandler.post(() -> {
+                            final Point lastSurfacePosition = mImeSourceControl != null
+                                    ? mImeSourceControl.getSurfacePosition() : null;
+                            mImeSourceControl = activeControl;
+                            if (!activeControl.getSurfacePosition().equals(lastSurfacePosition)
+                                    && mAnimation != null) {
+                                startAnimation(mImeShowing, true /* forceRestart */);
+                            }
+                        });
                     }
                 }
             }
@@ -212,7 +221,7 @@
                 return;
             }
             if (DEBUG) Slog.d(TAG, "Got showInsets for ime");
-            startAnimation(true /* show */);
+            startAnimation(true /* show */, false /* forceRestart */);
         }
 
         @Override
@@ -221,7 +230,7 @@
                 return;
             }
             if (DEBUG) Slog.d(TAG, "Got hideInsets for ime");
-            startAnimation(false /* show */);
+            startAnimation(false /* show */, false /* forceRestart */);
         }
 
         /**
@@ -239,7 +248,7 @@
             return imeSource.getFrame().top + (int) surfaceOffset;
         }
 
-        private void startAnimation(final boolean show) {
+        private void startAnimation(final boolean show, final boolean forceRestart) {
             final InsetsSource imeSource = mInsetsState.getSource(InsetsState.ITYPE_IME);
             if (imeSource == null || mImeSourceControl == null) {
                 return;
@@ -250,7 +259,7 @@
                             + (mAnimationDirection == DIRECTION_SHOW ? "SHOW"
                             : (mAnimationDirection == DIRECTION_HIDE ? "HIDE" : "NONE")));
                 }
-                if ((mAnimationDirection == DIRECTION_SHOW && show)
+                if (!forceRestart && (mAnimationDirection == DIRECTION_SHOW && show)
                         || (mAnimationDirection == DIRECTION_HIDE && !show)) {
                     return;
                 }
@@ -270,11 +279,6 @@
                 final float shownY = defaultY;
                 final float startY = show ? hiddenY : shownY;
                 final float endY = show ? shownY : hiddenY;
-                if (mImeShowing && show) {
-                    // IME is already showing, so set seek to end
-                    seekValue = shownY;
-                    seek = true;
-                }
                 mImeShowing = show;
                 mAnimation = ValueAnimator.ofFloat(startY, endY);
                 mAnimation.setDuration(
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/AdminSecondaryLockScreenControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/AdminSecondaryLockScreenControllerTest.java
index 0e9a245..cf1299f 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/AdminSecondaryLockScreenControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/AdminSecondaryLockScreenControllerTest.java
@@ -105,7 +105,7 @@
             IKeyguardCallback callback = (IKeyguardCallback) invocation.getArguments()[1];
             callback.onRemoteContentReady(mSurfacePackage);
             return null;
-        }).when(mKeyguardClient).onSurfaceReady(any(), any(IKeyguardCallback.class));
+        }).when(mKeyguardClient).onCreateKeyguardSurface(any(), any(IKeyguardCallback.class));
 
         mTestController.show(mServiceIntent);
 
@@ -119,7 +119,7 @@
             IKeyguardCallback callback = (IKeyguardCallback) invocation.getArguments()[1];
             callback.onDismiss();
             return null;
-        }).when(mKeyguardClient).onSurfaceReady(any(), any(IKeyguardCallback.class));
+        }).when(mKeyguardClient).onCreateKeyguardSurface(any(), any(IKeyguardCallback.class));
 
         mTestController.show(mServiceIntent);
 
@@ -133,7 +133,7 @@
             IKeyguardCallback callback = (IKeyguardCallback) invocation.getArguments()[1];
             callback.onRemoteContentReady(mSurfacePackage);
             return null;
-        }).when(mKeyguardClient).onSurfaceReady(any(), any(IKeyguardCallback.class));
+        }).when(mKeyguardClient).onCreateKeyguardSurface(any(), any(IKeyguardCallback.class));
 
         mTestController.show(mServiceIntent);
         SurfaceView v = verifySurfaceReady();
@@ -151,9 +151,9 @@
     }
 
     @Test
-    public void testDismissed_onSurfaceReady_RemoteException() throws Exception {
+    public void testDismissed_onCreateKeyguardSurface_RemoteException() throws Exception {
         doThrow(new RemoteException()).when(mKeyguardClient)
-                .onSurfaceReady(any(), any(IKeyguardCallback.class));
+                .onCreateKeyguardSurface(any(), any(IKeyguardCallback.class));
 
         mTestController.show(mServiceIntent);
 
@@ -161,9 +161,9 @@
     }
 
     @Test
-    public void testDismissed_onSurfaceReady_timeout() throws Exception {
-        // Mocked KeyguardClient never handles the onSurfaceReady, so the operation times out,
-        // resulting in the view being dismissed.
+    public void testDismissed_onCreateKeyguardSurface_timeout() throws Exception {
+        // Mocked KeyguardClient never handles the onCreateKeyguardSurface, so the operation
+        // times out, resulting in the view being dismissed.
         doAnswer(answerVoid(Runnable::run)).when(mHandler)
                 .postDelayed(any(Runnable.class), anyLong());
 
@@ -178,7 +178,7 @@
         verify(mParent).addView(captor.capture());
 
         mTestableLooper.processAllMessages();
-        verify(mKeyguardClient).onSurfaceReady(any(), any(IKeyguardCallback.class));
+        verify(mKeyguardClient).onCreateKeyguardSurface(any(), any(IKeyguardCallback.class));
         return captor.getValue();
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java
index f7daf97..870010a 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java
@@ -19,7 +19,7 @@
 
 import static android.telephony.SubscriptionManager.DATA_ROAMING_DISABLE;
 import static android.telephony.SubscriptionManager.DATA_ROAMING_ENABLE;
-import static android.telephony.SubscriptionManager.NAME_SOURCE_DEFAULT;
+import static android.telephony.SubscriptionManager.NAME_SOURCE_CARRIER_ID;
 
 import static junit.framework.Assert.assertTrue;
 import static junit.framework.TestCase.assertFalse;
@@ -83,14 +83,14 @@
     private static final String TEST_CARRIER_2 = "TEST_CARRIER_2";
     private static final int TEST_CARRIER_ID = 1;
     private static final SubscriptionInfo TEST_SUBSCRIPTION = new SubscriptionInfo(0, "", 0,
-            TEST_CARRIER, TEST_CARRIER, NAME_SOURCE_DEFAULT, 0xFFFFFF, "",
+            TEST_CARRIER, TEST_CARRIER, NAME_SOURCE_CARRIER_ID, 0xFFFFFF, "",
             DATA_ROAMING_DISABLE, null, null, null, null, false, null, "", false, null,
             TEST_CARRIER_ID, 0);
     private static final SubscriptionInfo TEST_SUBSCRIPTION_NULL = new SubscriptionInfo(0, "", 0,
-            TEST_CARRIER, null, NAME_SOURCE_DEFAULT, 0xFFFFFF, "", DATA_ROAMING_DISABLE,
+            TEST_CARRIER, null, NAME_SOURCE_CARRIER_ID, 0xFFFFFF, "", DATA_ROAMING_DISABLE,
             null, null, null, null, false, null, "");
     private static final SubscriptionInfo TEST_SUBSCRIPTION_ROAMING = new SubscriptionInfo(0, "", 0,
-            TEST_CARRIER, TEST_CARRIER, NAME_SOURCE_DEFAULT, 0xFFFFFF, "",
+            TEST_CARRIER, TEST_CARRIER, NAME_SOURCE_CARRIER_ID, 0xFFFFFF, "",
             DATA_ROAMING_ENABLE, null, null, null, null, false, null, "");
     @Mock
     private WifiManager mWifiManager;
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardMediaPlayerTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardMediaPlayerTest.kt
new file mode 100644
index 0000000..072bc44
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardMediaPlayerTest.kt
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.keyguard
+
+import android.graphics.drawable.Icon
+import android.media.MediaMetadata
+import android.testing.AndroidTestingRunner
+import android.testing.TestableLooper
+import android.view.View
+import android.widget.TextView
+import androidx.arch.core.executor.ArchTaskExecutor
+import androidx.arch.core.executor.TaskExecutor
+import androidx.test.filters.SmallTest
+
+import com.android.systemui.R
+import com.android.systemui.SysuiTestCase
+import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
+import com.android.systemui.util.concurrency.FakeExecutor
+import com.android.systemui.util.time.FakeSystemClock
+import com.google.common.truth.Truth.assertThat
+
+import org.junit.After
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Mockito.mock
+import org.mockito.Mockito.verify
+import org.mockito.Mockito.`when` as whenever
+
+@SmallTest
+@RunWith(AndroidTestingRunner::class)
+@TestableLooper.RunWithLooper
+public class KeyguardMediaPlayerTest : SysuiTestCase() {
+
+    private lateinit var keyguardMediaPlayer: KeyguardMediaPlayer
+    private lateinit var fakeExecutor: FakeExecutor
+    private lateinit var mediaMetadata: MediaMetadata.Builder
+    private lateinit var entry: NotificationEntryBuilder
+    @Mock private lateinit var mockView: View
+    private lateinit var songView: TextView
+    private lateinit var artistView: TextView
+    @Mock private lateinit var mockIcon: Icon
+
+    private val taskExecutor: TaskExecutor = object : TaskExecutor() {
+        public override fun executeOnDiskIO(runnable: Runnable) {
+            runnable.run()
+        }
+        public override fun postToMainThread(runnable: Runnable) {
+            runnable.run()
+        }
+        public override fun isMainThread(): Boolean {
+            return true
+        }
+    }
+
+    @Before
+    public fun setup() {
+        fakeExecutor = FakeExecutor(FakeSystemClock())
+        keyguardMediaPlayer = KeyguardMediaPlayer(context, fakeExecutor)
+        mockIcon = mock(Icon::class.java)
+
+        mockView = mock(View::class.java)
+        songView = TextView(context)
+        artistView = TextView(context)
+        whenever<TextView>(mockView.findViewById(R.id.header_title)).thenReturn(songView)
+        whenever<TextView>(mockView.findViewById(R.id.header_artist)).thenReturn(artistView)
+
+        mediaMetadata = MediaMetadata.Builder()
+        entry = NotificationEntryBuilder()
+
+        ArchTaskExecutor.getInstance().setDelegate(taskExecutor)
+
+        keyguardMediaPlayer.bindView(mockView)
+    }
+
+    @After
+    public fun tearDown() {
+        keyguardMediaPlayer.unbindView()
+        ArchTaskExecutor.getInstance().setDelegate(null)
+    }
+
+    @Test
+    public fun testBind() {
+        keyguardMediaPlayer.unbindView()
+        keyguardMediaPlayer.bindView(mockView)
+    }
+
+    @Test
+    public fun testUnboundClearControls() {
+        keyguardMediaPlayer.unbindView()
+        keyguardMediaPlayer.clearControls()
+        keyguardMediaPlayer.bindView(mockView)
+    }
+
+    @Test
+    public fun testUpdateControls() {
+        keyguardMediaPlayer.updateControls(entry.build(), mockIcon, mediaMetadata.build())
+        FakeExecutor.exhaustExecutors(fakeExecutor)
+        verify(mockView).setVisibility(View.VISIBLE)
+    }
+
+    @Test
+    public fun testClearControls() {
+        keyguardMediaPlayer.clearControls()
+        FakeExecutor.exhaustExecutors(fakeExecutor)
+        verify(mockView).setVisibility(View.GONE)
+    }
+
+    @Test
+    public fun testSongName() {
+        val song: String = "Song"
+        mediaMetadata.putText(MediaMetadata.METADATA_KEY_TITLE, song)
+
+        keyguardMediaPlayer.updateControls(entry.build(), mockIcon, mediaMetadata.build())
+
+        assertThat(fakeExecutor.runAllReady()).isEqualTo(1)
+        assertThat(songView.getText()).isEqualTo(song)
+    }
+
+    @Test
+    public fun testArtistName() {
+        val artist: String = "Artist"
+        mediaMetadata.putText(MediaMetadata.METADATA_KEY_ARTIST, artist)
+
+        keyguardMediaPlayer.updateControls(entry.build(), mockIcon, mediaMetadata.build())
+
+        assertThat(fakeExecutor.runAllReady()).isEqualTo(1)
+        assertThat(artistView.getText()).isEqualTo(artist)
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
index 4f4ce13..eecde72 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
@@ -17,7 +17,7 @@
 package com.android.keyguard;
 
 import static android.telephony.SubscriptionManager.DATA_ROAMING_DISABLE;
-import static android.telephony.SubscriptionManager.NAME_SOURCE_DEFAULT;
+import static android.telephony.SubscriptionManager.NAME_SOURCE_CARRIER_ID;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -38,6 +38,7 @@
 import android.app.admin.DevicePolicyManager;
 import android.app.trust.TrustManager;
 import android.content.BroadcastReceiver;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
@@ -51,6 +52,7 @@
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.IRemoteCallback;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.telephony.ServiceState;
@@ -62,6 +64,7 @@
 import android.testing.TestableLooper;
 
 import com.android.internal.telephony.TelephonyIntents;
+import com.android.keyguard.KeyguardUpdateMonitor.BiometricAuthenticated;
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.broadcast.BroadcastDispatcher;
 import com.android.systemui.dump.DumpManager;
@@ -89,11 +92,11 @@
     private static final int TEST_CARRIER_ID = 1;
     private static final String TEST_GROUP_UUID = "59b5c870-fc4c-47a4-a99e-9db826b48b24";
     private static final SubscriptionInfo TEST_SUBSCRIPTION = new SubscriptionInfo(1, "", 0,
-            TEST_CARRIER, TEST_CARRIER, NAME_SOURCE_DEFAULT, 0xFFFFFF, "",
+            TEST_CARRIER, TEST_CARRIER, NAME_SOURCE_CARRIER_ID, 0xFFFFFF, "",
             DATA_ROAMING_DISABLE, null, null, null, null, false, null, "", false, TEST_GROUP_UUID,
             TEST_CARRIER_ID, 0);
     private static final SubscriptionInfo TEST_SUBSCRIPTION_2 = new SubscriptionInfo(2, "", 0,
-            TEST_CARRIER, TEST_CARRIER_2, NAME_SOURCE_DEFAULT, 0xFFFFFF, "",
+            TEST_CARRIER, TEST_CARRIER_2, NAME_SOURCE_CARRIER_ID, 0xFFFFFF, "",
             DATA_ROAMING_DISABLE, null, null, null, null, false, null, "", true, TEST_GROUP_UUID,
             TEST_CARRIER_ID, 0);
     @Mock
@@ -505,6 +508,24 @@
     }
 
     @Test
+    public void testBiometricsCleared_whenUserSwitches() throws Exception {
+        final IRemoteCallback reply = new IRemoteCallback.Stub() {
+            @Override
+            public void sendResult(Bundle data) {} // do nothing
+        };
+        final BiometricAuthenticated dummyAuthentication =
+                new BiometricAuthenticated(true /* authenticated */, true /* strong */);
+        mKeyguardUpdateMonitor.mUserFaceAuthenticated.put(0 /* user */, dummyAuthentication);
+        mKeyguardUpdateMonitor.mUserFingerprintAuthenticated.put(0 /* user */, dummyAuthentication);
+        assertThat(mKeyguardUpdateMonitor.mUserFingerprintAuthenticated.size()).isEqualTo(1);
+        assertThat(mKeyguardUpdateMonitor.mUserFaceAuthenticated.size()).isEqualTo(1);
+
+        mKeyguardUpdateMonitor.handleUserSwitching(10 /* user */, reply);
+        assertThat(mKeyguardUpdateMonitor.mUserFingerprintAuthenticated.size()).isEqualTo(0);
+        assertThat(mKeyguardUpdateMonitor.mUserFaceAuthenticated.size()).isEqualTo(0);
+    }
+
+    @Test
     public void testGetUserCanSkipBouncer_whenTrust() {
         int user = KeyguardUpdateMonitor.getCurrentUser();
         mKeyguardUpdateMonitor.onTrustChanged(true /* enabled */, user, 0 /* flags */);
@@ -567,7 +588,10 @@
         ResolveInfo resolveInfo = new ResolveInfo();
         resolveInfo.serviceInfo = serviceInfo;
         when(mPackageManager.resolveService(any(Intent.class), eq(0))).thenReturn(resolveInfo);
-        when(mDevicePolicyManager.isSecondaryLockscreenEnabled(eq(user))).thenReturn(true, false);
+        when(mDevicePolicyManager.isSecondaryLockscreenEnabled(eq(UserHandle.of(user))))
+                .thenReturn(true, false);
+        when(mDevicePolicyManager.getProfileOwnerAsUser(user))
+                .thenReturn(new ComponentName(packageName, cls));
 
         // Initially null.
         assertThat(mKeyguardUpdateMonitor.getSecondaryLockscreenRequirement(user)).isNull();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java
index bb2eea9..32604f8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java
@@ -15,6 +15,7 @@
  */
 package com.android.systemui;
 
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
@@ -32,7 +33,10 @@
 
 import com.android.keyguard.KeyguardUpdateMonitor;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.systemui.broadcast.BroadcastDispatcher;
+import com.android.systemui.broadcast.FakeBroadcastDispatcher;
 import com.android.systemui.classifier.FalsingManagerFake;
+import com.android.systemui.dump.DumpManager;
 import com.android.systemui.plugins.FalsingManager;
 
 import org.junit.After;
@@ -60,11 +64,14 @@
             new DexmakerShareClassLoaderRule();
     public TestableDependency mDependency;
     private Instrumentation mRealInstrumentation;
+    private FakeBroadcastDispatcher mFakeBroadcastDispatcher;
 
     @Before
     public void SysuiSetup() throws Exception {
         SystemUIFactory.createFromConfig(mContext);
         mDependency = new TestableDependency(mContext);
+        mFakeBroadcastDispatcher = new FakeBroadcastDispatcher(mContext, mock(Handler.class),
+                mock(Looper.class), mock(DumpManager.class));
 
         mRealInstrumentation = InstrumentationRegistry.getInstrumentation();
         Instrumentation inst = spy(mRealInstrumentation);
@@ -77,12 +84,18 @@
                     "SysUI Tests should use SysuiTestCase#getContext or SysuiTestCase#mContext");
         });
         InstrumentationRegistry.registerInstance(inst, InstrumentationRegistry.getArguments());
+        // Many tests end up creating a BroadcastDispatcher. Instead, give them a fake that will
+        // record receivers registered. They are not actually leaked as they are kept just as a weak
+        // reference and are never sent to the Context. This will also prevent a real
+        // BroadcastDispatcher from actually registering receivers.
+        mDependency.injectTestDependency(BroadcastDispatcher.class, mFakeBroadcastDispatcher);
         // A lot of tests get the FalsingManager, often via several layers of indirection.
         // None of them actually need it.
         mDependency.injectTestDependency(FalsingManager.class, new FalsingManagerFake());
         mDependency.injectMockDependency(KeyguardUpdateMonitor.class);
 
-        // TODO: b/151614195 investigate root cause of needing this mock dependency
+        // A lot of tests get the LocalBluetoothManager, often via several layers of indirection.
+        // None of them actually need it.
         mDependency.injectMockDependency(LocalBluetoothManager.class);
     }
 
@@ -95,6 +108,8 @@
         }
         disallowTestableLooperAsMainThread();
         SystemUIFactory.cleanup();
+        mContext.cleanUpReceivers(this.getClass().getSimpleName());
+        mFakeBroadcastDispatcher.cleanUpReceivers(this.getClass().getSimpleName());
     }
 
     /**
diff --git a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestableContext.java b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestableContext.java
index d847208..95ff98a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestableContext.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestableContext.java
@@ -14,12 +14,24 @@
 
 package com.android.systemui;
 
+import android.content.BroadcastReceiver;
 import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Handler;
+import android.os.UserHandle;
 import android.testing.LeakCheck;
 import android.testing.TestableContext;
+import android.util.ArraySet;
+import android.util.Log;
 import android.view.Display;
 
+import java.util.Set;
+
 public class SysuiTestableContext extends TestableContext {
+
+    private Set<BroadcastReceiver> mRegisteredReceivers = new ArraySet<>();
+
     public SysuiTestableContext(Context base) {
         super(base);
         setTheme(R.style.Theme_SystemUI);
@@ -40,4 +52,42 @@
                 new SysuiTestableContext(getBaseContext().createDisplayContext(display));
         return context;
     }
+
+    public void cleanUpReceivers(String testName) {
+        Set<BroadcastReceiver> copy = new ArraySet<>(mRegisteredReceivers);
+        for (BroadcastReceiver r : copy) {
+            try {
+                unregisterReceiver(r);
+                Log.w(testName, "Receiver not unregistered from Context: " + r);
+            } catch (IllegalArgumentException e) {
+                // Nothing to do here. Somehow it got unregistered.
+            }
+        }
+    }
+
+    @Override
+    public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
+        mRegisteredReceivers.add(receiver);
+        return super.registerReceiver(receiver, filter);
+    }
+
+    @Override
+    public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter,
+            String broadcastPermission, Handler scheduler) {
+        mRegisteredReceivers.add(receiver);
+        return super.registerReceiver(receiver, filter, broadcastPermission, scheduler);
+    }
+
+    @Override
+    public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
+            IntentFilter filter, String broadcastPermission, Handler scheduler) {
+        mRegisteredReceivers.add(receiver);
+        return super.registerReceiverAsUser(receiver, user, filter, broadcastPermission, scheduler);
+    }
+
+    @Override
+    public void unregisterReceiver(BroadcastReceiver receiver) {
+        mRegisteredReceivers.remove(receiver);
+        super.unregisterReceiver(receiver);
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/assist/AssistHandleBehaviorControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/assist/AssistHandleBehaviorControllerTest.java
index 731101c..afcd441 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/assist/AssistHandleBehaviorControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/assist/AssistHandleBehaviorControllerTest.java
@@ -33,6 +33,7 @@
 import android.os.Handler;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper.RunWithLooper;
+import android.view.accessibility.AccessibilityManager;
 
 import androidx.test.filters.SmallTest;
 
@@ -40,14 +41,13 @@
 import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.dump.DumpManager;
-import com.android.systemui.plugins.statusbar.StatusBarStateController;
-import com.android.systemui.recents.OverviewProxyService;
 import com.android.systemui.statusbar.phone.NavigationModeController;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.InOrder;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
@@ -73,15 +73,16 @@
     @Mock private AssistHandleBehaviorController.BehaviorController mMockTestBehavior;
     @Mock private NavigationModeController mMockNavigationModeController;
     @Mock private AssistHandleViewController mMockAssistHandleViewController;
+    @Mock private AccessibilityManager mMockA11yManager;
 
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        mDependency.injectMockDependency(StatusBarStateController.class);
-        mDependency.injectMockDependency(OverviewProxyService.class);
         doAnswer(answerVoid(Runnable::run)).when(mMockHandler).post(any(Runnable.class));
         doAnswer(answerVoid(Runnable::run)).when(mMockHandler)
                 .postDelayed(any(Runnable.class), anyLong());
+        doAnswer(invocation -> invocation.getArgument(0)).when(mMockA11yManager)
+                .getRecommendedTimeoutMillis(anyInt(), anyInt());
 
         Map<AssistHandleBehavior, AssistHandleBehaviorController.BehaviorController> behaviorMap =
                 new EnumMap<>(AssistHandleBehavior.class);
@@ -99,6 +100,7 @@
                         mMockDeviceConfigHelper,
                         behaviorMap,
                         mMockNavigationModeController,
+                        () -> mMockA11yManager,
                         mock(DumpManager.class));
     }
 
@@ -243,6 +245,28 @@
     }
 
     @Test
+    public void showAndGo_usesA11yTimeout() {
+        // Arrange
+        when(mMockAssistUtils.getAssistComponentForUser(anyInt())).thenReturn(COMPONENT_NAME);
+        when(mMockDeviceConfigHelper.getLong(
+                eq(SystemUiDeviceConfigFlags.ASSIST_HANDLES_SHOW_AND_GO_DURATION_MS), anyLong()))
+                .thenReturn(12345L);
+        mAssistHandleBehaviorController.hide();
+        reset(mMockAssistHandleViewController, mMockA11yManager);
+        when(mMockA11yManager.getRecommendedTimeoutMillis(anyInt(), anyInt())).thenReturn(54321);
+        ArgumentCaptor<Long> delay = ArgumentCaptor.forClass(Long.class);
+
+        // Act
+        mAssistHandleBehaviorController.showAndGo();
+
+        // Assert
+        verify(mMockA11yManager).getRecommendedTimeoutMillis(
+                eq(12345), eq(AccessibilityManager.FLAG_CONTENT_ICONS));
+        verify(mMockHandler).postDelayed(any(Runnable.class), delay.capture());
+        assert delay.getValue() == 54321L;
+    }
+
+    @Test
     public void showAndGoDelayed_showsThenHidesHandlesWhenHiding() {
         // Arrange
         when(mMockAssistUtils.getAssistComponentForUser(anyInt())).thenReturn(COMPONENT_NAME);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.java
index 1db8e4c..74d0610 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.java
@@ -34,6 +34,7 @@
 
 import android.content.Context;
 import android.hardware.biometrics.BiometricAuthenticator;
+import android.hardware.biometrics.BiometricConstants;
 import android.hardware.biometrics.BiometricPrompt;
 import android.os.Bundle;
 import android.os.IBinder;
@@ -89,6 +90,8 @@
 
         mAuthContainer.mBiometricCallback.onAction(
                 AuthBiometricView.Callback.ACTION_USER_CANCELED);
+        verify(mCallback).onSystemEvent(eq(
+                BiometricConstants.BIOMETRIC_SYSTEM_EVENT_EARLY_USER_CANCEL));
         verify(mCallback).onDismissed(
                 eq(AuthDialogCallback.DISMISSED_USER_CANCELED),
                 eq(null) /* credentialAttestation */);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/broadcast/FakeBroadcastDispatcher.kt b/packages/SystemUI/tests/src/com/android/systemui/broadcast/FakeBroadcastDispatcher.kt
new file mode 100644
index 0000000..9a5773a
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/broadcast/FakeBroadcastDispatcher.kt
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.broadcast
+
+import android.content.BroadcastReceiver
+import android.content.IntentFilter
+import android.os.Handler
+import android.os.Looper
+import android.os.UserHandle
+import android.util.ArraySet
+import android.util.Log
+import com.android.systemui.SysuiTestableContext
+import com.android.systemui.dump.DumpManager
+import java.util.concurrent.Executor
+
+class FakeBroadcastDispatcher(
+    context: SysuiTestableContext,
+    handler: Handler,
+    looper: Looper,
+    dumpManager: DumpManager
+) : BroadcastDispatcher(context, handler, looper, dumpManager) {
+
+    private val registeredReceivers = ArraySet<BroadcastReceiver>()
+
+    override fun registerReceiverWithHandler(
+        receiver: BroadcastReceiver,
+        filter: IntentFilter,
+        handler: Handler,
+        user: UserHandle
+    ) {
+        registeredReceivers.add(receiver)
+    }
+
+    override fun registerReceiver(
+        receiver: BroadcastReceiver,
+        filter: IntentFilter,
+        executor: Executor?,
+        user: UserHandle
+    ) {
+        registeredReceivers.add(receiver)
+    }
+
+    override fun unregisterReceiver(receiver: BroadcastReceiver) {
+        registeredReceivers.remove(receiver)
+    }
+
+    override fun unregisterReceiverForUser(receiver: BroadcastReceiver, user: UserHandle) {
+        registeredReceivers.remove(receiver)
+    }
+
+    fun cleanUpReceivers(testName: String) {
+        registeredReceivers.forEach {
+            Log.i(testName, "Receiver not unregistered from dispatcher: $it")
+        }
+        registeredReceivers.clear()
+    }
+}
\ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java
index 6e612d7..6f3fbb9 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java
@@ -62,7 +62,9 @@
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.colorextraction.SysuiColorExtractor;
 import com.android.systemui.dump.DumpManager;
+import com.android.systemui.model.SysUiState;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
+import com.android.systemui.shared.system.QuickStepContract;
 import com.android.systemui.statusbar.FeatureFlags;
 import com.android.systemui.statusbar.NotificationLockscreenUserManager;
 import com.android.systemui.statusbar.NotificationRemoveInterceptor;
@@ -90,6 +92,8 @@
 import com.android.systemui.util.FloatingContentCoordinator;
 import com.android.systemui.util.InjectionInflationController;
 
+import com.google.common.collect.ImmutableList;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -136,6 +140,9 @@
     @Mock
     private FloatingContentCoordinator mFloatingContentCoordinator;
 
+    private SysUiState mSysUiState;
+    private boolean mSysUiStateBubblesExpanded;
+
     @Captor
     private ArgumentCaptor<NotificationEntryListener> mEntryListenerCaptor;
     @Captor
@@ -229,6 +236,11 @@
         mZenModeConfig.suppressedVisualEffects = 0;
         when(mZenModeController.getConfig()).thenReturn(mZenModeConfig);
 
+        mSysUiState = new SysUiState();
+        mSysUiState.addCallback(sysUiFlags ->
+                mSysUiStateBubblesExpanded =
+                        (sysUiFlags & QuickStepContract.SYSUI_STATE_BUBBLES_EXPANDED) != 0);
+
         TestableNotificationInterruptStateProviderImpl interruptionStateProvider =
                 new TestableNotificationInterruptStateProviderImpl(mContext.getContentResolver(),
                         mock(PowerManager.class),
@@ -257,7 +269,8 @@
                 mNotifPipeline,
                 mFeatureFlagsOldPipeline,
                 mDumpManager,
-                mFloatingContentCoordinator);
+                mFloatingContentCoordinator,
+                mSysUiState);
         mBubbleController.setBubbleStateChangeListener(mBubbleStateChangeListener);
         mBubbleController.setExpandListener(mBubbleExpandListener);
 
@@ -277,6 +290,7 @@
         assertTrue(mBubbleController.hasBubbles());
 
         verify(mBubbleStateChangeListener).onHasBubblesChanged(true);
+        assertFalse(mSysUiStateBubblesExpanded);
     }
 
     @Test
@@ -284,6 +298,7 @@
         assertFalse(mBubbleController.hasBubbles());
         mBubbleController.updateBubble(mRow.getEntry());
         assertTrue(mBubbleController.hasBubbles());
+        assertFalse(mSysUiStateBubblesExpanded);
     }
 
     @Test
@@ -300,6 +315,25 @@
         assertNull(mBubbleData.getBubbleWithKey(mRow.getEntry().getKey()));
         verify(mNotificationEntryManager, times(2)).updateNotifications(anyString());
         verify(mBubbleStateChangeListener).onHasBubblesChanged(false);
+
+        assertFalse(mSysUiStateBubblesExpanded);
+    }
+
+    @Test
+    public void testPromoteBubble_autoExpand() {
+        mBubbleController.updateBubble(mRow2.getEntry());
+        mBubbleController.updateBubble(mRow.getEntry());
+        mBubbleController.removeBubble(
+                mRow.getEntry(), BubbleController.DISMISS_USER_GESTURE);
+
+        Bubble b = mBubbleData.getOverflowBubbleWithKey(mRow.getEntry().getKey());
+        assertThat(mBubbleData.getOverflowBubbles()).isEqualTo(ImmutableList.of(b));
+
+        Bubble b2 = mBubbleData.getBubbleWithKey(mRow2.getEntry().getKey());
+        assertThat(mBubbleData.getSelectedBubble()).isEqualTo(b2);
+
+        mBubbleController.promoteBubbleFromOverflow(b);
+        assertThat(mBubbleData.getSelectedBubble()).isEqualTo(b);
     }
 
     @Test
@@ -323,6 +357,8 @@
         verify(mNotificationEntryManager, times(1)).performRemoveNotification(
                 eq(mRow.getEntry().getSbn()), anyInt());
         assertFalse(mBubbleController.hasBubbles());
+
+        assertFalse(mSysUiStateBubblesExpanded);
     }
 
     @Test
@@ -340,6 +376,8 @@
         verify(mNotificationEntryManager, times(3)).updateNotifications(any());
         assertNull(mBubbleData.getBubbleWithKey(mRow.getEntry().getKey()));
         assertNull(mBubbleData.getBubbleWithKey(mRow2.getEntry().getKey()));
+
+        assertFalse(mSysUiStateBubblesExpanded);
     }
 
     @Test
@@ -363,6 +401,8 @@
         verify(mBubbleExpandListener).onBubbleExpandChanged(true, mRow.getEntry().getKey());
         assertTrue(mNotificationShadeWindowController.getBubbleExpanded());
 
+        assertTrue(mSysUiStateBubblesExpanded);
+
         // Make sure the notif is suppressed
         assertTrue(mBubbleController.isBubbleNotificationSuppressedFromShade(
                 mRow.getEntry()));
@@ -372,6 +412,8 @@
         verify(mBubbleExpandListener).onBubbleExpandChanged(false, mRow.getEntry().getKey());
         assertFalse(mBubbleController.isStackExpanded());
         assertFalse(mNotificationShadeWindowController.getBubbleExpanded());
+
+        assertFalse(mSysUiStateBubblesExpanded);
     }
 
     @Test
@@ -395,6 +437,8 @@
         assertTrue(mBubbleController.isStackExpanded());
         verify(mBubbleExpandListener).onBubbleExpandChanged(true, mRow2.getEntry().getKey());
 
+        assertTrue(mSysUiStateBubblesExpanded);
+
         // Last added is the one that is expanded
         assertEquals(mRow2.getEntry(), mBubbleData.getSelectedBubble().getEntry());
         assertTrue(mBubbleController.isBubbleNotificationSuppressedFromShade(
@@ -416,6 +460,8 @@
         // Collapse
         mBubbleController.collapseStack();
         assertFalse(mBubbleController.isStackExpanded());
+
+        assertFalse(mSysUiStateBubblesExpanded);
     }
 
     @Test
@@ -437,6 +483,8 @@
         assertTrue(mBubbleController.isStackExpanded());
         verify(mBubbleExpandListener).onBubbleExpandChanged(true, mRow.getEntry().getKey());
 
+        assertTrue(mSysUiStateBubblesExpanded);
+
         // Notif is suppressed after expansion
         assertTrue(mBubbleController.isBubbleNotificationSuppressedFromShade(
                 mRow.getEntry()));
@@ -463,6 +511,8 @@
         assertTrue(mBubbleController.isStackExpanded());
         verify(mBubbleExpandListener).onBubbleExpandChanged(true, mRow.getEntry().getKey());
 
+        assertTrue(mSysUiStateBubblesExpanded);
+
         // Notif is suppressed after expansion
         assertTrue(mBubbleController.isBubbleNotificationSuppressedFromShade(
                 mRow.getEntry()));
@@ -493,6 +543,8 @@
         BubbleStackView stackView = mBubbleController.getStackView();
         mBubbleController.expandStack();
 
+        assertTrue(mSysUiStateBubblesExpanded);
+
         assertTrue(mBubbleController.isStackExpanded());
         verify(mBubbleExpandListener).onBubbleExpandChanged(true, mRow2.getEntry().getKey());
 
@@ -522,6 +574,8 @@
         verify(mBubbleExpandListener).onBubbleExpandChanged(false, mRow.getEntry().getKey());
         verify(mBubbleStateChangeListener).onHasBubblesChanged(false);
         assertFalse(mBubbleController.hasBubbles());
+
+        assertFalse(mSysUiStateBubblesExpanded);
     }
 
     @Test
@@ -541,6 +595,8 @@
 
         // # of bubbles should change
         verify(mBubbleStateChangeListener).onHasBubblesChanged(true /* hasBubbles */);
+
+        assertFalse(mSysUiStateBubblesExpanded);
     }
 
     @Test
@@ -559,6 +615,8 @@
 
         // # of bubbles should change
         verify(mBubbleStateChangeListener).onHasBubblesChanged(true /* hasBubbles */);
+
+        assertTrue(mSysUiStateBubblesExpanded);
     }
 
     @Test
@@ -579,6 +637,8 @@
 
         // # of bubbles should change
         verify(mBubbleStateChangeListener).onHasBubblesChanged(true /* hasBubbles */);
+
+        assertFalse(mSysUiStateBubblesExpanded);
     }
 
     @Test
@@ -605,6 +665,8 @@
 
         // # of bubbles should change
         verify(mBubbleStateChangeListener).onHasBubblesChanged(true /* hasBubbles */);
+
+        assertFalse(mSysUiStateBubblesExpanded);
     }
 
     @Test
@@ -619,6 +681,8 @@
                 mRow.getEntry().getKey(), mRow.getEntry(), REASON_APP_CANCEL);
 
         mBubbleController.expandStackAndSelectBubble(key);
+
+        assertTrue(mSysUiStateBubblesExpanded);
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java
index 866dfdc..c86b5f7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java
@@ -966,8 +966,8 @@
     private NotificationEntry createBubbleEntry(int userId, String notifKey, String packageName,
             long postTime) {
         // BubbleMetadata
-        Notification.BubbleMetadata bubbleMetadata = new Notification.BubbleMetadata.Builder()
-                .createIntentBubble(mExpandIntent, Icon.createWithResource("", 0))
+        Notification.BubbleMetadata bubbleMetadata = new Notification.BubbleMetadata.Builder(
+                mExpandIntent, Icon.createWithResource("", 0))
                 .setDeleteIntent(mDeleteIntent)
                 .build();
         // Notification -> BubbleMetadata
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleTest.java b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleTest.java
index 7f67657..72f816f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleTest.java
@@ -74,8 +74,8 @@
         mBubble = new Bubble(mEntry, mSuppressionListener);
 
         Intent target = new Intent(mContext, BubblesTestActivity.class);
-        Notification.BubbleMetadata metadata = new Notification.BubbleMetadata.Builder()
-                .createIntentBubble(PendingIntent.getActivity(mContext, 0, target, 0),
+        Notification.BubbleMetadata metadata = new Notification.BubbleMetadata.Builder(
+                PendingIntent.getActivity(mContext, 0, target, 0),
                         Icon.createWithResource(mContext, R.drawable.android))
                 .build();
         mEntry.setBubbleMetadata(metadata);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/NewNotifPipelineBubbleControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/bubbles/NewNotifPipelineBubbleControllerTest.java
index 6244644..a31e3f8d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bubbles/NewNotifPipelineBubbleControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/NewNotifPipelineBubbleControllerTest.java
@@ -58,6 +58,7 @@
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.colorextraction.SysuiColorExtractor;
 import com.android.systemui.dump.DumpManager;
+import com.android.systemui.model.SysUiState;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.statusbar.FeatureFlags;
 import com.android.systemui.statusbar.NotificationLockscreenUserManager;
@@ -132,6 +133,9 @@
     private KeyguardBypassController mKeyguardBypassController;
     @Mock
     private FloatingContentCoordinator mFloatingContentCoordinator;
+
+    private SysUiState mSysUiState = new SysUiState();
+
     @Captor
     private ArgumentCaptor<NotifCollectionListener> mNotifListenerCaptor;
     private TestableBubbleController mBubbleController;
@@ -242,7 +246,8 @@
                 mNotifPipeline,
                 mFeatureFlagsNewPipeline,
                 mDumpManager,
-                mFloatingContentCoordinator);
+                mFloatingContentCoordinator,
+                mSysUiState);
         mBubbleController.addNotifCallback(mNotifCallback);
         mBubbleController.setBubbleStateChangeListener(mBubbleStateChangeListener);
         mBubbleController.setExpandListener(mBubbleExpandListener);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/TestableBubbleController.java b/packages/SystemUI/tests/src/com/android/systemui/bubbles/TestableBubbleController.java
index d3d90c4..f486102 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bubbles/TestableBubbleController.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/TestableBubbleController.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 
 import com.android.systemui.dump.DumpManager;
+import com.android.systemui.model.SysUiState;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.statusbar.FeatureFlags;
 import com.android.systemui.statusbar.NotificationLockscreenUserManager;
@@ -52,12 +53,13 @@
             NotifPipeline notifPipeline,
             FeatureFlags featureFlags,
             DumpManager dumpManager,
-            FloatingContentCoordinator floatingContentCoordinator) {
+            FloatingContentCoordinator floatingContentCoordinator,
+            SysUiState sysUiState) {
         super(context,
                 notificationShadeWindowController, statusBarStateController, shadeController,
                 data, Runnable::run, configurationController, interruptionStateProvider,
                 zenModeController, lockscreenUserManager, groupManager, entryManager,
-                notifPipeline, featureFlags, dumpManager, floatingContentCoordinator);
+                notifPipeline, featureFlags, dumpManager, floatingContentCoordinator, sysUiState);
         setInflateSynchronously(true);
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt
index c25d4e2..88316f2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt
@@ -207,6 +207,56 @@
     }
 
     @Test
+    fun testBindAndLoadSuggested() {
+        val callback = object : ControlsBindingController.LoadCallback {
+            override fun error(message: String) {}
+
+            override fun accept(t: List<Control>) {}
+        }
+        controller.bindAndLoadSuggested(TEST_COMPONENT_NAME_1, callback)
+
+        verify(providers[0]).maybeBindAndLoadSuggested(any())
+    }
+
+    @Test
+    fun testLoadSuggested_onCompleteRemovesTimeout() {
+        val callback = object : ControlsBindingController.LoadCallback {
+            override fun error(message: String) {}
+
+            override fun accept(t: List<Control>) {}
+        }
+        val subscription = mock(IControlsSubscription::class.java)
+
+        controller.bindAndLoadSuggested(TEST_COMPONENT_NAME_1, callback)
+
+        verify(providers[0]).maybeBindAndLoadSuggested(capture(subscriberCaptor))
+        val b = Binder()
+        subscriberCaptor.value.onSubscribe(b, subscription)
+
+        subscriberCaptor.value.onComplete(b)
+        verify(providers[0]).cancelLoadTimeout()
+    }
+
+    @Test
+    fun testLoadSuggested_onErrorRemovesTimeout() {
+        val callback = object : ControlsBindingController.LoadCallback {
+            override fun error(message: String) {}
+
+            override fun accept(t: List<Control>) {}
+        }
+        val subscription = mock(IControlsSubscription::class.java)
+
+        controller.bindAndLoadSuggested(TEST_COMPONENT_NAME_1, callback)
+
+        verify(providers[0]).maybeBindAndLoadSuggested(capture(subscriberCaptor))
+        val b = Binder()
+        subscriberCaptor.value.onSubscribe(b, subscription)
+
+        subscriberCaptor.value.onError(b, "")
+        verify(providers[0]).cancelLoadTimeout()
+    }
+
+    @Test
     fun testBindService() {
         controller.bindService(TEST_COMPONENT_NAME_1)
         executor.runAllReady()
@@ -216,8 +266,8 @@
 
     @Test
     fun testSubscribe() {
-        val controlInfo1 = ControlInfo("id_1", "", DeviceTypes.TYPE_UNKNOWN)
-        val controlInfo2 = ControlInfo("id_2", "", DeviceTypes.TYPE_UNKNOWN)
+        val controlInfo1 = ControlInfo("id_1", "", "", DeviceTypes.TYPE_UNKNOWN)
+        val controlInfo2 = ControlInfo("id_2", "", "", DeviceTypes.TYPE_UNKNOWN)
         val structure =
             StructureInfo(TEST_COMPONENT_NAME_1, "Home", listOf(controlInfo1, controlInfo2))
 
@@ -246,8 +296,8 @@
 
     @Test
     fun testUnsubscribe_refreshing() {
-        val controlInfo1 = ControlInfo("id_1", "", DeviceTypes.TYPE_UNKNOWN)
-        val controlInfo2 = ControlInfo("id_2", "", DeviceTypes.TYPE_UNKNOWN)
+        val controlInfo1 = ControlInfo("id_1", "", "", DeviceTypes.TYPE_UNKNOWN)
+        val controlInfo2 = ControlInfo("id_2", "", "", DeviceTypes.TYPE_UNKNOWN)
         val structure =
             StructureInfo(TEST_COMPONENT_NAME_1, "Home", listOf(controlInfo1, controlInfo2))
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt
index f9c9815..93aee33 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt
@@ -80,6 +80,10 @@
 
     @Captor
     private lateinit var structureInfoCaptor: ArgumentCaptor<StructureInfo>
+
+    @Captor
+    private lateinit var booleanConsumer: ArgumentCaptor<Consumer<Boolean>>
+
     @Captor
     private lateinit var controlLoadCallbackCaptor:
             ArgumentCaptor<ControlsBindingController.LoadCallback>
@@ -100,20 +104,22 @@
         private val TEST_COMPONENT = ComponentName("test.pkg", "test.class")
         private const val TEST_CONTROL_ID = "control1"
         private const val TEST_CONTROL_TITLE = "Test"
+        private const val TEST_CONTROL_SUBTITLE = "TestSub"
         private const val TEST_DEVICE_TYPE = DeviceTypes.TYPE_AC_HEATER
         private const val TEST_STRUCTURE = ""
         private val TEST_CONTROL_INFO = ControlInfo(TEST_CONTROL_ID,
-                TEST_CONTROL_TITLE, TEST_DEVICE_TYPE)
+                TEST_CONTROL_TITLE, TEST_CONTROL_SUBTITLE, TEST_DEVICE_TYPE)
         private val TEST_STRUCTURE_INFO = StructureInfo(TEST_COMPONENT,
                 TEST_STRUCTURE, listOf(TEST_CONTROL_INFO))
 
         private val TEST_COMPONENT_2 = ComponentName("test.pkg", "test.class.2")
         private const val TEST_CONTROL_ID_2 = "control2"
         private const val TEST_CONTROL_TITLE_2 = "Test 2"
+        private const val TEST_CONTROL_SUBTITLE_2 = "TestSub 2"
         private const val TEST_DEVICE_TYPE_2 = DeviceTypes.TYPE_CAMERA
         private const val TEST_STRUCTURE_2 = "My House"
         private val TEST_CONTROL_INFO_2 = ControlInfo(TEST_CONTROL_ID_2,
-                TEST_CONTROL_TITLE_2, TEST_DEVICE_TYPE_2)
+                TEST_CONTROL_TITLE_2, TEST_CONTROL_SUBTITLE_2, TEST_DEVICE_TYPE_2)
         private val TEST_STRUCTURE_INFO_2 = StructureInfo(TEST_COMPONENT_2,
                 TEST_STRUCTURE_2, listOf(TEST_CONTROL_INFO_2))
     }
@@ -155,9 +161,22 @@
         verify(listingController).addCallback(capture(listingCallbackCaptor))
     }
 
-    private fun builderFromInfo(controlInfo: ControlInfo): Control.StatelessBuilder {
+    private fun statelessBuilderFromInfo(
+        controlInfo: ControlInfo,
+        structure: CharSequence = ""
+    ): Control.StatelessBuilder {
         return Control.StatelessBuilder(controlInfo.controlId, pendingIntent)
                 .setDeviceType(controlInfo.deviceType).setTitle(controlInfo.controlTitle)
+                .setSubtitle(controlInfo.controlSubtitle).setStructure(structure)
+    }
+
+    private fun statefulBuilderFromInfo(
+        controlInfo: ControlInfo,
+        structure: CharSequence = ""
+    ): Control.StatefulBuilder {
+        return Control.StatefulBuilder(controlInfo.controlId, pendingIntent)
+                .setDeviceType(controlInfo.deviceType).setTitle(controlInfo.controlTitle)
+                .setSubtitle(controlInfo.controlSubtitle).setStructure(structure)
     }
 
     @Test
@@ -226,7 +245,7 @@
     @Test
     fun testLoadForComponent_noFavorites() {
         var loaded = false
-        val control = builderFromInfo(TEST_CONTROL_INFO).build()
+        val control = statelessBuilderFromInfo(TEST_CONTROL_INFO).build()
 
         controller.loadForComponent(TEST_COMPONENT, Consumer { data ->
             val controls = data.allControls
@@ -253,8 +272,8 @@
     @Test
     fun testLoadForComponent_favorites() {
         var loaded = false
-        val control = builderFromInfo(TEST_CONTROL_INFO).build()
-        val control2 = builderFromInfo(TEST_CONTROL_INFO_2).build()
+        val control = statelessBuilderFromInfo(TEST_CONTROL_INFO).build()
+        val control2 = statelessBuilderFromInfo(TEST_CONTROL_INFO_2).build()
         controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
         controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO_2)
         delayableExecutor.runAllReady()
@@ -297,6 +316,7 @@
             assertEquals(1, controls.size)
             val controlStatus = controls[0]
             assertEquals(TEST_CONTROL_ID, controlStatus.control.controlId)
+            assertEquals(TEST_STRUCTURE_INFO.structure, controlStatus.control.structure)
             assertTrue(controlStatus.favorite)
             assertTrue(controlStatus.removed)
 
@@ -327,6 +347,7 @@
             assertEquals(1, controls.size)
             val controlStatus = controls[0]
             assertEquals(TEST_CONTROL_ID, controlStatus.control.controlId)
+            assertEquals(TEST_STRUCTURE_INFO.structure, controlStatus.control.structure)
             assertTrue(controlStatus.favorite)
             assertFalse(controlStatus.removed)
 
@@ -433,7 +454,7 @@
         delayableExecutor.runAllReady()
 
         val newControlInfo = TEST_CONTROL_INFO.copy(controlTitle = TEST_CONTROL_TITLE_2)
-        val control = builderFromInfo(newControlInfo).build()
+        val control = statelessBuilderFromInfo(newControlInfo).build()
 
         controller.loadForComponent(TEST_COMPONENT, Consumer {})
 
@@ -449,11 +470,11 @@
     }
 
     @Test
-    fun testFavoriteInformationModifiedOnRefresh() {
+    fun testFavoriteInformationModifiedOnRefreshWithOkStatus() {
         controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
 
         val newControlInfo = TEST_CONTROL_INFO.copy(controlTitle = TEST_CONTROL_TITLE_2)
-        val control = builderFromInfo(newControlInfo).build()
+        val control = statefulBuilderFromInfo(newControlInfo).setStatus(Control.STATUS_OK).build()
 
         controller.refreshStatus(TEST_COMPONENT, control)
 
@@ -465,6 +486,23 @@
     }
 
     @Test
+    fun testFavoriteInformationNotModifiedOnRefreshWithNonOkStatus() {
+        controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
+
+        val newControlInfo = TEST_CONTROL_INFO.copy(controlTitle = TEST_CONTROL_TITLE_2)
+        val control = statefulBuilderFromInfo(newControlInfo).setStatus(Control.STATUS_ERROR)
+            .build()
+
+        controller.refreshStatus(TEST_COMPONENT, control)
+
+        delayableExecutor.runAllReady()
+
+        val favorites = controller.getFavorites().flatMap { it.controls }
+        assertEquals(1, favorites.size)
+        assertEquals(TEST_CONTROL_INFO, favorites[0])
+    }
+
+    @Test
     fun testSwitchUsers() {
         controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
         delayableExecutor.runAllReady()
@@ -577,7 +615,7 @@
 
     @Test
     fun testGetFavoritesForComponent_multipleInOrder() {
-        val controlInfo = ControlInfo("id", "title", 0)
+        val controlInfo = ControlInfo("id", "title", "subtitle", 0)
 
         controller.replaceFavoritesForStructure(
             StructureInfo(
@@ -635,7 +673,7 @@
 
     @Test
     fun testReplaceFavoritesForStructure_oldFavoritesRemoved() {
-        val controlInfo = ControlInfo("id", "title", 0)
+        val controlInfo = ControlInfo("id", "title", "subtitle", 0)
         assertNotEquals(TEST_CONTROL_INFO, controlInfo)
 
         val newComponent = ComponentName("test.pkg", "test.class.3")
@@ -661,7 +699,7 @@
 
     @Test
     fun testReplaceFavoritesForStructure_favoritesInOrder() {
-        val controlInfo = ControlInfo("id", "title", 0)
+        val controlInfo = ControlInfo("id", "title", "subtitle", 0)
 
         val listOrder1 = listOf(TEST_CONTROL_INFO, controlInfo)
         val structure1 = StructureInfo(TEST_COMPONENT, "Home", listOrder1)
@@ -746,4 +784,72 @@
         inOrder.verify(persistenceWrapper).readFavorites()
         inOrder.verify(listingController).addCallback(listingCallbackCaptor.value)
     }
+
+    @Test
+    fun testSeedFavoritesForComponent() {
+        var succeeded = false
+        val control = statelessBuilderFromInfo(TEST_CONTROL_INFO, TEST_STRUCTURE_INFO.structure)
+            .build()
+
+        controller.seedFavoritesForComponent(TEST_COMPONENT, Consumer { accepted ->
+            succeeded = accepted
+        })
+
+        verify(bindingController).bindAndLoadSuggested(eq(TEST_COMPONENT),
+                capture(controlLoadCallbackCaptor))
+
+        controlLoadCallbackCaptor.value.accept(listOf(control))
+
+        delayableExecutor.runAllReady()
+
+        assertEquals(listOf(TEST_STRUCTURE_INFO),
+            controller.getFavoritesForComponent(TEST_COMPONENT))
+        assertTrue(succeeded)
+    }
+
+    @Test
+    fun testSeedFavoritesForComponent_error() {
+        var succeeded = false
+
+        controller.seedFavoritesForComponent(TEST_COMPONENT, Consumer { accepted ->
+            succeeded = accepted
+        })
+
+        verify(bindingController).bindAndLoadSuggested(eq(TEST_COMPONENT),
+                capture(controlLoadCallbackCaptor))
+
+        controlLoadCallbackCaptor.value.error("Error loading")
+
+        delayableExecutor.runAllReady()
+
+        assertEquals(listOf<StructureInfo>(), controller.getFavoritesForComponent(TEST_COMPONENT))
+        assertFalse(succeeded)
+    }
+
+    @Test
+    fun testSeedFavoritesForComponent_inProgressCallback() {
+        var succeeded = false
+        var seeded = false
+        val control = statelessBuilderFromInfo(TEST_CONTROL_INFO, TEST_STRUCTURE_INFO.structure)
+            .build()
+
+        controller.seedFavoritesForComponent(TEST_COMPONENT, Consumer { accepted ->
+            succeeded = accepted
+        })
+
+        verify(bindingController).bindAndLoadSuggested(eq(TEST_COMPONENT),
+                capture(controlLoadCallbackCaptor))
+
+        controller.addSeedingFavoritesCallback(Consumer { accepted ->
+            seeded = accepted
+        })
+        controlLoadCallbackCaptor.value.accept(listOf(control))
+
+        delayableExecutor.runAllReady()
+
+        assertEquals(listOf(TEST_STRUCTURE_INFO),
+            controller.getFavoritesForComponent(TEST_COMPONENT))
+        assertTrue(succeeded)
+        assertTrue(seeded)
+    }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapperTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapperTest.kt
index a47edf0..4f6cbe1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapperTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapperTest.kt
@@ -59,7 +59,7 @@
             ComponentName.unflattenFromString("TEST_PKG/.TEST_CLS_1")!!,
             "",
             listOf(
-                ControlInfo("id1", "name_1", DeviceTypes.TYPE_UNKNOWN)
+                ControlInfo("id1", "name_1", "", DeviceTypes.TYPE_UNKNOWN)
             )
         )
 
@@ -67,8 +67,8 @@
             ComponentName.unflattenFromString("TEST_PKG/.TEST_CLS_2")!!,
             "structure1",
             listOf(
-                ControlInfo("id2", "name_2", DeviceTypes.TYPE_GENERIC_ON_OFF),
-                ControlInfo("id3", "name_3", DeviceTypes.TYPE_GENERIC_ON_OFF)
+                ControlInfo("id2", "name_2", "sub2", DeviceTypes.TYPE_GENERIC_ON_OFF),
+                ControlInfo("id3", "name_3", "sub3", DeviceTypes.TYPE_GENERIC_ON_OFF)
             )
         )
         val list = listOf(structureInfo1, structureInfo2)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ServiceWrapperTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ServiceWrapperTest.kt
index cd82844..789d6df 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ServiceWrapperTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ServiceWrapperTest.kt
@@ -92,6 +92,22 @@
     }
 
     @Test
+    fun testLoadSuggested_happyPath() {
+        val result = wrapper.loadSuggested(subscriber)
+
+        assertTrue(result)
+        verify(service).loadSuggested(subscriber)
+    }
+
+    @Test
+    fun testLoadSuggested_error() {
+        `when`(service.loadSuggested(any())).thenThrow(exception)
+        val result = wrapper.loadSuggested(subscriber)
+
+        assertFalse(result)
+    }
+
+    @Test
     fun testSubscribe_happyPath() {
         val list = listOf("TEST_ID")
         val result = wrapper.subscribe(list, subscriber)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/StatefulControlSubscriberTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/StatefulControlSubscriberTest.kt
index ff5c8d4..267520e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/StatefulControlSubscriberTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/StatefulControlSubscriberTest.kt
@@ -59,13 +59,15 @@
 
     private lateinit var scs: StatefulControlSubscriber
 
+    private val REQUEST_LIMIT = 5L
+
     @Before
     fun setUp() {
         MockitoAnnotations.initMocks(this)
 
         `when`(provider.componentName).thenReturn(TEST_COMPONENT)
         `when`(provider.token).thenReturn(token)
-        scs = StatefulControlSubscriber(controller, provider, executor)
+        scs = StatefulControlSubscriber(controller, provider, executor, REQUEST_LIMIT)
     }
 
     @Test
@@ -73,7 +75,7 @@
         scs.onSubscribe(token, subscription)
 
         executor.runAllReady()
-        verify(provider).startSubscription(subscription)
+        verify(provider).startSubscription(subscription, REQUEST_LIMIT)
     }
 
     @Test
@@ -81,7 +83,7 @@
         scs.onSubscribe(badToken, subscription)
 
         executor.runAllReady()
-        verify(provider, never()).startSubscription(subscription)
+        verify(provider, never()).startSubscription(subscription, REQUEST_LIMIT)
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/management/AllModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/management/AllModelTest.kt
index 133df2a..5e0d28f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/management/AllModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/management/AllModelTest.kt
@@ -25,6 +25,7 @@
 import com.android.systemui.controls.ControlStatus
 import com.android.systemui.controls.controller.ControlInfo
 import org.junit.Assert.assertEquals
+import org.junit.Assert.assertFalse
 import org.junit.Assert.assertTrue
 import org.junit.Before
 import org.junit.Test
@@ -116,6 +117,7 @@
     private fun sameControl(controlInfo: ControlInfo.Builder, control: Control): Boolean {
         return controlInfo.controlId == control.controlId &&
                 controlInfo.controlTitle == control.title &&
+                controlInfo.controlSubtitle == control.subtitle &&
                 controlInfo.deviceType == control.deviceType
     }
 
@@ -155,12 +157,26 @@
     }
 
     @Test
+    fun testAddFavorite_changesModelFlag() {
+        val indexToAdd = 6
+        val id = "$idPrefix$indexToAdd"
+        model.changeFavoriteStatus(id, true)
+        assertTrue(
+                (model.elements.first {
+                    it is ControlWrapper && it.controlStatus.control.controlId == id
+                } as ControlWrapper)
+                        .controlStatus.favorite
+        )
+    }
+
+    @Test
     fun testAddFavorite_alreadyThere() {
         val indexToAdd = 7
         model.changeFavoriteStatus("$idPrefix$indexToAdd", true)
 
         val expectedFavorites = favoritesIndices.map(controls::get).map(ControlStatus::control)
 
+        assertEquals(expectedFavorites.size, model.favorites.size)
         model.favorites.zip(expectedFavorites).forEach {
             assertTrue(sameControl(it.first, it.second))
         }
@@ -181,6 +197,19 @@
     }
 
     @Test
+    fun testRemoveFavorite_changesModelFlag() {
+        val indexToRemove = 3
+        val id = "$idPrefix$indexToRemove"
+        model.changeFavoriteStatus(id, false)
+        assertFalse(
+                (model.elements.first {
+                    it is ControlWrapper && it.controlStatus.control.controlId == id
+                } as ControlWrapper)
+                        .controlStatus.favorite
+        )
+    }
+
+    @Test
     fun testRemoveFavorite_notThere() {
         val indexToRemove = 4
         model.changeFavoriteStatus("$idPrefix$indexToRemove", false)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStateTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStateTest.java
index e8a3c0e..41d7fd6 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStateTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStateTest.java
@@ -217,4 +217,20 @@
         assertEquals(Display.STATE_OFF, mServiceFake.screenState);
     }
 
+    @Test
+    public void test_animatesOff() {
+        ArgumentCaptor<Runnable> captor = ArgumentCaptor.forClass(Runnable.class);
+        doAnswer(invocation -> null).when(mDozeHost).prepareForGentleSleep(captor.capture());
+        mHandlerFake.setMode(QUEUEING);
+
+        mScreen.transitionTo(UNINITIALIZED, INITIALIZED);
+        mScreen.transitionTo(INITIALIZED, DOZE_AOD);
+        mScreen.transitionTo(DOZE_AOD, DOZE);
+
+        mHandlerFake.dispatchQueuedMessages();
+        verify(mDozeHost).prepareForGentleSleep(eq(captor.getValue()));
+        captor.getValue().run();
+        assertEquals(Display.STATE_OFF, mServiceFake.screenState);
+    }
+
 }
\ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/pip/PipAnimationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/pip/PipAnimationControllerTest.java
index b863f14..0d66340 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/pip/PipAnimationControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/pip/PipAnimationControllerTest.java
@@ -24,6 +24,7 @@
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.verify;
 
+import android.graphics.Matrix;
 import android.graphics.Rect;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper;
@@ -179,6 +180,12 @@
         }
 
         @Override
+        public SurfaceControl.Transaction setMatrix(SurfaceControl leash, Matrix matrix,
+                float[] float9) {
+            return this;
+        }
+
+        @Override
         public void apply() {}
     }
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
index fb40177..be5b190 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
@@ -192,8 +192,7 @@
 
         assertThat(mTextView.getText()).isEqualTo(
                 mContext.getResources().getString(R.string.dock_alignment_slow_charging));
-        assertThat(mTextView.getCurrentTextColor()).isEqualTo(
-                Utils.getColorError(mContext).getDefaultColor());
+        assertThat(mTextView.getCurrentTextColor()).isEqualTo(Color.WHITE);
     }
 
     @Test
@@ -210,8 +209,7 @@
 
         assertThat(mTextView.getText()).isEqualTo(
                 mContext.getResources().getString(R.string.dock_alignment_not_charging));
-        assertThat(mTextView.getCurrentTextColor()).isEqualTo(
-                Utils.getColorError(mContext).getDefaultColor());
+        assertThat(mTextView.getCurrentTextColor()).isEqualTo(Color.WHITE);
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationShadeDepthControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationShadeDepthControllerTest.kt
index f061f34..f4583f9 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationShadeDepthControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationShadeDepthControllerTest.kt
@@ -22,7 +22,6 @@
 import android.view.Choreographer
 import android.view.View
 import android.view.ViewRootImpl
-import androidx.dynamicanimation.animation.SpringAnimation
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.dump.DumpManager
@@ -35,10 +34,14 @@
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.ArgumentCaptor
-import org.mockito.ArgumentMatchers.any
 import org.mockito.ArgumentMatchers.eq
 import org.mockito.Mock
-import org.mockito.Mockito.*
+import org.mockito.Mockito.`when`
+import org.mockito.Mockito.any
+import org.mockito.Mockito.anyFloat
+import org.mockito.Mockito.anyString
+import org.mockito.Mockito.clearInvocations
+import org.mockito.Mockito.verify
 import org.mockito.junit.MockitoJUnit
 
 @RunWith(AndroidTestingRunner::class)
@@ -56,7 +59,8 @@
     @Mock private lateinit var dumpManager: DumpManager
     @Mock private lateinit var root: View
     @Mock private lateinit var viewRootImpl: ViewRootImpl
-    @Mock private lateinit var shadeSpring: SpringAnimation
+    @Mock private lateinit var shadeSpring: NotificationShadeDepthController.DepthAnimation
+    @Mock private lateinit var globalActionsSpring: NotificationShadeDepthController.DepthAnimation
     @JvmField @Rule val mockitoRule = MockitoJUnit.rule()
 
     private lateinit var statusBarStateListener: StatusBarStateController.StateListener
@@ -76,6 +80,7 @@
                 keyguardStateController, choreographer, wallpaperManager,
                 notificationShadeWindowController, dumpManager)
         notificationShadeDepthController.shadeSpring = shadeSpring
+        notificationShadeDepthController.globalActionsSpring = globalActionsSpring
         notificationShadeDepthController.root = root
 
         val captor = ArgumentCaptor.forClass(StatusBarStateController.StateListener::class.java)
@@ -92,7 +97,7 @@
     fun onPanelExpansionChanged_apliesBlur_ifShade() {
         notificationShadeDepthController.onPanelExpansionChanged(1f /* expansion */,
                 false /* tracking */)
-        verify(shadeSpring).animateToFinalPosition(eq(maxBlur.toFloat()))
+        verify(shadeSpring).animateTo(eq(maxBlur), any())
     }
 
     @Test
@@ -102,13 +107,13 @@
 
         statusBarState = StatusBarState.KEYGUARD
         statusBarStateListener.onStateChanged(statusBarState)
-        verify(shadeSpring).animateToFinalPosition(eq(0f))
+        verify(shadeSpring).animateTo(eq(0), any())
     }
 
     @Test
-    fun updateGlobalDialogVisibility_schedulesUpdate() {
+    fun updateGlobalDialogVisibility_appliesBlur() {
         notificationShadeDepthController.updateGlobalDialogVisibility(0.5f, root)
-        verify(choreographer).postFrameCallback(any())
+        verify(globalActionsSpring).animateTo(eq(maxBlur / 2), safeEq(root))
     }
 
     private fun <T : Any> safeEq(value: T): T {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManagerTest.kt
index 6388fe1..b501a2e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManagerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationSectionsFeatureManagerTest.kt
@@ -27,6 +27,7 @@
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.util.DeviceConfigProxyFake
 
+import org.junit.After
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertTrue
 import org.junit.Before
@@ -38,6 +39,7 @@
 class NotificationSectionsFeatureManagerTest : SysuiTestCase() {
     var manager: NotificationSectionsFeatureManager? = null
     val proxyFake = DeviceConfigProxyFake()
+    var originalQsMediaPlayer: Int = 0
 
     @Before
     public fun setup() {
@@ -45,6 +47,15 @@
         NOTIFICATION_NEW_INTERRUPTION_MODEL, 1)
         manager = NotificationSectionsFeatureManager(proxyFake, mContext)
         manager!!.clearCache()
+        originalQsMediaPlayer = Settings.System.getInt(context.getContentResolver(),
+                "qs_media_player", 1)
+        Settings.System.putInt(context.getContentResolver(), "qs_media_player", 0)
+    }
+
+    @After
+    public fun teardown() {
+        Settings.System.putInt(context.getContentResolver(), "qs_media_player",
+                originalQsMediaPlayer)
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java
index 261dc82..f4fbd7b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java
@@ -48,7 +48,7 @@
 
     /* ListEntry properties */
     private GroupEntry mParent;
-    private int mSection;
+    private int mSection = -1;
 
     public NotificationEntry build() {
         StatusBarNotification sbn = mSbn != null ? mSbn : mSbnBuilder.build();
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt
index cdf0f2d..a2599ec 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt
@@ -42,7 +42,6 @@
 import dagger.Lazy
 import junit.framework.Assert.assertEquals
 import org.junit.Before
-import org.junit.Ignore
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.Mockito.mock
@@ -194,7 +193,6 @@
         assertEquals(listOf(b, a), rankingManager.updateRanking(null, listOf(a, b), "test"))
     }
 
-    @Ignore // TODO: (b/149046729) fix test and re-enable
     @Test
     fun testSort_importantPeople() {
         whenever(sectionsManager.isFilteringEnabled()).thenReturn(true)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/HideNotifsForOtherUsersCoordinatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/HideNotifsForOtherUsersCoordinatorTest.java
new file mode 100644
index 0000000..87fc020
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/HideNotifsForOtherUsersCoordinatorTest.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.collection.coordinator;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.testing.AndroidTestingRunner;
+import android.util.SparseArray;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.statusbar.NotificationLockscreenUserManager;
+import com.android.systemui.statusbar.NotificationLockscreenUserManager.UserChangedListener;
+import com.android.systemui.statusbar.notification.collection.NotifPipeline;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
+import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
+import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.Pluggable.PluggableListener;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@SmallTest
+@RunWith(AndroidTestingRunner.class)
+public class HideNotifsForOtherUsersCoordinatorTest extends SysuiTestCase {
+
+    @Mock private NotificationLockscreenUserManager mLockscreenUserManager;
+    @Mock private NotifPipeline mNotifPipeline;
+    @Mock private PluggableListener<NotifFilter> mInvalidationListener;
+
+    @Captor private ArgumentCaptor<UserChangedListener> mUserChangedListenerCaptor;
+    @Captor private ArgumentCaptor<NotifFilter> mNotifFilterCaptor;
+
+    private UserChangedListener mCapturedUserChangeListener;
+    private NotifFilter mCapturedNotifFilter;
+
+    private NotificationEntry mEntry = new NotificationEntryBuilder().build();
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        HideNotifsForOtherUsersCoordinator coordinator =
+                new HideNotifsForOtherUsersCoordinator(mLockscreenUserManager);
+        coordinator.attach(mNotifPipeline);
+
+        verify(mLockscreenUserManager).addUserChangedListener(mUserChangedListenerCaptor.capture());
+        verify(mNotifPipeline).addPreGroupFilter(mNotifFilterCaptor.capture());
+
+        mCapturedUserChangeListener = mUserChangedListenerCaptor.getValue();
+        mCapturedNotifFilter = mNotifFilterCaptor.getValue();
+
+        mCapturedNotifFilter.setInvalidationListener(mInvalidationListener);
+    }
+
+    @Test
+    public void testFilterOutNotifsFromOtherProfiles() {
+        // GIVEN that all notifs are NOT for the current user
+        when(mLockscreenUserManager.isCurrentProfile(anyInt())).thenReturn(false);
+
+        // THEN they should all be filtered out
+        assertTrue(mCapturedNotifFilter.shouldFilterOut(mEntry, 0));
+    }
+
+    @Test
+    public void testPreserveNotifsFromThisProfile() {
+        // GIVEN that all notifs ARE for the current user
+        when(mLockscreenUserManager.isCurrentProfile(anyInt())).thenReturn(true);
+
+        // THEN none should be filtered out
+        assertFalse(mCapturedNotifFilter.shouldFilterOut(mEntry, 0));
+    }
+
+    @Test
+    public void testFilterIsInvalidatedWhenProfilesChange() {
+        // WHEN the current user profiles change
+        mCapturedUserChangeListener.onCurrentProfilesChanged(new SparseArray<>());
+
+        // THEN the filter is invalidated
+        verify(mInvalidationListener).onPluggableInvalidated(mCapturedNotifFilter);
+    }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinatorTest.java
index c4f3a16..4f48108 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinatorTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinatorTest.java
@@ -102,16 +102,6 @@
     }
 
     @Test
-    public void notificationNotForCurrentProfile() {
-        // GIVEN the notification isn't for the given user
-        setupUnfilteredState(mEntry);
-        when(mLockscreenUserManager.isCurrentProfile(NOTIF_USER_ID)).thenReturn(false);
-
-        // THEN filter out the entry
-        assertTrue(mKeyguardFilter.shouldFilterOut(mEntry, 0));
-    }
-
-    @Test
     public void keyguardNotShowing() {
         // GIVEN the lockscreen isn't showing
         setupUnfilteredState(mEntry);
@@ -229,9 +219,6 @@
      * KeyguardNotificationCoordinator when the keyguard is showing.
      */
     private void setupUnfilteredState(NotificationEntry entry) {
-        // notification is for current profile
-        when(mLockscreenUserManager.isCurrentProfile(NOTIF_USER_ID)).thenReturn(true);
-
         // keyguard is showing
         when(mKeyguardStateController.isShowing()).thenReturn(true);
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinatorTest.java
index e84f9cf..85acbe6 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinatorTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/RankingCoordinatorTest.java
@@ -19,9 +19,8 @@
 import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_AMBIENT;
 import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_NOTIFICATION_LIST;
 
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.Assert.assertTrue;
-
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -42,6 +41,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
@@ -51,20 +51,23 @@
 
     @Mock private StatusBarStateController mStatusBarStateController;
     @Mock private NotifPipeline mNotifPipeline;
+
+    @Captor private ArgumentCaptor<NotifFilter> mNotifFilterCaptor;
+
     private NotificationEntry mEntry;
-    private RankingCoordinator mRankingCoordinator;
-    private NotifFilter mRankingFilter;
+    private NotifFilter mCapturedSuspendedFilter;
+    private NotifFilter mCapturedDozingFilter;
 
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        mRankingCoordinator = new RankingCoordinator(mStatusBarStateController);
+        RankingCoordinator rankingCoordinator = new RankingCoordinator(mStatusBarStateController);
         mEntry = new NotificationEntryBuilder().build();
 
-        ArgumentCaptor<NotifFilter> filterCaptor = ArgumentCaptor.forClass(NotifFilter.class);
-        mRankingCoordinator.attach(mNotifPipeline);
-        verify(mNotifPipeline, times(1)).addPreGroupFilter(filterCaptor.capture());
-        mRankingFilter = filterCaptor.getValue();
+        rankingCoordinator.attach(mNotifPipeline);
+        verify(mNotifPipeline, times(2)).addPreGroupFilter(mNotifFilterCaptor.capture());
+        mCapturedSuspendedFilter = mNotifFilterCaptor.getAllValues().get(0);
+        mCapturedDozingFilter = mNotifFilterCaptor.getAllValues().get(1);
     }
 
     @Test
@@ -73,7 +76,7 @@
         mEntry.setRanking(getRankingForUnfilteredNotif().build());
 
         // THEN don't filter out the notification
-        assertFalse(mRankingFilter.shouldFilterOut(mEntry, 0));
+        assertFalse(mCapturedSuspendedFilter.shouldFilterOut(mEntry, 0));
     }
 
     @Test
@@ -84,7 +87,7 @@
                 .build());
 
         // THEN filter out the notification
-        assertTrue(mRankingFilter.shouldFilterOut(mEntry, 0));
+        assertTrue(mCapturedSuspendedFilter.shouldFilterOut(mEntry, 0));
     }
 
     @Test
@@ -98,13 +101,13 @@
         when(mStatusBarStateController.isDozing()).thenReturn(true);
 
         // THEN filter out the notification
-        assertTrue(mRankingFilter.shouldFilterOut(mEntry, 0));
+        assertTrue(mCapturedDozingFilter.shouldFilterOut(mEntry, 0));
 
         // WHEN it's not dozing (showing the notification list)
         when(mStatusBarStateController.isDozing()).thenReturn(false);
 
         // THEN don't filter out the notification
-        assertFalse(mRankingFilter.shouldFilterOut(mEntry, 0));
+        assertFalse(mCapturedDozingFilter.shouldFilterOut(mEntry, 0));
     }
 
     @Test
@@ -118,13 +121,13 @@
         when(mStatusBarStateController.isDozing()).thenReturn(true);
 
         // THEN don't filter out the notification
-        assertFalse(mRankingFilter.shouldFilterOut(mEntry, 0));
+        assertFalse(mCapturedDozingFilter.shouldFilterOut(mEntry, 0));
 
         // WHEN it's not dozing (showing the notification list)
         when(mStatusBarStateController.isDozing()).thenReturn(false);
 
         // THEN filter out the notification
-        assertTrue(mRankingFilter.shouldFilterOut(mEntry, 0));
+        assertTrue(mCapturedDozingFilter.shouldFilterOut(mEntry, 0));
     }
 
     private RankingBuilder getRankingForUnfilteredNotif() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java
index f9c62e1..5cbfcc1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java
@@ -487,8 +487,8 @@
     }
 
     private NotificationEntry createBubble() {
-        Notification.BubbleMetadata data = new Notification.BubbleMetadata.Builder()
-                .createIntentBubble(PendingIntent.getActivity(mContext, 0, new Intent(), 0),
+        Notification.BubbleMetadata data = new Notification.BubbleMetadata.Builder(
+                PendingIntent.getActivity(mContext, 0, new Intent(), 0),
                         Icon.createWithResource(mContext.getResources(), R.drawable.android))
                 .build();
         Notification n = new Notification.Builder(getContext(), "a")
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java
index 149a95a..6a65269 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java
@@ -35,6 +35,7 @@
 
 import android.app.Notification;
 import android.content.Context;
+import android.os.AsyncTask;
 import android.os.CancellationSignal;
 import android.os.Handler;
 import android.os.Looper;
@@ -51,6 +52,7 @@
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.statusbar.NotificationRemoteInputManager;
 import com.android.systemui.statusbar.SmartReplyController;
+import com.android.systemui.statusbar.notification.ConversationNotificationProcessor;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.BindParams;
 import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationCallback;
@@ -82,6 +84,7 @@
     private ExpandableNotificationRow mRow;
 
     @Mock private NotifRemoteViewCache mCache;
+    @Mock private ConversationNotificationProcessor mConversationNotificationProcessor;
 
     @Before
     public void setUp() throws Exception {
@@ -101,7 +104,9 @@
                 mCache,
                 mock(NotificationRemoteInputManager.class),
                 () -> smartReplyConstants,
-                () -> smartReplyController);
+                () -> smartReplyController,
+                mConversationNotificationProcessor,
+                mock(Executor.class));
     }
 
     @Test
@@ -188,6 +193,7 @@
         result.packageContext = mContext;
         CountDownLatch countDownLatch = new CountDownLatch(1);
         NotificationContentInflater.applyRemoteView(
+                AsyncTask.SERIAL_EXECUTOR,
                 false /* inflateSynchronously */,
                 result,
                 FLAG_CONTENT_VIEW_EXPANDED,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java
index e1ab33a..6998edd 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java
@@ -26,6 +26,8 @@
 import static android.view.View.GONE;
 import static android.view.View.VISIBLE;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import static junit.framework.Assert.assertEquals;
 import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertTrue;
@@ -203,9 +205,8 @@
         PendingIntent bubbleIntent = PendingIntent.getActivity(mContext, 0,
                 new Intent(mContext, BubblesTestActivity.class), 0);
         mBubbleSbn = new SbnBuilder(mSbn).setBubbleMetadata(
-                new Notification.BubbleMetadata.Builder()
-                        .createIntentBubble(bubbleIntent,
-                                Icon.createWithResource(mContext, R.drawable.android)).build())
+                new Notification.BubbleMetadata.Builder(bubbleIntent,
+                        Icon.createWithResource(mContext, R.drawable.android)).build())
                 .build();
         mBubbleEntry = new NotificationEntryBuilder()
                 .setSbn(mBubbleSbn)
@@ -224,7 +225,6 @@
     public void testBindNotification_SetsShortcutIcon() {
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -233,7 +233,6 @@
                 mEntry,
                 null,
                 null,
-                null,
                 mIconFactory,
                 true);
         final ImageView view = mNotificationInfo.findViewById(R.id.conversation_icon);
@@ -245,7 +244,6 @@
         when(mMockPackageManager.getApplicationLabel(any())).thenReturn("App Name");
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -254,7 +252,6 @@
                 mEntry,
                 null,
                 null,
-                null,
                 mIconFactory,
                 true);
         final TextView textView = mNotificationInfo.findViewById(R.id.pkg_name);
@@ -292,7 +289,6 @@
 
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -301,7 +297,6 @@
                 mEntry,
                 null,
                 null,
-                null,
                 mIconFactory,
                 true);
         final TextView textView = mNotificationInfo.findViewById(R.id.group_name);
@@ -315,7 +310,6 @@
     public void testBindNotification_GroupNameHiddenIfNoGroup() {
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -324,7 +318,6 @@
                 mEntry,
                 null,
                 null,
-                null,
                 mIconFactory,
                 true);
         final TextView textView = mNotificationInfo.findViewById(R.id.group_name);
@@ -337,7 +330,6 @@
     public void testBindNotification_noDelegate() {
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -346,7 +338,6 @@
                 mEntry,
                 null,
                 null,
-                null,
                 mIconFactory,
                 true);
         final TextView nameView = mNotificationInfo.findViewById(R.id.delegate_name);
@@ -366,7 +357,6 @@
         NotificationEntry entry = new NotificationEntryBuilder().setSbn(mSbn).build();
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -375,7 +365,6 @@
                 entry,
                 null,
                 null,
-                null,
                 mIconFactory,
                 true);
         final TextView nameView = mNotificationInfo.findViewById(R.id.delegate_name);
@@ -388,7 +377,6 @@
         final CountDownLatch latch = new CountDownLatch(1);
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -400,7 +388,6 @@
                     latch.countDown();
                 },
                 null,
-                null,
                 mIconFactory,
                 true);
 
@@ -414,7 +401,6 @@
     public void testBindNotification_SettingsButtonInvisibleWhenNoClickListener() {
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -423,7 +409,6 @@
                 mEntry,
                 null,
                 null,
-                null,
                 mIconFactory,
                 true);
         final View settingsButton = mNotificationInfo.findViewById(R.id.info);
@@ -435,7 +420,6 @@
         final CountDownLatch latch = new CountDownLatch(1);
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -447,7 +431,6 @@
                     latch.countDown();
                 },
                 null,
-                null,
                 mIconFactory,
                 false);
         final View settingsButton = mNotificationInfo.findViewById(R.id.info);
@@ -455,380 +438,11 @@
     }
 
     @Test
-    public void testBindNotification_bubbleActionVisibleWhenCanBubble()  {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, 1);
-        mNotificationInfo.bindNotification(
-                mShortcutManager,
-                mLauncherApps,
-                mMockPackageManager,
-                mMockINotificationManager,
-                mVisualStabilityManager,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mBubbleEntry,
-                null,
-                null,
-                null,
-                mIconFactory,
-                true);
-
-        View bubbleView = mNotificationInfo.findViewById(R.id.bubble);
-        assertEquals(View.VISIBLE, bubbleView.getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_bubbleAction_noBubbleMetadata()  {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, 1);
-        mNotificationInfo.bindNotification(
-                mShortcutManager,
-                mLauncherApps,
-                mMockPackageManager,
-                mMockINotificationManager,
-                mVisualStabilityManager,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mIconFactory,
-                true);
-
-        View bubbleView = mNotificationInfo.findViewById(R.id.bubble);
-        assertEquals(View.GONE, bubbleView.getVisibility());
-    }
-
-    @Test
-    public void testBindNotification_bubbleActionGloballyOff()  {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, 0);
-        mNotificationInfo.bindNotification(
-                mShortcutManager,
-                mLauncherApps,
-                mMockPackageManager,
-                mMockINotificationManager,
-                mVisualStabilityManager,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mBubbleEntry,
-                null,
-                null,
-                null,
-                mIconFactory,
-                true);
-
-        View bubbleView = mNotificationInfo.findViewById(R.id.bubble);
-        assertEquals(View.GONE, bubbleView.getVisibility());
-    }
-
-    @Test
-    public void testAddToHome() throws Exception {
-        when(mShortcutManager.isRequestPinShortcutSupported()).thenReturn(true);
-
-        mNotificationInfo.bindNotification(
-                mShortcutManager,
-                mLauncherApps,
-                mMockPackageManager,
-                mMockINotificationManager,
-                mVisualStabilityManager,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mBubbleEntry,
-                null,
-                null,
-                null,
-                mIconFactory,
-                true);
-
-        // Promote it
-        mNotificationInfo.findViewById(R.id.home).performClick();
-        mTestableLooper.processAllMessages();
-
-        verify(mShortcutManager, times(1)).requestPinShortcut(mShortcutInfo, null);
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                anyString(), anyInt(), any());
-        verify(mShadeController).animateCollapsePanels();
-    }
-
-    @Test
-    public void testSnooze() throws Exception {
-        final CountDownLatch latch = new CountDownLatch(1);
-
-        mNotificationInfo.bindNotification(
-                mShortcutManager,
-                mLauncherApps,
-                mMockPackageManager,
-                mMockINotificationManager,
-                mVisualStabilityManager,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mBubbleEntry,
-                null,
-                null,
-                (View v, int hours) -> {
-                    latch.countDown();
-                },
-                mIconFactory,
-                true);
-
-        // Promote it
-        mNotificationInfo.findViewById(R.id.snooze).performClick();
-        mTestableLooper.processAllMessages();
-
-        assertEquals(0, latch.getCount());
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                anyString(), anyInt(), any());
-    }
-
-    @Test
-    public void testBubble_promotesBubble() throws Exception {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, 1);
-        mNotificationChannel.setAllowBubbles(false);
-        mConversationChannel.setAllowBubbles(false);
-
-        mNotificationInfo.bindNotification(
-                mShortcutManager,
-                mLauncherApps,
-                mMockPackageManager,
-                mMockINotificationManager,
-                mVisualStabilityManager,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mBubbleEntry,
-                null,
-                null,
-                null,
-                mIconFactory,
-                true);
-
-        assertFalse(mBubbleEntry.isBubble());
-
-        // Promote it
-        mNotificationInfo.findViewById(R.id.bubble).performClick();
-        mTestableLooper.processAllMessages();
-
-        verify(mBubbleController, times(1)).onUserCreatedBubbleFromNotification(mBubbleEntry);
-        ArgumentCaptor<NotificationChannel> captor =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), anyInt(), captor.capture());
-        assertTrue(captor.getValue().canBubble());
-    }
-
-    @Test
-    public void testBubble_demotesBubble() throws Exception {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, 1);
-        mBubbleEntry.getSbn().getNotification().flags |= FLAG_BUBBLE;
-
-        mNotificationInfo.bindNotification(
-                mShortcutManager,
-                mLauncherApps,
-                mMockPackageManager,
-                mMockINotificationManager,
-                mVisualStabilityManager,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mBubbleEntry,
-                null,
-                null,
-                null,
-                mIconFactory,
-                true);
-
-        assertTrue(mBubbleEntry.isBubble());
-
-        // Demote it
-        mNotificationInfo.findViewById(R.id.bubble).performClick();
-        mTestableLooper.processAllMessages();
-
-        verify(mBubbleController, times(1)).onUserDemotedBubbleFromNotification(mBubbleEntry);
-        ArgumentCaptor<NotificationChannel> captor =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), anyInt(), captor.capture());
-        assertFalse(captor.getValue().canBubble());
-    }
-
-    @Test
-    public void testBubble_noChannelChange() throws Exception {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, 1);
-        mNotificationInfo.bindNotification(
-                mShortcutManager,
-                mLauncherApps,
-                mMockPackageManager,
-                mMockINotificationManager,
-                mVisualStabilityManager,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mBubbleEntry,
-                null,
-                null,
-                null,
-                mIconFactory,
-                true);
-
-        assertFalse(mBubbleEntry.isBubble());
-        assertTrue(mNotificationChannel.canBubble());
-
-        // Promote it
-        mNotificationInfo.findViewById(R.id.bubble).performClick();
-        mTestableLooper.processAllMessages();
-
-        verify(mBubbleController, times(1)).onUserCreatedBubbleFromNotification(mBubbleEntry);
-        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
-                anyString(), anyInt(), any());
-    }
-
-    @Test
-    public void testFavorite_favorite_noBubble() throws Exception {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                BUBBLE_IMPORTANT_CONVERSATIONS, 0);
-        mNotificationChannel.setAllowBubbles(false);
-        mConversationChannel.setAllowBubbles(false);
-        mNotificationInfo.bindNotification(
-                mShortcutManager,
-                mLauncherApps,
-                mMockPackageManager,
-                mMockINotificationManager,
-                mVisualStabilityManager,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mIconFactory,
-                true);
-
-        ImageButton fave = mNotificationInfo.findViewById(R.id.fave);
-        assertEquals(mContext.getString(R.string.notification_conversation_unfavorite),
-                fave.getContentDescription().toString());
-
-        fave.performClick();
-        mTestableLooper.processAllMessages();
-
-        ArgumentCaptor<NotificationChannel> captor =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), anyInt(), captor.capture());
-        assertTrue(captor.getValue().isImportantConversation());
-        assertFalse(captor.getValue().canBubble());
-        verify(mBubbleController, never()).onUserCreatedBubbleFromNotification(mEntry);
-    }
-
-    @Test
-    public void testFavorite_favorite_bubble() throws Exception {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                BUBBLE_IMPORTANT_CONVERSATIONS, 1);
-        mNotificationChannel.setAllowBubbles(false);
-        mConversationChannel.setAllowBubbles(false);
-        mNotificationInfo.bindNotification(
-                mShortcutManager,
-                mLauncherApps,
-                mMockPackageManager,
-                mMockINotificationManager,
-                mVisualStabilityManager,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mIconFactory,
-                true);
-
-        ImageButton fave = mNotificationInfo.findViewById(R.id.fave);
-        assertEquals(mContext.getString(R.string.notification_conversation_unfavorite),
-                fave.getContentDescription().toString());
-
-        fave.performClick();
-        mTestableLooper.processAllMessages();
-
-        ArgumentCaptor<NotificationChannel> captor =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), anyInt(), captor.capture());
-        assertTrue(captor.getValue().isImportantConversation());
-        assertTrue(captor.getValue().canBubble());
-    }
-
-    @Test
-    public void testFavorite_unfavorite() throws Exception {
-        mNotificationChannel.setImportantConversation(true);
-        mConversationChannel.setImportantConversation(true);
-
-        mNotificationInfo.bindNotification(
-                mShortcutManager,
-                mLauncherApps,
-                mMockPackageManager,
-                mMockINotificationManager,
-                mVisualStabilityManager,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mIconFactory,
-                true);
-
-        ImageButton fave = mNotificationInfo.findViewById(R.id.fave);
-        assertEquals(mContext.getString(R.string.notification_conversation_favorite),
-                fave.getContentDescription().toString());
-
-        fave.performClick();
-        mTestableLooper.processAllMessages();
-
-        ArgumentCaptor<NotificationChannel> captor =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), anyInt(), captor.capture());
-        assertFalse(captor.getValue().isImportantConversation());
-    }
-
-    @Test
-    public void testMute_mute() throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_DEFAULT);
-        mConversationChannel.setImportance(IMPORTANCE_DEFAULT);
-
-        mNotificationInfo.bindNotification(
-                mShortcutManager,
-                mLauncherApps,
-                mMockPackageManager,
-                mMockINotificationManager,
-                mVisualStabilityManager,
-                TEST_PACKAGE_NAME,
-                mNotificationChannel,
-                mEntry,
-                null,
-                null,
-                null,
-                mIconFactory,
-                true);
-
-        ImageButton mute = mNotificationInfo.findViewById(R.id.mute);
-        assertEquals(mContext.getString(R.string.notification_conversation_unmute),
-                mute.getContentDescription().toString());
-
-        mute.performClick();
-        mTestableLooper.processAllMessages();
-
-        ArgumentCaptor<NotificationChannel> captor =
-                ArgumentCaptor.forClass(NotificationChannel.class);
-        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
-                anyString(), anyInt(), captor.capture());
-        assertEquals(IMPORTANCE_LOW, captor.getValue().getImportance());
-    }
-
-    @Test
-    public void testMute_unmute() throws Exception {
-        mNotificationChannel.setImportance(IMPORTANCE_LOW);
-        mNotificationChannel.setOriginalImportance(IMPORTANCE_HIGH);
+    public void testBindNotification_silentSelected_isFave_isSilent() {
         mConversationChannel.setImportance(IMPORTANCE_LOW);
-        mConversationChannel.setOriginalImportance(IMPORTANCE_HIGH);
-
+        mConversationChannel.setImportantConversation(true);
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -837,15 +451,200 @@
                 mEntry,
                 null,
                 null,
+                mIconFactory,
+                true);
+        View view = mNotificationInfo.findViewById(R.id.silence);
+        assertThat(view.isSelected()).isTrue();
+    }
+
+    @Test
+    public void testBindNotification_defaultSelected_notFave_notSilent() {
+        mConversationChannel.setImportance(IMPORTANCE_HIGH);
+        mConversationChannel.setImportantConversation(false);
+        mConversationChannel.setAllowBubbles(true);
+        mNotificationInfo.bindNotification(
+                mShortcutManager,
+                mMockPackageManager,
+                mMockINotificationManager,
+                mVisualStabilityManager,
+                TEST_PACKAGE_NAME,
+                mNotificationChannel,
+                mEntry,
+                null,
+                null,
+                mIconFactory,
+                true);
+        View view = mNotificationInfo.findViewById(R.id.default_behavior);
+        assertThat(view.isSelected()).isTrue();
+    }
+
+    @Test
+    public void testFavorite() throws Exception {
+        mConversationChannel.setAllowBubbles(false);
+        mConversationChannel.setImportance(IMPORTANCE_LOW);
+        mConversationChannel.setImportantConversation(false);
+
+        mNotificationInfo.bindNotification(
+                mShortcutManager,
+                mMockPackageManager,
+                mMockINotificationManager,
+                mVisualStabilityManager,
+                TEST_PACKAGE_NAME,
+                mNotificationChannel,
+                mEntry,
+                null,
                 null,
                 mIconFactory,
                 true);
 
-        ImageButton mute = mNotificationInfo.findViewById(R.id.mute);
-        assertEquals(mContext.getString(R.string.notification_conversation_mute),
-                mute.getContentDescription().toString());
+        View fave = mNotificationInfo.findViewById(R.id.priority);
+        fave.performClick();
+        mTestableLooper.processAllMessages();
 
-        mute.performClick();
+        // silence subtext visible, others not
+        assertThat(mNotificationInfo.findViewById(R.id.priority_summary).getVisibility())
+                .isEqualTo(VISIBLE);
+        assertThat(mNotificationInfo.findViewById(R.id.default_summary).getVisibility())
+                .isEqualTo(GONE);
+        assertThat(mNotificationInfo.findViewById(R.id.silence_summary).getVisibility())
+                .isEqualTo(GONE);
+
+        // no changes until hit done
+        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
+                anyString(), anyInt(), any());
+        assertFalse(mConversationChannel.isImportantConversation());
+        assertFalse(mConversationChannel.canBubble());
+        assertEquals(IMPORTANCE_LOW, mConversationChannel.getImportance());
+    }
+
+    @Test
+    public void testDefault() throws Exception {
+        mConversationChannel.setAllowBubbles(false);
+        mConversationChannel.setImportance(IMPORTANCE_LOW);
+        mConversationChannel.setImportantConversation(false);
+        mNotificationInfo.bindNotification(
+                mShortcutManager,
+                mMockPackageManager,
+                mMockINotificationManager,
+                mVisualStabilityManager,
+                TEST_PACKAGE_NAME,
+                mNotificationChannel,
+                mEntry,
+                null,
+                null,
+                mIconFactory,
+                true);
+
+        mNotificationInfo.findViewById(R.id.default_behavior).performClick();
+        mTestableLooper.processAllMessages();
+
+        // silence subtext visible, others not
+        assertThat(mNotificationInfo.findViewById(R.id.priority_summary).getVisibility())
+                .isEqualTo(GONE);
+        assertThat(mNotificationInfo.findViewById(R.id.default_summary).getVisibility())
+                .isEqualTo(VISIBLE);
+        assertThat(mNotificationInfo.findViewById(R.id.silence_summary).getVisibility())
+                .isEqualTo(GONE);
+
+        // no changes until hit done
+        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
+                anyString(), anyInt(), any());
+        assertFalse(mConversationChannel.isImportantConversation());
+        assertFalse(mConversationChannel.canBubble());
+        assertEquals(IMPORTANCE_LOW, mConversationChannel.getImportance());
+    }
+
+    @Test
+    public void testSilence() throws Exception {
+        mConversationChannel.setImportance(IMPORTANCE_DEFAULT);
+        mConversationChannel.setImportantConversation(false);
+
+        mNotificationInfo.bindNotification(
+                mShortcutManager,
+                mMockPackageManager,
+                mMockINotificationManager,
+                mVisualStabilityManager,
+                TEST_PACKAGE_NAME,
+                mNotificationChannel,
+                mEntry,
+                null,
+                null,
+                mIconFactory,
+                true);
+
+        View silence = mNotificationInfo.findViewById(R.id.silence);
+
+        silence.performClick();
+        mTestableLooper.processAllMessages();
+
+        // silence subtext visible, others not
+        assertThat(mNotificationInfo.findViewById(R.id.priority_summary).getVisibility())
+                .isEqualTo(GONE);
+        assertThat(mNotificationInfo.findViewById(R.id.default_summary).getVisibility())
+                .isEqualTo(GONE);
+        assertThat(mNotificationInfo.findViewById(R.id.silence_summary).getVisibility())
+                .isEqualTo(VISIBLE);
+
+        // no changes until save
+        verify(mMockINotificationManager, never()).updateNotificationChannelForPackage(
+                anyString(), anyInt(), any());
+        assertEquals(IMPORTANCE_DEFAULT, mConversationChannel.getImportance());
+    }
+
+    @Test
+    public void testFavorite_andSave() throws Exception {
+        mConversationChannel.setAllowBubbles(false);
+        mConversationChannel.setImportance(IMPORTANCE_LOW);
+        mConversationChannel.setImportantConversation(false);
+
+        mNotificationInfo.bindNotification(
+                mShortcutManager,
+                mMockPackageManager,
+                mMockINotificationManager,
+                mVisualStabilityManager,
+                TEST_PACKAGE_NAME,
+                mNotificationChannel,
+                mEntry,
+                null,
+                null,
+                mIconFactory,
+                true);
+
+        View fave = mNotificationInfo.findViewById(R.id.priority);
+        fave.performClick();
+        mNotificationInfo.findViewById(R.id.done).performClick();
+        mTestableLooper.processAllMessages();
+
+        ArgumentCaptor<NotificationChannel> captor =
+                ArgumentCaptor.forClass(NotificationChannel.class);
+        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
+                anyString(), anyInt(), captor.capture());
+        assertTrue(captor.getValue().isImportantConversation());
+        assertTrue(captor.getValue().canBubble());
+        assertEquals(IMPORTANCE_DEFAULT, captor.getValue().getImportance());
+    }
+
+    @Test
+    public void testFavorite_andSave_doesNotLowerImportance() throws Exception {
+        mConversationChannel.setOriginalImportance(IMPORTANCE_HIGH);
+        mConversationChannel.setImportance(9);
+
+        mNotificationInfo.bindNotification(
+                mShortcutManager,
+                mMockPackageManager,
+                mMockINotificationManager,
+                mVisualStabilityManager,
+                TEST_PACKAGE_NAME,
+                mNotificationChannel,
+                mEntry,
+                null,
+                null,
+                mIconFactory,
+                true);
+
+        View fave = mNotificationInfo.findViewById(R.id.priority);
+        fave.performClick();
+        mNotificationInfo.findViewById(R.id.done).performClick();
         mTestableLooper.processAllMessages();
 
         ArgumentCaptor<NotificationChannel> captor =
@@ -856,10 +655,12 @@
     }
 
     @Test
-    public void testBindNotification_createsNewChannel() throws Exception {
+    public void testDefault_andSave() throws Exception {
+        mConversationChannel.setAllowBubbles(true);
+        mConversationChannel.setOriginalImportance(IMPORTANCE_HIGH);
+        mConversationChannel.setImportantConversation(true);
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -868,6 +669,126 @@
                 mEntry,
                 null,
                 null,
+                mIconFactory,
+                true);
+
+        mNotificationInfo.findViewById(R.id.default_behavior).performClick();
+        mNotificationInfo.findViewById(R.id.done).performClick();
+        mTestableLooper.processAllMessages();
+
+        ArgumentCaptor<NotificationChannel> captor =
+                ArgumentCaptor.forClass(NotificationChannel.class);
+        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
+                anyString(), anyInt(), captor.capture());
+        assertFalse(captor.getValue().isImportantConversation());
+        assertFalse(captor.getValue().canBubble());
+        assertEquals(IMPORTANCE_HIGH, captor.getValue().getImportance());
+    }
+
+    @Test
+    public void testDefault_andSave_doesNotChangeNonImportantBubbling() throws Exception {
+        mConversationChannel.setAllowBubbles(true);
+        mConversationChannel.setOriginalImportance(IMPORTANCE_HIGH);
+        mConversationChannel.setImportantConversation(false);
+        mNotificationInfo.bindNotification(
+                mShortcutManager,
+                mMockPackageManager,
+                mMockINotificationManager,
+                mVisualStabilityManager,
+                TEST_PACKAGE_NAME,
+                mNotificationChannel,
+                mEntry,
+                null,
+                null,
+                mIconFactory,
+                true);
+
+        mNotificationInfo.findViewById(R.id.default_behavior).performClick();
+        mNotificationInfo.findViewById(R.id.done).performClick();
+        mTestableLooper.processAllMessages();
+
+        ArgumentCaptor<NotificationChannel> captor =
+                ArgumentCaptor.forClass(NotificationChannel.class);
+        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
+                anyString(), anyInt(), captor.capture());
+        assertFalse(captor.getValue().isImportantConversation());
+        assertTrue(captor.getValue().canBubble());
+        assertEquals(IMPORTANCE_HIGH, captor.getValue().getImportance());
+    }
+
+    @Test
+    public void testDefault_andSave_doesNotDemoteImportance() throws Exception {
+        mConversationChannel.setImportance(9);
+        mConversationChannel.setOriginalImportance(IMPORTANCE_HIGH);
+
+        mNotificationInfo.bindNotification(
+                mShortcutManager,
+                mMockPackageManager,
+                mMockINotificationManager,
+                mVisualStabilityManager,
+                TEST_PACKAGE_NAME,
+                mNotificationChannel,
+                mEntry,
+                null,
+                null,
+                mIconFactory,
+                true);
+
+        mNotificationInfo.findViewById(R.id.default_behavior).performClick();
+        mNotificationInfo.findViewById(R.id.done).performClick();
+        mTestableLooper.processAllMessages();
+
+        ArgumentCaptor<NotificationChannel> captor =
+                ArgumentCaptor.forClass(NotificationChannel.class);
+        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
+                anyString(), anyInt(), captor.capture());
+        assertEquals(IMPORTANCE_HIGH, captor.getValue().getImportance());
+    }
+
+    @Test
+    public void testSilence_andSave() throws Exception {
+        mConversationChannel.setImportance(IMPORTANCE_DEFAULT);
+        mConversationChannel.setImportantConversation(true);
+        mConversationChannel.setAllowBubbles(true);
+
+        mNotificationInfo.bindNotification(
+                mShortcutManager,
+                mMockPackageManager,
+                mMockINotificationManager,
+                mVisualStabilityManager,
+                TEST_PACKAGE_NAME,
+                mNotificationChannel,
+                mEntry,
+                null,
+                null,
+                mIconFactory,
+                true);
+
+        View silence = mNotificationInfo.findViewById(R.id.silence);
+        silence.performClick();
+        mNotificationInfo.findViewById(R.id.done).performClick();
+        mTestableLooper.processAllMessages();
+
+        ArgumentCaptor<NotificationChannel> captor =
+                ArgumentCaptor.forClass(NotificationChannel.class);
+        verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
+                anyString(), anyInt(), captor.capture());
+        assertFalse(captor.getValue().isImportantConversation());
+        assertFalse(captor.getValue().canBubble());
+        assertEquals(IMPORTANCE_LOW, captor.getValue().getImportance());
+    }
+
+    @Test
+    public void testBindNotification_createsNewChannel() throws Exception {
+        mNotificationInfo.bindNotification(
+                mShortcutManager,
+                mMockPackageManager,
+                mMockINotificationManager,
+                mVisualStabilityManager,
+                TEST_PACKAGE_NAME,
+                mNotificationChannel,
+                mEntry,
+                null,
                 null,
                 mIconFactory,
                 true);
@@ -881,7 +802,6 @@
         mNotificationChannel.setConversationId("", CONVERSATION_ID);
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -890,7 +810,6 @@
                 mEntry,
                 null,
                 null,
-                null,
                 mIconFactory,
                 true);
 
@@ -904,7 +823,6 @@
         mConversationChannel.setImportance(IMPORTANCE_DEFAULT);
         mNotificationInfo.bindNotification(
                 mShortcutManager,
-                mLauncherApps,
                 mMockPackageManager,
                 mMockINotificationManager,
                 mVisualStabilityManager,
@@ -913,11 +831,13 @@
                 mEntry,
                 null,
                 null,
-                null,
                 mIconFactory,
                 true);
 
-        mNotificationInfo.findViewById(R.id.mute).performClick();
+        mNotificationInfo.findViewById(R.id.silence).performClick();
+        mNotificationInfo.findViewById(R.id.done).performClick();
+
+        mTestableLooper.processAllMessages();
 
         verify(mVisualStabilityManager).temporarilyAllowReordering();
     }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java
index 2e787ce..bdd7a2e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationEntryManagerInflationTest.java
@@ -36,6 +36,7 @@
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper;
 
+import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
 import androidx.test.filters.SmallTest;
 
 import com.android.internal.util.NotificationMessagingUtil;
@@ -51,6 +52,7 @@
 import com.android.systemui.statusbar.NotificationRemoteInputManager;
 import com.android.systemui.statusbar.SbnBuilder;
 import com.android.systemui.statusbar.SmartReplyController;
+import com.android.systemui.statusbar.notification.ConversationNotificationProcessor;
 import com.android.systemui.statusbar.notification.ForegroundServiceDismissalFeatureController;
 import com.android.systemui.statusbar.notification.NotificationClicker;
 import com.android.systemui.statusbar.notification.NotificationEntryListener;
@@ -67,7 +69,6 @@
 import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
 import com.android.systemui.statusbar.notification.logging.NotificationLogger;
 import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
-import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
 import com.android.systemui.statusbar.notification.row.dagger.ExpandableNotificationRowComponent;
 import com.android.systemui.statusbar.notification.row.dagger.NotificationRowComponent;
 import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
@@ -75,12 +76,12 @@
 import com.android.systemui.statusbar.phone.NotificationGroupManager;
 import com.android.systemui.statusbar.policy.HeadsUpManager;
 import com.android.systemui.statusbar.policy.SmartReplyConstants;
+import com.android.systemui.util.concurrency.FakeExecutor;
 import com.android.systemui.util.leak.LeakDetector;
 import com.android.systemui.util.time.FakeSystemClock;
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -89,11 +90,12 @@
 import org.mockito.MockitoAnnotations;
 import org.mockito.stubbing.Answer;
 
+import java.util.concurrent.CountDownLatch;
+
 /**
  * Functional tests for notification inflation from {@link NotificationEntryManager}.
  */
 @SmallTest
-@Ignore("Flaking")
 @RunWith(AndroidTestingRunner.class)
 @TestableLooper.RunWithLooper(setAsMainLooper = true)
 public class NotificationEntryManagerInflationTest extends SysuiTestCase {
@@ -135,6 +137,7 @@
     private NotificationEntryManager mEntryManager;
     private NotificationRowBinderImpl mRowBinder;
     private Handler mHandler;
+    private FakeExecutor mBgExecutor;
 
     @Before
     public void setUp() {
@@ -179,11 +182,14 @@
         NotifBindPipeline pipeline = new NotifBindPipeline(
                 mEntryManager,
                 mock(NotifBindPipelineLogger.class));
+        mBgExecutor = new FakeExecutor(new FakeSystemClock());
         NotificationContentInflater binder = new NotificationContentInflater(
                 cache,
                 mRemoteInputManager,
                 () -> mock(SmartReplyConstants.class),
-                () -> mock(SmartReplyController.class));
+                () -> mock(SmartReplyController.class),
+                mock(ConversationNotificationProcessor.class),
+                mBgExecutor);
         RowContentBindStage stage = new RowContentBindStage(
                 binder,
                 mock(NotifInflationErrorManager.class),
@@ -308,9 +314,7 @@
         verify(mEntryListener).onPendingEntryAdded(entryCaptor.capture());
         NotificationEntry entry = entryCaptor.getValue();
 
-        // Wait for inflation
-        // row inflation, system notification, remote views, contracted view
-        waitForMessages(4);
+        waitForInflation();
 
         // THEN the notification has its row inflated
         assertNotNull(entry.getRow());
@@ -337,7 +341,7 @@
                 NotificationEntry.class);
         verify(mEntryListener).onPendingEntryAdded(entryCaptor.capture());
         NotificationEntry entry = entryCaptor.getValue();
-        waitForMessages(4);
+        waitForInflation();
 
         Mockito.reset(mEntryListener);
         Mockito.reset(mPresenter);
@@ -345,9 +349,7 @@
         // WHEN the notification is updated
         mEntryManager.updateNotification(mSbn, mRankingMap);
 
-        // Wait for inflation
-        // remote views, contracted view
-        waitForMessages(2);
+        waitForInflation();
 
         // THEN the notification has its row and inflated
         assertNotNull(entry.getRow());
@@ -361,31 +363,40 @@
     }
 
     /**
-     * Wait for a certain number of messages to finish before continuing, timing out if they never
-     * occur.
+     * Wait for inflation to finish.
      *
-     * As part of the inflation pipeline, the main thread is forced to deal with several callbacks
-     * due to the nature of the API used (generally because they're {@link android.os.AsyncTask}
-     * callbacks). In order, these are
-     *
-     * 1) Callback after row inflation. See {@link RowInflaterTask}.
-     * 2) Callback checking if row is system notification. See
-     *    {@link ExpandableNotificationRow#setEntry}
-     * 3) Callback after remote views are created. See
-     *    {@link NotificationContentInflater.AsyncInflationTask}.
-     * 4-6) Callback after each content view is inflated/rebound from remote view. See
-     *      {@link NotificationContentInflater#applyRemoteView} and {@link InflationFlag}.
-     *
-     * Depending on the test, only some of these will be necessary. For example, generally, not
-     * every content view is inflated or the row may not be inflated if one already exists.
-     *
-     * Currently, the burden is on the developer to figure these out until we have a much more
-     * test-friendly way of executing inflation logic (i.e. pass in an executor).
+     * A few things to note
+     * 1) Row inflation is done via {@link AsyncLayoutInflater} on its own background thread that
+     * calls back to main thread which is why we wait on main thread.
+     * 2) Row *content* inflation is done on the {@link FakeExecutor} we pass in in this test class
+     * so we control when that work is done. The callback is still always on the main thread.
      */
-    private void waitForMessages(int numMessages) {
+    private void waitForInflation() {
         mHandler.postDelayed(TIMEOUT_RUNNABLE, TIMEOUT_TIME);
-        TestableLooper.get(this).processMessages(numMessages);
+        final CountDownLatch latch = new CountDownLatch(1);
+        NotificationEntryListener inflationListener = new NotificationEntryListener() {
+            @Override
+            public void onEntryInflated(NotificationEntry entry) {
+                latch.countDown();
+            }
+
+            @Override
+            public void onEntryReinflated(NotificationEntry entry) {
+                latch.countDown();
+            }
+
+            @Override
+            public void onInflationError(StatusBarNotification notification, Exception exception) {
+                latch.countDown();
+            }
+        };
+        mEntryManager.addNotificationEntryListener(inflationListener);
+        while (latch.getCount() != 0) {
+            mBgExecutor.runAllReady();
+            TestableLooper.get(this).processMessages(1);
+        }
         mHandler.removeCallbacks(TIMEOUT_RUNNABLE);
+        mEntryManager.removeNotificationEntryListener(inflationListener);
     }
 
 }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java
index e9dca699..5ad88c9 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java
@@ -48,7 +48,9 @@
 import android.app.Notification;
 import android.app.NotificationChannel;
 import android.content.Intent;
+import android.content.pm.LauncherApps;
 import android.content.pm.PackageManager;
+import android.content.pm.ShortcutManager;
 import android.os.Binder;
 import android.os.Handler;
 import android.provider.Settings;
@@ -113,6 +115,9 @@
     @Mock private StatusBar mStatusBar;
     @Mock private AccessibilityManager mAccessibilityManager;
     @Mock private HighPriorityProvider mHighPriorityProvider;
+    @Mock private INotificationManager mINotificationManager;
+    @Mock private LauncherApps mLauncherApps;
+    @Mock private ShortcutManager mShortcutManager;
 
     @Before
     public void setUp() {
@@ -128,7 +133,8 @@
         when(mAccessibilityManager.isTouchExplorationEnabled()).thenReturn(false);
 
         mGutsManager = new NotificationGutsManager(mContext, mVisualStabilityManager,
-                () -> mStatusBar, mHandler, mAccessibilityManager, mHighPriorityProvider);
+                () -> mStatusBar, mHandler, mAccessibilityManager, mHighPriorityProvider,
+                mINotificationManager, mLauncherApps, mShortcutManager);
         mGutsManager.setUpWithPresenter(mPresenter, mStackScroller,
                 mCheckSaveListener, mOnSettingsClickListener);
         mGutsManager.setNotificationActivityStarter(mNotificationActivityStarter);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java
index dc3374b..2134a3d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java
@@ -50,6 +50,7 @@
 import com.android.systemui.statusbar.NotificationMediaManager;
 import com.android.systemui.statusbar.NotificationRemoteInputManager;
 import com.android.systemui.statusbar.SmartReplyController;
+import com.android.systemui.statusbar.notification.ConversationNotificationProcessor;
 import com.android.systemui.statusbar.notification.collection.NotificationEntry;
 import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
 import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection;
@@ -70,6 +71,7 @@
 import org.mockito.ArgumentCaptor;
 
 import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Executor;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -119,7 +121,9 @@
                 mock(NotifRemoteViewCache.class),
                 mock(NotificationRemoteInputManager.class),
                 () -> mock(SmartReplyConstants.class),
-                () -> mock(SmartReplyController.class));
+                () -> mock(SmartReplyController.class),
+                mock(ConversationNotificationProcessor.class),
+                mock(Executor.class));
         contentBinder.setInflateSynchronously(true);
         mBindStage = new RowContentBindStage(contentBinder,
                 mock(NotifInflationErrorManager.class),
@@ -370,7 +374,7 @@
                         notification.getChannelId(),
                         notification.getChannelId(),
                         importance);
-        channel.setBlockableSystem(true);
+        channel.setBlockable(true);
 
         NotificationEntry entry = new NotificationEntryBuilder()
                 .setPkg(pkg)
@@ -426,8 +430,7 @@
         Intent target = new Intent(mContext, BubblesTestActivity.class);
         PendingIntent bubbleIntent = PendingIntent.getActivity(mContext, 0, target, 0);
 
-        return new BubbleMetadata.Builder()
-                .createIntentBubble(bubbleIntent,
+        return new BubbleMetadata.Builder(bubbleIntent,
                         Icon.createWithResource(mContext, R.drawable.android))
                 .setDeleteIntent(deleteIntent)
                 .setDesiredHeight(314)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManagerTest.java
index a263a72..646bc96 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationSectionsManagerTest.java
@@ -42,6 +42,7 @@
 
 import androidx.test.filters.SmallTest;
 
+import com.android.keyguard.KeyguardMediaPlayer;
 import com.android.systemui.ActivityStarterDelegate;
 import com.android.systemui.SysuiTestCase;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
@@ -73,6 +74,7 @@
     @Mock private StatusBarStateController mStatusBarStateController;
     @Mock private ConfigurationController mConfigurationController;
     @Mock private PeopleHubViewAdapter mPeopleHubAdapter;
+    @Mock private KeyguardMediaPlayer mKeyguardMediaPlayer;
     @Mock private NotificationSectionsFeatureManager mSectionsFeatureManager;
     @Mock private NotificationRowComponent mNotificationRowComponent;
     @Mock private ActivatableNotificationViewController mActivatableNotificationViewController;
@@ -91,6 +93,7 @@
                         mStatusBarStateController,
                         mConfigurationController,
                         mPeopleHubAdapter,
+                        mKeyguardMediaPlayer,
                         mSectionsFeatureManager
                 );
         // Required in order for the header inflation to work properly
@@ -333,13 +336,82 @@
         verify(mNssl).changeViewPosition(mSectionsManager.getPeopleHeaderView(), 0);
     }
 
+    @Test
+    public void testMediaControls_AddWhenEnterKeyguard() {
+        enableMediaControls();
+
+        // GIVEN a stack that doesn't include media controls
+        setStackState(ChildType.ALERTING, ChildType.GENTLE_HEADER, ChildType.GENTLE);
+
+        // WHEN we go back to the keyguard
+        when(mStatusBarStateController.getState()).thenReturn(StatusBarState.KEYGUARD);
+        mSectionsManager.updateSectionBoundaries();
+
+        // Then the media controls are added
+        verify(mNssl).addView(mSectionsManager.getMediaControlsView(), 0);
+    }
+
+    @Test
+    public void testMediaControls_AddWhenEnterKeyguardWithHeadsUp() {
+        enableMediaControls();
+
+        // GIVEN a stack that doesn't include media controls but includes HEADS_UP
+        setStackState(ChildType.HEADS_UP, ChildType.ALERTING, ChildType.GENTLE_HEADER,
+                ChildType.GENTLE);
+
+        // WHEN we go back to the keyguard
+        when(mStatusBarStateController.getState()).thenReturn(StatusBarState.KEYGUARD);
+        mSectionsManager.updateSectionBoundaries();
+
+        // Then the media controls are added after HEADS_UP
+        verify(mNssl).addView(mSectionsManager.getMediaControlsView(), 1);
+    }
+
+    @Test
+    public void testMediaControls_RemoveWhenExitKeyguard() {
+        enableMediaControls();
+
+        // GIVEN a stack with media controls
+        setStackState(ChildType.MEDIA_CONTROLS, ChildType.ALERTING, ChildType.GENTLE_HEADER,
+                ChildType.GENTLE);
+
+        // WHEN we leave the keyguard
+        when(mStatusBarStateController.getState()).thenReturn(StatusBarState.SHADE);
+        mSectionsManager.updateSectionBoundaries();
+
+        // Then the media controls is removed
+        verify(mNssl).removeView(mSectionsManager.getMediaControlsView());
+    }
+
+    @Test
+    public void testMediaControls_RemoveWhenPullDownShade() {
+        enableMediaControls();
+
+        // GIVEN a stack with media controls
+        setStackState(ChildType.MEDIA_CONTROLS, ChildType.ALERTING, ChildType.GENTLE_HEADER,
+                ChildType.GENTLE);
+
+        // WHEN we pull down the shade on the keyguard
+        when(mStatusBarStateController.getState()).thenReturn(StatusBarState.SHADE_LOCKED);
+        mSectionsManager.updateSectionBoundaries();
+
+        // Then the media controls is removed
+        verify(mNssl).removeView(mSectionsManager.getMediaControlsView());
+    }
+
     private void enablePeopleFiltering() {
         when(mSectionsFeatureManager.isFilteringEnabled()).thenReturn(true);
         when(mSectionsFeatureManager.getNumberOfBuckets()).thenReturn(4);
     }
 
+    private void enableMediaControls() {
+        when(mSectionsFeatureManager.isMediaControlsEnabled()).thenReturn(true);
+        when(mSectionsFeatureManager.getNumberOfBuckets()).thenReturn(4);
+    }
+
     private enum ChildType {
-        PEOPLE_HEADER, ALERTING_HEADER, GENTLE_HEADER, HEADS_UP, PERSON, ALERTING, GENTLE, OTHER
+        MEDIA_CONTROLS, PEOPLE_HEADER, ALERTING_HEADER, GENTLE_HEADER, HEADS_UP, PERSON, ALERTING,
+            GENTLE, OTHER
     }
 
     private void setStackState(ChildType... children) {
@@ -347,6 +419,9 @@
         for (int i = 0; i < children.length; i++) {
             View child;
             switch (children[i]) {
+                case MEDIA_CONTROLS:
+                    child = mSectionsManager.getMediaControlsView();
+                    break;
                 case PEOPLE_HEADER:
                     child = mSectionsManager.getPeopleHeaderView();
                     break;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java
index 35971bd..e052ae2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java
@@ -26,6 +26,7 @@
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.verifyZeroInteractions;
@@ -56,11 +57,13 @@
 
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 
 @SmallTest
 @RunWith(AndroidTestingRunner.class)
@@ -91,13 +94,14 @@
     private Handler mHandler;
     @Mock
     private KeyguardSecurityModel mKeyguardSecurityModel;
-
+    @Rule
+    public MockitoRule mRule = MockitoJUnit.rule();
+    private ViewGroup mRootView;
     private KeyguardBouncer mBouncer;
 
     @Before
     public void setup() {
         allowTestableLooperAsMainThread();
-        MockitoAnnotations.initMocks(this);
         mDependency.injectTestDependency(KeyguardUpdateMonitor.class, mKeyguardUpdateMonitor);
         mDependency.injectTestDependency(KeyguardSecurityModel.class, mKeyguardSecurityModel);
         mDependency.injectMockDependency(KeyguardStateController.class);
@@ -115,6 +119,8 @@
             protected void inflateView() {
                 super.inflateView();
                 mKeyguardView = mKeyguardHostView;
+                mRoot = spy(mRoot);
+                mRootView = mRoot;
             }
         };
     }
@@ -217,6 +223,7 @@
 
         mBouncer.setExpansion(0);
         verify(mKeyguardHostView).onResume();
+        verify(mRootView).announceForAccessibility(any());
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java
index 487885a..85b5d70 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LockscreenIconControllerTest.java
@@ -21,6 +21,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.content.res.Resources;
 import android.view.View;
 
 import androidx.test.filters.SmallTest;
@@ -35,6 +36,7 @@
 import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
 import com.android.systemui.statusbar.policy.AccessibilityController;
 import com.android.systemui.statusbar.policy.ConfigurationController;
+import com.android.systemui.statusbar.policy.KeyguardStateController;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -71,6 +73,12 @@
     private KeyguardBypassController mKeyguardBypassController;
     @Mock
     private DockManager mDockManager;
+    @Mock
+    private KeyguardStateController mKeyguardStateController;
+    @Mock
+    private Resources mResources;
+    @Mock
+    private HeadsUpManagerPhone mHeadsUpManagerPhone;
 
 
     @Before
@@ -81,7 +89,8 @@
                 mLockscreenGestureLogger, mKeyguardUpdateMonitor, mLockPatternUtils,
                 mShadeController, mAccessibilityController, mKeyguardIndicationController,
                 mStatusBarStateController, mConfigurationController, mNotificationWakeUpCoordinator,
-                mKeyguardBypassController, mDockManager);
+                mKeyguardBypassController, mDockManager, mKeyguardStateController, mResources,
+                mHeadsUpManagerPhone);
 
         mLockIconController.attach(mLockIcon);
     }
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java
index cddbb9f..6a9e096 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java
@@ -45,13 +45,13 @@
 import android.provider.Settings.Global;
 import android.telephony.CdmaEriInformation;
 import android.telephony.CellSignalStrength;
-import android.telephony.DisplayInfo;
 import android.telephony.NetworkRegistrationInfo;
 import android.telephony.PhoneStateListener;
 import android.telephony.ServiceState;
 import android.telephony.SignalStrength;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyDisplayInfo;
 import android.telephony.TelephonyManager;
 import android.testing.TestableLooper;
 import android.testing.TestableResources;
@@ -97,7 +97,7 @@
     protected PhoneStateListener mPhoneStateListener;
     protected SignalStrength mSignalStrength;
     protected ServiceState mServiceState;
-    protected DisplayInfo mDisplayInfo;
+    protected TelephonyDisplayInfo mTelephonyDisplayInfo;
     protected NetworkRegistrationInfo mFakeRegInfo;
     protected ConnectivityManager mMockCm;
     protected WifiManager mMockWm;
@@ -161,7 +161,7 @@
 
         mSignalStrength = mock(SignalStrength.class);
         mServiceState = mock(ServiceState.class);
-        mDisplayInfo = mock(DisplayInfo.class);
+        mTelephonyDisplayInfo = mock(TelephonyDisplayInfo.class);
 
         mFakeRegInfo = new NetworkRegistrationInfo.Builder()
                 .setTransportType(TRANSPORT_TYPE_WWAN)
@@ -170,8 +170,8 @@
                 .build();
         doReturn(mFakeRegInfo).when(mServiceState)
                 .getNetworkRegistrationInfo(DOMAIN_PS, TRANSPORT_TYPE_WWAN);
-        doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mDisplayInfo).getNetworkType();
-        doReturn(DisplayInfo.OVERRIDE_NETWORK_TYPE_NONE).when(mDisplayInfo)
+        doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mTelephonyDisplayInfo).getNetworkType();
+        doReturn(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE).when(mTelephonyDisplayInfo)
                 .getOverrideNetworkType();
 
         mEriInformation = new CdmaEriInformation(CdmaEriInformation.ERI_OFF,
@@ -348,7 +348,7 @@
     protected void updateServiceState() {
         Log.d(TAG, "Sending Service State: " + mServiceState);
         mPhoneStateListener.onServiceStateChanged(mServiceState);
-        mPhoneStateListener.onDisplayInfoChanged(mDisplayInfo);
+        mPhoneStateListener.onDisplayInfoChanged(mTelephonyDisplayInfo);
     }
 
     public void updateCallState(int state) {
@@ -364,7 +364,7 @@
                 .build();
         when(mServiceState.getNetworkRegistrationInfo(DOMAIN_PS, TRANSPORT_TYPE_WWAN))
                 .thenReturn(fakeRegInfo);
-        when(mDisplayInfo.getNetworkType()).thenReturn(dataNetType);
+        when(mTelephonyDisplayInfo.getNetworkType()).thenReturn(dataNetType);
         mPhoneStateListener.onDataConnectionStateChanged(dataState, dataNetType);
     }
 
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java
index d8b6aac..75f2619 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java
@@ -235,7 +235,7 @@
                 .build();
         when(mServiceState.getNetworkRegistrationInfo(DOMAIN_PS, TRANSPORT_TYPE_WWAN))
                 .thenReturn(fakeRegInfo);
-        when(mDisplayInfo.getNetworkType()).thenReturn(TelephonyManager.NETWORK_TYPE_HSPA);
+        when(mTelephonyDisplayInfo.getNetworkType()).thenReturn(TelephonyManager.NETWORK_TYPE_HSPA);
         updateServiceState();
         verifyDataIndicators(TelephonyIcons.ICON_H);
     }
diff --git a/packages/Tethering/Android.bp b/packages/Tethering/Android.bp
index 0c37235..190b443 100644
--- a/packages/Tethering/Android.bp
+++ b/packages/Tethering/Android.bp
@@ -16,9 +16,7 @@
 
 java_defaults {
     name: "TetheringAndroidLibraryDefaults",
-    // TODO (b/146757305): change to module API once available
-    // TODO (b/148190005): change to module-libs-api-stubs-current once it is ready.
-    sdk_version: "core_platform",
+    sdk_version: "module_current",
     srcs: [
         "src/**/*.java",
         ":framework-tethering-shared-srcs",
@@ -35,15 +33,10 @@
         "net-utils-framework-common",
     ],
     libs: [
-        // Order matters: framework-tethering needs to be before the system stubs, otherwise
-        // hidden fields in the framework-tethering classes (which are also used to generate stubs)
-        // will not be found.
         "framework-tethering",
-        "android_system_stubs_current",
-        "framework-res",
+        "framework-telephony-stubs",
+        "framework-wifi-stubs-systemapi",
         "unsupportedappusage",
-        "android_system_stubs_current",
-        "framework-res",
     ],
     plugins: ["java_api_finder"],
     manifest: "AndroidManifestBase.xml",
@@ -91,9 +84,7 @@
 // Common defaults for compiling the actual APK.
 java_defaults {
     name: "TetheringAppDefaults",
-    // TODO (b/146757305): change to module API once available
-    // TODO (b/148190005): change to module-libs-api-stubs-current once it is ready.
-    sdk_version: "core_platform",
+    sdk_version: "module_current",
     privileged: true,
     jni_libs: [
         "libtetherutilsjni",
@@ -102,12 +93,7 @@
         "res",
     ],
     libs: [
-        // Order matters: framework-tethering needs to be before the system stubs, otherwise
-        // hidden fields in the framework-tethering classes (which are also used to generate stubs)
-        // will not be found.
         "framework-tethering",
-        "android_system_stubs_current",
-        "framework-res",
     ],
     jarjar_rules: "jarjar-rules.txt",
     optimize: {
diff --git a/packages/Tethering/AndroidManifest.xml b/packages/Tethering/AndroidManifest.xml
index c71d0d7..9328611 100644
--- a/packages/Tethering/AndroidManifest.xml
+++ b/packages/Tethering/AndroidManifest.xml
@@ -27,7 +27,7 @@
          added to the privileged permissions whitelist for that package. -->
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.BLUETOOTH" />
-    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
+    <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
     <uses-permission android:name="android.permission.BROADCAST_STICKY" />
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
     <uses-permission android:name="android.permission.MANAGE_USB" />
diff --git a/packages/Tethering/common/TetheringLib/Android.bp b/packages/Tethering/common/TetheringLib/Android.bp
index 2fbba68..31c40d2 100644
--- a/packages/Tethering/common/TetheringLib/Android.bp
+++ b/packages/Tethering/common/TetheringLib/Android.bp
@@ -60,16 +60,12 @@
     hostdex: true, // for hiddenapi check
     visibility: ["//frameworks/base/packages/Tethering:__subpackages__"],
     apex_available: ["com.android.tethering"],
+    permitted_packages: ["android.net"],
 }
 
 stubs_defaults {
     name: "framework-tethering-stubs-defaults",
-    srcs: [
-        "src/android/net/TetheredClient.java",
-        "src/android/net/TetheringManager.java",
-        "src/android/net/TetheringConstants.java",
-    ],
-    libs: ["tethering-aidl-interfaces-java"],
+    srcs: [":framework-tethering-srcs"],
 }
 
 filegroup {
@@ -125,17 +121,17 @@
 java_library {
     name: "framework-tethering-stubs-publicapi",
     srcs: [":framework-tethering-stubs-srcs-publicapi"],
-    sdk_version: "current",
+    defaults: ["framework-module-stubs-lib-defaults-publicapi"],
 }
 
 java_library {
     name: "framework-tethering-stubs-systemapi",
     srcs: [":framework-tethering-stubs-srcs-systemapi"],
-    sdk_version: "system_current",
+    defaults: ["framework-module-stubs-lib-defaults-systemapi"],
 }
 
 java_library {
     name: "framework-tethering-stubs-module_libs_api",
     srcs: [":framework-tethering-stubs-srcs-module_libs_api"],
-    sdk_version: "module_current",
+    defaults: ["framework-module-stubs-lib-defaults-systemapi"],
 }
diff --git a/packages/Tethering/common/TetheringLib/api/module-lib-current.txt b/packages/Tethering/common/TetheringLib/api/module-lib-current.txt
index e25d77d..754584e 100644
--- a/packages/Tethering/common/TetheringLib/api/module-lib-current.txt
+++ b/packages/Tethering/common/TetheringLib/api/module-lib-current.txt
@@ -62,19 +62,20 @@
     field public static final int TETHERING_WIFI = 0; // 0x0
     field public static final int TETHERING_WIFI_P2P = 3; // 0x3
     field public static final int TETHER_ERROR_DHCPSERVER_ERROR = 12; // 0xc
-    field public static final int TETHER_ERROR_DISABLE_NAT_ERROR = 9; // 0x9
-    field public static final int TETHER_ERROR_ENABLE_NAT_ERROR = 8; // 0x8
+    field public static final int TETHER_ERROR_DISABLE_FORWARDING_ERROR = 9; // 0x9
+    field public static final int TETHER_ERROR_ENABLE_FORWARDING_ERROR = 8; // 0x8
     field public static final int TETHER_ERROR_ENTITLEMENT_UNKNOWN = 13; // 0xd
     field public static final int TETHER_ERROR_IFACE_CFG_ERROR = 10; // 0xa
-    field public static final int TETHER_ERROR_MASTER_ERROR = 5; // 0x5
+    field public static final int TETHER_ERROR_INTERNAL_ERROR = 5; // 0x5
     field public static final int TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION = 15; // 0xf
     field public static final int TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION = 14; // 0xe
     field public static final int TETHER_ERROR_NO_ERROR = 0; // 0x0
-    field public static final int TETHER_ERROR_PROVISION_FAILED = 11; // 0xb
+    field public static final int TETHER_ERROR_PROVISIONING_FAILED = 11; // 0xb
     field public static final int TETHER_ERROR_SERVICE_UNAVAIL = 2; // 0x2
     field public static final int TETHER_ERROR_TETHER_IFACE_ERROR = 6; // 0x6
     field public static final int TETHER_ERROR_UNAVAIL_IFACE = 4; // 0x4
     field public static final int TETHER_ERROR_UNKNOWN_IFACE = 1; // 0x1
+    field public static final int TETHER_ERROR_UNKNOWN_TYPE = 16; // 0x10
     field public static final int TETHER_ERROR_UNSUPPORTED = 3; // 0x3
     field public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR = 7; // 0x7
     field public static final int TETHER_HARDWARE_OFFLOAD_FAILED = 2; // 0x2
@@ -86,40 +87,42 @@
     method public void onTetheringEntitlementResult(int);
   }
 
-  public abstract static class TetheringManager.StartTetheringCallback {
-    ctor public TetheringManager.StartTetheringCallback();
-    method public void onTetheringFailed(int);
-    method public void onTetheringStarted();
+  public static interface TetheringManager.StartTetheringCallback {
+    method public default void onTetheringFailed(int);
+    method public default void onTetheringStarted();
   }
 
-  public abstract static class TetheringManager.TetheringEventCallback {
-    ctor public TetheringManager.TetheringEventCallback();
-    method public void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
-    method public void onError(@NonNull String, int);
-    method public void onOffloadStatusChanged(int);
-    method @Deprecated public void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps);
-    method public void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
-    method public void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
-    method public void onTetheringSupported(boolean);
-    method public void onUpstreamChanged(@Nullable android.net.Network);
+  public static interface TetheringManager.TetheringEventCallback {
+    method public default void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
+    method public default void onError(@NonNull String, int);
+    method public default void onOffloadStatusChanged(int);
+    method public default void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps);
+    method public default void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
+    method public default void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
+    method public default void onTetheringSupported(boolean);
+    method public default void onUpstreamChanged(@Nullable android.net.Network);
   }
 
-  @Deprecated public static class TetheringManager.TetheringInterfaceRegexps {
-    ctor @Deprecated public TetheringManager.TetheringInterfaceRegexps(@NonNull String[], @NonNull String[], @NonNull String[]);
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableBluetoothRegexs();
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableUsbRegexs();
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
+  public static class TetheringManager.TetheringInterfaceRegexps {
+    method @NonNull public java.util.List<java.lang.String> getTetherableBluetoothRegexs();
+    method @NonNull public java.util.List<java.lang.String> getTetherableUsbRegexs();
+    method @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
   }
 
   public static class TetheringManager.TetheringRequest {
+    method @Nullable public android.net.LinkAddress getClientStaticIpv4Address();
+    method @Nullable public android.net.LinkAddress getLocalIpv4Address();
+    method public boolean getShouldShowEntitlementUi();
+    method public int getTetheringType();
+    method public boolean isExemptFromEntitlementCheck();
   }
 
   public static class TetheringManager.TetheringRequest.Builder {
     ctor public TetheringManager.TetheringRequest.Builder(int);
     method @NonNull public android.net.TetheringManager.TetheringRequest build();
     method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setExemptFromEntitlementCheck(boolean);
-    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setSilentProvisioning(boolean);
-    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder useStaticIpv4Addresses(@NonNull android.net.LinkAddress);
+    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setShouldShowEntitlementUi(boolean);
+    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setStaticIpv4Addresses(@NonNull android.net.LinkAddress, @NonNull android.net.LinkAddress);
   }
 
 }
diff --git a/packages/Tethering/common/TetheringLib/api/system-current.txt b/packages/Tethering/common/TetheringLib/api/system-current.txt
index d6fcb62..edd1ebb 100644
--- a/packages/Tethering/common/TetheringLib/api/system-current.txt
+++ b/packages/Tethering/common/TetheringLib/api/system-current.txt
@@ -23,7 +23,6 @@
     method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.TetheringEventCallback);
     method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void requestLatestTetheringEntitlementResult(int, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.OnTetheringEntitlementResultListener);
     method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(@NonNull android.net.TetheringManager.TetheringRequest, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
-    method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void startTethering(int, @NonNull java.util.concurrent.Executor, @NonNull android.net.TetheringManager.StartTetheringCallback);
     method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopAllTethering();
     method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.WRITE_SETTINGS}) public void stopTethering(int);
     method @RequiresPermission(anyOf={android.Manifest.permission.TETHER_PRIVILEGED, android.Manifest.permission.ACCESS_NETWORK_STATE}) public void unregisterTetheringEventCallback(@NonNull android.net.TetheringManager.TetheringEventCallback);
@@ -40,19 +39,20 @@
     field public static final int TETHERING_WIFI = 0; // 0x0
     field public static final int TETHERING_WIFI_P2P = 3; // 0x3
     field public static final int TETHER_ERROR_DHCPSERVER_ERROR = 12; // 0xc
-    field public static final int TETHER_ERROR_DISABLE_NAT_ERROR = 9; // 0x9
-    field public static final int TETHER_ERROR_ENABLE_NAT_ERROR = 8; // 0x8
+    field public static final int TETHER_ERROR_DISABLE_FORWARDING_ERROR = 9; // 0x9
+    field public static final int TETHER_ERROR_ENABLE_FORWARDING_ERROR = 8; // 0x8
     field public static final int TETHER_ERROR_ENTITLEMENT_UNKNOWN = 13; // 0xd
     field public static final int TETHER_ERROR_IFACE_CFG_ERROR = 10; // 0xa
-    field public static final int TETHER_ERROR_MASTER_ERROR = 5; // 0x5
+    field public static final int TETHER_ERROR_INTERNAL_ERROR = 5; // 0x5
     field public static final int TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION = 15; // 0xf
     field public static final int TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION = 14; // 0xe
     field public static final int TETHER_ERROR_NO_ERROR = 0; // 0x0
-    field public static final int TETHER_ERROR_PROVISION_FAILED = 11; // 0xb
+    field public static final int TETHER_ERROR_PROVISIONING_FAILED = 11; // 0xb
     field public static final int TETHER_ERROR_SERVICE_UNAVAIL = 2; // 0x2
     field public static final int TETHER_ERROR_TETHER_IFACE_ERROR = 6; // 0x6
     field public static final int TETHER_ERROR_UNAVAIL_IFACE = 4; // 0x4
     field public static final int TETHER_ERROR_UNKNOWN_IFACE = 1; // 0x1
+    field public static final int TETHER_ERROR_UNKNOWN_TYPE = 16; // 0x10
     field public static final int TETHER_ERROR_UNSUPPORTED = 3; // 0x3
     field public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR = 7; // 0x7
     field public static final int TETHER_HARDWARE_OFFLOAD_FAILED = 2; // 0x2
@@ -64,40 +64,35 @@
     method public void onTetheringEntitlementResult(int);
   }
 
-  public abstract static class TetheringManager.StartTetheringCallback {
-    ctor public TetheringManager.StartTetheringCallback();
-    method public void onTetheringFailed(int);
-    method public void onTetheringStarted();
+  public static interface TetheringManager.StartTetheringCallback {
+    method public default void onTetheringFailed(int);
+    method public default void onTetheringStarted();
   }
 
-  public abstract static class TetheringManager.TetheringEventCallback {
-    ctor public TetheringManager.TetheringEventCallback();
-    method public void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
-    method public void onError(@NonNull String, int);
-    method public void onOffloadStatusChanged(int);
-    method @Deprecated public void onTetherableInterfaceRegexpsChanged(@NonNull android.net.TetheringManager.TetheringInterfaceRegexps);
-    method public void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
-    method public void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
-    method public void onTetheringSupported(boolean);
-    method public void onUpstreamChanged(@Nullable android.net.Network);
-  }
-
-  @Deprecated public static class TetheringManager.TetheringInterfaceRegexps {
-    ctor @Deprecated public TetheringManager.TetheringInterfaceRegexps(@NonNull String[], @NonNull String[], @NonNull String[]);
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableBluetoothRegexs();
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableUsbRegexs();
-    method @Deprecated @NonNull public java.util.List<java.lang.String> getTetherableWifiRegexs();
+  public static interface TetheringManager.TetheringEventCallback {
+    method public default void onClientsChanged(@NonNull java.util.Collection<android.net.TetheredClient>);
+    method public default void onError(@NonNull String, int);
+    method public default void onOffloadStatusChanged(int);
+    method public default void onTetherableInterfacesChanged(@NonNull java.util.List<java.lang.String>);
+    method public default void onTetheredInterfacesChanged(@NonNull java.util.List<java.lang.String>);
+    method public default void onTetheringSupported(boolean);
+    method public default void onUpstreamChanged(@Nullable android.net.Network);
   }
 
   public static class TetheringManager.TetheringRequest {
+    method @Nullable public android.net.LinkAddress getClientStaticIpv4Address();
+    method @Nullable public android.net.LinkAddress getLocalIpv4Address();
+    method public boolean getShouldShowEntitlementUi();
+    method public int getTetheringType();
+    method public boolean isExemptFromEntitlementCheck();
   }
 
   public static class TetheringManager.TetheringRequest.Builder {
     ctor public TetheringManager.TetheringRequest.Builder(int);
     method @NonNull public android.net.TetheringManager.TetheringRequest build();
     method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setExemptFromEntitlementCheck(boolean);
-    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setSilentProvisioning(boolean);
-    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder useStaticIpv4Addresses(@NonNull android.net.LinkAddress);
+    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setShouldShowEntitlementUi(boolean);
+    method @NonNull @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public android.net.TetheringManager.TetheringRequest.Builder setStaticIpv4Addresses(@NonNull android.net.LinkAddress, @NonNull android.net.LinkAddress);
   }
 
 }
diff --git a/packages/Tethering/common/TetheringLib/src/android/net/TetheringManager.java b/packages/Tethering/common/TetheringLib/src/android/net/TetheringManager.java
index 7f831ce..3509801 100644
--- a/packages/Tethering/common/TetheringLib/src/android/net/TetheringManager.java
+++ b/packages/Tethering/common/TetheringLib/src/android/net/TetheringManager.java
@@ -115,6 +115,19 @@
      */
     public static final String EXTRA_ERRORED_TETHER = "erroredArray";
 
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(flag = false, value = {
+            TETHERING_WIFI,
+            TETHERING_USB,
+            TETHERING_BLUETOOTH,
+            TETHERING_WIFI_P2P,
+            TETHERING_NCM,
+            TETHERING_ETHERNET,
+    })
+    public @interface TetheringType {
+    }
+
     /**
      * Invalid tethering type.
      * @see #startTethering.
@@ -158,22 +171,60 @@
      */
     public static final int TETHERING_ETHERNET = 5;
 
-    public static final int TETHER_ERROR_NO_ERROR           = 0;
-    public static final int TETHER_ERROR_UNKNOWN_IFACE      = 1;
-    public static final int TETHER_ERROR_SERVICE_UNAVAIL    = 2;
-    public static final int TETHER_ERROR_UNSUPPORTED        = 3;
-    public static final int TETHER_ERROR_UNAVAIL_IFACE      = 4;
-    public static final int TETHER_ERROR_MASTER_ERROR       = 5;
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(value = {
+            TETHER_ERROR_NO_ERROR,
+            TETHER_ERROR_PROVISIONING_FAILED,
+            TETHER_ERROR_ENTITLEMENT_UNKNOWN,
+    })
+    public @interface EntitlementResult {
+    }
+
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(value = {
+            TETHER_ERROR_NO_ERROR,
+            TETHER_ERROR_UNKNOWN_IFACE,
+            TETHER_ERROR_SERVICE_UNAVAIL,
+            TETHER_ERROR_INTERNAL_ERROR,
+            TETHER_ERROR_TETHER_IFACE_ERROR,
+            TETHER_ERROR_ENABLE_FORWARDING_ERROR,
+            TETHER_ERROR_DISABLE_FORWARDING_ERROR,
+            TETHER_ERROR_IFACE_CFG_ERROR,
+            TETHER_ERROR_DHCPSERVER_ERROR,
+    })
+    public @interface TetheringIfaceError {
+    }
+
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(value = {
+            TETHER_ERROR_SERVICE_UNAVAIL,
+            TETHER_ERROR_INTERNAL_ERROR,
+            TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION,
+            TETHER_ERROR_UNKNOWN_TYPE,
+    })
+    public @interface StartTetheringError {
+    }
+
+    public static final int TETHER_ERROR_NO_ERROR = 0;
+    public static final int TETHER_ERROR_UNKNOWN_IFACE = 1;
+    public static final int TETHER_ERROR_SERVICE_UNAVAIL = 2;
+    public static final int TETHER_ERROR_UNSUPPORTED = 3;
+    public static final int TETHER_ERROR_UNAVAIL_IFACE = 4;
+    public static final int TETHER_ERROR_INTERNAL_ERROR = 5;
     public static final int TETHER_ERROR_TETHER_IFACE_ERROR = 6;
     public static final int TETHER_ERROR_UNTETHER_IFACE_ERROR = 7;
-    public static final int TETHER_ERROR_ENABLE_NAT_ERROR     = 8;
-    public static final int TETHER_ERROR_DISABLE_NAT_ERROR    = 9;
-    public static final int TETHER_ERROR_IFACE_CFG_ERROR      = 10;
-    public static final int TETHER_ERROR_PROVISION_FAILED     = 11;
-    public static final int TETHER_ERROR_DHCPSERVER_ERROR     = 12;
+    public static final int TETHER_ERROR_ENABLE_FORWARDING_ERROR = 8;
+    public static final int TETHER_ERROR_DISABLE_FORWARDING_ERROR = 9;
+    public static final int TETHER_ERROR_IFACE_CFG_ERROR = 10;
+    public static final int TETHER_ERROR_PROVISIONING_FAILED = 11;
+    public static final int TETHER_ERROR_DHCPSERVER_ERROR = 12;
     public static final int TETHER_ERROR_ENTITLEMENT_UNKNOWN = 13;
     public static final int TETHER_ERROR_NO_CHANGE_TETHERING_PERMISSION = 14;
     public static final int TETHER_ERROR_NO_ACCESS_TETHERING_PERMISSION = 15;
+    public static final int TETHER_ERROR_UNKNOWN_TYPE = 16;
 
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
@@ -508,23 +559,40 @@
             private final TetheringRequestParcel mBuilderParcel;
 
             /** Default constructor of Builder. */
-            public Builder(final int type) {
+            public Builder(@TetheringType final int type) {
                 mBuilderParcel = new TetheringRequestParcel();
                 mBuilderParcel.tetheringType = type;
                 mBuilderParcel.localIPv4Address = null;
+                mBuilderParcel.staticClientAddress = null;
                 mBuilderParcel.exemptFromEntitlementCheck = false;
                 mBuilderParcel.showProvisioningUi = true;
             }
 
             /**
-             * Configure tethering with static IPv4 assignment (with DHCP disabled).
+             * Configure tethering with static IPv4 assignment.
              *
-             * @param localIPv4Address The preferred local IPv4 address to use.
+             * The clientAddress must be in the localIPv4Address prefix. A DHCP server will be
+             * started, but will only be able to offer the client address. The two addresses must
+             * be in the same prefix.
+             *
+             * @param localIPv4Address The preferred local IPv4 link address to use.
+             * @param clientAddress The static client address.
              */
             @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED)
             @NonNull
-            public Builder useStaticIpv4Addresses(@NonNull final LinkAddress localIPv4Address) {
+            public Builder setStaticIpv4Addresses(@NonNull final LinkAddress localIPv4Address,
+                    @NonNull final LinkAddress clientAddress) {
+                Objects.requireNonNull(localIPv4Address);
+                Objects.requireNonNull(clientAddress);
+                if (localIPv4Address.getPrefixLength() != clientAddress.getPrefixLength()
+                        || !localIPv4Address.isIpv4() || !clientAddress.isIpv4()
+                        || !new IpPrefix(localIPv4Address.toString()).equals(
+                        new IpPrefix(clientAddress.toString()))) {
+                    throw new IllegalArgumentException("Invalid server or client addresses");
+                }
+
                 mBuilderParcel.localIPv4Address = localIPv4Address;
+                mBuilderParcel.staticClientAddress = clientAddress;
                 return this;
             }
 
@@ -536,11 +604,14 @@
                 return this;
             }
 
-            /** Start tethering without showing the provisioning UI. */
+            /**
+             * If an entitlement check is needed, sets whether to show the entitlement UI or to
+             * perform a silent entitlement check. By default, the entitlement UI is shown.
+             */
             @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED)
             @NonNull
-            public Builder setSilentProvisioning(boolean silent) {
-                mBuilderParcel.showProvisioningUi = silent;
+            public Builder setShouldShowEntitlementUi(boolean showUi) {
+                mBuilderParcel.showProvisioningUi = showUi;
                 return this;
             }
 
@@ -552,6 +623,40 @@
         }
 
         /**
+         * Get the local IPv4 address, if one was configured with
+         * {@link Builder#setStaticIpv4Addresses}.
+         */
+        @Nullable
+        public LinkAddress getLocalIpv4Address() {
+            return mRequestParcel.localIPv4Address;
+        }
+
+        /**
+         * Get the static IPv4 address of the client, if one was configured with
+         * {@link Builder#setStaticIpv4Addresses}.
+         */
+        @Nullable
+        public LinkAddress getClientStaticIpv4Address() {
+            return mRequestParcel.staticClientAddress;
+        }
+
+        /** Get tethering type. */
+        @TetheringType
+        public int getTetheringType() {
+            return mRequestParcel.tetheringType;
+        }
+
+        /** Check if exempt from entitlement check. */
+        public boolean isExemptFromEntitlementCheck() {
+            return mRequestParcel.exemptFromEntitlementCheck;
+        }
+
+        /** Check if show entitlement ui.  */
+        public boolean getShouldShowEntitlementUi() {
+            return mRequestParcel.showProvisioningUi;
+        }
+
+        /**
          * Get a TetheringRequestParcel from the configuration
          * @hide
          */
@@ -563,6 +668,7 @@
         public String toString() {
             return "TetheringRequest [ type= " + mRequestParcel.tetheringType
                     + ", localIPv4Address= " + mRequestParcel.localIPv4Address
+                    + ", staticClientAddress= " + mRequestParcel.staticClientAddress
                     + ", exemptFromEntitlementCheck= "
                     + mRequestParcel.exemptFromEntitlementCheck + ", showProvisioningUi= "
                     + mRequestParcel.showProvisioningUi + " ]";
@@ -572,18 +678,18 @@
     /**
      * Callback for use with {@link #startTethering} to find out whether tethering succeeded.
      */
-    public abstract static class StartTetheringCallback {
+    public interface StartTetheringCallback {
         /**
          * Called when tethering has been successfully started.
          */
-        public void onTetheringStarted() {}
+        default void onTetheringStarted() {}
 
         /**
          * Called when starting tethering failed.
          *
-         * @param resultCode One of the {@code TETHER_ERROR_*} constants.
+         * @param error The error that caused the failure.
          */
-        public void onTetheringFailed(final int resultCode) {}
+        default void onTetheringFailed(@StartTetheringError final int error) {}
     }
 
     /**
@@ -633,11 +739,13 @@
      * @param type The tethering type, on of the {@code TetheringManager#TETHERING_*} constants.
      * @param executor {@link Executor} to specify the thread upon which the callback of
      *         TetheringRequest will be invoked.
+     * @hide
      */
     @RequiresPermission(anyOf = {
             android.Manifest.permission.TETHER_PRIVILEGED,
             android.Manifest.permission.WRITE_SETTINGS
     })
+    @SystemApi(client = MODULE_LIBRARIES)
     public void startTethering(int type, @NonNull final Executor executor,
             @NonNull final StartTetheringCallback callback) {
         startTethering(new TetheringRequest.Builder(type).build(), executor, callback);
@@ -654,7 +762,7 @@
             android.Manifest.permission.TETHER_PRIVILEGED,
             android.Manifest.permission.WRITE_SETTINGS
     })
-    public void stopTethering(final int type) {
+    public void stopTethering(@TetheringType final int type) {
         final String callerPkg = mContext.getOpPackageName();
         Log.i(TAG, "stopTethering caller:" + callerPkg);
 
@@ -679,10 +787,10 @@
          *
          * @param resultCode an int value of entitlement result. It may be one of
          *         {@link #TETHER_ERROR_NO_ERROR},
-         *         {@link #TETHER_ERROR_PROVISION_FAILED}, or
+         *         {@link #TETHER_ERROR_PROVISIONING_FAILED}, or
          *         {@link #TETHER_ERROR_ENTITLEMENT_UNKNOWN}.
          */
-        void onTetheringEntitlementResult(int resultCode);
+        void onTetheringEntitlementResult(@EntitlementResult int result);
     }
 
     /**
@@ -697,7 +805,8 @@
      * fail if a tethering entitlement check is required.
      *
      * @param type the downstream type of tethering. Must be one of {@code #TETHERING_*} constants.
-     * @param showEntitlementUi a boolean indicating whether to run UI-based entitlement check.
+     * @param showEntitlementUi a boolean indicating whether to check result for the UI-based
+     *         entitlement check or the silent entitlement check.
      * @param executor the executor on which callback will be invoked.
      * @param listener an {@link OnTetheringEntitlementResultListener} which will be called to
      *         notify the caller of the result of entitlement check. The listener may be called zero
@@ -707,7 +816,8 @@
             android.Manifest.permission.TETHER_PRIVILEGED,
             android.Manifest.permission.WRITE_SETTINGS
     })
-    public void requestLatestTetheringEntitlementResult(int type, boolean showEntitlementUi,
+    public void requestLatestTetheringEntitlementResult(@TetheringType int type,
+            boolean showEntitlementUi,
             @NonNull Executor executor,
             @NonNull final OnTetheringEntitlementResultListener listener) {
         if (listener == null) {
@@ -736,7 +846,7 @@
      */
     // TODO: improve the usage of ResultReceiver, b/145096122
     @SystemApi(client = MODULE_LIBRARIES)
-    public void requestLatestTetheringEntitlementResult(final int type,
+    public void requestLatestTetheringEntitlementResult(@TetheringType final int type,
             @NonNull final ResultReceiver receiver, final boolean showEntitlementUi) {
         final String callerPkg = mContext.getOpPackageName();
         Log.i(TAG, "getLatestTetheringEntitlementResult caller:" + callerPkg);
@@ -749,7 +859,7 @@
      * Callback for use with {@link registerTetheringEventCallback} to find out tethering
      * upstream status.
      */
-    public abstract static class TetheringEventCallback {
+    public interface TetheringEventCallback {
         /**
          * Called when tethering supported status changed.
          *
@@ -761,7 +871,7 @@
          *
          * @param supported The new supported status
          */
-        public void onTetheringSupported(boolean supported) {}
+        default void onTetheringSupported(boolean supported) {}
 
         /**
          * Called when tethering upstream changed.
@@ -772,7 +882,7 @@
          * @param network the {@link Network} of tethering upstream. Null means tethering doesn't
          * have any upstream.
          */
-        public void onUpstreamChanged(@Nullable Network network) {}
+        default void onUpstreamChanged(@Nullable Network network) {}
 
         /**
          * Called when there was a change in tethering interface regular expressions.
@@ -780,28 +890,30 @@
          * <p>This will be called immediately after the callback is registered, and may be called
          * multiple times later upon changes.
          * @param reg The new regular expressions.
-         * @deprecated Referencing interfaces by regular expressions is a deprecated mechanism.
+         *
+         * @hide
          */
-        @Deprecated
-        public void onTetherableInterfaceRegexpsChanged(@NonNull TetheringInterfaceRegexps reg) {}
+        @SystemApi(client = MODULE_LIBRARIES)
+        default void onTetherableInterfaceRegexpsChanged(@NonNull TetheringInterfaceRegexps reg) {}
 
         /**
-         * Called when there was a change in the list of tetherable interfaces.
+         * Called when there was a change in the list of tetherable interfaces. Tetherable
+         * interface means this interface is available and can be used for tethering.
          *
          * <p>This will be called immediately after the callback is registered, and may be called
          * multiple times later upon changes.
-         * @param interfaces The list of tetherable interfaces.
+         * @param interfaces The list of tetherable interface names.
          */
-        public void onTetherableInterfacesChanged(@NonNull List<String> interfaces) {}
+        default void onTetherableInterfacesChanged(@NonNull List<String> interfaces) {}
 
         /**
          * Called when there was a change in the list of tethered interfaces.
          *
          * <p>This will be called immediately after the callback is registered, and may be called
          * multiple times later upon changes.
-         * @param interfaces The list of tethered interfaces.
+         * @param interfaces The list of 0 or more String of currently tethered interface names.
          */
-        public void onTetheredInterfacesChanged(@NonNull List<String> interfaces) {}
+        default void onTetheredInterfacesChanged(@NonNull List<String> interfaces) {}
 
         /**
          * Called when an error occurred configuring tethering.
@@ -811,7 +923,7 @@
          * @param ifName Name of the interface.
          * @param error One of {@code TetheringManager#TETHER_ERROR_*}.
          */
-        public void onError(@NonNull String ifName, int error) {}
+        default void onError(@NonNull String ifName, @TetheringIfaceError int error) {}
 
         /**
          * Called when the list of tethered clients changes.
@@ -824,7 +936,7 @@
          * determine if they are still connected.
          * @param clients The new set of tethered clients; the collection is not ordered.
          */
-        public void onClientsChanged(@NonNull Collection<TetheredClient> clients) {}
+        default void onClientsChanged(@NonNull Collection<TetheredClient> clients) {}
 
         /**
          * Called when tethering offload status changes.
@@ -832,19 +944,20 @@
          * <p>This will be called immediately after the callback is registered.
          * @param status The offload status.
          */
-        public void onOffloadStatusChanged(@TetherOffloadStatus int status) {}
+        default void onOffloadStatusChanged(@TetherOffloadStatus int status) {}
     }
 
     /**
      * Regular expressions used to identify tethering interfaces.
-     * @deprecated Referencing interfaces by regular expressions is a deprecated mechanism.
+     * @hide
      */
-    @Deprecated
+    @SystemApi(client = MODULE_LIBRARIES)
     public static class TetheringInterfaceRegexps {
         private final String[] mTetherableBluetoothRegexs;
         private final String[] mTetherableUsbRegexs;
         private final String[] mTetherableWifiRegexs;
 
+        /** @hide */
         public TetheringInterfaceRegexps(@NonNull String[] tetherableBluetoothRegexs,
                 @NonNull String[] tetherableUsbRegexs, @NonNull String[] tetherableWifiRegexs) {
             mTetherableBluetoothRegexs = tetherableBluetoothRegexs.clone();
diff --git a/packages/Tethering/common/TetheringLib/src/android/net/TetheringRequestParcel.aidl b/packages/Tethering/common/TetheringLib/src/android/net/TetheringRequestParcel.aidl
index bf19d85..c0280d3 100644
--- a/packages/Tethering/common/TetheringLib/src/android/net/TetheringRequestParcel.aidl
+++ b/packages/Tethering/common/TetheringLib/src/android/net/TetheringRequestParcel.aidl
@@ -25,6 +25,7 @@
 parcelable TetheringRequestParcel {
     int tetheringType;
     LinkAddress localIPv4Address;
+    LinkAddress staticClientAddress;
     boolean exemptFromEntitlementCheck;
     boolean showProvisioningUi;
 }
diff --git a/packages/Tethering/res/values-mcc204-mnc04/strings.xml b/packages/Tethering/res/values-mcc204-mnc04/strings.xml
new file mode 100644
index 0000000..a996b42
--- /dev/null
+++ b/packages/Tethering/res/values-mcc204-mnc04/strings.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <!-- String for no upstream notification title [CHAR LIMIT=200] -->
+    <string name="no_upstream_notification_title">Hotspot has no internet</string>
+    <!-- String for no upstream notification title [CHAR LIMIT=200] -->
+    <string name="no_upstream_notification_message">Devices can\u2019t connect to internet</string>
+    <!-- String for cellular roaming notification disable button [CHAR LIMIT=200]  -->
+    <string name="no_upstream_notification_disable_button">Turn off hotspot</string>
+
+    <!-- String for cellular roaming notification title [CHAR LIMIT=200]  -->
+    <string name="upstream_roaming_notification_title">Hotspot is on</string>
+    <!-- String for cellular roaming notification message [CHAR LIMIT=500]  -->
+    <string name="upstream_roaming_notification_message">Additional charges may apply while roaming</string>
+    <!-- String for cellular roaming notification continue button [CHAR LIMIT=200]  -->
+    <string name="upstream_roaming_notification_continue_button">Continue</string>
+</resources>
diff --git a/packages/Tethering/res/values-mcc310-mnc004/strings.xml b/packages/Tethering/res/values-mcc310-mnc004/strings.xml
new file mode 100644
index 0000000..a996b42
--- /dev/null
+++ b/packages/Tethering/res/values-mcc310-mnc004/strings.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <!-- String for no upstream notification title [CHAR LIMIT=200] -->
+    <string name="no_upstream_notification_title">Hotspot has no internet</string>
+    <!-- String for no upstream notification title [CHAR LIMIT=200] -->
+    <string name="no_upstream_notification_message">Devices can\u2019t connect to internet</string>
+    <!-- String for cellular roaming notification disable button [CHAR LIMIT=200]  -->
+    <string name="no_upstream_notification_disable_button">Turn off hotspot</string>
+
+    <!-- String for cellular roaming notification title [CHAR LIMIT=200]  -->
+    <string name="upstream_roaming_notification_title">Hotspot is on</string>
+    <!-- String for cellular roaming notification message [CHAR LIMIT=500]  -->
+    <string name="upstream_roaming_notification_message">Additional charges may apply while roaming</string>
+    <!-- String for cellular roaming notification continue button [CHAR LIMIT=200]  -->
+    <string name="upstream_roaming_notification_continue_button">Continue</string>
+</resources>
diff --git a/packages/Tethering/res/values-mcc310-mnc120/strings.xml b/packages/Tethering/res/values-mcc310-mnc120/strings.xml
new file mode 100644
index 0000000..618df90
--- /dev/null
+++ b/packages/Tethering/res/values-mcc310-mnc120/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- String for tethered notification title with client number info. -->
+    <plurals name="tethered_notification_title_with_client_number">
+        <item quantity="one"><xliff:g>%1$d</xliff:g> device connected.</item>
+        <item quantity="other"><xliff:g>%1$d</xliff:g> devices connected.</item>
+    </plurals>
+</resources>
\ No newline at end of file
diff --git a/packages/Tethering/res/values-mcc311-mnc480/strings.xml b/packages/Tethering/res/values-mcc311-mnc480/strings.xml
new file mode 100644
index 0000000..a996b42
--- /dev/null
+++ b/packages/Tethering/res/values-mcc311-mnc480/strings.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <!-- String for no upstream notification title [CHAR LIMIT=200] -->
+    <string name="no_upstream_notification_title">Hotspot has no internet</string>
+    <!-- String for no upstream notification title [CHAR LIMIT=200] -->
+    <string name="no_upstream_notification_message">Devices can\u2019t connect to internet</string>
+    <!-- String for cellular roaming notification disable button [CHAR LIMIT=200]  -->
+    <string name="no_upstream_notification_disable_button">Turn off hotspot</string>
+
+    <!-- String for cellular roaming notification title [CHAR LIMIT=200]  -->
+    <string name="upstream_roaming_notification_title">Hotspot is on</string>
+    <!-- String for cellular roaming notification message [CHAR LIMIT=500]  -->
+    <string name="upstream_roaming_notification_message">Additional charges may apply while roaming</string>
+    <!-- String for cellular roaming notification continue button [CHAR LIMIT=200]  -->
+    <string name="upstream_roaming_notification_continue_button">Continue</string>
+</resources>
diff --git a/packages/Tethering/res/values-mcc311-mnc490/strings.xml b/packages/Tethering/res/values-mcc311-mnc490/strings.xml
new file mode 100644
index 0000000..618df90
--- /dev/null
+++ b/packages/Tethering/res/values-mcc311-mnc490/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- String for tethered notification title with client number info. -->
+    <plurals name="tethered_notification_title_with_client_number">
+        <item quantity="one"><xliff:g>%1$d</xliff:g> device connected.</item>
+        <item quantity="other"><xliff:g>%1$d</xliff:g> devices connected.</item>
+    </plurals>
+</resources>
\ No newline at end of file
diff --git a/packages/Tethering/res/values-mcc312-mnc530/strings.xml b/packages/Tethering/res/values-mcc312-mnc530/strings.xml
new file mode 100644
index 0000000..618df90
--- /dev/null
+++ b/packages/Tethering/res/values-mcc312-mnc530/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- String for tethered notification title with client number info. -->
+    <plurals name="tethered_notification_title_with_client_number">
+        <item quantity="one"><xliff:g>%1$d</xliff:g> device connected.</item>
+        <item quantity="other"><xliff:g>%1$d</xliff:g> devices connected.</item>
+    </plurals>
+</resources>
\ No newline at end of file
diff --git a/packages/Tethering/res/values/strings.xml b/packages/Tethering/res/values/strings.xml
index ba98a66..52a1654 100644
--- a/packages/Tethering/res/values/strings.xml
+++ b/packages/Tethering/res/values/strings.xml
@@ -13,12 +13,15 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- Shown when the device is tethered -->
     <!-- String for tethered notification title [CHAR LIMIT=200] -->
     <string name="tethered_notification_title">Tethering or hotspot active</string>
     <!-- String for tethered notification message [CHAR LIMIT=200] -->
     <string name="tethered_notification_message">Tap to set up.</string>
+    <!-- String for tethered notification title with client number info. -->
+    <plurals name="tethered_notification_title_with_client_number">
+    </plurals>
 
     <!-- This notification is shown when tethering has been disabled on a user's device.
     The device is managed by the user's employer. Tethering can't be turned on unless the
@@ -32,4 +35,18 @@
     Internet" settings page. That is currently the tether_settings_title_all string. -->
     <!-- String for tether notification channel name [CHAR LIMIT=200] -->
     <string name="notification_channel_tethering_status">Hotspot &amp; tethering status</string>
-</resources>
\ No newline at end of file
+
+    <!-- String for no upstream notification title [CHAR LIMIT=200] -->
+    <string name="no_upstream_notification_title"></string>
+    <!-- String for no upstream notification message [CHAR LIMIT=200] -->
+    <string name="no_upstream_notification_message"></string>
+    <!-- String for cellular roaming notification disable button [CHAR LIMIT=200]  -->
+    <string name="no_upstream_notification_disable_button"></string>
+
+    <!-- String for cellular roaming notification title [CHAR LIMIT=200]  -->
+    <string name="upstream_roaming_notification_title"></string>
+    <!-- String for cellular roaming notification message [CHAR LIMIT=500]  -->
+    <string name="upstream_roaming_notification_message"></string>
+    <!-- String for cellular roaming notification continue button [CHAR LIMIT=200]  -->
+    <string name="upstream_roaming_notification_continue_button"></string>
+</resources>
diff --git a/packages/Tethering/src/android/net/ip/IpServer.java b/packages/Tethering/src/android/net/ip/IpServer.java
index 6c0c432..c5478d2 100644
--- a/packages/Tethering/src/android/net/ip/IpServer.java
+++ b/packages/Tethering/src/android/net/ip/IpServer.java
@@ -35,6 +35,7 @@
 import android.net.RouteInfo;
 import android.net.TetheredClient;
 import android.net.TetheringManager;
+import android.net.TetheringRequestParcel;
 import android.net.dhcp.DhcpLeaseParcelable;
 import android.net.dhcp.DhcpServerCallbacks;
 import android.net.dhcp.DhcpServingParamsParcel;
@@ -243,6 +244,10 @@
     private IDhcpServer mDhcpServer;
     private RaParams mLastRaParams;
     private LinkAddress mIpv4Address;
+
+    private LinkAddress mStaticIpv4ServerAddr;
+    private LinkAddress mStaticIpv4ClientAddr;
+
     @NonNull
     private List<TetheredClient> mDhcpLeases = Collections.emptyList();
 
@@ -547,6 +552,8 @@
         // into calls to InterfaceController, shared with startIPv4().
         mInterfaceCtrl.clearIPv4Address();
         mIpv4Address = null;
+        mStaticIpv4ServerAddr = null;
+        mStaticIpv4ClientAddr = null;
     }
 
     private boolean configureIPv4(boolean enabled) {
@@ -557,7 +564,10 @@
         final Inet4Address srvAddr;
         int prefixLen = 0;
         try {
-            if (mInterfaceType == TetheringManager.TETHERING_USB
+            if (mStaticIpv4ServerAddr != null) {
+                srvAddr = (Inet4Address) mStaticIpv4ServerAddr.getAddress();
+                prefixLen = mStaticIpv4ServerAddr.getPrefixLength();
+            } else if (mInterfaceType == TetheringManager.TETHERING_USB
                     || mInterfaceType == TetheringManager.TETHERING_NCM) {
                 srvAddr = (Inet4Address) parseNumericAddress(USB_NEAR_IFACE_ADDR);
                 prefixLen = USB_PREFIX_LENGTH;
@@ -602,10 +612,6 @@
             return false;
         }
 
-        if (!configureDhcp(enabled, srvAddr, prefixLen)) {
-            return false;
-        }
-
         // Directly-connected route.
         final IpPrefix ipv4Prefix = new IpPrefix(mIpv4Address.getAddress(),
                 mIpv4Address.getPrefixLength());
@@ -617,7 +623,8 @@
             mLinkProperties.removeLinkAddress(mIpv4Address);
             mLinkProperties.removeRoute(route);
         }
-        return true;
+
+        return configureDhcp(enabled, srvAddr, prefixLen);
     }
 
     private String getRandomWifiIPv4Address() {
@@ -937,6 +944,13 @@
         mLinkProperties.setInterfaceName(mIfaceName);
     }
 
+    private void maybeConfigureStaticIp(final TetheringRequestParcel request) {
+        if (request == null) return;
+
+        mStaticIpv4ServerAddr = request.localIPv4Address;
+        mStaticIpv4ClientAddr = request.staticClientAddress;
+    }
+
     class InitialState extends State {
         @Override
         public void enter() {
@@ -951,9 +965,11 @@
                     mLastError = TetheringManager.TETHER_ERROR_NO_ERROR;
                     switch (message.arg1) {
                         case STATE_LOCAL_ONLY:
+                            maybeConfigureStaticIp((TetheringRequestParcel) message.obj);
                             transitionTo(mLocalHotspotState);
                             break;
                         case STATE_TETHERED:
+                            maybeConfigureStaticIp((TetheringRequestParcel) message.obj);
                             transitionTo(mTetheredState);
                             break;
                         default:
@@ -1038,7 +1054,7 @@
                 case CMD_START_TETHERING_ERROR:
                 case CMD_STOP_TETHERING_ERROR:
                 case CMD_SET_DNS_FORWARDERS_ERROR:
-                    mLastError = TetheringManager.TETHER_ERROR_MASTER_ERROR;
+                    mLastError = TetheringManager.TETHER_ERROR_INTERNAL_ERROR;
                     transitionTo(mInitialState);
                     break;
                 default:
@@ -1169,7 +1185,7 @@
                         } catch (RemoteException | ServiceSpecificException e) {
                             mLog.e("Exception enabling NAT: " + e.toString());
                             cleanupUpstream();
-                            mLastError = TetheringManager.TETHER_ERROR_ENABLE_NAT_ERROR;
+                            mLastError = TetheringManager.TETHER_ERROR_ENABLE_FORWARDING_ERROR;
                             transitionTo(mInitialState);
                             return true;
                         }
diff --git a/packages/Tethering/src/android/net/util/TetheringUtils.java b/packages/Tethering/src/android/net/util/TetheringUtils.java
index 5a6d5c1..dd67ddd 100644
--- a/packages/Tethering/src/android/net/util/TetheringUtils.java
+++ b/packages/Tethering/src/android/net/util/TetheringUtils.java
@@ -15,8 +15,11 @@
  */
 package android.net.util;
 
+import android.net.TetheringRequestParcel;
+
 import java.io.FileDescriptor;
 import java.net.SocketException;
+import java.util.Objects;
 
 /**
  * Native methods for tethering utilization.
@@ -38,4 +41,17 @@
     public static int uint16(short s) {
         return s & 0xffff;
     }
+
+    /** Check whether two TetheringRequestParcels are the same. */
+    public static boolean isTetheringRequestEquals(final TetheringRequestParcel request,
+            final TetheringRequestParcel otherRequest) {
+        if (request == otherRequest) return true;
+
+        return request != null && otherRequest != null
+                && request.tetheringType == otherRequest.tetheringType
+                && Objects.equals(request.localIPv4Address, otherRequest.localIPv4Address)
+                && Objects.equals(request.staticClientAddress, otherRequest.staticClientAddress)
+                && request.exemptFromEntitlementCheck == otherRequest.exemptFromEntitlementCheck
+                && request.showProvisioningUi == otherRequest.showProvisioningUi;
+    }
 }
diff --git a/packages/Tethering/src/com/android/server/connectivity/tethering/EntitlementManager.java b/packages/Tethering/src/com/android/server/connectivity/tethering/EntitlementManager.java
index e81d6ac..bd60594f 100644
--- a/packages/Tethering/src/com/android/server/connectivity/tethering/EntitlementManager.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/EntitlementManager.java
@@ -25,7 +25,7 @@
 import static android.net.TetheringManager.TETHERING_WIFI;
 import static android.net.TetheringManager.TETHER_ERROR_ENTITLEMENT_UNKNOWN;
 import static android.net.TetheringManager.TETHER_ERROR_NO_ERROR;
-import static android.net.TetheringManager.TETHER_ERROR_PROVISION_FAILED;
+import static android.net.TetheringManager.TETHER_ERROR_PROVISIONING_FAILED;
 
 import android.app.AlarmManager;
 import android.app.PendingIntent;
@@ -579,7 +579,7 @@
         switch (value) {
             case TETHER_ERROR_ENTITLEMENT_UNKNOWN: return "TETHER_ERROR_ENTITLEMENT_UNKONWN";
             case TETHER_ERROR_NO_ERROR: return "TETHER_ERROR_NO_ERROR";
-            case TETHER_ERROR_PROVISION_FAILED: return "TETHER_ERROR_PROVISION_FAILED";
+            case TETHER_ERROR_PROVISIONING_FAILED: return "TETHER_ERROR_PROVISIONING_FAILED";
             default:
                 return String.format("UNKNOWN ERROR (%d)", value);
         }
@@ -592,7 +592,7 @@
             protected void onReceiveResult(int resultCode, Bundle resultData) {
                 int updatedCacheValue = updateEntitlementCacheValue(type, resultCode);
                 addDownstreamMapping(type, updatedCacheValue);
-                if (updatedCacheValue == TETHER_ERROR_PROVISION_FAILED && notifyFail) {
+                if (updatedCacheValue == TETHER_ERROR_PROVISIONING_FAILED && notifyFail) {
                     mListener.onUiEntitlementFailed(type);
                 }
                 if (receiver != null) receiver.send(updatedCacheValue, null);
@@ -635,8 +635,8 @@
             mEntitlementCacheValue.put(type, resultCode);
             return resultCode;
         } else {
-            mEntitlementCacheValue.put(type, TETHER_ERROR_PROVISION_FAILED);
-            return TETHER_ERROR_PROVISION_FAILED;
+            mEntitlementCacheValue.put(type, TETHER_ERROR_PROVISIONING_FAILED);
+            return TETHER_ERROR_PROVISIONING_FAILED;
         }
     }
 
diff --git a/packages/Tethering/src/com/android/server/connectivity/tethering/Tethering.java b/packages/Tethering/src/com/android/server/connectivity/tethering/Tethering.java
index 3d8dbab..4b2c921 100644
--- a/packages/Tethering/src/com/android/server/connectivity/tethering/Tethering.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/Tethering.java
@@ -39,11 +39,12 @@
 import static android.net.TetheringManager.TETHERING_USB;
 import static android.net.TetheringManager.TETHERING_WIFI;
 import static android.net.TetheringManager.TETHERING_WIFI_P2P;
-import static android.net.TetheringManager.TETHER_ERROR_MASTER_ERROR;
+import static android.net.TetheringManager.TETHER_ERROR_INTERNAL_ERROR;
 import static android.net.TetheringManager.TETHER_ERROR_NO_ERROR;
 import static android.net.TetheringManager.TETHER_ERROR_SERVICE_UNAVAIL;
 import static android.net.TetheringManager.TETHER_ERROR_UNAVAIL_IFACE;
 import static android.net.TetheringManager.TETHER_ERROR_UNKNOWN_IFACE;
+import static android.net.TetheringManager.TETHER_ERROR_UNKNOWN_TYPE;
 import static android.net.TetheringManager.TETHER_HARDWARE_OFFLOAD_FAILED;
 import static android.net.TetheringManager.TETHER_HARDWARE_OFFLOAD_STARTED;
 import static android.net.TetheringManager.TETHER_HARDWARE_OFFLOAD_STOPPED;
@@ -92,6 +93,7 @@
 import android.net.util.InterfaceSet;
 import android.net.util.PrefixUtils;
 import android.net.util.SharedLog;
+import android.net.util.TetheringUtils;
 import android.net.util.VersionedBroadcastListener;
 import android.net.wifi.WifiClient;
 import android.net.wifi.WifiManager;
@@ -196,6 +198,11 @@
     private final SharedLog mLog = new SharedLog(TAG);
     private final RemoteCallbackList<ITetheringEventCallback> mTetheringEventCallbacks =
             new RemoteCallbackList<>();
+    // Currently active tethering requests per tethering type. Only one of each type can be
+    // requested at a time. After a tethering type is requested, the map keeps tethering parameters
+    // to be used after the interface comes up asynchronously.
+    private final SparseArray<TetheringRequestParcel> mActiveTetheringRequests =
+            new SparseArray<>();
 
     // used to synchronize public access to members
     private final Object mPublicSync;
@@ -296,31 +303,26 @@
 
         final UserManager userManager = (UserManager) mContext.getSystemService(
                 Context.USER_SERVICE);
-        mTetheringRestriction = new UserRestrictionActionListener(userManager, this);
+        mTetheringRestriction = new UserRestrictionActionListener(
+                userManager, this, mNotificationUpdater);
         mExecutor = new TetheringThreadExecutor(mHandler);
         mActiveDataSubIdListener = new ActiveDataSubIdListener(mExecutor);
+        mNetdCallback = new NetdCallback();
 
         // Load tethering configuration.
         updateConfiguration();
-        // NetdCallback should be registered after updateConfiguration() to ensure
-        // TetheringConfiguration is created.
-        mNetdCallback = new NetdCallback();
+    }
+
+    /**
+     * Start to register callbacks.
+     * Call this function when tethering is ready to handle callback events.
+     */
+    public void startStateMachineUpdaters() {
         try {
             mNetd.registerUnsolicitedEventListener(mNetdCallback);
         } catch (RemoteException e) {
             mLog.e("Unable to register netd UnsolicitedEventListener");
         }
-
-        startStateMachineUpdaters(mHandler);
-        startTrackDefaultNetwork();
-
-        final WifiManager wifiManager = getWifiManager();
-        if (wifiManager != null) {
-            wifiManager.registerSoftApCallback(mExecutor, new TetheringSoftApCallback());
-        }
-    }
-
-    private void startStateMachineUpdaters(Handler handler) {
         mCarrierConfigChange.startListening();
         mContext.getSystemService(TelephonyManager.class).listen(mActiveDataSubIdListener,
                 PhoneStateListener.LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE);
@@ -333,7 +335,14 @@
         filter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
         filter.addAction(UserManager.ACTION_USER_RESTRICTIONS_CHANGED);
         filter.addAction(ACTION_RESTRICT_BACKGROUND_CHANGED);
-        mContext.registerReceiver(mStateReceiver, filter, null, handler);
+        mContext.registerReceiver(mStateReceiver, filter, null, mHandler);
+
+        final WifiManager wifiManager = getWifiManager();
+        if (wifiManager != null) {
+            wifiManager.registerSoftApCallback(mExecutor, new TetheringSoftApCallback());
+        }
+
+        startTrackDefaultNetwork();
     }
 
     private class TetheringThreadExecutor implements Executor {
@@ -362,9 +371,10 @@
 
             mActiveDataSubId = subId;
             updateConfiguration();
+            mNotificationUpdater.onActiveDataSubscriptionIdChanged(subId);
             // To avoid launching unexpected provisioning checks, ignore re-provisioning
             // when no CarrierConfig loaded yet. Assume reevaluateSimCardProvisioning()
-            // ill be triggered again when CarrierConfig is loaded.
+            // will be triggered again when CarrierConfig is loaded.
             if (mEntitlementMgr.getCarrierConfig(mConfig) != null) {
                 mEntitlementMgr.reevaluateSimCardProvisioning(mConfig);
             } else {
@@ -424,9 +434,7 @@
         // Called by wifi when the number of soft AP clients changed.
         @Override
         public void onConnectedClientsChanged(final List<WifiClient> clients) {
-            if (mConnectedClientsTracker.updateConnectedClients(mForwardedDownstreams, clients)) {
-                reportTetherClientsChanged(mConnectedClientsTracker.getLastTetheredClients());
-            }
+            updateConnectedClients(clients);
         }
     }
 
@@ -487,14 +495,31 @@
     }
 
     void startTethering(final TetheringRequestParcel request, final IIntResultListener listener) {
-        mEntitlementMgr.startProvisioningIfNeeded(request.tetheringType,
-                request.showProvisioningUi);
-        enableTetheringInternal(request.tetheringType, true /* enabled */, listener);
+        mHandler.post(() -> {
+            final TetheringRequestParcel unfinishedRequest = mActiveTetheringRequests.get(
+                    request.tetheringType);
+            // If tethering is already enabled with a different request,
+            // disable before re-enabling.
+            if (unfinishedRequest != null
+                    && !TetheringUtils.isTetheringRequestEquals(unfinishedRequest, request)) {
+                enableTetheringInternal(request.tetheringType, false /* disabled */, null);
+                mEntitlementMgr.stopProvisioningIfNeeded(request.tetheringType);
+            }
+            mActiveTetheringRequests.put(request.tetheringType, request);
+
+            mEntitlementMgr.startProvisioningIfNeeded(request.tetheringType,
+                    request.showProvisioningUi);
+            enableTetheringInternal(request.tetheringType, true /* enabled */, listener);
+        });
     }
 
     void stopTethering(int type) {
-        enableTetheringInternal(type, false /* disabled */, null);
-        mEntitlementMgr.stopProvisioningIfNeeded(type);
+        mHandler.post(() -> {
+            mActiveTetheringRequests.remove(type);
+
+            enableTetheringInternal(type, false /* disabled */, null);
+            mEntitlementMgr.stopProvisioningIfNeeded(type);
+        });
     }
 
     /**
@@ -503,39 +528,45 @@
      */
     private void enableTetheringInternal(int type, boolean enable,
             final IIntResultListener listener) {
-        int result;
+        int result = TETHER_ERROR_NO_ERROR;
         switch (type) {
             case TETHERING_WIFI:
                 result = setWifiTethering(enable);
-                sendTetherResult(listener, result);
                 break;
             case TETHERING_USB:
                 result = setUsbTethering(enable);
-                sendTetherResult(listener, result);
                 break;
             case TETHERING_BLUETOOTH:
                 setBluetoothTethering(enable, listener);
                 break;
             case TETHERING_NCM:
                 result = setNcmTethering(enable);
-                sendTetherResult(listener, result);
                 break;
             case TETHERING_ETHERNET:
                 result = setEthernetTethering(enable);
-                sendTetherResult(listener, result);
                 break;
             default:
                 Log.w(TAG, "Invalid tether type.");
-                sendTetherResult(listener, TETHER_ERROR_UNKNOWN_IFACE);
+                result = TETHER_ERROR_UNKNOWN_TYPE;
+        }
+
+        // The result of Bluetooth tethering will be sent by #setBluetoothTethering.
+        if (type != TETHERING_BLUETOOTH) {
+            sendTetherResult(listener, result, type);
         }
     }
 
-    private void sendTetherResult(final IIntResultListener listener, int result) {
+    private void sendTetherResult(final IIntResultListener listener, final int result,
+            final int type) {
         if (listener != null) {
             try {
                 listener.onResult(result);
             } catch (RemoteException e) { }
         }
+
+        // If changing tethering fail, remove corresponding request
+        // no matter who trigger the start/stop.
+        if (result != TETHER_ERROR_NO_ERROR) mActiveTetheringRequests.remove(type);
     }
 
     private int setWifiTethering(final boolean enable) {
@@ -557,7 +588,7 @@
             Binder.restoreCallingIdentity(ident);
         }
 
-        return TETHER_ERROR_MASTER_ERROR;
+        return TETHER_ERROR_INTERNAL_ERROR;
     }
 
     private void setBluetoothTethering(final boolean enable, final IIntResultListener listener) {
@@ -565,7 +596,7 @@
         if (adapter == null || !adapter.isEnabled()) {
             Log.w(TAG, "Tried to enable bluetooth tethering with null or disabled adapter. null: "
                     + (adapter == null));
-            sendTetherResult(listener, TETHER_ERROR_SERVICE_UNAVAIL);
+            sendTetherResult(listener, TETHER_ERROR_SERVICE_UNAVAIL, TETHERING_BLUETOOTH);
             return;
         }
 
@@ -593,8 +624,8 @@
                 // We should figure out a way to bubble up that failure instead of sending success.
                 final int result = (((BluetoothPan) proxy).isTetheringOn() == enable)
                         ? TETHER_ERROR_NO_ERROR
-                        : TETHER_ERROR_MASTER_ERROR;
-                sendTetherResult(listener, result);
+                        : TETHER_ERROR_INTERNAL_ERROR;
+                sendTetherResult(listener, result, TETHERING_BLUETOOTH);
                 adapter.closeProfileProxy(BluetoothProfile.PAN, proxy);
             }
         }, BluetoothProfile.PAN);
@@ -605,27 +636,30 @@
                 Context.ETHERNET_SERVICE);
         synchronized (mPublicSync) {
             if (enable) {
-                if (mEthernetCallback != null) return TETHER_ERROR_NO_ERROR;
+                if (mEthernetCallback != null) {
+                    Log.d(TAG, "Ethernet tethering already started");
+                    return TETHER_ERROR_NO_ERROR;
+                }
 
                 mEthernetCallback = new EthernetCallback();
                 mEthernetIfaceRequest = em.requestTetheredInterface(mExecutor, mEthernetCallback);
             } else {
                 stopEthernetTetheringLocked();
-                if (mEthernetCallback != null) {
-                    mEthernetIfaceRequest.release();
-                    mEthernetCallback = null;
-                    mEthernetIfaceRequest = null;
-                }
             }
         }
         return TETHER_ERROR_NO_ERROR;
     }
 
     private void stopEthernetTetheringLocked() {
-        if (mConfiguredEthernetIface == null) return;
-        changeInterfaceState(mConfiguredEthernetIface, IpServer.STATE_AVAILABLE);
-        stopTrackingInterfaceLocked(mConfiguredEthernetIface);
-        mConfiguredEthernetIface = null;
+        if (mConfiguredEthernetIface != null) {
+            stopTrackingInterfaceLocked(mConfiguredEthernetIface);
+            mConfiguredEthernetIface = null;
+        }
+        if (mEthernetCallback != null) {
+            mEthernetIfaceRequest.release();
+            mEthernetCallback = null;
+            mEthernetIfaceRequest = null;
+        }
     }
 
     private class EthernetCallback implements EthernetManager.TetheredInterfaceCallback {
@@ -672,12 +706,18 @@
                 Log.e(TAG, "Tried to Tether an unavailable iface: " + iface + ", ignoring");
                 return TETHER_ERROR_UNAVAIL_IFACE;
             }
-            // NOTE: If a CMD_TETHER_REQUESTED message is already in the TISM's
-            // queue but not yet processed, this will be a no-op and it will not
-            // return an error.
+            // NOTE: If a CMD_TETHER_REQUESTED message is already in the TISM's queue but not yet
+            // processed, this will be a no-op and it will not return an error.
             //
-            // TODO: reexamine the threading and messaging model.
-            tetherState.ipServer.sendMessage(IpServer.CMD_TETHER_REQUESTED, requestedState);
+            // This code cannot race with untether() because they both synchronize on mPublicSync.
+            // TODO: reexamine the threading and messaging model to totally remove mPublicSync.
+            final int type = tetherState.ipServer.interfaceType();
+            final TetheringRequestParcel request = mActiveTetheringRequests.get(type, null);
+            if (request != null) {
+                mActiveTetheringRequests.delete(type);
+            }
+            tetherState.ipServer.sendMessage(IpServer.CMD_TETHER_REQUESTED, requestedState, 0,
+                    request);
             return TETHER_ERROR_NO_ERROR;
         }
     }
@@ -960,11 +1000,14 @@
     protected static class UserRestrictionActionListener {
         private final UserManager mUserManager;
         private final Tethering mWrapper;
+        private final TetheringNotificationUpdater mNotificationUpdater;
         public boolean mDisallowTethering;
 
-        public UserRestrictionActionListener(UserManager um, Tethering wrapper) {
+        public UserRestrictionActionListener(@NonNull UserManager um, @NonNull Tethering wrapper,
+                @NonNull TetheringNotificationUpdater updater) {
             mUserManager = um;
             mWrapper = wrapper;
+            mNotificationUpdater = updater;
             mDisallowTethering = false;
         }
 
@@ -983,13 +1026,21 @@
                 return;
             }
 
-            // TODO: Add user restrictions notification.
-            final boolean isTetheringActiveOnDevice = (mWrapper.getTetheredIfaces().length != 0);
-
-            if (newlyDisallowed && isTetheringActiveOnDevice) {
-                mWrapper.untetherAll();
-                // TODO(b/148139325): send tetheringSupported on restriction change
+            if (!newlyDisallowed) {
+                // Clear the restricted notification when user is allowed to have tethering
+                // function.
+                mNotificationUpdater.tetheringRestrictionLifted();
+                return;
             }
+
+            // Restricted notification is shown when tethering function is disallowed on
+            // user's device.
+            mNotificationUpdater.notifyTetheringDisabledByRestriction();
+
+            // Untether from all downstreams since tethering is disallowed.
+            mWrapper.untetherAll();
+
+            // TODO(b/148139325): send tetheringSupported on restriction change
         }
     }
 
@@ -1458,7 +1509,7 @@
             } else {
                 dnsServers = mConfig.defaultIPv4DNS;
             }
-            final int netId = (network != null) ? network.netId : NETID_UNSET;
+            final int netId = (network != null) ? network.getNetId() : NETID_UNSET;
             try {
                 mNetd.tetherDnsSet(netId, dnsServers);
                 mLog.log(String.format(
@@ -1523,6 +1574,7 @@
             mIPv6TetheringCoordinator.removeActiveDownstream(who);
             mOffload.excludeDownstreamInterface(who.interfaceName());
             mForwardedDownstreams.remove(who);
+            updateConnectedClients(null /* wifiClients */);
 
             // If this is a Wi-Fi interface, tell WifiManager of any errors
             // or the inactive serving state.
@@ -2105,6 +2157,12 @@
         return false;
     }
 
+    private void updateConnectedClients(final List<WifiClient> wifiClients) {
+        if (mConnectedClientsTracker.updateConnectedClients(mForwardedDownstreams, wifiClients)) {
+            reportTetherClientsChanged(mConnectedClientsTracker.getLastTetheredClients());
+        }
+    }
+
     private IpServer.Callback makeControlCallback() {
         return new IpServer.Callback() {
             @Override
@@ -2119,10 +2177,7 @@
 
             @Override
             public void dhcpLeasesChanged() {
-                if (mConnectedClientsTracker.updateConnectedClients(
-                        mForwardedDownstreams, null /* wifiClients */)) {
-                    reportTetherClientsChanged(mConnectedClientsTracker.getLastTetheredClients());
-                }
+                updateConnectedClients(null /* wifiClients */);
             }
         };
     }
@@ -2145,7 +2200,7 @@
         // If TetherMasterSM is in ErrorState, TetherMasterSM stays there.
         // Thus we give a chance for TetherMasterSM to recover to InitialState
         // by sending CMD_CLEAR_ERROR
-        if (error == TETHER_ERROR_MASTER_ERROR) {
+        if (error == TETHER_ERROR_INTERNAL_ERROR) {
             mTetherMasterSM.sendMessage(TetherMasterSM.CMD_CLEAR_ERROR, who);
         }
         int which;
diff --git a/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringNotificationUpdater.java b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringNotificationUpdater.java
index b97f752..992cdd8 100644
--- a/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringNotificationUpdater.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringNotificationUpdater.java
@@ -29,12 +29,14 @@
 import android.content.res.Resources;
 import android.os.UserHandle;
 import android.provider.Settings;
+import android.telephony.SubscriptionManager;
 import android.text.TextUtils;
 import android.util.Log;
 import android.util.SparseArray;
 
 import androidx.annotation.ArrayRes;
 import androidx.annotation.DrawableRes;
+import androidx.annotation.IntDef;
 import androidx.annotation.IntRange;
 import androidx.annotation.NonNull;
 
@@ -54,10 +56,15 @@
 public class TetheringNotificationUpdater {
     private static final String TAG = TetheringNotificationUpdater.class.getSimpleName();
     private static final String CHANNEL_ID = "TETHERING_STATUS";
+    private static final String WIFI_DOWNSTREAM = "WIFI";
+    private static final String USB_DOWNSTREAM = "USB";
+    private static final String BLUETOOTH_DOWNSTREAM = "BT";
     private static final boolean NOTIFY_DONE = true;
     private static final boolean NO_NOTIFY = false;
     // Id to update and cancel tethering notification. Must be unique within the tethering app.
-    private static final int NOTIFY_ID = 20191115;
+    private static final int ENABLE_NOTIFICATION_ID = 1000;
+    // Id to update and cancel restricted notification. Must be unique within the tethering app.
+    private static final int RESTRICTED_NOTIFICATION_ID = 1001;
     @VisibleForTesting
     static final int NO_ICON_ID = 0;
     @VisibleForTesting
@@ -65,14 +72,25 @@
     private final Context mContext;
     private final NotificationManager mNotificationManager;
     private final NotificationChannel mChannel;
-    // Downstream type is one of ConnectivityManager.TETHERING_* constants, 0 1 or 2.
-    // This value has to be made 1 2 and 4, and OR'd with the others.
+
     // WARNING : the constructor is called on a different thread. Thread safety therefore
     // relies on this value being initialized to 0, and not any other value. If you need
     // to change this, you will need to change the thread where the constructor is invoked,
     // or to introduce synchronization.
+    // Downstream type is one of ConnectivityManager.TETHERING_* constants, 0 1 or 2.
+    // This value has to be made 1 2 and 4, and OR'd with the others.
     private int mDownstreamTypesMask = DOWNSTREAM_NONE;
 
+    // WARNING : this value is not able to being initialized to 0 and must have volatile because
+    // telephony service is not guaranteed that is up before tethering service starts. If telephony
+    // is up later than tethering, TetheringNotificationUpdater will use incorrect and valid
+    // subscription id(0) to query resources. Therefore, initialized subscription id must be
+    // INVALID_SUBSCRIPTION_ID.
+    private volatile int mActiveDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+
+    @IntDef({ENABLE_NOTIFICATION_ID, RESTRICTED_NOTIFICATION_ID})
+    @interface NotificationId {}
+
     public TetheringNotificationUpdater(@NonNull final Context context) {
         mContext = context;
         mNotificationManager = (NotificationManager) context.createContextAsUser(UserHandle.ALL, 0)
@@ -88,19 +106,46 @@
     public void onDownstreamChanged(@IntRange(from = 0, to = 7) final int downstreamTypesMask) {
         if (mDownstreamTypesMask == downstreamTypesMask) return;
         mDownstreamTypesMask = downstreamTypesMask;
-        updateNotification();
+        updateEnableNotification();
     }
 
-    private void updateNotification() {
+    /** Called when active data subscription id changed */
+    public void onActiveDataSubscriptionIdChanged(final int subId) {
+        if (mActiveDataSubId == subId) return;
+        mActiveDataSubId = subId;
+        updateEnableNotification();
+    }
+
+    @VisibleForTesting
+    Resources getResourcesForSubId(@NonNull final Context c, final int subId) {
+        return SubscriptionManager.getResourcesForSubId(c, subId);
+    }
+
+    private void updateEnableNotification() {
         final boolean tetheringInactive = mDownstreamTypesMask <= DOWNSTREAM_NONE;
 
         if (tetheringInactive || setupNotification() == NO_NOTIFY) {
-            clearNotification();
+            clearNotification(ENABLE_NOTIFICATION_ID);
         }
     }
 
-    private void clearNotification() {
-        mNotificationManager.cancel(null /* tag */, NOTIFY_ID);
+    @VisibleForTesting
+    void tetheringRestrictionLifted() {
+        clearNotification(RESTRICTED_NOTIFICATION_ID);
+    }
+
+    private void clearNotification(@NotificationId final int id) {
+        mNotificationManager.cancel(null /* tag */, id);
+    }
+
+    @VisibleForTesting
+    void notifyTetheringDisabledByRestriction() {
+        final Resources res = getResourcesForSubId(mContext, mActiveDataSubId);
+        final String title = res.getString(R.string.disable_tether_notification_title);
+        final String message = res.getString(R.string.disable_tether_notification_message);
+
+        showNotification(R.drawable.stat_sys_tether_general, title, message,
+                RESTRICTED_NOTIFICATION_ID);
     }
 
     /**
@@ -110,16 +155,17 @@
      *
      * @return downstream types mask value.
      */
+    @VisibleForTesting
     @IntRange(from = 0, to = 7)
-    private int getDownstreamTypesMask(@NonNull final String types) {
+    int getDownstreamTypesMask(@NonNull final String types) {
         int downstreamTypesMask = DOWNSTREAM_NONE;
         final String[] downstreams = types.split("\\|");
         for (String downstream : downstreams) {
-            if ("USB".equals(downstream.trim())) {
+            if (USB_DOWNSTREAM.equals(downstream.trim())) {
                 downstreamTypesMask |= (1 << TETHERING_USB);
-            } else if ("WIFI".equals(downstream.trim())) {
+            } else if (WIFI_DOWNSTREAM.equals(downstream.trim())) {
                 downstreamTypesMask |= (1 << TETHERING_WIFI);
-            } else if ("BT".equals(downstream.trim())) {
+            } else if (BLUETOOTH_DOWNSTREAM.equals(downstream.trim())) {
                 downstreamTypesMask |= (1 << TETHERING_BLUETOOTH);
             }
         }
@@ -134,9 +180,8 @@
      *
      * @return {@link android.util.SparseArray} with downstream types and icon id info.
      */
-    @NonNull
-    private SparseArray<Integer> getIcons(@ArrayRes int id) {
-        final Resources res = mContext.getResources();
+    @VisibleForTesting
+    SparseArray<Integer> getIcons(@ArrayRes int id, @NonNull Resources res) {
         final String[] array = res.getStringArray(id);
         final SparseArray<Integer> icons = new SparseArray<>();
         for (String config : array) {
@@ -161,8 +206,9 @@
     }
 
     private boolean setupNotification() {
-        final Resources res = mContext.getResources();
-        final SparseArray<Integer> downstreamIcons = getIcons(R.array.tethering_notification_icons);
+        final Resources res = getResourcesForSubId(mContext, mActiveDataSubId);
+        final SparseArray<Integer> downstreamIcons =
+                getIcons(R.array.tethering_notification_icons, res);
 
         final int iconId = downstreamIcons.get(mDownstreamTypesMask, NO_ICON_ID);
         if (iconId == NO_ICON_ID) return NO_NOTIFY;
@@ -170,12 +216,12 @@
         final String title = res.getString(R.string.tethering_notification_title);
         final String message = res.getString(R.string.tethering_notification_message);
 
-        showNotification(iconId, title, message);
+        showNotification(iconId, title, message, ENABLE_NOTIFICATION_ID);
         return NOTIFY_DONE;
     }
 
     private void showNotification(@DrawableRes final int iconId, @NonNull final String title,
-            @NonNull final String message) {
+            @NonNull final String message, @NotificationId final int id) {
         final Intent intent = new Intent(Settings.ACTION_TETHER_SETTINGS);
         final PendingIntent pi = PendingIntent.getActivity(
                 mContext.createContextAsUser(UserHandle.CURRENT, 0),
@@ -193,6 +239,6 @@
                         .setContentIntent(pi)
                         .build();
 
-        mNotificationManager.notify(null /* tag */, NOTIFY_ID, notification);
+        mNotificationManager.notify(null /* tag */, id, notification);
     }
 }
diff --git a/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringService.java b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringService.java
index 020b32a..c30be25 100644
--- a/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringService.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringService.java
@@ -33,6 +33,7 @@
 import android.net.ITetheringEventCallback;
 import android.net.NetworkCapabilities;
 import android.net.NetworkRequest;
+import android.net.NetworkStack;
 import android.net.TetheringRequestParcel;
 import android.net.dhcp.DhcpServerCallbacks;
 import android.net.dhcp.DhcpServingParamsParcel;
@@ -79,6 +80,7 @@
         mContext = mDeps.getContext();
         mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
         mTethering = makeTethering(mDeps);
+        mTethering.startStateMachineUpdaters();
     }
 
     /**
@@ -364,8 +366,7 @@
                     IBinder connector;
                     try {
                         final long before = System.currentTimeMillis();
-                        while ((connector = (IBinder) mContext.getSystemService(
-                                Context.NETWORK_STACK_SERVICE)) == null) {
+                        while ((connector = NetworkStack.getService()) == null) {
                             if (System.currentTimeMillis() - before > NETWORKSTACK_TIMEOUT_MS) {
                                 Log.wtf(TAG, "Timeout, fail to get INetworkStackConnector");
                                 return null;
diff --git a/packages/Tethering/src/com/android/server/connectivity/tethering/UpstreamNetworkMonitor.java b/packages/Tethering/src/com/android/server/connectivity/tethering/UpstreamNetworkMonitor.java
index 2875f71..45bb4ab 100644
--- a/packages/Tethering/src/com/android/server/connectivity/tethering/UpstreamNetworkMonitor.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/UpstreamNetworkMonitor.java
@@ -244,7 +244,8 @@
         // Additionally, we log a message to aid in any subsequent debugging.
         mLog.i("requesting mobile upstream network: " + mobileUpstreamRequest);
 
-        cm().requestNetwork(mobileUpstreamRequest, mMobileNetworkCallback, 0, legacyType, mHandler);
+        cm().requestNetwork(mobileUpstreamRequest, 0, legacyType, mHandler,
+                mMobileNetworkCallback);
     }
 
     /** Release mobile network request. */
@@ -585,21 +586,21 @@
      */
     @VisibleForTesting
     public static NetworkCapabilities networkCapabilitiesForType(int type) {
-        final NetworkCapabilities nc = new NetworkCapabilities();
+        final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder();
 
         // Map from type to transports.
         final int notFound = -1;
         final int transport = sLegacyTypeToTransport.get(type, notFound);
         Preconditions.checkArgument(transport != notFound, "unknown legacy type: " + type);
-        nc.addTransportType(transport);
+        builder.addTransportType(transport);
 
         if (type == TYPE_MOBILE_DUN) {
-            nc.addCapability(NetworkCapabilities.NET_CAPABILITY_DUN);
+            builder.addCapability(NetworkCapabilities.NET_CAPABILITY_DUN);
             // DUN is restricted network, see NetworkCapabilities#FORCE_RESTRICTED_CAPABILITIES.
-            nc.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED);
+            builder.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED);
         } else {
-            nc.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
+            builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
         }
-        return nc;
+        return builder.build();
     }
 }
diff --git a/packages/Tethering/tests/unit/src/android/net/ip/IpServerTest.java b/packages/Tethering/tests/unit/src/android/net/ip/IpServerTest.java
index 948266d..3106e0e 100644
--- a/packages/Tethering/tests/unit/src/android/net/ip/IpServerTest.java
+++ b/packages/Tethering/tests/unit/src/android/net/ip/IpServerTest.java
@@ -21,7 +21,7 @@
 import static android.net.TetheringManager.TETHERING_USB;
 import static android.net.TetheringManager.TETHERING_WIFI;
 import static android.net.TetheringManager.TETHERING_WIFI_P2P;
-import static android.net.TetheringManager.TETHER_ERROR_ENABLE_NAT_ERROR;
+import static android.net.TetheringManager.TETHER_ERROR_ENABLE_FORWARDING_ERROR;
 import static android.net.TetheringManager.TETHER_ERROR_NO_ERROR;
 import static android.net.TetheringManager.TETHER_ERROR_TETHER_IFACE_ERROR;
 import static android.net.dhcp.IDhcpServer.STATUS_SUCCESS;
@@ -448,7 +448,7 @@
         usbTeardownOrder.verify(mNetd, times(2)).interfaceSetCfg(
                 argThat(cfg -> IFACE_NAME.equals(cfg.ifName)));
         usbTeardownOrder.verify(mCallback).updateInterfaceState(
-                mIpServer, STATE_AVAILABLE, TETHER_ERROR_ENABLE_NAT_ERROR);
+                mIpServer, STATE_AVAILABLE, TETHER_ERROR_ENABLE_FORWARDING_ERROR);
         usbTeardownOrder.verify(mCallback).updateLinkProperties(
                 eq(mIpServer), mLinkPropertiesCaptor.capture());
         assertNoAddressesNorRoutes(mLinkPropertiesCaptor.getValue());
diff --git a/packages/Tethering/tests/unit/src/android/net/util/TetheringUtilsTest.java b/packages/Tethering/tests/unit/src/android/net/util/TetheringUtilsTest.java
new file mode 100644
index 0000000..1499f3b
--- /dev/null
+++ b/packages/Tethering/tests/unit/src/android/net/util/TetheringUtilsTest.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.net.util;
+
+import static android.net.TetheringManager.TETHERING_USB;
+import static android.net.TetheringManager.TETHERING_WIFI;
+
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertTrue;
+
+import android.net.LinkAddress;
+import android.net.TetheringRequestParcel;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.testutils.MiscAssertsKt;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class TetheringUtilsTest {
+    private static final LinkAddress TEST_SERVER_ADDR = new LinkAddress("192.168.43.1/24");
+    private static final LinkAddress TEST_CLIENT_ADDR = new LinkAddress("192.168.43.5/24");
+    private TetheringRequestParcel mTetheringRequest;
+
+    @Before
+    public void setUp() {
+        mTetheringRequest = makeTetheringRequestParcel();
+    }
+
+    public TetheringRequestParcel makeTetheringRequestParcel() {
+        final TetheringRequestParcel request = new TetheringRequestParcel();
+        request.tetheringType = TETHERING_WIFI;
+        request.localIPv4Address = TEST_SERVER_ADDR;
+        request.staticClientAddress = TEST_CLIENT_ADDR;
+        request.exemptFromEntitlementCheck = false;
+        request.showProvisioningUi = true;
+        return request;
+    }
+
+    @Test
+    public void testIsTetheringRequestEquals() throws Exception {
+        TetheringRequestParcel request = makeTetheringRequestParcel();
+
+        assertTrue(TetheringUtils.isTetheringRequestEquals(mTetheringRequest, mTetheringRequest));
+        assertTrue(TetheringUtils.isTetheringRequestEquals(mTetheringRequest, request));
+        assertTrue(TetheringUtils.isTetheringRequestEquals(null, null));
+        assertFalse(TetheringUtils.isTetheringRequestEquals(mTetheringRequest, null));
+        assertFalse(TetheringUtils.isTetheringRequestEquals(null, mTetheringRequest));
+
+        request = makeTetheringRequestParcel();
+        request.tetheringType = TETHERING_USB;
+        assertFalse(TetheringUtils.isTetheringRequestEquals(mTetheringRequest, request));
+
+        request = makeTetheringRequestParcel();
+        request.localIPv4Address = null;
+        request.staticClientAddress = null;
+        assertFalse(TetheringUtils.isTetheringRequestEquals(mTetheringRequest, request));
+
+        request = makeTetheringRequestParcel();
+        request.exemptFromEntitlementCheck = true;
+        assertFalse(TetheringUtils.isTetheringRequestEquals(mTetheringRequest, request));
+
+        request = makeTetheringRequestParcel();
+        request.showProvisioningUi = false;
+        assertFalse(TetheringUtils.isTetheringRequestEquals(mTetheringRequest, request));
+
+        MiscAssertsKt.assertFieldCountEquals(5, TetheringRequestParcel.class);
+    }
+}
diff --git a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/EntitlementManagerTest.java b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/EntitlementManagerTest.java
index 3a1d4a6..0a7850b 100644
--- a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/EntitlementManagerTest.java
+++ b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/EntitlementManagerTest.java
@@ -21,7 +21,7 @@
 import static android.net.TetheringManager.TETHERING_WIFI;
 import static android.net.TetheringManager.TETHER_ERROR_ENTITLEMENT_UNKNOWN;
 import static android.net.TetheringManager.TETHER_ERROR_NO_ERROR;
-import static android.net.TetheringManager.TETHER_ERROR_PROVISION_FAILED;
+import static android.net.TetheringManager.TETHER_ERROR_PROVISIONING_FAILED;
 import static android.provider.DeviceConfig.NAMESPACE_CONNECTIVITY;
 import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
 
@@ -284,11 +284,11 @@
         assertEquals(0, mEnMgr.uiProvisionCount);
         mEnMgr.reset();
         // 3. No cache value and ui entitlement check is needed.
-        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISION_FAILED;
+        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISIONING_FAILED;
         receiver = new ResultReceiver(null) {
             @Override
             protected void onReceiveResult(int resultCode, Bundle resultData) {
-                assertEquals(TETHER_ERROR_PROVISION_FAILED, resultCode);
+                assertEquals(TETHER_ERROR_PROVISIONING_FAILED, resultCode);
                 mCallbacklatch.countDown();
             }
         };
@@ -297,12 +297,13 @@
         callbackTimeoutHelper(mCallbacklatch);
         assertEquals(1, mEnMgr.uiProvisionCount);
         mEnMgr.reset();
-        // 4. Cache value is TETHER_ERROR_PROVISION_FAILED and don't need to run entitlement check.
+        // 4. Cache value is TETHER_ERROR_PROVISIONING_FAILED and don't need to run entitlement
+        // check.
         mEnMgr.fakeEntitlementResult = TETHER_ERROR_NO_ERROR;
         receiver = new ResultReceiver(null) {
             @Override
             protected void onReceiveResult(int resultCode, Bundle resultData) {
-                assertEquals(TETHER_ERROR_PROVISION_FAILED, resultCode);
+                assertEquals(TETHER_ERROR_PROVISIONING_FAILED, resultCode);
                 mCallbacklatch.countDown();
             }
         };
@@ -311,7 +312,7 @@
         callbackTimeoutHelper(mCallbacklatch);
         assertEquals(0, mEnMgr.uiProvisionCount);
         mEnMgr.reset();
-        // 5. Cache value is TETHER_ERROR_PROVISION_FAILED and ui entitlement check is needed.
+        // 5. Cache value is TETHER_ERROR_PROVISIONING_FAILED and ui entitlement check is needed.
         mEnMgr.fakeEntitlementResult = TETHER_ERROR_NO_ERROR;
         receiver = new ResultReceiver(null) {
             @Override
@@ -364,7 +365,7 @@
     public void verifyPermissionResult() {
         setupForRequiredProvisioning();
         mEnMgr.notifyUpstream(true);
-        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISION_FAILED;
+        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISIONING_FAILED;
         mEnMgr.startProvisioningIfNeeded(TETHERING_WIFI, true);
         mLooper.dispatchAll();
         assertFalse(mEnMgr.isCellularUpstreamPermitted());
@@ -380,15 +381,15 @@
     public void verifyPermissionIfAllNotApproved() {
         setupForRequiredProvisioning();
         mEnMgr.notifyUpstream(true);
-        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISION_FAILED;
+        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISIONING_FAILED;
         mEnMgr.startProvisioningIfNeeded(TETHERING_WIFI, true);
         mLooper.dispatchAll();
         assertFalse(mEnMgr.isCellularUpstreamPermitted());
-        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISION_FAILED;
+        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISIONING_FAILED;
         mEnMgr.startProvisioningIfNeeded(TETHERING_USB, true);
         mLooper.dispatchAll();
         assertFalse(mEnMgr.isCellularUpstreamPermitted());
-        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISION_FAILED;
+        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISIONING_FAILED;
         mEnMgr.startProvisioningIfNeeded(TETHERING_BLUETOOTH, true);
         mLooper.dispatchAll();
         assertFalse(mEnMgr.isCellularUpstreamPermitted());
@@ -403,7 +404,7 @@
         mLooper.dispatchAll();
         assertTrue(mEnMgr.isCellularUpstreamPermitted());
         mLooper.dispatchAll();
-        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISION_FAILED;
+        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISIONING_FAILED;
         mEnMgr.startProvisioningIfNeeded(TETHERING_USB, true);
         mLooper.dispatchAll();
         assertTrue(mEnMgr.isCellularUpstreamPermitted());
@@ -465,7 +466,7 @@
         assertEquals(0, mEnMgr.silentProvisionCount);
         mEnMgr.reset();
         // 6. switch upstream back to mobile again
-        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISION_FAILED;
+        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISIONING_FAILED;
         mEnMgr.notifyUpstream(true);
         mLooper.dispatchAll();
         assertEquals(0, mEnMgr.uiProvisionCount);
@@ -477,7 +478,7 @@
     public void testCallStopTetheringWhenUiProvisioningFail() {
         setupForRequiredProvisioning();
         verify(mEntitlementFailedListener, times(0)).onUiEntitlementFailed(TETHERING_WIFI);
-        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISION_FAILED;
+        mEnMgr.fakeEntitlementResult = TETHER_ERROR_PROVISIONING_FAILED;
         mEnMgr.notifyUpstream(true);
         mLooper.dispatchAll();
         mEnMgr.startProvisioningIfNeeded(TETHERING_WIFI, true);
diff --git a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringNotificationUpdaterTest.kt b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringNotificationUpdaterTest.kt
new file mode 100644
index 0000000..b869491
--- /dev/null
+++ b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringNotificationUpdaterTest.kt
@@ -0,0 +1,262 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.connectivity.tethering
+
+import android.app.Notification
+import android.app.NotificationManager
+import android.content.Context
+import android.content.res.Resources
+import android.net.ConnectivityManager.TETHERING_BLUETOOTH
+import android.net.ConnectivityManager.TETHERING_USB
+import android.net.ConnectivityManager.TETHERING_WIFI
+import android.os.UserHandle
+import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.filters.SmallTest
+import androidx.test.runner.AndroidJUnit4
+import com.android.internal.util.test.BroadcastInterceptingContext
+import com.android.networkstack.tethering.R
+import com.android.server.connectivity.tethering.TetheringNotificationUpdater.DOWNSTREAM_NONE
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentCaptor
+import org.mockito.ArgumentMatchers.any
+import org.mockito.ArgumentMatchers.anyInt
+import org.mockito.ArgumentMatchers.eq
+import org.mockito.Mock
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.never
+import org.mockito.Mockito.reset
+import org.mockito.Mockito.times
+import org.mockito.Mockito.verifyZeroInteractions
+import org.mockito.Mockito.verify
+import org.mockito.MockitoAnnotations
+
+const val TEST_SUBID = 1
+const val WIFI_ICON_ID = 1
+const val USB_ICON_ID = 2
+const val BT_ICON_ID = 3
+const val GENERAL_ICON_ID = 4
+const val WIFI_MASK = 1 shl TETHERING_WIFI
+const val USB_MASK = 1 shl TETHERING_USB
+const val BT_MASK = 1 shl TETHERING_BLUETOOTH
+const val TITTLE = "Tethering active"
+const val MESSAGE = "Tap here to set up."
+const val TEST_TITTLE = "Hotspot active"
+const val TEST_MESSAGE = "Tap to set up hotspot."
+
+@RunWith(AndroidJUnit4::class)
+@SmallTest
+class TetheringNotificationUpdaterTest {
+    // lateinit used here for mocks as they need to be reinitialized between each test and the test
+    // should crash if they are used before being initialized.
+    @Mock private lateinit var mockContext: Context
+    @Mock private lateinit var notificationManager: NotificationManager
+    @Mock private lateinit var defaultResources: Resources
+    @Mock private lateinit var testResources: Resources
+
+    // lateinit for this class under test, as it should be reset to a different instance for every
+    // tests but should always be initialized before use (or the test should crash).
+    private lateinit var notificationUpdater: TetheringNotificationUpdater
+
+    private val ENABLE_ICON_CONFIGS = arrayOf(
+            "USB;android.test:drawable/usb", "BT;android.test:drawable/bluetooth",
+            "WIFI|BT;android.test:drawable/general", "WIFI|USB;android.test:drawable/general",
+            "USB|BT;android.test:drawable/general", "WIFI|USB|BT;android.test:drawable/general")
+
+    private inner class TestContext(c: Context) : BroadcastInterceptingContext(c) {
+        override fun createContextAsUser(user: UserHandle, flags: Int) =
+                if (user == UserHandle.ALL) mockContext else this
+    }
+
+    private inner class WrappedNotificationUpdater(c: Context) : TetheringNotificationUpdater(c) {
+        override fun getResourcesForSubId(context: Context, subId: Int) =
+                if (subId == TEST_SUBID) testResources else defaultResources
+    }
+
+    private fun setupResources() {
+        doReturn(ENABLE_ICON_CONFIGS).`when`(defaultResources)
+                .getStringArray(R.array.tethering_notification_icons)
+        doReturn(arrayOf("WIFI;android.test:drawable/wifi")).`when`(testResources)
+                .getStringArray(R.array.tethering_notification_icons)
+        doReturn(TITTLE).`when`(defaultResources).getString(R.string.tethering_notification_title)
+        doReturn(MESSAGE).`when`(defaultResources)
+                .getString(R.string.tethering_notification_message)
+        doReturn(TEST_TITTLE).`when`(testResources).getString(R.string.tethering_notification_title)
+        doReturn(TEST_MESSAGE).`when`(testResources)
+                .getString(R.string.tethering_notification_message)
+        doReturn(USB_ICON_ID).`when`(defaultResources)
+                .getIdentifier(eq("android.test:drawable/usb"), any(), any())
+        doReturn(BT_ICON_ID).`when`(defaultResources)
+                .getIdentifier(eq("android.test:drawable/bluetooth"), any(), any())
+        doReturn(GENERAL_ICON_ID).`when`(defaultResources)
+                .getIdentifier(eq("android.test:drawable/general"), any(), any())
+        doReturn(WIFI_ICON_ID).`when`(testResources)
+                .getIdentifier(eq("android.test:drawable/wifi"), any(), any())
+    }
+
+    @Before
+    fun setUp() {
+        MockitoAnnotations.initMocks(this)
+        val context = TestContext(InstrumentationRegistry.getInstrumentation().context)
+        doReturn(notificationManager).`when`(mockContext)
+                .getSystemService(Context.NOTIFICATION_SERVICE)
+        notificationUpdater = WrappedNotificationUpdater(context)
+        setupResources()
+    }
+
+    private fun Notification.title() = this.extras.getString(Notification.EXTRA_TITLE)
+    private fun Notification.text() = this.extras.getString(Notification.EXTRA_TEXT)
+
+    private fun verifyNotification(iconId: Int = 0, title: String = "", text: String = "") {
+        verify(notificationManager, never()).cancel(any(), anyInt())
+
+        val notificationCaptor = ArgumentCaptor.forClass(Notification::class.java)
+        verify(notificationManager, times(1))
+                .notify(any(), anyInt(), notificationCaptor.capture())
+
+        val notification = notificationCaptor.getValue()
+        assertEquals(iconId, notification.smallIcon.resId)
+        assertEquals(title, notification.title())
+        assertEquals(text, notification.text())
+
+        reset(notificationManager)
+    }
+
+    private fun verifyNoNotification() {
+        verify(notificationManager, times(1)).cancel(any(), anyInt())
+        verify(notificationManager, never()).notify(any(), anyInt(), any())
+
+        reset(notificationManager)
+    }
+
+    @Test
+    fun testNotificationWithDownstreamChanged() {
+        // Wifi downstream. No notification.
+        notificationUpdater.onDownstreamChanged(WIFI_MASK)
+        verifyNoNotification()
+
+        // Same downstream changed. Nothing happened.
+        notificationUpdater.onDownstreamChanged(WIFI_MASK)
+        verifyZeroInteractions(notificationManager)
+
+        // Wifi and usb downstreams. Show enable notification
+        notificationUpdater.onDownstreamChanged(WIFI_MASK or USB_MASK)
+        verifyNotification(GENERAL_ICON_ID, TITTLE, MESSAGE)
+
+        // Usb downstream. Still show enable notification.
+        notificationUpdater.onDownstreamChanged(USB_MASK)
+        verifyNotification(USB_ICON_ID, TITTLE, MESSAGE)
+
+        // No downstream. No notification.
+        notificationUpdater.onDownstreamChanged(DOWNSTREAM_NONE)
+        verifyNoNotification()
+    }
+
+    @Test
+    fun testNotificationWithActiveDataSubscriptionIdChanged() {
+        // Usb downstream. Showed enable notification with default resource.
+        notificationUpdater.onDownstreamChanged(USB_MASK)
+        verifyNotification(USB_ICON_ID, TITTLE, MESSAGE)
+
+        // Same subId changed. Nothing happened.
+        notificationUpdater.onActiveDataSubscriptionIdChanged(INVALID_SUBSCRIPTION_ID)
+        verifyZeroInteractions(notificationManager)
+
+        // Set test sub id. Clear notification with test resource.
+        notificationUpdater.onActiveDataSubscriptionIdChanged(TEST_SUBID)
+        verifyNoNotification()
+
+        // Wifi downstream. Show enable notification with test resource.
+        notificationUpdater.onDownstreamChanged(WIFI_MASK)
+        verifyNotification(WIFI_ICON_ID, TEST_TITTLE, TEST_MESSAGE)
+
+        // No downstream. No notification.
+        notificationUpdater.onDownstreamChanged(DOWNSTREAM_NONE)
+        verifyNoNotification()
+    }
+
+    private fun assertIconNumbers(number: Int, configs: Array<String?>) {
+        doReturn(configs).`when`(defaultResources)
+                .getStringArray(R.array.tethering_notification_icons)
+        assertEquals(number, notificationUpdater.getIcons(
+                R.array.tethering_notification_icons, defaultResources).size())
+    }
+
+    @Test
+    fun testGetIcons() {
+        assertIconNumbers(0, arrayOfNulls<String>(0))
+        assertIconNumbers(0, arrayOf(null, ""))
+        assertIconNumbers(3, arrayOf(
+                // These configurations are invalid with wrong strings or symbols.
+                ";", ",", "|", "|,;", "WIFI", "1;2", " U SB; ", "bt;", "WIFI;USB;BT", "WIFI|USB|BT",
+                "WIFI,BT,USB", " WIFI| |  | USB, test:drawable/test",
+                // This configuration is valid with two downstream types (USB, BT).
+                "USB|,,,,,|BT;drawable/test ",
+                // This configuration is valid with one downstream types (WIFI).
+                "     WIFI     ; android.test:drawable/xxx "))
+    }
+
+    @Test
+    fun testGetDownstreamTypesMask() {
+        assertEquals(DOWNSTREAM_NONE, notificationUpdater.getDownstreamTypesMask(""))
+        assertEquals(DOWNSTREAM_NONE, notificationUpdater.getDownstreamTypesMask("1"))
+        assertEquals(DOWNSTREAM_NONE, notificationUpdater.getDownstreamTypesMask("WIFI_P2P"))
+        assertEquals(DOWNSTREAM_NONE, notificationUpdater.getDownstreamTypesMask("usb"))
+        assertEquals(WIFI_MASK, notificationUpdater.getDownstreamTypesMask(" WIFI "))
+        assertEquals(USB_MASK, notificationUpdater.getDownstreamTypesMask("USB | B T"))
+        assertEquals(BT_MASK, notificationUpdater.getDownstreamTypesMask(" WIFI: | BT"))
+        assertEquals(WIFI_MASK or USB_MASK,
+                notificationUpdater.getDownstreamTypesMask("1|2|USB|WIFI|BLUETOOTH||"))
+    }
+
+    @Test
+    fun testSetupRestrictedNotification() {
+        val title = InstrumentationRegistry.getInstrumentation().context.resources
+                .getString(R.string.disable_tether_notification_title)
+        val message = InstrumentationRegistry.getInstrumentation().context.resources
+                .getString(R.string.disable_tether_notification_message)
+        val disallowTitle = "Tether function is disallowed"
+        val disallowMessage = "Please contact your admin"
+        doReturn(title).`when`(defaultResources)
+                .getString(R.string.disable_tether_notification_title)
+        doReturn(message).`when`(defaultResources)
+                .getString(R.string.disable_tether_notification_message)
+        doReturn(disallowTitle).`when`(testResources)
+                .getString(R.string.disable_tether_notification_title)
+        doReturn(disallowMessage).`when`(testResources)
+                .getString(R.string.disable_tether_notification_message)
+
+        // User restrictions on. Show restricted notification.
+        notificationUpdater.notifyTetheringDisabledByRestriction()
+        verifyNotification(R.drawable.stat_sys_tether_general, title, message)
+
+        // User restrictions off. Clear notification.
+        notificationUpdater.tetheringRestrictionLifted()
+        verifyNoNotification()
+
+        // Set test sub id. No notification.
+        notificationUpdater.onActiveDataSubscriptionIdChanged(TEST_SUBID)
+        verifyNoNotification()
+
+        // User restrictions on again. Show restricted notification with test resource.
+        notificationUpdater.notifyTetheringDisabledByRestriction()
+        verifyNotification(R.drawable.stat_sys_tether_general, disallowTitle, disallowMessage)
+    }
+}
\ No newline at end of file
diff --git a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringTest.java b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringTest.java
index 820c852..a59c6fd 100644
--- a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringTest.java
+++ b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringTest.java
@@ -82,6 +82,7 @@
 import android.net.ConnectivityManager;
 import android.net.EthernetManager;
 import android.net.EthernetManager.TetheredInterfaceRequest;
+import android.net.IIntResultListener;
 import android.net.INetd;
 import android.net.ITetheringEventCallback;
 import android.net.InetAddresses;
@@ -209,7 +210,6 @@
     private PhoneStateListener mPhoneStateListener;
     private InterfaceConfigurationParcel mInterfaceConfiguration;
 
-
     private class TestContext extends BroadcastInterceptingContext {
         TestContext(Context base) {
             super(base);
@@ -484,6 +484,7 @@
         mServiceContext.registerReceiver(mBroadcastReceiver,
                 new IntentFilter(ACTION_TETHER_STATE_CHANGED));
         mTethering = makeTethering();
+        mTethering.startStateMachineUpdaters();
         verify(mStatsManager, times(1)).registerNetworkStatsProvider(anyString(), any());
         verify(mNetd).registerUnsolicitedEventListener(any());
         final ArgumentCaptor<PhoneStateListener> phoneListenerCaptor =
@@ -499,10 +500,16 @@
         return new Tethering(mTetheringDependencies);
     }
 
-    private TetheringRequestParcel createTetheringRquestParcel(final int type) {
+    private TetheringRequestParcel createTetheringRequestParcel(final int type) {
+        return createTetheringRequestParcel(type, null, null);
+    }
+
+    private TetheringRequestParcel createTetheringRequestParcel(final int type,
+            final LinkAddress serverAddr, final LinkAddress clientAddr) {
         final TetheringRequestParcel request = new TetheringRequestParcel();
         request.tetheringType = type;
-        request.localIPv4Address = null;
+        request.localIPv4Address = serverAddr;
+        request.staticClientAddress = clientAddr;
         request.exemptFromEntitlementCheck = false;
         request.showProvisioningUi = false;
 
@@ -616,7 +623,7 @@
 
     private void prepareNcmTethering() {
         // Emulate startTethering(TETHERING_NCM) called
-        mTethering.startTethering(createTetheringRquestParcel(TETHERING_NCM), null);
+        mTethering.startTethering(createTetheringRequestParcel(TETHERING_NCM), null);
         mLooper.dispatchAll();
         verify(mUsbManager, times(1)).setCurrentFunctions(UsbManager.FUNCTION_NCM);
 
@@ -629,7 +636,7 @@
                 .thenReturn(upstreamState);
 
         // Emulate pressing the USB tethering button in Settings UI.
-        mTethering.startTethering(createTetheringRquestParcel(TETHERING_USB), null);
+        mTethering.startTethering(createTetheringRequestParcel(TETHERING_USB), null);
         mLooper.dispatchAll();
         verify(mUsbManager, times(1)).setCurrentFunctions(UsbManager.FUNCTION_RNDIS);
 
@@ -903,7 +910,7 @@
         when(mWifiManager.startTetheredHotspot(any(SoftApConfiguration.class))).thenReturn(true);
 
         // Emulate pressing the WiFi tethering button.
-        mTethering.startTethering(createTetheringRquestParcel(TETHERING_WIFI), null);
+        mTethering.startTethering(createTetheringRequestParcel(TETHERING_WIFI), null);
         mLooper.dispatchAll();
         verify(mWifiManager, times(1)).startTetheredHotspot(null);
         verifyNoMoreInteractions(mWifiManager);
@@ -931,7 +938,7 @@
         when(mWifiManager.startTetheredHotspot(any(SoftApConfiguration.class))).thenReturn(true);
 
         // Emulate pressing the WiFi tethering button.
-        mTethering.startTethering(createTetheringRquestParcel(TETHERING_WIFI), null);
+        mTethering.startTethering(createTetheringRequestParcel(TETHERING_WIFI), null);
         mLooper.dispatchAll();
         verify(mWifiManager, times(1)).startTetheredHotspot(null);
         verifyNoMoreInteractions(mWifiManager);
@@ -1008,7 +1015,7 @@
         doThrow(new RemoteException()).when(mNetd).ipfwdEnableForwarding(TETHERING_NAME);
 
         // Emulate pressing the WiFi tethering button.
-        mTethering.startTethering(createTetheringRquestParcel(TETHERING_WIFI), null);
+        mTethering.startTethering(createTetheringRequestParcel(TETHERING_WIFI), null);
         mLooper.dispatchAll();
         verify(mWifiManager, times(1)).startTetheredHotspot(null);
         verifyNoMoreInteractions(mWifiManager);
@@ -1066,13 +1073,15 @@
         when(mUserManager.getUserRestrictions()).thenReturn(newRestrictions);
 
         final Tethering.UserRestrictionActionListener ural =
-                new Tethering.UserRestrictionActionListener(mUserManager, mockTethering);
+                new Tethering.UserRestrictionActionListener(
+                        mUserManager, mockTethering, mNotificationUpdater);
         ural.mDisallowTethering = currentDisallow;
 
         ural.onUserRestrictionsChanged();
 
-        verify(mockTethering, times(expectedInteractionsWithShowNotification))
-                .untetherAll();
+        verify(mNotificationUpdater, times(expectedInteractionsWithShowNotification))
+                .notifyTetheringDisabledByRestriction();
+        verify(mockTethering, times(expectedInteractionsWithShowNotification)).untetherAll();
     }
 
     @Test
@@ -1080,7 +1089,7 @@
         final String[] emptyActiveIfacesList = new String[]{};
         final boolean currDisallow = false;
         final boolean nextDisallow = true;
-        final int expectedInteractionsWithShowNotification = 0;
+        final int expectedInteractionsWithShowNotification = 1;
 
         runUserRestrictionsChange(currDisallow, nextDisallow, emptyActiveIfacesList,
                 expectedInteractionsWithShowNotification);
@@ -1303,7 +1312,7 @@
         tetherState = callback.pollTetherStatesChanged();
         assertArrayEquals(tetherState.availableList, new String[] {TEST_WLAN_IFNAME});
 
-        mTethering.startTethering(createTetheringRquestParcel(TETHERING_WIFI), null);
+        mTethering.startTethering(createTetheringRequestParcel(TETHERING_WIFI), null);
         sendWifiApStateChanged(WIFI_AP_STATE_ENABLED, TEST_WLAN_IFNAME, IFACE_IP_MODE_TETHERED);
         mLooper.dispatchAll();
         tetherState = callback.pollTetherStatesChanged();
@@ -1392,16 +1401,17 @@
         mPhoneStateListener.onActiveDataSubscriptionIdChanged(fakeSubId);
         final TetheringConfiguration newConfig = mTethering.getTetheringConfiguration();
         assertEquals(fakeSubId, newConfig.activeDataSubId);
+        verify(mNotificationUpdater, times(1)).onActiveDataSubscriptionIdChanged(eq(fakeSubId));
     }
 
     @Test
     public void testNoDuplicatedEthernetRequest() throws Exception {
         final TetheredInterfaceRequest mockRequest = mock(TetheredInterfaceRequest.class);
         when(mEm.requestTetheredInterface(any(), any())).thenReturn(mockRequest);
-        mTethering.startTethering(createTetheringRquestParcel(TETHERING_ETHERNET), null);
+        mTethering.startTethering(createTetheringRequestParcel(TETHERING_ETHERNET), null);
         mLooper.dispatchAll();
         verify(mEm, times(1)).requestTetheredInterface(any(), any());
-        mTethering.startTethering(createTetheringRquestParcel(TETHERING_ETHERNET), null);
+        mTethering.startTethering(createTetheringRequestParcel(TETHERING_ETHERNET), null);
         mLooper.dispatchAll();
         verifyNoMoreInteractions(mEm);
         mTethering.stopTethering(TETHERING_ETHERNET);
@@ -1580,6 +1590,86 @@
         assertTrue(element + " not found in " + collection, collection.contains(element));
     }
 
+    private class ResultListener extends IIntResultListener.Stub {
+        private final int mExpectedResult;
+        private boolean mHasResult = false;
+        ResultListener(final int expectedResult) {
+            mExpectedResult = expectedResult;
+        }
+
+        @Override
+        public void onResult(final int resultCode) {
+            mHasResult = true;
+            if (resultCode != mExpectedResult) {
+                fail("expected result: " + mExpectedResult + " but actual result: " + resultCode);
+            }
+        }
+
+        public void assertHasResult() {
+            if (!mHasResult) fail("No callback result");
+        }
+    }
+
+    @Test
+    public void testMultipleStartTethering() throws Exception {
+        final LinkAddress serverLinkAddr = new LinkAddress("192.168.20.1/24");
+        final LinkAddress clientLinkAddr = new LinkAddress("192.168.20.42/24");
+        final String serverAddr = "192.168.20.1";
+        final ResultListener firstResult = new ResultListener(TETHER_ERROR_NO_ERROR);
+        final ResultListener secondResult = new ResultListener(TETHER_ERROR_NO_ERROR);
+        final ResultListener thirdResult = new ResultListener(TETHER_ERROR_NO_ERROR);
+
+        // Enable USB tethering and check that Tethering starts USB.
+        mTethering.startTethering(createTetheringRequestParcel(TETHERING_USB,
+                  null, null), firstResult);
+        mLooper.dispatchAll();
+        firstResult.assertHasResult();
+        verify(mUsbManager, times(1)).setCurrentFunctions(UsbManager.FUNCTION_RNDIS);
+        verifyNoMoreInteractions(mUsbManager);
+
+        // Enable USB tethering again with the same request and expect no change to USB.
+        mTethering.startTethering(createTetheringRequestParcel(TETHERING_USB,
+                  null, null), secondResult);
+        mLooper.dispatchAll();
+        secondResult.assertHasResult();
+        verify(mUsbManager, never()).setCurrentFunctions(UsbManager.FUNCTION_NONE);
+        reset(mUsbManager);
+
+        // Enable USB tethering with a different request and expect that USB is stopped and
+        // started.
+        mTethering.startTethering(createTetheringRequestParcel(TETHERING_USB,
+                  serverLinkAddr, clientLinkAddr), thirdResult);
+        mLooper.dispatchAll();
+        thirdResult.assertHasResult();
+        verify(mUsbManager, times(1)).setCurrentFunctions(UsbManager.FUNCTION_NONE);
+        verify(mUsbManager, times(1)).setCurrentFunctions(UsbManager.FUNCTION_RNDIS);
+
+        // Expect that when USB comes up, the DHCP server is configured with the requested address.
+        mTethering.interfaceStatusChanged(TEST_USB_IFNAME, true);
+        sendUsbBroadcast(true, true, true, TETHERING_USB);
+        mLooper.dispatchAll();
+        verify(mDhcpServer, timeout(DHCPSERVER_START_TIMEOUT_MS).times(1)).startWithCallbacks(
+                any(), any());
+        verify(mNetd).interfaceSetCfg(argThat(cfg -> serverAddr.equals(cfg.ipv4Addr)));
+    }
+
+    @Test
+    public void testRequestStaticServerIp() throws Exception {
+        final LinkAddress serverLinkAddr = new LinkAddress("192.168.20.1/24");
+        final LinkAddress clientLinkAddr = new LinkAddress("192.168.20.42/24");
+        final String serverAddr = "192.168.20.1";
+        mTethering.startTethering(createTetheringRequestParcel(TETHERING_USB,
+                  serverLinkAddr, clientLinkAddr), null);
+        mLooper.dispatchAll();
+        verify(mUsbManager, times(1)).setCurrentFunctions(UsbManager.FUNCTION_RNDIS);
+        mTethering.interfaceStatusChanged(TEST_USB_IFNAME, true);
+        sendUsbBroadcast(true, true, true, TETHERING_USB);
+        mLooper.dispatchAll();
+        verify(mNetd).interfaceSetCfg(argThat(cfg -> serverAddr.equals(cfg.ipv4Addr)));
+
+        // TODO: test static client address.
+    }
+
     // TODO: Test that a request for hotspot mode doesn't interfere with an
     // already operating tethering mode interface.
 }
diff --git a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/UpstreamNetworkMonitorTest.java b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/UpstreamNetworkMonitorTest.java
index 5ed75bf..7c98f62 100644
--- a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/UpstreamNetworkMonitorTest.java
+++ b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/UpstreamNetworkMonitorTest.java
@@ -212,8 +212,8 @@
         mUNM.updateMobileRequiresDun(true);
         mUNM.registerMobileNetworkRequest();
         verify(mCM, times(1)).requestNetwork(
-                any(NetworkRequest.class), any(NetworkCallback.class), anyInt(), anyInt(),
-                any(Handler.class));
+                any(NetworkRequest.class), anyInt(), anyInt(), any(Handler.class),
+                any(NetworkCallback.class));
 
         assertTrue(mUNM.mobileNetworkRequested());
         assertUpstreamTypeRequested(TYPE_MOBILE_DUN);
@@ -649,8 +649,8 @@
         }
 
         @Override
-        public void requestNetwork(NetworkRequest req, NetworkCallback cb,
-                int timeoutMs, int legacyType, Handler h) {
+        public void requestNetwork(NetworkRequest req,
+                int timeoutMs, int legacyType, Handler h, NetworkCallback cb) {
             assertFalse(allCallbacks.containsKey(cb));
             allCallbacks.put(cb, h);
             assertFalse(requested.containsKey(cb));
diff --git a/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java b/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java
index 8a4a1c6..93bffe9 100644
--- a/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java
+++ b/packages/WallpaperBackup/src/com/android/wallpaperbackup/WallpaperBackupAgent.java
@@ -164,6 +164,9 @@
                 }
                 if (DEBUG) Slog.v(TAG, "Storing wallpaper metadata");
                 backupFile(infoStage, data);
+            } else {
+                Slog.w(TAG, "Wallpaper metadata file doesn't exist: " +
+                        mWallpaperFile.getPath());
             }
             if (sysEligible && mWallpaperFile.exists()) {
                 if (sysChanged || !imageStage.exists()) {
@@ -173,6 +176,10 @@
                 if (DEBUG) Slog.v(TAG, "Storing system wallpaper image");
                 backupFile(imageStage, data);
                 prefs.edit().putInt(SYSTEM_GENERATION, sysGeneration).apply();
+            } else {
+                Slog.w(TAG, "Not backing up wallpaper as one of conditions is not "
+                        + "met: sysEligible = " + sysEligible + " wallpaperFileExists = "
+                        + mWallpaperFile.exists());
             }
 
             // If there's no lock wallpaper, then we have nothing to add to the backup.
@@ -181,7 +188,7 @@
                     if (DEBUG) Slog.v(TAG, "Removed lock wallpaper; deleting");
                     lockImageStage.delete();
                 }
-                if (DEBUG) Slog.v(TAG, "No lock paper set, add nothing to backup");
+                Slog.d(TAG, "No lockscreen wallpaper set, add nothing to backup");
                 prefs.edit().putInt(LOCK_GENERATION, lockGeneration).apply();
                 return;
             }
@@ -195,6 +202,12 @@
                 if (DEBUG) Slog.v(TAG, "Storing lock wallpaper image");
                 backupFile(lockImageStage, data);
                 prefs.edit().putInt(LOCK_GENERATION, lockGeneration).apply();
+            } else {
+                Slog.w(TAG, "Not backing up lockscreen wallpaper as one of conditions is not "
+                        + "met: lockEligible = " + lockEligible + " hasLockWallpaper = "
+                        + hasLockWallpaper + " lockWallpaperFileExists = "
+                        + mLockWallpaperFile.exists() + " quotaExceeded (last time) = "
+                        + mQuotaExceeded);
             }
         } catch (Exception e) {
             Slog.e(TAG, "Unable to back up wallpaper", e);
@@ -216,9 +229,7 @@
 
     @Override
     public void onQuotaExceeded(long backupDataBytes, long quotaBytes) {
-        if (DEBUG) {
-            Slog.i(TAG, "Quota exceeded (" + backupDataBytes + " vs " + quotaBytes + ')');
-        }
+        Slog.i(TAG, "Quota exceeded (" + backupDataBytes + " vs " + quotaBytes + ')');
         try (FileOutputStream f = new FileOutputStream(mQuotaFile)) {
             f.write(0);
         } catch (Exception e) {
@@ -230,9 +241,7 @@
     // then post-process in onRestoreFinished() to apply the new wallpaper.
     @Override
     public void onRestoreFinished() {
-        if (DEBUG) {
-            Slog.v(TAG, "onRestoreFinished()");
-        }
+        Slog.v(TAG, "onRestoreFinished()");
         final File filesDir = getFilesDir();
         final File infoStage = new File(filesDir, INFO_STAGE);
         final File imageStage = new File (filesDir, IMAGE_STAGE);
@@ -253,9 +262,7 @@
             // And reset to the wallpaper service we should be using
             ComponentName wpService = parseWallpaperComponent(infoStage, "wp");
             if (servicePackageExists(wpService)) {
-                if (DEBUG) {
-                    Slog.i(TAG, "Using wallpaper service " + wpService);
-                }
+                Slog.i(TAG, "Using wallpaper service " + wpService);
                 mWm.setWallpaperComponent(wpService, UserHandle.USER_SYSTEM);
                 if (!lockImageStage.exists()) {
                     // We have a live wallpaper and no static lock image,
@@ -273,9 +280,7 @@
         } catch (Exception e) {
             Slog.e(TAG, "Unable to restore wallpaper: " + e.getMessage());
         } finally {
-            if (DEBUG) {
-                Slog.v(TAG, "Restore finished; clearing backup bookkeeping");
-            }
+            Slog.v(TAG, "Restore finished; clearing backup bookkeeping");
             infoStage.delete();
             imageStage.delete();
             lockImageStage.delete();
@@ -295,14 +300,14 @@
             // relies on a priori knowledge of the wallpaper info file schema.
             Rect cropHint = parseCropHint(info, hintTag);
             if (cropHint != null) {
-                Slog.i(TAG, "Got restored wallpaper; applying which=" + which);
-                if (DEBUG) {
-                    Slog.v(TAG, "Restored crop hint " + cropHint);
-                }
+                Slog.i(TAG, "Got restored wallpaper; applying which=" + which
+                        + "; cropHint = " + cropHint);
                 try (FileInputStream in = new FileInputStream(stage)) {
                     mWm.setStream(in, cropHint.isEmpty() ? null : cropHint, true, which);
                 } finally {} // auto-closes 'in'
             }
+        } else {
+            Slog.d(TAG, "Restore data doesn't exist for file " + stage.getPath());
         }
     }
 
diff --git a/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java b/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java
index 6112da5..fe9f60f 100644
--- a/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java
+++ b/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java
@@ -37,7 +37,6 @@
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.util.Log;
-import android.util.Size;
 import android.view.Display;
 import android.view.View;
 import android.widget.Toast;
@@ -358,8 +357,8 @@
         // Get the crop
         boolean ltr = mCropView.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR;
 
-        Size windowSize = getWindowManager().getCurrentWindowMetrics().getSize();
-        boolean isPortrait = windowSize.getWidth() < windowSize.getHeight();
+        Rect windowBounds = getWindowManager().getCurrentWindowMetrics().getBounds();
+        boolean isPortrait = windowBounds.width() < windowBounds.height();
 
         Point defaultWallpaperSize = getDefaultWallpaperSize(getResources(),
                 getDisplay());
diff --git a/packages/overlays/IconShapeFlowerOverlay/AndroidManifest.xml b/packages/overlays/IconShapeFlowerOverlay/AndroidManifest.xml
index 9d20c6b..22411a2 100644
--- a/packages/overlays/IconShapeFlowerOverlay/AndroidManifest.xml
+++ b/packages/overlays/IconShapeFlowerOverlay/AndroidManifest.xml
@@ -19,6 +19,7 @@
           android:versionName="1.0">
     <overlay
         android:targetPackage="android"
+        android:targetName="IconShapeCustomization"
         android:category="android.theme.customization.adaptive_icon_shape"
         android:priority="1"/>
 
diff --git a/packages/overlays/IconShapeHexagonOverlay/AndroidManifest.xml b/packages/overlays/IconShapeHexagonOverlay/AndroidManifest.xml
index bf408fd..384d5b3 100644
--- a/packages/overlays/IconShapeHexagonOverlay/AndroidManifest.xml
+++ b/packages/overlays/IconShapeHexagonOverlay/AndroidManifest.xml
@@ -20,6 +20,7 @@
           android:versionName="1.0">
     <overlay
         android:targetPackage="android"
+        android:targetName="IconShapeCustomization"
         android:category="android.theme.customization.adaptive_icon_shape"
         android:priority="1"/>
 
diff --git a/services/Android.bp b/services/Android.bp
index c4be003..1ce7dcf 100644
--- a/services/Android.bp
+++ b/services/Android.bp
@@ -116,6 +116,7 @@
     name: "services-stubs.sources",
     srcs: [":services-all-sources"],
     installable: false,
+    api_tag_name: "SYSTEM_SERVER",
     args: " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.SYSTEM_SERVER\\)" +
         " --hide-annotation android.annotation.Hide" +
         " --hide InternalClasses" + // com.android.* classes are okay in this interface
@@ -125,6 +126,7 @@
         " --hide DeprecationMismatch" +
         " --hide HiddenTypedefConstant",
     visibility: ["//visibility:private"],
+    filter_packages: ["com.android."],
     check_api: {
         current: {
             api_file: "api/current.txt",
@@ -141,10 +143,16 @@
             baseline_file: "api/lint-baseline.txt",
         },
     },
+    dist: {
+        targets: ["sdk", "win_sdk"],
+        dir: "apistubs/android/system-server/api",
+        dest: "android.txt",
+    },
 }
 
 java_library {
-    name: "services-stubs",
+    name: "android_system_server_stubs_current",
     srcs: [":services-stubs.sources"],
     installable: false,
+    static_libs: ["android_module_lib_stubs_current"],
 }
diff --git a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
index 4052942..c8b6d8d 100644
--- a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
+++ b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
@@ -18,6 +18,7 @@
 
 import static android.accessibilityservice.AccessibilityService.KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE;
 import static android.accessibilityservice.AccessibilityService.KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER;
+import static android.accessibilityservice.AccessibilityService.KEY_ACCESSIBILITY_SCREENSHOT_STATUS;
 import static android.accessibilityservice.AccessibilityService.KEY_ACCESSIBILITY_SCREENSHOT_TIMESTAMP;
 import static android.accessibilityservice.AccessibilityServiceInfo.DEFAULT;
 import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
@@ -66,6 +67,7 @@
 import android.view.KeyEvent;
 import android.view.MagnificationSpec;
 import android.view.SurfaceControl;
+import android.view.SurfaceControl.ScreenshotGraphicBuffer;
 import android.view.View;
 import android.view.WindowInfo;
 import android.view.accessibility.AccessibilityCache;
@@ -977,18 +979,22 @@
     }
 
     @Override
-    public boolean takeScreenshot(int displayId, RemoteCallback callback) {
+    public void takeScreenshot(int displayId, RemoteCallback callback) {
         final long currentTimestamp = SystemClock.uptimeMillis();
         if (mRequestTakeScreenshotTimestampMs != 0
                 && (currentTimestamp - mRequestTakeScreenshotTimestampMs)
                 <= AccessibilityService.ACCESSIBILITY_TAKE_SCREENSHOT_REQUEST_INTERVAL_TIMES_MS) {
-            return false;
+            sendScreenshotFailure(AccessibilityService.ERROR_TAKE_SCREENSHOT_INTERVAL_TIME_SHORT,
+                    callback);
+            return;
         }
         mRequestTakeScreenshotTimestampMs = currentTimestamp;
 
         synchronized (mLock) {
             if (!hasRightsToCurrentUserLocked()) {
-                return false;
+                sendScreenshotFailure(AccessibilityService.ERROR_TAKE_SCREENSHOT_INTERNAL_ERROR,
+                        callback);
+                return;
             }
 
             if (!mSecurityPolicy.canTakeScreenshotLocked(this)) {
@@ -998,43 +1004,57 @@
         }
 
         if (!mSecurityPolicy.checkAccessibilityAccess(this)) {
-            return false;
+            sendScreenshotFailure(
+                    AccessibilityService.ERROR_TAKE_SCREENSHOT_NO_ACCESSIBILITY_ACCESS,
+                    callback);
+            return;
         }
 
         final Display display = DisplayManagerGlobal.getInstance()
                 .getRealDisplay(displayId);
         if (display == null) {
-            return false;
+            sendScreenshotFailure(AccessibilityService.ERROR_TAKE_SCREENSHOT_INVALID_DISPLAY,
+                    callback);
+            return;
         }
 
+        sendScreenshotSuccess(display, callback);
+    }
+
+    private ScreenshotGraphicBuffer takeScreenshotBuffer(Display display) {
+        final Point displaySize = new Point();
+        // TODO (b/145893483): calling new API with the display as a parameter
+        // when surface control supported.
+        final IBinder token = SurfaceControl.getInternalDisplayToken();
+        final Rect crop = new Rect(0, 0, displaySize.x, displaySize.y);
+        final int rotation = display.getRotation();
+        display.getRealSize(displaySize);
+
+        return SurfaceControl.screenshotToBuffer(token, crop, displaySize.x, displaySize.y,
+                false, rotation);
+    }
+
+    private void sendScreenshotSuccess(Display display, RemoteCallback callback) {
         final long identity = Binder.clearCallingIdentity();
         try {
             mMainHandler.post(PooledLambda.obtainRunnable((nonArg) -> {
-                final Point displaySize = new Point();
-                // TODO (b/145893483): calling new API with the display as a parameter
-                // when surface control supported.
-                final IBinder token = SurfaceControl.getInternalDisplayToken();
-                final Rect crop = new Rect(0, 0, displaySize.x, displaySize.y);
-                final int rotation = display.getRotation();
-                display.getRealSize(displaySize);
-
-                final SurfaceControl.ScreenshotGraphicBuffer screenshotBuffer =
-                        SurfaceControl.screenshotToBufferWithSecureLayersUnsafe(token, crop,
-                                displaySize.x, displaySize.y, false,
-                                rotation);
+                final ScreenshotGraphicBuffer screenshotBuffer = takeScreenshotBuffer(display);
                 final GraphicBuffer graphicBuffer = screenshotBuffer.getGraphicBuffer();
                 try (HardwareBuffer hardwareBuffer =
-                        HardwareBuffer.createFromGraphicBuffer(graphicBuffer)) {
+                             HardwareBuffer.createFromGraphicBuffer(graphicBuffer)) {
                     final ParcelableColorSpace colorSpace =
                             new ParcelableColorSpace(screenshotBuffer.getColorSpace());
 
-                    // Send back the result.
                     final Bundle payload = new Bundle();
+                    payload.putInt(KEY_ACCESSIBILITY_SCREENSHOT_STATUS,
+                            AccessibilityService.TAKE_SCREENSHOT_SUCCESS);
                     payload.putParcelable(KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER,
                             hardwareBuffer);
                     payload.putParcelable(KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE, colorSpace);
                     payload.putLong(KEY_ACCESSIBILITY_SCREENSHOT_TIMESTAMP,
                             SystemClock.uptimeMillis());
+
+                    // Send back the result.
                     callback.sendResult(payload);
                     hardwareBuffer.close();
                 }
@@ -1042,8 +1062,16 @@
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
+    }
 
-        return true;
+    private void sendScreenshotFailure(@AccessibilityService.ScreenshotErrorCode int errorCode,
+            RemoteCallback callback) {
+        mMainHandler.post(PooledLambda.obtainRunnable((nonArg) -> {
+            final Bundle payload = new Bundle();
+            payload.putInt(KEY_ACCESSIBILITY_SCREENSHOT_STATUS, errorCode);
+            // Send back the result.
+            callback.sendResult(payload);
+        }, null).recycleOnUse());
     }
 
     @Override
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
index 60c3d78..1b180e3 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -2001,17 +2001,6 @@
                 Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE,
                 userState.mUserId, currentTargets, str -> str);
         scheduleNotifyClientsOfServicesStateChangeLocked(userState);
-
-        // Disable accessibility shortcut key if there's no shortcut installed.
-        if (currentTargets.isEmpty()) {
-            final long identity = Binder.clearCallingIdentity();
-            try {
-                Settings.Secure.putIntForUser(mContext.getContentResolver(),
-                        Settings.Secure.ACCESSIBILITY_SHORTCUT_ENABLED, 0, userState.mUserId);
-            } finally {
-                Binder.restoreCallingIdentity(identity);
-            }
-        }
     }
 
     private boolean canRequestAndRequestsTouchExplorationLocked(
diff --git a/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java b/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java
index 4f5b9ed..d1c3a02 100644
--- a/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java
+++ b/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java
@@ -328,8 +328,6 @@
         public void onFingerprintGesture(int gesture) {}
 
         @Override
-        public boolean takeScreenshot(int displayId, RemoteCallback callback) {
-            return false;
-        }
+        public void takeScreenshot(int displayId, RemoteCallback callback) {}
     }
 }
diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java b/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java
index 61c6ef5..bc38fbf 100644
--- a/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java
+++ b/services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java
@@ -274,23 +274,38 @@
     public void onAccessibilityEvent(AccessibilityEvent event) {
         final int eventType = event.getEventType();
 
+        if (eventType == AccessibilityEvent.TYPE_VIEW_HOVER_EXIT) {
+            sendsPendingA11yEventsIfNeed();
+        }
+        super.onAccessibilityEvent(event);
+    }
+
+    /*
+     * Sends pending {@link AccessibilityEvent#TYPE_TOUCH_EXPLORATION_GESTURE_END} or {@{@link
+     * AccessibilityEvent#TYPE_TOUCH_EXPLORATION_GESTURE_END}} after receiving last hover exit
+     * event.
+     */
+    private void sendsPendingA11yEventsIfNeed() {
+        // The last hover exit A11y event should be sent by view after receiving hover exit motion
+        // event. In some view hierarchy, the ViewGroup transforms hover move motion event to hover
+        // exit motion event and than dispatch to itself. It causes unexpected A11y exit events.
+        if (mSendHoverExitDelayed.isPending()) {
+            return;
+        }
         // The event for gesture end should be strictly after the
         // last hover exit event.
-        if (mSendTouchExplorationEndDelayed.isPending()
-                && eventType == AccessibilityEvent.TYPE_VIEW_HOVER_EXIT) {
-                    mSendTouchExplorationEndDelayed.cancel();
+        if (mSendTouchExplorationEndDelayed.isPending()) {
+            mSendTouchExplorationEndDelayed.cancel();
             mDispatcher.sendAccessibilityEvent(
                     AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_END);
         }
 
         // The event for touch interaction end should be strictly after the
         // last hover exit and the touch exploration gesture end events.
-        if (mSendTouchInteractionEndDelayed.isPending()
-                && eventType == AccessibilityEvent.TYPE_VIEW_HOVER_EXIT) {
+        if (mSendTouchInteractionEndDelayed.isPending()) {
             mSendTouchInteractionEndDelayed.cancel();
             mDispatcher.sendAccessibilityEvent(AccessibilityEvent.TYPE_TOUCH_INTERACTION_END);
         }
-        super.onAccessibilityEvent(event);
     }
 
     @Override
diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
index ad21075..8c1360c 100644
--- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
+++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
@@ -35,6 +35,8 @@
 import android.app.PendingIntent;
 import android.app.admin.DevicePolicyManagerInternal;
 import android.app.admin.DevicePolicyManagerInternal.OnCrossProfileWidgetProvidersChangeListener;
+import android.app.usage.UsageEvents;
+import android.app.usage.UsageStatsManagerInternal;
 import android.appwidget.AppWidgetManager;
 import android.appwidget.AppWidgetManagerInternal;
 import android.appwidget.AppWidgetProviderInfo;
@@ -235,6 +237,7 @@
     private PackageManagerInternal mPackageManagerInternal;
     private ActivityManagerInternal mActivityManagerInternal;
     private AppOpsManagerInternal mAppOpsManagerInternal;
+    private UsageStatsManagerInternal mUsageStatsManagerInternal;
 
     private SecurityPolicy mSecurityPolicy;
 
@@ -278,6 +281,7 @@
     void systemServicesReady() {
         mActivityManagerInternal = LocalServices.getService(ActivityManagerInternal.class);
         mAppOpsManagerInternal = LocalServices.getService(AppOpsManagerInternal.class);
+        mUsageStatsManagerInternal = LocalServices.getService(UsageStatsManagerInternal.class);
     }
 
     private void computeMaximumWidgetBitmapMemory() {
@@ -879,8 +883,6 @@
                     outUpdates.add(updatesMap.valueAt(j));
                 }
             }
-            updateAppOpsLocked(host, true);
-
             // Reset the update counter once all the updates have been calculated
             host.lastWidgetUpdateSequenceNo = updateSequenceNo;
             return new ParceledListSlice<>(outUpdates);
@@ -909,7 +911,7 @@
             if (host != null) {
                 host.callbacks = null;
                 pruneHostLocked(host);
-                updateAppOpsLocked(host, false);
+                mAppOpsManagerInternal.updateAppWidgetVisibility(host.getWidgetUids(), false);
             }
         }
     }
@@ -3646,24 +3648,49 @@
         return false;
     }
 
-    private void updateAppOpsLocked(Host host, boolean visible) {
-        // The launcher must be at TOP.
-        final int procState = mActivityManagerInternal.getUidProcessState(host.id.uid);
-        if (procState > ActivityManager.PROCESS_STATE_TOP) {
-            return;
-        }
+    /**
+     * Note an app widget is tapped on. If a app widget is tapped, the underlying app is treated as
+     * foreground so the app can get while-in-use permission.
+     *
+     * @param uid UID of the underlying app.
+     * @param packageName Package name of the app.
+     */
+    @Override
+    public void noteAppWidgetTapped(int uid, String packageName) {
+        final int callingUid = Binder.getCallingUid();
+        final long ident = Binder.clearCallingIdentity();
+        try {
+            // The launcher must be at TOP.
+            final int procState = mActivityManagerInternal.getUidProcessState(callingUid);
+            if (procState > ActivityManager.PROCESS_STATE_TOP) {
+                return;
+            }
 
-        final List<ResolveInfo> allHomeCandidates = new ArrayList<>();
-        // Default launcher from package manager.
-        final ComponentName defaultLauncher = mPackageManagerInternal
-                .getHomeActivitiesAsUser(allHomeCandidates, UserHandle.getUserId(host.id.uid));
-        // The launcher must be default launcher.
-        if (defaultLauncher == null
-                || !defaultLauncher.getPackageName().equals(host.id.packageName)) {
-            return;
+            // Default launcher from package manager.
+            final ComponentName defaultLauncher = mPackageManagerInternal
+                    .getDefaultHomeActivity(UserHandle.getUserId(callingUid));
+            int defaultLauncherUid  = 0;
+            try {
+                defaultLauncherUid = mPackageManager.getApplicationInfo(
+                        defaultLauncher.getPackageName(), 0 ,
+                        UserHandle.getUserId(callingUid)).uid;
+            } catch (RemoteException e) {
+                Slog.e(TAG, "Failed to getApplicationInfo for package:"
+                        + defaultLauncher.getPackageName(), e);
+                return;
+            }
+            // The callingUid must be default launcher uid.
+            if (defaultLauncherUid != callingUid) {
+                return;
+            }
+            final SparseArray<String> uid2PackageName = new SparseArray<String>();
+            uid2PackageName.put(uid, packageName);
+            mAppOpsManagerInternal.updateAppWidgetVisibility(uid2PackageName, true);
+            mUsageStatsManagerInternal.reportEvent(packageName, UserHandle.getUserId(uid),
+                    UsageEvents.Event.USER_INTERACTION);
+        } finally {
+            Binder.restoreCallingIdentity(ident);
         }
-
-        mAppOpsManagerInternal.updateAppWidgetVisibility(host.getWidgetUids(), visible);
     }
 
     private final class CallbackHandler extends Handler {
diff --git a/services/art-profile b/services/art-profile
index ab55bfc..8ebb21f 100644
--- a/services/art-profile
+++ b/services/art-profile
@@ -4,6 +4,7 @@
 HSPLandroid/app/usage/UsageStatsManagerInternal;-><init>()V
 PLandroid/content/pm/PackageManagerInternal$PackageListObserver;->onPackageChanged(Ljava/lang/String;I)V
 HSPLandroid/content/pm/PackageManagerInternal;-><init>()V
+HSPLandroid/content/pm/PackageManagerInternal;->getPackageList()Lcom/android/server/pm/PackageList;
 HPLandroid/hardware/audio/common/V2_0/AudioChannelMask;->toString(I)Ljava/lang/String;
 HPLandroid/hardware/audio/common/V2_0/AudioConfig;-><init>()V
 HPLandroid/hardware/audio/common/V2_0/AudioConfig;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
@@ -74,10 +75,10 @@
 PLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint$Proxy;-><init>(Landroid/os/IHwBinder;)V
 HPLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint$Proxy;->interfaceChain()Ljava/util/ArrayList;
 HPLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint;
-PLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint;->castFrom(Landroid/os/IHwInterface;)Landroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint;
+HPLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint;->castFrom(Landroid/os/IHwInterface;)Landroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint;
 HSPLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprintClientCallback$Stub;-><init>()V
 HSPLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprintClientCallback$Stub;->asBinder()Landroid/os/IHwBinder;
-HPLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprintClientCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+HSPLandroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprintClientCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
 HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;-><init>(Landroid/os/IHwBinder;)V
 HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;->hasHDRDisplay()Landroid/hardware/configstore/V1_0/OptionalBool;
 HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;->hasWideColorDisplay()Landroid/hardware/configstore/V1_0/OptionalBool;
@@ -117,11 +118,19 @@
 HSPLandroid/hardware/health/V2_0/StorageAttribute;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
 HSPLandroid/hardware/health/V2_0/StorageInfo;-><init>()V
 HSPLandroid/hardware/health/V2_0/StorageInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/health/V2_1/HealthInfo;-><init>()V
+HPLandroid/hardware/health/V2_1/HealthInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HPLandroid/hardware/health/V2_1/HealthInfo;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/health/V2_1/IHealthInfoCallback$Stub;-><init>()V
+HSPLandroid/hardware/health/V2_1/IHealthInfoCallback$Stub;->asBinder()Landroid/os/IHwBinder;
+PLandroid/hardware/health/V2_1/IHealthInfoCallback$Stub;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/health/V2_1/IHealthInfoCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
 HSPLandroid/hardware/light/HwLight$1;-><init>()V
 HSPLandroid/hardware/light/HwLight;-><clinit>()V
 HSPLandroid/hardware/light/HwLight;-><init>()V
 HSPLandroid/hardware/light/ILights$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/light/ILights;
 HSPLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;-><init>(Landroid/os/IHwBinder;)V
+PLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->getName(Landroid/hardware/oemlock/V1_0/IOemLock$getNameCallback;)V
 HSPLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->interfaceChain()Ljava/util/ArrayList;
 HPLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->isOemUnlockAllowedByCarrier(Landroid/hardware/oemlock/V1_0/IOemLock$isOemUnlockAllowedByCarrierCallback;)V
 PLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->isOemUnlockAllowedByDevice(Landroid/hardware/oemlock/V1_0/IOemLock$isOemUnlockAllowedByDeviceCallback;)V
@@ -191,10 +200,20 @@
 HPLandroid/hardware/soundtrigger/V2_2/ISoundTriggerHw$Proxy;->unloadSoundModel(I)I
 HSPLandroid/hardware/soundtrigger/V2_2/ISoundTriggerHw;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/soundtrigger/V2_2/ISoundTriggerHw;
 HSPLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;-><init>(Landroid/os/IHwBinder;)V
+PLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->getProperties_2_3(Landroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$getProperties_2_3Callback;)V
 HSPLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->interfaceChain()Ljava/util/ArrayList;
+PLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->loadPhraseSoundModel_2_1(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$PhraseSoundModel;Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback;ILandroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$loadPhraseSoundModel_2_1Callback;)V
+PLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->loadSoundModel_2_1(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback;ILandroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$loadSoundModel_2_1Callback;)V
+HPLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->startRecognition_2_3(ILandroid/hardware/soundtrigger/V2_3/RecognitionConfig;)I
+HPLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->stopRecognition(I)I
+PLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw$Proxy;->unloadSoundModel(I)I
 HSPLandroid/hardware/soundtrigger/V2_3/ISoundTriggerHw;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/soundtrigger/V2_3/ISoundTriggerHw;
 HSPLandroid/hardware/soundtrigger/V2_3/Properties;-><init>()V
+PLandroid/hardware/soundtrigger/V2_3/Properties;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+PLandroid/hardware/soundtrigger/V2_3/Properties;->readFromParcel(Landroid/os/HwParcel;)V
 HPLandroid/hardware/soundtrigger/V2_3/RecognitionConfig;-><init>()V
+PLandroid/hardware/soundtrigger/V2_3/RecognitionConfig;->writeEmbeddedToBlob(Landroid/os/HwBlob;J)V
+PLandroid/hardware/soundtrigger/V2_3/RecognitionConfig;->writeToParcel(Landroid/os/HwParcel;)V
 HSPLandroid/hardware/usb/V1_0/IUsb$Proxy;-><init>(Landroid/os/IHwBinder;)V
 PLandroid/hardware/usb/V1_0/IUsb$Proxy;->asBinder()Landroid/os/IHwBinder;
 HSPLandroid/hardware/usb/V1_0/IUsb$Proxy;->interfaceChain()Ljava/util/ArrayList;
@@ -357,6 +376,7 @@
 HPLandroid/net/INetd$Stub$Proxy;->networkCreatePhysical(II)V
 HPLandroid/net/INetd$Stub$Proxy;->networkCreateVpn(IZ)V
 HPLandroid/net/INetd$Stub$Proxy;->networkDestroy(I)V
+PLandroid/net/INetd$Stub$Proxy;->networkRejectNonSecureVpn(Z[Landroid/net/UidRangeParcel;)V
 HPLandroid/net/INetd$Stub$Proxy;->networkRemoveInterface(ILjava/lang/String;)V
 HPLandroid/net/INetd$Stub$Proxy;->networkRemoveRoute(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HPLandroid/net/INetd$Stub$Proxy;->networkRemoveUidRanges(I[Landroid/net/UidRangeParcel;)V
@@ -405,6 +425,10 @@
 PLandroid/net/ITetheringConnector$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 PLandroid/net/ITetheringConnector$Stub$Proxy;->registerTetherInternalCallback(Landroid/net/ITetherInternalCallback;)V
 PLandroid/net/ITetheringConnector$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/ITetheringConnector;
+PLandroid/net/InformationElementParcelable$1;-><init>()V
+PLandroid/net/InformationElementParcelable;-><clinit>()V
+HPLandroid/net/InformationElementParcelable;-><init>()V
+HPLandroid/net/InformationElementParcelable;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLandroid/net/InterfaceConfigurationParcel$1;-><init>()V
 HSPLandroid/net/InterfaceConfigurationParcel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/InterfaceConfigurationParcel;
 HSPLandroid/net/InterfaceConfigurationParcel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
@@ -420,7 +444,7 @@
 PLandroid/net/IpMemoryStore;->access$000(Landroid/net/IpMemoryStore;)Ljava/util/concurrent/CompletableFuture;
 PLandroid/net/IpMemoryStore;->getMemoryStore(Landroid/content/Context;)Landroid/net/IpMemoryStore;
 PLandroid/net/IpMemoryStore;->getNetworkStackClient()Landroid/net/NetworkStackClient;
-PLandroid/net/IpMemoryStore;->lambda$runWhenServiceReady$0(Ljava/util/function/Consumer;Landroid/net/IIpMemoryStore;Ljava/lang/Throwable;)Landroid/net/IIpMemoryStore;
+HPLandroid/net/IpMemoryStore;->lambda$runWhenServiceReady$0(Ljava/util/function/Consumer;Landroid/net/IIpMemoryStore;Ljava/lang/Throwable;)Landroid/net/IIpMemoryStore;
 HPLandroid/net/IpMemoryStore;->lambda$runWhenServiceReady$1(Ljava/util/function/Consumer;Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
 HPLandroid/net/IpMemoryStore;->runWhenServiceReady(Ljava/util/function/Consumer;)V
 PLandroid/net/IpMemoryStoreClient;-><clinit>()V
@@ -492,6 +516,10 @@
 PLandroid/net/ResolverParamsParcel;-><clinit>()V
 HPLandroid/net/ResolverParamsParcel;-><init>()V
 HPLandroid/net/ResolverParamsParcel;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/ScanResultInfoParcelable$1;-><init>()V
+PLandroid/net/ScanResultInfoParcelable;-><clinit>()V
+PLandroid/net/ScanResultInfoParcelable;-><init>()V
+HPLandroid/net/ScanResultInfoParcelable;->writeToParcel(Landroid/os/Parcel;I)V
 PLandroid/net/TetherStatesParcel$1;-><init>()V
 PLandroid/net/TetherStatesParcel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/TetherStatesParcel;
 PLandroid/net/TetherStatesParcel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
@@ -579,10 +607,10 @@
 HPLandroid/net/ip/IpClientManager;->stop()Z
 HSPLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;-><init>(Landroid/net/ip/IpClientCallbacks;)V
 HSPLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->getInterfaceVersion()I
-PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->installPacketFilter([B)V
+HPLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->installPacketFilter([B)V
 HSPLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onIpClientCreated(Landroid/net/ip/IIpClient;)V
-PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onLinkPropertiesChange(Landroid/net/LinkProperties;)V
-PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onNewDhcpResults(Landroid/net/DhcpResultsParcelable;)V
+HPLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onLinkPropertiesChange(Landroid/net/LinkProperties;)V
+HPLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onNewDhcpResults(Landroid/net/DhcpResultsParcelable;)V
 PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onPostDhcpAction()V
 PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onPreDhcpAction()V
 PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onProvisioningFailure(Landroid/net/LinkProperties;)V
@@ -628,6 +656,9 @@
 PLandroid/net/shared/-$$Lambda$SYWvjOUPlAZ_O2Z6yfFU9np1858;-><clinit>()V
 PLandroid/net/shared/-$$Lambda$SYWvjOUPlAZ_O2Z6yfFU9np1858;-><init>()V
 PLandroid/net/shared/-$$Lambda$SYWvjOUPlAZ_O2Z6yfFU9np1858;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/net/shared/-$$Lambda$qVdKXOBVced7rdGB-dMQlkPbLW4;-><clinit>()V
+PLandroid/net/shared/-$$Lambda$qVdKXOBVced7rdGB-dMQlkPbLW4;-><init>()V
+HPLandroid/net/shared/-$$Lambda$qVdKXOBVced7rdGB-dMQlkPbLW4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLandroid/net/shared/InitialConfiguration;-><clinit>()V
 PLandroid/net/shared/InitialConfiguration;->copy(Landroid/net/shared/InitialConfiguration;)Landroid/net/shared/InitialConfiguration;
 HPLandroid/net/shared/IpConfigurationParcelableUtil;->fromStableParcelable(Landroid/net/DhcpResultsParcelable;)Landroid/net/DhcpResults;
@@ -650,8 +681,15 @@
 PLandroid/net/shared/ProvisioningConfiguration$Builder;->withPreDhcpAction()Landroid/net/shared/ProvisioningConfiguration$Builder;
 PLandroid/net/shared/ProvisioningConfiguration$Builder;->withPreDhcpAction(I)Landroid/net/shared/ProvisioningConfiguration$Builder;
 PLandroid/net/shared/ProvisioningConfiguration$Builder;->withProvisioningTimeoutMs(I)Landroid/net/shared/ProvisioningConfiguration$Builder;
+PLandroid/net/shared/ProvisioningConfiguration$Builder;->withScanResultInfo(Landroid/net/shared/ProvisioningConfiguration$ScanResultInfo;)Landroid/net/shared/ProvisioningConfiguration$Builder;
 PLandroid/net/shared/ProvisioningConfiguration$Builder;->withStaticConfiguration(Landroid/net/StaticIpConfiguration;)Landroid/net/shared/ProvisioningConfiguration$Builder;
 PLandroid/net/shared/ProvisioningConfiguration$Builder;->withoutIpReachabilityMonitor()Landroid/net/shared/ProvisioningConfiguration$Builder;
+PLandroid/net/shared/ProvisioningConfiguration$ScanResultInfo$InformationElement;-><init>(ILjava/nio/ByteBuffer;)V
+HPLandroid/net/shared/ProvisioningConfiguration$ScanResultInfo$InformationElement;->toStableParcelable()Landroid/net/InformationElementParcelable;
+PLandroid/net/shared/ProvisioningConfiguration$ScanResultInfo;-><init>(Ljava/lang/String;Ljava/util/List;)V
+PLandroid/net/shared/ProvisioningConfiguration$ScanResultInfo;->access$000(Ljava/nio/ByteBuffer;)[B
+PLandroid/net/shared/ProvisioningConfiguration$ScanResultInfo;->convertToByteArray(Ljava/nio/ByteBuffer;)[B
+PLandroid/net/shared/ProvisioningConfiguration$ScanResultInfo;->toStableParcelable()Landroid/net/ScanResultInfoParcelable;
 PLandroid/net/shared/ProvisioningConfiguration;-><init>()V
 PLandroid/net/shared/ProvisioningConfiguration;-><init>(Landroid/net/shared/ProvisioningConfiguration;)V
 PLandroid/net/shared/ProvisioningConfiguration;->toStableParcelable()Landroid/net/ProvisioningConfigurationParcelable;
@@ -705,7 +743,7 @@
 HSPLcom/android/server/-$$Lambda$AlarmManagerService$nSJw2tKfoL3YIrKDtszoL44jcSM;-><init>(Lcom/android/server/AlarmManagerService;)V
 PLcom/android/server/-$$Lambda$AlarmManagerService$nSJw2tKfoL3YIrKDtszoL44jcSM;->test(Ljava/lang/Object;)Z
 PLcom/android/server/-$$Lambda$AlarmManagerService$nhEd_CDoc7mzdNLRwGUhwl9TaGk;-><init>(I)V
-PLcom/android/server/-$$Lambda$AlarmManagerService$nhEd_CDoc7mzdNLRwGUhwl9TaGk;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/-$$Lambda$AlarmManagerService$nhEd_CDoc7mzdNLRwGUhwl9TaGk;->test(Ljava/lang/Object;)Z
 PLcom/android/server/-$$Lambda$AlarmManagerService$qehVSjTLWvtJYPGgKh2mkJ6ePnk;-><init>(I)V
 HPLcom/android/server/-$$Lambda$AlarmManagerService$qehVSjTLWvtJYPGgKh2mkJ6ePnk;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/-$$Lambda$AppStateTracker$zzioY8jvEm-1GnJ13CUiQGauPEE;-><init>(Lcom/android/server/AppStateTracker;)V
@@ -728,18 +766,34 @@
 HSPLcom/android/server/-$$Lambda$BatteryService$D1kwd7L7yyqN5niz3KWkTepVmUk;->run()V
 HPLcom/android/server/-$$Lambda$ConnectivityService$3$_itgrpHpWu3QvA9Wb0gtsEYJWZY;-><init>(Lcom/android/server/ConnectivityService$3;IZLjava/lang/String;I)V
 HPLcom/android/server/-$$Lambda$ConnectivityService$3$_itgrpHpWu3QvA9Wb0gtsEYJWZY;->run()V
+HSPLcom/android/server/-$$Lambda$ConnectivityService$4mdI2BrJnxGXPEiesjVbm4BY2so;-><init>(Lcom/android/server/ConnectivityService;Landroid/os/Messenger;)V
+PLcom/android/server/-$$Lambda$ConnectivityService$4mdI2BrJnxGXPEiesjVbm4BY2so;->binderDied()V
+PLcom/android/server/-$$Lambda$ConnectivityService$Bd0Iky-FHBTmS5tJGxK9OZvajR4;-><init>(Lcom/android/server/ConnectivityService;)V
+PLcom/android/server/-$$Lambda$ConnectivityService$Bd0Iky-FHBTmS5tJGxK9OZvajR4;->run()V
+PLcom/android/server/-$$Lambda$ConnectivityService$GX97FVWNZr22L2SZWTK3UYHOOe0;-><clinit>()V
+PLcom/android/server/-$$Lambda$ConnectivityService$GX97FVWNZr22L2SZWTK3UYHOOe0;-><init>()V
+HPLcom/android/server/-$$Lambda$ConnectivityService$GX97FVWNZr22L2SZWTK3UYHOOe0;->applyAsInt(Ljava/lang/Object;)I
+PLcom/android/server/-$$Lambda$ConnectivityService$H7LYLEpmjJnE6rkiTAMKiNF7tsA;-><clinit>()V
+PLcom/android/server/-$$Lambda$ConnectivityService$H7LYLEpmjJnE6rkiTAMKiNF7tsA;-><init>()V
+PLcom/android/server/-$$Lambda$ConnectivityService$H7LYLEpmjJnE6rkiTAMKiNF7tsA;->applyAsInt(Ljava/lang/Object;)I
 HSPLcom/android/server/-$$Lambda$ConnectivityService$HGNmLJFn9hb5C4M_qIm2DAASfeY;-><init>(Lcom/android/server/ConnectivityService;Landroid/os/Messenger;)V
 PLcom/android/server/-$$Lambda$ConnectivityService$HGNmLJFn9hb5C4M_qIm2DAASfeY;->binderDied()V
 PLcom/android/server/-$$Lambda$ConnectivityService$OIhIcUZjeJ-ci4rP6veezE8o67U;-><init>(Lcom/android/server/ConnectivityService;Landroid/net/Network;)V
 PLcom/android/server/-$$Lambda$ConnectivityService$OIhIcUZjeJ-ci4rP6veezE8o67U;->run()V
+HPLcom/android/server/-$$Lambda$ConnectivityService$ONlkcNIY7zZyZhG_msTp1qIA_cQ;-><init>(Lcom/android/server/ConnectivityService;Ljava/lang/String;ILandroid/net/NetworkCapabilities;)V
+HPLcom/android/server/-$$Lambda$ConnectivityService$ONlkcNIY7zZyZhG_msTp1qIA_cQ;->runOrThrow()V
 HSPLcom/android/server/-$$Lambda$ConnectivityService$SFqiR4Pfksb1C7csMC3uNxCllR8;-><init>(Lcom/android/server/ConnectivityService;)V
 PLcom/android/server/-$$Lambda$ConnectivityService$SFqiR4Pfksb1C7csMC3uNxCllR8;->run()V
 PLcom/android/server/-$$Lambda$ConnectivityService$_NU7EIcPVS-uF_gWH_NWN_gBL4w;-><clinit>()V
 PLcom/android/server/-$$Lambda$ConnectivityService$_NU7EIcPVS-uF_gWH_NWN_gBL4w;-><init>()V
 PLcom/android/server/-$$Lambda$ConnectivityService$_NU7EIcPVS-uF_gWH_NWN_gBL4w;->applyAsInt(Ljava/lang/Object;)I
+PLcom/android/server/-$$Lambda$ConnectivityService$fBQzRY85gy75jpL8zm68U3BxgdA;-><init>(Lcom/android/server/ConnectivityService;Landroid/content/Intent;)V
+PLcom/android/server/-$$Lambda$ConnectivityService$fBQzRY85gy75jpL8zm68U3BxgdA;->runOrThrow()V
 PLcom/android/server/-$$Lambda$ConnectivityService$iOdlQdHoQM14teTS-EPRH-RRL3k;-><clinit>()V
 PLcom/android/server/-$$Lambda$ConnectivityService$iOdlQdHoQM14teTS-EPRH-RRL3k;-><init>()V
 HPLcom/android/server/-$$Lambda$ConnectivityService$iOdlQdHoQM14teTS-EPRH-RRL3k;->applyAsInt(Ljava/lang/Object;)I
+PLcom/android/server/-$$Lambda$ConnectivityService$nuaE_gOVb4npt3obpt7AoWH3OBo;-><init>(Lcom/android/server/ConnectivityService;Landroid/net/Network;)V
+PLcom/android/server/-$$Lambda$ConnectivityService$nuaE_gOVb4npt3obpt7AoWH3OBo;->run()V
 HPLcom/android/server/-$$Lambda$ConnectivityService$uvmt4yGRo-ufWZED19neBxJaTNk;-><init>(Lcom/android/server/ConnectivityService;)V
 HPLcom/android/server/-$$Lambda$ConnectivityService$uvmt4yGRo-ufWZED19neBxJaTNk;->run()V
 PLcom/android/server/-$$Lambda$ConnectivityService$vGRhfNpFTw0hellWUlmBolfzRy8;-><init>(Lcom/android/server/ConnectivityService;Landroid/content/Intent;)V
@@ -780,8 +834,8 @@
 HSPLcom/android/server/-$$Lambda$IpSecService$AnqunmSwm_yQvDDEPg-gokhVs5M;-><init>()V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$1$HAAnoF9DI9FvCHK_geH89--2z2I;-><init>(Lcom/android/server/LocationManagerService$1;)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$1$HAAnoF9DI9FvCHK_geH89--2z2I;->run()V
-HPLcom/android/server/-$$Lambda$LocationManagerService$1$h5HNQ2cVn5xkASh-c0UkLGiwn_Y;-><init>(Lcom/android/server/LocationManagerService$1;Ljava/lang/String;)V
-HPLcom/android/server/-$$Lambda$LocationManagerService$1$h5HNQ2cVn5xkASh-c0UkLGiwn_Y;->run()V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$1$h5HNQ2cVn5xkASh-c0UkLGiwn_Y;-><init>(Lcom/android/server/LocationManagerService$1;Ljava/lang/String;)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$1$h5HNQ2cVn5xkASh-c0UkLGiwn_Y;->run()V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$56u_uxjuANYKBEJg0XAb0TfpovM;-><init>(Lcom/android/server/LocationManagerService;)V
 PLcom/android/server/-$$Lambda$LocationManagerService$56u_uxjuANYKBEJg0XAb0TfpovM;->onSettingChanged()V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$6axYIgaetwnztBT8L9-07FzvA1k;-><init>(Lcom/android/server/LocationManagerService;)V
@@ -798,7 +852,7 @@
 PLcom/android/server/-$$Lambda$LocationManagerService$BY2uqgE48i0Shvo1FGLa9toRxBA;->onSettingChanged()V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$DJ4kMod0tVB-vqSawrWCXTCoPAM;-><init>(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$DgmGqZVwms-Y6rAmZybXkZVgJ-Q;-><init>(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/-$$Lambda$LocationManagerService$DgmGqZVwms-Y6rAmZybXkZVgJ-Q;->onUserChanged(II)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$DgmGqZVwms-Y6rAmZybXkZVgJ-Q;->onUserChanged(II)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$EWYAKDMwH-ZXy5A8J9erCTIUqKY;-><init>(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$GnHas6J3gXGjXx6KfNuV_GzNl9w;-><init>(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$GnHas6J3gXGjXx6KfNuV_GzNl9w;->getPackages(I)[Ljava/lang/String;
@@ -812,9 +866,9 @@
 PLcom/android/server/-$$Lambda$LocationManagerService$Nht7c6P7I1-MJqXp4qiS_HUIjzY;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/-$$Lambda$LocationManagerService$QVf9Y4g7BmVBQBlkUO5oHLmMW2o;-><init>(Lcom/android/server/LocationManagerService;)V
 HPLcom/android/server/-$$Lambda$LocationManagerService$QVf9Y4g7BmVBQBlkUO5oHLmMW2o;->run()V
-PLcom/android/server/-$$Lambda$LocationManagerService$UpdateRecord$UsWzcJnkOgjISswcbdlUhsrBLoQ;-><clinit>()V
-PLcom/android/server/-$$Lambda$LocationManagerService$UpdateRecord$UsWzcJnkOgjISswcbdlUhsrBLoQ;-><init>()V
-PLcom/android/server/-$$Lambda$LocationManagerService$UpdateRecord$UsWzcJnkOgjISswcbdlUhsrBLoQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/-$$Lambda$LocationManagerService$UpdateRecord$UsWzcJnkOgjISswcbdlUhsrBLoQ;-><clinit>()V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$UpdateRecord$UsWzcJnkOgjISswcbdlUhsrBLoQ;-><init>()V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$UpdateRecord$UsWzcJnkOgjISswcbdlUhsrBLoQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/-$$Lambda$LocationManagerService$V3FRncuMEn-4R6Dd2zsTs4m0dWM;-><init>(Lcom/android/server/LocationManagerService;II)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$V3FRncuMEn-4R6Dd2zsTs4m0dWM;->run()V
 PLcom/android/server/-$$Lambda$LocationManagerService$XWulT08IueAbw1NBjxLvw-T5cfc;-><init>(Lcom/android/server/LocationManagerService;Landroid/os/PowerSaveState;)V
@@ -825,10 +879,11 @@
 HSPLcom/android/server/-$$Lambda$LocationManagerService$es-cu7rp_R0xbJzDRj4qpZNL7vc;-><init>(Lcom/android/server/LocationManagerService;)V
 HPLcom/android/server/-$$Lambda$LocationManagerService$es-cu7rp_R0xbJzDRj4qpZNL7vc;->onPermissionsChanged(I)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$fWSrYiKaBfOFmdeiwC9Lx7S68B4;-><init>(Lcom/android/server/LocationManagerService;)V
+PLcom/android/server/-$$Lambda$LocationManagerService$fWSrYiKaBfOFmdeiwC9Lx7S68B4;->onUserChanged(II)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$nxs_FejUjcjw2UUIeDY3TYTRJs4;-><init>(Lcom/android/server/LocationManagerService;)V
 PLcom/android/server/-$$Lambda$LocationManagerService$nxs_FejUjcjw2UUIeDY3TYTRJs4;->onSettingChanged()V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$oIimlThgbbmKRAN80H4tpnruGtk;-><init>(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/-$$Lambda$LocationManagerService$oIimlThgbbmKRAN80H4tpnruGtk;->onSettingChanged(I)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$oIimlThgbbmKRAN80H4tpnruGtk;->onSettingChanged(I)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$qbZh8GXCTpZ1wNP3qw1VXZxlKQg;-><init>(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/-$$Lambda$LocationManagerService$qbZh8GXCTpZ1wNP3qw1VXZxlKQg;->onSettingChanged(I)V
 PLcom/android/server/-$$Lambda$LooperStatsService$Byo6QAxZpVXDCMtjrcYJc6YLAks;-><clinit>()V
@@ -941,8 +996,8 @@
 PLcom/android/server/-$$Lambda$ServiceWatcher$b1z9OeL-1VpQ_8p47qz7nMNUpsE;->call()Ljava/lang/Object;
 HSPLcom/android/server/-$$Lambda$ServiceWatcher$gVk2fFkq2-aamIua2kIpukAFtf8;-><init>(Lcom/android/server/ServiceWatcher;Lcom/android/server/ServiceWatcher$BinderRunner;)V
 HSPLcom/android/server/-$$Lambda$ServiceWatcher$gVk2fFkq2-aamIua2kIpukAFtf8;->run()V
-HPLcom/android/server/-$$Lambda$ServiceWatcher$kpBQqFYVia3SVpOH46tF4fNydw0;-><init>(Lcom/android/server/ServiceWatcher;Lcom/android/server/ServiceWatcher$BinderRunner;)V
-HPLcom/android/server/-$$Lambda$ServiceWatcher$kpBQqFYVia3SVpOH46tF4fNydw0;->run()V
+HSPLcom/android/server/-$$Lambda$ServiceWatcher$kpBQqFYVia3SVpOH46tF4fNydw0;-><init>(Lcom/android/server/ServiceWatcher;Lcom/android/server/ServiceWatcher$BinderRunner;)V
+HSPLcom/android/server/-$$Lambda$ServiceWatcher$kpBQqFYVia3SVpOH46tF4fNydw0;->run()V
 PLcom/android/server/-$$Lambda$ServiceWatcher$uCZpuTwrOz-CS9PQS2NY1ZXaU8U;-><init>(Lcom/android/server/ServiceWatcher;Landroid/content/ComponentName;)V
 PLcom/android/server/-$$Lambda$ServiceWatcher$uCZpuTwrOz-CS9PQS2NY1ZXaU8U;->run()V
 HSPLcom/android/server/-$$Lambda$ServiceWatcher$uru7j1zD-GiN8rndFZ3KWaTrxYo;-><init>(Lcom/android/server/ServiceWatcher;Landroid/content/ComponentName;Landroid/os/IBinder;)V
@@ -975,8 +1030,8 @@
 HSPLcom/android/server/-$$Lambda$SystemServer$Y1gEdKr_Hb7K7cbTDAo_WOJ-SYI;->run()V
 HSPLcom/android/server/-$$Lambda$SystemServer$c50amMOcae1K0NdkHHoWNGvSMJQ;-><init>(Lcom/android/server/SystemServer;Lcom/android/server/utils/TimingsTraceAndSlog;Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;ZLcom/android/server/ConnectivityService;Lcom/android/server/NetworkManagementService;Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/IpSecService;Lcom/android/server/net/NetworkStatsService;Lcom/android/server/CountryDetectorService;Lcom/android/server/NetworkTimeUpdateService;Lcom/android/server/input/InputManagerService;Lcom/android/server/TelephonyRegistry;Lcom/android/server/media/MediaRouterService;Lcom/android/server/MmsServiceBroker;)V
 HSPLcom/android/server/-$$Lambda$SystemServer$c50amMOcae1K0NdkHHoWNGvSMJQ;->run()V
-PLcom/android/server/-$$Lambda$SystemServer$zn6ji6g70a_qrK5QZEPCaarZSik;-><clinit>()V
-PLcom/android/server/-$$Lambda$SystemServer$zn6ji6g70a_qrK5QZEPCaarZSik;-><init>()V
+HSPLcom/android/server/-$$Lambda$SystemServer$zn6ji6g70a_qrK5QZEPCaarZSik;-><clinit>()V
+HSPLcom/android/server/-$$Lambda$SystemServer$zn6ji6g70a_qrK5QZEPCaarZSik;-><init>()V
 PLcom/android/server/-$$Lambda$SystemServer$zn6ji6g70a_qrK5QZEPCaarZSik;->onModuleServiceConnected(Landroid/os/IBinder;)V
 HSPLcom/android/server/-$$Lambda$SystemServerInitThreadPool$o2_GLo0lnkotYmRdTfg66UETEwQ;-><init>(Lcom/android/server/SystemServerInitThreadPool;Ljava/lang/String;Ljava/lang/Runnable;)V
 HSPLcom/android/server/-$$Lambda$SystemServerInitThreadPool$o2_GLo0lnkotYmRdTfg66UETEwQ;->run()V
@@ -992,6 +1047,10 @@
 PLcom/android/server/-$$Lambda$UiModeManagerService$9$ytrifY2iawCLCBtYLrmL70q1UhI;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/-$$Lambda$UiModeManagerService$AwUHdh7CYhroUMaGm35a4uvZcnY;-><init>(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/-$$Lambda$UiModeManagerService$AwUHdh7CYhroUMaGm35a4uvZcnY;->onAlarm()V
+HSPLcom/android/server/-$$Lambda$UiModeManagerService$BF3rAsw9_KQuADymF0UAmeEA7QQ;-><init>(Lcom/android/server/UiModeManagerService;)V
+PLcom/android/server/-$$Lambda$UiModeManagerService$BF3rAsw9_KQuADymF0UAmeEA7QQ;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/-$$Lambda$UiModeManagerService$LsJLdIbeoHmgOz46O-Ez9nmVZ2w;-><init>(Lcom/android/server/UiModeManagerService;Landroid/content/Context;Landroid/content/res/Resources;)V
+HSPLcom/android/server/-$$Lambda$UiModeManagerService$LsJLdIbeoHmgOz46O-Ez9nmVZ2w;->run()V
 HSPLcom/android/server/-$$Lambda$UiModeManagerService$bGpxq9ta5GBYtiUBAOy4iNtThus;-><init>(Lcom/android/server/UiModeManagerService;)V
 PLcom/android/server/-$$Lambda$UiModeManagerService$bGpxq9ta5GBYtiUBAOy4iNtThus;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/-$$Lambda$UiModeManagerService$vYS4_RzjAavNRF50rrGN0tXI5JM;-><init>(Lcom/android/server/UiModeManagerService;)V
@@ -1082,7 +1141,7 @@
 HPLcom/android/server/AlarmManagerService$AppWakeupHistory;->getTotalWakeupsInWindow(Ljava/lang/String;I)I
 HPLcom/android/server/AlarmManagerService$AppWakeupHistory;->recordAlarmForPackage(Ljava/lang/String;IJ)V
 PLcom/android/server/AlarmManagerService$AppWakeupHistory;->removeForPackage(Ljava/lang/String;I)V
-PLcom/android/server/AlarmManagerService$AppWakeupHistory;->removeForUser(I)V
+HPLcom/android/server/AlarmManagerService$AppWakeupHistory;->removeForUser(I)V
 HPLcom/android/server/AlarmManagerService$AppWakeupHistory;->snapToWindow(Landroid/util/LongArrayQueue;)V
 HSPLcom/android/server/AlarmManagerService$Batch;-><init>(Lcom/android/server/AlarmManagerService;Lcom/android/server/AlarmManagerService$Alarm;)V
 HSPLcom/android/server/AlarmManagerService$Batch;->add(Lcom/android/server/AlarmManagerService$Alarm;)Z
@@ -1218,7 +1277,7 @@
 HPLcom/android/server/AlarmManagerService;->dumpProto(Ljava/io/FileDescriptor;)V
 HSPLcom/android/server/AlarmManagerService;->findAllUnrestrictedPendingBackgroundAlarmsLockedInner(Landroid/util/SparseArray;Ljava/util/ArrayList;Ljava/util/function/Predicate;)V
 HSPLcom/android/server/AlarmManagerService;->findFirstWakeupBatchLocked()Lcom/android/server/AlarmManagerService$Batch;
-PLcom/android/server/AlarmManagerService;->formatNextAlarm(Landroid/content/Context;Landroid/app/AlarmManager$AlarmClockInfo;I)Ljava/lang/String;
+HPLcom/android/server/AlarmManagerService;->formatNextAlarm(Landroid/content/Context;Landroid/app/AlarmManager$AlarmClockInfo;I)Ljava/lang/String;
 PLcom/android/server/AlarmManagerService;->fuzzForDuration(J)I
 HPLcom/android/server/AlarmManagerService;->getAlarmAttributionUid(Lcom/android/server/AlarmManagerService$Alarm;)I
 HSPLcom/android/server/AlarmManagerService;->getAlarmCount(Ljava/util/ArrayList;)I
@@ -1242,7 +1301,7 @@
 PLcom/android/server/AlarmManagerService;->lambda$removeForStoppedLocked$3(ILcom/android/server/AlarmManagerService$Alarm;)Z
 HSPLcom/android/server/AlarmManagerService;->lambda$removeLocked$0(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;Lcom/android/server/AlarmManagerService$Alarm;)Z
 PLcom/android/server/AlarmManagerService;->lambda$removeLocked$1(ILcom/android/server/AlarmManagerService$Alarm;)Z
-PLcom/android/server/AlarmManagerService;->lambda$removeUserLocked$4(ILcom/android/server/AlarmManagerService$Alarm;)Z
+HPLcom/android/server/AlarmManagerService;->lambda$removeUserLocked$4(ILcom/android/server/AlarmManagerService$Alarm;)Z
 HPLcom/android/server/AlarmManagerService;->lookForPackageLocked(Ljava/lang/String;)Z
 HSPLcom/android/server/AlarmManagerService;->maxTriggerTime(JJJ)J
 HPLcom/android/server/AlarmManagerService;->notifyBroadcastAlarmCompleteLocked(I)V
@@ -1415,6 +1474,7 @@
 HSPLcom/android/server/BatteryService$HealthHalCallback;-><init>(Lcom/android/server/BatteryService;)V
 HSPLcom/android/server/BatteryService$HealthHalCallback;-><init>(Lcom/android/server/BatteryService;Lcom/android/server/BatteryService$1;)V
 HSPLcom/android/server/BatteryService$HealthHalCallback;->healthInfoChanged(Landroid/hardware/health/V2_0/HealthInfo;)V
+PLcom/android/server/BatteryService$HealthHalCallback;->healthInfoChanged_2_1(Landroid/hardware/health/V2_1/HealthInfo;)V
 HSPLcom/android/server/BatteryService$HealthHalCallback;->onRegistration(Landroid/hardware/health/V2_0/IHealth;Landroid/hardware/health/V2_0/IHealth;Ljava/lang/String;)V
 HSPLcom/android/server/BatteryService$HealthServiceWrapper$1;-><init>(Lcom/android/server/BatteryService$HealthServiceWrapper;)V
 HSPLcom/android/server/BatteryService$HealthServiceWrapper$2;-><init>(Lcom/android/server/BatteryService$HealthServiceWrapper;)V
@@ -1451,6 +1511,7 @@
 HSPLcom/android/server/BatteryService;->access$000(Lcom/android/server/BatteryService;)Ljava/lang/Object;
 HSPLcom/android/server/BatteryService;->access$1000(Lcom/android/server/BatteryService;)I
 HSPLcom/android/server/BatteryService;->access$1100(Lcom/android/server/BatteryService;Landroid/hardware/health/V2_0/HealthInfo;)V
+HSPLcom/android/server/BatteryService;->access$1100(Lcom/android/server/BatteryService;Landroid/hardware/health/V2_1/HealthInfo;)V
 HSPLcom/android/server/BatteryService;->access$1200(Ljava/lang/String;)V
 PLcom/android/server/BatteryService;->access$1300()Ljava/lang/String;
 HSPLcom/android/server/BatteryService;->access$1400()V
@@ -1489,6 +1550,7 @@
 HSPLcom/android/server/BatteryService;->traceBegin(Ljava/lang/String;)V
 HSPLcom/android/server/BatteryService;->traceEnd()V
 HSPLcom/android/server/BatteryService;->update(Landroid/hardware/health/V2_0/HealthInfo;)V
+HSPLcom/android/server/BatteryService;->update(Landroid/hardware/health/V2_1/HealthInfo;)V
 HSPLcom/android/server/BatteryService;->updateBatteryWarningLevelLocked()V
 HSPLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;-><init>()V
 HSPLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;->createAppidWhitelist(Landroid/content/Context;)Landroid/util/ArraySet;
@@ -1546,13 +1608,14 @@
 HSPLcom/android/server/BluetoothManagerService$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/BluetoothManagerService$5;-><init>(Lcom/android/server/BluetoothManagerService;Landroid/os/Handler;)V
 HSPLcom/android/server/BluetoothManagerService$ActiveLog;-><init>(Lcom/android/server/BluetoothManagerService;ILjava/lang/String;ZJ)V
+HPLcom/android/server/BluetoothManagerService$ActiveLog;->dump(Landroid/util/proto/ProtoOutputStream;)V
 PLcom/android/server/BluetoothManagerService$ActiveLog;->toString()Ljava/lang/String;
 HSPLcom/android/server/BluetoothManagerService$BluetoothHandler;-><init>(Lcom/android/server/BluetoothManagerService;Landroid/os/Looper;)V
 HSPLcom/android/server/BluetoothManagerService$BluetoothHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/BluetoothManagerService$BluetoothServiceConnection;-><init>(Lcom/android/server/BluetoothManagerService;)V
 HSPLcom/android/server/BluetoothManagerService$BluetoothServiceConnection;-><init>(Lcom/android/server/BluetoothManagerService;Lcom/android/server/BluetoothManagerService$1;)V
 HSPLcom/android/server/BluetoothManagerService$BluetoothServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/BluetoothManagerService$BluetoothServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
+HPLcom/android/server/BluetoothManagerService$BluetoothServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
 PLcom/android/server/BluetoothManagerService$ClientDeathRecipient;-><init>(Lcom/android/server/BluetoothManagerService;Ljava/lang/String;)V
 PLcom/android/server/BluetoothManagerService$ClientDeathRecipient;->binderDied()V
 PLcom/android/server/BluetoothManagerService$ClientDeathRecipient;->getPackageName()Ljava/lang/String;
@@ -1563,6 +1626,7 @@
 HSPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$2000(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;)Z
 PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$2100(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
 PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$2200(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;)Z
+PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$2300(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;)V
 HPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$3300(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
 HPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$3500(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
 HPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->addProxy(Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
@@ -1571,6 +1635,7 @@
 HPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->isEmpty()Z
 PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->onServiceDisconnected(Landroid/content/ComponentName;)V
+PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->removeAllProxies()V
 HPLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->removeProxy(Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
 HSPLcom/android/server/BluetoothManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/BluetoothManagerService;->access$000(J)Ljava/lang/CharSequence;
@@ -1599,6 +1664,7 @@
 HSPLcom/android/server/BluetoothManagerService;->access$2200(Lcom/android/server/BluetoothManagerService;)Z
 HSPLcom/android/server/BluetoothManagerService;->access$2202(Lcom/android/server/BluetoothManagerService;Z)Z
 HSPLcom/android/server/BluetoothManagerService;->access$2300(Lcom/android/server/BluetoothManagerService;Z)V
+PLcom/android/server/BluetoothManagerService;->access$2400(Lcom/android/server/BluetoothManagerService;Ljava/util/Set;)Z
 PLcom/android/server/BluetoothManagerService;->access$2400(Lcom/android/server/BluetoothManagerService;ZZ)Z
 PLcom/android/server/BluetoothManagerService;->access$2500(Lcom/android/server/BluetoothManagerService;)I
 PLcom/android/server/BluetoothManagerService;->access$2500(Lcom/android/server/BluetoothManagerService;)Z
@@ -1646,6 +1712,7 @@
 PLcom/android/server/BluetoothManagerService;->access$4508(Lcom/android/server/BluetoothManagerService;)I
 PLcom/android/server/BluetoothManagerService;->access$4600(Lcom/android/server/BluetoothManagerService;)V
 PLcom/android/server/BluetoothManagerService;->access$4700(Lcom/android/server/BluetoothManagerService;)V
+PLcom/android/server/BluetoothManagerService;->access$4900(Lcom/android/server/BluetoothManagerService;)V
 PLcom/android/server/BluetoothManagerService;->access$500(Lcom/android/server/BluetoothManagerService;ILjava/lang/String;)V
 PLcom/android/server/BluetoothManagerService;->access$600(Lcom/android/server/BluetoothManagerService;)Z
 HSPLcom/android/server/BluetoothManagerService;->access$600(Lcom/android/server/BluetoothManagerService;Ljava/lang/String;Ljava/lang/String;)V
@@ -1665,7 +1732,8 @@
 PLcom/android/server/BluetoothManagerService;->disableBleScanMode()V
 HSPLcom/android/server/BluetoothManagerService;->doBind(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z
 HPLcom/android/server/BluetoothManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-PLcom/android/server/BluetoothManagerService;->enable(Ljava/lang/String;)Z
+HPLcom/android/server/BluetoothManagerService;->dumpProto(Ljava/io/FileDescriptor;)V
+HPLcom/android/server/BluetoothManagerService;->enable(Ljava/lang/String;)Z
 PLcom/android/server/BluetoothManagerService;->enableNoAutoConnect(Ljava/lang/String;)Z
 HPLcom/android/server/BluetoothManagerService;->getAddress()Ljava/lang/String;
 HPLcom/android/server/BluetoothManagerService;->getBluetoothGatt()Landroid/bluetooth/IBluetoothGatt;
@@ -1677,6 +1745,7 @@
 PLcom/android/server/BluetoothManagerService;->handleDisable()V
 HSPLcom/android/server/BluetoothManagerService;->handleEnable(Z)V
 HSPLcom/android/server/BluetoothManagerService;->handleOnBootPhase()V
+PLcom/android/server/BluetoothManagerService;->handleOnSwitchUser(I)V
 PLcom/android/server/BluetoothManagerService;->handleOnUnlockUser(I)V
 HPLcom/android/server/BluetoothManagerService;->isAirplaneModeOn()Z
 PLcom/android/server/BluetoothManagerService;->isBleAppPresent()Z
@@ -1695,7 +1764,7 @@
 HSPLcom/android/server/BluetoothManagerService;->registerForBleScanModeChange()V
 HSPLcom/android/server/BluetoothManagerService;->registerStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
 HSPLcom/android/server/BluetoothManagerService;->sendBleStateChanged(II)V
-PLcom/android/server/BluetoothManagerService;->sendBluetoothServiceDownCallback()V
+HPLcom/android/server/BluetoothManagerService;->sendBluetoothServiceDownCallback()V
 HSPLcom/android/server/BluetoothManagerService;->sendBluetoothServiceUpCallback()V
 HPLcom/android/server/BluetoothManagerService;->sendBluetoothStateCallback(Z)V
 PLcom/android/server/BluetoothManagerService;->sendBrEdrDownCallback()V
@@ -1704,16 +1773,19 @@
 HSPLcom/android/server/BluetoothManagerService;->storeNameAndAddress(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/BluetoothManagerService;->supportBluetoothPersistedState()Z
 PLcom/android/server/BluetoothManagerService;->timeToLog(J)Ljava/lang/CharSequence;
+PLcom/android/server/BluetoothManagerService;->unbindAllBluetoothProfileServices()V
 PLcom/android/server/BluetoothManagerService;->unbindAndFinish()V
 HPLcom/android/server/BluetoothManagerService;->unbindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)V
 HPLcom/android/server/BluetoothManagerService;->unregisterStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
 HPLcom/android/server/BluetoothManagerService;->updateBleAppCount(Landroid/os/IBinder;ZLjava/lang/String;)I
 PLcom/android/server/BluetoothManagerService;->updateOppLauncherComponentState(IZ)V
-PLcom/android/server/BluetoothManagerService;->waitForOnOff(ZZ)Z
+HPLcom/android/server/BluetoothManagerService;->waitForOnOff(ZZ)Z
+PLcom/android/server/BluetoothManagerService;->waitForState(Ljava/util/Set;)Z
 HSPLcom/android/server/BluetoothService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/BluetoothService;->initialize()V
 HSPLcom/android/server/BluetoothService;->onBootPhase(I)V
 HSPLcom/android/server/BluetoothService;->onStart()V
+PLcom/android/server/BluetoothService;->onSwitchUser(I)V
 PLcom/android/server/BluetoothService;->onUnlockUser(I)V
 HSPLcom/android/server/CachedDeviceStateService$1;-><init>(Lcom/android/server/CachedDeviceStateService;)V
 HSPLcom/android/server/CachedDeviceStateService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -1768,6 +1840,8 @@
 HPLcom/android/server/ConnectivityService$ConnectivityReportEvent;-><init>(JLcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/ConnectivityService$1;)V
 PLcom/android/server/ConnectivityService$ConnectivityReportEvent;->access$8100(Lcom/android/server/ConnectivityService$ConnectivityReportEvent;)Lcom/android/server/connectivity/NetworkAgentInfo;
 PLcom/android/server/ConnectivityService$ConnectivityReportEvent;->access$8200(Lcom/android/server/ConnectivityService$ConnectivityReportEvent;)J
+HPLcom/android/server/ConnectivityService$ConnectivityReportEvent;->access$8300(Lcom/android/server/ConnectivityService$ConnectivityReportEvent;)Lcom/android/server/connectivity/NetworkAgentInfo;
+HPLcom/android/server/ConnectivityService$ConnectivityReportEvent;->access$8400(Lcom/android/server/ConnectivityService$ConnectivityReportEvent;)J
 HSPLcom/android/server/ConnectivityService$Dependencies;-><init>()V
 PLcom/android/server/ConnectivityService$Dependencies;->getBatteryStatsService()Lcom/android/internal/app/IBatteryStats;
 HSPLcom/android/server/ConnectivityService$Dependencies;->getIpConnectivityMetrics()Landroid/net/IIpConnectivityMetrics;
@@ -1819,15 +1893,18 @@
 HSPLcom/android/server/ConnectivityService$NetworkProviderInfo;->sendMessageToNetworkProvider(IIILjava/lang/Object;)V
 HPLcom/android/server/ConnectivityService$NetworkReassignment$NetworkBgStatePair;-><init>(Lcom/android/server/connectivity/NetworkAgentInfo;Z)V
 HSPLcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;-><init>(Lcom/android/server/ConnectivityService$NetworkRequestInfo;Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;)V
+HPLcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;->toString()Ljava/lang/String;
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;-><init>()V
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;-><init>(Lcom/android/server/ConnectivityService$1;)V
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;->access$6600(Lcom/android/server/ConnectivityService$NetworkReassignment;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)Lcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;->access$7200(Lcom/android/server/ConnectivityService$NetworkReassignment;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)Lcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;
+HSPLcom/android/server/ConnectivityService$NetworkReassignment;->access$7400(Lcom/android/server/ConnectivityService$NetworkReassignment;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)Lcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;
 HPLcom/android/server/ConnectivityService$NetworkReassignment;->addRematchedNetwork(Lcom/android/server/ConnectivityService$NetworkReassignment$NetworkBgStatePair;)V
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;->addRequestReassignment(Lcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;)V
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;->getReassignment(Lcom/android/server/ConnectivityService$NetworkRequestInfo;)Lcom/android/server/ConnectivityService$NetworkReassignment$RequestReassignment;
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;->getRematchedNetworks()Ljava/lang/Iterable;
 HSPLcom/android/server/ConnectivityService$NetworkReassignment;->getRequestReassignments()Ljava/lang/Iterable;
+HSPLcom/android/server/ConnectivityService$NetworkReassignment;->toString()Ljava/lang/String;
 PLcom/android/server/ConnectivityService$NetworkRequestInfo;-><init>(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;Landroid/app/PendingIntent;)V
 HSPLcom/android/server/ConnectivityService$NetworkRequestInfo;-><init>(Lcom/android/server/ConnectivityService;Landroid/os/Messenger;Landroid/net/NetworkRequest;Landroid/os/IBinder;)V
 HPLcom/android/server/ConnectivityService$NetworkRequestInfo;->binderDied()V
@@ -1880,7 +1957,7 @@
 PLcom/android/server/ConnectivityService;->access$2000(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$Dependencies;
 PLcom/android/server/ConnectivityService;->access$2000(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkNotificationManager$NotificationType;)V
 PLcom/android/server/ConnectivityService;->access$2100(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$Dependencies;
-PLcom/android/server/ConnectivityService;->access$2100(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
+HPLcom/android/server/ConnectivityService;->access$2100(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
 PLcom/android/server/ConnectivityService;->access$2200(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/ConnectivityService;->access$2300(Lcom/android/server/ConnectivityService;)Lcom/android/server/connectivity/NetworkNotificationManager;
 PLcom/android/server/ConnectivityService;->access$2300(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
@@ -1899,6 +1976,7 @@
 HSPLcom/android/server/ConnectivityService;->access$300(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$InternalHandler;
 HPLcom/android/server/ConnectivityService;->access$300(Lcom/android/server/ConnectivityService;IZJ)V
 PLcom/android/server/ConnectivityService;->access$3000(Lcom/android/server/ConnectivityService;)Landroid/content/Context;
+PLcom/android/server/ConnectivityService;->access$3000(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$Dependencies;
 PLcom/android/server/ConnectivityService;->access$3000(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
 PLcom/android/server/ConnectivityService;->access$3000(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;I)Z
 PLcom/android/server/ConnectivityService;->access$3100(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
@@ -1909,6 +1987,7 @@
 HPLcom/android/server/ConnectivityService;->access$3300(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$NetworkStateTrackerHandler;
 PLcom/android/server/ConnectivityService;->access$3300(Lcom/android/server/ConnectivityService;Landroid/net/Network;)V
 PLcom/android/server/ConnectivityService;->access$3300(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;IZ)V
+PLcom/android/server/ConnectivityService;->access$3300(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
 PLcom/android/server/ConnectivityService;->access$3400(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$NetworkStateTrackerHandler;
 PLcom/android/server/ConnectivityService;->access$3400(Lcom/android/server/ConnectivityService;)V
 PLcom/android/server/ConnectivityService;->access$3400(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
@@ -1926,7 +2005,8 @@
 PLcom/android/server/ConnectivityService;->access$3900(Lcom/android/server/ConnectivityService;Landroid/os/Messenger;)V
 HSPLcom/android/server/ConnectivityService;->access$3900(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkFactoryInfo;)V
 HPLcom/android/server/ConnectivityService;->access$3900(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/INetworkMonitor;)V
-PLcom/android/server/ConnectivityService;->access$400(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$InternalHandler;
+HSPLcom/android/server/ConnectivityService;->access$400(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$InternalHandler;
+PLcom/android/server/ConnectivityService;->access$4000(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$NetworkStateTrackerHandler;
 HSPLcom/android/server/ConnectivityService;->access$4000(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
 PLcom/android/server/ConnectivityService;->access$4000(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/INetworkMonitor;)V
 PLcom/android/server/ConnectivityService;->access$4100(Lcom/android/server/ConnectivityService;)V
@@ -1943,12 +2023,14 @@
 HPLcom/android/server/ConnectivityService;->access$4500(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;IZ)V
 PLcom/android/server/ConnectivityService;->access$4500(Lcom/android/server/ConnectivityService;Landroid/os/Messenger;)V
 PLcom/android/server/ConnectivityService;->access$4600(Lcom/android/server/ConnectivityService;Landroid/net/Network;ZZ)V
+HSPLcom/android/server/ConnectivityService;->access$4600(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkProviderInfo;)V
 PLcom/android/server/ConnectivityService;->access$4600(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/INetworkMonitor;)V
 HSPLcom/android/server/ConnectivityService;->access$4700(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
 HSPLcom/android/server/ConnectivityService;->access$4800(Lcom/android/server/ConnectivityService;)V
+PLcom/android/server/ConnectivityService;->access$4800(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/INetworkMonitor;)V
 HSPLcom/android/server/ConnectivityService;->access$4900(Lcom/android/server/ConnectivityService;)V
 HPLcom/android/server/ConnectivityService;->access$4900(Lcom/android/server/ConnectivityService;Landroid/net/Network;IZ)V
-PLcom/android/server/ConnectivityService;->access$4900(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
+HSPLcom/android/server/ConnectivityService;->access$4900(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
 HPLcom/android/server/ConnectivityService;->access$500(Lcom/android/server/ConnectivityService;I)Lcom/android/server/connectivity/NetworkAgentInfo;
 HPLcom/android/server/ConnectivityService;->access$5000(Lcom/android/server/ConnectivityService;Landroid/net/Network;IZ)V
 PLcom/android/server/ConnectivityService;->access$5100(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;IZ)V
@@ -1957,38 +2039,48 @@
 PLcom/android/server/ConnectivityService;->access$5200(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
 HSPLcom/android/server/ConnectivityService;->access$5300(Lcom/android/server/ConnectivityService;)V
 HSPLcom/android/server/ConnectivityService;->access$5300(Lcom/android/server/ConnectivityService;I)V
+PLcom/android/server/ConnectivityService;->access$5300(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;IZ)V
 PLcom/android/server/ConnectivityService;->access$5400(Lcom/android/server/ConnectivityService;I)V
-PLcom/android/server/ConnectivityService;->access$5500(Lcom/android/server/ConnectivityService;)V
+HSPLcom/android/server/ConnectivityService;->access$5500(Lcom/android/server/ConnectivityService;)V
 PLcom/android/server/ConnectivityService;->access$5500(Lcom/android/server/ConnectivityService;I)V
 PLcom/android/server/ConnectivityService;->access$5600(Lcom/android/server/ConnectivityService;I)V
 PLcom/android/server/ConnectivityService;->access$5600(Lcom/android/server/ConnectivityService;Landroid/net/Network;IZ)V
+HSPLcom/android/server/ConnectivityService;->access$5700(Lcom/android/server/ConnectivityService;)V
 PLcom/android/server/ConnectivityService;->access$5700(Lcom/android/server/ConnectivityService;I)V
 PLcom/android/server/ConnectivityService;->access$5800(Lcom/android/server/ConnectivityService;I)V
 PLcom/android/server/ConnectivityService;->access$5800(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
 PLcom/android/server/ConnectivityService;->access$5800(Lcom/android/server/ConnectivityService;Ljava/lang/String;I)V
-PLcom/android/server/ConnectivityService;->access$5900(Lcom/android/server/ConnectivityService;)V
+HSPLcom/android/server/ConnectivityService;->access$5900(Lcom/android/server/ConnectivityService;)V
 PLcom/android/server/ConnectivityService;->access$5900(Lcom/android/server/ConnectivityService;Ljava/lang/String;I)V
 HPLcom/android/server/ConnectivityService;->access$600(Lcom/android/server/ConnectivityService;)Landroid/net/NetworkRequest;
 HPLcom/android/server/ConnectivityService;->access$600(Lcom/android/server/ConnectivityService;I)Lcom/android/server/connectivity/NetworkAgentInfo;
-PLcom/android/server/ConnectivityService;->access$6000(Lcom/android/server/ConnectivityService;I)V
+HSPLcom/android/server/ConnectivityService;->access$6000(Lcom/android/server/ConnectivityService;I)V
+PLcom/android/server/ConnectivityService;->access$6000(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
 PLcom/android/server/ConnectivityService;->access$6000(Lcom/android/server/ConnectivityService;Ljava/lang/String;I)V
 PLcom/android/server/ConnectivityService;->access$6000(Lcom/android/server/ConnectivityService;Ljava/lang/String;IZ)V
+HSPLcom/android/server/ConnectivityService;->access$6100(Lcom/android/server/ConnectivityService;)V
 PLcom/android/server/ConnectivityService;->access$6100(Lcom/android/server/ConnectivityService;I)V
 HSPLcom/android/server/ConnectivityService;->access$6100(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;)V
 HSPLcom/android/server/ConnectivityService;->access$6100(Lcom/android/server/ConnectivityService;Ljava/lang/String;IZ)V
 HSPLcom/android/server/ConnectivityService;->access$6200(Lcom/android/server/ConnectivityService;)Landroid/util/SparseIntArray;
+HSPLcom/android/server/ConnectivityService;->access$6200(Lcom/android/server/ConnectivityService;I)V
 HSPLcom/android/server/ConnectivityService;->access$6200(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;)V
 HSPLcom/android/server/ConnectivityService;->access$6300(Lcom/android/server/ConnectivityService;)Landroid/util/SparseIntArray;
 PLcom/android/server/ConnectivityService;->access$6400(Lcom/android/server/ConnectivityService;I)V
 PLcom/android/server/ConnectivityService;->access$6500(Lcom/android/server/ConnectivityService;Ljava/lang/String;I)V
 PLcom/android/server/ConnectivityService;->access$6600(Lcom/android/server/ConnectivityService;Ljava/lang/String;I)V
+PLcom/android/server/ConnectivityService;->access$6700(Lcom/android/server/ConnectivityService;Ljava/lang/String;I)V
 PLcom/android/server/ConnectivityService;->access$6700(Lcom/android/server/ConnectivityService;Ljava/lang/String;IZ)V
 HSPLcom/android/server/ConnectivityService;->access$6800(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;)V
 HSPLcom/android/server/ConnectivityService;->access$6900(Lcom/android/server/ConnectivityService;)Landroid/util/SparseIntArray;
+PLcom/android/server/ConnectivityService;->access$6900(Lcom/android/server/ConnectivityService;Ljava/lang/String;IZ)V
 HPLcom/android/server/ConnectivityService;->access$700(Lcom/android/server/ConnectivityService;)Landroid/net/NetworkRequest;
 PLcom/android/server/ConnectivityService;->access$700(Lcom/android/server/ConnectivityService;IZLjava/lang/String;I)V
+HSPLcom/android/server/ConnectivityService;->access$7000(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;)V
+HSPLcom/android/server/ConnectivityService;->access$7100(Lcom/android/server/ConnectivityService;)Landroid/util/SparseIntArray;
 PLcom/android/server/ConnectivityService;->access$7600(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$ConnectivityReportEvent;Landroid/os/PersistableBundle;)V
 PLcom/android/server/ConnectivityService;->access$7700(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;JILandroid/os/PersistableBundle;)V
+PLcom/android/server/ConnectivityService;->access$7800(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$ConnectivityReportEvent;Landroid/os/PersistableBundle;)V
 HPLcom/android/server/ConnectivityService;->access$7800(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Z)V
 PLcom/android/server/ConnectivityService;->access$800(Lcom/android/server/ConnectivityService;IZLjava/lang/String;I)V
 HPLcom/android/server/ConnectivityService;->access$800(Lcom/android/server/ConnectivityService;Landroid/os/Message;)V
@@ -1997,6 +2089,7 @@
 HPLcom/android/server/ConnectivityService;->addLegacyRouteToHost(Landroid/net/LinkProperties;Ljava/net/InetAddress;II)Z
 HPLcom/android/server/ConnectivityService;->addNetworkToLegacyTypeTracker(Lcom/android/server/connectivity/NetworkAgentInfo;)V
 PLcom/android/server/ConnectivityService;->applyBackgroundChangeForRematch(Lcom/android/server/connectivity/NetworkAgentInfo;)V
+HSPLcom/android/server/ConnectivityService;->applyNetworkReassignment(Lcom/android/server/ConnectivityService$NetworkReassignment;J)V
 HPLcom/android/server/ConnectivityService;->avoidBadWifi()Z
 HPLcom/android/server/ConnectivityService;->callCallbackForRequest(Lcom/android/server/ConnectivityService$NetworkRequestInfo;Lcom/android/server/connectivity/NetworkAgentInfo;II)V
 PLcom/android/server/ConnectivityService;->checkAnyPermissionOf(II[Ljava/lang/String;)Z
@@ -2006,6 +2099,7 @@
 HSPLcom/android/server/ConnectivityService;->checkSettingsPermission()Z
 HPLcom/android/server/ConnectivityService;->checkSettingsPermission(II)Z
 HSPLcom/android/server/ConnectivityService;->computeInitialReassignment()Lcom/android/server/ConnectivityService$NetworkReassignment;
+HSPLcom/android/server/ConnectivityService;->computeNetworkReassignment()Lcom/android/server/ConnectivityService$NetworkReassignment;
 HPLcom/android/server/ConnectivityService;->computeRequestReassignmentForNetwork(Lcom/android/server/ConnectivityService$NetworkReassignment;Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/util/ArrayMap;
 HPLcom/android/server/ConnectivityService;->computeRequestReassignmentForNetwork(Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/util/ArrayMap;
 HSPLcom/android/server/ConnectivityService;->createDefaultInternetRequestForTransport(ILandroid/net/NetworkRequest$Type;)Landroid/net/NetworkRequest;
@@ -2063,6 +2157,7 @@
 HPLcom/android/server/ConnectivityService;->getAlwaysOnVpnPackage(I)Ljava/lang/String;
 HSPLcom/android/server/ConnectivityService;->getDefaultNetwork()Lcom/android/server/connectivity/NetworkAgentInfo;
 HPLcom/android/server/ConnectivityService;->getDefaultNetworkCapabilitiesForUser(I)[Landroid/net/NetworkCapabilities;
+HPLcom/android/server/ConnectivityService;->getDefaultNetworkCapabilitiesForUser(ILjava/lang/String;)[Landroid/net/NetworkCapabilities;
 HPLcom/android/server/ConnectivityService;->getDefaultNetworks()[Landroid/net/Network;
 PLcom/android/server/ConnectivityService;->getDefaultRequest()Landroid/net/NetworkRequest;
 HSPLcom/android/server/ConnectivityService;->getDnsResolver()Landroid/net/IDnsResolver;
@@ -2078,6 +2173,8 @@
 HPLcom/android/server/ConnectivityService;->getNetworkAgentInfoForNetId(I)Lcom/android/server/connectivity/NetworkAgentInfo;
 HSPLcom/android/server/ConnectivityService;->getNetworkAgentInfoForNetwork(Landroid/net/Network;)Lcom/android/server/connectivity/NetworkAgentInfo;
 HSPLcom/android/server/ConnectivityService;->getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
+HSPLcom/android/server/ConnectivityService;->getNetworkCapabilities(Landroid/net/Network;Ljava/lang/String;)Landroid/net/NetworkCapabilities;
+HSPLcom/android/server/ConnectivityService;->getNetworkCapabilitiesInternal(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
 HSPLcom/android/server/ConnectivityService;->getNetworkCapabilitiesInternal(Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/net/NetworkCapabilities;
 HPLcom/android/server/ConnectivityService;->getNetworkInfo(I)Landroid/net/NetworkInfo;
 HSPLcom/android/server/ConnectivityService;->getNetworkInfoForUid(Landroid/net/Network;IZ)Landroid/net/NetworkInfo;
@@ -2119,6 +2216,7 @@
 HPLcom/android/server/ConnectivityService;->handleRemoveNetworkRequest(Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
 HPLcom/android/server/ConnectivityService;->handleReportNetworkConnectivity(Landroid/net/Network;IZ)V
 PLcom/android/server/ConnectivityService;->handleRestrictBackgroundChanged(Z)V
+PLcom/android/server/ConnectivityService;->handleSetAcceptPartialConnectivity(Landroid/net/Network;ZZ)V
 PLcom/android/server/ConnectivityService;->handleSetAcceptUnvalidated(Landroid/net/Network;ZZ)V
 HPLcom/android/server/ConnectivityService;->handleTimedOutNetworkRequest(Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
 HSPLcom/android/server/ConnectivityService;->handleUidRulesChanged(II)V
@@ -2137,13 +2235,20 @@
 PLcom/android/server/ConnectivityService;->isTetheringSupported()Z
 PLcom/android/server/ConnectivityService;->isTetheringSupported(Ljava/lang/String;)Z
 HPLcom/android/server/ConnectivityService;->isUidNetworkingWithVpnBlocked(IIZZ)Z
+HPLcom/android/server/ConnectivityService;->lambda$maybeSanitizeLocationInfoForCaller$1$ConnectivityService(Ljava/lang/String;ILandroid/net/NetworkCapabilities;)V
 PLcom/android/server/ConnectivityService;->lambda$networksSortedById$1(Lcom/android/server/connectivity/NetworkAgentInfo;)I
+PLcom/android/server/ConnectivityService;->lambda$networksSortedById$2(Lcom/android/server/connectivity/NetworkAgentInfo;)I
 PLcom/android/server/ConnectivityService;->lambda$new$0$ConnectivityService()V
 PLcom/android/server/ConnectivityService;->lambda$registerNetworkProvider$5$ConnectivityService(Landroid/os/Messenger;)V
+PLcom/android/server/ConnectivityService;->lambda$registerNetworkProvider$6$ConnectivityService(Landroid/os/Messenger;)V
 HPLcom/android/server/ConnectivityService;->lambda$requestsSortedById$2(Lcom/android/server/ConnectivityService$NetworkRequestInfo;)I
+PLcom/android/server/ConnectivityService;->lambda$requestsSortedById$3(Lcom/android/server/ConnectivityService$NetworkRequestInfo;)I
 HPLcom/android/server/ConnectivityService;->lambda$setUnderlyingNetworksForVpn$7$ConnectivityService()V
+PLcom/android/server/ConnectivityService;->lambda$setUnderlyingNetworksForVpn$8$ConnectivityService()V
 PLcom/android/server/ConnectivityService;->lambda$startCaptivePortalApp$3$ConnectivityService(Landroid/net/Network;)V
+PLcom/android/server/ConnectivityService;->lambda$startCaptivePortalApp$4$ConnectivityService(Landroid/net/Network;)V
 PLcom/android/server/ConnectivityService;->lambda$startCaptivePortalAppInternal$4$ConnectivityService(Landroid/content/Intent;)V
+PLcom/android/server/ConnectivityService;->lambda$startCaptivePortalAppInternal$5$ConnectivityService(Landroid/content/Intent;)V
 HPLcom/android/server/ConnectivityService;->linkPropertiesRestrictedForCallerPermissions(Landroid/net/LinkProperties;II)Landroid/net/LinkProperties;
 HSPLcom/android/server/ConnectivityService;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/NetworkRequest;
 HSPLcom/android/server/ConnectivityService;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;Ljava/lang/String;)Landroid/net/NetworkRequest;
@@ -2157,8 +2262,11 @@
 HPLcom/android/server/ConnectivityService;->maybeNotifyNetworkBlocked(Lcom/android/server/connectivity/NetworkAgentInfo;ZZZZ)V
 HSPLcom/android/server/ConnectivityService;->maybeNotifyNetworkBlockedForNewUidRules(II)V
 HPLcom/android/server/ConnectivityService;->maybeSanitizeLocationInfoForCaller(Landroid/net/NetworkCapabilities;I)V
+HSPLcom/android/server/ConnectivityService;->maybeSanitizeLocationInfoForCaller(Landroid/net/NetworkCapabilities;ILjava/lang/String;)Landroid/net/NetworkCapabilities;
+PLcom/android/server/ConnectivityService;->mixInAllNetworkScores()V
 HPLcom/android/server/ConnectivityService;->mixInCapabilities(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkCapabilities;)Landroid/net/NetworkCapabilities;
 HPLcom/android/server/ConnectivityService;->mixInInfo(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkInfo;)Landroid/net/NetworkInfo;
+HPLcom/android/server/ConnectivityService;->mixInNetworkScore(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkScore;)Landroid/net/NetworkScore;
 HPLcom/android/server/ConnectivityService;->networkCapabilitiesRestrictedForCallerPermissions(Landroid/net/NetworkCapabilities;II)Landroid/net/NetworkCapabilities;
 PLcom/android/server/ConnectivityService;->networkRequiresPrivateDnsValidation(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
 PLcom/android/server/ConnectivityService;->networksSortedById()[Lcom/android/server/connectivity/NetworkAgentInfo;
@@ -2172,7 +2280,7 @@
 PLcom/android/server/ConnectivityService;->notifyNetworkLosing(Lcom/android/server/connectivity/NetworkAgentInfo;J)V
 HPLcom/android/server/ConnectivityService;->onPackageAdded(Ljava/lang/String;I)V
 HSPLcom/android/server/ConnectivityService;->onPackageRemoved(Ljava/lang/String;IZ)V
-PLcom/android/server/ConnectivityService;->onPackageReplaced(Ljava/lang/String;I)V
+HPLcom/android/server/ConnectivityService;->onPackageReplaced(Ljava/lang/String;I)V
 PLcom/android/server/ConnectivityService;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/ConnectivityService;->onUserAdded(I)V
 PLcom/android/server/ConnectivityService;->onUserRemoved(I)V
@@ -2204,7 +2312,7 @@
 HPLcom/android/server/ConnectivityService;->removeDataActivityTracking(Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/ConnectivityService;->reportNetworkConnectivity(Landroid/net/Network;Z)V
 HSPLcom/android/server/ConnectivityService;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;I)Landroid/net/NetworkRequest;
-HPLcom/android/server/ConnectivityService;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;ILjava/lang/String;)Landroid/net/NetworkRequest;
+HSPLcom/android/server/ConnectivityService;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;ILjava/lang/String;)Landroid/net/NetworkRequest;
 HPLcom/android/server/ConnectivityService;->requestRouteToHostAddress(I[B)Z
 PLcom/android/server/ConnectivityService;->requestsSortedById()[Lcom/android/server/ConnectivityService$NetworkRequestInfo;
 HPLcom/android/server/ConnectivityService;->requiresVpnIsolation(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;)Z
@@ -2225,6 +2333,7 @@
 HPLcom/android/server/ConnectivityService;->sendStickyBroadcast(Landroid/content/Intent;)V
 HSPLcom/android/server/ConnectivityService;->sendUpdatedScoreToFactories(Landroid/net/NetworkRequest;Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/ConnectivityService;->sendUpdatedScoreToFactories(Lcom/android/server/connectivity/NetworkAgentInfo;)V
+PLcom/android/server/ConnectivityService;->setAcceptPartialConnectivity(Landroid/net/Network;ZZ)V
 PLcom/android/server/ConnectivityService;->setAcceptUnvalidated(Landroid/net/Network;ZZ)V
 PLcom/android/server/ConnectivityService;->setAirplaneMode(Z)V
 PLcom/android/server/ConnectivityService;->setAlwaysOnVpnPackage(ILjava/lang/String;ZLjava/util/List;)Z
@@ -2257,6 +2366,7 @@
 HPLcom/android/server/ConnectivityService;->updateDnses(Landroid/net/LinkProperties;Landroid/net/LinkProperties;I)V
 HPLcom/android/server/ConnectivityService;->updateInetCondition(Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/ConnectivityService;->updateInterfaces(Landroid/net/LinkProperties;Landroid/net/LinkProperties;ILandroid/net/NetworkCapabilities;I)V
+HSPLcom/android/server/ConnectivityService;->updateLegacyTypeTrackerAndVpnLockdownForRematch(Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;Ljava/util/Collection;)V
 HSPLcom/android/server/ConnectivityService;->updateLegacyTypeTrackerAndVpnLockdownForRematch(Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;[Lcom/android/server/connectivity/NetworkAgentInfo;)V
 HPLcom/android/server/ConnectivityService;->updateLingerState(Lcom/android/server/connectivity/NetworkAgentInfo;J)V
 HPLcom/android/server/ConnectivityService;->updateLingerState(Lcom/android/server/connectivity/NetworkAgentInfo;J)Z
@@ -2265,6 +2375,7 @@
 HPLcom/android/server/ConnectivityService;->updateMtu(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)V
 HPLcom/android/server/ConnectivityService;->updateNetworkInfo(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkInfo;)V
 HPLcom/android/server/ConnectivityService;->updateNetworkPermissions(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkCapabilities;)V
+PLcom/android/server/ConnectivityService;->updateNetworkScore(Lcom/android/server/connectivity/NetworkAgentInfo;I)V
 HPLcom/android/server/ConnectivityService;->updateNetworkScore(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkScore;)V
 PLcom/android/server/ConnectivityService;->updatePrivateDns(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/shared/PrivateDnsConfig;)V
 HPLcom/android/server/ConnectivityService;->updateProxy(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)V
@@ -2426,7 +2537,7 @@
 PLcom/android/server/EventLogTags;->writeDeviceIdleWakeFromIdle(ILjava/lang/String;)V
 HPLcom/android/server/EventLogTags;->writeNetstatsMobileSample(JJJJJJJJJJJJJ)V
 HPLcom/android/server/EventLogTags;->writeNetstatsWifiSample(JJJJJJJJJJJJJ)V
-PLcom/android/server/EventLogTags;->writeNotificationActionClicked(Ljava/lang/String;IIIIII)V
+HPLcom/android/server/EventLogTags;->writeNotificationActionClicked(Ljava/lang/String;IIIIII)V
 HSPLcom/android/server/EventLogTags;->writeNotificationAlert(Ljava/lang/String;III)V
 PLcom/android/server/EventLogTags;->writeNotificationAutogrouped(Ljava/lang/String;)V
 HPLcom/android/server/EventLogTags;->writeNotificationCancel(IILjava/lang/String;ILjava/lang/String;IIIILjava/lang/String;)V
@@ -2580,12 +2691,18 @@
 HSPLcom/android/server/IntentResolver;-><init>()V
 HSPLcom/android/server/IntentResolver;->addFilter(Landroid/content/IntentFilter;)V
 HSPLcom/android/server/IntentResolver;->addFilter(Landroid/util/ArrayMap;Ljava/lang/String;Landroid/content/IntentFilter;)V
+HSPLcom/android/server/IntentResolver;->addFilter(Landroid/util/ArrayMap;Ljava/lang/String;Ljava/lang/Object;)V
+HSPLcom/android/server/IntentResolver;->addFilter(Ljava/lang/Object;)V
 HSPLcom/android/server/IntentResolver;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
+HSPLcom/android/server/IntentResolver;->allowFilterResult(Ljava/lang/Object;Ljava/util/List;)Z
 HSPLcom/android/server/IntentResolver;->buildResolveList(Landroid/content/Intent;Landroid/util/FastImmutableArraySet;ZZLjava/lang/String;Ljava/lang/String;[Landroid/content/IntentFilter;Ljava/util/List;I)V
+HSPLcom/android/server/IntentResolver;->buildResolveList(Landroid/content/Intent;Landroid/util/FastImmutableArraySet;ZZLjava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/util/List;I)V
 HSPLcom/android/server/IntentResolver;->collectFilters([Landroid/content/IntentFilter;Landroid/content/IntentFilter;)Ljava/util/ArrayList;
+HSPLcom/android/server/IntentResolver;->collectFilters([Ljava/lang/Object;Landroid/content/IntentFilter;)Ljava/util/ArrayList;
 HPLcom/android/server/IntentResolver;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)Z
 PLcom/android/server/IntentResolver;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HPLcom/android/server/IntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/content/IntentFilter;)V
+HPLcom/android/server/IntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;)V
 HPLcom/android/server/IntentResolver;->dumpMap(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArrayMap;Ljava/lang/String;ZZ)Z
 HSPLcom/android/server/IntentResolver;->filterEquals(Landroid/content/IntentFilter;Landroid/content/IntentFilter;)Z
 HSPLcom/android/server/IntentResolver;->filterIterator()Ljava/util/Iterator;
@@ -2594,17 +2711,25 @@
 HSPLcom/android/server/IntentResolver;->findFilters(Landroid/content/IntentFilter;)Ljava/util/ArrayList;
 HSPLcom/android/server/IntentResolver;->getFastIntentCategories(Landroid/content/Intent;)Landroid/util/FastImmutableArraySet;
 HSPLcom/android/server/IntentResolver;->isFilterStopped(Landroid/content/IntentFilter;I)Z
+HSPLcom/android/server/IntentResolver;->isFilterStopped(Ljava/lang/Object;I)Z
 HSPLcom/android/server/IntentResolver;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
+HSPLcom/android/server/IntentResolver;->newResult(Ljava/lang/Object;II)Ljava/lang/Object;
 HSPLcom/android/server/IntentResolver;->queryIntent(Landroid/content/Intent;Ljava/lang/String;ZI)Ljava/util/List;
 HSPLcom/android/server/IntentResolver;->queryIntentFromList(Landroid/content/Intent;Ljava/lang/String;ZLjava/util/ArrayList;I)Ljava/util/List;
 HSPLcom/android/server/IntentResolver;->register_intent_filter(Landroid/content/IntentFilter;Ljava/util/Iterator;Landroid/util/ArrayMap;Ljava/lang/String;)I
+HSPLcom/android/server/IntentResolver;->register_intent_filter(Ljava/lang/Object;Ljava/util/Iterator;Landroid/util/ArrayMap;Ljava/lang/String;)I
 HSPLcom/android/server/IntentResolver;->register_mime_types(Landroid/content/IntentFilter;Ljava/lang/String;)I
+HSPLcom/android/server/IntentResolver;->register_mime_types(Ljava/lang/Object;Ljava/lang/String;)I
 HSPLcom/android/server/IntentResolver;->removeFilter(Landroid/content/IntentFilter;)V
+HPLcom/android/server/IntentResolver;->removeFilter(Ljava/lang/Object;)V
 HSPLcom/android/server/IntentResolver;->removeFilterInternal(Landroid/content/IntentFilter;)V
+HPLcom/android/server/IntentResolver;->removeFilterInternal(Ljava/lang/Object;)V
 HSPLcom/android/server/IntentResolver;->remove_all_objects(Landroid/util/ArrayMap;Ljava/lang/String;Ljava/lang/Object;)V
 HSPLcom/android/server/IntentResolver;->sortResults(Ljava/util/List;)V
 HSPLcom/android/server/IntentResolver;->unregister_intent_filter(Landroid/content/IntentFilter;Ljava/util/Iterator;Landroid/util/ArrayMap;Ljava/lang/String;)I
+HPLcom/android/server/IntentResolver;->unregister_intent_filter(Ljava/lang/Object;Ljava/util/Iterator;Landroid/util/ArrayMap;Ljava/lang/String;)I
 HSPLcom/android/server/IntentResolver;->unregister_mime_types(Landroid/content/IntentFilter;Ljava/lang/String;)I
+HPLcom/android/server/IntentResolver;->unregister_mime_types(Ljava/lang/Object;Ljava/lang/String;)I
 HPLcom/android/server/IntentResolver;->writeProtoMap(Landroid/util/proto/ProtoOutputStream;JLandroid/util/ArrayMap;)V
 HSPLcom/android/server/IoThread;-><init>()V
 HSPLcom/android/server/IoThread;->ensureThreadLocked()V
@@ -2628,7 +2753,7 @@
 HSPLcom/android/server/IpSecService;->systemReady()V
 HSPLcom/android/server/LocationManagerService$1;-><init>(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/LocationManagerService$1;->lambda$onOpChanged$0$LocationManagerService$1()V
-HPLcom/android/server/LocationManagerService$1;->lambda$onOpChanged$0$LocationManagerService$1(Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerService$1;->lambda$onOpChanged$0$LocationManagerService$1(Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService$1;->onOpChanged(ILjava/lang/String;)V
 HSPLcom/android/server/LocationManagerService$2;-><init>(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/LocationManagerService$2;->onPackageDisappeared(Ljava/lang/String;I)V
@@ -2639,7 +2764,7 @@
 HSPLcom/android/server/LocationManagerService$Lifecycle;->onStart()V
 HSPLcom/android/server/LocationManagerService$LocalService;-><init>(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/LocationManagerService$LocalService;-><init>(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$1;)V
-HPLcom/android/server/LocationManagerService$LocalService;->isProviderEnabledForUser(Ljava/lang/String;I)Z
+HSPLcom/android/server/LocationManagerService$LocalService;->isProviderEnabledForUser(Ljava/lang/String;I)Z
 HPLcom/android/server/LocationManagerService$LocalService;->isProviderPackage(Ljava/lang/String;)Z
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService$LocationProviderManager;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;Lcom/android/server/LocationManagerService$1;)V
@@ -2680,25 +2805,29 @@
 HPLcom/android/server/LocationManagerService$PassiveLocationProviderManager;->updateLocation(Landroid/location/Location;)V
 HSPLcom/android/server/LocationManagerService$Receiver;-><init>(Lcom/android/server/LocationManagerService;Landroid/location/ILocationListener;Landroid/app/PendingIntent;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;ZLjava/lang/String;)V
 HSPLcom/android/server/LocationManagerService$Receiver;-><init>(Lcom/android/server/LocationManagerService;Landroid/location/ILocationListener;Landroid/app/PendingIntent;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;ZLjava/lang/String;Lcom/android/server/LocationManagerService$1;)V
-HPLcom/android/server/LocationManagerService$Receiver;->access$2800(Lcom/android/server/LocationManagerService$Receiver;)V
+HSPLcom/android/server/LocationManagerService$Receiver;->access$2700(Lcom/android/server/LocationManagerService$Receiver;)V
+HSPLcom/android/server/LocationManagerService$Receiver;->access$2800(Lcom/android/server/LocationManagerService$Receiver;)V
+HSPLcom/android/server/LocationManagerService$Receiver;->access$2800(Lcom/android/server/LocationManagerService$Receiver;Ljava/lang/String;Z)Z
+HSPLcom/android/server/LocationManagerService$Receiver;->access$2900(Lcom/android/server/LocationManagerService$Receiver;)I
 HPLcom/android/server/LocationManagerService$Receiver;->access$2900(Lcom/android/server/LocationManagerService$Receiver;)V
-PLcom/android/server/LocationManagerService$Receiver;->access$2900(Lcom/android/server/LocationManagerService$Receiver;Ljava/lang/String;Z)Z
+HSPLcom/android/server/LocationManagerService$Receiver;->access$2900(Lcom/android/server/LocationManagerService$Receiver;Ljava/lang/String;Z)Z
 HSPLcom/android/server/LocationManagerService$Receiver;->access$3000(Lcom/android/server/LocationManagerService$Receiver;)I
 PLcom/android/server/LocationManagerService$Receiver;->access$3000(Lcom/android/server/LocationManagerService$Receiver;Ljava/lang/String;Z)Z
 HSPLcom/android/server/LocationManagerService$Receiver;->access$3100(Lcom/android/server/LocationManagerService$Receiver;)I
 PLcom/android/server/LocationManagerService$Receiver;->access$3200(Lcom/android/server/LocationManagerService$Receiver;Ljava/lang/String;Z)Z
 HSPLcom/android/server/LocationManagerService$Receiver;->access$3300(Lcom/android/server/LocationManagerService$Receiver;)I
+PLcom/android/server/LocationManagerService$Receiver;->access$3800(Lcom/android/server/LocationManagerService$Receiver;)Ljava/lang/Object;
 PLcom/android/server/LocationManagerService$Receiver;->access$3900(Lcom/android/server/LocationManagerService$Receiver;)Ljava/lang/Object;
 PLcom/android/server/LocationManagerService$Receiver;->access$4000(Lcom/android/server/LocationManagerService$Receiver;)Ljava/lang/Object;
 PLcom/android/server/LocationManagerService$Receiver;->binderDied()V
 HPLcom/android/server/LocationManagerService$Receiver;->callLocationChangedLocked(Landroid/location/Location;)Z
-HPLcom/android/server/LocationManagerService$Receiver;->callProviderEnabledLocked(Ljava/lang/String;Z)Z
+HSPLcom/android/server/LocationManagerService$Receiver;->callProviderEnabledLocked(Ljava/lang/String;Z)Z
 PLcom/android/server/LocationManagerService$Receiver;->callRemovedLocked()V
 HPLcom/android/server/LocationManagerService$Receiver;->clearPendingBroadcastsLocked()V
-HPLcom/android/server/LocationManagerService$Receiver;->decrementPendingBroadcastsLocked()V
+HSPLcom/android/server/LocationManagerService$Receiver;->decrementPendingBroadcastsLocked()V
 PLcom/android/server/LocationManagerService$Receiver;->equals(Ljava/lang/Object;)Z
 HSPLcom/android/server/LocationManagerService$Receiver;->getListener()Landroid/location/ILocationListener;
-HPLcom/android/server/LocationManagerService$Receiver;->incrementPendingBroadcastsLocked()V
+HSPLcom/android/server/LocationManagerService$Receiver;->incrementPendingBroadcastsLocked()V
 PLcom/android/server/LocationManagerService$Receiver;->isListener()Z
 PLcom/android/server/LocationManagerService$Receiver;->isPendingIntent()Z
 HPLcom/android/server/LocationManagerService$Receiver;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
@@ -2709,15 +2838,23 @@
 HSPLcom/android/server/LocationManagerService$UpdateRecord;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;Landroid/location/LocationRequest;Lcom/android/server/LocationManagerService$Receiver;Lcom/android/server/LocationManagerService$1;)V
 HSPLcom/android/server/LocationManagerService$UpdateRecord;->access$1000(Lcom/android/server/LocationManagerService$UpdateRecord;)Lcom/android/server/LocationManagerService$Receiver;
 HSPLcom/android/server/LocationManagerService$UpdateRecord;->access$1000(Lcom/android/server/LocationManagerService$UpdateRecord;)Z
+HPLcom/android/server/LocationManagerService$UpdateRecord;->access$1100(Lcom/android/server/LocationManagerService$UpdateRecord;)Lcom/android/server/LocationManagerService$Receiver;
 HSPLcom/android/server/LocationManagerService$UpdateRecord;->access$1100(Lcom/android/server/LocationManagerService$UpdateRecord;)Z
 PLcom/android/server/LocationManagerService$UpdateRecord;->access$1100(Lcom/android/server/LocationManagerService$UpdateRecord;Z)V
+PLcom/android/server/LocationManagerService$UpdateRecord;->access$1200(Lcom/android/server/LocationManagerService$UpdateRecord;)Z
 PLcom/android/server/LocationManagerService$UpdateRecord;->access$1200(Lcom/android/server/LocationManagerService$UpdateRecord;Z)V
+PLcom/android/server/LocationManagerService$UpdateRecord;->access$1300(Lcom/android/server/LocationManagerService$UpdateRecord;Z)V
+HSPLcom/android/server/LocationManagerService$UpdateRecord;->access$3000(Lcom/android/server/LocationManagerService$UpdateRecord;)Landroid/location/LocationRequest;
 HSPLcom/android/server/LocationManagerService$UpdateRecord;->access$3100(Lcom/android/server/LocationManagerService$UpdateRecord;)Landroid/location/LocationRequest;
 HSPLcom/android/server/LocationManagerService$UpdateRecord;->access$3200(Lcom/android/server/LocationManagerService$UpdateRecord;)Landroid/location/LocationRequest;
 HSPLcom/android/server/LocationManagerService$UpdateRecord;->access$3400(Lcom/android/server/LocationManagerService$UpdateRecord;)Landroid/location/LocationRequest;
+PLcom/android/server/LocationManagerService$UpdateRecord;->access$3700(Lcom/android/server/LocationManagerService$UpdateRecord;Z)V
 PLcom/android/server/LocationManagerService$UpdateRecord;->access$3800(Lcom/android/server/LocationManagerService$UpdateRecord;Z)V
+PLcom/android/server/LocationManagerService$UpdateRecord;->access$3900(Lcom/android/server/LocationManagerService$UpdateRecord;)J
 PLcom/android/server/LocationManagerService$UpdateRecord;->access$3900(Lcom/android/server/LocationManagerService$UpdateRecord;Z)V
 HPLcom/android/server/LocationManagerService$UpdateRecord;->access$4000(Lcom/android/server/LocationManagerService$UpdateRecord;)J
+PLcom/android/server/LocationManagerService$UpdateRecord;->access$4000(Lcom/android/server/LocationManagerService$UpdateRecord;)Landroid/location/Location;
+PLcom/android/server/LocationManagerService$UpdateRecord;->access$4002(Lcom/android/server/LocationManagerService$UpdateRecord;Landroid/location/Location;)Landroid/location/Location;
 HPLcom/android/server/LocationManagerService$UpdateRecord;->access$4100(Lcom/android/server/LocationManagerService$UpdateRecord;)J
 HPLcom/android/server/LocationManagerService$UpdateRecord;->access$4100(Lcom/android/server/LocationManagerService$UpdateRecord;)Landroid/location/Location;
 PLcom/android/server/LocationManagerService$UpdateRecord;->access$4100(Lcom/android/server/LocationManagerService$UpdateRecord;Z)V
@@ -2729,18 +2866,21 @@
 PLcom/android/server/LocationManagerService$UpdateRecord;->access$4402(Lcom/android/server/LocationManagerService$UpdateRecord;Landroid/location/Location;)Landroid/location/Location;
 HSPLcom/android/server/LocationManagerService$UpdateRecord;->access$900(Lcom/android/server/LocationManagerService$UpdateRecord;)Lcom/android/server/LocationManagerService$Receiver;
 HPLcom/android/server/LocationManagerService$UpdateRecord;->disposeLocked(Z)V
-PLcom/android/server/LocationManagerService$UpdateRecord;->lambda$new$0(Ljava/lang/String;)Ljava/util/ArrayList;
+HSPLcom/android/server/LocationManagerService$UpdateRecord;->lambda$new$0(Ljava/lang/String;)Ljava/util/ArrayList;
 HPLcom/android/server/LocationManagerService$UpdateRecord;->toString()Ljava/lang/String;
 PLcom/android/server/LocationManagerService$UpdateRecord;->updateForeground(Z)V
 HSPLcom/android/server/LocationManagerService;-><clinit>()V
 HSPLcom/android/server/LocationManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/LocationManagerService;-><init>(Landroid/content/Context;Lcom/android/server/LocationManagerService$1;)V
+PLcom/android/server/LocationManagerService;->access$100(Lcom/android/server/LocationManagerService;)Landroid/content/Context;
 HSPLcom/android/server/LocationManagerService;->access$100(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/LocationManagerService;->access$1300(Lcom/android/server/LocationManagerService;)Landroid/content/Context;
 HSPLcom/android/server/LocationManagerService;->access$1400(Lcom/android/server/LocationManagerService;)Landroid/content/Context;
 PLcom/android/server/LocationManagerService;->access$1400(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationFudger;
+HSPLcom/android/server/LocationManagerService;->access$1400(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/SettingsHelper;
 HPLcom/android/server/LocationManagerService;->access$1400(Lcom/android/server/LocationManagerService;Landroid/location/Location;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
 HSPLcom/android/server/LocationManagerService;->access$1500(Lcom/android/server/LocationManagerService;)I
+PLcom/android/server/LocationManagerService;->access$1500(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/SettingsHelper;
 HSPLcom/android/server/LocationManagerService;->access$1500(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/UserInfoHelper;
 HPLcom/android/server/LocationManagerService;->access$1500(Lcom/android/server/LocationManagerService;Landroid/location/Location;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
 PLcom/android/server/LocationManagerService;->access$1600(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/PassiveProvider;
@@ -2751,27 +2891,34 @@
 HSPLcom/android/server/LocationManagerService;->access$1700(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/SettingsHelper;
 HSPLcom/android/server/LocationManagerService;->access$1700(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/UserInfoStore;
 HPLcom/android/server/LocationManagerService;->access$1700(Lcom/android/server/LocationManagerService;Landroid/location/Location;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
+PLcom/android/server/LocationManagerService;->access$1700(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$LocationProviderManager;Landroid/location/Location;Landroid/location/Location;)V
 HSPLcom/android/server/LocationManagerService;->access$1800(Lcom/android/server/LocationManagerService;)Landroid/content/Context;
 HSPLcom/android/server/LocationManagerService;->access$1800(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationSettingsStore;
 HSPLcom/android/server/LocationManagerService;->access$1800(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/SettingsHelper;
 PLcom/android/server/LocationManagerService;->access$1800(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
 PLcom/android/server/LocationManagerService;->access$1900(Lcom/android/server/LocationManagerService;)Landroid/content/Context;
 PLcom/android/server/LocationManagerService;->access$1900(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
+HSPLcom/android/server/LocationManagerService;->access$1900(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$LocationProviderManager;Z)V
 PLcom/android/server/LocationManagerService;->access$1900(Lcom/android/server/LocationManagerService;Ljava/lang/String;)Lcom/android/server/LocationManagerService$LocationProviderManager;
 HSPLcom/android/server/LocationManagerService;->access$200(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/LocationManagerService;->access$2000(Lcom/android/server/LocationManagerService;)Ljava/util/ArrayList;
 PLcom/android/server/LocationManagerService;->access$2000(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
+HSPLcom/android/server/LocationManagerService;->access$2000(Lcom/android/server/LocationManagerService;II)I
 HSPLcom/android/server/LocationManagerService;->access$2000(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
 HSPLcom/android/server/LocationManagerService;->access$2000(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$LocationProviderManager;Z)V
+HSPLcom/android/server/LocationManagerService;->access$2100(Lcom/android/server/LocationManagerService;)Landroid/os/PowerManager;
 HSPLcom/android/server/LocationManagerService;->access$2100(Lcom/android/server/LocationManagerService;I)Z
 HSPLcom/android/server/LocationManagerService;->access$2100(Lcom/android/server/LocationManagerService;II)I
 HSPLcom/android/server/LocationManagerService;->access$2100(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
 HSPLcom/android/server/LocationManagerService;->access$2200(Lcom/android/server/LocationManagerService;)Landroid/os/PowerManager;
 PLcom/android/server/LocationManagerService;->access$2200(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
 HSPLcom/android/server/LocationManagerService;->access$2200(Lcom/android/server/LocationManagerService;II)I
+HSPLcom/android/server/LocationManagerService;->access$2200(Lcom/android/server/LocationManagerService;Ljava/lang/String;)Lcom/android/server/LocationManagerService$LocationProviderManager;
 HSPLcom/android/server/LocationManagerService;->access$2300(Lcom/android/server/LocationManagerService;)Landroid/os/PowerManager;
 PLcom/android/server/LocationManagerService;->access$2300(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
-HPLcom/android/server/LocationManagerService;->access$2300(Lcom/android/server/LocationManagerService;Ljava/lang/String;)Lcom/android/server/LocationManagerService$LocationProviderManager;
+PLcom/android/server/LocationManagerService;->access$2300(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$UpdateRecord;)Z
+HSPLcom/android/server/LocationManagerService;->access$2300(Lcom/android/server/LocationManagerService;Ljava/lang/String;)Lcom/android/server/LocationManagerService$LocationProviderManager;
+PLcom/android/server/LocationManagerService;->access$2400(Lcom/android/server/LocationManagerService;)Landroid/app/AppOpsManager;
 HSPLcom/android/server/LocationManagerService;->access$2400(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
 HPLcom/android/server/LocationManagerService;->access$2400(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$UpdateRecord;)Z
 HPLcom/android/server/LocationManagerService;->access$2400(Lcom/android/server/LocationManagerService;Ljava/lang/String;)Lcom/android/server/LocationManagerService$LocationProviderManager;
@@ -2781,18 +2928,23 @@
 PLcom/android/server/LocationManagerService;->access$2600(Lcom/android/server/LocationManagerService;)Landroid/app/AppOpsManager;
 HSPLcom/android/server/LocationManagerService;->access$2600(Lcom/android/server/LocationManagerService;)Landroid/os/PowerManager;
 PLcom/android/server/LocationManagerService;->access$2600(Lcom/android/server/LocationManagerService;I)Ljava/lang/String;
+PLcom/android/server/LocationManagerService;->access$2600(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$Receiver;)V
 PLcom/android/server/LocationManagerService;->access$2700(Lcom/android/server/LocationManagerService;I)Ljava/lang/String;
 PLcom/android/server/LocationManagerService;->access$2700(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$Receiver;)V
 PLcom/android/server/LocationManagerService;->access$2800(Lcom/android/server/LocationManagerService;)Landroid/app/AppOpsManager;
 PLcom/android/server/LocationManagerService;->access$2800(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$Receiver;)V
 HSPLcom/android/server/LocationManagerService;->access$300(Lcom/android/server/LocationManagerService;)Landroid/os/Handler;
 HSPLcom/android/server/LocationManagerService;->access$300(Lcom/android/server/LocationManagerService;)V
+HSPLcom/android/server/LocationManagerService;->access$3100(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/AppForegroundHelper;
 HSPLcom/android/server/LocationManagerService;->access$3200(Lcom/android/server/LocationManagerService;)Landroid/app/ActivityManager;
-PLcom/android/server/LocationManagerService;->access$3200(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/AppForegroundHelper;
+HSPLcom/android/server/LocationManagerService;->access$3200(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/AppForegroundHelper;
+HSPLcom/android/server/LocationManagerService;->access$3200(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
 HSPLcom/android/server/LocationManagerService;->access$3300(Lcom/android/server/LocationManagerService;)Landroid/app/ActivityManager;
 HSPLcom/android/server/LocationManagerService;->access$3300(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/AppForegroundHelper;
+HSPLcom/android/server/LocationManagerService;->access$3300(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationRequestStatistics;
 HSPLcom/android/server/LocationManagerService;->access$3300(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
 HSPLcom/android/server/LocationManagerService;->access$3400(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationRequestStatistics;
+PLcom/android/server/LocationManagerService;->access$3400(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationUsageLogger;
 HSPLcom/android/server/LocationManagerService;->access$3400(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
 HSPLcom/android/server/LocationManagerService;->access$3500(Lcom/android/server/LocationManagerService;)Landroid/app/ActivityManager;
 HSPLcom/android/server/LocationManagerService;->access$3500(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationRequestStatistics;
@@ -2807,16 +2959,19 @@
 HSPLcom/android/server/LocationManagerService;->access$500(Lcom/android/server/LocationManagerService;)Landroid/os/Handler;
 HSPLcom/android/server/LocationManagerService;->access$500(Lcom/android/server/LocationManagerService;)Ljava/lang/Object;
 PLcom/android/server/LocationManagerService;->access$500(Lcom/android/server/LocationManagerService;)V
+PLcom/android/server/LocationManagerService;->access$600(Lcom/android/server/LocationManagerService;)Landroid/os/Handler;
 HSPLcom/android/server/LocationManagerService;->access$600(Lcom/android/server/LocationManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/LocationManagerService;->access$600(Lcom/android/server/LocationManagerService;)V
-HPLcom/android/server/LocationManagerService;->access$600(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerService;->access$600(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService;->access$700(Lcom/android/server/LocationManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/LocationManagerService;->access$700(Lcom/android/server/LocationManagerService;)V
 PLcom/android/server/LocationManagerService;->access$700(Lcom/android/server/LocationManagerService;I)V
 PLcom/android/server/LocationManagerService;->access$700(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
+PLcom/android/server/LocationManagerService;->access$800(Lcom/android/server/LocationManagerService;)Ljava/lang/Object;
 HPLcom/android/server/LocationManagerService;->access$800(Lcom/android/server/LocationManagerService;)V
 HSPLcom/android/server/LocationManagerService;->access$800(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
 PLcom/android/server/LocationManagerService;->access$900(Lcom/android/server/LocationManagerService;)V
+PLcom/android/server/LocationManagerService;->access$900(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
 PLcom/android/server/LocationManagerService;->addGnssMeasurementsListener(Landroid/location/GnssRequest;Landroid/location/IGnssMeasurementsListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/LocationManagerService;->addGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/server/LocationManagerService;->addProviderLocked(Lcom/android/server/LocationManagerService$LocationProviderManager;)V
@@ -2841,7 +2996,7 @@
 HPLcom/android/server/LocationManagerService;->getExtraLocationControllerPackage()Ljava/lang/String;
 HPLcom/android/server/LocationManagerService;->getFromLocation(DDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
 PLcom/android/server/LocationManagerService;->getFromLocationName(Ljava/lang/String;DDDDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
-PLcom/android/server/LocationManagerService;->getGnssCapabilities(Ljava/lang/String;)J
+HPLcom/android/server/LocationManagerService;->getGnssCapabilities(Ljava/lang/String;)J
 HPLcom/android/server/LocationManagerService;->getLastLocation(Landroid/location/LocationRequest;Ljava/lang/String;Ljava/lang/String;)Landroid/location/Location;
 HSPLcom/android/server/LocationManagerService;->getLocationProviderLocked(Ljava/lang/String;)Lcom/android/server/LocationManagerService$LocationProviderManager;
 HSPLcom/android/server/LocationManagerService;->getLocationProviderManager(Ljava/lang/String;)Lcom/android/server/LocationManagerService$LocationProviderManager;
@@ -2860,21 +3015,22 @@
 HSPLcom/android/server/LocationManagerService;->isLocationEnabledForUser(I)Z
 HSPLcom/android/server/LocationManagerService;->isProviderEnabledForUser(Ljava/lang/String;I)Z
 HPLcom/android/server/LocationManagerService;->isProviderPackage(Ljava/lang/String;)Z
-HPLcom/android/server/LocationManagerService;->isSettingsExempt(Lcom/android/server/LocationManagerService$UpdateRecord;)Z
+HSPLcom/android/server/LocationManagerService;->isSettingsExempt(Lcom/android/server/LocationManagerService$UpdateRecord;)Z
 HPLcom/android/server/LocationManagerService;->isSettingsExemptLocked(Lcom/android/server/LocationManagerService$UpdateRecord;)Z
 HSPLcom/android/server/LocationManagerService;->isThrottlingExempt(Lcom/android/server/location/CallerIdentity;)Z
 HSPLcom/android/server/LocationManagerService;->isThrottlingExemptLocked(Lcom/android/server/location/CallerIdentity;)Z
 HPLcom/android/server/LocationManagerService;->isValidWorkSource(Landroid/os/WorkSource;)Z
 HSPLcom/android/server/LocationManagerService;->lambda$AgevX9G4cx2TbNzr7MYT3YPtASs(Lcom/android/server/LocationManagerService;IZ)V
-PLcom/android/server/LocationManagerService;->lambda$DgmGqZVwms-Y6rAmZybXkZVgJ-Q(Lcom/android/server/LocationManagerService;II)V
+HSPLcom/android/server/LocationManagerService;->lambda$DgmGqZVwms-Y6rAmZybXkZVgJ-Q(Lcom/android/server/LocationManagerService;II)V
 PLcom/android/server/LocationManagerService;->lambda$KXKNxpIZDrysWhFilQxLdYekB3M(Lcom/android/server/LocationManagerService;)V
 PLcom/android/server/LocationManagerService;->lambda$getCurrentLocation$13$LocationManagerService(Landroid/location/ILocationListener;Ljava/lang/String;)V
 PLcom/android/server/LocationManagerService;->lambda$getCurrentLocation$6$LocationManagerService(Landroid/location/ILocationListener;Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService;->lambda$new$0$LocationManagerService(I)[Ljava/lang/String;
 HSPLcom/android/server/LocationManagerService;->lambda$new$1$LocationManagerService(I)[Ljava/lang/String;
 PLcom/android/server/LocationManagerService;->lambda$nxs_FejUjcjw2UUIeDY3TYTRJs4(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/LocationManagerService;->lambda$oIimlThgbbmKRAN80H4tpnruGtk(Lcom/android/server/LocationManagerService;I)V
+HSPLcom/android/server/LocationManagerService;->lambda$oIimlThgbbmKRAN80H4tpnruGtk(Lcom/android/server/LocationManagerService;I)V
 PLcom/android/server/LocationManagerService;->lambda$onSystemReady$11$LocationManagerService()V
+PLcom/android/server/LocationManagerService;->lambda$onSystemReady$12$LocationManagerService(II)V
 HPLcom/android/server/LocationManagerService;->lambda$onSystemReady$2$LocationManagerService()V
 HPLcom/android/server/LocationManagerService;->lambda$onSystemReady$3$LocationManagerService(I)V
 HSPLcom/android/server/LocationManagerService;->lambda$onSystemReady$4$LocationManagerService(II)V
@@ -2885,16 +3041,16 @@
 PLcom/android/server/LocationManagerService;->lambda$onSystemReady$7$LocationManagerService(Landroid/os/PowerSaveState;)V
 HSPLcom/android/server/LocationManagerService;->lambda$onSystemReady$8$LocationManagerService(I)V
 PLcom/android/server/LocationManagerService;->lambda$onSystemReady$9$LocationManagerService()V
-HPLcom/android/server/LocationManagerService;->locationCallbackFinished(Landroid/location/ILocationListener;)V
+HSPLcom/android/server/LocationManagerService;->locationCallbackFinished(Landroid/location/ILocationListener;)V
 HSPLcom/android/server/LocationManagerService;->onAppForegroundChanged(IZ)V
-HPLcom/android/server/LocationManagerService;->onAppOpChanged(Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerService;->onAppOpChanged(Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService;->onAppOpChangedLocked()V
 PLcom/android/server/LocationManagerService;->onBackgroundThrottleIntervalChanged()V
 PLcom/android/server/LocationManagerService;->onBackgroundThrottleIntervalChangedLocked()V
-PLcom/android/server/LocationManagerService;->onBatterySaverModeChangedLocked(I)V
+HPLcom/android/server/LocationManagerService;->onBatterySaverModeChangedLocked(I)V
 PLcom/android/server/LocationManagerService;->onIgnoreSettingsWhitelistChanged()V
 PLcom/android/server/LocationManagerService;->onIgnoreSettingsWhitelistChangedLocked()V
-HPLcom/android/server/LocationManagerService;->onLocationModeChanged(I)V
+HSPLcom/android/server/LocationManagerService;->onLocationModeChanged(I)V
 HSPLcom/android/server/LocationManagerService;->onLocationModeChangedLocked(I)V
 HSPLcom/android/server/LocationManagerService;->onPackageDisappearedLocked(Ljava/lang/String;)V
 HPLcom/android/server/LocationManagerService;->onPermissionsChangedLocked()V
@@ -2906,14 +3062,15 @@
 HSPLcom/android/server/LocationManagerService;->onUserChangedLocked(I)V
 HSPLcom/android/server/LocationManagerService;->onUserChangedLocked(II)V
 HSPLcom/android/server/LocationManagerService;->onUserProfilesChangedLocked()V
-PLcom/android/server/LocationManagerService;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;Ljava/lang/String;)Z
+HPLcom/android/server/LocationManagerService;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/LocationManagerService;->removeGeofence(Landroid/location/Geofence;Landroid/app/PendingIntent;Ljava/lang/String;)V
 PLcom/android/server/LocationManagerService;->removeGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;)V
 HPLcom/android/server/LocationManagerService;->removeUpdates(Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;)V
 HPLcom/android/server/LocationManagerService;->removeUpdatesLocked(Lcom/android/server/LocationManagerService$Receiver;)V
 HPLcom/android/server/LocationManagerService;->reportLocationAccessNoThrow(IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;)Z
 PLcom/android/server/LocationManagerService;->requestGeofence(Landroid/location/LocationRequest;Landroid/location/Geofence;Landroid/app/PendingIntent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/LocationManagerService;->requestLocationUpdatesLocked(Landroid/location/LocationRequest;Lcom/android/server/LocationManagerService$Receiver;)V
+HSPLcom/android/server/LocationManagerService;->requestLocationUpdatesLocked(Landroid/location/LocationRequest;Lcom/android/server/LocationManagerService$Receiver;)V
 HSPLcom/android/server/LocationManagerService;->requestLocationUpdatesLocked(Landroid/location/LocationRequest;Lcom/android/server/LocationManagerService$Receiver;ILjava/lang/String;)V
 HSPLcom/android/server/LocationManagerService;->resolutionLevelToOp(I)I
 PLcom/android/server/LocationManagerService;->resolutionLevelToOpStr(I)Ljava/lang/String;
@@ -2922,7 +3079,7 @@
 HPLcom/android/server/LocationManagerService;->setExtraLocationControllerPackageEnabled(Z)V
 PLcom/android/server/LocationManagerService;->setLocationEnabledForUser(ZI)V
 HPLcom/android/server/LocationManagerService;->shouldBroadcastSafeLocked(Landroid/location/Location;Landroid/location/Location;Lcom/android/server/LocationManagerService$UpdateRecord;J)Z
-PLcom/android/server/LocationManagerService;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
+HPLcom/android/server/LocationManagerService;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
 HPLcom/android/server/LocationManagerService;->updateLastLocationLocked(Landroid/location/Location;Ljava/lang/String;)V
 HSPLcom/android/server/LocationManagerService;->updateProviderEnabledLocked(Lcom/android/server/LocationManagerService$LocationProviderManager;)V
 HSPLcom/android/server/LocationManagerService;->updateProviderEnabledLocked(Lcom/android/server/LocationManagerService$LocationProviderManager;Z)V
@@ -2968,6 +3125,7 @@
 HSPLcom/android/server/LooperStatsService;->setEnabled(Z)V
 HSPLcom/android/server/LooperStatsService;->setSamplingInterval(I)V
 HSPLcom/android/server/LooperStatsService;->setTrackScreenInteractive(Z)V
+PLcom/android/server/MemoryPressureUtil;->currentPsiState()Ljava/lang/String;
 HSPLcom/android/server/MmsServiceBroker$1;-><init>(Lcom/android/server/MmsServiceBroker;)V
 PLcom/android/server/MmsServiceBroker$1;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/MmsServiceBroker$2;-><init>(Lcom/android/server/MmsServiceBroker;)V
@@ -2997,7 +3155,7 @@
 HSPLcom/android/server/MmsServiceBroker;->onStart()V
 HSPLcom/android/server/MmsServiceBroker;->systemRunning()V
 PLcom/android/server/MmsServiceBroker;->tryConnecting()V
-PLcom/android/server/MountServiceIdler$1;-><init>(Lcom/android/server/MountServiceIdler;)V
+HPLcom/android/server/MountServiceIdler$1;-><init>(Lcom/android/server/MountServiceIdler;)V
 HPLcom/android/server/MountServiceIdler$1;->run()V
 HSPLcom/android/server/MountServiceIdler;-><clinit>()V
 HPLcom/android/server/MountServiceIdler;-><init>()V
@@ -3040,7 +3198,7 @@
 PLcom/android/server/NativeDaemonEvent;->isClassServerError()Z
 PLcom/android/server/NativeDaemonEvent;->isClassUnsolicited()Z
 PLcom/android/server/NativeDaemonEvent;->isClassUnsolicited(I)Z
-PLcom/android/server/NativeDaemonEvent;->parseRawEvent(Ljava/lang/String;[Ljava/io/FileDescriptor;)Lcom/android/server/NativeDaemonEvent;
+HPLcom/android/server/NativeDaemonEvent;->parseRawEvent(Ljava/lang/String;[Ljava/io/FileDescriptor;)Lcom/android/server/NativeDaemonEvent;
 PLcom/android/server/NativeDaemonEvent;->toString()Ljava/lang/String;
 HPLcom/android/server/NativeDaemonEvent;->unescapeArgs(Ljava/lang/String;)[Ljava/lang/String;
 HSPLcom/android/server/NetIdManager;-><init>()V
@@ -3160,8 +3318,9 @@
 HPLcom/android/server/NetworkManagementService;->removeRoute(ILandroid/net/RouteInfo;)V
 PLcom/android/server/NetworkManagementService;->removeVpnUidRanges(I[Landroid/net/UidRange;)V
 HPLcom/android/server/NetworkManagementService;->reportNetworkActive()V
+PLcom/android/server/NetworkManagementService;->setAllowOnlyVpnForUids(Z[Landroid/net/UidRange;)V
 HSPLcom/android/server/NetworkManagementService;->setDataSaverModeEnabled(Z)Z
-PLcom/android/server/NetworkManagementService;->setDefaultNetId(I)V
+HPLcom/android/server/NetworkManagementService;->setDefaultNetId(I)V
 HSPLcom/android/server/NetworkManagementService;->setFirewallChainEnabled(IZ)V
 HSPLcom/android/server/NetworkManagementService;->setFirewallChainState(IZ)V
 HSPLcom/android/server/NetworkManagementService;->setFirewallEnabled(Z)V
@@ -3332,7 +3491,7 @@
 HSPLcom/android/server/NetworkTimeUpdateServiceImpl$NetworkTimeUpdateCallback;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;)V
 HSPLcom/android/server/NetworkTimeUpdateServiceImpl$NetworkTimeUpdateCallback;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;Lcom/android/server/NetworkTimeUpdateServiceImpl$1;)V
 HPLcom/android/server/NetworkTimeUpdateServiceImpl$NetworkTimeUpdateCallback;->onAvailable(Landroid/net/Network;)V
-PLcom/android/server/NetworkTimeUpdateServiceImpl$NetworkTimeUpdateCallback;->onLost(Landroid/net/Network;)V
+HPLcom/android/server/NetworkTimeUpdateServiceImpl$NetworkTimeUpdateCallback;->onLost(Landroid/net/Network;)V
 HSPLcom/android/server/NetworkTimeUpdateServiceImpl$SettingsObserver;-><init>(Landroid/os/Handler;I)V
 HSPLcom/android/server/NetworkTimeUpdateServiceImpl$SettingsObserver;->observe(Landroid/content/Context;)V
 HSPLcom/android/server/NetworkTimeUpdateServiceImpl;-><init>(Landroid/content/Context;)V
@@ -3415,6 +3574,7 @@
 HSPLcom/android/server/NsdService;->access$400(Lcom/android/server/NsdService;)Ljava/util/HashMap;
 PLcom/android/server/NsdService;->access$600(Lcom/android/server/NsdService;)Lcom/android/server/NsdService$DaemonConnection;
 PLcom/android/server/NsdService;->access$700(Lcom/android/server/NsdService;)Landroid/content/Context;
+PLcom/android/server/NsdService;->access$800(Lcom/android/server/NsdService;Landroid/os/Message;II)V
 HSPLcom/android/server/NsdService;->access$900(Lcom/android/server/NsdService;Z)V
 HSPLcom/android/server/NsdService;->create(Landroid/content/Context;)Lcom/android/server/NsdService;
 PLcom/android/server/NsdService;->discoverServices(ILjava/lang/String;)Z
@@ -3426,6 +3586,7 @@
 PLcom/android/server/NsdService;->obtainMessage(Landroid/os/Message;)Landroid/os/Message;
 PLcom/android/server/NsdService;->registerService(ILandroid/net/nsd/NsdServiceInfo;)Z
 PLcom/android/server/NsdService;->replyToMessage(Landroid/os/Message;I)V
+PLcom/android/server/NsdService;->replyToMessage(Landroid/os/Message;II)V
 PLcom/android/server/NsdService;->replyToMessage(Landroid/os/Message;ILjava/lang/Object;)V
 PLcom/android/server/NsdService;->resolveService(ILandroid/net/nsd/NsdServiceInfo;)Z
 HSPLcom/android/server/NsdService;->sendNsdStateChangeBroadcast(Z)V
@@ -3620,6 +3781,7 @@
 HSPLcom/android/server/PinnerService;->maybeOpenZip(Ljava/lang/String;)Ljava/util/zip/ZipFile;
 HSPLcom/android/server/PinnerService;->onBootPhase(I)V
 HSPLcom/android/server/PinnerService;->onStart()V
+PLcom/android/server/PinnerService;->onSwitchUser(I)V
 PLcom/android/server/PinnerService;->onUnlockUser(I)V
 HSPLcom/android/server/PinnerService;->pinApp(IIZ)V
 HSPLcom/android/server/PinnerService;->pinApp(ILandroid/content/pm/ApplicationInfo;)V
@@ -3694,8 +3856,8 @@
 HSPLcom/android/server/SensorNotificationService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/SensorNotificationService;->onBootPhase(I)V
 PLcom/android/server/SensorNotificationService;->onLocationChanged(Landroid/location/Location;)V
-PLcom/android/server/SensorNotificationService;->onProviderDisabled(Ljava/lang/String;)V
-PLcom/android/server/SensorNotificationService;->onProviderEnabled(Ljava/lang/String;)V
+HPLcom/android/server/SensorNotificationService;->onProviderDisabled(Ljava/lang/String;)V
+HPLcom/android/server/SensorNotificationService;->onProviderEnabled(Ljava/lang/String;)V
 HSPLcom/android/server/SensorNotificationService;->onStart()V
 PLcom/android/server/SensorNotificationService;->useMockedLocation()Z
 HSPLcom/android/server/SensorPrivacyService$DeathRecipient;-><init>(Lcom/android/server/SensorPrivacyService;Landroid/hardware/ISensorPrivacyListener;)V
@@ -3752,7 +3914,7 @@
 PLcom/android/server/ServiceWatcher;->lambda$onServiceDisconnected$4$ServiceWatcher(Landroid/content/ComponentName;)V
 HSPLcom/android/server/ServiceWatcher;->lambda$register$0$ServiceWatcher()V
 HSPLcom/android/server/ServiceWatcher;->lambda$runOnBinder$1$ServiceWatcher(Lcom/android/server/ServiceWatcher$BinderRunner;)V
-HPLcom/android/server/ServiceWatcher;->lambda$runOnBinder$2$ServiceWatcher(Lcom/android/server/ServiceWatcher$BinderRunner;)V
+HSPLcom/android/server/ServiceWatcher;->lambda$runOnBinder$2$ServiceWatcher(Lcom/android/server/ServiceWatcher$BinderRunner;)V
 PLcom/android/server/ServiceWatcher;->lambda$runOnBinderBlocking$2$ServiceWatcher(Ljava/lang/Object;Lcom/android/server/ServiceWatcher$BlockingBinderRunner;)Ljava/lang/Object;
 HPLcom/android/server/ServiceWatcher;->lambda$runOnBinderBlocking$3$ServiceWatcher(Ljava/lang/Object;Lcom/android/server/ServiceWatcher$BlockingBinderRunner;)Ljava/lang/Object;
 HSPLcom/android/server/ServiceWatcher;->lambda$start$0$ServiceWatcher()V
@@ -3774,12 +3936,18 @@
 HSPLcom/android/server/ServiceWatcher;->start()Z
 PLcom/android/server/ServiceWatcher;->toString()Ljava/lang/String;
 HSPLcom/android/server/ServiceWatcher;->unbind()V
-PLcom/android/server/StorageManagerService$10;-><init>(Lcom/android/server/StorageManagerService;Ljava/lang/Runnable;)V
+HSPLcom/android/server/StorageManagerService$10;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;)V
+HPLcom/android/server/StorageManagerService$10;-><init>(Lcom/android/server/StorageManagerService;Ljava/lang/Runnable;)V
 HPLcom/android/server/StorageManagerService$10;->onFinished(ILandroid/os/PersistableBundle;)V
+HSPLcom/android/server/StorageManagerService$10;->onStatus(ILandroid/os/PersistableBundle;)V
 PLcom/android/server/StorageManagerService$11;-><init>(Lcom/android/server/StorageManagerService;Ljava/lang/Runnable;)V
 PLcom/android/server/StorageManagerService$11;->onFinished(ILandroid/os/PersistableBundle;)V
+PLcom/android/server/StorageManagerService$12;-><init>(Lcom/android/server/StorageManagerService;Ljava/lang/Runnable;)V
+PLcom/android/server/StorageManagerService$12;->onFinished(ILandroid/os/PersistableBundle;)V
 HSPLcom/android/server/StorageManagerService$13;-><init>(Lcom/android/server/StorageManagerService;)V
 PLcom/android/server/StorageManagerService$13;->opChanged(IILjava/lang/String;)V
+HSPLcom/android/server/StorageManagerService$14;-><init>(Lcom/android/server/StorageManagerService;)V
+PLcom/android/server/StorageManagerService$14;->opChanged(IILjava/lang/String;)V
 HSPLcom/android/server/StorageManagerService$1;-><init>(Lcom/android/server/StorageManagerService;)V
 PLcom/android/server/StorageManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/StorageManagerService$2;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Handler;)V
@@ -3795,8 +3963,12 @@
 HSPLcom/android/server/StorageManagerService$5;-><init>(Lcom/android/server/StorageManagerService;)V
 HSPLcom/android/server/StorageManagerService$6;-><init>(Lcom/android/server/StorageManagerService;)V
 PLcom/android/server/StorageManagerService$6;->binderDied()V
+HSPLcom/android/server/StorageManagerService$7;-><init>(Lcom/android/server/StorageManagerService;)V
 PLcom/android/server/StorageManagerService$7;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V
+PLcom/android/server/StorageManagerService$7;->onPackageRemoved(Ljava/lang/String;I)V
 PLcom/android/server/StorageManagerService$7;->onVolumeChecking(Ljava/io/FileDescriptor;Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/StorageManagerService$8;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V
+PLcom/android/server/StorageManagerService$8;->onVolumeChecking(Ljava/io/FileDescriptor;Ljava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/server/StorageManagerService$9;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;)V
 HSPLcom/android/server/StorageManagerService$9;->onFinished(ILandroid/os/PersistableBundle;)V
 HSPLcom/android/server/StorageManagerService$9;->onStatus(ILandroid/os/PersistableBundle;)V
@@ -3806,9 +3978,11 @@
 HPLcom/android/server/StorageManagerService$AppFuseMountScope;->openFile(III)Landroid/os/ParcelFileDescriptor;
 HSPLcom/android/server/StorageManagerService$Callbacks;-><init>(Landroid/os/Looper;)V
 PLcom/android/server/StorageManagerService$Callbacks;->access$2700(Lcom/android/server/StorageManagerService$Callbacks;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/StorageManagerService$Callbacks;->access$2800(Lcom/android/server/StorageManagerService$Callbacks;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/StorageManagerService$Callbacks;->access$3700(Lcom/android/server/StorageManagerService$Callbacks;Landroid/os/storage/VolumeInfo;II)V
 PLcom/android/server/StorageManagerService$Callbacks;->access$3800(Lcom/android/server/StorageManagerService$Callbacks;Landroid/os/storage/VolumeInfo;II)V
-PLcom/android/server/StorageManagerService$Callbacks;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/StorageManagerService$Callbacks;->access$3900(Lcom/android/server/StorageManagerService$Callbacks;Landroid/os/storage/VolumeInfo;II)V
+HPLcom/android/server/StorageManagerService$Callbacks;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/StorageManagerService$Callbacks;->invokeCallback(Landroid/os/storage/IStorageEventListener;ILcom/android/internal/os/SomeArgs;)V
 PLcom/android/server/StorageManagerService$Callbacks;->notifyStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/StorageManagerService$Callbacks;->notifyVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
@@ -3818,8 +3992,11 @@
 HSPLcom/android/server/StorageManagerService$Lifecycle;->onBootPhase(I)V
 PLcom/android/server/StorageManagerService$Lifecycle;->onCleanupUser(I)V
 HSPLcom/android/server/StorageManagerService$Lifecycle;->onStart()V
+HSPLcom/android/server/StorageManagerService$Lifecycle;->onStartUser(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/StorageManagerService$Lifecycle;->onStopUser(I)V
+PLcom/android/server/StorageManagerService$Lifecycle;->onSwitchUser(I)V
 PLcom/android/server/StorageManagerService$Lifecycle;->onUnlockUser(I)V
+PLcom/android/server/StorageManagerService$Lifecycle;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
 HSPLcom/android/server/StorageManagerService$ObbActionHandler;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Looper;)V
 HSPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;-><init>(Lcom/android/server/StorageManagerService;)V
 HSPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;-><init>(Lcom/android/server/StorageManagerService;Lcom/android/server/StorageManagerService$1;)V
@@ -3829,6 +4006,8 @@
 HSPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->onAppOpsChanged(IILjava/lang/String;I)V
 HSPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->onExternalStoragePolicyChanged(ILjava/lang/String;)V
 PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->onReset(Landroid/os/IVold;)V
+HPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->prepareAppDataAfterInstall(Ljava/lang/String;I)V
+PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->resetUser(I)V
 HSPLcom/android/server/StorageManagerService$StorageManagerServiceHandler;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Looper;)V
 HSPLcom/android/server/StorageManagerService$StorageManagerServiceHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/StorageManagerService$WatchedLockedUsers;-><init>(Lcom/android/server/StorageManagerService;)V
@@ -3843,47 +4022,73 @@
 HSPLcom/android/server/StorageManagerService;->access$000(Lcom/android/server/StorageManagerService;)V
 HSPLcom/android/server/StorageManagerService;->access$100(Lcom/android/server/StorageManagerService;)V
 HSPLcom/android/server/StorageManagerService;->access$1000(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->access$1100(Lcom/android/server/StorageManagerService;)V
+HSPLcom/android/server/StorageManagerService;->access$1100(Lcom/android/server/StorageManagerService;)V
 HSPLcom/android/server/StorageManagerService;->access$1200(Lcom/android/server/StorageManagerService;)V
 HSPLcom/android/server/StorageManagerService;->access$1300(Lcom/android/server/StorageManagerService;)J
+HSPLcom/android/server/StorageManagerService;->access$1300(Lcom/android/server/StorageManagerService;)V
 HSPLcom/android/server/StorageManagerService;->access$1302(Lcom/android/server/StorageManagerService;J)J
+HSPLcom/android/server/StorageManagerService;->access$1400(Lcom/android/server/StorageManagerService;)J
 HSPLcom/android/server/StorageManagerService;->access$1400(Lcom/android/server/StorageManagerService;)Ljava/io/File;
+HSPLcom/android/server/StorageManagerService;->access$1402(Lcom/android/server/StorageManagerService;J)J
 PLcom/android/server/StorageManagerService;->access$1500(Lcom/android/server/StorageManagerService;)Landroid/os/IVold;
+HSPLcom/android/server/StorageManagerService;->access$1500(Lcom/android/server/StorageManagerService;)Ljava/io/File;
 PLcom/android/server/StorageManagerService;->access$1502(Lcom/android/server/StorageManagerService;Landroid/os/IVold;)Landroid/os/IVold;
+PLcom/android/server/StorageManagerService;->access$1600(Lcom/android/server/StorageManagerService;)Landroid/os/IVold;
 PLcom/android/server/StorageManagerService;->access$1600(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)Z
 PLcom/android/server/StorageManagerService;->access$1700(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V
+PLcom/android/server/StorageManagerService;->access$1700(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)Z
+PLcom/android/server/StorageManagerService;->access$1800(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V
 HSPLcom/android/server/StorageManagerService;->access$1900(Lcom/android/server/StorageManagerService;)Landroid/content/Context;
 HSPLcom/android/server/StorageManagerService;->access$200(Lcom/android/server/StorageManagerService;)V
+HSPLcom/android/server/StorageManagerService;->access$2000(Lcom/android/server/StorageManagerService;)Landroid/content/Context;
 PLcom/android/server/StorageManagerService;->access$2100(Lcom/android/server/StorageManagerService;)V
 PLcom/android/server/StorageManagerService;->access$2200(Lcom/android/server/StorageManagerService;I)V
 PLcom/android/server/StorageManagerService;->access$2300(Lcom/android/server/StorageManagerService;)Landroid/util/ArrayMap;
+PLcom/android/server/StorageManagerService;->access$2300(Lcom/android/server/StorageManagerService;I)V
 PLcom/android/server/StorageManagerService;->access$2400(Lcom/android/server/StorageManagerService;)Landroid/os/Handler;
+PLcom/android/server/StorageManagerService;->access$2400(Lcom/android/server/StorageManagerService;)Landroid/util/ArrayMap;
+PLcom/android/server/StorageManagerService;->access$2500(Lcom/android/server/StorageManagerService;)Landroid/os/Handler;
 PLcom/android/server/StorageManagerService;->access$2500(Lcom/android/server/StorageManagerService;)V
 PLcom/android/server/StorageManagerService;->access$2600(Lcom/android/server/StorageManagerService;)V
 HSPLcom/android/server/StorageManagerService;->access$2800(Lcom/android/server/StorageManagerService;)Ljava/lang/Object;
 PLcom/android/server/StorageManagerService;->access$2900(Lcom/android/server/StorageManagerService;)Landroid/util/ArrayMap;
+HSPLcom/android/server/StorageManagerService;->access$2900(Lcom/android/server/StorageManagerService;)Ljava/lang/Object;
 PLcom/android/server/StorageManagerService;->access$300(Lcom/android/server/StorageManagerService;)V
+PLcom/android/server/StorageManagerService;->access$3000(Lcom/android/server/StorageManagerService;)Landroid/util/ArrayMap;
 PLcom/android/server/StorageManagerService;->access$3300(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V
+PLcom/android/server/StorageManagerService;->access$3400(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V
 PLcom/android/server/StorageManagerService;->access$3400(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;II)V
+PLcom/android/server/StorageManagerService;->access$3500(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;II)V
 PLcom/android/server/StorageManagerService;->access$3600(Lcom/android/server/StorageManagerService;)Lcom/android/server/storage/StorageSessionController;
+PLcom/android/server/StorageManagerService;->access$402(Lcom/android/server/StorageManagerService;I)I
 PLcom/android/server/StorageManagerService;->access$4100(Lcom/android/server/StorageManagerService;)V
 HSPLcom/android/server/StorageManagerService;->access$4100(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V
 HSPLcom/android/server/StorageManagerService;->access$4200(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V
 HSPLcom/android/server/StorageManagerService;->access$4300(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V
 HSPLcom/android/server/StorageManagerService;->access$4300(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/StorageManagerService;->access$4300(Lcom/android/server/StorageManagerService;Ljava/lang/String;IZ)V
+HSPLcom/android/server/StorageManagerService;->access$4400(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V
 HSPLcom/android/server/StorageManagerService;->access$4400(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Landroid/os/storage/VolumeRecord;
 HSPLcom/android/server/StorageManagerService;->access$4400(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/StorageManagerService;->access$4500(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V
 HSPLcom/android/server/StorageManagerService;->access$4500(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Landroid/os/storage/VolumeRecord;
+HSPLcom/android/server/StorageManagerService;->access$4600(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/StorageManagerService;->access$4700(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Landroid/os/storage/VolumeRecord;
 HSPLcom/android/server/StorageManagerService;->access$4900()Z
 PLcom/android/server/StorageManagerService;->access$500(Lcom/android/server/StorageManagerService;I)V
 HSPLcom/android/server/StorageManagerService;->access$5000()Z
 HSPLcom/android/server/StorageManagerService;->access$5000(Lcom/android/server/StorageManagerService;ILjava/lang/String;)I
 PLcom/android/server/StorageManagerService;->access$5100(Lcom/android/server/StorageManagerService;II)V
 HSPLcom/android/server/StorageManagerService;->access$5100(Lcom/android/server/StorageManagerService;ILjava/lang/String;)I
+HSPLcom/android/server/StorageManagerService;->access$5200()Z
 HSPLcom/android/server/StorageManagerService;->access$5200(Lcom/android/server/StorageManagerService;II)V
+HSPLcom/android/server/StorageManagerService;->access$5300(Lcom/android/server/StorageManagerService;ILjava/lang/String;)I
+PLcom/android/server/StorageManagerService;->access$5400(Lcom/android/server/StorageManagerService;II)V
 PLcom/android/server/StorageManagerService;->access$600(Lcom/android/server/StorageManagerService;I)V
 HPLcom/android/server/StorageManagerService;->access$6000(Lcom/android/server/StorageManagerService;)Z
+PLcom/android/server/StorageManagerService;->access$6400(Lcom/android/server/StorageManagerService;)Z
 PLcom/android/server/StorageManagerService;->access$700(Lcom/android/server/StorageManagerService;I)V
+HSPLcom/android/server/StorageManagerService;->access$800(Lcom/android/server/StorageManagerService;Landroid/os/UserHandle;)V
 HSPLcom/android/server/StorageManagerService;->addInternalVolumeLocked()V
 PLcom/android/server/StorageManagerService;->addUserKeyAuth(II[B[B)V
 HPLcom/android/server/StorageManagerService;->adjustAllocateFlags(IILjava/lang/String;)I
@@ -3948,7 +4153,7 @@
 PLcom/android/server/StorageManagerService;->onStopUser(I)V
 PLcom/android/server/StorageManagerService;->onUnlockUser(I)V
 PLcom/android/server/StorageManagerService;->onVolumeCreatedLocked(Landroid/os/storage/VolumeInfo;)V
-PLcom/android/server/StorageManagerService;->onVolumeStateChangedLocked(Landroid/os/storage/VolumeInfo;II)V
+HPLcom/android/server/StorageManagerService;->onVolumeStateChangedLocked(Landroid/os/storage/VolumeInfo;II)V
 HPLcom/android/server/StorageManagerService;->openProxyFileDescriptor(III)Landroid/os/ParcelFileDescriptor;
 PLcom/android/server/StorageManagerService;->prepareUserStorage(Ljava/lang/String;III)V
 HSPLcom/android/server/StorageManagerService;->readSettingsLocked()V
@@ -3959,12 +4164,13 @@
 HSPLcom/android/server/StorageManagerService;->registerListener(Landroid/os/storage/IStorageEventListener;)V
 HSPLcom/android/server/StorageManagerService;->remountUidExternalStorage(II)V
 HSPLcom/android/server/StorageManagerService;->resetIfBootedAndConnected()V
-PLcom/android/server/StorageManagerService;->runIdleMaint(Ljava/lang/Runnable;)V
+HPLcom/android/server/StorageManagerService;->runIdleMaint(Ljava/lang/Runnable;)V
 HSPLcom/android/server/StorageManagerService;->runIdleMaintenance(Ljava/lang/Runnable;)V
 HSPLcom/android/server/StorageManagerService;->runMaintenance()V
 HSPLcom/android/server/StorageManagerService;->scrubPath(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/StorageManagerService;->servicesReady()V
 PLcom/android/server/StorageManagerService;->setField(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/StorageManagerService;->snapshotAndMonitorLegacyStorageAppOp(Landroid/os/UserHandle;)V
 HSPLcom/android/server/StorageManagerService;->start()V
 PLcom/android/server/StorageManagerService;->startCheckpoint(I)V
 PLcom/android/server/StorageManagerService;->supportsBlockCheckpoint()Z
@@ -3974,8 +4180,12 @@
 PLcom/android/server/StorageManagerService;->unmountObb(Ljava/lang/String;ZLandroid/os/storage/IObbActionListener;I)V
 PLcom/android/server/StorageManagerService;->unregisterListener(Landroid/os/storage/IStorageEventListener;)V
 PLcom/android/server/StorageManagerService;->updateFusePropFromSettings()V
+HSPLcom/android/server/StorageManagerService;->updateLegacyStorageApps(Ljava/lang/String;IZ)V
 HSPLcom/android/server/SystemConfigService$1;-><init>(Lcom/android/server/SystemConfigService;)V
+PLcom/android/server/SystemConfigService$1;->getDisabledUntilUsedPreinstalledCarrierApps()Ljava/util/List;
+PLcom/android/server/SystemConfigService$1;->getDisabledUntilUsedPreinstalledCarrierAssociatedApps()Ljava/util/Map;
 HSPLcom/android/server/SystemConfigService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/SystemConfigService;->access$000(Lcom/android/server/SystemConfigService;)Landroid/content/Context;
 HSPLcom/android/server/SystemConfigService;->onStart()V
 HSPLcom/android/server/SystemServer;-><init>()V
 HSPLcom/android/server/SystemServer;->createSystemContext()V
@@ -4009,9 +4219,10 @@
 HSPLcom/android/server/SystemServerInitThreadPool;->submit(Ljava/lang/Runnable;Ljava/lang/String;)Ljava/util/concurrent/Future;
 HSPLcom/android/server/SystemServerInitThreadPool;->submitTask(Ljava/lang/Runnable;Ljava/lang/String;)Ljava/util/concurrent/Future;
 HSPLcom/android/server/SystemService$TargetUser;-><init>(Landroid/content/pm/UserInfo;)V
-PLcom/android/server/SystemService$TargetUser;->getUserHandle()Landroid/os/UserHandle;
+HSPLcom/android/server/SystemService$TargetUser;->getUserHandle()Landroid/os/UserHandle;
 PLcom/android/server/SystemService$TargetUser;->getUserIdentifier()I
 HSPLcom/android/server/SystemService$TargetUser;->getUserInfo()Landroid/content/pm/UserInfo;
+PLcom/android/server/SystemService$TargetUser;->toString()Ljava/lang/String;
 HSPLcom/android/server/SystemService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/SystemService;->dumpSupportedUsers(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HSPLcom/android/server/SystemService;->getBinderService(Ljava/lang/String;)Landroid/os/IBinder;
@@ -4022,6 +4233,7 @@
 HSPLcom/android/server/SystemService;->isSafeMode()Z
 HSPLcom/android/server/SystemService;->isSupported(Landroid/content/pm/UserInfo;)Z
 HSPLcom/android/server/SystemService;->isSupportedUser(Lcom/android/server/SystemService$TargetUser;)Z
+HPLcom/android/server/SystemService;->isUserSupported(Lcom/android/server/SystemService$TargetUser;)Z
 HSPLcom/android/server/SystemService;->onBootPhase(I)V
 HPLcom/android/server/SystemService;->onCleanupUser(I)V
 HSPLcom/android/server/SystemService;->onStartUser(I)V
@@ -4029,10 +4241,16 @@
 HSPLcom/android/server/SystemService;->onStartUser(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/SystemService;->onStopUser(I)V
 PLcom/android/server/SystemService;->onStopUser(Landroid/content/pm/UserInfo;)V
-PLcom/android/server/SystemService;->onStopUser(Lcom/android/server/SystemService$TargetUser;)V
+HPLcom/android/server/SystemService;->onStopUser(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/SystemService;->onSwitchUser(I)V
+PLcom/android/server/SystemService;->onSwitchUser(Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;)V
 PLcom/android/server/SystemService;->onUnlockUser(I)V
 HPLcom/android/server/SystemService;->onUnlockUser(Landroid/content/pm/UserInfo;)V
 HPLcom/android/server/SystemService;->onUnlockUser(Lcom/android/server/SystemService$TargetUser;)V
+HPLcom/android/server/SystemService;->onUserStarting(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/SystemService;->onUserStopping(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/SystemService;->onUserUnlocked(Lcom/android/server/SystemService$TargetUser;)V
+HPLcom/android/server/SystemService;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 HSPLcom/android/server/SystemService;->publishBinderService(Ljava/lang/String;Landroid/os/IBinder;)V
 HSPLcom/android/server/SystemService;->publishBinderService(Ljava/lang/String;Landroid/os/IBinder;Z)V
 HSPLcom/android/server/SystemService;->publishBinderService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
@@ -4050,6 +4268,7 @@
 HSPLcom/android/server/SystemServiceManager;->onUser(Lcom/android/server/utils/TimingsTraceAndSlog;Ljava/lang/String;I)V
 HSPLcom/android/server/SystemServiceManager;->onUser(Lcom/android/server/utils/TimingsTraceAndSlog;Ljava/lang/String;II)V
 PLcom/android/server/SystemServiceManager;->onUser(Ljava/lang/String;I)V
+PLcom/android/server/SystemServiceManager;->onUserUnlocked(I)V
 HSPLcom/android/server/SystemServiceManager;->preSystemReady()V
 HSPLcom/android/server/SystemServiceManager;->setSafeMode(Z)V
 HSPLcom/android/server/SystemServiceManager;->setStartInfo(ZJJ)V
@@ -4060,6 +4279,7 @@
 HSPLcom/android/server/SystemServiceManager;->startServiceFromJar(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/SystemService;
 HSPLcom/android/server/SystemServiceManager;->startUser(Lcom/android/server/utils/TimingsTraceAndSlog;I)V
 PLcom/android/server/SystemServiceManager;->stopUser(I)V
+PLcom/android/server/SystemServiceManager;->switchUser(II)V
 PLcom/android/server/SystemServiceManager;->unlockUser(I)V
 HSPLcom/android/server/SystemServiceManager;->warnIfTooLong(JLcom/android/server/SystemService;Ljava/lang/String;)V
 HSPLcom/android/server/SystemUpdateManagerService;-><init>(Landroid/content/Context;)V
@@ -4088,20 +4308,31 @@
 HSPLcom/android/server/TelephonyRegistry;-><clinit>()V
 HSPLcom/android/server/TelephonyRegistry;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/TelephonyRegistry;->access$000(Lcom/android/server/TelephonyRegistry;)Landroid/telephony/TelephonyManager;
+PLcom/android/server/TelephonyRegistry;->access$100(Lcom/android/server/TelephonyRegistry;)Landroid/telephony/TelephonyManager;
 PLcom/android/server/TelephonyRegistry;->access$100(Lcom/android/server/TelephonyRegistry;)[Landroid/os/Bundle;
 HSPLcom/android/server/TelephonyRegistry;->access$100(Lcom/android/server/TelephonyRegistry;)[Landroid/telephony/CellIdentity;
+PLcom/android/server/TelephonyRegistry;->access$1000(Lcom/android/server/TelephonyRegistry;)Landroid/os/Handler;
 PLcom/android/server/TelephonyRegistry;->access$1000(Lcom/android/server/TelephonyRegistry;I)I
 PLcom/android/server/TelephonyRegistry;->access$1000(Lcom/android/server/TelephonyRegistry;I)Z
+PLcom/android/server/TelephonyRegistry;->access$1100(Lcom/android/server/TelephonyRegistry;I)I
 PLcom/android/server/TelephonyRegistry;->access$1100(Lcom/android/server/TelephonyRegistry;I)Z
 PLcom/android/server/TelephonyRegistry;->access$1200(Lcom/android/server/TelephonyRegistry;)V
+PLcom/android/server/TelephonyRegistry;->access$1200(Lcom/android/server/TelephonyRegistry;I)Z
 PLcom/android/server/TelephonyRegistry;->access$200(Lcom/android/server/TelephonyRegistry;)Ljava/util/ArrayList;
+PLcom/android/server/TelephonyRegistry;->access$200(Lcom/android/server/TelephonyRegistry;)[Landroid/telephony/CellIdentity;
+PLcom/android/server/TelephonyRegistry;->access$300(Lcom/android/server/TelephonyRegistry;)Ljava/util/ArrayList;
 PLcom/android/server/TelephonyRegistry;->access$300(Lcom/android/server/TelephonyRegistry;Lcom/android/server/TelephonyRegistry$Record;I)V
 PLcom/android/server/TelephonyRegistry;->access$400(Lcom/android/server/TelephonyRegistry;)V
+PLcom/android/server/TelephonyRegistry;->access$400(Lcom/android/server/TelephonyRegistry;Lcom/android/server/TelephonyRegistry$Record;I)V
 PLcom/android/server/TelephonyRegistry;->access$500(Lcom/android/server/TelephonyRegistry;)I
+PLcom/android/server/TelephonyRegistry;->access$500(Lcom/android/server/TelephonyRegistry;)V
 PLcom/android/server/TelephonyRegistry;->access$502(Lcom/android/server/TelephonyRegistry;I)I
 PLcom/android/server/TelephonyRegistry;->access$600(Lcom/android/server/TelephonyRegistry;)I
 PLcom/android/server/TelephonyRegistry;->access$602(Lcom/android/server/TelephonyRegistry;I)I
+PLcom/android/server/TelephonyRegistry;->access$700(Lcom/android/server/TelephonyRegistry;)I
 PLcom/android/server/TelephonyRegistry;->access$700(Lcom/android/server/TelephonyRegistry;)Landroid/util/LocalLog;
+PLcom/android/server/TelephonyRegistry;->access$702(Lcom/android/server/TelephonyRegistry;I)I
+PLcom/android/server/TelephonyRegistry;->access$800(Lcom/android/server/TelephonyRegistry;)Landroid/util/LocalLog;
 HPLcom/android/server/TelephonyRegistry;->access$800(Lcom/android/server/TelephonyRegistry;Landroid/os/IBinder;)V
 HSPLcom/android/server/TelephonyRegistry;->access$900(Lcom/android/server/TelephonyRegistry;)Landroid/os/Handler;
 HSPLcom/android/server/TelephonyRegistry;->add(Landroid/os/IBinder;)Lcom/android/server/TelephonyRegistry$Record;
@@ -4152,6 +4383,7 @@
 HPLcom/android/server/TelephonyRegistry;->notifyDataConnectionForSubscriber(IIILandroid/telephony/PreciseDataConnectionState;)V
 HPLcom/android/server/TelephonyRegistry;->notifyDataConnectionForSubscriber(IIIZLjava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;IZ)V
 HPLcom/android/server/TelephonyRegistry;->notifyDisconnectCause(IIII)V
+HPLcom/android/server/TelephonyRegistry;->notifyDisplayInfoChanged(IILandroid/telephony/DisplayInfo;)V
 HPLcom/android/server/TelephonyRegistry;->notifyEmergencyNumberList(II)V
 HPLcom/android/server/TelephonyRegistry;->notifyImsDisconnectCause(ILandroid/telephony/ims/ImsReasonInfo;)V
 HPLcom/android/server/TelephonyRegistry;->notifyMessageWaitingChangedForPhoneId(IIZ)V
@@ -4168,6 +4400,7 @@
 HPLcom/android/server/TelephonyRegistry;->notifySubscriptionInfoChanged()V
 HPLcom/android/server/TelephonyRegistry;->notifyUserMobileDataStateChangedForPhoneId(IIZ)V
 PLcom/android/server/TelephonyRegistry;->onMultiSimConfigChanged()V
+PLcom/android/server/TelephonyRegistry;->pii(Ljava/lang/String;)Ljava/lang/String;
 HPLcom/android/server/TelephonyRegistry;->remove(Landroid/os/IBinder;)V
 HPLcom/android/server/TelephonyRegistry;->removeOnSubscriptionsChangedListener(Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
 HSPLcom/android/server/TelephonyRegistry;->systemRunning()V
@@ -4233,6 +4466,7 @@
 PLcom/android/server/UiModeManagerService$Shell;->access$2300(I)Ljava/lang/String;
 PLcom/android/server/UiModeManagerService$Shell;->access$2900(I)Ljava/lang/String;
 PLcom/android/server/UiModeManagerService$Shell;->access$3000(I)Ljava/lang/String;
+PLcom/android/server/UiModeManagerService$Shell;->access$3200(I)Ljava/lang/String;
 PLcom/android/server/UiModeManagerService$Shell;->nightModeToStr(I)Ljava/lang/String;
 HSPLcom/android/server/UiModeManagerService$UserSwitchedReceiver;-><init>(Lcom/android/server/UiModeManagerService;)V
 HSPLcom/android/server/UiModeManagerService$UserSwitchedReceiver;-><init>(Lcom/android/server/UiModeManagerService;Lcom/android/server/UiModeManagerService$1;)V
@@ -4298,11 +4532,14 @@
 PLcom/android/server/UiModeManagerService;->enableCarMode(ILjava/lang/String;)V
 HSPLcom/android/server/UiModeManagerService;->getComputedUiModeConfiguration(I)I
 HPLcom/android/server/UiModeManagerService;->getDateTimeAfter(Ljava/time/LocalTime;Ljava/time/LocalDateTime;)Ljava/time/LocalDateTime;
+HSPLcom/android/server/UiModeManagerService;->initPowerSave()V
 PLcom/android/server/UiModeManagerService;->isCarModeEnabled()Z
 HSPLcom/android/server/UiModeManagerService;->isDeskDockState(I)Z
+PLcom/android/server/UiModeManagerService;->lambda$initPowerSave$3$UiModeManagerService(Landroid/os/PowerSaveState;)V
 PLcom/android/server/UiModeManagerService;->lambda$new$0$UiModeManagerService()V
 PLcom/android/server/UiModeManagerService;->lambda$onStart$0$UiModeManagerService(Landroid/os/PowerSaveState;)V
 HSPLcom/android/server/UiModeManagerService;->lambda$onStart$1$UiModeManagerService()V
+HSPLcom/android/server/UiModeManagerService;->lambda$onStart$1$UiModeManagerService(Landroid/content/Context;Landroid/content/res/Resources;)V
 PLcom/android/server/UiModeManagerService;->lambda$onStart$1$UiModeManagerService(Landroid/os/PowerSaveState;)V
 HSPLcom/android/server/UiModeManagerService;->lambda$onStart$2$UiModeManagerService()V
 PLcom/android/server/UiModeManagerService;->notifyCarModeDisabled(ILjava/lang/String;)V
@@ -4310,6 +4547,7 @@
 HSPLcom/android/server/UiModeManagerService;->onBootPhase(I)V
 PLcom/android/server/UiModeManagerService;->onCustomTimeUpdated(I)V
 HSPLcom/android/server/UiModeManagerService;->onStart()V
+PLcom/android/server/UiModeManagerService;->onSwitchUser(I)V
 PLcom/android/server/UiModeManagerService;->persistNightMode(I)V
 PLcom/android/server/UiModeManagerService;->registerScreenOffEvent()V
 HPLcom/android/server/UiModeManagerService;->registerTimeChangeEvent()V
@@ -4320,14 +4558,17 @@
 HSPLcom/android/server/UiModeManagerService;->setupWizardCompleteForCurrentUser()Z
 PLcom/android/server/UiModeManagerService;->shouldApplyAutomaticChangesImmediately()Z
 PLcom/android/server/UiModeManagerService;->unregisterScreenOffEvent()V
+PLcom/android/server/UiModeManagerService;->unregisterScreenOffEventLocked()V
 HSPLcom/android/server/UiModeManagerService;->unregisterTimeChangeEvent()V
 PLcom/android/server/UiModeManagerService;->updateAfterBroadcastLocked(Ljava/lang/String;II)V
 HSPLcom/android/server/UiModeManagerService;->updateComputedNightModeLocked()V
 HSPLcom/android/server/UiModeManagerService;->updateComputedNightModeLocked(Z)V
+HSPLcom/android/server/UiModeManagerService;->updateComputedNightModeLocked(ZZ)V
 HSPLcom/android/server/UiModeManagerService;->updateConfigurationLocked()V
 PLcom/android/server/UiModeManagerService;->updateCustomTimeLocked()V
 HSPLcom/android/server/UiModeManagerService;->updateLocked(II)V
 HSPLcom/android/server/UiModeManagerService;->updateNightModeFromSettings(Landroid/content/Context;Landroid/content/res/Resources;I)Z
+HSPLcom/android/server/UiModeManagerService;->updateNightModeFromSettingsLocked(Landroid/content/Context;Landroid/content/res/Resources;I)Z
 HSPLcom/android/server/UiModeManagerService;->updateSystemProperties()V
 HSPLcom/android/server/UiModeManagerService;->verifySetupWizardCompleted()V
 HSPLcom/android/server/UiThread;-><init>()V
@@ -4341,9 +4582,10 @@
 HSPLcom/android/server/UpdateLockService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/UpdateLockService;->acquireUpdateLock(Landroid/os/IBinder;Ljava/lang/String;)V
 PLcom/android/server/UpdateLockService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-PLcom/android/server/UpdateLockService;->makeTag(Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/UpdateLockService;->makeTag(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/UpdateLockService;->releaseUpdateLock(Landroid/os/IBinder;)V
 HSPLcom/android/server/UpdateLockService;->sendLockChangedBroadcast(Z)V
+PLcom/android/server/UserspaceRebootLogger;->shouldLogUserspaceRebootEvent()Z
 HSPLcom/android/server/VibratorService$1;-><init>(Lcom/android/server/VibratorService;)V
 HSPLcom/android/server/VibratorService$1;->onUidGone(IZ)V
 HSPLcom/android/server/VibratorService$1;->onUidStateChanged(IIJI)V
@@ -4478,7 +4720,7 @@
 HPLcom/android/server/VibratorService;->unlinkVibration(Lcom/android/server/VibratorService$Vibration;)V
 HSPLcom/android/server/VibratorService;->updateAlwaysOnLocked()V
 HPLcom/android/server/VibratorService;->updateAlwaysOnLocked(ILandroid/os/VibrationEffect;Landroid/os/VibrationAttributes;)V
-PLcom/android/server/VibratorService;->updateAlwaysOnLocked(ILcom/android/server/VibratorService$Vibration;)V
+HPLcom/android/server/VibratorService;->updateAlwaysOnLocked(ILcom/android/server/VibratorService$Vibration;)V
 HSPLcom/android/server/VibratorService;->updateInputDeviceVibratorsLocked()Z
 HSPLcom/android/server/VibratorService;->updateLowPowerModeLocked()Z
 HSPLcom/android/server/VibratorService;->updateVibrationIntensityLocked()V
@@ -4519,7 +4761,9 @@
 HPLcom/android/server/Watchdog;->getInterestingHalPids()Ljava/util/ArrayList;
 PLcom/android/server/Watchdog;->getInterestingNativePids()Ljava/util/ArrayList;
 HSPLcom/android/server/Watchdog;->init(Landroid/content/Context;Lcom/android/server/am/ActivityManagerService;)V
+HPLcom/android/server/Watchdog;->isInterestingJavaProcess(Ljava/lang/String;)Z
 HSPLcom/android/server/Watchdog;->pauseWatchingCurrentThread(Ljava/lang/String;)V
+HPLcom/android/server/Watchdog;->processDied(Ljava/lang/String;I)V
 HSPLcom/android/server/Watchdog;->processStarted(Ljava/lang/String;I)V
 HSPLcom/android/server/Watchdog;->resumeWatchingCurrentThread(Ljava/lang/String;)V
 HSPLcom/android/server/Watchdog;->run()V
@@ -4567,7 +4811,7 @@
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$1$J4pGG-UiTxhxH1VLNWBa7KLTh48;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4A2E7YnYuU3-mDj4eBvmxi8PEpA;-><clinit>()V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4A2E7YnYuU3-mDj4eBvmxi8PEpA;-><init>()V
-PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4A2E7YnYuU3-mDj4eBvmxi8PEpA;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4A2E7YnYuU3-mDj4eBvmxi8PEpA;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4X8DTUSf9fNVgqvhoZcnlny0VlE;-><init>(Lcom/android/server/accessibility/AccessibilityUserState;)V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4X8DTUSf9fNVgqvhoZcnlny0VlE;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$5vwr6qV-eqdCr73CeDmVnsJlZHM;-><clinit>()V
@@ -4596,7 +4840,7 @@
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$ZdgJH-YGWmUCqtsR2uYpejEExzw;->accept(Ljava/lang/Object;)V
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$eskhivxnBVBZCLZ0d5oWdhYVtfs;-><clinit>()V
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$eskhivxnBVBZCLZ0d5oWdhYVtfs;-><init>()V
-PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$eskhivxnBVBZCLZ0d5oWdhYVtfs;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$eskhivxnBVBZCLZ0d5oWdhYVtfs;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$he8-7PL6YxfY9L7x0CLg6DATNxg;-><clinit>()V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$he8-7PL6YxfY9L7x0CLg6DATNxg;-><init>()V
 HPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$he8-7PL6YxfY9L7x0CLg6DATNxg;->apply(Ljava/lang/Object;)Ljava/lang/Object;
@@ -4607,6 +4851,8 @@
 PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$iCLwAtq-px2o256DhoyM-0_S-Uc;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$ifdWn5KwwehtrFVplnBr1oDsgh8;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$ifdWn5KwwehtrFVplnBr1oDsgh8;->acceptOrThrow(Ljava/lang/Object;)V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$j2QeVWedl6n56ZCByHdIyOcYsHw;-><clinit>()V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$j2QeVWedl6n56ZCByHdIyOcYsHw;-><init>()V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$luI_C3QiJWsM08i8m3lx484SyyY;-><clinit>()V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$luI_C3QiJWsM08i8m3lx484SyyY;-><init>()V
 HSPLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$luI_C3QiJWsM08i8m3lx484SyyY;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
@@ -4648,6 +4894,7 @@
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection$InvocationHandler;->notifyAccessibilityButtonAvailabilityChangedLocked(Z)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection$InvocationHandler;->notifyAccessibilityButtonClickedLocked(I)V
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection$InvocationHandler;->notifyMagnificationChangedLocked(ILandroid/graphics/Region;FFF)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection$InvocationHandler;->notifySoftKeyboardShowModeChangedLocked(I)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection$InvocationHandler;->setMagnificationCallbackEnabled(IZ)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;-><init>(Landroid/content/Context;Landroid/content/ComponentName;Landroid/accessibilityservice/AccessibilityServiceInfo;ILandroid/os/Handler;Ljava/lang/Object;Lcom/android/server/accessibility/AccessibilitySecurityPolicy;Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection$SystemSupport;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/accessibility/SystemActionPerformer;Lcom/android/server/accessibility/AccessibilityWindowManager;)V
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->access$000(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;ILandroid/view/accessibility/AccessibilityEvent;Z)V
@@ -4664,8 +4911,8 @@
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->findAccessibilityNodeInfosByViewId(IJLjava/lang/String;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)[Ljava/lang/String;
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->findFocus(IJIILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)[Ljava/lang/String;
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getCapabilities()I
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getComponentName()Landroid/content/ComponentName;
-PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getMagnificationRegion(I)Landroid/graphics/Region;
+HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getComponentName()Landroid/content/ComponentName;
+HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getMagnificationRegion(I)Landroid/graphics/Region;
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getMagnificationScale(I)F
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getRelevantEventTypes()I
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
@@ -4689,6 +4936,7 @@
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyGestureInternal(Landroid/accessibilityservice/AccessibilityGestureEvent;)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyMagnificationChangedInternal(ILandroid/graphics/Region;FFF)V
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifyMagnificationChangedLocked(ILandroid/graphics/Region;FFF)V
+PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifySoftKeyboardShowModeChangedLocked(I)V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifySystemActionsChangedInternal()V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->notifySystemActionsChangedLocked()V
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->onAdded()V
@@ -4712,10 +4960,10 @@
 PLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->supportsFlagForNotImportantViews(Landroid/accessibilityservice/AccessibilityServiceInfo;)Z
 HPLcom/android/server/accessibility/AbstractAccessibilityServiceConnection;->wantsEventLocked(Landroid/view/accessibility/AccessibilityEvent;)Z
 PLcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;-><init>()V
-PLcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;->inputSourceValid()Z
+HPLcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;->inputSourceValid()Z
 PLcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;->reset()V
 HPLcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;->shouldProcessScroll()Z
-PLcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;->updateInputSource(I)Z
+HPLcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;->updateInputSource(I)Z
 PLcom/android/server/accessibility/AccessibilityInputFilter$KeyboardEventStreamState;-><init>()V
 PLcom/android/server/accessibility/AccessibilityInputFilter$KeyboardEventStreamState;->inputSourceValid()Z
 PLcom/android/server/accessibility/AccessibilityInputFilter$KeyboardEventStreamState;->reset()V
@@ -4735,7 +4983,7 @@
 HPLcom/android/server/accessibility/AccessibilityInputFilter;->getEventStreamState(Landroid/view/InputEvent;)Lcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;
 HPLcom/android/server/accessibility/AccessibilityInputFilter;->handleMotionEvent(Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/AccessibilityInputFilter;->isDisplayIdValid(I)Z
-PLcom/android/server/accessibility/AccessibilityInputFilter;->notifyAccessibilityButtonClicked(I)V
+HPLcom/android/server/accessibility/AccessibilityInputFilter;->notifyAccessibilityButtonClicked(I)V
 HPLcom/android/server/accessibility/AccessibilityInputFilter;->notifyAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
 HPLcom/android/server/accessibility/AccessibilityInputFilter;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
 PLcom/android/server/accessibility/AccessibilityInputFilter;->onDisplayChanged()V
@@ -4752,7 +5000,7 @@
 PLcom/android/server/accessibility/AccessibilityManagerService$1;->lambda$onPackageUpdateFinished$1(Ljava/lang/String;Landroid/content/ComponentName;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService$1;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
 HSPLcom/android/server/accessibility/AccessibilityManagerService$1;->onPackageRemoved(Ljava/lang/String;I)V
-PLcom/android/server/accessibility/AccessibilityManagerService$1;->onPackageUpdateFinished(Ljava/lang/String;I)V
+HPLcom/android/server/accessibility/AccessibilityManagerService$1;->onPackageUpdateFinished(Ljava/lang/String;I)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService$1;->onSomePackagesChanged()V
 HSPLcom/android/server/accessibility/AccessibilityManagerService$2;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -4763,9 +5011,10 @@
 HSPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->getValidDisplayList()Ljava/util/ArrayList;
 HSPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->initializeDisplayList()V
 HSPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->isValidDisplay(Landroid/view/Display;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->onDisplayAdded(I)V
+HPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->onDisplayAdded(I)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->onDisplayChanged(I)V
 HPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->onDisplayRemoved(I)V
+HPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->removeDisplayFromList(I)Z
 HSPLcom/android/server/accessibility/AccessibilityManagerService$Client;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/view/accessibility/IAccessibilityManagerClient;ILcom/android/server/accessibility/AccessibilityUserState;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService$Client;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/view/accessibility/IAccessibilityManagerClient;ILcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$1;)V
 PLcom/android/server/accessibility/AccessibilityManagerService$InteractionBridge$1;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService$InteractionBridge;Lcom/android/server/accessibility/AccessibilityUserState;Landroid/content/Context;Landroid/content/ComponentName;Landroid/accessibilityservice/AccessibilityServiceInfo;ILandroid/os/Handler;Ljava/lang/Object;Lcom/android/server/accessibility/AccessibilitySecurityPolicy;Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection$SystemSupport;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/accessibility/SystemActionPerformer;Lcom/android/server/accessibility/AccessibilityWindowManager;Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/accessibility/AccessibilityManagerService;)V
@@ -4806,6 +5055,7 @@
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$2500(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)I
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$2600(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)I
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$2700(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)Z
+PLcom/android/server/accessibility/AccessibilityManagerService;->access$2800(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)Z
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$300(Lcom/android/server/accessibility/AccessibilityManagerService;)Lcom/android/server/accessibility/AccessibilityUserState;
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$3000(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->access$3300(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)Z
@@ -4846,7 +5096,7 @@
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->getUserStateLocked(I)Lcom/android/server/accessibility/AccessibilityUserState;
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->getValidDisplayList()Ljava/util/ArrayList;
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->init()V
-PLcom/android/server/accessibility/AccessibilityManagerService;->interrupt(I)V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->interrupt(I)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->isAccessibilityButtonShown()Z
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->isClientInPackageWhitelist(Landroid/accessibilityservice/AccessibilityServiceInfo;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)Z
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->lambda$5vwr6qV-eqdCr73CeDmVnsJlZHM(Lcom/android/server/accessibility/AccessibilityManagerService;II)V
@@ -4873,7 +5123,7 @@
 PLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonClicked(I)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonClicked(ILjava/lang/String;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonClickedLocked(I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonVisibilityChanged(Z)V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonVisibilityChanged(Z)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonVisibilityChangedLocked(Z)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityServicesDelayedLocked(Landroid/view/accessibility/AccessibilityEvent;Z)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->notifyClearAccessibilityCacheLocked()V
@@ -4882,18 +5132,18 @@
 PLcom/android/server/accessibility/AccessibilityManagerService;->notifyKeyEvent(Landroid/view/KeyEvent;I)Z
 HPLcom/android/server/accessibility/AccessibilityManagerService;->notifyMagnificationChanged(ILandroid/graphics/Region;FFF)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->notifyMagnificationChangedLocked(ILandroid/graphics/Region;FFF)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->notifySystemActionsChangedLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->notifySystemActionsChangedLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->onBootPhase(I)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->onClientChangeLocked(Z)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->onGesture(Landroid/accessibilityservice/AccessibilityGestureEvent;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->onServiceInfoChangedLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->onSystemActionsChanged()V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->onSystemActionsChanged()V
 PLcom/android/server/accessibility/AccessibilityManagerService;->onTouchInteractionEnd()V
 PLcom/android/server/accessibility/AccessibilityManagerService;->onTouchInteractionStart()V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->onUserStateChangedLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->performAccessibilityFrameworkFeature(Landroid/content/ComponentName;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->performAccessibilityShortcut(Ljava/lang/String;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->performAccessibilityShortcutInternal(IILjava/lang/String;)V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->performAccessibilityShortcutInternal(IILjava/lang/String;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->performAccessibilityShortcutTargetActivity(ILandroid/content/ComponentName;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->performAccessibilityShortcutTargetService(IILandroid/content/ComponentName;)Z
 PLcom/android/server/accessibility/AccessibilityManagerService;->performActionOnAccessibilityFocusedItem(Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;)Z
@@ -4915,7 +5165,7 @@
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->readTouchExplorationGrantedAccessibilityServicesLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->readUserRecommendedUiTimeoutSettingsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->registerBroadcastReceivers()V
-PLcom/android/server/accessibility/AccessibilityManagerService;->registerSystemAction(Landroid/app/RemoteAction;I)V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->registerSystemAction(Landroid/app/RemoteAction;I)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->registerUiTestAutomationService(Landroid/os/IBinder;Landroid/accessibilityservice/IAccessibilityServiceClient;Landroid/accessibilityservice/AccessibilityServiceInfo;I)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->removeAccessibilityInteractionConnection(Landroid/view/IWindow;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->removeUser(I)V
@@ -4928,16 +5178,17 @@
 HPLcom/android/server/accessibility/AccessibilityManagerService;->sendAccessibilityEventForCurrentUserLocked(Landroid/view/accessibility/AccessibilityEvent;)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->sendAccessibilityEventLocked(Landroid/view/accessibility/AccessibilityEvent;I)V
 HPLcom/android/server/accessibility/AccessibilityManagerService;->sendAccessibilityEventToInputFilter(Landroid/view/accessibility/AccessibilityEvent;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->sendFingerprintGesture(I)Z
+HPLcom/android/server/accessibility/AccessibilityManagerService;->sendFingerprintGesture(I)Z
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->sendServicesStateChanged(Landroid/os/RemoteCallbackList;J)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->sendStateToAllClients(II)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->sendStateToClients(II)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->sendStateToClients(ILandroid/os/RemoteCallbackList;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->setMotionEventInjectors(Landroid/util/SparseArray;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->showAccessibilityTargetsSelection(II)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->switchUser(I)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->unlockUser(I)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->unregisterSystemAction(I)V
 PLcom/android/server/accessibility/AccessibilityManagerService;->unregisterUiTestAutomationService(Landroid/accessibilityservice/IAccessibilityServiceClient;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->updateAccessibilityButtonTargetsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
 HSPLcom/android/server/accessibility/AccessibilityManagerService;->updateAccessibilityEnabledSettingLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
@@ -4966,10 +5217,10 @@
 PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->canRetrieveWindowsLocked(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;)Z
 HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->checkAccessibilityAccess(Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;)Z
 HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->computeValidReportedPackages(Ljava/lang/String;I)[Ljava/lang/String;
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->enforceCallerIsRecentsOrHasPermission(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->enforceCallingOrSelfPermission(Ljava/lang/String;)V
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->hasPermission(Ljava/lang/String;)Z
+HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->enforceCallerIsRecentsOrHasPermission(Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->enforceCallingOrSelfPermission(Ljava/lang/String;)V
+HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->hasPermission(Ljava/lang/String;)Z
 HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isCallerInteractingAcrossUsers(I)Z
 HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isRetrievalAllowingWindowLocked(II)Z
 HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isShellAllowedToRetrieveWindowLocked(II)Z
@@ -4994,6 +5245,7 @@
 PLcom/android/server/accessibility/AccessibilityServiceConnection;->lambda$ASP9bmSvpeD7ZE_uJ8sm-9hCwiU(Lcom/android/server/accessibility/AccessibilityServiceConnection;)V
 PLcom/android/server/accessibility/AccessibilityServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/accessibility/AccessibilityServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
+PLcom/android/server/accessibility/AccessibilityServiceConnection;->setSoftKeyboardShowMode(I)Z
 PLcom/android/server/accessibility/AccessibilityServiceConnection;->unbindLocked()V
 HSPLcom/android/server/accessibility/AccessibilityUserState;-><clinit>()V
 HSPLcom/android/server/accessibility/AccessibilityUserState;-><init>(ILandroid/content/Context;Lcom/android/server/accessibility/AccessibilityUserState$ServiceInfoChangeListener;)V
@@ -5008,11 +5260,14 @@
 HSPLcom/android/server/accessibility/AccessibilityUserState;->getInteractiveUiTimeoutLocked()I
 HSPLcom/android/server/accessibility/AccessibilityUserState;->getLastSentClientStateLocked()I
 HSPLcom/android/server/accessibility/AccessibilityUserState;->getNonInteractiveUiTimeoutLocked()I
+PLcom/android/server/accessibility/AccessibilityUserState;->getSecureIntForUser(Ljava/lang/String;II)I
 PLcom/android/server/accessibility/AccessibilityUserState;->getServiceAssignedToAccessibilityButtonLocked()Landroid/content/ComponentName;
 PLcom/android/server/accessibility/AccessibilityUserState;->getServiceConnectionLocked(Landroid/content/ComponentName;)Lcom/android/server/accessibility/AccessibilityServiceConnection;
 HSPLcom/android/server/accessibility/AccessibilityUserState;->getShortcutTargetsLocked(I)Landroid/util/ArraySet;
+PLcom/android/server/accessibility/AccessibilityUserState;->getSoftKeyboardValueFromSettings()I
 HSPLcom/android/server/accessibility/AccessibilityUserState;->getUserInteractiveUiTimeoutLocked()I
 HSPLcom/android/server/accessibility/AccessibilityUserState;->getUserNonInteractiveUiTimeoutLocked()I
+PLcom/android/server/accessibility/AccessibilityUserState;->hasUserOverriddenHardKeyboardSetting()Z
 HSPLcom/android/server/accessibility/AccessibilityUserState;->isAutoclickEnabledLocked()Z
 HSPLcom/android/server/accessibility/AccessibilityUserState;->isDisplayMagnificationEnabledLocked()Z
 HSPLcom/android/server/accessibility/AccessibilityUserState;->isFilterKeyEventsEnabledLocked()Z
@@ -5027,7 +5282,10 @@
 HSPLcom/android/server/accessibility/AccessibilityUserState;->isTextHighContrastEnabledLocked()Z
 HSPLcom/android/server/accessibility/AccessibilityUserState;->isTouchExplorationEnabledLocked()Z
 HSPLcom/android/server/accessibility/AccessibilityUserState;->onSwitchToAnotherUserLocked()V
+PLcom/android/server/accessibility/AccessibilityUserState;->putSecureIntForUser(Ljava/lang/String;II)V
+PLcom/android/server/accessibility/AccessibilityUserState;->reconcileSoftKeyboardModeWithSettingsLocked()V
 PLcom/android/server/accessibility/AccessibilityUserState;->removeServiceLocked(Lcom/android/server/accessibility/AccessibilityServiceConnection;)V
+PLcom/android/server/accessibility/AccessibilityUserState;->saveSoftKeyboardValueToSettings(I)V
 PLcom/android/server/accessibility/AccessibilityUserState;->serviceDisconnectedLocked(Lcom/android/server/accessibility/AccessibilityServiceConnection;)V
 PLcom/android/server/accessibility/AccessibilityUserState;->setDisplayMagnificationEnabledLocked(Z)V
 HSPLcom/android/server/accessibility/AccessibilityUserState;->setFilterKeyEventsEnabledLocked(Z)V
@@ -5035,8 +5293,10 @@
 HSPLcom/android/server/accessibility/AccessibilityUserState;->setLastSentClientStateLocked(I)V
 HSPLcom/android/server/accessibility/AccessibilityUserState;->setMultiFingerGesturesLocked(Z)V
 HSPLcom/android/server/accessibility/AccessibilityUserState;->setNonInteractiveUiTimeoutLocked(I)V
+PLcom/android/server/accessibility/AccessibilityUserState;->setOriginalHardKeyboardValue(Z)V
 HSPLcom/android/server/accessibility/AccessibilityUserState;->setPerformGesturesEnabledLocked(Z)V
 HSPLcom/android/server/accessibility/AccessibilityUserState;->setServiceHandlesDoubleTapLocked(Z)V
+PLcom/android/server/accessibility/AccessibilityUserState;->setSoftKeyboardModeLocked(ILandroid/content/ComponentName;)Z
 PLcom/android/server/accessibility/AccessibilityUserState;->setTouchExplorationEnabledLocked(Z)V
 HSPLcom/android/server/accessibility/AccessibilityUserState;->unbindAllServicesLocked()V
 PLcom/android/server/accessibility/AccessibilityUserState;->updateCrashedServicesIfNeededLocked()V
@@ -5064,9 +5324,9 @@
 HPLcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;->windowChangedNoLayer(Landroid/view/WindowInfo;Landroid/view/WindowInfo;)Z
 HPLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;-><init>(Lcom/android/server/accessibility/AccessibilityWindowManager;ILandroid/view/accessibility/IAccessibilityInteractionConnection;Ljava/lang/String;II)V
 PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->binderDied()V
-PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->getPackageName()Ljava/lang/String;
-PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->getRemote()Landroid/view/accessibility/IAccessibilityInteractionConnection;
-PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->getUid()I
+HPLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->getPackageName()Ljava/lang/String;
+HPLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->getRemote()Landroid/view/accessibility/IAccessibilityInteractionConnection;
+HPLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->getUid()I
 HPLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->linkToDeath()V
 HPLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->unlinkToDeath()V
 HSPLcom/android/server/accessibility/AccessibilityWindowManager;-><init>(Ljava/lang/Object;Landroid/os/Handler;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/accessibility/AccessibilityWindowManager$AccessibilityEventSender;Lcom/android/server/accessibility/AccessibilitySecurityPolicy;Lcom/android/server/accessibility/AccessibilitySecurityPolicy$AccessibilityUserManager;)V
@@ -5130,7 +5390,7 @@
 PLcom/android/server/accessibility/AccessibilityWindowManager;->resolveTopParentTokenLocked(Landroid/os/IBinder;)Landroid/os/IBinder;
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->setAccessibilityFocusedWindowLocked(I)V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->setActiveWindowLocked(I)V
-PLcom/android/server/accessibility/AccessibilityWindowManager;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
+HSPLcom/android/server/accessibility/AccessibilityWindowManager;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
 PLcom/android/server/accessibility/AccessibilityWindowManager;->startTrackingWindows(I)V
 HSPLcom/android/server/accessibility/AccessibilityWindowManager;->stopTrackingWindows(I)V
 HPLcom/android/server/accessibility/AccessibilityWindowManager;->unregisterIdLocked(I)V
@@ -5146,17 +5406,17 @@
 HPLcom/android/server/accessibility/EventStreamTransformation;->clearEvents(I)V
 HPLcom/android/server/accessibility/EventStreamTransformation;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
 PLcom/android/server/accessibility/EventStreamTransformation;->onDestroy()V
-PLcom/android/server/accessibility/EventStreamTransformation;->onKeyEvent(Landroid/view/KeyEvent;I)V
+HPLcom/android/server/accessibility/EventStreamTransformation;->onKeyEvent(Landroid/view/KeyEvent;I)V
 HPLcom/android/server/accessibility/EventStreamTransformation;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DelegatingState;-><init>(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DelegatingState;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;-><init>(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;Landroid/content/Context;)V
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->afterLongTapTimeoutTransitionToDraggingState(Landroid/view/MotionEvent;)V
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->afterLongTapTimeoutTransitionToDraggingState(Landroid/view/MotionEvent;)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->afterMultiTapTimeoutTransitionToDelegatingState()V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->cacheDelayedMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->clear()V
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->clearDelayedMotionEvents()V
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->handleMessage(Landroid/os/Message;)Z
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->clearDelayedMotionEvents()V
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->handleMessage(Landroid/os/Message;)Z
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->isFingerDown()Z
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->isMultiTap(Landroid/view/MotionEvent;Landroid/view/MotionEvent;)Z
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->isMultiTapTriggered(I)Z
@@ -5170,8 +5430,8 @@
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->timeBetween(Landroid/view/MotionEvent;Landroid/view/MotionEvent;)J
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->timeOf(Landroid/view/MotionEvent;)J
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->toggleShortcutTriggered()V
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->transitionToDelegatingStateAndClear()V
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->transitionToViewportDraggingStateAndClear(Landroid/view/MotionEvent;)V
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->transitionToDelegatingStateAndClear()V
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;->transitionToViewportDraggingStateAndClear(Landroid/view/MotionEvent;)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;-><clinit>()V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;-><init>()V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;->access$600(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;)Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;
@@ -5180,11 +5440,11 @@
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;->countOf(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;I)I
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;->initialize(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;->obtain(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;->obtainInternal()Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;->obtainInternal()Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;->recycle()V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;-><init>(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;Landroid/content/Context;)V
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->access$000(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;)Landroid/view/GestureDetector;
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->access$100(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;)Landroid/view/ScaleGestureDetector;
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->access$000(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;)Landroid/view/GestureDetector;
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->access$100(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;)Landroid/view/ScaleGestureDetector;
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->clear()V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;->onScale(Landroid/view/ScaleGestureDetector;)Z
@@ -5200,15 +5460,15 @@
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$ViewportDraggingState;->clear()V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler$ViewportDraggingState;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/MagnificationController;ZZI)V
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$200(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$State;)V
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$300(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;)I
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$200(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$State;)V
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$300(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;)I
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$400(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;)V
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$500(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$500(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$700(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$State;Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$800(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;FF)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->access$900(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->clearAndTransitionToStateDetecting()V
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->clearEvents(I)V
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->clearEvents(I)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->dispatchTransformedEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->handleEventWith(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$State;Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->notifyShortcutTriggered()V
@@ -5216,14 +5476,14 @@
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->onMotionEventInternal(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->recycleAndNullify(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
-PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->transitionTo(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$State;)V
+HPLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->transitionTo(Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$State;)V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->zoomOff()V
 PLcom/android/server/accessibility/FullScreenMagnificationGestureHandler;->zoomOn(FF)V
 PLcom/android/server/accessibility/KeyEventDispatcher$PendingKeyEvent;-><init>()V
 PLcom/android/server/accessibility/KeyEventDispatcher$PendingKeyEvent;-><init>(Lcom/android/server/accessibility/KeyEventDispatcher$1;)V
 PLcom/android/server/accessibility/KeyEventDispatcher;-><init>(Landroid/os/Handler;ILjava/lang/Object;Landroid/os/PowerManager;)V
 PLcom/android/server/accessibility/KeyEventDispatcher;->flush(Lcom/android/server/accessibility/KeyEventDispatcher$KeyEventFilter;)V
-PLcom/android/server/accessibility/KeyEventDispatcher;->notifyKeyEventLocked(Landroid/view/KeyEvent;ILjava/util/List;)Z
+HPLcom/android/server/accessibility/KeyEventDispatcher;->notifyKeyEventLocked(Landroid/view/KeyEvent;ILjava/util/List;)Z
 PLcom/android/server/accessibility/KeyEventDispatcher;->obtainPendingEventLocked(Landroid/view/KeyEvent;I)Lcom/android/server/accessibility/KeyEventDispatcher$PendingKeyEvent;
 PLcom/android/server/accessibility/KeyEventDispatcher;->removeEventFromListLocked(Ljava/util/List;I)Lcom/android/server/accessibility/KeyEventDispatcher$PendingKeyEvent;
 PLcom/android/server/accessibility/KeyEventDispatcher;->removeReferenceToPendingEventLocked(Lcom/android/server/accessibility/KeyEventDispatcher$PendingKeyEvent;)Z
@@ -5243,7 +5503,7 @@
 PLcom/android/server/accessibility/MagnificationController$1;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/accessibility/MagnificationController$1;->doInBackground([Ljava/lang/Void;)Ljava/lang/Void;
 PLcom/android/server/accessibility/MagnificationController$ControllerContext;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/wm/WindowManagerInternal;Landroid/os/Handler;J)V
-PLcom/android/server/accessibility/MagnificationController$ControllerContext;->getAms()Lcom/android/server/accessibility/AccessibilityManagerService;
+HPLcom/android/server/accessibility/MagnificationController$ControllerContext;->getAms()Lcom/android/server/accessibility/AccessibilityManagerService;
 PLcom/android/server/accessibility/MagnificationController$ControllerContext;->getAnimationDuration()J
 PLcom/android/server/accessibility/MagnificationController$ControllerContext;->getContext()Landroid/content/Context;
 PLcom/android/server/accessibility/MagnificationController$ControllerContext;->getHandler()Landroid/os/Handler;
@@ -5257,20 +5517,20 @@
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMagnificationBounds(Landroid/graphics/Rect;)V
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMagnificationRegion(Landroid/graphics/Region;)V
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMagnifiedFrameInContentCoordsLocked(Landroid/graphics/Rect;)V
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMaxOffsetXLocked()F
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMaxOffsetYLocked()F
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMaxOffsetXLocked()F
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMaxOffsetYLocked()F
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMinOffsetXLocked()F
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getMinOffsetYLocked()F
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getOffsetX()F
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getOffsetY()F
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getScale()F
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getOffsetX()F
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getOffsetY()F
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getScale()F
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getSentOffsetX()F
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getSentOffsetY()F
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->getSentScale()F
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->isMagnifying()Z
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->isRegistered()Z
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->magnificationRegionContains(FF)Z
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->offsetMagnifiedRegion(FFI)V
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->offsetMagnifiedRegion(FFI)V
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->onMagnificationChangedLocked()V
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->onMagnificationRegionChanged(Landroid/graphics/Region;)V
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->onRectangleOnScreenRequested(IIII)V
@@ -5278,9 +5538,9 @@
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->onUserContextChanged()V
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->register()Z
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->requestRectangleOnScreen(IIII)V
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->reset(Z)Z
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->reset(Z)Z
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->sendSpecToAnimation(Landroid/view/MagnificationSpec;Z)V
-PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->setForceShowMagnifiableBounds(Z)V
+HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->setForceShowMagnifiableBounds(Z)V
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->setScale(FFFZI)Z
 HPLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->setScaleAndCenter(FFFZI)Z
 PLcom/android/server/accessibility/MagnificationController$DisplayMagnification;->unregister(Z)V
@@ -5301,10 +5561,10 @@
 HPLcom/android/server/accessibility/MagnificationController$SpecAnimationBridge;->updateSentSpecMainThread(Landroid/view/MagnificationSpec;Z)V
 PLcom/android/server/accessibility/MagnificationController;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService;Ljava/lang/Object;)V
 PLcom/android/server/accessibility/MagnificationController;-><init>(Lcom/android/server/accessibility/MagnificationController$ControllerContext;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/MagnificationController;->access$000(Lcom/android/server/accessibility/MagnificationController;)Lcom/android/server/accessibility/MagnificationController$ControllerContext;
-PLcom/android/server/accessibility/MagnificationController;->access$100(Lcom/android/server/accessibility/MagnificationController;)Ljava/lang/Object;
+HPLcom/android/server/accessibility/MagnificationController;->access$000(Lcom/android/server/accessibility/MagnificationController;)Lcom/android/server/accessibility/MagnificationController$ControllerContext;
+HPLcom/android/server/accessibility/MagnificationController;->access$100(Lcom/android/server/accessibility/MagnificationController;)Ljava/lang/Object;
 PLcom/android/server/accessibility/MagnificationController;->access$300(Lcom/android/server/accessibility/MagnificationController;IZ)V
-PLcom/android/server/accessibility/MagnificationController;->access$500(Lcom/android/server/accessibility/MagnificationController;)J
+HPLcom/android/server/accessibility/MagnificationController;->access$500(Lcom/android/server/accessibility/MagnificationController;)J
 PLcom/android/server/accessibility/MagnificationController;->access$600(Lcom/android/server/accessibility/MagnificationController;)V
 PLcom/android/server/accessibility/MagnificationController;->getMagnificationRegion(ILandroid/graphics/Region;)V
 PLcom/android/server/accessibility/MagnificationController;->getPersistedScale()F
@@ -5315,16 +5575,16 @@
 HPLcom/android/server/accessibility/MagnificationController;->magnificationRegionContains(IFF)Z
 HPLcom/android/server/accessibility/MagnificationController;->offsetMagnifiedRegion(IFFI)V
 PLcom/android/server/accessibility/MagnificationController;->onDisplayRemoved(I)V
-PLcom/android/server/accessibility/MagnificationController;->onScreenTurnedOff()V
+HPLcom/android/server/accessibility/MagnificationController;->onScreenTurnedOff()V
 PLcom/android/server/accessibility/MagnificationController;->persistScale()V
 PLcom/android/server/accessibility/MagnificationController;->register(I)V
-PLcom/android/server/accessibility/MagnificationController;->reset(IZ)Z
+HPLcom/android/server/accessibility/MagnificationController;->reset(IZ)Z
 PLcom/android/server/accessibility/MagnificationController;->resetAllIfNeeded(I)V
-PLcom/android/server/accessibility/MagnificationController;->resetAllIfNeeded(Z)V
+HPLcom/android/server/accessibility/MagnificationController;->resetAllIfNeeded(Z)V
 PLcom/android/server/accessibility/MagnificationController;->resetIfNeeded(II)Z
-PLcom/android/server/accessibility/MagnificationController;->resetIfNeeded(IZ)Z
+HPLcom/android/server/accessibility/MagnificationController;->resetIfNeeded(IZ)Z
 HPLcom/android/server/accessibility/MagnificationController;->setCenter(IFFZI)Z
-PLcom/android/server/accessibility/MagnificationController;->setForceShowMagnifiableBounds(IZ)V
+HPLcom/android/server/accessibility/MagnificationController;->setForceShowMagnifiableBounds(IZ)V
 PLcom/android/server/accessibility/MagnificationController;->setScale(IFFFZI)Z
 PLcom/android/server/accessibility/MagnificationController;->setScaleAndCenter(IFFFZI)Z
 PLcom/android/server/accessibility/MagnificationController;->setUserId(I)V
@@ -5332,10 +5592,16 @@
 PLcom/android/server/accessibility/MagnificationController;->unregisterAll()V
 PLcom/android/server/accessibility/MagnificationController;->unregisterCallbackLocked(IZ)V
 PLcom/android/server/accessibility/MagnificationController;->unregisterLocked(IZ)V
+PLcom/android/server/accessibility/MotionEventInjector;-><init>(Landroid/os/Looper;)V
+HPLcom/android/server/accessibility/MotionEventInjector;->cancelAnyPendingInjectedEvents()V
+PLcom/android/server/accessibility/MotionEventInjector;->clearEvents(I)V
+HPLcom/android/server/accessibility/MotionEventInjector;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/MotionEventInjector;->sendMotionEventToNext(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HSPLcom/android/server/accessibility/SystemActionPerformer;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerInternal;)V
 HSPLcom/android/server/accessibility/SystemActionPerformer;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerInternal;Ljava/util/function/Supplier;Lcom/android/server/accessibility/SystemActionPerformer$SystemActionsChangedListener;)V
 PLcom/android/server/accessibility/SystemActionPerformer;->performSystemAction(I)Z
 HPLcom/android/server/accessibility/SystemActionPerformer;->registerSystemAction(ILandroid/app/RemoteAction;)V
+PLcom/android/server/accessibility/SystemActionPerformer;->unregisterSystemAction(I)V
 HSPLcom/android/server/accessibility/UiAutomationManager$1;-><init>(Lcom/android/server/accessibility/UiAutomationManager;)V
 PLcom/android/server/accessibility/UiAutomationManager$UiAutomationService;-><init>(Lcom/android/server/accessibility/UiAutomationManager;Landroid/content/Context;Landroid/accessibilityservice/AccessibilityServiceInfo;ILandroid/os/Handler;Ljava/lang/Object;Lcom/android/server/accessibility/AccessibilitySecurityPolicy;Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection$SystemSupport;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/accessibility/SystemActionPerformer;Lcom/android/server/accessibility/AccessibilityWindowManager;)V
 PLcom/android/server/accessibility/UiAutomationManager$UiAutomationService;->connectServiceUnknownThread()V
@@ -5356,9 +5622,13 @@
 HSPLcom/android/server/accessibility/UiAutomationManager;->suppressingAccessibilityServicesLocked()Z
 PLcom/android/server/accessibility/UiAutomationManager;->unregisterUiTestAutomationServiceLocked(Landroid/accessibilityservice/IAccessibilityServiceClient;)V
 PLcom/android/server/accessibility/gestures/EventDispatcher;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/EventStreamTransformation;Lcom/android/server/accessibility/gestures/TouchState;)V
+PLcom/android/server/accessibility/gestures/EventDispatcher;->computeInjectionAction(II)I
+PLcom/android/server/accessibility/gestures/EventDispatcher;->getInjectedPointerDownCount()I
 PLcom/android/server/accessibility/gestures/EventDispatcher;->getLastInjectedDownEventTime()J
 PLcom/android/server/accessibility/gestures/EventDispatcher;->getLastInjectedHoverEvent()Landroid/view/MotionEvent;
-PLcom/android/server/accessibility/gestures/EventDispatcher;->sendAccessibilityEvent(I)V
+PLcom/android/server/accessibility/gestures/EventDispatcher;->isInjectedPointerDown(I)Z
+HPLcom/android/server/accessibility/gestures/EventDispatcher;->sendAccessibilityEvent(I)V
+PLcom/android/server/accessibility/gestures/EventDispatcher;->sendDownForAllNotInjectedPointers(Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/EventDispatcher;->sendMotionEvent(Landroid/view/MotionEvent;ILandroid/view/MotionEvent;II)V
 PLcom/android/server/accessibility/gestures/EventDispatcher;->setReceiver(Lcom/android/server/accessibility/EventStreamTransformation;)V
 HPLcom/android/server/accessibility/gestures/EventDispatcher;->updateState(Landroid/view/MotionEvent;)V
@@ -5376,7 +5646,7 @@
 HPLcom/android/server/accessibility/gestures/GestureMatcher;->access$000(Lcom/android/server/accessibility/gestures/GestureMatcher;)Landroid/os/Handler;
 PLcom/android/server/accessibility/gestures/GestureMatcher;->access$100(Lcom/android/server/accessibility/gestures/GestureMatcher;ILandroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/GestureMatcher;->cancelAfter(JLandroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
-PLcom/android/server/accessibility/gestures/GestureMatcher;->cancelAfterDoubleTapTimeout(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/gestures/GestureMatcher;->cancelAfterDoubleTapTimeout(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/GestureMatcher;->cancelAfterTapTimeout(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/GestureMatcher;->cancelGesture(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/GestureMatcher;->cancelPendingTransitions()V
@@ -5384,7 +5654,7 @@
 PLcom/android/server/accessibility/gestures/GestureMatcher;->completeAfter(JLandroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/GestureMatcher;->completeAfterLongPressTimeout(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/GestureMatcher;->completeGesture(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
-PLcom/android/server/accessibility/gestures/GestureMatcher;->getState()I
+HPLcom/android/server/accessibility/gestures/GestureMatcher;->getState()I
 PLcom/android/server/accessibility/gestures/GestureMatcher;->onDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/GestureMatcher;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)I
 PLcom/android/server/accessibility/gestures/GestureMatcher;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
@@ -5407,7 +5677,7 @@
 HPLcom/android/server/accessibility/gestures/MultiTap;->onDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/MultiTap;->onMove(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/MultiTap;->onPointerDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
-PLcom/android/server/accessibility/gestures/MultiTap;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/gestures/MultiTap;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/MultiTapAndHold;-><init>(Landroid/content/Context;IILcom/android/server/accessibility/gestures/GestureMatcher$StateChangeListener;)V
 PLcom/android/server/accessibility/gestures/MultiTapAndHold;->onDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/MultiTapAndHold;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
@@ -5429,7 +5699,7 @@
 HPLcom/android/server/accessibility/gestures/Swipe;->onUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/Swipe;->recognizeGesture(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/Swipe;->recognizeGesturePath(Landroid/view/MotionEvent;Landroid/view/MotionEvent;ILjava/util/ArrayList;)V
-PLcom/android/server/accessibility/gestures/Swipe;->toDirection(FF)I
+HPLcom/android/server/accessibility/gestures/Swipe;->toDirection(FF)I
 PLcom/android/server/accessibility/gestures/TouchExplorer$ExitGestureDetectionModeDelayed;-><init>(Lcom/android/server/accessibility/gestures/TouchExplorer;)V
 PLcom/android/server/accessibility/gestures/TouchExplorer$ExitGestureDetectionModeDelayed;-><init>(Lcom/android/server/accessibility/gestures/TouchExplorer;Lcom/android/server/accessibility/gestures/TouchExplorer$1;)V
 PLcom/android/server/accessibility/gestures/TouchExplorer$ExitGestureDetectionModeDelayed;->cancel()V
@@ -5443,7 +5713,7 @@
 PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverEnterAndMoveDelayed;-><init>(Lcom/android/server/accessibility/gestures/TouchExplorer;)V
 PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverEnterAndMoveDelayed;->access$100(Lcom/android/server/accessibility/gestures/TouchExplorer$SendHoverEnterAndMoveDelayed;)Z
 HPLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverEnterAndMoveDelayed;->addEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;)V
-PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverEnterAndMoveDelayed;->cancel()V
+HPLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverEnterAndMoveDelayed;->cancel()V
 HPLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverEnterAndMoveDelayed;->clear()V
 HPLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverEnterAndMoveDelayed;->isPending()Z
 PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverEnterAndMoveDelayed;->post(Landroid/view/MotionEvent;Landroid/view/MotionEvent;II)V
@@ -5451,7 +5721,7 @@
 PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;-><init>(Lcom/android/server/accessibility/gestures/TouchExplorer;)V
 PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;->cancel()V
 PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;->clear()V
-PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;->isPending()Z
+HPLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;->isPending()Z
 PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;->post(Landroid/view/MotionEvent;Landroid/view/MotionEvent;II)V
 PLcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;->run()V
 PLcom/android/server/accessibility/gestures/TouchExplorer;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilityManagerService;)V
@@ -5469,8 +5739,9 @@
 HPLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionMoveStateTouchExploring(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionMoveStateTouchInteracting(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionPointerDown(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
-PLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+HPLcom/android/server/accessibility/gestures/TouchExplorer;->handleActionUp(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->handleMotionEventStateClear(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
+PLcom/android/server/accessibility/gestures/TouchExplorer;->handleMotionEventStateDelegating(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/TouchExplorer;->handleMotionEventStateDragging(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->handleMotionEventStateTouchExploring(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 HPLcom/android/server/accessibility/gestures/TouchExplorer;->handleMotionEventStateTouchInteracting(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
@@ -5484,20 +5755,22 @@
 PLcom/android/server/accessibility/gestures/TouchExplorer;->onGestureStarted()Z
 HPLcom/android/server/accessibility/gestures/TouchExplorer;->onMotionEvent(Landroid/view/MotionEvent;Landroid/view/MotionEvent;I)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->sendHoverExitAndTouchExplorationGestureEndIfNeeded(I)V
-PLcom/android/server/accessibility/gestures/TouchExplorer;->sendTouchExplorationGestureStartAndHoverEnterIfNeeded(I)V
+HPLcom/android/server/accessibility/gestures/TouchExplorer;->sendTouchExplorationGestureStartAndHoverEnterIfNeeded(I)V
 PLcom/android/server/accessibility/gestures/TouchExplorer;->setNext(Lcom/android/server/accessibility/EventStreamTransformation;)V
 HPLcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;-><init>(Lcom/android/server/accessibility/gestures/TouchState;)V
 PLcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;->access$000(Lcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;)F
 PLcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;->access$100(Lcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;)F
+PLcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;->access$200(Lcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;)J
 PLcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;->clear()V
 PLcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;->set(FFJ)V
 PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;-><init>(Lcom/android/server/accessibility/gestures/TouchState;)V
 HPLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->clear()V
+PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->findPrimaryPointerId()I
 PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->getLastReceivedDownEdgeFlags()I
 PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->getPrimaryPointerId()I
 PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->getReceivedPointerDownX(I)F
 PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->getReceivedPointerDownY(I)F
-PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->handleReceivedPointerDown(ILandroid/view/MotionEvent;)V
+HPLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->handleReceivedPointerDown(ILandroid/view/MotionEvent;)V
 PLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->handleReceivedPointerUp(ILandroid/view/MotionEvent;)V
 HPLcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;->onMotionEvent(Landroid/view/MotionEvent;)V
 PLcom/android/server/accessibility/gestures/TouchState;-><init>()V
@@ -5513,6 +5786,7 @@
 PLcom/android/server/accessibility/gestures/TouchState;->onInjectedAccessibilityEvent(I)V
 HPLcom/android/server/accessibility/gestures/TouchState;->onReceivedMotionEvent(Landroid/view/MotionEvent;)V
 PLcom/android/server/accessibility/gestures/TouchState;->setState(I)V
+PLcom/android/server/accessibility/gestures/TouchState;->startDelegating()V
 PLcom/android/server/accessibility/gestures/TouchState;->startDragging()V
 PLcom/android/server/accessibility/gestures/TouchState;->startGestureDetecting()V
 PLcom/android/server/accessibility/gestures/TouchState;->startTouchExploring()V
@@ -5765,7 +6039,7 @@
 PLcom/android/server/accounts/AccountManagerService;->logRecordWithUid(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/accounts/AccountManagerService;->newGrantCredentialsPermissionIntent(Landroid/accounts/Account;Ljava/lang/String;ILandroid/accounts/AccountAuthenticatorResponse;Ljava/lang/String;Z)Landroid/content/Intent;
 PLcom/android/server/accounts/AccountManagerService;->newRequestAccountAccessIntent(Landroid/accounts/Account;Ljava/lang/String;ILandroid/os/RemoteCallback;)Landroid/content/Intent;
-PLcom/android/server/accounts/AccountManagerService;->notifyPackage(Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V
+HPLcom/android/server/accounts/AccountManagerService;->notifyPackage(Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V
 HPLcom/android/server/accounts/AccountManagerService;->onAccountAccessed(Ljava/lang/String;)V
 HPLcom/android/server/accounts/AccountManagerService;->onResult(Landroid/accounts/IAccountManagerResponse;Landroid/os/Bundle;)V
 HPLcom/android/server/accounts/AccountManagerService;->onServiceChanged(Landroid/accounts/AuthenticatorDescription;IZ)V
@@ -5791,6 +6065,8 @@
 PLcom/android/server/accounts/AccountManagerService;->removeAccountFromCacheLocked(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;)V
 HPLcom/android/server/accounts/AccountManagerService;->removeAccountInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;I)Z
 HPLcom/android/server/accounts/AccountManagerService;->removeVisibilityValuesForPackage(Ljava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService;->renameAccount(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService;->renameAccountInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;)Landroid/accounts/Account;
 HSPLcom/android/server/accounts/AccountManagerService;->resolveAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/lang/Integer;
 HPLcom/android/server/accounts/AccountManagerService;->saveAuthTokenToDatabase(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)Z
 HPLcom/android/server/accounts/AccountManagerService;->saveCachedToken(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;[BLjava/lang/String;Ljava/lang/String;J)V
@@ -5870,7 +6146,7 @@
 HSPLcom/android/server/accounts/AccountsDb;->findAllVisibilityValues()Ljava/util/Map;
 HPLcom/android/server/accounts/AccountsDb;->findAuthTokensByAccount(Landroid/accounts/Account;)Ljava/util/Map;
 HPLcom/android/server/accounts/AccountsDb;->findAuthtokenForAllAccounts(Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
-PLcom/android/server/accounts/AccountsDb;->findCeAccountId(Landroid/accounts/Account;)J
+HPLcom/android/server/accounts/AccountsDb;->findCeAccountId(Landroid/accounts/Account;)J
 PLcom/android/server/accounts/AccountsDb;->findCeAccountsNotInDe()Ljava/util/List;
 HPLcom/android/server/accounts/AccountsDb;->findDeAccountId(Landroid/accounts/Account;)J
 PLcom/android/server/accounts/AccountsDb;->findDeAccountPreviousName(Landroid/accounts/Account;)Ljava/lang/String;
@@ -5887,6 +6163,8 @@
 PLcom/android/server/accounts/AccountsDb;->insertGrant(JLjava/lang/String;I)J
 HPLcom/android/server/accounts/AccountsDb;->insertOrReplaceMetaAuthTypeAndUid(Ljava/lang/String;I)J
 HSPLcom/android/server/accounts/AccountsDb;->isCeDatabaseAttached()Z
+PLcom/android/server/accounts/AccountsDb;->renameCeAccount(JLjava/lang/String;)Z
+PLcom/android/server/accounts/AccountsDb;->renameDeAccount(JLjava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/accounts/AccountsDb;->reserveDebugDbInsertionPoint()J
 PLcom/android/server/accounts/AccountsDb;->setAccountVisibility(JLjava/lang/String;I)Z
 HPLcom/android/server/accounts/AccountsDb;->setTransactionSuccessful()V
@@ -5913,13 +6191,29 @@
 HPLcom/android/server/accounts/TokenCache;->put(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[BJ)V
 PLcom/android/server/accounts/TokenCache;->remove(Landroid/accounts/Account;)V
 PLcom/android/server/accounts/TokenCache;->remove(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/adb/-$$Lambda$AdbService$AdbManagerInternalImpl$eYI_FNtHA7A5dnyLFnC4mhwBDEo;-><clinit>()V
+PLcom/android/server/adb/-$$Lambda$AdbService$AdbManagerInternalImpl$eYI_FNtHA7A5dnyLFnC4mhwBDEo;-><init>()V
+PLcom/android/server/adb/-$$Lambda$AdbService$AdbManagerInternalImpl$eYI_FNtHA7A5dnyLFnC4mhwBDEo;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/adb/-$$Lambda$AdbService$AdbSettingsObserver$RoyT5Mqx9S17cRYS-VTdgg8I7zc;-><clinit>()V
+PLcom/android/server/adb/-$$Lambda$AdbService$AdbSettingsObserver$RoyT5Mqx9S17cRYS-VTdgg8I7zc;-><init>()V
+PLcom/android/server/adb/-$$Lambda$AdbService$AdbSettingsObserver$RoyT5Mqx9S17cRYS-VTdgg8I7zc;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/adb/-$$Lambda$AdbService$AdbSettingsObserver$j80q7vJz3QArWlwXdP3SN7zmf1A;-><clinit>()V
+PLcom/android/server/adb/-$$Lambda$AdbService$AdbSettingsObserver$j80q7vJz3QArWlwXdP3SN7zmf1A;-><init>()V
+PLcom/android/server/adb/-$$Lambda$AdbService$AdbSettingsObserver$j80q7vJz3QArWlwXdP3SN7zmf1A;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/adb/-$$Lambda$snZvZtOkSiN_ZXrW9Ua-AMDz9HU;-><clinit>()V
+PLcom/android/server/adb/-$$Lambda$snZvZtOkSiN_ZXrW9Ua-AMDz9HU;-><init>()V
+PLcom/android/server/adb/-$$Lambda$snZvZtOkSiN_ZXrW9Ua-AMDz9HU;->accept(Ljava/lang/Object;)V
+PLcom/android/server/adb/AdbDebuggingManager$AdbConnectionInfo;-><init>(Lcom/android/server/adb/AdbDebuggingManager;)V
+PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler$1;-><init>(Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;)V
 HSPLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler$1;-><init>(Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;Landroid/os/Handler;)V
+PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler$2;-><init>(Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;Landroid/os/Handler;)V
 HSPLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;-><init>(Lcom/android/server/adb/AdbDebuggingManager;Landroid/os/Looper;)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->cancelJobToUpdateAdbKeyStore()V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->logAdbConnectionChanged(Ljava/lang/String;IZ)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->registerForAuthTimeChanges()V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->scheduleJobToUpdateAdbKeyStore()J
+PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->startAdbDebuggingThread()V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;-><init>(Lcom/android/server/adb/AdbDebuggingManager;)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->closeSocketLocked()V
 PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->listenToSocket()V
@@ -5933,9 +6227,11 @@
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->filterOutOldKeys()Z
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getAllowedConnectionTime()J
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getKeyMap()Ljava/util/Map;
+PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getKeyMapBeforeKeystoreVersion()Ljava/util/Map;
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getLastConnectionTime(Ljava/lang/String;)J
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getNextExpirationTime()J
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getSystemKeysFromFile(Ljava/lang/String;)Ljava/util/Set;
+PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getTrustedNetworks()Ljava/util/List;
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->init()V
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->initKeyFile()V
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->isEmpty()Z
@@ -5943,38 +6239,55 @@
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->setLastConnectionTime(Ljava/lang/String;J)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->setLastConnectionTime(Ljava/lang/String;JZ)V
 PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->updateKeyStore()V
+PLcom/android/server/adb/AdbDebuggingManager$PortListenerImpl;-><init>(Lcom/android/server/adb/AdbDebuggingManager;)V
 HSPLcom/android/server/adb/AdbDebuggingManager;-><init>(Landroid/content/Context;)V
+PLcom/android/server/adb/AdbDebuggingManager;->access$000(Lcom/android/server/adb/AdbDebuggingManager;)Landroid/content/Context;
 PLcom/android/server/adb/AdbDebuggingManager;->access$000(Lcom/android/server/adb/AdbDebuggingManager;)Landroid/os/Handler;
+PLcom/android/server/adb/AdbDebuggingManager;->access$100(Lcom/android/server/adb/AdbDebuggingManager;)Landroid/os/Handler;
 PLcom/android/server/adb/AdbDebuggingManager;->access$100(Lcom/android/server/adb/AdbDebuggingManager;)Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;
 PLcom/android/server/adb/AdbDebuggingManager;->access$1000(Lcom/android/server/adb/AdbDebuggingManager;)V
 PLcom/android/server/adb/AdbDebuggingManager;->access$102(Lcom/android/server/adb/AdbDebuggingManager;Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;)Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;
 PLcom/android/server/adb/AdbDebuggingManager;->access$1100(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/String;)V
+PLcom/android/server/adb/AdbDebuggingManager;->access$1200(Lcom/android/server/adb/AdbDebuggingManager;)Z
+PLcom/android/server/adb/AdbDebuggingManager;->access$1800(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/Iterable;)V
+PLcom/android/server/adb/AdbDebuggingManager;->access$1900(Lcom/android/server/adb/AdbDebuggingManager;)V
 PLcom/android/server/adb/AdbDebuggingManager;->access$200(Lcom/android/server/adb/AdbDebuggingManager;)Z
 PLcom/android/server/adb/AdbDebuggingManager;->access$202(Lcom/android/server/adb/AdbDebuggingManager;Z)Z
 PLcom/android/server/adb/AdbDebuggingManager;->access$300(Lcom/android/server/adb/AdbDebuggingManager;)Ljava/util/List;
+PLcom/android/server/adb/AdbDebuggingManager;->access$400(Lcom/android/server/adb/AdbDebuggingManager;)Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;
 PLcom/android/server/adb/AdbDebuggingManager;->access$400(Lcom/android/server/adb/AdbDebuggingManager;)V
+PLcom/android/server/adb/AdbDebuggingManager;->access$402(Lcom/android/server/adb/AdbDebuggingManager;Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;)Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;
+PLcom/android/server/adb/AdbDebuggingManager;->access$500(Lcom/android/server/adb/AdbDebuggingManager;)Ljava/util/Map;
 PLcom/android/server/adb/AdbDebuggingManager;->access$500(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/adb/AdbDebuggingManager;->access$600(Lcom/android/server/adb/AdbDebuggingManager;)Ljava/lang/String;
+PLcom/android/server/adb/AdbDebuggingManager;->access$600(Lcom/android/server/adb/AdbDebuggingManager;)V
 PLcom/android/server/adb/AdbDebuggingManager;->access$602(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/adb/AdbDebuggingManager;->access$700(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/adb/AdbDebuggingManager;->access$800(Lcom/android/server/adb/AdbDebuggingManager;)Landroid/content/Context;
+PLcom/android/server/adb/AdbDebuggingManager;->access$800(Lcom/android/server/adb/AdbDebuggingManager;)Z
+PLcom/android/server/adb/AdbDebuggingManager;->access$802(Lcom/android/server/adb/AdbDebuggingManager;Z)Z
 PLcom/android/server/adb/AdbDebuggingManager;->access$900(Lcom/android/server/adb/AdbDebuggingManager;Ljava/lang/Iterable;)V
 PLcom/android/server/adb/AdbDebuggingManager;->allowDebugging(ZLjava/lang/String;)V
 PLcom/android/server/adb/AdbDebuggingManager;->clearDebuggingKeys()V
 PLcom/android/server/adb/AdbDebuggingManager;->createConfirmationIntent(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
+PLcom/android/server/adb/AdbDebuggingManager;->createConfirmationIntent(Landroid/content/ComponentName;Ljava/util/List;)Landroid/content/Intent;
 PLcom/android/server/adb/AdbDebuggingManager;->deleteKeyFile()V
 PLcom/android/server/adb/AdbDebuggingManager;->denyDebugging()V
 PLcom/android/server/adb/AdbDebuggingManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
 PLcom/android/server/adb/AdbDebuggingManager;->getAdbFile(Ljava/lang/String;)Ljava/io/File;
 PLcom/android/server/adb/AdbDebuggingManager;->getAdbTempKeysFile()Ljava/io/File;
-PLcom/android/server/adb/AdbDebuggingManager;->getFingerprints(Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/adb/AdbDebuggingManager;->getFingerprints(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/adb/AdbDebuggingManager;->getUserKeyFile()Ljava/io/File;
 PLcom/android/server/adb/AdbDebuggingManager;->sendPersistKeyStoreMessage()V
 PLcom/android/server/adb/AdbDebuggingManager;->setAdbEnabled(Z)V
+PLcom/android/server/adb/AdbDebuggingManager;->setAdbEnabled(ZB)V
 PLcom/android/server/adb/AdbDebuggingManager;->startConfirmation(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/adb/AdbDebuggingManager;->startConfirmationActivity(Landroid/content/ComponentName;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/adb/AdbDebuggingManager;->startConfirmationActivity(Landroid/content/ComponentName;Landroid/os/UserHandle;Ljava/util/List;)Z
+PLcom/android/server/adb/AdbDebuggingManager;->startConfirmationForKey(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/adb/AdbDebuggingManager;->writeKey(Ljava/lang/String;)V
 PLcom/android/server/adb/AdbDebuggingManager;->writeKeys(Ljava/lang/Iterable;)V
+PLcom/android/server/adb/AdbService$AdbConnectionPortListener;-><init>(Lcom/android/server/adb/AdbService;)V
 HSPLcom/android/server/adb/AdbService$AdbHandler;-><init>(Lcom/android/server/adb/AdbService;Landroid/os/Looper;)V
 HSPLcom/android/server/adb/AdbService$AdbHandler;->containsFunction(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/server/adb/AdbService$AdbHandler;->handleMessage(Landroid/os/Message;)V
@@ -5982,9 +6295,15 @@
 HSPLcom/android/server/adb/AdbService$AdbManagerInternalImpl;-><init>(Lcom/android/server/adb/AdbService;)V
 HSPLcom/android/server/adb/AdbService$AdbManagerInternalImpl;-><init>(Lcom/android/server/adb/AdbService;Lcom/android/server/adb/AdbService$1;)V
 HSPLcom/android/server/adb/AdbService$AdbManagerInternalImpl;->isAdbEnabled()Z
+HSPLcom/android/server/adb/AdbService$AdbManagerInternalImpl;->isAdbEnabled(B)Z
+PLcom/android/server/adb/AdbService$AdbManagerInternalImpl;->lambda$startAdbdForTransport$0(Ljava/lang/Object;ZB)V
 HSPLcom/android/server/adb/AdbService$AdbManagerInternalImpl;->registerTransport(Landroid/debug/IAdbTransport;)V
+PLcom/android/server/adb/AdbService$AdbManagerInternalImpl;->startAdbdForTransport(B)V
 HSPLcom/android/server/adb/AdbService$AdbSettingsObserver;-><init>(Lcom/android/server/adb/AdbService;)V
+PLcom/android/server/adb/AdbService$AdbSettingsObserver;->lambda$onChange$0(Ljava/lang/Object;ZB)V
+PLcom/android/server/adb/AdbService$AdbSettingsObserver;->lambda$onChange$1(Ljava/lang/Object;ZB)V
 HSPLcom/android/server/adb/AdbService$AdbSettingsObserver;->onChange(Z)V
+PLcom/android/server/adb/AdbService$AdbSettingsObserver;->onChange(ZLandroid/net/Uri;I)V
 HSPLcom/android/server/adb/AdbService$Lifecycle;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/adb/AdbService$Lifecycle;->onBootPhase(I)V
 HSPLcom/android/server/adb/AdbService$Lifecycle;->onStart()V
@@ -5995,14 +6314,25 @@
 HSPLcom/android/server/adb/AdbService;->access$202(Lcom/android/server/adb/AdbService;Z)Z
 PLcom/android/server/adb/AdbService;->access$300(Lcom/android/server/adb/AdbService;)Lcom/android/server/adb/AdbDebuggingManager;
 HSPLcom/android/server/adb/AdbService;->access$400(Lcom/android/server/adb/AdbService;)Landroid/content/ContentResolver;
+PLcom/android/server/adb/AdbService;->access$500(Lcom/android/server/adb/AdbService;)Landroid/content/ContentResolver;
 HSPLcom/android/server/adb/AdbService;->access$500(Lcom/android/server/adb/AdbService;Z)V
+PLcom/android/server/adb/AdbService;->access$500(Lcom/android/server/adb/AdbService;ZB)V
+PLcom/android/server/adb/AdbService;->access$600(Lcom/android/server/adb/AdbService;)Landroid/content/ContentResolver;
 HSPLcom/android/server/adb/AdbService;->access$600(Lcom/android/server/adb/AdbService;)Lcom/android/server/adb/AdbService$AdbHandler;
+PLcom/android/server/adb/AdbService;->access$600(Lcom/android/server/adb/AdbService;ZB)V
+PLcom/android/server/adb/AdbService;->access$700(Lcom/android/server/adb/AdbService;ZB)V
 PLcom/android/server/adb/AdbService;->allowDebugging(ZLjava/lang/String;)V
 PLcom/android/server/adb/AdbService;->bootCompleted()V
 PLcom/android/server/adb/AdbService;->clearDebuggingKeys()V
+HSPLcom/android/server/adb/AdbService;->containsFunction(Ljava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/adb/AdbService;->denyDebugging()V
 PLcom/android/server/adb/AdbService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/adb/AdbService;->initAdbState()V
+PLcom/android/server/adb/AdbService;->isAdbWifiSupported()Z
 HSPLcom/android/server/adb/AdbService;->setAdbEnabled(Z)V
+PLcom/android/server/adb/AdbService;->setAdbEnabled(ZB)V
+PLcom/android/server/adb/AdbService;->setAdbdEnabledForTransport(ZB)V
+PLcom/android/server/adb/AdbService;->startAdbd()V
 HSPLcom/android/server/adb/AdbService;->systemReady()V
 PLcom/android/server/am/-$$Lambda$1WA8m3qLmGLM_p471nun2GeoDvg;-><clinit>()V
 PLcom/android/server/am/-$$Lambda$1WA8m3qLmGLM_p471nun2GeoDvg;-><init>()V
@@ -6031,7 +6361,7 @@
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$eFxS8Z-_MXzP9a8ro45rBMHy3bk;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/am/-$$Lambda$ActivityManagerService$edxAPEC3muKzJql6X4RKsKcgmvo;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$edxAPEC3muKzJql6X4RKsKcgmvo;->onLimitReached(I)V
-PLcom/android/server/am/-$$Lambda$ActivityManagerService$fS1-94oynjazWAe2OWfx5p-HXUQ;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+HSPLcom/android/server/am/-$$Lambda$ActivityManagerService$fS1-94oynjazWAe2OWfx5p-HXUQ;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$fS1-94oynjazWAe2OWfx5p-HXUQ;->onLimitReached(I)V
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$qLjSm9VDxOdlZwBZT-qc8uDXM_o;-><clinit>()V
 PLcom/android/server/am/-$$Lambda$ActivityManagerService$qLjSm9VDxOdlZwBZT-qc8uDXM_o;-><init>()V
@@ -6075,6 +6405,10 @@
 HSPLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$r3x3xYmhrLG8kgeNVPXl5EILHwU;->run()V
 HSPLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$xR3yCbbVfCo3oq_xPiH7j5l5uac;-><init>(Lcom/android/server/am/BatteryExternalStatsWorker;)V
 PLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$xR3yCbbVfCo3oq_xPiH7j5l5uac;->run()V
+HSPLcom/android/server/am/-$$Lambda$BatteryStatsService$Pej9zCsmgLSgNXX-S6WY0nw2EvI;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIIIJ)V
+HSPLcom/android/server/am/-$$Lambda$BatteryStatsService$Pej9zCsmgLSgNXX-S6WY0nw2EvI;->run()V
+HSPLcom/android/server/am/-$$Lambda$BatteryStatsService$TD8vKX9utneO-PRBBmoRe5zlDH8;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIIIJ)V
+HSPLcom/android/server/am/-$$Lambda$BatteryStatsService$TD8vKX9utneO-PRBBmoRe5zlDH8;->run()V
 HSPLcom/android/server/am/-$$Lambda$BatteryStatsService$ZxbqtJ7ozYmzYFkkNV3m_QRd0Sk;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIII)V
 HSPLcom/android/server/am/-$$Lambda$BatteryStatsService$ZxbqtJ7ozYmzYFkkNV3m_QRd0Sk;->run()V
 HSPLcom/android/server/am/-$$Lambda$BatteryStatsService$rRONgIFHr4sujxPESRmo9P5RJ6w;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIII)V
@@ -6109,6 +6443,8 @@
 PLcom/android/server/am/-$$Lambda$PersistentConnection$xTW-hnA2hSnEFuF87mUe85RYnfE;->run()V
 HSPLcom/android/server/am/-$$Lambda$ProcessList$hjUwwFAIhoht4KRKnKeUve_Kcto;-><init>(Lcom/android/server/am/ProcessList;)V
 HSPLcom/android/server/am/-$$Lambda$ProcessList$hjUwwFAIhoht4KRKnKeUve_Kcto;->onFileDescriptorEvents(Ljava/io/FileDescriptor;I)I
+HPLcom/android/server/am/-$$Lambda$ProcessList$jjoaAPSQT_weAnGqu0R0SCcvKqw;-><init>(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
+HPLcom/android/server/am/-$$Lambda$ProcessList$jjoaAPSQT_weAnGqu0R0SCcvKqw;->run()V
 HSPLcom/android/server/am/-$$Lambda$ProcessList$vtq7LF5jIHO4t5NE03c8g7BT7Jc;-><init>(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
 HSPLcom/android/server/am/-$$Lambda$ProcessList$vtq7LF5jIHO4t5NE03c8g7BT7Jc;->run()V
 HPLcom/android/server/am/-$$Lambda$ProcessRecord$1qn6-pj5yWgiSnKANZpVz3gwd30;-><init>(Lcom/android/server/am/ProcessRecord;)V
@@ -6130,6 +6466,8 @@
 PLcom/android/server/am/-$$Lambda$UserController$4$7fssIH82Tl96VpliLXcseb8VbZ8;->run()V
 PLcom/android/server/am/-$$Lambda$UserController$4$P3Sj7pxBXLC7k_puCIIki2uVgGE;-><init>(Lcom/android/server/am/UserController$4;ILcom/android/server/am/UserState;)V
 PLcom/android/server/am/-$$Lambda$UserController$4$P3Sj7pxBXLC7k_puCIIki2uVgGE;->run()V
+PLcom/android/server/am/-$$Lambda$UserController$5-I-mDc6HrA5Dg_nAZlw5yKDAA0;-><init>(Lcom/android/server/am/UserController;IZLandroid/os/IProgressListener;)V
+PLcom/android/server/am/-$$Lambda$UserController$5-I-mDc6HrA5Dg_nAZlw5yKDAA0;->run()V
 PLcom/android/server/am/-$$Lambda$UserController$G0WJmqt4X_QG30fRlvXobn18mrE;-><init>(Lcom/android/server/am/UserController;)V
 PLcom/android/server/am/-$$Lambda$UserController$G0WJmqt4X_QG30fRlvXobn18mrE;->run()V
 PLcom/android/server/am/-$$Lambda$UserController$I0p0bKjuvsSPLZB71mKQFfdUjZ4;-><init>(Lcom/android/server/am/UserController;Landroid/content/Intent;III)V
@@ -6144,6 +6482,8 @@
 PLcom/android/server/am/-$$Lambda$UserController$WUEqPFGA7TEsxb4dlgZAmMu5O-s;->run()V
 PLcom/android/server/am/-$$Lambda$UserController$avTAix2Aub5zSKSBBofMYY2qXyk;-><init>(Lcom/android/server/am/UserController;I)V
 PLcom/android/server/am/-$$Lambda$UserController$avTAix2Aub5zSKSBBofMYY2qXyk;->run()V
+PLcom/android/server/am/-$$Lambda$UserController$f2F3ceAG58MOmBJm9cmZ7HhYcmE;-><init>(Lcom/android/server/am/UserController;Lcom/android/server/am/UserState;)V
+PLcom/android/server/am/-$$Lambda$UserController$f2F3ceAG58MOmBJm9cmZ7HhYcmE;->run()V
 PLcom/android/server/am/-$$Lambda$UserController$fU2mcMYCcCOsyUuGHKIUB-nSo1Y;-><init>(Lcom/android/server/am/UserController;ILcom/android/server/am/UserState;)V
 PLcom/android/server/am/-$$Lambda$UserController$fU2mcMYCcCOsyUuGHKIUB-nSo1Y;->run()V
 PLcom/android/server/am/-$$Lambda$UserController$stQk1028ON105v_u-VMykVjcxLk;-><init>(Lcom/android/server/am/UserController;ILcom/android/server/am/UserState;)V
@@ -6154,7 +6494,7 @@
 HSPLcom/android/server/am/-$$Lambda$gATL8uvTPRd405IfefK1RL9bNqA;-><init>(Landroid/hardware/display/DisplayManagerInternal;)V
 HSPLcom/android/server/am/-$$Lambda$gATL8uvTPRd405IfefK1RL9bNqA;->run()V
 HSPLcom/android/server/am/-$$Lambda$nvO8eEA3_tju6oGhhJ2BoQfYghg;-><init>(Lcom/android/server/am/AppExitInfoTracker;)V
-PLcom/android/server/am/-$$Lambda$nvO8eEA3_tju6oGhhJ2BoQfYghg;->run()V
+HPLcom/android/server/am/-$$Lambda$nvO8eEA3_tju6oGhhJ2BoQfYghg;->run()V
 PLcom/android/server/am/-$$Lambda$uR36okKz1QISfNZZ4VonU8JRVDE;-><clinit>()V
 PLcom/android/server/am/-$$Lambda$uR36okKz1QISfNZZ4VonU8JRVDE;-><init>()V
 PLcom/android/server/am/-$$Lambda$uR36okKz1QISfNZZ4VonU8JRVDE;->accept(Ljava/lang/Object;)V
@@ -6169,6 +6509,22 @@
 HSPLcom/android/server/am/ActiveServices$1;-><init>(Lcom/android/server/am/ActiveServices;)V
 PLcom/android/server/am/ActiveServices$1;->run()V
 HPLcom/android/server/am/ActiveServices$ActiveForegroundApp;-><init>()V
+PLcom/android/server/am/ActiveServices$AppOpCallback$1;-><init>(Lcom/android/server/am/ActiveServices$AppOpCallback;)V
+HPLcom/android/server/am/ActiveServices$AppOpCallback$1;->onOpNoted(IILjava/lang/String;I)V
+PLcom/android/server/am/ActiveServices$AppOpCallback$2;-><init>(Lcom/android/server/am/ActiveServices$AppOpCallback;)V
+HPLcom/android/server/am/ActiveServices$AppOpCallback$2;->onOpActiveChanged(IILjava/lang/String;Z)V
+PLcom/android/server/am/ActiveServices$AppOpCallback;-><clinit>()V
+HPLcom/android/server/am/ActiveServices$AppOpCallback;-><init>(Lcom/android/server/am/ProcessRecord;Landroid/app/AppOpsManager;)V
+HPLcom/android/server/am/ActiveServices$AppOpCallback;->access$000(Lcom/android/server/am/ActiveServices$AppOpCallback;)Lcom/android/server/am/ProcessRecord;
+PLcom/android/server/am/ActiveServices$AppOpCallback;->access$100(Lcom/android/server/am/ActiveServices$AppOpCallback;)Z
+PLcom/android/server/am/ActiveServices$AppOpCallback;->access$200(Lcom/android/server/am/ActiveServices$AppOpCallback;IZ)V
+HPLcom/android/server/am/ActiveServices$AppOpCallback;->incrementOpCount(IZ)V
+HPLcom/android/server/am/ActiveServices$AppOpCallback;->isNotTop()Z
+PLcom/android/server/am/ActiveServices$AppOpCallback;->isObsoleteLocked()Z
+HPLcom/android/server/am/ActiveServices$AppOpCallback;->logFinalValues()V
+PLcom/android/server/am/ActiveServices$AppOpCallback;->modeToEnum(I)I
+HPLcom/android/server/am/ActiveServices$AppOpCallback;->registerLocked()V
+HPLcom/android/server/am/ActiveServices$AppOpCallback;->unregisterLocked()V
 HSPLcom/android/server/am/ActiveServices$ForcedStandbyListener;-><init>(Lcom/android/server/am/ActiveServices;)V
 HSPLcom/android/server/am/ActiveServices$ServiceDumper;-><init>(Lcom/android/server/am/ActiveServices;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)V
 HSPLcom/android/server/am/ActiveServices$ServiceDumper;->dumpHeaderLocked()V
@@ -6188,6 +6544,8 @@
 HSPLcom/android/server/am/ActiveServices$ServiceRestarter;->setService(Lcom/android/server/am/ServiceRecord;)V
 HSPLcom/android/server/am/ActiveServices;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 HSPLcom/android/server/am/ActiveServices;->access$200(Lcom/android/server/am/ActiveServices;I)Lcom/android/server/am/ActiveServices$ServiceMap;
+PLcom/android/server/am/ActiveServices;->access$300(I)I
+PLcom/android/server/am/ActiveServices;->access$600(Lcom/android/server/am/ActiveServices;I)Lcom/android/server/am/ActiveServices$ServiceMap;
 HSPLcom/android/server/am/ActiveServices;->appIsTopLocked(I)Z
 HSPLcom/android/server/am/ActiveServices;->appRestrictedAnyInBackground(ILjava/lang/String;)Z
 HSPLcom/android/server/am/ActiveServices;->attachApplicationLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)Z
@@ -6220,17 +6578,20 @@
 HSPLcom/android/server/am/ActiveServices;->killServicesLocked(Lcom/android/server/am/ProcessRecord;Z)V
 PLcom/android/server/am/ActiveServices;->lambda$showWhileInUsePermissionInFgsBlockedToastLocked$0$ActiveServices(Ljava/lang/String;)V
 HPLcom/android/server/am/ActiveServices;->makeRunningServiceInfoLocked(Lcom/android/server/am/ServiceRecord;)Landroid/app/ActivityManager$RunningServiceInfo;
+HSPLcom/android/server/am/ActiveServices;->maybeLogBindCrossProfileService(ILjava/lang/String;I)V
 HSPLcom/android/server/am/ActiveServices;->newServiceDumperLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)Lcom/android/server/am/ActiveServices$ServiceDumper;
+PLcom/android/server/am/ActiveServices;->opToEnum(I)I
 PLcom/android/server/am/ActiveServices;->peekServiceLocked(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;)Landroid/os/IBinder;
 HPLcom/android/server/am/ActiveServices;->performServiceRestartLocked(Lcom/android/server/am/ServiceRecord;)V
 PLcom/android/server/am/ActiveServices;->processStartTimedOutLocked(Lcom/android/server/am/ProcessRecord;)V
 HSPLcom/android/server/am/ActiveServices;->publishServiceLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;Landroid/os/IBinder;)V
 HSPLcom/android/server/am/ActiveServices;->realStartServiceLocked(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ProcessRecord;Z)V
+HPLcom/android/server/am/ActiveServices;->registerAppOpCallbackLocked(Lcom/android/server/am/ServiceRecord;)V
 HSPLcom/android/server/am/ActiveServices;->removeConnectionLocked(Lcom/android/server/am/ConnectionRecord;Lcom/android/server/am/ProcessRecord;Lcom/android/server/wm/ActivityServiceConnectionsHolder;)V
 HSPLcom/android/server/am/ActiveServices;->requestServiceBindingLocked(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/IntentBindRecord;ZZ)Z
 HSPLcom/android/server/am/ActiveServices;->requestServiceBindingsLocked(Lcom/android/server/am/ServiceRecord;Z)V
 HSPLcom/android/server/am/ActiveServices;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;ILandroid/content/Intent;ZI)Z
-HPLcom/android/server/am/ActiveServices;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;Ljava/lang/String;ILandroid/content/Intent;ZI)Z
+HSPLcom/android/server/am/ActiveServices;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;Ljava/lang/String;ILandroid/content/Intent;ZI)Z
 HPLcom/android/server/am/ActiveServices;->requestUpdateActiveForegroundAppsLocked(Lcom/android/server/am/ActiveServices$ServiceMap;J)V
 HSPLcom/android/server/am/ActiveServices;->retrieveServiceLocked(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZZZZ)Lcom/android/server/am/ActiveServices$ServiceLookupResult;
 HPLcom/android/server/am/ActiveServices;->scheduleServiceForegroundTransitionTimeoutLocked(Lcom/android/server/am/ServiceRecord;)V
@@ -6245,14 +6606,18 @@
 HPLcom/android/server/am/ActiveServices;->serviceTimeout(Lcom/android/server/am/ProcessRecord;)V
 HPLcom/android/server/am/ActiveServices;->setServiceForegroundInnerLocked(Lcom/android/server/am/ServiceRecord;ILandroid/app/Notification;II)V
 HPLcom/android/server/am/ActiveServices;->setServiceForegroundLocked(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;II)V
+HSPLcom/android/server/am/ActiveServices;->setWhiteListAllowWhileInUsePermissionInFgs()V
+HPLcom/android/server/am/ActiveServices;->shouldAllowWhileInUsePermissionInFgsLocked(Ljava/lang/String;IILandroid/content/Intent;Lcom/android/server/am/ServiceRecord;Z)Z
 HSPLcom/android/server/am/ActiveServices;->shouldAllowWhileInUsePermissionInFgsLocked(Ljava/lang/String;ILandroid/content/Intent;Lcom/android/server/am/ServiceRecord;Z)Z
+HPLcom/android/server/am/ActiveServices;->showWhileInUseDebugNotificationLocked(III)V
 HPLcom/android/server/am/ActiveServices;->showWhileInUseDebugToastLocked(III)V
+PLcom/android/server/am/ActiveServices;->showWhileInUsePermissionInFgsBlockedNotificationLocked(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/am/ActiveServices;->showWhileInUsePermissionInFgsBlockedToastLocked(Ljava/lang/String;)V
 HSPLcom/android/server/am/ActiveServices;->startServiceInnerLocked(Lcom/android/server/am/ActiveServices$ServiceMap;Landroid/content/Intent;Lcom/android/server/am/ServiceRecord;ZZ)Landroid/content/ComponentName;
 HSPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;I)Landroid/content/ComponentName;
 HSPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;IZ)Landroid/content/ComponentName;
-PLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName;
-HPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;IZ)Landroid/content/ComponentName;
+HSPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName;
+HSPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;Ljava/lang/String;IZ)Landroid/content/ComponentName;
 HPLcom/android/server/am/ActiveServices;->stopAllForegroundServicesLocked(ILjava/lang/String;)V
 HSPLcom/android/server/am/ActiveServices;->stopInBackgroundLocked(I)V
 HPLcom/android/server/am/ActiveServices;->stopServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;I)I
@@ -6261,6 +6626,7 @@
 HSPLcom/android/server/am/ActiveServices;->systemServicesReady()V
 HPLcom/android/server/am/ActiveServices;->unbindFinishedLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;Z)V
 HSPLcom/android/server/am/ActiveServices;->unbindServiceLocked(Landroid/app/IServiceConnection;)Z
+HPLcom/android/server/am/ActiveServices;->unregisterAppOpCallbackLocked(Lcom/android/server/am/ServiceRecord;)V
 HSPLcom/android/server/am/ActiveServices;->unscheduleServiceRestartLocked(Lcom/android/server/am/ServiceRecord;IZ)Z
 HPLcom/android/server/am/ActiveServices;->updateForegroundApps(Lcom/android/server/am/ActiveServices$ServiceMap;)V
 HPLcom/android/server/am/ActiveServices;->updateScreenStateLocked(Z)V
@@ -6292,6 +6658,7 @@
 PLcom/android/server/am/ActivityManagerConstants;->setOverrideMaxCachedProcesses(I)V
 HSPLcom/android/server/am/ActivityManagerConstants;->start(Landroid/content/ContentResolver;)V
 HSPLcom/android/server/am/ActivityManagerConstants;->updateActivityStartsLoggingEnabled()V
+HSPLcom/android/server/am/ActivityManagerConstants;->updateAssistant()V
 HSPLcom/android/server/am/ActivityManagerConstants;->updateBackgroundActivityStarts()V
 HSPLcom/android/server/am/ActivityManagerConstants;->updateBackgroundFgsStartsRestriction()V
 HSPLcom/android/server/am/ActivityManagerConstants;->updateConstants()V
@@ -6357,12 +6724,18 @@
 HSPLcom/android/server/am/ActivityManagerService$4;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 HSPLcom/android/server/am/ActivityManagerService$4;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
 HSPLcom/android/server/am/ActivityManagerService$4;->allowFilterResult(Lcom/android/server/am/BroadcastFilter;Ljava/util/List;)Z
+HSPLcom/android/server/am/ActivityManagerService$4;->allowFilterResult(Ljava/lang/Object;Ljava/util/List;)Z
+HSPLcom/android/server/am/ActivityManagerService$4;->getIntentFilter(Lcom/android/server/am/BroadcastFilter;)Landroid/content/IntentFilter;
+HSPLcom/android/server/am/ActivityManagerService$4;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
 HSPLcom/android/server/am/ActivityManagerService$4;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
 HSPLcom/android/server/am/ActivityManagerService$4;->isPackageForFilter(Ljava/lang/String;Lcom/android/server/am/BroadcastFilter;)Z
+HPLcom/android/server/am/ActivityManagerService$4;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z
 HSPLcom/android/server/am/ActivityManagerService$4;->newArray(I)[Landroid/content/IntentFilter;
 HSPLcom/android/server/am/ActivityManagerService$4;->newArray(I)[Lcom/android/server/am/BroadcastFilter;
+HSPLcom/android/server/am/ActivityManagerService$4;->newArray(I)[Ljava/lang/Object;
 HSPLcom/android/server/am/ActivityManagerService$4;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
 HSPLcom/android/server/am/ActivityManagerService$4;->newResult(Lcom/android/server/am/BroadcastFilter;II)Lcom/android/server/am/BroadcastFilter;
+HSPLcom/android/server/am/ActivityManagerService$4;->newResult(Ljava/lang/Object;II)Ljava/lang/Object;
 HSPLcom/android/server/am/ActivityManagerService$5;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Looper;)V
 HPLcom/android/server/am/ActivityManagerService$5;->handleMessage(Landroid/os/Message;)V
 HPLcom/android/server/am/ActivityManagerService$5;->lambda$handleMessage$0(Lcom/android/internal/os/ProcessCpuTracker$Stats;)Z
@@ -6420,7 +6793,7 @@
 HPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastCloseSystemDialogs(Ljava/lang/String;)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastGlobalConfigurationChanged(IZ)V
 HPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastIntentInPackage(Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZ)I
-PLcom/android/server/am/ActivityManagerService$LocalService;->broadcastIntentInPackage(Ljava/lang/String;Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZ)I
+HPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastIntentInPackage(Ljava/lang/String;Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZ)I
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->checkContentProviderAccess(Ljava/lang/String;I)Ljava/lang/String;
 HPLcom/android/server/am/ActivityManagerService$LocalService;->cleanUpServices(ILandroid/content/ComponentName;Landroid/content/Intent;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->clearPendingBackup(I)V
@@ -6428,8 +6801,9 @@
 PLcom/android/server/am/ActivityManagerService$LocalService;->disconnectActivityFromServices(Ljava/lang/Object;)V
 HPLcom/android/server/am/ActivityManagerService$LocalService;->disconnectActivityFromServices(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService$LocalService;->ensureNotSpecialUser(I)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->ensureNotSpecialUser(I)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->finishBooting()V
+PLcom/android/server/am/ActivityManagerService$LocalService;->finishUserSwitch(Ljava/lang/Object;)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->getActivityInfoForUser(Landroid/content/pm/ActivityInfo;I)Landroid/content/pm/ActivityInfo;
 HPLcom/android/server/am/ActivityManagerService$LocalService;->getActivityPresentationInfo(Landroid/os/IBinder;)Landroid/content/pm/ActivityPresentationInfo;
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->getCurrentProfileIds()[I
@@ -6452,7 +6826,7 @@
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->isSplitConfigurationChange(I)Z
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->isSystemReady()Z
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->isUidActive(I)Z
-PLcom/android/server/am/ActivityManagerService$LocalService;->isUidCurrentlyInstrumented(I)Z
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->isUidCurrentlyInstrumented(I)Z
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->isUserRunning(II)Z
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->killAllBackgroundProcessesExcept(II)V
 HPLcom/android/server/am/ActivityManagerService$LocalService;->killForegroundAppsForUser(I)V
@@ -6466,7 +6840,7 @@
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->registerProcessObserver(Landroid/app/IProcessObserver;)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->reportCurKeyguardUsageEvent(Z)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->scheduleAppGcs()V
-PLcom/android/server/am/ActivityManagerService$LocalService;->sendForegroundProfileChanged(I)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->sendForegroundProfileChanged(I)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->setBooted(Z)V
 HSPLcom/android/server/am/ActivityManagerService$LocalService;->setBooting(Z)V
 PLcom/android/server/am/ActivityManagerService$LocalService;->setDebugFlagsForStartingActivity(Landroid/content/pm/ActivityInfo;ILandroid/app/ProfilerInfo;Ljava/lang/Object;)V
@@ -6563,8 +6937,11 @@
 PLcom/android/server/am/ActivityManagerService;->access$600(Lcom/android/server/am/ActivityManagerService;)Z
 PLcom/android/server/am/ActivityManagerService;->access$702(Lcom/android/server/am/ActivityManagerService;Z)Z
 HSPLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZLjava/lang/String;)Lcom/android/server/am/ProcessRecord;
+PLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZLjava/lang/String;I)Lcom/android/server/am/ProcessRecord;
 HSPLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZZZLjava/lang/String;)Lcom/android/server/am/ProcessRecord;
+PLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZZZLjava/lang/String;I)Lcom/android/server/am/ProcessRecord;
 HSPLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZZZZLjava/lang/String;)Lcom/android/server/am/ProcessRecord;
+PLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZZZZLjava/lang/String;I)Lcom/android/server/am/ProcessRecord;
 HSPLcom/android/server/am/ActivityManagerService;->addBackgroundCheckViolationLocked(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/am/ActivityManagerService;->addBroadcastStatLocked(Ljava/lang/String;Ljava/lang/String;IIJ)V
 HSPLcom/android/server/am/ActivityManagerService;->addErrorToDropBox(Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Landroid/app/ApplicationErrorReport$CrashInfo;)V
@@ -6602,9 +6979,9 @@
 HPLcom/android/server/am/ActivityManagerService;->broadcastIntentInPackage(Ljava/lang/String;Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZ)I
 HSPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIII)I
 HSPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIIIZ)I
-HPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIII)I
-HPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIIIZ)I
-HPLcom/android/server/am/ActivityManagerService;->broadcastIntentWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
+HSPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIII)I
+HSPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIIIZ)I
+HSPLcom/android/server/am/ActivityManagerService;->broadcastIntentWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
 HSPLcom/android/server/am/ActivityManagerService;->broadcastQueueForIntent(Landroid/content/Intent;)Lcom/android/server/am/BroadcastQueue;
 HPLcom/android/server/am/ActivityManagerService;->canClearIdentity(III)Z
 HPLcom/android/server/am/ActivityManagerService;->canGcNowLocked()Z
@@ -6642,7 +7019,7 @@
 HPLcom/android/server/am/ActivityManagerService;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
 HSPLcom/android/server/am/ActivityManagerService;->doLowMemReportIfNeededLocked(Lcom/android/server/am/ProcessRecord;)V
 HPLcom/android/server/am/ActivityManagerService;->doStopUidLocked(ILcom/android/server/am/UidRecord;)V
-PLcom/android/server/am/ActivityManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService;->dumpAllowedAssociationsLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService;->dumpApplicationMemoryUsage(Ljava/io/FileDescriptor;Lcom/android/server/am/ActivityManagerService$MemoryUsageDumpOptions;[Ljava/lang/String;ZLjava/util/ArrayList;)V
 HPLcom/android/server/am/ActivityManagerService;->dumpApplicationMemoryUsage(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/am/ActivityManagerService$MemoryUsageDumpOptions;[Ljava/lang/String;ZLjava/util/ArrayList;Ljava/io/PrintWriter;)V
@@ -6675,6 +7052,7 @@
 PLcom/android/server/am/ActivityManagerService;->dumpProvidersLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService;->dumpStackTraces(Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
 HPLcom/android/server/am/ActivityManagerService;->dumpStackTraces(Ljava/util/ArrayList;Lcom/android/internal/os/ProcessCpuTracker;Landroid/util/SparseArray;Ljava/util/ArrayList;)Ljava/io/File;
+HPLcom/android/server/am/ActivityManagerService;->dumpStackTraces(Ljava/util/ArrayList;Lcom/android/internal/os/ProcessCpuTracker;Landroid/util/SparseArray;Ljava/util/ArrayList;Ljava/io/StringWriter;)Ljava/io/File;
 HSPLcom/android/server/am/ActivityManagerService;->dumpUids(Ljava/io/PrintWriter;Ljava/lang/String;ILcom/android/server/am/ActiveUids;Ljava/lang/String;Z)Z
 PLcom/android/server/am/ActivityManagerService;->dumpUsersLocked(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/am/ActivityManagerService;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
@@ -6698,9 +7076,9 @@
 HSPLcom/android/server/am/ActivityManagerService;->forceStopPackageLocked(Ljava/lang/String;IZZZZZILjava/lang/String;)Z
 HSPLcom/android/server/am/ActivityManagerService;->generateApplicationProvidersLocked(Lcom/android/server/am/ProcessRecord;)Ljava/util/List;
 PLcom/android/server/am/ActivityManagerService;->getActivityInfoForUser(Landroid/content/pm/ActivityInfo;I)Landroid/content/pm/ActivityInfo;
-PLcom/android/server/am/ActivityManagerService;->getAppId(Ljava/lang/String;)I
+HPLcom/android/server/am/ActivityManagerService;->getAppId(Ljava/lang/String;)I
 HSPLcom/android/server/am/ActivityManagerService;->getAppInfoForUser(Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ApplicationInfo;
-PLcom/android/server/am/ActivityManagerService;->getAppOpsManager()Landroid/app/AppOpsManager;
+HSPLcom/android/server/am/ActivityManagerService;->getAppOpsManager()Landroid/app/AppOpsManager;
 HSPLcom/android/server/am/ActivityManagerService;->getAppOpsService()Lcom/android/internal/app/IAppOpsService;
 HSPLcom/android/server/am/ActivityManagerService;->getAppStartModeLocked(ILjava/lang/String;IIZZZ)I
 HSPLcom/android/server/am/ActivityManagerService;->getBackgroundLaunchBroadcasts()Landroid/util/ArraySet;
@@ -6713,7 +7091,7 @@
 HSPLcom/android/server/am/ActivityManagerService;->getCurrentUser()Landroid/content/pm/UserInfo;
 HPLcom/android/server/am/ActivityManagerService;->getIntentForIntentSender(Landroid/content/IIntentSender;)Landroid/content/Intent;
 HSPLcom/android/server/am/ActivityManagerService;->getIntentSender(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
-HPLcom/android/server/am/ActivityManagerService;->getIntentSenderWithFeature(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
+HSPLcom/android/server/am/ActivityManagerService;->getIntentSenderWithFeature(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
 HSPLcom/android/server/am/ActivityManagerService;->getKsmInfo()[J
 PLcom/android/server/am/ActivityManagerService;->getLaunchedFromPackage(Landroid/os/IBinder;)Ljava/lang/String;
 PLcom/android/server/am/ActivityManagerService;->getLaunchedFromUid(Landroid/os/IBinder;)I
@@ -6754,7 +7132,7 @@
 HPLcom/android/server/am/ActivityManagerService;->handleApplicationCrashInner(Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Landroid/app/ApplicationErrorReport$CrashInfo;)V
 HSPLcom/android/server/am/ActivityManagerService;->handleApplicationStrictModeViolation(Landroid/os/IBinder;ILandroid/os/StrictMode$ViolationInfo;)V
 HSPLcom/android/server/am/ActivityManagerService;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;)Z
-HPLcom/android/server/am/ActivityManagerService;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;I)Z
+HSPLcom/android/server/am/ActivityManagerService;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;I)Z
 HSPLcom/android/server/am/ActivityManagerService;->handleApplicationWtfInner(IILandroid/os/IBinder;Ljava/lang/String;Landroid/app/ApplicationErrorReport$CrashInfo;)Lcom/android/server/am/ProcessRecord;
 HSPLcom/android/server/am/ActivityManagerService;->handleIncomingUser(IIIZZLjava/lang/String;Ljava/lang/String;)I
 HSPLcom/android/server/am/ActivityManagerService;->hasUsageStatsPermission(Ljava/lang/String;)Z
@@ -6796,6 +7174,7 @@
 HSPLcom/android/server/am/ActivityManagerService;->killApplication(Ljava/lang/String;IILjava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService;->killApplicationProcess(Ljava/lang/String;I)V
 PLcom/android/server/am/ActivityManagerService;->killBackgroundProcesses(Ljava/lang/String;I)V
+PLcom/android/server/am/ActivityManagerService;->killPids([ILjava/lang/String;Z)Z
 HPLcom/android/server/am/ActivityManagerService;->killUid(IILjava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService;->lambda$getProviderMimeTypeAsync$1$ActivityManagerService(Ljava/lang/String;ILandroid/os/RemoteCallback;Landroid/os/Bundle;)V
 HSPLcom/android/server/am/ActivityManagerService;->lambda$logStrictModeViolationToDropBox$3(Landroid/os/DropBoxManager;Ljava/lang/String;Ljava/lang/String;)V
@@ -6805,10 +7184,11 @@
 PLcom/android/server/am/ActivityManagerService;->lambda$systemReady$1$ActivityManagerService(Landroid/os/PowerSaveState;)V
 PLcom/android/server/am/ActivityManagerService;->lambda$systemReady$2$ActivityManagerService(I)V
 PLcom/android/server/am/ActivityManagerService;->lambda$systemReady$2$ActivityManagerService(Landroid/os/PowerSaveState;)V
-PLcom/android/server/am/ActivityManagerService;->lambda$systemReady$3$ActivityManagerService(I)V
+HPLcom/android/server/am/ActivityManagerService;->lambda$systemReady$3$ActivityManagerService(I)V
 PLcom/android/server/am/ActivityManagerService;->launchBugReportHandlerApp()Z
 HSPLcom/android/server/am/ActivityManagerService;->logStrictModeViolationToDropBox(Lcom/android/server/am/ProcessRecord;Landroid/os/StrictMode$ViolationInfo;)V
 PLcom/android/server/am/ActivityManagerService;->makeHeapDumpUri(Ljava/lang/String;)Landroid/net/Uri;
+PLcom/android/server/am/ActivityManagerService;->maybeLogUserspaceRebootEvent()V
 HPLcom/android/server/am/ActivityManagerService;->maybePruneOldTraces(Ljava/io/File;)V
 HSPLcom/android/server/am/ActivityManagerService;->maybeUpdateProviderUsageStatsLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService;->monitor()V
@@ -6840,7 +7220,7 @@
 HPLcom/android/server/am/ActivityManagerService;->registerIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
 HSPLcom/android/server/am/ActivityManagerService;->registerProcessObserver(Landroid/app/IProcessObserver;)V
 HSPLcom/android/server/am/ActivityManagerService;->registerReceiver(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
-HPLcom/android/server/am/ActivityManagerService;->registerReceiverWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
+HSPLcom/android/server/am/ActivityManagerService;->registerReceiverWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
 HPLcom/android/server/am/ActivityManagerService;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
 HSPLcom/android/server/am/ActivityManagerService;->registerUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V
 HSPLcom/android/server/am/ActivityManagerService;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
@@ -6910,9 +7290,10 @@
 HSPLcom/android/server/am/ActivityManagerService;->startIsolatedProcess(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Runnable;)Z
 HSPLcom/android/server/am/ActivityManagerService;->startObservingNativeCrashes()V
 HSPLcom/android/server/am/ActivityManagerService;->startPersistentApps(I)V
+HPLcom/android/server/am/ActivityManagerService;->startProcessLocked(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZILcom/android/server/am/HostingRecord;IZZZ)Lcom/android/server/am/ProcessRecord;
 HSPLcom/android/server/am/ActivityManagerService;->startProcessLocked(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZILcom/android/server/am/HostingRecord;ZZZ)Lcom/android/server/am/ProcessRecord;
 HSPLcom/android/server/am/ActivityManagerService;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;I)Landroid/content/ComponentName;
-HPLcom/android/server/am/ActivityManagerService;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName;
+HSPLcom/android/server/am/ActivityManagerService;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName;
 PLcom/android/server/am/ActivityManagerService;->startUserInBackground(I)Z
 PLcom/android/server/am/ActivityManagerService;->startUserInBackgroundWithListener(ILandroid/os/IProgressListener;)Z
 HPLcom/android/server/am/ActivityManagerService;->stopAppSwitches()V
@@ -6922,6 +7303,7 @@
 PLcom/android/server/am/ActivityManagerService;->stopUser(IZLandroid/app/IStopUserCallback;)I
 HSPLcom/android/server/am/ActivityManagerService;->stringifyKBSize(J)Ljava/lang/String;
 HSPLcom/android/server/am/ActivityManagerService;->stringifySize(JI)Ljava/lang/String;
+PLcom/android/server/am/ActivityManagerService;->switchUser(I)Z
 HSPLcom/android/server/am/ActivityManagerService;->systemReady(Ljava/lang/Runnable;Lcom/android/server/utils/TimingsTraceAndSlog;)V
 HPLcom/android/server/am/ActivityManagerService;->tempWhitelistForPendingIntentLocked(IIIJLjava/lang/String;)V
 HPLcom/android/server/am/ActivityManagerService;->tempWhitelistUidLocked(IJLjava/lang/String;)V
@@ -6932,7 +7314,7 @@
 HPLcom/android/server/am/ActivityManagerService;->unbindFinished(Landroid/os/IBinder;Landroid/content/Intent;Z)V
 HSPLcom/android/server/am/ActivityManagerService;->unbindService(Landroid/app/IServiceConnection;)Z
 HPLcom/android/server/am/ActivityManagerService;->unbroadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;I)V
-PLcom/android/server/am/ActivityManagerService;->unlockUser(I[B[BLandroid/os/IProgressListener;)Z
+HPLcom/android/server/am/ActivityManagerService;->unlockUser(I[B[BLandroid/os/IProgressListener;)Z
 HPLcom/android/server/am/ActivityManagerService;->unregisterIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
 HPLcom/android/server/am/ActivityManagerService;->unregisterReceiver(Landroid/content/IIntentReceiver;)V
 HPLcom/android/server/am/ActivityManagerService;->unregisterTaskStackListener(Landroid/app/ITaskStackListener;)V
@@ -6985,6 +7367,7 @@
 PLcom/android/server/am/ActivityManagerShellCommand;->runAttachAgent(Ljava/io/PrintWriter;)I
 PLcom/android/server/am/ActivityManagerShellCommand;->runDumpHeap(Ljava/io/PrintWriter;)I
 PLcom/android/server/am/ActivityManagerShellCommand;->runForceStop(Ljava/io/PrintWriter;)I
+PLcom/android/server/am/ActivityManagerShellCommand;->runGetConfig(Ljava/io/PrintWriter;)I
 PLcom/android/server/am/ActivityManagerShellCommand;->runSendBroadcast(Ljava/io/PrintWriter;)I
 PLcom/android/server/am/ActivityManagerShellCommand;->runStartActivity(Ljava/io/PrintWriter;)I
 HSPLcom/android/server/am/AppBindRecord;-><init>(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/IntentBindRecord;Lcom/android/server/am/ProcessRecord;)V
@@ -7147,6 +7530,7 @@
 HSPLcom/android/server/am/AppExitInfoTracker;->scheduleChildProcDied(III)V
 HSPLcom/android/server/am/AppExitInfoTracker;->scheduleNoteAppKill(Lcom/android/server/am/ProcessRecord;IILjava/lang/String;)V
 HPLcom/android/server/am/AppExitInfoTracker;->scheduleNoteLmkdProcKilled(II)V
+HPLcom/android/server/am/AppExitInfoTracker;->scheduleNoteProcessDied(Lcom/android/server/am/ProcessRecord;)V
 HSPLcom/android/server/am/AppExitInfoTracker;->scheduleNoteProcessDiedLocked(Lcom/android/server/am/ProcessRecord;)V
 HSPLcom/android/server/am/AppExitInfoTracker;->schedulePersistProcessExitInfo(Z)V
 HSPLcom/android/server/am/AppExitInfoTracker;->updateExistingExitInfoRecordLocked(Landroid/app/ApplicationExitInfo;Ljava/lang/Integer;Ljava/lang/Integer;)V
@@ -7244,7 +7628,7 @@
 HSPLcom/android/server/am/BatteryStatsService;-><init>(Landroid/content/Context;Ljava/io/File;Landroid/os/Handler;)V
 HSPLcom/android/server/am/BatteryStatsService;->access$100(Ljava/nio/ByteBuffer;)I
 HSPLcom/android/server/am/BatteryStatsService;->addIsolatedUid(II)V
-PLcom/android/server/am/BatteryStatsService;->awaitUninterruptibly(Ljava/util/concurrent/Future;)V
+HPLcom/android/server/am/BatteryStatsService;->awaitUninterruptibly(Ljava/util/concurrent/Future;)V
 HPLcom/android/server/am/BatteryStatsService;->computeChargeTimeRemaining()J
 HPLcom/android/server/am/BatteryStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/am/BatteryStatsService;->dumpHelp(Ljava/io/PrintWriter;)V
@@ -7266,7 +7650,9 @@
 HPLcom/android/server/am/BatteryStatsService;->isCharging()Z
 HSPLcom/android/server/am/BatteryStatsService;->isOnBattery()Z
 HSPLcom/android/server/am/BatteryStatsService;->lambda$setBatteryState$0$BatteryStatsService(IIIIIIII)V
+HSPLcom/android/server/am/BatteryStatsService;->lambda$setBatteryState$0$BatteryStatsService(IIIIIIIIJ)V
 HSPLcom/android/server/am/BatteryStatsService;->lambda$setBatteryState$1$BatteryStatsService(IIIIIIII)V
+HSPLcom/android/server/am/BatteryStatsService;->lambda$setBatteryState$1$BatteryStatsService(IIIIIIIIJ)V
 HPLcom/android/server/am/BatteryStatsService;->noteAlarmFinish(Ljava/lang/String;Landroid/os/WorkSource;I)V
 HPLcom/android/server/am/BatteryStatsService;->noteAlarmStart(Ljava/lang/String;Landroid/os/WorkSource;I)V
 HPLcom/android/server/am/BatteryStatsService;->noteBleScanResults(Landroid/os/WorkSource;I)V
@@ -7283,7 +7669,9 @@
 HPLcom/android/server/am/BatteryStatsService;->noteGpsChanged(Landroid/os/WorkSource;Landroid/os/WorkSource;)V
 HPLcom/android/server/am/BatteryStatsService;->noteGpsSignalQuality(I)V
 HSPLcom/android/server/am/BatteryStatsService;->noteInteractive(Z)V
+HPLcom/android/server/am/BatteryStatsService;->noteJobFinish(Ljava/lang/String;II)V
 HPLcom/android/server/am/BatteryStatsService;->noteJobFinish(Ljava/lang/String;IIII)V
+HPLcom/android/server/am/BatteryStatsService;->noteJobStart(Ljava/lang/String;I)V
 HPLcom/android/server/am/BatteryStatsService;->noteJobStart(Ljava/lang/String;III)V
 HPLcom/android/server/am/BatteryStatsService;->noteJobsDeferred(IIJ)V
 HPLcom/android/server/am/BatteryStatsService;->noteLongPartialWakelockFinish(Ljava/lang/String;Ljava/lang/String;I)V
@@ -7308,6 +7696,7 @@
 HSPLcom/android/server/am/BatteryStatsService;->noteResetBleScan()V
 PLcom/android/server/am/BatteryStatsService;->noteResetCamera()V
 PLcom/android/server/am/BatteryStatsService;->noteResetFlashlight()V
+PLcom/android/server/am/BatteryStatsService;->noteResetVideo()V
 HSPLcom/android/server/am/BatteryStatsService;->noteScreenBrightness(I)V
 HSPLcom/android/server/am/BatteryStatsService;->noteScreenState(I)V
 HPLcom/android/server/am/BatteryStatsService;->noteStartAudio(I)V
@@ -7338,7 +7727,7 @@
 HPLcom/android/server/am/BatteryStatsService;->noteWifiRssiChanged(I)V
 HPLcom/android/server/am/BatteryStatsService;->noteWifiScanStartedFromSource(Landroid/os/WorkSource;)V
 HPLcom/android/server/am/BatteryStatsService;->noteWifiScanStoppedFromSource(Landroid/os/WorkSource;)V
-PLcom/android/server/am/BatteryStatsService;->noteWifiState(ILjava/lang/String;)V
+HPLcom/android/server/am/BatteryStatsService;->noteWifiState(ILjava/lang/String;)V
 HPLcom/android/server/am/BatteryStatsService;->noteWifiSupplicantStateChanged(IZ)V
 PLcom/android/server/am/BatteryStatsService;->onCleanupUser(I)V
 PLcom/android/server/am/BatteryStatsService;->onLowPowerModeChanged(Landroid/os/PowerSaveState;)V
@@ -7347,6 +7736,7 @@
 HSPLcom/android/server/am/BatteryStatsService;->removeUid(I)V
 HSPLcom/android/server/am/BatteryStatsService;->scheduleWriteToDisk()V
 HSPLcom/android/server/am/BatteryStatsService;->setBatteryState(IIIIIIII)V
+HSPLcom/android/server/am/BatteryStatsService;->setBatteryState(IIIIIIIIJ)V
 HPLcom/android/server/am/BatteryStatsService;->setChargingStateUpdateDelayMillis(I)Z
 HPLcom/android/server/am/BatteryStatsService;->shouldCollectExternalStats()Z
 PLcom/android/server/am/BatteryStatsService;->shutdown()V
@@ -7407,7 +7797,7 @@
 HSPLcom/android/server/am/BroadcastDispatcher;->start()V
 HPLcom/android/server/am/BroadcastDispatcher;->startDeferring(I)V
 HSPLcom/android/server/am/BroadcastFilter;-><init>(Landroid/content/IntentFilter;Lcom/android/server/am/ReceiverList;Ljava/lang/String;Ljava/lang/String;IIZZ)V
-HPLcom/android/server/am/BroadcastFilter;-><init>(Landroid/content/IntentFilter;Lcom/android/server/am/ReceiverList;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZZ)V
+HSPLcom/android/server/am/BroadcastFilter;-><init>(Landroid/content/IntentFilter;Lcom/android/server/am/ReceiverList;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZZ)V
 PLcom/android/server/am/BroadcastFilter;->dumpBrief(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/am/BroadcastFilter;->dumpBroadcastFilterState(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/am/BroadcastFilter;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
@@ -7460,7 +7850,7 @@
 PLcom/android/server/am/BroadcastQueue;->toString()Ljava/lang/String;
 HSPLcom/android/server/am/BroadcastRecord;-><clinit>()V
 HSPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastQueue;Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;IIZLjava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;Ljava/util/List;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;ZZZIZZ)V
-HPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastQueue;Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;IIZLjava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;Ljava/util/List;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;ZZZIZZ)V
+HSPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastQueue;Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;IIZLjava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;Ljava/util/List;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;ZZZIZZ)V
 HSPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastRecord;Landroid/content/Intent;)V
 HPLcom/android/server/am/BroadcastRecord;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
 HPLcom/android/server/am/BroadcastRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/text/SimpleDateFormat;)V
@@ -7538,7 +7928,7 @@
 HPLcom/android/server/am/CachedAppOptimizer;->compactAppPersistent(Lcom/android/server/am/ProcessRecord;)V
 HPLcom/android/server/am/CachedAppOptimizer;->compactAppSome(Lcom/android/server/am/ProcessRecord;)V
 HPLcom/android/server/am/CachedAppOptimizer;->dump(Ljava/io/PrintWriter;)V
-PLcom/android/server/am/CachedAppOptimizer;->freezeAppAsync(Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/CachedAppOptimizer;->freezeAppAsync(Lcom/android/server/am/ProcessRecord;)V
 HSPLcom/android/server/am/CachedAppOptimizer;->init()V
 HSPLcom/android/server/am/CachedAppOptimizer;->isFreezerSupported()Z
 HSPLcom/android/server/am/CachedAppOptimizer;->parseProcStateThrottle(Ljava/lang/String;)Z
@@ -7590,6 +7980,7 @@
 HPLcom/android/server/am/ContentProviderRecord;->toShortString()Ljava/lang/String;
 HPLcom/android/server/am/ContentProviderRecord;->toString()Ljava/lang/String;
 HSPLcom/android/server/am/CoreSettingsObserver$DeviceConfigEntry;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)V
+HSPLcom/android/server/am/CoreSettingsObserver$DeviceConfigEntry;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;)V
 HSPLcom/android/server/am/CoreSettingsObserver;-><clinit>()V
 HSPLcom/android/server/am/CoreSettingsObserver;-><init>(Lcom/android/server/am/ActivityManagerService;)V
 HSPLcom/android/server/am/CoreSettingsObserver;->beginObserveCoreSettings()V
@@ -7611,6 +8002,7 @@
 PLcom/android/server/am/EventLogTags;->writeAmProviderLostProcess(ILjava/lang/String;ILjava/lang/String;)V
 HPLcom/android/server/am/EventLogTags;->writeAmPss(IILjava/lang/String;JJJJIIJ)V
 PLcom/android/server/am/EventLogTags;->writeAmStopIdleService(ILjava/lang/String;)V
+PLcom/android/server/am/EventLogTags;->writeAmSwitchUser(I)V
 HSPLcom/android/server/am/EventLogTags;->writeAmUidActive(I)V
 HPLcom/android/server/am/EventLogTags;->writeAmUidIdle(I)V
 HSPLcom/android/server/am/EventLogTags;->writeAmUidRunning(I)V
@@ -7686,7 +8078,7 @@
 PLcom/android/server/am/NativeCrashListener$NativeCrashReporter;-><init>(Lcom/android/server/am/NativeCrashListener;Lcom/android/server/am/ProcessRecord;ILjava/lang/String;)V
 PLcom/android/server/am/NativeCrashListener$NativeCrashReporter;->run()V
 HSPLcom/android/server/am/NativeCrashListener;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/NativeCrashListener;->consumeNativeCrashData(Ljava/io/FileDescriptor;)V
+HPLcom/android/server/am/NativeCrashListener;->consumeNativeCrashData(Ljava/io/FileDescriptor;)V
 PLcom/android/server/am/NativeCrashListener;->readExactly(Ljava/io/FileDescriptor;[BII)I
 HSPLcom/android/server/am/NativeCrashListener;->run()V
 PLcom/android/server/am/NativeCrashListener;->unpackInt([BI)I
@@ -7726,6 +8118,7 @@
 PLcom/android/server/am/OomAdjuster;->dumpProcCountsLocked(Ljava/io/PrintWriter;)V
 PLcom/android/server/am/OomAdjuster;->dumpProcessListVariablesLocked(Landroid/util/proto/ProtoOutputStream;)V
 PLcom/android/server/am/OomAdjuster;->dumpSequenceNumbersLocked(Ljava/io/PrintWriter;)V
+HPLcom/android/server/am/OomAdjuster;->getDefaultCapability(Lcom/android/server/am/ProcessRecord;I)I
 HPLcom/android/server/am/OomAdjuster;->idleUidsLocked()V
 HSPLcom/android/server/am/OomAdjuster;->initSettings()V
 HSPLcom/android/server/am/OomAdjuster;->lambda$new$0(Landroid/os/Message;)Z
@@ -7750,7 +8143,7 @@
 PLcom/android/server/am/PendingIntentController;->clearPendingResultForActivity(Landroid/os/IBinder;Ljava/lang/ref/WeakReference;)V
 HPLcom/android/server/am/PendingIntentController;->dumpPendingIntents(Ljava/io/PrintWriter;ZLjava/lang/String;)V
 HSPLcom/android/server/am/PendingIntentController;->getIntentSender(ILjava/lang/String;IILandroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;)Lcom/android/server/am/PendingIntentRecord;
-HPLcom/android/server/am/PendingIntentController;->getIntentSender(ILjava/lang/String;Ljava/lang/String;IILandroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;)Lcom/android/server/am/PendingIntentRecord;
+HSPLcom/android/server/am/PendingIntentController;->getIntentSender(ILjava/lang/String;Ljava/lang/String;IILandroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;)Lcom/android/server/am/PendingIntentRecord;
 HPLcom/android/server/am/PendingIntentController;->handlePendingIntentCancelled(Landroid/os/RemoteCallbackList;)V
 PLcom/android/server/am/PendingIntentController;->lambda$pDmmJDvS20vSAAXh9qdzbN0P8N0(Lcom/android/server/am/PendingIntentController;Landroid/os/RemoteCallbackList;)V
 PLcom/android/server/am/PendingIntentController;->lambda$sPmaborOkBSSEP2wiimxXw-eYDQ(Lcom/android/server/am/PendingIntentController;Landroid/os/IBinder;Ljava/lang/ref/WeakReference;)V
@@ -7761,7 +8154,7 @@
 HPLcom/android/server/am/PendingIntentController;->setPendingIntentWhitelistDuration(Landroid/content/IIntentSender;Landroid/os/IBinder;J)V
 HPLcom/android/server/am/PendingIntentController;->unregisterIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
 HSPLcom/android/server/am/PendingIntentRecord$Key;-><init>(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILcom/android/server/wm/SafeActivityOptions;I)V
-HPLcom/android/server/am/PendingIntentRecord$Key;-><init>(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILcom/android/server/wm/SafeActivityOptions;I)V
+HSPLcom/android/server/am/PendingIntentRecord$Key;-><init>(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILcom/android/server/wm/SafeActivityOptions;I)V
 HSPLcom/android/server/am/PendingIntentRecord$Key;->equals(Ljava/lang/Object;)Z
 HSPLcom/android/server/am/PendingIntentRecord$Key;->hashCode()I
 HPLcom/android/server/am/PendingIntentRecord$Key;->typeName()Ljava/lang/String;
@@ -7884,6 +8277,7 @@
 HSPLcom/android/server/am/ProcessList;->getUidProcStateLocked(I)I
 HSPLcom/android/server/am/ProcessList;->getUidRecordLocked(I)Lcom/android/server/am/UidRecord;
 HPLcom/android/server/am/ProcessList;->handleLmkdProcKilled(II)V
+HPLcom/android/server/am/ProcessList;->handleProcessStart(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
 HSPLcom/android/server/am/ProcessList;->handleProcessStart(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
 HSPLcom/android/server/am/ProcessList;->handleProcessStartedLocked(Lcom/android/server/am/ProcessRecord;IZJZ)Z
 HSPLcom/android/server/am/ProcessList;->handleProcessStartedLocked(Lcom/android/server/am/ProcessRecord;Landroid/os/Process$ProcessStartResult;J)Z
@@ -7898,10 +8292,12 @@
 HPLcom/android/server/am/ProcessList;->killAppZygoteIfNeededLocked(Landroid/os/AppZygote;Z)V
 HSPLcom/android/server/am/ProcessList;->killAppZygotesLocked(Ljava/lang/String;IIZ)V
 HPLcom/android/server/am/ProcessList;->killPackageProcessesLocked(Ljava/lang/String;IIILjava/lang/String;)Z
+HPLcom/android/server/am/ProcessList;->killPackageProcessesLocked(Ljava/lang/String;IIIZZZZZIILjava/lang/String;)Z
 HSPLcom/android/server/am/ProcessList;->killPackageProcessesLocked(Ljava/lang/String;IIIZZZZZLjava/lang/String;)Z
 HPLcom/android/server/am/ProcessList;->killProcAndWaitIfNecessaryLocked(Lcom/android/server/am/ProcessRecord;ZZLjava/lang/String;J)V
 HSPLcom/android/server/am/ProcessList;->killProcessGroup(II)V
 HSPLcom/android/server/am/ProcessList;->lambda$hjUwwFAIhoht4KRKnKeUve_Kcto(Lcom/android/server/am/ProcessList;Ljava/io/FileDescriptor;I)I
+HPLcom/android/server/am/ProcessList;->lambda$startProcessLocked$0$ProcessList(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
 HSPLcom/android/server/am/ProcessList;->lambda$startProcessLocked$0$ProcessList(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
 HSPLcom/android/server/am/ProcessList;->makeOomAdjString(IZ)Ljava/lang/String;
 HPLcom/android/server/am/ProcessList;->makeProcStateProtoEnum(I)I
@@ -7917,6 +8313,7 @@
 HSPLcom/android/server/am/ProcessList;->remove(I)V
 HSPLcom/android/server/am/ProcessList;->removeLruProcessLocked(Lcom/android/server/am/ProcessRecord;)V
 HPLcom/android/server/am/ProcessList;->removeProcessFromAppZygoteLocked(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/ProcessList;->removeProcessLocked(Lcom/android/server/am/ProcessRecord;ZZIILjava/lang/String;)Z
 HPLcom/android/server/am/ProcessList;->removeProcessLocked(Lcom/android/server/am/ProcessRecord;ZZLjava/lang/String;)Z
 HPLcom/android/server/am/ProcessList;->removeProcessLocked(Lcom/android/server/am/ProcessRecord;ZZLjava/lang/String;I)Z
 HSPLcom/android/server/am/ProcessList;->removeProcessNameLocked(Ljava/lang/String;I)Lcom/android/server/am/ProcessRecord;
@@ -7925,11 +8322,17 @@
 HPLcom/android/server/am/ProcessList;->setAllHttpProxy()V
 HSPLcom/android/server/am/ProcessList;->setOomAdj(III)V
 HSPLcom/android/server/am/ProcessList;->shouldIsolateAppData(Lcom/android/server/am/ProcessRecord;)Z
+HPLcom/android/server/am/ProcessList;->startProcess(Lcom/android/server/am/HostingRecord;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;I[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Landroid/os/Process$ProcessStartResult;
 HSPLcom/android/server/am/ProcessList;->startProcess(Lcom/android/server/am/HostingRecord;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;I[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Landroid/os/Process$ProcessStartResult;
+HPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/HostingRecord;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;I[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Z
 HSPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/HostingRecord;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;I[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Z
 PLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;)V
+PLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;I)V
+HPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;ILjava/lang/String;)Z
+HPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;IZZZLjava/lang/String;)Z
 HSPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;Ljava/lang/String;)Z
 HSPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;ZZZLjava/lang/String;)Z
+HPLcom/android/server/am/ProcessList;->startProcessLocked(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZILcom/android/server/am/HostingRecord;IZZIZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/Runnable;)Lcom/android/server/am/ProcessRecord;
 HSPLcom/android/server/am/ProcessList;->startProcessLocked(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZILcom/android/server/am/HostingRecord;ZZIZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/Runnable;)Lcom/android/server/am/ProcessRecord;
 PLcom/android/server/am/ProcessList;->updateAllTimePrefsLocked(I)V
 HSPLcom/android/server/am/ProcessList;->updateApplicationInfoLocked(Ljava/util/List;IZ)V
@@ -7941,6 +8344,8 @@
 HSPLcom/android/server/am/ProcessList;->writeLmkd(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Z
 HSPLcom/android/server/am/ProcessMemInfo;-><init>(Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/am/ProcessRecord$ErrorDialogController;-><init>(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/ProcessRecord$ErrorDialogController;->access$100(Lcom/android/server/am/ProcessRecord$ErrorDialogController;)Ljava/util/List;
+PLcom/android/server/am/ProcessRecord$ErrorDialogController;->access$200(Lcom/android/server/am/ProcessRecord$ErrorDialogController;)Ljava/util/List;
 HSPLcom/android/server/am/ProcessRecord$ErrorDialogController;->clearAllErrorDialogs()V
 HSPLcom/android/server/am/ProcessRecord$ErrorDialogController;->clearAnrDialogs()V
 HSPLcom/android/server/am/ProcessRecord$ErrorDialogController;->clearCrashDialogs()V
@@ -8082,7 +8487,7 @@
 HSPLcom/android/server/am/ProcessStatsService$1;-><init>(Lcom/android/server/am/ProcessStatsService;)V
 HPLcom/android/server/am/ProcessStatsService$1;->run()V
 HPLcom/android/server/am/ProcessStatsService$2;-><init>(Lcom/android/server/am/ProcessStatsService;J)V
-PLcom/android/server/am/ProcessStatsService$2;->run()V
+HPLcom/android/server/am/ProcessStatsService$2;->run()V
 PLcom/android/server/am/ProcessStatsService$4;-><init>(Lcom/android/server/am/ProcessStatsService;Ljava/lang/String;[Landroid/os/ParcelFileDescriptor;[B)V
 PLcom/android/server/am/ProcessStatsService$4;->run()V
 HSPLcom/android/server/am/ProcessStatsService;-><clinit>()V
@@ -8101,7 +8506,7 @@
 HSPLcom/android/server/am/ProcessStatsService;->isMemFactorLowered()Z
 HPLcom/android/server/am/ProcessStatsService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 HPLcom/android/server/am/ProcessStatsService;->performWriteState(J)V
-PLcom/android/server/am/ProcessStatsService;->readLocked(Lcom/android/internal/app/procstats/ProcessStats;Landroid/util/AtomicFile;)Z
+HPLcom/android/server/am/ProcessStatsService;->readLocked(Lcom/android/internal/app/procstats/ProcessStats;Landroid/util/AtomicFile;)Z
 HSPLcom/android/server/am/ProcessStatsService;->setMemFactorLocked(IZJ)Z
 HSPLcom/android/server/am/ProcessStatsService;->shouldWriteNowLocked(J)Z
 PLcom/android/server/am/ProcessStatsService;->shutdownLocked()V
@@ -8148,7 +8553,7 @@
 PLcom/android/server/am/ServiceRecord$3;-><init>(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;II)V
 HPLcom/android/server/am/ServiceRecord$3;->run()V
 HSPLcom/android/server/am/ServiceRecord$StartItem;-><init>(Lcom/android/server/am/ServiceRecord;ZILandroid/content/Intent;Lcom/android/server/uri/NeededUriGrants;I)V
-PLcom/android/server/am/ServiceRecord$StartItem;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JJ)V
+HPLcom/android/server/am/ServiceRecord$StartItem;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JJ)V
 PLcom/android/server/am/ServiceRecord$StartItem;->removeUriPermissionsLocked()V
 PLcom/android/server/am/ServiceRecord$StartItem;->toString()Ljava/lang/String;
 HSPLcom/android/server/am/ServiceRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;Landroid/content/ComponentName;Landroid/content/ComponentName;Ljava/lang/String;ILandroid/content/Intent$FilterComparison;Landroid/content/pm/ServiceInfo;ZLjava/lang/Runnable;)V
@@ -8221,6 +8626,8 @@
 PLcom/android/server/am/UserController$5;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
 PLcom/android/server/am/UserController$6;-><init>(Lcom/android/server/am/UserController;)V
 PLcom/android/server/am/UserController$6;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
+PLcom/android/server/am/UserController$7;-><init>(Lcom/android/server/am/UserController;JLjava/lang/String;Landroid/util/ArraySet;Ljava/util/concurrent/atomic/AtomicInteger;Lcom/android/server/am/UserState;II)V
+PLcom/android/server/am/UserController$7;->sendResult(Landroid/os/Bundle;)V
 PLcom/android/server/am/UserController$Injector$1;-><init>(Lcom/android/server/am/UserController$Injector;Lcom/android/server/am/ActivityManagerService;ILcom/android/internal/util/ProgressReporter;ZLjava/lang/Runnable;)V
 PLcom/android/server/am/UserController$Injector$1;->onFinished()V
 HSPLcom/android/server/am/UserController$Injector;-><init>(Lcom/android/server/am/ActivityManagerService;)V
@@ -8230,6 +8637,7 @@
 HSPLcom/android/server/am/UserController$Injector;->broadcastIntent(Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIII)I
 HSPLcom/android/server/am/UserController$Injector;->checkCallingPermission(Ljava/lang/String;)I
 HSPLcom/android/server/am/UserController$Injector;->checkComponentPermission(Ljava/lang/String;IIIZ)I
+PLcom/android/server/am/UserController$Injector;->clearAllLockedTasks(Ljava/lang/String;)V
 PLcom/android/server/am/UserController$Injector;->clearBroadcastQueueForUser(I)V
 HSPLcom/android/server/am/UserController$Injector;->getContext()Landroid/content/Context;
 HSPLcom/android/server/am/UserController$Injector;->getHandler(Landroid/os/Handler$Callback;)Landroid/os/Handler;
@@ -8248,11 +8656,16 @@
 PLcom/android/server/am/UserController$Injector;->lambda$startUserWidgets$0(Landroid/appwidget/AppWidgetManagerInternal;I)V
 PLcom/android/server/am/UserController$Injector;->loadUserRecents(I)V
 HSPLcom/android/server/am/UserController$Injector;->reportCurWakefulnessUsageEvent()V
+PLcom/android/server/am/UserController$Injector;->reportGlobalUsageEventLocked(I)V
 PLcom/android/server/am/UserController$Injector;->sendPreBootBroadcast(IZLjava/lang/Runnable;)V
+PLcom/android/server/am/UserController$Injector;->showUserSwitchingDialog(Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/am/UserController$Injector;->stackSupervisorRemoveUser(I)V
+PLcom/android/server/am/UserController$Injector;->stackSupervisorSwitchUser(ILcom/android/server/am/UserState;)Z
+PLcom/android/server/am/UserController$Injector;->startHomeActivity(ILjava/lang/String;)V
 PLcom/android/server/am/UserController$Injector;->startPersistentApps(I)V
 PLcom/android/server/am/UserController$Injector;->startUserWidgets(I)V
 PLcom/android/server/am/UserController$Injector;->systemServiceManagerCleanupUser(I)V
+PLcom/android/server/am/UserController$Injector;->updateUserConfiguration()V
 HSPLcom/android/server/am/UserController$UserProgressListener;-><init>()V
 HSPLcom/android/server/am/UserController$UserProgressListener;-><init>(Lcom/android/server/am/UserController$1;)V
 PLcom/android/server/am/UserController$UserProgressListener;->onFinished(ILandroid/os/Bundle;)V
@@ -8262,12 +8675,17 @@
 HSPLcom/android/server/am/UserController;-><init>(Lcom/android/server/am/UserController$Injector;)V
 PLcom/android/server/am/UserController;->access$100(Lcom/android/server/am/UserController;)Lcom/android/server/am/UserController$Injector;
 PLcom/android/server/am/UserController;->access$200(Lcom/android/server/am/UserController;)Landroid/os/Handler;
+PLcom/android/server/am/UserController;->access$300(Lcom/android/server/am/UserController;)Ljava/lang/Object;
+PLcom/android/server/am/UserController;->access$400(Lcom/android/server/am/UserController;)Landroid/util/ArraySet;
 HPLcom/android/server/am/UserController;->canInteractWithAcrossProfilesPermission(IZII)Z
 HPLcom/android/server/am/UserController;->canInteractWithAcrossProfilesPermission(IZIILjava/lang/String;)Z
 HSPLcom/android/server/am/UserController;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/UserController;->continueUserSwitch(Lcom/android/server/am/UserState;II)V
 HPLcom/android/server/am/UserController;->dispatchForegroundProfileChanged(I)V
 PLcom/android/server/am/UserController;->dispatchLockedBootComplete(I)V
 PLcom/android/server/am/UserController;->dispatchUserLocking(ILjava/util/List;)V
+PLcom/android/server/am/UserController;->dispatchUserSwitch(Lcom/android/server/am/UserState;II)V
+PLcom/android/server/am/UserController;->dispatchUserSwitchComplete(I)V
 HPLcom/android/server/am/UserController;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/am/UserController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 PLcom/android/server/am/UserController;->enforceShellRestriction(Ljava/lang/String;I)V
@@ -8280,6 +8698,7 @@
 PLcom/android/server/am/UserController;->finishUserStopped(Lcom/android/server/am/UserState;Z)V
 PLcom/android/server/am/UserController;->finishUserStopping(ILcom/android/server/am/UserState;)V
 PLcom/android/server/am/UserController;->finishUserStopping(ILcom/android/server/am/UserState;Z)V
+PLcom/android/server/am/UserController;->finishUserSwitch(Lcom/android/server/am/UserState;)V
 PLcom/android/server/am/UserController;->finishUserUnlocked(Lcom/android/server/am/UserState;)V
 PLcom/android/server/am/UserController;->finishUserUnlockedCompleted(Lcom/android/server/am/UserState;)V
 HPLcom/android/server/am/UserController;->finishUserUnlocking(Lcom/android/server/am/UserState;)Z
@@ -8290,8 +8709,11 @@
 HSPLcom/android/server/am/UserController;->getCurrentUser()Landroid/content/pm/UserInfo;
 HSPLcom/android/server/am/UserController;->getCurrentUserId()I
 PLcom/android/server/am/UserController;->getMaxRunningUsers()I
+PLcom/android/server/am/UserController;->getRunningUsersLU()Ljava/util/List;
 HSPLcom/android/server/am/UserController;->getStartedUserArray()[I
 HSPLcom/android/server/am/UserController;->getStartedUserState(I)Lcom/android/server/am/UserState;
+PLcom/android/server/am/UserController;->getSwitchingFromSystemUserMessage()Ljava/lang/String;
+PLcom/android/server/am/UserController;->getSwitchingToSystemUserMessage()Ljava/lang/String;
 HSPLcom/android/server/am/UserController;->getUserInfo(I)Landroid/content/pm/UserInfo;
 HSPLcom/android/server/am/UserController;->getUsers()[I
 PLcom/android/server/am/UserController;->getUsersToStopLU(I)[I
@@ -8299,6 +8721,7 @@
 HPLcom/android/server/am/UserController;->handleMessage(Landroid/os/Message;)Z
 HSPLcom/android/server/am/UserController;->hasStartedUserState(I)Z
 PLcom/android/server/am/UserController;->hasUserRestriction(Ljava/lang/String;I)Z
+PLcom/android/server/am/UserController;->isCallingOnHandlerThread()Z
 HPLcom/android/server/am/UserController;->isCurrentProfile(I)Z
 PLcom/android/server/am/UserController;->isCurrentUserLU(I)Z
 HSPLcom/android/server/am/UserController;->isSameProfileGroup(II)Z
@@ -8306,35 +8729,47 @@
 HSPLcom/android/server/am/UserController;->isUserRunning(II)Z
 PLcom/android/server/am/UserController;->lambda$dispatchUserLocking$6$UserController(ILjava/util/List;)V
 PLcom/android/server/am/UserController;->lambda$finishUserStopped$6$UserController(IILjava/util/ArrayList;)V
+PLcom/android/server/am/UserController;->lambda$finishUserSwitch$0$UserController(Lcom/android/server/am/UserState;)V
 PLcom/android/server/am/UserController;->lambda$finishUserUnlocked$2$UserController(Lcom/android/server/am/UserState;)V
 PLcom/android/server/am/UserController;->lambda$finishUserUnlockedCompleted$3$UserController(Landroid/content/Intent;III)V
 PLcom/android/server/am/UserController;->lambda$finishUserUnlocking$1$UserController(ILcom/android/server/am/UserState;)V
 PLcom/android/server/am/UserController;->lambda$handleMessage$9$UserController(I)V
 PLcom/android/server/am/UserController;->lambda$scheduleStartProfiles$7$UserController()V
+PLcom/android/server/am/UserController;->lambda$startUserInternal$8$UserController(IZLandroid/os/IProgressListener;)V
 PLcom/android/server/am/UserController;->lambda$stopSingleUserLU$5$UserController(ILcom/android/server/am/UserState;)V
 PLcom/android/server/am/UserController;->lambda$stopSingleUserLU$5$UserController(ILcom/android/server/am/UserState;Z)V
 PLcom/android/server/am/UserController;->maybeUnlockUser(I)Z
-PLcom/android/server/am/UserController;->notifyFinished(ILandroid/os/IProgressListener;)V
+PLcom/android/server/am/UserController;->moveUserToForeground(Lcom/android/server/am/UserState;II)V
+HPLcom/android/server/am/UserController;->notifyFinished(ILandroid/os/IProgressListener;)V
 HSPLcom/android/server/am/UserController;->onSystemReady()V
 HSPLcom/android/server/am/UserController;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
 PLcom/android/server/am/UserController;->scheduleStartProfiles()V
 PLcom/android/server/am/UserController;->sendBootCompleted(Landroid/content/IIntentReceiver;)V
+PLcom/android/server/am/UserController;->sendContinueUserSwitchLU(Lcom/android/server/am/UserState;II)V
 HPLcom/android/server/am/UserController;->sendForegroundProfileChanged(I)V
 HSPLcom/android/server/am/UserController;->sendUserSwitchBroadcasts(II)V
 HSPLcom/android/server/am/UserController;->setInitialConfig(ZIZ)V
 HSPLcom/android/server/am/UserController;->setSwitchingFromSystemUserMessage(Ljava/lang/String;)V
 HSPLcom/android/server/am/UserController;->setSwitchingToSystemUserMessage(Ljava/lang/String;)V
 HSPLcom/android/server/am/UserController;->shouldConfirmCredentials(I)Z
+PLcom/android/server/am/UserController;->showUserSwitchDialog(Landroid/util/Pair;)V
 PLcom/android/server/am/UserController;->startProfiles()V
 PLcom/android/server/am/UserController;->startUser(IZ)Z
 PLcom/android/server/am/UserController;->startUser(IZLandroid/os/IProgressListener;)Z
+PLcom/android/server/am/UserController;->startUserInForeground(I)V
 PLcom/android/server/am/UserController;->startUserInternal(IZLandroid/os/IProgressListener;Lcom/android/server/utils/TimingsTraceAndSlog;)Z
+PLcom/android/server/am/UserController;->stopBackgroundUsersIfEnforced(I)V
+PLcom/android/server/am/UserController;->stopGuestOrEphemeralUserIfBackground(I)V
+PLcom/android/server/am/UserController;->stopRunningUsersLU(I)V
 PLcom/android/server/am/UserController;->stopSingleUserLU(ILandroid/app/IStopUserCallback;Lcom/android/server/am/UserState$KeyEvictedCallback;)V
 PLcom/android/server/am/UserController;->stopSingleUserLU(IZLandroid/app/IStopUserCallback;Lcom/android/server/am/UserState$KeyEvictedCallback;)V
 PLcom/android/server/am/UserController;->stopUser(IZLandroid/app/IStopUserCallback;Lcom/android/server/am/UserState$KeyEvictedCallback;)I
 PLcom/android/server/am/UserController;->stopUser(IZZLandroid/app/IStopUserCallback;Lcom/android/server/am/UserState$KeyEvictedCallback;)I
 PLcom/android/server/am/UserController;->stopUsersLU(IZLandroid/app/IStopUserCallback;Lcom/android/server/am/UserState$KeyEvictedCallback;)I
 PLcom/android/server/am/UserController;->stopUsersLU(IZZLandroid/app/IStopUserCallback;Lcom/android/server/am/UserState$KeyEvictedCallback;)I
+PLcom/android/server/am/UserController;->switchUser(I)Z
+PLcom/android/server/am/UserController;->timeoutUserSwitch(Lcom/android/server/am/UserState;II)V
+PLcom/android/server/am/UserController;->timeoutUserSwitchCallbacks(II)V
 HPLcom/android/server/am/UserController;->unlockUser(I[B[BLandroid/os/IProgressListener;)Z
 HPLcom/android/server/am/UserController;->unlockUserCleared(I[B[BLandroid/os/IProgressListener;)Z
 HPLcom/android/server/am/UserController;->unregisterUserSwitchObserver(Landroid/app/IUserSwitchObserver;)V
@@ -8350,6 +8785,12 @@
 PLcom/android/server/am/UserState;->setState(II)Z
 PLcom/android/server/am/UserState;->stateToProtoEnum(I)I
 HPLcom/android/server/am/UserState;->stateToString(I)Ljava/lang/String;
+PLcom/android/server/am/UserSwitchingDialog$1;-><init>(Lcom/android/server/am/UserSwitchingDialog;)V
+PLcom/android/server/am/UserSwitchingDialog;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/Context;Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;ZLjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/UserSwitchingDialog;->inflateContent()V
+PLcom/android/server/am/UserSwitchingDialog;->onWindowShown()V
+PLcom/android/server/am/UserSwitchingDialog;->show()V
+PLcom/android/server/am/UserSwitchingDialog;->startUser()V
 PLcom/android/server/appbinding/-$$Lambda$AppBindingService$C9KbqX5cmsR3luJhFKt2Gpj0uLc;-><init>(Ljava/io/PrintWriter;)V
 PLcom/android/server/appbinding/-$$Lambda$AppBindingService$C9KbqX5cmsR3luJhFKt2Gpj0uLc;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/appbinding/-$$Lambda$AppBindingService$D_3boeCn8eAANOp2ZDk6OC2rNaI;-><init>(Lcom/android/server/appbinding/AppBindingService;)V
@@ -8391,7 +8832,7 @@
 HSPLcom/android/server/appbinding/AppBindingService;->bindServicesLocked(ILcom/android/server/appbinding/finders/AppServiceFinder;Ljava/lang/String;)V
 PLcom/android/server/appbinding/AppBindingService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/appbinding/AppBindingService;->findConnectionLock(ILcom/android/server/appbinding/finders/AppServiceFinder;)Lcom/android/server/appbinding/AppBindingService$AppServiceConnection;
-PLcom/android/server/appbinding/AppBindingService;->findFinderLocked(ILjava/lang/String;)Lcom/android/server/appbinding/finders/AppServiceFinder;
+HPLcom/android/server/appbinding/AppBindingService;->findFinderLocked(ILjava/lang/String;)Lcom/android/server/appbinding/finders/AppServiceFinder;
 HSPLcom/android/server/appbinding/AppBindingService;->forAllAppsLocked(Ljava/util/function/Consumer;)V
 PLcom/android/server/appbinding/AppBindingService;->handlePackageAddedReplacing(Ljava/lang/String;I)V
 PLcom/android/server/appbinding/AppBindingService;->lambda$D_3boeCn8eAANOp2ZDk6OC2rNaI(Lcom/android/server/appbinding/AppBindingService;Lcom/android/server/appbinding/finders/AppServiceFinder;I)V
@@ -8431,17 +8872,17 @@
 PLcom/android/server/appop/-$$Lambda$6fg-14Ev2L834_Mi1dl7XNuM-aI;-><clinit>()V
 PLcom/android/server/appop/-$$Lambda$6fg-14Ev2L834_Mi1dl7XNuM-aI;-><init>()V
 PLcom/android/server/appop/-$$Lambda$6fg-14Ev2L834_Mi1dl7XNuM-aI;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/appop/-$$Lambda$9PbhNRcJKpFejdnfSDhPa_VHrMY;-><clinit>()V
-PLcom/android/server/appop/-$$Lambda$9PbhNRcJKpFejdnfSDhPa_VHrMY;-><init>()V
-PLcom/android/server/appop/-$$Lambda$9PbhNRcJKpFejdnfSDhPa_VHrMY;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/appop/-$$Lambda$AppOpsService$1CB62TNmPVdrHvls01D5LKYSp4w;-><clinit>()V
-PLcom/android/server/appop/-$$Lambda$AppOpsService$1CB62TNmPVdrHvls01D5LKYSp4w;-><init>()V
-HPLcom/android/server/appop/-$$Lambda$AppOpsService$1CB62TNmPVdrHvls01D5LKYSp4w;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/appop/-$$Lambda$9PbhNRcJKpFejdnfSDhPa_VHrMY;-><clinit>()V
+HSPLcom/android/server/appop/-$$Lambda$9PbhNRcJKpFejdnfSDhPa_VHrMY;-><init>()V
+HSPLcom/android/server/appop/-$$Lambda$9PbhNRcJKpFejdnfSDhPa_VHrMY;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/appop/-$$Lambda$AppOpsService$1CB62TNmPVdrHvls01D5LKYSp4w;-><clinit>()V
+HSPLcom/android/server/appop/-$$Lambda$AppOpsService$1CB62TNmPVdrHvls01D5LKYSp4w;-><init>()V
+HSPLcom/android/server/appop/-$$Lambda$AppOpsService$1CB62TNmPVdrHvls01D5LKYSp4w;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/appop/-$$Lambda$AppOpsService$AfBLuTvVESlqN91IyRX84hMV5nE;-><clinit>()V
 PLcom/android/server/appop/-$$Lambda$AppOpsService$AfBLuTvVESlqN91IyRX84hMV5nE;-><init>()V
 HPLcom/android/server/appop/-$$Lambda$AppOpsService$AfBLuTvVESlqN91IyRX84hMV5nE;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/appop/-$$Lambda$AppOpsService$CVMS-lLMRyZYA1tmqvyuOloKBu0;-><clinit>()V
-PLcom/android/server/appop/-$$Lambda$AppOpsService$CVMS-lLMRyZYA1tmqvyuOloKBu0;-><init>()V
+HSPLcom/android/server/appop/-$$Lambda$AppOpsService$CVMS-lLMRyZYA1tmqvyuOloKBu0;-><clinit>()V
+HSPLcom/android/server/appop/-$$Lambda$AppOpsService$CVMS-lLMRyZYA1tmqvyuOloKBu0;-><init>()V
 HPLcom/android/server/appop/-$$Lambda$AppOpsService$CVMS-lLMRyZYA1tmqvyuOloKBu0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/appop/-$$Lambda$AppOpsService$FYLTtxqrHmv8Y5UdZ9ybXKsSJhs;-><clinit>()V
 HSPLcom/android/server/appop/-$$Lambda$AppOpsService$FYLTtxqrHmv8Y5UdZ9ybXKsSJhs;-><init>()V
@@ -8460,22 +8901,34 @@
 PLcom/android/server/appop/-$$Lambda$AppOpsService$ac4Ra3Yhj0OQzvkaL2dLbsuLAmQ;-><clinit>()V
 PLcom/android/server/appop/-$$Lambda$AppOpsService$ac4Ra3Yhj0OQzvkaL2dLbsuLAmQ;-><init>()V
 HPLcom/android/server/appop/-$$Lambda$AppOpsService$ac4Ra3Yhj0OQzvkaL2dLbsuLAmQ;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/appop/-$$Lambda$AppOpsService$mWtZBFm5Ggi69Tx6HVKXLYiPWt4;-><init>(Landroid/app/AsyncNotedAppOp;[ZILjava/lang/String;ILjava/lang/String;)V
+HPLcom/android/server/appop/-$$Lambda$AppOpsService$mWtZBFm5Ggi69Tx6HVKXLYiPWt4;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/appop/-$$Lambda$AppOpsService$zN6prp9KCBI96qJ_QVmqGh-kpB8;-><init>(Lcom/android/server/appop/AppOpsService;Ljava/lang/String;Ljava/lang/String;I)V
 HSPLcom/android/server/appop/-$$Lambda$AppOpsService$zN6prp9KCBI96qJ_QVmqGh-kpB8;->run()V
 PLcom/android/server/appop/-$$Lambda$HistoricalRegistry$dJrtb4M71TzV6sx9vPEImQG_akU;-><clinit>()V
 PLcom/android/server/appop/-$$Lambda$HistoricalRegistry$dJrtb4M71TzV6sx9vPEImQG_akU;-><init>()V
 HPLcom/android/server/appop/-$$Lambda$HistoricalRegistry$dJrtb4M71TzV6sx9vPEImQG_akU;->accept(Ljava/lang/Object;)V
-PLcom/android/server/appop/AppOpsService$1$1;-><init>(Lcom/android/server/appop/AppOpsService$1;)V
-PLcom/android/server/appop/AppOpsService$1$1;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/appop/AppOpsService$1$1;->doInBackground([Ljava/lang/Void;)Ljava/lang/Void;
+HPLcom/android/server/appop/AppOpsService$1$1;-><init>(Lcom/android/server/appop/AppOpsService$1;)V
+HPLcom/android/server/appop/AppOpsService$1$1;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/appop/AppOpsService$1$1;->doInBackground([Ljava/lang/Void;)Ljava/lang/Void;
 HSPLcom/android/server/appop/AppOpsService$1;-><init>(Lcom/android/server/appop/AppOpsService;)V
-PLcom/android/server/appop/AppOpsService$1;->run()V
+HPLcom/android/server/appop/AppOpsService$1;->run()V
 HSPLcom/android/server/appop/AppOpsService$2;-><init>(Lcom/android/server/appop/AppOpsService;)V
 HSPLcom/android/server/appop/AppOpsService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/appop/AppOpsService$3;-><init>(Lcom/android/server/appop/AppOpsService;)V
-PLcom/android/server/appop/AppOpsService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HPLcom/android/server/appop/AppOpsService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/appop/AppOpsService$4;-><init>(Lcom/android/server/appop/AppOpsService;)V
 PLcom/android/server/appop/AppOpsService$4;->getPackageTrustedToInstallApps(Ljava/lang/String;I)I
+PLcom/android/server/appop/AppOpsService$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/appop/AppOpsService$5;-><init>(Lcom/android/server/appop/AppOpsService;Ljava/util/List;)V
+HSPLcom/android/server/appop/AppOpsService$5;->run()V
+HSPLcom/android/server/appop/AppOpsService$6;-><init>(Lcom/android/server/appop/AppOpsService;)V
+PLcom/android/server/appop/AppOpsService$8;-><init>(Lcom/android/server/appop/AppOpsService;Landroid/util/Pair;)V
+PLcom/android/server/appop/AppOpsService$8;->onCallbackDied(Landroid/os/IInterface;)V
+PLcom/android/server/appop/AppOpsService$8;->onCallbackDied(Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V
+HSPLcom/android/server/appop/AppOpsService$9;-><init>(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;)V
+HSPLcom/android/server/appop/AppOpsService$9;->accept(Landroid/app/AppOpsManager$HistoricalOps;)V
+HSPLcom/android/server/appop/AppOpsService$9;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/appop/AppOpsService$ActiveCallback;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/internal/app/IAppOpsActiveCallback;III)V
 PLcom/android/server/appop/AppOpsService$ActiveCallback;->binderDied()V
 HPLcom/android/server/appop/AppOpsService$ActiveCallback;->destroy()V
@@ -8483,9 +8936,11 @@
 HSPLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;-><init>(Lcom/android/server/appop/AppOpsService;)V
 HSPLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService$1;)V
 HSPLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->setDeviceAndProfileOwners(Landroid/util/SparseIntArray;)V
+PLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->setModeFromPermissionPolicy(IILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
 PLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->setModeIgnoringCallback(IILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
+PLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->setUidModeFromPermissionPolicy(IIILcom/android/internal/app/IAppOpsCallback;)V
 PLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->setUidModeIgnoringCallback(IIILcom/android/internal/app/IAppOpsCallback;)V
-PLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->updateAppWidgetVisibility(Landroid/util/SparseArray;Z)V
+HPLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->updateAppWidgetVisibility(Landroid/util/SparseArray;Z)V
 PLcom/android/server/appop/AppOpsService$ChangeRec;-><init>(IILjava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService$ClientRestrictionState;-><init>(Lcom/android/server/appop/AppOpsService;Landroid/os/IBinder;)V
 HSPLcom/android/server/appop/AppOpsService$ClientRestrictionState;->destroy()V
@@ -8505,6 +8960,7 @@
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;-><init>(Lcom/android/server/appop/AppOpsService;Ljava/lang/String;Lcom/android/server/appop/AppOpsService$Op;)V
 HPLcom/android/server/appop/AppOpsService$FeatureOp;->access$1200(Lcom/android/server/appop/AppOpsService$FeatureOp;)Landroid/util/ArrayMap;
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;->access$1300(Lcom/android/server/appop/AppOpsService$FeatureOp;)Landroid/util/ArrayMap;
+PLcom/android/server/appop/AppOpsService$FeatureOp;->access$1600(Lcom/android/server/appop/AppOpsService$FeatureOp;)Landroid/util/ArrayMap;
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;->accessed(ILjava/lang/String;Ljava/lang/String;II)V
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;->accessed(JILjava/lang/String;Ljava/lang/String;II)V
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;->accessed(JJILjava/lang/String;Ljava/lang/String;II)V
@@ -8527,7 +8983,7 @@
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;->running(JJII)V
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;->started(JII)V
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;->started(Landroid/os/IBinder;I)V
-HPLcom/android/server/appop/AppOpsService$FeatureOp;->started(Landroid/os/IBinder;IZ)V
+HSPLcom/android/server/appop/AppOpsService$FeatureOp;->started(Landroid/os/IBinder;IZ)V
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;->updateAccessTimeAndDuration(JJII)V
 HSPLcom/android/server/appop/AppOpsService$FeatureOp;->updateProxyState(JILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService$InProgressStartOpEvent;-><init>(JJLandroid/os/IBinder;Ljava/lang/Runnable;I)V
@@ -8551,7 +9007,7 @@
 PLcom/android/server/appop/AppOpsService$ModeCallback;->unlinkToDeath()V
 PLcom/android/server/appop/AppOpsService$NotedCallback;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/internal/app/IAppOpsNotedCallback;III)V
 PLcom/android/server/appop/AppOpsService$NotedCallback;->binderDied()V
-PLcom/android/server/appop/AppOpsService$NotedCallback;->destroy()V
+HPLcom/android/server/appop/AppOpsService$NotedCallback;->destroy()V
 PLcom/android/server/appop/AppOpsService$NotedCallback;->toString()Ljava/lang/String;
 HSPLcom/android/server/appop/AppOpsService$Op;-><init>(Lcom/android/server/appop/AppOpsService$UidState;Ljava/lang/String;I)V
 HSPLcom/android/server/appop/AppOpsService$Op;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService$UidState;Ljava/lang/String;II)V
@@ -8583,11 +9039,19 @@
 HSPLcom/android/server/appop/AppOpsService;-><init>(Ljava/io/File;Landroid/os/Handler;Landroid/content/Context;)V
 PLcom/android/server/appop/AppOpsService;->access$1000()[I
 PLcom/android/server/appop/AppOpsService;->access$1100()[I
-PLcom/android/server/appop/AppOpsService;->access$1100(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;)V
+HPLcom/android/server/appop/AppOpsService;->access$1100(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;)V
 HPLcom/android/server/appop/AppOpsService;->access$1200(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;)V
-PLcom/android/server/appop/AppOpsService;->access$1900(Lcom/android/server/appop/AppOpsService;Landroid/util/SparseArray;Z)V
+PLcom/android/server/appop/AppOpsService;->access$1300(Lcom/android/server/appop/AppOpsService;Landroid/content/pm/PackageInfo;)Z
+PLcom/android/server/appop/AppOpsService;->access$1400(Lcom/android/server/appop/AppOpsService;)Landroid/util/ArraySet;
+HSPLcom/android/server/appop/AppOpsService;->access$1402(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;)Landroid/util/ArraySet;
+HSPLcom/android/server/appop/AppOpsService;->access$1500(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;)V
+PLcom/android/server/appop/AppOpsService;->access$1700(Lcom/android/server/appop/AppOpsService;)Landroid/util/ArrayMap;
+HPLcom/android/server/appop/AppOpsService;->access$1900(Lcom/android/server/appop/AppOpsService;Landroid/util/SparseArray;Z)V
 PLcom/android/server/appop/AppOpsService;->access$2000(Lcom/android/server/appop/AppOpsService;IIILcom/android/internal/app/IAppOpsCallback;)V
 PLcom/android/server/appop/AppOpsService;->access$2100(Lcom/android/server/appop/AppOpsService;IILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
+PLcom/android/server/appop/AppOpsService;->access$2200(Lcom/android/server/appop/AppOpsService;Landroid/util/SparseArray;Z)V
+PLcom/android/server/appop/AppOpsService;->access$2300(Lcom/android/server/appop/AppOpsService;IIILcom/android/internal/app/IAppOpsCallback;)V
+PLcom/android/server/appop/AppOpsService;->access$2400(Lcom/android/server/appop/AppOpsService;IILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
 PLcom/android/server/appop/AppOpsService;->access$300()[I
 PLcom/android/server/appop/AppOpsService;->access$300(Lcom/android/server/appop/AppOpsService;)Landroid/app/ActivityManagerInternal;
 HSPLcom/android/server/appop/AppOpsService;->access$300(Lcom/android/server/appop/AppOpsService;)Lcom/android/server/appop/AppOpsService$OpEventProxyInfoPool;
@@ -8613,18 +9077,20 @@
 HSPLcom/android/server/appop/AppOpsService;->checkSystemUid(Ljava/lang/String;)V
 HPLcom/android/server/appop/AppOpsService;->collectAsyncNotedOp(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->collectOps(Lcom/android/server/appop/AppOpsService$Ops;[I)Ljava/util/ArrayList;
+PLcom/android/server/appop/AppOpsService;->collectRuntimeAppOpAccessMessage()Landroid/app/RuntimeAppOpAccessMessage;
 HSPLcom/android/server/appop/AppOpsService;->commitUidPendingStateLocked(Lcom/android/server/appop/AppOpsService$UidState;)V
 HPLcom/android/server/appop/AppOpsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/appop/AppOpsService;->dumpStatesLocked(Ljava/io/PrintWriter;JLcom/android/server/appop/AppOpsService$Op;JLjava/text/SimpleDateFormat;Ljava/util/Date;Ljava/lang/String;)V
 HPLcom/android/server/appop/AppOpsService;->dumpStatesLocked(Ljava/io/PrintWriter;JLcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;JLjava/text/SimpleDateFormat;Ljava/util/Date;Ljava/lang/String;)V
 HPLcom/android/server/appop/AppOpsService;->dumpStatesLocked(Ljava/io/PrintWriter;Ljava/lang/String;IJLcom/android/server/appop/AppOpsService$Op;JLjava/text/SimpleDateFormat;Ljava/util/Date;Ljava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->enforceManageAppOpsModes(III)V
-HPLcom/android/server/appop/AppOpsService;->ensureHistoricalOpRequestIsValid(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;IJJI)V
+HSPLcom/android/server/appop/AppOpsService;->ensureHistoricalOpRequestIsValid(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;IJJI)V
 HSPLcom/android/server/appop/AppOpsService;->evalAllForegroundOpsLocked()V
+PLcom/android/server/appop/AppOpsService;->extractAsyncOps(Ljava/lang/String;)Ljava/util/List;
 HSPLcom/android/server/appop/AppOpsService;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->finishOperationLocked(Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;Z)V
 HPLcom/android/server/appop/AppOpsService;->getAsyncNotedOpsKey(Ljava/lang/String;I)Landroid/util/Pair;
-HPLcom/android/server/appop/AppOpsService;->getHistoricalOps(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;IJJILandroid/os/RemoteCallback;)V
+HSPLcom/android/server/appop/AppOpsService;->getHistoricalOps(ILjava/lang/String;Ljava/lang/String;Ljava/util/List;IJJILandroid/os/RemoteCallback;)V
 PLcom/android/server/appop/AppOpsService;->getHistoricalOps(ILjava/lang/String;Ljava/util/List;JJILandroid/os/RemoteCallback;)V
 HSPLcom/android/server/appop/AppOpsService;->getOpEntryForResult(Lcom/android/server/appop/AppOpsService$Op;J)Landroid/app/AppOpsManager$OpEntry;
 HSPLcom/android/server/appop/AppOpsService;->getOpLocked(IILjava/lang/String;Ljava/lang/String;ZZ)Lcom/android/server/appop/AppOpsService$Op;
@@ -8636,23 +9102,29 @@
 HSPLcom/android/server/appop/AppOpsService;->getOpsRawLocked(ILjava/lang/String;ZZ)Lcom/android/server/appop/AppOpsService$Ops;
 HSPLcom/android/server/appop/AppOpsService;->getOpsRawNoVerifyLocked(ILjava/lang/String;Ljava/lang/String;ZZ)Lcom/android/server/appop/AppOpsService$Ops;
 HSPLcom/android/server/appop/AppOpsService;->getOpsRawNoVerifyLocked(ILjava/lang/String;ZZ)Lcom/android/server/appop/AppOpsService$Ops;
+HSPLcom/android/server/appop/AppOpsService;->getPackageNamesForSampling()Ljava/util/List;
 HSPLcom/android/server/appop/AppOpsService;->getPackagesForOps([I)Ljava/util/List;
 HSPLcom/android/server/appop/AppOpsService;->getPackagesForUid(I)[Ljava/lang/String;
+HSPLcom/android/server/appop/AppOpsService;->getRuntimeAppOpsList()Ljava/util/List;
 HPLcom/android/server/appop/AppOpsService;->getSwitchOpToOps()Landroid/util/SparseArray;
 HSPLcom/android/server/appop/AppOpsService;->getToken(Landroid/os/IBinder;)Landroid/os/IBinder;
 HSPLcom/android/server/appop/AppOpsService;->getUidStateLocked(IZ)Lcom/android/server/appop/AppOpsService$UidState;
+HSPLcom/android/server/appop/AppOpsService;->initializeRarelyUsedPackagesList(Landroid/util/ArraySet;)V
+HSPLcom/android/server/appop/AppOpsService;->isIgnoredAppOp(I)Z
 HSPLcom/android/server/appop/AppOpsService;->isOpRestrictedDueToSuspend(ILjava/lang/String;I)Z
 HSPLcom/android/server/appop/AppOpsService;->isOpRestrictedLocked(IILjava/lang/String;Ljava/lang/String;Z)Z
 HSPLcom/android/server/appop/AppOpsService;->isOpRestrictedLocked(IILjava/lang/String;Z)Z
 HPLcom/android/server/appop/AppOpsService;->isOperationActive(IILjava/lang/String;)Z
-HPLcom/android/server/appop/AppOpsService;->lambda$1CB62TNmPVdrHvls01D5LKYSp4w(Lcom/android/server/appop/AppOpsService;IIZLcom/android/internal/app/IAppOpsCallback;)V
+HSPLcom/android/server/appop/AppOpsService;->isSamplingTarget(Landroid/content/pm/PackageInfo;)Z
+HSPLcom/android/server/appop/AppOpsService;->lambda$1CB62TNmPVdrHvls01D5LKYSp4w(Lcom/android/server/appop/AppOpsService;IIZLcom/android/internal/app/IAppOpsCallback;)V
 HPLcom/android/server/appop/AppOpsService;->lambda$AfBLuTvVESlqN91IyRX84hMV5nE(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;I)V
 HPLcom/android/server/appop/AppOpsService;->lambda$CVMS-lLMRyZYA1tmqvyuOloKBu0(Lcom/android/server/appop/AppOpsService;JI)V
 HSPLcom/android/server/appop/AppOpsService;->lambda$FYLTtxqrHmv8Y5UdZ9ybXKsSJhs(Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService$ModeCallback;IILjava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->lambda$GUeKjlbzT65s86vaxy5gvOajuhw(Lcom/android/server/appop/AppOpsService;II)V
 PLcom/android/server/appop/AppOpsService;->lambda$NDUi03ZZuuR42-RDEIQ0UELKycc(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;)V
 HPLcom/android/server/appop/AppOpsService;->lambda$ac4Ra3Yhj0OQzvkaL2dLbsuLAmQ(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;Z)V
-PLcom/android/server/appop/AppOpsService;->lambda$getHistoricalOps$1(Landroid/os/RemoteCallback;)V
+HPLcom/android/server/appop/AppOpsService;->lambda$collectAsyncNotedOp$2(Landroid/app/AsyncNotedAppOp;[ZILjava/lang/String;ILjava/lang/String;Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V
+HPLcom/android/server/appop/AppOpsService;->lambda$getHistoricalOps$1(Landroid/os/RemoteCallback;)V
 HSPLcom/android/server/appop/AppOpsService;->lambda$systemReady$0$AppOpsService(Ljava/lang/String;Ljava/lang/String;I)V
 HPLcom/android/server/appop/AppOpsService;->noteAsyncOp(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->noteOperation(IILjava/lang/String;Ljava/lang/String;)I
@@ -8683,6 +9155,11 @@
 HSPLcom/android/server/appop/AppOpsService;->readUidOps(Lorg/xmlpull/v1/XmlPullParser;)V
 HPLcom/android/server/appop/AppOpsService;->removeUidsForUserLocked(I)V
 PLcom/android/server/appop/AppOpsService;->removeUser(I)V
+HPLcom/android/server/appop/AppOpsService;->reportRuntimeAppOpAccessMessageAndGetConfig(Ljava/lang/String;Landroid/app/SyncNotedAppOp;Ljava/lang/String;)Lcom/android/internal/app/MessageSamplingConfig;
+PLcom/android/server/appop/AppOpsService;->reportRuntimeAppOpAccessMessageAsyncLocked(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/appop/AppOpsService;->reportRuntimeAppOpAccessMessageInternalLocked(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/appop/AppOpsService;->resampleAppOpForPackageLocked(Ljava/lang/String;)V
+HSPLcom/android/server/appop/AppOpsService;->resamplePackageAndAppOpLocked(Ljava/util/List;)V
 HPLcom/android/server/appop/AppOpsService;->resetAllModes(ILjava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->resolvePackageName(ILjava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/appop/AppOpsService;->resolveUid(Ljava/lang/String;)I
@@ -8705,12 +9182,14 @@
 HSPLcom/android/server/appop/AppOpsService;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;Z)I
 HSPLcom/android/server/appop/AppOpsService;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;ZZLjava/lang/String;)I
 HPLcom/android/server/appop/AppOpsService;->startWatchingActive([ILcom/android/internal/app/IAppOpsActiveCallback;)V
+PLcom/android/server/appop/AppOpsService;->startWatchingAsyncNoted(Ljava/lang/String;Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V
 HSPLcom/android/server/appop/AppOpsService;->startWatchingMode(ILjava/lang/String;Lcom/android/internal/app/IAppOpsCallback;)V
 HSPLcom/android/server/appop/AppOpsService;->startWatchingModeWithFlags(ILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
 PLcom/android/server/appop/AppOpsService;->startWatchingNoted([ILcom/android/internal/app/IAppOpsNotedCallback;)V
 HPLcom/android/server/appop/AppOpsService;->stopWatchingActive(Lcom/android/internal/app/IAppOpsActiveCallback;)V
 HPLcom/android/server/appop/AppOpsService;->stopWatchingMode(Lcom/android/internal/app/IAppOpsCallback;)V
-PLcom/android/server/appop/AppOpsService;->stopWatchingNoted(Lcom/android/internal/app/IAppOpsNotedCallback;)V
+HPLcom/android/server/appop/AppOpsService;->stopWatchingNoted(Lcom/android/internal/app/IAppOpsNotedCallback;)V
+HPLcom/android/server/appop/AppOpsService;->switchPackageIfRarelyUsedLocked(Ljava/lang/String;)V
 HSPLcom/android/server/appop/AppOpsService;->systemReady()V
 HSPLcom/android/server/appop/AppOpsService;->uidRemoved(I)V
 HPLcom/android/server/appop/AppOpsService;->updateAppWidgetVisibility(Landroid/util/SparseArray;Z)V
@@ -8737,39 +9216,39 @@
 HSPLcom/android/server/appop/HistoricalRegistry$1;-><init>(Lcom/android/server/appop/HistoricalRegistry;Landroid/os/Handler;Landroid/content/ContentResolver;)V
 HSPLcom/android/server/appop/HistoricalRegistry$Persistence;-><clinit>()V
 HSPLcom/android/server/appop/HistoricalRegistry$Persistence;-><init>(JJ)V
-PLcom/android/server/appop/HistoricalRegistry$Persistence;->access$100(Lcom/android/server/appop/HistoricalRegistry$Persistence;Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI)V
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->access$100(Lcom/android/server/appop/HistoricalRegistry$Persistence;Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI)V
 PLcom/android/server/appop/HistoricalRegistry$Persistence;->access$100(Lcom/android/server/appop/HistoricalRegistry$Persistence;Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;[Ljava/lang/String;JJI)V
 PLcom/android/server/appop/HistoricalRegistry$Persistence;->clearHistoryDLocked()V
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->clearHistoryDLocked(ILjava/lang/String;)V
-PLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsBaseDLocked(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI)Ljava/util/LinkedList;
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsBaseDLocked(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI)Ljava/util/LinkedList;
 PLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsBaseDLocked(ILjava/lang/String;[Ljava/lang/String;JJI)Ljava/util/LinkedList;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI)V
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI)V
 PLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;[Ljava/lang/String;JJI)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsRecursiveDLocked(Ljava/io/File;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[JLjava/util/LinkedList;ILjava/util/Set;)Ljava/util/LinkedList;
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsRecursiveDLocked(Ljava/io/File;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[JLjava/util/LinkedList;ILjava/util/Set;)Ljava/util/LinkedList;
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsRecursiveDLocked(Ljava/io/File;ILjava/lang/String;[Ljava/lang/String;JJI[JLjava/util/LinkedList;ILjava/util/Set;)Ljava/util/LinkedList;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->computeGlobalIntervalBeginMillis(I)J
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->generateFile(Ljava/io/File;I)Ljava/io/File;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->getHistoricalFileNames(Ljava/io/File;)Ljava/util/Set;
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->computeGlobalIntervalBeginMillis(I)J
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->generateFile(Ljava/io/File;I)Ljava/io/File;
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->getHistoricalFileNames(Ljava/io/File;)Ljava/util/Set;
 HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->getLastPersistTimeMillisDLocked()J
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->handlePersistHistoricalOpsRecursiveDLocked(Ljava/io/File;Ljava/io/File;Ljava/util/List;Ljava/util/Set;I)V
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->normalizeSnapshotForSlotDuration(Ljava/util/List;J)V
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->persistHistoricalOpsDLocked(Ljava/util/List;)V
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalFeatureOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalFeatureOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Lorg/xmlpull/v1/XmlPullParser;[Ljava/lang/String;ID)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[J)Ljava/util/List;
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[J)Ljava/util/List;
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;ILjava/lang/String;[Ljava/lang/String;JJI[J)Ljava/util/List;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;JJILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[JILjava/util/Set;)Ljava/util/List;
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;JJILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[JILjava/util/Set;)Ljava/util/List;
 PLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;JJILjava/lang/String;[Ljava/lang/String;JJI[JILjava/util/Set;)Ljava/util/List;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalPackageOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalPackageOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalPackageOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;ID)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalUidOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;Lorg/xmlpull/v1/XmlPullParser;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalUidOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;Lorg/xmlpull/v1/XmlPullParser;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IID)Landroid/app/AppOpsManager$HistoricalOps;
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalUidOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;Lorg/xmlpull/v1/XmlPullParser;ILjava/lang/String;[Ljava/lang/String;ID)Landroid/app/AppOpsManager$HistoricalOps;
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoryDLocked()Ljava/util/List;
 PLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoryRawDLocked()Ljava/util/List;
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readStateDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;ILorg/xmlpull/v1/XmlPullParser;ID)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readStateDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;ILorg/xmlpull/v1/XmlPullParser;ID)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readeHistoricalOpsDLocked(Lorg/xmlpull/v1/XmlPullParser;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[J)Landroid/app/AppOpsManager$HistoricalOps;
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->readStateDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Ljava/lang/String;ILorg/xmlpull/v1/XmlPullParser;ID)Landroid/app/AppOpsManager$HistoricalOps;
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;->readeHistoricalOpsDLocked(Lorg/xmlpull/v1/XmlPullParser;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJI[J)Landroid/app/AppOpsManager$HistoricalOps;
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readeHistoricalOpsDLocked(Lorg/xmlpull/v1/XmlPullParser;ILjava/lang/String;[Ljava/lang/String;JJI[J)Landroid/app/AppOpsManager$HistoricalOps;
 PLcom/android/server/appop/HistoricalRegistry$Persistence;->spliceFromEnd(Landroid/app/AppOpsManager$HistoricalOps;D)Landroid/app/AppOpsManager$HistoricalOps;
 HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeHistoricalFeatureOpsDLocked(Landroid/app/AppOpsManager$HistoricalFeatureOps;Lorg/xmlpull/v1/XmlSerializer;)V
@@ -8784,7 +9263,7 @@
 PLcom/android/server/appop/HistoricalRegistry;->clearHistory()V
 HSPLcom/android/server/appop/HistoricalRegistry;->clearHistory(ILjava/lang/String;)V
 PLcom/android/server/appop/HistoricalRegistry;->clearHistoryOnDiskDLocked()V
-HPLcom/android/server/appop/HistoricalRegistry;->getHistoricalOps(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJILandroid/os/RemoteCallback;)V
+HSPLcom/android/server/appop/HistoricalRegistry;->getHistoricalOps(ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;IJJILandroid/os/RemoteCallback;)V
 PLcom/android/server/appop/HistoricalRegistry;->getHistoricalOps(ILjava/lang/String;[Ljava/lang/String;JJILandroid/os/RemoteCallback;)V
 HSPLcom/android/server/appop/HistoricalRegistry;->getUpdatedPendingHistoricalOpsMLocked(J)Landroid/app/AppOpsManager$HistoricalOps;
 HSPLcom/android/server/appop/HistoricalRegistry;->increaseOpAccessDuration(IILjava/lang/String;IIJ)V
@@ -8793,12 +9272,12 @@
 HSPLcom/android/server/appop/HistoricalRegistry;->incrementOpAccessedCount(IILjava/lang/String;Ljava/lang/String;II)V
 HSPLcom/android/server/appop/HistoricalRegistry;->incrementOpRejected(IILjava/lang/String;II)V
 HSPLcom/android/server/appop/HistoricalRegistry;->incrementOpRejected(IILjava/lang/String;Ljava/lang/String;II)V
-PLcom/android/server/appop/HistoricalRegistry;->isApiEnabled()Z
+HSPLcom/android/server/appop/HistoricalRegistry;->isApiEnabled()Z
 HSPLcom/android/server/appop/HistoricalRegistry;->isPersistenceInitializedMLocked()Z
-PLcom/android/server/appop/HistoricalRegistry;->lambda$dJrtb4M71TzV6sx9vPEImQG_akU(Lcom/android/server/appop/HistoricalRegistry;)V
+HPLcom/android/server/appop/HistoricalRegistry;->lambda$dJrtb4M71TzV6sx9vPEImQG_akU(Lcom/android/server/appop/HistoricalRegistry;)V
 PLcom/android/server/appop/HistoricalRegistry;->offsetHistory(J)V
 HPLcom/android/server/appop/HistoricalRegistry;->persistPendingHistory()V
-HPLcom/android/server/appop/HistoricalRegistry;->persistPendingHistory(Ljava/util/List;)V
+HSPLcom/android/server/appop/HistoricalRegistry;->persistPendingHistory(Ljava/util/List;)V
 PLcom/android/server/appop/HistoricalRegistry;->resampleHistoryOnDiskInMemoryDMLocked(J)V
 PLcom/android/server/appop/HistoricalRegistry;->schedulePersistHistoricalOpsMLocked(Landroid/app/AppOpsManager$HistoricalOps;)V
 HSPLcom/android/server/appop/HistoricalRegistry;->systemReady(Landroid/content/ContentResolver;)V
@@ -8808,7 +9287,7 @@
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$40EK4qcr-rG55ENTthOaXAXWDA4;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$40EK4qcr-rG55ENTthOaXAXWDA4;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$4yDhFef-19aMlJ-Y7O6RdjSAvnk;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
-PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$4yDhFef-19aMlJ-Y7O6RdjSAvnk;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$4yDhFef-19aMlJ-Y7O6RdjSAvnk;->accept(Ljava/lang/Object;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$NmwmTMZXXS4S7viVNKzU2genXA8;-><init>(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$NmwmTMZXXS4S7viVNKzU2genXA8;->accept(Ljava/lang/Object;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$gV-NT40YbIbIqIJKiNGjlZGVJjc;-><init>(Landroid/app/prediction/AppPredictionSessionId;)V
@@ -8816,13 +9295,27 @@
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$s2vrDOHz5x1TW_6jMihxp1iCAvg;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$s2vrDOHz5x1TW_6jMihxp1iCAvg;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$vSY20eQq5y5FXrxhhqOTcEmezTs;-><init>(Landroid/app/prediction/AppPredictionSessionId;)V
-PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$vSY20eQq5y5FXrxhhqOTcEmezTs;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$vSY20eQq5y5FXrxhhqOTcEmezTs;->accept(Ljava/lang/Object;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$vWB3PdxOOvPr7p0_NmoqXeH8Ros;-><init>(Landroid/app/prediction/AppPredictionSessionId;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$vWB3PdxOOvPr7p0_NmoqXeH8Ros;->accept(Ljava/lang/Object;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$AppPredictionSessionInfo$LQ7iu1YPVHeNHnTTNfaw5e_68Z4;-><init>(Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;Lcom/android/server/appprediction/AppPredictionPerUserService;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$AppPredictionSessionInfo$LQ7iu1YPVHeNHnTTNfaw5e_68Z4;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$RCK9J9m8biTqRx8y1gTxgGKmKzQ;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
+HPLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$RCK9J9m8biTqRx8y1gTxgGKmKzQ;->run(Landroid/os/IInterface;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$btX3WTDbAjwJIcfzJSydbcpQWp4;-><init>(Landroid/app/prediction/AppPredictionSessionId;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$btX3WTDbAjwJIcfzJSydbcpQWp4;->run(Landroid/os/IInterface;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$hIxY55-713pKM-HDkA5K_YGqSFg;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$hIxY55-713pKM-HDkA5K_YGqSFg;->run(Landroid/os/IInterface;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$oqptY32VI0KEa_puMq0WysdjStM;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/content/pm/ParceledListSlice;Landroid/app/prediction/IPredictionCallback;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$oqptY32VI0KEa_puMq0WysdjStM;->run(Landroid/os/IInterface;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$ot809pjFOVEJ6shAJalMZ9_QhCo;-><init>(Lcom/android/server/appprediction/AppPredictionPerUserService;)V
 PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$ot809pjFOVEJ6shAJalMZ9_QhCo;->accept(Ljava/lang/Object;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$tttnO1OB1EjDA90qcrp178GjlPs;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$tttnO1OB1EjDA90qcrp178GjlPs;->run(Landroid/os/IInterface;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$v7zo2hsRu873qxjO1iB_LLOf0s8;-><init>(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$v7zo2hsRu873qxjO1iB_LLOf0s8;->run(Landroid/os/IInterface;)V
+HPLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$wBPAAKx3x_D9Gk2CZ1ESaD9wpZY;-><init>(Landroid/app/prediction/AppPredictionSessionId;)V
+HPLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$wBPAAKx3x_D9Gk2CZ1ESaD9wpZY;->run(Landroid/os/IInterface;)V
 PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$2EyTj40DnIRaUJU1GBU3r9jPAJg;-><init>(Landroid/app/prediction/AppPredictionSessionId;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$2EyTj40DnIRaUJU1GBU3r9jPAJg;->run(Landroid/os/IInterface;)V
 HPLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$9DCowUTEF8fYuBlWGxOmP5hTAWA;-><init>(Landroid/app/prediction/AppPredictionSessionId;)V
@@ -8882,8 +9375,10 @@
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo$1;->onCallbackDied(Landroid/os/IInterface;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppPredictionContext;Landroid/content/ComponentName;Ljava/util/function/Consumer;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppPredictionContext;Ljava/util/function/Consumer;)V
+PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppPredictionContext;ZLjava/util/function/Consumer;)V
 HPLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->access$000(Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;)Landroid/content/ComponentName;
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->access$000(Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;)Landroid/os/RemoteCallbackList;
+PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->access$000(Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;)Z
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->access$100(Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;)Landroid/os/RemoteCallbackList;
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->addCallbackLocked(Landroid/app/prediction/IPredictionCallback;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->destroy()V
@@ -8896,9 +9391,16 @@
 HPLcom/android/server/appprediction/AppPredictionPerUserService;->getComponentName(Landroid/app/prediction/AppPredictionSessionId;)Landroid/content/ComponentName;
 HPLcom/android/server/appprediction/AppPredictionPerUserService;->getRemoteServiceLocked()Lcom/android/server/appprediction/RemoteAppPredictionService;
 HPLcom/android/server/appprediction/AppPredictionPerUserService;->getRemoteServiceLocked(Landroid/content/ComponentName;)Lcom/android/server/appprediction/RemoteAppPredictionService;
+PLcom/android/server/appprediction/AppPredictionPerUserService;->lambda$notifyAppTargetEventLocked$1(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;Landroid/service/appprediction/IPredictionService;)V
+PLcom/android/server/appprediction/AppPredictionPerUserService;->lambda$onCreatePredictionSessionLocked$0(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;Landroid/service/appprediction/IPredictionService;)V
+PLcom/android/server/appprediction/AppPredictionPerUserService;->lambda$onDestroyPredictionSessionLocked$7(Landroid/app/prediction/AppPredictionSessionId;Landroid/service/appprediction/IPredictionService;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService;->lambda$ot809pjFOVEJ6shAJalMZ9_QhCo(Lcom/android/server/appprediction/AppPredictionPerUserService;Landroid/app/prediction/AppPredictionSessionId;)V
+PLcom/android/server/appprediction/AppPredictionPerUserService;->lambda$registerPredictionUpdatesLocked$4(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;Landroid/service/appprediction/IPredictionService;)V
+HPLcom/android/server/appprediction/AppPredictionPerUserService;->lambda$requestPredictionUpdateLocked$6(Landroid/app/prediction/AppPredictionSessionId;Landroid/service/appprediction/IPredictionService;)V
+PLcom/android/server/appprediction/AppPredictionPerUserService;->lambda$sortAppTargetsLocked$3(Landroid/app/prediction/AppPredictionSessionId;Landroid/content/pm/ParceledListSlice;Landroid/app/prediction/IPredictionCallback;Landroid/service/appprediction/IPredictionService;)V
+PLcom/android/server/appprediction/AppPredictionPerUserService;->lambda$unregisterPredictionUpdatesLocked$5(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;Landroid/service/appprediction/IPredictionService;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService;->newServiceInfoLocked(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
-PLcom/android/server/appprediction/AppPredictionPerUserService;->notifyAppTargetEventLocked(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
+HPLcom/android/server/appprediction/AppPredictionPerUserService;->notifyAppTargetEventLocked(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService;->notifyLaunchLocationShownLocked(Landroid/app/prediction/AppPredictionSessionId;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService;->onConnectedStateChanged(Z)V
 PLcom/android/server/appprediction/AppPredictionPerUserService;->onCreatePredictionSessionLocked(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;)V
@@ -8909,8 +9411,9 @@
 PLcom/android/server/appprediction/AppPredictionPerUserService;->onServiceDied(Ljava/lang/Object;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService;->registerPredictionUpdatesLocked(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService;->removeAppPredictionSessionInfo(Landroid/app/prediction/AppPredictionSessionId;)V
-PLcom/android/server/appprediction/AppPredictionPerUserService;->requestPredictionUpdateLocked(Landroid/app/prediction/AppPredictionSessionId;)V
+HPLcom/android/server/appprediction/AppPredictionPerUserService;->requestPredictionUpdateLocked(Landroid/app/prediction/AppPredictionSessionId;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService;->resolveComponentName(Landroid/app/prediction/AppPredictionContext;)Landroid/content/ComponentName;
+HPLcom/android/server/appprediction/AppPredictionPerUserService;->resolveService(Landroid/app/prediction/AppPredictionSessionId;Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest;)Z
 PLcom/android/server/appprediction/AppPredictionPerUserService;->resurrectSessionsLocked()V
 PLcom/android/server/appprediction/AppPredictionPerUserService;->sortAppTargetsLocked(Landroid/app/prediction/AppPredictionSessionId;Landroid/content/pm/ParceledListSlice;Landroid/app/prediction/IPredictionCallback;)V
 PLcom/android/server/appprediction/AppPredictionPerUserService;->unregisterPredictionUpdatesLocked(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
@@ -8920,7 +9423,7 @@
 PLcom/android/server/appprediction/RemoteAppPredictionService;->getServiceInterface(Landroid/os/IBinder;)Landroid/service/appprediction/IPredictionService;
 HPLcom/android/server/appprediction/RemoteAppPredictionService;->getTimeoutIdleBindMillis()J
 PLcom/android/server/appprediction/RemoteAppPredictionService;->handleOnConnectedStateChanged(Z)V
-PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$notifyAppTargetEvent$1(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;Landroid/service/appprediction/IPredictionService;)V
+HPLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$notifyAppTargetEvent$1(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;Landroid/service/appprediction/IPredictionService;)V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$notifyLaunchLocationShown$2(Landroid/app/prediction/AppPredictionSessionId;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;Landroid/service/appprediction/IPredictionService;)V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$onCreatePredictionSession$0(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;Landroid/service/appprediction/IPredictionService;)V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$onDestroyPredictionSession$7(Landroid/app/prediction/AppPredictionSessionId;Landroid/service/appprediction/IPredictionService;)V
@@ -8935,6 +9438,7 @@
 PLcom/android/server/appprediction/RemoteAppPredictionService;->reconnect()V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->registerPredictionUpdates(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
 HPLcom/android/server/appprediction/RemoteAppPredictionService;->requestPredictionUpdate(Landroid/app/prediction/AppPredictionSessionId;)V
+PLcom/android/server/appprediction/RemoteAppPredictionService;->scheduleOnResolvedService(Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest;)V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->sortAppTargets(Landroid/app/prediction/AppPredictionSessionId;Landroid/content/pm/ParceledListSlice;Landroid/app/prediction/IPredictionCallback;)V
 PLcom/android/server/appprediction/RemoteAppPredictionService;->unregisterPredictionUpdates(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
 PLcom/android/server/appwidget/-$$Lambda$AppWidgetServiceImpl$7z3EwuT55saMxTVomcNfb1VOVL0;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;JLandroid/app/PendingIntent;)V
@@ -8945,6 +9449,7 @@
 HSPLcom/android/server/appwidget/AppWidgetService;->onBootPhase(I)V
 HSPLcom/android/server/appwidget/AppWidgetService;->onStart()V
 PLcom/android/server/appwidget/AppWidgetService;->onStopUser(I)V
+PLcom/android/server/appwidget/AppWidgetService;->onSwitchUser(I)V
 HSPLcom/android/server/appwidget/AppWidgetServiceImpl$1;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;)V
 HSPLcom/android/server/appwidget/AppWidgetServiceImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl$2;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Landroid/content/Intent;)V
@@ -9056,7 +9561,7 @@
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->bindLoadedWidgetsLocked(Ljava/util/List;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->bindRemoteViewsService(Ljava/lang/String;ILandroid/content/Intent;Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/IServiceConnection;I)Z
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->cancelBroadcastsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->clearProvidersAndHostsTagsLocked()V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->clearProvidersAndHostsTagsLocked()V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->cloneIfLocalBinder(Landroid/appwidget/AppWidgetProviderInfo;)Landroid/appwidget/AppWidgetProviderInfo;
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->cloneIfLocalBinder(Landroid/os/Bundle;)Landroid/os/Bundle;
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->cloneIfLocalBinder(Landroid/widget/RemoteViews;)Landroid/widget/RemoteViews;
@@ -9098,7 +9603,7 @@
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->handleNotifyAppWidgetViewDataChanged(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;IIJ)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->handleNotifyProviderChanged(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;ILandroid/appwidget/AppWidgetProviderInfo;J)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->handleNotifyProvidersChanged(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->handleNotifyUpdateAppWidget(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;ILandroid/widget/RemoteViews;J)V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->handleNotifyUpdateAppWidget(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;ILandroid/widget/RemoteViews;J)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->handleUserUnlocked(I)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->hasBindAppWidgetPermission(Ljava/lang/String;I)Z
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->incrementAndGetAppWidgetIdLocked(I)I
@@ -9117,7 +9622,7 @@
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->lookupOrAddHostLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$HostId;)Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->lookupProviderLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;)Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->lookupWidgetLocked(IILjava/lang/String;)Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->maskWidgetsViewsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->maskWidgetsViewsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->notifyAppWidgetViewDataChanged(Ljava/lang/String;[II)V
 HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->onConfigurationChanged()V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->onCrossProfileWidgetProvidersChanged(ILjava/util/List;)V
@@ -9128,6 +9633,7 @@
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->onWidgetRemovedLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->parseAppWidgetProviderInfo(Lcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;Landroid/content/pm/ActivityInfo;Ljava/lang/String;)Landroid/appwidget/AppWidgetProviderInfo;
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->parseProviderInfoXml(Lcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;Landroid/content/pm/ResolveInfo;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->parseWidgetIdOptions(Lorg/xmlpull/v1/XmlPullParser;)Landroid/os/Bundle;
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->partiallyUpdateAppWidgetIds(Ljava/lang/String;[ILandroid/widget/RemoteViews;)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->peekNextAppWidgetIdLocked(I)I
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->performUpgradeLocked(I)V
@@ -9159,6 +9665,7 @@
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->sendOptionsChangedIntentLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->sendUpdateIntentLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;[I)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeAppWidget(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeAppWidget(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;Z)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeHost(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeProvider(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V
 PLcom/android/server/appwidget/AppWidgetServiceImpl;->setBindAppWidgetPermission(Ljava/lang/String;IZ)V
@@ -9168,7 +9675,7 @@
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->stopListening(Ljava/lang/String;I)V
 HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->systemServicesReady()V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->tagProvidersAndHosts()V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->unmaskWidgetsViewsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->unmaskWidgetsViewsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppOpsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Z)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetIds(Ljava/lang/String;[ILandroid/widget/RemoteViews;)V
 HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetIds(Ljava/lang/String;[ILandroid/widget/RemoteViews;Z)V
@@ -9259,6 +9766,7 @@
 PLcom/android/server/attention/AttentionManagerService;->lambda$cancelAndUnbindLocked$0$AttentionManagerService(Lcom/android/server/attention/AttentionManagerService$UserState;)V
 HSPLcom/android/server/attention/AttentionManagerService;->onBootPhase(I)V
 HSPLcom/android/server/attention/AttentionManagerService;->onStart()V
+PLcom/android/server/attention/AttentionManagerService;->onSwitchUser(I)V
 PLcom/android/server/attention/AttentionManagerService;->peekCurrentUserStateLocked()Lcom/android/server/attention/AttentionManagerService$UserState;
 HPLcom/android/server/attention/AttentionManagerService;->peekUserStateLocked(I)Lcom/android/server/attention/AttentionManagerService$UserState;
 PLcom/android/server/attention/AttentionManagerService;->resolveAttentionService(Landroid/content/Context;)Landroid/content/ComponentName;
@@ -9277,11 +9785,16 @@
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$Nads7_S1eD53QDofbK9CuYO9Fok;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$OBWGV1RNEso-eo8dzWjaFhEjC0A;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$UmkUL-MFA5dvtoCrFM9PQ16P_Xo;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$X6RLjT4CIM4r8i0wBWo1TE_1qak;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$YxgcWZ4jspoxzltUgvW9l8k40io;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$YxgcWZ4jspoxzltUgvW9l8k40io;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$_CdHBhvBDErZWSm39GafCXJiOqQ;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$_CdHBhvBDErZWSm39GafCXJiOqQ;->test(Ljava/lang/Object;)Z
 PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$h1GPmbcUbwoqYD48NKy02S7bsyg;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$rVjCbPoeHeOpk1Tf1e7TcZZH4rw;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
+HSPLcom/android/server/audio/-$$Lambda$AudioService$eq0KnrBbF7KWNGmAJRjyeCTIdzQ;-><clinit>()V
+HSPLcom/android/server/audio/-$$Lambda$AudioService$eq0KnrBbF7KWNGmAJRjyeCTIdzQ;-><init>()V
+HSPLcom/android/server/audio/-$$Lambda$AudioService$eq0KnrBbF7KWNGmAJRjyeCTIdzQ;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;-><clinit>()V
 HSPLcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;-><init>()V
 HSPLcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;->applyAsInt(Ljava/lang/Object;)I
@@ -9409,7 +9922,7 @@
 HPLcom/android/server/audio/AudioDeviceInventory;->onSetA2dpSinkConnectionState(Lcom/android/server/audio/BtHelper$BluetoothA2dpDeviceInfo;I)V
 PLcom/android/server/audio/AudioDeviceInventory;->onSetA2dpSourceConnectionState(Lcom/android/server/audio/BtHelper$BluetoothA2dpDeviceInfo;I)V
 PLcom/android/server/audio/AudioDeviceInventory;->onSetWiredDeviceConnectionState(Lcom/android/server/audio/AudioDeviceInventory$WiredDeviceConnectionState;)V
-PLcom/android/server/audio/AudioDeviceInventory;->sendDeviceConnectionIntent(IILjava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/audio/AudioDeviceInventory;->sendDeviceConnectionIntent(IILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/audio/AudioDeviceInventory;->setBluetoothA2dpDeviceConnectionState(Landroid/bluetooth/BluetoothDevice;IIZII)V
 HPLcom/android/server/audio/AudioDeviceInventory;->setCurrentAudioRouteNameIfPossible(Ljava/lang/String;)V
 PLcom/android/server/audio/AudioDeviceInventory;->setWiredDeviceConnectionState(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
@@ -9446,12 +9959,14 @@
 PLcom/android/server/audio/AudioService$AudioPolicyProxy;->connectMixes()I
 PLcom/android/server/audio/AudioService$AudioPolicyProxy;->getRegistrationId()Ljava/lang/String;
 PLcom/android/server/audio/AudioService$AudioPolicyProxy;->hasMixAffectingUsage(II)Z
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;->logFriendlyAttributeDeviceArrayMap(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/audio/AudioService$AudioPolicyProxy;->release()V
 PLcom/android/server/audio/AudioService$AudioPolicyProxy;->toLogFriendlyString()Ljava/lang/String;
 HSPLcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver;-><init>(Lcom/android/server/audio/AudioService;)V
 HSPLcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver;-><init>(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$1;)V
 HSPLcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/audio/AudioService$AudioServiceInternal;-><init>(Lcom/android/server/audio/AudioService;)V
+HPLcom/android/server/audio/AudioService$AudioServiceInternal;->adjustStreamVolumeForUid(IIILjava/lang/String;I)V
 HPLcom/android/server/audio/AudioService$AudioServiceInternal;->adjustSuggestedStreamVolumeForUid(IIILjava/lang/String;I)V
 HSPLcom/android/server/audio/AudioService$AudioServiceInternal;->getRingerModeInternal()I
 HSPLcom/android/server/audio/AudioService$AudioServiceInternal;->setAccessibilityServiceUids(Landroid/util/IntArray;)V
@@ -9481,13 +9996,15 @@
 PLcom/android/server/audio/AudioService$RmtSbmxFullVolDeathHandler;->isHandlerFor(Landroid/os/IBinder;)Z
 HSPLcom/android/server/audio/AudioService$RoleObserver;-><init>(Lcom/android/server/audio/AudioService;)V
 HSPLcom/android/server/audio/AudioService$RoleObserver;->getAssistantRoleHolder()Ljava/lang/String;
-PLcom/android/server/audio/AudioService$RoleObserver;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
+HPLcom/android/server/audio/AudioService$RoleObserver;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
 HSPLcom/android/server/audio/AudioService$RoleObserver;->register()V
 PLcom/android/server/audio/AudioService$SetModeDeathHandler;-><init>(Lcom/android/server/audio/AudioService;Landroid/os/IBinder;I)V
+PLcom/android/server/audio/AudioService$SetModeDeathHandler;-><init>(Lcom/android/server/audio/AudioService;Landroid/os/IBinder;II)V
 PLcom/android/server/audio/AudioService$SetModeDeathHandler;->binderDied()V
 PLcom/android/server/audio/AudioService$SetModeDeathHandler;->getBinder()Landroid/os/IBinder;
 PLcom/android/server/audio/AudioService$SetModeDeathHandler;->getMode()I
 PLcom/android/server/audio/AudioService$SetModeDeathHandler;->getPid()I
+PLcom/android/server/audio/AudioService$SetModeDeathHandler;->getUid()I
 PLcom/android/server/audio/AudioService$SetModeDeathHandler;->setMode(I)V
 HSPLcom/android/server/audio/AudioService$SettingsObserver;-><init>(Lcom/android/server/audio/AudioService;)V
 HSPLcom/android/server/audio/AudioService$SettingsObserver;->onChange(Z)V
@@ -9506,6 +10023,15 @@
 PLcom/android/server/audio/AudioService$VolumeController;->setVisible(Z)V
 HPLcom/android/server/audio/AudioService$VolumeController;->suppressAdjustment(IIZ)Z
 PLcom/android/server/audio/AudioService$VolumeController;->toString()Ljava/lang/String;
+HSPLcom/android/server/audio/AudioService$VolumeGroupState;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/audiopolicy/AudioVolumeGroup;)V
+HSPLcom/android/server/audio/AudioService$VolumeGroupState;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/audiopolicy/AudioVolumeGroup;Lcom/android/server/audio/AudioService$1;)V
+PLcom/android/server/audio/AudioService$VolumeGroupState;->access$2400(Lcom/android/server/audio/AudioService$VolumeGroupState;Ljava/io/PrintWriter;)V
+HSPLcom/android/server/audio/AudioService$VolumeGroupState;->applyAllVolumes()V
+HPLcom/android/server/audio/AudioService$VolumeGroupState;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/audio/AudioService$VolumeGroupState;->getDeviceForVolume()I
+HSPLcom/android/server/audio/AudioService$VolumeGroupState;->getSettingNameForDevice(I)Ljava/lang/String;
+HSPLcom/android/server/audio/AudioService$VolumeGroupState;->getValidIndex(I)I
+HSPLcom/android/server/audio/AudioService$VolumeGroupState;->readSettings()V
 HSPLcom/android/server/audio/AudioService$VolumeStreamState;-><init>(Lcom/android/server/audio/AudioService;Ljava/lang/String;I)V
 HSPLcom/android/server/audio/AudioService$VolumeStreamState;-><init>(Lcom/android/server/audio/AudioService;Ljava/lang/String;ILcom/android/server/audio/AudioService$1;)V
 HSPLcom/android/server/audio/AudioService$VolumeStreamState;->access$1000(Lcom/android/server/audio/AudioService$VolumeStreamState;)Z
@@ -9514,6 +10040,7 @@
 PLcom/android/server/audio/AudioService$VolumeStreamState;->access$1402(Lcom/android/server/audio/AudioService$VolumeStreamState;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/audio/AudioService$VolumeStreamState;->access$1900(Lcom/android/server/audio/AudioService$VolumeStreamState;)Landroid/util/SparseIntArray;
 PLcom/android/server/audio/AudioService$VolumeStreamState;->access$3500(Lcom/android/server/audio/AudioService$VolumeStreamState;)Z
+PLcom/android/server/audio/AudioService$VolumeStreamState;->access$3700(Lcom/android/server/audio/AudioService$VolumeStreamState;)Z
 HSPLcom/android/server/audio/AudioService$VolumeStreamState;->access$800(Lcom/android/server/audio/AudioService$VolumeStreamState;)I
 PLcom/android/server/audio/AudioService$VolumeStreamState;->access$900(Lcom/android/server/audio/AudioService$VolumeStreamState;)I
 HPLcom/android/server/audio/AudioService$VolumeStreamState;->adjustIndex(IILjava/lang/String;)Z
@@ -9549,55 +10076,95 @@
 HSPLcom/android/server/audio/AudioService;->access$2300(Lcom/android/server/audio/AudioService;I)V
 HSPLcom/android/server/audio/AudioService;->access$2400(Lcom/android/server/audio/AudioService;Landroid/content/Intent;)V
 HSPLcom/android/server/audio/AudioService;->access$2500(Lcom/android/server/audio/AudioService;)Ljava/lang/Object;
+HSPLcom/android/server/audio/AudioService;->access$2500(Lcom/android/server/audio/AudioService;)Z
+HSPLcom/android/server/audio/AudioService;->access$2600(Lcom/android/server/audio/AudioService;)Landroid/content/ContentResolver;
 HSPLcom/android/server/audio/AudioService;->access$2600(Lcom/android/server/audio/AudioService;)Z
 HSPLcom/android/server/audio/AudioService;->access$2700(Lcom/android/server/audio/AudioService;)Z
+HSPLcom/android/server/audio/AudioService;->access$2700(Lcom/android/server/audio/AudioService;I)V
 HSPLcom/android/server/audio/AudioService;->access$2800(Lcom/android/server/audio/AudioService;)Landroid/content/ContentResolver;
+HSPLcom/android/server/audio/AudioService;->access$2800(Lcom/android/server/audio/AudioService;Landroid/content/Intent;)V
+HSPLcom/android/server/audio/AudioService;->access$2900(Lcom/android/server/audio/AudioService;)Ljava/lang/Object;
 PLcom/android/server/audio/AudioService;->access$2900(Lcom/android/server/audio/AudioService;)[F
+HSPLcom/android/server/audio/AudioService;->access$3000(Lcom/android/server/audio/AudioService;)Z
 HSPLcom/android/server/audio/AudioService;->access$3000(Lcom/android/server/audio/AudioService;)[Lcom/android/server/audio/AudioService$VolumeStreamState;
 HSPLcom/android/server/audio/AudioService;->access$3100(Lcom/android/server/audio/AudioService;III)I
+HSPLcom/android/server/audio/AudioService;->access$3200(Lcom/android/server/audio/AudioService;)[Lcom/android/server/audio/AudioService$VolumeStreamState;
 PLcom/android/server/audio/AudioService;->access$3200(Lcom/android/server/audio/AudioService;I)I
+HSPLcom/android/server/audio/AudioService;->access$3300(Lcom/android/server/audio/AudioService;III)I
 PLcom/android/server/audio/AudioService;->access$3400(Lcom/android/server/audio/AudioService;)Z
+PLcom/android/server/audio/AudioService;->access$3600(Lcom/android/server/audio/AudioService;)Z
 PLcom/android/server/audio/AudioService;->access$3600(Lcom/android/server/audio/AudioService;Z)V
 HSPLcom/android/server/audio/AudioService;->access$3700(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/SoundEffectsHelper;
 HSPLcom/android/server/audio/AudioService;->access$3800(Lcom/android/server/audio/AudioService;)Z
+HSPLcom/android/server/audio/AudioService;->access$4000(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/SoundEffectsHelper;
+HSPLcom/android/server/audio/AudioService;->access$4100(Lcom/android/server/audio/AudioService;)Z
 PLcom/android/server/audio/AudioService;->access$4100(Lcom/android/server/audio/AudioService;Ljava/lang/String;)V
 HSPLcom/android/server/audio/AudioService;->access$4200(Lcom/android/server/audio/AudioService;ZLjava/lang/String;)V
 PLcom/android/server/audio/AudioService;->access$4300(Lcom/android/server/audio/AudioService;I)V
+HSPLcom/android/server/audio/AudioService;->access$4500(Lcom/android/server/audio/AudioService;ZLjava/lang/String;)V
+PLcom/android/server/audio/AudioService;->access$4600(Lcom/android/server/audio/AudioService;I)V
 HSPLcom/android/server/audio/AudioService;->access$4700(Lcom/android/server/audio/AudioService;)V
 PLcom/android/server/audio/AudioService;->access$4800(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$DeviceVolumeUpdate;)V
 PLcom/android/server/audio/AudioService;->access$4900(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioService;->access$5000(Lcom/android/server/audio/AudioService;)V
+PLcom/android/server/audio/AudioService;->access$5100(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$DeviceVolumeUpdate;)V
 HSPLcom/android/server/audio/AudioService;->access$5200(Lcom/android/server/audio/AudioService;)I
+PLcom/android/server/audio/AudioService;->access$5200(Lcom/android/server/audio/AudioService;)V
 HSPLcom/android/server/audio/AudioService;->access$5202(Lcom/android/server/audio/AudioService;I)I
 HSPLcom/android/server/audio/AudioService;->access$5302(Lcom/android/server/audio/AudioService;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/audio/AudioService;->access$5400(Lcom/android/server/audio/AudioService;)Z
+PLcom/android/server/audio/AudioService;->access$5500(Lcom/android/server/audio/AudioService;)I
 HSPLcom/android/server/audio/AudioService;->access$5500(Lcom/android/server/audio/AudioService;IZ)V
+HSPLcom/android/server/audio/AudioService;->access$5502(Lcom/android/server/audio/AudioService;I)I
 HSPLcom/android/server/audio/AudioService;->access$5600(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V
+HSPLcom/android/server/audio/AudioService;->access$5602(Lcom/android/server/audio/AudioService;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/audio/AudioService;->access$5700(Lcom/android/server/audio/AudioService;)Z
 HSPLcom/android/server/audio/AudioService;->access$5700(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V
+PLcom/android/server/audio/AudioService;->access$5800(Lcom/android/server/audio/AudioService;IZ)V
 HSPLcom/android/server/audio/AudioService;->access$5800(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V
 HSPLcom/android/server/audio/AudioService;->access$5900(Lcom/android/server/audio/AudioService;)Z
+PLcom/android/server/audio/AudioService;->access$5900(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V
 HSPLcom/android/server/audio/AudioService;->access$5902(Lcom/android/server/audio/AudioService;Z)Z
 HSPLcom/android/server/audio/AudioService;->access$600(Lcom/android/server/audio/AudioService;)Landroid/content/Context;
+PLcom/android/server/audio/AudioService;->access$6000(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V
 HSPLcom/android/server/audio/AudioService;->access$6000(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;Z)V
 HSPLcom/android/server/audio/AudioService;->access$6100(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V
+PLcom/android/server/audio/AudioService;->access$6200(Lcom/android/server/audio/AudioService;)Z
+PLcom/android/server/audio/AudioService;->access$6202(Lcom/android/server/audio/AudioService;Z)Z
+PLcom/android/server/audio/AudioService;->access$6300(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;Z)V
 PLcom/android/server/audio/AudioService;->access$6400(Lcom/android/server/audio/AudioService;)Z
+PLcom/android/server/audio/AudioService;->access$6400(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V
 HSPLcom/android/server/audio/AudioService;->access$6500(Lcom/android/server/audio/AudioService;Landroid/content/Context;)V
 HSPLcom/android/server/audio/AudioService;->access$6600(Lcom/android/server/audio/AudioService;)Z
 HSPLcom/android/server/audio/AudioService;->access$6602(Lcom/android/server/audio/AudioService;Z)Z
 HSPLcom/android/server/audio/AudioService;->access$6700(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/MediaFocusControl;
+PLcom/android/server/audio/AudioService;->access$6700(Lcom/android/server/audio/AudioService;)Z
+HSPLcom/android/server/audio/AudioService;->access$6800(Lcom/android/server/audio/AudioService;Landroid/content/Context;)V
 HSPLcom/android/server/audio/AudioService;->access$6800(Lcom/android/server/audio/AudioService;Z)V
+PLcom/android/server/audio/AudioService;->access$6900(Lcom/android/server/audio/AudioService;)Z
+PLcom/android/server/audio/AudioService;->access$6900(Lcom/android/server/audio/AudioService;Landroid/content/pm/UserInfo;)V
+PLcom/android/server/audio/AudioService;->access$6902(Lcom/android/server/audio/AudioService;Z)Z
 HSPLcom/android/server/audio/AudioService;->access$700(Lcom/android/server/audio/AudioService;Z)V
+PLcom/android/server/audio/AudioService;->access$7000(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/MediaFocusControl;
 PLcom/android/server/audio/AudioService;->access$7000(Lcom/android/server/audio/AudioService;Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/audio/AudioService;->access$7100(Lcom/android/server/audio/AudioService;Z)V
+PLcom/android/server/audio/AudioService;->access$7300(Lcom/android/server/audio/AudioService;Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/audio/AudioService;->access$7800(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/AudioService$VolumeController;
 HSPLcom/android/server/audio/AudioService;->access$7900(Lcom/android/server/audio/AudioService;)Landroid/media/AudioManagerInternal$RingerModeDelegate;
 HSPLcom/android/server/audio/AudioService;->access$7902(Lcom/android/server/audio/AudioService;Landroid/media/AudioManagerInternal$RingerModeDelegate;)Landroid/media/AudioManagerInternal$RingerModeDelegate;
 HPLcom/android/server/audio/AudioService;->access$8000(Lcom/android/server/audio/AudioService;IIILjava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/server/audio/AudioService;->access$8200(Lcom/android/server/audio/AudioService;)Landroid/media/AudioManagerInternal$RingerModeDelegate;
 HSPLcom/android/server/audio/AudioService;->access$8200(Lcom/android/server/audio/AudioService;)Ljava/lang/Object;
+HSPLcom/android/server/audio/AudioService;->access$8202(Lcom/android/server/audio/AudioService;Landroid/media/AudioManagerInternal$RingerModeDelegate;)Landroid/media/AudioManagerInternal$RingerModeDelegate;
 HSPLcom/android/server/audio/AudioService;->access$8300(Lcom/android/server/audio/AudioService;)[I
 HSPLcom/android/server/audio/AudioService;->access$8302(Lcom/android/server/audio/AudioService;[I)[I
 PLcom/android/server/audio/AudioService;->access$8408(Lcom/android/server/audio/AudioService;)I
+PLcom/android/server/audio/AudioService;->access$8500(Lcom/android/server/audio/AudioService;)Ljava/lang/Object;
+PLcom/android/server/audio/AudioService;->access$8600(Lcom/android/server/audio/AudioService;)[I
+PLcom/android/server/audio/AudioService;->access$8602(Lcom/android/server/audio/AudioService;[I)[I
 PLcom/android/server/audio/AudioService;->access$8900(Lcom/android/server/audio/AudioService;)Ljava/util/HashMap;
 PLcom/android/server/audio/AudioService;->addMixForPolicy(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;)I
-PLcom/android/server/audio/AudioService;->adjustStreamVolume(IIILjava/lang/String;)V
+HPLcom/android/server/audio/AudioService;->adjustStreamVolume(IIILjava/lang/String;)V
 HPLcom/android/server/audio/AudioService;->adjustStreamVolume(IIILjava/lang/String;Ljava/lang/String;I)V
 HPLcom/android/server/audio/AudioService;->adjustSuggestedStreamVolume(IIILjava/lang/String;Ljava/lang/String;I)V
 HPLcom/android/server/audio/AudioService;->avrcpSupportsAbsoluteVolume(Ljava/lang/String;Z)V
@@ -9628,9 +10195,11 @@
 HPLcom/android/server/audio/AudioService;->dumpRingerModeStreams(Ljava/io/PrintWriter;Ljava/lang/String;I)V
 HPLcom/android/server/audio/AudioService;->dumpStreamStates(Ljava/io/PrintWriter;)V
 PLcom/android/server/audio/AudioService;->dumpSupportedSystemUsage(Ljava/io/PrintWriter;)V
+PLcom/android/server/audio/AudioService;->dumpVolumeGroups(Ljava/io/PrintWriter;)V
 HPLcom/android/server/audio/AudioService;->enforceModifyAudioRoutingPermission()V
 HSPLcom/android/server/audio/AudioService;->enforceSafeMediaVolume(Ljava/lang/String;)V
 HSPLcom/android/server/audio/AudioService;->enforceVolumeController(Ljava/lang/String;)V
+HSPLcom/android/server/audio/AudioService;->ensureValidAttributes(Landroid/media/audiopolicy/AudioVolumeGroup;)V
 HPLcom/android/server/audio/AudioService;->ensureValidDirection(I)V
 HSPLcom/android/server/audio/AudioService;->ensureValidRingerMode(I)V
 HSPLcom/android/server/audio/AudioService;->ensureValidStreamType(I)V
@@ -9641,7 +10210,8 @@
 HPLcom/android/server/audio/AudioService;->getActiveRecordingConfigurations()Ljava/util/List;
 HPLcom/android/server/audio/AudioService;->getActiveStreamType(I)I
 HSPLcom/android/server/audio/AudioService;->getAudioHalPids()Ljava/util/Set;
-PLcom/android/server/audio/AudioService;->getAudioProductStrategies()Ljava/util/List;
+HPLcom/android/server/audio/AudioService;->getAudioProductStrategies()Ljava/util/List;
+HSPLcom/android/server/audio/AudioService;->getAudioVolumeGroups()Ljava/util/List;
 PLcom/android/server/audio/AudioService;->getContentResolver()Landroid/content/ContentResolver;
 HSPLcom/android/server/audio/AudioService;->getCurrentAudioFocus()I
 HSPLcom/android/server/audio/AudioService;->getCurrentUserId()I
@@ -9656,6 +10226,7 @@
 HSPLcom/android/server/audio/AudioService;->getLastAudibleStreamVolume(I)I
 HSPLcom/android/server/audio/AudioService;->getMode()I
 PLcom/android/server/audio/AudioService;->getModeOwnerPid()I
+PLcom/android/server/audio/AudioService;->getModeOwnerUid()I
 HPLcom/android/server/audio/AudioService;->getNewRingerMode(III)I
 HSPLcom/android/server/audio/AudioService;->getRingerModeExternal()I
 HSPLcom/android/server/audio/AudioService;->getRingerModeInternal()I
@@ -9674,6 +10245,7 @@
 HPLcom/android/server/audio/AudioService;->hasMediaDynamicPolicy()Z
 PLcom/android/server/audio/AudioService;->hasRmtSbmxFullVolDeathHandlerFor(Landroid/os/IBinder;)Z
 HSPLcom/android/server/audio/AudioService;->initA11yMonitoring()V
+HSPLcom/android/server/audio/AudioService;->initVolumeGroupStates()V
 PLcom/android/server/audio/AudioService;->isAlarm(I)Z
 HPLcom/android/server/audio/AudioService;->isAndroidNPlus(Ljava/lang/String;)Z
 HPLcom/android/server/audio/AudioService;->isAudioServerRunning()Z
@@ -9697,7 +10269,9 @@
 PLcom/android/server/audio/AudioService;->isValidAudioAttributesUsage(Landroid/media/AudioAttributes;)Z
 HSPLcom/android/server/audio/AudioService;->isValidRingerMode(I)Z
 HPLcom/android/server/audio/AudioService;->isVoiceCommunicationPlaybackCaptureMix(Landroid/media/audiopolicy/AudioMix;)Z
-PLcom/android/server/audio/AudioService;->makeAlsaAddressString(II)Ljava/lang/String;
+PLcom/android/server/audio/AudioService;->killBackgroundUserProcessesWithRecordAudioPermission(Landroid/content/pm/UserInfo;)V
+HSPLcom/android/server/audio/AudioService;->lambda$ensureValidAttributes$0(Landroid/media/AudioAttributes;)Z
+HPLcom/android/server/audio/AudioService;->makeAlsaAddressString(II)Ljava/lang/String;
 PLcom/android/server/audio/AudioService;->maybeSendSystemAudioStatusCommand(Z)V
 PLcom/android/server/audio/AudioService;->maybeVibrate(Landroid/os/VibrationEffect;Ljava/lang/String;)Z
 HSPLcom/android/server/audio/AudioService;->muteRingerModeStreams()V
@@ -9730,6 +10304,7 @@
 HSPLcom/android/server/audio/AudioService;->readDockAudioSettings(Landroid/content/ContentResolver;)V
 HSPLcom/android/server/audio/AudioService;->readPersistedSettings()V
 HSPLcom/android/server/audio/AudioService;->readUserRestrictions()V
+PLcom/android/server/audio/AudioService;->readVolumeGroupsSettings()V
 HPLcom/android/server/audio/AudioService;->recorderEvent(II)V
 HPLcom/android/server/audio/AudioService;->registerAudioPolicy(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;ZZZZLandroid/media/projection/IMediaProjection;)Ljava/lang/String;
 PLcom/android/server/audio/AudioService;->registerAudioServerStateDispatcher(Landroid/media/IAudioServerStateDispatcher;)V
@@ -9760,6 +10335,7 @@
 PLcom/android/server/audio/AudioService;->setMicrophoneMute(ZLjava/lang/String;I)V
 HSPLcom/android/server/audio/AudioService;->setMicrophoneMuteNoCallerCheck(I)V
 HPLcom/android/server/audio/AudioService;->setMode(ILandroid/os/IBinder;Ljava/lang/String;)V
+HPLcom/android/server/audio/AudioService;->setModeInt(ILandroid/os/IBinder;IILjava/lang/String;)I
 HPLcom/android/server/audio/AudioService;->setModeInt(ILandroid/os/IBinder;ILjava/lang/String;)I
 HSPLcom/android/server/audio/AudioService;->setRingerMode(ILjava/lang/String;Z)V
 HSPLcom/android/server/audio/AudioService;->setRingerModeExt(I)V
@@ -9888,6 +10464,7 @@
 PLcom/android/server/audio/BtHelper;->startBluetoothScoForClient(Landroid/os/IBinder;ILjava/lang/String;)V
 HPLcom/android/server/audio/BtHelper;->stopBluetoothScoForClient(Landroid/os/IBinder;Ljava/lang/String;)V
 HPLcom/android/server/audio/FocusRequester;-><init>(Landroid/media/AudioAttributes;IILandroid/media/IAudioFocusDispatcher;Landroid/os/IBinder;Ljava/lang/String;Lcom/android/server/audio/MediaFocusControl$AudioFocusDeathHandler;Ljava/lang/String;ILcom/android/server/audio/MediaFocusControl;I)V
+PLcom/android/server/audio/FocusRequester;->dispatchFocusChange(I)I
 PLcom/android/server/audio/FocusRequester;->dump(Ljava/io/PrintWriter;)V
 HPLcom/android/server/audio/FocusRequester;->finalize()V
 PLcom/android/server/audio/FocusRequester;->flagsToString(I)Ljava/lang/String;
@@ -9901,12 +10478,13 @@
 PLcom/android/server/audio/FocusRequester;->getGainRequest()I
 PLcom/android/server/audio/FocusRequester;->getGrantFlags()I
 PLcom/android/server/audio/FocusRequester;->getSdkTarget()I
-PLcom/android/server/audio/FocusRequester;->handleFocusGain(I)V
+HPLcom/android/server/audio/FocusRequester;->handleFocusGain(I)V
 HPLcom/android/server/audio/FocusRequester;->handleFocusGainFromRequest(I)V
 PLcom/android/server/audio/FocusRequester;->handleFocusLoss(ILcom/android/server/audio/FocusRequester;Z)V
 PLcom/android/server/audio/FocusRequester;->handleFocusLossFromGain(ILcom/android/server/audio/FocusRequester;Z)Z
 PLcom/android/server/audio/FocusRequester;->hasSameBinder(Landroid/os/IBinder;)Z
 HPLcom/android/server/audio/FocusRequester;->hasSameClient(Ljava/lang/String;)Z
+PLcom/android/server/audio/FocusRequester;->hasSamePackage(Ljava/lang/String;)Z
 PLcom/android/server/audio/FocusRequester;->hasSameUid(I)Z
 PLcom/android/server/audio/FocusRequester;->isLockedFocusOwner()Z
 HPLcom/android/server/audio/FocusRequester;->release()V
@@ -9995,7 +10573,7 @@
 HPLcom/android/server/audio/PlaybackActivityMonitor;->playerEvent(III)V
 HSPLcom/android/server/audio/PlaybackActivityMonitor;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;Z)V
 HPLcom/android/server/audio/PlaybackActivityMonitor;->releasePlayer(II)V
-PLcom/android/server/audio/PlaybackActivityMonitor;->setAllowedCapturePolicy(II)V
+HPLcom/android/server/audio/PlaybackActivityMonitor;->setAllowedCapturePolicy(II)V
 HSPLcom/android/server/audio/PlaybackActivityMonitor;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I
 HPLcom/android/server/audio/PlaybackActivityMonitor;->unduckPlayers(Lcom/android/server/audio/FocusRequester;)V
 HPLcom/android/server/audio/PlaybackActivityMonitor;->unmutePlayersForCall()V
@@ -10015,10 +10593,10 @@
 HPLcom/android/server/audio/RecordingActivityMonitor$RecordingState;-><init>(ILcom/android/server/audio/RecordingActivityMonitor$RecorderDeathHandler;)V
 PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->dump(Ljava/io/PrintWriter;)V
 PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->getConfig()Landroid/media/AudioRecordingConfiguration;
-PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->getRiid()I
+HPLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->getRiid()I
 PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->hasDeathHandler()Z
-PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->isActiveConfiguration()Z
-PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->release()V
+HPLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->isActiveConfiguration()Z
+HPLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->release()V
 PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->setActive(Z)Z
 PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->setConfig(Landroid/media/AudioRecordingConfiguration;)Z
 HSPLcom/android/server/audio/RecordingActivityMonitor;-><clinit>()V
@@ -10108,6 +10686,10 @@
 PLcom/android/server/autofill/-$$Lambda$Q-iZrXrDBZAnj-gnbNOhH00i8uU;-><clinit>()V
 PLcom/android/server/autofill/-$$Lambda$Q-iZrXrDBZAnj-gnbNOhH00i8uU;-><init>()V
 HPLcom/android/server/autofill/-$$Lambda$Q-iZrXrDBZAnj-gnbNOhH00i8uU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$-Icm1WEZLv2n19GTOHkDYaCS_Oc;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Ljava/util/function/Function;Ljava/lang/Runnable;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;Ljava/util/concurrent/atomic/AtomicReference;)V
+PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$-Icm1WEZLv2n19GTOHkDYaCS_Oc;->run(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$EIoMQmktiMOrY4CSGrV0wR8Frho;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Ljava/lang/Runnable;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;Ljava/util/concurrent/atomic/AtomicReference;)V
+HPLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$EIoMQmktiMOrY4CSGrV0wR8Frho;->run(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$W6vVk8kBkoWieb1Jw-BucQNBDsM;-><clinit>()V
 PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$W6vVk8kBkoWieb1Jw-BucQNBDsM;-><init>()V
 HPLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$W6vVk8kBkoWieb1Jw-BucQNBDsM;->runNoResult(Ljava/lang/Object;)V
@@ -10138,6 +10720,7 @@
 PLcom/android/server/autofill/-$$Lambda$RemoteFillService$adrL6UDQX3d0e-QQL11h9TWJcM4;->run()V
 PLcom/android/server/autofill/-$$Lambda$RemoteFillService$lQ9Txb0D49A09bfomYmOPhXTXRE;-><init>(Lcom/android/server/autofill/RemoteFillService;)V
 PLcom/android/server/autofill/-$$Lambda$RemoteFillService$lQ9Txb0D49A09bfomYmOPhXTXRE;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/autofill/-$$Lambda$Session$0GS6sttVUDBqEERyy9UZSJ7uee4;-><init>(Lcom/android/server/autofill/Session;)V
 PLcom/android/server/autofill/-$$Lambda$Session$Fs9zdJwELk-9rAM3RiY6AyBKswI;-><clinit>()V
 PLcom/android/server/autofill/-$$Lambda$Session$Fs9zdJwELk-9rAM3RiY6AyBKswI;-><init>()V
 PLcom/android/server/autofill/-$$Lambda$Session$Fs9zdJwELk-9rAM3RiY6AyBKswI;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
@@ -10145,13 +10728,16 @@
 PLcom/android/server/autofill/-$$Lambda$Session$LM4xf4dbxH_NTutQzBkaQNxKbV0;-><init>()V
 PLcom/android/server/autofill/-$$Lambda$Session$LM4xf4dbxH_NTutQzBkaQNxKbV0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 HPLcom/android/server/autofill/-$$Lambda$Session$Llx808TSLfk504RH3XZNeG5LjG0;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
-PLcom/android/server/autofill/-$$Lambda$Session$Llx808TSLfk504RH3XZNeG5LjG0;->run()V
+HPLcom/android/server/autofill/-$$Lambda$Session$Llx808TSLfk504RH3XZNeG5LjG0;->run()V
 PLcom/android/server/autofill/-$$Lambda$Session$NtvZwhlT1c4eLjg2qI6EER2oCtY;-><clinit>()V
 PLcom/android/server/autofill/-$$Lambda$Session$NtvZwhlT1c4eLjg2qI6EER2oCtY;-><init>()V
 PLcom/android/server/autofill/-$$Lambda$Session$NtvZwhlT1c4eLjg2qI6EER2oCtY;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/autofill/-$$Lambda$Session$WB4wgUTKZbTqa0TBuDv7N86bIjU;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
+PLcom/android/server/autofill/-$$Lambda$Session$WB4wgUTKZbTqa0TBuDv7N86bIjU;->run()V
 PLcom/android/server/autofill/-$$Lambda$Session$cYu1t6lYVopApYW-vct82-7slZk;-><clinit>()V
 PLcom/android/server/autofill/-$$Lambda$Session$cYu1t6lYVopApYW-vct82-7slZk;-><init>()V
 PLcom/android/server/autofill/-$$Lambda$Session$cYu1t6lYVopApYW-vct82-7slZk;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/autofill/-$$Lambda$Session$c_2SPX0muCe0vkZycSqBzBG3j9I;-><init>(Lcom/android/server/autofill/Session;)V
 HPLcom/android/server/autofill/-$$Lambda$Session$eVloK5PeyeuPZn1G52SC-fXIsjk;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
 PLcom/android/server/autofill/-$$Lambda$Session$eVloK5PeyeuPZn1G52SC-fXIsjk;->run()V
 HPLcom/android/server/autofill/-$$Lambda$Session$rwjX85PTamn0L4a8CS_Nzf7He0g;-><init>(Lcom/android/server/autofill/Session;)V
@@ -10171,6 +10757,9 @@
 PLcom/android/server/autofill/-$$Lambda$sdnPz1IsKKVKSEXwI7z4h2-SxiM;-><clinit>()V
 PLcom/android/server/autofill/-$$Lambda$sdnPz1IsKKVKSEXwI7z4h2-SxiM;-><init>()V
 PLcom/android/server/autofill/-$$Lambda$sdnPz1IsKKVKSEXwI7z4h2-SxiM;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/autofill/-$$Lambda$wyZXeMneEp2gtSDLwv1U30wtJnU;-><clinit>()V
+PLcom/android/server/autofill/-$$Lambda$wyZXeMneEp2gtSDLwv1U30wtJnU;-><init>()V
+PLcom/android/server/autofill/-$$Lambda$wyZXeMneEp2gtSDLwv1U30wtJnU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/autofill/AutofillManagerService$1;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
 HPLcom/android/server/autofill/AutofillManagerService$1;->lambda$onReceive$0(Lcom/android/server/autofill/AutofillManagerServiceImpl;)V
 HPLcom/android/server/autofill/AutofillManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -10286,6 +10875,7 @@
 PLcom/android/server/autofill/AutofillManagerService;->isInstantServiceAllowed()Z
 HSPLcom/android/server/autofill/AutofillManagerService;->isSupported(Landroid/content/pm/UserInfo;)Z
 HSPLcom/android/server/autofill/AutofillManagerService;->isSupportedUser(Lcom/android/server/SystemService$TargetUser;)Z
+PLcom/android/server/autofill/AutofillManagerService;->isUserSupported(Lcom/android/server/SystemService$TargetUser;)Z
 PLcom/android/server/autofill/AutofillManagerService;->lambda$new$0$AutofillManagerService(Landroid/provider/DeviceConfig$Properties;)V
 HPLcom/android/server/autofill/AutofillManagerService;->logRequestLocked(Ljava/lang/String;)V
 HSPLcom/android/server/autofill/AutofillManagerService;->newServiceLocked(IZ)Lcom/android/server/autofill/AutofillManagerServiceImpl;
@@ -10297,6 +10887,7 @@
 PLcom/android/server/autofill/AutofillManagerService;->onServiceRemoved(Lcom/android/server/infra/AbstractPerUserSystemService;I)V
 PLcom/android/server/autofill/AutofillManagerService;->onSettingsChanged(ILjava/lang/String;)V
 HSPLcom/android/server/autofill/AutofillManagerService;->onStart()V
+PLcom/android/server/autofill/AutofillManagerService;->onSwitchUser(I)V
 HSPLcom/android/server/autofill/AutofillManagerService;->registerForExtraSettingsChanges(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
 HPLcom/android/server/autofill/AutofillManagerService;->send(Lcom/android/internal/os/IResultReceiver;I)V
 PLcom/android/server/autofill/AutofillManagerService;->send(Lcom/android/internal/os/IResultReceiver;II)V
@@ -10313,6 +10904,10 @@
 PLcom/android/server/autofill/AutofillManagerServiceImpl$1;->logAugmentedAutofillShown(I)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl$1;->resetLastResponse()V
 PLcom/android/server/autofill/AutofillManagerServiceImpl$1;->setLastResponse(I)V
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl$InlineSuggestionRenderCallbacksImpl;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;)V
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl$InlineSuggestionRenderCallbacksImpl;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;Lcom/android/server/autofill/AutofillManagerServiceImpl$1;)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl$InlineSuggestionRenderCallbacksImpl;->onServiceDied(Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl$InlineSuggestionRenderCallbacksImpl;->onServiceDied(Ljava/lang/Object;)V
 HPLcom/android/server/autofill/AutofillManagerServiceImpl$PruneTask;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;)V
 HPLcom/android/server/autofill/AutofillManagerServiceImpl$PruneTask;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;Lcom/android/server/autofill/AutofillManagerServiceImpl$1;)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl$PruneTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
@@ -10321,6 +10916,7 @@
 HSPLcom/android/server/autofill/AutofillManagerServiceImpl;-><init>(Lcom/android/server/autofill/AutofillManagerService;Ljava/lang/Object;Landroid/util/LocalLog;Landroid/util/LocalLog;ILcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/AutofillManagerService$AutofillCompatState;Z)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->access$200(Lcom/android/server/autofill/AutofillManagerServiceImpl;)Ljava/lang/Object;
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->access$300(Lcom/android/server/autofill/AutofillManagerServiceImpl;)Landroid/util/SparseArray;
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->access$302(Lcom/android/server/autofill/AutofillManagerServiceImpl;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;)Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->access$400(Lcom/android/server/autofill/AutofillManagerServiceImpl;)Ljava/lang/Object;
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->access$500(Lcom/android/server/autofill/AutofillManagerServiceImpl;)Landroid/util/SparseArray;
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->access$600(Lcom/android/server/autofill/AutofillManagerServiceImpl;)Ljava/lang/Object;
@@ -10344,10 +10940,11 @@
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->getFillEventHistory(I)Landroid/service/autofill/FillEventHistory;
 HPLcom/android/server/autofill/AutofillManagerServiceImpl;->getPreviousSessionsLocked(Lcom/android/server/autofill/Session;)Ljava/util/ArrayList;
 HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->getRemoteAugmentedAutofillServiceLocked()Lcom/android/server/autofill/RemoteAugmentedAutofillService;
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->getRemoteInlineSuggestionRenderServiceLocked()Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->getSupportedSmartSuggestionModesLocked()I
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->getUrlBarResourceIdsForCompatMode(Ljava/lang/String;)[Ljava/lang/String;
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->getUserData()Landroid/service/autofill/UserData;
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->handlePackageUpdateLocked(Ljava/lang/String;)V
+HPLcom/android/server/autofill/AutofillManagerServiceImpl;->handlePackageUpdateLocked(Ljava/lang/String;)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->handleSessionSave(Lcom/android/server/autofill/Session;)V
 HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->isAugmentedAutofillServiceAvailableLocked()Z
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->isAugmentedAutofillServiceForUserLocked(I)Z
@@ -10372,7 +10969,7 @@
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->removeSessionLocked(I)V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->resetAugmentedAutofillWhitelistLocked()V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->resetExtServiceLocked()V
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->resetLastAugmentedAutofillResponse()V
+HPLcom/android/server/autofill/AutofillManagerServiceImpl;->resetLastAugmentedAutofillResponse()V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->resetLastResponse()V
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->restoreSession(IILandroid/os/IBinder;Landroid/os/IBinder;)Z
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->sendActivityAssistDataToContentCapture(Landroid/os/IBinder;Landroid/os/Bundle;)Z
@@ -10387,10 +10984,12 @@
 HPLcom/android/server/autofill/AutofillManagerServiceImpl;->startSessionLocked(Landroid/os/IBinder;IILandroid/os/IBinder;Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;ZLandroid/content/ComponentName;ZZI)J
 HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->updateLocked(Z)Z
 HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->updateRemoteAugmentedAutofillService()V
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->updateRemoteInlineSuggestionRenderServiceLocked()V
 HPLcom/android/server/autofill/AutofillManagerServiceImpl;->updateSessionLocked(IILandroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;II)Z
 PLcom/android/server/autofill/AutofillManagerServiceImpl;->whitelistForAugmentedAutofillPackages(Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/autofill/FieldClassificationStrategy$1;-><init>(Lcom/android/server/autofill/FieldClassificationStrategy;)V
 PLcom/android/server/autofill/FieldClassificationStrategy$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/autofill/FieldClassificationStrategy$1;->onServiceDisconnected(Landroid/content/ComponentName;)V
 HSPLcom/android/server/autofill/FieldClassificationStrategy;-><init>(Landroid/content/Context;I)V
 PLcom/android/server/autofill/FieldClassificationStrategy;->access$000(Lcom/android/server/autofill/FieldClassificationStrategy;)Ljava/lang/Object;
 PLcom/android/server/autofill/FieldClassificationStrategy;->access$100(Lcom/android/server/autofill/FieldClassificationStrategy;)Landroid/service/autofill/IAutofillFieldClassificationService;
@@ -10422,29 +11021,47 @@
 HPLcom/android/server/autofill/Helper;->newLogMaker(ILjava/lang/String;IZ)Landroid/metrics/LogMaker;
 PLcom/android/server/autofill/Helper;->newLogMaker(ILjava/lang/String;Ljava/lang/String;IZ)Landroid/metrics/LogMaker;
 PLcom/android/server/autofill/Helper;->printlnRedactedText(Ljava/io/PrintWriter;Ljava/lang/CharSequence;)V
-PLcom/android/server/autofill/Helper;->sanitizeUrlBar(Landroid/app/assist/AssistStructure;[Ljava/lang/String;)Landroid/app/assist/AssistStructure$ViewNode;
+HPLcom/android/server/autofill/Helper;->sanitizeUrlBar(Landroid/app/assist/AssistStructure;[Ljava/lang/String;)Landroid/app/assist/AssistStructure$ViewNode;
 PLcom/android/server/autofill/Helper;->toArray(Landroid/util/ArraySet;)[Landroid/view/autofill/AutofillId;
+PLcom/android/server/autofill/InlineSuggestionSession$1;-><init>(Lcom/android/server/autofill/InlineSuggestionSession;)V
+PLcom/android/server/autofill/InlineSuggestionSession$1;->onInputMethodFinishInputView(Landroid/view/autofill/AutofillId;)V
+PLcom/android/server/autofill/InlineSuggestionSession$1;->onInputMethodStartInputView(Landroid/view/autofill/AutofillId;)V
 HPLcom/android/server/autofill/InlineSuggestionSession$ImeResponse;-><init>(Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;)V
 HPLcom/android/server/autofill/InlineSuggestionSession$ImeResponse;->getCallback()Lcom/android/internal/view/IInlineSuggestionsResponseCallback;
 HPLcom/android/server/autofill/InlineSuggestionSession$ImeResponse;->getRequest()Landroid/view/inputmethod/InlineSuggestionsRequest;
 PLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;-><init>(Ljava/util/concurrent/CompletableFuture;)V
 PLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;-><init>(Ljava/util/concurrent/CompletableFuture;Lcom/android/server/autofill/InlineSuggestionSession$1;)V
+PLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;-><init>(Ljava/util/concurrent/CompletableFuture;Lcom/android/server/autofill/InlineSuggestionSession$ImeStatusListener;)V
+PLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;-><init>(Ljava/util/concurrent/CompletableFuture;Lcom/android/server/autofill/InlineSuggestionSession$ImeStatusListener;Lcom/android/server/autofill/InlineSuggestionSession$1;)V
 HPLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;->onInlineSuggestionsRequest(Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;)V
-PLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;->onInlineSuggestionsUnsupported()V
+PLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;->onInlineSuggestionsRequest(Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/AutofillId;Z)V
+HPLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;->onInlineSuggestionsUnsupported()V
+HPLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;->onInputMethodFinishInputView(Landroid/view/autofill/AutofillId;)V
+HPLcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;->onInputMethodStartInputView(Landroid/view/autofill/AutofillId;)V
 HPLcom/android/server/autofill/InlineSuggestionSession;-><init>(Lcom/android/server/inputmethod/InputMethodManagerInternal;ILandroid/content/ComponentName;)V
+PLcom/android/server/autofill/InlineSuggestionSession;->access$000(Lcom/android/server/autofill/InlineSuggestionSession;)Ljava/lang/Object;
+PLcom/android/server/autofill/InlineSuggestionSession;->access$102(Lcom/android/server/autofill/InlineSuggestionSession;Landroid/view/autofill/AutofillId;)Landroid/view/autofill/AutofillId;
+PLcom/android/server/autofill/InlineSuggestionSession;->access$202(Lcom/android/server/autofill/InlineSuggestionSession;Z)Z
+PLcom/android/server/autofill/InlineSuggestionSession;->access$300(Lcom/android/server/autofill/InlineSuggestionSession;)Lcom/android/server/autofill/InlineSuggestionSession$AutofillResponse;
 PLcom/android/server/autofill/InlineSuggestionSession;->cancelCurrentRequest()V
 HPLcom/android/server/autofill/InlineSuggestionSession;->createRequest(Landroid/view/autofill/AutofillId;)V
 HPLcom/android/server/autofill/InlineSuggestionSession;->getPendingImeResponse()Ljava/util/concurrent/CompletableFuture;
+HPLcom/android/server/autofill/InlineSuggestionSession;->hideInlineSuggestionsUi(Landroid/view/autofill/AutofillId;)Z
+HPLcom/android/server/autofill/InlineSuggestionSession;->onCreateInlineSuggestionsRequest(Landroid/view/autofill/AutofillId;)V
 HPLcom/android/server/autofill/InlineSuggestionSession;->waitAndGetImeResponse()Lcom/android/server/autofill/InlineSuggestionSession$ImeResponse;
+HPLcom/android/server/autofill/InlineSuggestionSession;->waitAndGetInlineSuggestionsRequest()Ljava/util/Optional;
 PLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService$1;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->cancel()V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->isCompleted()Z
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->onCancellable(Landroid/os/ICancellationSignal;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->onSuccess()V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->onSuccess(Ljava/util/List;Ljava/util/List;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->onSuccess([Landroid/service/autofill/Dataset;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->onSuccess([Landroid/service/autofill/Dataset;Landroid/os/Bundle;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/service/autofill/augmented/IAugmentedAutofillService;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Lcom/android/internal/infra/AndroidFuture;Ljava/util/concurrent/atomic/AtomicReference;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/service/autofill/augmented/IAugmentedAutofillService;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;Lcom/android/internal/infra/AndroidFuture;Ljava/util/concurrent/atomic/AtomicReference;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/service/autofill/augmented/IAugmentedAutofillService;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;Lcom/android/internal/infra/AndroidFuture;Ljava/util/concurrent/atomic/AtomicReference;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/service/autofill/augmented/IAugmentedAutofillService;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Ljava/util/function/Function;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;Lcom/android/internal/infra/AndroidFuture;Ljava/util/concurrent/atomic/AtomicReference;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService$1;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/service/autofill/augmented/IAugmentedAutofillService;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLcom/android/internal/infra/AndroidFuture;Ljava/util/concurrent/atomic/AtomicReference;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService$1;->send(ILandroid/os/Bundle;)V
 HSPLcom/android/server/autofill/RemoteAugmentedAutofillService;-><clinit>()V
@@ -10452,6 +11069,7 @@
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$000(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)Lcom/android/server/autofill/RemoteAugmentedAutofillService$RemoteAugmentedAutofillServiceCallbacks;
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$000(Lcom/android/server/autofill/RemoteAugmentedAutofillService;I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$000(Lcom/android/server/autofill/RemoteAugmentedAutofillService;I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;)V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$100(Lcom/android/server/autofill/RemoteAugmentedAutofillService;ILandroid/view/inputmethod/InlineSuggestionsRequest;Ljava/util/List;Ljava/util/List;Landroid/view/autofill/AutofillId;Ljava/util/function/Function;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$100(Lcom/android/server/autofill/RemoteAugmentedAutofillService;ILandroid/view/inputmethod/InlineSuggestionsRequest;[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$100(Lcom/android/server/autofill/RemoteAugmentedAutofillService;I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Landroid/os/Bundle;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->access$100(Lcom/android/server/autofill/RemoteAugmentedAutofillService;I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;)V
@@ -10463,19 +11081,25 @@
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$maybeRequestShowInlineSuggestions$3$RemoteAugmentedAutofillService(ILandroid/view/autofill/IAutoFillManagerClient;Landroid/service/autofill/Dataset;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onDestroyAutofillWindowsRequest$3(Landroid/service/autofill/augmented/IAugmentedAutofillService;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onDestroyAutofillWindowsRequest$4(Landroid/service/autofill/augmented/IAugmentedAutofillService;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onRequestAutofillLocked$0$RemoteAugmentedAutofillService(Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Ljava/lang/Runnable;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;Ljava/util/concurrent/atomic/AtomicReference;Landroid/service/autofill/augmented/IAugmentedAutofillService;)Ljava/util/concurrent/CompletableFuture;
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onRequestAutofillLocked$0$RemoteAugmentedAutofillService(Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Ljava/lang/Runnable;Ljava/util/concurrent/atomic/AtomicReference;Landroid/service/autofill/augmented/IAugmentedAutofillService;)Ljava/util/concurrent/CompletableFuture;
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onRequestAutofillLocked$0$RemoteAugmentedAutofillService(Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Ljava/util/concurrent/atomic/AtomicReference;Landroid/service/autofill/augmented/IAugmentedAutofillService;)Ljava/util/concurrent/CompletableFuture;
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onRequestAutofillLocked$0$RemoteAugmentedAutofillService(Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/view/inputmethod/InlineSuggestionsRequest;Ljava/util/function/Function;Ljava/lang/Runnable;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;Ljava/util/concurrent/atomic/AtomicReference;Landroid/service/autofill/augmented/IAugmentedAutofillService;)Ljava/util/concurrent/CompletableFuture;
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onRequestAutofillLocked$0$RemoteAugmentedAutofillService(Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLjava/util/concurrent/atomic/AtomicReference;Landroid/service/autofill/augmented/IAugmentedAutofillService;)Ljava/util/concurrent/CompletableFuture;
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onRequestAutofillLocked$1$RemoteAugmentedAutofillService(Ljava/util/concurrent/atomic/AtomicReference;Landroid/content/ComponentName;ILjava/lang/Void;Ljava/lang/Throwable;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeHandleInlineSuggestions(I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeHandleInlineSuggestions(I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;)V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeRequestShowInlineSuggestions(ILandroid/view/inputmethod/InlineSuggestionsRequest;Ljava/util/List;Ljava/util/List;Landroid/view/autofill/AutofillId;Ljava/util/function/Function;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeRequestShowInlineSuggestions(ILandroid/view/inputmethod/InlineSuggestionsRequest;[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeRequestShowInlineSuggestions(ILandroid/view/inputmethod/InlineSuggestionsRequest;[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeRequestShowInlineSuggestions(I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Landroid/os/Bundle;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->maybeRequestShowInlineSuggestions(I[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/IAutoFillManagerClient;Ljava/lang/Runnable;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->onDestroyAutofillWindowsRequest()V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->onRequestAutofillLocked(ILandroid/view/autofill/IAutoFillManagerClient;ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->onRequestAutofillLocked(ILandroid/view/autofill/IAutoFillManagerClient;ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->onRequestAutofillLocked(ILandroid/view/autofill/IAutoFillManagerClient;ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Ljava/lang/Runnable;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->onRequestAutofillLocked(ILandroid/view/autofill/IAutoFillManagerClient;ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Ljava/lang/Runnable;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;)V
+HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->onRequestAutofillLocked(ILandroid/view/autofill/IAutoFillManagerClient;ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;Landroid/view/inputmethod/InlineSuggestionsRequest;Ljava/util/function/Function;Ljava/lang/Runnable;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->onServiceConnectionStatusChanged(Landroid/os/IInterface;Z)V
 PLcom/android/server/autofill/RemoteAugmentedAutofillService;->onServiceConnectionStatusChanged(Landroid/service/autofill/augmented/IAugmentedAutofillService;Z)V
 HPLcom/android/server/autofill/RemoteAugmentedAutofillService;->toString()Ljava/lang/String;
@@ -10502,12 +11126,25 @@
 PLcom/android/server/autofill/RemoteFillService;->onSaveRequest(Landroid/service/autofill/SaveRequest;)V
 HPLcom/android/server/autofill/RemoteFillService;->onServiceConnectionStatusChanged(Landroid/os/IInterface;Z)V
 HPLcom/android/server/autofill/RemoteFillService;->onServiceConnectionStatusChanged(Landroid/service/autofill/IAutoFillService;Z)V
+HSPLcom/android/server/autofill/RemoteInlineSuggestionRenderService;-><init>(Landroid/content/Context;Landroid/content/ComponentName;Ljava/lang/String;ILcom/android/server/autofill/RemoteInlineSuggestionRenderService$InlineSuggestionRenderCallbacks;ZZ)V
+HSPLcom/android/server/autofill/RemoteInlineSuggestionRenderService;->ensureBound()V
 HSPLcom/android/server/autofill/RemoteInlineSuggestionRenderService;->getServiceComponentName(Landroid/content/Context;)Landroid/content/ComponentName;
 HSPLcom/android/server/autofill/RemoteInlineSuggestionRenderService;->getServiceComponentName(Landroid/content/Context;I)Landroid/content/ComponentName;
 HSPLcom/android/server/autofill/RemoteInlineSuggestionRenderService;->getServiceInfo(Landroid/content/Context;)Landroid/content/pm/ServiceInfo;
 HSPLcom/android/server/autofill/RemoteInlineSuggestionRenderService;->getServiceInfo(Landroid/content/Context;I)Landroid/content/pm/ServiceInfo;
-PLcom/android/server/autofill/Session$1;-><init>(Lcom/android/server/autofill/Session;)V
+PLcom/android/server/autofill/RemoteInlineSuggestionRenderService;->getServiceInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
+PLcom/android/server/autofill/RemoteInlineSuggestionRenderService;->getServiceInterface(Landroid/os/IBinder;)Landroid/service/autofill/IInlineSuggestionRenderService;
+PLcom/android/server/autofill/RemoteInlineSuggestionRenderService;->getTimeoutIdleBindMillis()J
+PLcom/android/server/autofill/RemoteInlineSuggestionRenderService;->handleOnConnectedStateChanged(Z)V
+HPLcom/android/server/autofill/Session$1;-><init>(Lcom/android/server/autofill/Session;)V
 HPLcom/android/server/autofill/Session$1;->onHandleAssistData(Landroid/os/Bundle;)V
+PLcom/android/server/autofill/Session$InlineSuggestionsRequestCallbackImpl;-><init>()V
+PLcom/android/server/autofill/Session$InlineSuggestionsRequestCallbackImpl;-><init>(Lcom/android/server/autofill/Session$1;)V
+PLcom/android/server/autofill/Session$InlineSuggestionsRequestCallbackImpl;->access$1500(Lcom/android/server/autofill/Session$InlineSuggestionsRequestCallbackImpl;)Landroid/view/inputmethod/InlineSuggestionsRequest;
+PLcom/android/server/autofill/Session$InlineSuggestionsRequestCallbackImpl;->access$1800(Lcom/android/server/autofill/Session$InlineSuggestionsRequestCallbackImpl;)Lcom/android/internal/view/IInlineSuggestionsResponseCallback;
+PLcom/android/server/autofill/Session$InlineSuggestionsRequestCallbackImpl;->getRequest()Landroid/view/inputmethod/InlineSuggestionsRequest;
+PLcom/android/server/autofill/Session$InlineSuggestionsRequestCallbackImpl;->getResponseCallback()Lcom/android/internal/view/IInlineSuggestionsResponseCallback;
+PLcom/android/server/autofill/Session$InlineSuggestionsRequestCallbackImpl;->onInlineSuggestionsRequest(Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;)V
 PLcom/android/server/autofill/Session;-><clinit>()V
 PLcom/android/server/autofill/Session;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;Lcom/android/server/autofill/ui/AutoFillUI;Landroid/content/Context;Landroid/os/Handler;ILjava/lang/Object;IIILandroid/os/IBinder;Landroid/os/IBinder;ZLandroid/util/LocalLog;Landroid/util/LocalLog;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZI)V
 HPLcom/android/server/autofill/Session;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;Lcom/android/server/autofill/ui/AutoFillUI;Landroid/content/Context;Landroid/os/Handler;ILjava/lang/Object;IIILandroid/os/IBinder;Landroid/os/IBinder;ZLandroid/util/LocalLog;Landroid/util/LocalLog;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZILcom/android/server/inputmethod/InputMethodManagerInternal;)V
@@ -10522,7 +11159,7 @@
 HPLcom/android/server/autofill/Session;->access$1400(Lcom/android/server/autofill/Session;)Lcom/android/server/autofill/Session$InlineSuggestionsRequestCallbackImpl;
 PLcom/android/server/autofill/Session;->access$1500(Lcom/android/server/autofill/Session;)Landroid/os/Bundle;
 HPLcom/android/server/autofill/Session;->access$1600(Lcom/android/server/autofill/Session;)Landroid/os/Bundle;
-PLcom/android/server/autofill/Session;->access$1600(Lcom/android/server/autofill/Session;)Landroid/os/IBinder;
+HPLcom/android/server/autofill/Session;->access$1600(Lcom/android/server/autofill/Session;)Landroid/os/IBinder;
 HPLcom/android/server/autofill/Session;->access$300(Lcom/android/server/autofill/Session;)Landroid/view/autofill/AutofillId;
 HPLcom/android/server/autofill/Session;->access$400(Lcom/android/server/autofill/Session;)Ljava/lang/Object;
 HPLcom/android/server/autofill/Session;->access$500(Lcom/android/server/autofill/Session;)Z
@@ -10563,13 +11200,14 @@
 HPLcom/android/server/autofill/Session;->getLastResponseLocked(Ljava/lang/String;)Landroid/service/autofill/FillResponse;
 PLcom/android/server/autofill/Session;->getSanitizedValue(Landroid/util/ArrayMap;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;)Landroid/view/autofill/AutofillValue;
 PLcom/android/server/autofill/Session;->getSaveInfoFlagsLocked()I
-PLcom/android/server/autofill/Session;->getSaveInfoLocked()Landroid/service/autofill/SaveInfo;
+HPLcom/android/server/autofill/Session;->getSaveInfoLocked()Landroid/service/autofill/SaveInfo;
 HPLcom/android/server/autofill/Session;->getUiForShowing()Lcom/android/server/autofill/ui/AutoFillUI;
 PLcom/android/server/autofill/Session;->getValueFromContextsLocked(Landroid/view/autofill/AutofillId;)Landroid/view/autofill/AutofillValue;
 PLcom/android/server/autofill/Session;->handleLogContextCommitted()V
 HPLcom/android/server/autofill/Session;->hideAugmentedAutofillLocked(Lcom/android/server/autofill/ViewState;)V
 HPLcom/android/server/autofill/Session;->isIgnoredLocked(Landroid/view/autofill/AutofillId;)Z
-PLcom/android/server/autofill/Session;->isInlineSuggestionsEnabled()Z
+HPLcom/android/server/autofill/Session;->isInlineSuggestionsEnabled()Z
+HPLcom/android/server/autofill/Session;->isInlineSuggestionsEnabledLocked()Z
 HPLcom/android/server/autofill/Session;->isSaveUiPendingLocked()Z
 HPLcom/android/server/autofill/Session;->isSavingLocked()Z
 PLcom/android/server/autofill/Session;->lambda$Fs9zdJwELk-9rAM3RiY6AyBKswI(Lcom/android/server/autofill/Session;Landroid/content/IntentSender;Landroid/content/Intent;)V
@@ -10579,17 +11217,19 @@
 HPLcom/android/server/autofill/Session;->lambda$logFieldClassificationScore$1$Session(I[Landroid/view/autofill/AutofillId;[Ljava/lang/String;[Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/os/Bundle;)V
 HPLcom/android/server/autofill/Session;->lambda$setClientLocked$0$Session()V
 PLcom/android/server/autofill/Session;->lambda$triggerAugmentedAutofillLocked$2(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
-PLcom/android/server/autofill/Session;->lambda$triggerAugmentedAutofillLocked$4(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
+HPLcom/android/server/autofill/Session;->lambda$triggerAugmentedAutofillLocked$4(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
+PLcom/android/server/autofill/Session;->lambda$triggerAugmentedAutofillLocked$5(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
 PLcom/android/server/autofill/Session;->lambda$v6ZVyksJuHdWgJ1F8aoa_1LJWPo(Lcom/android/server/autofill/Session;)V
 PLcom/android/server/autofill/Session;->logAuthenticationStatusLocked(II)V
 PLcom/android/server/autofill/Session;->logContextCommitted()V
 PLcom/android/server/autofill/Session;->logContextCommitted(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
 HPLcom/android/server/autofill/Session;->logContextCommittedLocked(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
 PLcom/android/server/autofill/Session;->logFieldClassificationScore(Lcom/android/server/autofill/FieldClassificationStrategy;Landroid/service/autofill/FieldClassificationUserData;)V
+HPLcom/android/server/autofill/Session;->logIfViewClearedLocked(Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;Lcom/android/server/autofill/ViewState;)V
 PLcom/android/server/autofill/Session;->logSaveShown()V
 HPLcom/android/server/autofill/Session;->maybeRequestInlineSuggestionsRequestThenFillLocked(Lcom/android/server/autofill/ViewState;II)V
 HPLcom/android/server/autofill/Session;->mergePreviousSessionLocked(Z)Ljava/util/ArrayList;
-PLcom/android/server/autofill/Session;->newLogMaker(I)Landroid/metrics/LogMaker;
+HPLcom/android/server/autofill/Session;->newLogMaker(I)Landroid/metrics/LogMaker;
 HPLcom/android/server/autofill/Session;->newLogMaker(ILjava/lang/String;)Landroid/metrics/LogMaker;
 PLcom/android/server/autofill/Session;->notifyDisableAutofillToClient(JLandroid/content/ComponentName;)V
 PLcom/android/server/autofill/Session;->notifyUnavailableToClient(ILjava/util/ArrayList;)V
@@ -10618,6 +11258,7 @@
 HPLcom/android/server/autofill/Session;->shouldStartNewPartitionLocked(Landroid/view/autofill/AutofillId;)Z
 PLcom/android/server/autofill/Session;->showSaveLocked()Z
 PLcom/android/server/autofill/Session;->startAuthentication(ILandroid/content/IntentSender;Landroid/content/Intent;)V
+PLcom/android/server/autofill/Session;->startAuthentication(ILandroid/content/IntentSender;Landroid/content/Intent;Z)V
 PLcom/android/server/autofill/Session;->startIntentSender(Landroid/content/IntentSender;Landroid/content/Intent;)V
 PLcom/android/server/autofill/Session;->startIntentSenderAndFinishSession(Landroid/content/IntentSender;)V
 PLcom/android/server/autofill/Session;->switchActivity(Landroid/os/IBinder;Landroid/os/IBinder;)V
@@ -10626,6 +11267,7 @@
 HPLcom/android/server/autofill/Session;->updateLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;II)V
 HPLcom/android/server/autofill/Session;->updateTrackedIdsLocked()V
 PLcom/android/server/autofill/Session;->updateValuesForSaveLocked()V
+HPLcom/android/server/autofill/Session;->updateViewStateAndUiOnValueChangedLocked(Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;Lcom/android/server/autofill/ViewState;I)V
 PLcom/android/server/autofill/Session;->writeLog(I)V
 PLcom/android/server/autofill/Session;->wtf(Ljava/lang/Exception;Ljava/lang/String;[Ljava/lang/Object;)V
 HPLcom/android/server/autofill/ViewState;-><init>(Landroid/view/autofill/AutofillId;Lcom/android/server/autofill/ViewState$Listener;I)V
@@ -10698,6 +11340,7 @@
 PLcom/android/server/autofill/ui/-$$Lambda$InlineSuggestionFactory$20Xpxfm8UCdjf-klcBqO784Dbdg;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/autofill/ui/-$$Lambda$InlineSuggestionFactory$HUQuYhrTG8enbhukk4IiDs7rF0c;-><init>(Lcom/android/server/autofill/ui/InlineSuggestionFactory$InlineSuggestionUiCallback;Landroid/service/autofill/Dataset;)V
 PLcom/android/server/autofill/ui/-$$Lambda$InlineSuggestionFactory$HUQuYhrTG8enbhukk4IiDs7rF0c;->onClick(Landroid/view/View;)V
+PLcom/android/server/autofill/ui/-$$Lambda$InlineSuggestionFactory$jlH6zmWiBgLd1Lh95Rw6iMdFzEY;-><init>(Lcom/android/server/autofill/ui/InlineSuggestionFactory$InlineSuggestionUiCallback;)V
 PLcom/android/server/autofill/ui/-$$Lambda$SaveUi$9E3wVcFykoYBpXtez_dJMd6U_Nw;-><init>(Lcom/android/server/autofill/ui/SaveUi;)V
 PLcom/android/server/autofill/ui/-$$Lambda$SaveUi$E9O26NP1L_DDYBfaO7fQ0hhPAx8;-><init>(Lcom/android/server/autofill/ui/SaveUi;Landroid/service/autofill/SaveInfo;)V
 PLcom/android/server/autofill/ui/-$$Lambda$SaveUi$E9O26NP1L_DDYBfaO7fQ0hhPAx8;->onClick(Landroid/view/View;)V
@@ -10814,8 +11457,10 @@
 PLcom/android/server/autofill/ui/InlineSuggestionFactory$1;->lambda$provideContent$0(Lcom/android/server/autofill/ui/InlineSuggestionUi;Landroid/service/autofill/InlinePresentation;IILandroid/view/View$OnClickListener;Lcom/android/internal/view/inline/IInlineContentCallback;)V
 PLcom/android/server/autofill/ui/InlineSuggestionFactory$1;->provideContent(IILcom/android/internal/view/inline/IInlineContentCallback;)V
 PLcom/android/server/autofill/ui/InlineSuggestionFactory;->createAugmentedInlineSuggestionsResponse(Landroid/view/inputmethod/InlineSuggestionsRequest;[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Landroid/content/Context;Lcom/android/server/autofill/ui/InlineSuggestionFactory$InlineSuggestionUiCallback;Ljava/lang/Runnable;)Landroid/view/inputmethod/InlineSuggestionsResponse;
+PLcom/android/server/autofill/ui/InlineSuggestionFactory;->createAugmentedInlineSuggestionsResponse(Landroid/view/inputmethod/InlineSuggestionsRequest;[Landroid/service/autofill/Dataset;Landroid/view/autofill/AutofillId;Landroid/content/Context;Lcom/android/server/autofill/ui/InlineSuggestionFactory$InlineSuggestionUiCallback;Ljava/lang/Runnable;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;)Landroid/view/inputmethod/InlineSuggestionsResponse;
 PLcom/android/server/autofill/ui/InlineSuggestionFactory;->createInlineContentProvider(Landroid/service/autofill/InlinePresentation;Lcom/android/server/autofill/ui/InlineSuggestionUi;Landroid/view/View$OnClickListener;)Lcom/android/internal/view/inline/IInlineContentProvider$Stub;
 PLcom/android/server/autofill/ui/InlineSuggestionFactory;->createInlineSuggestion(ZLandroid/service/autofill/Dataset;ILandroid/service/autofill/InlinePresentation;Lcom/android/server/autofill/ui/InlineSuggestionUi;Ljava/util/function/BiFunction;)Landroid/view/inputmethod/InlineSuggestion;
+PLcom/android/server/autofill/ui/InlineSuggestionFactory;->createInlineSuggestionsResponseInternal(ZLandroid/view/inputmethod/InlineSuggestionsRequest;Landroid/service/autofill/FillResponse;[Landroid/service/autofill/Dataset;Ljava/lang/String;Ljava/util/List;Landroid/view/autofill/AutofillId;Landroid/content/Context;Ljava/lang/Runnable;Ljava/util/function/BiConsumer;Lcom/android/server/autofill/RemoteInlineSuggestionRenderService;)Landroid/view/inputmethod/InlineSuggestionsResponse;
 PLcom/android/server/autofill/ui/InlineSuggestionFactory;->createInlineSuggestionsResponseInternal(ZLandroid/view/inputmethod/InlineSuggestionsRequest;[Landroid/service/autofill/Dataset;Ljava/util/List;Landroid/view/autofill/AutofillId;Landroid/content/Context;Ljava/lang/Runnable;Ljava/util/function/BiFunction;)Landroid/view/inputmethod/InlineSuggestionsResponse;
 PLcom/android/server/autofill/ui/InlineSuggestionFactory;->lambda$createAugmentedInlineSuggestionsResponse$0(Lcom/android/server/autofill/ui/InlineSuggestionFactory$InlineSuggestionUiCallback;Landroid/service/autofill/Dataset;Landroid/view/View;)V
 PLcom/android/server/autofill/ui/InlineSuggestionFactory;->lambda$createAugmentedInlineSuggestionsResponse$1(Lcom/android/server/autofill/ui/InlineSuggestionFactory$InlineSuggestionUiCallback;Landroid/service/autofill/Dataset;Ljava/lang/Integer;)Landroid/view/View$OnClickListener;
@@ -10904,7 +11549,7 @@
 PLcom/android/server/backup/-$$Lambda$pM_c5tVAGDtxjxLF_ONtACWWq6Q;-><init>(Lcom/android/server/backup/TransportManager;)V
 PLcom/android/server/backup/-$$Lambda$pM_c5tVAGDtxjxLF_ONtACWWq6Q;->run()V
 PLcom/android/server/backup/BackupAgentTimeoutParameters;-><init>(Landroid/os/Handler;Landroid/content/ContentResolver;)V
-PLcom/android/server/backup/BackupAgentTimeoutParameters;->getFullBackupAgentTimeoutMillis()J
+HPLcom/android/server/backup/BackupAgentTimeoutParameters;->getFullBackupAgentTimeoutMillis()J
 HPLcom/android/server/backup/BackupAgentTimeoutParameters;->getKvBackupAgentTimeoutMillis()J
 PLcom/android/server/backup/BackupAgentTimeoutParameters;->getQuotaExceededTimeoutMillis()J
 PLcom/android/server/backup/BackupAgentTimeoutParameters;->getRestoreAgentFinishedTimeoutMillis()J
@@ -10959,7 +11604,7 @@
 PLcom/android/server/backup/BackupManagerService;->dumpWithoutCheckingPermission(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/backup/BackupManagerService;->endFullBackup(I)V
 HPLcom/android/server/backup/BackupManagerService;->enforceCallingPermissionOnUserId(ILjava/lang/String;)V
-PLcom/android/server/backup/BackupManagerService;->enforcePermissionsOnUser(I)V
+HPLcom/android/server/backup/BackupManagerService;->enforcePermissionsOnUser(I)V
 PLcom/android/server/backup/BackupManagerService;->getActivatedFileForNonSystemUser(I)Ljava/io/File;
 PLcom/android/server/backup/BackupManagerService;->getAvailableRestoreToken(ILjava/lang/String;)J
 PLcom/android/server/backup/BackupManagerService;->getAvailableRestoreTokenForUser(ILjava/lang/String;)J
@@ -10992,7 +11637,7 @@
 PLcom/android/server/backup/BackupManagerService;->onRemovedNonSystemUser(I)V
 PLcom/android/server/backup/BackupManagerService;->onStopUser(I)V
 PLcom/android/server/backup/BackupManagerService;->onUnlockUser(I)V
-PLcom/android/server/backup/BackupManagerService;->opComplete(IIJ)V
+HPLcom/android/server/backup/BackupManagerService;->opComplete(IIJ)V
 HPLcom/android/server/backup/BackupManagerService;->opCompleteForUser(IIJ)V
 PLcom/android/server/backup/BackupManagerService;->postToHandler(Ljava/lang/Runnable;)V
 HPLcom/android/server/backup/BackupManagerService;->requestBackup(I[Ljava/lang/String;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;I)I
@@ -11117,7 +11762,7 @@
 PLcom/android/server/backup/TransportManager;->fromPackageFilter(Ljava/lang/String;)Ljava/util/function/Predicate;
 HPLcom/android/server/backup/TransportManager;->getCurrentTransportClient(Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
 PLcom/android/server/backup/TransportManager;->getCurrentTransportClientOrThrow(Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
-PLcom/android/server/backup/TransportManager;->getCurrentTransportName()Ljava/lang/String;
+HPLcom/android/server/backup/TransportManager;->getCurrentTransportName()Ljava/lang/String;
 HPLcom/android/server/backup/TransportManager;->getRegisteredTransportComponentLocked(Ljava/lang/String;)Landroid/content/ComponentName;
 HPLcom/android/server/backup/TransportManager;->getRegisteredTransportDescriptionLocked(Ljava/lang/String;)Lcom/android/server/backup/TransportManager$TransportDescription;
 PLcom/android/server/backup/TransportManager;->getRegisteredTransportDescriptionOrThrowLocked(Landroid/content/ComponentName;)Lcom/android/server/backup/TransportManager$TransportDescription;
@@ -11160,7 +11805,7 @@
 HPLcom/android/server/backup/UserBackupManagerFiles;->getBaseStateDir(I)Ljava/io/File;
 PLcom/android/server/backup/UserBackupManagerFiles;->getDataDir(I)Ljava/io/File;
 HPLcom/android/server/backup/UserBackupManagerFiles;->getStateDirInSystemDir(I)Ljava/io/File;
-PLcom/android/server/backup/UserBackupManagerFiles;->getStateFileInSystemDir(Ljava/lang/String;I)Ljava/io/File;
+HPLcom/android/server/backup/UserBackupManagerFiles;->getStateFileInSystemDir(Ljava/lang/String;I)Ljava/io/File;
 PLcom/android/server/backup/UserBackupManagerService$1;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
 HPLcom/android/server/backup/UserBackupManagerService$1;->run()V
 PLcom/android/server/backup/UserBackupManagerService$2;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
@@ -11236,7 +11881,7 @@
 PLcom/android/server/backup/UserBackupManagerService;->getExcludedRestoreKeys(Ljava/lang/String;)Ljava/util/Set;
 PLcom/android/server/backup/UserBackupManagerService;->getExcludedRestoreKeys([Ljava/lang/String;)Ljava/util/Map;
 PLcom/android/server/backup/UserBackupManagerService;->getJournal()Lcom/android/server/backup/DataChangedJournal;
-PLcom/android/server/backup/UserBackupManagerService;->getMessageIdForOperationType(I)I
+HPLcom/android/server/backup/UserBackupManagerService;->getMessageIdForOperationType(I)I
 PLcom/android/server/backup/UserBackupManagerService;->getPackageManager()Landroid/content/pm/PackageManager;
 PLcom/android/server/backup/UserBackupManagerService;->getPackageManagerBinder()Landroid/content/pm/IPackageManager;
 PLcom/android/server/backup/UserBackupManagerService;->getPendingBackups()Ljava/util/HashMap;
@@ -11302,7 +11947,7 @@
 PLcom/android/server/backup/UserBackupManagerService;->updateStateForTransport(Ljava/lang/String;)V
 HPLcom/android/server/backup/UserBackupManagerService;->updateTransportAttributes(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
 HPLcom/android/server/backup/UserBackupManagerService;->updateTransportAttributes(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
-PLcom/android/server/backup/UserBackupManagerService;->waitUntilOperationComplete(I)Z
+HPLcom/android/server/backup/UserBackupManagerService;->waitUntilOperationComplete(I)Z
 HPLcom/android/server/backup/UserBackupManagerService;->writeFullBackupScheduleAsync()V
 HPLcom/android/server/backup/UserBackupManagerService;->writeRestoreTokens()V
 HPLcom/android/server/backup/UserBackupManagerService;->writeToJournalLocked(Ljava/lang/String;)V
@@ -11320,7 +11965,7 @@
 HPLcom/android/server/backup/fullbackup/AppMetadataBackupWriter;->getManifestBytes(Landroid/content/pm/PackageInfo;Z)[B
 PLcom/android/server/backup/fullbackup/AppMetadataBackupWriter;->getMetadataBytes(Ljava/lang/String;)[B
 PLcom/android/server/backup/fullbackup/AppMetadataBackupWriter;->writeWidgetData(Ljava/io/DataOutputStream;[B)V
-PLcom/android/server/backup/fullbackup/FullBackupEngine$FullBackupRunner;-><init>(Lcom/android/server/backup/fullbackup/FullBackupEngine;Lcom/android/server/backup/UserBackupManagerService;Landroid/content/pm/PackageInfo;Landroid/app/IBackupAgent;Landroid/os/ParcelFileDescriptor;IZ)V
+HPLcom/android/server/backup/fullbackup/FullBackupEngine$FullBackupRunner;-><init>(Lcom/android/server/backup/fullbackup/FullBackupEngine;Lcom/android/server/backup/UserBackupManagerService;Landroid/content/pm/PackageInfo;Landroid/app/IBackupAgent;Landroid/os/ParcelFileDescriptor;IZ)V
 HPLcom/android/server/backup/fullbackup/FullBackupEngine$FullBackupRunner;->run()V
 PLcom/android/server/backup/fullbackup/FullBackupEngine$FullBackupRunner;->shouldWriteApk(Landroid/content/pm/ApplicationInfo;ZZ)Z
 HPLcom/android/server/backup/fullbackup/FullBackupEngine;-><init>(Lcom/android/server/backup/UserBackupManagerService;Ljava/io/OutputStream;Lcom/android/server/backup/fullbackup/FullBackupPreflight;Landroid/content/pm/PackageInfo;ZLcom/android/server/backup/BackupRestoreTask;JII)V
@@ -11335,7 +11980,7 @@
 PLcom/android/server/backup/fullbackup/FullBackupEngine;->tearDown()V
 HPLcom/android/server/backup/fullbackup/FullBackupEntry;-><init>(Ljava/lang/String;J)V
 PLcom/android/server/backup/fullbackup/FullBackupEntry;->compareTo(Lcom/android/server/backup/fullbackup/FullBackupEntry;)I
-PLcom/android/server/backup/fullbackup/FullBackupEntry;->compareTo(Ljava/lang/Object;)I
+HPLcom/android/server/backup/fullbackup/FullBackupEntry;->compareTo(Ljava/lang/Object;)I
 HPLcom/android/server/backup/fullbackup/FullBackupTask;-><init>(Landroid/app/backup/IFullBackupRestoreObserver;)V
 HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;-><init>(Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;Lcom/android/server/backup/transport/TransportClient;JII)V
 PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;->getExpectedSizeOrErrorCode()J
@@ -11344,8 +11989,8 @@
 HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;->operationComplete(J)V
 HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;->preflightFullBackup(Landroid/content/pm/PackageInfo;Landroid/app/IBackupAgent;)I
 HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;-><init>(Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;Landroid/os/ParcelFileDescriptor;Landroid/content/pm/PackageInfo;Lcom/android/server/backup/transport/TransportClient;JII)V
-PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->getBackupResultBlocking()I
-PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->getPreflightResultBlocking()J
+HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->getBackupResultBlocking()I
+HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->getPreflightResultBlocking()J
 PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->handleCancel(Z)V
 PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->operationComplete(J)V
 HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->registerTask()V
@@ -11436,14 +12081,14 @@
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;Ljava/util/List;Lcom/android/server/backup/DataChangedJournal;Lcom/android/server/backup/keyvalue/KeyValueBackupReporter;Lcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/List;ZZ)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->SHA1Checksum([B)Ljava/lang/String;
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->applyStateTransaction(I)V
-PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->backupPackage(Ljava/lang/String;)V
+HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->backupPackage(Ljava/lang/String;)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->backupPm()V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->bindAgent(Landroid/content/pm/PackageInfo;)Landroid/app/IBackupAgent;
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->checkAgentResult(Landroid/content/pm/PackageInfo;Lcom/android/server/backup/remote/RemoteResult;)V
-PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->checkBackupData(Landroid/content/pm/ApplicationInfo;Ljava/io/File;)V
+HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->checkBackupData(Landroid/content/pm/ApplicationInfo;Ljava/io/File;)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->cleanUpAgent(I)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->cleanUpAgentForError(Lcom/android/server/backup/keyvalue/BackupException;)V
-PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->cleanUpAgentForTransportStatus(I)V
+HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->cleanUpAgentForTransportStatus(I)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->clearStatus(Ljava/lang/String;)V
 PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->clearStatus(Ljava/lang/String;Ljava/io/File;)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->createFullBackupTask(Ljava/util/List;)Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;
@@ -11458,7 +12103,7 @@
 PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->getSucceedingPackages()[Ljava/lang/String;
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->getSuccessStateFileFor(Ljava/lang/String;)Ljava/io/File;
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->getTopLevelSuccessStateDirectory(Z)Ljava/io/File;
-PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->handleTransportStatus(ILjava/lang/String;J)V
+HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->handleTransportStatus(ILjava/lang/String;J)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->informTransportOfUnchangedApps(Ljava/util/Set;)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->isEligibleForNoDataCall(Landroid/content/pm/PackageInfo;)Z
 PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->lambda$extractAgentData$0$KeyValueBackupTask(Landroid/app/IBackupAgent;JILandroid/app/backup/IBackupCallback;)V
@@ -11467,7 +12112,7 @@
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->revertTask()V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->run()V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->sendDataToTransport()I
-PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->sendDataToTransport(Landroid/content/pm/PackageInfo;)I
+HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->sendDataToTransport(Landroid/content/pm/PackageInfo;)I
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->sendNoDataChangedTo(Lcom/android/internal/backup/IBackupTransport;Landroid/content/pm/PackageInfo;I)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->setSuccessState(Ljava/lang/String;Z)V
 HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->start(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;Ljava/util/List;Lcom/android/server/backup/DataChangedJournal;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;Lcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/List;ZZ)Lcom/android/server/backup/keyvalue/KeyValueBackupTask;
@@ -11587,6 +12232,7 @@
 HPLcom/android/server/backup/transport/TransportClient;->connectOrThrow(Ljava/lang/String;)Lcom/android/internal/backup/IBackupTransport;
 HPLcom/android/server/backup/transport/TransportClient;->finalize()V
 PLcom/android/server/backup/transport/TransportClient;->getConnectedTransport(Ljava/lang/String;)Lcom/android/internal/backup/IBackupTransport;
+PLcom/android/server/backup/transport/TransportClient;->getLogBuffer()Ljava/util/List;
 PLcom/android/server/backup/transport/TransportClient;->getTransportComponent()Landroid/content/ComponentName;
 HPLcom/android/server/backup/transport/TransportClient;->lambda$connect$0(Ljava/util/concurrent/CompletableFuture;Lcom/android/internal/backup/IBackupTransport;Lcom/android/server/backup/transport/TransportClient;)V
 PLcom/android/server/backup/transport/TransportClient;->lambda$notifyListener$1$TransportClient(Lcom/android/server/backup/transport/TransportConnectionListener;Lcom/android/internal/backup/IBackupTransport;)V
@@ -11681,9 +12327,13 @@
 PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$rf3hjPI_nf4EvVsQV7gFCF1-HpI;->run()V
 PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$yj0NG4umGnnyUerNM_EKxeka05A;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/os/IBinder;)V
 PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$yj0NG4umGnnyUerNM_EKxeka05A;->run()V
+HSPLcom/android/server/biometrics/-$$Lambda$BiometricStrengthController$tO9bm1fJ-LRkdtTtLs_q184crJU;-><init>(Lcom/android/server/biometrics/BiometricStrengthController;)V
 HSPLcom/android/server/biometrics/AuthService$AuthServiceImpl;-><init>(Lcom/android/server/biometrics/AuthService;)V
 HSPLcom/android/server/biometrics/AuthService$AuthServiceImpl;-><init>(Lcom/android/server/biometrics/AuthService;Lcom/android/server/biometrics/AuthService$1;)V
+PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->authenticate(Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiver;Ljava/lang/String;Landroid/os/Bundle;)V
 HPLcom/android/server/biometrics/AuthService$AuthServiceImpl;->canAuthenticate(Ljava/lang/String;II)I
+PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->cancelAuthentication(Landroid/os/IBinder;Ljava/lang/String;)V
+HPLcom/android/server/biometrics/AuthService$AuthServiceImpl;->getAuthenticatorIds()[J
 PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->hasEnrolledBiometrics(ILjava/lang/String;)Z
 HSPLcom/android/server/biometrics/AuthService$AuthServiceImpl;->registerEnabledOnKeyguardCallback(Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)V
 PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->resetLockout([B)V
@@ -11726,8 +12376,11 @@
 PLcom/android/server/biometrics/BiometricService$2;->onDeviceCredentialPressed()V
 PLcom/android/server/biometrics/BiometricService$2;->onDialogDismissed(I)V
 PLcom/android/server/biometrics/BiometricService$2;->onError(IIII)V
+PLcom/android/server/biometrics/BiometricService$2;->onTryAgainPressed()V
 HSPLcom/android/server/biometrics/BiometricService$3;-><init>(Lcom/android/server/biometrics/BiometricService;)V
+PLcom/android/server/biometrics/BiometricService$3;->onUserSwitchComplete(I)V
 PLcom/android/server/biometrics/BiometricService$AuthSession;-><init>(Lcom/android/server/biometrics/BiometricService;Ljava/util/HashMap;Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiver;Ljava/lang/String;Landroid/os/Bundle;IIIIZ)V
+PLcom/android/server/biometrics/BiometricService$AuthSession;->access$1800(Lcom/android/server/biometrics/BiometricService$AuthSession;)J
 PLcom/android/server/biometrics/BiometricService$AuthSession;->access$1802(Lcom/android/server/biometrics/BiometricService$AuthSession;J)J
 PLcom/android/server/biometrics/BiometricService$AuthSession;->access$1900(Lcom/android/server/biometrics/BiometricService$AuthSession;)J
 PLcom/android/server/biometrics/BiometricService$AuthSession;->access$1902(Lcom/android/server/biometrics/BiometricService$AuthSession;J)J
@@ -11739,12 +12392,17 @@
 HSPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;-><init>(Lcom/android/server/biometrics/BiometricService;)V
 HSPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;-><init>(Lcom/android/server/biometrics/BiometricService;Lcom/android/server/biometrics/BiometricService$1;)V
 PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->authenticate(Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiver;Ljava/lang/String;Landroid/os/Bundle;)V
+PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->authenticate(Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiver;Ljava/lang/String;Landroid/os/Bundle;III)V
 HPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->canAuthenticate(Ljava/lang/String;II)I
+HPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->canAuthenticate(Ljava/lang/String;III)I
 PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->cancelAuthentication(Landroid/os/IBinder;Ljava/lang/String;)V
+PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->cancelAuthentication(Landroid/os/IBinder;Ljava/lang/String;III)V
+HPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->getAuthenticatorIds()[J
 HPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->hasEnrolledBiometrics(ILjava/lang/String;)Z
 PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->onReadyForAuthentication(IZI)V
 HSPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->registerAuthenticator(IIILandroid/hardware/biometrics/IBiometricAuthenticator;)V
 HSPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->registerEnabledOnKeyguardCallback(Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)V
+HSPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->registerEnabledOnKeyguardCallback(Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;I)V
 HPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->resetLockout([B)V
 HPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->setActiveUser(I)V
 HSPLcom/android/server/biometrics/BiometricService$EnabledOnKeyguardCallback;-><init>(Lcom/android/server/biometrics/BiometricService;Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)V
@@ -11775,18 +12433,24 @@
 HSPLcom/android/server/biometrics/BiometricService;->access$1100(Lcom/android/server/biometrics/BiometricService;)Ljava/util/List;
 HSPLcom/android/server/biometrics/BiometricService;->access$1200(Lcom/android/server/biometrics/BiometricService;)V
 PLcom/android/server/biometrics/BiometricService;->access$1300(Lcom/android/server/biometrics/BiometricService;)V
+PLcom/android/server/biometrics/BiometricService;->access$1300(Lcom/android/server/biometrics/BiometricService;ILandroid/os/Bundle;Ljava/lang/String;Z)Landroid/util/Pair;
+HSPLcom/android/server/biometrics/BiometricService;->access$1400(Lcom/android/server/biometrics/BiometricService;)Lcom/android/server/biometrics/BiometricService$Injector;
 PLcom/android/server/biometrics/BiometricService;->access$1400(Lcom/android/server/biometrics/BiometricService;ILandroid/os/Bundle;Ljava/lang/String;)Landroid/util/Pair;
 HPLcom/android/server/biometrics/BiometricService;->access$1400(Lcom/android/server/biometrics/BiometricService;ILandroid/os/Bundle;Ljava/lang/String;Z)Landroid/util/Pair;
 HSPLcom/android/server/biometrics/BiometricService;->access$1500(Lcom/android/server/biometrics/BiometricService;)Lcom/android/server/biometrics/BiometricService$Injector;
+HSPLcom/android/server/biometrics/BiometricService;->access$1500(Lcom/android/server/biometrics/BiometricService;Ljava/lang/String;Landroid/os/IBinder;)V
 HSPLcom/android/server/biometrics/BiometricService;->access$1600(Lcom/android/server/biometrics/BiometricService;Ljava/lang/String;Landroid/os/IBinder;)V
 PLcom/android/server/biometrics/BiometricService;->access$200(Lcom/android/server/biometrics/BiometricService;IIII)V
 PLcom/android/server/biometrics/BiometricService;->access$300(Lcom/android/server/biometrics/BiometricService;ILjava/lang/String;)V
 PLcom/android/server/biometrics/BiometricService;->access$400(Lcom/android/server/biometrics/BiometricService;I)V
+PLcom/android/server/biometrics/BiometricService;->access$500(Lcom/android/server/biometrics/BiometricService;)V
 PLcom/android/server/biometrics/BiometricService;->access$600(Lcom/android/server/biometrics/BiometricService;IZI)V
 PLcom/android/server/biometrics/BiometricService;->access$700(Lcom/android/server/biometrics/BiometricService;Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiver;Ljava/lang/String;Landroid/os/Bundle;III)V
 PLcom/android/server/biometrics/BiometricService;->access$800(Lcom/android/server/biometrics/BiometricService;Landroid/os/IBinder;Ljava/lang/String;)V
+PLcom/android/server/biometrics/BiometricService;->access$900(Lcom/android/server/biometrics/BiometricService;III)V
 HPLcom/android/server/biometrics/BiometricService;->authenticateInternal(Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiver;Ljava/lang/String;Landroid/os/Bundle;IIII)V
 PLcom/android/server/biometrics/BiometricService;->biometricStatusToBiometricConstant(I)I
+PLcom/android/server/biometrics/BiometricService;->cancelInternal(Landroid/os/IBinder;Ljava/lang/String;IIIZ)V
 PLcom/android/server/biometrics/BiometricService;->cancelInternal(Landroid/os/IBinder;Ljava/lang/String;Z)V
 HPLcom/android/server/biometrics/BiometricService;->checkAndGetAuthenticators(ILandroid/os/Bundle;Ljava/lang/String;)Landroid/util/Pair;
 HPLcom/android/server/biometrics/BiometricService;->checkAndGetAuthenticators(ILandroid/os/Bundle;Ljava/lang/String;Z)Landroid/util/Pair;
@@ -11796,12 +12460,15 @@
 PLcom/android/server/biometrics/BiometricService;->handleAuthenticate(Landroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiver;Ljava/lang/String;Landroid/os/Bundle;III)V
 PLcom/android/server/biometrics/BiometricService;->handleAuthenticationRejected()V
 PLcom/android/server/biometrics/BiometricService;->handleAuthenticationSucceeded(Z[B)V
+PLcom/android/server/biometrics/BiometricService;->handleAuthenticationTimedOut(III)V
 PLcom/android/server/biometrics/BiometricService;->handleCancelAuthentication(Landroid/os/IBinder;Ljava/lang/String;)V
+PLcom/android/server/biometrics/BiometricService;->handleCancelAuthentication(Landroid/os/IBinder;Ljava/lang/String;III)V
 PLcom/android/server/biometrics/BiometricService;->handleOnAcquired(ILjava/lang/String;)V
 PLcom/android/server/biometrics/BiometricService;->handleOnDeviceCredentialPressed()V
 PLcom/android/server/biometrics/BiometricService;->handleOnDismissed(I)V
 PLcom/android/server/biometrics/BiometricService;->handleOnError(IIII)V
 HPLcom/android/server/biometrics/BiometricService;->handleOnReadyForAuthentication(IZI)V
+PLcom/android/server/biometrics/BiometricService;->handleOnTryAgainPressed()V
 HPLcom/android/server/biometrics/BiometricService;->isBiometricDisabledByDevicePolicy(II)Z
 HPLcom/android/server/biometrics/BiometricService;->isEnabledForApp(II)Z
 PLcom/android/server/biometrics/BiometricService;->lambda$handleAuthenticate$0$BiometricService(Landroid/os/Bundle;ILjava/lang/String;Landroid/hardware/biometrics/IBiometricServiceReceiver;Landroid/os/IBinder;JIII)V
@@ -11813,6 +12480,7 @@
 HSPLcom/android/server/biometrics/BiometricServiceBase$1;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
 HPLcom/android/server/biometrics/BiometricServiceBase$1;->run()V
 HSPLcom/android/server/biometrics/BiometricServiceBase$2;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
+PLcom/android/server/biometrics/BiometricServiceBase$2;->onUserSwitching(I)V
 HPLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZ)V
 HPLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZLandroid/hardware/biometrics/IBiometricNativeHandle;)V
 PLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;->handleFailedAttempt()I
@@ -11830,6 +12498,7 @@
 PLcom/android/server/biometrics/BiometricServiceBase$EnrollClientImpl;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;II[BZLjava/lang/String;[II)V
 PLcom/android/server/biometrics/BiometricServiceBase$EnrollClientImpl;->notifyUserActivity()V
 HSPLcom/android/server/biometrics/BiometricServiceBase$H;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
+PLcom/android/server/biometrics/BiometricServiceBase$H;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/biometrics/BiometricServiceBase$InternalEnumerateClient;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIZLjava/lang/String;Ljava/util/List;Lcom/android/server/biometrics/BiometricUtils;)V
 HSPLcom/android/server/biometrics/BiometricServiceBase$InternalEnumerateClient;->doTemplateCleanup()V
 HSPLcom/android/server/biometrics/BiometricServiceBase$InternalEnumerateClient;->getUnknownHALTemplates()Ljava/util/List;
@@ -11855,7 +12524,7 @@
 HPLcom/android/server/biometrics/BiometricServiceBase;->access$200(Lcom/android/server/biometrics/BiometricServiceBase;Ljava/lang/String;)Z
 PLcom/android/server/biometrics/BiometricServiceBase;->access$300(Lcom/android/server/biometrics/BiometricServiceBase;)Lcom/android/server/biometrics/BiometricServiceBase$BiometricTaskStackListener;
 PLcom/android/server/biometrics/BiometricServiceBase;->access$400(Lcom/android/server/biometrics/BiometricServiceBase;)Landroid/app/IActivityTaskManager;
-PLcom/android/server/biometrics/BiometricServiceBase;->access$500(Lcom/android/server/biometrics/BiometricServiceBase;)V
+HPLcom/android/server/biometrics/BiometricServiceBase;->access$500(Lcom/android/server/biometrics/BiometricServiceBase;)V
 PLcom/android/server/biometrics/BiometricServiceBase;->access$600(Lcom/android/server/biometrics/BiometricServiceBase;)Lcom/android/server/biometrics/BiometricServiceBase$PerformanceStats;
 HPLcom/android/server/biometrics/BiometricServiceBase;->access$700(Lcom/android/server/biometrics/BiometricServiceBase;)Lcom/android/server/biometrics/ClientMonitor;
 PLcom/android/server/biometrics/BiometricServiceBase;->access$702(Lcom/android/server/biometrics/BiometricServiceBase;Lcom/android/server/biometrics/ClientMonitor;)Lcom/android/server/biometrics/ClientMonitor;
@@ -11874,6 +12543,7 @@
 PLcom/android/server/biometrics/BiometricServiceBase;->enrollInternal(Lcom/android/server/biometrics/BiometricServiceBase$EnrollClientImpl;I)V
 HSPLcom/android/server/biometrics/BiometricServiceBase;->enumerateInternal(Lcom/android/server/biometrics/EnumerateClient;)V
 HSPLcom/android/server/biometrics/BiometricServiceBase;->enumerateUser(I)V
+HPLcom/android/server/biometrics/BiometricServiceBase;->getAuthenticatorId()J
 HPLcom/android/server/biometrics/BiometricServiceBase;->getAuthenticatorId(Ljava/lang/String;)J
 HSPLcom/android/server/biometrics/BiometricServiceBase;->getCurrentClient()Lcom/android/server/biometrics/ClientMonitor;
 HSPLcom/android/server/biometrics/BiometricServiceBase;->getEffectiveUserId(I)I
@@ -11884,11 +12554,14 @@
 HSPLcom/android/server/biometrics/BiometricServiceBase;->handleEnumerate(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
 HPLcom/android/server/biometrics/BiometricServiceBase;->handleError(JII)V
 PLcom/android/server/biometrics/BiometricServiceBase;->handleRemoved(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
+PLcom/android/server/biometrics/BiometricServiceBase;->handleUserSwitching(I)V
 HSPLcom/android/server/biometrics/BiometricServiceBase;->hasPermission(Ljava/lang/String;)Z
+HSPLcom/android/server/biometrics/BiometricServiceBase;->initConfiguredStrengthInternal(I)V
 HPLcom/android/server/biometrics/BiometricServiceBase;->isCurrentUserOrProfile(I)Z
 PLcom/android/server/biometrics/BiometricServiceBase;->isForegroundActivity(II)Z
 HSPLcom/android/server/biometrics/BiometricServiceBase;->isKeyguard(Ljava/lang/String;)Z
 PLcom/android/server/biometrics/BiometricServiceBase;->isRestricted()Z
+PLcom/android/server/biometrics/BiometricServiceBase;->isStrongBiometric()Z
 HSPLcom/android/server/biometrics/BiometricServiceBase;->isWorkProfile(I)Z
 HSPLcom/android/server/biometrics/BiometricServiceBase;->lambda$addLockoutResetCallback$8$BiometricServiceBase(Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
 HPLcom/android/server/biometrics/BiometricServiceBase;->lambda$authenticateInternal$3$BiometricServiceBase(JLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;Ljava/lang/String;)V
@@ -11977,11 +12650,11 @@
 HSPLcom/android/server/biometrics/SensorConfig;-><init>(Ljava/lang/String;)V
 HPLcom/android/server/biometrics/Utils;->biometricConstantsToBiometricManager(I)I
 PLcom/android/server/biometrics/Utils;->combineAuthenticatorBundles(Landroid/os/Bundle;)V
-PLcom/android/server/biometrics/Utils;->dupNativeHandle(Landroid/hardware/biometrics/IBiometricNativeHandle;)Landroid/os/NativeHandle;
+HPLcom/android/server/biometrics/Utils;->dupNativeHandle(Landroid/hardware/biometrics/IBiometricNativeHandle;)Landroid/os/NativeHandle;
 PLcom/android/server/biometrics/Utils;->getAuthenticationTypeForResult(I)I
 PLcom/android/server/biometrics/Utils;->getPublicBiometricStrength(I)I
 HPLcom/android/server/biometrics/Utils;->getPublicBiometricStrength(Landroid/os/Bundle;)I
-PLcom/android/server/biometrics/Utils;->isAtLeastStrength(II)Z
+HPLcom/android/server/biometrics/Utils;->isAtLeastStrength(II)Z
 PLcom/android/server/biometrics/Utils;->isBiometricAllowed(Landroid/os/Bundle;)Z
 PLcom/android/server/biometrics/Utils;->isBiometricRequested(Landroid/os/Bundle;)Z
 PLcom/android/server/biometrics/Utils;->isCredentialRequested(I)Z
@@ -12034,7 +12707,7 @@
 PLcom/android/server/biometrics/face/FaceConstants;->tagHalDied()Ljava/lang/String;
 HSPLcom/android/server/biometrics/face/FaceService$1;-><init>(Lcom/android/server/biometrics/face/FaceService;)V
 HPLcom/android/server/biometrics/face/FaceService$1;->lambda$onAcquired$1$FaceService$1(JII)V
-PLcom/android/server/biometrics/face/FaceService$1;->lambda$onAuthenticated$2$FaceService$1(IJLjava/util/ArrayList;)V
+HPLcom/android/server/biometrics/face/FaceService$1;->lambda$onAuthenticated$2$FaceService$1(IJLjava/util/ArrayList;)V
 PLcom/android/server/biometrics/face/FaceService$1;->lambda$onEnrollResult$0$FaceService$1(IIJI)V
 HSPLcom/android/server/biometrics/face/FaceService$1;->lambda$onEnumerate$5$FaceService$1(Ljava/util/ArrayList;J)V
 HPLcom/android/server/biometrics/face/FaceService$1;->lambda$onError$3$FaceService$1(JII)V
@@ -12092,6 +12765,7 @@
 PLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->getFeature(IILandroid/hardware/face/IFaceServiceReceiver;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->getFirstTemplateForUser(I)I
 HSPLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->hasEnrolledFaces(ILjava/lang/String;)Z
+PLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->initConfiguredStrength(I)V
 HSPLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->isHardwareDetected(Ljava/lang/String;)Z
 PLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->lambda$getFeature$3$FaceService$FaceServiceWrapper(ILjava/lang/String;ILandroid/hardware/face/IFaceServiceReceiver;)V
 PLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->lambda$resetLockout$1$FaceService$FaceServiceWrapper([B)V
@@ -12160,9 +12834,11 @@
 HPLcom/android/server/biometrics/face/FaceService;->access$3500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HPLcom/android/server/biometrics/face/FaceService;->access$3600(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;Ljava/lang/String;)V
 HPLcom/android/server/biometrics/face/FaceService;->access$3600(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
-PLcom/android/server/biometrics/face/FaceService;->access$3700(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;Ljava/lang/String;)V
+HPLcom/android/server/biometrics/face/FaceService;->access$3700(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$3700(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$3800(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;Ljava/lang/String;IIIZ)V
+PLcom/android/server/biometrics/face/FaceService;->access$3800(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$3900(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;Ljava/lang/String;IIIZ)V
 PLcom/android/server/biometrics/face/FaceService;->access$3900(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$400(Lcom/android/server/biometrics/face/FaceService;)[I
 PLcom/android/server/biometrics/face/FaceService;->access$4000(Lcom/android/server/biometrics/face/FaceService;I)V
@@ -12174,29 +12850,29 @@
 PLcom/android/server/biometrics/face/FaceService;->access$4400(Lcom/android/server/biometrics/face/FaceService;Lcom/android/server/biometrics/RemovalClient;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$4900(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HPLcom/android/server/biometrics/face/FaceService;->access$500(Lcom/android/server/biometrics/face/FaceService;)[I
-PLcom/android/server/biometrics/face/FaceService;->access$5000(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+HSPLcom/android/server/biometrics/face/FaceService;->access$5000(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$5001(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
 PLcom/android/server/biometrics/face/FaceService;->access$5100(Lcom/android/server/biometrics/face/FaceService;Ljava/io/FileDescriptor;[Ljava/lang/String;)V
-PLcom/android/server/biometrics/face/FaceService;->access$5101(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
+HSPLcom/android/server/biometrics/face/FaceService;->access$5101(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
 PLcom/android/server/biometrics/face/FaceService;->access$5200(Lcom/android/server/biometrics/face/FaceService;Ljava/io/PrintWriter;)V
 PLcom/android/server/biometrics/face/FaceService;->access$5300(Lcom/android/server/biometrics/face/FaceService;Ljava/io/PrintWriter;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$5300(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
-PLcom/android/server/biometrics/face/FaceService;->access$5400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+HSPLcom/android/server/biometrics/face/FaceService;->access$5400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$5400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
 HSPLcom/android/server/biometrics/face/FaceService;->access$5500(Lcom/android/server/biometrics/face/FaceService;)Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
-PLcom/android/server/biometrics/face/FaceService;->access$5500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
+HSPLcom/android/server/biometrics/face/FaceService;->access$5500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
 HSPLcom/android/server/biometrics/face/FaceService;->access$5600(Lcom/android/server/biometrics/face/FaceService;)J
-PLcom/android/server/biometrics/face/FaceService;->access$5600(Lcom/android/server/biometrics/face/FaceService;)Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
-PLcom/android/server/biometrics/face/FaceService;->access$5700(Lcom/android/server/biometrics/face/FaceService;)J
+HSPLcom/android/server/biometrics/face/FaceService;->access$5600(Lcom/android/server/biometrics/face/FaceService;)Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
+HSPLcom/android/server/biometrics/face/FaceService;->access$5700(Lcom/android/server/biometrics/face/FaceService;)J
 PLcom/android/server/biometrics/face/FaceService;->access$6100(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$6200(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$6200(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
 HSPLcom/android/server/biometrics/face/FaceService;->access$6300(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$6300(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
-PLcom/android/server/biometrics/face/FaceService;->access$6400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+HSPLcom/android/server/biometrics/face/FaceService;->access$6400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$6400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
 HPLcom/android/server/biometrics/face/FaceService;->access$6500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)J
-PLcom/android/server/biometrics/face/FaceService;->access$6500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
+HSPLcom/android/server/biometrics/face/FaceService;->access$6500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
 PLcom/android/server/biometrics/face/FaceService;->access$6600(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)J
 PLcom/android/server/biometrics/face/FaceService;->access$6600(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$6700(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
@@ -12206,12 +12882,17 @@
 PLcom/android/server/biometrics/face/FaceService;->access$6900(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/face/FaceService;->access$7000(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$7100(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/face/FaceService;->access$7100(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$7200(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/face/FaceService;->access$7300(Lcom/android/server/biometrics/face/FaceService;)Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
 PLcom/android/server/biometrics/face/FaceService;->access$7302(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;)Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
 PLcom/android/server/biometrics/face/FaceService;->access$7400(Lcom/android/server/biometrics/face/FaceService;)I
+PLcom/android/server/biometrics/face/FaceService;->access$7400(Lcom/android/server/biometrics/face/FaceService;)Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
 PLcom/android/server/biometrics/face/FaceService;->access$7500(Lcom/android/server/biometrics/face/FaceService;)I
 PLcom/android/server/biometrics/face/FaceService;->access$7600(Lcom/android/server/biometrics/face/FaceService;)I
+PLcom/android/server/biometrics/face/FaceService;->access$7600(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/face/FaceService;->access$7700(Lcom/android/server/biometrics/face/FaceService;)I
+PLcom/android/server/biometrics/face/FaceService;->access$7700(Lcom/android/server/biometrics/face/FaceService;I)V
 PLcom/android/server/biometrics/face/FaceService;->access$7800(Lcom/android/server/biometrics/face/FaceService;)I
 PLcom/android/server/biometrics/face/FaceService;->access$7900(Lcom/android/server/biometrics/face/FaceService;)I
 PLcom/android/server/biometrics/face/FaceService;->access$800(Lcom/android/server/biometrics/face/FaceService;)Landroid/app/NotificationManager;
@@ -12231,16 +12912,21 @@
 HSPLcom/android/server/biometrics/face/FaceService;->access$8902(Lcom/android/server/biometrics/face/FaceService;I)I
 PLcom/android/server/biometrics/face/FaceService;->access$900(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$9000(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
-PLcom/android/server/biometrics/face/FaceService;->access$9002(Lcom/android/server/biometrics/face/FaceService;I)I
-PLcom/android/server/biometrics/face/FaceService;->access$9100(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+HSPLcom/android/server/biometrics/face/FaceService;->access$9002(Lcom/android/server/biometrics/face/FaceService;I)I
+HSPLcom/android/server/biometrics/face/FaceService;->access$9100(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 HSPLcom/android/server/biometrics/face/FaceService;->access$9100(Lcom/android/server/biometrics/face/FaceService;)V
 PLcom/android/server/biometrics/face/FaceService;->access$9200(Lcom/android/server/biometrics/face/FaceService;)V
 HSPLcom/android/server/biometrics/face/FaceService;->access$9201(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
+PLcom/android/server/biometrics/face/FaceService;->access$9300(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/face/FaceService;->access$9301(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
 PLcom/android/server/biometrics/face/FaceService;->access$9401(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
+PLcom/android/server/biometrics/face/FaceService;->access$9402(Lcom/android/server/biometrics/face/FaceService;I)I
+PLcom/android/server/biometrics/face/FaceService;->access$9500(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/face/FaceService;->access$9600(Lcom/android/server/biometrics/face/FaceService;)V
 HPLcom/android/server/biometrics/face/FaceService;->access$9601(Lcom/android/server/biometrics/face/FaceService;JII)V
 HPLcom/android/server/biometrics/face/FaceService;->access$9701(Lcom/android/server/biometrics/face/FaceService;JII)V
 PLcom/android/server/biometrics/face/FaceService;->access$9702(Lcom/android/server/biometrics/face/FaceService;J)J
+PLcom/android/server/biometrics/face/FaceService;->access$9801(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
 PLcom/android/server/biometrics/face/FaceService;->access$9802(Lcom/android/server/biometrics/face/FaceService;I)I
 PLcom/android/server/biometrics/face/FaceService;->access$9901(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;Ljava/util/ArrayList;)V
 PLcom/android/server/biometrics/face/FaceService;->checkAppOps(ILjava/lang/String;)Z
@@ -12256,6 +12942,7 @@
 HPLcom/android/server/biometrics/face/FaceService;->getLockoutMode()I
 HSPLcom/android/server/biometrics/face/FaceService;->getManageBiometricPermission()Ljava/lang/String;
 HSPLcom/android/server/biometrics/face/FaceService;->getTag()Ljava/lang/String;
+PLcom/android/server/biometrics/face/FaceService;->handleUserSwitching(I)V
 HSPLcom/android/server/biometrics/face/FaceService;->hasEnrolledBiometrics(I)Z
 PLcom/android/server/biometrics/face/FaceService;->hasReachedEnrollmentLimit(I)Z
 HSPLcom/android/server/biometrics/face/FaceService;->lambda$onStart$0$FaceService()V
@@ -12302,6 +12989,7 @@
 HSPLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$YOMIOLvco2SvXVeJIulOSVKdX7A;->run()V
 HSPLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;-><init>(Landroid/hardware/fingerprint/IFingerprintService;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->cancelAuthenticationFromService(Landroid/os/IBinder;Ljava/lang/String;IIIZ)V
+PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->getAuthenticatorId()J
 HPLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->hasEnrolledTemplates(ILjava/lang/String;)Z
 HPLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->isHardwareDetected(Ljava/lang/String;)Z
 PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->prepareForAuthentication(ZLandroid/os/IBinder;JILandroid/hardware/biometrics/IBiometricServiceReceiverInternal;Ljava/lang/String;IIII)V
@@ -12313,7 +13001,7 @@
 HPLcom/android/server/biometrics/fingerprint/FingerprintConstants;->actionBiometricAuth()I
 PLcom/android/server/biometrics/fingerprint/FingerprintConstants;->actionBiometricEnroll()I
 HPLcom/android/server/biometrics/fingerprint/FingerprintConstants;->logTag()Ljava/lang/String;
-PLcom/android/server/biometrics/fingerprint/FingerprintConstants;->tagAuthToken()Ljava/lang/String;
+HPLcom/android/server/biometrics/fingerprint/FingerprintConstants;->tagAuthToken()Ljava/lang/String;
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService$1;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->lambda$onAcquired$1$FingerprintService$1(JII)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->lambda$onAcquired_2_2$1$FingerprintService$1(JII)V
@@ -12344,7 +13032,7 @@
 HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->handleFailedAttempt()I
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->isFingerprint()Z
 HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->resetFailedAttempts()V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->shouldFrameworkHandleLockout()Z
+HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->shouldFrameworkHandleLockout()Z
 HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->statsModality()I
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper$1;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;II[BZLjava/lang/String;[II)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper$1;->shouldVibrate()Z
@@ -12362,9 +13050,11 @@
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->cancelEnrollment(Landroid/os/IBinder;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->enroll(Landroid/os/IBinder;[BILandroid/hardware/fingerprint/IFingerprintServiceReceiver;ILjava/lang/String;)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->getAuthenticatorId()J
 HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->getAuthenticatorId(Ljava/lang/String;)J
 HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->getEnrolledFingerprints(ILjava/lang/String;)Ljava/util/List;
 HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->hasEnrolledFingerprints(ILjava/lang/String;)Z
+HSPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->initConfiguredStrength(I)V
 HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->isHardwareDetected(Ljava/lang/String;)Z
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->postEnroll(Landroid/os/IBinder;)I
 PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->preEnroll(Landroid/os/IBinder;)J
@@ -12431,26 +13121,49 @@
 HPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$4800(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;ZIII)Z
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$4900(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;ZIII)Z
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$500(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/os/IBinder;)J
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5000(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
 HPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5001(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)J
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5100(Lcom/android/server/biometrics/fingerprint/FingerprintService;)J
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5100(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5200(Lcom/android/server/biometrics/fingerprint/FingerprintService;)I
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5200(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5300(Lcom/android/server/biometrics/fingerprint/FingerprintService;)I
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5300(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$5400(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$600(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
+HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6000(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
+HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6100(Lcom/android/server/biometrics/fingerprint/FingerprintService;I)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6100(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6200(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6200(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Z
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6200(Lcom/android/server/biometrics/fingerprint/FingerprintService;I)V
 HPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6300(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6300(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Z
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6400(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6500(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6600(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6700(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6800(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6801(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6900(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6900(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/ClientMonitor;
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$700(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/os/IBinder;)I
+HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7000(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7001(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7100(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7101(Lcom/android/server/biometrics/fingerprint/FingerprintService;JII)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7101(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7201(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7401(Lcom/android/server/biometrics/fingerprint/FingerprintService;JII)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7501(Lcom/android/server/biometrics/fingerprint/FingerprintService;JII)V
 HPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7501(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;Ljava/util/ArrayList;)V
 HPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7601(Lcom/android/server/biometrics/fingerprint/FingerprintService;JII)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7701(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7801(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;Ljava/util/ArrayList;)V
+HPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7901(Lcom/android/server/biometrics/fingerprint/FingerprintService;JII)V
+PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$7901(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;Ljava/util/ArrayList;)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$800(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;)V
+HPLcom/android/server/biometrics/fingerprint/FingerprintService;->access$8001(Lcom/android/server/biometrics/fingerprint/FingerprintService;JII)V
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$900(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Z
 PLcom/android/server/biometrics/fingerprint/FingerprintService;->cancelLockoutResetForUser(I)V
 HPLcom/android/server/biometrics/fingerprint/FingerprintService;->checkAppOps(ILjava/lang/String;)Z
@@ -12462,7 +13175,7 @@
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->getDaemonWrapper()Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->getEnrolledTemplates(I)Ljava/util/List;
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->getFingerprintDaemon()Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->getHalDeviceId()J
+HPLcom/android/server/biometrics/fingerprint/FingerprintService;->getHalDeviceId()J
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->getLockoutBroadcastPermission()Ljava/lang/String;
 HPLcom/android/server/biometrics/fingerprint/FingerprintService;->getLockoutMode()I
 HSPLcom/android/server/biometrics/fingerprint/FingerprintService;->getLockoutResetIntent()Ljava/lang/String;
@@ -12529,6 +13242,7 @@
 HSPLcom/android/server/camera/CameraServiceProxy;->notifySwitchWithRetriesLocked(I)V
 HSPLcom/android/server/camera/CameraServiceProxy;->onStart()V
 HSPLcom/android/server/camera/CameraServiceProxy;->onStartUser(I)V
+PLcom/android/server/camera/CameraServiceProxy;->onSwitchUser(I)V
 HSPLcom/android/server/camera/CameraServiceProxy;->switchUserLocked(I)V
 HSPLcom/android/server/camera/CameraServiceProxy;->toArray(Ljava/util/Collection;)[I
 HPLcom/android/server/camera/CameraServiceProxy;->updateActivityCount(Ljava/lang/String;IILjava/lang/String;I)V
@@ -12576,7 +13290,7 @@
 PLcom/android/server/clipboard/ClipboardService;->revokeItemLocked(Landroid/content/ClipData$Item;I)V
 PLcom/android/server/clipboard/ClipboardService;->revokeUriLocked(Landroid/net/Uri;I)V
 PLcom/android/server/clipboard/ClipboardService;->revokeUris(Lcom/android/server/clipboard/ClipboardService$PerUserClipboard;)V
-PLcom/android/server/clipboard/ClipboardService;->setPrimaryClipInternal(Landroid/content/ClipData;I)V
+HPLcom/android/server/clipboard/ClipboardService;->setPrimaryClipInternal(Landroid/content/ClipData;I)V
 HPLcom/android/server/clipboard/ClipboardService;->setPrimaryClipInternal(Lcom/android/server/clipboard/ClipboardService$PerUserClipboard;Landroid/content/ClipData;I)V
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$0VKz9ecFqvfFXzRrfaz-Pf5wW2s;-><clinit>()V
 PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$0VKz9ecFqvfFXzRrfaz-Pf5wW2s;-><init>()V
@@ -12689,6 +13403,7 @@
 HSPLcom/android/server/compat/CompatConfig;->getDisabledChanges(Landroid/content/pm/ApplicationInfo;)[J
 HSPLcom/android/server/compat/CompatConfig;->initConfigFromLib(Ljava/io/File;)Lcom/android/server/compat/CompatConfig;
 HSPLcom/android/server/compat/CompatConfig;->initConfigFromLib(Ljava/io/File;)V
+HSPLcom/android/server/compat/CompatConfig;->invalidateCache()V
 HSPLcom/android/server/compat/CompatConfig;->isChangeEnabled(JLandroid/content/pm/ApplicationInfo;)Z
 HSPLcom/android/server/compat/CompatConfig;->readConfig(Ljava/io/File;)V
 HSPLcom/android/server/compat/CompatConfig;->registerListener(JLcom/android/server/compat/CompatChange$ChangeListener;)Z
@@ -12702,8 +13417,10 @@
 HSPLcom/android/server/compat/PlatformCompat;->getDisabledChanges(Landroid/content/pm/ApplicationInfo;)[J
 HSPLcom/android/server/compat/PlatformCompat;->isChangeEnabled(JLandroid/content/pm/ApplicationInfo;)Z
 HPLcom/android/server/compat/PlatformCompat;->isChangeEnabledByPackageName(JLjava/lang/String;I)Z
+HPLcom/android/server/compat/PlatformCompat;->isChangeEnabledByUid(JI)Z
 HSPLcom/android/server/compat/PlatformCompat;->registerListener(JLcom/android/server/compat/CompatChange$ChangeListener;)Z
 HSPLcom/android/server/compat/PlatformCompat;->reportChange(JII)V
+HSPLcom/android/server/compat/PlatformCompat;->reportChange(JLandroid/content/pm/ApplicationInfo;)V
 PLcom/android/server/compat/PlatformCompat;->reportChangeByUid(JI)V
 HSPLcom/android/server/compat/PlatformCompat;->resetReporting(Landroid/content/pm/ApplicationInfo;)V
 HSPLcom/android/server/compat/PlatformCompatNative;-><init>(Lcom/android/server/compat/PlatformCompat;)V
@@ -12712,6 +13429,7 @@
 HSPLcom/android/server/compat/config/Change;->getDisabled()Z
 HSPLcom/android/server/compat/config/Change;->getEnableAfterTargetSdk()I
 HSPLcom/android/server/compat/config/Change;->getId()J
+HSPLcom/android/server/compat/config/Change;->getLoggingOnly()Z
 HSPLcom/android/server/compat/config/Change;->getName()Ljava/lang/String;
 HSPLcom/android/server/compat/config/Change;->read(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/compat/config/Change;
 HSPLcom/android/server/compat/config/Change;->setDescription(Ljava/lang/String;)V
@@ -12741,8 +13459,30 @@
 HPLcom/android/server/connectivity/-$$Lambda$Nat464Xlat$40jKHQd7R0zgcegyEyc9zPHKXVA;->run()V
 PLcom/android/server/connectivity/-$$Lambda$Nat464Xlat$PACHOP9HoYvr_jzHtIwFDy31Ud4;-><init>(Lcom/android/server/connectivity/Nat464Xlat;Ljava/lang/String;)V
 PLcom/android/server/connectivity/-$$Lambda$Nat464Xlat$PACHOP9HoYvr_jzHtIwFDy31Ud4;->run()V
+PLcom/android/server/connectivity/-$$Lambda$NetworkRanker$7q19Ym2WMDAtVNzA5sb-IdEl5ts;-><clinit>()V
+PLcom/android/server/connectivity/-$$Lambda$NetworkRanker$7q19Ym2WMDAtVNzA5sb-IdEl5ts;-><init>()V
+HPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$7q19Ym2WMDAtVNzA5sb-IdEl5ts;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$C_0TgzYHR-DOgqTL7EmLuO8n37g;-><clinit>()V
+HSPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$C_0TgzYHR-DOgqTL7EmLuO8n37g;-><init>()V
+HPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$C_0TgzYHR-DOgqTL7EmLuO8n37g;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$TG1q-sMCXwgFWgWXWPXHK6U9llY;-><init>(Landroid/net/NetworkRequest;)V
+HPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$TG1q-sMCXwgFWgWXWPXHK6U9llY;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$YJHg9q_3Bdz9YfUXw2C0y4fsLPM;-><clinit>()V
+HSPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$YJHg9q_3Bdz9YfUXw2C0y4fsLPM;-><init>()V
+HPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$YJHg9q_3Bdz9YfUXw2C0y4fsLPM;->test(Ljava/lang/Object;)Z
+PLcom/android/server/connectivity/-$$Lambda$NetworkRanker$fEbmm1db6lPwktnF_V26qBPwx1Q;-><clinit>()V
+PLcom/android/server/connectivity/-$$Lambda$NetworkRanker$fEbmm1db6lPwktnF_V26qBPwx1Q;-><init>()V
+HPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$fEbmm1db6lPwktnF_V26qBPwx1Q;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$iOSx-hNqEGAWlti47pBTlEFvEkg;-><clinit>()V
+HSPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$iOSx-hNqEGAWlti47pBTlEFvEkg;-><init>()V
+HPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$iOSx-hNqEGAWlti47pBTlEFvEkg;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$wdDWUWxRRoYuCeZpawCNW8Z5deE;-><clinit>()V
+HSPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$wdDWUWxRRoYuCeZpawCNW8Z5deE;-><init>()V
+HPLcom/android/server/connectivity/-$$Lambda$NetworkRanker$wdDWUWxRRoYuCeZpawCNW8Z5deE;->test(Ljava/lang/Object;)Z
 PLcom/android/server/connectivity/-$$Lambda$PermissionMonitor$h-GPsXXwaQ-Mfu5-dqCp_VIYNOM;-><init>(Lcom/android/server/connectivity/PermissionMonitor;)V
 HPLcom/android/server/connectivity/-$$Lambda$PermissionMonitor$h-GPsXXwaQ-Mfu5-dqCp_VIYNOM;->test(Ljava/lang/Object;)Z
+PLcom/android/server/connectivity/-$$Lambda$Vpn$wy5PNyhOuH5lnkIjO4Gf9lNXkVQ;-><init>(Lcom/android/server/connectivity/Vpn;)V
+PLcom/android/server/connectivity/-$$Lambda$Vpn$wy5PNyhOuH5lnkIjO4Gf9lNXkVQ;->runOrThrow()V
 HPLcom/android/server/connectivity/AutodestructReference;-><init>(Ljava/lang/Object;)V
 HPLcom/android/server/connectivity/AutodestructReference;->getAndDestroy()Ljava/lang/Object;
 HSPLcom/android/server/connectivity/DataConnectionStats$PhoneStateListenerImpl;-><init>(Lcom/android/server/connectivity/DataConnectionStats;Landroid/os/Looper;)V
@@ -12754,7 +13494,7 @@
 HPLcom/android/server/connectivity/DataConnectionStats;->access$002(Lcom/android/server/connectivity/DataConnectionStats;Landroid/telephony/SignalStrength;)Landroid/telephony/SignalStrength;
 PLcom/android/server/connectivity/DataConnectionStats;->access$102(Lcom/android/server/connectivity/DataConnectionStats;Landroid/telephony/ServiceState;)Landroid/telephony/ServiceState;
 HPLcom/android/server/connectivity/DataConnectionStats;->access$200(Lcom/android/server/connectivity/DataConnectionStats;)V
-PLcom/android/server/connectivity/DataConnectionStats;->access$302(Lcom/android/server/connectivity/DataConnectionStats;I)I
+HPLcom/android/server/connectivity/DataConnectionStats;->access$302(Lcom/android/server/connectivity/DataConnectionStats;I)I
 HPLcom/android/server/connectivity/DataConnectionStats;->hasService()Z
 PLcom/android/server/connectivity/DataConnectionStats;->isCdma()Z
 HPLcom/android/server/connectivity/DataConnectionStats;->notePhoneDataConnectionState()V
@@ -12827,7 +13567,7 @@
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->toPairArray(Landroid/util/SparseIntArray;)[Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/ConnectivityMetricsEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/metrics/ConnectStats;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/metrics/DefaultNetworkEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/metrics/DefaultNetworkEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/metrics/DnsEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
 PLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/metrics/WakeupStats;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
 HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Ljava/util/List;)Ljava/util/List;
@@ -12875,11 +13615,11 @@
 PLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->binderDied()V
 PLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->checkInterval()I
 HPLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->checkLimit()I
-PLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->checkNetworkConnected()I
-PLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->checkPermission()I
+HPLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->checkNetworkConnected()I
+HPLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->checkPermission()I
 HPLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->checkSourceAddress()I
 PLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->getNai()Lcom/android/server/connectivity/NetworkAgentInfo;
-PLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->isValid()I
+HPLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->isValid()I
 HPLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->start(I)V
 PLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->startedStateString(I)Ljava/lang/String;
 HPLcom/android/server/connectivity/KeepaliveTracker$KeepaliveInfo;->stop(I)V
@@ -13013,7 +13753,7 @@
 HPLcom/android/server/connectivity/NetdEventListenerService;->getTransports(I)J
 HSPLcom/android/server/connectivity/NetdEventListenerService;->isValidCallerType(I)Z
 HPLcom/android/server/connectivity/NetdEventListenerService;->list(Ljava/io/PrintWriter;)V
-PLcom/android/server/connectivity/NetdEventListenerService;->listAsProtos()Ljava/util/List;
+HPLcom/android/server/connectivity/NetdEventListenerService;->listAsProtos()Ljava/util/List;
 HPLcom/android/server/connectivity/NetdEventListenerService;->listAsProtos(Ljava/util/List;)V
 HPLcom/android/server/connectivity/NetdEventListenerService;->onConnectEvent(IIILjava/lang/String;II)V
 HPLcom/android/server/connectivity/NetdEventListenerService;->onDnsEvent(IIIILjava/lang/String;[Ljava/lang/String;II)V
@@ -13028,9 +13768,11 @@
 HPLcom/android/server/connectivity/NetworkAgentInfo$LingerTimer;->compareTo(Ljava/lang/Object;)I
 PLcom/android/server/connectivity/NetworkAgentInfo$LingerTimer;->toString()Ljava/lang/String;
 HSPLcom/android/server/connectivity/NetworkAgentInfo;-><clinit>()V
+PLcom/android/server/connectivity/NetworkAgentInfo;-><init>(Landroid/os/Messenger;Lcom/android/internal/util/AsyncChannel;Landroid/net/Network;Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;ILandroid/content/Context;Landroid/os/Handler;Landroid/net/NetworkAgentConfig;Lcom/android/server/ConnectivityService;Landroid/net/INetd;Landroid/net/IDnsResolver;Landroid/os/INetworkManagementService;I)V
 HPLcom/android/server/connectivity/NetworkAgentInfo;-><init>(Landroid/os/Messenger;Lcom/android/internal/util/AsyncChannel;Landroid/net/Network;Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;Landroid/net/NetworkScore;Landroid/content/Context;Landroid/os/Handler;Landroid/net/NetworkAgentConfig;Lcom/android/server/ConnectivityService;Landroid/net/INetd;Landroid/net/IDnsResolver;Landroid/os/INetworkManagementService;I)V
 HPLcom/android/server/connectivity/NetworkAgentInfo;-><init>(Landroid/os/Messenger;Lcom/android/internal/util/AsyncChannel;Landroid/net/Network;Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;Landroid/net/NetworkScore;Landroid/content/Context;Landroid/os/Handler;Landroid/net/NetworkMisc;Lcom/android/server/ConnectivityService;Landroid/net/INetd;Landroid/net/IDnsResolver;Landroid/os/INetworkManagementService;I)V
 HPLcom/android/server/connectivity/NetworkAgentInfo;->addRequest(Landroid/net/NetworkRequest;)Z
+HPLcom/android/server/connectivity/NetworkAgentInfo;->canPossiblyBeat(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
 PLcom/android/server/connectivity/NetworkAgentInfo;->clearLingerState()V
 HPLcom/android/server/connectivity/NetworkAgentInfo;->compareTo(Lcom/android/server/connectivity/NetworkAgentInfo;)I
 HPLcom/android/server/connectivity/NetworkAgentInfo;->compareTo(Ljava/lang/Object;)I
@@ -13041,6 +13783,7 @@
 HPLcom/android/server/connectivity/NetworkAgentInfo;->getCurrentScore(Z)I
 HPLcom/android/server/connectivity/NetworkAgentInfo;->getCurrentScoreAsValidated()I
 HPLcom/android/server/connectivity/NetworkAgentInfo;->getLingerExpiry()J
+PLcom/android/server/connectivity/NetworkAgentInfo;->getNetworkScore()Landroid/net/NetworkScore;
 HPLcom/android/server/connectivity/NetworkAgentInfo;->getNetworkState()Landroid/net/NetworkState;
 PLcom/android/server/connectivity/NetworkAgentInfo;->handler()Landroid/os/Handler;
 HPLcom/android/server/connectivity/NetworkAgentInfo;->ignoreWifiUnvalidationPenalty()Z
@@ -13066,6 +13809,9 @@
 HPLcom/android/server/connectivity/NetworkAgentInfo;->satisfies(Landroid/net/NetworkRequest;)Z
 PLcom/android/server/connectivity/NetworkAgentInfo;->satisfiesImmutableCapabilitiesOf(Landroid/net/NetworkRequest;)Z
 PLcom/android/server/connectivity/NetworkAgentInfo;->setNetworkScore(Landroid/net/NetworkScore;)V
+PLcom/android/server/connectivity/NetworkAgentInfo;->setScore(I)V
+HPLcom/android/server/connectivity/NetworkAgentInfo;->toShortString()Ljava/lang/String;
+PLcom/android/server/connectivity/NetworkAgentInfo;->toShortString(Lcom/android/server/connectivity/NetworkAgentInfo;)Ljava/lang/String;
 HPLcom/android/server/connectivity/NetworkAgentInfo;->toString()Ljava/lang/String;
 PLcom/android/server/connectivity/NetworkAgentInfo;->unlinger()V
 HPLcom/android/server/connectivity/NetworkAgentInfo;->unlingerRequest(Landroid/net/NetworkRequest;)Z
@@ -13129,6 +13875,19 @@
 PLcom/android/server/connectivity/NetworkNotificationManager;->setProvNotificationVisible(ZILjava/lang/String;)V
 HPLcom/android/server/connectivity/NetworkNotificationManager;->showNotification(ILcom/android/server/connectivity/NetworkNotificationManager$NotificationType;Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/app/PendingIntent;Z)V
 PLcom/android/server/connectivity/NetworkNotificationManager;->tagFor(I)Ljava/lang/String;
+HSPLcom/android/server/connectivity/NetworkRanker;-><init>()V
+HSPLcom/android/server/connectivity/NetworkRanker;->filterBadWifiAvoidance(Ljava/util/ArrayList;)V
+HSPLcom/android/server/connectivity/NetworkRanker;->filterExplicitlySelected(Ljava/util/ArrayList;)V
+HSPLcom/android/server/connectivity/NetworkRanker;->filterValidated(Landroid/net/NetworkRequest;Ljava/util/ArrayList;)V
+HSPLcom/android/server/connectivity/NetworkRanker;->filterVpn(Ljava/util/ArrayList;)V
+HSPLcom/android/server/connectivity/NetworkRanker;->getBestNetwork(Landroid/net/NetworkRequest;Ljava/util/Collection;)Lcom/android/server/connectivity/NetworkAgentInfo;
+HPLcom/android/server/connectivity/NetworkRanker;->lambda$filterBadWifiAvoidance$5(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
+PLcom/android/server/connectivity/NetworkRanker;->lambda$filterBadWifiAvoidance$6(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
+PLcom/android/server/connectivity/NetworkRanker;->lambda$filterExplicitlySelected$3(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
+HPLcom/android/server/connectivity/NetworkRanker;->lambda$filterValidated$7(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
+HPLcom/android/server/connectivity/NetworkRanker;->lambda$filterValidated$8(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
+HPLcom/android/server/connectivity/NetworkRanker;->lambda$filterVpn$1(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
+HPLcom/android/server/connectivity/NetworkRanker;->lambda$getBestNetwork$0(Landroid/net/NetworkRequest;Lcom/android/server/connectivity/NetworkAgentInfo;)Z
 HSPLcom/android/server/connectivity/PacManager$1;-><init>(Lcom/android/server/connectivity/PacManager;)V
 HSPLcom/android/server/connectivity/PacManager$PacRefreshIntentReceiver;-><init>(Lcom/android/server/connectivity/PacManager;)V
 HSPLcom/android/server/connectivity/PacManager;-><init>(Landroid/content/Context;Landroid/os/Handler;I)V
@@ -13153,7 +13912,7 @@
 HSPLcom/android/server/connectivity/PermissionMonitor;->hasPermission(Landroid/content/pm/PackageInfo;Ljava/lang/String;)Z
 HSPLcom/android/server/connectivity/PermissionMonitor;->hasRestrictedNetworkPermission(Landroid/content/pm/PackageInfo;)Z
 HSPLcom/android/server/connectivity/PermissionMonitor;->hasUseBackgroundNetworksPermission(I)Z
-PLcom/android/server/connectivity/PermissionMonitor;->highestPermissionForUid(Ljava/lang/Boolean;Ljava/lang/String;)Ljava/lang/Boolean;
+HPLcom/android/server/connectivity/PermissionMonitor;->highestPermissionForUid(Ljava/lang/Boolean;Ljava/lang/String;)Ljava/lang/Boolean;
 HPLcom/android/server/connectivity/PermissionMonitor;->intersectUids(Ljava/util/Set;Ljava/util/Set;)Ljava/util/Set;
 HSPLcom/android/server/connectivity/PermissionMonitor;->isVendorApp(Landroid/content/pm/ApplicationInfo;)Z
 HPLcom/android/server/connectivity/PermissionMonitor;->lambda$removeBypassingUids$0$PermissionMonitor(Ljava/lang/Integer;)Z
@@ -13197,6 +13956,7 @@
 PLcom/android/server/connectivity/Vpn$Connection;->access$000(Lcom/android/server/connectivity/Vpn$Connection;)Landroid/os/IBinder;
 PLcom/android/server/connectivity/Vpn$Connection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/connectivity/Vpn$Connection;->onServiceDisconnected(Landroid/content/ComponentName;)V
+HSPLcom/android/server/connectivity/Vpn$Ikev2SessionCreator;-><init>()V
 PLcom/android/server/connectivity/Vpn$LegacyVpnRunner$1;-><init>(Lcom/android/server/connectivity/Vpn$LegacyVpnRunner;)V
 PLcom/android/server/connectivity/Vpn$LegacyVpnRunner$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;-><init>(Lcom/android/server/connectivity/Vpn;Lcom/android/internal/net/VpnConfig;[Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/net/VpnProfile;)V
@@ -13210,6 +13970,7 @@
 PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->run()V
 PLcom/android/server/connectivity/Vpn$LegacyVpnRunner;->waitForDaemonsToStop()V
 HSPLcom/android/server/connectivity/Vpn$SystemServices;-><init>(Landroid/content/Context;)V
+PLcom/android/server/connectivity/Vpn$SystemServices;->isCallerSystem()Z
 HSPLcom/android/server/connectivity/Vpn$SystemServices;->settingsSecureGetIntForUser(Ljava/lang/String;II)I
 HSPLcom/android/server/connectivity/Vpn$SystemServices;->settingsSecureGetStringForUser(Ljava/lang/String;I)Ljava/lang/String;
 PLcom/android/server/connectivity/Vpn$SystemServices;->settingsSecurePutIntForUser(Ljava/lang/String;II)V
@@ -13217,6 +13978,8 @@
 PLcom/android/server/connectivity/Vpn$VpnRunner;-><init>(Lcom/android/server/connectivity/Vpn;Ljava/lang/String;)V
 HSPLcom/android/server/connectivity/Vpn;-><clinit>()V
 HSPLcom/android/server/connectivity/Vpn;-><init>(Landroid/os/Looper;Landroid/content/Context;Landroid/os/INetworkManagementService;I)V
+HSPLcom/android/server/connectivity/Vpn;-><init>(Landroid/os/Looper;Landroid/content/Context;Landroid/os/INetworkManagementService;ILandroid/security/KeyStore;)V
+HSPLcom/android/server/connectivity/Vpn;-><init>(Landroid/os/Looper;Landroid/content/Context;Landroid/os/INetworkManagementService;ILandroid/security/KeyStore;Lcom/android/server/connectivity/Vpn$SystemServices;Lcom/android/server/connectivity/Vpn$Ikev2SessionCreator;)V
 HSPLcom/android/server/connectivity/Vpn;-><init>(Landroid/os/Looper;Landroid/content/Context;Landroid/os/INetworkManagementService;ILcom/android/server/connectivity/Vpn$SystemServices;)V
 PLcom/android/server/connectivity/Vpn;->access$1200(Lcom/android/server/connectivity/Vpn;)Landroid/net/INetworkManagementEventObserver;
 PLcom/android/server/connectivity/Vpn;->access$1300(Lcom/android/server/connectivity/Vpn;)V
@@ -13224,6 +13987,7 @@
 PLcom/android/server/connectivity/Vpn;->access$1500(Lcom/android/server/connectivity/Vpn;)Landroid/net/NetworkInfo;
 PLcom/android/server/connectivity/Vpn;->access$200(Lcom/android/server/connectivity/Vpn;)Lcom/android/server/connectivity/Vpn$LegacyVpnRunner;
 PLcom/android/server/connectivity/Vpn;->access$200(Lcom/android/server/connectivity/Vpn;)Lcom/android/server/connectivity/Vpn$VpnRunner;
+PLcom/android/server/connectivity/Vpn;->access$200(Lcom/android/server/connectivity/Vpn;)Ljava/lang/String;
 PLcom/android/server/connectivity/Vpn;->access$300(Lcom/android/server/connectivity/Vpn;)Ljava/lang/String;
 PLcom/android/server/connectivity/Vpn;->access$302(Lcom/android/server/connectivity/Vpn;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/connectivity/Vpn;->access$400(Lcom/android/server/connectivity/Vpn;Ljava/lang/String;)I
@@ -13241,7 +14005,7 @@
 HPLcom/android/server/connectivity/Vpn;->applyUnderlyingCapabilities(Landroid/net/ConnectivityManager;[Landroid/net/Network;Landroid/net/NetworkCapabilities;Z)V
 PLcom/android/server/connectivity/Vpn;->canHaveRestrictedProfile(I)Z
 HPLcom/android/server/connectivity/Vpn;->createUserAndRestrictedProfilesRanges(ILjava/util/List;Ljava/util/List;)Ljava/util/Set;
-PLcom/android/server/connectivity/Vpn;->doesPackageHaveAppop(Landroid/content/Context;Ljava/lang/String;I)Z
+HPLcom/android/server/connectivity/Vpn;->doesPackageHaveAppop(Landroid/content/Context;Ljava/lang/String;I)Z
 HSPLcom/android/server/connectivity/Vpn;->doesPackageTargetAtLeastQ(Ljava/lang/String;)Z
 HPLcom/android/server/connectivity/Vpn;->enforceControlPermission()V
 HPLcom/android/server/connectivity/Vpn;->enforceControlPermissionOrInternalCaller()V
@@ -13255,10 +14019,15 @@
 HPLcom/android/server/connectivity/Vpn;->getLegacyVpnInfoPrivileged()Lcom/android/internal/net/LegacyVpnInfo;
 HPLcom/android/server/connectivity/Vpn;->getLockdown()Z
 HPLcom/android/server/connectivity/Vpn;->getNetId()I
+PLcom/android/server/connectivity/Vpn;->getNetworkInfo()Landroid/net/NetworkInfo;
+PLcom/android/server/connectivity/Vpn;->getProfileNameForPackage(Ljava/lang/String;)Ljava/lang/String;
 HPLcom/android/server/connectivity/Vpn;->getUnderlyingNetworks()[Landroid/net/Network;
 HPLcom/android/server/connectivity/Vpn;->getVpnConfig()Lcom/android/internal/net/VpnConfig;
 HPLcom/android/server/connectivity/Vpn;->getVpnInfo()Lcom/android/internal/net/VpnInfo;
+PLcom/android/server/connectivity/Vpn;->getVpnProfilePrivileged(Ljava/lang/String;Landroid/security/KeyStore;)Lcom/android/internal/net/VpnProfile;
 PLcom/android/server/connectivity/Vpn;->isAlwaysOnPackageSupported(Ljava/lang/String;)Z
+PLcom/android/server/connectivity/Vpn;->isAlwaysOnPackageSupported(Ljava/lang/String;Landroid/security/KeyStore;)Z
+HPLcom/android/server/connectivity/Vpn;->isBlockingUid(I)Z
 HPLcom/android/server/connectivity/Vpn;->isCallerEstablishedOwnerLocked()Z
 HSPLcom/android/server/connectivity/Vpn;->isCurrentPreparedPackage(Ljava/lang/String;)Z
 HSPLcom/android/server/connectivity/Vpn;->isNullOrLegacyVpn(Ljava/lang/String;)Z
@@ -13267,25 +14036,30 @@
 PLcom/android/server/connectivity/Vpn;->isVpnPreConsented(Landroid/content/Context;Ljava/lang/String;I)Z
 PLcom/android/server/connectivity/Vpn;->isVpnServicePreConsented(Landroid/content/Context;Ljava/lang/String;)Z
 HPLcom/android/server/connectivity/Vpn;->isVpnUserPreConsented(Ljava/lang/String;)Z
+PLcom/android/server/connectivity/Vpn;->lambda$enforceNotRestrictedUser$0$Vpn()V
 HSPLcom/android/server/connectivity/Vpn;->loadAlwaysOnPackage()V
+HSPLcom/android/server/connectivity/Vpn;->loadAlwaysOnPackage(Landroid/security/KeyStore;)V
 HPLcom/android/server/connectivity/Vpn;->makeLinkProperties()Landroid/net/LinkProperties;
 PLcom/android/server/connectivity/Vpn;->onUserAdded(I)V
 PLcom/android/server/connectivity/Vpn;->onUserRemoved(I)V
 PLcom/android/server/connectivity/Vpn;->onUserStopped()V
 PLcom/android/server/connectivity/Vpn;->prepare(Ljava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/connectivity/Vpn;->prepare(Ljava/lang/String;Ljava/lang/String;I)Z
+HPLcom/android/server/connectivity/Vpn;->prepare(Ljava/lang/String;Ljava/lang/String;I)Z
 PLcom/android/server/connectivity/Vpn;->prepareInternal(Ljava/lang/String;)V
 PLcom/android/server/connectivity/Vpn;->prepareStatusIntent()V
 PLcom/android/server/connectivity/Vpn;->saveAlwaysOnPackage()V
 HSPLcom/android/server/connectivity/Vpn;->setAllowOnlyVpnForUids(ZLjava/util/Collection;)Z
 PLcom/android/server/connectivity/Vpn;->setAlwaysOnPackage(Ljava/lang/String;ZLjava/util/List;)Z
+PLcom/android/server/connectivity/Vpn;->setAlwaysOnPackage(Ljava/lang/String;ZLjava/util/List;Landroid/security/KeyStore;)Z
 HSPLcom/android/server/connectivity/Vpn;->setAlwaysOnPackageInternal(Ljava/lang/String;ZLjava/util/List;)Z
+HSPLcom/android/server/connectivity/Vpn;->setAlwaysOnPackageInternal(Ljava/lang/String;ZLjava/util/List;Landroid/security/KeyStore;)Z
 PLcom/android/server/connectivity/Vpn;->setLockdown(Z)V
-PLcom/android/server/connectivity/Vpn;->setPackageAuthorization(Ljava/lang/String;I)Z
+HPLcom/android/server/connectivity/Vpn;->setPackageAuthorization(Ljava/lang/String;I)Z
 PLcom/android/server/connectivity/Vpn;->setPackageAuthorization(Ljava/lang/String;Z)Z
 HPLcom/android/server/connectivity/Vpn;->setUnderlyingNetworks([Landroid/net/Network;)Z
 HSPLcom/android/server/connectivity/Vpn;->setVpnForcedLocked(Z)V
 PLcom/android/server/connectivity/Vpn;->startAlwaysOnVpn()Z
+PLcom/android/server/connectivity/Vpn;->startAlwaysOnVpn(Landroid/security/KeyStore;)Z
 PLcom/android/server/connectivity/Vpn;->startLegacyVpn(Lcom/android/internal/net/VpnConfig;[Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/net/VpnProfile;)V
 PLcom/android/server/connectivity/Vpn;->startLegacyVpn(Lcom/android/internal/net/VpnProfile;Landroid/security/KeyStore;Landroid/net/LinkProperties;)V
 PLcom/android/server/connectivity/Vpn;->startLegacyVpnPrivileged(Lcom/android/internal/net/VpnProfile;Landroid/security/KeyStore;Landroid/net/LinkProperties;)V
@@ -13297,6 +14071,8 @@
 HPLcom/android/server/connectivity/Vpn;->updateState(Landroid/net/NetworkInfo$DetailedState;Ljava/lang/String;)V
 HSPLcom/android/server/content/-$$Lambda$ContentService$5-BNVxd6JTWU9ogp3u-0kfiqgbI;-><init>(Lcom/android/server/content/ContentService;)V
 HSPLcom/android/server/content/-$$Lambda$ContentService$5-BNVxd6JTWU9ogp3u-0kfiqgbI;->getPackages(Ljava/lang/String;I)[Ljava/lang/String;
+PLcom/android/server/content/-$$Lambda$ContentService$ObserverCollector$U_N0n8bSqn83QF2baB67wvMEADg;-><init>(Lcom/android/server/content/ContentService$ObserverCollector$Key;Ljava/util/List;)V
+HPLcom/android/server/content/-$$Lambda$ContentService$ObserverCollector$U_N0n8bSqn83QF2baB67wvMEADg;->run()V
 PLcom/android/server/content/-$$Lambda$SyncManager$4nklbtZn-JuPLOkU32f34xZoiug;-><init>(Lcom/android/server/content/SyncManager;I)V
 PLcom/android/server/content/-$$Lambda$SyncManager$4nklbtZn-JuPLOkU32f34xZoiug;->run()V
 HSPLcom/android/server/content/-$$Lambda$SyncManager$68MEyNkTh36YmYoFlURJoRa_-cY;-><clinit>()V
@@ -13346,6 +14122,13 @@
 PLcom/android/server/content/ContentService$Lifecycle;->onUnlockUser(I)V
 HSPLcom/android/server/content/ContentService$ObserverCall;-><init>(Landroid/database/IContentObserver;ZLandroid/net/Uri;II)V
 HSPLcom/android/server/content/ContentService$ObserverCall;->run()V
+PLcom/android/server/content/ContentService$ObserverCollector$Key;-><init>(Landroid/database/IContentObserver;IZII)V
+HPLcom/android/server/content/ContentService$ObserverCollector$Key;->equals(Ljava/lang/Object;)Z
+HPLcom/android/server/content/ContentService$ObserverCollector$Key;->hashCode()I
+PLcom/android/server/content/ContentService$ObserverCollector;-><init>()V
+HPLcom/android/server/content/ContentService$ObserverCollector;->collect(Landroid/database/IContentObserver;IZLandroid/net/Uri;II)V
+HPLcom/android/server/content/ContentService$ObserverCollector;->dispatch()V
+HPLcom/android/server/content/ContentService$ObserverCollector;->lambda$dispatch$0(Lcom/android/server/content/ContentService$ObserverCollector$Key;Ljava/util/List;)V
 HSPLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;-><init>(Lcom/android/server/content/ContentService$ObserverNode;Landroid/database/IContentObserver;ZLjava/lang/Object;IIILandroid/net/Uri;)V
 HSPLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;->access$400(Lcom/android/server/content/ContentService$ObserverNode$ObserverEntry;)I
 HPLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;->binderDied()V
@@ -13353,7 +14136,9 @@
 HSPLcom/android/server/content/ContentService$ObserverNode;-><init>(Ljava/lang/String;)V
 HSPLcom/android/server/content/ContentService$ObserverNode;->addObserverLocked(Landroid/net/Uri;ILandroid/database/IContentObserver;ZLjava/lang/Object;III)V
 HSPLcom/android/server/content/ContentService$ObserverNode;->addObserverLocked(Landroid/net/Uri;Landroid/database/IContentObserver;ZLjava/lang/Object;III)V
+HPLcom/android/server/content/ContentService$ObserverNode;->collectMyObserversLocked(Landroid/net/Uri;ZLandroid/database/IContentObserver;ZIILcom/android/server/content/ContentService$ObserverCollector;)V
 HSPLcom/android/server/content/ContentService$ObserverNode;->collectMyObserversLocked(Landroid/net/Uri;ZLandroid/database/IContentObserver;ZIILjava/util/ArrayList;)V
+HPLcom/android/server/content/ContentService$ObserverNode;->collectObserversLocked(Landroid/net/Uri;ILandroid/database/IContentObserver;ZIILcom/android/server/content/ContentService$ObserverCollector;)V
 HSPLcom/android/server/content/ContentService$ObserverNode;->collectObserversLocked(Landroid/net/Uri;ILandroid/database/IContentObserver;ZIILjava/util/ArrayList;)V
 HSPLcom/android/server/content/ContentService$ObserverNode;->countUriSegments(Landroid/net/Uri;)I
 HPLcom/android/server/content/ContentService$ObserverNode;->dumpLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[ILandroid/util/SparseIntArray;)V
@@ -13398,6 +14183,7 @@
 HSPLcom/android/server/content/ContentService;->lambda$new$0$ContentService(Ljava/lang/String;I)[Ljava/lang/String;
 PLcom/android/server/content/ContentService;->normalizeSyncable(I)I
 HSPLcom/android/server/content/ContentService;->notifyChange(Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;)V
+HPLcom/android/server/content/ContentService;->notifyChange(Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;Lcom/android/server/content/ContentService$ObserverCollector;)V
 HSPLcom/android/server/content/ContentService;->notifyChange([Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;)V
 HSPLcom/android/server/content/ContentService;->onBootPhase(I)V
 PLcom/android/server/content/ContentService;->onDbCorruption(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
@@ -13695,11 +14481,19 @@
 PLcom/android/server/content/SyncOperation;-><init>(Lcom/android/server/content/SyncOperation;JJ)V
 HPLcom/android/server/content/SyncOperation;-><init>(Lcom/android/server/content/SyncStorageEngine$EndPoint;ILjava/lang/String;IILandroid/os/Bundle;ZI)V
 HPLcom/android/server/content/SyncOperation;-><init>(Lcom/android/server/content/SyncStorageEngine$EndPoint;ILjava/lang/String;IILandroid/os/Bundle;ZZIJJI)V
+HPLcom/android/server/content/SyncOperation;->areExtrasEqual(Landroid/os/Bundle;Z)Z
 PLcom/android/server/content/SyncOperation;->createOneTimeSyncOperation()Lcom/android/server/content/SyncOperation;
 HPLcom/android/server/content/SyncOperation;->dump(Landroid/content/pm/PackageManager;ZLcom/android/server/content/SyncAdapterStateFetcher;Z)Ljava/lang/String;
+PLcom/android/server/content/SyncOperation;->enableBackoff()V
+PLcom/android/server/content/SyncOperation;->enableTwoWaySync()V
 HPLcom/android/server/content/SyncOperation;->extrasToString(Landroid/os/Bundle;)Ljava/lang/String;
 HPLcom/android/server/content/SyncOperation;->extrasToStringBuilder(Landroid/os/Bundle;Ljava/lang/StringBuilder;)V
 PLcom/android/server/content/SyncOperation;->findPriority()I
+HPLcom/android/server/content/SyncOperation;->getClonedExtras()Landroid/os/Bundle;
+HPLcom/android/server/content/SyncOperation;->getExtrasAsString()Ljava/lang/String;
+PLcom/android/server/content/SyncOperation;->hasDoNotRetry()Z
+HPLcom/android/server/content/SyncOperation;->hasIgnoreBackoff()Z
+HPLcom/android/server/content/SyncOperation;->hasRequireCharging()Z
 PLcom/android/server/content/SyncOperation;->ignoreBackoff()Z
 HPLcom/android/server/content/SyncOperation;->isAppStandbyExempted()Z
 HPLcom/android/server/content/SyncOperation;->isConflict(Lcom/android/server/content/SyncOperation;)Z
@@ -13708,9 +14502,11 @@
 HPLcom/android/server/content/SyncOperation;->isIgnoreSettings()Z
 HPLcom/android/server/content/SyncOperation;->isInitialization()Z
 PLcom/android/server/content/SyncOperation;->isNotAllowedOnMetered()Z
+PLcom/android/server/content/SyncOperation;->isUpload()Z
 HPLcom/android/server/content/SyncOperation;->matchesPeriodicOperation(Lcom/android/server/content/SyncOperation;)Z
 HPLcom/android/server/content/SyncOperation;->maybeCreateFromJobExtras(Landroid/os/PersistableBundle;)Lcom/android/server/content/SyncOperation;
 HPLcom/android/server/content/SyncOperation;->reasonToString(Landroid/content/pm/PackageManager;I)Ljava/lang/String;
+PLcom/android/server/content/SyncOperation;->removeExtra(Ljava/lang/String;)V
 HPLcom/android/server/content/SyncOperation;->toEventLog(I)[Ljava/lang/Object;
 HPLcom/android/server/content/SyncOperation;->toJobInfoExtras()Landroid/os/PersistableBundle;
 HPLcom/android/server/content/SyncOperation;->toKey()Ljava/lang/String;
@@ -13729,7 +14525,7 @@
 HSPLcom/android/server/content/SyncStorageEngine$EndPoint;-><clinit>()V
 HSPLcom/android/server/content/SyncStorageEngine$EndPoint;-><init>(Landroid/accounts/Account;Ljava/lang/String;I)V
 HPLcom/android/server/content/SyncStorageEngine$EndPoint;->matchesSpec(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Z
-PLcom/android/server/content/SyncStorageEngine$EndPoint;->toSafeString()Ljava/lang/String;
+HPLcom/android/server/content/SyncStorageEngine$EndPoint;->toSafeString()Ljava/lang/String;
 HSPLcom/android/server/content/SyncStorageEngine$EndPoint;->toString()Ljava/lang/String;
 HSPLcom/android/server/content/SyncStorageEngine$MyHandler;-><init>(Lcom/android/server/content/SyncStorageEngine;Landroid/os/Looper;)V
 HPLcom/android/server/content/SyncStorageEngine$MyHandler;->handleMessage(Landroid/os/Message;)V
@@ -13851,7 +14647,7 @@
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->getOptionsForPackage(ILjava/lang/String;)Landroid/content/ContentCaptureOptions;
 HPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->isContentCaptureServiceForUser(II)Z
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->notifyActivityEvent(ILandroid/content/ComponentName;I)V
-PLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->sendActivityAssistData(ILandroid/os/IBinder;Landroid/os/Bundle;)Z
+HPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->sendActivityAssistData(ILandroid/os/IBinder;Landroid/os/Bundle;)Z
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService;-><clinit>()V
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$1000(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
@@ -13897,13 +14693,14 @@
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$900(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
 HPLcom/android/server/contentcapture/ContentCaptureManagerService;->enforceCallingPermissionForManagement()V
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->getAmInternal()Landroid/app/ActivityManagerInternal;
+HPLcom/android/server/contentcapture/ContentCaptureManagerService;->getAmInternal()Landroid/app/ActivityManagerInternal;
 HPLcom/android/server/contentcapture/ContentCaptureManagerService;->isDefaultServiceLocked(I)Z
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->isDisabledBySettingsLocked(I)Z
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->isDisabledLocked(I)Z
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->isEnabledBySettings(I)Z
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->isSupported(Landroid/content/pm/UserInfo;)Z
 HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->isSupportedUser(Lcom/android/server/SystemService$TargetUser;)Z
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->isUserSupported(Lcom/android/server/SystemService$TargetUser;)Z
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->lambda$new$0$ContentCaptureManagerService(Landroid/provider/DeviceConfig$Properties;)V
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->newServiceLocked(IZ)Lcom/android/server/contentcapture/ContentCapturePerUserService;
 PLcom/android/server/contentcapture/ContentCaptureManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService;
@@ -13940,7 +14737,7 @@
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$700(Lcom/android/server/contentcapture/ContentCapturePerUserService;)I
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$800(Lcom/android/server/contentcapture/ContentCapturePerUserService;)Lcom/android/server/infra/AbstractMasterSystemService;
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$900(Lcom/android/server/contentcapture/ContentCapturePerUserService;)Lcom/android/server/infra/AbstractMasterSystemService;
-PLcom/android/server/contentcapture/ContentCapturePerUserService;->assertCallerLocked(Ljava/lang/String;)V
+HPLcom/android/server/contentcapture/ContentCapturePerUserService;->assertCallerLocked(Ljava/lang/String;)V
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->destroyLocked()V
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->destroySessionsLocked()V
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
@@ -13966,14 +14763,14 @@
 PLcom/android/server/contentcapture/ContentCapturePerUserService;->updateRemoteServiceLocked(Z)V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;-><clinit>()V
 HPLcom/android/server/contentcapture/ContentCaptureServerSession;-><init>(Ljava/lang/Object;Landroid/os/IBinder;Lcom/android/server/contentcapture/ContentCapturePerUserService;Landroid/content/ComponentName;Lcom/android/internal/os/IResultReceiver;IIIII)V
-PLcom/android/server/contentcapture/ContentCaptureServerSession;->destroyLocked(Z)V
+HPLcom/android/server/contentcapture/ContentCaptureServerSession;->destroyLocked(Z)V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->isActivitySession(Landroid/os/IBinder;)Z
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->lambda$new$0$ContentCaptureServerSession()V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->notifySessionStartedLocked(Lcom/android/internal/os/IResultReceiver;)V
 HPLcom/android/server/contentcapture/ContentCaptureServerSession;->onClientDeath()V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->pauseLocked()V
-PLcom/android/server/contentcapture/ContentCaptureServerSession;->removeSelfLocked(Z)V
+HPLcom/android/server/contentcapture/ContentCaptureServerSession;->removeSelfLocked(Z)V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->resurrectLocked()V
 HPLcom/android/server/contentcapture/ContentCaptureServerSession;->sendActivitySnapshotLocked(Landroid/service/contentcapture/SnapshotData;)V
 PLcom/android/server/contentcapture/ContentCaptureServerSession;->setContentCaptureEnabledLocked(Z)V
@@ -14054,10 +14851,16 @@
 HPLcom/android/server/contentsuggestions/RemoteContentSuggestionsService;->provideContextImage(ILandroid/graphics/GraphicBuffer;ILandroid/os/Bundle;)V
 HPLcom/android/server/contentsuggestions/RemoteContentSuggestionsService;->suggestContentSelections(Landroid/app/contentsuggestions/SelectionsRequest;Landroid/app/contentsuggestions/ISelectionsCallback;)V
 HSPLcom/android/server/coverage/CoverageService;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-G9lH3s5XhHmTCaYrbRmjO5D2SE;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-G9lH3s5XhHmTCaYrbRmjO5D2SE;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-JG0-dzlHzXDx_I_iTsqSE_Bv5E;-><init>(ZLandroid/os/RemoteCallback;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-JG0-dzlHzXDx_I_iTsqSE_Bv5E;->accept(Ljava/lang/Object;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-SLM70h2SesShbP-O5yYa1PYZVw;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Z)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-SLM70h2SesShbP-O5yYa1PYZVw;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-hdxx9XgKkKhfjN3Hl8TZjw3ITI;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/IBinder;Z)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-hdxx9XgKkKhfjN3Hl8TZjw3ITI;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0NGjMa7hJHujISQOD_pH8kTq6JI;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0NGjMa7hJHujISQOD_pH8kTq6JI;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0YdFTQIxrgxkEfzJdhGZzP5z4eM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0YdFTQIxrgxkEfzJdhGZzP5z4eM;->runOrThrow()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0xOTapp1kSvojAdqJGdavUtvjqU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
@@ -14068,8 +14871,8 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1_463wML1lyyuhNEcH6YQZBNupk;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1iJrvtbb8D-HC5dcMcu7FeZ0bls;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;IZ)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1iJrvtbb8D-HC5dcMcu7FeZ0bls;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1sOJuLKtNOd9FkSCbRQ10fuHN1Q;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1sOJuLKtNOd9FkSCbRQ10fuHN1Q;->getOrThrow()Ljava/lang/Object;
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1sOJuLKtNOd9FkSCbRQ10fuHN1Q;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1sOJuLKtNOd9FkSCbRQ10fuHN1Q;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2CZYBzY0RjTtlQvIxYBzaiQE2iI;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2CZYBzY0RjTtlQvIxYBzaiQE2iI;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2dnwZdGuTZnM6wwcm6xROcqfwb0;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Z)V
@@ -14086,20 +14889,38 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$5Xy1SW6FmfM4-7F8ZHPEFhBAJjs;->runOrThrow()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6E7MK8TbNUybt8S9CwAdfdcn2x0;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6E7MK8TbNUybt8S9CwAdfdcn2x0;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6VeZWEdN1dyRdHEAUxfQP-WansI;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IIZLandroid/content/ComponentName;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6VeZWEdN1dyRdHEAUxfQP-WansI;->runOrThrow()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7Cpvth9RknvcbwQxadY3QRMYuFU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7Cpvth9RknvcbwQxadY3QRMYuFU;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7hl9-Fu55wI3YRCmF3l8IOs19OM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7hl9-Fu55wI3YRCmF3l8IOs19OM;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7uNrpVR2JSemRG4moJeAWa1SmL4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/CharSequence;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7uNrpVR2JSemRG4moJeAWa1SmL4;->runOrThrow()V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8BeglN5Ijjfxxx54eY3Vq7FrVNc;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8BeglN5Ijjfxxx54eY3Vq7FrVNc;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8XUqgbgdUcEUgLSotmYa65MlJU4;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8XUqgbgdUcEUgLSotmYa65MlJU4;-><init>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8nvbMteplUbtaSMuw4DWJ-MQa4g;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8nvbMteplUbtaSMuw4DWJ-MQa4g;-><init>()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8qCcR6mM8qspH7fQ8IbJXDcl-oE;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8qCcR6mM8qspH7fQ8IbJXDcl-oE;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$96YOUSYL6AzwQKAHlAmu3gag8MM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$96YOUSYL6AzwQKAHlAmu3gag8MM;->run()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9BBesRjvUOb0HylcboB6iBXa9rA;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9BBesRjvUOb0HylcboB6iBXa9rA;->getOrThrow()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9H-OtiTr0pLXuE1px0lLrHWW2gg;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9H-OtiTr0pLXuE1px0lLrHWW2gg;->getOrThrow()Ljava/lang/Object;
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9NBgirlJS7nxqqsuv_1YJ8Y7m98;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9NBgirlJS7nxqqsuv_1YJ8Y7m98;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9OlQvLYrhLnDEwdIfQUNbK4G5Kk;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9OlQvLYrhLnDEwdIfQUNbK4G5Kk;->run()V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9SJKQAytAssuizf9V09cQ9qSuUM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9SJKQAytAssuizf9V09cQ9qSuUM;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9VVtUb5jLgJSmFOsWJ9ANvL9Ep4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9VVtUb5jLgJSmFOsWJ9ANvL9Ep4;->getOrThrow()Ljava/lang/Object;
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BOK8I3WNMlyJrHuv4E5nizuvN9s;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BOK8I3WNMlyJrHuv4E5nizuvN9s;->run()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BYd2ftVebU2Ktj6tr-DFfrGE5TE;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BYd2ftVebU2Ktj6tr-DFfrGE5TE;-><init>()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CAHsZjsjfTBjSCaXhAqawAZQxAs;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
@@ -14122,22 +14943,32 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$E9awYavFY3fUvYuziaFPn187V2A;->accept(Ljava/lang/Object;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$EmW1vJQsSAWrjreihtc0C_PUzE8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$EmW1vJQsSAWrjreihtc0C_PUzE8;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$FH6LDUjPuTrmrHOy8qyq914-6zY;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILjava/lang/String;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$FH6LDUjPuTrmrHOy8qyq914-6zY;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$FJ0XePbVcRlJIcEvTiNAwEn0UoM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/CharSequence;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$FJ0XePbVcRlJIcEvTiNAwEn0UoM;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$GdvC4eub6BtkkX5BnHuPR5Ob0ag;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$GdvC4eub6BtkkX5BnHuPR5Ob0ag;-><init>()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$GrJ2yAyrcr8_uJK0BCe9i4AcIYc;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$GrJ2yAyrcr8_uJK0BCe9i4AcIYc;->getOrThrow()Ljava/lang/Object;
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$I2JVUrPjGJeIH9M5tFkFtORoZA0;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$I2JVUrPjGJeIH9M5tFkFtORoZA0;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IFjmfnHIk0cwZ4cu_jTHWTsMxfc;-><init>(ZLandroid/os/RemoteCallback;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IFjmfnHIk0cwZ4cu_jTHWTsMxfc;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IMrqSPgnQFlD9AquL6PEMeRT48A;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IMrqSPgnQFlD9AquL6PEMeRT48A;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IiTDvO4lH6i6MSEHWCEcAk85DDE;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IiTDvO4lH6i6MSEHWCEcAk85DDE;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IxdwArI8Td_zcuuRujOKZ6JGGTU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IxdwArI8Td_zcuuRujOKZ6JGGTU;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$J1D7mGzV3_Pe5CkN4SOHvBx0GQM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;ZI)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$J1D7mGzV3_Pe5CkN4SOHvBx0GQM;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$JEgkZ2GnVgvzJnS1uvLsrUt2pUs;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$JEgkZ2GnVgvzJnS1uvLsrUt2pUs;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Jn1h0KwAOFO-2SLpickAr7b6UEI;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Jn1h0KwAOFO-2SLpickAr7b6UEI;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KHK1qaoqPOWDaYAcyuftrRCJUsU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KHK1qaoqPOWDaYAcyuftrRCJUsU;->getOrThrow()Ljava/lang/Object;
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KVBXyPBBtnY04KgNMY8kTUc8TDM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KVBXyPBBtnY04KgNMY8kTUc8TDM;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Kt954vcIuhnBMcd-u6lDaLOaZfM;-><clinit>()V
@@ -14150,6 +14981,8 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$L1BjBKCM4PsL1cN_5wbAOuBRIk8;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$L3XzC2X57y8_uXrsW81Qk8KXQTA;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/CharSequence;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$L3XzC2X57y8_uXrsW81Qk8KXQTA;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$L726YSg1ctOhu8vS40p7mI29Hqw;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$L726YSg1ctOhu8vS40p7mI29Hqw;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$LocalService$YxQa4ZcUPWKs76meOLw1c_tn1OU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$LocalService$YxQa4ZcUPWKs76meOLw1c_tn1OU;->runOrThrow()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MTDdFPtPQJRYX737yGn0OzoNDCQ;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
@@ -14158,14 +14991,22 @@
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MX3M3eTWWoV82PMImp1skv1Wm-I;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MviNnPMxpWJ3R18v9L0iG_mI4as;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MviNnPMxpWJ3R18v9L0iG_mI4as;-><init>()V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NKJuiWrYuYyikF97OLN4M2BWuLU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NKJuiWrYuYyikF97OLN4M2BWuLU;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NV9-XJEdh3iVV_1FcyzVTLRWMMs;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NV9-XJEdh3iVV_1FcyzVTLRWMMs;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Nequbj6EwVoW8y_wmTthpD1fwY4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Nequbj6EwVoW8y_wmTthpD1fwY4;->getOrThrow()Ljava/lang/Object;
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NktehNa2clM_QJShWPmssIgRpKs;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NktehNa2clM_QJShWPmssIgRpKs;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NzTaj70nEECGXhr52RbDyXK_fPU;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NzTaj70nEECGXhr52RbDyXK_fPU;-><init>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O6O5T5aoG6MmH8aAAGYNwYhbtw8;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O6O5T5aoG6MmH8aAAGYNwYhbtw8;-><init>()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O7VBr2X2LTCZ2rClZ_UwgB-Qoa0;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IILjava/lang/String;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O7VBr2X2LTCZ2rClZ_UwgB-Qoa0;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O9Moi8sORA4geplcz5N36k_Djo8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O9Moi8sORA4geplcz5N36k_Djo8;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Ohf5PJQmXjsarWisPAuPB8WECX8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Ohf5PJQmXjsarWisPAuPB8WECX8;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$PQxvRo4LWlTe_I8RQ-J5BqZxYGY;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
@@ -14174,6 +15015,10 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$PbWvUymvyMNlDpwaJHqqjloqHY0;->getOrThrow()Ljava/lang/Object;
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$QSZZ_1yoXc0KadPc27uY1ijTXpM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$QSZZ_1yoXc0KadPc27uY1ijTXpM;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$QeuN0QspI6zzXRv-ZEqptxjR6bc;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$QeuN0QspI6zzXRv-ZEqptxjR6bc;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Qs_HIEUKv-t71wixXSU0Of8RNKE;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Z)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Qs_HIEUKv-t71wixXSU0Of8RNKE;->runOrThrow()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$R7jNGUHgN9uG5tT_PuItt7Vn00g;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$R7jNGUHgN9uG5tT_PuItt7Vn00g;->getOrThrow()Ljava/lang/Object;
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$RaSE9sEzDuKpHnuwL4Ihn963J7g;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
@@ -14182,16 +15027,30 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$RgCXuyEFWhEba2UFAFFocJYLNYo;->runOrThrow()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Rt85y5wEY0DRLvRJ6XnzxsSF1eo;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Rt85y5wEY0DRLvRJ6XnzxsSF1eo;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$SJMb3vs5bdgYZlouifkarxp6ak8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$SJMb3vs5bdgYZlouifkarxp6ak8;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$SsK3Zag7hhWHXlzNClBcOqbFDYM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILjava/util/ArrayList;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$SsK3Zag7hhWHXlzNClBcOqbFDYM;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T-DYGQoYs3p1_NgKsVcKRX8fTnA;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T-DYGQoYs3p1_NgKsVcKRX8fTnA;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T4eSwgayOKOYwmmjCYnPFwO28Pw;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T4eSwgayOKOYwmmjCYnPFwO28Pw;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ThskFZWEUceNrJT9xsMbJpTtMj4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ThskFZWEUceNrJT9xsMbJpTtMj4;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UPnhCNO69TKnF1hSXENMzK_2NSQ;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UPnhCNO69TKnF1hSXENMzK_2NSQ;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UZjRYMPztw5R7HEv0d62H2OifHg;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UZjRYMPztw5R7HEv0d62H2OifHg;->getOrThrow()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UZoVWdpJJZwABGNhZWHbxPIvMO4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$UZoVWdpJJZwABGNhZWHbxPIvMO4;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$VDIwg4X1iKAqFvQldV7uz3FQETk;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ZILandroid/content/Context;J)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$VDIwg4X1iKAqFvQldV7uz3FQETk;->runOrThrow()V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$VDIwg4X1iKAqFvQldV7uz3FQETk;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$VnVMpzZ38K9VY5q76LFE7Pg8Ojk;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$VnVMpzZ38K9VY5q76LFE7Pg8Ojk;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Vx-CgHEULlhhYTHNaAhW9C49Ln4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/CharSequence;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Vx-CgHEULlhhYTHNaAhW9C49Ln4;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$W0PqT_DujOnRfFtIRJT9BUc0AKo;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$W0PqT_DujOnRfFtIRJT9BUc0AKo;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WtqYUfe7dJqIftHU4nTlehWlM1o;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WtqYUfe7dJqIftHU4nTlehWlM1o;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$X8P9YSbXKt6AGKQrPiFxyDc-HJQ;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
@@ -14200,6 +15059,10 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$X8ssNAYCaueT78i6KH-xMYuutXA;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Xc3Cc89KBImtyHAgMzs8CxA-vt4;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Xc3Cc89KBImtyHAgMzs8CxA-vt4;-><init>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Y60DjdFMzpV5YEEtub3axIwYGT4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Y60DjdFMzpV5YEEtub3axIwYGT4;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$YUdRHstauCgFOjok0Bqvn4hAUiY;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$YUdRHstauCgFOjok0Bqvn4hAUiY;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Yha2g5948Y6-99_Zk6qnSQ08xaY;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Yha2g5948Y6-99_Zk6qnSQ08xaY;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZKo9wKXbn_FqsEHI_sFpmbOwKZE;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Z)V
@@ -14207,7 +15070,7 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZQ4kE3IfWore2zFzZG1Za8zcO2k;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZQ4kE3IfWore2zFzZG1Za8zcO2k;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZX_ASbhDe3h4tTo7Tg94QibI20o;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IIZLandroid/content/ComponentName;)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZX_ASbhDe3h4tTo7Tg94QibI20o;->runOrThrow()V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZX_ASbhDe3h4tTo7Tg94QibI20o;->runOrThrow()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZnmDaAarGwYrOpGdw8hNrUXv7Zk;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZnmDaAarGwYrOpGdw8hNrUXv7Zk;->getOrThrow()Ljava/lang/Object;
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ZpoQff3M1J7SHl-aNOO7YrgHMIw;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;)V
@@ -14238,12 +15101,18 @@
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$d08rPNL3sI-Hx7ZpnR_dxsBLZmk;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$dhmKG9Egag2TPEwukGPiev6dT70;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$dhmKG9Egag2TPEwukGPiev6dT70;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$e1b7933wrj9WzETz2PImYXO7S8k;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$e1b7933wrj9WzETz2PImYXO7S8k;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$e2DzcGWRwnNdKo6blzNAob0HsSw;-><init>(ZLandroid/os/RemoteCallback;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$e2DzcGWRwnNdKo6blzNAob0HsSw;->accept(Ljava/lang/Object;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$e7c2huGjk3obVFka43jMbcJT0E8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$e7c2huGjk3obVFka43jMbcJT0E8;->getOrThrow()Ljava/lang/Object;
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eD2HDpBc-OGp1j6mPQwOljJf8zo;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;I)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eD2HDpBc-OGp1j6mPQwOljJf8zo;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eKrWywCP77ljwUZh-R1c8aoFHh4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eKrWywCP77ljwUZh-R1c8aoFHh4;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eXXLpvrS8MbaRqFtBlIFQQ-7T1A;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Z)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eXXLpvrS8MbaRqFtBlIFQQ-7T1A;->runOrThrow()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eZw4tgcZRgP2OCEUG4UMwL1KdZI;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eZw4tgcZRgP2OCEUG4UMwL1KdZI;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fU0Evn2qWpzcawqc8Qu9d2hCcoA;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;ILjava/lang/String;)V
@@ -14258,6 +15127,8 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$g3pjxXrKbnPToHF_egmYdr2f8-M;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$gbbZuAsRK_vXaCroy1gj9r0-V4o;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$gbbZuAsRK_vXaCroy1gj9r0-V4o;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hEiSUsCqrT0sWl6PyQRJkkZ6Bq4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hEiSUsCqrT0sWl6PyQRJkkZ6Bq4;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hWg24ME7nlaYglkgmkHI7VvIfWk;-><init>(ZLandroid/os/RemoteCallback;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hWg24ME7nlaYglkgmkHI7VvIfWk;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hX2NEWgF6rTNkdyJ6G_rvoL6TR0;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)V
@@ -14266,6 +15137,8 @@
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$iojPtiJXnnFJDsa0P-LGE6gfikU;->getOrThrow()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jDU7UhnyXuItN3e_DVSz6WUa7Qc;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Z)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jDU7UhnyXuItN3e_DVSz6WUa7Qc;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jZJHZdHi2d2IGPmtF3qkyCAED30;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jZJHZdHi2d2IGPmtF3qkyCAED30;->getOrThrow()Ljava/lang/Object;
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ja_JdZk-BJUe5rbQuU_LxLblBfM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ja_JdZk-BJUe5rbQuU_LxLblBfM;->getOrThrow()Ljava/lang/Object;
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jgsUvRSr_6U0Lrv4PXbJtZQe_Mk;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;)V
@@ -14280,32 +15153,52 @@
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$lmsiKzZN5DKHTzgWChWAyGfrxwk;->getOrThrow()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$m2h-vVM6u7Yweb_QNLSUAbWduj8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$m2h-vVM6u7Yweb_QNLSUAbWduj8;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$m7rLjOikh2mbiVKjWDn3GBpideo;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$m7rLjOikh2mbiVKjWDn3GBpideo;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mBXxcFZAZnjzw9sY7LWPSdbiolE;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mBXxcFZAZnjzw9sY7LWPSdbiolE;-><init>()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mF6fAm3fr7FHqqfmNeO86iULgao;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mF6fAm3fr7FHqqfmNeO86iULgao;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mkMQ9WtInWWL27eiU6IDs8Sol8Q;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mkMQ9WtInWWL27eiU6IDs8Sol8Q;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mwB_cr6tzwviD1v06WbkopRquaI;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mwB_cr6tzwviD1v06WbkopRquaI;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mwS7r1mDY-UqllmCI-ssTA9SQHo;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mwS7r1mDY-UqllmCI-ssTA9SQHo;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mz0ziCw2lQO5CMfb_mYqf3ka0bw;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILjava/util/ArrayList;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$mz0ziCw2lQO5CMfb_mYqf3ka0bw;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$nBM3fQ_95BD262BpQ3v_i1LTo9o;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$nBM3fQ_95BD262BpQ3v_i1LTo9o;-><init>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$oLfRfy_OZS9YkdF7nu-kG1zUnKQ;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;IZ)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$oLfRfy_OZS9YkdF7nu-kG1zUnKQ;->getOrThrow()Ljava/lang/Object;
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$p6M2CJuZlA3Rm0CLLTJMm5qd9vU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;IZ)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$p6M2CJuZlA3Rm0CLLTJMm5qd9vU;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$pB-F_F3AnR9oCMg1VlOwhTrZ6Mk;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$pB-F_F3AnR9oCMg1VlOwhTrZ6Mk;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$paNWzEukGonqKHGYa2dcIYm1m9I;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$paNWzEukGonqKHGYa2dcIYm1m9I;-><init>()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$peeHTd988oQjHrGFppwrwfdKZU4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$peeHTd988oQjHrGFppwrwfdKZU4;->getOrThrow()Ljava/lang/Object;
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$pvoZ9UODcnSUe5AiOPUs_KioH8k;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;IZ)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$pvoZ9UODcnSUe5AiOPUs_KioH8k;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$q1YIiSRAwpEOOKy6rKvYkFzQHpo;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$q1YIiSRAwpEOOKy6rKvYkFzQHpo;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qLdZ0ebI9-VES2qOXxipAqDsLtg;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/net/ProxyInfo;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qLdZ0ebI9-VES2qOXxipAqDsLtg;->runOrThrow()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qViz9I1AJUZv2wUBqL57ZuJyV6w;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qViz9I1AJUZv2wUBqL57ZuJyV6w;->getOrThrow()Ljava/lang/Object;
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qfNjMPDGLybg6rkwexpw8dZrM-8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qfNjMPDGLybg6rkwexpw8dZrM-8;->runOrThrow()V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qfNjMPDGLybg6rkwexpw8dZrM-8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qfNjMPDGLybg6rkwexpw8dZrM-8;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$sfvNLjsZ1b42sP7hfi4sIngE1Ok;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$sfvNLjsZ1b42sP7hfi4sIngE1Ok;-><init>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$t4Io6BbYuqAYt9FXHbilhzTSiHU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$t4Io6BbYuqAYt9FXHbilhzTSiHU;->getOrThrow()Ljava/lang/Object;
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tAgDO0b7hXUD7MGkHfgPTDV4o6g;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tAgDO0b7hXUD7MGkHfgPTDV4o6g;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tN28Me5AH2pjgYHvPnMAsCjK_NU;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tN28Me5AH2pjgYHvPnMAsCjK_NU;-><init>()V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tP1hXBdmtI9IE10B4g20hA1qEA4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IILjava/lang/String;)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tP1hXBdmtI9IE10B4g20hA1qEA4;->runOrThrow()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tWth7tXYQXpYp5Hzb8E7OMe1xQU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tWth7tXYQXpYp5Hzb8E7OMe1xQU;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tfWVKBTGvhCLutowgY2p1qhI_5k;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/IBinder;Z)V
@@ -14320,25 +15213,39 @@
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ubKPRWVtvdZzQDW6CDEvggHJXRc;->runOrThrow()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ufUhKIuf-ai14oI_NezHS9qCjh0;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ufUhKIuf-ai14oI_NezHS9qCjh0;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uscGE01UNkxETEanV-Gb-ZwPjKI;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uscGE01UNkxETEanV-Gb-ZwPjKI;->run()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vR-RWtti8ewEGuhsA0IoU86GAmo;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vR-RWtti8ewEGuhsA0IoU86GAmo;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vsNaZOHvF-kWqLDfhyiTAaRLpQU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/Intent;)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$vsNaZOHvF-kWqLDfhyiTAaRLpQU;->runOrThrow()V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wdjKJZZQbwUvNkCxj7a-RCOB9p8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;Landroid/os/UserHandle;)V
 HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wdjKJZZQbwUvNkCxj7a-RCOB9p8;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wv3ENyztVnJQ2NQstjeqTDWle-E;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wv3ENyztVnJQ2NQstjeqTDWle-E;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ww-zJ0MCyQCaKLy1D5pMQ3HHg-g;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/net/ProxyInfo;)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ww-zJ0MCyQCaKLy1D5pMQ3HHg-g;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wynHOghqUtl8CTB8Lp1BnOlWruI;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wynHOghqUtl8CTB8Lp1BnOlWruI;-><init>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$wynHOghqUtl8CTB8Lp1BnOlWruI;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$x6W1uCZnwJco5r7pNANZk83ZAXM;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;I)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$x6W1uCZnwJco5r7pNANZk83ZAXM;->getOrThrow()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xNEzeKxioITjjXluv5fVIH4Ral4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xNEzeKxioITjjXluv5fVIH4Ral4;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$x_XvH7NWMAoRsaUgVX92Cmco4J0;-><clinit>()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$x_XvH7NWMAoRsaUgVX92Cmco4J0;-><init>()V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xabPm_Q5O8A0hxC5Xhkk4DoTmp8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
 HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xabPm_Q5O8A0hxC5Xhkk4DoTmp8;->runOrThrow()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xzU9x0UCiHYAzj-9F5L3J4ehnsA;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$xzU9x0UCiHYAzj-9F5L3J4ehnsA;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$yABzfxLSJsRtIg68zL1wRRuzKQI;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$yABzfxLSJsRtIg68zL1wRRuzKQI;->runOrThrow()V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$yHGh9AMijS2x8s0uNSRzcgzf08I;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IILjava/lang/String;)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$yHGh9AMijS2x8s0uNSRzcgzf08I;->runOrThrow()V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ylqQ-0_BWKf5SNKi5IEZksGSyuU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
 PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ylqQ-0_BWKf5SNKi5IEZksGSyuU;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$yrfRAc2bMLk5BchlTNeyoNX-iCs;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$yrfRAc2bMLk5BchlTNeyoNX-iCs;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/devicepolicy/-$$Lambda$NetworkLoggingHandler$VKC_fB9Ws13yQKJ8zNkiF3Wp0Jk;-><init>(Lcom/android/server/devicepolicy/NetworkLoggingHandler;J)V
 PLcom/android/server/devicepolicy/-$$Lambda$NetworkLoggingHandler$VKC_fB9Ws13yQKJ8zNkiF3Wp0Jk;->run()V
 PLcom/android/server/devicepolicy/-$$Lambda$SecurityLogMonitor$y5Q3dMmmJ8bk5nBh8WR2MUroKrI;-><clinit>()V
@@ -14428,7 +15335,7 @@
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getDevicePolicyFilePathForSystemUser()Ljava/lang/String;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIActivityManager()Landroid/app/IActivityManager;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIActivityTaskManager()Landroid/app/IActivityTaskManager;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIBackupManager()Landroid/app/backup/IBackupManager;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIBackupManager()Landroid/app/backup/IBackupManager;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIIpConnectivityMetrics()Landroid/net/IIpConnectivityMetrics;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIPackageManager()Landroid/content/pm/IPackageManager;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIPermissionManager()Landroid/permission/IPermissionManager;
@@ -14454,15 +15361,17 @@
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->newLockPatternUtils()Lcom/android/internal/widget/LockPatternUtils;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->newOwners()Lcom/android/server/devicepolicy/Owners;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->newTransferOwnershipMetadataManager()Lcom/android/server/devicepolicy/TransferOwnershipMetadataManager;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->pendingIntentGetBroadcast(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->postOnSystemServerInitThreadPool(Ljava/lang/Runnable;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->runCryptoSelfTest()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->securityLogGetLoggingEnabledProperty()Z
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->securityLogIsLoggingEnabled()Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->securityLogSetLoggingEnabledProperty(Z)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsGlobalGetInt(Ljava/lang/String;I)I
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsGlobalGetString(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsGlobalPutInt(Ljava/lang/String;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsGlobalPutString(Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsGlobalPutString(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsSecureGetIntForUser(Ljava/lang/String;II)I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsSecurePutIntForUser(Ljava/lang/String;II)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsSecurePutStringForUser(Ljava/lang/String;Ljava/lang/String;I)V
@@ -14483,7 +15392,9 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->access$2100(Lcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;ILjava/util/List;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->access$2300(Lcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;ILjava/util/List;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->addOnCrossProfileWidgetProvidersChangeListener(Landroid/app/admin/DevicePolicyManagerInternal$OnCrossProfileWidgetProvidersChangeListener;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->broadcastIntentToCrossProfileManifestReceiversAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Z)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->canSilentlyInstallPackage(Ljava/lang/String;I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->getAllCrossProfilePackages()Ljava/util/List;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->getCrossProfileWidgetProviders(I)Ljava/util/List;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->getDevicePolicyCache()Landroid/app/admin/DevicePolicyCache;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->getDeviceStateCache()Landroid/app/admin/DeviceStateCache;
@@ -14536,6 +15447,7 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->addCrossProfileWidgetProvider(Landroid/content/ComponentName;Ljava/lang/String;)Z
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->addOrRemoveDisableCameraRestriction(Landroid/os/Bundle;I)Landroid/os/Bundle;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->addOrRemoveDisableCameraRestriction(Landroid/os/Bundle;Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)Landroid/os/Bundle;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->applyManagedProfileRestrictionIfDeviceOwnerLocked()V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->applyPersonalAppsSuspension(IZ)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->areAllUsersAffiliatedWithDeviceLocked()Z
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->canProfileOwnerAccessDeviceIds(I)Z
@@ -14562,6 +15474,7 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->dumpDevicePolicyData(Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enableIfNecessary(Ljava/lang/String;I)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enableSystemApp(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceAcrossUsersPermissions()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceCallerCanRequestDeviceIdAttestation(Landroid/content/ComponentName;Ljava/lang/String;I)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceCanCallLockTaskLocked(Landroid/content/ComponentName;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceCanManageCaCerts(Landroid/content/ComponentName;Ljava/lang/String;)V
@@ -14587,7 +15500,7 @@
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceSystemUserOrPermissionIfCrossUser(ILjava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceUserUnlocked(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceUserUnlocked(IZ)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureAllUsersAffiliated()V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureAllUsersAffiliated()V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureCallerIdentityMatchesIfNotSystem(Ljava/lang/String;II)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureCallerPackage(Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureDeviceOwnerAndAllUsersAffiliated(Landroid/content/ComponentName;)V
@@ -14601,6 +15514,7 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAcceptedCaCertificates(Landroid/os/UserHandle;)Ljava/util/Set;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAccessibilityManagerForUser(I)Landroid/view/accessibility/AccessibilityManager;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAccountTypesWithManagementDisabledAsUser(I)[Ljava/lang/String;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAccountTypesWithManagementDisabledAsUser(IZ)[Ljava/lang/String;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminForCallerLocked(Landroid/content/ComponentName;I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminForCallerLocked(Landroid/content/ComponentName;IZ)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminForUidLocked(Landroid/content/ComponentName;I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
@@ -14612,9 +15526,12 @@
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminWithPolicyForUidLocked(Landroid/content/ComponentName;II)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdmins(I)Ljava/util/List;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminsForAffectedUser(IZ)Ljava/util/List;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminsForAffectedUserLocked(I)Ljava/util/List;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminsForLockscreenPoliciesLocked(IZ)Ljava/util/List;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAdminWithMinimumFailedPasswordsForWipeLocked(IZ)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAllCrossProfilePackages()Ljava/util/List;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAlwaysOnVpnPackage(Landroid/content/ComponentName;)Ljava/lang/String;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAlwaysOnVpnPackageForUser(I)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getApplicationLabel(Ljava/lang/String;I)Ljava/lang/String;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getBindDeviceAdminTargetUsers(Landroid/content/ComponentName;)Ljava/util/List;
@@ -14625,10 +15542,13 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfileCalendarPackagesForUser(I)Ljava/util/List;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfileCallerIdDisabledForUser(I)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfileContactsSearchDisabledForUser(I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfilePackagesForAdmins(Ljava/util/List;)Ljava/util/List;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfileWidgetProviders(Landroid/content/ComponentName;)Ljava/util/List;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCurrentFailedPasswordAttempts(IZ)I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDefaultCrossProfilePackages()Ljava/util/List;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDelegatePackagesInternalLocked(Ljava/lang/String;I)Ljava/util/List;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOrProfileOwnerAdminLocked(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerAdminLocked()Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerOrganizationName()Ljava/lang/CharSequence;
@@ -14640,6 +15560,9 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getIntentFilterActions(Landroid/content/IntentFilter;)[Ljava/lang/String;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getKeepUninstalledPackagesLocked()Ljava/util/List;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getLastBugReportRequestTime()J
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getLastNetworkLogRetrievalTime()J
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getLastSecurityLogRetrievalTime()J
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getLockObject()Ljava/lang/Object;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getManagedUserId(I)I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)I
@@ -14648,6 +15571,7 @@
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMeteredDisabledPackagesLocked(I)Ljava/util/Set;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMinimumStrongAuthTimeoutMs()J
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getOrganizationNameForUser(I)Ljava/lang/CharSequence;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getOrganizationOwnedProfileUserId()I
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getOwnerComponent(I)Landroid/content/ComponentName;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getOwnerInstalledCaCerts(Landroid/os/UserHandle;)Landroid/content/pm/StringParceledListSlice;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordComplexity(Z)I
@@ -14673,6 +15597,7 @@
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPowerManagerInternal()Landroid/os/PowerManagerInternal;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwner(I)Landroid/content/ComponentName;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAdminLocked(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAdminsForCurrentProfileGroup()Ljava/util/List;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerName(I)Ljava/lang/String;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerOfOrganizationOwnedDeviceLocked(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
@@ -14680,6 +15605,8 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getRequiredStrongAuthTimeout(Landroid/content/ComponentName;IZ)J
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getRestrictionsProvider(I)Landroid/content/ComponentName;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getScreenCaptureDisabled(Landroid/content/ComponentName;I)Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getScreenCaptureDisabled(Landroid/content/ComponentName;IZ)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getSecurityLoggingEnabledUser()I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getShortSupportMessageForUser(Landroid/content/ComponentName;I)Ljava/lang/CharSequence;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getStorageEncryptionStatus(Ljava/lang/String;I)I
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getStrictestPasswordRequirement(Landroid/content/ComponentName;IZLjava/util/function/Function;I)I
@@ -14711,6 +15638,7 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isAdminActive(Landroid/content/ComponentName;I)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isApplicationHidden(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isApplicationHidden(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Z)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isBackupServiceEnabled(Landroid/content/ComponentName;)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCallerDelegate(Ljava/lang/String;ILjava/lang/String;)Z
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCallerWithSystemUid()Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCurrentInputMethodSetByOwner()Z
@@ -14729,15 +15657,16 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isNetworkLoggingEnabled(Landroid/content/ComponentName;Ljava/lang/String;)Z
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isNetworkLoggingEnabledInternalLocked()Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isNotificationListenerServicePermitted(Ljava/lang/String;I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isOrganizationOwnedDeviceWithManagedProfile()Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isPackageInstalledForUser(Ljava/lang/String;I)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isPackageSuspended(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isPackageTestOnly(Ljava/lang/String;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isPasswordSufficientForUserWithoutCheckpointLocked(Landroid/app/admin/PasswordMetrics;IZ)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isPasswordSufficientForUserWithoutCheckpointLocked(Landroid/app/admin/PasswordMetrics;IZ)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileActivePasswordSufficientForParent(I)Z
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwner(Landroid/content/ComponentName;I)Z
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(I)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(Landroid/content/ComponentName;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)Z
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerPackage(Ljava/lang/String;I)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProvisioningAllowed(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isRemovedPackage(Ljava/lang/String;Ljava/lang/String;I)Z
@@ -14758,29 +15687,48 @@
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$areAllUsersAffiliatedWithDeviceLocked$74$DevicePolicyManagerService()Ljava/lang/Boolean;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$areAllUsersAffiliatedWithDeviceLocked$80$DevicePolicyManagerService()Ljava/lang/Boolean;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$areAllUsersAffiliatedWithDeviceLocked$81$DevicePolicyManagerService()Ljava/lang/Boolean;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$areAllUsersAffiliatedWithDeviceLocked$82$DevicePolicyManagerService()Ljava/lang/Boolean;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$areAllUsersAffiliatedWithDeviceLocked$82$DevicePolicyManagerService()Ljava/lang/Boolean;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$areAllUsersAffiliatedWithDeviceLocked$83$DevicePolicyManagerService()Ljava/lang/Boolean;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$areAllUsersAffiliatedWithDeviceLocked$84$DevicePolicyManagerService()Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$choosePrivateKeyAlias$23$DevicePolicyManagerService(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/IBinder;Z)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$choosePrivateKeyAlias$24$DevicePolicyManagerService(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/IBinder;Z)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$choosePrivateKeyAlias$25$DevicePolicyManagerService(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/IBinder;Z)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$clearPersonalAppsSuspendedNotification$104$DevicePolicyManagerService()V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$clearPersonalAppsSuspendedNotification$105$DevicePolicyManagerService()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$clearPersonalAppsSuspendedNotification$106$DevicePolicyManagerService()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$clearPersonalAppsSuspendedNotification$106$DevicePolicyManagerService()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$clearPersonalAppsSuspendedNotification$108$DevicePolicyManagerService()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$clearPersonalAppsSuspendedNotification$109$DevicePolicyManagerService()V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$ensureMinimumQuality$10$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IILjava/lang/String;)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$ensureMinimumQuality$11$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IILjava/lang/String;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$ensureMinimumQuality$9$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IILjava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$findAdmin$2$DevicePolicyManagerService(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getActiveAdminsForAffectedUserLocked$8$DevicePolicyManagerService(ILjava/util/ArrayList;)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getActiveAdminsForAffectedUserLocked$9$DevicePolicyManagerService(ILjava/util/ArrayList;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getAlwaysOnVpnPackage$25$DevicePolicyManagerService(I)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getAlwaysOnVpnPackage$26$DevicePolicyManagerService(I)Ljava/lang/String;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getAlwaysOnVpnPackage$27$DevicePolicyManagerService(I)Ljava/lang/String;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getAlwaysOnVpnPackage$28$DevicePolicyManagerService(I)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationLabel$47$DevicePolicyManagerService(ILjava/lang/String;)Ljava/lang/String;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationLabel$48$DevicePolicyManagerService(ILjava/lang/String;)Ljava/lang/String;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$54$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$55$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$56$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$57$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$58$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getApplicationRestrictions$59$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$73$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$74$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$76$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$82$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$83$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$84$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$85$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getBindDeviceAdminTargetUsers$86$DevicePolicyManagerService(Landroid/content/ComponentName;I)Ljava/util/ArrayList;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getCredentialOwner$48$DevicePolicyManagerService(IZ)Ljava/lang/Integer;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getCredentialOwner$49$DevicePolicyManagerService(IZ)Ljava/lang/Integer;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getCredentialOwner$50$DevicePolicyManagerService(IZ)Ljava/lang/Integer;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getCredentialOwner$51$DevicePolicyManagerService(IZ)Ljava/lang/Integer;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getCredentialOwner$52$DevicePolicyManagerService(IZ)Ljava/lang/Integer;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPasswordHistoryLength$10(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)Ljava/lang/Integer;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPermissionGrantState$66$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)Ljava/lang/Integer;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPermissionGrantState$67$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)Ljava/lang/Integer;
@@ -14788,32 +15736,50 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPermissionGrantState$75$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)Ljava/lang/Integer;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPermissionGrantState$76$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)Ljava/lang/Integer;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPermissionGrantState$77$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)Ljava/lang/Integer;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getPermissionGrantState$78$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageManager;)Ljava/lang/Integer;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$44$DevicePolicyManagerService(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$45$DevicePolicyManagerService(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$46$DevicePolicyManagerService(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$47$DevicePolicyManagerService(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$48$DevicePolicyManagerService(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileOwnerOfOrganizationOwnedDeviceLocked$49$DevicePolicyManagerService(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileParentId$47$DevicePolicyManagerService(I)Ljava/lang/Integer;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileParentId$48$DevicePolicyManagerService(I)Ljava/lang/Integer;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileParentId$49$DevicePolicyManagerService(I)Ljava/lang/Integer;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileParentId$50$DevicePolicyManagerService(I)Ljava/lang/Integer;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getProfileParentId$51$DevicePolicyManagerService(I)Ljava/lang/Integer;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getUserDataUnchecked$0$DevicePolicyManagerService(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getUserInfo$17$DevicePolicyManagerService(I)Landroid/content/pm/UserInfo;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getUserInfo$18$DevicePolicyManagerService(I)Landroid/content/pm/UserInfo;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getUserInfo$19$DevicePolicyManagerService(I)Landroid/content/pm/UserInfo;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getUserInfo$20$DevicePolicyManagerService(I)Landroid/content/pm/UserInfo;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getWifiMacAddress$67$DevicePolicyManagerService(Landroid/content/ComponentName;)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getWifiMacAddress$68$DevicePolicyManagerService(Landroid/content/ComponentName;)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getWifiMacAddress$70$DevicePolicyManagerService(Landroid/content/ComponentName;)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getWifiMacAddress$76$DevicePolicyManagerService(Landroid/content/ComponentName;)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getWifiMacAddress$77$DevicePolicyManagerService(Landroid/content/ComponentName;)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getWifiMacAddress$78$DevicePolicyManagerService(Landroid/content/ComponentName;)Ljava/lang/String;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$getWifiMacAddress$79$DevicePolicyManagerService(Landroid/content/ComponentName;)Ljava/lang/String;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isApplicationHidden$59$DevicePolicyManagerService(Ljava/lang/String;I)Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isApplicationHidden$60$DevicePolicyManagerService(Ljava/lang/String;I)Ljava/lang/Boolean;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isCallingFromPackage$104$DevicePolicyManagerService(Ljava/lang/String;I)Ljava/lang/Boolean;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isCallingFromPackage$105$DevicePolicyManagerService(Ljava/lang/String;I)Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isResetPasswordTokenActive$80$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isResetPasswordTokenActive$81$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isResetPasswordTokenActive$83$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isResetPasswordTokenActive$89$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isResetPasswordTokenActive$90$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isResetPasswordTokenActive$91$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)Ljava/lang/Boolean;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isResetPasswordTokenActiveForUserLocked$90$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)Ljava/lang/Boolean;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isResetPasswordTokenActiveForUserLocked$91$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)Ljava/lang/Boolean;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isResetPasswordTokenActiveForUserLocked$92$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)Ljava/lang/Boolean;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isResetPasswordTokenActiveForUserLocked$93$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)Ljava/lang/Boolean;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isSeparateProfileChallengeEnabled$10$DevicePolicyManagerService(I)Ljava/lang/Boolean;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isSeparateProfileChallengeEnabled$8$DevicePolicyManagerService(I)Ljava/lang/Boolean;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$isSeparateProfileChallengeEnabled$9$DevicePolicyManagerService(I)Ljava/lang/Boolean;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$loadAdminDataAsync$0$DevicePolicyManagerService()V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$loadAdminDataAsync$4$DevicePolicyManagerService()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$loadAdminDataAsync$5$DevicePolicyManagerService()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$maybeClearLockTaskPolicyLocked$62$DevicePolicyManagerService()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$notifyPendingSystemUpdate$64$DevicePolicyManagerService(Landroid/content/Intent;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$notifyPendingSystemUpdate$65$DevicePolicyManagerService(Landroid/content/Intent;)V
@@ -14825,29 +15791,39 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$reportSuccessfulPasswordAttempt$30$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$reportSuccessfulPasswordAttempt$31$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$reportSuccessfulPasswordAttempt$32$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$reportSuccessfulPasswordAttempt$33$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$sendChangedNotification$2$DevicePolicyManagerService(Landroid/content/Intent;I)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$sendChangedNotification$3$DevicePolicyManagerService(Landroid/content/Intent;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setActiveAdmin$3$DevicePolicyManagerService(Landroid/content/ComponentName;IZLandroid/app/admin/DeviceAdminInfo;Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;Landroid/os/Bundle;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationHidden$58$DevicePolicyManagerService(Ljava/lang/String;ZI)Ljava/lang/Boolean;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$50$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$51$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$52$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$53$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$54$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setApplicationRestrictions$55$DevicePolicyManagerService(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;Landroid/content/ComponentName;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setDeviceOwnerLockScreenInfo$41$DevicePolicyManagerService(Ljava/lang/CharSequence;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setDeviceOwnerLockScreenInfo$42$DevicePolicyManagerService(Ljava/lang/CharSequence;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setDeviceOwnerLockScreenInfo$43$DevicePolicyManagerService(Ljava/lang/CharSequence;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setDeviceOwnerLockScreenInfo$44$DevicePolicyManagerService(Ljava/lang/CharSequence;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setDeviceOwnerLockScreenInfo$45$DevicePolicyManagerService(Ljava/lang/CharSequence;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setExpirationAlarmCheckLocked$1$DevicePolicyManagerService(ZILandroid/content/Context;J)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setGlobalSetting$57$DevicePolicyManagerService(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setGlobalSetting$58$DevicePolicyManagerService(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setGlobalSetting$62$DevicePolicyManagerService(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setGlobalSetting$63$DevicePolicyManagerService(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setGlobalSetting$64$DevicePolicyManagerService(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setGlobalSetting$65$DevicePolicyManagerService(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setNetworkLoggingActiveInternal$75$DevicePolicyManagerService(Z)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setNetworkLoggingActiveInternal$76$DevicePolicyManagerService(Z)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setNetworkLoggingActiveInternal$78$DevicePolicyManagerService(Z)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setNetworkLoggingActiveInternal$84$DevicePolicyManagerService(Z)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setNetworkLoggingActiveInternal$85$DevicePolicyManagerService(Z)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setNetworkLoggingActiveInternal$86$DevicePolicyManagerService(Z)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setNetworkLoggingActiveInternal$87$DevicePolicyManagerService(Z)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setNetworkLoggingActiveInternal$88$DevicePolicyManagerService(Z)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setPasswordQuality$7$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IIZLandroid/content/ComponentName;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setPasswordQuality$8$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;IIZLandroid/content/ComponentName;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setPermissionGrantState$65(ZLandroid/os/RemoteCallback;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Boolean;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setPermissionGrantState$66(ZLandroid/os/RemoteCallback;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Boolean;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setPermissionGrantState$68(ZLandroid/os/RemoteCallback;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Boolean;)V
@@ -14861,6 +15837,7 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setRecommendedGlobalProxy$32$DevicePolicyManagerService(Landroid/net/ProxyInfo;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setRecommendedGlobalProxy$33$DevicePolicyManagerService(Landroid/net/ProxyInfo;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setRecommendedGlobalProxy$34$DevicePolicyManagerService(Landroid/net/ProxyInfo;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setRecommendedGlobalProxy$35$DevicePolicyManagerService(Landroid/net/ProxyInfo;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setResetPasswordToken$87$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I[B)Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setResetPasswordToken$88$DevicePolicyManagerService(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I[B)Ljava/lang/Boolean;
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setSecureSetting$62$DevicePolicyManagerService(Ljava/lang/String;ILjava/lang/String;)V
@@ -14871,8 +15848,15 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$setSecureSetting$72$DevicePolicyManagerService(Ljava/lang/String;ILjava/lang/String;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateMaximumTimeToLockLocked$19$DevicePolicyManagerService(I)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateMaximumTimeToLockLocked$20$DevicePolicyManagerService(I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateMaximumTimeToLockLocked$21$DevicePolicyManagerService(I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateMaximumTimeToLockLocked$22$DevicePolicyManagerService(I)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateProfileLockTimeoutLocked$20$DevicePolicyManagerService(ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateProfileLockTimeoutLocked$21$DevicePolicyManagerService(ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateProfileLockTimeoutLocked$22$DevicePolicyManagerService(ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateProfileLockTimeoutLocked$23$DevicePolicyManagerService(ILcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateScreenCaptureDisabled$35$DevicePolicyManagerService(I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateScreenCaptureDisabled$36$DevicePolicyManagerService(I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$updateScreenCaptureDisabled$37$DevicePolicyManagerService(I)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadAdminDataAsync()V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadConstants()Lcom/android/server/devicepolicy/DevicePolicyConstants;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadOwners()V
@@ -14891,6 +15875,7 @@
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeSetDefaultRestrictionsForAdminLocked(ILcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;Ljava/util/Set;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeStartSecurityLogMonitorOnActivityManagerReady()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeUpdatePersonalAppsSuspendedNotification(I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->migrateToProfileOnOrganizationOwnedDeviceIfCompLocked()V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->migrateUserRestrictionsIfNecessaryLocked()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->notifyLockTaskModeChanged(ZLjava/lang/String;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->notifyPendingSystemUpdate(Landroid/app/admin/SystemUpdateInfo;)V
@@ -14920,9 +15905,9 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportSuccessfulPasswordAttempt(I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->resetGlobalProxyLocked(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->resetInactivePasswordRequirementsIfRPlus(ILcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->resolveDelegateReceiver(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->resolveDelegateReceiver(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName;
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->retrieveNetworkLogs(Landroid/content/ComponentName;Ljava/lang/String;J)Ljava/util/List;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->retrieveSecurityLogs(Landroid/content/ComponentName;)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->retrieveSecurityLogs(Landroid/content/ComponentName;)Landroid/content/pm/ParceledListSlice;
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->revertTransferOwnershipIfNecessaryLocked()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->saveGlobalProxyLocked(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->saveSettingsLocked(I)V
@@ -14942,6 +15927,7 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendOwnerChangedBroadcast(Ljava/lang/String;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendPrivateKeyAliasResponse(Ljava/lang/String;Landroid/os/IBinder;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setAccountManagementDisabled(Landroid/content/ComponentName;Ljava/lang/String;Z)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setAccountManagementDisabled(Landroid/content/ComponentName;Ljava/lang/String;ZZ)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setActiveAdmin(Landroid/content/ComponentName;ZI)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setActiveAdmin(Landroid/content/ComponentName;ZILandroid/os/Bundle;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setAffiliationIds(Landroid/content/ComponentName;Ljava/util/List;)V
@@ -14958,9 +15944,11 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setDeviceOwnerLockScreenInfo(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setDeviceOwnerSystemPropertyLocked()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setDeviceOwnershipSystemPropertyLocked()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setDeviceProvisioningConfigApplied()V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setEncryptionRequested(Z)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setEndUserSessionMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setExpirationAlarmCheckLocked(Landroid/content/Context;IZ)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setExpirationAlarmCheckLocked(Landroid/content/Context;IZ)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setGlobalSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setKeepUninstalledPackages(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setKeyPairCertificate(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;[B[BZ)Z
@@ -14976,7 +15964,7 @@
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setMaximumTimeToLock(Landroid/content/ComponentName;JZ)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setNetworkLoggingActiveInternal(Z)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setNetworkLoggingEnabled(Landroid/content/ComponentName;Ljava/lang/String;Z)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setNetworkLoggingEnabled(Landroid/content/ComponentName;Ljava/lang/String;Z)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setOrganizationColor(Landroid/content/ComponentName;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setOrganizationColorForUser(II)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setOrganizationName(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
@@ -15001,6 +15989,7 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setResetPasswordToken(Landroid/content/ComponentName;[B)Z
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setRestrictionsProvider(Landroid/content/ComponentName;Landroid/content/ComponentName;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setScreenCaptureDisabled(Landroid/content/ComponentName;Z)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setScreenCaptureDisabled(Landroid/content/ComponentName;ZZ)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setSecureSetting(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setSecurityLoggingEnabled(Landroid/content/ComponentName;Z)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setShortSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
@@ -15016,7 +16005,7 @@
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->startUninstallIntent(Ljava/lang/String;I)V
 PLcom/android/server/devicepolicy/DevicePolicyManagerService;->stopOwnerService(ILjava/lang/String;)V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->systemReady(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->toggleBackupServiceActive(IZ)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->toggleBackupServiceActive(IZ)V
 HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->translateIdAttestationFlags(I)[I
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateDeviceOwnerLocked()V
 HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateLockTaskFeaturesLocked(II)V
@@ -15065,7 +16054,7 @@
 HPLcom/android/server/devicepolicy/NetworkLoggingHandler;->handleMessage(Landroid/os/Message;)V
 HPLcom/android/server/devicepolicy/NetworkLoggingHandler;->lambda$retrieveFullLogBatch$0$NetworkLoggingHandler(J)V
 HPLcom/android/server/devicepolicy/NetworkLoggingHandler;->notifyDeviceOwner(Landroid/os/Bundle;)V
-PLcom/android/server/devicepolicy/NetworkLoggingHandler;->retrieveFullLogBatch(J)Ljava/util/List;
+HPLcom/android/server/devicepolicy/NetworkLoggingHandler;->retrieveFullLogBatch(J)Ljava/util/List;
 HSPLcom/android/server/devicepolicy/NetworkLoggingHandler;->scheduleBatchFinalization()V
 HSPLcom/android/server/devicepolicy/OverlayPackagesProvider$DefaultInjector;-><init>()V
 HSPLcom/android/server/devicepolicy/OverlayPackagesProvider$DefaultInjector;-><init>(Lcom/android/server/devicepolicy/OverlayPackagesProvider$1;)V
@@ -15154,6 +16143,8 @@
 HSPLcom/android/server/devicepolicy/SecurityLogMonitor;->run()V
 HPLcom/android/server/devicepolicy/SecurityLogMonitor;->saveLastEvents(Ljava/util/ArrayList;)V
 HSPLcom/android/server/devicepolicy/SecurityLogMonitor;->start()V
+PLcom/android/server/devicepolicy/SecurityLogMonitor;->start(I)V
+PLcom/android/server/devicepolicy/SecurityLogMonitor;->stop()V
 HSPLcom/android/server/devicepolicy/TransferOwnershipMetadataManager$Injector;-><init>()V
 HSPLcom/android/server/devicepolicy/TransferOwnershipMetadataManager$Injector;->getOwnerTransferMetadataDir()Ljava/io/File;
 HSPLcom/android/server/devicepolicy/TransferOwnershipMetadataManager;-><clinit>()V
@@ -15275,6 +16266,7 @@
 HPLcom/android/server/display/AutomaticBrightnessController;->registerForegroundAppUpdater()V
 HSPLcom/android/server/display/AutomaticBrightnessController;->resetShortTermModel()V
 HPLcom/android/server/display/AutomaticBrightnessController;->setAmbientLux(F)V
+PLcom/android/server/display/AutomaticBrightnessController;->setAutoBrightnessAdjustment(F)Z
 HSPLcom/android/server/display/AutomaticBrightnessController;->setBrightnessConfiguration(Landroid/hardware/display/BrightnessConfiguration;)Z
 HSPLcom/android/server/display/AutomaticBrightnessController;->setDisplayPolicy(I)Z
 HSPLcom/android/server/display/AutomaticBrightnessController;->setLightSensorEnabled(Z)Z
@@ -15305,6 +16297,7 @@
 PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->getUnadjustedBrightness(F)F
 HSPLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->hasUserDataPoints()Z
 HPLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->isDefaultConfig()Z
+PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->setAutoBrightnessAdjustment(F)Z
 HSPLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->setBrightnessConfiguration(Landroid/hardware/display/BrightnessConfiguration;)Z
 HSPLcom/android/server/display/BrightnessMappingStrategy;-><clinit>()V
 HSPLcom/android/server/display/BrightnessMappingStrategy;-><init>()V
@@ -15320,7 +16313,7 @@
 HSPLcom/android/server/display/BrightnessMappingStrategy;->normalizeAbsoluteBrightness(I)F
 HPLcom/android/server/display/BrightnessMappingStrategy;->permissibleRatio(FF)F
 PLcom/android/server/display/BrightnessMappingStrategy;->shouldResetShortTermModel(FF)Z
-PLcom/android/server/display/BrightnessMappingStrategy;->smoothCurve([F[FI)V
+HPLcom/android/server/display/BrightnessMappingStrategy;->smoothCurve([F[FI)V
 HPLcom/android/server/display/BrightnessTracker$BrightnessChangeValues;-><init>(FFZZJ)V
 HSPLcom/android/server/display/BrightnessTracker$Injector;-><init>()V
 PLcom/android/server/display/BrightnessTracker$Injector;->cancelIdleJob(Landroid/content/Context;)V
@@ -15386,6 +16379,7 @@
 PLcom/android/server/display/BrightnessTracker;->lambda$dump$1$BrightnessTracker(Ljava/io/PrintWriter;)V
 PLcom/android/server/display/BrightnessTracker;->lambda$scheduleWriteBrightnessTrackerState$0$BrightnessTracker()V
 HPLcom/android/server/display/BrightnessTracker;->notifyBrightnessChanged(FZFZZ)V
+PLcom/android/server/display/BrightnessTracker;->onSwitchUser(I)V
 PLcom/android/server/display/BrightnessTracker;->persistBrightnessTrackerState()V
 HSPLcom/android/server/display/BrightnessTracker;->readAmbientBrightnessStats()V
 HSPLcom/android/server/display/BrightnessTracker;->readEvents()V
@@ -15402,7 +16396,7 @@
 PLcom/android/server/display/BrightnessTracker;->writeEvents()V
 HPLcom/android/server/display/BrightnessTracker;->writeEventsLocked(Ljava/io/OutputStream;)V
 HPLcom/android/server/display/ColorFade$NaturalSurfaceLayout;-><init>(Landroid/hardware/display/DisplayManagerInternal;ILandroid/view/SurfaceControl;)V
-PLcom/android/server/display/ColorFade$NaturalSurfaceLayout;->dispose()V
+HPLcom/android/server/display/ColorFade$NaturalSurfaceLayout;->dispose()V
 HPLcom/android/server/display/ColorFade$NaturalSurfaceLayout;->onDisplayTransaction(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/display/ColorFade;-><init>(I)V
 HPLcom/android/server/display/ColorFade;->attachEglContext()Z
@@ -15642,7 +16636,7 @@
 HSPLcom/android/server/display/DisplayManagerService;->clearViewportsLocked()V
 HSPLcom/android/server/display/DisplayManagerService;->configureColorModeLocked(Lcom/android/server/display/LogicalDisplay;Lcom/android/server/display/DisplayDevice;)V
 HSPLcom/android/server/display/DisplayManagerService;->configureDisplayLocked(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/display/DisplayDevice;)V
-PLcom/android/server/display/DisplayManagerService;->createVirtualDisplayInternal(Landroid/hardware/display/IVirtualDisplayCallback;Landroid/media/projection/IMediaProjection;ILjava/lang/String;Ljava/lang/String;IIILandroid/view/Surface;ILjava/lang/String;)I
+HPLcom/android/server/display/DisplayManagerService;->createVirtualDisplayInternal(Landroid/hardware/display/IVirtualDisplayCallback;Landroid/media/projection/IMediaProjection;ILjava/lang/String;Ljava/lang/String;IIILandroid/view/Surface;ILjava/lang/String;)I
 HSPLcom/android/server/display/DisplayManagerService;->deliverDisplayEvent(II)V
 HPLcom/android/server/display/DisplayManagerService;->dumpInternal(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/DisplayManagerService;->findLogicalDisplayForDeviceLocked(Lcom/android/server/display/DisplayDevice;)Lcom/android/server/display/LogicalDisplay;
@@ -15672,6 +16666,7 @@
 HPLcom/android/server/display/DisplayManagerService;->onCallbackDied(Lcom/android/server/display/DisplayManagerService$CallbackRecord;)V
 HSPLcom/android/server/display/DisplayManagerService;->onDesiredDisplayModeSpecsChangedInternal()V
 HSPLcom/android/server/display/DisplayManagerService;->onStart()V
+PLcom/android/server/display/DisplayManagerService;->onSwitchUser(I)V
 HSPLcom/android/server/display/DisplayManagerService;->performTraversalInternal(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/display/DisplayManagerService;->performTraversalLocked(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/display/DisplayManagerService;->populateViewportLocked(IILcom/android/server/display/DisplayDevice;Ljava/lang/String;)V
@@ -15681,7 +16676,7 @@
 HSPLcom/android/server/display/DisplayManagerService;->registerCallbackInternal(Landroid/hardware/display/IDisplayManagerCallback;I)V
 HSPLcom/android/server/display/DisplayManagerService;->registerDefaultDisplayAdapters()V
 HSPLcom/android/server/display/DisplayManagerService;->registerDisplayAdapterLocked(Lcom/android/server/display/DisplayAdapter;)V
-PLcom/android/server/display/DisplayManagerService;->registerDisplayTransactionListenerInternal(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
+HPLcom/android/server/display/DisplayManagerService;->registerDisplayTransactionListenerInternal(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
 HSPLcom/android/server/display/DisplayManagerService;->registerOverlayDisplayAdapterLocked()V
 HSPLcom/android/server/display/DisplayManagerService;->registerWifiDisplayAdapterLocked()V
 PLcom/android/server/display/DisplayManagerService;->releaseVirtualDisplayInternal(Landroid/os/IBinder;)V
@@ -15706,7 +16701,7 @@
 PLcom/android/server/display/DisplayManagerService;->stopWifiDisplayScanInternal(I)V
 HPLcom/android/server/display/DisplayManagerService;->stopWifiDisplayScanLocked(Lcom/android/server/display/DisplayManagerService$CallbackRecord;)V
 HSPLcom/android/server/display/DisplayManagerService;->systemReady(ZZ)V
-PLcom/android/server/display/DisplayManagerService;->unregisterDisplayTransactionListenerInternal(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
+HPLcom/android/server/display/DisplayManagerService;->unregisterDisplayTransactionListenerInternal(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
 HSPLcom/android/server/display/DisplayManagerService;->updateDisplayStateLocked(Lcom/android/server/display/DisplayDevice;)Ljava/lang/Runnable;
 HSPLcom/android/server/display/DisplayManagerService;->updateLogicalDisplaysLocked()Z
 HSPLcom/android/server/display/DisplayManagerService;->updateSettingsLocked()V
@@ -15780,7 +16775,7 @@
 HSPLcom/android/server/display/DisplayModeDirector$SettingsObserver;-><init>(Lcom/android/server/display/DisplayModeDirector;Landroid/content/Context;Landroid/os/Handler;)V
 PLcom/android/server/display/DisplayModeDirector$SettingsObserver;->dumpLocked(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/DisplayModeDirector$SettingsObserver;->observe()V
-PLcom/android/server/display/DisplayModeDirector$SettingsObserver;->onChange(ZLandroid/net/Uri;I)V
+HPLcom/android/server/display/DisplayModeDirector$SettingsObserver;->onChange(ZLandroid/net/Uri;I)V
 PLcom/android/server/display/DisplayModeDirector$SettingsObserver;->onDeviceConfigDefaultPeakRefreshRateChanged(Ljava/lang/Float;)V
 HSPLcom/android/server/display/DisplayModeDirector$SettingsObserver;->updateLowPowerModeSettingLocked()V
 HSPLcom/android/server/display/DisplayModeDirector$SettingsObserver;->updateRefreshRateSettingLocked()V
@@ -15859,6 +16854,7 @@
 HSPLcom/android/server/display/DisplayPowerController;->access$100(Lcom/android/server/display/DisplayPowerController;)V
 PLcom/android/server/display/DisplayPowerController;->access$1000(Lcom/android/server/display/DisplayPowerController;)Lcom/android/server/display/DisplayPowerController$ScreenOffUnblocker;
 HSPLcom/android/server/display/DisplayPowerController;->access$1202(Lcom/android/server/display/DisplayPowerController;Landroid/hardware/display/BrightnessConfiguration;)Landroid/hardware/display/BrightnessConfiguration;
+PLcom/android/server/display/DisplayPowerController;->access$1302(Lcom/android/server/display/DisplayPowerController;F)F
 PLcom/android/server/display/DisplayPowerController;->access$1302(Lcom/android/server/display/DisplayPowerController;I)I
 PLcom/android/server/display/DisplayPowerController;->access$1500(Lcom/android/server/display/DisplayPowerController;)Z
 PLcom/android/server/display/DisplayPowerController;->access$1600(Lcom/android/server/display/DisplayPowerController;)F
@@ -15904,6 +16900,7 @@
 HSPLcom/android/server/display/DisplayPowerController;->isValidBrightnessValue(F)Z
 HPLcom/android/server/display/DisplayPowerController;->logDisplayPolicyChanged(I)V
 HSPLcom/android/server/display/DisplayPowerController;->notifyBrightnessChanged(IZZ)V
+PLcom/android/server/display/DisplayPowerController;->onSwitchUser(I)V
 PLcom/android/server/display/DisplayPowerController;->persistBrightnessTrackerState()V
 PLcom/android/server/display/DisplayPowerController;->proximityToString(I)Ljava/lang/String;
 PLcom/android/server/display/DisplayPowerController;->putAutoBrightnessAdjustmentSetting(F)V
@@ -16018,6 +17015,7 @@
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->applyPendingDisplayDeviceInfoChangesLocked()V
 HPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->dumpLocked(Ljava/io/PrintWriter;)V
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findDisplayConfigIdLocked(I)I
+HPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findDisplayConfigIdLocked(II)I
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findDisplayInfoIndexLocked(I)I
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findDisplayModeRecord(Landroid/view/SurfaceControl$DisplayConfig;)Lcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;
 HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findDisplayModeRecord(Landroid/view/SurfaceControl$PhysicalDisplayInfo;)Lcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;
@@ -16060,7 +17058,7 @@
 HSPLcom/android/server/display/LocalDisplayAdapter$PhysicalDisplayEventReceiver;->onConfigChanged(JJI)V
 HSPLcom/android/server/display/LocalDisplayAdapter;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;)V
 HSPLcom/android/server/display/LocalDisplayAdapter;->access$500(Lcom/android/server/display/LocalDisplayAdapter;)Landroid/util/LongSparseArray;
-PLcom/android/server/display/LocalDisplayAdapter;->access$700(Lcom/android/server/display/LocalDisplayAdapter;)Landroid/util/LongSparseArray;
+HSPLcom/android/server/display/LocalDisplayAdapter;->access$700(Lcom/android/server/display/LocalDisplayAdapter;)Landroid/util/LongSparseArray;
 HSPLcom/android/server/display/LocalDisplayAdapter;->access$800(Lcom/android/server/display/LocalDisplayAdapter;)Landroid/util/LongSparseArray;
 HSPLcom/android/server/display/LocalDisplayAdapter;->getOverlayContext()Landroid/content/Context;
 HSPLcom/android/server/display/LocalDisplayAdapter;->getPowerModeForState(I)I
@@ -16169,14 +17167,14 @@
 HSPLcom/android/server/display/RampAnimator;->isAnimating()Z
 HPLcom/android/server/display/RampAnimator;->postAnimationCallback()V
 HSPLcom/android/server/display/RampAnimator;->setListener(Lcom/android/server/display/RampAnimator$Listener;)V
-PLcom/android/server/display/VirtualDisplayAdapter$Callback;-><init>(Landroid/hardware/display/IVirtualDisplayCallback;Landroid/os/Handler;)V
+HPLcom/android/server/display/VirtualDisplayAdapter$Callback;-><init>(Landroid/hardware/display/IVirtualDisplayCallback;Landroid/os/Handler;)V
 PLcom/android/server/display/VirtualDisplayAdapter$Callback;->dispatchDisplayPaused()V
 PLcom/android/server/display/VirtualDisplayAdapter$Callback;->dispatchDisplayResumed()V
 PLcom/android/server/display/VirtualDisplayAdapter$Callback;->dispatchDisplayStopped()V
-PLcom/android/server/display/VirtualDisplayAdapter$Callback;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/display/VirtualDisplayAdapter$Callback;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/display/VirtualDisplayAdapter$MediaProjectionCallback;-><init>(Lcom/android/server/display/VirtualDisplayAdapter;Landroid/os/IBinder;)V
 PLcom/android/server/display/VirtualDisplayAdapter$MediaProjectionCallback;->onStop()V
-PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;-><init>(Lcom/android/server/display/VirtualDisplayAdapter;Landroid/os/IBinder;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;IIILandroid/view/Surface;ILcom/android/server/display/VirtualDisplayAdapter$Callback;Ljava/lang/String;I)V
+HPLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;-><init>(Lcom/android/server/display/VirtualDisplayAdapter;Landroid/os/IBinder;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;IIILandroid/view/Surface;ILcom/android/server/display/VirtualDisplayAdapter$Callback;Ljava/lang/String;I)V
 PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->access$000(Lcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;)I
 PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->binderDied()V
 HPLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->destroyLocked(Z)V
@@ -16184,11 +17182,12 @@
 HPLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->getDisplayDeviceInfoLocked()Lcom/android/server/display/DisplayDeviceInfo;
 PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->hasStableUniqueId()Z
 HPLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->performTraversalLocked(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->requestDisplayStateLocked(IF)Ljava/lang/Runnable;
+HPLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->requestDisplayStateLocked(IF)Ljava/lang/Runnable;
 HPLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->requestDisplayStateLocked(II)Ljava/lang/Runnable;
 PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->resizeLocked(III)V
 PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->setDisplayState(Z)V
-PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->setSurfaceLocked(Landroid/view/Surface;)V
+HPLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->setSurfaceLocked(Landroid/view/Surface;)V
+PLcom/android/server/display/VirtualDisplayAdapter$VirtualDisplayDevice;->stopLocked()V
 HSPLcom/android/server/display/VirtualDisplayAdapter;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;)V
 HSPLcom/android/server/display/VirtualDisplayAdapter;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;Lcom/android/server/display/VirtualDisplayAdapter$SurfaceControlDisplayFactory;)V
 PLcom/android/server/display/VirtualDisplayAdapter;->access$100(Lcom/android/server/display/VirtualDisplayAdapter;Landroid/os/IBinder;)V
@@ -16273,7 +17272,7 @@
 PLcom/android/server/display/color/ColorDisplayService$NightDisplayAutoMode;-><init>(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/ColorDisplayService$1;)V
 HSPLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V
 HSPLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;-><init>(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/ColorDisplayService$1;)V
-PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->clampNightDisplayColorTemperature(I)I
+HPLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->clampNightDisplayColorTemperature(I)I
 PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->getColorTemperature()I
 PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->getColorTemperatureSetting()I
 HPLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->getLevel()I
@@ -16298,6 +17297,7 @@
 PLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V
 PLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;->onActivated(Z)V
 PLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;->onStart()V
+PLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;->onStop()V
 HPLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;->onTwilightStateChanged(Lcom/android/server/twilight/TwilightState;)V
 HPLcom/android/server/display/color/ColorDisplayService$TwilightNightDisplayAutoMode;->updateActivated(Lcom/android/server/twilight/TwilightState;)V
 HSPLcom/android/server/display/color/ColorDisplayService;-><clinit>()V
@@ -16356,6 +17356,7 @@
 HSPLcom/android/server/display/color/ColorDisplayService;->onStart()V
 HSPLcom/android/server/display/color/ColorDisplayService;->onStartUser(I)V
 PLcom/android/server/display/color/ColorDisplayService;->onStopUser(I)V
+PLcom/android/server/display/color/ColorDisplayService;->onSwitchUser(I)V
 HSPLcom/android/server/display/color/ColorDisplayService;->onUserChanged(I)V
 PLcom/android/server/display/color/ColorDisplayService;->setAppSaturationLevelInternal(Ljava/lang/String;I)Z
 PLcom/android/server/display/color/ColorDisplayService;->setColorModeInternal(I)V
@@ -16363,6 +17364,7 @@
 PLcom/android/server/display/color/ColorDisplayService;->setNightDisplayAutoModeInternal(I)Z
 PLcom/android/server/display/color/ColorDisplayService;->setUp()V
 PLcom/android/server/display/color/ColorDisplayService;->setUpDisplayCompositionColorSpaces(Landroid/content/res/Resources;)V
+PLcom/android/server/display/color/ColorDisplayService;->tearDown()V
 PLcom/android/server/display/color/ColorDisplayService;->updateDisplayWhiteBalanceStatus()V
 HSPLcom/android/server/display/color/DisplayTransformManager;-><clinit>()V
 HSPLcom/android/server/display/color/DisplayTransformManager;-><init>()V
@@ -16396,6 +17398,7 @@
 HPLcom/android/server/display/color/GlobalSaturationTintController;->setMatrix(I)V
 HSPLcom/android/server/display/color/TintController;-><init>()V
 HPLcom/android/server/display/color/TintController;->cancelAnimator()V
+PLcom/android/server/display/color/TintController;->endAnimator()V
 HSPLcom/android/server/display/color/TintController;->isActivated()Z
 PLcom/android/server/display/color/TintController;->isActivatedStateNotSet()Z
 HPLcom/android/server/display/color/TintController;->matrixToString([FI)Ljava/lang/String;
@@ -16515,6 +17518,15 @@
 HPLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->tooClose(F)Z
 HPLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->tooSoon(F)Z
 HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->validateArguments(FF[F[F[F)V
+HPLcom/android/server/dreams/-$$Lambda$DreamController$DreamRecord$RZAkATuUi2Nb2UNKTKrQg_Oz3Cw;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;Landroid/os/IBinder;)V
+HPLcom/android/server/dreams/-$$Lambda$DreamController$DreamRecord$RZAkATuUi2Nb2UNKTKrQg_Oz3Cw;->run()V
+PLcom/android/server/dreams/-$$Lambda$DreamController$DreamRecord$a6xKVQPRvHllqmi3b3aluvuTMEM;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;)V
+PLcom/android/server/dreams/-$$Lambda$DreamController$DreamRecord$a6xKVQPRvHllqmi3b3aluvuTMEM;->run()V
+PLcom/android/server/dreams/-$$Lambda$DreamController$DreamRecord$dxWbx4rgpHpZ1Hx0p_kP0KmKxQk;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;)V
+PLcom/android/server/dreams/-$$Lambda$DreamController$DreamRecord$dxWbx4rgpHpZ1Hx0p_kP0KmKxQk;->run()V
+PLcom/android/server/dreams/-$$Lambda$DreamController$MzWLPaVogrekgPcs4ryibDvi1xA;-><init>(Lcom/android/server/dreams/DreamController;)V
+HPLcom/android/server/dreams/-$$Lambda$DreamController$NsbIx0iECm45E_fdqE55LTS32LQ;-><init>(Lcom/android/server/dreams/DreamController;Lcom/android/server/dreams/DreamController$DreamRecord;)V
+HPLcom/android/server/dreams/-$$Lambda$DreamController$NsbIx0iECm45E_fdqE55LTS32LQ;->run()V
 HPLcom/android/server/dreams/-$$Lambda$DreamManagerService$f7cEVKQvPKMm_Ir9dq0e6PSOkX8;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Binder;Landroid/content/ComponentName;ZZILandroid/os/PowerManager$WakeLock;)V
 HPLcom/android/server/dreams/-$$Lambda$DreamManagerService$f7cEVKQvPKMm_Ir9dq0e6PSOkX8;->run()V
 HPLcom/android/server/dreams/-$$Lambda$gXC4nM2f5GMCBX0ED45DCQQjqv0;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;)V
@@ -16527,6 +17539,7 @@
 HPLcom/android/server/dreams/DreamController$3;->run()V
 PLcom/android/server/dreams/DreamController$DreamRecord$1;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;)V
 PLcom/android/server/dreams/DreamController$DreamRecord$1;->run()V
+HPLcom/android/server/dreams/DreamController$DreamRecord$1;->sendResult(Landroid/os/Bundle;)V
 HPLcom/android/server/dreams/DreamController$DreamRecord$2;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;Landroid/os/IBinder;)V
 HPLcom/android/server/dreams/DreamController$DreamRecord$2;->run()V
 PLcom/android/server/dreams/DreamController$DreamRecord$3;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;)V
@@ -16535,16 +17548,22 @@
 HPLcom/android/server/dreams/DreamController$DreamRecord$4;->sendResult(Landroid/os/Bundle;)V
 HPLcom/android/server/dreams/DreamController$DreamRecord;-><init>(Lcom/android/server/dreams/DreamController;Landroid/os/Binder;Landroid/content/ComponentName;ZZILandroid/os/PowerManager$WakeLock;)V
 PLcom/android/server/dreams/DreamController$DreamRecord;->binderDied()V
+PLcom/android/server/dreams/DreamController$DreamRecord;->lambda$binderDied$0$DreamController$DreamRecord()V
+HPLcom/android/server/dreams/DreamController$DreamRecord;->lambda$onServiceConnected$1$DreamController$DreamRecord(Landroid/os/IBinder;)V
+PLcom/android/server/dreams/DreamController$DreamRecord;->lambda$onServiceDisconnected$2$DreamController$DreamRecord()V
 HPLcom/android/server/dreams/DreamController$DreamRecord;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/dreams/DreamController$DreamRecord;->onServiceDisconnected(Landroid/content/ComponentName;)V
 HPLcom/android/server/dreams/DreamController$DreamRecord;->releaseWakeLockIfNeeded()V
 HSPLcom/android/server/dreams/DreamController;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/dreams/DreamController$Listener;)V
 PLcom/android/server/dreams/DreamController;->access$000(Lcom/android/server/dreams/DreamController;)Lcom/android/server/dreams/DreamController$DreamRecord;
+PLcom/android/server/dreams/DreamController;->access$100(Lcom/android/server/dreams/DreamController;)Landroid/os/Handler;
 PLcom/android/server/dreams/DreamController;->access$100(Lcom/android/server/dreams/DreamController;)Lcom/android/server/dreams/DreamController$Listener;
 PLcom/android/server/dreams/DreamController;->access$200(Lcom/android/server/dreams/DreamController;)Landroid/os/Handler;
+HPLcom/android/server/dreams/DreamController;->access$200(Lcom/android/server/dreams/DreamController;Landroid/service/dreams/IDreamService;)V
 PLcom/android/server/dreams/DreamController;->access$300(Lcom/android/server/dreams/DreamController;Landroid/service/dreams/IDreamService;)V
 HPLcom/android/server/dreams/DreamController;->attach(Landroid/service/dreams/IDreamService;)V
 HPLcom/android/server/dreams/DreamController;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/dreams/DreamController;->lambda$stopDream$1$DreamController(Lcom/android/server/dreams/DreamController$DreamRecord;)V
 HPLcom/android/server/dreams/DreamController;->startDream(Landroid/os/Binder;Landroid/content/ComponentName;ZZILandroid/os/PowerManager$WakeLock;)V
 HPLcom/android/server/dreams/DreamController;->stopDream(Z)V
 HSPLcom/android/server/dreams/DreamManagerService$1;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
@@ -16554,7 +17573,7 @@
 HPLcom/android/server/dreams/DreamManagerService$3;-><init>(Lcom/android/server/dreams/DreamManagerService;Z)V
 HPLcom/android/server/dreams/DreamManagerService$3;->run()V
 HSPLcom/android/server/dreams/DreamManagerService$4;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
-PLcom/android/server/dreams/DreamManagerService$4;->onDreamStopped(Landroid/os/Binder;)V
+HPLcom/android/server/dreams/DreamManagerService$4;->onDreamStopped(Landroid/os/Binder;)V
 HSPLcom/android/server/dreams/DreamManagerService$5;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Handler;)V
 PLcom/android/server/dreams/DreamManagerService$5;->onChange(Z)V
 HSPLcom/android/server/dreams/DreamManagerService$6;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
@@ -16567,13 +17586,16 @@
 HPLcom/android/server/dreams/DreamManagerService$BinderService;->finishSelf(Landroid/os/IBinder;Z)V
 HPLcom/android/server/dreams/DreamManagerService$BinderService;->forceAmbientDisplayEnabled(Z)V
 PLcom/android/server/dreams/DreamManagerService$BinderService;->getDefaultDreamComponent()Landroid/content/ComponentName;
+PLcom/android/server/dreams/DreamManagerService$BinderService;->getDefaultDreamComponentForUser(I)Landroid/content/ComponentName;
 HPLcom/android/server/dreams/DreamManagerService$BinderService;->getDreamComponents()[Landroid/content/ComponentName;
+HPLcom/android/server/dreams/DreamManagerService$BinderService;->getDreamComponentsForUser(I)[Landroid/content/ComponentName;
 HPLcom/android/server/dreams/DreamManagerService$BinderService;->isDreaming()Z
 PLcom/android/server/dreams/DreamManagerService$BinderService;->setDreamComponents([Landroid/content/ComponentName;)V
 HPLcom/android/server/dreams/DreamManagerService$BinderService;->startDozing(Landroid/os/IBinder;II)V
 HSPLcom/android/server/dreams/DreamManagerService$DreamHandler;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Looper;)V
 HSPLcom/android/server/dreams/DreamManagerService$LocalService;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
 HSPLcom/android/server/dreams/DreamManagerService$LocalService;-><init>(Lcom/android/server/dreams/DreamManagerService;Lcom/android/server/dreams/DreamManagerService$1;)V
+PLcom/android/server/dreams/DreamManagerService$LocalService;->getActiveDreamComponent(Z)Landroid/content/ComponentName;
 HSPLcom/android/server/dreams/DreamManagerService$LocalService;->isDreaming()Z
 HPLcom/android/server/dreams/DreamManagerService$LocalService;->startDream(Z)V
 HPLcom/android/server/dreams/DreamManagerService$LocalService;->stopDream(Z)V
@@ -16592,6 +17614,7 @@
 PLcom/android/server/dreams/DreamManagerService;->access$2200(Lcom/android/server/dreams/DreamManagerService;Z)V
 PLcom/android/server/dreams/DreamManagerService;->access$2300(Lcom/android/server/dreams/DreamManagerService;Z)V
 HPLcom/android/server/dreams/DreamManagerService;->access$2400(Lcom/android/server/dreams/DreamManagerService;)Landroid/content/ComponentName;
+PLcom/android/server/dreams/DreamManagerService;->access$2400(Lcom/android/server/dreams/DreamManagerService;Z)Landroid/content/ComponentName;
 HPLcom/android/server/dreams/DreamManagerService;->access$2500(Lcom/android/server/dreams/DreamManagerService;)Z
 HPLcom/android/server/dreams/DreamManagerService;->access$2600(Lcom/android/server/dreams/DreamManagerService;)Landroid/content/ComponentName;
 HSPLcom/android/server/dreams/DreamManagerService;->access$300(Lcom/android/server/dreams/DreamManagerService;)Ljava/lang/Object;
@@ -16602,13 +17625,14 @@
 PLcom/android/server/dreams/DreamManagerService;->access$800(Lcom/android/server/dreams/DreamManagerService;)Landroid/content/Context;
 PLcom/android/server/dreams/DreamManagerService;->access$900(Lcom/android/server/dreams/DreamManagerService;Ljava/io/PrintWriter;)V
 HPLcom/android/server/dreams/DreamManagerService;->checkPermission(Ljava/lang/String;)V
-PLcom/android/server/dreams/DreamManagerService;->chooseDreamForUser(ZI)Landroid/content/ComponentName;
+HPLcom/android/server/dreams/DreamManagerService;->chooseDreamForUser(ZI)Landroid/content/ComponentName;
 HPLcom/android/server/dreams/DreamManagerService;->cleanupDreamLocked()V
 PLcom/android/server/dreams/DreamManagerService;->componentsFromString(Ljava/lang/String;)[Landroid/content/ComponentName;
 PLcom/android/server/dreams/DreamManagerService;->componentsToString([Landroid/content/ComponentName;)Ljava/lang/String;
 HPLcom/android/server/dreams/DreamManagerService;->dumpInternal(Ljava/io/PrintWriter;)V
 HPLcom/android/server/dreams/DreamManagerService;->finishSelfInternal(Landroid/os/IBinder;Z)V
 PLcom/android/server/dreams/DreamManagerService;->forceAmbientDisplayEnabledInternal(Z)V
+PLcom/android/server/dreams/DreamManagerService;->getActiveDreamComponentInternal(Z)Landroid/content/ComponentName;
 PLcom/android/server/dreams/DreamManagerService;->getDefaultDreamComponentForUser(I)Landroid/content/ComponentName;
 HSPLcom/android/server/dreams/DreamManagerService;->getDozeComponent()Landroid/content/ComponentName;
 HSPLcom/android/server/dreams/DreamManagerService;->getDozeComponent(I)Landroid/content/ComponentName;
@@ -16677,10 +17701,13 @@
 HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;-><init>(Lcom/android/server/firewall/IntentFirewall$1;)V
 PLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
 PLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->allowFilterResult(Lcom/android/server/firewall/IntentFirewall$FirewallIntentFilter;Ljava/util/List;)Z
+HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->getIntentFilter(Lcom/android/server/firewall/IntentFirewall$FirewallIntentFilter;)Landroid/content/IntentFilter;
+HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
 PLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
 PLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->isPackageForFilter(Ljava/lang/String;Lcom/android/server/firewall/IntentFirewall$FirewallIntentFilter;)Z
 HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
 HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->newArray(I)[Lcom/android/server/firewall/IntentFirewall$FirewallIntentFilter;
+HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->newArray(I)[Ljava/lang/Object;
 HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->queryByComponent(Landroid/content/ComponentName;Ljava/util/List;)V
 HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->sortResults(Ljava/util/List;)V
 HSPLcom/android/server/firewall/IntentFirewall$Rule;-><init>()V
@@ -16817,6 +17844,10 @@
 PLcom/android/server/incident/RequestQueue;->access$000(Lcom/android/server/incident/RequestQueue;)Ljava/util/ArrayList;
 PLcom/android/server/incident/RequestQueue;->enqueue(Landroid/os/IBinder;ZLjava/lang/Runnable;)V
 PLcom/android/server/incident/RequestQueue;->start()V
+HSPLcom/android/server/incremental/IncrementalManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/incremental/IncrementalManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/incremental/IncrementalManagerService;->start(Landroid/content/Context;)Lcom/android/server/incremental/IncrementalManagerService;
+HSPLcom/android/server/incremental/IncrementalManagerService;->systemReady()V
 HPLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$1$TLhe3_2yHs5UB69Y7lf2s7OxJCo;-><init>(Ljava/lang/String;)V
 PLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$1$TLhe3_2yHs5UB69Y7lf2s7OxJCo;->visit(Ljava/lang/Object;)V
 HSPLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$_fKw-VUP0pSfcMMlgRqoT4OPhxw;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;Ljava/lang/String;)V
@@ -16826,7 +17857,7 @@
 HSPLcom/android/server/infra/AbstractMasterSystemService$1;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;)V
 HPLcom/android/server/infra/AbstractMasterSystemService$1;->getActiveServicePackageNameLocked()Ljava/lang/String;
 PLcom/android/server/infra/AbstractMasterSystemService$1;->handleActiveServiceRestartedLocked(Ljava/lang/String;I)V
-PLcom/android/server/infra/AbstractMasterSystemService$1;->handlePackageUpdateLocked(Ljava/lang/String;)V
+HPLcom/android/server/infra/AbstractMasterSystemService$1;->handlePackageUpdateLocked(Ljava/lang/String;)V
 PLcom/android/server/infra/AbstractMasterSystemService$1;->lambda$handlePackageUpdateLocked$0(Ljava/lang/String;Lcom/android/server/infra/AbstractPerUserSystemService;)V
 HPLcom/android/server/infra/AbstractMasterSystemService$1;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
 PLcom/android/server/infra/AbstractMasterSystemService$1;->onPackageDataCleared(Ljava/lang/String;I)V
@@ -16848,7 +17879,7 @@
 HSPLcom/android/server/infra/AbstractMasterSystemService;->getServiceSettingsProperty()Ljava/lang/String;
 HSPLcom/android/server/infra/AbstractMasterSystemService;->getSupportedUsers()Ljava/util/List;
 HSPLcom/android/server/infra/AbstractMasterSystemService;->getUserManagerInternal()Landroid/os/UserManagerInternal;
-PLcom/android/server/infra/AbstractMasterSystemService;->isBindInstantServiceAllowed()Z
+HSPLcom/android/server/infra/AbstractMasterSystemService;->isBindInstantServiceAllowed()Z
 HSPLcom/android/server/infra/AbstractMasterSystemService;->isDisabledLocked(I)Z
 PLcom/android/server/infra/AbstractMasterSystemService;->lambda$new$0$AbstractMasterSystemService(ILjava/lang/String;Z)V
 HSPLcom/android/server/infra/AbstractMasterSystemService;->lambda$new$1$AbstractMasterSystemService(Ljava/lang/String;ILandroid/os/Bundle;Landroid/os/Bundle;)V
@@ -16882,7 +17913,7 @@
 PLcom/android/server/infra/AbstractPerUserSystemService;->getServiceUidLocked()I
 PLcom/android/server/infra/AbstractPerUserSystemService;->getTargedSdkLocked()I
 PLcom/android/server/infra/AbstractPerUserSystemService;->getUserId()I
-PLcom/android/server/infra/AbstractPerUserSystemService;->handlePackageUpdateLocked(Ljava/lang/String;)V
+HPLcom/android/server/infra/AbstractPerUserSystemService;->handlePackageUpdateLocked(Ljava/lang/String;)V
 PLcom/android/server/infra/AbstractPerUserSystemService;->isDebug()Z
 HSPLcom/android/server/infra/AbstractPerUserSystemService;->isDisabledByUserRestrictionsLocked()Z
 HSPLcom/android/server/infra/AbstractPerUserSystemService;->isEnabledLocked()Z
@@ -16922,11 +17953,13 @@
 HPLcom/android/server/input/InputManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/input/InputManagerService$3;-><init>(Lcom/android/server/input/InputManagerService;)V
 PLcom/android/server/input/InputManagerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/input/InputManagerService$4;-><init>(Lcom/android/server/input/InputManagerService;Landroid/view/InputDevice;Ljava/util/Locale;Ljava/util/List;)V
+PLcom/android/server/input/InputManagerService$4;->visitKeyboardLayout(Landroid/content/res/Resources;ILandroid/hardware/input/KeyboardLayout;)V
 HSPLcom/android/server/input/InputManagerService$5;-><init>(Lcom/android/server/input/InputManagerService;Ljava/util/HashSet;)V
 HSPLcom/android/server/input/InputManagerService$5;->visitKeyboardLayout(Landroid/content/res/Resources;ILandroid/hardware/input/KeyboardLayout;)V
 HSPLcom/android/server/input/InputManagerService$9;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/Handler;)V
 HPLcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;-><init>(Lcom/android/server/input/InputManagerService;ILandroid/hardware/input/IInputDevicesChangedListener;)V
-PLcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;->binderDied()V
+HPLcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;->binderDied()V
 HPLcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;->notifyInputDevicesChanged([I)V
 PLcom/android/server/input/InputManagerService$InputFilterHost;-><init>(Lcom/android/server/input/InputManagerService;)V
 PLcom/android/server/input/InputManagerService$InputFilterHost;-><init>(Lcom/android/server/input/InputManagerService;Lcom/android/server/input/InputManagerService$1;)V
@@ -16948,7 +17981,7 @@
 HPLcom/android/server/input/InputManagerService;->access$1000(JLandroid/view/InputEvent;IIIII)I
 HPLcom/android/server/input/InputManagerService;->access$1100(JLandroid/os/IBinder;)V
 PLcom/android/server/input/InputManagerService;->access$1200(JLandroid/view/InputChannel;)V
-PLcom/android/server/input/InputManagerService;->access$1300(Lcom/android/server/input/InputManagerService;I)V
+HPLcom/android/server/input/InputManagerService;->access$1300(Lcom/android/server/input/InputManagerService;I)V
 HSPLcom/android/server/input/InputManagerService;->access$1500(Lcom/android/server/input/InputManagerService;Ljava/util/List;)V
 HPLcom/android/server/input/InputManagerService;->access$1700(JZ)V
 HSPLcom/android/server/input/InputManagerService;->access$1900(Lcom/android/server/input/InputManagerService;)Ljava/io/File;
@@ -16966,6 +17999,7 @@
 HSPLcom/android/server/input/InputManagerService;->flatten(Ljava/util/Map;)Ljava/util/List;
 HSPLcom/android/server/input/InputManagerService;->getContextForDisplay(I)Landroid/content/Context;
 HSPLcom/android/server/input/InputManagerService;->getCurrentKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;)Ljava/lang/String;
+PLcom/android/server/input/InputManagerService;->getDefaultKeyboardLayout(Landroid/view/InputDevice;)Ljava/lang/String;
 HSPLcom/android/server/input/InputManagerService;->getDeviceAlias(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/input/InputManagerService;->getDoubleTapTimeout()I
 HSPLcom/android/server/input/InputManagerService;->getExcludedDeviceNames()[Ljava/lang/String;
@@ -17029,6 +18063,7 @@
 HSPLcom/android/server/input/InputManagerService;->setSystemUiVisibility(I)V
 HSPLcom/android/server/input/InputManagerService;->setWindowManagerCallbacks(Lcom/android/server/input/InputManagerService$WindowManagerCallbacks;)V
 HSPLcom/android/server/input/InputManagerService;->setWiredAccessoryCallbacks(Lcom/android/server/input/InputManagerService$WiredAccessoryCallbacks;)V
+PLcom/android/server/input/InputManagerService;->showMissingKeyboardLayoutNotification(Landroid/view/InputDevice;)V
 HSPLcom/android/server/input/InputManagerService;->start()V
 HSPLcom/android/server/input/InputManagerService;->systemRunning()V
 PLcom/android/server/input/InputManagerService;->transferTouchFocus(Landroid/view/InputChannel;Landroid/view/InputChannel;)Z
@@ -17048,7 +18083,7 @@
 HSPLcom/android/server/input/PersistentDataStore;->loadIfNeeded()V
 HSPLcom/android/server/input/PersistentDataStore;->removeUninstalledKeyboardLayouts(Ljava/util/Set;)Z
 HSPLcom/android/server/input/PersistentDataStore;->saveIfNeeded()V
-PLcom/android/server/inputmethod/-$$Lambda$InputMethodManagerService$MMyKF1SeotTOu5KNBltIfhafmb8;-><init>(Ljava/util/List;I)V
+HPLcom/android/server/inputmethod/-$$Lambda$InputMethodManagerService$MMyKF1SeotTOu5KNBltIfhafmb8;-><init>(Ljava/util/List;I)V
 HSPLcom/android/server/inputmethod/-$$Lambda$InputMethodManagerService$oxpSIwENeEjKtHbxqUXuaXD0Gn8;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
 PLcom/android/server/inputmethod/-$$Lambda$InputMethodManagerService$oxpSIwENeEjKtHbxqUXuaXD0Gn8;->displayCanShowIme(I)Z
 HSPLcom/android/server/inputmethod/AdditionalSubtypeUtils;->getAdditionalSubtypeFile(Ljava/io/File;)Landroid/util/AtomicFile;
@@ -17088,6 +18123,8 @@
 PLcom/android/server/inputmethod/InputMethodManagerService$DebugFlags;-><clinit>()V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$HardKeyboardListener;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$HardKeyboardListener;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$1;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$HardKeyboardListener;->handleHardKeyboardStatusChange(Z)V
+PLcom/android/server/inputmethod/InputMethodManagerService$HardKeyboardListener;->onHardKeyboardStatusChange(Z)V
 PLcom/android/server/inputmethod/InputMethodManagerService$ImeSubtypeListAdapter;-><init>(Landroid/content/Context;ILjava/util/List;I)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$ImeSubtypeListAdapter;->getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;
 HSPLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForAllUsers;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
@@ -17097,9 +18134,14 @@
 HSPLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForSystemUser;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$1;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForSystemUser;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$InlineSuggestionsRequestCallbackDecorator;-><init>(Lcom/android/internal/view/IInlineSuggestionsRequestCallback;Ljava/lang/String;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$InlineSuggestionsRequestCallbackDecorator;-><init>(Lcom/android/internal/view/IInlineSuggestionsRequestCallback;Ljava/lang/String;I)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$InlineSuggestionsRequestCallbackDecorator;->onInlineSuggestionsRequest(Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$InlineSuggestionsRequestCallbackDecorator;->onInlineSuggestionsUnsupported()V
+PLcom/android/server/inputmethod/InputMethodManagerService$InlineSuggestionsRequestCallbackDecorator;->onInlineSuggestionsRequest(Landroid/view/inputmethod/InlineSuggestionsRequest;Lcom/android/internal/view/IInlineSuggestionsResponseCallback;Landroid/view/autofill/AutofillId;Z)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$InlineSuggestionsRequestCallbackDecorator;->onInlineSuggestionsUnsupported()V
+PLcom/android/server/inputmethod/InputMethodManagerService$InlineSuggestionsRequestCallbackDecorator;->onInputMethodFinishInputView(Landroid/view/autofill/AutofillId;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$InlineSuggestionsRequestCallbackDecorator;->onInputMethodStartInputView(Landroid/view/autofill/AutofillId;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->applyImeVisibility(Landroid/os/IBinder;Z)V
 PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->createInputContentUriToken(Landroid/net/Uri;Ljava/lang/String;)Lcom/android/internal/inputmethod/IInputContentUriToken;
 PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->hideMySoftInput(I)V
 PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->notifyUserAction()V
@@ -17115,12 +18157,15 @@
 HSPLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onBootPhase(I)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onStart()V
+PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onSwitchUser(I)V
 PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onUnlockUser(I)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->getEnabledInputMethodListAsUser(I)Ljava/util/List;
 PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->getInputMethodListAsUser(I)Ljava/util/List;
 HPLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->hideCurrentInputMethod()V
+HPLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->hideCurrentInputMethod(I)V
 PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->onCreateInlineSuggestionsRequest(ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->onCreateInlineSuggestionsRequest(ILcom/android/internal/view/InlineSuggestionsRequestInfo;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->setInteractive(Z)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$MethodCallback;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/internal/view/IInputMethod;Landroid/view/InputChannel;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$MethodCallback;->sessionCreated(Lcom/android/internal/view/IInputMethodSession;)V
@@ -17128,7 +18173,7 @@
 HSPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->addKnownImePackageNameLocked(Ljava/lang/String;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->clearKnownImePackageNamesLocked()V
 HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->clearPackageChangeState()V
-PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->isChangingPackagesOfCurrentUserLocked()Z
+HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->isChangingPackagesOfCurrentUserLocked()Z
 HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onBeginPackageChanges()V
 HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onFinishPackageChanges()V
 HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onFinishPackageChangesInternal()V
@@ -17136,7 +18181,7 @@
 HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onPackageAppeared(Ljava/lang/String;I)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onPackageDisappeared(Ljava/lang/String;I)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onPackageModified(Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onPackagesSuspended([Ljava/lang/String;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onPackagesSuspended([Ljava/lang/String;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onPackagesUnsuspended([Ljava/lang/String;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->shouldRebuildInputMethodListLocked()Z
 HPLcom/android/server/inputmethod/InputMethodManagerService$SessionState;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;Lcom/android/internal/view/IInputMethod;Lcom/android/internal/view/IInputMethodSession;Landroid/view/InputChannel;)V
@@ -17145,6 +18190,12 @@
 PLcom/android/server/inputmethod/InputMethodManagerService$SettingsObserver;->onChange(ZLandroid/net/Uri;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$SettingsObserver;->registerContentObserverLocked(I)V
 PLcom/android/server/inputmethod/InputMethodManagerService$SettingsObserver;->toString()Ljava/lang/String;
+HPLcom/android/server/inputmethod/InputMethodManagerService$SoftInputShowHideHistory$Entry;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;Ljava/lang/String;IIZ)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$SoftInputShowHideHistory;-><clinit>()V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$SoftInputShowHideHistory;-><init>()V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$SoftInputShowHideHistory;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$1;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$SoftInputShowHideHistory;->addEntry(Lcom/android/server/inputmethod/InputMethodManagerService$SoftInputShowHideHistory$Entry;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$SoftInputShowHideHistory;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 PLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory$Entry;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory$Entry;->set(Lcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;-><init>()V
@@ -17154,12 +18205,23 @@
 HSPLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;->getEntrySize()I
 PLcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;-><clinit>()V
 HPLcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;-><init>(ILandroid/os/IBinder;ILjava/lang/String;IZIILandroid/os/IBinder;Landroid/view/inputmethod/EditorInfo;II)V
+PLcom/android/server/inputmethod/InputMethodManagerService$UserSwitchHandlerTask;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;ILcom/android/internal/view/IInputMethodClient;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$UserSwitchHandlerTask;->run()V
 HSPLcom/android/server/inputmethod/InputMethodManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$1000(Lcom/android/server/inputmethod/InputMethodManagerService;)Lcom/android/server/inputmethod/InputMethodManagerService$UserSwitchHandlerTask;
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$1002(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$UserSwitchHandlerTask;)Lcom/android/server/inputmethod/InputMethodManagerService$UserSwitchHandlerTask;
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$1100(Lcom/android/server/inputmethod/InputMethodManagerService;)Lcom/android/server/inputmethod/InputMethodManagerService$UserSwitchHandlerTask;
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$1100(Lcom/android/server/inputmethod/InputMethodManagerService;ILcom/android/internal/view/IInputMethodClient;)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$1102(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$UserSwitchHandlerTask;)Lcom/android/server/inputmethod/InputMethodManagerService$UserSwitchHandlerTask;
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$1200(Lcom/android/server/inputmethod/InputMethodManagerService;ILcom/android/internal/view/IInputMethodClient;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$1500(Lcom/android/server/inputmethod/InputMethodManagerService;)[Landroid/view/inputmethod/InputMethodInfo;
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$1600(Lcom/android/server/inputmethod/InputMethodManagerService;)[I
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$1700(Lcom/android/server/inputmethod/InputMethodManagerService;I)Ljava/util/List;
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$1800(Lcom/android/server/inputmethod/InputMethodManagerService;I)Ljava/util/List;
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$1900(Lcom/android/server/inputmethod/InputMethodManagerService;ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$2000(Lcom/android/server/inputmethod/InputMethodManagerService;I)Ljava/util/List;
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$2100(Lcom/android/server/inputmethod/InputMethodManagerService;ILcom/android/internal/view/InlineSuggestionsRequestInfo;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$2200(Lcom/android/server/inputmethod/InputMethodManagerService;ILcom/android/internal/view/InlineSuggestionsRequestInfo;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2500(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;II)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2500(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2600(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;II)V
@@ -17171,25 +18233,40 @@
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2800(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/net/Uri;Ljava/lang/String;)Lcom/android/internal/inputmethod/IInputContentUriToken;
 HPLcom/android/server/inputmethod/InputMethodManagerService;->access$2800(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2800(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$2900(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;II)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2900(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/net/Uri;Ljava/lang/String;)Lcom/android/internal/inputmethod/IInputContentUriToken;
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$2900(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$3000(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;II)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$3000(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/os/IBinder;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->access$3000(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$3100(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3100(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3200(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;I)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$3200(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$3200(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3300(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;I)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3300(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;I)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$3300(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3400(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;I)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->access$3400(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;I)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3500(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)Z
 HPLcom/android/server/inputmethod/InputMethodManagerService;->access$3500(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;I)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$3600(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3600(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3700(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3700(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)Z
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$3700(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;I)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3800(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3800(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)Z
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$3800(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Ljava/lang/String;I)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$3900(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->access$400(Lcom/android/server/inputmethod/InputMethodManagerService;)Landroid/util/ArrayMap;
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$4200(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->access$4300(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/os/IBinder;Z)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->access$4400(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/os/IBinder;Z)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->access$900(Lcom/android/server/inputmethod/InputMethodManagerService;)Landroid/app/AlertDialog;
 HSPLcom/android/server/inputmethod/InputMethodManagerService;->addClient(Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;I)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->applyImeVisibility(Landroid/os/IBinder;Landroid/os/IBinder;Z)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->attachNewInputLocked(IZ)Lcom/android/internal/view/InputBindResult;
 HPLcom/android/server/inputmethod/InputMethodManagerService;->bindCurrentInputMethodServiceLocked(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
 HSPLcom/android/server/inputmethod/InputMethodManagerService;->buildInputMethodListLocked(Z)V
@@ -17221,20 +18298,26 @@
 HPLcom/android/server/inputmethod/InputMethodManagerService;->handleMessage(Landroid/os/Message;)Z
 HPLcom/android/server/inputmethod/InputMethodManagerService;->handleSetInteractive(Z)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->hideCurrentInputLocked(ILandroid/os/ResultReceiver;)Z
+HPLcom/android/server/inputmethod/InputMethodManagerService;->hideCurrentInputLocked(ILandroid/os/ResultReceiver;I)Z
+HPLcom/android/server/inputmethod/InputMethodManagerService;->hideCurrentInputLocked(Landroid/os/IBinder;ILandroid/os/ResultReceiver;I)Z
 HPLcom/android/server/inputmethod/InputMethodManagerService;->hideInputMethodMenu()V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->hideInputMethodMenuLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->hideMySoftInput(Landroid/os/IBinder;I)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->hideMySoftInput(Landroid/os/IBinder;I)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->hideSoftInput(Lcom/android/internal/view/IInputMethodClient;ILandroid/os/ResultReceiver;)Z
+HPLcom/android/server/inputmethod/InputMethodManagerService;->hideSoftInput(Lcom/android/internal/view/IInputMethodClient;Landroid/os/IBinder;ILandroid/os/ResultReceiver;)Z
 HPLcom/android/server/inputmethod/InputMethodManagerService;->isKeyguardLocked()Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->isScreenLocked()Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->lambda$new$0$InputMethodManagerService(I)Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->notifyUserAction(Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->onActionLocaleChanged()V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->onCreateInlineSuggestionsRequest(ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->onCreateInlineSuggestionsRequest(ILcom/android/internal/view/InlineSuggestionsRequestInfo;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->onCreateInlineSuggestionsRequestLocked(ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->onCreateInlineSuggestionsRequestLocked(ILcom/android/internal/view/InlineSuggestionsRequestInfo;Lcom/android/internal/view/IInlineSuggestionsRequestCallback;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->onServiceDisconnected(Landroid/content/ComponentName;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->onSessionCreated(Lcom/android/internal/view/IInputMethod;Lcom/android/internal/view/IInputMethodSession;Landroid/view/InputChannel;)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->onSwitchUser(I)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->onUnlockUser(I)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService;->queryInputMethodServicesInternal(Landroid/content/Context;ILandroid/util/ArrayMap;Landroid/util/ArrayMap;Ljava/util/ArrayList;)V
@@ -17246,6 +18329,7 @@
 PLcom/android/server/inputmethod/InputMethodManagerService;->resetCurrentMethodAndClient(I)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->resetDefaultImeLocked(Landroid/content/Context;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService;->resetSelectedInputMethodAndSubtypeLocked(Ljava/lang/String;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->scheduleSwitchUserTaskLocked(ILcom/android/internal/view/IInputMethodClient;)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->setAdditionalInputMethodSubtypes(Ljava/lang/String;[Landroid/view/inputmethod/InputMethodSubtype;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->setEnabledSessionInMainThread(Lcom/android/server/inputmethod/InputMethodManagerService$SessionState;)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->setImeWindowStatus(Landroid/os/IBinder;II)V
@@ -17258,6 +18342,7 @@
 HPLcom/android/server/inputmethod/InputMethodManagerService;->shouldShowImeSwitcherLocked(I)Z
 HPLcom/android/server/inputmethod/InputMethodManagerService;->showCurrentInputLocked(ILandroid/os/ResultReceiver;)Z
 HPLcom/android/server/inputmethod/InputMethodManagerService;->showCurrentInputLocked(Landroid/os/IBinder;ILandroid/os/ResultReceiver;)Z
+HPLcom/android/server/inputmethod/InputMethodManagerService;->showCurrentInputLocked(Landroid/os/IBinder;ILandroid/os/ResultReceiver;I)Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->showInputMethodMenu(ZI)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->showInputMethodPickerFromClient(Lcom/android/internal/view/IInputMethodClient;I)V
 PLcom/android/server/inputmethod/InputMethodManagerService;->showInputMethodPickerFromSystem(Lcom/android/internal/view/IInputMethodClient;II)V
@@ -17270,6 +18355,7 @@
 PLcom/android/server/inputmethod/InputMethodManagerService;->switchToNextInputMethod(Landroid/os/IBinder;Z)Z
 PLcom/android/server/inputmethod/InputMethodManagerService;->switchToPreviousInputMethod(Landroid/os/IBinder;)Z
 HPLcom/android/server/inputmethod/InputMethodManagerService;->switchUserLocked(I)V
+HPLcom/android/server/inputmethod/InputMethodManagerService;->switchUserOnHandlerLocked(ILcom/android/internal/view/IInputMethodClient;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService;->systemRunning(Lcom/android/server/statusbar/StatusBarManagerService;)V
 HSPLcom/android/server/inputmethod/InputMethodManagerService;->unbindCurrentClientLocked(I)V
 HPLcom/android/server/inputmethod/InputMethodManagerService;->unbindCurrentMethodLocked()V
@@ -17412,21 +18498,23 @@
 HSPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/integrity/engine/RuleEvaluationEngine;Lcom/android/server/integrity/IntegrityFileManager;Landroid/os/Handler;)V
 HSPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/integrity/engine/RuleEvaluationEngine;Lcom/android/server/integrity/IntegrityFileManager;Landroid/os/Handler;Z)V
+HSPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/integrity/engine/RuleEvaluationEngine;Lcom/android/server/integrity/IntegrityFileManager;Landroid/security/FileIntegrityManager;Landroid/os/Handler;)V
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->access$000(Lcom/android/server/integrity/AppIntegrityManagerServiceImpl;)Landroid/os/Handler;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->access$100(Lcom/android/server/integrity/AppIntegrityManagerServiceImpl;Landroid/content/Intent;)V
 HSPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->create(Landroid/content/Context;)Lcom/android/server/integrity/AppIntegrityManagerServiceImpl;
+PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->extractSourceStamp(Landroid/net/Uri;Landroid/content/integrity/AppInstallMetadata$Builder;)V
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getAllowedInstallers(Landroid/content/pm/PackageInfo;)Ljava/util/Map;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getAllowedRuleProviders()Ljava/util/List;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getCertificateFingerprint(Landroid/content/pm/PackageInfo;)Ljava/lang/String;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getCertificateFingerprint(Landroid/content/pm/PackageInfo;)Ljava/util/List;
-PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getFingerprint(Landroid/content/pm/Signature;)Ljava/lang/String;
+HPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getFingerprint(Landroid/content/pm/Signature;)Ljava/lang/String;
 HPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getInstallationPath(Landroid/net/Uri;)Ljava/io/File;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getInstallerCertificateFingerprint(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getInstallerCertificateFingerprint(Ljava/lang/String;)Ljava/util/List;
 HPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getInstallerPackageName(Landroid/content/Intent;)Ljava/lang/String;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getLoggingResponse(Lcom/android/server/integrity/model/IntegrityCheckResult;)I
 HPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getMultiApkInfo(Ljava/io/File;)Landroid/content/pm/PackageInfo;
-PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getPackageArchiveInfo(Landroid/net/Uri;)Landroid/content/pm/PackageInfo;
+HPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getPackageArchiveInfo(Landroid/net/Uri;)Landroid/content/pm/PackageInfo;
 HPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getPackageNameNormalized(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getSignature(Landroid/content/pm/PackageInfo;)Landroid/content/pm/Signature;
 PLcom/android/server/integrity/AppIntegrityManagerServiceImpl;->getSignatures(Landroid/content/pm/PackageInfo;)[Landroid/content/pm/Signature;
@@ -17564,6 +18652,8 @@
 PLcom/android/server/location/-$$Lambda$GeofenceProxy$hIfaTtsg4NqVfDRkaCxUg6rx90I;->run(Landroid/os/IBinder;)V
 HSPLcom/android/server/location/-$$Lambda$GeofenceProxy$nfSKchjbT2ANT9GbYwyAcTjzBwQ;-><init>(Lcom/android/server/location/GeofenceProxy;)V
 PLcom/android/server/location/-$$Lambda$GeofenceProxy$nfSKchjbT2ANT9GbYwyAcTjzBwQ;->run(Landroid/os/IBinder;)V
+HSPLcom/android/server/location/-$$Lambda$GnssAntennaInfoProvider$Jn1m9a6Z7xCk1n2jG7DS8Dlh95g;-><clinit>()V
+HSPLcom/android/server/location/-$$Lambda$GnssAntennaInfoProvider$Jn1m9a6Z7xCk1n2jG7DS8Dlh95g;-><init>()V
 HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$384RrX20Mx6OJsRiqsQcSxYdcZc;-><clinit>()V
 HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$384RrX20Mx6OJsRiqsQcSxYdcZc;-><init>()V
 HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$384RrX20Mx6OJsRiqsQcSxYdcZc;->set(I)Z
@@ -17589,8 +18679,8 @@
 PLcom/android/server/location/-$$Lambda$GnssLocationProvider$3-p6UujuU3pwMrR_jYW3uvQiXNM;->run()V
 HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$Q6M8z_ZBiD7BNs3kvNmVrqoHSng;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
 PLcom/android/server/location/-$$Lambda$GnssLocationProvider$Q6M8z_ZBiD7BNs3kvNmVrqoHSng;->onNetworkAvailable()V
-PLcom/android/server/location/-$$Lambda$GnssLocationProvider$W6-sB0jGWhsljLO69TqY_EhXWvI;-><init>(Lcom/android/server/location/GnssLocationProvider;I)V
-PLcom/android/server/location/-$$Lambda$GnssLocationProvider$W6-sB0jGWhsljLO69TqY_EhXWvI;->run()V
+HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$W6-sB0jGWhsljLO69TqY_EhXWvI;-><init>(Lcom/android/server/location/GnssLocationProvider;I)V
+HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$W6-sB0jGWhsljLO69TqY_EhXWvI;->run()V
 HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$_xEBoJSNGaiPvO5kj-sfJB7tZYk;-><init>(Lcom/android/server/location/GnssLocationProvider;[I[I)V
 HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$_xEBoJSNGaiPvO5kj-sfJB7tZYk;->run()V
 HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$adAUsgD5mK9uoxw0KEjaMYtp_Ro;-><init>(Lcom/android/server/location/GnssLocationProvider;II)V
@@ -17607,7 +18697,7 @@
 HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$nZP4qF7PEET3HrkcVZAYhG3Bm0c;->run()V
 HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$rgfO__O6aj3JBohawF88T-AfsaY;-><init>(Lcom/android/server/location/GnssLocationProvider;II)V
 HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$rgfO__O6aj3JBohawF88T-AfsaY;->run()V
-PLcom/android/server/location/-$$Lambda$GnssLocationProvider$sq1oTWVIMZbc8j3SbFR_out8P2Q;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$sq1oTWVIMZbc8j3SbFR_out8P2Q;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
 PLcom/android/server/location/-$$Lambda$GnssLocationProvider$sq1oTWVIMZbc8j3SbFR_out8P2Q;->getGnssMetricsAsProtoString()Ljava/lang/String;
 HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$zDU-4stA5kbnbj2CmSK2PauyroM;-><init>(Lcom/android/server/location/GnssLocationProvider$LocationChangeListener;Ljava/lang/String;Landroid/location/LocationManager;)V
 HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$zDU-4stA5kbnbj2CmSK2PauyroM;->run()V
@@ -17680,6 +18770,12 @@
 HSPLcom/android/server/location/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;-><clinit>()V
 HSPLcom/android/server/location/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;-><init>()V
 HSPLcom/android/server/location/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;->execute(Ljava/lang/Runnable;)V
+PLcom/android/server/location/-$$Lambda$emxC4DBjBtjrPCOadFmmcL-kgiw;-><clinit>()V
+PLcom/android/server/location/-$$Lambda$emxC4DBjBtjrPCOadFmmcL-kgiw;-><init>()V
+PLcom/android/server/location/-$$Lambda$emxC4DBjBtjrPCOadFmmcL-kgiw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/location/-$$Lambda$hUPZkLaip7KhcHlSjfSfX2fzk_I;-><clinit>()V
+HSPLcom/android/server/location/-$$Lambda$hUPZkLaip7KhcHlSjfSfX2fzk_I;-><init>()V
+HSPLcom/android/server/location/-$$Lambda$hUPZkLaip7KhcHlSjfSfX2fzk_I;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/location/AbstractLocationProvider$InternalState;-><init>(Lcom/android/server/location/AbstractLocationProvider$Listener;Lcom/android/server/location/AbstractLocationProvider$State;)V
 HSPLcom/android/server/location/AbstractLocationProvider$InternalState;-><init>(Lcom/android/server/location/AbstractLocationProvider$Listener;Lcom/android/server/location/AbstractLocationProvider$State;Lcom/android/server/location/AbstractLocationProvider$1;)V
 HSPLcom/android/server/location/AbstractLocationProvider$InternalState;->access$400(Lcom/android/server/location/AbstractLocationProvider$InternalState;Ljava/util/function/UnaryOperator;)Lcom/android/server/location/AbstractLocationProvider$InternalState;
@@ -17835,15 +18931,25 @@
 HPLcom/android/server/location/ContextHubClientManager;->toString()Ljava/lang/String;
 HPLcom/android/server/location/ContextHubClientManager;->unregisterClient(S)V
 HSPLcom/android/server/location/ContextHubService$1;-><init>(Lcom/android/server/location/ContextHubService;I)V
+HSPLcom/android/server/location/ContextHubService$1;-><init>(Lcom/android/server/location/ContextHubService;Landroid/os/Handler;)V
+HPLcom/android/server/location/ContextHubService$1;->onChange(Z)V
 HPLcom/android/server/location/ContextHubService$1;->onMessageFromNanoApp(Landroid/hardware/location/NanoAppMessage;)V
 PLcom/android/server/location/ContextHubService$1;->onNanoAppLoaded(J)V
 PLcom/android/server/location/ContextHubService$1;->onNanoAppUnloaded(J)V
+HSPLcom/android/server/location/ContextHubService$2;-><init>(Lcom/android/server/location/ContextHubService;I)V
 PLcom/android/server/location/ContextHubService$2;-><init>(Lcom/android/server/location/ContextHubService;ILandroid/hardware/location/NanoAppBinary;)V
+HPLcom/android/server/location/ContextHubService$2;->onMessageFromNanoApp(Landroid/hardware/location/NanoAppMessage;)V
+PLcom/android/server/location/ContextHubService$2;->onNanoAppLoaded(J)V
+PLcom/android/server/location/ContextHubService$2;->onNanoAppUnloaded(J)V
 PLcom/android/server/location/ContextHubService$2;->onTransactionComplete(I)V
 PLcom/android/server/location/ContextHubService$3;-><init>(Lcom/android/server/location/ContextHubService;I)V
+PLcom/android/server/location/ContextHubService$3;-><init>(Lcom/android/server/location/ContextHubService;ILandroid/hardware/location/NanoAppBinary;)V
 PLcom/android/server/location/ContextHubService$3;->onTransactionComplete(I)V
 HSPLcom/android/server/location/ContextHubService$4;-><init>(Lcom/android/server/location/ContextHubService;I)V
 HSPLcom/android/server/location/ContextHubService$4;->onQueryResponse(ILjava/util/List;)V
+PLcom/android/server/location/ContextHubService$4;->onTransactionComplete(I)V
+HSPLcom/android/server/location/ContextHubService$5;-><init>(Lcom/android/server/location/ContextHubService;I)V
+HSPLcom/android/server/location/ContextHubService$5;->onQueryResponse(ILjava/util/List;)V
 HSPLcom/android/server/location/ContextHubService$ContextHubServiceCallback;-><init>(Lcom/android/server/location/ContextHubService;I)V
 HSPLcom/android/server/location/ContextHubService$ContextHubServiceCallback;->handleAppsInfo(Ljava/util/ArrayList;)V
 HPLcom/android/server/location/ContextHubService$ContextHubServiceCallback;->handleClientMsg(Landroid/hardware/contexthub/V1_0/ContextHubMsg;)V
@@ -17853,9 +18959,14 @@
 PLcom/android/server/location/ContextHubService;->access$100(Lcom/android/server/location/ContextHubService;III)V
 HSPLcom/android/server/location/ContextHubService;->access$400(Lcom/android/server/location/ContextHubService;ILjava/util/List;)V
 PLcom/android/server/location/ContextHubService;->access$500(Lcom/android/server/location/ContextHubService;)Lcom/android/server/location/NanoAppStateManager;
+HPLcom/android/server/location/ContextHubService;->access$500(Lcom/android/server/location/ContextHubService;)V
+PLcom/android/server/location/ContextHubService;->access$600(Lcom/android/server/location/ContextHubService;)Lcom/android/server/location/NanoAppStateManager;
 HSPLcom/android/server/location/ContextHubService;->access$600(Lcom/android/server/location/ContextHubService;III[B)I
+HSPLcom/android/server/location/ContextHubService;->access$700(Lcom/android/server/location/ContextHubService;III[B)I
 PLcom/android/server/location/ContextHubService;->access$700(Lcom/android/server/location/ContextHubService;IILandroid/hardware/location/NanoAppBinary;)V
 PLcom/android/server/location/ContextHubService;->access$800(Lcom/android/server/location/ContextHubService;II)V
+PLcom/android/server/location/ContextHubService;->access$800(Lcom/android/server/location/ContextHubService;IILandroid/hardware/location/NanoAppBinary;)V
+PLcom/android/server/location/ContextHubService;->access$900(Lcom/android/server/location/ContextHubService;II)V
 HPLcom/android/server/location/ContextHubService;->checkHalProxyAndContextHubId(ILandroid/hardware/location/IContextHubTransactionCallback;I)Z
 HPLcom/android/server/location/ContextHubService;->checkPermissions()V
 HPLcom/android/server/location/ContextHubService;->createClient(ILandroid/hardware/location/IContextHubClientCallback;)Landroid/hardware/location/IContextHubClient;
@@ -17870,6 +18981,7 @@
 PLcom/android/server/location/ContextHubService;->getContextHubHandles()[I
 PLcom/android/server/location/ContextHubService;->getContextHubInfo(I)Landroid/hardware/location/ContextHubInfo;
 HSPLcom/android/server/location/ContextHubService;->getContextHubProxy()Landroid/hardware/contexthub/V1_0/IContexthub;
+HSPLcom/android/server/location/ContextHubService;->getContextHubWrapper()Lcom/android/server/location/IContextHubWrapper;
 PLcom/android/server/location/ContextHubService;->getContextHubs()Ljava/util/List;
 HPLcom/android/server/location/ContextHubService;->getNanoAppInstanceInfo(I)Landroid/hardware/location/NanoAppInstanceInfo;
 HPLcom/android/server/location/ContextHubService;->handleClientMessageCallback(ILandroid/hardware/contexthub/V1_0/ContextHubMsg;)V
@@ -17887,6 +18999,7 @@
 HPLcom/android/server/location/ContextHubService;->queryNanoApps(ILandroid/hardware/location/IContextHubTransactionCallback;)V
 HSPLcom/android/server/location/ContextHubService;->queryNanoAppsInternal(I)I
 HPLcom/android/server/location/ContextHubService;->registerCallback(Landroid/hardware/location/IContextHubCallback;)I
+HSPLcom/android/server/location/ContextHubService;->sendLocationSettingUpdate()V
 HPLcom/android/server/location/ContextHubService;->sendMessage(IILandroid/hardware/location/ContextHubMessage;)I
 PLcom/android/server/location/ContextHubService;->unloadNanoApp(I)I
 PLcom/android/server/location/ContextHubService;->unloadNanoAppFromHub(ILandroid/hardware/location/IContextHubTransactionCallback;J)V
@@ -17957,10 +19070,12 @@
 PLcom/android/server/location/GeofenceManager;->onProviderEnabled(Ljava/lang/String;)V
 PLcom/android/server/location/GeofenceManager;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/location/GeofenceManager;->removeExpiredFencesLocked()V
+PLcom/android/server/location/GeofenceManager;->removeFence(Landroid/location/Geofence;Landroid/app/PendingIntent;)V
 PLcom/android/server/location/GeofenceManager;->scheduleUpdateFencesLocked()V
 PLcom/android/server/location/GeofenceManager;->sendIntent(Landroid/app/PendingIntent;Landroid/content/Intent;)V
 PLcom/android/server/location/GeofenceManager;->sendIntentEnter(Landroid/app/PendingIntent;)V
-PLcom/android/server/location/GeofenceManager;->updateFences()V
+PLcom/android/server/location/GeofenceManager;->sendIntentExit(Landroid/app/PendingIntent;)V
+HPLcom/android/server/location/GeofenceManager;->updateFences()V
 HSPLcom/android/server/location/GeofenceProxy$1;-><init>(Lcom/android/server/location/GeofenceProxy;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;IIILandroid/os/Handler;)V
 PLcom/android/server/location/GeofenceProxy$1;->onBind()V
 HSPLcom/android/server/location/GeofenceProxy$GeofenceProxyServiceConnection;-><init>(Lcom/android/server/location/GeofenceProxy;)V
@@ -17988,18 +19103,18 @@
 PLcom/android/server/location/GeofenceState;-><init>(Landroid/location/Geofence;JIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;)V
 PLcom/android/server/location/GeofenceState;->getDistanceToBoundary()D
 PLcom/android/server/location/GeofenceState;->processLocation(Landroid/location/Location;)I
-PLcom/android/server/location/GnssAntennaInfoProvider$GnssAntennaInfoProviderNative;-><init>()V
-PLcom/android/server/location/GnssAntennaInfoProvider$GnssAntennaInfoProviderNative;->isAntennaInfoSupported()Z
-PLcom/android/server/location/GnssAntennaInfoProvider$StatusChangedOperation;-><init>(I)V
-PLcom/android/server/location/GnssAntennaInfoProvider;-><clinit>()V
-PLcom/android/server/location/GnssAntennaInfoProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/location/GnssAntennaInfoProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/location/GnssAntennaInfoProvider$GnssAntennaInfoProviderNative;)V
-PLcom/android/server/location/GnssAntennaInfoProvider;->access$000()Z
-PLcom/android/server/location/GnssAntennaInfoProvider;->getHandlerOperation(I)Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;
-PLcom/android/server/location/GnssAntennaInfoProvider;->isAvailableInPlatform()Z
-PLcom/android/server/location/GnssAntennaInfoProvider;->onCapabilitiesUpdated(Z)V
-PLcom/android/server/location/GnssAntennaInfoProvider;->onGpsEnabledChanged()V
-PLcom/android/server/location/GnssAntennaInfoProvider;->resumeIfStarted()V
+HSPLcom/android/server/location/GnssAntennaInfoProvider$GnssAntennaInfoProviderNative;-><init>()V
+HSPLcom/android/server/location/GnssAntennaInfoProvider$GnssAntennaInfoProviderNative;->isAntennaInfoSupported()Z
+HSPLcom/android/server/location/GnssAntennaInfoProvider$StatusChangedOperation;-><init>(I)V
+HSPLcom/android/server/location/GnssAntennaInfoProvider;-><clinit>()V
+HSPLcom/android/server/location/GnssAntennaInfoProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssAntennaInfoProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/location/GnssAntennaInfoProvider$GnssAntennaInfoProviderNative;)V
+HSPLcom/android/server/location/GnssAntennaInfoProvider;->access$000()Z
+HSPLcom/android/server/location/GnssAntennaInfoProvider;->getHandlerOperation(I)Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;
+HSPLcom/android/server/location/GnssAntennaInfoProvider;->isAvailableInPlatform()Z
+HSPLcom/android/server/location/GnssAntennaInfoProvider;->onCapabilitiesUpdated(Z)V
+HSPLcom/android/server/location/GnssAntennaInfoProvider;->onGpsEnabledChanged()V
+HSPLcom/android/server/location/GnssAntennaInfoProvider;->resumeIfStarted()V
 HSPLcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;-><init>()V
 PLcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;->cleanupBatching()V
 HSPLcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;->initBatching()Z
@@ -18042,6 +19157,7 @@
 HSPLcom/android/server/location/GnssConfiguration;->getC2KHost()Ljava/lang/String;
 HSPLcom/android/server/location/GnssConfiguration;->getC2KPort(I)I
 HSPLcom/android/server/location/GnssConfiguration;->getEsExtensionSec()I
+PLcom/android/server/location/GnssConfiguration;->getHalInterfaceVersion()Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;
 HSPLcom/android/server/location/GnssConfiguration;->getIntConfig(Ljava/lang/String;I)I
 PLcom/android/server/location/GnssConfiguration;->getLppProfile()Ljava/lang/String;
 HSPLcom/android/server/location/GnssConfiguration;->getProxyApps()Ljava/util/List;
@@ -18084,18 +19200,18 @@
 HSPLcom/android/server/location/GnssLocationProvider$4;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/content/Context;Landroid/os/Handler;)V
 HSPLcom/android/server/location/GnssLocationProvider$4;->isGpsEnabled()Z
 HSPLcom/android/server/location/GnssLocationProvider$5;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider$5;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/location/GnssLocationProvider$5;->isGpsEnabled()Z
+HSPLcom/android/server/location/GnssLocationProvider$5;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssLocationProvider$5;->isGpsEnabled()Z
 PLcom/android/server/location/GnssLocationProvider$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/location/GnssLocationProvider$6;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/GnssLocationProvider$6;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
 HSPLcom/android/server/location/GnssLocationProvider$6;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/os/Handler;)V
 HSPLcom/android/server/location/GnssLocationProvider$6;->onChange(Z)V
 PLcom/android/server/location/GnssLocationProvider$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/location/GnssLocationProvider$7;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider$7;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/os/Handler;)V
-HPLcom/android/server/location/GnssLocationProvider$7;->onChange(Z)V
+HSPLcom/android/server/location/GnssLocationProvider$7;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssLocationProvider$7;->onChange(Z)V
 HSPLcom/android/server/location/GnssLocationProvider$8;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider$9;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/GnssLocationProvider$9;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
 HSPLcom/android/server/location/GnssLocationProvider$FusedLocationListener;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
 HSPLcom/android/server/location/GnssLocationProvider$FusedLocationListener;-><init>(Lcom/android/server/location/GnssLocationProvider;Lcom/android/server/location/GnssLocationProvider$1;)V
 HSPLcom/android/server/location/GnssLocationProvider$GpsRequest;-><init>(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
@@ -18104,7 +19220,7 @@
 PLcom/android/server/location/GnssLocationProvider$LocationChangeListener;->access$1206(Lcom/android/server/location/GnssLocationProvider$LocationChangeListener;)I
 PLcom/android/server/location/GnssLocationProvider$LocationChangeListener;->access$1208(Lcom/android/server/location/GnssLocationProvider$LocationChangeListener;)I
 PLcom/android/server/location/GnssLocationProvider$LocationChangeListener;->onProviderDisabled(Ljava/lang/String;)V
-PLcom/android/server/location/GnssLocationProvider$LocationChangeListener;->onProviderEnabled(Ljava/lang/String;)V
+HSPLcom/android/server/location/GnssLocationProvider$LocationChangeListener;->onProviderEnabled(Ljava/lang/String;)V
 HSPLcom/android/server/location/GnssLocationProvider$LocationExtras;-><init>()V
 HPLcom/android/server/location/GnssLocationProvider$LocationExtras;->getBundle()Landroid/os/Bundle;
 HPLcom/android/server/location/GnssLocationProvider$LocationExtras;->reset()V
@@ -18170,7 +19286,7 @@
 PLcom/android/server/location/GnssLocationProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/location/GnssLocationProvider;->ensureInitialized()V
 HPLcom/android/server/location/GnssLocationProvider;->getGeofenceStatus(I)I
-PLcom/android/server/location/GnssLocationProvider;->getGnssAntennaInfoProvider()Lcom/android/server/location/GnssAntennaInfoProvider;
+HSPLcom/android/server/location/GnssLocationProvider;->getGnssAntennaInfoProvider()Lcom/android/server/location/GnssAntennaInfoProvider;
 HSPLcom/android/server/location/GnssLocationProvider;->getGnssBatchingProvider()Lcom/android/server/location/GnssBatchingProvider;
 HSPLcom/android/server/location/GnssLocationProvider;->getGnssCapabilitiesProvider()Lcom/android/server/location/GnssCapabilitiesProvider;
 HSPLcom/android/server/location/GnssLocationProvider;->getGnssMeasurementCorrectionsProvider()Lcom/android/server/location/GnssMeasurementCorrectionsProvider;
@@ -18206,7 +19322,7 @@
 HPLcom/android/server/location/GnssLocationProvider;->lambda$reportGeofenceTransition$10$GnssLocationProvider(ILandroid/location/Location;IJ)V
 HPLcom/android/server/location/GnssLocationProvider;->lambda$reportMeasurementData$4$GnssLocationProvider(Landroid/location/GnssMeasurementsEvent;)V
 HSPLcom/android/server/location/GnssLocationProvider;->lambda$setTopHalCapabilities$6$GnssLocationProvider(I)V
-HPLcom/android/server/location/GnssLocationProvider;->lambda$setTopHalCapabilities$7$GnssLocationProvider(I)V
+HSPLcom/android/server/location/GnssLocationProvider;->lambda$setTopHalCapabilities$7$GnssLocationProvider(I)V
 PLcom/android/server/location/GnssLocationProvider;->onExtraCommand(IILjava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/location/GnssLocationProvider;->onNetworkAvailable()V
 HSPLcom/android/server/location/GnssLocationProvider;->onSetRequest(Lcom/android/internal/location/ProviderRequest;)V
@@ -18288,7 +19404,7 @@
 HPLcom/android/server/location/GnssNetworkConnectivityHandler$1;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
 HPLcom/android/server/location/GnssNetworkConnectivityHandler$1;->onLost(Landroid/net/Network;)V
 HSPLcom/android/server/location/GnssNetworkConnectivityHandler$2;-><init>(Lcom/android/server/location/GnssNetworkConnectivityHandler;)V
-PLcom/android/server/location/GnssNetworkConnectivityHandler$2;->onAvailable(Landroid/net/Network;)V
+HPLcom/android/server/location/GnssNetworkConnectivityHandler$2;->onAvailable(Landroid/net/Network;)V
 PLcom/android/server/location/GnssNetworkConnectivityHandler$2;->onLost(Landroid/net/Network;)V
 PLcom/android/server/location/GnssNetworkConnectivityHandler$2;->onUnavailable()V
 PLcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;-><init>()V
@@ -18320,17 +19436,17 @@
 PLcom/android/server/location/GnssNetworkConnectivityHandler;->getNetworkCapability(I)I
 HPLcom/android/server/location/GnssNetworkConnectivityHandler;->handleReleaseSuplConnection(I)V
 HPLcom/android/server/location/GnssNetworkConnectivityHandler;->handleRequestSuplConnection(I[B)V
-PLcom/android/server/location/GnssNetworkConnectivityHandler;->handleSuplConnectionAvailable(Landroid/net/Network;)V
+HPLcom/android/server/location/GnssNetworkConnectivityHandler;->handleSuplConnectionAvailable(Landroid/net/Network;)V
 HPLcom/android/server/location/GnssNetworkConnectivityHandler;->handleUpdateNetworkState(Landroid/net/Network;ZLandroid/net/NetworkCapabilities;)V
 PLcom/android/server/location/GnssNetworkConnectivityHandler;->lambda$onReportAGpsStatus$0$GnssNetworkConnectivityHandler(I[B)V
 PLcom/android/server/location/GnssNetworkConnectivityHandler;->lambda$onReportAGpsStatus$1$GnssNetworkConnectivityHandler()V
 HPLcom/android/server/location/GnssNetworkConnectivityHandler;->lambda$runEventAndReleaseWakeLock$2$GnssNetworkConnectivityHandler(Ljava/lang/Runnable;)V
-PLcom/android/server/location/GnssNetworkConnectivityHandler;->onReportAGpsStatus(II[B)V
+HPLcom/android/server/location/GnssNetworkConnectivityHandler;->onReportAGpsStatus(II[B)V
 HSPLcom/android/server/location/GnssNetworkConnectivityHandler;->registerNetworkCallbacks()V
 PLcom/android/server/location/GnssNetworkConnectivityHandler;->runEventAndReleaseWakeLock(Ljava/lang/Runnable;)Ljava/lang/Runnable;
 HPLcom/android/server/location/GnssNetworkConnectivityHandler;->runOnHandler(Ljava/lang/Runnable;)V
 HPLcom/android/server/location/GnssNetworkConnectivityHandler;->setRouting()V
-PLcom/android/server/location/GnssNetworkConnectivityHandler;->translateToApnIpType(Ljava/lang/String;Ljava/lang/String;)I
+HPLcom/android/server/location/GnssNetworkConnectivityHandler;->translateToApnIpType(Ljava/lang/String;Ljava/lang/String;)I
 HPLcom/android/server/location/GnssNetworkConnectivityHandler;->updateTrackedNetworksState(ZLandroid/net/Network;Landroid/net/NetworkCapabilities;)Lcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;
 HPLcom/android/server/location/GnssPositionMode;-><init>(IIIIIZ)V
 HPLcom/android/server/location/GnssPositionMode;->equals(Ljava/lang/Object;)Z
@@ -18398,7 +19514,7 @@
 HSPLcom/android/server/location/GnssVisibilityControl;->isProxyAppListUpdated(Ljava/util/List;)Z
 HSPLcom/android/server/location/GnssVisibilityControl;->lambda$FLGfeDaxF8J3CE9m-TcOXh5j6ow(Lcom/android/server/location/GnssVisibilityControl;)V
 HPLcom/android/server/location/GnssVisibilityControl;->lambda$new$0$GnssVisibilityControl(I)V
-PLcom/android/server/location/GnssVisibilityControl;->lambda$new$1$GnssVisibilityControl(I)V
+HPLcom/android/server/location/GnssVisibilityControl;->lambda$new$1$GnssVisibilityControl(I)V
 HSPLcom/android/server/location/GnssVisibilityControl;->lambda$onConfigurationUpdated$4$GnssVisibilityControl(Ljava/util/List;)V
 HSPLcom/android/server/location/GnssVisibilityControl;->lambda$onGpsEnabledChanged$2$GnssVisibilityControl(Z)V
 PLcom/android/server/location/GnssVisibilityControl;->lambda$reportNfwNotification$3$GnssVisibilityControl(Ljava/lang/String;BLjava/lang/String;BLjava/lang/String;BZZ)V
@@ -18419,6 +19535,16 @@
 PLcom/android/server/location/HardwareActivityRecognitionProxy;->lambda$Z7jbekKm-LTVAz47zPN0h1VYfjo(Lcom/android/server/location/HardwareActivityRecognitionProxy;Landroid/os/IBinder;)V
 PLcom/android/server/location/HardwareActivityRecognitionProxy;->onBind(Landroid/os/IBinder;)V
 HSPLcom/android/server/location/HardwareActivityRecognitionProxy;->register()Z
+HSPLcom/android/server/location/IContextHubWrapper$ContextHubWrapperV1_0;-><init>(Landroid/hardware/contexthub/V1_0/IContexthub;)V
+HSPLcom/android/server/location/IContextHubWrapper$ContextHubWrapperV1_0;->getHub()Landroid/hardware/contexthub/V1_0/IContexthub;
+HSPLcom/android/server/location/IContextHubWrapper$ContextHubWrapperV1_0;->supportsSettingNotifications()Z
+HSPLcom/android/server/location/IContextHubWrapper$ContextHubWrapperV1_1;-><init>(Landroid/hardware/contexthub/V1_1/IContexthub;)V
+HSPLcom/android/server/location/IContextHubWrapper$ContextHubWrapperV1_1;->getHub()Landroid/hardware/contexthub/V1_0/IContexthub;
+HSPLcom/android/server/location/IContextHubWrapper$ContextHubWrapperV1_1;->onSettingChanged(BB)V
+HSPLcom/android/server/location/IContextHubWrapper$ContextHubWrapperV1_1;->supportsSettingNotifications()Z
+HSPLcom/android/server/location/IContextHubWrapper;-><init>()V
+HSPLcom/android/server/location/IContextHubWrapper;->maybeConnectTo1_0()Lcom/android/server/location/IContextHubWrapper;
+HSPLcom/android/server/location/IContextHubWrapper;->maybeConnectTo1_1()Lcom/android/server/location/IContextHubWrapper;
 PLcom/android/server/location/LocationBasedCountryDetector$1;-><init>(Lcom/android/server/location/LocationBasedCountryDetector;)V
 PLcom/android/server/location/LocationBasedCountryDetector$1;->onLocationChanged(Landroid/location/Location;)V
 PLcom/android/server/location/LocationBasedCountryDetector$1;->onProviderEnabled(Ljava/lang/String;)V
@@ -18453,6 +19579,7 @@
 HPLcom/android/server/location/LocationFudger;->metersToDegreesLongitude(DD)D
 HSPLcom/android/server/location/LocationFudger;->nextOffsetLocked()D
 HSPLcom/android/server/location/LocationFudger;->nextRandomOffset()D
+HSPLcom/android/server/location/LocationFudger;->resetOffsets()V
 HSPLcom/android/server/location/LocationFudger;->setAccuracyInMetersLocked(F)V
 HPLcom/android/server/location/LocationFudger;->updateOffsets()V
 HPLcom/android/server/location/LocationFudger;->updateRandomOffsetLocked()V
@@ -18499,6 +19626,7 @@
 HSPLcom/android/server/location/LocationProviderProxy;->register()Z
 PLcom/android/server/location/LocationProviderProxy;->resetProviderPackages(Ljava/util/List;)V
 HSPLcom/android/server/location/LocationRequestStatistics$PackageProviderKey;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/location/LocationRequestStatistics$PackageProviderKey;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/location/LocationRequestStatistics$PackageProviderKey;->compareTo(Lcom/android/server/location/LocationRequestStatistics$PackageProviderKey;)I
 PLcom/android/server/location/LocationRequestStatistics$PackageProviderKey;->compareTo(Ljava/lang/Object;)I
 HPLcom/android/server/location/LocationRequestStatistics$PackageProviderKey;->equals(Ljava/lang/Object;)Z
@@ -18518,15 +19646,21 @@
 HPLcom/android/server/location/LocationRequestStatistics$PackageStatistics;->toString()Ljava/lang/String;
 HSPLcom/android/server/location/LocationRequestStatistics$PackageStatistics;->updateForeground(Z)V
 HSPLcom/android/server/location/LocationRequestStatistics$RequestSummary;-><init>(Ljava/lang/String;Ljava/lang/String;J)V
+HSPLcom/android/server/location/LocationRequestStatistics$RequestSummary;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
 HPLcom/android/server/location/LocationRequestStatistics$RequestSummary;->dump(Lcom/android/internal/util/IndentingPrintWriter;J)V
 HSPLcom/android/server/location/LocationRequestStatistics$RequestSummaryLimitedHistory;-><init>()V
 HSPLcom/android/server/location/LocationRequestStatistics$RequestSummaryLimitedHistory;->addRequest(Ljava/lang/String;Ljava/lang/String;J)V
+HSPLcom/android/server/location/LocationRequestStatistics$RequestSummaryLimitedHistory;->addRequest(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
 HSPLcom/android/server/location/LocationRequestStatistics$RequestSummaryLimitedHistory;->addRequestSummary(Lcom/android/server/location/LocationRequestStatistics$RequestSummary;)V
 HPLcom/android/server/location/LocationRequestStatistics$RequestSummaryLimitedHistory;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 HPLcom/android/server/location/LocationRequestStatistics$RequestSummaryLimitedHistory;->removeRequest(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/location/LocationRequestStatistics$RequestSummaryLimitedHistory;->removeRequest(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/location/LocationRequestStatistics;-><init>()V
 HSPLcom/android/server/location/LocationRequestStatistics;->startRequesting(Ljava/lang/String;Ljava/lang/String;JZ)V
+HSPLcom/android/server/location/LocationRequestStatistics;->startRequesting(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JZ)V
 HPLcom/android/server/location/LocationRequestStatistics;->stopRequesting(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/location/LocationRequestStatistics;->stopRequesting(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/location/LocationRequestStatistics;->updateForeground(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
 PLcom/android/server/location/LocationRequestStatistics;->updateForeground(Ljava/lang/String;Ljava/lang/String;Z)V
 PLcom/android/server/location/LocationSettingsStore$GlobalSettingChangedListener;->onSettingChanged(I)V
 HSPLcom/android/server/location/LocationSettingsStore$IntegerSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
@@ -18590,7 +19724,7 @@
 HSPLcom/android/server/location/MockableLocationProvider;->access$100(Lcom/android/server/location/MockableLocationProvider;)Ljava/lang/Object;
 HSPLcom/android/server/location/MockableLocationProvider;->access$200(Lcom/android/server/location/MockableLocationProvider;)Lcom/android/server/location/AbstractLocationProvider;
 PLcom/android/server/location/MockableLocationProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-HPLcom/android/server/location/MockableLocationProvider;->getCurrentRequest()Lcom/android/internal/location/ProviderRequest;
+HSPLcom/android/server/location/MockableLocationProvider;->getCurrentRequest()Lcom/android/internal/location/ProviderRequest;
 HPLcom/android/server/location/MockableLocationProvider;->getProvider()Lcom/android/server/location/AbstractLocationProvider;
 HSPLcom/android/server/location/MockableLocationProvider;->getState()Lcom/android/server/location/AbstractLocationProvider$State;
 HSPLcom/android/server/location/MockableLocationProvider;->isMock()Z
@@ -18648,6 +19782,7 @@
 HPLcom/android/server/location/RemoteListenerHelper;->hasPermission(Landroid/content/Context;Lcom/android/server/location/CallerIdentity;)Z
 PLcom/android/server/location/RemoteListenerHelper;->isRegistered()Z
 PLcom/android/server/location/RemoteListenerHelper;->lambda$tryUnregister$0$RemoteListenerHelper()V
+HPLcom/android/server/location/RemoteListenerHelper;->logPermissionDisabledEventNotReported(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/location/RemoteListenerHelper;->post(Lcom/android/server/location/RemoteListenerHelper$IdentifiedListener;Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;)V
 HPLcom/android/server/location/RemoteListenerHelper;->removeListener(Landroid/os/IInterface;)V
 HSPLcom/android/server/location/RemoteListenerHelper;->setSupported(Z)V
@@ -18669,7 +19804,7 @@
 HSPLcom/android/server/location/SettingsHelper$ObservingSetting;-><init>(Landroid/os/Handler;Lcom/android/server/location/SettingsHelper$1;)V
 HSPLcom/android/server/location/SettingsHelper$ObservingSetting;->addListener(Lcom/android/server/location/SettingsHelper$UserSettingChangedListener;)V
 HPLcom/android/server/location/SettingsHelper$ObservingSetting;->isRegistered()Z
-HPLcom/android/server/location/SettingsHelper$ObservingSetting;->onChange(ZLandroid/net/Uri;I)V
+HSPLcom/android/server/location/SettingsHelper$ObservingSetting;->onChange(ZLandroid/net/Uri;I)V
 HSPLcom/android/server/location/SettingsHelper$ObservingSetting;->register(Landroid/content/Context;Landroid/net/Uri;)V
 HSPLcom/android/server/location/SettingsHelper$StringListCachedSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
 HSPLcom/android/server/location/SettingsHelper$StringListCachedSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;Lcom/android/server/location/SettingsHelper$1;)V
@@ -18700,11 +19835,12 @@
 PLcom/android/server/location/SettingsHelper;->setLocationEnabled(ZI)V
 HSPLcom/android/server/location/SettingsHelper;->setLocationProviderAllowed(Ljava/lang/String;ZI)V
 HSPLcom/android/server/location/UserInfoHelper$1;-><init>(Lcom/android/server/location/UserInfoHelper;)V
-PLcom/android/server/location/UserInfoHelper$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/location/UserInfoHelper$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/location/UserInfoHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/UserInfoHelper;->access$000(Lcom/android/server/location/UserInfoHelper;I)V
+HSPLcom/android/server/location/UserInfoHelper;->access$000(Lcom/android/server/location/UserInfoHelper;I)V
 PLcom/android/server/location/UserInfoHelper;->access$100(Lcom/android/server/location/UserInfoHelper;)V
-PLcom/android/server/location/UserInfoHelper;->access$100(Lcom/android/server/location/UserInfoHelper;II)V
+HSPLcom/android/server/location/UserInfoHelper;->access$100(Lcom/android/server/location/UserInfoHelper;I)V
+HSPLcom/android/server/location/UserInfoHelper;->access$100(Lcom/android/server/location/UserInfoHelper;II)V
 HSPLcom/android/server/location/UserInfoHelper;->addListener(Lcom/android/server/location/UserInfoHelper$UserChangedListener;)V
 HSPLcom/android/server/location/UserInfoHelper;->addListener(Lcom/android/server/location/UserInfoHelper$UserListener;)V
 PLcom/android/server/location/UserInfoHelper;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
@@ -18714,11 +19850,13 @@
 HSPLcom/android/server/location/UserInfoHelper;->getProfileUserIdsForParentUser(I)[I
 HSPLcom/android/server/location/UserInfoHelper;->isCurrentUserId(I)Z
 HSPLcom/android/server/location/UserInfoHelper;->isCurrentUserOrProfile(I)Z
-PLcom/android/server/location/UserInfoHelper;->onCurrentUserChanged(I)V
+HSPLcom/android/server/location/UserInfoHelper;->onCurrentUserChanged(I)V
 HSPLcom/android/server/location/UserInfoHelper;->onSystemReady()V
 PLcom/android/server/location/UserInfoHelper;->onUserChanged(I)V
-PLcom/android/server/location/UserInfoHelper;->onUserChanged(II)V
+HSPLcom/android/server/location/UserInfoHelper;->onUserChanged(II)V
 PLcom/android/server/location/UserInfoHelper;->onUserProfilesChanged()V
+HSPLcom/android/server/location/UserInfoHelper;->onUserStarted(I)V
+PLcom/android/server/location/UserInfoHelper;->onUserStopped(I)V
 HSPLcom/android/server/location/UserInfoStore$1;-><init>(Lcom/android/server/location/UserInfoStore;)V
 HSPLcom/android/server/location/UserInfoStore$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/location/UserInfoStore;-><init>(Landroid/content/Context;)V
@@ -18733,8 +19871,8 @@
 HSPLcom/android/server/location/UserInfoStore;->onSystemReady()V
 HSPLcom/android/server/location/UserInfoStore;->onUserChanged(I)V
 PLcom/android/server/location/UserInfoStore;->onUserProfilesChanged()V
-PLcom/android/server/location/gnss/-$$Lambda$D_8O7MDYM_zvDJaJvJVfzXhIfZY;-><clinit>()V
-PLcom/android/server/location/gnss/-$$Lambda$D_8O7MDYM_zvDJaJvJVfzXhIfZY;-><init>()V
+HSPLcom/android/server/location/gnss/-$$Lambda$D_8O7MDYM_zvDJaJvJVfzXhIfZY;-><clinit>()V
+HSPLcom/android/server/location/gnss/-$$Lambda$D_8O7MDYM_zvDJaJvJVfzXhIfZY;-><init>()V
 PLcom/android/server/location/gnss/-$$Lambda$FxAranobP2o6eVcPEOp8tzZYyLY;-><init>(Lcom/android/server/location/gnss/GnssManagerService;)V
 PLcom/android/server/location/gnss/-$$Lambda$FxAranobP2o6eVcPEOp8tzZYyLY;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/location/gnss/-$$Lambda$GnssManagerService$UdLm78gS4fBvCkzR5_od9MCx3_M;-><init>(Lcom/android/server/location/gnss/GnssManagerService;)V
@@ -18745,7 +19883,7 @@
 HSPLcom/android/server/location/gnss/-$$Lambda$GnssManagerService$de6v4jWKxQDC9J4FdGGrfKg2phA;->onAppForegroundChanged(IZ)V
 HSPLcom/android/server/location/gnss/-$$Lambda$HALkbmbB2IPr_wdFkPjiIWCzJsY;-><clinit>()V
 HSPLcom/android/server/location/gnss/-$$Lambda$HALkbmbB2IPr_wdFkPjiIWCzJsY;-><init>()V
-PLcom/android/server/location/gnss/-$$Lambda$WsssLeTVg_jaQ16K-SvqbRc0TV8;-><init>(Lcom/android/server/location/gnss/GnssManagerService;)V
+HPLcom/android/server/location/gnss/-$$Lambda$WsssLeTVg_jaQ16K-SvqbRc0TV8;-><init>(Lcom/android/server/location/gnss/GnssManagerService;)V
 PLcom/android/server/location/gnss/-$$Lambda$WsssLeTVg_jaQ16K-SvqbRc0TV8;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/location/gnss/-$$Lambda$hu439-4T6QBT8QyZnspMtXqICWs;-><clinit>()V
 HSPLcom/android/server/location/gnss/-$$Lambda$hu439-4T6QBT8QyZnspMtXqICWs;-><init>()V
@@ -18764,7 +19902,7 @@
 PLcom/android/server/location/gnss/GnssManagerService;->addGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
 HPLcom/android/server/location/gnss/GnssManagerService;->checkLocationAppOp(Ljava/lang/String;)Z
 PLcom/android/server/location/gnss/GnssManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-PLcom/android/server/location/gnss/GnssManagerService;->getGnssCapabilities(Ljava/lang/String;)J
+HPLcom/android/server/location/gnss/GnssManagerService;->getGnssCapabilities(Ljava/lang/String;)J
 HSPLcom/android/server/location/gnss/GnssManagerService;->getGnssLocationProvider()Lcom/android/server/location/GnssLocationProvider;
 HSPLcom/android/server/location/gnss/GnssManagerService;->getGpsGeofenceProxy()Landroid/location/IGpsGeofenceHardware;
 HPLcom/android/server/location/gnss/GnssManagerService;->hasGnssPermissions(Ljava/lang/String;)Z
@@ -18777,12 +19915,12 @@
 HSPLcom/android/server/location/gnss/GnssManagerService;->onAppForegroundChanged(IZ)V
 HSPLcom/android/server/location/gnss/GnssManagerService;->onForegroundChanged(IZ)V
 HSPLcom/android/server/location/gnss/GnssManagerService;->onSystemReady()V
-PLcom/android/server/location/gnss/GnssManagerService;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;Ljava/lang/String;)Z
+HPLcom/android/server/location/gnss/GnssManagerService;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/server/location/gnss/GnssManagerService;->registerUidListener()V
 HPLcom/android/server/location/gnss/GnssManagerService;->removeGnssDataListener(Landroid/os/IInterface;Lcom/android/server/location/RemoteListenerHelper;Landroid/util/ArrayMap;)V
 HPLcom/android/server/location/gnss/GnssManagerService;->removeGnssDataListenerLocked(Landroid/os/IInterface;Lcom/android/server/location/RemoteListenerHelper;Landroid/util/ArrayMap;)V
 PLcom/android/server/location/gnss/GnssManagerService;->removeGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;)V
-PLcom/android/server/location/gnss/GnssManagerService;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
+HPLcom/android/server/location/gnss/GnssManagerService;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
 HSPLcom/android/server/location/gnss/GnssManagerService;->updateListenersOnForegroundChangedLocked(Landroid/util/ArrayMap;Lcom/android/server/location/RemoteListenerHelper;Ljava/util/function/Function;IZ)V
 HSPLcom/android/server/location/gnss/GnssManagerService;->updateListenersOnForegroundChangedLocked(Ljava/util/Map;Lcom/android/server/location/RemoteListenerHelper;Ljava/util/function/Function;IZ)V
 PLcom/android/server/locksettings/-$$Lambda$LockSettingsService$25VQEBWGuGqdc4Xjn9m8HXt9ZTI;-><init>(Lcom/android/server/locksettings/LockSettingsService;Ljava/util/ArrayList;I)V
@@ -18882,6 +20020,7 @@
 PLcom/android/server/locksettings/LockSettingsService;->addEscrowToken([BILcom/android/internal/widget/LockPatternUtils$EscrowTokenStateChangeCallback;)J
 PLcom/android/server/locksettings/LockSettingsService;->addUserKeyAuth(I[B[B)V
 HPLcom/android/server/locksettings/LockSettingsService;->callToAuthSecretIfNeeded(ILcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;)V
+HPLcom/android/server/locksettings/LockSettingsService;->checkBiometricPermission()V
 HPLcom/android/server/locksettings/LockSettingsService;->checkCredential(Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/internal/widget/VerifyCredentialResponse;
 HSPLcom/android/server/locksettings/LockSettingsService;->checkPasswordHavePermission(I)V
 HSPLcom/android/server/locksettings/LockSettingsService;->checkPasswordReadPermission(I)V
@@ -18954,7 +20093,9 @@
 PLcom/android/server/locksettings/LockSettingsService;->removeKey(Ljava/lang/String;)V
 PLcom/android/server/locksettings/LockSettingsService;->removeKeystoreProfileKey(I)V
 PLcom/android/server/locksettings/LockSettingsService;->removeUser(IZ)V
+HPLcom/android/server/locksettings/LockSettingsService;->reportSuccessfulBiometricUnlock(ZI)V
 PLcom/android/server/locksettings/LockSettingsService;->requireStrongAuth(II)V
+HPLcom/android/server/locksettings/LockSettingsService;->scheduleNonStrongBiometricIdleTimeout(I)V
 PLcom/android/server/locksettings/LockSettingsService;->sendCredentialsOnChangeIfRequired(Lcom/android/internal/widget/LockscreenCredential;IZ)V
 HPLcom/android/server/locksettings/LockSettingsService;->sendCredentialsOnUnlockIfRequired(Lcom/android/internal/widget/LockscreenCredential;I)V
 PLcom/android/server/locksettings/LockSettingsService;->setAuthlessUserKeyProtection(I[B)V
@@ -19020,6 +20161,8 @@
 HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->putIfUnchanged(ILjava/lang/String;Ljava/lang/Object;II)V
 PLcom/android/server/locksettings/LockSettingsStorage$Cache;->putKeyValue(Ljava/lang/String;Ljava/lang/String;I)V
 HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->putKeyValueIfUnchanged(Ljava/lang/String;Ljava/lang/Object;II)V
+PLcom/android/server/locksettings/LockSettingsStorage$Cache;->remove(ILjava/lang/String;I)V
+PLcom/android/server/locksettings/LockSettingsStorage$Cache;->removeKey(Ljava/lang/String;I)V
 PLcom/android/server/locksettings/LockSettingsStorage$Cache;->removeUser(I)V
 HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->setFetched(I)V
 HSPLcom/android/server/locksettings/LockSettingsStorage$CredentialHash;-><init>([BI)V
@@ -19037,12 +20180,16 @@
 HPLcom/android/server/locksettings/LockSettingsStorage;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/locksettings/LockSettingsStorage;->ensureSyntheticPasswordDirectoryForUser(I)V
 PLcom/android/server/locksettings/LockSettingsStorage;->fsyncDirectory(Ljava/io/File;)V
+HPLcom/android/server/locksettings/LockSettingsStorage;->getBoolean(Ljava/lang/String;ZI)Z
 PLcom/android/server/locksettings/LockSettingsStorage;->getChildProfileLockFile(I)Ljava/lang/String;
+PLcom/android/server/locksettings/LockSettingsStorage;->getInt(Ljava/lang/String;II)I
 HSPLcom/android/server/locksettings/LockSettingsStorage;->getLockCredentialFilePathForUser(ILjava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/locksettings/LockSettingsStorage;->getLockPasswordFilename(I)Ljava/lang/String;
 HSPLcom/android/server/locksettings/LockSettingsStorage;->getLockPatternFilename(I)Ljava/lang/String;
+HPLcom/android/server/locksettings/LockSettingsStorage;->getLong(Ljava/lang/String;JI)J
 PLcom/android/server/locksettings/LockSettingsStorage;->getPersistentDataBlockManager()Lcom/android/server/PersistentDataBlockManagerInternal;
 HSPLcom/android/server/locksettings/LockSettingsStorage;->getRebootEscrowFile(I)Ljava/lang/String;
+HPLcom/android/server/locksettings/LockSettingsStorage;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
 HSPLcom/android/server/locksettings/LockSettingsStorage;->getSynthenticPasswordStateFilePathForUser(IJLjava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/locksettings/LockSettingsStorage;->getSyntheticPasswordDirectoryForUser(I)Ljava/io/File;
 PLcom/android/server/locksettings/LockSettingsStorage;->hasChildProfileLock(I)Z
@@ -19060,9 +20207,13 @@
 PLcom/android/server/locksettings/LockSettingsStorage;->readRebootEscrow(I)[B
 HSPLcom/android/server/locksettings/LockSettingsStorage;->readSyntheticPasswordState(IJLjava/lang/String;)[B
 PLcom/android/server/locksettings/LockSettingsStorage;->removeChildProfileLock(I)V
+PLcom/android/server/locksettings/LockSettingsStorage;->removeKey(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;I)V
+PLcom/android/server/locksettings/LockSettingsStorage;->removeKey(Ljava/lang/String;I)V
 PLcom/android/server/locksettings/LockSettingsStorage;->removeRebootEscrow(I)V
 PLcom/android/server/locksettings/LockSettingsStorage;->removeUser(I)V
+PLcom/android/server/locksettings/LockSettingsStorage;->setBoolean(Ljava/lang/String;ZI)V
 HSPLcom/android/server/locksettings/LockSettingsStorage;->setDatabaseOnCreateCallback(Lcom/android/server/locksettings/LockSettingsStorage$Callback;)V
+PLcom/android/server/locksettings/LockSettingsStorage;->setString(Ljava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/locksettings/LockSettingsStorage;->writeChildProfileLock(I[B)V
 PLcom/android/server/locksettings/LockSettingsStorage;->writeFile(Ljava/lang/String;[B)V
 HPLcom/android/server/locksettings/LockSettingsStorage;->writeKeyValue(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;I)V
@@ -19072,24 +20223,42 @@
 PLcom/android/server/locksettings/LockSettingsStorage;->writeSyntheticPasswordState(IJLjava/lang/String;[B)V
 HSPLcom/android/server/locksettings/LockSettingsStrongAuth$1;-><init>(Lcom/android/server/locksettings/LockSettingsStrongAuth;)V
 HSPLcom/android/server/locksettings/LockSettingsStrongAuth$1;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth$NonStrongBiometricIdleTimeoutAlarmListener;-><init>(Lcom/android/server/locksettings/LockSettingsStrongAuth;I)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth$NonStrongBiometricIdleTimeoutAlarmListener;->onAlarm()V
 PLcom/android/server/locksettings/LockSettingsStrongAuth$StrongAuthTimeoutAlarmListener;-><init>(Lcom/android/server/locksettings/LockSettingsStrongAuth;I)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth$StrongAuthTimeoutAlarmListener;->onAlarm()V
 HSPLcom/android/server/locksettings/LockSettingsStrongAuth;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/locksettings/LockSettingsStrongAuth;->access$000(Lcom/android/server/locksettings/LockSettingsStrongAuth;Landroid/app/trust/IStrongAuthTracker;)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->access$000(Lcom/android/server/locksettings/LockSettingsStrongAuth;ZI)V
+HSPLcom/android/server/locksettings/LockSettingsStrongAuth;->access$100(Lcom/android/server/locksettings/LockSettingsStrongAuth;Landroid/app/trust/IStrongAuthTracker;)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth;->access$200(Lcom/android/server/locksettings/LockSettingsStrongAuth;II)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth;->access$300(Lcom/android/server/locksettings/LockSettingsStrongAuth;I)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->access$300(Lcom/android/server/locksettings/LockSettingsStrongAuth;II)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth;->access$400(Lcom/android/server/locksettings/LockSettingsStrongAuth;I)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->access$500(Lcom/android/server/locksettings/LockSettingsStrongAuth;I)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->access$800(Lcom/android/server/locksettings/LockSettingsStrongAuth;I)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->access$900(Lcom/android/server/locksettings/LockSettingsStrongAuth;I)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->cancelNonStrongBiometricAlarmListener(I)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->cancelNonStrongBiometricIdleAlarmListener(I)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 HSPLcom/android/server/locksettings/LockSettingsStrongAuth;->handleAddStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleRemoveUser(I)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleRequireStrongAuth(II)V
 HPLcom/android/server/locksettings/LockSettingsStrongAuth;->handleRequireStrongAuthOneUser(II)V
+HPLcom/android/server/locksettings/LockSettingsStrongAuth;->handleScheduleNonStrongBiometricIdleTimeout(I)V
 HPLcom/android/server/locksettings/LockSettingsStrongAuth;->handleScheduleStrongAuthTimeout(I)V
-PLcom/android/server/locksettings/LockSettingsStrongAuth;->notifyStrongAuthTrackers(II)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleStrongBiometricUnlock(I)V
+HPLcom/android/server/locksettings/LockSettingsStrongAuth;->notifyStrongAuthTrackers(II)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->notifyStrongAuthTrackersForIsNonStrongBiometricAllowed(ZI)V
 HSPLcom/android/server/locksettings/LockSettingsStrongAuth;->registerStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth;->removeUser(I)V
+HPLcom/android/server/locksettings/LockSettingsStrongAuth;->reportSuccessfulBiometricUnlock(ZI)V
 HPLcom/android/server/locksettings/LockSettingsStrongAuth;->reportSuccessfulStrongAuthUnlock(I)V
 PLcom/android/server/locksettings/LockSettingsStrongAuth;->reportUnlock(I)V
 HPLcom/android/server/locksettings/LockSettingsStrongAuth;->requireStrongAuth(II)V
+HPLcom/android/server/locksettings/LockSettingsStrongAuth;->scheduleNonStrongBiometricIdleTimeout(I)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->setIsNonStrongBiometricAllowed(ZI)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth;->setIsNonStrongBiometricAllowedOneUser(ZI)V
 HSPLcom/android/server/locksettings/ManagedProfilePasswordCache;-><clinit>()V
 HSPLcom/android/server/locksettings/ManagedProfilePasswordCache;-><init>(Ljava/security/KeyStore;Landroid/os/UserManager;)V
 PLcom/android/server/locksettings/ManagedProfilePasswordCache;->getEncryptionKeyName(I)Ljava/lang/String;
@@ -19124,8 +20293,10 @@
 PLcom/android/server/locksettings/RebootEscrowKey;->generate()Lcom/android/server/locksettings/RebootEscrowKey;
 PLcom/android/server/locksettings/RebootEscrowKey;->getKey()Ljavax/crypto/SecretKey;
 HSPLcom/android/server/locksettings/RebootEscrowManager$Injector;-><init>(Landroid/content/Context;)V
+PLcom/android/server/locksettings/RebootEscrowManager$Injector;->getBootCount()I
 PLcom/android/server/locksettings/RebootEscrowManager$Injector;->getRebootEscrow()Landroid/hardware/rebootescrow/IRebootEscrow;
 HSPLcom/android/server/locksettings/RebootEscrowManager$Injector;->getUserManager()Landroid/os/UserManager;
+PLcom/android/server/locksettings/RebootEscrowManager$Injector;->reportMetric(Z)V
 HSPLcom/android/server/locksettings/RebootEscrowManager;-><init>(Landroid/content/Context;Lcom/android/server/locksettings/RebootEscrowManager$Callbacks;Lcom/android/server/locksettings/LockSettingsStorage;)V
 HSPLcom/android/server/locksettings/RebootEscrowManager;-><init>(Lcom/android/server/locksettings/RebootEscrowManager$Injector;Lcom/android/server/locksettings/RebootEscrowManager$Callbacks;Lcom/android/server/locksettings/LockSettingsStorage;)V
 PLcom/android/server/locksettings/RebootEscrowManager;->callToRebootEscrowIfNeeded(IB[B)V
@@ -19134,6 +20305,7 @@
 PLcom/android/server/locksettings/RebootEscrowManager;->getAndClearRebootEscrowKey()Lcom/android/server/locksettings/RebootEscrowKey;
 PLcom/android/server/locksettings/RebootEscrowManager;->getAndClearRebootEscrowKey()Ljavax/crypto/spec/SecretKeySpec;
 HSPLcom/android/server/locksettings/RebootEscrowManager;->loadRebootEscrowDataIfAvailable()V
+PLcom/android/server/locksettings/RebootEscrowManager;->onEscrowRestoreComplete(Z)V
 PLcom/android/server/locksettings/RebootEscrowManager;->prepareRebootEscrow()Z
 PLcom/android/server/locksettings/RebootEscrowManager;->restoreRebootEscrowForUser(ILcom/android/server/locksettings/RebootEscrowKey;)Z
 PLcom/android/server/locksettings/RebootEscrowManager;->restoreRebootEscrowForUser(ILjavax/crypto/spec/SecretKeySpec;)Z
@@ -19314,14 +20486,14 @@
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->getKeyChainSnapshot()Landroid/security/keystore/recovery/KeyChainSnapshot;
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->getRecoverySecretTypes()[I
 HPLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->getRecoveryStatus()Ljava/util/Map;
-PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->initRecoveryService(Ljava/lang/String;[B)V
+HPLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->initRecoveryService(Ljava/lang/String;[B)V
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->initRecoveryServiceWithSigFile(Ljava/lang/String;[B[B)V
 HPLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->lockScreenSecretAvailable(I[BI)V
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->lockScreenSecretChanged(I[BI)V
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->removeKey(Ljava/lang/String;)V
-PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->setRecoverySecretTypes([I)V
+HPLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->setRecoverySecretTypes([I)V
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->setRecoveryStatus(Ljava/lang/String;I)V
-PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->setServerParams([B)V
+HPLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->setServerParams([B)V
 PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->setSnapshotCreatedPendingIntent(Landroid/app/PendingIntent;)V
 HSPLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;-><init>()V
 PLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;->recoverySnapshotAvailable(I)V
@@ -19355,12 +20527,12 @@
 HPLcom/android/server/locksettings/recoverablekeystore/WrappedKey;->unwrapKeys(Lcom/android/server/locksettings/recoverablekeystore/PlatformDecryptionKey;Ljava/util/Map;)Ljava/util/Map;
 PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->buildCertPath(Ljava/security/cert/PKIXParameters;)Ljava/security/cert/CertPath;
 PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->buildPkixParams(Ljava/util/Date;Ljava/security/cert/X509Certificate;Ljava/util/List;Ljava/security/cert/X509Certificate;)Ljava/security/cert/PKIXParameters;
-PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->decodeBase64(Ljava/lang/String;)[B
-PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->decodeCert(Ljava/io/InputStream;)Ljava/security/cert/X509Certificate;
+HPLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->decodeBase64(Ljava/lang/String;)[B
+HPLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->decodeCert(Ljava/io/InputStream;)Ljava/security/cert/X509Certificate;
 HPLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->decodeCert([B)Ljava/security/cert/X509Certificate;
 HPLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->getXmlDirectChildren(Lorg/w3c/dom/Element;Ljava/lang/String;)Ljava/util/List;
 HPLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->getXmlNodeContents(ILorg/w3c/dom/Element;[Ljava/lang/String;)Ljava/util/List;
-PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->getXmlRootNode([B)Lorg/w3c/dom/Element;
+HPLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->getXmlRootNode([B)Lorg/w3c/dom/Element;
 PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->validateCert(Ljava/util/Date;Ljava/security/cert/X509Certificate;Ljava/util/List;Ljava/security/cert/X509Certificate;)Ljava/security/cert/CertPath;
 PLcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;->verifyRsaSha256Signature(Ljava/security/PublicKey;[B[B)V
 PLcom/android/server/locksettings/recoverablekeystore/certificate/CertXml;-><init>(JLjava/util/List;Ljava/util/List;)V
@@ -19422,12 +20594,12 @@
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;->verifyKnownUsers()V
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;-><init>(Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper;)V
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->decodeCertPath([B)Ljava/security/cert/CertPath;
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->ensureRecoveryServiceMetadataEntryExists(II)V
+HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->ensureRecoveryServiceMetadataEntryExists(II)V
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->ensureRootOfTrustEntryExists(IILjava/lang/String;)V
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->ensureUserMetadataEntryExists(I)V
 HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getActiveRootOfTrust(II)Ljava/lang/String;
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getAllKeys(III)Ljava/util/Map;
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getBytes(IILjava/lang/String;)[B
+HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getBytes(IILjava/lang/String;)[B
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getBytes(IILjava/lang/String;Ljava/lang/String;)[B
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getCounterId(II)Ljava/lang/Long;
 HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getLong(IILjava/lang/String;)Ljava/lang/Long;
@@ -19452,7 +20624,7 @@
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->removeUserFromRecoveryServiceMetadataTable(I)Z
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->removeUserFromRootOfTrustTable(I)Z
 HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->removeUserFromUserMetadataTable(I)Z
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setActiveRootOfTrust(IILjava/lang/String;)J
+HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setActiveRootOfTrust(IILjava/lang/String;)J
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setBytes(IILjava/lang/String;Ljava/lang/String;[B)J
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setBytes(IILjava/lang/String;[B)J
 PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setCounterId(IIJ)J
@@ -19494,13 +20666,26 @@
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$9sVKwFHJaVOpWt-fwbOrQeBJC6Y;-><clinit>()V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$9sVKwFHJaVOpWt-fwbOrQeBJC6Y;-><init>()V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$9sVKwFHJaVOpWt-fwbOrQeBJC6Y;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$pBXDXzrCaoR3Vqp98BYwg2JCXx8;-><clinit>()V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$pBXDXzrCaoR3Vqp98BYwg2JCXx8;-><init>()V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$pBXDXzrCaoR3Vqp98BYwg2JCXx8;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$pb5SX6gBlgZXLZp0t4uVjgjp3EE;-><clinit>()V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$pb5SX6gBlgZXLZp0t4uVjgjp3EE;-><init>()V
 PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$pb5SX6gBlgZXLZp0t4uVjgjp3EE;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UyhtmNkwYd0IQ4t6m6ItWaQAFKI;-><clinit>()V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UyhtmNkwYd0IQ4t6m6ItWaQAFKI;-><init>()V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UyhtmNkwYd0IQ4t6m6ItWaQAFKI;->accept(Ljava/lang/Object;)V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$ktFKfbGb3mjvGzJIZxyEZjYDR3w;-><clinit>()V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$ktFKfbGb3mjvGzJIZxyEZjYDR3w;-><init>()V
+PLcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$ktFKfbGb3mjvGzJIZxyEZjYDR3w;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/media/-$$Lambda$MediaSessionService$za_9dlUSlnaiZw6eCdPVEZq0XLw;-><init>(Lcom/android/server/media/MediaSessionService;)V
 HPLcom/android/server/media/-$$Lambda$MediaSessionService$za_9dlUSlnaiZw6eCdPVEZq0XLw;->onAudioPlayerActiveStateChanged(Landroid/media/AudioPlaybackConfiguration;Z)V
+PLcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$1$ebcdsGsKcvePyBmWcsYxnmypK0U;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider$1;Landroid/media/AudioRoutesInfo;)V
+PLcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$1$ebcdsGsKcvePyBmWcsYxnmypK0U;->run()V
 PLcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$3XkXCmvQ_LPHp9vNkwpIzXdSk6A;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;)V
 PLcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$3XkXCmvQ_LPHp9vNkwpIzXdSk6A;->run()V
+PLcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$AB-PWlKU2NOApQQQov7CqgW5RnQ;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;)V
+PLcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$AB-PWlKU2NOApQQQov7CqgW5RnQ;->run()V
 PLcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$aOlVIsBkXTnw1voyl2-9vhrVhMY;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;)V
 PLcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$aOlVIsBkXTnw1voyl2-9vhrVhMY;->onBluetoothRoutesUpdated(Ljava/util/List;)V
 HSPLcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;-><init>(Lcom/android/server/media/AudioPlayerStateMonitor;)V
@@ -19523,12 +20708,14 @@
 HPLcom/android/server/media/AudioPlayerStateMonitor;->sendAudioPlayerActiveStateChangedMessageLocked(Landroid/media/AudioPlaybackConfiguration;Z)V
 PLcom/android/server/media/BluetoothRouteProvider$AdapterStateChangedReceiver;-><init>(Lcom/android/server/media/BluetoothRouteProvider;)V
 PLcom/android/server/media/BluetoothRouteProvider$AdapterStateChangedReceiver;-><init>(Lcom/android/server/media/BluetoothRouteProvider;Lcom/android/server/media/BluetoothRouteProvider$1;)V
+PLcom/android/server/media/BluetoothRouteProvider$AdapterStateChangedReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;Landroid/bluetooth/BluetoothDevice;)V
 PLcom/android/server/media/BluetoothRouteProvider$BluetoothBroadcastReceiver;-><init>(Lcom/android/server/media/BluetoothRouteProvider;)V
 PLcom/android/server/media/BluetoothRouteProvider$BluetoothBroadcastReceiver;-><init>(Lcom/android/server/media/BluetoothRouteProvider;Lcom/android/server/media/BluetoothRouteProvider$1;)V
-PLcom/android/server/media/BluetoothRouteProvider$BluetoothBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HPLcom/android/server/media/BluetoothRouteProvider$BluetoothBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/media/BluetoothRouteProvider$BluetoothProfileListener;-><init>(Lcom/android/server/media/BluetoothRouteProvider;)V
 PLcom/android/server/media/BluetoothRouteProvider$BluetoothProfileListener;-><init>(Lcom/android/server/media/BluetoothRouteProvider;Lcom/android/server/media/BluetoothRouteProvider$1;)V
 PLcom/android/server/media/BluetoothRouteProvider$BluetoothProfileListener;->onServiceConnected(ILandroid/bluetooth/BluetoothProfile;)V
+PLcom/android/server/media/BluetoothRouteProvider$BluetoothProfileListener;->onServiceDisconnected(I)V
 PLcom/android/server/media/BluetoothRouteProvider$BluetoothRouteInfo;-><init>(Lcom/android/server/media/BluetoothRouteProvider;)V
 PLcom/android/server/media/BluetoothRouteProvider$BluetoothRouteInfo;-><init>(Lcom/android/server/media/BluetoothRouteProvider;Lcom/android/server/media/BluetoothRouteProvider$1;)V
 PLcom/android/server/media/BluetoothRouteProvider$BondStateChangedReceiver;-><init>(Lcom/android/server/media/BluetoothRouteProvider;)V
@@ -19540,19 +20727,30 @@
 PLcom/android/server/media/BluetoothRouteProvider$DeviceStateChangedRecevier;->onReceive(Landroid/content/Context;Landroid/content/Intent;Landroid/bluetooth/BluetoothDevice;)V
 PLcom/android/server/media/BluetoothRouteProvider;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothAdapter;Lcom/android/server/media/BluetoothRouteProvider$BluetoothRoutesUpdatedListener;)V
 PLcom/android/server/media/BluetoothRouteProvider;->access$1000(Lcom/android/server/media/BluetoothRouteProvider;)Ljava/util/Map;
+PLcom/android/server/media/BluetoothRouteProvider;->access$1000(Lcom/android/server/media/BluetoothRouteProvider;)V
+PLcom/android/server/media/BluetoothRouteProvider;->access$1100(Lcom/android/server/media/BluetoothRouteProvider;)V
 PLcom/android/server/media/BluetoothRouteProvider;->access$600(Lcom/android/server/media/BluetoothRouteProvider;Landroid/bluetooth/BluetoothDevice;)Lcom/android/server/media/BluetoothRouteProvider$BluetoothRouteInfo;
 PLcom/android/server/media/BluetoothRouteProvider;->access$700(Lcom/android/server/media/BluetoothRouteProvider;)Landroid/bluetooth/BluetoothDevice;
+PLcom/android/server/media/BluetoothRouteProvider;->access$700(Lcom/android/server/media/BluetoothRouteProvider;Lcom/android/server/media/BluetoothRouteProvider$BluetoothRouteInfo;I)V
 PLcom/android/server/media/BluetoothRouteProvider;->access$702(Lcom/android/server/media/BluetoothRouteProvider;Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothDevice;
+PLcom/android/server/media/BluetoothRouteProvider;->access$800(Lcom/android/server/media/BluetoothRouteProvider;)V
 PLcom/android/server/media/BluetoothRouteProvider;->access$800(Lcom/android/server/media/BluetoothRouteProvider;Landroid/bluetooth/BluetoothDevice;I)V
+PLcom/android/server/media/BluetoothRouteProvider;->access$900(Lcom/android/server/media/BluetoothRouteProvider;)Ljava/util/Map;
 PLcom/android/server/media/BluetoothRouteProvider;->access$900(Lcom/android/server/media/BluetoothRouteProvider;)V
 PLcom/android/server/media/BluetoothRouteProvider;->addEventReceiver(Ljava/lang/String;Lcom/android/server/media/BluetoothRouteProvider$BluetoothEventReceiver;)V
 PLcom/android/server/media/BluetoothRouteProvider;->buildBluetoothRoutes()V
+PLcom/android/server/media/BluetoothRouteProvider;->clearActiveDevices()V
 PLcom/android/server/media/BluetoothRouteProvider;->createBluetoothRoute(Landroid/bluetooth/BluetoothDevice;)Lcom/android/server/media/BluetoothRouteProvider$BluetoothRouteInfo;
 PLcom/android/server/media/BluetoothRouteProvider;->getActiveDeviceAddress()Ljava/lang/String;
+HPLcom/android/server/media/BluetoothRouteProvider;->getAllBluetoothRoutes()Ljava/util/List;
 PLcom/android/server/media/BluetoothRouteProvider;->getBluetoothRoutes()Ljava/util/List;
 PLcom/android/server/media/BluetoothRouteProvider;->getInstance(Landroid/content/Context;Lcom/android/server/media/BluetoothRouteProvider$BluetoothRoutesUpdatedListener;)Lcom/android/server/media/BluetoothRouteProvider;
+PLcom/android/server/media/BluetoothRouteProvider;->getSelectedRoute()Landroid/media/MediaRoute2Info;
+PLcom/android/server/media/BluetoothRouteProvider;->getTransferableRoutes()Ljava/util/List;
 PLcom/android/server/media/BluetoothRouteProvider;->notifyBluetoothRoutesUpdated()V
+PLcom/android/server/media/BluetoothRouteProvider;->setRouteConnectionState(Lcom/android/server/media/BluetoothRouteProvider$BluetoothRouteInfo;I)V
 PLcom/android/server/media/BluetoothRouteProvider;->setRouteConnectionStateForDevice(Landroid/bluetooth/BluetoothDevice;I)V
+PLcom/android/server/media/BluetoothRouteProvider;->setSelectedRouteVolume(I)Z
 HSPLcom/android/server/media/MediaButtonReceiverHolder;-><init>(ILandroid/app/PendingIntent;Landroid/content/ComponentName;I)V
 HPLcom/android/server/media/MediaButtonReceiverHolder;->create(Landroid/content/Context;ILandroid/app/PendingIntent;)Lcom/android/server/media/MediaButtonReceiverHolder;
 HPLcom/android/server/media/MediaButtonReceiverHolder;->flattenToString()Ljava/lang/String;
@@ -19570,6 +20768,7 @@
 HSPLcom/android/server/media/MediaResourceMonitorService;->onStart()V
 PLcom/android/server/media/MediaRoute2Provider;-><init>(Landroid/content/ComponentName;)V
 PLcom/android/server/media/MediaRoute2Provider;->getProviderInfo()Landroid/media/MediaRoute2ProviderInfo;
+PLcom/android/server/media/MediaRoute2Provider;->getSessionInfos()Ljava/util/List;
 PLcom/android/server/media/MediaRoute2Provider;->getUniqueId()Ljava/lang/String;
 PLcom/android/server/media/MediaRoute2Provider;->notifyProviderState()V
 PLcom/android/server/media/MediaRoute2Provider;->setAndNotifyProviderState(Landroid/media/MediaRoute2ProviderInfo;)V
@@ -19584,49 +20783,70 @@
 PLcom/android/server/media/MediaRoute2ProviderWatcher;-><init>(Landroid/content/Context;Lcom/android/server/media/MediaRoute2ProviderWatcher$Callback;Landroid/os/Handler;I)V
 PLcom/android/server/media/MediaRoute2ProviderWatcher;->access$000()Z
 PLcom/android/server/media/MediaRoute2ProviderWatcher;->access$100(Lcom/android/server/media/MediaRoute2ProviderWatcher;)V
-PLcom/android/server/media/MediaRoute2ProviderWatcher;->scanPackages()V
+HPLcom/android/server/media/MediaRoute2ProviderWatcher;->scanPackages()V
 PLcom/android/server/media/MediaRoute2ProviderWatcher;->start()V
 PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;Landroid/media/IMediaRouter2Manager;IILjava/lang/String;Z)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;->binderDied()V
 PLcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;->dispose()V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$100(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;)Ljava/util/ArrayList;
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$1100(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Landroid/media/IMediaRouter2Manager;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$1200(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Landroid/media/IMediaRouter2Manager;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$1300(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Landroid/media/IMediaRouter2Manager;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$400(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$500(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Lcom/android/server/media/MediaRouter2ServiceImpl$Client2Record;Ljava/lang/String;Landroid/media/MediaRoute2Info;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$800(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->access$800(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Landroid/media/IMediaRouter2Manager;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->checkArgumentsForSessionControl(Lcom/android/server/media/MediaRouter2ServiceImpl$Client2Record;Ljava/lang/String;Landroid/media/MediaRoute2Info;Ljava/lang/String;)Z
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->findClientforSessionLocked(Ljava/lang/String;)Lcom/android/server/media/MediaRouter2ServiceImpl$Client2Record;
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->findProvider(Ljava/lang/String;)Lcom/android/server/media/MediaRoute2Provider;
 HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getClients()Ljava/util/List;
 HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getManagers()Ljava/util/List;
 HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getProviderInfoIndex(Ljava/lang/String;)I
+HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->getRouters()Ljava/util/List;
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->lambda$2y9vqtJzX1LpgQmc7mf5RQXEtqk(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->lambda$9sVKwFHJaVOpWt-fwbOrQeBJC6Y(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Lcom/android/server/media/MediaRoute2Provider;Landroid/media/RoutingSessionInfo;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->lambda$pBXDXzrCaoR3Vqp98BYwg2JCXx8(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->lambda$pb5SX6gBlgZXLZp0t4uVjgjp3EE(Lcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;Lcom/android/server/media/MediaRoute2Provider;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesAddedToClients(Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesAddedToManagers(Ljava/util/List;Ljava/util/List;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesAddedToRouters(Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesChangedToClients(Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesChangedToManagers(Ljava/util/List;Ljava/util/List;)V
+HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesChangedToRouters(Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesRemovedToClients(Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesRemovedToManagers(Ljava/util/List;Ljava/util/List;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesRemovedToRouters(Ljava/util/List;Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifyRoutesToManager(Landroid/media/IMediaRouter2Manager;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifySessionInfoChangedToClients(Ljava/util/List;Landroid/media/RoutingSessionInfo;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifySessionInfoChangedToRouters(Ljava/util/List;Landroid/media/RoutingSessionInfo;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->notifySessionInfosChangedToManagers(Ljava/util/List;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onProviderStateChanged(Lcom/android/server/media/MediaRoute2Provider;)V
 HPLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onProviderStateChangedOnHandler(Lcom/android/server/media/MediaRoute2Provider;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onSessionInfoChangedOnHandler(Lcom/android/server/media/MediaRoute2Provider;Landroid/media/RoutingSessionInfo;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->onSessionUpdated(Lcom/android/server/media/MediaRoute2Provider;Landroid/media/RoutingSessionInfo;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->start()V
+PLcom/android/server/media/MediaRouter2ServiceImpl$UserHandler;->transferToRouteOnHandler(Lcom/android/server/media/MediaRouter2ServiceImpl$Client2Record;Ljava/lang/String;Landroid/media/MediaRoute2Info;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;-><init>(Lcom/android/server/media/MediaRouter2ServiceImpl;I)V
 HSPLcom/android/server/media/MediaRouter2ServiceImpl;-><clinit>()V
 HSPLcom/android/server/media/MediaRouter2ServiceImpl;-><init>(Landroid/content/Context;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl;->access$200(Lcom/android/server/media/MediaRouter2ServiceImpl;)Landroid/content/Context;
 PLcom/android/server/media/MediaRouter2ServiceImpl;->access$300(Lcom/android/server/media/MediaRouter2ServiceImpl;)Ljava/lang/Object;
 PLcom/android/server/media/MediaRouter2ServiceImpl;->disposeUserIfNeededLocked(Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl;->getActiveSessions(Landroid/media/IMediaRouter2Manager;)Ljava/util/List;
+PLcom/android/server/media/MediaRouter2ServiceImpl;->getActiveSessionsLocked(Landroid/media/IMediaRouter2Manager;)Ljava/util/List;
 PLcom/android/server/media/MediaRouter2ServiceImpl;->getOrCreateUserRecordLocked(I)Lcom/android/server/media/MediaRouter2ServiceImpl$UserRecord;
 PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$getOrCreateUserRecordLocked$15(Ljava/lang/Object;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$getOrCreateUserRecordLocked$16(Ljava/lang/Object;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$getOrCreateUserRecordLocked$21(Ljava/lang/Object;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$registerManagerLocked$12(Ljava/lang/Object;Landroid/media/IMediaRouter2Manager;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl;->lambda$transferClientRouteLocked$18(Ljava/lang/Object;Lcom/android/server/media/MediaRouter2ServiceImpl$Client2Record;Ljava/lang/String;Landroid/media/MediaRoute2Info;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl;->managerDied(Lcom/android/server/media/MediaRouter2ServiceImpl$ManagerRecord;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl;->registerManager(Landroid/media/IMediaRouter2Manager;Ljava/lang/String;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl;->registerManagerLocked(Landroid/media/IMediaRouter2Manager;IILjava/lang/String;IZ)V
 HSPLcom/android/server/media/MediaRouter2ServiceImpl;->switchUser()V
+PLcom/android/server/media/MediaRouter2ServiceImpl;->transferClientRouteLocked(Landroid/media/IMediaRouter2Manager;Ljava/lang/String;Landroid/media/MediaRoute2Info;)V
+PLcom/android/server/media/MediaRouter2ServiceImpl;->transferToClientRoute(Landroid/media/IMediaRouter2Manager;Ljava/lang/String;Landroid/media/MediaRoute2Info;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl;->unregisterManager(Landroid/media/IMediaRouter2Manager;)V
 PLcom/android/server/media/MediaRouter2ServiceImpl;->unregisterManagerLocked(Landroid/media/IMediaRouter2Manager;Z)V
 HSPLcom/android/server/media/MediaRouterService$1$1;-><init>(Lcom/android/server/media/MediaRouterService$1;)V
@@ -19689,6 +20909,7 @@
 PLcom/android/server/media/MediaRouterService$UserHandler;->scheduleUpdateClientState()V
 PLcom/android/server/media/MediaRouterService$UserHandler;->selectRoute(Ljava/lang/String;)V
 HSPLcom/android/server/media/MediaRouterService$UserHandler;->start()V
+PLcom/android/server/media/MediaRouterService$UserHandler;->stop()V
 PLcom/android/server/media/MediaRouterService$UserHandler;->unselectRoute(Ljava/lang/String;)V
 PLcom/android/server/media/MediaRouterService$UserHandler;->unselectSelectedRoute()V
 HPLcom/android/server/media/MediaRouterService$UserHandler;->updateClientState()V
@@ -19716,6 +20937,7 @@
 HPLcom/android/server/media/MediaRouterService;->disposeClientLocked(Lcom/android/server/media/MediaRouterService$ClientRecord;Z)V
 HPLcom/android/server/media/MediaRouterService;->disposeUserIfNeededLocked(Lcom/android/server/media/MediaRouterService$UserRecord;)V
 PLcom/android/server/media/MediaRouterService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/media/MediaRouterService;->getActiveSessions(Landroid/media/IMediaRouter2Manager;)Ljava/util/List;
 HSPLcom/android/server/media/MediaRouterService;->getState(Landroid/media/IMediaRouterClient;)Landroid/media/MediaRouterClientState;
 HSPLcom/android/server/media/MediaRouterService;->getStateLocked(Landroid/media/IMediaRouterClient;)Landroid/media/MediaRouterClientState;
 HSPLcom/android/server/media/MediaRouterService;->initializeClientLocked(Lcom/android/server/media/MediaRouterService$ClientRecord;)V
@@ -19735,6 +20957,8 @@
 HSPLcom/android/server/media/MediaRouterService;->setSelectedRouteLocked(Landroid/media/IMediaRouterClient;Ljava/lang/String;Z)V
 HSPLcom/android/server/media/MediaRouterService;->switchUser()V
 HSPLcom/android/server/media/MediaRouterService;->systemRunning()V
+PLcom/android/server/media/MediaRouterService;->transferToClientRoute(Landroid/media/IMediaRouter2Manager;Ljava/lang/String;Landroid/media/MediaRoute2Info;)V
+PLcom/android/server/media/MediaRouterService;->unregisterClient(Landroid/media/IMediaRouterClient;)V
 HPLcom/android/server/media/MediaRouterService;->unregisterClientLocked(Landroid/media/IMediaRouterClient;Z)V
 PLcom/android/server/media/MediaRouterService;->unregisterManager(Landroid/media/IMediaRouter2Manager;)V
 HSPLcom/android/server/media/MediaRouterService;->validatePackageName(ILjava/lang/String;)Z
@@ -19752,7 +20976,7 @@
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getPlaybackState()Landroid/media/session/PlaybackState;
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getQueue()Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getQueueTitle()Ljava/lang/CharSequence;
-PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getRatingType()I
+HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getRatingType()I
 HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getVolumeAttributes()Landroid/media/session/MediaController$PlaybackInfo;
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->next(Ljava/lang/String;)V
 PLcom/android/server/media/MediaSessionRecord$ControllerStub;->pause(Ljava/lang/String;)V
@@ -19785,7 +21009,7 @@
 HSPLcom/android/server/media/MediaSessionRecord$SessionCb;-><init>(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/ISessionCallback;)V
 HSPLcom/android/server/media/MediaSessionRecord$SessionCb;->access$100(Lcom/android/server/media/MediaSessionRecord$SessionCb;)Landroid/media/session/ISessionCallback;
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->adjustVolume(Ljava/lang/String;IIZI)V
-PLcom/android/server/media/MediaSessionRecord$SessionCb;->createMediaButtonIntent(Landroid/view/KeyEvent;)Landroid/content/Intent;
+HPLcom/android/server/media/MediaSessionRecord$SessionCb;->createMediaButtonIntent(Landroid/view/KeyEvent;)Landroid/content/Intent;
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->fastForward(Ljava/lang/String;II)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->next(Ljava/lang/String;II)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->pause(Ljava/lang/String;II)V
@@ -19802,8 +21026,8 @@
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->sendCommand(Ljava/lang/String;IILjava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
 HPLcom/android/server/media/MediaSessionRecord$SessionCb;->sendCustomAction(Ljava/lang/String;IILjava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->sendMediaButton(Ljava/lang/String;IIZLandroid/view/KeyEvent;)Z
-PLcom/android/server/media/MediaSessionRecord$SessionCb;->sendMediaButton(Ljava/lang/String;IIZLandroid/view/KeyEvent;ILandroid/os/ResultReceiver;)Z
-PLcom/android/server/media/MediaSessionRecord$SessionCb;->setVolumeTo(Ljava/lang/String;III)V
+HPLcom/android/server/media/MediaSessionRecord$SessionCb;->sendMediaButton(Ljava/lang/String;IIZLandroid/view/KeyEvent;ILandroid/os/ResultReceiver;)Z
+HPLcom/android/server/media/MediaSessionRecord$SessionCb;->setVolumeTo(Ljava/lang/String;III)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->skipToTrack(Ljava/lang/String;IIJ)V
 PLcom/android/server/media/MediaSessionRecord$SessionCb;->stop(Ljava/lang/String;II)V
 HSPLcom/android/server/media/MediaSessionRecord$SessionStub;-><init>(Lcom/android/server/media/MediaSessionRecord;)V
@@ -19848,7 +21072,7 @@
 PLcom/android/server/media/MediaSessionRecord;->access$1700(Lcom/android/server/media/MediaSessionRecord;)Landroid/app/PendingIntent;
 HPLcom/android/server/media/MediaSessionRecord;->access$1700(Lcom/android/server/media/MediaSessionRecord;)Landroid/media/MediaMetadata;
 PLcom/android/server/media/MediaSessionRecord;->access$1702(Lcom/android/server/media/MediaSessionRecord;J)J
-PLcom/android/server/media/MediaSessionRecord;->access$1702(Lcom/android/server/media/MediaSessionRecord;Landroid/app/PendingIntent;)Landroid/app/PendingIntent;
+HPLcom/android/server/media/MediaSessionRecord;->access$1702(Lcom/android/server/media/MediaSessionRecord;Landroid/app/PendingIntent;)Landroid/app/PendingIntent;
 PLcom/android/server/media/MediaSessionRecord;->access$1702(Lcom/android/server/media/MediaSessionRecord;Landroid/media/MediaMetadata;)Landroid/media/MediaMetadata;
 HPLcom/android/server/media/MediaSessionRecord;->access$1800(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/Object;
 PLcom/android/server/media/MediaSessionRecord;->access$1802(Lcom/android/server/media/MediaSessionRecord;J)J
@@ -19899,7 +21123,7 @@
 PLcom/android/server/media/MediaSessionRecord;->access$2700(Lcom/android/server/media/MediaSessionRecord;)Landroid/os/Bundle;
 HPLcom/android/server/media/MediaSessionRecord;->access$2702(Lcom/android/server/media/MediaSessionRecord;I)I
 HSPLcom/android/server/media/MediaSessionRecord;->access$2702(Lcom/android/server/media/MediaSessionRecord;Landroid/media/AudioAttributes;)Landroid/media/AudioAttributes;
-PLcom/android/server/media/MediaSessionRecord;->access$2702(Lcom/android/server/media/MediaSessionRecord;Landroid/os/Bundle;)Landroid/os/Bundle;
+HPLcom/android/server/media/MediaSessionRecord;->access$2702(Lcom/android/server/media/MediaSessionRecord;Landroid/os/Bundle;)Landroid/os/Bundle;
 HSPLcom/android/server/media/MediaSessionRecord;->access$2702(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/media/MediaSessionRecord;->access$2800(Lcom/android/server/media/MediaSessionRecord;)I
 PLcom/android/server/media/MediaSessionRecord;->access$2802(Lcom/android/server/media/MediaSessionRecord;I)I
@@ -19961,7 +21185,7 @@
 PLcom/android/server/media/MediaSessionRecord;->access$4700(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord;->access$4800(Lcom/android/server/media/MediaSessionRecord;)V
 PLcom/android/server/media/MediaSessionRecord;->access$4800(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;Landroid/os/Bundle;)V
-PLcom/android/server/media/MediaSessionRecord;->access$4900(Lcom/android/server/media/MediaSessionRecord;)V
+HPLcom/android/server/media/MediaSessionRecord;->access$4900(Lcom/android/server/media/MediaSessionRecord;)V
 PLcom/android/server/media/MediaSessionRecord;->access$4900(Lcom/android/server/media/MediaSessionRecord;Ljava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionRecord;->access$500(Lcom/android/server/media/MediaSessionRecord;)I
 PLcom/android/server/media/MediaSessionRecord;->access$5000(Lcom/android/server/media/MediaSessionRecord;)V
@@ -20096,7 +21320,7 @@
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->acquireWakeLockLocked()V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->aquireWakeLockLocked()V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->onReceiveResult(ILandroid/os/Bundle;)V
-PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
+HPLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;->releaseWakeLockLocked()V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$MediaKeyListenerResultReceiver;-><init>(Lcom/android/server/media/MediaSessionService$SessionManagerImpl;Ljava/lang/String;IIZLandroid/view/KeyEvent;Z)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl$MediaKeyListenerResultReceiver;-><init>(Lcom/android/server/media/MediaSessionService$SessionManagerImpl;Ljava/lang/String;IIZLandroid/view/KeyEvent;ZLcom/android/server/media/MediaSessionService$1;)V
@@ -20117,7 +21341,7 @@
 HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dispatchVolumeKeyEventToSessionAsSystemService(Ljava/lang/String;Ljava/lang/String;Landroid/media/session/MediaSession$Token;Landroid/view/KeyEvent;)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->getSessions(Landroid/content/ComponentName;I)Ljava/util/List;
-PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->handleVoiceKeyEventLocked(Ljava/lang/String;IIZLandroid/view/KeyEvent;Z)V
+HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->handleVoiceKeyEventLocked(Ljava/lang/String;IIZLandroid/view/KeyEvent;Z)V
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->hasMediaControlPermission(II)Z
 PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->isGlobalPriorityActive()Z
 HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->isUserSetupComplete()Z
@@ -20153,7 +21377,7 @@
 PLcom/android/server/media/MediaSessionService;->access$1200(Lcom/android/server/media/MediaSessionService;I)Ljava/lang/String;
 PLcom/android/server/media/MediaSessionService;->access$1300(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$FullUserRecord;
 HSPLcom/android/server/media/MediaSessionService;->access$1300(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$MessageHandler;
-PLcom/android/server/media/MediaSessionService;->access$1300(Lcom/android/server/media/MediaSessionService;)Ljava/lang/Object;
+HSPLcom/android/server/media/MediaSessionService;->access$1300(Lcom/android/server/media/MediaSessionService;)Ljava/lang/Object;
 PLcom/android/server/media/MediaSessionService;->access$1400(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$FullUserRecord;
 HSPLcom/android/server/media/MediaSessionService;->access$1400(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$MessageHandler;
 PLcom/android/server/media/MediaSessionService;->access$1400(Lcom/android/server/media/MediaSessionService;)Z
@@ -20185,7 +21409,7 @@
 PLcom/android/server/media/MediaSessionService;->access$2600(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;)I
 PLcom/android/server/media/MediaSessionService;->access$2700(Lcom/android/server/media/MediaSessionService;I)Ljava/util/List;
 HSPLcom/android/server/media/MediaSessionService;->access$2700(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;)I
-PLcom/android/server/media/MediaSessionService;->access$2800(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;)I
+HSPLcom/android/server/media/MediaSessionService;->access$2800(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;)I
 PLcom/android/server/media/MediaSessionService;->access$3000(Lcom/android/server/media/MediaSessionService;I)Lcom/android/server/media/MediaSessionService$FullUserRecord;
 PLcom/android/server/media/MediaSessionService;->access$3000(Lcom/android/server/media/MediaSessionService;Landroid/media/session/MediaSession$Token;)Lcom/android/server/media/MediaSessionRecord;
 PLcom/android/server/media/MediaSessionService;->access$3100(Lcom/android/server/media/MediaSessionService;Landroid/media/session/MediaSession$Token;)Lcom/android/server/media/MediaSessionRecord;
@@ -20202,12 +21426,14 @@
 PLcom/android/server/media/MediaSessionService;->access$4200(Lcom/android/server/media/MediaSessionService;)Landroid/media/AudioManagerInternal;
 PLcom/android/server/media/MediaSessionService;->access$4200(Lcom/android/server/media/MediaSessionService;)Landroid/util/SparseArray;
 HSPLcom/android/server/media/MediaSessionService;->access$4200(Lcom/android/server/media/MediaSessionService;Landroid/content/ComponentName;III)V
-HPLcom/android/server/media/MediaSessionService;->access$4300(Lcom/android/server/media/MediaSessionService;Landroid/content/ComponentName;III)V
+HSPLcom/android/server/media/MediaSessionService;->access$4300(Lcom/android/server/media/MediaSessionService;Landroid/content/ComponentName;III)V
 PLcom/android/server/media/MediaSessionService;->access$4400(Lcom/android/server/media/MediaSessionService;)Landroid/media/AudioManagerInternal;
+PLcom/android/server/media/MediaSessionService;->access$4400(Lcom/android/server/media/MediaSessionService;Landroid/content/ComponentName;III)V
 PLcom/android/server/media/MediaSessionService;->access$4500(Lcom/android/server/media/MediaSessionService;)Landroid/media/AudioManagerInternal;
 PLcom/android/server/media/MediaSessionService;->access$4700(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaKeyDispatcher;
 PLcom/android/server/media/MediaSessionService;->access$4900(Lcom/android/server/media/MediaSessionService;)Landroid/app/KeyguardManager;
 PLcom/android/server/media/MediaSessionService;->access$5000(Lcom/android/server/media/MediaSessionService;)Landroid/os/PowerManager$WakeLock;
+PLcom/android/server/media/MediaSessionService;->access$5100(Lcom/android/server/media/MediaSessionService;)Landroid/os/PowerManager$WakeLock;
 PLcom/android/server/media/MediaSessionService;->access$5100(Lcom/android/server/media/MediaSessionService;)Z
 PLcom/android/server/media/MediaSessionService;->access$5200(Lcom/android/server/media/MediaSessionService;)Landroid/os/PowerManager$WakeLock;
 PLcom/android/server/media/MediaSessionService;->access$5200(Lcom/android/server/media/MediaSessionService;)Z
@@ -20217,6 +21443,7 @@
 HSPLcom/android/server/media/MediaSessionService;->access$5500(Lcom/android/server/media/MediaSessionService;I)V
 PLcom/android/server/media/MediaSessionService;->access$5600(Lcom/android/server/media/MediaSessionService;I)V
 HSPLcom/android/server/media/MediaSessionService;->access$5700(Lcom/android/server/media/MediaSessionService;I)V
+PLcom/android/server/media/MediaSessionService;->access$5800(Lcom/android/server/media/MediaSessionService;I)V
 HPLcom/android/server/media/MediaSessionService;->access$5900(Lcom/android/server/media/MediaSessionService;I)V
 HSPLcom/android/server/media/MediaSessionService;->access$600(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/AudioPlayerStateMonitor;
 HSPLcom/android/server/media/MediaSessionService;->access$700(Lcom/android/server/media/MediaSessionService;)Landroid/content/ContentResolver;
@@ -20244,6 +21471,8 @@
 PLcom/android/server/media/MediaSessionService;->getMediaSessionRecordLocked(Landroid/media/session/MediaSession$Token;)Lcom/android/server/media/MediaSessionRecord;
 PLcom/android/server/media/MediaSessionService;->hasMediaControlPermission(II)Z
 HSPLcom/android/server/media/MediaSessionService;->hasStatusBarServicePermission(II)Z
+PLcom/android/server/media/MediaSessionService;->instantiateCustomDispatcher(Ljava/lang/String;)V
+PLcom/android/server/media/MediaSessionService;->instantiateCustomProvider(Ljava/lang/String;)V
 HPLcom/android/server/media/MediaSessionService;->isEnabledNotificationListener(Landroid/content/ComponentName;II)Z
 HSPLcom/android/server/media/MediaSessionService;->isGlobalPriorityActiveLocked()Z
 HPLcom/android/server/media/MediaSessionService;->lambda$onStart$0$MediaSessionService(Landroid/media/AudioPlaybackConfiguration;Z)V
@@ -20259,6 +21488,7 @@
 HSPLcom/android/server/media/MediaSessionService;->onStart()V
 HSPLcom/android/server/media/MediaSessionService;->onStartUser(I)V
 PLcom/android/server/media/MediaSessionService;->onStopUser(I)V
+PLcom/android/server/media/MediaSessionService;->onSwitchUser(I)V
 HSPLcom/android/server/media/MediaSessionService;->pushRemoteVolumeUpdateLocked(I)V
 HSPLcom/android/server/media/MediaSessionService;->pushSession1Changed(I)V
 HPLcom/android/server/media/MediaSessionService;->pushSessionsChanged(I)V
@@ -20336,6 +21566,7 @@
 PLcom/android/server/media/RemoteDisplayProviderProxy;->setSelectedDisplay(Ljava/lang/String;)V
 PLcom/android/server/media/RemoteDisplayProviderProxy;->shouldBind()Z
 HPLcom/android/server/media/RemoteDisplayProviderProxy;->start()V
+PLcom/android/server/media/RemoteDisplayProviderProxy;->stop()V
 PLcom/android/server/media/RemoteDisplayProviderProxy;->unbind()V
 PLcom/android/server/media/RemoteDisplayProviderProxy;->updateBinding()V
 HSPLcom/android/server/media/RemoteDisplayProviderWatcher$1;-><init>(Lcom/android/server/media/RemoteDisplayProviderWatcher;)V
@@ -20350,11 +21581,13 @@
 HPLcom/android/server/media/RemoteDisplayProviderWatcher;->findProvider(Ljava/lang/String;Ljava/lang/String;)I
 HSPLcom/android/server/media/RemoteDisplayProviderWatcher;->scanPackages()V
 HSPLcom/android/server/media/RemoteDisplayProviderWatcher;->start()V
+PLcom/android/server/media/RemoteDisplayProviderWatcher;->stop()V
 HPLcom/android/server/media/RemoteDisplayProviderWatcher;->verifyServiceTrusted(Landroid/content/pm/ServiceInfo;)Z
 PLcom/android/server/media/SystemMediaRoute2Provider$1$1;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider$1;Landroid/media/AudioRoutesInfo;)V
 PLcom/android/server/media/SystemMediaRoute2Provider$1$1;->run()V
 PLcom/android/server/media/SystemMediaRoute2Provider$1;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;)V
 PLcom/android/server/media/SystemMediaRoute2Provider$1;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V
+PLcom/android/server/media/SystemMediaRoute2Provider$1;->lambda$dispatchAudioRoutesChanged$0$SystemMediaRoute2Provider$1(Landroid/media/AudioRoutesInfo;)V
 PLcom/android/server/media/SystemMediaRoute2Provider$VolumeChangeReceiver;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;)V
 PLcom/android/server/media/SystemMediaRoute2Provider$VolumeChangeReceiver;-><init>(Lcom/android/server/media/SystemMediaRoute2Provider;Lcom/android/server/media/SystemMediaRoute2Provider$1;)V
 HPLcom/android/server/media/SystemMediaRoute2Provider$VolumeChangeReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -20363,16 +21596,24 @@
 PLcom/android/server/media/SystemMediaRoute2Provider;->access$000(Lcom/android/server/media/SystemMediaRoute2Provider;)Landroid/os/Handler;
 PLcom/android/server/media/SystemMediaRoute2Provider;->access$000(Lcom/android/server/media/SystemMediaRoute2Provider;Landroid/media/AudioRoutesInfo;)V
 PLcom/android/server/media/SystemMediaRoute2Provider;->access$100(Lcom/android/server/media/SystemMediaRoute2Provider;)Landroid/os/Handler;
+PLcom/android/server/media/SystemMediaRoute2Provider;->access$100(Lcom/android/server/media/SystemMediaRoute2Provider;Landroid/media/AudioRoutesInfo;)V
 PLcom/android/server/media/SystemMediaRoute2Provider;->access$300(Lcom/android/server/media/SystemMediaRoute2Provider;)Lcom/android/server/media/BluetoothRouteProvider;
+PLcom/android/server/media/SystemMediaRoute2Provider;->access$300(Lcom/android/server/media/SystemMediaRoute2Provider;)Ljava/lang/String;
+PLcom/android/server/media/SystemMediaRoute2Provider;->access$400(Lcom/android/server/media/SystemMediaRoute2Provider;)Lcom/android/server/media/BluetoothRouteProvider;
 PLcom/android/server/media/SystemMediaRoute2Provider;->initializeDefaultRoute()V
 PLcom/android/server/media/SystemMediaRoute2Provider;->initializeRoutes()V
 PLcom/android/server/media/SystemMediaRoute2Provider;->initializeSessionInfo()V
 PLcom/android/server/media/SystemMediaRoute2Provider;->lambda$initializeSessionInfo$1$SystemMediaRoute2Provider()V
 PLcom/android/server/media/SystemMediaRoute2Provider;->lambda$new$0$SystemMediaRoute2Provider(Ljava/util/List;)V
+PLcom/android/server/media/SystemMediaRoute2Provider;->lambda$new$1$SystemMediaRoute2Provider()V
 PLcom/android/server/media/SystemMediaRoute2Provider;->notifySessionInfoUpdated()V
+PLcom/android/server/media/SystemMediaRoute2Provider;->publishProviderState()V
 HPLcom/android/server/media/SystemMediaRoute2Provider;->publishRoutes()V
+PLcom/android/server/media/SystemMediaRoute2Provider;->transferToRoute(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/media/SystemMediaRoute2Provider;->updateAudioRoutes(Landroid/media/AudioRoutesInfo;)V
-PLcom/android/server/media/SystemMediaRoute2Provider;->updateSessionInfosIfNeededLocked()Z
+PLcom/android/server/media/SystemMediaRoute2Provider;->updateDefaultRoute(Landroid/media/AudioRoutesInfo;)V
+HPLcom/android/server/media/SystemMediaRoute2Provider;->updateProviderState()V
+HPLcom/android/server/media/SystemMediaRoute2Provider;->updateSessionInfosIfNeededLocked()Z
 HSPLcom/android/server/media/projection/MediaProjectionManagerService$1;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;)V
 HSPLcom/android/server/media/projection/MediaProjectionManagerService$1;->onForegroundActivitiesChanged(IIZ)V
 HPLcom/android/server/media/projection/MediaProjectionManagerService$1;->onForegroundServicesChanged(III)V
@@ -20438,6 +21679,7 @@
 PLcom/android/server/media/projection/MediaProjectionManagerService;->linkDeathRecipientLocked(Landroid/media/projection/IMediaProjectionWatcherCallback;Landroid/os/IBinder$DeathRecipient;)V
 HPLcom/android/server/media/projection/MediaProjectionManagerService;->monitor()V
 HSPLcom/android/server/media/projection/MediaProjectionManagerService;->onStart()V
+PLcom/android/server/media/projection/MediaProjectionManagerService;->onSwitchUser(I)V
 PLcom/android/server/media/projection/MediaProjectionManagerService;->removeCallback(Landroid/media/projection/IMediaProjectionWatcherCallback;)V
 PLcom/android/server/media/projection/MediaProjectionManagerService;->startProjectionLocked(Lcom/android/server/media/projection/MediaProjectionManagerService$MediaProjection;)V
 PLcom/android/server/media/projection/MediaProjectionManagerService;->stopProjectionLocked(Lcom/android/server/media/projection/MediaProjectionManagerService$MediaProjection;)V
@@ -20447,6 +21689,8 @@
 HPLcom/android/server/midi/MidiService$1;->onPackageModified(Ljava/lang/String;)V
 PLcom/android/server/midi/MidiService$1;->onPackageRemoved(Ljava/lang/String;I)V
 PLcom/android/server/midi/MidiService$Device;-><init>(Lcom/android/server/midi/MidiService;Landroid/media/midi/IMidiDeviceServer;Landroid/media/midi/MidiDeviceInfo;Landroid/content/pm/ServiceInfo;I)V
+PLcom/android/server/midi/MidiService$Device;->getDeviceInfo()Landroid/media/midi/MidiDeviceInfo;
+PLcom/android/server/midi/MidiService$Device;->getDeviceServer()Landroid/media/midi/IMidiDeviceServer;
 PLcom/android/server/midi/MidiService$Device;->getPackageName()Ljava/lang/String;
 PLcom/android/server/midi/MidiService$Device;->setDeviceServer(Landroid/media/midi/IMidiDeviceServer;)V
 PLcom/android/server/midi/MidiService$Device;->toString()Ljava/lang/String;
@@ -20463,13 +21707,20 @@
 HPLcom/android/server/midi/MidiService;->addPackageDeviceServers(Ljava/lang/String;)V
 PLcom/android/server/midi/MidiService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/midi/MidiService;->onUnlockUser()V
+PLcom/android/server/midi/MidiService;->removeDeviceLocked(Lcom/android/server/midi/MidiService$Device;)V
 HPLcom/android/server/midi/MidiService;->removePackageDeviceServers(Ljava/lang/String;)V
 HSPLcom/android/server/net/-$$Lambda$NetworkPolicyManagerService$HDTUqowtgL-W_V0Kq6psXLWC9ws;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/util/concurrent/CountDownLatch;)V
 HSPLcom/android/server/net/-$$Lambda$NetworkPolicyManagerService$HDTUqowtgL-W_V0Kq6psXLWC9ws;->run()V
+PLcom/android/server/net/-$$Lambda$NetworkStatsService$-IJG-2djYyEsmGNuCKyh0LuHG28;-><init>(Lcom/android/internal/util/IndentingPrintWriter;Z)V
+PLcom/android/server/net/-$$Lambda$NetworkStatsService$-IJG-2djYyEsmGNuCKyh0LuHG28;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/net/-$$Lambda$NetworkStatsService$InNd0bxX6ObmdmLP-_WGePLtUfE;-><init>(Landroid/net/NetworkStats;I)V
+HPLcom/android/server/net/-$$Lambda$NetworkStatsService$InNd0bxX6ObmdmLP-_WGePLtUfE;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/net/-$$Lambda$NetworkStatsService$KVH4Y9nH53_gEfrhunDFp_O6ExY;-><init>(Lcom/android/server/net/NetworkStatsService;)V
 HPLcom/android/server/net/-$$Lambda$NetworkStatsService$KVH4Y9nH53_gEfrhunDFp_O6ExY;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/net/-$$Lambda$NetworkStatsService$NetworkStatsManagerInternalImpl$5TwpV7cRVx_8Ch3sTJ1XxcGYaFo;-><init>(Ljava/lang/String;J)V
 HPLcom/android/server/net/-$$Lambda$NetworkStatsService$NetworkStatsManagerInternalImpl$5TwpV7cRVx_8Ch3sTJ1XxcGYaFo;->accept(Ljava/lang/Object;)V
+PLcom/android/server/net/-$$Lambda$NetworkStatsService$NetworkStatsManagerInternalImpl$MWLBRMSsUTWVuMm3yJqH7bc-ZoI;-><init>(Ljava/lang/String;J)V
+HPLcom/android/server/net/-$$Lambda$NetworkStatsService$NetworkStatsManagerInternalImpl$MWLBRMSsUTWVuMm3yJqH7bc-ZoI;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/net/-$$Lambda$NetworkStatsService$rLCnfQluyJtbXZ2vSn6SQAdNPMc;-><init>(Landroid/net/NetworkStats;I)V
 HPLcom/android/server/net/-$$Lambda$NetworkStatsService$rLCnfQluyJtbXZ2vSn6SQAdNPMc;->accept(Ljava/lang/Object;)V
 PLcom/android/server/net/-$$Lambda$NetworkStatsService$xfTbcb80CcmFJlvul1xYQmewxlg;-><clinit>()V
@@ -20614,38 +21865,64 @@
 PLcom/android/server/net/NetworkPolicyManagerService;->access$1000(Lcom/android/server/net/NetworkPolicyManagerService;Z)V
 PLcom/android/server/net/NetworkPolicyManagerService;->access$1100(Lcom/android/server/net/NetworkPolicyManagerService;)V
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$1200(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/content/Context;
+PLcom/android/server/net/NetworkPolicyManagerService;->access$1200(Lcom/android/server/net/NetworkPolicyManagerService;)V
+PLcom/android/server/net/NetworkPolicyManagerService;->access$1300(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/content/Context;
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$1300(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$1400(Landroid/util/SparseBooleanArray;ZLandroid/net/Network;)Z
+PLcom/android/server/net/NetworkPolicyManagerService;->access$1400(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
+PLcom/android/server/net/NetworkPolicyManagerService;->access$1500(Landroid/util/SparseBooleanArray;ZLandroid/net/Network;)Z
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$1500(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
+PLcom/android/server/net/NetworkPolicyManagerService;->access$1600(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$1600(Lcom/android/server/net/NetworkPolicyManagerService;)Lcom/android/server/net/NetworkPolicyLogger;
 PLcom/android/server/net/NetworkPolicyManagerService;->access$1700(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseArray;
+PLcom/android/server/net/NetworkPolicyManagerService;->access$1700(Lcom/android/server/net/NetworkPolicyManagerService;)Lcom/android/server/net/NetworkPolicyLogger;
+PLcom/android/server/net/NetworkPolicyManagerService;->access$1800(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseArray;
 PLcom/android/server/net/NetworkPolicyManagerService;->access$1800(Lcom/android/server/net/NetworkPolicyManagerService;ILjava/lang/String;)Z
 PLcom/android/server/net/NetworkPolicyManagerService;->access$1900(Lcom/android/server/net/NetworkPolicyManagerService;ILjava/lang/String;)Z
 PLcom/android/server/net/NetworkPolicyManagerService;->access$200(Lcom/android/server/net/NetworkPolicyManagerService;)V
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$2000(Lcom/android/server/net/NetworkPolicyManagerService;I)V
+PLcom/android/server/net/NetworkPolicyManagerService;->access$2000(Lcom/android/server/net/NetworkPolicyManagerService;ILjava/lang/String;)Z
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$2100(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/os/RemoteCallbackList;
+HPLcom/android/server/net/NetworkPolicyManagerService;->access$2100(Lcom/android/server/net/NetworkPolicyManagerService;I)V
+PLcom/android/server/net/NetworkPolicyManagerService;->access$2200(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/os/RemoteCallbackList;
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$2200(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;II)V
+PLcom/android/server/net/NetworkPolicyManagerService;->access$2300(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;II)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$2300(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;[Ljava/lang/String;)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$2400(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/ArraySet;
 PLcom/android/server/net/NetworkPolicyManagerService;->access$2400(Lcom/android/server/net/NetworkPolicyManagerService;)Lcom/android/server/net/NetworkStatsManagerInternal;
+PLcom/android/server/net/NetworkPolicyManagerService;->access$2400(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;[Ljava/lang/String;)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$2500(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/ArraySet;
 PLcom/android/server/net/NetworkPolicyManagerService;->access$2500(Lcom/android/server/net/NetworkPolicyManagerService;)Lcom/android/server/net/NetworkStatsManagerInternal;
+PLcom/android/server/net/NetworkPolicyManagerService;->access$2600(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/ArraySet;
 PLcom/android/server/net/NetworkPolicyManagerService;->access$2600(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;Z)V
+PLcom/android/server/net/NetworkPolicyManagerService;->access$2700(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;Z)V
 PLcom/android/server/net/NetworkPolicyManagerService;->access$2900(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/lang/String;)V
+PLcom/android/server/net/NetworkPolicyManagerService;->access$3000(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/lang/String;)V
 PLcom/android/server/net/NetworkPolicyManagerService;->access$3000(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/lang/String;J)V
 PLcom/android/server/net/NetworkPolicyManagerService;->access$3100(Lcom/android/server/net/NetworkPolicyManagerService;I)V
+PLcom/android/server/net/NetworkPolicyManagerService;->access$3100(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/lang/String;J)V
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$3300(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/util/Set;I)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$3400(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/NetworkTemplate;Z)V
+PLcom/android/server/net/NetworkPolicyManagerService;->access$3400(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/util/Set;I)V
 PLcom/android/server/net/NetworkPolicyManagerService;->access$3500(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;I[Landroid/telephony/SubscriptionPlan;)V
+PLcom/android/server/net/NetworkPolicyManagerService;->access$3500(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/NetworkTemplate;Z)V
 PLcom/android/server/net/NetworkPolicyManagerService;->access$3600(II)Z
+PLcom/android/server/net/NetworkPolicyManagerService;->access$3700(II)Z
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$3700(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
+PLcom/android/server/net/NetworkPolicyManagerService;->access$3800(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$3800(Lcom/android/server/net/NetworkPolicyManagerService;I)V
+PLcom/android/server/net/NetworkPolicyManagerService;->access$3900(Lcom/android/server/net/NetworkPolicyManagerService;I)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$3900(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/Network;)I
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$400(Lcom/android/server/net/NetworkPolicyManagerService;)V
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$4000(Lcom/android/server/net/NetworkPolicyManagerService;I)Landroid/telephony/SubscriptionPlan;
+PLcom/android/server/net/NetworkPolicyManagerService;->access$4000(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/Network;)I
+PLcom/android/server/net/NetworkPolicyManagerService;->access$4100(Lcom/android/server/net/NetworkPolicyManagerService;I)Landroid/telephony/SubscriptionPlan;
 HPLcom/android/server/net/NetworkPolicyManagerService;->access$4100(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/NetworkTemplate;)I
 HSPLcom/android/server/net/NetworkPolicyManagerService;->access$4200(Lcom/android/server/net/NetworkPolicyManagerService;)Ljava/util/concurrent/CountDownLatch;
+PLcom/android/server/net/NetworkPolicyManagerService;->access$4200(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/NetworkTemplate;)I
+PLcom/android/server/net/NetworkPolicyManagerService;->access$4300(Lcom/android/server/net/NetworkPolicyManagerService;)Ljava/util/concurrent/CountDownLatch;
 PLcom/android/server/net/NetworkPolicyManagerService;->access$500()Z
+PLcom/android/server/net/NetworkPolicyManagerService;->access$600()Z
 PLcom/android/server/net/NetworkPolicyManagerService;->access$600(Lcom/android/server/net/NetworkPolicyManagerService;I)V
 PLcom/android/server/net/NetworkPolicyManagerService;->access$700(Lcom/android/server/net/NetworkPolicyManagerService;I)V
 PLcom/android/server/net/NetworkPolicyManagerService;->access$800(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseArray;
@@ -20926,7 +22203,7 @@
 HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getXtPersistBytes(J)J
 HSPLcom/android/server/net/NetworkStatsService$DropBoxNonMonotonicObserver;-><init>(Lcom/android/server/net/NetworkStatsService;)V
 HSPLcom/android/server/net/NetworkStatsService$DropBoxNonMonotonicObserver;-><init>(Lcom/android/server/net/NetworkStatsService;Lcom/android/server/net/NetworkStatsService$1;)V
-PLcom/android/server/net/NetworkStatsService$DropBoxNonMonotonicObserver;->foundNonMonotonic(Landroid/net/NetworkStats;ILandroid/net/NetworkStats;ILjava/lang/Object;)V
+HPLcom/android/server/net/NetworkStatsService$DropBoxNonMonotonicObserver;->foundNonMonotonic(Landroid/net/NetworkStats;ILandroid/net/NetworkStats;ILjava/lang/Object;)V
 HPLcom/android/server/net/NetworkStatsService$DropBoxNonMonotonicObserver;->foundNonMonotonic(Landroid/net/NetworkStats;ILandroid/net/NetworkStats;ILjava/lang/String;)V
 HSPLcom/android/server/net/NetworkStatsService$HandlerCallback;-><init>(Lcom/android/server/net/NetworkStatsService;)V
 HPLcom/android/server/net/NetworkStatsService$HandlerCallback;->handleMessage(Landroid/os/Message;)Z
@@ -20936,9 +22213,13 @@
 PLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;->advisePersistThreshold(J)V
 HPLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;->getNetworkTotalBytes(Landroid/net/NetworkTemplate;JJ)J
 HPLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;->lambda$setStatsProviderLimit$0(Ljava/lang/String;JLcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;)V
+HPLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;->lambda$setStatsProviderLimitAsync$0(Ljava/lang/String;JLcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;)V
 HPLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;->setStatsProviderLimit(Ljava/lang/String;J)V
+HPLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;->setStatsProviderLimitAsync(Ljava/lang/String;J)V
 HSPLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;->setUidForeground(IZ)V
 HSPLcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;-><init>(Ljava/lang/String;Landroid/net/netstats/provider/INetworkStatsProvider;Landroid/net/INetworkManagementEventObserver;Landroid/os/RemoteCallbackList;)V
+PLcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;-><init>(Ljava/lang/String;Landroid/net/netstats/provider/INetworkStatsProvider;Ljava/util/concurrent/Semaphore;Landroid/net/INetworkManagementEventObserver;Landroid/os/RemoteCallbackList;)V
+PLcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;->binderDied()V
 HPLcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;->getCachedStats(I)Landroid/net/NetworkStats;
 HPLcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;->onStatsUpdated(ILandroid/net/NetworkStats;Landroid/net/NetworkStats;)V
 HSPLcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;-><init>(JJJ)V
@@ -20996,7 +22277,9 @@
 HPLcom/android/server/net/NetworkStatsService;->internalGetSummaryForNetwork(Landroid/net/NetworkTemplate;IJJII)Landroid/net/NetworkStats;
 HSPLcom/android/server/net/NetworkStatsService;->invokeForAllStatsProviderCallbacks(Lcom/android/server/net/NetworkStatsService$ThrowingConsumer;)V
 HPLcom/android/server/net/NetworkStatsService;->isRateLimitedForPoll(I)Z
+PLcom/android/server/net/NetworkStatsService;->lambda$dump$2(Lcom/android/internal/util/IndentingPrintWriter;ZLcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;)V
 HPLcom/android/server/net/NetworkStatsService;->lambda$getNetworkStatsFromProviders$2(Landroid/net/NetworkStats;ILcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;)V
+HPLcom/android/server/net/NetworkStatsService;->lambda$getNetworkStatsFromProviders$3(Landroid/net/NetworkStats;ILcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;)V
 HPLcom/android/server/net/NetworkStatsService;->lambda$performPollLocked$1(Lcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;)V
 HPLcom/android/server/net/NetworkStatsService;->lambda$registerGlobalAlert$0$NetworkStatsService(Lcom/android/server/net/NetworkStatsService$NetworkStatsProviderCallbackImpl;)V
 HSPLcom/android/server/net/NetworkStatsService;->maybeUpgradeLegacyStatsLocked()V
@@ -21111,13 +22394,16 @@
 HSPLcom/android/server/net/watchlist/WatchlistSettings;->getSystemWatchlistFile()Ljava/io/File;
 HSPLcom/android/server/net/watchlist/WatchlistSettings;->parseSecretKey(Lorg/xmlpull/v1/XmlPullParser;)[B
 HSPLcom/android/server/net/watchlist/WatchlistSettings;->reloadSettings()V
+PLcom/android/server/notification/-$$Lambda$NotificationHistoryDatabase$DOpPLk6FC4M8AMJ1FHTPtwlmVmQ;-><clinit>()V
+PLcom/android/server/notification/-$$Lambda$NotificationHistoryDatabase$DOpPLk6FC4M8AMJ1FHTPtwlmVmQ;-><init>()V
+PLcom/android/server/notification/-$$Lambda$NotificationHistoryDatabase$DOpPLk6FC4M8AMJ1FHTPtwlmVmQ;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$10$BRIIoO5T43uig1Sv3P_yA2lc3LA;-><init>(Lcom/android/server/notification/NotificationManagerService$10;Ljava/lang/String;)V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$10$BRIIoO5T43uig1Sv3P_yA2lc3LA;->run()V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$11$JotEN8cxCghuwRUNQKNwudTtDmM;-><init>(Lcom/android/server/notification/NotificationManagerService$11;Ljava/lang/String;)V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$11$JotEN8cxCghuwRUNQKNwudTtDmM;->run()V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$11$zVdn9N0ybkMxz8xM8Qa1AXowlic;-><init>(Lcom/android/server/notification/NotificationManagerService$11;Ljava/lang/String;II)V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$11$zVdn9N0ybkMxz8xM8Qa1AXowlic;->run()V
-PLcom/android/server/notification/-$$Lambda$NotificationManagerService$12$-k8J5tgk6UDzy6Im2nYiWZgVEDI;-><init>(Lcom/android/server/notification/NotificationManagerService$12;Ljava/lang/String;II)V
+HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$12$-k8J5tgk6UDzy6Im2nYiWZgVEDI;-><init>(Lcom/android/server/notification/NotificationManagerService$12;Ljava/lang/String;II)V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$12$-k8J5tgk6UDzy6Im2nYiWZgVEDI;->run()V
 HSPLcom/android/server/notification/-$$Lambda$NotificationManagerService$12gEiRp5yhg_vLn2NsMtnAkm3GI;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$12gEiRp5yhg_vLn2NsMtnAkm3GI;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
@@ -21131,9 +22417,13 @@
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$16$zTgrLv-fwhUBKBfo6G4cZaGAhWs;->apply(I)Z
 HSPLcom/android/server/notification/-$$Lambda$NotificationManagerService$1IFJYiXNBcQVsabIke0xY_TgCZI;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/os/VibrationEffect;)V
 HSPLcom/android/server/notification/-$$Lambda$NotificationManagerService$1IFJYiXNBcQVsabIke0xY_TgCZI;->run()V
+HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$BDavS_Sg4m_dKO3ZgtuCsFeqqms;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/os/VibrationEffect;)V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$BDavS_Sg4m_dKO3ZgtuCsFeqqms;->run()V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$CancelNotificationRunnable$1i8BOFS2Ap_BvazcwqssFxW6U1U;-><clinit>()V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$CancelNotificationRunnable$1i8BOFS2Ap_BvazcwqssFxW6U1U;-><init>()V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$CancelNotificationRunnable$1i8BOFS2Ap_BvazcwqssFxW6U1U;->apply(I)Z
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NFdAeB-4Fj_ZP4GXkIVrEH_Cxj8;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NFdAeB-4Fj_ZP4GXkIVrEH_Cxj8;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$2uJN0X0VDgKmWRoJqYsux0bhlYo;-><init>(Ljava/util/function/BiConsumer;Landroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
 HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$2uJN0X0VDgKmWRoJqYsux0bhlYo;->run()V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$3ktx5hfF9rabi25qaQLZ-YvqPO4;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Ljava/lang/String;Ljava/lang/CharSequence;Z)V
@@ -21170,10 +22460,15 @@
 HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$Srt8NNqA1xJUAp_7nDU6CBZJm_0;->run()V
 HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$T5BM1IF40aMGtqZZRr6BWGjzNxA;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
 HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$T5BM1IF40aMGtqZZRr6BWGjzNxA;->run()V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$OZL_lzotNQk7U4Yu1gYgeIoj6do;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/content/pm/UserInfo;)V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$OZL_lzotNQk7U4Yu1gYgeIoj6do;->run()V
 HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$PostNotificationRunnable$9JuPmiaA-c5lGdegev6EaTigwWc;-><init>(Lcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/StatusBarNotification;)V
 HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$PostNotificationRunnable$9JuPmiaA-c5lGdegev6EaTigwWc;->run()V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$msGTh8UV2euOI6xhjY-rx_tZTLM;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/content/pm/UserInfo;)V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$msGTh8UV2euOI6xhjY-rx_tZTLM;->run()V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$oBqbud98Vzd9hmZYK-pWIY4cBpI;-><init>(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/CharSequence;)V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$oBqbud98Vzd9hmZYK-pWIY4cBpI;->runOrThrow()V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$pydsjOZodJQYqLnk-bBKjwKfMTw;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
 HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$qSGWKI1fXQ1cTJ2fD072f_33txY;-><init>(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/CharSequence;)V
 HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$qSGWKI1fXQ1cTJ2fD072f_33txY;->runOrThrow()V
 PLcom/android/server/notification/-$$Lambda$NotificationManagerService$qbzDjihCkTumQH-EnAW4i5wobvM;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/content/pm/UserInfo;)V
@@ -21181,7 +22476,9 @@
 HSPLcom/android/server/notification/-$$Lambda$NotificationRecord$XgkrZGcjOHPHem34oE9qLGy3siA;-><init>(Lcom/android/server/notification/NotificationRecord;)V
 HSPLcom/android/server/notification/-$$Lambda$NotificationRecord$XgkrZGcjOHPHem34oE9qLGy3siA;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/notification/-$$Lambda$SnoozeHelper$333G5Hgba3G7RU9lYp0HmgKJBvA;-><init>(JLorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/notification/-$$Lambda$SnoozeHelper$333G5Hgba3G7RU9lYp0HmgKJBvA;->insert(Ljava/lang/Object;)V
+HPLcom/android/server/notification/-$$Lambda$SnoozeHelper$333G5Hgba3G7RU9lYp0HmgKJBvA;->insert(Ljava/lang/Object;)V
+PLcom/android/server/notification/-$$Lambda$SnoozeHelper$C_0X0DORXKfskVjWiTfpnyCI82U;-><init>(Lorg/xmlpull/v1/XmlSerializer;)V
+PLcom/android/server/notification/-$$Lambda$SnoozeHelper$j9CMOic9PGs_JNf8sQeWp_WInBo;-><init>(JLorg/xmlpull/v1/XmlSerializer;)V
 HSPLcom/android/server/notification/-$$Lambda$SnoozeHelper$uY_yjjODxoDQVadkBTGNFqh7pco;-><init>(Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLcom/android/server/notification/-$$Lambda$V4J7df5A6vhSIuw7Ym9xgkfahto;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
 HSPLcom/android/server/notification/-$$Lambda$V4J7df5A6vhSIuw7Ym9xgkfahto;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
@@ -21370,6 +22667,7 @@
 HSPLcom/android/server/notification/ManagedServices;->getBindFlags()I
 HSPLcom/android/server/notification/ManagedServices;->getCaption()Ljava/lang/String;
 HSPLcom/android/server/notification/ManagedServices;->getDefaultComponents()Landroid/util/ArraySet;
+PLcom/android/server/notification/ManagedServices;->getDefaultPackages()Landroid/util/ArraySet;
 HSPLcom/android/server/notification/ManagedServices;->getPackageName(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/notification/ManagedServices;->getRemovableConnectedServices()Ljava/util/Set;
 HSPLcom/android/server/notification/ManagedServices;->getServiceFromTokenLocked(Landroid/os/IInterface;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
@@ -21432,6 +22730,25 @@
 HSPLcom/android/server/notification/NotificationChannelExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
 HSPLcom/android/server/notification/NotificationChannelExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
 HSPLcom/android/server/notification/NotificationChannelExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
+PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;-><clinit>()V
+PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;-><init>(Ljava/lang/String;II)V
+PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;->getCreated(Landroid/app/NotificationChannel;)Lcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;
+PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;->getDeleted(Landroid/app/NotificationChannel;)Lcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;
+PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;->getGroupUpdated(Z)Lcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;
+PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;->getId()I
+PLcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;->getUpdated(Z)Lcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;
+HPLcom/android/server/notification/NotificationChannelLogger;->getIdHash(Landroid/app/NotificationChannel;)I
+PLcom/android/server/notification/NotificationChannelLogger;->getIdHash(Landroid/app/NotificationChannelGroup;)I
+PLcom/android/server/notification/NotificationChannelLogger;->getImportance(Landroid/app/NotificationChannelGroup;)I
+PLcom/android/server/notification/NotificationChannelLogger;->getImportance(Z)I
+PLcom/android/server/notification/NotificationChannelLogger;->logNotificationChannelCreated(Landroid/app/NotificationChannel;ILjava/lang/String;)V
+PLcom/android/server/notification/NotificationChannelLogger;->logNotificationChannelDeleted(Landroid/app/NotificationChannel;ILjava/lang/String;)V
+PLcom/android/server/notification/NotificationChannelLogger;->logNotificationChannelGroup(Landroid/app/NotificationChannelGroup;ILjava/lang/String;ZZ)V
+PLcom/android/server/notification/NotificationChannelLogger;->logNotificationChannelGroupDeleted(Landroid/app/NotificationChannelGroup;ILjava/lang/String;)V
+PLcom/android/server/notification/NotificationChannelLogger;->logNotificationChannelModified(Landroid/app/NotificationChannel;ILjava/lang/String;IZ)V
+PLcom/android/server/notification/NotificationChannelLoggerImpl;-><init>()V
+HPLcom/android/server/notification/NotificationChannelLoggerImpl;->logNotificationChannel(Lcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;Landroid/app/NotificationChannel;ILjava/lang/String;II)V
+PLcom/android/server/notification/NotificationChannelLoggerImpl;->logNotificationChannelGroup(Lcom/android/server/notification/NotificationChannelLogger$NotificationChannelEvent;Landroid/app/NotificationChannelGroup;ILjava/lang/String;Z)V
 HSPLcom/android/server/notification/NotificationComparator$1;-><init>(Lcom/android/server/notification/NotificationComparator;)V
 PLcom/android/server/notification/NotificationComparator$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/notification/NotificationComparator;-><init>(Landroid/content/Context;)V
@@ -21446,8 +22763,52 @@
 HPLcom/android/server/notification/NotificationComparator;->isImportantPeople(Lcom/android/server/notification/NotificationRecord;)Z
 HPLcom/android/server/notification/NotificationComparator;->isMediaNotification(Lcom/android/server/notification/NotificationRecord;)Z
 HPLcom/android/server/notification/NotificationComparator;->isOngoing(Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationHistoryDatabase$1;-><init>(Lcom/android/server/notification/NotificationHistoryDatabase;)V
+PLcom/android/server/notification/NotificationHistoryDatabase$NotificationHistoryFileAttrProvider;-><init>()V
+PLcom/android/server/notification/NotificationHistoryDatabase$RemoveConversationRunnable;-><init>(Lcom/android/server/notification/NotificationHistoryDatabase;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/notification/NotificationHistoryDatabase$RemoveConversationRunnable;->run()V
+PLcom/android/server/notification/NotificationHistoryDatabase$WriteBufferRunnable;-><init>(Lcom/android/server/notification/NotificationHistoryDatabase;)V
+PLcom/android/server/notification/NotificationHistoryDatabase$WriteBufferRunnable;-><init>(Lcom/android/server/notification/NotificationHistoryDatabase;Lcom/android/server/notification/NotificationHistoryDatabase$1;)V
+PLcom/android/server/notification/NotificationHistoryDatabase$WriteBufferRunnable;->run()V
+PLcom/android/server/notification/NotificationHistoryDatabase;-><clinit>()V
+PLcom/android/server/notification/NotificationHistoryDatabase;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/io/File;)V
+PLcom/android/server/notification/NotificationHistoryDatabase;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/io/File;Lcom/android/server/notification/NotificationHistoryDatabase$FileAttrProvider;)V
+PLcom/android/server/notification/NotificationHistoryDatabase;->access$100()Z
+PLcom/android/server/notification/NotificationHistoryDatabase;->access$200()Z
+PLcom/android/server/notification/NotificationHistoryDatabase;->access$200(Lcom/android/server/notification/NotificationHistoryDatabase;)Ljava/lang/Object;
+PLcom/android/server/notification/NotificationHistoryDatabase;->access$300(Lcom/android/server/notification/NotificationHistoryDatabase;)Ljava/lang/Object;
+PLcom/android/server/notification/NotificationHistoryDatabase;->access$400(Lcom/android/server/notification/NotificationHistoryDatabase;)Ljava/io/File;
+PLcom/android/server/notification/NotificationHistoryDatabase;->access$500(Lcom/android/server/notification/NotificationHistoryDatabase;Landroid/util/AtomicFile;Landroid/app/NotificationHistory;)V
+PLcom/android/server/notification/NotificationHistoryDatabase;->access$600(Landroid/util/AtomicFile;Landroid/app/NotificationHistory;Lcom/android/server/notification/NotificationHistoryFilter;)V
+HPLcom/android/server/notification/NotificationHistoryDatabase;->addNotification(Landroid/app/NotificationHistory$HistoricalNotification;)V
+PLcom/android/server/notification/NotificationHistoryDatabase;->checkVersionAndBuildLocked()V
+PLcom/android/server/notification/NotificationHistoryDatabase;->deleteConversation(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationHistoryDatabase;->indexFilesLocked()V
+PLcom/android/server/notification/NotificationHistoryDatabase;->init()V
+PLcom/android/server/notification/NotificationHistoryDatabase;->lambda$indexFilesLocked$0(Ljava/io/File;Ljava/io/File;)I
+PLcom/android/server/notification/NotificationHistoryDatabase;->prune(IJ)V
+HPLcom/android/server/notification/NotificationHistoryDatabase;->readLocked(Landroid/util/AtomicFile;Landroid/app/NotificationHistory;Lcom/android/server/notification/NotificationHistoryFilter;)V
+PLcom/android/server/notification/NotificationHistoryDatabase;->readNotificationHistory()Landroid/app/NotificationHistory;
+PLcom/android/server/notification/NotificationHistoryDatabase;->scheduleDeletion(Ljava/io/File;J)V
+PLcom/android/server/notification/NotificationHistoryDatabase;->scheduleDeletion(Ljava/io/File;JI)V
+PLcom/android/server/notification/NotificationHistoryDatabase;->writeLocked(Landroid/util/AtomicFile;Landroid/app/NotificationHistory;)V
+PLcom/android/server/notification/NotificationHistoryDatabaseFactory;->create(Landroid/content/Context;Landroid/os/Handler;Ljava/io/File;)Lcom/android/server/notification/NotificationHistoryDatabase;
+PLcom/android/server/notification/NotificationHistoryDatabaseFactory;->create(Landroid/content/Context;Landroid/os/Handler;Ljava/io/File;Lcom/android/server/notification/NotificationHistoryDatabase$FileAttrProvider;)Lcom/android/server/notification/NotificationHistoryDatabase;
+PLcom/android/server/notification/NotificationHistoryFilter$Builder;-><init>()V
+PLcom/android/server/notification/NotificationHistoryFilter$Builder;->build()Lcom/android/server/notification/NotificationHistoryFilter;
+PLcom/android/server/notification/NotificationHistoryFilter;-><init>()V
+PLcom/android/server/notification/NotificationHistoryFilter;-><init>(Lcom/android/server/notification/NotificationHistoryFilter$1;)V
+PLcom/android/server/notification/NotificationHistoryFilter;->access$102(Lcom/android/server/notification/NotificationHistoryFilter;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/notification/NotificationHistoryFilter;->access$202(Lcom/android/server/notification/NotificationHistoryFilter;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/notification/NotificationHistoryFilter;->access$302(Lcom/android/server/notification/NotificationHistoryFilter;I)I
+PLcom/android/server/notification/NotificationHistoryFilter;->getChannel()Ljava/lang/String;
+PLcom/android/server/notification/NotificationHistoryFilter;->getPackage()Ljava/lang/String;
+PLcom/android/server/notification/NotificationHistoryFilter;->isFiltering()Z
+PLcom/android/server/notification/NotificationHistoryFilter;->matchesCountFilter(Landroid/app/NotificationHistory;)Z
+HPLcom/android/server/notification/NotificationHistoryFilter;->matchesPackageAndChannelFilter(Landroid/app/NotificationHistory$HistoricalNotification;)Z
 HSPLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;-><init>(Lcom/android/server/notification/NotificationHistoryManager;Landroid/os/Handler;)V
 HSPLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;->observe()V
+PLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;->onChange(ZLandroid/net/Uri;I)V
 HSPLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;->update(Landroid/net/Uri;I)V
 HSPLcom/android/server/notification/NotificationHistoryManager;-><clinit>()V
 HSPLcom/android/server/notification/NotificationHistoryManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
@@ -21455,6 +22816,7 @@
 HSPLcom/android/server/notification/NotificationHistoryManager;->access$100(Lcom/android/server/notification/NotificationHistoryManager;)Ljava/lang/Object;
 HSPLcom/android/server/notification/NotificationHistoryManager;->access$200(Lcom/android/server/notification/NotificationHistoryManager;)Landroid/os/UserManager;
 HSPLcom/android/server/notification/NotificationHistoryManager;->addNotification(Landroid/app/NotificationHistory$HistoricalNotification;)V
+HPLcom/android/server/notification/NotificationHistoryManager;->deleteConversation(Ljava/lang/String;ILjava/lang/String;)V
 HSPLcom/android/server/notification/NotificationHistoryManager;->getUserHistoryAndInitializeIfNeededLocked(I)Lcom/android/server/notification/NotificationHistoryDatabase;
 HSPLcom/android/server/notification/NotificationHistoryManager;->onBootPhaseAppsCanStart()V
 HSPLcom/android/server/notification/NotificationHistoryManager;->onHistoryEnabledChanged(IZ)V
@@ -21462,6 +22824,16 @@
 PLcom/android/server/notification/NotificationHistoryManager;->onUserRemoved(I)V
 PLcom/android/server/notification/NotificationHistoryManager;->onUserStopped(I)V
 PLcom/android/server/notification/NotificationHistoryManager;->onUserUnlocked(I)V
+PLcom/android/server/notification/NotificationHistoryManager;->readNotificationHistory([I)Landroid/app/NotificationHistory;
+PLcom/android/server/notification/NotificationHistoryManager;->triggerWriteToDisk()V
+HPLcom/android/server/notification/NotificationHistoryProtoHelper;->loadIcon(Landroid/util/proto/ProtoInputStream;Landroid/app/NotificationHistory$HistoricalNotification$Builder;Ljava/lang/String;)V
+HPLcom/android/server/notification/NotificationHistoryProtoHelper;->read(Ljava/io/InputStream;Landroid/app/NotificationHistory;Lcom/android/server/notification/NotificationHistoryFilter;)V
+HPLcom/android/server/notification/NotificationHistoryProtoHelper;->readNotification(Landroid/util/proto/ProtoInputStream;Ljava/util/List;)Landroid/app/NotificationHistory$HistoricalNotification;
+HPLcom/android/server/notification/NotificationHistoryProtoHelper;->readNotification(Landroid/util/proto/ProtoInputStream;Ljava/util/List;Landroid/app/NotificationHistory;Lcom/android/server/notification/NotificationHistoryFilter;)V
+HPLcom/android/server/notification/NotificationHistoryProtoHelper;->write(Ljava/io/OutputStream;Landroid/app/NotificationHistory;I)V
+HPLcom/android/server/notification/NotificationHistoryProtoHelper;->writeIcon(Landroid/util/proto/ProtoOutputStream;Landroid/app/NotificationHistory$HistoricalNotification;)V
+HPLcom/android/server/notification/NotificationHistoryProtoHelper;->writeNotification(Landroid/util/proto/ProtoOutputStream;[Ljava/lang/String;Landroid/app/NotificationHistory$HistoricalNotification;)V
+PLcom/android/server/notification/NotificationHistoryProtoHelper;->writeStringPool(Landroid/util/proto/ProtoOutputStream;Landroid/app/NotificationHistory;)V
 HSPLcom/android/server/notification/NotificationIntrusivenessExtractor$1;-><init>(Lcom/android/server/notification/NotificationIntrusivenessExtractor;Ljava/lang/String;J)V
 HPLcom/android/server/notification/NotificationIntrusivenessExtractor$1;->applyChangesLocked(Lcom/android/server/notification/NotificationRecord;)V
 HPLcom/android/server/notification/NotificationIntrusivenessExtractor$1;->work()V
@@ -21491,9 +22863,11 @@
 HSPLcom/android/server/notification/NotificationManagerService$10;->cancelNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
 PLcom/android/server/notification/NotificationManagerService$10;->cancelNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService$10;->cancelToast(Ljava/lang/String;Landroid/app/ITransientNotification;)V
+PLcom/android/server/notification/NotificationManagerService$10;->cancelToast(Ljava/lang/String;Landroid/os/IBinder;)V
 HPLcom/android/server/notification/NotificationManagerService$10;->checkPackagePolicyAccess(Ljava/lang/String;)Z
 HPLcom/android/server/notification/NotificationManagerService$10;->checkPolicyAccess(Ljava/lang/String;)Z
 HPLcom/android/server/notification/NotificationManagerService$10;->clearData(Ljava/lang/String;IZ)V
+PLcom/android/server/notification/NotificationManagerService$10;->createConversationNotificationChannelForPackage(Ljava/lang/String;ILjava/lang/String;Landroid/app/NotificationChannel;Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService$10;->createNotificationChannelGroups(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 HSPLcom/android/server/notification/NotificationManagerService$10;->createNotificationChannels(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 PLcom/android/server/notification/NotificationManagerService$10;->createNotificationChannelsForPackage(Ljava/lang/String;ILandroid/content/pm/ParceledListSlice;)V
@@ -21501,15 +22875,19 @@
 HSPLcom/android/server/notification/NotificationManagerService$10;->deleteNotificationChannel(Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService$10;->deleteNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService$10;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService$10;->enforcePolicyAccess(ILjava/lang/String;)V
+HPLcom/android/server/notification/NotificationManagerService$10;->enforcePolicyAccess(ILjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService$10;->enforcePolicyAccess(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/notification/NotificationManagerService$10;->enforceSystemOrSystemUI(Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService$10;->enforceSystemOrSystemUIOrSamePackage(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/notification/NotificationManagerService$10;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V
+PLcom/android/server/notification/NotificationManagerService$10;->enqueueTextOrCustomToast(Ljava/lang/String;Landroid/os/IBinder;Landroid/app/ITransientNotification;IIZ)V
 HPLcom/android/server/notification/NotificationManagerService$10;->enqueueTextToast(Ljava/lang/String;Landroid/app/ITransientNotification;II)V
+PLcom/android/server/notification/NotificationManagerService$10;->enqueueTextToast(Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;IILandroid/app/ITransientNotificationCallback;)V
 PLcom/android/server/notification/NotificationManagerService$10;->enqueueToast(Ljava/lang/String;Landroid/app/ITransientNotification;II)V
 HPLcom/android/server/notification/NotificationManagerService$10;->enqueueToast(Ljava/lang/String;Landroid/app/ITransientNotification;IIZ)V
+HPLcom/android/server/notification/NotificationManagerService$10;->enqueueToast(Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;Landroid/app/ITransientNotification;IILandroid/app/ITransientNotificationCallback;Z)V
 HPLcom/android/server/notification/NotificationManagerService$10;->finishToken(Ljava/lang/String;Landroid/app/ITransientNotification;)V
+PLcom/android/server/notification/NotificationManagerService$10;->finishToken(Ljava/lang/String;Landroid/os/IBinder;)V
 HPLcom/android/server/notification/NotificationManagerService$10;->getActiveNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/notification/NotificationManagerService$10;->getAllowedAssistantAdjustments(Ljava/lang/String;)Ljava/util/List;
 HPLcom/android/server/notification/NotificationManagerService$10;->getAllowedNotificationAssistant()Landroid/content/ComponentName;
@@ -21522,10 +22900,13 @@
 PLcom/android/server/notification/NotificationManagerService$10;->getBlockedChannelCount(Ljava/lang/String;I)I
 HSPLcom/android/server/notification/NotificationManagerService$10;->getConsolidatedNotificationPolicy()Landroid/app/NotificationManager$Policy;
 HSPLcom/android/server/notification/NotificationManagerService$10;->getConversationNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;
+HPLcom/android/server/notification/NotificationManagerService$10;->getConversationNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Landroid/app/NotificationChannel;
+PLcom/android/server/notification/NotificationManagerService$10;->getConversationsForPackage(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/notification/NotificationManagerService$10;->getDeletedChannelCount(Ljava/lang/String;I)I
 PLcom/android/server/notification/NotificationManagerService$10;->getEffectsSuppressor()Landroid/content/ComponentName;
 PLcom/android/server/notification/NotificationManagerService$10;->getEnabledNotificationListenerPackages()Ljava/util/List;
 HPLcom/android/server/notification/NotificationManagerService$10;->getHintsFromListener(Landroid/service/notification/INotificationListener;)I
+PLcom/android/server/notification/NotificationManagerService$10;->getHistoricalNotifications(Ljava/lang/String;IZ)[Landroid/service/notification/StatusBarNotification;
 PLcom/android/server/notification/NotificationManagerService$10;->getInterruptionFilterFromListener(Landroid/service/notification/INotificationListener;)I
 HSPLcom/android/server/notification/NotificationManagerService$10;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;
 HPLcom/android/server/notification/NotificationManagerService$10;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
@@ -21533,10 +22914,13 @@
 HPLcom/android/server/notification/NotificationManagerService$10;->getNotificationChannelGroups(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/notification/NotificationManagerService$10;->getNotificationChannelGroupsForPackage(Ljava/lang/String;IZ)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/notification/NotificationManagerService$10;->getNotificationChannels(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/notification/NotificationManagerService$10;->getNotificationHistory(Ljava/lang/String;)Landroid/app/NotificationHistory;
 HPLcom/android/server/notification/NotificationManagerService$10;->getNotificationPolicy(Ljava/lang/String;)Landroid/app/NotificationManager$Policy;
 PLcom/android/server/notification/NotificationManagerService$10;->getNumNotificationChannelsForPackage(Ljava/lang/String;IZ)I
 PLcom/android/server/notification/NotificationManagerService$10;->getPackageImportance(Ljava/lang/String;)I
 PLcom/android/server/notification/NotificationManagerService$10;->getPrivateNotificationsAllowed()Z
+PLcom/android/server/notification/NotificationManagerService$10;->getRuleInstanceCount(Landroid/content/ComponentName;)I
+PLcom/android/server/notification/NotificationManagerService$10;->getSnoozedNotificationsFromListener(Landroid/service/notification/INotificationListener;I)Landroid/content/pm/ParceledListSlice;
 HSPLcom/android/server/notification/NotificationManagerService$10;->getZenMode()I
 HSPLcom/android/server/notification/NotificationManagerService$10;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
 PLcom/android/server/notification/NotificationManagerService$10;->getZenRules()Ljava/util/List;
@@ -21575,6 +22959,7 @@
 PLcom/android/server/notification/NotificationManagerService$10;->shouldHideSilentStatusIcons(Ljava/lang/String;)Z
 PLcom/android/server/notification/NotificationManagerService$10;->silenceNotificationSound()V
 PLcom/android/server/notification/NotificationManagerService$10;->snoozeNotificationUntilFromListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;J)V
+PLcom/android/server/notification/NotificationManagerService$10;->unregisterListener(Landroid/service/notification/INotificationListener;I)V
 HPLcom/android/server/notification/NotificationManagerService$10;->updateAutogroupSummary(Ljava/lang/String;Z)V
 PLcom/android/server/notification/NotificationManagerService$10;->updateAutomaticZenRule(Ljava/lang/String;Landroid/app/AutomaticZenRule;)Z
 PLcom/android/server/notification/NotificationManagerService$10;->updateNotificationChannelForPackage(Ljava/lang/String;ILandroid/app/NotificationChannel;)V
@@ -21615,7 +23000,7 @@
 HPLcom/android/server/notification/NotificationManagerService$11;->enforceSystemOrSystemUIOrSamePackage(Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService$11;->enqueueNotification(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;I)V
 HPLcom/android/server/notification/NotificationManagerService$11;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V
-PLcom/android/server/notification/NotificationManagerService$11;->enqueueTextOrCustomToast(Ljava/lang/String;Landroid/os/IBinder;Landroid/app/ITransientNotification;IIZ)V
+HPLcom/android/server/notification/NotificationManagerService$11;->enqueueTextOrCustomToast(Ljava/lang/String;Landroid/os/IBinder;Landroid/app/ITransientNotification;IIZ)V
 PLcom/android/server/notification/NotificationManagerService$11;->enqueueTextToast(Ljava/lang/String;Landroid/os/IBinder;Landroid/app/ITransientNotification;II)V
 HPLcom/android/server/notification/NotificationManagerService$11;->enqueueTextToast(Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;IILandroid/app/ITransientNotificationCallback;)V
 PLcom/android/server/notification/NotificationManagerService$11;->enqueueToast(Ljava/lang/String;Landroid/os/IBinder;Landroid/app/ITransientNotification;II)V
@@ -21642,6 +23027,7 @@
 PLcom/android/server/notification/NotificationManagerService$11;->getEnabledNotificationListenerPackages()Ljava/util/List;
 HPLcom/android/server/notification/NotificationManagerService$11;->getHintsFromListener(Landroid/service/notification/INotificationListener;)I
 PLcom/android/server/notification/NotificationManagerService$11;->getHistoricalNotifications(Ljava/lang/String;I)[Landroid/service/notification/StatusBarNotification;
+PLcom/android/server/notification/NotificationManagerService$11;->getHistoricalNotifications(Ljava/lang/String;IZ)[Landroid/service/notification/StatusBarNotification;
 PLcom/android/server/notification/NotificationManagerService$11;->getInterruptionFilterFromListener(Landroid/service/notification/INotificationListener;)I
 PLcom/android/server/notification/NotificationManagerService$11;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;)Landroid/app/NotificationChannel;
 HSPLcom/android/server/notification/NotificationManagerService$11;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;
@@ -21652,10 +23038,12 @@
 HPLcom/android/server/notification/NotificationManagerService$11;->getNotificationChannelGroups(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/notification/NotificationManagerService$11;->getNotificationChannelGroupsForPackage(Ljava/lang/String;IZ)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/notification/NotificationManagerService$11;->getNotificationChannels(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/notification/NotificationManagerService$11;->getNotificationHistory(Ljava/lang/String;)Landroid/app/NotificationHistory;
 HPLcom/android/server/notification/NotificationManagerService$11;->getNotificationPolicy(Ljava/lang/String;)Landroid/app/NotificationManager$Policy;
 HPLcom/android/server/notification/NotificationManagerService$11;->getNumNotificationChannelsForPackage(Ljava/lang/String;IZ)I
 PLcom/android/server/notification/NotificationManagerService$11;->getPackageImportance(Ljava/lang/String;)I
 PLcom/android/server/notification/NotificationManagerService$11;->getPrivateNotificationsAllowed()Z
+PLcom/android/server/notification/NotificationManagerService$11;->getSnoozedNotificationsFromListener(Landroid/service/notification/INotificationListener;I)Landroid/content/pm/ParceledListSlice;
 HSPLcom/android/server/notification/NotificationManagerService$11;->getZenMode()I
 HSPLcom/android/server/notification/NotificationManagerService$11;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
 PLcom/android/server/notification/NotificationManagerService$11;->getZenRules()Ljava/util/List;
@@ -21668,6 +23056,7 @@
 PLcom/android/server/notification/NotificationManagerService$11;->lambda$removeForegroundServiceFlagFromNotification$0$NotificationManagerService$11(Ljava/lang/String;II)V
 PLcom/android/server/notification/NotificationManagerService$11;->matchesCallFilter(Landroid/os/Bundle;)Z
 HSPLcom/android/server/notification/NotificationManagerService$11;->notifyConditions(Ljava/lang/String;Landroid/service/notification/IConditionProvider;[Landroid/service/notification/Condition;)V
+PLcom/android/server/notification/NotificationManagerService$11;->onConversationRemoved(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService$11;->onlyHasDefaultChannel(Ljava/lang/String;I)Z
 HSPLcom/android/server/notification/NotificationManagerService$11;->registerListener(Landroid/service/notification/INotificationListener;Landroid/content/ComponentName;I)V
 PLcom/android/server/notification/NotificationManagerService$11;->removeAutomaticZenRule(Ljava/lang/String;)Z
@@ -21675,7 +23064,7 @@
 PLcom/android/server/notification/NotificationManagerService$11;->removeForegroundServiceFlagFromNotification(Ljava/lang/String;II)V
 PLcom/android/server/notification/NotificationManagerService$11;->removeForegroundServiceFlagLocked(Lcom/android/server/notification/NotificationRecord;)V
 HPLcom/android/server/notification/NotificationManagerService$11;->requestBindListener(Landroid/content/ComponentName;)V
-PLcom/android/server/notification/NotificationManagerService$11;->requestBindProvider(Landroid/content/ComponentName;)V
+HPLcom/android/server/notification/NotificationManagerService$11;->requestBindProvider(Landroid/content/ComponentName;)V
 HPLcom/android/server/notification/NotificationManagerService$11;->requestHintsFromListener(Landroid/service/notification/INotificationListener;I)V
 PLcom/android/server/notification/NotificationManagerService$11;->requestUnbindListener(Landroid/service/notification/INotificationListener;)V
 PLcom/android/server/notification/NotificationManagerService$11;->requestUnbindProvider(Landroid/service/notification/IConditionProvider;)V
@@ -21701,6 +23090,7 @@
 HPLcom/android/server/notification/NotificationManagerService$12;->enqueueNotification(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;I)V
 HPLcom/android/server/notification/NotificationManagerService$12;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;)Landroid/app/NotificationChannel;
 HPLcom/android/server/notification/NotificationManagerService$12;->lambda$removeForegroundServiceFlagFromNotification$0$NotificationManagerService$12(Ljava/lang/String;II)V
+PLcom/android/server/notification/NotificationManagerService$12;->onConversationRemoved(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService$12;->removeForegroundServiceFlagFromNotification(Ljava/lang/String;II)V
 HPLcom/android/server/notification/NotificationManagerService$12;->removeForegroundServiceFlagLocked(Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationManagerService$12;->run()V
@@ -21739,7 +23129,7 @@
 HPLcom/android/server/notification/NotificationManagerService$1;->onNotificationVisibilityChanged([Lcom/android/internal/statusbar/NotificationVisibility;[Lcom/android/internal/statusbar/NotificationVisibility;)V
 HPLcom/android/server/notification/NotificationManagerService$1;->onPanelHidden()V
 HPLcom/android/server/notification/NotificationManagerService$1;->onPanelRevealed(ZI)V
-PLcom/android/server/notification/NotificationManagerService$1;->onSetDisabled(I)V
+HPLcom/android/server/notification/NotificationManagerService$1;->onSetDisabled(I)V
 HSPLcom/android/server/notification/NotificationManagerService$2;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
 HSPLcom/android/server/notification/NotificationManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/notification/NotificationManagerService$3;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
@@ -21770,6 +23160,7 @@
 HSPLcom/android/server/notification/NotificationManagerService$Archive;-><init>(I)V
 PLcom/android/server/notification/NotificationManagerService$Archive;->descendingIterator()Ljava/util/Iterator;
 PLcom/android/server/notification/NotificationManagerService$Archive;->getArray(I)[Landroid/service/notification/StatusBarNotification;
+PLcom/android/server/notification/NotificationManagerService$Archive;->getArray(IZ)[Landroid/service/notification/StatusBarNotification;
 HPLcom/android/server/notification/NotificationManagerService$Archive;->record(Landroid/service/notification/StatusBarNotification;)V
 HPLcom/android/server/notification/NotificationManagerService$Archive;->record(Landroid/service/notification/StatusBarNotification;I)V
 PLcom/android/server/notification/NotificationManagerService$Archive;->toString()Ljava/lang/String;
@@ -21788,6 +23179,8 @@
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->access$7900(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/NotificationRecord;)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->access$8100(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->access$8200(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->access$8600(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->access$8700(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/NotificationRecord;)V
 HSPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->asInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->disallowAdjustmentType(Ljava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
@@ -21864,7 +23257,15 @@
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10500(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10500(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10600(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10600(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
 PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10700(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10700(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10700(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10800(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10800(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10900(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$11000(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$11100(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$9700(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
 HSPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$9800(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V
 HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$9800(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
@@ -21912,7 +23313,7 @@
 HSPLcom/android/server/notification/NotificationManagerService$RoleObserver;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/app/role/RoleManager;Landroid/content/pm/IPackageManager;Ljava/util/concurrent/Executor;)V
 HSPLcom/android/server/notification/NotificationManagerService$RoleObserver;->getUidForPackage(Ljava/lang/String;I)I
 HSPLcom/android/server/notification/NotificationManagerService$RoleObserver;->init()V
-PLcom/android/server/notification/NotificationManagerService$RoleObserver;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
+HPLcom/android/server/notification/NotificationManagerService$RoleObserver;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
 HSPLcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
 HSPLcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$1;)V
 HSPLcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable;->run()V
@@ -21924,6 +23325,9 @@
 PLcom/android/server/notification/NotificationManagerService$SnoozeNotificationRunnable;->run()V
 PLcom/android/server/notification/NotificationManagerService$SnoozeNotificationRunnable;->snoozeLocked(Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationManagerService$SnoozeNotificationRunnable;->snoozeNotificationLocked(Lcom/android/server/notification/NotificationRecord;)V
+HSPLcom/android/server/notification/NotificationManagerService$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/NotificationManagerService$StatsPullAtomCallbackImpl;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$1;)V
+PLcom/android/server/notification/NotificationManagerService$StatsPullAtomCallbackImpl;->onPullAtom(ILjava/util/List;)I
 HSPLcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;-><init>(Landroid/service/notification/StatusBarNotification;)V
 HSPLcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;->get()Landroid/service/notification/StatusBarNotification;
 HPLcom/android/server/notification/NotificationManagerService$ToastRecord;-><init>(ILjava/lang/String;Landroid/app/ITransientNotification;ILandroid/os/Binder;I)V
@@ -21942,11 +23346,23 @@
 HSPLcom/android/server/notification/NotificationManagerService;-><init>(Landroid/content/Context;Lcom/android/server/notification/NotificationRecordLogger;Lcom/android/internal/logging/InstanceIdSequence;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$100(Lcom/android/server/notification/NotificationManagerService;)Landroid/util/AtomicFile;
 HSPLcom/android/server/notification/NotificationManagerService;->access$1000(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$WorkerHandler;
+PLcom/android/server/notification/NotificationManagerService;->access$10000(Lcom/android/server/notification/NotificationManagerService;I)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$10000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
+PLcom/android/server/notification/NotificationManagerService;->access$10100(Lcom/android/server/notification/NotificationManagerService;I)V
+PLcom/android/server/notification/NotificationManagerService;->access$10100(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$10100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
+PLcom/android/server/notification/NotificationManagerService;->access$10200(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$10200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
+HSPLcom/android/server/notification/NotificationManagerService;->access$10200(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
+HPLcom/android/server/notification/NotificationManagerService;->access$10300(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
+PLcom/android/server/notification/NotificationManagerService;->access$10500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
+PLcom/android/server/notification/NotificationManagerService;->access$10600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
 HPLcom/android/server/notification/NotificationManagerService;->access$1100(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/IPackageManager;
+HPLcom/android/server/notification/NotificationManagerService;->access$1100(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$WorkerHandler;
 HPLcom/android/server/notification/NotificationManagerService;->access$1200(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/IPackageManager;
+PLcom/android/server/notification/NotificationManagerService;->access$1200(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$WorkerHandler;
+PLcom/android/server/notification/NotificationManagerService;->access$1300(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/IPackageManager;
+PLcom/android/server/notification/NotificationManagerService;->access$1400(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/IPackageManager;
 HSPLcom/android/server/notification/NotificationManagerService;->access$1500(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$NotificationListeners;
 HSPLcom/android/server/notification/NotificationManagerService;->access$1500(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/PreferencesHelper;
 HSPLcom/android/server/notification/NotificationManagerService;->access$1600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ConditionProviders;
@@ -21957,8 +23373,10 @@
 HSPLcom/android/server/notification/NotificationManagerService;->access$1700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$NotificationListeners;
 PLcom/android/server/notification/NotificationManagerService;->access$1800()Ljava/lang/String;
 HSPLcom/android/server/notification/NotificationManagerService;->access$1800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ConditionProviders;
+PLcom/android/server/notification/NotificationManagerService;->access$1800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$NotificationListeners;
 PLcom/android/server/notification/NotificationManagerService;->access$1800(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
 HSPLcom/android/server/notification/NotificationManagerService;->access$1900()I
+PLcom/android/server/notification/NotificationManagerService;->access$1900(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ConditionProviders;
 PLcom/android/server/notification/NotificationManagerService;->access$1900(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
 HSPLcom/android/server/notification/NotificationManagerService;->access$200(Lcom/android/server/notification/NotificationManagerService;Ljava/io/OutputStream;ZI)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$2000()I
@@ -21967,61 +23385,82 @@
 HSPLcom/android/server/notification/NotificationManagerService;->access$2200()I
 HSPLcom/android/server/notification/NotificationManagerService;->access$2200(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$WorkerHandler;
 HSPLcom/android/server/notification/NotificationManagerService;->access$2200(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService;->access$2300()I
 PLcom/android/server/notification/NotificationManagerService;->access$2300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/lights/Light;
 PLcom/android/server/notification/NotificationManagerService;->access$2300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/lights/LogicalLight;
 PLcom/android/server/notification/NotificationManagerService;->access$2300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$WorkerHandler;
 PLcom/android/server/notification/NotificationManagerService;->access$2300(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$2400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/lights/Light;
+PLcom/android/server/notification/NotificationManagerService;->access$2400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/lights/LogicalLight;
 HSPLcom/android/server/notification/NotificationManagerService;->access$2400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ManagedServices$UserProfiles;
 PLcom/android/server/notification/NotificationManagerService;->access$2400(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$2500(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/lights/Light;
+PLcom/android/server/notification/NotificationManagerService;->access$2500(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/lights/LogicalLight;
 HSPLcom/android/server/notification/NotificationManagerService;->access$2500(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ManagedServices$UserProfiles;
 HSPLcom/android/server/notification/NotificationManagerService;->access$2500(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$SettingsObserver;
 HSPLcom/android/server/notification/NotificationManagerService;->access$2600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ManagedServices$UserProfiles;
 PLcom/android/server/notification/NotificationManagerService;->access$2600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationHistoryManager;
 HSPLcom/android/server/notification/NotificationManagerService;->access$2600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$SettingsObserver;
+PLcom/android/server/notification/NotificationManagerService;->access$2700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationHistoryManager;
 PLcom/android/server/notification/NotificationManagerService;->access$2700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$SettingsObserver;
 HSPLcom/android/server/notification/NotificationManagerService;->access$2800(Lcom/android/server/notification/NotificationManagerService;)F
 HPLcom/android/server/notification/NotificationManagerService;->access$2800(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/ActivityManager;
 HSPLcom/android/server/notification/NotificationManagerService;->access$2802(Lcom/android/server/notification/NotificationManagerService;F)F
 HSPLcom/android/server/notification/NotificationManagerService;->access$2900(Lcom/android/server/notification/NotificationManagerService;)F
+PLcom/android/server/notification/NotificationManagerService;->access$2900(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/ActivityManager;
 HSPLcom/android/server/notification/NotificationManagerService;->access$2900(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$2902(Lcom/android/server/notification/NotificationManagerService;F)F
+PLcom/android/server/notification/NotificationManagerService;->access$300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationHistoryManager;
+HSPLcom/android/server/notification/NotificationManagerService;->access$3000(Lcom/android/server/notification/NotificationManagerService;)F
 PLcom/android/server/notification/NotificationManagerService;->access$3000(Lcom/android/server/notification/NotificationManagerService;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$3000(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
+HSPLcom/android/server/notification/NotificationManagerService;->access$3002(Lcom/android/server/notification/NotificationManagerService;F)F
 PLcom/android/server/notification/NotificationManagerService;->access$302(Lcom/android/server/notification/NotificationManagerService;Z)Z
 HSPLcom/android/server/notification/NotificationManagerService;->access$3100(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$3100(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/notification/NotificationManagerService;->access$3100(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService;->access$3200(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$3200(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$3200(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService;->access$3300(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/ActivityManager;
+HPLcom/android/server/notification/NotificationManagerService;->access$3300(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/ActivityManager;
 HPLcom/android/server/notification/NotificationManagerService;->access$3300(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$3400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/compat/IPlatformCompat;
+PLcom/android/server/notification/NotificationManagerService;->access$3400(Lcom/android/server/notification/NotificationManagerService;ILjava/util/List;)I
 PLcom/android/server/notification/NotificationManagerService;->access$3500(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/Handler;
 HPLcom/android/server/notification/NotificationManagerService;->access$3600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/wm/WindowManagerInternal;
+PLcom/android/server/notification/NotificationManagerService;->access$3600(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$3700(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;Landroid/app/ITransientNotification;ILandroid/os/Binder;ILandroid/app/ITransientNotificationCallback;)Lcom/android/server/notification/toast/ToastRecord;
 HSPLcom/android/server/notification/NotificationManagerService;->access$3700(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$3800(Lcom/android/server/notification/NotificationManagerService;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$3800(Lcom/android/server/notification/NotificationManagerService;I)V
+PLcom/android/server/notification/NotificationManagerService;->access$3900(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/wm/WindowManagerInternal;
 HSPLcom/android/server/notification/NotificationManagerService;->access$3900(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService;->access$400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Ljava/lang/String;
+HPLcom/android/server/notification/NotificationManagerService;->access$400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Ljava/lang/String;
 HPLcom/android/server/notification/NotificationManagerService;->access$4000(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService;->access$4000(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;Landroid/app/ITransientNotification;ILandroid/os/Binder;ILandroid/app/ITransientNotificationCallback;)Lcom/android/server/notification/toast/ToastRecord;
 PLcom/android/server/notification/NotificationManagerService;->access$4000(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;ILandroid/app/NotificationChannelGroup;ZZ)V
+PLcom/android/server/notification/NotificationManagerService;->access$402(Lcom/android/server/notification/NotificationManagerService;Z)Z
 HSPLcom/android/server/notification/NotificationManagerService;->access$4100(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/PackageManager;
+PLcom/android/server/notification/NotificationManagerService;->access$4100(Lcom/android/server/notification/NotificationManagerService;I)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$4100(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$4200(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/PackageManager;
+HSPLcom/android/server/notification/NotificationManagerService;->access$4200(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$4200(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;ILandroid/app/NotificationChannel;Z)V
 HPLcom/android/server/notification/NotificationManagerService;->access$4200(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;ILandroid/app/NotificationChannelGroup;ZZ)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$4300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/SnoozeHelper;
+PLcom/android/server/notification/NotificationManagerService;->access$4300(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$4300(Lcom/android/server/notification/NotificationManagerService;)Z
 HSPLcom/android/server/notification/NotificationManagerService;->access$4400(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/PackageManager;
 HPLcom/android/server/notification/NotificationManagerService;->access$4400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/SnoozeHelper;
 PLcom/android/server/notification/NotificationManagerService;->access$4400(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/NotificationManagerService;->access$4400(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$4500(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$4500(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;ILandroid/app/NotificationChannel;Z)V
+PLcom/android/server/notification/NotificationManagerService;->access$4500(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;ILandroid/app/NotificationChannelGroup;ZZ)V
 PLcom/android/server/notification/NotificationManagerService;->access$4600(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/LauncherApps;
 HSPLcom/android/server/notification/NotificationManagerService;->access$4600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/SnoozeHelper;
-HPLcom/android/server/notification/NotificationManagerService;->access$4700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/SnoozeHelper;
+HSPLcom/android/server/notification/NotificationManagerService;->access$4700(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/PackageManager;
+HSPLcom/android/server/notification/NotificationManagerService;->access$4700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/SnoozeHelper;
 PLcom/android/server/notification/NotificationManagerService;->access$4700(Lcom/android/server/notification/NotificationManagerService;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$4700(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$4800(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/AppOpsManager;
@@ -22032,24 +23471,30 @@
 PLcom/android/server/notification/NotificationManagerService;->access$4900(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$4900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$500(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService;->access$500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Ljava/lang/String;
+HSPLcom/android/server/notification/NotificationManagerService;->access$5000(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/SnoozeHelper;
 PLcom/android/server/notification/NotificationManagerService;->access$5000(Lcom/android/server/notification/NotificationManagerService;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$5000(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5100(Lcom/android/server/notification/NotificationManagerService;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$5100(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
+PLcom/android/server/notification/NotificationManagerService;->access$5200(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/AppOpsManager;
 PLcom/android/server/notification/NotificationManagerService;->access$5200(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$5200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 PLcom/android/server/notification/NotificationManagerService;->access$5200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5300(Lcom/android/server/notification/NotificationManagerService;)I
+PLcom/android/server/notification/NotificationManagerService;->access$5300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$Archive;
 PLcom/android/server/notification/NotificationManagerService;->access$5300(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$5300(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5400(Lcom/android/server/notification/NotificationManagerService;)I
 PLcom/android/server/notification/NotificationManagerService;->access$5400(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService;->access$5400(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 PLcom/android/server/notification/NotificationManagerService;->access$5500(Lcom/android/server/notification/NotificationManagerService;)I
 PLcom/android/server/notification/NotificationManagerService;->access$5500(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/admin/DevicePolicyManagerInternal;
+PLcom/android/server/notification/NotificationManagerService;->access$5500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 PLcom/android/server/notification/NotificationManagerService;->access$5500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)Z
 PLcom/android/server/notification/NotificationManagerService;->access$5600(Lcom/android/server/notification/NotificationManagerService;)I
@@ -22065,11 +23510,14 @@
 PLcom/android/server/notification/NotificationManagerService;->access$5900(Lcom/android/server/notification/NotificationManagerService;Ljava/io/FileDescriptor;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 PLcom/android/server/notification/NotificationManagerService;->access$5900(Lcom/android/server/notification/NotificationManagerService;Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;
+PLcom/android/server/notification/NotificationManagerService;->access$600(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$6000(Lcom/android/server/notification/NotificationManagerService;)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->access$6000(Lcom/android/server/notification/NotificationManagerService;Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/NotificationManagerService;->access$6100(Lcom/android/server/notification/NotificationManagerService;)I
 HSPLcom/android/server/notification/NotificationManagerService;->access$6100(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/RankingHelper;
 PLcom/android/server/notification/NotificationManagerService;->access$6100(Lcom/android/server/notification/NotificationManagerService;)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->access$6100(Lcom/android/server/notification/NotificationManagerService;Ljava/io/FileDescriptor;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/NotificationManagerService;->access$6200(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/admin/DevicePolicyManagerInternal;
 HPLcom/android/server/notification/NotificationManagerService;->access$6200(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/RankingHelper;
 HSPLcom/android/server/notification/NotificationManagerService;->access$6200(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$6200(Lcom/android/server/notification/NotificationManagerService;Ljava/io/FileDescriptor;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
@@ -22093,29 +23541,38 @@
 HSPLcom/android/server/notification/NotificationManagerService;->access$6700(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/UserManager;
 HSPLcom/android/server/notification/NotificationManagerService;->access$6700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/util/function/TriPredicate;
 HSPLcom/android/server/notification/NotificationManagerService;->access$6700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationUsageStats;
+PLcom/android/server/notification/NotificationManagerService;->access$6700(Lcom/android/server/notification/NotificationManagerService;)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->access$6700(Lcom/android/server/notification/NotificationManagerService;)Z
 HSPLcom/android/server/notification/NotificationManagerService;->access$6800(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/UserManager;
 HPLcom/android/server/notification/NotificationManagerService;->access$6800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationUsageStats;
+PLcom/android/server/notification/NotificationManagerService;->access$6800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/RankingHelper;
 HPLcom/android/server/notification/NotificationManagerService;->access$6800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/Adjustment;)V
 PLcom/android/server/notification/NotificationManagerService;->access$6800(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
+HSPLcom/android/server/notification/NotificationManagerService;->access$6900(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$6900(Lcom/android/server/notification/NotificationManagerService;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$6900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/Adjustment;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$6900(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
 PLcom/android/server/notification/NotificationManagerService;->access$6900(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
+PLcom/android/server/notification/NotificationManagerService;->access$700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;
 HPLcom/android/server/notification/NotificationManagerService;->access$700(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/NotificationManagerService;->access$7000(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/util/function/TriPredicate;
 HPLcom/android/server/notification/NotificationManagerService;->access$7000(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationUsageStats;
 PLcom/android/server/notification/NotificationManagerService;->access$7000(Lcom/android/server/notification/NotificationManagerService;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$7000(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
 HPLcom/android/server/notification/NotificationManagerService;->access$7000(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
+HSPLcom/android/server/notification/NotificationManagerService;->access$7100(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/UserManager;
 PLcom/android/server/notification/NotificationManagerService;->access$7100(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationUsageStats;
 PLcom/android/server/notification/NotificationManagerService;->access$7100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$7100(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->access$7200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$7200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/Adjustment;)V
 PLcom/android/server/notification/NotificationManagerService;->access$7200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIZLjava/lang/String;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$7200(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
 PLcom/android/server/notification/NotificationManagerService;->access$7200(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
+PLcom/android/server/notification/NotificationManagerService;->access$7300(Lcom/android/server/notification/NotificationManagerService;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$7300(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
 HPLcom/android/server/notification/NotificationManagerService;->access$7300(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
+PLcom/android/server/notification/NotificationManagerService;->access$7400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationUsageStats;
 PLcom/android/server/notification/NotificationManagerService;->access$7400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$7400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIIIZLjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$7400(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
@@ -22123,12 +23580,16 @@
 PLcom/android/server/notification/NotificationManagerService;->access$7500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;)V
 PLcom/android/server/notification/NotificationManagerService;->access$7500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIIIZLjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$7500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIZLjava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService;->access$7500(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$7600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$7600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 PLcom/android/server/notification/NotificationManagerService;->access$7600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIZLjava/lang/String;)V
+HPLcom/android/server/notification/NotificationManagerService;->access$7600(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
 HSPLcom/android/server/notification/NotificationManagerService;->access$7700(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
 PLcom/android/server/notification/NotificationManagerService;->access$7700(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 PLcom/android/server/notification/NotificationManagerService;->access$7700(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIIIZLjava/lang/String;)V
+HPLcom/android/server/notification/NotificationManagerService;->access$7700(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
+PLcom/android/server/notification/NotificationManagerService;->access$7800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$7800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;)V
 PLcom/android/server/notification/NotificationManagerService;->access$7800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
 PLcom/android/server/notification/NotificationManagerService;->access$7800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIIIZLjava/lang/String;)V
@@ -22136,19 +23597,26 @@
 PLcom/android/server/notification/NotificationManagerService;->access$7900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$7900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 PLcom/android/server/notification/NotificationManagerService;->access$800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/logging/MetricsLogger;
+PLcom/android/server/notification/NotificationManagerService;->access$800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationRecordLogger;
+PLcom/android/server/notification/NotificationManagerService;->access$800(Lcom/android/server/notification/NotificationManagerService;)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$8000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 HPLcom/android/server/notification/NotificationManagerService;->access$8000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
 PLcom/android/server/notification/NotificationManagerService;->access$8000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 HSPLcom/android/server/notification/NotificationManagerService;->access$8100(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$8100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$8100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
+HPLcom/android/server/notification/NotificationManagerService;->access$8100(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
 HSPLcom/android/server/notification/NotificationManagerService;->access$8200(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
 HPLcom/android/server/notification/NotificationManagerService;->access$8200(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
 HPLcom/android/server/notification/NotificationManagerService;->access$8200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$8200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIIIZLjava/lang/String;)V
+HPLcom/android/server/notification/NotificationManagerService;->access$8200(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->access$8300(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/Binder;
 PLcom/android/server/notification/NotificationManagerService;->access$8300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/logging/InstanceIdSequence;
 PLcom/android/server/notification/NotificationManagerService;->access$8300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
 PLcom/android/server/notification/NotificationManagerService;->access$8300(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$8300(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;)V
+PLcom/android/server/notification/NotificationManagerService;->access$8300(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;ZIIIZLjava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->access$8302(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Binder;)Landroid/os/Binder;
 PLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;)Landroid/net/Uri;
 PLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/Binder;
@@ -22156,48 +23624,64 @@
 PLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationRecordLogger;
 HPLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;)V
+PLcom/android/server/notification/NotificationManagerService;->access$8400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 PLcom/android/server/notification/NotificationManagerService;->access$8402(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Binder;)Landroid/os/Binder;
 PLcom/android/server/notification/NotificationManagerService;->access$8500(Lcom/android/server/notification/NotificationManagerService;)Landroid/media/AudioAttributes;
 PLcom/android/server/notification/NotificationManagerService;->access$8500(Lcom/android/server/notification/NotificationManagerService;)Landroid/net/Uri;
 HPLcom/android/server/notification/NotificationManagerService;->access$8500(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
 HPLcom/android/server/notification/NotificationManagerService;->access$8500(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$8500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$8500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
+PLcom/android/server/notification/NotificationManagerService;->access$8500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 PLcom/android/server/notification/NotificationManagerService;->access$8600(Lcom/android/server/notification/NotificationManagerService;)F
 PLcom/android/server/notification/NotificationManagerService;->access$8600(Lcom/android/server/notification/NotificationManagerService;)Landroid/media/AudioAttributes;
 HPLcom/android/server/notification/NotificationManagerService;->access$8600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
 HPLcom/android/server/notification/NotificationManagerService;->access$8600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationRecordLogger;
 HPLcom/android/server/notification/NotificationManagerService;->access$8600(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$8600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
 PLcom/android/server/notification/NotificationManagerService;->access$8700(Lcom/android/server/notification/NotificationManagerService;)F
 PLcom/android/server/notification/NotificationManagerService;->access$8700(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/Binder;
 PLcom/android/server/notification/NotificationManagerService;->access$8700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
 HPLcom/android/server/notification/NotificationManagerService;->access$8700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationRecordLogger;
 PLcom/android/server/notification/NotificationManagerService;->access$8700(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
+PLcom/android/server/notification/NotificationManagerService;->access$8700(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$8702(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Binder;)Landroid/os/Binder;
 PLcom/android/server/notification/NotificationManagerService;->access$8800(Lcom/android/server/notification/NotificationManagerService;)Landroid/net/Uri;
 PLcom/android/server/notification/NotificationManagerService;->access$8800(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/Binder;
+PLcom/android/server/notification/NotificationManagerService;->access$8800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/logging/InstanceIdSequence;
 PLcom/android/server/notification/NotificationManagerService;->access$8800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationRecordLogger;
 PLcom/android/server/notification/NotificationManagerService;->access$8800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
+PLcom/android/server/notification/NotificationManagerService;->access$8800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$8802(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Binder;)Landroid/os/Binder;
 PLcom/android/server/notification/NotificationManagerService;->access$8900(Lcom/android/server/notification/NotificationManagerService;)Landroid/media/AudioAttributes;
 PLcom/android/server/notification/NotificationManagerService;->access$8900(Lcom/android/server/notification/NotificationManagerService;)Landroid/net/Uri;
 PLcom/android/server/notification/NotificationManagerService;->access$8900(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/Binder;
+PLcom/android/server/notification/NotificationManagerService;->access$8900(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/internal/logging/InstanceIdSequence;
 PLcom/android/server/notification/NotificationManagerService;->access$8900(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$8900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
+PLcom/android/server/notification/NotificationManagerService;->access$8900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$8902(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Binder;)Landroid/os/Binder;
 PLcom/android/server/notification/NotificationManagerService;->access$900(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/ActivityManager;
+PLcom/android/server/notification/NotificationManagerService;->access$900(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationRecordLogger;
 PLcom/android/server/notification/NotificationManagerService;->access$900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;)F
 PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;)Landroid/media/AudioAttributes;
 PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;)Landroid/net/Uri;
 PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;I)V
+PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
+PLcom/android/server/notification/NotificationManagerService;->access$9000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;)F
 PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;)Landroid/media/AudioAttributes;
+PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
 PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;I)V
+PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
 PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/toast/ToastRecord;)V
 PLcom/android/server/notification/NotificationManagerService;->access$9200(Lcom/android/server/notification/NotificationManagerService;)F
+PLcom/android/server/notification/NotificationManagerService;->access$9200(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
 PLcom/android/server/notification/NotificationManagerService;->access$9200(Lcom/android/server/notification/NotificationManagerService;I)V
 HPLcom/android/server/notification/NotificationManagerService;->access$9200(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
 PLcom/android/server/notification/NotificationManagerService;->access$9200(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/toast/ToastRecord;)V
@@ -22220,15 +23704,18 @@
 HPLcom/android/server/notification/NotificationManagerService;->access$9700(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$9700(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
 HSPLcom/android/server/notification/NotificationManagerService;->access$9700(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
+PLcom/android/server/notification/NotificationManagerService;->access$9800(Lcom/android/server/notification/NotificationManagerService;)V
 PLcom/android/server/notification/NotificationManagerService;->access$9800(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
 HPLcom/android/server/notification/NotificationManagerService;->access$9800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
 HPLcom/android/server/notification/NotificationManagerService;->access$9800(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
-HPLcom/android/server/notification/NotificationManagerService;->access$9900(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
+PLcom/android/server/notification/NotificationManagerService;->access$9900(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/NotificationManagerService;->access$9900(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
 HPLcom/android/server/notification/NotificationManagerService;->addAutoGroupAdjustment(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService;->addAutogroupKeyLocked(Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService;->addDisabledHint(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 PLcom/android/server/notification/NotificationManagerService;->addDisabledHints(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
 HSPLcom/android/server/notification/NotificationManagerService;->allowAssistant(ILandroid/content/ComponentName;)Z
+PLcom/android/server/notification/NotificationManagerService;->allowDefaultApprovedServices(I)V
 HPLcom/android/server/notification/NotificationManagerService;->applyAdjustment(Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/Adjustment;)V
 HPLcom/android/server/notification/NotificationManagerService;->applyFlagBubble(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
 HPLcom/android/server/notification/NotificationManagerService;->applyZenModeLocked(Lcom/android/server/notification/NotificationRecord;)V
@@ -22278,8 +23765,10 @@
 PLcom/android/server/notification/NotificationManagerService;->dumpNotificationRecords(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 PLcom/android/server/notification/NotificationManagerService;->dumpProto(Ljava/io/FileDescriptor;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 HSPLcom/android/server/notification/NotificationManagerService;->enqueueNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;I)V
+HPLcom/android/server/notification/NotificationManagerService;->enqueueNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;IZ)V
 PLcom/android/server/notification/NotificationManagerService;->exitIdle()V
 PLcom/android/server/notification/NotificationManagerService;->findCurrentAndSnoozedGroupNotificationsLocked(Ljava/lang/String;Ljava/lang/String;I)Ljava/util/List;
+HPLcom/android/server/notification/NotificationManagerService;->findEnqueuedNotificationsForCriteria(Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->findGroupNotificationByListLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;I)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->findGroupNotificationsLocked(Ljava/lang/String;Ljava/lang/String;I)Ljava/util/List;
 PLcom/android/server/notification/NotificationManagerService;->findInCurrentAndSnoozedNotificationByKeyLocked(Ljava/lang/String;)Lcom/android/server/notification/NotificationRecord;
@@ -22289,7 +23778,7 @@
 HSPLcom/android/server/notification/NotificationManagerService;->findNotificationLocked(Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
 HPLcom/android/server/notification/NotificationManagerService;->findNotificationRecordIndexLocked(Lcom/android/server/notification/NotificationRecord;)I
 HPLcom/android/server/notification/NotificationManagerService;->findNotificationsByListLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
-PLcom/android/server/notification/NotificationManagerService;->finishTokenLocked(Landroid/os/IBinder;I)V
+HPLcom/android/server/notification/NotificationManagerService;->finishTokenLocked(Landroid/os/IBinder;I)V
 HPLcom/android/server/notification/NotificationManagerService;->finishWindowTokenLocked(Landroid/os/IBinder;I)V
 HSPLcom/android/server/notification/NotificationManagerService;->fixNotification(Landroid/app/Notification;Ljava/lang/String;Ljava/lang/String;II)V
 HSPLcom/android/server/notification/NotificationManagerService;->flagNotificationForBubbles(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
@@ -22300,13 +23789,14 @@
 HSPLcom/android/server/notification/NotificationManagerService;->getLongArray(Landroid/content/res/Resources;II[J)[J
 HPLcom/android/server/notification/NotificationManagerService;->getNotificationCountLocked(Ljava/lang/String;IILjava/lang/String;)I
 HSPLcom/android/server/notification/NotificationManagerService;->getRealUserId(I)I
+HPLcom/android/server/notification/NotificationManagerService;->getShortcutInfo(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ShortcutInfo;
 HPLcom/android/server/notification/NotificationManagerService;->getSuppressors()Ljava/util/ArrayList;
 HPLcom/android/server/notification/NotificationManagerService;->getToastRecord(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;Landroid/app/ITransientNotification;ILandroid/os/Binder;ILandroid/app/ITransientNotificationCallback;)Lcom/android/server/notification/toast/ToastRecord;
 HPLcom/android/server/notification/NotificationManagerService;->grantUriPermission(Landroid/os/IBinder;Landroid/net/Uri;ILjava/lang/String;I)V
 PLcom/android/server/notification/NotificationManagerService;->handleDurationReached(Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
 HPLcom/android/server/notification/NotificationManagerService;->handleDurationReached(Lcom/android/server/notification/toast/ToastRecord;)V
 HSPLcom/android/server/notification/NotificationManagerService;->handleGroupedNotificationLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
-PLcom/android/server/notification/NotificationManagerService;->handleKillTokenTimeout(Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
+HPLcom/android/server/notification/NotificationManagerService;->handleKillTokenTimeout(Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
 HPLcom/android/server/notification/NotificationManagerService;->handleKillTokenTimeout(Lcom/android/server/notification/toast/ToastRecord;)V
 HPLcom/android/server/notification/NotificationManagerService;->handleListenerHintsChanged(I)V
 PLcom/android/server/notification/NotificationManagerService;->handleListenerInterruptionFilterChanged(I)V
@@ -22323,6 +23813,7 @@
 HPLcom/android/server/notification/NotificationManagerService;->indexOfToastLocked(Ljava/lang/String;Landroid/app/ITransientNotification;)I
 HPLcom/android/server/notification/NotificationManagerService;->indexOfToastLocked(Ljava/lang/String;Landroid/os/IBinder;)I
 HSPLcom/android/server/notification/NotificationManagerService;->init(Lcom/android/server/notification/NotificationManagerService$WorkerHandler;Lcom/android/server/notification/RankingHandler;Landroid/content/pm/IPackageManager;Landroid/content/pm/PackageManager;Lcom/android/server/lights/LightsManager;Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/ConditionProviders;Landroid/companion/ICompanionDeviceManager;Lcom/android/server/notification/SnoozeHelper;Lcom/android/server/notification/NotificationUsageStats;Landroid/util/AtomicFile;Landroid/app/ActivityManager;Lcom/android/server/notification/GroupHelper;Landroid/app/IActivityManager;Landroid/app/usage/UsageStatsManagerInternal;Landroid/app/admin/DevicePolicyManagerInternal;Landroid/app/IUriGrantsManager;Lcom/android/server/uri/UriGrantsManagerInternal;Landroid/app/AppOpsManager;Landroid/os/UserManager;Lcom/android/server/notification/NotificationHistoryManager;)V
+HSPLcom/android/server/notification/NotificationManagerService;->init(Lcom/android/server/notification/NotificationManagerService$WorkerHandler;Lcom/android/server/notification/RankingHandler;Landroid/content/pm/IPackageManager;Landroid/content/pm/PackageManager;Lcom/android/server/lights/LightsManager;Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/ConditionProviders;Landroid/companion/ICompanionDeviceManager;Lcom/android/server/notification/SnoozeHelper;Lcom/android/server/notification/NotificationUsageStats;Landroid/util/AtomicFile;Landroid/app/ActivityManager;Lcom/android/server/notification/GroupHelper;Landroid/app/IActivityManager;Landroid/app/usage/UsageStatsManagerInternal;Landroid/app/admin/DevicePolicyManagerInternal;Landroid/app/IUriGrantsManager;Lcom/android/server/uri/UriGrantsManagerInternal;Landroid/app/AppOpsManager;Landroid/os/UserManager;Lcom/android/server/notification/NotificationHistoryManager;Landroid/app/StatsManager;)V
 HSPLcom/android/server/notification/NotificationManagerService;->isBlocked(Lcom/android/server/notification/NotificationRecord;)Z
 HSPLcom/android/server/notification/NotificationManagerService;->isBlocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationUsageStats;)Z
 HSPLcom/android/server/notification/NotificationManagerService;->isCallerAndroid(Ljava/lang/String;I)Z
@@ -22345,10 +23836,14 @@
 HPLcom/android/server/notification/NotificationManagerService;->keepProcessAliveForToastIfNeededLocked(I)V
 HPLcom/android/server/notification/NotificationManagerService;->keepProcessAliveIfNeededLocked(I)V
 HPLcom/android/server/notification/NotificationManagerService;->lambda$doChannelWarningToast$3$NotificationManagerService(Ljava/lang/CharSequence;)V
+PLcom/android/server/notification/NotificationManagerService;->lambda$doChannelWarningToast$4$NotificationManagerService(Ljava/lang/CharSequence;)V
 PLcom/android/server/notification/NotificationManagerService;->lambda$onStopUser$2$NotificationManagerService(Landroid/content/pm/UserInfo;)V
 PLcom/android/server/notification/NotificationManagerService;->lambda$onUnlockUser$1$NotificationManagerService(Landroid/content/pm/UserInfo;)V
+PLcom/android/server/notification/NotificationManagerService;->lambda$onUnlockUser$2$NotificationManagerService(Landroid/content/pm/UserInfo;)V
 HSPLcom/android/server/notification/NotificationManagerService;->lambda$playVibration$4$NotificationManagerService(Lcom/android/server/notification/NotificationRecord;Landroid/os/VibrationEffect;)V
+HPLcom/android/server/notification/NotificationManagerService;->lambda$playVibration$5$NotificationManagerService(Lcom/android/server/notification/NotificationRecord;Landroid/os/VibrationEffect;)V
 PLcom/android/server/notification/NotificationManagerService;->lambda$registerDeviceConfigChange$0$NotificationManagerService(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/notification/NotificationManagerService;->lambda$registerDeviceConfigChange$1$NotificationManagerService(Landroid/provider/DeviceConfig$Properties;)V
 HSPLcom/android/server/notification/NotificationManagerService;->listenForCallState()V
 HSPLcom/android/server/notification/NotificationManagerService;->loadPolicyFile()V
 PLcom/android/server/notification/NotificationManagerService;->logBubbleError(Ljava/lang/String;Ljava/lang/String;)V
@@ -22359,15 +23854,18 @@
 PLcom/android/server/notification/NotificationManagerService;->notificationMatchesCurrentProfiles(Lcom/android/server/notification/NotificationRecord;I)Z
 HPLcom/android/server/notification/NotificationManagerService;->notificationMatchesUserId(Lcom/android/server/notification/NotificationRecord;I)Z
 HSPLcom/android/server/notification/NotificationManagerService;->onBootPhase(I)V
+HPLcom/android/server/notification/NotificationManagerService;->onConversationRemovedInternal(Ljava/lang/String;ILjava/lang/String;)V
 HSPLcom/android/server/notification/NotificationManagerService;->onStart()V
 PLcom/android/server/notification/NotificationManagerService;->onStopUser(Landroid/content/pm/UserInfo;)V
 PLcom/android/server/notification/NotificationManagerService;->onUnlockUser(Landroid/content/pm/UserInfo;)V
 PLcom/android/server/notification/NotificationManagerService;->playInCallNotification()V
 HSPLcom/android/server/notification/NotificationManagerService;->playSound(Lcom/android/server/notification/NotificationRecord;Landroid/net/Uri;)Z
 HSPLcom/android/server/notification/NotificationManagerService;->playVibration(Lcom/android/server/notification/NotificationRecord;[JZ)Z
+PLcom/android/server/notification/NotificationManagerService;->pullNotificationStates(ILjava/util/List;)I
 HSPLcom/android/server/notification/NotificationManagerService;->readPolicyXml(Ljava/io/InputStream;ZI)V
 PLcom/android/server/notification/NotificationManagerService;->recordCallerLocked(Lcom/android/server/notification/NotificationRecord;)V
 HSPLcom/android/server/notification/NotificationManagerService;->registerDeviceConfigChange()V
+HSPLcom/android/server/notification/NotificationManagerService;->registerNotificationPreferencesPullers()V
 PLcom/android/server/notification/NotificationManagerService;->removeAutogroupKeyLocked(Ljava/lang/String;)V
 PLcom/android/server/notification/NotificationManagerService;->removeDisabledHints(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
 HPLcom/android/server/notification/NotificationManagerService;->removeDisabledHints(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)Z
@@ -22390,7 +23888,7 @@
 HSPLcom/android/server/notification/NotificationManagerService;->setDefaultAssistantForUser(I)V
 HSPLcom/android/server/notification/NotificationManagerService;->setNotificationAssistantAccessGrantedForUserInternal(Landroid/content/ComponentName;IZ)V
 HSPLcom/android/server/notification/NotificationManagerService;->shouldMuteNotificationLocked(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationManagerService;->showNextToastLocked()V
+HPLcom/android/server/notification/NotificationManagerService;->showNextToastLocked()V
 PLcom/android/server/notification/NotificationManagerService;->snoozeNotificationInt(Ljava/lang/String;JLjava/lang/String;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
 HPLcom/android/server/notification/NotificationManagerService;->unhideNotificationsForPackages([Ljava/lang/String;)V
 HPLcom/android/server/notification/NotificationManagerService;->updateAutobundledSummaryFlags(ILjava/lang/String;ZZ)V
@@ -22463,6 +23961,7 @@
 HPLcom/android/server/notification/NotificationRecord;->getRankingScore()F
 HPLcom/android/server/notification/NotificationRecord;->getRankingTimeMs()J
 HPLcom/android/server/notification/NotificationRecord;->getSbn()Landroid/service/notification/StatusBarNotification;
+HPLcom/android/server/notification/NotificationRecord;->getShortcutInfo()Landroid/content/pm/ShortcutInfo;
 HSPLcom/android/server/notification/NotificationRecord;->getSmartReplies()Ljava/util/ArrayList;
 HSPLcom/android/server/notification/NotificationRecord;->getSnoozeCriteria()Ljava/util/ArrayList;
 HSPLcom/android/server/notification/NotificationRecord;->getSound()Landroid/net/Uri;
@@ -22471,6 +23970,7 @@
 HSPLcom/android/server/notification/NotificationRecord;->getSuppressedVisualEffects()I
 HSPLcom/android/server/notification/NotificationRecord;->getSystemGeneratedSmartActions()Ljava/util/ArrayList;
 HSPLcom/android/server/notification/NotificationRecord;->getUid()I
+HPLcom/android/server/notification/NotificationRecord;->getUpdateTimeMs()J
 HSPLcom/android/server/notification/NotificationRecord;->getUser()Landroid/os/UserHandle;
 HSPLcom/android/server/notification/NotificationRecord;->getUserId()I
 HSPLcom/android/server/notification/NotificationRecord;->getUserSentiment()I
@@ -22513,18 +24013,22 @@
 HPLcom/android/server/notification/NotificationRecord;->setOverrideGroupKey(Ljava/lang/String;)V
 HSPLcom/android/server/notification/NotificationRecord;->setPackagePriority(I)V
 HSPLcom/android/server/notification/NotificationRecord;->setPackageVisibilityOverride(I)V
+PLcom/android/server/notification/NotificationRecord;->setPostSilently(Z)V
 HSPLcom/android/server/notification/NotificationRecord;->setRecentlyIntrusive(Z)V
 HSPLcom/android/server/notification/NotificationRecord;->setRecordedInterruption(Z)V
 HPLcom/android/server/notification/NotificationRecord;->setSeen()V
 PLcom/android/server/notification/NotificationRecord;->setSeenSmartReplies(Z)V
+HPLcom/android/server/notification/NotificationRecord;->setShortcutInfo(Landroid/content/pm/ShortcutInfo;)V
 HSPLcom/android/server/notification/NotificationRecord;->setShowBadge(Z)V
 PLcom/android/server/notification/NotificationRecord;->setSmartReplies(Ljava/util/ArrayList;)V
 PLcom/android/server/notification/NotificationRecord;->setSuggestionsGeneratedByAssistant(Z)V
 HSPLcom/android/server/notification/NotificationRecord;->setSuppressedVisualEffects(I)V
-PLcom/android/server/notification/NotificationRecord;->setSystemGeneratedSmartActions(Ljava/util/ArrayList;)V
+HPLcom/android/server/notification/NotificationRecord;->setSystemGeneratedSmartActions(Ljava/util/ArrayList;)V
 HPLcom/android/server/notification/NotificationRecord;->setSystemImportance(I)V
 HPLcom/android/server/notification/NotificationRecord;->setTextChanged(Z)V
 HPLcom/android/server/notification/NotificationRecord;->setVisibility(ZII)V
+HPLcom/android/server/notification/NotificationRecord;->setVisibility(ZIILcom/android/server/notification/NotificationRecordLogger;)V
+HPLcom/android/server/notification/NotificationRecord;->shouldPostSilently()Z
 HPLcom/android/server/notification/NotificationRecord;->toString()Ljava/lang/String;
 HSPLcom/android/server/notification/NotificationRecord;->updateNotificationChannel(Landroid/app/NotificationChannel;)V
 HSPLcom/android/server/notification/NotificationRecord;->visitGrantableUri(Landroid/net/Uri;Z)V
@@ -22533,15 +24037,24 @@
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;->fromCancelReason(II)Lcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;->getId()I
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;->values()[Lcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;
+PLcom/android/server/notification/NotificationRecordLogger$NotificationEvent;-><clinit>()V
+PLcom/android/server/notification/NotificationRecordLogger$NotificationEvent;-><init>(Ljava/lang/String;II)V
+PLcom/android/server/notification/NotificationRecordLogger$NotificationEvent;->fromVisibility(Z)Lcom/android/server/notification/NotificationRecordLogger$NotificationEvent;
+PLcom/android/server/notification/NotificationRecordLogger$NotificationEvent;->getId()I
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;-><init>(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getAssistantHash()I
+PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getChannelIdHash()I
+PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getGroupIdHash()I
 PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getInstanceId()I
+PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getNotificationIdHash()I
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getNumPeople()I
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getNumPeople(Landroid/os/Bundle;)I
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getStyle()I
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getStyle(Landroid/os/Bundle;)I
 PLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->getUiEvent()Lcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvents;
 HPLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->shouldLog(I)Z
+HPLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->shouldLogReported(I)Z
+HPLcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;->smallHash(I)I
 PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;-><clinit>()V
 PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;-><init>(Ljava/lang/String;II)V
 PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;->fromRecordPair(Lcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;)Lcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;
@@ -22549,9 +24062,14 @@
 PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvents;-><clinit>()V
 PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvents;-><init>(Ljava/lang/String;II)V
 PLcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvents;->getId()I
+HPLcom/android/server/notification/NotificationRecordLogger;->smallHash(I)I
+HPLcom/android/server/notification/NotificationRecordLogger;->smallHash(Ljava/lang/String;)I
 HSPLcom/android/server/notification/NotificationRecordLoggerImpl;-><init>()V
+PLcom/android/server/notification/NotificationRecordLoggerImpl;->log(Lcom/android/internal/logging/UiEventLogger$UiEventEnum;Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/NotificationRecordLoggerImpl;->logNotificationCancelled(Lcom/android/server/notification/NotificationRecord;II)V
 HPLcom/android/server/notification/NotificationRecordLoggerImpl;->logNotificationReported(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
+PLcom/android/server/notification/NotificationRecordLoggerImpl;->logNotificationVisibility(Lcom/android/server/notification/NotificationRecord;Z)V
+HPLcom/android/server/notification/NotificationRecordLoggerImpl;->maybeLogNotificationPosted(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
 HSPLcom/android/server/notification/NotificationUsageStats$1;-><init>(Lcom/android/server/notification/NotificationUsageStats;Landroid/os/Looper;)V
 PLcom/android/server/notification/NotificationUsageStats$1;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;-><init>(Landroid/content/Context;Ljava/lang/String;)V
@@ -22602,7 +24120,7 @@
 PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->getCurrentAirtimeExpandedMs()J
 PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->getCurrentAirtimeMs()J
 HPLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->getCurrentPosttimeMs()J
-PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->hasBeenVisiblyExpanded()Z
+HPLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->hasBeenVisiblyExpanded()Z
 PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->onClick()V
 PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->onDismiss()V
 PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->onExpansionChanged(ZZ)V
@@ -22638,6 +24156,7 @@
 HSPLcom/android/server/notification/PreferencesHelper$PackagePreferences;-><init>(Lcom/android/server/notification/PreferencesHelper$1;)V
 PLcom/android/server/notification/PreferencesHelper$PackagePreferences;->isValidDelegate(Ljava/lang/String;I)Z
 HSPLcom/android/server/notification/PreferencesHelper;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManager;Lcom/android/server/notification/RankingHandler;Lcom/android/server/notification/ZenModeHelper;)V
+PLcom/android/server/notification/PreferencesHelper;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManager;Lcom/android/server/notification/RankingHandler;Lcom/android/server/notification/ZenModeHelper;Lcom/android/server/notification/NotificationChannelLogger;)V
 HSPLcom/android/server/notification/PreferencesHelper;->areBubblesAllowed(Ljava/lang/String;I)Z
 HSPLcom/android/server/notification/PreferencesHelper;->badgingEnabled(Landroid/os/UserHandle;)Z
 HSPLcom/android/server/notification/PreferencesHelper;->bubblesEnabled()Z
@@ -22648,9 +24167,11 @@
 HSPLcom/android/server/notification/PreferencesHelper;->createDefaultChannelIfNeededLocked(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;)Z
 HSPLcom/android/server/notification/PreferencesHelper;->createNotificationChannel(Ljava/lang/String;ILandroid/app/NotificationChannel;ZZ)Z
 HPLcom/android/server/notification/PreferencesHelper;->createNotificationChannelGroup(Ljava/lang/String;ILandroid/app/NotificationChannelGroup;Z)V
+HPLcom/android/server/notification/PreferencesHelper;->deleteConversation(Ljava/lang/String;ILjava/lang/String;)Ljava/util/List;
 HSPLcom/android/server/notification/PreferencesHelper;->deleteDefaultChannelIfNeededLocked(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;)Z
 HSPLcom/android/server/notification/PreferencesHelper;->deleteNotificationChannel(Ljava/lang/String;ILjava/lang/String;)V
 HPLcom/android/server/notification/PreferencesHelper;->deleteNotificationChannelGroup(Ljava/lang/String;ILjava/lang/String;)Ljava/util/List;
+HPLcom/android/server/notification/PreferencesHelper;->deleteNotificationChannelLocked(Landroid/app/NotificationChannel;Ljava/lang/String;I)V
 PLcom/android/server/notification/PreferencesHelper;->dump(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 PLcom/android/server/notification/PreferencesHelper;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 HPLcom/android/server/notification/PreferencesHelper;->dumpBansJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONArray;
@@ -22691,6 +24212,9 @@
 PLcom/android/server/notification/PreferencesHelper;->onUserUnlocked(I)V
 HPLcom/android/server/notification/PreferencesHelper;->onlyHasDefaultChannel(Ljava/lang/String;I)Z
 HSPLcom/android/server/notification/PreferencesHelper;->packagePreferencesKey(Ljava/lang/String;I)Ljava/lang/String;
+HPLcom/android/server/notification/PreferencesHelper;->pullPackageChannelGroupPreferencesStats(Ljava/util/List;)V
+HPLcom/android/server/notification/PreferencesHelper;->pullPackageChannelPreferencesStats(Ljava/util/List;)V
+HPLcom/android/server/notification/PreferencesHelper;->pullPackagePreferencesStats(Ljava/util/List;)V
 HSPLcom/android/server/notification/PreferencesHelper;->readXml(Lorg/xmlpull/v1/XmlPullParser;ZI)V
 PLcom/android/server/notification/PreferencesHelper;->setEnabled(Ljava/lang/String;IZ)V
 PLcom/android/server/notification/PreferencesHelper;->setImportance(Ljava/lang/String;II)V
@@ -22749,6 +24273,7 @@
 HSPLcom/android/server/notification/ScheduleConditionProvider;->onBootComplete()V
 HSPLcom/android/server/notification/ScheduleConditionProvider;->onConnected()V
 HSPLcom/android/server/notification/ScheduleConditionProvider;->onSubscribe(Landroid/net/Uri;)V
+PLcom/android/server/notification/ScheduleConditionProvider;->onUnsubscribe(Landroid/net/Uri;)V
 HSPLcom/android/server/notification/ScheduleConditionProvider;->readSnoozed()V
 HSPLcom/android/server/notification/ScheduleConditionProvider;->removeSnoozed(Landroid/net/Uri;)V
 HSPLcom/android/server/notification/ScheduleConditionProvider;->saveSnoozedLocked()V
@@ -22762,22 +24287,26 @@
 PLcom/android/server/notification/SnoozeHelper;->access$100()Ljava/lang/String;
 HSPLcom/android/server/notification/SnoozeHelper;->cancel(ILjava/lang/String;)Z
 HSPLcom/android/server/notification/SnoozeHelper;->cancel(ILjava/lang/String;Ljava/lang/String;I)Z
+PLcom/android/server/notification/SnoozeHelper;->cancel(IZ)V
 PLcom/android/server/notification/SnoozeHelper;->cancel(IZ)Z
 HPLcom/android/server/notification/SnoozeHelper;->clearData(ILjava/lang/String;)V
 PLcom/android/server/notification/SnoozeHelper;->createPendingIntent(Ljava/lang/String;Ljava/lang/String;I)Landroid/app/PendingIntent;
 PLcom/android/server/notification/SnoozeHelper;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
 PLcom/android/server/notification/SnoozeHelper;->getNotifications(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;)Ljava/util/ArrayList;
+HSPLcom/android/server/notification/SnoozeHelper;->getPkgKey(ILjava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/notification/SnoozeHelper;->getSnoozeContextForUnpostedNotification(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/notification/SnoozeHelper;->getSnoozeTimeForUnpostedNotification(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/Long;
 PLcom/android/server/notification/SnoozeHelper;->getSnoozed()Ljava/util/List;
 HPLcom/android/server/notification/SnoozeHelper;->getSnoozed(ILjava/lang/String;)Ljava/util/Collection;
 HSPLcom/android/server/notification/SnoozeHelper;->isSnoozed(ILjava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/notification/SnoozeHelper;->lambda$writeXml$0(JLorg/xmlpull/v1/XmlSerializer;Ljava/lang/Long;)V
+HPLcom/android/server/notification/SnoozeHelper;->lambda$writeXml$0(JLorg/xmlpull/v1/XmlSerializer;Ljava/lang/Long;)V
 HSPLcom/android/server/notification/SnoozeHelper;->readXml(Lorg/xmlpull/v1/XmlPullParser;)V
+PLcom/android/server/notification/SnoozeHelper;->readXml(Lorg/xmlpull/v1/XmlPullParser;J)V
 HSPLcom/android/server/notification/SnoozeHelper;->removeRecord(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Landroid/util/ArrayMap;)Ljava/lang/Object;
 PLcom/android/server/notification/SnoozeHelper;->repost(Ljava/lang/String;I)V
 HPLcom/android/server/notification/SnoozeHelper;->repostGroupSummary(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/notification/SnoozeHelper;->scheduleRepost(Ljava/lang/String;Ljava/lang/String;IJ)V
+PLcom/android/server/notification/SnoozeHelper;->scheduleRepostsForPersistedNotifications(J)V
 PLcom/android/server/notification/SnoozeHelper;->snooze(Lcom/android/server/notification/NotificationRecord;)V
 PLcom/android/server/notification/SnoozeHelper;->snooze(Lcom/android/server/notification/NotificationRecord;J)V
 PLcom/android/server/notification/SnoozeHelper;->storeRecord(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Landroid/util/ArrayMap;Ljava/lang/Object;)V
@@ -22789,7 +24318,8 @@
 HSPLcom/android/server/notification/SystemConditionProviderService;->formatDuration(J)Ljava/lang/String;
 HSPLcom/android/server/notification/SystemConditionProviderService;->ts(J)Ljava/lang/String;
 HSPLcom/android/server/notification/ValidateNotificationPeople$1;-><init>(Lcom/android/server/notification/ValidateNotificationPeople;Landroid/os/Handler;)V
-PLcom/android/server/notification/ValidateNotificationPeople$1;->onChange(ZLandroid/net/Uri;I)V
+HPLcom/android/server/notification/ValidateNotificationPeople$1;->onChange(ZLandroid/net/Uri;I)V
+PLcom/android/server/notification/ValidateNotificationPeople$1;->onChange(ZLjava/lang/Iterable;II)V
 PLcom/android/server/notification/ValidateNotificationPeople$2;-><init>(Lcom/android/server/notification/ValidateNotificationPeople;Lcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;Ljava/util/concurrent/Semaphore;)V
 PLcom/android/server/notification/ValidateNotificationPeople$2;->run()V
 HPLcom/android/server/notification/ValidateNotificationPeople$LookupResult;-><init>()V
@@ -23023,8 +24553,8 @@
 HSPLcom/android/server/notification/ZenModeHelper;->writeXml(Lorg/xmlpull/v1/XmlSerializer;ZLjava/lang/Integer;I)V
 HSPLcom/android/server/notification/ZenModeHelper;->zenSeverity(I)I
 PLcom/android/server/notification/toast/CustomToastRecord;-><init>(Lcom/android/server/notification/NotificationManagerService;ILjava/lang/String;Landroid/os/IBinder;Landroid/app/ITransientNotification;ILandroid/os/Binder;I)V
-PLcom/android/server/notification/toast/CustomToastRecord;->hide()V
-PLcom/android/server/notification/toast/CustomToastRecord;->show()Z
+HPLcom/android/server/notification/toast/CustomToastRecord;->hide()V
+HPLcom/android/server/notification/toast/CustomToastRecord;->show()Z
 HPLcom/android/server/notification/toast/TextToastRecord;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/statusbar/StatusBarManagerInternal;ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/CharSequence;ILandroid/os/Binder;ILandroid/app/ITransientNotificationCallback;)V
 HPLcom/android/server/notification/toast/TextToastRecord;->hide()V
 HPLcom/android/server/notification/toast/TextToastRecord;->show()Z
@@ -23037,10 +24567,13 @@
 PLcom/android/server/oemlock/-$$Lambda$VendorLock$8zNsLj4Jt-s5XEEk_KIC2zQR29g;->onValues(IZ)V
 PLcom/android/server/oemlock/-$$Lambda$VendorLock$HjegvthxXAHFarV_FukbaMGePGU;-><init>([Ljava/lang/Integer;[Ljava/lang/Boolean;)V
 PLcom/android/server/oemlock/-$$Lambda$VendorLock$HjegvthxXAHFarV_FukbaMGePGU;->onValues(IZ)V
+PLcom/android/server/oemlock/-$$Lambda$VendorLock$mE2wEMNMcvqMft72oSVABYa_mYs;-><init>([Ljava/lang/Integer;[Ljava/lang/String;)V
+PLcom/android/server/oemlock/-$$Lambda$VendorLock$mE2wEMNMcvqMft72oSVABYa_mYs;->onValues(ILjava/lang/String;)V
 HSPLcom/android/server/oemlock/OemLock;-><init>()V
 HSPLcom/android/server/oemlock/OemLockService$1;-><init>(Lcom/android/server/oemlock/OemLockService;)V
 HSPLcom/android/server/oemlock/OemLockService$1;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
 HSPLcom/android/server/oemlock/OemLockService$2;-><init>(Lcom/android/server/oemlock/OemLockService;)V
+PLcom/android/server/oemlock/OemLockService$2;->getLockName()Ljava/lang/String;
 PLcom/android/server/oemlock/OemLockService$2;->isDeviceOemUnlocked()Z
 PLcom/android/server/oemlock/OemLockService$2;->isOemUnlockAllowed()Z
 PLcom/android/server/oemlock/OemLockService$2;->isOemUnlockAllowedByCarrier()Z
@@ -23059,9 +24592,11 @@
 HSPLcom/android/server/oemlock/OemLockService;->onStart()V
 PLcom/android/server/oemlock/OemLockService;->setPersistentDataBlockOemUnlockAllowedBit(Z)V
 HSPLcom/android/server/oemlock/VendorLock;-><init>(Landroid/content/Context;Landroid/hardware/oemlock/V1_0/IOemLock;)V
+PLcom/android/server/oemlock/VendorLock;->getLockName()Ljava/lang/String;
 HSPLcom/android/server/oemlock/VendorLock;->getOemLockHalService()Landroid/hardware/oemlock/V1_0/IOemLock;
 PLcom/android/server/oemlock/VendorLock;->isOemUnlockAllowedByCarrier()Z
 PLcom/android/server/oemlock/VendorLock;->isOemUnlockAllowedByDevice()Z
+PLcom/android/server/oemlock/VendorLock;->lambda$getLockName$0([Ljava/lang/Integer;[Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/oemlock/VendorLock;->lambda$isOemUnlockAllowedByCarrier$1([Ljava/lang/Integer;[Ljava/lang/Boolean;IZ)V
 PLcom/android/server/oemlock/VendorLock;->lambda$isOemUnlockAllowedByDevice$2([Ljava/lang/Integer;[Ljava/lang/Boolean;IZ)V
 PLcom/android/server/oemlock/VendorLock;->setOemUnlockAllowedByCarrier(Z[B)V
@@ -23134,17 +24669,21 @@
 HSPLcom/android/server/om/IdmapDaemon;->verifyIdmap(Ljava/lang/String;IZI)Z
 HSPLcom/android/server/om/IdmapManager;-><clinit>()V
 HSPLcom/android/server/om/IdmapManager;-><init>(Lcom/android/server/om/OverlayManagerServiceImpl$PackageManagerHelper;)V
+HSPLcom/android/server/om/IdmapManager;-><init>(Lcom/android/server/om/OverlayableInfoCallback;)V
 HSPLcom/android/server/om/IdmapManager;->calculateFulfilledPolicies(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;I)I
 HSPLcom/android/server/om/IdmapManager;->createIdmap(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;I)Z
 HSPLcom/android/server/om/IdmapManager;->enforceOverlayable(Landroid/content/pm/PackageInfo;)Z
 HSPLcom/android/server/om/IdmapManager;->getIdmapPath(Ljava/lang/String;I)Ljava/lang/String;
 PLcom/android/server/om/IdmapManager;->idmapExists(Landroid/content/om/OverlayInfo;)Z
 HSPLcom/android/server/om/IdmapManager;->idmapExists(Landroid/content/pm/PackageInfo;I)Z
+HSPLcom/android/server/om/IdmapManager;->matchesActorSignature(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;I)Z
 PLcom/android/server/om/IdmapManager;->removeIdmap(Landroid/content/om/OverlayInfo;I)Z
-PLcom/android/server/om/OverlayActorEnforcer$ActorState;-><clinit>()V
-PLcom/android/server/om/OverlayActorEnforcer$ActorState;-><init>(Ljava/lang/String;I)V
+HSPLcom/android/server/om/OverlayActorEnforcer$ActorState;-><clinit>()V
+HSPLcom/android/server/om/OverlayActorEnforcer$ActorState;-><init>(Ljava/lang/String;I)V
 HSPLcom/android/server/om/OverlayActorEnforcer;-><init>(Lcom/android/server/om/OverlayActorEnforcer$VerifyCallback;)V
+HSPLcom/android/server/om/OverlayActorEnforcer;-><init>(Lcom/android/server/om/OverlayableInfoCallback;)V
 PLcom/android/server/om/OverlayActorEnforcer;->enforceActor(Landroid/content/om/OverlayInfo;Ljava/lang/String;II)V
+HSPLcom/android/server/om/OverlayActorEnforcer;->getPackageNameForActor(Ljava/lang/String;Ljava/util/Map;)Landroid/util/Pair;
 PLcom/android/server/om/OverlayActorEnforcer;->isAllowedActor(Ljava/lang/String;Landroid/content/om/OverlayInfo;II)Lcom/android/server/om/OverlayActorEnforcer$ActorState;
 HSPLcom/android/server/om/OverlayManagerService$1;-><init>(Lcom/android/server/om/OverlayManagerService;)V
 PLcom/android/server/om/OverlayManagerService$1;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
@@ -23173,6 +24712,16 @@
 HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->getPackageInfo(Ljava/lang/String;IZ)Landroid/content/pm/PackageInfo;
 PLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->getPackagesForUid(I)[Ljava/lang/String;
 HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->signaturesMatching(Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->cachePackageInfo(Ljava/lang/String;ILandroid/content/pm/PackageInfo;)V
+PLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->dump(Ljava/io/PrintWriter;Lcom/android/server/om/DumpState;)V
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->getCachedPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->getNamedActors()Ljava/util/Map;
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->getOverlayPackages(I)Ljava/util/List;
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->getOverlayableForTarget(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/om/OverlayableInfo;
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->getPackageInfo(Ljava/lang/String;IZ)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;->signaturesMatching(Ljava/lang/String;Ljava/lang/String;I)Z
 HSPLcom/android/server/om/OverlayManagerService$PackageReceiver;-><init>(Lcom/android/server/om/OverlayManagerService;)V
 HSPLcom/android/server/om/OverlayManagerService$PackageReceiver;-><init>(Lcom/android/server/om/OverlayManagerService;Lcom/android/server/om/OverlayManagerService$1;)V
 HPLcom/android/server/om/OverlayManagerService$PackageReceiver;->onPackageAdded(Ljava/lang/String;[I)V
@@ -23188,6 +24737,7 @@
 PLcom/android/server/om/OverlayManagerService;->access$1000(Lcom/android/server/om/OverlayManagerService;ILjava/lang/String;)V
 PLcom/android/server/om/OverlayManagerService;->access$400(Lcom/android/server/om/OverlayManagerService;)Ljava/lang/Object;
 PLcom/android/server/om/OverlayManagerService;->access$500(Lcom/android/server/om/OverlayManagerService;)Lcom/android/server/om/OverlayManagerService$PackageManagerHelper;
+PLcom/android/server/om/OverlayManagerService;->access$500(Lcom/android/server/om/OverlayManagerService;)Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;
 PLcom/android/server/om/OverlayManagerService;->access$600(Lcom/android/server/om/OverlayManagerService;)Lcom/android/server/om/OverlayManagerServiceImpl;
 PLcom/android/server/om/OverlayManagerService;->access$700(Lcom/android/server/om/OverlayManagerService;ILjava/util/List;)Ljava/util/ArrayList;
 PLcom/android/server/om/OverlayManagerService;->access$700(Lcom/android/server/om/OverlayManagerService;ILjava/util/List;)V
@@ -23204,13 +24754,18 @@
 HSPLcom/android/server/om/OverlayManagerService;->updateAssets(ILjava/util/List;)V
 HSPLcom/android/server/om/OverlayManagerService;->updateOverlayPaths(ILjava/util/List;)Ljava/util/ArrayList;
 HSPLcom/android/server/om/OverlayManagerService;->updateOverlayPaths(ILjava/util/List;)V
+HSPLcom/android/server/om/OverlayManagerServiceImpl;-><init>(Lcom/android/server/om/OverlayManagerServiceImpl$PackageManagerHelper;Lcom/android/server/om/IdmapManager;Lcom/android/server/om/OverlayManagerSettings;Lcom/android/internal/content/om/OverlayConfig;[Ljava/lang/String;Lcom/android/server/om/OverlayManagerServiceImpl$OverlayChangeListener;)V
 HSPLcom/android/server/om/OverlayManagerServiceImpl;-><init>(Lcom/android/server/om/OverlayManagerServiceImpl$PackageManagerHelper;Lcom/android/server/om/IdmapManager;Lcom/android/server/om/OverlayManagerSettings;[Ljava/lang/String;Lcom/android/server/om/OverlayManagerServiceImpl$OverlayChangeListener;)V
+HSPLcom/android/server/om/OverlayManagerServiceImpl;-><init>(Lcom/android/server/om/PackageManagerHelper;Lcom/android/server/om/IdmapManager;Lcom/android/server/om/OverlayManagerSettings;Lcom/android/internal/content/om/OverlayConfig;[Ljava/lang/String;Lcom/android/server/om/OverlayManagerServiceImpl$OverlayChangeListener;)V
 HSPLcom/android/server/om/OverlayManagerServiceImpl;->calculateNewState(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;II)I
 PLcom/android/server/om/OverlayManagerServiceImpl;->dump(Ljava/io/PrintWriter;Lcom/android/server/om/DumpState;)V
 PLcom/android/server/om/OverlayManagerServiceImpl;->getDefaultOverlayPackages()[Ljava/lang/String;
 HSPLcom/android/server/om/OverlayManagerServiceImpl;->getEnabledOverlayPackageNames(Ljava/lang/String;I)Ljava/util/List;
 PLcom/android/server/om/OverlayManagerServiceImpl;->getOverlayInfo(Ljava/lang/String;I)Landroid/content/om/OverlayInfo;
 PLcom/android/server/om/OverlayManagerServiceImpl;->getOverlayInfosForTarget(Ljava/lang/String;I)Ljava/util/List;
+HSPLcom/android/server/om/OverlayManagerServiceImpl;->getPackageConfiguredPriority(Ljava/lang/String;)I
+HSPLcom/android/server/om/OverlayManagerServiceImpl;->isPackageConfiguredEnabled(Ljava/lang/String;)Z
+HSPLcom/android/server/om/OverlayManagerServiceImpl;->isPackageConfiguredMutable(Ljava/lang/String;)Z
 HSPLcom/android/server/om/OverlayManagerServiceImpl;->mustReinitializeOverlay(Landroid/content/pm/PackageInfo;Landroid/content/om/OverlayInfo;)Z
 PLcom/android/server/om/OverlayManagerServiceImpl;->onTargetPackageAdded(Ljava/lang/String;I)V
 PLcom/android/server/om/OverlayManagerServiceImpl;->onTargetPackageRemoved(Ljava/lang/String;I)V
@@ -23229,40 +24784,73 @@
 HSPLcom/android/server/om/OverlayManagerSettings$Serializer;->restoreRow(Lorg/xmlpull/v1/XmlPullParser;I)Lcom/android/server/om/OverlayManagerSettings$SettingsItem;
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZILjava/lang/String;)V
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;)V
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Landroid/content/om/OverlayInfo;
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Z)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Landroid/content/om/OverlayInfo;
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Ljava/lang/String;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1200(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1200(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
 PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1300(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1300(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1400(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1400(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1500(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1500(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1500(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1600(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1600(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1700(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1700(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1800(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1900(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1900(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$200(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$200(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Ljava/lang/String;)Z
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$2000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$2000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$2000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$2100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$2100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$2200(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$2300(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$300(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Landroid/content/om/OverlayInfo;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$300(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$300(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Ljava/lang/String;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$400(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$400(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Ljava/lang/String;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$500(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$500(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Ljava/lang/String;)Z
+PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$500(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Z)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$600(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$600(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$600(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;I)Z
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$700(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$700(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;I)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$800(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$800(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;I)V
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$800(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;I)Z
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$900(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$900(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
 PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getBaseCodePath()Ljava/lang/String;
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getOverlayInfo()Landroid/content/om/OverlayInfo;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getPriority()I
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getState()I
 PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getTargetOverlayableName()Ljava/lang/String;
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getTargetPackageName()Ljava/lang/String;
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getUserId()I
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->invalidateCache()V
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->isEnabled()Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->isMutable()Z
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->isStatic()Z
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setBaseCodePath(Ljava/lang/String;)Z
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setCategory(Ljava/lang/String;)Z
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setEnabled(Z)Z
+PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setPriority(I)V
 HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setState(I)Z
 HSPLcom/android/server/om/OverlayManagerSettings;-><init>()V
 PLcom/android/server/om/OverlayManagerSettings;->dump(Ljava/io/PrintWriter;Lcom/android/server/om/DumpState;)V
@@ -23274,6 +24862,8 @@
 HSPLcom/android/server/om/OverlayManagerSettings;->getState(Ljava/lang/String;I)I
 HSPLcom/android/server/om/OverlayManagerSettings;->getUsers()[I
 HSPLcom/android/server/om/OverlayManagerSettings;->init(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;)V
+HSPLcom/android/server/om/OverlayManagerSettings;->init(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZILjava/lang/String;)V
+HSPLcom/android/server/om/OverlayManagerSettings;->insert(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)V
 PLcom/android/server/om/OverlayManagerSettings;->lambda$dump$9$OverlayManagerSettings(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)V
 HSPLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForTarget$0(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
 HSPLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForTarget$1(Ljava/lang/Object;)Landroid/content/om/OverlayInfo;
@@ -23293,12 +24883,18 @@
 HSPLcom/android/server/om/OverlayManagerSettings;->setBaseCodePath(Ljava/lang/String;ILjava/lang/String;)Z
 HSPLcom/android/server/om/OverlayManagerSettings;->setCategory(Ljava/lang/String;ILjava/lang/String;)Z
 PLcom/android/server/om/OverlayManagerSettings;->setEnabled(Ljava/lang/String;IZ)Z
+PLcom/android/server/om/OverlayManagerSettings;->setPriority(Ljava/lang/String;II)V
 HSPLcom/android/server/om/OverlayManagerSettings;->setState(Ljava/lang/String;II)Z
 HSPLcom/android/server/om/OverlayReferenceMapper$1;-><init>(Lcom/android/server/om/OverlayReferenceMapper;)V
 HSPLcom/android/server/om/OverlayReferenceMapper$1;->getTargetToOverlayables(Landroid/content/pm/parsing/AndroidPackage;)Ljava/util/Map;
+HSPLcom/android/server/om/OverlayReferenceMapper$1;->getTargetToOverlayables(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/util/Map;
 HSPLcom/android/server/om/OverlayReferenceMapper;-><init>(ZLcom/android/server/om/OverlayReferenceMapper$Provider;)V
 HSPLcom/android/server/om/OverlayReferenceMapper;->addOverlay(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Map;)V
+HSPLcom/android/server/om/OverlayReferenceMapper;->addOverlay(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/Map;)V
 HSPLcom/android/server/om/OverlayReferenceMapper;->addPkg(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Map;)V
+HSPLcom/android/server/om/OverlayReferenceMapper;->addPkg(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/Map;)V
+HPLcom/android/server/om/OverlayReferenceMapper;->assertMapBuilt()V
+HPLcom/android/server/om/OverlayReferenceMapper;->isValidActor(Ljava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/server/om/OverlayReferenceMapper;->rebuild()V
 HSPLcom/android/server/om/OverlayReferenceMapper;->rebuildIfDeferred()V
 HSPLcom/android/server/om/OverlayReferenceMapper;->removeOverlay(Ljava/lang/String;)V
@@ -23313,6 +24909,7 @@
 PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;->onError(I)V
 PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;->onFinished()V
 PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;->onProgress(I)V
+PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;->onScreenshotTaken(Z)V
 HSPLcom/android/server/os/BugreportManagerServiceImpl;-><init>(Landroid/content/Context;)V
 PLcom/android/server/os/BugreportManagerServiceImpl;->access$000(Lcom/android/server/os/BugreportManagerServiceImpl;)Ljava/lang/Object;
 PLcom/android/server/os/BugreportManagerServiceImpl;->cancelBugreport()V
@@ -23337,23 +24934,45 @@
 HSPLcom/android/server/os/SchedulingPolicyService;->requestPriority(IIIZ)I
 HSPLcom/android/server/people/PeopleService$LocalService;-><init>(Lcom/android/server/people/PeopleService;)V
 PLcom/android/server/people/PeopleService$LocalService;->backupConversationInfos(I)[B
+PLcom/android/server/people/PeopleService$LocalService;->pruneDataForUser(ILandroid/os/CancellationSignal;)V
 HSPLcom/android/server/people/PeopleService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/people/PeopleService;->access$000(Lcom/android/server/people/PeopleService;)Lcom/android/server/people/data/DataManager;
 HSPLcom/android/server/people/PeopleService;->onBootPhase(I)V
 HSPLcom/android/server/people/PeopleService;->onStart()V
 PLcom/android/server/people/PeopleService;->onStopUser(Lcom/android/server/SystemService$TargetUser;)V
 PLcom/android/server/people/PeopleService;->onUnlockUser(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/people/PeopleService;->onUserStopping(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/people/PeopleService;->onUserUnlocked(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/people/PeopleService;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 HSPLcom/android/server/people/PeopleServiceInternal;-><init>()V
+PLcom/android/server/people/data/-$$Lambda$DataMaintenanceService$pZUzfdXzCXsv1D-xTvqArhV-TxI;-><init>(Lcom/android/server/people/data/DataMaintenanceService;ILandroid/app/job/JobParameters;)V
+PLcom/android/server/people/data/-$$Lambda$DataMaintenanceService$pZUzfdXzCXsv1D-xTvqArhV-TxI;->run()V
 PLcom/android/server/people/data/-$$Lambda$DataManager$CallLogContentObserver$F795P2fXEZGvzLUih_SIpFcsyic;-><init>(Ljava/lang/String;Lcom/android/server/people/data/Event;)V
 PLcom/android/server/people/data/-$$Lambda$DataManager$CallLogContentObserver$F795P2fXEZGvzLUih_SIpFcsyic;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/people/data/-$$Lambda$DataManager$ContactsContentObserver$wv19gIIQIhM79fILSTcdGXPmrF0;-><init>(Landroid/net/Uri;Lcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;)V
 HPLcom/android/server/people/data/-$$Lambda$DataManager$MmsSmsContentObserver$UfeTRftTDIcNo1iUJLeOD5s_XmM;-><init>(Ljava/lang/String;Lcom/android/server/people/data/Event;)V
 PLcom/android/server/people/data/-$$Lambda$DataManager$MmsSmsContentObserver$UfeTRftTDIcNo1iUJLeOD5s_XmM;->accept(Ljava/lang/Object;)V
+PLcom/android/server/people/data/-$$Lambda$DataManager$ShortcutServiceCallback$8w0TVgeTeC6l6Xt-U6TR1dPrdZ8;-><init>(Lcom/android/server/people/data/DataManager$ShortcutServiceCallback;Ljava/util/List;)V
+HPLcom/android/server/people/data/-$$Lambda$DataManager$ShortcutServiceCallback$8w0TVgeTeC6l6Xt-U6TR1dPrdZ8;->run()V
+PLcom/android/server/people/data/-$$Lambda$DataManager$ShortcutServiceCallback$VlSKlwPMxQPMmAu4nKkqwOu9-pY;-><init>(Lcom/android/server/people/data/DataManager$ShortcutServiceCallback;Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/List;)V
+HPLcom/android/server/people/data/-$$Lambda$DataManager$ShortcutServiceCallback$VlSKlwPMxQPMmAu4nKkqwOu9-pY;->run()V
 HPLcom/android/server/people/data/-$$Lambda$DataManager$ShortcutServiceListener$emB0GKXSexwJTzSWLUKYnAGbCCg;-><init>(Lcom/android/server/people/data/DataManager$ShortcutServiceListener;Ljava/lang/String;I)V
 HPLcom/android/server/people/data/-$$Lambda$DataManager$ShortcutServiceListener$emB0GKXSexwJTzSWLUKYnAGbCCg;->run()V
+PLcom/android/server/people/data/-$$Lambda$DataManager$ShutdownBroadcastReceiver$n_Xz0m6xk7HVlBPvkKsX5WPC4AE;-><clinit>()V
+PLcom/android/server/people/data/-$$Lambda$DataManager$ShutdownBroadcastReceiver$n_Xz0m6xk7HVlBPvkKsX5WPC4AE;-><init>()V
+PLcom/android/server/people/data/-$$Lambda$DataManager$ShutdownBroadcastReceiver$n_Xz0m6xk7HVlBPvkKsX5WPC4AE;->accept(Ljava/lang/Object;)V
 PLcom/android/server/people/data/-$$Lambda$DataManager$UsageStatsQueryRunnable$XYAxcpC9us0TDcNCO-NIcs5ajqQ;-><init>(Lcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;I)V
 HPLcom/android/server/people/data/-$$Lambda$DataManager$UsageStatsQueryRunnable$XYAxcpC9us0TDcNCO-NIcs5ajqQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/people/data/-$$Lambda$DataManager$bD3rtmmxoewwfd8otWlj3817k9I;-><init>(Ljava/util/Set;Ljava/util/List;)V
+PLcom/android/server/people/data/-$$Lambda$DataManager$uJBSlUElmiK7KhI29TaNgrYadmw;-><init>(Ljava/util/Set;)V
+HPLcom/android/server/people/data/-$$Lambda$DataManager$uJBSlUElmiK7KhI29TaNgrYadmw;->accept(Ljava/lang/Object;)V
+PLcom/android/server/people/data/-$$Lambda$DataManager$wv7ooDmmkMQmE1mC-w4Rx8IZ8rc;-><init>(Landroid/os/CancellationSignal;)V
+PLcom/android/server/people/data/-$$Lambda$UserData$TPSEt8UEq8YfkquaYQxcUwkYOog;-><init>(Lcom/android/server/people/data/UserData;)V
+PLcom/android/server/people/data/-$$Lambda$UserData$ZvGOO47u-RNbT2ZvsBaz0srnAjw;-><init>(Lcom/android/server/people/data/UserData;)V
 PLcom/android/server/people/data/-$$Lambda$bkfsFF2Vc2A9q-5JeJQbUu98BkQ;-><clinit>()V
 PLcom/android/server/people/data/-$$Lambda$bkfsFF2Vc2A9q-5JeJQbUu98BkQ;-><init>()V
+PLcom/android/server/people/data/-$$Lambda$k1LMnpJLlrYtcSsQvSbPW-daMgg;-><clinit>()V
+PLcom/android/server/people/data/-$$Lambda$k1LMnpJLlrYtcSsQvSbPW-daMgg;-><init>()V
 HSPLcom/android/server/people/data/CallLogQueryHelper;-><clinit>()V
 HSPLcom/android/server/people/data/CallLogQueryHelper;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;)V
 PLcom/android/server/people/data/CallLogQueryHelper;->addEvent(Ljava/lang/String;JJI)Z
@@ -23365,6 +24984,14 @@
 HPLcom/android/server/people/data/ContactsQueryHelper;->queryContact(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Z
 HPLcom/android/server/people/data/ContactsQueryHelper;->queryPhoneNumber(Ljava/lang/String;)Z
 HPLcom/android/server/people/data/ContactsQueryHelper;->querySince(J)Z
+PLcom/android/server/people/data/DataMaintenanceService;-><clinit>()V
+PLcom/android/server/people/data/DataMaintenanceService;-><init>()V
+PLcom/android/server/people/data/DataMaintenanceService;->getJobId(I)I
+PLcom/android/server/people/data/DataMaintenanceService;->getUserId(I)I
+PLcom/android/server/people/data/DataMaintenanceService;->lambda$onStartJob$0$DataMaintenanceService(ILandroid/app/job/JobParameters;)V
+PLcom/android/server/people/data/DataMaintenanceService;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/people/data/DataMaintenanceService;->onStopJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/people/data/DataMaintenanceService;->scheduleJob(Landroid/content/Context;I)V
 HSPLcom/android/server/people/data/DataManager$CallLogContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;)V
 HSPLcom/android/server/people/data/DataManager$CallLogContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;Lcom/android/server/people/data/DataManager$1;)V
 PLcom/android/server/people/data/DataManager$CallLogContentObserver;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
@@ -23375,6 +25002,7 @@
 PLcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;-><init>(Lcom/android/server/people/data/DataManager$ContactsContentObserver;Lcom/android/server/people/data/DataManager$1;)V
 PLcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;->access$1100(Lcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;)Lcom/android/server/people/data/ConversationInfo;
 PLcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;->access$1200(Lcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;)Lcom/android/server/people/data/ConversationInfo;
+PLcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;->access$1300(Lcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;)Lcom/android/server/people/data/ConversationInfo;
 PLcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;->access$900(Lcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;)Lcom/android/server/people/data/ConversationInfo;
 PLcom/android/server/people/data/DataManager$ContactsContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;)V
 PLcom/android/server/people/data/DataManager$ContactsContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;Lcom/android/server/people/data/DataManager$1;)V
@@ -23386,26 +25014,38 @@
 HSPLcom/android/server/people/data/DataManager$Injector;->createScheduledExecutor()Ljava/util/concurrent/ScheduledExecutorService;
 HSPLcom/android/server/people/data/DataManager$Injector;->createSmsQueryHelper(Landroid/content/Context;Ljava/util/function/BiConsumer;)Lcom/android/server/people/data/SmsQueryHelper;
 PLcom/android/server/people/data/DataManager$Injector;->createUsageStatsQueryHelper(ILjava/util/function/Function;)Lcom/android/server/people/data/UsageStatsQueryHelper;
+PLcom/android/server/people/data/DataManager$Injector;->getBackgroundExecutor()Ljava/util/concurrent/Executor;
 HPLcom/android/server/people/data/DataManager$Injector;->getCallingUserId()I
 HSPLcom/android/server/people/data/DataManager$MmsSmsContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;)V
 HSPLcom/android/server/people/data/DataManager$MmsSmsContentObserver;-><init>(Lcom/android/server/people/data/DataManager;Landroid/os/Handler;Lcom/android/server/people/data/DataManager$1;)V
-PLcom/android/server/people/data/DataManager$MmsSmsContentObserver;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/people/data/DataManager$MmsSmsContentObserver;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/people/data/DataManager$MmsSmsContentObserver;->accept(Ljava/lang/String;Lcom/android/server/people/data/Event;)V
 PLcom/android/server/people/data/DataManager$MmsSmsContentObserver;->lambda$accept$0(Ljava/lang/String;Lcom/android/server/people/data/Event;Lcom/android/server/people/data/UserData;)V
 HPLcom/android/server/people/data/DataManager$MmsSmsContentObserver;->onChange(Z)V
 PLcom/android/server/people/data/DataManager$NotificationListener;-><init>(Lcom/android/server/people/data/DataManager;)V
 PLcom/android/server/people/data/DataManager$NotificationListener;-><init>(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/DataManager$1;)V
 HPLcom/android/server/people/data/DataManager$NotificationListener;->onNotificationChannelModified(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
+HPLcom/android/server/people/data/DataManager$NotificationListener;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;)V
 HPLcom/android/server/people/data/DataManager$NotificationListener;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;I)V
 PLcom/android/server/people/data/DataManager$PerUserBroadcastReceiver;-><init>(Lcom/android/server/people/data/DataManager;I)V
 PLcom/android/server/people/data/DataManager$PerUserBroadcastReceiver;-><init>(Lcom/android/server/people/data/DataManager;ILcom/android/server/people/data/DataManager$1;)V
 HPLcom/android/server/people/data/DataManager$PerUserBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/people/data/DataManager$PerUserPackageMonitor;-><init>(Lcom/android/server/people/data/DataManager;)V
+PLcom/android/server/people/data/DataManager$PerUserPackageMonitor;-><init>(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/DataManager$1;)V
+PLcom/android/server/people/data/DataManager$PerUserPackageMonitor;->onPackageRemoved(Ljava/lang/String;I)V
+PLcom/android/server/people/data/DataManager$ShortcutServiceCallback;-><init>(Lcom/android/server/people/data/DataManager;)V
+PLcom/android/server/people/data/DataManager$ShortcutServiceCallback;-><init>(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/DataManager$1;)V
+HPLcom/android/server/people/data/DataManager$ShortcutServiceCallback;->lambda$onShortcutsAddedOrUpdated$0$DataManager$ShortcutServiceCallback(Ljava/util/List;)V
+HPLcom/android/server/people/data/DataManager$ShortcutServiceCallback;->lambda$onShortcutsRemoved$1$DataManager$ShortcutServiceCallback(Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/List;)V
+PLcom/android/server/people/data/DataManager$ShortcutServiceCallback;->onShortcutsAddedOrUpdated(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V
+PLcom/android/server/people/data/DataManager$ShortcutServiceCallback;->onShortcutsRemoved(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V
 HSPLcom/android/server/people/data/DataManager$ShortcutServiceListener;-><init>(Lcom/android/server/people/data/DataManager;)V
 HSPLcom/android/server/people/data/DataManager$ShortcutServiceListener;-><init>(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/DataManager$1;)V
 HPLcom/android/server/people/data/DataManager$ShortcutServiceListener;->lambda$onShortcutChanged$0$DataManager$ShortcutServiceListener(Ljava/lang/String;I)V
 HPLcom/android/server/people/data/DataManager$ShortcutServiceListener;->onShortcutChanged(Ljava/lang/String;I)V
 HSPLcom/android/server/people/data/DataManager$ShutdownBroadcastReceiver;-><init>(Lcom/android/server/people/data/DataManager;)V
 HSPLcom/android/server/people/data/DataManager$ShutdownBroadcastReceiver;-><init>(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/DataManager$1;)V
+PLcom/android/server/people/data/DataManager$ShutdownBroadcastReceiver;->lambda$onReceive$0(Lcom/android/server/people/data/UserData;)V
 PLcom/android/server/people/data/DataManager$ShutdownBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;-><init>(Lcom/android/server/people/data/DataManager;I)V
 PLcom/android/server/people/data/DataManager$UsageStatsQueryRunnable;-><init>(Lcom/android/server/people/data/DataManager;ILcom/android/server/people/data/DataManager$1;)V
@@ -23414,37 +25054,49 @@
 HSPLcom/android/server/people/data/DataManager;-><clinit>()V
 HSPLcom/android/server/people/data/DataManager;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/people/data/DataManager;-><init>(Landroid/content/Context;Lcom/android/server/people/data/DataManager$Injector;)V
+PLcom/android/server/people/data/DataManager;->access$1000(Lcom/android/server/people/data/DataManager;)Lcom/android/server/people/data/DataManager$Injector;
 PLcom/android/server/people/data/DataManager;->access$1000(Lcom/android/server/people/data/DataManager;I)Lcom/android/server/people/data/UserData;
-PLcom/android/server/people/data/DataManager;->access$1100(Lcom/android/server/people/data/DataManager;I)Lcom/android/server/people/data/UserData;
+HPLcom/android/server/people/data/DataManager;->access$1100(Lcom/android/server/people/data/DataManager;I)Lcom/android/server/people/data/UserData;
 PLcom/android/server/people/data/DataManager;->access$1100(Lcom/android/server/people/data/DataManager;Ljava/lang/String;ILjava/util/List;)Ljava/util/List;
+PLcom/android/server/people/data/DataManager;->access$1200(Lcom/android/server/people/data/DataManager;I)Lcom/android/server/people/data/UserData;
 PLcom/android/server/people/data/DataManager;->access$1200(Lcom/android/server/people/data/DataManager;Landroid/service/notification/StatusBarNotification;)Lcom/android/server/people/data/EventHistoryImpl;
 PLcom/android/server/people/data/DataManager;->access$1300(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/UserData;)V
 PLcom/android/server/people/data/DataManager;->access$1300(Lcom/android/server/people/data/DataManager;Ljava/util/function/Consumer;)V
 PLcom/android/server/people/data/DataManager;->access$1400(Lcom/android/server/people/data/DataManager;Ljava/lang/String;ILjava/util/List;)Ljava/util/List;
-PLcom/android/server/people/data/DataManager;->access$1400(Lcom/android/server/people/data/DataManager;Ljava/util/function/Consumer;)V
+HPLcom/android/server/people/data/DataManager;->access$1400(Lcom/android/server/people/data/DataManager;Ljava/util/function/Consumer;)V
 PLcom/android/server/people/data/DataManager;->access$1500(Lcom/android/server/people/data/DataManager;Landroid/service/notification/StatusBarNotification;)Lcom/android/server/people/data/EventHistoryImpl;
 PLcom/android/server/people/data/DataManager;->access$1500(Lcom/android/server/people/data/DataManager;Ljava/lang/String;ILjava/util/List;)Ljava/util/List;
+PLcom/android/server/people/data/DataManager;->access$1500(Lcom/android/server/people/data/DataManager;Ljava/util/function/Consumer;)V
+PLcom/android/server/people/data/DataManager;->access$1600(Lcom/android/server/people/data/DataManager;)Lcom/android/server/notification/NotificationManagerInternal;
 PLcom/android/server/people/data/DataManager;->access$1600(Lcom/android/server/people/data/DataManager;Landroid/service/notification/StatusBarNotification;)Lcom/android/server/people/data/EventHistoryImpl;
 PLcom/android/server/people/data/DataManager;->access$1600(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/UserData;)V
+PLcom/android/server/people/data/DataManager;->access$1600(Lcom/android/server/people/data/DataManager;Ljava/lang/String;ILjava/util/List;)Ljava/util/List;
+PLcom/android/server/people/data/DataManager;->access$1700(Lcom/android/server/people/data/DataManager;Landroid/content/pm/ShortcutInfo;)Z
 PLcom/android/server/people/data/DataManager;->access$1700(Lcom/android/server/people/data/DataManager;Lcom/android/server/people/data/UserData;)V
+HPLcom/android/server/people/data/DataManager;->access$1800(Lcom/android/server/people/data/DataManager;Landroid/service/notification/StatusBarNotification;)Lcom/android/server/people/data/EventHistoryImpl;
 PLcom/android/server/people/data/DataManager;->access$500(Lcom/android/server/people/data/DataManager;)Landroid/content/Context;
 PLcom/android/server/people/data/DataManager;->access$600(Lcom/android/server/people/data/DataManager;)Lcom/android/server/people/data/DataManager$Injector;
 HSPLcom/android/server/people/data/DataManager;->access$700(Lcom/android/server/people/data/DataManager;)Landroid/content/Context;
 HSPLcom/android/server/people/data/DataManager;->access$800(Lcom/android/server/people/data/DataManager;)Landroid/content/Context;
 HSPLcom/android/server/people/data/DataManager;->access$800(Lcom/android/server/people/data/DataManager;)Lcom/android/server/people/data/DataManager$Injector;
 PLcom/android/server/people/data/DataManager;->access$800(Lcom/android/server/people/data/DataManager;I)Lcom/android/server/people/data/UserData;
+PLcom/android/server/people/data/DataManager;->access$900(Lcom/android/server/people/data/DataManager;)Landroid/content/Context;
 HSPLcom/android/server/people/data/DataManager;->access$900(Lcom/android/server/people/data/DataManager;)Lcom/android/server/people/data/DataManager$Injector;
 PLcom/android/server/people/data/DataManager;->forAllPackages(Ljava/util/function/Consumer;)V
 HPLcom/android/server/people/data/DataManager;->forAllUnlockedUsers(Ljava/util/function/Consumer;)V
-PLcom/android/server/people/data/DataManager;->getEventHistoryIfEligible(Landroid/service/notification/StatusBarNotification;)Lcom/android/server/people/data/EventHistoryImpl;
+HPLcom/android/server/people/data/DataManager;->getEventHistoryIfEligible(Landroid/service/notification/StatusBarNotification;)Lcom/android/server/people/data/EventHistoryImpl;
 HPLcom/android/server/people/data/DataManager;->getPackage(Ljava/lang/String;I)Lcom/android/server/people/data/PackageData;
 HPLcom/android/server/people/data/DataManager;->getPackageData(Ljava/lang/String;I)Lcom/android/server/people/data/PackageData;
 HPLcom/android/server/people/data/DataManager;->getShortcuts(Ljava/lang/String;ILjava/util/List;)Ljava/util/List;
 HPLcom/android/server/people/data/DataManager;->getUnlockedUserData(I)Lcom/android/server/people/data/UserData;
 HSPLcom/android/server/people/data/DataManager;->initialize()V
+PLcom/android/server/people/data/DataManager;->isPersonShortcut(Landroid/content/pm/ShortcutInfo;)Z
+HPLcom/android/server/people/data/DataManager;->lambda$pruneUninstalledPackageData$1(Ljava/util/Set;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HPLcom/android/server/people/data/DataManager;->onShortcutAddedOrUpdated(Landroid/content/pm/ShortcutInfo;)V
 PLcom/android/server/people/data/DataManager;->onUserStopped(I)V
 PLcom/android/server/people/data/DataManager;->onUserUnlocked(I)V
+PLcom/android/server/people/data/DataManager;->pruneDataForUser(ILandroid/os/CancellationSignal;)V
+PLcom/android/server/people/data/DataManager;->pruneUninstalledPackageData(Lcom/android/server/people/data/UserData;)V
 HPLcom/android/server/people/data/DataManager;->queryUsageStatsService(IJJ)V
 PLcom/android/server/people/data/DataManager;->updateDefaultDialer(Lcom/android/server/people/data/UserData;)V
 PLcom/android/server/people/data/DataManager;->updateDefaultSmsApp(Lcom/android/server/people/data/UserData;)V
@@ -23468,6 +25120,7 @@
 HPLcom/android/server/people/data/MmsQueryHelper;->getMmsAddress(Ljava/lang/String;I)Ljava/lang/String;
 HPLcom/android/server/people/data/MmsQueryHelper;->querySince(J)Z
 PLcom/android/server/people/data/MmsQueryHelper;->validateEvent(Ljava/lang/String;JI)Z
+PLcom/android/server/people/data/PackageData;->packagesDataFromDisk(ILjava/util/function/Predicate;Ljava/util/function/Predicate;Ljava/util/concurrent/ScheduledExecutorService;Ljava/io/File;)Ljava/util/Map;
 HSPLcom/android/server/people/data/SmsQueryHelper;-><clinit>()V
 HSPLcom/android/server/people/data/SmsQueryHelper;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;)V
 PLcom/android/server/people/data/SmsQueryHelper;->addEvent(Ljava/lang/String;JI)Z
@@ -23475,11 +25128,15 @@
 HPLcom/android/server/people/data/SmsQueryHelper;->querySince(J)Z
 HPLcom/android/server/people/data/SmsQueryHelper;->validateEvent(Ljava/lang/String;JI)Z
 PLcom/android/server/people/data/UsageStatsQueryHelper;-><init>(ILjava/util/function/Function;)V
-PLcom/android/server/people/data/UsageStatsQueryHelper;->getLastEventTimestamp()J
+HPLcom/android/server/people/data/UsageStatsQueryHelper;->getLastEventTimestamp()J
 HPLcom/android/server/people/data/UsageStatsQueryHelper;->querySince(J)Z
+PLcom/android/server/people/data/UserData;-><clinit>()V
 PLcom/android/server/people/data/UserData;-><init>(I)V
+PLcom/android/server/people/data/UserData;-><init>(ILjava/util/concurrent/ScheduledExecutorService;)V
 PLcom/android/server/people/data/UserData;-><init>(ILjava/util/concurrent/ScheduledExecutorService;Lcom/android/server/people/data/ContactsQueryHelper;)V
+PLcom/android/server/people/data/UserData;->deletePackageData(Ljava/lang/String;)V
 HPLcom/android/server/people/data/UserData;->forAllPackages(Ljava/util/function/Consumer;)V
+PLcom/android/server/people/data/UserData;->getBackupPayload()[B
 PLcom/android/server/people/data/UserData;->getDefaultDialer()Lcom/android/server/people/data/PackageData;
 PLcom/android/server/people/data/UserData;->getDefaultSmsApp()Lcom/android/server/people/data/PackageData;
 HPLcom/android/server/people/data/UserData;->getPackageData(Ljava/lang/String;)Lcom/android/server/people/data/PackageData;
@@ -23516,6 +25173,7 @@
 HSPLcom/android/server/pm/-$$Lambda$AppsFilter$FeatureConfigImpl$n15whgPRX7bGimHq6-7mgAskIKs;-><init>(Lcom/android/server/pm/AppsFilter$FeatureConfigImpl;)V
 PLcom/android/server/pm/-$$Lambda$AppsFilter$FeatureConfigImpl$n15whgPRX7bGimHq6-7mgAskIKs;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
 HPLcom/android/server/pm/-$$Lambda$AppsFilter$irFGkuh4mJ419pXBYKSj13ADTtA;-><init>(Landroid/util/SparseArray;Lcom/android/server/pm/PackageManagerService;)V
+HPLcom/android/server/pm/-$$Lambda$AppsFilter$irFGkuh4mJ419pXBYKSj13ADTtA;->toString(Ljava/lang/Object;)Ljava/lang/String;
 HSPLcom/android/server/pm/-$$Lambda$BWZi0Aa35BwEPzNacDfE_69TPS8;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$BWZi0Aa35BwEPzNacDfE_69TPS8;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$BWZi0Aa35BwEPzNacDfE_69TPS8;->test(Ljava/lang/Object;)Z
@@ -23526,6 +25184,8 @@
 HSPLcom/android/server/pm/-$$Lambda$ComponentResolver$PuHbZd5KEOMGjkH8xDOhOwfLtC0;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$ComponentResolver$PuHbZd5KEOMGjkH8xDOhOwfLtC0;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$ComponentResolver$PuHbZd5KEOMGjkH8xDOhOwfLtC0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$-BT6ToCKHdhfX2-IK4pp-hGipzw;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;ILjava/lang/String;ILjava/lang/String;)V
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$-BT6ToCKHdhfX2-IK4pp-hGipzw;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$4kTzFa_zjeGMtJVy5CluIOehAmM;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;ILjava/lang/String;)V
 PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$4kTzFa_zjeGMtJVy5CluIOehAmM;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$D4Z_0MUKQxAr3kDglyup8aB9XLE;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;Landroid/content/Intent;IILandroid/content/ComponentName;)V
@@ -23536,12 +25196,20 @@
 PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$HVfTkMl1ZNC9cAfi1atsp3Dwnyg;->getOrThrow()Ljava/lang/Object;
 HPLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$bl8duoKAQm4-uSci6ZlA_aEdeg8;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;ILjava/lang/String;)V
 HPLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$bl8duoKAQm4-uSci6ZlA_aEdeg8;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$i8pCn3vFy03m7u0vRgPEFDJBRZ8;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;Ljava/lang/String;)V
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$i8pCn3vFy03m7u0vRgPEFDJBRZ8;->getOrThrow()Ljava/lang/Object;
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$kHkdp7f4qbaDOgRXrN-WS0lCU9U;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;ILjava/lang/String;I)V
+PLcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$kHkdp7f4qbaDOgRXrN-WS0lCU9U;->runOrThrow()V
+HSPLcom/android/server/pm/-$$Lambda$DpkuTFpeWPmvN7iGgFrn8VkMVd4;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$DpkuTFpeWPmvN7iGgFrn8VkMVd4;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$DpkuTFpeWPmvN7iGgFrn8VkMVd4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/pm/-$$Lambda$FW40Da1L1EZJ_usDX0ew1qRMmtc;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$FW40Da1L1EZJ_usDX0ew1qRMmtc;-><init>()V
 PLcom/android/server/pm/-$$Lambda$FW40Da1L1EZJ_usDX0ew1qRMmtc;->test(Ljava/lang/Object;)Z
 HPLcom/android/server/pm/-$$Lambda$InstantAppRegistry$BuKCbLr_MGBazMPl54-pWTuGHYY;-><init>(J)V
 PLcom/android/server/pm/-$$Lambda$InstantAppRegistry$R7XSXckXZJx-7zO-lFkgYY_-lWA;-><init>(Landroid/content/pm/parsing/AndroidPackage;)V
 PLcom/android/server/pm/-$$Lambda$InstantAppRegistry$eaYsiecM_Rq6dliDvliwVtj695o;-><init>(Ljava/lang/String;)V
+PLcom/android/server/pm/-$$Lambda$InstantAppRegistry$vQALErHqrru44QoPQ2p9uk789PM;-><init>(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 PLcom/android/server/pm/-$$Lambda$InstantAppResolverConnection$D-JKXi4qrYjnPQMOwj8UtfZenps;-><init>(Lcom/android/server/pm/InstantAppResolverConnection;)V
 PLcom/android/server/pm/-$$Lambda$InstantAppResolverConnection$D-JKXi4qrYjnPQMOwj8UtfZenps;->run()V
 PLcom/android/server/pm/-$$Lambda$K2g8Oho05j5S7zVOkoQrHzM_Gig;-><clinit>()V
@@ -23551,9 +25219,17 @@
 HPLcom/android/server/pm/-$$Lambda$LauncherAppsService$LauncherAppsImpl$MyPackageMonitor$eTair5Mvr14v4M0nq9aQEW2cp-Y;->run()V
 PLcom/android/server/pm/-$$Lambda$LauncherAppsService$LauncherAppsImpl$PR6SMHDNFTsnoL92MFZskM-zN8k;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Landroid/os/UserHandle;)V
 HPLcom/android/server/pm/-$$Lambda$LauncherAppsService$LauncherAppsImpl$PR6SMHDNFTsnoL92MFZskM-zN8k;->test(I)Z
+PLcom/android/server/pm/-$$Lambda$OtaDexoptService$amtBTYTH-NRX8MEG4zJaGqMCMyA;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$OtaDexoptService$amtBTYTH-NRX8MEG4zJaGqMCMyA;-><init>()V
+PLcom/android/server/pm/-$$Lambda$OtaDexoptService$amtBTYTH-NRX8MEG4zJaGqMCMyA;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 PLcom/android/server/pm/-$$Lambda$OtaDexoptService$sAE9PLBjWsXDVkiiC_uzr0kwQ4k;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$OtaDexoptService$sAE9PLBjWsXDVkiiC_uzr0kwQ4k;-><init>()V
 PLcom/android/server/pm/-$$Lambda$OtaDexoptService$sAE9PLBjWsXDVkiiC_uzr0kwQ4k;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/pm/-$$Lambda$OtaDexoptService$wNGdc46oIfkEYBuaHKdweqCmNM8;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$OtaDexoptService$wNGdc46oIfkEYBuaHKdweqCmNM8;-><init>()V
+PLcom/android/server/pm/-$$Lambda$OtaDexoptService$wNGdc46oIfkEYBuaHKdweqCmNM8;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/pm/-$$Lambda$PLzRNNUpYHZlGNIn1ofLtN374Ow;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$PLzRNNUpYHZlGNIn1ofLtN374Ow;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageInstallerService$vra5ZkE3juVvcgDBu5xv0wVzno8;-><init>(I)V
 PLcom/android/server/pm/-$$Lambda$PackageInstallerService$vra5ZkE3juVvcgDBu5xv0wVzno8;->test(I)Z
 HSPLcom/android/server/pm/-$$Lambda$PackageInstallerSession$0MwsfMSD_PrEtElmOWjbhM7455A;-><init>(Ljava/io/FileFilter;)V
@@ -23591,8 +25267,20 @@
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$3yxDU_uSU2kkdLuKkfPYVKvXKGw;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$3yxDU_uSU2kkdLuKkfPYVKvXKGw;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$3yxDU_uSU2kkdLuKkfPYVKvXKGw;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$4cqrQoT4gMgFm-tugMOyoExM1kI;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$4cqrQoT4gMgFm-tugMOyoExM1kI;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$4cqrQoT4gMgFm-tugMOyoExM1kI;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$4lr9R3-Rfzq-VEptx-WWeRaSpd4;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$4lr9R3-Rfzq-VEptx-WWeRaSpd4;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$8L7pRmGgOsUHi0VNMkDwO-flFqk;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$8L7pRmGgOsUHi0VNMkDwO-flFqk;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$8L7pRmGgOsUHi0VNMkDwO-flFqk;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$9nrhpVUScjAieIxS9iHE0hiaATk;-><init>(Lcom/android/server/pm/PackageManagerService;)V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$9nrhpVUScjAieIxS9iHE0hiaATk;->forEachPackage(Ljava/util/function/BiConsumer;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$9znobjOH7ab0F1jsW2oFdNipS-8;-><init>(Lcom/android/server/pm/PackageManagerService;ZLjava/util/List;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$9znobjOH7ab0F1jsW2oFdNipS-8;->run()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$E8wmDWkS1hMFlGgjBX_cxNdNPXc;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/parsing/pkg/AndroidPackage;IIILandroid/content/pm/IPackageDataObserver;Ljava/lang/String;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$E8wmDWkS1hMFlGgjBX_cxNdNPXc;->run()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$EQHzRzxse-rtXNIoVfzT15c8LHI;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$EQHzRzxse-rtXNIoVfzT15c8LHI;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$EQHzRzxse-rtXNIoVfzT15c8LHI;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
@@ -23606,16 +25294,27 @@
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$JqISwjRG4Nrwn7K19yITMU1WH5g;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 HPLcom/android/server/pm/-$$Lambda$PackageManagerService$KUTG4a_t__F9-jF9uKK4m5M6ED0;-><init>(I)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$KUTG4a_t__F9-jF9uKK4m5M6ED0;->run()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$PPALVjzIAqON2FdZv5soozZSLq8;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/ArrayList;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$PPALVjzIAqON2FdZv5soozZSLq8;->run()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$PackageManagerInternalImpl$JycGJrzHIngCbGMk68UBYZqLVhg;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$PackageManagerInternalImpl$JycGJrzHIngCbGMk68UBYZqLVhg;-><init>()V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$QEXaCTQ54nCy5aHUAa6mkt0WtpM;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$QEXaCTQ54nCy5aHUAa6mkt0WtpM;->run()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$QIOg9odF8NpVJsmgYMdGQy_GpvY;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$QIOg9odF8NpVJsmgYMdGQy_GpvY;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$QIOg9odF8NpVJsmgYMdGQy_GpvY;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$RfqRmQ8KNtYywzf-EIm7VG5PHj8;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$RfqRmQ8KNtYywzf-EIm7VG5PHj8;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$RoklvvEqbb0_WAziY4NuUNhrlUA;-><init>(Lcom/android/server/pm/PackageManagerService;[ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I)V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$RoklvvEqbb0_WAziY4NuUNhrlUA;->run()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$U47f17sf-Z0eef3W2xgzUB-ecR4;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$U47f17sf-Z0eef3W2xgzUB-ecR4;-><init>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$UmQDc8UZK0k1X1BVBYAHhv6arhU;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$UmQDc8UZK0k1X1BVBYAHhv6arhU;->run()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$UqTOzDNpKPiIlaG4_AUlesB9I1E;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$UqTOzDNpKPiIlaG4_AUlesB9I1E;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$WXhCf3v80czwXbh17kimYOFhAFs;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$WXhCf3v80czwXbh17kimYOFhAFs;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$Wnf5zZuMJLUQ4GfjHtUww4l7YUg;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$Wnf5zZuMJLUQ4GfjHtUww4l7YUg;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$Wnf5zZuMJLUQ4GfjHtUww4l7YUg;->produce(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
@@ -23636,10 +25335,14 @@
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$djQQrdclAlQ8ILip1OVPcBDTkW4;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$djQQrdclAlQ8ILip1OVPcBDTkW4;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$djQQrdclAlQ8ILip1OVPcBDTkW4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$eOXySdFQ-z888HMdYTDdDb8rYuQ;-><init>(Ljava/util/function/BiConsumer;)V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$eOXySdFQ-z888HMdYTDdDb8rYuQ;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$f5l1_UOwACQPN6qixqBmzSJzDMw;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$f5l1_UOwACQPN6qixqBmzSJzDMw;->run()V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$fQjXY6S0s38rWZ-Tv1PTQvrgJb4;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/content/pm/parsing/AndroidPackage;IIILandroid/content/pm/IPackageDataObserver;Ljava/lang/String;)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$fQjXY6S0s38rWZ-Tv1PTQvrgJb4;->run()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$hUwUCbxk7NyDYjopcudg9C0rNXI;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;ILjava/lang/String;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$hUwUCbxk7NyDYjopcudg9C0rNXI;->run()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$hlGRKJu3cTGpEnG-hyOT3QbrXxY;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;IZZJII[ILandroid/content/pm/IPackageDeleteObserver2;Ljava/lang/String;)V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$hlGRKJu3cTGpEnG-hyOT3QbrXxY;->run()V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$i2wY1QKIZAfMEAymOPPs8KS2G5c;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;)V
@@ -23648,10 +25351,17 @@
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$i6CpetYRHYknkq8R3n1zFsH2Qng;->produce(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$imyTLGZ0HLyacORSu0iPTteivzY;-><init>(Ljava/lang/Object;)V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$imyTLGZ0HLyacORSu0iPTteivzY;->produce(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$iqEX-hdziBwn1njNVhAdQHeXwus;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$iqEX-hdziBwn1njNVhAdQHeXwus;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$iqEX-hdziBwn1njNVhAdQHeXwus;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$kHFR9hPPJshGwQIlj0mPFAZIZSI;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$kHFR9hPPJshGwQIlj0mPFAZIZSI;->run()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$kUm15OrlWJD9K-LIlM_rBtX-g4Q;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$kUm15OrlWJD9K-LIlM_rBtX-g4Q;->test(Ljava/lang/Object;)Z
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$kdqJJNrm44ZfCpYgQsRrZy7nM38;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/content/pm/parsing/AndroidPackage;IIILandroid/content/pm/IPackageDataObserver;Ljava/lang/String;)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$kdqJJNrm44ZfCpYgQsRrZy7nM38;->run()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$lMzdBb_uDjCHbhFoPJTxlDi_7zo;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/util/List;I)V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$lMzdBb_uDjCHbhFoPJTxlDi_7zo;->run()V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$mozSqBaYzz4jQjwZjKIapdRXflc;-><init>(I)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$mozSqBaYzz4jQjwZjKIapdRXflc;->run()V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$ms4g2QGGQv1AIanhd1siLhoElkI;-><init>(Lcom/android/server/pm/PackageManagerService;I)V
@@ -23662,33 +25372,72 @@
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$rLdmTQLwnuPeDuWTeDB-0S1Ku4I;->onInitialized(I)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$rcVfdsXa_dlub2enxT5rL0nTx7I;-><init>(Lcom/android/server/pm/PackageManagerService;[ILjava/lang/String;Z)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$rcVfdsXa_dlub2enxT5rL0nTx7I;->run()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$td_h2dUgAqjQUL1GEeARgH8IZsw;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Landroid/content/IntentSender;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$td_h2dUgAqjQUL1GEeARgH8IZsw;->run()V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$vPmwW10Lr1Zc8YoNadc7v4xmIWo;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;)V
 PLcom/android/server/pm/-$$Lambda$PackageManagerService$vPmwW10Lr1Zc8YoNadc7v4xmIWo;->run()V
+HPLcom/android/server/pm/-$$Lambda$PackageManagerService$wsVLwSG7sxG5kNGb-a6lG3mwxKg;-><init>(Lcom/android/server/pm/PackageManagerService;[ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I)V
+HPLcom/android/server/pm/-$$Lambda$PackageManagerService$wsVLwSG7sxG5kNGb-a6lG3mwxKg;->run()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$xKD6SB7pISjc29qfmXIq5O_3OJw;-><init>(Landroid/content/Context;Lcom/android/server/pm/Installer;Ljava/lang/Object;ZLjava/lang/Object;)V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$xKD6SB7pISjc29qfmXIq5O_3OJw;->produce(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$xZAAMOZCDrDe-FJUcRmxesa8h7c;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$xZAAMOZCDrDe-FJUcRmxesa8h7c;-><init>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$yXdgY7SVZQWnWWIG0iO_OYKuh58;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/ArrayList;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$yXdgY7SVZQWnWWIG0iO_OYKuh58;->run()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$zCuBGosGB1OGJ7ya2EB4X5V2jBk;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$zCuBGosGB1OGJ7ya2EB4X5V2jBk;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$zCuBGosGB1OGJ7ya2EB4X5V2jBk;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$-TyALUo9to-tSa8TowQ8FvHNb6w;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$-TyALUo9to-tSa8TowQ8FvHNb6w;-><init>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$-TyALUo9to-tSa8TowQ8FvHNb6w;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$6Hiu23bVWNI_UB8JjRQOmllFVE8;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$6Hiu23bVWNI_UB8JjRQOmllFVE8;-><init>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$6Hiu23bVWNI_UB8JjRQOmllFVE8;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$CznOu58qzp1xBXuz65vwZNf-2YQ;-><init>(Lcom/android/server/pm/dex/DexManager;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$CznOu58qzp1xBXuz65vwZNf-2YQ;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$JqfeXEVVj9qyD-t5TtAWP5dUo_Q;-><init>(Lcom/android/server/pm/dex/DexManager;)V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$JqfeXEVVj9qyD-t5TtAWP5dUo_Q;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$M_u4g42JId-43cJtHYO3sOljFGA;-><init>(J)V
+HPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$M_u4g42JId-43cJtHYO3sOljFGA;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$R63g3nqhTGPCz0H9DSmrG9fJSiw;-><init>(Lcom/android/server/pm/dex/DexManager;)V
+HPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$R63g3nqhTGPCz0H9DSmrG9fJSiw;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$RPtRdW9NvVYNz-tG18YC0n7VJp4;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$RPtRdW9NvVYNz-tG18YC0n7VJp4;-><init>()V
+HPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$RPtRdW9NvVYNz-tG18YC0n7VJp4;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$TpzgRnout5yyMszlNf131QKwDhE;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$TpzgRnout5yyMszlNf131QKwDhE;-><init>()V
+HPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$TpzgRnout5yyMszlNf131QKwDhE;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$WqWSiwN-039OE_mRd8x6F_ORqRU;-><init>(Landroid/util/ArraySet;)V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$WqWSiwN-039OE_mRd8x6F_ORqRU;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$X1ShBJjcdw7NZGmmKd5HWXujgg8;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$X1ShBJjcdw7NZGmmKd5HWXujgg8;-><init>()V
+HPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$X1ShBJjcdw7NZGmmKd5HWXujgg8;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$ZEbcK7yQgHqG-8Z65v9KNo4jBgU;-><init>(J)V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$ZEbcK7yQgHqG-8Z65v9KNo4jBgU;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$ZV5ohDjL36kQwB8DIAjybtJX09I;-><init>(Landroid/util/ArraySet;)V
+HPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$ZV5ohDjL36kQwB8DIAjybtJX09I;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$_LUs2lN_dtgmbhOTm2Ear0f91Qg;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$_LUs2lN_dtgmbhOTm2Ear0f91Qg;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$_LUs2lN_dtgmbhOTm2Ear0f91Qg;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$eMhMS_ozPxLQedSFcYUWkqe3DH4;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$eMhMS_ozPxLQedSFcYUWkqe3DH4;-><init>()V
 PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$eMhMS_ozPxLQedSFcYUWkqe3DH4;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$mHSpCXTEDV8POwYEJDexVxYsJeU;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$mHSpCXTEDV8POwYEJDexVxYsJeU;-><init>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$mHSpCXTEDV8POwYEJDexVxYsJeU;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$miSwAI7tlaWPbDunujMxV7oiAWA;-><init>(Landroid/util/ArraySet;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$miSwAI7tlaWPbDunujMxV7oiAWA;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$pak5uFueWVDXpeD0raY40AD6lPY;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$pak5uFueWVDXpeD0raY40AD6lPY;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$pak5uFueWVDXpeD0raY40AD6lPY;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$qCP9hzvvo1JqZQ7mV-34TucIk2o;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$qCP9hzvvo1JqZQ7mV-34TucIk2o;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$qCP9hzvvo1JqZQ7mV-34TucIk2o;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$qT5pTdzwmvyTHE_Ge2TR9Yn66os;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$qT5pTdzwmvyTHE_Ge2TR9Yn66os;-><init>()V
+HPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$qT5pTdzwmvyTHE_Ge2TR9Yn66os;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$sV6Dy76F46JIA9ovYV5QyhvLuQ4;-><init>(J)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$sV6Dy76F46JIA9ovYV5QyhvLuQ4;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/pm/-$$Lambda$ParallelPackageParser$FTtinPrp068lVeI7K6bC1tNE3iM;-><init>(Lcom/android/server/pm/ParallelPackageParser;Ljava/io/File;I)V
 HSPLcom/android/server/pm/-$$Lambda$ParallelPackageParser$FTtinPrp068lVeI7K6bC1tNE3iM;->run()V
 HSPLcom/android/server/pm/-$$Lambda$ShortcutBitmapSaver$AUDgG57FGyGDUVDAjL-7cuiE0pM;-><init>(Lcom/android/server/pm/ShortcutBitmapSaver;)V
@@ -23710,6 +25459,8 @@
 HPLcom/android/server/pm/-$$Lambda$ShortcutPackage$hEXnzlESoRjagj8Pd9f4PrqudKE;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HPLcom/android/server/pm/-$$Lambda$ShortcutPackage$ibOAVgfKWMZFYSeVV_hLNx6jogk;-><init>(Lcom/android/server/pm/ShortcutPackage;)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutPackage$ibOAVgfKWMZFYSeVV_hLNx6jogk;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$1aV3EGXTRhUmEZRUSi2Bvf-7vLg;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$1aV3EGXTRhUmEZRUSi2Bvf-7vLg;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$2mjLrqafL_ZPftw5bIS-yyK7PxI;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$2mjLrqafL_ZPftw5bIS-yyK7PxI;-><init>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$2mjLrqafL_ZPftw5bIS-yyK7PxI;->accept(Ljava/lang/Object;)V
@@ -23717,6 +25468,13 @@
 HSPLcom/android/server/pm/-$$Lambda$ShortcutService$3$WghiV-HLnzJqZabObC5uHCmb960;->run()V
 HSPLcom/android/server/pm/-$$Lambda$ShortcutService$3$n_VdEzyBcjs0pGZO8GnB0FoTgR0;-><init>(Lcom/android/server/pm/ShortcutService$3;II)V
 HSPLcom/android/server/pm/-$$Lambda$ShortcutService$3$n_VdEzyBcjs0pGZO8GnB0FoTgR0;->run()V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$5odn6Gcj54kzvMMAMZDsQQdWFR8;-><init>(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;I)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$5odn6Gcj54kzvMMAMZDsQQdWFR8;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$BgapJrdquo1OPe4VggDVe-adDMo;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$BgapJrdquo1OPe4VggDVe-adDMo;-><init>()V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$BgapJrdquo1OPe4VggDVe-adDMo;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$C0yXUUdkpfa84Nq_Po6ovVJWCBk;-><init>(Lcom/android/server/pm/ShortcutService;ILjava/util/List;Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/List;)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$C0yXUUdkpfa84Nq_Po6ovVJWCBk;->run()V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$DzwraUeMWDwA0XDfFxd3sGOsA0E;-><init>(Lcom/android/server/pm/ShortcutService;ILjava/lang/String;)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$DzwraUeMWDwA0XDfFxd3sGOsA0E;->run()V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$EE8aJ-V-lThNgd-x9utgJTk3K50;-><init>(I)V
@@ -23725,6 +25483,9 @@
 PLcom/android/server/pm/-$$Lambda$ShortcutService$H1HFyb1U9E1-y03suEsi37_w-t0;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$HrjNihAM4odnSGPLxsJbI33JkwE;-><init>(Ljava/util/List;Landroid/content/IntentFilter;)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$HrjNihAM4odnSGPLxsJbI33JkwE;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$K1vIRui5MsFaCf51e19YUNsWX6s;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$K1vIRui5MsFaCf51e19YUNsWX6s;-><init>()V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$K1vIRui5MsFaCf51e19YUNsWX6s;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$OwXAUkceFTQAGpPzTbihl14wvP4;-><init>(Lcom/android/server/pm/ShortcutService$LocalService;ILjava/lang/String;Ljava/util/List;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;III)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$OwXAUkceFTQAGpPzTbihl14wvP4;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$Q0t7aDuDFJ8HWAf1NHW1dGQjOf8;-><init>(Lcom/android/server/pm/ShortcutService$LocalService;ILjava/lang/String;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;III)V
@@ -23746,9 +25507,14 @@
 PLcom/android/server/pm/-$$Lambda$ShortcutService$Ot_p1CCuELDP1Emv4jTa8vvA09A;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$QFWliMhWloedhnaZCwVKaqKPVb4;-><init>(Lcom/android/server/pm/ShortcutService;JI)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$QFWliMhWloedhnaZCwVKaqKPVb4;->run()V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$Rg7gKlp8SUutZh8_-nc6k078-WI;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;IZ)V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$Rg7gKlp8SUutZh8_-nc6k078-WI;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$SjK_0i78sIpSTGJKpeLWOhhhsiA;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$SjK_0i78sIpSTGJKpeLWOhhhsiA;-><init>()V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$SjK_0i78sIpSTGJKpeLWOhhhsiA;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$SyYIn2KaeBI9Z7tMjhNFrCoPb80;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$SyYIn2KaeBI9Z7tMjhNFrCoPb80;-><init>()V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$SyYIn2KaeBI9Z7tMjhNFrCoPb80;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$TAtLoMHHFYLITi_4Sj-ZTHx6ELo;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;IZ)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$TAtLoMHHFYLITi_4Sj-ZTHx6ELo;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$TUT0CJsDhxqkpcseduaAriOs6bg;-><clinit>()V
@@ -23756,6 +25522,11 @@
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$TUT0CJsDhxqkpcseduaAriOs6bg;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$TVqBA9DN_h90eIcwrnmy7Mkl6jo;-><init>(Ljava/lang/String;I)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$TVqBA9DN_h90eIcwrnmy7Mkl6jo;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$_1B1BDH9-mZvjKyf_4kfMdnC-Ck;-><init>(Ljava/util/List;Landroid/content/IntentFilter;)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$_1B1BDH9-mZvjKyf_4kfMdnC-Ck;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$czpyyFh3OpxQSZgJ1UuQLPlktn8;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$czpyyFh3OpxQSZgJ1UuQLPlktn8;-><init>()V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$czpyyFh3OpxQSZgJ1UuQLPlktn8;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$exGcjcSQADxpLL30XenIn9sDxlI;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$exGcjcSQADxpLL30XenIn9sDxlI;-><init>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$exGcjcSQADxpLL30XenIn9sDxlI;->accept(Ljava/lang/Object;)V
@@ -23773,9 +25544,16 @@
 PLcom/android/server/pm/-$$Lambda$ShortcutService$oes_dY8CJz5MllJiOggarpV9YkA;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$oes_dY8CJz5MllJiOggarpV9YkA;-><init>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$oes_dY8CJz5MllJiOggarpV9YkA;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$qG817DggcAqxEWpGr6GLuNf4LhM;-><init>(I)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$qG817DggcAqxEWpGr6GLuNf4LhM;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$ShortcutService$qZKocFWzizz4DG9R0afdFN-7cLQ;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$qZKocFWzizz4DG9R0afdFN-7cLQ;-><init>()V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$qZKocFWzizz4DG9R0afdFN-7cLQ;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$s11VOofRVMGkuwyyqnMY7eAyb5k;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$s11VOofRVMGkuwyyqnMY7eAyb5k;-><init>()V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$s11VOofRVMGkuwyyqnMY7eAyb5k;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$sroKL9nhBsFcNz88fW_woYg1gFA;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/util/ArrayList;)V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$sroKL9nhBsFcNz88fW_woYg1gFA;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/pm/-$$Lambda$ShortcutService$t1am7miIbc4iP6CfSL0gFgEsO0Y;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;IZ)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$t1am7miIbc4iP6CfSL0gFgEsO0Y;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/-$$Lambda$ShortcutService$uvknhLDPo5JAtmXalM9P3rrx9e4;-><init>(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;I)V
@@ -23818,17 +25596,32 @@
 HSPLcom/android/server/pm/-$$Lambda$UserManagerService$s1AxethOTPU7NQ5LXxyP4etLk7E;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
 PLcom/android/server/pm/-$$Lambda$UserSystemPackageInstaller$qgQhYPPVJE0ZGQMRr6lmVdZZll0;-><init>(Lcom/android/server/pm/UserSystemPackageInstaller;Ljava/util/Set;ZLjava/util/Set;)V
 PLcom/android/server/pm/-$$Lambda$UserSystemPackageInstaller$qgQhYPPVJE0ZGQMRr6lmVdZZll0;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/pm/-$$Lambda$YY245IBQr5Qygm_NJ7MG_oIzCHk;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$YY245IBQr5Qygm_NJ7MG_oIzCHk;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$YY245IBQr5Qygm_NJ7MG_oIzCHk;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/-$$Lambda$ZNT-rBF_Eueeh81ck_Py5FtxpMk;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$ZNT-rBF_Eueeh81ck_Py5FtxpMk;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$ZNT-rBF_Eueeh81ck_Py5FtxpMk;->test(Ljava/lang/Object;)Z
 PLcom/android/server/pm/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;-><clinit>()V
 PLcom/android/server/pm/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;-><init>()V
 HPLcom/android/server/pm/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;->execute(Ljava/lang/Runnable;)V
+HSPLcom/android/server/pm/-$$Lambda$bpFcEVMboFCYFnC3BHdOPCQV19Y;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$bpFcEVMboFCYFnC3BHdOPCQV19Y;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$bpFcEVMboFCYFnC3BHdOPCQV19Y;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/pm/-$$Lambda$g4P9K8aMR8DqEu0xx3BuQNeuJDI;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$g4P9K8aMR8DqEu0xx3BuQNeuJDI;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$g4P9K8aMR8DqEu0xx3BuQNeuJDI;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/-$$Lambda$jJA7F7L-4w56WZDbW9UayzZEbFw;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$jJA7F7L-4w56WZDbW9UayzZEbFw;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$jJA7F7L-4w56WZDbW9UayzZEbFw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/pm/-$$Lambda$jZzCUQd1whVIqs_s1XMLbFqTP_E;-><init>(Lcom/android/server/pm/ShortcutService;)V
 HPLcom/android/server/pm/-$$Lambda$jZzCUQd1whVIqs_s1XMLbFqTP_E;->run()V
 HSPLcom/android/server/pm/-$$Lambda$k1GFoI6SobyVJslBym5uZjmuRFs;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$k1GFoI6SobyVJslBym5uZjmuRFs;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$k1GFoI6SobyVJslBym5uZjmuRFs;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/-$$Lambda$mI6eiz-cSKp3gDx4_MNMYKTJXG4;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$mI6eiz-cSKp3gDx4_MNMYKTJXG4;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$mI6eiz-cSKp3gDx4_MNMYKTJXG4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/pm/-$$Lambda$o-ZLavkSzPWqIqo9vLXCsdj4Pgg;-><clinit>()V
 HSPLcom/android/server/pm/-$$Lambda$o-ZLavkSzPWqIqo9vLXCsdj4Pgg;-><init>()V
 HSPLcom/android/server/pm/-$$Lambda$o-ZLavkSzPWqIqo9vLXCsdj4Pgg;->apply(Ljava/lang/Object;)Ljava/lang/Object;
@@ -23890,27 +25683,48 @@
 HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->populateAllPackagesCacheIfNeeded()V
 HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->populatePackageNameToApexModuleNameIfNeeded()V
 HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->registerApkInApex(Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->registerApkInApex(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 PLcom/android/server/pm/ApexManager$ApexManagerImpl;->submitStagedSession(Landroid/apex/ApexSessionParams;)Landroid/apex/ApexInfoList;
 HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->systemReady(Landroid/content/Context;)V
 HSPLcom/android/server/pm/ApexManager;-><clinit>()V
 HSPLcom/android/server/pm/ApexManager;-><init>()V
 HSPLcom/android/server/pm/ApexManager;->getInstance()Lcom/android/server/pm/ApexManager;
+HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;-><init>(Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$Injector;)V
+HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;-><init>(Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/AppsFilter$1;)V
 HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;-><init>(Lcom/android/server/pm/PackageManagerService$Injector;)V
 HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;-><init>(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/AppsFilter$1;)V
+HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->enableLogging(IZ)V
+HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->fetchPackageIsEnabled(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
+HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->initializePackageState(Ljava/lang/String;)V
 HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->isGloballyEnabled()Z
+PLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->isLoggingEnabled(I)Z
 PLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->lambda$onSystemReady$0$AppsFilter$FeatureConfigImpl(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->onCompatChange(Ljava/lang/String;)V
 HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->onSystemReady()V
+HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->packageIsEnabled(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
+HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->updateEnabledState(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
+HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->updatePackageState(Lcom/android/server/pm/PackageSetting;Z)V
 HSPLcom/android/server/pm/AppsFilter;-><init>(Lcom/android/server/pm/AppsFilter$FeatureConfig;[Ljava/lang/String;Z)V
 HSPLcom/android/server/pm/AppsFilter;-><init>(Lcom/android/server/pm/AppsFilter$FeatureConfig;[Ljava/lang/String;ZLcom/android/server/om/OverlayReferenceMapper$Provider;)V
 HSPLcom/android/server/pm/AppsFilter;->addPackage(Lcom/android/server/pm/PackageSetting;Landroid/util/ArrayMap;)V
+HPLcom/android/server/pm/AppsFilter;->callingPkgInstruments(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;)Z
 HSPLcom/android/server/pm/AppsFilter;->canQueryAsInstaller(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/parsing/AndroidPackage;)Z
+HSPLcom/android/server/pm/AppsFilter;->canQueryAsInstaller(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/AppsFilter;->canQueryViaComponents(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)Z
+HSPLcom/android/server/pm/AppsFilter;->canQueryViaComponents(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/AppsFilter;->canQueryViaIntent(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/AppsFilter;->canQueryViaPackage(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)Z
+HSPLcom/android/server/pm/AppsFilter;->canQueryViaPackage(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
+HSPLcom/android/server/pm/AppsFilter;->create(Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/PackageManagerService$Injector;)Lcom/android/server/pm/AppsFilter;
 HSPLcom/android/server/pm/AppsFilter;->create(Lcom/android/server/pm/PackageManagerService$Injector;)Lcom/android/server/pm/AppsFilter;
+HPLcom/android/server/pm/AppsFilter;->dumpPackageSet(Ljava/io/PrintWriter;Ljava/lang/Object;Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/pm/AppsFilter$ToString;)V
 HPLcom/android/server/pm/AppsFilter;->dumpQueries(Ljava/io/PrintWriter;Lcom/android/server/pm/PackageManagerService;Ljava/lang/Integer;Lcom/android/server/pm/DumpState;[I)V
+HPLcom/android/server/pm/AppsFilter;->dumpQueriesMap(Ljava/io/PrintWriter;Ljava/lang/Integer;Landroid/util/SparseSetArray;Ljava/lang/String;Lcom/android/server/pm/AppsFilter$ToString;)V
 HSPLcom/android/server/pm/AppsFilter;->grantImplicitAccess(II)V
 HSPLcom/android/server/pm/AppsFilter;->isSystemSigned(Landroid/content/pm/PackageParser$SigningDetails;Lcom/android/server/pm/PackageSetting;)Z
+HPLcom/android/server/pm/AppsFilter;->lambda$dumpQueries$0(Landroid/util/SparseArray;Lcom/android/server/pm/PackageManagerService;Ljava/lang/Integer;)Ljava/lang/String;
+HSPLcom/android/server/pm/AppsFilter;->matchesAnyFilter(Landroid/content/Intent;Landroid/content/pm/parsing/component/ParsedComponent;)Z
+HSPLcom/android/server/pm/AppsFilter;->matchesIntentFilters(Landroid/content/Intent;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/AppsFilter;->onSystemReady()V
 HSPLcom/android/server/pm/AppsFilter;->removePackage(Lcom/android/server/pm/PackageSetting;[ILandroid/util/ArrayMap;)V
 HSPLcom/android/server/pm/AppsFilter;->shouldFilterApplication(ILcom/android/server/pm/SettingBase;Lcom/android/server/pm/PackageSetting;I)Z
@@ -23931,8 +25745,8 @@
 PLcom/android/server/pm/BackgroundDexOptService;->idleOptimizePackages(Lcom/android/server/pm/PackageManagerService;Landroid/util/ArraySet;J)I
 HSPLcom/android/server/pm/BackgroundDexOptService;->isBackgroundDexoptDisabled()Z
 HPLcom/android/server/pm/BackgroundDexOptService;->lambda$performDexOptPrimary$0(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;II)Ljava/lang/Integer;
-PLcom/android/server/pm/BackgroundDexOptService;->lambda$performDexOptSecondary$1(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/dex/DexoptOptions;)Ljava/lang/Integer;
-PLcom/android/server/pm/BackgroundDexOptService;->notifyPackageChanged(Ljava/lang/String;)V
+HPLcom/android/server/pm/BackgroundDexOptService;->lambda$performDexOptSecondary$1(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/dex/DexoptOptions;)Ljava/lang/Integer;
+HPLcom/android/server/pm/BackgroundDexOptService;->notifyPackageChanged(Ljava/lang/String;)V
 PLcom/android/server/pm/BackgroundDexOptService;->notifyPinService(Landroid/util/ArraySet;)V
 PLcom/android/server/pm/BackgroundDexOptService;->onStartJob(Landroid/app/job/JobParameters;)Z
 PLcom/android/server/pm/BackgroundDexOptService;->onStopJob(Landroid/app/job/JobParameters;)Z
@@ -23971,87 +25785,173 @@
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;-><init>(Lcom/android/server/pm/ComponentResolver$1;)V
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->access$400(Lcom/android/server/pm/ComponentResolver$ActivityIntentResolver;)Landroid/util/ArrayMap;
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->access$700(Lcom/android/server/pm/ComponentResolver$ActivityIntentResolver;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;Ljava/lang/String;Ljava/util/List;)V
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->access$700(Lcom/android/server/pm/ComponentResolver$ActivityIntentResolver;Landroid/content/pm/parsing/component/ParsedActivity;Ljava/lang/String;Ljava/util/List;)V
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->access$800(Lcom/android/server/pm/ComponentResolver$ActivityIntentResolver;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;Ljava/lang/String;)V
+HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->access$800(Lcom/android/server/pm/ComponentResolver$ActivityIntentResolver;Landroid/content/pm/parsing/component/ParsedActivity;Ljava/lang/String;)V
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->addActivity(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;Ljava/lang/String;Ljava/util/List;)V
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->addActivity(Landroid/content/pm/parsing/component/ParsedActivity;Ljava/lang/String;Ljava/util/List;)V
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->allowFilterResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;Ljava/util/List;)Z
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->allowFilterResult(Landroid/util/Pair;Ljava/util/List;)Z
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->allowFilterResult(Ljava/lang/Object;Ljava/util/List;)Z
+HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/content/IntentFilter;)V
+HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)V
+HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/Pair;)V
+HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;)V
 HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->dumpFilterLabel(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;I)V
 HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->filterToLabel(Landroid/content/IntentFilter;)Ljava/lang/Object;
 HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->filterToLabel(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)Ljava/lang/Object;
+PLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->filterToLabel(Landroid/util/Pair;)Ljava/lang/Object;
+HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->filterToLabel(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->getIntentFilter(Landroid/util/Pair;)Landroid/content/IntentFilter;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->getResolveList(Landroid/content/pm/parsing/AndroidPackage;)Ljava/util/List;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->getResolveList(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/util/List;
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isFilterStopped(Landroid/content/IntentFilter;I)Z
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isFilterStopped(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;I)Z
+HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isFilterStopped(Landroid/util/Pair;I)Z
+HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isFilterStopped(Ljava/lang/Object;I)Z
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)Z
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/util/Pair;)Z
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newArray(I)[Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newArray(I)[Landroid/util/Pair;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newArray(I)[Ljava/lang/Object;
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;II)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newResult(Landroid/util/Pair;II)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newResult(Ljava/lang/Object;II)Ljava/lang/Object;
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->queryIntent(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->queryIntent(Landroid/content/Intent;Ljava/lang/String;III)Ljava/util/List;
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->queryIntentForPackage(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->removeActivity(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;Ljava/lang/String;)V
+HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->removeActivity(Landroid/content/pm/parsing/component/ParsedActivity;Ljava/lang/String;)V
 HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->sortResults(Ljava/util/List;)V
 PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;-><init>()V
 HPLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->filterResults(Ljava/util/List;)V
+PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->getIntentFilter(Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;)Landroid/content/IntentFilter;
+PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
 HPLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
 PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->newArray(I)[Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;
+PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->newArray(I)[Ljava/lang/Object;
 PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
 PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->newResult(Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;II)Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;
+PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->newResult(Ljava/lang/Object;II)Ljava/lang/Object;
+HSPLcom/android/server/pm/ComponentResolver$MimeGroupsAwareIntentResolver;-><init>()V
+HSPLcom/android/server/pm/ComponentResolver$MimeGroupsAwareIntentResolver;-><init>(Lcom/android/server/pm/ComponentResolver$1;)V
+HSPLcom/android/server/pm/ComponentResolver$MimeGroupsAwareIntentResolver;->addFilter(Landroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;)V
+HSPLcom/android/server/pm/ComponentResolver$MimeGroupsAwareIntentResolver;->addFilter(Landroid/util/Pair;)V
+HSPLcom/android/server/pm/ComponentResolver$MimeGroupsAwareIntentResolver;->applyMimeGroups(Landroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;)V
+HSPLcom/android/server/pm/ComponentResolver$MimeGroupsAwareIntentResolver;->applyMimeGroups(Landroid/util/Pair;)V
+HPLcom/android/server/pm/ComponentResolver$MimeGroupsAwareIntentResolver;->removeFilterInternal(Landroid/content/IntentFilter;)V
+HPLcom/android/server/pm/ComponentResolver$MimeGroupsAwareIntentResolver;->removeFilterInternal(Landroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;)V
+HPLcom/android/server/pm/ComponentResolver$MimeGroupsAwareIntentResolver;->removeFilterInternal(Landroid/util/Pair;)V
+HPLcom/android/server/pm/ComponentResolver$MimeGroupsAwareIntentResolver;->removeFilterInternal(Ljava/lang/Object;)V
 HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;-><init>()V
 HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;-><init>(Lcom/android/server/pm/ComponentResolver$1;)V
 HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->access$500(Lcom/android/server/pm/ComponentResolver$ProviderIntentResolver;)Landroid/util/ArrayMap;
 HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->addProvider(Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;)V
+HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->addProvider(Landroid/content/pm/parsing/component/ParsedProvider;)V
 HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
 HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->allowFilterResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;Ljava/util/List;)Z
+HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->allowFilterResult(Landroid/util/Pair;Ljava/util/List;)Z
+HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->allowFilterResult(Ljava/lang/Object;Ljava/util/List;)Z
+PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/content/IntentFilter;)V
+HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;)V
 HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->dumpFilterLabel(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;I)V
 HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->filterToLabel(Landroid/content/IntentFilter;)Ljava/lang/Object;
 PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->filterToLabel(Landroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;)Ljava/lang/Object;
+PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->filterToLabel(Landroid/util/Pair;)Ljava/lang/Object;
+PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->filterToLabel(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->getIntentFilter(Landroid/util/Pair;)Landroid/content/IntentFilter;
+HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
 HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
 HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;)Z
+HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/util/Pair;)Z
+HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z
 HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
 HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newArray(I)[Landroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;
+HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newArray(I)[Landroid/util/Pair;
+HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newArray(I)[Ljava/lang/Object;
 HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
 HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;II)Landroid/content/pm/ResolveInfo;
+HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newResult(Landroid/util/Pair;II)Landroid/content/pm/ResolveInfo;
+HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newResult(Ljava/lang/Object;II)Ljava/lang/Object;
 HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->queryIntent(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
 HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->queryIntentForPackage(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
 HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->removeProvider(Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;)V
+HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->removeProvider(Landroid/content/pm/parsing/component/ParsedProvider;)V
 HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->sortResults(Ljava/util/List;)V
 HSPLcom/android/server/pm/ComponentResolver$ReceiverIntentResolver;-><init>()V
 HSPLcom/android/server/pm/ComponentResolver$ReceiverIntentResolver;-><init>(Lcom/android/server/pm/ComponentResolver$1;)V
 HSPLcom/android/server/pm/ComponentResolver$ReceiverIntentResolver;->getResolveList(Landroid/content/pm/parsing/AndroidPackage;)Ljava/util/List;
+HSPLcom/android/server/pm/ComponentResolver$ReceiverIntentResolver;->getResolveList(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/util/List;
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;-><init>()V
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;-><init>(Lcom/android/server/pm/ComponentResolver$1;)V
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->access$600(Lcom/android/server/pm/ComponentResolver$ServiceIntentResolver;)Landroid/util/ArrayMap;
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->addService(Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;)V
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->addService(Landroid/content/pm/parsing/component/ParsedService;)V
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->allowFilterResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;Ljava/util/List;)Z
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->allowFilterResult(Landroid/util/Pair;Ljava/util/List;)Z
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->allowFilterResult(Ljava/lang/Object;Ljava/util/List;)Z
+HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/content/IntentFilter;)V
+HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;)V
+HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/Pair;)V
+PLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;)V
 HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->dumpFilterLabel(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;I)V
 HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->filterToLabel(Landroid/content/IntentFilter;)Ljava/lang/Object;
 HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->filterToLabel(Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;)Ljava/lang/Object;
+PLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->filterToLabel(Landroid/util/Pair;)Ljava/lang/Object;
+HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->filterToLabel(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->getIntentFilter(Landroid/util/Pair;)Landroid/content/IntentFilter;
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
 HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isFilterStopped(Landroid/content/IntentFilter;I)Z
 HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isFilterStopped(Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;I)Z
+HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isFilterStopped(Landroid/util/Pair;I)Z
+HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isFilterStopped(Ljava/lang/Object;I)Z
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;)Z
+HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/util/Pair;)Z
+HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newArray(I)[Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newArray(I)[Landroid/util/Pair;
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newArray(I)[Ljava/lang/Object;
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;II)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newResult(Landroid/util/Pair;II)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newResult(Ljava/lang/Object;II)Ljava/lang/Object;
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->queryIntent(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->queryIntentForPackage(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->removeService(Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;)V
+HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->removeService(Landroid/content/pm/parsing/component/ParsedService;)V
 HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->sortResults(Ljava/util/List;)V
 HSPLcom/android/server/pm/ComponentResolver;-><clinit>()V
 HSPLcom/android/server/pm/ComponentResolver;-><init>(Lcom/android/server/pm/UserManagerService;Landroid/content/pm/PackageManagerInternal;Ljava/lang/Object;)V
 HSPLcom/android/server/pm/ComponentResolver;->access$1000()Landroid/content/pm/PackageManagerInternal;
+HSPLcom/android/server/pm/ComponentResolver;->access$1100()Lcom/android/server/pm/UserManagerService;
+HPLcom/android/server/pm/ComponentResolver;->access$1200(Landroid/util/Pair;I)Z
+HSPLcom/android/server/pm/ComponentResolver;->access$900()Landroid/content/pm/PackageManagerInternal;
 HSPLcom/android/server/pm/ComponentResolver;->access$900()Lcom/android/server/pm/UserManagerService;
 HSPLcom/android/server/pm/ComponentResolver;->addActivitiesLocked(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/List;Z)V
+HSPLcom/android/server/pm/ComponentResolver;->addActivitiesLocked(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/List;Z)V
 HSPLcom/android/server/pm/ComponentResolver;->addAllComponents(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/ComponentResolver;->addAllComponents(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/ComponentResolver;->addProvidersLocked(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/ComponentResolver;->addProvidersLocked(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/ComponentResolver;->addReceiversLocked(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/ComponentResolver;->addReceiversLocked(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/ComponentResolver;->addServicesLocked(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/ComponentResolver;->addServicesLocked(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/ComponentResolver;->adjustPriority(Ljava/util/List;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;Ljava/lang/String;)V
+HSPLcom/android/server/pm/ComponentResolver;->adjustPriority(Ljava/util/List;Landroid/content/pm/parsing/component/ParsedActivity;Landroid/content/pm/parsing/component/ParsedIntentInfo;Ljava/lang/String;)V
 PLcom/android/server/pm/ComponentResolver;->assertProvidersNotDefined(Landroid/content/pm/parsing/AndroidPackage;)V
+PLcom/android/server/pm/ComponentResolver;->assertProvidersNotDefined(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HPLcom/android/server/pm/ComponentResolver;->assertProvidersNotDefinedLocked(Landroid/content/pm/parsing/AndroidPackage;)V
+HPLcom/android/server/pm/ComponentResolver;->assertProvidersNotDefinedLocked(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 PLcom/android/server/pm/ComponentResolver;->dumpActivityResolvers(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
 HPLcom/android/server/pm/ComponentResolver;->dumpContentProviders(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
 PLcom/android/server/pm/ComponentResolver;->dumpProviderResolvers(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
@@ -24059,16 +25959,24 @@
 HPLcom/android/server/pm/ComponentResolver;->dumpServicePermissions(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;)V
 PLcom/android/server/pm/ComponentResolver;->dumpServiceResolvers(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
 HSPLcom/android/server/pm/ComponentResolver;->findMatchingActivity(Ljava/util/List;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HSPLcom/android/server/pm/ComponentResolver;->findMatchingActivity(Ljava/util/List;Landroid/content/pm/parsing/component/ParsedActivity;)Landroid/content/pm/parsing/component/ParsedActivity;
 HSPLcom/android/server/pm/ComponentResolver;->fixProtectedFilterPriorities()V
 HSPLcom/android/server/pm/ComponentResolver;->getActivity(Landroid/content/ComponentName;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HSPLcom/android/server/pm/ComponentResolver;->getActivity(Landroid/content/ComponentName;)Landroid/content/pm/parsing/component/ParsedActivity;
 HSPLcom/android/server/pm/ComponentResolver;->getIntentListSubset(Ljava/util/List;Ljava/util/function/Function;Ljava/util/Iterator;)V
 HPLcom/android/server/pm/ComponentResolver;->getProvider(Landroid/content/ComponentName;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;
+HPLcom/android/server/pm/ComponentResolver;->getProvider(Landroid/content/ComponentName;)Landroid/content/pm/parsing/component/ParsedProvider;
 HSPLcom/android/server/pm/ComponentResolver;->getReceiver(Landroid/content/ComponentName;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HPLcom/android/server/pm/ComponentResolver;->getReceiver(Landroid/content/ComponentName;)Landroid/content/pm/parsing/component/ParsedActivity;
 HSPLcom/android/server/pm/ComponentResolver;->getService(Landroid/content/ComponentName;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;
+HPLcom/android/server/pm/ComponentResolver;->getService(Landroid/content/ComponentName;)Landroid/content/pm/parsing/component/ParsedService;
 HSPLcom/android/server/pm/ComponentResolver;->isActivityDefined(Landroid/content/ComponentName;)Z
+HPLcom/android/server/pm/ComponentResolver;->isFilterStopped(Landroid/util/Pair;I)Z
 HSPLcom/android/server/pm/ComponentResolver;->isProtectedAction(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)Z
+HSPLcom/android/server/pm/ComponentResolver;->isProtectedAction(Landroid/content/pm/parsing/component/ParsedIntentInfo;)Z
 HSPLcom/android/server/pm/ComponentResolver;->lambda$static$0(Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;)I
 HSPLcom/android/server/pm/ComponentResolver;->queryActivities(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
+HSPLcom/android/server/pm/ComponentResolver;->queryActivities(Landroid/content/Intent;Ljava/lang/String;III)Ljava/util/List;
 HSPLcom/android/server/pm/ComponentResolver;->queryActivities(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
 HSPLcom/android/server/pm/ComponentResolver;->queryProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
 HPLcom/android/server/pm/ComponentResolver;->queryProviders(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
@@ -24079,37 +25987,65 @@
 HSPLcom/android/server/pm/ComponentResolver;->queryServices(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
 HSPLcom/android/server/pm/ComponentResolver;->queryServices(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
 HSPLcom/android/server/pm/ComponentResolver;->removeAllComponents(Landroid/content/pm/parsing/AndroidPackage;Z)V
+PLcom/android/server/pm/ComponentResolver;->removeAllComponents(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/ComponentResolver;->removeAllComponentsLocked(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HPLcom/android/server/pm/ComponentResolver;->removeAllComponentsLocked(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/CrossProfileAppsService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/pm/CrossProfileAppsService;->onStart()V
 HSPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;-><init>(Landroid/content/Context;)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->checkComponentPermission(Ljava/lang/String;IIZ)I
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->clearCallingIdentity()J
 PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getActivityTaskManagerInternal()Lcom/android/server/wm/ActivityTaskManagerInternal;
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getAppOpsManager()Landroid/app/AppOpsManager;
 PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getCallingPid()I
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getCallingUid()I
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getCallingUserId()I
+PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getDevicePolicyManagerInternal()Landroid/app/admin/DevicePolicyManagerInternal;
 PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getIPackageManager()Landroid/content/pm/IPackageManager;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getPackageManager()Landroid/content/pm/PackageManager;
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->getUserManager()Landroid/os/UserManager;
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->restoreCallingIdentity(J)V
 PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->withCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;)V
-PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->withCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingSupplier;)Ljava/lang/Object;
+HPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;->withCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingSupplier;)Ljava/lang/Object;
+HSPLcom/android/server/pm/CrossProfileAppsServiceImpl$LocalService;-><init>(Lcom/android/server/pm/CrossProfileAppsServiceImpl;)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl$LocalService;->getTargetUserProfiles(Ljava/lang/String;I)Ljava/util/List;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl$LocalService;->verifyUidHasInteractAcrossProfilePermission(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/CrossProfileAppsServiceImpl;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/pm/CrossProfileAppsServiceImpl;-><init>(Landroid/content/Context;Lcom/android/server/pm/CrossProfileAppsServiceImpl$Injector;)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->access$100(Lcom/android/server/pm/CrossProfileAppsServiceImpl;Ljava/lang/String;II)Z
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->access$200(Lcom/android/server/pm/CrossProfileAppsServiceImpl;Ljava/lang/String;I)Ljava/util/List;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->appDeclaresCrossProfileAttribute(I)Z
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->canConfigureInteractAcrossProfiles(Ljava/lang/String;)Z
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->currentModeEquals(ILjava/lang/String;I)Z
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->findBroadcastReceiversForUser(Landroid/content/Intent;Landroid/os/UserHandle;)Ljava/util/List;
+HSPLcom/android/server/pm/CrossProfileAppsServiceImpl;->getLocalService()Landroid/content/pm/CrossProfileAppsInternal;
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl;->getTargetUserProfiles(Ljava/lang/String;)Ljava/util/List;
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl;->getTargetUserProfilesUnchecked(Ljava/lang/String;I)Ljava/util/List;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->hasInteractAcrossProfilesPermission(Ljava/lang/String;II)Z
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->hasOtherProfileWithPackageInstalled(Ljava/lang/String;I)Z
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->hasRequestedAppOpPermission(Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->isCrossProfilePackageWhitelisted(Ljava/lang/String;)Z
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->isPackageEnabled(Ljava/lang/String;I)Z
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->isPackageInstalled(Ljava/lang/String;I)Z
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->isPermissionGranted(Ljava/lang/String;I)Z
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->isSameProfileGroup(II)Z
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$currentModeEquals$7$CrossProfileAppsServiceImpl(ILjava/lang/String;ILjava/lang/String;)Ljava/lang/Boolean;
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$getTargetUserProfilesUnchecked$1$CrossProfileAppsServiceImpl(ILjava/lang/String;)Ljava/util/List;
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$hasOtherProfileWithPackageInstalled$8$CrossProfileAppsServiceImpl(ILjava/lang/String;)Ljava/lang/Boolean;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$isCrossProfilePackageWhitelisted$0$CrossProfileAppsServiceImpl(Ljava/lang/String;)Ljava/lang/Boolean;
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$isPackageEnabled$2$CrossProfileAppsServiceImpl(Ljava/lang/String;II)Ljava/lang/Boolean;
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$isPackageInstalled$5$CrossProfileAppsServiceImpl(Ljava/lang/String;II)Ljava/lang/Boolean;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$setInteractAcrossProfilesAppOpForUserOrThrow$6$CrossProfileAppsServiceImpl(ILjava/lang/String;I)V
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->lambda$verifyActivityCanHandleIntentAndExported$4$CrossProfileAppsServiceImpl(Landroid/content/Intent;IILandroid/content/ComponentName;)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->maybeLogSetInteractAcrossProfilesAppOp(Ljava/lang/String;IIZI)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->sendCanInteractAcrossProfilesChangedBroadcast(Ljava/lang/String;ILandroid/os/UserHandle;)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->setInteractAcrossProfilesAppOp(Ljava/lang/String;I)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->setInteractAcrossProfilesAppOpForUser(Ljava/lang/String;IIZ)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->setInteractAcrossProfilesAppOpForUserOrThrow(Ljava/lang/String;IIZ)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->setInteractAcrossProfilesAppOpUnchecked(Ljava/lang/String;IZ)V
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/ComponentName;IZ)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;IZ)V
 PLcom/android/server/pm/CrossProfileAppsServiceImpl;->verifyActivityCanHandleIntentAndExported(Landroid/content/Intent;Landroid/content/ComponentName;II)V
 HPLcom/android/server/pm/CrossProfileAppsServiceImpl;->verifyCallingPackage(Ljava/lang/String;)V
 HPLcom/android/server/pm/CrossProfileIntentFilter;-><init>(Landroid/content/IntentFilter;Ljava/lang/String;II)V
@@ -24122,17 +26058,23 @@
 HSPLcom/android/server/pm/CrossProfileIntentFilter;->getTargetUserId()I
 HSPLcom/android/server/pm/CrossProfileIntentFilter;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLcom/android/server/pm/CrossProfileIntentResolver;-><init>()V
+HSPLcom/android/server/pm/CrossProfileIntentResolver;->getIntentFilter(Lcom/android/server/pm/CrossProfileIntentFilter;)Landroid/content/IntentFilter;
+HSPLcom/android/server/pm/CrossProfileIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
 HSPLcom/android/server/pm/CrossProfileIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
 HSPLcom/android/server/pm/CrossProfileIntentResolver;->newArray(I)[Lcom/android/server/pm/CrossProfileIntentFilter;
+HSPLcom/android/server/pm/CrossProfileIntentResolver;->newArray(I)[Ljava/lang/Object;
 HSPLcom/android/server/pm/CrossProfileIntentResolver;->sortResults(Ljava/util/List;)V
 HSPLcom/android/server/pm/DataLoaderManagerService$DataLoaderManagerBinderService;-><init>(Lcom/android/server/pm/DataLoaderManagerService;)V
 HSPLcom/android/server/pm/DataLoaderManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/pm/DataLoaderManagerService;->onStart()V
 HPLcom/android/server/pm/DumpState;-><init>()V
+PLcom/android/server/pm/DumpState;->getSharedUser()Lcom/android/server/pm/SharedUserSetting;
 PLcom/android/server/pm/DumpState;->getTitlePrinted()Z
 HPLcom/android/server/pm/DumpState;->isDumping(I)Z
-PLcom/android/server/pm/DumpState;->isOptionEnabled(I)Z
+HPLcom/android/server/pm/DumpState;->isOptionEnabled(I)Z
 HPLcom/android/server/pm/DumpState;->onTitlePrinted()Z
+PLcom/android/server/pm/DumpState;->setOptionEnabled(I)V
+PLcom/android/server/pm/DumpState;->setSharedUser(Lcom/android/server/pm/SharedUserSetting;)V
 PLcom/android/server/pm/DumpState;->setTitlePrinted(Z)V
 PLcom/android/server/pm/DynamicCodeLoggingService$AuditWatchingThread;-><init>(Lcom/android/server/pm/DynamicCodeLoggingService;Landroid/app/job/JobParameters;)V
 HPLcom/android/server/pm/DynamicCodeLoggingService$AuditWatchingThread;->processAuditEvents()Z
@@ -24210,10 +26152,13 @@
 PLcom/android/server/pm/Installer;->snapshotAppData(Ljava/lang/String;III)J
 HSPLcom/android/server/pm/InstantAppRegistry$CookiePersistence;-><init>(Lcom/android/server/pm/InstantAppRegistry;Landroid/os/Looper;)V
 HSPLcom/android/server/pm/InstantAppRegistry$CookiePersistence;->cancelPendingPersistLPw(Landroid/content/pm/parsing/AndroidPackage;I)V
+PLcom/android/server/pm/InstantAppRegistry$CookiePersistence;->cancelPendingPersistLPw(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)V
 HSPLcom/android/server/pm/InstantAppRegistry$CookiePersistence;->removePendingPersistCookieLPr(Landroid/content/pm/parsing/AndroidPackage;I)Lcom/android/internal/os/SomeArgs;
+PLcom/android/server/pm/InstantAppRegistry$CookiePersistence;->removePendingPersistCookieLPr(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)Lcom/android/internal/os/SomeArgs;
 HSPLcom/android/server/pm/InstantAppRegistry;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/InstantAppRegistry;->addInstantAppLPw(II)V
-PLcom/android/server/pm/InstantAppRegistry;->createInstantAppInfoForPackage(Landroid/content/pm/parsing/AndroidPackage;IZ)Landroid/content/pm/InstantAppInfo;
+HPLcom/android/server/pm/InstantAppRegistry;->createInstantAppInfoForPackage(Landroid/content/pm/parsing/AndroidPackage;IZ)Landroid/content/pm/InstantAppInfo;
+PLcom/android/server/pm/InstantAppRegistry;->createInstantAppInfoForPackage(Lcom/android/server/pm/parsing/pkg/AndroidPackage;IZ)Landroid/content/pm/InstantAppInfo;
 HSPLcom/android/server/pm/InstantAppRegistry;->deleteDir(Ljava/io/File;)V
 PLcom/android/server/pm/InstantAppRegistry;->deleteInstantApplicationMetadataLPw(Ljava/lang/String;I)V
 HPLcom/android/server/pm/InstantAppRegistry;->getInstalledInstantApplicationsLPr(I)Ljava/util/List;
@@ -24229,13 +26174,16 @@
 PLcom/android/server/pm/InstantAppRegistry;->hasUninstalledInstantAppStateLPr(Ljava/lang/String;I)Z
 HPLcom/android/server/pm/InstantAppRegistry;->isInstantAccessGranted(III)Z
 HPLcom/android/server/pm/InstantAppRegistry;->onPackageInstalledLPw(Landroid/content/pm/parsing/AndroidPackage;[I)V
+HPLcom/android/server/pm/InstantAppRegistry;->onPackageInstalledLPw(Lcom/android/server/pm/parsing/pkg/AndroidPackage;[I)V
 HSPLcom/android/server/pm/InstantAppRegistry;->onPackageUninstalledLPw(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageSetting;[I)V
 PLcom/android/server/pm/InstantAppRegistry;->onPackageUninstalledLPw(Landroid/content/pm/parsing/AndroidPackage;[I)V
+PLcom/android/server/pm/InstantAppRegistry;->onPackageUninstalledLPw(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;[I)V
 PLcom/android/server/pm/InstantAppRegistry;->onUserRemovedLPw(I)V
 PLcom/android/server/pm/InstantAppRegistry;->parseMetadataFile(Ljava/io/File;)Lcom/android/server/pm/InstantAppRegistry$UninstalledInstantAppState;
 HPLcom/android/server/pm/InstantAppRegistry;->peekInstantCookieFile(Ljava/lang/String;I)Ljava/io/File;
 PLcom/android/server/pm/InstantAppRegistry;->peekOrParseUninstalledInstantAppInfo(Ljava/lang/String;I)Landroid/content/pm/InstantAppInfo;
 HPLcom/android/server/pm/InstantAppRegistry;->propagateInstantAppPermissionsIfNeeded(Landroid/content/pm/parsing/AndroidPackage;I)V
+PLcom/android/server/pm/InstantAppRegistry;->propagateInstantAppPermissionsIfNeeded(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)V
 PLcom/android/server/pm/InstantAppRegistry;->pruneInstalledInstantApps(JJ)Z
 PLcom/android/server/pm/InstantAppRegistry;->pruneInstantApps()V
 HPLcom/android/server/pm/InstantAppRegistry;->pruneInstantApps(JJJ)Z
@@ -24293,6 +26241,7 @@
 PLcom/android/server/pm/IntentFilterVerificationState;-><clinit>()V
 PLcom/android/server/pm/IntentFilterVerificationState;-><init>(IILjava/lang/String;)V
 HPLcom/android/server/pm/IntentFilterVerificationState;->addFilter(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)V
+PLcom/android/server/pm/IntentFilterVerificationState;->addFilter(Landroid/content/pm/parsing/component/ParsedIntentInfo;)V
 PLcom/android/server/pm/IntentFilterVerificationState;->getFilters()Ljava/util/ArrayList;
 HPLcom/android/server/pm/IntentFilterVerificationState;->getHostsString()Ljava/lang/String;
 PLcom/android/server/pm/IntentFilterVerificationState;->getPackageName()Ljava/lang/String;
@@ -24301,7 +26250,7 @@
 PLcom/android/server/pm/IntentFilterVerificationState;->isVerified()Z
 PLcom/android/server/pm/IntentFilterVerificationState;->setPendingState()V
 PLcom/android/server/pm/IntentFilterVerificationState;->setState(I)V
-PLcom/android/server/pm/IntentFilterVerificationState;->setVerifierResponse(II)Z
+HPLcom/android/server/pm/IntentFilterVerificationState;->setVerifierResponse(II)Z
 HSPLcom/android/server/pm/KeySetHandle;-><init>(J)V
 HSPLcom/android/server/pm/KeySetHandle;-><init>(JI)V
 HSPLcom/android/server/pm/KeySetHandle;->decrRefCountLPw()I
@@ -24321,9 +26270,12 @@
 HSPLcom/android/server/pm/KeySetManagerService;->addPublicKeyLPw(Ljava/security/PublicKey;)J
 HSPLcom/android/server/pm/KeySetManagerService;->addRefCountsFromSavedPackagesLPw(Landroid/util/ArrayMap;)V
 HSPLcom/android/server/pm/KeySetManagerService;->addScannedPackageLPw(Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/KeySetManagerService;->addScannedPackageLPw(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/KeySetManagerService;->addSigningKeySetToPackageLPw(Lcom/android/server/pm/PackageSetting;Landroid/util/ArraySet;)V
+HSPLcom/android/server/pm/KeySetManagerService;->addUpgradeKeySetsToPackageLPw(Lcom/android/server/pm/PackageSetting;Ljava/util/Set;)V
 HSPLcom/android/server/pm/KeySetManagerService;->assertScannedPackageValid(Landroid/content/pm/parsing/AndroidPackage;)V
-PLcom/android/server/pm/KeySetManagerService;->clearPackageKeySetDataLPw(Lcom/android/server/pm/PackageSetting;)V
+HSPLcom/android/server/pm/KeySetManagerService;->assertScannedPackageValid(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
+HSPLcom/android/server/pm/KeySetManagerService;->clearPackageKeySetDataLPw(Lcom/android/server/pm/PackageSetting;)V
 HSPLcom/android/server/pm/KeySetManagerService;->decrementKeySetLPw(J)V
 HSPLcom/android/server/pm/KeySetManagerService;->decrementPublicKeyLPw(J)V
 HPLcom/android/server/pm/KeySetManagerService;->dumpLPr(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/pm/DumpState;)V
@@ -24337,7 +26289,7 @@
 HSPLcom/android/server/pm/KeySetManagerService;->readKeySetsLPw(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/ArrayMap;)V
 HSPLcom/android/server/pm/KeySetManagerService;->readKeysLPw(Lorg/xmlpull/v1/XmlPullParser;)V
 HSPLcom/android/server/pm/KeySetManagerService;->readPublicKeyLPw(Lorg/xmlpull/v1/XmlPullParser;)V
-HPLcom/android/server/pm/KeySetManagerService;->removeAppKeySetDataLPw(Ljava/lang/String;)V
+HSPLcom/android/server/pm/KeySetManagerService;->removeAppKeySetDataLPw(Ljava/lang/String;)V
 HSPLcom/android/server/pm/KeySetManagerService;->shouldCheckUpgradeKeySetLocked(Lcom/android/server/pm/PackageSettingBase;I)Z
 HSPLcom/android/server/pm/KeySetManagerService;->writeKeySetManagerServiceLPr(Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLcom/android/server/pm/KeySetManagerService;->writeKeySetsLPr(Lorg/xmlpull/v1/XmlSerializer;)V
@@ -24349,12 +26301,16 @@
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onPackageAdded(Ljava/lang/String;I)V
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onPackageModified(Ljava/lang/String;)V
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onPackageRemoved(Ljava/lang/String;I)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onPackagesSuspended([Ljava/lang/String;)V
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onPackagesSuspended([Ljava/lang/String;)V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onPackagesUnsuspended([Ljava/lang/String;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onShortcutChanged(Ljava/lang/String;I)V
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onShortcutChanged(Ljava/lang/String;I)V
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onShortcutChangedInner(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageCallbackList;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageCallbackList;->onCallbackDied(Landroid/os/IInterface;Ljava/lang/Object;)V
+HSPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$ShortcutChangeHandler;-><init>(Landroid/os/UserManagerInternal;)V
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$ShortcutChangeHandler;->onShortcutEvent(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;Z)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$ShortcutChangeHandler;->onShortcutsAddedOrUpdated(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$ShortcutChangeHandler;->onShortcutsRemoved(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V
 HSPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;-><init>(Landroid/content/Context;)V
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->access$100(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageCallbackList;
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->access$200(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Landroid/os/UserHandle;Landroid/os/UserHandle;Ljava/lang/String;)Z
@@ -24363,7 +26319,7 @@
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->canAccessProfile(ILjava/lang/String;)Z
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->checkCallbackCount()V
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->ensureShortcutPermission(Ljava/lang/String;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getAllSessions(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getAllSessions(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getAppUsageLimit(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/LauncherApps$AppUsageLimit;
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getApplicationInfo(Ljava/lang/String;Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo;
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getCallingUserId()I
@@ -24371,7 +26327,7 @@
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getLauncherActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getPackageInstallerService()Lcom/android/server/pm/PackageInstallerService;
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcutConfigActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcuts(Ljava/lang/String;JLjava/lang/String;Ljava/util/List;Landroid/content/ComponentName;ILandroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcuts(Ljava/lang/String;JLjava/lang/String;Ljava/util/List;Ljava/util/List;Landroid/content/ComponentName;ILandroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->hasDefaultEnableLauncherActivity(Ljava/lang/String;)Z
@@ -24380,6 +26336,7 @@
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectBinderCallingUid()I
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectCallingUserId()I
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectClearCallingIdentity()J
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectHasInteractAcrossUsersFullPermission(II)Z
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectRestoreCallingIdentity(J)V
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isActivityEnabled(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Z
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->isEnabledProfileOf(Landroid/os/UserHandle;Landroid/os/UserHandle;Ljava/lang/String;)Z
@@ -24391,14 +26348,20 @@
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->queryActivitiesForUser(Ljava/lang/String;Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->registerPackageInstallerCallback(Ljava/lang/String;Landroid/content/pm/IPackageInstallerCallback;)V
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->requestsPermissions(Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->requestsPermissions(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->resolveActivity(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Landroid/content/pm/ActivityInfo;
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->shouldHideFromSuggestions(Ljava/lang/String;Landroid/os/UserHandle;)Z
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->shouldShowSyntheticActivity(Landroid/os/UserHandle;Landroid/content/pm/ApplicationInfo;)Z
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->showAppDetailsAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->showAppDetailsAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startSessionDetailsActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/pm/PackageInstaller$SessionInfo;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startSessionDetailsActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/PackageInstaller$SessionInfo;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startShortcut(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;Landroid/os/Bundle;I)Z
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startShortcut(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;Landroid/os/Bundle;I)Z
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startShortcutIntentsAsPublisher([Landroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;I)Z
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startShortcutIntentsAsPublisher([Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;I)Z
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startWatchingPackageBroadcasts()V
 PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->stopWatchingPackageBroadcasts()V
 HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->verifyCallingPackage(Ljava/lang/String;)V
@@ -24417,12 +26380,16 @@
 HSPLcom/android/server/pm/OtaDexoptService;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;)V
 PLcom/android/server/pm/OtaDexoptService;->cleanup()V
 HPLcom/android/server/pm/OtaDexoptService;->generatePackageDexopts(Landroid/content/pm/parsing/AndroidPackage;I)Ljava/util/List;
+HPLcom/android/server/pm/OtaDexoptService;->generatePackageDexopts(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)Ljava/util/List;
+HPLcom/android/server/pm/OtaDexoptService;->generatePackageDexopts(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;I)Ljava/util/List;
 HPLcom/android/server/pm/OtaDexoptService;->getAvailableSpace()J
 HPLcom/android/server/pm/OtaDexoptService;->getMainLowSpaceThreshold()J
 HPLcom/android/server/pm/OtaDexoptService;->getProgress()F
 PLcom/android/server/pm/OtaDexoptService;->inMegabytes(J)I
 HPLcom/android/server/pm/OtaDexoptService;->isDone()Z
 PLcom/android/server/pm/OtaDexoptService;->lambda$prepare$0(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)I
+PLcom/android/server/pm/OtaDexoptService;->lambda$prepare$0(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;)I
+PLcom/android/server/pm/OtaDexoptService;->lambda$prepare$0(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)I
 HSPLcom/android/server/pm/OtaDexoptService;->main(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/OtaDexoptService;
 HSPLcom/android/server/pm/OtaDexoptService;->moveAbArtifacts(Lcom/android/server/pm/Installer;)V
 HPLcom/android/server/pm/OtaDexoptService;->nextDexoptCommand()Ljava/lang/String;
@@ -24438,20 +26405,31 @@
 PLcom/android/server/pm/OtaDexoptShellCommand;->runOtaPrepare()I
 PLcom/android/server/pm/OtaDexoptShellCommand;->runOtaProgress()I
 HSPLcom/android/server/pm/PackageAbiHelper$Abis;-><init>(Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageAbiHelper$Abis;-><init>(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageAbiHelper$Abis;-><init>(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)V
 HSPLcom/android/server/pm/PackageAbiHelper$Abis;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageAbiHelper$Abis;->applyTo(Landroid/content/pm/parsing/ParsedPackage;)V
 HSPLcom/android/server/pm/PackageAbiHelper$Abis;->applyTo(Lcom/android/server/pm/PackageSetting;)V
+HSPLcom/android/server/pm/PackageAbiHelper$Abis;->applyTo(Lcom/android/server/pm/parsing/pkg/ParsedPackage;)V
 HSPLcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;-><init>(Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;->applyTo(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;->applyTo(Lcom/android/server/pm/parsing/pkg/ParsedPackage;)V
 HSPLcom/android/server/pm/PackageAbiHelperImpl;-><init>()V
 HSPLcom/android/server/pm/PackageAbiHelperImpl;->calculateBundledApkRoot(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageAbiHelperImpl;->deriveCodePathName(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageAbiHelperImpl;->derivePackageAbi(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Z)Landroid/util/Pair;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->derivePackageAbi(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;Z)Landroid/util/Pair;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->derivePackageAbi(Lcom/android/server/pm/parsing/pkg/AndroidPackage;ZLjava/lang/String;Z)Landroid/util/Pair;
 HSPLcom/android/server/pm/PackageAbiHelperImpl;->getAdjustedAbiForSharedUser(Ljava/util/Set;Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->getAdjustedAbiForSharedUser(Ljava/util/Set;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageAbiHelperImpl;->getBundledAppAbi(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/PackageAbiHelper$Abis;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->getBundledAppAbi(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/PackageAbiHelper$Abis;
 HSPLcom/android/server/pm/PackageAbiHelperImpl;->getBundledAppAbis(Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/server/pm/PackageAbiHelper$Abis;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->getBundledAppAbis(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Lcom/android/server/pm/PackageAbiHelper$Abis;
 HSPLcom/android/server/pm/PackageAbiHelperImpl;->getNativeLibraryPaths(Landroid/content/pm/parsing/AndroidPackage;Ljava/io/File;)Lcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;
 HSPLcom/android/server/pm/PackageAbiHelperImpl;->getNativeLibraryPaths(Lcom/android/server/pm/PackageAbiHelper$Abis;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->getNativeLibraryPaths(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/io/File;)Lcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->getNativeLibraryPaths(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/io/File;)Lcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;
 HSPLcom/android/server/pm/PackageAbiHelperImpl;->maybeThrowExceptionForMultiArchCopy(Ljava/lang/String;I)V
 PLcom/android/server/pm/PackageDexOptimizer$ForcedUpdatePackageDexOptimizer;-><init>(Lcom/android/server/pm/Installer;Ljava/lang/Object;Landroid/content/Context;Ljava/lang/String;)V
 PLcom/android/server/pm/PackageDexOptimizer$ForcedUpdatePackageDexOptimizer;-><init>(Lcom/android/server/pm/PackageDexOptimizer;)V
@@ -24463,23 +26441,39 @@
 HSPLcom/android/server/pm/PackageDexOptimizer;->adjustDexoptFlags(I)I
 HSPLcom/android/server/pm/PackageDexOptimizer;->adjustDexoptNeeded(I)I
 HSPLcom/android/server/pm/PackageDexOptimizer;->canOptimizePackage(Landroid/content/pm/parsing/AndroidPackage;)Z
+HPLcom/android/server/pm/PackageDexOptimizer;->canOptimizePackage(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageDexOptimizer;->dexOptPath(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;IILcom/android/server/pm/CompilerStats$PackageStats;ZLjava/lang/String;Ljava/lang/String;I)I
+HPLcom/android/server/pm/PackageDexOptimizer;->dexOptPath(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;IILcom/android/server/pm/CompilerStats$PackageStats;ZLjava/lang/String;Ljava/lang/String;I)I
+HPLcom/android/server/pm/PackageDexOptimizer;->dexOptPath(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;IILcom/android/server/pm/CompilerStats$PackageStats;ZLjava/lang/String;Ljava/lang/String;I)I
 HPLcom/android/server/pm/PackageDexOptimizer;->dexOptSecondaryDexPath(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
 HPLcom/android/server/pm/PackageDexOptimizer;->dexOptSecondaryDexPathLI(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
 HPLcom/android/server/pm/PackageDexOptimizer;->dumpDexoptState(Lcom/android/internal/util/IndentingPrintWriter;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)V
+HPLcom/android/server/pm/PackageDexOptimizer;->dumpDexoptState(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)V
+HPLcom/android/server/pm/PackageDexOptimizer;->dumpDexoptState(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)V
 HSPLcom/android/server/pm/PackageDexOptimizer;->getAugmentedReasonName(IZ)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(IILandroid/util/SparseArray;ZLjava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
 HPLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
 HSPLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(ZILandroid/util/SparseArray;ZLjava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
 HSPLcom/android/server/pm/PackageDexOptimizer;->getDexoptNeeded(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)I
 HSPLcom/android/server/pm/PackageDexOptimizer;->getOatDir(Ljava/io/File;)Ljava/io/File;
 HSPLcom/android/server/pm/PackageDexOptimizer;->getPackageOatDirIfSupported(Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
+HPLcom/android/server/pm/PackageDexOptimizer;->getPackageOatDirIfSupported(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/lang/String;
+HPLcom/android/server/pm/PackageDexOptimizer;->getPackageOatDirIfSupported(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)Ljava/lang/String;
 HPLcom/android/server/pm/PackageDexOptimizer;->getRealCompilerFilter(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Z)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageDexOptimizer;->getRealCompilerFilter(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Z)Ljava/lang/String;
+HPLcom/android/server/pm/PackageDexOptimizer;->getRealCompilerFilter(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;Z)Ljava/lang/String;
 HPLcom/android/server/pm/PackageDexOptimizer;->isAppImageEnabled()Z
 HPLcom/android/server/pm/PackageDexOptimizer;->isProfileUpdated(Landroid/content/pm/parsing/AndroidPackage;ILjava/lang/String;Ljava/lang/String;)Z
+HPLcom/android/server/pm/PackageDexOptimizer;->isProfileUpdated(Lcom/android/server/pm/parsing/pkg/AndroidPackage;ILjava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageDexOptimizer;->performDexOpt(Landroid/content/pm/parsing/AndroidPackage;[Ljava/lang/String;Lcom/android/server/pm/CompilerStats$PackageStats;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->performDexOpt(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;[Ljava/lang/String;Lcom/android/server/pm/CompilerStats$PackageStats;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->performDexOpt(Lcom/android/server/pm/parsing/pkg/AndroidPackage;[Ljava/lang/String;Lcom/android/server/pm/CompilerStats$PackageStats;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
 HSPLcom/android/server/pm/PackageDexOptimizer;->performDexOptLI(Landroid/content/pm/parsing/AndroidPackage;[Ljava/lang/String;Lcom/android/server/pm/CompilerStats$PackageStats;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->performDexOptLI(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;[Ljava/lang/String;Lcom/android/server/pm/CompilerStats$PackageStats;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->performDexOptLI(Lcom/android/server/pm/parsing/pkg/AndroidPackage;[Ljava/lang/String;Lcom/android/server/pm/CompilerStats$PackageStats;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
 HSPLcom/android/server/pm/PackageDexOptimizer;->printDexoptFlags(I)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageDexOptimizer;->releaseWakeLockLI(J)V
 HSPLcom/android/server/pm/PackageDexOptimizer;->systemReady()V
@@ -24497,7 +26491,7 @@
 HPLcom/android/server/pm/PackageInstallerService$Callbacks;->notifySessionActiveChanged(IIZ)V
 HPLcom/android/server/pm/PackageInstallerService$Callbacks;->notifySessionBadgingChanged(II)V
 PLcom/android/server/pm/PackageInstallerService$Callbacks;->notifySessionCreated(II)V
-PLcom/android/server/pm/PackageInstallerService$Callbacks;->notifySessionFinished(IIZ)V
+HPLcom/android/server/pm/PackageInstallerService$Callbacks;->notifySessionFinished(IIZ)V
 HPLcom/android/server/pm/PackageInstallerService$Callbacks;->notifySessionProgressChanged(IIF)V
 HSPLcom/android/server/pm/PackageInstallerService$Callbacks;->register(Landroid/content/pm/IPackageInstallerCallback;Ljava/util/function/IntPredicate;)V
 PLcom/android/server/pm/PackageInstallerService$Callbacks;->unregister(Landroid/content/pm/IPackageInstallerCallback;)V
@@ -24528,7 +26522,7 @@
 PLcom/android/server/pm/PackageInstallerService;->access$600(Lcom/android/server/pm/PackageInstallerService;)V
 PLcom/android/server/pm/PackageInstallerService;->access$900(Lcom/android/server/pm/PackageInstallerService;)Z
 HPLcom/android/server/pm/PackageInstallerService;->addHistoricalSessionLocked(Lcom/android/server/pm/PackageInstallerSession;)V
-PLcom/android/server/pm/PackageInstallerService;->allocateSessionIdLocked()I
+HPLcom/android/server/pm/PackageInstallerService;->allocateSessionIdLocked()I
 HSPLcom/android/server/pm/PackageInstallerService;->buildAppIconFile(I)Ljava/io/File;
 PLcom/android/server/pm/PackageInstallerService;->buildSessionDir(ILandroid/content/pm/PackageInstaller$SessionParams;)Ljava/io/File;
 HPLcom/android/server/pm/PackageInstallerService;->buildTmpSessionDir(ILjava/lang/String;)Ljava/io/File;
@@ -24608,14 +26602,14 @@
 PLcom/android/server/pm/PackageInstallerSession;->addChildSessionId(I)V
 PLcom/android/server/pm/PackageInstallerSession;->addChildSessionIdInternal(I)V
 PLcom/android/server/pm/PackageInstallerSession;->addClientProgress(F)V
-PLcom/android/server/pm/PackageInstallerSession;->assertApkConsistentLocked(Ljava/lang/String;Landroid/content/pm/PackageParser$ApkLite;)V
+HPLcom/android/server/pm/PackageInstallerSession;->assertApkConsistentLocked(Ljava/lang/String;Landroid/content/pm/PackageParser$ApkLite;)V
 HPLcom/android/server/pm/PackageInstallerSession;->assertCallerIsOwnerOrRootLocked()V
 HPLcom/android/server/pm/PackageInstallerSession;->assertCanBeCommitted(Z)V
-PLcom/android/server/pm/PackageInstallerSession;->assertCanWrite(Z)V
+HPLcom/android/server/pm/PackageInstallerSession;->assertCanWrite(Z)V
 HSPLcom/android/server/pm/PackageInstallerSession;->assertConsistencyWithLocked(Lcom/android/server/pm/PackageInstallerSession;)V
 HSPLcom/android/server/pm/PackageInstallerSession;->assertMultiPackageConsistencyLocked(Ljava/util/List;)V
 HSPLcom/android/server/pm/PackageInstallerSession;->assertNoWriteFileTransfersOpenLocked()V
-PLcom/android/server/pm/PackageInstallerSession;->assertPreparedAndNotCommittedOrDestroyedLocked(Ljava/lang/String;)V
+HPLcom/android/server/pm/PackageInstallerSession;->assertPreparedAndNotCommittedOrDestroyedLocked(Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageInstallerSession;->assertPreparedAndNotDestroyedLocked(Ljava/lang/String;)V
 PLcom/android/server/pm/PackageInstallerSession;->assertPreparedAndNotSealedLocked(Ljava/lang/String;)V
 PLcom/android/server/pm/PackageInstallerSession;->assertShellOrSystemCalling(Ljava/lang/String;)V
@@ -24634,7 +26628,7 @@
 HPLcom/android/server/pm/PackageInstallerSession;->doWriteInternal(Ljava/lang/String;JJLandroid/os/ParcelFileDescriptor;)Landroid/os/ParcelFileDescriptor;
 PLcom/android/server/pm/PackageInstallerSession;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 HPLcom/android/server/pm/PackageInstallerSession;->dumpLocked(Lcom/android/internal/util/IndentingPrintWriter;)V
-PLcom/android/server/pm/PackageInstallerSession;->extractNativeLibraries(Ljava/io/File;Ljava/lang/String;Z)V
+HPLcom/android/server/pm/PackageInstallerSession;->extractNativeLibraries(Ljava/io/File;Ljava/lang/String;Z)V
 HPLcom/android/server/pm/PackageInstallerSession;->filterFiles(Ljava/io/File;[Ljava/lang/String;Ljava/io/FileFilter;)Ljava/util/ArrayList;
 HSPLcom/android/server/pm/PackageInstallerSession;->filterFiles(Ljava/io/File;[Ljava/lang/String;Ljava/io/FileFilter;)[Ljava/io/File;
 HPLcom/android/server/pm/PackageInstallerSession;->generateInfo()Landroid/content/pm/PackageInstaller$SessionInfo;
@@ -24644,6 +26638,7 @@
 PLcom/android/server/pm/PackageInstallerSession;->getAddedFilesLocked()[Ljava/io/File;
 HSPLcom/android/server/pm/PackageInstallerSession;->getChildSessionIds()[I
 HSPLcom/android/server/pm/PackageInstallerSession;->getChildSessions()Ljava/util/List;
+PLcom/android/server/pm/PackageInstallerSession;->getDataLoaderParams()Landroid/content/pm/DataLoaderParamsParcel;
 PLcom/android/server/pm/PackageInstallerSession;->getInstallSource()Lcom/android/server/pm/InstallSource;
 PLcom/android/server/pm/PackageInstallerSession;->getInstallerPackageName()Ljava/lang/String;
 HPLcom/android/server/pm/PackageInstallerSession;->getInstallerUid()I
@@ -24678,7 +26673,7 @@
 PLcom/android/server/pm/PackageInstallerSession;->isStagedSessionReady()Z
 HSPLcom/android/server/pm/PackageInstallerSession;->isStagedSessionStateValid(ZZZ)Z
 HSPLcom/android/server/pm/PackageInstallerSession;->isStreamingInstallation()Z
-PLcom/android/server/pm/PackageInstallerSession;->lambda$doWriteInternal$0$PackageInstallerSession(Landroid/system/Int64Ref;J)V
+HPLcom/android/server/pm/PackageInstallerSession;->lambda$doWriteInternal$0$PackageInstallerSession(Landroid/system/Int64Ref;J)V
 HPLcom/android/server/pm/PackageInstallerSession;->lambda$doWriteInternal$5$PackageInstallerSession(Landroid/system/Int64Ref;J)V
 PLcom/android/server/pm/PackageInstallerSession;->lambda$filterFiles$0(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
 PLcom/android/server/pm/PackageInstallerSession;->lambda$filterFiles$1(Ljava/io/FileFilter;Ljava/io/File;)Z
@@ -24693,14 +26688,15 @@
 PLcom/android/server/pm/PackageInstallerSession;->markAsCommitted()Z
 PLcom/android/server/pm/PackageInstallerSession;->markAsCommitted(Landroid/content/IntentSender;)Z
 PLcom/android/server/pm/PackageInstallerSession;->markAsSealed(Landroid/content/IntentSender;)Z
-PLcom/android/server/pm/PackageInstallerSession;->markAsSealed(Landroid/content/IntentSender;Z)Z
+HPLcom/android/server/pm/PackageInstallerSession;->markAsSealed(Landroid/content/IntentSender;Z)Z
 PLcom/android/server/pm/PackageInstallerSession;->markUpdated()V
 PLcom/android/server/pm/PackageInstallerSession;->mayInheritNativeLibs()Z
 HSPLcom/android/server/pm/PackageInstallerSession;->maybeRenameFile(Ljava/io/File;Ljava/io/File;)V
 HPLcom/android/server/pm/PackageInstallerSession;->needToAskForPermissionsLocked()Z
 HSPLcom/android/server/pm/PackageInstallerSession;->onAfterSessionRead()V
+PLcom/android/server/pm/PackageInstallerSession;->onSessionVerificationFailure(Lcom/android/server/pm/PackageManagerException;)Lcom/android/server/pm/PackageManagerException;
 PLcom/android/server/pm/PackageInstallerSession;->open()V
-PLcom/android/server/pm/PackageInstallerSession;->openWrite(Ljava/lang/String;JJ)Landroid/os/ParcelFileDescriptor;
+HPLcom/android/server/pm/PackageInstallerSession;->openWrite(Ljava/lang/String;JJ)Landroid/os/ParcelFileDescriptor;
 PLcom/android/server/pm/PackageInstallerSession;->prepareDataLoader()V
 PLcom/android/server/pm/PackageInstallerSession;->prepareDataLoaderLocked()Z
 HSPLcom/android/server/pm/PackageInstallerSession;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/pm/PackageInstallerService$InternalCallback;Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Landroid/os/Looper;Lcom/android/server/pm/StagingManager;Ljava/io/File;Lcom/android/server/pm/PackageSessionProvider;)Lcom/android/server/pm/PackageInstallerSession;
@@ -24710,7 +26706,7 @@
 HSPLcom/android/server/pm/PackageInstallerSession;->sealAndValidateLocked(Ljava/util/List;)V
 PLcom/android/server/pm/PackageInstallerSession;->sealIfNecessary()V
 HSPLcom/android/server/pm/PackageInstallerSession;->sealLocked(Ljava/util/List;)V
-PLcom/android/server/pm/PackageInstallerSession;->setClientProgress(F)V
+HPLcom/android/server/pm/PackageInstallerSession;->setClientProgress(F)V
 HPLcom/android/server/pm/PackageInstallerSession;->setClientProgressLocked(F)V
 PLcom/android/server/pm/PackageInstallerSession;->setParentSessionId(I)V
 PLcom/android/server/pm/PackageInstallerSession;->setPermissionsResult(Z)V
@@ -24737,7 +26733,7 @@
 HSPLcom/android/server/pm/PackageKeySetData;->setAliases(Ljava/util/Map;)V
 HSPLcom/android/server/pm/PackageKeySetData;->setProperSigningKeySet(J)V
 HSPLcom/android/server/pm/PackageList;-><init>(Ljava/util/List;Landroid/content/pm/PackageManagerInternal$PackageListObserver;)V
-PLcom/android/server/pm/PackageList;->getPackageNames()Ljava/util/List;
+HSPLcom/android/server/pm/PackageList;->getPackageNames()Ljava/util/List;
 PLcom/android/server/pm/PackageList;->onPackageAdded(Ljava/lang/String;I)V
 PLcom/android/server/pm/PackageList;->onPackageChanged(Ljava/lang/String;I)V
 PLcom/android/server/pm/PackageList;->onPackageRemoved(Ljava/lang/String;I)V
@@ -24759,10 +26755,12 @@
 PLcom/android/server/pm/PackageManagerService$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/pm/PackageManagerService$7;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 HPLcom/android/server/pm/PackageManagerService$7;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;-><init>(Ljava/lang/String;Ljava/io/File;Landroid/content/pm/IPackageInstallObserver2;ILandroid/content/pm/PackageInstaller$SessionParams;ILcom/android/server/pm/InstallSource;Landroid/os/UserHandle;Landroid/content/pm/PackageParser$SigningDetails;)V
 PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;-><init>(Ljava/lang/String;Ljava/io/File;Landroid/content/pm/IPackageInstallObserver2;Landroid/content/pm/PackageInstaller$SessionParams;ILcom/android/server/pm/InstallSource;Landroid/os/UserHandle;Landroid/content/pm/PackageParser$SigningDetails;)V
 PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;->getInstallSource()Lcom/android/server/pm/InstallSource;
 PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;->getInstallerUid()I
 PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;->getObserver()Landroid/content/pm/IPackageInstallObserver2;
+PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;->getSessionId()I
 PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;->getSessionParams()Landroid/content/pm/PackageInstaller$SessionParams;
 PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;->getSigningDetails()Landroid/content/pm/PackageParser$SigningDetails;
 PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;->getStagedDir()Ljava/io/File;
@@ -24783,6 +26781,7 @@
 PLcom/android/server/pm/PackageManagerService$FileInstallArgs;->doPostInstall(II)I
 PLcom/android/server/pm/PackageManagerService$FileInstallArgs;->doPreInstall(I)I
 HPLcom/android/server/pm/PackageManagerService$FileInstallArgs;->doRename(ILandroid/content/pm/parsing/ParsedPackage;)Z
+PLcom/android/server/pm/PackageManagerService$FileInstallArgs;->doRename(ILcom/android/server/pm/parsing/pkg/ParsedPackage;)Z
 PLcom/android/server/pm/PackageManagerService$FileInstallArgs;->getCodePath()Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerService$HandlerParams;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/os/UserHandle;)V
 PLcom/android/server/pm/PackageManagerService$HandlerParams;->getRollbackUser()Landroid/os/UserHandle;
@@ -24831,14 +26830,15 @@
 PLcom/android/server/pm/PackageManagerService$InstallParams$3;-><init>(Lcom/android/server/pm/PackageManagerService$InstallParams;I)V
 HPLcom/android/server/pm/PackageManagerService$InstallParams$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/pm/PackageManagerService$InstallParams;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$ActiveInstallSession;)V
+PLcom/android/server/pm/PackageManagerService$InstallParams;->access$700(Lcom/android/server/pm/PackageManagerService$InstallParams;)Lcom/android/server/pm/PackageManagerService$InstallArgs;
 PLcom/android/server/pm/PackageManagerService$InstallParams;->access$800(Lcom/android/server/pm/PackageManagerService$InstallParams;)Lcom/android/server/pm/PackageManagerService$InstallArgs;
 PLcom/android/server/pm/PackageManagerService$InstallParams;->handleIntegrityVerificationFinished()V
 PLcom/android/server/pm/PackageManagerService$InstallParams;->handleReturnCode()V
 PLcom/android/server/pm/PackageManagerService$InstallParams;->handleRollbackEnabled()V
 PLcom/android/server/pm/PackageManagerService$InstallParams;->handleStartCopy()V
 PLcom/android/server/pm/PackageManagerService$InstallParams;->handleVerificationFinished()V
-PLcom/android/server/pm/PackageManagerService$InstallParams;->installLocationPolicy(Landroid/content/pm/PackageInfoLite;)I
-PLcom/android/server/pm/PackageManagerService$InstallParams;->populateInstallerExtras(Landroid/content/Intent;)V
+HPLcom/android/server/pm/PackageManagerService$InstallParams;->installLocationPolicy(Landroid/content/pm/PackageInfoLite;)I
+HPLcom/android/server/pm/PackageManagerService$InstallParams;->populateInstallerExtras(Landroid/content/Intent;)V
 HPLcom/android/server/pm/PackageManagerService$InstallParams;->sendIntegrityVerificationRequest(ILandroid/content/pm/PackageInfoLite;Lcom/android/server/pm/PackageVerificationState;)V
 HPLcom/android/server/pm/PackageManagerService$InstallParams;->sendPackageVerificationRequest(ILandroid/content/pm/PackageInfoLite;Lcom/android/server/pm/PackageVerificationState;)I
 PLcom/android/server/pm/PackageManagerService$InstallParams;->setReturnCode(I)V
@@ -24847,10 +26847,11 @@
 HSPLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/content/Context;Landroid/content/ComponentName;)V
 PLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->addOneIntentFilterVerification(IIILandroid/content/IntentFilter;Ljava/lang/String;)Z
 HPLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->addOneIntentFilterVerification(IIILandroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;Ljava/lang/String;)Z
+PLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->addOneIntentFilterVerification(IIILandroid/content/pm/parsing/component/ParsedIntentInfo;Ljava/lang/String;)Z
 PLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->createDomainVerificationState(IIILjava/lang/String;)Lcom/android/server/pm/IntentFilterVerificationState;
 PLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->getDefaultScheme()Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->receiveVerificationResponse(I)V
-PLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->sendVerificationRequest(ILcom/android/server/pm/IntentFilterVerificationState;)V
+HPLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->receiveVerificationResponse(I)V
+HPLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->sendVerificationRequest(ILcom/android/server/pm/IntentFilterVerificationState;)V
 HPLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->startVerifications(I)V
 HSPLcom/android/server/pm/PackageManagerService$MoveCallbacks;-><init>(Landroid/os/Looper;)V
 PLcom/android/server/pm/PackageManagerService$MoveCallbacks;->register(Landroid/content/pm/IPackageMoveObserver;)V
@@ -24864,7 +26865,7 @@
 PLcom/android/server/pm/PackageManagerService$PackageFreezer;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/PackageManagerService$PackageFreezer;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;ILjava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService$PackageFreezer;->close()V
-HPLcom/android/server/pm/PackageManagerService$PackageFreezer;->finalize()V
+HSPLcom/android/server/pm/PackageManagerService$PackageFreezer;->finalize()V
 HSPLcom/android/server/pm/PackageManagerService$PackageHandler;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/os/Looper;)V
 HPLcom/android/server/pm/PackageManagerService$PackageHandler;->doHandleMessage(Landroid/os/Message;)V
 HPLcom/android/server/pm/PackageManagerService$PackageHandler;->handleMessage(Landroid/os/Message;)V
@@ -24880,9 +26881,11 @@
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->canAccessComponent(ILandroid/content/ComponentName;I)Z
 HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->canAccessInstantApps(II)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->filterAppAccess(Landroid/content/pm/parsing/AndroidPackage;II)Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->filterAppAccess(Lcom/android/server/pm/parsing/pkg/AndroidPackage;II)Z
 HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->filterAppAccess(Ljava/lang/String;II)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->filterOnlySystemPackages([Ljava/lang/String;)[Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->finishPackageInstall(IZ)V
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->flushPackageRestrictions(I)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->forEachInstalledPackage(Ljava/util/function/Consumer;I)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->forEachPackage(Ljava/util/function/Consumer;)V
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->freeStorage(Ljava/lang/String;JI)V
@@ -24893,6 +26896,7 @@
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getCeDataInode(Ljava/lang/String;I)J
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDefaultHomeActivity(I)Landroid/content/ComponentName;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDisabledComponents(Ljava/lang/String;I)Landroid/util/ArraySet;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDisabledSystemPackage(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDisabledSystemPackage(Ljava/lang/String;)Ljava/lang/Object;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDisabledSystemPackageName(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDistractingPackageRestrictions(Ljava/lang/String;I)I
@@ -24905,7 +26909,9 @@
 HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getNameForUid(I)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getOverlayPackages(I)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackage(I)Landroid/content/pm/parsing/AndroidPackage;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackage(I)Lcom/android/server/pm/parsing/pkg/AndroidPackage;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackage(Ljava/lang/String;)Landroid/content/pm/parsing/AndroidPackage;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackage(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/AndroidPackage;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageInfo(Ljava/lang/String;III)Landroid/content/pm/PackageInfo;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageList(Landroid/content/pm/PackageManagerInternal$PackageListObserver;)Lcom/android/server/pm/PackageList;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageSetting(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
@@ -24926,13 +26932,17 @@
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getTargetPackageNames(I)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getUidTargetSdkVersion(I)I
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->grantImplicitAccess(ILandroid/content/Intent;II)V
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->grantImplicitAccess(ILandroid/content/Intent;IIZ)V
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->hasInstantApplicationMetadata(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->hasSignatureCapability(III)Z
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isApexPackage(Ljava/lang/String;)Z
 HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isCallerInstallerOfRecord(Landroid/content/pm/parsing/AndroidPackage;I)Z
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isCallerInstallerOfRecord(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)Z
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isDataRestoreSafe(Landroid/content/pm/Signature;Ljava/lang/String;)Z
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isDataRestoreSafe([BLjava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isEnabledAndMatches(Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;II)Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isEnabledAndMatches(Landroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;II)Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isEnabledAndMatches(Landroid/content/pm/parsing/component/ParsedMainComponent;II)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isInstantApp(Ljava/lang/String;I)Z
 HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isInstantAppInstallerComponent(Landroid/content/ComponentName;)Z
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isOnlyCoreApps()Z
@@ -24941,6 +26951,7 @@
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackagePersistent(Ljava/lang/String;)Z
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackageStateProtected(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackageSuspended(Ljava/lang/String;I)Z
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPermissionUpgradeNeeded(I)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPermissionsReviewRequired(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPlatformSigned(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isResolveActivityComponent(Landroid/content/pm/ComponentInfo;)Z
@@ -24951,6 +26962,7 @@
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->removeIsolatedUid(I)V
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->removeLegacyDefaultBrowserPackageName(I)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->resolveContentProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;IIIZI)Landroid/content/pm/ResolveInfo;
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;IIZI)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->resolveService(Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setDeviceAndProfileOwnerPackages(ILjava/lang/String;Landroid/util/SparseArray;)V
@@ -24962,18 +26974,20 @@
 HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setIntegrityVerificationResult(II)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setKeepUninstalledPackages(Ljava/util/List;)V
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setRuntimePermissionsFingerPrint(Ljava/lang/String;I)V
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->updateRuntimePermissionsFingerprint(I)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->userNeedsBadging(I)Z
 PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->wasPackageEverLaunched(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->writePermissionSettings([IZ)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->writeSettings(Z)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerNative;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerNative;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$1;)V
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getAllPackages()[Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getInstallerForPackage(Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getLocationFlags(Ljava/lang/String;)I
 PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getModuleMetadataPackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getNamesForUids([I)[Ljava/lang/String;
 HPLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getTargetSdkVersionForPackage(Ljava/lang/String;)I
-PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getVersionCodeForPackage(Ljava/lang/String;)J
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getVersionCodeForPackage(Ljava/lang/String;)J
 HPLcom/android/server/pm/PackageManagerService$PackageManagerNative;->isAudioPlaybackCaptureAllowed([Ljava/lang/String;)[Z
 HSPLcom/android/server/pm/PackageManagerService$PackageParserCallback;-><init>(Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/PackageManagerService$PackageParserCallback;->hasFeature(Ljava/lang/String;)Z
@@ -25000,6 +27014,8 @@
 PLcom/android/server/pm/PackageManagerService$PrepareFailure;->conflictsWithExistingPermission(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/PackageManagerService$PrepareFailure;
 PLcom/android/server/pm/PackageManagerService$PrepareResult;-><init>(ZIILandroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ParsedPackage;ZZLcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;)V
 PLcom/android/server/pm/PackageManagerService$PrepareResult;-><init>(ZIILandroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ParsedPackage;ZZLcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$1;)V
+PLcom/android/server/pm/PackageManagerService$PrepareResult;-><init>(ZIILcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/ParsedPackage;ZZLcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;)V
+PLcom/android/server/pm/PackageManagerService$PrepareResult;-><init>(ZIILcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/ParsedPackage;ZZLcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$1;)V
 PLcom/android/server/pm/PackageManagerService$ReconcileFailure;-><init>(ILjava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService$ReconcileRequest;-><init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
 HSPLcom/android/server/pm/PackageManagerService$ReconcileRequest;-><init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/pm/PackageManagerService$1;)V
@@ -25010,7 +27026,12 @@
 HSPLcom/android/server/pm/PackageManagerService$ReconciledPackage;->access$2000(Lcom/android/server/pm/PackageManagerService$ReconciledPackage;)Ljava/util/Map;
 HSPLcom/android/server/pm/PackageManagerService$ReconciledPackage;->access$2100(Lcom/android/server/pm/PackageManagerService$ReconciledPackage;)Ljava/util/Map;
 HSPLcom/android/server/pm/PackageManagerService$ReconciledPackage;->getCombinedAvailablePackages()Ljava/util/Map;
+HSPLcom/android/server/pm/PackageManagerService$ScanPartition;-><init>(Landroid/content/pm/PackagePartitions$SystemPartition;)V
+HSPLcom/android/server/pm/PackageManagerService$ScanPartition;-><init>(Ljava/io/File;Lcom/android/server/pm/PackageManagerService$ScanPartition;I)V
+HSPLcom/android/server/pm/PackageManagerService$ScanPartition;->scanFlagForPartition(Landroid/content/pm/PackagePartitions$SystemPartition;)I
 HSPLcom/android/server/pm/PackageManagerService$ScanRequest;-><init>(Landroid/content/pm/parsing/ParsedPackage;Lcom/android/server/pm/SharedUserSetting;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;IIZLandroid/os/UserHandle;)V
+HSPLcom/android/server/pm/PackageManagerService$ScanRequest;-><init>(Lcom/android/server/pm/parsing/pkg/ParsedPackage;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;IIZLandroid/os/UserHandle;)V
+HSPLcom/android/server/pm/PackageManagerService$ScanRequest;-><init>(Lcom/android/server/pm/parsing/pkg/ParsedPackage;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;IIZLandroid/os/UserHandle;Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService$ScanResult;-><init>(Lcom/android/server/pm/PackageManagerService$ScanRequest;ZLcom/android/server/pm/PackageSetting;Ljava/util/List;ZLandroid/content/pm/SharedLibraryInfo;Ljava/util/List;)V
 HSPLcom/android/server/pm/PackageManagerService$SystemPartition;-><init>(Ljava/io/File;IZ)V
 HSPLcom/android/server/pm/PackageManagerService$SystemPartition;-><init>(Ljava/io/File;IZLcom/android/server/pm/PackageManagerService$1;)V
@@ -25029,6 +27050,7 @@
 PLcom/android/server/pm/PackageManagerService;->access$1200(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageManagerService$IntentFilterVerifier;
 PLcom/android/server/pm/PackageManagerService;->access$1200(Lcom/android/server/pm/PackageManagerService;IIZLjava/lang/String;ZLjava/util/List;)V
 PLcom/android/server/pm/PackageManagerService;->access$1300(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageManagerService$IntentFilterVerifier;
+PLcom/android/server/pm/PackageManagerService;->access$200(Landroid/content/pm/parsing/component/ParsedIntentInfo;)Z
 PLcom/android/server/pm/PackageManagerService;->access$200(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageManagerService$Injector;
 PLcom/android/server/pm/PackageManagerService;->access$2300(Lcom/android/server/pm/PackageManagerService;I)Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;
 PLcom/android/server/pm/PackageManagerService;->access$2400(Lcom/android/server/pm/PackageManagerService;ZLjava/util/List;)V
@@ -25040,6 +27062,7 @@
 PLcom/android/server/pm/PackageManagerService;->access$2900(Lcom/android/server/pm/PackageManagerService;III)Z
 PLcom/android/server/pm/PackageManagerService;->access$2900(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$InstallParams;)Lcom/android/server/pm/PackageManagerService$InstallArgs;
 PLcom/android/server/pm/PackageManagerService;->access$300(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)Z
+PLcom/android/server/pm/PackageManagerService;->access$300(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;ZLjava/util/ArrayList;ILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->access$3000(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIZ)Ljava/util/List;
 PLcom/android/server/pm/PackageManagerService;->access$3008(Lcom/android/server/pm/PackageManagerService;)I
 PLcom/android/server/pm/PackageManagerService;->access$3108(Lcom/android/server/pm/PackageManagerService;)I
@@ -25054,39 +27077,60 @@
 PLcom/android/server/pm/PackageManagerService;->access$3600(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;Ljava/util/List;)Landroid/content/ComponentName;
 PLcom/android/server/pm/PackageManagerService;->access$3700(Lcom/android/server/pm/PackageManagerService;)Landroid/os/incremental/IncrementalManager;
 PLcom/android/server/pm/PackageManagerService;->access$3700(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$InstallArgs;I)V
+PLcom/android/server/pm/PackageManagerService;->access$3700(Lcom/android/server/pm/PackageManagerService;Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
+HSPLcom/android/server/pm/PackageManagerService;->access$3800(Lcom/android/server/pm/PackageManagerService;)Landroid/os/incremental/IncrementalManager;
 PLcom/android/server/pm/PackageManagerService;->access$3800(Lcom/android/server/pm/PackageManagerService;Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
 HSPLcom/android/server/pm/PackageManagerService;->access$3900(Lcom/android/server/pm/PackageManagerService;)Landroid/os/incremental/IncrementalManager;
+PLcom/android/server/pm/PackageManagerService;->access$400(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;ZZZ[Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;Landroid/content/pm/IPackageInstallObserver2;I)V
 HPLcom/android/server/pm/PackageManagerService;->access$400(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;ZLjava/util/ArrayList;ILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->access$4400()[I
+HPLcom/android/server/pm/PackageManagerService;->access$4700(Lcom/android/server/pm/PackageManagerService;I)V
 PLcom/android/server/pm/PackageManagerService;->access$4700(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/PackageManagerService;->access$4800(Lcom/android/server/pm/PackageManagerService;)Landroid/util/SparseBooleanArray;
 PLcom/android/server/pm/PackageManagerService;->access$4800(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/InstantAppRegistry;
+HSPLcom/android/server/pm/PackageManagerService;->access$4900(Lcom/android/server/pm/PackageManagerService;)Landroid/util/SparseBooleanArray;
+PLcom/android/server/pm/PackageManagerService;->access$4900(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;IILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->access$500(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;ZZZ[Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;Landroid/content/pm/IPackageInstallObserver2;)V
 PLcom/android/server/pm/PackageManagerService;->access$500(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;ZZZ[Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;Landroid/content/pm/IPackageInstallObserver2;I)V
+PLcom/android/server/pm/PackageManagerService;->access$500(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService;->access$5000(Lcom/android/server/pm/PackageManagerService;)Landroid/util/SparseBooleanArray;
 HSPLcom/android/server/pm/PackageManagerService;->access$5100(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;IILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->access$5600(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ModuleInfoProvider;
 PLcom/android/server/pm/PackageManagerService;->access$5700(Lcom/android/server/pm/PackageManagerService;III)Ljava/util/List;
 PLcom/android/server/pm/PackageManagerService;->access$5800(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ModuleInfoProvider;
 HSPLcom/android/server/pm/PackageManagerService;->access$5800(Lcom/android/server/pm/PackageManagerService;I)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->access$5800(Lcom/android/server/pm/PackageManagerService;III)Ljava/util/List;
+HSPLcom/android/server/pm/PackageManagerService;->access$5900(Lcom/android/server/pm/PackageManagerService;I)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->access$5900(Lcom/android/server/pm/PackageManagerService;III)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->access$5900(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;II)Z
+HPLcom/android/server/pm/PackageManagerService;->access$600(Lcom/android/server/pm/PackageManagerService;)Landroid/util/ArraySet;
 PLcom/android/server/pm/PackageManagerService;->access$600(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService;->access$6000(Lcom/android/server/pm/PackageManagerService;I)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->access$6000(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;II)Z
 HSPLcom/android/server/pm/PackageManagerService;->access$6000(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;J)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->access$6100(Lcom/android/server/pm/PackageManagerService;)Landroid/util/ArraySet;
+HSPLcom/android/server/pm/PackageManagerService;->access$6100(Lcom/android/server/pm/PackageManagerService;II)[Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->access$6100(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;II)Z
+HSPLcom/android/server/pm/PackageManagerService;->access$6100(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;J)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->access$6200(Lcom/android/server/pm/PackageManagerService;)Landroid/util/ArraySet;
 HSPLcom/android/server/pm/PackageManagerService;->access$6200(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
+HSPLcom/android/server/pm/PackageManagerService;->access$6200(Lcom/android/server/pm/PackageManagerService;II)[Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->access$6200(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;J)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->access$6300(Lcom/android/server/pm/PackageManagerService;)Landroid/util/ArraySet;
+HSPLcom/android/server/pm/PackageManagerService;->access$6300(Lcom/android/server/pm/PackageManagerService;[Ljava/lang/String;)[Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->access$6400(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
 HSPLcom/android/server/pm/PackageManagerService;->access$6400(Lcom/android/server/pm/PackageManagerService;[Ljava/lang/String;)[Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->access$6500(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
+PLcom/android/server/pm/PackageManagerService;->access$6500(Lcom/android/server/pm/PackageManagerService;)Ljava/util/List;
 PLcom/android/server/pm/PackageManagerService;->access$6500(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;JIII)Landroid/content/pm/PackageInfo;
+PLcom/android/server/pm/PackageManagerService;->access$6502(Lcom/android/server/pm/PackageManagerService;Ljava/util/List;)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->access$6600(Lcom/android/server/pm/PackageManagerService;)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->access$6600(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
 HSPLcom/android/server/pm/PackageManagerService;->access$6602(Lcom/android/server/pm/PackageManagerService;Ljava/util/List;)Ljava/util/List;
 PLcom/android/server/pm/PackageManagerService;->access$6700(Lcom/android/server/pm/PackageManagerService;Landroid/content/ComponentName;III)Landroid/content/pm/ActivityInfo;
+HPLcom/android/server/pm/PackageManagerService;->access$6700(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;JIII)Landroid/content/pm/PackageInfo;
 PLcom/android/server/pm/PackageManagerService;->access$6800(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIIZZ)Ljava/util/List;
+PLcom/android/server/pm/PackageManagerService;->access$6800(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;III)I
 HSPLcom/android/server/pm/PackageManagerService;->access$6800(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;JIII)Landroid/content/pm/PackageInfo;
 HPLcom/android/server/pm/PackageManagerService;->access$6900(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;III)I
 HPLcom/android/server/pm/PackageManagerService;->access$6900(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
@@ -25096,7 +27140,9 @@
 HPLcom/android/server/pm/PackageManagerService;->access$7000(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
 HSPLcom/android/server/pm/PackageManagerService;->access$7100(Lcom/android/server/pm/PackageManagerService;I)Z
 HPLcom/android/server/pm/PackageManagerService;->access$7100(Lcom/android/server/pm/PackageManagerService;Landroid/content/ComponentName;III)Landroid/content/pm/ActivityInfo;
+HPLcom/android/server/pm/PackageManagerService;->access$7100(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIIIZZ)Ljava/util/List;
 HPLcom/android/server/pm/PackageManagerService;->access$7100(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIIZZ)Ljava/util/List;
+PLcom/android/server/pm/PackageManagerService;->access$7200(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIIIZZ)Ljava/util/List;
 HPLcom/android/server/pm/PackageManagerService;->access$7200(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIIZZ)Ljava/util/List;
 PLcom/android/server/pm/PackageManagerService;->access$7300(Lcom/android/server/pm/PackageManagerService;I)Landroid/content/ComponentName;
 HSPLcom/android/server/pm/PackageManagerService;->access$7300(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;II)Z
@@ -25113,6 +27159,7 @@
 HSPLcom/android/server/pm/PackageManagerService;->access$7800(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->access$7900(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;II)Landroid/content/pm/PackageInfo;
 HSPLcom/android/server/pm/PackageManagerService;->access$7900(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+PLcom/android/server/pm/PackageManagerService;->access$800(Lcom/android/server/pm/PackageManagerService;Landroid/os/UserHandle;)I
 PLcom/android/server/pm/PackageManagerService;->access$8000(Lcom/android/server/pm/PackageManagerService;I)I
 HPLcom/android/server/pm/PackageManagerService;->access$8000(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIZI)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->access$8000(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;II)Landroid/content/pm/PackageInfo;
@@ -25122,11 +27169,13 @@
 PLcom/android/server/pm/PackageManagerService;->access$8100(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;)I
 HSPLcom/android/server/pm/PackageManagerService;->access$8100(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;J)Landroid/content/pm/SharedLibraryInfo;
 HPLcom/android/server/pm/PackageManagerService;->access$8200(Lcom/android/server/pm/PackageManagerService;II)Z
+HPLcom/android/server/pm/PackageManagerService;->access$8200(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIIZI)Landroid/content/pm/ResolveInfo;
 HPLcom/android/server/pm/PackageManagerService;->access$8200(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIZI)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->access$8200(Lcom/android/server/pm/PackageManagerService;Landroid/content/pm/SharedLibraryInfo;II)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->access$8200(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
 HSPLcom/android/server/pm/PackageManagerService;->access$8300(Lcom/android/server/pm/PackageManagerService;I)I
 HSPLcom/android/server/pm/PackageManagerService;->access$8300(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
+HPLcom/android/server/pm/PackageManagerService;->access$8300(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIIZI)Landroid/content/pm/ResolveInfo;
 HPLcom/android/server/pm/PackageManagerService;->access$8300(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIZI)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->access$8400(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->access$8400(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;)I
@@ -25146,9 +27195,11 @@
 PLcom/android/server/pm/PackageManagerService;->access$8900(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;ILandroid/content/ComponentName;II)Z
 HSPLcom/android/server/pm/PackageManagerService;->access$8900(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->access$8900(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)[Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->access$900(Lcom/android/server/pm/PackageManagerService;ILandroid/net/Uri;ILandroid/os/UserHandle;)V
 PLcom/android/server/pm/PackageManagerService;->access$900(Lcom/android/server/pm/PackageManagerService;Landroid/os/UserHandle;)I
 HSPLcom/android/server/pm/PackageManagerService;->access$9000(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->access$9100(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)[Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->access$9200(Lcom/android/server/pm/PackageManagerService;II)V
 HSPLcom/android/server/pm/PackageManagerService;->access$9200(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)[Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerService;->access$9300(Lcom/android/server/pm/PackageManagerService;II)V
 PLcom/android/server/pm/PackageManagerService;->access$9400(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ApexManager;
@@ -25156,67 +27207,92 @@
 HSPLcom/android/server/pm/PackageManagerService;->addBuiltInSharedLibraryLocked(Ljava/lang/String;Ljava/lang/String;)Z
 HPLcom/android/server/pm/PackageManagerService;->addCrossProfileIntentFilter(Landroid/content/IntentFilter;Ljava/lang/String;III)V
 HSPLcom/android/server/pm/PackageManagerService;->addForInitLI(Landroid/content/pm/parsing/ParsedPackage;IIJLandroid/os/UserHandle;)Landroid/content/pm/parsing/AndroidPackage;
+HSPLcom/android/server/pm/PackageManagerService;->addForInitLI(Lcom/android/server/pm/parsing/pkg/ParsedPackage;IIJLandroid/os/UserHandle;)Lcom/android/server/pm/parsing/pkg/AndroidPackage;
 HSPLcom/android/server/pm/PackageManagerService;->addPackageHoldingPermissions(Ljava/util/ArrayList;Lcom/android/server/pm/PackageSetting;[Ljava/lang/String;[ZII)V
 PLcom/android/server/pm/PackageManagerService;->addPreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
 PLcom/android/server/pm/PackageManagerService;->addPreferredActivityInternal(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;ZILjava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService;->addSharedLibraryLPr(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Set;Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->addSharedLibraryLPr(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/Set;Landroid/content/pm/SharedLibraryInfo;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->addSharedLibraryLPr(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/Set;Landroid/content/pm/SharedLibraryInfo;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)V
 HSPLcom/android/server/pm/PackageManagerService;->addSharedLibraryToPackageVersionMap(Ljava/util/Map;Landroid/content/pm/SharedLibraryInfo;)Z
 HSPLcom/android/server/pm/PackageManagerService;->adjustScanFlags(ILcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Landroid/os/UserHandle;Landroid/content/pm/parsing/AndroidPackage;)I
+HSPLcom/android/server/pm/PackageManagerService;->adjustScanFlags(ILcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Landroid/os/UserHandle;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)I
 PLcom/android/server/pm/PackageManagerService;->allHavePackage(Ljava/util/List;Ljava/lang/String;)Z
-PLcom/android/server/pm/PackageManagerService;->apkHasCode(Ljava/lang/String;)Z
+HPLcom/android/server/pm/PackageManagerService;->apkHasCode(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->applyAdjustedAbiToSharedUser(Lcom/android/server/pm/SharedUserSetting;Landroid/content/pm/parsing/ParsedPackage;Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/server/pm/PackageManagerService;->applyAdjustedAbiToSharedUser(Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/pm/parsing/pkg/ParsedPackage;Ljava/lang/String;)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->applyDefiningSharedLibraryUpdateLocked(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/SharedLibraryInfo;Ljava/util/function/BiConsumer;)V
+HSPLcom/android/server/pm/PackageManagerService;->applyDefiningSharedLibraryUpdateLocked(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/SharedLibraryInfo;Ljava/util/function/BiConsumer;)V
 HSPLcom/android/server/pm/PackageManagerService;->applyPolicy(Landroid/content/pm/parsing/ParsedPackage;IILandroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->applyPolicy(Lcom/android/server/pm/parsing/pkg/ParsedPackage;IILcom/android/server/pm/parsing/pkg/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->applyPolicy(Lcom/android/server/pm/parsing/pkg/ParsedPackage;IILcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HPLcom/android/server/pm/PackageManagerService;->applyPostContentProviderResolutionFilter(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
+HPLcom/android/server/pm/PackageManagerService;->applyPostContentProviderResolutionFilter(Ljava/util/List;Ljava/lang/String;II)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->applyPostResolutionFilter(Ljava/util/List;Ljava/lang/String;ZIZILandroid/content/Intent;)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->applyPostServiceResolutionFilter(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/server/pm/PackageManagerService;->applyPostServiceResolutionFilter(Ljava/util/List;Ljava/lang/String;II)Ljava/util/List;
 HPLcom/android/server/pm/PackageManagerService;->areWebInstantAppsDisabled(I)Z
 HPLcom/android/server/pm/PackageManagerService;->arrayToString([I)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->assertCodePolicy(Landroid/content/pm/parsing/AndroidPackage;)V
+HPLcom/android/server/pm/PackageManagerService;->assertCodePolicy(Landroid/content/pm/parsing/AndroidPackage;)V
+PLcom/android/server/pm/PackageManagerService;->assertCodePolicy(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/PackageManagerService;->assertPackageIsValid(Landroid/content/pm/parsing/AndroidPackage;II)V
+HSPLcom/android/server/pm/PackageManagerService;->assertPackageIsValid(Lcom/android/server/pm/parsing/pkg/AndroidPackage;II)V
 HSPLcom/android/server/pm/PackageManagerService;->assertPackageKnownAndInstalled(Ljava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/pm/PackageManagerService;->bestDomainVerificationStatus(II)I
-PLcom/android/server/pm/PackageManagerService;->broadcastPackageVerified(ILandroid/net/Uri;ILandroid/os/UserHandle;)V
+HPLcom/android/server/pm/PackageManagerService;->broadcastPackageVerified(ILandroid/net/Uri;ILandroid/os/UserHandle;)V
 PLcom/android/server/pm/PackageManagerService;->canForwardTo(Landroid/content/Intent;Ljava/lang/String;II)Z
 PLcom/android/server/pm/PackageManagerService;->canRequestPackageInstalls(Ljava/lang/String;I)Z
 PLcom/android/server/pm/PackageManagerService;->canRequestPackageInstallsInternal(Ljava/lang/String;IIZ)Z
 HSPLcom/android/server/pm/PackageManagerService;->canSkipForcedApkVerification(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->canSkipForcedPackageVerification(Landroid/content/pm/parsing/AndroidPackage;)Z
+HSPLcom/android/server/pm/PackageManagerService;->canSkipForcedPackageVerification(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HPLcom/android/server/pm/PackageManagerService;->canSuspendPackageForUserInternal([Ljava/lang/String;I)[Z
 HSPLcom/android/server/pm/PackageManagerService;->canViewInstantApps(II)Z
 HSPLcom/android/server/pm/PackageManagerService;->canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String;
 HPLcom/android/server/pm/PackageManagerService;->checkDowngrade(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/PackageInfoLite;)V
+PLcom/android/server/pm/PackageManagerService;->checkDowngrade(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/PackageInfoLite;)V
 PLcom/android/server/pm/PackageManagerService;->checkPackageFrozen(Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService;->checkPackageStartable(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
 HSPLcom/android/server/pm/PackageManagerService;->checkSignatures(Ljava/lang/String;Ljava/lang/String;)I
 HSPLcom/android/server/pm/PackageManagerService;->checkUidPermission(Ljava/lang/String;I)I
 HPLcom/android/server/pm/PackageManagerService;->checkUidSignatures(II)I
+HSPLcom/android/server/pm/PackageManagerService;->chooseBestActivity(Landroid/content/Intent;Ljava/lang/String;IILjava/util/List;I)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->chooseBestActivity(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->cleanPackageDataStructuresLILPw(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HPLcom/android/server/pm/PackageManagerService;->cleanPackageDataStructuresLILPw(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 PLcom/android/server/pm/PackageManagerService;->cleanUpUser(Lcom/android/server/pm/UserManagerService;I)V
 HPLcom/android/server/pm/PackageManagerService;->clearAppDataLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+HPLcom/android/server/pm/PackageManagerService;->clearAppDataLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;II)V
 HPLcom/android/server/pm/PackageManagerService;->clearAppDataLeafLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+HPLcom/android/server/pm/PackageManagerService;->clearAppDataLeafLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;II)V
 HSPLcom/android/server/pm/PackageManagerService;->clearAppProfilesLIF(Landroid/content/pm/parsing/AndroidPackage;I)V
+HSPLcom/android/server/pm/PackageManagerService;->clearAppProfilesLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)V
 PLcom/android/server/pm/PackageManagerService;->clearApplicationUserData(Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;I)V
 PLcom/android/server/pm/PackageManagerService;->clearApplicationUserDataLIF(Ljava/lang/String;I)Z
 HPLcom/android/server/pm/PackageManagerService;->clearCrossProfileIntentFilters(ILjava/lang/String;)V
-PLcom/android/server/pm/PackageManagerService;->clearDefaultBrowserIfNeeded(Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->clearDefaultBrowserIfNeeded(Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService;->clearDefaultBrowserIfNeededForUser(Ljava/lang/String;I)V
 HPLcom/android/server/pm/PackageManagerService;->clearIntentFilterVerificationsLPw(I)V
-PLcom/android/server/pm/PackageManagerService;->clearIntentFilterVerificationsLPw(Ljava/lang/String;I)V
+HSPLcom/android/server/pm/PackageManagerService;->clearIntentFilterVerificationsLPw(Ljava/lang/String;I)V
 PLcom/android/server/pm/PackageManagerService;->clearPackagePreferredActivities(Ljava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService;->clearPackagePreferredActivities(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->clearPackagePreferredActivitiesLPw(Ljava/lang/String;Landroid/util/SparseBooleanArray;I)V
 HSPLcom/android/server/pm/PackageManagerService;->clearPackageStateForUserLIF(Lcom/android/server/pm/PackageSetting;ILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;I)V
 HSPLcom/android/server/pm/PackageManagerService;->collectAbsoluteCodePaths()Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->collectCertificatesLI(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/parsing/ParsedPackage;ZZ)V
+HSPLcom/android/server/pm/PackageManagerService;->collectCertificatesLI(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/parsing/pkg/ParsedPackage;ZZ)V
 HSPLcom/android/server/pm/PackageManagerService;->collectSharedLibraryInfos(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)Ljava/util/ArrayList;
+HSPLcom/android/server/pm/PackageManagerService;->collectSharedLibraryInfos(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)Ljava/util/ArrayList;
 HSPLcom/android/server/pm/PackageManagerService;->collectSharedLibraryInfos(Ljava/util/List;[J[[Ljava/lang/String;Ljava/lang/String;ZILjava/util/ArrayList;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)Ljava/util/ArrayList;
 HSPLcom/android/server/pm/PackageManagerService;->commitPackageSettings(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageSetting;IZLcom/android/server/pm/PackageManagerService$ReconciledPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->commitPackageSettings(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;IZLcom/android/server/pm/PackageManagerService$ReconciledPackage;)V
 HPLcom/android/server/pm/PackageManagerService;->commitPackagesLocked(Lcom/android/server/pm/PackageManagerService$CommitRequest;)V
 HSPLcom/android/server/pm/PackageManagerService;->commitReconciledScanResultLocked(Lcom/android/server/pm/PackageManagerService$ReconciledPackage;)Landroid/content/pm/parsing/AndroidPackage;
+HSPLcom/android/server/pm/PackageManagerService;->commitReconciledScanResultLocked(Lcom/android/server/pm/PackageManagerService$ReconciledPackage;)Lcom/android/server/pm/parsing/pkg/AndroidPackage;
 HSPLcom/android/server/pm/PackageManagerService;->commitSharedLibraryInfoLocked(Landroid/content/pm/SharedLibraryInfo;)V
 HSPLcom/android/server/pm/PackageManagerService;->configurePackageComponents(Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->configurePackageComponents(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/PackageManagerService;->createForwardingResolveInfo(Lcom/android/server/pm/CrossProfileIntentFilter;Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->createForwardingResolveInfoUnchecked(Landroid/content/IntentFilter;II)Landroid/content/pm/ResolveInfo;
 PLcom/android/server/pm/PackageManagerService;->createInstallArgs(Lcom/android/server/pm/PackageManagerService$InstallParams;)Lcom/android/server/pm/PackageManagerService$InstallArgs;
@@ -25227,20 +27303,26 @@
 PLcom/android/server/pm/PackageManagerService;->decompressPackage(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
 PLcom/android/server/pm/PackageManagerService;->deleteApplicationCacheFiles(Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;)V
 PLcom/android/server/pm/PackageManagerService;->deleteApplicationCacheFilesAsUser(Ljava/lang/String;ILandroid/content/pm/IPackageDataObserver;)V
-PLcom/android/server/pm/PackageManagerService;->deleteInstalledPackageLIF(Lcom/android/server/pm/PackageSetting;ZI[ILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;Z)V
+HSPLcom/android/server/pm/PackageManagerService;->deleteInstalledPackageLIF(Lcom/android/server/pm/PackageSetting;ZI[ILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;Z)V
 HPLcom/android/server/pm/PackageManagerService;->deleteOatArtifactsOfPackage(Ljava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->deletePackageAsUser(Ljava/lang/String;ILandroid/content/pm/IPackageDeleteObserver;II)V
 HSPLcom/android/server/pm/PackageManagerService;->deletePackageLIF(Ljava/lang/String;Landroid/os/UserHandle;Z[IILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;ZLandroid/content/pm/parsing/ParsedPackage;)Z
+PLcom/android/server/pm/PackageManagerService;->deletePackageLIF(Ljava/lang/String;Landroid/os/UserHandle;Z[IILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;ZLcom/android/server/pm/parsing/pkg/ParsedPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->deletePackageVersioned(Landroid/content/pm/VersionedPackage;Landroid/content/pm/IPackageDeleteObserver2;II)V
 HSPLcom/android/server/pm/PackageManagerService;->deletePackageX(Ljava/lang/String;JII)I
 PLcom/android/server/pm/PackageManagerService;->deleteSystemPackageLIF(Lcom/android/server/pm/PackageManagerService$DeletePackageAction;Lcom/android/server/pm/PackageSetting;[IILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;Z)V
 HSPLcom/android/server/pm/PackageManagerService;->deleteTempPackageFiles()V
 HSPLcom/android/server/pm/PackageManagerService;->destroyAppDataLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+PLcom/android/server/pm/PackageManagerService;->destroyAppDataLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;II)V
 HSPLcom/android/server/pm/PackageManagerService;->destroyAppDataLeafLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+PLcom/android/server/pm/PackageManagerService;->destroyAppDataLeafLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;II)V
 HSPLcom/android/server/pm/PackageManagerService;->destroyAppProfilesLIF(Landroid/content/pm/parsing/AndroidPackage;)V
+PLcom/android/server/pm/PackageManagerService;->destroyAppProfilesLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/PackageManagerService;->destroyAppProfilesLeafLIF(Landroid/content/pm/parsing/AndroidPackage;)V
+PLcom/android/server/pm/PackageManagerService;->destroyAppProfilesLeafLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/PackageManagerService;->disableSkuSpecificApps()V
 PLcom/android/server/pm/PackageManagerService;->disableSystemPackageLPw(Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerService;->disableSystemPackageLPw(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->doSendBroadcast(Landroid/app/IActivityManager;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[IZ)V
 HSPLcom/android/server/pm/PackageManagerService;->dropNonSystemPackages([Ljava/lang/String;)[Ljava/lang/String;
 HPLcom/android/server/pm/PackageManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
@@ -25258,8 +27340,11 @@
 HSPLcom/android/server/pm/PackageManagerService;->ensureSystemPackageName(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->ensureSystemPackageNames([Ljava/lang/String;)[Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->executeDeletePackageLIF(Lcom/android/server/pm/PackageManagerService$DeletePackageAction;Ljava/lang/String;Z[IZLandroid/content/pm/parsing/ParsedPackage;)V
+PLcom/android/server/pm/PackageManagerService;->executeDeletePackageLIF(Lcom/android/server/pm/PackageManagerService$DeletePackageAction;Ljava/lang/String;Z[IZLcom/android/server/pm/parsing/pkg/ParsedPackage;)V
 HPLcom/android/server/pm/PackageManagerService;->executePostCommitSteps(Lcom/android/server/pm/PackageManagerService$CommitRequest;)V
 HSPLcom/android/server/pm/PackageManagerService;->executeSharedLibrariesUpdateLPr(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;)V
+HSPLcom/android/server/pm/PackageManagerService;->executeSharedLibrariesUpdateLPr(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/util/ArrayList;)V
+HSPLcom/android/server/pm/PackageManagerService;->executeSharedLibrariesUpdateLPr(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/ArrayList;)V
 HPLcom/android/server/pm/PackageManagerService;->extendVerificationTimeout(IIJ)V
 PLcom/android/server/pm/PackageManagerService;->extrasForInstallResult(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)Landroid/os/Bundle;
 HPLcom/android/server/pm/PackageManagerService;->filterCandidatesWithDomainPreferredActivitiesLPr(Landroid/content/Intent;ILjava/util/List;Lcom/android/server/pm/PackageManagerService$CrossProfileDomainInfo;I)Ljava/util/List;
@@ -25269,17 +27354,22 @@
 HSPLcom/android/server/pm/PackageManagerService;->findPersistentPreferredActivityLP(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;ZI)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->findPreferredActivityNotLocked(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;IZZZI)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->findSharedLibraries(Landroid/content/pm/parsing/AndroidPackage;)Ljava/util/List;
+HPLcom/android/server/pm/PackageManagerService;->findSharedLibraries(Lcom/android/server/pm/PackageSetting;)Ljava/util/List;
+HPLcom/android/server/pm/PackageManagerService;->findSharedLibraries(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->findSharedLibrariesRecursive(Landroid/content/pm/SharedLibraryInfo;Ljava/util/ArrayList;Ljava/util/Set;)V
 HSPLcom/android/server/pm/PackageManagerService;->findSharedNonSystemLibraries(Landroid/content/pm/parsing/AndroidPackage;)Ljava/util/List;
+HPLcom/android/server/pm/PackageManagerService;->findSharedNonSystemLibraries(Lcom/android/server/pm/PackageSetting;)Ljava/util/List;
+HPLcom/android/server/pm/PackageManagerService;->findSharedNonSystemLibraries(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/util/List;
 HPLcom/android/server/pm/PackageManagerService;->finishPackageInstall(IZ)V
 HSPLcom/android/server/pm/PackageManagerService;->fixProcessName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 PLcom/android/server/pm/PackageManagerService;->fixUpInstallReason(Ljava/lang/String;II)I
+HPLcom/android/server/pm/PackageManagerService;->flushPackageRestrictionsAsUserInternalLocked(I)V
 HSPLcom/android/server/pm/PackageManagerService;->forEachInstalledPackage(Ljava/util/function/Consumer;I)V
 HSPLcom/android/server/pm/PackageManagerService;->forEachPackage(Ljava/util/function/Consumer;)V
 HPLcom/android/server/pm/PackageManagerService;->freeStorage(Ljava/lang/String;JI)V
 HPLcom/android/server/pm/PackageManagerService;->freeStorageAndNotify(Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
 HSPLcom/android/server/pm/PackageManagerService;->freezePackage(Ljava/lang/String;ILjava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
-PLcom/android/server/pm/PackageManagerService;->freezePackage(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
+HSPLcom/android/server/pm/PackageManagerService;->freezePackage(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
 HSPLcom/android/server/pm/PackageManagerService;->freezePackageForDelete(Ljava/lang/String;IILjava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
 PLcom/android/server/pm/PackageManagerService;->freezePackageForInstall(Ljava/lang/String;IILjava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
 PLcom/android/server/pm/PackageManagerService;->freezePackageForInstall(Ljava/lang/String;ILjava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
@@ -25289,8 +27379,9 @@
 HSPLcom/android/server/pm/PackageManagerService;->getActivityInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
 HSPLcom/android/server/pm/PackageManagerService;->getActivityInfoInternal(Landroid/content/ComponentName;III)Landroid/content/pm/ActivityInfo;
 HPLcom/android/server/pm/PackageManagerService;->getAllIntentFilters(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/server/pm/PackageManagerService;->getAllPackages()Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->getAllowedSharedLibInfos(Lcom/android/server/pm/PackageManagerService$ScanResult;Ljava/util/Map;)Ljava/util/List;
-PLcom/android/server/pm/PackageManagerService;->getAppOpPermissionPackages(Ljava/lang/String;)[Ljava/lang/String;
+HPLcom/android/server/pm/PackageManagerService;->getAppOpPermissionPackages(Ljava/lang/String;)[Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getAppPredictionServicePackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getApplicationEnabledSetting(Ljava/lang/String;I)I
 HPLcom/android/server/pm/PackageManagerService;->getApplicationHiddenSettingAsUser(Ljava/lang/String;I)Z
@@ -25342,6 +27433,7 @@
 HPLcom/android/server/pm/PackageManagerService;->getIntentVerificationStatus(Ljava/lang/String;I)I
 PLcom/android/server/pm/PackageManagerService;->getLastChosenActivity(Landroid/content/Intent;Ljava/lang/String;I)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->getLatestSharedLibraVersionLPr(Landroid/content/pm/parsing/AndroidPackage;)Landroid/content/pm/SharedLibraryInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getLatestSharedLibraVersionLPr(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Landroid/content/pm/SharedLibraryInfo;
 HSPLcom/android/server/pm/PackageManagerService;->getMatchingCrossProfileIntentFilters(Landroid/content/Intent;Ljava/lang/String;I)Ljava/util/List;
 HPLcom/android/server/pm/PackageManagerService;->getModuleInfo(Ljava/lang/String;I)Landroid/content/pm/ModuleInfo;
 HSPLcom/android/server/pm/PackageManagerService;->getNameForUid(I)Ljava/lang/String;
@@ -25350,8 +27442,10 @@
 PLcom/android/server/pm/PackageManagerService;->getOatDir(Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
 HPLcom/android/server/pm/PackageManagerService;->getOptimizablePackages()Landroid/util/ArraySet;
 HSPLcom/android/server/pm/PackageManagerService;->getOrCreateCompilerPackageStats(Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/server/pm/CompilerStats$PackageStats;
+HPLcom/android/server/pm/PackageManagerService;->getOrCreateCompilerPackageStats(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Lcom/android/server/pm/CompilerStats$PackageStats;
 HSPLcom/android/server/pm/PackageManagerService;->getOrCreateCompilerPackageStats(Ljava/lang/String;)Lcom/android/server/pm/CompilerStats$PackageStats;
 HSPLcom/android/server/pm/PackageManagerService;->getOriginalPackageLocked(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/PackageManagerService;->getOriginalPackageLocked(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/PackageManagerService;->getPackageGids(Ljava/lang/String;II)[I
 HSPLcom/android/server/pm/PackageManagerService;->getPackageInfo(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
 HSPLcom/android/server/pm/PackageManagerService;->getPackageInfoInternal(Ljava/lang/String;JIII)Landroid/content/pm/PackageInfo;
@@ -25359,24 +27453,28 @@
 HSPLcom/android/server/pm/PackageManagerService;->getPackageInstaller()Landroid/content/pm/IPackageInstaller;
 PLcom/android/server/pm/PackageManagerService;->getPackageInstallerPackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getPackageSetting(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/PackageManagerService;->getPackageSettingInternal(Ljava/lang/String;I)Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/PackageManagerService;->getPackageTargetSdkVersionLockedLPr(Ljava/lang/String;)I
 HSPLcom/android/server/pm/PackageManagerService;->getPackageUid(Ljava/lang/String;II)I
 HSPLcom/android/server/pm/PackageManagerService;->getPackageUidInternal(Ljava/lang/String;III)I
 PLcom/android/server/pm/PackageManagerService;->getPackages()Ljava/util/Collection;
 HPLcom/android/server/pm/PackageManagerService;->getPackagesForSharedUserIdLocked(Ljava/lang/String;I)[Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getPackagesForUid(I)[Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getPackagesForUidInternal(II)[Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getPackagesHoldingPermissions([Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
 HSPLcom/android/server/pm/PackageManagerService;->getPackagesUsingSharedLibraryLPr(Landroid/content/pm/SharedLibraryInfo;II)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->getPermissionControllerPackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getPersistentApplications(I)Landroid/content/pm/ParceledListSlice;
 HSPLcom/android/server/pm/PackageManagerService;->getPersistentApplicationsInternal(I)Ljava/util/List;
 HPLcom/android/server/pm/PackageManagerService;->getPrebuildProfilePath(Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getPrebuildProfilePath(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/lang/String;
 HPLcom/android/server/pm/PackageManagerService;->getPreferredActivities(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)I
 PLcom/android/server/pm/PackageManagerService;->getPreferredActivityBackup(I)[B
 HSPLcom/android/server/pm/PackageManagerService;->getProcessesForUidLocked(I)Landroid/util/ArrayMap;
 HPLcom/android/server/pm/PackageManagerService;->getProfileParent(I)Landroid/content/pm/UserInfo;
 HPLcom/android/server/pm/PackageManagerService;->getProviderInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ProviderInfo;
 HSPLcom/android/server/pm/PackageManagerService;->getRealPackageName(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getRealPackageName(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getReceiverInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
 HSPLcom/android/server/pm/PackageManagerService;->getRequiredButNotReallyRequiredVerifierLPr()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getRequiredInstallerLPr()Ljava/lang/String;
@@ -25389,6 +27487,7 @@
 HSPLcom/android/server/pm/PackageManagerService;->getServiceInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ServiceInfo;
 HSPLcom/android/server/pm/PackageManagerService;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getSettingsVersionForPackage(Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/server/pm/Settings$VersionInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getSettingsVersionForPackage(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Lcom/android/server/pm/Settings$VersionInfo;
 HSPLcom/android/server/pm/PackageManagerService;->getSetupWizardPackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getSetupWizardPackageNameImpl()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getSharedLibLatestVersionSetting(Lcom/android/server/pm/PackageManagerService$ScanResult;)Lcom/android/server/pm/PackageSetting;
@@ -25406,7 +27505,7 @@
 HSPLcom/android/server/pm/PackageManagerService;->getSystemTextClassifierPackages()[Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getTelephonyPackageNames()[Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->getUidTargetSdkVersionLockedLPr(I)I
-PLcom/android/server/pm/PackageManagerService;->getUnknownSourcesSettings()I
+HPLcom/android/server/pm/PackageManagerService;->getUnknownSourcesSettings()I
 HPLcom/android/server/pm/PackageManagerService;->getUnsuspendablePackagesForUser([Ljava/lang/String;I)[Ljava/lang/String;
 HPLcom/android/server/pm/PackageManagerService;->getUnusedPackages(J)Ljava/util/Set;
 HPLcom/android/server/pm/PackageManagerService;->getVerificationTimeout()J
@@ -25415,31 +27514,38 @@
 HPLcom/android/server/pm/PackageManagerService;->handlePackagePostInstall(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;ZZZ[Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;Landroid/content/pm/IPackageInstallObserver2;)V
 HPLcom/android/server/pm/PackageManagerService;->handlePackagePostInstall(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;ZZZ[Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;Landroid/content/pm/IPackageInstallObserver2;I)V
 PLcom/android/server/pm/PackageManagerService;->hasDomainURLs(Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerService;->hasDomainURLs(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->hasNonNegativePriority(Ljava/util/List;)Z
 HPLcom/android/server/pm/PackageManagerService;->hasString(Ljava/util/List;Ljava/util/List;)Z
 HSPLcom/android/server/pm/PackageManagerService;->hasSystemFeature(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/PackageManagerService;->hasSystemUidErrors()Z
 HPLcom/android/server/pm/PackageManagerService;->hasValidDomains(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)Z
+PLcom/android/server/pm/PackageManagerService;->hasValidDomains(Landroid/content/pm/parsing/component/ParsedIntentInfo;)Z
 HPLcom/android/server/pm/PackageManagerService;->installExistingPackageAsUser(Ljava/lang/String;IIILjava/util/List;)I
 HPLcom/android/server/pm/PackageManagerService;->installExistingPackageAsUser(Ljava/lang/String;IIILjava/util/List;Landroid/content/IntentSender;)I
 PLcom/android/server/pm/PackageManagerService;->installPackageFromSystemLIF(Ljava/lang/String;[I[ILcom/android/server/pm/permission/PermissionsState;Z)Landroid/content/pm/parsing/AndroidPackage;
+PLcom/android/server/pm/PackageManagerService;->installPackageFromSystemLIF(Ljava/lang/String;[I[ILcom/android/server/pm/permission/PermissionsState;Z)Lcom/android/server/pm/parsing/pkg/AndroidPackage;
 HPLcom/android/server/pm/PackageManagerService;->installPackagesLI(Ljava/util/List;)V
-PLcom/android/server/pm/PackageManagerService;->installPackagesTracedLI(Ljava/util/List;)V
+HPLcom/android/server/pm/PackageManagerService;->installPackagesTracedLI(Ljava/util/List;)V
 HPLcom/android/server/pm/PackageManagerService;->installStage(Lcom/android/server/pm/PackageManagerService$ActiveInstallSession;)V
 PLcom/android/server/pm/PackageManagerService;->installStage(Ljava/util/List;)V
 PLcom/android/server/pm/PackageManagerService;->installStubPackageLI(Landroid/content/pm/parsing/AndroidPackage;II)Landroid/content/pm/parsing/AndroidPackage;
+PLcom/android/server/pm/PackageManagerService;->installStubPackageLI(Lcom/android/server/pm/parsing/pkg/AndroidPackage;II)Lcom/android/server/pm/parsing/pkg/AndroidPackage;
 HSPLcom/android/server/pm/PackageManagerService;->installSystemStubPackages(Ljava/util/List;I)V
 HSPLcom/android/server/pm/PackageManagerService;->installWhitelistedSystemPackages()V
 PLcom/android/server/pm/PackageManagerService;->isCallerAllowedToSilentlyUninstall(ILjava/lang/String;)Z
+PLcom/android/server/pm/PackageManagerService;->isCallerDeviceOrProfileOwner(I)Z
 HSPLcom/android/server/pm/PackageManagerService;->isCallerSameApp(Ljava/lang/String;I)Z
 PLcom/android/server/pm/PackageManagerService;->isCallerVerifier(I)Z
 PLcom/android/server/pm/PackageManagerService;->isCompatSignatureUpdateNeeded(Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isCompatSignatureUpdateNeeded(Lcom/android/server/pm/Settings$VersionInfo;)Z
+PLcom/android/server/pm/PackageManagerService;->isCompatSignatureUpdateNeeded(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 PLcom/android/server/pm/PackageManagerService;->isComponentVisibleToInstantApp(Landroid/content/ComponentName;)Z
 PLcom/android/server/pm/PackageManagerService;->isComponentVisibleToInstantApp(Landroid/content/ComponentName;I)Z
 HSPLcom/android/server/pm/PackageManagerService;->isDeviceUpgrading()Z
 HSPLcom/android/server/pm/PackageManagerService;->isExternal(Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isExternal(Lcom/android/server/pm/PackageSetting;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isExternal(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isFirstBoot()Z
 HSPLcom/android/server/pm/PackageManagerService;->isHistoricalPackageUsageAvailable()Z
 HSPLcom/android/server/pm/PackageManagerService;->isHomeIntent(Landroid/content/Intent;)Z
@@ -25448,62 +27554,87 @@
 HSPLcom/android/server/pm/PackageManagerService;->isInstantAppResolutionAllowed(Landroid/content/Intent;Ljava/util/List;IZ)Z
 PLcom/android/server/pm/PackageManagerService;->isIntegrityVerificationEnabled()Z
 PLcom/android/server/pm/PackageManagerService;->isOdmApp(Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerService;->isOdmApp(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 PLcom/android/server/pm/PackageManagerService;->isOemApp(Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerService;->isOemApp(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isOnlyCoreApps()Z
 HSPLcom/android/server/pm/PackageManagerService;->isOrphaned(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isPackageAvailable(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/PackageManagerService;->isPackageDeviceAdmin(Ljava/lang/String;I)Z
 PLcom/android/server/pm/PackageManagerService;->isPackageDeviceAdminOnAnyUser(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isPackageRenamed(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isPackageRenamed(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
 PLcom/android/server/pm/PackageManagerService;->isPrivilegedApp(Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerService;->isPrivilegedApp(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 PLcom/android/server/pm/PackageManagerService;->isProductApp(Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerService;->isProductApp(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isProtectedBroadcast(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isRecentsAccessingChildProfiles(II)Z
 PLcom/android/server/pm/PackageManagerService;->isRecoverSignatureUpdateNeeded(Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isRecoverSignatureUpdateNeeded(Lcom/android/server/pm/Settings$VersionInfo;)Z
+PLcom/android/server/pm/PackageManagerService;->isRecoverSignatureUpdateNeeded(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isSafeMode()Z
 PLcom/android/server/pm/PackageManagerService;->isStorageLow()Z
+PLcom/android/server/pm/PackageManagerService;->isSuspendAllowedForUser(I)Z
 HSPLcom/android/server/pm/PackageManagerService;->isSystemApp(Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isSystemApp(Lcom/android/server/pm/PackageSetting;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isSystemApp(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HPLcom/android/server/pm/PackageManagerService;->isUidPrivileged(I)Z
 HSPLcom/android/server/pm/PackageManagerService;->isUpdatedSystemApp(Lcom/android/server/pm/PackageSetting;)Z
 HSPLcom/android/server/pm/PackageManagerService;->isUserEnabled(I)Z
 HSPLcom/android/server/pm/PackageManagerService;->isUserRestricted(ILjava/lang/String;)Z
 PLcom/android/server/pm/PackageManagerService;->isVendorApp(Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerService;->isVendorApp(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 PLcom/android/server/pm/PackageManagerService;->isVerificationEnabled(III)Z
 PLcom/android/server/pm/PackageManagerService;->isVerificationEnabled(Landroid/content/pm/PackageInfoLite;III)Z
 HSPLcom/android/server/pm/PackageManagerService;->killApplication(Ljava/lang/String;IILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->killApplication(Ljava/lang/String;ILjava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->lambda$QIOg9odF8NpVJsmgYMdGQy_GpvY(Lcom/android/server/pm/ApexManager$ActiveApexInfo;)Lcom/android/server/pm/PackageManagerService$ScanPartition;
 PLcom/android/server/pm/PackageManagerService;->lambda$commitPackageSettings$15$PackageManagerService(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;)V
+PLcom/android/server/pm/PackageManagerService;->lambda$commitPackageSettings$15$PackageManagerService(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/ArrayList;)V
+PLcom/android/server/pm/PackageManagerService;->lambda$commitPackageSettings$16$PackageManagerService(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/ArrayList;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$deleteApplicationCacheFilesAsUser$28$PackageManagerService(Landroid/content/pm/parsing/AndroidPackage;IIILandroid/content/pm/IPackageDataObserver;Ljava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService;->lambda$deleteApplicationCacheFilesAsUser$28$PackageManagerService(Lcom/android/server/pm/parsing/pkg/AndroidPackage;IIILandroid/content/pm/IPackageDataObserver;Ljava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$deleteApplicationCacheFilesAsUser$29$PackageManagerService(Landroid/content/pm/parsing/AndroidPackage;IIILandroid/content/pm/IPackageDataObserver;Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService;->lambda$deletePackageVersioned$26$PackageManagerService(Ljava/lang/String;IZZJII[ILandroid/content/pm/IPackageDeleteObserver2;Ljava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$deletePackageVersioned$27$PackageManagerService(Ljava/lang/String;IZZJII[ILandroid/content/pm/IPackageDeleteObserver2;Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageManagerService;->lambda$executeSharedLibrariesUpdateLPr$14(Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/SharedLibraryInfo;)V
-PLcom/android/server/pm/PackageManagerService;->lambda$freeStorageAndNotify$10$PackageManagerService(Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
+HSPLcom/android/server/pm/PackageManagerService;->lambda$executeSharedLibrariesUpdateLPr$15(Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/SharedLibraryInfo;)V
+HPLcom/android/server/pm/PackageManagerService;->lambda$freeStorageAndNotify$10$PackageManagerService(Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
+PLcom/android/server/pm/PackageManagerService;->lambda$freeStorageAndNotify$11$PackageManagerService(Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$installExistingPackageAsUser$19$PackageManagerService(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Landroid/content/IntentSender;)V
+PLcom/android/server/pm/PackageManagerService;->lambda$installExistingPackageAsUser$20$PackageManagerService(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Landroid/content/IntentSender;)V
 HSPLcom/android/server/pm/PackageManagerService;->lambda$main$0(Ljava/lang/Object;Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ComponentResolver;
 HSPLcom/android/server/pm/PackageManagerService;->lambda$main$1(Landroid/content/Context;Ljava/lang/Object;Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
 HSPLcom/android/server/pm/PackageManagerService;->lambda$main$2(Landroid/content/Context;Lcom/android/server/pm/Installer;Ljava/lang/Object;ZLjava/lang/Object;Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/UserManagerService;
 HSPLcom/android/server/pm/PackageManagerService;->lambda$main$3(Ljava/lang/Object;Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/Settings;
 HSPLcom/android/server/pm/PackageManagerService;->lambda$main$4(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/AppsFilter;
 HSPLcom/android/server/pm/PackageManagerService;->lambda$main$5(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/compat/PlatformCompat;
+HSPLcom/android/server/pm/PackageManagerService;->lambda$new$10$PackageManagerService(Ljava/util/List;I)V
 HSPLcom/android/server/pm/PackageManagerService;->lambda$new$35$PackageManagerService(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->lambda$new$36$PackageManagerService(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->lambda$new$7(Lcom/android/server/pm/ApexManager$ActiveApexInfo;)Lcom/android/server/pm/PackageManagerService$SystemPartition;
+HSPLcom/android/server/pm/PackageManagerService;->lambda$new$7(Lcom/android/server/pm/PackageManagerService$ScanPartition;)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->lambda$new$8(Lcom/android/server/pm/PackageManagerService$SystemPartition;)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->lambda$new$8(Ljava/util/function/BiConsumer;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/PackageManagerService;->lambda$new$9$PackageManagerService(Ljava/util/List;I)V
+HSPLcom/android/server/pm/PackageManagerService;->lambda$new$9$PackageManagerService(Ljava/util/function/BiConsumer;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$notifyFirstLaunch$22$PackageManagerService(Ljava/lang/String;ILjava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService;->lambda$notifyFirstLaunch$23$PackageManagerService(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$postPreferredActivityChangedBroadcast$29(I)V
 HPLcom/android/server/pm/PackageManagerService;->lambda$postPreferredActivityChangedBroadcast$30(I)V
 HPLcom/android/server/pm/PackageManagerService;->lambda$processInstallRequestsAsync$21$PackageManagerService(ZLjava/util/List;)V
+PLcom/android/server/pm/PackageManagerService;->lambda$processInstallRequestsAsync$22$PackageManagerService(ZLjava/util/List;)V
+PLcom/android/server/pm/PackageManagerService;->lambda$removePackageDataLIF$27$PackageManagerService(Lcom/android/server/pm/PackageSetting;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$removePackageDataLIF$28$PackageManagerService(Lcom/android/server/pm/PackageSetting;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$removeUnusedPackagesLPw$43$PackageManagerService(Ljava/lang/String;I)V
 HPLcom/android/server/pm/PackageManagerService;->lambda$sendMyPackageSuspendedOrUnsuspended$20$PackageManagerService(ZI[Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->lambda$sendPackageAddedForNewUsers$18$PackageManagerService([ILjava/lang/String;Z)V
 HSPLcom/android/server/pm/PackageManagerService;->lambda$sendPackageBroadcast$16$PackageManagerService([ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I)V
+HPLcom/android/server/pm/PackageManagerService;->lambda$sendPackageBroadcast$17$PackageManagerService([ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I)V
 HSPLcom/android/server/pm/PackageManagerService;->lambda$static$17(Landroid/content/pm/ProviderInfo;Landroid/content/pm/ProviderInfo;)I
+HSPLcom/android/server/pm/PackageManagerService;->lambda$static$18(Landroid/content/pm/ProviderInfo;Landroid/content/pm/ProviderInfo;)I
 HSPLcom/android/server/pm/PackageManagerService;->lambda$systemReady$36$PackageManagerService(I)V
 HSPLcom/android/server/pm/PackageManagerService;->lambda$systemReady$37$PackageManagerService(I)V
 HSPLcom/android/server/pm/PackageManagerService;->lambda$systemReady$38$PackageManagerService(I)V
@@ -25518,16 +27649,19 @@
 PLcom/android/server/pm/PackageManagerService;->maybeAddInstantAppInstaller(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;IIZ)Ljava/util/List;
 HPLcom/android/server/pm/PackageManagerService;->maybeAddInstantAppInstaller(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;IIZZ)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->maybeClearProfilesForUpgradesLI(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->maybeClearProfilesForUpgradesLI(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/PackageManagerService;->maybeMigrateAppDataLIF(Landroid/content/pm/parsing/AndroidPackage;I)Z
+HSPLcom/android/server/pm/PackageManagerService;->maybeMigrateAppDataLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)Z
 PLcom/android/server/pm/PackageManagerService;->needsNetworkVerificationLPr(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)Z
 HSPLcom/android/server/pm/PackageManagerService;->nonStaticSharedLibExistsLocked(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->normalizePackageNameLPr(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->notifyDexLoad(Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->notifyDexLoad(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V
 PLcom/android/server/pm/PackageManagerService;->notifyFirstLaunch(Ljava/lang/String;Ljava/lang/String;I)V
 PLcom/android/server/pm/PackageManagerService;->notifyInstallObserver(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Landroid/content/pm/IPackageInstallObserver2;)V
 PLcom/android/server/pm/PackageManagerService;->notifyInstallObserver(Ljava/lang/String;)V
 HPLcom/android/server/pm/PackageManagerService;->notifyPackageAdded(Ljava/lang/String;I)V
-PLcom/android/server/pm/PackageManagerService;->notifyPackageChanged(Ljava/lang/String;I)V
+HPLcom/android/server/pm/PackageManagerService;->notifyPackageChanged(Ljava/lang/String;I)V
 HPLcom/android/server/pm/PackageManagerService;->notifyPackageRemoved(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->notifyPackageUse(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->notifyPackageUseLocked(Ljava/lang/String;I)V
@@ -25542,19 +27676,27 @@
 HPLcom/android/server/pm/PackageManagerService;->performDexOpt(Lcom/android/server/pm/dex/DexoptOptions;)Z
 HSPLcom/android/server/pm/PackageManagerService;->performDexOptInternal(Lcom/android/server/pm/dex/DexoptOptions;)I
 HSPLcom/android/server/pm/PackageManagerService;->performDexOptInternalWithDependenciesLI(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageManagerService;->performDexOptInternalWithDependenciesLI(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageManagerService;->performDexOptInternalWithDependenciesLI(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/dex/DexoptOptions;)I
 PLcom/android/server/pm/PackageManagerService;->performDexOptMode(Ljava/lang/String;ZLjava/lang/String;ZZLjava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerService;->performDexOptTraced(Lcom/android/server/pm/dex/DexoptOptions;)I
 HSPLcom/android/server/pm/PackageManagerService;->performDexOptUpgrade(Ljava/util/List;ZIZ)[I
-PLcom/android/server/pm/PackageManagerService;->performDexOptWithStatus(Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageManagerService;->performDexOptWithStatus(Lcom/android/server/pm/dex/DexoptOptions;)I
 HSPLcom/android/server/pm/PackageManagerService;->performFstrimIfNeeded()V
 HPLcom/android/server/pm/PackageManagerService;->performRollbackManagerRestore(IILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Lcom/android/server/pm/PackageManagerService$PostInstallData;)Z
 PLcom/android/server/pm/PackageManagerService;->postPreferredActivityChangedBroadcast(I)V
 HPLcom/android/server/pm/PackageManagerService;->prepareAppDataAfterInstallLIF(Landroid/content/pm/parsing/AndroidPackage;)V
+HPLcom/android/server/pm/PackageManagerService;->prepareAppDataAfterInstallLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataAndMigrateLIF(Landroid/content/pm/parsing/AndroidPackage;IIZ)V
+HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataAndMigrateLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;IIZ)V
 PLcom/android/server/pm/PackageManagerService;->prepareAppDataContentsLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
 HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataContentsLeafLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataContentsLeafLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;II)V
+HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataContentsLeafLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;II)V
 HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;II)V
 HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataLeafLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataLeafLIF(Lcom/android/server/pm/parsing/pkg/AndroidPackage;II)V
 HPLcom/android/server/pm/PackageManagerService;->preparePackageLI(Lcom/android/server/pm/PackageManagerService$InstallArgs;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)Lcom/android/server/pm/PackageManagerService$PrepareResult;
 HSPLcom/android/server/pm/PackageManagerService;->preparePackageParserCache()Ljava/io/File;
 HPLcom/android/server/pm/PackageManagerService;->primeDomainVerificationsLPw(I)V
@@ -25567,6 +27709,7 @@
 PLcom/android/server/pm/PackageManagerService;->queryInstrumentationInternal(Ljava/lang/String;I)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
 HSPLcom/android/server/pm/PackageManagerService;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
+HSPLcom/android/server/pm/PackageManagerService;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;IIIIZZ)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerService;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;IIIZZ)Ljava/util/List;
 PLcom/android/server/pm/PackageManagerService;->queryIntentActivityOptions(Landroid/content/ComponentName;[Landroid/content/Intent;[Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/pm/PackageManagerService;->queryIntentActivityOptionsInternal(Landroid/content/ComponentName;[Landroid/content/Intent;[Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
@@ -25585,36 +27728,52 @@
 PLcom/android/server/pm/PackageManagerService;->registerMoveCallback(Landroid/content/pm/IPackageMoveObserver;)V
 HSPLcom/android/server/pm/PackageManagerService;->removeCodePathLI(Ljava/io/File;)V
 HSPLcom/android/server/pm/PackageManagerService;->removeDexFiles(Ljava/util/List;[Ljava/lang/String;)V
+HPLcom/android/server/pm/PackageManagerService;->removeDistractingPackageRestrictions([Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->removeKeystoreDataIfNeeded(Landroid/os/UserManagerInternal;II)V
 PLcom/android/server/pm/PackageManagerService;->removeNativeBinariesLI(Lcom/android/server/pm/PackageSetting;)V
-HPLcom/android/server/pm/PackageManagerService;->removePackageDataLIF(Lcom/android/server/pm/PackageSetting;[ILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;IZ)V
+HSPLcom/android/server/pm/PackageManagerService;->removePackageDataLIF(Lcom/android/server/pm/PackageSetting;[ILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;IZ)V
 HSPLcom/android/server/pm/PackageManagerService;->removePackageLI(Landroid/content/pm/parsing/AndroidPackage;Z)V
+PLcom/android/server/pm/PackageManagerService;->removePackageLI(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/PackageManagerService;->removePackageLI(Ljava/lang/String;Z)V
 HSPLcom/android/server/pm/PackageManagerService;->removeSharedLibraryLPw(Ljava/lang/String;J)Z
+HPLcom/android/server/pm/PackageManagerService;->removeSuspensionsBySuspendingPackage([Ljava/lang/String;Ljava/util/function/Predicate;I)V
 HPLcom/android/server/pm/PackageManagerService;->removeUnusedPackagesLPw(Lcom/android/server/pm/UserManagerService;I)V
 HSPLcom/android/server/pm/PackageManagerService;->renameStaticSharedLibraryPackage(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->renameStaticSharedLibraryPackage(Lcom/android/server/pm/parsing/pkg/ParsedPackage;)V
 HPLcom/android/server/pm/PackageManagerService;->replacePreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
 HSPLcom/android/server/pm/PackageManagerService;->reportSettingsProblem(ILjava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->resolveApexToScanPartition(Lcom/android/server/pm/ApexManager$ActiveApexInfo;)Lcom/android/server/pm/PackageManagerService$ScanPartition;
 HSPLcom/android/server/pm/PackageManagerService;->resolveApexToSystemPartition(Lcom/android/server/pm/ApexManager$ActiveApexInfo;)Lcom/android/server/pm/PackageManagerService$SystemPartition;
 HSPLcom/android/server/pm/PackageManagerService;->resolveContentProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
 HSPLcom/android/server/pm/PackageManagerService;->resolveContentProviderInternal(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
 HSPLcom/android/server/pm/PackageManagerService;->resolveExternalPackageNameLPr(Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->resolveExternalPackageNameLPr(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/PackageManagerService;->resolveIntentInternal(Landroid/content/Intent;Ljava/lang/String;IIIZI)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->resolveIntentInternal(Landroid/content/Intent;Ljava/lang/String;IIZI)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/PackageManagerService;->resolveInternalPackageNameInternalLocked(Ljava/lang/String;JI)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->resolveInternalPackageNameLPr(Ljava/lang/String;J)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerService;->resolveService(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->resolveServiceInternal(Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
 HSPLcom/android/server/pm/PackageManagerService;->resolveUserIds(I)[I
-PLcom/android/server/pm/PackageManagerService;->restoreAndPostInstall(ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Lcom/android/server/pm/PackageManagerService$PostInstallData;)V
+HPLcom/android/server/pm/PackageManagerService;->restoreAndPostInstall(ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Lcom/android/server/pm/PackageManagerService$PostInstallData;)V
 HSPLcom/android/server/pm/PackageManagerService;->scanDirLI(Ljava/io/File;IIJ)V
 HSPLcom/android/server/pm/PackageManagerService;->scanDirLI(Ljava/io/File;IIJLandroid/content/pm/PackageParser;Ljava/util/concurrent/ExecutorService;)V
+HSPLcom/android/server/pm/PackageManagerService;->scanDirLI(Ljava/io/File;IIJLcom/android/server/pm/parsing/PackageParser2;Ljava/util/concurrent/ExecutorService;)V
 HSPLcom/android/server/pm/PackageManagerService;->scanDirTracedLI(Ljava/io/File;IIJ)V
 HSPLcom/android/server/pm/PackageManagerService;->scanDirTracedLI(Ljava/io/File;IIJLandroid/content/pm/PackageParser;Ljava/util/concurrent/ExecutorService;)V
+HSPLcom/android/server/pm/PackageManagerService;->scanDirTracedLI(Ljava/io/File;IIJLcom/android/server/pm/parsing/PackageParser2;Ljava/util/concurrent/ExecutorService;)V
 PLcom/android/server/pm/PackageManagerService;->scanPackageLI(Ljava/io/File;IIJLandroid/os/UserHandle;)Landroid/content/pm/parsing/AndroidPackage;
+PLcom/android/server/pm/PackageManagerService;->scanPackageLI(Ljava/io/File;IIJLandroid/os/UserHandle;)Lcom/android/server/pm/parsing/pkg/AndroidPackage;
 HSPLcom/android/server/pm/PackageManagerService;->scanPackageNewLI(Landroid/content/pm/parsing/ParsedPackage;IIJLandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerService$ScanResult;
+HSPLcom/android/server/pm/PackageManagerService;->scanPackageNewLI(Lcom/android/server/pm/parsing/pkg/ParsedPackage;IIJLandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerService$ScanResult;
+HSPLcom/android/server/pm/PackageManagerService;->scanPackageNewLI(Lcom/android/server/pm/parsing/pkg/ParsedPackage;IIJLandroid/os/UserHandle;Ljava/lang/String;)Lcom/android/server/pm/PackageManagerService$ScanResult;
 HSPLcom/android/server/pm/PackageManagerService;->scanPackageOnlyLI(Lcom/android/server/pm/PackageManagerService$ScanRequest;Lcom/android/server/pm/PackageManagerService$Injector;ZJ)Lcom/android/server/pm/PackageManagerService$ScanResult;
-PLcom/android/server/pm/PackageManagerService;->scanPackageTracedLI(Landroid/content/pm/parsing/ParsedPackage;IIJLandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerService$ScanResult;
+HPLcom/android/server/pm/PackageManagerService;->scanPackageTracedLI(Landroid/content/pm/parsing/ParsedPackage;IIJLandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerService$ScanResult;
+PLcom/android/server/pm/PackageManagerService;->scanPackageTracedLI(Lcom/android/server/pm/parsing/pkg/ParsedPackage;IIJLandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerService$ScanResult;
+PLcom/android/server/pm/PackageManagerService;->scanPackageTracedLI(Lcom/android/server/pm/parsing/pkg/ParsedPackage;IIJLandroid/os/UserHandle;Ljava/lang/String;)Lcom/android/server/pm/PackageManagerService$ScanResult;
 PLcom/android/server/pm/PackageManagerService;->scanPackageTracedLI(Ljava/io/File;IIJLandroid/os/UserHandle;)Landroid/content/pm/parsing/AndroidPackage;
+PLcom/android/server/pm/PackageManagerService;->scanPackageTracedLI(Ljava/io/File;IIJLandroid/os/UserHandle;)Lcom/android/server/pm/parsing/pkg/AndroidPackage;
 PLcom/android/server/pm/PackageManagerService;->scheduleDeferredNoKillInstallObserver(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Landroid/content/pm/IPackageInstallObserver2;)V
 PLcom/android/server/pm/PackageManagerService;->scheduleDeferredNoKillPostDelete(Lcom/android/server/pm/PackageManagerService$InstallArgs;)V
 PLcom/android/server/pm/PackageManagerService;->scheduleWritePackageListLocked(I)V
@@ -25625,7 +27784,7 @@
 PLcom/android/server/pm/PackageManagerService;->sendDistractingPackagesChanged([Ljava/lang/String;[III)V
 PLcom/android/server/pm/PackageManagerService;->sendFirstLaunchBroadcast(Ljava/lang/String;Ljava/lang/String;[I[I)V
 PLcom/android/server/pm/PackageManagerService;->sendMyPackageSuspendedOrUnsuspended([Ljava/lang/String;ZI)V
-PLcom/android/server/pm/PackageManagerService;->sendPackageAddedForNewUsers(Ljava/lang/String;ZZI[I[I)V
+HPLcom/android/server/pm/PackageManagerService;->sendPackageAddedForNewUsers(Ljava/lang/String;ZZI[I[I)V
 PLcom/android/server/pm/PackageManagerService;->sendPackageAddedForUser(Ljava/lang/String;Lcom/android/server/pm/PackageSetting;I)V
 HSPLcom/android/server/pm/PackageManagerService;->sendPackageBroadcast(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I[I)V
 HPLcom/android/server/pm/PackageManagerService;->sendPackageChangedBroadcast(Ljava/lang/String;ZLjava/util/ArrayList;ILjava/lang/String;)V
@@ -25648,6 +27807,7 @@
 HSPLcom/android/server/pm/PackageManagerService;->setSystemAppHiddenUntilInstalled(Ljava/lang/String;Z)V
 HSPLcom/android/server/pm/PackageManagerService;->setSystemAppInstallState(Ljava/lang/String;ZI)Z
 HPLcom/android/server/pm/PackageManagerService;->setUpFsVerityIfPossible(Landroid/content/pm/parsing/AndroidPackage;)V
+HPLcom/android/server/pm/PackageManagerService;->setUpFsVerityIfPossible(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/PackageManagerService;->setUpInstantAppInstallerActivityLP(Landroid/content/pm/ActivityInfo;)V
 PLcom/android/server/pm/PackageManagerService;->setUpdateAvailable(Ljava/lang/String;Z)V
 HSPLcom/android/server/pm/PackageManagerService;->sharedLibExists(Ljava/lang/String;JLjava/util/Map;)Z
@@ -25656,9 +27816,12 @@
 PLcom/android/server/pm/PackageManagerService;->shouldKeepUninstalledPackageLPr(Ljava/lang/String;)Z
 PLcom/android/server/pm/PackageManagerService;->shutdown()V
 HPLcom/android/server/pm/PackageManagerService;->startIntentFilterVerifications(IZLandroid/content/pm/parsing/AndroidPackage;)V
+PLcom/android/server/pm/PackageManagerService;->startIntentFilterVerifications(IZLcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/PackageManagerService;->systemReady()V
 HPLcom/android/server/pm/PackageManagerService;->unsuspendForSuspendingPackage(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerService;->updateAllSharedLibrariesLocked(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Map;)Ljava/util/ArrayList;
+HSPLcom/android/server/pm/PackageManagerService;->updateAllSharedLibrariesLocked(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/util/Map;)Ljava/util/ArrayList;
+HSPLcom/android/server/pm/PackageManagerService;->updateAllSharedLibrariesLocked(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/Map;)Ljava/util/ArrayList;
 HPLcom/android/server/pm/PackageManagerService;->updateDefaultHomeNotLocked(I)Z
 PLcom/android/server/pm/PackageManagerService;->updateDefaultHomeNotLocked(Landroid/util/SparseBooleanArray;)V
 HSPLcom/android/server/pm/PackageManagerService;->updateFlags(II)I
@@ -25673,8 +27836,12 @@
 HSPLcom/android/server/pm/PackageManagerService;->updatePackagesIfNeeded()V
 HSPLcom/android/server/pm/PackageManagerService;->updateSequenceNumberLP(Lcom/android/server/pm/PackageSetting;[I)V
 HPLcom/android/server/pm/PackageManagerService;->updateSettingsInternalLI(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageManagerService$InstallArgs;[ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)V
+HPLcom/android/server/pm/PackageManagerService;->updateSettingsInternalLI(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageManagerService$InstallArgs;[ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)V
 PLcom/android/server/pm/PackageManagerService;->updateSettingsLI(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageManagerService$InstallArgs;[ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)V
+PLcom/android/server/pm/PackageManagerService;->updateSettingsLI(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageManagerService$InstallArgs;[ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)V
 HSPLcom/android/server/pm/PackageManagerService;->updateSharedLibrariesLocked(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Map;)V
+HSPLcom/android/server/pm/PackageManagerService;->updateSharedLibrariesLocked(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Ljava/util/Map;)V
+HSPLcom/android/server/pm/PackageManagerService;->updateSharedLibrariesLocked(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/Map;)V
 HSPLcom/android/server/pm/PackageManagerService;->userNeedsBadging(I)Z
 PLcom/android/server/pm/PackageManagerService;->verifyIntentFilter(IILjava/util/List;)V
 HPLcom/android/server/pm/PackageManagerService;->verifyIntentFiltersIfNeeded(IIZLjava/lang/String;ZLjava/util/List;)V
@@ -25689,6 +27856,7 @@
 HSPLcom/android/server/pm/PackageManagerServiceCompilerMapping;->isFilterAllowedForReason(ILjava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerServiceUtils$1;-><init>()V
 HSPLcom/android/server/pm/PackageManagerServiceUtils$1;->accept(Ljava/io/File;Ljava/lang/String;)Z
+HSPLcom/android/server/pm/PackageManagerServiceUtils;-><clinit>()V
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->applyPackageFilter(Ljava/util/function/Predicate;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/List;Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->checkISA(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
@@ -25701,27 +27869,44 @@
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->enforceSystemOrPhoneCaller(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->getCompressedFiles(Ljava/lang/String;)[Ljava/io/File;
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->getLastModifiedTime(Landroid/content/pm/parsing/AndroidPackage;)J
-PLcom/android/server/pm/PackageManagerServiceUtils;->getMinimalPackageInfo(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;)Landroid/content/pm/PackageInfoLite;
+HSPLcom/android/server/pm/PackageManagerServiceUtils;->getLastModifiedTime(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)J
+HPLcom/android/server/pm/PackageManagerServiceUtils;->getMinimalPackageInfo(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;)Landroid/content/pm/PackageInfoLite;
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->getPackageNamesForIntent(Landroid/content/Intent;I)Landroid/util/ArraySet;
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->getPackagesForDexopt(Ljava/util/Collection;Lcom/android/server/pm/PackageManagerService;)Ljava/util/List;
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->getPackagesForDexopt(Ljava/util/Collection;Lcom/android/server/pm/PackageManagerService;Z)Ljava/util/List;
 HPLcom/android/server/pm/PackageManagerServiceUtils;->getPermissionsState(Landroid/content/pm/PackageManagerInternal;Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/server/pm/permission/PermissionsState;
+HPLcom/android/server/pm/PackageManagerServiceUtils;->getPermissionsState(Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Lcom/android/server/pm/permission/PermissionsState;
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->getSettingsProblemFile()Ljava/io/File;
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->isApkVerificationForced(Lcom/android/server/pm/PackageSetting;)Z
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->isApkVerityEnabled()Z
 PLcom/android/server/pm/PackageManagerServiceUtils;->isDowngradePermitted(II)Z
+PLcom/android/server/pm/PackageManagerServiceUtils;->isDowngradePermitted(IZ)Z
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->isLegacyApkVerityEnabled()Z
 HPLcom/android/server/pm/PackageManagerServiceUtils;->isUnusedSinceTimeInMillis(JJJLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;JJ)Z
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$1(Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$1(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$2(Landroid/util/ArraySet;Landroid/content/pm/parsing/AndroidPackage;)Z
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$2(Landroid/util/ArraySet;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$2(Lcom/android/server/pm/PackageSetting;)Z
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$3(Landroid/util/ArraySet;Lcom/android/server/pm/PackageSetting;)Z
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$3(Lcom/android/server/pm/dex/DexManager;Landroid/content/pm/parsing/AndroidPackage;)Z
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$3(Lcom/android/server/pm/dex/DexManager;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$4(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)I
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$4(Lcom/android/server/pm/dex/DexManager;Lcom/android/server/pm/PackageSetting;)Z
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$4(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)I
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$5(JLandroid/content/pm/parsing/AndroidPackage;)Z
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$5(JLcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$5(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;)I
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$6(JLcom/android/server/pm/PackageSetting;)Z
 PLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$7(Landroid/content/pm/parsing/AndroidPackage;)Z
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$sortPackagesByUsageDate$0(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)I
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$sortPackagesByUsageDate$0(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)I
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$sortPackagesByUsageDate$1(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;)I
+PLcom/android/server/pm/PackageManagerServiceUtils;->lambda$static$0(Lcom/android/server/pm/PackageSetting;)Z
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->logCriticalInfo(ILjava/lang/String;)V
-PLcom/android/server/pm/PackageManagerServiceUtils;->makeDirRecursive(Ljava/io/File;I)V
+HPLcom/android/server/pm/PackageManagerServiceUtils;->makeDirRecursive(Ljava/io/File;I)V
 HPLcom/android/server/pm/PackageManagerServiceUtils;->packagesToString(Ljava/util/Collection;)Ljava/lang/String;
+HPLcom/android/server/pm/PackageManagerServiceUtils;->packagesToString(Ljava/util/List;)Ljava/lang/String;
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->sortPackagesByUsageDate(Ljava/util/List;Lcom/android/server/pm/PackageManagerService;)V
 HSPLcom/android/server/pm/PackageManagerServiceUtils;->verifySignatures(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Landroid/content/pm/PackageParser$SigningDetails;ZZ)Z
 PLcom/android/server/pm/PackageManagerShellCommand$2;-><init>(Lcom/android/server/pm/PackageManagerShellCommand;)V
@@ -25751,6 +27936,7 @@
 HSPLcom/android/server/pm/PackageManagerShellCommand;->onCommand(Ljava/lang/String;)I
 PLcom/android/server/pm/PackageManagerShellCommand;->runClear()I
 PLcom/android/server/pm/PackageManagerShellCommand;->runCompile()I
+PLcom/android/server/pm/PackageManagerShellCommand;->runGrantRevokePermission(Z)I
 PLcom/android/server/pm/PackageManagerShellCommand;->runInstall()I
 PLcom/android/server/pm/PackageManagerShellCommand;->runInstallCommit()I
 PLcom/android/server/pm/PackageManagerShellCommand;->runInstallCreate()I
@@ -25764,13 +27950,18 @@
 HSPLcom/android/server/pm/PackageManagerShellCommand;->translateUserId(IILjava/lang/String;)I
 HSPLcom/android/server/pm/PackageSetting;-><init>(Lcom/android/server/pm/PackageSetting;)V
 HSPLcom/android/server/pm/PackageSetting;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JIII[Ljava/lang/String;[J)V
+HSPLcom/android/server/pm/PackageSetting;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JIII[Ljava/lang/String;[JLjava/util/Map;)V
 HSPLcom/android/server/pm/PackageSetting;->areInstallPermissionsFixed()Z
+HSPLcom/android/server/pm/PackageSetting;->copyMimeGroups(Ljava/util/Map;)V
 HSPLcom/android/server/pm/PackageSetting;->doCopy(Lcom/android/server/pm/PackageSetting;)V
 HPLcom/android/server/pm/PackageSetting;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JLjava/util/List;)V
 HPLcom/android/server/pm/PackageSetting;->getAppId()I
 HSPLcom/android/server/pm/PackageSetting;->getPermissionsState()Lcom/android/server/pm/permission/PermissionsState;
-PLcom/android/server/pm/PackageSetting;->getSharedUser()Lcom/android/server/pm/SharedUserSetting;
+HSPLcom/android/server/pm/PackageSetting;->getPkgState()Lcom/android/server/pm/pkg/PackageStateUnserialized;
+HSPLcom/android/server/pm/PackageSetting;->getSharedUser()Lcom/android/server/pm/SharedUserSetting;
 HSPLcom/android/server/pm/PackageSetting;->getSharedUserId()I
+PLcom/android/server/pm/PackageSetting;->isMatch(I)Z
+PLcom/android/server/pm/PackageSetting;->isOem()Z
 HSPLcom/android/server/pm/PackageSetting;->isPrivileged()Z
 HSPLcom/android/server/pm/PackageSetting;->isSharedUser()Z
 HSPLcom/android/server/pm/PackageSetting;->isSystem()Z
@@ -25779,11 +27970,12 @@
 HSPLcom/android/server/pm/PackageSetting;->setInstallPermissionsFixed(Z)V
 HSPLcom/android/server/pm/PackageSetting;->toString()Ljava/lang/String;
 HSPLcom/android/server/pm/PackageSetting;->updateFrom(Lcom/android/server/pm/PackageSetting;)V
+HSPLcom/android/server/pm/PackageSetting;->updateMimeGroups(Ljava/util/Set;)V
 HSPLcom/android/server/pm/PackageSettingBase;-><clinit>()V
 HSPLcom/android/server/pm/PackageSettingBase;-><init>(Lcom/android/server/pm/PackageSettingBase;Ljava/lang/String;)V
 HSPLcom/android/server/pm/PackageSettingBase;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JII[Ljava/lang/String;[J)V
 HPLcom/android/server/pm/PackageSettingBase;->addOrUpdateSuspension(Ljava/lang/String;Landroid/content/pm/SuspendDialogInfo;Landroid/os/PersistableBundle;Landroid/os/PersistableBundle;I)V
-PLcom/android/server/pm/PackageSettingBase;->clearDomainVerificationStatusForUser(I)V
+HSPLcom/android/server/pm/PackageSettingBase;->clearDomainVerificationStatusForUser(I)V
 HPLcom/android/server/pm/PackageSettingBase;->disableComponentLPw(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/PackageSettingBase;->doCopy(Lcom/android/server/pm/PackageSettingBase;)V
 HSPLcom/android/server/pm/PackageSettingBase;->enableComponentLPw(Ljava/lang/String;I)Z
@@ -25857,31 +28049,36 @@
 PLcom/android/server/pm/PackageVerificationResponse;-><init>(II)V
 PLcom/android/server/pm/PackageVerificationState;-><init>(ILcom/android/server/pm/PackageManagerService$InstallParams;)V
 PLcom/android/server/pm/PackageVerificationState;-><init>(Lcom/android/server/pm/PackageManagerService$InstallParams;)V
-PLcom/android/server/pm/PackageVerificationState;->areAllVerificationsComplete()Z
+HPLcom/android/server/pm/PackageVerificationState;->areAllVerificationsComplete()Z
 PLcom/android/server/pm/PackageVerificationState;->extendTimeout()V
 PLcom/android/server/pm/PackageVerificationState;->getInstallParams()Lcom/android/server/pm/PackageManagerService$InstallParams;
 PLcom/android/server/pm/PackageVerificationState;->isInstallAllowed()Z
 PLcom/android/server/pm/PackageVerificationState;->isIntegrityVerificationComplete()Z
-PLcom/android/server/pm/PackageVerificationState;->isVerificationComplete()Z
+HPLcom/android/server/pm/PackageVerificationState;->isVerificationComplete()Z
 PLcom/android/server/pm/PackageVerificationState;->setIntegrityVerificationResult(I)V
 PLcom/android/server/pm/PackageVerificationState;->setRequiredVerifierUid(I)V
 PLcom/android/server/pm/PackageVerificationState;->setVerifierResponse(II)Z
 PLcom/android/server/pm/PackageVerificationState;->timeoutExtended()Z
 HSPLcom/android/server/pm/ParallelPackageParser$ParseResult;-><init>()V
 HSPLcom/android/server/pm/ParallelPackageParser;-><init>(Landroid/content/pm/PackageParser;Ljava/util/concurrent/ExecutorService;)V
+HSPLcom/android/server/pm/ParallelPackageParser;-><init>(Lcom/android/server/pm/parsing/PackageParser2;Ljava/util/concurrent/ExecutorService;)V
 HSPLcom/android/server/pm/ParallelPackageParser;-><init>([Ljava/lang/String;ZLandroid/util/DisplayMetrics;Ljava/io/File;Landroid/content/pm/PackageParser$Callback;)V
 HSPLcom/android/server/pm/ParallelPackageParser;->close()V
 HSPLcom/android/server/pm/ParallelPackageParser;->lambda$submit$0$ParallelPackageParser(Ljava/io/File;I)V
 HSPLcom/android/server/pm/ParallelPackageParser;->makeExecutorService()Ljava/util/concurrent/ExecutorService;
 HSPLcom/android/server/pm/ParallelPackageParser;->parsePackage(Landroid/content/pm/PackageParser;Ljava/io/File;I)Landroid/content/pm/parsing/ParsedPackage;
 HSPLcom/android/server/pm/ParallelPackageParser;->parsePackage(Ljava/io/File;I)Landroid/content/pm/parsing/ParsedPackage;
+HSPLcom/android/server/pm/ParallelPackageParser;->parsePackage(Ljava/io/File;I)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
 HSPLcom/android/server/pm/ParallelPackageParser;->submit(Ljava/io/File;I)V
 HSPLcom/android/server/pm/ParallelPackageParser;->take()Lcom/android/server/pm/ParallelPackageParser$ParseResult;
 HSPLcom/android/server/pm/PersistentPreferredActivity;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V
 HSPLcom/android/server/pm/PersistentPreferredActivity;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLcom/android/server/pm/PersistentPreferredIntentResolver;-><init>()V
+HSPLcom/android/server/pm/PersistentPreferredIntentResolver;->getIntentFilter(Lcom/android/server/pm/PersistentPreferredActivity;)Landroid/content/IntentFilter;
+HSPLcom/android/server/pm/PersistentPreferredIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
 HSPLcom/android/server/pm/PersistentPreferredIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
 HSPLcom/android/server/pm/PersistentPreferredIntentResolver;->newArray(I)[Lcom/android/server/pm/PersistentPreferredActivity;
+HSPLcom/android/server/pm/PersistentPreferredIntentResolver;->newArray(I)[Ljava/lang/Object;
 HSPLcom/android/server/pm/Policy$PolicyBuilder;-><init>()V
 HSPLcom/android/server/pm/Policy$PolicyBuilder;->access$000(Lcom/android/server/pm/Policy$PolicyBuilder;)Ljava/lang/String;
 HSPLcom/android/server/pm/Policy$PolicyBuilder;->access$100(Lcom/android/server/pm/Policy$PolicyBuilder;)Ljava/util/Set;
@@ -25896,6 +28093,7 @@
 HSPLcom/android/server/pm/Policy;->access$500(Lcom/android/server/pm/Policy;)Ljava/lang/String;
 HSPLcom/android/server/pm/Policy;->access$600(Lcom/android/server/pm/Policy;)Ljava/util/Map;
 HSPLcom/android/server/pm/Policy;->getMatchedSeInfo(Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
+HSPLcom/android/server/pm/Policy;->getMatchedSeInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/lang/String;
 HSPLcom/android/server/pm/Policy;->getSignatures()Ljava/util/Set;
 HSPLcom/android/server/pm/Policy;->hasInnerPackages()Z
 HSPLcom/android/server/pm/PolicyComparator;-><init>()V
@@ -25906,7 +28104,7 @@
 HSPLcom/android/server/pm/PreferredActivity;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V
 HSPLcom/android/server/pm/PreferredActivity;->onReadTag(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;)Z
 HSPLcom/android/server/pm/PreferredActivity;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;Z)V
-PLcom/android/server/pm/PreferredComponent;-><init>(Lcom/android/server/pm/PreferredComponent$Callbacks;I[Landroid/content/ComponentName;Landroid/content/ComponentName;Z)V
+HPLcom/android/server/pm/PreferredComponent;-><init>(Lcom/android/server/pm/PreferredComponent$Callbacks;I[Landroid/content/ComponentName;Landroid/content/ComponentName;Z)V
 HSPLcom/android/server/pm/PreferredComponent;-><init>(Lcom/android/server/pm/PreferredComponent$Callbacks;Lorg/xmlpull/v1/XmlPullParser;)V
 PLcom/android/server/pm/PreferredComponent;->discardObsoleteComponents(Ljava/util/List;)[Landroid/content/ComponentName;
 HPLcom/android/server/pm/PreferredComponent;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;)V
@@ -25918,10 +28116,15 @@
 HSPLcom/android/server/pm/PreferredIntentResolver;-><init>()V
 PLcom/android/server/pm/PreferredIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/content/IntentFilter;)V
 PLcom/android/server/pm/PreferredIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/pm/PreferredActivity;)V
+PLcom/android/server/pm/PreferredIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;)V
+HSPLcom/android/server/pm/PreferredIntentResolver;->getIntentFilter(Lcom/android/server/pm/PreferredActivity;)Landroid/content/IntentFilter;
+HSPLcom/android/server/pm/PreferredIntentResolver;->getIntentFilter(Ljava/lang/Object;)Landroid/content/IntentFilter;
 PLcom/android/server/pm/PreferredIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
 PLcom/android/server/pm/PreferredIntentResolver;->isPackageForFilter(Ljava/lang/String;Lcom/android/server/pm/PreferredActivity;)Z
+PLcom/android/server/pm/PreferredIntentResolver;->isPackageForFilter(Ljava/lang/String;Ljava/lang/Object;)Z
 HSPLcom/android/server/pm/PreferredIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
 HSPLcom/android/server/pm/PreferredIntentResolver;->newArray(I)[Lcom/android/server/pm/PreferredActivity;
+HSPLcom/android/server/pm/PreferredIntentResolver;->newArray(I)[Ljava/lang/Object;
 HSPLcom/android/server/pm/ProcessLoggingHandler;-><init>()V
 HSPLcom/android/server/pm/ProcessLoggingHandler;->computeHashOfApkFile(Ljava/lang/String;)[B
 HSPLcom/android/server/pm/ProcessLoggingHandler;->computeStringHashOfApk(Ljava/lang/String;)Ljava/lang/String;
@@ -25938,7 +28141,10 @@
 HSPLcom/android/server/pm/SELinuxMMAC;-><clinit>()V
 HSPLcom/android/server/pm/SELinuxMMAC;->getSeInfo(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/compat/PlatformCompat;)Ljava/lang/String;
 HSPLcom/android/server/pm/SELinuxMMAC;->getSeInfo(Landroid/content/pm/parsing/AndroidPackage;ZI)Ljava/lang/String;
+HSPLcom/android/server/pm/SELinuxMMAC;->getSeInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/compat/PlatformCompat;)Ljava/lang/String;
+HSPLcom/android/server/pm/SELinuxMMAC;->getSeInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;ZI)Ljava/lang/String;
 HSPLcom/android/server/pm/SELinuxMMAC;->getTargetSdkVersionForSeInfo(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/compat/PlatformCompat;)I
+HSPLcom/android/server/pm/SELinuxMMAC;->getTargetSdkVersionForSeInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/compat/PlatformCompat;)I
 HSPLcom/android/server/pm/SELinuxMMAC;->readInstallPolicy()Z
 HSPLcom/android/server/pm/SELinuxMMAC;->readSeinfo(Lorg/xmlpull/v1/XmlPullParser;)V
 HSPLcom/android/server/pm/SELinuxMMAC;->readSignerOrThrow(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/pm/Policy;
@@ -25957,8 +28163,10 @@
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->access$100(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;I)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->access$300(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;I)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->areDefaultRuntimePermissionsGrantedLPr(I)Z
+HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getExtendedFingerprint(J)Ljava/lang/String;
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getPermissionsFromPermissionsState(Lcom/android/server/pm/permission/PermissionsState;I)Ljava/util/List;
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getVersionLPr(I)I
+PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->isPermissionUpgradeNeeded(I)Z
 HPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->onUserRemovedLPw(I)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->parsePermissionsLPr(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/pm/permission/PermissionsState;I)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->parseRuntimePermissionsLPr(Lorg/xmlpull/v1/XmlPullParser;I)V
@@ -25966,8 +28174,10 @@
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->readPermissionsStateLpr(Ljava/util/List;Lcom/android/server/pm/permission/PermissionsState;I)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->readStateForUserSyncLPr(I)V
 HPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->revokeRuntimePermissionsAndClearFlags(Lcom/android/server/pm/SettingBase;I)V
+HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->setPermissionControllerVersion(J)V
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->setRuntimePermissionsFingerPrintLPr(Ljava/lang/String;I)V
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->setVersionLPr(II)V
+PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->updateRuntimePermissionsFingerprintLPr(I)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writePermissions(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/List;)V
 HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writePermissionsForUserAsyncLPr(I)V
 PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writePermissionsForUserSyncLPr(I)V
@@ -25979,12 +28189,15 @@
 HSPLcom/android/server/pm/Settings;->acquireAndRegisterNewAppIdLPw(Lcom/android/server/pm/SettingBase;)I
 HSPLcom/android/server/pm/Settings;->addInstallerPackageNames(Lcom/android/server/pm/InstallSource;)V
 HSPLcom/android/server/pm/Settings;->addPackageLPw(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IJII[Ljava/lang/String;[J)Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/Settings;->addPackageLPw(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IJII[Ljava/lang/String;[JLjava/util/Map;)Lcom/android/server/pm/PackageSetting;
 HSPLcom/android/server/pm/Settings;->addPackageSettingLPw(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;)V
 HSPLcom/android/server/pm/Settings;->addSharedUserLPw(Ljava/lang/String;III)Lcom/android/server/pm/SharedUserSetting;
 HPLcom/android/server/pm/Settings;->applyDefaultPreferredAppsLPw(I)V
 HSPLcom/android/server/pm/Settings;->areDefaultRuntimePermissionsGrantedLPr(I)Z
 PLcom/android/server/pm/Settings;->createIntentFilterVerificationIfNeededLPw(Ljava/lang/String;Landroid/util/ArraySet;)Landroid/content/pm/IntentFilterVerificationInfo;
+HSPLcom/android/server/pm/Settings;->createMimeGroups(Ljava/util/Set;)Ljava/util/Map;
 HSPLcom/android/server/pm/Settings;->createNewSetting(Ljava/lang/String;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;Lcom/android/server/pm/SharedUserSetting;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JIILandroid/os/UserHandle;ZZZLcom/android/server/pm/UserManagerService;[Ljava/lang/String;[J)Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/Settings;->createNewSetting(Ljava/lang/String;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;Lcom/android/server/pm/SharedUserSetting;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JIILandroid/os/UserHandle;ZZZLcom/android/server/pm/UserManagerService;[Ljava/lang/String;[JLjava/util/Set;)Lcom/android/server/pm/PackageSetting;
 HPLcom/android/server/pm/Settings;->createNewUserLI(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/Installer;ILjava/util/Set;[Ljava/lang/String;)V
 HSPLcom/android/server/pm/Settings;->disableSystemPackageLPw(Ljava/lang/String;Z)Z
 HPLcom/android/server/pm/Settings;->dumpGidsLPr(Ljava/io/PrintWriter;Ljava/lang/String;[I)V
@@ -25998,6 +28211,7 @@
 HPLcom/android/server/pm/Settings;->dumpSharedUsersLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V
 PLcom/android/server/pm/Settings;->dumpSharedUsersProto(Landroid/util/proto/ProtoOutputStream;)V
 HPLcom/android/server/pm/Settings;->dumpSplitNames(Ljava/io/PrintWriter;Landroid/content/pm/parsing/AndroidPackage;)V
+HPLcom/android/server/pm/Settings;->dumpSplitNames(Ljava/io/PrintWriter;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HPLcom/android/server/pm/Settings;->dumpVersionLPr(Lcom/android/internal/util/IndentingPrintWriter;)V
 HSPLcom/android/server/pm/Settings;->editCrossProfileIntentResolverLPw(I)Lcom/android/server/pm/CrossProfileIntentResolver;
 HSPLcom/android/server/pm/Settings;->editPersistentPreferredActivitiesLPw(I)Lcom/android/server/pm/PersistentPreferredIntentResolver;
@@ -26027,11 +28241,16 @@
 HSPLcom/android/server/pm/Settings;->getUsers(Lcom/android/server/pm/UserManagerService;Z)Ljava/util/List;
 HSPLcom/android/server/pm/Settings;->getVolumePackagesLPr(Ljava/lang/String;)Ljava/util/List;
 HSPLcom/android/server/pm/Settings;->insertPackageSettingLPw(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/Settings;->insertPackageSettingLPw(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
+HSPLcom/android/server/pm/Settings;->invalidatePackageCache()V
 PLcom/android/server/pm/Settings;->isAdbInstallDisallowed(Lcom/android/server/pm/UserManagerService;I)Z
 HSPLcom/android/server/pm/Settings;->isDisabledSystemPackageLPr(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/Settings;->isEnabledAndMatchLPr(Landroid/content/pm/ComponentInfo;II)Z
 HSPLcom/android/server/pm/Settings;->isEnabledAndMatchLPr(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;II)Z
+HSPLcom/android/server/pm/Settings;->isEnabledAndMatchLPr(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;II)Z
+HSPLcom/android/server/pm/Settings;->isEnabledAndMatchLPr(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/component/ParsedMainComponent;II)Z
 HSPLcom/android/server/pm/Settings;->isOrphaned(Ljava/lang/String;)Z
+PLcom/android/server/pm/Settings;->isPermissionUpgradeNeededLPr(I)Z
 HPLcom/android/server/pm/Settings;->permissionFlagsToString(Ljava/lang/String;I)Ljava/lang/String;
 HPLcom/android/server/pm/Settings;->printFlags(Ljava/io/PrintWriter;I[Ljava/lang/Object;)V
 HSPLcom/android/server/pm/Settings;->pruneSharedUsersLPw()V
@@ -26052,24 +28271,27 @@
 HSPLcom/android/server/pm/Settings;->readUsesStaticLibLPw(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/pm/PackageSetting;)V
 HSPLcom/android/server/pm/Settings;->registerAppIdLPw(Lcom/android/server/pm/PackageSetting;)Z
 HSPLcom/android/server/pm/Settings;->registerExistingAppIdLPw(ILcom/android/server/pm/SettingBase;Ljava/lang/Object;)Z
-PLcom/android/server/pm/Settings;->removeAppIdLPw(I)V
+HSPLcom/android/server/pm/Settings;->removeAppIdLPw(I)V
 PLcom/android/server/pm/Settings;->removeCrossProfileIntentFiltersLPw(I)V
 PLcom/android/server/pm/Settings;->removeDefaultBrowserPackageNameLPw(I)Ljava/lang/String;
 PLcom/android/server/pm/Settings;->removeDisabledSystemPackageLPw(Ljava/lang/String;)V
-PLcom/android/server/pm/Settings;->removeInstallerPackageStatus(Ljava/lang/String;)V
-PLcom/android/server/pm/Settings;->removeIntentFilterVerificationLPw(Ljava/lang/String;I)Z
-PLcom/android/server/pm/Settings;->removeIntentFilterVerificationLPw(Ljava/lang/String;[I)Z
-PLcom/android/server/pm/Settings;->removePackageLPw(Ljava/lang/String;)I
+HSPLcom/android/server/pm/Settings;->removeInstallerPackageStatus(Ljava/lang/String;)V
+HSPLcom/android/server/pm/Settings;->removeIntentFilterVerificationLPw(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/Settings;->removeIntentFilterVerificationLPw(Ljava/lang/String;[I)Z
+HSPLcom/android/server/pm/Settings;->removePackageLPw(Ljava/lang/String;)I
 HPLcom/android/server/pm/Settings;->removeUserLPw(I)V
 HPLcom/android/server/pm/Settings;->setBlockUninstallLPw(ILjava/lang/String;Z)V
 PLcom/android/server/pm/Settings;->setDefaultRuntimePermissionsVersionLPr(II)V
-PLcom/android/server/pm/Settings;->setFirstAvailableUid(I)V
+HSPLcom/android/server/pm/Settings;->setFirstAvailableUid(I)V
 PLcom/android/server/pm/Settings;->setInstallerPackageName(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/pm/Settings;->setPackageStoppedStateLPw(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;ZZII)Z
+HSPLcom/android/server/pm/Settings;->setPermissionControllerVersion(J)V
 PLcom/android/server/pm/Settings;->setRuntimePermissionsFingerPrintLPr(Ljava/lang/String;I)V
 PLcom/android/server/pm/Settings;->updateIntentFilterVerificationStatusLPw(Ljava/lang/String;II)Z
 HSPLcom/android/server/pm/Settings;->updatePackageSetting(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILcom/android/server/pm/UserManagerService;[Ljava/lang/String;[J)V
-PLcom/android/server/pm/Settings;->updateSharedUserPermsLPw(Lcom/android/server/pm/PackageSetting;I)I
+HSPLcom/android/server/pm/Settings;->updatePackageSetting(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILcom/android/server/pm/UserManagerService;[Ljava/lang/String;[JLjava/util/Set;)V
+PLcom/android/server/pm/Settings;->updateRuntimePermissionsFingerprintLPr(I)V
+HPLcom/android/server/pm/Settings;->updateSharedUserPermsLPw(Lcom/android/server/pm/PackageSetting;I)I
 PLcom/android/server/pm/Settings;->wasPackageEverLaunchedLPr(Ljava/lang/String;I)Z
 HPLcom/android/server/pm/Settings;->writeAllDomainVerificationsLPr(Lorg/xmlpull/v1/XmlSerializer;I)V
 HSPLcom/android/server/pm/Settings;->writeAllRuntimePermissionsLPr()V
@@ -26086,6 +28308,7 @@
 PLcom/android/server/pm/Settings;->writeKernelRemoveUserLPr(I)V
 HSPLcom/android/server/pm/Settings;->writeKeySetAliasesLPr(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/PackageKeySetData;)V
 HSPLcom/android/server/pm/Settings;->writeLPr()V
+HSPLcom/android/server/pm/Settings;->writeMimeGroupLPr(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/Map;)V
 HSPLcom/android/server/pm/Settings;->writePackageLPr(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/PackageSetting;)V
 HSPLcom/android/server/pm/Settings;->writePackageListLPr()V
 HSPLcom/android/server/pm/Settings;->writePackageListLPr(I)V
@@ -26102,11 +28325,12 @@
 HPLcom/android/server/pm/ShareTargetInfo$TargetData;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/pm/ShareTargetInfo;-><init>([Lcom/android/server/pm/ShareTargetInfo$TargetData;Ljava/lang/String;[Ljava/lang/String;)V
 HPLcom/android/server/pm/ShareTargetInfo;->loadFromXml(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/pm/ShareTargetInfo;
-PLcom/android/server/pm/ShareTargetInfo;->parseTargetData(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/pm/ShareTargetInfo$TargetData;
+HPLcom/android/server/pm/ShareTargetInfo;->parseTargetData(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/pm/ShareTargetInfo$TargetData;
 HPLcom/android/server/pm/ShareTargetInfo;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
 HSPLcom/android/server/pm/SharedUserSetting;-><init>(Ljava/lang/String;II)V
 HSPLcom/android/server/pm/SharedUserSetting;->addPackage(Lcom/android/server/pm/PackageSetting;)V
 HSPLcom/android/server/pm/SharedUserSetting;->addProcesses(Landroid/util/ArrayMap;)V
+HSPLcom/android/server/pm/SharedUserSetting;->addProcesses(Ljava/util/Map;)V
 HPLcom/android/server/pm/SharedUserSetting;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLcom/android/server/pm/SharedUserSetting;->fixSeInfoLocked()V
 HSPLcom/android/server/pm/SharedUserSetting;->getPackages()Ljava/util/List;
@@ -26157,6 +28381,7 @@
 HPLcom/android/server/pm/ShortcutPackage;->areAllActivitiesStillEnabled()Z
 PLcom/android/server/pm/ShortcutPackage;->canRestoreAnyVersion()Z
 HPLcom/android/server/pm/ShortcutPackage;->clearAllImplicitRanks()V
+HPLcom/android/server/pm/ShortcutPackage;->deleteAllDynamicShortcuts(Z)Ljava/util/List;
 HPLcom/android/server/pm/ShortcutPackage;->deleteAllDynamicShortcuts(Z)V
 PLcom/android/server/pm/ShortcutPackage;->deleteDynamicWithId(Ljava/lang/String;Z)Z
 PLcom/android/server/pm/ShortcutPackage;->deleteOrDisableWithId(Ljava/lang/String;ZZZI)Landroid/content/pm/ShortcutInfo;
@@ -26195,11 +28420,12 @@
 HPLcom/android/server/pm/ShortcutPackage;->publishManifestShortcuts(Ljava/util/List;)Z
 HPLcom/android/server/pm/ShortcutPackage;->pushOutExcessShortcuts()Z
 HPLcom/android/server/pm/ShortcutPackage;->refreshPinnedFlags()V
+HPLcom/android/server/pm/ShortcutPackage;->removeOrphans()Ljava/util/List;
 HPLcom/android/server/pm/ShortcutPackage;->removeOrphans()V
 HPLcom/android/server/pm/ShortcutPackage;->rescanPackageIfNeeded(ZZ)Z
-PLcom/android/server/pm/ShortcutPackage;->resetRateLimiting()V
+HPLcom/android/server/pm/ShortcutPackage;->resetRateLimiting()V
 PLcom/android/server/pm/ShortcutPackage;->resetRateLimitingForCommandLineNoSaving()V
-PLcom/android/server/pm/ShortcutPackage;->resolveResourceStrings()V
+HPLcom/android/server/pm/ShortcutPackage;->resolveResourceStrings()V
 HPLcom/android/server/pm/ShortcutPackage;->saveShortcut(Lorg/xmlpull/v1/XmlSerializer;Landroid/content/pm/ShortcutInfo;ZZ)V
 HPLcom/android/server/pm/ShortcutPackage;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;Z)V
 HPLcom/android/server/pm/ShortcutPackage;->sortShortcutsToActivities()Landroid/util/ArrayMap;
@@ -26207,7 +28433,8 @@
 HPLcom/android/server/pm/ShortcutPackageInfo;-><init>(JJLjava/util/ArrayList;Z)V
 PLcom/android/server/pm/ShortcutPackageInfo;->canRestoreTo(Lcom/android/server/pm/ShortcutService;Landroid/content/pm/PackageInfo;Z)I
 HPLcom/android/server/pm/ShortcutPackageInfo;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
-PLcom/android/server/pm/ShortcutPackageInfo;->getLastUpdateTime()J
+PLcom/android/server/pm/ShortcutPackageInfo;->getBackupSourceVersionCode()J
+HPLcom/android/server/pm/ShortcutPackageInfo;->getLastUpdateTime()J
 HPLcom/android/server/pm/ShortcutPackageInfo;->getVersionCode()J
 PLcom/android/server/pm/ShortcutPackageInfo;->hasSignatures()Z
 HPLcom/android/server/pm/ShortcutPackageInfo;->isBackupAllowed()Z
@@ -26223,7 +28450,7 @@
 HPLcom/android/server/pm/ShortcutPackageItem;->getPackageInfo()Lcom/android/server/pm/ShortcutPackageInfo;
 HPLcom/android/server/pm/ShortcutPackageItem;->getPackageName()Ljava/lang/String;
 HPLcom/android/server/pm/ShortcutPackageItem;->getPackageUserId()I
-PLcom/android/server/pm/ShortcutPackageItem;->getUser()Lcom/android/server/pm/ShortcutUser;
+HPLcom/android/server/pm/ShortcutPackageItem;->getUser()Lcom/android/server/pm/ShortcutUser;
 HPLcom/android/server/pm/ShortcutPackageItem;->refreshPackageSignatureAndSave()V
 PLcom/android/server/pm/ShortcutPackageItem;->replaceUser(Lcom/android/server/pm/ShortcutUser;)V
 HPLcom/android/server/pm/ShortcutParser;->createShortcutFromManifest(Lcom/android/server/pm/ShortcutService;ILjava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;IIIIIZ)Landroid/content/pm/ShortcutInfo;
@@ -26288,6 +28515,7 @@
 HSPLcom/android/server/pm/ShortcutService$LocalService;-><init>(Lcom/android/server/pm/ShortcutService;)V
 HSPLcom/android/server/pm/ShortcutService$LocalService;-><init>(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutService$1;)V
 HSPLcom/android/server/pm/ShortcutService$LocalService;->addListener(Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener;)V
+HSPLcom/android/server/pm/ShortcutService$LocalService;->addShortcutChangeCallback(Landroid/content/pm/LauncherApps$ShortcutChangeCallback;)V
 PLcom/android/server/pm/ShortcutService$LocalService;->createShortcutIntents(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;III)[Landroid/content/Intent;
 HPLcom/android/server/pm/ShortcutService$LocalService;->getShortcutIconFd(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
 HPLcom/android/server/pm/ShortcutService$LocalService;->getShortcutInfoLocked(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Landroid/content/pm/ShortcutInfo;
@@ -26310,7 +28538,7 @@
 HSPLcom/android/server/pm/ShortcutService;-><clinit>()V
 HSPLcom/android/server/pm/ShortcutService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/pm/ShortcutService;-><init>(Landroid/content/Context;Landroid/os/Looper;Z)V
-PLcom/android/server/pm/ShortcutService;->access$000(Landroid/content/pm/PackageInfo;)Z
+HPLcom/android/server/pm/ShortcutService;->access$000(Landroid/content/pm/PackageInfo;)Z
 PLcom/android/server/pm/ShortcutService;->access$1000(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;I)V
 PLcom/android/server/pm/ShortcutService;->access$1100(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;I)V
 PLcom/android/server/pm/ShortcutService;->access$1200(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;I)V
@@ -26318,7 +28546,10 @@
 HPLcom/android/server/pm/ShortcutService;->access$300(Lcom/android/server/pm/ShortcutService;Ljava/util/List;)Ljava/util/List;
 HSPLcom/android/server/pm/ShortcutService;->access$400(Lcom/android/server/pm/ShortcutService;)Ljava/util/ArrayList;
 PLcom/android/server/pm/ShortcutService;->access$500(Lcom/android/server/pm/ShortcutService;)Lcom/android/server/pm/ShortcutBitmapSaver;
+HSPLcom/android/server/pm/ShortcutService;->access$500(Lcom/android/server/pm/ShortcutService;)Ljava/util/ArrayList;
+PLcom/android/server/pm/ShortcutService;->access$600(Lcom/android/server/pm/ShortcutService;)Lcom/android/server/pm/ShortcutBitmapSaver;
 HSPLcom/android/server/pm/ShortcutService;->access$700(Lcom/android/server/pm/ShortcutService;)Ljava/util/concurrent/atomic/AtomicBoolean;
+HSPLcom/android/server/pm/ShortcutService;->access$800(Lcom/android/server/pm/ShortcutService;)Ljava/util/concurrent/atomic/AtomicBoolean;
 PLcom/android/server/pm/ShortcutService;->access$800(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;I)V
 PLcom/android/server/pm/ShortcutService;->access$900(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;I)V
 HPLcom/android/server/pm/ShortcutService;->addDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
@@ -26370,7 +28601,7 @@
 HPLcom/android/server/pm/ShortcutService;->getPackageInfo(Ljava/lang/String;IZ)Landroid/content/pm/PackageInfo;
 PLcom/android/server/pm/ShortcutService;->getPackageInfoWithSignatures(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
 HPLcom/android/server/pm/ShortcutService;->getPackageShortcutsForPublisherLocked(Ljava/lang/String;I)Lcom/android/server/pm/ShortcutPackage;
-PLcom/android/server/pm/ShortcutService;->getPackageShortcutsLocked(Ljava/lang/String;I)Lcom/android/server/pm/ShortcutPackage;
+HPLcom/android/server/pm/ShortcutService;->getPackageShortcutsLocked(Ljava/lang/String;I)Lcom/android/server/pm/ShortcutPackage;
 PLcom/android/server/pm/ShortcutService;->getParentOrSelfUserId(I)I
 HPLcom/android/server/pm/ShortcutService;->getPinnedShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/pm/ShortcutService;->getRemainingCallCount(Ljava/lang/String;I)I
@@ -26388,7 +28619,7 @@
 HPLcom/android/server/pm/ShortcutService;->handlePackageChanged(Ljava/lang/String;I)V
 PLcom/android/server/pm/ShortcutService;->handlePackageDataCleared(Ljava/lang/String;I)V
 PLcom/android/server/pm/ShortcutService;->handlePackageRemoved(Ljava/lang/String;I)V
-PLcom/android/server/pm/ShortcutService;->handlePackageUpdateFinished(Ljava/lang/String;I)V
+HPLcom/android/server/pm/ShortcutService;->handlePackageUpdateFinished(Ljava/lang/String;I)V
 PLcom/android/server/pm/ShortcutService;->handleStopUser(I)V
 PLcom/android/server/pm/ShortcutService;->handleUnlockUser(I)V
 HPLcom/android/server/pm/ShortcutService;->hasShareTargets(Ljava/lang/String;Ljava/lang/String;I)Z
@@ -26449,25 +28680,37 @@
 HSPLcom/android/server/pm/ShortcutService;->isUserUnlockedL(I)Z
 PLcom/android/server/pm/ShortcutService;->lambda$checkPackageChanges$7$ShortcutService(Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutPackageItem;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$checkPackageChanges$8$ShortcutService(Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutPackageItem;)V
+HPLcom/android/server/pm/ShortcutService;->lambda$checkPackageChanges$9$ShortcutService(Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutPackageItem;)V
 PLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageForAllLoadedUsers$3$ShortcutService(Ljava/lang/String;IZLcom/android/server/pm/ShortcutUser;)V
 PLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageForAllLoadedUsers$4$ShortcutService(Ljava/lang/String;IZLcom/android/server/pm/ShortcutUser;)V
+PLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageForAllLoadedUsers$5$ShortcutService(Ljava/lang/String;IZLcom/android/server/pm/ShortcutUser;)V
 PLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageLocked$4(Ljava/lang/String;ILcom/android/server/pm/ShortcutLauncher;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageLocked$5(Lcom/android/server/pm/ShortcutPackage;)V
-PLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageLocked$5(Ljava/lang/String;ILcom/android/server/pm/ShortcutLauncher;)V
+HPLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageLocked$5(Ljava/lang/String;ILcom/android/server/pm/ShortcutLauncher;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageLocked$6(Lcom/android/server/pm/ShortcutPackage;)V
+PLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageLocked$6(Ljava/lang/String;ILcom/android/server/pm/ShortcutLauncher;)V
+HPLcom/android/server/pm/ShortcutService;->lambda$cleanUpPackageLocked$7(Lcom/android/server/pm/ShortcutPackage;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$10(Lcom/android/server/pm/ShortcutPackage;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$10(Lcom/android/server/pm/ShortcutPackageItem;)V
 PLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$11(Lcom/android/server/pm/ShortcutLauncher;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$11(Lcom/android/server/pm/ShortcutPackage;)V
+HPLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$11(Lcom/android/server/pm/ShortcutPackageItem;)V
 PLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$12(Lcom/android/server/pm/ShortcutLauncher;)V
+HPLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$12(Lcom/android/server/pm/ShortcutPackage;)V
+PLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$13(Lcom/android/server/pm/ShortcutLauncher;)V
 PLcom/android/server/pm/ShortcutService;->lambda$getBackupPayload$9(Lcom/android/server/pm/ShortcutPackageItem;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$getShareTargets$2(Ljava/util/List;Landroid/content/IntentFilter;Lcom/android/server/pm/ShortcutPackage;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$getShareTargets$3(Ljava/util/List;Landroid/content/IntentFilter;Lcom/android/server/pm/ShortcutPackage;)V
+HPLcom/android/server/pm/ShortcutService;->lambda$getShareTargets$4(Ljava/util/List;Landroid/content/IntentFilter;Lcom/android/server/pm/ShortcutPackage;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$getShortcuts$2(ILandroid/content/pm/ShortcutInfo;)Z
+PLcom/android/server/pm/ShortcutService;->lambda$getShortcuts$3(ILandroid/content/pm/ShortcutInfo;)Z
 PLcom/android/server/pm/ShortcutService;->lambda$handleLocaleChanged$6(Lcom/android/server/pm/ShortcutUser;)V
 PLcom/android/server/pm/ShortcutService;->lambda$handleLocaleChanged$7(Lcom/android/server/pm/ShortcutUser;)V
+PLcom/android/server/pm/ShortcutService;->lambda$handleLocaleChanged$8(Lcom/android/server/pm/ShortcutUser;)V
 PLcom/android/server/pm/ShortcutService;->lambda$handleUnlockUser$0$ShortcutService(JI)V
 HPLcom/android/server/pm/ShortcutService;->lambda$notifyListeners$1$ShortcutService(ILjava/lang/String;)V
+HPLcom/android/server/pm/ShortcutService;->lambda$notifyShortcutChangeCallbacks$2$ShortcutService(ILjava/util/List;Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/List;)V
+HPLcom/android/server/pm/ShortcutService;->lambda$rescanUpdatedPackagesLocked$10$ShortcutService(Lcom/android/server/pm/ShortcutUser;ILandroid/content/pm/ApplicationInfo;)V
 PLcom/android/server/pm/ShortcutService;->lambda$rescanUpdatedPackagesLocked$8$ShortcutService(Lcom/android/server/pm/ShortcutUser;ILandroid/content/pm/ApplicationInfo;)V
 HPLcom/android/server/pm/ShortcutService;->lambda$rescanUpdatedPackagesLocked$9$ShortcutService(Lcom/android/server/pm/ShortcutUser;ILandroid/content/pm/ApplicationInfo;)V
 HSPLcom/android/server/pm/ShortcutService;->loadBaseStateLocked()V
@@ -26476,10 +28719,12 @@
 PLcom/android/server/pm/ShortcutService;->loadUserLocked(I)Lcom/android/server/pm/ShortcutUser;
 HPLcom/android/server/pm/ShortcutService;->logDurationStat(IJ)V
 HPLcom/android/server/pm/ShortcutService;->notifyListeners(Ljava/lang/String;I)V
+PLcom/android/server/pm/ShortcutService;->notifyShortcutChangeCallbacks(Ljava/lang/String;ILjava/util/List;Ljava/util/List;)V
 PLcom/android/server/pm/ShortcutService;->onApplicationActive(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/ShortcutService;->onBootPhase(I)V
 HPLcom/android/server/pm/ShortcutService;->openIconFileForWrite(ILandroid/content/pm/ShortcutInfo;)Lcom/android/server/pm/ShortcutService$FileOutputStreamWithPath;
 PLcom/android/server/pm/ShortcutService;->packageShortcutsChanged(Ljava/lang/String;I)V
+PLcom/android/server/pm/ShortcutService;->packageShortcutsChanged(Ljava/lang/String;ILjava/util/List;Ljava/util/List;)V
 PLcom/android/server/pm/ShortcutService;->parseBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Z
 PLcom/android/server/pm/ShortcutService;->parseBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
 HPLcom/android/server/pm/ShortcutService;->parseComponentNameAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/content/ComponentName;
@@ -26493,7 +28738,7 @@
 HSPLcom/android/server/pm/ShortcutService;->parseStringAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/String;
 HPLcom/android/server/pm/ShortcutService;->queryActivities(Landroid/content/Intent;IZ)Ljava/util/List;
 HPLcom/android/server/pm/ShortcutService;->queryActivities(Landroid/content/Intent;Ljava/lang/String;Landroid/content/ComponentName;I)Ljava/util/List;
-PLcom/android/server/pm/ShortcutService;->removeAllDynamicShortcuts(Ljava/lang/String;I)V
+HPLcom/android/server/pm/ShortcutService;->removeAllDynamicShortcuts(Ljava/lang/String;I)V
 HPLcom/android/server/pm/ShortcutService;->removeDynamicShortcuts(Ljava/lang/String;Ljava/util/List;I)V
 PLcom/android/server/pm/ShortcutService;->removeIconLocked(Landroid/content/pm/ShortcutInfo;)V
 HPLcom/android/server/pm/ShortcutService;->reportShortcutUsed(Ljava/lang/String;Ljava/lang/String;I)V
@@ -26721,6 +28966,9 @@
 PLcom/android/server/pm/UserManagerService$LocalService;->setUserState(II)V
 HSPLcom/android/server/pm/UserManagerService$MainHandler;-><init>(Lcom/android/server/pm/UserManagerService;)V
 PLcom/android/server/pm/UserManagerService$MainHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/pm/UserManagerService$Shell;-><init>(Lcom/android/server/pm/UserManagerService;)V
+PLcom/android/server/pm/UserManagerService$Shell;-><init>(Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService$1;)V
+PLcom/android/server/pm/UserManagerService$Shell;->onCommand(Ljava/lang/String;)I
 HSPLcom/android/server/pm/UserManagerService$UserData;-><init>()V
 PLcom/android/server/pm/UserManagerService$UserData;->getLastRequestQuietModeEnabledMillis()J
 HSPLcom/android/server/pm/UserManagerService$UserData;->setLastRequestQuietModeEnabledMillis(J)V
@@ -26729,7 +28977,7 @@
 HSPLcom/android/server/pm/UserManagerService$WatchedUserStates;->get(II)I
 HSPLcom/android/server/pm/UserManagerService$WatchedUserStates;->invalidateIsUserUnlockedCache()V
 HSPLcom/android/server/pm/UserManagerService$WatchedUserStates;->put(II)V
-PLcom/android/server/pm/UserManagerService$WatchedUserStates;->toString()Ljava/lang/String;
+HPLcom/android/server/pm/UserManagerService$WatchedUserStates;->toString()Ljava/lang/String;
 HSPLcom/android/server/pm/UserManagerService;-><clinit>()V
 HSPLcom/android/server/pm/UserManagerService;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/UserDataPreparer;Ljava/lang/Object;)V
 HSPLcom/android/server/pm/UserManagerService;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/UserDataPreparer;Ljava/lang/Object;Ljava/io/File;)V
@@ -26785,7 +29033,7 @@
 HSPLcom/android/server/pm/UserManagerService;->applyUserRestrictionsLR(I)V
 PLcom/android/server/pm/UserManagerService;->broadcastProfileAvailabilityChanges(Landroid/os/UserHandle;Landroid/os/UserHandle;Z)V
 PLcom/android/server/pm/UserManagerService;->canAddMoreManagedProfiles(IZ)Z
-PLcom/android/server/pm/UserManagerService;->canAddMoreProfilesToUser(Ljava/lang/String;IZ)Z
+HPLcom/android/server/pm/UserManagerService;->canAddMoreProfilesToUser(Ljava/lang/String;IZ)Z
 PLcom/android/server/pm/UserManagerService;->canAddMoreUsersOfType(Lcom/android/server/pm/UserTypeDetails;)Z
 PLcom/android/server/pm/UserManagerService;->canHaveRestrictedProfile(I)Z
 PLcom/android/server/pm/UserManagerService;->checkManageOrCreateUsersPermission(I)V
@@ -26798,8 +29046,11 @@
 HSPLcom/android/server/pm/UserManagerService;->cleanupPartialUsers()V
 PLcom/android/server/pm/UserManagerService;->cleanupPreCreatedUsers()V
 HSPLcom/android/server/pm/UserManagerService;->computeEffectiveUserRestrictionsLR(I)Landroid/os/Bundle;
+PLcom/android/server/pm/UserManagerService;->convertPreCreatedUserIfPossible(Ljava/lang/String;ILjava/lang/String;)Landroid/content/pm/UserInfo;
 PLcom/android/server/pm/UserManagerService;->createProfileForUserEvenWhenDisallowed(Ljava/lang/String;Ljava/lang/String;II[Ljava/lang/String;)Landroid/content/pm/UserInfo;
 PLcom/android/server/pm/UserManagerService;->createProfileForUserEvenWhenDisallowedWithThrow(Ljava/lang/String;Ljava/lang/String;II[Ljava/lang/String;)Landroid/content/pm/UserInfo;
+PLcom/android/server/pm/UserManagerService;->createUser(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/UserInfo;
+PLcom/android/server/pm/UserManagerService;->createUserInternal(Ljava/lang/String;Ljava/lang/String;II[Ljava/lang/String;)Landroid/content/pm/UserInfo;
 PLcom/android/server/pm/UserManagerService;->createUserInternalUnchecked(Ljava/lang/String;Ljava/lang/String;IIZ[Ljava/lang/String;)Landroid/content/pm/UserInfo;
 PLcom/android/server/pm/UserManagerService;->createUserInternalUncheckedNoTracing(Ljava/lang/String;Ljava/lang/String;IIZ[Ljava/lang/String;Lcom/android/server/utils/TimingsTraceAndSlog;)Landroid/content/pm/UserInfo;
 PLcom/android/server/pm/UserManagerService;->dispatchUserAddedIntent(Landroid/content/pm/UserInfo;)V
@@ -26807,6 +29058,7 @@
 HPLcom/android/server/pm/UserManagerService;->dumpTimeAgo(Ljava/io/PrintWriter;Ljava/lang/StringBuilder;JJ)V
 PLcom/android/server/pm/UserManagerService;->enforceUserRestriction(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/pm/UserManagerService;->ensureCanModifyQuietMode(Ljava/lang/String;IIZ)V
+PLcom/android/server/pm/UserManagerService;->ensureCanModifyQuietMode(Ljava/lang/String;IIZZ)V
 HSPLcom/android/server/pm/UserManagerService;->exists(I)Z
 PLcom/android/server/pm/UserManagerService;->finishRemoveUser(I)V
 HPLcom/android/server/pm/UserManagerService;->getAliveUsersExcludingGuestsCountLU()I
@@ -26822,7 +29074,9 @@
 PLcom/android/server/pm/UserManagerService;->getMaxUsersOfTypePerParent(Lcom/android/server/pm/UserTypeDetails;)I
 PLcom/android/server/pm/UserManagerService;->getMaxUsersOfTypePerParent(Ljava/lang/String;)I
 PLcom/android/server/pm/UserManagerService;->getNextAvailableId()I
+PLcom/android/server/pm/UserManagerService;->getNumberOfUsersOfType(Ljava/lang/String;)I
 HSPLcom/android/server/pm/UserManagerService;->getOwnerName()Ljava/lang/String;
+PLcom/android/server/pm/UserManagerService;->getPreCreatedUserLU(Ljava/lang/String;)Lcom/android/server/pm/UserManagerService$UserData;
 HSPLcom/android/server/pm/UserManagerService;->getPrimaryUser()Landroid/content/pm/UserInfo;
 HSPLcom/android/server/pm/UserManagerService;->getProfileIds(ILjava/lang/String;Z)[I
 HSPLcom/android/server/pm/UserManagerService;->getProfileIds(IZ)[I
@@ -26884,6 +29138,7 @@
 HSPLcom/android/server/pm/UserManagerService;->isSettingRestrictedForUser(Ljava/lang/String;ILjava/lang/String;I)Z
 HPLcom/android/server/pm/UserManagerService;->isUserLimitReached()Z
 HSPLcom/android/server/pm/UserManagerService;->isUserRunning(I)Z
+PLcom/android/server/pm/UserManagerService;->isUserTypeEligibleForPreCreation(Lcom/android/server/pm/UserTypeDetails;)Z
 HSPLcom/android/server/pm/UserManagerService;->isUserTypeSubtypeOfFull(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/UserManagerService;->isUserTypeSubtypeOfProfile(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/UserManagerService;->isUserTypeSubtypeOfSystem(Ljava/lang/String;)Z
@@ -26894,6 +29149,8 @@
 PLcom/android/server/pm/UserManagerService;->makeInitialized(I)V
 PLcom/android/server/pm/UserManagerService;->onBeforeStartUser(I)V
 PLcom/android/server/pm/UserManagerService;->onBeforeUnlockUser(I)V
+PLcom/android/server/pm/UserManagerService;->onShellCommand(Lcom/android/server/pm/UserManagerService$Shell;Ljava/lang/String;)I
+PLcom/android/server/pm/UserManagerService;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
 PLcom/android/server/pm/UserManagerService;->onUserLoggedIn(I)V
 HPLcom/android/server/pm/UserManagerService;->packageToRestrictionsFileName(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/pm/UserManagerService;->propagateUserRestrictionsLR(ILandroid/os/Bundle;Landroid/os/Bundle;)V
@@ -26911,6 +29168,7 @@
 PLcom/android/server/pm/UserManagerService;->removeUserUnchecked(I)Z
 PLcom/android/server/pm/UserManagerService;->requestQuietModeEnabled(Ljava/lang/String;ZILandroid/content/IntentSender;)Z
 PLcom/android/server/pm/UserManagerService;->requestQuietModeEnabled(Ljava/lang/String;ZILandroid/content/IntentSender;I)Z
+PLcom/android/server/pm/UserManagerService;->runList(Ljava/io/PrintWriter;Lcom/android/server/pm/UserManagerService$Shell;)I
 PLcom/android/server/pm/UserManagerService;->scanNextAvailableIdLocked()I
 PLcom/android/server/pm/UserManagerService;->scheduleWriteUser(Lcom/android/server/pm/UserManagerService$UserData;)V
 PLcom/android/server/pm/UserManagerService;->sendProfileRemovedBroadcast(II)V
@@ -26935,7 +29193,7 @@
 PLcom/android/server/pm/UserManagerService;->writeBitmapLP(Landroid/content/pm/UserInfo;Landroid/graphics/Bitmap;)V
 HPLcom/android/server/pm/UserManagerService;->writeBundle(Landroid/os/Bundle;Lorg/xmlpull/v1/XmlSerializer;)V
 PLcom/android/server/pm/UserManagerService;->writeUserLP(Lcom/android/server/pm/UserManagerService$UserData;)V
-PLcom/android/server/pm/UserManagerService;->writeUserLP(Lcom/android/server/pm/UserManagerService$UserData;Ljava/io/OutputStream;)V
+HPLcom/android/server/pm/UserManagerService;->writeUserLP(Lcom/android/server/pm/UserManagerService$UserData;Ljava/io/OutputStream;)V
 PLcom/android/server/pm/UserManagerService;->writeUserListLP()V
 HSPLcom/android/server/pm/UserRestrictionsUtils;-><clinit>()V
 HSPLcom/android/server/pm/UserRestrictionsUtils;->applyUserRestriction(Landroid/content/Context;ILjava/lang/String;Z)V
@@ -27011,6 +29269,7 @@
 PLcom/android/server/pm/UserTypeDetails;->getIconBadge()I
 PLcom/android/server/pm/UserTypeDetails;->getMaxAllowed()I
 PLcom/android/server/pm/UserTypeDetails;->getMaxAllowedPerParent()I
+PLcom/android/server/pm/UserTypeDetails;->getName()Ljava/lang/String;
 HPLcom/android/server/pm/UserTypeDetails;->hasBadge()Z
 HSPLcom/android/server/pm/UserTypeDetails;->isFull()Z
 PLcom/android/server/pm/UserTypeDetails;->isManagedProfile()Z
@@ -27041,18 +29300,21 @@
 HPLcom/android/server/pm/dex/ArtManagerService;->checkAndroidPermissions(ILjava/lang/String;)Z
 PLcom/android/server/pm/dex/ArtManagerService;->checkShellPermissions(ILjava/lang/String;I)Z
 HSPLcom/android/server/pm/dex/ArtManagerService;->clearAppProfiles(Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/dex/ArtManagerService;->clearAppProfiles(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 PLcom/android/server/pm/dex/ArtManagerService;->createProfileSnapshot(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V
 PLcom/android/server/pm/dex/ArtManagerService;->destroyProfileSnapshot(Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/pm/dex/ArtManagerService;->getCompilationFilterTronValue(Ljava/lang/String;)I
 HSPLcom/android/server/pm/dex/ArtManagerService;->getCompilationReasonTronValue(Ljava/lang/String;)I
 HSPLcom/android/server/pm/dex/ArtManagerService;->getPackageProfileNames(Landroid/content/pm/parsing/AndroidPackage;)Landroid/util/ArrayMap;
-PLcom/android/server/pm/dex/ArtManagerService;->isRuntimeProfilingEnabled(ILjava/lang/String;)Z
+HSPLcom/android/server/pm/dex/ArtManagerService;->getPackageProfileNames(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Landroid/util/ArrayMap;
+HPLcom/android/server/pm/dex/ArtManagerService;->isRuntimeProfilingEnabled(ILjava/lang/String;)Z
 PLcom/android/server/pm/dex/ArtManagerService;->lambda$postError$0(Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;ILjava/lang/String;)V
 PLcom/android/server/pm/dex/ArtManagerService;->lambda$postSuccess$1(Landroid/os/ParcelFileDescriptor;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Ljava/lang/String;)V
 PLcom/android/server/pm/dex/ArtManagerService;->postError(Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Ljava/lang/String;I)V
 PLcom/android/server/pm/dex/ArtManagerService;->postSuccess(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V
 HPLcom/android/server/pm/dex/ArtManagerService;->prepareAppProfiles(Landroid/content/pm/parsing/AndroidPackage;IZ)V
 PLcom/android/server/pm/dex/ArtManagerService;->prepareAppProfiles(Landroid/content/pm/parsing/AndroidPackage;[IZ)V
+HPLcom/android/server/pm/dex/ArtManagerService;->prepareAppProfiles(Lcom/android/server/pm/parsing/pkg/AndroidPackage;IZ)V
 HPLcom/android/server/pm/dex/ArtManagerService;->snapshotAppProfile(Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V
 PLcom/android/server/pm/dex/ArtManagerService;->snapshotBootImageProfile(Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V
 PLcom/android/server/pm/dex/ArtManagerService;->snapshotRuntimeProfile(ILjava/lang/String;Ljava/lang/String;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Ljava/lang/String;)V
@@ -27086,7 +29348,9 @@
 HSPLcom/android/server/pm/dex/DexManager;->load(Ljava/util/Map;)V
 HSPLcom/android/server/pm/dex/DexManager;->loadInternal(Ljava/util/Map;)V
 HSPLcom/android/server/pm/dex/DexManager;->notifyDexLoad(Landroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;Ljava/lang/String;I)V
+HSPLcom/android/server/pm/dex/DexManager;->notifyDexLoad(Landroid/content/pm/ApplicationInfo;Ljava/util/Map;Ljava/lang/String;I)V
 HSPLcom/android/server/pm/dex/DexManager;->notifyDexLoadInternal(Landroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;Ljava/lang/String;I)V
+HSPLcom/android/server/pm/dex/DexManager;->notifyDexLoadInternal(Landroid/content/pm/ApplicationInfo;Ljava/util/Map;Ljava/lang/String;I)V
 HSPLcom/android/server/pm/dex/DexManager;->notifyPackageDataDestroyed(Ljava/lang/String;I)V
 PLcom/android/server/pm/dex/DexManager;->notifyPackageInstalled(Landroid/content/pm/PackageInfo;I)V
 PLcom/android/server/pm/dex/DexManager;->notifyPackageUpdated(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
@@ -27118,7 +29382,9 @@
 HSPLcom/android/server/pm/dex/DexoptUtils;->encodeSharedLibraries(Ljava/util/List;)Ljava/lang/String;
 HSPLcom/android/server/pm/dex/DexoptUtils;->encodeSharedLibrary(Landroid/content/pm/SharedLibraryInfo;)Ljava/lang/String;
 HSPLcom/android/server/pm/dex/DexoptUtils;->getClassLoaderContexts(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/List;[Z)[Ljava/lang/String;
+HPLcom/android/server/pm/dex/DexoptUtils;->getClassLoaderContexts(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/List;[Z)[Ljava/lang/String;
 HPLcom/android/server/pm/dex/DexoptUtils;->getSplitRelativeCodePaths(Landroid/content/pm/parsing/AndroidPackage;)[Ljava/lang/String;
+HPLcom/android/server/pm/dex/DexoptUtils;->getSplitRelativeCodePaths(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)[Ljava/lang/String;
 HSPLcom/android/server/pm/dex/DexoptUtils;->processContextForDexLoad(Ljava/util/List;Ljava/util/List;)[Ljava/lang/String;
 HSPLcom/android/server/pm/dex/DynamicCodeLogger;-><init>(Landroid/content/pm/IPackageManager;Lcom/android/server/pm/Installer;)V
 HSPLcom/android/server/pm/dex/DynamicCodeLogger;-><init>(Landroid/content/pm/IPackageManager;Lcom/android/server/pm/Installer;Lcom/android/server/pm/dex/PackageDynamicCodeLoading;)V
@@ -27129,7 +29395,7 @@
 HSPLcom/android/server/pm/dex/DynamicCodeLogger;->readAndSync(Ljava/util/Map;)V
 PLcom/android/server/pm/dex/DynamicCodeLogger;->recordDex(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/pm/dex/DynamicCodeLogger;->recordNative(ILjava/lang/String;)V
-PLcom/android/server/pm/dex/DynamicCodeLogger;->removePackage(Ljava/lang/String;)V
+HSPLcom/android/server/pm/dex/DynamicCodeLogger;->removePackage(Ljava/lang/String;)V
 HSPLcom/android/server/pm/dex/DynamicCodeLogger;->removeUserPackage(Ljava/lang/String;I)V
 HPLcom/android/server/pm/dex/DynamicCodeLogger;->writeDclEvent(Ljava/lang/String;ILjava/lang/String;)V
 PLcom/android/server/pm/dex/DynamicCodeLogger;->writeNow()V
@@ -27143,10 +29409,12 @@
 HSPLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->access$700(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)Ljava/util/Set;
 PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->getClassLoaderContext()Ljava/lang/String;
 PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->getLoaderIsas()Ljava/util/Set;
+PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->getLoadingPackages()Ljava/util/Set;
 PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->getOwnerUserId()I
-PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->isUnknownClassLoaderContext()Z
+HPLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->isUnknownClassLoaderContext()Z
+PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->isUnknownOrUnsupportedContext(Ljava/lang/String;)Z
 PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->isUsedByOtherApps()Z
-PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->isVariableClassLoaderContext()Z
+HPLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->isVariableClassLoaderContext()Z
 HPLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->merge(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)Z
 HSPLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;-><init>()V
 HSPLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;-><init>(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)V
@@ -27179,7 +29447,7 @@
 HSPLcom/android/server/pm/dex/PackageDexUsage;->record(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;ZZLjava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/pm/dex/PackageDexUsage;->removeDexFile(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Ljava/lang/String;I)Z
 PLcom/android/server/pm/dex/PackageDexUsage;->removeDexFile(Ljava/lang/String;Ljava/lang/String;I)Z
-PLcom/android/server/pm/dex/PackageDexUsage;->removePackage(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/dex/PackageDexUsage;->removePackage(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/dex/PackageDexUsage;->removeUserPackage(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/dex/PackageDexUsage;->syncData(Ljava/util/Map;Ljava/util/Map;)V
 HPLcom/android/server/pm/dex/PackageDexUsage;->write(Ljava/io/Writer;)V
@@ -27216,7 +29484,7 @@
 HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->readInternal(Ljava/lang/Void;)V
 HPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->record(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;)Z
 HPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->removeFile(Ljava/lang/String;Ljava/lang/String;I)Z
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->removePackage(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->removePackage(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->removeUserPackage(Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->syncData(Ljava/util/Map;)V
 HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->unescape(Ljava/lang/String;)Ljava/lang/String;
@@ -27226,12 +29494,257 @@
 PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->writeInternal(Ljava/lang/Void;)V
 PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->writeNow()V
 HSPLcom/android/server/pm/dex/ViewCompiler;-><init>(Ljava/lang/Object;Lcom/android/server/pm/Installer;)V
+HSPLcom/android/server/pm/parsing/-$$Lambda$MsCTQbj1nCkHPuW2VX512f_ZKpg;-><clinit>()V
+HSPLcom/android/server/pm/parsing/-$$Lambda$MsCTQbj1nCkHPuW2VX512f_ZKpg;-><init>()V
+HSPLcom/android/server/pm/parsing/-$$Lambda$MsCTQbj1nCkHPuW2VX512f_ZKpg;->get()Ljava/lang/Object;
+HSPLcom/android/server/pm/parsing/-$$Lambda$gLXiiRPkkfU6FsJxq4nR4nPlVSk;-><clinit>()V
+HSPLcom/android/server/pm/parsing/-$$Lambda$gLXiiRPkkfU6FsJxq4nR4nPlVSk;-><init>()V
+HSPLcom/android/server/pm/parsing/-$$Lambda$gLXiiRPkkfU6FsJxq4nR4nPlVSk;->get()Ljava/lang/Object;
+HSPLcom/android/server/pm/parsing/PackageCacher;-><clinit>()V
+HSPLcom/android/server/pm/parsing/PackageCacher;-><init>(Ljava/io/File;)V
+HSPLcom/android/server/pm/parsing/PackageCacher;->cacheResult(Ljava/io/File;ILcom/android/server/pm/parsing/pkg/ParsedPackage;)V
+HSPLcom/android/server/pm/parsing/PackageCacher;->fromCacheEntry([B)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/PackageCacher;->fromCacheEntryStatic([B)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/PackageCacher;->getCacheKey(Ljava/io/File;I)Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/PackageCacher;->getCachedResult(Ljava/io/File;I)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/PackageCacher;->isCacheUpToDate(Ljava/io/File;Ljava/io/File;)Z
+HSPLcom/android/server/pm/parsing/PackageCacher;->toCacheEntry(Lcom/android/server/pm/parsing/pkg/ParsedPackage;)[B
+HSPLcom/android/server/pm/parsing/PackageCacher;->toCacheEntryStatic(Lcom/android/server/pm/parsing/pkg/ParsedPackage;)[B
+HSPLcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator;-><init>()V
+HSPLcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator;->generate(Lcom/android/server/pm/parsing/pkg/AndroidPackage;ILandroid/content/pm/PackageUserState;ILcom/android/server/pm/PackageSetting;)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoFlags(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)I
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->appInfoPrivateFlags(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)I
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->assignSharedFieldsForComponentInfo(Landroid/content/pm/ComponentInfo;Landroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;Lcom/android/server/pm/PackageSetting;)V
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->assignSharedFieldsForComponentInfo(Landroid/content/pm/ComponentInfo;Landroid/content/pm/parsing/component/ParsedMainComponent;Lcom/android/server/pm/PackageSetting;)V
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->assignStateFieldsForPackageItemInfo(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;Lcom/android/server/pm/PackageSetting;)V
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->assignStateFieldsForPackageItemInfo(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/parsing/component/ParsedComponent;Lcom/android/server/pm/PackageSetting;)V
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->checkUseInstalledOrHidden(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Landroid/content/pm/PackageUserState;I)Z
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->flag(ZI)I
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generate(Lcom/android/server/pm/parsing/pkg/AndroidPackage;[IIJJLjava/util/Set;Landroid/content/pm/PackageUserState;I)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generate(Lcom/android/server/pm/parsing/pkg/AndroidPackage;[IIJJLjava/util/Set;Landroid/content/pm/PackageUserState;ILcom/android/server/pm/PackageSetting;)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateActivityInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ActivityInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateActivityInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/PackageSetting;)Landroid/content/pm/ActivityInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateActivityInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/component/ParsedActivity;ILandroid/content/pm/PackageUserState;ILcom/android/server/pm/PackageSetting;)Landroid/content/pm/ActivityInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateActivityInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/component/ParsedActivity;ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/PackageSetting;)Landroid/content/pm/ActivityInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateApplicationInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateApplicationInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;ILandroid/content/pm/PackageUserState;ILcom/android/server/pm/PackageSetting;)Landroid/content/pm/ApplicationInfo;
+PLcom/android/server/pm/parsing/PackageInfoUtils;->generatePermissionGroupInfo(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;I)Landroid/content/pm/PermissionGroupInfo;
+PLcom/android/server/pm/parsing/PackageInfoUtils;->generatePermissionGroupInfo(Landroid/content/pm/parsing/component/ParsedPermissionGroup;I)Landroid/content/pm/PermissionGroupInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generatePermissionInfo(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;I)Landroid/content/pm/PermissionInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generatePermissionInfo(Landroid/content/pm/parsing/component/ParsedPermission;I)Landroid/content/pm/PermissionInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateProcessInfo(Ljava/util/Map;I)Landroid/util/ArrayMap;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateProviderInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ProviderInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateProviderInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/PackageSetting;)Landroid/content/pm/ProviderInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateProviderInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/component/ParsedProvider;ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/PackageSetting;)Landroid/content/pm/ProviderInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateServiceInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ServiceInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateServiceInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/PackageSetting;)Landroid/content/pm/ServiceInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateServiceInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/component/ParsedService;ILandroid/content/pm/PackageUserState;ILcom/android/server/pm/PackageSetting;)Landroid/content/pm/ServiceInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateServiceInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/parsing/component/ParsedService;ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;ILcom/android/server/pm/PackageSetting;)Landroid/content/pm/ServiceInfo;
+HSPLcom/android/server/pm/parsing/PackageInfoUtils;->generateWithComponents(Lcom/android/server/pm/parsing/pkg/AndroidPackage;[IIJJLjava/util/Set;Landroid/content/pm/PackageUserState;ILandroid/apex/ApexInfo;Lcom/android/server/pm/PackageSetting;)Landroid/content/pm/PackageInfo;
+PLcom/android/server/pm/parsing/PackageParser2$1;-><init>(Lcom/android/server/pm/parsing/PackageParser2;)V
+PLcom/android/server/pm/parsing/PackageParser2$1;->hasFeature(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/parsing/PackageParser2$Callback;-><init>()V
+HSPLcom/android/server/pm/parsing/PackageParser2$Callback;->startParsingPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLcom/android/server/pm/parsing/PackageParser2;-><clinit>()V
+HSPLcom/android/server/pm/parsing/PackageParser2;-><init>([Ljava/lang/String;ZLandroid/util/DisplayMetrics;Ljava/io/File;Lcom/android/server/pm/parsing/PackageParser2$Callback;)V
+HSPLcom/android/server/pm/parsing/PackageParser2;->parsePackage(Ljava/io/File;IZ)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/library/AndroidHidlUpdater;-><init>()V
+HSPLcom/android/server/pm/parsing/library/AndroidHidlUpdater;->updatePackage(Lcom/android/server/pm/parsing/pkg/ParsedPackage;)V
+HSPLcom/android/server/pm/parsing/library/AndroidHidlUpdater;->updatePackage(Lcom/android/server/pm/parsing/pkg/ParsedPackage;Z)V
+HSPLcom/android/server/pm/parsing/library/AndroidTestBaseUpdater;-><init>()V
+HSPLcom/android/server/pm/parsing/library/AndroidTestBaseUpdater;->isChangeEnabled(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
+HSPLcom/android/server/pm/parsing/library/AndroidTestBaseUpdater;->updatePackage(Lcom/android/server/pm/parsing/pkg/ParsedPackage;)V
+HSPLcom/android/server/pm/parsing/library/AndroidTestBaseUpdater;->updatePackage(Lcom/android/server/pm/parsing/pkg/ParsedPackage;Z)V
+HSPLcom/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater;-><init>()V
+HSPLcom/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater;->apkTargetsApiLevelLessThanOrEqualToOMR1(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
+HSPLcom/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater;->updatePackage(Lcom/android/server/pm/parsing/pkg/ParsedPackage;)V
+HSPLcom/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater;->updatePackage(Lcom/android/server/pm/parsing/pkg/ParsedPackage;Z)V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;-><init>()V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;->updatePackage(Lcom/android/server/pm/parsing/pkg/ParsedPackage;)V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;->updatePackage(Lcom/android/server/pm/parsing/pkg/ParsedPackage;Z)V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;-><clinit>()V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;-><init>(Z[Lcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;)V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;->addUpdaterForAndroidTestBase(Ljava/util/List;)Z
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;->modifySharedLibraries(Lcom/android/server/pm/parsing/pkg/ParsedPackage;)V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;->modifySharedLibraries(Lcom/android/server/pm/parsing/pkg/ParsedPackage;Z)V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;->updatePackage(Lcom/android/server/pm/parsing/pkg/ParsedPackage;)V
+HSPLcom/android/server/pm/parsing/library/PackageBackwardCompatibility;->updatePackage(Lcom/android/server/pm/parsing/pkg/ParsedPackage;Z)V
+HSPLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;-><init>()V
+HSPLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;->isLibraryPresent(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)Z
+HSPLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;->prefixImplicitDependency(Lcom/android/server/pm/parsing/pkg/ParsedPackage;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;->prefixRequiredLibrary(Lcom/android/server/pm/parsing/pkg/ParsedPackage;Ljava/lang/String;)V
+HSPLcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;->removeLibrary(Lcom/android/server/pm/parsing/pkg/ParsedPackage;Ljava/lang/String;)V
+HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->canHaveOatDir(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)Z
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->createNativeLibraryHandle(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Lcom/android/internal/content/NativeLibraryHelper$Handle;
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->createSharedLibraryForDynamic(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;)Landroid/content/pm/SharedLibraryInfo;
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->createSharedLibraryForStatic(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Landroid/content/pm/SharedLibraryInfo;
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getAllCodePaths(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/util/List;
+HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getAllCodePathsExcludingResourceOnly(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/util/List;
+HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getHiddenApiEnforcementPolicy(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)I
+HPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getHiddenApiEnforcementPolicy(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)I
+PLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getPackageDexMetadata(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/util/Map;
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getPrimaryCpuAbi(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getRawPrimaryCpuAbi(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getRawSecondaryCpuAbi(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getSeInfo(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->getSecondaryCpuAbi(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->hasComponentClassName(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;)Z
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->isEncryptionAware(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->isLibrary(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
+HSPLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->isMatchForSystemOnly(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)Z
+PLcom/android/server/pm/parsing/pkg/AndroidPackageUtils;->validatePackageDexMetadata(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl$1;-><init>()V
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;-><clinit>()V
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;-><init>(Landroid/os/Parcel;)V
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;Z)V
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->addUsesLibrary(ILjava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->addUsesLibrary(ILjava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->capPermissionPriorities()Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->capPermissionPriorities()Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->clearAdoptPermissions()Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->clearAdoptPermissions()Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->clearOriginalPackages()Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->clearOriginalPackages()Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->clearProtectedBroadcasts()Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->clearProtectedBroadcasts()Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->forParsing(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getCpuAbiOverride()Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getDataDir()Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getFlags()I
+HPLcom/android/server/pm/parsing/pkg/PackageImpl;->getLatestForegroundPackageUseTimeInMills()J
+HPLcom/android/server/pm/parsing/pkg/PackageImpl;->getLatestPackageUseTimeInMills()J
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getLongVersionCode()J
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getManifestPackageName()Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getNativeLibraryDir()Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getNativeLibraryRootDir()Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getPrimaryCpuAbi()Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getPrivateFlags()I
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getSeInfo()Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getSeInfoUser()Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getSecondaryCpuAbi()Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getUid()I
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->getUsesLibraryFiles()[Ljava/lang/String;
+PLcom/android/server/pm/parsing/pkg/PackageImpl;->getUsesLibraryInfos()Ljava/util/List;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->hideAsFinal()Lcom/android/server/pm/parsing/pkg/AndroidPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->hideAsParsed()Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->hideAsParsed()Ljava/lang/Object;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->initForUser(I)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->initForUser(I)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isCoreApp()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isFactoryTest()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isHiddenUntilInstalled()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isOdm()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isOem()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isPrivileged()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isProduct()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isSignedWithPlatformKey()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isStub()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isSystem()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isSystemExt()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isUpdatedSystemApp()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->isVendor()Z
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->markNotActivitiesAsNotExportedIfSingleUser()Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->markNotActivitiesAsNotExportedIfSingleUser()Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->mutate()Lcom/android/server/pm/parsing/pkg/AndroidPackageWrite;
+PLcom/android/server/pm/parsing/pkg/PackageImpl;->removePermission(I)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+PLcom/android/server/pm/parsing/pkg/PackageImpl;->removePermission(I)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->removeUsesLibrary(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->removeUsesLibrary(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->removeUsesOptionalLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->removeUsesOptionalLibrary(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->removeUsesOptionalLibrary(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setAllComponentsDirectBootAware(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setAllComponentsDirectBootAware(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+PLcom/android/server/pm/parsing/pkg/PackageImpl;->setBaseCodePath(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+PLcom/android/server/pm/parsing/pkg/PackageImpl;->setBaseCodePath(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+PLcom/android/server/pm/parsing/pkg/PackageImpl;->setCodePath(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+PLcom/android/server/pm/parsing/pkg/PackageImpl;->setCodePath(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setCoreApp(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setCpuAbiOverride(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setCpuAbiOverride(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setDefaultToDeviceProtectedStorage(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setDefaultToDeviceProtectedStorage(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setDefaultToDeviceProtectedStorage(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setDirectBootAware(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setDirectBootAware(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setDirectBootAware(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setFactoryTest(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setFactoryTest(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setHiddenUntilInstalled(Z)Lcom/android/server/pm/parsing/pkg/AndroidPackageWrite;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setHiddenUntilInstalled(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setLastPackageUsageTimeInMills(IJ)Lcom/android/server/pm/parsing/pkg/AndroidPackageWrite;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setLastPackageUsageTimeInMills(IJ)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setNativeLibraryDir(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setNativeLibraryDir(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setNativeLibraryRootDir(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setNativeLibraryRootDir(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setNativeLibraryRootRequiresIsa(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setNativeLibraryRootRequiresIsa(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setOdm(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setOdm(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setOem(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setOem(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setPackageName(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setPackageName(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setPersistent(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setPersistent(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setPersistent(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+PLcom/android/server/pm/parsing/pkg/PackageImpl;->setPrimaryCpuAbi(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/AndroidPackageWrite;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setPrimaryCpuAbi(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setPrimaryCpuAbi(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setPrivileged(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setPrivileged(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setProduct(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setProduct(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setRealPackage(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setRealPackage(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setRealPackage(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setRestrictUpdateHash([B)Landroid/content/pm/parsing/ParsingPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setRestrictUpdateHash([B)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSeInfo(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/AndroidPackageWrite;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSeInfo(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSeInfo(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSeInfoUser(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSeInfoUser(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSecondaryCpuAbi(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSecondaryCpuAbi(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSecondaryNativeLibraryDir(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSecondaryNativeLibraryDir(Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSignedWithPlatformKey(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSignedWithPlatformKey(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+PLcom/android/server/pm/parsing/pkg/PackageImpl;->setSplitCodePaths([Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+PLcom/android/server/pm/parsing/pkg/PackageImpl;->setSplitCodePaths([Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setStub(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setStub(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSystem(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSystem(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSystemExt(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setSystemExt(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setUid(I)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setUid(I)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setUpdatedSystemApp(Z)Lcom/android/server/pm/parsing/pkg/AndroidPackageWrite;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setUpdatedSystemApp(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+PLcom/android/server/pm/parsing/pkg/PackageImpl;->setUpdatedSystemApp(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setUsesLibraryFiles([Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/AndroidPackageWrite;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setUsesLibraryFiles([Ljava/lang/String;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setUsesLibraryInfos(Ljava/util/List;)Lcom/android/server/pm/parsing/pkg/AndroidPackageWrite;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setUsesLibraryInfos(Ljava/util/List;)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setVendor(Z)Lcom/android/server/pm/parsing/pkg/PackageImpl;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setVendor(Z)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setVersionCode(I)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->setVersionCodeMajor(I)Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+HPLcom/android/server/pm/parsing/pkg/PackageImpl;->toAppInfoToString()Ljava/lang/String;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->toAppInfoWithoutState()Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/pm/parsing/pkg/PackageImpl;->writeToParcel(Landroid/os/Parcel;I)V
 HSPLcom/android/server/pm/permission/-$$Lambda$DefaultPermissionGrantPolicy$SHfHTWKpfBf_vZtWArm-FlNBI8k;-><clinit>()V
 HSPLcom/android/server/pm/permission/-$$Lambda$DefaultPermissionGrantPolicy$SHfHTWKpfBf_vZtWArm-FlNBI8k;-><init>()V
 PLcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$6-ufctMfTfrbd3URDMlB0Ywd8Ik;-><init>(Lcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;)V
-PLcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$6-ufctMfTfrbd3URDMlB0Ywd8Ik;->onUidImportance(II)V
+HPLcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$6-ufctMfTfrbd3URDMlB0Ywd8Ik;->onUidImportance(II)V
 PLcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$SVoloDDAPWRycmaRhugBlXuSVeI;-><init>(Lcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;)V
-PLcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$SVoloDDAPWRycmaRhugBlXuSVeI;->onUidImportance(II)V
+HPLcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$SVoloDDAPWRycmaRhugBlXuSVeI;->onUidImportance(II)V
 PLcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$jL3jeghSTeL6RfIu1pUGSzWgTuc;-><init>(Lcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;)V
 PLcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$jL3jeghSTeL6RfIu1pUGSzWgTuc;->run()V
 PLcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$lKEtuzRRYU8MegOihXQiXrZ0ZaM;-><init>(Lcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;)V
@@ -27253,6 +29766,10 @@
 HPLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$QU_UFF-9J77Mq118FLJUiLh4ARI;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$T4uCZ9__oEXYpzLBYEW1T_BN3SU;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;[Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$T4uCZ9__oEXYpzLBYEW1T_BN3SU;->runOrThrow()V
+PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$TCLcs8BgJvNr88B1R6pU9xRD-jw;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/permission/BasePermission;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HPLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$TCLcs8BgJvNr88B1R6pU9xRD-jw;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$XgJON0nYdrr1Swr3OJklQ7xA-pU;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/parsing/pkg/AndroidPackage;ZLjava/lang/String;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$XgJON0nYdrr1Swr3OJklQ7xA-pU;->accept(Ljava/lang/Object;)V
 PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$aQWnOfCuKK-rSxzDPI_dUOtzv8I;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;[Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$aQWnOfCuKK-rSxzDPI_dUOtzv8I;->runOrThrow()V
 HSPLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$g9Bo5gFpLYyPOsp3K8Aik5xseDI;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;ZLjava/lang/String;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
@@ -27265,13 +29782,18 @@
 PLcom/android/server/pm/permission/-$$Lambda$oynlBn0BbcU0KODvfUDDUHb5LKY;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/pm/permission/BasePermission;-><init>(Ljava/lang/String;Ljava/lang/String;I)V
 HPLcom/android/server/pm/permission/BasePermission;->addToTree(ILandroid/content/pm/PermissionInfo;Lcom/android/server/pm/permission/BasePermission;)Z
-PLcom/android/server/pm/permission/BasePermission;->comparePermissionInfos(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;Landroid/content/pm/PermissionInfo;)Z
+PLcom/android/server/pm/permission/BasePermission;->calculateFootprint(Lcom/android/server/pm/permission/BasePermission;)I
+HPLcom/android/server/pm/permission/BasePermission;->comparePermissionInfos(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;Landroid/content/pm/PermissionInfo;)Z
+HPLcom/android/server/pm/permission/BasePermission;->comparePermissionInfos(Landroid/content/pm/parsing/component/ParsedPermission;Landroid/content/pm/PermissionInfo;)Z
 HPLcom/android/server/pm/permission/BasePermission;->compareStrings(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
 HSPLcom/android/server/pm/permission/BasePermission;->computeGids(I)[I
 HSPLcom/android/server/pm/permission/BasePermission;->createOrUpdate(Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/permission/BasePermission;Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Collection;Z)Lcom/android/server/pm/permission/BasePermission;
+HSPLcom/android/server/pm/permission/BasePermission;->createOrUpdate(Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/permission/BasePermission;Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/Collection;Z)Lcom/android/server/pm/permission/BasePermission;
+HSPLcom/android/server/pm/permission/BasePermission;->createOrUpdate(Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/permission/BasePermission;Landroid/content/pm/parsing/component/ParsedPermission;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/Collection;Z)Lcom/android/server/pm/permission/BasePermission;
 HPLcom/android/server/pm/permission/BasePermission;->dumpPermissionsLPr(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;ZZLcom/android/server/pm/DumpState;)Z
 HSPLcom/android/server/pm/permission/BasePermission;->enforceDeclaredUsedAndRuntimeOrDevelopment(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageSetting;)V
-PLcom/android/server/pm/permission/BasePermission;->enforcePermissionTree(Ljava/util/Collection;Ljava/lang/String;I)Lcom/android/server/pm/permission/BasePermission;
+PLcom/android/server/pm/permission/BasePermission;->enforceDeclaredUsedAndRuntimeOrDevelopment(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;)V
+HPLcom/android/server/pm/permission/BasePermission;->enforcePermissionTree(Ljava/util/Collection;Ljava/lang/String;I)Lcom/android/server/pm/permission/BasePermission;
 HSPLcom/android/server/pm/permission/BasePermission;->findPermissionTree(Ljava/util/Collection;Ljava/lang/String;)Lcom/android/server/pm/permission/BasePermission;
 HSPLcom/android/server/pm/permission/BasePermission;->generatePermissionInfo(II)Landroid/content/pm/PermissionInfo;
 HPLcom/android/server/pm/permission/BasePermission;->generatePermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
@@ -27279,6 +29801,7 @@
 HSPLcom/android/server/pm/permission/BasePermission;->getProtectionLevel()I
 HSPLcom/android/server/pm/permission/BasePermission;->getSourcePackageName()Ljava/lang/String;
 HSPLcom/android/server/pm/permission/BasePermission;->getSourcePackageSetting()Lcom/android/server/pm/PackageSettingBase;
+PLcom/android/server/pm/permission/BasePermission;->getUid()I
 HSPLcom/android/server/pm/permission/BasePermission;->isAppOp()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isAppPredictor()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isCompanion()Z
@@ -27295,6 +29818,7 @@
 HSPLcom/android/server/pm/permission/BasePermission;->isNormal()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isOEM()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isPermission(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;)Z
+HPLcom/android/server/pm/permission/BasePermission;->isPermission(Landroid/content/pm/parsing/component/ParsedPermission;)Z
 HSPLcom/android/server/pm/permission/BasePermission;->isPre23()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isPreInstalled()Z
 HSPLcom/android/server/pm/permission/BasePermission;->isPrivileged()Z
@@ -27314,6 +29838,7 @@
 HSPLcom/android/server/pm/permission/BasePermission;->readLPw(Ljava/util/Map;Lorg/xmlpull/v1/XmlPullParser;)Z
 HSPLcom/android/server/pm/permission/BasePermission;->setGids([IZ)V
 HSPLcom/android/server/pm/permission/BasePermission;->setPermission(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;)V
+PLcom/android/server/pm/permission/BasePermission;->setPermission(Landroid/content/pm/parsing/component/ParsedPermission;)V
 HSPLcom/android/server/pm/permission/BasePermission;->setSourcePackageSetting(Lcom/android/server/pm/PackageSettingBase;)V
 HSPLcom/android/server/pm/permission/BasePermission;->updateDynamicPermission(Ljava/util/Collection;)V
 HSPLcom/android/server/pm/permission/BasePermission;->writeLPr(Lorg/xmlpull/v1/XmlSerializer;)V
@@ -27389,18 +29914,20 @@
 PLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;-><init>(Lcom/android/server/pm/permission/OneTimePermissionUserManager;ILjava/lang/String;JII)V
 PLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;-><init>(Lcom/android/server/pm/permission/OneTimePermissionUserManager;ILjava/lang/String;JIILcom/android/server/pm/permission/OneTimePermissionUserManager$1;)V
 PLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;->cancelAlarmLocked()V
-PLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;->lambda$new$0$OneTimePermissionUserManager$PackageInactivityListener(II)V
+HPLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;->lambda$new$0$OneTimePermissionUserManager$PackageInactivityListener(II)V
 PLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;->lambda$new$1$OneTimePermissionUserManager$PackageInactivityListener(II)V
 PLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;->lambda$new$2$OneTimePermissionUserManager$PackageInactivityListener(II)V
 PLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;->lambda$onPackageInactiveLocked$3$OneTimePermissionUserManager$PackageInactivityListener()V
 PLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;->onAlarm()V
-PLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;->onImportanceChanged(II)V
+HPLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;->onImportanceChanged(II)V
 PLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;->onPackageInactiveLocked()V
 PLcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;->setAlarmLocked()V
 PLcom/android/server/pm/permission/OneTimePermissionUserManager;-><clinit>()V
 PLcom/android/server/pm/permission/OneTimePermissionUserManager;-><init>(Landroid/content/Context;)V
+PLcom/android/server/pm/permission/OneTimePermissionUserManager;->access$200()Ljava/lang/String;
 PLcom/android/server/pm/permission/OneTimePermissionUserManager;->access$200(Lcom/android/server/pm/permission/OneTimePermissionUserManager;)Landroid/app/ActivityManager;
 PLcom/android/server/pm/permission/OneTimePermissionUserManager;->access$300()Ljava/lang/String;
+PLcom/android/server/pm/permission/OneTimePermissionUserManager;->access$300(Lcom/android/server/pm/permission/OneTimePermissionUserManager;)Landroid/app/ActivityManager;
 PLcom/android/server/pm/permission/OneTimePermissionUserManager;->access$400(Lcom/android/server/pm/permission/OneTimePermissionUserManager;)Landroid/content/Context;
 PLcom/android/server/pm/permission/OneTimePermissionUserManager;->access$500(Lcom/android/server/pm/permission/OneTimePermissionUserManager;)Landroid/app/AlarmManager;
 PLcom/android/server/pm/permission/OneTimePermissionUserManager;->access$600(Lcom/android/server/pm/permission/OneTimePermissionUserManager;)Ljava/lang/Object;
@@ -27430,7 +29957,9 @@
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/permission/PermissionManagerService$1;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->addAllPermissionGroups(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->addAllPermissionGroups(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->addAllPermissions(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->addAllPermissions(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->addOnRuntimePermissionStateChangedListener(Landroid/permission/PermissionManagerInternal$OnRuntimePermissionStateChangedListener;)V
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->backupRuntimePermissions(Landroid/os/UserHandle;)[B
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->enforceCrossUserOrProfilePermission(IIZZLjava/lang/String;)V
@@ -27442,16 +29971,21 @@
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getDefaultDialer(I)Ljava/lang/String;
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getDefaultHome(I)Ljava/lang/String;
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getPermissionSettings()Lcom/android/server/pm/permission/PermissionSettings;
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getPermissionTEMP(Ljava/lang/String;)Lcom/android/server/pm/permission/BasePermission;
+HPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getPermissionTEMP(Ljava/lang/String;)Lcom/android/server/pm/permission/BasePermission;
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->grantDefaultPermissionsToDefaultSimCallManager(Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->grantDefaultPermissionsToDefaultUseOpenWifiApp(Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->grantRequestedRuntimePermissions(Landroid/content/pm/parsing/AndroidPackage;[I[Ljava/lang/String;I)V
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->grantRequestedRuntimePermissions(Lcom/android/server/pm/parsing/pkg/AndroidPackage;[I[Ljava/lang/String;I)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->isPermissionsReviewRequired(Landroid/content/pm/parsing/AndroidPackage;I)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->isPermissionsReviewRequired(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)Z
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->onNewUserCreated(I)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->removeAllPermissions(Landroid/content/pm/parsing/AndroidPackage;Z)V
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->removeAllPermissions(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->resetRuntimePermissions(Landroid/content/pm/parsing/AndroidPackage;I)V
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->resetRuntimePermissions(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)V
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->restoreDelayedRuntimePermissions(Ljava/lang/String;Landroid/os/UserHandle;)V
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->revokeRuntimePermissionsIfGroupChanged(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;)V
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->revokeRuntimePermissionsIfGroupChanged(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/ArrayList;)V
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setCheckPermissionDelegate(Landroid/permission/PermissionManagerInternal$CheckPermissionDelegate;)V
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setDefaultBrowser(Ljava/lang/String;ZZI)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setDefaultBrowserProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;)V
@@ -27467,22 +30001,29 @@
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setUseOpenWifiAppPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setVoiceInteractionPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setWhitelistedRestrictedPermissions(Landroid/content/pm/parsing/AndroidPackage;[ILjava/util/List;II)V
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setWhitelistedRestrictedPermissions(Lcom/android/server/pm/parsing/pkg/AndroidPackage;[ILjava/util/List;II)V
 PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setWhitelistedRestrictedPermissions(Ljava/lang/String;Ljava/util/List;II)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->systemReady()V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->updateAllPermissions(Ljava/lang/String;Z)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->updatePermissions(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->updatePermissions(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;)V
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->updatePermissions(Ljava/lang/String;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->wereDefaultPermissionsGrantedSinceBoot(I)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;-><clinit>()V
 HSPLcom/android/server/pm/permission/PermissionManagerService;-><init>(Landroid/content/Context;Ljava/lang/Object;)V
 PLcom/android/server/pm/permission/PermissionManagerService;->access$000(Lcom/android/server/pm/permission/PermissionManagerService;)Landroid/os/Handler;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$100(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerService$OnPermissionChangeListeners;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1000(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;Z)V
+PLcom/android/server/pm/permission/PermissionManagerService;->access$1000(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 PLcom/android/server/pm/permission/PermissionManagerService;->access$1100(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;[I[Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->access$1100(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/parsing/pkg/AndroidPackage;[I[Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 PLcom/android/server/pm/permission/PermissionManagerService;->access$1200(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;ILjava/util/List;IILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->access$1200(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/parsing/pkg/AndroidPackage;ILjava/util/List;IILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 PLcom/android/server/pm/permission/PermissionManagerService;->access$1300(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;Ljava/util/List;II)Z
-PLcom/android/server/pm/permission/PermissionManagerService;->access$1400(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1400(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->access$1400(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1500(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;ZLcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1600(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;I)V
+PLcom/android/server/pm/permission/PermissionManagerService;->access$1600(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->access$1700(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;I)[Ljava/lang/String;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1800(Lcom/android/server/pm/permission/PermissionManagerService;IIZZZLjava/lang/String;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1900(Lcom/android/server/pm/permission/PermissionManagerService;IIZZLjava/lang/String;)V
@@ -27514,11 +30055,17 @@
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$400(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$500(Lcom/android/server/pm/permission/PermissionManagerService;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$600(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;I)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$600(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)Z
 PLcom/android/server/pm/permission/PermissionManagerService;->access$700(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->access$700(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/ArrayList;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$800(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$800(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->access$900(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$900(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->addAllPermissionGroups(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->addAllPermissionGroups(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->addAllPermissions(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->addAllPermissions(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->addOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->addOnRuntimePermissionStateChangedListener(Landroid/permission/PermissionManagerInternal$OnRuntimePermissionStateChangedListener;)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->addPermission(Landroid/content/pm/PermissionInfo;Z)Z
@@ -27527,24 +30074,29 @@
 PLcom/android/server/pm/permission/PermissionManagerService;->backupRuntimePermissions(Landroid/os/UserHandle;)[B
 PLcom/android/server/pm/permission/PermissionManagerService;->buildInvalidCrossUserPermissionMessage(Ljava/lang/String;Z)Ljava/lang/String;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->cacheBackgroundToForegoundPermissionMapping()V
+HPLcom/android/server/pm/permission/PermissionManagerService;->calculateCurrentPermissionFootprintLocked(Lcom/android/server/pm/permission/BasePermission;)I
 HPLcom/android/server/pm/permission/PermissionManagerService;->checkExistsAndEnforceCannotModifyImmutablyRestrictedPermission(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->checkIfLegacyStorageOpsNeedToBeUpdated(Landroid/content/pm/parsing/AndroidPackage;Z[I)[I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->checkIfLegacyStorageOpsNeedToBeUpdated(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z[I)[I
 HSPLcom/android/server/pm/permission/PermissionManagerService;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
 HSPLcom/android/server/pm/permission/PermissionManagerService;->checkPermissionImpl(Ljava/lang/String;Ljava/lang/String;I)I
 HSPLcom/android/server/pm/permission/PermissionManagerService;->checkPermissionInternal(Landroid/content/pm/parsing/AndroidPackage;ZLjava/lang/String;I)I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->checkPermissionInternal(Lcom/android/server/pm/parsing/pkg/AndroidPackage;ZLjava/lang/String;I)I
 HSPLcom/android/server/pm/permission/PermissionManagerService;->checkSinglePermissionInternal(ILcom/android/server/pm/permission/PermissionsState;Ljava/lang/String;)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->checkSingleUidPermissionInternal(ILjava/lang/String;)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->checkUidPermission(Ljava/lang/String;I)I
 HSPLcom/android/server/pm/permission/PermissionManagerService;->checkUidPermissionImpl(Ljava/lang/String;I)I
 HSPLcom/android/server/pm/permission/PermissionManagerService;->checkUidPermissionInternal(Landroid/content/pm/parsing/AndroidPackage;ILjava/lang/String;)I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->checkUidPermissionInternal(Lcom/android/server/pm/parsing/pkg/AndroidPackage;ILjava/lang/String;)I
 HSPLcom/android/server/pm/permission/PermissionManagerService;->create(Landroid/content/Context;Ljava/lang/Object;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->doNotifyRuntimePermissionStateChanged(Ljava/lang/String;I)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->enforceCrossUserOrProfilePermission(IIZZLjava/lang/String;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->enforceCrossUserPermission(IIZZZLjava/lang/String;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->enforceGrantRevokeGetRuntimePermissionPermissions(Ljava/lang/String;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->enforceGrantRevokeRuntimePermissionPermissions(Ljava/lang/String;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->enforcePermissionCapLocked(Landroid/content/pm/PermissionInfo;Lcom/android/server/pm/permission/BasePermission;)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->getAllPermissionGroups(I)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/permission/PermissionManagerService;->getAppOpPermissionPackages(Ljava/lang/String;)[Ljava/lang/String;
+HPLcom/android/server/pm/permission/PermissionManagerService;->getAppOpPermissionPackages(Ljava/lang/String;)[Ljava/lang/String;
 HPLcom/android/server/pm/permission/PermissionManagerService;->getAppOpPermissionPackagesInternal(Ljava/lang/String;I)[Ljava/lang/String;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->getBackgroundPermissions()Landroid/util/ArrayMap;
 PLcom/android/server/pm/permission/PermissionManagerService;->getDefaultBrowser(I)Ljava/lang/String;
@@ -27556,25 +30108,37 @@
 HSPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionInfo(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->getSplitPermissions()Ljava/util/List;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->getVolumeUuidForPackage(Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->getVolumeUuidForPackage(Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Ljava/lang/String;
 HPLcom/android/server/pm/permission/PermissionManagerService;->getWhitelistedRestrictedPermissions(Ljava/lang/String;II)Ljava/util/List;
 PLcom/android/server/pm/permission/PermissionManagerService;->grantDefaultPermissionsToActiveLuiApp(Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->grantDefaultPermissionsToEnabledCarrierApps([Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->grantDefaultPermissionsToEnabledImsServices([Ljava/lang/String;I)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->grantDefaultPermissionsToEnabledTelephonyDataServices([Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->grantRequestedRuntimePermissions(Landroid/content/pm/parsing/AndroidPackage;[I[Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->grantRequestedRuntimePermissions(Lcom/android/server/pm/parsing/pkg/AndroidPackage;[I[Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->grantRequestedRuntimePermissionsForUser(Landroid/content/pm/parsing/AndroidPackage;I[Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->grantRequestedRuntimePermissionsForUser(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I[Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->grantRuntimePermissionInternal(Ljava/lang/String;Ljava/lang/String;ZIILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->grantSignaturePermission(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/permission/BasePermission;Lcom/android/server/pm/permission/PermissionsState;)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->grantSignaturePermission(Ljava/lang/String;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/permission/BasePermission;Lcom/android/server/pm/permission/PermissionsState;)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->grantSignaturePermission(Ljava/lang/String;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/permission/BasePermission;Lcom/android/server/pm/permission/PermissionsState;)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->hasCrossUserPermission(IIIZZ)Z
 HPLcom/android/server/pm/permission/PermissionManagerService;->hasPermission(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Z
+HPLcom/android/server/pm/permission/PermissionManagerService;->hasPermission(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;)Z
 HPLcom/android/server/pm/permission/PermissionManagerService;->hasPermission(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->hasPrivappWhitelistEntry(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->hasPrivappWhitelistEntry(Ljava/lang/String;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->inheritPermissionStateToNewImplicitPermissionLocked(Landroid/util/ArraySet;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionsState;Landroid/content/pm/parsing/AndroidPackage;I)V
+PLcom/android/server/pm/permission/PermissionManagerService;->inheritPermissionStateToNewImplicitPermissionLocked(Landroid/util/ArraySet;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionsState;Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->isNewPlatformPermissionForPackage(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/permission/PermissionManagerService;->isNewPlatformPermissionForPackage(Ljava/lang/String;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->isPackageRequestingPermission(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->isPackageRequestingPermission(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;)Z
 HPLcom/android/server/pm/permission/PermissionManagerService;->isPermissionRevokedByPolicy(Ljava/lang/String;Ljava/lang/String;I)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->isPermissionsReviewRequired(Landroid/content/pm/parsing/AndroidPackage;I)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->isPermissionsReviewRequired(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)Z
+HPLcom/android/server/pm/permission/PermissionManagerService;->isSameProfileGroup(II)Z
 HPLcom/android/server/pm/permission/PermissionManagerService;->killUid(IILjava/lang/String;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->lambda$NPd9St1HBvGAtg1uhMV2Upfww4g(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->lambda$grantDefaultPermissionsToActiveLuiApp$7$PermissionManagerService(Ljava/lang/String;I)V
@@ -27586,27 +30150,36 @@
 PLcom/android/server/pm/permission/PermissionManagerService;->lambda$revokeDefaultPermissionsFromDisabledTelephonyDataServices$6$PermissionManagerService([Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->lambda$revokeDefaultPermissionsFromLuiApps$8$PermissionManagerService([Ljava/lang/String;I)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->lambda$updatePermissionSourcePackage$11$PermissionManagerService(Lcom/android/server/pm/permission/BasePermission;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;Landroid/content/pm/parsing/AndroidPackage;)V
+HPLcom/android/server/pm/permission/PermissionManagerService;->lambda$updatePermissionSourcePackage$11$PermissionManagerService(Lcom/android/server/pm/permission/BasePermission;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->lambda$updatePermissions$10$PermissionManagerService(Landroid/content/pm/parsing/AndroidPackage;ZLjava/lang/String;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->lambda$updatePermissions$10$PermissionManagerService(Lcom/android/server/pm/parsing/pkg/AndroidPackage;ZLjava/lang/String;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->logPermission(ILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->notifyRuntimePermissionStateChanged(Ljava/lang/String;I)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->queryPermissionsByGroup(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
 HSPLcom/android/server/pm/permission/PermissionManagerService;->removeAllPermissions(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HPLcom/android/server/pm/permission/PermissionManagerService;->removeAllPermissions(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Z)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->removeOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
 PLcom/android/server/pm/permission/PermissionManagerService;->removeWhitelistedRestrictedPermission(Ljava/lang/String;Ljava/lang/String;II)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->resetRuntimePermissionsInternal(Landroid/content/pm/parsing/AndroidPackage;I)V
+HPLcom/android/server/pm/permission/PermissionManagerService;->resetRuntimePermissionsInternal(Lcom/android/server/pm/parsing/pkg/AndroidPackage;I)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->restoreDelayedRuntimePermissions(Ljava/lang/String;Landroid/os/UserHandle;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->restorePermissionState(Landroid/content/pm/parsing/AndroidPackage;ZLjava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->restorePermissionState(Lcom/android/server/pm/parsing/pkg/AndroidPackage;ZLjava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->revokeDefaultPermissionsFromDisabledTelephonyDataServices([Ljava/lang/String;I)V
 PLcom/android/server/pm/permission/PermissionManagerService;->revokeDefaultPermissionsFromLuiApps([Ljava/lang/String;I)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->revokePermissionsNoLongerImplicitLocked(Lcom/android/server/pm/permission/PermissionsState;Landroid/content/pm/parsing/AndroidPackage;[I)[I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->revokePermissionsNoLongerImplicitLocked(Lcom/android/server/pm/permission/PermissionsState;Lcom/android/server/pm/parsing/pkg/AndroidPackage;[I)[I
 HPLcom/android/server/pm/permission/PermissionManagerService;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->revokeRuntimePermissionInternal(Ljava/lang/String;Ljava/lang/String;ZIILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->revokeRuntimePermissionsIfGroupChanged(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HPLcom/android/server/pm/permission/PermissionManagerService;->revokeRuntimePermissionsIfGroupChanged(Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/util/ArrayList;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->revokeUnusedSharedUserPermissionsLocked(Lcom/android/server/pm/SharedUserSetting;[I)[I
 PLcom/android/server/pm/permission/PermissionManagerService;->setDefaultBrowser(Ljava/lang/String;I)Z
 PLcom/android/server/pm/permission/PermissionManagerService;->setDefaultBrowserInternal(Ljava/lang/String;ZZI)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->setInitialGrantForNewImplicitPermissionsLocked(Lcom/android/server/pm/permission/PermissionsState;Lcom/android/server/pm/permission/PermissionsState;Landroid/content/pm/parsing/AndroidPackage;Landroid/util/ArraySet;[I)[I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->setInitialGrantForNewImplicitPermissionsLocked(Lcom/android/server/pm/permission/PermissionsState;Lcom/android/server/pm/permission/PermissionsState;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/util/ArraySet;[I)[I
 HPLcom/android/server/pm/permission/PermissionManagerService;->setWhitelistedRestrictedPermissionsForUser(Landroid/content/pm/parsing/AndroidPackage;ILjava/util/List;IILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HPLcom/android/server/pm/permission/PermissionManagerService;->setWhitelistedRestrictedPermissionsForUser(Lcom/android/server/pm/parsing/pkg/AndroidPackage;ILjava/util/List;IILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HPLcom/android/server/pm/permission/PermissionManagerService;->setWhitelistedRestrictedPermissionsInternal(Ljava/lang/String;Ljava/util/List;II)Z
 HPLcom/android/server/pm/permission/PermissionManagerService;->shouldShowRequestPermissionRationale(Ljava/lang/String;Ljava/lang/String;I)Z
 PLcom/android/server/pm/permission/PermissionManagerService;->startOneTimePermissionSession(Ljava/lang/String;IJII)V
@@ -27616,15 +30189,19 @@
 HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;IIZI)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionFlagsInternal(Ljava/lang/String;Ljava/lang/String;IIIIZLcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionSourcePackage(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionSourcePackage(Ljava/lang/String;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)Z
 HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionTreeSourcePackage(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;)Z
-PLcom/android/server/pm/permission/PermissionManagerService;->updatePermissions(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionTreeSourcePackage(Ljava/lang/String;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissions(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissions(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->updatePermissions(Ljava/lang/String;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissions(Ljava/lang/String;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
 HSPLcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;-><init>()V
 HSPLcom/android/server/pm/permission/PermissionManagerServiceInternal;-><init>()V
 HSPLcom/android/server/pm/permission/PermissionSettings;-><init>(Ljava/lang/Object;)V
 HSPLcom/android/server/pm/permission/PermissionSettings;->addAppOpPackage(Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/pm/permission/PermissionSettings;->dumpPermissions(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;ZLcom/android/server/pm/DumpState;)V
-PLcom/android/server/pm/permission/PermissionSettings;->enforcePermissionTree(Ljava/lang/String;I)Lcom/android/server/pm/permission/BasePermission;
+HPLcom/android/server/pm/permission/PermissionSettings;->enforcePermissionTree(Ljava/lang/String;I)Lcom/android/server/pm/permission/BasePermission;
 HSPLcom/android/server/pm/permission/PermissionSettings;->getAllPermissionTreesLocked()Ljava/util/Collection;
 HSPLcom/android/server/pm/permission/PermissionSettings;->getAllPermissionsLocked()Ljava/util/Collection;
 HSPLcom/android/server/pm/permission/PermissionSettings;->getPermission(Ljava/lang/String;)Lcom/android/server/pm/permission/BasePermission;
@@ -27659,6 +30236,8 @@
 HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->access$002(Lcom/android/server/pm/permission/PermissionsState$PermissionState;Z)Z
 HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->access$100(Lcom/android/server/pm/permission/PermissionsState$PermissionState;)I
 HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->access$102(Lcom/android/server/pm/permission/PermissionsState$PermissionState;I)I
+HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->access$200(Lcom/android/server/pm/permission/PermissionsState$PermissionState;)I
+HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->access$202(Lcom/android/server/pm/permission/PermissionsState$PermissionState;I)I
 HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->getFlags()I
 HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->getName()Ljava/lang/String;
 HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->isDefault()Z
@@ -27666,6 +30245,7 @@
 HSPLcom/android/server/pm/permission/PermissionsState;-><clinit>()V
 HSPLcom/android/server/pm/permission/PermissionsState;-><init>()V
 HPLcom/android/server/pm/permission/PermissionsState;-><init>(Lcom/android/server/pm/permission/PermissionsState;)V
+HSPLcom/android/server/pm/permission/PermissionsState;->access$100()V
 HSPLcom/android/server/pm/permission/PermissionsState;->appendInts([I[I)[I
 HSPLcom/android/server/pm/permission/PermissionsState;->computeGids(I)[I
 HSPLcom/android/server/pm/permission/PermissionsState;->computeGids([I)[I
@@ -27690,6 +30270,7 @@
 HSPLcom/android/server/pm/permission/PermissionsState;->hasRequestedPermission(Landroid/util/ArraySet;)Z
 HSPLcom/android/server/pm/permission/PermissionsState;->hasRequestedPermission(Ljava/lang/String;)Z
 HSPLcom/android/server/pm/permission/PermissionsState;->hasRuntimePermission(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/permission/PermissionsState;->invalidateCache()V
 PLcom/android/server/pm/permission/PermissionsState;->isPermissionReviewRequired(I)Z
 PLcom/android/server/pm/permission/PermissionsState;->reset()V
 HSPLcom/android/server/pm/permission/PermissionsState;->revokeInstallPermission(Lcom/android/server/pm/permission/BasePermission;)I
@@ -27697,6 +30278,23 @@
 PLcom/android/server/pm/permission/PermissionsState;->revokeRuntimePermission(Lcom/android/server/pm/permission/BasePermission;I)I
 HSPLcom/android/server/pm/permission/PermissionsState;->setGlobalGids([I)V
 HSPLcom/android/server/pm/permission/PermissionsState;->updatePermissionFlags(Lcom/android/server/pm/permission/BasePermission;III)Z
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;-><init>()V
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->getLastPackageUsageTimeInMills()[J
+HPLcom/android/server/pm/pkg/PackageStateUnserialized;->getLatestForegroundPackageUseTimeInMills()J
+HPLcom/android/server/pm/pkg/PackageStateUnserialized;->getLatestPackageUseTimeInMills()J
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->getOverrideSeInfo()Ljava/lang/String;
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->getUsesLibraryFiles()Ljava/util/List;
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->getUsesLibraryInfos()Ljava/util/List;
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->isHiddenUntilInstalled()Z
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->isUpdatedSystemApp()Z
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->lazyInitLastPackageUsageTimeInMills()[J
+PLcom/android/server/pm/pkg/PackageStateUnserialized;->setHiddenUntilInstalled(Z)Lcom/android/server/pm/pkg/PackageStateUnserialized;
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->setLastPackageUsageTimeInMills(IJ)Lcom/android/server/pm/pkg/PackageStateUnserialized;
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->setOverrideSeInfo(Ljava/lang/String;)Lcom/android/server/pm/pkg/PackageStateUnserialized;
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->setUpdatedSystemApp(Z)Lcom/android/server/pm/pkg/PackageStateUnserialized;
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->setUsesLibraryFiles(Ljava/util/List;)Lcom/android/server/pm/pkg/PackageStateUnserialized;
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->setUsesLibraryInfos(Ljava/util/List;)Lcom/android/server/pm/pkg/PackageStateUnserialized;
+HSPLcom/android/server/pm/pkg/PackageStateUnserialized;->updateFrom(Lcom/android/server/pm/pkg/PackageStateUnserialized;)V
 PLcom/android/server/policy/-$$Lambda$LegacyGlobalActions$MdLN6qUJHty5FwMejjTE2cTYSvc;-><init>(Lcom/android/server/policy/LegacyGlobalActions;)V
 PLcom/android/server/policy/-$$Lambda$LegacyGlobalActions$MdLN6qUJHty5FwMejjTE2cTYSvc;->getAsBoolean()Z
 PLcom/android/server/policy/-$$Lambda$LegacyGlobalActions$wqp7aD3DxIVGmy_uGo-yxhtwmQk;-><init>(Lcom/android/server/policy/LegacyGlobalActions;)V
@@ -27719,8 +30317,10 @@
 HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$V2gOjn4rTBH_rbxagOz-eOTvNfc;->onRuntimePermissionStateChanged(Ljava/lang/String;I)V
 PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$enZnky8NIhd5B9lAhmYeFn1Y6mk;-><init>(Lcom/android/internal/infra/AndroidFuture;I)V
 PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$enZnky8NIhd5B9lAhmYeFn1Y6mk;->accept(Ljava/lang/Object;)V
-PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$rJp0VdbmrKtSdyFQpzRCvpLbQYE;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
-HPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$rJp0VdbmrKtSdyFQpzRCvpLbQYE;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$i87nwVknDNR-kxbgdgQq3zYShyg;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
+HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$i87nwVknDNR-kxbgdgQq3zYShyg;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$rJp0VdbmrKtSdyFQpzRCvpLbQYE;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
+HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$rJp0VdbmrKtSdyFQpzRCvpLbQYE;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/policy/-$$Lambda$PhoneWindowManager$DisplayHomeButtonHandler$ljCIzo7y96OZCYYMVaAi6LAwRAE;-><init>(Lcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;)V
 HPLcom/android/server/policy/-$$Lambda$PhoneWindowManager$DisplayHomeButtonHandler$ljCIzo7y96OZCYYMVaAi6LAwRAE;->run()V
 PLcom/android/server/policy/-$$Lambda$j_3GF7S52oSV__e_mYWlY5TeyiM;-><init>(Lcom/android/server/policy/GlobalActions;)V
@@ -27813,32 +30413,36 @@
 HPLcom/android/server/policy/PermissionPolicyService$Internal;->isActionRemovedForCallingPackage(Landroid/content/Intent;ILjava/lang/String;)Z
 HSPLcom/android/server/policy/PermissionPolicyService$Internal;->isInitialized(I)Z
 HSPLcom/android/server/policy/PermissionPolicyService$Internal;->setOnInitializedCallback(Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;II)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;II)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;ILjava/lang/String;I)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;->equals(Ljava/lang/Object;)Z
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;->hashCode()I
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;->hashCode()I
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;-><init>(Lcom/android/server/policy/PermissionPolicyService;Landroid/content/Context;)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->access$400(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addAppOps(Landroid/content/pm/PackageInfo;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Ljava/lang/String;)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addAppOps(Landroid/content/pm/PackageInfo;Ljava/lang/String;)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addExtraAppOp(Landroid/content/pm/PackageInfo;Landroid/content/pm/PermissionInfo;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addExtraAppOp(Landroid/content/pm/PackageInfo;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/PermissionInfo;)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addPackage(Ljava/lang/String;)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addPermissionAppOp(Landroid/content/pm/PackageInfo;Landroid/content/pm/PermissionInfo;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addUid(I)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->getPackageNamesForUid(I)[Ljava/lang/String;
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidMode(III)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addPermissionAppOp(Landroid/content/pm/PackageInfo;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/PermissionInfo;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addUid(I)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->getPackageNamesForUid(I)[Ljava/lang/String;
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidMode(III)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidMode(IIILjava/lang/String;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeAllowed(II)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeAllowed(II)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeAllowed(IILjava/lang/String;)V
-PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeForeground(II)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeForeground(II)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeForeground(IILjava/lang/String;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnored(II)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnored(II)V
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnored(IILjava/lang/String;)V
-PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnoredIfNotAllowed(II)Z
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnoredIfNotAllowed(II)Z
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnoredIfNotAllowed(IILjava/lang/String;)Z
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->shouldGrantAppOp(Landroid/content/pm/PackageInfo;Landroid/content/pm/PermissionInfo;)Z
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->shouldGrantAppOp(Landroid/content/pm/PackageInfo;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/content/pm/PermissionInfo;)Z
 HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->syncPackages()V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->syncUids()V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->syncUids()V
 HSPLcom/android/server/policy/PermissionPolicyService;-><clinit>()V
 HSPLcom/android/server/policy/PermissionPolicyService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/policy/PermissionPolicyService;->access$100(Lcom/android/server/policy/PermissionPolicyService;I)Z
@@ -27864,7 +30468,8 @@
 PLcom/android/server/policy/PermissionPolicyService;->lambda$grantOrUpgradeDefaultRuntimePermissionsIfNeeded$1(Lcom/android/internal/infra/AndroidFuture;ILjava/lang/Boolean;)V
 HPLcom/android/server/policy/PermissionPolicyService;->lambda$onStart$0$PermissionPolicyService(Ljava/lang/String;I)V
 HSPLcom/android/server/policy/PermissionPolicyService;->lambda$synchronizePermissionsAndAppOpsForUser$1(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;Landroid/content/pm/parsing/AndroidPackage;)V
-HPLcom/android/server/policy/PermissionPolicyService;->lambda$synchronizePermissionsAndAppOpsForUser$2(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/policy/PermissionPolicyService;->lambda$synchronizePermissionsAndAppOpsForUser$1(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;Lcom/android/server/pm/parsing/pkg/AndroidPackage;)V
+HSPLcom/android/server/policy/PermissionPolicyService;->lambda$synchronizePermissionsAndAppOpsForUser$2(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;Landroid/content/pm/parsing/AndroidPackage;)V
 HSPLcom/android/server/policy/PermissionPolicyService;->onBootPhase(I)V
 HSPLcom/android/server/policy/PermissionPolicyService;->onStart()V
 HSPLcom/android/server/policy/PermissionPolicyService;->onStartUser(I)V
@@ -27896,7 +30501,7 @@
 HSPLcom/android/server/policy/PhoneWindowManager$7;->onAppTransitionStartingLocked(IJJJ)I
 HSPLcom/android/server/policy/PhoneWindowManager$8;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
 HPLcom/android/server/policy/PhoneWindowManager$8;->onShowingChanged()V
-PLcom/android/server/policy/PhoneWindowManager$8;->onTrustedChanged()V
+HPLcom/android/server/policy/PhoneWindowManager$8;->onTrustedChanged()V
 PLcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler$1;-><init>(Lcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;)V
 PLcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;-><init>(Lcom/android/server/policy/PhoneWindowManager;I)V
 HPLcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;->handleHomeButton(Landroid/os/IBinder;Landroid/view/KeyEvent;)I
@@ -27947,16 +30552,17 @@
 HPLcom/android/server/policy/PhoneWindowManager;->cancelPendingScreenshotChordAction()V
 HPLcom/android/server/policy/PhoneWindowManager;->cancelPossibleVeryLongPressReboot()V
 PLcom/android/server/policy/PhoneWindowManager;->cancelPreloadRecentApps()V
+HPLcom/android/server/policy/PhoneWindowManager;->checkAddPermission(IZLjava/lang/String;[I)I
 HSPLcom/android/server/policy/PhoneWindowManager;->checkAddPermission(Landroid/view/WindowManager$LayoutParams;[I)I
 PLcom/android/server/policy/PhoneWindowManager;->checkShowToOwnerOnly(Landroid/view/WindowManager$LayoutParams;)Z
 HPLcom/android/server/policy/PhoneWindowManager;->createHiddenByKeyguardExit(ZZZ)Landroid/view/animation/Animation;
-PLcom/android/server/policy/PhoneWindowManager;->createHomeDockIntent()Landroid/content/Intent;
+HPLcom/android/server/policy/PhoneWindowManager;->createHomeDockIntent()Landroid/content/Intent;
 PLcom/android/server/policy/PhoneWindowManager;->createKeyguardWallpaperExit(Z)Landroid/view/animation/Animation;
 PLcom/android/server/policy/PhoneWindowManager;->dismissKeyguardLw(Lcom/android/internal/policy/IKeyguardDismissCallback;Ljava/lang/CharSequence;)V
 PLcom/android/server/policy/PhoneWindowManager;->dispatchMediaKeyRepeatWithWakeLock(Landroid/view/KeyEvent;)V
 PLcom/android/server/policy/PhoneWindowManager;->dispatchMediaKeyWithWakeLock(Landroid/view/KeyEvent;)V
 PLcom/android/server/policy/PhoneWindowManager;->dispatchMediaKeyWithWakeLockToAudioService(Landroid/view/KeyEvent;)V
-PLcom/android/server/policy/PhoneWindowManager;->dispatchUnhandledKey(Landroid/os/IBinder;Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;
+HPLcom/android/server/policy/PhoneWindowManager;->dispatchUnhandledKey(Landroid/os/IBinder;Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;
 PLcom/android/server/policy/PhoneWindowManager;->doubleTapOnHomeBehaviorToString(I)Ljava/lang/String;
 HPLcom/android/server/policy/PhoneWindowManager;->dump(Ljava/lang/String;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/policy/PhoneWindowManager;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
@@ -27972,7 +30578,7 @@
 HPLcom/android/server/policy/PhoneWindowManager;->getAccessibilityShortcutTimeout()J
 PLcom/android/server/policy/PhoneWindowManager;->getAudioManagerInternal()Landroid/media/AudioManagerInternal;
 HPLcom/android/server/policy/PhoneWindowManager;->getAudioService()Landroid/media/IAudioService;
-PLcom/android/server/policy/PhoneWindowManager;->getDisplayContext(Landroid/content/Context;I)Landroid/content/Context;
+HPLcom/android/server/policy/PhoneWindowManager;->getDisplayContext(Landroid/content/Context;I)Landroid/content/Context;
 HPLcom/android/server/policy/PhoneWindowManager;->getDreamManager()Landroid/service/dreams/IDreamManager;
 HPLcom/android/server/policy/PhoneWindowManager;->getHdmiControl()Lcom/android/server/policy/PhoneWindowManager$HdmiControl;
 HSPLcom/android/server/policy/PhoneWindowManager;->getKeyguardDrawnTimeout()J
@@ -28032,7 +30638,7 @@
 PLcom/android/server/policy/PhoneWindowManager;->keepScreenOnStartedLw()V
 PLcom/android/server/policy/PhoneWindowManager;->keepScreenOnStoppedLw()V
 HSPLcom/android/server/policy/PhoneWindowManager;->keyguardOn()Z
-PLcom/android/server/policy/PhoneWindowManager;->launchHomeFromHotKey(I)V
+HPLcom/android/server/policy/PhoneWindowManager;->launchHomeFromHotKey(I)V
 HPLcom/android/server/policy/PhoneWindowManager;->launchHomeFromHotKey(IZZ)V
 PLcom/android/server/policy/PhoneWindowManager;->lidBehaviorToString(I)Ljava/lang/String;
 PLcom/android/server/policy/PhoneWindowManager;->lockNow(Landroid/os/Bundle;)V
@@ -28064,13 +30670,15 @@
 HPLcom/android/server/policy/PhoneWindowManager;->sendSystemKeyToStatusBarAsync(I)V
 HSPLcom/android/server/policy/PhoneWindowManager;->setAllowLockscreenWhenOn(IZ)V
 HSPLcom/android/server/policy/PhoneWindowManager;->setAodShowing(Z)Z
+PLcom/android/server/policy/PhoneWindowManager;->setCurrentUserLw(I)V
 HSPLcom/android/server/policy/PhoneWindowManager;->setDefaultDisplay(Lcom/android/server/policy/WindowManagerPolicy$DisplayContentInfo;)V
 HPLcom/android/server/policy/PhoneWindowManager;->setDismissImeOnBackKeyPressed(Z)V
 PLcom/android/server/policy/PhoneWindowManager;->setKeyguardCandidateLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;)V
-PLcom/android/server/policy/PhoneWindowManager;->setKeyguardOccludedLw(ZZ)Z
+HPLcom/android/server/policy/PhoneWindowManager;->setKeyguardOccludedLw(ZZ)Z
 PLcom/android/server/policy/PhoneWindowManager;->setNavBarVirtualKeyHapticFeedbackEnabledLw(Z)V
 PLcom/android/server/policy/PhoneWindowManager;->setPipVisibilityLw(Z)V
 HSPLcom/android/server/policy/PhoneWindowManager;->setSafeMode(Z)V
+PLcom/android/server/policy/PhoneWindowManager;->setSwitchingUser(Z)V
 HSPLcom/android/server/policy/PhoneWindowManager;->setTopFocusedDisplay(I)V
 PLcom/android/server/policy/PhoneWindowManager;->shortPressOnPowerBehaviorToString(I)Ljava/lang/String;
 PLcom/android/server/policy/PhoneWindowManager;->shortPressOnSleepBehaviorToString(I)Ljava/lang/String;
@@ -28111,7 +30719,9 @@
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$1;-><init>()V
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;-><init>(ZIZZ)V
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;-><init>(ZIZZZ)V
+PLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;-><init>(ZIZZZZ)V
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;-><init>(ZZZZZ)V
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;-><init>(ZZZZZZ)V
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->getExtraAppOpCode()I
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayAllowExtraAppOp()Z
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayDenyExtraAppOpIfGranted()Z
@@ -28122,12 +30732,13 @@
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;-><clinit>()V
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;-><init>()V
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->forPermission(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Landroid/os/UserHandle;Ljava/lang/String;)Lcom/android/server/policy/SoftRestrictedPermissionPolicy;
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->forPermission(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Lcom/android/server/pm/parsing/pkg/AndroidPackage;Landroid/os/UserHandle;Ljava/lang/String;)Lcom/android/server/policy/SoftRestrictedPermissionPolicy;
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->getExtraAppOpCode()I
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->getMinimumTargetSDK(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Landroid/os/UserHandle;)I
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->hasUidRequestedLegacyExternalStorage(ILandroid/content/Context;)Z
 HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->hasWriteMediaStorageGrantedForUid(ILandroid/content/Context;)Z
-HPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->isChangeEnabled(Landroid/content/pm/ApplicationInfo;J)Z
-HPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->isChangeEnabledForUid(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Landroid/os/UserHandle;J)Z
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->isChangeEnabled(Landroid/content/pm/ApplicationInfo;J)Z
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->isChangeEnabledForUid(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Landroid/os/UserHandle;J)Z
 HPLcom/android/server/policy/SplashScreenSurface;-><init>(Landroid/view/View;Landroid/os/IBinder;)V
 HPLcom/android/server/policy/SplashScreenSurface;->remove()V
 HSPLcom/android/server/policy/WakeGestureListener$1;-><init>(Lcom/android/server/policy/WakeGestureListener;)V
@@ -28138,6 +30749,7 @@
 HSPLcom/android/server/policy/WakeGestureListener;->isSupported()Z
 PLcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;->cameraLensStateToString(I)Ljava/lang/String;
 HSPLcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;->lidStateToString(I)Ljava/lang/String;
+HSPLcom/android/server/policy/WindowManagerPolicy;->getMaxWindowLayer()I
 HPLcom/android/server/policy/WindowManagerPolicy;->getSubWindowLayerFromTypeLw(I)I
 HSPLcom/android/server/policy/WindowManagerPolicy;->getWindowLayerFromTypeLw(I)I
 HSPLcom/android/server/policy/WindowManagerPolicy;->getWindowLayerFromTypeLw(IZ)I
@@ -28182,7 +30794,7 @@
 PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$1;->onServiceDisconnected(Landroid/content/ComponentName;)V
 PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardShowDelegate;-><init>(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$DrawnListener;)V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardShowDelegate;->onDrawn()V
+HPLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardShowDelegate;->onDrawn()V
 HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardState;-><init>()V
 PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardState;->access$400(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardState;)V
 HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardState;->reset()V
@@ -28218,8 +30830,10 @@
 HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onStartedWakingUp()V
 HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onSystemReady()V
 PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->screenStateToString(I)Ljava/lang/String;
+PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->setCurrentUser(I)V
 HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->setKeyguardEnabled(Z)V
 PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->setOccluded(ZZ)V
+PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->setSwitchingUser(Z)V
 PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->startKeyguardExitAnimation(JJ)V
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;-><init>(Landroid/content/Context;Lcom/android/internal/policy/IKeyguardService;Lcom/android/server/policy/keyguard/KeyguardStateMonitor$StateCallback;)V
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->dismiss(Lcom/android/internal/policy/IKeyguardDismissCallback;Ljava/lang/CharSequence;)V
@@ -28234,17 +30848,19 @@
 HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onDreamingStarted()V
 HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onDreamingStopped()V
 HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onFinishedGoingToSleep(IZ)V
-PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onFinishedWakingUp()V
-PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurnedOff()V
-PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurnedOn()V
-PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurningOff()V
+HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onFinishedWakingUp()V
+HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurnedOff()V
+HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurnedOn()V
+HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurningOff()V
 HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onScreenTurningOn(Lcom/android/internal/policy/IKeyguardDrawnCallback;)V
 HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onStartedGoingToSleep(I)V
-PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onStartedWakingUp()V
+HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onStartedWakingUp()V
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onSystemReady()V
+PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->setCurrentUser(I)V
 HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->setKeyguardEnabled(Z)V
 PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->setOccluded(ZZ)V
-PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->startKeyguardExitAnimation(JJ)V
+PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->setSwitchingUser(Z)V
+HPLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->startKeyguardExitAnimation(JJ)V
 PLcom/android/server/policy/keyguard/KeyguardStateMonitor;-><init>(Landroid/content/Context;Lcom/android/internal/policy/IKeyguardService;Lcom/android/server/policy/keyguard/KeyguardStateMonitor$StateCallback;)V
 PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
 PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->hasLockscreenWallpaper()Z
@@ -28257,6 +30873,7 @@
 HPLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onShowingStateChanged(Z)V
 PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onSimSecureStateChanged(Z)V
 HPLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onTrustedChanged(Z)V
+PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->setCurrentUser(I)V
 HSPLcom/android/server/policy/role/LegacyRoleResolutionPolicy;-><init>(Landroid/content/Context;)V
 HPLcom/android/server/policy/role/LegacyRoleResolutionPolicy;->getRoleHolders(Ljava/lang/String;I)Ljava/util/List;
 HPLcom/android/server/policy/role/LegacyRoleResolutionPolicy;->isSettingsApplication(Ljava/lang/String;I)Z
@@ -28264,6 +30881,8 @@
 PLcom/android/server/power/-$$Lambda$PowerManagerService$FUW_os-Z9SregUE_DR9vDwaRuXo;->run()V
 HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$9JFHCKCwrnUIYoXDsqNamhlY5VU;-><init>(Lcom/android/server/power/ThermalManagerService;)V
 PLcom/android/server/power/-$$Lambda$ThermalManagerService$9JFHCKCwrnUIYoXDsqNamhlY5VU;->onValues(Landroid/os/Temperature;)V
+HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$P4Eu0RILVATHKmAc4SzykaNlz_4;-><init>(Ljava/util/List;)V
+HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$P4Eu0RILVATHKmAc4SzykaNlz_4;->onValues(Landroid/hardware/thermal/V1_0/ThermalStatus;Ljava/util/ArrayList;)V
 HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$R9S8YWn8x1F3V2TOvXtmky1V44Q;-><init>(Ljava/util/List;)V
 HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$R9S8YWn8x1F3V2TOvXtmky1V44Q;->onValues(Landroid/hardware/thermal/V1_0/ThermalStatus;Ljava/util/ArrayList;)V
 HPLcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$dRsq86SXVH7z342fbs2U36cr67I;-><init>(Ljava/util/List;)V
@@ -28272,6 +30891,11 @@
 HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$ZPQKzo9ZjU-hL4QYH693hWuTqjk;->run()V
 HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$x5obtNvJKZxnpguOiQsFBDmBZ4k;-><init>(Landroid/os/IThermalEventListener;Landroid/os/Temperature;)V
 HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$x5obtNvJKZxnpguOiQsFBDmBZ4k;->run()V
+HSPLcom/android/server/power/AmbientDisplaySuppressionController;-><init>(Landroid/content/Context;)V
+PLcom/android/server/power/AmbientDisplaySuppressionController;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/AmbientDisplaySuppressionController;->getStatusBar()Lcom/android/internal/statusbar/IStatusBarService;
+PLcom/android/server/power/AmbientDisplaySuppressionController;->isSuppressed()Z
+PLcom/android/server/power/AmbientDisplaySuppressionController;->suppress(Ljava/lang/String;IZ)V
 HSPLcom/android/server/power/AttentionDetector$1;-><init>(Lcom/android/server/power/AttentionDetector;Landroid/os/Handler;Landroid/content/Context;)V
 PLcom/android/server/power/AttentionDetector$1;->onChange(Z)V
 PLcom/android/server/power/AttentionDetector$AttentionCallbackInternalImpl;-><init>(Lcom/android/server/power/AttentionDetector;I)V
@@ -28279,12 +30903,14 @@
 HPLcom/android/server/power/AttentionDetector$AttentionCallbackInternalImpl;->onSuccess(IJ)V
 HSPLcom/android/server/power/AttentionDetector$UserSwitchObserver;-><init>(Lcom/android/server/power/AttentionDetector;)V
 HSPLcom/android/server/power/AttentionDetector$UserSwitchObserver;-><init>(Lcom/android/server/power/AttentionDetector;Lcom/android/server/power/AttentionDetector$1;)V
+PLcom/android/server/power/AttentionDetector$UserSwitchObserver;->onUserSwitching(I)V
 HSPLcom/android/server/power/AttentionDetector;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
 PLcom/android/server/power/AttentionDetector;->access$100(Lcom/android/server/power/AttentionDetector;)Ljava/util/concurrent/atomic/AtomicBoolean;
 PLcom/android/server/power/AttentionDetector;->access$200(Lcom/android/server/power/AttentionDetector;)Ljava/lang/Object;
 PLcom/android/server/power/AttentionDetector;->access$300(Lcom/android/server/power/AttentionDetector;)I
 PLcom/android/server/power/AttentionDetector;->access$400(Lcom/android/server/power/AttentionDetector;)Ljava/lang/Runnable;
 PLcom/android/server/power/AttentionDetector;->access$500(Lcom/android/server/power/AttentionDetector;)V
+PLcom/android/server/power/AttentionDetector;->access$600(Lcom/android/server/power/AttentionDetector;)Landroid/content/Context;
 HSPLcom/android/server/power/AttentionDetector;->cancelCurrentRequestIfAny()V
 HPLcom/android/server/power/AttentionDetector;->dump(Ljava/io/PrintWriter;)V
 HPLcom/android/server/power/AttentionDetector;->getPostDimCheckDurationMillis(J)J
@@ -28407,11 +31033,14 @@
 HSPLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;-><init>(Lcom/android/server/power/PowerManagerService;)V
 HSPLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$1;)V
 HPLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;->onForegroundProfileSwitch(I)V
+PLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;->onUserSwitching(I)V
 HSPLcom/android/server/power/PowerManagerService$Injector$1;-><init>(Lcom/android/server/power/PowerManagerService$Injector;)V
 HSPLcom/android/server/power/PowerManagerService$Injector$1;->get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/power/PowerManagerService$Injector$1;->set(Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/power/PowerManagerService$Injector;-><init>()V
 HSPLcom/android/server/power/PowerManagerService$Injector;->createAmbientDisplayConfiguration(Landroid/content/Context;)Landroid/hardware/display/AmbientDisplayConfiguration;
+HSPLcom/android/server/power/PowerManagerService$Injector;->createAmbientDisplaySuppressionController(Landroid/content/Context;)Lcom/android/server/power/AmbientDisplaySuppressionController;
+HSPLcom/android/server/power/PowerManagerService$Injector;->createBatterySaverController(Ljava/lang/Object;Landroid/content/Context;Lcom/android/server/power/batterysaver/BatterySaverPolicy;Lcom/android/server/power/batterysaver/BatterySavingStats;)Lcom/android/server/power/batterysaver/BatterySaverController;
 HSPLcom/android/server/power/PowerManagerService$Injector;->createBatterySaverPolicy(Ljava/lang/Object;Landroid/content/Context;Lcom/android/server/power/batterysaver/BatterySavingStats;)Lcom/android/server/power/batterysaver/BatterySaverPolicy;
 HSPLcom/android/server/power/PowerManagerService$Injector;->createInattentiveSleepWarningController()Lcom/android/server/power/InattentiveSleepWarningController;
 HSPLcom/android/server/power/PowerManagerService$Injector;->createNativeWrapper()Lcom/android/server/power/PowerManagerService$NativeWrapper;
@@ -28419,6 +31048,7 @@
 HSPLcom/android/server/power/PowerManagerService$Injector;->createSuspendBlocker(Lcom/android/server/power/PowerManagerService;Ljava/lang/String;)Lcom/android/server/power/SuspendBlocker;
 HSPLcom/android/server/power/PowerManagerService$Injector;->createSystemPropertiesWrapper()Lcom/android/server/power/SystemPropertiesWrapper;
 HSPLcom/android/server/power/PowerManagerService$Injector;->createWirelessChargerDetector(Landroid/hardware/SensorManager;Lcom/android/server/power/SuspendBlocker;Landroid/os/Handler;)Lcom/android/server/power/WirelessChargerDetector;
+HSPLcom/android/server/power/PowerManagerService$Injector;->invalidateIsInteractiveCaches()V
 HSPLcom/android/server/power/PowerManagerService$LocalService;-><init>(Lcom/android/server/power/PowerManagerService;)V
 PLcom/android/server/power/PowerManagerService$LocalService;->getLastWakeup()Landroid/os/PowerManager$WakeData;
 HSPLcom/android/server/power/PowerManagerService$LocalService;->getLowPowerState(I)Landroid/os/PowerSaveState;
@@ -28469,62 +31099,97 @@
 HSPLcom/android/server/power/PowerManagerService;-><init>(Landroid/content/Context;Lcom/android/server/power/PowerManagerService$Injector;)V
 HSPLcom/android/server/power/PowerManagerService;->access$000(Lcom/android/server/power/PowerManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/power/PowerManagerService;->access$1000(II)V
+PLcom/android/server/power/PowerManagerService;->access$102(Lcom/android/server/power/PowerManagerService;I)I
+HSPLcom/android/server/power/PowerManagerService;->access$1200(II)V
 HSPLcom/android/server/power/PowerManagerService;->access$1200(Lcom/android/server/power/PowerManagerService;)Ljava/util/ArrayList;
+HSPLcom/android/server/power/PowerManagerService;->access$1400(Lcom/android/server/power/PowerManagerService;)Ljava/util/ArrayList;
 HSPLcom/android/server/power/PowerManagerService;->access$1676(Lcom/android/server/power/PowerManagerService;I)I
 HSPLcom/android/server/power/PowerManagerService;->access$1700(Lcom/android/server/power/PowerManagerService;)V
 PLcom/android/server/power/PowerManagerService;->access$1802(Lcom/android/server/power/PowerManagerService;Z)Z
+PLcom/android/server/power/PowerManagerService;->access$1876(Lcom/android/server/power/PowerManagerService;I)I
+PLcom/android/server/power/PowerManagerService;->access$1900(Lcom/android/server/power/PowerManagerService;)V
 PLcom/android/server/power/PowerManagerService;->access$1900(Lcom/android/server/power/PowerManagerService;JIII)Z
 HSPLcom/android/server/power/PowerManagerService;->access$2000(Lcom/android/server/power/PowerManagerService;)Z
 PLcom/android/server/power/PowerManagerService;->access$202(Lcom/android/server/power/PowerManagerService;I)I
 HSPLcom/android/server/power/PowerManagerService;->access$2200(Lcom/android/server/power/PowerManagerService;)Z
 HSPLcom/android/server/power/PowerManagerService;->access$2400(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/SuspendBlocker;
+PLcom/android/server/power/PowerManagerService;->access$2400(Lcom/android/server/power/PowerManagerService;)Z
 HSPLcom/android/server/power/PowerManagerService;->access$2500(Lcom/android/server/power/PowerManagerService;)V
+PLcom/android/server/power/PowerManagerService;->access$2600(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/SuspendBlocker;
 HPLcom/android/server/power/PowerManagerService;->access$2600(Lcom/android/server/power/PowerManagerService;)V
 HSPLcom/android/server/power/PowerManagerService;->access$2700(Lcom/android/server/power/PowerManagerService;)V
+PLcom/android/server/power/PowerManagerService;->access$2800(Lcom/android/server/power/PowerManagerService;)V
+PLcom/android/server/power/PowerManagerService;->access$2900(Lcom/android/server/power/PowerManagerService;)V
 HSPLcom/android/server/power/PowerManagerService;->access$2900(Lcom/android/server/power/PowerManagerService;II)V
 PLcom/android/server/power/PowerManagerService;->access$300(Lcom/android/server/power/PowerManagerService;J)V
 PLcom/android/server/power/PowerManagerService;->access$3100(Lcom/android/server/power/PowerManagerService;)V
+PLcom/android/server/power/PowerManagerService;->access$3100(Lcom/android/server/power/PowerManagerService;II)V
 HSPLcom/android/server/power/PowerManagerService;->access$3200(Lcom/android/server/power/PowerManagerService;)V
+PLcom/android/server/power/PowerManagerService;->access$3300(Lcom/android/server/power/PowerManagerService;)V
+HPLcom/android/server/power/PowerManagerService;->access$3400(Lcom/android/server/power/PowerManagerService;)V
 HSPLcom/android/server/power/PowerManagerService;->access$3500(Landroid/os/WorkSource;)Landroid/os/WorkSource;
 PLcom/android/server/power/PowerManagerService;->access$3600(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$WakeLock;)V
+HPLcom/android/server/power/PowerManagerService;->access$3700(Landroid/os/WorkSource;)Landroid/os/WorkSource;
 HSPLcom/android/server/power/PowerManagerService;->access$3700(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/PowerManagerService$NativeWrapper;
+PLcom/android/server/power/PowerManagerService;->access$3800(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$WakeLock;)V
 HSPLcom/android/server/power/PowerManagerService;->access$3900(Lcom/android/server/power/PowerManagerService;)Landroid/content/Context;
+HSPLcom/android/server/power/PowerManagerService;->access$3900(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/PowerManagerService$NativeWrapper;
 HSPLcom/android/server/power/PowerManagerService;->access$400(Lcom/android/server/power/PowerManagerService;)V
 HSPLcom/android/server/power/PowerManagerService;->access$4000(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;II)V
+HPLcom/android/server/power/PowerManagerService;->access$4100(Lcom/android/server/power/PowerManagerService;)Landroid/content/Context;
 HSPLcom/android/server/power/PowerManagerService;->access$4100(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;I)V
 HSPLcom/android/server/power/PowerManagerService;->access$4200(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;I)V
 HSPLcom/android/server/power/PowerManagerService;->access$4300(Lcom/android/server/power/PowerManagerService;I)Z
 PLcom/android/server/power/PowerManagerService;->access$4400(Lcom/android/server/power/PowerManagerService;)J
+PLcom/android/server/power/PowerManagerService;->access$4400(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;II)V
 PLcom/android/server/power/PowerManagerService;->access$4402(Lcom/android/server/power/PowerManagerService;J)J
 HPLcom/android/server/power/PowerManagerService;->access$4500(Lcom/android/server/power/PowerManagerService;JIII)V
+PLcom/android/server/power/PowerManagerService;->access$4500(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;I)V
 PLcom/android/server/power/PowerManagerService;->access$4600(Lcom/android/server/power/PowerManagerService;JILjava/lang/String;ILjava/lang/String;I)V
+PLcom/android/server/power/PowerManagerService;->access$4600(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;I)V
+PLcom/android/server/power/PowerManagerService;->access$4700(Lcom/android/server/power/PowerManagerService;I)Z
 PLcom/android/server/power/PowerManagerService;->access$4700(Lcom/android/server/power/PowerManagerService;JIII)V
 PLcom/android/server/power/PowerManagerService;->access$4800(Lcom/android/server/power/PowerManagerService;JI)V
 HSPLcom/android/server/power/PowerManagerService;->access$4900(Lcom/android/server/power/PowerManagerService;)Z
+PLcom/android/server/power/PowerManagerService;->access$4900(Lcom/android/server/power/PowerManagerService;JIII)V
 HSPLcom/android/server/power/PowerManagerService;->access$500(Ljava/lang/String;)V
 HSPLcom/android/server/power/PowerManagerService;->access$5000(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/batterysaver/BatterySaverController;
+PLcom/android/server/power/PowerManagerService;->access$5000(Lcom/android/server/power/PowerManagerService;JILjava/lang/String;ILjava/lang/String;I)V
 HSPLcom/android/server/power/PowerManagerService;->access$5100(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/batterysaver/BatterySaverPolicy;
+PLcom/android/server/power/PowerManagerService;->access$5100(Lcom/android/server/power/PowerManagerService;JIII)V
 PLcom/android/server/power/PowerManagerService;->access$5200(Lcom/android/server/power/PowerManagerService;Z)Z
 PLcom/android/server/power/PowerManagerService;->access$5300(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/batterysaver/BatterySaverStateMachine;
+PLcom/android/server/power/PowerManagerService;->access$5300(Lcom/android/server/power/PowerManagerService;)Z
+HSPLcom/android/server/power/PowerManagerService;->access$5400(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/batterysaver/BatterySaverController;
+HSPLcom/android/server/power/PowerManagerService;->access$5500(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/batterysaver/BatterySaverPolicy;
 PLcom/android/server/power/PowerManagerService;->access$5500(Lcom/android/server/power/PowerManagerService;IZLjava/lang/String;Z)V
 HSPLcom/android/server/power/PowerManagerService;->access$5800(Lcom/android/server/power/PowerManagerService;Z)V
 PLcom/android/server/power/PowerManagerService;->access$5900(Lcom/android/server/power/PowerManagerService;)Landroid/hardware/display/AmbientDisplayConfiguration;
 HSPLcom/android/server/power/PowerManagerService;->access$600(Ljava/lang/String;)V
+PLcom/android/server/power/PowerManagerService;->access$6000(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/AmbientDisplaySuppressionController;
 PLcom/android/server/power/PowerManagerService;->access$6000(Lcom/android/server/power/PowerManagerService;Ljava/lang/String;I)Ljava/lang/String;
 PLcom/android/server/power/PowerManagerService;->access$6100(Lcom/android/server/power/PowerManagerService;Ljava/lang/String;Z)V
 PLcom/android/server/power/PowerManagerService;->access$6200(Lcom/android/server/power/PowerManagerService;Ljava/io/FileDescriptor;)V
+PLcom/android/server/power/PowerManagerService;->access$6200(Lcom/android/server/power/PowerManagerService;Z)V
+PLcom/android/server/power/PowerManagerService;->access$6300(Lcom/android/server/power/PowerManagerService;)Landroid/hardware/display/AmbientDisplayConfiguration;
 PLcom/android/server/power/PowerManagerService;->access$6300(Lcom/android/server/power/PowerManagerService;Ljava/io/PrintWriter;)V
 HSPLcom/android/server/power/PowerManagerService;->access$6400(Lcom/android/server/power/PowerManagerService;I)V
 PLcom/android/server/power/PowerManagerService;->access$6500(Lcom/android/server/power/PowerManagerService;II)V
+HSPLcom/android/server/power/PowerManagerService;->access$6600(Lcom/android/server/power/PowerManagerService;I)V
 PLcom/android/server/power/PowerManagerService;->access$6600(Lcom/android/server/power/PowerManagerService;Ljava/io/FileDescriptor;)V
 HSPLcom/android/server/power/PowerManagerService;->access$6700(Lcom/android/server/power/PowerManagerService;J)V
 PLcom/android/server/power/PowerManagerService;->access$6700(Lcom/android/server/power/PowerManagerService;Ljava/io/PrintWriter;)V
 HSPLcom/android/server/power/PowerManagerService;->access$6800(Lcom/android/server/power/PowerManagerService;I)V
 PLcom/android/server/power/PowerManagerService;->access$6900(Lcom/android/server/power/PowerManagerService;)Landroid/os/PowerManager$WakeData;
 HPLcom/android/server/power/PowerManagerService;->access$6900(Lcom/android/server/power/PowerManagerService;II)V
+HSPLcom/android/server/power/PowerManagerService;->access$6900(Lcom/android/server/power/PowerManagerService;J)V
 HSPLcom/android/server/power/PowerManagerService;->access$700(Z)V
+PLcom/android/server/power/PowerManagerService;->access$7000(Lcom/android/server/power/PowerManagerService;I)V
+PLcom/android/server/power/PowerManagerService;->access$7100(Lcom/android/server/power/PowerManagerService;II)V
 HSPLcom/android/server/power/PowerManagerService;->access$7100(Lcom/android/server/power/PowerManagerService;J)V
 PLcom/android/server/power/PowerManagerService;->access$7300(Lcom/android/server/power/PowerManagerService;)Landroid/os/PowerManager$WakeData;
+PLcom/android/server/power/PowerManagerService;->access$7300(Lcom/android/server/power/PowerManagerService;J)V
+PLcom/android/server/power/PowerManagerService;->access$7500(Lcom/android/server/power/PowerManagerService;)Landroid/os/PowerManager$WakeData;
 HSPLcom/android/server/power/PowerManagerService;->access$800(Z)V
 HSPLcom/android/server/power/PowerManagerService;->access$900(II)V
 HSPLcom/android/server/power/PowerManagerService;->acquireWakeLockInternal(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;II)V
@@ -28545,12 +31210,13 @@
 HSPLcom/android/server/power/PowerManagerService;->getDesiredScreenPolicyLocked()I
 PLcom/android/server/power/PowerManagerService;->getFirstNonEmptyWorkChain(Landroid/os/WorkSource;)Landroid/os/WorkSource$WorkChain;
 PLcom/android/server/power/PowerManagerService;->getLastShutdownReasonInternal()I
-PLcom/android/server/power/PowerManagerService;->getLastWakeupInternal()Landroid/os/PowerManager$WakeData;
+HPLcom/android/server/power/PowerManagerService;->getLastWakeupInternal()Landroid/os/PowerManager$WakeData;
 HSPLcom/android/server/power/PowerManagerService;->getNextProfileTimeoutLocked(J)J
 HSPLcom/android/server/power/PowerManagerService;->getScreenDimDurationLocked(J)J
 HSPLcom/android/server/power/PowerManagerService;->getScreenOffTimeoutLocked(JJ)J
 HSPLcom/android/server/power/PowerManagerService;->getSleepTimeoutLocked(J)J
 HSPLcom/android/server/power/PowerManagerService;->getWakeLockSummaryFlags(Lcom/android/server/power/PowerManagerService$WakeLock;)I
+HSPLcom/android/server/power/PowerManagerService;->getWakefulnessLocked()I
 HPLcom/android/server/power/PowerManagerService;->goToSleepInternal(JIII)V
 HPLcom/android/server/power/PowerManagerService;->goToSleepNoUpdateLocked(JIII)Z
 HSPLcom/android/server/power/PowerManagerService;->handleBatteryStateChangedLocked()V
@@ -28572,11 +31238,13 @@
 HSPLcom/android/server/power/PowerManagerService;->isWakeLockLevelSupportedInternal(I)Z
 PLcom/android/server/power/PowerManagerService;->lambda$FUW_os-Z9SregUE_DR9vDwaRuXo(Lcom/android/server/power/PowerManagerService;)V
 HPLcom/android/server/power/PowerManagerService;->logSleepTimeoutRecapturedLocked()V
+PLcom/android/server/power/PowerManagerService;->lowLevelReboot(Ljava/lang/String;)V
+PLcom/android/server/power/PowerManagerService;->lowLevelShutdown(Ljava/lang/String;)V
 HSPLcom/android/server/power/PowerManagerService;->maybeHideInattentiveSleepWarningLocked(JJ)Z
 HSPLcom/android/server/power/PowerManagerService;->maybeUpdateForegroundProfileLastActivityLocked(J)V
 HPLcom/android/server/power/PowerManagerService;->monitor()V
 PLcom/android/server/power/PowerManagerService;->napInternal(JI)V
-PLcom/android/server/power/PowerManagerService;->napNoUpdateLocked(JI)Z
+HPLcom/android/server/power/PowerManagerService;->napNoUpdateLocked(JI)Z
 HSPLcom/android/server/power/PowerManagerService;->needDisplaySuspendBlockerLocked()Z
 HSPLcom/android/server/power/PowerManagerService;->notifyWakeLockAcquiredLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
 HSPLcom/android/server/power/PowerManagerService;->notifyWakeLockChangingLocked(Lcom/android/server/power/PowerManagerService$WakeLock;ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;)V
@@ -28594,14 +31262,14 @@
 HSPLcom/android/server/power/PowerManagerService;->restartNofifyLongTimerLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
 HSPLcom/android/server/power/PowerManagerService;->scheduleSandmanLocked()V
 HSPLcom/android/server/power/PowerManagerService;->scheduleUserInactivityTimeout(J)V
-PLcom/android/server/power/PowerManagerService;->setDeviceIdleModeInternal(Z)Z
+HPLcom/android/server/power/PowerManagerService;->setDeviceIdleModeInternal(Z)Z
 HPLcom/android/server/power/PowerManagerService;->setDeviceIdleTempWhitelistInternal([I)V
 HSPLcom/android/server/power/PowerManagerService;->setDeviceIdleWhitelistInternal([I)V
 HSPLcom/android/server/power/PowerManagerService;->setDozeAfterScreenOffInternal(Z)V
 HPLcom/android/server/power/PowerManagerService;->setDozeOverrideFromDreamManagerInternal(II)V
 HSPLcom/android/server/power/PowerManagerService;->setHalAutoSuspendModeLocked(Z)V
 HSPLcom/android/server/power/PowerManagerService;->setHalInteractiveModeLocked(Z)V
-PLcom/android/server/power/PowerManagerService;->setLightDeviceIdleModeInternal(Z)Z
+HPLcom/android/server/power/PowerManagerService;->setLightDeviceIdleModeInternal(Z)Z
 PLcom/android/server/power/PowerManagerService;->setLowPowerModeInternal(Z)Z
 HSPLcom/android/server/power/PowerManagerService;->setMaximumScreenOffTimeoutFromDeviceAdminInternal(IJ)V
 HSPLcom/android/server/power/PowerManagerService;->setScreenBrightnessOverrideFromWindowManagerInternal(I)V
@@ -28680,12 +31348,18 @@
 PLcom/android/server/power/ThermalManagerService$1;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HPLcom/android/server/power/ThermalManagerService$1;->dumpItemsLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Collection;)V
 HPLcom/android/server/power/ThermalManagerService$1;->getCurrentCoolingDevices()Ljava/util/List;
+HPLcom/android/server/power/ThermalManagerService$1;->getCurrentCoolingDevices()[Landroid/os/CoolingDevice;
 HPLcom/android/server/power/ThermalManagerService$1;->getCurrentTemperatures()Ljava/util/List;
+HPLcom/android/server/power/ThermalManagerService$1;->getCurrentTemperatures()[Landroid/os/Temperature;
 HPLcom/android/server/power/ThermalManagerService$1;->getCurrentThermalStatus()I
 HSPLcom/android/server/power/ThermalManagerService$1;->registerThermalEventListener(Landroid/os/IThermalEventListener;)Z
 PLcom/android/server/power/ThermalManagerService$1;->registerThermalEventListenerWithType(Landroid/os/IThermalEventListener;I)Z
 HSPLcom/android/server/power/ThermalManagerService$1;->registerThermalStatusListener(Landroid/os/IThermalStatusListener;)Z
+PLcom/android/server/power/ThermalManagerService$1;->unregisterThermalEventListener(Landroid/os/IThermalEventListener;)Z
 HPLcom/android/server/power/ThermalManagerService$1;->unregisterThermalStatusListener(Landroid/os/IThermalStatusListener;)Z
+HSPLcom/android/server/power/ThermalManagerService$TemperatureWatcher;-><init>(Lcom/android/server/power/ThermalManagerService;)V
+HSPLcom/android/server/power/ThermalManagerService$TemperatureWatcher;-><init>(Lcom/android/server/power/ThermalManagerService;Lcom/android/server/power/ThermalManagerService$1;)V
+HSPLcom/android/server/power/ThermalManagerService$TemperatureWatcher;->updateSevereThresholds()V
 HSPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper$1;-><init>(Lcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;)V
 PLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper$1;->notifyThrottling(Landroid/hardware/thermal/V2_0/Temperature;)V
 HSPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;-><init>()V
@@ -28693,8 +31367,10 @@
 PLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->getCurrentCoolingDevices(ZI)Ljava/util/List;
 HSPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->getCurrentTemperatures(ZI)Ljava/util/List;
+HSPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->getTemperatureThresholds(ZI)Ljava/util/List;
 HPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->lambda$getCurrentCoolingDevices$1(Ljava/util/List;Landroid/hardware/thermal/V1_0/ThermalStatus;Ljava/util/ArrayList;)V
 HSPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->lambda$getCurrentTemperatures$0(Ljava/util/List;Landroid/hardware/thermal/V1_0/ThermalStatus;Ljava/util/ArrayList;)V
+HSPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->lambda$getTemperatureThresholds$2(Ljava/util/List;Landroid/hardware/thermal/V1_0/ThermalStatus;Ljava/util/ArrayList;)V
 HSPLcom/android/server/power/ThermalManagerService$ThermalHalWrapper$DeathRecipient;-><init>(Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper;)V
 HSPLcom/android/server/power/ThermalManagerService$ThermalHalWrapper;-><clinit>()V
 HSPLcom/android/server/power/ThermalManagerService$ThermalHalWrapper;-><init>()V
@@ -28704,14 +31380,22 @@
 HSPLcom/android/server/power/ThermalManagerService;-><init>(Landroid/content/Context;Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper;)V
 HSPLcom/android/server/power/ThermalManagerService;->access$000(Lcom/android/server/power/ThermalManagerService;)Ljava/lang/Object;
 HSPLcom/android/server/power/ThermalManagerService;->access$100(Lcom/android/server/power/ThermalManagerService;)Landroid/os/RemoteCallbackList;
+HSPLcom/android/server/power/ThermalManagerService;->access$100(Lcom/android/server/power/ThermalManagerService;)Ljava/lang/Object;
 PLcom/android/server/power/ThermalManagerService;->access$1000(Lcom/android/server/power/ThermalManagerService;)Landroid/util/ArrayMap;
+HSPLcom/android/server/power/ThermalManagerService;->access$200(Lcom/android/server/power/ThermalManagerService;)Landroid/os/RemoteCallbackList;
 HSPLcom/android/server/power/ThermalManagerService;->access$200(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalEventListener;Ljava/lang/Integer;)V
 PLcom/android/server/power/ThermalManagerService;->access$300(Lcom/android/server/power/ThermalManagerService;)Ljava/util/concurrent/atomic/AtomicBoolean;
+HSPLcom/android/server/power/ThermalManagerService;->access$300(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalEventListener;Ljava/lang/Integer;)V
 PLcom/android/server/power/ThermalManagerService;->access$400(Lcom/android/server/power/ThermalManagerService;)Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper;
+PLcom/android/server/power/ThermalManagerService;->access$400(Lcom/android/server/power/ThermalManagerService;)Ljava/util/concurrent/atomic/AtomicBoolean;
 HSPLcom/android/server/power/ThermalManagerService;->access$500(Lcom/android/server/power/ThermalManagerService;)Landroid/os/RemoteCallbackList;
+HSPLcom/android/server/power/ThermalManagerService;->access$500(Lcom/android/server/power/ThermalManagerService;)Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper;
+HSPLcom/android/server/power/ThermalManagerService;->access$600(Lcom/android/server/power/ThermalManagerService;)Landroid/os/RemoteCallbackList;
 HSPLcom/android/server/power/ThermalManagerService;->access$600(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalStatusListener;)V
 PLcom/android/server/power/ThermalManagerService;->access$700(Lcom/android/server/power/ThermalManagerService;)I
+HSPLcom/android/server/power/ThermalManagerService;->access$700(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalStatusListener;)V
 PLcom/android/server/power/ThermalManagerService;->access$800()Ljava/lang/String;
+PLcom/android/server/power/ThermalManagerService;->access$800(Lcom/android/server/power/ThermalManagerService;)I
 PLcom/android/server/power/ThermalManagerService;->access$900(Lcom/android/server/power/ThermalManagerService;)Z
 PLcom/android/server/power/ThermalManagerService;->lambda$9JFHCKCwrnUIYoXDsqNamhlY5VU(Lcom/android/server/power/ThermalManagerService;Landroid/os/Temperature;)V
 HSPLcom/android/server/power/ThermalManagerService;->lambda$postEventListener$1(Landroid/os/IThermalEventListener;Landroid/os/Temperature;)V
@@ -28843,13 +31527,15 @@
 HSPLcom/android/server/power/batterysaver/BatterySaverController;->access$500(Lcom/android/server/power/batterysaver/BatterySaverController;)[Lcom/android/server/power/batterysaver/BatterySaverController$Plugin;
 HSPLcom/android/server/power/batterysaver/BatterySaverController;->addListener(Landroid/os/PowerManagerInternal$LowPowerModeListener;)V
 PLcom/android/server/power/batterysaver/BatterySaverController;->enableBatterySaver(ZI)V
+HSPLcom/android/server/power/batterysaver/BatterySaverController;->getAdaptiveEnabledLocked()Z
 HSPLcom/android/server/power/batterysaver/BatterySaverController;->getBatterySaverPolicy()Lcom/android/server/power/batterysaver/BatterySaverPolicy;
+HSPLcom/android/server/power/batterysaver/BatterySaverController;->getFullEnabledLocked()Z
 HSPLcom/android/server/power/batterysaver/BatterySaverController;->getPowerManager()Landroid/os/PowerManager;
 HPLcom/android/server/power/batterysaver/BatterySaverController;->handleBatterySaverStateChanged(ZI)V
 PLcom/android/server/power/batterysaver/BatterySaverController;->isAdaptiveEnabled()Z
 HSPLcom/android/server/power/batterysaver/BatterySaverController;->isEnabled()Z
 PLcom/android/server/power/batterysaver/BatterySaverController;->isFullEnabled()Z
-PLcom/android/server/power/batterysaver/BatterySaverController;->isInteractive()Z
+HPLcom/android/server/power/batterysaver/BatterySaverController;->isInteractive()Z
 HSPLcom/android/server/power/batterysaver/BatterySaverController;->isLaunchBoostDisabled()Z
 HSPLcom/android/server/power/batterysaver/BatterySaverController;->isPolicyEnabled()Z
 PLcom/android/server/power/batterysaver/BatterySaverController;->onBatterySaverPolicyChanged(Lcom/android/server/power/batterysaver/BatterySaverPolicy;)V
@@ -28858,6 +31544,7 @@
 PLcom/android/server/power/batterysaver/BatterySaverController;->setAdaptivePolicyEnabledLocked(ZI)Z
 HPLcom/android/server/power/batterysaver/BatterySaverController;->setAdaptivePolicyLocked(Landroid/os/BatterySaverPolicyConfig;I)Z
 HPLcom/android/server/power/batterysaver/BatterySaverController;->setAdaptivePolicyLocked(Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;I)Z
+PLcom/android/server/power/batterysaver/BatterySaverController;->setFullEnabledLocked(Z)V
 HSPLcom/android/server/power/batterysaver/BatterySaverController;->systemReady()V
 HSPLcom/android/server/power/batterysaver/BatterySaverController;->updateBatterySavingStats()V
 PLcom/android/server/power/batterysaver/BatterySaverController;->updatePolicyLevelLocked()Z
@@ -28865,6 +31552,8 @@
 PLcom/android/server/power/batterysaver/BatterySaverLocationPlugin;->onBatterySaverChanged(Lcom/android/server/power/batterysaver/BatterySaverController;)V
 HSPLcom/android/server/power/batterysaver/BatterySaverLocationPlugin;->onSystemReady(Lcom/android/server/power/batterysaver/BatterySaverController;)V
 HSPLcom/android/server/power/batterysaver/BatterySaverLocationPlugin;->updateLocationState(Lcom/android/server/power/batterysaver/BatterySaverController;)V
+HSPLcom/android/server/power/batterysaver/BatterySaverPolicy$1;-><init>(Lcom/android/server/power/batterysaver/BatterySaverPolicy;)V
+PLcom/android/server/power/batterysaver/BatterySaverPolicy$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;-><init>(FZZZZZZZZZZZZZZLandroid/util/ArrayMap;Landroid/util/ArrayMap;ZZI)V
 HPLcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;->equals(Ljava/lang/Object;)Z
 HPLcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;->fromConfig(Landroid/os/BatterySaverPolicyConfig;)Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;
@@ -28877,21 +31566,28 @@
 HPLcom/android/server/power/batterysaver/BatterySaverPolicy;->dumpPolicyLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;)V
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getBatterySaverPolicy(I)Landroid/os/PowerSaveState;
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getCurrentPolicyLocked()Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;
+PLcom/android/server/power/batterysaver/BatterySaverPolicy;->getCurrentRawPolicyLocked()Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getDeviceSpecificConfigResId()I
-PLcom/android/server/power/batterysaver/BatterySaverPolicy;->getFileValues(Z)Landroid/util/ArrayMap;
+HPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getFileValues(Z)Landroid/util/ArrayMap;
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getGlobalSetting(Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getGpsMode()I
+HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getPolicyLevelLocked()I
+PLcom/android/server/power/batterysaver/BatterySaverPolicy;->invalidatePowerSaveModeCaches()V
 HPLcom/android/server/power/batterysaver/BatterySaverPolicy;->isLaunchBoostDisabled()Z
 PLcom/android/server/power/batterysaver/BatterySaverPolicy;->lambda$refreshSettings$1$BatterySaverPolicy([Lcom/android/server/power/batterysaver/BatterySaverPolicy$BatterySaverPolicyListener;)V
 PLcom/android/server/power/batterysaver/BatterySaverPolicy;->lambda$systemReady$0$BatterySaverPolicy(Z)V
+PLcom/android/server/power/batterysaver/BatterySaverPolicy;->maybeNotifyListenersOfPolicyChange()V
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->onChange(ZLandroid/net/Uri;)V
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->refreshSettings()V
 PLcom/android/server/power/batterysaver/BatterySaverPolicy;->resetAdaptivePolicyLocked()Z
-PLcom/android/server/power/batterysaver/BatterySaverPolicy;->setAdaptivePolicyLocked(Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;)Z
+PLcom/android/server/power/batterysaver/BatterySaverPolicy;->setAccessibilityEnabled(Z)V
+HPLcom/android/server/power/batterysaver/BatterySaverPolicy;->setAdaptivePolicyLocked(Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;)Z
+PLcom/android/server/power/batterysaver/BatterySaverPolicy;->setCarModeEnabled(Z)V
 PLcom/android/server/power/batterysaver/BatterySaverPolicy;->setPolicyLevel(I)Z
+PLcom/android/server/power/batterysaver/BatterySaverPolicy;->setPolicyLevelLocked(I)V
 HPLcom/android/server/power/batterysaver/BatterySaverPolicy;->shouldAdvertiseIsEnabled()Z
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->systemReady()V
-PLcom/android/server/power/batterysaver/BatterySaverPolicy;->toEventLogString()Ljava/lang/String;
+HPLcom/android/server/power/batterysaver/BatterySaverPolicy;->toEventLogString()Ljava/lang/String;
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->updateConstantsLocked(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
 HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->updatePolicyDependenciesLocked()V
 HSPLcom/android/server/power/batterysaver/BatterySaverStateMachine$1;-><init>(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;Landroid/os/Handler;)V
@@ -28933,7 +31629,7 @@
 PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->setStickyActive(Z)V
 PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->triggerDynamicModeNotification()V
 PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->triggerStickyDisabledNotification()V
-PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->updateStateLocked(ZZ)V
+HPLcom/android/server/power/batterysaver/BatterySaverStateMachine;->updateStateLocked(ZZ)V
 HSPLcom/android/server/power/batterysaver/BatterySavingStats$BatterySaverState;->fromIndex(I)I
 HPLcom/android/server/power/batterysaver/BatterySavingStats$DozeState;->fromIndex(I)I
 HPLcom/android/server/power/batterysaver/BatterySavingStats$InteractiveState;->fromIndex(I)I
@@ -29096,6 +31792,8 @@
 PLcom/android/server/print/RemotePrintService$4;->run()V
 PLcom/android/server/print/RemotePrintService$6;-><init>(Lcom/android/server/print/RemotePrintService;Ljava/util/List;)V
 PLcom/android/server/print/RemotePrintService$6;->run()V
+PLcom/android/server/print/RemotePrintService$9;-><init>(Lcom/android/server/print/RemotePrintService;Landroid/print/PrinterId;)V
+PLcom/android/server/print/RemotePrintService$9;->run()V
 PLcom/android/server/print/RemotePrintService$RemotePrintServiceClient;-><init>(Lcom/android/server/print/RemotePrintService;)V
 PLcom/android/server/print/RemotePrintService$RemotePrintServiceClient;->getPrintJobInfo(Landroid/print/PrintJobId;)Landroid/print/PrintJobInfo;
 PLcom/android/server/print/RemotePrintService$RemotePrintServiceClient;->onPrintersAdded(Landroid/content/pm/ParceledListSlice;)V
@@ -29125,6 +31823,7 @@
 PLcom/android/server/print/RemotePrintService;->access$2800(Lcom/android/server/print/RemotePrintService;)Lcom/android/server/print/RemotePrintService$PrintServiceCallbacks;
 PLcom/android/server/print/RemotePrintService;->access$400(Lcom/android/server/print/RemotePrintService;)V
 PLcom/android/server/print/RemotePrintService;->access$600(Lcom/android/server/print/RemotePrintService;Ljava/util/List;)V
+PLcom/android/server/print/RemotePrintService;->access$900(Lcom/android/server/print/RemotePrintService;Landroid/print/PrinterId;)V
 PLcom/android/server/print/RemotePrintService;->createPrinterDiscoverySession()V
 PLcom/android/server/print/RemotePrintService;->destroy()V
 PLcom/android/server/print/RemotePrintService;->destroyPrinterDiscoverySession()V
@@ -29389,7 +32088,9 @@
 HSPLcom/android/server/restrictions/RestrictionsManagerService;->access$100(Lcom/android/server/restrictions/RestrictionsManagerService;Ljava/lang/String;)Landroid/os/IBinder;
 HSPLcom/android/server/restrictions/RestrictionsManagerService;->onStart()V
 HPLcom/android/server/role/-$$Lambda$RoleManagerService$4FcQsmMH6Dhstzx5gl80tO2TkTw;-><init>(Lcom/android/server/role/RoleUserState;Ljava/lang/String;Lcom/android/internal/infra/AndroidFuture;)V
-PLcom/android/server/role/-$$Lambda$RoleManagerService$4FcQsmMH6Dhstzx5gl80tO2TkTw;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/role/-$$Lambda$RoleManagerService$4FcQsmMH6Dhstzx5gl80tO2TkTw;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/role/-$$Lambda$RoleManagerService$D-kb5EPaMwRx7H5Az2cV4ORPgIY;-><init>(Ljava/io/ByteArrayOutputStream;Landroid/content/pm/PackageManagerInternal;I)V
+HSPLcom/android/server/role/-$$Lambda$RoleManagerService$D-kb5EPaMwRx7H5Az2cV4ORPgIY;->acceptOrThrow(Ljava/lang/Object;)V
 PLcom/android/server/role/-$$Lambda$RoleManagerService$DefaultBrowserProvider$X3gMGYlhUgmYMuqj0K5NlCALn5E;-><init>(Lcom/android/internal/infra/AndroidFuture;)V
 PLcom/android/server/role/-$$Lambda$RoleManagerService$DefaultBrowserProvider$X3gMGYlhUgmYMuqj0K5NlCALn5E;->onResult(Landroid/os/Bundle;)V
 PLcom/android/server/role/-$$Lambda$RoleManagerService$DefaultBrowserProvider$cU2Hhx52nmVnJXJvHuAnRTzxST0;-><init>(Ljava/lang/String;)V
@@ -29398,7 +32099,7 @@
 PLcom/android/server/role/-$$Lambda$RoleManagerService$DefaultHomeProvider$9eeqZaqhD2FohE8PZOcBaWBSZu4;->onResult(Landroid/os/Bundle;)V
 PLcom/android/server/role/-$$Lambda$RoleManagerService$TCTA4I2bhEypguZihxs4ezif6t0;-><clinit>()V
 PLcom/android/server/role/-$$Lambda$RoleManagerService$TCTA4I2bhEypguZihxs4ezif6t0;-><init>()V
-PLcom/android/server/role/-$$Lambda$RoleManagerService$TCTA4I2bhEypguZihxs4ezif6t0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/role/-$$Lambda$RoleManagerService$TCTA4I2bhEypguZihxs4ezif6t0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/role/-$$Lambda$RoleManagerService$p0uu3WH3gz96-kAWnyu6IUHMtCg;-><init>(Lcom/android/server/role/RoleManagerService;I)V
 HPLcom/android/server/role/-$$Lambda$RoleManagerService$p0uu3WH3gz96-kAWnyu6IUHMtCg;->run()V
 HSPLcom/android/server/role/-$$Lambda$RoleManagerService$wh1KtBLaCUo52_0EzVI0n0nL1ng;-><init>(Ljava/io/ByteArrayOutputStream;Landroid/content/pm/PackageManagerInternal;I)V
@@ -29431,7 +32132,7 @@
 HSPLcom/android/server/role/RoleManagerService$Stub;-><init>(Lcom/android/server/role/RoleManagerService;)V
 HSPLcom/android/server/role/RoleManagerService$Stub;-><init>(Lcom/android/server/role/RoleManagerService;Lcom/android/server/role/RoleManagerService$1;)V
 HSPLcom/android/server/role/RoleManagerService$Stub;->addOnRoleHoldersChangedListenerAsUser(Landroid/app/role/IOnRoleHoldersChangedListener;I)V
-PLcom/android/server/role/RoleManagerService$Stub;->addRoleHolderAsUser(Ljava/lang/String;Ljava/lang/String;IILandroid/os/RemoteCallback;)V
+HPLcom/android/server/role/RoleManagerService$Stub;->addRoleHolderAsUser(Ljava/lang/String;Ljava/lang/String;IILandroid/os/RemoteCallback;)V
 PLcom/android/server/role/RoleManagerService$Stub;->addRoleHolderFromController(Ljava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/role/RoleManagerService$Stub;->clearRoleHoldersAsUser(Ljava/lang/String;IILandroid/os/RemoteCallback;)V
 PLcom/android/server/role/RoleManagerService$Stub;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
@@ -29456,12 +32157,13 @@
 PLcom/android/server/role/RoleManagerService;->access$800(Lcom/android/server/role/RoleManagerService;)Landroid/app/AppOpsManager;
 HSPLcom/android/server/role/RoleManagerService;->access$900(Lcom/android/server/role/RoleManagerService;)Landroid/os/UserManagerInternal;
 HSPLcom/android/server/role/RoleManagerService;->computeComponentStateHash(I)Ljava/lang/String;
-PLcom/android/server/role/RoleManagerService;->getListeners(I)Landroid/os/RemoteCallbackList;
+HPLcom/android/server/role/RoleManagerService;->getListeners(I)Landroid/os/RemoteCallbackList;
 HPLcom/android/server/role/RoleManagerService;->getOrCreateController(I)Landroid/app/role/RoleControllerManager;
 HSPLcom/android/server/role/RoleManagerService;->getOrCreateListeners(I)Landroid/os/RemoteCallbackList;
 HSPLcom/android/server/role/RoleManagerService;->getOrCreateUserState(I)Lcom/android/server/role/RoleUserState;
 PLcom/android/server/role/RoleManagerService;->lambda$TCTA4I2bhEypguZihxs4ezif6t0(Lcom/android/server/role/RoleManagerService;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/role/RoleManagerService;->lambda$computeComponentStateHash$2(Ljava/io/ByteArrayOutputStream;Landroid/content/pm/PackageManagerInternal;ILandroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/role/RoleManagerService;->lambda$computeComponentStateHash$2(Ljava/io/ByteArrayOutputStream;Landroid/content/pm/PackageManagerInternal;ILcom/android/server/pm/parsing/pkg/AndroidPackage;)V
 HPLcom/android/server/role/RoleManagerService;->lambda$maybeGrantDefaultRolesAsync$0$RoleManagerService(I)V
 HPLcom/android/server/role/RoleManagerService;->lambda$maybeGrantDefaultRolesInternal$1(Lcom/android/server/role/RoleUserState;Ljava/lang/String;Lcom/android/internal/infra/AndroidFuture;Ljava/lang/Boolean;)V
 HPLcom/android/server/role/RoleManagerService;->maybeGrantDefaultRolesAsync(I)V
@@ -29477,7 +32179,7 @@
 HSPLcom/android/server/role/RoleManagerService;->registerUserRemovedReceiver()V
 HSPLcom/android/server/role/RoleUserState;-><clinit>()V
 HSPLcom/android/server/role/RoleUserState;-><init>(ILcom/android/server/role/RoleUserState$Callback;)V
-PLcom/android/server/role/RoleUserState;->addRoleHolder(Ljava/lang/String;Ljava/lang/String;)Z
+HPLcom/android/server/role/RoleUserState;->addRoleHolder(Ljava/lang/String;Ljava/lang/String;)Z
 HPLcom/android/server/role/RoleUserState;->addRoleName(Ljava/lang/String;)Z
 PLcom/android/server/role/RoleUserState;->destroy()V
 HPLcom/android/server/role/RoleUserState;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
@@ -29486,7 +32188,7 @@
 HSPLcom/android/server/role/RoleUserState;->getPackagesHash()Ljava/lang/String;
 HSPLcom/android/server/role/RoleUserState;->getRoleHolders(Ljava/lang/String;)Landroid/util/ArraySet;
 HSPLcom/android/server/role/RoleUserState;->isRoleAvailable(Ljava/lang/String;)Z
-PLcom/android/server/role/RoleUserState;->lambda$e8W_Zaq_FyocW_DX1qcbN0ld0co(Lcom/android/server/role/RoleUserState;)V
+HPLcom/android/server/role/RoleUserState;->lambda$e8W_Zaq_FyocW_DX1qcbN0ld0co(Lcom/android/server/role/RoleUserState;)V
 HSPLcom/android/server/role/RoleUserState;->parseRoleHoldersLocked(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/ArraySet;
 HSPLcom/android/server/role/RoleUserState;->parseRolesLocked(Lorg/xmlpull/v1/XmlPullParser;)V
 HSPLcom/android/server/role/RoleUserState;->parseXmlLocked(Lorg/xmlpull/v1/XmlPullParser;)V
@@ -29504,6 +32206,8 @@
 PLcom/android/server/rollback/-$$Lambda$Rollback$EvT1BaUrjWsJaVTizSu77MCfRBs;->accept(Ljava/lang/Object;)V
 PLcom/android/server/rollback/-$$Lambda$RollbackManagerServiceImpl$1$QPIiLceItKZOKeHshAhrcNkM3m8;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl$1;ILjava/io/File;II)V
 PLcom/android/server/rollback/-$$Lambda$RollbackManagerServiceImpl$1$QPIiLceItKZOKeHshAhrcNkM3m8;->run()V
+PLcom/android/server/rollback/-$$Lambda$RollbackManagerServiceImpl$1$whIhaWpnqJBe6ocQeiVgI5ygyCA;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl$1;II)V
+PLcom/android/server/rollback/-$$Lambda$RollbackManagerServiceImpl$1$whIhaWpnqJBe6ocQeiVgI5ygyCA;->run()V
 PLcom/android/server/rollback/-$$Lambda$RollbackManagerServiceImpl$58BbNzpzWX_z-GzhKXpdGPwKcIU;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
 PLcom/android/server/rollback/-$$Lambda$RollbackManagerServiceImpl$58BbNzpzWX_z-GzhKXpdGPwKcIU;->run()V
 PLcom/android/server/rollback/-$$Lambda$RollbackManagerServiceImpl$5VimxC3UlEV_IzyoBdYlrATzYd8;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
@@ -29537,11 +32241,16 @@
 PLcom/android/server/rollback/LocalIntentReceiver$1;->send(ILandroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)V
 PLcom/android/server/rollback/LocalIntentReceiver;-><init>(Ljava/util/function/Consumer;)V
 PLcom/android/server/rollback/LocalIntentReceiver;->getIntentSender()Landroid/content/IntentSender;
+PLcom/android/server/rollback/Rollback;-><init>(ILjava/io/File;IILjava/lang/String;)V
 PLcom/android/server/rollback/Rollback;-><init>(ILjava/io/File;IILjava/lang/String;[I)V
 HSPLcom/android/server/rollback/Rollback;-><init>(Landroid/content/rollback/RollbackInfo;Ljava/io/File;Ljava/time/Instant;IIIZILjava/lang/String;)V
+PLcom/android/server/rollback/Rollback;->addToken(I)V
+PLcom/android/server/rollback/Rollback;->allPackagesEnabled()Z
 PLcom/android/server/rollback/Rollback;->commit(Landroid/content/Context;Ljava/util/List;Ljava/lang/String;Landroid/content/IntentSender;)V
 PLcom/android/server/rollback/Rollback;->commitPendingBackupAndRestoreForUser(ILcom/android/server/rollback/AppDataRollbackHelper;)V
+PLcom/android/server/rollback/Rollback;->containsSessionId(I)Z
 PLcom/android/server/rollback/Rollback;->delete(Lcom/android/server/rollback/AppDataRollbackHelper;)V
+PLcom/android/server/rollback/Rollback;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/rollback/Rollback;->enableForPackage(Ljava/lang/String;JJZLjava/lang/String;[Ljava/lang/String;I)Z
 PLcom/android/server/rollback/Rollback;->enableForPackageInApex(Ljava/lang/String;JI)Z
 PLcom/android/server/rollback/Rollback;->getApexPackageNames()Ljava/util/List;
@@ -29555,6 +32264,7 @@
 PLcom/android/server/rollback/Rollback;->getStateAsString()Ljava/lang/String;
 PLcom/android/server/rollback/Rollback;->getTimestamp()Ljava/time/Instant;
 PLcom/android/server/rollback/Rollback;->getUserId()I
+PLcom/android/server/rollback/Rollback;->includesPackage(Ljava/lang/String;)Z
 HPLcom/android/server/rollback/Rollback;->includesPackageWithDifferentVersion(Ljava/lang/String;J)Z
 PLcom/android/server/rollback/Rollback;->isAvailable()Z
 PLcom/android/server/rollback/Rollback;->isCommitted()Z
@@ -29564,6 +32274,7 @@
 PLcom/android/server/rollback/Rollback;->isStaged()Z
 PLcom/android/server/rollback/Rollback;->lambda$commit$0$Rollback(Landroid/content/Context;Landroid/content/IntentSender;Ljava/util/List;Landroid/content/Intent;)V
 PLcom/android/server/rollback/Rollback;->makeAvailable()V
+PLcom/android/server/rollback/Rollback;->notifySessionWithSuccess()Z
 PLcom/android/server/rollback/Rollback;->restoreUserDataForPackageIfInProgress(Ljava/lang/String;[IILjava/lang/String;Lcom/android/server/rollback/AppDataRollbackHelper;)Z
 HSPLcom/android/server/rollback/Rollback;->rollbackStateFromString(Ljava/lang/String;)I
 PLcom/android/server/rollback/Rollback;->rollbackStateToString(I)Ljava/lang/String;
@@ -29577,6 +32288,7 @@
 HSPLcom/android/server/rollback/RollbackManagerService;->onStart()V
 PLcom/android/server/rollback/RollbackManagerService;->onUnlockUser(I)V
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl$1;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$1;->lambda$onReceive$0$RollbackManagerServiceImpl$1(II)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl$1;->lambda$onReceive$0$RollbackManagerServiceImpl$1(ILjava/io/File;II)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl$2;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
@@ -29587,6 +32299,10 @@
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl$5;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl$NewRollback;-><init>(Lcom/android/server/rollback/Rollback;)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$NewRollback;-><init>(Lcom/android/server/rollback/Rollback;[I)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl$NewRollback;->containsSessionId(I)Z
+PLcom/android/server/rollback/RollbackManagerServiceImpl$NewRollback;->getPackageSessionIdCount()I
+PLcom/android/server/rollback/RollbackManagerServiceImpl$NewRollback;->notifySessionWithSuccess()Z
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;Lcom/android/server/rollback/RollbackManagerServiceImpl$1;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;->onActiveChanged(IZ)V
@@ -29607,17 +32323,26 @@
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1100(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1102(Lcom/android/server/rollback/RollbackManagerServiceImpl;J)J
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1200()J
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1200(Lcom/android/server/rollback/RollbackManagerServiceImpl;)J
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1200(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List;
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1202(Lcom/android/server/rollback/RollbackManagerServiceImpl;J)J
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1300()J
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1300(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1300(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)Lcom/android/server/rollback/Rollback;
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1300(Lcom/android/server/rollback/RollbackManagerServiceImpl;Lcom/android/server/rollback/RollbackManagerServiceImpl$NewRollback;)Lcom/android/server/rollback/Rollback;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1400(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1500(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1600(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$200(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)Z
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$200(Lcom/android/server/rollback/RollbackManagerServiceImpl;ILjava/io/File;II)Z
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$300()Z
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->access$300(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/lang/Object;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$400(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/lang/Object;
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$400(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/Set;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$500(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List;
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$500(Lcom/android/server/rollback/RollbackManagerServiceImpl;I)Lcom/android/server/rollback/Rollback;
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$500(Lcom/android/server/rollback/RollbackManagerServiceImpl;Landroid/os/UserHandle;)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$600(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$600(Lcom/android/server/rollback/RollbackManagerServiceImpl;Landroid/os/UserHandle;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$700(Lcom/android/server/rollback/RollbackManagerServiceImpl;Ljava/lang/String;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$800(Lcom/android/server/rollback/RollbackManagerServiceImpl;Ljava/lang/String;)V
@@ -29628,9 +32353,13 @@
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->calculateRelativeBootTime()J
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->commitRollback(ILandroid/content/pm/ParceledListSlice;Ljava/lang/String;Landroid/content/IntentSender;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->commitRollbackInternal(ILjava/util/List;Ljava/lang/String;Landroid/content/IntentSender;)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->completeEnableRollback(Lcom/android/server/rollback/Rollback;)Lcom/android/server/rollback/Rollback;
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->completeEnableRollback(Lcom/android/server/rollback/Rollback;)Z
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->completeEnableRollback(Lcom/android/server/rollback/RollbackManagerServiceImpl$NewRollback;)Lcom/android/server/rollback/Rollback;
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->createNewRollbackLocked(Landroid/content/pm/PackageInstaller$SessionInfo;)Lcom/android/server/rollback/Rollback;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->createNewRollbackLocked(Landroid/content/pm/PackageInstaller$SessionInfo;)Lcom/android/server/rollback/RollbackManagerServiceImpl$NewRollback;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/rollback/RollbackManagerServiceImpl;->enableRollback(I)Z
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->enableRollback(ILjava/io/File;II)Z
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->enableRollbackAllowed(Ljava/lang/String;Ljava/lang/String;)Z
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->enableRollbackForPackageSession(Lcom/android/server/rollback/Rollback;Landroid/content/pm/PackageInstaller$SessionInfo;)Z
@@ -29642,7 +32371,7 @@
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->getInstalledPackageVersion(Ljava/lang/String;)J
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->getNewRollbackForPackageSessionLocked(I)Lcom/android/server/rollback/Rollback;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->getNewRollbackForPackageSessionLocked(I)Lcom/android/server/rollback/RollbackManagerServiceImpl$NewRollback;
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->getPackageInfo(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
+HPLcom/android/server/rollback/RollbackManagerServiceImpl;->getPackageInfo(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->getRecentlyCommittedRollbacks()Landroid/content/pm/ParceledListSlice;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->getRollbackForId(I)Lcom/android/server/rollback/Rollback;
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->getRollbackForSessionLocked(I)Lcom/android/server/rollback/Rollback;
@@ -29662,7 +32391,7 @@
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->notifyStagedSession(I)I
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->onBootCompleted()V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->onPackageFullyRemoved(Ljava/lang/String;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->onPackageReplaced(Ljava/lang/String;)V
+HPLcom/android/server/rollback/RollbackManagerServiceImpl;->onPackageReplaced(Ljava/lang/String;)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->onUnlockUser(I)V
 PLcom/android/server/rollback/RollbackManagerServiceImpl;->queueSleepIfNeeded()V
 HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->registerTimeChangeReceiver()V
@@ -29710,6 +32439,8 @@
 PLcom/android/server/rollback/RollbackStore;->convertToJsonArray(Landroid/util/IntArray;)Lorg/json/JSONArray;
 HPLcom/android/server/rollback/RollbackStore;->convertToJsonArray(Ljava/util/List;)Lorg/json/JSONArray;
 HSPLcom/android/server/rollback/RollbackStore;->convertToRestoreInfoArray(Lorg/json/JSONArray;)Ljava/util/ArrayList;
+PLcom/android/server/rollback/RollbackStore;->createNonStagedRollback(IILjava/lang/String;)Lcom/android/server/rollback/Rollback;
+PLcom/android/server/rollback/RollbackStore;->createNonStagedRollback(IILjava/lang/String;[I)Lcom/android/server/rollback/Rollback;
 PLcom/android/server/rollback/RollbackStore;->createStagedRollback(IIILjava/lang/String;[I)Lcom/android/server/rollback/Rollback;
 PLcom/android/server/rollback/RollbackStore;->deletePackageCodePaths(Lcom/android/server/rollback/Rollback;)V
 PLcom/android/server/rollback/RollbackStore;->deleteRollback(Lcom/android/server/rollback/Rollback;)V
@@ -29782,7 +32513,7 @@
 HSPLcom/android/server/security/FileIntegrityService;->loadCertificatesFromKeystore(Landroid/security/KeyStore;)V
 HSPLcom/android/server/security/FileIntegrityService;->onStart()V
 HSPLcom/android/server/security/KeyAttestationApplicationIdProviderService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/security/KeyAttestationApplicationIdProviderService;->getKeyAttestationApplicationId(I)Landroid/security/keymaster/KeyAttestationApplicationId;
+HPLcom/android/server/security/KeyAttestationApplicationIdProviderService;->getKeyAttestationApplicationId(I)Landroid/security/keymaster/KeyAttestationApplicationId;
 HSPLcom/android/server/security/KeyChainSystemService$1;-><init>(Lcom/android/server/security/KeyChainSystemService;)V
 HPLcom/android/server/security/KeyChainSystemService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/security/KeyChainSystemService;-><init>(Landroid/content/Context;)V
@@ -29825,13 +32556,13 @@
 PLcom/android/server/signedconfig/SignedConfigEvent;->send()V
 HSPLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;-><init>()V
 HSPLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;-><init>(Lcom/android/server/signedconfig/SignedConfigService$1;)V
-PLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/signedconfig/SignedConfigService;-><init>(Landroid/content/Context;)V
+HPLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HPLcom/android/server/signedconfig/SignedConfigService;-><init>(Landroid/content/Context;)V
 HPLcom/android/server/signedconfig/SignedConfigService;->handlePackageBroadcast(Landroid/content/Intent;)V
 HSPLcom/android/server/signedconfig/SignedConfigService;->registerUpdateReceiver(Landroid/content/Context;)V
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$2PaYhOaggf1E5xg82LTTEwxmLE4;-><clinit>()V
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$2PaYhOaggf1E5xg82LTTEwxmLE4;-><init>()V
-PLcom/android/server/slice/-$$Lambda$PinnedSliceState$2PaYhOaggf1E5xg82LTTEwxmLE4;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/slice/-$$Lambda$PinnedSliceState$2PaYhOaggf1E5xg82LTTEwxmLE4;->test(Ljava/lang/Object;)Z
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$KzxFkvfomRuMb5PD8_pIHDIhUUE;-><init>(Lcom/android/server/slice/PinnedSliceState;)V
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$KzxFkvfomRuMb5PD8_pIHDIhUUE;->binderDied()V
 PLcom/android/server/slice/-$$Lambda$PinnedSliceState$TZdoqC_LDA8If7sQ7WXz9LM6VHg;-><init>(Lcom/android/server/slice/PinnedSliceState;)V
@@ -30043,17 +32774,17 @@
 PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->requestedToString()Ljava/lang/String;
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setCallback(Landroid/hardware/soundtrigger/IRecognitionStatusCallback;)V
 PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setHandle(I)V
-PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setLoaded()V
+HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setLoaded()V
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setRecognitionConfig(Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)V
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setRequested(Z)V
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;)V
-PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setStarted()V
+HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setStarted()V
 HPLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setStopped()V
 PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->stateToString()Ljava/lang/String;
 PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->toString()Ljava/lang/String;
 PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->uuidToString()Ljava/lang/String;
 HSPLcom/android/server/soundtrigger/SoundTriggerHelper$MyCallStateListener;-><init>(Lcom/android/server/soundtrigger/SoundTriggerHelper;)V
-PLcom/android/server/soundtrigger/SoundTriggerHelper$MyCallStateListener;->onCallStateChanged(ILjava/lang/String;)V
+HPLcom/android/server/soundtrigger/SoundTriggerHelper$MyCallStateListener;->onCallStateChanged(ILjava/lang/String;)V
 PLcom/android/server/soundtrigger/SoundTriggerHelper$PowerSaveModeListener;-><init>(Lcom/android/server/soundtrigger/SoundTriggerHelper;)V
 PLcom/android/server/soundtrigger/SoundTriggerHelper$PowerSaveModeListener;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/soundtrigger/SoundTriggerHelper;-><init>(Landroid/content/Context;)V
@@ -30102,7 +32833,7 @@
 HPLcom/android/server/soundtrigger/SoundTriggerHelper;->unloadGenericSoundModel(Ljava/util/UUID;)I
 PLcom/android/server/soundtrigger/SoundTriggerHelper;->unloadKeyphraseSoundModel(I)I
 HPLcom/android/server/soundtrigger/SoundTriggerHelper;->updateAllRecognitionsLocked(Z)V
-PLcom/android/server/soundtrigger/SoundTriggerHelper;->updateRecognitionLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;ZZ)I
+HPLcom/android/server/soundtrigger/SoundTriggerHelper;->updateRecognitionLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;ZZ)I
 HSPLcom/android/server/soundtrigger/SoundTriggerInternal;-><init>()V
 PLcom/android/server/soundtrigger/SoundTriggerLogger$Event;-><clinit>()V
 HPLcom/android/server/soundtrigger/SoundTriggerLogger$Event;-><init>()V
@@ -30115,10 +32846,10 @@
 HSPLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;Landroid/content/Context;)V
 PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->getModuleProperties()Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
-PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->isInitialized()Z
+HPLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->isInitialized()Z
 HSPLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->setSoundTriggerHelper(Lcom/android/server/soundtrigger/SoundTriggerHelper;)V
 HPLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->startRecognition(ILandroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
-PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->stopRecognition(ILandroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
+HPLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->stopRecognition(ILandroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
 PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->unloadKeyphraseModel(I)I
 PLcom/android/server/soundtrigger/SoundTriggerService$NumOps;-><init>()V
 PLcom/android/server/soundtrigger/SoundTriggerService$NumOps;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService$1;)V
@@ -30155,7 +32886,7 @@
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->pingBinder()Z
 HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->runOrAddOperation(Lcom/android/server/soundtrigger/SoundTriggerService$Operation;)V
-PLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->stopAllPendingOperations()V
+HPLcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;->stopAllPendingOperations()V
 PLcom/android/server/soundtrigger/SoundTriggerService$SoundModelStatTracker$SoundModelStat;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService$SoundModelStatTracker;)V
 HSPLcom/android/server/soundtrigger/SoundTriggerService$SoundModelStatTracker;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;)V
 PLcom/android/server/soundtrigger/SoundTriggerService$SoundModelStatTracker;->dump(Ljava/io/PrintWriter;)V
@@ -30191,10 +32922,13 @@
 HSPLcom/android/server/soundtrigger/SoundTriggerService;->onBootPhase(I)V
 HSPLcom/android/server/soundtrigger/SoundTriggerService;->onStart()V
 HSPLcom/android/server/soundtrigger/SoundTriggerService;->onStartUser(I)V
+PLcom/android/server/soundtrigger/SoundTriggerService;->onSwitchUser(I)V
 HPLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$-_QZ-VR2645z-GkbokL_T8I__48;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;)V
 PLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$-_QZ-VR2645z-GkbokL_T8I__48;->onValues(II)V
 HSPLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$TgbC0Y00RFANX4qn5-S2zqA0RJU;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicReference;)V
 HSPLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$TgbC0Y00RFANX4qn5-S2zqA0RJU;->onValues(ILandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Properties;)V
+PLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$U-QnBwfU2Eg5ANmLxegcyHjJw1M;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicReference;)V
+PLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$U-QnBwfU2Eg5ANmLxegcyHjJw1M;->onValues(ILandroid/hardware/soundtrigger/V2_3/Properties;)V
 PLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$ewHo6fX75Dw1073KIePOuh3oLIE;-><init>(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;)V
 PLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerHw2Compat$ewHo6fX75Dw1073KIePOuh3oLIE;->onValues(II)V
 HSPLcom/android/server/soundtrigger_middleware/-$$Lambda$SoundTriggerMiddlewareService$Lifecycle$-t8UndY0AHGyM6n9ce2y6qok3Ho;-><clinit>()V
@@ -30228,11 +32962,13 @@
 HSPLcom/android/server/soundtrigger_middleware/Hw2CompatUtil;->convertProperties_2_0_to_2_3(Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Properties;)Landroid/hardware/soundtrigger/V2_3/Properties;
 PLcom/android/server/soundtrigger_middleware/Hw2CompatUtil;->convertRecognitionConfig_2_3_to_2_1(Landroid/hardware/soundtrigger/V2_3/RecognitionConfig;)Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$RecognitionConfig;
 HPLcom/android/server/soundtrigger_middleware/InternalServerError;-><init>(Ljava/lang/Throwable;)V
+HPLcom/android/server/soundtrigger_middleware/ObjectPrinter;->print(Ljava/lang/StringBuilder;Ljava/lang/Object;ZI)V
+HPLcom/android/server/soundtrigger_middleware/ObjectPrinter;->printPublicFields(Ljava/lang/StringBuilder;Ljava/lang/Object;ZI)V
 HPLcom/android/server/soundtrigger_middleware/RecoverableException;-><init>(ILjava/lang/String;)V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$NotSupported;-><init>(Ljava/lang/String;)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$SoundTriggerCallback;-><init>(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$SoundTriggerCallback;-><init>(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;Lcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$1;)V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$SoundTriggerCallback;->phraseRecognitionCallback_2_1(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$PhraseRecognitionEvent;I)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$SoundTriggerCallback;->phraseRecognitionCallback_2_1(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$PhraseRecognitionEvent;I)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$SoundTriggerCallback;->recognitionCallback_2_1(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$RecognitionEvent;I)V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;-><init>(Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHw;)V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;-><init>(Landroid/os/IHwBinder;)V
@@ -30244,6 +32980,7 @@
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->getProperties()Landroid/hardware/soundtrigger/V2_3/Properties;
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->getProperties_2_0()Landroid/hardware/soundtrigger/V2_3/Properties;
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->handleHalStatus(ILjava/lang/String;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->lambda$getProperties$0(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicReference;ILandroid/hardware/soundtrigger/V2_3/Properties;)V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->lambda$getProperties_2_0$5(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicReference;ILandroid/hardware/soundtrigger/V2_0/ISoundTriggerHw$Properties;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->lambda$loadPhraseSoundModel$2(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;II)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->lambda$loadSoundModel$1(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;II)V
@@ -30253,7 +32990,20 @@
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->startRecognition(ILandroid/hardware/soundtrigger/V2_3/RecognitionConfig;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->startRecognition_2_1(ILandroid/hardware/soundtrigger/V2_3/RecognitionConfig;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->stopRecognition(I)V
-PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->unloadSoundModel(I)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;->unloadSoundModel(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer$CallbackEnforcer;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer$CallbackEnforcer;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;Lcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer$1;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer$CallbackEnforcer;->phraseRecognitionCallback(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$PhraseRecognitionEvent;I)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer$CallbackEnforcer;->recognitionCallback(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$RecognitionEvent;I)V
+HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer;-><init>(Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer;->getModelState(I)V
+HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer;->getProperties()Landroid/hardware/soundtrigger/V2_3/Properties;
+HSPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer;->loadPhraseSoundModel(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$PhraseSoundModel;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;I)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer;->loadSoundModel(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;I)I
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer;->startRecognition(ILandroid/hardware/soundtrigger/V2_3/RecognitionConfig;Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2$Callback;I)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer;->stopRecognition(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer;->unloadSoundModel(I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider$AudioSession;-><init>(III)V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider;-><init>()V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl;-><init>([Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHw;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider;)V
@@ -30261,12 +33011,56 @@
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl;->attach(ILandroid/media/soundtrigger_middleware/ISoundTriggerCallback;)Landroid/media/soundtrigger_middleware/ISoundTriggerModule;
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl;->listModules()[Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl;->setExternalCaptureState(Z)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$CallbackLogging;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$CallbackLogging;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$1;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$CallbackLogging;->asBinder()Landroid/os/IBinder;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$CallbackLogging;->logVoidReturn(Ljava/lang/String;[Ljava/lang/Object;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$CallbackLogging;->onPhraseRecognition(ILandroid/media/soundtrigger_middleware/PhraseRecognitionEvent;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$CallbackLogging;->onRecognition(ILandroid/media/soundtrigger_middleware/RecognitionEvent;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$CallbackLogging;->onRecognitionAvailabilityChange(Z)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$CallbackLogging;->toString()Ljava/lang/String;
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$Event;-><init>(Ljava/lang/String;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$Event;-><init>(Ljava/lang/String;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$1;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Landroid/media/soundtrigger_middleware/ISoundTriggerModule;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Landroid/media/soundtrigger_middleware/ISoundTriggerModule;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$1;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->forceRecognitionEvent(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->loadModel(Landroid/media/soundtrigger_middleware/SoundModel;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->loadPhraseModel(Landroid/media/soundtrigger_middleware/PhraseSoundModel;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->logException(Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->logReturn(Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->logVoidReturn(Ljava/lang/String;[Ljava/lang/Object;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->startRecognition(ILandroid/media/soundtrigger_middleware/RecognitionConfig;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->stopRecognition(I)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->toString()Ljava/lang/String;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging$ModuleLogging;->unloadModel(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;-><clinit>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->access$200(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->access$300(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->access$400(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->appendMessage(Ljava/lang/String;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->attach(ILandroid/media/soundtrigger_middleware/ISoundTriggerCallback;)Landroid/media/soundtrigger_middleware/ISoundTriggerModule;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->listModules()[Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->logException(Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->logExceptionWithObject(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Exception;[Ljava/lang/Object;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->logReturn(Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->logReturnWithObject(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->logVoidReturn(Ljava/lang/String;[Ljava/lang/Object;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->logVoidReturnWithObject(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->printArgs([Ljava/lang/Object;)Ljava/lang/String;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->printObject(Ljava/lang/Object;)Ljava/lang/String;
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->printObject(Ljava/lang/StringBuilder;Ljava/lang/Object;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->setExternalCaptureState(Z)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareLogging;->toString()Ljava/lang/String;
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$Lifecycle;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$Lifecycle;->lambda$onStart$0()Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHw;
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$Lifecycle;->onStart()V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModelState$Activity;-><clinit>()V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModelState$Activity;-><init>(Ljava/lang/String;I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModelState;-><init>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerModule;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerModule;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$1;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->attach(Landroid/media/soundtrigger_middleware/ISoundTriggerModule;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->detach()V
@@ -30281,41 +33075,79 @@
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->startRecognition(ILandroid/media/soundtrigger_middleware/RecognitionConfig;)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->stopRecognition(I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;->unloadModel(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService;)V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService;Landroid/content/Context;)V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService;Landroid/content/Context;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$1;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$1;)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->access$100(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->access$200(Ljava/lang/Exception;)Ljava/lang/RuntimeException;
 PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->attach(ILandroid/media/soundtrigger_middleware/ISoundTriggerCallback;)Landroid/media/soundtrigger_middleware/ISoundTriggerModule;
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->checkPermissions()V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->checkPreemptPermissions()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->enforcePermission(Ljava/lang/String;)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->handleException(Ljava/lang/Exception;)Ljava/lang/RuntimeException;
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->listModules()[Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;->setExternalCaptureState(Z)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModelState$Activity;-><clinit>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModelState$Activity;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModelState;-><init>()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;ILandroid/media/soundtrigger_middleware/ISoundTriggerCallback;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;->attach(Landroid/media/soundtrigger_middleware/ISoundTriggerModule;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;->forceRecognitionEvent(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;->loadModel(Landroid/media/soundtrigger_middleware/SoundModel;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;->loadPhraseModel(Landroid/media/soundtrigger_middleware/PhraseSoundModel;)I
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;->onPhraseRecognition(ILandroid/media/soundtrigger_middleware/PhraseRecognitionEvent;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;->onRecognition(ILandroid/media/soundtrigger_middleware/RecognitionEvent;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;->onRecognitionAvailabilityChange(Z)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;->startRecognition(ILandroid/media/soundtrigger_middleware/RecognitionConfig;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;->stopRecognition(I)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;->toString()Ljava/lang/String;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation$ModuleService;->unloadModel(I)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;-><init>(Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService;Landroid/content/Context;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->access$000(Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;)Ljava/util/Map;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->attach(ILandroid/media/soundtrigger_middleware/ISoundTriggerCallback;)Landroid/media/soundtrigger_middleware/ISoundTriggerModule;
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->checkPermissions()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->checkPreemptPermissions()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->enforcePermission(Ljava/lang/String;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->handleException(Ljava/lang/Exception;)Ljava/lang/RuntimeException;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->listModules()[Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor;
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->setExternalCaptureState(Z)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation;->toString()Ljava/lang/String;
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$ModelState;-><clinit>()V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$ModelState;-><init>(Ljava/lang/String;I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$1;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$1000(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$1000(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;Landroid/media/soundtrigger_middleware/PhraseSoundModel;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider$AudioSession;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$1000(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;Landroid/media/soundtrigger_middleware/RecognitionConfig;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$1100(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$1100(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$1100(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;Landroid/media/soundtrigger_middleware/RecognitionConfig;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$1200(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;)V
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$1200(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;Landroid/media/soundtrigger_middleware/RecognitionConfig;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$1300(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;)V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$1400(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$700(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;Landroid/media/soundtrigger_middleware/SoundModel;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$800(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;Landroid/media/soundtrigger_middleware/PhraseSoundModel;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$800(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;Landroid/media/soundtrigger_middleware/SoundModel;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$900(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$900(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;Landroid/media/soundtrigger_middleware/PhraseSoundModel;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->access$900(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;Landroid/media/soundtrigger_middleware/SoundModel;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider$AudioSession;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->forceRecognitionEvent()V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->getState()Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$ModelState;
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->load(Landroid/media/soundtrigger_middleware/PhraseSoundModel;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->load(Landroid/media/soundtrigger_middleware/PhraseSoundModel;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider$AudioSession;)I
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->load(Landroid/media/soundtrigger_middleware/SoundModel;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->load(Landroid/media/soundtrigger_middleware/SoundModel;Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider$AudioSession;)I
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->phraseRecognitionCallback(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$PhraseRecognitionEvent;I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->recognitionCallback(Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHwCallback$RecognitionEvent;I)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->setState(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$ModelState;)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->startRecognition(Landroid/media/soundtrigger_middleware/RecognitionConfig;)V
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->stopRecognition()V
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->unload()I
 HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;->unload()V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;-><init>(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$1;)V
@@ -30342,16 +33174,22 @@
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$1800(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)Z
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$1900(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2;
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$1900(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$1900(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)Z
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$2000(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)Lcom/android/server/soundtrigger_middleware/ISoundTriggerHw2;
-PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$400(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)I
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$400(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$400(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;)V
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$404(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$406(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$500(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)I
-PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$500(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)Landroid/media/soundtrigger_middleware/SoundTriggerModuleProperties;
+HPLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$500(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)Landroid/media/soundtrigger_middleware/SoundTriggerModuleProperties;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$500(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider;
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$504(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$506(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$600(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)I
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$600(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)Landroid/media/soundtrigger_middleware/SoundTriggerModuleProperties;
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$604(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$606(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)I
+PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->access$700(Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;)Landroid/media/soundtrigger_middleware/SoundTriggerModuleProperties;
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->attach(Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;)Landroid/media/soundtrigger_middleware/ISoundTriggerModule;
 PLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->attach(Landroid/media/soundtrigger_middleware/ISoundTriggerCallback;)Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;
 HSPLcom/android/server/soundtrigger_middleware/SoundTriggerModule;->attachToHal()V
@@ -30514,7 +33352,7 @@
 PLcom/android/server/stats/pull/-$$Lambda$StatsPullAtomService$HoKaYjaEIOIRXJyDFklY-rgc_cw;->onPullAtom(ILjava/util/List;)I
 HSPLcom/android/server/stats/pull/-$$Lambda$StatsPullAtomService$I9d0JaNY8gTVS5nJ3bvbDlp2yu0;-><init>(Lcom/android/server/stats/pull/StatsPullAtomService;)V
 PLcom/android/server/stats/pull/-$$Lambda$StatsPullAtomService$I9d0JaNY8gTVS5nJ3bvbDlp2yu0;->onPullAtom(ILjava/util/List;)I
-PLcom/android/server/stats/pull/-$$Lambda$StatsPullAtomService$IB4WDvYz1DDpmLMD3gEZhLRa46s;-><init>(Landroid/util/SparseArray;)V
+HPLcom/android/server/stats/pull/-$$Lambda$StatsPullAtomService$IB4WDvYz1DDpmLMD3gEZhLRa46s;-><init>(Landroid/util/SparseArray;)V
 HPLcom/android/server/stats/pull/-$$Lambda$StatsPullAtomService$IB4WDvYz1DDpmLMD3gEZhLRa46s;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/stats/pull/-$$Lambda$StatsPullAtomService$ITU8q06caEdamlLZPazkHB2M8iE;-><init>(ILjava/util/List;)V
 HPLcom/android/server/stats/pull/-$$Lambda$StatsPullAtomService$ITU8q06caEdamlLZPazkHB2M8iE;->onValues(ILandroid/hardware/health/V2_0/HealthInfo;)V
@@ -30615,7 +33453,7 @@
 HPLcom/android/server/stats/pull/-$$Lambda$StatsPullAtomService$zkqK-r9QsJBeVy1sojo4bOB8YhY;-><init>(ILjava/util/List;)V
 HPLcom/android/server/stats/pull/-$$Lambda$StatsPullAtomService$zkqK-r9QsJBeVy1sojo4bOB8YhY;->onUidCpuTime(ILjava/lang/Object;)V
 PLcom/android/server/stats/pull/-$$Lambda$wPejPqIRC0ueiw9uak8ULakT1R8;-><init>(Ljava/util/concurrent/CompletableFuture;)V
-PLcom/android/server/stats/pull/-$$Lambda$wPejPqIRC0ueiw9uak8ULakT1R8;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/stats/pull/-$$Lambda$wPejPqIRC0ueiw9uak8ULakT1R8;->accept(Ljava/lang/Object;)V
 PLcom/android/server/stats/pull/IonMemoryUtil$IonAllocations;-><init>()V
 PLcom/android/server/stats/pull/IonMemoryUtil;-><clinit>()V
 HPLcom/android/server/stats/pull/IonMemoryUtil;->parseIonHeapSizeFromDebugfs(Ljava/lang/String;)J
@@ -30648,7 +33486,7 @@
 HPLcom/android/server/stats/pull/StatsPullAtomService;->awaitControllerInfo(Landroid/os/SynchronousResultReceiver;)Landroid/os/Parcelable;
 HPLcom/android/server/stats/pull/StatsPullAtomService;->fetchBluetoothData()Landroid/bluetooth/BluetoothActivityEnergyInfo;
 HPLcom/android/server/stats/pull/StatsPullAtomService;->getINetworkStatsService()Landroid/net/INetworkStatsService;
-PLcom/android/server/stats/pull/StatsPullAtomService;->getIStoragedService()Landroid/os/IStoraged;
+HPLcom/android/server/stats/pull/StatsPullAtomService;->getIStoragedService()Landroid/os/IStoraged;
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->getIThermalService()Landroid/os/IThermalService;
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->initializePullersState()V
 HPLcom/android/server/stats/pull/StatsPullAtomService;->isAppUid(I)Z
@@ -30712,6 +33550,8 @@
 PLcom/android/server/stats/pull/StatsPullAtomService;->lambda$registerWifiBytesTransferBackground$7$StatsPullAtomService(ILjava/util/List;)I
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->onBootPhase(I)V
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->onStart()V
+HPLcom/android/server/stats/pull/StatsPullAtomService;->processHistoricalOp(Landroid/app/AppOpsManager$HistoricalOp;ILjava/util/List;ILjava/lang/String;Ljava/lang/String;)I
+HPLcom/android/server/stats/pull/StatsPullAtomService;->processHistoricalOps(Landroid/app/AppOpsManager$HistoricalOps;ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullAppOps(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullAppsOnExternalStorageInfo(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullBatteryLevel(ILjava/util/List;)I
@@ -30743,6 +33583,7 @@
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullProcessMemoryHighWaterMark(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullProcessMemorySnapshot(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullProcessSystemIonHeapSize(ILjava/util/List;)I
+PLcom/android/server/stats/pull/StatsPullAtomService;->pullRuntimeAppOpAccessMessage(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullSystemIonHeapSize(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullSystemUptime(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullTemperature(ILjava/util/List;)I
@@ -30751,6 +33592,7 @@
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullWifiBytesTransfer(ILjava/util/List;)I
 HPLcom/android/server/stats/pull/StatsPullAtomService;->pullWifiBytesTransferBackground(ILjava/util/List;)I
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerAllPullers()V
+PLcom/android/server/stats/pull/StatsPullAtomService;->registerAppFeaturesOps()V
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerAppOps()V
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerAppSize()V
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerAppsOnExternalStorageInfo()V
@@ -30803,6 +33645,7 @@
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerProcessSystemIonHeapSize()V
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerRemainingBatteryCapacity()V
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerRoleHolder()V
+HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerRuntimeAppOpAccessMessage()V
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerSystemElapsedRealtime()V
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerSystemIonHeapSize()V
 HSPLcom/android/server/stats/pull/StatsPullAtomService;->registerSystemUptime()V
@@ -30837,6 +33680,7 @@
 HPLcom/android/server/statusbar/StatusBarManagerService$1;->onProposedRotationChanged(IZ)V
 HPLcom/android/server/statusbar/StatusBarManagerService$1;->onRecentsAnimationStateChanged(Z)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$1;->onSystemBarAppearanceChanged(II[Lcom/android/internal/view/AppearanceRegion;Z)V
+PLcom/android/server/statusbar/StatusBarManagerService$1;->setCurrentUser(I)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$1;->setDisableFlags(IILjava/lang/String;)V
 HSPLcom/android/server/statusbar/StatusBarManagerService$1;->setNotificationDelegate(Lcom/android/server/notification/NotificationDelegate;)V
 HPLcom/android/server/statusbar/StatusBarManagerService$1;->setTopAppHidesStatusBar(Z)V
@@ -30857,7 +33701,7 @@
 PLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;->binderDied()V
 HSPLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;->linkToDeath()V
 HSPLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;ILandroid/os/IBinder;)V
-PLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;->binderDied()V
+HPLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;->binderDied()V
 HSPLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;->getFlags(I)I
 HSPLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;->isEmpty()Z
 HSPLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;->setFlags(IILjava/lang/String;)V
@@ -30911,6 +33755,7 @@
 HSPLcom/android/server/statusbar/StatusBarManagerService;->access$600(Lcom/android/server/statusbar/StatusBarManagerService;IZZ)V
 HSPLcom/android/server/statusbar/StatusBarManagerService;->access$700(Lcom/android/server/statusbar/StatusBarManagerService;IILjava/lang/String;)V
 HSPLcom/android/server/statusbar/StatusBarManagerService;->access$800(Lcom/android/server/statusbar/StatusBarManagerService;)V
+PLcom/android/server/statusbar/StatusBarManagerService;->access$902(Lcom/android/server/statusbar/StatusBarManagerService;I)I
 PLcom/android/server/statusbar/StatusBarManagerService;->addTile(Landroid/content/ComponentName;)V
 HPLcom/android/server/statusbar/StatusBarManagerService;->clearInlineReplyUriPermissions(Ljava/lang/String;)V
 HPLcom/android/server/statusbar/StatusBarManagerService;->clearNotificationEffects()V
@@ -30944,6 +33789,7 @@
 HSPLcom/android/server/statusbar/StatusBarManagerService;->notifyBarAttachChanged()V
 PLcom/android/server/statusbar/StatusBarManagerService;->onBiometricAuthenticated()V
 PLcom/android/server/statusbar/StatusBarManagerService;->onBiometricError(III)V
+PLcom/android/server/statusbar/StatusBarManagerService;->onBiometricHelp(Ljava/lang/String;)V
 PLcom/android/server/statusbar/StatusBarManagerService;->onBubbleNotificationSuppressionChanged(Ljava/lang/String;Z)V
 PLcom/android/server/statusbar/StatusBarManagerService;->onClearAllNotifications(I)V
 PLcom/android/server/statusbar/StatusBarManagerService;->onDisplayAdded(I)V
@@ -30951,7 +33797,7 @@
 PLcom/android/server/statusbar/StatusBarManagerService;->onDisplayRemoved(I)V
 PLcom/android/server/statusbar/StatusBarManagerService;->onGlobalActionsHidden()V
 PLcom/android/server/statusbar/StatusBarManagerService;->onGlobalActionsShown()V
-PLcom/android/server/statusbar/StatusBarManagerService;->onNotificationActionClick(Ljava/lang/String;ILandroid/app/Notification$Action;Lcom/android/internal/statusbar/NotificationVisibility;Z)V
+HPLcom/android/server/statusbar/StatusBarManagerService;->onNotificationActionClick(Ljava/lang/String;ILandroid/app/Notification$Action;Lcom/android/internal/statusbar/NotificationVisibility;Z)V
 PLcom/android/server/statusbar/StatusBarManagerService;->onNotificationBubbleChanged(Ljava/lang/String;Z)V
 HPLcom/android/server/statusbar/StatusBarManagerService;->onNotificationClear(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;IILcom/android/internal/statusbar/NotificationVisibility;)V
 HPLcom/android/server/statusbar/StatusBarManagerService;->onNotificationClick(Ljava/lang/String;Lcom/android/internal/statusbar/NotificationVisibility;)V
@@ -30976,6 +33822,7 @@
 PLcom/android/server/statusbar/StatusBarManagerService;->showPinningEnterExitToast(Z)V
 PLcom/android/server/statusbar/StatusBarManagerService;->showPinningEscapeToast()V
 PLcom/android/server/statusbar/StatusBarManagerService;->shutdown()V
+PLcom/android/server/statusbar/StatusBarManagerService;->suppressAmbientDisplay(Z)V
 HSPLcom/android/server/statusbar/StatusBarManagerService;->topAppWindowChanged(IZZ)V
 PLcom/android/server/storage/-$$Lambda$StorageUserConnection$ActiveConnection$2ECT20JMDVk3s2c7JRifxIdFISs;-><init>(Lcom/android/server/storage/StorageUserConnection$ActiveConnection;Ljava/util/concurrent/CountDownLatch;)V
 PLcom/android/server/storage/-$$Lambda$StorageUserConnection$ActiveConnection$2ECT20JMDVk3s2c7JRifxIdFISs;->onResult(Landroid/os/Bundle;)V
@@ -31191,7 +34038,7 @@
 HSPLcom/android/server/testharness/TestHarnessModeService;->onStart()V
 HSPLcom/android/server/testharness/TestHarnessModeService;->setUpTestHarnessMode()V
 PLcom/android/server/testharness/TestHarnessModeService;->showNotificationIfEnabled()V
-PLcom/android/server/textclassifier/-$$Lambda$ClPEOpaEGm2gFpu1r4dox0RBPf4;-><init>(Landroid/view/textclassifier/TextClassificationConstants;)V
+HPLcom/android/server/textclassifier/-$$Lambda$ClPEOpaEGm2gFpu1r4dox0RBPf4;-><init>(Landroid/view/textclassifier/TextClassificationConstants;)V
 HPLcom/android/server/textclassifier/-$$Lambda$ClPEOpaEGm2gFpu1r4dox0RBPf4;->getOrThrow()Ljava/lang/Object;
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$2sJrwO1jPjEX_2E7aDk6t5666lk;-><init>(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)V
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$2sJrwO1jPjEX_2E7aDk6t5666lk;->runOrThrow()V
@@ -31209,7 +34056,7 @@
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$Mu95ZECYMawAFTgaMzQ9kasDiKU;->acceptOrThrow(Ljava/lang/Object;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$NrhR3cz8qMQshjDDQuBK6HtZpyc;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/SelectionEvent;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$NrhR3cz8qMQshjDDQuBK6HtZpyc;->runOrThrow()V
-PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$SessionCache$q4fGxygETn80gLCa2MrH-2YXaZA;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;Landroid/view/textclassifier/TextClassificationSessionId;)V
+HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$SessionCache$q4fGxygETn80gLCa2MrH-2YXaZA;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;Landroid/view/textclassifier/TextClassificationSessionId;)V
 PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$SessionCache$q4fGxygETn80gLCa2MrH-2YXaZA;->binderDied()V
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$XSRTA8JOHnkYT6Nx-j6ZQZBVb1k;-><init>(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassifierEvent;)V
 HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$XSRTA8JOHnkYT6Nx-j6ZQZBVb1k;->acceptOrThrow(Ljava/lang/Object;)V
@@ -31261,28 +34108,29 @@
 HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1600(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Ljava/lang/Runnable;
 PLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1700(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Ljava/lang/Runnable;
 HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1800(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Landroid/os/IBinder;
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;I)V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;I)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->cleanupService()V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->init(Landroid/service/textclassifier/ITextClassifierService;Landroid/content/ComponentName;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->onBindingDied(Landroid/content/ComponentName;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->onNullBinding(Landroid/content/ComponentName;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILjava/lang/String;Z)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILjava/lang/String;ZLcom/android/server/textclassifier/TextClassificationManagerService$1;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$1200(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)Z
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILjava/lang/String;Z)V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILjava/lang/String;ZLcom/android/server/textclassifier/TextClassificationManagerService$1;)V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$1200(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$1300(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$2100(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;ILandroid/content/ComponentName;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$2200(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$500(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;)Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->access$600(Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;ILjava/lang/String;)Z
-PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->bindIfHasPendingRequestsLocked()Z
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->bindIfHasPendingRequestsLocked()Z
 HPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->bindLocked()Z
 HPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->checkRequestAcceptedLocked(ILjava/lang/String;)Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->getTextClassifierServiceComponent()Landroid/content/ComponentName;
 HPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->handlePendingRequestsLocked()V
 HPLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->isBoundLocked()Z
+PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->unbindIfBoundLocked()V
 PLcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;->updateServiceInfoLocked(ILandroid/content/ComponentName;)V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;-><init>(Ljava/lang/Object;)V
 HPLcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;->get(Landroid/view/textclassifier/TextClassificationSessionId;)Lcom/android/server/textclassifier/TextClassificationManagerService$StrippedTextClassificationContext;
@@ -31301,10 +34149,10 @@
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;->onNullBinding(Landroid/content/ComponentName;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;I)V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;I)V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILandroid/content/Context;Ljava/lang/Object;)V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILandroid/content/Context;Ljava/lang/Object;Lcom/android/server/textclassifier/TextClassificationManagerService$1;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILcom/android/server/textclassifier/TextClassificationManagerService$1;)V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILcom/android/server/textclassifier/TextClassificationManagerService$1;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$1000(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$1700(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)Ljava/lang/Object;
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$1800(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;ILandroid/content/ComponentName;)V
@@ -31317,27 +34165,28 @@
 HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$800(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;ILjava/lang/String;)Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$800(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$900(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/content/ComponentName;)Z
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->bindIfHasPendingRequestsLocked()V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->bindIfHasPendingRequestsLocked()V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->bindIfHasPendingRequestsLocked()Z
 HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->bindLocked()Z
 HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->checkRequestAcceptedLocked(ILjava/lang/String;)Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->cleanupServiceLocked()V
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->dump(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;Ljava/lang/String;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->getAllServiceStatesLocked()Ljava/util/List;
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->getAllServiceStatesLocked()Ljava/util/List;
 HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->getServiceStateLocked(Z)Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->getServiceUid(Landroid/content/ComponentName;I)I
 HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->handlePendingRequestsLocked()V
 HPLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->isBoundLocked()Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->isCurrentlyBoundToComponentLocked(Landroid/content/ComponentName;)Z
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->isDefaultTrustService(Landroid/content/ComponentName;)Z
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->onTextClassifierServicePackageOverrideChangedLocked(Ljava/lang/String;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->unbindLocked()V
 PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->updateServiceInfoLocked(ILandroid/content/ComponentName;)V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService;-><clinit>()V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService;-><init>(Landroid/content/Context;Lcom/android/server/textclassifier/TextClassificationManagerService$1;)V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService;->access$100(Lcom/android/server/textclassifier/TextClassificationManagerService;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService;->access$1000(Lcom/android/server/textclassifier/TextClassificationManagerService;)Ljava/lang/String;
+HSPLcom/android/server/textclassifier/TextClassificationManagerService;->access$1000(Lcom/android/server/textclassifier/TextClassificationManagerService;)Ljava/lang/String;
 PLcom/android/server/textclassifier/TextClassificationManagerService;->access$1100(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/lang/String;)Ljava/lang/Runnable;
 HSPLcom/android/server/textclassifier/TextClassificationManagerService;->access$1100(Lcom/android/server/textclassifier/TextClassificationManagerService;)Landroid/view/textclassifier/TextClassificationConstants;
 PLcom/android/server/textclassifier/TextClassificationManagerService;->access$1900(Lcom/android/server/textclassifier/TextClassificationManagerService;)Landroid/content/Context;
@@ -31346,7 +34195,7 @@
 PLcom/android/server/textclassifier/TextClassificationManagerService;->access$2000(Lcom/android/server/textclassifier/TextClassificationManagerService;Ljava/lang/String;I)I
 HSPLcom/android/server/textclassifier/TextClassificationManagerService;->access$300(Lcom/android/server/textclassifier/TextClassificationManagerService;I)Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->access$700(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/lang/String;)Ljava/lang/Runnable;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->access$800(Lcom/android/server/textclassifier/TextClassificationManagerService;)Ljava/lang/String;
+HSPLcom/android/server/textclassifier/TextClassificationManagerService;->access$800(Lcom/android/server/textclassifier/TextClassificationManagerService;)Ljava/lang/String;
 PLcom/android/server/textclassifier/TextClassificationManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/textclassifier/TextClassificationManagerService;->getUserStateLocked(I)Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->handleRequest(ILjava/lang/String;ZLcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Ljava/lang/String;Landroid/service/textclassifier/ITextClassifierCallback;)V
@@ -31382,6 +34231,7 @@
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->onSuggestConversationActions(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/ConversationActions$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService;->onSuggestSelection(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextSelection$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
 HPLcom/android/server/textclassifier/TextClassificationManagerService;->onTextClassifierEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassifierEvent;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->onTextClassifierServicePackageOverrideChanged(Ljava/lang/String;)V
 PLcom/android/server/textclassifier/TextClassificationManagerService;->peekUserStateLocked(I)Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;
 PLcom/android/server/textclassifier/TextClassificationManagerService;->resolvePackageToUid(Ljava/lang/String;I)I
 HSPLcom/android/server/textclassifier/TextClassificationManagerService;->startListenSettings()V
@@ -31429,7 +34279,7 @@
 PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->lambda$removeListener$0(Landroid/os/IBinder;Lcom/android/server/textservices/TextServicesManagerService$SessionRequest;)Z
 HPLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->onServiceConnectedLocked(Lcom/android/internal/textservice/ISpellCheckerService;)V
 PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->onServiceDisconnectedLocked()V
-PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->onSessionCreated(Lcom/android/internal/textservice/ISpellCheckerSession;Lcom/android/server/textservices/TextServicesManagerService$SessionRequest;)V
+HPLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->onSessionCreated(Lcom/android/internal/textservice/ISpellCheckerSession;Lcom/android/server/textservices/TextServicesManagerService$SessionRequest;)V
 PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->removeAllLocked()V
 HPLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->removeListener(Lcom/android/internal/textservice/ISpellCheckerSessionListener;)V
 PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;-><init>(ILandroid/content/Context;)V
@@ -31462,7 +34312,7 @@
 PLcom/android/server/textservices/TextServicesManagerService;->access$1300(Lcom/android/server/textservices/TextServicesManagerService;)Landroid/util/SparseArray;
 PLcom/android/server/textservices/TextServicesManagerService;->access$2300(Lcom/android/server/textservices/TextServicesManagerService;)Landroid/content/Context;
 HSPLcom/android/server/textservices/TextServicesManagerService;->access$900(Lcom/android/server/textservices/TextServicesManagerService;I)Landroid/view/textservice/SpellCheckerInfo;
-PLcom/android/server/textservices/TextServicesManagerService;->bindCurrentSpellCheckerService(Landroid/content/Intent;Landroid/content/ServiceConnection;II)Z
+HPLcom/android/server/textservices/TextServicesManagerService;->bindCurrentSpellCheckerService(Landroid/content/Intent;Landroid/content/ServiceConnection;II)Z
 PLcom/android/server/textservices/TextServicesManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/textservices/TextServicesManagerService;->findAvailSystemSpellCheckerLocked(Ljava/lang/String;Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)Landroid/view/textservice/SpellCheckerInfo;
 HPLcom/android/server/textservices/TextServicesManagerService;->finishSpellCheckerService(ILcom/android/internal/textservice/ISpellCheckerSessionListener;)V
@@ -31476,13 +34326,15 @@
 PLcom/android/server/textservices/TextServicesManagerService;->onStopUser(I)V
 PLcom/android/server/textservices/TextServicesManagerService;->onUnlockUser(I)V
 PLcom/android/server/textservices/TextServicesManagerService;->setCurrentSpellCheckerLocked(Landroid/view/textservice/SpellCheckerInfo;Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)V
-PLcom/android/server/textservices/TextServicesManagerService;->startSpellCheckerServiceInnerLocked(Landroid/view/textservice/SpellCheckerInfo;Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)Lcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;
+HPLcom/android/server/textservices/TextServicesManagerService;->startSpellCheckerServiceInnerLocked(Landroid/view/textservice/SpellCheckerInfo;Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)Lcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;
 PLcom/android/server/textservices/TextServicesManagerService;->unbindServiceLocked(Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)V
 HPLcom/android/server/textservices/TextServicesManagerService;->verifyUser(I)V
 PLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$-psn4dtQQi-8j8LFHWcI7Y6I83U;-><init>(Lcom/android/server/timedetector/TimeDetectorService;Landroid/app/timedetector/TelephonyTimeSuggestion;)V
-PLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$-psn4dtQQi-8j8LFHWcI7Y6I83U;->run()V
+HPLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$-psn4dtQQi-8j8LFHWcI7Y6I83U;->run()V
 HPLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$CIVCmMHYHAlLayNvm792RTW8F3U;-><init>(Lcom/android/server/timedetector/TimeDetectorService;Landroid/app/timedetector/PhoneTimeSuggestion;)V
 HPLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$CIVCmMHYHAlLayNvm792RTW8F3U;->run()V
+PLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$DcAkTJaWB9_yMqP5iTI6-JQdq4g;-><init>(Lcom/android/server/timedetector/TimeDetectorService;Landroid/app/timedetector/ManualTimeSuggestion;)V
+PLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$DcAkTJaWB9_yMqP5iTI6-JQdq4g;->run()V
 PLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$nU2ruOeSUWWPVvB4A7i7qaumT4s;-><init>(Lcom/android/server/timedetector/TimeDetectorService;Landroid/app/timedetector/NetworkTimeSuggestion;)V
 PLcom/android/server/timedetector/-$$Lambda$TimeDetectorService$nU2ruOeSUWWPVvB4A7i7qaumT4s;->run()V
 PLcom/android/server/timedetector/-$$Lambda$lkjIbFi2SczFhCGbzNmkRxmPS0M;-><init>(Lcom/android/server/timedetector/TimeDetectorStrategy;)V
@@ -31495,13 +34347,17 @@
 HSPLcom/android/server/timedetector/TimeDetectorService;->access$000(Landroid/content/Context;)Lcom/android/server/timedetector/TimeDetectorService;
 HSPLcom/android/server/timedetector/TimeDetectorService;->create(Landroid/content/Context;)Lcom/android/server/timedetector/TimeDetectorService;
 PLcom/android/server/timedetector/TimeDetectorService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/timedetector/TimeDetectorService;->enforceSuggestManualTimePermission()V
 PLcom/android/server/timedetector/TimeDetectorService;->enforceSuggestNetworkTimePermission()V
 HPLcom/android/server/timedetector/TimeDetectorService;->enforceSuggestPhoneTimePermission()V
 PLcom/android/server/timedetector/TimeDetectorService;->enforceSuggestTelephonyTimePermission()V
+PLcom/android/server/timedetector/TimeDetectorService;->handleAutoTimeDetectionChanged()V
 PLcom/android/server/timedetector/TimeDetectorService;->handleAutoTimeDetectionToggle()V
+PLcom/android/server/timedetector/TimeDetectorService;->lambda$suggestManualTime$1$TimeDetectorService(Landroid/app/timedetector/ManualTimeSuggestion;)V
 PLcom/android/server/timedetector/TimeDetectorService;->lambda$suggestNetworkTime$2$TimeDetectorService(Landroid/app/timedetector/NetworkTimeSuggestion;)V
 PLcom/android/server/timedetector/TimeDetectorService;->lambda$suggestPhoneTime$0$TimeDetectorService(Landroid/app/timedetector/PhoneTimeSuggestion;)V
 PLcom/android/server/timedetector/TimeDetectorService;->lambda$suggestTelephonyTime$0$TimeDetectorService(Landroid/app/timedetector/TelephonyTimeSuggestion;)V
+PLcom/android/server/timedetector/TimeDetectorService;->suggestManualTime(Landroid/app/timedetector/ManualTimeSuggestion;)V
 HPLcom/android/server/timedetector/TimeDetectorService;->suggestNetworkTime(Landroid/app/timedetector/NetworkTimeSuggestion;)V
 HPLcom/android/server/timedetector/TimeDetectorService;->suggestPhoneTime(Landroid/app/timedetector/PhoneTimeSuggestion;)V
 HPLcom/android/server/timedetector/TimeDetectorService;->suggestTelephonyTime(Landroid/app/timedetector/TelephonyTimeSuggestion;)V
@@ -31529,12 +34385,13 @@
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->scoreTelephonySuggestion(JLandroid/app/timedetector/TelephonyTimeSuggestion;)I
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->setSystemClockIfRequired(ILandroid/os/TimestampedValue;Ljava/lang/String;)V
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->setSystemClockUnderWakeLock(ILandroid/os/TimestampedValue;Ljava/lang/Object;)V
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->suggestManualTime(Landroid/app/timedetector/ManualTimeSuggestion;)V
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->suggestNetworkTime(Landroid/app/timedetector/NetworkTimeSuggestion;)V
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->suggestPhoneTime(Landroid/app/timedetector/PhoneTimeSuggestion;)V
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->suggestTelephonyTime(Landroid/app/timedetector/TelephonyTimeSuggestion;)V
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateAndStorePhoneSuggestion(Landroid/app/timedetector/PhoneTimeSuggestion;)Z
 HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateAndStoreTelephonySuggestion(Landroid/app/timedetector/TelephonyTimeSuggestion;)Z
-PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionTime(Landroid/os/TimestampedValue;Ljava/lang/Object;)Z
+HPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionTime(Landroid/os/TimestampedValue;Ljava/lang/Object;)Z
 PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->validateSuggestionUtcTime(JLandroid/os/TimestampedValue;)Z
 PLcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$9xvncY35tAcP2eoRcnDHHViAoZw;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorService;Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)V
 PLcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$9xvncY35tAcP2eoRcnDHHViAoZw;->run()V
@@ -31556,8 +34413,10 @@
 HPLcom/android/server/timezonedetector/ReferenceWithHistory;->set(Ljava/lang/Object;)Ljava/lang/Object;
 PLcom/android/server/timezonedetector/ReferenceWithHistory;->toString()Ljava/lang/String;
 HSPLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;-><init>(Landroid/content/Context;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;->deviceHasTelephonyNetwork()Z
 PLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;->getDeviceTimeZone()Ljava/lang/String;
 HPLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;->isAutoTimeZoneDetectionEnabled()Z
+PLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;->isAutoTimeZoneDetectionSupported()Z
 HPLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;->isDeviceTimeZoneInitialized()Z
 PLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;->setDeviceTimeZone(Ljava/lang/String;)V
 HSPLcom/android/server/timezonedetector/TimeZoneDetectorService$1;-><init>(Landroid/os/Handler;Lcom/android/server/timezonedetector/TimeZoneDetectorService;)V
@@ -31600,11 +34459,11 @@
 HPLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->doAutoTimeZoneDetection(Ljava/lang/String;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->findBestPhoneSuggestion()Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedPhoneTimeZoneSuggestion;
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->findBestTelephonySuggestion()Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedTelephonyTimeZoneSuggestion;
+HPLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->findBestTelephonySuggestion()Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedTelephonyTimeZoneSuggestion;
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->isOriginAutomatic(I)Z
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->scorePhoneSuggestion(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)I
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->scoreTelephonySuggestion(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)I
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->setDeviceTimeZoneIfRequired(ILjava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->setDeviceTimeZoneIfRequired(ILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->suggestPhoneTimeZone(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)V
 HPLcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;->suggestTelephonyTimeZone(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion;)V
 HSPLcom/android/server/trust/-$$Lambda$TrustManagerService$1$98HKBkg-C1PLlz_Q1vJz1OJtw4c;-><clinit>()V
@@ -31621,7 +34480,7 @@
 PLcom/android/server/trust/TrustAgentWrapper$4;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 PLcom/android/server/trust/TrustAgentWrapper$4;->onServiceDisconnected(Landroid/content/ComponentName;)V
 PLcom/android/server/trust/TrustAgentWrapper;-><clinit>()V
-PLcom/android/server/trust/TrustAgentWrapper;-><init>(Landroid/content/Context;Lcom/android/server/trust/TrustManagerService;Landroid/content/Intent;Landroid/os/UserHandle;)V
+HPLcom/android/server/trust/TrustAgentWrapper;-><init>(Landroid/content/Context;Lcom/android/server/trust/TrustManagerService;Landroid/content/Intent;Landroid/os/UserHandle;)V
 PLcom/android/server/trust/TrustAgentWrapper;->access$000(Lcom/android/server/trust/TrustAgentWrapper;)Landroid/content/ComponentName;
 PLcom/android/server/trust/TrustAgentWrapper;->access$100(Lcom/android/server/trust/TrustAgentWrapper;)Landroid/os/Handler;
 HPLcom/android/server/trust/TrustAgentWrapper;->access$1000(Lcom/android/server/trust/TrustAgentWrapper;)I
@@ -31645,7 +34504,7 @@
 PLcom/android/server/trust/TrustAgentWrapper;->isBound()Z
 HPLcom/android/server/trust/TrustAgentWrapper;->isConnected()Z
 PLcom/android/server/trust/TrustAgentWrapper;->isManagingTrust()Z
-PLcom/android/server/trust/TrustAgentWrapper;->isTrusted()Z
+HPLcom/android/server/trust/TrustAgentWrapper;->isTrusted()Z
 HPLcom/android/server/trust/TrustAgentWrapper;->onDeviceLocked()V
 HPLcom/android/server/trust/TrustAgentWrapper;->onDeviceUnlocked()V
 PLcom/android/server/trust/TrustAgentWrapper;->onError(Ljava/lang/Exception;)V
@@ -31717,7 +34576,7 @@
 HSPLcom/android/server/trust/TrustManagerService$StrongAuthTracker;-><init>(Lcom/android/server/trust/TrustManagerService;Landroid/content/Context;)V
 HPLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->allowTrustFromUnlock(I)V
 HPLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->canAgentsRunForUser(I)Z
-PLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->onStrongAuthRequiredChanged(I)V
+HPLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->onStrongAuthRequiredChanged(I)V
 PLcom/android/server/trust/TrustManagerService$TrustTimeoutAlarmListener;-><init>(Lcom/android/server/trust/TrustManagerService;I)V
 PLcom/android/server/trust/TrustManagerService$TrustTimeoutAlarmListener;->isQueued()Z
 PLcom/android/server/trust/TrustManagerService$TrustTimeoutAlarmListener;->onAlarm()V
@@ -31726,6 +34585,7 @@
 HSPLcom/android/server/trust/TrustManagerService;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/trust/TrustManagerService;->access$100(Lcom/android/server/trust/TrustManagerService;)I
 PLcom/android/server/trust/TrustManagerService;->access$1000(Lcom/android/server/trust/TrustManagerService;I)Z
+PLcom/android/server/trust/TrustManagerService;->access$102(Lcom/android/server/trust/TrustManagerService;I)I
 PLcom/android/server/trust/TrustManagerService;->access$1100(Lcom/android/server/trust/TrustManagerService;I)Z
 PLcom/android/server/trust/TrustManagerService;->access$1200(Lcom/android/server/trust/TrustManagerService;)Lcom/android/server/trust/TrustManagerService$StrongAuthTracker;
 PLcom/android/server/trust/TrustManagerService;->access$1300(Lcom/android/server/trust/TrustManagerService;)Landroid/util/ArraySet;
@@ -31774,6 +34634,7 @@
 HSPLcom/android/server/trust/TrustManagerService;->onStart()V
 HSPLcom/android/server/trust/TrustManagerService;->onStartUser(I)V
 PLcom/android/server/trust/TrustManagerService;->onStopUser(I)V
+PLcom/android/server/trust/TrustManagerService;->onSwitchUser(I)V
 PLcom/android/server/trust/TrustManagerService;->onUnlockUser(I)V
 HSPLcom/android/server/trust/TrustManagerService;->refreshAgentList(I)V
 HSPLcom/android/server/trust/TrustManagerService;->refreshDeviceLockedForUser(I)V
@@ -31851,6 +34712,7 @@
 PLcom/android/server/updates/ConversationActionsInstallReceiver;-><init>()V
 PLcom/android/server/updates/ConversationActionsInstallReceiver;->verifyVersion(II)Z
 PLcom/android/server/updates/EmergencyNumberDbInstallReceiver;-><init>()V
+PLcom/android/server/updates/EmergencyNumberDbInstallReceiver;->postInstall(Landroid/content/Context;Landroid/content/Intent;)V
 PLcom/android/server/updates/LangIdInstallReceiver;-><init>()V
 PLcom/android/server/updates/LangIdInstallReceiver;->verifyVersion(II)Z
 PLcom/android/server/updates/SmartSelectionInstallReceiver;-><init>()V
@@ -31889,7 +34751,7 @@
 HSPLcom/android/server/uri/UriGrantsManagerService;->access$100(Lcom/android/server/uri/UriGrantsManagerService;)V
 PLcom/android/server/uri/UriGrantsManagerService;->access$200(Lcom/android/server/uri/UriGrantsManagerService;)V
 HSPLcom/android/server/uri/UriGrantsManagerService;->access$300(Lcom/android/server/uri/UriGrantsManagerService;)Ljava/lang/Object;
-PLcom/android/server/uri/UriGrantsManagerService;->access$400(Lcom/android/server/uri/UriGrantsManagerService;Lcom/android/server/uri/UriPermission;)V
+HPLcom/android/server/uri/UriGrantsManagerService;->access$400(Lcom/android/server/uri/UriGrantsManagerService;Lcom/android/server/uri/UriPermission;)V
 HSPLcom/android/server/uri/UriGrantsManagerService;->access$500(Lcom/android/server/uri/UriGrantsManagerService;Ljava/lang/String;)V
 PLcom/android/server/uri/UriGrantsManagerService;->access$600(Lcom/android/server/uri/UriGrantsManagerService;)Landroid/util/SparseArray;
 HSPLcom/android/server/uri/UriGrantsManagerService;->checkAuthorityGrants(ILandroid/content/pm/ProviderInfo;IZ)Z
@@ -31903,6 +34765,7 @@
 HSPLcom/android/server/uri/UriGrantsManagerService;->findOrCreateUriPermission(Ljava/lang/String;Ljava/lang/String;ILcom/android/server/uri/GrantUri;)Lcom/android/server/uri/UriPermission;
 HPLcom/android/server/uri/UriGrantsManagerService;->findUriPermissionLocked(ILcom/android/server/uri/GrantUri;)Lcom/android/server/uri/UriPermission;
 HPLcom/android/server/uri/UriGrantsManagerService;->getGrantedUriPermissions(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/uri/UriGrantsManagerService;->getPmInternal()Landroid/content/pm/PackageManagerInternal;
 HSPLcom/android/server/uri/UriGrantsManagerService;->getProviderInfo(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
 HPLcom/android/server/uri/UriGrantsManagerService;->getUriPermissions(Ljava/lang/String;ZZ)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/uri/UriGrantsManagerService;->grantUriPermission(ILjava/lang/String;Lcom/android/server/uri/GrantUri;ILcom/android/server/uri/UriPermissionOwner;I)V
@@ -31921,7 +34784,7 @@
 PLcom/android/server/uri/UriGrantsManagerService;->schedulePersistUriGrants()V
 HSPLcom/android/server/uri/UriGrantsManagerService;->start()V
 HPLcom/android/server/uri/UriGrantsManagerService;->takePersistableUriPermission(Landroid/net/Uri;ILjava/lang/String;I)V
-PLcom/android/server/uri/UriGrantsManagerService;->writeGrantedUriPermissions()V
+HPLcom/android/server/uri/UriGrantsManagerService;->writeGrantedUriPermissions()V
 PLcom/android/server/uri/UriPermission$Snapshot;-><init>(Lcom/android/server/uri/UriPermission;)V
 PLcom/android/server/uri/UriPermission$Snapshot;-><init>(Lcom/android/server/uri/UriPermission;Lcom/android/server/uri/UriPermission$1;)V
 HSPLcom/android/server/uri/UriPermission;-><init>(Ljava/lang/String;Ljava/lang/String;ILcom/android/server/uri/GrantUri;)V
@@ -31955,6 +34818,10 @@
 HPLcom/android/server/usage/-$$Lambda$StorageStatsService$2sUmj2KWW5zDR1eh9U7bRfiEbbQ;-><init>(Landroid/content/pm/PackageStats;Ljava/lang/String;ILjava/lang/String;)V
 HPLcom/android/server/usage/-$$Lambda$StorageStatsService$bqtERyu3o5aAlc4KluAfnmSEFLI;-><init>(Landroid/content/pm/PackageStats;ILjava/lang/String;)V
 HPLcom/android/server/usage/-$$Lambda$StorageStatsService$iSsicGWO2pdH7m9nkPc_jeZZgzE;-><init>(Landroid/content/pm/PackageStats;ILjava/lang/String;)V
+HPLcom/android/server/usage/-$$Lambda$StorageStatsService$tgQ1n6Nzx2HUgCixFqiqtHCcsAo;-><init>(Landroid/content/pm/PackageStats;IZ)V
+HPLcom/android/server/usage/-$$Lambda$StorageStatsService$tgQ1n6Nzx2HUgCixFqiqtHCcsAo;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/usage/-$$Lambda$StorageStatsService$wNCqEjBUk3qs1tuYbJHOuDgJ8rk;-><init>(Landroid/content/pm/PackageStats;Ljava/lang/String;IZ)V
+HPLcom/android/server/usage/-$$Lambda$StorageStatsService$wNCqEjBUk3qs1tuYbJHOuDgJ8rk;->accept(Ljava/lang/Object;)V
 PLcom/android/server/usage/-$$Lambda$UsageStatsIdleService$RaU7JQt6BjPuOZETPRSrIe-Hdos;-><init>(Lcom/android/server/usage/UsageStatsIdleService;ILandroid/app/job/JobParameters;)V
 PLcom/android/server/usage/-$$Lambda$UsageStatsIdleService$RaU7JQt6BjPuOZETPRSrIe-Hdos;->run()V
 PLcom/android/server/usage/-$$Lambda$UserUsageStatsService$wWX7s9XZT5O4B7JcG_IB_VcPI9s;-><init>(JJLjava/lang/String;Landroid/util/ArraySet;Z)V
@@ -31978,8 +34845,8 @@
 PLcom/android/server/usage/AppTimeLimitController$ObserverAppData;->removeSessionUsageGroup(I)V
 PLcom/android/server/usage/AppTimeLimitController$SessionUsageGroup;-><init>(Lcom/android/server/usage/AppTimeLimitController;Lcom/android/server/usage/AppTimeLimitController$UserData;Lcom/android/server/usage/AppTimeLimitController$ObserverAppData;I[Ljava/lang/String;JLandroid/app/PendingIntent;JLandroid/app/PendingIntent;)V
 HPLcom/android/server/usage/AppTimeLimitController$SessionUsageGroup;->dump(Ljava/io/PrintWriter;)V
-PLcom/android/server/usage/AppTimeLimitController$SessionUsageGroup;->noteUsageStart(JJ)V
-PLcom/android/server/usage/AppTimeLimitController$SessionUsageGroup;->noteUsageStop(J)V
+HPLcom/android/server/usage/AppTimeLimitController$SessionUsageGroup;->noteUsageStart(JJ)V
+HPLcom/android/server/usage/AppTimeLimitController$SessionUsageGroup;->noteUsageStop(J)V
 PLcom/android/server/usage/AppTimeLimitController$SessionUsageGroup;->onSessionEnd()V
 PLcom/android/server/usage/AppTimeLimitController$SessionUsageGroup;->remove()V
 PLcom/android/server/usage/AppTimeLimitController$UsageGroup;-><init>(Lcom/android/server/usage/AppTimeLimitController;Lcom/android/server/usage/AppTimeLimitController$UserData;Lcom/android/server/usage/AppTimeLimitController$ObserverAppData;I[Ljava/lang/String;JLandroid/app/PendingIntent;)V
@@ -32050,10 +34917,10 @@
 HPLcom/android/server/usage/IntervalStats;->update(Ljava/lang/String;Ljava/lang/String;JII)V
 PLcom/android/server/usage/IntervalStats;->updateChooserCounts(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/usage/IntervalStats;->updateConfigurationStats(Landroid/content/res/Configuration;J)V
-PLcom/android/server/usage/IntervalStats;->updateKeyguardHidden(J)V
-PLcom/android/server/usage/IntervalStats;->updateKeyguardShown(J)V
-PLcom/android/server/usage/IntervalStats;->updateScreenInteractive(J)V
-PLcom/android/server/usage/IntervalStats;->updateScreenNonInteractive(J)V
+HPLcom/android/server/usage/IntervalStats;->updateKeyguardHidden(J)V
+HPLcom/android/server/usage/IntervalStats;->updateKeyguardShown(J)V
+HPLcom/android/server/usage/IntervalStats;->updateScreenInteractive(J)V
+HPLcom/android/server/usage/IntervalStats;->updateScreenNonInteractive(J)V
 PLcom/android/server/usage/PackagesTokenData;-><init>()V
 HPLcom/android/server/usage/PackagesTokenData;->getPackageString(I)Ljava/lang/String;
 HPLcom/android/server/usage/PackagesTokenData;->getPackageTokenOrAdd(Ljava/lang/String;J)I
@@ -32071,6 +34938,7 @@
 HSPLcom/android/server/usage/StorageStatsService$Lifecycle;->onStart()V
 HSPLcom/android/server/usage/StorageStatsService$LocalService;-><init>(Lcom/android/server/usage/StorageStatsService;)V
 HSPLcom/android/server/usage/StorageStatsService$LocalService;-><init>(Lcom/android/server/usage/StorageStatsService;Lcom/android/server/usage/StorageStatsService$1;)V
+PLcom/android/server/usage/StorageStatsService$LocalService;->registerStorageStatsAugmenter(Lcom/android/server/usage/StorageStatsManagerInternal$StorageStatsAugmenter;Ljava/lang/String;)V
 HSPLcom/android/server/usage/StorageStatsService;-><clinit>()V
 HSPLcom/android/server/usage/StorageStatsService;-><init>(Landroid/content/Context;)V
 PLcom/android/server/usage/StorageStatsService;->access$000(Lcom/android/server/usage/StorageStatsService;)V
@@ -32080,6 +34948,8 @@
 HSPLcom/android/server/usage/StorageStatsService;->access$300(Lcom/android/server/usage/StorageStatsService;)Landroid/util/ArrayMap;
 HSPLcom/android/server/usage/StorageStatsService;->access$300(Lcom/android/server/usage/StorageStatsService;)Lcom/android/server/pm/Installer;
 HSPLcom/android/server/usage/StorageStatsService;->access$400(Lcom/android/server/usage/StorageStatsService;)Landroid/util/ArrayMap;
+PLcom/android/server/usage/StorageStatsService;->access$500(Lcom/android/server/usage/StorageStatsService;)Ljava/util/concurrent/CopyOnWriteArrayList;
+HPLcom/android/server/usage/StorageStatsService;->checkStatsPermission(ILjava/lang/String;Z)Ljava/lang/String;
 HPLcom/android/server/usage/StorageStatsService;->enforcePermission(ILjava/lang/String;)V
 HPLcom/android/server/usage/StorageStatsService;->enforceStatsPermission(ILjava/lang/String;)V
 HPLcom/android/server/usage/StorageStatsService;->forEachStorageStatsAugmenter(Ljava/util/function/Consumer;Ljava/lang/String;)V
@@ -32092,6 +34962,8 @@
 HSPLcom/android/server/usage/StorageStatsService;->invalidateMounts()V
 HSPLcom/android/server/usage/StorageStatsService;->isCacheQuotaCalculationsEnabled(Landroid/content/ContentResolver;)Z
 HPLcom/android/server/usage/StorageStatsService;->isQuotaSupported(Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/usage/StorageStatsService;->lambda$queryStatsForPackage$0(Landroid/content/pm/PackageStats;Ljava/lang/String;IZLcom/android/server/usage/StorageStatsManagerInternal$StorageStatsAugmenter;)V
+HPLcom/android/server/usage/StorageStatsService;->lambda$queryStatsForUid$1(Landroid/content/pm/PackageStats;IZLcom/android/server/usage/StorageStatsManagerInternal$StorageStatsAugmenter;)V
 PLcom/android/server/usage/StorageStatsService;->notifySignificantDelta()V
 PLcom/android/server/usage/StorageStatsService;->queryExternalStatsForUser(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/ExternalStorageStats;
 HPLcom/android/server/usage/StorageStatsService;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
@@ -32120,7 +34992,7 @@
 PLcom/android/server/usage/UsageStatsDatabase;->getBackupPayload(Ljava/lang/String;)[B
 HPLcom/android/server/usage/UsageStatsDatabase;->getBackupPayload(Ljava/lang/String;I)[B
 PLcom/android/server/usage/UsageStatsDatabase;->getBuildFingerprint()Ljava/lang/String;
-PLcom/android/server/usage/UsageStatsDatabase;->getLatestUsageStats(I)Lcom/android/server/usage/IntervalStats;
+HPLcom/android/server/usage/UsageStatsDatabase;->getLatestUsageStats(I)Lcom/android/server/usage/IntervalStats;
 HPLcom/android/server/usage/UsageStatsDatabase;->indexFilesLocked()V
 PLcom/android/server/usage/UsageStatsDatabase;->init(J)V
 PLcom/android/server/usage/UsageStatsDatabase;->isNewUpdate()Z
@@ -32228,13 +35100,14 @@
 HPLcom/android/server/usage/UsageStatsService$LocalService;->getAppUsageLimit(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/UsageStatsManagerInternal$AppUsageLimitData;
 PLcom/android/server/usage/UsageStatsService$LocalService;->getBackupPayload(ILjava/lang/String;)[B
 HSPLcom/android/server/usage/UsageStatsService$LocalService;->getIdleUidsForUser(I)[I
-PLcom/android/server/usage/UsageStatsService$LocalService;->getTimeSinceLastJobRun(Ljava/lang/String;I)J
+HPLcom/android/server/usage/UsageStatsService$LocalService;->getTimeSinceLastJobRun(Ljava/lang/String;I)J
 HSPLcom/android/server/usage/UsageStatsService$LocalService;->isAppIdle(Ljava/lang/String;II)Z
 PLcom/android/server/usage/UsageStatsService$LocalService;->onActiveAdminAdded(Ljava/lang/String;I)V
 HSPLcom/android/server/usage/UsageStatsService$LocalService;->onAdminDataAvailable()V
 PLcom/android/server/usage/UsageStatsService$LocalService;->prepareForPossibleShutdown()V
 PLcom/android/server/usage/UsageStatsService$LocalService;->prepareShutdown()V
 PLcom/android/server/usage/UsageStatsService$LocalService;->pruneUninstalledPackagesData(I)Z
+PLcom/android/server/usage/UsageStatsService$LocalService;->queryEventsForUser(IJJI)Landroid/app/usage/UsageEvents;
 HPLcom/android/server/usage/UsageStatsService$LocalService;->queryEventsForUser(IJJZ)Landroid/app/usage/UsageEvents;
 HPLcom/android/server/usage/UsageStatsService$LocalService;->queryEventsForUser(IJJZZ)Landroid/app/usage/UsageEvents;
 PLcom/android/server/usage/UsageStatsService$LocalService;->queryUsageStatsForUser(IIJJZ)Ljava/util/List;
@@ -32263,9 +35136,12 @@
 HPLcom/android/server/usage/UsageStatsService;->access$1300(Lcom/android/server/usage/UsageStatsService;II)Z
 HPLcom/android/server/usage/UsageStatsService;->access$1400(Lcom/android/server/usage/UsageStatsService;ILjava/lang/String;II)Z
 PLcom/android/server/usage/UsageStatsService;->access$1500(Lcom/android/server/usage/UsageStatsService;)Ljava/lang/Object;
+PLcom/android/server/usage/UsageStatsService;->access$1500(Lcom/android/server/usage/UsageStatsService;II)Z
 PLcom/android/server/usage/UsageStatsService;->access$1600(Lcom/android/server/usage/UsageStatsService;)Ljava/lang/Object;
+PLcom/android/server/usage/UsageStatsService;->access$1600(Lcom/android/server/usage/UsageStatsService;II)Z
 PLcom/android/server/usage/UsageStatsService;->access$1700(Lcom/android/server/usage/UsageStatsService;)Landroid/util/SparseBooleanArray;
 PLcom/android/server/usage/UsageStatsService;->access$1800(Lcom/android/server/usage/UsageStatsService;)Landroid/util/SparseBooleanArray;
+PLcom/android/server/usage/UsageStatsService;->access$1800(Lcom/android/server/usage/UsageStatsService;)Ljava/lang/Object;
 PLcom/android/server/usage/UsageStatsService;->access$1800(Lcom/android/server/usage/UsageStatsService;I)Lcom/android/server/usage/UserUsageStatsService;
 PLcom/android/server/usage/UsageStatsService;->access$1900(Lcom/android/server/usage/UsageStatsService;I)Lcom/android/server/usage/UserUsageStatsService;
 PLcom/android/server/usage/UsageStatsService;->access$1900(Lcom/android/server/usage/UsageStatsService;I)Z
@@ -32298,6 +35174,7 @@
 HPLcom/android/server/usage/UsageStatsService;->persistPendingEventsLocked(I)V
 PLcom/android/server/usage/UsageStatsService;->prepareForPossibleShutdown()V
 PLcom/android/server/usage/UsageStatsService;->pruneUninstalledPackagesData(I)Z
+HPLcom/android/server/usage/UsageStatsService;->queryEvents(IJJI)Landroid/app/usage/UsageEvents;
 HPLcom/android/server/usage/UsageStatsService;->queryEvents(IJJZ)Landroid/app/usage/UsageEvents;
 HPLcom/android/server/usage/UsageStatsService;->queryEvents(IJJZZ)Landroid/app/usage/UsageEvents;
 HPLcom/android/server/usage/UsageStatsService;->queryEventsForPackage(IJJLjava/lang/String;Z)Landroid/app/usage/UsageEvents;
@@ -32309,8 +35186,10 @@
 HPLcom/android/server/usage/UsageStatsService;->reportEvent(Landroid/app/usage/UsageEvents$Event;I)V
 HSPLcom/android/server/usage/UsageStatsService;->reportEventOrAddToQueue(ILandroid/app/usage/UsageEvents$Event;)V
 HPLcom/android/server/usage/UsageStatsService;->reportEventToAllUserId(Landroid/app/usage/UsageEvents$Event;)V
+PLcom/android/server/usage/UsageStatsService;->shouldHideLocusIdEvents(II)Z
 HPLcom/android/server/usage/UsageStatsService;->shouldHideShortcutInvocationEvents(ILjava/lang/String;II)Z
 HPLcom/android/server/usage/UsageStatsService;->shouldObfuscateInstantAppsForCaller(II)Z
+PLcom/android/server/usage/UsageStatsService;->shouldObfuscateNotificationEvents(II)Z
 PLcom/android/server/usage/UsageStatsService;->shutdown()V
 PLcom/android/server/usage/UsageStatsService;->unregisterAppUsageLimitObserver(III)V
 PLcom/android/server/usage/UsageStatsService;->unregisterAppUsageObserver(III)V
@@ -32319,12 +35198,14 @@
 HPLcom/android/server/usage/UserUsageStatsService$1;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)V
 PLcom/android/server/usage/UserUsageStatsService$2;-><init>()V
 PLcom/android/server/usage/UserUsageStatsService$3;-><init>()V
+PLcom/android/server/usage/UserUsageStatsService$4;-><init>(Lcom/android/server/usage/UserUsageStatsService;JJILandroid/util/ArraySet;)V
 HPLcom/android/server/usage/UserUsageStatsService$4;-><init>(Lcom/android/server/usage/UserUsageStatsService;JJZLandroid/util/ArraySet;)V
 HPLcom/android/server/usage/UserUsageStatsService$4;-><init>(Lcom/android/server/usage/UserUsageStatsService;JJZZLandroid/util/ArraySet;)V
 HPLcom/android/server/usage/UserUsageStatsService$4;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)V
 HPLcom/android/server/usage/UserUsageStatsService$5;-><init>(Lcom/android/server/usage/UserUsageStatsService;Lcom/android/internal/util/IndentingPrintWriter;)V
 PLcom/android/server/usage/UserUsageStatsService$5;->checkin(Lcom/android/server/usage/IntervalStats;)Z
 PLcom/android/server/usage/UserUsageStatsService$6;-><init>(Lcom/android/server/usage/UserUsageStatsService;JJLjava/lang/String;)V
+PLcom/android/server/usage/UserUsageStatsService$6;-><init>(Lcom/android/server/usage/UserUsageStatsService;JJLjava/util/List;)V
 HPLcom/android/server/usage/UserUsageStatsService$6;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)V
 PLcom/android/server/usage/UserUsageStatsService;-><clinit>()V
 PLcom/android/server/usage/UserUsageStatsService;-><init>(Landroid/content/Context;ILjava/io/File;Lcom/android/server/usage/UserUsageStatsService$StatsUpdatedListener;)V
@@ -32332,6 +35213,7 @@
 PLcom/android/server/usage/UserUsageStatsService;->checkin(Lcom/android/internal/util/IndentingPrintWriter;)V
 HPLcom/android/server/usage/UserUsageStatsService;->convertToSystemTimeLocked(Landroid/app/usage/UsageEvents$Event;)V
 PLcom/android/server/usage/UserUsageStatsService;->dump(Lcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/usage/UserUsageStatsService;->dump(Lcom/android/internal/util/IndentingPrintWriter;Ljava/util/List;Z)V
 HPLcom/android/server/usage/UserUsageStatsService;->eventToString(I)Ljava/lang/String;
 HPLcom/android/server/usage/UserUsageStatsService;->formatDateTime(JZ)Ljava/lang/String;
 HPLcom/android/server/usage/UserUsageStatsService;->formatElapsedTime(JZ)Ljava/lang/String;
@@ -32348,8 +35230,11 @@
 HPLcom/android/server/usage/UserUsageStatsService;->printEvent(Lcom/android/internal/util/IndentingPrintWriter;Landroid/app/usage/UsageEvents$Event;Z)V
 HPLcom/android/server/usage/UserUsageStatsService;->printEventAggregation(Lcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;Lcom/android/server/usage/IntervalStats$EventTracker;Z)V
 HPLcom/android/server/usage/UserUsageStatsService;->printIntervalStats(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/usage/IntervalStats;ZZLjava/lang/String;)V
+HPLcom/android/server/usage/UserUsageStatsService;->printIntervalStats(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/usage/IntervalStats;ZZLjava/util/List;)V
 HPLcom/android/server/usage/UserUsageStatsService;->printLast24HrEvents(Lcom/android/internal/util/IndentingPrintWriter;ZLjava/lang/String;)V
+HPLcom/android/server/usage/UserUsageStatsService;->printLast24HrEvents(Lcom/android/internal/util/IndentingPrintWriter;ZLjava/util/List;)V
 PLcom/android/server/usage/UserUsageStatsService;->pruneUninstalledPackagesData()Z
+HPLcom/android/server/usage/UserUsageStatsService;->queryEvents(JJI)Landroid/app/usage/UsageEvents;
 HPLcom/android/server/usage/UserUsageStatsService;->queryEvents(JJZ)Landroid/app/usage/UsageEvents;
 HPLcom/android/server/usage/UserUsageStatsService;->queryEvents(JJZZ)Landroid/app/usage/UsageEvents;
 HPLcom/android/server/usage/UserUsageStatsService;->queryEventsForPackage(JJLjava/lang/String;Z)Landroid/app/usage/UsageEvents;
@@ -32393,7 +35278,7 @@
 PLcom/android/server/usb/UsbAlsaDevice;->stop()V
 PLcom/android/server/usb/UsbAlsaDevice;->stopJackDetect()V
 PLcom/android/server/usb/UsbAlsaDevice;->toString()Ljava/lang/String;
-PLcom/android/server/usb/UsbAlsaDevice;->updateWiredDeviceConnectionState(Z)V
+HPLcom/android/server/usb/UsbAlsaDevice;->updateWiredDeviceConnectionState(Z)V
 PLcom/android/server/usb/UsbAlsaJackDetector;-><init>(Lcom/android/server/usb/UsbAlsaDevice;)V
 PLcom/android/server/usb/UsbAlsaJackDetector;->isInputJackConnected()Z
 PLcom/android/server/usb/UsbAlsaJackDetector;->isOutputJackConnected()Z
@@ -32435,6 +35320,7 @@
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getCurrentAccessory()Landroid/hardware/usb/UsbAccessory;
 PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getEnabledFunctions()J
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getPinnedSharedPrefs(Landroid/content/Context;)Landroid/content/SharedPreferences;
+PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getScreenUnlockedFunctions()J
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->isAdbEnabled()Z
@@ -32487,6 +35373,7 @@
 PLcom/android/server/usb/UsbDeviceManager;->getCurrentAccessory()Landroid/hardware/usb/UsbAccessory;
 PLcom/android/server/usb/UsbDeviceManager;->getCurrentFunctions()J
 PLcom/android/server/usb/UsbDeviceManager;->getCurrentSettings()Lcom/android/server/usb/UsbProfileGroupSettingsManager;
+PLcom/android/server/usb/UsbDeviceManager;->getScreenUnlockedFunctions()J
 HSPLcom/android/server/usb/UsbDeviceManager;->initRndisAddress()V
 HPLcom/android/server/usb/UsbDeviceManager;->onAwakeStateChanged(Z)V
 HSPLcom/android/server/usb/UsbDeviceManager;->onKeyguardStateChanged(Z)V
@@ -32494,6 +35381,7 @@
 PLcom/android/server/usb/UsbDeviceManager;->openAccessory(Landroid/hardware/usb/UsbAccessory;Lcom/android/server/usb/UsbUserPermissionManager;I)Landroid/os/ParcelFileDescriptor;
 HSPLcom/android/server/usb/UsbDeviceManager;->setCurrentFunctions(J)V
 HSPLcom/android/server/usb/UsbDeviceManager;->setCurrentUser(ILcom/android/server/usb/UsbProfileGroupSettingsManager;)V
+PLcom/android/server/usb/UsbDeviceManager;->setScreenUnlockedFunctions(J)V
 HSPLcom/android/server/usb/UsbDeviceManager;->startAccessoryMode()V
 HSPLcom/android/server/usb/UsbDeviceManager;->systemReady()V
 HSPLcom/android/server/usb/UsbDeviceManager;->updateUserRestrictions()V
@@ -32521,7 +35409,7 @@
 HSPLcom/android/server/usb/UsbHostManager;->setUsbDeviceConnectionHandler(Landroid/content/ComponentName;)V
 HSPLcom/android/server/usb/UsbHostManager;->systemReady()V
 PLcom/android/server/usb/UsbHostManager;->usbDeviceAdded(Ljava/lang/String;II[B)Z
-PLcom/android/server/usb/UsbHostManager;->usbDeviceRemoved(Ljava/lang/String;)V
+HPLcom/android/server/usb/UsbHostManager;->usbDeviceRemoved(Ljava/lang/String;)V
 HSPLcom/android/server/usb/UsbPermissionManager;-><clinit>()V
 HSPLcom/android/server/usb/UsbPermissionManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbService;)V
 PLcom/android/server/usb/UsbPermissionManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
@@ -32559,7 +35447,7 @@
 HSPLcom/android/server/usb/UsbPortManager;->convertContaminantDetectionStatusToProto(I)I
 PLcom/android/server/usb/UsbPortManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
 PLcom/android/server/usb/UsbPortManager;->enableContaminantDetection(Ljava/lang/String;ZLcom/android/internal/util/IndentingPrintWriter;)V
-PLcom/android/server/usb/UsbPortManager;->enableContaminantDetectionIfNeeded(Lcom/android/server/usb/UsbPortManager$PortInfo;Lcom/android/internal/util/IndentingPrintWriter;)V
+HPLcom/android/server/usb/UsbPortManager;->enableContaminantDetectionIfNeeded(Lcom/android/server/usb/UsbPortManager$PortInfo;Lcom/android/internal/util/IndentingPrintWriter;)V
 HSPLcom/android/server/usb/UsbPortManager;->getPortStatus(Ljava/lang/String;)Landroid/hardware/usb/UsbPortStatus;
 HSPLcom/android/server/usb/UsbPortManager;->getPorts()[Landroid/hardware/usb/UsbPort;
 HSPLcom/android/server/usb/UsbPortManager;->handlePortAddedLocked(Lcom/android/server/usb/UsbPortManager$PortInfo;Lcom/android/internal/util/IndentingPrintWriter;)V
@@ -32605,7 +35493,7 @@
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;->hasDefaults(Ljava/lang/String;Landroid/os/UserHandle;)Z
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;->isForwardMatch(Landroid/content/pm/ResolveInfo;)Z
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;->lambda$scheduleWriteSettingsLocked$1$UsbProfileGroupSettingsManager()V
-PLcom/android/server/usb/UsbProfileGroupSettingsManager;->packageMatchesLocked(Landroid/content/pm/ResolveInfo;Landroid/hardware/usb/UsbDevice;Landroid/hardware/usb/UsbAccessory;)Z
+HPLcom/android/server/usb/UsbProfileGroupSettingsManager;->packageMatchesLocked(Landroid/content/pm/ResolveInfo;Landroid/hardware/usb/UsbDevice;Landroid/hardware/usb/UsbAccessory;)Z
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;->preferHighPriority(Ljava/util/ArrayList;)Ljava/util/ArrayList;
 PLcom/android/server/usb/UsbProfileGroupSettingsManager;->queryIntentActivitiesForAllProfiles(Landroid/content/Intent;)Ljava/util/ArrayList;
 HSPLcom/android/server/usb/UsbProfileGroupSettingsManager;->readPreference(Lorg/xmlpull/v1/XmlPullParser;)V
@@ -32631,9 +35519,13 @@
 HSPLcom/android/server/usb/UsbService$Lifecycle;->onStart()V
 PLcom/android/server/usb/UsbService$Lifecycle;->onStopUser(I)V
 PLcom/android/server/usb/UsbService$Lifecycle;->onStopUser(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/usb/UsbService$Lifecycle;->onSwitchUser(I)V
 PLcom/android/server/usb/UsbService$Lifecycle;->onUnlockUser(I)V
 PLcom/android/server/usb/UsbService$Lifecycle;->onUnlockUser(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/usb/UsbService$Lifecycle;->onUserStopping(Lcom/android/server/SystemService$TargetUser;)V
+PLcom/android/server/usb/UsbService$Lifecycle;->onUserUnlocking(Lcom/android/server/SystemService$TargetUser;)V
 HSPLcom/android/server/usb/UsbService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/usb/UsbService;->access$000(Lcom/android/server/usb/UsbService;I)V
 PLcom/android/server/usb/UsbService;->access$000(Lcom/android/server/usb/UsbService;Landroid/os/UserHandle;)V
 PLcom/android/server/usb/UsbService;->access$100(Lcom/android/server/usb/UsbService;Landroid/os/UserHandle;)V
 HSPLcom/android/server/usb/UsbService;->access$200(Lcom/android/server/usb/UsbService;)Lcom/android/server/usb/UsbDeviceManager;
@@ -32647,6 +35539,7 @@
 PLcom/android/server/usb/UsbService;->getPermissionsForUser(I)Lcom/android/server/usb/UsbUserPermissionManager;
 HSPLcom/android/server/usb/UsbService;->getPortStatus(Ljava/lang/String;)Landroid/hardware/usb/UsbPortStatus;
 HSPLcom/android/server/usb/UsbService;->getPorts()Ljava/util/List;
+PLcom/android/server/usb/UsbService;->getScreenUnlockedFunctions()J
 PLcom/android/server/usb/UsbService;->getSettingsForUser(I)Lcom/android/server/usb/UsbUserSettingsManager;
 PLcom/android/server/usb/UsbService;->grantDevicePermission(Landroid/hardware/usb/UsbDevice;I)V
 PLcom/android/server/usb/UsbService;->hasAccessoryPermission(Landroid/hardware/usb/UsbAccessory;)Z
@@ -32661,6 +35554,7 @@
 PLcom/android/server/usb/UsbService;->setCurrentFunctions(J)V
 PLcom/android/server/usb/UsbService;->setDevicePackage(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;I)V
 PLcom/android/server/usb/UsbService;->setPortRoles(Ljava/lang/String;II)V
+PLcom/android/server/usb/UsbService;->setScreenUnlockedFunctions(J)V
 HSPLcom/android/server/usb/UsbService;->systemReady()V
 HSPLcom/android/server/usb/UsbSettingsManager;-><clinit>()V
 HSPLcom/android/server/usb/UsbSettingsManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbService;)V
@@ -32687,7 +35581,7 @@
 PLcom/android/server/usb/UsbUserPermissionManager;->requestPermissionDialog(Landroid/hardware/usb/UsbDevice;Landroid/hardware/usb/UsbAccessory;ZLjava/lang/String;Landroid/app/PendingIntent;I)V
 PLcom/android/server/usb/UsbUserSettingsManager;-><clinit>()V
 PLcom/android/server/usb/UsbUserSettingsManager;-><init>(Landroid/content/Context;Landroid/os/UserHandle;)V
-PLcom/android/server/usb/UsbUserSettingsManager;->canBeDefault(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;)Z
+HPLcom/android/server/usb/UsbUserSettingsManager;->canBeDefault(Landroid/hardware/usb/UsbDevice;Ljava/lang/String;)Z
 HPLcom/android/server/usb/UsbUserSettingsManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
 PLcom/android/server/usb/UsbUserSettingsManager;->getPackageActivities(Ljava/lang/String;)[Landroid/content/pm/ActivityInfo;
 PLcom/android/server/usb/UsbUserSettingsManager;->queryIntentActivities(Landroid/content/Intent;)Ljava/util/List;
@@ -32698,9 +35592,9 @@
 PLcom/android/server/usb/descriptors/ByteStream;->getReadCount()I
 HPLcom/android/server/usb/descriptors/ByteStream;->getUnsignedByte()I
 PLcom/android/server/usb/descriptors/ByteStream;->resetReadCount()V
-PLcom/android/server/usb/descriptors/ByteStream;->unpackUsbInt()I
-PLcom/android/server/usb/descriptors/ByteStream;->unpackUsbShort()I
-PLcom/android/server/usb/descriptors/ByteStream;->unpackUsbTriple()I
+HPLcom/android/server/usb/descriptors/ByteStream;->unpackUsbInt()I
+HPLcom/android/server/usb/descriptors/ByteStream;->unpackUsbShort()I
+HPLcom/android/server/usb/descriptors/ByteStream;->unpackUsbTriple()I
 PLcom/android/server/usb/descriptors/Usb10ACHeader;-><init>(IBBII)V
 PLcom/android/server/usb/descriptors/Usb10ACHeader;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
 PLcom/android/server/usb/descriptors/Usb10ACInputTerminal;-><init>(IBBI)V
@@ -32724,7 +35618,7 @@
 PLcom/android/server/usb/descriptors/Usb20ASFormatI;-><init>(IBBBI)V
 PLcom/android/server/usb/descriptors/Usb20ASFormatI;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
 PLcom/android/server/usb/descriptors/Usb20ASGeneral;-><init>(IBBI)V
-PLcom/android/server/usb/descriptors/Usb20ASGeneral;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
+HPLcom/android/server/usb/descriptors/Usb20ASGeneral;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
 PLcom/android/server/usb/descriptors/UsbACAudioStreamEndpoint;-><init>(IBI)V
 PLcom/android/server/usb/descriptors/UsbACAudioStreamEndpoint;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
 PLcom/android/server/usb/descriptors/UsbACEndpoint;-><init>(IBI)V
@@ -32732,10 +35626,10 @@
 PLcom/android/server/usb/descriptors/UsbACEndpoint;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
 PLcom/android/server/usb/descriptors/UsbACFeatureUnit;-><init>(IBBI)V
 PLcom/android/server/usb/descriptors/UsbACHeaderInterface;-><init>(IBBII)V
-PLcom/android/server/usb/descriptors/UsbACInterface;-><init>(IBBI)V
-PLcom/android/server/usb/descriptors/UsbACInterface;->allocAudioControlDescriptor(Lcom/android/server/usb/descriptors/UsbDescriptorParser;Lcom/android/server/usb/descriptors/ByteStream;IBBI)Lcom/android/server/usb/descriptors/UsbDescriptor;
+HPLcom/android/server/usb/descriptors/UsbACInterface;-><init>(IBBI)V
+HPLcom/android/server/usb/descriptors/UsbACInterface;->allocAudioControlDescriptor(Lcom/android/server/usb/descriptors/UsbDescriptorParser;Lcom/android/server/usb/descriptors/ByteStream;IBBI)Lcom/android/server/usb/descriptors/UsbDescriptor;
 PLcom/android/server/usb/descriptors/UsbACInterface;->allocAudioStreamingDescriptor(Lcom/android/server/usb/descriptors/UsbDescriptorParser;Lcom/android/server/usb/descriptors/ByteStream;IBBI)Lcom/android/server/usb/descriptors/UsbDescriptor;
-PLcom/android/server/usb/descriptors/UsbACInterface;->allocDescriptor(Lcom/android/server/usb/descriptors/UsbDescriptorParser;Lcom/android/server/usb/descriptors/ByteStream;IB)Lcom/android/server/usb/descriptors/UsbDescriptor;
+HPLcom/android/server/usb/descriptors/UsbACInterface;->allocDescriptor(Lcom/android/server/usb/descriptors/UsbDescriptorParser;Lcom/android/server/usb/descriptors/ByteStream;IB)Lcom/android/server/usb/descriptors/UsbDescriptor;
 PLcom/android/server/usb/descriptors/UsbACInterface;->getSubclass()I
 PLcom/android/server/usb/descriptors/UsbACInterface;->getSubtype()B
 PLcom/android/server/usb/descriptors/UsbACInterfaceUnparsed;-><init>(IBBI)V
@@ -32748,18 +35642,18 @@
 PLcom/android/server/usb/descriptors/UsbASFormat;-><init>(IBBBI)V
 PLcom/android/server/usb/descriptors/UsbASFormat;->allocDescriptor(Lcom/android/server/usb/descriptors/UsbDescriptorParser;Lcom/android/server/usb/descriptors/ByteStream;IBBI)Lcom/android/server/usb/descriptors/UsbDescriptor;
 PLcom/android/server/usb/descriptors/UsbConfigDescriptor;-><init>(IB)V
-PLcom/android/server/usb/descriptors/UsbConfigDescriptor;->addInterfaceDescriptor(Lcom/android/server/usb/descriptors/UsbInterfaceDescriptor;)V
+HPLcom/android/server/usb/descriptors/UsbConfigDescriptor;->addInterfaceDescriptor(Lcom/android/server/usb/descriptors/UsbInterfaceDescriptor;)V
 PLcom/android/server/usb/descriptors/UsbConfigDescriptor;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
-PLcom/android/server/usb/descriptors/UsbConfigDescriptor;->toAndroid(Lcom/android/server/usb/descriptors/UsbDescriptorParser;)Landroid/hardware/usb/UsbConfiguration;
+HPLcom/android/server/usb/descriptors/UsbConfigDescriptor;->toAndroid(Lcom/android/server/usb/descriptors/UsbDescriptorParser;)Landroid/hardware/usb/UsbConfiguration;
 PLcom/android/server/usb/descriptors/UsbDescriptor;-><clinit>()V
 HPLcom/android/server/usb/descriptors/UsbDescriptor;-><init>(IB)V
 PLcom/android/server/usb/descriptors/UsbDescriptor;->getLength()I
 HPLcom/android/server/usb/descriptors/UsbDescriptor;->getType()B
 PLcom/android/server/usb/descriptors/UsbDescriptor;->logDescriptorName(BI)V
-PLcom/android/server/usb/descriptors/UsbDescriptor;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
-PLcom/android/server/usb/descriptors/UsbDescriptor;->postParse(Lcom/android/server/usb/descriptors/ByteStream;)V
+HPLcom/android/server/usb/descriptors/UsbDescriptor;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
+HPLcom/android/server/usb/descriptors/UsbDescriptor;->postParse(Lcom/android/server/usb/descriptors/ByteStream;)V
 PLcom/android/server/usb/descriptors/UsbDescriptorParser;-><init>(Ljava/lang/String;[B)V
-PLcom/android/server/usb/descriptors/UsbDescriptorParser;->allocDescriptor(Lcom/android/server/usb/descriptors/ByteStream;)Lcom/android/server/usb/descriptors/UsbDescriptor;
+HPLcom/android/server/usb/descriptors/UsbDescriptorParser;->allocDescriptor(Lcom/android/server/usb/descriptors/ByteStream;)Lcom/android/server/usb/descriptors/UsbDescriptor;
 HPLcom/android/server/usb/descriptors/UsbDescriptorParser;->getACInterfaceDescriptors(BI)Ljava/util/ArrayList;
 PLcom/android/server/usb/descriptors/UsbDescriptorParser;->getACInterfaceSpec()I
 PLcom/android/server/usb/descriptors/UsbDescriptorParser;->getCurInterface()Lcom/android/server/usb/descriptors/UsbInterfaceDescriptor;
@@ -32800,18 +35694,18 @@
 PLcom/android/server/usb/descriptors/UsbDeviceDescriptor;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
 PLcom/android/server/usb/descriptors/UsbDeviceDescriptor;->toAndroid(Lcom/android/server/usb/descriptors/UsbDescriptorParser;)Landroid/hardware/usb/UsbDevice$Builder;
 PLcom/android/server/usb/descriptors/UsbEndpointDescriptor;-><init>(IB)V
-PLcom/android/server/usb/descriptors/UsbEndpointDescriptor;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
+HPLcom/android/server/usb/descriptors/UsbEndpointDescriptor;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
 PLcom/android/server/usb/descriptors/UsbEndpointDescriptor;->toAndroid(Lcom/android/server/usb/descriptors/UsbDescriptorParser;)Landroid/hardware/usb/UsbEndpoint;
 PLcom/android/server/usb/descriptors/UsbHIDDescriptor;-><init>(IB)V
 PLcom/android/server/usb/descriptors/UsbHIDDescriptor;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
 PLcom/android/server/usb/descriptors/UsbInterfaceAssoc;-><init>(IB)V
-PLcom/android/server/usb/descriptors/UsbInterfaceAssoc;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
-PLcom/android/server/usb/descriptors/UsbInterfaceDescriptor;-><init>(IB)V
+HPLcom/android/server/usb/descriptors/UsbInterfaceAssoc;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
+HPLcom/android/server/usb/descriptors/UsbInterfaceDescriptor;-><init>(IB)V
 PLcom/android/server/usb/descriptors/UsbInterfaceDescriptor;->addEndpointDescriptor(Lcom/android/server/usb/descriptors/UsbEndpointDescriptor;)V
-PLcom/android/server/usb/descriptors/UsbInterfaceDescriptor;->getUsbClass()I
-PLcom/android/server/usb/descriptors/UsbInterfaceDescriptor;->getUsbSubclass()I
-PLcom/android/server/usb/descriptors/UsbInterfaceDescriptor;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
-PLcom/android/server/usb/descriptors/UsbInterfaceDescriptor;->toAndroid(Lcom/android/server/usb/descriptors/UsbDescriptorParser;)Landroid/hardware/usb/UsbInterface;
+HPLcom/android/server/usb/descriptors/UsbInterfaceDescriptor;->getUsbClass()I
+HPLcom/android/server/usb/descriptors/UsbInterfaceDescriptor;->getUsbSubclass()I
+HPLcom/android/server/usb/descriptors/UsbInterfaceDescriptor;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
+HPLcom/android/server/usb/descriptors/UsbInterfaceDescriptor;->toAndroid(Lcom/android/server/usb/descriptors/UsbDescriptorParser;)Landroid/hardware/usb/UsbInterface;
 PLcom/android/server/usb/descriptors/UsbUnknown;-><init>(IB)V
 PLcom/android/server/utils/AppInstallerUtil;->createIntent(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent;
 PLcom/android/server/utils/AppInstallerUtil;->createIntent(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
@@ -32980,6 +35874,8 @@
 PLcom/android/server/voiceinteraction/-$$Lambda$VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2$_YjGqp96fW1i83gthgQe_rVHY5s;-><clinit>()V
 PLcom/android/server/voiceinteraction/-$$Lambda$VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2$_YjGqp96fW1i83gthgQe_rVHY5s;-><init>()V
 PLcom/android/server/voiceinteraction/-$$Lambda$VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2$_YjGqp96fW1i83gthgQe_rVHY5s;->accept(Ljava/lang/Object;)V
+PLcom/android/server/voiceinteraction/-$$Lambda$VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$u4484DFAd6TvNnx89ISVr_ZLWJY;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;I)V
+PLcom/android/server/voiceinteraction/-$$Lambda$VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$u4484DFAd6TvNnx89ISVr_ZLWJY;->run()V
 HSPLcom/android/server/voiceinteraction/DatabaseHelper;-><init>(Landroid/content/Context;)V
 PLcom/android/server/voiceinteraction/DatabaseHelper;->deleteKeyphraseSoundModel(IILjava/lang/String;)Z
 HPLcom/android/server/voiceinteraction/DatabaseHelper;->dump(Ljava/io/PrintWriter;)V
@@ -33014,6 +35910,7 @@
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->deliverNewSession(Landroid/os/IBinder;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;)Z
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->enforceCallingPermission(Ljava/lang/String;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->enforceIsCurrentVoiceInteractionService()V
 HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->enforceIsCurrentVoiceInteractionService(Landroid/service/voice/IVoiceInteractionService;)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->findAvailInteractor(ILjava/lang/String;)Landroid/service/voice/VoiceInteractionServiceInfo;
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->findAvailRecognizer(Ljava/lang/String;I)Landroid/content/ComponentName;
@@ -33022,8 +35919,10 @@
 HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getCurAssistant(I)Landroid/content/ComponentName;
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getCurInteractor(I)Landroid/content/ComponentName;
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getCurRecognizer(I)Landroid/content/ComponentName;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getDspModuleProperties()Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getDspModuleProperties(Landroid/service/voice/IVoiceInteractionService;)Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getEnrolledKeyphraseMetadata(Landroid/service/voice/IVoiceInteractionService;Ljava/lang/String;Ljava/lang/String;)Landroid/hardware/soundtrigger/KeyphraseMetadata;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getEnrolledKeyphraseMetadata(Ljava/lang/String;Ljava/lang/String;)Landroid/hardware/soundtrigger/KeyphraseMetadata;
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getForceVoiceInteractionServicePackage(Landroid/content/res/Resources;)Ljava/lang/String;
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getKeyphraseSoundModel(ILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
 HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getUserDisabledShowContext()I
@@ -33031,8 +35930,10 @@
 HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->hideSessionFromSession(Landroid/os/IBinder;)Z
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->initForUser(I)V
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->initForUserNoTracing(I)V
+HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->isCallerCurrentVoiceInteractionService()Z
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->isEnrolledForKeyphrase(Landroid/service/voice/IVoiceInteractionService;ILjava/lang/String;)Z
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->isSessionRunning()Z
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->lambda$switchUser$0$VoiceInteractionManagerService$VoiceInteractionManagerServiceStub(I)V
 HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onLockscreenShown()V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onSessionHidden()V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onSessionShown()V
@@ -33045,18 +35946,24 @@
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->setCurrentUserLocked(I)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->setDisabledShowContext(I)V
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->setImplLocked(Lcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;)V
+HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->setUiHints(Landroid/os/Bundle;)V
 HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->setUiHints(Landroid/service/voice/IVoiceInteractionService;Landroid/os/Bundle;)V
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->shouldEnableService(Landroid/content/Context;)Z
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->showSession(Landroid/os/Bundle;I)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->showSession(Landroid/service/voice/IVoiceInteractionService;Landroid/os/Bundle;I)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->showSessionForActiveService(Landroid/os/Bundle;ILcom/android/internal/app/IVoiceInteractionSessionShowCallback;Landroid/os/IBinder;)Z
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->showSessionFromSession(Landroid/os/IBinder;Landroid/os/Bundle;I)Z
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->startAssistantActivity(Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;)I
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->startAssistantActivity(Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;)I
+HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->startRecognition(ILjava/lang/String;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
 HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->startRecognition(Landroid/service/voice/IVoiceInteractionService;ILjava/lang/String;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->startVoiceActivity(Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;)I
+HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->stopRecognition(ILandroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
 HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->stopRecognition(Landroid/service/voice/IVoiceInteractionService;ILandroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchImplementationIfNeeded(Z)V
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchImplementationIfNeededLocked(Z)V
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchImplementationIfNeededNoTracingLocked(Z)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchUser(I)V
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->systemRunning(Z)V
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->unloadAllKeyphraseModels()V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->updateKeyphraseSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;)I
@@ -33068,9 +35975,11 @@
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->access$300(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;Ljava/io/PrintWriter;Ljava/lang/String;)V
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->isSupported(Landroid/content/pm/UserInfo;)Z
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->isSupportedUser(Lcom/android/server/SystemService$TargetUser;)Z
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->isUserSupported(Lcom/android/server/SystemService$TargetUser;)Z
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onBootPhase(I)V
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onStart()V
 HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onStartUser(Landroid/content/pm/UserInfo;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onSwitchUser(Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onUnlockUser(Landroid/content/pm/UserInfo;)V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl$1;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;)V
 HPLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -33093,6 +36002,7 @@
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->showSessionLocked(Landroid/os/Bundle;ILcom/android/internal/app/IVoiceInteractionSessionShowCallback;Landroid/os/IBinder;)Z
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->shutdownLocked()V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->startAssistantActivityLocked(IILandroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;)I
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->startAssistantActivityLocked(Ljava/lang/String;IILandroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;)I
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->startLocked()V
 PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->startVoiceActivityLocked(IILandroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;)I
 PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$1;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V
@@ -33157,7 +36067,7 @@
 HSPLcom/android/server/vr/VrManagerService$4;->getVrModeState()Z
 HSPLcom/android/server/vr/VrManagerService$4;->registerListener(Landroid/service/vr/IVrStateCallbacks;)V
 HSPLcom/android/server/vr/VrManagerService$4;->registerPersistentVrStateListener(Landroid/service/vr/IPersistentVrStateCallbacks;)V
-PLcom/android/server/vr/VrManagerService$4;->unregisterListener(Landroid/service/vr/IVrStateCallbacks;)V
+HPLcom/android/server/vr/VrManagerService$4;->unregisterListener(Landroid/service/vr/IVrStateCallbacks;)V
 HSPLcom/android/server/vr/VrManagerService$5;-><init>(Lcom/android/server/vr/VrManagerService;)V
 PLcom/android/server/vr/VrManagerService$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/vr/VrManagerService$LocalService;-><init>(Lcom/android/server/vr/VrManagerService;)V
@@ -33215,7 +36125,7 @@
 HSPLcom/android/server/vr/VrManagerService;->onStartUser(I)V
 PLcom/android/server/vr/VrManagerService;->onStopUser(I)V
 HPLcom/android/server/vr/VrManagerService;->removeStateCallback(Landroid/service/vr/IVrStateCallbacks;)V
-PLcom/android/server/vr/VrManagerService;->setPersistentModeAndNotifyListenersLocked(Z)V
+HPLcom/android/server/vr/VrManagerService;->setPersistentModeAndNotifyListenersLocked(Z)V
 HSPLcom/android/server/vr/VrManagerService;->setScreenOn(Z)V
 HSPLcom/android/server/vr/VrManagerService;->setSystemState(IZ)V
 PLcom/android/server/vr/VrManagerService;->setUserUnlocked()V
@@ -33243,6 +36153,12 @@
 HSPLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$Y6NUt3jeHQDhNJsATtXxO4MiWJ0;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
 PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$Yk86TTURTI5B9DzxOzMQGDq7aQU;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
 PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$Yk86TTURTI5B9DzxOzMQGDq7aQU;->run()V
+PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$d7gUC6mQx1Xv_Bvlwss1NEF5PwU;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
+PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$pf_7EcVpbLQlQnQ4nGnqzkGUhqg;-><clinit>()V
+PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$pf_7EcVpbLQlQnQ4nGnqzkGUhqg;-><init>()V
+PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$pf_7EcVpbLQlQnQ4nGnqzkGUhqg;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$zdJsFydiwYuUG4WFwlznTvMvYfw;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
+PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$zdJsFydiwYuUG4WFwlznTvMvYfw;->run()V
 PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$ZY5r01reAnoB4Dl2bo4au8KMz3Y;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;I)V
 PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$ZY5r01reAnoB4Dl2bo4au8KMz3Y;->run()V
 HSPLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$la7x4YHA-l88Cd6HFTscnLBbKfI;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;I)V
@@ -33258,12 +36174,13 @@
 HSPLcom/android/server/wallpaper/WallpaperManagerService$1;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$1;->onDisplayAdded(I)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService$1;->onDisplayChanged(I)V
-PLcom/android/server/wallpaper/WallpaperManagerService$1;->onDisplayRemoved(I)V
+HPLcom/android/server/wallpaper/WallpaperManagerService$1;->onDisplayRemoved(I)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService$2;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService$3;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService$4;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$4;->onUserSwitching(ILandroid/os/IRemoteCallback;)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService$DisplayData;-><init>(I)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService$Lifecycle;->onBootPhase(I)V
@@ -33276,8 +36193,8 @@
 HPLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->doPackagesChangedLocked(ZLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)Z
 PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
 HPLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onPackageModified(Ljava/lang/String;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onPackageUpdateFinished(Ljava/lang/String;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onPackageUpdateStarted(Ljava/lang/String;I)V
+HPLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onPackageUpdateFinished(Ljava/lang/String;I)V
+HPLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onPackageUpdateStarted(Ljava/lang/String;I)V
 HPLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onSomePackagesChanged()V
 HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;I)V
 HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;->connectLocked(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
@@ -33300,10 +36217,12 @@
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->lambda$new$0$WallpaperManagerService$WallpaperConnection()V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->lambda$onServiceDisconnected$1(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->lambda$onServiceDisconnected$2$WallpaperManagerService$WallpaperConnection()V
+PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->lambda$onServiceDisconnected$2(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;)V
+PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->lambda$onServiceDisconnected$3$WallpaperManagerService$WallpaperConnection()V
 HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 HPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->processDisconnect(Landroid/content/ServiceConnection;)V
+HPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->processDisconnect(Landroid/content/ServiceConnection;)V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->scheduleTimeoutLocked()V
 PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->tryToRebind()V
 HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;-><init>(ILjava/io/File;Ljava/lang/String;Ljava/lang/String;)V
@@ -33615,12 +36534,16 @@
 PLcom/android/server/wm/-$$Lambda$ActivityStack$5VekJIJoJIh5JMUz2PkEx2YRfmo;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$5VekJIJoJIh5JMUz2PkEx2YRfmo;-><init>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$5VekJIJoJIh5JMUz2PkEx2YRfmo;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$7heVv97BezfdSlHS0oo3lugbypI;-><init>(Lcom/android/server/wm/ActivityStack;IZZZZZ)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$7heVv97BezfdSlHS0oo3lugbypI;->run()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$8rl8kos6nVh_HCoMLzbQatFXfQM;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$8rl8kos6nVh_HCoMLzbQatFXfQM;-><init>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$8rl8kos6nVh_HCoMLzbQatFXfQM;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$9LPSm49BYrWURHV0f_s9bnJYnVk;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$9LPSm49BYrWURHV0f_s9bnJYnVk;-><init>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$9LPSm49BYrWURHV0f_s9bnJYnVk;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$ActivityStack$AQt7n1uNhFzkQj_jKv_v8YLYK-E;-><init>(Lcom/android/server/wm/ActivityStack;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$AQt7n1uNhFzkQj_jKv_v8YLYK-E;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$BmRNRfPY9eDs_h7lUVkDfKuzXrA;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$BmRNRfPY9eDs_h7lUVkDfKuzXrA;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$ActivityStack$BmRNRfPY9eDs_h7lUVkDfKuzXrA;->accept(Ljava/lang/Object;)V
@@ -33639,6 +36562,12 @@
 PLcom/android/server/wm/-$$Lambda$ActivityStack$GDPUuzTvyfp2z6wYxqAF0vhMJK8;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$GDPUuzTvyfp2z6wYxqAF0vhMJK8;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$ActivityStack$GDPUuzTvyfp2z6wYxqAF0vhMJK8;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$Htv3ORQSvt64DuTSOQvqY0tbSys;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$Htv3ORQSvt64DuTSOQvqY0tbSys;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$ActivityStack$Htv3ORQSvt64DuTSOQvqY0tbSys;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$ActivityStack$JmaqDIfLgBPvNqAjeRohpVhqtMw;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$JmaqDIfLgBPvNqAjeRohpVhqtMw;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$JmaqDIfLgBPvNqAjeRohpVhqtMw;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/-$$Lambda$ActivityStack$LjKdRo1XcwS4pEMN4TDnJTwl_Xs;-><init>(Landroid/util/proto/ProtoOutputStream;I)V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$LjKdRo1XcwS4pEMN4TDnJTwl_Xs;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$ActivityStack$MbOt7bGpxw9wmjZ8kOCkYcDCqMQ;-><clinit>()V
@@ -33665,9 +36594,17 @@
 PLcom/android/server/wm/-$$Lambda$ActivityStack$W1rlXKcoaLb8UYskrF3gqMvOkRU;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$W1rlXKcoaLb8UYskrF3gqMvOkRU;-><init>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$W1rlXKcoaLb8UYskrF3gqMvOkRU;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$W67sd8AeAGx32tFIatx3GYvaD8c;-><init>(Lcom/android/server/wm/ActivityStack;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$W67sd8AeAGx32tFIatx3GYvaD8c;->run()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$X9vss1g3clUg_jG-lx3LQEpL5fM;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$X9vss1g3clUg_jG-lx3LQEpL5fM;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$ActivityStack$X9vss1g3clUg_jG-lx3LQEpL5fM;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$YAQEcQUrLqR06xiJJApMvOPIxhg;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$YAQEcQUrLqR06xiJJApMvOPIxhg;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$ActivityStack$YAQEcQUrLqR06xiJJApMvOPIxhg;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$YJeneLrOvq3GBnNOpP3Jg1nkLcE;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$YJeneLrOvq3GBnNOpP3Jg1nkLcE;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$ActivityStack$YJeneLrOvq3GBnNOpP3Jg1nkLcE;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$YtJbVURmslxye4JS4EFo6X31Vv0;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$YtJbVURmslxye4JS4EFo6X31Vv0;-><init>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$YtJbVURmslxye4JS4EFo6X31Vv0;->accept(Ljava/lang/Object;)V
@@ -33687,10 +36624,15 @@
 PLcom/android/server/wm/-$$Lambda$ActivityStack$dhfbladKtxXwwdCS2dFdAfUfBN4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$n-w1s4z47M3zxF8atJ8fDCrw2CA;-><init>(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/BoundsAnimationController;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$n-w1s4z47M3zxF8atJ8fDCrw2CA;->run()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$nvWNVaQ4kkXHI7BamR6vzb4wwJU;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$nvWNVaQ4kkXHI7BamR6vzb4wwJU;-><init>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$vLTEw6nwtjcZ-ZyMktx8L5MR_TA;-><init>(Landroid/content/ComponentName;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$vLTEw6nwtjcZ-ZyMktx8L5MR_TA;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/-$$Lambda$ActivityStack$xrtErRAEnS21CI3h4SKc_WzJFDA;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStack$xrtErRAEnS21CI3h4SKc_WzJFDA;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$ActivityStack$xrtErRAEnS21CI3h4SKc_WzJFDA;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$ActivityStack$yjID4CziB85rCK56sUtW6Ulw2eI;-><init>(ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$yjID4CziB85rCK56sUtW6Ulw2eI;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$0u1RcpeZ6m0BHDGGv8EXroS3KyE;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStack;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$0u1RcpeZ6m0BHDGGv8EXroS3KyE;->run()V
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$28Zuzbi6usdgbDcOi8hrJg6nZO0;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;)V
@@ -33698,6 +36640,9 @@
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$BFgD0ahFSDg4CqQNytqWrPRgFII;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$BFgD0ahFSDg4CqQNytqWrPRgFII;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$BFgD0ahFSDg4CqQNytqWrPRgFII;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$MoveTaskToFullscreenHelper$cwI8_ohyLNH4EeQGc44e1nA8e9M;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$MoveTaskToFullscreenHelper$cwI8_ohyLNH4EeQGc44e1nA8e9M;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$MoveTaskToFullscreenHelper$cwI8_ohyLNH4EeQGc44e1nA8e9M;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$MoveTaskToFullscreenHelper$n0VOwWNM3mud17SnHip7XMiWlWE;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$MoveTaskToFullscreenHelper$n0VOwWNM3mud17SnHip7XMiWlWE;-><init>()V
 PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$MoveTaskToFullscreenHelper$n0VOwWNM3mud17SnHip7XMiWlWE;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
@@ -33799,9 +36744,12 @@
 HPLcom/android/server/wm/-$$Lambda$Dimmer$DimState$wU1YjYaM1_enRLsRLQ25SnC1ECw;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
 HSPLcom/android/server/wm/-$$Lambda$DisplayArea$Tokens$m3rhEbIWQl888W_2uGBIkkXLdlA;-><init>(Lcom/android/server/wm/DisplayArea$Tokens;)V
 HPLcom/android/server/wm/-$$Lambda$DisplayArea$Tokens$m3rhEbIWQl888W_2uGBIkkXLdlA;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/wm/-$$Lambda$DisplayAreaPolicyBuilder$PendingArea$3ZZ3VghJFXPK9kfKPSTf_9BJZCQ;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$DisplayAreaPolicyBuilder$PendingArea$3ZZ3VghJFXPK9kfKPSTf_9BJZCQ;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$DisplayAreaPolicyBuilder$PendingArea$3ZZ3VghJFXPK9kfKPSTf_9BJZCQ;->applyAsInt(Ljava/lang/Object;)I
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$-t02M5j-NY8t_HMWggKym0SrI5k;-><init>([I[ILandroid/graphics/Region;)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$-t02M5j-NY8t_HMWggKym0SrI5k;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$0DHYqZExqV37Iiw4M0GSqxCijHE;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region;[ILandroid/graphics/Region;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$0DHYqZExqV37Iiw4M0GSqxCijHE;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region;[ILandroid/graphics/Region;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$0DHYqZExqV37Iiw4M0GSqxCijHE;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$0gBMuAOGNBEAnJdXST73Nf88i7E;-><init>(Landroid/view/SurfaceControl$Transaction;IIZ)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$0gBMuAOGNBEAnJdXST73Nf88i7E;->accept(Ljava/lang/Object;)V
@@ -33827,6 +36775,7 @@
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$Dg1quneQgytca0GgzUkUIFT67mk;-><init>(Landroid/view/SurfaceControl$Transaction;IIZ)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$Dg1quneQgytca0GgzUkUIFT67mk;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$DisplayContent$DjwkABhnEVEEFPHXKA0QFcHdb2w;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$DjwkABhnEVEEFPHXKA0QFcHdb2w;->binderDied()V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$Ei1gEKrsGOVbEpUtkye4DxvMrow;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$Ei1gEKrsGOVbEpUtkye4DxvMrow;-><init>()V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$Ei1gEKrsGOVbEpUtkye4DxvMrow;->accept(Ljava/lang/Object;)V
@@ -33871,6 +36820,8 @@
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$TaskStackContainers$rQnI0Y8R9ptQ09cGHwbCHDiG2FY;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$Ufn2ZjVS0i1L8aeQ8GZMJNJfmcY;-><init>(Lcom/android/server/policy/WindowManagerPolicy;ZZZ)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$Ufn2ZjVS0i1L8aeQ8GZMJNJfmcY;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$UpcoNmXQIJX_lHKnFIxs4t_Pu24;-><init>(Lcom/android/server/wm/DisplayContent;II)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$UpcoNmXQIJX_lHKnFIxs4t_Pu24;->test(Ljava/lang/Object;)Z
 PLcom/android/server/wm/-$$Lambda$DisplayContent$YcKsbDd5rrFH1MI8pTOCMIM0mNY;-><init>([III)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$YcKsbDd5rrFH1MI8pTOCMIM0mNY;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$_XfE1uZ9VUv6i0SxWUvqu69FNb4;-><init>(Lcom/android/server/wm/DisplayContent;II)V
@@ -33880,6 +36831,8 @@
 HSPLcom/android/server/wm/-$$Lambda$DisplayContent$cDcvMzGxc6XW13Q8FrU5X4DagqE;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$DisplayContent$cDcvMzGxc6XW13Q8FrU5X4DagqE;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$DisplayContent$cDcvMzGxc6XW13Q8FrU5X4DagqE;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$cUrRhr9F2jovlTUmfY9boAvOD98;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$cUrRhr9F2jovlTUmfY9boAvOD98;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$dcSGCWAJtdQoc69foFpUzYoTn2I;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;[I)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$dcSGCWAJtdQoc69foFpUzYoTn2I;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$DisplayContent$eJsj3GR1HdCnOJrZ8_oaLP52jg0;-><init>(Lcom/android/server/wm/DisplayContent;)V
@@ -33894,7 +36847,7 @@
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$k7ctHGhg6DCeupTBZO8cyEJDjLM;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$mRojqgB8byVtZRzyTl2qSRFPgIo;-><init>(I)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$mRojqgB8byVtZRzyTl2qSRFPgIo;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$DisplayContent$n90JauAfTfQVesyRzx0-TX7s1LM;-><init>([III)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$n90JauAfTfQVesyRzx0-TX7s1LM;-><init>([III)V
 HPLcom/android/server/wm/-$$Lambda$DisplayContent$n90JauAfTfQVesyRzx0-TX7s1LM;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$nUI_QDRGnWH0dX0j3xt2TTkrvZw;-><init>(Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/-$$Lambda$DisplayContent$nUI_QDRGnWH0dX0j3xt2TTkrvZw;->accept(Ljava/lang/Object;)V
@@ -33996,14 +36949,31 @@
 PLcom/android/server/wm/-$$Lambda$HtepUMgqPLKO-76U6SMEmchALsM;->startAnimation(Lcom/android/server/wm/SurfaceAnimator;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZLjava/lang/Runnable;)V
 HPLcom/android/server/wm/-$$Lambda$IamNNBZp056cXLajnE4zHKSqj-c;-><init>(Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/-$$Lambda$IamNNBZp056cXLajnE4zHKSqj-c;->get()Ljava/lang/Object;
+HPLcom/android/server/wm/-$$Lambda$ImeInsetsSourceProvider$1aCwANZDoNIzXR0mfeN2iV_k2Yo;-><init>(Lcom/android/server/wm/ImeInsetsSourceProvider;)V
+HPLcom/android/server/wm/-$$Lambda$ImeInsetsSourceProvider$1aCwANZDoNIzXR0mfeN2iV_k2Yo;->run()V
 PLcom/android/server/wm/-$$Lambda$InputMonitor$ew_vdS116C6DH9LxWaTuVXJYZPE;-><init>(Lcom/android/server/wm/InputMonitor;)V
 PLcom/android/server/wm/-$$Lambda$InputMonitor$ew_vdS116C6DH9LxWaTuVXJYZPE;->run()V
+PLcom/android/server/wm/-$$Lambda$InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks$g4iZp8JC81kbnUW8925AyPjUE34;-><init>(Lcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks;I)V
+PLcom/android/server/wm/-$$Lambda$InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks$g4iZp8JC81kbnUW8925AyPjUE34;->run()V
 PLcom/android/server/wm/-$$Lambda$InsetsPolicy$LCR2QgJZxbNat6Qb0Be-JDpy3i0;-><init>(Lcom/android/server/wm/InsetsPolicy;)V
+PLcom/android/server/wm/-$$Lambda$InsetsPolicy$LCR2QgJZxbNat6Qb0Be-JDpy3i0;->run()V
 PLcom/android/server/wm/-$$Lambda$InsetsPolicy$rhM012fDRQZs2vWOctMZZ_uSXvc;-><init>(Lcom/android/server/wm/InsetsPolicy;)V
+PLcom/android/server/wm/-$$Lambda$InsetsPolicy$rhM012fDRQZs2vWOctMZZ_uSXvc;->run()V
+PLcom/android/server/wm/-$$Lambda$InsetsStateController$-1iOXDf-1s3wDHcMIHBKNk6MS3I;-><init>(Lcom/android/server/wm/InsetsStateController;)V
+HPLcom/android/server/wm/-$$Lambda$InsetsStateController$-1iOXDf-1s3wDHcMIHBKNk6MS3I;->run()V
+PLcom/android/server/wm/-$$Lambda$InsetsStateController$0D_z1-eyl79cSyxMEkWr97-EhW0;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$InsetsStateController$0D_z1-eyl79cSyxMEkWr97-EhW0;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$InsetsStateController$0D_z1-eyl79cSyxMEkWr97-EhW0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/wm/-$$Lambda$InsetsStateController$1JYO8QVhePzczEaYmXV0veAcadI;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$InsetsStateController$1JYO8QVhePzczEaYmXV0veAcadI;-><init>()V
+PLcom/android/server/wm/-$$Lambda$InsetsStateController$1JYO8QVhePzczEaYmXV0veAcadI;->notifyInsetsControlChanged()V
+PLcom/android/server/wm/-$$Lambda$InsetsStateController$AD-N-CuASggMPuANxay4AharPVM;-><init>(Lcom/android/server/wm/InsetsStateController;)V
+HPLcom/android/server/wm/-$$Lambda$InsetsStateController$AD-N-CuASggMPuANxay4AharPVM;->run()V
 HPLcom/android/server/wm/-$$Lambda$InsetsStateController$EieWndHHWtNpBtJoK2U-TZ_RU2A;-><init>(Lcom/android/server/wm/InsetsStateController;)V
 PLcom/android/server/wm/-$$Lambda$InsetsStateController$EieWndHHWtNpBtJoK2U-TZ_RU2A;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/-$$Lambda$InsetsStateController$WPnaFmmIW6k6mGJbfuuwznz-bHA;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$InsetsStateController$WPnaFmmIW6k6mGJbfuuwznz-bHA;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$InsetsStateController$WPnaFmmIW6k6mGJbfuuwznz-bHA;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/wm/-$$Lambda$InsetsStateController$c8m0K1Ykk6OHrDEJKWFPmp5WxKU;-><init>(Lcom/android/server/wm/InsetsStateController;)V
 HSPLcom/android/server/wm/-$$Lambda$InsetsStateController$c8m0K1Ykk6OHrDEJKWFPmp5WxKU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
 HSPLcom/android/server/wm/-$$Lambda$InsetsStateController$pXoYGy4X5aPw1QFi0iIWKiTMlDg;-><init>(Lcom/android/server/wm/InsetsStateController;)V
@@ -34065,8 +37035,8 @@
 PLcom/android/server/wm/-$$Lambda$PersisterQueue$HOTPBvinkMOqT3zxV3gRm6Y9Wi4;->process()V
 PLcom/android/server/wm/-$$Lambda$Pl4__K9hqf4p4lme99AnaMrbXe0;-><init>(Landroid/app/ActivityManagerInternal;)V
 PLcom/android/server/wm/-$$Lambda$Pl4__K9hqf4p4lme99AnaMrbXe0;->run()V
-PLcom/android/server/wm/-$$Lambda$PyL9QAXbv8yta3wX2VTGq8fFFo4;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$PyL9QAXbv8yta3wX2VTGq8fFFo4;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$PyL9QAXbv8yta3wX2VTGq8fFFo4;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$PyL9QAXbv8yta3wX2VTGq8fFFo4;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$PyL9QAXbv8yta3wX2VTGq8fFFo4;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
 PLcom/android/server/wm/-$$Lambda$QEISWTQzWbgxRMT5rMnIEzpsKpc;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$QEISWTQzWbgxRMT5rMnIEzpsKpc;-><init>()V
@@ -34131,6 +37101,9 @@
 HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$-XbbIpkF4p2mF3v0qeXeat-_w3E;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$-XbbIpkF4p2mF3v0qeXeat-_w3E;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$-XbbIpkF4p2mF3v0qeXeat-_w3E;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$07q9Iva7qby1Cfkq4KztBB6CisE;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$07q9Iva7qby1Cfkq4KztBB6CisE;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$07q9Iva7qby1Cfkq4KztBB6CisE;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$0ZupnQyxl7yZKgMmf2zwvykG50s;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$0ZupnQyxl7yZKgMmf2zwvykG50s;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$0ZupnQyxl7yZKgMmf2zwvykG50s;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
@@ -34146,7 +37119,7 @@
 HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$7XcqfZjQLAbjpIyed3iDnVtZro4;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$7XcqfZjQLAbjpIyed3iDnVtZro4;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$9Gi6QLDM5W-SF-EH_zfgZZvIlo0;-><init>(Landroid/util/ArraySet;Z)V
-PLcom/android/server/wm/-$$Lambda$RootWindowContainer$9Gi6QLDM5W-SF-EH_zfgZZvIlo0;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$9Gi6QLDM5W-SF-EH_zfgZZvIlo0;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$FinishDisabledPackageActivitiesHelper$XWfRTrqNP6c1kx7wtT2Pvy6K9-c;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$FinishDisabledPackageActivitiesHelper$XWfRTrqNP6c1kx7wtT2Pvy6K9-c;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$FinishDisabledPackageActivitiesHelper$XWfRTrqNP6c1kx7wtT2Pvy6K9-c;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
@@ -34188,8 +37161,13 @@
 HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$qT2ficAmvrvFcBdiJIGNKxJ8Z9Q;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$smSIq2r4GMdbTUsLaRS4KHth6DY;-><init>(Landroid/util/proto/ProtoOutputStream;I)V
 HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$smSIq2r4GMdbTUsLaRS4KHth6DY;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$utugHDPHgMp2b3JwigOH_-Y0P1Q;-><init>(Lcom/android/server/wm/RootWindowContainer;Landroid/util/SparseIntArray;)V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$utugHDPHgMp2b3JwigOH_-Y0P1Q;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$vMW2dyMvZQ0PDhptvNKN5WXpK_w;-><init>(IZ)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$vMW2dyMvZQ0PDhptvNKN5WXpK_w;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$wLVWfnI4-Qh591YFnQQbgqi690s;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$wLVWfnI4-Qh591YFnQQbgqi690s;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$wLVWfnI4-Qh591YFnQQbgqi690s;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$y9wG_endhUBCwGznyjN4RSIYTyg;-><init>(Ljava/util/ArrayList;Ljava/io/PrintWriter;[IZ)V
 PLcom/android/server/wm/-$$Lambda$RootWindowContainer$y9wG_endhUBCwGznyjN4RSIYTyg;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$RunningTasks$MPCBAZpSXKx53M7vrqtvLfftJOc;-><clinit>()V
@@ -34206,6 +37184,8 @@
 HPLcom/android/server/wm/-$$Lambda$Session$15hO_YO9_yR6FTMdPPe87fZzL1c;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
 HPLcom/android/server/wm/-$$Lambda$Session$zgdcs0nAb8hCdS-6ugnFMadbhU8;-><init>(FFFF)V
 HPLcom/android/server/wm/-$$Lambda$Session$zgdcs0nAb8hCdS-6ugnFMadbhU8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ShellRoot$ZIRxB0zj35u-emFBSiaW8a8zUus;-><init>(Lcom/android/server/wm/ShellRoot;I)V
+PLcom/android/server/wm/-$$Lambda$ShellRoot$ZIRxB0zj35u-emFBSiaW8a8zUus;->binderDied()V
 HSPLcom/android/server/wm/-$$Lambda$StatusBarController$1$3FiQ0kybPCSlgcNJkCsNm5M12iA;-><init>(Lcom/android/server/wm/StatusBarController$1;)V
 HSPLcom/android/server/wm/-$$Lambda$StatusBarController$1$3FiQ0kybPCSlgcNJkCsNm5M12iA;->run()V
 HSPLcom/android/server/wm/-$$Lambda$StatusBarController$1$CizMeoiz6ZVrkt6kAKpSV5htmyc;-><init>(Lcom/android/server/wm/StatusBarController$1;)V
@@ -34217,7 +37197,7 @@
 HPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$9Wa9MhcrSX12liOouHtYXEkDU60;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
 HPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$9Wa9MhcrSX12liOouHtYXEkDU60;->doFrame(J)V
 PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$SGOilG6qRe0XTsTJRQqQKhta0pA;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)V
-PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$SGOilG6qRe0XTsTJRQqQKhta0pA;->run()V
+HPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$SGOilG6qRe0XTsTJRQqQKhta0pA;->run()V
 HSPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$lSzwjoKEGADoEFOzdEnwriAk0T4;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
 HPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$lSzwjoKEGADoEFOzdEnwriAk0T4;->run()V
 HPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$puhYAP5tF0mSSJva-eUz59HnrkA;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;Landroid/animation/ValueAnimator;)V
@@ -34277,8 +37257,8 @@
 HSPLcom/android/server/wm/-$$Lambda$Task$TUGPkEKamN60PF6hJQxUwDBjU-M;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$Task$TUGPkEKamN60PF6hJQxUwDBjU-M;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$Task$TUGPkEKamN60PF6hJQxUwDBjU-M;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/-$$Lambda$Task$TZa8EpS1fM9BHkBe2HWJbm9X1-8;-><init>(Ljava/lang/String;)V
-PLcom/android/server/wm/-$$Lambda$Task$TZa8EpS1fM9BHkBe2HWJbm9X1-8;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$Task$TZa8EpS1fM9BHkBe2HWJbm9X1-8;-><init>(Ljava/lang/String;)V
+HPLcom/android/server/wm/-$$Lambda$Task$TZa8EpS1fM9BHkBe2HWJbm9X1-8;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$Task$UZHgJINsQMxoLLbKNADHN5xbji8;-><init>(Landroid/util/proto/ProtoOutputStream;)V
 PLcom/android/server/wm/-$$Lambda$Task$UZHgJINsQMxoLLbKNADHN5xbji8;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$Task$V2nwgQi-xYvgAjezrWRsKUB2nLI;-><clinit>()V
@@ -34362,7 +37342,10 @@
 PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$byMDuIFUN4cQ1lT9jVjMwLhaLDw;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$cFUeUwnRjuOQKcg2c4PnDS0ImTw;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$cFUeUwnRjuOQKcg2c4PnDS0ImTw;-><init>()V
-PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$cFUeUwnRjuOQKcg2c4PnDS0ImTw;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+HPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$cFUeUwnRjuOQKcg2c4PnDS0ImTw;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$fHOaxOU9vkp_xgwOlM5lZFj3Fi0;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$fHOaxOU9vkp_xgwOlM5lZFj3Fi0;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$fHOaxOU9vkp_xgwOlM5lZFj3Fi0;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$k0FXXC-HcWJhmtm6-Kruo6nGeXI;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$k0FXXC-HcWJhmtm6-Kruo6nGeXI;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$k0FXXC-HcWJhmtm6-Kruo6nGeXI;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
@@ -34383,9 +37366,10 @@
 PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$sdBP_U6BS8zRbtZp-gZ0BmFW8bs;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$wuBjs4dj7gB_MI4dIdt2gV2Osus;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$wuBjs4dj7gB_MI4dIdt2gV2Osus;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$wuBjs4dj7gB_MI4dIdt2gV2Osus;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$yaW9HlZsz3L55CTQ4b7y33IGo94;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$yaW9HlZsz3L55CTQ4b7y33IGo94;-><init>()V
-PLcom/android/server/wm/-$$Lambda$TaskPersister$8MhgCrM41UuyRqTjWwKtfifKRLo;-><init>(Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/-$$Lambda$TaskPersister$8MhgCrM41UuyRqTjWwKtfifKRLo;-><init>(Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/-$$Lambda$TaskPersister$8MhgCrM41UuyRqTjWwKtfifKRLo;->test(Ljava/lang/Object;)Z
 HPLcom/android/server/wm/-$$Lambda$TaskPersister$mW0HULrR8EtZ9La-pL9kLTnHSzk;-><init>(Ljava/lang/String;)V
 PLcom/android/server/wm/-$$Lambda$TaskPersister$mW0HULrR8EtZ9La-pL9kLTnHSzk;->test(Ljava/lang/Object;)Z
@@ -34442,6 +37426,8 @@
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$7u99Gj9w15XaOTtX23LKq-yXn5o;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$7u99Gj9w15XaOTtX23LKq-yXn5o;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$WindowContainer$7u99Gj9w15XaOTtX23LKq-yXn5o;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$WindowContainer$Nezf9LuhT9GSLKWzqEWp7WKs5W8;-><init>(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/-$$Lambda$WindowContainer$Nezf9LuhT9GSLKWzqEWp7WKs5W8;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$TQFCJtak2E5nTjAEG9Q24yp-Oi8;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$TQFCJtak2E5nTjAEG9Q24yp-Oi8;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$WindowContainer$TQFCJtak2E5nTjAEG9Q24yp-Oi8;->test(Ljava/lang/Object;)Z
@@ -34474,13 +37460,15 @@
 HSPLcom/android/server/wm/-$$Lambda$WindowManagerConstants$vqhvZbTPHnj84vQKH9wjAhgVP44;-><init>(Lcom/android/server/wm/WindowManagerConstants;)V
 HSPLcom/android/server/wm/-$$Lambda$WindowManagerService$-84S7IuSlM65nKgepHJEvVFHdC8;-><init>(Lcom/android/server/wm/WindowManagerService;)V
 PLcom/android/server/wm/-$$Lambda$WindowManagerService$-84S7IuSlM65nKgepHJEvVFHdC8;->binderDied()V
+PLcom/android/server/wm/-$$Lambda$WindowManagerService$05fsn8aS3Yh8PJChNK4X3zTgx6M;-><init>(I)V
+PLcom/android/server/wm/-$$Lambda$WindowManagerService$05fsn8aS3Yh8PJChNK4X3zTgx6M;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$WindowManagerService$76as6dijPl5n2m0AtZPbXLM-ukM;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$WindowManagerService$76as6dijPl5n2m0AtZPbXLM-ukM;-><init>()V
 PLcom/android/server/wm/-$$Lambda$WindowManagerService$76as6dijPl5n2m0AtZPbXLM-ukM;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/wm/-$$Lambda$WindowManagerService$8ua71O53dXrMSZy5W0bAg3kK7ho;-><init>(Z)V
 HPLcom/android/server/wm/-$$Lambda$WindowManagerService$8ua71O53dXrMSZy5W0bAg3kK7ho;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$_nYJRiVOgbON7mI191FIzNAk4Xs;-><init>(Ljava/lang/String;)V
-PLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$_nYJRiVOgbON7mI191FIzNAk4Xs;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$_nYJRiVOgbON7mI191FIzNAk4Xs;->accept(Ljava/lang/Object;)V
 HPLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$rEGrcIRCgYp-4kzr5xA12LKQX0E;-><init>(Ljava/lang/String;)V
 HPLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$rEGrcIRCgYp-4kzr5xA12LKQX0E;->accept(Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$WindowManagerService$Zv37mcLTUXyG89YznyHzluaKNE0;-><init>(Landroid/app/IAssistDataReceiver;Landroid/graphics/Bitmap;)V
@@ -34494,7 +37482,7 @@
 PLcom/android/server/wm/-$$Lambda$WindowManagerShellCommand$prjQFpVCgSa5hzjzlwN4oL9HnaI;-><init>(Ljava/util/ArrayList;)V
 PLcom/android/server/wm/-$$Lambda$WindowManagerShellCommand$prjQFpVCgSa5hzjzlwN4oL9HnaI;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/-$$Lambda$WindowToken$tFLHn4S6WuSXW1gp1kvT_sp7WC0;-><init>(Lcom/android/server/wm/WindowToken;)V
-PLcom/android/server/wm/-$$Lambda$WindowToken$tFLHn4S6WuSXW1gp1kvT_sp7WC0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HPLcom/android/server/wm/-$$Lambda$WindowToken$tFLHn4S6WuSXW1gp1kvT_sp7WC0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 HSPLcom/android/server/wm/-$$Lambda$WindowTracing$lz89IHzR4nKO_ZtXtwyNGkRleMY;-><init>(Lcom/android/server/wm/WindowTracing;)V
 HSPLcom/android/server/wm/-$$Lambda$Z9QEXZevRsInPMEXX0zFWg8YGMQ;-><init>(Lcom/android/server/wm/RecentTasks;)V
 PLcom/android/server/wm/-$$Lambda$Z9QEXZevRsInPMEXX0zFWg8YGMQ;->run()V
@@ -34537,10 +37525,12 @@
 PLcom/android/server/wm/-$$Lambda$oZvG727evJMxIwK1im7QJjcltfo;-><init>()V
 PLcom/android/server/wm/-$$Lambda$oZvG727evJMxIwK1im7QJjcltfo;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 HPLcom/android/server/wm/-$$Lambda$pAuPvwUqsKCejIrAPrx0ARZSqeY;-><init>(Lcom/android/server/wm/PersisterQueue$WriteQueueItem;)V
-PLcom/android/server/wm/-$$Lambda$pAuPvwUqsKCejIrAPrx0ARZSqeY;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/wm/-$$Lambda$pAuPvwUqsKCejIrAPrx0ARZSqeY;->test(Ljava/lang/Object;)Z
 HSPLcom/android/server/wm/-$$Lambda$qMFJUmfG50ZSjk7Tac67xBia0d4;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$qMFJUmfG50ZSjk7Tac67xBia0d4;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$qMFJUmfG50ZSjk7Tac67xBia0d4;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$saxKzkaCgueXiijz1VFL4g-SiV0;-><init>(Lcom/android/server/wm/WindowManagerService$SettingsObserver;)V
+HSPLcom/android/server/wm/-$$Lambda$saxKzkaCgueXiijz1VFL4g-SiV0;->run()V
 HSPLcom/android/server/wm/-$$Lambda$swA_sUfSJdP8eC8AA9Iby3-SuOY;-><clinit>()V
 HSPLcom/android/server/wm/-$$Lambda$swA_sUfSJdP8eC8AA9Iby3-SuOY;-><init>()V
 HSPLcom/android/server/wm/-$$Lambda$swA_sUfSJdP8eC8AA9Iby3-SuOY;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
@@ -34560,7 +37550,7 @@
 HPLcom/android/server/wm/-$$Lambda$yVRF8YoeNdTa8GR1wDStVsHu8xM;->run()V
 PLcom/android/server/wm/-$$Lambda$z5j5fiv3cZuY5AODkt3H3rhKimk;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$z5j5fiv3cZuY5AODkt3H3rhKimk;-><init>()V
-PLcom/android/server/wm/-$$Lambda$z5j5fiv3cZuY5AODkt3H3rhKimk;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$z5j5fiv3cZuY5AODkt3H3rhKimk;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 PLcom/android/server/wm/-$$Lambda$zP5AObb0-v-Zzwr-v8NXOg4Yt1c;-><clinit>()V
 PLcom/android/server/wm/-$$Lambda$zP5AObb0-v-Zzwr-v8NXOg4Yt1c;-><init>()V
 HPLcom/android/server/wm/-$$Lambda$zP5AObb0-v-Zzwr-v8NXOg4Yt1c;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
@@ -34620,13 +37610,13 @@
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->getMagnificationRegionLocked(Landroid/graphics/Region;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->getMagnificationSpecForWindowLocked(Lcom/android/server/wm/WindowState;)Landroid/view/MagnificationSpec;
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->isForceShowingMagnifiableBoundsLocked()Z
-PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->onAppWindowTransitionLocked(II)V
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->onAppWindowTransitionLocked(II)V
 HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->onRectangleOnScreenRequestedLocked(Landroid/graphics/Rect;)V
 PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->onRotationChangedLocked(Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->onWindowTransitionLocked(Lcom/android/server/wm/WindowState;I)V
-PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->setForceShowMagnifiableBoundsLocked(Z)V
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->setForceShowMagnifiableBoundsLocked(Z)V
 HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->setMagnificationSpecLocked(Landroid/view/MagnificationSpec;)V
-PLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->showMagnificationBoundsIfNeeded()V
+HPLcom/android/server/wm/AccessibilityController$DisplayMagnifier;->showMagnificationBoundsIfNeeded()V
 PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver$MyHandler;-><init>(Lcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;Landroid/os/Looper;)V
 HPLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver$MyHandler;->handleMessage(Landroid/os/Message;)V
 PLcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;-><init>(Lcom/android/server/wm/WindowManagerService;ILcom/android/server/wm/WindowManagerInternal$WindowsForAccessibilityCallback;)V
@@ -34660,7 +37650,7 @@
 HPLcom/android/server/wm/AccessibilityController;->onWindowTransitionLocked(Lcom/android/server/wm/WindowState;I)V
 HPLcom/android/server/wm/AccessibilityController;->performComputeChangedWindowsNotLocked(IZ)V
 PLcom/android/server/wm/AccessibilityController;->populateTransformationMatrixLocked(Lcom/android/server/wm/WindowState;Landroid/graphics/Matrix;)V
-PLcom/android/server/wm/AccessibilityController;->setForceShowMagnifiableBoundsLocked(IZ)V
+HPLcom/android/server/wm/AccessibilityController;->setForceShowMagnifiableBoundsLocked(IZ)V
 PLcom/android/server/wm/AccessibilityController;->setMagnificationCallbacksLocked(ILcom/android/server/wm/WindowManagerInternal$MagnificationCallbacks;)Z
 HPLcom/android/server/wm/AccessibilityController;->setMagnificationSpecLocked(ILandroid/view/MagnificationSpec;)V
 PLcom/android/server/wm/AccessibilityController;->setWindowsForAccessibilityCallbackLocked(ILcom/android/server/wm/WindowManagerInternal$WindowsForAccessibilityCallback;)Z
@@ -34674,6 +37664,7 @@
 HSPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->calculateCurrentDelay()I
 HSPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->calculateDelay(J)I
 HSPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->contains(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->contains(Lcom/android/server/wm/WindowContainer;)Z
 HSPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->create(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;ZZI)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;
 HSPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->isInterestingToLoggerAndObserver()Z
 HSPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->removePendingDrawActivity(Lcom/android/server/wm/ActivityRecord;)V
@@ -34701,6 +37692,7 @@
 HSPLcom/android/server/wm/ActivityMetricsLogger;->convertTransitionTypeToLaunchObserverTemperature(I)I
 HSPLcom/android/server/wm/ActivityMetricsLogger;->done(ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Ljava/lang/String;J)V
 HSPLcom/android/server/wm/ActivityMetricsLogger;->getActiveTransitionInfo(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;
+PLcom/android/server/wm/ActivityMetricsLogger;->getActiveTransitionInfo(Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;
 PLcom/android/server/wm/ActivityMetricsLogger;->getArtManagerInternal()Landroid/content/pm/dex/ArtManagerInternal;
 HSPLcom/android/server/wm/ActivityMetricsLogger;->getLastDrawnDelayMs(Lcom/android/server/wm/ActivityRecord;)I
 HSPLcom/android/server/wm/ActivityMetricsLogger;->getLaunchObserverRegistry()Lcom/android/server/wm/ActivityMetricsLaunchObserverRegistry;
@@ -34755,6 +37747,9 @@
 PLcom/android/server/wm/ActivityRecord$AppSaturationInfo;-><init>(Lcom/android/server/wm/ActivityRecord$1;)V
 PLcom/android/server/wm/ActivityRecord$AppSaturationInfo;->setSaturation([F[F)V
 HPLcom/android/server/wm/ActivityRecord$CompatDisplayInsets;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/graphics/Rect;Z)V
+PLcom/android/server/wm/ActivityRecord$CompatDisplayInsets;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowContainer;)V
+PLcom/android/server/wm/ActivityRecord$CompatDisplayInsets;->getBoundsByRotation(Landroid/graphics/Rect;I)V
+PLcom/android/server/wm/ActivityRecord$CompatDisplayInsets;->getContainerBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;IIZZ)V
 HPLcom/android/server/wm/ActivityRecord$CompatDisplayInsets;->getDisplayBoundsByRotation(Landroid/graphics/Rect;I)V
 HPLcom/android/server/wm/ActivityRecord$CompatDisplayInsets;->getFrameByOrientation(Landroid/graphics/Rect;I)V
 HSPLcom/android/server/wm/ActivityRecord$Token;-><init>(Landroid/content/Intent;)V
@@ -34767,7 +37762,7 @@
 HPLcom/android/server/wm/ActivityRecord$Token;->toString()Ljava/lang/String;
 HSPLcom/android/server/wm/ActivityRecord$Token;->tokenToActivityRecordLocked(Lcom/android/server/wm/ActivityRecord$Token;)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/ActivityRecord;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/WindowProcessController;IILjava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;IZZLcom/android/server/wm/ActivityStackSupervisor;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityRecord;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/WindowProcessController;IILjava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;IZZLcom/android/server/wm/ActivityStackSupervisor;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;)V
+HSPLcom/android/server/wm/ActivityRecord;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/WindowProcessController;IILjava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;IZZLcom/android/server/wm/ActivityStackSupervisor;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityRecord;->access$000(Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/ActivityRecord;->activityPaused(Z)V
 HSPLcom/android/server/wm/ActivityRecord;->activityResumedLocked(Landroid/os/IBinder;)V
@@ -34845,7 +37840,7 @@
 HPLcom/android/server/wm/ActivityRecord;->detachChildren()V
 HPLcom/android/server/wm/ActivityRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
 HSPLcom/android/server/wm/ActivityRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
-HPLcom/android/server/wm/ActivityRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;I)V
+HSPLcom/android/server/wm/ActivityRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;I)V
 HPLcom/android/server/wm/ActivityRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLcom/android/server/wm/ActivityRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
 HSPLcom/android/server/wm/ActivityRecord;->ensureActivityConfiguration(IZ)Z
@@ -34870,6 +37865,7 @@
 HSPLcom/android/server/wm/ActivityRecord;->getActivityStack()Lcom/android/server/wm/ActivityStack;
 HPLcom/android/server/wm/ActivityRecord;->getAnimationBounds(I)Landroid/graphics/Rect;
 HPLcom/android/server/wm/ActivityRecord;->getAnimationFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+PLcom/android/server/wm/ActivityRecord;->getAnimationLayer()I
 HPLcom/android/server/wm/ActivityRecord;->getAnimationLeashParent()Landroid/view/SurfaceControl;
 HPLcom/android/server/wm/ActivityRecord;->getAppAnimationLayer()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/ActivityRecord;->getBounds()Landroid/graphics/Rect;
@@ -34921,7 +37917,7 @@
 HPLcom/android/server/wm/ActivityRecord;->isClosingOrEnteringPip()Z
 PLcom/android/server/wm/ActivityRecord;->isConfigurationCompatible(Landroid/content/res/Configuration;)Z
 PLcom/android/server/wm/ActivityRecord;->isDestroyable()Z
-PLcom/android/server/wm/ActivityRecord;->isFirstChildWindowGreaterThanSecond(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/ActivityRecord;->isFirstChildWindowGreaterThanSecond(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)Z
 HSPLcom/android/server/wm/ActivityRecord;->isFocusable()Z
 HSPLcom/android/server/wm/ActivityRecord;->isFreezingScreen()Z
 HSPLcom/android/server/wm/ActivityRecord;->isHomeIntent(Landroid/content/Intent;)Z
@@ -34992,13 +37988,14 @@
 HSPLcom/android/server/wm/ActivityRecord;->occludesParent()Z
 HSPLcom/android/server/wm/ActivityRecord;->okToShowLocked()Z
 HSPLcom/android/server/wm/ActivityRecord;->onAnimationFinished()V
-HPLcom/android/server/wm/ActivityRecord;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
+HSPLcom/android/server/wm/ActivityRecord;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
 HPLcom/android/server/wm/ActivityRecord;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
 HPLcom/android/server/wm/ActivityRecord;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
 PLcom/android/server/wm/ActivityRecord;->onAppFreezeTimeout()V
 HSPLcom/android/server/wm/ActivityRecord;->onConfigurationChanged(Landroid/content/res/Configuration;)V
 HSPLcom/android/server/wm/ActivityRecord;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
 HSPLcom/android/server/wm/ActivityRecord;->onFirstWindowDrawn(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowStateAnimator;)V
+HPLcom/android/server/wm/ActivityRecord;->onLeashAnimationStarting(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
 HSPLcom/android/server/wm/ActivityRecord;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
 HPLcom/android/server/wm/ActivityRecord;->onRemovedFromDisplay()V
 PLcom/android/server/wm/ActivityRecord;->onWindowReplacementTimeout()V
@@ -35135,7 +38132,7 @@
 HSPLcom/android/server/wm/ActivityRecord;->writeIdentifierToProto(Landroid/util/proto/ProtoOutputStream;J)V
 HSPLcom/android/server/wm/ActivityRecord;->writeNameToProto(Landroid/util/proto/ProtoOutputStream;J)V
 PLcom/android/server/wm/ActivityResult;-><init>(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;IILandroid/content/Intent;)V
-PLcom/android/server/wm/ActivityServiceConnectionsHolder;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityServiceConnectionsHolder;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityServiceConnectionsHolder;->addConnection(Ljava/lang/Object;)V
 PLcom/android/server/wm/ActivityServiceConnectionsHolder;->disconnectActivityFromServices()V
 PLcom/android/server/wm/ActivityServiceConnectionsHolder;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
@@ -35145,7 +38142,7 @@
 PLcom/android/server/wm/ActivityServiceConnectionsHolder;->lambda$disconnectActivityFromServices$0$ActivityServiceConnectionsHolder()V
 PLcom/android/server/wm/ActivityServiceConnectionsHolder;->lambda$disconnectActivityFromServices$0$ActivityServiceConnectionsHolder(Ljava/lang/Object;)V
 HPLcom/android/server/wm/ActivityServiceConnectionsHolder;->removeConnection(Ljava/lang/Object;)V
-PLcom/android/server/wm/ActivityServiceConnectionsHolder;->toString()Ljava/lang/String;
+HPLcom/android/server/wm/ActivityServiceConnectionsHolder;->toString()Ljava/lang/String;
 HSPLcom/android/server/wm/ActivityStack$ActivityStackHandler;-><init>(Lcom/android/server/wm/ActivityStack;Landroid/os/Looper;)V
 PLcom/android/server/wm/ActivityStack$ActivityStackHandler;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/wm/ActivityStack$ActivityState;-><clinit>()V
@@ -35169,8 +38166,9 @@
 HSPLcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;->process(Lcom/android/server/wm/WindowProcessController;)Z
 HPLcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;->processActivity(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityStack;-><clinit>()V
+HSPLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;IILandroid/content/pm/ActivityInfo;Landroid/content/Intent;)V
 HSPLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;Ljava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)V
+HSPLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;Ljava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Landroid/app/ActivityManager$TaskDescription;Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/DisplayContent;ILcom/android/server/wm/ActivityStackSupervisor;I)V
 HSPLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/DisplayContent;ILcom/android/server/wm/ActivityStackSupervisor;IIZ)V
@@ -35181,7 +38179,7 @@
 PLcom/android/server/wm/ActivityStack;->addChild(Lcom/android/server/wm/WindowContainer;I)V
 HSPLcom/android/server/wm/ActivityStack;->addChild(Lcom/android/server/wm/WindowContainer;IZ)V
 HSPLcom/android/server/wm/ActivityStack;->addChild(Lcom/android/server/wm/WindowContainer;ZZ)V
-PLcom/android/server/wm/ActivityStack;->adjustFocusToNextFocusableStack(Ljava/lang/String;)Lcom/android/server/wm/ActivityStack;
+HPLcom/android/server/wm/ActivityStack;->adjustFocusToNextFocusableStack(Ljava/lang/String;)Lcom/android/server/wm/ActivityStack;
 HPLcom/android/server/wm/ActivityStack;->adjustFocusToNextFocusableStack(Ljava/lang/String;Z)Lcom/android/server/wm/ActivityStack;
 HPLcom/android/server/wm/ActivityStack;->adjustForIME(Lcom/android/server/wm/WindowState;)Z
 HPLcom/android/server/wm/ActivityStack;->affectedBySplitScreenResize()Z
@@ -35202,6 +38200,7 @@
 HSPLcom/android/server/wm/ActivityStack;->checkTranslucentActivityWaiting(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityStack;->clearLaunchTime(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityStack;->completePauseLocked(ZLcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityStack;->computeMaxPosition(I)I
 HSPLcom/android/server/wm/ActivityStack;->computeMinPosition(II)I
 HSPLcom/android/server/wm/ActivityStack;->containsActivityFromStack(Ljava/util/List;)Z
 HSPLcom/android/server/wm/ActivityStack;->continueUpdateBounds()V
@@ -35248,6 +38247,7 @@
 HPLcom/android/server/wm/ActivityStack;->getMinTopStackBottom(Landroid/graphics/Rect;I)I
 HSPLcom/android/server/wm/ActivityStack;->getName()Ljava/lang/String;
 PLcom/android/server/wm/ActivityStack;->getOrientation()I
+HPLcom/android/server/wm/ActivityStack;->getParentSurfaceControl()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/ActivityStack;->getRawBounds()Landroid/graphics/Rect;
 PLcom/android/server/wm/ActivityStack;->getRawBounds(Landroid/graphics/Rect;)V
 HSPLcom/android/server/wm/ActivityStack;->getRelativeDisplayedPosition(Landroid/graphics/Point;)V
@@ -35300,11 +38300,14 @@
 PLcom/android/server/wm/ActivityStack;->lambda$VIuWlCdKwIo4qqRlevMLniedZ7o(Lcom/android/server/wm/Task;Landroid/graphics/Rect;)V
 PLcom/android/server/wm/ActivityStack;->lambda$YAQEcQUrLqR06xiJJApMvOPIxhg(Lcom/android/server/wm/Task;Landroid/os/IBinder;)V
 PLcom/android/server/wm/ActivityStack;->lambda$animateResizePinnedStack$15$ActivityStack(Lcom/android/server/wm/DisplayContent;Landroid/graphics/Rect;Landroid/graphics/Rect;IIZZI)V
+HPLcom/android/server/wm/ActivityStack;->lambda$awakeFromSleepingLocked$4(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityStack;->lambda$awakeFromSleepingLocked$5(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStack;->lambda$beginImeAdjustAnimation$18(Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStack;->lambda$calculatePinnedBoundsForConfigChange$17$ActivityStack(Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/ActivityStack;->lambda$dhfbladKtxXwwdCS2dFdAfUfBN4(Lcom/android/server/wm/Task;Landroid/view/ITaskOrganizer;)V
+PLcom/android/server/wm/ActivityStack;->lambda$dismissPip$15$ActivityStack()V
 PLcom/android/server/wm/ActivityStack;->lambda$dismissPip$16$ActivityStack()V
+HPLcom/android/server/wm/ActivityStack;->lambda$dumpActivities$12(ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;Lcom/android/server/wm/Task;)V
 HPLcom/android/server/wm/ActivityStack;->lambda$dumpActivities$13$ActivityStack(ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;Lcom/android/server/wm/Task;)V
 HPLcom/android/server/wm/ActivityStack;->lambda$dumpActivities$13(ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStack;->lambda$dumpDebug$21(Landroid/util/proto/ProtoOutputStream;ILcom/android/server/wm/Task;)V
@@ -35313,23 +38316,31 @@
 PLcom/android/server/wm/ActivityStack;->lambda$finishAllActivitiesImmediately$9(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStack;->lambda$finishIfVoiceTask$8(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityStack;->lambda$getDumpActivitiesLocked$14(Lcom/android/server/am/ActivityManagerService$ItemMatcher;Ljava/util/ArrayList;Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityStack;->lambda$goToSleep$5(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityStack;->lambda$goToSleep$6(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityStack;->lambda$navigateUpTo$10(Landroid/content/ComponentName;Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/ActivityStack;->lambda$navigateUpTo$11(Lcom/android/server/wm/ActivityRecord;[I[Landroid/content/Intent;Lcom/android/server/wm/ActivityRecord;)Ljava/lang/Boolean;
 PLcom/android/server/wm/ActivityStack;->lambda$onAnimationStart$20(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/ActivityStack;->lambda$onConfigurationChanged$0(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/ActivityStack;->lambda$resetCurrentBoundsAnimation$17$ActivityStack(Lcom/android/server/wm/BoundsAnimationController;)V
+PLcom/android/server/wm/ActivityStack;->lambda$setWindowingMode$0$ActivityStack(IZZZZZ)V
 HSPLcom/android/server/wm/ActivityStack;->lambda$setWindowingMode$1$ActivityStack(IZZZZZ)V
+HPLcom/android/server/wm/ActivityStack;->lambda$startActivityLocked$7(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityStack;->lambda$switchUser$4$ActivityStack(Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/ActivityStack;->lambda$topRunningActivity$1(Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/ActivityStack;->lambda$topRunningActivity$2(Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/ActivityStack;->lambda$topRunningNonOverlayTaskActivity$3(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityStack;->lambda$willActivityBeVisible$11(Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/ActivityStack;->lambda$willActivityBeVisible$12(Lcom/android/server/wm/ActivityRecord;)Z
 HPLcom/android/server/wm/ActivityStack;->lastAnimatingBoundsWasToFullscreen()Z
 HSPLcom/android/server/wm/ActivityStack;->minimalResumeActivityLocked(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStack;->moveHomeStackToFrontIfNeeded(ZLcom/android/server/wm/DisplayContent;Ljava/lang/String;)V
 HPLcom/android/server/wm/ActivityStack;->moveTaskToBack(Lcom/android/server/wm/Task;)Z
+PLcom/android/server/wm/ActivityStack;->moveTaskToFront(Lcom/android/server/wm/Task;ZLandroid/app/ActivityOptions;Lcom/android/server/am/AppTimeTracker;Ljava/lang/String;)V
+HPLcom/android/server/wm/ActivityStack;->moveTaskToFront(Lcom/android/server/wm/Task;ZLandroid/app/ActivityOptions;Lcom/android/server/am/AppTimeTracker;ZLjava/lang/String;)V
 HPLcom/android/server/wm/ActivityStack;->moveTaskToFrontLocked(Lcom/android/server/wm/Task;ZLandroid/app/ActivityOptions;Lcom/android/server/am/AppTimeTracker;Ljava/lang/String;)V
 HPLcom/android/server/wm/ActivityStack;->moveTaskToFrontLocked(Lcom/android/server/wm/Task;ZLandroid/app/ActivityOptions;Lcom/android/server/am/AppTimeTracker;ZLjava/lang/String;)V
-PLcom/android/server/wm/ActivityStack;->moveToBack(Ljava/lang/String;Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/ActivityStack;->moveToBack(Ljava/lang/String;Lcom/android/server/wm/Task;)V
 HSPLcom/android/server/wm/ActivityStack;->moveToFront(Ljava/lang/String;)V
 HSPLcom/android/server/wm/ActivityStack;->moveToFront(Ljava/lang/String;Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStack;->moveToFrontAndResumeStateIfNeeded(Lcom/android/server/wm/ActivityRecord;ZZZLjava/lang/String;)V
@@ -35348,8 +38359,8 @@
 HPLcom/android/server/wm/ActivityStack;->onPipAnimationEndResize()V
 HPLcom/android/server/wm/ActivityStack;->positionChildAt(ILcom/android/server/wm/Task;ZZ)I
 HSPLcom/android/server/wm/ActivityStack;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
-PLcom/android/server/wm/ActivityStack;->positionChildAtBottom(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/ActivityStack;->positionChildAtBottom(Lcom/android/server/wm/Task;Z)V
+HPLcom/android/server/wm/ActivityStack;->positionChildAtBottom(Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/ActivityStack;->positionChildAtBottom(Lcom/android/server/wm/Task;Z)V
 HSPLcom/android/server/wm/ActivityStack;->positionChildAtTop(Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStack;->postReparent()V
 HSPLcom/android/server/wm/ActivityStack;->prepareFreezingTaskBounds()V
@@ -35371,11 +38382,14 @@
 PLcom/android/server/wm/ActivityStack;->resetCurrentBoundsAnimation(Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/ActivityStack;->resetTaskIfNeeded(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
 HPLcom/android/server/wm/ActivityStack;->resize(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZ)V
+HPLcom/android/server/wm/ActivityStack;->resize(Landroid/graphics/Rect;Landroid/graphics/Rect;ZZ)V
 HSPLcom/android/server/wm/ActivityStack;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/ActivityStack;->resolveTileOverrideConfiguration(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/ActivityStack;->resumeNextFocusableActivityWhenStackIsEmpty(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
 HSPLcom/android/server/wm/ActivityStack;->resumeTopActivityInnerLocked(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
 HSPLcom/android/server/wm/ActivityStack;->resumeTopActivityUncheckedLocked(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
 HPLcom/android/server/wm/ActivityStack;->returnsToHomeStack()Z
+HSPLcom/android/server/wm/ActivityStack;->reuseOrCreateTask(Landroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;ZLcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Lcom/android/server/wm/Task;
 PLcom/android/server/wm/ActivityStack;->scheduleDestroyTimeoutForActivity(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStack;->scheduleLaunchTickForActivity(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStack;->schedulePauseTimeoutForActivity(Lcom/android/server/wm/ActivityRecord;)V
@@ -35406,6 +38420,7 @@
 HSPLcom/android/server/wm/ActivityStack;->startActivityLocked(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;ZZLandroid/app/ActivityOptions;)V
 HSPLcom/android/server/wm/ActivityStack;->startPausingLocked(ZZLcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/ActivityStack;->stopDimming()V
+PLcom/android/server/wm/ActivityStack;->switchUser(I)V
 HSPLcom/android/server/wm/ActivityStack;->toShortString()Ljava/lang/String;
 HSPLcom/android/server/wm/ActivityStack;->toString()Ljava/lang/String;
 HSPLcom/android/server/wm/ActivityStack;->topActivityOccludesKeyguard()Z
@@ -35433,8 +38448,10 @@
 HSPLcom/android/server/wm/ActivityStackSupervisor$ActivityStackSupervisorHandler;->handleMessageInner(Landroid/os/Message;)Z
 HSPLcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;)V
 HSPLcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStackSupervisor$1;)V
+PLcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;->lambda$cwI8_ohyLNH4EeQGc44e1nA8e9M(Lcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;->lambda$n0VOwWNM3mud17SnHip7XMiWlWE(Lcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;->process(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/DisplayContent;ZZ)V
+PLcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;->processLeafTask(Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;->processTask(Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStackSupervisor$PendingActivityLaunch;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/ActivityStack;Lcom/android/server/wm/WindowProcessController;)V
 HSPLcom/android/server/wm/ActivityStackSupervisor;-><clinit>()V
@@ -35450,7 +38467,7 @@
 HPLcom/android/server/wm/ActivityStackSupervisor;->acquireLaunchWakelock()V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->activityIdleInternal(Lcom/android/server/wm/ActivityRecord;ZZLandroid/content/res/Configuration;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->activityIdleInternalLocked(Landroid/os/IBinder;ZZLandroid/content/res/Configuration;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityStackSupervisor;->activityRelaunchedLocked(Landroid/os/IBinder;)V
+HPLcom/android/server/wm/ActivityStackSupervisor;->activityRelaunchedLocked(Landroid/os/IBinder;)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->activitySleptLocked(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->addToMultiWindowModeChangedList(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->addToPipModeChangedList(Lcom/android/server/wm/ActivityRecord;)V
@@ -35459,7 +38476,7 @@
 HSPLcom/android/server/wm/ActivityStackSupervisor;->canUseActivityOptionsLaunchBounds(Landroid/app/ActivityOptions;)Z
 HSPLcom/android/server/wm/ActivityStackSupervisor;->checkFinishBootingLocked()Z
 HSPLcom/android/server/wm/ActivityStackSupervisor;->checkReadyForSleepLocked(Z)V
-PLcom/android/server/wm/ActivityStackSupervisor;->checkStartAnyActivityPermission(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;ZZLcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityStack;)Z
+HSPLcom/android/server/wm/ActivityStackSupervisor;->checkStartAnyActivityPermission(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;ZZLcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityStack;)Z
 HSPLcom/android/server/wm/ActivityStackSupervisor;->checkStartAnyActivityPermission(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/String;IIILjava/lang/String;ZZLcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityStack;)Z
 HPLcom/android/server/wm/ActivityStackSupervisor;->cleanUpRemovedTaskLocked(Lcom/android/server/wm/Task;ZZ)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->cleanupActivity(Lcom/android/server/wm/ActivityRecord;)V
@@ -35471,10 +38488,11 @@
 HSPLcom/android/server/wm/ActivityStackSupervisor;->endDeferResume()V
 HPLcom/android/server/wm/ActivityStackSupervisor;->findTaskToMoveToFront(Lcom/android/server/wm/Task;ILandroid/app/ActivityOptions;Ljava/lang/String;Z)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->getActionRestrictionForCallingPackage(Ljava/lang/String;Ljava/lang/String;II)I
-PLcom/android/server/wm/ActivityStackSupervisor;->getActionRestrictionForCallingPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)I
+HPLcom/android/server/wm/ActivityStackSupervisor;->getActionRestrictionForCallingPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)I
 HSPLcom/android/server/wm/ActivityStackSupervisor;->getActivityMetricsLogger()Lcom/android/server/wm/ActivityMetricsLogger;
+PLcom/android/server/wm/ActivityStackSupervisor;->getAppOpsManager()Landroid/app/AppOpsManager;
 HPLcom/android/server/wm/ActivityStackSupervisor;->getComponentRestrictionForCallingPackage(Landroid/content/pm/ActivityInfo;Ljava/lang/String;IIZ)I
-PLcom/android/server/wm/ActivityStackSupervisor;->getComponentRestrictionForCallingPackage(Landroid/content/pm/ActivityInfo;Ljava/lang/String;Ljava/lang/String;IIZ)I
+HPLcom/android/server/wm/ActivityStackSupervisor;->getComponentRestrictionForCallingPackage(Landroid/content/pm/ActivityInfo;Ljava/lang/String;Ljava/lang/String;IIZ)I
 HSPLcom/android/server/wm/ActivityStackSupervisor;->getKeyguardController()Lcom/android/server/wm/KeyguardController;
 HSPLcom/android/server/wm/ActivityStackSupervisor;->getLaunchParamsController()Lcom/android/server/wm/LaunchParamsController;
 HSPLcom/android/server/wm/ActivityStackSupervisor;->getNextTaskIdForUser()I
@@ -35520,6 +38538,7 @@
 HSPLcom/android/server/wm/ActivityStackSupervisor;->removeHistoryRecords(Lcom/android/server/wm/WindowProcessController;)V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->removeHistoryRecords(Ljava/util/ArrayList;Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->removeIdleTimeoutForActivity(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->removeRestartTimeouts(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->removeSleepTimeouts()V
 PLcom/android/server/wm/ActivityStackSupervisor;->removeStack(Lcom/android/server/wm/ActivityStack;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->removeStackInSurfaceTransaction(Lcom/android/server/wm/ActivityStack;)V
@@ -35531,6 +38550,7 @@
 HSPLcom/android/server/wm/ActivityStackSupervisor;->reportWaitingActivityLaunchedIfNeeded(Lcom/android/server/wm/ActivityRecord;I)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->resizeDockedStackLocked(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Z)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->resizeDockedStackLocked(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZ)V
+HPLcom/android/server/wm/ActivityStackSupervisor;->resizePinnedStack(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->resizePinnedStackLocked(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->resolveActivity(Landroid/content/Intent;Landroid/content/pm/ResolveInfo;ILandroid/app/ProfilerInfo;)Landroid/content/pm/ActivityInfo;
 PLcom/android/server/wm/ActivityStackSupervisor;->resolveActivity(Landroid/content/Intent;Ljava/lang/String;ILandroid/app/ProfilerInfo;II)Landroid/content/pm/ActivityInfo;
@@ -35542,6 +38562,7 @@
 PLcom/android/server/wm/ActivityStackSupervisor;->scheduleIdleTimeoutLocked(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/ActivityStackSupervisor;->scheduleLaunchTaskBehindComplete(Landroid/os/IBinder;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->scheduleProcessStoppingAndFinishingActivities()V
+PLcom/android/server/wm/ActivityStackSupervisor;->scheduleRestartTimeout(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/ActivityStackSupervisor;->scheduleResumeTopActivities()V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->scheduleSleepTimeout()V
 HSPLcom/android/server/wm/ActivityStackSupervisor;->scheduleTopResumedActivityStateIfNeeded()V
@@ -35583,11 +38604,14 @@
 PLcom/android/server/wm/ActivityStartController;->postStartActivityProcessingForLastStarter(Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/ActivityStack;)V
 PLcom/android/server/wm/ActivityStartController;->registerRemoteAnimationForNextActivityStart(Ljava/lang/String;Landroid/view/RemoteAnimationAdapter;)V
 HPLcom/android/server/wm/ActivityStartController;->schedulePendingActivityLaunches(J)V
-PLcom/android/server/wm/ActivityStartController;->startActivities(Landroid/app/IApplicationThread;IIILjava/lang/String;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;ILjava/lang/String;Lcom/android/server/am/PendingIntentRecord;Z)I
+HPLcom/android/server/wm/ActivityStartController;->startActivities(Landroid/app/IApplicationThread;IIILjava/lang/String;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;ILjava/lang/String;Lcom/android/server/am/PendingIntentRecord;Z)I
 HPLcom/android/server/wm/ActivityStartController;->startActivities(Landroid/app/IApplicationThread;IIILjava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;ILjava/lang/String;Lcom/android/server/am/PendingIntentRecord;Z)I
+HPLcom/android/server/wm/ActivityStartController;->startActivitiesInPackage(IIILjava/lang/String;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;IZLcom/android/server/am/PendingIntentRecord;Z)I
 PLcom/android/server/wm/ActivityStartController;->startActivitiesInPackage(IIILjava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;IZLcom/android/server/am/PendingIntentRecord;Z)I
+PLcom/android/server/wm/ActivityStartController;->startActivitiesInPackage(ILjava/lang/String;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;IZLcom/android/server/am/PendingIntentRecord;Z)I
 PLcom/android/server/wm/ActivityStartController;->startActivitiesInPackage(ILjava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;IZLcom/android/server/am/PendingIntentRecord;Z)I
 HPLcom/android/server/wm/ActivityStartController;->startActivityInPackage(IIILjava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILcom/android/server/wm/SafeActivityOptions;ILcom/android/server/wm/Task;Ljava/lang/String;ZLcom/android/server/am/PendingIntentRecord;Z)I
+HPLcom/android/server/wm/ActivityStartController;->startActivityInPackage(IIILjava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILcom/android/server/wm/SafeActivityOptions;ILcom/android/server/wm/Task;Ljava/lang/String;ZLcom/android/server/am/PendingIntentRecord;Z)I
 HSPLcom/android/server/wm/ActivityStartController;->startHomeActivity(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/String;I)V
 HSPLcom/android/server/wm/ActivityStartController;->startSetupActivity()V
 HSPLcom/android/server/wm/ActivityStartInterceptor;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;)V
@@ -35604,7 +38628,7 @@
 HSPLcom/android/server/wm/ActivityStartInterceptor;->interceptWithConfirmCredentialsIfNeeded(Landroid/content/pm/ActivityInfo;I)Landroid/content/Intent;
 HSPLcom/android/server/wm/ActivityStartInterceptor;->interceptWorkProfileChallengeIfNeeded()Z
 HSPLcom/android/server/wm/ActivityStartInterceptor;->setStates(IIIILjava/lang/String;)V
-PLcom/android/server/wm/ActivityStartInterceptor;->setStates(IIIILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/wm/ActivityStartInterceptor;->setStates(IIIILjava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/wm/ActivityStarter$DefaultFactory;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStartInterceptor;)V
 HSPLcom/android/server/wm/ActivityStarter$DefaultFactory;->obtain()Lcom/android/server/wm/ActivityStarter;
 HSPLcom/android/server/wm/ActivityStarter$DefaultFactory;->recycle(Lcom/android/server/wm/ActivityStarter;)V
@@ -35663,6 +38687,7 @@
 PLcom/android/server/wm/ActivityStarter;->setInTask(Lcom/android/server/wm/Task;)Lcom/android/server/wm/ActivityStarter;
 HSPLcom/android/server/wm/ActivityStarter;->setInitialState(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;ZILcom/android/server/wm/ActivityRecord;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Z)V
 HSPLcom/android/server/wm/ActivityStarter;->setIntent(Landroid/content/Intent;)Lcom/android/server/wm/ActivityStarter;
+PLcom/android/server/wm/ActivityStarter;->setIsDream(Z)Lcom/android/server/wm/ActivityStarter;
 HSPLcom/android/server/wm/ActivityStarter;->setNewTask(Lcom/android/server/wm/Task;)V
 PLcom/android/server/wm/ActivityStarter;->setOriginatingPendingIntent(Lcom/android/server/am/PendingIntentRecord;)Lcom/android/server/wm/ActivityStarter;
 HSPLcom/android/server/wm/ActivityStarter;->setOutActivity([Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityStarter;
@@ -35680,6 +38705,7 @@
 PLcom/android/server/wm/ActivityStarter;->setVoiceInteractor(Lcom/android/internal/app/IVoiceInteractor;)Lcom/android/server/wm/ActivityStarter;
 PLcom/android/server/wm/ActivityStarter;->setVoiceSession(Landroid/service/voice/IVoiceInteractionSession;)Lcom/android/server/wm/ActivityStarter;
 HSPLcom/android/server/wm/ActivityStarter;->shouldAbortBackgroundActivityStart(IILjava/lang/String;IILcom/android/server/wm/WindowProcessController;Lcom/android/server/am/PendingIntentRecord;ZLandroid/content/Intent;)Z
+HPLcom/android/server/wm/ActivityStarter;->shouldAbortBackgroundActivityStart(IILjava/lang/String;IILcom/android/server/wm/WindowProcessController;Lcom/android/server/am/PendingIntentRecord;ZZLandroid/content/Intent;)Z
 HSPLcom/android/server/wm/ActivityStarter;->startActivityInner(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;IZLandroid/app/ActivityOptions;Lcom/android/server/wm/Task;Z)I
 HSPLcom/android/server/wm/ActivityStarter;->startActivityUnchecked(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;IZLandroid/app/ActivityOptions;Lcom/android/server/wm/Task;Z)I
 PLcom/android/server/wm/ActivityStarter;->startResolvedActivity(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;IZLandroid/app/ActivityOptions;Lcom/android/server/wm/Task;)V
@@ -35709,6 +38735,7 @@
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->canShowErrorDialogs()Z
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->cleanupDisabledPackageComponents(Ljava/lang/String;Ljava/util/Set;IZ)V
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->clearHeavyWeightProcessIfEquals(Lcom/android/server/wm/WindowProcessController;)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->clearLockedTasks(Ljava/lang/String;)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->clearPendingResultForActivity(Landroid/os/IBinder;Ljava/lang/ref/WeakReference;)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->clearSavedANRState()V
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->closeSystemDialogs(Ljava/lang/String;)V
@@ -35719,9 +38746,11 @@
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->enableScreenAfterBoot(Z)V
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->enforceCallerIsRecentsOrHasPermission(Ljava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->finishTopCrashedActivities(Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)I
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getHomeActivityForUser(I)Landroid/content/ComponentName;
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getHomeIntent()Landroid/content/Intent;
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getHomeProcess()Lcom/android/server/wm/WindowProcessController;
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getIntentSender(ILjava/lang/String;IILandroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;)Landroid/content/IIntentSender;
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getIntentSender(ILjava/lang/String;Ljava/lang/String;IILandroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;)Landroid/content/IIntentSender;
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getLaunchObserverRegistry()Lcom/android/server/wm/ActivityMetricsLaunchObserverRegistry;
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getPreviousProcess()Lcom/android/server/wm/WindowProcessController;
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getServiceConnectionsHolder(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityServiceConnectionsHolder;
@@ -35739,7 +38768,7 @@
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isRecentsComponentHomeActivity(I)Z
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isShuttingDown()Z
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isSleeping()Z
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isUidForeground(I)Z
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isUidForeground(I)Z
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->loadRecentTasksForUser(I)V
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyActiveVoiceInteractionServiceChanged(Landroid/content/ComponentName;)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyAppTransitionCancelled()V
@@ -35783,13 +38812,19 @@
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->showSystemReadyErrorDialogsIfNeeded()V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->shuttingDown(ZI)Z
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startActivitiesAsPackage(Ljava/lang/String;I[Landroid/content/Intent;Landroid/os/Bundle;)I
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startActivitiesAsPackage(Ljava/lang/String;Ljava/lang/String;I[Landroid/content/Intent;Landroid/os/Bundle;)I
+HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startActivitiesInPackage(IIILjava/lang/String;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;IZLcom/android/server/am/PendingIntentRecord;Z)I
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startActivitiesInPackage(IIILjava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;IZLcom/android/server/am/PendingIntentRecord;Z)I
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Landroid/os/Bundle;I)I
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Landroid/os/IBinder;ILandroid/os/Bundle;I)I
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startActivityInPackage(IIILjava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILcom/android/server/wm/SafeActivityOptions;ILcom/android/server/wm/Task;Ljava/lang/String;ZLcom/android/server/am/PendingIntentRecord;Z)I
+HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startActivityInPackage(IIILjava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILcom/android/server/wm/SafeActivityOptions;ILcom/android/server/wm/Task;Ljava/lang/String;ZLcom/android/server/am/PendingIntentRecord;Z)I
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startHomeActivity(ILjava/lang/String;)Z
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startHomeOnAllDisplays(ILjava/lang/String;)Z
 HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startHomeOnDisplay(ILjava/lang/String;IZZ)Z
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->switchUser(ILcom/android/server/am/UserState;)Z
 HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->updateTopComponentForFactoryTest()V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->updateUserConfiguration()V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->writeActivitiesToProto(Landroid/util/proto/ProtoOutputStream;)V
 PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->writeProcessesToProto(Landroid/util/proto/ProtoOutputStream;Ljava/lang/String;IZ)V
 HPLcom/android/server/wm/ActivityTaskManagerService$PendingAssistExtras;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;Landroid/os/Bundle;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IAssistDataReceiver;Landroid/os/Bundle;I)V
@@ -35809,6 +38844,7 @@
 HPLcom/android/server/wm/ActivityTaskManagerService;->access$1400(Lcom/android/server/wm/ActivityTaskManagerService;)Landroid/util/SparseArray;
 PLcom/android/server/wm/ActivityTaskManagerService;->access$1400(Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/RecentTasks;
 HSPLcom/android/server/wm/ActivityTaskManagerService;->access$1500(Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/RecentTasks;
+PLcom/android/server/wm/ActivityTaskManagerService;->access$1500(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZZIZ)Z
 PLcom/android/server/wm/ActivityTaskManagerService;->access$1600(Lcom/android/server/wm/ActivityTaskManagerService;IZZ)Landroid/app/ActivityManager$TaskSnapshot;
 PLcom/android/server/wm/ActivityTaskManagerService;->access$1700(Lcom/android/server/wm/ActivityTaskManagerService;)Ljava/util/Map;
 HPLcom/android/server/wm/ActivityTaskManagerService;->access$1700(Lcom/android/server/wm/ActivityTaskManagerService;IZZ)Landroid/app/ActivityManager$TaskSnapshot;
@@ -35817,6 +38853,7 @@
 PLcom/android/server/wm/ActivityTaskManagerService;->access$300(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityTaskManagerService$PendingAssistExtras;)V
 PLcom/android/server/wm/ActivityTaskManagerService;->access$500(Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/TaskChangeNotificationController;
 PLcom/android/server/wm/ActivityTaskManagerService;->access$600(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;IZ)I
+PLcom/android/server/wm/ActivityTaskManagerService;->access$600(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;IZ)I
 PLcom/android/server/wm/ActivityTaskManagerService;->access$600(Lcom/android/server/wm/ActivityTaskManagerService;Ljava/lang/String;Ljava/lang/String;)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->access$700(Lcom/android/server/wm/ActivityTaskManagerService;Ljava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/wm/ActivityTaskManagerService;->access$700(Lcom/android/server/wm/ActivityTaskManagerService;Z)V
@@ -35876,7 +38913,7 @@
 PLcom/android/server/wm/ActivityTaskManagerService;->enterPictureInPictureMode(Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)Z
 PLcom/android/server/wm/ActivityTaskManagerService;->expireStartAsCallerTokenMsg(Landroid/os/IBinder;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->finishActivityAffinity(Landroid/os/IBinder;)Z
+HPLcom/android/server/wm/ActivityTaskManagerService;->finishActivityAffinity(Landroid/os/IBinder;)Z
 HSPLcom/android/server/wm/ActivityTaskManagerService;->finishRunningVoiceLocked()V
 PLcom/android/server/wm/ActivityTaskManagerService;->finishSubActivity(Landroid/os/IBinder;Ljava/lang/String;I)V
 PLcom/android/server/wm/ActivityTaskManagerService;->finishVoiceTask(Landroid/service/voice/IVoiceInteractionSession;)V
@@ -35886,6 +38923,7 @@
 HSPLcom/android/server/wm/ActivityTaskManagerService;->getActivityStartController()Lcom/android/server/wm/ActivityStartController;
 HPLcom/android/server/wm/ActivityTaskManagerService;->getAllStackInfosOnDisplay(I)Ljava/util/List;
 HSPLcom/android/server/wm/ActivityTaskManagerService;->getAppInfoForUser(Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ApplicationInfo;
+PLcom/android/server/wm/ActivityTaskManagerService;->getAppOpsManager()Landroid/app/AppOpsManager;
 PLcom/android/server/wm/ActivityTaskManagerService;->getAppOpsService()Lcom/android/server/appop/AppOpsService;
 HPLcom/android/server/wm/ActivityTaskManagerService;->getAppTasks(Ljava/lang/String;)Ljava/util/List;
 HSPLcom/android/server/wm/ActivityTaskManagerService;->getAppWarningsLocked()Lcom/android/server/wm/AppWarnings;
@@ -35906,6 +38944,7 @@
 HSPLcom/android/server/wm/ActivityTaskManagerService;->getHomeIntent()Landroid/content/Intent;
 HSPLcom/android/server/wm/ActivityTaskManagerService;->getInputDispatchingTimeoutLocked(Lcom/android/server/wm/ActivityRecord;)J
 PLcom/android/server/wm/ActivityTaskManagerService;->getIntentSenderLocked(ILjava/lang/String;IILandroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;)Landroid/content/IIntentSender;
+PLcom/android/server/wm/ActivityTaskManagerService;->getIntentSenderLocked(ILjava/lang/String;Ljava/lang/String;IILandroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;)Landroid/content/IIntentSender;
 HPLcom/android/server/wm/ActivityTaskManagerService;->getLastResumedActivityUserId()I
 PLcom/android/server/wm/ActivityTaskManagerService;->getLastStopAppSwitchesTime()J
 PLcom/android/server/wm/ActivityTaskManagerService;->getLaunchedFromPackage(Landroid/os/IBinder;)Ljava/lang/String;
@@ -35929,6 +38968,7 @@
 PLcom/android/server/wm/ActivityTaskManagerService;->getTaskDescription(I)Landroid/app/ActivityManager$TaskDescription;
 HPLcom/android/server/wm/ActivityTaskManagerService;->getTaskDescriptionIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap;
 HPLcom/android/server/wm/ActivityTaskManagerService;->getTaskForActivity(Landroid/os/IBinder;Z)I
+PLcom/android/server/wm/ActivityTaskManagerService;->getTaskOrganizerController()Landroid/app/ITaskOrganizerController;
 HPLcom/android/server/wm/ActivityTaskManagerService;->getTaskSnapshot(IZ)Landroid/app/ActivityManager$TaskSnapshot;
 HPLcom/android/server/wm/ActivityTaskManagerService;->getTaskSnapshot(IZZ)Landroid/app/ActivityManager$TaskSnapshot;
 HPLcom/android/server/wm/ActivityTaskManagerService;->getTasks(I)Ljava/util/List;
@@ -35961,7 +39001,7 @@
 HSPLcom/android/server/wm/ActivityTaskManagerService;->isSleepingLocked()Z
 HSPLcom/android/server/wm/ActivityTaskManagerService;->isSleepingOrShuttingDownLocked()Z
 HPLcom/android/server/wm/ActivityTaskManagerService;->isTopOfTask(Landroid/os/IBinder;)Z
-HPLcom/android/server/wm/ActivityTaskManagerService;->isUidForeground(I)Z
+HSPLcom/android/server/wm/ActivityTaskManagerService;->isUidForeground(I)Z
 HPLcom/android/server/wm/ActivityTaskManagerService;->keyguardGoingAway(I)V
 PLcom/android/server/wm/ActivityTaskManagerService;->lambda$3DTHgCAeEd5OOF7ACeXoCk8mmrQ(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/os/IBinder;)V
 PLcom/android/server/wm/ActivityTaskManagerService;->lambda$7ieG0s-7Zp4H2bLiWdOgB6MqhcI(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/os/IBinder;)V
@@ -36016,6 +39056,7 @@
 HPLcom/android/server/wm/ActivityTaskManagerService;->resizeDockedStack(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->resizePinnedStack(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 PLcom/android/server/wm/ActivityTaskManagerService;->resizePinnedStackIfNeeded(Lcom/android/server/wm/ConfigurationContainer;IILandroid/content/res/Configuration;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->restartActivityProcessIfVisible(Landroid/os/IBinder;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->resumeAppSwitches()V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->retrieveSettings(Landroid/content/ContentResolver;)V
 PLcom/android/server/wm/ActivityTaskManagerService;->sanitizeAndApplyChange(Lcom/android/server/wm/ConfigurationContainer;Landroid/view/WindowContainerTransaction$Change;)I
@@ -36049,16 +39090,20 @@
 PLcom/android/server/wm/ActivityTaskManagerService;->startActivities(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
 PLcom/android/server/wm/ActivityTaskManagerService;->startActivities(Landroid/app/IApplicationThread;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
-PLcom/android/server/wm/ActivityTaskManagerService;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
+HPLcom/android/server/wm/ActivityTaskManagerService;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
 PLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsCaller(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;Landroid/os/IBinder;ZI)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;IZ)I
-PLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)I
-PLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;IZ)I
+HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)I
+HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;IZ)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityFromRecents(ILandroid/os/Bundle;)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityIntentSender(Landroid/app/IApplicationThread;Landroid/content/IIntentSender;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;)I
 HPLcom/android/server/wm/ActivityTaskManagerService;->startActivityWithConfig(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/content/res/Configuration;Landroid/os/Bundle;I)I
+PLcom/android/server/wm/ActivityTaskManagerService;->startActivityWithConfig(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/content/res/Configuration;Landroid/os/Bundle;I)I
 PLcom/android/server/wm/ActivityTaskManagerService;->startAssistantActivity(Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;I)I
+PLcom/android/server/wm/ActivityTaskManagerService;->startAssistantActivity(Ljava/lang/String;Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;I)I
+PLcom/android/server/wm/ActivityTaskManagerService;->startDreamActivity(Landroid/content/Intent;)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->startLockTaskModeByToken(Landroid/os/IBinder;)V
 PLcom/android/server/wm/ActivityTaskManagerService;->startLockTaskModeLocked(Lcom/android/server/wm/Task;Z)V
 HSPLcom/android/server/wm/ActivityTaskManagerService;->startProcessAsync(Lcom/android/server/wm/ActivityRecord;ZZLjava/lang/String;)V
 HPLcom/android/server/wm/ActivityTaskManagerService;->startRecentsActivity(Landroid/content/Intent;Landroid/app/IAssistDataReceiver;Landroid/view/IRecentsAnimationRunner;)V
@@ -36180,10 +39225,11 @@
 HPLcom/android/server/wm/AppTransition;->loadAnimationSafely(Landroid/content/Context;I)Landroid/view/animation/Animation;
 PLcom/android/server/wm/AppTransition;->loadKeyguardExitAnimation(I)Landroid/view/animation/Animation;
 HSPLcom/android/server/wm/AppTransition;->needsBoosting()Z
-PLcom/android/server/wm/AppTransition;->notifyAppTransitionCancelledLocked(I)V
+HPLcom/android/server/wm/AppTransition;->notifyAppTransitionCancelledLocked(I)V
 HSPLcom/android/server/wm/AppTransition;->notifyAppTransitionFinishedLocked(Landroid/os/IBinder;)V
 HSPLcom/android/server/wm/AppTransition;->notifyAppTransitionPendingLocked()V
 HSPLcom/android/server/wm/AppTransition;->notifyAppTransitionStartingLocked(IJJJ)I
+PLcom/android/server/wm/AppTransition;->notifyAppTransitionTimeoutLocked()V
 PLcom/android/server/wm/AppTransition;->overridePendingAppTransition(Ljava/lang/String;IILandroid/os/IRemoteCallback;)V
 PLcom/android/server/wm/AppTransition;->overridePendingAppTransitionClipReveal(IIII)V
 PLcom/android/server/wm/AppTransition;->overridePendingAppTransitionMultiThumb([Landroid/view/AppTransitionAnimationSpec;Landroid/os/IRemoteCallback;Landroid/os/IRemoteCallback;Z)V
@@ -36202,6 +39248,7 @@
 HSPLcom/android/server/wm/AppTransition;->removeAppTransitionTimeoutCallbacks()V
 HSPLcom/android/server/wm/AppTransition;->setAppTransition(II)V
 HSPLcom/android/server/wm/AppTransition;->setAppTransitionState(I)V
+PLcom/android/server/wm/AppTransition;->setCurrentUser(I)V
 HSPLcom/android/server/wm/AppTransition;->setIdle()V
 HSPLcom/android/server/wm/AppTransition;->setLastAppTransition(ILcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/AppTransition;->setReady()V
@@ -36220,7 +39267,9 @@
 HSPLcom/android/server/wm/AppTransitionController;->findAnimLayoutParamsToken(ILandroid/util/ArraySet;)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/AppTransitionController;->getAnimLp(Lcom/android/server/wm/ActivityRecord;)Landroid/view/WindowManager$LayoutParams;
 HPLcom/android/server/wm/AppTransitionController;->getAnimationTargets(Landroid/util/ArraySet;Landroid/util/ArraySet;Z)Landroid/util/ArraySet;
+PLcom/android/server/wm/AppTransitionController;->getAppFromContainer(Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/AppTransitionController;->getRemoteAnimationOverride(Lcom/android/server/wm/ActivityRecord;ILandroid/util/ArraySet;)Landroid/view/RemoteAnimationAdapter;
+PLcom/android/server/wm/AppTransitionController;->getRemoteAnimationOverride(Lcom/android/server/wm/WindowContainer;ILandroid/util/ArraySet;)Landroid/view/RemoteAnimationAdapter;
 HSPLcom/android/server/wm/AppTransitionController;->getTopApp(Landroid/util/ArraySet;Z)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/AppTransitionController;->handleAppTransitionReady()V
 HSPLcom/android/server/wm/AppTransitionController;->handleChangingApps(I)V
@@ -36252,7 +39301,7 @@
 HSPLcom/android/server/wm/AppWarnings;->access$300(Lcom/android/server/wm/AppWarnings;Ljava/lang/String;)V
 PLcom/android/server/wm/AppWarnings;->access$400(Lcom/android/server/wm/AppWarnings;Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/AppWarnings;->access$500(Lcom/android/server/wm/AppWarnings;)V
-PLcom/android/server/wm/AppWarnings;->getPackageFlags(Ljava/lang/String;)I
+HPLcom/android/server/wm/AppWarnings;->getPackageFlags(Ljava/lang/String;)I
 PLcom/android/server/wm/AppWarnings;->hasPackageFlag(Ljava/lang/String;I)Z
 HSPLcom/android/server/wm/AppWarnings;->hideDialogsForPackageUiThread(Ljava/lang/String;)V
 HSPLcom/android/server/wm/AppWarnings;->hideUnsupportedDisplaySizeDialogUiThread()V
@@ -36498,14 +39547,30 @@
 HPLcom/android/server/wm/DisplayArea;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/wm/DisplayArea;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
 HSPLcom/android/server/wm/DisplayArea;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/DisplayArea;->toString()Ljava/lang/String;
 PLcom/android/server/wm/DisplayAreaPolicy$1;-><clinit>()V
 HSPLcom/android/server/wm/DisplayAreaPolicy$Default$Provider;-><init>()V
 HSPLcom/android/server/wm/DisplayAreaPolicy$Default$Provider;->instantiate(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayArea$Root;Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayContent$TaskContainers;)Lcom/android/server/wm/DisplayAreaPolicy;
 HSPLcom/android/server/wm/DisplayAreaPolicy$Default;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayArea$Root;Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayContent$TaskContainers;)V
 HPLcom/android/server/wm/DisplayAreaPolicy$Default;->addWindow(Lcom/android/server/wm/WindowToken;)V
 HSPLcom/android/server/wm/DisplayAreaPolicy$Default;->attachDisplayAreas()V
+HSPLcom/android/server/wm/DisplayAreaPolicy$DefaultProvider;-><init>()V
+HSPLcom/android/server/wm/DisplayAreaPolicy$DefaultProvider;->instantiate(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayArea$Root;Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayContent$TaskContainers;)Lcom/android/server/wm/DisplayAreaPolicy;
 HSPLcom/android/server/wm/DisplayAreaPolicy$Provider;->fromResources(Landroid/content/res/Resources;)Lcom/android/server/wm/DisplayAreaPolicy$Provider;
+HSPLcom/android/server/wm/DisplayAreaPolicy;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayArea$Root;Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayArea;)V
 HSPLcom/android/server/wm/DisplayAreaPolicy;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayArea$Root;Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayContent$TaskContainers;)V
+HSPLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;-><init>(Lcom/android/server/wm/DisplayAreaPolicyBuilder$Feature;ILcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;)V
+HSPLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;->computeMaxLayer()I
+HSPLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;->createArea(Lcom/android/server/wm/DisplayArea;[Lcom/android/server/wm/DisplayArea$Tokens;)Lcom/android/server/wm/DisplayArea;
+HSPLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;->instantiateChildren(Lcom/android/server/wm/DisplayArea;[Lcom/android/server/wm/DisplayArea$Tokens;ILjava/util/Map;)V
+HSPLcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;->lambda$instantiateChildren$0(Lcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;)I
+HSPLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayArea$Root;Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayArea;Ljava/util/ArrayList;)V
+PLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;->addWindow(Lcom/android/server/wm/WindowToken;)V
+HSPLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;->attachDisplayAreas()V
+PLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;->findAreaForToken(Lcom/android/server/wm/WindowToken;)Lcom/android/server/wm/DisplayArea$Tokens;
+HSPLcom/android/server/wm/DisplayAreaPolicyBuilder$Result;->typeOfLayer(Lcom/android/server/policy/WindowManagerPolicy;I)I
+HSPLcom/android/server/wm/DisplayAreaPolicyBuilder;-><init>()V
+HSPLcom/android/server/wm/DisplayAreaPolicyBuilder;->build(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayArea$Root;Lcom/android/server/wm/DisplayArea;Lcom/android/server/wm/DisplayArea;)Lcom/android/server/wm/DisplayAreaPolicyBuilder$Result;
 HSPLcom/android/server/wm/DisplayContent$AboveAppWindowContainers;-><init>(Lcom/android/server/wm/DisplayContent;Ljava/lang/String;Lcom/android/server/wm/WindowManagerService;)V
 HSPLcom/android/server/wm/DisplayContent$AboveAppWindowContainers;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/wm/DisplayContent$AboveAppWindowContainers;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;)V
@@ -36535,6 +39600,11 @@
 HPLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->lambda$new$1$DisplayContent$NonAppWindowContainers(Lcom/android/server/wm/WindowState;)Z
 HPLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->lambda$new$1(Lcom/android/server/wm/WindowState;)Z
 HSPLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->prepareSurfaces()V
+PLcom/android/server/wm/DisplayContent$RemoteInsetsControlTarget;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/view/IDisplayWindowInsetsController;)V
+PLcom/android/server/wm/DisplayContent$RemoteInsetsControlTarget;->hideInsets(IZ)V
+HPLcom/android/server/wm/DisplayContent$RemoteInsetsControlTarget;->notifyInsetsChanged()V
+HPLcom/android/server/wm/DisplayContent$RemoteInsetsControlTarget;->notifyInsetsControlChanged()V
+PLcom/android/server/wm/DisplayContent$RemoteInsetsControlTarget;->showInsets(IZ)V
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowManagerService;)V
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->addChild(Lcom/android/server/wm/ActivityStack;I)V
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->addStackReferenceIfNeeded(Lcom/android/server/wm/ActivityStack;)V
@@ -36560,7 +39630,7 @@
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->onStackWindowingModeChanged(Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->positionChildAt(ILcom/android/server/wm/ActivityStack;Z)V
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
-PLcom/android/server/wm/DisplayContent$TaskContainers;->removeChild(Lcom/android/server/wm/ActivityStack;)V
+HPLcom/android/server/wm/DisplayContent$TaskContainers;->removeChild(Lcom/android/server/wm/ActivityStack;)V
 HPLcom/android/server/wm/DisplayContent$TaskContainers;->removeChild(Lcom/android/server/wm/WindowContainer;)V
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->removeExistingAppTokensIfPossible()V
 HSPLcom/android/server/wm/DisplayContent$TaskContainers;->removeStackReferenceIfNeeded(Lcom/android/server/wm/ActivityStack;)V
@@ -36631,7 +39701,9 @@
 PLcom/android/server/wm/DisplayContent;->access$802(Lcom/android/server/wm/DisplayContent;I)I
 HSPLcom/android/server/wm/DisplayContent;->access$900(Lcom/android/server/wm/DisplayContent;)I
 HSPLcom/android/server/wm/DisplayContent;->access$902(Lcom/android/server/wm/DisplayContent;I)I
+PLcom/android/server/wm/DisplayContent;->addShellRoot(Landroid/view/IWindow;I)Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/DisplayContent;->addStack(Lcom/android/server/wm/ActivityStack;I)V
+PLcom/android/server/wm/DisplayContent;->addTile(Lcom/android/server/wm/TaskTile;)V
 HPLcom/android/server/wm/DisplayContent;->addToGlobalAndConsumeLimit(Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Rect;ILcom/android/server/wm/WindowState;I)I
 HSPLcom/android/server/wm/DisplayContent;->addWindowToken(Landroid/os/IBinder;Lcom/android/server/wm/WindowToken;)V
 HSPLcom/android/server/wm/DisplayContent;->adjustDisplaySizeRanges(Landroid/view/DisplayInfo;IIII)V
@@ -36662,6 +39734,7 @@
 HPLcom/android/server/wm/DisplayContent;->computeImeParent()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/DisplayContent;->computeImeTarget(Z)Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/DisplayContent;->computeImeTargetIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
+HSPLcom/android/server/wm/DisplayContent;->computeScreenAppConfiguration(Landroid/content/res/Configuration;IIIILandroid/view/DisplayCutout;)V
 HSPLcom/android/server/wm/DisplayContent;->computeScreenConfiguration(Landroid/content/res/Configuration;)V
 HSPLcom/android/server/wm/DisplayContent;->computeSizeRangesAndScreenLayout(Landroid/view/DisplayInfo;ZIIIFLandroid/content/res/Configuration;)V
 HSPLcom/android/server/wm/DisplayContent;->configureDisplayPolicy()V
@@ -36676,6 +39749,7 @@
 HSPLcom/android/server/wm/DisplayContent;->createStackUnchecked(IIIZLandroid/content/pm/ActivityInfo;Landroid/content/Intent;)Lcom/android/server/wm/ActivityStack;
 PLcom/android/server/wm/DisplayContent;->deferUpdateImeTarget()V
 HPLcom/android/server/wm/DisplayContent;->deltaRotation(II)I
+PLcom/android/server/wm/DisplayContent;->destroyLeakedSurfaces()Z
 HSPLcom/android/server/wm/DisplayContent;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
 HPLcom/android/server/wm/DisplayContent;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
 HPLcom/android/server/wm/DisplayContent;->dumpDebugInner(Landroid/util/proto/ProtoOutputStream;JI)V
@@ -36704,10 +39778,12 @@
 PLcom/android/server/wm/DisplayContent;->getHomeActivity()Lcom/android/server/wm/ActivityRecord;
 HPLcom/android/server/wm/DisplayContent;->getHomeActivityForUser(I)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/DisplayContent;->getHomeStack()Lcom/android/server/wm/ActivityStack;
+PLcom/android/server/wm/DisplayContent;->getImeFallback()Lcom/android/server/wm/WindowState;
+HPLcom/android/server/wm/DisplayContent;->getImeHostOrFallback(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/DisplayContent;->getIndexOf(Lcom/android/server/wm/ActivityStack;)I
 HSPLcom/android/server/wm/DisplayContent;->getInputMonitor()Lcom/android/server/wm/InputMonitor;
 HSPLcom/android/server/wm/DisplayContent;->getInsetsPolicy()Lcom/android/server/wm/InsetsPolicy;
-PLcom/android/server/wm/DisplayContent;->getInsetsStateController()Lcom/android/server/wm/InsetsStateController;
+HSPLcom/android/server/wm/DisplayContent;->getInsetsStateController()Lcom/android/server/wm/InsetsStateController;
 HSPLcom/android/server/wm/DisplayContent;->getLastFocusedStack()Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent;->getLastHasContent()Z
 HSPLcom/android/server/wm/DisplayContent;->getLastOrientation()I
@@ -36719,6 +39795,7 @@
 PLcom/android/server/wm/DisplayContent;->getNaturalOrientation()I
 HPLcom/android/server/wm/DisplayContent;->getNextFocusableStack(Lcom/android/server/wm/ActivityStack;Z)Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent;->getNextStackId()I
+PLcom/android/server/wm/DisplayContent;->getOrCreateRootHomeTask()Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent;->getOrCreateStack(IIZ)Lcom/android/server/wm/ActivityStack;
 PLcom/android/server/wm/DisplayContent;->getOrCreateStack(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;IZ)Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/DisplayContent;->getOrientation()I
@@ -36754,6 +39831,7 @@
 HPLcom/android/server/wm/DisplayContent;->getWindowingLayer()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/DisplayContent;->handleActivitySizeCompatModeIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/DisplayContent;->handleAnimatingStoppedAndTransition()V
+HSPLcom/android/server/wm/DisplayContent;->handleTopActivityLaunchingInDifferentOrientation(Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/DisplayContent;->handlesOrientationChangeFromDescendant()Z
 HSPLcom/android/server/wm/DisplayContent;->hasAccess(I)Z
 HPLcom/android/server/wm/DisplayContent;->hasAlertWindowSurfaces()Z
@@ -36763,6 +39841,7 @@
 HSPLcom/android/server/wm/DisplayContent;->hasSplitScreenPrimaryStack()Z
 HSPLcom/android/server/wm/DisplayContent;->hasSplitScreenPrimaryTask()Z
 PLcom/android/server/wm/DisplayContent;->hideTransientBars()V
+PLcom/android/server/wm/DisplayContent;->ignoreRotationForApps()Z
 HSPLcom/android/server/wm/DisplayContent;->initializeDisplayBaseInfo()V
 PLcom/android/server/wm/DisplayContent;->isAnyNonToastWindowVisibleForPid(I)Z
 PLcom/android/server/wm/DisplayContent;->isHomeActivityForUser(Lcom/android/server/wm/ActivityRecord;I)Z
@@ -36798,12 +39877,15 @@
 PLcom/android/server/wm/DisplayContent;->lambda$canAddToastWindowForUid$13(ILcom/android/server/wm/WindowState;)Z
 HPLcom/android/server/wm/DisplayContent;->lambda$canAddToastWindowForUid$14(ILcom/android/server/wm/WindowState;)Z
 PLcom/android/server/wm/DisplayContent;->lambda$canAddToastWindowForUid$15(ILcom/android/server/wm/WindowState;)Z
+PLcom/android/server/wm/DisplayContent;->lambda$destroyLeakedSurfaces$15$DisplayContent(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/DisplayContent;->lambda$dumpWindowAnimators$16(Ljava/io/PrintWriter;Ljava/lang/String;[ILcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/DisplayContent;->lambda$dumpWindowAnimators$17(Ljava/io/PrintWriter;Ljava/lang/String;[ILcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/DisplayContent;->lambda$fiC19lMy-d_-rvza7hhOSw6bOM8(Lcom/android/server/wm/DisplayContent;Landroid/view/DisplayCutout;I)Lcom/android/server/wm/utils/WmDisplayCutout;
+HPLcom/android/server/wm/DisplayContent;->lambda$getTouchableWinAtPointLocked$12$DisplayContent(IILcom/android/server/wm/WindowState;)Z
 HPLcom/android/server/wm/DisplayContent;->lambda$getTouchableWinAtPointLocked$13$DisplayContent(IILcom/android/server/wm/WindowState;)Z
 HPLcom/android/server/wm/DisplayContent;->lambda$hasSecureWindowOnScreen$19(Lcom/android/server/wm/WindowState;)Z
 HPLcom/android/server/wm/DisplayContent;->lambda$hasSecureWindowOnScreen$20(Lcom/android/server/wm/WindowState;)Z
+PLcom/android/server/wm/DisplayContent;->lambda$new$0$DisplayContent()V
 PLcom/android/server/wm/DisplayContent;->lambda$new$0$DisplayContent(Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/DisplayContent;->lambda$new$1$DisplayContent(Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/DisplayContent;->lambda$new$2$DisplayContent(Lcom/android/server/wm/WindowState;)V
@@ -36895,6 +39977,7 @@
 HSPLcom/android/server/wm/DisplayContent;->removeExistingTokensIfPossible()V
 PLcom/android/server/wm/DisplayContent;->removeIfPossible()V
 HPLcom/android/server/wm/DisplayContent;->removeImmediately()V
+PLcom/android/server/wm/DisplayContent;->removeShellRoot(I)V
 PLcom/android/server/wm/DisplayContent;->removeStacksInWindowingModes([I)V
 HPLcom/android/server/wm/DisplayContent;->removeWindowToken(Landroid/os/IBinder;)Lcom/android/server/wm/WindowToken;
 PLcom/android/server/wm/DisplayContent;->reparentDisplayContent(Lcom/android/server/wm/WindowState;Landroid/view/SurfaceControl;)V
@@ -36902,6 +39985,8 @@
 HPLcom/android/server/wm/DisplayContent;->resolveWindowingMode(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;I)I
 PLcom/android/server/wm/DisplayContent;->rotateBounds(IILandroid/graphics/Rect;)V
 HPLcom/android/server/wm/DisplayContent;->rotateBounds(Landroid/graphics/Rect;IILandroid/graphics/Rect;)V
+PLcom/android/server/wm/DisplayContent;->rotateInDifferentOrientationIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/DisplayContent;->rotationForActivityInDifferentOrientation(Lcom/android/server/wm/ActivityRecord;)I
 HSPLcom/android/server/wm/DisplayContent;->scheduleToastWindowsTimeoutIfNeededLocked(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/DisplayContent;->screenshotDisplayLocked(Landroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
 HSPLcom/android/server/wm/DisplayContent;->sendNewConfiguration()V
@@ -36917,6 +40002,7 @@
 PLcom/android/server/wm/DisplayContent;->setInsetProvider(ILcom/android/server/wm/WindowState;Lcom/android/internal/util/function/TriConsumer;Lcom/android/internal/util/function/TriConsumer;)V
 HSPLcom/android/server/wm/DisplayContent;->setIsSleeping(Z)V
 HSPLcom/android/server/wm/DisplayContent;->setLayoutNeeded()V
+PLcom/android/server/wm/DisplayContent;->setRemoteInsetsController(Landroid/view/IDisplayWindowInsetsController;)V
 PLcom/android/server/wm/DisplayContent;->setRotationAnimation(Lcom/android/server/wm/ScreenRotationAnimation;)V
 HSPLcom/android/server/wm/DisplayContent;->setStackOnDisplay(Lcom/android/server/wm/ActivityStack;I)V
 HSPLcom/android/server/wm/DisplayContent;->setWindowingMode(I)V
@@ -36926,6 +40012,7 @@
 HPLcom/android/server/wm/DisplayContent;->startKeyguardExitOnNonAppWindows(ZZZ)V
 HSPLcom/android/server/wm/DisplayContent;->statusBarVisibilityChanged(I)V
 HPLcom/android/server/wm/DisplayContent;->supportsSystemDecorations()Z
+PLcom/android/server/wm/DisplayContent;->switchUser(I)V
 PLcom/android/server/wm/DisplayContent;->toString()Ljava/lang/String;
 HSPLcom/android/server/wm/DisplayContent;->topRunningActivity()Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/DisplayContent;->topRunningActivity(Z)Lcom/android/server/wm/ActivityRecord;
@@ -36939,11 +40026,14 @@
 HSPLcom/android/server/wm/DisplayContent;->updateDisplayOverrideConfigurationLocked()Z
 HSPLcom/android/server/wm/DisplayContent;->updateDisplayOverrideConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityTaskManagerService$UpdateConfigurationResult;)Z
 HSPLcom/android/server/wm/DisplayContent;->updateFocusedWindowLocked(IZI)Z
+HPLcom/android/server/wm/DisplayContent;->updateImeControlTarget(Lcom/android/server/wm/InsetsControlTarget;)V
 HPLcom/android/server/wm/DisplayContent;->updateImeControlTarget(Lcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/DisplayContent;->updateImeParent()V
+HSPLcom/android/server/wm/DisplayContent;->updateLaunchTile(I)Lcom/android/server/wm/TaskTile;
 PLcom/android/server/wm/DisplayContent;->updateLocation(Lcom/android/server/wm/WindowState;II)V
 HSPLcom/android/server/wm/DisplayContent;->updateOrientation()Z
 HSPLcom/android/server/wm/DisplayContent;->updateOrientation(Landroid/content/res/Configuration;Landroid/os/IBinder;Z)Landroid/content/res/Configuration;
+HSPLcom/android/server/wm/DisplayContent;->updateOrientation(Z)Z
 HSPLcom/android/server/wm/DisplayContent;->updateRotationUnchecked()Z
 HSPLcom/android/server/wm/DisplayContent;->updateStatusBarVisibilityLocked(I)Z
 HSPLcom/android/server/wm/DisplayContent;->updateSystemGestureExclusion()Z
@@ -37015,7 +40105,7 @@
 HSPLcom/android/server/wm/DisplayPolicy;->beginPostLayoutPolicyLw()V
 HSPLcom/android/server/wm/DisplayPolicy;->canHideNavigationBar()Z
 HPLcom/android/server/wm/DisplayPolicy;->canReceiveInput(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayPolicy;->canToastShowWhenLocked(I)Z
+HPLcom/android/server/wm/DisplayPolicy;->canToastShowWhenLocked(I)Z
 HSPLcom/android/server/wm/DisplayPolicy;->chooseNavigationColorWindowLw(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;I)Lcom/android/server/wm/WindowState;
 HPLcom/android/server/wm/DisplayPolicy;->clearClearableFlagsLw()V
 HSPLcom/android/server/wm/DisplayPolicy;->configureNavBarOpacity(IZZZZZ)I
@@ -37039,6 +40129,7 @@
 PLcom/android/server/wm/DisplayPolicy;->getForwardedInsets()Landroid/graphics/Insets;
 HSPLcom/android/server/wm/DisplayPolicy;->getImpliedSysUiFlagsForLayout(Landroid/view/WindowManager$LayoutParams;)I
 HSPLcom/android/server/wm/DisplayPolicy;->getInsetsPolicy()Lcom/android/server/wm/InsetsPolicy;
+HPLcom/android/server/wm/DisplayPolicy;->getLayoutHint(Landroid/view/WindowManager$LayoutParams;Lcom/android/server/wm/WindowToken;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;)Z
 HSPLcom/android/server/wm/DisplayPolicy;->getLayoutHintLw(Landroid/view/WindowManager$LayoutParams;Landroid/graphics/Rect;Lcom/android/server/wm/DisplayFrames;ZLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;)Z
 HSPLcom/android/server/wm/DisplayPolicy;->getLidState()I
 PLcom/android/server/wm/DisplayPolicy;->getNavBarPosition()I
@@ -37060,12 +40151,14 @@
 HSPLcom/android/server/wm/DisplayPolicy;->getTransientState(II)Landroid/util/Pair;
 HSPLcom/android/server/wm/DisplayPolicy;->getWindowCornerRadius()F
 HSPLcom/android/server/wm/DisplayPolicy;->hasNavigationBar()Z
+PLcom/android/server/wm/DisplayPolicy;->hasSideGestures()Z
 HSPLcom/android/server/wm/DisplayPolicy;->hasStatusBar()Z
 HSPLcom/android/server/wm/DisplayPolicy;->isAwake()Z
 HPLcom/android/server/wm/DisplayPolicy;->isCarDockEnablesAccelerometer()Z
 HPLcom/android/server/wm/DisplayPolicy;->isDeskDockEnablesAccelerometer()Z
 HPLcom/android/server/wm/DisplayPolicy;->isHdmiPlugged()Z
 HSPLcom/android/server/wm/DisplayPolicy;->isImmersiveMode(I)Z
+HPLcom/android/server/wm/DisplayPolicy;->isImmersiveMode(Lcom/android/server/wm/WindowState;)Z
 HSPLcom/android/server/wm/DisplayPolicy;->isKeyguardDrawComplete()Z
 HSPLcom/android/server/wm/DisplayPolicy;->isKeyguardOccluded()Z
 HSPLcom/android/server/wm/DisplayPolicy;->isKeyguardShowing()Z
@@ -37093,7 +40186,7 @@
 HPLcom/android/server/wm/DisplayPolicy;->lambda$canToastShowWhenLocked$2(ILcom/android/server/wm/WindowState;)Z
 PLcom/android/server/wm/DisplayPolicy;->lambda$notifyDisplayReady$10$DisplayPolicy()V
 PLcom/android/server/wm/DisplayPolicy;->lambda$notifyDisplayReady$11$DisplayPolicy()V
-PLcom/android/server/wm/DisplayPolicy;->lambda$notifyDisplayReady$13$DisplayPolicy()V
+HPLcom/android/server/wm/DisplayPolicy;->lambda$notifyDisplayReady$13$DisplayPolicy()V
 HPLcom/android/server/wm/DisplayPolicy;->lambda$notifyDisplayReady$9$DisplayPolicy()V
 HSPLcom/android/server/wm/DisplayPolicy;->lambda$updateSystemUiVisibilityLw$10$DisplayPolicy(ILjava/lang/String;Landroid/util/Pair;I[Lcom/android/internal/view/AppearanceRegion;ZZZ)V
 HSPLcom/android/server/wm/DisplayPolicy;->lambda$updateSystemUiVisibilityLw$11$DisplayPolicy(ILjava/lang/String;Landroid/util/Pair;I[Lcom/android/internal/view/AppearanceRegion;ZZZ)V
@@ -37132,12 +40225,15 @@
 HSPLcom/android/server/wm/DisplayPolicy;->setNavBarTransparentFlag(I)I
 PLcom/android/server/wm/DisplayPolicy;->setPointerLocationEnabled(Z)V
 PLcom/android/server/wm/DisplayPolicy;->supportsPointerLocation()Z
+PLcom/android/server/wm/DisplayPolicy;->switchUser()V
 HSPLcom/android/server/wm/DisplayPolicy;->systemReady()V
 PLcom/android/server/wm/DisplayPolicy;->takeScreenshot(I)V
 HPLcom/android/server/wm/DisplayPolicy;->topAppHidesStatusBar()Z
 HSPLcom/android/server/wm/DisplayPolicy;->updateConfigurationAndScreenSizeDependentBehaviors()V
 HSPLcom/android/server/wm/DisplayPolicy;->updateCurrentUserResources()V
 PLcom/android/server/wm/DisplayPolicy;->updateDreamingSleepToken(Z)V
+HSPLcom/android/server/wm/DisplayPolicy;->updateInsetsStateForDisplayCutout(Lcom/android/server/wm/DisplayFrames;Landroid/view/InsetsState;)V
+HPLcom/android/server/wm/DisplayPolicy;->updateLightNavigationBarAppearanceLw(ILcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)I
 HSPLcom/android/server/wm/DisplayPolicy;->updateLightNavigationBarLw(ILcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)I
 HSPLcom/android/server/wm/DisplayPolicy;->updateLightStatusBarAppearanceLw(ILcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)I
 HSPLcom/android/server/wm/DisplayPolicy;->updateSystemBarsLw(Lcom/android/server/wm/WindowState;II)Landroid/util/Pair;
@@ -37145,6 +40241,7 @@
 HSPLcom/android/server/wm/DisplayPolicy;->updateTransientState(IIIILandroid/util/IntArray;Landroid/util/IntArray;)V
 HSPLcom/android/server/wm/DisplayPolicy;->updateWindowSleepToken()V
 HSPLcom/android/server/wm/DisplayPolicy;->validateAddingWindowLw(Landroid/view/WindowManager$LayoutParams;)I
+HPLcom/android/server/wm/DisplayPolicy;->validateAddingWindowLw(Landroid/view/WindowManager$LayoutParams;II)I
 HSPLcom/android/server/wm/DisplayRotation$1;-><init>(Lcom/android/server/wm/DisplayRotation;)V
 PLcom/android/server/wm/DisplayRotation$1;->run()V
 HSPLcom/android/server/wm/DisplayRotation$2;-><init>(Lcom/android/server/wm/DisplayRotation;)V
@@ -37253,9 +40350,11 @@
 HSPLcom/android/server/wm/DisplayWindowSettings;->getWindowingModeLocked(Lcom/android/server/wm/DisplayWindowSettings$Entry;I)I
 HSPLcom/android/server/wm/DisplayWindowSettings;->readSettings()V
 PLcom/android/server/wm/DisplayWindowSettings;->setForcedDensity(Lcom/android/server/wm/DisplayContent;II)V
+PLcom/android/server/wm/DisplayWindowSettings;->shouldShowImeLocked(Lcom/android/server/wm/DisplayContent;)Z
 HPLcom/android/server/wm/DisplayWindowSettings;->shouldShowSystemDecorsLocked(Lcom/android/server/wm/DisplayContent;)Z
 HSPLcom/android/server/wm/DisplayWindowSettings;->updateSettingsForDisplay(Lcom/android/server/wm/DisplayContent;)Z
 HSPLcom/android/server/wm/DockedStackDividerController;-><clinit>()V
+HSPLcom/android/server/wm/DockedStackDividerController;-><init>(Lcom/android/server/wm/DisplayContent;)V
 HSPLcom/android/server/wm/DockedStackDividerController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
 HSPLcom/android/server/wm/DockedStackDividerController;->animate(J)Z
 HPLcom/android/server/wm/DockedStackDividerController;->animateForIme(J)Z
@@ -37357,13 +40456,18 @@
 PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;-><init>(Landroid/view/IWindow;Lcom/android/server/wm/WindowState;II)V
 PLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->getApplicationHandle()Landroid/view/InputApplicationHandle;
 HPLcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;->getName()Ljava/lang/String;
+PLcom/android/server/wm/EmbeddedWindowController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
 HSPLcom/android/server/wm/EmbeddedWindowController;-><init>(Ljava/lang/Object;)V
 PLcom/android/server/wm/EmbeddedWindowController;->add(Landroid/os/IBinder;Landroid/view/IWindow;Lcom/android/server/wm/WindowState;II)V
 HPLcom/android/server/wm/EmbeddedWindowController;->add(Landroid/os/IBinder;Lcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;)V
+PLcom/android/server/wm/EmbeddedWindowController;->get(Landroid/os/IBinder;)Lcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;
 PLcom/android/server/wm/EmbeddedWindowController;->getHostWindow(Landroid/os/IBinder;)Lcom/android/server/wm/WindowState;
 PLcom/android/server/wm/EmbeddedWindowController;->lambda$add$0$EmbeddedWindowController(Landroid/os/IBinder;)V
+HPLcom/android/server/wm/EmbeddedWindowController;->onActivityRemoved(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/EmbeddedWindowController;->onWindowRemoved(Lcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/EmbeddedWindowController;->remove(Landroid/view/IWindow;)V
 HPLcom/android/server/wm/EmbeddedWindowController;->removeWindowsWithHost(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/EmbeddedWindowController;->updateProcessController(Lcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;)V
 HSPLcom/android/server/wm/EnsureActivitiesVisibleHelper;-><init>(Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->lambda$Bbb3nMFa3F8er_OBuKA7-SpeSKo(Lcom/android/server/wm/EnsureActivitiesVisibleHelper;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Z)V
 HPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->lambda$uAeEWwx5d0xk6FKOvvR9CXZS6Bg(Lcom/android/server/wm/EnsureActivitiesVisibleHelper;Lcom/android/server/wm/ActivityRecord;Z)V
@@ -37379,6 +40483,7 @@
 HPLcom/android/server/wm/EventLogTags;->writeWmFailedToPause(IILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/wm/EventLogTags;->writeWmFinishActivity(IIILjava/lang/String;Ljava/lang/String;)V
 HPLcom/android/server/wm/EventLogTags;->writeWmFocusedStack(IIIILjava/lang/String;)V
+PLcom/android/server/wm/EventLogTags;->writeWmNoSurfaceMemory(Ljava/lang/String;ILjava/lang/String;)V
 HSPLcom/android/server/wm/EventLogTags;->writeWmPauseActivity(IILjava/lang/String;Ljava/lang/String;)V
 PLcom/android/server/wm/EventLogTags;->writeWmRelaunchActivity(IIILjava/lang/String;)V
 HPLcom/android/server/wm/EventLogTags;->writeWmRelaunchResumeActivity(IIILjava/lang/String;)V
@@ -37403,9 +40508,13 @@
 HSPLcom/android/server/wm/HighRefreshRateBlacklist;->isBlacklisted(Ljava/lang/String;)Z
 HSPLcom/android/server/wm/HighRefreshRateBlacklist;->updateBlacklist(Ljava/lang/String;)V
 HSPLcom/android/server/wm/ImeInsetsSourceProvider;-><init>(Landroid/view/InsetsSource;Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/ImeInsetsSourceProvider;->abortShowImePostLayout()V
 HSPLcom/android/server/wm/ImeInsetsSourceProvider;->checkShowImePostLayout()V
+HPLcom/android/server/wm/ImeInsetsSourceProvider;->isImeTargetFromDisplayContentAndImeSame()Z
+HPLcom/android/server/wm/ImeInsetsSourceProvider;->lambda$scheduleShowImePostLayout$0$ImeInsetsSourceProvider()V
 HSPLcom/android/server/wm/ImeInsetsSourceProvider;->onPostInsetsDispatched()V
 HSPLcom/android/server/wm/ImeInsetsSourceProvider;->onPostLayout()V
+HPLcom/android/server/wm/ImeInsetsSourceProvider;->scheduleShowImePostLayout(Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/ImmersiveModeConfirmation$1;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation;)V
 PLcom/android/server/wm/ImmersiveModeConfirmation$1;->run()V
 PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$1;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;)V
@@ -37432,6 +40541,7 @@
 PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;->access$700(Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;)Landroid/graphics/drawable/ColorDrawable;
 PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;->onAttachedToWindow()V
 PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;->onDetachedFromWindow()V
+PLcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;->onTouchEvent(Landroid/view/MotionEvent;)Z
 HSPLcom/android/server/wm/ImmersiveModeConfirmation$H;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation;Landroid/os/Looper;)V
 PLcom/android/server/wm/ImmersiveModeConfirmation$H;->handleMessage(Landroid/os/Message;)V
 HSPLcom/android/server/wm/ImmersiveModeConfirmation;-><init>(Landroid/content/Context;Landroid/os/Looper;Z)V
@@ -37500,11 +40610,13 @@
 HSPLcom/android/server/wm/InputManagerCallback;->waitForInputDevicesReady(J)Z
 PLcom/android/server/wm/InputMonitor$EventReceiverInputConsumer;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/InputMonitor;Landroid/os/Looper;Ljava/lang/String;Landroid/view/InputEventReceiver$Factory;ILandroid/os/UserHandle;I)V
 PLcom/android/server/wm/InputMonitor$EventReceiverInputConsumer;->dismiss()V
+PLcom/android/server/wm/InputMonitor$EventReceiverInputConsumer;->dispose()V
 HSPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;-><init>(Lcom/android/server/wm/InputMonitor;)V
 HSPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;-><init>(Lcom/android/server/wm/InputMonitor;Lcom/android/server/wm/InputMonitor$1;)V
 HSPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->accept(Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->access$700(Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;Z)V
+HSPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->access$800(Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;Z)V
 HSPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->updateInputWindows(Z)V
 HSPLcom/android/server/wm/InputMonitor$UpdateInputWindows;-><init>(Lcom/android/server/wm/InputMonitor;)V
 HSPLcom/android/server/wm/InputMonitor$UpdateInputWindows;-><init>(Lcom/android/server/wm/InputMonitor;Lcom/android/server/wm/InputMonitor$1;)V
@@ -37512,17 +40624,29 @@
 HSPLcom/android/server/wm/InputMonitor;-><init>(Lcom/android/server/wm/WindowManagerService;I)V
 HSPLcom/android/server/wm/InputMonitor;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
 HSPLcom/android/server/wm/InputMonitor;->access$000(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/WindowManagerService;
+HSPLcom/android/server/wm/InputMonitor;->access$100(Lcom/android/server/wm/InputMonitor;)Landroid/view/SurfaceControl$Transaction;
 HSPLcom/android/server/wm/InputMonitor;->access$1000(Lcom/android/server/wm/InputMonitor;)Landroid/graphics/Rect;
 HSPLcom/android/server/wm/InputMonitor;->access$102(Lcom/android/server/wm/InputMonitor;Z)Z
+HSPLcom/android/server/wm/InputMonitor;->access$1100(Lcom/android/server/wm/InputMonitor;)Landroid/graphics/Rect;
 PLcom/android/server/wm/InputMonitor;->access$1100(Lcom/android/server/wm/InputMonitor;)Z
 HSPLcom/android/server/wm/InputMonitor;->access$1102(Lcom/android/server/wm/InputMonitor;Z)Z
 HSPLcom/android/server/wm/InputMonitor;->access$1200(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/DisplayContent;
+PLcom/android/server/wm/InputMonitor;->access$1200(Lcom/android/server/wm/InputMonitor;)Z
+HSPLcom/android/server/wm/InputMonitor;->access$1202(Lcom/android/server/wm/InputMonitor;Z)Z
+HSPLcom/android/server/wm/InputMonitor;->access$1300(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/DisplayContent;
 HSPLcom/android/server/wm/InputMonitor;->access$1300(Lcom/android/server/wm/InputMonitor;)Z
+HSPLcom/android/server/wm/InputMonitor;->access$1400(Lcom/android/server/wm/InputMonitor;)Z
+HSPLcom/android/server/wm/InputMonitor;->access$200(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/WindowManagerService;
 HSPLcom/android/server/wm/InputMonitor;->access$202(Lcom/android/server/wm/InputMonitor;Z)Z
 HSPLcom/android/server/wm/InputMonitor;->access$300(Lcom/android/server/wm/InputMonitor;)Z
+HSPLcom/android/server/wm/InputMonitor;->access$302(Lcom/android/server/wm/InputMonitor;Z)Z
 HSPLcom/android/server/wm/InputMonitor;->access$400(Lcom/android/server/wm/InputMonitor;)Landroid/view/SurfaceControl$Transaction;
+HSPLcom/android/server/wm/InputMonitor;->access$402(Lcom/android/server/wm/InputMonitor;Z)Z
 HSPLcom/android/server/wm/InputMonitor;->access$500(Lcom/android/server/wm/InputMonitor;)I
+HSPLcom/android/server/wm/InputMonitor;->access$500(Lcom/android/server/wm/InputMonitor;)Z
+HSPLcom/android/server/wm/InputMonitor;->access$600(Lcom/android/server/wm/InputMonitor;)I
 HSPLcom/android/server/wm/InputMonitor;->access$600(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;
+HSPLcom/android/server/wm/InputMonitor;->access$700(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;
 PLcom/android/server/wm/InputMonitor;->addInputConsumer(Ljava/lang/String;Lcom/android/server/wm/InputConsumerImpl;)V
 PLcom/android/server/wm/InputMonitor;->createInputConsumer(Landroid/os/IBinder;Ljava/lang/String;Landroid/view/InputChannel;ILandroid/os/UserHandle;)V
 PLcom/android/server/wm/InputMonitor;->createInputConsumer(Landroid/os/Looper;Ljava/lang/String;Landroid/view/InputEventReceiver$Factory;)Lcom/android/server/policy/WindowManagerPolicy$InputConsumer;
@@ -37542,17 +40666,43 @@
 HSPLcom/android/server/wm/InputMonitor;->setInputFocusLw(Lcom/android/server/wm/WindowState;Z)V
 HSPLcom/android/server/wm/InputMonitor;->setUpdateInputWindowsNeededLw()V
 HSPLcom/android/server/wm/InputMonitor;->updateInputWindowsLw(Z)V
+PLcom/android/server/wm/InsetsControlTarget;->canShowTransient()Z
+PLcom/android/server/wm/InsetsControlTarget;->getWindow()Lcom/android/server/wm/WindowState;
+PLcom/android/server/wm/InsetsControlTarget;->notifyInsetsControlChanged()V
+PLcom/android/server/wm/InsetsControlTarget;->showInsets(IZ)V
+HSPLcom/android/server/wm/InsetsPolicy$1;-><init>(Lcom/android/server/wm/InsetsPolicy;)V
 HSPLcom/android/server/wm/InsetsPolicy$BarWindow;-><init>(Lcom/android/server/wm/InsetsPolicy;I)V
+PLcom/android/server/wm/InsetsPolicy$BarWindow;->access$000(Lcom/android/server/wm/InsetsPolicy$BarWindow;Z)V
+PLcom/android/server/wm/InsetsPolicy$BarWindow;->access$100(Lcom/android/server/wm/InsetsPolicy$BarWindow;Z)V
+HPLcom/android/server/wm/InsetsPolicy$BarWindow;->setVisible(Z)V
 PLcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks;-><init>(Lcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener;Lcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener;)V
 PLcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks;->access$200(Lcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks;ILandroid/util/SparseArray;Z)V
+PLcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks;->access$600(Lcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks;)Landroid/view/InsetsAnimationControlImpl;
+HPLcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks;->applySurfaceParams([Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V
 PLcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks;->controlAnimationUnchecked(ILandroid/util/SparseArray;Z)V
+HPLcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks;->getState()Landroid/view/InsetsState;
+PLcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks;->lambda$controlAnimationUnchecked$0$InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks(I)V
+HPLcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks;->scheduleApplyChangeInsets()V
+PLcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener$InsetsPolicyAnimationControlCallbacks;->startAnimation(Landroid/view/InsetsAnimationControlImpl;Landroid/view/WindowInsetsAnimationControlListener;ILandroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;I)V
 PLcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener;-><init>(Lcom/android/server/wm/InsetsPolicy;ZLjava/lang/Runnable;)V
+PLcom/android/server/wm/InsetsPolicy$InsetsPolicyAnimationControlListener;->onAnimationFinish()V
 HSPLcom/android/server/wm/InsetsPolicy$TransientControlTarget;-><init>(Lcom/android/server/wm/InsetsPolicy;)V
 HSPLcom/android/server/wm/InsetsPolicy$TransientControlTarget;-><init>(Lcom/android/server/wm/InsetsPolicy;Lcom/android/server/wm/InsetsPolicy$1;)V
+PLcom/android/server/wm/InsetsPolicy$TransientControlTarget;->notifyInsetsControlChanged()V
 HSPLcom/android/server/wm/InsetsPolicy;-><init>(Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/InsetsPolicy;->access$200(Lcom/android/server/wm/InsetsPolicy;)Lcom/android/server/wm/DisplayContent;
+PLcom/android/server/wm/InsetsPolicy;->access$300(Lcom/android/server/wm/InsetsPolicy;)Lcom/android/server/wm/DisplayContent;
+PLcom/android/server/wm/InsetsPolicy;->access$300(Lcom/android/server/wm/InsetsPolicy;)Lcom/android/server/wm/DisplayPolicy;
+PLcom/android/server/wm/InsetsPolicy;->access$400(Lcom/android/server/wm/InsetsPolicy;)Lcom/android/server/wm/DisplayPolicy;
+PLcom/android/server/wm/InsetsPolicy;->access$500(Lcom/android/server/wm/InsetsPolicy;)Z
+PLcom/android/server/wm/InsetsPolicy;->access$700(Lcom/android/server/wm/InsetsPolicy;)Lcom/android/server/wm/WindowState;
+PLcom/android/server/wm/InsetsPolicy;->access$800(Lcom/android/server/wm/InsetsPolicy;)[F
 HSPLcom/android/server/wm/InsetsPolicy;->areSystemBarsForciblyVisible()Z
 HPLcom/android/server/wm/InsetsPolicy;->checkAbortTransient(Lcom/android/server/wm/WindowState;Landroid/view/InsetsState;)V
 PLcom/android/server/wm/InsetsPolicy;->controlAnimationUnchecked(ILandroid/util/SparseArray;ZLjava/lang/Runnable;)V
+PLcom/android/server/wm/InsetsPolicy;->forceShowsNavigationBarTransiently()Z
+PLcom/android/server/wm/InsetsPolicy;->forceShowsStatusBarTransiently()Z
+HPLcom/android/server/wm/InsetsPolicy;->forceShowsSystemBarsForWindowingMode()Z
 HSPLcom/android/server/wm/InsetsPolicy;->getFakeNavControlTarget(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/InsetsControlTarget;
 HSPLcom/android/server/wm/InsetsPolicy;->getFakeStatusControlTarget(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/InsetsControlTarget;
 HSPLcom/android/server/wm/InsetsPolicy;->getInsetsForDispatch(Lcom/android/server/wm/WindowState;)Landroid/view/InsetsState;
@@ -37564,33 +40714,71 @@
 HSPLcom/android/server/wm/InsetsPolicy;->isNavBarForciblyVisible()Z
 HSPLcom/android/server/wm/InsetsPolicy;->isStatusBarForciblyVisible()Z
 HPLcom/android/server/wm/InsetsPolicy;->isTransient(I)Z
+PLcom/android/server/wm/InsetsPolicy;->lambda$hideTransient$1$InsetsPolicy()V
+PLcom/android/server/wm/InsetsPolicy;->lambda$showTransient$0$InsetsPolicy()V
 HPLcom/android/server/wm/InsetsPolicy;->onInsetsModified(Lcom/android/server/wm/WindowState;Landroid/view/InsetsState;)V
 PLcom/android/server/wm/InsetsPolicy;->showTransient(Landroid/util/IntArray;)V
 PLcom/android/server/wm/InsetsPolicy;->startAnimation(Landroid/util/IntArray;ZLjava/lang/Runnable;)V
 HPLcom/android/server/wm/InsetsPolicy;->startAnimation(ZLjava/lang/Runnable;)V
 HSPLcom/android/server/wm/InsetsPolicy;->updateBarControlTarget(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;-><init>(Lcom/android/server/wm/InsetsSourceProvider;)V
+PLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;-><init>(Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/InsetsSourceProvider$1;)V
+PLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->access$100(Lcom/android/server/wm/InsetsSourceProvider$ControlAdapter;)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->getDurationHint()J
+HPLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->onAnimationCancelled(Landroid/view/SurfaceControl;)V
+HPLcom/android/server/wm/InsetsSourceProvider$ControlAdapter;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;ILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
 HSPLcom/android/server/wm/InsetsSourceProvider;-><init>(Landroid/view/InsetsSource;Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/InsetsSourceProvider;->access$200(Lcom/android/server/wm/InsetsSourceProvider;)Lcom/android/server/wm/InsetsSourceProvider$ControlAdapter;
+PLcom/android/server/wm/InsetsSourceProvider;->access$202(Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/InsetsSourceProvider$ControlAdapter;)Lcom/android/server/wm/InsetsSourceProvider$ControlAdapter;
+PLcom/android/server/wm/InsetsSourceProvider;->access$300(Lcom/android/server/wm/InsetsSourceProvider;)Lcom/android/server/wm/InsetsControlTarget;
+PLcom/android/server/wm/InsetsSourceProvider;->access$302(Lcom/android/server/wm/InsetsSourceProvider;Lcom/android/server/wm/InsetsControlTarget;)Lcom/android/server/wm/InsetsControlTarget;
+PLcom/android/server/wm/InsetsSourceProvider;->access$400(Lcom/android/server/wm/InsetsSourceProvider;)Lcom/android/server/wm/InsetsStateController;
+PLcom/android/server/wm/InsetsSourceProvider;->access$500(Lcom/android/server/wm/InsetsSourceProvider;Z)V
+PLcom/android/server/wm/InsetsSourceProvider;->access$602(Lcom/android/server/wm/InsetsSourceProvider;Landroid/view/InsetsSourceControl;)Landroid/view/InsetsSourceControl;
 PLcom/android/server/wm/InsetsSourceProvider;->getControl(Lcom/android/server/wm/InsetsControlTarget;)Landroid/view/InsetsSourceControl;
 PLcom/android/server/wm/InsetsSourceProvider;->getControlTarget()Lcom/android/server/wm/InsetsControlTarget;
+PLcom/android/server/wm/InsetsSourceProvider;->getImeOverrideFrame()Landroid/graphics/Rect;
 HPLcom/android/server/wm/InsetsSourceProvider;->getSource()Landroid/view/InsetsSource;
 HPLcom/android/server/wm/InsetsSourceProvider;->hasWindow()Z
+HPLcom/android/server/wm/InsetsSourceProvider;->isClientVisible()Z
 HPLcom/android/server/wm/InsetsSourceProvider;->isControllable()Z
+PLcom/android/server/wm/InsetsSourceProvider;->onInsetsModified(Lcom/android/server/wm/InsetsControlTarget;Landroid/view/InsetsSource;)Z
 HSPLcom/android/server/wm/InsetsSourceProvider;->onPostLayout()V
+PLcom/android/server/wm/InsetsSourceProvider;->overridesImeFrame()Z
+PLcom/android/server/wm/InsetsSourceProvider;->setClientVisible(Z)V
 HPLcom/android/server/wm/InsetsSourceProvider;->setServerVisible(Z)V
 HPLcom/android/server/wm/InsetsSourceProvider;->setWindow(Lcom/android/server/wm/WindowState;Lcom/android/internal/util/function/TriConsumer;)V
 HPLcom/android/server/wm/InsetsSourceProvider;->setWindow(Lcom/android/server/wm/WindowState;Lcom/android/internal/util/function/TriConsumer;Lcom/android/internal/util/function/TriConsumer;)V
+PLcom/android/server/wm/InsetsSourceProvider;->updateControlForFakeTarget(Lcom/android/server/wm/InsetsControlTarget;)V
+HPLcom/android/server/wm/InsetsSourceProvider;->updateControlForTarget(Lcom/android/server/wm/InsetsControlTarget;Z)V
 HPLcom/android/server/wm/InsetsSourceProvider;->updateSourceFrame()V
 HPLcom/android/server/wm/InsetsSourceProvider;->updateVisibility()V
+HSPLcom/android/server/wm/InsetsStateController$1;-><init>(Lcom/android/server/wm/InsetsStateController;)V
 HSPLcom/android/server/wm/InsetsStateController;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/InsetsStateController;->addToControlMaps(Lcom/android/server/wm/InsetsControlTarget;IZ)V
 HSPLcom/android/server/wm/InsetsStateController;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HPLcom/android/server/wm/InsetsStateController;->getControlsForDispatch(Lcom/android/server/wm/InsetsControlTarget;)[Landroid/view/InsetsSourceControl;
 HSPLcom/android/server/wm/InsetsStateController;->getImeSourceProvider()Lcom/android/server/wm/ImeInsetsSourceProvider;
 HSPLcom/android/server/wm/InsetsStateController;->getInsetsForDispatch(Lcom/android/server/wm/WindowState;)Landroid/view/InsetsState;
+HPLcom/android/server/wm/InsetsStateController;->getInsetsForType(I)Landroid/view/InsetsState;
+PLcom/android/server/wm/InsetsStateController;->getInsetsForWindowMetrics(Landroid/view/WindowManager$LayoutParams;)Landroid/view/InsetsState;
+PLcom/android/server/wm/InsetsStateController;->getInsetsTypeForWindowType(I)I
+HSPLcom/android/server/wm/InsetsStateController;->getRawInsetsState()Landroid/view/InsetsState;
 HSPLcom/android/server/wm/InsetsStateController;->getSourceProvider(I)Lcom/android/server/wm/InsetsSourceProvider;
 PLcom/android/server/wm/InsetsStateController;->isFakeTarget(ILcom/android/server/wm/InsetsControlTarget;)Z
+HPLcom/android/server/wm/InsetsStateController;->lambda$addToControlMaps$3(Lcom/android/server/wm/InsetsControlTarget;)Ljava/util/ArrayList;
+HPLcom/android/server/wm/InsetsStateController;->lambda$addToControlMaps$4(Lcom/android/server/wm/InsetsControlTarget;)Ljava/util/ArrayList;
 HSPLcom/android/server/wm/InsetsStateController;->lambda$getSourceProvider$1$InsetsStateController(Ljava/lang/Integer;)Lcom/android/server/wm/InsetsSourceProvider;
 HSPLcom/android/server/wm/InsetsStateController;->lambda$getSourceProvider$2$InsetsStateController(Ljava/lang/Integer;)Lcom/android/server/wm/InsetsSourceProvider;
 PLcom/android/server/wm/InsetsStateController;->lambda$getSourceProvider$3$InsetsStateController(Ljava/lang/Integer;)Lcom/android/server/wm/InsetsSourceProvider;
 HPLcom/android/server/wm/InsetsStateController;->lambda$new$0(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/InsetsStateController;->lambda$new$1()V
+HPLcom/android/server/wm/InsetsStateController;->lambda$notifyPendingInsetsControlChanged$4$InsetsStateController()V
+HPLcom/android/server/wm/InsetsStateController;->lambda$notifyPendingInsetsControlChanged$5$InsetsStateController()V
+PLcom/android/server/wm/InsetsStateController;->notifyControlChanged(Lcom/android/server/wm/InsetsControlTarget;)V
+PLcom/android/server/wm/InsetsStateController;->notifyControlRevoked(Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsSourceProvider;)V
 HSPLcom/android/server/wm/InsetsStateController;->notifyInsetsChanged()V
 HSPLcom/android/server/wm/InsetsStateController;->notifyPendingInsetsControlChanged()V
 HSPLcom/android/server/wm/InsetsStateController;->onBarControlTargetChanged(Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsControlTarget;Lcom/android/server/wm/InsetsControlTarget;)V
@@ -37601,6 +40789,7 @@
 HPLcom/android/server/wm/InsetsStateController;->onInsetsModified(Lcom/android/server/wm/InsetsControlTarget;Landroid/view/InsetsState;)V
 HSPLcom/android/server/wm/InsetsStateController;->onPostLayout()V
 HPLcom/android/server/wm/InsetsStateController;->peekSourceProvider(I)Lcom/android/server/wm/InsetsSourceProvider;
+HPLcom/android/server/wm/InsetsStateController;->removeFromControlMaps(Lcom/android/server/wm/InsetsControlTarget;IZ)V
 HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;I)V
 PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->access$000(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->access$100(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Z
@@ -37659,6 +40848,7 @@
 HSPLcom/android/server/wm/KeyguardDisableHandler;->create(Landroid/content/Context;Lcom/android/server/policy/WindowManagerPolicy;Landroid/os/Handler;)Lcom/android/server/wm/KeyguardDisableHandler;
 PLcom/android/server/wm/KeyguardDisableHandler;->disableKeyguard(Landroid/os/IBinder;Ljava/lang/String;II)V
 PLcom/android/server/wm/KeyguardDisableHandler;->reenableKeyguard(Landroid/os/IBinder;II)V
+PLcom/android/server/wm/KeyguardDisableHandler;->setCurrentUser(I)V
 HSPLcom/android/server/wm/KeyguardDisableHandler;->shouldKeyguardBeEnabled(I)Z
 HSPLcom/android/server/wm/KeyguardDisableHandler;->updateKeyguardEnabled(I)V
 HSPLcom/android/server/wm/KeyguardDisableHandler;->updateKeyguardEnabledLocked(I)V
@@ -37738,7 +40928,7 @@
 PLcom/android/server/wm/Letterbox;->attachInput(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/Letterbox;->destroy()V
 HPLcom/android/server/wm/Letterbox;->getInnerFrame()Landroid/graphics/Rect;
-PLcom/android/server/wm/Letterbox;->getInsets()Landroid/graphics/Rect;
+HPLcom/android/server/wm/Letterbox;->getInsets()Landroid/graphics/Rect;
 HPLcom/android/server/wm/Letterbox;->hide()V
 HPLcom/android/server/wm/Letterbox;->isOverlappingWith(Landroid/graphics/Rect;)Z
 HPLcom/android/server/wm/Letterbox;->layout(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Point;)V
@@ -37771,8 +40961,10 @@
 HSPLcom/android/server/wm/LockTaskController;->getLockTaskFeaturesForUser(I)I
 HSPLcom/android/server/wm/LockTaskController;->getLockTaskModeState()I
 HPLcom/android/server/wm/LockTaskController;->getRootTask()Lcom/android/server/wm/Task;
+PLcom/android/server/wm/LockTaskController;->getStatusBarDisableFlags(I)Landroid/util/Pair;
 PLcom/android/server/wm/LockTaskController;->getStatusBarService()Lcom/android/internal/statusbar/IStatusBarService;
 HSPLcom/android/server/wm/LockTaskController;->isActivityAllowed(ILjava/lang/String;I)Z
+PLcom/android/server/wm/LockTaskController;->isBlockingInTaskEnabled(I)Z
 HSPLcom/android/server/wm/LockTaskController;->isKeyguardAllowed(I)Z
 HSPLcom/android/server/wm/LockTaskController;->isLockTaskModeViolation(Lcom/android/server/wm/Task;)Z
 HSPLcom/android/server/wm/LockTaskController;->isLockTaskModeViolation(Lcom/android/server/wm/Task;Z)Z
@@ -37844,7 +41036,10 @@
 PLcom/android/server/wm/PinnedStackController;->access$1000(Lcom/android/server/wm/PinnedStackController;)Lcom/android/server/wm/PinnedStackController$PinnedStackListenerDeathHandler;
 PLcom/android/server/wm/PinnedStackController;->access$300(Lcom/android/server/wm/PinnedStackController;)Lcom/android/server/wm/WindowManagerService;
 PLcom/android/server/wm/PinnedStackController;->access$400(Lcom/android/server/wm/PinnedStackController;)Landroid/view/DisplayInfo;
+PLcom/android/server/wm/PinnedStackController;->access$400(Lcom/android/server/wm/PinnedStackController;)Landroid/view/IPinnedStackListener;
+PLcom/android/server/wm/PinnedStackController;->access$402(Lcom/android/server/wm/PinnedStackController;Landroid/view/IPinnedStackListener;)Landroid/view/IPinnedStackListener;
 PLcom/android/server/wm/PinnedStackController;->access$500(Lcom/android/server/wm/PinnedStackController;)Lcom/android/server/wm/DisplayContent;
+PLcom/android/server/wm/PinnedStackController;->access$500(Lcom/android/server/wm/PinnedStackController;)Lcom/android/server/wm/PinnedStackController$PinnedStackListenerDeathHandler;
 PLcom/android/server/wm/PinnedStackController;->access$600(Lcom/android/server/wm/PinnedStackController;)Landroid/graphics/Rect;
 PLcom/android/server/wm/PinnedStackController;->access$700(Lcom/android/server/wm/PinnedStackController;)Landroid/graphics/Rect;
 PLcom/android/server/wm/PinnedStackController;->access$700(Lcom/android/server/wm/PinnedStackController;)Landroid/view/IPinnedStackListener;
@@ -37867,6 +41062,7 @@
 HSPLcom/android/server/wm/PinnedStackController;->notifyDisplayInfoChanged(Landroid/view/DisplayInfo;)V
 HSPLcom/android/server/wm/PinnedStackController;->notifyImeVisibilityChanged(ZI)V
 HSPLcom/android/server/wm/PinnedStackController;->notifyMinimizeChanged(Z)V
+HSPLcom/android/server/wm/PinnedStackController;->notifyMovementBoundsChanged(Z)V
 HSPLcom/android/server/wm/PinnedStackController;->notifyMovementBoundsChanged(ZZ)V
 PLcom/android/server/wm/PinnedStackController;->notifyPrepareAnimation(Landroid/graphics/Rect;FLandroid/graphics/Rect;)V
 HSPLcom/android/server/wm/PinnedStackController;->onConfigurationChanged()V
@@ -37882,7 +41078,7 @@
 PLcom/android/server/wm/PinnedStackController;->setAspectRatio(F)V
 HSPLcom/android/server/wm/PinnedStackController;->setDisplayInfo(Landroid/view/DisplayInfo;)V
 HSPLcom/android/server/wm/PointerEventDispatcher;-><init>(Landroid/view/InputChannel;)V
-PLcom/android/server/wm/PointerEventDispatcher;->dispose()V
+HPLcom/android/server/wm/PointerEventDispatcher;->dispose()V
 HPLcom/android/server/wm/PointerEventDispatcher;->onInputEvent(Landroid/view/InputEvent;)V
 HSPLcom/android/server/wm/PointerEventDispatcher;->registerInputEventListener(Landroid/view/WindowManagerPolicyConstants$PointerEventListener;)V
 PLcom/android/server/wm/PointerEventDispatcher;->unregisterInputEventListener(Landroid/view/WindowManagerPolicyConstants$PointerEventListener;)V
@@ -37920,7 +41116,9 @@
 HPLcom/android/server/wm/RecentTasks;->getPersistableTaskIds(Landroid/util/ArraySet;)V
 HPLcom/android/server/wm/RecentTasks;->getProfileIds(I)Ljava/util/Set;
 HPLcom/android/server/wm/RecentTasks;->getRecentTaskIds()Landroid/util/SparseBooleanArray;
+PLcom/android/server/wm/RecentTasks;->getRecentTasks(IIZII)Landroid/content/pm/ParceledListSlice;
 HPLcom/android/server/wm/RecentTasks;->getRecentTasks(IIZZII)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/wm/RecentTasks;->getRecentTasksImpl(IIZII)Ljava/util/ArrayList;
 HPLcom/android/server/wm/RecentTasks;->getRecentTasksImpl(IIZZII)Ljava/util/ArrayList;
 PLcom/android/server/wm/RecentTasks;->getRecentsComponent()Landroid/content/ComponentName;
 PLcom/android/server/wm/RecentTasks;->getRecentsComponentFeatureId()Ljava/lang/String;
@@ -37968,7 +41166,7 @@
 HPLcom/android/server/wm/RecentTasks;->usersWithRecentsLoadedLocked()[I
 PLcom/android/server/wm/RecentsAnimation;-><clinit>()V
 HPLcom/android/server/wm/RecentsAnimation;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStartController;Lcom/android/server/wm/WindowManagerService;Landroid/content/Intent;Landroid/content/ComponentName;ILcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/RecentsAnimation;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStartController;Lcom/android/server/wm/WindowManagerService;Landroid/content/Intent;Landroid/content/ComponentName;Ljava/lang/String;ILcom/android/server/wm/WindowProcessController;)V
+HPLcom/android/server/wm/RecentsAnimation;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStartController;Lcom/android/server/wm/WindowManagerService;Landroid/content/Intent;Landroid/content/ComponentName;Ljava/lang/String;ILcom/android/server/wm/WindowProcessController;)V
 HPLcom/android/server/wm/RecentsAnimation;->finishAnimation(IZ)V
 HPLcom/android/server/wm/RecentsAnimation;->getTargetActivity(Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/ActivityRecord;
 HPLcom/android/server/wm/RecentsAnimation;->getTopNonAlwaysOnTopStack()Lcom/android/server/wm/ActivityStack;
@@ -37986,16 +41184,17 @@
 PLcom/android/server/wm/RecentsAnimationController$1;->onAppTransitionCancelledLocked(I)V
 PLcom/android/server/wm/RecentsAnimationController$1;->onAppTransitionStartingLocked(IJJJ)I
 HPLcom/android/server/wm/RecentsAnimationController$2;-><init>(Lcom/android/server/wm/RecentsAnimationController;)V
-PLcom/android/server/wm/RecentsAnimationController$2;->cleanupScreenshot()V
+HPLcom/android/server/wm/RecentsAnimationController$2;->cleanupScreenshot()V
 HPLcom/android/server/wm/RecentsAnimationController$2;->finish(ZZ)V
 HPLcom/android/server/wm/RecentsAnimationController$2;->hideCurrentInputMethod()V
 HPLcom/android/server/wm/RecentsAnimationController$2;->screenshotTask(I)Landroid/app/ActivityManager$TaskSnapshot;
 HPLcom/android/server/wm/RecentsAnimationController$2;->setAnimationTargetsBehindSystemBars(Z)V
-PLcom/android/server/wm/RecentsAnimationController$2;->setDeferCancelUntilNextTransition(ZZ)V
+HPLcom/android/server/wm/RecentsAnimationController$2;->setDeferCancelUntilNextTransition(ZZ)V
 HPLcom/android/server/wm/RecentsAnimationController$2;->setInputConsumerEnabled(Z)V
 HPLcom/android/server/wm/RecentsAnimationController$2;->setSplitScreenMinimized(Z)V
 PLcom/android/server/wm/RecentsAnimationController$2;->setWillFinishToHome(Z)V
 HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;-><init>(Lcom/android/server/wm/RecentsAnimationController;Lcom/android/server/wm/Task;Z)V
+HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$1100(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)I
 HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$1200(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)I
 HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$1200(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
 HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$1300(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
@@ -38026,6 +41225,7 @@
 HPLcom/android/server/wm/RecentsAnimationController;->access$800(Lcom/android/server/wm/RecentsAnimationController;)I
 HPLcom/android/server/wm/RecentsAnimationController;->access$902(Lcom/android/server/wm/RecentsAnimationController;Z)Z
 HPLcom/android/server/wm/RecentsAnimationController;->addAnimation(Lcom/android/server/wm/Task;Z)Lcom/android/server/wm/AnimationAdapter;
+HPLcom/android/server/wm/RecentsAnimationController;->applyFixedRotationTransformIfNeeded(Lcom/android/server/wm/WindowToken;)V
 PLcom/android/server/wm/RecentsAnimationController;->binderDied()V
 HPLcom/android/server/wm/RecentsAnimationController;->cancelAnimation(ILjava/lang/String;)V
 HPLcom/android/server/wm/RecentsAnimationController;->cancelAnimation(IZLjava/lang/String;)V
@@ -38047,6 +41247,7 @@
 HPLcom/android/server/wm/RecentsAnimationController;->lambda$isAnimatingApp$5(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Ljava/lang/Boolean;
 PLcom/android/server/wm/RecentsAnimationController;->lambda$new$0$RecentsAnimationController()V
 PLcom/android/server/wm/RecentsAnimationController;->lambda$screenshotRecentTask$4$RecentsAnimationController(I)V
+HPLcom/android/server/wm/RecentsAnimationController;->linkFixedRotationTransformIfNeeded(Lcom/android/server/wm/WindowToken;)V
 PLcom/android/server/wm/RecentsAnimationController;->linkToDeathOfRunner()V
 HPLcom/android/server/wm/RecentsAnimationController;->removeAnimation(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)V
 HPLcom/android/server/wm/RecentsAnimationController;->removeWallpaperAnimation(Lcom/android/server/wm/WallpaperAnimationAdapter;)V
@@ -38070,6 +41271,7 @@
 HPLcom/android/server/wm/RemoteAnimationController$FinishedCallback;->onAnimationFinished()V
 HPLcom/android/server/wm/RemoteAnimationController$FinishedCallback;->release()V
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;-><init>(Lcom/android/server/wm/RemoteAnimationController;Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;Landroid/graphics/Point;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;-><init>(Lcom/android/server/wm/RemoteAnimationController;Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;Landroid/graphics/Point;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->access$000(Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->access$100(Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;)I
 PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
@@ -38081,6 +41283,7 @@
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;ILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;-><init>(Lcom/android/server/wm/RemoteAnimationController;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Point;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;-><init>(Lcom/android/server/wm/RemoteAnimationController;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Point;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;->createRemoteAnimationTarget()Landroid/view/RemoteAnimationTarget;
 HPLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;->getMode()I
 HPLcom/android/server/wm/RemoteAnimationController;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/RemoteAnimationAdapter;Landroid/os/Handler;)V
@@ -38094,6 +41297,7 @@
 PLcom/android/server/wm/RemoteAnimationController;->cancelAnimation(Ljava/lang/String;)V
 HPLcom/android/server/wm/RemoteAnimationController;->createAppAnimations()[Landroid/view/RemoteAnimationTarget;
 HPLcom/android/server/wm/RemoteAnimationController;->createRemoteAnimationRecord(Lcom/android/server/wm/WindowContainer;Landroid/graphics/Point;Landroid/graphics/Rect;Landroid/graphics/Rect;)Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;
+HPLcom/android/server/wm/RemoteAnimationController;->createRemoteAnimationRecord(Lcom/android/server/wm/WindowContainer;Landroid/graphics/Point;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;
 HPLcom/android/server/wm/RemoteAnimationController;->createWallpaperAnimations()[Landroid/view/RemoteAnimationTarget;
 HPLcom/android/server/wm/RemoteAnimationController;->goodToGo()V
 PLcom/android/server/wm/RemoteAnimationController;->invokeAnimationCancelled()V
@@ -38298,6 +41502,7 @@
 HPLcom/android/server/wm/RootWindowContainer;->getAllStackInfos(I)Ljava/util/ArrayList;
 HSPLcom/android/server/wm/RootWindowContainer;->getCurrentInputMethodWindow()Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/RootWindowContainer;->getDefaultDisplay()Lcom/android/server/wm/DisplayContent;
+PLcom/android/server/wm/RootWindowContainer;->getDefaultDisplayHomeActivityForUser(I)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/RootWindowContainer;->getDisplayContent(I)Lcom/android/server/wm/DisplayContent;
 HPLcom/android/server/wm/RootWindowContainer;->getDisplayContent(Ljava/lang/String;)Lcom/android/server/wm/DisplayContent;
 HSPLcom/android/server/wm/RootWindowContainer;->getDisplayContentOrCreate(I)Lcom/android/server/wm/DisplayContent;
@@ -38330,7 +41535,7 @@
 HSPLcom/android/server/wm/RootWindowContainer;->hasAwakeDisplay()Z
 HSPLcom/android/server/wm/RootWindowContainer;->hasPendingLayoutChanges(Lcom/android/server/wm/WindowAnimator;)Z
 HSPLcom/android/server/wm/RootWindowContainer;->invalidateTaskLayers()V
-HPLcom/android/server/wm/RootWindowContainer;->isAnyNonToastWindowVisibleForUid(I)Z
+HSPLcom/android/server/wm/RootWindowContainer;->isAnyNonToastWindowVisibleForUid(I)Z
 HSPLcom/android/server/wm/RootWindowContainer;->isFocusable(Lcom/android/server/wm/ConfigurationContainer;Z)Z
 HSPLcom/android/server/wm/RootWindowContainer;->isInAnyStack(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/RootWindowContainer;->isLayoutNeeded()Z
@@ -38342,8 +41547,10 @@
 PLcom/android/server/wm/RootWindowContainer;->lambda$JVx5SVc0AsTnwnLxXYLgV6AKHPg(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/Task;I)V
 HPLcom/android/server/wm/RootWindowContainer;->lambda$JZALJLRYsvQWgNnzHdoTfj_f3QY(Lcom/android/server/wm/Task;Landroid/app/ActivityManager$StackInfo;[I)V
 HSPLcom/android/server/wm/RootWindowContainer;->lambda$SVJucJygDtyF-4eKB9wPXWaNBDM(Lcom/android/server/wm/RootWindowContainer;Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/RootWindowContainer;->lambda$addStartingWindowsForVisibleActivities$10(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/RootWindowContainer;->lambda$addStartingWindowsForVisibleActivities$11(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/RootWindowContainer;->lambda$bRRfWu3QSW54eS51jCvFD02TPt8(Lcom/android/server/wm/ActivityRecord;IZLandroid/content/Intent;Landroid/content/ComponentName;)Z
+PLcom/android/server/wm/RootWindowContainer;->lambda$closeSystemDialogs$11(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/RootWindowContainer;->lambda$closeSystemDialogs$12(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/RootWindowContainer;->lambda$dumpDebug$10(Landroid/util/proto/ProtoOutputStream;ILcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/RootWindowContainer;->lambda$dumpDebug$11(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/wm/WindowState;)V
@@ -38355,11 +41562,12 @@
 HPLcom/android/server/wm/RootWindowContainer;->lambda$new$0$RootWindowContainer(Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/RootWindowContainer;->lambda$performSurfacePlacementNoTrace$8(Lcom/android/server/wm/DisplayContent;)V
 HSPLcom/android/server/wm/RootWindowContainer;->lambda$performSurfacePlacementNoTrace$9(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/RootWindowContainer;->lambda$reclaimSomeSurfaceMemory$7$RootWindowContainer(Landroid/util/SparseIntArray;Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/RootWindowContainer;->lambda$setSecureSurfaceState$3(IZLcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/RootWindowContainer;->lambda$setSecureSurfaceState$4(IZLcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/RootWindowContainer;->lambda$static$1(Lcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/RootWindowContainer;->lambda$updateAppOpsState$5(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/RootWindowContainer;->lambda$updateHiddenWhileSuspendedState$4(Landroid/util/ArraySet;ZLcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/RootWindowContainer;->lambda$updateHiddenWhileSuspendedState$4(Landroid/util/ArraySet;ZLcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/RootWindowContainer;->lambda$updateHiddenWhileSuspendedState$5(Landroid/util/ArraySet;ZLcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/RootWindowContainer;->lockAllProfileTasks(I)V
 HPLcom/android/server/wm/RootWindowContainer;->matchesActivity(Lcom/android/server/wm/ActivityRecord;IZLandroid/content/Intent;Landroid/content/ComponentName;)Z
@@ -38381,6 +41589,7 @@
 HSPLcom/android/server/wm/RootWindowContainer;->putStacksToSleep(ZZ)Z
 HSPLcom/android/server/wm/RootWindowContainer;->rankTaskLayerForActivity(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/RootWindowContainer;->rankTaskLayersIfNeeded()V
+PLcom/android/server/wm/RootWindowContainer;->reclaimSomeSurfaceMemory(Lcom/android/server/wm/WindowStateAnimator;Ljava/lang/String;Z)Z
 PLcom/android/server/wm/RootWindowContainer;->removeChild(Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/RootWindowContainer;->removeChild(Lcom/android/server/wm/WindowContainer;)V
 HSPLcom/android/server/wm/RootWindowContainer;->removeReplacedWindows()V
@@ -38407,6 +41616,7 @@
 HSPLcom/android/server/wm/RootWindowContainer;->startHomeOnDisplay(ILjava/lang/String;IZZ)Z
 HSPLcom/android/server/wm/RootWindowContainer;->startHomeOnEmptyDisplays(Ljava/lang/String;)V
 HPLcom/android/server/wm/RootWindowContainer;->startSystemDecorations(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/RootWindowContainer;->switchUser(ILcom/android/server/am/UserState;)Z
 PLcom/android/server/wm/RootWindowContainer;->taskTopActivityIsUser(Lcom/android/server/wm/Task;I)V
 HPLcom/android/server/wm/RootWindowContainer;->toBrightnessOverride(F)I
 HSPLcom/android/server/wm/RootWindowContainer;->topRunningActivity()Lcom/android/server/wm/ActivityRecord;
@@ -38494,8 +41704,10 @@
 HPLcom/android/server/wm/ScreenRotationAnimation;->setRotationTransform(Landroid/view/SurfaceControl$Transaction;Landroid/graphics/Matrix;)V
 HPLcom/android/server/wm/ScreenRotationAnimation;->startAnimation(Landroid/view/SurfaceControl$Transaction;JFIIII)Z
 HPLcom/android/server/wm/SeamlessRotator;-><init>(IILandroid/view/DisplayInfo;)V
+HPLcom/android/server/wm/SeamlessRotator;->finish(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;)V
 HPLcom/android/server/wm/SeamlessRotator;->finish(Lcom/android/server/wm/WindowState;Z)V
 PLcom/android/server/wm/SeamlessRotator;->getOldRotation()I
+HPLcom/android/server/wm/SeamlessRotator;->unrotate(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;)V
 HPLcom/android/server/wm/SeamlessRotator;->unrotate(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowState;)V
 HSPLcom/android/server/wm/Session;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/IWindowSessionCallback;)V
 HPLcom/android/server/wm/Session;->actionOnWallpaper(Landroid/os/IBinder;Ljava/util/function/BiConsumer;)V
@@ -38538,11 +41750,16 @@
 HPLcom/android/server/wm/Session;->setWallpaperPosition(Landroid/os/IBinder;FFFF)V
 PLcom/android/server/wm/Session;->toString()Ljava/lang/String;
 HPLcom/android/server/wm/Session;->updateDisplayContentLocation(Landroid/view/IWindow;III)V
+PLcom/android/server/wm/Session;->updateInputChannel(Landroid/os/IBinder;ILandroid/view/SurfaceControl;I)V
 HPLcom/android/server/wm/Session;->updatePointerIcon(Landroid/view/IWindow;)V
 HPLcom/android/server/wm/Session;->updateTapExcludeRegion(Landroid/view/IWindow;Landroid/graphics/Region;)V
 HPLcom/android/server/wm/Session;->wallpaperOffsetsComplete(Landroid/os/IBinder;)V
 HSPLcom/android/server/wm/Session;->windowAddedLocked(Ljava/lang/String;)V
 PLcom/android/server/wm/Session;->windowRemovedLocked()V
+HPLcom/android/server/wm/ShellRoot;-><init>(Landroid/view/IWindow;Lcom/android/server/wm/DisplayContent;I)V
+PLcom/android/server/wm/ShellRoot;->clear()V
+PLcom/android/server/wm/ShellRoot;->getSurfaceControl()Landroid/view/SurfaceControl;
+PLcom/android/server/wm/ShellRoot;->lambda$new$0$ShellRoot(I)V
 HPLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;-><init>()V
 PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$000(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)I
 PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$100(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)I
@@ -38620,7 +41837,7 @@
 HPLcom/android/server/wm/SurfaceAnimationRunner;->lambda$lSzwjoKEGADoEFOzdEnwriAk0T4(Lcom/android/server/wm/SurfaceAnimationRunner;)V
 HSPLcom/android/server/wm/SurfaceAnimationRunner;->lambda$new$0$SurfaceAnimationRunner()V
 PLcom/android/server/wm/SurfaceAnimationRunner;->lambda$new$1$SurfaceAnimationRunner()Landroid/animation/ValueAnimator;
-PLcom/android/server/wm/SurfaceAnimationRunner;->lambda$onAnimationCancelled$2$SurfaceAnimationRunner(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)V
+HPLcom/android/server/wm/SurfaceAnimationRunner;->lambda$onAnimationCancelled$2$SurfaceAnimationRunner(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)V
 HPLcom/android/server/wm/SurfaceAnimationRunner;->lambda$startAnimationLocked$3$SurfaceAnimationRunner(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;)V
 HPLcom/android/server/wm/SurfaceAnimationRunner;->onAnimationCancelled(Landroid/view/SurfaceControl;)V
 HPLcom/android/server/wm/SurfaceAnimationRunner;->scheduleApplyTransaction()V
@@ -38632,12 +41849,15 @@
 HSPLcom/android/server/wm/SurfaceAnimationThread;->ensureThreadLocked()V
 HSPLcom/android/server/wm/SurfaceAnimationThread;->get()Lcom/android/server/wm/SurfaceAnimationThread;
 HSPLcom/android/server/wm/SurfaceAnimationThread;->getHandler()Landroid/os/Handler;
+HPLcom/android/server/wm/SurfaceAnimator$Animatable;->onLeashAnimationStarting(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
 HPLcom/android/server/wm/SurfaceAnimator$Animatable;->shouldDeferAnimationFinish(Ljava/lang/Runnable;)Z
 HSPLcom/android/server/wm/SurfaceAnimator;-><init>(Lcom/android/server/wm/SurfaceAnimator$Animatable;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;Lcom/android/server/wm/WindowManagerService;)V
 HSPLcom/android/server/wm/SurfaceAnimator;-><init>(Lcom/android/server/wm/SurfaceAnimator$Animatable;Ljava/lang/Runnable;Lcom/android/server/wm/WindowManagerService;)V
 HSPLcom/android/server/wm/SurfaceAnimator;->cancelAnimation()V
 HSPLcom/android/server/wm/SurfaceAnimator;->cancelAnimation(Landroid/view/SurfaceControl$Transaction;ZZ)V
 HPLcom/android/server/wm/SurfaceAnimator;->createAnimationLeash(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;IIZ)Landroid/view/SurfaceControl;
+HPLcom/android/server/wm/SurfaceAnimator;->createAnimationLeash(Lcom/android/server/wm/SurfaceAnimator$Animatable;Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;IIIIIZ)Landroid/view/SurfaceControl;
+HPLcom/android/server/wm/SurfaceAnimator;->createAnimationLeash(Lcom/android/server/wm/SurfaceAnimator$Animatable;Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;IIIIZ)Landroid/view/SurfaceControl;
 PLcom/android/server/wm/SurfaceAnimator;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/wm/SurfaceAnimator;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
 PLcom/android/server/wm/SurfaceAnimator;->endDelayingAnimationStart()V
@@ -38651,6 +41871,7 @@
 HPLcom/android/server/wm/SurfaceAnimator;->lambda$getFinishedCallback$0$SurfaceAnimator(Lcom/android/server/wm/AnimationAdapter;Ljava/lang/Runnable;)V
 HPLcom/android/server/wm/SurfaceAnimator;->lambda$getFinishedCallback$1$SurfaceAnimator(Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;ILcom/android/server/wm/AnimationAdapter;)V
 HPLcom/android/server/wm/SurfaceAnimator;->lambda$getFinishedCallback$1$SurfaceAnimator(Ljava/lang/Runnable;Lcom/android/server/wm/AnimationAdapter;)V
+HPLcom/android/server/wm/SurfaceAnimator;->removeLeash(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/SurfaceAnimator$Animatable;Landroid/view/SurfaceControl;Z)Z
 PLcom/android/server/wm/SurfaceAnimator;->reparent(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
 HSPLcom/android/server/wm/SurfaceAnimator;->reset(Landroid/view/SurfaceControl$Transaction;Z)V
 HSPLcom/android/server/wm/SurfaceAnimator;->setLayer(Landroid/view/SurfaceControl$Transaction;I)V
@@ -38658,8 +41879,12 @@
 HPLcom/android/server/wm/SurfaceAnimator;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;Z)V
 HPLcom/android/server/wm/SurfaceAnimator;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZI)V
 HPLcom/android/server/wm/SurfaceAnimator;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
+HPLcom/android/server/wm/SurfaceAnimator;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;Lcom/android/server/wm/SurfaceFreezer;)V
 HPLcom/android/server/wm/SurfaceAnimator;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZLjava/lang/Runnable;)V
 PLcom/android/server/wm/SurfaceAnimator;->transferAnimation(Lcom/android/server/wm/SurfaceAnimator;)V
+HSPLcom/android/server/wm/SurfaceFreezer;-><init>(Lcom/android/server/wm/SurfaceFreezer$Freezable;Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/SurfaceFreezer;->takeLeashForAnimation()Landroid/view/SurfaceControl;
+HPLcom/android/server/wm/SurfaceFreezer;->unfreeze(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/wm/SystemGesturesPointerEventListener$1;-><init>(Lcom/android/server/wm/SystemGesturesPointerEventListener;Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;)V
 HSPLcom/android/server/wm/SystemGesturesPointerEventListener$FlingGestureDetector;-><init>(Lcom/android/server/wm/SystemGesturesPointerEventListener;)V
 HPLcom/android/server/wm/SystemGesturesPointerEventListener$FlingGestureDetector;->onFling(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z
@@ -38690,14 +41915,16 @@
 HSPLcom/android/server/wm/Task$TaskActivitiesReport;->accept(Ljava/lang/Object;)V
 HSPLcom/android/server/wm/Task$TaskActivitiesReport;->reset()V
 HSPLcom/android/server/wm/Task$TaskFactory;-><init>()V
+HSPLcom/android/server/wm/Task$TaskFactory;->create(Lcom/android/server/wm/ActivityTaskManagerService;IILandroid/content/pm/ActivityInfo;Landroid/content/Intent;)Lcom/android/server/wm/Task;
 PLcom/android/server/wm/Task$TaskFactory;->create(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;IZZZIILcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/Task;
 PLcom/android/server/wm/Task$TaskFactory;->create(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;Ljava/lang/String;IZZZIILcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/Task;
 HSPLcom/android/server/wm/Task$TaskFactory;->create(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/Task$TaskFactory;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/wm/ActivityStackSupervisor;)Lcom/android/server/wm/Task;
 HSPLcom/android/server/wm/Task$TaskToken;-><init>(Lcom/android/server/wm/Task;Lcom/android/server/wm/ConfigurationContainer;)V
 HSPLcom/android/server/wm/Task$TaskToken;-><init>(Lcom/android/server/wm/Task;Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/Task$TaskToken;->getLeash()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/Task;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/Task;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;Ljava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)V
+HSPLcom/android/server/wm/Task;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;Ljava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/Task;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Landroid/app/ActivityManager$TaskDescription;Lcom/android/server/wm/ActivityStack;)V
 HSPLcom/android/server/wm/Task;->addChild(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/Task;->addChild(Lcom/android/server/wm/WindowContainer;I)V
@@ -38709,6 +41936,7 @@
 HSPLcom/android/server/wm/Task;->calculateInsetFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayInfo;)V
 HSPLcom/android/server/wm/Task;->canAffectSystemUiFlags()Z
 PLcom/android/server/wm/Task;->canBeLaunchedOnDisplay(I)Z
+HPLcom/android/server/wm/Task;->canCreateRemoteAnimationTarget()Z
 PLcom/android/server/wm/Task;->canResizeToBounds(Landroid/graphics/Rect;)Z
 HPLcom/android/server/wm/Task;->cleanUpActivityReferences(Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/Task;->cleanUpResourcesForDestroy()V
@@ -38717,10 +41945,12 @@
 HSPLcom/android/server/wm/Task;->clearRootProcess()V
 HPLcom/android/server/wm/Task;->closeRecentsChain()V
 HSPLcom/android/server/wm/Task;->computeConfigResourceOverrides(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/Task;->computeConfigResourceOverrides(Landroid/content/res/Configuration;Landroid/content/res/Configuration;Landroid/view/DisplayInfo;Lcom/android/server/wm/ActivityRecord$CompatDisplayInsets;)V
 HSPLcom/android/server/wm/Task;->computeConfigResourceOverrides(Landroid/content/res/Configuration;Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord$CompatDisplayInsets;)V
 HSPLcom/android/server/wm/Task;->computeFullscreenBounds(Landroid/graphics/Rect;Lcom/android/server/wm/ActivityRecord;Landroid/graphics/Rect;I)V
 HSPLcom/android/server/wm/Task;->computeMinUserPosition(II)I
 HSPLcom/android/server/wm/Task;->computeScreenLayoutOverride(III)I
+HSPLcom/android/server/wm/Task;->create(Lcom/android/server/wm/ActivityTaskManagerService;IILandroid/content/pm/ActivityInfo;Landroid/content/Intent;)Lcom/android/server/wm/Task;
 HSPLcom/android/server/wm/Task;->create(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/Task;->createRemoteAnimationTarget(Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;)Landroid/view/RemoteAnimationTarget;
 HSPLcom/android/server/wm/Task;->cropWindowsToStackBounds()Z
@@ -38735,6 +41965,7 @@
 HSPLcom/android/server/wm/Task;->fillsParent()Z
 HPLcom/android/server/wm/Task;->findActivityInHistory(Landroid/content/ComponentName;)Lcom/android/server/wm/ActivityRecord;
 PLcom/android/server/wm/Task;->finishActivityAbove(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
+HSPLcom/android/server/wm/Task;->forAllLeafTasks(Ljava/util/function/Consumer;Z)V
 HSPLcom/android/server/wm/Task;->forAllTasks(Ljava/util/function/Consumer;Z)V
 HSPLcom/android/server/wm/Task;->forAllTasks(Ljava/util/function/Consumer;ZLcom/android/server/wm/Task;)V
 HSPLcom/android/server/wm/Task;->forAllTasks(Ljava/util/function/Function;)Z
@@ -38755,6 +41986,7 @@
 PLcom/android/server/wm/Task;->getDragResizeMode()I
 HPLcom/android/server/wm/Task;->getInactiveDuration()J
 HSPLcom/android/server/wm/Task;->getLaunchBounds()Landroid/graphics/Rect;
+PLcom/android/server/wm/Task;->getMainWindowSizeChangeTransaction()Landroid/view/SurfaceControl$Transaction;
 HSPLcom/android/server/wm/Task;->getName()Ljava/lang/String;
 HSPLcom/android/server/wm/Task;->getNumRunningActivities(Lcom/android/server/wm/Task$TaskActivitiesReport;)V
 HSPLcom/android/server/wm/Task;->getOverrideDisplayedBounds()Landroid/graphics/Rect;
@@ -38765,6 +41997,7 @@
 HSPLcom/android/server/wm/Task;->getRootActivity(ZZ)Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/Task;->getRootTask()Lcom/android/server/wm/Task;
 HSPLcom/android/server/wm/Task;->getRootTaskId()I
+PLcom/android/server/wm/Task;->getShadowRadius(Z)F
 HPLcom/android/server/wm/Task;->getSmallestScreenWidthDpForDockedBounds(Landroid/graphics/Rect;)I
 PLcom/android/server/wm/Task;->getSnapshot(ZZ)Landroid/app/ActivityManager$TaskSnapshot;
 HSPLcom/android/server/wm/Task;->getStack()Lcom/android/server/wm/ActivityStack;
@@ -38785,6 +42018,7 @@
 HPLcom/android/server/wm/Task;->isDragResizing()Z
 HSPLcom/android/server/wm/Task;->isFloating()Z
 PLcom/android/server/wm/Task;->isFocused()Z
+HSPLcom/android/server/wm/Task;->isLeafTask()Z
 HPLcom/android/server/wm/Task;->isOpaqueActivity(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
 HSPLcom/android/server/wm/Task;->isResizeable()Z
 HSPLcom/android/server/wm/Task;->isResizeable(Z)Z
@@ -38818,7 +42052,7 @@
 PLcom/android/server/wm/Task;->lambda$lqGdYR9ABiPuG3_68w1VS6hrr8c(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/Task;->lambda$onlyHasTaskOverlayActivities$1(Lcom/android/server/wm/ActivityRecord;)Z
 PLcom/android/server/wm/Task;->lambda$onlyHasTaskOverlayActivities$2(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Task;->lambda$performClearTaskAtIndexLocked$2(Ljava/lang/String;Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/Task;->lambda$performClearTaskAtIndexLocked$2(Ljava/lang/String;Lcom/android/server/wm/ActivityRecord;)V
 HPLcom/android/server/wm/Task;->lambda$performClearTaskAtIndexLocked$4(Ljava/lang/String;Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/Task;->lambda$topRunningActivityWithStartingWindowLocked$0(Lcom/android/server/wm/ActivityRecord;)Z
 HPLcom/android/server/wm/Task;->lockTaskAuthToString()Ljava/lang/String;
@@ -38832,6 +42066,7 @@
 HSPLcom/android/server/wm/Task;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
 HSPLcom/android/server/wm/Task;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
 PLcom/android/server/wm/Task;->onSnapshotChanged(Landroid/app/ActivityManager$TaskSnapshot;)V
+HSPLcom/android/server/wm/Task;->onSurfaceShown(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/wm/Task;->onWindowFocusChanged(Z)V
 HPLcom/android/server/wm/Task;->onlyHasTaskOverlayActivities(Z)Z
 HPLcom/android/server/wm/Task;->performClearTaskAtIndexLocked(Ljava/lang/String;)V
@@ -38858,8 +42093,11 @@
 PLcom/android/server/wm/Task;->resize(Landroid/graphics/Rect;IZZ)Z
 PLcom/android/server/wm/Task;->resize(ZZ)V
 HSPLcom/android/server/wm/Task;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/Task;->resolveTileOverrideConfiguration(Landroid/content/res/Configuration;)V
 PLcom/android/server/wm/Task;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/wm/ActivityStackSupervisor;)Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/Task;->returnsToHomeStack()Z
+PLcom/android/server/wm/Task;->reuseAsLeafTask(Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/Task;
+PLcom/android/server/wm/Task;->reuseAsLeafTask(Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/Task;->saveActivityToXml(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Lorg/xmlpull/v1/XmlSerializer;)Z
 HSPLcom/android/server/wm/Task;->saveLaunchingStateIfNeeded()V
 HSPLcom/android/server/wm/Task;->saveLaunchingStateIfNeeded(Lcom/android/server/wm/DisplayContent;)V
@@ -38872,6 +42110,7 @@
 HSPLcom/android/server/wm/Task;->setForceShowForAllUsers(Z)V
 HSPLcom/android/server/wm/Task;->setIntent(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;)V
 HSPLcom/android/server/wm/Task;->setIntent(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/Task;->setIntent(Lcom/android/server/wm/ActivityRecord;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;)V
 HSPLcom/android/server/wm/Task;->setLockTaskAuth()V
 HSPLcom/android/server/wm/Task;->setLockTaskAuth(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/Task;->setMinDimensions(Landroid/content/pm/ActivityInfo;)V
@@ -38888,11 +42127,13 @@
 HSPLcom/android/server/wm/Task;->setTaskOrganizer(Landroid/view/ITaskOrganizer;)V
 PLcom/android/server/wm/Task;->setWindowingMode(I)V
 HPLcom/android/server/wm/Task;->shouldDeferRemoval()Z
+HSPLcom/android/server/wm/Task;->shouldStartChangeTransition(II)Z
 HSPLcom/android/server/wm/Task;->showForAllUsers()Z
 HSPLcom/android/server/wm/Task;->showToCurrentUser()Z
 HPLcom/android/server/wm/Task;->stopDimming()V
 HSPLcom/android/server/wm/Task;->supportsSplitScreenWindowingMode()Z
 HSPLcom/android/server/wm/Task;->supportsSplitScreenWindowingModeInner()Z
+PLcom/android/server/wm/Task;->taskOrganizerDied()V
 HPLcom/android/server/wm/Task;->toString()Ljava/lang/String;
 HSPLcom/android/server/wm/Task;->topRunningActivityLocked()Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/Task;->topRunningActivityWithStartingWindowLocked()Lcom/android/server/wm/ActivityRecord;
@@ -38915,14 +42156,17 @@
 PLcom/android/server/wm/TaskChangeNotificationController;->access$1300(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$1400(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$1600(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
+PLcom/android/server/wm/TaskChangeNotificationController;->access$1800(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$1900(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 HSPLcom/android/server/wm/TaskChangeNotificationController;->access$200(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$2000(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$2100(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
+PLcom/android/server/wm/TaskChangeNotificationController;->access$2300(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$2400(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 HSPLcom/android/server/wm/TaskChangeNotificationController;->access$2500(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 HSPLcom/android/server/wm/TaskChangeNotificationController;->access$2600(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$2700(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
+PLcom/android/server/wm/TaskChangeNotificationController;->access$2800(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 HSPLcom/android/server/wm/TaskChangeNotificationController;->access$300(Lcom/android/server/wm/TaskChangeNotificationController;Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;Landroid/os/Message;)V
 HSPLcom/android/server/wm/TaskChangeNotificationController;->access$400(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
 PLcom/android/server/wm/TaskChangeNotificationController;->access$500(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
@@ -38939,6 +42183,7 @@
 PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$12(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$13(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$14(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$16(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$17(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$18(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$19(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
@@ -38948,6 +42193,7 @@
 HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$22(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$23(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$24(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$25(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$3(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HSPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$4(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
 HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$6(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
@@ -38968,6 +42214,7 @@
 HSPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskCreated(ILandroid/content/ComponentName;)V
 HSPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskDescriptionChanged(Landroid/app/TaskInfo;)V
 HSPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskDisplayChanged(II)V
+PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskFocusChanged(IZ)V
 HPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskListFrozen(Z)V
 HSPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskListUpdated()V
 HPLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskMovedToFront(Landroid/app/TaskInfo;)V
@@ -38986,15 +42233,26 @@
 HSPLcom/android/server/wm/TaskLaunchParamsModifier;->initLogBuilder(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/TaskLaunchParamsModifier;->onCalculate(Lcom/android/server/wm/Task;Landroid/content/pm/ActivityInfo$WindowLayout;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;ILcom/android/server/wm/LaunchParamsController$LaunchParams;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)I
 HSPLcom/android/server/wm/TaskLaunchParamsModifier;->outputLog()V
+PLcom/android/server/wm/TaskOrganizerController$DeathRecipient;-><init>(Lcom/android/server/wm/TaskOrganizerController;Landroid/view/ITaskOrganizer;I)V
+HPLcom/android/server/wm/TaskOrganizerController$DeathRecipient;->binderDied()V
+PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;-><init>(Lcom/android/server/wm/TaskOrganizerController;Landroid/view/ITaskOrganizer;ILcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;)V
+PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;->addTask(Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;->releaseTasks()V
+HPLcom/android/server/wm/TaskOrganizerController$TaskOrganizerState;->removeTask(Lcom/android/server/wm/Task;)V
 HSPLcom/android/server/wm/TaskOrganizerController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
 HSPLcom/android/server/wm/TaskOrganizerController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/WindowManagerGlobalLock;)V
+PLcom/android/server/wm/TaskOrganizerController;->access$000(Lcom/android/server/wm/TaskOrganizerController;)Lcom/android/server/wm/WindowManagerGlobalLock;
 HPLcom/android/server/wm/TaskOrganizerController;->applyContainerTransaction(Landroid/view/WindowContainerTransaction;)V
 HPLcom/android/server/wm/TaskOrganizerController;->applyContainerTransaction(Landroid/view/WindowContainerTransaction;Landroid/view/ITaskOrganizer;)I
 PLcom/android/server/wm/TaskOrganizerController;->applyWindowContainerChange(Lcom/android/server/wm/WindowContainer;Landroid/view/WindowContainerTransaction$Change;)I
+HPLcom/android/server/wm/TaskOrganizerController;->createRootTask(II)Landroid/app/ActivityManager$RunningTaskInfo;
 HSPLcom/android/server/wm/TaskOrganizerController;->dispatchPendingTaskInfoChanges()V
 HPLcom/android/server/wm/TaskOrganizerController;->dispatchTaskInfoChanged(Lcom/android/server/wm/Task;Z)V
 HPLcom/android/server/wm/TaskOrganizerController;->enforceStackPermission(Ljava/lang/String;)V
+HPLcom/android/server/wm/TaskOrganizerController;->getImeTarget(I)Landroid/view/IWindowContainer;
 HSPLcom/android/server/wm/TaskOrganizerController;->getTaskOrganizer(I)Landroid/view/ITaskOrganizer;
+PLcom/android/server/wm/TaskOrganizerController;->onTaskAppeared(Landroid/view/ITaskOrganizer;Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/TaskOrganizerController;->registerTaskOrganizer(Landroid/view/ITaskOrganizer;I)V
 PLcom/android/server/wm/TaskOrganizerController;->resizePinnedStackIfNeeded(Lcom/android/server/wm/ConfigurationContainer;IILandroid/content/res/Configuration;)V
 PLcom/android/server/wm/TaskOrganizerController;->sanitizeAndApplyChange(Lcom/android/server/wm/WindowContainer;Landroid/view/WindowContainerTransaction$Change;)I
 PLcom/android/server/wm/TaskPersister$1;-><init>(Lcom/android/server/wm/TaskPersister;)V
@@ -39004,8 +42262,8 @@
 HPLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;->matches(Lcom/android/server/wm/PersisterQueue$WriteQueueItem;)Z
 HPLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;->matches(Lcom/android/server/wm/TaskPersister$ImageWriteQueueItem;)Z
 HPLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;->process()V
-PLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;->updateFrom(Lcom/android/server/wm/PersisterQueue$WriteQueueItem;)V
-PLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;->updateFrom(Lcom/android/server/wm/TaskPersister$ImageWriteQueueItem;)V
+HPLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;->updateFrom(Lcom/android/server/wm/PersisterQueue$WriteQueueItem;)V
+HPLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;->updateFrom(Lcom/android/server/wm/TaskPersister$ImageWriteQueueItem;)V
 HPLcom/android/server/wm/TaskPersister$TaskWriteQueueItem;-><init>(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityTaskManagerService;)V
 PLcom/android/server/wm/TaskPersister$TaskWriteQueueItem;->access$200(Lcom/android/server/wm/TaskPersister$TaskWriteQueueItem;)Lcom/android/server/wm/Task;
 HPLcom/android/server/wm/TaskPersister$TaskWriteQueueItem;->process()V
@@ -39064,6 +42322,8 @@
 HSPLcom/android/server/wm/TaskSnapshotController;->clearSnapshotCache()V
 HPLcom/android/server/wm/TaskSnapshotController;->createStartingSurface(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityManager$TaskSnapshot;)Lcom/android/server/policy/WindowManagerPolicy$StartingSurface;
 HPLcom/android/server/wm/TaskSnapshotController;->createTaskSnapshot(Lcom/android/server/wm/Task;FI)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
+HPLcom/android/server/wm/TaskSnapshotController;->createTaskSnapshot(Lcom/android/server/wm/Task;FILandroid/graphics/Point;)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
+HPLcom/android/server/wm/TaskSnapshotController;->createTaskSnapshot(Lcom/android/server/wm/Task;Landroid/app/ActivityManager$TaskSnapshot$Builder;)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
 HPLcom/android/server/wm/TaskSnapshotController;->drawAppThemeSnapshot(Lcom/android/server/wm/Task;)Landroid/app/ActivityManager$TaskSnapshot;
 PLcom/android/server/wm/TaskSnapshotController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
 HPLcom/android/server/wm/TaskSnapshotController;->findAppTokenForSnapshot(Lcom/android/server/wm/Task;)Lcom/android/server/wm/ActivityRecord;
@@ -39073,7 +42333,7 @@
 HSPLcom/android/server/wm/TaskSnapshotController;->getSnapshotMode(Lcom/android/server/wm/Task;)I
 HPLcom/android/server/wm/TaskSnapshotController;->getSystemUiVisibility(Lcom/android/server/wm/Task;)I
 HSPLcom/android/server/wm/TaskSnapshotController;->handleClosingApps(Landroid/util/ArraySet;)V
-PLcom/android/server/wm/TaskSnapshotController;->lambda$findAppTokenForSnapshot$0(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/TaskSnapshotController;->lambda$findAppTokenForSnapshot$0(Lcom/android/server/wm/WindowState;)Z
 HPLcom/android/server/wm/TaskSnapshotController;->lambda$findAppTokenForSnapshot$1(Lcom/android/server/wm/ActivityRecord;)Z
 HPLcom/android/server/wm/TaskSnapshotController;->lambda$screenTurningOff$2$TaskSnapshotController(Lcom/android/server/wm/Task;)V
 HPLcom/android/server/wm/TaskSnapshotController;->lambda$screenTurningOff$3$TaskSnapshotController(Lcom/android/server/policy/WindowManagerPolicy$ScreenOffListener;)V
@@ -39084,6 +42344,7 @@
 HPLcom/android/server/wm/TaskSnapshotController;->onAppRemoved(Lcom/android/server/wm/ActivityRecord;)V
 HSPLcom/android/server/wm/TaskSnapshotController;->onTransitionStarting(Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/TaskSnapshotController;->prepareTaskSnapshot(Lcom/android/server/wm/Task;FILandroid/app/ActivityManager$TaskSnapshot$Builder;)Z
+HPLcom/android/server/wm/TaskSnapshotController;->prepareTaskSnapshot(Lcom/android/server/wm/Task;ILandroid/app/ActivityManager$TaskSnapshot$Builder;)Z
 PLcom/android/server/wm/TaskSnapshotController;->removeObsoleteTaskFiles(Landroid/util/ArraySet;[I)V
 PLcom/android/server/wm/TaskSnapshotController;->removeSnapshotCache(I)V
 HPLcom/android/server/wm/TaskSnapshotController;->screenTurningOff(Lcom/android/server/policy/WindowManagerPolicy$ScreenOffListener;)V
@@ -39091,10 +42352,13 @@
 HSPLcom/android/server/wm/TaskSnapshotController;->shouldDisableSnapshots()Z
 PLcom/android/server/wm/TaskSnapshotController;->snapshotTask(Lcom/android/server/wm/Task;)Landroid/app/ActivityManager$TaskSnapshot;
 HPLcom/android/server/wm/TaskSnapshotController;->snapshotTask(Lcom/android/server/wm/Task;FI)Landroid/app/ActivityManager$TaskSnapshot;
+HPLcom/android/server/wm/TaskSnapshotController;->snapshotTask(Lcom/android/server/wm/Task;I)Landroid/app/ActivityManager$TaskSnapshot;
 HSPLcom/android/server/wm/TaskSnapshotController;->snapshotTasks(Landroid/util/ArraySet;)V
 HSPLcom/android/server/wm/TaskSnapshotController;->snapshotTasks(Landroid/util/ArraySet;Z)V
 HSPLcom/android/server/wm/TaskSnapshotController;->systemReady()V
+PLcom/android/server/wm/TaskSnapshotLoader$PreRLegacySnapshotConfig;-><init>(FZ)V
 HSPLcom/android/server/wm/TaskSnapshotLoader;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;)V
+HPLcom/android/server/wm/TaskSnapshotLoader;->getLegacySnapshotConfig(IFZZ)Lcom/android/server/wm/TaskSnapshotLoader$PreRLegacySnapshotConfig;
 HPLcom/android/server/wm/TaskSnapshotLoader;->loadTask(IIZ)Landroid/app/ActivityManager$TaskSnapshot;
 HSPLcom/android/server/wm/TaskSnapshotPersister$1;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;Ljava/lang/String;)V
 HSPLcom/android/server/wm/TaskSnapshotPersister$1;->run()V
@@ -39103,16 +42367,16 @@
 HPLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;Landroid/util/ArraySet;[I)V
 HPLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;->getTaskId(Ljava/lang/String;)I
 HPLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;->write()V
-PLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;IILandroid/app/ActivityManager$TaskSnapshot;)V
+HPLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;IILandroid/app/ActivityManager$TaskSnapshot;)V
 PLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;->access$000(Lcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;)I
-PLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;->onDequeuedLocked()V
+HPLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;->onDequeuedLocked()V
 HPLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;->onQueuedLocked()V
 HPLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;->write()V
 HPLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;->writeBuffer()Z
 HPLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;->writeProto()Z
 HPLcom/android/server/wm/TaskSnapshotPersister$WriteQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;)V
 HPLcom/android/server/wm/TaskSnapshotPersister$WriteQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;Lcom/android/server/wm/TaskSnapshotPersister$1;)V
-PLcom/android/server/wm/TaskSnapshotPersister$WriteQueueItem;->onDequeuedLocked()V
+HPLcom/android/server/wm/TaskSnapshotPersister$WriteQueueItem;->onDequeuedLocked()V
 HPLcom/android/server/wm/TaskSnapshotPersister$WriteQueueItem;->onQueuedLocked()V
 HSPLcom/android/server/wm/TaskSnapshotPersister;-><clinit>()V
 HSPLcom/android/server/wm/TaskSnapshotPersister;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/TaskSnapshotPersister$DirectoryResolver;)V
@@ -39128,9 +42392,12 @@
 PLcom/android/server/wm/TaskSnapshotPersister;->access$900(Lcom/android/server/wm/TaskSnapshotPersister;II)V
 HPLcom/android/server/wm/TaskSnapshotPersister;->createDirectory(I)Z
 HPLcom/android/server/wm/TaskSnapshotPersister;->deleteSnapshot(II)V
+PLcom/android/server/wm/TaskSnapshotPersister;->enableLowResSnapshots()Z
 HPLcom/android/server/wm/TaskSnapshotPersister;->ensureStoreQueueDepthLocked()V
 HPLcom/android/server/wm/TaskSnapshotPersister;->getBitmapFile(II)Ljava/io/File;
 HPLcom/android/server/wm/TaskSnapshotPersister;->getDirectory(I)Ljava/io/File;
+HPLcom/android/server/wm/TaskSnapshotPersister;->getHighResolutionBitmapFile(II)Ljava/io/File;
+HPLcom/android/server/wm/TaskSnapshotPersister;->getLowResolutionBitmapFile(II)Ljava/io/File;
 HPLcom/android/server/wm/TaskSnapshotPersister;->getProtoFile(II)Ljava/io/File;
 HPLcom/android/server/wm/TaskSnapshotPersister;->getReducedResolutionBitmapFile(II)Ljava/io/File;
 PLcom/android/server/wm/TaskSnapshotPersister;->getReducedScale()F
@@ -39138,6 +42405,7 @@
 HPLcom/android/server/wm/TaskSnapshotPersister;->persistSnapshot(IILandroid/app/ActivityManager$TaskSnapshot;)V
 HPLcom/android/server/wm/TaskSnapshotPersister;->removeObsoleteFiles(Landroid/util/ArraySet;[I)V
 HPLcom/android/server/wm/TaskSnapshotPersister;->sendToQueueLocked(Lcom/android/server/wm/TaskSnapshotPersister$WriteQueueItem;)V
+HSPLcom/android/server/wm/TaskSnapshotPersister;->setEnableLowResSnapshots(Z)V
 HPLcom/android/server/wm/TaskSnapshotPersister;->setPaused(Z)V
 HSPLcom/android/server/wm/TaskSnapshotPersister;->start()V
 PLcom/android/server/wm/TaskSnapshotPersister;->use16BitFormat()Z
@@ -39172,6 +42440,31 @@
 HSPLcom/android/server/wm/TaskTapPointerEventListener;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/TaskTapPointerEventListener;->onPointerEvent(Landroid/view/MotionEvent;)V
 HSPLcom/android/server/wm/TaskTapPointerEventListener;->setTouchExcludeRegion(Landroid/graphics/Region;)V
+HPLcom/android/server/wm/TaskTile;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;II)V
+PLcom/android/server/wm/TaskTile;->createEmptyActivityInfo()Landroid/content/pm/ActivityInfo;
+PLcom/android/server/wm/TaskTile;->deferScheduleMultiWindowModeChanged()Z
+PLcom/android/server/wm/TaskTile;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+HPLcom/android/server/wm/TaskTile;->fillTaskInfo(Landroid/app/TaskInfo;)V
+HPLcom/android/server/wm/TaskTile;->getActivityType()I
+HPLcom/android/server/wm/TaskTile;->getBounds()Landroid/graphics/Rect;
+HPLcom/android/server/wm/TaskTile;->getBounds(Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/TaskTile;->getChildCount()I
+HPLcom/android/server/wm/TaskTile;->getDisplayedBounds()Landroid/graphics/Rect;
+HPLcom/android/server/wm/TaskTile;->getPendingTransaction()Landroid/view/SurfaceControl$Transaction;
+HPLcom/android/server/wm/TaskTile;->getSurfaceControl()Landroid/view/SurfaceControl;
+HPLcom/android/server/wm/TaskTile;->isAttached()Z
+HPLcom/android/server/wm/TaskTile;->isCompatible(II)Z
+HPLcom/android/server/wm/TaskTile;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HPLcom/android/server/wm/TaskTile;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/TaskTile;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
+HPLcom/android/server/wm/TaskTile;->removeAllChildren()V
+PLcom/android/server/wm/TaskTile;->removeImmediately()V
+HPLcom/android/server/wm/TaskTile;->resolveTileOverrideConfiguration(Landroid/content/res/Configuration;)V
+HPLcom/android/server/wm/TaskTile;->setBounds(Landroid/graphics/Rect;)I
+HPLcom/android/server/wm/TaskTile;->supportsSplitScreenWindowingMode()Z
+PLcom/android/server/wm/TaskTile;->taskOrganizerDied()V
+PLcom/android/server/wm/TaskTile;->toString()Ljava/lang/String;
+HPLcom/android/server/wm/TaskTile;->updateSurfacePosition()V
 HSPLcom/android/server/wm/UnknownAppVisibilityController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
 HSPLcom/android/server/wm/UnknownAppVisibilityController;->allResolved()Z
 HPLcom/android/server/wm/UnknownAppVisibilityController;->appRemovedOrHidden(Lcom/android/server/wm/ActivityRecord;)V
@@ -39217,6 +42510,7 @@
 HSPLcom/android/server/wm/WallpaperController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
 HSPLcom/android/server/wm/WallpaperController;->addWallpaperToken(Lcom/android/server/wm/WallpaperWindowToken;)V
 HSPLcom/android/server/wm/WallpaperController;->adjustWallpaperWindows()V
+HPLcom/android/server/wm/WallpaperController;->adjustWallpaperWindowsForAppTransitionIfNeeded(Landroid/util/ArraySet;)V
 HSPLcom/android/server/wm/WallpaperController;->adjustWallpaperWindowsForAppTransitionIfNeeded(Landroid/util/ArraySet;Landroid/util/ArraySet;)V
 HSPLcom/android/server/wm/WallpaperController;->clearLastWallpaperTimeoutTime()V
 HSPLcom/android/server/wm/WallpaperController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
@@ -39249,6 +42543,7 @@
 PLcom/android/server/wm/WallpaperVisibilityListeners;->registerWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)V
 PLcom/android/server/wm/WallpaperVisibilityListeners;->unregisterWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)V
 HSPLcom/android/server/wm/WallpaperWindowToken;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;ZLcom/android/server/wm/DisplayContent;Z)V
+PLcom/android/server/wm/WallpaperWindowToken;->adjustWindowParams(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;)V
 HPLcom/android/server/wm/WallpaperWindowToken;->forAllWallpaperWindows(Ljava/util/function/Consumer;)V
 HPLcom/android/server/wm/WallpaperWindowToken;->hasVisibleNotDrawnWallpaper()Z
 HSPLcom/android/server/wm/WallpaperWindowToken;->hideWallpaperToken(ZLjava/lang/String;)V
@@ -39286,7 +42581,7 @@
 HSPLcom/android/server/wm/WindowAnimator;->executeAfterPrepareSurfacesRunnables()V
 HSPLcom/android/server/wm/WindowAnimator;->getDisplayContentsAnimatorLocked(I)Lcom/android/server/wm/WindowAnimator$DisplayContentsAnimator;
 PLcom/android/server/wm/WindowAnimator;->isAnimating()Z
-PLcom/android/server/wm/WindowAnimator;->isAnimationScheduled()Z
+HPLcom/android/server/wm/WindowAnimator;->isAnimationScheduled()Z
 HSPLcom/android/server/wm/WindowAnimator;->lambda$new$0$WindowAnimator()V
 HSPLcom/android/server/wm/WindowAnimator;->lambda$new$1$WindowAnimator(J)V
 HSPLcom/android/server/wm/WindowAnimator;->orAnimating(Z)V
@@ -39317,6 +42612,7 @@
 HSPLcom/android/server/wm/WindowContainer;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/wm/WindowContainer;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V
 HSPLcom/android/server/wm/WindowContainer;->assignRelativeLayer(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;I)V
+HPLcom/android/server/wm/WindowContainer;->canCreateRemoteAnimationTarget()Z
 HSPLcom/android/server/wm/WindowContainer;->cancelAnimation()V
 HSPLcom/android/server/wm/WindowContainer;->checkAppWindowsReadyToShow()V
 HSPLcom/android/server/wm/WindowContainer;->checkCompleteDeferredRemoval()Z
@@ -39332,6 +42628,7 @@
 PLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Function;Lcom/android/server/wm/WindowContainer;ZZ)Z
 HPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Function;Lcom/android/server/wm/WindowContainer;ZZ[Z)Z
 HSPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Function;Z)Z
+HPLcom/android/server/wm/WindowContainer;->forAllLeafTasks(Ljava/util/function/Consumer;Z)V
 HSPLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Consumer;)V
 HSPLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Consumer;Z)V
 HSPLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Function;)Z
@@ -39362,6 +42659,7 @@
 HSPLcom/android/server/wm/WindowContainer;->getDimmer()Lcom/android/server/wm/Dimmer;
 HSPLcom/android/server/wm/WindowContainer;->getDisplayContent()Lcom/android/server/wm/DisplayContent;
 HSPLcom/android/server/wm/WindowContainer;->getDisplayedBounds()Landroid/graphics/Rect;
+HSPLcom/android/server/wm/WindowContainer;->getLastOrientationSource()Lcom/android/server/wm/WindowContainer;
 HSPLcom/android/server/wm/WindowContainer;->getOrientation()I
 HSPLcom/android/server/wm/WindowContainer;->getOrientation(I)I
 HSPLcom/android/server/wm/WindowContainer;->getParent()Lcom/android/server/wm/ConfigurationContainer;
@@ -39372,6 +42670,7 @@
 HPLcom/android/server/wm/WindowContainer;->getPrefixOrderIndex()I
 HPLcom/android/server/wm/WindowContainer;->getPrefixOrderIndex(Lcom/android/server/wm/WindowContainer;)I
 HSPLcom/android/server/wm/WindowContainer;->getRelativeDisplayedPosition(Landroid/graphics/Point;)V
+PLcom/android/server/wm/WindowContainer;->getRemoteToken()Lcom/android/server/wm/WindowContainer$RemoteToken;
 HSPLcom/android/server/wm/WindowContainer;->getRequestedConfigurationOrientation()I
 HSPLcom/android/server/wm/WindowContainer;->getSession()Landroid/view/SurfaceSession;
 HPLcom/android/server/wm/WindowContainer;->getSurfaceAnimationRunner()Lcom/android/server/wm/SurfaceAnimationRunner;
@@ -39409,6 +42708,7 @@
 HSPLcom/android/server/wm/WindowContainer;->lambda$isAppTransitioning$0(Lcom/android/server/wm/ActivityRecord;)Z
 HPLcom/android/server/wm/WindowContainer;->lambda$waitForAllWindowsDrawn$13$WindowContainer(Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/WindowContainer;->lambda$waitForAllWindowsDrawn$13$WindowContainer(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/WindowContainer;->lambda$waitForAllWindowsDrawn$14$WindowContainer(Lcom/android/server/wm/WindowState;)V
 HPLcom/android/server/wm/WindowContainer;->loadAnimation(Landroid/view/WindowManager$LayoutParams;IZZ)Landroid/view/animation/Animation;
 HPLcom/android/server/wm/WindowContainer;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
 HSPLcom/android/server/wm/WindowContainer;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder;
@@ -39419,13 +42719,14 @@
 HSPLcom/android/server/wm/WindowContainer;->okToAnimate(Z)Z
 HSPLcom/android/server/wm/WindowContainer;->okToDisplay()Z
 HSPLcom/android/server/wm/WindowContainer;->onAnimationFinished()V
-HPLcom/android/server/wm/WindowContainer;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
+HSPLcom/android/server/wm/WindowContainer;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
 HPLcom/android/server/wm/WindowContainer;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
 HPLcom/android/server/wm/WindowContainer;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/wm/WindowContainer;->onAppTransitionDone()V
 HSPLcom/android/server/wm/WindowContainer;->onChildAdded(Lcom/android/server/wm/WindowContainer;)V
 HSPLcom/android/server/wm/WindowContainer;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
 HPLcom/android/server/wm/WindowContainer;->onChildRemoved(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/WindowContainer;->onChildVisibilityRequested(Z)V
 HSPLcom/android/server/wm/WindowContainer;->onConfigurationChanged(Landroid/content/res/Configuration;)V
 HSPLcom/android/server/wm/WindowContainer;->onDescendantOrientationChanged(Landroid/os/IBinder;Lcom/android/server/wm/ConfigurationContainer;)Z
 HSPLcom/android/server/wm/WindowContainer;->onDescendantOverrideConfigurationChanged()V
@@ -39436,6 +42737,7 @@
 HPLcom/android/server/wm/WindowContainer;->onParentResize()V
 HSPLcom/android/server/wm/WindowContainer;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
 HSPLcom/android/server/wm/WindowContainer;->onResize()V
+HSPLcom/android/server/wm/WindowContainer;->onSurfaceShown(Landroid/view/SurfaceControl$Transaction;)V
 HSPLcom/android/server/wm/WindowContainer;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
 HSPLcom/android/server/wm/WindowContainer;->prepareSurfaces()V
 HPLcom/android/server/wm/WindowContainer;->processForAllActivitiesWithBoundary(Ljava/util/function/Function;Lcom/android/server/wm/WindowContainer;ZZ[ZLcom/android/server/wm/WindowContainer;)Z
@@ -39461,6 +42763,7 @@
 PLcom/android/server/wm/WindowContainer;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZI)V
 HPLcom/android/server/wm/WindowContainer;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZILcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
 HPLcom/android/server/wm/WindowContainer;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;ZLjava/lang/Runnable;)V
+PLcom/android/server/wm/WindowContainer;->switchUser(I)V
 PLcom/android/server/wm/WindowContainer;->transferAnimation(Lcom/android/server/wm/WindowContainer;)V
 HSPLcom/android/server/wm/WindowContainer;->updateSurfacePosition()V
 HPLcom/android/server/wm/WindowContainer;->waitForAllWindowsDrawn()V
@@ -39524,6 +42827,7 @@
 HSPLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;->onAppTransitionFinishedLocked(Landroid/os/IBinder;)V
 HSPLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;->onAppTransitionPendingLocked()V
 HSPLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;->onAppTransitionStartingLocked(IJJJ)I
+PLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;->onAppTransitionTimeoutLocked()V
 PLcom/android/server/wm/WindowManagerInternal$IDragDropCallback;->postPerformDrag()V
 PLcom/android/server/wm/WindowManagerInternal$IDragDropCallback;->postReportDropResult()V
 PLcom/android/server/wm/WindowManagerInternal$IDragDropCallback;->prePerformDrag(Landroid/view/IWindow;Landroid/os/IBinder;IFFFFLandroid/content/ClipData;)Z
@@ -39567,6 +42871,8 @@
 HPLcom/android/server/wm/WindowManagerService$LocalService;->getTopFocusedDisplayId()I
 PLcom/android/server/wm/WindowManagerService$LocalService;->getTopFocusedDisplayUiContext()Landroid/content/Context;
 HPLcom/android/server/wm/WindowManagerService$LocalService;->getWindowOwnerUserId(Landroid/os/IBinder;)I
+HPLcom/android/server/wm/WindowManagerService$LocalService;->hideIme(I)V
+HPLcom/android/server/wm/WindowManagerService$LocalService;->hideIme(Landroid/os/IBinder;)V
 HPLcom/android/server/wm/WindowManagerService$LocalService;->isHardKeyboardAvailable()Z
 HPLcom/android/server/wm/WindowManagerService$LocalService;->isInputMethodClientFocus(III)Z
 HPLcom/android/server/wm/WindowManagerService$LocalService;->isKeyguardShowingAndNotOccluded()Z
@@ -39581,7 +42887,7 @@
 PLcom/android/server/wm/WindowManagerService$LocalService;->reportPasswordChanged(I)V
 HSPLcom/android/server/wm/WindowManagerService$LocalService;->requestTraversalFromDisplayManager()V
 HPLcom/android/server/wm/WindowManagerService$LocalService;->setAccessibilityIdToSurfaceMetadata(Landroid/os/IBinder;I)V
-PLcom/android/server/wm/WindowManagerService$LocalService;->setForceShowMagnifiableBounds(IZ)V
+HPLcom/android/server/wm/WindowManagerService$LocalService;->setForceShowMagnifiableBounds(IZ)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->setInputFilter(Landroid/view/IInputFilter;)V
 PLcom/android/server/wm/WindowManagerService$LocalService;->setMagnificationCallbacks(ILcom/android/server/wm/WindowManagerInternal$MagnificationCallbacks;)Z
 HPLcom/android/server/wm/WindowManagerService$LocalService;->setMagnificationSpec(ILandroid/view/MagnificationSpec;)V
@@ -39589,6 +42895,7 @@
 PLcom/android/server/wm/WindowManagerService$LocalService;->setWindowsForAccessibilityCallback(ILcom/android/server/wm/WindowManagerInternal$WindowsForAccessibilityCallback;)Z
 PLcom/android/server/wm/WindowManagerService$LocalService;->shouldShowIme(I)Z
 PLcom/android/server/wm/WindowManagerService$LocalService;->shouldShowSystemDecorOnDisplay(I)Z
+HPLcom/android/server/wm/WindowManagerService$LocalService;->showImePostLayout(Landroid/os/IBinder;)V
 HPLcom/android/server/wm/WindowManagerService$LocalService;->updateInputMethodTargetWindow(Landroid/os/IBinder;Landroid/os/IBinder;)V
 HPLcom/android/server/wm/WindowManagerService$LocalService;->updateInputMethodWindowStatus(Landroid/os/IBinder;ZZ)V
 HPLcom/android/server/wm/WindowManagerService$LocalService;->waitForAllWindowsDrawn(Ljava/lang/Runnable;JI)V
@@ -39599,7 +42906,9 @@
 HPLcom/android/server/wm/WindowManagerService$MousePositionTracker;->onPointerEvent(Landroid/view/MotionEvent;)V
 PLcom/android/server/wm/WindowManagerService$RotationWatcher;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/IRotationWatcher;Landroid/os/IBinder$DeathRecipient;I)V
 HSPLcom/android/server/wm/WindowManagerService$SettingsObserver;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/WindowManagerService$SettingsObserver;->loadSettings()V
 PLcom/android/server/wm/WindowManagerService$SettingsObserver;->onChange(ZLandroid/net/Uri;)V
+HSPLcom/android/server/wm/WindowManagerService$SettingsObserver;->updateFixedRotationTransform()V
 PLcom/android/server/wm/WindowManagerService$SettingsObserver;->updateForceDesktopModeOnExternalDisplays()V
 PLcom/android/server/wm/WindowManagerService$SettingsObserver;->updateForceResizableTasks()V
 PLcom/android/server/wm/WindowManagerService$SettingsObserver;->updateFreeformWindowManagement()V
@@ -39636,10 +42945,12 @@
 PLcom/android/server/wm/WindowManagerService;->access$802(Lcom/android/server/wm/WindowManagerService;F)F
 PLcom/android/server/wm/WindowManagerService;->access$900(Lcom/android/server/wm/WindowManagerService;)F
 PLcom/android/server/wm/WindowManagerService;->access$902(Lcom/android/server/wm/WindowManagerService;F)F
+PLcom/android/server/wm/WindowManagerService;->addShellRoot(ILandroid/view/IWindow;I)Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/WindowManagerService;->addWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/InputChannel;Landroid/view/InsetsState;)I
 HSPLcom/android/server/wm/WindowManagerService;->addWindowContextToken(Landroid/os/IBinder;IILjava/lang/String;)I
 HSPLcom/android/server/wm/WindowManagerService;->addWindowToken(Landroid/os/IBinder;II)V
 HPLcom/android/server/wm/WindowManagerService;->addWindowTokenWithOptions(Landroid/os/IBinder;IILandroid/os/Bundle;Ljava/lang/String;)I
+HPLcom/android/server/wm/WindowManagerService;->addWindowTokenWithOptions(Landroid/os/IBinder;IILandroid/os/Bundle;Ljava/lang/String;Z)I
 HSPLcom/android/server/wm/WindowManagerService;->applyForcedPropertiesForDefaultDisplay()Z
 PLcom/android/server/wm/WindowManagerService;->applyMagnificationSpecLocked(ILandroid/view/MagnificationSpec;)V
 HSPLcom/android/server/wm/WindowManagerService;->boostPriorityForLockedSection()V
@@ -39694,6 +43005,7 @@
 PLcom/android/server/wm/WindowManagerService;->freezeDisplayRotation(II)V
 PLcom/android/server/wm/WindowManagerService;->freezeRotation(I)V
 PLcom/android/server/wm/WindowManagerService;->getAnimationScale(I)F
+PLcom/android/server/wm/WindowManagerService;->getAnimationScales()[F
 HPLcom/android/server/wm/WindowManagerService;->getBaseDisplayDensity(I)I
 HSPLcom/android/server/wm/WindowManagerService;->getBaseDisplaySize(ILandroid/graphics/Point;)V
 HSPLcom/android/server/wm/WindowManagerService;->getCameraLensCoverState()I
@@ -39721,6 +43033,7 @@
 HPLcom/android/server/wm/WindowManagerService;->getWindowDisplayFrame(Lcom/android/server/wm/Session;Landroid/view/IWindow;Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/WindowManagerService;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId;
 HSPLcom/android/server/wm/WindowManagerService;->getWindowInsets(Landroid/view/WindowManager$LayoutParams;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;)V
+HPLcom/android/server/wm/WindowManagerService;->getWindowInsets(Landroid/view/WindowManager$LayoutParams;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/InsetsState;)Z
 HSPLcom/android/server/wm/WindowManagerService;->getWindowManagerLock()Ljava/lang/Object;
 HPLcom/android/server/wm/WindowManagerService;->grantInputChannel(IIILandroid/view/SurfaceControl;Landroid/view/IWindow;Landroid/os/IBinder;ILandroid/view/InputChannel;)V
 PLcom/android/server/wm/WindowManagerService;->grantInputChannel(IIILandroid/view/SurfaceControl;Landroid/view/IWindow;Landroid/os/IBinder;Landroid/view/InputChannel;)V
@@ -39753,14 +43066,17 @@
 PLcom/android/server/wm/WindowManagerService;->lambda$new$0$WindowManagerService()V
 PLcom/android/server/wm/WindowManagerService;->lambda$onOverlayChanged$12(Lcom/android/server/wm/DisplayContent;)V
 PLcom/android/server/wm/WindowManagerService;->lambda$requestAssistScreenshot$3(Landroid/app/IAssistDataReceiver;Landroid/graphics/Bitmap;)V
+PLcom/android/server/wm/WindowManagerService;->lambda$setCurrentUser$2(ILcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/WindowManagerService;->lambda$updateNonSystemOverlayWindowsVisibilityIfNeeded$13(ZLcom/android/server/wm/WindowState;)V
 PLcom/android/server/wm/WindowManagerService;->lockNow(Landroid/os/Bundle;)V
 HSPLcom/android/server/wm/WindowManagerService;->main(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/WindowManagerService;
 HSPLcom/android/server/wm/WindowManagerService;->main(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Function;)Lcom/android/server/wm/WindowManagerService;
 HSPLcom/android/server/wm/WindowManagerService;->makeSurfaceBuilder(Landroid/view/SurfaceSession;)Landroid/view/SurfaceControl$Builder;
 HSPLcom/android/server/wm/WindowManagerService;->makeWindowFreezingScreenIfNeededLocked(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/WindowManagerService;->modifyDisplayWindowInsets(ILandroid/view/InsetsState;)V
 HPLcom/android/server/wm/WindowManagerService;->monitor()V
 HSPLcom/android/server/wm/WindowManagerService;->notifyFocusChanged()V
+PLcom/android/server/wm/WindowManagerService;->notifyHardKeyboardStatusChange()V
 PLcom/android/server/wm/WindowManagerService;->notifyKeyguardFlagsChanged(Ljava/lang/Runnable;I)V
 PLcom/android/server/wm/WindowManagerService;->notifyKeyguardTrustedChanged()V
 PLcom/android/server/wm/WindowManagerService;->notifyShowingDreamChanged()V
@@ -39816,9 +43132,12 @@
 PLcom/android/server/wm/WindowManagerService;->scheduleWindowReplacementTimeouts(Lcom/android/server/wm/ActivityRecord;)V
 PLcom/android/server/wm/WindowManagerService;->screenTurningOff(Lcom/android/server/policy/WindowManagerPolicy$ScreenOffListener;)V
 PLcom/android/server/wm/WindowManagerService;->setAnimationScale(IF)V
+PLcom/android/server/wm/WindowManagerService;->setAnimationScales([F)V
 HSPLcom/android/server/wm/WindowManagerService;->setAnimatorDurationScale(F)V
 HSPLcom/android/server/wm/WindowManagerService;->setAodShowing(Z)V
 PLcom/android/server/wm/WindowManagerService;->setCurrentProfileIds([I)V
+PLcom/android/server/wm/WindowManagerService;->setCurrentUser(I[I)V
+PLcom/android/server/wm/WindowManagerService;->setDisplayWindowInsetsController(ILandroid/view/IDisplayWindowInsetsController;)V
 HSPLcom/android/server/wm/WindowManagerService;->setDisplayWindowRotationController(Landroid/view/IDisplayWindowRotationController;)V
 PLcom/android/server/wm/WindowManagerService;->setDockedStackCreateStateLocked(ILandroid/graphics/Rect;)V
 HPLcom/android/server/wm/WindowManagerService;->setDockedStackDividerTouchRegion(Landroid/graphics/Rect;)V
@@ -39827,7 +43146,7 @@
 PLcom/android/server/wm/WindowManagerService;->setForwardedInsets(ILandroid/graphics/Insets;)V
 HSPLcom/android/server/wm/WindowManagerService;->setGlobalShadowSettings()V
 HSPLcom/android/server/wm/WindowManagerService;->setHoldScreenLocked(Lcom/android/server/wm/Session;)V
-PLcom/android/server/wm/WindowManagerService;->setInTouchMode(Z)V
+HPLcom/android/server/wm/WindowManagerService;->setInTouchMode(Z)V
 HPLcom/android/server/wm/WindowManagerService;->setInsetsWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
 HSPLcom/android/server/wm/WindowManagerService;->setKeyguardGoingAway(Z)V
 HSPLcom/android/server/wm/WindowManagerService;->setKeyguardOrAodShowingOnDefaultDisplay(Z)V
@@ -39837,6 +43156,7 @@
 HPLcom/android/server/wm/WindowManagerService;->setResizeDimLayer(ZIF)V
 HSPLcom/android/server/wm/WindowManagerService;->setShadowRenderer()V
 PLcom/android/server/wm/WindowManagerService;->setStrictModeVisualIndicatorPreference(Ljava/lang/String;)V
+PLcom/android/server/wm/WindowManagerService;->setSwitchingUser(Z)V
 HPLcom/android/server/wm/WindowManagerService;->setTransparentRegionWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;Landroid/graphics/Region;)V
 PLcom/android/server/wm/WindowManagerService;->setWillReplaceWindows(Landroid/os/IBinder;Z)V
 PLcom/android/server/wm/WindowManagerService;->setWindowOpaqueLocked(Landroid/os/IBinder;Z)V
@@ -39845,8 +43165,11 @@
 PLcom/android/server/wm/WindowManagerService;->shouldShowSystemDecors(I)Z
 HSPLcom/android/server/wm/WindowManagerService;->showEmulatorDisplayOverlayIfNeeded()V
 PLcom/android/server/wm/WindowManagerService;->showRecentApps()V
+PLcom/android/server/wm/WindowManagerService;->startFreezingDisplayLocked(II)V
 HSPLcom/android/server/wm/WindowManagerService;->startFreezingDisplayLocked(IILcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/WindowManagerService;->startFreezingScreen(II)V
 HSPLcom/android/server/wm/WindowManagerService;->stopFreezingDisplayLocked()V
+PLcom/android/server/wm/WindowManagerService;->stopFreezingScreen()V
 HSPLcom/android/server/wm/WindowManagerService;->systemReady()V
 PLcom/android/server/wm/WindowManagerService;->thawDisplayRotation(I)V
 PLcom/android/server/wm/WindowManagerService;->thawRotation()V
@@ -39861,6 +43184,7 @@
 HSPLcom/android/server/wm/WindowManagerService;->updateFocusedWindowLocked(IZ)Z
 PLcom/android/server/wm/WindowManagerService;->updateHiddenWhileSuspendedState(Landroid/util/ArraySet;Z)V
 HPLcom/android/server/wm/WindowManagerService;->updateInputChannel(Landroid/os/IBinder;IIILandroid/view/SurfaceControl;Ljava/lang/String;Landroid/view/InputApplicationHandle;I)V
+PLcom/android/server/wm/WindowManagerService;->updateInputChannel(Landroid/os/IBinder;ILandroid/view/SurfaceControl;I)V
 HSPLcom/android/server/wm/WindowManagerService;->updateNonSystemOverlayWindowsVisibilityIfNeeded(Lcom/android/server/wm/WindowState;Z)V
 HPLcom/android/server/wm/WindowManagerService;->updatePointerIcon(Landroid/view/IWindow;)V
 HSPLcom/android/server/wm/WindowManagerService;->updateRotation(ZZ)V
@@ -39932,6 +43256,7 @@
 HSPLcom/android/server/wm/WindowProcessController;->hasVisibleActivities()Z
 PLcom/android/server/wm/WindowProcessController;->isBoundByForegroundUid()Z
 HSPLcom/android/server/wm/WindowProcessController;->isCrashing()Z
+PLcom/android/server/wm/WindowProcessController;->isEmbedded()Z
 HSPLcom/android/server/wm/WindowProcessController;->isHomeProcess()Z
 HSPLcom/android/server/wm/WindowProcessController;->isInstrumenting()Z
 HPLcom/android/server/wm/WindowProcessController;->isInterestingToUser()Z
@@ -40053,6 +43378,7 @@
 HPLcom/android/server/wm/WindowState;->canBeImeTarget()Z
 HSPLcom/android/server/wm/WindowState;->canReceiveKeys()Z
 HSPLcom/android/server/wm/WindowState;->canReceiveKeys(Z)Z
+HPLcom/android/server/wm/WindowState;->canShowTransient()Z
 HPLcom/android/server/wm/WindowState;->canShowWhenLocked()Z
 HSPLcom/android/server/wm/WindowState;->cantReceiveTouchInput()Z
 HPLcom/android/server/wm/WindowState;->checkPolicyVisibilityChange()V
@@ -40096,6 +43422,7 @@
 PLcom/android/server/wm/WindowState;->getDeferTransactionBarrier()Landroid/view/SurfaceControl;
 HSPLcom/android/server/wm/WindowState;->getDisplayContent()Lcom/android/server/wm/DisplayContent;
 HPLcom/android/server/wm/WindowState;->getDisplayFrameLw()Landroid/graphics/Rect;
+HPLcom/android/server/wm/WindowState;->getDisplayFrames(Lcom/android/server/wm/DisplayFrames;)Lcom/android/server/wm/DisplayFrames;
 HSPLcom/android/server/wm/WindowState;->getDisplayId()I
 HPLcom/android/server/wm/WindowState;->getDisplayInfo()Landroid/view/DisplayInfo;
 HPLcom/android/server/wm/WindowState;->getDisplayedBounds()Landroid/graphics/Rect;
@@ -40106,8 +43433,10 @@
 PLcom/android/server/wm/WindowState;->getGivenContentInsetsLw()Landroid/graphics/Rect;
 HPLcom/android/server/wm/WindowState;->getGivenInsetsPendingLw()Z
 PLcom/android/server/wm/WindowState;->getGivenVisibleInsetsLw()Landroid/graphics/Rect;
+HPLcom/android/server/wm/WindowState;->getImeControlTarget()Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/WindowState;->getInputDispatchingTimeoutNanos()J
 HSPLcom/android/server/wm/WindowState;->getInsetsForRelayout(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/WindowState;->getInsetsState()Landroid/view/InsetsState;
 HSPLcom/android/server/wm/WindowState;->getKeyInterceptionInfo()Lcom/android/internal/policy/KeyInterceptionInfo;
 HSPLcom/android/server/wm/WindowState;->getLastReportedConfiguration()Landroid/content/res/Configuration;
 HSPLcom/android/server/wm/WindowState;->getLastReportedMergedConfiguration(Landroid/util/MergedConfiguration;)V
@@ -40120,8 +43449,9 @@
 PLcom/android/server/wm/WindowState;->getParentFrame()Landroid/graphics/Rect;
 HSPLcom/android/server/wm/WindowState;->getParentWindow()Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/WindowState;->getProcessGlobalConfiguration()Landroid/content/res/Configuration;
+HPLcom/android/server/wm/WindowState;->getProtoFieldId()J
 HSPLcom/android/server/wm/WindowState;->getReplacingWindow()Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/WindowState;->getRequestedInsetsState()Landroid/view/InsetsState;
+HPLcom/android/server/wm/WindowState;->getRequestedInsetsState()Landroid/view/InsetsState;
 PLcom/android/server/wm/WindowState;->getResizeMode()I
 HSPLcom/android/server/wm/WindowState;->getRootTask()Lcom/android/server/wm/ActivityStack;
 HSPLcom/android/server/wm/WindowState;->getRootTaskId()I
@@ -40143,6 +43473,7 @@
 HPLcom/android/server/wm/WindowState;->getTransformationMatrix([FLandroid/graphics/Matrix;)V
 HPLcom/android/server/wm/WindowState;->getVisibleBounds(Landroid/graphics/Rect;)V
 HPLcom/android/server/wm/WindowState;->getVisibleFrameLw()Landroid/graphics/Rect;
+PLcom/android/server/wm/WindowState;->getWindow()Lcom/android/server/wm/WindowState;
 HPLcom/android/server/wm/WindowState;->getWindow(Ljava/util/function/Predicate;)Lcom/android/server/wm/WindowState;
 HSPLcom/android/server/wm/WindowState;->getWindowFrames()Lcom/android/server/wm/WindowFrames;
 HPLcom/android/server/wm/WindowState;->getWindowInfo()Landroid/view/WindowInfo;
@@ -40155,10 +43486,11 @@
 HSPLcom/android/server/wm/WindowState;->hasMoved()Z
 HPLcom/android/server/wm/WindowState;->hasTapExcludeRegion()Z
 HPLcom/android/server/wm/WindowState;->hasVisibleNotDrawnWallpaper()Z
+HPLcom/android/server/wm/WindowState;->hideInsets(IZ)V
 HPLcom/android/server/wm/WindowState;->hideLw(Z)Z
 HPLcom/android/server/wm/WindowState;->hideLw(ZZ)Z
 HSPLcom/android/server/wm/WindowState;->hideNonSystemOverlayWindowsWhenVisible()Z
-PLcom/android/server/wm/WindowState;->hidePermanentlyLw()V
+HPLcom/android/server/wm/WindowState;->hidePermanentlyLw()V
 HPLcom/android/server/wm/WindowState;->hideWallpaperWindow(ZLjava/lang/String;)V
 HSPLcom/android/server/wm/WindowState;->inAppWindowThatMatchesParentBounds()Z
 HSPLcom/android/server/wm/WindowState;->inSizeCompatMode()Z
@@ -40219,6 +43551,7 @@
 HSPLcom/android/server/wm/WindowState;->needsRelativeLayeringToIme()Z
 HSPLcom/android/server/wm/WindowState;->needsZBoost()Z
 HPLcom/android/server/wm/WindowState;->notifyInsetsChanged()V
+HPLcom/android/server/wm/WindowState;->notifyInsetsControlChanged()V
 HPLcom/android/server/wm/WindowState;->onAnimationFinished()V
 HPLcom/android/server/wm/WindowState;->onAnimationFinished(ILcom/android/server/wm/AnimationAdapter;)V
 HPLcom/android/server/wm/WindowState;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
@@ -40263,6 +43596,7 @@
 HPLcom/android/server/wm/WindowState;->seamlesslyRotateIfAllowed(Landroid/view/SurfaceControl$Transaction;IIZ)V
 HSPLcom/android/server/wm/WindowState;->sendAppVisibilityToClients()V
 PLcom/android/server/wm/WindowState;->setAppOpVisibilityLw(Z)V
+PLcom/android/server/wm/WindowState;->setControllableInsetProvider(Lcom/android/server/wm/InsetsSourceProvider;)V
 HSPLcom/android/server/wm/WindowState;->setDisplayLayoutNeeded()V
 HPLcom/android/server/wm/WindowState;->setDragResizing()V
 HSPLcom/android/server/wm/WindowState;->setDrawnStateEvaluated(Z)V
@@ -40289,6 +43623,7 @@
 PLcom/android/server/wm/WindowState;->shouldKeepVisibleDeadAppWindow()Z
 HPLcom/android/server/wm/WindowState;->shouldMagnify()Z
 HSPLcom/android/server/wm/WindowState;->showForAllUsers()Z
+HPLcom/android/server/wm/WindowState;->showInsets(IZ)V
 HPLcom/android/server/wm/WindowState;->showLw(Z)Z
 HPLcom/android/server/wm/WindowState;->showLw(ZZ)Z
 HSPLcom/android/server/wm/WindowState;->showToCurrentUser()Z
@@ -40299,6 +43634,7 @@
 HPLcom/android/server/wm/WindowState;->subtractInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
 HSPLcom/android/server/wm/WindowState;->subtractTouchExcludeRegionIfNeeded(Landroid/graphics/Region;)V
 HPLcom/android/server/wm/WindowState;->surfaceInsetsChanging()Z
+PLcom/android/server/wm/WindowState;->switchUser(I)V
 HSPLcom/android/server/wm/WindowState;->toString()Ljava/lang/String;
 HSPLcom/android/server/wm/WindowState;->transformClipRectFromScreenToSurfaceSpace(Landroid/graphics/Rect;)V
 HSPLcom/android/server/wm/WindowState;->transformFrameToSurfacePosition(IILandroid/graphics/Point;)V
@@ -40408,24 +43744,38 @@
 HSPLcom/android/server/wm/WindowSurfacePlacer;->requestTraversal()V
 HSPLcom/android/server/wm/WindowToken;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;IZLcom/android/server/wm/DisplayContent;Z)V
 HSPLcom/android/server/wm/WindowToken;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;IZLcom/android/server/wm/DisplayContent;ZZ)V
+HPLcom/android/server/wm/WindowToken;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;IZLcom/android/server/wm/DisplayContent;ZZZ)V
 HSPLcom/android/server/wm/WindowToken;->addWindow(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/WindowToken;->adjustWindowParams(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;)V
+PLcom/android/server/wm/WindowToken;->applyFixedRotationTransform(Lcom/android/server/wm/WindowToken;)V
 HSPLcom/android/server/wm/WindowToken;->asActivityRecord()Lcom/android/server/wm/ActivityRecord;
 HSPLcom/android/server/wm/WindowToken;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V
 HPLcom/android/server/wm/WindowToken;->canLayerAboveSystemBars()Z
 HPLcom/android/server/wm/WindowToken;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
 HSPLcom/android/server/wm/WindowToken;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+PLcom/android/server/wm/WindowToken;->getFixedRotationTransformDisplayBounds()Landroid/graphics/Rect;
+PLcom/android/server/wm/WindowToken;->getFixedRotationTransformDisplayFrames()Lcom/android/server/wm/DisplayFrames;
+PLcom/android/server/wm/WindowToken;->getFixedRotationTransformDisplayInfo()Landroid/view/DisplayInfo;
+PLcom/android/server/wm/WindowToken;->getFixedRotationTransformInsetsState()Landroid/view/InsetsState;
 HSPLcom/android/server/wm/WindowToken;->getName()Ljava/lang/String;
 HSPLcom/android/server/wm/WindowToken;->getReplacingWindow()Lcom/android/server/wm/WindowState;
 HPLcom/android/server/wm/WindowToken;->getWindowLayerFromType()I
+PLcom/android/server/wm/WindowToken;->hasFixedRotationTransform()Z
 HPLcom/android/server/wm/WindowToken;->isEmpty()Z
 PLcom/android/server/wm/WindowToken;->isFirstChildWindowGreaterThanSecond(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)Z
+HSPLcom/android/server/wm/WindowToken;->isFixedRotationTransforming()Z
 HPLcom/android/server/wm/WindowToken;->lambda$new$0$WindowToken(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)I
+PLcom/android/server/wm/WindowToken;->linkFixedRotationTransform(Lcom/android/server/wm/WindowToken;)V
 HSPLcom/android/server/wm/WindowToken;->makeSurface()Landroid/view/SurfaceControl$Builder;
+HPLcom/android/server/wm/WindowToken;->onConfigurationChanged(Landroid/content/res/Configuration;)V
 HSPLcom/android/server/wm/WindowToken;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
 HPLcom/android/server/wm/WindowToken;->removeAllWindowsIfPossible()V
 HPLcom/android/server/wm/WindowToken;->removeImmediately()V
+HPLcom/android/server/wm/WindowToken;->reportConfigToWindowTokenClient()V
+HSPLcom/android/server/wm/WindowToken;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
 HPLcom/android/server/wm/WindowToken;->setExiting()V
 HSPLcom/android/server/wm/WindowToken;->toString()Ljava/lang/String;
+HSPLcom/android/server/wm/WindowToken;->updateSurfacePosition()V
 HPLcom/android/server/wm/WindowToken;->windowsCanBeWallpaperTarget()Z
 HSPLcom/android/server/wm/WindowTracing;-><init>(Ljava/io/File;Lcom/android/server/wm/WindowManagerService;Landroid/view/Choreographer;I)V
 HSPLcom/android/server/wm/WindowTracing;-><init>(Ljava/io/File;Lcom/android/server/wm/WindowManagerService;Landroid/view/Choreographer;Lcom/android/server/wm/WindowManagerGlobalLock;I)V
@@ -40465,6 +43815,7 @@
 HPLcom/android/server/wm/utils/RotationAnimationUtils;->createRotationMatrix(IIILandroid/graphics/Matrix;)V
 HPLcom/android/server/wm/utils/RotationAnimationUtils;->getAvgBorderLuma(Landroid/graphics/GraphicBuffer;Landroid/graphics/ColorSpace;)F
 HPLcom/android/server/wm/utils/RotationAnimationUtils;->getLumaOfSurfaceControl(Landroid/view/Display;Landroid/view/SurfaceControl;)F
+HPLcom/android/server/wm/utils/RotationAnimationUtils;->getMedianBorderLuma(Landroid/graphics/GraphicBuffer;Landroid/graphics/ColorSpace;)F
 HSPLcom/android/server/wm/utils/RotationCache;-><init>(Lcom/android/server/wm/utils/RotationCache$RotationDependentComputation;)V
 HSPLcom/android/server/wm/utils/RotationCache;->getOrCompute(Ljava/lang/Object;I)Ljava/lang/Object;
 HSPLcom/android/server/wm/utils/WmDisplayCutout;-><clinit>()V
@@ -40490,6 +43841,8 @@
 HSPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$elqG7IabJdUOCjFWiPV8vgrXnVI;->run(Lcom/google/android/startop/iorap/IIorap;)V
 HPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$qed0q0aplGsIh0O7dSm6JWk8wZI;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;)V
 HPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$qed0q0aplGsIh0O7dSm6JWk8wZI;->run(Lcom/google/android/startop/iorap/IIorap;)V
+PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$IorapdJobService$42YZ24cX_s4lPtOYWBr7EBOoX_A;-><init>(Landroid/app/job/JobParameters;)V
+PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$IorapdJobService$42YZ24cX_s4lPtOYWBr7EBOoX_A;->run(Lcom/google/android/startop/iorap/IIorap;)V
 PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$IorapdJobService$LUEcmjVFTNORsDoHk5dk5OHflTU;-><init>(Lcom/google/android/startop/iorap/RequestId;Landroid/app/job/JobParameters;)V
 PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$IorapdJobService$LUEcmjVFTNORsDoHk5dk5OHflTU;->run(Lcom/google/android/startop/iorap/IIorap;)V
 HSPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$miQO-RJhHA7C1W4BujwCS9blXFc;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;)V
@@ -40558,12 +43911,15 @@
 PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;Landroid/content/Context;)V
 PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;->bindProxy(Lcom/google/android/startop/iorap/IorapForwardingService$IorapdJobServiceProxy;)V
 PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;->lambda$onStartJob$0(Lcom/google/android/startop/iorap/RequestId;Landroid/app/job/JobParameters;Lcom/google/android/startop/iorap/IIorap;)V
+PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;->lambda$onStopJob$1(Landroid/app/job/JobParameters;Lcom/google/android/startop/iorap/IIorap;)V
 PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;->onIorapdDisconnected()V
 PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;->onIorapdTaskCompleted(Lcom/google/android/startop/iorap/RequestId;)V
 PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;->onStopJob(Landroid/app/job/JobParameters;)Z
 PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobServiceProxy;-><init>()V
 PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobServiceProxy;->getActualIorapdJobService()Lcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;
 PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobServiceProxy;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobServiceProxy;->onStopJob(Landroid/app/job/JobParameters;)Z
 HSPLcom/google/android/startop/iorap/IorapForwardingService$RemoteTaskListener;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;)V
 HSPLcom/google/android/startop/iorap/IorapForwardingService$RemoteTaskListener;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;Lcom/google/android/startop/iorap/IorapForwardingService$1;)V
 PLcom/google/android/startop/iorap/IorapForwardingService$RemoteTaskListener;->onComplete(Lcom/google/android/startop/iorap/RequestId;Lcom/google/android/startop/iorap/TaskResult;)V
@@ -40578,7 +43934,7 @@
 HSPLcom/google/android/startop/iorap/IorapForwardingService;->connectToRemoteAndConfigure()Z
 HSPLcom/google/android/startop/iorap/IorapForwardingService;->connectToRemoteAndConfigureLocked()Z
 HSPLcom/google/android/startop/iorap/IorapForwardingService;->encodeEnglishAlphabetStringIntoInt(Ljava/lang/String;)I
-PLcom/google/android/startop/iorap/IorapForwardingService;->handleRemoteError(Ljava/lang/Throwable;)V
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->handleRemoteError(Ljava/lang/Throwable;)V
 HSPLcom/google/android/startop/iorap/IorapForwardingService;->invokeRemote(Lcom/google/android/startop/iorap/IIorap;Lcom/google/android/startop/iorap/IorapForwardingService$RemoteRunnable;)Z
 HSPLcom/google/android/startop/iorap/IorapForwardingService;->isIorapEnabled()Z
 HSPLcom/google/android/startop/iorap/IorapForwardingService;->lambda$connectToRemoteAndConfigureLocked$0$IorapForwardingService(Lcom/google/android/startop/iorap/IIorap;)V
@@ -40620,8 +43976,12 @@
 Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;
 Landroid/content/pm/PackageManagerInternal$PackageListObserver;
 Landroid/content/pm/PackageManagerInternal;
+Landroid/hardware/audio/common/V2_0/AudioChannelMask;
 Landroid/hardware/audio/common/V2_0/AudioConfig;
+Landroid/hardware/audio/common/V2_0/AudioFormat;
 Landroid/hardware/audio/common/V2_0/AudioOffloadInfo;
+Landroid/hardware/audio/common/V2_0/AudioStreamType;
+Landroid/hardware/audio/common/V2_0/AudioUsage;
 Landroid/hardware/audio/common/V2_0/Uuid;
 Landroid/hardware/authsecret/V1_0/IAuthSecret$Proxy;
 Landroid/hardware/authsecret/V1_0/IAuthSecret;
@@ -40636,6 +43996,8 @@
 Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;
 Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback$Stub;
 Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback;
+Landroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint$Proxy;
+Landroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprint;
 Landroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprintClientCallback$Stub;
 Landroid/hardware/biometrics/fingerprint/V2_2/IBiometricsFingerprintClientCallback;
 Landroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;
@@ -40664,6 +44026,9 @@
 Landroid/hardware/health/V2_0/Result;
 Landroid/hardware/health/V2_0/StorageAttribute;
 Landroid/hardware/health/V2_0/StorageInfo;
+Landroid/hardware/health/V2_1/HealthInfo;
+Landroid/hardware/health/V2_1/IHealthInfoCallback$Stub;
+Landroid/hardware/health/V2_1/IHealthInfoCallback;
 Landroid/hardware/light/HwLight$1;
 Landroid/hardware/light/HwLight;
 Landroid/hardware/light/HwLightState;
@@ -40675,6 +44040,7 @@
 Landroid/hardware/oemlock/V1_0/IOemLock$isOemUnlockAllowedByCarrierCallback;
 Landroid/hardware/oemlock/V1_0/IOemLock$isOemUnlockAllowedByDeviceCallback;
 Landroid/hardware/oemlock/V1_0/IOemLock;
+Landroid/hardware/rebootescrow/IRebootEscrow$Stub$Proxy;
 Landroid/hardware/rebootescrow/IRebootEscrow$Stub;
 Landroid/hardware/rebootescrow/IRebootEscrow;
 Landroid/hardware/soundtrigger/V2_0/ConfidenceLevel;
@@ -40690,8 +44056,10 @@
 Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHw;
 Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHwCallback$PhraseRecognitionEvent;
 Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHwCallback$RecognitionEvent;
+Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHwCallback$RecognitionStatus;
 Landroid/hardware/soundtrigger/V2_0/ISoundTriggerHwCallback;
 Landroid/hardware/soundtrigger/V2_0/PhraseRecognitionExtra;
+Landroid/hardware/soundtrigger/V2_0/SoundModelType;
 Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$PhraseSoundModel;
 Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$RecognitionConfig;
 Landroid/hardware/soundtrigger/V2_1/ISoundTriggerHw$SoundModel;
@@ -40729,6 +44097,7 @@
 Landroid/hardware/usb/V1_2/ContaminantDetectionStatus;
 Landroid/hardware/usb/V1_2/ContaminantProtectionMode;
 Landroid/hardware/usb/V1_2/ContaminantProtectionStatus;
+Landroid/hardware/usb/V1_2/IUsb$Proxy;
 Landroid/hardware/usb/V1_2/IUsb;
 Landroid/hardware/usb/V1_2/IUsbCallback$Stub;
 Landroid/hardware/usb/V1_2/IUsbCallback;
@@ -40803,6 +44172,7 @@
 Landroid/net/IpMemoryStoreClient;
 Landroid/net/Layer2PacketParcelable;
 Landroid/net/MarkMaskParcel;
+Landroid/net/NattKeepalivePacketDataParcelable$1;
 Landroid/net/NattKeepalivePacketDataParcelable;
 Landroid/net/NetworkMonitorManager;
 Landroid/net/NetworkStackClient$1;
@@ -40869,9 +44239,13 @@
 Landroid/net/shared/ParcelableUtil;
 Landroid/net/shared/PrivateDnsConfig;
 Landroid/net/shared/ProvisioningConfiguration$Builder;
+Landroid/net/shared/ProvisioningConfiguration$ScanResultInfo$InformationElement;
+Landroid/net/shared/ProvisioningConfiguration$ScanResultInfo;
 Landroid/net/shared/ProvisioningConfiguration;
+Landroid/net/shared/RouteUtils$1;
 Landroid/net/shared/RouteUtils$ModifyOperation;
 Landroid/net/shared/RouteUtils;
+Landroid/net/util/InterfaceParams;
 Landroid/net/util/KeepalivePacketDataUtil;
 Landroid/net/util/NetdService$NetdCommand;
 Landroid/net/util/NetdService;
@@ -40908,13 +44282,22 @@
 Lcom/android/server/-$$Lambda$BatteryService$D1kwd7L7yyqN5niz3KWkTepVmUk;
 Lcom/android/server/-$$Lambda$BinderCallsStatsService$SettingsObserver$bif9uA0lzoT6htcKe6MNsrH_ha4;
 Lcom/android/server/-$$Lambda$ConnectivityService$3$_itgrpHpWu3QvA9Wb0gtsEYJWZY;
+Lcom/android/server/-$$Lambda$ConnectivityService$4mdI2BrJnxGXPEiesjVbm4BY2so;
+Lcom/android/server/-$$Lambda$ConnectivityService$5eo1tOLnfmVHEtGfUyYrxJr8FOQ;
+Lcom/android/server/-$$Lambda$ConnectivityService$Bd0Iky-FHBTmS5tJGxK9OZvajR4;
+Lcom/android/server/-$$Lambda$ConnectivityService$GX97FVWNZr22L2SZWTK3UYHOOe0;
+Lcom/android/server/-$$Lambda$ConnectivityService$H7LYLEpmjJnE6rkiTAMKiNF7tsA;
 Lcom/android/server/-$$Lambda$ConnectivityService$HGNmLJFn9hb5C4M_qIm2DAASfeY;
 Lcom/android/server/-$$Lambda$ConnectivityService$OIhIcUZjeJ-ci4rP6veezE8o67U;
+Lcom/android/server/-$$Lambda$ConnectivityService$ONlkcNIY7zZyZhG_msTp1qIA_cQ;
 Lcom/android/server/-$$Lambda$ConnectivityService$SFqiR4Pfksb1C7csMC3uNxCllR8;
+Lcom/android/server/-$$Lambda$ConnectivityService$SS5YUaesQHufWj1T0I5sKoDFFWY;
 Lcom/android/server/-$$Lambda$ConnectivityService$_7E84WuW6fYNkhu0kZaWBpcTO58;
 Lcom/android/server/-$$Lambda$ConnectivityService$_NU7EIcPVS-uF_gWH_NWN_gBL4w;
 Lcom/android/server/-$$Lambda$ConnectivityService$ehBcQNERx6CsAuQn5W-xyVKZtXo;
+Lcom/android/server/-$$Lambda$ConnectivityService$fBQzRY85gy75jpL8zm68U3BxgdA;
 Lcom/android/server/-$$Lambda$ConnectivityService$iOdlQdHoQM14teTS-EPRH-RRL3k;
+Lcom/android/server/-$$Lambda$ConnectivityService$nuaE_gOVb4npt3obpt7AoWH3OBo;
 Lcom/android/server/-$$Lambda$ConnectivityService$uvmt4yGRo-ufWZED19neBxJaTNk;
 Lcom/android/server/-$$Lambda$ConnectivityService$vGRhfNpFTw0hellWUlmBolfzRy8;
 Lcom/android/server/-$$Lambda$ContextHubSystemService$q-5gSEKm3he-4vIHcay4DLtf85E;
@@ -40937,6 +44320,7 @@
 Lcom/android/server/-$$Lambda$HALkbmbB2IPr_wdFkPjiIWCzJsY;
 Lcom/android/server/-$$Lambda$IpSecService$AnqunmSwm_yQvDDEPg-gokhVs5M;
 Lcom/android/server/-$$Lambda$LocationManagerService$1$HAAnoF9DI9FvCHK_geH89--2z2I;
+Lcom/android/server/-$$Lambda$LocationManagerService$1$h5HNQ2cVn5xkASh-c0UkLGiwn_Y;
 Lcom/android/server/-$$Lambda$LocationManagerService$56u_uxjuANYKBEJg0XAb0TfpovM;
 Lcom/android/server/-$$Lambda$LocationManagerService$6axYIgaetwnztBT8L9-07FzvA1k;
 Lcom/android/server/-$$Lambda$LocationManagerService$7UVIPM1Ndi2blDc1rAeJdqMBvh8;
@@ -40953,6 +44337,7 @@
 Lcom/android/server/-$$Lambda$LocationManagerService$LocationProviderManager$neXVKsR0MS1O6DaHXSdf3TVC-rc;
 Lcom/android/server/-$$Lambda$LocationManagerService$Nht7c6P7I1-MJqXp4qiS_HUIjzY;
 Lcom/android/server/-$$Lambda$LocationManagerService$QVf9Y4g7BmVBQBlkUO5oHLmMW2o;
+Lcom/android/server/-$$Lambda$LocationManagerService$UpdateRecord$UsWzcJnkOgjISswcbdlUhsrBLoQ;
 Lcom/android/server/-$$Lambda$LocationManagerService$V3FRncuMEn-4R6Dd2zsTs4m0dWM;
 Lcom/android/server/-$$Lambda$LocationManagerService$XWulT08IueAbw1NBjxLvw-T5cfc;
 Lcom/android/server/-$$Lambda$LocationManagerService$cH8JMN3scBU_51q5WfUtASFQZJ0;
@@ -41016,11 +44401,14 @@
 Lcom/android/server/-$$Lambda$RescueParty$M16YDzk6heHIMmIiCwHVSe9Y_o8;
 Lcom/android/server/-$$Lambda$SensorPrivacyService$SensorPrivacyHandler$ctW6BcqPnLm_33mG1WatsFwFT7w;
 Lcom/android/server/-$$Lambda$ServiceWatcher$IP3HV4ye72eH3YxzGb9dMfcGWPE;
+Lcom/android/server/-$$Lambda$ServiceWatcher$IkMTqqToHuGjKO5Yss6Ka6-7ato;
 Lcom/android/server/-$$Lambda$ServiceWatcher$K66HPJls7ga1t3t859fKACfAgZc;
 Lcom/android/server/-$$Lambda$ServiceWatcher$b1z9OeL-1VpQ_8p47qz7nMNUpsE;
 Lcom/android/server/-$$Lambda$ServiceWatcher$gVk2fFkq2-aamIua2kIpukAFtf8;
+Lcom/android/server/-$$Lambda$ServiceWatcher$kpBQqFYVia3SVpOH46tF4fNydw0;
 Lcom/android/server/-$$Lambda$ServiceWatcher$uCZpuTwrOz-CS9PQS2NY1ZXaU8U;
 Lcom/android/server/-$$Lambda$ServiceWatcher$uru7j1zD-GiN8rndFZ3KWaTrxYo;
+Lcom/android/server/-$$Lambda$ServiceWatcher$x-WpgD2R0YjDE53WHPzWKGSSc4I;
 Lcom/android/server/-$$Lambda$StorageManagerService$QRLVSwX20a_sSZQkOpiBHRVs3Cs;
 Lcom/android/server/-$$Lambda$StorageManagerService$iQEwQayMYzs9Ew4L6Gk7kRIO9wM;
 Lcom/android/server/-$$Lambda$StorageManagerService$js3bHvdd2Mf8gztNxvL27JoT034;
@@ -41043,6 +44431,8 @@
 Lcom/android/server/-$$Lambda$UiModeManagerService$10$s3H4QPM2YRtAd9qa2Ja54k7yJO0;
 Lcom/android/server/-$$Lambda$UiModeManagerService$9$ytrifY2iawCLCBtYLrmL70q1UhI;
 Lcom/android/server/-$$Lambda$UiModeManagerService$AwUHdh7CYhroUMaGm35a4uvZcnY;
+Lcom/android/server/-$$Lambda$UiModeManagerService$BF3rAsw9_KQuADymF0UAmeEA7QQ;
+Lcom/android/server/-$$Lambda$UiModeManagerService$LsJLdIbeoHmgOz46O-Ez9nmVZ2w;
 Lcom/android/server/-$$Lambda$UiModeManagerService$bGpxq9ta5GBYtiUBAOy4iNtThus;
 Lcom/android/server/-$$Lambda$UiModeManagerService$vYS4_RzjAavNRF50rrGN0tXI5JM;
 Lcom/android/server/-$$Lambda$UiModeManagerService$vuGxqIEDBezs_Xyz-NAh0Bonp5g;
@@ -41174,6 +44564,7 @@
 Lcom/android/server/ConnectivityService$NetworkReassignment;
 Lcom/android/server/ConnectivityService$NetworkRequestInfo;
 Lcom/android/server/ConnectivityService$NetworkStateTrackerHandler;
+Lcom/android/server/ConnectivityService$NetworkTestedResults;
 Lcom/android/server/ConnectivityService$ReapUnvalidatedNetworks;
 Lcom/android/server/ConnectivityService$SettingsObserver;
 Lcom/android/server/ConnectivityService$ShellCmd;
@@ -41388,6 +44779,7 @@
 Lcom/android/server/StorageManagerService$11;
 Lcom/android/server/StorageManagerService$12;
 Lcom/android/server/StorageManagerService$13;
+Lcom/android/server/StorageManagerService$14;
 Lcom/android/server/StorageManagerService$1;
 Lcom/android/server/StorageManagerService$2;
 Lcom/android/server/StorageManagerService$3;
@@ -41476,6 +44868,7 @@
 Lcom/android/server/WiredAccessoryManager;
 Lcom/android/server/ZramWriteback$1;
 Lcom/android/server/ZramWriteback;
+Lcom/android/server/accessibility/-$$Lambda$AbiCM6mjSOPpIPMT9CFGL4UAcKY;
 Lcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$1$49HMbWlhAK8DBFFzhu5wH_-EQaM;
 Lcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$1$J4pGG-UiTxhxH1VLNWBa7KLTh48;
 Lcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4A2E7YnYuU3-mDj4eBvmxi8PEpA;
@@ -41508,10 +44901,19 @@
 Lcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$zwk7AhIUkEPGJ4AonEk70rQ3Bl4;
 Lcom/android/server/accessibility/-$$Lambda$AccessibilityServiceConnection$ASP9bmSvpeD7ZE_uJ8sm-9hCwiU;
 Lcom/android/server/accessibility/-$$Lambda$AccessibilityWindowManager$Ky3Q5Gg_NEaXwBlFb7wxyjIUci0;
+Lcom/android/server/accessibility/-$$Lambda$CXn5BYHEDMuDgWNKCgknaVOAyJ8;
+Lcom/android/server/accessibility/-$$Lambda$MagnificationController$UxSkaR2uzdX0ekJv4Wtodc8tuMY;
+Lcom/android/server/accessibility/-$$Lambda$SP6uGJNthzczgi990Xl2SJhDOMs;
+Lcom/android/server/accessibility/-$$Lambda$UiAutomationManager$UiAutomationService$z2oxrodQt4ZxyzsfB6p_GYgwxqk;
 Lcom/android/server/accessibility/-$$Lambda$X8i00nfnUx_qUoIgZixkfu6ddSY;
+Lcom/android/server/accessibility/-$$Lambda$iE9JplYHP8mrOjjadf_Oh8XKSE4;
 Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection$1;
+Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection$InvocationHandler;
 Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection$SystemSupport;
 Lcom/android/server/accessibility/AbstractAccessibilityServiceConnection;
+Lcom/android/server/accessibility/AccessibilityInputFilter$EventStreamState;
+Lcom/android/server/accessibility/AccessibilityInputFilter$KeyboardEventStreamState;
+Lcom/android/server/accessibility/AccessibilityInputFilter$TouchScreenEventStreamState;
 Lcom/android/server/accessibility/AccessibilityInputFilter;
 Lcom/android/server/accessibility/AccessibilityManagerService$1;
 Lcom/android/server/accessibility/AccessibilityManagerService$2;
@@ -41535,12 +44937,29 @@
 Lcom/android/server/accessibility/AccessibilityWindowManager$DisplayWindowsObserver;
 Lcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;
 Lcom/android/server/accessibility/AccessibilityWindowManager;
+Lcom/android/server/accessibility/ActionReplacingCallback;
 Lcom/android/server/accessibility/BaseEventStreamTransformation;
 Lcom/android/server/accessibility/EventStreamTransformation;
 Lcom/android/server/accessibility/FingerprintGestureDispatcher$FingerprintGestureClient;
 Lcom/android/server/accessibility/FingerprintGestureDispatcher;
+Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DelegatingState;
+Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$DetectingState;
+Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$MotionEventInfo;
+Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$PanningScalingState;
+Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$ScreenStateReceiver;
+Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$State;
+Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler$ViewportDraggingState;
+Lcom/android/server/accessibility/FullScreenMagnificationGestureHandler;
 Lcom/android/server/accessibility/KeyEventDispatcher$KeyEventFilter;
+Lcom/android/server/accessibility/KeyEventDispatcher$PendingKeyEvent;
 Lcom/android/server/accessibility/KeyEventDispatcher;
+Lcom/android/server/accessibility/KeyboardInterceptor$KeyEventHolder;
+Lcom/android/server/accessibility/KeyboardInterceptor;
+Lcom/android/server/accessibility/MagnificationController$1;
+Lcom/android/server/accessibility/MagnificationController$ControllerContext;
+Lcom/android/server/accessibility/MagnificationController$DisplayMagnification;
+Lcom/android/server/accessibility/MagnificationController$ScreenStateObserver;
+Lcom/android/server/accessibility/MagnificationController$SpecAnimationBridge;
 Lcom/android/server/accessibility/MagnificationController;
 Lcom/android/server/accessibility/MotionEventInjector;
 Lcom/android/server/accessibility/SystemActionPerformer$SystemActionsChangedListener;
@@ -41548,6 +44967,28 @@
 Lcom/android/server/accessibility/UiAutomationManager$1;
 Lcom/android/server/accessibility/UiAutomationManager$UiAutomationService;
 Lcom/android/server/accessibility/UiAutomationManager;
+Lcom/android/server/accessibility/gestures/EventDispatcher;
+Lcom/android/server/accessibility/gestures/GestureManifold$Listener;
+Lcom/android/server/accessibility/gestures/GestureManifold;
+Lcom/android/server/accessibility/gestures/GestureMatcher$DelayedTransition;
+Lcom/android/server/accessibility/gestures/GestureMatcher$StateChangeListener;
+Lcom/android/server/accessibility/gestures/GestureMatcher;
+Lcom/android/server/accessibility/gestures/GestureUtils;
+Lcom/android/server/accessibility/gestures/MultiFingerMultiTap;
+Lcom/android/server/accessibility/gestures/MultiFingerSwipe;
+Lcom/android/server/accessibility/gestures/MultiTap;
+Lcom/android/server/accessibility/gestures/MultiTapAndHold;
+Lcom/android/server/accessibility/gestures/SecondFingerMultiTap;
+Lcom/android/server/accessibility/gestures/Swipe;
+Lcom/android/server/accessibility/gestures/TouchExplorer$ExitGestureDetectionModeDelayed;
+Lcom/android/server/accessibility/gestures/TouchExplorer$SendAccessibilityEventDelayed;
+Lcom/android/server/accessibility/gestures/TouchExplorer$SendHoverEnterAndMoveDelayed;
+Lcom/android/server/accessibility/gestures/TouchExplorer$SendHoverExitDelayed;
+Lcom/android/server/accessibility/gestures/TouchExplorer;
+Lcom/android/server/accessibility/gestures/TouchState$PointerDownInfo;
+Lcom/android/server/accessibility/gestures/TouchState$ReceivedPointerTracker;
+Lcom/android/server/accessibility/gestures/TouchState;
+Lcom/android/server/accessibility/magnification/MagnificationGestureHandler;
 Lcom/android/server/accessibility/magnification/WindowMagnificationManager;
 Lcom/android/server/accounts/-$$Lambda$AccountManagerService$b-wmW_X7TIC2Bc_zEKaPtyELmHY;
 Lcom/android/server/accounts/-$$Lambda$AccountManagerService$c6GExIY3Vh2fORdBziuAPJbExac;
@@ -41608,6 +45049,7 @@
 Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;
 Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;
 Lcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;
+Lcom/android/server/adb/AdbDebuggingManager$PairingThread;
 Lcom/android/server/adb/AdbDebuggingManager;
 Lcom/android/server/adb/AdbService$1;
 Lcom/android/server/adb/AdbService$AdbHandler;
@@ -41615,6 +45057,7 @@
 Lcom/android/server/adb/AdbService$AdbSettingsObserver;
 Lcom/android/server/adb/AdbService$Lifecycle;
 Lcom/android/server/adb/AdbService;
+Lcom/android/server/am/-$$Lambda$1WA8m3qLmGLM_p471nun2GeoDvg;
 Lcom/android/server/am/-$$Lambda$4tnGzleKvf7Rqiq5-S70R8ME1NY;
 Lcom/android/server/am/-$$Lambda$5hokEl5hcign5FXeGZdl53qh2zg;
 Lcom/android/server/am/-$$Lambda$7toxTvZDSEytL0rCkoEfGilPDWM;
@@ -41661,6 +45104,8 @@
 Lcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$ddVY5lmqswnSjXppAxPTOHbuzzQ;
 Lcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$r3x3xYmhrLG8kgeNVPXl5EILHwU;
 Lcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$xR3yCbbVfCo3oq_xPiH7j5l5uac;
+Lcom/android/server/am/-$$Lambda$BatteryStatsService$Pej9zCsmgLSgNXX-S6WY0nw2EvI;
+Lcom/android/server/am/-$$Lambda$BatteryStatsService$TD8vKX9utneO-PRBBmoRe5zlDH8;
 Lcom/android/server/am/-$$Lambda$BatteryStatsService$ZxbqtJ7ozYmzYFkkNV3m_QRd0Sk;
 Lcom/android/server/am/-$$Lambda$BatteryStatsService$rRONgIFHr4sujxPESRmo9P5RJ6w;
 Lcom/android/server/am/-$$Lambda$BroadcastQueue$-Rc4kAs41vmqWweLcJR0YLxZ0dM;
@@ -41687,6 +45132,7 @@
 Lcom/android/server/am/-$$Lambda$ServiceRecord$LibDrdWU9t_vgStZ6swd0FNzHXc;
 Lcom/android/server/am/-$$Lambda$SettingsToPropertiesMapper$oP9A7vTPRZcZgLdy43KKEveF4zQ;
 Lcom/android/server/am/-$$Lambda$UserController$2SW3yysxmLLBBPZQ1P-qHVFL46g;
+Lcom/android/server/am/-$$Lambda$UserController$4$7fssIH82Tl96VpliLXcseb8VbZ8;
 Lcom/android/server/am/-$$Lambda$UserController$5-I-mDc6HrA5Dg_nAZlw5yKDAA0;
 Lcom/android/server/am/-$$Lambda$UserController$G0WJmqt4X_QG30fRlvXobn18mrE;
 Lcom/android/server/am/-$$Lambda$UserController$I0p0bKjuvsSPLZB71mKQFfdUjZ4;
@@ -41783,6 +45229,7 @@
 Lcom/android/server/am/ActivityManagerService$UidObserverRegistration;
 Lcom/android/server/am/ActivityManagerService;
 Lcom/android/server/am/ActivityManagerShellCommand$1;
+Lcom/android/server/am/ActivityManagerShellCommand$2;
 Lcom/android/server/am/ActivityManagerShellCommand$IntentReceiver;
 Lcom/android/server/am/ActivityManagerShellCommand;
 Lcom/android/server/am/AppBindRecord;
@@ -41793,6 +45240,7 @@
 Lcom/android/server/am/AppCompactor$PropertyChangedCallbackForTest;
 Lcom/android/server/am/AppCompactor;
 Lcom/android/server/am/AppErrorDialog$1;
+Lcom/android/server/am/AppErrorDialog$2;
 Lcom/android/server/am/AppErrorDialog$Data;
 Lcom/android/server/am/AppErrorDialog;
 Lcom/android/server/am/AppErrorResult;
@@ -41806,9 +45254,11 @@
 Lcom/android/server/am/AppExitInfoTracker$KillHandler;
 Lcom/android/server/am/AppExitInfoTracker$LmkdKillListener;
 Lcom/android/server/am/AppExitInfoTracker;
+Lcom/android/server/am/AppNotRespondingDialog$1;
 Lcom/android/server/am/AppNotRespondingDialog$Data;
 Lcom/android/server/am/AppNotRespondingDialog;
 Lcom/android/server/am/AppTimeTracker;
+Lcom/android/server/am/AppWaitingForDebuggerDialog$1;
 Lcom/android/server/am/AppWaitingForDebuggerDialog;
 Lcom/android/server/am/AssistDataRequester$AssistDataRequesterCallbacks;
 Lcom/android/server/am/AssistDataRequester;
@@ -41922,6 +45372,7 @@
 Lcom/android/server/am/UserController$2;
 Lcom/android/server/am/UserController$3;
 Lcom/android/server/am/UserController$4;
+Lcom/android/server/am/UserController$5$1;
 Lcom/android/server/am/UserController$5;
 Lcom/android/server/am/UserController$6;
 Lcom/android/server/am/UserController$7;
@@ -41975,6 +45426,7 @@
 Lcom/android/server/appop/AppOpsService$4;
 Lcom/android/server/appop/AppOpsService$5;
 Lcom/android/server/appop/AppOpsService$6;
+Lcom/android/server/appop/AppOpsService$9;
 Lcom/android/server/appop/AppOpsService$ActiveCallback;
 Lcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;
 Lcom/android/server/appop/AppOpsService$ChangeRec;
@@ -42007,6 +45459,7 @@
 Lcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$s2vrDOHz5x1TW_6jMihxp1iCAvg;
 Lcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$vSY20eQq5y5FXrxhhqOTcEmezTs;
 Lcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$vWB3PdxOOvPr7p0_NmoqXeH8Ros;
+Lcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$AppPredictionSessionInfo$LQ7iu1YPVHeNHnTTNfaw5e_68Z4;
 Lcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$ot809pjFOVEJ6shAJalMZ9_QhCo;
 Lcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$9DCowUTEF8fYuBlWGxOmP5hTAWA;
 Lcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$Ikwq62LQ8mos7hCBmykUhqvUq2Y;
@@ -42043,6 +45496,7 @@
 Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;
 Lcom/android/server/appwidget/AppWidgetServiceImpl;
 Lcom/android/server/attention/-$$Lambda$AttentionManagerService$2UthIuCIdjigpPv1U5Dxw_fo4nY;
+Lcom/android/server/attention/-$$Lambda$AttentionManagerService$UserState$2cc0P7pJchsigKpbEq7IoxYFsSM;
 Lcom/android/server/attention/AttentionManagerService$1;
 Lcom/android/server/attention/AttentionManagerService$AttentionCheck;
 Lcom/android/server/attention/AttentionManagerService$AttentionCheckCache;
@@ -42068,6 +45522,7 @@
 Lcom/android/server/audio/-$$Lambda$AudioDeviceInventory$OBWGV1RNEso-eo8dzWjaFhEjC0A;
 Lcom/android/server/audio/-$$Lambda$AudioDeviceInventory$YxgcWZ4jspoxzltUgvW9l8k40io;
 Lcom/android/server/audio/-$$Lambda$AudioDeviceInventory$_CdHBhvBDErZWSm39GafCXJiOqQ;
+Lcom/android/server/audio/-$$Lambda$AudioService$eq0KnrBbF7KWNGmAJRjyeCTIdzQ;
 Lcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;
 Lcom/android/server/audio/AudioDeviceBroker$1;
 Lcom/android/server/audio/AudioDeviceBroker$BrokerHandler;
@@ -42104,6 +45559,7 @@
 Lcom/android/server/audio/AudioService$SettingsObserver;
 Lcom/android/server/audio/AudioService$StreamVolumeCommand;
 Lcom/android/server/audio/AudioService$VolumeController;
+Lcom/android/server/audio/AudioService$VolumeGroupState;
 Lcom/android/server/audio/AudioService$VolumeStreamState;
 Lcom/android/server/audio/AudioService;
 Lcom/android/server/audio/AudioServiceEvents$ForceUseEvent;
@@ -42164,17 +45620,26 @@
 Lcom/android/server/autofill/-$$Lambda$Q-iZrXrDBZAnj-gnbNOhH00i8uU;
 Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$06SvcwAr_tZDEPuK1BK6VWFA4mE;
 Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$W6vVk8kBkoWieb1Jw-BucQNBDsM;
+Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$W9MFEqI1G5VhYWyyGXoQi5u38XU;
 Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$qEoykSLvIU1PeokaPDuPOb0M5U0;
 Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$v9CqZP_PIroMsV929WlHTKMHOHM;
 Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$yudIvtYKB9W2eb_t3RT2S1y3KiI;
 Lcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$zt04rV6kTquQwdDYqT9tjLbRn14;
+Lcom/android/server/autofill/-$$Lambda$RemoteFillService$KkKWdeiLv0uNTtyjP9VumTTYr-A;
 Lcom/android/server/autofill/-$$Lambda$RemoteFillService$MaYOnIAubd8qKbTq0eWkOchXAJk;
 Lcom/android/server/autofill/-$$Lambda$RemoteFillService$RkgpxnfvOIHus8aiIIO_Tqgio1E;
 Lcom/android/server/autofill/-$$Lambda$RemoteFillService$V3RTZXH5ru6fNYPwjZcEmEQQ9-4;
+Lcom/android/server/autofill/-$$Lambda$RemoteFillService$adrL6UDQX3d0e-QQL11h9TWJcM4;
+Lcom/android/server/autofill/-$$Lambda$RemoteFillService$lQ9Txb0D49A09bfomYmOPhXTXRE;
 Lcom/android/server/autofill/-$$Lambda$RemoteInlineSuggestionRenderService$qkXs53uHunrqzogLSpFo1NOYNnw;
+Lcom/android/server/autofill/-$$Lambda$Session$Fs9zdJwELk-9rAM3RiY6AyBKswI;
+Lcom/android/server/autofill/-$$Lambda$Session$NtvZwhlT1c4eLjg2qI6EER2oCtY;
+Lcom/android/server/autofill/-$$Lambda$Session$cYu1t6lYVopApYW-vct82-7slZk;
 Lcom/android/server/autofill/-$$Lambda$Session$eVloK5PeyeuPZn1G52SC-fXIsjk;
 Lcom/android/server/autofill/-$$Lambda$Session$v6ZVyksJuHdWgJ1F8aoa_1LJWPo;
+Lcom/android/server/autofill/-$$Lambda$Session$vkywy7qU2iLN6RFRCSM48kEqmbQ;
 Lcom/android/server/autofill/-$$Lambda$Session$xw4trZ-LA7gCvZvpKJ93vf377ak;
+Lcom/android/server/autofill/-$$Lambda$Z6K-VL097A8ARGd4URY-lOvvM48;
 Lcom/android/server/autofill/-$$Lambda$knR7oLyPSG_CoFAxBA_nqSw3JBo;
 Lcom/android/server/autofill/-$$Lambda$sdnPz1IsKKVKSEXwI7z4h2-SxiM;
 Lcom/android/server/autofill/AutofillManagerService$1;
@@ -42197,11 +45662,15 @@
 Lcom/android/server/autofill/Helper;
 Lcom/android/server/autofill/InlineSuggestionFactory$InlineSuggestionUiCallback;
 Lcom/android/server/autofill/InlineSuggestionFactory;
+Lcom/android/server/autofill/InlineSuggestionSession$ImeResponse;
+Lcom/android/server/autofill/InlineSuggestionSession$InlineSuggestionsRequestCallbackImpl;
+Lcom/android/server/autofill/InlineSuggestionSession;
 Lcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;
 Lcom/android/server/autofill/RemoteAugmentedAutofillService$1;
 Lcom/android/server/autofill/RemoteAugmentedAutofillService$RemoteAugmentedAutofillServiceCallbacks;
 Lcom/android/server/autofill/RemoteAugmentedAutofillService;
 Lcom/android/server/autofill/RemoteFillService$1;
+Lcom/android/server/autofill/RemoteFillService$2;
 Lcom/android/server/autofill/RemoteFillService$FillServiceCallbacks;
 Lcom/android/server/autofill/RemoteFillService;
 Lcom/android/server/autofill/RemoteInlineSuggestionRenderService$InlineSuggestionRenderCallbacks;
@@ -42228,26 +45697,41 @@
 Lcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$_6s4RnleY3q9wMVHqQks_jl2KOA;
 Lcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$i7qTc5vqiej5Psbl-bIkD7js-Ao;
 Lcom/android/server/autofill/ui/-$$Lambda$E4J-3bUcyqJNd4ZlExSBhwy8Tx4;
+Lcom/android/server/autofill/ui/-$$Lambda$FillUi$2mij2xTFFWU6jS7_ER9Z-DufU90;
+Lcom/android/server/autofill/ui/-$$Lambda$FillUi$6jFaWS-2Oix04tyCKVhIK-exOKg;
 Lcom/android/server/autofill/ui/-$$Lambda$FillUi$AutofillWindowPresenter$N4xQe2B0oe5MBiqZlsy3Lb7vZTg;
 Lcom/android/server/autofill/ui/-$$Lambda$FillUi$FY016gv4LQ5AA6yOkKTH3EM5zaM;
 Lcom/android/server/autofill/ui/-$$Lambda$FillUi$ItemsAdapter$1$8s9zobTvKJVJjInaObtlx2flLMc;
 Lcom/android/server/autofill/ui/-$$Lambda$FillUi$QXIyKJs3cMApGd5ifauQkxdpdqk;
 Lcom/android/server/autofill/ui/-$$Lambda$FillUi$TUHYXtyYjvn8kBKxh1vyXjC9x84;
+Lcom/android/server/autofill/ui/-$$Lambda$FillUi$h0jT24YuSGGDnoZ6Tf22n1QRkO8;
+Lcom/android/server/autofill/ui/-$$Lambda$SaveUi$9E3wVcFykoYBpXtez_dJMd6U_Nw;
+Lcom/android/server/autofill/ui/-$$Lambda$SaveUi$E9O26NP1L_DDYBfaO7fQ0hhPAx8;
+Lcom/android/server/autofill/ui/-$$Lambda$SaveUi$MHTJI4CEYKh8w8RM-t9zG_19Jjc;
+Lcom/android/server/autofill/ui/-$$Lambda$SaveUi$b3z89RdKv6skukyM-l67uIcvlf0;
+Lcom/android/server/autofill/ui/-$$Lambda$SaveUi$ckPlzqJfB_ohleAkb5RXKU7mFY8;
 Lcom/android/server/autofill/ui/AutoFillUI$1;
 Lcom/android/server/autofill/ui/AutoFillUI$2;
 Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;
 Lcom/android/server/autofill/ui/AutoFillUI;
+Lcom/android/server/autofill/ui/CustomScrollView;
 Lcom/android/server/autofill/ui/FillUi$AnchoredWindow;
+Lcom/android/server/autofill/ui/FillUi$AnnounceFilterResult;
 Lcom/android/server/autofill/ui/FillUi$AutofillWindowPresenter;
 Lcom/android/server/autofill/ui/FillUi$Callback;
 Lcom/android/server/autofill/ui/FillUi$ItemsAdapter$1;
 Lcom/android/server/autofill/ui/FillUi$ItemsAdapter;
 Lcom/android/server/autofill/ui/FillUi$ViewItem;
 Lcom/android/server/autofill/ui/FillUi;
+Lcom/android/server/autofill/ui/InlineSuggestionFactory$1;
+Lcom/android/server/autofill/ui/InlineSuggestionFactory$InlineSuggestionUiCallback;
+Lcom/android/server/autofill/ui/InlineSuggestionFactory;
 Lcom/android/server/autofill/ui/InlineSuggestionUi;
 Lcom/android/server/autofill/ui/OverlayControl;
 Lcom/android/server/autofill/ui/PendingUi;
+Lcom/android/server/autofill/ui/SaveUi$1;
 Lcom/android/server/autofill/ui/SaveUi$OnSaveListener;
+Lcom/android/server/autofill/ui/SaveUi$OneActionThenDestroyListener;
 Lcom/android/server/autofill/ui/SaveUi;
 Lcom/android/server/backup/-$$Lambda$-xfpm33S8Jqv3KpU_-llxhj8ZPI;
 Lcom/android/server/backup/-$$Lambda$BackupManagerService$1$wNR2kL0jG0FP7rVncyt3YJRw1RI;
@@ -42257,13 +45741,16 @@
 Lcom/android/server/backup/-$$Lambda$TransportManager$Qbutmzd17ICwZdy0UzRrO-3_VK0;
 Lcom/android/server/backup/-$$Lambda$TransportManager$Z9ckpFUW2V4jkdHnyXIEiLuAoBc;
 Lcom/android/server/backup/-$$Lambda$TransportManager$_dxJobf45tWiMkaNlKY-z26kB2Q;
+Lcom/android/server/backup/-$$Lambda$UserBackupManagerService$076XriH8-AsUaXKFvRearB4ERls;
 Lcom/android/server/backup/-$$Lambda$UserBackupManagerService$2$9w65wn45YYtTkXbyQZdj_7K5LSs;
 Lcom/android/server/backup/-$$Lambda$UserBackupManagerService$2$ICUfBQAK1UQkmGSsPDmR00etFBk;
 Lcom/android/server/backup/-$$Lambda$UserBackupManagerService$2$VpHOYQHCWBG618oharjEXEDr57U;
 Lcom/android/server/backup/-$$Lambda$UserBackupManagerService$9cuIH_XloqtNByp_6hXeGaVars8;
+Lcom/android/server/backup/-$$Lambda$UserBackupManagerService$C404OP5-rQYG326aUSsvijaNzdg;
 Lcom/android/server/backup/-$$Lambda$UserBackupManagerService$TB8LUl0TwUK9CmmdepXioEU4Qxg;
 Lcom/android/server/backup/-$$Lambda$UserBackupManagerService$W51Aw9Pu9AOsFVYQgIZy31INmwI;
 Lcom/android/server/backup/-$$Lambda$UserBackupManagerService$_gNqJq9Ygtc0ZVwYhCSDKCUKrKY;
+Lcom/android/server/backup/-$$Lambda$UserBackupManagerService$pLslHGi1wuuGrjS32QbMlDjlGbM;
 Lcom/android/server/backup/-$$Lambda$UserBackupManagerService$sAYsrY5C5zAl7EgKgwo188kx6JE;
 Lcom/android/server/backup/-$$Lambda$pM_c5tVAGDtxjxLF_ONtACWWq6Q;
 Lcom/android/server/backup/BackupAgentTimeoutParameters;
@@ -42277,11 +45764,15 @@
 Lcom/android/server/backup/BackupRestoreTask;
 Lcom/android/server/backup/BackupUtils;
 Lcom/android/server/backup/DataChangedJournal;
+Lcom/android/server/backup/FileMetadata;
 Lcom/android/server/backup/FullBackupJob;
 Lcom/android/server/backup/JobIdManager;
 Lcom/android/server/backup/KeyValueBackupJob;
+Lcom/android/server/backup/PackageManagerBackupAgent$AncestralVersion1RestoreDataConsumer;
 Lcom/android/server/backup/PackageManagerBackupAgent$Metadata;
+Lcom/android/server/backup/PackageManagerBackupAgent$RestoreDataConsumer;
 Lcom/android/server/backup/PackageManagerBackupAgent;
+Lcom/android/server/backup/PeopleBackupHelper;
 Lcom/android/server/backup/ProcessedPackagesJournal;
 Lcom/android/server/backup/SystemBackupAgent;
 Lcom/android/server/backup/TransportManager$TransportDescription;
@@ -42291,6 +45782,7 @@
 Lcom/android/server/backup/UserBackupManagerFiles;
 Lcom/android/server/backup/UserBackupManagerService$1;
 Lcom/android/server/backup/UserBackupManagerService$2;
+Lcom/android/server/backup/UserBackupManagerService$3;
 Lcom/android/server/backup/UserBackupManagerService$4;
 Lcom/android/server/backup/UserBackupManagerService$BackupWakeLock;
 Lcom/android/server/backup/UserBackupManagerService;
@@ -42308,8 +45800,10 @@
 Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;
 Lcom/android/server/backup/internal/-$$Lambda$BackupHandler$TJcRazGYTaUxjeiX6mPLlipfZUI;
 Lcom/android/server/backup/internal/BackupHandler;
+Lcom/android/server/backup/internal/ClearDataObserver;
 Lcom/android/server/backup/internal/OnTaskFinishedListener;
 Lcom/android/server/backup/internal/Operation;
+Lcom/android/server/backup/internal/PerformInitializeTask;
 Lcom/android/server/backup/internal/RunBackupReceiver;
 Lcom/android/server/backup/internal/RunInitializeReceiver;
 Lcom/android/server/backup/internal/SetupObserver;
@@ -42321,13 +45815,22 @@
 Lcom/android/server/backup/keyvalue/KeyValueBackupTask;
 Lcom/android/server/backup/keyvalue/TaskException;
 Lcom/android/server/backup/params/BackupParams;
+Lcom/android/server/backup/params/RestoreParams;
 Lcom/android/server/backup/remote/-$$Lambda$RemoteCall$UZaEiTGjS9e2j04YYkGl3Y2ltU4;
 Lcom/android/server/backup/remote/FutureBackupCallback;
 Lcom/android/server/backup/remote/RemoteCall;
 Lcom/android/server/backup/remote/RemoteCallable;
 Lcom/android/server/backup/remote/RemoteResult;
+Lcom/android/server/backup/restore/-$$Lambda$FullRestoreEngine$4tWYktC0BIhLX9UJcbVLlqtWGqU;
+Lcom/android/server/backup/restore/FullRestoreEngine$1;
+Lcom/android/server/backup/restore/FullRestoreEngine;
+Lcom/android/server/backup/restore/FullRestoreEngineThread;
 Lcom/android/server/backup/restore/PerformUnifiedRestoreTask$1;
+Lcom/android/server/backup/restore/PerformUnifiedRestoreTask$StreamFeederThread;
 Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;
+Lcom/android/server/backup/restore/RestoreDeleteObserver;
+Lcom/android/server/backup/restore/RestoreEngine;
+Lcom/android/server/backup/restore/RestorePolicy;
 Lcom/android/server/backup/restore/UnifiedRestoreState;
 Lcom/android/server/backup/transport/-$$Lambda$TransportClient$ciIUj0x0CRg93UETUpy2FB5aqCQ;
 Lcom/android/server/backup/transport/-$$Lambda$TransportClient$uc3fygwQjQIS_JT7mlt-yMBfJcE;
@@ -42338,18 +45841,22 @@
 Lcom/android/server/backup/transport/TransportClientManager;
 Lcom/android/server/backup/transport/TransportConnectionListener;
 Lcom/android/server/backup/transport/TransportNotAvailableException;
+Lcom/android/server/backup/transport/TransportNotRegisteredException;
 Lcom/android/server/backup/transport/TransportStats$Stats;
 Lcom/android/server/backup/transport/TransportStats;
 Lcom/android/server/backup/transport/TransportUtils;
 Lcom/android/server/backup/utils/AppBackupUtils;
 Lcom/android/server/backup/utils/BackupManagerMonitorUtils;
 Lcom/android/server/backup/utils/BackupObserverUtils;
+Lcom/android/server/backup/utils/BytesReadListener;
 Lcom/android/server/backup/utils/DataStreamCodec;
 Lcom/android/server/backup/utils/DataStreamFileCodec;
 Lcom/android/server/backup/utils/FileUtils;
+Lcom/android/server/backup/utils/FullBackupRestoreObserverUtils;
 Lcom/android/server/backup/utils/FullBackupUtils;
 Lcom/android/server/backup/utils/RandomAccessFileUtils;
 Lcom/android/server/backup/utils/SparseArrayUtils;
+Lcom/android/server/backup/utils/TarBackupReader;
 Lcom/android/server/biometrics/-$$Lambda$BiometricService$IIHhqSKogJZG56VmePRbTOf_5qo;
 Lcom/android/server/biometrics/-$$Lambda$BiometricService$PWa3w6AT62ogdb7_LTOZ5QOYAk4;
 Lcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$5zE_f-JKSpUWsfwvdtw36YktZZ0;
@@ -42361,6 +45868,7 @@
 Lcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$lM-Gght_XjLuQG2iY0xHchO8Xgk;
 Lcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$rf3hjPI_nf4EvVsQV7gFCF1-HpI;
 Lcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$yj0NG4umGnnyUerNM_EKxeka05A;
+Lcom/android/server/biometrics/-$$Lambda$BiometricStrengthController$tO9bm1fJ-LRkdtTtLs_q184crJU;
 Lcom/android/server/biometrics/AuthService$1;
 Lcom/android/server/biometrics/AuthService$AuthServiceImpl;
 Lcom/android/server/biometrics/AuthService$Injector;
@@ -42440,6 +45948,7 @@
 Lcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$7-RPI0PwwgOAZtsXq2j72pQWwMc;
 Lcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$7nMWCt41OE3k8ihjPNPqB0O8POU;
 Lcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$BJntfNoFTejPmUJ_45WFIwis8Nw;
+Lcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$I9ULJAHXA5Q3BYZs4m8TK6v5kUQ;
 Lcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$N1Y2Zwqq-x5yDKQsDTj2KQ5q7g4;
 Lcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$cO88ecWuvWIBecLAEccxr5yeJK4;
 Lcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$YOMIOLvco2SvXVeJIulOSVKdX7A;
@@ -42535,6 +46044,11 @@
 Lcom/android/server/connectivity/-$$Lambda$MultipathPolicyTracker$2$dvyDLfu9d6g2XoEdL3QMHx7ut6k;
 Lcom/android/server/connectivity/-$$Lambda$Nat464Xlat$40jKHQd7R0zgcegyEyc9zPHKXVA;
 Lcom/android/server/connectivity/-$$Lambda$Nat464Xlat$PACHOP9HoYvr_jzHtIwFDy31Ud4;
+Lcom/android/server/connectivity/-$$Lambda$NetworkRanker$C_0TgzYHR-DOgqTL7EmLuO8n37g;
+Lcom/android/server/connectivity/-$$Lambda$NetworkRanker$TG1q-sMCXwgFWgWXWPXHK6U9llY;
+Lcom/android/server/connectivity/-$$Lambda$NetworkRanker$YJHg9q_3Bdz9YfUXw2C0y4fsLPM;
+Lcom/android/server/connectivity/-$$Lambda$NetworkRanker$iOSx-hNqEGAWlti47pBTlEFvEkg;
+Lcom/android/server/connectivity/-$$Lambda$NetworkRanker$wdDWUWxRRoYuCeZpawCNW8Z5deE;
 Lcom/android/server/connectivity/-$$Lambda$PermissionMonitor$h-GPsXXwaQ-Mfu5-dqCp_VIYNOM;
 Lcom/android/server/connectivity/-$$Lambda$TcpKeepaliveController$mLZJWrEAOnfgV5N3ZSa2J3iTmxE;
 Lcom/android/server/connectivity/AutodestructReference;
@@ -42560,6 +46074,7 @@
 Lcom/android/server/connectivity/MultipathPolicyTracker$2;
 Lcom/android/server/connectivity/MultipathPolicyTracker$ConfigChangeReceiver;
 Lcom/android/server/connectivity/MultipathPolicyTracker$Dependencies;
+Lcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker$1;
 Lcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;
 Lcom/android/server/connectivity/MultipathPolicyTracker$SettingsObserver;
 Lcom/android/server/connectivity/MultipathPolicyTracker;
@@ -42580,6 +46095,7 @@
 Lcom/android/server/connectivity/NetworkNotificationManager$NotificationType$Holder;
 Lcom/android/server/connectivity/NetworkNotificationManager$NotificationType;
 Lcom/android/server/connectivity/NetworkNotificationManager;
+Lcom/android/server/connectivity/NetworkRanker;
 Lcom/android/server/connectivity/PacManager$1;
 Lcom/android/server/connectivity/PacManager$2;
 Lcom/android/server/connectivity/PacManager$3;
@@ -42593,8 +46109,11 @@
 Lcom/android/server/connectivity/Vpn$1;
 Lcom/android/server/connectivity/Vpn$2;
 Lcom/android/server/connectivity/Vpn$Connection;
+Lcom/android/server/connectivity/Vpn$Ikev2SessionCreator;
+Lcom/android/server/connectivity/Vpn$LegacyVpnRunner$1;
 Lcom/android/server/connectivity/Vpn$LegacyVpnRunner;
 Lcom/android/server/connectivity/Vpn$SystemServices;
+Lcom/android/server/connectivity/Vpn$VpnRunner;
 Lcom/android/server/connectivity/Vpn;
 Lcom/android/server/content/-$$Lambda$ContentService$5-BNVxd6JTWU9ogp3u-0kfiqgbI;
 Lcom/android/server/content/-$$Lambda$SyncManager$4nklbtZn-JuPLOkU32f34xZoiug;
@@ -42675,8 +46194,11 @@
 Lcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$ContentCaptureManagerServiceStub$vyDTyUUAt356my5WVtp7QPYv5gY;
 Lcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$jCIcV2sgwD7QUkN-c6yfPd58T_U;
 Lcom/android/server/contentcapture/-$$Lambda$ContentCaptureServerSession$PKv4-aNj3xMYOeCpzUQZDD2iG0o;
+Lcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$12wkbjo54EUwTPFKOuEn42KWKFg;
 Lcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$PMsA3CmwChlM0Qy__Uy6Yr5CFzk;
 Lcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$QbbzaxOFnxJI34vQptxzLE9Vvog;
+Lcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$WZi4-GWL57wurriOS0cLTQHXrS8;
+Lcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$haMfPWsaVUWwKcAPgM3AadAkvOQ;
 Lcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$yRaGuMutdbjMq9h32e3TC2_1a_A;
 Lcom/android/server/contentcapture/ContentCaptureManagerInternal;
 Lcom/android/server/contentcapture/ContentCaptureManagerService$1;
@@ -42712,6 +46234,7 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-SLM70h2SesShbP-O5yYa1PYZVw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$-akc0-_Xpj7aIxkCmZXNOwZmfBo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$03gLgx7r9JVlctOr2Y2H2tmFv4c;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$073LDG78wdddyTLHxIu_QMo4Oeg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$08tAXus2zREPLhPWSJJMbXKP4Sg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$09_I4G_12aZDp0ahZnGtJryBYCg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$0H5SdBGIQE77NlJ8chd0JlrtVZM;
@@ -42721,12 +46244,14 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$17w9Erg0JBwVQsxp9tlvNXoHag8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$19j1Aw89Idv-1enlT4bK5AugL5A;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1GKdSFvjEtRGmiwZbCDJoRMFepQ;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1TlR9QkoWDydJIzS2dEnarmbYMU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1XDDDftsFpFAuDCNfSCxMrNxbMk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1Xv08Aj_cK0tIZBpTLTZYh8Zs9s;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1_463wML1lyyuhNEcH6YQZBNupk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1iJrvtbb8D-HC5dcMcu7FeZ0bls;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1k_SpqyKkZIiqJdJjszs6AKXu5U;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1sOJuLKtNOd9FkSCbRQ10fuHN1Q;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$1xqfThwLDb3WlALBfSeQc9wHlhw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2CZYBzY0RjTtlQvIxYBzaiQE2iI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2QHA45sHi3IUGkw9j4nqdP1d9f4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$2T_rNBu9uZarOjRto1J4yaEXo9g;
@@ -42759,11 +46284,13 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$6v62O967mjv_sUxIh1CIl2PfYUs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$72c2Y5FCiFMdxEt_wt0KxdnuNHA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7Cpvth9RknvcbwQxadY3QRMYuFU;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7SnUk7aaumDGh269cr0rKb-BheM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7bcaEHXf3TCFcAmnNgQ3w5k52Do;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7d4KuFVANhtDTCmi75jRXr1iwQg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7tdrvrDzDjaIpmh0xPRc7bOdE6s;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$7uNrpVR2JSemRG4moJeAWa1SmL4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$86joUvbxpfClnQ1eB9hM-m3wM3o;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8BeglN5Ijjfxxx54eY3Vq7FrVNc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8WEE00-ysyIE1NA6831vMvnUKA8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8XUqgbgdUcEUgLSotmYa65MlJU4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8qCcR6mM8qspH7fQ8IbJXDcl-oE;
@@ -42773,13 +46300,18 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9BBesRjvUOb0HylcboB6iBXa9rA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9H-OtiTr0pLXuE1px0lLrHWW2gg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9R-Cd8_5zpYXgcD0dtPoPmXylac;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9SJKQAytAssuizf9V09cQ9qSuUM;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9VVtUb5jLgJSmFOsWJ9ANvL9Ep4;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9W5ibbtOSU8R7T8a9jvlNGXLVz8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9ZcumXOv56Ei2C9SZ1rGCAWbFq0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9e1WD675Sk7q7eBur0QM_ABo6vQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$9slZPgx0YdlOIZDsP-rOhH7cf1I;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$AIf6rmUrV_40Ct6S6ELTd4to2RI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ANSk7b4hzAdSQFA5bAuRUa5Wb00;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$AijWRIktKOprZjv1bi4_G1772Mk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$B88N2k2VXcK0ecvZKRQd0Of695o;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BG5ucLiTHDdSlIiTv_4KUZ1x4-E;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BOK8I3WNMlyJrHuv4E5nizuvN9s;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BRpIBuCcPsCOsse3nSRZZGAN6zo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Bg95NheW5thmDvdD-hGXu4jgipE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CAHsZjsjfTBjSCaXhAqawAZQxAs;
@@ -42810,6 +46342,7 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ElWamLudjuXKkng-z8ausIIf74E;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$EmW1vJQsSAWrjreihtc0C_PUzE8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$FH6LDUjPuTrmrHOy8qyq914-6zY;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$FJ0XePbVcRlJIcEvTiNAwEn0UoM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$FmxOJlCc2MLPPP1wq6qLc9sJsjs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$FoRIQWHG7DAHSS17BPWMp1vOTtQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$GLFaeQoYlGpw9LS1HfFdyYwmh6E;
@@ -42828,6 +46361,7 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ISVxczoeSB_OIc18VUJwvW1XWDw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IZ6GezAjFbNd9xP94OeI_p0zybU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IiTDvO4lH6i6MSEHWCEcAk85DDE;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Iu9bcUbfVSqxylo0VQHzwnXw_D4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$IzlTyFucmXCd4PMovIDmqmmpJ_Y;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$J1D7mGzV3_Pe5CkN4SOHvBx0GQM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$J40SNkUbFjfJHtRZcSHYbhkkIpg;
@@ -42840,6 +46374,7 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$JklCLZ8vzxbgTOI4Xt7ZbZsL0Dk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Jn1h0KwAOFO-2SLpickAr7b6UEI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$JtphNR0tnaOuEEn0ikwSL9fXD1M;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KGyh0GB6sRV8-ctFL89vVYZYwcg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KOycIT0DtH49A4P5XWP73pI0dj4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KVBXyPBBtnY04KgNMY8kTUc8TDM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$KnolhWMYD7G9f7e3KfTxyhi7Xjg;
@@ -42863,9 +46398,12 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MdCcLj6WQKJMyudRB0ePdeQg77k;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$MviNnPMxpWJ3R18v9L0iG_mI4as;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$N18wt-LIW9paPKI_TTPbSWO6bBo;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NK0DXiOteWZ-VOLV5-b0ijhVSVc;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NKJuiWrYuYyikF97OLN4M2BWuLU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NQ8HQ2OEvYVwQcxv3HSGyE4pJg0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NV9-XJEdh3iVV_1FcyzVTLRWMMs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NZ0oxk-Ik8VTdLKIQsEmJ4u8ge4;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NktehNa2clM_QJShWPmssIgRpKs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Nu-f7ZVLk0_egJ3zAQpMMR_T5ZE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O7VBr2X2LTCZ2rClZ_UwgB-Qoa0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$OL2XWo5c7ghltPdi2SyRK5POm-4;
@@ -42904,6 +46442,7 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T-DYGQoYs3p1_NgKsVcKRX8fTnA;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T4eSwgayOKOYwmmjCYnPFwO28Pw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$TSS9Yr-s-3wxWw1bzVWIxqNSkMk;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$T_MFJJA-2wJIPhPriddPxCPktT0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$TcNgzWUAWtXQgb-e38C9PKE89Go;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Tf_SuyVihRcKkRFcIwGsSH6fYLU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$TistVIXPlboUC3QIj4JSWHtbCxQ;
@@ -42926,6 +46465,7 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WClCPAIaYC1HcqeEWjZ5mwt9QEY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WPoBmlz33wJKdfRNgazaVqch_RI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WYP5q_IBba00XZnGp257U-5v_qM;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WbWHK-YRmSyyTKX5Mx6FDo6hXe0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WdS9fk8fr1h45StHMTWJBNzuVxk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WevGGQWsNzietlJkpgLAumbTjNU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$WtqYUfe7dJqIftHU4nTlehWlM1o;
@@ -42936,10 +46476,13 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XIgyjzk0MIew6CDVQI8Ae8JzYYY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XOdX3qkh6bxGtbYtcwPIQmfVatY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Xc3Cc89KBImtyHAgMzs8CxA-vt4;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XeTwDiPJNtDS9Ls7XHYRol67ydw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XnSMMFYuFPI3ne_otxnTw0Tx_Tk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XoA7qUoiMKNWGeLb0_PAA1GorHs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Xtl9mqtvlMrCVZVtWJhb8BLKs4I;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XxTvtDGjc65GwFaqkNXZsW63TPE;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$XzUpQvfe7gGKkyChcB69fGJQPRI;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$Y60DjdFMzpV5YEEtub3axIwYGT4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$YA4XK8CPWPIZ24OqYJwgVT_5HYs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$YTkdlwrc6XAKuTn0p2mVi0oHrSM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$YZpznfYXsjCyvuZp0nh2o3O_kN8;
@@ -42964,7 +46507,10 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$a6N7YdVtFZPKYb2-gun76ulJ5fQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$aC4EXkkAMAWYv8qwbTvE24Kub28;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$aVGoq4gaY333M9B5L3o4c3HvuCM;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$a_VEV2Rdwc-D1OZwDx3oc-lDXdU;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$b-SWG2xemCUZ-1-nZ4z9d7ZE0BI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$b6NlDdKsoSylaG3SG2kID_T_mKI;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$b9hzQU9hAg6SihItQWPzfYc4Um8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$bNyL67PUDJs3XewKfULpyxiJ0uk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$bRHnqQ-7BZ3jALB9fwG91SGkEfM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$bouyOrED43n7AxQtiV7_tal36UY;
@@ -43002,11 +46548,13 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$eyzr70H-LIhamGl2lQJNuBnNUCg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fBEZoXFpOdFGTOWV_4afqn0J6Jo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fU0Evn2qWpzcawqc8Qu9d2hCcoA;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fh1-G8HFy4ZKTmk_bptLL6e1yJQ;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fi3bp9Jg5MB-y7uy1juNXt4OgTY;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$frL8-y9KUDCjvP_ukJ0uoU1Mk5k;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$fzxODltoSAVybDWkw84u878Ddso;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$g3VMWQRBCrJWTiiMtWVUi7fOSds;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$g3pjxXrKbnPToHF_egmYdr2f8-M;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$gKJRgkCbXr1JRfT-nKuOOiyESY8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$gUwTdpToc4b137uFTknYXprKx0I;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$gbbZuAsRK_vXaCroy1gj9r0-V4o;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$gyGQmraIFm9snTVcQs8v9x_oN2s;
@@ -43018,6 +46566,8 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hVh-r9U8me62PnowMqWIYzsG__4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hWg24ME7nlaYglkgmkHI7VvIfWk;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hX2NEWgF6rTNkdyJ6G_rvoL6TR0;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hXSN6LDdWif9M2Dfarno_lit14A;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hazPyk7ZfWBd97GGvKrkZ9fjgJg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$hohlWNRUxQL3ppUY1dM8mwNK67I;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$iJGFtbFrOPcW3nu2RGPHCHVu1-E;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$iVM7UeXJHZm19ApeX7bK4m8k80Q;
@@ -43034,6 +46584,7 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jk1zqsysE8fKSHngP11NBHDLVk8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jpc5PWmU1TRkfsIBmJjzflF2ERo;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$jqQoRiWmeM8a3MeBPfKE9lApkio;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$kB1ucKrE11D8ovR7AQ5cfFXTbHE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$kPEMSMGp98HqXQq78McKpXCdLCM;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$l1-j9XdvuDdp7fQsY_n_Pv6CP3A;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$l1OVi4X-0E2PRGCgmqaMDm9f37g;
@@ -43072,22 +46623,26 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$paNWzEukGonqKHGYa2dcIYm1m9I;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$peeHTd988oQjHrGFppwrwfdKZU4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$pnGOhpYZbTior4-5l_ZVpjwHMlA;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$pvoZ9UODcnSUe5AiOPUs_KioH8k;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$pzGOg_k7cFHMZe81NJ-f-O91Vvc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qLdZ0ebI9-VES2qOXxipAqDsLtg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qUFZingYce_mtufJ-COKvsGFldc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qVG_che5VZcjXofzxjKlurWwLu4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qViz9I1AJUZv2wUBqL57ZuJyV6w;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$qfNjMPDGLybg6rkwexpw8dZrM-8;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$r08PMFPsiITeMky5owkRMuD8Ygc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$rIIGm_pcvT_tv88ID-sqKSFXqPU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$rP76VuxkDMpQvOKe_NhM7A9S5D0;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$rU5IDfnRM1iicQF_3fSUkRMiJWs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$rg9PVcvT3UURAp6r5F9n-OzYW0o;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$rgWIdVG-xIVE9DTQu1PoIuOkdEc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$s7nsr83MiLj0X1p1Wlc_DLT8K_k;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$sGlmF_GD7oCx6phphmPQEwFUSm4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$sKaiUCZhJCPEsQr9hbBm2BCLjFE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$sfvNLjsZ1b42sP7hfi4sIngE1Ok;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$sgJgS32ZNiiwGAfMZyTUvDVx3oE;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$srUwh80IVWUvcHUY2qLiJl7DXbw;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$stRSqtl9frAOcJ-UExkLOI-lcGc;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$stRgRygcW96CZ_aQdsj6efcedrw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$stYWAHQ1_37Oh1WhPMUK1JldOJ4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$sv3aqNyetv_Byb9X8ONZtlQZJG0;
@@ -43103,6 +46658,8 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tWth7tXYQXpYp5Hzb8E7OMe1xQU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tfWVKBTGvhCLutowgY2p1qhI_5k;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tkQw-Ak3ra4RKe75URSNPdLIZEo;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tlglduz1R5bzCYgtkUp5hrBzENc;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tngJziBuxzB_8osNfdMXS6uXLhs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tp-48y_8GxxZ_5HYpkvQSJUXCCs;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uBbMjDj76ovvi3SNe9WwB6bL1bg;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$uD3EtO2DK71MscaG7ykh6GMewyM;
@@ -43135,6 +46692,7 @@
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$y4TmIIzrIWhefGZSS0RoexHhlYw;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$yABzfxLSJsRtIg68zL1wRRuzKQI;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ySno4DrGDq1KjAoj9-Oin64pfm8;
+Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$y_mls_R0U3Fi6kpHWXcMJhKYGP8;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$ylqQ-0_BWKf5SNKi5IEZksGSyuU;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$z9w-PqXATVne7zR3PADeRtW0jf4;
 Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$zErhxcsyTkaK2GsPBoPqruFzweQ;
@@ -43462,6 +47020,8 @@
 Lcom/android/server/incident/RequestQueue$1;
 Lcom/android/server/incident/RequestQueue$Rec;
 Lcom/android/server/incident/RequestQueue;
+Lcom/android/server/incremental/IncrementalManagerService;
+Lcom/android/server/incremental/IncrementalManagerShellCommand;
 Lcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$1$TLhe3_2yHs5UB69Y7lf2s7OxJCo;
 Lcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$_fKw-VUP0pSfcMMlgRqoT4OPhxw;
 Lcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$su3lJpEVIbL-C7doP4eboTpqjxU;
@@ -43545,6 +47105,8 @@
 Lcom/android/server/inputmethod/InputMethodManagerService$SessionState;
 Lcom/android/server/inputmethod/InputMethodManagerService$SettingsObserver;
 Lcom/android/server/inputmethod/InputMethodManagerService$ShellCommandImpl;
+Lcom/android/server/inputmethod/InputMethodManagerService$SoftInputShowHideHistory$Entry;
+Lcom/android/server/inputmethod/InputMethodManagerService$SoftInputShowHideHistory;
 Lcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory$Entry;
 Lcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;
 Lcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;
@@ -43562,6 +47124,7 @@
 Lcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;
 Lcom/android/server/inputmethod/InputMethodUtils;
 Lcom/android/server/inputmethod/LocaleUtils$LocaleExtractor;
+Lcom/android/server/inputmethod/LocaleUtils$ScoreEntry;
 Lcom/android/server/inputmethod/LocaleUtils;
 Lcom/android/server/inputmethod/MultiClientInputMethodManagerService$Lifecycle;
 Lcom/android/server/integrity/-$$Lambda$AppIntegrityManagerServiceImpl$1$AQicMJqZVSufBnAD8HJ81gPtf7Y;
@@ -43574,8 +47137,13 @@
 Lcom/android/server/integrity/IntegrityUtils;
 Lcom/android/server/integrity/engine/-$$Lambda$I1P1n5zkAf1R76LNtLXDmbu8DuM;
 Lcom/android/server/integrity/engine/-$$Lambda$RuleEvaluationEngine$FG2m_EhrIHu0hqkBa5ri2WKDeuU;
+Lcom/android/server/integrity/engine/-$$Lambda$RuleEvaluator$_b_bnHZ6Lv_0UPoz1qRhvn2moQI;
+Lcom/android/server/integrity/engine/-$$Lambda$RuleEvaluator$_yl214m5sWGIgjBG_8qMT_pIqSI;
+Lcom/android/server/integrity/engine/-$$Lambda$RuleEvaluator$unAwA1sQfXbWYCFQp7qIaNkgC10;
 Lcom/android/server/integrity/engine/RuleEvaluationEngine;
 Lcom/android/server/integrity/engine/RuleEvaluator;
+Lcom/android/server/integrity/model/-$$Lambda$IntegrityCheckResult$Cdma_yQnvj3lcPg1ximae51_zEo;
+Lcom/android/server/integrity/model/-$$Lambda$IntegrityCheckResult$uw4WN-XjK2pJvNXIEB_RL21qEcg;
 Lcom/android/server/integrity/model/BitInputStream;
 Lcom/android/server/integrity/model/BitOutputStream;
 Lcom/android/server/integrity/model/BitTrackedInputStream;
@@ -43651,6 +47219,7 @@
 Lcom/android/server/location/-$$Lambda$GeofenceProxy$GeofenceProxyServiceConnection$zlbg9IPCIuzTl4MNd_aO2VH84CU;
 Lcom/android/server/location/-$$Lambda$GeofenceProxy$hIfaTtsg4NqVfDRkaCxUg6rx90I;
 Lcom/android/server/location/-$$Lambda$GeofenceProxy$nfSKchjbT2ANT9GbYwyAcTjzBwQ;
+Lcom/android/server/location/-$$Lambda$GnssAntennaInfoProvider$Jn1m9a6Z7xCk1n2jG7DS8Dlh95g;
 Lcom/android/server/location/-$$Lambda$GnssConfiguration$1$384RrX20Mx6OJsRiqsQcSxYdcZc;
 Lcom/android/server/location/-$$Lambda$GnssConfiguration$1$5tBf0Ru8L994vqKbXOeOBj2A-CA;
 Lcom/android/server/location/-$$Lambda$GnssConfiguration$1$8lp2ukEzg_Agf73p3ka-dqhWUpE;
@@ -43663,6 +47232,7 @@
 Lcom/android/server/location/-$$Lambda$GnssLocationProvider$EdWkocFV52YPVPhXR-8dHVOO94k;
 Lcom/android/server/location/-$$Lambda$GnssLocationProvider$Mf3hti2G0vD9ZNlxSGs0q1o7fm4;
 Lcom/android/server/location/-$$Lambda$GnssLocationProvider$Q6M8z_ZBiD7BNs3kvNmVrqoHSng;
+Lcom/android/server/location/-$$Lambda$GnssLocationProvider$W6-sB0jGWhsljLO69TqY_EhXWvI;
 Lcom/android/server/location/-$$Lambda$GnssLocationProvider$_xEBoJSNGaiPvO5kj-sfJB7tZYk;
 Lcom/android/server/location/-$$Lambda$GnssLocationProvider$adAUsgD5mK9uoxw0KEjaMYtp_Ro;
 Lcom/android/server/location/-$$Lambda$GnssLocationProvider$cSSwMZHkxTRwFeOp8gWaG_qGZ5A;
@@ -43672,6 +47242,7 @@
 Lcom/android/server/location/-$$Lambda$GnssLocationProvider$nZP4qF7PEET3HrkcVZAYhG3Bm0c;
 Lcom/android/server/location/-$$Lambda$GnssLocationProvider$oOmW6rOO6xCNWQPEjj4mX2PxDsI;
 Lcom/android/server/location/-$$Lambda$GnssLocationProvider$rgfO__O6aj3JBohawF88T-AfsaY;
+Lcom/android/server/location/-$$Lambda$GnssLocationProvider$sq1oTWVIMZbc8j3SbFR_out8P2Q;
 Lcom/android/server/location/-$$Lambda$GnssLocationProvider$tViaOq3LA5BWjgBCpCz5nJIfQdI;
 Lcom/android/server/location/-$$Lambda$GnssLocationProvider$yfrbw7SiyKDgHamyMz3bNbh47g8;
 Lcom/android/server/location/-$$Lambda$GnssLocationProvider$zDU-4stA5kbnbj2CmSK2PauyroM;
@@ -43710,6 +47281,7 @@
 Lcom/android/server/location/-$$Lambda$SettingsHelper$DVmNGa9ypltgL35WVwJuSTIxRS8;
 Lcom/android/server/location/-$$Lambda$SettingsHelper$Ez8giHaZAPYwS7zICeUtrlXPpBo;
 Lcom/android/server/location/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;
+Lcom/android/server/location/-$$Lambda$hUPZkLaip7KhcHlSjfSfX2fzk_I;
 Lcom/android/server/location/AbstractLocationProvider$1;
 Lcom/android/server/location/AbstractLocationProvider$InternalState;
 Lcom/android/server/location/AbstractLocationProvider$Listener;
@@ -43736,6 +47308,7 @@
 Lcom/android/server/location/ContextHubService$2;
 Lcom/android/server/location/ContextHubService$3;
 Lcom/android/server/location/ContextHubService$4;
+Lcom/android/server/location/ContextHubService$5;
 Lcom/android/server/location/ContextHubService$ContextHubServiceCallback;
 Lcom/android/server/location/ContextHubService;
 Lcom/android/server/location/ContextHubServiceTransaction;
@@ -43756,6 +47329,8 @@
 Lcom/android/server/location/GeofenceProxy$GeofenceProxyServiceConnection;
 Lcom/android/server/location/GeofenceProxy;
 Lcom/android/server/location/GeofenceState;
+Lcom/android/server/location/GnssAntennaInfoProvider$GnssAntennaInfoProviderNative;
+Lcom/android/server/location/GnssAntennaInfoProvider$StatusChangedOperation;
 Lcom/android/server/location/GnssAntennaInfoProvider;
 Lcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;
 Lcom/android/server/location/GnssBatchingProvider;
@@ -43776,6 +47351,7 @@
 Lcom/android/server/location/GnssLocationProvider$6;
 Lcom/android/server/location/GnssLocationProvider$7;
 Lcom/android/server/location/GnssLocationProvider$8;
+Lcom/android/server/location/GnssLocationProvider$9;
 Lcom/android/server/location/GnssLocationProvider$FusedLocationListener;
 Lcom/android/server/location/GnssLocationProvider$GnssMetricsProvider;
 Lcom/android/server/location/GnssLocationProvider$GnssSystemInfoProvider;
@@ -43810,7 +47386,11 @@
 Lcom/android/server/location/GnssVisibilityControl;
 Lcom/android/server/location/GpsPsdsDownloader;
 Lcom/android/server/location/HardwareActivityRecognitionProxy;
+Lcom/android/server/location/IContextHubWrapper$ContextHubWrapperV1_0;
+Lcom/android/server/location/IContextHubWrapper$ContextHubWrapperV1_1;
+Lcom/android/server/location/IContextHubWrapper;
 Lcom/android/server/location/LocationBasedCountryDetector$1;
+Lcom/android/server/location/LocationBasedCountryDetector$2;
 Lcom/android/server/location/LocationBasedCountryDetector$3;
 Lcom/android/server/location/LocationBasedCountryDetector;
 Lcom/android/server/location/LocationFudger$1;
@@ -43865,6 +47445,7 @@
 Lcom/android/server/location/UserInfoStore$UserChangedListener;
 Lcom/android/server/location/UserInfoStore;
 Lcom/android/server/location/gnss/-$$Lambda$139-CBKLG1EL-wg1T1KP8tgmIKg;
+Lcom/android/server/location/gnss/-$$Lambda$D_8O7MDYM_zvDJaJvJVfzXhIfZY;
 Lcom/android/server/location/gnss/-$$Lambda$FxAranobP2o6eVcPEOp8tzZYyLY;
 Lcom/android/server/location/gnss/-$$Lambda$GnssManagerService$ADNn_wSsxu1352rEzpl8bNWHHIs;
 Lcom/android/server/location/gnss/-$$Lambda$GnssManagerService$UdLm78gS4fBvCkzR5_od9MCx3_M;
@@ -43971,6 +47552,8 @@
 Lcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$QRE0IkqsUP_uX7kD-TOn1pE7uWc;
 Lcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$SDO87Krd1n1doHne7Euurb1tZWQ;
 Lcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UWIms6pHB4Lwnsbfj-b_9WI7INk;
+Lcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$9sVKwFHJaVOpWt-fwbOrQeBJC6Y;
+Lcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$UserHandler$pb5SX6gBlgZXLZp0t4uVjgjp3EE;
 Lcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$X4W6vrpULp0aMfJC9PBBz3m1MyM;
 Lcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$XJkTc5hm1mMtQKQ92wWBqMIUe2M;
 Lcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$aadBHil74jOePCRh7oROReTvBKI;
@@ -43980,11 +47563,21 @@
 Lcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$xwrgJ0QIcy6O_xCDFBt_XQNI5DY;
 Lcom/android/server/media/-$$Lambda$MediaRouter2ServiceImpl$yPZ2ZN9TKRG_PR_HKi8QWy7YTV0;
 Lcom/android/server/media/-$$Lambda$MediaSessionService$za_9dlUSlnaiZw6eCdPVEZq0XLw;
+Lcom/android/server/media/-$$Lambda$SystemMediaRoute2Provider$aOlVIsBkXTnw1voyl2-9vhrVhMY;
 Lcom/android/server/media/AudioPlayerStateMonitor$1;
 Lcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;
 Lcom/android/server/media/AudioPlayerStateMonitor$MessageHandler;
 Lcom/android/server/media/AudioPlayerStateMonitor$OnAudioPlayerActiveStateChangedListener;
 Lcom/android/server/media/AudioPlayerStateMonitor;
+Lcom/android/server/media/BluetoothRouteProvider$AdapterStateChangedReceiver;
+Lcom/android/server/media/BluetoothRouteProvider$BluetoothBroadcastReceiver;
+Lcom/android/server/media/BluetoothRouteProvider$BluetoothEventReceiver;
+Lcom/android/server/media/BluetoothRouteProvider$BluetoothProfileListener;
+Lcom/android/server/media/BluetoothRouteProvider$BluetoothRouteInfo;
+Lcom/android/server/media/BluetoothRouteProvider$BluetoothRoutesUpdatedListener;
+Lcom/android/server/media/BluetoothRouteProvider$BondStateChangedReceiver;
+Lcom/android/server/media/BluetoothRouteProvider$DeviceStateChangedRecevier;
+Lcom/android/server/media/BluetoothRouteProvider;
 Lcom/android/server/media/MediaButtonReceiverHolder;
 Lcom/android/server/media/MediaKeyDispatcher;
 Lcom/android/server/media/MediaResourceMonitorService$MediaResourceMonitorImpl;
@@ -44047,18 +47640,25 @@
 Lcom/android/server/media/MediaShellCommand;
 Lcom/android/server/media/RemoteDisplayProviderProxy$1;
 Lcom/android/server/media/RemoteDisplayProviderProxy$Callback;
+Lcom/android/server/media/RemoteDisplayProviderProxy$Connection$1;
+Lcom/android/server/media/RemoteDisplayProviderProxy$Connection$3;
+Lcom/android/server/media/RemoteDisplayProviderProxy$Connection;
+Lcom/android/server/media/RemoteDisplayProviderProxy$ProviderCallback;
 Lcom/android/server/media/RemoteDisplayProviderProxy;
 Lcom/android/server/media/RemoteDisplayProviderWatcher$1;
 Lcom/android/server/media/RemoteDisplayProviderWatcher$2;
 Lcom/android/server/media/RemoteDisplayProviderWatcher$Callback;
 Lcom/android/server/media/RemoteDisplayProviderWatcher;
 Lcom/android/server/media/SessionPolicyProvider;
+Lcom/android/server/media/SystemMediaRoute2Provider$1;
+Lcom/android/server/media/SystemMediaRoute2Provider$VolumeChangeReceiver;
 Lcom/android/server/media/SystemMediaRoute2Provider;
 Lcom/android/server/media/projection/MediaProjectionManagerService$1;
 Lcom/android/server/media/projection/MediaProjectionManagerService$2;
 Lcom/android/server/media/projection/MediaProjectionManagerService$BinderService;
 Lcom/android/server/media/projection/MediaProjectionManagerService$CallbackDelegate;
 Lcom/android/server/media/projection/MediaProjectionManagerService$ClientStopCallback;
+Lcom/android/server/media/projection/MediaProjectionManagerService$MediaProjection$1;
 Lcom/android/server/media/projection/MediaProjectionManagerService$MediaProjection;
 Lcom/android/server/media/projection/MediaProjectionManagerService$MediaRouterCallback;
 Lcom/android/server/media/projection/MediaProjectionManagerService$WatcherStartCallback;
@@ -44073,6 +47673,7 @@
 Lcom/android/server/net/-$$Lambda$IpConfigStore$rFY3yG3j6RGRgrQey7yYfi0Yze0;
 Lcom/android/server/net/-$$Lambda$NetworkPolicyManagerService$HDTUqowtgL-W_V0Kq6psXLWC9ws;
 Lcom/android/server/net/-$$Lambda$NetworkPolicyManagerService$lv2qqWetKVoJzbe7z3LT5idTu54;
+Lcom/android/server/net/-$$Lambda$NetworkStatsService$InNd0bxX6ObmdmLP-_WGePLtUfE;
 Lcom/android/server/net/-$$Lambda$NetworkStatsService$KVH4Y9nH53_gEfrhunDFp_O6ExY;
 Lcom/android/server/net/-$$Lambda$NetworkStatsService$NetworkStatsManagerInternalImpl$5TwpV7cRVx_8Ch3sTJ1XxcGYaFo;
 Lcom/android/server/net/-$$Lambda$NetworkStatsService$rLCnfQluyJtbXZ2vSn6SQAdNPMc;
@@ -44167,7 +47768,9 @@
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$12$-k8J5tgk6UDzy6Im2nYiWZgVEDI;
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$12gEiRp5yhg_vLn2NsMtnAkm3GI;
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$14$hWnH6mjUAxwVmpU3QRoPHh5_FyI;
+Lcom/android/server/notification/-$$Lambda$NotificationManagerService$15$U436K_bi4RF3tuE3ATVdL4kLpsQ;
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$15$wXaTmmz_lG6grUqU8upk0686eXA;
+Lcom/android/server/notification/-$$Lambda$NotificationManagerService$16$zTgrLv-fwhUBKBfo6G4cZaGAhWs;
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$1IFJYiXNBcQVsabIke0xY_TgCZI;
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$CancelNotificationRunnable$1i8BOFS2Ap_BvazcwqssFxW6U1U;
 Lcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$-frFvBh01OajP_vj8nGNvXvmX1Y;
@@ -44279,6 +47882,7 @@
 Lcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable;
 Lcom/android/server/notification/NotificationManagerService$SettingsObserver;
 Lcom/android/server/notification/NotificationManagerService$SnoozeNotificationRunnable;
+Lcom/android/server/notification/NotificationManagerService$StatsPullAtomCallbackImpl;
 Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;
 Lcom/android/server/notification/NotificationManagerService$ToastRecord;
 Lcom/android/server/notification/NotificationManagerService$TrimCache;
@@ -44286,7 +47890,9 @@
 Lcom/android/server/notification/NotificationManagerService;
 Lcom/android/server/notification/NotificationRecord$Light;
 Lcom/android/server/notification/NotificationRecord;
+Lcom/android/server/notification/NotificationRecordLogger$NotificationCancelledEvent;
 Lcom/android/server/notification/NotificationRecordLogger$NotificationRecordPair;
+Lcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvent;
 Lcom/android/server/notification/NotificationRecordLogger$NotificationReportedEvents;
 Lcom/android/server/notification/NotificationRecordLogger;
 Lcom/android/server/notification/NotificationRecordLoggerImpl;
@@ -44380,6 +47986,7 @@
 Lcom/android/server/om/OverlayManagerService$1;
 Lcom/android/server/om/OverlayManagerService$OverlayChangeListener;
 Lcom/android/server/om/OverlayManagerService$PackageManagerHelper;
+Lcom/android/server/om/OverlayManagerService$PackageManagerHelperImpl;
 Lcom/android/server/om/OverlayManagerService$PackageReceiver;
 Lcom/android/server/om/OverlayManagerService$UserReceiver;
 Lcom/android/server/om/OverlayManagerService;
@@ -44394,6 +48001,8 @@
 Lcom/android/server/om/OverlayReferenceMapper$1;
 Lcom/android/server/om/OverlayReferenceMapper$Provider;
 Lcom/android/server/om/OverlayReferenceMapper;
+Lcom/android/server/om/OverlayableInfoCallback;
+Lcom/android/server/om/PackageManagerHelper;
 Lcom/android/server/os/-$$Lambda$SchedulingPolicyService$ao2OiSvvlyzmJ0li0c0nhHy-IDk;
 Lcom/android/server/os/BugreportManagerService;
 Lcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;
@@ -44415,8 +48024,11 @@
 Lcom/android/server/people/PeopleServiceInternal;
 Lcom/android/server/people/SessionInfo;
 Lcom/android/server/people/data/-$$Lambda$DataManager$CallLogContentObserver$F795P2fXEZGvzLUih_SIpFcsyic;
+Lcom/android/server/people/data/-$$Lambda$DataManager$ContactsContentObserver$wv19gIIQIhM79fILSTcdGXPmrF0;
 Lcom/android/server/people/data/-$$Lambda$DataManager$MmsSmsContentObserver$UfeTRftTDIcNo1iUJLeOD5s_XmM;
 Lcom/android/server/people/data/-$$Lambda$DataManager$ShortcutServiceListener$emB0GKXSexwJTzSWLUKYnAGbCCg;
+Lcom/android/server/people/data/-$$Lambda$DataManager$UsageStatsQueryRunnable$XYAxcpC9us0TDcNCO-NIcs5ajqQ;
+Lcom/android/server/people/data/-$$Lambda$bkfsFF2Vc2A9q-5JeJQbUu98BkQ;
 Lcom/android/server/people/data/CallLogQueryHelper;
 Lcom/android/server/people/data/ContactsQueryHelper;
 Lcom/android/server/people/data/ConversationInfo$Builder;
@@ -44424,6 +48036,7 @@
 Lcom/android/server/people/data/ConversationStore;
 Lcom/android/server/people/data/DataManager$1;
 Lcom/android/server/people/data/DataManager$CallLogContentObserver;
+Lcom/android/server/people/data/DataManager$ContactsContentObserver$ConversationSelector;
 Lcom/android/server/people/data/DataManager$ContactsContentObserver;
 Lcom/android/server/people/data/DataManager$Injector;
 Lcom/android/server/people/data/DataManager$MmsSmsContentObserver;
@@ -44442,6 +48055,7 @@
 Lcom/android/server/people/data/MmsQueryHelper;
 Lcom/android/server/people/data/PackageData;
 Lcom/android/server/people/data/SmsQueryHelper;
+Lcom/android/server/people/data/UsageStatsQueryHelper;
 Lcom/android/server/people/data/UserData;
 Lcom/android/server/people/data/Utils;
 Lcom/android/server/people/prediction/AppTargetPredictor;
@@ -44458,7 +48072,13 @@
 Lcom/android/server/pm/-$$Lambda$BackgroundDexOptService$TAsfDUuoxt92xKFoSCfpMUmY2Es;
 Lcom/android/server/pm/-$$Lambda$CFSsMipQUq5_2T1_SDplRJCGzsQ;
 Lcom/android/server/pm/-$$Lambda$ComponentResolver$PuHbZd5KEOMGjkH8xDOhOwfLtC0;
+Lcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$4kTzFa_zjeGMtJVy5CluIOehAmM;
+Lcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$D4Z_0MUKQxAr3kDglyup8aB9XLE;
+Lcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$DxhjfM3U9U3V3tJbzSWj7AMLCBE;
+Lcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$HVfTkMl1ZNC9cAfi1atsp3Dwnyg;
+Lcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$bl8duoKAQm4-uSci6ZlA_aEdeg8;
 Lcom/android/server/pm/-$$Lambda$CrossProfileAppsServiceImpl$wMVevLD4FZ1cL73xmtbSkTJK9d8;
+Lcom/android/server/pm/-$$Lambda$DpkuTFpeWPmvN7iGgFrn8VkMVd4;
 Lcom/android/server/pm/-$$Lambda$EvXtX9FEb_c87yAlCmxSfLtExqQ;
 Lcom/android/server/pm/-$$Lambda$FW40Da1L1EZJ_usDX0ew1qRMmtc;
 Lcom/android/server/pm/-$$Lambda$Installer$SebeftIfAJ7KsTmM0tju6PfW4Pc;
@@ -44471,11 +48091,14 @@
 Lcom/android/server/pm/-$$Lambda$LauncherAppsService$LauncherAppsImpl$MyPackageMonitor$eTair5Mvr14v4M0nq9aQEW2cp-Y;
 Lcom/android/server/pm/-$$Lambda$LauncherAppsService$LauncherAppsImpl$PR6SMHDNFTsnoL92MFZskM-zN8k;
 Lcom/android/server/pm/-$$Lambda$OtaDexoptService$sAE9PLBjWsXDVkiiC_uzr0kwQ4k;
+Lcom/android/server/pm/-$$Lambda$PLzRNNUpYHZlGNIn1ofLtN374Ow;
 Lcom/android/server/pm/-$$Lambda$PackageInstallerService$vra5ZkE3juVvcgDBu5xv0wVzno8;
 Lcom/android/server/pm/-$$Lambda$PackageInstallerSession$0MwsfMSD_PrEtElmOWjbhM7455A;
+Lcom/android/server/pm/-$$Lambda$PackageInstallerSession$0Oqu1oanLjaOBEcFPtJVCRQ0lHs;
 Lcom/android/server/pm/-$$Lambda$PackageInstallerSession$1Vn1SAhcCHhhsIQilx5inKAgWRM;
 Lcom/android/server/pm/-$$Lambda$PackageInstallerSession$8h1d-tE1jIyQL1g477wJngVHGm0;
 Lcom/android/server/pm/-$$Lambda$PackageInstallerSession$A1RHq3AVT8egu8DUw6cGBmsHEPc;
+Lcom/android/server/pm/-$$Lambda$PackageInstallerSession$ChildStatusIntentReceiver$CIWymiEKCzNknV3an6tFtcz5-Mc;
 Lcom/android/server/pm/-$$Lambda$PackageInstallerSession$I-m_B4h0BMOozr8LCZKwLk8jYwA;
 Lcom/android/server/pm/-$$Lambda$PackageInstallerSession$Jldeo0ihCZqsZyrchyGGrBvBFhI;
 Lcom/android/server/pm/-$$Lambda$PackageInstallerSession$LKX-RujkFnSgLnC0cYsTt3XfpMw;
@@ -44494,7 +48117,10 @@
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$2LJuxrdU5DWIRpDkTbzKA8U7iIc;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$3TlqkUBuVM7NyAg7uqJCni92WOU;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$3yxDU_uSU2kkdLuKkfPYVKvXKGw;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$4cqrQoT4gMgFm-tugMOyoExM1kI;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$4lr9R3-Rfzq-VEptx-WWeRaSpd4;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$8L7pRmGgOsUHi0VNMkDwO-flFqk;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$9nrhpVUScjAieIxS9iHE0hiaATk;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$BzRujGrz-3iO1VZDBUuSaqm63Go;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$DWomXCDpiVbZPOk7h4gWI0gNMDM;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$ECakc05vOVsUm8ydpi2Z-HghH4w;
@@ -44508,15 +48134,18 @@
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$Kv9_Hbk7M-eyDSHfPi1rrQzjiwc;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$Mtahsr42dH18eRuAJ0J6DzShLys;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$OchkDx-ijr5A5mGpkAil3XLu7Oo;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$PPALVjzIAqON2FdZv5soozZSLq8;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$PmwkzQu9rsYKerIyizl5HqTMOeY;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$PvuTB7Ihf5rmN0ByWpLv31cRa7s;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$QEXaCTQ54nCy5aHUAa6mkt0WtpM;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$QIOg9odF8NpVJsmgYMdGQy_GpvY;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$RfqRmQ8KNtYywzf-EIm7VG5PHj8;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$RoklvvEqbb0_WAziY4NuUNhrlUA;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$U47f17sf-Z0eef3W2xgzUB-ecR4;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$UqTOzDNpKPiIlaG4_AUlesB9I1E;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$VINGOt0rwLOHiIrsYfMP2VPHvl0;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$WLKCxynYP-nOLQg-OBNNc1w2Z18;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$WXhCf3v80czwXbh17kimYOFhAFs;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$Wnf5zZuMJLUQ4GfjHtUww4l7YUg;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$XBL5VfMu2aQcjyrc4spKskHsSJU;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$XrodqQtXF-63SFPD_WxRBB7sfa4;
@@ -44528,6 +48157,7 @@
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$cHQqBPj5vgOw-P7yhrKC9Ssq27g;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$ccz4PCOSG7fKRFBAMJv8GMQMI08;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$djQQrdclAlQ8ILip1OVPcBDTkW4;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$eOXySdFQ-z888HMdYTDdDb8rYuQ;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$ey1rLNYtfJSvujRGt9gqdyMxIwI;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$f5l1_UOwACQPN6qixqBmzSJzDMw;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$fQjXY6S0s38rWZ-Tv1PTQvrgJb4;
@@ -44536,9 +48166,11 @@
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$i2wY1QKIZAfMEAymOPPs8KS2G5c;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$i6CpetYRHYknkq8R3n1zFsH2Qng;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$imyTLGZ0HLyacORSu0iPTteivzY;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$iqEX-hdziBwn1njNVhAdQHeXwus;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$kHFR9hPPJshGwQIlj0mPFAZIZSI;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$kUm15OrlWJD9K-LIlM_rBtX-g4Q;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$kdqJJNrm44ZfCpYgQsRrZy7nM38;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$lMzdBb_uDjCHbhFoPJTxlDi_7zo;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$mozSqBaYzz4jQjwZjKIapdRXflc;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$ms4g2QGGQv1AIanhd1siLhoElkI;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$pVdeIe13BPz2j1-uK6W_NugHu2Q;
@@ -44555,9 +48187,11 @@
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$xZAAMOZCDrDe-FJUcRmxesa8h7c;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$xv5zSGDUCMQ_E6mH4qgdkiJ5XtA;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$xwqiJpXPI0dDAZ1z9noew-rHViA;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$yXdgY7SVZQWnWWIG0iO_OYKuh58;
 Lcom/android/server/pm/-$$Lambda$PackageManagerService$zCuBGosGB1OGJ7ya2EB4X5V2jBk;
 Lcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$1RbkDa86pOg-5BavmgbPLLCoJCA;
 Lcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$JqfeXEVVj9qyD-t5TtAWP5dUo_Q;
+Lcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$RPtRdW9NvVYNz-tG18YC0n7VJp4;
 Lcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$WqWSiwN-039OE_mRd8x6F_ORqRU;
 Lcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$ZEbcK7yQgHqG-8Z65v9KNo4jBgU;
 Lcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$_LUs2lN_dtgmbhOTm2Ear0f91Qg;
@@ -44584,9 +48218,11 @@
 Lcom/android/server/pm/-$$Lambda$ShortcutService$H1HFyb1U9E1-y03suEsi37_w-t0;
 Lcom/android/server/pm/-$$Lambda$ShortcutService$HrjNihAM4odnSGPLxsJbI33JkwE;
 Lcom/android/server/pm/-$$Lambda$ShortcutService$KOp4rgvJPqXwR4WftrrGcjb2qMQ;
+Lcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$OwXAUkceFTQAGpPzTbihl14wvP4;
 Lcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$Q0t7aDuDFJ8HWAf1NHW1dGQjOf8;
 Lcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$ZxpFznY3OrD6IbNkC12YhV8h3J4;
 Lcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$a6cj3oQpS-Z6FB4DytB0FytYmiM;
+Lcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$glaS4uJCas9aUmjUCxlz_EN5nmQ;
 Lcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$ltDE7qm9grkumxffFI8cLCFpNqU;
 Lcom/android/server/pm/-$$Lambda$ShortcutService$M_jA5rlnfqs19yyXen7WvF8EFdQ;
 Lcom/android/server/pm/-$$Lambda$ShortcutService$NdP-8QRYjvDVSScw7cBKt85dbWQ;
@@ -44615,6 +48251,7 @@
 Lcom/android/server/pm/-$$Lambda$ShortcutUser$XHWlvjfCvG1SoVwGHi3envhmtfM;
 Lcom/android/server/pm/-$$Lambda$ShortcutUser$bsc89E_40a5X2amehalpqawQ5hY;
 Lcom/android/server/pm/-$$Lambda$StagingManager$-_ny3FTrU2IsbpZjLW2h29O5auM;
+Lcom/android/server/pm/-$$Lambda$StagingManager$1$x6UWz5lz4rW7MnWw4KzvwIRWgsQ;
 Lcom/android/server/pm/-$$Lambda$StagingManager$HKgsX1m7APD_7T6AtjHR5IBpKOg;
 Lcom/android/server/pm/-$$Lambda$StagingManager$UAHmD_dya6rWSylrk_h2BGFBKcA;
 Lcom/android/server/pm/-$$Lambda$StagingManager$ZgsDW9nz_GRyhJblDPqTcQpERKw;
@@ -44628,12 +48265,17 @@
 Lcom/android/server/pm/-$$Lambda$UserSystemPackageInstaller$qgQhYPPVJE0ZGQMRr6lmVdZZll0;
 Lcom/android/server/pm/-$$Lambda$UserSystemPackageInstaller$sAb1bQVy3LvCkecpDpo9566E_WA;
 Lcom/android/server/pm/-$$Lambda$XAnWXMIiLhuW-IgC6QMv9mUZKLs;
+Lcom/android/server/pm/-$$Lambda$YY245IBQr5Qygm_NJ7MG_oIzCHk;
+Lcom/android/server/pm/-$$Lambda$ZNT-rBF_Eueeh81ck_Py5FtxpMk;
 Lcom/android/server/pm/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;
 Lcom/android/server/pm/-$$Lambda$aDS6mx4DkwptPe2nlJ1LiNnzsdA;
+Lcom/android/server/pm/-$$Lambda$bpFcEVMboFCYFnC3BHdOPCQV19Y;
 Lcom/android/server/pm/-$$Lambda$g4P9K8aMR8DqEu0xx3BuQNeuJDI;
+Lcom/android/server/pm/-$$Lambda$jJA7F7L-4w56WZDbW9UayzZEbFw;
 Lcom/android/server/pm/-$$Lambda$jZzCUQd1whVIqs_s1XMLbFqTP_E;
 Lcom/android/server/pm/-$$Lambda$k1GFoI6SobyVJslBym5uZjmuRFs;
 Lcom/android/server/pm/-$$Lambda$lPF7xFSzcWOL7sNKaTqRz6Ju9JA;
+Lcom/android/server/pm/-$$Lambda$mI6eiz-cSKp3gDx4_MNMYKTJXG4;
 Lcom/android/server/pm/-$$Lambda$o-ZLavkSzPWqIqo9vLXCsdj4Pgg;
 Lcom/android/server/pm/-$$Lambda$p0TiQPw2ryHKkedVkMgvUcGADDo;
 Lcom/android/server/pm/-$$Lambda$sAnQjWlQDJoJcSwHDDCKcU2fneU;
@@ -44659,6 +48301,7 @@
 Lcom/android/server/pm/ComponentResolver$1;
 Lcom/android/server/pm/ComponentResolver$ActivityIntentResolver;
 Lcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;
+Lcom/android/server/pm/ComponentResolver$MimeGroupsAwareIntentResolver;
 Lcom/android/server/pm/ComponentResolver$ProviderIntentResolver;
 Lcom/android/server/pm/ComponentResolver$ReceiverIntentResolver;
 Lcom/android/server/pm/ComponentResolver$ServiceIntentResolver;
@@ -44666,6 +48309,7 @@
 Lcom/android/server/pm/CrossProfileAppsService;
 Lcom/android/server/pm/CrossProfileAppsServiceImpl$Injector;
 Lcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;
+Lcom/android/server/pm/CrossProfileAppsServiceImpl$LocalService;
 Lcom/android/server/pm/CrossProfileAppsServiceImpl;
 Lcom/android/server/pm/CrossProfileIntentFilter;
 Lcom/android/server/pm/CrossProfileIntentResolver;
@@ -44702,6 +48346,7 @@
 Lcom/android/server/pm/LauncherAppsService$BroadcastCookie;
 Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;
 Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageCallbackList;
+Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$ShortcutChangeHandler;
 Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;
 Lcom/android/server/pm/LauncherAppsService;
 Lcom/android/server/pm/ModuleInfoProvider;
@@ -44728,6 +48373,7 @@
 Lcom/android/server/pm/PackageInstallerSession$4;
 Lcom/android/server/pm/PackageInstallerSession$5;
 Lcom/android/server/pm/PackageInstallerSession$6;
+Lcom/android/server/pm/PackageInstallerSession$ChildStatusIntentReceiver$1;
 Lcom/android/server/pm/PackageInstallerSession$ChildStatusIntentReceiver;
 Lcom/android/server/pm/PackageInstallerSession$FileInfo;
 Lcom/android/server/pm/PackageInstallerSession$FileSystemConnector;
@@ -44761,6 +48407,8 @@
 Lcom/android/server/pm/PackageManagerService$Injector;
 Lcom/android/server/pm/PackageManagerService$InstallArgs;
 Lcom/android/server/pm/PackageManagerService$InstallParams$1;
+Lcom/android/server/pm/PackageManagerService$InstallParams$2;
+Lcom/android/server/pm/PackageManagerService$InstallParams$3;
 Lcom/android/server/pm/PackageManagerService$InstallParams;
 Lcom/android/server/pm/PackageManagerService$InstallRequest;
 Lcom/android/server/pm/PackageManagerService$IntentFilterVerifier;
@@ -44784,6 +48432,7 @@
 Lcom/android/server/pm/PackageManagerService$ReconcileFailure;
 Lcom/android/server/pm/PackageManagerService$ReconcileRequest;
 Lcom/android/server/pm/PackageManagerService$ReconciledPackage;
+Lcom/android/server/pm/PackageManagerService$ScanPartition;
 Lcom/android/server/pm/PackageManagerService$ScanRequest;
 Lcom/android/server/pm/PackageManagerService$ScanResult;
 Lcom/android/server/pm/PackageManagerService$SystemDeleteException;
@@ -44799,6 +48448,7 @@
 Lcom/android/server/pm/PackageManagerShellCommand$4;
 Lcom/android/server/pm/PackageManagerShellCommand$ClearDataObserver;
 Lcom/android/server/pm/PackageManagerShellCommand$InstallParams;
+Lcom/android/server/pm/PackageManagerShellCommand$LocalIntentReceiver$1;
 Lcom/android/server/pm/PackageManagerShellCommand$LocalIntentReceiver;
 Lcom/android/server/pm/PackageManagerShellCommand$SessionDump;
 Lcom/android/server/pm/PackageManagerShellCommand$SnapshotRuntimeProfileCallback;
@@ -44867,7 +48517,9 @@
 Lcom/android/server/pm/ShortcutUser$PackageWithUser;
 Lcom/android/server/pm/ShortcutUser;
 Lcom/android/server/pm/StagingManager$1;
+Lcom/android/server/pm/StagingManager$LocalIntentReceiverAsync$1;
 Lcom/android/server/pm/StagingManager$LocalIntentReceiverAsync;
+Lcom/android/server/pm/StagingManager$LocalIntentReceiverSync$1;
 Lcom/android/server/pm/StagingManager$LocalIntentReceiverSync;
 Lcom/android/server/pm/StagingManager$PreRebootVerificationHandler;
 Lcom/android/server/pm/StagingManager;
@@ -44877,6 +48529,7 @@
 Lcom/android/server/pm/UserManagerService$3;
 Lcom/android/server/pm/UserManagerService$4;
 Lcom/android/server/pm/UserManagerService$5;
+Lcom/android/server/pm/UserManagerService$6$1;
 Lcom/android/server/pm/UserManagerService$6;
 Lcom/android/server/pm/UserManagerService$DisableQuietModeUserUnlockedCallback;
 Lcom/android/server/pm/UserManagerService$LifeCycle;
@@ -44914,7 +48567,32 @@
 Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;
 Lcom/android/server/pm/dex/PackageDynamicCodeLoading;
 Lcom/android/server/pm/dex/ViewCompiler;
+Lcom/android/server/pm/parsing/-$$Lambda$MsCTQbj1nCkHPuW2VX512f_ZKpg;
+Lcom/android/server/pm/parsing/-$$Lambda$gLXiiRPkkfU6FsJxq4nR4nPlVSk;
+Lcom/android/server/pm/parsing/PackageCacher;
+Lcom/android/server/pm/parsing/PackageInfoUtils$CachedApplicationInfoGenerator;
+Lcom/android/server/pm/parsing/PackageInfoUtils;
+Lcom/android/server/pm/parsing/PackageParser2$Callback;
+Lcom/android/server/pm/parsing/PackageParser2;
+Lcom/android/server/pm/parsing/library/AndroidHidlUpdater;
+Lcom/android/server/pm/parsing/library/AndroidTestBaseUpdater;
+Lcom/android/server/pm/parsing/library/OrgApacheHttpLegacyUpdater;
+Lcom/android/server/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;
+Lcom/android/server/pm/parsing/library/PackageBackwardCompatibility;
+Lcom/android/server/pm/parsing/library/PackageSharedLibraryUpdater;
+Lcom/android/server/pm/parsing/pkg/AndroidPackage;
+Lcom/android/server/pm/parsing/pkg/AndroidPackageUtils;
+Lcom/android/server/pm/parsing/pkg/AndroidPackageWrite;
+Lcom/android/server/pm/parsing/pkg/PackageImpl$1;
+Lcom/android/server/pm/parsing/pkg/PackageImpl;
+Lcom/android/server/pm/parsing/pkg/ParsedPackage;
+Lcom/android/server/pm/parsing/pkg/PkgAppInfo;
+Lcom/android/server/pm/parsing/pkg/PkgPackageInfo;
 Lcom/android/server/pm/permission/-$$Lambda$DefaultPermissionGrantPolicy$SHfHTWKpfBf_vZtWArm-FlNBI8k;
+Lcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$6-ufctMfTfrbd3URDMlB0Ywd8Ik;
+Lcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$SVoloDDAPWRycmaRhugBlXuSVeI;
+Lcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$jL3jeghSTeL6RfIu1pUGSzWgTuc;
+Lcom/android/server/pm/permission/-$$Lambda$OneTimePermissionUserManager$PackageInactivityListener$lKEtuzRRYU8MegOihXQiXrZ0ZaM;
 Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$1$7A2ffMA57G4PvFD5RbG2mRh2Q_8;
 Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$1$QSCLyelVDMHZe8LrlYhYvfz5G2c;
 Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$3_HObOA7SDQazRHAVI1qUUdGq_s;
@@ -44926,6 +48604,8 @@
 Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$PermissionManagerServiceInternalImpl$u0m9fxQ1DzsHML4E-xlMAgH2gIE;
 Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$QU_UFF-9J77Mq118FLJUiLh4ARI;
 Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$T4uCZ9__oEXYpzLBYEW1T_BN3SU;
+Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$TCLcs8BgJvNr88B1R6pU9xRD-jw;
+Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$XgJON0nYdrr1Swr3OJklQ7xA-pU;
 Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$aQWnOfCuKK-rSxzDPI_dUOtzv8I;
 Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$eApyRxwI3JHTSVAxV9EbP43gFOo;
 Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$g9Bo5gFpLYyPOsp3K8Aik5xseDI;
@@ -44938,6 +48618,7 @@
 Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;
 Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$DefaultPermissionGrant;
 Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;
+Lcom/android/server/pm/permission/OneTimePermissionUserManager$PackageInactivityListener;
 Lcom/android/server/pm/permission/OneTimePermissionUserManager;
 Lcom/android/server/pm/permission/PermissionManagerService$1;
 Lcom/android/server/pm/permission/PermissionManagerService$2;
@@ -44955,11 +48636,18 @@
 Lcom/android/server/pm/permission/PermissionsState$PermissionData;
 Lcom/android/server/pm/permission/PermissionsState$PermissionState;
 Lcom/android/server/pm/permission/PermissionsState;
+Lcom/android/server/pm/pkg/PackageStateUnserialized;
+Lcom/android/server/policy/-$$Lambda$LegacyGlobalActions$MdLN6qUJHty5FwMejjTE2cTYSvc;
+Lcom/android/server/policy/-$$Lambda$LegacyGlobalActions$wqp7aD3DxIVGmy_uGo-yxhtwmQk;
 Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$Bdjb-bUeNjqbvpDtoyGXyhqm1CI;
 Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$EOXe1_laAw9FFgJquDg6Qy2DagQ;
 Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$RYery4oeHNcS8uZ6BgM2MtZIvKw;
 Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$V2gOjn4rTBH_rbxagOz-eOTvNfc;
 Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$enZnky8NIhd5B9lAhmYeFn1Y6mk;
+Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$i87nwVknDNR-kxbgdgQq3zYShyg;
+Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$rJp0VdbmrKtSdyFQpzRCvpLbQYE;
+Lcom/android/server/policy/-$$Lambda$PhoneWindowManager$DisplayHomeButtonHandler$ljCIzo7y96OZCYYMVaAi6LAwRAE;
+Lcom/android/server/policy/-$$Lambda$j_3GF7S52oSV__e_mYWlY5TeyiM;
 Lcom/android/server/policy/-$$Lambda$oXa0y3A-00RiQs6-KTPBgpkGtgw;
 Lcom/android/server/policy/BurnInProtectionHelper;
 Lcom/android/server/policy/DisplayFoldController;
@@ -44970,6 +48658,18 @@
 Lcom/android/server/policy/GlobalActionsProvider;
 Lcom/android/server/policy/GlobalKeyManager;
 Lcom/android/server/policy/IconUtilities;
+Lcom/android/server/policy/LegacyGlobalActions$10;
+Lcom/android/server/policy/LegacyGlobalActions$11;
+Lcom/android/server/policy/LegacyGlobalActions$12;
+Lcom/android/server/policy/LegacyGlobalActions$13;
+Lcom/android/server/policy/LegacyGlobalActions$1;
+Lcom/android/server/policy/LegacyGlobalActions$2;
+Lcom/android/server/policy/LegacyGlobalActions$7;
+Lcom/android/server/policy/LegacyGlobalActions$9;
+Lcom/android/server/policy/LegacyGlobalActions$BugReportAction$1;
+Lcom/android/server/policy/LegacyGlobalActions$BugReportAction;
+Lcom/android/server/policy/LegacyGlobalActions$SilentModeTriStateAction;
+Lcom/android/server/policy/LegacyGlobalActions;
 Lcom/android/server/policy/LogDecelerateInterpolator;
 Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;
 Lcom/android/server/policy/PermissionPolicyInternal;
@@ -44993,6 +48693,7 @@
 Lcom/android/server/policy/PhoneWindowManager$7;
 Lcom/android/server/policy/PhoneWindowManager$8;
 Lcom/android/server/policy/PhoneWindowManager$9;
+Lcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler$1;
 Lcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;
 Lcom/android/server/policy/PhoneWindowManager$HdmiControl;
 Lcom/android/server/policy/PhoneWindowManager$HdmiVideoExtconUEventObserver;
@@ -45002,6 +48703,8 @@
 Lcom/android/server/policy/PhoneWindowManager$ScreenshotRunnable;
 Lcom/android/server/policy/PhoneWindowManager$SettingsObserver;
 Lcom/android/server/policy/PhoneWindowManager;
+Lcom/android/server/policy/PowerAction;
+Lcom/android/server/policy/RestartAction;
 Lcom/android/server/policy/ShortcutManager$ShortcutInfo;
 Lcom/android/server/policy/ShortcutManager;
 Lcom/android/server/policy/SoftRestrictedPermissionPolicy$1;
@@ -45041,10 +48744,12 @@
 Lcom/android/server/power/-$$Lambda$InattentiveSleepWarningController$fd5hIb5QJl3fTkCKcm9jEkrhnUU;
 Lcom/android/server/power/-$$Lambda$PowerManagerService$FUW_os-Z9SregUE_DR9vDwaRuXo;
 Lcom/android/server/power/-$$Lambda$ThermalManagerService$9JFHCKCwrnUIYoXDsqNamhlY5VU;
+Lcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$P4Eu0RILVATHKmAc4SzykaNlz_4;
 Lcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$R9S8YWn8x1F3V2TOvXtmky1V44Q;
 Lcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$dRsq86SXVH7z342fbs2U36cr67I;
 Lcom/android/server/power/-$$Lambda$ThermalManagerService$ZPQKzo9ZjU-hL4QYH693hWuTqjk;
 Lcom/android/server/power/-$$Lambda$ThermalManagerService$x5obtNvJKZxnpguOiQsFBDmBZ4k;
+Lcom/android/server/power/AmbientDisplaySuppressionController;
 Lcom/android/server/power/AttentionDetector$1;
 Lcom/android/server/power/AttentionDetector$AttentionCallbackInternalImpl;
 Lcom/android/server/power/AttentionDetector$UserSwitchObserver;
@@ -45082,10 +48787,15 @@
 Lcom/android/server/power/PowerManagerService$WakeLock;
 Lcom/android/server/power/PowerManagerService;
 Lcom/android/server/power/PowerManagerShellCommand;
+Lcom/android/server/power/PreRebootLogger;
+Lcom/android/server/power/ShutdownThread$2;
+Lcom/android/server/power/ShutdownThread$3;
+Lcom/android/server/power/ShutdownThread$5;
 Lcom/android/server/power/ShutdownThread;
 Lcom/android/server/power/SuspendBlocker;
 Lcom/android/server/power/SystemPropertiesWrapper;
 Lcom/android/server/power/ThermalManagerService$1;
+Lcom/android/server/power/ThermalManagerService$TemperatureWatcher;
 Lcom/android/server/power/ThermalManagerService$ThermalHal10Wrapper;
 Lcom/android/server/power/ThermalManagerService$ThermalHal11Wrapper;
 Lcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper$1;
@@ -45122,6 +48832,7 @@
 Lcom/android/server/power/batterysaver/BatterySaverController$Plugin;
 Lcom/android/server/power/batterysaver/BatterySaverController;
 Lcom/android/server/power/batterysaver/BatterySaverLocationPlugin;
+Lcom/android/server/power/batterysaver/BatterySaverPolicy$1;
 Lcom/android/server/power/batterysaver/BatterySaverPolicy$BatterySaverPolicyListener;
 Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;
 Lcom/android/server/power/batterysaver/BatterySaverPolicy;
@@ -45134,7 +48845,26 @@
 Lcom/android/server/power/batterysaver/BatterySavingStats;
 Lcom/android/server/power/batterysaver/CpuFrequencies;
 Lcom/android/server/power/batterysaver/FileUpdater;
+Lcom/android/server/print/-$$Lambda$RemotePrintService$1cbVOJkW_ULFS1xH-T-tbALCzHI;
+Lcom/android/server/print/-$$Lambda$RemotePrintService$FH95Crnc6zH421SxRw9RxPyl0YY;
+Lcom/android/server/print/-$$Lambda$RemotePrintService$KGsYx3sHW6vGymod4UmBTazYSks;
+Lcom/android/server/print/-$$Lambda$RemotePrintService$L2EQSyIHled1ZVO5GCaBXmvtCQQ;
+Lcom/android/server/print/-$$Lambda$RemotePrintService$aHc-cJYzTXxafcxxvfW2janFHIc;
+Lcom/android/server/print/-$$Lambda$RemotePrintService$jrFOjxtIoMNm8S0KNTqIDHuv4oY;
+Lcom/android/server/print/-$$Lambda$RemotePrintService$pgSurbN2geCgHp9vfTAIFm5XvgQ;
+Lcom/android/server/print/-$$Lambda$RemotePrintService$ru7USNI_O2DIDwflMPlEsqA_IY4;
+Lcom/android/server/print/-$$Lambda$RemotePrintService$tI07K2u4Z5L72sd1hvSEunGclrg;
 Lcom/android/server/print/-$$Lambda$UserState$LdWYUAKz4cbWqoxOD4oZ_ZslKdg;
+Lcom/android/server/print/-$$Lambda$UserState$PrinterDiscoverySessionMediator$CjemUQP8s7wG-dq-pIggj9Oze6I;
+Lcom/android/server/print/-$$Lambda$UserState$PrinterDiscoverySessionMediator$MT8AtQ4cegoEAucY7Fm8C8TCrjo;
+Lcom/android/server/print/-$$Lambda$UserState$PrinterDiscoverySessionMediator$Ou3LUs53hzSrIma0FHPj2g3gePc;
+Lcom/android/server/print/-$$Lambda$UserState$PrinterDiscoverySessionMediator$TAWPnRTK22Veu2-mmKNSJCvnBoU;
+Lcom/android/server/print/-$$Lambda$UserState$PrinterDiscoverySessionMediator$TNeLGO1RKf0CucB-BMQ_M0UyoRs;
+Lcom/android/server/print/-$$Lambda$UserState$PrinterDiscoverySessionMediator$_XymASnzhemmGwK4Nu5RUIT0ahk;
+Lcom/android/server/print/-$$Lambda$UserState$PrinterDiscoverySessionMediator$iQrjLK8luujjjp1uW3VGCsAZK_g;
+Lcom/android/server/print/-$$Lambda$UserState$PrinterDiscoverySessionMediator$lfSsgTy_1NLRRkjOH_yL2Tk_x2w;
+Lcom/android/server/print/-$$Lambda$UserState$d-WQxYwbHYb6N0le5ohwQsWVdjw;
+Lcom/android/server/print/-$$Lambda$UserState$f3loorfBpq9Tu3Vl5vt4Ul321ok;
 Lcom/android/server/print/PrintManagerService$PrintManagerImpl$1;
 Lcom/android/server/print/PrintManagerService$PrintManagerImpl$2;
 Lcom/android/server/print/PrintManagerService$PrintManagerImpl$3;
@@ -45142,11 +48872,16 @@
 Lcom/android/server/print/PrintManagerService$PrintManagerImpl;
 Lcom/android/server/print/PrintManagerService;
 Lcom/android/server/print/PrintShellCommand;
+Lcom/android/server/print/RemotePrintService$4;
+Lcom/android/server/print/RemotePrintService$6;
 Lcom/android/server/print/RemotePrintService$PrintServiceCallbacks;
 Lcom/android/server/print/RemotePrintService$RemotePrintServiceClient;
 Lcom/android/server/print/RemotePrintService$RemoteServiceConneciton;
 Lcom/android/server/print/RemotePrintService;
+Lcom/android/server/print/RemotePrintServiceRecommendationService$Connection$1;
+Lcom/android/server/print/RemotePrintServiceRecommendationService$Connection;
 Lcom/android/server/print/RemotePrintServiceRecommendationService$RemotePrintServiceRecommendationServiceCallbacks;
+Lcom/android/server/print/RemotePrintServiceRecommendationService;
 Lcom/android/server/print/RemotePrintSpooler$BasePrintSpoolerServiceCallbacks;
 Lcom/android/server/print/RemotePrintSpooler$ClearCustomPrinterIconCacheCaller$1;
 Lcom/android/server/print/RemotePrintSpooler$ClearCustomPrinterIconCacheCaller;
@@ -45166,7 +48901,16 @@
 Lcom/android/server/print/RemotePrintSpooler$SetPrintJobTagCaller$1;
 Lcom/android/server/print/RemotePrintSpooler$SetPrintJobTagCaller;
 Lcom/android/server/print/RemotePrintSpooler;
+Lcom/android/server/print/UserState$1;
+Lcom/android/server/print/UserState$2;
+Lcom/android/server/print/UserState$3;
+Lcom/android/server/print/UserState$4;
+Lcom/android/server/print/UserState$ListenerRecord;
+Lcom/android/server/print/UserState$PrintJobForAppCache$1;
 Lcom/android/server/print/UserState$PrintJobForAppCache;
+Lcom/android/server/print/UserState$PrintJobStateChangeListenerRecord;
+Lcom/android/server/print/UserState$PrinterDiscoverySessionMediator$1;
+Lcom/android/server/print/UserState$PrinterDiscoverySessionMediator;
 Lcom/android/server/print/UserState;
 Lcom/android/server/protolog/-$$Lambda$PfxMAktVLMbQMPp_FRkrQxibSKE;
 Lcom/android/server/protolog/-$$Lambda$ProtoLogImpl$G6yKiHAdF7lI4aTCybTMCes5zyI;
@@ -45191,6 +48935,7 @@
 Lcom/android/server/restrictions/RestrictionsManagerService$RestrictionsManagerImpl;
 Lcom/android/server/restrictions/RestrictionsManagerService;
 Lcom/android/server/role/-$$Lambda$RoleManagerService$4FcQsmMH6Dhstzx5gl80tO2TkTw;
+Lcom/android/server/role/-$$Lambda$RoleManagerService$D-kb5EPaMwRx7H5Az2cV4ORPgIY;
 Lcom/android/server/role/-$$Lambda$RoleManagerService$DefaultBrowserProvider$X3gMGYlhUgmYMuqj0K5NlCALn5E;
 Lcom/android/server/role/-$$Lambda$RoleManagerService$DefaultBrowserProvider$cU2Hhx52nmVnJXJvHuAnRTzxST0;
 Lcom/android/server/role/-$$Lambda$RoleManagerService$DefaultHomeProvider$9eeqZaqhD2FohE8PZOcBaWBSZu4;
@@ -45229,6 +48974,7 @@
 Lcom/android/server/rollback/-$$Lambda$RollbackPackageHealthObserver$_CTueeoAyZZbpbCYMvJ3rbtIF94;
 Lcom/android/server/rollback/-$$Lambda$RollbackPackageHealthObserver$pi_OhdsKzJHdXoHHtYauaWDdX5A;
 Lcom/android/server/rollback/AppDataRollbackHelper;
+Lcom/android/server/rollback/LocalIntentReceiver$1;
 Lcom/android/server/rollback/LocalIntentReceiver;
 Lcom/android/server/rollback/Rollback;
 Lcom/android/server/rollback/RollbackManagerService;
@@ -45262,6 +49008,7 @@
 Lcom/android/server/security/VerityUtils;
 Lcom/android/server/signedconfig/GlobalSettingsConfigApplicator;
 Lcom/android/server/signedconfig/SignatureVerifier;
+Lcom/android/server/signedconfig/SignedConfig$PerSdkConfig;
 Lcom/android/server/signedconfig/SignedConfig;
 Lcom/android/server/signedconfig/SignedConfigEvent;
 Lcom/android/server/signedconfig/SignedConfigService$1;
@@ -45298,6 +49045,7 @@
 Lcom/android/server/slice/SliceShellCommand;
 Lcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$F-iA254xzDfAHrQW86c2oSqXfwI;
 Lcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$crQZgbDmIG6q92Mrkm49T2yqrs0;
+Lcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$pFqiq_C9KJsoa_HQOdj7lmMixsI;
 Lcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$t5mBYXswwLAAdm47WS10stLjYng;
 Lcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$wfDlqQ7aPvu9qZCZ24jJu4tfUMY;
 Lcom/android/server/soundtrigger/-$$Lambda$SoundTriggerService$RemoteSoundTriggerDetectionService$yqLMvkOmrO13yWrggtSaVrLgsWo;
@@ -45342,16 +49090,23 @@
 Lcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$NotSupported;
 Lcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat$SoundTriggerCallback;
 Lcom/android/server/soundtrigger_middleware/SoundTriggerHw2Compat;
+Lcom/android/server/soundtrigger_middleware/SoundTriggerHw2Enforcer;
+Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider$AudioSession;
 Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl$AudioSessionProvider;
 Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareImpl;
 Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$1;
 Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$Lifecycle;
+Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModelState$Activity;
+Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModelState;
 Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService$ModuleService;
 Lcom/android/server/soundtrigger_middleware/SoundTriggerMiddlewareService;
 Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$1;
+Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$ModelState;
+Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session$Model;
 Lcom/android/server/soundtrigger_middleware/SoundTriggerModule$Session;
 Lcom/android/server/soundtrigger_middleware/SoundTriggerModule;
 Lcom/android/server/soundtrigger_middleware/UuidUtil;
+Lcom/android/server/soundtrigger_middleware/ValidationUtil;
 Lcom/android/server/stats/-$$Lambda$StatsPullAtomService$EbRlEjVa52EZqvTktBrsVz_xiQc;
 Lcom/android/server/stats/-$$Lambda$StatsPullAtomService$J0XbDHzcNTw46LNg2i54ecFZHmo;
 Lcom/android/server/stats/-$$Lambda$StatsPullAtomService$LXlSF9hVw5xJWZeE9MueVeGuYlE;
@@ -45471,6 +49226,8 @@
 Lcom/android/server/statusbar/StatusBarManagerService$UiState;
 Lcom/android/server/statusbar/StatusBarManagerService;
 Lcom/android/server/statusbar/StatusBarShellCommand;
+Lcom/android/server/storage/-$$Lambda$StorageUserConnection$ActiveConnection$2ECT20JMDVk3s2c7JRifxIdFISs;
+Lcom/android/server/storage/-$$Lambda$StorageUserConnection$ActiveConnection$uMm3Ei4cCV446R_LJOCKr8R8AU8;
 Lcom/android/server/storage/AppCollector$BackgroundHandler;
 Lcom/android/server/storage/AppCollector;
 Lcom/android/server/storage/AppFuseBridge$MountScope;
@@ -45493,6 +49250,8 @@
 Lcom/android/server/storage/FileCollector;
 Lcom/android/server/storage/StorageSessionController$ExternalStorageServiceException;
 Lcom/android/server/storage/StorageSessionController;
+Lcom/android/server/storage/StorageUserConnection$ActiveConnection$1;
+Lcom/android/server/storage/StorageUserConnection$ActiveConnection;
 Lcom/android/server/storage/StorageUserConnection$Session;
 Lcom/android/server/storage/StorageUserConnection;
 Lcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService$RemoteServiceConnection;
@@ -45512,6 +49271,8 @@
 Lcom/android/server/testharness/TestHarnessModeService$SetUpTestHarnessModeException;
 Lcom/android/server/testharness/TestHarnessModeService$TestHarnessModeShellCommand;
 Lcom/android/server/testharness/TestHarnessModeService;
+Lcom/android/server/textclassifier/-$$Lambda$ClPEOpaEGm2gFpu1r4dox0RBPf4;
+Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$2sJrwO1jPjEX_2E7aDk6t5666lk;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$64mAXU9GjFt2f69p_xdhRl7xXFQ;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$C6b5fl8vcOQ42djzSJ_03hDc6yA;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$CB4TRod_LBt48w0zNWgHd_0r5tU;
@@ -45520,12 +49281,14 @@
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$LgTaKgUnkwyysO9lmBSO8HNViFU;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$Mu95ZECYMawAFTgaMzQ9kasDiKU;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$NrhR3cz8qMQshjDDQuBK6HtZpyc;
+Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$SessionCache$q4fGxygETn80gLCa2MrH-2YXaZA;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$XSRTA8JOHnkYT6Nx-j6ZQZBVb1k;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$YncBiGXrmV9iVRg9N6un11UZvEM;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$Zo3yKbNMpKbAhJ7coUzTv5c-zZI;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$bskC2PS7oOlLzDJkBbOVEdfy1Gg;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$dSVln_o2_pbF3ORGnBQ8z407M10;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$e1UWpNtFzY7M9iYeMHhCrNauxak;
+Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$eHPAXa73mXK1X6ykNeph3K0mXtg;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$evPEo-mmJh6oAuwYuZkLKKZd_Dw;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$f_vDZ7EFXK9b8SQpksrEkEWKPq8;
 Lcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$kUVQfCEBNt6jzkS89Io4xSHSuIs;
@@ -45538,7 +49301,10 @@
 Lcom/android/server/textclassifier/TextClassificationManagerService$1;
 Lcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;
 Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;
+Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState$TextClassifierServiceConnection;
+Lcom/android/server/textclassifier/TextClassificationManagerService$ServiceState;
 Lcom/android/server/textclassifier/TextClassificationManagerService$SessionCache;
+Lcom/android/server/textclassifier/TextClassificationManagerService$StrippedTextClassificationContext;
 Lcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;
 Lcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;
 Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;
@@ -45558,6 +49324,7 @@
 Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;
 Lcom/android/server/textservices/TextServicesManagerService$TextServicesMonitor;
 Lcom/android/server/textservices/TextServicesManagerService;
+Lcom/android/server/timedetector/-$$Lambda$TimeDetectorService$-psn4dtQQi-8j8LFHWcI7Y6I83U;
 Lcom/android/server/timedetector/-$$Lambda$TimeDetectorService$CIVCmMHYHAlLayNvm792RTW8F3U;
 Lcom/android/server/timedetector/-$$Lambda$TimeDetectorService$DcAkTJaWB9_yMqP5iTI6-JQdq4g;
 Lcom/android/server/timedetector/-$$Lambda$TimeDetectorService$nU2ruOeSUWWPVvB4A7i7qaumT4s;
@@ -45571,6 +49338,7 @@
 Lcom/android/server/timedetector/TimeDetectorStrategyImpl;
 Lcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$9xvncY35tAcP2eoRcnDHHViAoZw;
 Lcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$UdeBqzyBZX1S4jHLM7d2cKvE_-U;
+Lcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$fVU6C2loDoPZ5MLRbaxmXaLRy_s;
 Lcom/android/server/timezonedetector/ArrayMapWithHistory;
 Lcom/android/server/timezonedetector/ReferenceWithHistory;
 Lcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;
@@ -45581,6 +49349,7 @@
 Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy$QualifiedPhoneTimeZoneSuggestion;
 Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;
 Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$Callback;
+Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl$QualifiedTelephonyTimeZoneSuggestion;
 Lcom/android/server/timezonedetector/TimeZoneDetectorStrategyImpl;
 Lcom/android/server/trust/-$$Lambda$TrustManagerService$1$98HKBkg-C1PLlz_Q1vJz1OJtw4c;
 Lcom/android/server/trust/-$$Lambda$TrustManagerService$fEkVwjahpkATIGtXudiFOG8VXOo;
@@ -45616,6 +49385,14 @@
 Lcom/android/server/twilight/TwilightService$2;
 Lcom/android/server/twilight/TwilightService;
 Lcom/android/server/twilight/TwilightState;
+Lcom/android/server/updates/CertPinInstallReceiver;
+Lcom/android/server/updates/ConfigUpdateInstallReceiver$1;
+Lcom/android/server/updates/ConfigUpdateInstallReceiver;
+Lcom/android/server/updates/ConversationActionsInstallReceiver;
+Lcom/android/server/updates/EmergencyNumberDbInstallReceiver;
+Lcom/android/server/updates/LangIdInstallReceiver;
+Lcom/android/server/updates/SmartSelectionInstallReceiver;
+Lcom/android/server/updates/SmsShortCodesInstallReceiver;
 Lcom/android/server/uri/GrantUri;
 Lcom/android/server/uri/NeededUriGrants;
 Lcom/android/server/uri/UriGrantsManagerInternal;
@@ -45633,6 +49410,7 @@
 Lcom/android/server/usage/-$$Lambda$StorageStatsService$2sUmj2KWW5zDR1eh9U7bRfiEbbQ;
 Lcom/android/server/usage/-$$Lambda$StorageStatsService$bqtERyu3o5aAlc4KluAfnmSEFLI;
 Lcom/android/server/usage/-$$Lambda$StorageStatsService$iSsicGWO2pdH7m9nkPc_jeZZgzE;
+Lcom/android/server/usage/-$$Lambda$UsageStatsIdleService$RaU7JQt6BjPuOZETPRSrIe-Hdos;
 Lcom/android/server/usage/-$$Lambda$UserUsageStatsService$wWX7s9XZT5O4B7JcG_IB_VcPI9s;
 Lcom/android/server/usage/AppTimeLimitController$1;
 Lcom/android/server/usage/AppTimeLimitController$AppUsageGroup;
@@ -45744,10 +49522,18 @@
 Lcom/android/server/usb/descriptors/Usb10ACOutputTerminal;
 Lcom/android/server/usb/descriptors/Usb10ASFormatI;
 Lcom/android/server/usb/descriptors/Usb10ASGeneral;
+Lcom/android/server/usb/descriptors/Usb20ACHeader;
+Lcom/android/server/usb/descriptors/Usb20ACInputTerminal;
+Lcom/android/server/usb/descriptors/Usb20ACMixerUnit;
+Lcom/android/server/usb/descriptors/Usb20ACOutputTerminal;
+Lcom/android/server/usb/descriptors/Usb20ASFormatI;
+Lcom/android/server/usb/descriptors/Usb20ASGeneral;
 Lcom/android/server/usb/descriptors/UsbACAudioStreamEndpoint;
 Lcom/android/server/usb/descriptors/UsbACEndpoint;
+Lcom/android/server/usb/descriptors/UsbACFeatureUnit;
 Lcom/android/server/usb/descriptors/UsbACHeaderInterface;
 Lcom/android/server/usb/descriptors/UsbACInterface;
+Lcom/android/server/usb/descriptors/UsbACInterfaceUnparsed;
 Lcom/android/server/usb/descriptors/UsbACMixerUnit;
 Lcom/android/server/usb/descriptors/UsbACTerminal;
 Lcom/android/server/usb/descriptors/UsbASFormat;
@@ -45757,9 +49543,12 @@
 Lcom/android/server/usb/descriptors/UsbDeviceDescriptor;
 Lcom/android/server/usb/descriptors/UsbEndpointDescriptor;
 Lcom/android/server/usb/descriptors/UsbHIDDescriptor;
+Lcom/android/server/usb/descriptors/UsbInterfaceAssoc;
 Lcom/android/server/usb/descriptors/UsbInterfaceDescriptor;
+Lcom/android/server/usb/descriptors/UsbUnknown;
 Lcom/android/server/usb/descriptors/report/Reporting;
 Lcom/android/server/utils/-$$Lambda$TraceBuffer$moAOzKBOTAbEa_3b3V5vLbO3dRA;
+Lcom/android/server/utils/AppInstallerUtil;
 Lcom/android/server/utils/FlagNamespaceUtils;
 Lcom/android/server/utils/ManagedApplicationService$BinderChecker;
 Lcom/android/server/utils/ManagedApplicationService$EventCallback;
@@ -45917,6 +49706,10 @@
 Lcom/android/server/wm/-$$Lambda$9vBfnQOmNnsc9WU80IIatZHQGKc;
 Lcom/android/server/wm/-$$Lambda$ABB1r3i-Ua4IQKhbebsmnEGpWd8;
 Lcom/android/server/wm/-$$Lambda$ADNhW0r9Skcs9ezrOGURijI-lyQ;
+Lcom/android/server/wm/-$$Lambda$AccessibilityController$DisplayMagnifier$MagnifiedViewport$ZNyFGy-UXiWV1D2yZGvH-9qN0AA;
+Lcom/android/server/wm/-$$Lambda$AccessibilityController$WindowsForAccessibilityObserver$2C1tADzS58YZU_H5KqoEnZ2M57I;
+Lcom/android/server/wm/-$$Lambda$AccessibilityController$WindowsForAccessibilityObserver$gS9b6G5QkV-2hX2iGcgQl5HPWws;
+Lcom/android/server/wm/-$$Lambda$AccessibilityController$WindowsForAccessibilityObserver$n5Rg8WjCeBbjXNbZvPUlKzhx8Nw;
 Lcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$3JeUkmbe0mtunyS6P4HpkAkfKIY;
 Lcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$9gqV7SOtv0dBXWMri6Jpu47OdLc;
 Lcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$MEjrvbJugXgttKs3lnAk7x7tVPc;
@@ -45936,6 +49729,7 @@
 Lcom/android/server/wm/-$$Lambda$ActivityRecord$prAsqx_JQJTqW1jNxmkuU3AV8AU;
 Lcom/android/server/wm/-$$Lambda$ActivityRecord$tt99EJHW_Nk5qgU9galJBIm5wXg;
 Lcom/android/server/wm/-$$Lambda$ActivityRecord$viEGm2vZbJCQ4-hdkomJCNYJiHU;
+Lcom/android/server/wm/-$$Lambda$ActivityServiceConnectionsHolder$E9W1qwLXBAwoppLfYj6pecVF_x8;
 Lcom/android/server/wm/-$$Lambda$ActivityStack$0bNPw28X3N2biqQIdsnZuX7xaP4;
 Lcom/android/server/wm/-$$Lambda$ActivityStack$2g-Gmexz3kbCg6lRcnM6dKBTDYc;
 Lcom/android/server/wm/-$$Lambda$ActivityStack$4eA3orAXlhwXqOJQ8sydb6lzW_4;
@@ -46020,12 +49814,19 @@
 Lcom/android/server/wm/-$$Lambda$CvWmQaXToMTllLb80KQ9WdJHYXo;
 Lcom/android/server/wm/-$$Lambda$DLUVMr0q4HDD6VD11G3xgCuJfHo;
 Lcom/android/server/wm/-$$Lambda$DaFwIyqZTBVKE2y-TN2iE7CD-r8;
+Lcom/android/server/wm/-$$Lambda$DeprecatedTargetSdkVersionDialog$TaeLH3pyy18K9h_WuSYLeQFy9Io;
+Lcom/android/server/wm/-$$Lambda$DeprecatedTargetSdkVersionDialog$ZkWArfvd086vsF78_zwSd67uSUs;
 Lcom/android/server/wm/-$$Lambda$Dimmer$DimState$QYvwJex5H10MFMe0LEzEUs1b2G0;
+Lcom/android/server/wm/-$$Lambda$Dimmer$DimState$wU1YjYaM1_enRLsRLQ25SnC1ECw;
 Lcom/android/server/wm/-$$Lambda$DisplayArea$Tokens$m3rhEbIWQl888W_2uGBIkkXLdlA;
+Lcom/android/server/wm/-$$Lambda$DisplayAreaPolicyBuilder$PendingArea$3ZZ3VghJFXPK9kfKPSTf_9BJZCQ;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$-t02M5j-NY8t_HMWggKym0SrI5k;
+Lcom/android/server/wm/-$$Lambda$DisplayContent$0DHYqZExqV37Iiw4M0GSqxCijHE;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$0yxrqH9eGY2qTjH1u_BvaVrXCSA;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$2VlyMN8z2sOPqE9-yf-z3-peRMI;
+Lcom/android/server/wm/-$$Lambda$DisplayContent$4EwMMjZ5_EoQtEZ4VPJm9XUauJY;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$7Z9gsguOLtfXssJUALjgEsOLZoE;
+Lcom/android/server/wm/-$$Lambda$DisplayContent$7alf4NuxocTwmtWRy0_MvBepKoE;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$7uZtakUXzuXqF_Qht5Uq7LUvubI;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$7voe_dEKk2BYMriCvPuvaznb9WQ;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$BvG_N-oQ9idqqb6Bo2x0dq7gI5g;
@@ -46042,6 +49843,7 @@
 Lcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$FI_O7m2qEDfIRZef3D32AxG-rcs;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$m2B7QqNQSZc7N5DejF0qGwn6Pck;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$nqCymC3xR9b3qaeohnnJJpSiajc;
+Lcom/android/server/wm/-$$Lambda$DisplayContent$O9XflhhULqGeDab0OHXXGq_DSlU;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$SeHNTr4WUVpGmQniHULUi1ST7k8;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$TPj3OjTsuIg5GTLb5nMmFqIghA4;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$TaskContainers$O93kVOZBPruBUoIqFi--Pvv3DF0;
@@ -46053,10 +49855,14 @@
 Lcom/android/server/wm/-$$Lambda$DisplayContent$_XfE1uZ9VUv6i0SxWUvqu69FNb4;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$a4EkCBfpZNIl1xfYgm2ktgndF8w;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$cDcvMzGxc6XW13Q8FrU5X4DagqE;
+Lcom/android/server/wm/-$$Lambda$DisplayContent$dcSGCWAJtdQoc69foFpUzYoTn2I;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$eJsj3GR1HdCnOJrZ8_oaLP52jg0;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$fiC19lMy-d_-rvza7hhOSw6bOM8;
+Lcom/android/server/wm/-$$Lambda$DisplayContent$gpAoT7pBNdi6jYEHs_L3kzaRF0g;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$hRKjZwmneu0T85LNNY6_Zcs4gKM;
+Lcom/android/server/wm/-$$Lambda$DisplayContent$mRojqgB8byVtZRzyTl2qSRFPgIo;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$n90JauAfTfQVesyRzx0-TX7s1LM;
+Lcom/android/server/wm/-$$Lambda$DisplayContent$nUI_QDRGnWH0dX0j3xt2TTkrvZw;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$olEtDzkJbp6PCECUFtRISV0LCpk;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$qT01Aq6xt_ZOs86A1yDQe-qmPFQ;
 Lcom/android/server/wm/-$$Lambda$DisplayContent$qxt4izS31fb0LF2uo_OF9DMa7gc;
@@ -46097,6 +49903,7 @@
 Lcom/android/server/wm/-$$Lambda$DisplayRotation$q2wjcSMbrixEIlIR6-WoSLJ1j-g;
 Lcom/android/server/wm/-$$Lambda$DockedStackDividerController$5bA1vUPZ2WAWRKwBSEsFIfWUu9o;
 Lcom/android/server/wm/-$$Lambda$DragState$-yUFIMrhYYccZ0gwd6eVcpAE93o;
+Lcom/android/server/wm/-$$Lambda$DragState$4E4tzlfJ9AKYEiVk7F8SFlBLwPc;
 Lcom/android/server/wm/-$$Lambda$ERD-2J5ieyabZSu134oI85tDnME;
 Lcom/android/server/wm/-$$Lambda$EmbeddedWindowController$Q0HHIdTKm8MX4DsCYgzZ2UOUXPQ;
 Lcom/android/server/wm/-$$Lambda$EnsureActivitiesVisibleHelper$Bbb3nMFa3F8er_OBuKA7-SpeSKo;
@@ -46133,6 +49940,7 @@
 Lcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$veRn_GhgLZLlOHOJ0ZYT6KcfYqo;
 Lcom/android/server/wm/-$$Lambda$LaunchParamsPersister$Rc1cXPLhXa2WPSr18Q9-Xc7SdV8;
 Lcom/android/server/wm/-$$Lambda$LocalAnimationAdapter$X--EomqUvw4qy89IeeTFTH7aCMo;
+Lcom/android/server/wm/-$$Lambda$LocalAnimationAdapter$zbLki1x5Fhwh-g7q-dA43aw6Y4M;
 Lcom/android/server/wm/-$$Lambda$LockTaskController$NMEqFdnoSJ8A7QRxQO-ZoqXOmVc;
 Lcom/android/server/wm/-$$Lambda$LockTaskController$mYEdosOvuhEWdcYLQrOC83U4Wms;
 Lcom/android/server/wm/-$$Lambda$LockTaskController$nuVptnoYwaF1CYydSggC_oxSSSc;
@@ -46191,6 +49999,7 @@
 Lcom/android/server/wm/-$$Lambda$RootWindowContainer$y9wG_endhUBCwGznyjN4RSIYTyg;
 Lcom/android/server/wm/-$$Lambda$RunningTasks$MPCBAZpSXKx53M7vrqtvLfftJOc;
 Lcom/android/server/wm/-$$Lambda$RunningTasks$hR_Ryk91b0B2BdJN9eCfQfPwC3g;
+Lcom/android/server/wm/-$$Lambda$ScreenRotationAnimation$SurfaceRotationAnimationController$mryOPi3UUpYZkQThzDJyjGBpl5c;
 Lcom/android/server/wm/-$$Lambda$Session$15hO_YO9_yR6FTMdPPe87fZzL1c;
 Lcom/android/server/wm/-$$Lambda$Session$3q7E1KtcKfO8_a7pOH0nnVURP8w;
 Lcom/android/server/wm/-$$Lambda$Session$6cG7louvKZjAfcc7DtiA7aAzr7U;
@@ -46216,20 +50025,25 @@
 Lcom/android/server/wm/-$$Lambda$Task$AFigK9DV4TJX-I6KGr1B5GhkxBQ;
 Lcom/android/server/wm/-$$Lambda$Task$BP51Xfr33NBfsJ4rKO04RomX2Tg;
 Lcom/android/server/wm/-$$Lambda$Task$CKQ9RLMNPYajktwO1VrUoQGHF_8;
+Lcom/android/server/wm/-$$Lambda$Task$Cht49HFU7XWpGlhw2YJ9bd8TX-Q;
 Lcom/android/server/wm/-$$Lambda$Task$FindRootHelper$sIea0VfMPIGsR0Xwg7rABysHwZ4;
 Lcom/android/server/wm/-$$Lambda$Task$HQ9aJbE-z0XuxiYHPMxxaMHkKFY;
+Lcom/android/server/wm/-$$Lambda$Task$MOqNuoCL9YLiX2dQsNRKxRa9HMk;
 Lcom/android/server/wm/-$$Lambda$Task$N2dM5PIhuaw--o5HD3NnXAFoPzg;
 Lcom/android/server/wm/-$$Lambda$Task$N6swnhdrHvxOfp81yUqye9AbX7A;
 Lcom/android/server/wm/-$$Lambda$Task$OQmaRDKXdgA0v6VfNwTX7wOkwBs;
+Lcom/android/server/wm/-$$Lambda$Task$RbZcOw6lwdHzgJZl6wML-Q7wl3w;
 Lcom/android/server/wm/-$$Lambda$Task$SAhnD6goWlY1lXYn6fWba8f2JLs;
 Lcom/android/server/wm/-$$Lambda$Task$SRt5iDqxFMzfuMULgjnmoyWp73o;
 Lcom/android/server/wm/-$$Lambda$Task$TUGPkEKamN60PF6hJQxUwDBjU-M;
+Lcom/android/server/wm/-$$Lambda$Task$TZa8EpS1fM9BHkBe2HWJbm9X1-8;
 Lcom/android/server/wm/-$$Lambda$Task$V2nwgQi-xYvgAjezrWRsKUB2nLI;
 Lcom/android/server/wm/-$$Lambda$Task$WFXOGUsP9k2SctNXpn2eb_XUKP0;
 Lcom/android/server/wm/-$$Lambda$Task$XRtJRRfvaa_neQ0BbpDvRIqXzf4;
 Lcom/android/server/wm/-$$Lambda$Task$a4C-owFvQJqPsf8C48fgcmCjd6M;
 Lcom/android/server/wm/-$$Lambda$Task$eHH2M2yJE6epk3eXzGcOuu6WMt8;
 Lcom/android/server/wm/-$$Lambda$Task$hJlIVNsWJQJ_mIrVCbuZDn-cUwE;
+Lcom/android/server/wm/-$$Lambda$Task$jYM3OAa6LxTqP_4XSZWfdd7SzV8;
 Lcom/android/server/wm/-$$Lambda$Task$lN_nRoGkP81jAXXQImoACo3ADSk;
 Lcom/android/server/wm/-$$Lambda$Task$lqGdYR9ABiPuG3_68w1VS6hrr8c;
 Lcom/android/server/wm/-$$Lambda$Task$s9wiZSThkGOKye0Zl5MRKv-8Iq0;
@@ -46252,6 +50066,7 @@
 Lcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$ZLPZtiEvD_F4WUgH7BD4KPpdAWM;
 Lcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$byMDuIFUN4cQ1lT9jVjMwLhaLDw;
 Lcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$cFUeUwnRjuOQKcg2c4PnDS0ImTw;
+Lcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$fHOaxOU9vkp_xgwOlM5lZFj3Fi0;
 Lcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$k0FXXC-HcWJhmtm6-Kruo6nGeXI;
 Lcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$kss8MGli3T9b_Y-QDzR2cB843y8;
 Lcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$ncM_yje7-m7HuiJvorBIH_C8Ou4;
@@ -46287,6 +50102,7 @@
 Lcom/android/server/wm/-$$Lambda$WindowContainer$4sX6UUtugZXD_J917yuWIm58Q9M;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$7u99Gj9w15XaOTtX23LKq-yXn5o;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$7x9zhFx3vhSZ5lMUA8efWaz-6co;
+Lcom/android/server/wm/-$$Lambda$WindowContainer$Nezf9LuhT9GSLKWzqEWp7WKs5W8;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$TQFCJtak2E5nTjAEG9Q24yp-Oi8;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$VgO_jyvTwx2IcoTcwvoIKxat95M;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$WskrGbNwLeexLlAXUNUyGLhHEWA;
@@ -46296,6 +50112,7 @@
 Lcom/android/server/wm/-$$Lambda$WindowContainer$k_PpuHAHKhi1gqk1dQsXNnYX7Ok;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$lJjjxJS1wJFikrxN0jFMgNna43g;
 Lcom/android/server/wm/-$$Lambda$WindowContainer$sh5zVifGKSmT1fuGQxK_5_eAZ20;
+Lcom/android/server/wm/-$$Lambda$WindowContainerThumbnail$TAAowaUKTiUY1j0FFlQQfUHXn0U;
 Lcom/android/server/wm/-$$Lambda$WindowManagerConstants$H0Vnr9H2xLD72_22unzb68d1fSM;
 Lcom/android/server/wm/-$$Lambda$WindowManagerConstants$YOsWod8qOtbBnduZqPrYHSwyJ5E;
 Lcom/android/server/wm/-$$Lambda$WindowManagerConstants$vqhvZbTPHnj84vQKH9wjAhgVP44;
@@ -46339,6 +50156,7 @@
 Lcom/android/server/wm/-$$Lambda$oZvG727evJMxIwK1im7QJjcltfo;
 Lcom/android/server/wm/-$$Lambda$pAuPvwUqsKCejIrAPrx0ARZSqeY;
 Lcom/android/server/wm/-$$Lambda$qMFJUmfG50ZSjk7Tac67xBia0d4;
+Lcom/android/server/wm/-$$Lambda$saxKzkaCgueXiijz1VFL4g-SiV0;
 Lcom/android/server/wm/-$$Lambda$swA_sUfSJdP8eC8AA9Iby3-SuOY;
 Lcom/android/server/wm/-$$Lambda$uwO6wQlqU3CG7OTdH7NBCKnHs64;
 Lcom/android/server/wm/-$$Lambda$vhwCX-wzYksBgFM46tASKUCeQRc;
@@ -46350,6 +50168,11 @@
 Lcom/android/server/wm/-$$Lambda$zP5AObb0-v-Zzwr-v8NXOg4Yt1c;
 Lcom/android/server/wm/-$$Lambda$zuO3rEvETpKsuJLTTdIHB2ijeho;
 Lcom/android/server/wm/-$$Lambda$zwLNi4Hz7werGBGptK8eYRpBWpw;
+Lcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow$AnimationController;
+Lcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport$ViewportWindow;
+Lcom/android/server/wm/AccessibilityController$DisplayMagnifier$MagnifiedViewport;
+Lcom/android/server/wm/AccessibilityController$DisplayMagnifier$MyHandler;
+Lcom/android/server/wm/AccessibilityController$DisplayMagnifier;
 Lcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver$MyHandler;
 Lcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;
 Lcom/android/server/wm/AccessibilityController;
@@ -46452,8 +50275,12 @@
 Lcom/android/server/wm/DisplayAreaPolicy$1;
 Lcom/android/server/wm/DisplayAreaPolicy$Default$Provider;
 Lcom/android/server/wm/DisplayAreaPolicy$Default;
+Lcom/android/server/wm/DisplayAreaPolicy$DefaultProvider;
 Lcom/android/server/wm/DisplayAreaPolicy$Provider;
 Lcom/android/server/wm/DisplayAreaPolicy;
+Lcom/android/server/wm/DisplayAreaPolicyBuilder$PendingArea;
+Lcom/android/server/wm/DisplayAreaPolicyBuilder$Result;
+Lcom/android/server/wm/DisplayAreaPolicyBuilder;
 Lcom/android/server/wm/DisplayContent$1;
 Lcom/android/server/wm/DisplayContent$AboveAppWindowContainers;
 Lcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;
@@ -46494,6 +50321,7 @@
 Lcom/android/server/wm/DragDropController;
 Lcom/android/server/wm/DragInputEventReceiver;
 Lcom/android/server/wm/DragResizeMode;
+Lcom/android/server/wm/DragState$AnimationListener;
 Lcom/android/server/wm/DragState$InputInterceptor;
 Lcom/android/server/wm/DragState;
 Lcom/android/server/wm/EmbeddedWindowController$EmbeddedWindow;
@@ -46507,6 +50335,12 @@
 Lcom/android/server/wm/HighRefreshRateBlacklist;
 Lcom/android/server/wm/ImeInsetsSourceProvider;
 Lcom/android/server/wm/ImmersiveModeConfirmation$1;
+Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$1;
+Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$2;
+Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$3;
+Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$4;
+Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$5$1;
+Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView$5;
 Lcom/android/server/wm/ImmersiveModeConfirmation$ClingWindowView;
 Lcom/android/server/wm/ImmersiveModeConfirmation$H;
 Lcom/android/server/wm/ImmersiveModeConfirmation;
@@ -46528,6 +50362,7 @@
 Lcom/android/server/wm/InsetsSourceProvider$1;
 Lcom/android/server/wm/InsetsSourceProvider$ControlAdapter;
 Lcom/android/server/wm/InsetsSourceProvider;
+Lcom/android/server/wm/InsetsStateController$1;
 Lcom/android/server/wm/InsetsStateController;
 Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;
 Lcom/android/server/wm/KeyguardController;
@@ -46597,6 +50432,7 @@
 Lcom/android/server/wm/RootWindowContainer;
 Lcom/android/server/wm/RunningTasks;
 Lcom/android/server/wm/SafeActivityOptions;
+Lcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController$1;
 Lcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;
 Lcom/android/server/wm/ScreenRotationAnimation;
 Lcom/android/server/wm/SeamlessRotator;
@@ -46619,6 +50455,8 @@
 Lcom/android/server/wm/SurfaceAnimator$Animatable;
 Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
 Lcom/android/server/wm/SurfaceAnimator;
+Lcom/android/server/wm/SurfaceFreezer$Freezable;
+Lcom/android/server/wm/SurfaceFreezer;
 Lcom/android/server/wm/SystemGesturesPointerEventListener$1;
 Lcom/android/server/wm/SystemGesturesPointerEventListener$Callbacks;
 Lcom/android/server/wm/SystemGesturesPointerEventListener$FlingGestureDetector;
@@ -46642,6 +50480,7 @@
 Lcom/android/server/wm/TaskPersister;
 Lcom/android/server/wm/TaskPositioner;
 Lcom/android/server/wm/TaskPositioningController;
+Lcom/android/server/wm/TaskScreenshotAnimatable;
 Lcom/android/server/wm/TaskSnapshotCache$CacheEntry;
 Lcom/android/server/wm/TaskSnapshotCache;
 Lcom/android/server/wm/TaskSnapshotController;
@@ -46744,6 +50583,7 @@
 Lcom/android/server/wm/utils/DisplayRotationUtil;
 Lcom/android/server/wm/utils/InsetUtils;
 Lcom/android/server/wm/utils/RegionUtils;
+Lcom/android/server/wm/utils/RotationAnimationUtils;
 Lcom/android/server/wm/utils/RotationCache$RotationDependentComputation;
 Lcom/android/server/wm/utils/RotationCache;
 Lcom/android/server/wm/utils/WmDisplayCutout;
diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java
index e49c1ed..c6a54fc 100644
--- a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java
+++ b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java
@@ -50,6 +50,7 @@
 import android.os.RemoteException;
 import android.os.ResultReceiver;
 import android.os.ShellCallback;
+import android.os.SystemClock;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.DeviceConfig;
@@ -63,6 +64,7 @@
 import android.util.Slog;
 import android.util.SparseArray;
 import android.util.SparseBooleanArray;
+import android.util.TimeUtils;
 import android.view.autofill.AutofillId;
 import android.view.autofill.AutofillManager;
 import android.view.autofill.AutofillManager.SmartSuggestionMode;
@@ -151,6 +153,7 @@
     private final LocalLog mWtfHistory = new LocalLog(50);
 
     private final AutofillCompatState mAutofillCompatState = new AutofillCompatState();
+    private final DisabledInfoCache mDisabledInfoCache = new DisabledInfoCache();
 
     private final LocalService mLocalService = new LocalService();
     private final ActivityManagerInternal mAm;
@@ -302,14 +305,15 @@
     @Override // from AbstractMasterSystemService
     protected AutofillManagerServiceImpl newServiceLocked(@UserIdInt int resolvedUserId,
             boolean disabled) {
-        return new AutofillManagerServiceImpl(this, mLock, mUiLatencyHistory,
-                mWtfHistory, resolvedUserId, mUi, mAutofillCompatState, disabled);
+        return new AutofillManagerServiceImpl(this, mLock, mUiLatencyHistory, mWtfHistory,
+                resolvedUserId, mUi, mAutofillCompatState, disabled, mDisabledInfoCache);
     }
 
     @Override // AbstractMasterSystemService
     protected void onServiceRemoved(@NonNull AutofillManagerServiceImpl service,
             @UserIdInt int userId) {
         service.destroyLocked();
+        mDisabledInfoCache.remove(userId);
         mAutofillCompatState.removeCompatibilityModeRequests(userId);
     }
 
@@ -835,15 +839,10 @@
 
         private void injectDisableAppInfo(@NonNull AutofillOptions options, int userId,
                 String packageName) {
-            synchronized (mLock) {
-                final AutofillManagerServiceImpl service = peekServiceForUserLocked(userId);
-                if (service != null) {
-                    options.appDisabledExpiration = service.getAppDisabledExpirationLocked(
-                            packageName);
-                    options.disabledActivities = service.getAppDisabledActivitiesLocked(
-                            packageName);
-                }
-            }
+            options.appDisabledExpiration =
+                    mDisabledInfoCache.getAppDisabledExpiration(userId, packageName);
+            options.disabledActivities =
+                    mDisabledInfoCache.getAppDisabledActivities(userId, packageName);
         }
     }
 
@@ -867,6 +866,234 @@
     }
 
     /**
+     * Stores autofill disable information, i.e. {@link AutofillDisabledInfo},  keyed by user id.
+     * The information is cleaned up when the service is removed.
+     */
+    static final class DisabledInfoCache {
+
+        private final Object mLock = new Object();
+
+        @GuardedBy("mLock")
+        private final SparseArray<AutofillDisabledInfo> mCache = new SparseArray<>();
+
+        void remove(@UserIdInt int userId) {
+            synchronized (mLock) {
+                mCache.remove(userId);
+            }
+        }
+
+        void addDisabledAppLocked(@UserIdInt int userId, @NonNull String packageName,
+                long expiration) {
+            Preconditions.checkNotNull(packageName);
+            synchronized (mLock) {
+                AutofillDisabledInfo info =
+                        getOrCreateAutofillDisabledInfoByUserIdLocked(userId);
+                info.putDisableAppsLocked(packageName, expiration);
+            }
+        }
+
+        void addDisabledActivityLocked(@UserIdInt int userId, @NonNull ComponentName componentName,
+                long expiration) {
+            Preconditions.checkNotNull(componentName);
+            synchronized (mLock) {
+                AutofillDisabledInfo info =
+                        getOrCreateAutofillDisabledInfoByUserIdLocked(userId);
+                info.putDisableActivityLocked(componentName, expiration);
+            }
+        }
+
+        boolean isAutofillDisabledLocked(@UserIdInt int userId,
+                @NonNull ComponentName componentName) {
+            Preconditions.checkNotNull(componentName);
+            final boolean disabled;
+            synchronized (mLock) {
+                final AutofillDisabledInfo info = mCache.get(userId);
+                disabled = info != null ? info.isAutofillDisabledLocked(componentName) : false;
+            }
+            return disabled;
+        }
+
+        long getAppDisabledExpiration(@UserIdInt int userId, @NonNull String packageName) {
+            Preconditions.checkNotNull(packageName);
+            final Long expiration;
+            synchronized (mLock) {
+                final AutofillDisabledInfo info = mCache.get(userId);
+                expiration = info != null ? info.getAppDisabledExpirationLocked(packageName) : 0;
+            }
+            return expiration;
+        }
+
+        @Nullable
+        ArrayMap<String, Long> getAppDisabledActivities(@UserIdInt int userId,
+                @NonNull String packageName) {
+            Preconditions.checkNotNull(packageName);
+            final ArrayMap<String, Long> disabledList;
+            synchronized (mLock) {
+                final AutofillDisabledInfo info = mCache.get(userId);
+                disabledList =
+                        info != null ? info.getAppDisabledActivitiesLocked(packageName) : null;
+            }
+            return disabledList;
+        }
+
+        void dump(@UserIdInt int userId, String prefix, PrintWriter pw) {
+            synchronized (mLock) {
+                final AutofillDisabledInfo info = mCache.get(userId);
+                if (info != null) {
+                    info.dumpLocked(prefix, pw);
+                }
+            }
+        }
+
+        @NonNull
+        private AutofillDisabledInfo getOrCreateAutofillDisabledInfoByUserIdLocked(
+                @UserIdInt int userId) {
+            AutofillDisabledInfo info = mCache.get(userId);
+            if (info == null) {
+                info = new AutofillDisabledInfo();
+                mCache.put(userId, info);
+            }
+            return info;
+        }
+    }
+
+    /**
+     * The autofill disable information.
+     * <p>
+     * This contains disable information set by the AutofillService, e.g. disabled application
+     * expiration, disable activity expiration.
+     */
+    private static final class AutofillDisabledInfo {
+        /**
+         * Apps disabled by the service; key is package name, value is when they will be enabled
+         * again.
+         */
+        private ArrayMap<String, Long> mDisabledApps;
+        /**
+         * Activities disabled by the service; key is component name, value is when they will be
+         * enabled again.
+         */
+        private ArrayMap<ComponentName, Long> mDisabledActivities;
+
+        void putDisableAppsLocked(@NonNull String packageName, long expiration) {
+            if (mDisabledApps == null) {
+                mDisabledApps = new ArrayMap<>(1);
+            }
+            mDisabledApps.put(packageName, expiration);
+        }
+
+        void putDisableActivityLocked(@NonNull ComponentName componentName, long expiration) {
+            if (mDisabledActivities == null) {
+                mDisabledActivities = new ArrayMap<>(1);
+            }
+            mDisabledActivities.put(componentName, expiration);
+        }
+
+        long getAppDisabledExpirationLocked(@NonNull String packageName) {
+            if (mDisabledApps == null) {
+                return 0;
+            }
+            final Long expiration = mDisabledApps.get(packageName);
+            return expiration != null ? expiration : 0;
+        }
+
+        ArrayMap<String, Long> getAppDisabledActivitiesLocked(@NonNull String packageName) {
+            if (mDisabledActivities != null) {
+                final int size = mDisabledActivities.size();
+                ArrayMap<String, Long> disabledList = null;
+                for (int i = 0; i < size; i++) {
+                    final ComponentName component = mDisabledActivities.keyAt(i);
+                    if (packageName.equals(component.getPackageName())) {
+                        if (disabledList == null) {
+                            disabledList = new ArrayMap<>();
+                        }
+                        final long expiration = mDisabledActivities.valueAt(i);
+                        disabledList.put(component.flattenToShortString(), expiration);
+                    }
+                }
+                return disabledList;
+            }
+            return null;
+        }
+
+        boolean isAutofillDisabledLocked(@NonNull ComponentName componentName) {
+            // Check activities first.
+            long elapsedTime = 0;
+            if (mDisabledActivities != null) {
+                elapsedTime = SystemClock.elapsedRealtime();
+                final Long expiration = mDisabledActivities.get(componentName);
+                if (expiration != null) {
+                    if (expiration >= elapsedTime) return true;
+                    // Restriction expired - clean it up.
+                    if (sVerbose) {
+                        Slog.v(TAG, "Removing " + componentName.toShortString()
+                                + " from disabled list");
+                    }
+                    mDisabledActivities.remove(componentName);
+                }
+            }
+
+            // Then check apps.
+            final String packageName = componentName.getPackageName();
+            if (mDisabledApps == null) return false;
+
+            final Long expiration = mDisabledApps.get(packageName);
+            if (expiration == null) return false;
+
+            if (elapsedTime == 0) {
+                elapsedTime = SystemClock.elapsedRealtime();
+            }
+
+            if (expiration >= elapsedTime) return true;
+
+            // Restriction expired - clean it up.
+            if (sVerbose)  Slog.v(TAG, "Removing " + packageName + " from disabled list");
+            mDisabledApps.remove(packageName);
+            return false;
+        }
+
+        void dumpLocked(String prefix, PrintWriter pw) {
+            pw.print(prefix); pw.print("Disabled apps: ");
+            if (mDisabledApps == null) {
+                pw.println("N/A");
+            } else {
+                final int size = mDisabledApps.size();
+                pw.println(size);
+                final StringBuilder builder = new StringBuilder();
+                final long now = SystemClock.elapsedRealtime();
+                for (int i = 0; i < size; i++) {
+                    final String packageName = mDisabledApps.keyAt(i);
+                    final long expiration = mDisabledApps.valueAt(i);
+                    builder.append(prefix).append(prefix)
+                            .append(i).append(". ").append(packageName).append(": ");
+                    TimeUtils.formatDuration((expiration - now), builder);
+                    builder.append('\n');
+                }
+                pw.println(builder);
+            }
+
+            pw.print(prefix); pw.print("Disabled activities: ");
+            if (mDisabledActivities == null) {
+                pw.println("N/A");
+            } else {
+                final int size = mDisabledActivities.size();
+                pw.println(size);
+                final StringBuilder builder = new StringBuilder();
+                final long now = SystemClock.elapsedRealtime();
+                for (int i = 0; i < size; i++) {
+                    final ComponentName component = mDisabledActivities.keyAt(i);
+                    final long expiration = mDisabledActivities.valueAt(i);
+                    builder.append(prefix).append(prefix)
+                            .append(i).append(". ").append(component).append(": ");
+                    TimeUtils.formatDuration((expiration - now), builder);
+                    builder.append('\n');
+                }
+                pw.println(builder);
+            }
+        }
+    }
+
+    /**
      * Compatibility mode metadata associated with all services.
      *
      * <p>This object is defined here instead of on each {@link AutofillManagerServiceImpl} because
diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
index 6fbe141..d1805d9 100644
--- a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
+++ b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
@@ -67,7 +67,6 @@
 import android.util.Pair;
 import android.util.Slog;
 import android.util.SparseArray;
-import android.util.TimeUtils;
 import android.view.autofill.AutofillId;
 import android.view.autofill.AutofillManager;
 import android.view.autofill.AutofillManager.SmartSuggestionMode;
@@ -80,6 +79,7 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.server.LocalServices;
 import com.android.server.autofill.AutofillManagerService.AutofillCompatState;
+import com.android.server.autofill.AutofillManagerService.DisabledInfoCache;
 import com.android.server.autofill.RemoteAugmentedAutofillService.RemoteAugmentedAutofillServiceCallbacks;
 import com.android.server.autofill.ui.AutoFillUI;
 import com.android.server.contentcapture.ContentCaptureManagerInternal;
@@ -90,7 +90,6 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
-
 /**
  * Bridge between the {@code system_server}'s {@link AutofillManagerService} and the
  * app's {@link IAutoFillService} implementation.
@@ -125,19 +124,6 @@
     private RemoteInlineSuggestionRenderService mRemoteInlineSuggestionRenderService;
 
     /**
-     * Apps disabled by the service; key is package name, value is when they will be enabled again.
-     */
-    @GuardedBy("mLock")
-    private ArrayMap<String, Long> mDisabledApps;
-
-    /**
-     * Activities disabled by the service; key is component name, value is when they will be enabled
-     * again.
-     */
-    @GuardedBy("mLock")
-    private ArrayMap<ComponentName, Long> mDisabledActivities;
-
-    /**
      * Data used for field classification.
      */
     @GuardedBy("mLock")
@@ -186,10 +172,12 @@
 
     private final ContentCaptureManagerInternal mContentCaptureManagerInternal;
 
+    private final DisabledInfoCache mDisabledInfoCache;
+
     AutofillManagerServiceImpl(AutofillManagerService master, Object lock,
             LocalLog uiLatencyHistory, LocalLog wtfHistory, int userId, AutoFillUI ui,
             AutofillCompatState autofillCompatState,
-            boolean disabled) {
+            boolean disabled, DisabledInfoCache disableCache) {
         super(master, lock, userId);
 
         mUiLatencyHistory = uiLatencyHistory;
@@ -200,7 +188,7 @@
         mInputMethodManagerInternal = LocalServices.getService(InputMethodManagerInternal.class);
         mContentCaptureManagerInternal = LocalServices.getService(
                 ContentCaptureManagerInternal.class);
-
+        mDisabledInfoCache = disableCache;
         updateLocked(disabled);
     }
 
@@ -1045,45 +1033,7 @@
         pw.println(isInlineSuggestionsEnabled());
         pw.print(prefix); pw.print("Last prune: "); pw.println(mLastPrune);
 
-        pw.print(prefix); pw.print("Disabled apps: ");
-
-        if (mDisabledApps == null) {
-            pw.println("N/A");
-        } else {
-            final int size = mDisabledApps.size();
-            pw.println(size);
-            final StringBuilder builder = new StringBuilder();
-            final long now = SystemClock.elapsedRealtime();
-            for (int i = 0; i < size; i++) {
-                final String packageName = mDisabledApps.keyAt(i);
-                final long expiration = mDisabledApps.valueAt(i);
-                builder.append(prefix).append(prefix)
-                        .append(i).append(". ").append(packageName).append(": ");
-                TimeUtils.formatDuration((expiration - now), builder);
-                builder.append('\n');
-            }
-            pw.println(builder);
-        }
-
-        pw.print(prefix); pw.print("Disabled activities: ");
-
-        if (mDisabledActivities == null) {
-            pw.println("N/A");
-        } else {
-            final int size = mDisabledActivities.size();
-            pw.println(size);
-            final StringBuilder builder = new StringBuilder();
-            final long now = SystemClock.elapsedRealtime();
-            for (int i = 0; i < size; i++) {
-                final ComponentName component = mDisabledActivities.keyAt(i);
-                final long expiration = mDisabledActivities.valueAt(i);
-                builder.append(prefix).append(prefix)
-                        .append(i).append(". ").append(component).append(": ");
-                TimeUtils.formatDuration((expiration - now), builder);
-                builder.append('\n');
-            }
-            pw.println(builder);
-        }
+        mDisabledInfoCache.dump(mUserId, prefix, pw);
 
         final int size = mSessions.size();
         if (size == 0) {
@@ -1480,15 +1430,13 @@
     void disableAutofillForApp(@NonNull String packageName, long duration, int sessionId,
             boolean compatMode) {
         synchronized (mLock) {
-            if (mDisabledApps == null) {
-                mDisabledApps = new ArrayMap<>(1);
-            }
             long expiration = SystemClock.elapsedRealtime() + duration;
             // Protect it against overflow
             if (expiration < 0) {
                 expiration = Long.MAX_VALUE;
             }
-            mDisabledApps.put(packageName, expiration);
+            mDisabledInfoCache.addDisabledAppLocked(mUserId, packageName, expiration);
+
             int intDuration = duration > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) duration;
             mMetricsLogger.write(Helper.newLogMaker(MetricsEvent.AUTOFILL_SERVICE_DISABLED_APP,
                     packageName, getServicePackageName(), sessionId, compatMode)
@@ -1502,15 +1450,12 @@
     void disableAutofillForActivity(@NonNull ComponentName componentName, long duration,
             int sessionId, boolean compatMode) {
         synchronized (mLock) {
-            if (mDisabledActivities == null) {
-                mDisabledActivities = new ArrayMap<>(1);
-            }
             long expiration = SystemClock.elapsedRealtime() + duration;
             // Protect it against overflow
             if (expiration < 0) {
                 expiration = Long.MAX_VALUE;
             }
-            mDisabledActivities.put(componentName, expiration);
+            mDisabledInfoCache.addDisabledActivityLocked(mUserId, componentName, expiration);
             final int intDuration = duration > Integer.MAX_VALUE
                     ? Integer.MAX_VALUE
                     : (int) duration;
@@ -1528,74 +1473,12 @@
         }
     }
 
-    // Called by AutofillManagerService
-    long getAppDisabledExpirationLocked(@NonNull String packageName) {
-        if (mDisabledApps == null) {
-            return 0;
-        }
-        final Long expiration = mDisabledApps.get(packageName);
-        return expiration != null ? expiration : 0;
-    }
-
-    // Called by AutofillManagerService
-    @Nullable
-    ArrayMap<String, Long> getAppDisabledActivitiesLocked(@NonNull String packageName) {
-        if (mDisabledActivities != null) {
-            final int size = mDisabledActivities.size();
-            ArrayMap<String, Long> disabledList = null;
-            for (int i = 0; i < size; i++) {
-                final ComponentName component = mDisabledActivities.keyAt(i);
-                if (packageName.equals(component.getPackageName())) {
-                    if (disabledList == null) {
-                        disabledList = new ArrayMap<>();
-                    }
-                    final long expiration = mDisabledActivities.valueAt(i);
-                    disabledList.put(component.flattenToShortString(), expiration);
-                }
-            }
-            return disabledList;
-        }
-        return null;
-    }
-
     /**
      * Checks if autofill is disabled by service to the given activity.
      */
     @GuardedBy("mLock")
     private boolean isAutofillDisabledLocked(@NonNull ComponentName componentName) {
-        // Check activities first.
-        long elapsedTime = 0;
-        if (mDisabledActivities != null) {
-            elapsedTime = SystemClock.elapsedRealtime();
-            final Long expiration = mDisabledActivities.get(componentName);
-            if (expiration != null) {
-                if (expiration >= elapsedTime) return true;
-                // Restriction expired - clean it up.
-                if (sVerbose) {
-                    Slog.v(TAG, "Removing " + componentName.toShortString()
-                        + " from disabled list");
-                }
-                mDisabledActivities.remove(componentName);
-            }
-        }
-
-        // Then check apps.
-        final String packageName = componentName.getPackageName();
-        if (mDisabledApps == null) return false;
-
-        final Long expiration = mDisabledApps.get(packageName);
-        if (expiration == null) return false;
-
-        if (elapsedTime == 0) {
-            elapsedTime = SystemClock.elapsedRealtime();
-        }
-
-        if (expiration >= elapsedTime) return true;
-
-        // Restriction expired - clean it up.
-        if (sVerbose)  Slog.v(TAG, "Removing " + packageName + " from disabled list");
-        mDisabledApps.remove(packageName);
-        return false;
+        return mDisabledInfoCache.isAutofillDisabledLocked(mUserId, componentName);
     }
 
     // Called by AutofillManager, checks UID.
diff --git a/services/autofill/java/com/android/server/autofill/InlineSuggestionSession.java b/services/autofill/java/com/android/server/autofill/InlineSuggestionSession.java
index 5de8171..4ba2c3d 100644
--- a/services/autofill/java/com/android/server/autofill/InlineSuggestionSession.java
+++ b/services/autofill/java/com/android/server/autofill/InlineSuggestionSession.java
@@ -199,7 +199,10 @@
             return false;
         }
 
-        if (!mImeInputViewStarted || !autofillId.equalsIgnoreSession(mImeFieldId)) {
+        // TODO(b/151846600): IME doesn't have access to the virtual id of the webview, so we
+        //  only compare the view id for now.
+        if (!mImeInputViewStarted || mImeFieldId == null
+                || autofillId.getViewId() != mImeFieldId.getViewId()) {
             if (sDebug) {
                 Log.d(TAG,
                         "onInlineSuggestionsResponseLocked not sent because input view is not "
diff --git a/services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java b/services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java
index 53afa6e..8b50b01 100644
--- a/services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java
+++ b/services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java
@@ -28,6 +28,7 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.IntentSender;
 import android.content.pm.PackageManager;
 import android.content.pm.ServiceInfo;
 import android.os.Bundle;
@@ -37,7 +38,6 @@
 import android.os.RemoteException;
 import android.os.SystemClock;
 import android.service.autofill.Dataset;
-import android.service.autofill.InlineAction;
 import android.service.autofill.augmented.AugmentedAutofillService;
 import android.service.autofill.augmented.IAugmentedAutofillService;
 import android.service.autofill.augmented.IFillCallback;
@@ -167,12 +167,12 @@
                             focusedId, focusedValue, requestTime, inlineSuggestionsRequest,
                             new IFillCallback.Stub() {
                                 @Override
-                                public void onSuccess(@Nullable List<Dataset> inlineSuggestionsData,
-                                        @Nullable List<InlineAction> inlineActions) {
+                                public void onSuccess(
+                                        @Nullable List<Dataset> inlineSuggestionsData) {
                                     mCallbacks.resetLastResponse();
                                     maybeRequestShowInlineSuggestions(sessionId,
                                             inlineSuggestionsRequest, inlineSuggestionsData,
-                                            inlineActions, focusedId, inlineSuggestionsCallback,
+                                            focusedId, inlineSuggestionsCallback,
                                             client, onErrorCallback, remoteRenderService);
                                     requestAutofill.complete(null);
                                 }
@@ -237,8 +237,7 @@
 
     private void maybeRequestShowInlineSuggestions(int sessionId,
             @Nullable InlineSuggestionsRequest request,
-            @Nullable List<Dataset> inlineSuggestionsData,
-            @Nullable List<InlineAction> inlineActions, @NonNull AutofillId focusedId,
+            @Nullable List<Dataset> inlineSuggestionsData, @NonNull AutofillId focusedId,
             @Nullable Function<InlineSuggestionsResponse, Boolean> inlineSuggestionsCallback,
             @NonNull IAutoFillManagerClient client, @NonNull Runnable onErrorCallback,
             @Nullable RemoteInlineSuggestionRenderService remoteRenderService) {
@@ -251,19 +250,32 @@
 
         final InlineSuggestionsResponse inlineSuggestionsResponse =
                 InlineSuggestionFactory.createAugmentedInlineSuggestionsResponse(
-                        request, inlineSuggestionsData, inlineActions, focusedId,
-                        dataset -> {
-                            mCallbacks.logAugmentedAutofillSelected(sessionId,
-                                    dataset.getId());
-                            try {
-                                final ArrayList<AutofillId> fieldIds = dataset.getFieldIds();
-                                final int size = fieldIds.size();
-                                final boolean hideHighlight = size == 1
-                                        && fieldIds.get(0).equals(focusedId);
-                                client.autofill(sessionId, fieldIds, dataset.getFieldValues(),
-                                        hideHighlight);
-                            } catch (RemoteException e) {
-                                Slog.w(TAG, "Encounter exception autofilling the values");
+                        request, inlineSuggestionsData, focusedId,
+                        new InlineSuggestionFactory.InlineSuggestionUiCallback() {
+                            @Override
+                            public void autofill(Dataset dataset) {
+                                mCallbacks.logAugmentedAutofillSelected(sessionId,
+                                        dataset.getId());
+                                try {
+                                    final ArrayList<AutofillId> fieldIds = dataset.getFieldIds();
+                                    final int size = fieldIds.size();
+                                    final boolean hideHighlight = size == 1
+                                            && fieldIds.get(0).equals(focusedId);
+                                    client.autofill(sessionId, fieldIds, dataset.getFieldValues(),
+                                            hideHighlight);
+                                } catch (RemoteException e) {
+                                    Slog.w(TAG, "Encounter exception autofilling the values");
+                                }
+                            }
+
+                            @Override
+                            public void startIntentSender(IntentSender intentSender,
+                                    Intent intent) {
+                                try {
+                                    client.startIntentSender(intentSender, intent);
+                                } catch (RemoteException e) {
+                                    Slog.w(TAG, "RemoteException starting intent sender");
+                                }
                             }
                         }, onErrorCallback, remoteRenderService);
 
diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java
index de31118..e942b27 100644
--- a/services/autofill/java/com/android/server/autofill/Session.java
+++ b/services/autofill/java/com/android/server/autofill/Session.java
@@ -311,6 +311,10 @@
      */
     private final AssistDataReceiverImpl mAssistReceiver = new AssistDataReceiverImpl();
 
+    /**
+     * TODO(b/151867668): improve how asynchronous data dependencies are handled, without using
+     * CountDownLatch.
+     */
     private final class AssistDataReceiverImpl extends IAssistDataReceiver.Stub {
 
         @GuardedBy("mLock")
@@ -318,7 +322,7 @@
         @GuardedBy("mLock")
         private FillRequest mPendingFillRequest;
         @GuardedBy("mLock")
-        private CountDownLatch mCountDownLatch;
+        private CountDownLatch mCountDownLatch = new CountDownLatch(0);
 
         @Nullable Consumer<InlineSuggestionsRequest> newAutofillRequestLocked(
                 boolean isInlineRequest) {
@@ -327,6 +331,9 @@
             mPendingInlineSuggestionsRequest = null;
             return isInlineRequest ? (inlineSuggestionsRequest) -> {
                 synchronized (mLock) {
+                    if (mCountDownLatch.getCount() == 0) {
+                        return;
+                    }
                     mPendingInlineSuggestionsRequest = inlineSuggestionsRequest;
                     mCountDownLatch.countDown();
                     maybeRequestFillLocked();
@@ -335,8 +342,7 @@
         }
 
         void maybeRequestFillLocked() {
-            if (mCountDownLatch == null || mCountDownLatch.getCount() > 0
-                    || mPendingFillRequest == null) {
+            if (mCountDownLatch.getCount() > 0 || mPendingFillRequest == null) {
                 return;
             }
             if (mPendingInlineSuggestionsRequest != null) {
@@ -347,7 +353,6 @@
             mRemoteFillService.onFillRequest(mPendingFillRequest);
             mPendingInlineSuggestionsRequest = null;
             mPendingFillRequest = null;
-            mCountDownLatch = null;
         }
 
         @Override
@@ -447,9 +452,15 @@
                 request = new FillRequest(requestId, contexts, mClientState, flags,
                         /*inlineSuggestionsRequest=*/null);
 
-                mPendingFillRequest = request;
-                mCountDownLatch.countDown();
-                maybeRequestFillLocked();
+                if (mCountDownLatch.getCount() > 0) {
+                    mPendingFillRequest = request;
+                    mCountDownLatch.countDown();
+                    maybeRequestFillLocked();
+                } else {
+                    // TODO(b/151867668): ideally this case should not happen, but it was
+                    //  observed, we should figure out why and fix.
+                    mRemoteFillService.onFillRequest(request);
+                }
             }
 
             if (mActivityToken != null) {
@@ -2593,17 +2604,20 @@
     @GuardedBy("mLock")
     private void updateViewStateAndUiOnValueChangedLocked(AutofillId id, AutofillValue value,
             ViewState viewState, int flags) {
-        viewState.setCurrentValue(value);
-
-        final String filterText;
+        final String textValue;
         if (value == null || !value.isText()) {
-            filterText = null;
+            textValue = null;
         } else {
             final CharSequence text = value.getTextValue();
             // Text should never be null, but it doesn't hurt to check to avoid a
             // system crash...
-            filterText = (text == null) ? null : text.toString();
+            textValue = (text == null) ? null : text.toString();
         }
+        updateFilteringStateOnValueChangedLocked(textValue, viewState);
+
+        viewState.setCurrentValue(value);
+
+        final String filterText = textValue;
 
         final AutofillValue filledValue = viewState.getAutofilledValue();
         if (filledValue != null) {
@@ -2634,6 +2648,52 @@
         getUiForShowing().filterFillUi(filterText, this);
     }
 
+    /**
+     * Disable filtering of inline suggestions for further text changes in this view if any
+     * character was removed earlier and now any character is being added. Such behaviour may
+     * indicate the IME attempting to probe the potentially sensitive content of inline suggestions.
+     */
+    @GuardedBy("mLock")
+    private void updateFilteringStateOnValueChangedLocked(@Nullable String newTextValue,
+            ViewState viewState) {
+        if (newTextValue == null) {
+            // Don't just return here, otherwise the IME can circumvent this logic using non-text
+            // values.
+            newTextValue = "";
+        }
+        final AutofillValue currentValue = viewState.getCurrentValue();
+        final String currentTextValue;
+        if (currentValue == null || !currentValue.isText()) {
+            currentTextValue = "";
+        } else {
+            currentTextValue = currentValue.getTextValue().toString();
+        }
+
+        if ((viewState.getState() & ViewState.STATE_CHAR_REMOVED) == 0) {
+            if (!containsCharsInOrder(newTextValue, currentTextValue)) {
+                viewState.setState(ViewState.STATE_CHAR_REMOVED);
+            }
+        } else if (!containsCharsInOrder(currentTextValue, newTextValue)) {
+            // Characters were added or replaced.
+            viewState.setState(ViewState.STATE_INLINE_DISABLED);
+        }
+    }
+
+    /**
+     * Returns true if {@code s1} contains all characters of {@code s2}, in order.
+     */
+    private static boolean containsCharsInOrder(String s1, String s2) {
+        int prevIndex = -1;
+        for (char ch : s2.toCharArray()) {
+            int index = TextUtils.indexOf(s1, ch, prevIndex + 1);
+            if (index == -1) {
+                return false;
+            }
+            prevIndex = index;
+        }
+        return true;
+    }
+
     @Override
     public void onFillReady(@NonNull FillResponse response, @NonNull AutofillId filledId,
             @Nullable AutofillValue value) {
@@ -2724,10 +2784,13 @@
             return false;
         }
 
+        final ViewState currentView = mViewStates.get(mCurrentViewId);
+        if ((currentView.getState() & ViewState.STATE_INLINE_DISABLED) != 0) {
+            response.getDatasets().clear();
+        }
         InlineSuggestionsResponse inlineSuggestionsResponse =
                 InlineSuggestionFactory.createInlineSuggestionsResponse(
-                        inlineSuggestionsRequest.get(),
-                        response, filterText, response.getInlineActions(), mCurrentViewId,
+                        inlineSuggestionsRequest.get(), response, filterText, mCurrentViewId,
                         this, () -> {
                             synchronized (mLock) {
                                 mInlineSuggestionSession.hideInlineSuggestionsUi(mCurrentViewId);
diff --git a/services/autofill/java/com/android/server/autofill/ViewState.java b/services/autofill/java/com/android/server/autofill/ViewState.java
index f7c24f0..9114576 100644
--- a/services/autofill/java/com/android/server/autofill/ViewState.java
+++ b/services/autofill/java/com/android/server/autofill/ViewState.java
@@ -76,6 +76,10 @@
     public static final int STATE_TRIGGERED_AUGMENTED_AUTOFILL = 0x1000;
     /** Inline suggestions were shown for this View. */
     public static final int STATE_INLINE_SHOWN = 0x2000;
+    /** A character was removed from the View value (not by the service). */
+    public static final int STATE_CHAR_REMOVED = 0x4000;
+    /** Showing inline suggestions is not allowed for this View. */
+    public static final int STATE_INLINE_DISABLED = 0x8000;
 
     public final AutofillId id;
 
diff --git a/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java b/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java
index 0ca9dd9..2306329 100644
--- a/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java
+++ b/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java
@@ -21,13 +21,13 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.content.Intent;
 import android.content.IntentSender;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.service.autofill.Dataset;
 import android.service.autofill.FillResponse;
 import android.service.autofill.IInlineSuggestionUiCallback;
-import android.service.autofill.InlineAction;
 import android.service.autofill.InlinePresentation;
 import android.text.TextUtils;
 import android.util.Slog;
@@ -46,11 +46,12 @@
 import com.android.server.LocalServices;
 import com.android.server.UiThread;
 import com.android.server.autofill.RemoteInlineSuggestionRenderService;
-import com.android.server.wm.WindowManagerInternal;
+import com.android.server.inputmethod.InputMethodManagerInternal;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.function.BiConsumer;
+import java.util.function.Consumer;
 import java.util.regex.Pattern;
 
 public final class InlineSuggestionFactory {
@@ -64,6 +65,11 @@
          * Callback to autofill a dataset to the client app.
          */
         void autofill(@NonNull Dataset dataset);
+
+        /**
+         * Callback to start Intent in client app.
+         */
+        void startIntentSender(@NonNull IntentSender intentSender, @NonNull Intent intent);
     }
 
     /**
@@ -73,8 +79,7 @@
     @Nullable
     public static InlineSuggestionsResponse createInlineSuggestionsResponse(
             @NonNull InlineSuggestionsRequest request, @NonNull FillResponse response,
-            @Nullable String filterText, @Nullable List<InlineAction> inlineActions,
-            @NonNull AutofillId autofillId,
+            @Nullable String filterText, @NonNull AutofillId autofillId,
             @NonNull AutoFillUI.AutoFillUiCallback client, @NonNull Runnable onErrorCallback,
             @Nullable RemoteInlineSuggestionRenderService remoteRenderService) {
         if (sDebug) Slog.d(TAG, "createInlineSuggestionsResponse called");
@@ -96,8 +101,9 @@
         final InlinePresentation inlineAuthentication =
                 response.getAuthentication() == null ? null : response.getInlinePresentation();
         return createInlineSuggestionsResponseInternal(/* isAugmented= */ false, request,
-                response.getDatasets(), filterText, inlineAuthentication, inlineActions, autofillId,
-                onErrorCallback, onClickFactory, remoteRenderService);
+                response.getDatasets(), filterText, inlineAuthentication, autofillId,
+                onErrorCallback, onClickFactory, (intentSender) ->
+                        client.startIntentSender(intentSender, new Intent()), remoteRenderService);
     }
 
     /**
@@ -107,31 +113,34 @@
     @Nullable
     public static InlineSuggestionsResponse createAugmentedInlineSuggestionsResponse(
             @NonNull InlineSuggestionsRequest request, @NonNull List<Dataset> datasets,
-            @Nullable List<InlineAction> inlineActions, @NonNull AutofillId autofillId,
+            @NonNull AutofillId autofillId,
             @NonNull InlineSuggestionUiCallback inlineSuggestionUiCallback,
             @NonNull Runnable onErrorCallback,
             @Nullable RemoteInlineSuggestionRenderService remoteRenderService) {
         if (sDebug) Slog.d(TAG, "createAugmentedInlineSuggestionsResponse called");
         return createInlineSuggestionsResponseInternal(/* isAugmented= */ true, request,
                 datasets, /* filterText= */ null, /* inlineAuthentication= */ null,
-                inlineActions, autofillId, onErrorCallback,
+                autofillId, onErrorCallback,
                 (dataset, datasetIndex) ->
-                        inlineSuggestionUiCallback.autofill(dataset), remoteRenderService);
+                        inlineSuggestionUiCallback.autofill(dataset),
+                (intentSender) ->
+                        inlineSuggestionUiCallback.startIntentSender(intentSender, new Intent()),
+                remoteRenderService);
     }
 
     @Nullable
     private static InlineSuggestionsResponse createInlineSuggestionsResponseInternal(
             boolean isAugmented, @NonNull InlineSuggestionsRequest request,
             @Nullable List<Dataset> datasets, @Nullable String filterText,
-            @Nullable InlinePresentation inlineAuthentication,
-            @Nullable List<InlineAction> inlineActions, @NonNull AutofillId autofillId,
+            @Nullable InlinePresentation inlineAuthentication, @NonNull AutofillId autofillId,
             @NonNull Runnable onErrorCallback, @NonNull BiConsumer<Dataset, Integer> onClickFactory,
+            @NonNull Consumer<IntentSender> intentSenderConsumer,
             @Nullable RemoteInlineSuggestionRenderService remoteRenderService) {
 
         final ArrayList<InlineSuggestion> inlineSuggestions = new ArrayList<>();
         if (inlineAuthentication != null) {
             InlineSuggestion inlineAuthSuggestion = createInlineAuthSuggestion(inlineAuthentication,
-                    remoteRenderService, onClickFactory, onErrorCallback,
+                    remoteRenderService, onClickFactory, onErrorCallback, intentSenderConsumer,
                     request.getHostInputToken(), request.getHostDisplayId());
             inlineSuggestions.add(inlineAuthSuggestion);
 
@@ -156,27 +165,18 @@
                 Slog.w(TAG, "InlinePresentation not found in dataset");
                 continue;
             }
-            if (!includeDataset(dataset, fieldIndex, filterText)) {
+            if (!inlinePresentation.isPinned()  // don't filter pinned suggestions
+                    && !includeDataset(dataset, fieldIndex, filterText)) {
                 continue;
             }
             InlineSuggestion inlineSuggestion = createInlineSuggestion(isAugmented, dataset,
                     datasetIndex,
                     mergedInlinePresentation(request, datasetIndex, inlinePresentation),
-                    onClickFactory, remoteRenderService, onErrorCallback,
+                    onClickFactory, remoteRenderService, onErrorCallback, intentSenderConsumer,
                     request.getHostInputToken(), request.getHostDisplayId());
 
             inlineSuggestions.add(inlineSuggestion);
         }
-        if (inlineActions != null) {
-            for (InlineAction inlineAction : inlineActions) {
-                final InlineSuggestion inlineActionSuggestion = createInlineAction(isAugmented,
-                        mergedInlinePresentation(request, 0, inlineAction.getInlinePresentation()),
-                        inlineAction.getAction(),
-                        remoteRenderService, onErrorCallback, request.getHostInputToken(),
-                        request.getHostDisplayId());
-                inlineSuggestions.add(inlineActionSuggestion);
-            }
-        }
         return new InlineSuggestionsResponse(inlineSuggestions);
     }
 
@@ -211,53 +211,28 @@
         return valueText.toLowerCase().startsWith(constraintLowerCase);
     }
 
-
-    private static InlineSuggestion createInlineAction(boolean isAugmented,
-            @NonNull InlinePresentation presentation,
-            @NonNull IntentSender action,
-            @Nullable RemoteInlineSuggestionRenderService remoteRenderService,
-            @NonNull Runnable onErrorCallback, @Nullable IBinder hostInputToken,
-            int displayId) {
-        final InlineSuggestionInfo inlineSuggestionInfo = new InlineSuggestionInfo(
-                presentation.getInlinePresentationSpec(),
-                isAugmented ? InlineSuggestionInfo.SOURCE_PLATFORM
-                        : InlineSuggestionInfo.SOURCE_AUTOFILL,
-                presentation.getAutofillHints(), InlineSuggestionInfo.TYPE_ACTION,
-                presentation.isPinned());
-        final Runnable onClickAction = () -> {
-            try {
-                // TODO(b/150499490): route the intent to the client app to have it fired there,
-                //  so that it will appear as a part of the same task as the client app (similar
-                //  to the authentication flow).
-                action.sendIntent(null, 0, null, null, null);
-            } catch (IntentSender.SendIntentException e) {
-                onErrorCallback.run();
-                Slog.w(TAG, "Error sending inline action intent");
-            }
-        };
-        return new InlineSuggestion(inlineSuggestionInfo,
-                createInlineContentProvider(presentation, onClickAction, onErrorCallback,
-                        remoteRenderService, hostInputToken, displayId));
-    }
-
     private static InlineSuggestion createInlineSuggestion(boolean isAugmented,
             @NonNull Dataset dataset, int datasetIndex,
             @NonNull InlinePresentation inlinePresentation,
             @NonNull BiConsumer<Dataset, Integer> onClickFactory,
             @NonNull RemoteInlineSuggestionRenderService remoteRenderService,
-            @NonNull Runnable onErrorCallback, @Nullable IBinder hostInputToken,
+            @NonNull Runnable onErrorCallback, @NonNull Consumer<IntentSender> intentSenderConsumer,
+            @Nullable IBinder hostInputToken,
             int displayId) {
+        final String suggestionSource = isAugmented ? InlineSuggestionInfo.SOURCE_PLATFORM
+                : InlineSuggestionInfo.SOURCE_AUTOFILL;
+        final String suggestionType =
+                dataset.getAuthentication() == null ? InlineSuggestionInfo.TYPE_SUGGESTION
+                        : InlineSuggestionInfo.TYPE_ACTION;
         final InlineSuggestionInfo inlineSuggestionInfo = new InlineSuggestionInfo(
-                inlinePresentation.getInlinePresentationSpec(),
-                isAugmented ? InlineSuggestionInfo.SOURCE_PLATFORM
-                        : InlineSuggestionInfo.SOURCE_AUTOFILL,
-                inlinePresentation.getAutofillHints(),
-                InlineSuggestionInfo.TYPE_SUGGESTION, inlinePresentation.isPinned());
+                inlinePresentation.getInlinePresentationSpec(), suggestionSource,
+                inlinePresentation.getAutofillHints(), suggestionType,
+                inlinePresentation.isPinned());
 
         final InlineSuggestion inlineSuggestion = new InlineSuggestion(inlineSuggestionInfo,
                 createInlineContentProvider(inlinePresentation,
                         () -> onClickFactory.accept(dataset, datasetIndex), onErrorCallback,
-                        remoteRenderService, hostInputToken, displayId));
+                        intentSenderConsumer, remoteRenderService, hostInputToken, displayId));
 
         return inlineSuggestion;
     }
@@ -266,17 +241,19 @@
             @NonNull InlinePresentation inlinePresentation,
             @NonNull RemoteInlineSuggestionRenderService remoteRenderService,
             @NonNull BiConsumer<Dataset, Integer> onClickFactory, @NonNull Runnable onErrorCallback,
+            @NonNull Consumer<IntentSender> intentSenderConsumer,
             @Nullable IBinder hostInputToken, int displayId) {
         final InlineSuggestionInfo inlineSuggestionInfo = new InlineSuggestionInfo(
                 inlinePresentation.getInlinePresentationSpec(),
                 InlineSuggestionInfo.SOURCE_AUTOFILL, inlinePresentation.getAutofillHints(),
-                InlineSuggestionInfo.TYPE_SUGGESTION, inlinePresentation.isPinned());
+                InlineSuggestionInfo.TYPE_ACTION, inlinePresentation.isPinned());
 
         return new InlineSuggestion(inlineSuggestionInfo,
                 createInlineContentProvider(inlinePresentation,
                         () -> onClickFactory.accept(null,
                                 AutofillManager.AUTHENTICATION_ID_DATASET_ID_UNDEFINED),
-                        onErrorCallback, remoteRenderService, hostInputToken, displayId));
+                        onErrorCallback, intentSenderConsumer, remoteRenderService, hostInputToken,
+                        displayId));
     }
 
     /**
@@ -302,6 +279,7 @@
     private static IInlineContentProvider.Stub createInlineContentProvider(
             @NonNull InlinePresentation inlinePresentation, @Nullable Runnable onClickAction,
             @NonNull Runnable onErrorCallback,
+            @NonNull Consumer<IntentSender> intentSenderConsumer,
             @Nullable RemoteInlineSuggestionRenderService remoteRenderService,
             @Nullable IBinder hostInputToken,
             int displayId) {
@@ -310,7 +288,7 @@
             public void provideContent(int width, int height, IInlineContentCallback callback) {
                 UiThread.getHandler().post(() -> {
                     final IInlineSuggestionUiCallback uiCallback = createInlineSuggestionUiCallback(
-                            callback, onClickAction, onErrorCallback);
+                            callback, onClickAction, onErrorCallback, intentSenderConsumer);
 
                     if (remoteRenderService == null) {
                         Slog.e(TAG, "RemoteInlineSuggestionRenderService is null");
@@ -326,7 +304,8 @@
 
     private static IInlineSuggestionUiCallback.Stub createInlineSuggestionUiCallback(
             @NonNull IInlineContentCallback callback, @NonNull Runnable onAutofillCallback,
-            @NonNull Runnable onErrorCallback) {
+            @NonNull Runnable onErrorCallback,
+            @NonNull Consumer<IntentSender> intentSenderConsumer) {
         return new IInlineSuggestionUiCallback.Stub() {
             @Override
             public void onClick() throws RemoteException {
@@ -343,6 +322,7 @@
             public void onContent(SurfaceControlViewHost.SurfacePackage surface)
                     throws RemoteException {
                 callback.onContent(surface);
+                surface.release();
             }
 
             @Override
@@ -353,15 +333,19 @@
             @Override
             public void onTransferTouchFocusToImeWindow(IBinder sourceInputToken, int displayId)
                     throws RemoteException {
-                //TODO(b/149574510): Move logic to IMMS
-                final WindowManagerInternal windowManagerInternal = LocalServices.getService(
-                        WindowManagerInternal.class);
-                if (!windowManagerInternal.transferTouchFocusToImeWindow(sourceInputToken,
+                final InputMethodManagerInternal inputMethodManagerInternal =
+                        LocalServices.getService(InputMethodManagerInternal.class);
+                if (!inputMethodManagerInternal.transferTouchFocusToImeWindow(sourceInputToken,
                         displayId)) {
                     Slog.e(TAG, "Cannot transfer touch focus from suggestion to IME");
                     onErrorCallback.run();
                 }
             }
+
+            @Override
+            public void onStartIntentSender(IntentSender intentSender) {
+                intentSenderConsumer.accept(intentSender);
+            }
         };
     }
 
diff --git a/services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java b/services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java
index 32bca35..9486b0d 100644
--- a/services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java
+++ b/services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java
@@ -17,7 +17,7 @@
 package com.android.server.contentcapture;
 
 import static android.service.contentcapture.ContentCaptureService.setClientState;
-import static android.view.contentcapture.ContentCaptureSession.NO_SESSION_ID;
+import static android.view.contentcapture.ContentCaptureManager.NO_SESSION_ID;
 import static android.view.contentcapture.ContentCaptureSession.STATE_DISABLED;
 import static android.view.contentcapture.ContentCaptureSession.STATE_DUPLICATED_ID;
 import static android.view.contentcapture.ContentCaptureSession.STATE_INTERNAL_ERROR;
diff --git a/services/contentcapture/java/com/android/server/contentcapture/ContentCaptureServerSession.java b/services/contentcapture/java/com/android/server/contentcapture/ContentCaptureServerSession.java
index aa63e40..06ab426 100644
--- a/services/contentcapture/java/com/android/server/contentcapture/ContentCaptureServerSession.java
+++ b/services/contentcapture/java/com/android/server/contentcapture/ContentCaptureServerSession.java
@@ -16,9 +16,9 @@
 package com.android.server.contentcapture;
 
 import static android.service.contentcapture.ContentCaptureService.setClientState;
+import static android.view.contentcapture.ContentCaptureManager.NO_SESSION_ID;
 import static android.view.contentcapture.ContentCaptureManager.RESULT_CODE_FALSE;
 import static android.view.contentcapture.ContentCaptureManager.RESULT_CODE_TRUE;
-import static android.view.contentcapture.ContentCaptureSession.NO_SESSION_ID;
 import static android.view.contentcapture.ContentCaptureSession.STATE_ACTIVE;
 import static android.view.contentcapture.ContentCaptureSession.STATE_DISABLED;
 import static android.view.contentcapture.ContentCaptureSession.STATE_SERVICE_RESURRECTED;
diff --git a/services/contentsuggestions/java/com/android/server/contentsuggestions/ContentSuggestionsManagerService.java b/services/contentsuggestions/java/com/android/server/contentsuggestions/ContentSuggestionsManagerService.java
index b54ec4e..0fdabd0 100644
--- a/services/contentsuggestions/java/com/android/server/contentsuggestions/ContentSuggestionsManagerService.java
+++ b/services/contentsuggestions/java/com/android/server/contentsuggestions/ContentSuggestionsManagerService.java
@@ -21,13 +21,17 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.app.ActivityManager;
 import android.app.contentsuggestions.ClassificationsRequest;
+import android.app.contentsuggestions.ContentSuggestionsManager;
 import android.app.contentsuggestions.IClassificationsCallback;
 import android.app.contentsuggestions.IContentSuggestionsManager;
 import android.app.contentsuggestions.ISelectionsCallback;
 import android.app.contentsuggestions.SelectionsRequest;
 import android.content.Context;
 import android.graphics.Bitmap;
+import android.graphics.ColorSpace;
+import android.graphics.GraphicBuffer;
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.RemoteException;
@@ -133,7 +137,7 @@
                 if (service != null) {
                     // TODO(b/147324195): Temporarily pass bitmap until we change the service API.
                     imageContextRequestExtras.putParcelable(EXTRA_BITMAP, bitmap);
-                    service.provideContextImageLocked(/* taskId = */ -1, imageContextRequestExtras);
+                    service.provideContextImageFromBitmapLocked(imageContextRequestExtras);
                 } else {
                     if (VERBOSE) {
                         Slog.v(TAG, "provideContextImageLocked: no service for " + userId);
@@ -152,10 +156,28 @@
             }
             enforceCaller(UserHandle.getCallingUserId(), "provideContextImage");
 
+            GraphicBuffer snapshotBuffer = null;
+            int colorSpaceId = 0;
+
+            // Skip taking TaskSnapshot when bitmap is provided.
+            if (!imageContextRequestExtras.containsKey(ContentSuggestionsManager.EXTRA_BITMAP)) {
+                // Can block, so call before acquiring the lock.
+                ActivityManager.TaskSnapshot snapshot =
+                        mActivityTaskManagerInternal.getTaskSnapshotBlocking(taskId, false);
+                if (snapshot != null) {
+                    snapshotBuffer = snapshot.getSnapshot();
+                    ColorSpace colorSpace = snapshot.getColorSpace();
+                    if (colorSpace != null) {
+                        colorSpaceId = colorSpace.getId();
+                    }
+                }
+            }
+
             synchronized (mLock) {
                 final ContentSuggestionsPerUserService service = getServiceForUserLocked(userId);
                 if (service != null) {
-                    service.provideContextImageLocked(taskId, imageContextRequestExtras);
+                    service.provideContextImageLocked(taskId, snapshotBuffer, colorSpaceId,
+                            imageContextRequestExtras);
                 } else {
                     if (VERBOSE) {
                         Slog.v(TAG, "provideContextImageLocked: no service for " + userId);
diff --git a/services/contentsuggestions/java/com/android/server/contentsuggestions/ContentSuggestionsPerUserService.java b/services/contentsuggestions/java/com/android/server/contentsuggestions/ContentSuggestionsPerUserService.java
index 7828050..cf53b16 100644
--- a/services/contentsuggestions/java/com/android/server/contentsuggestions/ContentSuggestionsPerUserService.java
+++ b/services/contentsuggestions/java/com/android/server/contentsuggestions/ContentSuggestionsPerUserService.java
@@ -19,17 +19,14 @@
 import android.Manifest;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.app.ActivityManager;
 import android.app.AppGlobals;
 import android.app.contentsuggestions.ClassificationsRequest;
-import android.app.contentsuggestions.ContentSuggestionsManager;
 import android.app.contentsuggestions.IClassificationsCallback;
 import android.app.contentsuggestions.ISelectionsCallback;
 import android.app.contentsuggestions.SelectionsRequest;
 import android.content.ComponentName;
 import android.content.pm.PackageManager;
 import android.content.pm.ServiceInfo;
-import android.graphics.ColorSpace;
 import android.graphics.GraphicBuffer;
 import android.os.Bundle;
 import android.os.RemoteException;
@@ -95,26 +92,17 @@
     }
 
     @GuardedBy("mLock")
-    void provideContextImageLocked(int taskId, @NonNull Bundle imageContextRequestExtras) {
+    void provideContextImageFromBitmapLocked(@NonNull Bundle bitmapContainingExtras) {
+        // No task or snapshot provided, the bitmap is contained in the extras
+        provideContextImageLocked(-1, null, 0, bitmapContainingExtras);
+    }
+
+    @GuardedBy("mLock")
+    void provideContextImageLocked(int taskId, @Nullable GraphicBuffer snapshot,
+            int colorSpaceIdForSnapshot, @NonNull Bundle imageContextRequestExtras) {
         RemoteContentSuggestionsService service = ensureRemoteServiceLocked();
         if (service != null) {
-            GraphicBuffer snapshotBuffer = null;
-            int colorSpaceId = 0;
-
-            // Skip taking TaskSnapshot when bitmap is provided.
-            if (!imageContextRequestExtras.containsKey(ContentSuggestionsManager.EXTRA_BITMAP)) {
-                ActivityManager.TaskSnapshot snapshot =
-                        mActivityTaskManagerInternal.getTaskSnapshotNoRestore(taskId, false);
-                if (snapshot != null) {
-                    snapshotBuffer = snapshot.getSnapshot();
-                    ColorSpace colorSpace = snapshot.getColorSpace();
-                    if (colorSpace != null) {
-                        colorSpaceId = colorSpace.getId();
-                    }
-                }
-            }
-
-            service.provideContextImage(taskId, snapshotBuffer, colorSpaceId,
+            service.provideContextImage(taskId, snapshot, colorSpaceIdForSnapshot,
                     imageContextRequestExtras);
         }
     }
diff --git a/services/core/Android.bp b/services/core/Android.bp
index 9e19ad2..7a26b21 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -91,7 +91,7 @@
     ],
 
     libs: [
-        "services-stubs",
+        "android_system_server_stubs_current",
         "services.net",
         "android.hardware.light-V2.0-java",
         "android.hardware.power-java",
@@ -118,7 +118,7 @@
         "android.hardware.health-V2.1-java",
         "android.hardware.light-java",
         "android.hardware.weaver-V1.0-java",
-        "android.hardware.biometrics.face-V1.1-java",
+        "android.hardware.biometrics.face-V1.0-java",
         "android.hardware.biometrics.fingerprint-V2.2-java",
         "android.hardware.oemlock-V1.0-java",
         "android.hardware.configstore-V1.0-java",
diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java
index 9b04e79..fe33fae9 100644
--- a/services/core/java/com/android/server/AlarmManagerService.java
+++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -1876,7 +1876,7 @@
                     // package was t(q) then the next delivery must be after t(q) + <window_size>
                     final long t = mAppWakeupHistory.getNthLastWakeupForPackage(
                             sourcePackage, sourceUserId, quotaForBucket);
-                    minElapsed = t + 1 + mConstants.APP_STANDBY_WINDOW;
+                    minElapsed = t + mConstants.APP_STANDBY_WINDOW;
                 }
                 if (alarm.expectedWhenElapsed < minElapsed) {
                     alarm.whenElapsed = alarm.maxWhenElapsed = minElapsed;
diff --git a/services/core/java/com/android/server/BatteryService.java b/services/core/java/com/android/server/BatteryService.java
index f1f5005..8dd4fa6 100644
--- a/services/core/java/com/android/server/BatteryService.java
+++ b/services/core/java/com/android/server/BatteryService.java
@@ -1101,6 +1101,9 @@
          * Synchronize on BatteryService.
          */
         public void updateLightsLocked() {
+            if (mBatteryLight == null) {
+                return;
+            }
             final int level = mHealthInfo.batteryLevel;
             final int status = mHealthInfo.batteryStatus;
             if (level < mLowBatteryWarningLevel) {
diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java
index 03ca1c6..1bf559a 100644
--- a/services/core/java/com/android/server/BluetoothManagerService.java
+++ b/services/core/java/com/android/server/BluetoothManagerService.java
@@ -112,9 +112,13 @@
     private static final int USER_SWITCHED_TIME_MS = 200;
     // Delay for the addProxy function in msec
     private static final int ADD_PROXY_DELAY_MS = 100;
+    // Delay for retrying enable and disable in msec
+    private static final int ENABLE_DISABLE_DELAY_MS = 300;
 
     private static final int MESSAGE_ENABLE = 1;
     private static final int MESSAGE_DISABLE = 2;
+    private static final int MESSAGE_HANDLE_ENABLE_DELAYED = 3;
+    private static final int MESSAGE_HANDLE_DISABLE_DELAYED = 4;
     private static final int MESSAGE_REGISTER_ADAPTER = 20;
     private static final int MESSAGE_UNREGISTER_ADAPTER = 21;
     private static final int MESSAGE_REGISTER_STATE_CHANGE_CALLBACK = 30;
@@ -136,6 +140,7 @@
     private static final int RESTORE_SETTING_TO_OFF = 0;
 
     private static final int MAX_ERROR_RESTART_RETRIES = 6;
+    private static final int MAX_WAIT_FOR_ENABLE_DISABLE_RETRIES = 10;
 
     // Bluetooth persisted setting is off
     private static final int BLUETOOTH_OFF = 0;
@@ -166,6 +171,8 @@
     private final ReentrantReadWriteLock mBluetoothLock = new ReentrantReadWriteLock();
     private boolean mBinding;
     private boolean mUnbinding;
+    private int mWaitForEnableRetry;
+    private int mWaitForDisableRetry;
 
     private BluetoothAirplaneModeListener mBluetoothAirplaneModeListener;
 
@@ -1678,8 +1685,18 @@
                     break;
 
                 case MESSAGE_ENABLE:
+                    int quietEnable = msg.arg1;
+                    if (mHandler.hasMessages(MESSAGE_HANDLE_DISABLE_DELAYED)
+                            || mHandler.hasMessages(MESSAGE_HANDLE_ENABLE_DELAYED)) {
+                        // We are handling enable or disable right now, wait for it.
+                        mHandler.sendMessageDelayed(mHandler.obtainMessage(MESSAGE_ENABLE,
+                                quietEnable, 0), ENABLE_DISABLE_DELAY_MS);
+                        break;
+                    }
+
                     if (DBG) {
-                        Slog.d(TAG, "MESSAGE_ENABLE(" + msg.arg1 + "): mBluetooth = " + mBluetooth);
+                        Slog.d(TAG, "MESSAGE_ENABLE(" + quietEnable + "): mBluetooth = "
+                                + mBluetooth);
                     }
                     mHandler.removeMessages(MESSAGE_RESTART_BLUETOOTH_SERVICE);
                     mEnable = true;
@@ -1702,7 +1719,7 @@
                         mBluetoothLock.readLock().unlock();
                     }
 
-                    mQuietEnable = (msg.arg1 == 1);
+                    mQuietEnable = (quietEnable == 1);
                     if (mBluetooth == null) {
                         handleEnable(mQuietEnable);
                     } else {
@@ -1711,8 +1728,8 @@
                         // the previous Bluetooth process has exited. The
                         // waiting period has three components:
                         // (a) Wait until the local state is STATE_OFF. This
-                        //     is accomplished by
-                        //     "waitForState(Set.of(BluetoothAdapter.STATE_OFF))".
+                        //     is accomplished by sending delay a message
+                        //     MESSAGE_HANDLE_ENABLE_DELAYED
                         // (b) Wait until the STATE_OFF state is updated to
                         //     all components.
                         // (c) Wait until the Bluetooth process exits, and
@@ -1722,34 +1739,109 @@
                         // message. The delay time is backed off if Bluetooth
                         // continuously failed to turn on itself.
                         //
-                        waitForState(Set.of(BluetoothAdapter.STATE_OFF));
-                        Message restartMsg =
-                                mHandler.obtainMessage(MESSAGE_RESTART_BLUETOOTH_SERVICE);
-                        mHandler.sendMessageDelayed(restartMsg, getServiceRestartMs());
+                        mWaitForEnableRetry = 0;
+                        Message enableDelayedMsg =
+                                mHandler.obtainMessage(MESSAGE_HANDLE_ENABLE_DELAYED);
+                        mHandler.sendMessageDelayed(enableDelayedMsg, ENABLE_DISABLE_DELAY_MS);
                     }
                     break;
 
                 case MESSAGE_DISABLE:
+                    if (mHandler.hasMessages(MESSAGE_HANDLE_DISABLE_DELAYED) || mBinding
+                            || mHandler.hasMessages(MESSAGE_HANDLE_ENABLE_DELAYED)) {
+                        // We are handling enable or disable right now, wait for it.
+                        mHandler.sendMessageDelayed(mHandler.obtainMessage(MESSAGE_DISABLE),
+                                ENABLE_DISABLE_DELAY_MS);
+                        break;
+                    }
+
                     if (DBG) {
-                        Slog.d(TAG, "MESSAGE_DISABLE: mBluetooth = " + mBluetooth);
+                        Slog.d(TAG, "MESSAGE_DISABLE: mBluetooth = " + mBluetooth
+                                + ", mBinding = " + mBinding);
                     }
                     mHandler.removeMessages(MESSAGE_RESTART_BLUETOOTH_SERVICE);
+
                     if (mEnable && mBluetooth != null) {
-                        waitForState(Set.of(BluetoothAdapter.STATE_ON));
-                        mEnable = false;
-                        handleDisable();
-                        waitForState(Set.of(BluetoothAdapter.STATE_OFF,
-                                BluetoothAdapter.STATE_TURNING_ON,
-                                BluetoothAdapter.STATE_TURNING_OFF,
-                                BluetoothAdapter.STATE_BLE_TURNING_ON,
-                                BluetoothAdapter.STATE_BLE_ON,
-                                BluetoothAdapter.STATE_BLE_TURNING_OFF));
+                        mWaitForDisableRetry = 0;
+                        Message disableDelayedMsg =
+                                mHandler.obtainMessage(MESSAGE_HANDLE_DISABLE_DELAYED, 0, 0);
+                        mHandler.sendMessageDelayed(disableDelayedMsg, ENABLE_DISABLE_DELAY_MS);
                     } else {
                         mEnable = false;
                         handleDisable();
                     }
                     break;
 
+                case MESSAGE_HANDLE_ENABLE_DELAYED: {
+                    // The Bluetooth is turning off, wait for STATE_OFF
+                    if (mState != BluetoothAdapter.STATE_OFF) {
+                        if (mWaitForEnableRetry < MAX_WAIT_FOR_ENABLE_DISABLE_RETRIES) {
+                            mWaitForEnableRetry++;
+                            Message enableDelayedMsg =
+                                    mHandler.obtainMessage(MESSAGE_HANDLE_ENABLE_DELAYED);
+                            mHandler.sendMessageDelayed(enableDelayedMsg, ENABLE_DISABLE_DELAY_MS);
+                            break;
+                        } else {
+                            Slog.e(TAG, "Wait for STATE_OFF timeout");
+                        }
+                    }
+                    // Either state is changed to STATE_OFF or reaches the maximum retry, we
+                    // should move forward to the next step.
+                    mWaitForEnableRetry = 0;
+                    Message restartMsg =
+                            mHandler.obtainMessage(MESSAGE_RESTART_BLUETOOTH_SERVICE);
+                    mHandler.sendMessageDelayed(restartMsg, getServiceRestartMs());
+                    Slog.d(TAG, "Handle enable is finished");
+                    break;
+                }
+
+                case MESSAGE_HANDLE_DISABLE_DELAYED: {
+                    boolean disabling = (msg.arg1 == 1);
+                    Slog.d(TAG, "MESSAGE_HANDLE_DISABLE_DELAYED: disabling:" + disabling);
+                    if (!disabling) {
+                        // The Bluetooth is turning on, wait for STATE_ON
+                        if (mState != BluetoothAdapter.STATE_ON) {
+                            if (mWaitForDisableRetry < MAX_WAIT_FOR_ENABLE_DISABLE_RETRIES) {
+                                mWaitForDisableRetry++;
+                                Message disableDelayedMsg = mHandler.obtainMessage(
+                                        MESSAGE_HANDLE_DISABLE_DELAYED, 0, 0);
+                                mHandler.sendMessageDelayed(disableDelayedMsg,
+                                        ENABLE_DISABLE_DELAY_MS);
+                                break;
+                            } else {
+                                Slog.e(TAG, "Wait for STATE_ON timeout");
+                            }
+                        }
+                        // Either state is changed to STATE_ON or reaches the maximum retry, we
+                        // should move forward to the next step.
+                        mWaitForDisableRetry = 0;
+                        mEnable = false;
+                        handleDisable();
+                        // Wait for state exiting STATE_ON
+                        Message disableDelayedMsg =
+                                mHandler.obtainMessage(MESSAGE_HANDLE_DISABLE_DELAYED, 1, 0);
+                        mHandler.sendMessageDelayed(disableDelayedMsg, ENABLE_DISABLE_DELAY_MS);
+                    } else {
+                        // The Bluetooth is turning off, wait for exiting STATE_ON
+                        if (mState == BluetoothAdapter.STATE_ON) {
+                            if (mWaitForDisableRetry < MAX_WAIT_FOR_ENABLE_DISABLE_RETRIES) {
+                                mWaitForDisableRetry++;
+                                Message disableDelayedMsg = mHandler.obtainMessage(
+                                        MESSAGE_HANDLE_DISABLE_DELAYED, 1, 0);
+                                mHandler.sendMessageDelayed(disableDelayedMsg,
+                                        ENABLE_DISABLE_DELAY_MS);
+                                break;
+                            } else {
+                                Slog.e(TAG, "Wait for exiting STATE_ON timeout");
+                            }
+                        }
+                        // Either state is exited from STATE_ON or reaches the maximum retry, we
+                        // should move forward to the next step.
+                        Slog.d(TAG, "Handle disable is finished");
+                    }
+                    break;
+                }
+
                 case MESSAGE_RESTORE_USER_SETTING:
                     if ((msg.arg1 == RESTORE_SETTING_TO_OFF) && mEnable) {
                         if (DBG) {
@@ -2124,6 +2216,7 @@
         try {
             mBluetoothLock.writeLock().lock();
             if ((mBluetooth == null) && (!mBinding)) {
+                Slog.d(TAG, "binding Bluetooth service");
                 //Start bind timeout and bind
                 Message timeoutMsg = mHandler.obtainMessage(MESSAGE_TIMEOUT_BIND);
                 mHandler.sendMessageDelayed(timeoutMsg, TIMEOUT_BIND_MS);
@@ -2493,6 +2586,12 @@
             writer.println("  " + app.getPackageName());
         }
 
+        writer.println("\nBluetoothManagerService:");
+        writer.println("  mEnable:" + mEnable);
+        writer.println("  mQuietEnable:" + mQuietEnable);
+        writer.println("  mEnableExternal:" + mEnableExternal);
+        writer.println("  mQuietEnableExternal:" + mQuietEnableExternal);
+
         writer.println("");
         writer.flush();
         if (args.length == 0) {
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index b89b1eb..237a961 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -40,6 +40,7 @@
 import static android.net.NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY;
 import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
 import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
+import static android.net.NetworkCapabilities.TRANSPORT_TEST;
 import static android.net.NetworkCapabilities.TRANSPORT_VPN;
 import static android.net.NetworkPolicyManager.RULE_NONE;
 import static android.net.NetworkPolicyManager.uidRulesToString;
@@ -50,6 +51,7 @@
 
 import static java.util.Map.Entry;
 
+import android.Manifest;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.AppOpsManager;
@@ -110,6 +112,7 @@
 import android.net.PrivateDnsConfigParcel;
 import android.net.ProxyInfo;
 import android.net.RouteInfo;
+import android.net.RouteInfoParcel;
 import android.net.SocketKeepalive;
 import android.net.TetheringManager;
 import android.net.UidRange;
@@ -120,6 +123,7 @@
 import android.net.metrics.NetworkEvent;
 import android.net.netlink.InetDiagMessage;
 import android.net.shared.PrivateDnsConfig;
+import android.net.util.LinkPropertiesUtils.CompareOrUpdateResult;
 import android.net.util.LinkPropertiesUtils.CompareResult;
 import android.net.util.MultinetworkPolicyTracker;
 import android.net.util.NetdService;
@@ -1710,7 +1714,7 @@
         }
 
         if (checkSettingsPermission(callerPid, callerUid)) {
-            return lp.makeSensitiveFieldsParcelingCopy();
+            return new LinkProperties(lp, true /* parcelSensitiveFields */);
         }
 
         final LinkProperties newLp = new LinkProperties(lp);
@@ -2237,14 +2241,9 @@
             if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {
                 final NetworkInfo ni = intent.getParcelableExtra(
                         ConnectivityManager.EXTRA_NETWORK_INFO);
-                if (ni.getType() == ConnectivityManager.TYPE_MOBILE_SUPL) {
-                    intent.setAction(ConnectivityManager.CONNECTIVITY_ACTION_SUPL);
-                    intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
-                } else {
-                    BroadcastOptions opts = BroadcastOptions.makeBasic();
-                    opts.setMaxManifestReceiverApiLevel(Build.VERSION_CODES.M);
-                    options = opts.toBundle();
-                }
+                final BroadcastOptions opts = BroadcastOptions.makeBasic();
+                opts.setMaxManifestReceiverApiLevel(Build.VERSION_CODES.M);
+                options = opts.toBundle();
                 final IBatteryStats bs = mDeps.getBatteryStatsService();
                 try {
                     bs.noteConnectivityChanged(intent.getIntExtra(
@@ -2705,10 +2704,18 @@
 
             switch (msg.what) {
                 case NetworkAgent.EVENT_NETWORK_CAPABILITIES_CHANGED: {
-                    final NetworkCapabilities networkCapabilities = (NetworkCapabilities) msg.obj;
+                    NetworkCapabilities networkCapabilities = (NetworkCapabilities) msg.obj;
                     if (networkCapabilities.hasConnectivityManagedCapability()) {
                         Slog.wtf(TAG, "BUG: " + nai + " has CS-managed capability.");
                     }
+                    if (networkCapabilities.hasTransport(TRANSPORT_TEST)) {
+                        // Make sure the original object is not mutated. NetworkAgent normally
+                        // makes a copy of the capabilities when sending the message through
+                        // the Messenger, but if this ever changes, not making a defensive copy
+                        // here will give attack vectors to clients using this code path.
+                        networkCapabilities = new NetworkCapabilities(networkCapabilities);
+                        networkCapabilities.restrictCapabilitesForTestNetwork();
+                    }
                     updateCapabilities(nai.getCurrentScore(), nai, networkCapabilities);
                     break;
                 }
@@ -5333,7 +5340,7 @@
     // specific SSID/SignalStrength, or the calling app has permission to do so.
     private void ensureSufficientPermissionsForRequest(NetworkCapabilities nc,
             int callerPid, int callerUid, String callerPackageName) {
-        if (null != nc.getSSID() && !checkSettingsPermission(callerPid, callerUid)) {
+        if (null != nc.getSsid() && !checkSettingsPermission(callerPid, callerUid)) {
             throw new SecurityException("Insufficient permissions to request a specific SSID");
         }
 
@@ -5402,6 +5409,9 @@
     public NetworkRequest requestNetwork(NetworkCapabilities networkCapabilities,
             Messenger messenger, int timeoutMs, IBinder binder, int legacyType,
             @NonNull String callingPackageName) {
+        if (legacyType != TYPE_NONE && !checkNetworkStackPermission()) {
+            throw new SecurityException("Insufficient permissions to specify legacy type");
+        }
         final int callingUid = Binder.getCallingUid();
         final NetworkRequest.Type type = (networkCapabilities == null)
                 ? NetworkRequest.Type.TRACK_DEFAULT
@@ -5778,7 +5788,16 @@
     public Network registerNetworkAgent(Messenger messenger, NetworkInfo networkInfo,
             LinkProperties linkProperties, NetworkCapabilities networkCapabilities,
             int currentScore, NetworkAgentConfig networkAgentConfig, int providerId) {
-        enforceNetworkFactoryPermission();
+        if (networkCapabilities.hasTransport(TRANSPORT_TEST)) {
+            enforceAnyPermissionOf(Manifest.permission.MANAGE_TEST_NETWORKS);
+            // Strictly, sanitizing here is unnecessary as the capabilities will be sanitized in
+            // the call to mixInCapabilities below anyway, but sanitizing here means the NAI never
+            // sees capabilities that may be malicious, which might prevent mistakes in the future.
+            networkCapabilities = new NetworkCapabilities(networkCapabilities);
+            networkCapabilities.restrictCapabilitesForTestNetwork();
+        } else {
+            enforceNetworkFactoryPermission();
+        }
 
         LinkProperties lp = new LinkProperties(linkProperties);
         lp.ensureDirectlyConnectedRoutes();
@@ -5793,7 +5812,7 @@
         nai.getAndSetNetworkCapabilities(mixInCapabilities(nai, nc));
         final String extraInfo = networkInfo.getExtraInfo();
         final String name = TextUtils.isEmpty(extraInfo)
-                ? nai.networkCapabilities.getSSID() : extraInfo;
+                ? nai.networkCapabilities.getSsid() : extraInfo;
         if (DBG) log("registerNetworkAgent " + nai);
         final long token = Binder.clearCallingIdentity();
         try {
@@ -5951,15 +5970,49 @@
         }
     }
 
+    // TODO: move to frameworks/libs/net.
+    private RouteInfoParcel convertRouteInfo(RouteInfo route) {
+        final String nextHop;
+
+        switch (route.getType()) {
+            case RouteInfo.RTN_UNICAST:
+                if (route.hasGateway()) {
+                    nextHop = route.getGateway().getHostAddress();
+                } else {
+                    nextHop = INetd.NEXTHOP_NONE;
+                }
+                break;
+            case RouteInfo.RTN_UNREACHABLE:
+                nextHop = INetd.NEXTHOP_UNREACHABLE;
+                break;
+            case RouteInfo.RTN_THROW:
+                nextHop = INetd.NEXTHOP_THROW;
+                break;
+            default:
+                nextHop = INetd.NEXTHOP_NONE;
+                break;
+        }
+
+        final RouteInfoParcel rip = new RouteInfoParcel();
+        rip.ifName = route.getInterface();
+        rip.destination = route.getDestination().toString();
+        rip.nextHop = nextHop;
+        rip.mtu = route.getMtu();
+
+        return rip;
+    }
+
     /**
      * Have netd update routes from oldLp to newLp.
      * @return true if routes changed between oldLp and newLp
      */
     private boolean updateRoutes(LinkProperties newLp, LinkProperties oldLp, int netId) {
-        // Compare the route diff to determine which routes should be added and removed.
-        CompareResult<RouteInfo> routeDiff = new CompareResult<>(
-                oldLp != null ? oldLp.getAllRoutes() : null,
-                newLp != null ? newLp.getAllRoutes() : null);
+        // compare the route diff to determine which routes have been updated
+        final CompareOrUpdateResult<RouteInfo.RouteKey, RouteInfo> routeDiff =
+                new CompareOrUpdateResult<>(
+                        oldLp != null ? oldLp.getAllRoutes() : null,
+                        newLp != null ? newLp.getAllRoutes() : null,
+                        (r) -> r.getRouteKey());
 
         // add routes before removing old in case it helps with continuous connectivity
 
@@ -5968,10 +6021,10 @@
             if (route.hasGateway()) continue;
             if (VDBG || DDBG) log("Adding Route [" + route + "] to network " + netId);
             try {
-                mNMS.addRoute(netId, route);
+                mNetd.networkAddRouteParcel(netId, convertRouteInfo(route));
             } catch (Exception e) {
                 if ((route.getDestination().getAddress() instanceof Inet4Address) || VDBG) {
-                    loge("Exception in addRoute for non-gateway: " + e);
+                    loge("Exception in networkAddRouteParcel for non-gateway: " + e);
                 }
             }
         }
@@ -5979,10 +6032,10 @@
             if (!route.hasGateway()) continue;
             if (VDBG || DDBG) log("Adding Route [" + route + "] to network " + netId);
             try {
-                mNMS.addRoute(netId, route);
+                mNetd.networkAddRouteParcel(netId, convertRouteInfo(route));
             } catch (Exception e) {
                 if ((route.getGateway() instanceof Inet4Address) || VDBG) {
-                    loge("Exception in addRoute for gateway: " + e);
+                    loge("Exception in networkAddRouteParcel for gateway: " + e);
                 }
             }
         }
@@ -5990,12 +6043,22 @@
         for (RouteInfo route : routeDiff.removed) {
             if (VDBG || DDBG) log("Removing Route [" + route + "] from network " + netId);
             try {
-                mNMS.removeRoute(netId, route);
+                mNetd.networkRemoveRouteParcel(netId, convertRouteInfo(route));
             } catch (Exception e) {
-                loge("Exception in removeRoute: " + e);
+                loge("Exception in networkRemoveRouteParcel: " + e);
             }
         }
-        return !routeDiff.added.isEmpty() || !routeDiff.removed.isEmpty();
+
+        for (RouteInfo route : routeDiff.updated) {
+            if (VDBG || DDBG) log("Updating Route [" + route + "] from network " + netId);
+            try {
+                mNetd.networkUpdateRouteParcel(netId, convertRouteInfo(route));
+            } catch (Exception e) {
+                loge("Exception in networkUpdateRouteParcel: " + e);
+            }
+        }
+        return !routeDiff.added.isEmpty() || !routeDiff.removed.isEmpty()
+                || !routeDiff.updated.isEmpty();
     }
 
     private void updateDnses(LinkProperties newLp, LinkProperties oldLp, int netId) {
@@ -7904,10 +7967,13 @@
             return false;
         }
 
+        final Network[] underlyingNetworks;
         synchronized (mVpns) {
-            if (getVpnIfOwner(callbackUid) != null) {
-                return true;
-            }
+            final Vpn vpn = getVpnIfOwner(callbackUid);
+            underlyingNetworks = (vpn == null) ? null : vpn.getUnderlyingNetworks();
+        }
+        if (underlyingNetworks != null) {
+            if (Arrays.asList(underlyingNetworks).contains(nai.network)) return true;
         }
 
         // Administrator UIDs also contains the Owner UID
diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java
index 1bb3c3a..0ddfa1c 100644
--- a/services/core/java/com/android/server/NetworkManagementService.java
+++ b/services/core/java/com/android/server/NetworkManagementService.java
@@ -886,6 +886,7 @@
 
     @Override
     public void setIPv6AddrGenMode(String iface, int mode) throws ServiceSpecificException {
+        NetworkStack.checkNetworkStackPermission(mContext);
         try {
             mNetdService.setIPv6AddrGenMode(iface, mode);
         } catch (RemoteException e) {
diff --git a/services/core/java/com/android/server/NetworkScoreService.java b/services/core/java/com/android/server/NetworkScoreService.java
index d1d1cb3..3443918 100644
--- a/services/core/java/com/android/server/NetworkScoreService.java
+++ b/services/core/java/com/android/server/NetworkScoreService.java
@@ -760,12 +760,11 @@
     @Override
     public String getActiveScorerPackage() {
         enforceSystemOrHasScoreNetworks();
-        synchronized (mServiceConnectionLock) {
-            if (mServiceConnection != null) {
-                return mServiceConnection.getPackageName();
-            }
+        NetworkScorerAppData appData = mNetworkScorerAppManager.getActiveScorer();
+        if (appData == null) {
+          return null;
         }
-        return null;
+        return appData.getRecommendationServicePackageName();
     }
 
     /**
@@ -775,13 +774,7 @@
     public NetworkScorerAppData getActiveScorer() {
         // Only the system can access this data.
         enforceSystemOnly();
-        synchronized (mServiceConnectionLock) {
-            if (mServiceConnection != null) {
-                return mServiceConnection.getAppData();
-            }
-        }
-
-        return null;
+        return mNetworkScorerAppManager.getActiveScorer();
     }
 
     /**
diff --git a/services/core/java/com/android/server/OWNERS b/services/core/java/com/android/server/OWNERS
index 76e0c13..8099f8f 100644
--- a/services/core/java/com/android/server/OWNERS
+++ b/services/core/java/com/android/server/OWNERS
@@ -1,5 +1,5 @@
 # Connectivity / Networking
-per-file ConnectivityService.java,NetworkManagementService.java,NsdService.java = codewiz@google.com, ek@google.com, jchalard@google.com, lorenzo@google.com, reminv@google.com, satk@google.com
+per-file ConnectivityService.java,NetworkManagementService.java,NsdService.java = codewiz@google.com, ek@google.com, jchalard@google.com, junyulai@google.com, lorenzo@google.com, reminv@google.com, satk@google.com
 
 # Vibrator / Threads
 per-file VibratorService.java, DisplayThread.java = michaelwr@google.com
diff --git a/services/core/java/com/android/server/PackageWatchdog.java b/services/core/java/com/android/server/PackageWatchdog.java
index 41a104c..d9e7c38 100644
--- a/services/core/java/com/android/server/PackageWatchdog.java
+++ b/services/core/java/com/android/server/PackageWatchdog.java
@@ -1062,7 +1062,12 @@
         public void updatePackagesLocked(List<MonitoredPackage> packages) {
             for (int pIndex = 0; pIndex < packages.size(); pIndex++) {
                 MonitoredPackage p = packages.get(pIndex);
-                this.packages.put(p.getName(), p);
+                MonitoredPackage existingPackage = this.packages.get(p.getName());
+                if (existingPackage != null) {
+                    existingPackage.updateHealthCheckDuration(p.mDurationMs);
+                } else {
+                    this.packages.put(p.getName(), p);
+                }
             }
         }
 
@@ -1331,6 +1336,12 @@
             return updateHealthCheckStateLocked();
         }
 
+        /** Explicitly update the monitoring duration of the package. */
+        @GuardedBy("mLock")
+        public void updateHealthCheckDuration(long newDurationMs) {
+            mDurationMs = newDurationMs;
+        }
+
         /**
          * Marks the health check as passed and transitions to {@link HealthCheckState.PASSED}
          * if not yet {@link HealthCheckState.FAILED}.
diff --git a/services/core/java/com/android/server/PinnerService.java b/services/core/java/com/android/server/PinnerService.java
index cea3251..3148a62 100644
--- a/services/core/java/com/android/server/PinnerService.java
+++ b/services/core/java/com/android/server/PinnerService.java
@@ -103,7 +103,7 @@
     private static boolean PROP_PIN_CAMERA =
             DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_RUNTIME_NATIVE_BOOT,
                                     "pin_camera",
-                                    SystemProperties.getBoolean("pinner.pin_camera", true));
+                                    SystemProperties.getBoolean("pinner.pin_camera", false));
     // Pin using pinlist.meta when pinning apps.
     private static boolean PROP_PIN_PINLIST = SystemProperties.getBoolean(
             "pinner.use_pinlist", true);
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index 5a056d3..9018caa 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -43,6 +43,7 @@
 import static android.os.storage.OnObbStateChangeListener.MOUNTED;
 import static android.os.storage.OnObbStateChangeListener.UNMOUNTED;
 import static android.os.storage.StorageManager.PROP_FUSE;
+import static android.os.storage.StorageManager.PROP_LEGACY_OP_STICKY;
 import static android.os.storage.StorageManager.PROP_SETTINGS_FUSE;
 
 import static com.android.internal.util.XmlUtils.readIntAttribute;
@@ -155,6 +156,7 @@
 import com.android.internal.util.Preconditions;
 import com.android.internal.widget.LockPatternUtils;
 import com.android.server.pm.Installer;
+import com.android.server.pm.parsing.pkg.AndroidPackage;
 import com.android.server.storage.AppFuseBridge;
 import com.android.server.storage.StorageSessionController;
 import com.android.server.storage.StorageSessionController.ExternalStorageServiceException;
@@ -682,6 +684,7 @@
     private static final int H_ABORT_IDLE_MAINT = 12;
     private static final int H_BOOT_COMPLETED = 13;
     private static final int H_COMPLETE_UNLOCK_USER = 14;
+    private static final int H_VOLUME_STATE_CHANGED = 15;
 
     class StorageManagerServiceHandler extends Handler {
         public StorageManagerServiceHandler(Looper looper) {
@@ -805,6 +808,11 @@
                     completeUnlockUser((int) msg.obj);
                     break;
                 }
+                case H_VOLUME_STATE_CHANGED: {
+                    final SomeArgs args = (SomeArgs) msg.obj;
+                    onVolumeStateChangedInternal((VolumeInfo) args.arg1, (int) args.arg2,
+                            (int) args.arg3);
+                }
             }
         }
     }
@@ -896,6 +904,7 @@
                     refreshIsolatedStorageSettings();
                 }
             });
+        updateLegacyStorageOpSticky();
         // For now, simply clone property when it changes
         DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_STORAGE_NATIVE_BOOT,
                 mContext.getMainExecutor(), (properties) -> {
@@ -1323,7 +1332,11 @@
                     final int oldState = vol.state;
                     final int newState = state;
                     vol.state = newState;
-                    onVolumeStateChangedLocked(vol, oldState, newState);
+                    final SomeArgs args = SomeArgs.obtain();
+                    args.arg1 = vol;
+                    args.arg2 = oldState;
+                    args.arg3 = newState;
+                    mHandler.obtainMessage(H_VOLUME_STATE_CHANGED, args).sendToTarget();
                 }
             }
         }
@@ -1496,78 +1509,89 @@
         return true;
     }
 
-    @GuardedBy("mLock")
-    private void onVolumeStateChangedLocked(VolumeInfo vol, int oldState, int newState) {
-        if (vol.type == VolumeInfo.TYPE_EMULATED && newState != VolumeInfo.STATE_MOUNTED) {
-            mFuseMountedUser.remove(vol.getMountUserId());
-        }
-        // Remember that we saw this volume so we're ready to accept user
-        // metadata, or so we can annoy them when a private volume is ejected
-        if (!TextUtils.isEmpty(vol.fsUuid)) {
-            VolumeRecord rec = mRecords.get(vol.fsUuid);
-            if (rec == null) {
-                rec = new VolumeRecord(vol.type, vol.fsUuid);
-                rec.partGuid = vol.partGuid;
-                rec.createdMillis = System.currentTimeMillis();
-                if (vol.type == VolumeInfo.TYPE_PRIVATE) {
-                    rec.nickname = vol.disk.getDescription();
-                }
-                mRecords.put(rec.fsUuid, rec);
-            } else {
-                // Handle upgrade case where we didn't store partition GUID
-                if (TextUtils.isEmpty(rec.partGuid)) {
+    private void onVolumeStateChangedInternal(VolumeInfo vol, int oldState, int newState) {
+        synchronized (mLock) {
+            if (vol.type == VolumeInfo.TYPE_EMULATED && newState != VolumeInfo.STATE_MOUNTED) {
+                mFuseMountedUser.remove(vol.getMountUserId());
+            }
+            // Remember that we saw this volume so we're ready to accept user
+            // metadata, or so we can annoy them when a private volume is ejected
+            if (!TextUtils.isEmpty(vol.fsUuid)) {
+                VolumeRecord rec = mRecords.get(vol.fsUuid);
+                if (rec == null) {
+                    rec = new VolumeRecord(vol.type, vol.fsUuid);
                     rec.partGuid = vol.partGuid;
+                    rec.createdMillis = System.currentTimeMillis();
+                    if (vol.type == VolumeInfo.TYPE_PRIVATE) {
+                        rec.nickname = vol.disk.getDescription();
+                    }
+                    mRecords.put(rec.fsUuid, rec);
+                } else {
+                    // Handle upgrade case where we didn't store partition GUID
+                    if (TextUtils.isEmpty(rec.partGuid)) {
+                        rec.partGuid = vol.partGuid;
+                    }
+                }
+
+                rec.lastSeenMillis = System.currentTimeMillis();
+                writeSettingsLocked();
+            }
+        }
+        // This is a blocking call to Storage Service which needs to process volume state changed
+        // before notifying other listeners.
+        // Intentionally called without the mLock to avoid deadlocking from the Storage Service.
+        try {
+            mStorageSessionController.notifyVolumeStateChanged(vol);
+        } catch (ExternalStorageServiceException e) {
+            Log.e(TAG, "Failed to notify volume state changed to the Storage Service", e);
+        }
+        synchronized (mLock) {
+            mCallbacks.notifyVolumeStateChanged(vol, oldState, newState);
+
+            // Do not broadcast before boot has completed to avoid launching the
+            // processes that receive the intent unnecessarily.
+            if (mBootCompleted && isBroadcastWorthy(vol)) {
+                final Intent intent = new Intent(VolumeInfo.ACTION_VOLUME_STATE_CHANGED);
+                intent.putExtra(VolumeInfo.EXTRA_VOLUME_ID, vol.id);
+                intent.putExtra(VolumeInfo.EXTRA_VOLUME_STATE, newState);
+                intent.putExtra(VolumeRecord.EXTRA_FS_UUID, vol.fsUuid);
+                intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT
+                        | Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
+                mHandler.obtainMessage(H_INTERNAL_BROADCAST, intent).sendToTarget();
+            }
+
+            final String oldStateEnv = VolumeInfo.getEnvironmentForState(oldState);
+            final String newStateEnv = VolumeInfo.getEnvironmentForState(newState);
+
+            if (!Objects.equals(oldStateEnv, newStateEnv)) {
+                // Kick state changed event towards all started users. Any users
+                // started after this point will trigger additional
+                // user-specific broadcasts.
+                for (int userId : mSystemUnlockedUsers) {
+                    if (vol.isVisibleForRead(userId)) {
+                        final StorageVolume userVol = vol.buildStorageVolume(mContext, userId,
+                                false);
+                        mHandler.obtainMessage(H_VOLUME_BROADCAST, userVol).sendToTarget();
+
+                        mCallbacks.notifyStorageStateChanged(userVol.getPath(), oldStateEnv,
+                                newStateEnv);
+                    }
                 }
             }
 
-            rec.lastSeenMillis = System.currentTimeMillis();
-            writeSettingsLocked();
-        }
-
-        mCallbacks.notifyVolumeStateChanged(vol, oldState, newState);
-
-        // Do not broadcast before boot has completed to avoid launching the
-        // processes that receive the intent unnecessarily.
-        if (mBootCompleted && isBroadcastWorthy(vol)) {
-            final Intent intent = new Intent(VolumeInfo.ACTION_VOLUME_STATE_CHANGED);
-            intent.putExtra(VolumeInfo.EXTRA_VOLUME_ID, vol.id);
-            intent.putExtra(VolumeInfo.EXTRA_VOLUME_STATE, newState);
-            intent.putExtra(VolumeRecord.EXTRA_FS_UUID, vol.fsUuid);
-            intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT
-                    | Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
-            mHandler.obtainMessage(H_INTERNAL_BROADCAST, intent).sendToTarget();
-        }
-
-        final String oldStateEnv = VolumeInfo.getEnvironmentForState(oldState);
-        final String newStateEnv = VolumeInfo.getEnvironmentForState(newState);
-
-        if (!Objects.equals(oldStateEnv, newStateEnv)) {
-            // Kick state changed event towards all started users. Any users
-            // started after this point will trigger additional
-            // user-specific broadcasts.
-            for (int userId : mSystemUnlockedUsers) {
-                if (vol.isVisibleForRead(userId)) {
-                    final StorageVolume userVol = vol.buildStorageVolume(mContext, userId, false);
-                    mHandler.obtainMessage(H_VOLUME_BROADCAST, userVol).sendToTarget();
-
-                    mCallbacks.notifyStorageStateChanged(userVol.getPath(), oldStateEnv,
-                            newStateEnv);
-                }
-            }
-        }
-
-        if ((vol.type == VolumeInfo.TYPE_PUBLIC || vol.type == VolumeInfo.TYPE_STUB)
+            if ((vol.type == VolumeInfo.TYPE_PUBLIC || vol.type == VolumeInfo.TYPE_STUB)
                     && vol.state == VolumeInfo.STATE_EJECTING) {
-            // TODO: this should eventually be handled by new ObbVolume state changes
-            /*
-             * Some OBBs might have been unmounted when this volume was
-             * unmounted, so send a message to the handler to let it know to
-             * remove those from the list of mounted OBBS.
-             */
-            mObbActionHandler.sendMessage(mObbActionHandler.obtainMessage(
-                    OBB_FLUSH_MOUNT_STATE, vol.path));
+                // TODO: this should eventually be handled by new ObbVolume state changes
+                /*
+                 * Some OBBs might have been unmounted when this volume was
+                 * unmounted, so send a message to the handler to let it know to
+                 * remove those from the list of mounted OBBS.
+                 */
+                mObbActionHandler.sendMessage(mObbActionHandler.obtainMessage(
+                        OBB_FLUSH_MOUNT_STATE, vol.path));
+            }
+            maybeLogMediaMount(vol, newState);
         }
-        maybeLogMediaMount(vol, newState);
     }
 
     private void maybeLogMediaMount(VolumeInfo vol, int newState) {
@@ -1757,6 +1781,13 @@
         }
     }
 
+    private void updateLegacyStorageOpSticky() {
+        final boolean propertyValue = DeviceConfig.getBoolean(
+                DeviceConfig.NAMESPACE_STORAGE_NATIVE_BOOT,
+                "legacy_storage_op_sticky", true);
+        SystemProperties.set(PROP_LEGACY_OP_STICKY, propertyValue ? "true" : "false");
+    }
+
     private void start() {
         connectStoraged();
         connectVold();
@@ -3247,6 +3278,25 @@
         }
     }
 
+    @Override
+    public void fixupAppDir(String path) {
+        final Matcher matcher = KNOWN_APP_DIR_PATHS.matcher(path);
+        if (matcher.matches()) {
+            AndroidPackage pkg = mPmInternal.getPackage(matcher.group(3));
+            if (pkg != null) {
+                try {
+                    mVold.fixupAppDir(path + "/", pkg.getUid());
+                } catch (RemoteException | ServiceSpecificException e) {
+                    Log.e(TAG, "Failed to fixup app dir for " + pkg.getPackageName(), e);
+                }
+            } else {
+                Log.e(TAG, "Can't find package belonging to " + path);
+            }
+        } else {
+            Log.e(TAG, "Path " + path + " is not a valid application-specific directory");
+        }
+    }
+
     /** Not thread safe */
     class AppFuseMountScope extends AppFuseBridge.MountScope {
         private boolean mMounted = false;
@@ -4139,19 +4189,6 @@
             boolean hasLegacy = mIAppOpsService.checkOperation(OP_LEGACY_STORAGE,
                     uid, packageName) == MODE_ALLOWED;
 
-            // Hack(b/147137425): we have to honor hasRequestedLegacyExternalStorage for a short
-            // while to enable 2 cases.
-            // 1) Apps that want to be in scoped storage in R, but want to opt out in Q devices,
-            // because they want to use raw file paths, would fail until fuse is enabled by default.
-            // 2) Test apps that target current sdk will fail. They would fail even after fuse is
-            // enabled, but we are fixing it with b/142395442. We are not planning to enable
-            // fuse by default until b/142395442 is fixed.
-            if (!hasLegacy && !mIsFuseEnabled) {
-                ApplicationInfo ai = mIPackageManager.getApplicationInfo(packageName,
-                        0, UserHandle.getUserId(uid));
-                hasLegacy = (ai != null && ai.hasRequestedLegacyExternalStorage());
-            }
-
             if (hasLegacy && hasWrite) {
                 return Zygote.MOUNT_EXTERNAL_WRITE;
             } else if (hasLegacy && hasRead) {
diff --git a/services/core/java/com/android/server/SystemServerInitThreadPool.java b/services/core/java/com/android/server/SystemServerInitThreadPool.java
index 8f914fe..94d6b13 100644
--- a/services/core/java/com/android/server/SystemServerInitThreadPool.java
+++ b/services/core/java/com/android/server/SystemServerInitThreadPool.java
@@ -25,6 +25,7 @@
 import com.android.internal.util.ConcurrentUtils;
 import com.android.internal.util.Preconditions;
 import com.android.server.am.ActivityManagerService;
+import com.android.server.utils.TimingsTraceAndSlog;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -93,6 +94,8 @@
             mPendingTasks.add(description);
         }
         return mService.submit(() -> {
+            TimingsTraceAndSlog traceLog = TimingsTraceAndSlog.newAsyncLog();
+            traceLog.traceBegin("InitThreadPoolExec:" + description);
             if (IS_DEBUGGABLE) {
                 Slog.d(TAG, "Started executing " + description);
             }
@@ -100,6 +103,7 @@
                 runnable.run();
             } catch (RuntimeException e) {
                 Slog.e(TAG, "Failure in " + description + ": " + e, e);
+                traceLog.traceEnd();
                 throw e;
             }
             synchronized (mPendingTasks) {
@@ -108,6 +112,7 @@
             if (IS_DEBUGGABLE) {
                 Slog.d(TAG, "Finished executing " + description);
             }
+            traceLog.traceEnd();
         });
     }
 
@@ -132,7 +137,10 @@
      */
     static void shutdown() {
         synchronized (LOCK) {
+            TimingsTraceAndSlog t = new TimingsTraceAndSlog();
+            t.traceBegin("WaitInitThreadPoolShutdown");
             if (sInstance == null) {
+                t.traceEnd();
                 Slog.wtf(TAG, "Already shutdown", new Exception());
                 return;
             }
@@ -147,6 +155,7 @@
             } catch (InterruptedException e) {
                 Thread.currentThread().interrupt();
                 dumpStackTraces();
+                t.traceEnd();
                 throw new IllegalStateException(TAG + " init interrupted");
             }
             if (!terminated) {
@@ -160,11 +169,13 @@
                 synchronized (sInstance.mPendingTasks) {
                     copy.addAll(sInstance.mPendingTasks);
                 }
+                t.traceEnd();
                 throw new IllegalStateException("Cannot shutdown. Unstarted tasks "
                         + unstartedRunnables + " Unfinished tasks " + copy);
             }
             sInstance = null; // Make eligible for GC
             Slog.d(TAG, "Shutdown successful");
+            t.traceEnd();
         }
     }
 
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index 7dedad7..895282c 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -61,7 +61,6 @@
 import android.telephony.CellSignalStrengthWcdma;
 import android.telephony.DataFailCause;
 import android.telephony.DisconnectCause;
-import android.telephony.DisplayInfo;
 import android.telephony.LocationAccessPolicy;
 import android.telephony.PhoneCapability;
 import android.telephony.PhoneStateListener;
@@ -73,6 +72,7 @@
 import android.telephony.SignalStrength;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyDisplayInfo;
 import android.telephony.TelephonyManager;
 import android.telephony.data.ApnSetting;
 import android.telephony.emergency.EmergencyNumber;
@@ -205,7 +205,7 @@
 
     private boolean[] mUserMobileDataState;
 
-    private DisplayInfo[] mDisplayInfos;
+    private TelephonyDisplayInfo[] mTelephonyDisplayInfos;
 
     private SignalStrength[] mSignalStrength;
 
@@ -446,7 +446,7 @@
         mCallAttributes = copyOf(mCallAttributes, mNumPhones);
         mOutgoingCallEmergencyNumber = copyOf(mOutgoingCallEmergencyNumber, mNumPhones);
         mOutgoingSmsEmergencyNumber = copyOf(mOutgoingSmsEmergencyNumber, mNumPhones);
-        mDisplayInfos = copyOf(mDisplayInfos, mNumPhones);
+        mTelephonyDisplayInfos = copyOf(mTelephonyDisplayInfos, mNumPhones);
 
         // ds -> ss switch.
         if (mNumPhones < oldNumPhones) {
@@ -486,7 +486,7 @@
             mBackgroundCallState[i] = PreciseCallState.PRECISE_CALL_STATE_IDLE;
             mPreciseDataConnectionStates.add(new HashMap<Integer, PreciseDataConnectionState>());
             mBarringInfo.add(i, new BarringInfo());
-            mDisplayInfos[i] = null;
+            mTelephonyDisplayInfos[i] = null;
         }
     }
 
@@ -545,7 +545,7 @@
         mOutgoingCallEmergencyNumber = new EmergencyNumber[numPhones];
         mOutgoingSmsEmergencyNumber = new EmergencyNumber[numPhones];
         mBarringInfo = new ArrayList<>();
-        mDisplayInfos = new DisplayInfo[numPhones];
+        mTelephonyDisplayInfos = new TelephonyDisplayInfo[numPhones];
         for (int i = 0; i < numPhones; i++) {
             mCallState[i] =  TelephonyManager.CALL_STATE_IDLE;
             mDataActivity[i] = TelephonyManager.DATA_ACTIVITY_NONE;
@@ -574,7 +574,7 @@
             mBackgroundCallState[i] = PreciseCallState.PRECISE_CALL_STATE_IDLE;
             mPreciseDataConnectionStates.add(new HashMap<Integer, PreciseDataConnectionState>());
             mBarringInfo.add(i, new BarringInfo());
-            mDisplayInfos[i] = null;
+            mTelephonyDisplayInfos[i] = null;
         }
 
         mAppOps = mContext.getSystemService(AppOpsManager.class);
@@ -987,8 +987,8 @@
                     }
                     if ((events & PhoneStateListener.LISTEN_DISPLAY_INFO_CHANGED) != 0) {
                         try {
-                            if (mDisplayInfos[phoneId] != null) {
-                                r.callback.onDisplayInfoChanged(mDisplayInfos[phoneId]);
+                            if (mTelephonyDisplayInfos[phoneId] != null) {
+                                r.callback.onDisplayInfoChanged(mTelephonyDisplayInfos[phoneId]);
                             }
                         } catch (RemoteException ex) {
                             remove(r.binder);
@@ -1393,7 +1393,7 @@
     public void notifyCarrierNetworkChange(boolean active) {
         // only CarrierService with carrier privilege rule should have the permission
         int[] subIds = Arrays.stream(SubscriptionManager.from(mContext)
-                    .getActiveAndHiddenSubscriptionIdList())
+                    .getCompleteActiveSubscriptionIdList())
                     .filter(i -> TelephonyPermissions.checkCarrierPrivilegeForSubId(mContext,
                             i)).toArray();
         if (ArrayUtils.isEmpty(subIds)) {
@@ -1522,28 +1522,28 @@
      *
      * @param phoneId Phone id
      * @param subId Subscription id
-     * @param displayInfo Display network info
+     * @param telephonyDisplayInfo Display network info
      *
-     * @see PhoneStateListener#onDisplayInfoChanged(DisplayInfo)
+     * @see PhoneStateListener#onDisplayInfoChanged(TelephonyDisplayInfo)
      */
     public void notifyDisplayInfoChanged(int phoneId, int subId,
-                                         @NonNull DisplayInfo displayInfo) {
+                                         @NonNull TelephonyDisplayInfo telephonyDisplayInfo) {
         if (!checkNotifyPermission("notifyDisplayInfoChanged()")) {
             return;
         }
         if (VDBG) {
             log("notifyDisplayInfoChanged: PhoneId=" + phoneId
-                    + " subId=" + subId + " displayInfo=" + displayInfo);
+                    + " subId=" + subId + " telephonyDisplayInfo=" + telephonyDisplayInfo);
         }
         synchronized (mRecords) {
             if (validatePhoneId(phoneId)) {
-                mDisplayInfos[phoneId] = displayInfo;
+                mTelephonyDisplayInfos[phoneId] = telephonyDisplayInfo;
                 for (Record r : mRecords) {
                     if (r.matchPhoneStateListenerEvent(
                             PhoneStateListener.LISTEN_DISPLAY_INFO_CHANGED)
                             && idMatch(r.subId, subId, phoneId)) {
                         try {
-                            r.callback.onDisplayInfoChanged(displayInfo);
+                            r.callback.onDisplayInfoChanged(telephonyDisplayInfo);
                         } catch (RemoteException ex) {
                             mRemoveList.add(r.binder);
                         }
@@ -2787,10 +2787,10 @@
             try {
                 if (VDBG) {
                     log("checkPossibleMissNotify: onDisplayInfoChanged phoneId="
-                            + phoneId + " dpi=" + mDisplayInfos[phoneId]);
+                            + phoneId + " dpi=" + mTelephonyDisplayInfos[phoneId]);
                 }
-                if (mDisplayInfos[phoneId] != null) {
-                    r.callback.onDisplayInfoChanged(mDisplayInfos[phoneId]);
+                if (mTelephonyDisplayInfos[phoneId] != null) {
+                    r.callback.onDisplayInfoChanged(mTelephonyDisplayInfos[phoneId]);
                 }
             } catch (RemoteException ex) {
                 mRemoveList.add(r.binder);
diff --git a/services/core/java/com/android/server/TestNetworkService.java b/services/core/java/com/android/server/TestNetworkService.java
index 81a1372..0ea7346 100644
--- a/services/core/java/com/android/server/TestNetworkService.java
+++ b/services/core/java/com/android/server/TestNetworkService.java
@@ -16,6 +16,9 @@
 
 package com.android.server;
 
+import static android.net.TestNetworkManager.TEST_TAP_PREFIX;
+import static android.net.TestNetworkManager.TEST_TUN_PREFIX;
+
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.content.Context;
@@ -60,8 +63,6 @@
 class TestNetworkService extends ITestNetworkManager.Stub {
     @NonNull private static final String TAG = TestNetworkService.class.getSimpleName();
     @NonNull private static final String TEST_NETWORK_TYPE = "TEST_NETWORK";
-    @NonNull private static final String TEST_TUN_PREFIX = "testtun";
-    @NonNull private static final String TEST_TAP_PREFIX = "testtap";
     @NonNull private static final AtomicInteger sTestTunIndex = new AtomicInteger();
 
     @NonNull private final Context mContext;
diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java
index 12a1a95..564f9f3 100644
--- a/services/core/java/com/android/server/UiModeManagerService.java
+++ b/services/core/java/com/android/server/UiModeManagerService.java
@@ -159,22 +159,13 @@
 
     public UiModeManagerService(Context context) {
         super(context);
+        mConfiguration.setToDefaults();
     }
 
     @VisibleForTesting
-    protected UiModeManagerService(Context context, WindowManagerInternal wm, AlarmManager am,
-                                   PowerManager pm, PowerManager.WakeLock wl, TwilightManager tm,
-                                   PowerManagerInternal localPowerManager,
-                                   boolean setupWizardComplete) {
-        super(context);
-        mWindowManager = wm;
-        mWakeLock = wl;
-        mTwilightManager = tm;
+    protected UiModeManagerService(Context context, boolean setupWizardComplete) {
+        this(context);
         mSetupWizardComplete = setupWizardComplete;
-        mAlarmManager = am;
-        mPowerManager = pm;
-        mLocalPowerManager = localPowerManager;
-        initPowerSave();
     }
 
     private static Intent buildHomeIntent(String category) {
@@ -249,8 +240,8 @@
     };
 
     /**
-     *  DO NOT USE DIRECTLY
-     *  see register registerScreenOffEvent and unregisterScreenOffEvent
+     * DO NOT USE DIRECTLY
+     * see register registerScreenOffEvent and unregisterScreenOffEvent
      */
     private final BroadcastReceiver mOnScreenOffHandler = new BroadcastReceiver() {
         @Override
@@ -333,34 +324,45 @@
     }
 
     @Override
+    public void onBootPhase(int phase) {
+        if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) {
+            synchronized (mLock) {
+                final Context context = getContext();
+                mSystemReady = true;
+                mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+                mWakeLock = mPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, TAG);
+                mWindowManager = LocalServices.getService(WindowManagerInternal.class);
+                mAlarmManager = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE);
+                mLocalPowerManager =
+                        LocalServices.getService(PowerManagerInternal.class);
+                mTwilightManager = getLocalService(TwilightManager.class);
+                initPowerSave();
+                mCarModeEnabled = mDockState == Intent.EXTRA_DOCK_STATE_CAR;
+                registerVrStateListener();
+                // register listeners
+                context.getContentResolver()
+                        .registerContentObserver(Secure.getUriFor(Secure.UI_NIGHT_MODE),
+                                false, mDarkThemeObserver, 0);
+                context.registerReceiver(mDockModeReceiver,
+                        new IntentFilter(Intent.ACTION_DOCK_EVENT));
+                IntentFilter batteryFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
+                context.registerReceiver(mBatteryReceiver, batteryFilter);
+                IntentFilter filter = new IntentFilter();
+                filter.addAction(Intent.ACTION_USER_SWITCHED);
+                context.registerReceiver(new UserSwitchedReceiver(), filter, null, mHandler);
+                updateConfigurationLocked();
+                applyConfigurationExternallyLocked();
+            }
+        }
+    }
+
+    @Override
     public void onStart() {
         final Context context = getContext();
-
-        mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
-        mWakeLock = mPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, TAG);
-        mWindowManager = LocalServices.getService(WindowManagerInternal.class);
-        mAlarmManager = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE);
-
         // If setup isn't complete for this user listen for completion so we can unblock
         // being able to send a night mode configuration change event
         verifySetupWizardCompleted();
 
-        context.registerReceiver(mDockModeReceiver,
-                new IntentFilter(Intent.ACTION_DOCK_EVENT));
-        IntentFilter batteryFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
-        context.registerReceiver(mBatteryReceiver, batteryFilter);
-
-        context.registerReceiver(mSettingsRestored,
-                new IntentFilter(Intent.ACTION_SETTING_RESTORED), null, mHandler);
-
-        mLocalPowerManager =
-                LocalServices.getService(PowerManagerInternal.class);
-        initPowerSave();
-
-        mTwilightManager = getLocalService(TwilightManager.class);
-
-        mConfiguration.setToDefaults();
-
         final Resources res = context.getResources();
         mDefaultUiModeType = res.getInteger(
                 com.android.internal.R.integer.config_defaultUiModeType);
@@ -383,21 +385,12 @@
         SystemServerInitThreadPool.submit(() -> {
             synchronized (mLock) {
                 updateNightModeFromSettingsLocked(context, res, UserHandle.getCallingUserId());
-                updateConfigurationLocked();
-                applyConfigurationExternallyLocked();
+                updateSystemProperties();
             }
 
         }, TAG + ".onStart");
         publishBinderService(Context.UI_MODE_SERVICE, mService);
         publishLocalService(UiModeManagerInternal.class, mLocalService);
-
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(Intent.ACTION_USER_SWITCHED);
-        context.registerReceiver(new UserSwitchedReceiver(), filter, null, mHandler);
-
-        context.getContentResolver().registerContentObserver(Secure.getUriFor(Secure.UI_NIGHT_MODE),
-                false, mDarkThemeObserver, 0);
-        mHandler.post(() -> updateSystemProperties());
     }
 
     private final BroadcastReceiver mSettingsRestored = new BroadcastReceiver() {
@@ -475,9 +468,10 @@
     /**
      * Updates the night mode setting in Settings.Global and returns if the value was successfully
      * changed.
+     *
      * @param context A valid context
-     * @param res A valid resource object
-     * @param userId The user to update the setting for
+     * @param res     A valid resource object
+     * @param userId  The user to update the setting for
      * @return True if the new value is different from the old value. False otherwise.
      */
     private boolean updateNightModeFromSettingsLocked(Context context, Resources res, int userId) {
@@ -493,12 +487,12 @@
                     Secure.UI_NIGHT_MODE_OVERRIDE_OFF, 0, userId) != 0;
             mCustomAutoNightModeStartMilliseconds = LocalTime.ofNanoOfDay(
                     Secure.getLongForUser(context.getContentResolver(),
-                    Secure.DARK_THEME_CUSTOM_START_TIME,
-                    DEFAULT_CUSTOM_NIGHT_START_TIME.toNanoOfDay() / 1000L, userId) * 1000);
+                            Secure.DARK_THEME_CUSTOM_START_TIME,
+                            DEFAULT_CUSTOM_NIGHT_START_TIME.toNanoOfDay() / 1000L, userId) * 1000);
             mCustomAutoNightModeEndMilliseconds = LocalTime.ofNanoOfDay(
                     Secure.getLongForUser(context.getContentResolver(),
-                    Secure.DARK_THEME_CUSTOM_END_TIME,
-                    DEFAULT_CUSTOM_NIGHT_END_TIME.toNanoOfDay() / 1000L, userId) * 1000);
+                            Secure.DARK_THEME_CUSTOM_END_TIME,
+                            DEFAULT_CUSTOM_NIGHT_END_TIME.toNanoOfDay() / 1000L, userId) * 1000);
         } else {
             mNightMode = defaultNightMode;
             mCustomAutoNightModeEndMilliseconds = DEFAULT_CUSTOM_NIGHT_END_TIME;
@@ -863,18 +857,6 @@
         }
     }
 
-    @Override
-    public void onBootPhase(int phase) {
-        if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) {
-            synchronized (mLock) {
-                mSystemReady = true;
-                mCarModeEnabled = mDockState == Intent.EXTRA_DOCK_STATE_CAR;
-                registerVrStateListener();
-                updateLocked(0, 0);
-            }
-        }
-    }
-
     /**
      * Updates the global car mode state.
      * The device is considered to be in car mode if there exists an app at any priority level which
@@ -931,7 +913,8 @@
                 // Anyone can disable the default priority.
                 isDefaultPriority
                 // If priority was enabled, only enabling package can disable it.
-                || isPriorityTracked && mCarModePackagePriority.get(priority).equals(packageName)
+                || isPriorityTracked && mCarModePackagePriority.get(priority).equals(
+                packageName)
                 // Disable all priorities flag can disable all regardless.
                 || isDisableAll;
         if (isChangeAllowed) {
@@ -1092,10 +1075,10 @@
 
         if (LOG) {
             Slog.d(TAG,
-                "updateConfigurationLocked: mDockState=" + mDockState
-                + "; mCarMode=" + mCarModeEnabled
-                + "; mNightMode=" + mNightMode
-                + "; uiMode=" + uiMode);
+                    "updateConfigurationLocked: mDockState=" + mDockState
+                    + "; mCarMode=" + mCarModeEnabled
+                    + "; mNightMode=" + mNightMode
+                    + "; uiMode=" + uiMode);
         }
 
         mCurUiMode = uiMode;
@@ -1291,9 +1274,9 @@
 
         if (LOG) {
             Slog.v(TAG, String.format(
-                "Handling broadcast result for action %s: enable=0x%08x, disable=0x%08x, "
-                    + "category=%s",
-                action, enableFlags, disableFlags, category));
+                    "Handling broadcast result for action %s: enable=0x%08x, disable=0x%08x, "
+                            + "category=%s",
+                    action, enableFlags, disableFlags, category));
         }
 
         sendConfigurationAndStartDreamOrDockAppLocked(category);
@@ -1356,8 +1339,8 @@
         // have no effect until the device is unlocked.
         if (mStatusBarManager != null) {
             mStatusBarManager.disable(mCarModeEnabled
-                ? StatusBarManager.DISABLE_NOTIFICATION_TICKER
-                : StatusBarManager.DISABLE_NONE);
+                    ? StatusBarManager.DISABLE_NOTIFICATION_TICKER
+                    : StatusBarManager.DISABLE_NONE);
         }
 
         if (mNotificationManager == null) {
@@ -1382,7 +1365,8 @@
                         .setContentText(
                                 context.getString(R.string.car_mode_disable_notification_message))
                         .setContentIntent(
-                                PendingIntent.getActivityAsUser(context, 0, carModeOffIntent, 0,
+                                PendingIntent.getActivityAsUser(context, 0,
+                                        carModeOffIntent, 0,
                                         null, UserHandle.CURRENT));
                 mNotificationManager.notifyAsUser(null,
                         SystemMessage.NOTE_CAR_MODE_DISABLE, n.build(), UserHandle.ALL);
diff --git a/services/core/java/com/android/server/VibratorService.java b/services/core/java/com/android/server/VibratorService.java
index dd9cc64..ac4a42c 100644
--- a/services/core/java/com/android/server/VibratorService.java
+++ b/services/core/java/com/android/server/VibratorService.java
@@ -605,15 +605,16 @@
     }
 
     @Override // Binder call
-    public boolean[] areEffectsSupported(int[] effectIds) {
-        // Return null to indicate that the HAL doesn't actually tell us what effects are
-        // supported.
+    public int[] areEffectsSupported(int[] effectIds) {
+        int[] supported = new int[effectIds.length];
         if (mSupportedEffects == null) {
-            return null;
-        }
-        boolean[] supported = new boolean[effectIds.length];
-        for (int i = 0; i < effectIds.length; i++) {
-            supported[i] = mSupportedEffects.contains(effectIds[i]);
+            Arrays.fill(supported, Vibrator.VIBRATION_EFFECT_SUPPORT_UNKNOWN);
+        } else {
+            for (int i = 0; i < effectIds.length; i++) {
+                supported[i] = mSupportedEffects.contains(effectIds[i])
+                        ? Vibrator.VIBRATION_EFFECT_SUPPORT_YES
+                        : Vibrator.VIBRATION_EFFECT_SUPPORT_NO;
+            }
         }
         return supported;
     }
diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java
index 0ebb5bb..d77bee3 100644
--- a/services/core/java/com/android/server/am/ActiveServices.java
+++ b/services/core/java/com/android/server/am/ActiveServices.java
@@ -1705,7 +1705,7 @@
                     if (acceptances > 0 ||  rejections > 0) {
                         FrameworkStatsLog.write(
                                 FrameworkStatsLog.FOREGROUND_SERVICE_APP_OP_SESSION_ENDED,
-                                mProcessRecord.uid, AppOpsManager.opToLoggingId(op),
+                                mProcessRecord.uid, op,
                                 modeToEnum(mAppOpModes.get(op)),
                                 acceptances, rejections
                         );
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index ebca1f7..38405e1 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -185,8 +185,6 @@
 import android.app.ProcessMemoryState;
 import android.app.ProfilerInfo;
 import android.app.WaitResult;
-import android.app.WindowConfiguration.ActivityType;
-import android.app.WindowConfiguration.WindowingMode;
 import android.app.backup.IBackupManager;
 import android.app.usage.UsageEvents;
 import android.app.usage.UsageEvents.Event;
@@ -579,6 +577,13 @@
     static final String EXTRA_DESCRIPTION = "android.intent.extra.DESCRIPTION";
     static final String EXTRA_BUGREPORT_TYPE = "android.intent.extra.BUGREPORT_TYPE";
 
+    /**
+     * The maximum number of bytes that {@link #setProcessStateSummary} accepts.
+     *
+     * @see {@link android.app.ActivityManager#setProcessStateSummary(byte[])}
+     */
+    static final int MAX_STATE_DATA_SIZE = 128;
+
     /** All system services */
     SystemServiceManager mSystemServiceManager;
 
@@ -3202,7 +3207,7 @@
         return mAtmInternal.compatibilityInfoForPackage(ai);
     }
 
-    private void enforceNotIsolatedCaller(String caller) {
+    /* package */ void enforceNotIsolatedCaller(String caller) {
         if (UserHandle.isIsolated(Binder.getCallingUid())) {
             throw new SecurityException("Isolated process not allowed to call " + caller);
         }
@@ -3887,6 +3892,18 @@
     public static File dumpStackTraces(ArrayList<Integer> firstPids,
             ProcessCpuTracker processCpuTracker, SparseArray<Boolean> lastPids,
             ArrayList<Integer> nativePids, StringWriter logExceptionCreatingFile) {
+        return dumpStackTraces(firstPids, processCpuTracker, lastPids, nativePids,
+                logExceptionCreatingFile, null);
+    }
+
+    /**
+     * @param firstPidOffsets Optional, when it's set, it receives the start/end offset
+     *                        of the very first pid to be dumped.
+     */
+    /* package */ static File dumpStackTraces(ArrayList<Integer> firstPids,
+            ProcessCpuTracker processCpuTracker, SparseArray<Boolean> lastPids,
+            ArrayList<Integer> nativePids, StringWriter logExceptionCreatingFile,
+            long[] firstPidOffsets) {
         ArrayList<Integer> extraPids = null;
 
         Slog.i(TAG, "dumpStackTraces pids=" + lastPids + " nativepids=" + nativePids);
@@ -3938,12 +3955,22 @@
             return null;
         }
 
-        dumpStackTraces(tracesFile.getAbsolutePath(), firstPids, nativePids, extraPids);
+        Pair<Long, Long> offsets = dumpStackTraces(
+                tracesFile.getAbsolutePath(), firstPids, nativePids, extraPids);
+        if (firstPidOffsets != null) {
+            if (offsets == null) {
+                firstPidOffsets[0] = firstPidOffsets[1] = -1;
+            } else {
+                firstPidOffsets[0] = offsets.first; // Start offset to the ANR trace file
+                firstPidOffsets[1] = offsets.second; // End offset to the ANR trace file
+            }
+        }
         return tracesFile;
     }
 
     @GuardedBy("ActivityManagerService.class")
     private static SimpleDateFormat sAnrFileDateFormat;
+    static final String ANR_FILE_PREFIX = "anr_";
 
     private static synchronized File createAnrDumpFile(File tracesDir) throws IOException {
         if (sAnrFileDateFormat == null) {
@@ -3951,7 +3978,7 @@
         }
 
         final String formattedDate = sAnrFileDateFormat.format(new Date());
-        final File anrFile = new File(tracesDir, "anr_" + formattedDate);
+        final File anrFile = new File(tracesDir, ANR_FILE_PREFIX + formattedDate);
 
         if (anrFile.createNewFile()) {
             FileUtils.setPermissions(anrFile.getAbsolutePath(), 0600, -1, -1); // -rw-------
@@ -4020,7 +4047,10 @@
         return SystemClock.elapsedRealtime() - timeStart;
     }
 
-    public static void dumpStackTraces(String tracesFile, ArrayList<Integer> firstPids,
+    /**
+     * @return The start/end offset of the trace of the very first PID
+     */
+    public static Pair<Long, Long> dumpStackTraces(String tracesFile, ArrayList<Integer> firstPids,
             ArrayList<Integer> nativePids, ArrayList<Integer> extraPids) {
 
         Slog.i(TAG, "Dumping to " + tracesFile);
@@ -4032,21 +4062,39 @@
         // We must complete all stack dumps within 20 seconds.
         long remainingTime = 20 * 1000;
 
+        // As applications are usually interested with the ANR stack traces, but we can't share with
+        // them the stack traces other than their own stacks. So after the very first PID is
+        // dumped, remember the current file size.
+        long firstPidStart = -1;
+        long firstPidEnd = -1;
+
         // First collect all of the stacks of the most important pids.
         if (firstPids != null) {
             int num = firstPids.size();
             for (int i = 0; i < num; i++) {
-                Slog.i(TAG, "Collecting stacks for pid " + firstPids.get(i));
-                final long timeTaken = dumpJavaTracesTombstoned(firstPids.get(i), tracesFile,
+                final int pid = firstPids.get(i);
+                // We don't copy ANR traces from the system_server intentionally.
+                final boolean firstPid = i == 0 && MY_PID != pid;
+                File tf = null;
+                if (firstPid) {
+                    tf = new File(tracesFile);
+                    firstPidStart = tf.exists() ? tf.length() : 0;
+                }
+
+                Slog.i(TAG, "Collecting stacks for pid " + pid);
+                final long timeTaken = dumpJavaTracesTombstoned(pid, tracesFile,
                                                                 remainingTime);
 
                 remainingTime -= timeTaken;
                 if (remainingTime <= 0) {
-                    Slog.e(TAG, "Aborting stack trace dump (current firstPid=" + firstPids.get(i) +
-                           "); deadline exceeded.");
-                    return;
+                    Slog.e(TAG, "Aborting stack trace dump (current firstPid=" + pid
+                            + "); deadline exceeded.");
+                    return firstPidStart >= 0 ? new Pair<>(firstPidStart, firstPidEnd) : null;
                 }
 
+                if (firstPid) {
+                    firstPidEnd = tf.length();
+                }
                 if (DEBUG_ANR) {
                     Slog.d(TAG, "Done with pid " + firstPids.get(i) + " in " + timeTaken + "ms");
                 }
@@ -4068,7 +4116,7 @@
                 if (remainingTime <= 0) {
                     Slog.e(TAG, "Aborting stack trace dump (current native pid=" + pid +
                         "); deadline exceeded.");
-                    return;
+                    return firstPidStart >= 0 ? new Pair<>(firstPidStart, firstPidEnd) : null;
                 }
 
                 if (DEBUG_ANR) {
@@ -4088,7 +4136,7 @@
                 if (remainingTime <= 0) {
                     Slog.e(TAG, "Aborting stack trace dump (current extra pid=" + pid +
                             "); deadline exceeded.");
-                    return;
+                    return firstPidStart >= 0 ? new Pair<>(firstPidStart, firstPidEnd) : null;
                 }
 
                 if (DEBUG_ANR) {
@@ -4097,6 +4145,7 @@
             }
         }
         Slog.i(TAG, "Done dumping");
+        return firstPidStart >= 0 ? new Pair<>(firstPidStart, firstPidEnd) : null;
     }
 
     @Override
@@ -6462,13 +6511,6 @@
     }
 
     @Override
-    public List<RunningTaskInfo> getFilteredTasks(int maxNum, @ActivityType int ignoreActivityType,
-            @WindowingMode int ignoreWindowingMode) {
-        return mActivityTaskManager.getFilteredTasks(
-                maxNum, ignoreActivityType, ignoreWindowingMode);
-    }
-
-    @Override
     public void cancelTaskWindowTransition(int taskId) {
         mActivityTaskManager.cancelTaskWindowTransition(taskId);
     }
@@ -8729,6 +8771,27 @@
     }
 
     @Override
+    public boolean isUidActiveOrForeground(int uid, String callingPackage) {
+        if (!hasUsageStatsPermission(callingPackage)) {
+            enforceCallingPermission(android.Manifest.permission.PACKAGE_USAGE_STATS,
+                    "isUidActiveOrForeground");
+        }
+        synchronized (this) {
+            final boolean isActive = isUidActiveLocked(uid);
+            if (isActive) {
+                return true;
+            }
+        }
+        final boolean isForeground = mAtmInternal.isUidForeground(uid);
+        if (isForeground) {
+            Slog.wtf(TAG, "isUidActiveOrForeground: isUidActive false but "
+                    + " isUidForeground true, uid:" + uid
+                    + " callingPackage:" + callingPackage);
+        }
+        return isForeground;
+    }
+
+    @Override
     public void setPersistentVrThread(int tid) {
         mActivityTaskManager.setPersistentVrThread(tid);
     }
@@ -10280,6 +10343,15 @@
         return new ParceledListSlice<ApplicationExitInfo>(results);
     }
 
+    @Override
+    public void setProcessStateSummary(@Nullable byte[] state) {
+        if (state != null && state.length > MAX_STATE_DATA_SIZE) {
+            throw new IllegalArgumentException("Data size is too large");
+        }
+        mProcessList.mAppExitInfoTracker.setProcessStateSummary(Binder.getCallingUid(),
+                Binder.getCallingPid(), state);
+    }
+
     /**
      * Check if the calling process has the permission to dump given package,
      * throw SecurityException if it doesn't have the permission.
@@ -10287,7 +10359,7 @@
      * @return The UID of the given package, or {@link android.os.Process#INVALID_UID}
      *         if the package is not found.
      */
-    private int enforceDumpPermissionForPackage(String packageName, int userId, int callingUid,
+    int enforceDumpPermissionForPackage(String packageName, int userId, int callingUid,
             String function) {
         long identity = Binder.clearCallingIdentity();
         int uid = Process.INVALID_UID;
@@ -17573,7 +17645,6 @@
     @GuardedBy("this")
     final void updateProcessForegroundLocked(ProcessRecord proc, boolean isForeground,
             int fgServiceTypes, boolean oomAdj) {
-
         if (isForeground != proc.hasForegroundServices()
                 || proc.getForegroundServiceTypes() != fgServiceTypes) {
             proc.setHasForegroundServices(isForeground, fgServiceTypes);
@@ -17606,10 +17677,9 @@
             ProcessChangeItem item = enqueueProcessChangeItemLocked(proc.pid, proc.info.uid);
             item.changes = ProcessChangeItem.CHANGE_FOREGROUND_SERVICES;
             item.foregroundServiceTypes = fgServiceTypes;
-
-            if (oomAdj) {
-                updateOomAdjLocked(proc, OomAdjuster.OOM_ADJ_REASON_UI_VISIBILITY);
-            }
+        }
+        if (oomAdj) {
+            updateOomAdjLocked(proc, OomAdjuster.OOM_ADJ_REASON_UI_VISIBILITY);
         }
     }
 
diff --git a/services/core/java/com/android/server/am/AppExitInfoTracker.java b/services/core/java/com/android/server/am/AppExitInfoTracker.java
index 028a059..0c3d02d 100644
--- a/services/core/java/com/android/server/am/AppExitInfoTracker.java
+++ b/services/core/java/com/android/server/am/AppExitInfoTracker.java
@@ -17,23 +17,31 @@
 package com.android.server.am;
 
 import static android.app.ActivityManager.RunningAppProcessInfo.procStateToImportance;
+import static android.app.ActivityManagerInternal.ALLOW_NON_FULL;
 import static android.os.Process.THREAD_PRIORITY_BACKGROUND;
 
 import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_PROCESSES;
 import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM;
 import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME;
 
+import android.annotation.Nullable;
 import android.app.ApplicationExitInfo;
 import android.app.ApplicationExitInfo.Reason;
 import android.app.ApplicationExitInfo.SubReason;
+import android.app.IAppTraceRetriever;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.PackageManager;
 import android.icu.text.SimpleDateFormat;
+import android.os.Binder;
+import android.os.FileUtils;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
+import android.os.ParcelFileDescriptor;
+import android.os.Process;
 import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.system.OsConstants;
@@ -52,12 +60,17 @@
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.ProcessMap;
+import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.function.pooled.PooledLambda;
 import com.android.server.IoThread;
 import com.android.server.ServiceThread;
 import com.android.server.SystemServiceManager;
 
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -68,6 +81,10 @@
 import java.util.concurrent.TimeUnit;
 import java.util.function.BiConsumer;
 import java.util.function.BiFunction;
+import java.util.function.Consumer;
+import java.util.function.Predicate;
+import java.util.function.Supplier;
+import java.util.zip.GZIPOutputStream;
 
 /**
  * A class to manage all the {@link android.app.ApplicationExitInfo} records.
@@ -80,16 +97,21 @@
      */
     private static final long APP_EXIT_INFO_PERSIST_INTERVAL = TimeUnit.MINUTES.toMillis(30);
 
-    /** These are actions that the forEachPackage should take after each iteration */
+    /** These are actions that the forEach* should take after each iteration */
     private static final int FOREACH_ACTION_NONE = 0;
-    private static final int FOREACH_ACTION_REMOVE_PACKAGE = 1;
+    private static final int FOREACH_ACTION_REMOVE_ITEM = 1;
     private static final int FOREACH_ACTION_STOP_ITERATION = 2;
 
     private static final int APP_EXIT_RAW_INFO_POOL_SIZE = 8;
 
     @VisibleForTesting
+    static final String APP_EXIT_STORE_DIR = "procexitstore";
+
+    @VisibleForTesting
     static final String APP_EXIT_INFO_FILE = "procexitinfo";
 
+    private static final String APP_TRACE_FILE_SUFFIX = ".gz";
+
     private final Object mLock = new Object();
 
     /**
@@ -153,6 +175,13 @@
     final ArrayList<ApplicationExitInfo> mTmpInfoList2 = new ArrayList<ApplicationExitInfo>();
 
     /**
+     * The path to the directory which includes the historical proc exit info file
+     * as specified in {@link #mProcExitInfoFile}, as well as the associated trace files.
+     */
+    @VisibleForTesting
+    File mProcExitStoreDir;
+
+    /**
      * The path to the historical proc exit info file, persisted in the storage.
      */
     @VisibleForTesting
@@ -176,6 +205,35 @@
     final AppExitInfoExternalSource mAppExitInfoSourceLmkd =
             new AppExitInfoExternalSource("lmkd", ApplicationExitInfo.REASON_LOW_MEMORY);
 
+    /**
+     * The active per-UID/PID state data set by
+     * {@link android.app.ActivityManager#setProcessStateSummary};
+     * these state data are to be "claimed" when its process dies, by then the data will be moved
+     * from this list to the new instance of ApplicationExitInfo.
+     *
+     * <p> The mapping here is UID -> PID -> state </p>
+     *
+     * @see android.app.ActivityManager#setProcessStateSummary(byte[])
+     */
+    @GuardedBy("mLock")
+    final SparseArray<SparseArray<byte[]>> mActiveAppStateSummary = new SparseArray<>();
+
+    /**
+     * The active per-UID/PID trace file when an ANR occurs but the process hasn't been killed yet,
+     * each record is a path to the actual trace file;  these files are to be "claimed"
+     * when its process dies, by then the "ownership" of the files will be transferred
+     * from this list to the new instance of ApplicationExitInfo.
+     *
+     * <p> The mapping here is UID -> PID -> file </p>
+     */
+    @GuardedBy("mLock")
+    final SparseArray<SparseArray<File>> mActiveAppTraces = new SparseArray<>();
+
+    /**
+     * The implementation of the interface IAppTraceRetriever.
+     */
+    final AppTraceRetriever mAppTraceRetriever = new AppTraceRetriever();
+
     AppExitInfoTracker() {
         mData = new ProcessMap<AppExitInfoContainer>();
         mRawRecordsPool = new SynchronizedPool<ApplicationExitInfo>(APP_EXIT_RAW_INFO_POOL_SIZE);
@@ -187,7 +245,13 @@
                 THREAD_PRIORITY_BACKGROUND, true /* allowIo */);
         thread.start();
         mKillHandler = new KillHandler(thread.getLooper());
-        mProcExitInfoFile = new File(SystemServiceManager.ensureSystemDir(), APP_EXIT_INFO_FILE);
+
+        mProcExitStoreDir = new File(SystemServiceManager.ensureSystemDir(), APP_EXIT_STORE_DIR);
+        if (!FileUtils.createDir(mProcExitStoreDir)) {
+            Slog.e(TAG, "Unable to create " + mProcExitStoreDir);
+            return;
+        }
+        mProcExitInfoFile = new File(mProcExitStoreDir, APP_EXIT_INFO_FILE);
 
         mAppExitInfoHistoryListSize = service.mContext.getResources().getInteger(
                 com.android.internal.R.integer.config_app_exit_info_history_list_size);
@@ -304,7 +368,7 @@
                         + "(" + raw.getPid() + "/u" + raw.getRealUid() + ")");
             }
 
-            ApplicationExitInfo info = getExitInfo(raw.getPackageName(),
+            ApplicationExitInfo info = getExitInfoLocked(raw.getPackageName(),
                     raw.getPackageUid(), raw.getPid());
 
             // query zygote and lmkd to get the exit info, and clear the saved info
@@ -312,7 +376,7 @@
                     raw.getPid(), raw.getRealUid());
             Pair<Long, Object> lmkd = mAppExitInfoSourceLmkd.remove(
                     raw.getPid(), raw.getRealUid());
-            mIsolatedUidRecords.removeIsolatedUid(raw.getRealUid());
+            mIsolatedUidRecords.removeIsolatedUidLocked(raw.getRealUid());
 
             if (info == null) {
                 info = addExitInfoLocked(raw);
@@ -333,7 +397,7 @@
     @VisibleForTesting
     @GuardedBy("mLock")
     void handleNoteAppKillLocked(final ApplicationExitInfo raw) {
-        ApplicationExitInfo info = getExitInfo(
+        ApplicationExitInfo info = getExitInfoLocked(
                 raw.getPackageName(), raw.getPackageUid(), raw.getPid());
 
         if (info == null) {
@@ -359,7 +423,7 @@
         final String[] packages = raw.getPackageList();
         final int uid = raw.getPackageUid();
         for (int i = 0; i < packages.length; i++) {
-            addExitInfoInner(packages[i], uid, info);
+            addExitInfoInnerLocked(packages[i], uid, info);
         }
 
         schedulePersistProcessExitInfo(false);
@@ -400,39 +464,37 @@
      *
      * @return true if a recond is updated
      */
-    private boolean updateExitInfoIfNecessary(int pid, int uid, Integer status, Integer reason) {
-        synchronized (mLock) {
-            if (UserHandle.isIsolated(uid)) {
-                Integer k = mIsolatedUidRecords.getUidByIsolatedUid(uid);
-                if (k != null) {
-                    uid = k;
-                }
-            }
-            ArrayList<ApplicationExitInfo> tlist = mTmpInfoList;
-            tlist.clear();
-            final int targetUid = uid;
-            forEachPackage((packageName, records) -> {
-                AppExitInfoContainer container = records.get(targetUid);
-                if (container == null) {
-                    return FOREACH_ACTION_NONE;
-                }
-                tlist.clear();
-                container.getExitInfoLocked(pid, 1, tlist);
-                if (tlist.size() == 0) {
-                    return FOREACH_ACTION_NONE;
-                }
-                ApplicationExitInfo info = tlist.get(0);
-                if (info.getRealUid() != targetUid) {
-                    tlist.clear();
-                    return FOREACH_ACTION_NONE;
-                }
-                // Okay found it, update its reason.
-                updateExistingExitInfoRecordLocked(info, status, reason);
-
-                return FOREACH_ACTION_STOP_ITERATION;
-            });
-            return tlist.size() > 0;
+    @GuardedBy("mLock")
+    private boolean updateExitInfoIfNecessaryLocked(
+            int pid, int uid, Integer status, Integer reason) {
+        Integer k = mIsolatedUidRecords.getUidByIsolatedUid(uid);
+        if (k != null) {
+            uid = k;
         }
+        ArrayList<ApplicationExitInfo> tlist = mTmpInfoList;
+        tlist.clear();
+        final int targetUid = uid;
+        forEachPackageLocked((packageName, records) -> {
+            AppExitInfoContainer container = records.get(targetUid);
+            if (container == null) {
+                return FOREACH_ACTION_NONE;
+            }
+            tlist.clear();
+            container.getExitInfoLocked(pid, 1, tlist);
+            if (tlist.size() == 0) {
+                return FOREACH_ACTION_NONE;
+            }
+            ApplicationExitInfo info = tlist.get(0);
+            if (info.getRealUid() != targetUid) {
+                tlist.clear();
+                return FOREACH_ACTION_NONE;
+            }
+            // Okay found it, update its reason.
+            updateExistingExitInfoRecordLocked(info, status, reason);
+
+            return FOREACH_ACTION_STOP_ITERATION;
+        });
+        return tlist.size() > 0;
     }
 
     /**
@@ -441,38 +503,43 @@
     @VisibleForTesting
     void getExitInfo(final String packageName, final int filterUid,
             final int filterPid, final int maxNum, final ArrayList<ApplicationExitInfo> results) {
-        synchronized (mLock) {
-            boolean emptyPackageName = TextUtils.isEmpty(packageName);
-            if (!emptyPackageName) {
-                // fast path
-                AppExitInfoContainer container = mData.get(packageName, filterUid);
-                if (container != null) {
-                    container.getExitInfoLocked(filterPid, maxNum, results);
-                }
-            } else {
-                // slow path
-                final ArrayList<ApplicationExitInfo> list = mTmpInfoList2;
-                list.clear();
-                // get all packages
-                forEachPackage((name, records) -> {
-                    AppExitInfoContainer container = records.get(filterUid);
+        long identity = Binder.clearCallingIdentity();
+        try {
+            synchronized (mLock) {
+                boolean emptyPackageName = TextUtils.isEmpty(packageName);
+                if (!emptyPackageName) {
+                    // fast path
+                    AppExitInfoContainer container = mData.get(packageName, filterUid);
                     if (container != null) {
-                        mTmpInfoList.clear();
-                        results.addAll(container.toListLocked(mTmpInfoList, filterPid));
+                        container.getExitInfoLocked(filterPid, maxNum, results);
                     }
-                    return AppExitInfoTracker.FOREACH_ACTION_NONE;
-                });
+                } else {
+                    // slow path
+                    final ArrayList<ApplicationExitInfo> list = mTmpInfoList2;
+                    list.clear();
+                    // get all packages
+                    forEachPackageLocked((name, records) -> {
+                        AppExitInfoContainer container = records.get(filterUid);
+                        if (container != null) {
+                            mTmpInfoList.clear();
+                            results.addAll(container.toListLocked(mTmpInfoList, filterPid));
+                        }
+                        return AppExitInfoTracker.FOREACH_ACTION_NONE;
+                    });
 
-                Collections.sort(list, (a, b) -> (int) (b.getTimestamp() - a.getTimestamp()));
-                int size = list.size();
-                if (maxNum > 0) {
-                    size = Math.min(size, maxNum);
+                    Collections.sort(list, (a, b) -> (int) (b.getTimestamp() - a.getTimestamp()));
+                    int size = list.size();
+                    if (maxNum > 0) {
+                        size = Math.min(size, maxNum);
+                    }
+                    for (int i = 0; i < size; i++) {
+                        results.add(list.get(i));
+                    }
+                    list.clear();
                 }
-                for (int i = 0; i < size; i++) {
-                    results.add(list.get(i));
-                }
-                list.clear();
             }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
         }
     }
 
@@ -480,17 +547,16 @@
      * Return the first matching exit info record, for internal use, the parameters are not supposed
      * to be empty.
      */
-    private ApplicationExitInfo getExitInfo(final String packageName,
+    @GuardedBy("mLock")
+    private ApplicationExitInfo getExitInfoLocked(final String packageName,
             final int filterUid, final int filterPid) {
-        synchronized (mLock) {
-            ArrayList<ApplicationExitInfo> list = mTmpInfoList;
-            list.clear();
-            getExitInfo(packageName, filterUid, filterPid, 1, list);
+        ArrayList<ApplicationExitInfo> list = mTmpInfoList;
+        list.clear();
+        getExitInfo(packageName, filterUid, filterPid, 1, list);
 
-            ApplicationExitInfo info = list.size() > 0 ? list.get(0) : null;
-            list.clear();
-            return info;
-        }
+        ApplicationExitInfo info = list.size() > 0 ? list.get(0) : null;
+        list.clear();
+        return info;
     }
 
     @VisibleForTesting
@@ -498,8 +564,10 @@
         mAppExitInfoSourceZygote.removeByUserId(userId);
         mAppExitInfoSourceLmkd.removeByUserId(userId);
         mIsolatedUidRecords.removeByUserId(userId);
-        removeByUserId(userId);
-        schedulePersistProcessExitInfo(true);
+        synchronized (mLock) {
+            removeByUserIdLocked(userId);
+            schedulePersistProcessExitInfo(true);
+        }
     }
 
     @VisibleForTesting
@@ -507,13 +575,16 @@
         if (packageName != null) {
             final boolean removeUid = TextUtils.isEmpty(
                     mService.mPackageManagerInt.getNameForUid(uid));
-            if (removeUid) {
-                mAppExitInfoSourceZygote.removeByUid(uid, allUsers);
-                mAppExitInfoSourceLmkd.removeByUid(uid, allUsers);
-                mIsolatedUidRecords.removeAppUid(uid, allUsers);
+            synchronized (mLock) {
+                if (removeUid) {
+                    mAppExitInfoSourceZygote.removeByUidLocked(uid, allUsers);
+                    mAppExitInfoSourceLmkd.removeByUidLocked(uid, allUsers);
+                    mIsolatedUidRecords.removeAppUid(uid, allUsers);
+                }
+                removePackageLocked(packageName, uid, removeUid,
+                        allUsers ? UserHandle.USER_ALL : UserHandle.getUserId(uid));
+                schedulePersistProcessExitInfo(true);
             }
-            removePackage(packageName, allUsers ? UserHandle.USER_ALL : UserHandle.getUserId(uid));
-            schedulePersistProcessExitInfo(true);
         }
     }
 
@@ -593,6 +664,7 @@
             }
         }
         synchronized (mLock) {
+            pruneAnrTracesIfNecessaryLocked();
             mAppExitInfoLoaded = true;
         }
     }
@@ -634,7 +706,7 @@
             ProtoOutputStream proto = new ProtoOutputStream(out);
             proto.write(AppsExitInfoProto.LAST_UPDATE_TIMESTAMP, now);
             synchronized (mLock) {
-                forEachPackage((packageName, records) -> {
+                forEachPackageLocked((packageName, records) -> {
                     long token = proto.start(AppsExitInfoProto.PACKAGES);
                     proto.write(AppsExitInfoProto.Package.PACKAGE_NAME, packageName);
                     int uidArraySize = records.size();
@@ -688,6 +760,9 @@
                 mProcExitInfoFile.delete();
             }
             mData.getMap().clear();
+            mActiveAppStateSummary.clear();
+            mActiveAppTraces.clear();
+            pruneAnrTracesIfNecessaryLocked();
         }
     }
 
@@ -695,15 +770,15 @@
      * Helper function for shell command
      */
     void clearHistoryProcessExitInfo(String packageName, int userId) {
-        synchronized (mLock) {
-            if (TextUtils.isEmpty(packageName)) {
-                if (userId == UserHandle.USER_ALL) {
-                    mData.getMap().clear();
-                } else {
-                    removeByUserId(userId);
-                }
-            } else {
-                removePackage(packageName, userId);
+        if (TextUtils.isEmpty(packageName)) {
+            synchronized (mLock) {
+                removeByUserIdLocked(userId);
+            }
+        } else {
+            final int uid = mService.mPackageManagerInt.getPackageUid(packageName,
+                    PackageManager.MATCH_ALL, userId);
+            synchronized (mLock) {
+                removePackageLocked(packageName, uid, true, userId);
             }
         }
         schedulePersistProcessExitInfo(true);
@@ -716,7 +791,7 @@
             pw.println("Last Timestamp of Persistence Into Persistent Storage: "
                     + sdf.format(new Date(mLastAppExitInfoPersistTimestamp)));
             if (TextUtils.isEmpty(packageName)) {
-                forEachPackage((name, records) -> {
+                forEachPackageLocked((name, records) -> {
                     dumpHistoryProcessExitInfoLocked(pw, "  ", name, records, sdf);
                     return AppExitInfoTracker.FOREACH_ACTION_NONE;
                 });
@@ -741,86 +816,108 @@
         }
     }
 
-    private void addExitInfoInner(String packageName, int userId, ApplicationExitInfo info) {
-        synchronized (mLock) {
-            AppExitInfoContainer container = mData.get(packageName, userId);
-            if (container == null) {
-                container = new AppExitInfoContainer(mAppExitInfoHistoryListSize);
-                if (UserHandle.isIsolated(info.getRealUid())) {
-                    Integer k = mIsolatedUidRecords.getUidByIsolatedUid(info.getRealUid());
-                    if (k != null) {
-                        container.mUid = k;
-                    }
-                } else {
-                    container.mUid = info.getRealUid();
+    @GuardedBy("mLock")
+    private void addExitInfoInnerLocked(String packageName, int userId, ApplicationExitInfo info) {
+        AppExitInfoContainer container = mData.get(packageName, userId);
+        if (container == null) {
+            container = new AppExitInfoContainer(mAppExitInfoHistoryListSize);
+            if (UserHandle.isIsolated(info.getRealUid())) {
+                Integer k = mIsolatedUidRecords.getUidByIsolatedUid(info.getRealUid());
+                if (k != null) {
+                    container.mUid = k;
                 }
-                mData.put(packageName, userId, container);
+            } else {
+                container.mUid = info.getRealUid();
             }
-            container.addExitInfoLocked(info);
+            mData.put(packageName, userId, container);
         }
+        container.addExitInfoLocked(info);
     }
 
-    private void forEachPackage(
+    @GuardedBy("mLocked")
+    private void forEachPackageLocked(
             BiFunction<String, SparseArray<AppExitInfoContainer>, Integer> callback) {
         if (callback != null) {
-            synchronized (mLock) {
-                ArrayMap<String, SparseArray<AppExitInfoContainer>> map = mData.getMap();
-                for (int i = map.size() - 1; i >= 0; i--) {
-                    switch (callback.apply(map.keyAt(i), map.valueAt(i))) {
-                        case FOREACH_ACTION_REMOVE_PACKAGE:
-                            map.removeAt(i);
-                            break;
-                        case FOREACH_ACTION_STOP_ITERATION:
-                            i = 0;
-                            break;
-                        case FOREACH_ACTION_NONE:
-                        default:
-                            break;
-                    }
-                }
-            }
-        }
-    }
-
-    private void removePackage(String packageName, int userId) {
-        synchronized (mLock) {
-            if (userId == UserHandle.USER_ALL) {
-                mData.getMap().remove(packageName);
-            } else {
-                ArrayMap<String, SparseArray<AppExitInfoContainer>> map =
-                        mData.getMap();
-                SparseArray<AppExitInfoContainer> array = map.get(packageName);
-                if (array == null) {
-                    return;
-                }
-                for (int i = array.size() - 1; i >= 0; i--) {
-                    if (UserHandle.getUserId(array.keyAt(i)) == userId) {
-                        array.removeAt(i);
+            ArrayMap<String, SparseArray<AppExitInfoContainer>> map = mData.getMap();
+            for (int i = map.size() - 1; i >= 0; i--) {
+                switch (callback.apply(map.keyAt(i), map.valueAt(i))) {
+                    case FOREACH_ACTION_REMOVE_ITEM:
+                        final SparseArray<AppExitInfoContainer> records = map.valueAt(i);
+                        for (int j = records.size() - 1; j >= 0; j--) {
+                            records.valueAt(j).destroyLocked();
+                        }
+                        map.removeAt(i);
                         break;
-                    }
-                }
-                if (array.size() == 0) {
-                    map.remove(packageName);
+                    case FOREACH_ACTION_STOP_ITERATION:
+                        i = 0;
+                        break;
+                    case FOREACH_ACTION_NONE:
+                    default:
+                        break;
                 }
             }
         }
     }
 
-    private void removeByUserId(final int userId) {
-        if (userId == UserHandle.USER_ALL) {
-            synchronized (mLock) {
-                mData.getMap().clear();
+    @GuardedBy("mLocked")
+    private void removePackageLocked(String packageName, int uid, boolean removeUid, int userId) {
+        if (removeUid) {
+            mActiveAppStateSummary.remove(uid);
+            final int idx = mActiveAppTraces.indexOfKey(uid);
+            if (idx >= 0) {
+                final SparseArray<File> array = mActiveAppTraces.valueAt(idx);
+                for (int i = array.size() - 1; i >= 0; i--) {
+                    array.valueAt(i).delete();
+                }
+                mActiveAppTraces.removeAt(idx);
             }
+        }
+        ArrayMap<String, SparseArray<AppExitInfoContainer>> map = mData.getMap();
+        SparseArray<AppExitInfoContainer> array = map.get(packageName);
+        if (array == null) {
             return;
         }
-        forEachPackage((packageName, records) -> {
+        if (userId == UserHandle.USER_ALL) {
+            for (int i = array.size() - 1; i >= 0; i--) {
+                array.valueAt(i).destroyLocked();
+            }
+            mData.getMap().remove(packageName);
+        } else {
+            for (int i = array.size() - 1; i >= 0; i--) {
+                if (UserHandle.getUserId(array.keyAt(i)) == userId) {
+                    array.valueAt(i).destroyLocked();
+                    array.removeAt(i);
+                    break;
+                }
+            }
+            if (array.size() == 0) {
+                map.remove(packageName);
+            }
+        }
+    }
+
+    @GuardedBy("mLocked")
+    private void removeByUserIdLocked(final int userId) {
+        if (userId == UserHandle.USER_ALL) {
+            mData.getMap().clear();
+            mActiveAppStateSummary.clear();
+            mActiveAppTraces.clear();
+            pruneAnrTracesIfNecessaryLocked();
+            return;
+        }
+        removeFromSparse2dArray(mActiveAppStateSummary,
+                (v) -> UserHandle.getUserId(v) == userId, null, null);
+        removeFromSparse2dArray(mActiveAppTraces,
+                (v) -> UserHandle.getUserId(v) == userId, null, (v) -> v.delete());
+        forEachPackageLocked((packageName, records) -> {
             for (int i = records.size() - 1; i >= 0; i--) {
                 if (UserHandle.getUserId(records.keyAt(i)) == userId) {
+                    records.valueAt(i).destroyLocked();
                     records.removeAt(i);
                     break;
                 }
             }
-            return records.size() == 0 ? FOREACH_ACTION_REMOVE_PACKAGE : FOREACH_ACTION_NONE;
+            return records.size() == 0 ? FOREACH_ACTION_REMOVE_ITEM : FOREACH_ACTION_NONE;
         });
     }
 
@@ -862,6 +959,262 @@
     }
 
     /**
+     * Called from {@link ActivityManagerService#setProcessStateSummary}.
+     */
+    @VisibleForTesting
+    void setProcessStateSummary(int uid, final int pid, final byte[] data) {
+        synchronized (mLock) {
+            Integer k = mIsolatedUidRecords.getUidByIsolatedUid(uid);
+            if (k != null) {
+                uid = k;
+            }
+            putToSparse2dArray(mActiveAppStateSummary, uid, pid, data, SparseArray::new, null);
+        }
+    }
+
+    @VisibleForTesting
+    @Nullable byte[] getProcessStateSummary(int uid, final int pid) {
+        synchronized (mLock) {
+            Integer k = mIsolatedUidRecords.getUidByIsolatedUid(uid);
+            if (k != null) {
+                uid = k;
+            }
+            int index = mActiveAppStateSummary.indexOfKey(uid);
+            if (index < 0) {
+                return null;
+            }
+            return mActiveAppStateSummary.valueAt(index).get(pid);
+        }
+    }
+
+    /**
+     * Called from ProcessRecord when an ANR occurred and the ANR trace is taken.
+     */
+    void scheduleLogAnrTrace(final int pid, final int uid, final String[] packageList,
+            final File traceFile, final long startOff, final long endOff) {
+        mKillHandler.sendMessage(PooledLambda.obtainMessage(
+                this::handleLogAnrTrace, pid, uid, packageList,
+                traceFile, startOff, endOff));
+    }
+
+    /**
+     * Copy and compress the given ANR trace file
+     */
+    @VisibleForTesting
+    void handleLogAnrTrace(final int pid, int uid, final String[] packageList,
+            final File traceFile, final long startOff, final long endOff) {
+        if (!traceFile.exists() || ArrayUtils.isEmpty(packageList)) {
+            return;
+        }
+        final long size = traceFile.length();
+        final long length = endOff - startOff;
+        if (startOff >= size || endOff > size || length <= 0) {
+            return;
+        }
+
+        final File outFile = new File(mProcExitStoreDir, traceFile.getName()
+                + APP_TRACE_FILE_SUFFIX);
+        // Copy & compress
+        if (copyToGzFile(traceFile, outFile, startOff, length)) {
+            // Wrote successfully.
+            synchronized (mLock) {
+                Integer k = mIsolatedUidRecords.getUidByIsolatedUid(uid);
+                if (k != null) {
+                    uid = k;
+                }
+                if (DEBUG_PROCESSES) {
+                    Slog.i(TAG, "Stored ANR traces of " + pid + "/u" + uid + " in " + outFile);
+                }
+                boolean pending = true;
+                // Unlikely but possible: the app has died
+                for (int i = 0; i < packageList.length; i++) {
+                    final AppExitInfoContainer container = mData.get(packageList[i], uid);
+                    // Try to see if we could append this trace to an existing record
+                    if (container != null && container.appendTraceIfNecessaryLocked(pid, outFile)) {
+                        // Okay someone took it
+                        pending = false;
+                    }
+                }
+                if (pending) {
+                    // Save it into a temporary list for later use (when the app dies).
+                    putToSparse2dArray(mActiveAppTraces, uid, pid, outFile,
+                            SparseArray::new, (v) -> v.delete());
+                }
+            }
+        }
+    }
+
+    /**
+     * Copy the given portion of the file into a gz file.
+     *
+     * @param inFile The source file.
+     * @param outFile The destination file, which will be compressed in gzip format.
+     * @param start The start offset where the copy should start from.
+     * @param length The number of bytes that should be copied.
+     * @return If the copy was successful or not.
+     */
+    private static boolean copyToGzFile(final File inFile, final File outFile,
+            final long start, final long length) {
+        long remaining = length;
+        try (
+            BufferedInputStream in = new BufferedInputStream(new FileInputStream(inFile));
+            GZIPOutputStream out = new GZIPOutputStream(new BufferedOutputStream(
+                    new FileOutputStream(outFile)))) {
+            final byte[] buffer = new byte[8192];
+            in.skip(start);
+            while (remaining > 0) {
+                int t = in.read(buffer, 0, (int) Math.min(buffer.length, remaining));
+                if (t < 0) {
+                    break;
+                }
+                out.write(buffer, 0, t);
+                remaining -= t;
+            }
+        } catch (IOException e) {
+            if (DEBUG_PROCESSES) {
+                Slog.e(TAG, "Error in copying ANR trace from " + inFile + " to " + outFile, e);
+            }
+            return false;
+        }
+        return remaining == 0 && outFile.exists();
+    }
+
+    /**
+     * In case there is any orphan ANR trace file, remove it.
+     */
+    @GuardedBy("mLock")
+    private void pruneAnrTracesIfNecessaryLocked() {
+        final ArraySet<String> allFiles = new ArraySet();
+        final File[] files = mProcExitStoreDir.listFiles((f) -> {
+            final String name = f.getName();
+            boolean trace = name.startsWith(ActivityManagerService.ANR_FILE_PREFIX)
+                    && name.endsWith(APP_TRACE_FILE_SUFFIX);
+            if (trace) {
+                allFiles.add(name);
+            }
+            return trace;
+        });
+        if (ArrayUtils.isEmpty(files)) {
+            return;
+        }
+        // Find out the owners from the existing records
+        forEachPackageLocked((name, records) -> {
+            for (int i = records.size() - 1; i >= 0; i--) {
+                final AppExitInfoContainer container = records.valueAt(i);
+                container.forEachRecordLocked((pid, info) -> {
+                    final File traceFile = info.getTraceFile();
+                    if (traceFile != null) {
+                        allFiles.remove(traceFile.getName());
+                    }
+                    return FOREACH_ACTION_NONE;
+                });
+            }
+            return AppExitInfoTracker.FOREACH_ACTION_NONE;
+        });
+        // See if there is any active process owns it.
+        forEachSparse2dArray(mActiveAppTraces, (v) -> allFiles.remove(v.getName()));
+
+        // Remove orphan traces if nobody claims it.
+        for (int i = allFiles.size() - 1; i >= 0; i--) {
+            (new File(mProcExitStoreDir, allFiles.valueAt(i))).delete();
+        }
+    }
+
+    /**
+     * A utility function to add the given value to the given 2d SparseArray
+     */
+    private static <T extends SparseArray<U>, U> void putToSparse2dArray(final SparseArray<T> array,
+            final int outerKey, final int innerKey, final U value, final Supplier<T> newInstance,
+            final Consumer<U> actionToOldValue) {
+        int idx = array.indexOfKey(outerKey);
+        T innerArray = null;
+        if (idx < 0) {
+            innerArray = newInstance.get();
+            array.put(outerKey, innerArray);
+        } else {
+            innerArray = array.valueAt(idx);
+        }
+        idx = innerArray.indexOfKey(innerKey);
+        if (idx >= 0) {
+            if (actionToOldValue != null) {
+                actionToOldValue.accept(innerArray.valueAt(idx));
+            }
+            innerArray.setValueAt(idx, value);
+        } else {
+            innerArray.put(innerKey, value);
+        }
+    }
+
+    /**
+     * A utility function to iterate through the given 2d SparseArray
+     */
+    private static <T extends SparseArray<U>, U> void forEachSparse2dArray(
+            final SparseArray<T> array, final Consumer<U> action) {
+        if (action != null) {
+            for (int i = array.size() - 1; i >= 0; i--) {
+                T innerArray = array.valueAt(i);
+                if (innerArray == null) {
+                    continue;
+                }
+                for (int j = innerArray.size() - 1; j >= 0; j--) {
+                    action.accept(innerArray.valueAt(j));
+                }
+            }
+        }
+    }
+
+    /**
+     * A utility function to remove elements from the given 2d SparseArray
+     */
+    private static <T extends SparseArray<U>, U> void removeFromSparse2dArray(
+            final SparseArray<T> array, final Predicate<Integer> outerPredicate,
+            final Predicate<Integer> innerPredicate, final Consumer<U> action) {
+        for (int i = array.size() - 1; i >= 0; i--) {
+            if (outerPredicate == null || outerPredicate.test(array.keyAt(i))) {
+                final T innerArray = array.valueAt(i);
+                if (innerArray == null) {
+                    continue;
+                }
+                for (int j = innerArray.size() - 1; j >= 0; j--) {
+                    if (innerPredicate == null || innerPredicate.test(innerArray.keyAt(j))) {
+                        if (action != null) {
+                            action.accept(innerArray.valueAt(j));
+                        }
+                        innerArray.removeAt(j);
+                    }
+                }
+                if (innerArray.size() == 0) {
+                    array.removeAt(i);
+                }
+            }
+        }
+    }
+
+    /**
+     * A utility function to find and remove elements from the given 2d SparseArray.
+     */
+    private static <T extends SparseArray<U>, U> U findAndRemoveFromSparse2dArray(
+            final SparseArray<T> array, final int outerKey, final int innerKey) {
+        final int idx = array.indexOfKey(outerKey);
+        if (idx >= 0) {
+            T p = array.valueAt(idx);
+            if (p == null) {
+                return null;
+            }
+            final int innerIdx = p.indexOfKey(innerKey);
+            if (innerIdx >= 0) {
+                final U ret = p.valueAt(innerIdx);
+                p.removeAt(innerIdx);
+                if (p.size() == 0) {
+                    array.removeAt(idx);
+                }
+                return ret;
+            }
+        }
+        return null;
+    }
+
+    /**
      * A container class of {@link android.app.ApplicationExitInfo}
      */
     final class AppExitInfoContainer {
@@ -934,10 +1287,68 @@
                     }
                 }
                 if (oldestIndex >= 0) {
+                    final File traceFile = mInfos.valueAt(oldestIndex).getTraceFile();
+                    if (traceFile != null) {
+                        traceFile.delete();
+                    }
                     mInfos.removeAt(oldestIndex);
                 }
             }
-            mInfos.append(info.getPid(), info);
+            // Claim the state information if there is any
+            final int uid = info.getPackageUid();
+            final int pid = info.getPid();
+            info.setProcessStateSummary(findAndRemoveFromSparse2dArray(
+                    mActiveAppStateSummary, uid, pid));
+            info.setTraceFile(findAndRemoveFromSparse2dArray(mActiveAppTraces, uid, pid));
+            info.setAppTraceRetriever(mAppTraceRetriever);
+            mInfos.append(pid, info);
+        }
+
+        @GuardedBy("mLock")
+        boolean appendTraceIfNecessaryLocked(final int pid, final File traceFile) {
+            final ApplicationExitInfo r = mInfos.get(pid);
+            if (r != null) {
+                r.setTraceFile(traceFile);
+                r.setAppTraceRetriever(mAppTraceRetriever);
+                return true;
+            }
+            return false;
+        }
+
+        @GuardedBy("mLock")
+        void destroyLocked() {
+            for (int i = mInfos.size() - 1; i >= 0; i--) {
+                ApplicationExitInfo ai = mInfos.valueAt(i);
+                final File traceFile = ai.getTraceFile();
+                if (traceFile != null) {
+                    traceFile.delete();
+                }
+                ai.setTraceFile(null);
+                ai.setAppTraceRetriever(null);
+            }
+        }
+
+        @GuardedBy("mLock")
+        void forEachRecordLocked(final BiFunction<Integer, ApplicationExitInfo, Integer> callback) {
+            if (callback != null) {
+                for (int i = mInfos.size() - 1; i >= 0; i--) {
+                    switch (callback.apply(mInfos.keyAt(i), mInfos.valueAt(i))) {
+                        case FOREACH_ACTION_REMOVE_ITEM:
+                            final File traceFile = mInfos.valueAt(i).getTraceFile();
+                            if (traceFile != null) {
+                                traceFile.delete();
+                            }
+                            mInfos.removeAt(i);
+                            break;
+                        case FOREACH_ACTION_STOP_ITERATION:
+                            i = 0;
+                            break;
+                        case FOREACH_ACTION_NONE:
+                        default:
+                            break;
+                    }
+                }
+            }
         }
 
         @GuardedBy("mLock")
@@ -1033,6 +1444,7 @@
             }
         }
 
+        @GuardedBy("mLock")
         Integer getUidByIsolatedUid(int isolatedUid) {
             if (UserHandle.isIsolated(isolatedUid)) {
                 synchronized (mLock) {
@@ -1053,6 +1465,7 @@
             }
         }
 
+        @VisibleForTesting
         void removeAppUid(int uid, boolean allUsers) {
             synchronized (mLock) {
                 if (allUsers) {
@@ -1071,23 +1484,22 @@
             }
         }
 
-        int removeIsolatedUid(int isolatedUid) {
+        @GuardedBy("mLock")
+        int removeIsolatedUidLocked(int isolatedUid) {
             if (!UserHandle.isIsolated(isolatedUid)) {
                 return isolatedUid;
             }
-            synchronized (mLock) {
-                int uid = mIsolatedUidToUidMap.get(isolatedUid, -1);
-                if (uid == -1) {
-                    return isolatedUid;
-                }
-                mIsolatedUidToUidMap.remove(isolatedUid);
-                ArraySet<Integer> set = mUidToIsolatedUidMap.get(uid);
-                if (set != null) {
-                    set.remove(isolatedUid);
-                }
-                // let the ArraySet stay in the mUidToIsolatedUidMap even if it's empty
-                return uid;
+            int uid = mIsolatedUidToUidMap.get(isolatedUid, -1);
+            if (uid == -1) {
+                return isolatedUid;
             }
+            mIsolatedUidToUidMap.remove(isolatedUid);
+            ArraySet<Integer> set = mUidToIsolatedUidMap.get(uid);
+            if (set != null) {
+                set.remove(isolatedUid);
+            }
+            // let the ArraySet stay in the mUidToIsolatedUidMap even if it's empty
+            return uid;
         }
 
         void removeByUserId(int userId) {
@@ -1193,33 +1605,29 @@
             mPresetReason = reason;
         }
 
-        void add(int pid, int uid, Object extra) {
-            if (UserHandle.isIsolated(uid)) {
-                Integer k = mIsolatedUidRecords.getUidByIsolatedUid(uid);
-                if (k != null) {
-                    uid = k;
-                }
+        @GuardedBy("mLock")
+        private void addLocked(int pid, int uid, Object extra) {
+            Integer k = mIsolatedUidRecords.getUidByIsolatedUid(uid);
+            if (k != null) {
+                uid = k;
             }
 
-            synchronized (mLock) {
-                SparseArray<Pair<Long, Object>> array = mData.get(uid);
-                if (array == null) {
-                    array = new SparseArray<Pair<Long, Object>>();
-                    mData.put(uid, array);
-                }
-                array.put(pid, new Pair<Long, Object>(System.currentTimeMillis(), extra));
+            SparseArray<Pair<Long, Object>> array = mData.get(uid);
+            if (array == null) {
+                array = new SparseArray<Pair<Long, Object>>();
+                mData.put(uid, array);
             }
+            array.put(pid, new Pair<Long, Object>(System.currentTimeMillis(), extra));
         }
 
+        @VisibleForTesting
         Pair<Long, Object> remove(int pid, int uid) {
-            if (UserHandle.isIsolated(uid)) {
+            synchronized (mLock) {
                 Integer k = mIsolatedUidRecords.getUidByIsolatedUid(uid);
                 if (k != null) {
                     uid = k;
                 }
-            }
 
-            synchronized (mLock) {
                 SparseArray<Pair<Long, Object>> array = mData.get(uid);
                 if (array != null) {
                     Pair<Long, Object> p = array.get(pid);
@@ -1228,8 +1636,8 @@
                         return isFresh(p.first) ? p : null;
                     }
                 }
+                return null;
             }
-            return null;
         }
 
         void removeByUserId(int userId) {
@@ -1250,7 +1658,8 @@
             }
         }
 
-        void removeByUid(int uid, boolean allUsers) {
+        @GuardedBy("mLock")
+        void removeByUidLocked(int uid, boolean allUsers) {
             if (UserHandle.isIsolated(uid)) {
                 Integer k = mIsolatedUidRecords.getUidByIsolatedUid(uid);
                 if (k != null) {
@@ -1260,17 +1669,13 @@
 
             if (allUsers) {
                 uid = UserHandle.getAppId(uid);
-                synchronized (mLock) {
-                    for (int i = mData.size() - 1; i >= 0; i--) {
-                        if (UserHandle.getAppId(mData.keyAt(i)) == uid) {
-                            mData.removeAt(i);
-                        }
+                for (int i = mData.size() - 1; i >= 0; i--) {
+                    if (UserHandle.getAppId(mData.keyAt(i)) == uid) {
+                        mData.removeAt(i);
                     }
                 }
             } else {
-                synchronized (mLock) {
-                    mData.remove(uid);
-                }
+                mData.remove(uid);
             }
         }
 
@@ -1292,12 +1697,12 @@
 
             // Unlikely but possible: the record has been created
             // Let's update it if we could find a ApplicationExitInfo record
-            if (!updateExitInfoIfNecessary(pid, uid, status, mPresetReason)) {
-                add(pid, uid, status);
-            }
-
-            // Notify any interesed party regarding the lmkd kills
             synchronized (mLock) {
+                if (!updateExitInfoIfNecessaryLocked(pid, uid, status, mPresetReason)) {
+                    addLocked(pid, uid, status);
+                }
+
+                // Notify any interesed party regarding the lmkd kills
                 final BiConsumer<Integer, Integer> listener = mProcDiedListener;
                 if (listener != null) {
                     mService.mHandler.post(()-> listener.accept(pid, uid));
@@ -1305,4 +1710,51 @@
             }
         }
     }
+
+    /**
+     * The implementation to the IAppTraceRetriever interface.
+     */
+    @VisibleForTesting
+    class AppTraceRetriever extends IAppTraceRetriever.Stub {
+        @Override
+        public ParcelFileDescriptor getTraceFileDescriptor(final String packageName,
+                final int uid, final int pid) {
+            mService.enforceNotIsolatedCaller("getTraceFileDescriptor");
+
+            if (TextUtils.isEmpty(packageName)) {
+                throw new IllegalArgumentException("Invalid package name");
+            }
+            final int callingPid = Binder.getCallingPid();
+            final int callingUid = Binder.getCallingUid();
+            final int callingUserId = UserHandle.getCallingUserId();
+            final int userId = UserHandle.getUserId(uid);
+
+            mService.mUserController.handleIncomingUser(callingPid, callingUid, userId, true,
+                    ALLOW_NON_FULL, "getTraceFileDescriptor", null);
+            if (mService.enforceDumpPermissionForPackage(packageName, userId,
+                    callingUid, "getTraceFileDescriptor") != Process.INVALID_UID) {
+                synchronized (mLock) {
+                    final ApplicationExitInfo info = getExitInfoLocked(packageName, uid, pid);
+                    if (info == null) {
+                        return null;
+                    }
+                    final File traceFile = info.getTraceFile();
+                    if (traceFile == null) {
+                        return null;
+                    }
+                    final long identity = Binder.clearCallingIdentity();
+                    try {
+                        // The fd will be closed after being written into Parcel
+                        return ParcelFileDescriptor.open(traceFile,
+                                ParcelFileDescriptor.MODE_READ_ONLY);
+                    } catch (FileNotFoundException e) {
+                        return null;
+                    } finally {
+                        Binder.restoreCallingIdentity(identity);
+                    }
+                }
+            }
+            return null;
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/am/BugReportHandlerUtil.java b/services/core/java/com/android/server/am/BugReportHandlerUtil.java
index 03f4a54..ba89fce 100644
--- a/services/core/java/com/android/server/am/BugReportHandlerUtil.java
+++ b/services/core/java/com/android/server/am/BugReportHandlerUtil.java
@@ -16,20 +16,15 @@
 
 package com.android.server.am;
 
-import static android.app.AppOpsManager.OP_NONE;
 import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM;
 import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME;
 
-import android.app.Activity;
 import android.app.BroadcastOptions;
-import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.os.Binder;
-import android.os.BugreportManager;
-import android.os.BugreportParams;
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.text.TextUtils;
@@ -115,17 +110,9 @@
         options.setBackgroundActivityStartsAllowed(true);
         final long identity = Binder.clearCallingIdentity();
         try {
-            // Handler app's BroadcastReceiver should call setResultCode(Activity.RESULT_OK) to
-            // let ResultBroadcastReceiver know the handler app is available.
-            context.sendOrderedBroadcastAsUser(intent,
-                    UserHandle.of(handlerUser),
+            context.sendBroadcastAsUser(intent, UserHandle.of(handlerUser),
                     android.Manifest.permission.DUMP,
-                    OP_NONE, options.toBundle(),
-                    new ResultBroadcastReceiver(),
-                    /* scheduler= */ null,
-                    Activity.RESULT_CANCELED,
-                    /* initialData= */ null,
-                    /* initialExtras= */ null);
+                    options.toBundle());
         } catch (RuntimeException e) {
             Slog.e(TAG, "Error while trying to launch bugreport handler app.", e);
             return false;
@@ -189,19 +176,4 @@
             Binder.restoreCallingIdentity(identity);
         }
     }
-
-    private static class ResultBroadcastReceiver extends BroadcastReceiver {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if (getResultCode() == Activity.RESULT_OK) {
-                return;
-            }
-
-            Slog.w(TAG, "Request bug report because handler app seems to be not available.");
-            BugreportManager bugreportManager = context.getSystemService(BugreportManager.class);
-            bugreportManager.requestBugreport(
-                    new BugreportParams(BugreportParams.BUGREPORT_MODE_INTERACTIVE),
-                    /* shareTitle= */null, /* shareDescription= */ null);
-        }
-    }
 }
diff --git a/services/core/java/com/android/server/am/EventLogTags.logtags b/services/core/java/com/android/server/am/EventLogTags.logtags
index cc5df40..17f4187 100644
--- a/services/core/java/com/android/server/am/EventLogTags.logtags
+++ b/services/core/java/com/android/server/am/EventLogTags.logtags
@@ -93,3 +93,16 @@
 
 # The task is being unfrozen
 30069 am_unfreeze (Pid|1|5),(Process Name|3)
+
+# User switch events
+30070 uc_finish_user_unlocking (UID|1|5)
+30071 uc_finish_user_unlocked (UID|1|5)
+30072 uc_finish_user_unlocked_completed (UID|1|5)
+30073 uc_finish_user_stopping (UID|1|5)
+30074 uc_finish_user_stopped (UID|1|5)
+30075 uc_switch_user (UID|1|5)
+30076 uc_start_user_internal (UID|1|5)
+30077 uc_unlock_user (UID|1|5)
+30078 uc_finish_user_boot (UID|1|5)
+30079 uc_dispatch_user_switch (oldUID|1|5) (newUID|1|5)
+30080 uc_continue_user_switch (oldUID|1|5) (newUID|1|5)
diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java
index 2b1534b..d4a0502 100644
--- a/services/core/java/com/android/server/am/OomAdjuster.java
+++ b/services/core/java/com/android/server/am/OomAdjuster.java
@@ -1520,8 +1520,16 @@
                                         != 0 ? PROCESS_CAPABILITY_FOREGROUND_MICROPHONE
                                         : TEMP_PROCESS_CAPABILITY_FOREGROUND_MICROPHONE;
                     } else {
-                        capabilityFromFGS |= PROCESS_CAPABILITY_FOREGROUND_CAMERA
-                                | PROCESS_CAPABILITY_FOREGROUND_MICROPHONE;
+                        // Remove fgsType check and assign PROCESS_CAPABILITY_FOREGROUND_CAMERA
+                        // and MICROPHONE when finish debugging.
+                        capabilityFromFGS |=
+                                (fgsType & FOREGROUND_SERVICE_TYPE_CAMERA)
+                                        != 0 ? PROCESS_CAPABILITY_FOREGROUND_CAMERA
+                                        : TEMP_PROCESS_CAPABILITY_FOREGROUND_CAMERA;
+                        capabilityFromFGS |=
+                                (fgsType & FOREGROUND_SERVICE_TYPE_MICROPHONE)
+                                        != 0 ? PROCESS_CAPABILITY_FOREGROUND_MICROPHONE
+                                        : TEMP_PROCESS_CAPABILITY_FOREGROUND_MICROPHONE;
                     }
                 }
             }
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index 16a7c6b..4d08bd2 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -71,7 +71,6 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageManagerInternal;
-import android.content.pm.ProcessInfo;
 import android.content.res.Resources;
 import android.graphics.Point;
 import android.net.LocalSocket;
@@ -99,7 +98,6 @@
 import android.system.Os;
 import android.text.TextUtils;
 import android.util.ArrayMap;
-import android.util.ArraySet;
 import android.util.EventLog;
 import android.util.LongSparseArray;
 import android.util.Pair;
@@ -138,10 +136,8 @@
 import java.util.Arrays;
 import java.util.BitSet;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 /**
  * Activity manager code dealing with processes.
@@ -512,13 +508,6 @@
      */
     private final int[] mZygoteSigChldMessage = new int[3];
 
-    interface LmkdKillListener {
-        /**
-         * Called when there is a process kill by lmkd.
-         */
-        void onLmkdKillOccurred(int pid, int uid);
-    }
-
     final class IsolatedUidRange {
         @VisibleForTesting
         public final int mFirstUid;
@@ -1676,16 +1665,19 @@
 
     private int decideGwpAsanLevel(ProcessRecord app) {
         // Look at the process attribute first.
-        if (app.processInfo != null && app.processInfo.enableGwpAsan != null) {
-            return app.processInfo.enableGwpAsan ? Zygote.GWP_ASAN_LEVEL_ALWAYS
-                                                 : Zygote.GWP_ASAN_LEVEL_NEVER;
+       if (app.processInfo != null
+                && app.processInfo.gwpAsanMode != ApplicationInfo.GWP_ASAN_DEFAULT) {
+            return app.processInfo.gwpAsanMode == ApplicationInfo.GWP_ASAN_ALWAYS
+                    ? Zygote.GWP_ASAN_LEVEL_ALWAYS
+                    : Zygote.GWP_ASAN_LEVEL_NEVER;
         }
         // Then at the applicaton attribute.
-        if (app.info.isGwpAsanEnabled() != null) {
-            return app.info.isGwpAsanEnabled() ? Zygote.GWP_ASAN_LEVEL_ALWAYS
-                                               : Zygote.GWP_ASAN_LEVEL_NEVER;
+        if (app.info.getGwpAsanMode() != ApplicationInfo.GWP_ASAN_DEFAULT) {
+            return app.info.getGwpAsanMode() == ApplicationInfo.GWP_ASAN_ALWAYS
+                    ? Zygote.GWP_ASAN_LEVEL_ALWAYS
+                    : Zygote.GWP_ASAN_LEVEL_NEVER;
         }
-        // If the app does not specify enableGwpAsan, the default behavior is lottery among the
+        // If the app does not specify gwpAsanMode, the default behavior is lottery among the
         // system apps, and disabled for user apps, unless overwritten by the compat feature.
         if (mPlatformCompat.isChangeEnabled(GWP_ASAN, app.info)) {
             return Zygote.GWP_ASAN_LEVEL_ALWAYS;
diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java
index e7f66bb..68bb8f5 100644
--- a/services/core/java/com/android/server/am/ProcessRecord.java
+++ b/services/core/java/com/android/server/am/ProcessRecord.java
@@ -385,8 +385,8 @@
                     pw.println(processInfo.deniedPermissions.valueAt(i));
                 }
             }
-            if (processInfo.enableGwpAsan != null) {
-                pw.print(prefix); pw.println("  enableGwpAsan=" + processInfo.enableGwpAsan);
+            if (processInfo.gwpAsanMode != ApplicationInfo.GWP_ASAN_DEFAULT) {
+                pw.print(prefix); pw.println("  gwpAsanMode=" + processInfo.gwpAsanMode);
             }
         }
         pw.print(prefix); pw.print("mRequiredAbi="); pw.print(mRequiredAbi);
@@ -640,9 +640,10 @@
                     _service.mPackageManagerInt.getProcessesForUid(_uid);
             if (processes != null) {
                 procInfo = processes.get(_processName);
-                if (procInfo != null && procInfo.deniedPermissions == null) {
-                    // If this process hasn't asked for permissions to be denied, then
-                    // we don't care about it.
+                if (procInfo != null && procInfo.deniedPermissions == null
+                        && procInfo.gwpAsanMode == ApplicationInfo.GWP_ASAN_DEFAULT) {
+                    // If this process hasn't asked for permissions to be denied, or for a
+                    // non-default GwpAsan mode, then we don't care about it.
                     procInfo = null;
                 }
             }
@@ -1621,9 +1622,11 @@
         // For background ANRs, don't pass the ProcessCpuTracker to
         // avoid spending 1/2 second collecting stats to rank lastPids.
         StringWriter tracesFileException = new StringWriter();
+        // To hold the start and end offset to the ANR trace file respectively.
+        final long[] offsets = new long[2];
         File tracesFile = ActivityManagerService.dumpStackTraces(firstPids,
                 (isSilentAnr()) ? null : processCpuTracker, (isSilentAnr()) ? null : lastPids,
-                nativePids, tracesFileException);
+                nativePids, tracesFileException, offsets);
 
         if (isMonitorCpuUsage()) {
             mService.updateCpuStatsNow();
@@ -1641,6 +1644,10 @@
         if (tracesFile == null) {
             // There is no trace file, so dump (only) the alleged culprit's threads to the log
             Process.sendSignal(pid, Process.SIGNAL_QUIT);
+        } else if (offsets[1] > 0) {
+            // We've dumped into the trace file successfully
+            mService.mProcessList.mAppExitInfoTracker.scheduleLogAnrTrace(
+                    pid, uid, getPackageList(), tracesFile, offsets[0], offsets[1]);
         }
 
         FrameworkStatsLog.write(FrameworkStatsLog.ANR_OCCURRED, uid, processName,
diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java
index 343b4ba..636a0e9 100644
--- a/services/core/java/com/android/server/am/UserController.java
+++ b/services/core/java/com/android/server/am/UserController.java
@@ -83,6 +83,7 @@
 import android.os.storage.StorageManager;
 import android.text.format.DateUtils;
 import android.util.ArraySet;
+import android.util.EventLog;
 import android.util.IntArray;
 import android.util.Pair;
 import android.util.Slog;
@@ -382,8 +383,8 @@
 
     private void finishUserBoot(UserState uss, IIntentReceiver resultTo) {
         final int userId = uss.mHandle.getIdentifier();
+        EventLog.writeEvent(EventLogTags.UC_FINISH_USER_BOOT, userId);
 
-        Slog.d(TAG, "Finishing user boot " + userId);
         synchronized (mLock) {
             // Bail if we ended up with a stale user
             if (mStartedUsers.get(userId) != uss) {
@@ -451,7 +452,7 @@
      */
     private boolean finishUserUnlocking(final UserState uss) {
         final int userId = uss.mHandle.getIdentifier();
-        Slog.d(TAG, "UserController event: finishUserUnlocking(" + userId + ")");
+        EventLog.writeEvent(EventLogTags.UC_FINISH_USER_UNLOCKING, userId);
         // Only keep marching forward if user is actually unlocked
         if (!StorageManager.isUserKeyUnlocked(userId)) return false;
         synchronized (mLock) {
@@ -496,7 +497,7 @@
      */
     void finishUserUnlocked(final UserState uss) {
         final int userId = uss.mHandle.getIdentifier();
-        Slog.d(TAG, "UserController event: finishUserUnlocked(" + userId + ")");
+        EventLog.writeEvent(EventLogTags.UC_FINISH_USER_UNLOCKED, userId);
         // Only keep marching forward if user is actually unlocked
         if (!StorageManager.isUserKeyUnlocked(userId)) return;
         synchronized (mLock) {
@@ -567,7 +568,7 @@
 
     private void finishUserUnlockedCompleted(UserState uss) {
         final int userId = uss.mHandle.getIdentifier();
-        Slog.d(TAG, "UserController event: finishUserUnlockedCompleted(" + userId + ")");
+        EventLog.writeEvent(EventLogTags.UC_FINISH_USER_UNLOCKED_COMPLETED, userId);
         synchronized (mLock) {
             // Bail if we ended up with a stale user
             if (mStartedUsers.get(uss.mHandle.getIdentifier()) != uss) return;
@@ -830,7 +831,7 @@
 
     void finishUserStopping(final int userId, final UserState uss,
             final boolean allowDelayedLocking) {
-        Slog.d(TAG, "UserController event: finishUserStopping(" + userId + ")");
+        EventLog.writeEvent(EventLogTags.UC_FINISH_USER_STOPPING, userId);
         // On to the next.
         final Intent shutdownIntent = new Intent(Intent.ACTION_SHUTDOWN);
         // This is the result receiver for the final shutdown broadcast.
@@ -870,7 +871,7 @@
 
     void finishUserStopped(UserState uss, boolean allowDelayedLocking) {
         final int userId = uss.mHandle.getIdentifier();
-        Slog.d(TAG, "UserController event: finishUserStopped(" + userId + ")");
+        EventLog.writeEvent(EventLogTags.UC_FINISH_USER_STOPPED, userId);
         final boolean stopped;
         boolean lockUser = true;
         final ArrayList<IStopUserCallback> stopCallbacks;
@@ -1147,7 +1148,7 @@
 
     private boolean startUserInternal(@UserIdInt int userId, boolean foreground,
             @Nullable IProgressListener unlockListener, @NonNull TimingsTraceAndSlog t) {
-        Slog.i(TAG, "Starting userid:" + userId + " fg:" + foreground);
+        EventLog.writeEvent(EventLogTags.UC_START_USER_INTERNAL, userId);
 
         final int callingUid = Binder.getCallingUid();
         final int callingPid = Binder.getCallingPid();
@@ -1396,7 +1397,7 @@
     boolean unlockUser(final @UserIdInt int userId, byte[] token, byte[] secret,
             IProgressListener listener) {
         checkCallingPermission(INTERACT_ACROSS_USERS_FULL, "unlockUser");
-        Slog.i(TAG, "unlocking user " + userId);
+        EventLog.writeEvent(EventLogTags.UC_UNLOCK_USER, userId);
         final long binderToken = Binder.clearCallingIdentity();
         try {
             return unlockUserCleared(userId, token, secret, listener);
@@ -1481,7 +1482,7 @@
 
     boolean switchUser(final int targetUserId) {
         enforceShellRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES, targetUserId);
-        Slog.i(TAG, "switching to user " + targetUserId);
+        EventLog.writeEvent(EventLogTags.UC_SWITCH_USER, targetUserId);
         int currentUserId = getCurrentUserId();
         UserInfo targetUserInfo = getUserInfo(targetUserId);
         if (targetUserId == currentUserId) {
@@ -1604,7 +1605,8 @@
     }
 
     void dispatchUserSwitch(final UserState uss, final int oldUserId, final int newUserId) {
-        Slog.d(TAG, "Dispatch onUserSwitching oldUser #" + oldUserId + " newUser #" + newUserId);
+        EventLog.writeEvent(EventLogTags.UC_DISPATCH_USER_SWITCH, oldUserId, newUserId);
+
         final int observerCount = mUserSwitchObservers.beginBroadcast();
         if (observerCount > 0) {
             final ArraySet<String> curWaitingUserSwitchCallbacks = new ArraySet<>();
@@ -1666,7 +1668,8 @@
     }
 
     void continueUserSwitch(UserState uss, int oldUserId, int newUserId) {
-        Slog.d(TAG, "Continue user switch oldUser #" + oldUserId + ", newUser #" + newUserId);
+        EventLog.writeEvent(EventLogTags.UC_CONTINUE_USER_SWITCH, oldUserId, newUserId);
+
         if (isUserSwitchUiEnabled()) {
             mInjector.getWindowManager().stopFreezingScreen();
         }
diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java
index 2e2241f..6613d5f 100644
--- a/services/core/java/com/android/server/appop/AppOpsService.java
+++ b/services/core/java/com/android/server/appop/AppOpsService.java
@@ -670,15 +670,19 @@
         }
 
         // TODO: remove this toast after feature development is done
-        // If the procstate is foreground service and while-in-use permission is denied, show a
-        // toast message to ask user to file a bugreport so we know how many apps are impacted by
-        // the new background started foreground service while-in-use permission restriction.
+        // For DEBUG_FGS_ALLOW_WHILE_IN_USE, if the procstate is foreground service and while-in-use
+        // permission is denied, show a toast message and generate a WTF log so we know
+        // how many apps are impacted by the new background started foreground service while-in-use
+        // permission restriction.
+        // For DEBUG_FGS_ENFORCE_TYPE, The process has a foreground service that does not have
+        // camera/microphone foregroundServiceType in manifest file, and the process is asking
+        // AppOps for camera/microphone ops, show a toast message and generate a WTF log.
         void maybeShowWhileInUseDebugToast(int op, int mode) {
-            if (state != UID_STATE_FOREGROUND_SERVICE) {
+            if (mode == DEBUG_FGS_ALLOW_WHILE_IN_USE && state != UID_STATE_FOREGROUND_SERVICE) {
                 return;
             }
             final long now = System.currentTimeMillis();
-            if (lastTimeShowDebugToast == 0 ||  now - lastTimeShowDebugToast > 3600000) {
+            if (lastTimeShowDebugToast == 0 ||  now - lastTimeShowDebugToast > 600000) {
                 lastTimeShowDebugToast = now;
                 mHandler.sendMessage(PooledLambda.obtainMessage(
                         ActivityManagerInternal::showWhileInUseDebugToast,
diff --git a/services/core/java/com/android/server/attention/AttentionManagerService.java b/services/core/java/com/android/server/attention/AttentionManagerService.java
index 42fbfec..50ec040 100644
--- a/services/core/java/com/android/server/attention/AttentionManagerService.java
+++ b/services/core/java/com/android/server/attention/AttentionManagerService.java
@@ -16,6 +16,9 @@
 
 package com.android.server.attention;
 
+import static android.content.Context.BIND_AUTO_CREATE;
+import static android.content.Context.BIND_FOREGROUND_SERVICE;
+import static android.content.Context.BIND_INCLUDE_CAPABILITIES;
 import static android.provider.DeviceConfig.NAMESPACE_ATTENTION_MANAGER_SERVICE;
 import static android.service.attention.AttentionService.ATTENTION_FAILURE_CANCELLED;
 import static android.service.attention.AttentionService.ATTENTION_FAILURE_UNKNOWN;
@@ -583,8 +586,8 @@
                         mComponentName);
                 // Note: no reason to clear the calling identity, we won't have one in a handler.
                 mContext.bindServiceAsUser(serviceIntent, mConnection,
-                        Context.BIND_AUTO_CREATE, UserHandle.CURRENT);
-
+                        BIND_AUTO_CREATE | BIND_FOREGROUND_SERVICE | BIND_INCLUDE_CAPABILITIES,
+                        UserHandle.CURRENT);
             });
         }
 
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index f3d42ad..8bce504 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -634,6 +634,9 @@
         }
     };
 
+    @GuardedBy("mSettingsLock")
+    private boolean mRttEnabled = false;
+
     ///////////////////////////////////////////////////////////////////////////
     // Construction
     ///////////////////////////////////////////////////////////////////////////
@@ -693,7 +696,7 @@
             AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_VOICE_CALL] = defaultCallVolume;
         } else {
             AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_VOICE_CALL] =
-                    (maxCallVolume * 3) / 4;
+                    (MAX_STREAM_VOLUME[AudioSystem.STREAM_VOICE_CALL] * 3) / 4;
         }
 
         int maxMusicVolume = SystemProperties.getInt("ro.config.media_vol_steps", -1);
@@ -776,6 +779,8 @@
 
         mDeviceBroker = new AudioDeviceBroker(mContext, this);
 
+        mRecordMonitor = new RecordingActivityMonitor(mContext);
+
         // must be called before readPersistedSettings() which needs a valid mStreamVolumeAlias[]
         // array initialized by updateStreamVolumeAlias()
         updateStreamVolumeAlias(false /*updateVolumes*/, TAG);
@@ -797,8 +802,6 @@
 
         mMediaFocusControl = new MediaFocusControl(mContext, mPlaybackMonitor);
 
-        mRecordMonitor = new RecordingActivityMonitor(mContext);
-
         readAndSetLowRamDevice();
 
         mIsCallScreeningModeSupported = AudioSystem.isCallScreeningModeSupported();
@@ -1053,7 +1056,7 @@
             sendEncodedSurroundMode(mContentResolver, "onAudioServerDied");
             sendEnabledSurroundFormats(mContentResolver, true);
             updateAssistantUId(true);
-            updateRttEanbled(mContentResolver);
+            AudioSystem.setRttEnabled(mRttEnabled);
         }
         synchronized (mAccessibilityServiceUidsLock) {
             AudioSystem.setA11yServicesUids(mAccessibilityServiceUids);
@@ -1598,12 +1601,6 @@
         }
     }
 
-    private void updateRttEanbled(ContentResolver cr) {
-        final boolean rttEnabled = Settings.Secure.getIntForUser(cr,
-                    Settings.Secure.RTT_CALLING_MODE, 0, UserHandle.USER_CURRENT) != 0;
-        AudioSystem.setRttEnabled(rttEnabled);
-    }
-
     private void readPersistedSettings() {
         final ContentResolver cr = mContentResolver;
 
@@ -1648,7 +1645,7 @@
             sendEncodedSurroundMode(cr, "readPersistedSettings");
             sendEnabledSurroundFormats(cr, true);
             updateAssistantUId(true);
-            updateRttEanbled(cr);
+            AudioSystem.setRttEnabled(mRttEnabled);
         }
 
         mMuteAffectedStreams = System.getIntForUser(cr,
@@ -1981,8 +1978,7 @@
         }
 
         flags &= ~AudioManager.FLAG_FIXED_VOLUME;
-        if ((streamTypeAlias == AudioSystem.STREAM_MUSIC) &&
-                mFixedVolumeDevices.contains(device)) {
+        if (streamTypeAlias == AudioSystem.STREAM_MUSIC && isFixedVolumeDevice(device)) {
             flags |= AudioManager.FLAG_FIXED_VOLUME;
 
             // Always toggle between max safe volume and 0 for fixed volume devices where safe
@@ -2059,7 +2055,7 @@
                     !checkSafeMediaVolume(streamTypeAlias, aliasIndex + step, device)) {
                 Log.e(TAG, "adjustStreamVolume() safe volume index = " + oldIndex);
                 mVolumeController.postDisplaySafeVolumeWarning(flags);
-            } else if (!mFullVolumeDevices.contains(device)
+            } else if (!isFullVolumeDevice(device)
                     && (streamState.adjustIndex(direction * step, device, caller)
                             || streamState.mIsMuted)) {
                 // Post message to set system volume (it in turn will post a
@@ -2121,7 +2117,7 @@
                     if (mHdmiCecSink
                             && streamTypeAlias == AudioSystem.STREAM_MUSIC
                             // vol change on a full volume device
-                            && mFullVolumeDevices.contains(device)) {
+                            && isFullVolumeDevice(device)) {
                         int keyCode = KeyEvent.KEYCODE_UNKNOWN;
                         switch (direction) {
                             case AudioManager.ADJUST_RAISE:
@@ -2325,6 +2321,13 @@
 
         // For legacy reason, propagate to all streams associated to this volume group
         for (final int groupedStream : vgs.getLegacyStreamTypes()) {
+            try {
+                ensureValidStreamType(groupedStream);
+            } catch (IllegalArgumentException e) {
+                Log.d(TAG, "volume group " + volumeGroup + " has internal streams (" + groupedStream
+                        + "), do not change associated stream volume");
+                continue;
+            }
             setStreamVolume(groupedStream, index, flags, callingPackage, callingPackage,
                             Binder.getCallingUid());
         }
@@ -2590,8 +2593,7 @@
             }
 
             flags &= ~AudioManager.FLAG_FIXED_VOLUME;
-            if ((streamTypeAlias == AudioSystem.STREAM_MUSIC) &&
-                    mFixedVolumeDevices.contains(device)) {
+            if (streamTypeAlias == AudioSystem.STREAM_MUSIC && isFixedVolumeDevice(device)) {
                 flags |= AudioManager.FLAG_FIXED_VOLUME;
 
                 // volume is either 0 or max allowed for fixed volume devices
@@ -2780,7 +2782,7 @@
 
         if (streamType == AudioSystem.STREAM_MUSIC) {
             flags = updateFlagsForTvPlatform(flags);
-            if (mFullVolumeDevices.contains(device)) {
+            if (isFullVolumeDevice(device)) {
                 flags &= ~AudioManager.FLAG_SHOW_UI;
             }
         }
@@ -2826,7 +2828,7 @@
                                     int device,
                                     boolean force,
                                     String caller) {
-        if (mFullVolumeDevices.contains(device)) {
+        if (isFullVolumeDevice(device)) {
             return;
         }
         VolumeStreamState streamState = mStreamStates[streamType];
@@ -3036,7 +3038,7 @@
                 index = 0;
             }
             if (index != 0 && (mStreamVolumeAlias[streamType] == AudioSystem.STREAM_MUSIC) &&
-                    mFixedVolumeDevices.contains(device)) {
+                    isFixedVolumeDevice(device)) {
                 index = mStreamStates[streamType].getMaxIndex();
             }
             return (index + 5) / 10;
@@ -3679,6 +3681,27 @@
         return mIsCallScreeningModeSupported;
     }
 
+    /** @see AudioManager#setRttEnabled() */
+    @Override
+    public void setRttEnabled(boolean rttEnabled) {
+        if (mContext.checkCallingOrSelfPermission(
+                android.Manifest.permission.MODIFY_PHONE_STATE)
+                != PackageManager.PERMISSION_GRANTED) {
+            Log.w(TAG, "MODIFY_PHONE_STATE Permission Denial: setRttEnabled from pid="
+                    + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
+            return;
+        }
+        synchronized (mSettingsLock) {
+            mRttEnabled = rttEnabled;
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                AudioSystem.setRttEnabled(rttEnabled);
+            } finally {
+                Binder.restoreCallingIdentity(identity);
+            }
+        }
+    }
+
     //==========================================================================================
     // Sound Effects
     //==========================================================================================
@@ -4570,6 +4593,7 @@
     public void setWiredDeviceConnectionState(int type,
             @ConnectionState int state, String address, String name,
             String caller) {
+        enforceModifyAudioRoutingPermission();
         if (state != CONNECTION_STATE_CONNECTED
                 && state != CONNECTION_STATE_DISCONNECTED) {
             throw new IllegalArgumentException("Invalid state " + state);
@@ -4882,10 +4906,6 @@
 
         public void applyAllVolumes() {
             synchronized (VolumeGroupState.class) {
-                if (mLegacyStreamType != AudioSystem.STREAM_DEFAULT) {
-                    // No-op to avoid regression with stream based volume management
-                    return;
-                }
                 // apply device specific volumes first
                 int index;
                 for (int i = 0; i < mIndexMap.size(); i++) {
@@ -5165,7 +5185,7 @@
             } else if (AudioSystem.DEVICE_OUT_ALL_A2DP_SET.contains(device)
                     && isAvrcpAbsVolSupported) {
                 index = getAbsoluteVolumeIndex((getIndex(device) + 5)/10);
-            } else if (mFullVolumeDevices.contains(device)) {
+            } else if (isFullVolumeDevice(device)) {
                 index = (mIndexMax + 5)/10;
             } else if (device == AudioSystem.DEVICE_OUT_HEARING_AID) {
                 index = (mIndexMax + 5)/10;
@@ -5188,7 +5208,7 @@
                         } else if (AudioSystem.DEVICE_OUT_ALL_A2DP_SET.contains(device)
                                 && isAvrcpAbsVolSupported) {
                             index = getAbsoluteVolumeIndex((getIndex(device) + 5)/10);
-                        } else if (mFullVolumeDevices.contains(device)) {
+                        } else if (isFullVolumeDevice(device)) {
                             index = (mIndexMax + 5)/10;
                         } else if (device == AudioSystem.DEVICE_OUT_HEARING_AID) {
                             index = (mIndexMax + 5)/10;
@@ -5389,8 +5409,8 @@
                     for (int i = 0; i < mIndexMap.size(); i++) {
                         int device = mIndexMap.keyAt(i);
                         int index = mIndexMap.valueAt(i);
-                        if (mFullVolumeDevices.contains(device)
-                                || (mFixedVolumeDevices.contains(device) && index != 0)) {
+                        if (isFullVolumeDevice(device)
+                                || (isFixedVolumeDevice(device) && index != 0)) {
                             mIndexMap.put(device, mIndexMax);
                         }
                         applyDeviceVolume_syncVSS(device, isAvrcpAbsVolSupported);
@@ -5823,8 +5843,6 @@
 
             mContentResolver.registerContentObserver(Settings.Secure.getUriFor(
                     Settings.Secure.VOICE_INTERACTION_SERVICE), false, this);
-            mContentResolver.registerContentObserver(Settings.Secure.getUriFor(
-                    Settings.Secure.RTT_CALLING_MODE), false, this);
         }
 
         @Override
@@ -5848,7 +5866,6 @@
                 updateEncodedSurroundOutput();
                 sendEnabledSurroundFormats(mContentResolver, mSurroundModeChanged);
                 updateAssistantUId(false);
-                updateRttEanbled(mContentResolver);
             }
         }
 
@@ -8235,4 +8252,23 @@
             new HashMap<IBinder, AudioPolicyProxy>();
     @GuardedBy("mAudioPolicies")
     private int mAudioPolicyCounter = 0;
+
+    //======================
+    // Helper functions for full and fixed volume device
+    //======================
+    private boolean isFixedVolumeDevice(int deviceType) {
+        if (deviceType == AudioSystem.DEVICE_OUT_REMOTE_SUBMIX
+                && mRecordMonitor.isLegacyRemoteSubmixActive()) {
+            return false;
+        }
+        return mFixedVolumeDevices.contains(deviceType);
+    }
+
+    private boolean isFullVolumeDevice(int deviceType) {
+        if (deviceType == AudioSystem.DEVICE_OUT_REMOTE_SUBMIX
+                && mRecordMonitor.isLegacyRemoteSubmixActive()) {
+            return false;
+        }
+        return mFullVolumeDevices.contains(deviceType);
+    }
 }
diff --git a/services/core/java/com/android/server/audio/RecordingActivityMonitor.java b/services/core/java/com/android/server/audio/RecordingActivityMonitor.java
index 5c50962..65f2218 100644
--- a/services/core/java/com/android/server/audio/RecordingActivityMonitor.java
+++ b/services/core/java/com/android/server/audio/RecordingActivityMonitor.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.media.AudioDeviceInfo;
 import android.media.AudioFormat;
 import android.media.AudioManager;
 import android.media.AudioRecordingConfiguration;
@@ -35,6 +36,8 @@
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * Class to receive and dispatch updates from AudioSystem about recording configurations.
@@ -49,6 +52,16 @@
     // playback configurations that do not contain uid/package name information.
     private boolean mHasPublicClients = false;
 
+
+    // When legacy remote submix device is active, remote submix device should not be fixed and
+    // full volume device. When legacy remote submix device is active, there will be a recording
+    // activity using device with type as {@link AudioSystem.DEVICE_OUT_REMOTE_SUBMIX} and address
+    // as {@link AudioSystem.LEGACY_REMOTE_SUBMIX_ADDRESS}. Cache riid of legacy remote submix
+    // since remote submix state is not cached in mRecordStates.
+    private AtomicInteger mLegacyRemoteSubmixRiid =
+            new AtomicInteger(AudioManager.RECORD_RIID_INVALID);
+    private AtomicBoolean mLegacyRemoteSubmixActive = new AtomicBoolean(false);
+
     static final class RecordingState {
         private final int mRiid;
         private final RecorderDeathHandler mDeathHandler;
@@ -137,6 +150,16 @@
         final AudioRecordingConfiguration config = createRecordingConfiguration(
                 uid, session, source, recordingInfo,
                 portId, silenced, activeSource, clientEffects, effects);
+        if (source == MediaRecorder.AudioSource.REMOTE_SUBMIX) {
+            final AudioDeviceInfo device = config.getAudioDevice();
+            if (AudioSystem.LEGACY_REMOTE_SUBMIX_ADDRESS.equals(device.getAddress())) {
+                mLegacyRemoteSubmixRiid.set(riid);
+                if (event == AudioManager.RECORD_CONFIG_EVENT_START
+                        || event == AudioManager.RECORD_CONFIG_EVENT_UPDATE) {
+                    mLegacyRemoteSubmixActive.set(true);
+                }
+            }
+        }
         if (MediaRecorder.isSystemOnlyAudioSource(source)) {
             // still want to log event, it just won't appear in recording configurations;
             sEventLogger.log(new RecordingEvent(event, riid, config).printLog(TAG));
@@ -170,6 +193,9 @@
      * Receive an event from the client about a tracked recorder
      */
     public void recorderEvent(int riid, int event) {
+        if (mLegacyRemoteSubmixRiid.get() == riid) {
+            mLegacyRemoteSubmixActive.set(event == AudioManager.RECORDER_STATE_STARTED);
+        }
         int configEvent = event == AudioManager.RECORDER_STATE_STARTED
                 ? AudioManager.RECORD_CONFIG_EVENT_START :
                 event == AudioManager.RECORDER_STATE_STOPPED
@@ -323,6 +349,13 @@
     }
 
     /**
+     * Return true if legacy remote submix device is active. Otherwise, return false.
+     */
+    boolean isLegacyRemoteSubmixActive() {
+        return mLegacyRemoteSubmixActive.get();
+    }
+
+    /**
      * Create a recording configuration from the provided parameters
      * @param uid
      * @param session
diff --git a/services/core/java/com/android/server/biometrics/AuthService.java b/services/core/java/com/android/server/biometrics/AuthService.java
index d45ffd9..a0876c0 100644
--- a/services/core/java/com/android/server/biometrics/AuthService.java
+++ b/services/core/java/com/android/server/biometrics/AuthService.java
@@ -158,7 +158,8 @@
                     || bundle.getCharSequence(
                             BiometricPrompt.KEY_DEVICE_CREDENTIAL_SUBTITLE) != null
                     || bundle.getCharSequence(
-                            BiometricPrompt.KEY_DEVICE_CREDENTIAL_DESCRIPTION) != null) {
+                            BiometricPrompt.KEY_DEVICE_CREDENTIAL_DESCRIPTION) != null
+                    || bundle.getBoolean(BiometricPrompt.KEY_RECEIVE_SYSTEM_EVENTS, false)) {
                 checkInternalPermission();
             }
 
@@ -202,8 +203,7 @@
 
             // Only allow internal clients to call canAuthenticate with a different userId.
             final int callingUserId = UserHandle.getCallingUserId();
-            Slog.d(TAG, "canAuthenticate, userId: " + userId + ", callingUserId: " + callingUserId
-                    + ", authenticators: " + authenticators);
+
             if (userId != callingUserId) {
                 checkInternalPermission();
             } else {
@@ -212,8 +212,14 @@
 
             final long identity = Binder.clearCallingIdentity();
             try {
-                return mBiometricService.canAuthenticate(
+                final int result = mBiometricService.canAuthenticate(
                         opPackageName, userId, callingUserId, authenticators);
+                Slog.d(TAG, "canAuthenticate"
+                        + ", userId: " + userId
+                        + ", callingUserId: " + callingUserId
+                        + ", authenticators: " + authenticators
+                        + ", result: " + result);
+                return result;
             } finally {
                 Binder.restoreCallingIdentity(identity);
             }
diff --git a/services/core/java/com/android/server/biometrics/AuthenticationClient.java b/services/core/java/com/android/server/biometrics/AuthenticationClient.java
index 7bbda9f..5d334c2 100644
--- a/services/core/java/com/android/server/biometrics/AuthenticationClient.java
+++ b/services/core/java/com/android/server/biometrics/AuthenticationClient.java
@@ -20,14 +20,11 @@
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.biometrics.BiometricConstants;
 import android.hardware.biometrics.BiometricsProtoEnums;
-import android.hardware.biometrics.IBiometricNativeHandle;
 import android.os.IBinder;
-import android.os.NativeHandle;
 import android.os.RemoteException;
 import android.security.KeyStore;
 import android.util.Slog;
 
-import java.io.IOException;
 import java.util.ArrayList;
 
 /**
@@ -44,7 +41,6 @@
     public static final int LOCKOUT_PERMANENT = 2;
 
     private final boolean mRequireConfirmation;
-    private final NativeHandle mWindowId;
 
     // We need to track this state since it's possible for applications to request for
     // authentication while the device is already locked out. In that case, the client is created
@@ -70,28 +66,16 @@
 
     public abstract boolean wasUserDetected();
 
+    public abstract boolean isStrongBiometric();
+
     public AuthenticationClient(Context context, Constants constants,
             BiometricServiceBase.DaemonWrapper daemon, long halDeviceId, IBinder token,
             BiometricServiceBase.ServiceListener listener, int targetUserId, int groupId, long opId,
-            boolean restricted, String owner, int cookie, boolean requireConfirmation,
-            IBiometricNativeHandle windowId) {
+            boolean restricted, String owner, int cookie, boolean requireConfirmation) {
         super(context, constants, daemon, halDeviceId, token, listener, targetUserId, groupId,
                 restricted, owner, cookie);
         mOpId = opId;
         mRequireConfirmation = requireConfirmation;
-        mWindowId = Utils.dupNativeHandle(windowId);
-    }
-
-    @Override
-    public void destroy() {
-        if (mWindowId != null && mWindowId.getFileDescriptors() != null) {
-            try {
-                mWindowId.close();
-            } catch (IOException e) {
-                Slog.e(getLogTag(), "Failed to close windowId NativeHandle: ", e);
-            }
-        }
-        super.destroy();
     }
 
     protected long getStartTimeMs() {
@@ -185,9 +169,15 @@
                 }
                 if (isBiometricPrompt() && listener != null) {
                     // BiometricService will add the token to keystore
-                    listener.onAuthenticationSucceededInternal(mRequireConfirmation, byteToken);
+                    listener.onAuthenticationSucceededInternal(mRequireConfirmation, byteToken,
+                            isStrongBiometric());
                 } else if (!isBiometricPrompt() && listener != null) {
-                    KeyStore.getInstance().addAuthToken(byteToken);
+                    if (isStrongBiometric()) {
+                        KeyStore.getInstance().addAuthToken(byteToken);
+                    } else {
+                        Slog.d(getLogTag(), "Skipping addAuthToken");
+                    }
+
                     try {
                         // Explicitly have if/else here to make it super obvious in case the code is
                         // touched in the future.
@@ -251,7 +241,7 @@
         onStart();
         try {
             mStartTimeMs = System.currentTimeMillis();
-            final int result = getDaemonWrapper().authenticate(mOpId, getGroupId(), mWindowId);
+            final int result = getDaemonWrapper().authenticate(mOpId, getGroupId());
             if (result != 0) {
                 Slog.w(getLogTag(), "startAuthentication failed, result=" + result);
                 mMetricsLogger.histogram(mConstants.tagAuthStartError(), result);
diff --git a/services/core/java/com/android/server/biometrics/BiometricService.java b/services/core/java/com/android/server/biometrics/BiometricService.java
index e7c09ba..d49b590 100644
--- a/services/core/java/com/android/server/biometrics/BiometricService.java
+++ b/services/core/java/com/android/server/biometrics/BiometricService.java
@@ -112,6 +112,7 @@
     private static final int MSG_CANCEL_AUTHENTICATION = 10;
     private static final int MSG_ON_AUTHENTICATION_TIMED_OUT = 11;
     private static final int MSG_ON_DEVICE_CREDENTIAL_PRESSED = 12;
+    private static final int MSG_ON_SYSTEM_EVENT = 13;
 
     /**
      * Authentication either just called and we have not transitioned to the CALLED state, or
@@ -266,7 +267,8 @@
                     SomeArgs args = (SomeArgs) msg.obj;
                     handleAuthenticationSucceeded(
                             (boolean) args.arg1 /* requireConfirmation */,
-                            (byte[]) args.arg2 /* token */);
+                            (byte[]) args.arg2 /* token */,
+                            (boolean) args.arg3 /* isStrongBiometric */);
                     args.recycle();
                     break;
                 }
@@ -359,6 +361,11 @@
                     break;
                 }
 
+                case MSG_ON_SYSTEM_EVENT: {
+                    handleOnSystemEvent((int) msg.obj);
+                    break;
+                }
+
                 default:
                     Slog.e(TAG, "Unknown message: " + msg);
                     break;
@@ -568,10 +575,12 @@
     final IBiometricServiceReceiverInternal mInternalReceiver =
             new IBiometricServiceReceiverInternal.Stub() {
         @Override
-        public void onAuthenticationSucceeded(boolean requireConfirmation, byte[] token) {
+        public void onAuthenticationSucceeded(boolean requireConfirmation, byte[] token,
+                boolean isStrongBiometric) {
             SomeArgs args = SomeArgs.obtain();
             args.arg1 = requireConfirmation;
             args.arg2 = token;
+            args.arg3 = isStrongBiometric;
             mHandler.obtainMessage(MSG_ON_AUTHENTICATION_SUCCEEDED, args).sendToTarget();
         }
 
@@ -629,6 +638,11 @@
         public void onDeviceCredentialPressed() {
             mHandler.sendEmptyMessage(MSG_ON_DEVICE_CREDENTIAL_PRESSED);
         }
+
+        @Override
+        public void onSystemEvent(int event) {
+            mHandler.obtainMessage(MSG_ON_SYSTEM_EVENT, event).sendToTarget();
+        }
     };
 
 
@@ -761,8 +775,13 @@
                         + " config_biometric_sensors?");
             }
 
+            // Note that we allow BIOMETRIC_CONVENIENCE to register because BiometricService
+            // also does / will do other things such as keep track of lock screen timeout, etc.
+            // Just because a biometric is registered does not mean it can participate in
+            // the android.hardware.biometrics APIs.
             if (strength != Authenticators.BIOMETRIC_STRONG
-                    && strength != Authenticators.BIOMETRIC_WEAK) {
+                    && strength != Authenticators.BIOMETRIC_WEAK
+                    && strength != Authenticators.BIOMETRIC_CONVENIENCE) {
                 throw new IllegalStateException("Unsupported strength");
             }
 
@@ -1189,8 +1208,10 @@
                         BiometricConstants.BIOMETRIC_ERROR_NO_DEVICE_CREDENTIAL);
             }
         } else {
+            // This should not be possible via the public API surface and is here mainly for
+            // "correctness". An exception should have been thrown before getting here.
             Slog.e(TAG, "No authenticators requested");
-            return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE);
+            return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_NOT_PRESENT);
         }
     }
 
@@ -1286,7 +1307,8 @@
         return modality;
     }
 
-    private void handleAuthenticationSucceeded(boolean requireConfirmation, byte[] token) {
+    private void handleAuthenticationSucceeded(boolean requireConfirmation, byte[] token,
+            boolean isStrongBiometric) {
         try {
             // Should never happen, log this to catch bad HAL behavior (e.g. auth succeeded
             // after user dismissed/canceled dialog).
@@ -1295,9 +1317,16 @@
                 return;
             }
 
-            // Store the auth token and submit it to keystore after the dialog is confirmed /
-            // animating away.
-            mCurrentAuthSession.mTokenEscrow = token;
+            if (isStrongBiometric) {
+                // Store the auth token and submit it to keystore after the dialog is confirmed /
+                // animating away.
+                mCurrentAuthSession.mTokenEscrow = token;
+            } else {
+                if (token != null) {
+                    Slog.w(TAG, "Dropping authToken for non-strong biometric");
+                }
+            }
+
             if (!requireConfirmation) {
                 mCurrentAuthSession.mState = STATE_AUTHENTICATED_PENDING_SYSUI;
             } else {
@@ -1561,6 +1590,27 @@
         mCurrentAuthSession.mState = STATE_SHOWING_DEVICE_CREDENTIAL;
     }
 
+    private void handleOnSystemEvent(int event) {
+        final boolean shouldReceive = mCurrentAuthSession.mBundle
+                .getBoolean(BiometricPrompt.KEY_RECEIVE_SYSTEM_EVENTS, false);
+        Slog.d(TAG, "onSystemEvent: " + event + ", shouldReceive: " + shouldReceive);
+
+        if (mCurrentAuthSession == null) {
+            Slog.e(TAG, "Auth session null");
+            return;
+        }
+
+        if (!shouldReceive) {
+            return;
+        }
+
+        try {
+            mCurrentAuthSession.mClientReceiver.onSystemEvent(event);
+        } catch (RemoteException e) {
+            Slog.e(TAG, "RemoteException", e);
+        }
+    }
+
     /**
      * Invoked when each service has notified that its client is ready to be started. When
      * all biometrics are ready, this invokes the SystemUI dialog through StatusBar.
diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
index 49006de..45b9383 100644
--- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
+++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
@@ -32,7 +32,6 @@
 import android.hardware.biometrics.BiometricConstants;
 import android.hardware.biometrics.BiometricManager;
 import android.hardware.biometrics.BiometricsProtoEnums;
-import android.hardware.biometrics.IBiometricNativeHandle;
 import android.hardware.biometrics.IBiometricService;
 import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
 import android.hardware.biometrics.IBiometricServiceReceiverInternal;
@@ -44,7 +43,6 @@
 import android.os.IBinder;
 import android.os.IHwBinder;
 import android.os.IRemoteCallback;
-import android.os.NativeHandle;
 import android.os.PowerManager;
 import android.os.Process;
 import android.os.RemoteException;
@@ -223,10 +221,9 @@
 
         public AuthenticationClientImpl(Context context, DaemonWrapper daemon, long halDeviceId,
                 IBinder token, ServiceListener listener, int targetUserId, int groupId, long opId,
-                boolean restricted, String owner, int cookie, boolean requireConfirmation,
-                IBiometricNativeHandle windowId) {
+                boolean restricted, String owner, int cookie, boolean requireConfirmation) {
             super(context, getConstants(), daemon, halDeviceId, token, listener, targetUserId,
-                    groupId, opId, restricted, owner, cookie, requireConfirmation, windowId);
+                    groupId, opId, restricted, owner, cookie, requireConfirmation);
         }
 
         @Override
@@ -287,10 +284,10 @@
         public EnrollClientImpl(Context context, DaemonWrapper daemon, long halDeviceId,
                 IBinder token, ServiceListener listener, int userId, int groupId,
                 byte[] cryptoToken, boolean restricted, String owner,
-                final int[] disabledFeatures, int timeoutSec, IBiometricNativeHandle windowId) {
+                final int[] disabledFeatures, int timeoutSec) {
             super(context, getConstants(), daemon, halDeviceId, token, listener,
                     userId, groupId, cryptoToken, restricted, owner, getBiometricUtils(),
-                    disabledFeatures, timeoutSec, windowId);
+                    disabledFeatures, timeoutSec);
         }
 
         @Override
@@ -416,8 +413,8 @@
             throw new UnsupportedOperationException("Stub!");
         }
 
-        default void onAuthenticationSucceededInternal(boolean requireConfirmation, byte[] token)
-                throws RemoteException {
+        default void onAuthenticationSucceededInternal(boolean requireConfirmation, byte[] token,
+                boolean isStrongBiometric) throws RemoteException {
             throw new UnsupportedOperationException("Stub!");
         }
 
@@ -454,10 +451,11 @@
         }
 
         @Override
-        public void onAuthenticationSucceededInternal(boolean requireConfirmation, byte[] token)
-                throws RemoteException {
+        public void onAuthenticationSucceededInternal(boolean requireConfirmation, byte[] token,
+                boolean isStrongBiometric) throws RemoteException {
             if (getWrapperReceiver() != null) {
-                getWrapperReceiver().onAuthenticationSucceeded(requireConfirmation, token);
+                getWrapperReceiver().onAuthenticationSucceeded(requireConfirmation, token,
+                        isStrongBiometric);
             }
         }
 
@@ -476,13 +474,12 @@
      */
     protected interface DaemonWrapper {
         int ERROR_ESRCH = 3; // Likely HAL is dead. see errno.h.
-        int authenticate(long operationId, int groupId, NativeHandle windowId)
-                throws RemoteException;
+        int authenticate(long operationId, int groupId) throws RemoteException;
         int cancel() throws RemoteException;
         int remove(int groupId, int biometricId) throws RemoteException;
         int enumerate() throws RemoteException;
         int enroll(byte[] token, int groupId, int timeout,
-                ArrayList<Integer> disabledFeatures, NativeHandle windowId) throws RemoteException;
+                ArrayList<Integer> disabledFeatures) throws RemoteException;
         void resetLockout(byte[] token) throws RemoteException;
     }
 
diff --git a/services/core/java/com/android/server/biometrics/EnrollClient.java b/services/core/java/com/android/server/biometrics/EnrollClient.java
index 684795e..7ebb7c0 100644
--- a/services/core/java/com/android/server/biometrics/EnrollClient.java
+++ b/services/core/java/com/android/server/biometrics/EnrollClient.java
@@ -20,13 +20,10 @@
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.biometrics.BiometricConstants;
 import android.hardware.biometrics.BiometricsProtoEnums;
-import android.hardware.biometrics.IBiometricNativeHandle;
 import android.os.IBinder;
-import android.os.NativeHandle;
 import android.os.RemoteException;
 import android.util.Slog;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 
@@ -38,7 +35,6 @@
     private final BiometricUtils mBiometricUtils;
     private final int[] mDisabledFeatures;
     private final int mTimeoutSec;
-    private final NativeHandle mWindowId;
 
     private long mEnrollmentStartTimeMs;
 
@@ -48,26 +44,13 @@
             BiometricServiceBase.DaemonWrapper daemon, long halDeviceId, IBinder token,
             BiometricServiceBase.ServiceListener listener, int userId, int groupId,
             byte[] cryptoToken, boolean restricted, String owner, BiometricUtils utils,
-            final int[] disabledFeatures, int timeoutSec, IBiometricNativeHandle windowId) {
+            final int[] disabledFeatures, int timeoutSec) {
         super(context, constants, daemon, halDeviceId, token, listener, userId, groupId, restricted,
                 owner, 0 /* cookie */);
         mBiometricUtils = utils;
         mCryptoToken = Arrays.copyOf(cryptoToken, cryptoToken.length);
         mDisabledFeatures = Arrays.copyOf(disabledFeatures, disabledFeatures.length);
         mTimeoutSec = timeoutSec;
-        mWindowId = Utils.dupNativeHandle(windowId);
-    }
-
-    @Override
-    public void destroy() {
-        if (mWindowId != null && mWindowId.getFileDescriptors() != null) {
-            try {
-                mWindowId.close();
-            } catch (IOException e) {
-                Slog.e(getLogTag(), "Failed to close windowId NativeHandle: ", e);
-            }
-        }
-        super.destroy();
     }
 
     @Override
@@ -119,7 +102,7 @@
             }
 
             final int result = getDaemonWrapper().enroll(mCryptoToken, getGroupId(), mTimeoutSec,
-                    disabledFeatures, mWindowId);
+                    disabledFeatures);
             if (result != 0) {
                 Slog.w(getLogTag(), "startEnroll failed, result=" + result);
                 mMetricsLogger.histogram(mConstants.tagEnrollStartError(), result);
diff --git a/services/core/java/com/android/server/biometrics/Utils.java b/services/core/java/com/android/server/biometrics/Utils.java
index 3235499..14378da 100644
--- a/services/core/java/com/android/server/biometrics/Utils.java
+++ b/services/core/java/com/android/server/biometrics/Utils.java
@@ -23,17 +23,12 @@
 import android.hardware.biometrics.BiometricManager;
 import android.hardware.biometrics.BiometricPrompt;
 import android.hardware.biometrics.BiometricPrompt.AuthenticationResultType;
-import android.hardware.biometrics.IBiometricNativeHandle;
 import android.os.Build;
 import android.os.Bundle;
-import android.os.NativeHandle;
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.util.Slog;
 
-import java.io.FileDescriptor;
-import java.io.IOException;
-
 public class Utils {
     public static boolean isDebugEnabled(Context context, int targetUserId) {
         if (targetUserId == UserHandle.USER_NULL) {
@@ -261,31 +256,4 @@
                 throw new IllegalArgumentException("Unsupported dismissal reason: " + reason);
         }
     }
-
-    /**
-     * Converts an {@link IBiometricNativeHandle} to a {@link NativeHandle} by duplicating the
-     * the underlying file descriptors.
-     *
-     * Both the original and new handle must be closed after use.
-     *
-     * @param h {@link IBiometricNativeHandle} received as a binder call argument. Usually used to
-     *          identify a WindowManager window. Can be null.
-     * @return A {@link NativeHandle} representation of {@code h}. Will be null if either {@code h}
-     *          or its contents are null.
-     */
-    public static NativeHandle dupNativeHandle(IBiometricNativeHandle h) {
-        NativeHandle handle = null;
-        if (h != null && h.fds != null && h.ints != null) {
-            FileDescriptor[] fds = new FileDescriptor[h.fds.length];
-            for (int i = 0; i < h.fds.length; ++i) {
-                try {
-                    fds[i] = h.fds[i].dup().getFileDescriptor();
-                } catch (IOException e) {
-                    return null;
-                }
-            }
-            handle = new NativeHandle(fds, h.ints, true /* own */);
-        }
-        return handle;
-    }
 }
diff --git a/services/core/java/com/android/server/biometrics/face/FaceService.java b/services/core/java/com/android/server/biometrics/face/FaceService.java
index f222f39..3ecf87c 100644
--- a/services/core/java/com/android/server/biometrics/face/FaceService.java
+++ b/services/core/java/com/android/server/biometrics/face/FaceService.java
@@ -34,7 +34,6 @@
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.biometrics.BiometricConstants;
 import android.hardware.biometrics.BiometricsProtoEnums;
-import android.hardware.biometrics.IBiometricNativeHandle;
 import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
 import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.hardware.biometrics.face.V1_0.IBiometricsFace;
@@ -215,10 +214,9 @@
         public FaceAuthClient(Context context,
                 DaemonWrapper daemon, long halDeviceId, IBinder token,
                 ServiceListener listener, int targetUserId, int groupId, long opId,
-                boolean restricted, String owner, int cookie, boolean requireConfirmation,
-                IBiometricNativeHandle windowId) {
+                boolean restricted, String owner, int cookie, boolean requireConfirmation) {
             super(context, daemon, halDeviceId, token, listener, targetUserId, groupId, opId,
-                    restricted, owner, cookie, requireConfirmation, windowId);
+                    restricted, owner, cookie, requireConfirmation);
         }
 
         @Override
@@ -238,6 +236,11 @@
         }
 
         @Override
+        public boolean isStrongBiometric() {
+            return FaceService.this.isStrongBiometric();
+        }
+
+        @Override
         public boolean onAuthenticated(BiometricAuthenticator.Identifier identifier,
                 boolean authenticated, ArrayList<Byte> token) {
             final boolean result = super.onAuthenticated(identifier, authenticated, token);
@@ -375,7 +378,7 @@
         @Override // Binder call
         public void enroll(int userId, final IBinder token, final byte[] cryptoToken,
                 final IFaceServiceReceiver receiver, final String opPackageName,
-                final int[] disabledFeatures, IBiometricNativeHandle windowId) {
+                final int[] disabledFeatures) {
             checkPermission(MANAGE_BIOMETRIC);
             updateActiveGroup(userId, opPackageName);
 
@@ -386,7 +389,7 @@
             final EnrollClientImpl client = new EnrollClientImpl(getContext(), mDaemonWrapper,
                     mHalDeviceId, token, new ServiceListenerImpl(receiver), mCurrentUserId,
                     0 /* groupId */, cryptoToken, restricted, opPackageName, disabledFeatures,
-                    ENROLL_TIMEOUT_SEC, windowId) {
+                    ENROLL_TIMEOUT_SEC) {
 
                 @Override
                 public int[] getAcquireIgnorelist() {
@@ -413,14 +416,6 @@
         }
 
         @Override // Binder call
-        public void enrollRemotely(int userId, final IBinder token, final byte[] cryptoToken,
-                final IFaceServiceReceiver receiver, final String opPackageName,
-                final int[] disabledFeatures) {
-            checkPermission(MANAGE_BIOMETRIC);
-            // TODO(b/145027036): Implement this.
-        }
-
-        @Override // Binder call
         public void cancelEnrollment(final IBinder token) {
             checkPermission(MANAGE_BIOMETRIC);
             cancelEnrollmentInternal(token);
@@ -436,7 +431,7 @@
             final AuthenticationClientImpl client = new FaceAuthClient(getContext(),
                     mDaemonWrapper, mHalDeviceId, token, new ServiceListenerImpl(receiver),
                     mCurrentUserId, 0 /* groupId */, opId, restricted, opPackageName,
-                    0 /* cookie */, false /* requireConfirmation */, null /* windowId */);
+                    0 /* cookie */, false /* requireConfirmation */);
             authenticateInternal(client, opId, opPackageName);
         }
 
@@ -452,7 +447,7 @@
                     mDaemonWrapper, mHalDeviceId, token,
                     new BiometricPromptServiceListenerImpl(wrapperReceiver),
                     mCurrentUserId, 0 /* groupId */, opId, restricted, opPackageName, cookie,
-                    requireConfirmation, null /* windowId */);
+                    requireConfirmation);
             authenticateInternal(client, opId, opPackageName, callingUid, callingPid,
                     callingUserId);
         }
@@ -986,8 +981,7 @@
      */
     private final DaemonWrapper mDaemonWrapper = new DaemonWrapper() {
         @Override
-        public int authenticate(long operationId, int groupId, NativeHandle windowId)
-                throws RemoteException {
+        public int authenticate(long operationId, int groupId) throws RemoteException {
             IBiometricsFace daemon = getFaceDaemon();
             if (daemon == null) {
                 Slog.w(TAG, "authenticate(): no face HAL!");
@@ -1028,7 +1022,7 @@
 
         @Override
         public int enroll(byte[] cryptoToken, int groupId, int timeout,
-                ArrayList<Integer> disabledFeatures, NativeHandle windowId) throws RemoteException {
+                ArrayList<Integer> disabledFeatures) throws RemoteException {
             IBiometricsFace daemon = getFaceDaemon();
             if (daemon == null) {
                 Slog.w(TAG, "enroll(): no face HAL!");
@@ -1038,17 +1032,7 @@
             for (int i = 0; i < cryptoToken.length; i++) {
                 token.add(cryptoToken[i]);
             }
-            android.hardware.biometrics.face.V1_1.IBiometricsFace daemon11 =
-                    android.hardware.biometrics.face.V1_1.IBiometricsFace.castFrom(
-                            daemon);
-            if (daemon11 != null) {
-                return daemon11.enroll_1_1(token, timeout, disabledFeatures, windowId);
-            } else if (windowId == null) {
-                return daemon.enroll(token, timeout, disabledFeatures);
-            } else {
-                Slog.e(TAG, "enroll(): windowId is only supported in @1.1 HAL");
-                return ERROR_ESRCH;
-            }
+            return daemon.enroll(token, timeout, disabledFeatures);
         }
 
         @Override
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintAuthenticator.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintAuthenticator.java
index 5bbeef1..4604752 100644
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintAuthenticator.java
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintAuthenticator.java
@@ -38,7 +38,7 @@
             String opPackageName, int cookie, int callingUid, int callingPid, int callingUserId)
             throws RemoteException {
         mFingerprintService.prepareForAuthentication(token, sessionId, userId, wrapperReceiver,
-                opPackageName, cookie, callingUid, callingPid, callingUserId, null /* windowId */);
+                opPackageName, cookie, callingUid, callingPid, callingUserId);
     }
 
     @Override
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
index 4d55450..8520f5a 100644
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
@@ -38,7 +38,6 @@
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.biometrics.BiometricConstants;
 import android.hardware.biometrics.BiometricsProtoEnums;
-import android.hardware.biometrics.IBiometricNativeHandle;
 import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
 import android.hardware.biometrics.IBiometricServiceReceiverInternal;
 import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
@@ -52,7 +51,6 @@
 import android.os.Build;
 import android.os.Environment;
 import android.os.IBinder;
-import android.os.NativeHandle;
 import android.os.RemoteException;
 import android.os.SELinux;
 import android.os.SystemClock;
@@ -135,9 +133,9 @@
                 DaemonWrapper daemon, long halDeviceId, IBinder token,
                 ServiceListener listener, int targetUserId, int groupId, long opId,
                 boolean restricted, String owner, int cookie,
-                boolean requireConfirmation, IBiometricNativeHandle windowId) {
+                boolean requireConfirmation) {
             super(context, daemon, halDeviceId, token, listener, targetUserId, groupId, opId,
-                    restricted, owner, cookie, requireConfirmation, windowId);
+                    restricted, owner, cookie, requireConfirmation);
         }
 
         @Override
@@ -163,6 +161,11 @@
         }
 
         @Override
+        public boolean isStrongBiometric() {
+            return FingerprintService.this.isStrongBiometric();
+        }
+
+        @Override
         public int handleFailedAttempt() {
             final int currentUser = ActivityManager.getCurrentUser();
             mFailedAttempts.put(currentUser, mFailedAttempts.get(currentUser, 0) + 1);
@@ -201,7 +204,7 @@
         @Override // Binder call
         public void enroll(final IBinder token, final byte[] cryptoToken, final int userId,
                 final IFingerprintServiceReceiver receiver, final int flags,
-                final String opPackageName, IBiometricNativeHandle windowId) {
+                final String opPackageName) {
             checkPermission(MANAGE_FINGERPRINT);
 
             final boolean restricted = isRestricted();
@@ -209,7 +212,7 @@
             final EnrollClientImpl client = new EnrollClientImpl(getContext(), mDaemonWrapper,
                     mHalDeviceId, token, new ServiceListenerImpl(receiver), mCurrentUserId, groupId,
                     cryptoToken, restricted, opPackageName, new int[0] /* disabledFeatures */,
-                    ENROLL_TIMEOUT_SEC, windowId) {
+                    ENROLL_TIMEOUT_SEC) {
                 @Override
                 public boolean shouldVibrate() {
                     return true;
@@ -233,22 +236,20 @@
         @Override // Binder call
         public void authenticate(final IBinder token, final long opId, final int groupId,
                 final IFingerprintServiceReceiver receiver, final int flags,
-                final String opPackageName, IBiometricNativeHandle windowId) {
+                final String opPackageName) {
             updateActiveGroup(groupId, opPackageName);
             final boolean restricted = isRestricted();
             final AuthenticationClientImpl client = new FingerprintAuthClient(getContext(),
                     mDaemonWrapper, mHalDeviceId, token, new ServiceListenerImpl(receiver),
                     mCurrentUserId, groupId, opId, restricted, opPackageName,
-                    0 /* cookie */, false /* requireConfirmation */,
-                    windowId);
+                    0 /* cookie */, false /* requireConfirmation */);
             authenticateInternal(client, opId, opPackageName);
         }
 
         @Override // Binder call
         public void prepareForAuthentication(IBinder token, long opId, int groupId,
                 IBiometricServiceReceiverInternal wrapperReceiver, String opPackageName,
-                int cookie, int callingUid, int callingPid, int callingUserId,
-                IBiometricNativeHandle windowId) {
+                int cookie, int callingUid, int callingPid, int callingUserId) {
             checkPermission(MANAGE_BIOMETRIC);
             updateActiveGroup(groupId, opPackageName);
             final boolean restricted = true; // BiometricPrompt is always restricted
@@ -256,8 +257,7 @@
                     mDaemonWrapper, mHalDeviceId, token,
                     new BiometricPromptServiceListenerImpl(wrapperReceiver),
                     mCurrentUserId, groupId, opId, restricted, opPackageName, cookie,
-                    false /* requireConfirmation */,
-                    windowId);
+                    false /* requireConfirmation */);
             authenticateInternal(client, opId, opPackageName, callingUid, callingPid,
                     callingUserId);
         }
@@ -656,24 +656,13 @@
      */
     private final DaemonWrapper mDaemonWrapper = new DaemonWrapper() {
         @Override
-        public int authenticate(long operationId, int groupId, NativeHandle windowId)
-                throws RemoteException {
+        public int authenticate(long operationId, int groupId) throws RemoteException {
             IBiometricsFingerprint daemon = getFingerprintDaemon();
             if (daemon == null) {
                 Slog.w(TAG, "authenticate(): no fingerprint HAL!");
                 return ERROR_ESRCH;
             }
-            android.hardware.biometrics.fingerprint.V2_2.IBiometricsFingerprint daemon22 =
-                    android.hardware.biometrics.fingerprint.V2_2.IBiometricsFingerprint.castFrom(
-                            daemon);
-            if (daemon22 != null) {
-                return daemon22.authenticate_2_2(operationId, groupId, windowId);
-            } else if (windowId == null) {
-                return daemon.authenticate(operationId, groupId);
-            } else {
-                Slog.e(TAG, "authenticate(): windowId is only supported in @2.2 HAL");
-                return ERROR_ESRCH;
-            }
+            return daemon.authenticate(operationId, groupId);
         }
 
         @Override
@@ -708,27 +697,13 @@
 
         @Override
         public int enroll(byte[] cryptoToken, int groupId, int timeout,
-                ArrayList<Integer> disabledFeatures, NativeHandle windowId) throws RemoteException {
+                ArrayList<Integer> disabledFeatures) throws RemoteException {
             IBiometricsFingerprint daemon = getFingerprintDaemon();
             if (daemon == null) {
                 Slog.w(TAG, "enroll(): no fingerprint HAL!");
                 return ERROR_ESRCH;
             }
-            android.hardware.biometrics.fingerprint.V2_2.IBiometricsFingerprint daemon22 =
-                    android.hardware.biometrics.fingerprint.V2_2.IBiometricsFingerprint.castFrom(
-                            daemon);
-            if (daemon22 != null) {
-                ArrayList<Byte> cryptoTokenAsList = new ArrayList<>(cryptoToken.length);
-                for (byte b : cryptoToken) {
-                    cryptoTokenAsList.add(b);
-                }
-                return daemon22.enroll_2_2(cryptoTokenAsList, groupId, timeout, windowId);
-            } else if (windowId == null) {
-                return daemon.enroll(cryptoToken, groupId, timeout);
-            } else {
-                Slog.e(TAG, "enroll(): windowId is only supported in @2.2 HAL");
-                return ERROR_ESRCH;
-            }
+            return daemon.enroll(cryptoToken, groupId, timeout);
         }
 
         @Override
diff --git a/services/core/java/com/android/server/compat/PlatformCompat.java b/services/core/java/com/android/server/compat/PlatformCompat.java
index 44f571a..8ed864c 100644
--- a/services/core/java/com/android/server/compat/PlatformCompat.java
+++ b/services/core/java/com/android/server/compat/PlatformCompat.java
@@ -355,7 +355,7 @@
         if (change.getLoggingOnly()) {
             return false;
         }
-        if (change.getEnableAfterTargetSdk() != 0) {
+        if (change.getEnableAfterTargetSdk() > 0) {
             if (change.getEnableAfterTargetSdk() < sMinTargetSdk
                     || change.getEnableAfterTargetSdk() > sMaxTargetSdk) {
                 return false;
diff --git a/services/core/java/com/android/server/connectivity/KeepaliveTracker.java b/services/core/java/com/android/server/connectivity/KeepaliveTracker.java
index 5059a48..7c8fb5a 100644
--- a/services/core/java/com/android/server/connectivity/KeepaliveTracker.java
+++ b/services/core/java/com/android/server/connectivity/KeepaliveTracker.java
@@ -220,9 +220,9 @@
                     + " network=" + mNai.network
                     + " startedState=" + startedStateString(mStartedState)
                     + " "
-                    + IpUtils.addressAndPortToString(mPacket.srcAddress, mPacket.srcPort)
+                    + IpUtils.addressAndPortToString(mPacket.getSrcAddress(), mPacket.getSrcPort())
                     + "->"
-                    + IpUtils.addressAndPortToString(mPacket.dstAddress, mPacket.dstPort)
+                    + IpUtils.addressAndPortToString(mPacket.getDstAddress(), mPacket.getDstPort())
                     + " interval=" + mInterval
                     + " uid=" + mUid + " pid=" + mPid + " privileged=" + mPrivileged
                     + " packetData=" + HexDump.toHexString(mPacket.getPacket())
@@ -250,7 +250,7 @@
         private int checkSourceAddress() {
             // Check that we have the source address.
             for (InetAddress address : mNai.linkProperties.getAddresses()) {
-                if (address.equals(mPacket.srcAddress)) {
+                if (address.equals(mPacket.getSrcAddress())) {
                     return SUCCESS;
                 }
             }
@@ -619,7 +619,7 @@
             packet = NattKeepalivePacketData.nattKeepalivePacket(
                     srcAddress, srcPort, dstAddress, NATT_PORT);
         } catch (InvalidPacketException e) {
-            notifyErrorCallback(cb, e.error);
+            notifyErrorCallback(cb, e.getError());
             return;
         }
         KeepaliveInfo ki = null;
@@ -662,7 +662,7 @@
             notifyErrorCallback(cb, e.error);
             return;
         } catch (InvalidPacketException e) {
-            notifyErrorCallback(cb, e.error);
+            notifyErrorCallback(cb, e.getError());
             return;
         }
         KeepaliveInfo ki = null;
diff --git a/services/core/java/com/android/server/connectivity/MultipathPolicyTracker.java b/services/core/java/com/android/server/connectivity/MultipathPolicyTracker.java
index 04c792a..d548871 100644
--- a/services/core/java/com/android/server/connectivity/MultipathPolicyTracker.java
+++ b/services/core/java/com/android/server/connectivity/MultipathPolicyTracker.java
@@ -25,6 +25,7 @@
 import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
 import static android.net.NetworkPolicy.LIMIT_DISABLED;
 import static android.net.NetworkPolicy.WARNING_DISABLED;
+import static android.net.NetworkTemplate.NETWORK_TYPE_ALL;
 import static android.provider.Settings.Global.NETWORK_DEFAULT_DAILY_MULTIPATH_QUOTA_BYTES;
 import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
 
@@ -220,7 +221,7 @@
             mNetworkTemplate = new NetworkTemplate(
                     NetworkTemplate.MATCH_MOBILE, subscriberId, new String[] { subscriberId },
                     null, NetworkStats.METERED_ALL, NetworkStats.ROAMING_ALL,
-                    NetworkStats.DEFAULT_NETWORK_NO);
+                    NetworkStats.DEFAULT_NETWORK_NO, NETWORK_TYPE_ALL);
             mUsageCallback = new UsageCallback() {
                 @Override
                 public void onThresholdReached(int networkType, String subscriberId) {
diff --git a/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java b/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java
index 0925de8..34b0aa2 100644
--- a/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java
+++ b/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java
@@ -150,7 +150,7 @@
         if (nai != null) {
             transportType = approximateTransportType(nai);
             final String extraInfo = nai.networkInfo.getExtraInfo();
-            name = TextUtils.isEmpty(extraInfo) ? nai.networkCapabilities.getSSID() : extraInfo;
+            name = TextUtils.isEmpty(extraInfo) ? nai.networkCapabilities.getSsid() : extraInfo;
             // Only notify for Internet-capable networks.
             if (!nai.networkCapabilities.hasCapability(NET_CAPABILITY_INTERNET)) return;
         } else {
@@ -183,14 +183,14 @@
         int icon = getIcon(transportType);
         if (notifyType == NotificationType.NO_INTERNET && transportType == TRANSPORT_WIFI) {
             title = r.getString(R.string.wifi_no_internet,
-                    WifiInfo.sanitizeSsid(nai.networkCapabilities.getSSID()));
+                    WifiInfo.sanitizeSsid(nai.networkCapabilities.getSsid()));
             details = r.getString(R.string.wifi_no_internet_detailed);
         } else if (notifyType == NotificationType.PRIVATE_DNS_BROKEN) {
             if (transportType == TRANSPORT_CELLULAR) {
                 title = r.getString(R.string.mobile_no_internet);
             } else if (transportType == TRANSPORT_WIFI) {
                 title = r.getString(R.string.wifi_no_internet,
-                        WifiInfo.sanitizeSsid(nai.networkCapabilities.getSSID()));
+                        WifiInfo.sanitizeSsid(nai.networkCapabilities.getSsid()));
             } else {
                 title = r.getString(R.string.other_networks_no_internet);
             }
@@ -198,19 +198,19 @@
         } else if (notifyType == NotificationType.PARTIAL_CONNECTIVITY
                 && transportType == TRANSPORT_WIFI) {
             title = r.getString(R.string.network_partial_connectivity,
-                    WifiInfo.sanitizeSsid(nai.networkCapabilities.getSSID()));
+                    WifiInfo.sanitizeSsid(nai.networkCapabilities.getSsid()));
             details = r.getString(R.string.network_partial_connectivity_detailed);
         } else if (notifyType == NotificationType.LOST_INTERNET &&
                 transportType == TRANSPORT_WIFI) {
             title = r.getString(R.string.wifi_no_internet,
-                    WifiInfo.sanitizeSsid(nai.networkCapabilities.getSSID()));
+                    WifiInfo.sanitizeSsid(nai.networkCapabilities.getSsid()));
             details = r.getString(R.string.wifi_no_internet_detailed);
         } else if (notifyType == NotificationType.SIGN_IN) {
             switch (transportType) {
                 case TRANSPORT_WIFI:
                     title = r.getString(R.string.wifi_available_sign_in, 0);
                     details = r.getString(R.string.network_available_sign_in_detailed,
-                            WifiInfo.sanitizeSsid(nai.networkCapabilities.getSSID()));
+                            WifiInfo.sanitizeSsid(nai.networkCapabilities.getSsid()));
                     break;
                 case TRANSPORT_CELLULAR:
                     title = r.getString(R.string.network_available_sign_in, 0);
diff --git a/services/core/java/com/android/server/display/DisplayInfoProxy.java b/services/core/java/com/android/server/display/DisplayInfoProxy.java
new file mode 100644
index 0000000..2854495
--- /dev/null
+++ b/services/core/java/com/android/server/display/DisplayInfoProxy.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.display;
+
+import android.annotation.Nullable;
+import android.hardware.display.DisplayManagerGlobal;
+import android.view.DisplayInfo;
+
+/**
+ * Class for wrapping access of DisplayInfo objects by LogicalDisplay so that we can appropriately
+ * invalidate caches when they change.
+ */
+public class DisplayInfoProxy {
+    private DisplayInfo mInfo;
+
+    public DisplayInfoProxy(@Nullable DisplayInfo info) {
+        mInfo = info;
+    }
+
+    /**
+     * Set the current {@link DisplayInfo}.
+     *
+     * The also automatically invalidates the display info caches across the entire system.
+     * @param info the new {@link DisplayInfo}.
+     */
+    public void set(@Nullable DisplayInfo info) {
+        mInfo = info;
+        DisplayManagerGlobal.invalidateLocalDisplayInfoCaches();
+    }
+
+    /**
+     * Returns the current {@link DisplayInfo}.
+     *
+     * This info <b>must</b> be treated as immutable. Modifying the returned object is undefined
+     * behavior that <b>will</b> result in inconsistent states across the system.
+     *
+     * @return the current {@link DisplayInfo}
+     */
+    @Nullable
+    public DisplayInfo get() {
+        return mInfo;
+    }
+}
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index 1ff8a94..a232051 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -215,6 +215,7 @@
     private final ArrayList<DisplayDevice> mDisplayDevices = new ArrayList<DisplayDevice>();
 
     // List of all logical displays indexed by logical display id.
+    // Any modification to mLogicalDisplays must invalidate the DisplayManagerGlobal cache.
     private final SparseArray<LogicalDisplay> mLogicalDisplays =
             new SparseArray<LogicalDisplay>();
     private int mNextNonDefaultDisplayId = Display.DEFAULT_DISPLAY + 1;
@@ -373,6 +374,10 @@
         }
         mHandler.sendEmptyMessage(MSG_REGISTER_DEFAULT_DISPLAY_ADAPTERS);
 
+        // If there was a runtime restart then we may have stale caches left around, so we need to
+        // make sure to invalidate them upon every start.
+        DisplayManagerGlobal.invalidateLocalDisplayInfoCaches();
+
         publishBinderService(Context.DISPLAY_SERVICE, new BinderService(),
                 true /*allowIsolated*/);
         publishLocalService(DisplayManagerInternal.class, new LocalService());
@@ -1005,9 +1010,17 @@
         if (displayId == Display.DEFAULT_DISPLAY) {
             recordTopInsetLocked(display);
         }
+        // We don't bother invalidating the display info caches here because any changes to the
+        // display info will trigger a cache invalidation inside of LogicalDisplay before we hit
+        // this point.
         sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_CHANGED);
     }
 
+    private void handleLogicalDisplayRemoved(int displayId) {
+        DisplayManagerGlobal.invalidateLocalDisplayInfoCaches();
+        sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_REMOVED);
+    }
+
     private void applyGlobalDisplayStateLocked(List<Runnable> workQueue) {
         final int count = mDisplayDevices.size();
         for (int i = 0; i < count; i++) {
@@ -1066,6 +1079,7 @@
         }
 
         mLogicalDisplays.put(displayId, display);
+        DisplayManagerGlobal.invalidateLocalDisplayInfoCaches();
 
         // Wake up waitForDefaultDisplay.
         if (isDefault) {
@@ -1206,7 +1220,7 @@
             display.updateLocked(mDisplayDevices);
             if (!display.isValidLocked()) {
                 mLogicalDisplays.removeAt(i);
-                sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_REMOVED);
+                handleLogicalDisplayRemoved(displayId);
                 changed = true;
             } else if (!mTempDisplayInfo.equals(display.getDisplayInfoLocked())) {
                 handleLogicalDisplayChanged(displayId, display);
diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
index 05a757b..8eb7710 100644
--- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
@@ -646,7 +646,9 @@
                                     + "id=" + physicalDisplayId
                                     + ", state=" + Display.stateToString(state) + ")");
                         }
-                        mBacklight.setVrMode(isVrEnabled);
+                        if (mBacklight != null) {
+                            mBacklight.setVrMode(isVrEnabled);
+                        }
                     }
 
                     private void setDisplayState(int state) {
@@ -708,7 +710,9 @@
                                         BrightnessSynchronizer.brightnessFloatToInt(getContext(),
                                                 brightness));
                             }
-                            mBacklight.setBrightness(brightness);
+                            if (mBacklight != null) {
+                                mBacklight.setBrightness(brightness);
+                            }
                             Trace.traceCounter(Trace.TRACE_TAG_POWER,
                                     "ScreenBrightness",
                                     BrightnessSynchronizer.brightnessFloatToInt(
diff --git a/services/core/java/com/android/server/display/LogicalDisplay.java b/services/core/java/com/android/server/display/LogicalDisplay.java
index ac81a6c..3a5aa93 100644
--- a/services/core/java/com/android/server/display/LogicalDisplay.java
+++ b/services/core/java/com/android/server/display/LogicalDisplay.java
@@ -77,7 +77,7 @@
      * needs to be updated.
      * @see #getDisplayInfoLocked()
      */
-    private DisplayInfo mInfo;
+    private final DisplayInfoProxy mInfo = new DisplayInfoProxy(null);
 
     // The display device that this logical display is based on and which
     // determines the base metrics that it uses.
@@ -141,26 +141,27 @@
      * the data changes.
      */
     public DisplayInfo getDisplayInfoLocked() {
-        if (mInfo == null) {
-            mInfo = new DisplayInfo();
-            mInfo.copyFrom(mBaseDisplayInfo);
+        if (mInfo.get() == null) {
+            DisplayInfo info = new DisplayInfo();
+            info.copyFrom(mBaseDisplayInfo);
             if (mOverrideDisplayInfo != null) {
-                mInfo.appWidth = mOverrideDisplayInfo.appWidth;
-                mInfo.appHeight = mOverrideDisplayInfo.appHeight;
-                mInfo.smallestNominalAppWidth = mOverrideDisplayInfo.smallestNominalAppWidth;
-                mInfo.smallestNominalAppHeight = mOverrideDisplayInfo.smallestNominalAppHeight;
-                mInfo.largestNominalAppWidth = mOverrideDisplayInfo.largestNominalAppWidth;
-                mInfo.largestNominalAppHeight = mOverrideDisplayInfo.largestNominalAppHeight;
-                mInfo.logicalWidth = mOverrideDisplayInfo.logicalWidth;
-                mInfo.logicalHeight = mOverrideDisplayInfo.logicalHeight;
-                mInfo.rotation = mOverrideDisplayInfo.rotation;
-                mInfo.displayCutout = mOverrideDisplayInfo.displayCutout;
-                mInfo.logicalDensityDpi = mOverrideDisplayInfo.logicalDensityDpi;
-                mInfo.physicalXDpi = mOverrideDisplayInfo.physicalXDpi;
-                mInfo.physicalYDpi = mOverrideDisplayInfo.physicalYDpi;
+                info.appWidth = mOverrideDisplayInfo.appWidth;
+                info.appHeight = mOverrideDisplayInfo.appHeight;
+                info.smallestNominalAppWidth = mOverrideDisplayInfo.smallestNominalAppWidth;
+                info.smallestNominalAppHeight = mOverrideDisplayInfo.smallestNominalAppHeight;
+                info.largestNominalAppWidth = mOverrideDisplayInfo.largestNominalAppWidth;
+                info.largestNominalAppHeight = mOverrideDisplayInfo.largestNominalAppHeight;
+                info.logicalWidth = mOverrideDisplayInfo.logicalWidth;
+                info.logicalHeight = mOverrideDisplayInfo.logicalHeight;
+                info.rotation = mOverrideDisplayInfo.rotation;
+                info.displayCutout = mOverrideDisplayInfo.displayCutout;
+                info.logicalDensityDpi = mOverrideDisplayInfo.logicalDensityDpi;
+                info.physicalXDpi = mOverrideDisplayInfo.physicalXDpi;
+                info.physicalYDpi = mOverrideDisplayInfo.physicalYDpi;
             }
+            mInfo.set(info);
         }
-        return mInfo;
+        return mInfo.get();
     }
 
     /**
@@ -181,17 +182,16 @@
         if (info != null) {
             if (mOverrideDisplayInfo == null) {
                 mOverrideDisplayInfo = new DisplayInfo(info);
-                mInfo = null;
+                mInfo.set(null);
                 return true;
-            }
-            if (!mOverrideDisplayInfo.equals(info)) {
+            } else if (!mOverrideDisplayInfo.equals(info)) {
                 mOverrideDisplayInfo.copyFrom(info);
-                mInfo = null;
+                mInfo.set(null);
                 return true;
             }
         } else if (mOverrideDisplayInfo != null) {
             mOverrideDisplayInfo = null;
-            mInfo = null;
+            mInfo.set(null);
             return true;
         }
         return false;
@@ -306,7 +306,7 @@
             mBaseDisplayInfo.displayId = mDisplayId;
 
             mPrimaryDisplayDeviceInfo = deviceInfo;
-            mInfo = null;
+            mInfo.set(null);
         }
     }
 
@@ -327,6 +327,7 @@
     private static Rect getMaskingInsets(DisplayDeviceInfo deviceInfo) {
         boolean maskCutout = (deviceInfo.flags & DisplayDeviceInfo.FLAG_MASK_DISPLAY_CUTOUT) != 0;
         if (maskCutout && deviceInfo.displayCutout != null) {
+            // getSafeInsets is fixed at creation time and cannot change
             return deviceInfo.displayCutout.getSafeInsets();
         } else {
             return new Rect();
diff --git a/services/core/java/com/android/server/incident/IncidentCompanionService.java b/services/core/java/com/android/server/incident/IncidentCompanionService.java
index 87fe785..ad08663 100644
--- a/services/core/java/com/android/server/incident/IncidentCompanionService.java
+++ b/services/core/java/com/android/server/incident/IncidentCompanionService.java
@@ -50,6 +50,9 @@
  */
 public class IncidentCompanionService extends SystemService {
     static final String TAG = "IncidentCompanionService";
+    // TODO(b/152289743): Expose below intent.
+    private static final String INTENT_CHECK_USER_CONSENT =
+            "com.android.internal.intent.action.CHECK_USER_CONSENT";
 
     /**
      * Dump argument for proxying restricted image dumps to the services
@@ -89,6 +92,12 @@
 
             final long ident = Binder.clearCallingIdentity();
             try {
+                Intent intent = new Intent(INTENT_CHECK_USER_CONSENT);
+                intent.setPackage(callingPackage);
+                intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+                intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
+                getContext().sendBroadcast(intent, android.Manifest.permission.DUMP);
+
                 mPendingReports.authorizeReport(callingUid, callingPackage,
                         receiverClass, reportId, flags, listener);
             } finally {
diff --git a/services/core/java/com/android/server/incident/PendingReports.java b/services/core/java/com/android/server/incident/PendingReports.java
index 9fcbab7..f39bebf 100644
--- a/services/core/java/com/android/server/incident/PendingReports.java
+++ b/services/core/java/com/android/server/incident/PendingReports.java
@@ -359,6 +359,8 @@
     private void sendBroadcast(ComponentName receiver, int primaryUser) {
         final Intent intent = new Intent(Intent.ACTION_PENDING_INCIDENT_REPORTS_CHANGED);
         intent.setComponent(receiver);
+        intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+        intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
         final BroadcastOptions options = BroadcastOptions.makeBasic();
         options.setBackgroundActivityStartsAllowed(true);
 
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index ca06b47..0b22586 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -60,6 +60,7 @@
 import android.os.Process;
 import android.os.RemoteException;
 import android.os.UserHandle;
+import android.provider.DeviceConfig;
 import android.provider.Settings;
 import android.provider.Settings.SettingNotFoundException;
 import android.text.TextUtils;
@@ -126,6 +127,9 @@
     private static final String EXCLUDED_DEVICES_PATH = "etc/excluded-input-devices.xml";
     private static final String PORT_ASSOCIATIONS_PATH = "etc/input-port-associations.xml";
 
+    // Feature flag name for the deep press feature
+    private static final String DEEP_PRESS_ENABLED = "deep_press_enabled";
+
     private static final int MSG_DELIVER_INPUT_DEVICES_CHANGED = 1;
     private static final int MSG_SWITCH_KEYBOARD_LAYOUT = 2;
     private static final int MSG_RELOAD_KEYBOARD_LAYOUTS = 3;
@@ -246,6 +250,7 @@
     private static native void nativeSetPointerCapture(long ptr, boolean detached);
     private static native boolean nativeCanDispatchToDisplay(long ptr, int deviceId, int displayId);
     private static native void nativeNotifyPortAssociationsChanged(long ptr);
+    private static native void nativeSetMotionClassifierEnabled(long ptr, boolean enabled);
 
     // Input event injection constants defined in InputDispatcher.h.
     private static final int INPUT_EVENT_INJECTION_SUCCEEDED = 0;
@@ -356,6 +361,7 @@
         registerPointerSpeedSettingObserver();
         registerShowTouchesSettingObserver();
         registerAccessibilityLargePointerSettingObserver();
+        registerLongPressTimeoutObserver();
 
         mContext.registerReceiver(new BroadcastReceiver() {
             @Override
@@ -363,12 +369,14 @@
                 updatePointerSpeedFromSettings();
                 updateShowTouchesFromSettings();
                 updateAccessibilityLargePointerFromSettings();
+                updateDeepPressStatusFromSettings("user switched");
             }
         }, new IntentFilter(Intent.ACTION_USER_SWITCHED), null, mHandler);
 
         updatePointerSpeedFromSettings();
         updateShowTouchesFromSettings();
         updateAccessibilityLargePointerFromSettings();
+        updateDeepPressStatusFromSettings("just booted");
     }
 
     // TODO(BT) Pass in parameter for bluetooth system
@@ -1600,7 +1608,7 @@
         setPointerSpeedUnchecked(speed);
     }
 
-    public void updatePointerSpeedFromSettings() {
+    private void updatePointerSpeedFromSettings() {
         int speed = getPointerSpeedSetting();
         setPointerSpeedUnchecked(speed);
     }
@@ -1632,7 +1640,7 @@
         return speed;
     }
 
-    public void updateShowTouchesFromSettings() {
+    private void updateShowTouchesFromSettings() {
         int setting = getShowTouchesSetting(0);
         nativeSetShowTouches(mPtr, setting != 0);
     }
@@ -1648,7 +1656,7 @@
                 }, UserHandle.USER_ALL);
     }
 
-    public void updateAccessibilityLargePointerFromSettings() {
+    private void updateAccessibilityLargePointerFromSettings() {
         final int accessibilityConfig = Settings.Secure.getIntForUser(
                 mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_LARGE_POINTER_ICON,
                 0, UserHandle.USER_CURRENT);
@@ -1667,6 +1675,34 @@
                 }, UserHandle.USER_ALL);
     }
 
+    private void updateDeepPressStatusFromSettings(String reason) {
+        // Not using ViewConfiguration.getLongPressTimeout here because it may return a stale value
+        final int timeout = Settings.Secure.getIntForUser(mContext.getContentResolver(),
+                Settings.Secure.LONG_PRESS_TIMEOUT, ViewConfiguration.DEFAULT_LONG_PRESS_TIMEOUT,
+                UserHandle.USER_CURRENT);
+        final boolean featureEnabledFlag =
+                DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_INPUT_NATIVE_BOOT,
+                        DEEP_PRESS_ENABLED, true /* default */);
+        final boolean enabled =
+                featureEnabledFlag && timeout <= ViewConfiguration.DEFAULT_LONG_PRESS_TIMEOUT;
+        Log.i(TAG,
+                (enabled ? "Enabling" : "Disabling") + " motion classifier because " + reason
+                + ": feature " + (featureEnabledFlag ? "enabled" : "disabled")
+                + ", long press timeout = " + timeout);
+        nativeSetMotionClassifierEnabled(mPtr, enabled);
+    }
+
+    private void registerLongPressTimeoutObserver() {
+        mContext.getContentResolver().registerContentObserver(
+                Settings.Secure.getUriFor(Settings.Secure.LONG_PRESS_TIMEOUT), true,
+                new ContentObserver(mHandler) {
+                    @Override
+                    public void onChange(boolean selfChange) {
+                        updateDeepPressStatusFromSettings("timeout changed");
+                    }
+                }, UserHandle.USER_ALL);
+    }
+
     private int getShowTouchesSetting(int defaultValue) {
         int result = defaultValue;
         try {
@@ -2465,5 +2501,11 @@
                 }
             }
         }
+
+        @Override
+        public boolean transferTouchFocus(@NonNull IBinder fromChannelToken,
+                @NonNull IBinder toChannelToken) {
+            return InputManagerService.this.transferTouchFocus(fromChannelToken, toChannelToken);
+        }
     }
 }
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java
index 68e6c18..d49d4b2 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java
@@ -18,6 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.UserIdInt;
+import android.os.IBinder;
 import android.view.inputmethod.InlineSuggestionsRequest;
 import android.view.inputmethod.InputMethodInfo;
 
@@ -92,6 +93,16 @@
     public abstract void registerInputMethodListListener(InputMethodListListener listener);
 
     /**
+     * Transfers input focus from a given input token to that of the IME window.
+     *
+     * @param sourceInputToken The source token.
+     * @param displayId The display hosting the IME window.
+     * @return {@code true} if the transfer is successful.
+     */
+    public abstract boolean transferTouchFocusToImeWindow(@NonNull IBinder sourceInputToken,
+            int displayId);
+
+    /**
      * Fake implementation of {@link InputMethodManagerInternal}.  All the methods do nothing.
      */
     private static final InputMethodManagerInternal NOP =
@@ -124,6 +135,12 @@
                 @Override
                 public void registerInputMethodListListener(InputMethodListListener listener) {
                 }
+
+                @Override
+                public boolean transferTouchFocusToImeWindow(@NonNull IBinder sourceInputToken,
+                        int displayId) {
+                    return false;
+                }
             };
 
     /**
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index 1869a46..37c0edc 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -65,6 +65,7 @@
 import android.graphics.Matrix;
 import android.graphics.drawable.Drawable;
 import android.hardware.display.DisplayManagerInternal;
+import android.hardware.input.InputManagerInternal;
 import android.inputmethodservice.InputMethodService;
 import android.net.Uri;
 import android.os.Binder;
@@ -307,6 +308,7 @@
     final SettingsObserver mSettingsObserver;
     final IWindowManager mIWindowManager;
     final WindowManagerInternal mWindowManagerInternal;
+    final InputManagerInternal mInputManagerInternal;
     private final DisplayManagerInternal mDisplayManagerInternal;
     final HandlerCaller mCaller;
     final boolean mHasFeature;
@@ -620,6 +622,13 @@
     int mCurTokenDisplayId = INVALID_DISPLAY;
 
     /**
+     * The host input token of the current active input method.
+     */
+    @GuardedBy("mMethodMap")
+    @Nullable
+    private IBinder mCurHostInputToken;
+
+    /**
      * The display ID of the input method indicates the fallback display which returned by
      * {@link #computeImeDisplayIdForTarget}.
      */
@@ -774,29 +783,35 @@
         private int mNextIndex = 0;
         private static final AtomicInteger sSequenceNumber = new AtomicInteger(0);
 
-        // TODO(b/141738570): add requestWindowToken to track who request show / hide softInput.
         private static final class Entry {
-            ClientState mClientState;
-            String mFocusedWindowString;
+            final ClientState mClientState;
             @SoftInputModeFlags
-            int mFocusedWindowSoftInputMode;
+            final int mFocusedWindowSoftInputMode;
             @SoftInputShowHideReason
-            int mReason;
-            boolean mRequestShowKeyboard;
+            final int mReason;
             // The timing of handling MSG_SHOW_SOFT_INPUT or MSG_HIDE_SOFT_INPUT.
-            long mTimestamp;
-            long mWallTime;
-            int mTargetDisplayId;
+            final long mTimestamp;
+            final long mWallTime;
+            final boolean mInFullscreenMode;
+            @NonNull
+            final String mFocusedWindowName;
+            @NonNull
+            final EditorInfo mEditorInfo;
+            @NonNull
+            final String mRequestWindowName;
 
-            Entry(ClientState client, String focusedWindow, @SoftInputModeFlags int softInputMode,
-                    @SoftInputShowHideReason int reason, boolean show) {
+            Entry(ClientState client, EditorInfo editorInfo, String focusedWindowName,
+                    @SoftInputModeFlags int softInputMode, @SoftInputShowHideReason int reason,
+                    boolean inFullscreenMode, String requestWindowName) {
                 mClientState = client;
-                mFocusedWindowString = focusedWindow;
+                mEditorInfo = editorInfo;
+                mFocusedWindowName = focusedWindowName;
                 mFocusedWindowSoftInputMode = softInputMode;
                 mReason = reason;
-                mRequestShowKeyboard = show;
                 mTimestamp = SystemClock.uptimeMillis();
                 mWallTime = System.currentTimeMillis();
+                mInFullscreenMode = inFullscreenMode;
+                mRequestWindowName = requestWindowName;
             }
         }
 
@@ -823,13 +838,24 @@
                         + " (timestamp=" + entry.mTimestamp + ")");
 
                 pw.print(prefix);
-                pw.print(" requestShowKeyboard=" + entry.mRequestShowKeyboard);
-                pw.print(" targetDisplayId=" + entry.mTargetDisplayId);
-                pw.println(" reason=" + entry.mReason);
+                pw.print(" reason=" + InputMethodDebug.softInputDisplayReasonToString(
+                        entry.mReason));
+                pw.println(" inFullscreenMode=" + entry.mInFullscreenMode);
 
                 pw.print(prefix);
-                pw.print(" requestClient=" + entry.mClientState);
-                pw.println(" focusedWindow=" + entry.mFocusedWindowString);
+                pw.println(" requestClient=" + entry.mClientState);
+
+                pw.print(prefix);
+                pw.println(" focusedWindowName=" + entry.mFocusedWindowName);
+
+                pw.print(prefix);
+                pw.println(" requestWindowName=" + entry.mRequestWindowName);
+
+                pw.print(prefix);
+                pw.print(" editorInfo: ");
+                pw.print(" inputType=" + entry.mEditorInfo.inputType);
+                pw.print(" privateImeOptions=" + entry.mEditorInfo.privateImeOptions);
+                pw.println(" fieldId (viewId)=" + entry.mEditorInfo.fieldId);
 
                 pw.print(prefix);
                 pw.println(" focusedWindowSoftInputMode=" + InputMethodDebug.softInputModeToString(
@@ -1598,6 +1624,7 @@
         mIWindowManager = IWindowManager.Stub.asInterface(
                 ServiceManager.getService(Context.WINDOW_SERVICE));
         mWindowManagerInternal = LocalServices.getService(WindowManagerInternal.class);
+        mInputManagerInternal = LocalServices.getService(InputManagerInternal.class);
         mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
         mImeDisplayValidator = displayId -> mWindowManagerInternal.shouldShowIme(displayId);
         mCaller = new HandlerCaller(context, null, new HandlerCaller.Callback() {
@@ -1970,7 +1997,8 @@
                 executeOrSendMessage(mCurMethod,
                         mCaller.obtainMessageOOO(MSG_INLINE_SUGGESTIONS_REQUEST, mCurMethod,
                                 requestInfo, new InlineSuggestionsRequestCallbackDecorator(callback,
-                                        imi.getPackageName(), mCurTokenDisplayId)));
+                                        imi.getPackageName(), mCurTokenDisplayId, mCurToken,
+                                        this)));
             } else {
                 callback.onInlineSuggestionsUnsupported();
             }
@@ -1992,12 +2020,19 @@
 
         private final int mImeDisplayId;
 
+        @NonNull
+        private final IBinder mImeToken;
+        @NonNull
+        private final InputMethodManagerService mImms;
+
         InlineSuggestionsRequestCallbackDecorator(
-                @NonNull IInlineSuggestionsRequestCallback callback,
-                @NonNull String imePackageName, int displayId) {
+                @NonNull IInlineSuggestionsRequestCallback callback, @NonNull String imePackageName,
+                int displayId, @NonNull IBinder imeToken, @NonNull InputMethodManagerService imms) {
             mCallback = callback;
             mImePackageName = imePackageName;
             mImeDisplayId = displayId;
+            mImeToken = imeToken;
+            mImms = imms;
         }
 
         @Override
@@ -2017,6 +2052,7 @@
                                 + "].");
             }
             request.setHostDisplayId(mImeDisplayId);
+            mImms.setCurHostInputToken(mImeToken, request.getHostInputToken());
             mCallback.onInlineSuggestionsRequest(request, callback, imeFieldId, inputViewStarted);
         }
 
@@ -2032,6 +2068,21 @@
     }
 
     /**
+     * Sets current host input token.
+     *
+     * @param callerImeToken the token has been made for the current active input method
+     * @param hostInputToken the host input token of the current active input method
+     */
+    void setCurHostInputToken(@NonNull IBinder callerImeToken, @Nullable IBinder hostInputToken) {
+        synchronized (mMethodMap) {
+            if (!calledWithValidTokenLocked(callerImeToken)) {
+                return;
+            }
+            mCurHostInputToken = hostInputToken;
+        }
+    }
+
+    /**
      * @param imiId if null, returns enabled subtypes for the current imi
      * @return enabled subtypes of the specified imi
      */
@@ -2532,6 +2583,7 @@
             updateSystemUiLocked(mImeWindowVis, mBackDisposition);
             mCurToken = null;
             mCurTokenDisplayId = INVALID_DISPLAY;
+            mCurHostInputToken = null;
         }
 
         mCurId = null;
@@ -4012,10 +4064,12 @@
                             + InputMethodDebug.softInputDisplayReasonToString(reason));
                     ((IInputMethod) args.arg1).showSoftInput(
                             (IBinder) args.arg3, msg.arg1, (ResultReceiver) args.arg2);
-                    mSoftInputShowHideHistory.addEntry(
-                            new SoftInputShowHideHistory.Entry(mCurClient,
-                                    InputMethodDebug.objToString(mCurFocusedWindow),
-                                    mCurFocusedWindowSoftInputMode, reason, true /* show */));
+                    mSoftInputShowHideHistory.addEntry(new SoftInputShowHideHistory.Entry(
+                            mCurClient, mCurAttribute,
+                            mWindowManagerInternal.getWindowName(mCurFocusedWindow),
+                            mCurFocusedWindowSoftInputMode, reason, mInFullscreenMode,
+                            mWindowManagerInternal.getWindowName(
+                                    mShowRequestWindowMap.get(args.arg3))));
                 } catch (RemoteException e) {
                 }
                 args.recycle();
@@ -4029,10 +4083,12 @@
                             + InputMethodDebug.softInputDisplayReasonToString(reason));
                     ((IInputMethod)args.arg1).hideSoftInput(
                             (IBinder) args.arg3, 0, (ResultReceiver)args.arg2);
-                    mSoftInputShowHideHistory.addEntry(
-                            new SoftInputShowHideHistory.Entry(mCurClient,
-                                    InputMethodDebug.objToString(mCurFocusedWindow),
-                                    mCurFocusedWindowSoftInputMode, reason, false /* show */));
+                    mSoftInputShowHideHistory.addEntry(new SoftInputShowHideHistory.Entry(
+                            mCurClient, mCurAttribute,
+                            mWindowManagerInternal.getWindowName(mCurFocusedWindow),
+                            mCurFocusedWindowSoftInputMode, reason, mInFullscreenMode,
+                            mWindowManagerInternal.getWindowName(
+                                    mHideRequestWindowMap.get(args.arg3))));
                 } catch (RemoteException e) {
                 }
                 args.recycle();
@@ -4792,6 +4848,19 @@
         }
     }
 
+    private boolean transferTouchFocusToImeWindow(@NonNull IBinder sourceInputToken,
+            int displayId) {
+        //TODO(b/150843766): Check if Input Token is valid.
+        final IBinder curHostInputToken;
+        synchronized (mMethodMap) {
+            if (displayId != mCurTokenDisplayId || mCurHostInputToken == null) {
+                return false;
+            }
+            curHostInputToken = mCurHostInputToken;
+        }
+        return mInputManagerInternal.transferTouchFocus(sourceInputToken, curHostInputToken);
+    }
+
     private static final class LocalServiceImpl extends InputMethodManagerInternal {
         @NonNull
         private final InputMethodManagerService mService;
@@ -4831,6 +4900,12 @@
         public void registerInputMethodListListener(InputMethodListListener listener) {
             mService.mInputMethodListListeners.addIfAbsent(listener);
         }
+
+        @Override
+        public boolean transferTouchFocusToImeWindow(@NonNull IBinder sourceInputToken,
+                int displayId) {
+            return mService.transferTouchFocusToImeWindow(sourceInputToken, displayId);
+        }
     }
 
     @BinderThread
@@ -4942,6 +5017,7 @@
                     + " mBoundToMethod=" + mBoundToMethod + " mVisibleBound=" + mVisibleBound);
             p.println("  mCurToken=" + mCurToken);
             p.println("  mCurTokenDisplayId=" + mCurTokenDisplayId);
+            p.println("  mCurHostInputToken=" + mCurHostInputToken);
             p.println("  mCurIntent=" + mCurIntent);
             method = mCurMethod;
             p.println("  mCurMethod=" + mCurMethod);
diff --git a/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java
index 0e6c0db..0d16ee0 100644
--- a/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/MultiClientInputMethodManagerService.java
@@ -25,6 +25,7 @@
 import android.annotation.BinderThread;
 import android.annotation.IntDef;
 import android.annotation.MainThread;
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
 import android.annotation.WorkerThread;
@@ -209,6 +210,13 @@
                                 InputMethodListListener listener) {
                             reportNotSupported();
                         }
+
+                        @Override
+                        public boolean transferTouchFocusToImeWindow(
+                                @NonNull IBinder sourceInputToken, int displayId) {
+                            reportNotSupported();
+                            return false;
+                        }
                     });
         }
 
diff --git a/services/core/java/com/android/server/lights/LightsManager.java b/services/core/java/com/android/server/lights/LightsManager.java
index 521913a..706c741 100644
--- a/services/core/java/com/android/server/lights/LightsManager.java
+++ b/services/core/java/com/android/server/lights/LightsManager.java
@@ -16,6 +16,7 @@
 
 package com.android.server.lights;
 
+import android.annotation.Nullable;
 import android.hardware.light.V2_0.Type;
 
 public abstract class LightsManager {
@@ -30,7 +31,8 @@
     public static final int LIGHT_ID_COUNT = Type.COUNT;
 
     /**
-     * Returns the logical light with the given type.
+     * Returns the logical light with the given type, if it exists, or null.
      */
+    @Nullable
     public abstract LogicalLight getLight(int id);
 }
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
index a42dec8..3c6e8d2 100644
--- a/services/core/java/com/android/server/lights/LightsService.java
+++ b/services/core/java/com/android/server/lights/LightsService.java
@@ -52,8 +52,8 @@
     static final String TAG = "LightsService";
     static final boolean DEBUG = false;
 
-    private LightImpl[] mLights = null;
-    private SparseArray<LightImpl> mLightsById = null;
+    private final LightImpl[] mLightsByType = new LightImpl[LightsManager.LIGHT_ID_COUNT];
+    private final SparseArray<LightImpl> mLightsById = new SparseArray<>();
 
     private ILights mVintfLights = null;
 
@@ -96,8 +96,8 @@
             synchronized (LightsService.this) {
                 final List<Light> lights = new ArrayList<Light>();
                 for (int i = 0; i < mLightsById.size(); i++) {
-                    HwLight hwLight = mLightsById.valueAt(i).getHwLight();
-                    if (!isSystemLight(hwLight)) {
+                    if (!mLightsById.valueAt(i).isSystemLight()) {
+                        HwLight hwLight = mLightsById.valueAt(i).mHwLight;
                         lights.add(new Light(hwLight.id, hwLight.ordinal, hwLight.type));
                     }
                 }
@@ -138,7 +138,7 @@
 
             synchronized (LightsService.this) {
                 final LightImpl light = mLightsById.get(lightId);
-                if (light == null || isSystemLight(light.getHwLight())) {
+                if (light == null || light.isSystemLight()) {
                     throw new IllegalArgumentException("Invalid light: " + lightId);
                 }
                 return new LightState(light.getColor());
@@ -184,9 +184,8 @@
         private void checkRequestIsValid(int[] lightIds) {
             for (int i = 0; i < lightIds.length; i++) {
                 final LightImpl light = mLightsById.get(lightIds[i]);
-                final HwLight hwLight = light.getHwLight();
-                Preconditions.checkState(light != null && !isSystemLight(hwLight),
-                        "invalid lightId " + hwLight.id);
+                Preconditions.checkState(light != null && !light.isSystemLight(),
+                        "Invalid lightId " + lightIds[i]);
             }
         }
 
@@ -205,9 +204,8 @@
             }
             for (int i = 0; i < mLightsById.size(); i++) {
                 LightImpl light = mLightsById.valueAt(i);
-                HwLight hwLight = light.getHwLight();
-                if (!isSystemLight(hwLight)) {
-                    LightState state = states.get(hwLight.id);
+                if (!light.isSystemLight()) {
+                    LightState state = states.get(light.mHwLight.id);
                     if (state != null) {
                         light.setColor(state.getColor());
                     } else {
@@ -385,26 +383,22 @@
                 int brightnessMode) {
             Trace.traceBegin(Trace.TRACE_TAG_POWER, "setLightState(" + mHwLight.id + ", 0x"
                     + Integer.toHexString(color) + ")");
-            if (mVintfLights != null) {
-                HwLightState lightState = new HwLightState();
-                lightState.color = color;
-                lightState.flashMode = (byte) mode;
-                lightState.flashOnMs = onMS;
-                lightState.flashOffMs = offMS;
-                lightState.brightnessMode = (byte) brightnessMode;
-                try {
+            try {
+                if (mVintfLights != null) {
+                    HwLightState lightState = new HwLightState();
+                    lightState.color = color;
+                    lightState.flashMode = (byte) mode;
+                    lightState.flashOnMs = onMS;
+                    lightState.flashOffMs = offMS;
+                    lightState.brightnessMode = (byte) brightnessMode;
                     mVintfLights.setLightState(mHwLight.id, lightState);
-                } catch (RemoteException | UnsupportedOperationException ex) {
-                    Slog.e(TAG, "Failed issuing setLightState", ex);
-                } finally {
-                    Trace.traceEnd(Trace.TRACE_TAG_POWER);
-                }
-            } else {
-                try {
+                } else {
                     setLight_native(mHwLight.id, color, mode, onMS, offMS, brightnessMode);
-                } finally {
-                    Trace.traceEnd(Trace.TRACE_TAG_POWER);
                 }
+            } catch (RemoteException | UnsupportedOperationException ex) {
+                Slog.e(TAG, "Failed issuing setLightState", ex);
+            } finally {
+                Trace.traceEnd(Trace.TRACE_TAG_POWER);
             }
         }
 
@@ -412,8 +406,14 @@
             return mVrModeEnabled && mUseLowPersistenceForVR;
         }
 
-        private HwLight getHwLight() {
-            return mHwLight;
+        /**
+         * Returns whether a light is system-use-only or should be accessible to
+         * applications using the {@link android.hardware.lights.LightsManager} API.
+         */
+        private boolean isSystemLight() {
+            // LIGHT_ID_COUNT comes from the 2.0 HIDL HAL and only contains system lights.
+            // Newly-added lights are made available via the public LightsManager API.
+            return (0 <= mHwLight.type && mHwLight.type < LightsManager.LIGHT_ID_COUNT);
         }
 
         private int getColor() {
@@ -451,39 +451,40 @@
     }
 
     private void populateAvailableLights(Context context) {
-        mLights = new LightImpl[LightsManager.LIGHT_ID_COUNT];
-        mLightsById = new SparseArray<>();
-
         if (mVintfLights != null) {
-            try {
-                for (HwLight availableLight : mVintfLights.getLights()) {
-                    LightImpl light = new LightImpl(context, availableLight);
-                    int type = (int) availableLight.type;
-                    if (0 <= type && type < mLights.length && mLights[type] == null) {
-                        mLights[type] = light;
-                    }
-                    mLightsById.put(availableLight.id, light);
-                }
-            } catch (RemoteException ex) {
-                Slog.e(TAG, "Unable to get lights for initialization", ex);
-            }
+            populateAvailableLightsFromAidl(context);
+        } else {
+            populateAvailableLightsFromHidl(context);
         }
 
-        // In the case where only the old HAL is available, all lights will be initialized here
-        for (int i = 0; i < mLights.length; i++) {
-            if (mLights[i] == null) {
-                // The ordinal can be anything if there is only 1 light of each type. Set it to 1.
-                HwLight light = new HwLight();
-                light.id = (byte) i;
-                light.ordinal = 1;
-                light.type = (byte) i;
-
-                mLights[i] = new LightImpl(context, light);
-                mLightsById.put(i, mLights[i]);
+        for (int i = mLightsById.size() - 1; i >= 0; i--) {
+            final int type = mLightsById.keyAt(i);
+            if (0 <= type && type < mLightsByType.length) {
+                mLightsByType[type] = mLightsById.valueAt(i);
             }
         }
     }
 
+    private void populateAvailableLightsFromAidl(Context context) {
+        try {
+            for (HwLight hwLight : mVintfLights.getLights()) {
+                mLightsById.put(hwLight.id, new LightImpl(context, hwLight));
+            }
+        } catch (RemoteException ex) {
+            Slog.e(TAG, "Unable to get lights from HAL", ex);
+        }
+    }
+
+    private void populateAvailableLightsFromHidl(Context context) {
+        for (int i = 0; i < mLightsByType.length; i++) {
+            HwLight hwLight = new HwLight();
+            hwLight.id = (byte) i;
+            hwLight.ordinal = 1;
+            hwLight.type = (byte) i;
+            mLightsById.put(hwLight.id, new LightImpl(context, hwLight));
+        }
+    }
+
     @Override
     public void onStart() {
         publishLocalService(LightsManager.class, mService);
@@ -505,25 +506,14 @@
     private final LightsManager mService = new LightsManager() {
         @Override
         public LogicalLight getLight(int lightType) {
-            if (mLights != null && 0 <= lightType && lightType < mLights.length) {
-                return mLights[lightType];
+            if (mLightsByType != null && 0 <= lightType && lightType < mLightsByType.length) {
+                return mLightsByType[lightType];
             } else {
                 return null;
             }
         }
     };
 
-    /**
-     * Returns whether a light is system-use-only or should be accessible to
-     * applications using the {@link android.hardware.lights.LightsManager} API.
-     */
-    private static boolean isSystemLight(HwLight light) {
-        // LIGHT_ID_COUNT comes from the 2.0 HIDL HAL and only contains system
-        // lights. Newly added lights will be made available via the
-        // LightsManager API.
-        return 0 <= light.type && light.type < LightsManager.LIGHT_ID_COUNT;
-    }
-
     static native void setLight_native(int light, int color, int mode,
             int onMS, int offMS, int brightnessMode);
 }
diff --git a/services/core/java/com/android/server/location/ExponentialBackOff.java b/services/core/java/com/android/server/location/ExponentialBackOff.java
deleted file mode 100644
index 8c77b21..0000000
--- a/services/core/java/com/android/server/location/ExponentialBackOff.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.android.server.location;
-
-/**
- * A simple implementation of exponential backoff.
- */
-class ExponentialBackOff {
-    private static final int MULTIPLIER = 2;
-    private final long mInitIntervalMillis;
-    private final long mMaxIntervalMillis;
-    private long mCurrentIntervalMillis;
-
-    ExponentialBackOff(long initIntervalMillis, long maxIntervalMillis) {
-        mInitIntervalMillis = initIntervalMillis;
-        mMaxIntervalMillis = maxIntervalMillis;
-
-        mCurrentIntervalMillis = mInitIntervalMillis / MULTIPLIER;
-    }
-
-    long nextBackoffMillis() {
-        if (mCurrentIntervalMillis > mMaxIntervalMillis) {
-            return mMaxIntervalMillis;
-        }
-
-        mCurrentIntervalMillis *= MULTIPLIER;
-        return mCurrentIntervalMillis;
-    }
-
-    void reset() {
-        mCurrentIntervalMillis = mInitIntervalMillis / MULTIPLIER;
-    }
-}
-
diff --git a/services/core/java/com/android/server/location/RemoteListenerHelper.java b/services/core/java/com/android/server/location/RemoteListenerHelper.java
index 11f0685..f665289 100644
--- a/services/core/java/com/android/server/location/RemoteListenerHelper.java
+++ b/services/core/java/com/android/server/location/RemoteListenerHelper.java
@@ -273,7 +273,7 @@
         }
 
         @Nullable
-        protected TRequest getRequest() {
+        public TRequest getRequest() {
             return mRequest;
         }
     }
diff --git a/services/core/java/com/android/server/location/gnss/ExponentialBackOff.java b/services/core/java/com/android/server/location/gnss/ExponentialBackOff.java
new file mode 100644
index 0000000..05a534f
--- /dev/null
+++ b/services/core/java/com/android/server/location/gnss/ExponentialBackOff.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
+
+/**
+ * A simple implementation of exponential backoff.
+ */
+class ExponentialBackOff {
+    private static final int MULTIPLIER = 2;
+    private final long mInitIntervalMillis;
+    private final long mMaxIntervalMillis;
+    private long mCurrentIntervalMillis;
+
+    ExponentialBackOff(long initIntervalMillis, long maxIntervalMillis) {
+        mInitIntervalMillis = initIntervalMillis;
+        mMaxIntervalMillis = maxIntervalMillis;
+
+        mCurrentIntervalMillis = mInitIntervalMillis / MULTIPLIER;
+    }
+
+    long nextBackoffMillis() {
+        if (mCurrentIntervalMillis > mMaxIntervalMillis) {
+            return mMaxIntervalMillis;
+        }
+
+        mCurrentIntervalMillis *= MULTIPLIER;
+        return mCurrentIntervalMillis;
+    }
+
+    void reset() {
+        mCurrentIntervalMillis = mInitIntervalMillis / MULTIPLIER;
+    }
+}
+
diff --git a/services/core/java/com/android/server/location/GnssAntennaInfoProvider.java b/services/core/java/com/android/server/location/gnss/GnssAntennaInfoProvider.java
similarity index 96%
rename from services/core/java/com/android/server/location/GnssAntennaInfoProvider.java
rename to services/core/java/com/android/server/location/gnss/GnssAntennaInfoProvider.java
index bc50ebc..d839095 100644
--- a/services/core/java/com/android/server/location/GnssAntennaInfoProvider.java
+++ b/services/core/java/com/android/server/location/gnss/GnssAntennaInfoProvider.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.location;
+package com.android.server.location.gnss;
 
 import android.content.Context;
 import android.location.GnssAntennaInfo;
@@ -23,6 +23,8 @@
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.location.CallerIdentity;
+import com.android.server.location.RemoteListenerHelper;
 
 import java.util.List;
 
diff --git a/services/core/java/com/android/server/location/GnssBatchingProvider.java b/services/core/java/com/android/server/location/gnss/GnssBatchingProvider.java
similarity index 84%
rename from services/core/java/com/android/server/location/GnssBatchingProvider.java
rename to services/core/java/com/android/server/location/gnss/GnssBatchingProvider.java
index f3918ee..f583a3e 100644
--- a/services/core/java/com/android/server/location/GnssBatchingProvider.java
+++ b/services/core/java/com/android/server/location/gnss/GnssBatchingProvider.java
@@ -1,4 +1,20 @@
-package com.android.server.location;
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
 
 import android.util.Log;
 
diff --git a/services/core/java/com/android/server/location/GnssCapabilitiesProvider.java b/services/core/java/com/android/server/location/gnss/GnssCapabilitiesProvider.java
similarity index 97%
rename from services/core/java/com/android/server/location/GnssCapabilitiesProvider.java
rename to services/core/java/com/android/server/location/gnss/GnssCapabilitiesProvider.java
index 5c8507f..71b5b33 100644
--- a/services/core/java/com/android/server/location/GnssCapabilitiesProvider.java
+++ b/services/core/java/com/android/server/location/gnss/GnssCapabilitiesProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.location;
+package com.android.server.location.gnss;
 
 import android.location.GnssCapabilities;
 import android.util.Log;
diff --git a/services/core/java/com/android/server/location/GnssConfiguration.java b/services/core/java/com/android/server/location/gnss/GnssConfiguration.java
similarity index 99%
rename from services/core/java/com/android/server/location/GnssConfiguration.java
rename to services/core/java/com/android/server/location/gnss/GnssConfiguration.java
index a3523f2..14ab79e 100644
--- a/services/core/java/com/android/server/location/GnssConfiguration.java
+++ b/services/core/java/com/android/server/location/gnss/GnssConfiguration.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.location;
+package com.android.server.location.gnss;
 
 import android.content.Context;
 import android.os.PersistableBundle;
diff --git a/services/core/java/com/android/server/location/GnssGeofenceProvider.java b/services/core/java/com/android/server/location/gnss/GnssGeofenceProvider.java
similarity index 90%
rename from services/core/java/com/android/server/location/GnssGeofenceProvider.java
rename to services/core/java/com/android/server/location/gnss/GnssGeofenceProvider.java
index a84b0b1..53883b9 100644
--- a/services/core/java/com/android/server/location/GnssGeofenceProvider.java
+++ b/services/core/java/com/android/server/location/gnss/GnssGeofenceProvider.java
@@ -1,4 +1,20 @@
-package com.android.server.location;
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
 
 import android.location.IGpsGeofenceHardware;
 import android.util.Log;
diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java
similarity index 99%
rename from services/core/java/com/android/server/location/GnssLocationProvider.java
rename to services/core/java/com/android/server/location/gnss/GnssLocationProvider.java
index 58e332a..ad3c8a6 100644
--- a/services/core/java/com/android/server/location/GnssLocationProvider.java
+++ b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.location;
+package com.android.server.location.gnss;
 
 import android.app.AlarmManager;
 import android.app.AppOpsManager;
@@ -78,8 +78,9 @@
 import com.android.server.DeviceIdleInternal;
 import com.android.server.FgThread;
 import com.android.server.LocalServices;
-import com.android.server.location.GnssSatelliteBlacklistHelper.GnssSatelliteBlacklistCallback;
-import com.android.server.location.NtpTimeHelper.InjectNtpTimeCallback;
+import com.android.server.location.AbstractLocationProvider;
+import com.android.server.location.gnss.NtpTimeHelper.InjectNtpTimeCallback;
+import com.android.server.location.gnss.GnssSatelliteBlacklistHelper.GnssSatelliteBlacklistCallback;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -653,9 +654,6 @@
         mWakeupIntent = PendingIntent.getBroadcast(mContext, 0, new Intent(ALARM_WAKEUP), 0);
         mTimeoutIntent = PendingIntent.getBroadcast(mContext, 0, new Intent(ALARM_TIMEOUT), 0);
 
-        mNetworkConnectivityHandler = new GnssNetworkConnectivityHandler(context,
-                GnssLocationProvider.this::onNetworkAvailable, mLooper);
-
         // App ops service to keep track of who is accessing the GPS
         mAppOps = mContext.getSystemService(AppOpsManager.class);
 
@@ -677,6 +675,9 @@
         mNIHandler = new GpsNetInitiatedHandler(context,
                 mNetInitiatedListener,
                 mSuplEsEnabled);
+        mNetworkConnectivityHandler = new GnssNetworkConnectivityHandler(context,
+                GnssLocationProvider.this::onNetworkAvailable, mLooper, mNIHandler);
+
         sendMessage(INITIALIZE_HANDLER, 0, null);
 
         mGnssStatusListenerHelper = new GnssStatusListenerHelper(mContext, mHandler) {
diff --git a/services/core/java/com/android/server/location/gnss/GnssManagerService.java b/services/core/java/com/android/server/location/gnss/GnssManagerService.java
index b57c261..9e64e3a 100644
--- a/services/core/java/com/android/server/location/gnss/GnssManagerService.java
+++ b/services/core/java/com/android/server/location/gnss/GnssManagerService.java
@@ -55,14 +55,6 @@
 import com.android.server.LocationManagerServiceUtils.LinkedListenerBase;
 import com.android.server.location.AppForegroundHelper;
 import com.android.server.location.CallerIdentity;
-import com.android.server.location.GnssAntennaInfoProvider;
-import com.android.server.location.GnssBatchingProvider;
-import com.android.server.location.GnssCapabilitiesProvider;
-import com.android.server.location.GnssLocationProvider;
-import com.android.server.location.GnssMeasurementCorrectionsProvider;
-import com.android.server.location.GnssMeasurementsProvider;
-import com.android.server.location.GnssNavigationMessageProvider;
-import com.android.server.location.GnssStatusListenerHelper;
 import com.android.server.location.LocationUsageLogger;
 import com.android.server.location.RemoteListenerHelper;
 import com.android.server.location.SettingsHelper;
diff --git a/services/core/java/com/android/server/location/GnssMeasurementCorrectionsProvider.java b/services/core/java/com/android/server/location/gnss/GnssMeasurementCorrectionsProvider.java
similarity index 98%
rename from services/core/java/com/android/server/location/GnssMeasurementCorrectionsProvider.java
rename to services/core/java/com/android/server/location/gnss/GnssMeasurementCorrectionsProvider.java
index 82528ca..ac165d1 100644
--- a/services/core/java/com/android/server/location/GnssMeasurementCorrectionsProvider.java
+++ b/services/core/java/com/android/server/location/gnss/GnssMeasurementCorrectionsProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.location;
+package com.android.server.location.gnss;
 
 import android.location.GnssMeasurementCorrections;
 import android.os.Handler;
diff --git a/services/core/java/com/android/server/location/GnssMeasurementsProvider.java b/services/core/java/com/android/server/location/gnss/GnssMeasurementsProvider.java
similarity index 96%
rename from services/core/java/com/android/server/location/GnssMeasurementsProvider.java
rename to services/core/java/com/android/server/location/gnss/GnssMeasurementsProvider.java
index 6ba5f07..76c3ad0 100644
--- a/services/core/java/com/android/server/location/GnssMeasurementsProvider.java
+++ b/services/core/java/com/android/server/location/gnss/GnssMeasurementsProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.location;
+package com.android.server.location.gnss;
 
 import android.content.Context;
 import android.location.GnssMeasurementsEvent;
@@ -26,6 +26,8 @@
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.location.CallerIdentity;
+import com.android.server.location.RemoteListenerHelper;
 
 /**
  * An base implementation for GPS measurements provider. It abstracts out the responsibility of
diff --git a/services/core/java/com/android/server/location/GnssNavigationMessageProvider.java b/services/core/java/com/android/server/location/gnss/GnssNavigationMessageProvider.java
similarity index 96%
rename from services/core/java/com/android/server/location/GnssNavigationMessageProvider.java
rename to services/core/java/com/android/server/location/gnss/GnssNavigationMessageProvider.java
index fb901e8..722be3d 100644
--- a/services/core/java/com/android/server/location/GnssNavigationMessageProvider.java
+++ b/services/core/java/com/android/server/location/gnss/GnssNavigationMessageProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.location;
+package com.android.server.location.gnss;
 
 import android.content.Context;
 import android.location.GnssNavigationMessage;
@@ -24,6 +24,8 @@
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.location.CallerIdentity;
+import com.android.server.location.RemoteListenerHelper;
 
 /**
  * An base implementation for GPS navigation messages provider.
diff --git a/services/core/java/com/android/server/location/GnssNetworkConnectivityHandler.java b/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java
similarity index 80%
rename from services/core/java/com/android/server/location/GnssNetworkConnectivityHandler.java
rename to services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java
index 93227bd..3fb713b 100644
--- a/services/core/java/com/android/server/location/GnssNetworkConnectivityHandler.java
+++ b/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.location;
+package com.android.server.location.gnss;
 
 import android.content.Context;
 import android.database.Cursor;
@@ -29,12 +29,22 @@
 import android.provider.Telephony.Carriers;
 import android.telephony.ServiceState;
 import android.telephony.TelephonyManager;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.PreciseCallState;
+import android.telephony.PhoneStateListener;
 import android.util.Log;
 
+import com.android.internal.location.GpsNetInitiatedHandler;
+
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.Arrays;
+import java.util.Map;
 import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Iterator;
 
 /**
  * Handles network connection requests and network state change updates for AGPS data download.
@@ -86,6 +96,9 @@
     private HashMap<Network, NetworkAttributes> mAvailableNetworkAttributes =
             new HashMap<>(HASH_MAP_INITIAL_CAPACITY_TO_TRACK_CONNECTED_NETWORKS);
 
+    // Phone State Listeners to track all the active sub IDs
+    private HashMap<Integer, SubIdPhoneStateListener> mPhoneStateListeners;
+
     private final ConnectivityManager mConnMgr;
 
     private final Handler mHandler;
@@ -94,6 +107,9 @@
     private int mAGpsDataConnectionState;
     private InetAddress mAGpsDataConnectionIpAddr;
     private int mAGpsType;
+    private int mActiveSubId = -1;
+    private final GpsNetInitiatedHandler mNiHandler;
+
 
     private final Context mContext;
 
@@ -166,18 +182,109 @@
 
     GnssNetworkConnectivityHandler(Context context,
             GnssNetworkListener gnssNetworkListener,
-            Looper looper) {
+            Looper looper,
+            GpsNetInitiatedHandler niHandler) {
         mContext = context;
         mGnssNetworkListener = gnssNetworkListener;
 
+    SubscriptionManager subManager = mContext.getSystemService(SubscriptionManager.class);
+        if (subManager != null) {
+            subManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
+        }
+
         PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
         mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, WAKELOCK_KEY);
 
         mHandler = new Handler(looper);
+        mNiHandler = niHandler;
         mConnMgr = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
         mSuplConnectivityCallback = createSuplConnectivityCallback();
     }
 
+    /**
+     * SubId Phone State Listener is used cache the last active Sub ID when a call is made,
+     * which will be used during an emergency call to set the Network Specifier to the particular
+     * sub when an emergency supl connection is requested
+     */
+    private final class SubIdPhoneStateListener extends PhoneStateListener {
+        private Integer mSubId;
+        SubIdPhoneStateListener(Integer subId) {
+            mSubId = subId;
+        }
+        @Override
+        public void onPreciseCallStateChanged(PreciseCallState state) {
+            if (state.PRECISE_CALL_STATE_ACTIVE == state.getForegroundCallState()) {
+                mActiveSubId = mSubId;
+                if (DEBUG) Log.d(TAG, "mActiveSubId: " + mActiveSubId);
+            }
+        }
+    };
+
+    /**
+     * Subscription Changed Listener is used to get all active subscriptions and create a
+     * Phone State Listener for each Sub ID that we find in the active subscription list
+     */
+    private final SubscriptionManager.OnSubscriptionsChangedListener mOnSubscriptionsChangeListener
+            = new SubscriptionManager.OnSubscriptionsChangedListener() {
+        @Override
+        public void onSubscriptionsChanged() {
+            if (mPhoneStateListeners == null) {
+                // Capacity=2 Load-Factor=1.0, as typically no more than 2 SIMs
+                mPhoneStateListeners = new HashMap<Integer, SubIdPhoneStateListener>(2,1);
+            }
+            SubscriptionManager subManager = mContext.getSystemService(SubscriptionManager.class);
+            TelephonyManager telManager = mContext.getSystemService(TelephonyManager.class);
+            if (subManager != null && telManager != null) {
+                List<SubscriptionInfo> subscriptionInfoList =
+                        subManager.getActiveSubscriptionInfoList();
+                HashSet<Integer> activeSubIds = new HashSet<Integer>();
+                if (subscriptionInfoList != null) {
+                    if (DEBUG) Log.d(TAG, "Active Sub List size: " + subscriptionInfoList.size());
+                    // populate phone state listeners with all new active subs
+                    for (SubscriptionInfo subInfo : subscriptionInfoList) {
+                        activeSubIds.add(subInfo.getSubscriptionId());
+                        if (!mPhoneStateListeners.containsKey(subInfo.getSubscriptionId())) {
+                            TelephonyManager subIdTelManager =
+                                    telManager.createForSubscriptionId(subInfo.getSubscriptionId());
+                            if (subIdTelManager != null) {
+                                if (DEBUG) Log.d(TAG, "Listener sub" + subInfo.getSubscriptionId());
+                                SubIdPhoneStateListener subIdPhoneStateListener =
+                                        new SubIdPhoneStateListener(subInfo.getSubscriptionId());
+                                mPhoneStateListeners.put(subInfo.getSubscriptionId(),
+                                        subIdPhoneStateListener);
+                                subIdTelManager.listen(subIdPhoneStateListener,
+                                        PhoneStateListener.LISTEN_PRECISE_CALL_STATE);
+                            }
+                        }
+                    }
+                }
+                // clean up phone state listeners than no longer have active subs
+                Iterator<Map.Entry<Integer, SubIdPhoneStateListener> > iterator =
+                        mPhoneStateListeners.entrySet().iterator();
+                while (iterator.hasNext()) {
+                    Map.Entry<Integer, SubIdPhoneStateListener> element = iterator.next();
+                    if (!activeSubIds.contains(element.getKey())) {
+                        TelephonyManager subIdTelManager =
+                                telManager.createForSubscriptionId(element.getKey());
+                        if (subIdTelManager != null) {
+                            if (DEBUG) Log.d(TAG, "unregister listener sub " + element.getKey());
+                            subIdTelManager.listen(element.getValue(),
+                                                   PhoneStateListener.LISTEN_NONE);
+                            // removes the element from mPhoneStateListeners
+                            iterator.remove();
+                        } else {
+                            Log.e(TAG, "Telephony Manager for Sub " + element.getKey() + " null");
+                        }
+                    }
+                }
+                // clean up cached active phone call sub if it is no longer an active sub
+                if (!activeSubIds.contains(mActiveSubId)) {
+                    mActiveSubId = -1;
+                }
+            }
+        }
+    };
+
     void registerNetworkCallbacks() {
         // register for connectivity change events.
         NetworkRequest.Builder networkRequestBuilder = new NetworkRequest.Builder();
@@ -467,6 +574,12 @@
         NetworkRequest.Builder networkRequestBuilder = new NetworkRequest.Builder();
         networkRequestBuilder.addCapability(getNetworkCapability(mAGpsType));
         networkRequestBuilder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
+        // During an emergency call, and when we have cached the Active Sub Id, we set the
+        // Network Specifier so that the network request goes to the correct Sub Id
+        if (mNiHandler.getInEmergency() && mActiveSubId >= 0) {
+            if (DEBUG) Log.d(TAG, "Adding Network Specifier: " + Integer.toString(mActiveSubId));
+            networkRequestBuilder.setNetworkSpecifier(Integer.toString(mActiveSubId));
+        }
         NetworkRequest networkRequest = networkRequestBuilder.build();
         mConnMgr.requestNetwork(
                 networkRequest,
@@ -598,6 +711,15 @@
         }
         TelephonyManager phone = (TelephonyManager)
                 mContext.getSystemService(Context.TELEPHONY_SERVICE);
+        // During an emergency call with an active sub id, get the Telephony Manager specific
+        // to the active sub to get the correct value from getServiceState and getNetworkType
+        if (mNiHandler.getInEmergency() && mActiveSubId >= 0) {
+            TelephonyManager subIdTelManager =
+                    phone.createForSubscriptionId(mActiveSubId);
+            if (subIdTelManager != null) {
+                phone = subIdTelManager;
+            }
+        }
         ServiceState serviceState = phone.getServiceState();
         String projection = null;
         String selection = null;
diff --git a/services/core/java/com/android/server/location/GnssPositionMode.java b/services/core/java/com/android/server/location/gnss/GnssPositionMode.java
similarity index 69%
rename from services/core/java/com/android/server/location/GnssPositionMode.java
rename to services/core/java/com/android/server/location/gnss/GnssPositionMode.java
index 36838fc..045118a 100644
--- a/services/core/java/com/android/server/location/GnssPositionMode.java
+++ b/services/core/java/com/android/server/location/gnss/GnssPositionMode.java
@@ -1,4 +1,20 @@
-package com.android.server.location;
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
 
 import java.util.Arrays;
 
diff --git a/services/core/java/com/android/server/location/GnssSatelliteBlacklistHelper.java b/services/core/java/com/android/server/location/gnss/GnssSatelliteBlacklistHelper.java
similarity index 83%
rename from services/core/java/com/android/server/location/GnssSatelliteBlacklistHelper.java
rename to services/core/java/com/android/server/location/gnss/GnssSatelliteBlacklistHelper.java
index eb99a85..dccef9b 100644
--- a/services/core/java/com/android/server/location/GnssSatelliteBlacklistHelper.java
+++ b/services/core/java/com/android/server/location/gnss/GnssSatelliteBlacklistHelper.java
@@ -1,4 +1,20 @@
-package com.android.server.location;
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
 
 import android.content.ContentResolver;
 import android.content.Context;
diff --git a/services/core/java/com/android/server/location/GnssStatusListenerHelper.java b/services/core/java/com/android/server/location/gnss/GnssStatusListenerHelper.java
similarity index 93%
rename from services/core/java/com/android/server/location/GnssStatusListenerHelper.java
rename to services/core/java/com/android/server/location/gnss/GnssStatusListenerHelper.java
index 1d16c03..d2ecdee 100644
--- a/services/core/java/com/android/server/location/GnssStatusListenerHelper.java
+++ b/services/core/java/com/android/server/location/gnss/GnssStatusListenerHelper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -11,16 +11,19 @@
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
- * limitations under the License
+ * limitations under the License.
  */
 
-package com.android.server.location;
+package com.android.server.location.gnss;
 
 import android.content.Context;
 import android.location.IGnssStatusListener;
 import android.os.Handler;
 import android.util.Log;
 
+import com.android.server.location.CallerIdentity;
+import com.android.server.location.RemoteListenerHelper;
+
 /**
  * Implementation of a handler for {@link IGnssStatusListener}.
  */
diff --git a/services/core/java/com/android/server/location/GnssVisibilityControl.java b/services/core/java/com/android/server/location/gnss/GnssVisibilityControl.java
similarity index 99%
rename from services/core/java/com/android/server/location/GnssVisibilityControl.java
rename to services/core/java/com/android/server/location/gnss/GnssVisibilityControl.java
index 2b5fc79..06fa0ea 100644
--- a/services/core/java/com/android/server/location/GnssVisibilityControl.java
+++ b/services/core/java/com/android/server/location/gnss/GnssVisibilityControl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.location;
+package com.android.server.location.gnss;
 
 import android.annotation.Nullable;
 import android.annotation.SuppressLint;
diff --git a/services/core/java/com/android/server/location/GpsPsdsDownloader.java b/services/core/java/com/android/server/location/gnss/GpsPsdsDownloader.java
similarity index 98%
rename from services/core/java/com/android/server/location/GpsPsdsDownloader.java
rename to services/core/java/com/android/server/location/gnss/GpsPsdsDownloader.java
index 6fcb7d1..273f9cb 100644
--- a/services/core/java/com/android/server/location/GpsPsdsDownloader.java
+++ b/services/core/java/com/android/server/location/gnss/GpsPsdsDownloader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.location;
+package com.android.server.location.gnss;
 
 import android.net.TrafficStats;
 import android.text.TextUtils;
diff --git a/services/core/java/com/android/server/location/NtpTimeHelper.java b/services/core/java/com/android/server/location/gnss/NtpTimeHelper.java
similarity index 90%
rename from services/core/java/com/android/server/location/NtpTimeHelper.java
rename to services/core/java/com/android/server/location/gnss/NtpTimeHelper.java
index d2296ea..2bbb61f 100644
--- a/services/core/java/com/android/server/location/NtpTimeHelper.java
+++ b/services/core/java/com/android/server/location/gnss/NtpTimeHelper.java
@@ -1,4 +1,20 @@
-package com.android.server.location;
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
 
 import android.content.Context;
 import android.net.ConnectivityManager;
@@ -12,6 +28,7 @@
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.location.gnss.ExponentialBackOff;
 
 import java.util.Date;
 
diff --git a/services/core/java/com/android/server/media/AudioPlayerStateMonitor.java b/services/core/java/com/android/server/media/AudioPlayerStateMonitor.java
index b0bccb8..55e0795 100644
--- a/services/core/java/com/android/server/media/AudioPlayerStateMonitor.java
+++ b/services/core/java/com/android/server/media/AudioPlayerStateMonitor.java
@@ -166,7 +166,7 @@
      * Cleans up the sorted list of audio playback client UIDs with given {@param
      * mediaButtonSessionUid}.
      * <p>UIDs whose audio playback are inactive and have started before the media button session's
-     * audio playback cannot be the lastly played media app. So they won't needed anymore.
+     * audio playback cannot be the lastly played media app. So they won't be needed anymore.
      *
      * @param mediaButtonSessionUid UID of the media button session.
      */
diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
index 4b925ef..6aae62e 100644
--- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
+++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
@@ -155,13 +155,18 @@
         final int uid = Binder.getCallingUid();
         final int pid = Binder.getCallingPid();
         final int userId = UserHandle.getUserHandleForUid(uid).getIdentifier();
-        final boolean trusted = mContext.checkCallingOrSelfPermission(
+        final boolean hasConfigureWifiDisplayPermission = mContext.checkCallingOrSelfPermission(
                 android.Manifest.permission.CONFIGURE_WIFI_DISPLAY)
                 == PackageManager.PERMISSION_GRANTED;
+        final boolean hasModifyAudioRoutingPermission = mContext.checkCallingOrSelfPermission(
+                android.Manifest.permission.MODIFY_AUDIO_ROUTING)
+                == PackageManager.PERMISSION_GRANTED;
+
         final long token = Binder.clearCallingIdentity();
         try {
             synchronized (mLock) {
-                registerRouter2Locked(router, uid, pid, packageName, userId, trusted);
+                registerRouter2Locked(router, uid, pid, packageName, userId,
+                        hasConfigureWifiDisplayPermission, hasModifyAudioRoutingPermission);
             }
         } finally {
             Binder.restoreCallingIdentity(token);
@@ -341,8 +346,6 @@
             throw new IllegalArgumentException("packageName must not be empty");
         }
 
-        final boolean trusted = true;
-
         final int uid = Binder.getCallingUid();
         final int pid = Binder.getCallingPid();
         final int userId = UserHandle.getUserHandleForUid(uid).getIdentifier();
@@ -350,7 +353,7 @@
         final long token = Binder.clearCallingIdentity();
         try {
             synchronized (mLock) {
-                registerManagerLocked(manager, uid, pid, packageName, userId, trusted);
+                registerManagerLocked(manager, uid, pid, packageName, userId);
             }
         } finally {
             Binder.restoreCallingIdentity(token);
@@ -532,7 +535,8 @@
     ////////////////////////////////////////////////////////////////
 
     private void registerRouter2Locked(@NonNull IMediaRouter2 router, int uid, int pid,
-            @NonNull String packageName, int userId, boolean trusted) {
+            @NonNull String packageName, int userId, boolean hasConfigureWifiDisplayPermission,
+            boolean hasModifyAudioRoutingPermission) {
         final IBinder binder = router.asBinder();
         if (mAllRouterRecords.get(binder) != null) {
             Slog.w(TAG, "Same router already exists. packageName=" + packageName);
@@ -540,8 +544,8 @@
         }
 
         UserRecord userRecord = getOrCreateUserRecordLocked(userId);
-        RouterRecord routerRecord = new RouterRecord(
-                userRecord, router, uid, pid, packageName, trusted);
+        RouterRecord routerRecord = new RouterRecord(userRecord, router, uid, pid, packageName,
+                hasConfigureWifiDisplayPermission, hasModifyAudioRoutingPermission);
         try {
             binder.linkToDeath(routerRecord, 0);
         } catch (RemoteException ex) {
@@ -704,14 +708,14 @@
         }
 
         List<RoutingSessionInfo> sessionInfos = new ArrayList<>();
-        for (MediaRoute2Provider provider : managerRecord.mUserRecord.mHandler.mMediaProviders) {
+        for (MediaRoute2Provider provider : managerRecord.mUserRecord.mHandler.mRouteProviders) {
             sessionInfos.addAll(provider.getSessionInfos());
         }
         return sessionInfos;
     }
 
     private void registerManagerLocked(@NonNull IMediaRouter2Manager manager,
-            int uid, int pid, @NonNull String packageName, int userId, boolean trusted) {
+            int uid, int pid, @NonNull String packageName, int userId) {
         final IBinder binder = manager.asBinder();
         ManagerRecord managerRecord = mAllManagerRecords.get(binder);
 
@@ -721,7 +725,7 @@
         }
 
         UserRecord userRecord = getOrCreateUserRecordLocked(userId);
-        managerRecord = new ManagerRecord(userRecord, manager, uid, pid, packageName, trusted);
+        managerRecord = new ManagerRecord(userRecord, manager, uid, pid, packageName);
         try {
             binder.linkToDeath(managerRecord, 0);
         } catch (RemoteException ex) {
@@ -778,7 +782,7 @@
             @NonNull IMediaRouter2Manager manager,
             @NonNull String packageName, @NonNull MediaRoute2Info route) {
         ManagerRecord managerRecord = mAllManagerRecords.get(manager.asBinder());
-        if (managerRecord == null || !managerRecord.mTrusted) {
+        if (managerRecord == null) {
             return;
         }
 
@@ -976,14 +980,16 @@
         public final IMediaRouter2 mRouter;
         public final int mUid;
         public final int mPid;
-        public final boolean mTrusted;
+        public final boolean mHasConfigureWifiDisplayPermission;
+        public final boolean mHasModifyAudioRoutingPermission;
         public final int mRouterId;
 
         public RouteDiscoveryPreference mDiscoveryPreference;
         public MediaRoute2Info mSelectedRoute;
 
-        RouterRecord(UserRecord userRecord, IMediaRouter2 router,
-                int uid, int pid, String packageName, boolean trusted) {
+        RouterRecord(UserRecord userRecord, IMediaRouter2 router, int uid, int pid,
+                String packageName, boolean hasConfigureWifiDisplayPermission,
+                boolean hasModifyAudioRoutingPermission) {
             mUserRecord = userRecord;
             mPackageName = packageName;
             mSelectRouteSequenceNumbers = new ArrayList<>();
@@ -991,7 +997,8 @@
             mRouter = router;
             mUid = uid;
             mPid = pid;
-            mTrusted = trusted;
+            mHasConfigureWifiDisplayPermission = hasConfigureWifiDisplayPermission;
+            mHasModifyAudioRoutingPermission = hasModifyAudioRoutingPermission;
             mRouterId = mNextRouterOrManagerId.getAndIncrement();
         }
 
@@ -1011,17 +1018,15 @@
         public final int mUid;
         public final int mPid;
         public final String mPackageName;
-        public final boolean mTrusted;
         public final int mManagerId;
 
         ManagerRecord(UserRecord userRecord, IMediaRouter2Manager manager,
-                int uid, int pid, String packageName, boolean trusted) {
+                int uid, int pid, String packageName) {
             mUserRecord = userRecord;
             mManager = manager;
             mUid = uid;
             mPid = pid;
             mPackageName = packageName;
-            mTrusted = trusted;
             mManagerId = mNextRouterOrManagerId.getAndIncrement();
         }
 
@@ -1036,9 +1041,6 @@
 
         public void dump(PrintWriter pw, String prefix) {
             pw.println(prefix + this);
-
-            final String indent = prefix + "  ";
-            pw.println(indent + "mTrusted=" + mTrusted);
         }
 
         @Override
@@ -1057,7 +1059,7 @@
 
         //TODO: Make this thread-safe.
         private final SystemMediaRoute2Provider mSystemProvider;
-        private final ArrayList<MediaRoute2Provider> mMediaProviders =
+        private final ArrayList<MediaRoute2Provider> mRouteProviders =
                 new ArrayList<>();
 
         private final List<MediaRoute2ProviderInfo> mLastProviderInfos = new ArrayList<>();
@@ -1072,7 +1074,7 @@
             mServiceRef = new WeakReference<>(service);
             mUserRecord = userRecord;
             mSystemProvider = new SystemMediaRoute2Provider(service.mContext, this);
-            mMediaProviders.add(mSystemProvider);
+            mRouteProviders.add(mSystemProvider);
             mWatcher = new MediaRoute2ProviderWatcher(service.mContext, this,
                     this, mUserRecord.mUserId);
         }
@@ -1095,13 +1097,13 @@
         @Override
         public void onAddProviderService(@NonNull MediaRoute2ProviderServiceProxy proxy) {
             proxy.setCallback(this);
-            mMediaProviders.add(proxy);
+            mRouteProviders.add(proxy);
             proxy.updateDiscoveryPreference(mUserRecord.mCompositeDiscoveryPreference);
         }
 
         @Override
         public void onRemoveProviderService(@NonNull MediaRoute2ProviderServiceProxy proxy) {
-            mMediaProviders.remove(proxy);
+            mRouteProviders.remove(proxy);
         }
 
         @Override
@@ -1146,10 +1148,10 @@
 
         //TODO: notify session info updates
         private void onProviderStateChangedOnHandler(@NonNull MediaRoute2Provider provider) {
-            int providerIndex = getProviderInfoIndex(provider.getUniqueId());
+            int providerInfoIndex = getLastProviderInfoIndex(provider.getUniqueId());
             MediaRoute2ProviderInfo providerInfo = provider.getProviderInfo();
             MediaRoute2ProviderInfo prevInfo =
-                    (providerIndex < 0) ? null : mLastProviderInfos.get(providerIndex);
+                    (providerInfoIndex < 0) ? null : mLastProviderInfos.get(providerInfoIndex);
 
             if (Objects.equals(prevInfo, providerInfo)) return;
 
@@ -1169,7 +1171,7 @@
                             this, getRouters(), new ArrayList<>(removedRoutes)));
                 }
             } else {
-                mLastProviderInfos.set(providerIndex, providerInfo);
+                mLastProviderInfos.set(providerInfoIndex, providerInfo);
                 List<MediaRoute2Info> addedRoutes = new ArrayList<>();
                 List<MediaRoute2Info> removedRoutes = new ArrayList<>();
                 List<MediaRoute2Info> changedRoutes = new ArrayList<>();
@@ -1217,7 +1219,7 @@
             }
         }
 
-        private int getProviderInfoIndex(@NonNull String providerId) {
+        private int getLastProviderInfoIndex(@NonNull String providerId) {
             for (int i = 0; i < mLastProviderInfos.size(); i++) {
                 MediaRoute2ProviderInfo providerInfo = mLastProviderInfos.get(i);
                 if (TextUtils.equals(providerInfo.getUniqueId(), providerId)) {
@@ -1793,13 +1795,13 @@
                         new RouteDiscoveryPreference.Builder(discoveryPreferences)
                         .build();
             }
-            for (MediaRoute2Provider provider : mMediaProviders) {
+            for (MediaRoute2Provider provider : mRouteProviders) {
                 provider.updateDiscoveryPreference(mUserRecord.mCompositeDiscoveryPreference);
             }
         }
 
         private MediaRoute2Provider findProvider(@Nullable String providerId) {
-            for (MediaRoute2Provider provider : mMediaProviders) {
+            for (MediaRoute2Provider provider : mRouteProviders) {
                 if (TextUtils.equals(provider.getUniqueId(), providerId)) {
                     return provider;
                 }
diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java
index a6930dd..5757b1a 100644
--- a/services/core/java/com/android/server/media/MediaSessionService.java
+++ b/services/core/java/com/android/server/media/MediaSessionService.java
@@ -1973,6 +1973,34 @@
             instantiateCustomProvider(name);
         }
 
+        @Override
+        public int getSessionPolicies(MediaSession.Token token) {
+            synchronized (mLock) {
+                MediaSessionRecord record = getMediaSessionRecordLocked(token);
+                if (record != null) {
+                    return record.getSessionPolicies();
+                }
+            }
+            return 0;
+        }
+
+        @Override
+        public void setSessionPolicies(MediaSession.Token token, int policies) {
+            final long callingIdentityToken = Binder.clearCallingIdentity();
+            try {
+                synchronized (mLock) {
+                    MediaSessionRecord record = getMediaSessionRecordLocked(token);
+                    FullUserRecord user = getFullUserRecordLocked(record.getUserId());
+                    if (record != null && user != null) {
+                        record.setSessionPolicies(policies);
+                        user.mPriorityStack.updateMediaButtonSessionIfNeeded();
+                    }
+                }
+            } finally {
+                Binder.restoreCallingIdentity(callingIdentityToken);
+            }
+        }
+
         // For MediaSession
         private int verifySessionsRequest(ComponentName componentName, int userId, final int pid,
                 final int uid) {
diff --git a/services/core/java/com/android/server/media/MediaSessionStack.java b/services/core/java/com/android/server/media/MediaSessionStack.java
index 367f131..bd98b9c 100644
--- a/services/core/java/com/android/server/media/MediaSessionStack.java
+++ b/services/core/java/com/android/server/media/MediaSessionStack.java
@@ -156,7 +156,11 @@
         if (mMediaButtonSession != null && mMediaButtonSession.getUid() == record.getUid()) {
             MediaSessionRecordImpl newMediaButtonSession =
                     findMediaButtonSession(mMediaButtonSession.getUid());
-            if (newMediaButtonSession != mMediaButtonSession) {
+            if (newMediaButtonSession != mMediaButtonSession
+                    && (newMediaButtonSession.getSessionPolicies()
+                    & SessionPolicyProvider.SESSION_POLICY_IGNORE_BUTTON_SESSION) == 0) {
+                // Check if the policy states that this session should not be updated as a media
+                // button session.
                 updateMediaButtonSession(newMediaButtonSession);
             }
         }
@@ -187,14 +191,15 @@
         for (int i = 0; i < audioPlaybackUids.size(); i++) {
             MediaSessionRecordImpl mediaButtonSession =
                     findMediaButtonSession(audioPlaybackUids.get(i));
-            if (mediaButtonSession != null
-                    && (mediaButtonSession.getSessionPolicies()
-                            & SessionPolicyProvider.SESSION_POLICY_IGNORE_BUTTON_SESSION) == 0) {
-                // Found the media button session.
-                mAudioPlayerStateMonitor.cleanUpAudioPlaybackUids(mediaButtonSession.getUid());
-                if (mMediaButtonSession != mediaButtonSession) {
-                    updateMediaButtonSession(mediaButtonSession);
-                }
+            if (mediaButtonSession == null) continue;
+            boolean ignoreButtonSession = (mediaButtonSession.getSessionPolicies()
+                    & SessionPolicyProvider.SESSION_POLICY_IGNORE_BUTTON_SESSION) != 0;
+            if (mediaButtonSession == mMediaButtonSession && ignoreButtonSession) {
+                updateMediaButtonSession(null);
+                return;
+            }
+            if (mediaButtonSession != mMediaButtonSession && !ignoreButtonSession) {
+                updateMediaButtonSession(mediaButtonSession);
                 return;
             }
         }
@@ -276,15 +281,6 @@
     }
 
     private void updateMediaButtonSession(MediaSessionRecordImpl newMediaButtonSession) {
-        // Check if the policy states that this session should not be updated as a media button
-        // session.
-        if (newMediaButtonSession != null) {
-            int policies = newMediaButtonSession.getSessionPolicies();
-            if ((policies & SessionPolicyProvider.SESSION_POLICY_IGNORE_BUTTON_SESSION) != 0) {
-                return;
-            }
-        }
-
         MediaSessionRecordImpl oldMediaButtonSession = mMediaButtonSession;
         mMediaButtonSession = newMediaButtonSession;
         mOnMediaButtonSessionChangedListener.onMediaButtonSessionChanged(
diff --git a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java
index c7d14e0..c69787d 100644
--- a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java
+++ b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java
@@ -54,6 +54,7 @@
     private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
     static final String DEFAULT_ROUTE_ID = "DEFAULT_ROUTE";
+    static final String DEVICE_ROUTE_ID = "DEVICE_ROUTE";
     static final String SYSTEM_SESSION_ID = "SYSTEM_SESSION";
 
     private final AudioManager mAudioManager;
@@ -67,14 +68,17 @@
             SystemMediaRoute2Provider.class.getName());
 
     private String mSelectedRouteId;
+    // For apps without MODIFYING_AUDIO_ROUTING permission.
+    // This should be the currently selected route.
     MediaRoute2Info mDefaultRoute;
+    MediaRoute2Info mDeviceRoute;
     final AudioRoutesInfo mCurAudioRoutesInfo = new AudioRoutesInfo();
 
     final IAudioRoutesObserver.Stub mAudioRoutesObserver = new IAudioRoutesObserver.Stub() {
         @Override
         public void dispatchAudioRoutesChanged(final AudioRoutesInfo newRoutes) {
             mHandler.post(() -> {
-                updateDefaultRoute(newRoutes);
+                updateDeviceRoute(newRoutes);
                 notifyProviderState();
             });
         }
@@ -97,7 +101,7 @@
             newAudioRoutes = mAudioService.startWatchingRoutes(mAudioRoutesObserver);
         } catch (RemoteException e) {
         }
-        updateDefaultRoute(newAudioRoutes);
+        updateDeviceRoute(newAudioRoutes);
 
         mBtRouteProvider = BluetoothRouteProvider.getInstance(context, (routes) -> {
             publishProviderState();
@@ -109,7 +113,6 @@
             }
         });
         updateSessionInfosIfNeeded();
-
         mContext.registerReceiver(new VolumeChangeReceiver(),
                 new IntentFilter(AudioManager.VOLUME_CHANGED_ACTION));
 
@@ -150,7 +153,7 @@
 
     @Override
     public void transferToRoute(long requestId, String sessionId, String routeId) {
-        if (TextUtils.equals(routeId, mDefaultRoute.getId())) {
+        if (TextUtils.equals(routeId, mDeviceRoute.getId())) {
             mBtRouteProvider.transferTo(null);
         } else {
             mBtRouteProvider.transferTo(routeId);
@@ -170,7 +173,11 @@
         // Do nothing since we don't support grouping volume yet.
     }
 
-    private void updateDefaultRoute(AudioRoutesInfo newRoutes) {
+    public MediaRoute2Info getDefaultRoute() {
+        return mDefaultRoute;
+    }
+
+    private void updateDeviceRoute(AudioRoutesInfo newRoutes) {
         int name = R.string.default_audio_route_name;
         if (newRoutes != null) {
             mCurAudioRoutesInfo.mainType = newRoutes.mainType;
@@ -185,8 +192,8 @@
                 name = com.android.internal.R.string.default_audio_route_name_usb;
             }
         }
-        mDefaultRoute = new MediaRoute2Info.Builder(
-                DEFAULT_ROUTE_ID, mContext.getResources().getText(name).toString())
+        mDeviceRoute = new MediaRoute2Info.Builder(
+                DEVICE_ROUTE_ID, mContext.getResources().getText(name).toString())
                 .setVolumeHandling(mAudioManager.isVolumeFixed()
                         ? MediaRoute2Info.PLAYBACK_VOLUME_FIXED
                         : MediaRoute2Info.PLAYBACK_VOLUME_VARIABLE)
@@ -203,7 +210,7 @@
 
     private void updateProviderState() {
         MediaRoute2ProviderInfo.Builder builder = new MediaRoute2ProviderInfo.Builder();
-        builder.addRoute(mDefaultRoute);
+        builder.addRoute(mDeviceRoute);
         if (mBtRouteProvider != null) {
             for (MediaRoute2Info route : mBtRouteProvider.getAllBluetoothRoutes()) {
                 builder.addRoute(route);
@@ -228,11 +235,12 @@
 
             MediaRoute2Info selectedRoute = mBtRouteProvider.getSelectedRoute();
             if (selectedRoute == null) {
-                selectedRoute = mDefaultRoute;
+                selectedRoute = mDeviceRoute;
             } else {
-                builder.addTransferableRoute(mDefaultRoute.getId());
+                builder.addTransferableRoute(mDeviceRoute.getId());
             }
             mSelectedRouteId = selectedRoute.getId();
+            mDefaultRoute = new MediaRoute2Info.Builder(DEFAULT_ROUTE_ID, selectedRoute).build();
             builder.addSelectedRoute(mSelectedRouteId);
 
             for (MediaRoute2Info route : mBtRouteProvider.getTransferableRoutes()) {
@@ -282,8 +290,8 @@
                     AudioManager.EXTRA_PREV_VOLUME_STREAM_VALUE, 0);
 
             if (newVolume != oldVolume) {
-                if (TextUtils.equals(mDefaultRoute.getId(), mSelectedRouteId)) {
-                    mDefaultRoute = new MediaRoute2Info.Builder(mDefaultRoute)
+                if (TextUtils.equals(mDeviceRoute.getId(), mSelectedRouteId)) {
+                    mDeviceRoute = new MediaRoute2Info.Builder(mDeviceRoute)
                             .setVolume(newVolume)
                             .build();
                 } else {
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index c5c1363..173dfc2 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -1868,8 +1868,11 @@
                 mNetIdToSubId.put(state.network.netId, parseSubId(state));
             }
             if (state.networkInfo != null && state.networkInfo.isConnected()) {
+                // Policies matched by NPMS only match by subscriber ID or by ssid. Thus subtype
+                // in the object created here is never used and its value doesn't matter, so use
+                // NETWORK_TYPE_UNKNOWN.
                 final NetworkIdentity ident = NetworkIdentity.buildNetworkIdentity(mContext, state,
-                        true);
+                        true, TelephonyManager.NETWORK_TYPE_UNKNOWN /* subType */);
                 identified.put(state, ident);
             }
         }
@@ -3350,6 +3353,7 @@
      * existing plans; it simply lets the debug package define new plans.
      */
     void setSubscriptionPlansOwner(int subId, String packageName) {
+        mContext.enforceCallingOrSelfPermission(NETWORK_SETTINGS, TAG);
         SystemProperties.set(PROP_SUB_PLAN_OWNER + "." + subId, packageName);
     }
 
diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java
index 10136b3..d8264b3 100644
--- a/services/core/java/com/android/server/net/NetworkStatsService.java
+++ b/services/core/java/com/android/server/net/NetworkStatsService.java
@@ -27,6 +27,7 @@
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 import static android.net.ConnectivityManager.ACTION_TETHER_STATE_CHANGED;
 import static android.net.ConnectivityManager.isNetworkTypeMobile;
+import static android.net.NetworkIdentity.SUBTYPE_COMBINED;
 import static android.net.NetworkStack.checkNetworkStackPermission;
 import static android.net.NetworkStats.DEFAULT_NETWORK_ALL;
 import static android.net.NetworkStats.IFACE_ALL;
@@ -45,10 +46,12 @@
 import static android.net.NetworkStatsHistory.FIELD_ALL;
 import static android.net.NetworkTemplate.buildTemplateMobileWildcard;
 import static android.net.NetworkTemplate.buildTemplateWifiWildcard;
+import static android.net.NetworkTemplate.getCollapsedRatType;
 import static android.net.TrafficStats.KB_IN_BYTES;
 import static android.net.TrafficStats.MB_IN_BYTES;
 import static android.os.Trace.TRACE_TAG_NETWORK;
 import static android.provider.Settings.Global.NETSTATS_AUGMENT_ENABLED;
+import static android.provider.Settings.Global.NETSTATS_COMBINE_SUBTYPE_ENABLED;
 import static android.provider.Settings.Global.NETSTATS_DEV_BUCKET_DURATION;
 import static android.provider.Settings.Global.NETSTATS_DEV_DELETE_AGE;
 import static android.provider.Settings.Global.NETSTATS_DEV_PERSIST_BYTES;
@@ -64,6 +67,9 @@
 import static android.provider.Settings.Global.NETSTATS_UID_TAG_DELETE_AGE;
 import static android.provider.Settings.Global.NETSTATS_UID_TAG_PERSIST_BYTES;
 import static android.provider.Settings.Global.NETSTATS_UID_TAG_ROTATE_AGE;
+import static android.telephony.PhoneStateListener.LISTEN_NONE;
+import static android.telephony.PhoneStateListener.LISTEN_SERVICE_STATE;
+import static android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN;
 import static android.text.format.DateUtils.DAY_IN_MILLIS;
 import static android.text.format.DateUtils.HOUR_IN_MILLIS;
 import static android.text.format.DateUtils.MINUTE_IN_MILLIS;
@@ -109,6 +115,7 @@
 import android.os.DropBoxManager;
 import android.os.Environment;
 import android.os.Handler;
+import android.os.HandlerExecutor;
 import android.os.HandlerThread;
 import android.os.IBinder;
 import android.os.INetworkManagementService;
@@ -125,6 +132,8 @@
 import android.provider.Settings.Global;
 import android.service.NetworkInterfaceProto;
 import android.service.NetworkStatsServiceDumpProto;
+import android.telephony.PhoneStateListener;
+import android.telephony.ServiceState;
 import android.telephony.SubscriptionPlan;
 import android.telephony.TelephonyManager;
 import android.text.format.DateUtils;
@@ -157,6 +166,7 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Objects;
+import java.util.concurrent.Executor;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
 
@@ -173,6 +183,7 @@
     private static final int MSG_PERFORM_POLL = 1;
     // Perform polling, persist network, and register the global alert again.
     private static final int MSG_PERFORM_POLL_REGISTER_ALERT = 2;
+    private static final int MSG_UPDATE_IFACES = 3;
 
     /** Flags to control detail level of poll event. */
     private static final int FLAG_PERSIST_NETWORK = 0x1;
@@ -229,12 +240,20 @@
      * Settings that can be changed externally.
      */
     public interface NetworkStatsSettings {
-        public long getPollInterval();
-        public long getPollDelay();
-        public boolean getSampleEnabled();
-        public boolean getAugmentEnabled();
+        long getPollInterval();
+        long getPollDelay();
+        boolean getSampleEnabled();
+        boolean getAugmentEnabled();
+        /**
+         * When enabled, all mobile data is reported under {@link NetworkIdentity#SUBTYPE_COMBINED}.
+         * When disabled, mobile data is broken down by a granular subtype representative of the
+         * actual subtype. {@see NetworkTemplate#getCollapsedRatType}.
+         * Enabling this decreases the level of detail but saves performance, disk space and
+         * amount of data logged.
+         */
+        boolean getCombineSubtypeEnabled();
 
-        public static class Config {
+        class Config {
             public final long bucketDuration;
             public final long rotateAgeMillis;
             public final long deleteAgeMillis;
@@ -246,16 +265,16 @@
             }
         }
 
-        public Config getDevConfig();
-        public Config getXtConfig();
-        public Config getUidConfig();
-        public Config getUidTagConfig();
+        Config getDevConfig();
+        Config getXtConfig();
+        Config getUidConfig();
+        Config getUidTagConfig();
 
-        public long getGlobalAlertBytes(long def);
-        public long getDevPersistBytes(long def);
-        public long getXtPersistBytes(long def);
-        public long getUidPersistBytes(long def);
-        public long getUidTagPersistBytes(long def);
+        long getGlobalAlertBytes(long def);
+        long getDevPersistBytes(long def);
+        long getXtPersistBytes(long def);
+        long getUidPersistBytes(long def);
+        long getUidTagPersistBytes(long def);
     }
 
     private final Object mStatsLock = new Object();
@@ -280,6 +299,11 @@
     @GuardedBy("mStatsLock")
     private Network[] mDefaultNetworks = new Network[0];
 
+    /** Last states of all networks sent from ConnectivityService. */
+    @GuardedBy("mStatsLock")
+    @Nullable
+    private NetworkState[] mLastNetworkStates = null;
+
     private final DropBoxNonMonotonicObserver mNonMonotonicObserver =
             new DropBoxNonMonotonicObserver();
 
@@ -355,6 +379,12 @@
                     performPoll(FLAG_PERSIST_ALL);
                     break;
                 }
+                case MSG_UPDATE_IFACES: {
+                    // If no cached states, ignore.
+                    if (mLastNetworkStates == null) break;
+                    updateIfaces(mDefaultNetworks, mLastNetworkStates, mActiveIface);
+                    break;
+                }
                 case MSG_PERFORM_POLL_REGISTER_ALERT: {
                     performPoll(FLAG_PERSIST_NETWORK);
                     registerGlobalAlert();
@@ -407,6 +437,7 @@
         final HandlerThread handlerThread = mDeps.makeHandlerThread();
         handlerThread.start();
         mHandler = new NetworkStatsHandler(handlerThread.getLooper());
+        mPhoneListener = new NetworkTypeListener(new HandlerExecutor(mHandler));
     }
 
     /**
@@ -486,6 +517,13 @@
         mAlarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, currentRealtime,
                 mSettings.getPollInterval(), pollIntent);
 
+        // TODO: 1. listen to changes from all subscriptions.
+        //       2. listen to settings changed to support dynamically enable/disable.
+        // watch for networkType changes
+        if (!mSettings.getCombineSubtypeEnabled()) {
+            mTeleManager.listen(mPhoneListener, LISTEN_SERVICE_STATE);
+        }
+
         registerGlobalAlert();
     }
 
@@ -506,6 +544,8 @@
         mContext.unregisterReceiver(mUserReceiver);
         mContext.unregisterReceiver(mShutdownReceiver);
 
+        mTeleManager.listen(mPhoneListener, LISTEN_NONE);
+
         final long currentTime = mClock.millis();
 
         // persist any pending stats
@@ -1156,6 +1196,38 @@
         }
     };
 
+    /**
+     * Receiver that watches for {@link TelephonyManager} changes, such as
+     * transitioning between Radio Access Technology(RAT) types.
+     */
+    @NonNull
+    private final NetworkTypeListener mPhoneListener;
+
+    class NetworkTypeListener extends PhoneStateListener {
+        private volatile int mLastCollapsedRatType = NETWORK_TYPE_UNKNOWN;
+
+        NetworkTypeListener(@NonNull Executor executor) {
+            super(executor);
+        }
+
+        @Override
+        public void onServiceStateChanged(@NonNull ServiceState ss) {
+            final int networkType = ss.getDataNetworkType();
+            final int collapsedRatType = getCollapsedRatType(networkType);
+            if (collapsedRatType == mLastCollapsedRatType) return;
+
+            if (LOGD) {
+                Log.d(TAG, "subtype changed for mobile: "
+                        + mLastCollapsedRatType + " -> " + collapsedRatType);
+            }
+            // Protect service from frequently updating. Remove pending messages if any.
+            mHandler.removeMessages(MSG_UPDATE_IFACES);
+            mLastCollapsedRatType = collapsedRatType;
+            mHandler.sendMessageDelayed(
+                    mHandler.obtainMessage(MSG_UPDATE_IFACES), mSettings.getPollDelay());
+        }
+    }
+
     private void updateIfaces(
             Network[] defaultNetworks,
             NetworkState[] networkStates,
@@ -1177,7 +1249,8 @@
      * they are combined under a single {@link NetworkIdentitySet}.
      */
     @GuardedBy("mStatsLock")
-    private void updateIfacesLocked(Network[] defaultNetworks, NetworkState[] states) {
+    private void updateIfacesLocked(@Nullable Network[] defaultNetworks,
+            @NonNull NetworkState[] states) {
         if (!mSystemReady) return;
         if (LOGV) Slog.v(TAG, "updateIfacesLocked()");
 
@@ -1197,13 +1270,18 @@
             mDefaultNetworks = defaultNetworks;
         }
 
+        mLastNetworkStates = states;
+
+        final boolean combineSubtypeEnabled = mSettings.getCombineSubtypeEnabled();
         final ArraySet<String> mobileIfaces = new ArraySet<>();
         for (NetworkState state : states) {
             if (state.networkInfo.isConnected()) {
                 final boolean isMobile = isNetworkTypeMobile(state.networkInfo.getType());
                 final boolean isDefault = ArrayUtils.contains(mDefaultNetworks, state.network);
+                final int subType = combineSubtypeEnabled ? SUBTYPE_COMBINED
+                        : getSubTypeForState(state);
                 final NetworkIdentity ident = NetworkIdentity.buildNetworkIdentity(mContext, state,
-                        isDefault);
+                        isDefault, subType);
 
                 // Traffic occurring on the base interface is always counted for
                 // both total usage and UID details.
@@ -1264,6 +1342,20 @@
         mMobileIfaces = mobileIfaces.toArray(new String[mobileIfaces.size()]);
     }
 
+    /**
+     * For networks with {@code TRANSPORT_CELLULAR}, get subType that was obtained through
+     * {@link PhoneStateListener}. Otherwise, return 0 given that other networks with different
+     * transport types do not actually fill this value.
+     */
+    private int getSubTypeForState(@NonNull NetworkState state) {
+        if (!state.networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
+            return 0;
+        }
+
+        // TODO: return different subType for different subscriptions.
+        return mPhoneListener.mLastCollapsedRatType;
+    }
+
     private static <K> NetworkIdentitySet findOrCreateNetworkIdentitySet(
             ArrayMap<K, NetworkIdentitySet> map, K key) {
         NetworkIdentitySet ident = map.get(key);
@@ -1617,6 +1709,12 @@
                 return;
             }
 
+            pw.println("Configs:");
+            pw.increaseIndent();
+            pw.printPair(NETSTATS_COMBINE_SUBTYPE_ENABLED, mSettings.getCombineSubtypeEnabled());
+            pw.println();
+            pw.decreaseIndent();
+
             pw.println("Active interfaces:");
             pw.increaseIndent();
             for (int i = 0; i < mActiveIfaces.size(); i++) {
@@ -2045,6 +2143,10 @@
             return getGlobalBoolean(NETSTATS_AUGMENT_ENABLED, true);
         }
         @Override
+        public boolean getCombineSubtypeEnabled() {
+            return getGlobalBoolean(NETSTATS_COMBINE_SUBTYPE_ENABLED, false);
+        }
+        @Override
         public Config getDevConfig() {
             return new Config(getGlobalLong(NETSTATS_DEV_BUCKET_DURATION, HOUR_IN_MILLIS),
                     getGlobalLong(NETSTATS_DEV_ROTATE_AGE, 15 * DAY_IN_MILLIS),
diff --git a/services/core/java/com/android/server/notification/BubbleExtractor.java b/services/core/java/com/android/server/notification/BubbleExtractor.java
index c96880c..2fa80cd 100644
--- a/services/core/java/com/android/server/notification/BubbleExtractor.java
+++ b/services/core/java/com/android/server/notification/BubbleExtractor.java
@@ -15,9 +15,7 @@
 */
 package com.android.server.notification;
 
-import static android.app.Notification.CATEGORY_CALL;
 import static android.app.Notification.FLAG_BUBBLE;
-import static android.app.Notification.FLAG_FOREGROUND_SERVICE;
 
 import static com.android.internal.util.FrameworkStatsLog.BUBBLE_DEVELOPER_ERROR_REPORTED__ERROR__ACTIVITY_INFO_MISSING;
 import static com.android.internal.util.FrameworkStatsLog.BUBBLE_DEVELOPER_ERROR_REPORTED__ERROR__ACTIVITY_INFO_NOT_RESIZABLE;
@@ -25,7 +23,6 @@
 import android.app.ActivityManager;
 import android.app.Notification;
 import android.app.PendingIntent;
-import android.app.Person;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
@@ -34,8 +31,6 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.FrameworkStatsLog;
 
-import java.util.ArrayList;
-
 /**
  * Determines whether a bubble can be shown for this notification
  */
@@ -81,7 +76,8 @@
                 record.setAllowBubble(appCanShowBubble);
             }
         }
-        final boolean applyFlag = mBubbleChecker.isNotificationAppropriateToBubble(record);
+        final boolean applyFlag = mBubbleChecker.isNotificationAppropriateToBubble(record)
+                && !record.isFlagBubbleRemoved();
         if (applyFlag) {
             record.getNotification().flags |= FLAG_BUBBLE;
         } else {
@@ -152,46 +148,18 @@
                 return false;
             }
 
-            // At this point the bubble must fulfill communication policy
-
-            // Communication always needs a person
-            ArrayList<Person> peopleList = notification.extras != null
-                    ? notification.extras.getParcelableArrayList(Notification.EXTRA_PEOPLE_LIST)
-                    : null;
-            // Message style requires a person & it's not included in the list
             boolean isMessageStyle = Notification.MessagingStyle.class.equals(
                     notification.getNotificationStyle());
-            if (!isMessageStyle && (peopleList == null || peopleList.isEmpty())) {
-                logBubbleError(r.getKey(), "Must have a person and be "
-                        + "Notification.MessageStyle or Notification.CATEGORY_CALL");
+            if (!isMessageStyle) {
+                logBubbleError(r.getKey(), "must be Notification.MessageStyle");
                 return false;
             }
-
-            // Communication is a message or a call
-            boolean isCall = CATEGORY_CALL.equals(notification.category);
-            boolean hasForegroundService = (notification.flags & FLAG_FOREGROUND_SERVICE) != 0;
-            if (hasForegroundService && !isCall) {
-                logBubbleError(r.getKey(),
-                        "foreground services must be Notification.CATEGORY_CALL to bubble");
-                return false;
-            }
-            if (isMessageStyle) {
-                return true;
-            } else if (isCall) {
-                if (hasForegroundService) {
-                    return true;
-                }
-                logBubbleError(r.getKey(), "calls require foreground service");
-                return false;
-            }
-            logBubbleError(r.getKey(), "Must be "
-                    + "Notification.MessageStyle or Notification.CATEGORY_CALL");
-            return false;
+            return true;
         }
 
         /**
-         * @return whether the user has enabled the provided notification to bubble, does not
-         * account for policy.
+         * @return whether the user has enabled the provided notification to bubble, and if the
+         * developer has provided valid information for the notification to bubble.
          */
         @VisibleForTesting
         boolean canBubble(NotificationRecord r, String pkg, int userId) {
@@ -217,9 +185,18 @@
             }
 
             String shortcutId = metadata.getShortcutId();
-            boolean shortcutValid = shortcutId != null
-                    && mShortcutHelper.hasValidShortcutInfo(shortcutId, pkg, r.getUser());
-            if (metadata.getBubbleIntent() == null && !shortcutValid) {
+            String notificationShortcutId = r.getShortcutInfo() != null
+                    ? r.getShortcutInfo().getId()
+                    : null;
+            boolean shortcutValid = false;
+            if (notificationShortcutId != null && shortcutId != null) {
+                // NoMan already checks validity of shortcut, just check if they match.
+                shortcutValid = shortcutId.equals(notificationShortcutId);
+            } else if (shortcutId != null) {
+                shortcutValid =
+                        mShortcutHelper.getValidShortcutInfo(shortcutId, pkg, r.getUser()) != null;
+            }
+            if (metadata.getIntent() == null && !shortcutValid) {
                 // Should have a shortcut if intent is null
                 logBubbleError(r.getKey(),
                         "couldn't find valid shortcut for bubble with shortcutId: " + shortcutId);
@@ -229,7 +206,7 @@
                 return true;
             }
             // no log: canLaunch method has the failure log
-            return canLaunchInActivityView(mContext, metadata.getBubbleIntent(), pkg);
+            return canLaunchInActivityView(mContext, metadata.getIntent(), pkg);
         }
 
         /**
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 20ad87a..ebc1bc4 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -27,6 +27,8 @@
 import static android.app.NotificationChannel.CONVERSATION_CHANNEL_ID_FORMAT;
 import static android.app.NotificationManager.ACTION_APP_BLOCK_STATE_CHANGED;
 import static android.app.NotificationManager.ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED;
+import static android.app.NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED;
+import static android.app.NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED_INTERNAL;
 import static android.app.NotificationManager.ACTION_NOTIFICATION_CHANNEL_BLOCK_STATE_CHANGED;
 import static android.app.NotificationManager.ACTION_NOTIFICATION_CHANNEL_GROUP_BLOCK_STATE_CHANGED;
 import static android.app.NotificationManager.ACTION_NOTIFICATION_POLICY_ACCESS_GRANTED_CHANGED;
@@ -105,6 +107,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
+import android.annotation.UserIdInt;
 import android.annotation.WorkerThread;
 import android.app.ActivityManager;
 import android.app.ActivityManagerInternal;
@@ -137,6 +140,7 @@
 import android.app.usage.UsageStatsManagerInternal;
 import android.companion.ICompanionDeviceManager;
 import android.compat.annotation.ChangeId;
+import android.compat.annotation.EnabledAfter;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.ContentProvider;
@@ -261,6 +265,7 @@
 import com.android.server.policy.PhoneWindowManager;
 import com.android.server.statusbar.StatusBarManagerInternal;
 import com.android.server.uri.UriGrantsManagerInternal;
+import com.android.server.wm.ActivityTaskManagerInternal;
 import com.android.server.wm.WindowManagerInternal;
 
 import libcore.io.IoUtils;
@@ -384,13 +389,13 @@
      * still post toasts created with
      * {@link android.widget.Toast#makeText(Context, CharSequence, int)} and its variants while
      * in the background.
-     *
-     * TODO(b/144152069): Add @EnabledAfter(Q) to target R+ after assessing impact on dogfood
      */
     @ChangeId
+    @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.Q)
     private static final long CHANGE_BACKGROUND_CUSTOM_TOAST_BLOCK = 128611929L;
 
     private IActivityManager mAm;
+    private ActivityTaskManagerInternal mAtm;
     private ActivityManager mActivityManager;
     private IPackageManager mPackageManager;
     private PackageManager mPackageManagerClient;
@@ -1209,10 +1214,12 @@
                         // apps querying noMan will know that their notification is not showing
                         // as a bubble.
                         r.getNotification().flags &= ~FLAG_BUBBLE;
+                        r.setFlagBubbleRemoved(true);
                     } else {
                         // Enqueue will trigger resort & if the flag is allowed to be true it'll
                         // be applied there.
                         r.getNotification().flags |= FLAG_ONLY_ALERT_ONCE;
+                        r.setFlagBubbleRemoved(false);
                         mHandler.post(new EnqueueNotificationRunnable(r.getUser().getIdentifier(),
                                 r, isAppForeground));
                     }
@@ -1575,7 +1582,9 @@
                 }
             } else if (action.equals(Intent.ACTION_USER_PRESENT)) {
                 // turn off LED when user passes through lock screen
-                mNotificationLight.turnOff();
+                if (mNotificationLight != null) {
+                    mNotificationLight.turnOff();
+                }
             } else if (action.equals(Intent.ACTION_USER_SWITCHED)) {
                 final int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, USER_NULL);
                 mUserProfiles.updateCache(context);
@@ -1858,10 +1867,10 @@
             ICompanionDeviceManager companionManager, SnoozeHelper snoozeHelper,
             NotificationUsageStats usageStats, AtomicFile policyFile,
             ActivityManager activityManager, GroupHelper groupHelper, IActivityManager am,
-            UsageStatsManagerInternal appUsageStats, DevicePolicyManagerInternal dpm,
-            IUriGrantsManager ugm, UriGrantsManagerInternal ugmInternal, AppOpsManager appOps,
-            UserManager userManager, NotificationHistoryManager historyManager,
-            StatsManager statsManager) {
+            ActivityTaskManagerInternal atm, UsageStatsManagerInternal appUsageStats,
+            DevicePolicyManagerInternal dpm, IUriGrantsManager ugm,
+            UriGrantsManagerInternal ugmInternal, AppOpsManager appOps, UserManager userManager,
+            NotificationHistoryManager historyManager, StatsManager statsManager) {
         mHandler = handler;
         Resources resources = getContext().getResources();
         mMaxPackageEnqueueRate = Settings.Global.getFloat(getContext().getContentResolver(),
@@ -1871,6 +1880,7 @@
         mAccessibilityManager =
                 (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
         mAm = am;
+        mAtm = atm;
         mUgm = ugm;
         mUgmInternal = ugmInternal;
         mPackageManager = packageManager;
@@ -1908,30 +1918,37 @@
 
             @Override
             void onZenModeChanged() {
-                sendRegisteredOnlyBroadcast(NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED);
-                getContext().sendBroadcastAsUser(
-                        new Intent(NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED_INTERNAL)
-                                .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT),
-                        UserHandle.ALL, android.Manifest.permission.MANAGE_NOTIFICATIONS);
-                synchronized (mNotificationLock) {
-                    updateInterruptionFilterLocked();
-                }
-                mRankingHandler.requestSort();
+                Binder.withCleanCallingIdentity(() -> {
+                    sendRegisteredOnlyBroadcast(ACTION_INTERRUPTION_FILTER_CHANGED);
+                    getContext().sendBroadcastAsUser(
+                            new Intent(ACTION_INTERRUPTION_FILTER_CHANGED_INTERNAL)
+                                    .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT),
+                            UserHandle.ALL, permission.MANAGE_NOTIFICATIONS);
+                    synchronized (mNotificationLock) {
+                        updateInterruptionFilterLocked();
+                    }
+                    mRankingHandler.requestSort();
+                });
             }
 
             @Override
             void onPolicyChanged() {
-                sendRegisteredOnlyBroadcast(NotificationManager.ACTION_NOTIFICATION_POLICY_CHANGED);
-                mRankingHandler.requestSort();
+                Binder.withCleanCallingIdentity(() -> {
+                    sendRegisteredOnlyBroadcast(
+                            NotificationManager.ACTION_NOTIFICATION_POLICY_CHANGED);
+                    mRankingHandler.requestSort();
+                });
             }
 
             @Override
             void onAutomaticRuleStatusChanged(int userId, String pkg, String id, int status) {
-                Intent intent = new Intent(ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED);
-                intent.setPackage(pkg);
-                intent.putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, id);
-                intent.putExtra(EXTRA_AUTOMATIC_ZEN_RULE_STATUS, status);
-                getContext().sendBroadcastAsUser(intent, UserHandle.of(userId));
+                Binder.withCleanCallingIdentity(() -> {
+                    Intent intent = new Intent(ACTION_AUTOMATIC_ZEN_RULE_STATUS_CHANGED);
+                    intent.setPackage(pkg);
+                    intent.putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, id);
+                    intent.putExtra(EXTRA_AUTOMATIC_ZEN_RULE_STATUS, status);
+                    getContext().sendBroadcastAsUser(intent, UserHandle.of(userId));
+                });
             }
         });
         mPreferencesHelper = new PreferencesHelper(getContext(),
@@ -2057,6 +2074,7 @@
                         systemDir, "notification_policy.xml"), "notification-policy"),
                 (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE),
                 getGroupHelper(), ActivityManager.getService(),
+                LocalServices.getService(ActivityTaskManagerInternal.class),
                 LocalServices.getService(UsageStatsManagerInternal.class),
                 LocalServices.getService(DevicePolicyManagerInternal.class),
                 UriGrantsManager.getService(),
@@ -2738,24 +2756,18 @@
         @Override
         public void enqueueTextToast(String pkg, IBinder token, CharSequence text, int duration,
                 int displayId, @Nullable ITransientNotificationCallback callback) {
-            enqueueToast(pkg, token, text, null, duration, displayId, callback, false);
+            enqueueToast(pkg, token, text, null, duration, displayId, callback);
         }
 
         @Override
         public void enqueueToast(String pkg, IBinder token, ITransientNotification callback,
                 int duration, int displayId) {
-            enqueueToast(pkg, token, null, callback, duration, displayId, null, true);
-        }
-
-        @Override
-        public void enqueueTextOrCustomToast(String pkg, IBinder token,
-                ITransientNotification callback, int duration, int displayId, boolean isCustom) {
-            enqueueToast(pkg, token, null, callback, duration, displayId, null, isCustom);
+            enqueueToast(pkg, token, null, callback, duration, displayId, null);
         }
 
         private void enqueueToast(String pkg, IBinder token, @Nullable CharSequence text,
                 @Nullable ITransientNotification callback, int duration, int displayId,
-                @Nullable ITransientNotificationCallback textCallback, boolean isCustom) {
+                @Nullable ITransientNotificationCallback textCallback) {
             if (DBG) {
                 Slog.i(TAG, "enqueueToast pkg=" + pkg + " token=" + token
                         + " duration=" + duration + " displayId=" + displayId);
@@ -2793,10 +2805,16 @@
                 return;
             }
 
-            if (callback != null && !appIsForeground && !isSystemToast && isCustom) {
+            boolean isAppRenderedToast = (callback != null);
+            if (isAppRenderedToast && !isSystemToast && !isPackageInForegroundForToast(pkg,
+                    callingUid)) {
                 boolean block;
                 long id = Binder.clearCallingIdentity();
                 try {
+                    // CHANGE_BACKGROUND_CUSTOM_TOAST_BLOCK is gated on targetSdk, so block will be
+                    // false for apps with targetSdk < R. For apps with targetSdk R+, text toasts
+                    // are not app-rendered, so isAppRenderedToast == true means it's a custom
+                    // toast.
                     block = mPlatformCompat.isChangeEnabledByPackageName(
                             CHANGE_BACKGROUND_CUSTOM_TOAST_BLOCK, pkg,
                             callingUser.getIdentifier());
@@ -2809,11 +2827,6 @@
                     Binder.restoreCallingIdentity(id);
                 }
                 if (block) {
-                    // TODO(b/144152069): Remove informative toast
-                    mUiHandler.post(() -> Toast.makeText(getContext(),
-                            "Background custom toast blocked for package " + pkg + ".\n"
-                                    + "See g.co/dev/toast.",
-                            Toast.LENGTH_SHORT).show());
                     Slog.w(TAG, "Blocking custom toast from package " + pkg
                             + " due to package not in the foreground");
                     return;
@@ -2832,20 +2845,18 @@
                         record = mToastQueue.get(index);
                         record.update(duration);
                     } else {
-                        // Limit the number of toasts that any given package except the android
-                        // package can enqueue.  Prevents DOS attacks and deals with leaks.
-                        if (!isSystemToast) {
-                            int count = 0;
-                            final int N = mToastQueue.size();
-                            for (int i = 0; i < N; i++) {
-                                final ToastRecord r = mToastQueue.get(i);
-                                if (r.pkg.equals(pkg)) {
-                                    count++;
-                                    if (count >= MAX_PACKAGE_NOTIFICATIONS) {
-                                        Slog.e(TAG, "Package has already posted " + count
-                                                + " toasts. Not showing more. Package=" + pkg);
-                                        return;
-                                    }
+                        // Limit the number of toasts that any given package can enqueue.
+                        // Prevents DOS attacks and deals with leaks.
+                        int count = 0;
+                        final int N = mToastQueue.size();
+                        for (int i = 0; i < N; i++) {
+                            final ToastRecord r = mToastQueue.get(i);
+                            if (r.pkg.equals(pkg)) {
+                                count++;
+                                if (count >= MAX_PACKAGE_NOTIFICATIONS) {
+                                    Slog.e(TAG, "Package has already posted " + count
+                                            + " toasts. Not showing more. Package=" + pkg);
+                                    return;
                                 }
                             }
                         }
@@ -2871,6 +2882,28 @@
             }
         }
 
+        /**
+         * Implementation note: Our definition of foreground for toasts is an implementation matter
+         * and should strike a balance between functionality and anti-abuse effectiveness. We
+         * currently worry about the following cases:
+         * <ol>
+         *     <li>App with fullscreen activity: Allow toasts
+         *     <li>App behind translucent activity from other app: Block toasts
+         *     <li>App in multi-window: Allow toasts
+         *     <li>App with expanded bubble: Allow toasts
+         *     <li>App posting toasts on onCreate(), onStart(), onResume(): Allow toasts
+         *     <li>App posting toasts on onPause(), onStop(), onDestroy(): Block toasts
+         * </ol>
+         * Checking if the UID has any resumed activities satisfy use-cases above.
+         *
+         * <p>Checking if {@code mActivityManager.getUidImportance(callingUid) ==
+         * IMPORTANCE_FOREGROUND} does not work because it considers the app in foreground if it has
+         * any visible activities, failing case 2 in list above.
+         */
+        private boolean isPackageInForegroundForToast(String pkg, int callingUid) {
+            return mAtm.hasResumedActivity(callingUid);
+        }
+
         @Override
         public void cancelToast(String pkg, IBinder token) {
             Slog.i(TAG, "cancelToast pkg=" + pkg + " token=" + token);
@@ -3416,7 +3449,7 @@
             ArrayList<ConversationChannelWrapper> conversations =
                     mPreferencesHelper.getConversations(onlyImportant);
             for (ConversationChannelWrapper conversation : conversations) {
-                conversation.setShortcutInfo(mShortcutHelper.getShortcutInfo(
+                conversation.setShortcutInfo(mShortcutHelper.getValidShortcutInfo(
                         conversation.getNotificationChannel().getConversationId(),
                         conversation.getPkg(),
                         UserHandle.of(UserHandle.getUserId(conversation.getUid()))));
@@ -3439,7 +3472,7 @@
             ArrayList<ConversationChannelWrapper> conversations =
                     mPreferencesHelper.getConversations(pkg, uid);
             for (ConversationChannelWrapper conversation : conversations) {
-                conversation.setShortcutInfo(mShortcutHelper.getShortcutInfo(
+                conversation.setShortcutInfo(mShortcutHelper.getValidShortcutInfo(
                         conversation.getNotificationChannel().getConversationId(),
                         pkg,
                         UserHandle.of(UserHandle.getUserId(uid))));
@@ -3601,13 +3634,23 @@
         }
 
         /**
+         * @deprecated Use {@link #getActiveNotificationsWithAttribution(String, String)} instead.
+         */
+        @Deprecated
+        @Override
+        public StatusBarNotification[] getActiveNotifications(String callingPkg) {
+            return getActiveNotificationsWithAttribution(callingPkg, null);
+        }
+
+        /**
          * System-only API for getting a list of current (i.e. not cleared) notifications.
          *
          * Requires ACCESS_NOTIFICATIONS which is signature|system.
          * @returns A list of all the notifications, in natural order.
          */
         @Override
-        public StatusBarNotification[] getActiveNotifications(String callingPkg) {
+        public StatusBarNotification[] getActiveNotificationsWithAttribution(String callingPkg,
+                String callingAttributionTag) {
             // enforce() will ensure the calling uid has the correct permission
             getContext().enforceCallingOrSelfPermission(
                     android.Manifest.permission.ACCESS_NOTIFICATIONS,
@@ -3617,7 +3660,8 @@
             int uid = Binder.getCallingUid();
 
             // noteOp will check to make sure the callingPkg matches the uid
-            if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg)
+            if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg,
+                    callingAttributionTag, null)
                     == AppOpsManager.MODE_ALLOWED) {
                 synchronized (mNotificationLock) {
                     tmp = new StatusBarNotification[mNotificationList.size()];
@@ -3699,12 +3743,24 @@
         }
 
         /**
-         * System-only API for getting a list of recent (cleared, no longer shown) notifications.
+         * @deprecated Use {@link #getHistoricalNotificationsWithAttribution} instead.
          */
+        @Deprecated
         @Override
         @RequiresPermission(android.Manifest.permission.ACCESS_NOTIFICATIONS)
         public StatusBarNotification[] getHistoricalNotifications(String callingPkg, int count,
                 boolean includeSnoozed) {
+            return getHistoricalNotificationsWithAttribution(callingPkg, null, count,
+                    includeSnoozed);
+        }
+
+        /**
+         * System-only API for getting a list of recent (cleared, no longer shown) notifications.
+         */
+        @Override
+        @RequiresPermission(android.Manifest.permission.ACCESS_NOTIFICATIONS)
+        public StatusBarNotification[] getHistoricalNotificationsWithAttribution(String callingPkg,
+                String callingAttributionTag, int count, boolean includeSnoozed) {
             // enforce() will ensure the calling uid has the correct permission
             getContext().enforceCallingOrSelfPermission(
                     android.Manifest.permission.ACCESS_NOTIFICATIONS,
@@ -3714,7 +3770,8 @@
             int uid = Binder.getCallingUid();
 
             // noteOp will check to make sure the callingPkg matches the uid
-            if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg)
+            if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg,
+                    callingAttributionTag, null)
                     == AppOpsManager.MODE_ALLOWED) {
                 synchronized (mArchive) {
                     tmp = mArchive.getArray(count, includeSnoozed);
@@ -3730,7 +3787,8 @@
         @Override
         @WorkerThread
         @RequiresPermission(android.Manifest.permission.ACCESS_NOTIFICATIONS)
-        public NotificationHistory getNotificationHistory(String callingPkg) {
+        public NotificationHistory getNotificationHistory(String callingPkg,
+                String callingAttributionTag) {
             // enforce() will ensure the calling uid has the correct permission
             getContext().enforceCallingOrSelfPermission(
                     android.Manifest.permission.ACCESS_NOTIFICATIONS,
@@ -3738,7 +3796,8 @@
             int uid = Binder.getCallingUid();
 
             // noteOp will check to make sure the callingPkg matches the uid
-            if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg)
+            if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg,
+                    callingAttributionTag, null)
                     == AppOpsManager.MODE_ALLOWED) {
                 IntArray currentUserIds = mUserProfiles.getCurrentProfileIds();
                 Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "notifHistoryReadHistory");
@@ -4137,7 +4196,7 @@
         @Override
         public int getInterruptionFilterFromListener(INotificationListener token)
                 throws RemoteException {
-            synchronized (mNotificationLight) {
+            synchronized (mNotificationLock) {
                 return mInterruptionFilter;
             }
         }
@@ -5580,6 +5639,7 @@
         final NotificationRecord r = new NotificationRecord(getContext(), n, channel);
         r.setIsAppImportanceLocked(mPreferencesHelper.getIsAppImportanceLocked(pkg, callingUid));
         r.setPostSilently(postSilently);
+        r.setFlagBubbleRemoved(false);
 
         if ((notification.flags & Notification.FLAG_FOREGROUND_SERVICE) != 0) {
             final boolean fgServiceShown = channel.isFgServiceShown();
@@ -5610,7 +5670,8 @@
             }
         }
 
-        r.setShortcutInfo(mShortcutHelper.getShortcutInfo(notification.getShortcutId(), pkg, user));
+        r.setShortcutInfo(mShortcutHelper.getValidShortcutInfo(
+                notification.getShortcutId(), pkg, user));
 
         if (!checkDisqualifyingFeatures(userId, notificationUid, id, tag, r,
                 r.getSbn().getOverrideGroupKey() != null)) {
@@ -6716,7 +6777,7 @@
         if (canShowLightsLocked(record, aboveThreshold)) {
             mLights.add(key);
             updateLightsLocked();
-            if (mUseAttentionLight) {
+            if (mUseAttentionLight && mAttentionLight != null) {
                 mAttentionLight.pulse();
             }
             blink = true;
@@ -7917,6 +7978,10 @@
     @GuardedBy("mNotificationLock")
     void updateLightsLocked()
     {
+        if (mNotificationLight == null) {
+            return;
+        }
+
         // handle notification lights
         NotificationRecord ledNotification = null;
         while (ledNotification == null && !mLights.isEmpty()) {
diff --git a/services/core/java/com/android/server/notification/NotificationRecord.java b/services/core/java/com/android/server/notification/NotificationRecord.java
index 3f24b38..54a0f9f 100644
--- a/services/core/java/com/android/server/notification/NotificationRecord.java
+++ b/services/core/java/com/android/server/notification/NotificationRecord.java
@@ -187,6 +187,7 @@
     private boolean mSuggestionsGeneratedByAssistant;
     private boolean mEditChoicesBeforeSending;
     private boolean mHasSeenSmartReplies;
+    private boolean mFlagBubbleRemoved;
     private boolean mPostSilently;
     /**
      * Whether this notification (and its channels) should be considered user locked. Used in
@@ -1201,6 +1202,19 @@
         return stats.hasBeenVisiblyExpanded();
     }
 
+    /**
+     * When the bubble state on a notif changes due to user action (e.g. dismiss a bubble) then
+     * this value is set until an update or bubble change event due to user action (e.g. create
+     * bubble from sysui)
+     **/
+    public boolean isFlagBubbleRemoved() {
+        return mFlagBubbleRemoved;
+    }
+
+    public void setFlagBubbleRemoved(boolean flagBubbleRemoved) {
+        mFlagBubbleRemoved = flagBubbleRemoved;
+    }
+
     public void setSystemGeneratedSmartActions(
             ArrayList<Notification.Action> systemGeneratedSmartActions) {
         mSystemGeneratedSmartActions = systemGeneratedSmartActions;
diff --git a/services/core/java/com/android/server/notification/PreferencesHelper.java b/services/core/java/com/android/server/notification/PreferencesHelper.java
index 6fd09bb..32cfaf6 100644
--- a/services/core/java/com/android/server/notification/PreferencesHelper.java
+++ b/services/core/java/com/android/server/notification/PreferencesHelper.java
@@ -725,8 +725,8 @@
                     existing.setDescription(channel.getDescription());
                     needsPolicyFileChange = true;
                 }
-                if (channel.isBlockableSystem() != existing.isBlockableSystem()) {
-                    existing.setBlockableSystem(channel.isBlockableSystem());
+                if (channel.isBlockable() != existing.isBlockable()) {
+                    existing.setBlockable(channel.isBlockable());
                     needsPolicyFileChange = true;
                 }
                 if (channel.getGroup() != null && existing.getGroup() == null) {
diff --git a/services/core/java/com/android/server/notification/ShortcutHelper.java b/services/core/java/com/android/server/notification/ShortcutHelper.java
index 7bbb3b1..f1ce3a7 100644
--- a/services/core/java/com/android/server/notification/ShortcutHelper.java
+++ b/services/core/java/com/android/server/notification/ShortcutHelper.java
@@ -121,7 +121,10 @@
         mLauncherAppsService = launcherApps;
     }
 
-    ShortcutInfo getShortcutInfo(String shortcutId, String packageName, UserHandle user) {
+    /**
+     * Only returns shortcut info if it's found and if it's {@link ShortcutInfo#isLongLived()}.
+     */
+    ShortcutInfo getValidShortcutInfo(String shortcutId, String packageName, UserHandle user) {
         if (mLauncherAppsService == null) {
             return null;
         }
@@ -135,20 +138,15 @@
             query.setShortcutIds(Arrays.asList(shortcutId));
             query.setQueryFlags(FLAG_MATCH_DYNAMIC | FLAG_MATCH_PINNED | FLAG_MATCH_CACHED);
             List<ShortcutInfo> shortcuts = mLauncherAppsService.getShortcuts(query, user);
-            return shortcuts != null && shortcuts.size() > 0
+            ShortcutInfo info = shortcuts != null && shortcuts.size() > 0
                     ? shortcuts.get(0)
                     : null;
+            return info != null && info.isLongLived() ? info : null;
         } finally {
             Binder.restoreCallingIdentity(token);
         }
     }
 
-    boolean hasValidShortcutInfo(String shortcutId, String packageName,
-            UserHandle user) {
-        ShortcutInfo shortcutInfo = getShortcutInfo(shortcutId, packageName, user);
-        return shortcutInfo != null && shortcutInfo.isLongLived();
-    }
-
     /**
      * Shortcut based bubbles require some extra work to listen for shortcut changes.
      *
diff --git a/services/core/java/com/android/server/notification/ValidateNotificationPeople.java b/services/core/java/com/android/server/notification/ValidateNotificationPeople.java
index 90fc59a..f59934f 100644
--- a/services/core/java/com/android/server/notification/ValidateNotificationPeople.java
+++ b/services/core/java/com/android/server/notification/ValidateNotificationPeople.java
@@ -19,6 +19,7 @@
 import android.annotation.Nullable;
 import android.app.Notification;
 import android.app.Person;
+import android.content.ContentProvider;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.database.ContentObserver;
@@ -28,6 +29,7 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.UserHandle;
+import android.os.UserManager;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
 import android.provider.Settings;
@@ -38,6 +40,8 @@
 import android.util.LruCache;
 import android.util.Slog;
 
+import com.android.internal.annotations.VisibleForTesting;
+
 import libcore.util.EmptyArray;
 
 import java.util.ArrayList;
@@ -392,26 +396,57 @@
         return searchContacts(context, numberUri);
     }
 
-    private LookupResult searchContacts(Context context, Uri lookupUri) {
+    @VisibleForTesting
+    LookupResult searchContacts(Context context, Uri lookupUri) {
         LookupResult lookupResult = new LookupResult();
-        Cursor c = null;
-        try {
-            c = context.getContentResolver().query(lookupUri, LOOKUP_PROJECTION, null, null, null);
+        final Uri corpLookupUri =
+                ContactsContract.Contacts.createCorpLookupUriFromEnterpriseLookupUri(lookupUri);
+        if (corpLookupUri == null) {
+            addContacts(lookupResult, context, lookupUri);
+        } else {
+            addWorkContacts(lookupResult, context, corpLookupUri);
+        }
+        return lookupResult;
+    }
+
+    private void addWorkContacts(LookupResult lookupResult, Context context, Uri corpLookupUri) {
+        final int workUserId = findWorkUserId(context);
+        if (workUserId == -1) {
+            Slog.w(TAG, "Work profile user ID not found for work contact: " + corpLookupUri);
+            return;
+        }
+        final Uri corpLookupUriWithUserId =
+                ContentProvider.maybeAddUserId(corpLookupUri, workUserId);
+        addContacts(lookupResult, context, corpLookupUriWithUserId);
+    }
+
+    /** Returns the user ID of the managed profile or -1 if none is found. */
+    private int findWorkUserId(Context context) {
+        final UserManager userManager = context.getSystemService(UserManager.class);
+        final int[] profileIds =
+                userManager.getProfileIds(context.getUserId(), /* enabledOnly= */ true);
+        for (int profileId : profileIds) {
+            if (userManager.isManagedProfile(profileId)) {
+                return profileId;
+            }
+        }
+        return -1;
+    }
+
+    /** Modifies the given lookup result to add contacts found at the given URI. */
+    private void addContacts(LookupResult lookupResult, Context context, Uri uri) {
+        try (Cursor c = context.getContentResolver().query(
+                uri, LOOKUP_PROJECTION, null, null, null)) {
             if (c == null) {
                 Slog.w(TAG, "Null cursor from contacts query.");
-                return lookupResult;
+                return;
             }
             while (c.moveToNext()) {
                 lookupResult.mergeContact(c);
             }
         } catch (Throwable t) {
             Slog.w(TAG, "Problem getting content resolver or performing contacts query.", t);
-        } finally {
-            if (c != null) {
-                c.close();
-            }
         }
-        return lookupResult;
     }
 
     private static class LookupResult {
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index 2853956..d862e4f 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -1278,13 +1278,16 @@
                     (1 << AudioSystem.STREAM_SYSTEM);
 
             if (mZenMode == Global.ZEN_MODE_NO_INTERRUPTIONS) {
-                // alarm and music streams affected by ringer mode (cannot be adjusted) when in
+                // alarm and music and streams affected by ringer mode (cannot be adjusted) when in
                 // total silence
                 streams |= (1 << AudioSystem.STREAM_ALARM) |
-                        (1 << AudioSystem.STREAM_MUSIC);
+                        (1 << AudioSystem.STREAM_MUSIC) |
+                        (1 << AudioSystem.STREAM_ASSISTANT);
             } else {
                 streams &= ~((1 << AudioSystem.STREAM_ALARM) |
-                        (1 << AudioSystem.STREAM_MUSIC));
+                        (1 << AudioSystem.STREAM_MUSIC) |
+                        (1 << AudioSystem.STREAM_ASSISTANT)
+                );
             }
             return streams;
         }
diff --git a/services/core/java/com/android/server/pm/ApexManager.java b/services/core/java/com/android/server/pm/ApexManager.java
index c37ea8b..c97f33b 100644
--- a/services/core/java/com/android/server/pm/ApexManager.java
+++ b/services/core/java/com/android/server/pm/ApexManager.java
@@ -16,22 +16,22 @@
 
 package com.android.server.pm;
 
+import static android.os.Trace.TRACE_TAG_PACKAGE_MANAGER;
+
 import android.annotation.IntDef;
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.apex.ApexInfo;
 import android.apex.ApexInfoList;
 import android.apex.ApexSessionInfo;
 import android.apex.ApexSessionParams;
 import android.apex.IApexService;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageInstaller;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageParser;
+import android.content.pm.parsing.PackageInfoWithoutStateUtils;
 import android.os.Environment;
 import android.os.RemoteException;
 import android.os.ServiceManager;
@@ -44,8 +44,9 @@
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.os.BackgroundThread;
 import com.android.internal.util.IndentingPrintWriter;
+import com.android.internal.util.Preconditions;
+import com.android.server.pm.parsing.PackageParser2;
 import com.android.server.pm.parsing.pkg.AndroidPackage;
 import com.android.server.utils.TimingsTraceAndSlog;
 
@@ -61,7 +62,9 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
+import java.util.concurrent.ExecutorService;
 import java.util.stream.Collectors;
 
 /**
@@ -72,7 +75,7 @@
 
     private static final String TAG = "ApexManager";
 
-    static final int MATCH_ACTIVE_PACKAGE = 1 << 0;
+    public static final int MATCH_ACTIVE_PACKAGE = 1 << 0;
     static final int MATCH_FACTORY_PACKAGE = 1 << 1;
 
     private static final Singleton<ApexManager> sApexManagerSingleton =
@@ -139,7 +142,14 @@
      */
     public abstract List<ActiveApexInfo> getActiveApexInfos();
 
-    abstract void systemReady(Context context);
+    /**
+     * Called by package manager service to scan apex package files when device boots up.
+     *
+     * @param packageParser The package parser which supports caches.
+     * @param executorService An executor to support parallel package parsing.
+     */
+    abstract void scanApexPackagesTraced(@NonNull PackageParser2 packageParser,
+            @NonNull ExecutorService executorService);
 
     /**
      * Retrieves information about an APEX package.
@@ -154,7 +164,7 @@
      *         is not found.
      */
     @Nullable
-    abstract PackageInfo getPackageInfo(String packageName, @PackageInfoFlags int flags);
+    public abstract PackageInfo getPackageInfo(String packageName, @PackageInfoFlags int flags);
 
     /**
      * Retrieves information about all active APEX packages.
@@ -189,6 +199,27 @@
     abstract boolean isApexPackage(String packageName);
 
     /**
+     * Whether the APEX package is pre-installed or not.
+     *
+     * @param packageInfo the package to check
+     * @return {@code true} if this package is pre-installed, {@code false} otherwise.
+     */
+    public static boolean isFactory(@NonNull PackageInfo packageInfo) {
+        return (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
+    }
+
+    /**
+     * Returns the active apex package's name that contains the (apk) package.
+     *
+     * @param containedPackage The (apk) package that might be in a apex
+     * @return the apex package's name of {@code null} if the {@code containedPackage} is not inside
+     *         any apex.
+     */
+    @Nullable
+    public abstract String getActiveApexPackageNameContainingPackage(
+            @NonNull AndroidPackage containedPackage);
+
+    /**
      * Retrieves information about an apexd staged session i.e. the internal state used by apexd to
      * track the different states of a session.
      *
@@ -342,7 +373,7 @@
          * difference between {@code packageName} and {@code apexModuleName}.
          */
         @GuardedBy("mLock")
-        private Map<String, List<String>> mApksInApex = new ArrayMap<>();
+        private ArrayMap<String, List<String>> mApksInApex = new ArrayMap<>();
 
         @GuardedBy("mLock")
         private List<PackageInfo> mAllPackagesCache;
@@ -357,7 +388,7 @@
          * the apk container to {@code apexModuleName} of the apex-payload inside.
          */
         @GuardedBy("mLock")
-        private Map<String, String> mPackageNameToApexModuleName;
+        private ArrayMap<String, String> mPackageNameToApexModuleName;
 
         ApexManagerImpl(IApexService apexService) {
             mApexService = apexService;
@@ -373,16 +404,6 @@
             return (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED) != 0;
         }
 
-        /**
-         * Whether the APEX package is pre-installed or not.
-         *
-         * @param packageInfo the package to check
-         * @return {@code true} if this package is pre-installed, {@code false} otherwise.
-         */
-        private static boolean isFactory(PackageInfo packageInfo) {
-            return (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
-        }
-
         @Override
         public List<ActiveApexInfo> getActiveApexInfos() {
             final TimingsTraceAndSlog t = new TimingsTraceAndSlog(TAG + "Timing",
@@ -411,104 +432,94 @@
         }
 
         @Override
-        void systemReady(Context context) {
-            context.registerReceiver(new BroadcastReceiver() {
-                @Override
-                public void onReceive(Context context, Intent intent) {
-                    // Post populateAllPackagesCacheIfNeeded to a background thread, since it's
-                    // expensive to run it in broadcast handler thread.
-                    BackgroundThread.getHandler().post(() -> populateAllPackagesCacheIfNeeded());
-                    context.unregisterReceiver(this);
+        void scanApexPackagesTraced(@NonNull PackageParser2 packageParser,
+                @NonNull ExecutorService executorService) {
+            Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "scanApexPackagesTraced");
+            try {
+                synchronized (mLock) {
+                    scanApexPackagesInternalLocked(packageParser, executorService);
                 }
-            }, new IntentFilter(Intent.ACTION_BOOT_COMPLETED));
-        }
-
-        private void populatePackageNameToApexModuleNameIfNeeded() {
-            synchronized (mLock) {
-                if (mPackageNameToApexModuleName != null) {
-                    return;
-                }
-                try {
-                    mPackageNameToApexModuleName = new ArrayMap<>();
-                    final ApexInfo[] allPkgs = mApexService.getAllPackages();
-                    for (int i = 0; i < allPkgs.length; i++) {
-                        ApexInfo ai = allPkgs[i];
-                        PackageParser.PackageLite pkgLite;
-                        try {
-                            File apexFile = new File(ai.modulePath);
-                            pkgLite = PackageParser.parsePackageLite(apexFile, 0);
-                        } catch (PackageParser.PackageParserException pe) {
-                            throw new IllegalStateException("Unable to parse: "
-                                    + ai.modulePath, pe);
-                        }
-                        mPackageNameToApexModuleName.put(pkgLite.packageName, ai.moduleName);
-                    }
-                } catch (RemoteException re) {
-                    Slog.e(TAG, "Unable to retrieve packages from apexservice: ", re);
-                    throw new RuntimeException(re);
-                }
+            } finally {
+                Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
             }
         }
 
-        private void populateAllPackagesCacheIfNeeded() {
-            synchronized (mLock) {
-                if (mAllPackagesCache != null) {
-                    return;
-                }
-                try {
-                    mAllPackagesCache = new ArrayList<>();
-                    HashSet<String> activePackagesSet = new HashSet<>();
-                    HashSet<String> factoryPackagesSet = new HashSet<>();
-                    final ApexInfo[] allPkgs = mApexService.getAllPackages();
-                    for (ApexInfo ai : allPkgs) {
-                        // If the device is using flattened APEX, don't report any APEX
-                        // packages since they won't be managed or updated by PackageManager.
-                        if ((new File(ai.modulePath)).isDirectory()) {
-                            break;
-                        }
-                        int flags = PackageManager.GET_META_DATA
-                                | PackageManager.GET_SIGNING_CERTIFICATES
-                                | PackageManager.GET_SIGNATURES;
-                        PackageParser.Package pkg;
-                        try {
-                            File apexFile = new File(ai.modulePath);
-                            PackageParser pp = new PackageParser();
-                            pkg = pp.parsePackage(apexFile, flags, false);
-                            PackageParser.collectCertificates(pkg, false);
-                        } catch (PackageParser.PackageParserException pe) {
-                            throw new IllegalStateException("Unable to parse: " + ai, pe);
-                        }
+        @GuardedBy("mLock")
+        private void scanApexPackagesInternalLocked(PackageParser2 packageParser,
+                ExecutorService executorService) {
+            final ApexInfo[] allPkgs;
+            try {
+                mAllPackagesCache = new ArrayList<>();
+                mPackageNameToApexModuleName = new ArrayMap<>();
+                allPkgs = mApexService.getAllPackages();
+            } catch (RemoteException re) {
+                Slog.e(TAG, "Unable to retrieve packages from apexservice: " + re.toString());
+                throw new RuntimeException(re);
+            }
+            if (allPkgs.length == 0) {
+                return;
+            }
+            int flags = PackageManager.GET_META_DATA
+                    | PackageManager.GET_SIGNING_CERTIFICATES
+                    | PackageManager.GET_SIGNATURES;
+            ArrayMap<File, ApexInfo> parsingApexInfo = new ArrayMap<>();
+            ParallelPackageParser parallelPackageParser =
+                    new ParallelPackageParser(packageParser, executorService);
 
-                        final PackageInfo packageInfo =
-                                PackageParser.generatePackageInfo(pkg, ai, flags);
-                        mAllPackagesCache.add(packageInfo);
-                        if (ai.isActive) {
-                            if (activePackagesSet.contains(packageInfo.packageName)) {
-                                throw new IllegalStateException(
-                                        "Two active packages have the same name: "
-                                                + packageInfo.packageName);
-                            }
-                            activePackagesSet.add(packageInfo.packageName);
-                        }
-                        if (ai.isFactory) {
-                            if (factoryPackagesSet.contains(packageInfo.packageName)) {
-                                throw new IllegalStateException(
-                                        "Two factory packages have the same name: "
-                                                + packageInfo.packageName);
-                            }
-                            factoryPackagesSet.add(packageInfo.packageName);
-                        }
+            for (ApexInfo ai : allPkgs) {
+                File apexFile = new File(ai.modulePath);
+                parallelPackageParser.submit(apexFile, flags);
+                parsingApexInfo.put(apexFile, ai);
+            }
+
+            HashSet<String> activePackagesSet = new HashSet<>();
+            HashSet<String> factoryPackagesSet = new HashSet<>();
+            // Process results one by one
+            for (int i = 0; i < parsingApexInfo.size(); i++) {
+                ParallelPackageParser.ParseResult parseResult = parallelPackageParser.take();
+                Throwable throwable = parseResult.throwable;
+                ApexInfo ai = parsingApexInfo.get(parseResult.scanFile);
+
+                if (throwable == null) {
+                    final PackageInfo packageInfo = PackageInfoWithoutStateUtils.generate(
+                            parseResult.parsedPackage, ai, flags);
+                    if (packageInfo == null) {
+                        throw new IllegalStateException("Unable to generate package info: "
+                                + ai.modulePath);
                     }
-                } catch (RemoteException re) {
-                    Slog.e(TAG, "Unable to retrieve packages from apexservice: " + re.toString());
-                    throw new RuntimeException(re);
+                    mAllPackagesCache.add(packageInfo);
+                    mPackageNameToApexModuleName.put(packageInfo.packageName, ai.moduleName);
+                    if (ai.isActive) {
+                        if (activePackagesSet.contains(packageInfo.packageName)) {
+                            throw new IllegalStateException(
+                                    "Two active packages have the same name: "
+                                            + packageInfo.packageName);
+                        }
+                        activePackagesSet.add(packageInfo.packageName);
+                    }
+                    if (ai.isFactory) {
+                        if (factoryPackagesSet.contains(packageInfo.packageName)) {
+                            throw new IllegalStateException(
+                                    "Two factory packages have the same name: "
+                                            + packageInfo.packageName);
+                        }
+                        factoryPackagesSet.add(packageInfo.packageName);
+                    }
+                } else if (throwable instanceof PackageParser.PackageParserException) {
+                    throw new IllegalStateException("Unable to parse: " + ai.modulePath, throwable);
+                } else {
+                    throw new IllegalStateException("Unexpected exception occurred while parsing "
+                            + ai.modulePath, throwable);
                 }
             }
         }
 
         @Override
-        @Nullable PackageInfo getPackageInfo(String packageName, @PackageInfoFlags int flags) {
-            populateAllPackagesCacheIfNeeded();
+        @Nullable
+        public PackageInfo getPackageInfo(String packageName,
+                @PackageInfoFlags int flags) {
+            Preconditions.checkState(mAllPackagesCache != null,
+                    "APEX packages have not been scanned");
             boolean matchActive = (flags & MATCH_ACTIVE_PACKAGE) != 0;
             boolean matchFactory = (flags & MATCH_FACTORY_PACKAGE) != 0;
             for (PackageInfo packageInfo: mAllPackagesCache) {
@@ -525,7 +536,8 @@
 
         @Override
         List<PackageInfo> getActivePackages() {
-            populateAllPackagesCacheIfNeeded();
+            Preconditions.checkState(mAllPackagesCache != null,
+                    "APEX packages have not been scanned");
             return mAllPackagesCache
                     .stream()
                     .filter(item -> isActive(item))
@@ -534,7 +546,8 @@
 
         @Override
         List<PackageInfo> getFactoryPackages() {
-            populateAllPackagesCacheIfNeeded();
+            Preconditions.checkState(mAllPackagesCache != null,
+                    "APEX packages have not been scanned");
             return mAllPackagesCache
                     .stream()
                     .filter(item -> isFactory(item))
@@ -543,7 +556,8 @@
 
         @Override
         List<PackageInfo> getInactivePackages() {
-            populateAllPackagesCacheIfNeeded();
+            Preconditions.checkState(mAllPackagesCache != null,
+                    "APEX packages have not been scanned");
             return mAllPackagesCache
                     .stream()
                     .filter(item -> !isActive(item))
@@ -553,7 +567,8 @@
         @Override
         boolean isApexPackage(String packageName) {
             if (!isApexSupported()) return false;
-            populateAllPackagesCacheIfNeeded();
+            Preconditions.checkState(mAllPackagesCache != null,
+                    "APEX packages have not been scanned");
             for (PackageInfo packageInfo : mAllPackagesCache) {
                 if (packageInfo.packageName.equals(packageName)) {
                     return true;
@@ -563,6 +578,36 @@
         }
 
         @Override
+        @Nullable
+        public String getActiveApexPackageNameContainingPackage(
+                @NonNull AndroidPackage containedPackage) {
+            Preconditions.checkState(mPackageNameToApexModuleName != null,
+                    "APEX packages have not been scanned");
+
+            Objects.requireNonNull(containedPackage);
+
+            synchronized (mLock) {
+                int numApksInApex = mApksInApex.size();
+                for (int apkInApexNum = 0; apkInApexNum < numApksInApex; apkInApexNum++) {
+                    if (mApksInApex.valueAt(apkInApexNum).contains(
+                            containedPackage.getPackageName())) {
+                        String apexModuleName = mApksInApex.keyAt(apkInApexNum);
+
+                        int numApexPkgs = mPackageNameToApexModuleName.size();
+                        for (int apexPkgNum = 0; apexPkgNum < numApexPkgs; apexPkgNum++) {
+                            if (mPackageNameToApexModuleName.valueAt(apexPkgNum).equals(
+                                    apexModuleName)) {
+                                return mPackageNameToApexModuleName.keyAt(apexPkgNum);
+                            }
+                        }
+                    }
+                }
+            }
+
+            return null;
+        }
+
+        @Override
         @Nullable ApexSessionInfo getStagedSessionInfo(int sessionId) {
             try {
                 ApexSessionInfo apexSessionInfo = mApexService.getStagedSessionInfo(sessionId);
@@ -684,8 +729,9 @@
 
         @Override
         List<String> getApksInApex(String apexPackageName) {
-            populatePackageNameToApexModuleNameIfNeeded();
             synchronized (mLock) {
+                Preconditions.checkState(mPackageNameToApexModuleName != null,
+                        "APEX packages have not been scanned");
                 String moduleName = mPackageNameToApexModuleName.get(apexPackageName);
                 if (moduleName == null) {
                     return Collections.emptyList();
@@ -697,17 +743,19 @@
         @Override
         @Nullable
         public String getApexModuleNameForPackageName(String apexPackageName) {
-            populatePackageNameToApexModuleNameIfNeeded();
             synchronized (mLock) {
+                Preconditions.checkState(mPackageNameToApexModuleName != null,
+                        "APEX packages have not been scanned");
                 return mPackageNameToApexModuleName.get(apexPackageName);
             }
         }
 
         @Override
         public long snapshotCeData(int userId, int rollbackId, String apexPackageName) {
-            populatePackageNameToApexModuleNameIfNeeded();
             String apexModuleName;
             synchronized (mLock) {
+                Preconditions.checkState(mPackageNameToApexModuleName != null,
+                        "APEX packages have not been scanned");
                 apexModuleName = mPackageNameToApexModuleName.get(apexPackageName);
             }
             if (apexModuleName == null) {
@@ -724,9 +772,10 @@
 
         @Override
         public boolean restoreCeData(int userId, int rollbackId, String apexPackageName) {
-            populatePackageNameToApexModuleNameIfNeeded();
             String apexModuleName;
             synchronized (mLock) {
+                Preconditions.checkState(mPackageNameToApexModuleName != null,
+                        "APEX packages have not been scanned");
                 apexModuleName = mPackageNameToApexModuleName.get(apexPackageName);
             }
             if (apexModuleName == null) {
@@ -797,15 +846,7 @@
         void dump(PrintWriter pw, @Nullable String packageName) {
             final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, "  ", 120);
             try {
-                populateAllPackagesCacheIfNeeded();
                 ipw.println();
-                ipw.println("Active APEX packages:");
-                dumpFromPackagesCache(getActivePackages(), packageName, ipw);
-                ipw.println("Inactive APEX packages:");
-                dumpFromPackagesCache(getInactivePackages(), packageName, ipw);
-                ipw.println("Factory APEX packages:");
-                dumpFromPackagesCache(getFactoryPackages(), packageName, ipw);
-                ipw.increaseIndent();
                 ipw.println("APEX session state:");
                 ipw.increaseIndent();
                 final ApexSessionInfo[] sessions = mApexService.getSessions();
@@ -834,6 +875,17 @@
                     ipw.decreaseIndent();
                 }
                 ipw.decreaseIndent();
+                ipw.println();
+                if (mAllPackagesCache == null) {
+                    ipw.println("APEX packages have not been scanned");
+                    return;
+                }
+                ipw.println("Active APEX packages:");
+                dumpFromPackagesCache(getActivePackages(), packageName, ipw);
+                ipw.println("Inactive APEX packages:");
+                dumpFromPackagesCache(getInactivePackages(), packageName, ipw);
+                ipw.println("Factory APEX packages:");
+                dumpFromPackagesCache(getFactoryPackages(), packageName, ipw);
             } catch (RemoteException e) {
                 ipw.println("Couldn't communicate with apexd.");
             }
@@ -879,12 +931,13 @@
         }
 
         @Override
-        void systemReady(Context context) {
+        void scanApexPackagesTraced(@NonNull PackageParser2 packageParser,
+                @NonNull ExecutorService executorService) {
             // No-op
         }
 
         @Override
-        PackageInfo getPackageInfo(String packageName, int flags) {
+        public PackageInfo getPackageInfo(String packageName, int flags) {
             return null;
         }
 
@@ -909,6 +962,15 @@
         }
 
         @Override
+        @Nullable
+        public String getActiveApexPackageNameContainingPackage(
+                @NonNull AndroidPackage containedPackage) {
+            Objects.requireNonNull(containedPackage);
+
+            return null;
+        }
+
+        @Override
         ApexSessionInfo getStagedSessionInfo(int sessionId) {
             throw new UnsupportedOperationException();
         }
diff --git a/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java b/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java
index 83da381..4087675 100644
--- a/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java
+++ b/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java
@@ -64,6 +64,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub {
     private static final String TAG = "CrossProfileAppsService";
@@ -249,16 +250,13 @@
     }
 
     private boolean canRequestInteractAcrossProfilesUnchecked(String packageName) {
-        List<UserHandle> targetUserProfiles =
-                getTargetUserProfilesUnchecked(packageName, mInjector.getCallingUserId());
-        if (targetUserProfiles.isEmpty()) {
+        final int[] enabledProfileIds =
+                mInjector.getUserManager().getEnabledProfileIds(mInjector.getCallingUserId());
+        if (enabledProfileIds.length < 2) {
             return false;
         }
-        if (!hasRequestedAppOpPermission(
-                AppOpsManager.opToPermission(OP_INTERACT_ACROSS_PROFILES), packageName)) {
-            return false;
-        }
-        return isCrossProfilePackageWhitelisted(packageName);
+        return hasRequestedAppOpPermission(
+                AppOpsManager.opToPermission(OP_INTERACT_ACROSS_PROFILES), packageName);
     }
 
     private boolean hasRequestedAppOpPermission(String permission, String packageName) {
@@ -450,7 +448,7 @@
         final int uid = mInjector.getPackageManager()
                 .getPackageUidAsUser(packageName, /* flags= */ 0, userId);
         if (currentModeEquals(newMode, packageName, uid)) {
-            Slog.w(TAG, "Attempt to set mode to existing value of " + newMode + " for "
+            Slog.i(TAG, "Attempt to set mode to existing value of " + newMode + " for "
                     + packageName + " on user ID " + userId);
             return;
         }
@@ -540,6 +538,17 @@
         return isCrossProfilePackageWhitelisted(packageName);
     }
 
+    @Override
+    public boolean canUserAttemptToConfigureInteractAcrossProfiles(String packageName) {
+        final int[] profileIds = mInjector.getUserManager().getProfileIds(
+                mInjector.getCallingUserId(), /* enabledOnly= */ false);
+        if (profileIds.length < 2) {
+            return false;
+        }
+        return hasRequestedAppOpPermission(
+                AppOpsManager.opToPermission(OP_INTERACT_ACROSS_PROFILES), packageName);
+    }
+
     private boolean hasOtherProfileWithPackageInstalled(String packageName, @UserIdInt int userId) {
         return mInjector.withCleanCallingIdentity(() -> {
             final int[] profileIds =
@@ -569,6 +578,24 @@
         setInteractAcrossProfilesAppOp(packageName, AppOpsManager.opToDefaultMode(op));
     }
 
+    @Override
+    public void clearInteractAcrossProfilesAppOps() {
+        final int defaultMode =
+                AppOpsManager.opToDefaultMode(
+                        AppOpsManager.permissionToOp(Manifest.permission.INTERACT_ACROSS_PROFILES));
+        findAllPackageNames()
+                .forEach(packageName -> setInteractAcrossProfilesAppOp(packageName, defaultMode));
+    }
+
+    private List<String> findAllPackageNames() {
+        return mInjector.getPackageManagerInternal()
+                .getInstalledApplications(
+                        /* flags= */ 0, mInjector.getCallingUserId(), mInjector.getCallingUid())
+                .stream()
+                .map(applicationInfo -> applicationInfo.packageName)
+                .collect(Collectors.toList());
+    }
+
     CrossProfileAppsInternal getLocalService() {
         return mLocalService;
     }
diff --git a/services/core/java/com/android/server/pm/InstantAppResolverConnection.java b/services/core/java/com/android/server/pm/InstantAppResolverConnection.java
index 0fe2eb1..a9a4589 100644
--- a/services/core/java/com/android/server/pm/InstantAppResolverConnection.java
+++ b/services/core/java/com/android/server/pm/InstantAppResolverConnection.java
@@ -92,7 +92,7 @@
         IInstantAppResolver target = null;
         try {
             try {
-                target = getRemoteInstanceLazy(request.token);
+                target = getRemoteInstanceLazy(request.getToken());
             } catch (TimeoutException e) {
                 throw new ConnectionException(ConnectionException.FAILURE_BIND);
             } catch (InterruptedException e) {
@@ -126,7 +126,7 @@
             }
         };
         try {
-            getRemoteInstanceLazy(request.token)
+            getRemoteInstanceLazy(request.getToken())
                     .getInstantAppIntentFilterList(request, remoteCallback);
         } catch (TimeoutException e) {
             throw new ConnectionException(ConnectionException.FAILURE_BIND);
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index 2ff3d2a..8ff7ea9 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -490,6 +490,14 @@
             throw new SecurityException("User restriction prevents installing");
         }
 
+        if (params.dataLoaderParams != null
+                && mContext.checkCallingOrSelfPermission(Manifest.permission.USE_INSTALLER_V2)
+                        != PackageManager.PERMISSION_GRANTED) {
+            throw new SecurityException("You need the "
+                    + "com.android.permission.USE_INSTALLER_V2 permission "
+                    + "to use a data loader");
+        }
+
         String requestedInstallerPackageName = params.installerPackageName != null
                 ? params.installerPackageName : installerPackageName;
 
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java
index 5b7e8bf..1248ec0 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerSession.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java
@@ -1487,6 +1487,18 @@
         return e;
     }
 
+    private void onDataLoaderUnrecoverable() {
+        final PackageManagerService packageManagerService = mPm;
+        final String packageName = mPackageName;
+        mHandler.post(() -> {
+            if (packageManagerService.deletePackageX(packageName,
+                    PackageManager.VERSION_CODE_HIGHEST, UserHandle.USER_SYSTEM,
+                    PackageManager.DELETE_ALL_USERS) != PackageManager.DELETE_SUCCEEDED) {
+                Slog.e(TAG, "Failed to uninstall package with failed dataloader: " + packageName);
+            }
+        });
+    }
+
     /**
      * If session should be sealed, then it's sealed to prevent further modification.
      * If the session can't be sealed then it's destroyed.
@@ -2467,12 +2479,14 @@
 
     @Override
     public DataLoaderParamsParcel getDataLoaderParams() {
+        mContext.enforceCallingOrSelfPermission(Manifest.permission.USE_INSTALLER_V2, null);
         return params.dataLoaderParams != null ? params.dataLoaderParams.getData() : null;
     }
 
     @Override
     public void addFile(int location, String name, long lengthBytes, byte[] metadata,
             byte[] signature) {
+        mContext.enforceCallingOrSelfPermission(Manifest.permission.USE_INSTALLER_V2, null);
         if (!isDataLoaderInstallation()) {
             throw new IllegalStateException(
                     "Cannot add files to non-data loader installation session.");
@@ -2505,6 +2519,7 @@
 
     @Override
     public void removeFile(int location, String name) {
+        mContext.enforceCallingOrSelfPermission(Manifest.permission.USE_INSTALLER_V2, null);
         if (!isDataLoaderInstallation()) {
             throw new IllegalStateException(
                     "Cannot add files to non-data loader installation session.");
@@ -2564,11 +2579,20 @@
         IDataLoaderStatusListener listener = new IDataLoaderStatusListener.Stub() {
             @Override
             public void onStatusChanged(int dataLoaderId, int status) {
-                try {
-                    if (status == IDataLoaderStatusListener.DATA_LOADER_DESTROYED) {
+                switch (status) {
+                    case IDataLoaderStatusListener.DATA_LOADER_STOPPED:
+                    case IDataLoaderStatusListener.DATA_LOADER_DESTROYED:
                         return;
-                    }
+                    case IDataLoaderStatusListener.DATA_LOADER_UNRECOVERABLE:
+                        onDataLoaderUnrecoverable();
+                        return;
+                }
 
+                if (mDestroyed || mDataLoaderFinished) {
+                    return;
+                }
+
+                try {
                     IDataLoader dataLoader = dataLoaderManager.getDataLoader(dataLoaderId);
                     if (dataLoader == null) {
                         mDataLoaderFinished = true;
@@ -3221,8 +3245,7 @@
                     new ComponentName(
                             readStringAttribute(in, ATTR_DATALOADER_PACKAGE_NAME),
                             readStringAttribute(in, ATTR_DATALOADER_CLASS_NAME)),
-                    readStringAttribute(in, ATTR_DATALOADER_ARGUMENTS),
-                    null);
+                    readStringAttribute(in, ATTR_DATALOADER_ARGUMENTS));
         }
 
         final File appIconFile = buildAppIconFile(sessionId, sessionsDir);
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 09e4e60..34363c8 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -161,6 +161,7 @@
 import android.content.pm.FallbackCategoryProvider;
 import android.content.pm.FeatureInfo;
 import android.content.pm.IDexModuleRegisterCallback;
+import android.content.pm.IPackageChangeObserver;
 import android.content.pm.IPackageDataObserver;
 import android.content.pm.IPackageDeleteObserver;
 import android.content.pm.IPackageDeleteObserver2;
@@ -178,6 +179,7 @@
 import android.content.pm.IntentFilterVerificationInfo;
 import android.content.pm.KeySet;
 import android.content.pm.ModuleInfo;
+import android.content.pm.PackageChangeEvent;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageInfoLite;
 import android.content.pm.PackageInstaller;
@@ -812,6 +814,10 @@
 
     private final OverlayConfig mOverlayConfig;
 
+    @GuardedBy("itself")
+    final private ArrayList<IPackageChangeObserver> mPackageChangeObservers =
+        new ArrayList<>();
+
     /**
      * Unit tests will instantiate, extend and/or mock to mock dependencies / behaviors.
      *
@@ -2894,6 +2900,9 @@
                     mMetrics, mCacheDir, mPackageParserCallback);
 
             ExecutorService executorService = ParallelPackageParser.makeExecutorService();
+            // Prepare apex package info before scanning APKs, these information are needed when
+            // scanning apk in apex.
+            mApexManager.scanApexPackagesTraced(packageParser, executorService);
             // Collect vendor/product/system_ext overlay packages. (Do this before scanning
             // any apps.)
             // For security and version matching reason, only consider overlay packages if they
@@ -5064,15 +5073,16 @@
      * action and a {@code android.intent.category.BROWSABLE} category</li>
      * </ul>
      */
-    int updateFlagsForResolve(int flags, int userId, int callingUid, boolean wantInstantApps) {
+    int updateFlagsForResolve(int flags, int userId, int callingUid, boolean wantInstantApps,
+            boolean matchSystemOnly) {
         return updateFlagsForResolve(flags, userId, callingUid,
-                wantInstantApps, false /*onlyExposedExplicitly*/);
+                wantInstantApps, matchSystemOnly, false /*onlyExposedExplicitly*/);
     }
 
     int updateFlagsForResolve(int flags, int userId, int callingUid,
-            boolean wantInstantApps, boolean onlyExposedExplicitly) {
+            boolean wantInstantApps, boolean onlyExposedExplicitly, boolean matchSystemOnly) {
         // Safe mode means we shouldn't match any third-party components
-        if (mSafeMode) {
+        if (mSafeMode || matchSystemOnly) {
             flags |= PackageManager.MATCH_SYSTEM_ONLY;
         }
         if (getInstantAppPackageName(callingUid) != null) {
@@ -6164,7 +6174,8 @@
 
             if (!mUserManager.exists(userId)) return null;
             final int callingUid = Binder.getCallingUid();
-            flags = updateFlagsForResolve(flags, userId, filterCallingUid, resolveForStart);
+            flags = updateFlagsForResolve(flags, userId, filterCallingUid, resolveForStart,
+                    intent.isImplicitImageCaptureIntent() /*matchSystemOnly*/);
             mPermissionManager.enforceCrossUserPermission(callingUid, userId,
                     false /*requireFullPermission*/, false /*checkShell*/, "resolve intent");
 
@@ -6196,7 +6207,8 @@
         intent = updateIntentForResolve(intent);
         final String resolvedType = intent.resolveTypeIfNeeded(mContext.getContentResolver());
         final int flags = updateFlagsForResolve(
-                0, userId, callingUid, false /*includeInstantApps*/);
+                0, userId, callingUid, false /*includeInstantApps*/,
+                intent.isImplicitImageCaptureIntent() /*matchSystemOnly*/);
         final List<ResolveInfo> query = queryIntentActivitiesInternal(intent, resolvedType, flags,
                 userId);
         synchronized (mLock) {
@@ -6517,7 +6529,8 @@
                 android.provider.Settings.Global.getInt(mContext.getContentResolver(),
                         android.provider.Settings.Global.DEVICE_PROVISIONED, 0) == 1;
         flags = updateFlagsForResolve(
-                flags, userId, callingUid, false /*includeInstantApps*/);
+                flags, userId, callingUid, false /*includeInstantApps*/,
+                intent.isImplicitImageCaptureIntent() /*matchSystemOnly*/);
         intent = updateIntentForResolve(intent);
         // writer
         synchronized (mLock) {
@@ -6729,7 +6742,8 @@
             }
             synchronized (mLock) {
                 int flags = updateFlagsForResolve(0, parent.id, callingUid,
-                        false /*includeInstantApps*/);
+                        false /*includeInstantApps*/,
+                        intent.isImplicitImageCaptureIntent() /*matchSystemOnly*/);
                 CrossProfileDomainInfo xpDomainInfo = getCrossProfileDomainPreferredLpr(
                         intent, resolvedType, flags, sourceUserId, parent.id);
                 return xpDomainInfo != null;
@@ -6815,7 +6829,8 @@
         }
 
         flags = updateFlagsForResolve(flags, userId, filterCallingUid, resolveForStart,
-                comp != null || pkgName != null /*onlyExposedExplicitly*/);
+                comp != null || pkgName != null /*onlyExposedExplicitly*/,
+                intent.isImplicitImageCaptureIntent() /*matchSystemOnly*/);
         if (comp != null) {
             final List<ResolveInfo> list = new ArrayList<>(1);
             final ActivityInfo ai = getActivityInfo(comp, flags, userId);
@@ -7238,8 +7253,8 @@
                 resolveInfos.set(i, installerInfo);
                 continue;
             }
-            // caller is a full app
             if (ephemeralPkgName == null) {
+                // caller is a full app
                 SettingBase callingSetting =
                         mSettings.getSettingLPr(UserHandle.getAppId(filterCallingUid));
                 PackageSetting resolvedSetting =
@@ -7259,11 +7274,9 @@
                     && intent.getComponent() == null) {
                 // ephemeral apps can launch other ephemeral apps indirectly
                 continue;
-            }
-            // allow activities that have been explicitly exposed to ephemeral apps
-            final boolean isEphemeralApp = info.activityInfo.applicationInfo.isInstantApp();
-            if (!isEphemeralApp
-                    && ((info.activityInfo.flags & ActivityInfo.FLAG_VISIBLE_TO_INSTANT_APP) != 0)) {
+            } else if (((info.activityInfo.flags & ActivityInfo.FLAG_VISIBLE_TO_INSTANT_APP) != 0)
+                    && !info.activityInfo.applicationInfo.isInstantApp()) {
+                // allow activities that have been explicitly exposed to ephemeral apps
                 continue;
             }
             resolveInfos.remove(i);
@@ -7602,7 +7615,8 @@
             String resolvedType, int flags, int userId) {
         if (!mUserManager.exists(userId)) return Collections.emptyList();
         final int callingUid = Binder.getCallingUid();
-        flags = updateFlagsForResolve(flags, userId, callingUid, false /*includeInstantApps*/);
+        flags = updateFlagsForResolve(flags, userId, callingUid, false /*includeInstantApps*/,
+                intent.isImplicitImageCaptureIntent() /*matchSystemOnly*/);
         mPermissionManager.enforceCrossUserPermission(callingUid, userId,
                 false /*requireFullPermission*/, false /*checkShell*/,
                 "query intent activity options");
@@ -7788,7 +7802,8 @@
                 false /*requireFullPermission*/, false /*checkShell*/,
                 "query intent receivers");
         final String instantAppPkgName = getInstantAppPackageName(callingUid);
-        flags = updateFlagsForResolve(flags, userId, callingUid, false /*includeInstantApps*/);
+        flags = updateFlagsForResolve(flags, userId, callingUid, false /*includeInstantApps*/,
+                intent.isImplicitImageCaptureIntent() /*matchSystemOnly*/);
         ComponentName comp = intent.getComponent();
         if (comp == null) {
             if (intent.getSelector() != null) {
@@ -7878,7 +7893,8 @@
     private ResolveInfo resolveServiceInternal(Intent intent, String resolvedType, int flags,
             int userId, int callingUid) {
         if (!mUserManager.exists(userId)) return null;
-        flags = updateFlagsForResolve(flags, userId, callingUid, false /*includeInstantApps*/);
+        flags = updateFlagsForResolve(flags, userId, callingUid, false /*includeInstantApps*/,
+                false /* matchSystemOnly */);
         List<ResolveInfo> query = queryIntentServicesInternal(
                 intent, resolvedType, flags, userId, callingUid, false /*includeInstantApps*/);
         if (query != null) {
@@ -7909,7 +7925,8 @@
                 false /*checkShell*/,
                 "query intent receivers");
         final String instantAppPkgName = getInstantAppPackageName(callingUid);
-        flags = updateFlagsForResolve(flags, userId, callingUid, includeInstantApps);
+        flags = updateFlagsForResolve(flags, userId, callingUid, includeInstantApps,
+                false /* matchSystemOnly */);
         ComponentName comp = intent.getComponent();
         if (comp == null) {
             if (intent.getSelector() != null) {
@@ -8046,7 +8063,8 @@
         if (!mUserManager.exists(userId)) return Collections.emptyList();
         final int callingUid = Binder.getCallingUid();
         final String instantAppPkgName = getInstantAppPackageName(callingUid);
-        flags = updateFlagsForResolve(flags, userId, callingUid, false /*includeInstantApps*/);
+        flags = updateFlagsForResolve(flags, userId, callingUid, false /*includeInstantApps*/,
+                false /* matchSystemOnly */);
         ComponentName comp = intent.getComponent();
         if (comp == null) {
             if (intent.getSelector() != null) {
@@ -16460,9 +16478,56 @@
             // BackgroundDexOptService will remove it from its blacklist.
             // TODO: Layering violation
             BackgroundDexOptService.notifyPackageChanged(packageName);
+
+            notifyPackageChangeObserversOnUpdate(reconciledPkg);
         }
     }
 
+    private void notifyPackageChangeObserversOnUpdate(ReconciledPackage reconciledPkg) {
+      final PackageSetting pkgSetting = reconciledPkg.pkgSetting;
+      final PackageInstalledInfo pkgInstalledInfo = reconciledPkg.installResult;
+      final PackageRemovedInfo pkgRemovedInfo = pkgInstalledInfo.removedInfo;
+
+      PackageChangeEvent pkgChangeEvent = new PackageChangeEvent();
+      pkgChangeEvent.packageName = pkgSetting.pkg.getPackageName();
+      pkgChangeEvent.version = pkgSetting.versionCode;
+      pkgChangeEvent.lastUpdateTimeMillis = pkgSetting.lastUpdateTime;
+      pkgChangeEvent.newInstalled = (pkgRemovedInfo == null || !pkgRemovedInfo.isUpdate);
+      pkgChangeEvent.dataRemoved = (pkgRemovedInfo != null && pkgRemovedInfo.dataRemoved);
+      pkgChangeEvent.isDeleted = false;
+
+      notifyPackageChangeObservers(pkgChangeEvent);
+    }
+
+    private void notifyPackageChangeObserversOnDelete(String packageName, long version) {
+      PackageChangeEvent pkgChangeEvent = new PackageChangeEvent();
+      pkgChangeEvent.packageName = packageName;
+      pkgChangeEvent.version = version;
+      pkgChangeEvent.lastUpdateTimeMillis = 0L;
+      pkgChangeEvent.newInstalled = false;
+      pkgChangeEvent.dataRemoved = false;
+      pkgChangeEvent.isDeleted = true;
+
+      notifyPackageChangeObservers(pkgChangeEvent);
+    }
+
+    private void notifyPackageChangeObservers(PackageChangeEvent event) {
+      try {
+        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "notifyPackageChangeObservers");
+        synchronized (mPackageChangeObservers) {
+          for(IPackageChangeObserver observer : mPackageChangeObservers) {
+            try {
+              observer.onPackageChanged(event);
+            } catch(RemoteException e) {
+              Log.wtf(TAG, e);
+            }
+          }
+        }
+      } finally {
+        Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
+      }
+    }
+
     /**
      * The set of data needed to successfully install the prepared package. This includes data that
      * will be used to scan and reconcile the package.
@@ -17523,6 +17588,7 @@
             } catch (RemoteException e) {
                 Log.i(TAG, "Observer no longer exists.");
             } //end catch
+            notifyPackageChangeObserversOnDelete(packageName, versionCode);
         });
     }
 
@@ -20633,7 +20699,6 @@
         storage.registerListener(mStorageListener);
 
         mInstallerService.systemReady();
-        mApexManager.systemReady(mContext);
         mPackageDexOptimizer.systemReady();
 
         mInjector.getStorageManagerInternal().addExternalStoragePolicy(
@@ -22982,8 +23047,49 @@
         }
     }
 
+    private final class PackageChangeObserverDeathRecipient implements IBinder.DeathRecipient {
+        private final IPackageChangeObserver mObserver;
+
+        PackageChangeObserverDeathRecipient(IPackageChangeObserver observer) {
+            mObserver = observer;
+        }
+
+        @Override
+        public void binderDied() {
+            synchronized (mPackageChangeObservers) {
+                mPackageChangeObservers.remove(mObserver);
+                Log.d(TAG, "Size of mPackageChangeObservers after removing dead observer is "
+                    + mPackageChangeObservers.size());
+            }
+        }
+    }
+
     private class PackageManagerNative extends IPackageManagerNative.Stub {
         @Override
+        public void registerPackageChangeObserver(@NonNull IPackageChangeObserver observer) {
+          synchronized (mPackageChangeObservers) {
+            try {
+                observer.asBinder().linkToDeath(
+                    new PackageChangeObserverDeathRecipient(observer), 0);
+            } catch (RemoteException e) {
+              Log.e(TAG, e.getMessage());
+            }
+            mPackageChangeObservers.add(observer);
+            Log.d(TAG, "Size of mPackageChangeObservers after registry is "
+                + mPackageChangeObservers.size());
+          }
+        }
+
+        @Override
+        public void unregisterPackageChangeObserver(@NonNull IPackageChangeObserver observer) {
+          synchronized (mPackageChangeObservers) {
+            mPackageChangeObservers.remove(observer);
+            Log.d(TAG, "Size of mPackageChangeObservers after unregistry is "
+                + mPackageChangeObservers.size());
+          }
+        }
+
+        @Override
         public String[] getAllPackages() {
             return PackageManagerService.this.getAllPackages().toArray(new String[0]);
         }
@@ -24383,7 +24489,8 @@
         } else {
             synchronized (mLock) {
                 boolean manifestWhitelisted =
-                        mPackages.get(packageName).isAllowDontAutoRevokePermmissions();
+                        mPackages.get(packageName).getAutoRevokePermissions()
+                                == ApplicationInfo.AUTO_REVOKE_DISALLOWED;
                 return manifestWhitelisted;
             }
         }
@@ -24662,15 +24769,6 @@
     }
 
     @Override
-    public void clearMimeGroup(String packageName, String mimeGroup) {
-        boolean changed = mSettings.mPackages.get(packageName).clearMimeGroup(mimeGroup);
-
-        if (changed) {
-            applyMimeGroupChanges(packageName, mimeGroup);
-        }
-    }
-
-    @Override
     public List<String> getMimeGroup(String packageName, String mimeGroup) {
         return mSettings.mPackages.get(packageName).getMimeGroup(mimeGroup);
     }
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index 8a9f1b3..4d49a64 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -105,6 +105,7 @@
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.server.LocalServices;
 import com.android.server.SystemConfig;
+import com.android.server.pm.PackageManagerShellCommandDataLoader.Metadata;
 
 import dalvik.system.DexFile;
 
@@ -118,7 +119,6 @@
 import java.io.OutputStream;
 import java.io.PrintWriter;
 import java.net.URISyntaxException;
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Base64;
 import java.util.Collection;
@@ -3025,9 +3025,9 @@
             // 1. Single file from stdin.
             if (args.isEmpty() || STDIN_PATH.equals(args.get(0))) {
                 final String name = "base." + (isApex ? "apex" : "apk");
-                final String metadata = "-" + name;
+                final Metadata metadata = Metadata.forStdIn(name);
                 session.addFile(LOCATION_DATA_APP, name, sessionSizeBytes,
-                        metadata.getBytes(StandardCharsets.UTF_8), null);
+                        metadata.toByteArray(), null);
                 return 0;
             }
 
@@ -3056,9 +3056,10 @@
 
     private int processArgForStdin(String arg, PackageInstaller.Session session) {
         final String[] fileDesc = arg.split(":");
-        String name, metadata;
+        String name, fileId;
         long sizeBytes;
         byte[] signature = null;
+        int streamingVersion = 0;
 
         try {
             if (fileDesc.length < 2) {
@@ -3067,14 +3068,22 @@
             }
             name = fileDesc[0];
             sizeBytes = Long.parseUnsignedLong(fileDesc[1]);
-            metadata = name;
+            fileId = name;
 
             if (fileDesc.length > 2 && !TextUtils.isEmpty(fileDesc[2])) {
-                metadata = fileDesc[2];
+                fileId = fileDesc[2];
             }
             if (fileDesc.length > 3) {
                 signature = Base64.getDecoder().decode(fileDesc[3]);
             }
+            if (fileDesc.length > 4) {
+                streamingVersion = Integer.parseUnsignedInt(fileDesc[4]);
+                if (streamingVersion < 0 || streamingVersion > 1) {
+                    getErrPrintWriter().println(
+                            "Unsupported streaming version: " + streamingVersion);
+                    return 1;
+                }
+            }
         } catch (IllegalArgumentException e) {
             getErrPrintWriter().println(
                     "Unable to parse file parameters: " + arg + ", reason: " + e);
@@ -3086,9 +3095,14 @@
             return 1;
         }
 
+        final Metadata metadata;
+
         if (signature != null) {
-            // Streaming/adb mode.
-            metadata = "+" + metadata;
+            // Streaming/adb mode. Versions:
+            // 0: data only streaming, tree has to be fully available,
+            // 1: tree and data streaming.
+            metadata = (streamingVersion == 0) ? Metadata.forDataOnlyStreaming(fileId)
+                    : Metadata.forStreaming(fileId);
             try {
                 if (V4Signature.readFrom(signature) == null) {
                     getErrPrintWriter().println("V4 signature is invalid in: " + arg);
@@ -3101,11 +3115,10 @@
             }
         } else {
             // Single-shot read from stdin.
-            metadata = "-" + metadata;
+            metadata = Metadata.forStdIn(fileId);
         }
 
-        session.addFile(LOCATION_DATA_APP, name, sizeBytes,
-                metadata.getBytes(StandardCharsets.UTF_8), signature);
+        session.addFile(LOCATION_DATA_APP, name, sizeBytes, metadata.toByteArray(), signature);
         return 0;
     }
 
@@ -3115,7 +3128,7 @@
         final File file = new File(inPath);
         final String name = file.getName();
         final long size = file.length();
-        final byte[] metadata = inPath.getBytes(StandardCharsets.UTF_8);
+        final Metadata metadata = Metadata.forLocalFile(inPath);
 
         byte[] v4signatureBytes = null;
         // Try to load the v4 signature file for the APK; it might not exist.
@@ -3132,7 +3145,7 @@
             }
         }
 
-        session.addFile(LOCATION_DATA_APP, name, size, metadata, v4signatureBytes);
+        session.addFile(LOCATION_DATA_APP, name, size, metadata.toByteArray(), v4signatureBytes);
     }
 
     private int doWriteSplits(int sessionId, ArrayList<String> splitPaths, long sessionSizeBytes,
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java b/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java
index 8f30e7d..2aa6e573 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommandDataLoader.java
@@ -24,7 +24,6 @@
 import android.os.ParcelFileDescriptor;
 import android.os.ShellCommand;
 import android.service.dataloader.DataLoaderService;
-import android.text.TextUtils;
 import android.util.Slog;
 import android.util.SparseArray;
 
@@ -91,7 +90,7 @@
 
     static DataLoaderParams getIncrementalDataLoaderParams(ShellCommand shellCommand) {
         return DataLoaderParams.forIncremental(new ComponentName(PACKAGE, CLASS),
-                getDataLoaderParamsArgs(shellCommand), null);
+                getDataLoaderParamsArgs(shellCommand));
     }
 
     private static int extractShellCommandId(String args) {
@@ -114,6 +113,74 @@
         }
     }
 
+    static class Metadata {
+        /**
+         * Full files read from stdin.
+         */
+        static final byte STDIN = 0;
+        /**
+         * Full files read from local file.
+         */
+        static final byte LOCAL_FILE = 1;
+        /**
+         * Signature tree read from stdin, data streamed.
+         */
+        static final byte DATA_ONLY_STREAMING = 2;
+        /**
+         * Everything streamed.
+         */
+        static final byte STREAMING = 3;
+
+        private final byte mMode;
+        private final String mData;
+
+        static Metadata forStdIn(String fileId) {
+            return new Metadata(STDIN, fileId);
+        }
+
+        static Metadata forLocalFile(String filePath) {
+            return new Metadata(LOCAL_FILE, filePath);
+        }
+
+        static Metadata forDataOnlyStreaming(String fileId) {
+            return new Metadata(DATA_ONLY_STREAMING, fileId);
+        }
+
+        static Metadata forStreaming(String fileId) {
+            return new Metadata(STREAMING, fileId);
+        }
+
+        private Metadata(byte mode, String data) {
+            this.mMode = mode;
+            this.mData = (data == null) ? "" : data;
+        }
+
+        static Metadata fromByteArray(byte[] bytes) throws IOException {
+            if (bytes == null || bytes.length == 0) {
+                return null;
+            }
+            byte mode = bytes[0];
+            String data = new String(bytes, 1, bytes.length - 1, StandardCharsets.UTF_8);
+            return new Metadata(mode, data);
+        }
+
+        byte[] toByteArray() {
+            byte[] dataBytes = this.mData.getBytes(StandardCharsets.UTF_8);
+            byte[] result = new byte[1 + dataBytes.length];
+            result[0] = this.mMode;
+            System.arraycopy(dataBytes, 0, result, 1, dataBytes.length);
+            return result;
+        }
+
+        byte getMode() {
+            return this.mMode;
+        }
+
+        String getData() {
+            return this.mData;
+        }
+    }
+
     private static class DataLoader implements DataLoaderService.DataLoader {
         private DataLoaderParams mParams = null;
         private FileSystemConnector mConnector = null;
@@ -136,19 +203,31 @@
             }
             try {
                 for (InstallationFile file : addedFiles) {
-                    String filePath = new String(file.getMetadata(), StandardCharsets.UTF_8);
-                    if (TextUtils.isEmpty(filePath) || filePath.startsWith(STDIN_PATH)) {
-                        final ParcelFileDescriptor inFd = getStdInPFD(shellCommand);
-                        mConnector.writeData(file.getName(), 0, file.getLengthBytes(), inFd);
-                    } else {
-                        ParcelFileDescriptor incomingFd = null;
-                        try {
-                            incomingFd = getLocalFile(shellCommand, filePath);
-                            mConnector.writeData(file.getName(), 0, incomingFd.getStatSize(),
-                                    incomingFd);
-                        } finally {
-                            IoUtils.closeQuietly(incomingFd);
+                    Metadata metadata = Metadata.fromByteArray(file.getMetadata());
+                    if (metadata == null) {
+                        Slog.e(TAG, "Invalid metadata for file: " + file.getName());
+                        return false;
+                    }
+                    switch (metadata.getMode()) {
+                        case Metadata.STDIN: {
+                            final ParcelFileDescriptor inFd = getStdInPFD(shellCommand);
+                            mConnector.writeData(file.getName(), 0, file.getLengthBytes(), inFd);
+                            break;
                         }
+                        case Metadata.LOCAL_FILE: {
+                            ParcelFileDescriptor incomingFd = null;
+                            try {
+                                incomingFd = getLocalFile(shellCommand, metadata.getData());
+                                mConnector.writeData(file.getName(), 0, incomingFd.getStatSize(),
+                                        incomingFd);
+                            } finally {
+                                IoUtils.closeQuietly(incomingFd);
+                            }
+                            break;
+                        }
+                        default:
+                            Slog.e(TAG, "Unsupported metadata mode: " + metadata.getMode());
+                            return false;
                     }
                 }
                 return true;
diff --git a/services/core/java/com/android/server/pm/PackageSetting.java b/services/core/java/com/android/server/pm/PackageSetting.java
index a83a847..9a8692d 100644
--- a/services/core/java/com/android/server/pm/PackageSetting.java
+++ b/services/core/java/com/android/server/pm/PackageSetting.java
@@ -241,7 +241,8 @@
     public boolean setMimeGroup(String mimeGroup, List<String> mimeTypes) {
         ArraySet<String> oldMimeTypes = getMimeGroupInternal(mimeGroup);
         if (oldMimeTypes == null) {
-            return false;
+            throw new IllegalArgumentException("Unknown MIME group " + mimeGroup
+                    + " for package " + name);
         }
 
         ArraySet<String> newMimeTypes = new ArraySet<>(mimeTypes);
@@ -250,21 +251,11 @@
         return hasChanges;
     }
 
-    public boolean clearMimeGroup(String mimeGroup) {
-        ArraySet<String> mimeTypes = getMimeGroupInternal(mimeGroup);
-
-        if (mimeTypes == null || mimeTypes.isEmpty()) {
-            return false;
-        }
-
-        mimeTypes.clear();
-        return true;
-    }
-
     public List<String> getMimeGroup(String mimeGroup) {
         ArraySet<String> mimeTypes = getMimeGroupInternal(mimeGroup);
         if (mimeTypes == null) {
-            return null;
+            throw new IllegalArgumentException("Unknown MIME group " + mimeGroup
+                    + " for package " + name);
         }
         return new ArrayList<>(mimeTypes);
     }
diff --git a/services/core/java/com/android/server/pm/RestrictionsSet.java b/services/core/java/com/android/server/pm/RestrictionsSet.java
new file mode 100644
index 0000000..5aff6bb
--- /dev/null
+++ b/services/core/java/com/android/server/pm/RestrictionsSet.java
@@ -0,0 +1,256 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.pm;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.UserIdInt;
+import android.os.Bundle;
+import android.os.UserManager;
+import android.util.SparseArray;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlSerializer;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Data structure that contains the mapping of users to user restrictions (either the user
+ * restrictions that apply to them, or the user restrictions that they set, depending on the
+ * circumstances).
+ *
+ * @hide
+ */
+public class RestrictionsSet {
+
+    private static final String USER_ID = "user_id";
+    private static final String TAG_RESTRICTIONS = "restrictions";
+    private static final String TAG_RESTRICTIONS_USER = "restrictions_user";
+
+    /**
+     * Mapping of user restrictions.
+     * Only non-empty restriction bundles are stored.
+     * The key is the user id of the user.
+     * userId -> restrictionBundle
+     */
+    private final SparseArray<Bundle> mUserRestrictions = new SparseArray<>(0);
+
+    public RestrictionsSet() {
+    }
+
+    public RestrictionsSet(@UserIdInt int userId, @NonNull Bundle restrictions) {
+        if (restrictions.isEmpty()) {
+            throw new IllegalArgumentException("empty restriction bundle cannot be added.");
+        }
+        mUserRestrictions.put(userId, restrictions);
+    }
+
+    /**
+     * Updates restriction bundle for a given user.
+     * If new bundle is empty, record is removed from the array.
+     *
+     * @return whether restrictions bundle is different from the old one.
+     */
+    public boolean updateRestrictions(@UserIdInt int userId, @Nullable Bundle restrictions) {
+        final boolean changed =
+                !UserRestrictionsUtils.areEqual(mUserRestrictions.get(userId), restrictions);
+        if (!changed) {
+            return false;
+        }
+        if (!UserRestrictionsUtils.isEmpty(restrictions)) {
+            mUserRestrictions.put(userId, restrictions);
+        } else {
+            mUserRestrictions.delete(userId);
+        }
+        return true;
+    }
+
+    /**
+     * Moves a particular restriction from one restriction set to another, e.g. for all users.
+     */
+    public void moveRestriction(@NonNull RestrictionsSet destRestrictions, String restriction) {
+        for (int i = 0; i < mUserRestrictions.size(); i++) {
+            final int userId = mUserRestrictions.keyAt(i);
+            final Bundle from = mUserRestrictions.valueAt(i);
+
+            if (UserRestrictionsUtils.contains(from, restriction)) {
+                from.remove(restriction);
+                Bundle to = destRestrictions.getRestrictions(userId);
+                if (to == null) {
+                    to = new Bundle();
+                    to.putBoolean(restriction, true);
+                    destRestrictions.updateRestrictions(userId, to);
+                } else {
+                    to.putBoolean(restriction, true);
+                }
+                // Don't keep empty bundles.
+                if (from.isEmpty()) {
+                    mUserRestrictions.removeAt(i);
+                    i--;
+                }
+            }
+        }
+    }
+
+    /**
+     * @return whether restrictions set has no restrictions.
+     */
+    public boolean isEmpty() {
+        return mUserRestrictions.size() == 0;
+    }
+
+    /**
+     * Merge all restrictions in restrictions set into one bundle. The original user restrictions
+     * set does not get modified, instead a new bundle is returned.
+     *
+     * @return restrictions bundle containing all user restrictions.
+     */
+    public @NonNull Bundle mergeAll() {
+        final Bundle result = new Bundle();
+        for (int i = 0; i < mUserRestrictions.size(); i++) {
+            UserRestrictionsUtils.merge(result, mUserRestrictions.valueAt(i));
+        }
+        return result;
+    }
+
+    /**
+     * @return list of enforcing users that enforce a particular restriction.
+     */
+    public @NonNull List<UserManager.EnforcingUser> getEnforcingUsers(String restriction,
+            @UserIdInt int deviceOwnerUserId) {
+        final List<UserManager.EnforcingUser> result = new ArrayList<>();
+        for (int i = 0; i < mUserRestrictions.size(); i++) {
+            if (UserRestrictionsUtils.contains(mUserRestrictions.valueAt(i), restriction)) {
+                result.add(getEnforcingUser(mUserRestrictions.keyAt(i), deviceOwnerUserId));
+            }
+        }
+        return result;
+    }
+
+    private UserManager.EnforcingUser getEnforcingUser(@UserIdInt int userId,
+            @UserIdInt int deviceOwnerUserId) {
+        int source = deviceOwnerUserId == userId
+                ? UserManager.RESTRICTION_SOURCE_DEVICE_OWNER
+                : UserManager.RESTRICTION_SOURCE_PROFILE_OWNER;
+        return new UserManager.EnforcingUser(userId, source);
+    }
+
+    /**
+     * @return list of user restrictions for a given user. Null is returned if the user does not
+     * have any restrictions.
+     */
+    public @Nullable Bundle getRestrictions(@UserIdInt int userId) {
+        return mUserRestrictions.get(userId);
+    }
+
+    /**
+     * Removes a given user from the restrictions set, returning true if the user has non-empty
+     * restrictions before removal.
+     */
+    public boolean remove(@UserIdInt int userId) {
+        boolean hasUserRestriction = mUserRestrictions.contains(userId);
+        mUserRestrictions.remove(userId);
+        return hasUserRestriction;
+    }
+
+    /**
+     * Remove list of users and user restrictions.
+     */
+    public void removeAllRestrictions() {
+        mUserRestrictions.clear();
+    }
+
+    /**
+     * Serialize a given {@link RestrictionsSet} to XML.
+     */
+    public void writeRestrictions(@NonNull XmlSerializer serializer, @NonNull String outerTag)
+            throws IOException {
+        serializer.startTag(null, outerTag);
+        for (int i = 0; i < mUserRestrictions.size(); i++) {
+            serializer.startTag(null, TAG_RESTRICTIONS_USER);
+            serializer.attribute(null, USER_ID, String.valueOf(mUserRestrictions.keyAt(i)));
+            UserRestrictionsUtils.writeRestrictions(serializer, mUserRestrictions.valueAt(i),
+                    TAG_RESTRICTIONS);
+            serializer.endTag(null, TAG_RESTRICTIONS_USER);
+        }
+        serializer.endTag(null, outerTag);
+    }
+
+    /**
+     * Read restrictions from XML.
+     */
+    public static RestrictionsSet readRestrictions(@NonNull XmlPullParser parser,
+            @NonNull String outerTag) throws IOException, XmlPullParserException {
+        RestrictionsSet restrictionsSet = new RestrictionsSet();
+        int userId = 0;
+        int type;
+
+        while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) {
+            String tag = parser.getName();
+            if (type == XmlPullParser.END_TAG && outerTag.equals(tag)) {
+                return restrictionsSet;
+            } else if (type == XmlPullParser.START_TAG && TAG_RESTRICTIONS_USER.equals(tag)) {
+                userId = Integer.parseInt(parser.getAttributeValue(null, USER_ID));
+            } else if (type == XmlPullParser.START_TAG && TAG_RESTRICTIONS.equals(tag)) {
+                Bundle restrictions = UserRestrictionsUtils.readRestrictions(parser);
+                restrictionsSet.updateRestrictions(userId, restrictions);
+            }
+        }
+        throw new XmlPullParserException("restrictions cannot be read as xml is malformed.");
+    }
+
+    /**
+     * Dumps {@link RestrictionsSet}.
+     */
+    public void dumpRestrictions(PrintWriter pw, String prefix) {
+        boolean noneSet = true;
+        for (int i = 0; i < mUserRestrictions.size(); i++) {
+            pw.println(prefix + "User Id: " + mUserRestrictions.keyAt(i));
+            UserRestrictionsUtils.dumpRestrictions(pw, prefix + "  ", mUserRestrictions.valueAt(i));
+            noneSet = false;
+        }
+        if (noneSet) {
+            pw.println(prefix + "none");
+        }
+    }
+
+    public boolean containsKey(@UserIdInt int userId) {
+        return mUserRestrictions.contains(userId);
+    }
+
+    @VisibleForTesting
+    public int size() {
+        return mUserRestrictions.size();
+    }
+
+    @VisibleForTesting
+    public int keyAt(int index) {
+        return mUserRestrictions.keyAt(index);
+    }
+
+    @VisibleForTesting
+    public Bundle valueAt(int index) {
+        return mUserRestrictions.valueAt(index);
+    }
+
+}
diff --git a/services/core/java/com/android/server/pm/TEST_MAPPING b/services/core/java/com/android/server/pm/TEST_MAPPING
index 764eec1..9e75610 100644
--- a/services/core/java/com/android/server/pm/TEST_MAPPING
+++ b/services/core/java/com/android/server/pm/TEST_MAPPING
@@ -47,6 +47,25 @@
           "include-filter": "com.google.android.security.gts.PackageVerifierTest"
         }
       ]
+    },
+    {
+      "name": "CtsAppSecurityHostTestCases",
+      "options": [
+        {
+          "include-filter": "android.appsecurity.cts.PrivilegedUpdateTests"
+        }
+      ]
+    },
+    {
+      "name": "FrameworksCoreTests",
+      "options": [
+        {
+          "include-filter": "android.content.pm.PackageManagerTests"
+        },
+        {
+            "exclude-annotation": "androidx.test.filters.Suppress"
+        }
+      ]
     }
   ],
   "postsubmit": [
@@ -59,6 +78,9 @@
       ]
     },
     {
+      "name": "CtsAppSecurityHostTestCases"
+    },
+    {
       "name": "FrameworksServicesTests",
       "options": [
         {
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index 8280a61..ef8cad1 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -182,6 +182,8 @@
     private static final String TAG_USER = "user";
     private static final String TAG_RESTRICTIONS = "restrictions";
     private static final String TAG_DEVICE_POLICY_RESTRICTIONS = "device_policy_restrictions";
+    private static final String TAG_DEVICE_POLICY_LOCAL_RESTRICTIONS =
+            "device_policy_local_restrictions";
     private static final String TAG_DEVICE_POLICY_GLOBAL_RESTRICTIONS =
             "device_policy_global_restrictions";
     /** Legacy name for device owner id tag. */
@@ -329,7 +331,7 @@
      * {@link #updateUserRestrictionsInternalLR}.
      */
     @GuardedBy("mRestrictionsLock")
-    private final SparseArray<Bundle> mBaseUserRestrictions = new SparseArray<>();
+    private final RestrictionsSet mBaseUserRestrictions = new RestrictionsSet();
 
     /**
      * Cached user restrictions that are in effect -- i.e. {@link #mBaseUserRestrictions} combined
@@ -344,7 +346,7 @@
      * {@link #updateUserRestrictionsInternalLR}.
      */
     @GuardedBy("mRestrictionsLock")
-    private final SparseArray<Bundle> mCachedEffectiveUserRestrictions = new SparseArray<>();
+    private final RestrictionsSet mCachedEffectiveUserRestrictions = new RestrictionsSet();
 
     /**
      * User restrictions that have already been applied in
@@ -353,7 +355,7 @@
      * {@link #updateUserRestrictionsInternalLR(Bundle, int)} call.
      */
     @GuardedBy("mRestrictionsLock")
-    private final SparseArray<Bundle> mAppliedUserRestrictions = new SparseArray<>();
+    private final RestrictionsSet mAppliedUserRestrictions = new RestrictionsSet();
 
     /**
      * User restrictions set by {@link com.android.server.devicepolicy.DevicePolicyManagerService}
@@ -362,7 +364,7 @@
      * The key is the user id of the user whom the restriction originated from.
      */
     @GuardedBy("mRestrictionsLock")
-    private final SparseArray<Bundle> mDevicePolicyGlobalUserRestrictions = new SparseArray<>();
+    private final RestrictionsSet mDevicePolicyGlobalUserRestrictions = new RestrictionsSet();
 
     /**
      * Id of the user that set global restrictions.
@@ -372,11 +374,15 @@
 
     /**
      * User restrictions set by {@link com.android.server.devicepolicy.DevicePolicyManagerService}
-     * for each user. Only non-empty restriction bundles are stored.
-     * The key is the user id of the user whom the restriction originated from.
+     * for each user.
+     * The key is the user id of the user whom the restrictions are targeting.
+     * The key inside the restrictionsSet is the user id of the user whom the restriction
+     * originated from.
+     * targetUserId -> originatingUserId -> restrictionBundle
      */
     @GuardedBy("mRestrictionsLock")
-    private final SparseArray<Bundle> mDevicePolicyLocalUserRestrictions = new SparseArray<>();
+    private final SparseArray<RestrictionsSet> mDevicePolicyLocalUserRestrictions =
+            new SparseArray<>();
 
     @GuardedBy("mGuestRestrictions")
     private final Bundle mGuestRestrictions = new Bundle();
@@ -1710,9 +1716,6 @@
         }
     }
 
-    /**
-     * See {@link UserManagerInternal#setDevicePolicyUserRestrictions}
-     */
     private void setDevicePolicyUserRestrictionsInner(@UserIdInt int originatingUserId,
             @Nullable Bundle restrictions,
             @UserManagerInternal.OwnerType int restrictionOwnerType) {
@@ -1722,16 +1725,36 @@
         // Sort restrictions into local and global ensuring they don't overlap.
         UserRestrictionsUtils.sortToGlobalAndLocal(restrictions, restrictionOwnerType, global,
                 local);
+        boolean isDeviceOwner = restrictionOwnerType == UserManagerInternal.OWNER_TYPE_DEVICE_OWNER;
 
+        RestrictionsSet localRestrictionsSet;
+        if (UserRestrictionsUtils.isEmpty(local)) {
+            localRestrictionsSet = new RestrictionsSet();
+        } else {
+            localRestrictionsSet = new RestrictionsSet(originatingUserId, local);
+        }
+        setDevicePolicyUserRestrictionsInner(originatingUserId, global, localRestrictionsSet,
+                isDeviceOwner);
+    }
+
+    /**
+     * See {@link UserManagerInternal#setDevicePolicyUserRestrictions}
+     */
+    private void setDevicePolicyUserRestrictionsInner(@UserIdInt int originatingUserId,
+            @NonNull Bundle global, @NonNull RestrictionsSet local,
+            boolean isDeviceOwner) {
         boolean globalChanged, localChanged;
+        List<Integer> updatedLocalTargetUserIds;
         synchronized (mRestrictionsLock) {
             // Update global and local restrictions if they were changed.
-            globalChanged = updateRestrictionsIfNeededLR(
-                    originatingUserId, global, mDevicePolicyGlobalUserRestrictions);
-            localChanged = updateRestrictionsIfNeededLR(
-                    originatingUserId, local, mDevicePolicyLocalUserRestrictions);
+            globalChanged = mDevicePolicyGlobalUserRestrictions
+                    .updateRestrictions(originatingUserId, global);
+            updatedLocalTargetUserIds = getUpdatedTargetUserIdsFromLocalRestrictions(
+                    originatingUserId, local);
+            localChanged = updateLocalRestrictionsForTargetUsersLR(originatingUserId, local,
+                    updatedLocalTargetUserIds);
 
-            if (restrictionOwnerType == UserManagerInternal.OWNER_TYPE_DEVICE_OWNER) {
+            if (isDeviceOwner) {
                 // Remember the global restriction owner userId to be able to make a distinction
                 // in getUserRestrictionSource on who set local policies.
                 mDeviceOwnerUserId = originatingUserId;
@@ -1754,8 +1777,20 @@
         }
         // Don't call them within the mRestrictionsLock.
         synchronized (mPackagesLock) {
-            if (localChanged || globalChanged) {
-                writeUserLP(getUserDataNoChecks(originatingUserId));
+            if (globalChanged || localChanged) {
+                if (updatedLocalTargetUserIds.size() == 1
+                        && updatedLocalTargetUserIds.contains(originatingUserId)) {
+                    writeUserLP(getUserDataNoChecks(originatingUserId));
+                } else {
+                    if (globalChanged) {
+                        writeUserLP(getUserDataNoChecks(originatingUserId));
+                    }
+                    if (localChanged) {
+                        for (int targetUserId : updatedLocalTargetUserIds) {
+                            writeAllTargetUsersLP(targetUserId);
+                        }
+                    }
+                }
             }
         }
 
@@ -1763,44 +1798,88 @@
             if (globalChanged) {
                 applyUserRestrictionsForAllUsersLR();
             } else if (localChanged) {
-                applyUserRestrictionsLR(originatingUserId);
+                for (int targetUserId : updatedLocalTargetUserIds) {
+                    applyUserRestrictionsLR(targetUserId);
+                }
             }
         }
     }
 
     /**
-     * Updates restriction bundle for a given user in a given restriction array. If new bundle is
-     * empty, record is removed from the array.
-     * @return whether restrictions bundle is different from the old one.
+     * @return the list of updated target user ids in device policy local restrictions for a
+     * given originating user id.
      */
-    private boolean updateRestrictionsIfNeededLR(@UserIdInt int userId,
-            @Nullable Bundle restrictions, SparseArray<Bundle> restrictionsArray) {
-        final boolean changed =
-                !UserRestrictionsUtils.areEqual(restrictionsArray.get(userId), restrictions);
-        if (changed) {
-            if (!UserRestrictionsUtils.isEmpty(restrictions)) {
-                restrictionsArray.put(userId, restrictions);
-            } else {
-                restrictionsArray.delete(userId);
+    private List<Integer> getUpdatedTargetUserIdsFromLocalRestrictions(int originatingUserId,
+            @NonNull RestrictionsSet local) {
+        List<Integer> targetUserIds = new ArrayList<>();
+        // Update all the target user ids from the local restrictions set
+        for (int i = 0; i < local.size(); i++) {
+            targetUserIds.add(local.keyAt(i));
+        }
+        // Update the target user id from device policy local restrictions if the local
+        // restrictions set does not contain the target user id.
+        for (int i = 0; i < mDevicePolicyLocalUserRestrictions.size(); i++) {
+            int targetUserId = mDevicePolicyLocalUserRestrictions.keyAt(i);
+            RestrictionsSet restrictionsSet = mDevicePolicyLocalUserRestrictions.valueAt(i);
+            if (!local.containsKey(targetUserId)
+                    && restrictionsSet.containsKey(originatingUserId)) {
+                targetUserIds.add(targetUserId);
+            }
+        }
+        return targetUserIds;
+    }
+
+    /**
+     * Update restrictions for all target users in the restriction set. If a target user does not
+     * exist in device policy local restrictions, remove the restrictions bundle for that target
+     * user originating from the specified originating user.
+     */
+    private boolean updateLocalRestrictionsForTargetUsersLR(int originatingUserId,
+            RestrictionsSet local, List<Integer> updatedTargetUserIds) {
+        boolean changed = false;
+        for (int targetUserId : updatedTargetUserIds) {
+            Bundle restrictions = local.getRestrictions(targetUserId);
+            if (restrictions == null) {
+                restrictions = new Bundle();
+            }
+            if (getDevicePolicyLocalRestrictionsForTargetUserLR(targetUserId)
+                    .updateRestrictions(originatingUserId, restrictions)) {
+                changed = true;
             }
         }
         return changed;
     }
 
+    /**
+     * A new restriction set is created if a restriction set does not already exist for a given
+     * target user.
+     *
+     * @return restrictions set for a given target user.
+     */
+    private @NonNull RestrictionsSet getDevicePolicyLocalRestrictionsForTargetUserLR(
+            int targetUserId) {
+        RestrictionsSet result = mDevicePolicyLocalUserRestrictions.get(targetUserId);
+        if (result == null) {
+            result = new RestrictionsSet();
+            mDevicePolicyLocalUserRestrictions.put(targetUserId, result);
+        }
+        return result;
+    }
+
     @GuardedBy("mRestrictionsLock")
     private Bundle computeEffectiveUserRestrictionsLR(@UserIdInt int userId) {
         final Bundle baseRestrictions =
-                UserRestrictionsUtils.nonNull(mBaseUserRestrictions.get(userId));
-        final Bundle global = UserRestrictionsUtils.mergeAll(mDevicePolicyGlobalUserRestrictions);
-        final Bundle local = mDevicePolicyLocalUserRestrictions.get(userId);
+                UserRestrictionsUtils.nonNull(mBaseUserRestrictions.getRestrictions(userId));
+        final Bundle global = mDevicePolicyGlobalUserRestrictions.mergeAll();
+        final RestrictionsSet local = getDevicePolicyLocalRestrictionsForTargetUserLR(userId);
 
-        if (UserRestrictionsUtils.isEmpty(global) && UserRestrictionsUtils.isEmpty(local)) {
+        if (UserRestrictionsUtils.isEmpty(global) && local.isEmpty()) {
             // Common case first.
             return baseRestrictions;
         }
         final Bundle effective = UserRestrictionsUtils.clone(baseRestrictions);
         UserRestrictionsUtils.merge(effective, global);
-        UserRestrictionsUtils.merge(effective, local);
+        UserRestrictionsUtils.merge(effective, local.mergeAll());
 
         return effective;
     }
@@ -1815,10 +1894,10 @@
 
     private Bundle getEffectiveUserRestrictions(@UserIdInt int userId) {
         synchronized (mRestrictionsLock) {
-            Bundle restrictions = mCachedEffectiveUserRestrictions.get(userId);
+            Bundle restrictions = mCachedEffectiveUserRestrictions.getRestrictions(userId);
             if (restrictions == null) {
                 restrictions = computeEffectiveUserRestrictionsLR(userId);
-                mCachedEffectiveUserRestrictions.put(userId, restrictions);
+                mCachedEffectiveUserRestrictions.updateRestrictions(userId, restrictions);
             }
             return restrictions;
         }
@@ -1921,31 +2000,17 @@
         }
 
         synchronized (mRestrictionsLock) {
-            // Check if it is set by profile owner.
-            Bundle profileOwnerRestrictions = mDevicePolicyLocalUserRestrictions.get(userId);
-            if (UserRestrictionsUtils.contains(profileOwnerRestrictions, restrictionKey)) {
-                result.add(getEnforcingUserLocked(userId));
-            }
+            // Check if it is set as a local restriction.
+            result.addAll(getDevicePolicyLocalRestrictionsForTargetUserLR(userId).getEnforcingUsers(
+                    restrictionKey, mDeviceOwnerUserId));
 
-            // Iterate over all users who enforce global restrictions.
-            for (int i = mDevicePolicyGlobalUserRestrictions.size() - 1; i >= 0; i--) {
-                Bundle globalRestrictions = mDevicePolicyGlobalUserRestrictions.valueAt(i);
-                int profileUserId = mDevicePolicyGlobalUserRestrictions.keyAt(i);
-                if (UserRestrictionsUtils.contains(globalRestrictions, restrictionKey)) {
-                    result.add(getEnforcingUserLocked(profileUserId));
-                }
-            }
+            // Check if it is set as a global restriction.
+            result.addAll(mDevicePolicyGlobalUserRestrictions.getEnforcingUsers(restrictionKey,
+                    mDeviceOwnerUserId));
         }
         return result;
     }
 
-    @GuardedBy("mRestrictionsLock")
-    private EnforcingUser getEnforcingUserLocked(@UserIdInt int userId) {
-        int source = mDeviceOwnerUserId == userId ? UserManager.RESTRICTION_SOURCE_DEVICE_OWNER
-                : UserManager.RESTRICTION_SOURCE_PROFILE_OWNER;
-        return new EnforcingUser(userId, source);
-    }
-
     /**
      * @return UserRestrictions that are in effect currently.  This always returns a new
      * {@link Bundle}.
@@ -1963,7 +2028,7 @@
             return false;
         }
         synchronized (mRestrictionsLock) {
-            Bundle bundle = mBaseUserRestrictions.get(userId);
+            Bundle bundle = mBaseUserRestrictions.getRestrictions(userId);
             return (bundle != null && bundle.getBoolean(restrictionKey, false));
         }
     }
@@ -1978,7 +2043,7 @@
             // Note we can't modify Bundles stored in mBaseUserRestrictions directly, so create
             // a copy.
             final Bundle newRestrictions = UserRestrictionsUtils.clone(
-                    mBaseUserRestrictions.get(userId));
+                    mBaseUserRestrictions.getRestrictions(userId));
             newRestrictions.putBoolean(key, value);
 
             updateUserRestrictionsInternalLR(newRestrictions, userId);
@@ -1997,25 +2062,25 @@
     private void updateUserRestrictionsInternalLR(
             @Nullable Bundle newBaseRestrictions, @UserIdInt int userId) {
         final Bundle prevAppliedRestrictions = UserRestrictionsUtils.nonNull(
-                mAppliedUserRestrictions.get(userId));
+                mAppliedUserRestrictions.getRestrictions(userId));
 
         // Update base restrictions.
         if (newBaseRestrictions != null) {
             // If newBaseRestrictions == the current one, it's probably a bug.
-            final Bundle prevBaseRestrictions = mBaseUserRestrictions.get(userId);
+            final Bundle prevBaseRestrictions = mBaseUserRestrictions.getRestrictions(userId);
 
             Preconditions.checkState(prevBaseRestrictions != newBaseRestrictions);
-            Preconditions.checkState(mCachedEffectiveUserRestrictions.get(userId)
+            Preconditions.checkState(mCachedEffectiveUserRestrictions.getRestrictions(userId)
                     != newBaseRestrictions);
 
-            if (updateRestrictionsIfNeededLR(userId, newBaseRestrictions, mBaseUserRestrictions)) {
+            if (mBaseUserRestrictions.updateRestrictions(userId, newBaseRestrictions)) {
                 scheduleWriteUser(getUserDataNoChecks(userId));
             }
         }
 
         final Bundle effective = computeEffectiveUserRestrictionsLR(userId);
 
-        mCachedEffectiveUserRestrictions.put(userId, effective);
+        mCachedEffectiveUserRestrictions.updateRestrictions(userId, effective);
 
         // Apply the new restrictions.
         if (DBG) {
@@ -2038,7 +2103,7 @@
 
         propagateUserRestrictionsLR(userId, effective, prevAppliedRestrictions);
 
-        mAppliedUserRestrictions.put(userId, new Bundle(effective));
+        mAppliedUserRestrictions.updateRestrictions(userId, new Bundle(effective));
     }
 
     private void propagateUserRestrictionsLR(final int userId,
@@ -2090,7 +2155,7 @@
             debug("applyUserRestrictionsForAllUsersLR");
         }
         // First, invalidate all cached values.
-        mCachedEffectiveUserRestrictions.clear();
+        mCachedEffectiveUserRestrictions.removeAllRestrictions();
 
         // We don't want to call into ActivityManagerService while taking a lock, so we'll call
         // it on a handler.
@@ -2566,7 +2631,7 @@
             synchronized (mRestrictionsLock) {
                 if (!UserRestrictionsUtils.isEmpty(oldGlobalUserRestrictions)
                         && mDeviceOwnerUserId != UserHandle.USER_NULL) {
-                    mDevicePolicyGlobalUserRestrictions.put(
+                    mDevicePolicyGlobalUserRestrictions.updateRestrictions(
                             mDeviceOwnerUserId, oldGlobalUserRestrictions);
                 }
                 // ENSURE_VERIFY_APPS is now enforced globally even if put by profile owner, so move
@@ -2691,7 +2756,8 @@
 
         if (!restrictions.isEmpty()) {
             synchronized (mRestrictionsLock) {
-                mBaseUserRestrictions.append(UserHandle.USER_SYSTEM, restrictions);
+                mBaseUserRestrictions.updateRestrictions(UserHandle.USER_SYSTEM,
+                        restrictions);
             }
         }
 
@@ -2718,6 +2784,16 @@
         }
     }
 
+    private void writeAllTargetUsersLP(int originatingUserId) {
+        for (int i = 0; i < mDevicePolicyLocalUserRestrictions.size(); i++) {
+            int targetUserId = mDevicePolicyLocalUserRestrictions.keyAt(i);
+            RestrictionsSet restrictionsSet = mDevicePolicyLocalUserRestrictions.valueAt(i);
+            if (restrictionsSet.containsKey(originatingUserId)) {
+                writeUserLP(getUserDataNoChecks(targetUserId));
+            }
+        }
+    }
+
     private void writeUserLP(UserData userData) {
         if (DBG) {
             debug("writeUserLP " + userData);
@@ -2802,12 +2878,11 @@
         }
         synchronized (mRestrictionsLock) {
             UserRestrictionsUtils.writeRestrictions(serializer,
-                    mBaseUserRestrictions.get(userInfo.id), TAG_RESTRICTIONS);
+                    mBaseUserRestrictions.getRestrictions(userInfo.id), TAG_RESTRICTIONS);
+            getDevicePolicyLocalRestrictionsForTargetUserLR(userInfo.id).writeRestrictions(
+                    serializer, TAG_DEVICE_POLICY_LOCAL_RESTRICTIONS);
             UserRestrictionsUtils.writeRestrictions(serializer,
-                    mDevicePolicyLocalUserRestrictions.get(userInfo.id),
-                    TAG_DEVICE_POLICY_RESTRICTIONS);
-            UserRestrictionsUtils.writeRestrictions(serializer,
-                    mDevicePolicyGlobalUserRestrictions.get(userInfo.id),
+                    mDevicePolicyGlobalUserRestrictions.getRestrictions(userInfo.id),
                     TAG_DEVICE_POLICY_GLOBAL_RESTRICTIONS);
         }
 
@@ -2937,7 +3012,8 @@
         String seedAccountType = null;
         PersistableBundle seedAccountOptions = null;
         Bundle baseRestrictions = null;
-        Bundle localRestrictions = null;
+        Bundle legacyLocalRestrictions = null;
+        RestrictionsSet localRestrictions = null;
         Bundle globalRestrictions = null;
 
         XmlPullParser parser = Xml.newPullParser();
@@ -3007,7 +3083,10 @@
                 } else if (TAG_RESTRICTIONS.equals(tag)) {
                     baseRestrictions = UserRestrictionsUtils.readRestrictions(parser);
                 } else if (TAG_DEVICE_POLICY_RESTRICTIONS.equals(tag)) {
-                    localRestrictions = UserRestrictionsUtils.readRestrictions(parser);
+                    legacyLocalRestrictions = UserRestrictionsUtils.readRestrictions(parser);
+                } else if (TAG_DEVICE_POLICY_LOCAL_RESTRICTIONS.equals(tag)) {
+                    localRestrictions = RestrictionsSet.readRestrictions(parser,
+                            TAG_DEVICE_POLICY_LOCAL_RESTRICTIONS);
                 } else if (TAG_DEVICE_POLICY_GLOBAL_RESTRICTIONS.equals(tag)) {
                     globalRestrictions = UserRestrictionsUtils.readRestrictions(parser);
                 } else if (TAG_ACCOUNT.equals(tag)) {
@@ -3052,13 +3131,20 @@
 
         synchronized (mRestrictionsLock) {
             if (baseRestrictions != null) {
-                mBaseUserRestrictions.put(id, baseRestrictions);
+                mBaseUserRestrictions.updateRestrictions(id, baseRestrictions);
             }
             if (localRestrictions != null) {
                 mDevicePolicyLocalUserRestrictions.put(id, localRestrictions);
+                if (legacyLocalRestrictions != null) {
+                    Slog.wtf(LOG_TAG, "Seeing both legacy and current local restrictions in xml");
+                }
+            } else if (legacyLocalRestrictions != null) {
+                mDevicePolicyLocalUserRestrictions.put(id,
+                        new RestrictionsSet(id, legacyLocalRestrictions));
             }
             if (globalRestrictions != null) {
-                mDevicePolicyGlobalUserRestrictions.put(id, globalRestrictions);
+                mDevicePolicyGlobalUserRestrictions.updateRestrictions(id,
+                        globalRestrictions);
             }
         }
         return userData;
@@ -3374,7 +3460,7 @@
                 userTypeDetails.addDefaultRestrictionsTo(restrictions);
             }
             synchronized (mRestrictionsLock) {
-                mBaseUserRestrictions.append(userId, restrictions);
+                mBaseUserRestrictions.updateRestrictions(userId, restrictions);
             }
 
             t.traceBegin("PM.onNewUserCreated-" + userId);
@@ -3845,9 +3931,17 @@
             mBaseUserRestrictions.remove(userId);
             mAppliedUserRestrictions.remove(userId);
             mCachedEffectiveUserRestrictions.remove(userId);
-            mDevicePolicyLocalUserRestrictions.remove(userId);
-            if (mDevicePolicyGlobalUserRestrictions.get(userId) != null) {
-                mDevicePolicyGlobalUserRestrictions.remove(userId);
+            // Remove local restrictions affecting user
+            mDevicePolicyLocalUserRestrictions.delete(userId);
+            // Remove local restrictions set by user
+            boolean changed = false;
+            for (int i = 0; i < mDevicePolicyLocalUserRestrictions.size(); i++) {
+                int targetUserId = mDevicePolicyLocalUserRestrictions.keyAt(i);
+                changed |= getDevicePolicyLocalRestrictionsForTargetUserLR(targetUserId)
+                        .remove(userId);
+            }
+            changed |= mDevicePolicyGlobalUserRestrictions.remove(userId);
+            if (changed) {
                 applyUserRestrictionsForAllUsersLR();
             }
         }
@@ -4540,16 +4634,18 @@
                     pw.println("    Restrictions:");
                     synchronized (mRestrictionsLock) {
                         UserRestrictionsUtils.dumpRestrictions(
-                                pw, "      ", mBaseUserRestrictions.get(userInfo.id));
+                                pw, "      ", mBaseUserRestrictions.getRestrictions(userInfo.id));
                         pw.println("    Device policy global restrictions:");
                         UserRestrictionsUtils.dumpRestrictions(
-                                pw, "      ", mDevicePolicyGlobalUserRestrictions.get(userInfo.id));
+                                pw, "      ",
+                                mDevicePolicyGlobalUserRestrictions.getRestrictions(userInfo.id));
                         pw.println("    Device policy local restrictions:");
-                        UserRestrictionsUtils.dumpRestrictions(
-                                pw, "      ", mDevicePolicyLocalUserRestrictions.get(userInfo.id));
+                        getDevicePolicyLocalRestrictionsForTargetUserLR(
+                                userInfo.id).dumpRestrictions(pw, "      ");
                         pw.println("    Effective restrictions:");
                         UserRestrictionsUtils.dumpRestrictions(
-                                pw, "      ", mCachedEffectiveUserRestrictions.get(userInfo.id));
+                                pw, "      ",
+                                mCachedEffectiveUserRestrictions.getRestrictions(userInfo.id));
                     }
 
                     if (userData.account != null) {
@@ -4665,7 +4761,7 @@
         @Override
         public Bundle getBaseUserRestrictions(@UserIdInt int userId) {
             synchronized (mRestrictionsLock) {
-                return mBaseUserRestrictions.get(userId);
+                return mBaseUserRestrictions.getRestrictions(userId);
             }
         }
 
@@ -4673,8 +4769,8 @@
         public void setBaseUserRestrictionsByDpmsForMigration(
                 @UserIdInt int userId, Bundle baseRestrictions) {
             synchronized (mRestrictionsLock) {
-                if (updateRestrictionsIfNeededLR(
-                        userId, new Bundle(baseRestrictions), mBaseUserRestrictions)) {
+                if (mBaseUserRestrictions.updateRestrictions(userId,
+                        new Bundle(baseRestrictions))) {
                     invalidateEffectiveUserRestrictionsLR(userId);
                 }
             }
diff --git a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java
index 8d3f32a..eec6e02 100644
--- a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java
+++ b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java
@@ -395,22 +395,6 @@
     }
 
     /**
-     * Merges a sparse array of restrictions bundles into one.
-     */
-    @Nullable
-    public static Bundle mergeAll(SparseArray<Bundle> restrictions) {
-        if (restrictions.size() == 0) {
-            return null;
-        } else {
-            final Bundle result = new Bundle();
-            for (int i = 0; i < restrictions.size(); i++) {
-                merge(result, restrictions.valueAt(i));
-            }
-            return result;
-        }
-    }
-
-    /**
      * @return true if a restriction is settable by device owner.
      */
     public static boolean canDeviceOwnerChange(String restriction) {
@@ -864,27 +848,15 @@
     }
 
     /**
-     * Moves a particular restriction from one array of bundles to another, e.g. for all users.
+     * Moves a particular restriction from one array of restrictions sets to a restriction set,
+     * e.g. for all users.
      */
-    public static void moveRestriction(String restrictionKey, SparseArray<Bundle> srcRestrictions,
-            SparseArray<Bundle> destRestrictions) {
-        for (int i = 0; i < srcRestrictions.size(); i++) {
-            final int key = srcRestrictions.keyAt(i);
-            final Bundle from = srcRestrictions.valueAt(i);
-            if (contains(from, restrictionKey)) {
-                from.remove(restrictionKey);
-                Bundle to = destRestrictions.get(key);
-                if (to == null) {
-                    to = new Bundle();
-                    destRestrictions.append(key, to);
-                }
-                to.putBoolean(restrictionKey, true);
-                // Don't keep empty bundles.
-                if (from.isEmpty()) {
-                    srcRestrictions.removeAt(i);
-                    i--;
-                }
-            }
+    public static void moveRestriction(String restrictionKey,
+            SparseArray<RestrictionsSet> sourceRestrictionsSets,
+            RestrictionsSet destRestrictionSet) {
+        for (int i = 0; i < sourceRestrictionsSets.size(); i++) {
+            final RestrictionsSet sourceRestrictionsSet = sourceRestrictionsSets.valueAt(i);
+            sourceRestrictionsSet.moveRestriction(destRestrictionSet, restrictionKey);
         }
     }
 
diff --git a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
index 0e294f70..5a1e8e2 100644
--- a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
+++ b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
@@ -230,6 +230,10 @@
             info.sharedLibraryInfos = usesLibraryInfos.isEmpty() ? null : usesLibraryInfos;
         }
 
+        info.seInfo = AndroidPackageUtils.getSeInfo(pkg, pkgSetting);
+        info.primaryCpuAbi = AndroidPackageUtils.getPrimaryCpuAbi(pkg, pkgSetting);
+        info.secondaryCpuAbi = AndroidPackageUtils.getSecondaryCpuAbi(pkg, pkgSetting);
+
         info.flags |= appInfoFlags(pkg, pkgSetting);
         info.privateFlags |= appInfoPrivateFlags(pkg, pkgSetting);
         return info;
@@ -393,7 +397,7 @@
             ParsedProcess proc = procs.get(key);
             retProcs.put(proc.getName(),
                     new ProcessInfo(proc.getName(), new ArraySet<>(proc.getDeniedPermissions()),
-                            proc.getEnableGwpAsan()));
+                            proc.getGwpAsanMode()));
         }
         return retProcs;
     }
diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
index e3abcda..a726d39 100644
--- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
+++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
@@ -125,7 +125,6 @@
 
 
     static {
-        PHONE_PERMISSIONS.add(Manifest.permission.READ_PHONE_STATE);
         PHONE_PERMISSIONS.add(Manifest.permission.CALL_PHONE);
         PHONE_PERMISSIONS.add(Manifest.permission.READ_CALL_LOG);
         PHONE_PERMISSIONS.add(Manifest.permission.WRITE_CALL_LOG);
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
index 5d6eaf2..82c02a4 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
@@ -21,6 +21,8 @@
 import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
 import static android.app.AppOpsManager.MODE_ALLOWED;
 import static android.app.AppOpsManager.MODE_IGNORED;
+import static android.content.pm.ApplicationInfo.AUTO_REVOKE_DISALLOWED;
+import static android.content.pm.ApplicationInfo.AUTO_REVOKE_DISCOURAGED;
 import static android.content.pm.PackageManager.FLAGS_PERMISSION_RESTRICTION_ANY_EXEMPT;
 import static android.content.pm.PackageManager.FLAG_PERMISSION_APPLY_RESTRICTION;
 import static android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT;
@@ -40,6 +42,7 @@
 import static android.permission.PermissionManager.KILL_APP_REASON_GIDS_CHANGED;
 import static android.permission.PermissionManager.KILL_APP_REASON_PERMISSIONS_REVOKED;
 
+import static com.android.server.pm.ApexManager.MATCH_ACTIVE_PACKAGE;
 import static com.android.server.pm.PackageManagerService.DEBUG_INSTALL;
 import static com.android.server.pm.PackageManagerService.DEBUG_PACKAGE_SCANNING;
 import static com.android.server.pm.PackageManagerService.DEBUG_PERMISSIONS;
@@ -59,6 +62,7 @@
 import android.app.ApplicationPackageManager;
 import android.app.IActivityManager;
 import android.app.admin.DeviceAdminInfo;
+import android.app.admin.DevicePolicyManager;
 import android.app.admin.DevicePolicyManagerInternal;
 import android.compat.annotation.ChangeId;
 import android.compat.annotation.EnabledAfter;
@@ -113,6 +117,7 @@
 import android.util.SparseBooleanArray;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.compat.IPlatformCompat;
 import com.android.internal.logging.MetricsLogger;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -126,6 +131,7 @@
 import com.android.server.ServiceThread;
 import com.android.server.SystemConfig;
 import com.android.server.Watchdog;
+import com.android.server.pm.ApexManager;
 import com.android.server.pm.PackageManagerServiceUtils;
 import com.android.server.pm.PackageSetting;
 import com.android.server.pm.SharedUserSetting;
@@ -243,6 +249,9 @@
     @GuardedBy("mLock")
     private final PermissionSettings mSettings;
 
+    /** Injector that can be used to facilitate testing. */
+    private final Injector mInjector;
+
     @GuardedBy("mLock")
     private ArraySet<String> mPrivappPermissionsViolations;
 
@@ -352,10 +361,17 @@
 
     PermissionManagerService(Context context,
             @NonNull Object externalLock) {
+        this(context, externalLock, new Injector(context));
+    }
+
+    @VisibleForTesting
+    PermissionManagerService(Context context, @NonNull Object externalLock,
+            @NonNull Injector injector) {
+        mInjector = injector;
         // The package info cache is the cache for package and permission information.
-        PackageManager.invalidatePackageInfoCache();
-        PermissionManager.disablePermissionCache();
-        PermissionManager.disablePackageNamePermissionCache();
+        mInjector.invalidatePackageInfoCache();
+        mInjector.disablePermissionCache();
+        mInjector.disablePackageNamePermissionCache();
 
         mContext = context;
         mLock = externalLock;
@@ -952,6 +968,59 @@
     }
 
     @Override
+    public int checkDeviceIdentifierAccess(@Nullable String packageName, @Nullable String message,
+            @Nullable String callingFeatureId, int pid, int uid) {
+        // If the check is being requested by an app then only allow the app to query its own
+        // access status.
+        int callingUid = mInjector.getCallingUid();
+        int callingPid = mInjector.getCallingPid();
+        if (UserHandle.getAppId(callingUid) >= Process.FIRST_APPLICATION_UID && (callingUid != uid
+                || callingPid != pid)) {
+            String response = String.format(
+                    "Calling uid %d, pid %d cannot check device identifier access for package %s "
+                            + "(uid=%d, pid=%d)",
+                    callingUid, callingPid, packageName, uid, pid);
+            Log.w(TAG, response);
+            throw new SecurityException(response);
+        }
+        // Allow system and root access to the device identifiers.
+        final int appId = UserHandle.getAppId(uid);
+        if (appId == Process.SYSTEM_UID || appId == Process.ROOT_UID) {
+            return PackageManager.PERMISSION_GRANTED;
+        }
+        // Allow access to packages that have the READ_PRIVILEGED_PHONE_STATE permission.
+        if (mInjector.checkPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, pid,
+                uid) == PackageManager.PERMISSION_GRANTED) {
+            return PackageManager.PERMISSION_GRANTED;
+        }
+        // If the calling package is not null then perform the appop and device / profile owner
+        // check.
+        if (packageName != null) {
+            // Allow access to a package that has been granted the READ_DEVICE_IDENTIFIERS appop.
+            long token = mInjector.clearCallingIdentity();
+            AppOpsManager appOpsManager = (AppOpsManager) mInjector.getSystemService(
+                    Context.APP_OPS_SERVICE);
+            try {
+                if (appOpsManager.noteOpNoThrow(AppOpsManager.OPSTR_READ_DEVICE_IDENTIFIERS, uid,
+                        packageName, callingFeatureId, message) == AppOpsManager.MODE_ALLOWED) {
+                    return PackageManager.PERMISSION_GRANTED;
+                }
+            } finally {
+                mInjector.restoreCallingIdentity(token);
+            }
+            // Check if the calling packages meets the device / profile owner requirements for
+            // identifier access.
+            DevicePolicyManager devicePolicyManager =
+                    (DevicePolicyManager) mInjector.getSystemService(Context.DEVICE_POLICY_SERVICE);
+            if (devicePolicyManager != null && devicePolicyManager.hasDeviceIdentifierAccess(
+                    packageName, pid, uid)) {
+                return PackageManager.PERMISSION_GRANTED;
+            }
+        }
+        return PackageManager.PERMISSION_DENIED;
+    }
+
+    @Override
     public void addOnPermissionsChangeListener(IOnPermissionsChangeListener listener) {
         mContext.enforceCallingOrSelfPermission(
                 Manifest.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS,
@@ -3173,31 +3242,25 @@
 
     @Override
     public List<String> getAutoRevokeExemptionRequestedPackages(int userId) {
-        mContext.enforceCallingPermission(Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY,
-                "Must hold " + Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY);
-
-        List<String> result = new ArrayList<>();
-        mPackageManagerInt.forEachInstalledPackage(pkg -> {
-            if (pkg.isDontAutoRevokePermmissions()) {
-                result.add(pkg.getPackageName());
-            }
-        }, userId);
-
-        return result;
+        return getPackagesWithAutoRevokePolicy(AUTO_REVOKE_DISCOURAGED, userId);
     }
 
     @Override
     public List<String> getAutoRevokeExemptionGrantedPackages(int userId) {
+        return getPackagesWithAutoRevokePolicy(AUTO_REVOKE_DISALLOWED, userId);
+    }
+
+    @NonNull
+    private List<String> getPackagesWithAutoRevokePolicy(int autoRevokePolicy, int userId) {
         mContext.enforceCallingPermission(Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY,
                 "Must hold " + Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY);
 
         List<String> result = new ArrayList<>();
         mPackageManagerInt.forEachInstalledPackage(pkg -> {
-            if (pkg.isAllowDontAutoRevokePermmissions()) {
+            if (pkg.getAutoRevokePermissions() == autoRevokePolicy) {
                 result.add(pkg.getPackageName());
             }
         }, userId);
-
         return result;
     }
 
@@ -3256,39 +3319,51 @@
         if (!privappPermissionsDisable && privilegedPermission && pkg.isPrivileged()
                 && !platformPackage && platformPermission) {
             if (!hasPrivappWhitelistEntry(perm, pkg)) {
-                // Only report violations for apps on system image
-                if (!mSystemReady && !pkgSetting.getPkgState().isUpdatedSystemApp()) {
-                    // it's only a reportable violation if the permission isn't explicitly denied
-                    ArraySet<String> deniedPermissions = null;
-                    if (pkg.isVendor()) {
-                        deniedPermissions = SystemConfig.getInstance()
-                                .getVendorPrivAppDenyPermissions(pkg.getPackageName());
-                    } else if (pkg.isProduct()) {
-                        deniedPermissions = SystemConfig.getInstance()
-                                .getProductPrivAppDenyPermissions(pkg.getPackageName());
-                    } else if (pkg.isSystemExt()) {
-                        deniedPermissions = SystemConfig.getInstance()
-                                .getSystemExtPrivAppDenyPermissions(pkg.getPackageName());
-                    } else {
-                        deniedPermissions = SystemConfig.getInstance()
-                                .getPrivAppDenyPermissions(pkg.getPackageName());
-                    }
-                    final boolean permissionViolation =
-                            deniedPermissions == null || !deniedPermissions.contains(perm);
-                    if (permissionViolation) {
-                        Slog.w(TAG, "Privileged permission " + perm + " for package "
-                                + pkg.getPackageName() + " (" + pkg.getCodePath()
-                                + ") not in privapp-permissions whitelist");
+                // Only enforce whitelist this on boot
+                if (!mSystemReady
+                        // Updated system apps do not need to be whitelisted
+                        && !pkgSetting.getPkgState().isUpdatedSystemApp()) {
+                    ApexManager apexMgr = ApexManager.getInstance();
+                    String apexContainingPkg = apexMgr.getActiveApexPackageNameContainingPackage(
+                            pkg);
 
-                        if (RoSystemProperties.CONTROL_PRIVAPP_PERMISSIONS_ENFORCE) {
-                            if (mPrivappPermissionsViolations == null) {
-                                mPrivappPermissionsViolations = new ArraySet<>();
-                            }
-                            mPrivappPermissionsViolations.add(
-                                    pkg.getPackageName() + " (" + pkg.getCodePath() + "): " + perm);
+                    // Apps that are in updated apexs' do not need to be whitelisted
+                    if (apexContainingPkg == null || apexMgr.isFactory(
+                            apexMgr.getPackageInfo(apexContainingPkg, MATCH_ACTIVE_PACKAGE))) {
+                        // it's only a reportable violation if the permission isn't explicitly
+                        // denied
+                        ArraySet<String> deniedPermissions = null;
+                        if (pkg.isVendor()) {
+                            deniedPermissions = SystemConfig.getInstance()
+                                    .getVendorPrivAppDenyPermissions(pkg.getPackageName());
+                        } else if (pkg.isProduct()) {
+                            deniedPermissions = SystemConfig.getInstance()
+                                    .getProductPrivAppDenyPermissions(pkg.getPackageName());
+                        } else if (pkg.isSystemExt()) {
+                            deniedPermissions = SystemConfig.getInstance()
+                                    .getSystemExtPrivAppDenyPermissions(pkg.getPackageName());
+                        } else {
+                            deniedPermissions = SystemConfig.getInstance()
+                                    .getPrivAppDenyPermissions(pkg.getPackageName());
                         }
-                    } else {
-                        return false;
+                        final boolean permissionViolation =
+                                deniedPermissions == null || !deniedPermissions.contains(perm);
+                        if (permissionViolation) {
+                            Slog.w(TAG, "Privileged permission " + perm + " for package "
+                                    + pkg.getPackageName() + " (" + pkg.getCodePath()
+                                    + ") not in privapp-permissions whitelist");
+
+                            if (RoSystemProperties.CONTROL_PRIVAPP_PERMISSIONS_ENFORCE) {
+                                if (mPrivappPermissionsViolations == null) {
+                                    mPrivappPermissionsViolations = new ArraySet<>();
+                                }
+                                mPrivappPermissionsViolations.add(
+                                        pkg.getPackageName() + " (" + pkg.getCodePath() + "): "
+                                                + perm);
+                            }
+                        } else {
+                            return false;
+                        }
                     }
                 }
                 if (RoSystemProperties.CONTROL_PRIVAPP_PERMISSIONS_ENFORCE) {
@@ -4797,4 +4872,94 @@
             }
         }
     }
+
+    /**
+     * Allows injection of services and method responses to facilitate testing.
+     *
+     * <p>Test classes can create a mock of this class and pass it to the PermissionManagerService
+     * constructor to control behavior of services and external methods during execution.
+     * @hide
+     */
+    @VisibleForTesting
+    public static class Injector {
+        private final Context mContext;
+
+        /**
+         * Public constructor that accepts a {@code context} within which to operate.
+         */
+        public Injector(@NonNull Context context) {
+            mContext = context;
+        }
+
+        /**
+         * Returns the UID of the calling package.
+         */
+        public int getCallingUid() {
+            return Binder.getCallingUid();
+        }
+
+        /**
+         * Returns the process ID of the calling package.
+         */
+        public int getCallingPid() {
+            return Binder.getCallingPid();
+        }
+
+        /**
+         * Invalidates the package info cache.
+         */
+        public void invalidatePackageInfoCache() {
+            PackageManager.invalidatePackageInfoCache();
+        }
+
+        /**
+         * Disables the permission cache.
+         */
+        public void disablePermissionCache() {
+            PermissionManager.disablePermissionCache();
+        }
+
+        /**
+         * Disables the package name permission cache.
+         */
+        public void disablePackageNamePermissionCache() {
+            PermissionManager.disablePackageNamePermissionCache();
+        }
+
+        /**
+         * Checks if the package running under the specified {@code pid} and {@code uid} has been
+         * granted the provided {@code permission}.
+         *
+         * @return {@link PackageManager#PERMISSION_GRANTED} if the package has been granted the
+         * permission, {@link PackageManager#PERMISSION_DENIED} otherwise
+         */
+        public int checkPermission(@NonNull String permission, int pid, int uid) {
+            return mContext.checkPermission(permission, pid, uid);
+        }
+
+        /**
+         * Clears the calling identity to allow subsequent calls to be treated as coming from this
+         * package.
+         *
+         * @return a token that can be used to restore the calling identity
+         */
+        public long clearCallingIdentity() {
+            return Binder.clearCallingIdentity();
+        }
+
+        /**
+         * Restores the calling identity to that of the calling package based on the provided
+         * {@code token}.
+         */
+        public void restoreCallingIdentity(long token) {
+            Binder.restoreCallingIdentity(token);
+        }
+
+        /**
+         * Returns the system service with the provided {@code name}.
+         */
+        public Object getSystemService(@NonNull String name) {
+            return mContext.getSystemService(name);
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/policy/PermissionPolicyService.java b/services/core/java/com/android/server/policy/PermissionPolicyService.java
index 161f304..27288d8 100644
--- a/services/core/java/com/android/server/policy/PermissionPolicyService.java
+++ b/services/core/java/com/android/server/policy/PermissionPolicyService.java
@@ -30,6 +30,7 @@
 import android.annotation.UserIdInt;
 import android.app.AppOpsManager;
 import android.app.AppOpsManagerInternal;
+import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
@@ -47,6 +48,7 @@
 import android.os.UserHandle;
 import android.os.UserManagerInternal;
 import android.permission.PermissionControllerManager;
+import android.provider.Settings;
 import android.provider.Telephony;
 import android.telecom.TelecomManager;
 import android.util.ArrayMap;
@@ -70,7 +72,9 @@
 import com.android.server.policy.PermissionPolicyInternal.OnInitializedCallback;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.ExecutionException;
 
 /**
@@ -180,8 +184,6 @@
         intentFilter.addAction(Intent.ACTION_PACKAGE_CHANGED);
         intentFilter.addDataScheme("package");
 
-
-        /* TODO ntmyren: enable receiver when test flakes are fixed
         getContext().registerReceiverAsUser(new BroadcastReceiver() {
             final List<Integer> mUserSetupUids = new ArrayList<>(200);
             final Map<UserHandle, PermissionControllerManager> mPermControllerManagers =
@@ -232,7 +234,6 @@
                 manager.updateUserSensitiveForApp(uid);
             }
         }, UserHandle.ALL, intentFilter, null, null);
-         */
     }
 
     /**
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 1e12565..c973640 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -49,7 +49,6 @@
 import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER;
-import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
 import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG;
 import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR;
@@ -2091,7 +2090,6 @@
                     // Window manager does the checking for this.
                     outAppOp[0] = OP_TOAST_WINDOW;
                     return ADD_OKAY;
-                case TYPE_DREAM:
                 case TYPE_INPUT_METHOD:
                 case TYPE_WALLPAPER:
                 case TYPE_PRESENTATION:
@@ -2230,7 +2228,6 @@
             case TYPE_STATUS_BAR:
             case TYPE_NAVIGATION_BAR:
             case TYPE_WALLPAPER:
-            case TYPE_DREAM:
                 return false;
             default:
                 // Hide only windows below the keyguard host window.
diff --git a/services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java b/services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java
index 6c18c8d..d6c48a0 100644
--- a/services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java
+++ b/services/core/java/com/android/server/policy/SoftRestrictedPermissionPolicy.java
@@ -26,6 +26,7 @@
 import static android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT;
 import static android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT;
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+import static android.os.storage.StorageManager.PROP_LEGACY_OP_STICKY;
 
 import static java.lang.Integer.min;
 
@@ -36,6 +37,7 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.os.Build;
+import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.os.storage.StorageManagerInternal;
 
@@ -63,6 +65,9 @@
                 }
             };
 
+    private static final boolean isLegacyStorageAppOpStickyGlobal = SystemProperties.getBoolean(
+            PROP_LEGACY_OP_STICKY, /*defaultValue*/true);
+
     /**
      * TargetSDK is per package. To make sure two apps int the same shared UID do not fight over
      * what to set, always compute the combined targetSDK.
@@ -136,9 +141,12 @@
                     shouldPreserveLegacyExternalStorage = pkg.hasPreserveLegacyExternalStorage()
                             && smInternal.hasLegacyExternalStorage(appInfo.uid);
                     targetSDK = getMinimumTargetSDK(context, appInfo, user);
+                    // LEGACY_STORAGE op is normally sticky for apps targetig <= Q.
+                    // However, this device can be configured to make it non-sticky.
+                    boolean isLegacyAppOpSticky = isLegacyStorageAppOpStickyGlobal
+                            && targetSDK <= Build.VERSION_CODES.Q;
                     shouldApplyRestriction = (flags & FLAG_PERMISSION_APPLY_RESTRICTION) != 0
-                            || (targetSDK > Build.VERSION_CODES.Q
-                            && !shouldPreserveLegacyExternalStorage);
+                            || (!isLegacyAppOpSticky && !shouldPreserveLegacyExternalStorage);
                 } else {
                     isWhiteListed = false;
                     shouldApplyRestriction = false;
@@ -163,7 +171,7 @@
                     }
                     @Override
                     public boolean mayAllowExtraAppOp() {
-                        return !shouldApplyRestriction && targetSDK <= Build.VERSION_CODES.Q
+                        return !shouldApplyRestriction
                                 && (hasRequestedLegacyExternalStorage
                                         || hasWriteMediaStorageGrantedForUid
                                         || shouldPreserveLegacyExternalStorage);
diff --git a/services/core/java/com/android/server/policy/WindowManagerPolicy.java b/services/core/java/com/android/server/policy/WindowManagerPolicy.java
index efe2af3..7eb3f01 100644
--- a/services/core/java/com/android/server/policy/WindowManagerPolicy.java
+++ b/services/core/java/com/android/server/policy/WindowManagerPolicy.java
@@ -31,7 +31,6 @@
 import static android.view.WindowManager.LayoutParams.TYPE_DISPLAY_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER;
 import static android.view.WindowManager.LayoutParams.TYPE_DRAG;
-import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_CONSUMER;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG;
@@ -806,9 +805,6 @@
                 return  canAddInternalSystemWindow ? 13 : 10;
             case TYPE_APPLICATION_OVERLAY:
                 return  12;
-            case TYPE_DREAM:
-                // used for Dreams (screensavers with TYPE_DREAM windows)
-                return  14;
             case TYPE_INPUT_METHOD:
                 // on-screen keyboards and other such input method user interfaces go here.
                 return  15;
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index 3257b63..86ff926 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -77,6 +77,7 @@
 import android.service.dreams.DreamManagerInternal;
 import android.service.vr.IVrManager;
 import android.service.vr.IVrStateCallbacks;
+import android.sysprop.InitProperties;
 import android.util.KeyValueListParser;
 import android.util.PrintWriterPrinter;
 import android.util.Slog;
@@ -240,7 +241,7 @@
 
     private final Context mContext;
     private final ServiceThread mHandlerThread;
-    private final PowerManagerHandler mHandler;
+    private final Handler mHandler;
     private final AmbientDisplayConfiguration mAmbientDisplayConfiguration;
     private final BatterySaverController mBatterySaverController;
     private final BatterySaverPolicy mBatterySaverPolicy;
@@ -251,6 +252,7 @@
     private final LocalService mLocalService;
     private final NativeWrapper mNativeWrapper;
     private final SystemPropertiesWrapper mSystemProperties;
+    private final Clock mClock;
     private final Injector mInjector;
 
     private LightsManager mLightsManager;
@@ -596,7 +598,7 @@
 
         @Override
         public void onForegroundProfileSwitch(@UserIdInt int newProfileId) throws RemoteException {
-            final long now = SystemClock.uptimeMillis();
+            final long now = mClock.uptimeMillis();
             synchronized (mLock) {
                 mForegroundProfile = newProfileId;
                 maybeUpdateForegroundProfileLastActivityLocked(now);
@@ -624,11 +626,11 @@
         // Whether profile has been locked last time it timed out.
         boolean mLockingNotified;
 
-        public ProfilePowerState(@UserIdInt int userId, long screenOffTimeout) {
+        public ProfilePowerState(@UserIdInt int userId, long screenOffTimeout, long now) {
             mUserId = userId;
             mScreenOffTimeout = screenOffTimeout;
             // Not accurate but at least won't cause immediate locking of the profile.
-            mLastUserActivityTime = SystemClock.uptimeMillis();
+            mLastUserActivityTime = now;
         }
     }
 
@@ -755,6 +757,15 @@
         }
     }
 
+    /** Functional interface for providing time. */
+    @VisibleForTesting
+    interface Clock {
+        /**
+         * Returns current time in milliseconds since boot, not counting time spent in deep sleep.
+         */
+        long uptimeMillis();
+    }
+
     @VisibleForTesting
     static class Injector {
         Notifier createNotifier(Looper looper, Context context, IBatteryStats batteryStats,
@@ -780,6 +791,11 @@
                     batterySaverPolicy, batterySavingStats);
         }
 
+        BatterySaverStateMachine createBatterySaverStateMachine(Object lock, Context context,
+                BatterySaverController batterySaverController) {
+            return new BatterySaverStateMachine(lock, context, batterySaverController);
+        }
+
         NativeWrapper createNativeWrapper() {
             return new NativeWrapper();
         }
@@ -816,6 +832,17 @@
             };
         }
 
+        Clock createClock() {
+            return SystemClock::uptimeMillis;
+        }
+
+        /**
+         * Handler for asynchronous operations performed by the power manager.
+         */
+        Handler createHandler(Looper looper, Handler.Callback callback) {
+            return new Handler(looper, callback, true /*async*/);
+        }
+
         void invalidateIsInteractiveCaches() {
             PowerManager.invalidateIsInteractiveCaches();
         }
@@ -847,12 +874,14 @@
         mLocalService = new LocalService();
         mNativeWrapper = injector.createNativeWrapper();
         mSystemProperties = injector.createSystemPropertiesWrapper();
+        mClock = injector.createClock();
         mInjector = injector;
 
         mHandlerThread = new ServiceThread(TAG,
                 Process.THREAD_PRIORITY_DISPLAY, false /*allowIo*/);
         mHandlerThread.start();
-        mHandler = new PowerManagerHandler(mHandlerThread.getLooper());
+        mHandler = injector.createHandler(mHandlerThread.getLooper(),
+                new PowerManagerHandlerCallback());
         mConstants = new Constants(mHandler);
         mAmbientDisplayConfiguration = mInjector.createAmbientDisplayConfiguration(context);
         mAmbientDisplaySuppressionController =
@@ -864,8 +893,8 @@
                 mInjector.createBatterySaverPolicy(mLock, mContext, mBatterySavingStats);
         mBatterySaverController = mInjector.createBatterySaverController(mLock, mContext,
                 mBatterySaverPolicy, mBatterySavingStats);
-        mBatterySaverStateMachine = new BatterySaverStateMachine(
-                mLock, mContext, mBatterySaverController);
+        mBatterySaverStateMachine = mInjector.createBatterySaverStateMachine(mLock, mContext,
+                mBatterySaverController);
 
         mInattentiveSleepWarningOverlayController =
                 mInjector.createInattentiveSleepWarningController();
@@ -968,7 +997,8 @@
             mHalInteractiveModeEnabled = true;
 
             mWakefulnessRaw = WAKEFULNESS_AWAKE;
-            sQuiescent = mSystemProperties.get(SYSTEM_PROPERTY_QUIESCENT, "0").equals("1");
+            sQuiescent = mSystemProperties.get(SYSTEM_PROPERTY_QUIESCENT, "0").equals("1")
+                    || InitProperties.userspace_reboot_in_progress().orElse(false);
 
             mNativeWrapper.nativeInit(this);
             mNativeWrapper.nativeSetAutoSuspend(false);
@@ -995,7 +1025,7 @@
                 incrementBootCount();
 
             } else if (phase == PHASE_BOOT_COMPLETED) {
-                final long now = SystemClock.uptimeMillis();
+                final long now = mClock.uptimeMillis();
                 mBootCompleted = true;
                 mDirty |= DIRTY_BOOT_COMPLETED;
 
@@ -1004,7 +1034,7 @@
                         now, PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, Process.SYSTEM_UID);
 
                 if (sQuiescent) {
-                    goToSleepNoUpdateLocked(SystemClock.uptimeMillis(),
+                    goToSleepNoUpdateLocked(mClock.uptimeMillis(),
                             PowerManager.GO_TO_SLEEP_REASON_QUIESCENT,
                             PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE, Process.SYSTEM_UID);
                 }
@@ -1347,7 +1377,7 @@
                 opPackageName = wakeLock.mPackageName;
                 opUid = wakeLock.mOwnerUid;
             }
-            wakeUpNoUpdateLocked(SystemClock.uptimeMillis(),
+            wakeUpNoUpdateLocked(mClock.uptimeMillis(),
                     PowerManager.WAKE_REASON_APPLICATION, wakeLock.mTag,
                     opUid, opPackageName, opUid);
         }
@@ -1413,7 +1443,7 @@
     private void applyWakeLockFlagsOnReleaseLocked(WakeLock wakeLock) {
         if ((wakeLock.mFlags & PowerManager.ON_AFTER_RELEASE) != 0
                 && isScreenLock(wakeLock)) {
-            userActivityNoUpdateLocked(SystemClock.uptimeMillis(),
+            userActivityNoUpdateLocked(mClock.uptimeMillis(),
                     PowerManager.USER_ACTIVITY_EVENT_OTHER,
                     PowerManager.USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS,
                     wakeLock.mOwnerUid);
@@ -1477,7 +1507,7 @@
     }
 
     private void restartNofifyLongTimerLocked(WakeLock wakeLock) {
-        wakeLock.mAcquireTime = SystemClock.uptimeMillis();
+        wakeLock.mAcquireTime = mClock.uptimeMillis();
         if ((wakeLock.mFlags & PowerManager.WAKE_LOCK_LEVEL_MASK)
                 == PowerManager.PARTIAL_WAKE_LOCK && mNotifyLongScheduled == 0) {
             enqueueNotifyLongMsgLocked(wakeLock.mAcquireTime + MIN_LONG_WAKE_CHECK_INTERVAL);
@@ -1562,7 +1592,7 @@
 
     private void onUserAttention() {
         synchronized (mLock) {
-            if (userActivityNoUpdateLocked(SystemClock.uptimeMillis(),
+            if (userActivityNoUpdateLocked(mClock.uptimeMillis(),
                     PowerManager.USER_ACTIVITY_EVENT_ATTENTION, 0 /* flags */,
                     Process.SYSTEM_UID)) {
                 updatePowerStateLocked();
@@ -1837,7 +1867,7 @@
      * had the system not been told the user was inactive.
      */
     private void logSleepTimeoutRecapturedLocked() {
-        final long now = SystemClock.uptimeMillis();
+        final long now = mClock.uptimeMillis();
         final long savedWakeTimeMs = mOverriddenTimeout - now;
         if (savedWakeTimeMs >= 0) {
             EventLogTags.writePowerSoftSleepRequested(savedWakeTimeMs);
@@ -1860,7 +1890,7 @@
             }
             if (getWakefulnessLocked() == WAKEFULNESS_AWAKE) {
                 Trace.asyncTraceEnd(Trace.TRACE_TAG_POWER, TRACE_SCREEN_ON, 0);
-                final int latencyMs = (int) (SystemClock.uptimeMillis() - mLastWakeTime);
+                final int latencyMs = (int) (mClock.uptimeMillis() - mLastWakeTime);
                 if (latencyMs >= SCREEN_ON_LATENCY_WARNING_MS) {
                     Slog.w(TAG, "Screen on took " + latencyMs + " ms");
                 }
@@ -1896,7 +1926,7 @@
             // Phase 1: Update wakefulness.
             // Loop because the wake lock and user activity computations are influenced
             // by changes in wakefulness.
-            final long now = SystemClock.uptimeMillis();
+            final long now = mClock.uptimeMillis();
             int dirtyPhase2 = 0;
             for (;;) {
                 int dirtyPhase1 = mDirty;
@@ -1989,7 +2019,7 @@
                 // and it shuts off right away.
                 // Some devices also wake the device when plugged or unplugged because
                 // they don't have a charging LED.
-                final long now = SystemClock.uptimeMillis();
+                final long now = mClock.uptimeMillis();
                 if (shouldWakeUpWhenPluggedOrUnpluggedLocked(wasPowered, oldPlugType,
                         dockedOnWirelessCharger)) {
                     wakeUpNoUpdateLocked(now, PowerManager.WAKE_REASON_PLUGGED_IN,
@@ -2197,7 +2227,7 @@
 
     void checkForLongWakeLocks() {
         synchronized (mLock) {
-            final long now = SystemClock.uptimeMillis();
+            final long now = mClock.uptimeMillis();
             mNotifyLongDispatched = now;
             final long when = now - MIN_LONG_WAKE_CHECK_INTERVAL;
             long nextCheckTime = Long.MAX_VALUE;
@@ -2432,7 +2462,7 @@
 
     private boolean isAttentiveTimeoutExpired(long now) {
         long attentiveTimeout = getAttentiveTimeoutLocked();
-        return attentiveTimeout >= 0 && now > mLastUserActivityTime + attentiveTimeout;
+        return attentiveTimeout >= 0 && now >= mLastUserActivityTime + attentiveTimeout;
     }
 
     /**
@@ -2526,7 +2556,7 @@
                 if (DEBUG_SPEW) {
                     Slog.d(TAG, "updateWakefulnessLocked: Bed time...");
                 }
-                final long time = SystemClock.uptimeMillis();
+                final long time = mClock.uptimeMillis();
                 if (isAttentiveTimeoutExpired(time)) {
                     changed = goToSleepNoUpdateLocked(time, PowerManager.GO_TO_SLEEP_REASON_TIMEOUT,
                             PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE, Process.SYSTEM_UID);
@@ -2561,7 +2591,7 @@
             return false;
         }
 
-        long now = SystemClock.uptimeMillis();
+        long now = mClock.uptimeMillis();
         if (isAttentiveTimeoutExpired(now)) {
             return !isBeingKeptFromInattentiveSleepLocked();
         } else {
@@ -2692,7 +2722,7 @@
             }
 
             // Determine whether the dream should continue.
-            long now = SystemClock.uptimeMillis();
+            long now = mClock.uptimeMillis();
             if (wakefulness == WAKEFULNESS_DREAMING) {
                 if (isDreaming && canDreamLocked()) {
                     if (mDreamsBatteryLevelDrainCutoffConfig >= 0
@@ -2874,7 +2904,7 @@
     private void updateScreenBrightnessBoostLocked(int dirty) {
         if ((dirty & DIRTY_SCREEN_BRIGHTNESS_BOOST) != 0) {
             if (mScreenBrightnessBoostInProgress) {
-                final long now = SystemClock.uptimeMillis();
+                final long now = mClock.uptimeMillis();
                 mHandler.removeMessages(MSG_SCREEN_BRIGHTNESS_BOOST_TIMEOUT);
                 if (mLastScreenBrightnessBoostTime > mLastSleepTime) {
                     final long boostTimeout = mLastScreenBrightnessBoostTime +
@@ -2961,7 +2991,7 @@
             synchronized (mLock) {
                 mProximityPositive = false;
                 mDirty |= DIRTY_PROXIMITY_POSITIVE;
-                userActivityNoUpdateLocked(SystemClock.uptimeMillis(),
+                userActivityNoUpdateLocked(mClock.uptimeMillis(),
                         PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, Process.SYSTEM_UID);
                 updatePowerStateLocked();
             }
@@ -3282,7 +3312,8 @@
                 if (profile != null) {
                     profile.mScreenOffTimeout = timeMs;
                 } else {
-                    mProfilePowerState.put(userId, new ProfilePowerState(userId, timeMs));
+                    mProfilePowerState.put(userId, new ProfilePowerState(userId, timeMs,
+                            mClock.uptimeMillis()));
                     // We need to recalculate wake locks for the new profile state.
                     mDirty |= DIRTY_WAKE_LOCKS;
                 }
@@ -3500,7 +3531,9 @@
         }
 
         // Control light outside of lock.
-        light.setFlashing(color, LogicalLight.LIGHT_FLASH_HARDWARE, (on ? 3 : 0), 0);
+        if (light != null) {
+            light.setFlashing(color, LogicalLight.LIGHT_FLASH_HARDWARE, (on ? 3 : 0), 0);
+        }
     }
 
     private void setDozeAfterScreenOffInternal(boolean on) {
@@ -3639,14 +3672,14 @@
     @VisibleForTesting
     boolean wasDeviceIdleForInternal(long ms) {
         synchronized (mLock) {
-            return mLastUserActivityTime + ms < SystemClock.uptimeMillis();
+            return mLastUserActivityTime + ms < mClock.uptimeMillis();
         }
     }
 
     @VisibleForTesting
     void onUserActivity() {
         synchronized (mLock) {
-            mLastUserActivityTime = SystemClock.uptimeMillis();
+            mLastUserActivityTime = mClock.uptimeMillis();
         }
     }
 
@@ -3655,7 +3688,7 @@
             synchronized (mLock) {
                 mForceSuspendActive = true;
                 // Place the system in an non-interactive state
-                goToSleepInternal(SystemClock.uptimeMillis(),
+                goToSleepInternal(mClock.uptimeMillis(),
                         PowerManager.GO_TO_SLEEP_REASON_FORCE_SUSPEND,
                         PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE, uid);
 
@@ -3770,21 +3803,21 @@
             if (mNotifyLongScheduled == 0) {
                 pw.print("(none)");
             } else {
-                TimeUtils.formatDuration(mNotifyLongScheduled, SystemClock.uptimeMillis(), pw);
+                TimeUtils.formatDuration(mNotifyLongScheduled, mClock.uptimeMillis(), pw);
             }
             pw.println();
             pw.print("  mNotifyLongDispatched=");
             if (mNotifyLongDispatched == 0) {
                 pw.print("(none)");
             } else {
-                TimeUtils.formatDuration(mNotifyLongDispatched, SystemClock.uptimeMillis(), pw);
+                TimeUtils.formatDuration(mNotifyLongDispatched, mClock.uptimeMillis(), pw);
             }
             pw.println();
             pw.print("  mNotifyLongNextCheck=");
             if (mNotifyLongNextCheck == 0) {
                 pw.print("(none)");
             } else {
-                TimeUtils.formatDuration(mNotifyLongNextCheck, SystemClock.uptimeMillis(), pw);
+                TimeUtils.formatDuration(mNotifyLongNextCheck, mClock.uptimeMillis(), pw);
             }
             pw.println();
             pw.println("  mUserActivitySummary=0x" + Integer.toHexString(mUserActivitySummary));
@@ -4382,15 +4415,11 @@
     };
 
     /**
-     * Handler for asynchronous operations performed by the power manager.
+     * Callback for asynchronous operations performed by the power manager.
      */
-    private final class PowerManagerHandler extends Handler {
-        public PowerManagerHandler(Looper looper) {
-            super(looper, null, true /*async*/);
-        }
-
+    private final class PowerManagerHandlerCallback implements Handler.Callback {
         @Override
-        public void handleMessage(Message msg) {
+        public boolean handleMessage(Message msg) {
             switch (msg.what) {
                 case MSG_USER_ACTIVITY_TIMEOUT:
                     handleUserActivityTimeout();
@@ -4408,6 +4437,8 @@
                     handleAttentiveTimeout();
                     break;
             }
+
+            return true;
         }
     }
 
@@ -4498,7 +4529,7 @@
             }
             if (mNotifiedAcquired) {
                 sb.append(" ACQ=");
-                TimeUtils.formatDuration(mAcquireTime-SystemClock.uptimeMillis(), sb);
+                TimeUtils.formatDuration(mAcquireTime-mClock.uptimeMillis(), sb);
             }
             if (mNotifiedLong) {
                 sb.append(" LONG");
@@ -4810,7 +4841,7 @@
 
         @Override // Binder call
         public void userActivity(long eventTime, int event, int flags) {
-            final long now = SystemClock.uptimeMillis();
+            final long now = mClock.uptimeMillis();
             if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER)
                     != PackageManager.PERMISSION_GRANTED
                     && mContext.checkCallingOrSelfPermission(
@@ -4848,7 +4879,7 @@
         @Override // Binder call
         public void wakeUp(long eventTime, @WakeReason int reason, String details,
                 String opPackageName) {
-            if (eventTime > SystemClock.uptimeMillis()) {
+            if (eventTime > mClock.uptimeMillis()) {
                 throw new IllegalArgumentException("event time must not be in the future");
             }
 
@@ -4866,7 +4897,7 @@
 
         @Override // Binder call
         public void goToSleep(long eventTime, int reason, int flags) {
-            if (eventTime > SystemClock.uptimeMillis()) {
+            if (eventTime > mClock.uptimeMillis()) {
                 throw new IllegalArgumentException("event time must not be in the future");
             }
 
@@ -4884,7 +4915,7 @@
 
         @Override // Binder call
         public void nap(long eventTime) {
-            if (eventTime > SystemClock.uptimeMillis()) {
+            if (eventTime > mClock.uptimeMillis()) {
                 throw new IllegalArgumentException("event time must not be in the future");
             }
 
@@ -5279,7 +5310,7 @@
 
         @Override // Binder call
         public void boostScreenBrightness(long eventTime) {
-            if (eventTime > SystemClock.uptimeMillis()) {
+            if (eventTime > mClock.uptimeMillis()) {
                 throw new IllegalArgumentException("event time must not be in the future");
             }
 
diff --git a/services/core/java/com/android/server/power/TEST_MAPPING b/services/core/java/com/android/server/power/TEST_MAPPING
index acf3f79..74958b6 100644
--- a/services/core/java/com/android/server/power/TEST_MAPPING
+++ b/services/core/java/com/android/server/power/TEST_MAPPING
@@ -3,6 +3,7 @@
     {
       "name": "CtsBatterySavingTestCases",
       "options": [
+        {"exclude-annotation": "android.platform.test.annotations.FlakyTest"},
         {"exclude-annotation": "androidx.test.filters.LargeTest"},
         {"exclude-annotation": "androidx.test.filters.FlakyTest"}
       ]
@@ -11,6 +12,7 @@
       "name": "FrameworksMockingServicesTests",
       "options": [
         {"include-filter": "com.android.server.power"},
+        {"exclude-annotation": "android.platform.test.annotations.FlakyTest"},
         {"exclude-annotation": "androidx.test.filters.FlakyTest"}
       ]
     },
@@ -18,6 +20,7 @@
       "name": "FrameworksServicesTests",
       "options": [
         {"include-filter": "com.android.server.power"},
+        {"exclude-annotation": "android.platform.test.annotations.FlakyTest"},
         {"exclude-annotation": "androidx.test.filters.FlakyTest"},
         {
           "exclude-filter": "com.android.server.power.PowerManagerServiceTest#testWakefulnessAwake_ShouldWakeUpWhenPluggedIn"
diff --git a/services/core/java/com/android/server/power/ThermalManagerService.java b/services/core/java/com/android/server/power/ThermalManagerService.java
index 74c3a9e..2783d0b 100644
--- a/services/core/java/com/android/server/power/ThermalManagerService.java
+++ b/services/core/java/com/android/server/power/ThermalManagerService.java
@@ -767,7 +767,7 @@
         protected boolean connectToHal() {
             synchronized (mHalLock) {
                 try {
-                    mThermalHal10 = android.hardware.thermal.V1_0.IThermal.getService();
+                    mThermalHal10 = android.hardware.thermal.V1_0.IThermal.getService(true);
                     mThermalHal10.linkToDeath(new DeathRecipient(),
                             THERMAL_HAL_DEATH_COOKIE);
                     Slog.i(TAG,
@@ -902,7 +902,7 @@
         protected boolean connectToHal() {
             synchronized (mHalLock) {
                 try {
-                    mThermalHal11 = android.hardware.thermal.V1_1.IThermal.getService();
+                    mThermalHal11 = android.hardware.thermal.V1_1.IThermal.getService(true);
                     mThermalHal11.linkToDeath(new DeathRecipient(),
                             THERMAL_HAL_DEATH_COOKIE);
                     mThermalHal11.registerThermalCallback(mThermalCallback11);
@@ -1046,7 +1046,7 @@
         protected boolean connectToHal() {
             synchronized (mHalLock) {
                 try {
-                    mThermalHal20 = android.hardware.thermal.V2_0.IThermal.getService();
+                    mThermalHal20 = android.hardware.thermal.V2_0.IThermal.getService(true);
                     mThermalHal20.linkToDeath(new DeathRecipient(), THERMAL_HAL_DEATH_COOKIE);
                     mThermalHal20.registerThermalChangedCallback(mThermalCallback20, false,
                             0 /* not used */);
diff --git a/services/core/java/com/android/server/power/batterysaver/BatterySaverStateMachine.java b/services/core/java/com/android/server/power/batterysaver/BatterySaverStateMachine.java
index 42aaec9..2256b62 100644
--- a/services/core/java/com/android/server/power/batterysaver/BatterySaverStateMachine.java
+++ b/services/core/java/com/android/server/power/batterysaver/BatterySaverStateMachine.java
@@ -828,7 +828,7 @@
         NotificationChannel channel = new NotificationChannel(
                 channelId, mContext.getText(nameId), NotificationManager.IMPORTANCE_DEFAULT);
         channel.setSound(null, null);
-        channel.setBlockableSystem(true);
+        channel.setBlockable(true);
         manager.createNotificationChannel(channel);
     }
 
diff --git a/services/core/java/com/android/server/security/FileIntegrityService.java b/services/core/java/com/android/server/security/FileIntegrityService.java
index 482090a..841aca5 100644
--- a/services/core/java/com/android/server/security/FileIntegrityService.java
+++ b/services/core/java/com/android/server/security/FileIntegrityService.java
@@ -18,14 +18,19 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.app.AppOpsManager;
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.content.pm.PackageManagerInternal;
+import android.os.Binder;
 import android.os.Build;
 import android.os.IBinder;
 import android.os.SystemProperties;
+import android.os.UserHandle;
 import android.security.IFileIntegrityService;
 import android.util.Slog;
 
+import com.android.server.LocalServices;
 import com.android.server.SystemService;
 
 import java.io.ByteArrayInputStream;
@@ -58,10 +63,10 @@
         }
 
         @Override
-        public boolean isAppSourceCertificateTrusted(@Nullable byte[] certificateBytes) {
-            enforceAnyCallingPermissions(
-                    android.Manifest.permission.REQUEST_INSTALL_PACKAGES,
-                    android.Manifest.permission.INSTALL_PACKAGES);
+        public boolean isAppSourceCertificateTrusted(@Nullable byte[] certificateBytes,
+                @NonNull String packageName) {
+            checkCallerPermission(packageName);
+
             try {
                 if (!isApkVeritySupported()) {
                     return false;
@@ -77,14 +82,30 @@
             }
         }
 
-        private void enforceAnyCallingPermissions(String ...permissions) {
-            for (String permission : permissions) {
-                if (getContext().checkCallingPermission(permission)
-                        == PackageManager.PERMISSION_GRANTED) {
-                    return;
-                }
+        private void checkCallerPermission(String packageName) {
+            final int callingUid = Binder.getCallingUid();
+            final int callingUserId = UserHandle.getUserId(callingUid);
+            final PackageManagerInternal packageManager =
+                    LocalServices.getService(PackageManagerInternal.class);
+            final int packageUid = packageManager.getPackageUid(
+                    packageName, 0 /*flag*/, callingUserId);
+            if (callingUid != packageUid) {
+                throw new SecurityException(
+                        "Calling uid " + callingUid + " does not own package " + packageName);
             }
-            throw new SecurityException("Insufficient permission");
+
+            if (getContext().checkCallingPermission(android.Manifest.permission.INSTALL_PACKAGES)
+                    == PackageManager.PERMISSION_GRANTED) {
+                return;
+            }
+
+            final AppOpsManager appOpsManager = getContext().getSystemService(AppOpsManager.class);
+            final int mode = appOpsManager.checkOpNoThrow(
+                    AppOpsManager.OP_REQUEST_INSTALL_PACKAGES, callingUid, packageName);
+            if (mode != AppOpsManager.MODE_ALLOWED) {
+                throw new SecurityException(
+                        "Caller should have INSTALL_PACKAGES or REQUEST_INSTALL_PACKAGES");
+            }
         }
     };
 
diff --git a/services/core/java/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation.java b/services/core/java/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation.java
index 1292f6c..06f2d65 100644
--- a/services/core/java/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation.java
+++ b/services/core/java/com/android/server/soundtrigger_middleware/SoundTriggerMiddlewareValidation.java
@@ -34,6 +34,7 @@
 import android.media.soundtrigger_middleware.SoundTriggerModuleDescriptor;
 import android.media.soundtrigger_middleware.Status;
 import android.os.IBinder;
+import android.os.Process;
 import android.os.RemoteException;
 import android.os.ServiceSpecificException;
 import android.util.Log;
@@ -107,6 +108,12 @@
 public class SoundTriggerMiddlewareValidation implements ISoundTriggerMiddlewareService, Dumpable {
     private static final String TAG = "SoundTriggerMiddlewareValidation";
 
+    private enum ModuleState {
+        ALIVE,
+        DETACHED,
+        DEAD
+    };
+
     private final @NonNull ISoundTriggerMiddlewareService mDelegate;
     private final @NonNull Context mContext;
     private Map<Integer, Set<ModuleService>> mModules;
@@ -139,6 +146,14 @@
             throw new ServiceSpecificException(((RecoverableException) e).errorCode,
                     e.getMessage());
         }
+
+        /* Throwing an exception is not enough in this case. When the HAL behaves unexpectedly, the
+           system service and the HAL must be reset and the client must be notified. Without a full
+           reset in this catastrophic case, the state of the HAL and the system service cannot be
+           guaranteed to the client.
+         */
+        Log.wtf(TAG, "Crashing system server due to unrecoverable exception", e);
+        Process.killProcess(Process.myPid());
         throw new InternalServerError(e);
     }
 
@@ -252,8 +267,21 @@
      * @param permission The permission to check.
      */
     void enforcePermission(String permission) {
-        mContext.enforceCallingOrSelfPermission(permission,
-                String.format("Caller must have the %s permission.", permission));
+        final int status = PermissionChecker.checkCallingOrSelfPermissionForPreflight(mContext,
+                permission);
+        switch (status) {
+            case PermissionChecker.PERMISSION_GRANTED:
+                return;
+            case PermissionChecker.PERMISSION_HARD_DENIED:
+                throw new SecurityException(
+                        String.format("Caller must have the %s permission.", permission));
+            case PermissionChecker.PERMISSION_SOFT_DENIED:
+                throw new ServiceSpecificException(Status.TEMPORARY_PERMISSION_DENIED,
+                        String.format("Caller must have the %s permission.", permission));
+            default:
+                throw new InternalServerError(
+                        new RuntimeException("Unexpected perimission check result."));
+        }
     }
 
     @Override
@@ -359,12 +387,13 @@
         private ISoundTriggerModule mDelegate;
         private @NonNull Map<Integer, ModelState> mLoadedModels = new HashMap<>();
         private final int mHandle;
+        private ModuleState mState = ModuleState.ALIVE;
 
         ModuleService(int handle, @NonNull ISoundTriggerCallback callback) {
             mCallback = callback;
             mHandle = handle;
             try {
-                mCallback.asBinder().linkToDeath(null, 0);
+                mCallback.asBinder().linkToDeath(this, 0);
             } catch (RemoteException e) {
                 throw e.rethrowAsRuntimeException();
             }
@@ -384,7 +413,7 @@
 
             synchronized (SoundTriggerMiddlewareValidation.this) {
                 // State validation.
-                if (mDelegate == null) {
+                if (mState == ModuleState.DETACHED) {
                     throw new IllegalStateException("Module has been detached.");
                 }
 
@@ -408,7 +437,7 @@
 
             synchronized (SoundTriggerMiddlewareValidation.this) {
                 // State validation.
-                if (mDelegate == null) {
+                if (mState == ModuleState.DETACHED) {
                     throw new IllegalStateException("Module has been detached.");
                 }
 
@@ -431,7 +460,7 @@
 
             synchronized (SoundTriggerMiddlewareValidation.this) {
                 // State validation.
-                if (mDelegate == null) {
+                if (mState == ModuleState.DETACHED) {
                     throw new IllegalStateException("Module has been detached.");
                 }
                 ModelState modelState = mLoadedModels.get(
@@ -464,7 +493,7 @@
 
             synchronized (SoundTriggerMiddlewareValidation.this) {
                 // State validation.
-                if (mDelegate == null) {
+                if (mState == ModuleState.DETACHED) {
                     throw new IllegalStateException("Module has been detached.");
                 }
                 ModelState modelState = mLoadedModels.get(
@@ -498,7 +527,7 @@
 
             synchronized (SoundTriggerMiddlewareValidation.this) {
                 // State validation.
-                if (mDelegate == null) {
+                if (mState == ModuleState.DETACHED) {
                     throw new IllegalStateException("Module has been detached.");
                 }
                 ModelState modelState = mLoadedModels.get(
@@ -527,7 +556,7 @@
 
             synchronized (SoundTriggerMiddlewareValidation.this) {
                 // State validation.
-                if (mDelegate == null) {
+                if (mState == ModuleState.DETACHED) {
                     throw new IllegalStateException("Module has been detached.");
                 }
                 ModelState modelState = mLoadedModels.get(
@@ -555,7 +584,7 @@
 
             synchronized (SoundTriggerMiddlewareValidation.this) {
                 // State validation.
-                if (mDelegate == null) {
+                if (mState == ModuleState.DETACHED) {
                     throw new IllegalStateException("Module has been detached.");
                 }
                 ModelState modelState = mLoadedModels.get(
@@ -583,7 +612,7 @@
 
             synchronized (SoundTriggerMiddlewareValidation.this) {
                 // State validation.
-                if (mDelegate == null) {
+                if (mState == ModuleState.DETACHED) {
                     throw new IllegalStateException("Module has been detached.");
                 }
                 ModelState modelState = mLoadedModels.get(
@@ -612,7 +641,7 @@
 
             synchronized (SoundTriggerMiddlewareValidation.this) {
                 // State validation.
-                if (mDelegate == null) {
+                if (mState == ModuleState.DETACHED) {
                     throw new IllegalStateException("Module has been detached.");
                 }
                 ModelState modelState = mLoadedModels.get(
@@ -641,10 +670,10 @@
 
             synchronized (SoundTriggerMiddlewareValidation.this) {
                 // State validation.
-                if (mDelegate == null) {
+                if (mState == ModuleState.DETACHED) {
                     throw new IllegalStateException("Module has already been detached.");
                 }
-                if (!mLoadedModels.isEmpty()) {
+                if (mState == ModuleState.ALIVE && !mLoadedModels.isEmpty()) {
                     throw new IllegalStateException("Cannot detach while models are loaded.");
                 }
 
@@ -660,14 +689,14 @@
         // Override toString() in order to have the delegate's ID in it.
         @Override
         public String toString() {
-            return mDelegate.toString();
+            return Objects.toString(mDelegate.toString());
         }
 
         private void detachInternal() {
             try {
                 mDelegate.detach();
-                mDelegate = null;
-                mCallback.asBinder().unlinkToDeath(null, 0);
+                mState = ModuleState.DETACHED;
+                mCallback.asBinder().unlinkToDeath(this, 0);
                 mModules.get(mHandle).remove(this);
             } catch (RemoteException e) {
                 throw e.rethrowAsRuntimeException();
@@ -675,13 +704,18 @@
         }
 
         void dump(PrintWriter pw) {
-            pw.printf("Loaded models for session %s (handle, active)", toString());
-            pw.println();
-            pw.println("-------------------------------");
-            for (Map.Entry<Integer, ModelState> entry : mLoadedModels.entrySet()) {
-                pw.print(entry.getKey());
-                pw.print('\t');
-                pw.print(entry.getValue().activityState.name());
+            if (mState == ModuleState.ALIVE) {
+                pw.printf("Loaded models for session %s (handle, active)", toString());
+                pw.println();
+                pw.println("-------------------------------");
+                for (Map.Entry<Integer, ModelState> entry : mLoadedModels.entrySet()) {
+                    pw.print(entry.getKey());
+                    pw.print('\t');
+                    pw.print(entry.getValue().activityState.name());
+                    pw.println();
+                }
+            } else {
+                pw.printf("Session %s is dead", toString());
                 pw.println();
             }
         }
@@ -740,6 +774,7 @@
         public void onModuleDied() {
             synchronized (SoundTriggerMiddlewareValidation.this) {
                 try {
+                    mState = ModuleState.DEAD;
                     mCallback.onModuleDied();
                 } catch (RemoteException e) {
                     // Dead client will be handled by binderDied() - no need to handle here.
diff --git a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
index fd275d8..5e1be51 100644
--- a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
+++ b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
@@ -18,6 +18,7 @@
 
 import static android.app.AppOpsManager.OP_FLAG_SELF;
 import static android.app.AppOpsManager.OP_FLAG_TRUSTED_PROXY;
+import static android.app.usage.NetworkStatsManager.FLAG_AUGMENT_WITH_SUBSCRIPTION_PLAN;
 import static android.content.pm.PackageInfo.REQUESTED_PERMISSION_GRANTED;
 import static android.content.pm.PermissionInfo.PROTECTION_DANGEROUS;
 import static android.os.Debug.getIonHeapsSizeKb;
@@ -34,6 +35,9 @@
 import static com.android.server.stats.pull.ProcfsMemoryUtil.readCmdlineFromProcfs;
 import static com.android.server.stats.pull.ProcfsMemoryUtil.readMemorySnapshotFromProcfs;
 
+import static java.util.concurrent.TimeUnit.MICROSECONDS;
+
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.ActivityManagerInternal;
 import android.app.AppOpsManager;
@@ -61,12 +65,13 @@
 import android.hardware.health.V2_0.IHealth;
 import android.net.ConnectivityManager;
 import android.net.INetworkStatsService;
+import android.net.INetworkStatsSession;
 import android.net.Network;
 import android.net.NetworkRequest;
 import android.net.NetworkStats;
+import android.net.NetworkTemplate;
 import android.net.wifi.WifiManager;
 import android.os.BatteryStats;
-import android.os.BatteryStatsInternal;
 import android.os.Binder;
 import android.os.Build;
 import android.os.Bundle;
@@ -200,7 +205,8 @@
 
     private final Object mNetworkStatsLock = new Object();
     @GuardedBy("mNetworkStatsLock")
-    private INetworkStatsService mNetworkStatsService;
+    @Nullable
+    private INetworkStatsSession mNetworkStatsSession;
 
     private final Object mThermalLock = new Object();
     @GuardedBy("mThermalLock")
@@ -289,13 +295,13 @@
             try {
                 switch (atomTag) {
                     case FrameworkStatsLog.WIFI_BYTES_TRANSFER:
-                        return pullWifiBytesTransfer(atomTag, data);
+                        return pullWifiBytesTransfer(atomTag, data, false);
                     case FrameworkStatsLog.WIFI_BYTES_TRANSFER_BY_FG_BG:
-                        return pullWifiBytesTransferBackground(atomTag, data);
+                        return pullWifiBytesTransfer(atomTag, data, true);
                     case FrameworkStatsLog.MOBILE_BYTES_TRANSFER:
-                        return pullMobileBytesTransfer(atomTag, data);
+                        return pullMobileBytesTransfer(atomTag, data, false);
                     case FrameworkStatsLog.MOBILE_BYTES_TRANSFER_BY_FG_BG:
-                        return pullMobileBytesTransferBackground(atomTag, data);
+                        return pullMobileBytesTransfer(atomTag, data, true);
                     case FrameworkStatsLog.BLUETOOTH_BYTES_TRANSFER:
                         return pullBluetoothBytesTransfer(atomTag, data);
                     case FrameworkStatsLog.KERNEL_WAKELOCK:
@@ -574,26 +580,35 @@
         registerBatteryCycleCount();
     }
 
-    private INetworkStatsService getINetworkStatsService() {
+    /**
+     * Return the {@code INetworkStatsSession} object that holds the necessary properties needed
+     * for the subsequent queries to {@link com.android.server.net.NetworkStatsService}. Or
+     * null if the service or binder cannot be obtained.
+     */
+    @Nullable
+    private INetworkStatsSession getNetworkStatsSession() {
         synchronized (mNetworkStatsLock) {
-            if (mNetworkStatsService == null) {
-                mNetworkStatsService = INetworkStatsService.Stub.asInterface(
-                        ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
-                if (mNetworkStatsService != null) {
-                    try {
-                        mNetworkStatsService.asBinder().linkToDeath(() -> {
-                            synchronized (mNetworkStatsLock) {
-                                mNetworkStatsService = null;
-                            }
-                        }, /* flags */ 0);
-                    } catch (RemoteException e) {
-                        Slog.e(TAG, "linkToDeath with NetworkStatsService failed", e);
-                        mNetworkStatsService = null;
-                    }
-                }
+            if (mNetworkStatsSession != null) return mNetworkStatsSession;
 
+            final INetworkStatsService networkStatsService =
+                    INetworkStatsService.Stub.asInterface(
+                            ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
+            if (networkStatsService == null) return null;
+
+            try {
+                networkStatsService.asBinder().linkToDeath(() -> {
+                    synchronized (mNetworkStatsLock) {
+                        mNetworkStatsSession = null;
+                    }
+                }, /* flags */ 0);
+                mNetworkStatsSession = networkStatsService.openSessionForUsageStats(
+                        FLAG_AUGMENT_WITH_SUBSCRIPTION_PLAN, mContext.getOpPackageName());
+            } catch (RemoteException e) {
+                Slog.e(TAG, "Cannot get NetworkStats session", e);
+                mNetworkStatsSession = null;
             }
-            return mNetworkStatsService;
+
+            return mNetworkStatsSession;
         }
     }
 
@@ -698,42 +713,38 @@
         );
     }
 
-    int pullWifiBytesTransfer(int atomTag, List<StatsEvent> pulledData) {
-        INetworkStatsService networkStatsService = getINetworkStatsService();
-        if (networkStatsService == null) {
-            Slog.e(TAG, "NetworkStats Service is not available!");
-            return StatsManager.PULL_SKIP;
+    private int pullWifiBytesTransfer(
+            int atomTag, @NonNull List<StatsEvent> pulledData, boolean withFgbg) {
+        final NetworkTemplate template = NetworkTemplate.buildTemplateWifiWildcard();
+        final NetworkStats stats = getUidNetworkStatsSinceBoot(template, withFgbg);
+        if (stats != null) {
+            addNetworkStats(atomTag, pulledData, stats, withFgbg);
+            return StatsManager.PULL_SUCCESS;
         }
-        long token = Binder.clearCallingIdentity();
-        try {
-            // TODO(b/148402814): Consider caching the following call to get BatteryStatsInternal.
-            BatteryStatsInternal bs = LocalServices.getService(BatteryStatsInternal.class);
-            String[] ifaces = bs.getWifiIfaces();
-            if (ifaces.length == 0) {
-                return StatsManager.PULL_SKIP;
-            }
-            // Combine all the metrics per Uid into one record.
-            NetworkStats stats = networkStatsService.getDetailedUidStats(ifaces).groupedByUid();
-            addNetworkStats(atomTag, pulledData, stats, false);
-        } catch (RemoteException e) {
-            Slog.e(TAG, "Pulling netstats for wifi bytes has error", e);
-            return StatsManager.PULL_SKIP;
-        } finally {
-            Binder.restoreCallingIdentity(token);
-        }
-        return StatsManager.PULL_SUCCESS;
+        return StatsManager.PULL_SKIP;
     }
 
-    private void addNetworkStats(
-            int tag, List<StatsEvent> ret, NetworkStats stats, boolean withFGBG) {
+    private int pullMobileBytesTransfer(
+            int atomTag, @NonNull List<StatsEvent> pulledData, boolean withFgbg) {
+        final NetworkTemplate template = NetworkTemplate.buildTemplateMobileWildcard();
+        final NetworkStats stats = getUidNetworkStatsSinceBoot(template, withFgbg);
+        if (stats != null) {
+            addNetworkStats(atomTag, pulledData, stats, withFgbg);
+            return StatsManager.PULL_SUCCESS;
+        }
+        return StatsManager.PULL_SKIP;
+    }
+
+    private void addNetworkStats(int atomTag, @NonNull List<StatsEvent> ret,
+            @NonNull NetworkStats stats, boolean withFgbg) {
         int size = stats.size();
-        NetworkStats.Entry entry = new NetworkStats.Entry(); // For recycling
+        final NetworkStats.Entry entry = new NetworkStats.Entry(); // For recycling
         for (int j = 0; j < size; j++) {
             stats.getValues(j, entry);
             StatsEvent.Builder e = StatsEvent.newBuilder();
-            e.setAtomId(tag);
+            e.setAtomId(atomTag);
             e.writeInt(entry.uid);
-            if (withFGBG) {
+            if (withFgbg) {
                 e.writeInt(entry.set);
             }
             e.writeLong(entry.rxBytes);
@@ -744,11 +755,27 @@
         }
     }
 
+    @Nullable private NetworkStats getUidNetworkStatsSinceBoot(
+            @NonNull NetworkTemplate template, boolean withFgbg) {
+
+        final long elapsedMillisSinceBoot = SystemClock.elapsedRealtime();
+        final long currentTimeInMillis = MICROSECONDS.toMillis(SystemClock.currentTimeMicro());
+        try {
+            final NetworkStats stats = getNetworkStatsSession().getSummaryForAllUid(template,
+                    currentTimeInMillis - elapsedMillisSinceBoot, currentTimeInMillis, false);
+            return withFgbg ? rollupNetworkStatsByFgbg(stats) : stats.groupedByUid();
+        } catch (RemoteException | NullPointerException e) {
+            Slog.e(TAG, "Pulling netstats for " + template
+                    + " fgbg= " + withFgbg + " bytes has error", e);
+        }
+        return null;
+    }
+
     /**
      * Allows rollups per UID but keeping the set (foreground/background) slicing.
      * Adapted from groupedByUid in frameworks/base/core/java/android/net/NetworkStats.java
      */
-    private NetworkStats rollupNetworkStatsByFGBG(NetworkStats stats) {
+    @NonNull private NetworkStats rollupNetworkStatsByFgbg(@NonNull NetworkStats stats) {
         final NetworkStats ret = new NetworkStats(stats.getElapsedRealtime(), 1);
 
         final NetworkStats.Entry entry = new NetworkStats.Entry();
@@ -758,7 +785,7 @@
         entry.roaming = NetworkStats.ROAMING_ALL;
 
         int size = stats.size();
-        NetworkStats.Entry recycle = new NetworkStats.Entry(); // Used for retrieving values
+        final NetworkStats.Entry recycle = new NetworkStats.Entry(); // Used for retrieving values
         for (int i = 0; i < size; i++) {
             stats.getValues(i, recycle);
 
@@ -790,31 +817,6 @@
         );
     }
 
-    int pullWifiBytesTransferBackground(int atomTag, List<StatsEvent> pulledData) {
-        INetworkStatsService networkStatsService = getINetworkStatsService();
-        if (networkStatsService == null) {
-            Slog.e(TAG, "NetworkStats Service is not available!");
-            return StatsManager.PULL_SKIP;
-        }
-        long token = Binder.clearCallingIdentity();
-        try {
-            BatteryStatsInternal bs = LocalServices.getService(BatteryStatsInternal.class);
-            String[] ifaces = bs.getWifiIfaces();
-            if (ifaces.length == 0) {
-                return StatsManager.PULL_SKIP;
-            }
-            NetworkStats stats = rollupNetworkStatsByFGBG(
-                    networkStatsService.getDetailedUidStats(ifaces));
-            addNetworkStats(atomTag, pulledData, stats, true);
-        } catch (RemoteException e) {
-            Slog.e(TAG, "Pulling netstats for wifi bytes w/ fg/bg has error", e);
-            return StatsManager.PULL_SKIP;
-        } finally {
-            Binder.restoreCallingIdentity(token);
-        }
-        return StatsManager.PULL_SUCCESS;
-    }
-
     private void registerMobileBytesTransfer() {
         int tagId = FrameworkStatsLog.MOBILE_BYTES_TRANSFER;
         PullAtomMetadata metadata = new PullAtomMetadata.Builder()
@@ -828,31 +830,6 @@
         );
     }
 
-    int pullMobileBytesTransfer(int atomTag, List<StatsEvent> pulledData) {
-        INetworkStatsService networkStatsService = getINetworkStatsService();
-        if (networkStatsService == null) {
-            Slog.e(TAG, "NetworkStats Service is not available!");
-            return StatsManager.PULL_SKIP;
-        }
-        long token = Binder.clearCallingIdentity();
-        try {
-            BatteryStatsInternal bs = LocalServices.getService(BatteryStatsInternal.class);
-            String[] ifaces = bs.getMobileIfaces();
-            if (ifaces.length == 0) {
-                return StatsManager.PULL_SKIP;
-            }
-            // Combine all the metrics per Uid into one record.
-            NetworkStats stats = networkStatsService.getDetailedUidStats(ifaces).groupedByUid();
-            addNetworkStats(atomTag, pulledData, stats, false);
-        } catch (RemoteException e) {
-            Slog.e(TAG, "Pulling netstats for mobile bytes has error", e);
-            return StatsManager.PULL_SKIP;
-        } finally {
-            Binder.restoreCallingIdentity(token);
-        }
-        return StatsManager.PULL_SUCCESS;
-    }
-
     private void registerMobileBytesTransferBackground() {
         int tagId = FrameworkStatsLog.MOBILE_BYTES_TRANSFER_BY_FG_BG;
         PullAtomMetadata metadata = new PullAtomMetadata.Builder()
@@ -866,31 +843,6 @@
         );
     }
 
-    int pullMobileBytesTransferBackground(int atomTag, List<StatsEvent> pulledData) {
-        INetworkStatsService networkStatsService = getINetworkStatsService();
-        if (networkStatsService == null) {
-            Slog.e(TAG, "NetworkStats Service is not available!");
-            return StatsManager.PULL_SKIP;
-        }
-        long token = Binder.clearCallingIdentity();
-        try {
-            BatteryStatsInternal bs = LocalServices.getService(BatteryStatsInternal.class);
-            String[] ifaces = bs.getMobileIfaces();
-            if (ifaces.length == 0) {
-                return StatsManager.PULL_SKIP;
-            }
-            NetworkStats stats = rollupNetworkStatsByFGBG(
-                    networkStatsService.getDetailedUidStats(ifaces));
-            addNetworkStats(atomTag, pulledData, stats, true);
-        } catch (RemoteException e) {
-            Slog.e(TAG, "Pulling netstats for mobile bytes w/ fg/bg has error", e);
-            return StatsManager.PULL_SKIP;
-        } finally {
-            Binder.restoreCallingIdentity(token);
-        }
-        return StatsManager.PULL_SUCCESS;
-    }
-
     private void registerBluetoothBytesTransfer() {
         int tagId = FrameworkStatsLog.BLUETOOTH_BYTES_TRANSFER;
         PullAtomMetadata metadata = new PullAtomMetadata.Builder()
@@ -1292,7 +1244,7 @@
     int pullSystemUptime(int atomTag, List<StatsEvent> pulledData) {
         StatsEvent e = StatsEvent.newBuilder()
                 .setAtomId(atomTag)
-                .writeLong(SystemClock.elapsedRealtime())
+                .writeLong(SystemClock.uptimeMillis())
                 .build();
         pulledData.add(e);
         return StatsManager.PULL_SUCCESS;
@@ -2901,7 +2853,7 @@
                         e.setAtomId(atomTag);
                         e.writeInt(uid);
                         e.writeString(packageOps.getPackageName());
-                        e.writeInt(op.getLoggingOpCode());
+                        e.writeInt(op.getOpCode());
                         e.writeLong(op.getForegroundAccessCount(OP_FLAGS_PULLED));
                         e.writeLong(op.getBackgroundAccessCount(OP_FLAGS_PULLED));
                         e.writeLong(op.getForegroundRejectCount(OP_FLAGS_PULLED));
@@ -3044,7 +2996,7 @@
         if (atomTag == FrameworkStatsLog.ATTRIBUTED_APP_OPS) {
             e.writeString(attributionTag);
         }
-        e.writeInt(op.getLoggingOpCode());
+        e.writeInt(op.getOpCode());
         e.writeLong(op.getForegroundAccessCount(OP_FLAGS_PULLED));
         e.writeLong(op.getBackgroundAccessCount(OP_FLAGS_PULLED));
         e.writeLong(op.getForegroundRejectCount(OP_FLAGS_PULLED));
diff --git a/services/core/java/com/android/server/storage/StorageSessionController.java b/services/core/java/com/android/server/storage/StorageSessionController.java
index baef5d6..0fd77b9c 100644
--- a/services/core/java/com/android/server/storage/StorageSessionController.java
+++ b/services/core/java/com/android/server/storage/StorageSessionController.java
@@ -106,6 +106,38 @@
     }
 
     /**
+     * Notifies the Storage Service that volume state for {@code vol} is changed.
+     * A session may already be created for this volume if it is mounted before or the volume state
+     * has changed to mounted.
+     *
+     * Does nothing if {@link #shouldHandle} is {@code false}
+     *
+     * Blocks until the Storage Service processes/scans the volume or fails in doing so.
+     *
+     * @throws ExternalStorageServiceException if it fails to connect to ExternalStorageService
+     */
+    public void notifyVolumeStateChanged(VolumeInfo vol) throws ExternalStorageServiceException {
+        if (!shouldHandle(vol)) {
+            return;
+        }
+        String sessionId = vol.getId();
+        int userId = vol.getMountUserId();
+
+        StorageUserConnection connection = null;
+        synchronized (mLock) {
+            connection = mConnections.get(userId);
+            if (connection != null) {
+                Slog.i(TAG, "Notifying volume state changed for session with id: " + sessionId);
+                connection.notifyVolumeStateChanged(sessionId,
+                        vol.buildStorageVolume(mContext, userId, false));
+            } else {
+                Slog.w(TAG, "No available storage user connection for userId : " + userId);
+            }
+        }
+    }
+
+
+    /**
      * Removes and returns the {@link StorageUserConnection} for {@code vol}.
      *
      * Does nothing if {@link #shouldHandle} is {@code false}
diff --git a/services/core/java/com/android/server/storage/StorageUserConnection.java b/services/core/java/com/android/server/storage/StorageUserConnection.java
index dd18f4e..c207a7b 100644
--- a/services/core/java/com/android/server/storage/StorageUserConnection.java
+++ b/services/core/java/com/android/server/storage/StorageUserConnection.java
@@ -35,6 +35,7 @@
 import android.os.RemoteCallback;
 import android.os.UserHandle;
 import android.os.storage.StorageManagerInternal;
+import android.os.storage.StorageVolume;
 import android.service.storage.ExternalStorageService;
 import android.service.storage.IExternalStorageService;
 import android.text.TextUtils;
@@ -100,6 +101,23 @@
     }
 
     /**
+     * Notifies Storage Service about volume state changed.
+     *
+     * @throws ExternalStorageServiceException if failed to notify the Storage Service that
+     * {@code StorageVolume} is changed
+     */
+    public void notifyVolumeStateChanged(String sessionId, StorageVolume vol)
+            throws ExternalStorageServiceException {
+        Objects.requireNonNull(sessionId);
+        Objects.requireNonNull(vol);
+
+        prepareRemote();
+        synchronized (mLock) {
+            mActiveConnection.notifyVolumeStateChangedLocked(sessionId, vol);
+        }
+    }
+
+    /**
      * Removes a session without ending it or waiting for exit.
      *
      * This should only be used if the session has certainly been ended because the volume was
@@ -287,6 +305,20 @@
             }
         }
 
+        public void notifyVolumeStateChangedLocked(String sessionId, StorageVolume vol) throws
+                ExternalStorageServiceException {
+            CountDownLatch latch = new CountDownLatch(1);
+            try {
+                mRemote.notifyVolumeStateChanged(sessionId, vol, new RemoteCallback(
+                        result -> setResultLocked(latch, result)));
+                waitForLatch(latch, "notify_volume_state_changed " + vol);
+                maybeThrowExceptionLocked();
+            } catch (Exception e) {
+                throw new ExternalStorageServiceException("Failed to notify volume state changed "
+                        + "for vol : " + vol, e);
+            }
+        }
+
         private void setResultLocked(CountDownLatch latch, Bundle result) {
             mLastException = result.getParcelable(EXTRA_ERROR);
             latch.countDown();
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java
index 57b6ec9..fc52584 100644
--- a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java
@@ -25,6 +25,8 @@
 import android.content.Context;
 import android.database.ContentObserver;
 import android.os.Handler;
+import android.os.ResultReceiver;
+import android.os.ShellCallback;
 import android.provider.Settings;
 
 import com.android.internal.annotations.VisibleForTesting;
@@ -133,5 +135,13 @@
                 android.Manifest.permission.SUGGEST_MANUAL_TIME_AND_ZONE,
                 "suggest manual time and time zone");
     }
+
+    @Override
+    public void onShellCommand(FileDescriptor in, FileDescriptor out,
+            FileDescriptor err, String[] args, ShellCallback callback,
+            ResultReceiver resultReceiver) {
+        (new TimeZoneDetectorShellCommand(this)).exec(
+                this, in, out, err, args, callback, resultReceiver);
+    }
 }
 
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorShellCommand.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorShellCommand.java
new file mode 100644
index 0000000..8ff2a1b
--- /dev/null
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorShellCommand.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.timezonedetector;
+
+import android.app.timezonedetector.ManualTimeZoneSuggestion;
+import android.app.timezonedetector.TelephonyTimeZoneSuggestion;
+import android.os.ShellCommand;
+
+import java.io.PrintWriter;
+
+/** Implemented the shell command interface for {@link TimeZoneDetectorService}. */
+class TimeZoneDetectorShellCommand extends ShellCommand {
+
+    private final TimeZoneDetectorService mInterface;
+
+    TimeZoneDetectorShellCommand(TimeZoneDetectorService timeZoneDetectorService) {
+        mInterface = timeZoneDetectorService;
+    }
+
+    @Override
+    public int onCommand(String cmd) {
+        if (cmd == null) {
+            return handleDefaultCommands(cmd);
+        }
+
+        switch (cmd) {
+            case "suggest_telephony_time_zone":
+                return runSuggestTelephonyTimeZone();
+            case "suggest_manual_time_zone":
+                return runSuggestManualTimeZone();
+            default: {
+                return handleDefaultCommands(cmd);
+            }
+        }
+    }
+
+    private int runSuggestTelephonyTimeZone() {
+        final PrintWriter pw = getOutPrintWriter();
+        try {
+            TelephonyTimeZoneSuggestion suggestion = null;
+            String opt;
+            while ((opt = getNextArg()) != null) {
+                if ("--suggestion".equals(opt)) {
+                    suggestion = TelephonyTimeZoneSuggestion.parseCommandLineArg(this);
+                } else {
+                    pw.println("Error: Unknown option: " + opt);
+                    return 1;
+                }
+            }
+            if (suggestion == null) {
+                pw.println("Error: suggestion not specified");
+                return 1;
+            }
+            mInterface.suggestTelephonyTimeZone(suggestion);
+            pw.println("Suggestion " + suggestion + " injected.");
+            return 0;
+        } catch (RuntimeException e) {
+            pw.println(e.toString());
+            return 1;
+        }
+    }
+
+    private int runSuggestManualTimeZone() {
+        final PrintWriter pw = getOutPrintWriter();
+        try {
+            ManualTimeZoneSuggestion suggestion = null;
+            String opt;
+            while ((opt = getNextArg()) != null) {
+                if ("--suggestion".equals(opt)) {
+                    suggestion = ManualTimeZoneSuggestion.parseCommandLineArg(this);
+                } else {
+                    pw.println("Error: Unknown option: " + opt);
+                    return 1;
+                }
+            }
+            if (suggestion == null) {
+                pw.println("Error: suggestion not specified");
+                return 1;
+            }
+            mInterface.suggestManualTimeZone(suggestion);
+            pw.println("Suggestion " + suggestion + " injected.");
+            return 0;
+        } catch (RuntimeException e) {
+            pw.println(e.toString());
+            return 1;
+        }
+    }
+
+    @Override
+    public void onHelp() {
+        final PrintWriter pw = getOutPrintWriter();
+        pw.println("Time Zone Detector (time_zone_detector) commands:");
+        pw.println("  help");
+        pw.println("    Print this help text.");
+        pw.println("  suggest_telephony_time_zone");
+        pw.println("    --suggestion <telephony suggestion opts>");
+        pw.println("  suggest_manual_time_zone");
+        pw.println("    --suggestion <manual suggestion opts>");
+        pw.println();
+        ManualTimeZoneSuggestion.printCommandLineOpts(pw);
+        pw.println();
+        TelephonyTimeZoneSuggestion.printCommandLineOpts(pw);
+        pw.println();
+    }
+}
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategyImpl.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategyImpl.java
index cc33fb0..d318b1a 100644
--- a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategyImpl.java
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategyImpl.java
@@ -276,18 +276,6 @@
             return;
         }
 
-        // Special case handling for uninitialized devices. This should only happen once.
-        String newZoneId = bestTelephonySuggestion.suggestion.getZoneId();
-        if (newZoneId != null && !mCallback.isDeviceTimeZoneInitialized()) {
-            String cause = "Device has no time zone set. Attempting to set the device to the best"
-                    + " available suggestion."
-                    + " bestTelephonySuggestion=" + bestTelephonySuggestion
-                    + ", detectionReason=" + detectionReason;
-            Slog.i(LOG_TAG, cause);
-            setDeviceTimeZoneIfRequired(ORIGIN_TELEPHONY, newZoneId, cause);
-            return;
-        }
-
         boolean suggestionGoodEnough =
                 bestTelephonySuggestion.score >= TELEPHONY_SCORE_USAGE_THRESHOLD;
         if (!suggestionGoodEnough) {
@@ -301,6 +289,7 @@
 
         // Paranoia: Every suggestion above the SCORE_USAGE_THRESHOLD should have a non-null time
         // zone ID.
+        String newZoneId = bestTelephonySuggestion.suggestion.getZoneId();
         if (newZoneId == null) {
             Slog.w(LOG_TAG, "Empty zone suggestion scored higher than expected. This is an error:"
                     + " bestTelephonySuggestion=" + bestTelephonySuggestion
diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java
index 25585b3..6dded00 100644
--- a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java
+++ b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java
@@ -100,6 +100,7 @@
                 @NonNull IResourcesReclaimListener listener, @NonNull int[] clientId)
                 throws RemoteException {
             enforceTrmAccessPermission("registerClientProfile");
+            enforceTunerAccessPermission("registerClientProfile");
             if (profile == null) {
                 throw new RemoteException("ResourceClientProfile can't be null");
             }
@@ -652,16 +653,16 @@
 
     private void enforceTrmAccessPermission(String apiName) {
         getContext().enforceCallingPermission("android.permission.TUNER_RESOURCE_ACCESS",
-                TAG + ": " + "apiName");
+                TAG + ": " + apiName);
     }
 
     private void enforceTunerAccessPermission(String apiName) {
-        getContext().enforceCallingPermission("android.Manifest.permission.ACCESS_TV_TUNER",
-                TAG + ": " + "apiName");
+        getContext().enforceCallingPermission("android.permission.ACCESS_TV_TUNER",
+                TAG + ": " + apiName);
     }
 
     private void enforceDescramblerAccessPermission(String apiName) {
-        getContext().enforceCallingPermission("android.Manifest.permission.ACCESS_TV_DESCRAMBLER",
-                TAG + ": " + "apiName");
+        getContext().enforceCallingPermission("android.permission.ACCESS_TV_DESCRAMBLER",
+                TAG + ": " + apiName);
     }
 }
diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
index a298b89..ddf166e 100644
--- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
+++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
@@ -16,6 +16,7 @@
 
 package com.android.server.wallpaper;
 
+import static android.app.WallpaperManager.COMMAND_REAPPLY;
 import static android.app.WallpaperManager.FLAG_LOCK;
 import static android.app.WallpaperManager.FLAG_SYSTEM;
 import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AUTO;
@@ -1070,7 +1071,8 @@
         /**
          * Collect needed info for a display.
          */
-        private final class DisplayConnector {
+        @VisibleForTesting
+        final class DisplayConnector {
             final int mDisplayId;
             final Binder mToken = new Binder();
             IWallpaperEngine mEngine;
@@ -1213,7 +1215,8 @@
             }
         }
 
-        private boolean isUsableDisplay(Display display) {
+        @VisibleForTesting
+        boolean isUsableDisplay(Display display) {
             if (display == null || !display.hasAccess(mClientUid)) {
                 return false;
             }
@@ -2438,9 +2441,8 @@
              * the caller here writes new bitmap data.
              */
             if (which == FLAG_SYSTEM && mLockWallpaperMap.get(userId) == null) {
-                if (DEBUG) {
-                    Slog.i(TAG, "Migrating system->lock to preserve");
-                }
+                Slog.i(TAG, "Migrating current wallpaper to be lock-only before"
+                        + "updating system wallpaper");
                 migrateSystemToLockWallpaperLocked(userId);
             }
 
@@ -2508,6 +2510,8 @@
             ParcelFileDescriptor fd = ParcelFileDescriptor.open(wallpaper.wallpaperFile,
                     MODE_CREATE|MODE_READ_WRITE|MODE_TRUNCATE);
             if (!SELinux.restorecon(wallpaper.wallpaperFile)) {
+                Slog.w(TAG, "restorecon failed for wallpaper file: " +
+                        wallpaper.wallpaperFile.getPath());
                 return null;
             }
             wallpaper.name = name;
@@ -2517,10 +2521,8 @@
             }
             // Nullify field to require new computation
             wallpaper.primaryColors = null;
-            if (DEBUG) {
-                Slog.v(TAG, "updateWallpaperBitmapLocked() : id=" + wallpaper.wallpaperId
-                        + " name=" + name + " file=" + wallpaper.wallpaperFile.getName());
-            }
+            Slog.v(TAG, "updateWallpaperBitmapLocked() : id=" + wallpaper.wallpaperId
+                    + " name=" + name + " file=" + wallpaper.wallpaperFile.getName());
             return fd;
         } catch (FileNotFoundException e) {
             Slog.w(TAG, "Error setting wallpaper", e);
@@ -2553,7 +2555,7 @@
         WallpaperData wallpaper;
 
         synchronized (mLock) {
-            if (DEBUG) Slog.v(TAG, "setWallpaperComponent name=" + name);
+            Slog.v(TAG, "setWallpaperComponent name=" + name);
             wallpaper = mWallpaperMap.get(userId);
             if (wallpaper == null) {
                 throw new IllegalStateException("Wallpaper not yet initialized for user " + userId);
@@ -2568,6 +2570,8 @@
                 if (mLockWallpaperMap.get(userId) == null) {
                     // We're using the static imagery and there is no lock-specific image in place,
                     // therefore it's a shared system+lock image that we need to migrate.
+                    Slog.i(TAG, "Migrating current wallpaper to be lock-only before"
+                            + "updating system wallpaper");
                     migrateSystemToLockWallpaperLocked(userId);
                 }
             }
@@ -2583,6 +2587,19 @@
                 if (bindWallpaperComponentLocked(name, false, true, wallpaper, null)) {
                     if (!same) {
                         wallpaper.primaryColors = null;
+                    } else {
+                        if (wallpaper.connection != null) {
+                            wallpaper.connection.forEachDisplayConnector(displayConnector -> {
+                                try {
+                                    if (displayConnector.mEngine != null) {
+                                        displayConnector.mEngine.dispatchWallpaperCommand(
+                                                COMMAND_REAPPLY, 0, 0, 0, null);
+                                    }
+                                } catch (RemoteException e) {
+                                    Slog.w(TAG, "Error sending apply message to wallpaper", e);
+                                }
+                            });
+                        }
                     }
                     wallpaper.wallpaperId = makeWallpaperIdLocked();
                     notifyCallbacksLocked(wallpaper);
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index 00c6f3a..29f7d52 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -2085,7 +2085,7 @@
 
     /** Returns true if this activity is opaque and fills the entire space of this task. */
     boolean occludesParent() {
-        return mOccludesParent;
+        return !finishing && mOccludesParent;
     }
 
     boolean setOccludesParent(boolean occludesParent) {
@@ -4618,6 +4618,9 @@
             } catch (Exception e) {
                 Slog.w(TAG, "Exception thrown sending start: " + intent.getComponent(), e);
             }
+            // The activity may be waiting for stop, but that is no longer appropriate if we are
+            // starting the activity again
+            mStackSupervisor.mStoppingActivities.remove(this);
         }
         return false;
     }
@@ -4667,7 +4670,7 @@
      * and {@link #shouldPauseActivity(ActivityRecord)}.
      */
     private boolean shouldStartActivity() {
-        return mVisibleRequested && isState(STOPPED);
+        return mVisibleRequested && (isState(STOPPED) || isState(STOPPING));
     }
 
     /**
@@ -5198,7 +5201,7 @@
         }
         finishLaunchTickingLocked();
         if (task != null) {
-            task.hasBeenVisible = true;
+            task.setHasBeenVisible(true);
         }
     }
 
@@ -7677,12 +7680,6 @@
             return;
         }
         win.getAnimationFrames(outFrame, outInsets, outStableInsets, outSurfaceInsets);
-        if (isFixedRotationTransforming()) {
-            // This activity has been rotated but the display is still in old rotation. Because the
-            // animation applies in display space coordinates, the rotated animation frames need to
-            // be unrotated to avoid being cropped.
-            unrotateAnimationFrames(outFrame, outInsets, outStableInsets, outSurfaceInsets);
-        }
     }
 
     void setPictureInPictureParams(PictureInPictureParams p) {
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java
index e8bfe8e..9089859 100644
--- a/services/core/java/com/android/server/wm/ActivityStack.java
+++ b/services/core/java/com/android/server/wm/ActivityStack.java
@@ -36,7 +36,6 @@
 import static android.content.pm.ActivityInfo.CONFIG_SCREEN_LAYOUT;
 import static android.content.pm.ActivityInfo.FLAG_RESUME_WHILE_PAUSING;
 import static android.content.pm.ActivityInfo.FLAG_SHOW_FOR_ALL_USERS;
-import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSET;
 import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.Display.FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD;
@@ -303,9 +302,6 @@
 
     private static final int TRANSLUCENT_TIMEOUT_MSG = FIRST_ACTIVITY_STACK_MSG + 1;
 
-    // TODO(task-hierarchy): remove when tiles can be actual parents
-    TaskTile mTile = null;
-
     private final Handler mHandler;
 
     private class ActivityStackHandler extends Handler {
@@ -551,10 +547,10 @@
     }
 
     ActivityStack(ActivityTaskManagerService atmService, int id, int activityType,
-            ActivityInfo info, Intent intent) {
+            ActivityInfo info, Intent intent, boolean createdByOrganizer) {
         this(atmService, id, info, intent, null /*voiceSession*/, null /*voiceInteractor*/,
                 null /*taskDescription*/, null /*stack*/);
-
+        mCreatedByOrganizer = createdByOrganizer;
         setActivityType(activityType);
     }
 
@@ -601,20 +597,11 @@
     }
 
     @Override
-    public void resolveTileOverrideConfiguration(Configuration newParentConfig) {
-        super.resolveTileOverrideConfiguration(newParentConfig);
-        if (mTile != null) {
-            // If this is a virtual child of a tile, simulate the parent-child relationship
-            mTile.updateResolvedConfig(getResolvedOverrideConfiguration());
-        }
-    }
-
-    @Override
     public void onConfigurationChanged(Configuration newParentConfig) {
         // Calling Task#onConfigurationChanged() for leaf task since the ops in this method are
         // particularly for ActivityStack, like preventing bounds changes when inheriting certain
         // windowing mode.
-        if (!isRootTask() || this instanceof TaskTile) {
+        if (!isRootTask()) {
             super.onConfigurationChanged(newParentConfig);
             return;
         }
@@ -689,6 +676,9 @@
 
     @Override
     public void setWindowingMode(int windowingMode) {
+        // Reset the cached result of toString()
+        stringName = null;
+
         // Calling Task#setWindowingMode() for leaf task since this is the a specialization of
         // {@link #setWindowingMode(int)} for ActivityStack.
         if (!isRootTask()) {
@@ -742,7 +732,6 @@
         final int currentOverrideMode = getRequestedOverrideWindowingMode();
         final DisplayContent display = getDisplay();
         final Task topTask = getTopMostTask();
-        final ActivityStack splitScreenStack = display.getRootSplitScreenPrimaryTask();
         int windowingMode = preferredWindowingMode;
         if (preferredWindowingMode == WINDOWING_MODE_UNDEFINED
                 && isTransientWindowingMode(currentMode)) {
@@ -756,14 +745,14 @@
             windowingMode = display.validateWindowingMode(windowingMode,
                     null /* ActivityRecord */, topTask, getActivityType());
         }
-        if (splitScreenStack == this
+        if (display.getRootSplitScreenPrimaryTask() == this
                 && windowingMode == WINDOWING_MODE_SPLIT_SCREEN_SECONDARY) {
             // Resolution to split-screen secondary for the primary split-screen stack means
             // we want to leave split-screen mode.
             windowingMode = mRestoreOverrideWindowingMode;
         }
 
-        final boolean alreadyInSplitScreenMode = display.hasSplitScreenPrimaryTask();
+        final boolean alreadyInSplitScreenMode = display.isSplitScreenModeActivated();
 
         // Don't send non-resizeable notifications if the windowing mode changed was a side effect
         // of us entering split-screen mode.
@@ -831,7 +820,7 @@
                 return;
             }
 
-            if (windowingMode == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY && splitScreenStack != null) {
+            if (windowingMode == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY && alreadyInSplitScreenMode) {
                 // We already have a split-screen stack in this display, so just move the tasks over.
                 // TODO: Figure-out how to do all the stuff in
                 // AMS.setTaskWindowingModeSplitScreenPrimary
@@ -1063,7 +1052,7 @@
         final DisplayContent display = getDisplay();
 
         if (inSplitScreenSecondaryWindowingMode()) {
-            // If the stack is in split-screen seconardy mode, we need to make sure we move the
+            // If the stack is in split-screen secondary mode, we need to make sure we move the
             // primary split-screen stack forward in the case it is currently behind a fullscreen
             // stack so both halves of the split-screen appear on-top and the fullscreen stack isn't
             // cutting between them.
@@ -1085,12 +1074,13 @@
             display.moveHomeStackToFront(reason + " returnToHome");
         }
 
-        final boolean movingTask = task != null;
-        display.positionStackAtTop(this, !movingTask /* includingParents */, reason);
-        if (movingTask) {
-            // This also moves the entire hierarchy branch to top, including parents
-            positionChildAtTop(task);
+        if (isRootTask()) {
+            display.positionStackAtTop(this, false /* includingParents */, reason);
         }
+        if (task == null) {
+            task = this;
+        }
+        task.getParent().positionChildAt(POSITION_TOP, task, true /* includingParents */);
     }
 
     /**
@@ -1116,12 +1106,6 @@
         }
     }
 
-    @Override
-    boolean isFocusable() {
-        // Special check for tile which isn't really in the hierarchy
-        return mTile != null ? mTile.isFocusable() : super.isFocusable();
-    }
-
     boolean isTopActivityFocusable() {
         final ActivityRecord r = topRunningActivity();
         return r != null ? r.isFocusable()
@@ -2358,8 +2342,7 @@
         if (!newTask && isOrhasTask) {
             // Starting activity cannot be occluding activity, otherwise starting window could be
             // remove immediately without transferring to starting activity.
-            final ActivityRecord occludingActivity = getActivity(
-                    (ar) -> !ar.finishing && ar.occludesParent(), true, r);
+            final ActivityRecord occludingActivity = getOccludingActivityAbove(r);
             if (occludingActivity != null) {
                 // Here it is!  Now, if this is not yet visible (occluded by another task) to the
                 // user, then just add it without starting; it will get started when the user
@@ -2588,6 +2571,13 @@
         if (r == null || r.app != app) {
             return null;
         }
+        if (r.isActivityTypeHome() && mAtmService.mHomeProcess == app) {
+            // Home activities should not be force-finished as we have nothing else to go
+            // back to. AppErrors will get to it after two crashes in MIN_CRASH_INTERVAL.
+            Slog.w(TAG, "  Not force finishing home activity "
+                    + r.intent.getComponent().flattenToShortString());
+            return null;
+        }
         Slog.w(TAG, "  Force finishing activity "
                 + r.intent.getComponent().flattenToShortString());
         Task finishedTask = r.getTask();
@@ -3078,6 +3068,14 @@
         task.setOverrideDisplayedBounds(bounds == null || bounds.isEmpty() ? null : bounds);
     }
 
+    /**
+     * Returns the top-most activity that occludes the given one, or @{code null} if none.
+     */
+    @Nullable
+    private ActivityRecord getOccludingActivityAbove(ActivityRecord activity) {
+        return getActivity((ar) -> ar.occludesParent(), true /* traverseTopToBottom */, activity);
+    }
+
     boolean willActivityBeVisible(IBinder token) {
         final ActivityRecord r = ActivityRecord.forTokenLocked(token);
         if (r == null) {
@@ -3085,9 +3083,7 @@
         }
 
         // See if there is an occluding activity on-top of this one.
-        final ActivityRecord occludingActivity = getActivity((ar) ->
-                ar.occludesParent() && !ar.finishing,
-                r, false /*includeBoundary*/, true /*traverseTopToBottom*/);
+        final ActivityRecord occludingActivity = getOccludingActivityAbove(r);
         if (occludingActivity != null) return false;
 
         if (r.finishing) Slog.e(TAG, "willActivityBeVisible: Returning false,"
@@ -3542,6 +3538,10 @@
 
     @Override
     void onChildPositionChanged(WindowContainer child) {
+        if (isOrganized()) {
+            mAtmService.mTaskOrganizerController.dispatchTaskInfoChanged(this, false /* force */);
+        }
+
         if (!mChildren.contains(child)) {
             return;
         }
@@ -3572,11 +3572,6 @@
         if (oldDisplay != null && oldDisplay.isRemoving()) {
             postReparent();
         }
-        if (mTile != null && getSurfaceControl() != null) {
-            // by now, the TaskStack should already have been reparented, so we can reparent its
-            // surface here
-            reparentSurfaceControl(getPendingTransaction(), mTile.getSurfaceControl());
-        }
     }
 
     void reparent(DisplayContent newParent, boolean onTop) {
@@ -3614,16 +3609,7 @@
 
     @Override
     void getRelativeDisplayedPosition(Point outPos) {
-        // check for tile which is "virtually" a parent.
-        if (mTile != null) {
-            final Rect dispBounds = getDisplayedBounds();
-            outPos.set(dispBounds.left, dispBounds.top);
-            final Rect parentBounds = mTile.getBounds();
-            outPos.offset(-parentBounds.left, -parentBounds.top);
-        } else {
-            super.getRelativeDisplayedPosition(outPos);
-        }
-
+        super.getRelativeDisplayedPosition(outPos);
         final int outset = getStackOutset();
         outPos.x -= outset;
         outPos.y -= outset;
@@ -3633,16 +3619,6 @@
         if (mSurfaceControl == null) {
             return;
         }
-        if (mTile != null) {
-            // Tile controls crop, so the app needs to be able to draw its background outside of
-            // the stack bounds for when the tile crop gets bigger than the stack.
-            if (mLastSurfaceSize.equals(0, 0)) {
-                return;
-            }
-            transaction.setWindowCrop(mSurfaceControl, null);
-            mLastSurfaceSize.set(0, 0);
-            return;
-        }
 
         final Rect stackBounds = getDisplayedBounds();
         int width = stackBounds.width();
@@ -3666,9 +3642,6 @@
 
     @Override
     void onDisplayChanged(DisplayContent dc) {
-        if (mTile != null && dc != mTile.getDisplay()) {
-            mTile.removeChild(this);
-        }
         super.onDisplayChanged(dc);
         if (isRootTask()) {
             updateSurfaceBounds();
@@ -3781,20 +3754,6 @@
         return super.checkCompleteDeferredRemoval();
     }
 
-    @Override
-    int getOrientation() {
-        return (canSpecifyOrientation()) ? super.getOrientation() : SCREEN_ORIENTATION_UNSET;
-    }
-
-    private boolean canSpecifyOrientation() {
-        final int windowingMode = getWindowingMode();
-        final int activityType = getActivityType();
-        return windowingMode == WINDOWING_MODE_FULLSCREEN
-                || activityType == ACTIVITY_TYPE_HOME
-                || activityType == ACTIVITY_TYPE_RECENTS
-                || activityType == ACTIVITY_TYPE_ASSISTANT;
-    }
-
     public DisplayInfo getDisplayInfo() {
         return mDisplayContent.getDisplayInfo();
     }
@@ -3825,49 +3784,6 @@
         return shouldSleepActivities() || mAtmService.mShuttingDown;
     }
 
-    TaskTile getTile() {
-        return mTile;
-    }
-
-    /**
-     * Don't call this directly. instead use {@link TaskTile#addChild} or
-     * {@link TaskTile#removeChild}.
-     */
-    void setTile(TaskTile tile) {
-        TaskTile origTile = mTile;
-        mTile = tile;
-        final ConfigurationContainer parent = getParent();
-        if (parent != null) {
-            onConfigurationChanged(parent.getConfiguration());
-        }
-
-        // Reparent to tile surface or back to original parent
-        if (getSurfaceControl() == null) {
-            return;
-        }
-        if (mTile != null) {
-            // don't use reparentSurfaceControl because we need to bypass taskorg check
-            mSurfaceAnimator.reparent(getPendingTransaction(), mTile.getSurfaceControl());
-        } else if (mTile == null && origTile != null) {
-            mSurfaceAnimator.reparent(getPendingTransaction(), getParentSurfaceControl());
-        }
-    }
-
-    @Override
-    public SurfaceControl getParentSurfaceControl() {
-        // Tile is a "virtual" parent, so we need to intercept the parent surface here
-        return mTile != null ? mTile.getSurfaceControl() : super.getParentSurfaceControl();
-    }
-
-    @Override
-    void removeImmediately() {
-        // TODO(task-hierarchy): remove this override when tiles are in hierarchy
-        if (mTile != null) {
-            mTile.removeChild(this);
-        }
-        super.removeImmediately();
-    }
-
     @Override
     public void dumpDebug(ProtoOutputStream proto, long fieldId,
             @WindowTraceLogLevel int logLevel) {
@@ -3912,7 +3828,7 @@
             proto.write(SURFACE_HEIGHT, mSurfaceControl.getHeight());
         }
 
-        proto.write(CREATED_BY_ORGANIZER, this instanceof TaskTile);
+        proto.write(CREATED_BY_ORGANIZER, mCreatedByOrganizer);
 
         proto.end(token);
     }
diff --git a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
index 57f357d..4652f49 100644
--- a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
@@ -423,6 +423,10 @@
 
             final ActivityStack toStack = mToDisplay.getOrCreateStack(
                     null, mTmpOptions, task, task.getActivityType(), mOnTop);
+            if (task == toStack) {
+                // The task was reused as the root task.
+                return;
+            }
 
             if (mOnTop) {
                 final boolean isTopTask = task == mTopTask;
@@ -1704,7 +1708,7 @@
                 mRootWindowContainer.getLaunchStack(null, aOptions, task, onTop);
         final WindowContainer parent = task.getParent();
 
-        if (parent == stack) {
+        if (parent == stack || task == stack) {
             // Nothing else to do since it is already restored in the right stack.
             return true;
         }
@@ -2237,7 +2241,7 @@
         final boolean isSecondaryDisplayPreferred =
                 (preferredDisplayId != DEFAULT_DISPLAY && preferredDisplayId != INVALID_DISPLAY);
         final boolean inSplitScreenMode = actualStack != null
-                && actualStack.getDisplay().hasSplitScreenPrimaryTask();
+                && actualStack.getDisplay().isSplitScreenModeActivated();
         if (((!inSplitScreenMode && preferredWindowingMode != WINDOWING_MODE_SPLIT_SCREEN_PRIMARY)
                 && !isSecondaryDisplayPreferred) || !task.isActivityTypeStandardOrUndefined()) {
             return;
@@ -2284,16 +2288,14 @@
         if (!task.supportsSplitScreenWindowingMode() || forceNonResizable) {
             // Dismiss docked stack. If task appeared to be in docked stack but is not resizable -
             // we need to move it to top of fullscreen stack, otherwise it will be covered.
-
-            final ActivityStack dockedStack =
-                    task.getStack().getDisplay().getRootSplitScreenPrimaryTask();
-            if (dockedStack != null) {
+            final DisplayContent display = task.getStack().getDisplay();
+            if (display.isSplitScreenModeActivated()) {
                 // Display a warning toast that we tried to put an app that doesn't support
                 // split-screen in split-screen.
                 mService.getTaskChangeNotificationController()
                         .notifyActivityDismissingDockedStack();
-                dockedStack.getDisplay().onSplitScreenModeDismissed();
-                dockedStack.getDisplay().ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS,
+                display.onSplitScreenModeDismissed();
+                display.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS,
                         true /* notifyClients */);
             }
             return;
@@ -2602,7 +2604,7 @@
                         "startActivityFromRecents: Task " + taskId + " not found.");
             } else if (windowingMode == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY
                     && task.getWindowingMode() != windowingMode) {
-                mService.moveTaskToSplitScreenPrimaryTile(task, true /* toTop */);
+                mService.moveTaskToSplitScreenPrimaryTask(task, true /* toTop */);
             }
 
             if (windowingMode != WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java
index c7a1391..da1c045 100644
--- a/services/core/java/com/android/server/wm/ActivityStarter.java
+++ b/services/core/java/com/android/server/wm/ActivityStarter.java
@@ -27,6 +27,7 @@
 import static android.app.ActivityManager.START_RETURN_LOCK_TASK_MODE_VIOLATION;
 import static android.app.ActivityManager.START_SUCCESS;
 import static android.app.ActivityManager.START_TASK_TO_FRONT;
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
 import static android.app.WaitResult.LAUNCH_STATE_COLD;
 import static android.app.WaitResult.LAUNCH_STATE_HOT;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
@@ -76,6 +77,7 @@
 import static com.android.server.wm.LaunchParamsController.LaunchParamsModifier.PHASE_BOUNDS;
 import static com.android.server.wm.LaunchParamsController.LaunchParamsModifier.PHASE_DISPLAY;
 import static com.android.server.wm.Task.REPARENT_MOVE_STACK_TO_FRONT;
+import static com.android.server.wm.WindowContainer.POSITION_TOP;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
@@ -167,6 +169,8 @@
 
     // The display to launch the activity onto, barring any strong reason to do otherwise.
     private int mPreferredDisplayId;
+    // The windowing mode to apply to the root task, if possible
+    private int mPreferredWindowingMode;
 
     private Task mInTask;
     @VisibleForTesting
@@ -538,6 +542,7 @@
         mStartFlags = starter.mStartFlags;
         mSourceRecord = starter.mSourceRecord;
         mPreferredDisplayId = starter.mPreferredDisplayId;
+        mPreferredWindowingMode = starter.mPreferredWindowingMode;
 
         mInTask = starter.mInTask;
         mAddingToTask = starter.mAddingToTask;
@@ -1493,8 +1498,6 @@
         setInitialState(r, options, inTask, doResume, startFlags, sourceRecord, voiceSession,
                 voiceInteractor, restrictedBgActivity);
 
-        final int preferredWindowingMode = mLaunchParams.mWindowingMode;
-
         computeLaunchingTaskFlags();
 
         computeSourceStack();
@@ -1563,7 +1566,15 @@
         }
 
         if (!mAvoidMoveToFront && mDoResume) {
-            mTargetStack.moveToFront("reuseOrNewTask");
+            mTargetStack.getStack().moveToFront("reuseOrNewTask", targetTask);
+            if (mOptions != null) {
+                if (mPreferredWindowingMode != WINDOWING_MODE_UNDEFINED) {
+                    mTargetStack.setWindowingMode(mPreferredWindowingMode);
+                }
+                if (mOptions.getTaskAlwaysOnTop()) {
+                    mTargetStack.setAlwaysOnTop(true);
+                }
+            }
         }
 
         mService.mUgmInternal.grantUriPermissionFromIntent(mCallingUid, mStartActivity.packageName,
@@ -1627,7 +1638,7 @@
         // Update the recent tasks list immediately when the activity starts
         mSupervisor.mRecentTasks.add(mStartActivity.getTask());
         mSupervisor.handleNonResizableTaskIfNeeded(mStartActivity.getTask(),
-                preferredWindowingMode, mPreferredDisplayId, mTargetStack);
+                mPreferredWindowingMode, mPreferredDisplayId, mTargetStack);
 
         return START_SUCCESS;
     }
@@ -1680,9 +1691,10 @@
 
         mSupervisor.getLaunchParamsController().calculate(targetTask, r.info.windowLayout, r,
                 sourceRecord, mOptions, PHASE_BOUNDS, mLaunchParams);
-        mPreferredDisplayId =
-                mLaunchParams.hasPreferredDisplay() ? mLaunchParams.mPreferredDisplayId
-                        : DEFAULT_DISPLAY;
+        mPreferredDisplayId = mLaunchParams.hasPreferredDisplay()
+                ? mLaunchParams.mPreferredDisplayId
+                : DEFAULT_DISPLAY;
+        mPreferredWindowingMode = mLaunchParams.mWindowingMode;
     }
 
     private int isAllowedToStart(ActivityRecord r, boolean newTask, Task targetTask) {
@@ -2006,6 +2018,7 @@
         mStartFlags = 0;
         mSourceRecord = null;
         mPreferredDisplayId = INVALID_DISPLAY;
+        mPreferredWindowingMode = WINDOWING_MODE_UNDEFINED;
 
         mInTask = null;
         mAddingToTask = false;
@@ -2054,9 +2067,10 @@
         // after we located a reusable task (which might be resided in another display).
         mSupervisor.getLaunchParamsController().calculate(inTask, r.info.windowLayout, r,
                 sourceRecord, options, PHASE_DISPLAY, mLaunchParams);
-        mPreferredDisplayId =
-                mLaunchParams.hasPreferredDisplay() ? mLaunchParams.mPreferredDisplayId
-                        : DEFAULT_DISPLAY;
+        mPreferredDisplayId = mLaunchParams.hasPreferredDisplay()
+                ? mLaunchParams.mPreferredDisplayId
+                : DEFAULT_DISPLAY;
+        mPreferredWindowingMode = mLaunchParams.mWindowingMode;
 
         mLaunchMode = r.launchMode;
 
@@ -2098,7 +2112,7 @@
         }
 
         if (mOptions != null) {
-            if (mOptions.getLaunchTaskId() != -1 && mOptions.getTaskOverlay()) {
+            if (mOptions.getLaunchTaskId() != INVALID_TASK_ID && mOptions.getTaskOverlay()) {
                 r.setTaskOverlay(true);
                 if (!mOptions.canTaskOverlayResume()) {
                     final Task task = mRootWindowContainer.anyTaskForId(
@@ -2291,6 +2305,15 @@
      * if not or an ActivityRecord with the task into which the new activity should be added.
      */
     private Task getReusableTask() {
+        // If a target task is specified, try to reuse that one
+        if (mOptions != null && mOptions.getLaunchTaskId() != INVALID_TASK_ID) {
+            Task launchTask = mRootWindowContainer.anyTaskForId(mOptions.getLaunchTaskId());
+            if (launchTask != null) {
+                return launchTask;
+            }
+            return null;
+        }
+
         // We may want to try to place the new activity in to an existing task.  We always
         // do this if the target activity is singleTask or singleInstance; we will also do
         // this if NEW_TASK has been requested, and there is not an additional qualifier telling
@@ -2304,12 +2327,7 @@
         // same component, then instead of launching bring that one to the front.
         putIntoExistingTask &= mInTask == null && mStartActivity.resultTo == null;
         ActivityRecord intentActivity = null;
-        if (mOptions != null && mOptions.getLaunchTaskId() != -1) {
-            Task launchTask = mRootWindowContainer.anyTaskForId(mOptions.getLaunchTaskId());
-            if (launchTask != null) {
-                return launchTask;
-            }
-        } else if (putIntoExistingTask) {
+        if (putIntoExistingTask) {
             if (LAUNCH_SINGLE_INSTANCE == mLaunchMode) {
                 // There can be one and only one instance of single instance activity in the
                 // history, and it is always in its own unique task, so we do a special search.
@@ -2346,6 +2364,7 @@
     private void setTargetStackIfNeeded(ActivityRecord intentActivity) {
         mTargetStack = intentActivity.getRootTask();
         mTargetStack.mLastPausedActivity = null;
+        Task intentTask = intentActivity.getTask();
         // If the target task is not in the front, then we need to bring it to the front...
         // except...  well, with SINGLE_TASK_LAUNCH it's not entirely clear. We'd like to have
         // the same behavior as if a new instance was being started, which means not bringing it
@@ -2356,7 +2375,7 @@
             final ActivityRecord curTop = (focusStack == null)
                     ? null : focusStack.topRunningNonDelayedActivityLocked(mNotTop);
             final Task topTask = curTop != null ? curTop.getTask() : null;
-            differentTopTask = topTask != intentActivity.getTask()
+            differentTopTask = topTask != intentTask
                     || (focusStack != null && topTask != focusStack.getTopMostTask());
         } else {
             // The existing task should always be different from those in other displays.
@@ -2373,7 +2392,6 @@
                     intentActivity.setTaskToAffiliateWith(mSourceRecord.getTask());
                 }
 
-                final Task intentTask = intentActivity.getTask();
                 final ActivityStack launchStack =
                         getLaunchStack(mStartActivity, mLaunchFlags, intentTask, mOptions);
                 if (launchStack == null || launchStack == mTargetStack) {
@@ -2382,6 +2400,14 @@
                     // new intent has delivered.
                     final boolean isSplitScreenTopStack = mTargetStack.isTopSplitScreenStack();
 
+                    // TODO(b/151572268): Figure out a better way to move tasks in above 2-levels
+                    //  tasks hierarchies.
+                    if (mTargetStack != intentTask
+                            && mTargetStack != intentTask.getParent().asTask()) {
+                        intentTask.getParent().positionChildAt(POSITION_TOP, intentTask,
+                                false /* includingParents */);
+                        intentTask = intentTask.getParent().asTask();
+                    }
                     // We only want to move to the front, if we aren't going to launch on a
                     // different stack. If we launch on a different stack, we will put the
                     // task on top there.
@@ -2402,8 +2428,8 @@
         // Need to update mTargetStack because if task was moved out of it, the original stack may
         // be destroyed.
         mTargetStack = intentActivity.getRootTask();
-        mSupervisor.handleNonResizableTaskIfNeeded(intentActivity.getTask(),
-                WINDOWING_MODE_UNDEFINED, DEFAULT_DISPLAY, mTargetStack);
+        mSupervisor.handleNonResizableTaskIfNeeded(intentTask, WINDOWING_MODE_UNDEFINED,
+                DEFAULT_DISPLAY, mTargetStack);
     }
 
     private void resumeTargetStackIfNeeded() {
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java
index ca856ca..2263795 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java
@@ -169,6 +169,11 @@
     public abstract List<IBinder> getTopVisibleActivities();
 
     /**
+     * Returns whether {@code uid} has any resumed activity.
+     */
+    public abstract boolean hasResumedActivity(int uid);
+
+    /**
      * Notify listeners that contents are drawn for the first time on a single task display.
      *
      * @param displayId An ID of the display on which contents are drawn.
@@ -543,8 +548,11 @@
 
     /**
      * Gets bitmap snapshot of the provided task id.
+     *
+     * <p>Warning! this may restore the snapshot from disk so can block, don't call in a latency
+     * sensitive environment.
      */
-    public abstract ActivityManager.TaskSnapshot getTaskSnapshotNoRestore(int taskId,
+    public abstract ActivityManager.TaskSnapshot getTaskSnapshotBlocking(int taskId,
             boolean isLowResolution);
 
     /** Returns true if uid is considered foreground for activity start purposes. */
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 7bacc42..ce885ab 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -31,12 +31,11 @@
 import static android.app.ActivityManagerInternal.ALLOW_NON_FULL;
 import static android.app.ActivityTaskManager.INVALID_TASK_ID;
 import static android.app.ActivityTaskManager.RESIZE_MODE_PRESERVE_WINDOW;
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
-import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
 import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
 import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
@@ -122,6 +121,7 @@
 import static com.android.server.wm.Task.LOCK_TASK_AUTH_DONT_LOCK;
 import static com.android.server.wm.Task.REPARENT_KEEP_STACK_AT_FRONT;
 import static com.android.server.wm.Task.REPARENT_LEAVE_STACK_IN_PLACE;
+import static com.android.server.wm.WindowContainer.POSITION_TOP;
 
 import android.Manifest;
 import android.annotation.IntDef;
@@ -144,7 +144,6 @@
 import android.app.IAssistDataReceiver;
 import android.app.INotificationManager;
 import android.app.IRequestFinishCallback;
-import android.app.ITaskOrganizerController;
 import android.app.ITaskStackListener;
 import android.app.Notification;
 import android.app.NotificationManager;
@@ -230,8 +229,9 @@
 import android.view.IRecentsAnimationRunner;
 import android.view.RemoteAnimationAdapter;
 import android.view.RemoteAnimationDefinition;
-import android.view.WindowContainerTransaction;
 import android.view.WindowManager;
+import android.window.IWindowOrganizerController;
+import android.window.WindowContainerTransaction;
 
 import com.android.internal.R;
 import com.android.internal.annotations.VisibleForTesting;
@@ -663,10 +663,8 @@
 
     private FontScaleSettingObserver mFontScaleSettingObserver;
 
-    /**
-     * Stores the registration and state of TaskOrganizers in use.
-     */
-    TaskOrganizerController mTaskOrganizerController = new TaskOrganizerController(this);
+    WindowOrganizerController mWindowOrganizerController;
+    TaskOrganizerController mTaskOrganizerController;
 
     private int mDeviceOwnerUid = Process.INVALID_UID;
 
@@ -724,6 +722,8 @@
         mLifecycleManager = new ClientLifecycleManager();
         mInternal = new LocalService();
         GL_ES_VERSION = SystemProperties.getInt("ro.opengles.version", GL_ES_VERSION_UNDEFINED);
+        mWindowOrganizerController = new WindowOrganizerController(this);
+        mTaskOrganizerController = mWindowOrganizerController.mTaskOrganizerController;
     }
 
     public void onSystemReady() {
@@ -1273,9 +1273,13 @@
         a.colorMode = ActivityInfo.COLOR_MODE_DEFAULT;
         a.flags |= ActivityInfo.FLAG_EXCLUDE_FROM_RECENTS;
 
+        final ActivityOptions options = ActivityOptions.makeBasic();
+        options.setLaunchActivityType(ACTIVITY_TYPE_DREAM);
+
         try {
             getActivityStartController().obtainStarter(intent, "dream")
                     .setActivityInfo(a)
+                    .setActivityOptions(options.toBundle())
                     .setIsDream(true)
                     .execute();
             return true;
@@ -2348,16 +2352,18 @@
                 }
 
                 final ActivityStack stack = task.getStack();
-                // Convert some windowing-mode changes into root-task reparents for split-screen.
-                if (stack.getTile() != null) {
-                    stack.getDisplay().onSplitScreenModeDismissed();
-                }
                 if (toTop) {
                     stack.moveToFront("setTaskWindowingMode", task);
                 }
-                stack.setWindowingMode(windowingMode);
-                stack.getDisplay().ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS,
-                        true /* notifyClients */);
+                // Convert some windowing-mode changes into root-task reparents for split-screen.
+                if (stack.inSplitScreenWindowingMode()) {
+                    stack.getDisplay().onSplitScreenModeDismissed();
+
+                } else {
+                    stack.setWindowingMode(windowingMode);
+                    stack.getDisplay().ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS,
+                            true /* notifyClients */);
+                }
                 return true;
             } finally {
                 Binder.restoreCallingIdentity(ident);
@@ -2608,13 +2614,16 @@
 
     @Override
     public List<ActivityManager.RunningTaskInfo> getTasks(int maxNum) {
-        return getFilteredTasks(maxNum, ACTIVITY_TYPE_UNDEFINED, WINDOWING_MODE_UNDEFINED);
+        return getFilteredTasks(maxNum, false /* filterForVisibleRecents */);
     }
 
+    /**
+     * @param filterOnlyVisibleRecents whether to filter the tasks based on whether they would ever
+     *                                 be visible in the recent task list in systemui
+     */
     @Override
     public List<ActivityManager.RunningTaskInfo> getFilteredTasks(int maxNum,
-            @WindowConfiguration.ActivityType int ignoreActivityType,
-            @WindowConfiguration.WindowingMode int ignoreWindowingMode) {
+            boolean filterOnlyVisibleRecents) {
         final int callingUid = Binder.getCallingUid();
         final int callingPid = Binder.getCallingPid();
         final boolean crossUser = isCrossUserAllowed(callingPid, callingUid);
@@ -2630,8 +2639,8 @@
             if (DEBUG_ALL) Slog.v(TAG, "getTasks: max=" + maxNum);
 
             final boolean allowed = isGetTasksAllowed("getTasks", callingPid, callingUid);
-            mRootWindowContainer.getRunningTasks(maxNum, list, ignoreActivityType,
-                    ignoreWindowingMode, callingUid, allowed, crossUser, callingProfileIds);
+            mRootWindowContainer.getRunningTasks(maxNum, list, filterOnlyVisibleRecents, callingUid,
+                    allowed, crossUser, callingProfileIds);
         }
 
         return list;
@@ -2754,25 +2763,23 @@
         }
 
         final int prevMode = task.getWindowingMode();
-        moveTaskToSplitScreenPrimaryTile(task, toTop);
+        moveTaskToSplitScreenPrimaryTask(task, toTop);
         return prevMode != task.getWindowingMode();
     }
 
-    void moveTaskToSplitScreenPrimaryTile(Task task, boolean toTop) {
-        ActivityStack stack = task.getStack();
-        TaskTile tile = null;
-        for (int i = stack.getDisplay().getStackCount() - 1; i >= 0; --i) {
-            tile = stack.getDisplay().getStackAt(i).asTile();
-            if (tile != null && tile.getWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
-                break;
-            }
+    void moveTaskToSplitScreenPrimaryTask(Task task, boolean toTop) {
+        final DisplayContent display = task.getDisplayContent();
+        final ActivityStack primarySplitTask = display.getRootSplitScreenPrimaryTask();
+        if (primarySplitTask == null) {
+            throw new IllegalStateException("Can't enter split without associated organized task");
         }
-        if (tile == null) {
-            throw new IllegalStateException("Can't enter split without associated tile");
+
+        if (toTop) {
+            display.positionStackAt(POSITION_TOP, primarySplitTask, false /* includingParents */);
         }
         WindowContainerTransaction wct = new WindowContainerTransaction();
-        wct.reparent(stack.mRemoteToken, tile.mRemoteToken, toTop);
-        mTaskOrganizerController.applyContainerTransaction(wct, null);
+        wct.reparent(task.getStack().mRemoteToken, primarySplitTask.mRemoteToken, toTop);
+        mWindowOrganizerController.applyTransaction(wct);
     }
 
     /**
@@ -3238,7 +3245,8 @@
 
                 final ActivityStack stack = r.getRootTask();
                 final Task task = stack.getDisplay().createStack(stack.getWindowingMode(),
-                        stack.getActivityType(), !ON_TOP, ainfo, intent);
+                        stack.getActivityType(), !ON_TOP, ainfo, intent,
+                        false /* createdByOrganizer */);
 
                 if (!mRecentTasks.addToBottom(task)) {
                     // The app has too many tasks already and we can't add any more
@@ -3978,35 +3986,6 @@
         }
     }
 
-    /**
-     * Dismisses Pip
-     * @param animate True if the dismissal should be animated.
-     * @param animationDuration The duration of the resize animation in milliseconds or -1 if the
-     *                          default animation duration should be used.
-     */
-    @Override
-    public void dismissPip(boolean animate, int animationDuration) {
-        enforceCallerIsRecentsOrHasPermission(MANAGE_ACTIVITY_STACKS, "dismissPip()");
-        final long ident = Binder.clearCallingIdentity();
-        try {
-            synchronized (mGlobalLock) {
-                final ActivityStack stack =
-                        mRootWindowContainer.getDefaultDisplay().getRootPinnedTask();
-                if (stack == null) {
-                    Slog.w(TAG, "dismissPip: pinned stack not found.");
-                    return;
-                }
-                if (stack.getWindowingMode() != WINDOWING_MODE_PINNED) {
-                    throw new IllegalArgumentException("Stack: " + stack
-                            + " doesn't support animated resize.");
-                }
-                stack.dismissPip();
-            }
-        } finally {
-            Binder.restoreCallingIdentity(ident);
-        }
-    }
-
     @Override
     public void suppressResizeConfigChanges(boolean suppress) throws RemoteException {
         mAmInternal.enforceCallingPermission(MANAGE_ACTIVITY_STACKS, "suppressResizeConfigChanges()");
@@ -4277,19 +4256,9 @@
         try {
             synchronized (mGlobalLock) {
                 final DisplayContent dc = mRootWindowContainer.getDefaultDisplay();
-                TaskTile primary = null;
-                TaskTile secondary = null;
-                for (int i = dc.getStackCount() - 1; i >= 0; --i) {
-                    final TaskTile t = dc.getStackAt(i).asTile();
-                    if (t == null) {
-                        continue;
-                    }
-                    if (t.getWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
-                        primary = t;
-                    } else if (t.getWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_SECONDARY) {
-                        secondary = t;
-                    }
-                }
+                final Task primary = dc.getRootSplitScreenPrimaryTask();
+                final Task secondary = dc.getTask(t -> t.mCreatedByOrganizer && t.isRootTask()
+                        && t.inSplitScreenSecondaryWindowingMode());
                 if (primary == null || secondary == null) {
                     return;
                 }
@@ -4311,7 +4280,7 @@
                     }
                 }
                 wct.setBounds(secondary.mRemoteToken, otherRect);
-                mTaskOrganizerController.applyContainerTransaction(wct, null /* organizer */);
+                mWindowOrganizerController.applyTransaction(wct);
             }
         } finally {
             Binder.restoreCallingIdentity(ident);
@@ -4332,10 +4301,10 @@
     }
 
     @Override
-    public ITaskOrganizerController getTaskOrganizerController() {
+    public IWindowOrganizerController getWindowOrganizerController() {
         mAmInternal.enforceCallingPermission(MANAGE_ACTIVITY_STACKS,
-                "getTaskOrganizerController()");
-        return mTaskOrganizerController;
+                "getWindowOrganizerController()");
+        return mWindowOrganizerController;
     }
 
     /**
@@ -6172,6 +6141,20 @@
         }
 
         @Override
+        public boolean hasResumedActivity(int uid) {
+            synchronized (mGlobalLock) {
+                final ArraySet<WindowProcessController> processes = mProcessMap.getProcesses(uid);
+                for (int i = 0, n = processes.size(); i < n; i++) {
+                    final WindowProcessController process = processes.valueAt(i);
+                    if (process.hasResumedActivity()) {
+                        return true;
+                    }
+                }
+            }
+            return false;
+        }
+
+        @Override
         public int startActivitiesAsPackage(String packageName, @Nullable String featureId,
                 int userId, Intent[] intents, Bundle bOptions) {
             Objects.requireNonNull(intents, "intents");
@@ -7462,10 +7445,10 @@
         }
 
         @Override
-        public ActivityManager.TaskSnapshot getTaskSnapshotNoRestore(int taskId,
-                boolean isLowResolution) {
+        public ActivityManager.TaskSnapshot getTaskSnapshotBlocking(
+                int taskId, boolean isLowResolution) {
             return ActivityTaskManagerService.this.getTaskSnapshot(taskId, isLowResolution,
-                    false /* restoreFromDisk */);
+                    true /* restoreFromDisk */);
         }
 
         @Override
diff --git a/services/core/java/com/android/server/wm/AlertWindowNotification.java b/services/core/java/com/android/server/wm/AlertWindowNotification.java
index 0de94d9..7b511ec 100644
--- a/services/core/java/com/android/server/wm/AlertWindowNotification.java
+++ b/services/core/java/com/android/server/wm/AlertWindowNotification.java
@@ -160,7 +160,7 @@
         channel = new NotificationChannel(mNotificationTag, nameChannel, IMPORTANCE_MIN);
         channel.enableLights(false);
         channel.enableVibration(false);
-        channel.setBlockableSystem(true);
+        channel.setBlockable(true);
         channel.setGroup(sChannelGroup.getId());
         channel.setBypassDnd(true);
         mNotificationManager.createNotificationChannel(channel);
diff --git a/services/core/java/com/android/server/wm/AppTransitionController.java b/services/core/java/com/android/server/wm/AppTransitionController.java
index 6a47c9e..654ccc8 100644
--- a/services/core/java/com/android/server/wm/AppTransitionController.java
+++ b/services/core/java/com/android/server/wm/AppTransitionController.java
@@ -618,6 +618,7 @@
                 Animation anim = mService.mPolicy.createKeyguardWallpaperExit(
                         (flags & TRANSIT_FLAG_KEYGUARD_GOING_AWAY_TO_SHADE) != 0);
                 if (anim != null) {
+                    anim.scaleCurrentDuration(mService.getTransitionAnimationScaleLocked());
                     mDisplayContent.mWallpaperController.startWallpaperAnimation(anim);
                 }
             }
diff --git a/services/core/java/com/android/server/wm/BLASTSyncEngine.java b/services/core/java/com/android/server/wm/BLASTSyncEngine.java
index c18ed7d..5b20023 100644
--- a/services/core/java/com/android/server/wm/BLASTSyncEngine.java
+++ b/services/core/java/com/android/server/wm/BLASTSyncEngine.java
@@ -19,7 +19,7 @@
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.util.Slog;
-import android.view.ITaskOrganizer;
+import android.window.ITaskOrganizer;
 import android.view.SurfaceControl;
 
 import java.util.HashMap;
diff --git a/services/core/java/com/android/server/wm/ConfigurationContainer.java b/services/core/java/com/android/server/wm/ConfigurationContainer.java
index 33dd9cf..1036af6 100644
--- a/services/core/java/com/android/server/wm/ConfigurationContainer.java
+++ b/services/core/java/com/android/server/wm/ConfigurationContainer.java
@@ -17,6 +17,7 @@
 package com.android.server.wm;
 
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
@@ -467,6 +468,10 @@
         return getActivityType() == ACTIVITY_TYPE_ASSISTANT;
     }
 
+    public boolean isActivityTypeDream() {
+        return getActivityType() == ACTIVITY_TYPE_DREAM;
+    }
+
     public boolean isActivityTypeStandard() {
         return getActivityType() == ACTIVITY_TYPE_STANDARD;
     }
diff --git a/services/core/java/com/android/server/wm/DisplayArea.java b/services/core/java/com/android/server/wm/DisplayArea.java
index d9e41af..8cac487 100644
--- a/services/core/java/com/android/server/wm/DisplayArea.java
+++ b/services/core/java/com/android/server/wm/DisplayArea.java
@@ -21,6 +21,9 @@
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
 import static android.view.WindowManager.TRANSIT_KEYGUARD_UNOCCLUDE;
 import static android.view.WindowManagerPolicyConstants.APPLICATION_LAYER;
+import static android.window.WindowOrganizer.DisplayAreaOrganizer.FEATURE_ROOT;
+import static android.window.WindowOrganizer.DisplayAreaOrganizer.FEATURE_UNDEFINED;
+import static android.window.WindowOrganizer.DisplayAreaOrganizer.FEATURE_WINDOW_TOKENS;
 
 import static com.android.internal.util.Preconditions.checkState;
 import static com.android.server.wm.DisplayAreaProto.NAME;
@@ -28,13 +31,16 @@
 import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ORIENTATION;
 import static com.android.server.wm.WindowContainerChildProto.DISPLAY_AREA;
 
+import android.graphics.Point;
 import android.graphics.Rect;
 import android.util.proto.ProtoOutputStream;
+import android.window.IDisplayAreaOrganizer;
 
 import com.android.server.policy.WindowManagerPolicy;
 import com.android.server.protolog.common.ProtoLog;
 
 import java.util.Comparator;
+import java.util.function.Consumer;
 import java.util.function.Predicate;
 
 /**
@@ -57,13 +63,24 @@
 
     protected final Type mType;
     private final String mName;
+    final int mFeatureId;
+    private final DisplayAreaOrganizerController mOrganizerController;
+    IDisplayAreaOrganizer mOrganizer;
 
     DisplayArea(WindowManagerService wms, Type type, String name) {
+        this(wms, type, name, FEATURE_UNDEFINED);
+    }
+
+    DisplayArea(WindowManagerService wms, Type type, String name, int featureId) {
         super(wms);
         // TODO(display-area): move this up to ConfigurationContainer
         mOrientation = SCREEN_ORIENTATION_UNSET;
         mType = type;
         mName = name;
+        mFeatureId = featureId;
+        mRemoteToken = new RemoteToken(this);
+        mOrganizerController =
+                wms.mAtmService.mWindowOrganizerController.mDisplayAreaOrganizerController;
     }
 
     @Override
@@ -116,6 +133,33 @@
         return DISPLAY_AREA;
     }
 
+    void forAllDisplayAreas(Consumer<DisplayArea> callback) {
+        super.forAllDisplayAreas(callback);
+        callback.accept(this);
+    }
+
+    void setOrganizer(IDisplayAreaOrganizer organizer) {
+        if (mOrganizer == organizer) return;
+        sendDisplayAreaVanished();
+        mOrganizer = organizer;
+        sendDisplayAreaAppeared();
+    }
+
+    void sendDisplayAreaAppeared() {
+        if (mOrganizer == null) return;
+        mOrganizerController.onDisplayAreaAppeared(mOrganizer, this);
+    }
+
+    void sendDisplayAreaVanished() {
+        if (mOrganizer == null) return;
+        mOrganizerController.onDisplayAreaVanished(mOrganizer, this);
+    }
+
+    @Override
+    boolean isOrganized() {
+        return mOrganizer != null;
+    }
+
     /**
      * DisplayArea that contains WindowTokens, and orders them according to their type.
      */
@@ -152,7 +196,7 @@
         };
 
         Tokens(WindowManagerService wms, Type type, String name) {
-            super(wms, type, name);
+            super(wms, type, name, FEATURE_WINDOW_TOKENS);
         }
 
         void addChild(WindowToken token) {
@@ -191,7 +235,7 @@
         private final Rect mTmpDimBoundsRect = new Rect();
 
         Root(WindowManagerService wms) {
-            super(wms, Type.ANY, "DisplayArea.Root");
+            super(wms, Type.ANY, "DisplayArea.Root", FEATURE_ROOT);
         }
 
         @Override
diff --git a/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java b/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java
new file mode 100644
index 0000000..464b127
--- /dev/null
+++ b/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static android.Manifest.permission.MANAGE_ACTIVITY_STACKS;
+
+import android.os.Binder;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.window.IDisplayAreaOrganizer;
+import android.window.IDisplayAreaOrganizerController;
+
+import java.util.HashMap;
+
+public class DisplayAreaOrganizerController extends IDisplayAreaOrganizerController.Stub {
+    private static final String TAG = "DisplayAreaOrganizerController";
+
+    final ActivityTaskManagerService mService;
+    private final WindowManagerGlobalLock mGlobalLock;
+    private final HashMap<Integer, IDisplayAreaOrganizer> mOrganizersByFeatureIds = new HashMap();
+
+    private class DeathRecipient implements IBinder.DeathRecipient {
+        int mFeature;
+        IDisplayAreaOrganizer mOrganizer;
+
+        DeathRecipient(IDisplayAreaOrganizer organizer, int feature) {
+            mOrganizer = organizer;
+            mFeature = feature;
+        }
+
+        @Override
+        public void binderDied() {
+            synchronized (mGlobalLock) {
+                mOrganizersByFeatureIds.remove(mFeature);
+                mService.mRootWindowContainer.forAllDisplayAreas((da) -> {
+                    if (da.mOrganizer != mOrganizer) return;
+                    da.setOrganizer(null);
+                });
+            }
+        }
+    }
+
+    DisplayAreaOrganizerController(ActivityTaskManagerService atm) {
+        mService = atm;
+        mGlobalLock = atm.mGlobalLock;
+    }
+
+    private void enforceStackPermission(String func) {
+        mService.mAmInternal.enforceCallingPermission(MANAGE_ACTIVITY_STACKS, func);
+    }
+
+    @Override
+    public void registerOrganizer(IDisplayAreaOrganizer organizer, int feature) {
+        enforceStackPermission("registerOrganizer()");
+        final long origId = Binder.clearCallingIdentity();
+        try {
+            synchronized (mGlobalLock) {
+                if (mOrganizersByFeatureIds.get(feature) != null) {
+                    throw new IllegalStateException(
+                            "Replacing existing organizer currently unsupported");
+                }
+
+                final DeathRecipient dr = new DeathRecipient(organizer, feature);
+                try {
+                    organizer.asBinder().linkToDeath(dr, 0);
+                } catch (RemoteException e) {
+                    // Oh well...
+                }
+                mService.mRootWindowContainer.forAllDisplayAreas((da) -> {
+                    if (da.mFeatureId != feature) return;
+                    da.setOrganizer(organizer);
+                });
+
+                mOrganizersByFeatureIds.put(feature, organizer);
+            }
+        } finally {
+            Binder.restoreCallingIdentity(origId);
+        }
+    }
+
+    void onDisplayAreaAppeared(IDisplayAreaOrganizer organizer, DisplayArea da) {
+        try {
+            organizer.onDisplayAreaAppeared(da.mRemoteToken);
+        } catch (RemoteException e) {
+            // Oh well...
+        }
+    }
+
+    void onDisplayAreaVanished(IDisplayAreaOrganizer organizer, DisplayArea da) {
+        try {
+            organizer.onDisplayAreaVanished(da.mRemoteToken);
+        } catch (RemoteException e) {
+            // Oh well...
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java b/services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java
index 885456a..0c6e483 100644
--- a/services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java
+++ b/services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java
@@ -73,16 +73,36 @@
      */
     static class Feature {
         private final String mName;
+        private final int mId;
         private final boolean[] mWindowLayers;
 
-        private Feature(String name, boolean[] windowLayers) {
+        private Feature(String name, int id, boolean[] windowLayers) {
             mName = name;
+            mId = id;
             mWindowLayers = windowLayers;
         }
 
+        /**
+         * Returns the id of the feature.
+         *
+         * Must be unique among the features added to a {@link DisplayAreaPolicyBuilder}.
+         *
+         * @see android.window.WindowOrganizer.DisplayAreaOrganizer#FEATURE_SYSTEM_FIRST
+         * @see android.window.WindowOrganizer.DisplayAreaOrganizer#FEATURE_VENDOR_FIRST
+         */
+        public int getId() {
+            return mId;
+        }
+
+        @Override
+        public String toString() {
+            return "Feature(\"" + mName + "\", " + mId + '}';
+        }
+
         static class Builder {
             private final WindowManagerPolicy mPolicy;
             private final String mName;
+            private final int mId;
             private final boolean[] mLayers;
 
             /**
@@ -96,10 +116,12 @@
              * The builder starts out with the feature not applying to any types.
              *
              * @param name the name of the feature.
+             * @param id of the feature. {@see Feature#getId}
              */
-            Builder(WindowManagerPolicy policy, String name) {
+            Builder(WindowManagerPolicy policy, String name, int id) {
                 mPolicy = policy;
                 mName = name;
+                mId = id;
                 mLayers = new boolean[mPolicy.getMaxWindowLayer()];
             }
 
@@ -147,7 +169,7 @@
             }
 
             Feature build() {
-                return new Feature(mName, mLayers.clone());
+                return new Feature(mName, mId, mLayers.clone());
             }
 
             private void set(int type, boolean value) {
@@ -364,7 +386,7 @@
                 return leaf;
             } else {
                 return new DisplayArea(parent.mWmService, type, mFeature.mName + ":"
-                        + mMinLayer + ":" + mMaxLayer);
+                        + mMinLayer + ":" + mMaxLayer, mFeature.mId);
             }
         }
     }
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index aad242d..9fc90da 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -17,6 +17,7 @@
 package com.android.server.wm;
 
 import static android.app.ActivityTaskManager.INVALID_TASK_ID;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
@@ -67,7 +68,6 @@
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_BOOT_PROGRESS;
-import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG;
 import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR;
@@ -79,6 +79,7 @@
 import static android.view.WindowManager.TRANSIT_ACTIVITY_OPEN;
 import static android.view.WindowManager.TRANSIT_TASK_OPEN;
 import static android.view.WindowManager.TRANSIT_TASK_TO_FRONT;
+import static android.window.WindowOrganizer.DisplayAreaOrganizer.FEATURE_TASK_CONTAINER;
 
 import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM;
 import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_CONFIG;
@@ -199,7 +200,6 @@
 import android.view.Gravity;
 import android.view.IDisplayWindowInsetsController;
 import android.view.ISystemGestureExclusionListener;
-import android.view.ITaskOrganizer;
 import android.view.IWindow;
 import android.view.InputChannel;
 import android.view.InputDevice;
@@ -216,6 +216,7 @@
 import android.view.WindowInsets;
 import android.view.WindowManager;
 import android.view.WindowManagerPolicyConstants.PointerEventListener;
+import android.window.WindowContainerTransaction;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.logging.MetricsLogger;
@@ -455,6 +456,8 @@
 
     private final Configuration mTmpConfiguration = new Configuration();
 
+    private ArrayList<Task> mTmpTasks = new ArrayList<>();
+
     /** Remove this display when animation on it has completed. */
     private boolean mDeferredRemoval;
 
@@ -653,8 +656,11 @@
     private final RootWindowContainer.FindTaskResult
             mTmpFindTaskResult = new RootWindowContainer.FindTaskResult();
 
-    // When non-null, new stacks get put into this tile.
-    TaskTile mLaunchTile = null;
+    // When non-null, new tasks get put into this root task.
+    Task mLaunchRootTask = null;
+
+    // Used in performing layout
+    private boolean mTmpWindowsBehindIme;
 
     private final Consumer<WindowState> mUpdateWindowsForAnimator = w -> {
         WindowStateAnimator winAnimator = w.mWinAnimator;
@@ -747,6 +753,12 @@
                     + " parentHidden=" + w.isParentWindowHidden());
         }
 
+        // Sets mBehindIme for each window. Windows behind IME can get IME insets.
+        w.mBehindIme = mTmpWindowsBehindIme;
+        if (w == mInputMethodWindow) {
+            mTmpWindowsBehindIme = true;
+        }
+
         // If this view is GONE, then skip it -- keep the current frame, and let the caller know
         // so they can ignore it if they want.  (We do the normal layout for INVISIBLE windows,
         // since that means "perform layout as normal, just don't display").
@@ -754,11 +766,6 @@
             if (mTmpInitial) {
                 w.resetContentChanged();
             }
-            if (w.mAttrs.type == TYPE_DREAM) {
-                // Don't layout windows behind a dream, so that if it does stuff like hide
-                // the status bar we won't get a bad transition when it goes away.
-                mTmpWindow = w;
-            }
             w.mLayoutNeeded = false;
             w.prelayout();
             final boolean firstLayout = !w.isLaidOut();
@@ -812,10 +819,6 @@
                         + " mContainingFrame=" + w.getContainingFrame()
                         + " mDisplayFrame=" + w.getDisplayFrameLw());
             }
-        } else if (w.mAttrs.type == TYPE_DREAM) {
-            // Don't layout windows behind a dream, so that if it does stuff like hide the
-            // status bar we won't get a bad transition when it goes away.
-            mTmpWindow = mTmpWindow2;
         }
     };
 
@@ -899,17 +902,6 @@
             // Take care of the window being ready to display.
             final boolean committed = winAnimator.commitFinishDrawingLocked();
             if (isDefaultDisplay && committed) {
-                if (w.mAttrs.type == TYPE_DREAM) {
-                    // HACK: When a dream is shown, it may at that point hide the lock screen.
-                    // So we need to redo the layout to let the phone window manager make this
-                    // happen.
-                    pendingLayoutChanges |= FINISH_LAYOUT_REDO_LAYOUT;
-                    if (DEBUG_LAYOUT_REPEATS) {
-                        surfacePlacer.debugLayoutRepeats(
-                                "dream and commitFinishDrawingLocked true",
-                                pendingLayoutChanges);
-                    }
-                }
                 if ((w.mAttrs.flags & FLAG_SHOW_WALLPAPER) != 0) {
                     if (DEBUG_WALLPAPER_LIGHT) Slog.v(TAG,
                             "First draw done in potential wallpaper target " + w);
@@ -1305,8 +1297,6 @@
         if (mDisplayRotation.isWaitingForRemoteRotation()) {
             return;
         }
-        // Clear the record because the display will sync to current rotation.
-        mFixedRotationLaunchingApp = null;
 
         final boolean configUpdated = updateDisplayOverrideConfigurationLocked();
         if (configUpdated) {
@@ -1497,7 +1487,7 @@
         startFixedRotationTransform(r, rotation);
         mAppTransition.registerListenerLocked(new WindowManagerInternal.AppTransitionListener() {
             void done() {
-                r.clearFixedRotationTransform();
+                r.finishFixedRotationTransform();
                 mAppTransition.unregisterListener(this);
             }
 
@@ -1526,7 +1516,8 @@
         if (token != mFixedRotationLaunchingApp) {
             return false;
         }
-        if (updateOrientation()) {
+        // Update directly because the app which will change the orientation of display is ready.
+        if (mDisplayRotation.updateOrientation(getOrientation(), false /* forceUpdate */)) {
             sendNewConfiguration();
             return true;
         }
@@ -1572,7 +1563,7 @@
      * @param oldRotation the rotation we are coming from.
      * @param rotation the rotation to apply.
      */
-    void applyRotationLocked(final int oldRotation, final int rotation) {
+    private void applyRotation(final int oldRotation, final int rotation) {
         mDisplayRotation.applyCurrentRotation(rotation);
         final boolean rotateSeamlessly = mDisplayRotation.isRotatingSeamlessly();
         final Transaction transaction = getPendingTransaction();
@@ -2127,12 +2118,13 @@
     }
 
     /** @return The primary split-screen task, and {@code null} otherwise. */
-    ActivityStack getRootSplitScreenPrimaryTask() {
+    @Nullable ActivityStack getRootSplitScreenPrimaryTask() {
         return mTaskContainers.getRootSplitScreenPrimaryTask();
     }
 
-    boolean hasSplitScreenPrimaryTask() {
-        return getRootSplitScreenPrimaryTask() != null;
+    boolean isSplitScreenModeActivated() {
+        Task task = getRootSplitScreenPrimaryTask();
+        return task != null && task.hasChild();
     }
 
     ActivityStack getRootPinnedTask() {
@@ -2599,7 +2591,7 @@
         }
         amendWindowTapExcludeRegion(mTouchExcludeRegion);
         // TODO(multi-display): Support docked stacks on secondary displays.
-        if (mDisplayId == DEFAULT_DISPLAY && getRootSplitScreenPrimaryTask() != null) {
+        if (mDisplayId == DEFAULT_DISPLAY && isSplitScreenModeActivated()) {
             mDividerControllerLocked.getTouchRegion(mTmpRect);
             mTmpRegion.set(mTmpRect);
             mTouchExcludeRegion.op(mTmpRegion, Op.UNION);
@@ -2622,8 +2614,7 @@
         // If the task is home stack and it is resizable and visible (top of its root task), we want
         // to exclude the docked stack from touch so we need the entire screen area and not just a
         // small portion which the home stack currently is resized to.
-        if (task.isActivityTypeHome() && task.isVisible() && task.getStack().getTile() != null
-                && task.isResizeable()) {
+        if (task.isActivityTypeHome() && task.isVisible() && task.isResizeable()) {
             mDisplayContent.getBounds(mTmpRect);
         } else {
             task.getDimBounds(mTmpRect);
@@ -3010,6 +3001,11 @@
         if (recentsStack != null) {
             pw.println(prefix + "recentsStack=" + recentsStack.getName());
         }
+        final ActivityStack dreamStack =
+                getStack(WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_DREAM);
+        if (dreamStack != null) {
+            pw.println(prefix + "dreamStack=" + dreamStack.getName());
+        }
 
         pw.println();
         mPinnedStackControllerLocked.dump(prefix, pw);
@@ -3198,7 +3194,7 @@
             if (mode == UPDATE_FOCUS_PLACING_SURFACES) {
                 performLayout(true /*initial*/, updateInputWindows);
             } else if (mode == UPDATE_FOCUS_REMOVING_FOCUS) {
-                mWmService.mRoot.performSurfacePlacement(false);
+                mWmService.mRoot.performSurfacePlacement();
             }
         }
 
@@ -3524,6 +3520,8 @@
     }
 
     private void setInputMethodTarget(WindowState target, boolean targetWaitingAnim) {
+        // Always update control target. This is needed to handle rotation.
+        updateImeControlTarget(target);
         if (target == mInputMethodTarget && mInputMethodTargetWaitingAnim == targetWaitingAnim) {
             return;
         }
@@ -3531,7 +3529,6 @@
         mInputMethodTarget = target;
         mInputMethodTargetWaitingAnim = targetWaitingAnim;
         assignWindowLayers(false /* setLayoutNeeded */);
-        updateImeControlTarget(mInputMethodTarget);
         updateImeParent();
     }
 
@@ -3834,7 +3831,7 @@
     }
 
     // TODO: Super crazy long method that should be broken down...
-    void applySurfaceChangesTransaction(boolean recoveringMemory) {
+    void applySurfaceChangesTransaction() {
         final WindowSurfacePlacer surfacePlacer = mWmService.mWindowPlacerLocked;
 
         mTmpUpdateAllDrawn.clear();
@@ -4012,6 +4009,9 @@
         mTmpWindow = null;
         mTmpInitial = initial;
 
+        // Used to indicate that we have processed the IME window.
+        mTmpWindowsBehindIme = false;
+
         // First perform layout of any root windows (not attached to another window).
         forAllWindows(mPerformLayout, true /* traverseTopToBottom */);
 
@@ -4293,7 +4293,7 @@
         private ActivityStack mRootSplitScreenPrimaryTask = null;
 
         TaskContainers(WindowManagerService service) {
-            super(service, Type.ANY, "TaskContainers");
+            super(service, Type.ANY, "TaskContainers", FEATURE_TASK_CONTAINER);
         }
 
         /**
@@ -4326,15 +4326,8 @@
 
         @VisibleForTesting
         ActivityStack getTopStack() {
-            // TODO(task-hierarchy): Just grab index -1 once tiles are in hierarchy.
-            for (int i = mTaskContainers.getChildCount() - 1; i >= 0; --i) {
-                final ActivityStack child = mTaskContainers.getChildAt(i);
-                if (child instanceof TaskTile) {
-                    continue;
-                }
-                return child;
-            }
-            return null;
+            final int count = mTaskContainers.getChildCount();
+            return count > 0 ? mTaskContainers.getChildAt(count - 1) : null;
         }
 
         int getIndexOf(ActivityStack stack) {
@@ -4373,10 +4366,6 @@
         }
 
         private void addStackReferenceIfNeeded(ActivityStack stack) {
-            // TODO(task-hierarchy): Remove when tiles are in hierarchy.
-            if (stack instanceof TaskTile) {
-                return;
-            }
             if (stack.isActivityTypeHome()) {
                 if (mRootHomeTask != null) {
                     if (!stack.isDescendantOf(mRootHomeTask)) {
@@ -4388,27 +4377,26 @@
                     mRootHomeTask = stack;
                 }
             }
+
+            if (!stack.isRootTask()) {
+                return;
+            }
             final int windowingMode = stack.getWindowingMode();
             if (windowingMode == WINDOWING_MODE_PINNED) {
                 if (mRootPinnedTask != null) {
-                    if (!stack.isDescendantOf(mRootPinnedTask)) {
-                        throw new IllegalArgumentException(
-                                "addStackReferenceIfNeeded: pinned stack=" + mRootPinnedTask
-                                        + " already exist on display=" + this + " stack=" + stack);
-                    }
-                } else {
-                    mRootPinnedTask = stack;
+                    throw new IllegalArgumentException(
+                            "addStackReferenceIfNeeded: pinned stack=" + mRootPinnedTask
+                                    + " already exist on display=" + this + " stack=" + stack);
                 }
+                mRootPinnedTask = stack;
             } else if (windowingMode == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
                 if (mRootSplitScreenPrimaryTask != null) {
-                    if (!stack.isDescendantOf(mRootSplitScreenPrimaryTask)) {
-                        throw new IllegalArgumentException("addStackReferenceIfNeeded:"
-                                + " split-screen-primary" + " stack=" + mRootSplitScreenPrimaryTask
-                                + " already exist on display=" + this + " stack=" + stack);
-                    }
-                } else {
-                    mRootSplitScreenPrimaryTask = stack;
+                    throw new IllegalArgumentException(
+                            "addStackReferenceIfNeeded: split screen primary stack="
+                                    + mRootSplitScreenPrimaryTask
+                                    + " already exist on display=" + this + " stack=" + stack);
                 }
+                mRootSplitScreenPrimaryTask = stack;
             }
         }
 
@@ -4428,6 +4416,7 @@
             position = findPositionForStack(position, stack, true /* adding */);
 
             super.addChild(stack, position);
+            mAtmService.updateSleepIfNeededLocked();
 
             // The reparenting case is handled in WindowContainer.
             if (!stack.mReparenting) {
@@ -4439,6 +4428,7 @@
         protected void removeChild(ActivityStack stack) {
             super.removeChild(stack);
             mDisplayContent.onStackRemoved(stack);
+            mAtmService.updateSleepIfNeededLocked();
             removeStackReferenceIfNeeded(stack);
         }
 
@@ -4493,6 +4483,10 @@
          */
         private int findPositionForStack(int requestedPosition, ActivityStack stack,
                 boolean adding) {
+            if (stack.isActivityTypeDream()) {
+                return POSITION_TOP;
+            }
+
             if (stack.inPinnedWindowingMode()) {
                 return POSITION_TOP;
             }
@@ -4643,10 +4637,9 @@
                 // Apps and their containers are not allowed to specify an orientation while using
                 // root tasks...except for the home stack if it is not resizable and currently
                 // visible (top of) its root task.
-                if (mRootHomeTask != null && mRootHomeTask.isVisible()
-                        && mRootHomeTask.getTile() != null) {
+                if (mRootHomeTask != null && mRootHomeTask.isVisible()) {
                     final Task topMost = mRootHomeTask.getTopMostTask();
-                    final boolean resizable = topMost == null && topMost.isResizeable();
+                    final boolean resizable = topMost != null && topMost.isResizeable();
                     if (!(resizable && mRootHomeTask.matchParentBounds())) {
                         final int orientation = mRootHomeTask.getOrientation();
                         if (orientation != SCREEN_ORIENTATION_UNSET) {
@@ -4790,17 +4783,6 @@
                 mSplitScreenDividerAnchor = null;
             }
         }
-
-        @Override
-        void onChildPositionChanged(WindowContainer child) {
-            // TODO(task-hierarchy): Move functionality to TaskTile when it's a proper parent.
-            TaskTile tile = ((ActivityStack) child).getTile();
-            if (tile == null) {
-                return;
-            }
-            mAtmService.mTaskOrganizerController.dispatchTaskInfoChanged(
-                    tile, false /* force */);
-        }
     }
 
     private class WindowContainers extends DisplayChildWindowContainer<WindowContainer> {
@@ -4981,7 +4963,7 @@
         private boolean skipImeWindowsDuringTraversal(DisplayContent dc) {
             // We skip IME windows so they're processed just above their target, except
             // in split-screen mode where we process the IME containers above the docked divider.
-            return dc.mInputMethodTarget != null && !dc.hasSplitScreenPrimaryTask();
+            return dc.mInputMethodTarget != null && !dc.isSplitScreenModeActivated();
         }
 
         /** Like {@link #forAllWindows}, but ignores {@link #skipImeWindowsDuringTraversal} */
@@ -5631,6 +5613,10 @@
     }
 
     void onDisplayChanged() {
+        mDisplay.getRealSize(mTmpDisplaySize);
+        setBounds(0, 0, mTmpDisplaySize.x, mTmpDisplaySize.y);
+        updateDisplayInfo();
+
         // The window policy is responsible for stopping activities on the default display.
         final int displayId = mDisplay.getDisplayId();
         if (displayId != DEFAULT_DISPLAY) {
@@ -5642,17 +5628,20 @@
                 mOffToken = null;
             }
         }
-
-        mDisplay.getRealSize(mTmpDisplaySize);
-        setBounds(0, 0, mTmpDisplaySize.x, mTmpDisplaySize.y);
-        updateDisplayInfo();
         mWmService.requestTraversal();
     }
 
     void addStack(ActivityStack stack, int position) {
         setStackOnDisplay(stack, position);
         positionStackAt(stack, position);
-        mAtmService.updateSleepIfNeededLocked();
+    }
+
+    void addStackReferenceIfNeeded(ActivityStack stack) {
+        mTaskContainers.addStackReferenceIfNeeded(stack);
+    }
+
+    void removeStackReferenceIfNeeded(ActivityStack stack) {
+        mTaskContainers.removeStackReferenceIfNeeded(stack);
     }
 
     void onStackRemoved(ActivityStack stack) {
@@ -5663,7 +5652,6 @@
             mPreferredTopFocusableStack = null;
         }
         releaseSelfIfNeeded();
-        mAtmService.updateSleepIfNeededLocked();
         onStackOrderChanged(stack);
     }
 
@@ -5701,6 +5689,14 @@
                     "positionStackAt: Can only have one task on display=" + this);
         }
 
+        final boolean movingToTop = wasContained && position >= getStackCount() - 1;
+        // Reset mPreferredTopFocusableStack before positioning to top or {@link
+        // ActivityStackSupervisor#updateTopResumedActivityIfNeeded()} won't update the top
+        // resumed activity.
+        if (movingToTop && stack.isFocusable()) {
+            mPreferredTopFocusableStack = null;
+        }
+
         // Since positionChildAt() is called during the creation process of pinned stacks,
         // ActivityStack#getStack() can be null.
         positionStackAt(position, stack, includingParents);
@@ -5710,7 +5706,7 @@
         // we are looking for top focusable stack. The condition {@code wasContained} restricts the
         // preferred stack is set only when moving an existing stack to top instead of adding a new
         // stack that may be too early (e.g. in the middle of launching or reparenting).
-        if (wasContained && position >= getStackCount() - 1 && stack.isFocusableAndVisible()) {
+        if (movingToTop && stack.isFocusableAndVisible()) {
             mPreferredTopFocusableStack = stack;
         } else if (mPreferredTopFocusableStack == stack) {
             mPreferredTopFocusableStack = null;
@@ -5753,18 +5749,54 @@
     /**
      * Returns an existing stack compatible with the windowing mode and activity type or creates one
      * if a compatible stack doesn't exist.
+     * @see #getOrCreateStack(int, int, boolean, Intent, Task, boolean)
+     */
+    ActivityStack getOrCreateStack(int windowingMode, int activityType, boolean onTop) {
+        return getOrCreateStack(windowingMode, activityType, onTop, null /* intent */,
+                null /* candidateTask */, false /* createdByOrganizer */);
+    }
+
+    /**
+     * When two level tasks are required for given windowing mode and activity type, returns an
+     * existing compatible root task or creates a new one.
+     * For one level task, the candidate task would be reused to also be the root task or create
+     * a new root task if no candidate task.
      * @see #getStack(int, int)
      * @see #createStack(int, int, boolean)
      */
-    ActivityStack getOrCreateStack(int windowingMode, int activityType,
-            boolean onTop) {
+    ActivityStack getOrCreateStack(int windowingMode, int activityType, boolean onTop,
+            Intent intent, Task candidateTask, boolean createdByOrganizer) {
         if (!alwaysCreateStack(windowingMode, activityType)) {
             ActivityStack stack = getStack(windowingMode, activityType);
             if (stack != null) {
                 return stack;
             }
+        } else if (candidateTask != null) {
+            final ActivityStack stack = (ActivityStack) candidateTask;
+            final int position = onTop ? POSITION_TOP : POSITION_BOTTOM;
+            if (isSplitScreenModeActivated()) {
+                final Task splitRootSecondary = getTask(t -> t.mCreatedByOrganizer && t.isRootTask()
+                        && t.inSplitScreenSecondaryWindowingMode());
+                if (stack.getParent() == null) {
+                    splitRootSecondary.addChild(stack, position);
+                } else if (stack.getParent() != splitRootSecondary) {
+                    stack.reparent(splitRootSecondary, position);
+                }
+            } else if (stack.getDisplay() != this || !stack.isRootTask()) {
+                if (stack.getParent() == null) {
+                    addStack(stack, position);
+                } else {
+                    stack.reparent(this, onTop);
+                }
+            }
+            // Update windowing mode if necessary, e.g. moving a pinned task to fullscreen.
+            if (candidateTask.getWindowingMode() != windowingMode) {
+                candidateTask.setWindowingMode(windowingMode);
+            }
+            return stack;
         }
-        return createStack(windowingMode, activityType, onTop);
+        return createStack(windowingMode, activityType, onTop, null /*info*/, intent,
+                createdByOrganizer);
     }
 
     /**
@@ -5782,7 +5814,8 @@
         // UNDEFINED windowing mode is a valid result and means that the new stack will inherit
         // it's display's windowing mode.
         windowingMode = validateWindowingMode(windowingMode, r, candidateTask, activityType);
-        return getOrCreateStack(windowingMode, activityType, onTop);
+        return getOrCreateStack(windowingMode, activityType, onTop, null /* intent */,
+                candidateTask, false /* createdByOrganizer */);
     }
 
     @VisibleForTesting
@@ -5791,7 +5824,8 @@
     }
 
     ActivityStack createStack(int windowingMode, int activityType, boolean onTop) {
-        return createStack(windowingMode, activityType, onTop, null /*info*/, null /*intent*/);
+        return createStack(windowingMode, activityType, onTop, null /* info */, null /* intent */,
+                false /* createdByOrganizer */);
     }
 
     /**
@@ -5803,25 +5837,29 @@
      *                     {@link WindowConfiguration#ACTIVITY_TYPE_UNDEFINED} then the stack will
      *                     be created in {@link WindowConfiguration#ACTIVITY_TYPE_STANDARD}.
      * @param onTop If true the stack will be created at the top of the display, else at the bottom.
+     * @param info The started activity info.
+     * @param intent The intent that started this task.
+     * @param createdByOrganizer @{code true} if this is created by task organizer, @{code false}
+     *                          otherwise.
      * @return The newly created stack.
      */
     ActivityStack createStack(int windowingMode, int activityType, boolean onTop, ActivityInfo info,
-            Intent intent) {
+            Intent intent, boolean createdByOrganizer) {
         if (mSingleTaskInstance && getStackCount() > 0) {
             // Create stack on default display instead since this display can only contain 1 stack.
             // TODO: Kinda a hack, but better that having the decision at each call point. Hoping
             // this goes away once ActivityView is no longer using virtual displays.
             return mRootWindowContainer.getDefaultDisplay().createStack(
-                    windowingMode, activityType, onTop, info, intent);
+                    windowingMode, activityType, onTop, info, intent, createdByOrganizer);
         }
 
-        if (activityType == ACTIVITY_TYPE_UNDEFINED) {
+        if (activityType == ACTIVITY_TYPE_UNDEFINED && !createdByOrganizer) {
             // Can't have an undefined stack type yet...so re-map to standard. Anyone that wants
-            // anything else should be passing it in anyways...
+            // anything else should be passing it in anyways...except for the task organizer.
             activityType = ACTIVITY_TYPE_STANDARD;
         }
 
-        if (activityType != ACTIVITY_TYPE_STANDARD) {
+        if (activityType != ACTIVITY_TYPE_STANDARD && activityType != ACTIVITY_TYPE_UNDEFINED) {
             // For now there can be only one stack of a particular non-standard activity type on a
             // display. So, get that ignoring whatever windowing mode it is currently in.
             ActivityStack stack = getStack(WINDOWING_MODE_UNDEFINED, activityType);
@@ -5840,39 +5878,39 @@
         }
 
         final int stackId = getNextStackId();
-        return createStackUnchecked(windowingMode, activityType, stackId, onTop, info, intent);
+        return createStackUnchecked(windowingMode, activityType, stackId, onTop, info, intent,
+                createdByOrganizer);
     }
 
-    /** @return the tile to create the next stack in. */
-    private TaskTile updateLaunchTile(int windowingMode) {
+    /** @return the root task to create the next task in. */
+    private Task updateLaunchRootTask(int windowingMode) {
         if (!isSplitScreenWindowingMode(windowingMode)) {
-            // Only split-screen windowing modes interact with tiles.
+            // Only split-screen windowing modes can do this currently...
             return null;
         }
         for (int i = getStackCount() - 1; i >= 0; --i) {
-            final TaskTile t = getStackAt(i).asTile();
-            if (t == null || t.getRequestedOverrideWindowingMode() != windowingMode) {
+            final Task t = getStackAt(i);
+            if (!t.mCreatedByOrganizer || t.getRequestedOverrideWindowingMode() != windowingMode) {
                 continue;
             }
-            // If not already set, pick a launch tile which is not the one we are launching
-            // into.
-            if (mLaunchTile == null) {
+            // If not already set, pick a launch root which is not the one we are launching into.
+            if (mLaunchRootTask == null) {
                 for (int j = 0, n = getStackCount(); j < n; ++j) {
-                    TaskTile tt = getStackAt(j).asTile();
-                    if (tt != t) {
-                        mLaunchTile = tt;
+                    final Task tt = getStackAt(j);
+                    if (tt.mCreatedByOrganizer && tt != t) {
+                        mLaunchRootTask = tt;
                         break;
                     }
                 }
             }
             return t;
         }
-        return mLaunchTile;
+        return mLaunchRootTask;
     }
 
     @VisibleForTesting
-    ActivityStack createStackUnchecked(int windowingMode, int activityType,
-            int stackId, boolean onTop, ActivityInfo info, Intent intent) {
+    ActivityStack createStackUnchecked(int windowingMode, int activityType, int stackId,
+            boolean onTop, ActivityInfo info, Intent intent, boolean createdByOrganizer) {
         if (windowingMode == WINDOWING_MODE_PINNED && activityType != ACTIVITY_TYPE_STANDARD) {
             throw new IllegalArgumentException("Stack with windowing mode cannot with non standard "
                     + "activity type.");
@@ -5882,19 +5920,25 @@
             info.applicationInfo = new ApplicationInfo();
         }
 
-        TaskTile tile = updateLaunchTile(windowingMode);
-        if (tile != null) {
-            // Since this stack will be put into a tile, its windowingMode will be inherited.
+        // Task created by organizer are added as root.
+        Task launchRootTask = createdByOrganizer ? null : updateLaunchRootTask(windowingMode);
+        if (launchRootTask != null) {
+            // Since this stack will be put into a root task, its windowingMode will be inherited.
             windowingMode = WINDOWING_MODE_UNDEFINED;
         }
+
         final ActivityStack stack = (ActivityStack) Task.create(mAtmService, stackId, activityType,
-                info, intent);
-        addStack(stack, onTop ? POSITION_TOP : POSITION_BOTTOM);
-        stack.setWindowingMode(windowingMode, false /* animate */, false /* showRecents */,
-                false /* enteringSplitScreenMode */, false /* deferEnsuringVisibility */,
-                true /* creating */);
-        if (tile != null) {
-            tile.addChild(stack, 0 /* index */);
+                info, intent, createdByOrganizer);
+        if (launchRootTask != null) {
+            launchRootTask.addChild(stack, onTop ? POSITION_TOP : POSITION_BOTTOM);
+            if (onTop) {
+                positionStackAtTop((ActivityStack) launchRootTask, false /* includingParents */);
+            }
+        } else {
+            addStack(stack, onTop ? POSITION_TOP : POSITION_BOTTOM);
+            stack.setWindowingMode(windowingMode, false /* animate */, false /* showRecents */,
+                    false /* enteringSplitScreenMode */, false /* deferEnsuringVisibility */,
+                    true /* creating */);
         }
         return stack;
     }
@@ -6029,7 +6073,7 @@
         mTmpFindTaskResult.clear();
         for (int stackNdx = getStackCount() - 1; stackNdx >= 0; --stackNdx) {
             final ActivityStack stack = getStackAt(stackNdx);
-            if (!r.hasCompatibleActivityType(stack)) {
+            if (!r.hasCompatibleActivityType(stack) && stack.isLeafTask()) {
                 if (DEBUG_TASKS) {
                     Slog.d(TAG_TASKS, "Skipping stack: (mismatch activity/stack) " + stack);
                 }
@@ -6101,7 +6145,15 @@
             final int activityType = activityTypes[j];
             for (int i = getStackCount() - 1; i >= 0; --i) {
                 final ActivityStack stack = getStackAt(i);
-                if (stack.getActivityType() == activityType) {
+                // Collect the root tasks that are currently being organized.
+                if (stack.isOrganized()) {
+                    for (int k = stack.getChildCount() - 1; k >= 0; --k) {
+                        final ActivityStack childStack = (ActivityStack) stack.getChildAt(k);
+                        if (childStack.getActivityType() == activityType) {
+                            stacks.add(childStack);
+                        }
+                    }
+                } else if (stack.getActivityType() == activityType) {
                     stacks.add(stack);
                 }
             }
@@ -6115,13 +6167,8 @@
     void onSplitScreenModeDismissed() {
         mAtmService.deferWindowLayout();
         try {
-            mLaunchTile = null;
-            for (int i = getStackCount() - 1; i >= 0; --i) {
-                final TaskTile t = getStackAt(i).asTile();
-                if (t != null) {
-                    t.removeAllChildren();
-                }
-            }
+            mLaunchRootTask = null;
+            moveSplitScreenTasksToFullScreen();
         } finally {
             final ActivityStack topFullscreenStack =
                     getTopStackInWindowingMode(WINDOWING_MODE_FULLSCREEN);
@@ -6139,6 +6186,24 @@
         }
     }
 
+    private void moveSplitScreenTasksToFullScreen() {
+        final WindowContainerTransaction wct = new WindowContainerTransaction();
+        mTmpTasks.clear();
+        forAllTasks(task -> {
+            if (task.mCreatedByOrganizer && task.inSplitScreenWindowingMode() && task.hasChild()) {
+                mTmpTasks.add(task);
+            }
+        });
+
+        for (int i = mTmpTasks.size() - 1; i >= 0; i--) {
+            final Task root = mTmpTasks.get(i);
+            for (int j = 0; j < root.getChildCount(); j++) {
+                wct.reparent(root.getChildAt(j).mRemoteToken, null, true /* toTop */);
+            }
+        }
+        mAtmService.mWindowOrganizerController.applyTransaction(wct);
+    }
+
     /**
      * Returns true if the {@param windowingMode} is supported based on other parameters passed in.
      * @param windowingMode The windowing mode we are checking support for.
@@ -6251,7 +6316,7 @@
             }
         }
 
-        final boolean inSplitScreenMode = hasSplitScreenPrimaryTask();
+        final boolean inSplitScreenMode = isSplitScreenModeActivated();
         if (!inSplitScreenMode
                 && windowingMode == WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY) {
             // Switch to the display's windowing mode if we are not in split-screen mode and we are
@@ -6276,10 +6341,6 @@
     }
 
     boolean isTopNotPinnedStack(ActivityStack stack) {
-        // TODO(task-hierarchy): Remove when tiles are in hierarchy.
-        if (stack instanceof TaskTile) {
-            return false;
-        }
         for (int i = getStackCount() - 1; i >= 0; --i) {
             final ActivityStack current = getStackAt(i);
             if (!current.inPinnedWindowingMode()) {
@@ -6416,15 +6477,20 @@
 
     @Override
     public void onRequestedOverrideConfigurationChanged(Configuration overrideConfiguration) {
-        final int currRotation =
-                getRequestedOverrideConfiguration().windowConfiguration.getRotation();
-        if (currRotation != ROTATION_UNDEFINED
-                && currRotation != overrideConfiguration.windowConfiguration.getRotation()) {
-            applyRotationLocked(currRotation,
-                    overrideConfiguration.windowConfiguration.getRotation());
+        final Configuration currOverrideConfig = getRequestedOverrideConfiguration();
+        final int currRotation = currOverrideConfig.windowConfiguration.getRotation();
+        final int overrideRotation = overrideConfiguration.windowConfiguration.getRotation();
+        if (currRotation != ROTATION_UNDEFINED && currRotation != overrideRotation) {
+            if (mFixedRotationLaunchingApp != null) {
+                mFixedRotationLaunchingApp.clearFixedRotationTransform(
+                        () -> applyRotation(currRotation, overrideRotation));
+                // Clear the record because the display will sync to current rotation.
+                mFixedRotationLaunchingApp = null;
+            } else {
+                applyRotation(currRotation, overrideRotation);
+            }
         }
-        mCurrentOverrideConfigurationChanges =
-            getRequestedOverrideConfiguration().diff(overrideConfiguration);
+        mCurrentOverrideConfigurationChanges = currOverrideConfig.diff(overrideConfiguration);
         super.onRequestedOverrideConfigurationChanged(overrideConfiguration);
         mCurrentOverrideConfigurationChanges = 0;
         mWmService.setNewDisplayOverrideConfiguration(overrideConfiguration, this);
@@ -6501,7 +6567,7 @@
                     // If default display is in split-window mode, set windowing mode of the stack
                     // to split-screen secondary. Otherwise, set the windowing mode to undefined by
                     // default to let stack inherited the windowing mode from the new display.
-                    final int windowingMode = toDisplay.hasSplitScreenPrimaryTask()
+                    final int windowingMode = toDisplay.isSplitScreenModeActivated()
                             ? WINDOWING_MODE_SPLIT_SCREEN_SECONDARY
                             : WINDOWING_MODE_UNDEFINED;
                     stack.reparent(toDisplay, true /* onTop */);
@@ -6605,27 +6671,35 @@
      *         already top-most.
      */
     ActivityStack getStackAbove(ActivityStack stack) {
-        final int stackIndex = getIndexOf(stack) + 1;
-        return (stackIndex < getStackCount()) ? getStackAt(stackIndex) : null;
+        final WindowContainer wc = stack.getParent();
+        final int index = wc.mChildren.indexOf(stack) + 1;
+        return (index < wc.mChildren.size()) ? (ActivityStack) wc.mChildren.get(index) : null;
     }
 
     /**
      * Adjusts the {@param stack} behind the last visible stack in the display if necessary.
      * Generally used in conjunction with {@link #moveStackBehindStack}.
      */
+    // TODO(b/151575894): Remove special stack movement methods.
     void moveStackBehindBottomMostVisibleStack(ActivityStack stack) {
         if (stack.shouldBeVisible(null)) {
             // Skip if the stack is already visible
             return;
         }
 
-        // Move the stack to the bottom to not affect the following visibility checks
-        positionStackAtBottom(stack);
+        final boolean isRootTask = stack.isRootTask();
+        if (isRootTask) {
+            // Move the stack to the bottom to not affect the following visibility checks
+            positionStackAtBottom(stack);
+        } else {
+            stack.getParent().positionChildAt(POSITION_BOTTOM, stack, false /* includingParents */);
+        }
 
         // Find the next position where the stack should be placed
-        final int numStacks = getStackCount();
+        final int numStacks = isRootTask ? getStackCount() : stack.getParent().getChildCount();
         for (int stackNdx = 0; stackNdx < numStacks; stackNdx++) {
-            final ActivityStack s = getStackAt(stackNdx);
+            final ActivityStack s = isRootTask ? getStackAt(stackNdx)
+                    : (ActivityStack) stack.getParent().getChildAt(stackNdx);
             if (s == stack) {
                 continue;
             }
@@ -6634,7 +6708,12 @@
                     || winMode == WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
             if (s.shouldBeVisible(null) && isValidWindowingMode) {
                 // Move the provided stack to behind this stack
-                positionStackAt(stack, Math.max(0, stackNdx - 1));
+                final int position = Math.max(0, stackNdx - 1);
+                if (isRootTask) {
+                    positionStackAt(stack, position);
+                } else {
+                    stack.getParent().positionChildAt(position, stack, false /*includingParents */);
+                }
                 break;
             }
         }
@@ -6650,15 +6729,25 @@
             return;
         }
 
+        final WindowContainer parent = stack.getParent();
+        if (parent == null || parent != behindStack.getParent()) {
+            return;
+        }
+
         // Note that positionChildAt will first remove the given stack before inserting into the
         // list, so we need to adjust the insertion index to account for the removed index
         // TODO: Remove this logic when WindowContainer.positionChildAt() is updated to adjust the
         //       position internally
-        final int stackIndex = getIndexOf(stack);
-        final int behindStackIndex = getIndexOf(behindStack);
+        final int stackIndex = parent.mChildren.indexOf(stack);
+        final int behindStackIndex = parent.mChildren.indexOf(behindStack);
         final int insertIndex = stackIndex <= behindStackIndex
                 ? behindStackIndex - 1 : behindStackIndex;
-        positionStackAt(stack, Math.max(0, insertIndex));
+        final int position = Math.max(0, insertIndex);
+        if (stack.isRootTask()) {
+            positionStackAt(stack, position);
+        } else {
+            parent.positionChildAt(position, stack, false /* includingParents */);
+        }
     }
 
     void ensureActivitiesVisible(ActivityRecord starting, int configChanges,
@@ -6695,19 +6784,6 @@
         return getHomeActivityForUser(mRootWindowContainer.mCurrentUser);
     }
 
-    // TODO(task-hierarchy): Remove when tiles are in hierarchy.
-    void addTile(TaskTile tile) {
-        mTaskContainers.addChild(tile, POSITION_BOTTOM);
-        ITaskOrganizer organizer = mAtmService.mTaskOrganizerController.getTaskOrganizer(
-                tile.getWindowingMode());
-        tile.setTaskOrganizer(organizer);
-    }
-
-    // TODO(task-hierarchy): Remove when tiles are in hierarchy.
-    void removeTile(TaskTile tile) {
-        mTaskContainers.removeChild(tile);
-    }
-
     @Nullable
     ActivityRecord getHomeActivityForUser(int userId) {
         final ActivityStack homeStack = getRootHomeTask();
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index 38a406e..367151c 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -29,7 +29,6 @@
 import static android.view.InsetsState.ITYPE_BOTTOM_GESTURES;
 import static android.view.InsetsState.ITYPE_BOTTOM_TAPPABLE_ELEMENT;
 import static android.view.InsetsState.ITYPE_CAPTION_BAR;
-import static android.view.InsetsState.ITYPE_IME;
 import static android.view.InsetsState.ITYPE_LEFT_DISPLAY_CUTOUT;
 import static android.view.InsetsState.ITYPE_LEFT_GESTURES;
 import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
@@ -79,7 +78,6 @@
 import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
 import static android.view.WindowManager.LayoutParams.TYPE_BOOT_PROGRESS;
 import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER;
-import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_CONSUMER;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
 import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG;
@@ -115,7 +113,6 @@
 import static com.android.server.policy.WindowManagerPolicy.TRANSIT_PREVIEW_DONE;
 import static com.android.server.policy.WindowManagerPolicy.TRANSIT_SHOW;
 import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_ABSENT;
-import static com.android.server.wm.ActivityTaskManagerInternal.SleepToken;
 import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_SCREEN_ON;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ANIM;
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYOUT;
@@ -178,7 +175,6 @@
 import android.view.accessibility.AccessibilityManager;
 
 import com.android.internal.R;
-import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.policy.GestureNavigationSettingsObserver;
 import com.android.internal.policy.ScreenDecorationsUtils;
@@ -333,15 +329,6 @@
                 }
             };
 
-    @GuardedBy("mHandler")
-    private SleepToken mDreamingSleepToken;
-
-    @GuardedBy("mHandler")
-    private SleepToken mWindowSleepToken;
-
-    private final Runnable mAcquireSleepTokenRunnable;
-    private final Runnable mReleaseSleepTokenRunnable;
-
     // The windows we were told about in focusChanged.
     private WindowState mFocusedWindow;
     private WindowState mLastFocusedWindow;
@@ -400,9 +387,6 @@
     private boolean mShowingDream;
     private boolean mLastShowingDream;
     private boolean mDreamingLockscreen;
-    private boolean mDreamingSleepTokenNeeded;
-    private boolean mWindowSleepTokenNeeded;
-    private boolean mLastWindowSleepTokenNeeded;
     private boolean mAllowLockscreenWhenOn;
 
     private InputConsumer mInputConsumer = null;
@@ -422,7 +406,6 @@
     private RefreshRatePolicy mRefreshRatePolicy;
 
     // -------- PolicyHandler --------
-    private static final int MSG_UPDATE_DREAMING_SLEEP_TOKEN = 1;
     private static final int MSG_REQUEST_TRANSIENT_BARS = 2;
     private static final int MSG_DISPOSE_INPUT_CONSUMER = 3;
     private static final int MSG_ENABLE_POINTER_LOCATION = 4;
@@ -442,9 +425,6 @@
         @Override
         public void handleMessage(Message msg) {
             switch (msg.what) {
-                case MSG_UPDATE_DREAMING_SLEEP_TOKEN:
-                    updateDreamingSleepToken(msg.arg1 != 0);
-                    break;
                 case MSG_REQUEST_TRANSIENT_BARS:
                     synchronized (mLock) {
                         WindowState targetBar = (msg.arg1 == MSG_REQUEST_TRANSIENT_BARS_ARG_STATUS)
@@ -618,20 +598,6 @@
                 mStatusBarController.getAppTransitionListener());
         mImmersiveModeConfirmation = new ImmersiveModeConfirmation(mContext, looper,
                 mService.mVrModeEnabled);
-        mAcquireSleepTokenRunnable = () -> {
-            if (mWindowSleepToken != null) {
-                return;
-            }
-            mWindowSleepToken = service.mAtmInternal.acquireSleepToken(
-                    "WindowSleepTokenOnDisplay" + displayId, displayId);
-        };
-        mReleaseSleepTokenRunnable = () -> {
-            if (mWindowSleepToken == null) {
-                return;
-            }
-            mWindowSleepToken.release();
-            mWindowSleepToken = null;
-        };
 
         // TODO: Make it can take screenshot on external display
         mScreenshotHelper = displayContent.isDefaultDisplay
@@ -883,7 +849,6 @@
                         | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
                 attrs.flags &= ~WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
                 break;
-            case TYPE_DREAM:
             case TYPE_WALLPAPER:
                 // Dreams and wallpapers don't have an app window token and can thus not be
                 // letterboxed. Hence always let them extend under the cutout.
@@ -1258,13 +1223,6 @@
                 if (DEBUG_ANIM) Slog.i(TAG, "**** STARTING EXIT");
                 return R.anim.app_starting_exit;
             }
-        } else if (win.getAttrs().type == TYPE_DREAM && mDreamingLockscreen
-                && transit == TRANSIT_ENTER) {
-            // Special case: we are animating in a dream, while the keyguard
-            // is shown.  We don't want an animation on the dream, because
-            // we need it shown immediately with the keyguard animating away
-            // to reveal it.
-            return ANIMATION_NONE;
         }
 
         return ANIMATION_STYLEABLE;
@@ -1525,14 +1483,8 @@
      */
     public void beginLayoutLw(DisplayFrames displayFrames, int uiMode) {
         displayFrames.onBeginLayout();
-        final InsetsState insetsState =
-                mDisplayContent.getInsetsStateController().getRawInsetsState();
-
-        // Reset the frame of IME so that the layout of windows above IME won't get influenced.
-        // Once we layout the IME, frames will be set again on the source.
-        insetsState.getSource(ITYPE_IME).setFrame(0, 0, 0, 0);
-
-        updateInsetsStateForDisplayCutout(displayFrames, insetsState);
+        updateInsetsStateForDisplayCutout(displayFrames,
+                mDisplayContent.getInsetsStateController().getRawInsetsState());
         mSystemGestures.screenWidth = displayFrames.mUnrestricted.width();
         mSystemGestures.screenHeight = displayFrames.mUnrestricted.height();
 
@@ -1559,25 +1511,7 @@
                 && (mNotificationShade.getAttrs().privateFlags
                 & PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION) != 0;
 
-        // When the navigation bar isn't visible, we put up a fake input window to catch all
-        // touch events. This way we can detect when the user presses anywhere to bring back the
-        // nav bar and ensure the application doesn't see the event.
-        if (navVisible || navAllowedHidden) {
-            if (mInputConsumer != null) {
-                mInputConsumer.dismiss();
-                mHandler.sendMessage(
-                        mHandler.obtainMessage(MSG_DISPOSE_INPUT_CONSUMER, mInputConsumer));
-                mInputConsumer = null;
-            }
-        } else if (mInputConsumer == null && mStatusBar != null && canHideNavigationBar()) {
-            mInputConsumer = mDisplayContent.getInputMonitor().createInputConsumer(
-                    mHandler.getLooper(),
-                    INPUT_CONSUMER_NAVIGATION,
-                    HideNavInputEventReceiver::new);
-            // As long as mInputConsumer is active, hover events are not dispatched to the app
-            // and the pointer icon is likely to become stale. Hide it to avoid confusion.
-            InputManager.getInstance().setPointerIconType(PointerIcon.TYPE_NULL);
-        }
+        updateHideNavInputEventReceiver(navVisible, navAllowedHidden);
 
         // For purposes of positioning and showing the nav bar, if we have decided that it can't
         // be hidden (because of the screen aspect ratio), then take that into account.
@@ -1599,6 +1533,28 @@
         mLastNotificationShadeForcesShowingNavigation = notificationShadeForcesShowingNavigation;
     }
 
+    void updateHideNavInputEventReceiver(boolean navVisible, boolean navAllowedHidden) {
+        // When the navigation bar isn't visible, we put up a fake input window to catch all
+        // touch events. This way we can detect when the user presses anywhere to bring back the
+        // nav bar and ensure the application doesn't see the event.
+        if (navVisible || navAllowedHidden) {
+            if (mInputConsumer != null) {
+                mInputConsumer.dismiss();
+                mHandler.sendMessage(
+                        mHandler.obtainMessage(MSG_DISPOSE_INPUT_CONSUMER, mInputConsumer));
+                mInputConsumer = null;
+            }
+        } else if (mInputConsumer == null && mStatusBar != null && canHideNavigationBar()) {
+            mInputConsumer = mDisplayContent.getInputMonitor().createInputConsumer(
+                    mHandler.getLooper(),
+                    INPUT_CONSUMER_NAVIGATION,
+                    HideNavInputEventReceiver::new);
+            // As long as mInputConsumer is active, hover events are not dispatched to the app
+            // and the pointer icon is likely to become stale. Hide it to avoid confusion.
+            InputManager.getInstance().setPointerIconType(PointerIcon.TYPE_NULL);
+        }
+    }
+
     private static void updateInsetsStateForDisplayCutout(DisplayFrames displayFrames,
             InsetsState state) {
         if (displayFrames.mDisplayCutout.getDisplayCutout().isEmpty()) {
@@ -2531,7 +2487,6 @@
 
         mAllowLockscreenWhenOn = false;
         mShowingDream = false;
-        mWindowSleepTokenNeeded = false;
         mIsFreeformWindowOverlappingWithNavBar = false;
     }
 
@@ -2564,7 +2519,7 @@
             if ((fl & FLAG_FORCE_NOT_FULLSCREEN) != 0) {
                 mForceStatusBar = true;
             }
-            if (attrs.type == TYPE_DREAM) {
+            if (win.isDreamWindow()) {
                 // If the lockscreen was showing when the dream started then wait
                 // for the dream to draw before hiding the lockscreen.
                 if (!mDreamingLockscreen
@@ -2661,15 +2616,6 @@
         // while the dream is showing.
         if (!mShowingDream) {
             mDreamingLockscreen = mService.mPolicy.isKeyguardShowingAndNotOccluded();
-            if (mDreamingSleepTokenNeeded) {
-                mDreamingSleepTokenNeeded = false;
-                mHandler.obtainMessage(MSG_UPDATE_DREAMING_SLEEP_TOKEN, 0, 1).sendToTarget();
-            }
-        } else {
-            if (!mDreamingSleepTokenNeeded) {
-                mDreamingSleepTokenNeeded = true;
-                mHandler.obtainMessage(MSG_UPDATE_DREAMING_SLEEP_TOKEN, 1, 1).sendToTarget();
-            }
         }
 
         if (mStatusBar != null) {
@@ -2745,23 +2691,10 @@
             mService.notifyShowingDreamChanged();
         }
 
-        updateWindowSleepToken();
-
         mService.mPolicy.setAllowLockscreenWhenOn(getDisplayId(), mAllowLockscreenWhenOn);
         return changes;
     }
 
-    private void updateWindowSleepToken() {
-        if (mWindowSleepTokenNeeded && !mLastWindowSleepTokenNeeded) {
-            mHandler.removeCallbacks(mReleaseSleepTokenRunnable);
-            mHandler.post(mAcquireSleepTokenRunnable);
-        } else if (!mWindowSleepTokenNeeded && mLastWindowSleepTokenNeeded) {
-            mHandler.removeCallbacks(mAcquireSleepTokenRunnable);
-            mHandler.post(mReleaseSleepTokenRunnable);
-        }
-        mLastWindowSleepTokenNeeded = mWindowSleepTokenNeeded;
-    }
-
     /**
      * @return Whether the top app should hide the statusbar based on the top fullscreen opaque
      *         window.
@@ -3196,21 +3129,6 @@
         return !mShowingDream;
     }
 
-    private void updateDreamingSleepToken(boolean acquire) {
-        if (acquire) {
-            final int displayId = getDisplayId();
-            if (mDreamingSleepToken == null) {
-                mDreamingSleepToken = mService.mAtmInternal.acquireSleepToken(
-                        "DreamOnDisplay" + displayId, displayId);
-            }
-        } else {
-            if (mDreamingSleepToken != null) {
-                mDreamingSleepToken.release();
-                mDreamingSleepToken = null;
-            }
-        }
-    }
-
     private void requestTransientBars(WindowState swipeTarget) {
         if (!mService.mPolicy.isUserSetupComplete()) {
             // Swipe-up for navigation bar is disabled during setup
@@ -3890,7 +3808,6 @@
         }
         pw.print(prefix); pw.print("mShowingDream="); pw.print(mShowingDream);
         pw.print(" mDreamingLockscreen="); pw.print(mDreamingLockscreen);
-        pw.print(" mDreamingSleepToken="); pw.println(mDreamingSleepToken);
         if (mStatusBar != null) {
             pw.print(prefix); pw.print("mStatusBar="); pw.print(mStatusBar);
         }
diff --git a/services/core/java/com/android/server/wm/DisplayRotation.java b/services/core/java/com/android/server/wm/DisplayRotation.java
index 57babb0..af89a05 100644
--- a/services/core/java/com/android/server/wm/DisplayRotation.java
+++ b/services/core/java/com/android/server/wm/DisplayRotation.java
@@ -54,7 +54,7 @@
 import android.view.IDisplayWindowRotationCallback;
 import android.view.IWindowManager;
 import android.view.Surface;
-import android.view.WindowContainerTransaction;
+import android.window.WindowContainerTransaction;
 
 import com.android.internal.R;
 import com.android.internal.annotations.VisibleForTesting;
@@ -484,11 +484,8 @@
             prepareNormalRotationAnimation();
         }
 
-        // TODO(b/147469351): Remove the restriction.
-        if (mDisplayContent.mFixedRotationLaunchingApp == null) {
-            // Give a remote handler (system ui) some time to reposition things.
-            startRemoteRotation(oldRotation, mRotation);
-        }
+        // Give a remote handler (system ui) some time to reposition things.
+        startRemoteRotation(oldRotation, mRotation);
 
         return true;
     }
@@ -531,8 +528,7 @@
             try {
                 mDisplayContent.sendNewConfiguration();
                 if (t != null) {
-                    mService.mAtmService.mTaskOrganizerController.applyContainerTransaction(t,
-                            null /* organizer */);
+                    mService.mAtmService.mWindowOrganizerController.applyTransaction(t);
                 }
             } finally {
                 mService.mAtmService.continueWindowLayout();
diff --git a/services/core/java/com/android/server/wm/InputConsumerImpl.java b/services/core/java/com/android/server/wm/InputConsumerImpl.java
index c6183de..a9a9df8 100644
--- a/services/core/java/com/android/server/wm/InputConsumerImpl.java
+++ b/services/core/java/com/android/server/wm/InputConsumerImpl.java
@@ -149,6 +149,10 @@
         t.setLayer(mInputSurface, layer);
     }
 
+    void reparent(SurfaceControl.Transaction t, WindowContainer wc) {
+        t.reparent(mInputSurface, wc.getSurfaceControl());
+    }
+
     void disposeChannelsLw() {
         mService.mInputManager.unregisterInputChannel(mServerChannel);
         mClientChannel.dispose();
diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java
index b638e49..88cdd17 100644
--- a/services/core/java/com/android/server/wm/InputMonitor.java
+++ b/services/core/java/com/android/server/wm/InputMonitor.java
@@ -301,7 +301,7 @@
          * we may have some issues with modal-windows, but I guess we can
          * cross that bridge when we come to implementing full-screen TaskOrg
          */
-        if (child.getTask() != null && child.getTask().isControlledByTaskOrganizer()) {
+        if (child.getTask() != null && child.getTask().isOrganized()) {
             inputWindowHandle.replaceTouchableRegionWithCrop(null /* Use this surfaces crop */);
         }
 
@@ -511,14 +511,13 @@
 
             if (w.inPinnedWindowingMode()) {
                 if (mAddPipInputConsumerHandle) {
-                    // Update the bounds of the Pip input consumer to match the window bounds.
-                    w.getBounds(mTmpRect);
-                    mPipInputConsumer.layout(mInputTransaction, mTmpRect);
 
-                    // The touchable region is relative to the surface top-left
-                    mTmpRect.offsetTo(0, 0);
-                    mPipInputConsumer.mWindowHandle.touchableRegion.set(mTmpRect);
-                    mPipInputConsumer.show(mInputTransaction, w);
+                    final Task rootTask = w.getTask().getRootTask();
+                    mPipInputConsumer.mWindowHandle.replaceTouchableRegionWithCrop(
+                            rootTask.getSurfaceControl());
+                    // We set the layer to z=MAX-1 so that it's always on top.
+                    mPipInputConsumer.reparent(mInputTransaction, rootTask);
+                    mPipInputConsumer.show(mInputTransaction, Integer.MAX_VALUE - 1);
                     mAddPipInputConsumerHandle = false;
                 }
             }
diff --git a/services/core/java/com/android/server/wm/InsetsPolicy.java b/services/core/java/com/android/server/wm/InsetsPolicy.java
index 30912e5..fda70d1 100644
--- a/services/core/java/com/android/server/wm/InsetsPolicy.java
+++ b/services/core/java/com/android/server/wm/InsetsPolicy.java
@@ -22,11 +22,10 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
 import static android.view.InsetsController.ANIMATION_TYPE_HIDE;
 import static android.view.InsetsController.ANIMATION_TYPE_SHOW;
-import static android.view.InsetsController.LAYOUT_INSETS_DURING_ANIMATION_HIDDEN;
-import static android.view.InsetsController.LAYOUT_INSETS_DURING_ANIMATION_SHOWN;
 import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
 import static android.view.InsetsState.ITYPE_STATUS_BAR;
 import static android.view.SyncRtSurfaceTransactionApplier.applyParams;
+import static android.view.WindowInsetsController.BEHAVIOR_SHOW_BARS_BY_TOUCH;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_SHOW_STATUS_BAR;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION;
 
@@ -93,6 +92,13 @@
                 || focusedWin != getNavControlTarget(focusedWin)
                 || focusedWin.getRequestedInsetsState().getSource(ITYPE_NAVIGATION_BAR)
                         .isVisible());
+        updateHideNavInputEventReceiver();
+    }
+
+    private void updateHideNavInputEventReceiver() {
+        mPolicy.updateHideNavInputEventReceiver(!isHidden(ITYPE_NAVIGATION_BAR),
+                mFocusedWin != null
+                        && mFocusedWin.mAttrs.insetsFlags.behavior != BEHAVIOR_SHOW_BARS_BY_TOUCH);
     }
 
     boolean isHidden(@InternalInsetsType int type) {
@@ -171,6 +177,7 @@
         if (windowState == getNavControlTarget(mFocusedWin)) {
             mNavBar.setVisible(state.getSource(ITYPE_NAVIGATION_BAR).isVisible());
         }
+        updateHideNavInputEventReceiver();
     }
 
     /**
@@ -299,7 +306,7 @@
     private void controlAnimationUnchecked(int typesReady,
             SparseArray<InsetsSourceControl> controls, boolean show, Runnable callback) {
         InsetsPolicyAnimationControlListener listener =
-                new InsetsPolicyAnimationControlListener(show, callback);
+                new InsetsPolicyAnimationControlListener(show, callback, typesReady);
         listener.mControlCallbacks.controlAnimationUnchecked(typesReady, controls, show);
     }
 
@@ -328,8 +335,8 @@
         Runnable mFinishCallback;
         InsetsPolicyAnimationControlCallbacks mControlCallbacks;
 
-        InsetsPolicyAnimationControlListener(boolean show, Runnable finishCallback) {
-            super(show, true /* useSfVsync */);
+        InsetsPolicyAnimationControlListener(boolean show, Runnable finishCallback, int types) {
+            super(show, false /* hasCallbacks */, types);
             mFinishCallback = finishCallback;
             mControlCallbacks = new InsetsPolicyAnimationControlCallbacks(this);
         }
@@ -361,7 +368,7 @@
                 mAnimationControl = new InsetsAnimationControlImpl(controls,
                         mFocusedWin.getDisplayContent().getBounds(), getState(),
                         mListener, typesReady, this, mListener.getDurationMs(),
-                        InsetsController.INTERPOLATOR, true,
+                        InsetsController.SYSTEM_BARS_INTERPOLATOR,
                         show ? ANIMATION_TYPE_SHOW : ANIMATION_TYPE_HIDE);
                 SurfaceAnimationThread.getHandler().post(
                         () -> mListener.onReady(mAnimationControl, typesReady));
diff --git a/services/core/java/com/android/server/wm/InsetsStateController.java b/services/core/java/com/android/server/wm/InsetsStateController.java
index ee36db9..04454a5 100644
--- a/services/core/java/com/android/server/wm/InsetsStateController.java
+++ b/services/core/java/com/android/server/wm/InsetsStateController.java
@@ -16,6 +16,7 @@
 
 package com.android.server.wm;
 
+import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
 import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
 import static android.view.InsetsState.ITYPE_CAPTION_BAR;
 import static android.view.InsetsState.ITYPE_IME;
@@ -87,7 +88,8 @@
         final InsetsSourceProvider provider = target.getControllableInsetProvider();
         final @InternalInsetsType int type = provider != null
                 ? provider.getSource().getType() : ITYPE_INVALID;
-        return getInsetsForTypeAndWindowingMode(type, target.getWindowingMode());
+        return getInsetsForDispatchInner(type, target.getWindowingMode(), target.isAlwaysOnTop(),
+                isAboveIme(target));
     }
 
     InsetsState getInsetsForWindowMetrics(@NonNull WindowManager.LayoutParams attrs) {
@@ -95,11 +97,24 @@
         final WindowToken token = mDisplayContent.getWindowToken(attrs.token);
         final @WindowingMode int windowingMode = token != null
                 ? token.getWindowingMode() : WINDOWING_MODE_UNDEFINED;
-        return getInsetsForTypeAndWindowingMode(type, windowingMode);
+        final boolean alwaysOnTop = token != null && token.isAlwaysOnTop();
+        return getInsetsForDispatchInner(type, windowingMode, alwaysOnTop, isAboveIme(token));
+    }
+
+    private boolean isAboveIme(WindowContainer target) {
+        final WindowState imeWindow = mDisplayContent.mInputMethodWindow;
+        if (target == null || imeWindow == null) {
+            return false;
+        }
+        if (target instanceof WindowState) {
+            final WindowState win = (WindowState) target;
+            return win.needsRelativeLayeringToIme() || !win.mBehindIme;
+        }
+        return false;
     }
 
     private static @InternalInsetsType int getInsetsTypeForWindowType(int type) {
-        switch(type) {
+        switch (type) {
             case TYPE_STATUS_BAR:
                 return ITYPE_STATUS_BAR;
             case TYPE_NAVIGATION_BAR:
@@ -112,8 +127,8 @@
     }
 
     /** @see #getInsetsForDispatch */
-    private InsetsState getInsetsForTypeAndWindowingMode(@InternalInsetsType int type,
-            @WindowingMode int windowingMode) {
+    private InsetsState getInsetsForDispatchInner(@InternalInsetsType int type,
+            @WindowingMode int windowingMode, boolean isAlwaysOnTop, boolean aboveIme) {
         InsetsState state = mState;
 
         if (type != ITYPE_INVALID) {
@@ -147,12 +162,18 @@
             }
         }
 
-        if (WindowConfiguration.isFloating(windowingMode)) {
+        if (WindowConfiguration.isFloating(windowingMode)
+                || (windowingMode == WINDOWING_MODE_MULTI_WINDOW && isAlwaysOnTop)) {
             state = new InsetsState(state);
             state.removeSource(ITYPE_STATUS_BAR);
             state.removeSource(ITYPE_NAVIGATION_BAR);
         }
 
+        if (aboveIme) {
+            state = new InsetsState(state);
+            state.removeSource(ITYPE_IME);
+        }
+
         return state;
     }
 
diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java
index 44034ed..6b39fd2 100644
--- a/services/core/java/com/android/server/wm/KeyguardController.java
+++ b/services/core/java/com/android/server/wm/KeyguardController.java
@@ -406,12 +406,11 @@
             // show on top of the lock screen. In this can we want to dismiss the docked
             // stack since it will be complicated/risky to try to put the activity on top
             // of the lock screen in the right fullscreen configuration.
-            final ActivityStack stack =
-                    mRootWindowContainer.getDefaultDisplay().getRootSplitScreenPrimaryTask();
-            if (stack == null) {
+            final DisplayContent display = mRootWindowContainer.getDefaultDisplay();
+            if (!display.isSplitScreenModeActivated()) {
                 return;
             }
-            mRootWindowContainer.getDefaultDisplay().onSplitScreenModeDismissed();
+            display.onSplitScreenModeDismissed();
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/RecentTasks.java b/services/core/java/com/android/server/wm/RecentTasks.java
index bd5666d..12be9df 100644
--- a/services/core/java/com/android/server/wm/RecentTasks.java
+++ b/services/core/java/com/android/server/wm/RecentTasks.java
@@ -21,9 +21,11 @@
 import static android.app.ActivityManager.RECENT_WITH_EXCLUDED;
 import static android.app.ActivityTaskManager.INVALID_TASK_ID;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
+import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
 import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
 import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
@@ -1298,6 +1300,7 @@
         switch (task.getActivityType()) {
             case ACTIVITY_TYPE_HOME:
             case ACTIVITY_TYPE_RECENTS:
+            case ACTIVITY_TYPE_DREAM:
                 // Ignore certain activity types completely
                 return false;
             case ACTIVITY_TYPE_ASSISTANT:
@@ -1307,6 +1310,7 @@
                         == FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) {
                     return false;
                 }
+                break;
         }
 
         // Ignore certain windowing modes
@@ -1314,23 +1318,21 @@
             case WINDOWING_MODE_PINNED:
                 return false;
             case WINDOWING_MODE_SPLIT_SCREEN_PRIMARY:
-                if (DEBUG_RECENTS_TRIM_TASKS) Slog.d(TAG, "\ttop=" + task.getStack().getTopMostTask());
+                if (DEBUG_RECENTS_TRIM_TASKS) {
+                    Slog.d(TAG, "\ttop=" + task.getStack().getTopMostTask());
+                }
                 final ActivityStack stack = task.getStack();
                 if (stack != null && stack.getTopMostTask() == task) {
                     // Only the non-top task of the primary split screen mode is visible
                     return false;
                 }
-        }
-
-        // Tasks managed by/associated with an ActivityView should be excluded from recents.
-        // singleTaskInstance is set on the VirtualDisplay managed by ActivityView
-        // TODO(b/126185105): Find a different signal to use besides isSingleTaskInstance
-        final ActivityStack stack = task.getStack();
-        if (stack != null) {
-            DisplayContent display = stack.getDisplay();
-            if (display != null && display.isSingleTaskInstance()) {
-                return false;
-            }
+                break;
+            case WINDOWING_MODE_MULTI_WINDOW:
+                // Ignore tasks that are always on top
+                if (task.isAlwaysOnTop()) {
+                    return false;
+                }
+                break;
         }
 
         // If we're in lock task mode, ignore the root task
diff --git a/services/core/java/com/android/server/wm/RecentsAnimation.java b/services/core/java/com/android/server/wm/RecentsAnimation.java
index adafdec..057592c 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimation.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimation.java
@@ -388,17 +388,24 @@
                     // surfaces needs to be done immediately.
                     mWindowManager.executeAppTransition();
 
-                    if (targetStack.getTile() != null) {
+                    final Task rootTask = targetStack.getRootTask();
+                    if (rootTask.isOrganized()) {
                         // Client state may have changed during the recents animation, so force
                         // send task info so the client can synchronize its state.
                         mService.mTaskOrganizerController.dispatchTaskInfoChanged(
-                                targetStack.mTile, true /* force */);
+                                rootTask, true /* force */);
                     }
                 } catch (Exception e) {
                     Slog.e(TAG, "Failed to clean up recents activity", e);
                     throw e;
                 } finally {
                     mService.continueWindowLayout();
+                    // Make sure the surfaces are updated with the latest state. Sometimes the
+                    // surface placement may be skipped if display configuration is changed (i.e.
+                    // {@link DisplayContent#mWaitingForConfig} is true).
+                    if (mWindowManager.mRoot.isLayoutNeeded()) {
+                        mWindowManager.mRoot.performSurfacePlacement();
+                    }
                     Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
                 }
             });
diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java
index 3e5cb50..a30b70d 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimationController.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java
@@ -667,7 +667,7 @@
                         mTargetActivityRecord.token);
             }
             if (mTargetActivityRecord.hasFixedRotationTransform()) {
-                mTargetActivityRecord.clearFixedRotationTransform();
+                mTargetActivityRecord.finishFixedRotationTransform();
             }
         }
 
diff --git a/services/core/java/com/android/server/wm/ResetTargetTaskHelper.java b/services/core/java/com/android/server/wm/ResetTargetTaskHelper.java
index 45f8a15..420997a 100644
--- a/services/core/java/com/android/server/wm/ResetTargetTaskHelper.java
+++ b/services/core/java/com/android/server/wm/ResetTargetTaskHelper.java
@@ -20,7 +20,6 @@
 import static com.android.server.wm.ActivityStack.TAG_TASKS;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_ADD_REMOVE;
 import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_TASKS;
-import static com.android.server.wm.Task.REPARENT_LEAVE_STACK_IN_PLACE;
 
 import android.app.ActivityOptions;
 import android.content.Intent;
@@ -233,29 +232,6 @@
         }
 
         final ActivityTaskManagerService atmService = mTargetStack.mAtmService;
-        final ArrayList<Task> createdTasks = new ArrayList<>();
-        while (!mPendingReparentActivities.isEmpty()) {
-            final ActivityRecord r = mPendingReparentActivities.remove(0);
-            final ActivityRecord bottom = mTargetStack.getBottomMostActivity();
-            final Task targetTask;
-            if (bottom != null && r.taskAffinity.equals(bottom.getTask().affinity)) {
-                // If the activity currently at the bottom has the same task affinity as
-                // the one we are moving, then merge it into the same task.
-                targetTask = bottom.getTask();
-                if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Start pushing activity "
-                        + r + " out to bottom task " + targetTask);
-            } else {
-                targetTask = mTargetStack.reuseOrCreateTask(
-                        r.info, null /*intent*/, false /*toTop*/);
-                targetTask.affinityIntent = r.intent;
-                createdTasks.add(targetTask);
-                if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Start pushing activity "
-                        + r + " out to new task " + targetTask);
-            }
-            r.reparent(targetTask, 0 /* position */, "resetTargetTaskIfNeeded");
-            atmService.mStackSupervisor.mRecentTasks.add(targetTask);
-        }
-
         DisplayContent display = mTargetStack.getDisplay();
         final boolean singleTaskInstanceDisplay = display.isSingleTaskInstance();
         if (singleTaskInstanceDisplay) {
@@ -264,16 +240,33 @@
 
         final int windowingMode = mTargetStack.getWindowingMode();
         final int activityType = mTargetStack.getActivityType();
-        if (!singleTaskInstanceDisplay && !display.alwaysCreateStack(windowingMode, activityType)) {
-            return;
-        }
 
-        while (!createdTasks.isEmpty()) {
-            final Task targetTask = createdTasks.remove(createdTasks.size() - 1);
-            final ActivityStack targetStack = display.getOrCreateStack(
-                    windowingMode, activityType, false /* onTop */);
-            targetTask.reparent(targetStack, false /* toTop */, REPARENT_LEAVE_STACK_IN_PLACE,
-                    false /* animate */, true /* deferResume */, "resetTargetTask");
+        while (!mPendingReparentActivities.isEmpty()) {
+            final ActivityRecord r = mPendingReparentActivities.remove(0);
+            final boolean alwaysCreateTask = DisplayContent.alwaysCreateStack(windowingMode,
+                    activityType);
+            final Task task = alwaysCreateTask
+                    ? display.getBottomMostTask() : mTargetStack.getBottomMostTask();
+            Task targetTask = null;
+            if (task != null && r.taskAffinity.equals(task.affinity)) {
+                // If the activity currently at the bottom has the same task affinity as
+                // the one we are moving, then merge it into the same task.
+                targetTask = task;
+                if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Start pushing activity "
+                        + r + " out to bottom task " + targetTask);
+            }
+            if (targetTask == null) {
+                if (alwaysCreateTask) {
+                    targetTask = display.getOrCreateStack(windowingMode, activityType,
+                            false /* onTop */);
+                } else {
+                    targetTask = mTargetStack.reuseOrCreateTask(r.info, null /*intent*/,
+                            false /*toTop*/);
+                }
+                targetTask.affinityIntent = r.intent;
+            }
+            r.reparent(targetTask, 0 /* position */, "resetTargetTaskIfNeeded");
+            atmService.mStackSupervisor.mRecentTasks.add(targetTask);
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java
index ebf1bc9..76c16d4 100644
--- a/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -18,6 +18,7 @@
 
 import static android.app.ActivityTaskManager.INVALID_TASK_ID;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
@@ -35,7 +36,6 @@
 import static android.view.Display.INVALID_DISPLAY;
 import static android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
 import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_SUSTAINED_PERFORMANCE_MODE;
-import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
 import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG;
 import static android.view.WindowManager.TRANSIT_CRASHING_ACTIVITY_CLOSE;
 import static android.view.WindowManager.TRANSIT_SHOW_SINGLE_TASK_DISPLAY;
@@ -795,10 +795,10 @@
         return leakedSurface || killedApps;
     }
 
-    void performSurfacePlacement(boolean recoveringMemory) {
+    void performSurfacePlacement() {
         Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "performSurfacePlacement");
         try {
-            performSurfacePlacementNoTrace(recoveringMemory);
+            performSurfacePlacementNoTrace();
         } finally {
             Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
         }
@@ -806,7 +806,7 @@
 
     // "Something has changed!  Let's make it correct now."
     // TODO: Super crazy long method that should be broken down...
-    void performSurfacePlacementNoTrace(boolean recoveringMemory) {
+    void performSurfacePlacementNoTrace() {
         if (DEBUG_WINDOW_TRACE) Slog.v(TAG, "performSurfacePlacementInner: entry. Called by "
                 + Debug.getCallers(3));
 
@@ -841,7 +841,7 @@
         Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "applySurfaceChanges");
         mWmService.openSurfaceTransaction();
         try {
-            applySurfaceChangesTransaction(recoveringMemory);
+            applySurfaceChangesTransaction();
         } catch (RuntimeException e) {
             Slog.wtf(TAG, "Unhandled exception in Window Manager", e);
         } finally {
@@ -1041,7 +1041,7 @@
         }
     }
 
-    private void applySurfaceChangesTransaction(boolean recoveringMemory) {
+    private void applySurfaceChangesTransaction() {
         mHoldScreenWindow = null;
         mObscuringWindow = null;
 
@@ -1064,7 +1064,7 @@
         final int count = mChildren.size();
         for (int j = 0; j < count; ++j) {
             final DisplayContent dc = mChildren.get(j);
-            dc.applySurfaceChangesTransaction(recoveringMemory);
+            dc.applySurfaceChangesTransaction();
         }
 
         // Give the display manager a chance to adjust properties like display rotation if it needs
@@ -1137,7 +1137,7 @@
                 // While a dream or keyguard is showing, obscure ordinary application content on
                 // secondary displays (by forcibly enabling mirroring unless there is other content
                 // we want to show) but still allow opaque keyguard dialogs to be shown.
-                if (type == TYPE_DREAM || mWmService.mPolicy.isKeyguardShowing()) {
+                if (w.isDreamWindow() || mWmService.mPolicy.isKeyguardShowing()) {
                     mObscureApplicationContentOnSecondaryDisplays = true;
                 }
                 displayHasContent = true;
@@ -1970,8 +1970,7 @@
         final int focusStackId = topFocusedStack != null
                 ? topFocusedStack.getRootTaskId() : INVALID_TASK_ID;
         // We dismiss the docked stack whenever we switch users.
-        final ActivityStack dockedStack = getDefaultDisplay().getRootSplitScreenPrimaryTask();
-        if (dockedStack != null) {
+        if (getDefaultDisplay().isSplitScreenModeActivated()) {
             getDefaultDisplay().onSplitScreenModeDismissed();
         }
         // Also dismiss the pinned stack whenever we switch users. Removing the pinned stack will
@@ -2110,20 +2109,18 @@
             final ActivityStack stack;
             if (singleActivity) {
                 stack = r.getRootTask();
+                stack.setWindowingMode(WINDOWING_MODE_PINNED);
             } else {
-                // In the case of multiple activities, we will create a new stack for it and then
-                // move the PIP activity into the stack.
-                // We will then perform a windowing mode change for both scenarios.
-                stack = display.createStack(
-                        r.getRootTask().getRequestedOverrideWindowingMode(),
-                        r.getActivityType(), ON_TOP, r.info, r.intent);
+                // In the case of multiple activities, we will create a new task for it and then
+                // move the PIP activity into the task.
+                stack = display.createStack(WINDOWING_MODE_PINNED, r.getActivityType(), ON_TOP,
+                        r.info, r.intent, false /* createdByOrganizer */);
+
                 // There are multiple activities in the task and moving the top activity should
                 // reveal/leave the other activities in their original task.
                 r.reparent(stack, MAX_VALUE, "moveActivityToStack");
             }
 
-            stack.setWindowingMode(WINDOWING_MODE_PINNED);
-
             // Reset the state that indicates it can enter PiP while pausing after we've moved it
             // to the pinned stack
             r.supportsEnterPipOnTaskSwitch = false;
@@ -2291,6 +2288,9 @@
                                 TRANSIT_SHOW_SINGLE_TASK_DISPLAY, false);
                     }
                     stack.awakeFromSleepingLocked();
+                    if (display.isSingleTaskInstance()) {
+                        display.executeAppTransition();
+                    }
                     if (stack.isFocusedStackOnDisplay()
                             && !mStackSupervisor.getKeyguardController()
                             .isKeyguardOrAodShowing(display.mDisplayId)) {
@@ -2799,16 +2799,19 @@
         if (stack == null && r != null) {
             stack = r.getRootTask();
         }
+        int windowingMode = launchParams != null ? launchParams.mWindowingMode
+                : WindowConfiguration.WINDOWING_MODE_UNDEFINED;
         if (stack != null) {
             display = stack.getDisplay();
             if (display != null && canLaunchOnDisplay(r, display.mDisplayId)) {
-                int windowingMode = launchParams != null ? launchParams.mWindowingMode
-                        : WindowConfiguration.WINDOWING_MODE_UNDEFINED;
                 if (windowingMode == WindowConfiguration.WINDOWING_MODE_UNDEFINED) {
                     windowingMode = display.resolveWindowingMode(r, options, candidateTask,
                             activityType);
                 }
-                if (stack.isCompatible(windowingMode, activityType)) {
+                // Always allow organized tasks that created by organizer since the activity type
+                // of an organized task is decided by the activity type of its top child, which
+                // could be incompatible with the given windowing mode and activity type.
+                if (stack.isCompatible(windowingMode, activityType) || stack.mCreatedByOrganizer) {
                     return stack;
                 }
                 if (windowingMode == WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY
@@ -2826,6 +2829,10 @@
 
         if (display == null || !canLaunchOnDisplay(r, display.mDisplayId)) {
             display = getDefaultDisplay();
+            if (windowingMode == WindowConfiguration.WINDOWING_MODE_UNDEFINED) {
+                windowingMode = display.resolveWindowingMode(r, options, candidateTask,
+                        activityType);
+            }
         }
 
         return display.getOrCreateStack(r, options, candidateTask, activityType, onTop);
@@ -2847,7 +2854,8 @@
      * @param candidateTask The possible task the activity might be put in.
      * @return Existing stack if there is a valid one, new dynamic stack if it is valid or null.
      */
-    private ActivityStack getValidLaunchStackOnDisplay(int displayId, @NonNull ActivityRecord r,
+    @VisibleForTesting
+    ActivityStack getValidLaunchStackOnDisplay(int displayId, @NonNull ActivityRecord r,
             @Nullable Task candidateTask, @Nullable ActivityOptions options,
             @Nullable LaunchParamsController.LaunchParams launchParams) {
         final DisplayContent displayContent = getDisplayContentOrCreate(displayId);
@@ -2868,6 +2876,13 @@
             if (attachedDisplayId == INVALID_DISPLAY || attachedDisplayId == displayId) {
                 return candidateTask.getStack();
             }
+            // Or the candidate task is already a root task that can be reused by reparenting
+            // it to the target display.
+            if (candidateTask.isRootTask()) {
+                final ActivityStack stack = candidateTask.getStack();
+                displayContent.moveStackToDisplay(stack, true /* onTop */);
+                return stack;
+            }
         }
 
         int windowingMode;
@@ -2915,11 +2930,10 @@
             case ACTIVITY_TYPE_HOME: return r.isActivityTypeHome();
             case ACTIVITY_TYPE_RECENTS: return r.isActivityTypeRecents();
             case ACTIVITY_TYPE_ASSISTANT: return r.isActivityTypeAssistant();
+            case ACTIVITY_TYPE_DREAM: return r.isActivityTypeDream();
         }
-        // TODO(task-hierarchy): Find another way to differentiate tile from normal stack once it is
-        //                       part of the hierarchy
-        if (stack instanceof TaskTile) {
-            // Don't launch directly into tiles.
+        if (stack.mCreatedByOrganizer) {
+            // Don't launch directly into task created by organizer...but why can't we?
             return false;
         }
         // There is a 1-to-1 relationship between stack and task when not in
@@ -3381,11 +3395,10 @@
 
     @VisibleForTesting
     void getRunningTasks(int maxNum, List<ActivityManager.RunningTaskInfo> list,
-            @WindowConfiguration.ActivityType int ignoreActivityType,
-            @WindowConfiguration.WindowingMode int ignoreWindowingMode, int callingUid,
-            boolean allowed, boolean crossUser, ArraySet<Integer> profileIds) {
-        mStackSupervisor.getRunningTasks().getTasks(maxNum, list, ignoreActivityType,
-                ignoreWindowingMode, this, callingUid, allowed, crossUser, profileIds);
+            boolean filterOnlyVisibleRecents, int callingUid, boolean allowed, boolean crossUser,
+            ArraySet<Integer> profileIds) {
+        mStackSupervisor.getRunningTasks().getTasks(maxNum, list, filterOnlyVisibleRecents, this,
+                callingUid, allowed, crossUser, profileIds);
     }
 
     void sendPowerHintForLaunchStartIfNeeded(boolean forceSend, ActivityRecord targetActivity) {
diff --git a/services/core/java/com/android/server/wm/RunningTasks.java b/services/core/java/com/android/server/wm/RunningTasks.java
index 02077fb..3509ba72 100644
--- a/services/core/java/com/android/server/wm/RunningTasks.java
+++ b/services/core/java/com/android/server/wm/RunningTasks.java
@@ -16,12 +16,10 @@
 
 package com.android.server.wm;
 
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
-import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
 
 import android.app.ActivityManager.RunningTaskInfo;
-import android.app.WindowConfiguration.ActivityType;
-import android.app.WindowConfiguration.WindowingMode;
 import android.os.UserHandle;
 import android.util.ArraySet;
 
@@ -49,13 +47,13 @@
     private boolean mCrossUser;
     private ArraySet<Integer> mProfileIds;
     private boolean mAllowed;
-    private int mIgnoreActivityType;
-    private int mIgnoreWindowingMode;
+    private boolean mFilterOnlyVisibleRecents;
     private ActivityStack mTopDisplayFocusStack;
+    private RecentTasks mRecentTasks;
 
-    void getTasks(int maxNum, List<RunningTaskInfo> list, @ActivityType int ignoreActivityType,
-            @WindowingMode int ignoreWindowingMode, RootWindowContainer root,
-            int callingUid, boolean allowed, boolean crossUser, ArraySet<Integer> profileIds) {
+    void getTasks(int maxNum, List<RunningTaskInfo> list, boolean filterOnlyVisibleRecents,
+            RootWindowContainer root, int callingUid, boolean allowed, boolean crossUser,
+            ArraySet<Integer> profileIds) {
         // Return early if there are no tasks to fetch
         if (maxNum <= 0) {
             return;
@@ -68,9 +66,9 @@
         mCrossUser = crossUser;
         mProfileIds = profileIds;
         mAllowed = allowed;
-        mIgnoreActivityType = ignoreActivityType;
-        mIgnoreWindowingMode = ignoreWindowingMode;
+        mFilterOnlyVisibleRecents = filterOnlyVisibleRecents;
         mTopDisplayFocusStack = root.getTopDisplayFocusedStack();
+        mRecentTasks = root.mService.getRecentTasks();
 
         final PooledConsumer c = PooledLambda.obtainConsumer(RunningTasks::processTask, this,
                 PooledLambda.__(Task.class));
@@ -107,14 +105,12 @@
                 return;
             }
         }
-        if (mIgnoreActivityType != ACTIVITY_TYPE_UNDEFINED
-                && task.getActivityType() == mIgnoreActivityType) {
-            // Skip ignored activity type
-            return;
-        }
-        if (mIgnoreWindowingMode != WINDOWING_MODE_UNDEFINED
-                && task.getWindowingMode() == mIgnoreWindowingMode) {
-            // Skip ignored windowing mode
+        if (mFilterOnlyVisibleRecents
+                && task.getActivityType() != ACTIVITY_TYPE_HOME
+                && task.getActivityType() != ACTIVITY_TYPE_RECENTS
+                && !mRecentTasks.isVisibleRecentTask(task)) {
+            // Skip if this task wouldn't be visibile (ever) from recents, with an exception for the
+            // home & recent tasks
             return;
         }
 
diff --git a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
index 68975b9..b92ead1 100644
--- a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
+++ b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
@@ -16,6 +16,8 @@
 
 package com.android.server.wm;
 
+import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
+
 import static com.android.server.wm.AnimationSpecProto.ROTATE;
 import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ORIENTATION;
 import static com.android.server.wm.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC;
@@ -36,6 +38,7 @@
 import android.graphics.Matrix;
 import android.graphics.Point;
 import android.graphics.Rect;
+import android.os.Trace;
 import android.util.Slog;
 import android.util.proto.ProtoOutputStream;
 import android.view.Display;
@@ -205,8 +208,11 @@
             SurfaceControl.ScreenshotGraphicBuffer gb =
                     mService.mDisplayManagerInternal.screenshot(displayId);
             if (gb != null) {
+                Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER,
+                        "ScreenRotationAnimation#getMedianBorderLuma");
                 mStartLuma = RotationAnimationUtils.getMedianBorderLuma(gb.getGraphicBuffer(),
                         gb.getColorSpace());
+                Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
                 try {
                     surface.attachAndQueueBufferWithColorSpace(gb.getGraphicBuffer(),
                             gb.getColorSpace());
diff --git a/services/core/java/com/android/server/wm/SeamlessRotator.java b/services/core/java/com/android/server/wm/SeamlessRotator.java
index 8e1c632..c79cb04 100644
--- a/services/core/java/com/android/server/wm/SeamlessRotator.java
+++ b/services/core/java/com/android/server/wm/SeamlessRotator.java
@@ -20,7 +20,6 @@
 import static android.view.Surface.ROTATION_90;
 
 import android.graphics.Matrix;
-import android.graphics.Rect;
 import android.os.IBinder;
 import android.view.DisplayInfo;
 import android.view.Surface.Rotation;
@@ -28,7 +27,6 @@
 import android.view.SurfaceControl.Transaction;
 
 import com.android.server.wm.utils.CoordinateTransforms;
-import com.android.server.wm.utils.InsetUtils;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
@@ -47,22 +45,18 @@
     private final float[] mFloat9 = new float[9];
     private final int mOldRotation;
     private final int mNewRotation;
-    private final int mRotationDelta;
-    private final int mW;
-    private final int mH;
 
     public SeamlessRotator(@Rotation int oldRotation, @Rotation int newRotation, DisplayInfo info) {
         mOldRotation = oldRotation;
         mNewRotation = newRotation;
-        mRotationDelta = DisplayContent.deltaRotation(oldRotation, newRotation);
 
         final boolean flipped = info.rotation == ROTATION_90 || info.rotation == ROTATION_270;
-        mH = flipped ? info.logicalWidth : info.logicalHeight;
-        mW = flipped ? info.logicalHeight : info.logicalWidth;
-
+        final int pH = flipped ? info.logicalWidth : info.logicalHeight;
+        final int pW = flipped ? info.logicalHeight : info.logicalWidth;
+        // Initialize transform matrix by physical size.
         final Matrix tmp = new Matrix();
-        CoordinateTransforms.transformLogicalToPhysicalCoordinates(oldRotation, mW, mH, mTransform);
-        CoordinateTransforms.transformPhysicalToLogicalCoordinates(newRotation, mW, mH, tmp);
+        CoordinateTransforms.transformLogicalToPhysicalCoordinates(oldRotation, pW, pH, mTransform);
+        CoordinateTransforms.transformPhysicalToLogicalCoordinates(newRotation, pW, pH, tmp);
         mTransform.postConcat(tmp);
     }
 
@@ -78,20 +72,6 @@
         transaction.setPosition(win.getSurfaceControl(), winSurfacePos[0], winSurfacePos[1]);
     }
 
-    /** Rotates the frame from {@link #mNewRotation} to {@link #mOldRotation}. */
-    void unrotateFrame(Rect inOut) {
-        if (mRotationDelta == ROTATION_90) {
-            inOut.set(inOut.top, mH - inOut.right, inOut.bottom, mH - inOut.left);
-        } else if (mRotationDelta == ROTATION_270) {
-            inOut.set(mW - inOut.bottom, inOut.left, mW - inOut.top, inOut.right);
-        }
-    }
-
-    /** Rotates the insets from {@link #mNewRotation} to {@link #mOldRotation}. */
-    void unrotateInsets(Rect inOut) {
-        InsetUtils.rotateInsets(inOut, mRotationDelta);
-    }
-
     /**
      * Returns the rotation of the display before it started rotating.
      *
diff --git a/services/core/java/com/android/server/wm/SurfaceAnimator.java b/services/core/java/com/android/server/wm/SurfaceAnimator.java
index aa817fd..6358e47 100644
--- a/services/core/java/com/android/server/wm/SurfaceAnimator.java
+++ b/services/core/java/com/android/server/wm/SurfaceAnimator.java
@@ -379,7 +379,8 @@
         if (DEBUG_ANIM) Slog.i(TAG, "Reparenting to leash");
         final SurfaceControl.Builder builder = animatable.makeAnimationLeash()
                 .setParent(animatable.getAnimationLeashParent())
-                .setName(surface + " - animation-leash");
+                .setName(surface + " - animation-leash")
+                .setColorLayer();
         final SurfaceControl leash = builder.build();
         if (!hidden) {
             // TODO(b/151665759) Defer reparent calls
@@ -390,6 +391,7 @@
             // seamless rotation.
             transactionFactory.get().unsetColor(leash).show(leash).apply();
         }
+        t.unsetColor(leash);
         t.setWindowCrop(leash, width, height);
         t.setPosition(leash, x, y);
         t.show(leash);
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index f826deb..91b4ec9 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -20,6 +20,9 @@
 import static android.app.ActivityTaskManager.RESIZE_MODE_FORCED;
 import static android.app.ActivityTaskManager.RESIZE_MODE_SYSTEM;
 import static android.app.ActivityTaskManager.RESIZE_MODE_SYSTEM_SCREEN_ROTATION;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
 import static android.app.WindowConfiguration.PINNED_WINDOWING_MODE_ELEVATION_IN_DIP;
@@ -114,7 +117,6 @@
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
 import android.content.res.Configuration;
-import android.graphics.Point;
 import android.graphics.Rect;
 import android.os.Debug;
 import android.os.IBinder;
@@ -129,11 +131,11 @@
 import android.util.Slog;
 import android.util.proto.ProtoOutputStream;
 import android.view.DisplayInfo;
-import android.view.ITaskOrganizer;
 import android.view.RemoteAnimationAdapter;
 import android.view.RemoteAnimationTarget;
 import android.view.Surface;
 import android.view.SurfaceControl;
+import android.window.ITaskOrganizer;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.IVoiceInteractor;
@@ -256,7 +258,7 @@
     boolean autoRemoveRecents;  // If true, we should automatically remove the task from
                                 // recents when activity finishes
     boolean askedCompatMode;// Have asked the user about compat mode for this task.
-    boolean hasBeenVisible; // Set if any activities in the task have been visible to the user.
+    private boolean mHasBeenVisible; // Set if any activities in the task have been visible
 
     String stringName;      // caching of toString() result.
     boolean mUserSetupComplete; // The user set-up is complete as of the last time the task activity
@@ -481,6 +483,10 @@
      */
     ITaskOrganizer mTaskOrganizer;
     private int mLastTaskOrganizerWindowingMode = -1;
+    /**
+     * Prevent duplicate calls to onTaskAppeared.
+     */
+    boolean mTaskAppearedSent;
 
     /**
      * Last Picture-in-Picture params applicable to the task. Updated when the app
@@ -489,6 +495,17 @@
     PictureInPictureParams mPictureInPictureParams = new PictureInPictureParams.Builder().build();
 
     /**
+     * This task was created by the task organizer which has the following implementations.
+     * <ul>
+     *     <lis>The task won't be removed when it is empty. Removal has to be an explicit request
+     *     from the task organizer.</li>
+     *     <li>Unlike other non-root tasks, it's direct children are visible to the task
+     *     organizer for ordering purposes.</li>
+     * </ul>
+     */
+    boolean mCreatedByOrganizer;
+
+    /**
      * Don't use constructor directly. Use {@link #create(ActivityTaskManagerService, int,
      * ActivityInfo, Intent, TaskDescription)} instead.
      */
@@ -509,22 +526,6 @@
                 _voiceSession, _voiceInteractor, stack);
     }
 
-    class TaskToken extends RemoteToken {
-        TaskToken(WindowContainer container) {
-            super(container);
-        }
-
-        @Override
-        public SurfaceControl getLeash() {
-            // We need to copy the SurfaceControl instead of returning the original
-            // because the Parcel FLAGS PARCELABLE_WRITE_RETURN_VALUE cause SurfaceControls
-            // to release themselves.
-            SurfaceControl sc = new SurfaceControl();
-            sc.copyFrom(getSurfaceControl());
-            return sc;
-        }
-    }
-
     /** Don't use constructor directly. This is only used by XML parser. */
     Task(ActivityTaskManagerService atmService, int _taskId, Intent _intent, Intent _affinityIntent,
             String _affinity, String _rootAffinity, ComponentName _realActivity,
@@ -550,7 +551,7 @@
         mTaskDescription = _lastTaskDescription;
         // Tasks have no set orientation value (including SCREEN_ORIENTATION_UNSPECIFIED).
         setOrientation(SCREEN_ORIENTATION_UNSET);
-        mRemoteToken = new TaskToken(this);
+        mRemoteToken = new RemoteToken(this);
         affinityIntent = _affinityIntent;
         affinity = _affinity;
         rootAffinity = _rootAffinity;
@@ -594,6 +595,14 @@
         voiceInteractor = _voiceInteractor;
         setIntent(activity, intent, info);
         setMinDimensions(info);
+        // Before we began to reuse a root task (old ActivityStack) as the leaf task, we used to
+        // create a leaf task in this case. Therefore now we won't send out the task created
+        // notification when we decide to reuse it here, so we send out the notification below.
+        // The reason why the created notification sent out when root task is created doesn't work
+        // is that realActivity isn't set until setIntent() method above is called for the first
+        // time. Eventually this notification will be removed when we can populate those information
+        // when root task is created.
+        mAtmService.getTaskChangeNotificationController().notifyTaskCreated(mTaskId, realActivity);
         return this;
     }
 
@@ -602,11 +611,7 @@
             return;
         }
 
-        // TODO(xutan): Removed type check after stack and task is merged.
-        // Before the real merge of stack and task, we need to avoid saving state of stacks. Once
-        // the merge is finished we can just pass DisplayContent because both windowing mode and
-        // bounds are set in the merged task.
-        if (oldParent instanceof ActivityStack) {
+        if (isLeafTask()) {
             // This task is going away, so save the last state if necessary.
             saveLaunchingStateIfNeeded(((WindowContainer) oldParent).getDisplayContent());
         }
@@ -1365,7 +1370,7 @@
         if (applicationType != ACTIVITY_TYPE_UNDEFINED || !hasChild()) {
             return applicationType;
         }
-        return getChildAt(0).getActivityType();
+        return getTopChild().getActivityType();
     }
 
     @Override
@@ -1378,6 +1383,12 @@
 
         ProtoLog.v(WM_DEBUG_ADD_REMOVE, "addChild: %s at top.", this);
 
+        // A rootable task that is now being added to be the child of an organized task. Making
+        // sure the stack references is keep updated.
+        if (mTaskOrganizer != null && mCreatedByOrganizer && child.asTask() != null) {
+            mDisplayContent.addStackReferenceIfNeeded((ActivityStack) child);
+        }
+
         // Make sure the list of display UID whitelists is updated
         // now that this record is in a new task.
         mRootWindowContainer.updateUIDsPresentOnDisplay();
@@ -1418,6 +1429,11 @@
 
     @Override
     void removeChild(WindowContainer child) {
+        // A rootable child task that is now being removed from an organized task. Making sure
+        // the stack references is keep updated.
+        if (mTaskOrganizer != null && mCreatedByOrganizer && child.asTask() != null) {
+            mDisplayContent.removeStackReferenceIfNeeded((ActivityStack) child);
+        }
         removeChild(child, "removeChild");
     }
 
@@ -1465,8 +1481,9 @@
                 mStackSupervisor.removeTask(this, false /* killProcess */,
                         !REMOVE_FROM_RECENTS, reason);
             }
-        } else if (!mReuseTask) {
+        } else if (!mReuseTask && !mCreatedByOrganizer) {
             // Remove entire task if it doesn't have any activity left and it isn't marked for reuse
+            // or created by task organizer.
             if (!isRootTask) {
                 getStack().removeChild(this, reason);
             }
@@ -1504,7 +1521,7 @@
         // We will automatically remove the task either if it has explicitly asked for
         // this, or it is empty and has never contained an activity that got shown to
         // the user.
-        return autoRemoveRecents || (!hasChild() && !hasBeenVisible);
+        return autoRemoveRecents || (!hasChild() && !getHasBeenVisible());
     }
 
     /**
@@ -1878,7 +1895,12 @@
         final Task parentTask = getParent().asTask();
         if (parentTask != null) {
             parentTask.onActivityStateChanged(record, state, reason);
-            return;
+            // We still want to update the resumed activity if the parent task is created by
+            // organizer in order to keep the information synced once got reparented out from the
+            // organized task.
+            if (!parentTask.mCreatedByOrganizer) {
+                return;
+            }
         }
 
         if (record == mResumedActivity && state != RESUMED) {
@@ -1918,7 +1940,6 @@
         super.onConfigurationChanged(newParentConfig);
         if (wasInMultiWindowMode != inMultiWindowMode()) {
             mStackSupervisor.scheduleUpdateMultiWindowMode(this);
-            updateShadowsRadius(isFocused(), getPendingTransaction());
         }
 
         final int newWinMode = getWindowingMode();
@@ -1938,7 +1959,12 @@
         // TODO: Should also take care of Pip mode changes here.
 
         saveLaunchingStateIfNeeded();
-        updateTaskOrganizerState(false /* forceUpdate */);
+        final boolean taskOrgChanged = updateTaskOrganizerState(false /* forceUpdate */);
+        // If the task organizer has changed, then it will already be receiving taskAppeared with
+        // the latest task-info thus the task-info won't have changed.
+        if (!taskOrgChanged && mTaskOrganizer != null) {
+            mAtmService.mTaskOrganizerController.dispatchTaskInfoChanged(this, false /* force */);
+        }
     }
 
     /**
@@ -2008,7 +2034,7 @@
     }
 
     private void saveLaunchingStateIfNeeded(DisplayContent display) {
-        if (!hasBeenVisible) {
+        if (!getHasBeenVisible()) {
             // Not ever visible to user.
             return;
         }
@@ -2308,18 +2334,30 @@
         return Configuration.reduceScreenLayout(sourceScreenLayout, longSize, shortSize);
     }
 
-    void resolveTileOverrideConfiguration(Configuration newParentConfig) {
+    private void resolveOrganizedOverrideConfiguration(Configuration newParentConfig) {
         super.resolveOverrideConfiguration(newParentConfig);
+        if (!isOrganized()) {
+            return;
+        }
+
+        final Task root = getRootTask();
+        if (root == this) {
+            return;
+        }
+
+        // Ensure to have the same windowing mode for the child tasks that controlled by task org.
+        getResolvedOverrideConfiguration().windowConfiguration
+                .setWindowingMode(root.getWindowingMode());
     }
 
     @Override
     void resolveOverrideConfiguration(Configuration newParentConfig) {
-        if (!isLeafTask()) {
-            resolveTileOverrideConfiguration(newParentConfig);
+        if (!isLeafTask() || mCreatedByOrganizer) {
+            resolveOrganizedOverrideConfiguration(newParentConfig);
             return;
         }
         mTmpBounds.set(getResolvedOverrideConfiguration().windowConfiguration.getBounds());
-        resolveTileOverrideConfiguration(newParentConfig);
+        resolveOrganizedOverrideConfiguration(newParentConfig);
         int windowingMode =
                 getResolvedOverrideConfiguration().windowConfiguration.getWindowingMode();
         if (windowingMode == WINDOWING_MODE_UNDEFINED) {
@@ -2408,7 +2446,9 @@
     }
 
     Rect updateOverrideConfigurationFromLaunchBounds() {
-        final Rect bounds = getLaunchBounds();
+        // If the task is controlled by another organized task, do not set override
+        // configurations and let its parent (organized task) to control it;
+        final Rect bounds = isOrganized() && !isRootTask() ? null : getLaunchBounds();
         setBounds(bounds);
         if (bounds != null && !bounds.isEmpty()) {
             // TODO: Review if we actually want to do this - we are setting the launch bounds
@@ -2592,7 +2632,7 @@
         // preserve POSITION_BOTTOM/POSITION_TOP positions if they are still valid.
         if (suggestedPosition == POSITION_BOTTOM && minPosition == 0) {
             return POSITION_BOTTOM;
-        } else if (suggestedPosition == POSITION_TOP && maxPosition == (size - 1)) {
+        } else if (suggestedPosition == POSITION_TOP && maxPosition >= (size - 1)) {
             return POSITION_TOP;
         }
         // Reset position based on minimum/maximum possible positions.
@@ -3106,7 +3146,7 @@
         /**
          * Animations are handled by the TaskOrganizer implementation.
          */
-        if (isControlledByTaskOrganizer()) {
+        if (isOrganized()) {
             return false;
         }
         // Don't animate while the task runs recents animation but only if we are in the mode
@@ -3211,6 +3251,20 @@
     }
 
     @Override
+    int getOrientation(int candidate) {
+        return canSpecifyOrientation() ? super.getOrientation(candidate) : SCREEN_ORIENTATION_UNSET;
+    }
+
+    private boolean canSpecifyOrientation() {
+        final int windowingMode = getWindowingMode();
+        final int activityType = getActivityType();
+        return windowingMode == WINDOWING_MODE_FULLSCREEN
+                || activityType == ACTIVITY_TYPE_HOME
+                || activityType == ACTIVITY_TYPE_RECENTS
+                || activityType == ACTIVITY_TYPE_ASSISTANT;
+    }
+
+    @Override
     boolean fillsParent() {
         return matchParentBounds();
     }
@@ -3320,6 +3374,7 @@
         }
 
         updateSurfaceCrop();
+        updateShadowsRadius(isFocused(), getPendingTransaction());
 
         if (mDimmer.updateDims(getPendingTransaction(), mTmpDimBoundsRect)) {
             scheduleAnimation();
@@ -3375,14 +3430,12 @@
         info.supportsSplitScreenMultiWindow = supportsSplitScreenWindowingMode();
         info.configuration.setTo(getConfiguration());
         info.token = mRemoteToken;
-        // Get's the first non-undefined activity type among this and children. Can't use
-        // configuration.windowConfiguration because that would only be this level.
-        info.topActivityType = getActivityType();
 
         //TODO (AM refactor): Just use local once updateEffectiveIntent is run during all child
         //                    order changes.
         final Task top = getTopMostTask();
         info.resizeMode = top != null ? top.mResizeMode : mResizeMode;
+        info.topActivityType = top.getActivityType();
 
         if (mPictureInPictureParams.empty()) {
             info.pictureInPictureParams = null;
@@ -3413,10 +3466,6 @@
         return this;
     }
 
-    TaskTile asTile() {
-        return null;
-    }
-
     // TODO(task-merge): Figure-out how this should work with hierarchy tasks.
     boolean shouldBeVisible(ActivityRecord starting) {
         return true;
@@ -3513,7 +3562,7 @@
             pw.print(prefix); pw.print("mRootProcess="); pw.println(mRootProcess);
         }
         pw.print(prefix); pw.print("taskId=" + mTaskId); pw.println(" stackId=" + getRootTaskId());
-        pw.print(prefix + "hasBeenVisible=" + hasBeenVisible);
+        pw.print(prefix + "mHasBeenVisible=" + getHasBeenVisible());
         pw.print(" mResizeMode=" + ActivityInfo.resizeModeToString(mResizeMode));
         pw.print(" mSupportsPictureInPicture=" + mSupportsPictureInPicture);
         pw.print(" isResizeable=" + isResizeable());
@@ -3712,8 +3761,9 @@
     }
 
     static Task create(ActivityTaskManagerService service, int taskId, int activityType,
-            ActivityInfo info, Intent intent) {
-        return getTaskFactory().create(service, taskId, activityType, info, intent);
+            ActivityInfo info, Intent intent, boolean createdByOrganizer) {
+        return getTaskFactory().create(service, taskId, activityType, info, intent,
+                createdByOrganizer);
     }
 
     static Task create(ActivityTaskManagerService service, int taskId, ActivityInfo info,
@@ -3735,8 +3785,9 @@
      */
     static class TaskFactory {
         Task create(ActivityTaskManagerService service, int taskId, int activityType,
-                ActivityInfo info, Intent intent) {
-            return new ActivityStack(service, taskId, activityType, info, intent);
+                ActivityInfo info, Intent intent, boolean createdByOrganizer) {
+            return new ActivityStack(service, taskId, activityType, info, intent,
+                    createdByOrganizer);
         }
 
         Task create(ActivityTaskManagerService service, int taskId, ActivityInfo info,
@@ -4009,56 +4060,97 @@
         }
     }
 
-    boolean isControlledByTaskOrganizer() {
+    @Override
+    boolean isOrganized() {
         final Task rootTask = getRootTask();
-        // if the rootTask is a "child" of a tile, then don't consider it a root task.
-        // TODO: remove this along with removing tile.
-        if (((ActivityStack) rootTask).getTile() != null) {
+        if (rootTask.mTaskOrganizer == null) {
+            // You are obviously not organized...
             return false;
         }
-        return rootTask == this && rootTask.mTaskOrganizer != null;
+        if (rootTask == this) {
+            // Root tasks can be organized.
+            return true;
+        }
+        if (rootTask.mCreatedByOrganizer && getParent() == rootTask) {
+            // Direct children of tasks added by the organizer can the organized.
+            return true;
+        }
+
+        return false;
     }
 
     @Override
     protected void reparentSurfaceControl(SurfaceControl.Transaction t, SurfaceControl newParent) {
         /**
-         * Avoid yanking back control from the TaskOrganizer, which has presumably reparented the
-         * Surface in to its own hierarchy.
+         * Avoid reparenting SurfaceControl of the organized tasks that are always on top, since
+         * the surfaces should be controlled by the organizer itself, like bubbles.
          */
-        if (isControlledByTaskOrganizer()) {
+        if (isOrganized() && isAlwaysOnTop()) {
             return;
         }
         super.reparentSurfaceControl(t, newParent);
     }
 
+    void setHasBeenVisible(boolean hasBeenVisible) {
+        mHasBeenVisible = hasBeenVisible;
+        if (hasBeenVisible) {
+            sendTaskAppeared();
+            if (!isRootTask()) {
+                getRootTask().setHasBeenVisible(true);
+            }
+        }
+    }
+
+    boolean getHasBeenVisible() {
+        return mHasBeenVisible;
+    }
+
+    /** In the case that these three conditions are true, we want to send the Task to
+     * the organizer:
+     *     1. We have a SurfaceControl
+     *     2. An organizer has been set
+     *     3. We have finished drawing
+     * Any time any of these conditions are updated, the updating code should call
+     * sendTaskAppeared.
+     */
+    private boolean taskAppearedReady() {
+        return mSurfaceControl != null && mTaskOrganizer != null && getHasBeenVisible();
+    }
+
     private void sendTaskAppeared() {
-        if (mSurfaceControl != null && mTaskOrganizer != null) {
+        if (taskAppearedReady() && !mTaskAppearedSent) {
+            mTaskAppearedSent = true;
             mAtmService.mTaskOrganizerController.onTaskAppeared(mTaskOrganizer, this);
         }
     }
 
     private void sendTaskVanished() {
-        if (mTaskOrganizer != null) {
+        if (mTaskOrganizer != null && mTaskAppearedSent) {
+            mTaskAppearedSent = false;
             mAtmService.mTaskOrganizerController.onTaskVanished(mTaskOrganizer, this);
         }
    }
 
-    void setTaskOrganizer(ITaskOrganizer organizer) {
+    boolean setTaskOrganizer(ITaskOrganizer organizer) {
         if (mTaskOrganizer == organizer) {
-            return;
+            return false;
         }
         // Let the old organizer know it has lost control.
         sendTaskVanished();
         mTaskOrganizer = organizer;
         sendTaskAppeared();
         onTaskOrganizerChanged();
+        return true;
     }
 
-    // Called on Binder death.
-    void taskOrganizerDied() {
+    void taskOrganizerUnregistered() {
         mTaskOrganizer = null;
+        mTaskAppearedSent = false;
         mLastTaskOrganizerWindowingMode = -1;
         onTaskOrganizerChanged();
+        if (mCreatedByOrganizer) {
+            removeImmediately();
+        }
     }
 
     /**
@@ -4068,10 +4160,11 @@
      * @param forceUpdate Updates the task organizer to the one currently specified in the task
      *                    org controller for the task's windowing mode, ignoring the cached
      *                    windowing mode checks.
+     * @return {@code true} if task organizer changed.
      */
-    void updateTaskOrganizerState(boolean forceUpdate) {
+    boolean updateTaskOrganizerState(boolean forceUpdate) {
         if (!isRootTask()) {
-            return;
+            return false;
         }
 
         final int windowingMode = getWindowingMode();
@@ -4080,7 +4173,7 @@
             // with our old organizer. This lets us implement the semantic
             // where SysUI can continue to manage it's old tasks
             // while CTS temporarily takes over the registration.
-            return;
+            return false;
         }
         /*
          * Different windowing modes may be managed by different task organizers. If
@@ -4089,8 +4182,9 @@
          */
         final ITaskOrganizer org =
                 mWmService.mAtmService.mTaskOrganizerController.getTaskOrganizer(windowingMode);
-        setTaskOrganizer(org);
+        final boolean result = setTaskOrganizer(org);
         mLastTaskOrganizerWindowingMode = windowingMode;
+        return result;
     }
 
     private void onTaskOrganizerChanged() {
@@ -4109,27 +4203,6 @@
         sendTaskAppeared();
     }
 
-    @Override
-    public void updateSurfacePosition() {
-        // Avoid fighting with the TaskOrganizer over Surface position.
-        if (isControlledByTaskOrganizer()) {
-            return;
-        } else {
-            super.updateSurfacePosition();
-        }
-    }
-
-    @Override
-    void getRelativeDisplayedPosition(Point outPos) {
-        // In addition to updateSurfacePosition, we keep other code that sets
-        // position from fighting with the TaskOrganizer
-        if (isControlledByTaskOrganizer()) {
-            outPos.set(0, 0);
-            return;
-        }
-        super.getRelativeDisplayedPosition(outPos);
-    }
-
     /**
      * @return true if the task is currently focused.
      */
@@ -4141,26 +4214,40 @@
     }
 
     /**
+     * @return true if the task is visible and has at least one visible child.
+     */
+    private boolean hasVisibleChildren() {
+        if (!isAttached() || isForceHidden()) {
+            return false;
+        }
+
+        return getActivity(ActivityRecord::isVisible) != null;
+    }
+
+    /**
      * @return the desired shadow radius in pixels for the current task.
      */
     private float getShadowRadius(boolean taskIsFocused) {
-        if (mDisplayContent == null) {
+        int elevation = 0;
+
+        // Get elevation for a specific windowing mode.
+        if (inPinnedWindowingMode()) {
+            elevation = PINNED_WINDOWING_MODE_ELEVATION_IN_DIP;
+        } else if (ENABLE_FREEFORM_COMPOSITOR_SHADOWS && inFreeformWindowingMode()) {
+            // TODO(b/149585281) remove when root task has the correct bounds for freeform
+            elevation = taskIsFocused
+                    ? DECOR_SHADOW_FOCUSED_HEIGHT_IN_DIP : DECOR_SHADOW_UNFOCUSED_HEIGHT_IN_DIP;
+        } else {
+            // For all other windowing modes, do not draw a shadow.
             return 0;
         }
 
-        if (inPinnedWindowingMode()) {
-            return dipToPixel(PINNED_WINDOWING_MODE_ELEVATION_IN_DIP,
-                    mDisplayContent.getDisplayMetrics());
-        }
-        // TODO(b/149585281) remove when root task has the correct bounds for freeform
-        if (ENABLE_FREEFORM_COMPOSITOR_SHADOWS && inFreeformWindowingMode()) {
-            final int elevation = taskIsFocused
-                    ? DECOR_SHADOW_FOCUSED_HEIGHT_IN_DIP : DECOR_SHADOW_UNFOCUSED_HEIGHT_IN_DIP;
-            return dipToPixel(elevation, mDisplayContent.getDisplayMetrics());
+        // If the task has no visible children, do not draw a shadow.
+        if (!hasVisibleChildren()) {
+            return 0;
         }
 
-        // For all other windowing modes, do not draw a shadow.
-        return 0;
+        return dipToPixel(elevation, getDisplayContent().getDisplayMetrics());
     }
 
     /**
diff --git a/services/core/java/com/android/server/wm/TaskOrganizerController.java b/services/core/java/com/android/server/wm/TaskOrganizerController.java
index 8f09f3f..8a896f5 100644
--- a/services/core/java/com/android/server/wm/TaskOrganizerController.java
+++ b/services/core/java/com/android/server/wm/TaskOrganizerController.java
@@ -17,111 +17,88 @@
 package com.android.server.wm;
 
 import static android.Manifest.permission.MANAGE_ACTIVITY_STACKS;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
 import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
 import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
-import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
-import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
 
-import static com.android.server.wm.ActivityStackSupervisor.PRESERVE_WINDOWS;
-import static com.android.server.wm.Task.FLAG_FORCE_HIDDEN_FOR_TASK_ORG;
-import static com.android.server.wm.WindowContainer.POSITION_BOTTOM;
-import static com.android.server.wm.WindowContainer.POSITION_TOP;
+import static com.android.server.wm.WindowOrganizerController.CONTROLLABLE_CONFIGS;
+import static com.android.server.wm.WindowOrganizerController.CONTROLLABLE_WINDOW_CONFIGS;
 
 import android.annotation.Nullable;
 import android.app.ActivityManager.RunningTaskInfo;
-import android.app.ITaskOrganizerController;
 import android.app.WindowConfiguration;
+import android.content.Intent;
 import android.content.pm.ActivityInfo;
-import android.content.res.Configuration;
-import android.graphics.Rect;
 import android.os.Binder;
 import android.os.IBinder;
 import android.os.RemoteException;
-import android.util.ArraySet;
 import android.util.Slog;
-import android.view.ITaskOrganizer;
-import android.view.IWindowContainer;
-import android.view.SurfaceControl;
-import android.view.WindowContainerTransaction;
+import android.util.SparseArray;
+import android.window.ITaskOrganizer;
+import android.window.ITaskOrganizerController;
+import android.window.IWindowContainer;
 
 import com.android.internal.util.ArrayUtils;
-import com.android.internal.util.function.pooled.PooledConsumer;
-import com.android.internal.util.function.pooled.PooledLambda;
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
 import java.util.WeakHashMap;
 
 /**
  * Stores the TaskOrganizers associated with a given windowing mode and
  * their associated state.
  */
-class TaskOrganizerController extends ITaskOrganizerController.Stub
-    implements BLASTSyncEngine.TransactionReadyListener {
+class TaskOrganizerController extends ITaskOrganizerController.Stub {
     private static final String TAG = "TaskOrganizerController";
+    private static final LinkedList<IBinder> EMPTY_LIST = new LinkedList<>();
 
-    /** Flag indicating that an applied transaction may have effected lifecycle */
-    private static final int TRANSACT_EFFECTS_CLIENT_CONFIG = 1;
-    private static final int TRANSACT_EFFECTS_LIFECYCLE = 1 << 1;
+    /**
+     * Masks specifying which configurations are important to report back to an organizer when
+     * changed.
+     */
+    private static final int REPORT_CONFIGS = CONTROLLABLE_CONFIGS;
+    private static final int REPORT_WINDOW_CONFIGS = CONTROLLABLE_WINDOW_CONFIGS;
 
     private final WindowManagerGlobalLock mGlobalLock;
 
     private class DeathRecipient implements IBinder.DeathRecipient {
-        int mWindowingMode;
         ITaskOrganizer mTaskOrganizer;
 
-        DeathRecipient(ITaskOrganizer organizer, int windowingMode) {
+        DeathRecipient(ITaskOrganizer organizer) {
             mTaskOrganizer = organizer;
-            mWindowingMode = windowingMode;
         }
 
         @Override
         public void binderDied() {
             synchronized (mGlobalLock) {
-                final TaskOrganizerState state =
-                    mTaskOrganizerStates.get(mTaskOrganizer.asBinder());
-                state.releaseTasks();
-                mTaskOrganizerStates.remove(mTaskOrganizer.asBinder());
-                if (mTaskOrganizersForWindowingMode.get(mWindowingMode) == mTaskOrganizer) {
-                    mTaskOrganizersForWindowingMode.remove(mWindowingMode);
-                }
+                final TaskOrganizerState state = mTaskOrganizerStates.remove(
+                        mTaskOrganizer.asBinder());
+                state.dispose();
             }
         }
     };
 
-    class TaskOrganizerState {
-        ITaskOrganizer mOrganizer;
-        DeathRecipient mDeathRecipient;
-        int mWindowingMode;
+    private class TaskOrganizerState {
+        private final ITaskOrganizer mOrganizer;
+        private final DeathRecipient mDeathRecipient;
+        private final ArrayList<Task> mOrganizedTasks = new ArrayList<>();
 
-        ArrayList<Task> mOrganizedTasks = new ArrayList<>();
-
-        // Save the TaskOrganizer which we replaced registration for
-        // so it can be re-registered if we unregister.
-        TaskOrganizerState mReplacementFor;
-        boolean mDisposed = false;
-
-
-        TaskOrganizerState(ITaskOrganizer organizer, int windowingMode,
-                @Nullable TaskOrganizerState replacing) {
+        TaskOrganizerState(ITaskOrganizer organizer) {
             mOrganizer = organizer;
-            mDeathRecipient = new DeathRecipient(organizer, windowingMode);
+            mDeathRecipient = new DeathRecipient(organizer);
             try {
                 organizer.asBinder().linkToDeath(mDeathRecipient, 0);
             } catch (RemoteException e) {
                 Slog.e(TAG, "TaskOrganizer failed to register death recipient");
             }
-            mWindowingMode = windowingMode;
-            mReplacementFor = replacing;
         }
 
         void addTask(Task t) {
             mOrganizedTasks.add(t);
             try {
-                mOrganizer.taskAppeared(t.getTaskInfo());
+                mOrganizer.onTaskAppeared(t.getTaskInfo());
             } catch (Exception e) {
                 Slog.e(TAG, "Exception sending taskAppeared callback" + e);
             }
@@ -129,7 +106,7 @@
 
         void removeTask(Task t) {
             try {
-                mOrganizer.taskVanished(t.getTaskInfo());
+                mOrganizer.onTaskVanished(t.getTaskInfo());
             } catch (Exception e) {
                 Slog.e(TAG, "Exception sending taskVanished callback" + e);
             }
@@ -137,42 +114,31 @@
         }
 
         void dispose() {
-            mDisposed = true;
             releaseTasks();
-            handleReplacement();
-        }
-
-        void releaseTasks() {
-            for (int i = mOrganizedTasks.size() - 1; i >= 0; i--) {
-                final Task t = mOrganizedTasks.get(i);
-                t.taskOrganizerDied();
-                removeTask(t);
+            for (int i = mTaskOrganizersForWindowingMode.size() - 1; i >= 0; --i) {
+                mTaskOrganizersForWindowingMode.valueAt(i).remove(mOrganizer.asBinder());
             }
         }
 
-        void handleReplacement() {
-            if (mReplacementFor != null && !mReplacementFor.mDisposed) {
-                mTaskOrganizersForWindowingMode.put(mWindowingMode, mReplacementFor);
+        private void releaseTasks() {
+            for (int i = mOrganizedTasks.size() - 1; i >= 0; i--) {
+                final Task t = mOrganizedTasks.get(i);
+                removeTask(t);
+                t.taskOrganizerUnregistered();
             }
         }
 
         void unlinkDeath() {
-            mDisposed = true;
             mOrganizer.asBinder().unlinkToDeath(mDeathRecipient, 0);
         }
-    };
+    }
 
-
-    final HashMap<Integer, TaskOrganizerState> mTaskOrganizersForWindowingMode = new HashMap();
-    final HashMap<IBinder, TaskOrganizerState> mTaskOrganizerStates = new HashMap();
-
-    final HashMap<Integer, ITaskOrganizer> mTaskOrganizersByPendingSyncId = new HashMap();
-
+    private final SparseArray<LinkedList<IBinder>> mTaskOrganizersForWindowingMode =
+            new SparseArray<>();
+    private final HashMap<IBinder, TaskOrganizerState> mTaskOrganizerStates = new HashMap<>();
     private final WeakHashMap<Task, RunningTaskInfo> mLastSentTaskInfos = new WeakHashMap<>();
     private final ArrayList<Task> mPendingTaskInfoChanges = new ArrayList<>();
 
-    private final BLASTSyncEngine mBLASTSyncEngine = new BLASTSyncEngine();
-
     final ActivityTaskManagerService mService;
 
     RunningTaskInfo mTmpTaskInfo;
@@ -193,10 +159,22 @@
      */
     @Override
     public void registerTaskOrganizer(ITaskOrganizer organizer, int windowingMode) {
-        if (windowingMode != WINDOWING_MODE_PINNED
-                && windowingMode != WINDOWING_MODE_SPLIT_SCREEN_PRIMARY
-                && windowingMode != WINDOWING_MODE_SPLIT_SCREEN_SECONDARY
-                && windowingMode != WINDOWING_MODE_MULTI_WINDOW) {
+        if (windowingMode == WINDOWING_MODE_PINNED) {
+            if (!mService.mSupportsPictureInPicture) {
+                throw new UnsupportedOperationException("Picture in picture is not supported on "
+                        + "this device");
+            }
+        } else if (WindowConfiguration.isSplitScreenWindowingMode(windowingMode)) {
+            if (!mService.mSupportsSplitScreenMultiWindow) {
+                throw new UnsupportedOperationException("Split-screen is not supported on this "
+                        + "device");
+            }
+        } else if (windowingMode == WINDOWING_MODE_MULTI_WINDOW) {
+            if (!mService.mSupportsMultiWindow) {
+                throw new UnsupportedOperationException("Multi-window is not supported on this "
+                        + "device");
+            }
+        } else {
             throw new UnsupportedOperationException("As of now only Pinned/Split/Multiwindow"
                     + " windowing modes are supported for registerTaskOrganizer");
         }
@@ -208,14 +186,19 @@
                     Slog.w(TAG, "Task organizer already exists for windowing mode: "
                             + windowingMode);
                 }
-                final TaskOrganizerState previousState =
-                        mTaskOrganizersForWindowingMode.get(windowingMode);
-                final TaskOrganizerState state = new TaskOrganizerState(organizer, windowingMode,
-                        previousState);
-                mTaskOrganizersForWindowingMode.put(windowingMode, state);
-                mTaskOrganizerStates.put(organizer.asBinder(), state);
 
-                if (previousState == null) {
+                LinkedList<IBinder> orgs = mTaskOrganizersForWindowingMode.get(windowingMode);
+                if (orgs == null) {
+                    orgs = new LinkedList<>();
+                    mTaskOrganizersForWindowingMode.put(windowingMode, orgs);
+                }
+                orgs.add(organizer.asBinder());
+                if (!mTaskOrganizerStates.containsKey(organizer.asBinder())) {
+                    mTaskOrganizerStates.put(organizer.asBinder(),
+                            new TaskOrganizerState(organizer));
+                }
+
+                if (orgs.size() == 1) {
                     // Only in the case where this is the root task organizer for the given
                     // windowing mode, we add report all existing tasks in that mode to the new
                     // task organizer.
@@ -231,17 +214,20 @@
         }
     }
 
-    void unregisterTaskOrganizer(ITaskOrganizer organizer) {
-        final TaskOrganizerState state = mTaskOrganizerStates.get(organizer.asBinder());
+    @Override
+    public void unregisterTaskOrganizer(ITaskOrganizer organizer) {
+        final TaskOrganizerState state = mTaskOrganizerStates.remove(organizer.asBinder());
         state.unlinkDeath();
-        if (mTaskOrganizersForWindowingMode.get(state.mWindowingMode) == state) {
-            mTaskOrganizersForWindowingMode.remove(state.mWindowingMode);
-        }
         state.dispose();
     }
 
     ITaskOrganizer getTaskOrganizer(int windowingMode) {
-        final TaskOrganizerState state = mTaskOrganizersForWindowingMode.get(windowingMode);
+        final IBinder organizer =
+                mTaskOrganizersForWindowingMode.get(windowingMode, EMPTY_LIST).peekLast();
+        if (organizer == null) {
+            return null;
+        }
+        final TaskOrganizerState state = mTaskOrganizerStates.get(organizer);
         if (state == null) {
             return null;
         }
@@ -268,11 +254,12 @@
                 if (display == null) {
                     return null;
                 }
-                final int nextId = display.getNextStackId();
-                TaskTile tile = new TaskTile(mService, nextId, windowingMode);
-                display.addTile(tile);
-                RunningTaskInfo out = tile.getTaskInfo();
-                mLastSentTaskInfos.put(tile, out);
+
+                final Task task = display.getOrCreateStack(windowingMode, ACTIVITY_TYPE_UNDEFINED,
+                        false /* onTop */, new Intent(), null /* candidateTask */,
+                        true /* createdByOrganizer */);
+                RunningTaskInfo out = task.getTaskInfo();
+                mLastSentTaskInfos.put(task, out);
                 return out;
             }
         } finally {
@@ -286,11 +273,13 @@
         final long origId = Binder.clearCallingIdentity();
         try {
             synchronized (mGlobalLock) {
-                TaskTile tile = TaskTile.forToken(token.asBinder());
-                if (tile == null) {
-                    return false;
+                final Task task = WindowContainer.fromBinder(token.asBinder()).asTask();
+                if (task == null) return false;
+                if (!task.mCreatedByOrganizer) {
+                    throw new IllegalArgumentException(
+                            "Attempt to delete task not created by organizer task=" + task);
                 }
-                tile.removeImmediately();
+                task.removeImmediately();
                 return true;
             }
         } finally {
@@ -320,11 +309,23 @@
         if (mTmpTaskInfo == null) {
             mTmpTaskInfo = new RunningTaskInfo();
         }
+        mTmpTaskInfo.configuration.unset();
         task.fillTaskInfo(mTmpTaskInfo);
         boolean changed = lastInfo == null
                 || mTmpTaskInfo.topActivityType != lastInfo.topActivityType
                 || mTmpTaskInfo.isResizable() != lastInfo.isResizable()
                 || mTmpTaskInfo.pictureInPictureParams != lastInfo.pictureInPictureParams;
+        if (!changed) {
+            int cfgChanges = mTmpTaskInfo.configuration.diff(lastInfo.configuration);
+            final int winCfgChanges = (cfgChanges & ActivityInfo.CONFIG_WINDOW_CONFIGURATION) != 0
+                    ? (int) mTmpTaskInfo.configuration.windowConfiguration.diff(
+                            lastInfo.configuration.windowConfiguration,
+                            true /* compareUndefined */) : 0;
+            if ((winCfgChanges & REPORT_WINDOW_CONFIGS) == 0) {
+                cfgChanges &= ~ActivityInfo.CONFIG_WINDOW_CONFIGURATION;
+            }
+            changed = (cfgChanges & REPORT_CONFIGS) != 0;
+        }
         if (!(changed || force)) {
             return;
         }
@@ -359,12 +360,7 @@
                 if (task == null) {
                     return null;
                 }
-                ActivityStack rootTask = (ActivityStack) task.getRootTask();
-                final TaskTile tile = rootTask.getTile();
-                if (tile != null) {
-                    rootTask = tile;
-                }
-                return rootTask.mRemoteToken;
+                return task.getRootTask().mRemoteToken;
             }
         } finally {
             Binder.restoreCallingIdentity(origId);
@@ -372,7 +368,7 @@
     }
 
     @Override
-    public void setLaunchRoot(int displayId, @Nullable IWindowContainer tile) {
+    public void setLaunchRoot(int displayId, @Nullable IWindowContainer token) {
         enforceStackPermission("setLaunchRoot()");
         final long origId = Binder.clearCallingIdentity();
         try {
@@ -381,16 +377,21 @@
                 if (display == null) {
                     return;
                 }
-                TaskTile taskTile = tile == null ? null : TaskTile.forToken(tile.asBinder());
-                if (taskTile == null) {
-                    display.mLaunchTile = null;
+                Task task = token == null
+                        ? null : WindowContainer.fromBinder(token.asBinder()).asTask();
+                if (task == null) {
+                    display.mLaunchRootTask = null;
                     return;
                 }
-                if (taskTile.getDisplay() != display) {
-                    throw new RuntimeException("Can't set launch root for display " + displayId
-                            + " to task on display " + taskTile.getDisplay().getDisplayId());
+                if (!task.mCreatedByOrganizer) {
+                    throw new IllegalArgumentException("Attempt to set task not created by "
+                            + "organizer as launch root task=" + task);
                 }
-                display.mLaunchTile = taskTile;
+                if (task.getDisplayContent() != display) {
+                    throw new RuntimeException("Can't set launch root for display " + displayId
+                            + " to task on display " + task.getDisplayContent().getDisplayId());
+                }
+                display.mLaunchRootTask = task;
             }
         } finally {
             Binder.restoreCallingIdentity(origId);
@@ -412,25 +413,25 @@
                     Slog.e(TAG, "Can't get children of " + parent + " because it is not valid.");
                     return null;
                 }
-                // For now, only support returning children of persistent root tasks (of which the
-                // only current implementation is TaskTile).
-                if (!(container instanceof TaskTile)) {
+                final Task task = container.asTask();
+                if (task == null) {
+                    Slog.e(TAG, container + " is not a task...");
+                    return null;
+                }
+                // For now, only support returning children of tasks created by the organizer.
+                if (!task.mCreatedByOrganizer) {
                     Slog.w(TAG, "Can only get children of root tasks created via createRootTask");
                     return null;
                 }
                 ArrayList<RunningTaskInfo> out = new ArrayList<>();
-                // Tiles aren't real parents, so we need to go through stacks on the display to
-                // ensure correct ordering.
-                final DisplayContent dc = container.getDisplayContent();
-                for (int i = dc.getStackCount() - 1; i >= 0; --i) {
-                    final ActivityStack as = dc.getStackAt(i);
-                    if (as.getTile() == container) {
-                        if (activityTypes != null
-                                && !ArrayUtils.contains(activityTypes, as.getActivityType())) {
-                            continue;
-                        }
-                        out.add(as.getTaskInfo());
+                for (int i = task.getChildCount() - 1; i >= 0; --i) {
+                    final Task child = task.getChildAt(i).asTask();
+                    if (child == null) continue;
+                    if (activityTypes != null
+                            && !ArrayUtils.contains(activityTypes, child.getActivityType())) {
+                        continue;
                     }
+                    out.add(child.getTaskInfo());
                 }
                 return out;
             }
@@ -452,12 +453,7 @@
                 }
                 ArrayList<RunningTaskInfo> out = new ArrayList<>();
                 for (int i = dc.getStackCount() - 1; i >= 0; --i) {
-                    final ActivityStack task = dc.getStackAt(i);
-                    if (task.getTile() != null) {
-                        // a tile is supposed to look like a parent, so don't include their
-                        // "children" here. They can be accessed via getChildTasks()
-                        continue;
-                    }
+                    final Task task = dc.getStackAt(i);
                     if (activityTypes != null
                             && !ArrayUtils.contains(activityTypes, task.getActivityType())) {
                         continue;
@@ -470,247 +466,4 @@
             Binder.restoreCallingIdentity(ident);
         }
     }
-
-    private int sanitizeAndApplyChange(WindowContainer container,
-            WindowContainerTransaction.Change change) {
-        if (!(container instanceof Task)) {
-            throw new RuntimeException("Invalid token in task transaction");
-        }
-        final Task task = (Task) container;
-        // The "client"-facing API should prevent bad changes; however, just in case, sanitize
-        // masks here.
-        int configMask = change.getConfigSetMask();
-        int windowMask = change.getWindowSetMask();
-        configMask &= ActivityInfo.CONFIG_WINDOW_CONFIGURATION
-                | ActivityInfo.CONFIG_SMALLEST_SCREEN_SIZE | ActivityInfo.CONFIG_SCREEN_SIZE;
-        windowMask &= (WindowConfiguration.WINDOW_CONFIG_BOUNDS
-                | WindowConfiguration.WINDOW_CONFIG_APP_BOUNDS);
-        int effects = 0;
-        if (configMask != 0) {
-            Configuration c = new Configuration(container.getRequestedOverrideConfiguration());
-            c.setTo(change.getConfiguration(), configMask, windowMask);
-            container.onRequestedOverrideConfigurationChanged(c);
-            // TODO(b/145675353): remove the following once we could apply new bounds to the
-            // pinned stack together with its children.
-            resizePinnedStackIfNeeded(container, configMask, windowMask, c);
-            effects |= TRANSACT_EFFECTS_CLIENT_CONFIG;
-        }
-        if ((change.getChangeMask() & WindowContainerTransaction.Change.CHANGE_FOCUSABLE) != 0) {
-            if (container.setFocusable(change.getFocusable())) {
-                effects |= TRANSACT_EFFECTS_LIFECYCLE;
-            }
-        }
-        if ((change.getChangeMask() & WindowContainerTransaction.Change.CHANGE_HIDDEN) != 0) {
-            if (task.setForceHidden(FLAG_FORCE_HIDDEN_FOR_TASK_ORG, change.getHidden())) {
-                effects |= TRANSACT_EFFECTS_LIFECYCLE;
-            }
-        }
-        return effects;
-    }
-
-    private int sanitizeAndApplyHierarchyOp(WindowContainer container,
-            WindowContainerTransaction.HierarchyOp hop) {
-        if (!(container instanceof Task)) {
-            throw new IllegalArgumentException("Invalid container in hierarchy op");
-        }
-        if (container.getDisplayContent() == null) {
-            Slog.w(TAG, "Container is no longer attached: " + container);
-            return 0;
-        }
-        if (hop.isReparent()) {
-            // special case for tiles since they are "virtual" parents
-            if (container instanceof ActivityStack && ((ActivityStack) container).isRootTask()) {
-                ActivityStack as = (ActivityStack) container;
-                TaskTile newParent = hop.getNewParent() == null ? null
-                        : (TaskTile) WindowContainer.fromBinder(hop.getNewParent());
-                if (as.getTile() != newParent) {
-                    if (as.getTile() != null) {
-                        as.getTile().removeChild(as);
-                    }
-                    if (newParent != null) {
-                        if (!as.affectedBySplitScreenResize()) {
-                            return 0;
-                        }
-                        newParent.addChild(as, POSITION_TOP);
-                    }
-                }
-                if (hop.getToTop()) {
-                    as.getDisplay().positionStackAtTop(as, false /* includingParents */);
-                } else {
-                    as.getDisplay().positionStackAtBottom(as);
-                }
-            } else if (container instanceof Task) {
-                throw new RuntimeException("Reparenting leaf Tasks is not supported now.");
-            }
-        } else {
-            // Ugh, of course ActivityStack has its own special reorder logic...
-            if (container instanceof ActivityStack && ((ActivityStack) container).isRootTask()) {
-                ActivityStack as = (ActivityStack) container;
-                if (hop.getToTop()) {
-                    as.getDisplay().positionStackAtTop(as, false /* includingParents */);
-                } else {
-                    as.getDisplay().positionStackAtBottom(as);
-                }
-            } else {
-                container.getParent().positionChildAt(
-                        hop.getToTop() ? POSITION_TOP : POSITION_BOTTOM,
-                        container, false /* includingParents */);
-            }
-        }
-        return TRANSACT_EFFECTS_LIFECYCLE;
-    }
-
-    private void resizePinnedStackIfNeeded(ConfigurationContainer container, int configMask,
-            int windowMask, Configuration config) {
-        if ((container instanceof ActivityStack)
-                && ((configMask & ActivityInfo.CONFIG_WINDOW_CONFIGURATION) != 0)
-                && ((windowMask & WindowConfiguration.WINDOW_CONFIG_BOUNDS) != 0)) {
-            final ActivityStack stack = (ActivityStack) container;
-            if (stack.inPinnedWindowingMode()) {
-                stack.resize(config.windowConfiguration.getBounds(),
-                        null /* configBounds */, PRESERVE_WINDOWS, true /* deferResume */);
-            }
-        }
-    }
-
-    private int applyWindowContainerChange(WindowContainer wc,
-            WindowContainerTransaction.Change c) {
-        int effects = sanitizeAndApplyChange(wc, c);
-
-        final Task tr = wc.asTask();
-
-        final SurfaceControl.Transaction t = c.getBoundsChangeTransaction();
-        if (t != null) {
-            tr.setMainWindowSizeChangeTransaction(t);
-        }
-
-        Rect enterPipBounds = c.getEnterPipBounds();
-        if (enterPipBounds != null) {
-            mService.mStackSupervisor.updatePictureInPictureMode(tr,
-                    enterPipBounds, true);
-        }
-
-        final int windowingMode = c.getWindowingMode();
-        if (windowingMode > -1) {
-            tr.setWindowingMode(windowingMode);
-        }
-        final int childWindowingMode = c.getActivityWindowingMode();
-        if (childWindowingMode > -1) {
-            tr.setActivityWindowingMode(childWindowingMode);
-        }
-
-        return effects;
-    }
-
-    @Override
-    public int applyContainerTransaction(WindowContainerTransaction t, ITaskOrganizer organizer) {
-        enforceStackPermission("applyContainerTransaction()");
-        int syncId = -1;
-        if (t == null) {
-            throw new IllegalArgumentException(
-                    "Null transaction passed to applyContainerTransaction");
-        }
-        long ident = Binder.clearCallingIdentity();
-        try {
-            synchronized (mGlobalLock) {
-                int effects = 0;
-
-                /**
-                 * If organizer is non-null we are looking to synchronize this transaction
-                 * by collecting all the results in to a SurfaceFlinger transaction and
-                 * then delivering that to the given organizers transaction ready callback.
-                 * See {@link BLASTSyncEngine} for the details of the operation. But at
-                 * a high level we create a sync operation with a given ID and an associated
-                 * organizer. Then we notify each WindowContainer in this WindowContainer
-                 * transaction that it is participating in a sync operation with that
-                 * ID. Once everything is notified we tell the BLASTSyncEngine
-                 * "setSyncReady" which means that we have added everything
-                 * to the set. At any point after this, all the WindowContainers
-                 * will eventually finish applying their changes and notify the
-                 * BLASTSyncEngine which will deliver the Transaction to the organizer.
-                 */
-                if (organizer != null) {
-                    syncId = startSyncWithOrganizer(organizer);
-                }
-                mService.deferWindowLayout();
-                try {
-                    ArraySet<WindowContainer> haveConfigChanges = new ArraySet<>();
-                    Iterator<Map.Entry<IBinder, WindowContainerTransaction.Change>> entries =
-                            t.getChanges().entrySet().iterator();
-                    while (entries.hasNext()) {
-                        final Map.Entry<IBinder, WindowContainerTransaction.Change> entry =
-                                entries.next();
-                        final WindowContainer wc = WindowContainer.fromBinder(entry.getKey());
-                        int containerEffect = applyWindowContainerChange(wc, entry.getValue());
-                        effects |= containerEffect;
-
-                        // Lifecycle changes will trigger ensureConfig for everything.
-                        if ((effects & TRANSACT_EFFECTS_LIFECYCLE) == 0
-                                && (containerEffect & TRANSACT_EFFECTS_CLIENT_CONFIG) != 0) {
-                            haveConfigChanges.add(wc);
-                        }
-                        if (syncId >= 0) {
-                            mBLASTSyncEngine.addToSyncSet(syncId, wc);
-                        }
-                    }
-                    // Hierarchy changes
-                    final List<WindowContainerTransaction.HierarchyOp> hops = t.getHierarchyOps();
-                    for (int i = 0, n = hops.size(); i < n; ++i) {
-                        final WindowContainerTransaction.HierarchyOp hop = hops.get(i);
-                        final WindowContainer wc = WindowContainer.fromBinder(hop.getContainer());
-                        effects |= sanitizeAndApplyHierarchyOp(wc, hop);
-                    }
-                    if ((effects & TRANSACT_EFFECTS_LIFECYCLE) != 0) {
-                        // Already calls ensureActivityConfig
-                        mService.mRootWindowContainer.ensureActivitiesVisible(
-                                null, 0, PRESERVE_WINDOWS);
-                    } else if ((effects & TRANSACT_EFFECTS_CLIENT_CONFIG) != 0) {
-                        final PooledConsumer f = PooledLambda.obtainConsumer(
-                                ActivityRecord::ensureActivityConfiguration,
-                                PooledLambda.__(ActivityRecord.class), 0,
-                                false /* preserveWindow */);
-                        try {
-                            for (int i = haveConfigChanges.size() - 1; i >= 0; --i) {
-                                haveConfigChanges.valueAt(i).forAllActivities(f);
-                            }
-                        } finally {
-                            f.recycle();
-                        }
-                    }
-                } finally {
-                    mService.continueWindowLayout();
-                    if (syncId >= 0) {
-                        setSyncReady(syncId);
-                    }
-                }
-            }
-        } finally {
-            Binder.restoreCallingIdentity(ident);
-        }
-        return syncId;
-    }
-
-    @Override
-    public void transactionReady(int id, SurfaceControl.Transaction sc) {
-        final ITaskOrganizer organizer = mTaskOrganizersByPendingSyncId.get(id);
-        if (organizer == null) {
-            Slog.e(TAG, "Got transaction complete for unexpected ID");
-        }
-        try {
-            organizer.transactionReady(id, sc);
-        } catch (RemoteException e) {
-        }
-
-        mTaskOrganizersByPendingSyncId.remove(id);
-    }
-
-    int startSyncWithOrganizer(ITaskOrganizer organizer) {
-        int id = mBLASTSyncEngine.startSyncSet(this);
-        mTaskOrganizersByPendingSyncId.put(id, organizer);
-        return id;
-    }
-
-    void setSyncReady(int id) {
-        mBLASTSyncEngine.setReady(id);
-    }
 }
diff --git a/services/core/java/com/android/server/wm/TaskTile.java b/services/core/java/com/android/server/wm/TaskTile.java
deleted file mode 100644
index 205b423..0000000
--- a/services/core/java/com/android/server/wm/TaskTile.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.wm;
-
-import static android.app.ActivityTaskManager.INVALID_TASK_ID;
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
-import static android.content.pm.ActivityInfo.RESIZE_MODE_RESIZEABLE;
-import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
-
-import android.app.ActivityManager;
-import android.app.TaskInfo;
-import android.app.WindowConfiguration;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-import android.content.pm.ApplicationInfo;
-import android.content.res.Configuration;
-import android.graphics.Rect;
-import android.os.IBinder;
-import android.util.Slog;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-
-/**
- * A Tile. Right now this acts as a proxy for manipulating non-child stacks. Eventually, this
- * can become an actual parent.
- */
-// TODO(task-hierarchy): Remove when tasks can nest >2 or when single tasks can handle their
-//                       own lifecycles.
-public class TaskTile extends ActivityStack {
-    private static final String TAG = "TaskTile";
-    final ArrayList<WindowContainer> mChildren = new ArrayList<>();
-
-    private static ActivityInfo createEmptyActivityInfo() {
-        ActivityInfo info = new ActivityInfo();
-        info.applicationInfo = new ApplicationInfo();
-        return info;
-    }
-
-    TaskTile(ActivityTaskManagerService atmService, int id, int windowingMode) {
-        super(atmService, id, new Intent() /*intent*/,  null /*affinityIntent*/, null /*affinity*/,
-                null /*rootAffinity*/, null /*realActivity*/, null /*origActivity*/,
-                false /*rootWasReset*/, false /*autoRemoveRecents*/, false /*askedCompatMode*/,
-                0 /*userId*/, 0 /*effectiveUid*/, null /*lastDescription*/,
-                System.currentTimeMillis(), true /*neverRelinquishIdentity*/,
-                new ActivityManager.TaskDescription(), id, INVALID_TASK_ID, INVALID_TASK_ID,
-                0 /*taskAffiliationColor*/, 0 /*callingUid*/, "" /*callingPackage*/,
-                null /*callingFeatureId*/, RESIZE_MODE_RESIZEABLE,
-                false /*supportsPictureInPicture*/, false /*_realActivitySuspended*/,
-                false /*userSetupComplete*/, INVALID_MIN_SIZE, INVALID_MIN_SIZE,
-                createEmptyActivityInfo(), null /*voiceSession*/, null /*voiceInteractor*/,
-                null /*stack*/);
-        getRequestedOverrideConfiguration().windowConfiguration.setWindowingMode(windowingMode);
-    }
-
-    @Override
-    void onDisplayChanged(DisplayContent dc) {
-        mDisplayContent = null;
-        if (dc != null) {
-            dc.getPendingTransaction().merge(getPendingTransaction());
-        }
-        mDisplayContent = dc;
-        // Virtual parent, so don't notify children.
-    }
-
-    @Override
-    TaskTile asTile() {
-        return this;
-    }
-
-    @Override
-    protected void addChild(WindowContainer child, Comparator<WindowContainer> comparator) {
-        throw new RuntimeException("Improper use of addChild() on Tile");
-    }
-
-    @Override
-    void addChild(WindowContainer child, int index) {
-        mChildren.add(child);
-        if (child instanceof ActivityStack) {
-            ((ActivityStack) child).setTile(this);
-        }
-        mAtmService.mTaskOrganizerController.dispatchTaskInfoChanged(
-                this, false /* force */);
-    }
-
-    @Override
-    void removeChild(WindowContainer child) {
-        if (child instanceof ActivityStack) {
-            ((ActivityStack) child).setTile(null);
-        }
-        mChildren.remove(child);
-        mAtmService.mTaskOrganizerController.dispatchTaskInfoChanged(
-                this, false /* force */);
-    }
-
-    void removeAllChildren() {
-        for (int i = mChildren.size() - 1; i >= 0; --i) {
-            final WindowContainer child = mChildren.get(i);
-            if (child instanceof ActivityStack) {
-                ((ActivityStack) child).setTile(null);
-            }
-        }
-        mChildren.clear();
-        mAtmService.mTaskOrganizerController.dispatchTaskInfoChanged(
-                this, false /* force */);
-    }
-
-    @Override
-    protected int getChildCount() {
-        // Currently 0 as this isn't a proper hierarchy member yet.
-        return 0;
-    }
-
-    @Override
-    public void setWindowingMode(/*@WindowConfiguration.WindowingMode*/ int windowingMode) {
-        Configuration c = new Configuration(getRequestedOverrideConfiguration());
-        c.windowConfiguration.setWindowingMode(windowingMode);
-        onRequestedOverrideConfigurationChanged(c);
-    }
-
-    @Override
-    public void onConfigurationChanged(Configuration newParentConfig) {
-        super.onConfigurationChanged(newParentConfig);
-        for (int i = mChildren.size() - 1; i >= 0; --i) {
-            final WindowContainer child = mChildren.get(i);
-            child.onConfigurationChanged(child.getParent().getConfiguration());
-        }
-    }
-
-    /**
-     * Until this can be part of the hierarchy, the Stack level can use this utility during
-     * resolveOverrideConfig to simulate inheritance.
-     */
-    void updateResolvedConfig(Configuration inOutResolvedConfig) {
-        Rect resolveBounds = inOutResolvedConfig.windowConfiguration.getBounds();
-        if (resolveBounds.isEmpty()) {
-            resolveBounds.set(getRequestedOverrideBounds());
-        }
-        int stackMode = inOutResolvedConfig.windowConfiguration.getWindowingMode();
-        if (stackMode == WindowConfiguration.WINDOWING_MODE_UNDEFINED
-                || stackMode == WindowConfiguration.WINDOWING_MODE_FULLSCREEN) {
-            // Also replace FULLSCREEN because we interpret FULLSCREEN as "fill parent"
-            inOutResolvedConfig.windowConfiguration.setWindowingMode(
-                    getRequestedOverrideWindowingMode());
-        }
-        if (inOutResolvedConfig.smallestScreenWidthDp
-                == Configuration.SMALLEST_SCREEN_WIDTH_DP_UNDEFINED) {
-            inOutResolvedConfig.smallestScreenWidthDp =
-                    getRequestedOverrideConfiguration().smallestScreenWidthDp;
-        }
-        if (inOutResolvedConfig.screenWidthDp == Configuration.SCREEN_WIDTH_DP_UNDEFINED) {
-            inOutResolvedConfig.screenWidthDp = getRequestedOverrideConfiguration().screenWidthDp;
-        }
-        if (inOutResolvedConfig.screenHeightDp == Configuration.SCREEN_HEIGHT_DP_UNDEFINED) {
-            inOutResolvedConfig.screenHeightDp = getRequestedOverrideConfiguration().screenHeightDp;
-        }
-        Rect resolveAppBounds = inOutResolvedConfig.windowConfiguration.getAppBounds();
-        if (resolveAppBounds == null || resolveAppBounds.isEmpty()) {
-            inOutResolvedConfig.windowConfiguration.setAppBounds(
-                    getRequestedOverrideConfiguration().windowConfiguration.getAppBounds());
-        }
-    }
-
-    @Override
-    void fillTaskInfo(TaskInfo info) {
-        super.fillTaskInfo(info);
-        WindowContainer top = null;
-        // Check mChildren.isEmpty directly because hasChild() -> getChildCount() always returns 0
-        if (!mChildren.isEmpty()) {
-            // Find the top-most root task which is a virtual child of this Tile. Because this is a
-            // virtual parent, the mChildren order here isn't changed during hierarchy operations.
-            WindowContainer parent = mChildren.get(0).getParent();
-            for (int i = parent.getChildCount() - 1; i >= 0; --i) {
-                if (mChildren.contains(parent.getChildAt(i))) {
-                    top = parent.getChildAt(i);
-                    break;
-                }
-            }
-        }
-        final Task topTask = top == null ? null : top.getTopMostTask();
-        boolean isResizable = topTask == null || topTask.isResizeable();
-        info.resizeMode = isResizable ? RESIZE_MODE_RESIZEABLE : RESIZE_MODE_UNRESIZEABLE;
-        info.topActivityType = top == null ? ACTIVITY_TYPE_UNDEFINED : top.getActivityType();
-    }
-
-    @Override
-    void removeImmediately() {
-        removeAllChildren();
-        super.removeImmediately();
-    }
-
-    @Override
-    void taskOrganizerDied() {
-        super.taskOrganizerDied();
-        removeImmediately();
-    }
-
-    static TaskTile forToken(IBinder token) {
-        try {
-            return (TaskTile) ((TaskToken) token).getContainer();
-        } catch (ClassCastException e) {
-            Slog.w(TAG, "Bad tile token: " + token, e);
-            return null;
-        }
-    }
-}
diff --git a/services/core/java/com/android/server/wm/WallpaperController.java b/services/core/java/com/android/server/wm/WallpaperController.java
index 57d0a33..29a2e18 100644
--- a/services/core/java/com/android/server/wm/WallpaperController.java
+++ b/services/core/java/com/android/server/wm/WallpaperController.java
@@ -142,11 +142,13 @@
             mFindResults.setUseTopWallpaperAsTarget(true);
         }
 
-        final boolean keyguardGoingAwayWithWallpaper = (w.mActivityRecord != null
-                && w.mActivityRecord.isAnimating(TRANSITION | PARENTS)
-                && AppTransition.isKeyguardGoingAwayTransit(w.mActivityRecord.getTransit())
-                && (w.mActivityRecord.getTransitFlags()
-                        & TRANSIT_FLAG_KEYGUARD_GOING_AWAY_WITH_WALLPAPER) != 0);
+        final WindowContainer animatingContainer = w.mActivityRecord != null
+                ? w.mActivityRecord.getAnimatingContainer() : null;
+        final boolean keyguardGoingAwayWithWallpaper = (animatingContainer != null
+                && animatingContainer.isAnimating(TRANSITION | PARENTS)
+                && AppTransition.isKeyguardGoingAwayTransit(animatingContainer.mTransit)
+                && (animatingContainer.mTransitFlags
+                & TRANSIT_FLAG_KEYGUARD_GOING_AWAY_WITH_WALLPAPER) != 0);
 
         boolean needsShowWhenLockedWallpaper = false;
         if ((w.mAttrs.flags & FLAG_SHOW_WHEN_LOCKED) != 0
@@ -166,8 +168,6 @@
 
         final RecentsAnimationController recentsAnimationController =
                 mService.getRecentsAnimationController();
-        final WindowContainer animatingContainer =
-                w.mActivityRecord != null ? w.mActivityRecord.getAnimatingContainer() : null;
         final boolean animationWallpaper = animatingContainer != null
                 && animatingContainer.getAnimation() != null
                 && animatingContainer.getAnimation().getShowWallpaper();
diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java
index a1902bb..ae0b685 100644
--- a/services/core/java/com/android/server/wm/WindowContainer.java
+++ b/services/core/java/com/android/server/wm/WindowContainer.java
@@ -68,7 +68,7 @@
 import android.util.Slog;
 import android.util.proto.ProtoOutputStream;
 import android.view.DisplayInfo;
-import android.view.IWindowContainer;
+import android.window.IWindowContainer;
 import android.view.MagnificationSpec;
 import android.view.RemoteAnimationDefinition;
 import android.view.RemoteAnimationTarget;
@@ -378,10 +378,7 @@
         if (mSurfaceControl == null) {
             // If we don't yet have a surface, but we now have a parent, we should
             // build a surface.
-            setSurfaceControl(makeSurface().build());
-            getPendingTransaction().show(mSurfaceControl);
-            onSurfaceShown(getPendingTransaction());
-            updateSurfacePosition();
+            createSurfaceControl(false /*force*/);
         } else {
             // If we have a surface but a new parent, we just need to perform a reparent. Go through
             // surface animator such that hierarchy is preserved when animating, i.e.
@@ -399,6 +396,13 @@
         scheduleAnimation();
     }
 
+    void createSurfaceControl(boolean force) {
+        setSurfaceControl(makeSurface().build());
+        getPendingTransaction().show(mSurfaceControl);
+        onSurfaceShown(getPendingTransaction());
+        updateSurfacePosition();
+    }
+
     /**
      * Called when the surface is shown for the first time.
      */
@@ -1608,6 +1612,12 @@
         return null;
     }
 
+    void forAllDisplayAreas(Consumer<DisplayArea> callback) {
+        for (int i = mChildren.size() - 1; i >= 0; --i) {
+            mChildren.get(i).forAllDisplayAreas(callback);
+        }
+    }
+
     /**
      * Returns 1, 0, or -1 depending on if this container is greater than, equal to, or lesser than
      * the input container in terms of z-order.
@@ -2321,6 +2331,9 @@
     }
 
     void updateSurfacePosition() {
+        // Avoid fighting with the organizer over Surface position.
+        if (isOrganized()) return;
+
         if (mSurfaceControl == null) {
             return;
         }
@@ -2370,6 +2383,13 @@
     }
 
     void getRelativeDisplayedPosition(Point outPos) {
+        // In addition to updateSurfacePosition, we keep other code that sets
+        // position from fighting with the organizer
+        if (isOrganized()) {
+            outPos.set(0, 0);
+            return;
+        }
+
         final Rect dispBounds = getDisplayedBounds();
         outPos.set(dispBounds.left, dispBounds.top);
         final WindowContainer parent = getParent();
@@ -2410,8 +2430,12 @@
         return null;
     }
 
-    RemoteToken getRemoteToken() {
-        return mRemoteToken;
+    /**
+     * @return {@code true} if window container is manage by a
+     *          {@link android.window.WindowOrganizer}
+     */
+    boolean isOrganized() {
+        return false;
     }
 
     static WindowContainer fromBinder(IBinder binder) {
@@ -2435,7 +2459,14 @@
 
         @Override
         public SurfaceControl getLeash() {
-            throw new RuntimeException("Not implemented");
+            final WindowContainer wc = getContainer();
+            if (wc == null) return null;
+            // We need to copy the SurfaceControl instead of returning the original
+            // because the Parcel FLAGS PARCELABLE_WRITE_RETURN_VALUE cause SurfaceControls
+            // to release themselves.
+            SurfaceControl sc = new SurfaceControl();
+            sc.copyFrom(wc.getSurfaceControl());
+            return sc;
         }
 
         @Override
diff --git a/services/core/java/com/android/server/wm/WindowManagerInternal.java b/services/core/java/com/android/server/wm/WindowManagerInternal.java
index 4ac809d..e011c794 100644
--- a/services/core/java/com/android/server/wm/WindowManagerInternal.java
+++ b/services/core/java/com/android/server/wm/WindowManagerInternal.java
@@ -569,12 +569,11 @@
             IBinder windowToken, int accessibilityWindowId);
 
     /**
-     * Transfers input focus from a given input token to that of the IME window.
      *
-     * @param sourceInputToken The source token.
-     * @param displayId The display hosting the IME window.
-     * @return Whether transfer was successful.
+     * Returns the window name associated to the given binder.
+     *
+     * @param binder The {@link IBinder} object
+     * @return The corresponding {@link WindowState#getName()}
      */
-    public abstract boolean transferTouchFocusToImeWindow(@NonNull IBinder sourceInputToken,
-            int displayId);
+    public abstract String getWindowName(@NonNull IBinder binder);
 }
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index eb18678..b1f22f8 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -58,7 +58,6 @@
 import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
 import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
-import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
 import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG;
 import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR;
@@ -186,6 +185,7 @@
 import android.os.Trace;
 import android.os.UserHandle;
 import android.os.WorkSource;
+import android.provider.DeviceConfig;
 import android.provider.Settings;
 import android.service.vr.IVrManager;
 import android.service.vr.IVrStateCallbacks;
@@ -1167,7 +1167,9 @@
         mAnimator = new WindowAnimator(this);
         mRoot = new RootWindowContainer(this);
 
-        mUseBLAST = true;
+        mUseBLAST = DeviceConfig.getBoolean(
+                    DeviceConfig.NAMESPACE_WINDOW_MANAGER_NATIVE_BOOT,
+                    WM_USE_BLAST_ADAPTER_FLAG, false);
 
         mWindowPlacerLocked = new WindowSurfacePlacer(this);
         mTaskSnapshotController = new TaskSnapshotController(this);
@@ -1479,12 +1481,6 @@
                             + "%s.  Aborting.", attrs.token);
                     return WindowManagerGlobal.ADD_BAD_APP_TOKEN;
                 }
-            } else if (rootType == TYPE_DREAM) {
-                if (token.windowType != TYPE_DREAM) {
-                    ProtoLog.w(WM_ERROR, "Attempted to add Dream window with bad token "
-                            + "%s.  Aborting.", attrs.token);
-                    return WindowManagerGlobal.ADD_BAD_APP_TOKEN;
-                }
             } else if (rootType == TYPE_ACCESSIBILITY_OVERLAY) {
                 if (token.windowType != TYPE_ACCESSIBILITY_OVERLAY) {
                     ProtoLog.w(WM_ERROR,
@@ -1720,11 +1716,6 @@
                     + "%s.  Aborting.", tokenForLog);
             return false;
         }
-        if (rootType == TYPE_DREAM) {
-            ProtoLog.w(WM_ERROR, "Attempted to add Dream window with unknown token "
-                    + "%s.  Aborting.", tokenForLog);
-            return false;
-        }
         if (rootType == TYPE_QS_DIALOG) {
             ProtoLog.w(WM_ERROR, "Attempted to add QS dialog window with unknown token "
                     + "%s.  Aborting.", tokenForLog);
@@ -7563,26 +7554,11 @@
         }
 
         @Override
-        public boolean transferTouchFocusToImeWindow(@NonNull IBinder sourceInputToken,
-                int displayId) {
-            final IBinder destinationInputToken;
-
+        public String getWindowName(@NonNull IBinder binder) {
             synchronized (mGlobalLock) {
-                final DisplayContent displayContent = mRoot.getDisplayContent(displayId);
-                if (displayContent == null) {
-                    return false;
-                }
-                final WindowState imeWindow = displayContent.mInputMethodWindow;
-                if (imeWindow == null) {
-                    return false;
-                }
-                if (imeWindow.mInputChannel == null) {
-                    return false;
-                }
-                destinationInputToken = imeWindow.mInputChannel.getToken();
+                final WindowState w = mWindowMap.get(binder);
+                return w != null ? w.getName() : null;
             }
-
-            return mInputManager.transferTouchFocus(sourceInputToken, destinationInputToken);
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java
new file mode 100644
index 0000000..5f21e17
--- /dev/null
+++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java
@@ -0,0 +1,360 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static android.Manifest.permission.MANAGE_ACTIVITY_STACKS;
+
+import static com.android.server.wm.ActivityStackSupervisor.PRESERVE_WINDOWS;
+import static com.android.server.wm.Task.FLAG_FORCE_HIDDEN_FOR_TASK_ORG;
+import static com.android.server.wm.WindowContainer.POSITION_BOTTOM;
+import static com.android.server.wm.WindowContainer.POSITION_TOP;
+
+import android.app.WindowConfiguration;
+import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
+import android.graphics.Rect;
+import android.os.Binder;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.util.ArraySet;
+import android.util.Slog;
+import android.view.SurfaceControl;
+import android.window.IDisplayAreaOrganizerController;
+import android.window.ITaskOrganizerController;
+import android.window.IWindowContainerTransactionCallback;
+import android.window.IWindowOrganizerController;
+import android.window.WindowContainerTransaction;
+
+import com.android.internal.util.function.pooled.PooledConsumer;
+import com.android.internal.util.function.pooled.PooledLambda;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Server side implementation for the interface for organizing windows
+ * @see android.window.WindowOrganizer
+ */
+class WindowOrganizerController extends IWindowOrganizerController.Stub
+    implements BLASTSyncEngine.TransactionReadyListener {
+
+    private static final String TAG = "WindowOrganizerController";
+
+    /** Flag indicating that an applied transaction may have effected lifecycle */
+    private static final int TRANSACT_EFFECTS_CLIENT_CONFIG = 1;
+    private static final int TRANSACT_EFFECTS_LIFECYCLE = 1 << 1;
+
+    /**
+     * Masks specifying which configurations task-organizers can control. Incoming transactions
+     * will be filtered to only include these.
+     */
+    static final int CONTROLLABLE_CONFIGS = ActivityInfo.CONFIG_WINDOW_CONFIGURATION
+            | ActivityInfo.CONFIG_SMALLEST_SCREEN_SIZE | ActivityInfo.CONFIG_SCREEN_SIZE;
+    static final int CONTROLLABLE_WINDOW_CONFIGS = WindowConfiguration.WINDOW_CONFIG_BOUNDS
+            | WindowConfiguration.WINDOW_CONFIG_APP_BOUNDS;
+
+    private final ActivityTaskManagerService mService;
+    private final WindowManagerGlobalLock mGlobalLock;
+
+    private final BLASTSyncEngine mBLASTSyncEngine = new BLASTSyncEngine();
+    private final HashMap<Integer, IWindowContainerTransactionCallback>
+            mTransactionCallbacksByPendingSyncId = new HashMap();
+
+    final TaskOrganizerController mTaskOrganizerController;
+    final DisplayAreaOrganizerController mDisplayAreaOrganizerController;
+
+    WindowOrganizerController(ActivityTaskManagerService atm) {
+        mService = atm;
+        mGlobalLock = atm.mGlobalLock;
+        mTaskOrganizerController = new TaskOrganizerController(mService);
+        mDisplayAreaOrganizerController = new DisplayAreaOrganizerController(mService);
+    }
+
+    @Override
+    public void applyTransaction(WindowContainerTransaction t) {
+        applySyncTransaction(t, null /*callback*/);
+    }
+
+    @Override
+    public int applySyncTransaction(WindowContainerTransaction t,
+            IWindowContainerTransactionCallback callback) {
+        enforceStackPermission("applySyncTransaction()");
+        int syncId = -1;
+        if (t == null) {
+            throw new IllegalArgumentException(
+                    "Null transaction passed to applySyncTransaction");
+        }
+        long ident = Binder.clearCallingIdentity();
+        try {
+            synchronized (mGlobalLock) {
+                int effects = 0;
+
+                /**
+                 * If callback is non-null we are looking to synchronize this transaction by
+                 * collecting all the results in to a SurfaceFlinger transaction and then delivering
+                 * that to the given transaction ready callback. See {@link BLASTSyncEngine} for the
+                 * details of the operation. But at a high level we create a sync operation with a
+                 * given ID and an associated callback. Then we notify each WindowContainer in this
+                 * WindowContainer transaction that it is participating in a sync operation with
+                 * that ID. Once everything is notified we tell the BLASTSyncEngine "setSyncReady"
+                 * which means that we have added everything to the set. At any point after this,
+                 * all the WindowContainers will eventually finish applying their changes and notify
+                 * the BLASTSyncEngine which will deliver the Transaction to the callback.
+                 */
+                if (callback != null) {
+                    syncId = startSyncWithOrganizer(callback);
+                }
+                mService.deferWindowLayout();
+                try {
+                    ArraySet<WindowContainer> haveConfigChanges = new ArraySet<>();
+                    Iterator<Map.Entry<IBinder, WindowContainerTransaction.Change>> entries =
+                            t.getChanges().entrySet().iterator();
+                    while (entries.hasNext()) {
+                        final Map.Entry<IBinder, WindowContainerTransaction.Change> entry =
+                                entries.next();
+                        final WindowContainer wc = WindowContainer.fromBinder(entry.getKey());
+                        int containerEffect = applyWindowContainerChange(wc, entry.getValue());
+                        effects |= containerEffect;
+
+                        // Lifecycle changes will trigger ensureConfig for everything.
+                        if ((effects & TRANSACT_EFFECTS_LIFECYCLE) == 0
+                                && (containerEffect & TRANSACT_EFFECTS_CLIENT_CONFIG) != 0) {
+                            haveConfigChanges.add(wc);
+                        }
+                        if (syncId >= 0) {
+                            mBLASTSyncEngine.addToSyncSet(syncId, wc);
+                        }
+                    }
+                    // Hierarchy changes
+                    final List<WindowContainerTransaction.HierarchyOp> hops = t.getHierarchyOps();
+                    for (int i = 0, n = hops.size(); i < n; ++i) {
+                        final WindowContainerTransaction.HierarchyOp hop = hops.get(i);
+                        final WindowContainer wc = WindowContainer.fromBinder(hop.getContainer());
+                        effects |= sanitizeAndApplyHierarchyOp(wc, hop);
+                    }
+                    if ((effects & TRANSACT_EFFECTS_LIFECYCLE) != 0) {
+                        // Already calls ensureActivityConfig
+                        mService.mRootWindowContainer.ensureActivitiesVisible(
+                                null, 0, PRESERVE_WINDOWS);
+                    } else if ((effects & TRANSACT_EFFECTS_CLIENT_CONFIG) != 0) {
+                        final PooledConsumer f = PooledLambda.obtainConsumer(
+                                ActivityRecord::ensureActivityConfiguration,
+                                PooledLambda.__(ActivityRecord.class), 0,
+                                false /* preserveWindow */);
+                        try {
+                            for (int i = haveConfigChanges.size() - 1; i >= 0; --i) {
+                                haveConfigChanges.valueAt(i).forAllActivities(f);
+                            }
+                        } finally {
+                            f.recycle();
+                        }
+                    }
+                } finally {
+                    mService.continueWindowLayout();
+                    if (syncId >= 0) {
+                        setSyncReady(syncId);
+                    }
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(ident);
+        }
+        return syncId;
+    }
+
+    private int sanitizeAndApplyChange(WindowContainer container,
+            WindowContainerTransaction.Change change) {
+        if (!(container instanceof Task)) {
+            throw new RuntimeException("Invalid token in task transaction");
+        }
+        final Task task = (Task) container;
+        // The "client"-facing API should prevent bad changes; however, just in case, sanitize
+        // masks here.
+        final int configMask = change.getConfigSetMask() & CONTROLLABLE_CONFIGS;
+        final int windowMask = change.getWindowSetMask() & CONTROLLABLE_WINDOW_CONFIGS;
+        int effects = 0;
+        if (configMask != 0) {
+            Configuration c = new Configuration(container.getRequestedOverrideConfiguration());
+            c.setTo(change.getConfiguration(), configMask, windowMask);
+            container.onRequestedOverrideConfigurationChanged(c);
+            // TODO(b/145675353): remove the following once we could apply new bounds to the
+            // pinned stack together with its children.
+            resizePinnedStackIfNeeded(container, configMask, windowMask, c);
+            effects |= TRANSACT_EFFECTS_CLIENT_CONFIG;
+        }
+        if ((change.getChangeMask() & WindowContainerTransaction.Change.CHANGE_FOCUSABLE) != 0) {
+            if (container.setFocusable(change.getFocusable())) {
+                effects |= TRANSACT_EFFECTS_LIFECYCLE;
+            }
+        }
+        if ((change.getChangeMask() & WindowContainerTransaction.Change.CHANGE_HIDDEN) != 0) {
+            if (task.setForceHidden(FLAG_FORCE_HIDDEN_FOR_TASK_ORG, change.getHidden())) {
+                effects |= TRANSACT_EFFECTS_LIFECYCLE;
+            }
+        }
+        return effects;
+    }
+
+    private int sanitizeAndApplyHierarchyOp(WindowContainer container,
+            WindowContainerTransaction.HierarchyOp hop) {
+        final Task task = container.asTask();
+        if (task == null) {
+            throw new IllegalArgumentException("Invalid container in hierarchy op");
+        }
+        final DisplayContent dc = task.getDisplayContent();
+        if (dc == null) {
+            Slog.w(TAG, "Container is no longer attached: " + task);
+            return 0;
+        }
+        final ActivityStack as = (ActivityStack) task;
+
+        if (hop.isReparent()) {
+            final boolean isNonOrganizedRootableTask =
+                    (task.isRootTask() && !task.mCreatedByOrganizer)
+                            || task.getParent().asTask().mCreatedByOrganizer;
+            if (isNonOrganizedRootableTask) {
+                Task newParent = hop.getNewParent() == null ? null
+                        : WindowContainer.fromBinder(hop.getNewParent()).asTask();
+                if (task.getParent() != newParent) {
+                    if (newParent == null) {
+                        // Re-parent task to display as a root task.
+                        dc.moveStackToDisplay(as, hop.getToTop());
+                    } else if (newParent.inMultiWindowMode() && !task.isResizeable()
+                            && task.isLeafTask()) {
+                        Slog.w(TAG, "Can't support task that doesn't support multi-window mode in"
+                                + " multi-window mode... newParent=" + newParent + " task=" + task);
+                        return 0;
+                    } else {
+                        // Clear the window crop on root task since it may not be updated after
+                        // reparent (no longer be a root task)
+                        task.getSurfaceControl().setWindowCrop(null);
+                        task.reparent((ActivityStack) newParent,
+                                hop.getToTop() ? POSITION_TOP : POSITION_BOTTOM,
+                                false /*moveParents*/, "sanitizeAndApplyHierarchyOp");
+                    }
+                } else {
+                    final ActivityStack rootTask =
+                            (ActivityStack) (newParent != null ? newParent : task.getRootTask());
+                    if (hop.getToTop()) {
+                        as.getDisplay().positionStackAtTop(rootTask, false /* includingParents */);
+                    } else {
+                        as.getDisplay().positionStackAtBottom(rootTask);
+                    }
+                }
+            } else {
+                throw new RuntimeException("Reparenting leaf Tasks is not supported now.");
+            }
+        } else {
+            // Ugh, of course ActivityStack has its own special reorder logic...
+            if (task.isRootTask()) {
+                if (hop.getToTop()) {
+                    dc.positionStackAtTop(as, false /* includingParents */);
+                } else {
+                    dc.positionStackAtBottom(as);
+                }
+            } else {
+                task.getParent().positionChildAt(
+                        hop.getToTop() ? POSITION_TOP : POSITION_BOTTOM,
+                        task, false /* includingParents */);
+            }
+        }
+        return TRANSACT_EFFECTS_LIFECYCLE;
+    }
+
+    private int applyWindowContainerChange(WindowContainer wc,
+            WindowContainerTransaction.Change c) {
+        int effects = sanitizeAndApplyChange(wc, c);
+
+        final Task tr = wc.asTask();
+
+        final SurfaceControl.Transaction t = c.getBoundsChangeTransaction();
+        if (t != null) {
+            tr.setMainWindowSizeChangeTransaction(t);
+        }
+
+        Rect enterPipBounds = c.getEnterPipBounds();
+        if (enterPipBounds != null) {
+            mService.mStackSupervisor.updatePictureInPictureMode(tr,
+                    enterPipBounds, true);
+        }
+
+        final int windowingMode = c.getWindowingMode();
+        if (windowingMode > -1) {
+            tr.setWindowingMode(windowingMode);
+        }
+        final int childWindowingMode = c.getActivityWindowingMode();
+        if (childWindowingMode > -1) {
+            tr.setActivityWindowingMode(childWindowingMode);
+        }
+
+        return effects;
+    }
+
+    private void resizePinnedStackIfNeeded(ConfigurationContainer container, int configMask,
+            int windowMask, Configuration config) {
+        if ((container instanceof ActivityStack)
+                && ((configMask & ActivityInfo.CONFIG_WINDOW_CONFIGURATION) != 0)
+                && ((windowMask & WindowConfiguration.WINDOW_CONFIG_BOUNDS) != 0)) {
+            final ActivityStack stack = (ActivityStack) container;
+            if (stack.inPinnedWindowingMode()) {
+                stack.resize(config.windowConfiguration.getBounds(),
+                        null /* configBounds */, PRESERVE_WINDOWS, true /* deferResume */);
+            }
+        }
+    }
+
+    @Override
+    public ITaskOrganizerController getTaskOrganizerController() {
+        enforceStackPermission("getTaskOrganizerController()");
+        return mTaskOrganizerController;
+    }
+
+    @Override
+    public IDisplayAreaOrganizerController getDisplayAreaOrganizerController() {
+        enforceStackPermission("getDisplayAreaOrganizerController()");
+        return mDisplayAreaOrganizerController;
+    }
+
+    int startSyncWithOrganizer(IWindowContainerTransactionCallback callback) {
+        int id = mBLASTSyncEngine.startSyncSet(this);
+        mTransactionCallbacksByPendingSyncId.put(id, callback);
+        return id;
+    }
+
+    void setSyncReady(int id) {
+        mBLASTSyncEngine.setReady(id);
+    }
+
+    @Override
+    public void transactionReady(int mSyncId, SurfaceControl.Transaction mergedTransaction) {
+        final IWindowContainerTransactionCallback callback =
+                mTransactionCallbacksByPendingSyncId.get(mSyncId);
+
+        try {
+            callback.transactionReady(mSyncId, mergedTransaction);
+        } catch (RemoteException e) {
+        }
+
+        mTransactionCallbacksByPendingSyncId.remove(mSyncId);
+    }
+
+    private void enforceStackPermission(String func) {
+        mService.mAmInternal.enforceCallingPermission(MANAGE_ACTIVITY_STACKS, func);
+    }
+}
diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java
index f356329..194ed3e 100644
--- a/services/core/java/com/android/server/wm/WindowProcessController.java
+++ b/services/core/java/com/android/server/wm/WindowProcessController.java
@@ -751,6 +751,16 @@
         return false;
     }
 
+    boolean hasResumedActivity() {
+        for (int i = mActivities.size() - 1; i >= 0; --i) {
+            final ActivityRecord activity = mActivities.get(i);
+            if (activity.isState(RESUMED)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
 
     void updateIntentForHeavyWeightActivity(Intent intent) {
         if (mActivities.isEmpty()) {
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 3617570..b448740 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -20,6 +20,7 @@
 import static android.app.AppOpsManager.MODE_ALLOWED;
 import static android.app.AppOpsManager.MODE_DEFAULT;
 import static android.app.AppOpsManager.OP_NONE;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_DREAM;
 import static android.app.WindowConfiguration.isSplitScreenWindowingMode;
 import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
 import static android.os.PowerManager.DRAW_WAKE_LOCK;
@@ -131,6 +132,7 @@
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_WALLPAPER_LIGHT;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
+import static com.android.server.wm.WindowManagerService.H.WINDOW_STATE_BLAST_SYNC_TIMEOUT;
 import static com.android.server.wm.WindowManagerService.MAX_ANIMATION_DURATION;
 import static com.android.server.wm.WindowManagerService.TYPE_LAYER_MULTIPLIER;
 import static com.android.server.wm.WindowManagerService.TYPE_LAYER_OFFSET;
@@ -138,7 +140,6 @@
 import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_REMOVING_FOCUS;
 import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_WILL_PLACE_SURFACES;
 import static com.android.server.wm.WindowManagerService.WINDOWS_FREEZING_SCREENS_TIMEOUT;
-import static com.android.server.wm.WindowManagerService.H.WINDOW_STATE_BLAST_SYNC_TIMEOUT;
 import static com.android.server.wm.WindowStateAnimator.COMMIT_DRAW_PENDING;
 import static com.android.server.wm.WindowStateAnimator.DRAW_PENDING;
 import static com.android.server.wm.WindowStateAnimator.HAS_DRAWN;
@@ -608,6 +609,11 @@
     boolean mSeamlesslyRotated = false;
 
     /**
+     * Indicates if this window is behind IME. Only windows behind IME can get insets from IME.
+     */
+    boolean mBehindIme = false;
+
+    /**
      * Surface insets from the previous call to relayout(), used to track
      * if we are changing the Surface insets.
      */
@@ -1689,6 +1695,11 @@
         return !isParentWindowHidden() || isAnimating(TRANSITION | PARENTS);
     }
 
+    boolean isDreamWindow() {
+        return mActivityRecord != null
+               && mActivityRecord.getActivityType() == ACTIVITY_TYPE_DREAM;
+    }
+
     /**
      * Whether this window's drawn state might affect the drawn states of the app token.
      *
@@ -2270,9 +2281,9 @@
             return false;
         }
 
-        if (PixelFormat.formatHasAlpha(mAttrs.format) && mAttrs.alpha == 0) {
-            // Support legacy use cases where completely transparent windows can still be ime target
-            // with FLAG_NOT_FOCUSABLE and ALT_FOCUSABLE_IM set.
+        if (PixelFormat.formatHasAlpha(mAttrs.format)) {
+            // Support legacy use cases where transparent windows can still be ime target with
+            // FLAG_NOT_FOCUSABLE and ALT_FOCUSABLE_IM set.
             // Certain apps listen for IME insets using transparent windows and ADJUST_NOTHING to
             // manually synchronize app content to IME animation b/144619551.
             // TODO(b/145812508): remove this once new focus management is complete b/141738570
@@ -3338,7 +3349,7 @@
         }
 
         final ActivityStack stack = task.getStack();
-        if (stack == null) {
+        if (stack == null || stack.mCreatedByOrganizer) {
             return;
         }
 
@@ -5656,7 +5667,12 @@
         // the status bar). In that case we need to use the final frame.
         if (inFreeformWindowingMode()) {
             outFrame.set(getFrameLw());
-        } else if (isLetterboxedAppWindow()) {
+        } else if (isLetterboxedAppWindow() || mToken.isFixedRotationTransforming()) {
+            // 1. The letterbox surfaces should be animated with the owner activity, so use task
+            //    bounds to include them.
+            // 2. If the activity has fixed rotation transform, its windows are rotated in activity
+            //    level. Because the animation runs before display is rotated, task bounds should
+            //    represent the frames in display space coordinates.
             outFrame.set(getTask().getBounds());
         } else if (isDockedResizing()) {
             // If we are animating while docked resizing, then use the stack bounds as the
diff --git a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
index 0cfdebc..6b9fbcb 100644
--- a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
+++ b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
@@ -157,9 +157,7 @@
 
         mInLayout = true;
 
-        boolean recoveringMemory = false;
         if (!mService.mForceRemoves.isEmpty()) {
-            recoveringMemory = true;
             // Wait a little bit for things to settle down, and off we go.
             while (!mService.mForceRemoves.isEmpty()) {
                 final WindowState ws = mService.mForceRemoves.remove(0);
@@ -177,7 +175,7 @@
         }
 
         try {
-            mService.mRoot.performSurfacePlacement(recoveringMemory);
+            mService.mRoot.performSurfacePlacement();
 
             mInLayout = false;
 
diff --git a/services/core/java/com/android/server/wm/WindowToken.java b/services/core/java/com/android/server/wm/WindowToken.java
index b7c6af2..3c2b6ec 100644
--- a/services/core/java/com/android/server/wm/WindowToken.java
+++ b/services/core/java/com/android/server/wm/WindowToken.java
@@ -100,6 +100,9 @@
     private Configuration mLastReportedConfig;
     private int mLastReportedDisplay = INVALID_DISPLAY;
 
+    /**
+     * When set to {@code true}, this window token is created from {@link android.app.WindowContext}
+     */
     @VisibleForTesting
     final boolean mFromClientToken;
 
@@ -154,7 +157,10 @@
         void resetTransform() {
             for (int i = mRotatedContainers.size() - 1; i >= 0; i--) {
                 final WindowContainer<?> c = mRotatedContainers.get(i);
-                mRotator.finish(c.getPendingTransaction(), c);
+                // If the window is detached (no parent), its surface may have been released.
+                if (c.getParent() != null) {
+                    mRotator.finish(c.getPendingTransaction(), c);
+                }
             }
         }
     }
@@ -278,6 +284,11 @@
             // Child windows are added to their parent windows.
             return;
         }
+        // This token is created from WindowContext and the client requests to addView now, create a
+        // surface for this token.
+        if (mSurfaceControl == null) {
+            createSurfaceControl(true /* force */);
+        }
         if (!mChildren.contains(win)) {
             ProtoLog.v(WM_DEBUG_ADD_REMOVE, "Adding %s to %s", win, this);
             addChild(win, mWindowComparator);
@@ -286,6 +297,13 @@
         }
     }
 
+    @Override
+    void createSurfaceControl(boolean force) {
+        if (!mFromClientToken || force) {
+            super.createSurfaceControl(force);
+        }
+    }
+
     /** Returns true if the token windows list is empty. */
     boolean isEmpty() {
         return mChildren.isEmpty();
@@ -462,26 +480,42 @@
     }
 
     /**
-     * Clears the transformation and continue updating the orientation change of display. Only the
-     * state owner can clear the transform state.
+     * Finishes the transform and continue updating the orientation change of display. Only the
+     * state owner can finish the transform state.
      */
-    void clearFixedRotationTransform() {
-        final FixedRotationTransformState state = mFixedRotationTransformState;
-        if (state == null || state.mOwner != this) {
+    void finishFixedRotationTransform() {
+        if (mFixedRotationTransformState == null || mFixedRotationTransformState.mOwner != this) {
             return;
         }
-        state.resetTransform();
-        // Clear the flag so if the display will be updated to the same orientation, the transform
-        // won't take effect. The state is cleared at the end, because it is used to indicate that
-        // other windows can use seamless rotation when applying rotation to display.
-        state.mIsTransforming = false;
         final boolean changed =
                 mDisplayContent.continueUpdateOrientationForDiffOrienLaunchingApp(this);
-        // If it is not the launching app or the display is not rotated, make sure the merged
-        // override configuration is restored from parent.
+        // If it is not the launching app or the display is not rotated, make sure the transform is
+        // cleared and the configuration is restored from parent.
         if (!changed) {
-            onMergedOverrideConfigurationChanged();
+            clearFixedRotationTransform(null /* applyDisplayRotation */);
+            onConfigurationChanged(getParent().getConfiguration());
         }
+    }
+
+    /**
+     * Clears the transform and apply display rotation if the action is given. The caller needs to
+     * refresh the configuration of this container after this method call.
+     */
+    void clearFixedRotationTransform(Runnable applyDisplayRotation) {
+        final FixedRotationTransformState state = mFixedRotationTransformState;
+        if (state == null) {
+            return;
+        }
+
+        state.resetTransform();
+        // Clear the flag so if the display will be updated to the same orientation, the transform
+        // won't take effect.
+        state.mIsTransforming = false;
+        if (applyDisplayRotation != null) {
+            applyDisplayRotation.run();
+        }
+        // The state is cleared at the end, because it is used to indicate that other windows can
+        // use seamless rotation when applying rotation to display.
         for (int i = state.mAssociatedTokens.size() - 1; i >= 0; i--) {
             state.mAssociatedTokens.get(i).mFixedRotationTransformState = null;
         }
@@ -510,19 +544,6 @@
     }
 
     /**
-     * Converts the rotated animation frames and insets back to display space for local animation.
-     * It should only be called when {@link #hasFixedRotationTransform} is true.
-     */
-    void unrotateAnimationFrames(Rect outFrame, Rect outInsets, Rect outStableInsets,
-            Rect outSurfaceInsets) {
-        final SeamlessRotator rotator = mFixedRotationTransformState.mRotator;
-        rotator.unrotateFrame(outFrame);
-        rotator.unrotateInsets(outInsets);
-        rotator.unrotateInsets(outStableInsets);
-        rotator.unrotateInsets(outSurfaceInsets);
-    }
-
-    /**
      * Gives a chance to this {@link WindowToken} to adjust the {@link
      * android.view.WindowManager.LayoutParams} of its windows.
      */
diff --git a/services/core/java/com/android/server/wm/utils/RotationAnimationUtils.java b/services/core/java/com/android/server/wm/utils/RotationAnimationUtils.java
index d02f79f..9dee7af 100644
--- a/services/core/java/com/android/server/wm/utils/RotationAnimationUtils.java
+++ b/services/core/java/com/android/server/wm/utils/RotationAnimationUtils.java
@@ -16,16 +16,21 @@
 
 package com.android.server.wm.utils;
 
-import android.graphics.Bitmap;
+import static android.graphics.PixelFormat.RGBA_8888;
+
+import android.graphics.Color;
 import android.graphics.ColorSpace;
 import android.graphics.GraphicBuffer;
 import android.graphics.Matrix;
 import android.graphics.Point;
 import android.graphics.Rect;
+import android.media.Image;
+import android.media.ImageReader;
 import android.view.Display;
 import android.view.Surface;
 import android.view.SurfaceControl;
 
+import java.nio.ByteBuffer;
 import java.util.Arrays;
 
 
@@ -38,31 +43,59 @@
      * @return the average luminance of all the pixels at the borders of the bitmap
      */
     public static float getMedianBorderLuma(GraphicBuffer graphicBuffer, ColorSpace colorSpace) {
-        Bitmap hwBitmap = Bitmap.wrapHardwareBuffer(graphicBuffer, colorSpace);
-        if (hwBitmap == null) {
+        if (graphicBuffer == null || graphicBuffer.getFormat() != RGBA_8888) {
             return 0;
         }
 
-        Bitmap swaBitmap = hwBitmap.copy(Bitmap.Config.ARGB_8888, false);
-        int height = swaBitmap.getHeight();
-        int width = swaBitmap.getWidth();
+        ImageReader ir = ImageReader.newInstance(graphicBuffer.getWidth(),
+                graphicBuffer.getHeight(), graphicBuffer.getFormat(), 1);
+        ir.getSurface().attachAndQueueBufferWithColorSpace(graphicBuffer, colorSpace);
+        Image image = ir.acquireLatestImage();
+        if (image == null || image.getPlanes().length == 0) {
+            return 0;
+        }
+
+        Image.Plane plane = image.getPlanes()[0];
+        ByteBuffer buffer = plane.getBuffer();
+        int width = image.getWidth();
+        int height = image.getHeight();
+        int pixelStride = plane.getPixelStride();
+        int rowStride = plane.getRowStride();
         float[] borderLumas = new float[2 * width + 2 * height];
-        int i;
-        int index = 0;
-        for (i = 0; i < width; i++, index += 2) {
-            borderLumas[index] = swaBitmap.getColor(i, 0).luminance();
-            borderLumas[index + 1] = swaBitmap.getColor(i, height - 1).luminance();
+
+        // Grab the top and bottom borders
+        int l = 0;
+        for (int x = 0; x < width; x++) {
+            borderLumas[l++] = getPixelLuminance(buffer, x, 0, pixelStride, rowStride);
+            borderLumas[l++] = getPixelLuminance(buffer, x, height - 1, pixelStride, rowStride);
         }
-        for (i = 0; i < height; i++, index += 2) {
-            borderLumas[index] = swaBitmap.getColor(0, i).luminance();
-            borderLumas[index + 1] = swaBitmap.getColor(width - 1, i).luminance();
+
+        // Grab the left and right borders
+        for (int y = 0; y < height; y++) {
+            borderLumas[l++] = getPixelLuminance(buffer, 0, y, pixelStride, rowStride);
+            borderLumas[l++] = getPixelLuminance(buffer, width - 1, y, pixelStride, rowStride);
         }
+
+        // Cleanup
+        ir.close();
+
         // Oh, is this too simple and inefficient for you?
         // How about implementing a O(n) solution? https://en.wikipedia.org/wiki/Median_of_medians
         Arrays.sort(borderLumas);
         return borderLumas[borderLumas.length / 2];
     }
 
+    private static float getPixelLuminance(ByteBuffer buffer, int x, int y,
+            int pixelStride, int rowStride) {
+        int offset = y * rowStride + x * pixelStride;
+        int pixel = 0;
+        pixel |= (buffer.get(offset) & 0xff) << 16;     // R
+        pixel |= (buffer.get(offset + 1) & 0xff) << 8;  // G
+        pixel |= (buffer.get(offset + 2) & 0xff);       // B
+        pixel |= (buffer.get(offset + 3) & 0xff) << 24; // A
+        return Color.valueOf(pixel).luminance();
+    }
+
     /**
      * Gets the average border luma by taking a screenshot of the {@param surfaceControl}.
      * @see #getMedianBorderLuma(GraphicBuffer, ColorSpace)
diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp
index e0d4045..e3f9ae8 100644
--- a/services/core/jni/com_android_server_input_InputManagerService.cpp
+++ b/services/core/jni/com_android_server_input_InputManagerService.cpp
@@ -220,6 +220,7 @@
     void reloadPointerIcons();
     void setCustomPointerIcon(const SpriteIcon& icon);
     void setPointerCapture(bool enabled);
+    void setMotionClassifierEnabled(bool enabled);
 
     /* --- InputReaderPolicyInterface implementation --- */
 
@@ -1295,6 +1296,10 @@
     return POINTER_ICON_STYLE_CUSTOM;
 }
 
+void NativeInputManager::setMotionClassifierEnabled(bool enabled) {
+    mInputManager->setMotionClassifierEnabled(enabled);
+}
+
 // ----------------------------------------------------------------------------
 
 static jlong nativeInit(JNIEnv* env, jclass /* clazz */,
@@ -1774,6 +1779,13 @@
             InputReaderConfiguration::CHANGE_DISPLAY_INFO);
 }
 
+static void nativeSetMotionClassifierEnabled(JNIEnv* /* env */, jclass /* clazz */, jlong ptr,
+                                             jboolean enabled) {
+    NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr);
+
+    im->setMotionClassifierEnabled(enabled);
+}
+
 // ----------------------------------------------------------------------------
 
 static const JNINativeMethod gInputManagerMethods[] = {
@@ -1832,6 +1844,7 @@
          (void*)nativeSetCustomPointerIcon},
         {"nativeCanDispatchToDisplay", "(JII)Z", (void*)nativeCanDispatchToDisplay},
         {"nativeNotifyPortAssociationsChanged", "(J)V", (void*)nativeNotifyPortAssociationsChanged},
+        {"nativeSetMotionClassifierEnabled", "(JZ)V", (void*)nativeSetMotionClassifierEnabled},
 };
 
 #define FIND_CLASS(var, className) \
diff --git a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
index 822f383..e4061b4 100644
--- a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
+++ b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
@@ -2068,8 +2068,8 @@
     class_gnssClock = (jclass) env->NewGlobalRef(gnssClockClass);
     method_gnssClockCtor = env->GetMethodID(class_gnssClock, "<init>", "()V");
 
-    jclass gnssConfiguration_halInterfaceVersionClass =
-            env->FindClass("com/android/server/location/GnssConfiguration$HalInterfaceVersion");
+    jclass gnssConfiguration_halInterfaceVersionClass = env->FindClass(
+            "com/android/server/location/gnss/GnssConfiguration$HalInterfaceVersion");
     class_gnssConfiguration_halInterfaceVersion =
             (jclass) env->NewGlobalRef(gnssConfiguration_halInterfaceVersionClass);
     method_halInterfaceVersionCtor =
@@ -3738,39 +3738,29 @@
 };
 
 static const JNINativeMethod sConfigurationMethods[] = {
-     /* name, signature, funcPtr */
-    {"native_get_gnss_configuration_version",
-            "()Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;",
-            reinterpret_cast<void *>(
-                    android_location_GnssConfiguration_get_gnss_configuration_version)},
-    {"native_set_supl_es",
-            "(I)Z",
-            reinterpret_cast<void *>(android_location_GnssConfiguration_set_supl_es)},
-    {"native_set_supl_version",
-            "(I)Z",
-            reinterpret_cast<void *>(android_location_GnssConfiguration_set_supl_version)},
-    {"native_set_supl_mode",
-            "(I)Z",
-            reinterpret_cast<void *>(android_location_GnssConfiguration_set_supl_mode)},
-    {"native_set_lpp_profile",
-            "(I)Z",
-            reinterpret_cast<void *>(android_location_GnssConfiguration_set_lpp_profile)},
-    {"native_set_gnss_pos_protocol_select",
-            "(I)Z",
-            reinterpret_cast<void *>(
-                    android_location_GnssConfiguration_set_gnss_pos_protocol_select)},
-    {"native_set_gps_lock",
-            "(I)Z",
-            reinterpret_cast<void *>(android_location_GnssConfiguration_set_gps_lock)},
-    {"native_set_emergency_supl_pdn",
-            "(I)Z",
-            reinterpret_cast<void *>(android_location_GnssConfiguration_set_emergency_supl_pdn)},
-    {"native_set_satellite_blacklist",
-            "([I[I)Z",
-            reinterpret_cast<void *>(android_location_GnssConfiguration_set_satellite_blacklist)},
-    {"native_set_es_extension_sec",
-            "(I)Z",
-            reinterpret_cast<void *>(android_location_GnssConfiguration_set_es_extension_sec)},
+        /* name, signature, funcPtr */
+        {"native_get_gnss_configuration_version",
+         "()Lcom/android/server/location/gnss/GnssConfiguration$HalInterfaceVersion;",
+         reinterpret_cast<void*>(
+                 android_location_GnssConfiguration_get_gnss_configuration_version)},
+        {"native_set_supl_es", "(I)Z",
+         reinterpret_cast<void*>(android_location_GnssConfiguration_set_supl_es)},
+        {"native_set_supl_version", "(I)Z",
+         reinterpret_cast<void*>(android_location_GnssConfiguration_set_supl_version)},
+        {"native_set_supl_mode", "(I)Z",
+         reinterpret_cast<void*>(android_location_GnssConfiguration_set_supl_mode)},
+        {"native_set_lpp_profile", "(I)Z",
+         reinterpret_cast<void*>(android_location_GnssConfiguration_set_lpp_profile)},
+        {"native_set_gnss_pos_protocol_select", "(I)Z",
+         reinterpret_cast<void*>(android_location_GnssConfiguration_set_gnss_pos_protocol_select)},
+        {"native_set_gps_lock", "(I)Z",
+         reinterpret_cast<void*>(android_location_GnssConfiguration_set_gps_lock)},
+        {"native_set_emergency_supl_pdn", "(I)Z",
+         reinterpret_cast<void*>(android_location_GnssConfiguration_set_emergency_supl_pdn)},
+        {"native_set_satellite_blacklist", "([I[I)Z",
+         reinterpret_cast<void*>(android_location_GnssConfiguration_set_satellite_blacklist)},
+        {"native_set_es_extension_sec", "(I)Z",
+         reinterpret_cast<void*>(android_location_GnssConfiguration_set_es_extension_sec)},
 };
 
 static const JNINativeMethod sVisibilityControlMethods[] = {
@@ -3782,53 +3772,27 @@
 };
 
 int register_android_server_location_GnssLocationProvider(JNIEnv* env) {
-    jniRegisterNativeMethods(env, "com/android/server/location/GnssAntennaInfoProvider",
+    jniRegisterNativeMethods(env, "com/android/server/location/gnss/GnssAntennaInfoProvider",
                              sAntennaInfoMethods, NELEM(sAntennaInfoMethods));
-    jniRegisterNativeMethods(
-            env,
-            "com/android/server/location/GnssBatchingProvider",
-            sMethodsBatching,
-            NELEM(sMethodsBatching));
-    jniRegisterNativeMethods(
-            env,
-            "com/android/server/location/GnssGeofenceProvider",
-            sGeofenceMethods,
-            NELEM(sGeofenceMethods));
-    jniRegisterNativeMethods(
-            env,
-            "com/android/server/location/GnssMeasurementsProvider",
-            sMeasurementMethods,
-            NELEM(sMeasurementMethods));
-    jniRegisterNativeMethods(
-            env,
-            "com/android/server/location/GnssMeasurementCorrectionsProvider",
-            sMeasurementCorrectionsMethods,
-            NELEM(sMeasurementCorrectionsMethods));
-    jniRegisterNativeMethods(
-            env,
-            "com/android/server/location/GnssNavigationMessageProvider",
-            sNavigationMessageMethods,
-            NELEM(sNavigationMessageMethods));
-    jniRegisterNativeMethods(
-            env,
-            "com/android/server/location/GnssNetworkConnectivityHandler",
-            sNetworkConnectivityMethods,
-            NELEM(sNetworkConnectivityMethods));
-    jniRegisterNativeMethods(
-            env,
-            "com/android/server/location/GnssConfiguration",
-            sConfigurationMethods,
-            NELEM(sConfigurationMethods));
-    jniRegisterNativeMethods(
-            env,
-            "com/android/server/location/GnssVisibilityControl",
-            sVisibilityControlMethods,
-            NELEM(sVisibilityControlMethods));
-    return jniRegisterNativeMethods(
-            env,
-            "com/android/server/location/GnssLocationProvider",
-            sMethods,
-            NELEM(sMethods));
+    jniRegisterNativeMethods(env, "com/android/server/location/gnss/GnssBatchingProvider",
+                             sMethodsBatching, NELEM(sMethodsBatching));
+    jniRegisterNativeMethods(env, "com/android/server/location/gnss/GnssGeofenceProvider",
+                             sGeofenceMethods, NELEM(sGeofenceMethods));
+    jniRegisterNativeMethods(env, "com/android/server/location/gnss/GnssMeasurementsProvider",
+                             sMeasurementMethods, NELEM(sMeasurementMethods));
+    jniRegisterNativeMethods(env,
+                             "com/android/server/location/gnss/GnssMeasurementCorrectionsProvider",
+                             sMeasurementCorrectionsMethods, NELEM(sMeasurementCorrectionsMethods));
+    jniRegisterNativeMethods(env, "com/android/server/location/gnss/GnssNavigationMessageProvider",
+                             sNavigationMessageMethods, NELEM(sNavigationMessageMethods));
+    jniRegisterNativeMethods(env, "com/android/server/location/gnss/GnssNetworkConnectivityHandler",
+                             sNetworkConnectivityMethods, NELEM(sNetworkConnectivityMethods));
+    jniRegisterNativeMethods(env, "com/android/server/location/gnss/GnssConfiguration",
+                             sConfigurationMethods, NELEM(sConfigurationMethods));
+    jniRegisterNativeMethods(env, "com/android/server/location/gnss/GnssVisibilityControl",
+                             sVisibilityControlMethods, NELEM(sVisibilityControlMethods));
+    return jniRegisterNativeMethods(env, "com/android/server/location/gnss/GnssLocationProvider",
+                                    sMethods, NELEM(sMethods));
 }
 
 } /* namespace android */
diff --git a/services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp b/services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp
index 29b2cd6..e9a5e58 100644
--- a/services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp
+++ b/services/core/jni/com_android_server_pm_PackageManagerShellCommandDataLoader.cpp
@@ -51,7 +51,8 @@
 using FileIdx = int16_t;
 using BlockIdx = int32_t;
 using NumBlocks = int32_t;
-using CompressionType = int16_t;
+using BlockType = int8_t;
+using CompressionType = int8_t;
 using RequestType = int16_t;
 using MagicType = uint32_t;
 
@@ -59,7 +60,7 @@
 static constexpr int BLOCKS_COUNT = BUFFER_SIZE / INCFS_DATA_FILE_BLOCK_SIZE;
 
 static constexpr int COMMAND_SIZE = 4 + 2 + 2 + 4; // bytes
-static constexpr int HEADER_SIZE = 2 + 2 + 4 + 2;  // bytes
+static constexpr int HEADER_SIZE = 2 + 1 + 1 + 4 + 2; // bytes
 static constexpr std::string_view OKAY = "OKAY"sv;
 static constexpr MagicType INCR = 0x52434e49; // BE INCR
 
@@ -110,6 +111,7 @@
 
 struct BlockHeader {
     FileIdx fileIdx = -1;
+    BlockType blockType = -1;
     CompressionType compressionType = -1;
     BlockIdx blockIdx = -1;
     BlockSize blockSize = -1;
@@ -225,56 +227,40 @@
     return result;
 }
 
+enum MetadataMode : int8_t {
+    STDIN = 0,
+    LOCAL_FILE = 1,
+    DATA_ONLY_STREAMING = 2,
+    STREAMING = 3,
+};
+
 struct InputDesc {
     unique_fd fd;
     IncFsSize size;
     IncFsBlockKind kind = INCFS_BLOCK_KIND_DATA;
     bool waitOnEof = false;
     bool streaming = false;
+    MetadataMode mode = STDIN;
 };
 using InputDescs = std::vector<InputDesc>;
 
-static inline InputDescs openInputs(JNIEnv* env, const JniIds& jni, jobject shellCommand,
-                                    IncFsSize size, IncFsSpan metadata) {
+template <class T>
+std::optional<T> read(IncFsSpan& data) {
+    if (data.size < (int32_t)sizeof(T)) {
+        return {};
+    }
+    T res;
+    memcpy(&res, data.data, sizeof(res));
+    data.data += sizeof(res);
+    data.size -= sizeof(res);
+    return res;
+}
+
+static inline InputDescs openLocalFile(JNIEnv* env, const JniIds& jni, jobject shellCommand,
+                                       IncFsSize size, const std::string& filePath) {
     InputDescs result;
     result.reserve(2);
 
-    if (metadata.size == 0 || *metadata.data == '-') {
-        // stdin
-        auto fd = convertPfdToFdAndDup(
-                env, jni,
-                env->CallStaticObjectMethod(jni.packageManagerShellCommandDataLoader,
-                                            jni.pmscdGetStdInPFD, shellCommand));
-        if (fd.ok()) {
-            result.push_back(InputDesc{
-                    .fd = std::move(fd),
-                    .size = size,
-                    .waitOnEof = true,
-            });
-        }
-        return result;
-    }
-    if (*metadata.data == '+') {
-        // verity tree from stdin, rest is streaming
-        auto fd = convertPfdToFdAndDup(
-                env, jni,
-                env->CallStaticObjectMethod(jni.packageManagerShellCommandDataLoader,
-                                            jni.pmscdGetStdInPFD, shellCommand));
-        if (fd.ok()) {
-            auto treeSize = verityTreeSizeForFile(size);
-            result.push_back(InputDesc{
-                    .fd = std::move(fd),
-                    .size = treeSize,
-                    .kind = INCFS_BLOCK_KIND_HASH,
-                    .waitOnEof = true,
-                    .streaming = true,
-            });
-        }
-        return result;
-    }
-
-    // local file and possibly signature
-    const std::string filePath(metadata.data, metadata.size);
     const std::string idsigPath = filePath + ".idsig";
 
     auto idsigFd = convertPfdToFdAndDup(
@@ -312,6 +298,59 @@
     return result;
 }
 
+static inline InputDescs openInputs(JNIEnv* env, const JniIds& jni, jobject shellCommand,
+                                    IncFsSize size, IncFsSpan metadata) {
+    auto mode = read<int8_t>(metadata).value_or(STDIN);
+    if (mode == LOCAL_FILE) {
+        // local file and possibly signature
+        return openLocalFile(env, jni, shellCommand, size,
+                             std::string(metadata.data, metadata.size));
+    }
+
+    auto fd = convertPfdToFdAndDup(
+            env, jni,
+            env->CallStaticObjectMethod(jni.packageManagerShellCommandDataLoader,
+                                        jni.pmscdGetStdInPFD, shellCommand));
+    if (!fd.ok()) {
+        return {};
+    }
+
+    InputDescs result;
+    switch (mode) {
+        case STDIN: {
+            result.push_back(InputDesc{
+                    .fd = std::move(fd),
+                    .size = size,
+                    .waitOnEof = true,
+            });
+            break;
+        }
+        case DATA_ONLY_STREAMING: {
+            // verity tree from stdin, rest is streaming
+            auto treeSize = verityTreeSizeForFile(size);
+            result.push_back(InputDesc{
+                    .fd = std::move(fd),
+                    .size = treeSize,
+                    .kind = INCFS_BLOCK_KIND_HASH,
+                    .waitOnEof = true,
+                    .streaming = true,
+                    .mode = DATA_ONLY_STREAMING,
+            });
+            break;
+        }
+        case STREAMING: {
+            result.push_back(InputDesc{
+                    .fd = std::move(fd),
+                    .size = 0,
+                    .streaming = true,
+                    .mode = STREAMING,
+            });
+            break;
+        }
+    }
+    return result;
+}
+
 static inline JNIEnv* GetJNIEnvironment(JavaVM* vm) {
     JNIEnv* env;
     if (vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6) != JNI_OK) {
@@ -388,6 +427,7 @@
         blocks.reserve(BLOCKS_COUNT);
 
         unique_fd streamingFd;
+        MetadataMode streamingMode;
         for (auto&& file : addedFiles) {
             auto inputs = openInputs(env, jni, shellCommand, file.size, file.metadata);
             if (inputs.empty()) {
@@ -409,6 +449,7 @@
             for (auto&& input : inputs) {
                 if (input.streaming && !streamingFd.ok()) {
                     streamingFd.reset(dup(input.fd));
+                    streamingMode = input.mode;
                 }
                 if (!copyToIncFs(incfsFd, input.size, input.kind, input.fd, input.waitOnEof,
                                  &buffer, &blocks)) {
@@ -423,7 +464,7 @@
 
         if (streamingFd.ok()) {
             ALOGE("onPrepareImage: done, proceeding to streaming.");
-            return initStreaming(std::move(streamingFd));
+            return initStreaming(std::move(streamingFd), streamingMode);
         }
 
         ALOGE("onPrepareImage: done.");
@@ -562,7 +603,7 @@
     }
 
     // Streaming.
-    bool initStreaming(unique_fd inout) {
+    bool initStreaming(unique_fd inout, MetadataMode mode) {
         mEventFd.reset(eventfd(0, EFD_CLOEXEC));
         if (mEventFd < 0) {
             ALOGE("Failed to create eventfd.");
@@ -589,8 +630,8 @@
             }
         }
 
-        mReceiverThread =
-                std::thread([this, io = std::move(inout)]() mutable { receiver(std::move(io)); });
+        mReceiverThread = std::thread(
+                [this, io = std::move(inout), mode]() mutable { receiver(std::move(io), mode); });
         ALOGI("Started streaming...");
         return true;
     }
@@ -598,6 +639,9 @@
     // IFS callbacks.
     void onPendingReads(dataloader::PendingReads pendingReads) final {
         std::lock_guard lock{mOutFdLock};
+        if (mOutFd < 0) {
+            return;
+        }
         CHECK(mIfs);
         for (auto&& pendingRead : pendingReads) {
             const android::dataloader::FileId& fileId = pendingRead.id;
@@ -611,19 +655,15 @@
                       android::incfs::toString(fileId).c_str());
                 continue;
             }
-            if (mRequestedFiles.insert(fileIdx).second) {
-                if (!sendRequest(mOutFd, PREFETCH, fileIdx, blockIdx)) {
-                    ALOGE("Failed to request prefetch for fileid=%s. Ignore.",
-                          android::incfs::toString(fileId).c_str());
-                    mRequestedFiles.erase(fileIdx);
-                    mStatusListener->reportStatus(DATA_LOADER_NO_CONNECTION);
-                }
+            if (mRequestedFiles.insert(fileIdx).second &&
+                !sendRequest(mOutFd, PREFETCH, fileIdx, blockIdx)) {
+                mRequestedFiles.erase(fileIdx);
             }
             sendRequest(mOutFd, BLOCK_MISSING, fileIdx, blockIdx);
         }
     }
 
-    void receiver(unique_fd inout) {
+    void receiver(unique_fd inout, MetadataMode mode) {
         std::vector<uint8_t> data;
         std::vector<IncFsDataBlock> instructions;
         std::unordered_map<FileIdx, unique_fd> writeFds;
@@ -634,7 +674,7 @@
             }
             if (res < 0) {
                 ALOGE("Failed to poll. Abort.");
-                mStatusListener->reportStatus(DATA_LOADER_NO_CONNECTION);
+                mStatusListener->reportStatus(DATA_LOADER_UNRECOVERABLE);
                 break;
             }
             if (res == mEventFd) {
@@ -644,14 +684,14 @@
             }
             if (!readChunk(inout, data)) {
                 ALOGE("Failed to read a message. Abort.");
-                mStatusListener->reportStatus(DATA_LOADER_NO_CONNECTION);
+                mStatusListener->reportStatus(DATA_LOADER_UNRECOVERABLE);
                 break;
             }
             auto remainingData = std::span(data);
             while (!remainingData.empty()) {
                 auto header = readHeader(remainingData);
-                if (header.fileIdx == -1 && header.compressionType == 0 && header.blockIdx == 0 &&
-                    header.blockSize == 0) {
+                if (header.fileIdx == -1 && header.blockType == 0 && header.compressionType == 0 &&
+                    header.blockIdx == 0 && header.blockSize == 0) {
                     ALOGI("Stop signal received. Sending exit command (remaining bytes: %d).",
                           int(remainingData.size()));
 
@@ -659,14 +699,14 @@
                     mStopReceiving = true;
                     break;
                 }
-                if (header.fileIdx < 0 || header.blockSize <= 0 || header.compressionType < 0 ||
-                    header.blockIdx < 0) {
+                if (header.fileIdx < 0 || header.blockSize <= 0 || header.blockType < 0 ||
+                    header.compressionType < 0 || header.blockIdx < 0) {
                     ALOGE("invalid header received. Abort.");
                     mStopReceiving = true;
                     break;
                 }
                 const FileIdx fileIdx = header.fileIdx;
-                const android::dataloader::FileId fileId = convertFileIndexToFileId(fileIdx);
+                const android::dataloader::FileId fileId = convertFileIndexToFileId(mode, fileIdx);
                 if (!android::incfs::isValidFileId(fileId)) {
                     ALOGE("Unknown data destination for file ID %d. "
                           "Ignore.",
@@ -678,7 +718,7 @@
                 if (writeFd < 0) {
                     writeFd.reset(this->mIfs->openWrite(fileId));
                     if (writeFd < 0) {
-                        ALOGE("Failed to open file %d for writing (%d). Aboring.", header.fileIdx,
+                        ALOGE("Failed to open file %d for writing (%d). Aborting.", header.fileIdx,
                               -writeFd);
                         break;
                     }
@@ -688,7 +728,7 @@
                         .fileFd = writeFd,
                         .pageIndex = static_cast<IncFsBlockIndex>(header.blockIdx),
                         .compression = static_cast<IncFsCompressionKind>(header.compressionType),
-                        .kind = INCFS_BLOCK_KIND_DATA,
+                        .kind = static_cast<IncFsBlockKind>(header.blockType),
                         .dataSize = static_cast<uint16_t>(header.blockSize),
                         .data = (const char*)remainingData.data(),
                 };
@@ -715,9 +755,11 @@
     }
 
     FileIdx convertFileIdToFileIndex(android::dataloader::FileId fileId) {
-        // FileId is a string in format '+FileIdx\0'.
+        // FileId has format '\2FileIdx'.
         const char* meta = (const char*)&fileId;
-        if (*meta != '+') {
+
+        int8_t mode = *meta;
+        if (mode != DATA_ONLY_STREAMING && mode != STREAMING) {
             return -1;
         }
 
@@ -731,10 +773,10 @@
         return FileIdx(fileIdx);
     }
 
-    android::dataloader::FileId convertFileIndexToFileId(FileIdx fileIdx) {
+    android::dataloader::FileId convertFileIndexToFileId(MetadataMode mode, FileIdx fileIdx) {
         IncFsFileId fileId = {};
         char* meta = (char*)&fileId;
-        *meta = '+';
+        *meta = mode;
         if (auto [p, ec] = std::to_chars(meta + 1, meta + sizeof(fileId), fileIdx);
             ec != std::errc()) {
             return {};
@@ -762,8 +804,8 @@
     }
 
     header.fileIdx = static_cast<FileIdx>(be16toh(*reinterpret_cast<const uint16_t*>(&data[0])));
-    header.compressionType =
-            static_cast<CompressionType>(be16toh(*reinterpret_cast<const uint16_t*>(&data[2])));
+    header.blockType = static_cast<BlockType>(data[2]);
+    header.compressionType = static_cast<CompressionType>(data[3]);
     header.blockIdx = static_cast<BlockIdx>(be32toh(*reinterpret_cast<const uint32_t*>(&data[4])));
     header.blockSize =
             static_cast<BlockSize>(be16toh(*reinterpret_cast<const uint16_t*>(&data[8])));
diff --git a/services/core/jni/com_android_server_stats_pull_StatsPullAtomService.cpp b/services/core/jni/com_android_server_stats_pull_StatsPullAtomService.cpp
index 43cd0a2..b1fbe64 100644
--- a/services/core/jni/com_android_server_stats_pull_StatsPullAtomService.cpp
+++ b/services/core/jni/com_android_server_stats_pull_StatsPullAtomService.cpp
@@ -46,17 +46,15 @@
 static void nativeInit(JNIEnv* env, jobject javaObject) {
     // on device power measurement
     gPowerStatsPuller = server::stats::PowerStatsPuller();
-    AStatsManager_registerPullAtomCallback(android::util::ON_DEVICE_POWER_MEASUREMENT,
-                                           onDevicePowerMeasurementCallback,
-                                           /* metadata= */ nullptr,
-                                           /* cookie= */ nullptr);
+    AStatsManager_setPullAtomCallback(android::util::ON_DEVICE_POWER_MEASUREMENT,
+                                      /* metadata= */ nullptr, onDevicePowerMeasurementCallback,
+                                      /* cookie= */ nullptr);
 
     // subsystem sleep state
     gSubsystemSleepStatePuller = server::stats::SubsystemSleepStatePuller();
-    AStatsManager_registerPullAtomCallback(android::util::SUBSYSTEM_SLEEP_STATE,
-                                           subsystemSleepStateCallback,
-                                           /* metadata= */ nullptr,
-                                           /* cookie= */ nullptr);
+    AStatsManager_setPullAtomCallback(android::util::SUBSYSTEM_SLEEP_STATE,
+                                      /* metadata= */ nullptr, subsystemSleepStateCallback,
+                                      /* cookie= */ nullptr);
 }
 
 static const JNINativeMethod sMethods[] = {{"nativeInit", "()V", (void*)nativeInit}};
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 6ab5303..b0eb148 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -136,7 +136,7 @@
 import android.app.admin.DevicePolicyEventLogger;
 import android.app.admin.DevicePolicyManager;
 import android.app.admin.DevicePolicyManager.PasswordComplexity;
-import android.app.admin.DevicePolicyManager.PersonalAppSuspensionReason;
+import android.app.admin.DevicePolicyManager.PersonalAppsSuspensionReason;
 import android.app.admin.DevicePolicyManagerInternal;
 import android.app.admin.DeviceStateCache;
 import android.app.admin.FactoryResetProtectionPolicy;
@@ -935,10 +935,14 @@
                 }
             } else if (Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE.equals(action)) {
                 handlePackagesChanged(null /* check all admins */, userHandle);
-            } else if (Intent.ACTION_PACKAGE_CHANGED.equals(action)
-                    || (Intent.ACTION_PACKAGE_ADDED.equals(action)
-                    && intent.getBooleanExtra(Intent.EXTRA_REPLACING, false))) {
+            } else if (Intent.ACTION_PACKAGE_CHANGED.equals(action)) {
                 handlePackagesChanged(intent.getData().getSchemeSpecificPart(), userHandle);
+            } else if (Intent.ACTION_PACKAGE_ADDED.equals(action)) {
+                if (intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) {
+                    handlePackagesChanged(intent.getData().getSchemeSpecificPart(), userHandle);
+                } else {
+                    handleNewPackageInstalled(intent.getData().getSchemeSpecificPart(), userHandle);
+                }
             } else if (Intent.ACTION_PACKAGE_REMOVED.equals(action)
                     && !intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) {
                 handlePackagesChanged(intent.getData().getSchemeSpecificPart(), userHandle);
@@ -2028,6 +2032,26 @@
         return false;
     }
 
+    private void handleNewPackageInstalled(String packageName, int userHandle) {
+        // If personal apps were suspended by the admin, suspend the newly installed one.
+        if (!getUserData(userHandle).mAppsSuspended) {
+            return;
+        }
+        final String[] packagesToSuspend = { packageName };
+        // Check if package is considered not suspendable?
+        if (mInjector.getPackageManager(userHandle)
+                .getUnsuspendablePackages(packagesToSuspend).length != 0) {
+            Slog.i(LOG_TAG, "Newly installed package is unsuspendable: " + packageName);
+            return;
+        }
+        try {
+            mIPackageManager.setPackagesSuspendedAsUser(packagesToSuspend, true /*suspend*/,
+                    null, null, null, PLATFORM_PACKAGE_NAME, userHandle);
+        } catch (RemoteException ignored) {
+            // shouldn't happen.
+        }
+    }
+
     /**
      * Unit test will subclass it to inject mocks.
      */
@@ -2110,6 +2134,11 @@
             return mContext.getPackageManager();
         }
 
+        PackageManager getPackageManager(int userId) {
+            return mContext
+                    .createContextAsUser(UserHandle.of(userId), 0 /* flags */).getPackageManager();
+        }
+
         PowerManagerInternal getPowerManagerInternal() {
             return LocalServices.getService(PowerManagerInternal.class);
         }
@@ -4405,6 +4434,11 @@
                     clearDeviceOwnerLocked(getDeviceOwnerAdminLocked(), userHandle);
                 }
                 if (isProfileOwner(adminReceiver, userHandle)) {
+                    if (isProfileOwnerOfOrganizationOwnedDevice(userHandle)) {
+                        mUserManager.setUserRestriction(UserManager.DISALLOW_REMOVE_MANAGED_PROFILE,
+                                false,
+                                UserHandle.of(getProfileParentId(userHandle)));
+                    }
                     final ActiveAdmin admin = getActiveAdminUncheckedLocked(adminReceiver,
                             userHandle, /* parent */ false);
                     clearProfileOwnerLocked(admin, userHandle);
@@ -7137,7 +7171,9 @@
         ActiveAdmin admin;
         synchronized (getLockObject()) {
             if (who == null) {
-                if ((frpManagementAgentUid != mInjector.binderGetCallingUid())) {
+                if ((frpManagementAgentUid != mInjector.binderGetCallingUid())
+                        && (mContext.checkCallingPermission(permission.MASTER_CLEAR)
+                        != PackageManager.PERMISSION_GRANTED)) {
                     throw new SecurityException(
                             "Must be called by the FRP management agent on device");
                 }
@@ -9148,8 +9184,6 @@
             return true;
         }
 
-        Log.w(LOG_TAG, String.format("Package %s (uid=%d, pid=%d) cannot access Device IDs",
-                    packageName, uid, pid));
         return false;
     }
 
@@ -11440,9 +11474,9 @@
     }
 
     @Override
-    public boolean isSecondaryLockscreenEnabled(int userId) {
+    public boolean isSecondaryLockscreenEnabled(@NonNull UserHandle userHandle) {
         synchronized (getLockObject()) {
-            return getUserData(userId).mSecondaryLockscreenEnabled;
+            return getUserData(userHandle.getIdentifier()).mSecondaryLockscreenEnabled;
         }
     }
 
@@ -13041,26 +13075,25 @@
             final boolean addingProfileRestricted = mUserManager.hasUserRestriction(
                     UserManager.DISALLOW_ADD_MANAGED_PROFILE, callingUserHandle);
 
-            UserInfo parentUser = mUserManager.getProfileParent(callingUserId);
-            final boolean addingProfileRestrictedOnParent = (parentUser != null)
-                    && mUserManager.hasUserRestriction(
-                            UserManager.DISALLOW_ADD_MANAGED_PROFILE,
-                            UserHandle.of(parentUser.id));
+            if (mUserManager.getUserInfo(callingUserId).isProfile()) {
+                Slog.i(LOG_TAG,
+                        String.format("Calling user %d is a profile, cannot add another.",
+                                callingUserId));
+                // The check is called from inside a managed profile. A managed profile cannot
+                // be provisioned from within another managed profile.
+                return CODE_CANNOT_ADD_MANAGED_PROFILE;
+            }
 
-            Slog.i(LOG_TAG, String.format(
-                    "When checking for managed profile provisioning: Has device owner? %b, adding"
-                            + " profile restricted? %b, adding profile restricted on parent? %b",
-                    hasDeviceOwner, addingProfileRestricted, addingProfileRestrictedOnParent));
-
-            // If there's a device owner, the restriction on adding a managed profile must be set
-            // somewhere.
-            if (hasDeviceOwner && !addingProfileRestricted && !addingProfileRestrictedOnParent) {
+            // If there's a device owner, the restriction on adding a managed profile must be set.
+            if (hasDeviceOwner && !addingProfileRestricted) {
                 Slog.wtf(LOG_TAG, "Has a device owner but no restriction on adding a profile.");
             }
 
-            // Do not allow adding a managed profile if there's a restriction, either on the current
-            // user or its parent user.
-            if (addingProfileRestricted || addingProfileRestrictedOnParent) {
+            // Do not allow adding a managed profile if there's a restriction.
+            if (addingProfileRestricted) {
+                Slog.i(LOG_TAG, String.format(
+                        "Adding a profile is restricted: User %s Has device owner? %b",
+                        callingUserHandle, hasDeviceOwner));
                 return CODE_CANNOT_ADD_MANAGED_PROFILE;
             }
             // If there's a restriction on removing the managed profile then we have to take it
@@ -13069,6 +13102,8 @@
                     !mUserManager.hasUserRestriction(UserManager.DISALLOW_REMOVE_MANAGED_PROFILE,
                     callingUserHandle);
             if (!mUserManager.canAddMoreManagedProfiles(callingUserId, canRemoveProfile)) {
+                Slog.i(LOG_TAG, String.format(
+                        "Cannot add more profiles: Can remove current? %b", canRemoveProfile));
                 return CODE_CANNOT_ADD_MANAGED_PROFILE;
             }
         } finally {
@@ -15650,7 +15685,7 @@
     }
 
     @Override
-    public @PersonalAppSuspensionReason int getPersonalAppsSuspendedReasons(ComponentName who) {
+    public @PersonalAppsSuspensionReason int getPersonalAppsSuspendedReasons(ComponentName who) {
         synchronized (getLockObject()) {
             final ActiveAdmin admin = getActiveAdminForCallerLocked(who,
                     DeviceAdminInfo.USES_POLICY_ORGANIZATION_OWNED_PROFILE_OWNER,
@@ -15662,19 +15697,25 @@
             if (!userData.mAppsSuspended) {
                 return PERSONAL_APPS_NOT_SUSPENDED;
             } else {
-                int reasons = PERSONAL_APPS_NOT_SUSPENDED;
-                if (admin.mSuspendPersonalApps) {
-                    reasons |= PERSONAL_APPS_SUSPENDED_EXPLICITLY;
-                }
                 final long deadline = admin.mProfileOffDeadline;
-                if (deadline != 0 && System.currentTimeMillis() > deadline) {
-                    reasons |= PERSONAL_APPS_SUSPENDED_PROFILE_TIMEOUT;
-                }
-                return reasons;
+                return makeSuspensionReasons(admin.mSuspendPersonalApps,
+                        deadline != 0 && System.currentTimeMillis() > deadline);
             }
         }
     }
 
+    private @PersonalAppsSuspensionReason int makeSuspensionReasons(
+            boolean explicit, boolean timeout) {
+        int result = PERSONAL_APPS_NOT_SUSPENDED;
+        if (explicit) {
+            result |= PERSONAL_APPS_SUSPENDED_EXPLICITLY;
+        }
+        if (timeout) {
+            result |= PERSONAL_APPS_SUSPENDED_PROFILE_TIMEOUT;
+        }
+        return result;
+    }
+
     @Override
     public void setPersonalAppsSuspended(ComponentName who, boolean suspended) {
         final int callingUserId = mInjector.userHandleGetCallingUserId();
@@ -15699,8 +15740,11 @@
             }
         }
 
+        final int suspendedState = suspended
+                ? PERSONAL_APPS_SUSPENDED_EXPLICITLY
+                : PERSONAL_APPS_NOT_SUSPENDED;
         mInjector.binderWithCleanCallingIdentity(
-                () -> applyPersonalAppsSuspension(callingUserId, suspended));
+                () -> applyPersonalAppsSuspension(callingUserId, suspendedState));
 
         DevicePolicyEventLogger
                 .createEvent(DevicePolicyEnums.SET_PERSONAL_APPS_SUSPENDED)
@@ -15715,22 +15759,22 @@
      * @param running whether the profile is currently considered running.
      */
     private void updatePersonalAppSuspension(int profileUserId, boolean running) {
-        final boolean shouldSuspend;
+        final int suspensionState;
         synchronized (getLockObject()) {
             final ActiveAdmin profileOwner = getProfileOwnerAdminLocked(profileUserId);
             if (profileOwner != null) {
                 final boolean deadlineReached =
                         updateProfileOffDeadlineLocked(profileUserId, profileOwner, running);
-                shouldSuspend = deadlineReached || profileOwner.mSuspendPersonalApps;
-                Slog.d(LOG_TAG, String.format(
-                        "Should personal use be suspended: %b; explicit: %b; timeout: %b",
-                        shouldSuspend, profileOwner.mSuspendPersonalApps, deadlineReached));
+                suspensionState = makeSuspensionReasons(
+                        profileOwner.mSuspendPersonalApps, deadlineReached);
+                Slog.d(LOG_TAG,
+                        String.format("New personal apps suspension state: %d", suspensionState));
             } else {
-                shouldSuspend = false;
+                suspensionState = PERSONAL_APPS_NOT_SUSPENDED;
             }
         }
 
-        applyPersonalAppsSuspension(profileUserId, shouldSuspend);
+        applyPersonalAppsSuspension(profileUserId, suspensionState);
     }
 
     /**
@@ -15785,13 +15829,15 @@
         }
     }
 
-    private void applyPersonalAppsSuspension(int profileUserId, boolean shouldSuspend) {
+    private void applyPersonalAppsSuspension(
+            int profileUserId, @PersonalAppsSuspensionReason int suspensionState) {
         final boolean suspended = getUserData(UserHandle.USER_SYSTEM).mAppsSuspended;
+        final boolean shouldSuspend = suspensionState != PERSONAL_APPS_NOT_SUSPENDED;
         if (suspended != shouldSuspend) {
             suspendPersonalAppsInternal(shouldSuspend, UserHandle.USER_SYSTEM);
         }
 
-        if (shouldSuspend) {
+        if (suspensionState == PERSONAL_APPS_SUSPENDED_PROFILE_TIMEOUT) {
             sendPersonalAppsSuspendedNotification(profileUserId);
         } else {
             clearPersonalAppsSuspendedNotification();
@@ -15804,8 +15850,9 @@
         mInjector.binderWithCleanCallingIdentity(() -> {
             try {
                 final String[] appsToSuspend =
-                        new PersonalAppsSuspensionHelper(mContext, mInjector.getPackageManager())
-                                .getPersonalAppsForSuspension(userId);
+                        new PersonalAppsSuspensionHelper(
+                                mContext.createContextAsUser(UserHandle.of(userId), 0 /* flags */))
+                                .getPersonalAppsForSuspension();
                 final String[] failedPackages = mIPackageManager.setPackagesSuspendedAsUser(
                         appsToSuspend, suspended, null, null, null, PLATFORM_PACKAGE_NAME, userId);
                 if (!ArrayUtils.isEmpty(failedPackages)) {
@@ -15832,8 +15879,11 @@
 
     private void sendPersonalAppsSuspendedNotification(int userId) {
         final String profileOwnerPackageName;
+        final long maxTimeOffDays;
         synchronized (getLockObject()) {
             profileOwnerPackageName = mOwners.getProfileOwnerComponent(userId).getPackageName();
+            final ActiveAdmin poAdmin = getProfileOwnerAdminLocked(userId);
+            maxTimeOffDays = TimeUnit.MILLISECONDS.toDays(poAdmin.mProfileMaximumTimeOffMillis);
         }
 
         final Intent intent = new Intent(DevicePolicyManager.ACTION_CHECK_POLICY_COMPLIANCE);
@@ -15849,9 +15899,9 @@
                         .setOngoing(true)
                         .setContentTitle(
                                 mContext.getString(
-                                        R.string.personal_apps_suspended_notification_title))
+                                        R.string.personal_apps_suspended_title))
                         .setContentText(mContext.getString(
-                                R.string.personal_apps_suspended_notification_text))
+                                R.string.personal_apps_suspended_text, maxTimeOffDays))
                         .setColor(mContext.getColor(R.color.system_notification_accent_color))
                         .setContentIntent(pendingIntent)
                         .build();
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/PersonalAppsSuspensionHelper.java b/services/devicepolicy/java/com/android/server/devicepolicy/PersonalAppsSuspensionHelper.java
index 180acc8..d9db17e 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/PersonalAppsSuspensionHelper.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/PersonalAppsSuspensionHelper.java
@@ -20,7 +20,6 @@
 
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.annotation.Nullable;
-import android.annotation.UserIdInt;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -32,7 +31,7 @@
 import android.os.ServiceManager;
 import android.provider.Settings;
 import android.text.TextUtils;
-import android.util.Log;
+import android.util.ArraySet;
 import android.util.Slog;
 import android.view.accessibility.AccessibilityManager;
 import android.view.accessibility.IAccessibilityManager;
@@ -43,7 +42,6 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -56,18 +54,21 @@
     private final Context mContext;
     private final PackageManager mPackageManager;
 
-    public PersonalAppsSuspensionHelper(Context context, PackageManager packageManager) {
+    /**
+     * @param context Context for the user whose apps should to be suspended.
+     */
+    public PersonalAppsSuspensionHelper(Context context) {
         mContext = context;
-        mPackageManager = packageManager;
+        mPackageManager = context.getPackageManager();
     }
 
     /**
      * @return List of packages that should be suspended to limit personal use.
      */
-    String[] getPersonalAppsForSuspension(@UserIdInt int userId) {
+    String[] getPersonalAppsForSuspension() {
         final List<PackageInfo> installedPackageInfos =
-                mPackageManager.getInstalledPackagesAsUser(0 /* flags */, userId);
-        final Set<String> result = new HashSet<>();
+                mPackageManager.getInstalledPackages(0 /* flags */);
+        final Set<String> result = new ArraySet<>();
         for (final PackageInfo packageInfo : installedPackageInfos) {
             final ApplicationInfo info = packageInfo.applicationInfo;
             if ((!info.isSystemApp() && !info.isUpdatedSystemApp())
@@ -77,11 +78,15 @@
         }
         result.removeAll(getCriticalPackages());
         result.removeAll(getSystemLauncherPackages());
-        result.removeAll(getAccessibilityServices(userId));
-        result.removeAll(getInputMethodPackages(userId));
-        result.remove(getActiveLauncherPackages(userId));
-        result.remove(getDialerPackage(userId));
-        result.remove(getSettingsPackageName(userId));
+        result.removeAll(getAccessibilityServices());
+        result.removeAll(getInputMethodPackages());
+        result.remove(getSettingsPackageName());
+
+        final String[] unsuspendablePackages =
+                mPackageManager.getUnsuspendablePackages(result.toArray(new String[0]));
+        for (final String pkg : unsuspendablePackages) {
+            result.remove(pkg);
+        }
 
         Slog.i(LOG_TAG, "Packages subject to suspension: " + String.join(",", result));
         return result.toArray(new String[0]);
@@ -104,7 +109,6 @@
                 final ApplicationInfo applicationInfo =
                         mPackageManager.getApplicationInfo(packageName, 0);
                 if (applicationInfo.isSystemApp() || applicationInfo.isUpdatedSystemApp()) {
-                    Log.d(LOG_TAG, "Not suspending system launcher package: " + packageName);
                     result.add(packageName);
                 }
             } catch (PackageManager.NameNotFoundException e) {
@@ -114,81 +118,53 @@
         return result;
     }
 
-    private List<String> getAccessibilityServices(int userId) {
+    private List<String> getAccessibilityServices() {
         final List<AccessibilityServiceInfo> accessibilityServiceInfos =
-                getAccessibilityManagerForUser(userId)
+                getAccessibilityManagerForUser(mContext.getUserId())
                         .getEnabledAccessibilityServiceList(FEEDBACK_ALL_MASK);
         final List<String> result = new ArrayList<>();
         for (final AccessibilityServiceInfo serviceInfo : accessibilityServiceInfos) {
             final ComponentName componentName =
                     ComponentName.unflattenFromString(serviceInfo.getId());
             if (componentName != null) {
-                final String packageName = componentName.getPackageName();
-                Slog.d(LOG_TAG, "Not suspending a11y service: " + packageName);
-                result.add(packageName);
+                result.add(componentName.getPackageName());
             }
         }
         return result;
     }
 
-    private List<String> getInputMethodPackages(int userId) {
-        final List<InputMethodInfo> enabledImes =
-                InputMethodManagerInternal.get().getEnabledInputMethodListAsUser(userId);
+    private List<String> getInputMethodPackages() {
+        final List<InputMethodInfo> enabledImes = InputMethodManagerInternal.get()
+                .getEnabledInputMethodListAsUser(mContext.getUserId());
         final List<String> result = new ArrayList<>();
         for (final InputMethodInfo info : enabledImes) {
-            Slog.d(LOG_TAG, "Not suspending IME: " + info.getPackageName());
             result.add(info.getPackageName());
         }
         return result;
     }
 
     @Nullable
-    private String getActiveLauncherPackages(int userId) {
-        final Intent intent = new Intent(Intent.ACTION_MAIN);
-        intent.addCategory(Intent.CATEGORY_HOME);
-        intent.addCategory(Intent.CATEGORY_DEFAULT);
-        return getPackageNameForIntent("active launcher", intent, userId);
-    }
-
-    @Nullable
-    private String getSettingsPackageName(int userId) {
+    private String getSettingsPackageName() {
         final Intent intent = new Intent(Settings.ACTION_SETTINGS);
         intent.addCategory(Intent.CATEGORY_DEFAULT);
-        return getPackageNameForIntent("settings", intent, userId);
-    }
-
-    @Nullable
-    private String getDialerPackage(int userId) {
-        final Intent intent = new Intent(Intent.ACTION_DIAL);
-        intent.addCategory(Intent.CATEGORY_DEFAULT);
-        return getPackageNameForIntent("dialer", intent, userId);
-    }
-
-    @Nullable
-    private String getPackageNameForIntent(String name, Intent intent, int userId) {
-        final ResolveInfo resolveInfo =
-                mPackageManager.resolveActivityAsUser(intent, /* flags= */ 0, userId);
+        final ResolveInfo resolveInfo = mPackageManager.resolveActivity(intent, /* flags= */ 0);
         if (resolveInfo != null) {
-            final String packageName = resolveInfo.activityInfo.packageName;
-            Slog.d(LOG_TAG, "Not suspending " + name + " package: " + packageName);
-            return packageName;
+            return resolveInfo.activityInfo.packageName;
         }
         return null;
     }
 
     private List<String> getCriticalPackages() {
-        final List<String> result = Arrays.asList(mContext.getResources()
+        return Arrays.asList(mContext.getResources()
                 .getStringArray(R.array.config_packagesExemptFromSuspension));
-        Slog.d(LOG_TAG, "Not suspending critical packages: " + String.join(",", result));
-        return result;
     }
 
     private boolean hasLauncherIntent(String packageName) {
         final Intent intentToResolve = new Intent(Intent.ACTION_MAIN);
         intentToResolve.addCategory(Intent.CATEGORY_LAUNCHER);
         intentToResolve.setPackage(packageName);
-        final List<ResolveInfo> resolveInfos = mPackageManager.queryIntentActivities(
-                intentToResolve, PackageManager.GET_UNINSTALLED_PACKAGES);
+        final List<ResolveInfo> resolveInfos =
+                mPackageManager.queryIntentActivities(intentToResolve, /* flags= */ 0);
         return resolveInfos != null && !resolveInfos.isEmpty();
     }
 
diff --git a/services/incremental/IncrementalService.cpp b/services/incremental/IncrementalService.cpp
index 2eadece..ae27c7a 100644
--- a/services/incremental/IncrementalService.cpp
+++ b/services/incremental/IncrementalService.cpp
@@ -286,7 +286,6 @@
             dprintf(fd, "\t\t\tpackageName: %s\n", params.packageName.c_str());
             dprintf(fd, "\t\t\tclassName: %s\n", params.className.c_str());
             dprintf(fd, "\t\t\targuments: %s\n", params.arguments.c_str());
-            dprintf(fd, "\t\t\tdynamicArgs: %d\n", int(params.dynamicArgs.size()));
         }
         dprintf(fd, "\t\tstorages (%d):\n", int(mnt.storages.size()));
         for (auto&& [storageId, storage] : mnt.storages) {
@@ -1170,6 +1169,10 @@
             // If one lib file fails to be created, abort others as well
             break;
         }
+        // If it is a zero-byte file, skip data writing
+        if (uncompressedLen == 0) {
+            continue;
+        }
 
         // Write extracted data to new file
         std::vector<uint8_t> libData(uncompressedLen);
@@ -1248,14 +1251,6 @@
     }
 
     switch (newStatus) {
-        case IDataLoaderStatusListener::DATA_LOADER_NO_CONNECTION: {
-            // TODO(b/150411019): handle data loader connection loss
-            break;
-        }
-        case IDataLoaderStatusListener::DATA_LOADER_CONNECTION_OK: {
-            // TODO(b/150411019): handle data loader connection loss
-            break;
-        }
         case IDataLoaderStatusListener::DATA_LOADER_CREATED: {
             if (startRequested) {
                 incrementalService.startDataLoader(mountId);
@@ -1277,6 +1272,10 @@
         case IDataLoaderStatusListener::DATA_LOADER_IMAGE_NOT_READY: {
             break;
         }
+        case IDataLoaderStatusListener::DATA_LOADER_UNRECOVERABLE: {
+            // Nothing for now. Rely on externalListener to handle this.
+            break;
+        }
         default: {
             LOG(WARNING) << "Unknown data loader status: " << newStatus
                          << " for mount: " << mountId;
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index b019e9d..c631eeb 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -144,7 +144,6 @@
 import com.android.server.recoverysystem.RecoverySystemService;
 import com.android.server.restrictions.RestrictionsManagerService;
 import com.android.server.role.RoleManagerService;
-import com.android.server.rollback.RollbackManagerService;
 import com.android.server.security.FileIntegrityService;
 import com.android.server.security.KeyAttestationApplicationIdProviderService;
 import com.android.server.security.KeyChainSystemService;
@@ -294,6 +293,8 @@
             "com.android.server.DeviceIdleController";
     private static final String BLOB_STORE_MANAGER_SERVICE_CLASS =
             "com.android.server.blob.BlobStoreManagerService";
+    private static final String ROLLBACK_MANAGER_SERVICE_CLASS =
+            "com.android.server.rollback.RollbackManagerService";
 
     private static final String TETHERING_CONNECTOR_CLASS = "android.net.ITetheringConnector";
 
@@ -964,7 +965,7 @@
 
         // Manages apk rollbacks.
         t.traceBegin("StartRollbackManagerService");
-        mSystemServiceManager.startService(RollbackManagerService.class);
+        mSystemServiceManager.startService(ROLLBACK_MANAGER_SERVICE_CLASS);
         t.traceEnd();
 
         // Service to capture bugreports.
diff --git a/services/net/java/android/net/TcpKeepalivePacketData.java b/services/net/java/android/net/TcpKeepalivePacketData.java
index fcf3a56..c0c386b 100644
--- a/services/net/java/android/net/TcpKeepalivePacketData.java
+++ b/services/net/java/android/net/TcpKeepalivePacketData.java
@@ -152,10 +152,12 @@
     public boolean equals(@Nullable final Object o) {
         if (!(o instanceof TcpKeepalivePacketData)) return false;
         final TcpKeepalivePacketData other = (TcpKeepalivePacketData) o;
-        return this.srcAddress.equals(other.srcAddress)
-                && this.dstAddress.equals(other.dstAddress)
-                && this.srcPort == other.srcPort
-                && this.dstPort == other.dstPort
+        final InetAddress srcAddress = getSrcAddress();
+        final InetAddress dstAddress = getDstAddress();
+        return srcAddress.equals(other.getSrcAddress())
+                && dstAddress.equals(other.getDstAddress())
+                && getSrcPort() == other.getSrcPort()
+                && getDstPort() == other.getDstPort()
                 && this.tcpAck == other.tcpAck
                 && this.tcpSeq == other.tcpSeq
                 && this.tcpWnd == other.tcpWnd
@@ -166,8 +168,8 @@
 
     @Override
     public int hashCode() {
-        return Objects.hash(srcAddress, dstAddress, srcPort, dstPort, tcpAck, tcpSeq, tcpWnd,
-                tcpWndScale, ipTos, ipTtl);
+        return Objects.hash(getSrcAddress(), getDstAddress(), getSrcPort(), getDstPort(),
+                tcpAck, tcpSeq, tcpWnd, tcpWndScale, ipTos, ipTtl);
     }
 
     /**
@@ -182,10 +184,10 @@
 
     /** Write to parcel. */
     public void writeToParcel(Parcel out, int flags) {
-        out.writeString(srcAddress.getHostAddress());
-        out.writeString(dstAddress.getHostAddress());
-        out.writeInt(srcPort);
-        out.writeInt(dstPort);
+        out.writeString(getSrcAddress().getHostAddress());
+        out.writeString(getDstAddress().getHostAddress());
+        out.writeInt(getSrcPort());
+        out.writeInt(getDstPort());
         out.writeByteArray(getPacket());
         out.writeInt(tcpSeq);
         out.writeInt(tcpAck);
@@ -219,7 +221,7 @@
                         return readFromParcel(in);
                     } catch (InvalidPacketException e) {
                         throw new IllegalArgumentException(
-                                "Invalid NAT-T keepalive data: " + e.error);
+                                "Invalid NAT-T keepalive data: " + e.getError());
                     }
                 }
 
@@ -234,10 +236,12 @@
     @NonNull
     public TcpKeepalivePacketDataParcelable toStableParcelable() {
         final TcpKeepalivePacketDataParcelable parcel = new TcpKeepalivePacketDataParcelable();
+        final InetAddress srcAddress = getSrcAddress();
+        final InetAddress dstAddress = getDstAddress();
         parcel.srcAddress = srcAddress.getAddress();
-        parcel.srcPort = srcPort;
+        parcel.srcPort = getSrcPort();
         parcel.dstAddress = dstAddress.getAddress();
-        parcel.dstPort = dstPort;
+        parcel.dstPort = getDstPort();
         parcel.seq = tcpSeq;
         parcel.ack = tcpAck;
         parcel.rcvWnd = tcpWnd;
@@ -249,10 +253,10 @@
 
     @Override
     public String toString() {
-        return "saddr: " + srcAddress
-                + " daddr: " + dstAddress
-                + " sport: " + srcPort
-                + " dport: " + dstPort
+        return "saddr: " + getSrcAddress()
+                + " daddr: " + getDstAddress()
+                + " sport: " + getSrcPort()
+                + " dport: " + getDstPort()
                 + " seq: " + tcpSeq
                 + " ack: " + tcpAck
                 + " wnd: " + tcpWnd
diff --git a/services/net/java/android/net/util/KeepalivePacketDataUtil.java b/services/net/java/android/net/util/KeepalivePacketDataUtil.java
index 9a51729..4466ea0 100644
--- a/services/net/java/android/net/util/KeepalivePacketDataUtil.java
+++ b/services/net/java/android/net/util/KeepalivePacketDataUtil.java
@@ -20,6 +20,8 @@
 import android.net.NattKeepalivePacketData;
 import android.net.NattKeepalivePacketDataParcelable;
 
+import java.net.InetAddress;
+
 /** @hide */
 public final class KeepalivePacketDataUtil {
      /**
@@ -29,11 +31,12 @@
     public static NattKeepalivePacketDataParcelable toStableParcelable(
             NattKeepalivePacketData pkt) {
         final NattKeepalivePacketDataParcelable parcel = new NattKeepalivePacketDataParcelable();
-
-        parcel.srcAddress = pkt.srcAddress.getAddress();
-        parcel.srcPort = pkt.srcPort;
-        parcel.dstAddress = pkt.dstAddress.getAddress();
-        parcel.dstPort = pkt.dstPort;
+        final InetAddress srcAddress = pkt.getSrcAddress();
+        final InetAddress dstAddress = pkt.getDstAddress();
+        parcel.srcAddress = srcAddress.getAddress();
+        parcel.srcPort = pkt.getSrcPort();
+        parcel.dstAddress = dstAddress.getAddress();
+        parcel.dstPort = pkt.getDstPort();
         return parcel;
     }
 }
diff --git a/services/people/java/com/android/server/people/data/DataManager.java b/services/people/java/com/android/server/people/data/DataManager.java
index 7085f96..136ee91 100644
--- a/services/people/java/com/android/server/people/data/DataManager.java
+++ b/services/people/java/com/android/server/people/data/DataManager.java
@@ -26,6 +26,7 @@
 import android.app.Person;
 import android.app.prediction.AppTarget;
 import android.app.prediction.AppTargetEvent;
+import android.app.usage.UsageEvents;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.ContentResolver;
@@ -70,6 +71,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
@@ -152,42 +154,12 @@
     /** This method is called when a user is stopping. */
     public void onUserStopping(int userId) {
         synchronized (mLock) {
-            ContentResolver contentResolver = mContext.getContentResolver();
-            if (mUserDataArray.indexOfKey(userId) >= 0) {
-                mUserDataArray.get(userId).setUserStopped();
+            UserData userData = mUserDataArray.get(userId);
+            if (userData != null) {
+                userData.setUserStopped();
             }
-            if (mUsageStatsQueryFutures.indexOfKey(userId) >= 0) {
-                mUsageStatsQueryFutures.get(userId).cancel(true);
-            }
-            if (mBroadcastReceivers.indexOfKey(userId) >= 0) {
-                mContext.unregisterReceiver(mBroadcastReceivers.get(userId));
-            }
-            if (mContactsContentObservers.indexOfKey(userId) >= 0) {
-                contentResolver.unregisterContentObserver(mContactsContentObservers.get(userId));
-            }
-            if (mNotificationListeners.indexOfKey(userId) >= 0) {
-                try {
-                    mNotificationListeners.get(userId).unregisterAsSystemService();
-                } catch (RemoteException e) {
-                    // Should never occur for local calls.
-                }
-            }
-            if (mPackageMonitors.indexOfKey(userId) >= 0) {
-                mPackageMonitors.get(userId).unregister();
-            }
-            if (userId == UserHandle.USER_SYSTEM) {
-                if (mCallLogContentObserver != null) {
-                    contentResolver.unregisterContentObserver(mCallLogContentObserver);
-                    mCallLogContentObserver = null;
-                }
-                if (mMmsSmsContentObserver != null) {
-                    contentResolver.unregisterContentObserver(mMmsSmsContentObserver);
-                    mCallLogContentObserver = null;
-                }
-            }
-
-            DataMaintenanceService.cancelJob(mContext, userId);
         }
+        mScheduledExecutor.execute(() -> cleanupUser(userId));
     }
 
     /**
@@ -267,6 +239,27 @@
         eventHistory.addEvent(new Event(System.currentTimeMillis(), eventType));
     }
 
+    /**
+     * Queries events for moving app to foreground between {@code startTime} and {@code endTime}.
+     */
+    @NonNull
+    public List<UsageEvents.Event> queryAppMovingToForegroundEvents(@UserIdInt int callingUserId,
+            long startTime, long endTime) {
+        return UsageStatsQueryHelper.queryAppMovingToForegroundEvents(callingUserId, startTime,
+                endTime);
+    }
+
+    /**
+     * Queries launch counts of apps within {@code packageNameFilter} between {@code startTime}
+     * and {@code endTime}.
+     */
+    @NonNull
+    public Map<String, Integer> queryAppLaunchCount(@UserIdInt int callingUserId, long startTime,
+            long endTime, Set<String> packageNameFilter) {
+        return UsageStatsQueryHelper.queryAppLaunchCount(callingUserId, startTime, endTime,
+                packageNameFilter);
+    }
+
     /** Prunes the data for the specified user. */
     public void pruneDataForUser(@UserIdInt int userId, @NonNull CancellationSignal signal) {
         UserData userData = getUnlockedUserData(userId);
@@ -371,7 +364,54 @@
         }
     }
 
-    private int mimeTypeToShareEventType(String mimeType) {
+    private void cleanupUser(@UserIdInt int userId) {
+        synchronized (mLock) {
+            UserData userData = mUserDataArray.get(userId);
+            if (userData == null || userData.isUnlocked()) {
+                return;
+            }
+            ContentResolver contentResolver = mContext.getContentResolver();
+            if (mUsageStatsQueryFutures.indexOfKey(userId) >= 0) {
+                mUsageStatsQueryFutures.get(userId).cancel(true);
+            }
+            if (mBroadcastReceivers.indexOfKey(userId) >= 0) {
+                mContext.unregisterReceiver(mBroadcastReceivers.get(userId));
+            }
+            if (mContactsContentObservers.indexOfKey(userId) >= 0) {
+                contentResolver.unregisterContentObserver(mContactsContentObservers.get(userId));
+            }
+            if (mNotificationListeners.indexOfKey(userId) >= 0) {
+                try {
+                    mNotificationListeners.get(userId).unregisterAsSystemService();
+                } catch (RemoteException e) {
+                    // Should never occur for local calls.
+                }
+            }
+            if (mPackageMonitors.indexOfKey(userId) >= 0) {
+                mPackageMonitors.get(userId).unregister();
+            }
+            if (userId == UserHandle.USER_SYSTEM) {
+                if (mCallLogContentObserver != null) {
+                    contentResolver.unregisterContentObserver(mCallLogContentObserver);
+                    mCallLogContentObserver = null;
+                }
+                if (mMmsSmsContentObserver != null) {
+                    contentResolver.unregisterContentObserver(mMmsSmsContentObserver);
+                    mCallLogContentObserver = null;
+                }
+            }
+
+            DataMaintenanceService.cancelJob(mContext, userId);
+        }
+    }
+
+    /**
+     * Converts {@code mimeType} to {@link Event.EventType}.
+     */
+    public int mimeTypeToShareEventType(String mimeType) {
+        if (mimeType == null) {
+            return Event.TYPE_SHARE_OTHER;
+        }
         if (mimeType.startsWith("text/")) {
             return Event.TYPE_SHARE_TEXT;
         } else if (mimeType.startsWith("image/")) {
diff --git a/services/people/java/com/android/server/people/data/UsageStatsQueryHelper.java b/services/people/java/com/android/server/people/data/UsageStatsQueryHelper.java
index 72f1abb..6e6fea9 100644
--- a/services/people/java/com/android/server/people/data/UsageStatsQueryHelper.java
+++ b/services/people/java/com/android/server/people/data/UsageStatsQueryHelper.java
@@ -19,6 +19,8 @@
 import android.annotation.NonNull;
 import android.annotation.UserIdInt;
 import android.app.usage.UsageEvents;
+import android.app.usage.UsageStats;
+import android.app.usage.UsageStatsManager;
 import android.app.usage.UsageStatsManagerInternal;
 import android.content.ComponentName;
 import android.content.LocusId;
@@ -27,7 +29,10 @@
 
 import com.android.server.LocalServices;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.function.Function;
 
 /** A helper class that queries {@link UsageStatsManagerInternal}. */
@@ -46,7 +51,7 @@
      */
     UsageStatsQueryHelper(@UserIdInt int userId,
             Function<String, PackageData> packageDataGetter) {
-        mUsageStatsManagerInternal = LocalServices.getService(UsageStatsManagerInternal.class);
+        mUsageStatsManagerInternal = getUsageStatsManagerInternal();
         mUserId = userId;
         mPackageDataGetter = packageDataGetter;
     }
@@ -106,6 +111,53 @@
         return mLastEventTimestamp;
     }
 
+    /**
+     * Queries {@link UsageStatsManagerInternal} events for moving app to foreground between
+     * {@code startTime} and {@code endTime}.
+     *
+     * @return a list containing events moving app to foreground.
+     */
+    static List<UsageEvents.Event> queryAppMovingToForegroundEvents(@UserIdInt int userId,
+            long startTime, long endTime) {
+        List<UsageEvents.Event> res = new ArrayList<>();
+        UsageEvents usageEvents = getUsageStatsManagerInternal().queryEventsForUser(userId,
+                startTime, endTime,
+                UsageEvents.HIDE_SHORTCUT_EVENTS | UsageEvents.HIDE_LOCUS_EVENTS);
+        if (usageEvents == null) {
+            return res;
+        }
+        while (usageEvents.hasNextEvent()) {
+            UsageEvents.Event e = new UsageEvents.Event();
+            usageEvents.getNextEvent(e);
+            if (e.getEventType() == UsageEvents.Event.ACTIVITY_RESUMED) {
+                res.add(e);
+            }
+        }
+        return res;
+    }
+
+    /**
+     * Queries {@link UsageStatsManagerInternal} for launch count of apps within {@code
+     * packageNameFilter} between {@code startTime} and {@code endTime}.obfuscateInstantApps
+     *
+     * @return a map which keys are package names and values are app launch counts.
+     */
+    static Map<String, Integer> queryAppLaunchCount(@UserIdInt int userId, long startTime,
+            long endTime, Set<String> packageNameFilter) {
+        List<UsageStats> stats = getUsageStatsManagerInternal().queryUsageStatsForUser(userId,
+                UsageStatsManager.INTERVAL_BEST, startTime, endTime,
+                /* obfuscateInstantApps= */ false);
+        Map<String, Integer> aggregatedStats = new ArrayMap<>();
+        for (UsageStats stat : stats) {
+            String packageName = stat.getPackageName();
+            if (packageNameFilter.contains(packageName)) {
+                aggregatedStats.put(packageName,
+                        aggregatedStats.getOrDefault(packageName, 0) + stat.getAppLaunchCount());
+            }
+        }
+        return aggregatedStats;
+    }
+
     private void onInAppConversationEnded(@NonNull PackageData packageData,
             @NonNull UsageEvents.Event endEvent) {
         ComponentName activityName =
@@ -138,4 +190,8 @@
                 EventStore.CATEGORY_LOCUS_ID_BASED, locusId.getId());
         eventHistory.addEvent(event);
     }
+
+    private static UsageStatsManagerInternal getUsageStatsManagerInternal() {
+        return LocalServices.getService(UsageStatsManagerInternal.class);
+    }
 }
diff --git a/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java b/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java
index 8e5d75b..d09d0b3 100644
--- a/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java
+++ b/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java
@@ -27,13 +27,11 @@
 import android.content.IntentFilter;
 import android.content.pm.ShortcutInfo;
 import android.content.pm.ShortcutManager.ShareShortcutInfo;
-import android.util.Range;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.ChooserActivity;
 import com.android.server.people.data.ConversationInfo;
 import com.android.server.people.data.DataManager;
-import com.android.server.people.data.Event;
 import com.android.server.people.data.EventHistory;
 import com.android.server.people.data.PackageData;
 
@@ -42,6 +40,9 @@
 import java.util.List;
 import java.util.function.Consumer;
 
+/**
+ * Predictor that predicts the {@link AppTarget} the user is most likely to open on share sheet.
+ */
 class ShareTargetPredictor extends AppTargetPredictor {
 
     private final IntentFilter mIntentFilter;
@@ -66,7 +67,9 @@
     @Override
     void predictTargets() {
         List<ShareTarget> shareTargets = getDirectShareTargets();
-        rankTargets(shareTargets);
+        SharesheetModelScorer.computeScore(shareTargets, getShareEventType(mIntentFilter),
+                System.currentTimeMillis());
+        Collections.sort(shareTargets, (t1, t2) -> -Float.compare(t1.getScore(), t2.getScore()));
         List<AppTarget> res = new ArrayList<>();
         for (int i = 0; i < Math.min(getPredictionContext().getPredictedTargetCount(),
                 shareTargets.size()); i++) {
@@ -80,36 +83,16 @@
     @Override
     void sortTargets(List<AppTarget> targets, Consumer<List<AppTarget>> callback) {
         List<ShareTarget> shareTargets = getAppShareTargets(targets);
-        rankTargets(shareTargets);
+        SharesheetModelScorer.computeScoreForAppShare(shareTargets,
+                getShareEventType(mIntentFilter), getPredictionContext().getPredictedTargetCount(),
+                System.currentTimeMillis(), getDataManager(),
+                mCallingUserId);
+        Collections.sort(shareTargets, (t1, t2) -> -Float.compare(t1.getScore(), t2.getScore()));
         List<AppTarget> appTargetList = new ArrayList<>();
         shareTargets.forEach(t -> appTargetList.add(t.getAppTarget()));
         callback.accept(appTargetList);
     }
 
-    private void rankTargets(List<ShareTarget> shareTargets) {
-        // Rank targets based on recency of sharing history only for the moment.
-        // TODO: Take more factors into ranking, e.g. frequency, mime type, foreground app.
-        Collections.sort(shareTargets, (t1, t2) -> {
-            if (t1.getEventHistory() == null) {
-                return 1;
-            }
-            if (t2.getEventHistory() == null) {
-                return -1;
-            }
-            Range<Long> timeSlot1 = t1.getEventHistory().getEventIndex(
-                    Event.SHARE_EVENT_TYPES).getMostRecentActiveTimeSlot();
-            Range<Long> timeSlot2 = t2.getEventHistory().getEventIndex(
-                    Event.SHARE_EVENT_TYPES).getMostRecentActiveTimeSlot();
-            if (timeSlot1 == null) {
-                return 1;
-            } else if (timeSlot2 == null) {
-                return -1;
-            } else {
-                return -Long.compare(timeSlot1.getUpper(), timeSlot2.getUpper());
-            }
-        });
-    }
-
     private List<ShareTarget> getDirectShareTargets() {
         List<ShareTarget> shareTargets = new ArrayList<>();
         List<ShareShortcutInfo> shareShortcuts =
@@ -153,6 +136,11 @@
         return shareTargets;
     }
 
+    private int getShareEventType(IntentFilter intentFilter) {
+        String mimeType = intentFilter != null ? intentFilter.getDataType(0) : null;
+        return getDataManager().mimeTypeToShareEventType(mimeType);
+    }
+
     @VisibleForTesting
     static class ShareTarget {
 
@@ -162,13 +150,16 @@
         private final EventHistory mEventHistory;
         @Nullable
         private final ConversationInfo mConversationInfo;
+        private float mScore;
 
-        private ShareTarget(@NonNull AppTarget appTarget,
+        @VisibleForTesting
+        ShareTarget(@NonNull AppTarget appTarget,
                 @Nullable EventHistory eventHistory,
                 @Nullable ConversationInfo conversationInfo) {
             mAppTarget = appTarget;
             mEventHistory = eventHistory;
             mConversationInfo = conversationInfo;
+            mScore = 0f;
         }
 
         @NonNull
@@ -188,5 +179,15 @@
         ConversationInfo getConversationInfo() {
             return mConversationInfo;
         }
+
+        @VisibleForTesting
+        float getScore() {
+            return mScore;
+        }
+
+        @VisibleForTesting
+        void setScore(float score) {
+            mScore = score;
+        }
     }
 }
diff --git a/services/people/java/com/android/server/people/prediction/SharesheetModelScorer.java b/services/people/java/com/android/server/people/prediction/SharesheetModelScorer.java
new file mode 100644
index 0000000..0ac5724
--- /dev/null
+++ b/services/people/java/com/android/server/people/prediction/SharesheetModelScorer.java
@@ -0,0 +1,406 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.prediction;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.UserIdInt;
+import android.app.usage.UsageEvents;
+import android.util.ArrayMap;
+import android.util.Pair;
+import android.util.Range;
+import android.util.Slog;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.app.ChooserActivity;
+import com.android.server.people.data.DataManager;
+import com.android.server.people.data.Event;
+
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.PriorityQueue;
+import java.util.concurrent.TimeUnit;
+
+/** Ranking scorer for Sharesheet targets. */
+class SharesheetModelScorer {
+
+    private static final String TAG = "SharesheetModelScorer";
+    private static final boolean DEBUG = false;
+    private static final Integer RECENCY_SCORE_COUNT = 6;
+    private static final float RECENCY_INITIAL_BASE_SCORE = 0.4F;
+    private static final float RECENCY_SCORE_INITIAL_DECAY = 0.05F;
+    private static final float RECENCY_SCORE_SUBSEQUENT_DECAY = 0.02F;
+    private static final long ONE_MONTH_WINDOW = TimeUnit.DAYS.toMillis(30);
+    private static final long FOREGROUND_APP_PROMO_TIME_WINDOW = TimeUnit.MINUTES.toMillis(10);
+    private static final float FREQUENTLY_USED_APP_SCORE_DECAY = 0.9F;
+    @VisibleForTesting
+    static final float FOREGROUND_APP_WEIGHT = 0F;
+    @VisibleForTesting
+    static final String CHOOSER_ACTIVITY = ChooserActivity.class.getSimpleName();
+
+    // Keep constructor private to avoid class being instantiated.
+    private SharesheetModelScorer() {
+    }
+
+    /**
+     * Computes each target's recency, frequency and frequency of the same {@code shareEventType}
+     * based on past sharing history. Update {@link ShareTargetPredictor.ShareTargetScore}.
+     */
+    static void computeScore(List<ShareTargetPredictor.ShareTarget> shareTargets,
+            int shareEventType, long now) {
+        if (shareTargets.isEmpty()) {
+            return;
+        }
+        float totalFreqScore = 0f;
+        int freqScoreCount = 0;
+        float totalMimeFreqScore = 0f;
+        int mimeFreqScoreCount = 0;
+        // Top of this heap has lowest rank.
+        PriorityQueue<Pair<ShareTargetRankingScore, Range<Long>>> recencyMinHeap =
+                new PriorityQueue<>(RECENCY_SCORE_COUNT,
+                        Comparator.comparingLong(p -> p.second.getUpper()));
+        List<ShareTargetRankingScore> scoreList = new ArrayList<>(shareTargets.size());
+        for (ShareTargetPredictor.ShareTarget target : shareTargets) {
+            ShareTargetRankingScore shareTargetScore = new ShareTargetRankingScore();
+            scoreList.add(shareTargetScore);
+            if (target.getEventHistory() == null) {
+                continue;
+            }
+            // Counts frequency
+            List<Range<Long>> timeSlots = target.getEventHistory().getEventIndex(
+                    Event.SHARE_EVENT_TYPES).getActiveTimeSlots();
+            if (!timeSlots.isEmpty()) {
+                for (Range<Long> timeSlot : timeSlots) {
+                    shareTargetScore.incrementFrequencyScore(
+                            getFreqDecayedOnElapsedTime(now - timeSlot.getLower()));
+                }
+                totalFreqScore += shareTargetScore.getFrequencyScore();
+                freqScoreCount++;
+            }
+            // Counts frequency for sharing same mime type
+            List<Range<Long>> timeSlotsOfSameType = target.getEventHistory().getEventIndex(
+                    shareEventType).getActiveTimeSlots();
+            if (!timeSlotsOfSameType.isEmpty()) {
+                for (Range<Long> timeSlot : timeSlotsOfSameType) {
+                    shareTargetScore.incrementMimeFrequencyScore(
+                            getFreqDecayedOnElapsedTime(now - timeSlot.getLower()));
+                }
+                totalMimeFreqScore += shareTargetScore.getMimeFrequencyScore();
+                mimeFreqScoreCount++;
+            }
+            // Records most recent targets
+            Range<Long> mostRecentTimeSlot = target.getEventHistory().getEventIndex(
+                    Event.SHARE_EVENT_TYPES).getMostRecentActiveTimeSlot();
+            if (mostRecentTimeSlot == null) {
+                continue;
+            }
+            if (recencyMinHeap.size() < RECENCY_SCORE_COUNT
+                    || mostRecentTimeSlot.getUpper() > recencyMinHeap.peek().second.getUpper()) {
+                if (recencyMinHeap.size() == RECENCY_SCORE_COUNT) {
+                    recencyMinHeap.poll();
+                }
+                recencyMinHeap.offer(new Pair(shareTargetScore, mostRecentTimeSlot));
+            }
+        }
+        // Calculates recency score
+        while (!recencyMinHeap.isEmpty()) {
+            float recencyScore = RECENCY_INITIAL_BASE_SCORE;
+            if (recencyMinHeap.size() > 1) {
+                recencyScore = RECENCY_INITIAL_BASE_SCORE - RECENCY_SCORE_INITIAL_DECAY
+                        - RECENCY_SCORE_SUBSEQUENT_DECAY * (recencyMinHeap.size() - 2);
+            }
+            recencyMinHeap.poll().first.setRecencyScore(recencyScore);
+        }
+
+        Float avgFreq = freqScoreCount != 0 ? totalFreqScore / freqScoreCount : 0f;
+        Float avgMimeFreq = mimeFreqScoreCount != 0 ? totalMimeFreqScore / mimeFreqScoreCount : 0f;
+        for (int i = 0; i < scoreList.size(); i++) {
+            ShareTargetPredictor.ShareTarget target = shareTargets.get(i);
+            ShareTargetRankingScore targetScore = scoreList.get(i);
+            // Normalizes freq and mimeFreq score
+            targetScore.setFrequencyScore(normalizeFreqScore(
+                    avgFreq.equals(0f) ? 0f : targetScore.getFrequencyScore() / avgFreq));
+            targetScore.setMimeFrequencyScore(normalizeMimeFreqScore(avgMimeFreq.equals(0f) ? 0f
+                    : targetScore.getMimeFrequencyScore() / avgMimeFreq));
+            // Calculates total score
+            targetScore.setTotalScore(
+                    probOR(probOR(targetScore.getRecencyScore(), targetScore.getFrequencyScore()),
+                            targetScore.getMimeFrequencyScore()));
+            target.setScore(targetScore.getTotalScore());
+
+            if (DEBUG) {
+                Slog.d(TAG, String.format(
+                        "SharesheetModel: packageName: %s, className: %s, shortcutId: %s, "
+                                + "recency:%.2f, freq_all:%.2f, freq_mime:%.2f, total:%.2f",
+                        target.getAppTarget().getPackageName(),
+                        target.getAppTarget().getClassName(),
+                        target.getAppTarget().getShortcutInfo() != null
+                                ? target.getAppTarget().getShortcutInfo().getId() : null,
+                        targetScore.getRecencyScore(),
+                        targetScore.getFrequencyScore(),
+                        targetScore.getMimeFrequencyScore(),
+                        targetScore.getTotalScore()));
+            }
+        }
+    }
+
+    /**
+     * Computes ranking score for app sharing. Update {@link ShareTargetPredictor.ShareTargetScore}.
+     */
+    static void computeScoreForAppShare(List<ShareTargetPredictor.ShareTarget> shareTargets,
+            int shareEventType, int targetsLimit, long now, @NonNull DataManager dataManager,
+            @UserIdInt int callingUserId) {
+        computeScore(shareTargets, shareEventType, now);
+        postProcess(shareTargets, targetsLimit, dataManager, callingUserId);
+    }
+
+    private static void postProcess(List<ShareTargetPredictor.ShareTarget> shareTargets,
+            int targetsLimit, @NonNull DataManager dataManager, @UserIdInt int callingUserId) {
+        // Populates a map which key is package name and value is list of shareTargets descended
+        // on total score.
+        Map<String, List<ShareTargetPredictor.ShareTarget>> shareTargetMap = new ArrayMap<>();
+        for (ShareTargetPredictor.ShareTarget shareTarget : shareTargets) {
+            String packageName = shareTarget.getAppTarget().getPackageName();
+            shareTargetMap.computeIfAbsent(packageName, key -> new ArrayList<>());
+            List<ShareTargetPredictor.ShareTarget> targetsList = shareTargetMap.get(packageName);
+            int index = 0;
+            while (index < targetsList.size()) {
+                if (shareTarget.getScore() > targetsList.get(index).getScore()) {
+                    break;
+                }
+                index++;
+            }
+            targetsList.add(index, shareTarget);
+        }
+        promoteForegroundApp(shareTargetMap, dataManager, callingUserId);
+        promoteFrequentlyUsedApps(shareTargetMap, targetsLimit, dataManager, callingUserId);
+    }
+
+    /**
+     * Promotes frequently used sharing apps, if recommended apps based on sharing history have not
+     * reached the limit (e.g. user did not share any content in last couple weeks)
+     */
+    private static void promoteFrequentlyUsedApps(
+            Map<String, List<ShareTargetPredictor.ShareTarget>> shareTargetMap, int targetsLimit,
+            @NonNull DataManager dataManager, @UserIdInt int callingUserId) {
+        int validPredictionNum = 0;
+        float minValidScore = 1f;
+        for (List<ShareTargetPredictor.ShareTarget> targets : shareTargetMap.values()) {
+            for (ShareTargetPredictor.ShareTarget target : targets) {
+                if (target.getScore() > 0f) {
+                    validPredictionNum++;
+                    minValidScore = Math.min(target.getScore(), minValidScore);
+                }
+            }
+        }
+        // Skips if recommended apps based on sharing history have already reached the limit.
+        if (validPredictionNum >= targetsLimit) {
+            return;
+        }
+        long now = System.currentTimeMillis();
+        Map<String, Integer> appLaunchCountsMap = dataManager.queryAppLaunchCount(
+                callingUserId, now - ONE_MONTH_WINDOW, now, shareTargetMap.keySet());
+        List<Pair<String, Integer>> appLaunchCounts = new ArrayList<>();
+        for (Map.Entry<String, Integer> entry : appLaunchCountsMap.entrySet()) {
+            if (entry.getValue() > 0) {
+                appLaunchCounts.add(new Pair(entry.getKey(), entry.getValue()));
+            }
+        }
+        Collections.sort(appLaunchCounts, (p1, p2) -> -Integer.compare(p1.second, p2.second));
+        for (Pair<String, Integer> entry : appLaunchCounts) {
+            if (!shareTargetMap.containsKey(entry.first)) {
+                continue;
+            }
+            ShareTargetPredictor.ShareTarget target = shareTargetMap.get(entry.first).get(0);
+            if (target.getScore() > 0f) {
+                continue;
+            }
+            minValidScore *= FREQUENTLY_USED_APP_SCORE_DECAY;
+            target.setScore(minValidScore);
+            if (DEBUG) {
+                Slog.d(TAG, String.format(
+                        "SharesheetModel: promoteFrequentUsedApps packageName: %s, className: %s,"
+                                + " total:%.2f",
+                        target.getAppTarget().getPackageName(),
+                        target.getAppTarget().getClassName(),
+                        target.getScore()));
+            }
+            validPredictionNum++;
+            if (validPredictionNum == targetsLimit) {
+                return;
+            }
+        }
+    }
+
+    /**
+     * Promotes the foreground app just prior to source sharing app. Share often occurs between
+     * two apps the user is switching.
+     */
+    private static void promoteForegroundApp(
+            Map<String, List<ShareTargetPredictor.ShareTarget>> shareTargetMap,
+            @NonNull DataManager dataManager, @UserIdInt int callingUserId) {
+        String sharingForegroundApp = findSharingForegroundApp(shareTargetMap, dataManager,
+                callingUserId);
+        if (sharingForegroundApp != null) {
+            ShareTargetPredictor.ShareTarget target = shareTargetMap.get(sharingForegroundApp).get(
+                    0);
+            target.setScore(probOR(target.getScore(), FOREGROUND_APP_WEIGHT));
+            if (DEBUG) {
+                Slog.d(TAG, String.format(
+                        "SharesheetModel: promoteForegroundApp packageName: %s, className: %s, "
+                                + "total:%.2f",
+                        target.getAppTarget().getPackageName(),
+                        target.getAppTarget().getClassName(),
+                        target.getScore()));
+            }
+        }
+    }
+
+    /**
+     * Find the foreground app just prior to source sharing app from usageStatsManager. Returns null
+     * if it is not available.
+     */
+    @Nullable
+    private static String findSharingForegroundApp(
+            Map<String, List<ShareTargetPredictor.ShareTarget>> shareTargetMap,
+            @NonNull DataManager dataManager, @UserIdInt int callingUserId) {
+        String sharingForegroundApp = null;
+        long now = System.currentTimeMillis();
+        List<UsageEvents.Event> events = dataManager.queryAppMovingToForegroundEvents(
+                callingUserId, now - FOREGROUND_APP_PROMO_TIME_WINDOW, now);
+        String sourceApp = null;
+        for (int i = events.size() - 1; i >= 0; i--) {
+            String className = events.get(i).getClassName();
+            String packageName = events.get(i).getPackageName();
+            if (packageName == null || (className != null && className.contains(CHOOSER_ACTIVITY))
+                    || packageName.contains(CHOOSER_ACTIVITY)) {
+                continue;
+            }
+            if (sourceApp == null) {
+                sourceApp = packageName;
+            } else if (!packageName.equals(sourceApp) && shareTargetMap.containsKey(packageName)) {
+                sharingForegroundApp = packageName;
+                break;
+            }
+        }
+        return sharingForegroundApp;
+    }
+
+    /**
+     * Probabilistic OR (also known as the algebraic sum). If a <= 1 and b <= 1, the result will be
+     * <= 1.0.
+     */
+    private static float probOR(float a, float b) {
+        return 1f - (1f - a) * (1f - b);
+    }
+
+    /** Counts frequency of share targets. Decays frequency for old shares. */
+    private static float getFreqDecayedOnElapsedTime(long elapsedTimeMillis) {
+        Duration duration = Duration.ofMillis(elapsedTimeMillis);
+        if (duration.compareTo(Duration.ofDays(1)) <= 0) {
+            return 1.0f;
+        } else if (duration.compareTo(Duration.ofDays(3)) <= 0) {
+            return 0.9f;
+        } else if (duration.compareTo(Duration.ofDays(7)) <= 0) {
+            return 0.8f;
+        } else if (duration.compareTo(Duration.ofDays(14)) <= 0) {
+            return 0.7f;
+        } else {
+            return 0.6f;
+        }
+    }
+
+    /** Normalizes frequency score. */
+    private static float normalizeFreqScore(double freqRatio) {
+        if (freqRatio >= 2.5) {
+            return 0.2f;
+        } else if (freqRatio >= 1.5) {
+            return 0.15f;
+        } else if (freqRatio >= 1.0) {
+            return 0.1f;
+        } else if (freqRatio >= 0.75) {
+            return 0.05f;
+        } else {
+            return 0f;
+        }
+    }
+
+    /** Normalizes mimetype-specific frequency score. */
+    private static float normalizeMimeFreqScore(double freqRatio) {
+        if (freqRatio >= 2.0) {
+            return 0.2f;
+        } else if (freqRatio >= 1.2) {
+            return 0.15f;
+        } else if (freqRatio > 0.0) {
+            return 0.1f;
+        } else {
+            return 0f;
+        }
+    }
+
+    private static class ShareTargetRankingScore {
+
+        private float mRecencyScore = 0f;
+        private float mFrequencyScore = 0f;
+        private float mMimeFrequencyScore = 0f;
+        private float mTotalScore = 0f;
+
+        float getTotalScore() {
+            return mTotalScore;
+        }
+
+        void setTotalScore(float totalScore) {
+            mTotalScore = totalScore;
+        }
+
+        float getRecencyScore() {
+            return mRecencyScore;
+        }
+
+        void setRecencyScore(float recencyScore) {
+            mRecencyScore = recencyScore;
+        }
+
+        float getFrequencyScore() {
+            return mFrequencyScore;
+        }
+
+        void setFrequencyScore(float frequencyScore) {
+            mFrequencyScore = frequencyScore;
+        }
+
+        void incrementFrequencyScore(float incremental) {
+            mFrequencyScore += incremental;
+        }
+
+        float getMimeFrequencyScore() {
+            return mMimeFrequencyScore;
+        }
+
+        void setMimeFrequencyScore(float mimeFrequencyScore) {
+            mMimeFrequencyScore = mimeFrequencyScore;
+        }
+
+        void incrementMimeFrequencyScore(float incremental) {
+            mMimeFrequencyScore += incremental;
+        }
+    }
+}
diff --git a/services/robotests/src/com/android/server/location/GnssAntennaInfoProviderTest.java b/services/robotests/src/com/android/server/location/gnss/GnssAntennaInfoProviderTest.java
similarity index 97%
rename from services/robotests/src/com/android/server/location/GnssAntennaInfoProviderTest.java
rename to services/robotests/src/com/android/server/location/gnss/GnssAntennaInfoProviderTest.java
index 76f7ad6..d8acd6e 100644
--- a/services/robotests/src/com/android/server/location/GnssAntennaInfoProviderTest.java
+++ b/services/robotests/src/com/android/server/location/gnss/GnssAntennaInfoProviderTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.location;
+package com.android.server.location.gnss;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -41,7 +41,8 @@
 @Presubmit
 public class GnssAntennaInfoProviderTest {
     @Mock
-    private GnssAntennaInfoProvider.GnssAntennaInfoProviderNative mMockNative;
+    private GnssAntennaInfoProvider.GnssAntennaInfoProviderNative
+            mMockNative;
     private GnssAntennaInfoProvider mTestProvider;
 
     /** Setup. */
diff --git a/services/robotests/src/com/android/server/location/GnssBatchingProviderTest.java b/services/robotests/src/com/android/server/location/gnss/GnssBatchingProviderTest.java
similarity index 76%
rename from services/robotests/src/com/android/server/location/GnssBatchingProviderTest.java
rename to services/robotests/src/com/android/server/location/gnss/GnssBatchingProviderTest.java
index d58c3f7..25d6aa4 100644
--- a/services/robotests/src/com/android/server/location/GnssBatchingProviderTest.java
+++ b/services/robotests/src/com/android/server/location/gnss/GnssBatchingProviderTest.java
@@ -1,4 +1,20 @@
-package com.android.server.location;
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -11,7 +27,7 @@
 
 import android.platform.test.annotations.Presubmit;
 
-import com.android.server.location.GnssBatchingProvider.GnssBatchingProviderNative;
+import com.android.server.location.gnss.GnssBatchingProvider.GnssBatchingProviderNative;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/services/robotests/src/com/android/server/location/GnssGeofenceProviderTest.java b/services/robotests/src/com/android/server/location/gnss/GnssGeofenceProviderTest.java
similarity index 86%
rename from services/robotests/src/com/android/server/location/GnssGeofenceProviderTest.java
rename to services/robotests/src/com/android/server/location/gnss/GnssGeofenceProviderTest.java
index 30c7336..4a533aa 100644
--- a/services/robotests/src/com/android/server/location/GnssGeofenceProviderTest.java
+++ b/services/robotests/src/com/android/server/location/gnss/GnssGeofenceProviderTest.java
@@ -1,4 +1,20 @@
-package com.android.server.location;
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
 
 import static org.mockito.ArgumentMatchers.anyDouble;
 import static org.mockito.ArgumentMatchers.anyInt;
diff --git a/services/robotests/src/com/android/server/location/GnssMeasurementsProviderTest.java b/services/robotests/src/com/android/server/location/gnss/GnssMeasurementsProviderTest.java
similarity index 78%
rename from services/robotests/src/com/android/server/location/GnssMeasurementsProviderTest.java
rename to services/robotests/src/com/android/server/location/gnss/GnssMeasurementsProviderTest.java
index b349b67..e7d9ef8 100644
--- a/services/robotests/src/com/android/server/location/GnssMeasurementsProviderTest.java
+++ b/services/robotests/src/com/android/server/location/gnss/GnssMeasurementsProviderTest.java
@@ -1,4 +1,20 @@
-package com.android.server.location;
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -26,7 +42,8 @@
 @Presubmit
 public class GnssMeasurementsProviderTest {
     @Mock
-    private GnssMeasurementsProvider.GnssMeasurementProviderNative mMockNative;
+    private GnssMeasurementsProvider.GnssMeasurementProviderNative
+            mMockNative;
     private GnssMeasurementsProvider mTestProvider;
 
     @Before
diff --git a/services/robotests/src/com/android/server/location/GnssNavigationMessageProviderTest.java b/services/robotests/src/com/android/server/location/gnss/GnssNavigationMessageProviderTest.java
similarity index 78%
rename from services/robotests/src/com/android/server/location/GnssNavigationMessageProviderTest.java
rename to services/robotests/src/com/android/server/location/gnss/GnssNavigationMessageProviderTest.java
index aa2a96e..c21db73 100644
--- a/services/robotests/src/com/android/server/location/GnssNavigationMessageProviderTest.java
+++ b/services/robotests/src/com/android/server/location/gnss/GnssNavigationMessageProviderTest.java
@@ -1,4 +1,20 @@
-package com.android.server.location;
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -25,7 +41,8 @@
 @Presubmit
 public class GnssNavigationMessageProviderTest {
     @Mock
-    private GnssNavigationMessageProvider.GnssNavigationMessageProviderNative mMockNative;
+    private GnssNavigationMessageProvider.GnssNavigationMessageProviderNative
+            mMockNative;
     private GnssNavigationMessageProvider mTestProvider;
 
     @Before
diff --git a/services/robotests/src/com/android/server/location/GnssPositionModeTest.java b/services/robotests/src/com/android/server/location/gnss/GnssPositionModeTest.java
similarity index 73%
rename from services/robotests/src/com/android/server/location/GnssPositionModeTest.java
rename to services/robotests/src/com/android/server/location/gnss/GnssPositionModeTest.java
index f37f50e..7117ff9 100644
--- a/services/robotests/src/com/android/server/location/GnssPositionModeTest.java
+++ b/services/robotests/src/com/android/server/location/gnss/GnssPositionModeTest.java
@@ -1,4 +1,20 @@
-package com.android.server.location;
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
 
 import static com.google.common.truth.Truth.assertThat;
 
diff --git a/services/robotests/src/com/android/server/location/GnssSatelliteBlacklistHelperTest.java b/services/robotests/src/com/android/server/location/gnss/GnssSatelliteBlacklistHelperTest.java
similarity index 86%
rename from services/robotests/src/com/android/server/location/GnssSatelliteBlacklistHelperTest.java
rename to services/robotests/src/com/android/server/location/gnss/GnssSatelliteBlacklistHelperTest.java
index ba4a753..7c73a2f 100644
--- a/services/robotests/src/com/android/server/location/GnssSatelliteBlacklistHelperTest.java
+++ b/services/robotests/src/com/android/server/location/gnss/GnssSatelliteBlacklistHelperTest.java
@@ -1,4 +1,20 @@
-package com.android.server.location;
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -35,7 +51,8 @@
 
     private ContentResolver mContentResolver;
     @Mock
-    private GnssSatelliteBlacklistHelper.GnssSatelliteBlacklistCallback mCallback;
+    private GnssSatelliteBlacklistHelper.GnssSatelliteBlacklistCallback
+            mCallback;
 
     @Before
     public void setUp() {
diff --git a/services/robotests/src/com/android/server/location/NtpTimeHelperTest.java b/services/robotests/src/com/android/server/location/gnss/NtpTimeHelperTest.java
similarity index 83%
rename from services/robotests/src/com/android/server/location/NtpTimeHelperTest.java
rename to services/robotests/src/com/android/server/location/gnss/NtpTimeHelperTest.java
index 9c5d4ad..9b59aad 100644
--- a/services/robotests/src/com/android/server/location/NtpTimeHelperTest.java
+++ b/services/robotests/src/com/android/server/location/gnss/NtpTimeHelperTest.java
@@ -1,4 +1,20 @@
-package com.android.server.location;
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.gnss;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -10,7 +26,7 @@
 import android.platform.test.annotations.Presubmit;
 import android.util.NtpTrustedTime;
 
-import com.android.server.location.NtpTimeHelper.InjectNtpTimeCallback;
+import com.android.server.location.gnss.NtpTimeHelper.InjectNtpTimeCallback;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/services/robotests/src/com/android/server/pm/CrossProfileAppsServiceImplRoboTest.java b/services/robotests/src/com/android/server/pm/CrossProfileAppsServiceImplRoboTest.java
index fa0febd..138f982 100644
--- a/services/robotests/src/com/android/server/pm/CrossProfileAppsServiceImplRoboTest.java
+++ b/services/robotests/src/com/android/server/pm/CrossProfileAppsServiceImplRoboTest.java
@@ -17,6 +17,7 @@
 package com.android.server.pm;
 
 import static android.app.AppOpsManager.MODE_ALLOWED;
+import static android.app.AppOpsManager.MODE_DEFAULT;
 import static android.app.AppOpsManager.OP_INTERACT_ACROSS_PROFILES;
 import static android.content.Intent.FLAG_RECEIVER_FOREGROUND;
 import static android.content.Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND;
@@ -104,6 +105,7 @@
     private final CrossProfileAppsServiceImpl mCrossProfileAppsServiceImpl =
             new CrossProfileAppsServiceImpl(mContext, mInjector);
     private final Map<UserHandle, Set<Intent>> mSentUserBroadcasts = new HashMap<>();
+    private final Map<Integer, List<ApplicationInfo>> installedApplications = new HashMap<>();
 
     @Mock private PackageManagerInternal mPackageManagerInternal;
     @Mock private IPackageManager mIPackageManager;
@@ -112,12 +114,18 @@
     @Before
     public void initializeMocks() throws Exception {
         MockitoAnnotations.initMocks(this);
+        initializeInstalledApplicationsMock();
         mockCrossProfileAppInstalledAndEnabledOnEachProfile();
         mockCrossProfileAppRequestsInteractAcrossProfiles();
         mockCrossProfileAppRegistersBroadcastReceiver();
         mockCrossProfileAppWhitelisted();
     }
 
+    private void initializeInstalledApplicationsMock() {
+        when(mPackageManagerInternal.getInstalledApplications(anyInt(), anyInt(), eq(CALLING_UID)))
+                .thenAnswer(invocation -> installedApplications.get(invocation.getArgument(1)));
+    }
+
     private void mockCrossProfileAppInstalledAndEnabledOnEachProfile() {
         // They are enabled by default, so we simply have to ensure that a package info with an
         // application info is returned.
@@ -138,11 +146,14 @@
         when(mPackageManagerInternal.getPackage(uid))
                 .thenReturn(((ParsedPackage) PackageImpl.forTesting(CROSS_PROFILE_APP_PACKAGE_NAME)
                         .hideAsParsed()).hideAsFinal());
+        installedApplications.putIfAbsent(userId, new ArrayList<>());
+        installedApplications.get(userId).add(packageInfo.applicationInfo);
     }
 
     private PackageInfo buildTestPackageInfo() {
         PackageInfo packageInfo = new PackageInfo();
         packageInfo.applicationInfo = new ApplicationInfo();
+        packageInfo.applicationInfo.packageName = CROSS_PROFILE_APP_PACKAGE_NAME;
         return packageInfo;
     }
 
@@ -419,6 +430,45 @@
                 .isTrue();
     }
 
+    @Test
+    public void canUserAttemptToConfigureInteractAcrossProfiles_packageNotInstalledInProfile_returnsTrue() {
+        mockUninstallCrossProfileAppFromWorkProfile();
+        assertThat(mCrossProfileAppsServiceImpl
+                .canUserAttemptToConfigureInteractAcrossProfiles(CROSS_PROFILE_APP_PACKAGE_NAME))
+                .isTrue();
+    }
+
+    @Test
+    public void canUserAttemptToConfigureInteractAcrossProfiles_packageDoesNotRequestInteractAcrossProfiles_returnsFalse()
+            throws Exception {
+        mockCrossProfileAppDoesNotRequestInteractAcrossProfiles();
+        assertThat(mCrossProfileAppsServiceImpl
+                .canUserAttemptToConfigureInteractAcrossProfiles(CROSS_PROFILE_APP_PACKAGE_NAME))
+                .isFalse();
+    }
+
+    @Test
+    public void canUserAttemptToConfigureInteractAcrossProfiles_packageNotWhitelisted_returnsTrue() {
+        mockCrossProfileAppNotWhitelisted();
+        assertThat(mCrossProfileAppsServiceImpl
+                .canUserAttemptToConfigureInteractAcrossProfiles(CROSS_PROFILE_APP_PACKAGE_NAME))
+                .isTrue();
+    }
+
+    @Test
+    public void canUserAttemptToConfigureInteractAcrossProfiles_returnsTrue() {
+        assertThat(mCrossProfileAppsServiceImpl
+                .canUserAttemptToConfigureInteractAcrossProfiles(CROSS_PROFILE_APP_PACKAGE_NAME))
+                .isTrue();
+    }
+
+    @Test
+    public void clearInteractAcrossProfilesAppOps() {
+        explicitlySetInteractAcrossProfilesAppOp(MODE_ALLOWED);
+        mCrossProfileAppsServiceImpl.clearInteractAcrossProfilesAppOps();
+        assertThat(getCrossProfileAppOp()).isEqualTo(MODE_DEFAULT);
+    }
+
     private void explicitlySetInteractAcrossProfilesAppOp(@Mode int mode) {
         explicitlySetInteractAcrossProfilesAppOp(PERSONAL_PROFILE_UID, mode);
     }
diff --git a/services/tests/mockingservicestests/src/com/android/server/AlarmManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/AlarmManagerServiceTest.java
index bb149cf..09af442 100644
--- a/services/tests/mockingservicestests/src/com/android/server/AlarmManagerServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/AlarmManagerServiceTest.java
@@ -496,7 +496,7 @@
         // This one should get deferred on set
         setTestAlarm(ELAPSED_REALTIME_WAKEUP, firstTrigger + quota,
                 getNewMockPendingIntent());
-        final long expectedNextTrigger = firstTrigger + 1 + mAppStandbyWindow;
+        final long expectedNextTrigger = firstTrigger + mAppStandbyWindow;
         assertEquals("Incorrect next alarm trigger", expectedNextTrigger, mTestTimer.getElapsed());
     }
 
@@ -516,7 +516,7 @@
             mNowElapsedTest = mTestTimer.getElapsed();
             mTestTimer.expire();
         }
-        final long expectedNextTrigger = firstTrigger + 1 + mAppStandbyWindow;
+        final long expectedNextTrigger = firstTrigger + mAppStandbyWindow;
         assertEquals("Incorrect next alarm trigger", expectedNextTrigger, mTestTimer.getElapsed());
     }
 
@@ -676,7 +676,7 @@
         final int rareQuota = mService.getQuotaForBucketLocked(STANDBY_BUCKET_RARE);
         // The last alarm should now be deferred.
         final long expectedNextTrigger = (firstTrigger + workingQuota - 1 - rareQuota)
-                + mAppStandbyWindow + 1;
+                + mAppStandbyWindow;
         assertEquals("Incorrect next alarm trigger", expectedNextTrigger, mTestTimer.getElapsed());
     }
 
@@ -695,7 +695,7 @@
             }
         }
         // The last alarm should be deferred due to exceeding the quota
-        final long deferredTrigger = firstTrigger + 1 + mAppStandbyWindow;
+        final long deferredTrigger = firstTrigger + mAppStandbyWindow;
         assertEquals(deferredTrigger, mTestTimer.getElapsed());
 
         // Upgrading the bucket now
@@ -730,7 +730,7 @@
             mTestTimer.expire();
         }
         // Any subsequent alarms in queue should all be deferred
-        assertEquals(firstTrigger + mAppStandbyWindow + 1, mTestTimer.getElapsed());
+        assertEquals(firstTrigger + mAppStandbyWindow, mTestTimer.getElapsed());
         // Paroling now
         assertAndHandleParoleChanged(true);
 
@@ -744,7 +744,7 @@
         assertAndHandleParoleChanged(false);
 
         // Subsequent alarms should again get deferred
-        final long expectedNextTrigger = (firstTrigger + 5) + 1 + mAppStandbyWindow;
+        final long expectedNextTrigger = (firstTrigger + 5) + mAppStandbyWindow;
         assertEquals("Incorrect next alarm trigger", expectedNextTrigger, mTestTimer.getElapsed());
     }
 
diff --git a/services/tests/mockingservicestests/src/com/android/server/am/ApplicationExitInfoTest.java b/services/tests/mockingservicestests/src/com/android/server/am/ApplicationExitInfoTest.java
index efe8119..23381ff 100644
--- a/services/tests/mockingservicestests/src/com/android/server/am/ApplicationExitInfoTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/am/ApplicationExitInfoTest.java
@@ -46,6 +46,7 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManagerInternal;
 import android.os.Debug;
+import android.os.FileUtils;
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.Process;
@@ -55,6 +56,7 @@
 import android.text.TextUtils;
 import android.util.Pair;
 
+import com.android.internal.util.ArrayUtils;
 import com.android.server.LocalServices;
 import com.android.server.ServiceThread;
 import com.android.server.appop.AppOpsService;
@@ -71,10 +73,17 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 import java.util.ArrayList;
+import java.util.Random;
+import java.util.zip.GZIPInputStream;
 
 /**
  * Test class for {@link android.app.ApplicationExitInfo}.
@@ -119,6 +128,8 @@
         setFieldValue(AppExitInfoTracker.class, mAppExitInfoTracker, "mAppExitInfoSourceLmkd",
                 spy(mAppExitInfoTracker.new AppExitInfoExternalSource("lmkd",
                 ApplicationExitInfo.REASON_LOW_MEMORY)));
+        setFieldValue(AppExitInfoTracker.class, mAppExitInfoTracker, "mAppTraceRetriever",
+                spy(mAppExitInfoTracker.new AppTraceRetriever()));
         setFieldValue(ProcessList.class, mProcessList, "mAppExitInfoTracker", mAppExitInfoTracker);
         mInjector = new TestInjector(mContext);
         mAms = new ActivityManagerService(mInjector, mServiceThreadRule.getThread());
@@ -169,6 +180,11 @@
     public void testApplicationExitInfo() throws Exception {
         mAppExitInfoTracker.clearProcessExitInfo(true);
         mAppExitInfoTracker.mAppExitInfoLoaded = true;
+        mAppExitInfoTracker.mProcExitStoreDir = new File(mContext.getFilesDir(),
+                AppExitInfoTracker.APP_EXIT_STORE_DIR);
+        assertTrue(FileUtils.createDir(mAppExitInfoTracker.mProcExitStoreDir));
+        mAppExitInfoTracker.mProcExitInfoFile = new File(mAppExitInfoTracker.mProcExitStoreDir,
+                AppExitInfoTracker.APP_EXIT_INFO_FILE);
 
         // Test application calls System.exit()
         doNothing().when(mAppExitInfoTracker).schedulePersistProcessExitInfo(anyBoolean());
@@ -188,6 +204,10 @@
         final long app1Rss3 = 45680;
         final String app1ProcessName = "com.android.test.stub1:process";
         final String app1PackageName = "com.android.test.stub1";
+        final byte[] app1Cookie1 = {(byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04,
+                (byte) 0x05, (byte) 0x06, (byte) 0x07, (byte) 0x08};
+        final byte[] app1Cookie2 = {(byte) 0x08, (byte) 0x07, (byte) 0x06, (byte) 0x05,
+                (byte) 0x04, (byte) 0x03, (byte) 0x02, (byte) 0x01};
 
         final long now1 = System.currentTimeMillis();
         ProcessRecord app = makeProcessRecord(
@@ -204,6 +224,9 @@
 
         // Case 1: basic System.exit() test
         int exitCode = 5;
+        mAppExitInfoTracker.setProcessStateSummary(app1Uid, app1Pid1, app1Cookie1);
+        assertTrue(ArrayUtils.equals(mAppExitInfoTracker.getProcessStateSummary(app1Uid,
+                app1Pid1), app1Cookie1, app1Cookie1.length));
         doReturn(new Pair<Long, Object>(now1, Integer.valueOf(makeExitStatus(exitCode))))
                 .when(mAppExitInfoTracker.mAppExitInfoSourceZygote)
                 .remove(anyInt(), anyInt());
@@ -235,6 +258,10 @@
                 IMPORTANCE_CACHED,                    // importance
                 null);                                // description
 
+        assertTrue(ArrayUtils.equals(info.getProcessStateSummary(), app1Cookie1,
+                app1Cookie1.length));
+        assertEquals(info.getTraceInputStream(), null);
+
         // Case 2: create another app1 process record with a different pid
         sleep(1);
         final long now2 = System.currentTimeMillis();
@@ -250,6 +277,12 @@
                 app1ProcessName,        // processName
                 app1PackageName);       // packageName
         exitCode = 6;
+
+        mAppExitInfoTracker.setProcessStateSummary(app1Uid, app1Pid2, app1Cookie1);
+        // Override with a different cookie
+        mAppExitInfoTracker.setProcessStateSummary(app1Uid, app1Pid2, app1Cookie2);
+        assertTrue(ArrayUtils.equals(mAppExitInfoTracker.getProcessStateSummary(app1Uid,
+                app1Pid2), app1Cookie2, app1Cookie2.length));
         doReturn(new Pair<Long, Object>(now2, Integer.valueOf(makeExitStatus(exitCode))))
                 .when(mAppExitInfoTracker.mAppExitInfoSourceZygote)
                 .remove(anyInt(), anyInt());
@@ -280,6 +313,12 @@
                 IMPORTANCE_SERVICE,                   // importance
                 null);                                // description
 
+        assertTrue(ArrayUtils.equals(info.getProcessStateSummary(), app1Cookie2,
+                app1Cookie2.length));
+        info = list.get(1);
+        assertTrue(ArrayUtils.equals(info.getProcessStateSummary(), app1Cookie1,
+                app1Cookie1.length));
+
         // Case 3: Create an instance of app1 with different user, and died because of SIGKILL
         sleep(1);
         final long now3 = System.currentTimeMillis();
@@ -702,9 +741,19 @@
                 app1PackageName);             // packageName
 
         mAppExitInfoTracker.mIsolatedUidRecords.addIsolatedUid(app1IsolatedUid2User2, app1UidUser2);
+
+        // Pretent it gets an ANR trace too (although the reason here should be REASON_ANR)
+        final File traceFile = new File(mContext.getFilesDir(), "anr_original.txt");
+        final int traceSize = 10240;
+        final int traceStart = 1024;
+        final int traceEnd = 8192;
+        createRandomFile(traceFile, traceSize);
+        assertEquals(traceSize, traceFile.length());
+        mAppExitInfoTracker.handleLogAnrTrace(app.pid, app.uid, app.getPackageList(),
+                traceFile, traceStart, traceEnd);
+
         noteAppKill(app, ApplicationExitInfo.REASON_OTHER,
                 ApplicationExitInfo.SUBREASON_TOO_MANY_EMPTY, app1Description2);
-
         updateExitInfo(app);
         list.clear();
         mAppExitInfoTracker.getExitInfo(app1PackageName, app1UidUser2, app1Pid2User2, 1, list);
@@ -729,6 +778,10 @@
                 IMPORTANCE_CACHED,                            // importance
                 app1Description2);                            // description
 
+        // Verify if the traceFile get copied into the records correctly.
+        verifyTraceFile(traceFile, traceStart, info.getTraceFile(), 0, traceEnd - traceStart);
+        traceFile.delete();
+        info.getTraceFile().delete();
 
         // Case 9: User2 gets removed
         sleep(1);
@@ -801,8 +854,6 @@
         mAppExitInfoTracker.getExitInfo(null, app1Uid, 0, 0, original);
         assertTrue(original.size() > 0);
 
-        mAppExitInfoTracker.mProcExitInfoFile = new File(mContext.getFilesDir(),
-                AppExitInfoTracker.APP_EXIT_INFO_FILE);
         mAppExitInfoTracker.persistProcessExitInfo();
         assertTrue(mAppExitInfoTracker.mProcExitInfoFile.exists());
 
@@ -836,6 +887,37 @@
         }
     }
 
+    private static void createRandomFile(File file, int size) throws IOException {
+        try (BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file))) {
+            Random random = new Random();
+            byte[] buf = random.ints('a', 'z').limit(size).collect(
+                    StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
+                    .toString().getBytes();
+            out.write(buf);
+        }
+    }
+
+    private static void verifyTraceFile(File originFile, int originStart, File traceFile,
+            int traceStart, int length) throws IOException {
+        assertTrue(originFile.exists());
+        assertTrue(traceFile.exists());
+        assertTrue(originStart < originFile.length());
+        try (GZIPInputStream traceIn = new GZIPInputStream(new FileInputStream(traceFile));
+            BufferedInputStream originIn = new BufferedInputStream(
+                    new FileInputStream(originFile))) {
+            assertEquals(traceStart, traceIn.skip(traceStart));
+            assertEquals(originStart, originIn.skip(originStart));
+            byte[] buf1 = new byte[8192];
+            byte[] buf2 = new byte[8192];
+            while (length > 0) {
+                int len = traceIn.read(buf1, 0, Math.min(buf1.length, length));
+                assertEquals(len, originIn.read(buf2, 0, len));
+                assertTrue(ArrayUtils.equals(buf1, buf2, len));
+                length -= len;
+            }
+        }
+    }
+
     private ProcessRecord makeProcessRecord(int pid, int uid, int packageUid, Integer definingUid,
             int connectionGroup, int procState, long pss, long rss,
             String processName, String packageName) {
diff --git a/services/tests/mockingservicestests/src/com/android/server/blob/BlobStoreManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/blob/BlobStoreManagerServiceTest.java
index cd39144..f4d7b8b 100644
--- a/services/tests/mockingservicestests/src/com/android/server/blob/BlobStoreManagerServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/blob/BlobStoreManagerServiceTest.java
@@ -15,6 +15,7 @@
  */
 package com.android.server.blob;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doCallRealMethod;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
@@ -22,6 +23,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 
@@ -89,6 +92,7 @@
         doReturn(mBlobsDir).when(() -> BlobStoreConfig.getBlobsDir());
         doReturn(true).when(mBlobsDir).exists();
         doReturn(new File[0]).when(mBlobsDir).listFiles();
+        doReturn(true).when(() -> BlobStoreConfig.hasLeaseWaitTimeElapsed(anyLong()));
 
         mContext = InstrumentationRegistry.getTargetContext();
         mHandler = new TestHandler(Looper.getMainLooper());
@@ -138,19 +142,32 @@
         final long blobId1 = 978;
         final File blobFile1 = mock(File.class);
         final BlobHandle blobHandle1 = BlobHandle.createWithSha256("digest1".getBytes(),
-                "label1", System.currentTimeMillis(), "tag1");
-        final BlobMetadata blobMetadata1 = createBlobMetadataMock(blobId1, blobFile1, true);
+                "label1", System.currentTimeMillis() + 10000, "tag1");
+        final BlobMetadata blobMetadata1 = createBlobMetadataMock(blobId1, blobFile1,
+                blobHandle1, true /* hasLeases */);
+        doReturn(true).when(blobMetadata1).isACommitter(TEST_PKG1, TEST_UID1);
         mUserBlobs.put(blobHandle1, blobMetadata1);
 
         final long blobId2 = 347;
         final File blobFile2 = mock(File.class);
         final BlobHandle blobHandle2 = BlobHandle.createWithSha256("digest2".getBytes(),
-                "label2", System.currentTimeMillis(), "tag2");
-        final BlobMetadata blobMetadata2 = createBlobMetadataMock(blobId2, blobFile2, false);
+                "label2", System.currentTimeMillis() + 20000, "tag2");
+        final BlobMetadata blobMetadata2 = createBlobMetadataMock(blobId2, blobFile2,
+                blobHandle2, false /* hasLeases */);
+        doReturn(false).when(blobMetadata2).isACommitter(TEST_PKG1, TEST_UID1);
         mUserBlobs.put(blobHandle2, blobMetadata2);
 
+        final long blobId3 = 49875;
+        final File blobFile3 = mock(File.class);
+        final BlobHandle blobHandle3 = BlobHandle.createWithSha256("digest3".getBytes(),
+                "label3", System.currentTimeMillis() - 1000, "tag3");
+        final BlobMetadata blobMetadata3 = createBlobMetadataMock(blobId3, blobFile3,
+                blobHandle3, true /* hasLeases */);
+        doReturn(true).when(blobMetadata3).isACommitter(TEST_PKG1, TEST_UID1);
+        mUserBlobs.put(blobHandle3, blobMetadata3);
+
         mService.addActiveIdsForTest(sessionId1, sessionId2, sessionId3, sessionId4,
-                blobId1, blobId2);
+                blobId1, blobId2, blobId3);
 
         // Invoke test method
         mService.handlePackageRemoved(TEST_PKG1, TEST_UID1);
@@ -170,20 +187,24 @@
         // Verify blobs are removed
         verify(blobMetadata1).removeCommitter(TEST_PKG1, TEST_UID1);
         verify(blobMetadata1).removeLeasee(TEST_PKG1, TEST_UID1);
-        verify(blobMetadata2).removeCommitter(TEST_PKG1, TEST_UID1);
+        verify(blobMetadata2, never()).removeCommitter(TEST_PKG1, TEST_UID1);
         verify(blobMetadata2).removeLeasee(TEST_PKG1, TEST_UID1);
+        verify(blobMetadata3).removeCommitter(TEST_PKG1, TEST_UID1);
+        verify(blobMetadata3).removeLeasee(TEST_PKG1, TEST_UID1);
 
         verify(blobFile1, never()).delete();
         verify(blobFile2).delete();
+        verify(blobFile3).delete();
 
         assertThat(mUserBlobs.size()).isEqualTo(1);
         assertThat(mUserBlobs.get(blobHandle1)).isNotNull();
         assertThat(mUserBlobs.get(blobHandle2)).isNull();
+        assertThat(mUserBlobs.get(blobHandle3)).isNull();
 
         assertThat(mService.getActiveIdsForTest()).containsExactly(
                 sessionId2, sessionId3, blobId1);
         assertThat(mService.getKnownIdsForTest()).containsExactly(
-                sessionId1, sessionId2, sessionId3, sessionId4, blobId1, blobId2);
+                sessionId1, sessionId2, sessionId3, sessionId4, blobId1, blobId2, blobId3);
     }
 
     @Test
@@ -269,21 +290,24 @@
         final File blobFile1 = mock(File.class);
         final BlobHandle blobHandle1 = BlobHandle.createWithSha256("digest1".getBytes(),
                 "label1", System.currentTimeMillis() - 2000, "tag1");
-        final BlobMetadata blobMetadata1 = createBlobMetadataMock(blobId1, blobFile1, true);
+        final BlobMetadata blobMetadata1 = createBlobMetadataMock(blobId1, blobFile1, blobHandle1,
+                true /* hasLeases */);
         mUserBlobs.put(blobHandle1, blobMetadata1);
 
         final long blobId2 = 78974;
         final File blobFile2 = mock(File.class);
         final BlobHandle blobHandle2 = BlobHandle.createWithSha256("digest2".getBytes(),
                 "label2", System.currentTimeMillis() + 30000, "tag2");
-        final BlobMetadata blobMetadata2 = createBlobMetadataMock(blobId2, blobFile2, true);
+        final BlobMetadata blobMetadata2 = createBlobMetadataMock(blobId2, blobFile2, blobHandle2,
+                true /* hasLeases */);
         mUserBlobs.put(blobHandle2, blobMetadata2);
 
         final long blobId3 = 97;
         final File blobFile3 = mock(File.class);
         final BlobHandle blobHandle3 = BlobHandle.createWithSha256("digest3".getBytes(),
                 "label3", System.currentTimeMillis() + 4400000, "tag3");
-        final BlobMetadata blobMetadata3 = createBlobMetadataMock(blobId3, blobFile3, false);
+        final BlobMetadata blobMetadata3 = createBlobMetadataMock(blobId3, blobFile3, blobHandle3,
+                false /* hasLeases */);
         mUserBlobs.put(blobHandle3, blobMetadata3);
 
         mService.addActiveIdsForTest(blobId1, blobId2, blobId3);
@@ -350,11 +374,14 @@
         return session;
     }
 
-    private BlobMetadata createBlobMetadataMock(long blobId, File blobFile, boolean hasLeases) {
+    private BlobMetadata createBlobMetadataMock(long blobId, File blobFile,
+            BlobHandle blobHandle, boolean hasLeases) {
         final BlobMetadata blobMetadata = mock(BlobMetadata.class);
         doReturn(blobId).when(blobMetadata).getBlobId();
         doReturn(blobFile).when(blobMetadata).getBlobFile();
         doReturn(hasLeases).when(blobMetadata).hasLeases();
+        doReturn(blobHandle).when(blobMetadata).getBlobHandle();
+        doCallRealMethod().when(blobMetadata).shouldBeDeleted(anyBoolean());
         return blobMetadata;
     }
 
diff --git a/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java b/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java
index 307092d..5a42c4b 100644
--- a/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java
+++ b/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java
@@ -16,7 +16,9 @@
 
 package com.android.server.wallpaper;
 
+import static android.app.WallpaperManager.COMMAND_REAPPLY;
 import static android.app.WallpaperManager.FLAG_SYSTEM;
+import static android.view.Display.DEFAULT_DISPLAY;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
@@ -34,6 +36,7 @@
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.verify;
 
 import android.app.AppGlobals;
 import android.app.AppOpsManager;
@@ -49,6 +52,7 @@
 import android.os.UserHandle;
 import android.platform.test.annotations.Presubmit;
 import android.service.wallpaper.IWallpaperConnection;
+import android.service.wallpaper.IWallpaperEngine;
 import android.service.wallpaper.WallpaperService;
 import android.testing.TestableContext;
 import android.util.Log;
@@ -110,6 +114,7 @@
     public final TemporaryFolder mFolder = new TemporaryFolder();
     private final SparseArray<File> mTempDirs = new SparseArray<>();
     private WallpaperManagerService mService;
+    private static IWallpaperConnection.Stub sWallpaperService;
 
     @BeforeClass
     public static void setUpClass() {
@@ -134,7 +139,7 @@
         doNothing().when(sContext).sendBroadcastAsUser(any(), any());
 
         //Wallpaper components
-        final IWallpaperConnection.Stub wallpaperService = mock(IWallpaperConnection.Stub.class);
+        sWallpaperService = mock(IWallpaperConnection.Stub.class);
         sImageWallpaperComponentName = ComponentName.unflattenFromString(
                 sContext.getResources().getString(R.string.image_wallpaper_component));
         // Mock default wallpaper as image wallpaper if there is no pre-defined default wallpaper.
@@ -145,10 +150,10 @@
             doReturn(sImageWallpaperComponentName).when(() ->
                     WallpaperManager.getDefaultWallpaperComponent(any()));
         } else {
-            sContext.addMockService(sDefaultWallpaperComponent, wallpaperService);
+            sContext.addMockService(sDefaultWallpaperComponent, sWallpaperService);
         }
 
-        sContext.addMockService(sImageWallpaperComponentName, wallpaperService);
+        sContext.addMockService(sImageWallpaperComponentName, sWallpaperService);
     }
 
     @AfterClass
@@ -264,6 +269,30 @@
     }
 
     /**
+     * Tests that when setWallpaperComponent is called with the currently set component, a command
+     * is issued to the wallpaper.
+     */
+    @Test
+    public void testSetCurrentComponent() throws Exception {
+        final int testUserId = UserHandle.USER_SYSTEM;
+        mService.switchUser(testUserId, null);
+        verifyLastWallpaperData(testUserId, sDefaultWallpaperComponent);
+        verifyCurrentSystemData(testUserId);
+
+        spyOn(mService.mLastWallpaper.connection);
+        doReturn(true).when(mService.mLastWallpaper.connection).isUsableDisplay(any());
+        mService.mLastWallpaper.connection.attachEngine(mock(IWallpaperEngine.class),
+                DEFAULT_DISPLAY);
+
+        WallpaperManagerService.WallpaperConnection.DisplayConnector connector =
+                mService.mLastWallpaper.connection.getDisplayConnectorOrCreate(DEFAULT_DISPLAY);
+        mService.setWallpaperComponent(sDefaultWallpaperComponent);
+
+        verify(connector.mEngine).dispatchWallpaperCommand(
+                eq(COMMAND_REAPPLY), anyInt(), anyInt(), anyInt(), any());
+    }
+
+    /**
      * Tests internal data should be correct and no crash after switch user continuously.
      */
     @Test
diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp
index 449e75c..e58e911 100644
--- a/services/tests/servicestests/Android.bp
+++ b/services/tests/servicestests/Android.bp
@@ -91,7 +91,15 @@
         enabled: false,
     },
 
-    data: [":JobTestApp"],
+    data: [
+        ":JobTestApp",
+    ],
+
+    java_resources: [
+        ":PackageParserTestApp1",
+        ":PackageParserTestApp2",
+        ":PackageParserTestApp3",
+    ],
     resource_zips: [":FrameworksServicesTests_apks_as_resources"],
 }
 
diff --git a/services/tests/servicestests/AndroidManifest.xml b/services/tests/servicestests/AndroidManifest.xml
index 1212f20..109c119 100644
--- a/services/tests/servicestests/AndroidManifest.xml
+++ b/services/tests/servicestests/AndroidManifest.xml
@@ -15,218 +15,227 @@
 -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.android.frameworks.servicestests">
+     package="com.android.frameworks.servicestests">
 
-    <uses-permission android:name="android.permission.READ_LOGS" />
-    <uses-permission android:name="android.permission.ACCESS_VR_MANAGER" />
-    <uses-permission android:name="android.permission.ACCOUNT_MANAGER" />
-    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
-    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
-    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
-    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
-    <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
-    <uses-permission android:name="android.permission.MANAGE_APP_TOKENS" />
-    <uses-permission android:name="android.permission.WAKE_LOCK" />
-    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
-    <uses-permission android:name="android.permission.REAL_GET_TASKS" />
-    <uses-permission android:name="android.permission.GET_DETAILED_TASKS" />
-    <uses-permission android:name="android.permission.REORDER_TASKS" />
-    <uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
-    <uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY" />
-    <uses-permission android:name="android.permission.OBSERVE_NETWORK_POLICY" />
-    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
-    <uses-permission android:name="android.permission.MANAGE_USERS" />
-    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
-    <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
-    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
-    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
-    <uses-permission android:name="android.permission.PACKET_KEEPALIVE_OFFLOAD" />
-    <uses-permission android:name="android.permission.GET_INTENT_SENDER_INTENT" />
-    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />
-    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
-    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
-    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
-    <uses-permission android:name="android.permission.DELETE_PACKAGES" />
-    <uses-permission android:name="android.permission.GET_APP_OPS_STATS" />
-    <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
+    <uses-permission android:name="android.permission.READ_LOGS"/>
+    <uses-permission android:name="android.permission.ACCESS_VR_MANAGER"/>
+    <uses-permission android:name="android.permission.ACCOUNT_MANAGER"/>
+    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
+    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
+    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+    <uses-permission android:name="android.permission.BROADCAST_STICKY"/>
+    <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"/>
+    <uses-permission android:name="android.permission.MANAGE_APP_TOKENS"/>
+    <uses-permission android:name="android.permission.WAKE_LOCK"/>
+    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
+    <uses-permission android:name="android.permission.REAL_GET_TASKS"/>
+    <uses-permission android:name="android.permission.GET_DETAILED_TASKS"/>
+    <uses-permission android:name="android.permission.REORDER_TASKS"/>
+    <uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY"/>
+    <uses-permission android:name="android.permission.READ_NETWORK_USAGE_HISTORY"/>
+    <uses-permission android:name="android.permission.OBSERVE_NETWORK_POLICY"/>
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
+    <uses-permission android:name="android.permission.MANAGE_USERS"/>
+    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
+    <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS"/>
+    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
+    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
+    <uses-permission android:name="android.permission.INTERNET"/>
+    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
+    <uses-permission android:name="android.permission.PACKET_KEEPALIVE_OFFLOAD"/>
+    <uses-permission android:name="android.permission.GET_INTENT_SENDER_INTENT"/>
+    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS"/>
+    <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
+    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>
+    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
+    <uses-permission android:name="android.permission.DELETE_PACKAGES"/>
+    <uses-permission android:name="android.permission.GET_APP_OPS_STATS"/>
+    <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS"/>
     <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES"/>
-    <uses-permission android:name="android.permission.DEVICE_POWER" />
-    <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES" />
-    <uses-permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST" />
-    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
-    <uses-permission android:name="android.permission.STATUS_BAR_SERVICE" />
-    <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
-    <uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-    <uses-permission android:name="android.permission.STORAGE_INTERNAL" />
-    <uses-permission android:name="android.permission.WATCH_APPOPS" />
+    <uses-permission android:name="android.permission.DEVICE_POWER"/>
+    <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/>
+    <uses-permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST"/>
+    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
+    <uses-permission android:name="android.permission.STATUS_BAR_SERVICE"/>
+    <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER"/>
+    <uses-permission android:name="android.permission.READ_FRAME_BUFFER"/>
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.STORAGE_INTERNAL"/>
+    <uses-permission android:name="android.permission.WATCH_APPOPS"/>
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
     <uses-permission android:name="android.permission.SUSPEND_APPS"/>
-    <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" />
-    <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
+    <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE"/>
+    <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/>
     <uses-permission android:name="android.permission.CONTROL_KEYGUARD"/>
     <uses-permission android:name="android.permission.MANAGE_BIND_INSTANT_SERVICE"/>
-    <uses-permission android:name="android.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS" />
-    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
-    <uses-permission android:name="android.permission.WRITE_DEVICE_CONFIG" />
+    <uses-permission android:name="android.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS"/>
+    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG"/>
+    <uses-permission android:name="android.permission.WRITE_DEVICE_CONFIG"/>
     <uses-permission android:name="android.permission.HARDWARE_TEST"/>
     <uses-permission android:name="android.permission.BLUETOOTH"/>
-    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
-    <uses-permission android:name="android.permission.DUMP" />
+    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
+    <uses-permission android:name="android.permission.DUMP"/>
     <uses-permission android:name="android.permission.READ_DREAM_STATE"/>
     <uses-permission android:name="android.permission.WRITE_DREAM_STATE"/>
 
     <!-- Uses API introduced in O (26) -->
     <uses-sdk android:minSdkVersion="1"
-          android:targetSdkVersion="26"/>
+         android:targetSdkVersion="26"/>
 
     <application android:testOnly="true">
-        <uses-library android:name="android.test.runner" />
+        <uses-library android:name="android.test.runner"/>
 
         <service android:name="com.android.server.accounts.TestAccountType1AuthenticatorService"
-            android:exported="false">
+             android:exported="false">
           <intent-filter>
-            <action android:name="android.accounts.AccountAuthenticator" />
+            <action android:name="android.accounts.AccountAuthenticator"/>
           </intent-filter>
           <meta-data android:name="android.accounts.AccountAuthenticator"
-              android:resource="@xml/test_account_type1_authenticator" />
+               android:resource="@xml/test_account_type1_authenticator"/>
         </service>
 
         <service android:name="com.android.server.accounts.TestAccountType2AuthenticatorService"
-            android:exported="false">
+             android:exported="false">
           <intent-filter>
-            <action android:name="android.accounts.AccountAuthenticator" />
+            <action android:name="android.accounts.AccountAuthenticator"/>
           </intent-filter>
           <meta-data android:name="android.accounts.AccountAuthenticator"
-              android:resource="@xml/test_account_type2_authenticator" />
+               android:resource="@xml/test_account_type2_authenticator"/>
         </service>
 
         <receiver android:name="com.android.server.devicepolicy.ApplicationRestrictionsTest$AdminReceiver"
-                android:permission="android.permission.BIND_DEVICE_ADMIN">
+             android:permission="android.permission.BIND_DEVICE_ADMIN">
             <meta-data android:name="android.app.device_admin"
-                       android:resource="@xml/device_admin_sample" />
+                 android:resource="@xml/device_admin_sample"/>
             <intent-filter>
-                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
+                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
             </intent-filter>
         </receiver>
 
         <receiver android:name="com.android.server.devicepolicy.DummyDeviceAdmins$Admin1"
-            android:permission="android.permission.BIND_DEVICE_ADMIN">
+             android:permission="android.permission.BIND_DEVICE_ADMIN">
             <meta-data android:name="android.app.device_admin"
-                android:resource="@xml/device_admin_sample" />
+                 android:resource="@xml/device_admin_sample"/>
             <intent-filter>
-                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
+                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
             </intent-filter>
         </receiver>
 
         <receiver android:name="com.android.server.devicepolicy.DummyDeviceAdmins$Admin2"
-            android:permission="android.permission.BIND_DEVICE_ADMIN">
+             android:permission="android.permission.BIND_DEVICE_ADMIN">
             <meta-data android:name="android.app.device_admin"
-                android:resource="@xml/device_admin_sample" />
+                 android:resource="@xml/device_admin_sample"/>
             <intent-filter>
-                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
+                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
             </intent-filter>
         </receiver>
 
         <receiver android:name="com.android.server.devicepolicy.DummyDeviceAdmins$Admin3"
-            android:permission="android.permission.BIND_DEVICE_ADMIN">
+             android:permission="android.permission.BIND_DEVICE_ADMIN">
             <meta-data android:name="android.app.device_admin"
-                android:resource="@xml/device_admin_sample" />
+                 android:resource="@xml/device_admin_sample"/>
             <intent-filter>
-                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
+                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
             </intent-filter>
         </receiver>
 
         <receiver android:name="com.android.server.devicepolicy.DummyDeviceAdmins$AdminNoPerm">
             <meta-data android:name="android.app.device_admin"
-                android:resource="@xml/device_admin_sample" />
+                 android:resource="@xml/device_admin_sample"/>
             <intent-filter>
-                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
+                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
             </intent-filter>
         </receiver>
 
         <service android:name="com.android.server.job.MockPriorityJobService"
-                 android:permission="android.permission.BIND_JOB_SERVICE" />
+             android:permission="android.permission.BIND_JOB_SERVICE"/>
 
-        <activity android:name="com.android.server.pm.BaseShortcutManagerTest$ShortcutActivity" />
-        <activity android:name="com.android.server.pm.BaseShortcutManagerTest$ShortcutActivity2" />
-        <activity android:name="com.android.server.pm.BaseShortcutManagerTest$ShortcutActivity3" />
+        <activity android:name="com.android.server.pm.BaseShortcutManagerTest$ShortcutActivity"/>
+        <activity android:name="com.android.server.pm.BaseShortcutManagerTest$ShortcutActivity2"/>
+        <activity android:name="com.android.server.pm.BaseShortcutManagerTest$ShortcutActivity3"/>
 
         <activity android:name="com.android.server.pm.ShortcutTestActivity"
-                 android:enabled="true" android:exported="true" />
+             android:enabled="true"
+             android:exported="true"/>
 
         <activity android:name="com.android.server.pm.SuspendedDetailsActivity"
-                  android:enabled="true"
-                  android:permission="android.permission.SEND_SHOW_SUSPENDED_APP_DETAILS">
+             android:enabled="true"
+             android:permission="android.permission.SEND_SHOW_SUSPENDED_APP_DETAILS">
             <intent-filter>
-                <action android:name="android.intent.action.SHOW_SUSPENDED_APP_DETAILS" />
-                <category android:name="android.intent.category.DEFAULT" />
+                <action android:name="android.intent.action.SHOW_SUSPENDED_APP_DETAILS"/>
+                <category android:name="android.intent.category.DEFAULT"/>
             </intent-filter>
         </activity>
 
-        <activity android:name="com.android.server.accounts.AccountAuthenticatorDummyActivity" />
-        <activity android:name="com.android.server.adb.AdbDebuggingManagerTestActivity" />
+        <activity android:name="com.android.server.accounts.AccountAuthenticatorDummyActivity"/>
+        <activity android:name="com.android.server.adb.AdbDebuggingManagerTestActivity"/>
 
         <activity-alias android:name="a.ShortcutEnabled"
-            android:targetActivity="com.android.server.pm.ShortcutTestActivity"
-            android:enabled="true" android:exported="true">
+             android:targetActivity="com.android.server.pm.ShortcutTestActivity"
+             android:enabled="true"
+             android:exported="true">
         </activity-alias>
         <activity-alias android:name="a.ShortcutDisabled"
-            android:targetActivity="com.android.server.pm.ShortcutTestActivity"
-            android:enabled="false" android:exported="true">
-            <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcut_5"/>
+             android:targetActivity="com.android.server.pm.ShortcutTestActivity"
+             android:enabled="false"
+             android:exported="true">
+            <meta-data android:name="android.app.shortcuts"
+                 android:resource="@xml/shortcut_5"/>
         </activity-alias>
         <activity-alias android:name="a.ShortcutUnexported"
-            android:targetActivity="com.android.server.pm.ShortcutTestActivity"
-            android:enabled="true" android:exported="false">
-            <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcut_5"/>
+             android:targetActivity="com.android.server.pm.ShortcutTestActivity"
+             android:enabled="true"
+             android:exported="false">
+            <meta-data android:name="android.app.shortcuts"
+                 android:resource="@xml/shortcut_5"/>
         </activity-alias>
         <activity-alias android:name="a.Shortcut1"
-            android:targetActivity="com.android.server.pm.ShortcutTestActivity"
-            android:enabled="true" android:exported="true">
-            <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcut_1"/>
+             android:targetActivity="com.android.server.pm.ShortcutTestActivity"
+             android:enabled="true"
+             android:exported="true">
+            <meta-data android:name="android.app.shortcuts"
+                 android:resource="@xml/shortcut_1"/>
         </activity-alias>
         <activity-alias android:name="a.ShortcutConfigActivity"
-                        android:targetActivity="com.android.server.pm.ShortcutTestActivity">
+             android:targetActivity="com.android.server.pm.ShortcutTestActivity">
             <intent-filter>
-                <action android:name="android.intent.action.CREATE_SHORTCUT" />
+                <action android:name="android.intent.action.CREATE_SHORTCUT"/>
             </intent-filter>
         </activity-alias>
 
         <activity-alias android:name="a.DisabledMain"
-            android:targetActivity="com.android.server.pm.ShortcutTestActivity"
-            android:enabled="false" android:exported="true">
+             android:targetActivity="com.android.server.pm.ShortcutTestActivity"
+             android:enabled="false"
+             android:exported="true">
             <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.LAUNCHER" />
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
             </intent-filter>
         </activity-alias>
 
         <activity-alias android:name="a.UnexportedMain"
-            android:targetActivity="com.android.server.pm.ShortcutTestActivity"
-            android:enabled="true" android:exported="false">
+             android:targetActivity="com.android.server.pm.ShortcutTestActivity"
+             android:enabled="true"
+             android:exported="false">
             <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.LAUNCHER" />
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
             </intent-filter>
         </activity-alias>
 
         <receiver android:name="com.android.server.appwidget.DummyAppWidget">
             <intent-filter>
-                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
+                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
             </intent-filter>
             <meta-data android:name="android.appwidget.provider"
-              android:resource="@xml/dummy_appwidget_info" />
+                 android:resource="@xml/dummy_appwidget_info"/>
         </receiver>
     </application>
 
-    <instrumentation
-        android:name="androidx.test.runner.AndroidJUnitRunner"
-        android:targetPackage="com.android.frameworks.servicestests"
-        android:label="Frameworks Services Tests" />
+    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
+         android:targetPackage="com.android.frameworks.servicestests"
+         android:label="Frameworks Services Tests"/>
 </manifest>
diff --git a/services/tests/servicestests/src/com/android/server/MountServiceTests.java b/services/tests/servicestests/src/com/android/server/MountServiceTests.java
deleted file mode 100644
index b1b3174..0000000
--- a/services/tests/servicestests/src/com/android/server/MountServiceTests.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.content.res.Resources.NotFoundException;
-import android.os.FileUtils;
-import android.os.storage.OnObbStateChangeListener;
-import android.os.storage.StorageManager;
-import android.test.AndroidTestCase;
-import android.test.ComparisonFailure;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.util.Log;
-
-import com.android.frameworks.servicestests.R;
-
-import java.io.File;
-import java.io.InputStream;
-
-public class MountServiceTests extends AndroidTestCase {
-    private static final String TAG = "MountServiceTests";
-
-    private static final long MAX_WAIT_TIME = 25*1000;
-    private static final long WAIT_TIME_INCR = 5*1000;
-
-    private static final String OBB_MOUNT_PREFIX = "/mnt/obb/";
-
-    private static void assertStartsWith(String message, String prefix, String actual) {
-        if (!actual.startsWith(prefix)) {
-            throw new ComparisonFailure(message, prefix, actual);
-        }
-    }
-
-    private static class ObbObserver extends OnObbStateChangeListener {
-        private String path;
-
-        public int state = -1;
-        boolean done = false;
-
-        @Override
-        public void onObbStateChange(String path, int state) {
-            Log.d(TAG, "Received message.  path=" + path + ", state=" + state);
-            synchronized (this) {
-                this.path = path;
-                this.state = state;
-                done = true;
-                notifyAll();
-            }
-        }
-
-        public String getPath() {
-            assertTrue("Expected ObbObserver to have received a state change.", done);
-            return path;
-        }
-
-        public int getState() {
-            assertTrue("Expected ObbObserver to have received a state change.", done);
-            return state;
-        }
-
-        public void reset() {
-            this.path = null;
-            this.state = -1;
-            done = false;
-        }
-
-        public boolean isDone() {
-            return done;
-        }
-
-        public boolean waitForCompletion() {
-            long waitTime = 0;
-            synchronized (this) {
-                while (!isDone() && waitTime < MAX_WAIT_TIME) {
-                    try {
-                        wait(WAIT_TIME_INCR);
-                        waitTime += WAIT_TIME_INCR;
-                    } catch (InterruptedException e) {
-                        Log.i(TAG, "Interrupted during sleep", e);
-                    }
-                }
-            }
-
-            return isDone();
-        }
-    }
-
-    private File getFilePath(String name) {
-        final File filesDir = mContext.getFilesDir();
-        final File outFile = new File(filesDir, name);
-        return outFile;
-    }
-
-    private void copyRawToFile(int rawResId, File outFile) {
-        Resources res = mContext.getResources();
-        InputStream is = null;
-        try {
-            is = res.openRawResource(rawResId);
-        } catch (NotFoundException e) {
-            fail("Failed to load resource with id: " + rawResId);
-        }
-        FileUtils.setPermissions(outFile.getPath(), FileUtils.S_IRWXU | FileUtils.S_IRWXG
-                | FileUtils.S_IRWXO, -1, -1);
-        assertTrue(FileUtils.copyToFile(is, outFile));
-        FileUtils.setPermissions(outFile.getPath(), FileUtils.S_IRWXU | FileUtils.S_IRWXG
-                | FileUtils.S_IRWXO, -1, -1);
-    }
-
-    private StorageManager getStorageManager() {
-        return (StorageManager) getContext().getSystemService(Context.STORAGE_SERVICE);
-    }
-
-    private void mountObb(StorageManager sm, final int resource, final File file,
-            int expectedState) {
-        copyRawToFile(resource, file);
-
-        final ObbObserver observer = new ObbObserver();
-        assertTrue("mountObb call on " + file.getPath() + " should succeed",
-                sm.mountObb(file.getPath(), null, observer));
-
-        assertTrue("Mount should have completed",
-                observer.waitForCompletion());
-
-        if (expectedState == OnObbStateChangeListener.MOUNTED) {
-            assertTrue("OBB should be mounted", sm.isObbMounted(file.getPath()));
-        }
-
-        assertEquals("Actual file and resolved file should be the same",
-                file.getPath(), observer.getPath());
-
-        assertEquals(expectedState, observer.getState());
-    }
-
-    private ObbObserver mountObbWithoutWait(final StorageManager sm, final int resource,
-            final File file) {
-        copyRawToFile(resource, file);
-
-        final ObbObserver observer = new ObbObserver();
-        assertTrue("mountObb call on " + file.getPath() + " should succeed", sm.mountObb(file
-                .getPath(), null, observer));
-
-        return observer;
-    }
-
-    private void waitForObbActionCompletion(final StorageManager sm, final File file,
-            final ObbObserver observer, int expectedState, boolean checkPath) {
-        assertTrue("Mount should have completed", observer.waitForCompletion());
-
-        assertTrue("OBB should be mounted", sm.isObbMounted(file.getPath()));
-
-        if (checkPath) {
-            assertEquals("Actual file and resolved file should be the same", file.getPath(),
-                    observer.getPath());
-        }
-
-        assertEquals(expectedState, observer.getState());
-    }
-
-    private String checkMountedPath(final StorageManager sm, final File file) {
-        final String mountPath = sm.getMountedObbPath(file.getPath());
-        assertStartsWith("Path should be in " + OBB_MOUNT_PREFIX,
-                OBB_MOUNT_PREFIX,
-                mountPath);
-        return mountPath;
-    }
-
-    private void unmountObb(final StorageManager sm, final File file, int expectedState) {
-        final ObbObserver observer = new ObbObserver();
-
-        assertTrue("unmountObb call on test1.obb should succeed",
-                sm.unmountObb(file.getPath(), false, observer));
-
-        assertTrue("Unmount should have completed",
-                observer.waitForCompletion());
-
-        assertEquals(expectedState, observer.getState());
-
-        if (expectedState == OnObbStateChangeListener.UNMOUNTED) {
-            assertFalse("OBB should not be mounted", sm.isObbMounted(file.getPath()));
-        }
-    }
-
-    @LargeTest
-    public void testMountAndUnmountObbNormal() {
-        StorageManager sm = getStorageManager();
-
-        final File outFile = getFilePath("test1.obb");
-
-        mountObb(sm, R.raw.test1, outFile, OnObbStateChangeListener.MOUNTED);
-
-        mountObb(sm, R.raw.test1, outFile, OnObbStateChangeListener.ERROR_ALREADY_MOUNTED);
-
-        final String mountPath = checkMountedPath(sm, outFile);
-        final File mountDir = new File(mountPath);
-
-        assertTrue("OBB mounted path should be a directory",
-                mountDir.isDirectory());
-
-        unmountObb(sm, outFile, OnObbStateChangeListener.UNMOUNTED);
-    }
-
-    @LargeTest
-    public void testAttemptMountNonObb() {
-        StorageManager sm = getStorageManager();
-
-        final File outFile = getFilePath("test1_nosig.obb");
-
-        try {
-            mountObb(sm, R.raw.test1_nosig, outFile, OnObbStateChangeListener.ERROR_INTERNAL);
-            fail("mountObb should've failed with an exception");
-        } catch (IllegalArgumentException e) {
-            // Expected
-        }
-
-        assertFalse("OBB should not be mounted",
-                sm.isObbMounted(outFile.getPath()));
-
-        assertNull("OBB's mounted path should be null",
-                sm.getMountedObbPath(outFile.getPath()));
-    }
-
-    @LargeTest
-    public void testAttemptMountObbWrongPackage() {
-        StorageManager sm = getStorageManager();
-
-        final File outFile = getFilePath("test1_wrongpackage.obb");
-
-        mountObb(sm, R.raw.test1_wrongpackage, outFile,
-                OnObbStateChangeListener.ERROR_PERMISSION_DENIED);
-
-        assertFalse("OBB should not be mounted",
-                sm.isObbMounted(outFile.getPath()));
-
-        assertNull("OBB's mounted path should be null",
-                sm.getMountedObbPath(outFile.getPath()));
-    }
-
-    @LargeTest
-    public void testMountAndUnmountTwoObbs() {
-        StorageManager sm = getStorageManager();
-
-        final File file1 = getFilePath("test1.obb");
-        final File file2 = getFilePath("test2.obb");
-
-        ObbObserver oo1 = mountObbWithoutWait(sm, R.raw.test1, file1);
-        ObbObserver oo2 = mountObbWithoutWait(sm, R.raw.test1, file2);
-
-        Log.d(TAG, "Waiting for OBB #1 to complete mount");
-        waitForObbActionCompletion(sm, file1, oo1, OnObbStateChangeListener.MOUNTED, false);
-        Log.d(TAG, "Waiting for OBB #2 to complete mount");
-        waitForObbActionCompletion(sm, file2, oo2, OnObbStateChangeListener.MOUNTED, false);
-
-        final String mountPath1 = checkMountedPath(sm, file1);
-        final File mountDir1 = new File(mountPath1);
-        assertTrue("OBB mounted path should be a directory", mountDir1.isDirectory());
-
-        final String mountPath2 = checkMountedPath(sm, file2);
-        final File mountDir2 = new File(mountPath2);
-        assertTrue("OBB mounted path should be a directory", mountDir2.isDirectory());
-
-        unmountObb(sm, file1, OnObbStateChangeListener.UNMOUNTED);
-        unmountObb(sm, file2, OnObbStateChangeListener.UNMOUNTED);
-    }
-}
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java
index ae8d554..7bf1d98 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java
@@ -47,7 +47,6 @@
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.nullValue;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
@@ -698,18 +697,8 @@
         assertThat(result, is(false));
     }
 
-    @Test
-    public void takeScreenshot_returnNull() {
-        // no checkAccessibilityAccess, should return null.
-        when(mMockSecurityPolicy.canTakeScreenshotLocked(mServiceConnection)).thenReturn(true);
-        when(mMockSecurityPolicy.checkAccessibilityAccess(mServiceConnection)).thenReturn(false);
-        mServiceConnection.takeScreenshot(Display.DEFAULT_DISPLAY, new RemoteCallback((result) -> {
-            assertNull(result);
-        }));
-    }
-
     @Test (expected = SecurityException.class)
-    public void takeScreenshot_throwSecurityException() {
+    public void takeScreenshot_withoutCapability_throwSecurityException() {
         // no canTakeScreenshot, should throw security exception.
         when(mMockSecurityPolicy.canTakeScreenshotLocked(mServiceConnection)).thenReturn(false);
         mServiceConnection.takeScreenshot(Display.DEFAULT_DISPLAY, new RemoteCallback((result) -> {
diff --git a/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java b/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java
index 3ad9054..d292526 100644
--- a/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java
@@ -64,10 +64,13 @@
 
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.AdditionalMatchers;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+import java.util.Random;
+
 @SmallTest
 public class BiometricServiceTest {
 
@@ -347,9 +350,19 @@
     }
 
     @Test
-    public void testAuthenticate_happyPathWithoutConfirmation() throws Exception {
+    public void testAuthenticate_happyPathWithoutConfirmation_strongBiometric() throws Exception {
         setupAuthForOnly(BiometricAuthenticator.TYPE_FINGERPRINT, Authenticators.BIOMETRIC_STRONG);
+        testAuthenticate_happyPathWithoutConfirmation(true /* isStrongBiometric */);
+    }
 
+    @Test
+    public void testAuthenticate_happyPathWithoutConfirmation_weakBiometric() throws Exception {
+        setupAuthForOnly(BiometricAuthenticator.TYPE_FINGERPRINT, Authenticators.BIOMETRIC_WEAK);
+        testAuthenticate_happyPathWithoutConfirmation(false /* isStrongBiometric */);
+    }
+
+    private void testAuthenticate_happyPathWithoutConfirmation(boolean isStrongBiometric)
+            throws Exception {
         // Start testing the happy path
         invokeAuthenticate(mBiometricService.mImpl, mReceiver1, false /* requireConfirmation */,
                 null /* authenticators */);
@@ -397,9 +410,11 @@
                 anyLong() /* sessionId */);
 
         // Hardware authenticated
+        final byte[] HAT = generateRandomHAT();
         mBiometricService.mInternalReceiver.onAuthenticationSucceeded(
                 false /* requireConfirmation */,
-                new byte[69] /* HAT */);
+                HAT,
+                isStrongBiometric /* isStrongBiometric */);
         waitForIdle();
         // Waiting for SystemUI to send dismissed callback
         assertEquals(mBiometricService.mCurrentAuthSession.mState,
@@ -413,7 +428,11 @@
                 null /* credentialAttestation */);
         waitForIdle();
         // HAT sent to keystore
-        verify(mBiometricService.mKeyStore).addAuthToken(any(byte[].class));
+        if (isStrongBiometric) {
+            verify(mBiometricService.mKeyStore).addAuthToken(AdditionalMatchers.aryEq(HAT));
+        } else {
+            verify(mBiometricService.mKeyStore, never()).addAuthToken(any(byte[].class));
+        }
         // Send onAuthenticated to client
         verify(mReceiver1).onAuthenticationSucceeded(
                 BiometricPrompt.AUTHENTICATION_RESULT_TYPE_BIOMETRIC);
@@ -447,16 +466,29 @@
     }
 
     @Test
-    public void testAuthenticate_happyPathWithConfirmation() throws Exception {
+    public void testAuthenticate_happyPathWithConfirmation_strongBiometric() throws Exception {
         setupAuthForOnly(BiometricAuthenticator.TYPE_FACE, Authenticators.BIOMETRIC_STRONG);
+        testAuthenticate_happyPathWithConfirmation(true /* isStrongBiometric */);
+    }
+
+    @Test
+    public void testAuthenticate_happyPathWithConfirmation_weakBiometric() throws Exception {
+        setupAuthForOnly(BiometricAuthenticator.TYPE_FACE, Authenticators.BIOMETRIC_WEAK);
+        testAuthenticate_happyPathWithConfirmation(false /* isStrongBiometric */);
+    }
+
+    private void testAuthenticate_happyPathWithConfirmation(boolean isStrongBiometric)
+            throws Exception {
         invokeAuthenticateAndStart(mBiometricService.mImpl, mReceiver1,
                 true /* requireConfirmation */, null /* authenticators */);
 
         // Test authentication succeeded goes to PENDING_CONFIRMATION and that the HAT is not
         // sent to KeyStore yet
+        final byte[] HAT = generateRandomHAT();
         mBiometricService.mInternalReceiver.onAuthenticationSucceeded(
                 true /* requireConfirmation */,
-                new byte[69] /* HAT */);
+                HAT,
+                isStrongBiometric /* isStrongBiometric */);
         waitForIdle();
         // Waiting for SystemUI to send confirmation callback
         assertEquals(mBiometricService.mCurrentAuthSession.mState,
@@ -468,7 +500,11 @@
                 BiometricPrompt.DISMISSED_REASON_BIOMETRIC_CONFIRMED,
                 null /* credentialAttestation */);
         waitForIdle();
-        verify(mBiometricService.mKeyStore).addAuthToken(any(byte[].class));
+        if (isStrongBiometric) {
+            verify(mBiometricService.mKeyStore).addAuthToken(AdditionalMatchers.aryEq(HAT));
+        } else {
+            verify(mBiometricService.mKeyStore, never()).addAuthToken(any(byte[].class));
+        }
         verify(mReceiver1).onAuthenticationSucceeded(
                 BiometricPrompt.AUTHENTICATION_RESULT_TYPE_BIOMETRIC);
     }
@@ -909,7 +945,8 @@
 
         mBiometricService.mInternalReceiver.onAuthenticationSucceeded(
                 true /* requireConfirmation */,
-                new byte[69] /* HAT */);
+                new byte[69] /* HAT */,
+                true /* isStrongBiometric */);
         mBiometricService.mInternalReceiver.onDialogDismissed(
                 BiometricPrompt.DISMISSED_REASON_USER_CANCEL, null /* credentialAttestation */);
         waitForIdle();
@@ -927,6 +964,7 @@
                 eq(BiometricAuthenticator.TYPE_FACE),
                 eq(BiometricConstants.BIOMETRIC_ERROR_USER_CANCELED),
                 eq(0 /* vendorCode */));
+        verify(mBiometricService.mKeyStore, never()).addAuthToken(any(byte[].class));
         assertNull(mBiometricService.mCurrentAuthSession);
     }
 
@@ -1238,20 +1276,6 @@
                 mFingerprintAuthenticator);
     }
 
-    @Test(expected = IllegalStateException.class)
-    public void testRegistrationWithUnsupportedStrength_throwsIllegalStateException()
-            throws Exception {
-        mBiometricService = new BiometricService(mContext, mInjector);
-        mBiometricService.onStart();
-
-        // Only STRONG and WEAK are supported. Let's enforce that CONVENIENCE cannot be
-        // registered. If there is a compelling reason, we can remove this constraint.
-        mBiometricService.mImpl.registerAuthenticator(
-                0 /* id */, 2 /* modality */,
-                Authenticators.BIOMETRIC_CONVENIENCE /* strength */,
-                mFingerprintAuthenticator);
-    }
-
     @Test(expected = IllegalArgumentException.class)
     public void testRegistrationWithNullAuthenticator_throwsIllegalArgumentException()
             throws Exception {
@@ -1508,4 +1532,13 @@
     private static void waitForIdle() {
         InstrumentationRegistry.getInstrumentation().waitForIdleSync();
     }
+
+    private byte[] generateRandomHAT() {
+        byte[] HAT = new byte[69];
+        Random random = new Random();
+        random.nextBytes(HAT);
+        return HAT;
+    }
+
+
 }
diff --git a/services/tests/servicestests/src/com/android/server/compat/PlatformCompatTest.java b/services/tests/servicestests/src/com/android/server/compat/PlatformCompatTest.java
index 72d8525..cef02ff 100644
--- a/services/tests/servicestests/src/com/android/server/compat/PlatformCompatTest.java
+++ b/services/tests/servicestests/src/com/android/server/compat/PlatformCompatTest.java
@@ -102,6 +102,7 @@
                 new CompatibilityChangeInfo(7L, "", -1, false, true, ""));
     }
 
+    @Test
     public void testListUIChanges() {
         mCompatConfig = CompatConfigBuilder.create(mBuildClassifier, mContext)
                 .addEnabledChangeWithId(1L)
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
index f57b5f2..baf551e 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
@@ -1405,8 +1405,8 @@
         assertEquals(admin2, dpms.getDeviceOwnerComponent(/* callingUserOnly =*/ false));
 
         // Then check getDeviceOwnerAdminLocked().
-        assertEquals(admin2, dpms.getDeviceOwnerAdminLocked().info.getComponent());
-        assertEquals(DpmMockContext.CALLER_UID, dpms.getDeviceOwnerAdminLocked().getUid());
+        assertEquals(admin2, getDeviceOwner().info.getComponent());
+        assertEquals(DpmMockContext.CALLER_UID, getDeviceOwner().getUid());
     }
 
     /**
@@ -1759,7 +1759,7 @@
         DpmTestUtils.assertRestrictions(
                 DpmTestUtils.newRestrictions(
                         UserManager.DISALLOW_ADD_USER, UserManager.DISALLOW_OUTGOING_CALLS),
-                dpms.getDeviceOwnerAdminLocked().ensureUserRestrictions()
+                getDeviceOwner().ensureUserRestrictions()
         );
         DpmTestUtils.assertRestrictions(
                 DpmTestUtils.newRestrictions(
@@ -1776,7 +1776,7 @@
 
         DpmTestUtils.assertRestrictions(
                 DpmTestUtils.newRestrictions(UserManager.DISALLOW_OUTGOING_CALLS),
-                dpms.getDeviceOwnerAdminLocked().ensureUserRestrictions()
+                getDeviceOwner().ensureUserRestrictions()
         );
         DpmTestUtils.assertRestrictions(
                 DpmTestUtils.newRestrictions(UserManager.DISALLOW_OUTGOING_CALLS),
@@ -1834,6 +1834,18 @@
         reset(getServices().userManagerInternal);
     }
 
+    private DevicePolicyManagerService.ActiveAdmin getDeviceOwner() {
+        ComponentName component = dpms.mOwners.getDeviceOwnerComponent();
+        DevicePolicyManagerService.DevicePolicyData policy =
+                dpms.getUserData(dpms.mOwners.getDeviceOwnerUserId());
+        for (DevicePolicyManagerService.ActiveAdmin admin : policy.mAdminList) {
+            if (component.equals(admin.info.getComponent())) {
+                return admin;
+            }
+        }
+        return null;
+    }
+
     public void testDaDisallowedPolicies_SecurityException() throws Exception {
         mContext.callerPermissions.add(permission.MANAGE_DEVICE_ADMINS);
         mContext.callerPermissions.add(permission.INTERACT_ACROSS_USERS_FULL);
@@ -2067,7 +2079,7 @@
     private void assertNoDeviceOwnerRestrictions() {
         DpmTestUtils.assertRestrictions(
                 DpmTestUtils.newRestrictions(),
-                dpms.getDeviceOwnerAdminLocked().ensureUserRestrictions()
+                getDeviceOwner().ensureUserRestrictions()
         );
         DpmTestUtils.assertRestrictions(
                 DpmTestUtils.newRestrictions(),
@@ -3193,6 +3205,7 @@
         when(getServices().userManager.canAddMoreManagedProfiles(UserHandle.USER_SYSTEM, true))
                 .thenReturn(true);
         setUserSetupCompleteForUser(false, UserHandle.USER_SYSTEM);
+        when(getServices().userManager.getProfileParent(UserHandle.USER_SYSTEM)).thenReturn(null);
 
         mContext.binder.callingUid = DpmMockContext.CALLER_SYSTEM_USER_UID;
     }
@@ -3234,6 +3247,7 @@
         when(getServices().userManager.canAddMoreManagedProfiles(UserHandle.USER_SYSTEM, true))
                 .thenReturn(true);
         setUserSetupCompleteForUser(true, UserHandle.USER_SYSTEM);
+        when(getServices().userManager.getProfileParent(UserHandle.USER_SYSTEM)).thenReturn(null);
 
         mContext.binder.callingUid = DpmMockContext.CALLER_SYSTEM_USER_UID;
     }
@@ -3605,14 +3619,14 @@
 
         when(getServices().ipackageManager.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS, 0))
                 .thenReturn(true);
-        when(getServices().userManagerForMock.isSplitSystemUser()).thenReturn(true);
+        when(getServices().userManagerForMock.isSplitSystemUser()).thenReturn(false);
         when(getServices().userManager.getProfileParent(DpmMockContext.CALLER_USER_HANDLE))
             .thenReturn(new UserInfo(UserHandle.USER_SYSTEM, "user system", 0));
         when(getServices().userManager.canAddMoreManagedProfiles(DpmMockContext.CALLER_USER_HANDLE,
                 true)).thenReturn(true);
         setUserSetupCompleteForUser(false, DpmMockContext.CALLER_USER_HANDLE);
 
-        mContext.binder.callingUid = DpmMockContext.CALLER_UID;
+        mContext.binder.callingUid = DpmMockContext.ANOTHER_UID;
     }
 
     public void testIsProvisioningAllowed_provisionManagedProfileWithDeviceOwner_primaryUser()
@@ -4255,12 +4269,14 @@
         mContext.binder.callingUid = DpmMockContext.CALLER_UID;
 
         // Initial state is disabled.
-        assertFalse(dpm.isSecondaryLockscreenEnabled(DpmMockContext.CALLER_USER_HANDLE));
+        assertFalse(dpm.isSecondaryLockscreenEnabled(UserHandle.of(
+                DpmMockContext.CALLER_USER_HANDLE)));
 
         // Profile owner can set enabled state.
         setAsProfileOwner(admin1);
         dpm.setSecondaryLockscreenEnabled(admin1, true);
-        assertTrue(dpm.isSecondaryLockscreenEnabled(DpmMockContext.CALLER_USER_HANDLE));
+        assertTrue(dpm.isSecondaryLockscreenEnabled(UserHandle.of(
+                DpmMockContext.CALLER_USER_HANDLE)));
 
         // Managed profile managed by different package is unaffiliated - cannot set enabled.
         final int managedProfileUserId = 15;
@@ -4277,24 +4293,26 @@
         mContext.binder.callingUid = DpmMockContext.CALLER_SYSTEM_USER_UID;
 
         // Initial state is disabled.
-        assertFalse(dpm.isSecondaryLockscreenEnabled(UserHandle.USER_SYSTEM));
+        assertFalse(dpm.isSecondaryLockscreenEnabled(UserHandle.of(UserHandle.USER_SYSTEM)));
 
         // Device owners can set enabled state.
         setupDeviceOwner();
         dpm.setSecondaryLockscreenEnabled(admin1, true);
-        assertTrue(dpm.isSecondaryLockscreenEnabled(UserHandle.USER_SYSTEM));
+        assertTrue(dpm.isSecondaryLockscreenEnabled(UserHandle.of(UserHandle.USER_SYSTEM)));
     }
 
     public void testSecondaryLockscreen_nonOwner() throws Exception {
         mContext.binder.callingUid = DpmMockContext.CALLER_UID;
 
         // Initial state is disabled.
-        assertFalse(dpm.isSecondaryLockscreenEnabled(DpmMockContext.CALLER_USER_HANDLE));
+        assertFalse(dpm.isSecondaryLockscreenEnabled(UserHandle.of(
+                DpmMockContext.CALLER_USER_HANDLE)));
 
         // Non-DO/PO cannot set enabled state.
         assertExpectException(SecurityException.class, /* messageRegex= */ null,
                 () -> dpm.setSecondaryLockscreenEnabled(admin1, true));
-        assertFalse(dpm.isSecondaryLockscreenEnabled(DpmMockContext.CALLER_USER_HANDLE));
+        assertFalse(dpm.isSecondaryLockscreenEnabled(UserHandle.of(
+                DpmMockContext.CALLER_USER_HANDLE)));
     }
 
     public void testIsDeviceManaged() throws Exception {
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestUtils.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestUtils.java
index 2882b88..afb5e55 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestUtils.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmTestUtils.java
@@ -25,6 +25,8 @@
 import android.util.Log;
 import android.util.Printer;
 
+import com.android.server.pm.RestrictionsSet;
+
 import libcore.io.Streams;
 
 import com.google.android.collect.Lists;
@@ -35,7 +37,6 @@
 
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
@@ -58,6 +59,13 @@
         return list == null ? 0 : list.size();
     }
 
+    public static RestrictionsSet newRestrictions(int userId, String... restrictions) {
+        Bundle localRestrictionsBundle = newRestrictions(restrictions);
+        RestrictionsSet localRestrictions = new RestrictionsSet();
+        localRestrictions.updateRestrictions(userId, localRestrictionsBundle);
+        return localRestrictions;
+    }
+
     public static Bundle newRestrictions(String... restrictions) {
         final Bundle ret = new Bundle();
         for (String restriction : restrictions) {
@@ -66,6 +74,17 @@
         return ret;
     }
 
+    public static void assertRestrictions(RestrictionsSet expected, RestrictionsSet actual) {
+        assertEquals(expected.size(), actual.size());
+
+        for (int i = 0; i < expected.size(); i++) {
+            int originatingUserId = expected.keyAt(i);
+            Bundle actualRestrictions = actual.getRestrictions(originatingUserId);
+            assertFalse(actualRestrictions.isEmpty());
+            assertRestrictions(expected.getRestrictions(originatingUserId), actualRestrictions);
+        }
+    }
+
     public static void assertRestrictions(Bundle expected, Bundle actual) {
         final ArrayList<String> elist;
         if (expected == null) {
diff --git a/services/tests/servicestests/src/com/android/server/location/gnss/GnssManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/location/gnss/GnssManagerServiceTest.java
index a99c982..be2a5c5 100644
--- a/services/tests/servicestests/src/com/android/server/location/gnss/GnssManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/location/gnss/GnssManagerServiceTest.java
@@ -61,17 +61,9 @@
 
 import com.android.server.LocalServices;
 import com.android.server.location.AppForegroundHelper;
-import com.android.server.location.GnssAntennaInfoProvider;
-import com.android.server.location.GnssAntennaInfoProvider.GnssAntennaInfoProviderNative;
-import com.android.server.location.GnssBatchingProvider;
-import com.android.server.location.GnssCapabilitiesProvider;
-import com.android.server.location.GnssLocationProvider;
-import com.android.server.location.GnssMeasurementCorrectionsProvider;
-import com.android.server.location.GnssMeasurementsProvider;
-import com.android.server.location.GnssMeasurementsProvider.GnssMeasurementProviderNative;
-import com.android.server.location.GnssNavigationMessageProvider;
-import com.android.server.location.GnssNavigationMessageProvider.GnssNavigationMessageProviderNative;
-import com.android.server.location.GnssStatusListenerHelper;
+import com.android.server.location.gnss.GnssAntennaInfoProvider.GnssAntennaInfoProviderNative;
+import com.android.server.location.gnss.GnssMeasurementsProvider.GnssMeasurementProviderNative;
+import com.android.server.location.gnss.GnssNavigationMessageProvider.GnssNavigationMessageProviderNative;
 import com.android.server.location.LocationUsageLogger;
 import com.android.server.location.SettingsHelper;
 
diff --git a/services/tests/servicestests/src/com/android/server/people/data/UsageStatsQueryHelperTest.java b/services/tests/servicestests/src/com/android/server/people/data/UsageStatsQueryHelperTest.java
index 7934d33..03d9ad5 100644
--- a/services/tests/servicestests/src/com/android/server/people/data/UsageStatsQueryHelperTest.java
+++ b/services/tests/servicestests/src/com/android/server/people/data/UsageStatsQueryHelperTest.java
@@ -21,15 +21,16 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyLong;
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.when;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
 import android.app.usage.UsageEvents;
+import android.app.usage.UsageStats;
 import android.app.usage.UsageStatsManagerInternal;
 import android.content.Context;
 import android.content.LocusId;
@@ -50,6 +51,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.function.Predicate;
@@ -58,7 +60,8 @@
 public final class UsageStatsQueryHelperTest {
 
     private static final int USER_ID_PRIMARY = 0;
-    private static final String PKG_NAME = "pkg";
+    private static final String PKG_NAME_1 = "pkg_1";
+    private static final String PKG_NAME_2 = "pkg_2";
     private static final String ACTIVITY_NAME = "TestActivity";
     private static final String SHORTCUT_ID = "abc";
     private static final LocusId LOCUS_ID_1 = new LocusId("locus_1");
@@ -80,7 +83,7 @@
         File testDir = new File(ctx.getCacheDir(), "testdir");
         ScheduledExecutorService scheduledExecutorService = new MockScheduledExecutorService();
 
-        mPackageData = new TestPackageData(PKG_NAME, USER_ID_PRIMARY, pkg -> false, pkg -> false,
+        mPackageData = new TestPackageData(PKG_NAME_1, USER_ID_PRIMARY, pkg -> false, pkg -> false,
                 scheduledExecutorService, testDir);
         mPackageData.mConversationStore.mConversationInfo = new ConversationInfo.Builder()
                 .setShortcutId(SHORTCUT_ID)
@@ -173,10 +176,72 @@
         assertEquals(createInAppConversationEvent(130_000L, 30), events.get(2));
     }
 
+    @Test
+    public void testQueryAppMovingToForegroundEvents() {
+        addUsageEvents(
+                createShortcutInvocationEvent(100_000L),
+                createActivityResumedEvent(110_000L),
+                createActivityStoppedEvent(120_000L),
+                createActivityResumedEvent(130_000L));
+
+        List<UsageEvents.Event> events = mHelper.queryAppMovingToForegroundEvents(USER_ID_PRIMARY,
+                90_000L,
+                200_000L);
+
+        assertEquals(2, events.size());
+        assertEquals(UsageEvents.Event.ACTIVITY_RESUMED, events.get(0).getEventType());
+        assertEquals(110_000L, events.get(0).getTimeStamp());
+        assertEquals(UsageEvents.Event.ACTIVITY_RESUMED, events.get(1).getEventType());
+        assertEquals(130_000L, events.get(1).getTimeStamp());
+    }
+
+    @Test
+    public void testQueryAppLaunchCount() {
+
+        UsageStats packageStats1 = createUsageStats(PKG_NAME_1, 2);
+        UsageStats packageStats2 = createUsageStats(PKG_NAME_1, 3);
+        UsageStats packageStats3 = createUsageStats(PKG_NAME_2, 1);
+        when(mUsageStatsManagerInternal.queryUsageStatsForUser(anyInt(), anyInt(), anyLong(),
+                anyLong(), anyBoolean())).thenReturn(
+                List.of(packageStats1, packageStats2, packageStats3));
+
+        Map<String, Integer> appLaunchCounts = mHelper.queryAppLaunchCount(USER_ID_PRIMARY, 90_000L,
+                200_000L, Set.of(PKG_NAME_1, PKG_NAME_2));
+
+        assertEquals(2, appLaunchCounts.size());
+        assertEquals(5, (long) appLaunchCounts.get(PKG_NAME_1));
+        assertEquals(1, (long) appLaunchCounts.get(PKG_NAME_2));
+    }
+
+    @Test
+    public void testQueryAppLaunchCount_packageNameFiltered() {
+
+        UsageStats packageStats1 = createUsageStats(PKG_NAME_1, 2);
+        UsageStats packageStats2 = createUsageStats(PKG_NAME_1, 3);
+        UsageStats packageStats3 = createUsageStats(PKG_NAME_2, 1);
+        when(mUsageStatsManagerInternal.queryUsageStatsForUser(anyInt(), anyInt(), anyLong(),
+                anyLong(), anyBoolean())).thenReturn(
+                List.of(packageStats1, packageStats2, packageStats3));
+
+        Map<String, Integer> appLaunchCounts = mHelper.queryAppLaunchCount(USER_ID_PRIMARY, 90_000L,
+                200_000L,
+                Set.of(PKG_NAME_1));
+
+        assertEquals(1, appLaunchCounts.size());
+        assertEquals(5, (long) appLaunchCounts.get(PKG_NAME_1));
+    }
+
     private void addUsageEvents(UsageEvents.Event... events) {
         UsageEvents usageEvents = new UsageEvents(Arrays.asList(events), new String[]{});
         when(mUsageStatsManagerInternal.queryEventsForUser(anyInt(), anyLong(), anyLong(),
-                eq(UsageEvents.SHOW_ALL_EVENT_DATA))).thenReturn(usageEvents);
+                anyInt())).thenReturn(usageEvents);
+    }
+
+    private static UsageStats createUsageStats(String packageName, int launchCount) {
+        UsageStats packageStats = new UsageStats();
+        packageStats.mPackageName = packageName;
+        packageStats.mAppLaunchCount = launchCount;
+        return packageStats;
     }
 
     private static <T> void addLocalServiceMock(Class<T> clazz, T mock) {
@@ -203,9 +268,15 @@
         return e;
     }
 
+    private static UsageEvents.Event createActivityResumedEvent(long timestamp) {
+        UsageEvents.Event e = createUsageEvent(UsageEvents.Event.ACTIVITY_RESUMED, timestamp);
+        e.mClass = ACTIVITY_NAME;
+        return e;
+    }
+
     private static UsageEvents.Event createUsageEvent(int eventType, long timestamp) {
         UsageEvents.Event e = new UsageEvents.Event(eventType, timestamp);
-        e.mPackage = PKG_NAME;
+        e.mPackage = PKG_NAME_1;
         return e;
     }
 
diff --git a/services/tests/servicestests/src/com/android/server/people/prediction/ShareTargetPredictorTest.java b/services/tests/servicestests/src/com/android/server/people/prediction/ShareTargetPredictorTest.java
index c6cd347..1480627 100644
--- a/services/tests/servicestests/src/com/android/server/people/prediction/ShareTargetPredictorTest.java
+++ b/services/tests/servicestests/src/com/android/server/people/prediction/ShareTargetPredictorTest.java
@@ -127,6 +127,9 @@
         when(mEventHistory1.getEventIndex(anySet())).thenReturn(mEventIndex1);
         when(mEventHistory2.getEventIndex(anySet())).thenReturn(mEventIndex2);
         when(mEventHistory3.getEventIndex(anySet())).thenReturn(mEventIndex3);
+        when(mEventHistory1.getEventIndex(anyInt())).thenReturn(mEventIndex1);
+        when(mEventHistory2.getEventIndex(anyInt())).thenReturn(mEventIndex2);
+        when(mEventHistory3.getEventIndex(anyInt())).thenReturn(mEventIndex3);
         when(mEventIndex1.getMostRecentActiveTimeSlot()).thenReturn(new Range<>(1L, 2L));
         when(mEventIndex2.getMostRecentActiveTimeSlot()).thenReturn(new Range<>(2L, 3L));
         when(mEventIndex3.getMostRecentActiveTimeSlot()).thenReturn(new Range<>(3L, 4L));
@@ -183,6 +186,12 @@
         when(mEventHistory4.getEventIndex(anySet())).thenReturn(mEventIndex4);
         when(mEventHistory5.getEventIndex(anySet())).thenReturn(mEventIndex5);
         when(mEventHistory6.getEventIndex(anySet())).thenReturn(mEventIndex6);
+        when(mEventHistory1.getEventIndex(anyInt())).thenReturn(mEventIndex1);
+        when(mEventHistory2.getEventIndex(anyInt())).thenReturn(mEventIndex2);
+        when(mEventHistory3.getEventIndex(anyInt())).thenReturn(mEventIndex3);
+        when(mEventHistory4.getEventIndex(anyInt())).thenReturn(mEventIndex4);
+        when(mEventHistory5.getEventIndex(anyInt())).thenReturn(mEventIndex5);
+        when(mEventHistory6.getEventIndex(anyInt())).thenReturn(mEventIndex6);
         when(mEventIndex1.getMostRecentActiveTimeSlot()).thenReturn(new Range<>(1L, 2L));
         when(mEventIndex2.getMostRecentActiveTimeSlot()).thenReturn(new Range<>(2L, 3L));
         when(mEventIndex3.getMostRecentActiveTimeSlot()).thenReturn(new Range<>(3L, 4L));
@@ -220,19 +229,19 @@
     @Test
     public void testSortTargets() {
         AppTarget appTarget1 = new AppTarget.Builder(
-                    new AppTargetId("cls1#pkg1"), PACKAGE_1, UserHandle.of(USER_ID))
+                new AppTargetId("cls1#pkg1"), PACKAGE_1, UserHandle.of(USER_ID))
                 .setClassName(CLASS_1)
                 .build();
         AppTarget appTarget2 = new AppTarget.Builder(
-                    new AppTargetId("cls2#pkg1"), PACKAGE_1, UserHandle.of(USER_ID))
+                new AppTargetId("cls2#pkg1"), PACKAGE_1, UserHandle.of(USER_ID))
                 .setClassName(CLASS_2)
                 .build();
         AppTarget appTarget3 = new AppTarget.Builder(
-                    new AppTargetId("cls1#pkg2"), PACKAGE_2, UserHandle.of(USER_ID))
+                new AppTargetId("cls1#pkg2"), PACKAGE_2, UserHandle.of(USER_ID))
                 .setClassName(CLASS_1)
                 .build();
         AppTarget appTarget4 = new AppTarget.Builder(
-                    new AppTargetId("cls2#pkg2"), PACKAGE_2, UserHandle.of(USER_ID))
+                new AppTargetId("cls2#pkg2"), PACKAGE_2, UserHandle.of(USER_ID))
                 .setClassName(CLASS_2)
                 .build();
         AppTarget appTarget5 = new AppTarget.Builder(
@@ -251,6 +260,10 @@
         when(mEventHistory2.getEventIndex(anySet())).thenReturn(mEventIndex2);
         when(mEventHistory3.getEventIndex(anySet())).thenReturn(mEventIndex3);
         when(mEventHistory4.getEventIndex(anySet())).thenReturn(mEventIndex4);
+        when(mEventHistory1.getEventIndex(anyInt())).thenReturn(mEventIndex1);
+        when(mEventHistory2.getEventIndex(anyInt())).thenReturn(mEventIndex2);
+        when(mEventHistory3.getEventIndex(anyInt())).thenReturn(mEventIndex3);
+        when(mEventHistory4.getEventIndex(anyInt())).thenReturn(mEventIndex4);
         when(mEventIndex1.getMostRecentActiveTimeSlot()).thenReturn(new Range<>(1L, 2L));
         when(mEventIndex2.getMostRecentActiveTimeSlot()).thenReturn(new Range<>(2L, 3L));
         when(mEventIndex3.getMostRecentActiveTimeSlot()).thenReturn(new Range<>(3L, 4L));
@@ -265,14 +278,14 @@
                 appTarget4, appTarget3, appTarget2, appTarget1, appTarget5);
     }
 
-    private ShareShortcutInfo buildShareShortcut(
+    private static ShareShortcutInfo buildShareShortcut(
             String packageName, String className, String shortcutId) {
         ShortcutInfo shortcutInfo = buildShortcut(packageName, shortcutId);
         ComponentName componentName = new ComponentName(packageName, className);
         return new ShareShortcutInfo(shortcutInfo, componentName);
     }
 
-    private ShortcutInfo buildShortcut(String packageName, String shortcutId) {
+    private static ShortcutInfo buildShortcut(String packageName, String shortcutId) {
         Context mockContext = mock(Context.class);
         when(mockContext.getPackageName()).thenReturn(packageName);
         when(mockContext.getUserId()).thenReturn(USER_ID);
diff --git a/services/tests/servicestests/src/com/android/server/people/prediction/SharesheetModelScorerTest.java b/services/tests/servicestests/src/com/android/server/people/prediction/SharesheetModelScorerTest.java
new file mode 100644
index 0000000..9d96d6b
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/people/prediction/SharesheetModelScorerTest.java
@@ -0,0 +1,406 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.prediction;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.anySet;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.prediction.AppTarget;
+import android.app.prediction.AppTargetId;
+import android.app.usage.UsageEvents;
+import android.os.UserHandle;
+import android.util.Range;
+
+import com.android.server.people.data.DataManager;
+import com.android.server.people.data.Event;
+import com.android.server.people.data.EventHistory;
+import com.android.server.people.data.EventIndex;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.time.Duration;
+import java.util.List;
+import java.util.Map;
+
+@RunWith(JUnit4.class)
+public final class SharesheetModelScorerTest {
+
+    private static final int USER_ID = 0;
+    private static final String PACKAGE_1 = "pkg1";
+    private static final String PACKAGE_2 = "pkg2";
+    private static final String PACKAGE_3 = "pkg3";
+    private static final String CLASS_1 = "cls1";
+    private static final String CLASS_2 = "cls2";
+    private static final double DELTA = 1e-6;
+    private static final long NOW = System.currentTimeMillis();
+    private static final Range<Long> WITHIN_ONE_DAY = new Range(
+            NOW - Duration.ofHours(23).toMillis(),
+            NOW - Duration.ofHours(22).toMillis());
+    private static final Range<Long> TWO_DAYS_AGO = new Range(
+            NOW - Duration.ofHours(50).toMillis(),
+            NOW - Duration.ofHours(49).toMillis());
+    private static final Range<Long> FIVE_DAYS_AGO = new Range(
+            NOW - Duration.ofDays(6).toMillis(),
+            NOW - Duration.ofDays(5).toMillis());
+    private static final Range<Long> EIGHT_DAYS_AGO = new Range(
+            NOW - Duration.ofDays(9).toMillis(),
+            NOW - Duration.ofDays(8).toMillis());
+    private static final Range<Long> TWELVE_DAYS_AGO = new Range(
+            NOW - Duration.ofDays(13).toMillis(),
+            NOW - Duration.ofDays(12).toMillis());
+    private static final Range<Long> TWENTY_DAYS_AGO = new Range(
+            NOW - Duration.ofDays(21).toMillis(),
+            NOW - Duration.ofDays(20).toMillis());
+    private static final Range<Long> FOUR_WEEKS_AGO = new Range(
+            NOW - Duration.ofDays(29).toMillis(),
+            NOW - Duration.ofDays(28).toMillis());
+
+    @Mock
+    private DataManager mDataManager;
+    @Mock
+    private EventHistory mEventHistory1;
+    @Mock
+    private EventHistory mEventHistory2;
+    @Mock
+    private EventHistory mEventHistory3;
+    @Mock
+    private EventHistory mEventHistory4;
+    @Mock
+    private EventHistory mEventHistory5;
+    @Mock
+    private EventIndex mEventIndex1;
+    @Mock
+    private EventIndex mEventIndex2;
+    @Mock
+    private EventIndex mEventIndex3;
+    @Mock
+    private EventIndex mEventIndex4;
+    @Mock
+    private EventIndex mEventIndex5;
+    @Mock
+    private EventIndex mEventIndex6;
+    @Mock
+    private EventIndex mEventIndex7;
+    @Mock
+    private EventIndex mEventIndex8;
+    @Mock
+    private EventIndex mEventIndex9;
+    @Mock
+    private EventIndex mEventIndex10;
+
+    private ShareTargetPredictor.ShareTarget mShareTarget1;
+    private ShareTargetPredictor.ShareTarget mShareTarget2;
+    private ShareTargetPredictor.ShareTarget mShareTarget3;
+    private ShareTargetPredictor.ShareTarget mShareTarget4;
+    private ShareTargetPredictor.ShareTarget mShareTarget5;
+    private ShareTargetPredictor.ShareTarget mShareTarget6;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mShareTarget1 = new ShareTargetPredictor.ShareTarget(
+                new AppTarget.Builder(
+                        new AppTargetId("cls1#pkg1"), PACKAGE_1, UserHandle.of(USER_ID))
+                        .setClassName(CLASS_1).build(),
+                mEventHistory1, null);
+        mShareTarget2 = new ShareTargetPredictor.ShareTarget(
+                new AppTarget.Builder(new AppTargetId("cls2#pkg1"), PACKAGE_1,
+                        UserHandle.of(USER_ID)).setClassName(CLASS_2).build(),
+                mEventHistory2, null);
+        mShareTarget3 = new ShareTargetPredictor.ShareTarget(
+                new AppTarget.Builder(
+                        new AppTargetId("cls1#pkg2"), PACKAGE_2, UserHandle.of(USER_ID))
+                        .setClassName(CLASS_1).build(),
+                mEventHistory3, null);
+        mShareTarget4 = new ShareTargetPredictor.ShareTarget(
+                new AppTarget.Builder(
+                        new AppTargetId("cls2#pkg2"), PACKAGE_2, UserHandle.of(USER_ID))
+                        .setClassName(CLASS_2).build(),
+                mEventHistory4, null);
+        mShareTarget5 = new ShareTargetPredictor.ShareTarget(
+                new AppTarget.Builder(
+                        new AppTargetId("cls1#pkg3"), PACKAGE_3, UserHandle.of(USER_ID))
+                        .setClassName(CLASS_1).build(),
+                mEventHistory5, null);
+        mShareTarget6 = new ShareTargetPredictor.ShareTarget(
+                new AppTarget.Builder(
+                        new AppTargetId("cls2#pkg3"), PACKAGE_3, UserHandle.of(USER_ID))
+                        .setClassName(CLASS_2).build(),
+                null, null);
+    }
+
+    @Test
+    public void testComputeScore() {
+        // Frequency and recency
+        when(mEventHistory1.getEventIndex(anySet())).thenReturn(mEventIndex1);
+        when(mEventHistory2.getEventIndex(anySet())).thenReturn(mEventIndex2);
+        when(mEventHistory3.getEventIndex(anySet())).thenReturn(mEventIndex3);
+        when(mEventHistory4.getEventIndex(anySet())).thenReturn(mEventIndex4);
+        when(mEventHistory5.getEventIndex(anySet())).thenReturn(mEventIndex5);
+
+        when(mEventIndex1.getActiveTimeSlots()).thenReturn(
+                List.of(WITHIN_ONE_DAY, TWO_DAYS_AGO, FIVE_DAYS_AGO));
+        when(mEventIndex2.getActiveTimeSlots()).thenReturn(List.of(TWO_DAYS_AGO, TWELVE_DAYS_AGO));
+        when(mEventIndex3.getActiveTimeSlots()).thenReturn(List.of(FIVE_DAYS_AGO, TWENTY_DAYS_AGO));
+        when(mEventIndex4.getActiveTimeSlots()).thenReturn(
+                List.of(EIGHT_DAYS_AGO, TWELVE_DAYS_AGO, FOUR_WEEKS_AGO));
+        when(mEventIndex5.getActiveTimeSlots()).thenReturn(List.of());
+
+        when(mEventIndex1.getMostRecentActiveTimeSlot()).thenReturn(WITHIN_ONE_DAY);
+        when(mEventIndex2.getMostRecentActiveTimeSlot()).thenReturn(TWO_DAYS_AGO);
+        when(mEventIndex3.getMostRecentActiveTimeSlot()).thenReturn(FIVE_DAYS_AGO);
+        when(mEventIndex4.getMostRecentActiveTimeSlot()).thenReturn(EIGHT_DAYS_AGO);
+        when(mEventIndex5.getMostRecentActiveTimeSlot()).thenReturn(null);
+
+        // Frequency of the same mime type
+        when(mEventHistory1.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex6);
+        when(mEventHistory2.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex7);
+        when(mEventHistory3.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex8);
+        when(mEventHistory4.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex9);
+        when(mEventHistory5.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex10);
+
+        when(mEventIndex6.getActiveTimeSlots()).thenReturn(List.of(TWO_DAYS_AGO));
+        when(mEventIndex7.getActiveTimeSlots()).thenReturn(List.of(TWO_DAYS_AGO, TWELVE_DAYS_AGO));
+        when(mEventIndex8.getActiveTimeSlots()).thenReturn(List.of());
+        when(mEventIndex9.getActiveTimeSlots()).thenReturn(List.of(EIGHT_DAYS_AGO));
+        when(mEventIndex10.getActiveTimeSlots()).thenReturn(List.of());
+
+        SharesheetModelScorer.computeScore(
+                List.of(mShareTarget1, mShareTarget2, mShareTarget3, mShareTarget4, mShareTarget5,
+                        mShareTarget6),
+                Event.TYPE_SHARE_TEXT,
+                NOW);
+
+        // Verification
+        assertEquals(0.514f, mShareTarget1.getScore(), DELTA);
+        assertEquals(0.475125f, mShareTarget2.getScore(), DELTA);
+        assertEquals(0.33f, mShareTarget3.getScore(), DELTA);
+        assertEquals(0.4411f, mShareTarget4.getScore(), DELTA);
+        assertEquals(0f, mShareTarget5.getScore(), DELTA);
+        assertEquals(0f, mShareTarget6.getScore(), DELTA);
+    }
+
+    @Test
+    public void testComputeScoreForAppShare() {
+        // Frequency and recency
+        when(mEventHistory1.getEventIndex(anySet())).thenReturn(mEventIndex1);
+        when(mEventHistory2.getEventIndex(anySet())).thenReturn(mEventIndex2);
+        when(mEventHistory3.getEventIndex(anySet())).thenReturn(mEventIndex3);
+        when(mEventHistory4.getEventIndex(anySet())).thenReturn(mEventIndex4);
+        when(mEventHistory5.getEventIndex(anySet())).thenReturn(mEventIndex5);
+
+        when(mEventIndex1.getActiveTimeSlots()).thenReturn(
+                List.of(WITHIN_ONE_DAY, TWO_DAYS_AGO, FIVE_DAYS_AGO));
+        when(mEventIndex2.getActiveTimeSlots()).thenReturn(List.of(TWO_DAYS_AGO, TWELVE_DAYS_AGO));
+        when(mEventIndex3.getActiveTimeSlots()).thenReturn(List.of(FIVE_DAYS_AGO, TWENTY_DAYS_AGO));
+        when(mEventIndex4.getActiveTimeSlots()).thenReturn(
+                List.of(EIGHT_DAYS_AGO, TWELVE_DAYS_AGO, FOUR_WEEKS_AGO));
+        when(mEventIndex5.getActiveTimeSlots()).thenReturn(List.of());
+
+        when(mEventIndex1.getMostRecentActiveTimeSlot()).thenReturn(WITHIN_ONE_DAY);
+        when(mEventIndex2.getMostRecentActiveTimeSlot()).thenReturn(TWO_DAYS_AGO);
+        when(mEventIndex3.getMostRecentActiveTimeSlot()).thenReturn(FIVE_DAYS_AGO);
+        when(mEventIndex4.getMostRecentActiveTimeSlot()).thenReturn(EIGHT_DAYS_AGO);
+        when(mEventIndex5.getMostRecentActiveTimeSlot()).thenReturn(null);
+
+        // Frequency of the same mime type
+        when(mEventHistory1.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex6);
+        when(mEventHistory2.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex7);
+        when(mEventHistory3.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex8);
+        when(mEventHistory4.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex9);
+        when(mEventHistory5.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex10);
+
+        when(mEventIndex6.getActiveTimeSlots()).thenReturn(List.of(TWO_DAYS_AGO));
+        when(mEventIndex7.getActiveTimeSlots()).thenReturn(List.of(TWO_DAYS_AGO, TWELVE_DAYS_AGO));
+        when(mEventIndex8.getActiveTimeSlots()).thenReturn(List.of());
+        when(mEventIndex9.getActiveTimeSlots()).thenReturn(List.of(EIGHT_DAYS_AGO));
+        when(mEventIndex10.getActiveTimeSlots()).thenReturn(List.of());
+
+        SharesheetModelScorer.computeScoreForAppShare(
+                List.of(mShareTarget1, mShareTarget2, mShareTarget3, mShareTarget4, mShareTarget5,
+                        mShareTarget6),
+                Event.TYPE_SHARE_TEXT, 20, NOW, mDataManager, USER_ID);
+
+        // Verification
+        assertEquals(0.514f, mShareTarget1.getScore(), DELTA);
+        assertEquals(0.475125f, mShareTarget2.getScore(), DELTA);
+        assertEquals(0.33f, mShareTarget3.getScore(), DELTA);
+        assertEquals(0.4411f, mShareTarget4.getScore(), DELTA);
+        assertEquals(0f, mShareTarget5.getScore(), DELTA);
+        assertEquals(0f, mShareTarget6.getScore(), DELTA);
+    }
+
+    @Test
+    public void testComputeScoreForAppShare_promoteFrequentlyUsedApps() {
+        when(mEventHistory1.getEventIndex(anySet())).thenReturn(mEventIndex1);
+        when(mEventHistory2.getEventIndex(anySet())).thenReturn(mEventIndex2);
+        when(mEventHistory3.getEventIndex(anySet())).thenReturn(mEventIndex3);
+        when(mEventHistory4.getEventIndex(anySet())).thenReturn(mEventIndex4);
+        when(mEventHistory5.getEventIndex(anySet())).thenReturn(mEventIndex5);
+        when(mEventHistory1.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex6);
+        when(mEventHistory2.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex7);
+        when(mEventHistory3.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex8);
+        when(mEventHistory4.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex9);
+        when(mEventHistory5.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex10);
+        when(mDataManager.queryAppLaunchCount(anyInt(), anyLong(), anyLong(), anySet()))
+                .thenReturn(
+                        Map.of(PACKAGE_1, 1,
+                                PACKAGE_2, 2,
+                                PACKAGE_3, 3));
+
+        SharesheetModelScorer.computeScoreForAppShare(
+                List.of(mShareTarget1, mShareTarget2, mShareTarget3, mShareTarget4, mShareTarget5,
+                        mShareTarget6),
+                Event.TYPE_SHARE_TEXT, 20, NOW, mDataManager, USER_ID);
+
+        verify(mDataManager, times(1)).queryAppLaunchCount(anyInt(), anyLong(), anyLong(),
+                anySet());
+        assertEquals(0.9f, mShareTarget5.getScore(), DELTA);
+        assertEquals(0.81f, mShareTarget3.getScore(), DELTA);
+        assertEquals(0.729f, mShareTarget1.getScore(), DELTA);
+        assertEquals(0f, mShareTarget2.getScore(), DELTA);
+        assertEquals(0f, mShareTarget4.getScore(), DELTA);
+        assertEquals(0f, mShareTarget6.getScore(), DELTA);
+    }
+
+    @Test
+    public void testComputeScoreForAppShare_skipPromoteFrequentlyUsedAppsWhenReachesLimit() {
+        when(mEventHistory1.getEventIndex(anySet())).thenReturn(mEventIndex1);
+        when(mEventHistory2.getEventIndex(anySet())).thenReturn(mEventIndex2);
+        when(mEventHistory3.getEventIndex(anySet())).thenReturn(mEventIndex3);
+        when(mEventHistory4.getEventIndex(anySet())).thenReturn(mEventIndex4);
+        when(mEventHistory5.getEventIndex(anySet())).thenReturn(mEventIndex5);
+        when(mEventHistory1.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex6);
+        when(mEventHistory2.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex7);
+        when(mEventHistory3.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex8);
+        when(mEventHistory4.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex9);
+        when(mEventHistory5.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex10);
+        when(mEventIndex1.getMostRecentActiveTimeSlot()).thenReturn(WITHIN_ONE_DAY);
+        when(mEventIndex2.getMostRecentActiveTimeSlot()).thenReturn(TWO_DAYS_AGO);
+        when(mEventIndex3.getMostRecentActiveTimeSlot()).thenReturn(FIVE_DAYS_AGO);
+        when(mEventIndex4.getMostRecentActiveTimeSlot()).thenReturn(EIGHT_DAYS_AGO);
+        when(mEventIndex5.getMostRecentActiveTimeSlot()).thenReturn(null);
+        when(mDataManager.queryAppLaunchCount(anyInt(), anyLong(), anyLong(), anySet()))
+                .thenReturn(
+                        Map.of(PACKAGE_1, 1,
+                                PACKAGE_2, 2,
+                                PACKAGE_3, 3));
+
+        SharesheetModelScorer.computeScoreForAppShare(
+                List.of(mShareTarget1, mShareTarget2, mShareTarget3, mShareTarget4, mShareTarget5,
+                        mShareTarget6),
+                Event.TYPE_SHARE_TEXT, 4, NOW, mDataManager, USER_ID);
+
+        verify(mDataManager, never()).queryAppLaunchCount(anyInt(), anyLong(), anyLong(), anySet());
+        assertEquals(0.4f, mShareTarget1.getScore(), DELTA);
+        assertEquals(0.35f, mShareTarget2.getScore(), DELTA);
+        assertEquals(0.33f, mShareTarget3.getScore(), DELTA);
+        assertEquals(0.31f, mShareTarget4.getScore(), DELTA);
+        assertEquals(0f, mShareTarget5.getScore(), DELTA);
+        assertEquals(0f, mShareTarget6.getScore(), DELTA);
+    }
+
+    @Test
+    public void testComputeScoreForAppShare_promoteForegroundApp() {
+        when(mEventHistory1.getEventIndex(anySet())).thenReturn(mEventIndex1);
+        when(mEventHistory2.getEventIndex(anySet())).thenReturn(mEventIndex2);
+        when(mEventHistory3.getEventIndex(anySet())).thenReturn(mEventIndex3);
+        when(mEventHistory4.getEventIndex(anySet())).thenReturn(mEventIndex4);
+        when(mEventHistory5.getEventIndex(anySet())).thenReturn(mEventIndex5);
+        when(mEventHistory1.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex6);
+        when(mEventHistory2.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex7);
+        when(mEventHistory3.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex8);
+        when(mEventHistory4.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex9);
+        when(mEventHistory5.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex10);
+        when(mDataManager.queryAppMovingToForegroundEvents(anyInt(), anyLong(),
+                anyLong())).thenReturn(
+                List.of(createUsageEvent(PACKAGE_2),
+                        createUsageEvent(PACKAGE_3),
+                        createUsageEvent(SharesheetModelScorer.CHOOSER_ACTIVITY),
+                        createUsageEvent(PACKAGE_3),
+                        createUsageEvent(PACKAGE_3))
+        );
+
+        SharesheetModelScorer.computeScoreForAppShare(
+                List.of(mShareTarget1, mShareTarget2, mShareTarget3, mShareTarget4, mShareTarget5,
+                        mShareTarget6),
+                Event.TYPE_SHARE_TEXT, 20, NOW, mDataManager, USER_ID);
+
+        verify(mDataManager, times(1)).queryAppMovingToForegroundEvents(anyInt(), anyLong(),
+                anyLong());
+        assertEquals(0f, mShareTarget1.getScore(), DELTA);
+        assertEquals(0f, mShareTarget2.getScore(), DELTA);
+        assertEquals(SharesheetModelScorer.FOREGROUND_APP_WEIGHT, mShareTarget3.getScore(), DELTA);
+        assertEquals(0f, mShareTarget4.getScore(), DELTA);
+        assertEquals(0f, mShareTarget5.getScore(), DELTA);
+        assertEquals(0f, mShareTarget6.getScore(), DELTA);
+    }
+
+    @Test
+    public void testComputeScoreForAppShare_skipPromoteForegroundAppWhenNoValidForegroundApp() {
+        when(mEventHistory1.getEventIndex(anySet())).thenReturn(mEventIndex1);
+        when(mEventHistory2.getEventIndex(anySet())).thenReturn(mEventIndex2);
+        when(mEventHistory3.getEventIndex(anySet())).thenReturn(mEventIndex3);
+        when(mEventHistory4.getEventIndex(anySet())).thenReturn(mEventIndex4);
+        when(mEventHistory5.getEventIndex(anySet())).thenReturn(mEventIndex5);
+        when(mEventHistory1.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex6);
+        when(mEventHistory2.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex7);
+        when(mEventHistory3.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex8);
+        when(mEventHistory4.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex9);
+        when(mEventHistory5.getEventIndex(Event.TYPE_SHARE_TEXT)).thenReturn(mEventIndex10);
+        when(mDataManager.queryAppMovingToForegroundEvents(anyInt(), anyLong(),
+                anyLong())).thenReturn(
+                List.of(createUsageEvent(PACKAGE_3),
+                        createUsageEvent(PACKAGE_3),
+                        createUsageEvent(SharesheetModelScorer.CHOOSER_ACTIVITY),
+                        createUsageEvent(PACKAGE_3),
+                        createUsageEvent(PACKAGE_3))
+        );
+
+        SharesheetModelScorer.computeScoreForAppShare(
+                List.of(mShareTarget1, mShareTarget2, mShareTarget3, mShareTarget4, mShareTarget5,
+                        mShareTarget6),
+                Event.TYPE_SHARE_TEXT, 20, NOW, mDataManager, USER_ID);
+
+        verify(mDataManager, times(1)).queryAppMovingToForegroundEvents(anyInt(), anyLong(),
+                anyLong());
+        assertEquals(0f, mShareTarget1.getScore(), DELTA);
+        assertEquals(0f, mShareTarget2.getScore(), DELTA);
+        assertEquals(0f, mShareTarget3.getScore(), DELTA);
+        assertEquals(0f, mShareTarget4.getScore(), DELTA);
+        assertEquals(0f, mShareTarget5.getScore(), DELTA);
+        assertEquals(0f, mShareTarget6.getScore(), DELTA);
+    }
+
+    private static UsageEvents.Event createUsageEvent(String packageName) {
+        UsageEvents.Event e = new UsageEvents.Event();
+        e.mPackage = packageName;
+        return e;
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java
index 40ada2a..db1bbab 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java
@@ -43,6 +43,7 @@
 import androidx.test.runner.AndroidJUnit4;
 
 import com.android.frameworks.servicestests.R;
+import com.android.server.pm.parsing.PackageParser2;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -63,6 +64,7 @@
     private static final int[] TEST_CHILD_SESSION_ID = {8888, 7777};
     private ApexManager mApexManager;
     private Context mContext;
+    private PackageParser2 mPackageParser2;
 
     private IApexService mApexService = mock(IApexService.class);
 
@@ -70,11 +72,14 @@
     public void setUp() throws RemoteException {
         mContext = InstrumentationRegistry.getInstrumentation().getContext();
         mApexManager = new ApexManager.ApexManagerImpl(mApexService);
+        mPackageParser2 = new PackageParser2(null, false, null, null, null);
     }
 
     @Test
     public void testGetPackageInfo_setFlagsMatchActivePackage() throws RemoteException {
         when(mApexService.getAllPackages()).thenReturn(createApexInfo(true, false));
+        mApexManager.scanApexPackagesTraced(mPackageParser2,
+                ParallelPackageParser.makeExecutorService());
         final PackageInfo activePkgPi = mApexManager.getPackageInfo(TEST_APEX_PKG,
                 ApexManager.MATCH_ACTIVE_PACKAGE);
 
@@ -90,6 +95,8 @@
     @Test
     public void testGetPackageInfo_setFlagsMatchFactoryPackage() throws RemoteException {
         when(mApexService.getAllPackages()).thenReturn(createApexInfo(false, true));
+        mApexManager.scanApexPackagesTraced(mPackageParser2,
+                ParallelPackageParser.makeExecutorService());
         PackageInfo factoryPkgPi = mApexManager.getPackageInfo(TEST_APEX_PKG,
                 ApexManager.MATCH_FACTORY_PACKAGE);
 
@@ -105,6 +112,8 @@
     @Test
     public void testGetPackageInfo_setFlagsNone() throws RemoteException {
         when(mApexService.getAllPackages()).thenReturn(createApexInfo(false, true));
+        mApexManager.scanApexPackagesTraced(mPackageParser2,
+                ParallelPackageParser.makeExecutorService());
 
         assertThat(mApexManager.getPackageInfo(TEST_APEX_PKG, 0)).isNull();
     }
@@ -112,6 +121,8 @@
     @Test
     public void testGetActivePackages() throws RemoteException {
         when(mApexService.getAllPackages()).thenReturn(createApexInfo(true, true));
+        mApexManager.scanApexPackagesTraced(mPackageParser2,
+                ParallelPackageParser.makeExecutorService());
 
         assertThat(mApexManager.getActivePackages()).isNotEmpty();
     }
@@ -119,6 +130,8 @@
     @Test
     public void testGetActivePackages_noneActivePackages() throws RemoteException {
         when(mApexService.getAllPackages()).thenReturn(createApexInfo(false, true));
+        mApexManager.scanApexPackagesTraced(mPackageParser2,
+                ParallelPackageParser.makeExecutorService());
 
         assertThat(mApexManager.getActivePackages()).isEmpty();
     }
@@ -126,6 +139,8 @@
     @Test
     public void testGetFactoryPackages() throws RemoteException {
         when(mApexService.getAllPackages()).thenReturn(createApexInfo(false, true));
+        mApexManager.scanApexPackagesTraced(mPackageParser2,
+                ParallelPackageParser.makeExecutorService());
 
         assertThat(mApexManager.getFactoryPackages()).isNotEmpty();
     }
@@ -133,6 +148,8 @@
     @Test
     public void testGetFactoryPackages_noneFactoryPackages() throws RemoteException {
         when(mApexService.getAllPackages()).thenReturn(createApexInfo(true, false));
+        mApexManager.scanApexPackagesTraced(mPackageParser2,
+                ParallelPackageParser.makeExecutorService());
 
         assertThat(mApexManager.getFactoryPackages()).isEmpty();
     }
@@ -140,6 +157,8 @@
     @Test
     public void testGetInactivePackages() throws RemoteException {
         when(mApexService.getAllPackages()).thenReturn(createApexInfo(false, true));
+        mApexManager.scanApexPackagesTraced(mPackageParser2,
+                ParallelPackageParser.makeExecutorService());
 
         assertThat(mApexManager.getInactivePackages()).isNotEmpty();
     }
@@ -147,6 +166,8 @@
     @Test
     public void testGetInactivePackages_noneInactivePackages() throws RemoteException {
         when(mApexService.getAllPackages()).thenReturn(createApexInfo(true, false));
+        mApexManager.scanApexPackagesTraced(mPackageParser2,
+                ParallelPackageParser.makeExecutorService());
 
         assertThat(mApexManager.getInactivePackages()).isEmpty();
     }
@@ -154,6 +175,8 @@
     @Test
     public void testIsApexPackage() throws RemoteException {
         when(mApexService.getAllPackages()).thenReturn(createApexInfo(false, true));
+        mApexManager.scanApexPackagesTraced(mPackageParser2,
+                ParallelPackageParser.makeExecutorService());
 
         assertThat(mApexManager.isApexPackage(TEST_APEX_PKG)).isTrue();
     }
diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java b/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
index a19d919..d760629 100644
--- a/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageParserTest.java
@@ -17,11 +17,15 @@
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
+import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
+
 import android.annotation.NonNull;
+import android.content.Context;
 import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.ConfigurationInfo;
@@ -30,7 +34,6 @@
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageParser;
 import android.content.pm.PackageUserState;
-import android.content.pm.ProviderInfo;
 import android.content.pm.ServiceInfo;
 import android.content.pm.Signature;
 import android.content.pm.parsing.ParsingPackage;
@@ -49,6 +52,7 @@
 import android.util.DisplayMetrics;
 
 import androidx.annotation.Nullable;
+import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
@@ -69,9 +73,11 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.lang.reflect.Array;
 import java.lang.reflect.Field;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
@@ -90,6 +96,9 @@
 
     private File mTmpDir;
     private static final File FRAMEWORK = new File("/system/framework/framework-res.apk");
+    private static final String TEST_APP1_APK = "PackageParserTestApp1.apk";
+    private static final String TEST_APP2_APK = "PackageParserTestApp2.apk";
+    private static final String TEST_APP3_APK = "PackageParserTestApp3.apk";
 
     @Before
     public void setUp() throws IOException {
@@ -209,6 +218,61 @@
         assertSame(deserialized.getSharedUserId(), deserialized2.getSharedUserId());
     }
 
+    private static PackageParser2 makeParser() {
+        return new PackageParser2(null, false, null, null, null);
+    }
+
+    private File extractFile(String filename) throws Exception {
+        final Context context = InstrumentationRegistry.getTargetContext();
+        final File tmpFile = File.createTempFile(filename, ".apk");
+        try (InputStream inputStream = context.getAssets().openNonAsset(filename)) {
+            Files.copy(inputStream, tmpFile.toPath(), REPLACE_EXISTING);
+        }
+        return tmpFile;
+    }
+
+    /**
+     * Tests AndroidManifest.xml with no android:isolatedSplits attribute.
+     */
+    @Test
+    public void testParseIsolatedSplitsDefault() throws Exception {
+        final File testFile = extractFile(TEST_APP1_APK);
+        try {
+            final ParsedPackage pkg = makeParser().parsePackage(testFile, 0, false);
+            assertFalse("isolatedSplits", pkg.isIsolatedSplitLoading());
+        } finally {
+            testFile.delete();
+        }
+    }
+
+    /**
+     * Tests AndroidManifest.xml with an android:isolatedSplits attribute set to a constant.
+     */
+    @Test
+    public void testParseIsolatedSplitsConstant() throws Exception {
+        final File testFile = extractFile(TEST_APP2_APK);
+        try {
+            final ParsedPackage pkg = makeParser().parsePackage(testFile, 0, false);
+            assertTrue("isolatedSplits", pkg.isIsolatedSplitLoading());
+        } finally {
+            testFile.delete();
+        }
+    }
+
+    /**
+     * Tests AndroidManifest.xml with an android:isolatedSplits attribute set to a resource.
+     */
+    @Test
+    public void testParseIsolatedSplitsResource() throws Exception {
+        final File testFile = extractFile(TEST_APP3_APK);
+        try {
+            final ParsedPackage pkg = makeParser().parsePackage(testFile, 0, false);
+            assertTrue("isolatedSplits", pkg.isIsolatedSplitLoading());
+        } finally {
+            testFile.delete();
+        }
+    }
+
     /**
      * A trivial subclass of package parser that only caches the package name, and throws away
      * all other information.
diff --git a/services/tests/servicestests/src/com/android/server/pm/RestrictionsSetTest.java b/services/tests/servicestests/src/com/android/server/pm/RestrictionsSetTest.java
new file mode 100644
index 0000000..b73c9ea
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/pm/RestrictionsSetTest.java
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.pm;
+
+import static com.android.server.devicepolicy.DpmTestUtils.assertRestrictions;
+import static com.android.server.devicepolicy.DpmTestUtils.newRestrictions;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+
+/** Test for {@link RestrictionsSet}. */
+@RunWith(AndroidJUnit4.class)
+public class RestrictionsSetTest {
+
+    private RestrictionsSet mRestrictionsSet = new RestrictionsSet();
+    private final int originatingUserId = 0;
+
+    @Test
+    public void testUpdateRestrictions_addRestrictions() {
+        Bundle restrictions = newRestrictions(UserManager.ENSURE_VERIFY_APPS);
+
+        assertTrue(mRestrictionsSet.updateRestrictions(originatingUserId, restrictions));
+
+        assertRestrictions(restrictions, mRestrictionsSet.getRestrictions(originatingUserId));
+    }
+
+    @Test
+    public void testUpdateRestrictions_removeRestrictions() {
+        Bundle restrictions = newRestrictions(UserManager.ENSURE_VERIFY_APPS);
+        mRestrictionsSet.updateRestrictions(originatingUserId, restrictions);
+
+        assertTrue(mRestrictionsSet.updateRestrictions(originatingUserId, new Bundle()));
+
+        assertNull(mRestrictionsSet.getRestrictions(originatingUserId));
+    }
+
+    @Test
+    public void testUpdateRestrictions_noChange() {
+        Bundle restrictions = newRestrictions(UserManager.ENSURE_VERIFY_APPS);
+        mRestrictionsSet.updateRestrictions(originatingUserId, restrictions);
+
+        assertFalse(mRestrictionsSet.updateRestrictions(originatingUserId, restrictions));
+    }
+
+    @Test
+    public void testMoveRestriction_containsRestriction() {
+        RestrictionsSet destRestrictionsSet = new RestrictionsSet();
+
+        String restriction = UserManager.DISALLOW_CONFIG_DATE_TIME;
+        mRestrictionsSet.updateRestrictions(originatingUserId,
+                newRestrictions(restriction));
+
+        mRestrictionsSet.moveRestriction(destRestrictionsSet, restriction);
+
+        assertNull(mRestrictionsSet.getRestrictions(originatingUserId));
+        assertNotNull(destRestrictionsSet.getRestrictions(originatingUserId));
+        assertRestrictions(newRestrictions(restriction),
+                destRestrictionsSet.getRestrictions(originatingUserId));
+    }
+
+    @Test
+    public void testMoveRestriction_doesNotContainRestriction() {
+        RestrictionsSet destRestrictionsSet = new RestrictionsSet();
+
+        mRestrictionsSet.updateRestrictions(originatingUserId,
+                newRestrictions(UserManager.ENSURE_VERIFY_APPS));
+
+        mRestrictionsSet.moveRestriction(destRestrictionsSet,
+                UserManager.DISALLOW_CONFIG_DATE_TIME);
+
+        assertRestrictions(newRestrictions(UserManager.ENSURE_VERIFY_APPS),
+                mRestrictionsSet.getRestrictions(originatingUserId));
+        assertNull(destRestrictionsSet.getRestrictions(originatingUserId));
+    }
+
+    @Test
+    public void testIsEmpty_noRestrictions() {
+        assertTrue(mRestrictionsSet.isEmpty());
+    }
+
+    @Test
+    public void testIsEmpty_hasRestrictions() {
+        mRestrictionsSet.updateRestrictions(originatingUserId,
+                newRestrictions(UserManager.ENSURE_VERIFY_APPS,
+                        UserManager.DISALLOW_CONFIG_DATE_TIME));
+
+        assertFalse(mRestrictionsSet.isEmpty());
+    }
+
+    @Test
+    public void testMergeAll_noRestrictions() {
+        assertTrue(mRestrictionsSet.mergeAll().isEmpty());
+    }
+
+    @Test
+    public void testMergeAll_hasRestrictions() {
+        mRestrictionsSet.updateRestrictions(originatingUserId,
+                newRestrictions(UserManager.ENSURE_VERIFY_APPS,
+                        UserManager.DISALLOW_CONFIG_DATE_TIME));
+        mRestrictionsSet.updateRestrictions(10,
+                newRestrictions(UserManager.DISALLOW_ADD_USER,
+                        UserManager.DISALLOW_AIRPLANE_MODE));
+
+        Bundle actual = mRestrictionsSet.mergeAll();
+        assertRestrictions(newRestrictions(UserManager.ENSURE_VERIFY_APPS,
+                UserManager.DISALLOW_CONFIG_DATE_TIME, UserManager.DISALLOW_ADD_USER,
+                UserManager.DISALLOW_AIRPLANE_MODE), actual);
+    }
+
+    @Test
+    public void testGetEnforcingUsers_hasEnforcingUser() {
+        mRestrictionsSet.updateRestrictions(originatingUserId,
+                newRestrictions(UserManager.ENSURE_VERIFY_APPS));
+        mRestrictionsSet.updateRestrictions(10,
+                newRestrictions(UserManager.DISALLOW_ADD_USER));
+
+        List<UserManager.EnforcingUser> enforcingUsers = mRestrictionsSet.getEnforcingUsers(
+                UserManager.ENSURE_VERIFY_APPS, originatingUserId);
+
+        UserManager.EnforcingUser enforcingUser1 = enforcingUsers.get(0);
+        assertEquals(UserHandle.of(originatingUserId), enforcingUser1.getUserHandle());
+        assertEquals(UserManager.RESTRICTION_SOURCE_DEVICE_OWNER,
+                enforcingUser1.getUserRestrictionSource());
+    }
+
+    @Test
+    public void testGetEnforcingUsers_hasMultipleEnforcingUsers() {
+        int originatingUserId2 = 10;
+        mRestrictionsSet.updateRestrictions(originatingUserId,
+                newRestrictions(UserManager.ENSURE_VERIFY_APPS));
+        mRestrictionsSet.updateRestrictions(originatingUserId2,
+                newRestrictions(UserManager.ENSURE_VERIFY_APPS));
+
+        List<UserManager.EnforcingUser> enforcingUsers = mRestrictionsSet.getEnforcingUsers(
+                UserManager.ENSURE_VERIFY_APPS, originatingUserId);
+
+        assertEquals(2, enforcingUsers.size());
+        for (UserManager.EnforcingUser enforcingUser : enforcingUsers) {
+            int userId = enforcingUser.getUserHandle().getIdentifier();
+            assertTrue((userId == originatingUserId) || (userId == originatingUserId2));
+            if (userId == originatingUserId) {
+                assertEquals(UserManager.RESTRICTION_SOURCE_DEVICE_OWNER,
+                        enforcingUser.getUserRestrictionSource());
+            }
+            if (userId == originatingUserId2) {
+                assertEquals(UserManager.RESTRICTION_SOURCE_PROFILE_OWNER,
+                        enforcingUser.getUserRestrictionSource());
+            }
+        }
+    }
+
+    @Test
+    public void testGetEnforcingUsers_noEnforcingUsers() {
+        mRestrictionsSet.updateRestrictions(originatingUserId,
+                newRestrictions(UserManager.DISALLOW_USER_SWITCH));
+
+        List<UserManager.EnforcingUser> enforcingUsers = mRestrictionsSet.getEnforcingUsers(
+                UserManager.ENSURE_VERIFY_APPS, originatingUserId);
+
+        assertTrue(enforcingUsers.isEmpty());
+    }
+
+}
diff --git a/services/tests/servicestests/src/com/android/server/pm/UserRestrictionsUtilsTest.java b/services/tests/servicestests/src/com/android/server/pm/UserRestrictionsUtilsTest.java
index 1a630ff..1c2313e 100644
--- a/services/tests/servicestests/src/com/android/server/pm/UserRestrictionsUtilsTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/UserRestrictionsUtilsTest.java
@@ -247,60 +247,43 @@
         assertRestrictions(newRestrictions(UserManager.DISALLOW_CAMERA), local);
     }
 
-    public void testMergeAll() {
-        SparseArray<Bundle> restrictions = new SparseArray<>();
-        assertNull(UserRestrictionsUtils.mergeAll(restrictions));
-
-        restrictions.put(0, newRestrictions(UserManager.DISALLOW_ADJUST_VOLUME));
-        restrictions.put(1, newRestrictions(UserManager.DISALLOW_USB_FILE_TRANSFER));
-        restrictions.put(2, newRestrictions(UserManager.DISALLOW_APPS_CONTROL));
-
-        Bundle result = UserRestrictionsUtils.mergeAll(restrictions);
-        assertRestrictions(
-                newRestrictions(
-                        UserManager.DISALLOW_ADJUST_VOLUME,
-                        UserManager.DISALLOW_USB_FILE_TRANSFER,
-                        UserManager.DISALLOW_APPS_CONTROL),
-                result);
-    }
-
     public void testMoveRestriction() {
-        SparseArray<Bundle> localRestrictions = new SparseArray<>();
-        SparseArray<Bundle> globalRestrictions = new SparseArray<>();
+        SparseArray<RestrictionsSet> localRestrictions = new SparseArray<>();
+        RestrictionsSet globalRestrictions = new RestrictionsSet();
 
         // User 0 has only local restrictions, nothing should change.
-        localRestrictions.put(0, newRestrictions(UserManager.DISALLOW_ADJUST_VOLUME));
+        localRestrictions.put(0, newRestrictions(0, UserManager.DISALLOW_ADJUST_VOLUME));
         // User 1 has a local restriction to be moved to global and some global already. Local
         // restrictions should be removed for this user.
-        localRestrictions.put(1, newRestrictions(UserManager.ENSURE_VERIFY_APPS));
-        globalRestrictions.put(1, newRestrictions(UserManager.DISALLOW_ADD_USER));
+        localRestrictions.put(1, newRestrictions(1, UserManager.ENSURE_VERIFY_APPS));
+        globalRestrictions.updateRestrictions(1,
+                newRestrictions(UserManager.DISALLOW_ADD_USER));
         // User 2 has a local restriction to be moved and one to leave local.
-        localRestrictions.put(2, newRestrictions(
-                UserManager.ENSURE_VERIFY_APPS,
-                UserManager.DISALLOW_CONFIG_VPN));
+        localRestrictions.put(2, newRestrictions(2,
+                UserManager.ENSURE_VERIFY_APPS, UserManager.DISALLOW_CONFIG_VPN));
 
         UserRestrictionsUtils.moveRestriction(
                 UserManager.ENSURE_VERIFY_APPS, localRestrictions, globalRestrictions);
 
         // Check user 0.
         assertRestrictions(
-                newRestrictions(UserManager.DISALLOW_ADJUST_VOLUME),
+                newRestrictions(0, UserManager.DISALLOW_ADJUST_VOLUME),
                 localRestrictions.get(0));
-        assertNull(globalRestrictions.get(0));
+        assertNull(globalRestrictions.getRestrictions(0));
 
         // Check user 1.
-        assertNull(localRestrictions.get(1));
+        assertTrue(localRestrictions.get(1).isEmpty());
         assertRestrictions(
                 newRestrictions(UserManager.ENSURE_VERIFY_APPS, UserManager.DISALLOW_ADD_USER),
-                globalRestrictions.get(1));
+                globalRestrictions.getRestrictions(1));
 
         // Check user 2.
         assertRestrictions(
-                newRestrictions(UserManager.DISALLOW_CONFIG_VPN),
+                newRestrictions(2, UserManager.DISALLOW_CONFIG_VPN),
                 localRestrictions.get(2));
         assertRestrictions(
                 newRestrictions(UserManager.ENSURE_VERIFY_APPS),
-                globalRestrictions.get(2));
+                globalRestrictions.getRestrictions(2));
     }
 
     public void testAreEqual() {
diff --git a/services/tests/servicestests/src/com/android/server/pm/permission/PermissionManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/pm/permission/PermissionManagerServiceTest.java
new file mode 100644
index 0000000..5696677
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/pm/permission/PermissionManagerServiceTest.java
@@ -0,0 +1,197 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.pm.permission;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertThrows;
+
+import android.app.AppOpsManager;
+import android.app.admin.DevicePolicyManager;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.Process;
+import android.permission.PermissionManagerInternal;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.server.LocalServices;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class PermissionManagerServiceTest {
+    private static final String TAG = "PermissionManagerServiceTag";
+
+    private static final int SYSTEM_UID = 1000;
+    private static final int SYSTEM_PID = 1234;
+    private static final int APP_UID = Process.FIRST_APPLICATION_UID;
+    private static final int APP_PID = 5678;
+
+    private PermissionManagerService mPermissionManagerService;
+    private Context mContext;
+
+    @Mock
+    private PermissionManagerService.Injector mInjector;
+
+    @Mock
+    private AppOpsManager mAppOpsManager;
+
+    @Mock
+    private DevicePolicyManager mDevicePolicyManager;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = InstrumentationRegistry.getContext();
+        Object lock = new Object();
+        mPermissionManagerService = new PermissionManagerService(mContext, lock, mInjector);
+    }
+
+    @After
+    public void tearDown() {
+        // The LocalServices added by the constructor of the PermissionManagerService can either be
+        // removed here after each test when tests are run serially, or to run them in parallel
+        // the Injector can provide methods to add these that can be ignored by the mock.
+        LocalServices.removeServiceForTest(PermissionManagerServiceInternal.class);
+        LocalServices.removeServiceForTest(PermissionManagerInternal.class);
+    }
+
+    @Test
+    public void checkDeviceIdentifierAccess_callingAppUidMismatch_throwsException() {
+        // An application should only be able to query its own device identifier access, querying
+        // of any other UIDs should result in a SecurityException.
+        setupCheckDeviceIdentifierAccessTest(APP_PID, APP_UID);
+
+        assertThrows(SecurityException.class,
+                () -> mPermissionManagerService.checkDeviceIdentifierAccess(
+                        mContext.getPackageName(), "testCheckDeviceIdentifierAccess", null,
+                        APP_PID, SYSTEM_UID));
+    }
+
+    @Test
+    public void checkDeviceIdentifierAccess_callingAppPidMismatch_throwsException() {
+        // Similar to above an app can only specify its own pid, a mismatch should result in a
+        // SecurityException.
+        setupCheckDeviceIdentifierAccessTest(APP_PID, APP_UID);
+
+        assertThrows(SecurityException.class,
+                () -> mPermissionManagerService.checkDeviceIdentifierAccess(
+                        mContext.getPackageName(), "testCheckDeviceIdentifierAccess", null,
+                        SYSTEM_PID, APP_UID));
+    }
+
+    @Test
+    public void checkDeviceIdentifierAccess_callingAppIdWithoutAccess_returnsDenied() {
+        // An application can query its own device identifier access; this test verifies that all
+        // checks can run through completion and return denied.
+        setupCheckDeviceIdentifierAccessTest(APP_PID, APP_UID);
+
+        int result = mPermissionManagerService.checkDeviceIdentifierAccess(
+                mContext.getPackageName(), "testCheckDeviceIdentifierAccess", null, APP_PID,
+                APP_UID);
+
+        assertEquals(PackageManager.PERMISSION_DENIED, result);
+    }
+
+    @Test
+    public void checkDeviceIdentifierAccess_systemUid_returnsGranted() {
+        // The system UID should always have access to device identifiers.
+        setupCheckDeviceIdentifierAccessTest(SYSTEM_PID, SYSTEM_UID);
+        int result = mPermissionManagerService.checkDeviceIdentifierAccess(
+                mContext.getPackageName(), "testCheckDeviceIdentifierAccess", null, SYSTEM_PID,
+                SYSTEM_UID);
+
+        assertEquals(PackageManager.PERMISSION_GRANTED, result);
+    }
+
+    @Test
+    public void checkDeviceIdentifierAccess_hasPrivilegedPermission_returnsGranted() {
+        // Apps with the READ_PRIVILEGED_PHONE_STATE permission should have access to device
+        // identifiers.
+        setupCheckDeviceIdentifierAccessTest(SYSTEM_PID, SYSTEM_UID);
+        when(mInjector.checkPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
+                APP_PID, APP_UID)).thenReturn(PackageManager.PERMISSION_GRANTED);
+
+        int result = mPermissionManagerService.checkDeviceIdentifierAccess(
+                mContext.getPackageName(), "testCheckDeviceIdentifierAccess", null, APP_PID,
+                APP_UID);
+
+        assertEquals(PackageManager.PERMISSION_GRANTED, result);
+    }
+
+    @Test
+    public void checkDeviceIdentifierAccess_hasAppOp_returnsGranted() {
+        // Apps that have been granted the READ_DEVICE_IDENTIFIERS appop should have access to
+        // device identifiers.
+        setupCheckDeviceIdentifierAccessTest(SYSTEM_PID, SYSTEM_UID);
+        when(mAppOpsManager.noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_DEVICE_IDENTIFIERS),
+                eq(APP_UID), eq(mContext.getPackageName()), any(), any())).thenReturn(
+                AppOpsManager.MODE_ALLOWED);
+
+        int result = mPermissionManagerService.checkDeviceIdentifierAccess(
+                mContext.getPackageName(), "testCheckDeviceIdentifierAccess", null, APP_PID,
+                APP_UID);
+
+        assertEquals(PackageManager.PERMISSION_GRANTED, result);
+    }
+
+    @Test
+    public void checkDeviceIdentifierAccess_hasDpmAccess_returnsGranted() {
+        // Apps that pass a DevicePolicyManager device / profile owner check should have access to
+        // device identifiers.
+        setupCheckDeviceIdentifierAccessTest(SYSTEM_PID, SYSTEM_UID);
+        when(mDevicePolicyManager.hasDeviceIdentifierAccess(mContext.getPackageName(), APP_PID,
+                APP_UID)).thenReturn(true);
+
+        int result = mPermissionManagerService.checkDeviceIdentifierAccess(
+                mContext.getPackageName(), "testCheckDeviceIdentifierAccess", null, APP_PID,
+                APP_UID);
+
+        assertEquals(PackageManager.PERMISSION_GRANTED, result);
+    }
+
+    private void setupCheckDeviceIdentifierAccessTest(int callingPid, int callingUid) {
+        when(mInjector.getCallingPid()).thenReturn(callingPid);
+        when(mInjector.getCallingUid()).thenReturn(callingUid);
+
+        // Configure the checkDeviceIdentifierAccess tests to fail all access checks, then each test
+        // can individually set the access check to pass for verification.
+        when(mInjector.checkPermission(anyString(), anyInt(), anyInt())).thenReturn(
+                PackageManager.PERMISSION_DENIED);
+
+        when(mAppOpsManager.noteOpNoThrow(anyString(), anyInt(), anyString(), any(),
+                any())).thenReturn(AppOpsManager.MODE_DEFAULT);
+        when(mInjector.getSystemService(eq(Context.APP_OPS_SERVICE))).thenReturn(mAppOpsManager);
+
+        when(mDevicePolicyManager.hasDeviceIdentifierAccess(anyString(), anyInt(),
+                anyInt())).thenReturn(false);
+        when(mInjector.getSystemService(eq(Context.DEVICE_POLICY_SERVICE))).thenReturn(
+                mDevicePolicyManager);
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java
index 5e8de42..d244e68 100644
--- a/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/power/PowerManagerServiceTest.java
@@ -61,9 +61,8 @@
 import android.os.Looper;
 import android.os.PowerManager;
 import android.os.PowerSaveState;
-import android.os.SystemClock;
 import android.os.UserHandle;
-import android.platform.test.annotations.FlakyTest;
+import android.os.test.TestLooper;
 import android.provider.Settings;
 import android.service.dreams.DreamManagerInternal;
 import android.test.mock.MockContentResolver;
@@ -83,7 +82,9 @@
 import com.android.server.power.PowerManagerService.UserSwitchedReceiver;
 import com.android.server.power.batterysaver.BatterySaverController;
 import com.android.server.power.batterysaver.BatterySaverPolicy;
+import com.android.server.power.batterysaver.BatterySaverStateMachine;
 import com.android.server.power.batterysaver.BatterySavingStats;
+import com.android.server.testutils.OffsettableClock;
 
 import org.junit.After;
 import org.junit.Before;
@@ -109,6 +110,7 @@
 
     @Mock private BatterySaverController mBatterySaverControllerMock;
     @Mock private BatterySaverPolicy mBatterySaverPolicyMock;
+    @Mock private BatterySaverStateMachine mBatterySaverStateMachineMock;
     @Mock private LightsManager mLightsManagerMock;
     @Mock private DisplayManagerInternal mDisplayManagerInternalMock;
     @Mock private BatteryManagerInternal mBatteryManagerInternalMock;
@@ -131,6 +133,8 @@
     private BatteryReceiver mBatteryReceiver;
     private UserSwitchedReceiver mUserSwitchedReceiver;
     private Resources mResourcesSpy;
+    private OffsettableClock mClock;
+    private TestLooper mTestLooper;
 
     private class IntentFilterMatcher implements ArgumentMatcher<IntentFilter> {
         private final IntentFilter mFilter;
@@ -156,6 +160,7 @@
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
+        FakeSettingsProvider.clearSettingsProvider();
 
         mPowerSaveState = new PowerSaveState.Builder()
                 .setBatterySaverEnabled(BATTERY_SAVER_ENABLED)
@@ -187,6 +192,9 @@
 
         Settings.Global.putInt(mContextSpy.getContentResolver(),
                 Settings.Global.STAY_ON_WHILE_PLUGGED_IN, 0);
+
+        mClock = new OffsettableClock.Stopped();
+        mTestLooper = new TestLooper(mClock::now);
     }
 
     private PowerManagerService createService() {
@@ -216,6 +224,12 @@
             }
 
             @Override
+            BatterySaverStateMachine createBatterySaverStateMachine(Object lock, Context context,
+                    BatterySaverController batterySaverController) {
+                return mBatterySaverStateMachineMock;
+            }
+
+            @Override
             NativeWrapper createNativeWrapper() {
                 return mNativeWrapperMock;
             }
@@ -242,6 +256,16 @@
             }
 
             @Override
+            PowerManagerService.Clock createClock() {
+                return () -> mClock.now();
+            }
+
+            @Override
+            Handler createHandler(Looper looper, Handler.Callback callback) {
+                return new Handler(mTestLooper.getLooper(), callback);
+            }
+
+            @Override
             void invalidateIsInteractiveCaches() {
                 // Avoids an SELinux failure.
             }
@@ -255,6 +279,7 @@
         LocalServices.removeServiceForTest(DisplayManagerInternal.class);
         LocalServices.removeServiceForTest(BatteryManagerInternal.class);
         LocalServices.removeServiceForTest(ActivityManagerInternal.class);
+        FakeSettingsProvider.clearSettingsProvider();
     }
 
     /**
@@ -288,21 +313,21 @@
     }
 
     private void forceSleep() {
-        mService.getBinderServiceInstance().goToSleep(SystemClock.uptimeMillis(),
+        mService.getBinderServiceInstance().goToSleep(mClock.now(),
                 PowerManager.GO_TO_SLEEP_REASON_APPLICATION, PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE);
     }
 
     private void forceDream() {
-        mService.getBinderServiceInstance().nap(SystemClock.uptimeMillis());
+        mService.getBinderServiceInstance().nap(mClock.now());
     }
 
     private void forceAwake() {
-        mService.getBinderServiceInstance().wakeUp(SystemClock.uptimeMillis(),
+        mService.getBinderServiceInstance().wakeUp(mClock.now(),
                 PowerManager.WAKE_REASON_UNKNOWN, "testing IPowerManager.wakeUp()", "pkg.name");
     }
 
     private void forceDozing() {
-        mService.getBinderServiceInstance().goToSleep(SystemClock.uptimeMillis(),
+        mService.getBinderServiceInstance().goToSleep(mClock.now(),
                 PowerManager.GO_TO_SLEEP_REASON_APPLICATION, 0);
     }
 
@@ -332,6 +357,11 @@
                 .thenReturn(minimumScreenOffTimeoutConfigMillis);
     }
 
+    private void advanceTime(long timeMs) {
+        mClock.fastForward(timeMs);
+        mTestLooper.dispatchAll();
+    }
+
     @Test
     public void testUpdatePowerScreenPolicy_UpdateDisplayPowerRequest() {
         createService();
@@ -394,7 +424,7 @@
         assertThat(mService.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE);
 
         // Take a nap and verify.
-        mService.getBinderServiceInstance().goToSleep(SystemClock.uptimeMillis(),
+        mService.getBinderServiceInstance().goToSleep(mClock.now(),
                 PowerManager.GO_TO_SLEEP_REASON_APPLICATION, PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE);
         assertThat(mService.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_ASLEEP);
     }
@@ -436,7 +466,7 @@
         createService();
         startSystem();
         forceSleep();
-        mService.getBinderServiceInstance().wakeUp(SystemClock.uptimeMillis(),
+        mService.getBinderServiceInstance().wakeUp(mClock.now(),
                 PowerManager.WAKE_REASON_UNKNOWN, "testing IPowerManager.wakeUp()", "pkg.name");
         assertThat(mService.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE);
     }
@@ -531,7 +561,7 @@
         assertThat(mService.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE);
 
         // Take a nap and verify.
-        mService.getBinderServiceInstance().goToSleep(SystemClock.uptimeMillis(),
+        mService.getBinderServiceInstance().goToSleep(mClock.now(),
                 PowerManager.GO_TO_SLEEP_REASON_APPLICATION, 0);
         assertThat(mService.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_DOZING);
     }
@@ -541,7 +571,7 @@
         int interval = 1000;
         createService();
         mService.onUserActivity();
-        SystemClock.sleep(interval + 1 /* just a little more */);
+        advanceTime(interval + 1 /* just a little more */);
         assertThat(mService.wasDeviceIdleForInternal(interval)).isTrue();
     }
 
@@ -669,7 +699,7 @@
         mService.getBinderServiceInstance().acquireWakeLock(token, flags, tag, packageName,
                 null /* workSource */, null /* historyTag */);
         when(mDreamManagerInternalMock.isDreaming()).thenReturn(true);
-        mService.getBinderServiceInstance().goToSleep(SystemClock.uptimeMillis(),
+        mService.getBinderServiceInstance().goToSleep(mClock.now(),
                 PowerManager.GO_TO_SLEEP_REASON_APPLICATION, 0);
         assertThat(mService.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_DOZING);
         assertFalse(isAcquired[0]);
@@ -682,7 +712,10 @@
 
     @Test
     public void testInattentiveSleep_hideWarningIfStayOnIsEnabledAndPluggedIn() throws Exception {
-        setAttentiveTimeout(15000);
+        setMinimumScreenOffTimeoutConfig(5);
+        setAttentiveWarningDuration(120);
+        setAttentiveTimeout(100);
+
         Settings.Global.putInt(mContextSpy.getContentResolver(),
                 Settings.Global.STAY_ON_WHILE_PLUGGED_IN, BatteryManager.BATTERY_PLUGGED_AC);
 
@@ -698,24 +731,24 @@
     }
 
     @Test
-    public void testInattentive_userActivityDismissesWarning() throws Exception {
+    public void testInattentiveSleep_userActivityDismissesWarning() throws Exception {
         setMinimumScreenOffTimeoutConfig(5);
-        setAttentiveWarningDuration(30);
-        setAttentiveTimeout(100);
+        setAttentiveWarningDuration(1900);
+        setAttentiveTimeout(2000);
 
         createService();
         startSystem();
 
-        mService.getBinderServiceInstance().userActivity(SystemClock.uptimeMillis(),
+        mService.getBinderServiceInstance().userActivity(mClock.now(),
                 PowerManager.USER_ACTIVITY_EVENT_TOUCH, 0);
         verify(mInattentiveSleepWarningControllerMock, never()).show();
 
-        SystemClock.sleep(70);
+        advanceTime(150);
         verify(mInattentiveSleepWarningControllerMock, times(1)).show();
         verify(mInattentiveSleepWarningControllerMock, never()).dismiss(anyBoolean());
         when(mInattentiveSleepWarningControllerMock.isShown()).thenReturn(true);
 
-        mService.getBinderServiceInstance().userActivity(SystemClock.uptimeMillis(),
+        mService.getBinderServiceInstance().userActivity(mClock.now(),
                 PowerManager.USER_ACTIVITY_EVENT_TOUCH, 0);
         verify(mInattentiveSleepWarningControllerMock, times(1)).dismiss(true);
     }
@@ -723,16 +756,18 @@
     @Test
     public void testInattentiveSleep_warningHiddenAfterWakingUp() throws Exception {
         setMinimumScreenOffTimeoutConfig(5);
-        setAttentiveWarningDuration(20);
-        setAttentiveTimeout(30);
+        setAttentiveWarningDuration(70);
+        setAttentiveTimeout(100);
 
         createService();
         startSystem();
-        SystemClock.sleep(10);
+        advanceTime(50);
         verify(mInattentiveSleepWarningControllerMock, atLeastOnce()).show();
         when(mInattentiveSleepWarningControllerMock.isShown()).thenReturn(true);
-        SystemClock.sleep(30);
+        advanceTime(70);
+        assertThat(mService.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_ASLEEP);
         forceAwake();
+        assertThat(mService.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_AWAKE);
         verify(mInattentiveSleepWarningControllerMock, atLeastOnce()).dismiss(false);
     }
 
@@ -750,19 +785,18 @@
         setAttentiveTimeout(5);
         createService();
         startSystem();
-        SystemClock.sleep(20);
+        advanceTime(20);
         assertThat(mService.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_ASLEEP);
     }
 
-    @FlakyTest
     @Test
     public void testInattentiveSleep_goesToSleepWithWakeLock() throws Exception {
         final String pkg = mContextSpy.getOpPackageName();
         final Binder token = new Binder();
-        final String tag = "sleep_testWithWakeLock";
+        final String tag = "testInattentiveSleep_goesToSleepWithWakeLock";
 
         setMinimumScreenOffTimeoutConfig(5);
-        setAttentiveTimeout(10);
+        setAttentiveTimeout(30);
         createService();
         startSystem();
 
@@ -770,7 +804,7 @@
                 PowerManager.SCREEN_BRIGHT_WAKE_LOCK, tag, pkg,
                 null /* workSource */, null /* historyTag */);
 
-        SystemClock.sleep(11);
+        advanceTime(60);
         assertThat(mService.getWakefulnessLocked()).isEqualTo(WAKEFULNESS_ASLEEP);
     }
 
diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java b/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java
index ba30967..30bb12e 100644
--- a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java
+++ b/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java
@@ -128,43 +128,69 @@
     }
 
     @Test
-    public void testFirstPlausibleTelephonySuggestionAcceptedWhenTimeZoneUninitialized() {
+    public void testTelephonySuggestionsWhenTimeZoneUninitialized() {
+        assertTrue(TELEPHONY_SCORE_LOW < TELEPHONY_SCORE_USAGE_THRESHOLD);
+        assertTrue(TELEPHONY_SCORE_HIGH >= TELEPHONY_SCORE_USAGE_THRESHOLD);
         SuggestionTestCase testCase = newTestCase(MATCH_TYPE_NETWORK_COUNTRY_ONLY,
                 QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS, TELEPHONY_SCORE_LOW);
-        TelephonyTimeZoneSuggestion lowQualitySuggestion =
-                testCase.createSuggestion(SLOT_INDEX1, "America/New_York");
+        SuggestionTestCase testCase2 = newTestCase(MATCH_TYPE_NETWORK_COUNTRY_ONLY,
+                QUALITY_SINGLE_ZONE, TELEPHONY_SCORE_HIGH);
 
-        // The device time zone setting is left uninitialized.
         Script script = new Script()
                 .initializeAutoTimeZoneDetection(true);
 
-        // The very first suggestion will be taken.
-        script.suggestTelephonyTimeZone(lowQualitySuggestion)
-                .verifyTimeZoneSetAndReset(lowQualitySuggestion);
+        // A low quality suggestions will not be taken: The device time zone setting is left
+        // uninitialized.
+        {
+            TelephonyTimeZoneSuggestion lowQualitySuggestion =
+                    testCase.createSuggestion(SLOT_INDEX1, "America/New_York");
 
-        // Assert internal service state.
-        QualifiedTelephonyTimeZoneSuggestion expectedScoredSuggestion =
-                new QualifiedTelephonyTimeZoneSuggestion(
-                        lowQualitySuggestion, testCase.expectedScore);
-        assertEquals(expectedScoredSuggestion,
-                mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
-        assertEquals(expectedScoredSuggestion,
-                mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
+            script.suggestTelephonyTimeZone(lowQualitySuggestion)
+                    .verifyTimeZoneNotSet();
 
-        // Another low quality suggestion will be ignored now that the setting is initialized.
-        TelephonyTimeZoneSuggestion lowQualitySuggestion2 =
-                testCase.createSuggestion(SLOT_INDEX1, "America/Los_Angeles");
-        script.suggestTelephonyTimeZone(lowQualitySuggestion2)
-                .verifyTimeZoneNotSet();
+            // Assert internal service state.
+            QualifiedTelephonyTimeZoneSuggestion expectedScoredSuggestion =
+                    new QualifiedTelephonyTimeZoneSuggestion(
+                            lowQualitySuggestion, testCase.expectedScore);
+            assertEquals(expectedScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
+            assertEquals(expectedScoredSuggestion,
+                    mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
+        }
 
-        // Assert internal service state.
-        QualifiedTelephonyTimeZoneSuggestion expectedScoredSuggestion2 =
-                new QualifiedTelephonyTimeZoneSuggestion(
-                        lowQualitySuggestion2, testCase.expectedScore);
-        assertEquals(expectedScoredSuggestion2,
-                mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
-        assertEquals(expectedScoredSuggestion2,
-                mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
+        // A good quality suggestion will be used.
+        {
+            TelephonyTimeZoneSuggestion goodQualitySuggestion =
+                    testCase2.createSuggestion(SLOT_INDEX1, "Europe/London");
+            script.suggestTelephonyTimeZone(goodQualitySuggestion)
+                    .verifyTimeZoneSetAndReset(goodQualitySuggestion);
+
+            // Assert internal service state.
+            QualifiedTelephonyTimeZoneSuggestion expectedScoredSuggestion =
+                    new QualifiedTelephonyTimeZoneSuggestion(
+                            goodQualitySuggestion, testCase2.expectedScore);
+            assertEquals(expectedScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
+            assertEquals(expectedScoredSuggestion,
+                    mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
+        }
+
+        // A low quality suggestion will be accepted, but not used to set the device time zone.
+        {
+            TelephonyTimeZoneSuggestion lowQualitySuggestion2 =
+                    testCase.createSuggestion(SLOT_INDEX1, "America/Los_Angeles");
+            script.suggestTelephonyTimeZone(lowQualitySuggestion2)
+                    .verifyTimeZoneNotSet();
+
+            // Assert internal service state.
+            QualifiedTelephonyTimeZoneSuggestion expectedScoredSuggestion =
+                    new QualifiedTelephonyTimeZoneSuggestion(
+                            lowQualitySuggestion2, testCase.expectedScore);
+            assertEquals(expectedScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
+            assertEquals(expectedScoredSuggestion,
+                    mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
+        }
     }
 
     /**
diff --git a/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java
index 155c6dd..fcbd507 100644
--- a/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java
@@ -34,6 +34,7 @@
 import android.media.tv.tunerresourcemanager.TunerFrontendRequest;
 import android.media.tv.tunerresourcemanager.TunerResourceManager;
 import android.os.RemoteException;
+import android.platform.test.annotations.Presubmit;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
@@ -54,6 +55,7 @@
  * Tests for {@link TunerResourceManagerService} class.
  */
 @SmallTest
+@Presubmit
 @RunWith(JUnit4.class)
 public class TunerResourceManagerServiceTest {
     private static final String TAG = "TunerResourceManagerServiceTest";
diff --git a/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/UseCasePriorityHintsTest.java b/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/UseCasePriorityHintsTest.java
index ab5665b..2ff178e 100644
--- a/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/UseCasePriorityHintsTest.java
+++ b/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/UseCasePriorityHintsTest.java
@@ -18,6 +18,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.media.tv.TvInputService;
+import android.platform.test.annotations.Presubmit;
 import android.util.Slog;
 
 import androidx.test.filters.SmallTest;
@@ -36,6 +37,7 @@
  * Tests for {@link UseCasePriorityHints} class.
  */
 @SmallTest
+@Presubmit
 @RunWith(JUnit4.class)
 public class UseCasePriorityHintsTest {
     private static final String TAG = "UseCasePriorityHintsTest";
diff --git a/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java b/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java
index 05cd26d..327cfc7 100644
--- a/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java
+++ b/services/tests/servicestests/src/com/android/server/usage/AppStandbyControllerTests.java
@@ -1208,6 +1208,7 @@
                 STANDBY_BUCKET_ACTIVE, getStandbyBucket(mController, PACKAGE_1));
     }
 
+    @Test
     public void testAppUpdateOnRestrictedBucketStatus() {
         // Updates shouldn't change bucket if the app timed out.
         // Way past all timeouts. App times out into RESTRICTED bucket.
diff --git a/services/tests/servicestests/src/com/android/server/webkit/WebViewUpdateServiceTest.java b/services/tests/servicestests/src/com/android/server/webkit/WebViewUpdateServiceTest.java
index 2e60866..bbfc5ab 100644
--- a/services/tests/servicestests/src/com/android/server/webkit/WebViewUpdateServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/webkit/WebViewUpdateServiceTest.java
@@ -1275,25 +1275,8 @@
                     true /* valid */, true /* installed */));
 
         runWebViewBootPreparationOnMainSync();
-
         checkPreparationPhasesForPackage(primaryPackage, 1 /* first preparation phase */);
 
-        mWebViewUpdateServiceImpl.packageStateChanged(primaryPackage,
-                WebViewUpdateService.PACKAGE_ADDED_REPLACED, 0 /* userId */);
-        mWebViewUpdateServiceImpl.packageStateChanged(primaryPackage,
-                WebViewUpdateService.PACKAGE_ADDED_REPLACED, 1 /* userId */);
-        mWebViewUpdateServiceImpl.packageStateChanged(primaryPackage,
-                WebViewUpdateService.PACKAGE_ADDED_REPLACED, 2 /* userId */);
-        // package still has the same update-time so we shouldn't run preparation here
-        Mockito.verify(mTestSystemImpl, Mockito.times(1)).onWebViewProviderChanged(
-                Mockito.argThat(new IsPackageInfoWithName(primaryPackage)));
-
-        // Ensure we can still load the package
-        WebViewProviderResponse response = mWebViewUpdateServiceImpl.waitForAndGetProvider();
-        assertEquals(WebViewFactory.LIBLOAD_SUCCESS, response.status);
-        assertEquals(primaryPackage, response.packageInfo.packageName);
-
-
         mTestSystemImpl.setPackageInfo(createPackageInfo(primaryPackage, true /* enabled */,
                     true /* valid */, true /* installed */, null /* signatures */,
                     20 /* lastUpdateTime*/ ));
diff --git a/services/tests/servicestests/test-apps/PackageParserApp/Android.bp b/services/tests/servicestests/test-apps/PackageParserApp/Android.bp
new file mode 100644
index 0000000..c409438
--- /dev/null
+++ b/services/tests/servicestests/test-apps/PackageParserApp/Android.bp
@@ -0,0 +1,53 @@
+// Copyright (C) 2020 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+android_test_helper_app {
+    name: "PackageParserTestApp1",
+    sdk_version: "current",
+    srcs: ["**/*.java"],
+    dex_preopt: {
+        enabled: false,
+    },
+    optimize: {
+        enabled: false,
+    },
+    manifest: "AndroidManifestApp1.xml",
+}
+
+android_test_helper_app {
+    name: "PackageParserTestApp2",
+    sdk_version: "current",
+    srcs: ["**/*.java"],
+    dex_preopt: {
+        enabled: false,
+    },
+    optimize: {
+        enabled: false,
+    },
+    manifest: "AndroidManifestApp2.xml",
+}
+
+android_test_helper_app {
+    name: "PackageParserTestApp3",
+    sdk_version: "current",
+    srcs: ["**/*.java"],
+    dex_preopt: {
+        enabled: false,
+    },
+    optimize: {
+        enabled: false,
+    },
+    resource_dirs: ["res"],
+    manifest: "AndroidManifestApp3.xml",
+}
diff --git a/services/tests/servicestests/test-apps/PackageParserApp/AndroidManifestApp1.xml b/services/tests/servicestests/test-apps/PackageParserApp/AndroidManifestApp1.xml
new file mode 100644
index 0000000..01d335d
--- /dev/null
+++ b/services/tests/servicestests/test-apps/PackageParserApp/AndroidManifestApp1.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.servicestests.apps.packageparserapp" >
+
+    <application>
+        <activity android:name=".TestActivity"
+                  android:exported="true" />
+    </application>
+
+</manifest>
\ No newline at end of file
diff --git a/services/tests/servicestests/test-apps/PackageParserApp/AndroidManifestApp2.xml b/services/tests/servicestests/test-apps/PackageParserApp/AndroidManifestApp2.xml
new file mode 100644
index 0000000..567946c
--- /dev/null
+++ b/services/tests/servicestests/test-apps/PackageParserApp/AndroidManifestApp2.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.servicestests.apps.packageparserapp"
+        android:isolatedSplits="true" >
+
+    <application>
+        <activity android:name=".TestActivity"
+                  android:exported="true" />
+    </application>
+
+</manifest>
\ No newline at end of file
diff --git a/services/tests/servicestests/test-apps/PackageParserApp/AndroidManifestApp3.xml b/services/tests/servicestests/test-apps/PackageParserApp/AndroidManifestApp3.xml
new file mode 100644
index 0000000..77285a8
--- /dev/null
+++ b/services/tests/servicestests/test-apps/PackageParserApp/AndroidManifestApp3.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.servicestests.apps.packageparserapp"
+        android:isolatedSplits="@bool/config_isIsolated" >
+
+    <application>
+        <activity android:name=".TestActivity"
+                  android:exported="true" />
+    </application>
+
+</manifest>
\ No newline at end of file
diff --git a/services/tests/servicestests/test-apps/PackageParserApp/res/values/values.xml b/services/tests/servicestests/test-apps/PackageParserApp/res/values/values.xml
new file mode 100644
index 0000000..6a4cc65
--- /dev/null
+++ b/services/tests/servicestests/test-apps/PackageParserApp/res/values/values.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <bool name="config_isIsolated">true</bool>
+</resources>
\ No newline at end of file
diff --git a/core/java/android/service/autofill/InlineAction.aidl b/services/tests/servicestests/test-apps/PackageParserApp/src/com/android/servicestests/apps/packageparserapp/TestActivity.java
similarity index 67%
rename from core/java/android/service/autofill/InlineAction.aidl
rename to services/tests/servicestests/test-apps/PackageParserApp/src/com/android/servicestests/apps/packageparserapp/TestActivity.java
index 7f85118..2eacb96 100644
--- a/core/java/android/service/autofill/InlineAction.aidl
+++ b/services/tests/servicestests/test-apps/PackageParserApp/src/com/android/servicestests/apps/packageparserapp/TestActivity.java
@@ -14,6 +14,15 @@
  * limitations under the License.
  */
 
-package android.service.autofill;
+package com.android.servicestests.apps.packageparserapp;
 
-parcelable InlineAction;
+import android.app.Activity;
+import android.os.Bundle;
+
+public class TestActivity extends Activity {
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        finish();
+    }
+}
diff --git a/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java
index 93ca34a..69ef499 100644
--- a/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/UiModeManagerServiceTest.java
@@ -31,6 +31,7 @@
 import android.os.PowerManagerInternal;
 import android.os.PowerSaveState;
 import android.os.RemoteException;
+import android.provider.Settings;
 import android.testing.AndroidTestingRunner;
 import android.testing.TestableLooper;
 import com.android.server.twilight.TwilightManager;
@@ -54,6 +55,7 @@
 import static junit.framework.TestCase.assertTrue;
 import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.anyString;
@@ -113,6 +115,7 @@
         when(mContext.getResources()).thenReturn(mResources);
         when(mContext.getContentResolver()).thenReturn(mContentResolver);
         when(mPowerManager.isInteractive()).thenReturn(true);
+        when(mPowerManager.newWakeLock(anyInt(), anyString())).thenReturn(mWakeLock);
         when(mTwilightManager.getLastTwilightState()).thenReturn(mTwilightState);
         when(mTwilightState.isNight()).thenReturn(true);
         when(mContext.registerReceiver(notNull(), notNull())).then(inv -> {
@@ -135,23 +138,33 @@
             mCustomListener = () -> {};
             return null;
         }).when(mAlarmManager).cancel(eq(mCustomListener));
-
-        mUiManagerService = new UiModeManagerService(mContext,
-                mWindowManager, mAlarmManager, mPowerManager,
-                mWakeLock, mTwilightManager, mLocalPowerManager, true);
+        when(mContext.getSystemService(eq(Context.POWER_SERVICE)))
+                .thenReturn(mPowerManager);
+        when(mContext.getSystemService(eq(Context.ALARM_SERVICE)))
+                .thenReturn(mAlarmManager);
+        addLocalService(WindowManagerInternal.class, mWindowManager);
+        addLocalService(PowerManagerInternal.class, mLocalPowerManager);
+        addLocalService(TwilightManager.class, mTwilightManager);
+        
+        mUiManagerService = new UiModeManagerService(mContext, true);
         try {
             mUiManagerService.onBootPhase(SystemService.PHASE_SYSTEM_SERVICES_READY);
         } catch (SecurityException e) {/* ignore for permission denial */}
         mService = mUiManagerService.getService();
     }
 
+    private <T> void addLocalService(Class<T> clazz, T service) {
+        LocalServices.removeServiceForTest(clazz);
+        LocalServices.addService(clazz, service);
+    }
+
     @Test
     public void setAutoMode_screenOffRegistered() throws RemoteException {
         try {
             mService.setNightMode(MODE_NIGHT_NO);
         } catch (SecurityException e) { /* we should ignore this update config exception*/ }
         mService.setNightMode(MODE_NIGHT_AUTO);
-        verify(mContext).registerReceiver(any(BroadcastReceiver.class), any());
+        verify(mContext, atLeastOnce()).registerReceiver(any(BroadcastReceiver.class), any());
     }
 
     @Test
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/BubbleCheckerTest.java b/services/tests/uiservicestests/src/com/android/server/notification/BubbleCheckerTest.java
index 9636342..2578ca8 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/BubbleCheckerTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/BubbleCheckerTest.java
@@ -25,6 +25,7 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import android.app.ActivityManager;
@@ -33,6 +34,7 @@
 import android.app.PendingIntent;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
+import android.content.pm.ShortcutInfo;
 import android.os.UserHandle;
 import android.service.notification.StatusBarNotification;
 import android.test.suitebuilder.annotation.SmallTest;
@@ -104,15 +106,17 @@
 
     void setUpIntentBubble() {
         when(mPendingIntent.getIntent()).thenReturn(mIntent);
-        when(mBubbleMetadata.getBubbleIntent()).thenReturn(mPendingIntent);
+        when(mBubbleMetadata.getIntent()).thenReturn(mPendingIntent);
         when(mBubbleMetadata.getShortcutId()).thenReturn(null);
     }
 
     void setUpShortcutBubble(boolean isValid) {
         when(mBubbleMetadata.getShortcutId()).thenReturn(SHORTCUT_ID);
-        when(mShortcutHelper.hasValidShortcutInfo(SHORTCUT_ID, PKG, mUserHandle))
-                .thenReturn(isValid);
-        when(mBubbleMetadata.getBubbleIntent()).thenReturn(null);
+        ShortcutInfo info = mock(ShortcutInfo.class);
+        when(info.getId()).thenReturn(SHORTCUT_ID);
+        when(mShortcutHelper.getValidShortcutInfo(SHORTCUT_ID, PKG, mUserHandle))
+                .thenReturn(isValid ? info : null);
+        when(mBubbleMetadata.getIntent()).thenReturn(null);
     }
 
     void setUpBubblesEnabled(boolean feature, boolean app, boolean channel) {
@@ -160,7 +164,7 @@
     @Test
     public void testCanBubble_false_noIntentNoShortcut() {
         setUpBubblesEnabled(true /* feature */, true /* app */, true /* channel */);
-        when(mBubbleMetadata.getBubbleIntent()).thenReturn(null);
+        when(mBubbleMetadata.getIntent()).thenReturn(null);
         when(mBubbleMetadata.getShortcutId()).thenReturn(null);
         assertFalse(mBubbleChecker.canBubble(mNr, PKG, USER_ID));
     }
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/BubbleExtractorTest.java b/services/tests/uiservicestests/src/com/android/server/notification/BubbleExtractorTest.java
index c7cef05..0dbbbaa 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/BubbleExtractorTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/BubbleExtractorTest.java
@@ -47,6 +47,7 @@
 public class BubbleExtractorTest extends UiServiceTestCase {
 
     @Mock RankingConfig mConfig;
+    @Mock BubbleExtractor.BubbleChecker mBubbleChecker;
     BubbleExtractor mBubbleExtractor;
 
     private String mPkg = "com.android.server.notification";
@@ -141,4 +142,33 @@
 
         assertFalse(r.canBubble());
     }
+
+    @Test
+    public void testFlagBubble_true() {
+        when(mConfig.bubblesEnabled()).thenReturn(true);
+        when(mConfig.areBubblesAllowed(mPkg, mUid)).thenReturn(true);
+        NotificationRecord r = getNotificationRecord(true, IMPORTANCE_UNSPECIFIED);
+
+        mBubbleExtractor.setBubbleChecker(mBubbleChecker);
+        when(mBubbleChecker.isNotificationAppropriateToBubble(r)).thenReturn(true);
+        mBubbleExtractor.process(r);
+
+        assertTrue(r.canBubble());
+        assertTrue(r.getNotification().isBubbleNotification());
+    }
+
+    @Test
+    public void testFlagBubble_noFlag_previouslyRemoved() {
+        when(mConfig.bubblesEnabled()).thenReturn(true);
+        when(mConfig.areBubblesAllowed(mPkg, mUid)).thenReturn(true);
+        NotificationRecord r = getNotificationRecord(true, IMPORTANCE_UNSPECIFIED);
+        r.setFlagBubbleRemoved(true);
+
+        mBubbleExtractor.setBubbleChecker(mBubbleChecker);
+        when(mBubbleChecker.isNotificationAppropriateToBubble(r)).thenReturn(true);
+        mBubbleExtractor.process(r);
+
+        assertTrue(r.canBubble());
+        assertFalse(r.getNotification().isBubbleNotification());
+    }
 }
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
index f179840..7026420 100755
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -17,9 +17,7 @@
 package com.android.server.notification;
 
 import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
-import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_GONE;
 import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_VISIBLE;
-import static android.app.Notification.CATEGORY_CALL;
 import static android.app.Notification.FLAG_AUTO_CANCEL;
 import static android.app.Notification.FLAG_BUBBLE;
 import static android.app.Notification.FLAG_FOREGROUND_SERVICE;
@@ -80,6 +78,7 @@
 import static org.mockito.Mockito.when;
 
 import android.app.ActivityManager;
+import android.app.ActivityManagerInternal;
 import android.app.AppOpsManager;
 import android.app.AutomaticZenRule;
 import android.app.IActivityManager;
@@ -156,6 +155,7 @@
 import com.android.internal.logging.InstanceIdSequenceFake;
 import com.android.internal.statusbar.NotificationVisibility;
 import com.android.internal.util.FastXmlSerializer;
+import com.android.server.DeviceIdleInternal;
 import com.android.server.LocalServices;
 import com.android.server.SystemService;
 import com.android.server.UiServiceTestCase;
@@ -165,6 +165,7 @@
 import com.android.server.notification.NotificationManagerService.NotificationListeners;
 import com.android.server.statusbar.StatusBarManagerInternal;
 import com.android.server.uri.UriGrantsManagerInternal;
+import com.android.server.wm.ActivityTaskManagerInternal;
 import com.android.server.wm.WindowManagerInternal;
 
 import org.junit.After;
@@ -253,6 +254,8 @@
     @Mock
     IActivityManager mAm;
     @Mock
+    ActivityTaskManagerInternal mAtm;
+    @Mock
     IUriGrantsManager mUgm;
     @Mock
     UriGrantsManagerInternal mUgmInternal;
@@ -379,12 +382,20 @@
 
         MockitoAnnotations.initMocks(this);
 
+        DeviceIdleInternal deviceIdleInternal = mock(DeviceIdleInternal.class);
+        when(deviceIdleInternal.getNotificationWhitelistDuration()).thenReturn(3000L);
+        ActivityManagerInternal activityManagerInternal = mock(ActivityManagerInternal.class);
+
         LocalServices.removeServiceForTest(UriGrantsManagerInternal.class);
         LocalServices.addService(UriGrantsManagerInternal.class, mUgmInternal);
         LocalServices.removeServiceForTest(WindowManagerInternal.class);
         LocalServices.addService(WindowManagerInternal.class, mWindowManagerInternal);
         LocalServices.removeServiceForTest(StatusBarManagerInternal.class);
         LocalServices.addService(StatusBarManagerInternal.class, mStatusBar);
+        LocalServices.removeServiceForTest(DeviceIdleInternal.class);
+        LocalServices.addService(DeviceIdleInternal.class, deviceIdleInternal);
+        LocalServices.removeServiceForTest(ActivityManagerInternal.class);
+        LocalServices.addService(ActivityManagerInternal.class, activityManagerInternal);
 
         doNothing().when(mContext).sendBroadcastAsUser(any(), any(), any());
 
@@ -454,7 +465,7 @@
                 mRankingHandler, mPackageManager, mPackageManagerClient, mockLightsManager,
                 mListeners, mAssistants, mConditionProviders,
                 mCompanionMgr, mSnoozeHelper, mUsageStats, mPolicyFile, mActivityManager,
-                mGroupHelper, mAm, mAppUsageStats,
+                mGroupHelper, mAm, mAtm, mAppUsageStats,
                 mock(DevicePolicyManagerInternal.class), mUgm, mUgmInternal,
                 mAppOpsManager, mUm, mHistoryManager, mStatsManager);
         mService.onBootPhase(SystemService.PHASE_SYSTEM_SERVICES_READY);
@@ -676,9 +687,8 @@
 
     private Notification.BubbleMetadata.Builder getBubbleMetadataBuilder() {
         PendingIntent pi = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
-        return new Notification.BubbleMetadata.Builder()
-                .createIntentBubble(pi,
-                        Icon.createWithResource(mContext, android.R.drawable.sym_def_app_icon));
+        return new Notification.BubbleMetadata.Builder(pi,
+                Icon.createWithResource(mContext, android.R.drawable.sym_def_app_icon));
     }
 
     private Notification.Builder getMessageStyleNotifBuilder(boolean addBubbleMetadata,
@@ -4704,8 +4714,7 @@
         mService.setPreferencesHelper(mPreferencesHelper);
         when(mPreferencesHelper.getImportance(testPackage, mUid)).thenReturn(IMPORTANCE_NONE);
 
-        // this app is in the foreground
-        when(mActivityManager.getUidImportance(mUid)).thenReturn(IMPORTANCE_FOREGROUND);
+        setAppInForegroundForToasts(mUid, true);
 
         // enqueue toast -> toast should still enqueue
         ((INotificationManager) mService.mService).enqueueToast(testPackage, new Binder(),
@@ -4723,8 +4732,7 @@
         when(mPackageManager.isPackageSuspendedForUser(testPackage, UserHandle.getUserId(mUid)))
                 .thenReturn(false);
 
-        // this app is NOT in the foreground
-        when(mActivityManager.getUidImportance(mUid)).thenReturn(IMPORTANCE_NONE);
+        setAppInForegroundForToasts(mUid, false);
 
         // enqueue toast -> no toasts enqueued
         ((INotificationManager) mService.mService).enqueueToast(testPackage, new Binder(),
@@ -4742,8 +4750,7 @@
         when(mPackageManager.isPackageSuspendedForUser(testPackage, UserHandle.getUserId(mUid)))
                 .thenReturn(false);
 
-        // this app is in the foreground
-        when(mActivityManager.getUidImportance(mUid)).thenReturn(IMPORTANCE_FOREGROUND);
+        setAppInForegroundForToasts(mUid, true);
 
         // enqueue toast -> toast should still enqueue
         ((INotificationManager) mService.mService).enqueueTextToast(testPackage, new Binder(),
@@ -4761,8 +4768,7 @@
         when(mPackageManager.isPackageSuspendedForUser(testPackage, UserHandle.getUserId(mUid)))
                 .thenReturn(false);
 
-        // this app is NOT in the foreground
-        when(mActivityManager.getUidImportance(mUid)).thenReturn(IMPORTANCE_NONE);
+        setAppInForegroundForToasts(mUid, false);
 
         // enqueue toast -> toast should still enqueue
         ((INotificationManager) mService.mService).enqueueTextToast(testPackage, new Binder(),
@@ -4820,8 +4826,7 @@
         mService.setPreferencesHelper(mPreferencesHelper);
         when(mPreferencesHelper.getImportance(testPackage, mUid)).thenReturn(IMPORTANCE_NONE);
 
-        // this app is NOT in the foreground
-        when(mActivityManager.getUidImportance(mUid)).thenReturn(IMPORTANCE_GONE);
+        setAppInForegroundForToasts(mUid, false);
 
         // enqueue toast -> no toasts enqueued
         ((INotificationManager) mService.mService).enqueueToast(testPackage, new Binder(),
@@ -4843,8 +4848,7 @@
         mService.setPreferencesHelper(mPreferencesHelper);
         when(mPreferencesHelper.getImportance(testPackage, mUid)).thenReturn(IMPORTANCE_NONE);
 
-        // this app is NOT in the foreground
-        when(mActivityManager.getUidImportance(mUid)).thenReturn(IMPORTANCE_GONE);
+        setAppInForegroundForToasts(mUid, false);
 
         // enqueue toast -> system toast can still be enqueued
         ((INotificationManager) mService.mService).enqueueToast(testPackage, new Binder(),
@@ -4852,6 +4856,12 @@
         assertEquals(1, mService.mToastQueue.size());
     }
 
+    private void setAppInForegroundForToasts(int uid, boolean inForeground) {
+        int importance = (inForeground) ? IMPORTANCE_FOREGROUND : IMPORTANCE_NONE;
+        when(mActivityManager.getUidImportance(mUid)).thenReturn(importance);
+        when(mAtm.hasResumedActivity(uid)).thenReturn(inForeground);
+    }
+
     @Test
     public void testOnPanelRevealedAndHidden() {
         int items = 5;
@@ -5236,141 +5246,6 @@
     }
 
     @Test
-    public void testFlagBubbleNotifs_flag_phonecall() throws RemoteException {
-        // Bubbles are allowed!
-        setUpPrefsForBubbles(PKG, mUid, true /* global */, true /* app */, true /* channel */);
-
-        // Give it bubble metadata
-        Notification.BubbleMetadata data = getBubbleMetadataBuilder().build();
-        // Give it a person
-        Person person = new Person.Builder()
-                .setName("bubblebot")
-                .build();
-        // Make it a phone call
-        Notification.Builder nb = new Notification.Builder(mContext,
-                mTestNotificationChannel.getId())
-                .setCategory(CATEGORY_CALL)
-                .addPerson(person)
-                .setContentTitle("foo")
-                .setBubbleMetadata(data)
-                .setSmallIcon(android.R.drawable.sym_def_app_icon);
-
-        StatusBarNotification sbn = new StatusBarNotification(PKG, PKG, 1,
-                "testFlagBubbleNotifs_flag_phonecall", mUid, 0,
-                nb.build(), new UserHandle(mUid), null, 0);
-        // Make sure it has foreground service
-        sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
-        NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
-
-        mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
-                nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
-        waitForIdle();
-
-        // yes phone call, yes person, yes foreground service, yes bubble
-        assertTrue(mService.getNotificationRecord(
-                sbn.getKey()).getNotification().isBubbleNotification());
-    }
-
-    @Test
-    public void testFlagBubbleNotifs_noFlag_phonecall_noForegroundService() throws RemoteException {
-        // Bubbles are allowed!
-        setUpPrefsForBubbles(PKG, mUid, true /* global */, true /* app */, true /* channel */);
-
-        // Give it bubble metadata
-        Notification.BubbleMetadata data = getBubbleMetadataBuilder().build();
-        // Give it a person
-        Person person = new Person.Builder()
-                .setName("bubblebot")
-                .build();
-        // Make it a phone call
-        Notification.Builder nb = new Notification.Builder(mContext,
-                mTestNotificationChannel.getId())
-                .setCategory(CATEGORY_CALL)
-                .addPerson(person)
-                .setContentTitle("foo")
-                .setBubbleMetadata(data)
-                .setSmallIcon(android.R.drawable.sym_def_app_icon);
-
-        StatusBarNotification sbn = new StatusBarNotification(PKG, PKG, 1, null, mUid, 0,
-                nb.build(), new UserHandle(mUid), null, 0);
-        NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
-
-        mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
-                nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
-        waitForIdle();
-
-        // yes phone call, yes person, NO foreground service, no bubble
-        assertFalse(mService.getNotificationRecord(
-                sbn.getKey()).getNotification().isBubbleNotification());
-    }
-
-    @Test
-    public void testFlagBubbleNotifs_noFlag_phonecall_noPerson() throws RemoteException {
-        // Bubbles are allowed!
-        setUpPrefsForBubbles(PKG, mUid, true /* global */, true /* app */, true /* channel */);
-
-        // Give it bubble metadata
-        Notification.BubbleMetadata data = getBubbleMetadataBuilder().build();
-        // Make it a phone call
-        Notification.Builder nb = new Notification.Builder(mContext,
-                mTestNotificationChannel.getId())
-                .setCategory(CATEGORY_CALL)
-                .setContentTitle("foo")
-                .setBubbleMetadata(data)
-                .setSmallIcon(android.R.drawable.sym_def_app_icon);
-
-        StatusBarNotification sbn = new StatusBarNotification(PKG, PKG, 1,
-                "testFlagBubbleNotifs_noFlag_phonecall_noPerson", mUid, 0,
-                nb.build(), new UserHandle(mUid), null, 0);
-        // Make sure it has foreground service
-        sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
-        NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
-
-        mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
-                nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
-        waitForIdle();
-
-        // yes phone call, yes foreground service, BUT NO person, no bubble
-        assertFalse(mService.getNotificationRecord(
-                sbn.getKey()).getNotification().isBubbleNotification());
-    }
-
-    @Test
-    public void testFlagBubbleNotifs_noFlag_phonecall_noCategory() throws RemoteException {
-        // Bubbles are allowed!
-        setUpPrefsForBubbles(PKG, mUid, true /* global */, true /* app */, true /* channel */);
-
-        // Give it bubble metadata
-        Notification.BubbleMetadata data = getBubbleMetadataBuilder().build();
-        // Give it a person
-        Person person = new Person.Builder()
-                .setName("bubblebot")
-                .build();
-        // No category
-        Notification.Builder nb = new Notification.Builder(mContext,
-                mTestNotificationChannel.getId())
-                .addPerson(person)
-                .setContentTitle("foo")
-                .setBubbleMetadata(data)
-                .setSmallIcon(android.R.drawable.sym_def_app_icon);
-
-        StatusBarNotification sbn = new StatusBarNotification(PKG, PKG, 1,
-                "testFlagBubbleNotifs_noFlag_phonecall_noCategory", mUid, 0,
-                nb.build(), new UserHandle(mUid), null, 0);
-        // Make sure it has foreground service
-        sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
-        NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
-
-        mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
-                nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
-        waitForIdle();
-
-        // yes person, yes foreground service, BUT NO call, no bubble
-        assertFalse(mService.getNotificationRecord(
-                sbn.getKey()).getNotification().isBubbleNotification());
-    }
-
-    @Test
     public void testFlagBubbleNotifs_noFlag_messaging_appNotAllowed() throws RemoteException {
         // Bubbles are NOT allowed!
         setUpPrefsForBubbles(PKG, mUid, true /* global */, false /* app */, true /* channel */);
@@ -5431,77 +5306,6 @@
     }
 
     @Test
-    public void testFlagBubbleNotifs_noFlag_phonecall_notAllowed() throws RemoteException {
-        // Bubbles are not allowed!
-        setUpPrefsForBubbles(PKG, mUid, false /* global */, true /* app */, true /* channel */);
-
-        // Give it bubble metadata
-        Notification.BubbleMetadata data = getBubbleMetadataBuilder().build();
-        // Give it a person
-        Person person = new Person.Builder()
-                .setName("bubblebot")
-                .build();
-        // Make it a phone call
-        Notification.Builder nb = new Notification.Builder(mContext,
-                mTestNotificationChannel.getId())
-                .setCategory(CATEGORY_CALL)
-                .addPerson(person)
-                .setContentTitle("foo")
-                .setBubbleMetadata(data)
-                .setSmallIcon(android.R.drawable.sym_def_app_icon);
-
-        StatusBarNotification sbn = new StatusBarNotification(PKG, PKG, 1,
-                "testFlagBubbleNotifs_noFlag_phonecall_notAllowed", mUid, 0,
-                nb.build(), new UserHandle(mUid), null, 0);
-        // Make sure it has foreground service
-        sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
-
-        mBinderService.enqueueNotificationWithTag(PKG, PKG, sbn.getTag(),
-                sbn.getId(), sbn.getNotification(), sbn.getUserId());
-        waitForIdle();
-
-        // yes phone call, yes person, yes foreground service, but not allowed, no bubble
-        assertFalse(mService.getNotificationRecord(
-                sbn.getKey()).getNotification().isBubbleNotification());
-    }
-
-    @Test
-    public void testFlagBubbleNotifs_noFlag_phonecall_channelNotAllowed() throws RemoteException {
-        // Bubbles are allowed, but not on channel.
-        setUpPrefsForBubbles(PKG, mUid, true /* global */, true /* app */, false /* channel */);
-
-        // Give it bubble metadata
-        Notification.BubbleMetadata data = getBubbleMetadataBuilder().build();
-        // Give it a person
-        Person person = new Person.Builder()
-                .setName("bubblebot")
-                .build();
-        // Make it a phone call
-        Notification.Builder nb = new Notification.Builder(mContext,
-                mTestNotificationChannel.getId())
-                .setCategory(CATEGORY_CALL)
-                .addPerson(person)
-                .setContentTitle("foo")
-                .setBubbleMetadata(data)
-                .setSmallIcon(android.R.drawable.sym_def_app_icon);
-
-        StatusBarNotification sbn = new StatusBarNotification(PKG, PKG, 1,
-                "testFlagBubbleNotifs_noFlag_phonecall_channelNotAllowed", mUid, 0,
-                nb.build(), new UserHandle(mUid), null, 0);
-        // Make sure it has foreground service
-        sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
-        NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
-
-        mBinderService.enqueueNotificationWithTag(PKG, PKG, sbn.getTag(),
-                nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
-        waitForIdle();
-
-        // yes phone call, yes person, yes foreground service, but channel not allowed, no bubble
-        assertFalse(mService.getNotificationRecord(
-                sbn.getKey()).getNotification().isBubbleNotification());
-    }
-
-    @Test
     public void testCancelNotificationsFromApp_cancelsBubbles() throws Exception {
         final NotificationRecord nrBubble = generateNotificationRecord(mTestNotificationChannel);
         nrBubble.getSbn().getNotification().flags |= FLAG_BUBBLE;
@@ -5798,6 +5602,67 @@
     }
 
     @Test
+    public void testNotificationBubbleIsFlagRemoved_resetOnUpdate() throws Exception {
+        // Bubbles are allowed!
+        setUpPrefsForBubbles(PKG, mUid, true /* global */, true /* app */, true /* channel */);
+        // Notif with bubble metadata
+        NotificationRecord nr = generateMessageBubbleNotifRecord(mTestNotificationChannel,
+                "testNotificationBubbleIsFlagRemoved_resetOnUpdate");
+
+        mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+                nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
+        waitForIdle();
+        // Flag shouldn't be modified
+        NotificationRecord recordToCheck = mService.getNotificationRecord(nr.getSbn().getKey());
+        assertFalse(recordToCheck.isFlagBubbleRemoved());
+
+        // Notify we're not a bubble
+        mService.mNotificationDelegate.onNotificationBubbleChanged(nr.getKey(), false);
+        waitForIdle();
+        // Flag should be modified
+        recordToCheck = mService.getNotificationRecord(nr.getSbn().getKey());
+        assertTrue(recordToCheck.isFlagBubbleRemoved());
+
+
+        // Update the notif
+        mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+                nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
+        waitForIdle();
+        // And the flag is reset
+        recordToCheck = mService.getNotificationRecord(nr.getSbn().getKey());
+        assertFalse(recordToCheck.isFlagBubbleRemoved());
+    }
+
+    @Test
+    public void testNotificationBubbleIsFlagRemoved_resetOnBubbleChangedTrue() throws Exception {
+        // Bubbles are allowed!
+        setUpPrefsForBubbles(PKG, mUid, true /* global */, true /* app */, true /* channel */);
+        // Notif with bubble metadata
+        NotificationRecord nr = generateMessageBubbleNotifRecord(mTestNotificationChannel,
+                "testNotificationBubbleIsFlagRemoved_trueOnBubbleChangedTrue");
+
+        mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+                nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
+        waitForIdle();
+        // Flag shouldn't be modified
+        NotificationRecord recordToCheck = mService.getNotificationRecord(nr.getSbn().getKey());
+        assertFalse(recordToCheck.isFlagBubbleRemoved());
+
+        // Notify we're not a bubble
+        mService.mNotificationDelegate.onNotificationBubbleChanged(nr.getKey(), false);
+        waitForIdle();
+        // Flag should be modified
+        recordToCheck = mService.getNotificationRecord(nr.getSbn().getKey());
+        assertTrue(recordToCheck.isFlagBubbleRemoved());
+
+        // Notify we are a bubble
+        mService.mNotificationDelegate.onNotificationBubbleChanged(nr.getKey(), true);
+        waitForIdle();
+        // And the flag is reset
+        assertFalse(recordToCheck.isFlagBubbleRemoved());
+    }
+
+    @Test
     public void testOnBubbleNotificationSuppressionChanged() throws Exception {
         // Bubbles are allowed!
         setUpPrefsForBubbles(PKG, mUid, true /* global */, true /* app */, true /* channel */);
@@ -6173,7 +6038,7 @@
 
         // Messaging notification with shortcut info
         Notification.BubbleMetadata metadata =
-                getBubbleMetadataBuilder().createShortcutBubble("someshortcutId").build();
+                new Notification.BubbleMetadata.Builder("someshortcutId").build();
         Notification.Builder nb = getMessageStyleNotifBuilder(false /* addDefaultMetadata */,
                 null /* groupKey */, false /* isSummary */);
         nb.setBubbleMetadata(metadata);
@@ -6230,8 +6095,8 @@
                 ArgumentCaptor.forClass(LauncherApps.Callback.class);
 
         // Messaging notification with shortcut info
-        Notification.BubbleMetadata metadata =
-                getBubbleMetadataBuilder().createShortcutBubble("someshortcutId").build();
+        Notification.BubbleMetadata metadata = new Notification.BubbleMetadata.Builder(
+                "someshortcutId").build();
         Notification.Builder nb = getMessageStyleNotifBuilder(false /* addDefaultMetadata */,
                 null /* groupKey */, false /* isSummary */);
         nb.setBubbleMetadata(metadata);
@@ -6578,13 +6443,41 @@
 
         ShortcutInfo si = mock(ShortcutInfo.class);
         when(si.getShortLabel()).thenReturn("Hello");
+        when(si.isLongLived()).thenReturn(true);
         when(mLauncherApps.getShortcuts(any(), any())).thenReturn(Arrays.asList(si));
 
         List<ConversationChannelWrapper> conversations =
                 mBinderService.getConversationsForPackage(PKG_P, mUid).getList();
         assertEquals(si, conversations.get(0).getShortcutInfo());
         assertEquals(si, conversations.get(1).getShortcutInfo());
+    }
 
+    @Test
+    public void testGetConversationsForPackage_shortcut_notLongLived() throws Exception {
+        mService.setPreferencesHelper(mPreferencesHelper);
+        ArrayList<ConversationChannelWrapper> convos = new ArrayList<>();
+        ConversationChannelWrapper convo1 = new ConversationChannelWrapper();
+        NotificationChannel channel1 = new NotificationChannel("a", "a", 1);
+        channel1.setConversationId("parent1", "convo 1");
+        convo1.setNotificationChannel(channel1);
+        convos.add(convo1);
+
+        ConversationChannelWrapper convo2 = new ConversationChannelWrapper();
+        NotificationChannel channel2 = new NotificationChannel("b", "b", 1);
+        channel2.setConversationId("parent1", "convo 2");
+        convo2.setNotificationChannel(channel2);
+        convos.add(convo2);
+        when(mPreferencesHelper.getConversations(anyString(), anyInt())).thenReturn(convos);
+
+        ShortcutInfo si = mock(ShortcutInfo.class);
+        when(si.getShortLabel()).thenReturn("Hello");
+        when(si.isLongLived()).thenReturn(false);
+        when(mLauncherApps.getShortcuts(any(), any())).thenReturn(Arrays.asList(si));
+
+        List<ConversationChannelWrapper> conversations =
+                mBinderService.getConversationsForPackage(PKG_P, mUid).getList();
+        assertNull(conversations.get(0).getShortcutInfo());
+        assertNull(conversations.get(1).getShortcutInfo());
     }
 
     @Test
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/RoleObserverTest.java b/services/tests/uiservicestests/src/com/android/server/notification/RoleObserverTest.java
index e4d50c0..19ff683 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/RoleObserverTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/RoleObserverTest.java
@@ -65,6 +65,7 @@
 import com.android.server.notification.NotificationManagerService.NotificationAssistants;
 import com.android.server.notification.NotificationManagerService.NotificationListeners;
 import com.android.server.uri.UriGrantsManagerInternal;
+import com.android.server.wm.ActivityTaskManagerInternal;
 import com.android.server.wm.WindowManagerInternal;
 
 import org.junit.After;
@@ -147,6 +148,7 @@
                     mock(SnoozeHelper.class), mock(NotificationUsageStats.class),
                     mock(AtomicFile.class), mock(ActivityManager.class),
                     mock(GroupHelper.class), mock(IActivityManager.class),
+                    mock(ActivityTaskManagerInternal.class),
                     mock(UsageStatsManagerInternal.class),
                     mock(DevicePolicyManagerInternal.class), mock(IUriGrantsManager.class),
                     mock(UriGrantsManagerInternal.class),
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ValidateNotificationPeopleTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ValidateNotificationPeopleTest.java
index b1ee120..0bf105d 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/ValidateNotificationPeopleTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ValidateNotificationPeopleTest.java
@@ -16,11 +16,23 @@
 package com.android.server.notification;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.isNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.app.Notification;
 import android.app.Person;
+import android.content.ContentProvider;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.net.Uri;
 import android.os.Bundle;
+import android.os.UserManager;
+import android.provider.ContactsContract;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.text.SpannableString;
 
@@ -30,6 +42,7 @@
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -169,6 +182,64 @@
         assertStringArrayEquals("testPeopleArrayList", expected, result);
     }
 
+    @Test
+    public void testSearchContacts_workContact_queriesWorkContactProvider()
+            throws Exception {
+        final int personalUserId = 0;
+        final int workUserId = 12;
+        final int contactId = 12345;
+        final Context mockContext = mock(Context.class);
+        when(mockContext.getUserId()).thenReturn(personalUserId);
+        final UserManager mockUserManager = mock(UserManager.class);
+        when(mockContext.getSystemService(UserManager.class)).thenReturn(mockUserManager);
+        when(mockUserManager.getProfileIds(personalUserId, /* enabledOnly= */ true))
+                .thenReturn(new int[] {personalUserId, workUserId});
+        when(mockUserManager.isManagedProfile(workUserId)).thenReturn(true);
+        final ContentResolver mockContentResolver = mock(ContentResolver.class);
+        when(mockContext.getContentResolver()).thenReturn(mockContentResolver);
+        final Uri lookupUri = Uri.withAppendedPath(
+                ContactsContract.Contacts.CONTENT_LOOKUP_URI,
+                ContactsContract.Contacts.ENTERPRISE_CONTACT_LOOKUP_PREFIX + contactId);
+
+        new ValidateNotificationPeople().searchContacts(mockContext, lookupUri);
+
+        ArgumentCaptor<Uri> queryUri = ArgumentCaptor.forClass(Uri.class);
+        verify(mockContentResolver).query(
+                queryUri.capture(),
+                any(),
+                /* selection= */ isNull(),
+                /* selectionArgs= */ isNull(),
+                /* sortOrder= */ isNull());
+        assertEquals(workUserId, ContentProvider.getUserIdFromUri(queryUri.getValue()));
+    }
+
+    @Test
+    public void testSearchContacts_personalContact_queriesPersonalContactProvider()
+            throws Exception {
+        final int personalUserId = 0;
+        final int workUserId = 12;
+        final int contactId = 12345;
+        final Context mockContext = mock(Context.class);
+        when(mockContext.getUserId()).thenReturn(personalUserId);
+        final UserManager mockUserManager = mock(UserManager.class);
+        when(mockContext.getSystemService(UserManager.class)).thenReturn(mockUserManager);
+        final ContentResolver mockContentResolver = mock(ContentResolver.class);
+        when(mockContext.getContentResolver()).thenReturn(mockContentResolver);
+        final Uri lookupUri = Uri.withAppendedPath(
+                ContactsContract.Contacts.CONTENT_LOOKUP_URI, String.valueOf(contactId));
+
+        new ValidateNotificationPeople().searchContacts(mockContext, lookupUri);
+
+        ArgumentCaptor<Uri> queryUri = ArgumentCaptor.forClass(Uri.class);
+        verify(mockContentResolver).query(
+                queryUri.capture(),
+                any(),
+                /* selection= */ isNull(),
+                /* selectionArgs= */ isNull(),
+                /* sortOrder= */ isNull());
+        assertFalse(ContentProvider.uriHasUserId(queryUri.getValue()));
+    }
+
     private void assertStringArrayEquals(String message, String[] expected, String[] result) {
         String expectedString = Arrays.toString(expected);
         String resultString = Arrays.toString(result);
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java
index cee486f..108af89 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java
@@ -559,6 +559,7 @@
         assertTrue((ringerModeAffectedStreams & (1 << AudioSystem.STREAM_SYSTEM)) != 0);
         assertTrue((ringerModeAffectedStreams & (1 << AudioSystem.STREAM_ALARM)) != 0);
         assertTrue((ringerModeAffectedStreams & (1 << AudioSystem.STREAM_MUSIC)) != 0);
+        assertTrue((ringerModeAffectedStreams & (1 << AudioSystem.STREAM_ASSISTANT)) != 0);
     }
 
     @Test
@@ -579,6 +580,7 @@
         assertTrue((ringerModeAffectedStreams & (1 << AudioSystem.STREAM_SYSTEM)) != 0);
         assertTrue((ringerModeAffectedStreams & (1 << AudioSystem.STREAM_ALARM)) == 0);
         assertTrue((ringerModeAffectedStreams & (1 << AudioSystem.STREAM_MUSIC)) == 0);
+        assertTrue((ringerModeAffectedStreams & (1 << AudioSystem.STREAM_ASSISTANT)) == 0);
 
         // even when ringer is muted (since all ringer sounds cannot bypass DND),
         // system stream is still affected by ringer mode
@@ -601,6 +603,7 @@
                 != 0);
         assertTrue((ringerMutedRingerModeAffectedStreams & (1 << AudioSystem.STREAM_ALARM)) == 0);
         assertTrue((ringerMutedRingerModeAffectedStreams & (1 << AudioSystem.STREAM_MUSIC)) == 0);
+        assertTrue((ringerModeAffectedStreams & (1 << AudioSystem.STREAM_ASSISTANT)) == 0);
     }
 
     @Test
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityOptionsTest.java b/services/tests/wmtests/src/com/android/server/wm/ActivityOptionsTest.java
index c449049..2acb647 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityOptionsTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityOptionsTest.java
@@ -51,6 +51,7 @@
         opts.setLaunchTaskId(Integer.MAX_VALUE);
         opts.setLockTaskEnabled(true);
         opts.setRotationAnimationHint(ROTATION_ANIMATION_ROTATE);
+        opts.setTaskAlwaysOnTop(true);
         opts.setTaskOverlay(true, true);
         opts.setSplitScreenCreateMode(SPLIT_SCREEN_CREATE_MODE_BOTTOM_OR_RIGHT);
         Bundle optsBundle = opts.toBundle();
@@ -67,6 +68,7 @@
         assertEquals(Integer.MAX_VALUE, restoredOpts.getLaunchTaskId());
         assertTrue(restoredOpts.getLockTaskMode());
         assertEquals(ROTATION_ANIMATION_ROTATE, restoredOpts.getRotationAnimationHint());
+        assertTrue(restoredOpts.getTaskAlwaysOnTop());
         assertTrue(restoredOpts.getTaskOverlay());
         assertTrue(restoredOpts.canTaskOverlayResume());
         assertEquals(SPLIT_SCREEN_CREATE_MODE_BOTTOM_OR_RIGHT,
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java
index 52fc3de..12934ee 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStackTests.java
@@ -27,6 +27,7 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
 import static android.content.pm.ActivityInfo.FLAG_RESUME_WHILE_PAUSING;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doCallRealMethod;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
@@ -56,7 +57,6 @@
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
 
 import android.app.ActivityManager;
 import android.app.IApplicationThread;
@@ -1157,6 +1157,34 @@
     }
 
     @Test
+    public void testCheckBehindFullscreenActivity() {
+        final ActivityRecord bottomActivity =
+                new ActivityBuilder(mService).setStack(mStack).setTask(mTask).build();
+        final ActivityRecord topActivity =
+                new ActivityBuilder(mService).setStack(mStack).setTask(mTask).build();
+        doReturn(true).when(mStack).shouldBeVisible(any());
+        assertTrue(mStack.checkBehindFullscreenActivity(bottomActivity,
+                null /* handleBehindFullscreenActivity */));
+        assertFalse(mStack.checkBehindFullscreenActivity(topActivity,
+                null /* handleBehindFullscreenActivity */));
+
+        doReturn(false).when(topActivity).occludesParent();
+        assertFalse(mStack.checkBehindFullscreenActivity(bottomActivity,
+                null /* handleBehindFullscreenActivity */));
+        assertFalse(mStack.checkBehindFullscreenActivity(topActivity,
+                null /* handleBehindFullscreenActivity */));
+
+        final ActivityRecord finishingActivity =
+                new ActivityBuilder(mService).setStack(mStack).setTask(mTask).build();
+        finishingActivity.finishing = true;
+        doCallRealMethod().when(finishingActivity).occludesParent();
+        assertFalse(mStack.checkBehindFullscreenActivity(bottomActivity,
+                null /* handleBehindFullscreenActivity */));
+        assertFalse(mStack.checkBehindFullscreenActivity(topActivity,
+                null /* handleBehindFullscreenActivity */));
+    }
+
+    @Test
     public void testClearUnknownAppVisibilityBehindFullscreenActivity() {
         final UnknownAppVisibilityController unknownAppVisibilityController =
                 mDefaultDisplay.mDisplayContent.mUnknownAppVisibilityController;
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java
index 6eec649..ed400ea 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java
@@ -82,9 +82,8 @@
 import android.platform.test.annotations.Presubmit;
 import android.service.voice.IVoiceInteractionSession;
 import android.view.Gravity;
-import android.view.ITaskOrganizer;
-import android.view.IWindowContainer;
-import android.view.SurfaceControl;
+import android.window.ITaskOrganizer;
+import android.window.IWindowContainer;
 
 import androidx.test.filters.SmallTest;
 
@@ -975,7 +974,7 @@
 
         // Move activity to split-screen-primary stack and make sure it has the focus.
         TestSplitOrganizer splitOrg = new TestSplitOrganizer(mService, top.getDisplayId());
-        splitOrg.mPrimary.addChild(top.getRootTask(), 0 /* index */);
+        top.getRootTask().reparent(splitOrg.mPrimary, POSITION_BOTTOM);
         top.getRootTask().moveToFront("testWindowingModeOptionsLaunchAdjacent");
 
         // Activity must landed on split-screen-secondary when launch adjacent.
@@ -1001,8 +1000,8 @@
 
     static class TestSplitOrganizer extends ITaskOrganizer.Stub {
         final ActivityTaskManagerService mService;
-        TaskTile mPrimary;
-        TaskTile mSecondary;
+        Task mPrimary;
+        Task mSecondary;
         boolean mInSplit = false;
         int mDisplayId;
         TestSplitOrganizer(ActivityTaskManagerService service, int displayId) {
@@ -1014,19 +1013,16 @@
                     WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
             IWindowContainer primary = mService.mTaskOrganizerController.createRootTask(
                     displayId, WINDOWING_MODE_SPLIT_SCREEN_PRIMARY).token;
-            mPrimary = TaskTile.forToken(primary.asBinder());
+            mPrimary = WindowContainer.fromBinder(primary.asBinder()).asTask();
             IWindowContainer secondary = mService.mTaskOrganizerController.createRootTask(
                     displayId, WINDOWING_MODE_SPLIT_SCREEN_SECONDARY).token;
-            mSecondary = TaskTile.forToken(secondary.asBinder());
+            mSecondary = WindowContainer.fromBinder(secondary.asBinder()).asTask();
         }
         @Override
-        public void taskAppeared(ActivityManager.RunningTaskInfo info) {
+        public void onTaskAppeared(ActivityManager.RunningTaskInfo info) {
         }
         @Override
-        public void taskVanished(ActivityManager.RunningTaskInfo info) {
-        }
-        @Override
-        public void transactionReady(int id, SurfaceControl.Transaction t) {
+        public void onTaskVanished(ActivityManager.RunningTaskInfo info) {
         }
         @Override
         public void onTaskInfoChanged(ActivityManager.RunningTaskInfo info) {
@@ -1045,7 +1041,7 @@
                     for (int i = dc.getStackCount() - 1; i >= 0; --i) {
                         if (!WindowConfiguration.isSplitScreenWindowingMode(
                                 dc.getStackAt(i).getWindowingMode())) {
-                            mSecondary.addChild(dc.getStackAt(i), 0);
+                            dc.getStackAt(i).reparent(mSecondary, POSITION_BOTTOM);
                         }
                     }
                 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
index 4634e2d..716369d 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
@@ -464,7 +464,7 @@
         ActivityStack build() {
             final int stackId = mStackId >= 0 ? mStackId : mDisplay.getNextStackId();
             final ActivityStack stack = mDisplay.createStackUnchecked(mWindowingMode,
-                    mActivityType, stackId, mOnTop, mInfo, mIntent);
+                    mActivityType, stackId, mOnTop, mInfo, mIntent, false /* createdByOrganizer */);
             final ActivityStackSupervisor supervisor = mRootWindowContainer.mStackSupervisor;
 
             if (mCreateActivity) {
diff --git a/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java b/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java
index c71d819..08e492a 100644
--- a/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AppTransitionTests.java
@@ -28,7 +28,6 @@
 
 import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
 
@@ -38,7 +37,6 @@
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 
-import android.graphics.Rect;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.platform.test.annotations.Presubmit;
@@ -70,7 +68,7 @@
 
     @Before
     public void setUp() throws Exception {
-        doNothing().when(mWm.mRoot).performSurfacePlacement(anyBoolean());
+        doNothing().when(mWm.mRoot).performSurfacePlacement();
         mDc = mWm.getDefaultDisplayContentLocked();
     }
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenTests.java b/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenTests.java
index 6cc57f4..cf3cfec 100644
--- a/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenTests.java
@@ -174,7 +174,7 @@
                 null /* freezeThisOneIfNeeded */, false /* forceUpdate */);
         // In this test, DC will not get config update. Set the waiting flag to false.
         mDisplayContent.mWaitingForConfig = false;
-        mWm.mRoot.performSurfacePlacement(false /* recoveringMemory */);
+        mWm.mRoot.performSurfacePlacement();
         assertEquals(SCREEN_ORIENTATION_REVERSE_LANDSCAPE, mDisplayContent.getLastOrientation());
         assertTrue(appWindow.mResizeReported);
         appWindow.removeImmediately();
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java b/services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java
index cc9173a..12bdec6 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayAreaPolicyBuilderTest.java
@@ -78,11 +78,11 @@
         final Feature bar;
 
         DisplayAreaPolicyBuilder.Result policy = new DisplayAreaPolicyBuilder()
-                .addFeature(foo = new Feature.Builder(mPolicy, "Foo")
+                .addFeature(foo = new Feature.Builder(mPolicy, "Foo", 0)
                         .upTo(TYPE_STATUS_BAR)
                         .and(TYPE_NAVIGATION_BAR)
                         .build())
-                .addFeature(bar = new Feature.Builder(mPolicy, "Bar")
+                .addFeature(bar = new Feature.Builder(mPolicy, "Bar", 1)
                         .all()
                         .except(TYPE_STATUS_BAR)
                         .build())
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
index b3c6b22..218c816 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
@@ -1016,6 +1016,15 @@
         assertTrue(mDisplayContent.getDisplayRotation().shouldRotateSeamlessly(
                 ROTATION_0 /* oldRotation */, ROTATION_90 /* newRotation */,
                 false /* forceUpdate */));
+
+        final Rect outFrame = new Rect();
+        final Rect outInsets = new Rect();
+        final Rect outStableInsets = new Rect();
+        final Rect outSurfaceInsets = new Rect();
+        mAppWindow.getAnimationFrames(outFrame, outInsets, outStableInsets, outSurfaceInsets);
+        // The animation frames should not be rotated because display hasn't rotated.
+        assertEquals(mDisplayContent.getBounds(), outFrame);
+
         // The display should keep current orientation and the rotated configuration should apply
         // to the activity.
         assertEquals(config.orientation, mDisplayContent.getConfiguration().orientation);
diff --git a/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java
index a380ece..db7bce4 100644
--- a/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/InsetsStateControllerTest.java
@@ -17,11 +17,14 @@
 package com.android.server.wm;
 
 import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
+import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
 import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
+import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
 import static android.view.InsetsState.ITYPE_IME;
 import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
 import static android.view.InsetsState.ITYPE_STATUS_BAR;
 import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL;
+import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
 import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
 
@@ -131,6 +134,76 @@
     }
 
     @Test
+    public void testStripForDispatch_multiwindow_alwaysOnTop() {
+        final WindowState statusBar = createWindow(null, TYPE_APPLICATION, "statusBar");
+        final WindowState navBar = createWindow(null, TYPE_APPLICATION, "navBar");
+        final WindowState app = createWindow(null, TYPE_APPLICATION, "app");
+
+        getController().getSourceProvider(ITYPE_STATUS_BAR).setWindow(statusBar, null, null);
+        getController().getSourceProvider(ITYPE_NAVIGATION_BAR).setWindow(navBar, null, null);
+        app.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+        app.setAlwaysOnTop(true);
+
+        assertNull(getController().getInsetsForDispatch(app).peekSource(ITYPE_STATUS_BAR));
+        assertNull(getController().getInsetsForDispatch(app).peekSource(ITYPE_NAVIGATION_BAR));
+    }
+
+    @Test
+    public void testStripForDispatch_belowIme() {
+        final WindowState app = createWindow(null, TYPE_APPLICATION, "app");
+        final WindowState ime = createWindow(null, TYPE_APPLICATION, "ime");
+
+        getController().getSourceProvider(ITYPE_IME).setWindow(ime, null, null);
+
+        assertNotNull(getController().getInsetsForDispatch(app).peekSource(ITYPE_IME));
+    }
+
+    @Test
+    public void testStripForDispatch_aboveIme() {
+        final WindowState ime = createWindow(null, TYPE_APPLICATION, "ime");
+        final WindowState app = createWindow(null, TYPE_APPLICATION, "app");
+
+        getController().getSourceProvider(ITYPE_IME).setWindow(ime, null, null);
+
+        assertNull(getController().getInsetsForDispatch(app).peekSource(ITYPE_IME));
+    }
+
+    @Test
+    public void testStripForDispatch_childWindow_altFocusable() {
+        final WindowState app = createWindow(null, TYPE_APPLICATION, "app");
+
+        final WindowState child = createWindow(app, TYPE_APPLICATION, "child");
+        child.mAttrs.flags |= FLAG_ALT_FOCUSABLE_IM;
+
+        final WindowState ime = createWindow(null, TYPE_APPLICATION, "ime");
+
+        // IME cannot be the IME target.
+        ime.mAttrs.flags |= FLAG_NOT_FOCUSABLE;
+
+        getController().getSourceProvider(ITYPE_IME).setWindow(ime, null, null);
+
+        assertNull(getController().getInsetsForDispatch(child).peekSource(ITYPE_IME));
+    }
+
+    @Test
+    public void testStripForDispatch_childWindow_splitScreen() {
+        final WindowState app = createWindow(null, TYPE_APPLICATION, "app");
+
+        final WindowState child = createWindow(app, TYPE_APPLICATION, "child");
+        child.mAttrs.flags |= FLAG_NOT_FOCUSABLE;
+        child.setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
+
+        final WindowState ime = createWindow(null, TYPE_APPLICATION, "ime");
+
+        // IME cannot be the IME target.
+        ime.mAttrs.flags |= FLAG_NOT_FOCUSABLE;
+
+        getController().getSourceProvider(ITYPE_IME).setWindow(ime, null, null);
+
+        assertNull(getController().getInsetsForDispatch(child).peekSource(ITYPE_IME));
+    }
+
+    @Test
     public void testImeForDispatch() {
         final WindowState statusBar = createWindow(null, TYPE_APPLICATION, "statusBar");
         final WindowState ime = createWindow(null, TYPE_APPLICATION, "ime");
diff --git a/services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java b/services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java
index 8f3ff52..ae467c0 100644
--- a/services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java
@@ -120,7 +120,7 @@
                 .build();
         mTestTask.mUserId = TEST_USER_ID;
         mTestTask.mLastNonFullscreenBounds = TEST_BOUNDS;
-        mTestTask.hasBeenVisible = true;
+        mTestTask.setHasBeenVisible(true);
 
         mTaskWithDifferentComponent = new TaskBuilder(mSupervisor)
                 .setComponent(ALTERNATIVE_COMPONENT).build();
@@ -346,7 +346,7 @@
                 .build();
         anotherTaskOfTheSameUser.setWindowingMode(WINDOWING_MODE_FREEFORM);
         anotherTaskOfTheSameUser.setBounds(200, 300, 400, 500);
-        anotherTaskOfTheSameUser.hasBeenVisible = true;
+        anotherTaskOfTheSameUser.setHasBeenVisible(true);
         mTarget.saveTask(anotherTaskOfTheSameUser);
 
         stack = mTestDisplay.createStack(TEST_WINDOWING_MODE,
@@ -358,7 +358,7 @@
                 .build();
         anotherTaskOfDifferentUser.setWindowingMode(WINDOWING_MODE_FREEFORM);
         anotherTaskOfDifferentUser.setBounds(300, 400, 500, 600);
-        anotherTaskOfDifferentUser.hasBeenVisible = true;
+        anotherTaskOfDifferentUser.setHasBeenVisible(true);
         mTarget.saveTask(anotherTaskOfDifferentUser);
 
         mTarget.onCleanupUser(TEST_USER_ID);
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
index 66566bc..8846fb8 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
@@ -21,6 +21,7 @@
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
 import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
+import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
 import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
 import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
 import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
@@ -28,6 +29,7 @@
 import static android.content.Intent.FLAG_ACTIVITY_NEW_DOCUMENT;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.view.Display.DEFAULT_DISPLAY;
+import static android.view.Display.TYPE_VIRTUAL;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
@@ -54,6 +56,7 @@
 
 import android.app.ActivityManager.RecentTaskInfo;
 import android.app.ActivityManager.RunningTaskInfo;
+import android.app.ActivityOptions;
 import android.app.ActivityTaskManager;
 import android.app.WindowConfiguration;
 import android.content.ComponentName;
@@ -681,24 +684,19 @@
      * Tests that tasks on singleTaskDisplay are not visible and not trimmed/removed.
      */
     @Test
-    public void testVisibleTasks_singleTaskDisplay() {
+    public void testVisibleTasks_alwaysOnTop() {
         mRecentTasks.setOnlyTestVisibleRange();
         mRecentTasks.setParameters(-1 /* min */, 3 /* max */, -1 /* ms */);
 
-        final DisplayContent singleTaskDisplay =
-                addNewDisplayContentAt(DisplayContent.POSITION_TOP);
-        singleTaskDisplay.setDisplayToSingleTaskInstance();
-        ActivityStack singleTaskStack = singleTaskDisplay.createStack(
-                WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
+        final DisplayContent display = mRootWindowContainer.getDefaultDisplay();
+        final Task alwaysOnTopTask = display.createStack(WINDOWING_MODE_MULTI_WINDOW,
+                ACTIVITY_TYPE_STANDARD, true /* onTop */);
+        alwaysOnTopTask.setAlwaysOnTop(true);
 
-        Task excludedTask1 = createTaskBuilder(".ExcludedTask1")
-                .setStack(singleTaskStack)
-                .build();
+        assertFalse("Always on top tasks should not be visible recents",
+                mRecentTasks.isVisibleRecentTask(alwaysOnTopTask));
 
-        assertFalse("Tasks on singleTaskDisplay should not be visible recents",
-                mRecentTasks.isVisibleRecentTask(excludedTask1));
-
-        mRecentTasks.add(excludedTask1);
+        mRecentTasks.add(alwaysOnTopTask);
 
         // Add N+1 visible tasks.
         mRecentTasks.add(mTasks.get(0));
@@ -1115,7 +1113,6 @@
                 () -> mService.moveTaskToStack(0, INVALID_STACK_ID, true));
         assertSecurityException(expectCallable,
                 () -> mService.setTaskWindowingModeSplitScreenPrimary(0, true));
-        assertSecurityException(expectCallable, () -> mService.dismissPip(true, 0));
         assertSecurityException(expectCallable,
                 () -> mService.moveTopActivityToPinnedStack(INVALID_STACK_ID, new Rect()));
         assertSecurityException(expectCallable, () -> mService.getAllStackInfos());
@@ -1366,12 +1363,12 @@
         public boolean mLastAllowed;
 
         @Override
-        void getTasks(int maxNum, List<RunningTaskInfo> list, int ignoreActivityType,
-                int ignoreWindowingMode, RootWindowContainer root,
-                int callingUid, boolean allowed, boolean crossUser, ArraySet<Integer> profileIds) {
+        void getTasks(int maxNum, List<RunningTaskInfo> list, boolean filterOnlyVisibleRecents,
+                RootWindowContainer root, int callingUid, boolean allowed, boolean crossUser,
+                ArraySet<Integer> profileIds) {
             mLastAllowed = allowed;
-            super.getTasks(maxNum, list, ignoreActivityType, ignoreWindowingMode, root,
-                    callingUid, allowed, crossUser, profileIds);
+            super.getTasks(maxNum, list, filterOnlyVisibleRecents, root, callingUid, allowed,
+                    crossUser, profileIds);
         }
     }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
index 406affc..da07bac 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
@@ -100,7 +100,7 @@
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        doNothing().when(mWm.mRoot).performSurfacePlacement(anyBoolean());
+        doNothing().when(mWm.mRoot).performSurfacePlacement();
         when(mMockRunner.asBinder()).thenReturn(new Binder());
         mDefaultDisplay = mWm.mRoot.getDefaultDisplay();
         mController = spy(new RecentsAnimationController(mWm, mMockRunner, mAnimationCallbacks,
@@ -403,11 +403,11 @@
                 wallpapers.get(0).getConfiguration().orientation);
 
         // Wallpaper's transform state is controlled by home, so the invocation should be no-op.
-        wallpaperWindowToken.clearFixedRotationTransform();
+        wallpaperWindowToken.finishFixedRotationTransform();
         assertTrue(wallpaperWindowToken.hasFixedRotationTransform());
 
         // Wallpaper's transform state should be cleared with home.
-        homeActivity.clearFixedRotationTransform();
+        homeActivity.finishFixedRotationTransform();
         assertFalse(wallpaperWindowToken.hasFixedRotationTransform());
     }
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/RootActivityContainerTests.java b/services/tests/wmtests/src/com/android/server/wm/RootActivityContainerTests.java
index 0ef2582..e841e43 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RootActivityContainerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RootActivityContainerTests.java
@@ -788,6 +788,22 @@
     }
 
     @Test
+    public void testGetValidLaunchStackOnDisplayWithCandidateRootTask() {
+        // Create a root task with an activity on secondary display.
+        final TestDisplayContent secondaryDisplay = new TestDisplayContent.Builder(mService, 300,
+                600).build();
+        final Task task = new ActivityTestsBase.StackBuilder(mRootWindowContainer).setDisplay(
+                secondaryDisplay).build();
+        final ActivityRecord activity = new ActivityTestsBase.ActivityBuilder(mService)
+                .setTask(task).build();
+
+        // Make sure the root task is valid and can be reused on default display.
+        final ActivityStack stack = mRootWindowContainer.getValidLaunchStackOnDisplay(
+                DEFAULT_DISPLAY, activity, task, null, null);
+        assertEquals(task, stack);
+    }
+
+    @Test
     public void testSwitchUser_missingHomeRootTask() {
         doReturn(mFullscreenStack).when(mRootWindowContainer).getTopDisplayFocusedStack();
 
diff --git a/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java b/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java
index 0d55654..d6a67ab 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java
@@ -16,9 +16,6 @@
 
 package com.android.server.wm;
 
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
-import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
-
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertEquals;
@@ -82,9 +79,8 @@
         // collected from all tasks across all the stacks
         final int numFetchTasks = 5;
         ArrayList<RunningTaskInfo> tasks = new ArrayList<>();
-        mRunningTasks.getTasks(5, tasks, ACTIVITY_TYPE_UNDEFINED, WINDOWING_MODE_UNDEFINED,
-                mRootWindowContainer, -1 /* callingUid */, true /* allowed */,
-                true /*crossUser */, PROFILE_IDS);
+        mRunningTasks.getTasks(5, tasks, false /* filterOnlyVisibleRecents */, mRootWindowContainer,
+                -1 /* callingUid */, true /* allowed */, true /*crossUser */, PROFILE_IDS);
         assertThat(tasks).hasSize(numFetchTasks);
         for (int i = 0; i < numFetchTasks; i++) {
             assertEquals(numTasks - i - 1, tasks.get(i).id);
@@ -93,9 +89,9 @@
         // Ensure that requesting more than the total number of tasks only returns the subset
         // and does not crash
         tasks.clear();
-        mRunningTasks.getTasks(100, tasks, ACTIVITY_TYPE_UNDEFINED, WINDOWING_MODE_UNDEFINED,
-                mRootWindowContainer, -1 /* callingUid */, true /* allowed */,
-                true /* crossUser */, PROFILE_IDS);
+        mRunningTasks.getTasks(100, tasks, false /* filterOnlyVisibleRecents */,
+                mRootWindowContainer, -1 /* callingUid */, true /* allowed */, true /* crossUser */,
+                PROFILE_IDS);
         assertThat(tasks).hasSize(numTasks);
         for (int i = 0; i < numTasks; i++) {
             assertEquals(numTasks - i - 1, tasks.get(i).id);
@@ -119,9 +115,9 @@
 
         final int numFetchTasks = 5;
         final ArrayList<RunningTaskInfo> tasks = new ArrayList<>();
-        mRunningTasks.getTasks(numFetchTasks, tasks, ACTIVITY_TYPE_UNDEFINED,
-                WINDOWING_MODE_UNDEFINED, mRootWindowContainer, -1 /* callingUid */,
-                true /* allowed */, true /*crossUser */, PROFILE_IDS);
+        mRunningTasks.getTasks(numFetchTasks, tasks, false /* filterOnlyVisibleRecents */,
+                mRootWindowContainer, -1 /* callingUid */, true /* allowed */, true /*crossUser */,
+                PROFILE_IDS);
         assertThat(tasks).hasSize(numFetchTasks);
         for (int i = 0; i < tasks.size(); i++) {
             final Bundle extras = tasks.get(i).baseIntent.getExtras();
diff --git a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
index edf81ea..893a145 100644
--- a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
@@ -481,7 +481,7 @@
         // The letterbox needs a main window to layout.
         addWindowToActivity(mActivity);
         // Compute the frames of the window and invoke {@link ActivityRecord#layoutLetterbox}.
-        mActivity.mRootWindowContainer.performSurfacePlacement(false /* recoveringMemory */);
+        mActivity.mRootWindowContainer.performSurfacePlacement();
         // The letterbox insets should be [350, 0 - 350, 0].
         assertEquals(new Rect(mActivity.getBounds().left, 0, dh - mActivity.getBounds().right, 0),
                 mActivity.getLetterboxInsets());
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java
index 71c837e..4cc84a6 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java
@@ -37,6 +37,7 @@
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+import static com.android.server.wm.WindowContainer.POSITION_TOP;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -60,10 +61,8 @@
 import android.util.ArrayMap;
 import android.util.Rational;
 import android.view.Display;
-import android.view.ITaskOrganizer;
-import android.view.IWindowContainer;
-import android.view.SurfaceControl;
-import android.view.WindowContainerTransaction;
+import android.window.ITaskOrganizer;
+import android.window.WindowContainerTransaction;
 
 import androidx.test.filters.SmallTest;
 
@@ -74,7 +73,7 @@
 import java.util.List;
 
 /**
- * Test class for {@link ITaskOrganizer} and {@link android.app.ITaskOrganizerController}.
+ * Test class for {@link ITaskOrganizer} and {@link android.window.ITaskOrganizerController}.
  *
  * Build/Install/Run:
  *  atest WmTests:TaskOrganizerTests
@@ -97,130 +96,181 @@
         return registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
     }
 
+    Task createTask(ActivityStack stack, boolean fakeDraw) {
+        final Task task = createTaskInStack(stack, 0);
+
+        if (fakeDraw) {
+            task.setHasBeenVisible(true);
+        }
+        return task;
+    }
+
+    Task createTask(ActivityStack stack) {
+        // Fake draw notifications for most of our tests.
+        return createTask(stack, true);
+    }
+
+    ActivityStack createStack() {
+        return createTaskStackOnDisplay(mDisplayContent);
+    }
+
     @Test
     public void testAppearVanish() throws RemoteException {
-        final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stack, 0 /* userId */);
+        final ActivityStack stack = createStack();
+        final Task task = createTask(stack);
         final ITaskOrganizer organizer = registerMockOrganizer();
 
         task.setTaskOrganizer(organizer);
-        verify(organizer).taskAppeared(any());
+        verify(organizer).onTaskAppeared(any());
 
         task.removeImmediately();
-        verify(organizer).taskVanished(any());
+        verify(organizer).onTaskVanished(any());
+    }
+
+    @Test
+    public void testAppearWaitsForVisibility() throws RemoteException {
+        final ActivityStack stack = createStack();
+        final Task task = createTask(stack, false);
+        final ITaskOrganizer organizer = registerMockOrganizer();
+
+        task.setTaskOrganizer(organizer);
+
+        verify(organizer, never()).onTaskAppeared(any());
+        task.setHasBeenVisible(true);
+        assertTrue(stack.getHasBeenVisible());
+
+        verify(organizer).onTaskAppeared(any());
+
+        task.removeImmediately();
+        verify(organizer).onTaskVanished(any());
+    }
+
+    @Test
+    public void testNoVanishedIfNoAppear() throws RemoteException {
+        final ActivityStack stack = createStack();
+        final Task task = createTask(stack, false /* hasBeenVisible */);
+        final ITaskOrganizer organizer = registerMockOrganizer();
+
+        // In this test we skip making the Task visible, and verify
+        // that even though a TaskOrganizer is set remove doesn't emit
+        // a vanish callback, because we never emitted appear.
+        task.setTaskOrganizer(organizer);
+        verify(organizer, never()).onTaskAppeared(any());
+        task.removeImmediately();
+        verify(organizer, never()).onTaskVanished(any());
     }
 
     @Test
     public void testSwapOrganizer() throws RemoteException {
-        final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stack, 0 /* userId */);
+        final ActivityStack stack = createStack();
+        final Task task = createTask(stack);
         final ITaskOrganizer organizer = registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
         final ITaskOrganizer organizer2 = registerMockOrganizer(WINDOWING_MODE_PINNED);
 
         task.setTaskOrganizer(organizer);
-        verify(organizer).taskAppeared(any());
+        verify(organizer).onTaskAppeared(any());
         task.setTaskOrganizer(organizer2);
-        verify(organizer).taskVanished(any());
-        verify(organizer2).taskAppeared(any());
+        verify(organizer).onTaskVanished(any());
+        verify(organizer2).onTaskAppeared(any());
     }
 
     @Test
     public void testSwapWindowingModes() throws RemoteException {
-        final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stack, 0 /* userId */);
+        final ActivityStack stack = createStack();
+        final Task task = createTask(stack);
         final ITaskOrganizer organizer = registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
         final ITaskOrganizer organizer2 = registerMockOrganizer(WINDOWING_MODE_PINNED);
 
         stack.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
-        verify(organizer).taskAppeared(any());
+        verify(organizer).onTaskAppeared(any());
         stack.setWindowingMode(WINDOWING_MODE_PINNED);
-        verify(organizer).taskVanished(any());
-        verify(organizer2).taskAppeared(any());
+        verify(organizer).onTaskVanished(any());
+        verify(organizer2).onTaskAppeared(any());
     }
 
     @Test
     public void testClearOrganizer() throws RemoteException {
-        final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stack, 0 /* userId */);
+        final ActivityStack stack = createStack();
+        final Task task = createTask(stack);
         final ITaskOrganizer organizer = registerMockOrganizer();
 
         stack.setTaskOrganizer(organizer);
-        verify(organizer).taskAppeared(any());
-        assertTrue(stack.isControlledByTaskOrganizer());
+        verify(organizer).onTaskAppeared(any());
+        assertTrue(stack.isOrganized());
 
         stack.setTaskOrganizer(null);
-        verify(organizer).taskVanished(any());
-        assertFalse(stack.isControlledByTaskOrganizer());
+        verify(organizer).onTaskVanished(any());
+        assertFalse(stack.isOrganized());
     }
 
     @Test
     public void testUnregisterOrganizer() throws RemoteException {
-        final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stack, 0 /* userId */);
+        final ActivityStack stack = createStack();
+        final Task task = createTask(stack);
         final ITaskOrganizer organizer = registerMockOrganizer();
 
         stack.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
-        verify(organizer).taskAppeared(any());
-        assertTrue(stack.isControlledByTaskOrganizer());
+        verify(organizer).onTaskAppeared(any());
+        assertTrue(stack.isOrganized());
 
         mWm.mAtmService.mTaskOrganizerController.unregisterTaskOrganizer(organizer);
-        verify(organizer).taskVanished(any());
-        assertFalse(stack.isControlledByTaskOrganizer());
+        verify(organizer).onTaskVanished(any());
+        assertFalse(stack.isOrganized());
     }
 
     @Test
     public void testUnregisterOrganizerReturnsRegistrationToPrevious() throws RemoteException {
-        final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stack, 0 /* userId */);
-        final ActivityStack stack2 = createTaskStackOnDisplay(mDisplayContent);
-        final Task task2 = createTaskInStack(stack2, 0 /* userId */);
-        final ActivityStack stack3 = createTaskStackOnDisplay(mDisplayContent);
-        final Task task3 = createTaskInStack(stack3, 0 /* userId */);
+        final ActivityStack stack = createStack();
+        final Task task = createTask(stack);
+        final ActivityStack stack2 = createStack();
+        final Task task2 = createTask(stack2);
+        final ActivityStack stack3 = createStack();
+        final Task task3 = createTask(stack3);
         final ITaskOrganizer organizer = registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
 
         // First organizer is registered, verify a task appears when changing windowing mode
         stack.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
-        verify(organizer, times(1)).taskAppeared(any());
-        assertTrue(stack.isControlledByTaskOrganizer());
+        verify(organizer, times(1)).onTaskAppeared(any());
+        assertTrue(stack.isOrganized());
 
         // Now we replace the registration and1 verify the new organizer receives tasks
         // newly entering the windowing mode.
         final ITaskOrganizer organizer2 = registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
         stack2.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
-        verify(organizer2).taskAppeared(any());
-        assertTrue(stack2.isControlledByTaskOrganizer());
+        verify(organizer2).onTaskAppeared(any());
+        assertTrue(stack2.isOrganized());
 
         // Now we unregister the second one, the first one should automatically be reregistered
         // so we verify that it's now seeing changes.
         mWm.mAtmService.mTaskOrganizerController.unregisterTaskOrganizer(organizer2);
 
         stack3.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
-        verify(organizer, times(2)).taskAppeared(any());
-        assertTrue(stack3.isControlledByTaskOrganizer());
+        verify(organizer, times(2)).onTaskAppeared(any());
+        assertTrue(stack3.isOrganized());
     }
 
     @Test
     public void testRegisterTaskOrganizerStackWindowingModeChanges() throws RemoteException {
         final ITaskOrganizer organizer = registerMockOrganizer(WINDOWING_MODE_PINNED);
 
-        final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stack, 0 /* userId */);
-        final Task task2 = createTaskInStack(stack, 0 /* userId */);
+        final ActivityStack stack = createStack();
+        final Task task = createTask(stack);
+        final Task task2 = createTask(stack);
         stack.setWindowingMode(WINDOWING_MODE_PINNED);
-        verify(organizer, times(1)).taskAppeared(any());
+        verify(organizer, times(1)).onTaskAppeared(any());
 
         stack.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
-        verify(organizer, times(1)).taskVanished(any());
+        verify(organizer, times(1)).onTaskVanished(any());
     }
 
     @Test
     public void testRegisterTaskOrganizerWithExistingTasks() throws RemoteException {
-        final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stack, 0 /* userId */);
+        final ActivityStack stack = createStack();
+        final Task task = createTask(stack);
         stack.setWindowingMode(WINDOWING_MODE_PINNED);
 
         final ITaskOrganizer organizer = registerMockOrganizer(WINDOWING_MODE_PINNED);
-        verify(organizer, times(1)).taskAppeared(any());
+        verify(organizer, times(1)).onTaskAppeared(any());
     }
 
     @Test
@@ -232,7 +282,7 @@
         WindowContainerTransaction t = new WindowContainerTransaction();
         Rect newBounds = new Rect(10, 10, 100, 100);
         t.setBounds(task.mRemoteToken, new Rect(10, 10, 100, 100));
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(t);
         assertEquals(newBounds, task.getBounds());
     }
 
@@ -247,7 +297,7 @@
         assertEquals(stack.mRemoteToken, info.stackToken);
         Rect newBounds = new Rect(10, 10, 100, 100);
         t.setBounds(info.stackToken, new Rect(10, 10, 100, 100));
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(t);
         assertEquals(newBounds, stack.getBounds());
     }
 
@@ -258,7 +308,7 @@
         final WindowContainerTransaction t = new WindowContainerTransaction();
 
         t.setWindowingMode(stack.mRemoteToken, WINDOWING_MODE_FULLSCREEN);
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(t);
 
         assertEquals(WINDOWING_MODE_FULLSCREEN, stack.getWindowingMode());
     }
@@ -271,7 +321,7 @@
 
         t.setWindowingMode(stack.mRemoteToken, WINDOWING_MODE_PINNED);
         t.setActivityWindowingMode(stack.mRemoteToken, WINDOWING_MODE_FULLSCREEN);
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(t);
 
         assertEquals(WINDOWING_MODE_FULLSCREEN, record.getWindowingMode());
         assertEquals(WINDOWING_MODE_PINNED, stack.getWindowingMode());
@@ -286,10 +336,10 @@
         WindowContainerTransaction t = new WindowContainerTransaction();
         assertTrue(task.isFocusable());
         t.setFocusable(stack.mRemoteToken, false);
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(t);
         assertFalse(task.isFocusable());
         t.setFocusable(stack.mRemoteToken, true);
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(t);
         assertTrue(task.isFocusable());
     }
 
@@ -301,10 +351,10 @@
         WindowContainerTransaction t = new WindowContainerTransaction();
         assertTrue(stack.shouldBeVisible(null));
         t.setHidden(stack.mRemoteToken, true);
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(t);
         assertFalse(stack.shouldBeVisible(null));
         t.setHidden(stack.mRemoteToken, false);
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(t);
         assertTrue(stack.shouldBeVisible(null));
     }
 
@@ -316,19 +366,19 @@
         final Task task = stack.getTopMostTask();
         WindowContainerTransaction t = new WindowContainerTransaction();
         t.setBounds(task.mRemoteToken, new Rect(10, 10, 100, 100));
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(t);
         final int origScreenWDp = task.getConfiguration().screenHeightDp;
         final int origScreenHDp = task.getConfiguration().screenHeightDp;
         t = new WindowContainerTransaction();
         // verify that setting config overrides on parent restricts children.
         t.setScreenSizeDp(stack.mRemoteToken, origScreenWDp, origScreenHDp);
         t.setBounds(task.mRemoteToken, new Rect(10, 10, 150, 200));
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(t);
         assertEquals(origScreenHDp, task.getConfiguration().screenHeightDp);
         t = new WindowContainerTransaction();
         t.setScreenSizeDp(stack.mRemoteToken, Configuration.SCREEN_WIDTH_DP_UNDEFINED,
                 Configuration.SCREEN_HEIGHT_DP_UNDEFINED);
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(t);
         assertNotEquals(origScreenHDp, task.getConfiguration().screenHeightDp);
     }
 
@@ -349,45 +399,62 @@
         assertEquals(ACTIVITY_TYPE_UNDEFINED, info2.topActivityType);
 
         DisplayContent dc = mWm.mRoot.getDisplayContent(Display.DEFAULT_DISPLAY);
-        List<TaskTile> infos = getTaskTiles(dc);
+        List<Task> infos = getTasksCreatedByOrganizer(dc);
         assertEquals(2, infos.size());
 
         assertTrue(mWm.mAtmService.mTaskOrganizerController.deleteRootTask(info1.token));
-        infos = getTaskTiles(dc);
+        infos = getTasksCreatedByOrganizer(dc);
         assertEquals(1, infos.size());
         assertEquals(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY, infos.get(0).getWindowingMode());
     }
 
     @Test
     public void testTileAddRemoveChild() {
+        ITaskOrganizer listener = new ITaskOrganizer.Stub() {
+            @Override
+            public void onTaskAppeared(RunningTaskInfo taskInfo) { }
+
+            @Override
+            public void onTaskVanished(RunningTaskInfo container) { }
+
+            @Override
+            public void onTaskInfoChanged(RunningTaskInfo info) throws RemoteException {
+            }
+        };
+        mWm.mAtmService.mTaskOrganizerController.registerTaskOrganizer(listener,
+                WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
         RunningTaskInfo info1 = mWm.mAtmService.mTaskOrganizerController.createRootTask(
                 mDisplayContent.mDisplayId, WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
 
         final ActivityStack stack = createTaskStackOnDisplay(
                 WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_STANDARD, mDisplayContent);
         assertEquals(mDisplayContent.getWindowingMode(), stack.getWindowingMode());
-        TaskTile tile1 = TaskTile.forToken(info1.token.asBinder());
-        tile1.addChild(stack, 0 /* index */);
+        WindowContainerTransaction wct = new WindowContainerTransaction();
+        wct.reparent(stack.mRemoteToken, info1.token, true /* onTop */);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(wct);
         assertEquals(info1.configuration.windowConfiguration.getWindowingMode(),
                 stack.getWindowingMode());
 
         // Info should reflect new membership
-        List<TaskTile> tiles = getTaskTiles(mDisplayContent);
-        info1 = tiles.get(0).getTaskInfo();
+        List<Task> infos = getTasksCreatedByOrganizer(mDisplayContent);
+        info1 = infos.get(0).getTaskInfo();
         assertEquals(ACTIVITY_TYPE_STANDARD, info1.topActivityType);
 
         // Children inherit configuration
         Rect newSize = new Rect(10, 10, 300, 300);
-        Configuration c = new Configuration(tile1.getRequestedOverrideConfiguration());
+        Task task1 = WindowContainer.fromBinder(info1.token.asBinder()).asTask();
+        Configuration c = new Configuration(task1.getRequestedOverrideConfiguration());
         c.windowConfiguration.setBounds(newSize);
         doNothing().when(stack).adjustForMinimalTaskDimensions(any(), any());
-        tile1.onRequestedOverrideConfigurationChanged(c);
+        task1.onRequestedOverrideConfigurationChanged(c);
         assertEquals(newSize, stack.getBounds());
 
-        tile1.removeChild(stack);
+        wct = new WindowContainerTransaction();
+        wct.reparent(stack.mRemoteToken, null, true /* onTop */);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(wct);
         assertEquals(mDisplayContent.getWindowingMode(), stack.getWindowingMode());
-        tiles = getTaskTiles(mDisplayContent);
-        info1 = tiles.get(0).getTaskInfo();
+        infos = getTasksCreatedByOrganizer(mDisplayContent);
+        info1 = infos.get(0).getTaskInfo();
         assertEquals(ACTIVITY_TYPE_UNDEFINED, info1.topActivityType);
     }
 
@@ -397,13 +464,10 @@
         final boolean[] called = {false};
         ITaskOrganizer listener = new ITaskOrganizer.Stub() {
             @Override
-            public void taskAppeared(RunningTaskInfo taskInfo) { }
+            public void onTaskAppeared(RunningTaskInfo taskInfo) { }
 
             @Override
-            public void taskVanished(RunningTaskInfo container) { }
-
-            @Override
-            public void transactionReady(int id, SurfaceControl.Transaction t) { }
+            public void onTaskVanished(RunningTaskInfo container) { }
 
             @Override
             public void onTaskInfoChanged(RunningTaskInfo info) throws RemoteException {
@@ -420,8 +484,10 @@
 
         final ActivityStack stack = createTaskStackOnDisplay(
                 WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_STANDARD, mDisplayContent);
-        TaskTile tile1 = TaskTile.forToken(info1.token.asBinder());
-        tile1.addChild(stack, 0 /* index */);
+        Task task1 = WindowContainer.fromBinder(info1.token.asBinder()).asTask();
+        WindowContainerTransaction wct = new WindowContainerTransaction();
+        wct.reparent(stack.mRemoteToken, info1.token, true /* onTop */);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(wct);
         assertTrue(called[0]);
         assertEquals(ACTIVITY_TYPE_STANDARD, lastReportedTiles.get(0).topActivityType);
 
@@ -429,19 +495,24 @@
         called[0] = false;
         final ActivityStack stack2 = createTaskStackOnDisplay(
                 WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_HOME, mDisplayContent);
-        tile1.addChild(stack2, 0 /* index */);
+        wct = new WindowContainerTransaction();
+        wct.reparent(stack2.mRemoteToken, info1.token, true /* onTop */);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(wct);
         assertTrue(called[0]);
         assertEquals(ACTIVITY_TYPE_HOME, lastReportedTiles.get(0).topActivityType);
 
         lastReportedTiles.clear();
         called[0] = false;
-        mDisplayContent.positionStackAtTop(stack, false /* includingParents */);
+        task1.positionChildAt(POSITION_TOP, stack, false /* includingParents */);
         assertTrue(called[0]);
         assertEquals(ACTIVITY_TYPE_STANDARD, lastReportedTiles.get(0).topActivityType);
 
         lastReportedTiles.clear();
         called[0] = false;
-        tile1.removeAllChildren();
+        wct = new WindowContainerTransaction();
+        wct.reparent(stack.mRemoteToken, null, true /* onTop */);
+        wct.reparent(stack2.mRemoteToken, null, true /* onTop */);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(wct);
         assertTrue(called[0]);
         assertEquals(ACTIVITY_TYPE_UNDEFINED, lastReportedTiles.get(0).topActivityType);
     }
@@ -451,13 +522,10 @@
         final ArrayMap<IBinder, RunningTaskInfo> lastReportedTiles = new ArrayMap<>();
         ITaskOrganizer listener = new ITaskOrganizer.Stub() {
             @Override
-            public void taskAppeared(RunningTaskInfo taskInfo) { }
+            public void onTaskAppeared(RunningTaskInfo taskInfo) { }
 
             @Override
-            public void taskVanished(RunningTaskInfo container) { }
-
-            @Override
-            public void transactionReady(int id, SurfaceControl.Transaction t) { }
+            public void onTaskVanished(RunningTaskInfo container) { }
 
             @Override
             public void onTaskInfoChanged(RunningTaskInfo info) {
@@ -465,9 +533,11 @@
             }
         };
         mWm.mAtmService.mTaskOrganizerController.registerTaskOrganizer(
+                listener, WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
+        mWm.mAtmService.mTaskOrganizerController.registerTaskOrganizer(
                 listener, WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
         RunningTaskInfo info1 = mWm.mAtmService.mTaskOrganizerController.createRootTask(
-                mDisplayContent.mDisplayId, WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
+                mDisplayContent.mDisplayId, WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
         RunningTaskInfo info2 = mWm.mAtmService.mTaskOrganizerController.createRootTask(
                 mDisplayContent.mDisplayId, WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
 
@@ -488,8 +558,7 @@
         WindowContainerTransaction wct = new WindowContainerTransaction();
         wct.reparent(stack.mRemoteToken, info1.token, true /* onTop */);
         wct.reparent(stack2.mRemoteToken, info2.token, true /* onTop */);
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(wct,
-                null /* organizer */);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(wct);
         assertFalse(lastReportedTiles.isEmpty());
         assertEquals(ACTIVITY_TYPE_STANDARD,
                 lastReportedTiles.get(info1.token.asBinder()).topActivityType);
@@ -499,8 +568,7 @@
         lastReportedTiles.clear();
         wct = new WindowContainerTransaction();
         wct.reparent(stack2.mRemoteToken, info1.token, false /* onTop */);
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(wct,
-                null /* organizer */);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(wct);
         assertFalse(lastReportedTiles.isEmpty());
         // Standard should still be on top of tile 1, so no change there
         assertFalse(lastReportedTiles.containsKey(info1.token.asBinder()));
@@ -525,29 +593,26 @@
         lastReportedTiles.clear();
         wct = new WindowContainerTransaction();
         wct.reorder(stack2.mRemoteToken, true /* onTop */);
-        mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(wct,
-                null /* organizer */);
+        mWm.mAtmService.mWindowOrganizerController.applyTransaction(wct);
         // Home should now be on top. No change occurs in second tile, so not reported
         assertEquals(1, lastReportedTiles.size());
         assertEquals(ACTIVITY_TYPE_HOME,
                 lastReportedTiles.get(info1.token.asBinder()).topActivityType);
     }
 
-    private List<TaskTile> getTaskTiles(DisplayContent dc) {
-        ArrayList<TaskTile> out = new ArrayList<>();
+    private List<Task> getTasksCreatedByOrganizer(DisplayContent dc) {
+        ArrayList<Task> out = new ArrayList<>();
         for (int i = dc.getStackCount() - 1; i >= 0; --i) {
-            final TaskTile t = dc.getStackAt(i).asTile();
-            if (t != null) {
-                out.add(t);
-            }
+            final Task t = dc.getStackAt(i);
+            if (t.mCreatedByOrganizer) out.add(t);
         }
         return out;
     }
 
     @Test
     public void testTrivialBLASTCallback() throws RemoteException {
-        final ActivityStack stackController1 = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stackController1, 0 /* userId */);
+        final ActivityStack stackController1 = createStack();
+        final Task task = createTask(stackController1);
         final ITaskOrganizer organizer = registerMockOrganizer();
 
         spyOn(task);
@@ -568,8 +633,8 @@
 
     @Test
     public void testOverlappingBLASTCallback() throws RemoteException {
-        final ActivityStack stackController1 = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stackController1, 0 /* userId */);
+        final ActivityStack stackController1 = createStack();
+        final Task task = createTask(stackController1);
         final ITaskOrganizer organizer = registerMockOrganizer();
 
         spyOn(task);
@@ -597,8 +662,8 @@
 
     @Test
     public void testBLASTCallbackWithWindow() {
-        final ActivityStack stackController1 = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stackController1, 0 /* userId */);
+        final ActivityStack stackController1 = createStack();
+        final Task task = createTask(stackController1);
         final ITaskOrganizer organizer = registerMockOrganizer();
         final WindowState w = createAppWindow(task, TYPE_APPLICATION, "Enlightened Window");
         makeWindowVisible(w);
@@ -621,8 +686,8 @@
 
     @Test
     public void testBLASTCallbackWithInvisibleWindow() {
-        final ActivityStack stackController1 = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stackController1, 0 /* userId */);
+        final ActivityStack stackController1 = createStack();
+        final Task task = createTask(stackController1);
         final ITaskOrganizer organizer = registerMockOrganizer();
         final WindowState w = createAppWindow(task, TYPE_APPLICATION, "Enlightened Window");
 
@@ -643,8 +708,8 @@
 
     @Test
     public void testBLASTCallbackWithChildWindow() {
-        final ActivityStack stackController1 = createTaskStackOnDisplay(mDisplayContent);
-        final Task task = createTaskInStack(stackController1, 0 /* userId */);
+        final ActivityStack stackController1 = createStack();
+        final Task task = createTask(stackController1);
         final ITaskOrganizer organizer = registerMockOrganizer();
         final WindowState w = createAppWindow(task, TYPE_APPLICATION, "Enlightened Window");
         final WindowState child = createWindow(w, TYPE_APPLICATION, "Other Window");
@@ -677,14 +742,11 @@
         RunningTaskInfo mInfo;
 
         @Override
-        public void taskAppeared(RunningTaskInfo info) {
+        public void onTaskAppeared(RunningTaskInfo info) {
             mInfo = info;
         }
         @Override
-        public void taskVanished(RunningTaskInfo info) {
-        }
-        @Override
-        public void transactionReady(int id, SurfaceControl.Transaction t) {
+        public void onTaskVanished(RunningTaskInfo info) {
         }
         @Override
         public void onTaskInfoChanged(RunningTaskInfo info) {
@@ -697,6 +759,8 @@
         record.info.flags |= ActivityInfo.FLAG_SUPPORTS_PICTURE_IN_PICTURE;
         spyOn(record);
         doReturn(true).when(record).checkEnterPictureInPictureState(any(), anyBoolean());
+
+        record.getRootTask().setHasBeenVisible(true);
         return record;
     }
 
@@ -744,4 +808,23 @@
         assertEquals(3, ratio.getNumerator());
         assertEquals(4, ratio.getDenominator());
     }
+
+    @Test
+    public void testPreventDuplicateAppear() throws RemoteException {
+        final ActivityStack stack = createStack();
+        final Task task = createTask(stack);
+        final ITaskOrganizer organizer = registerMockOrganizer();
+
+        task.setTaskOrganizer(organizer);
+        // setHasBeenVisible was already called once by the set-up code.
+        task.setHasBeenVisible(true);
+        verify(organizer, times(1)).onTaskAppeared(any());
+
+        task.taskOrganizerUnregistered();
+        task.setTaskOrganizer(organizer);
+        verify(organizer, times(2)).onTaskAppeared(any());
+
+        task.removeImmediately();
+        verify(organizer).onTaskVanished(any());
+    }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
index a25acae..1ad4079 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
@@ -27,6 +27,7 @@
 import static android.content.pm.ActivityInfo.FLAG_RELINQUISH_TASK_IDENTITY;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSET;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
 import static android.util.DisplayMetrics.DENSITY_DEFAULT;
 import static android.view.IWindowManager.FIXED_TO_USER_ROTATION_ENABLED;
@@ -151,7 +152,7 @@
             assertFalse(factory.mCreated);
 
             Task.create(mService, 0 /*taskId*/, 0 /*activityType*/,
-                    new ActivityInfo(), new Intent());
+                    new ActivityInfo(), new Intent(), false /* createdByOrganizer */);
 
             assertTrue(factory.mCreated);
         } finally {
@@ -873,11 +874,11 @@
         spyOn(persister);
 
         final Task task = getTestTask();
-        task.hasBeenVisible = false;
+        task.setHasBeenVisible(false);
         task.getDisplayContent().setDisplayWindowingMode(WINDOWING_MODE_FREEFORM);
         task.getStack().setWindowingMode(WINDOWING_MODE_FULLSCREEN);
 
-        task.hasBeenVisible = true;
+        task.setHasBeenVisible(true);
         task.onConfigurationChanged(task.getParent().getConfiguration());
 
         verify(persister).saveTask(task, task.getDisplayContent());
@@ -889,7 +890,7 @@
         spyOn(persister);
 
         final Task task = getTestTask();
-        task.hasBeenVisible = false;
+        task.setHasBeenVisible(false);
         task.getDisplayContent().setWindowingMode(WindowConfiguration.WINDOWING_MODE_FREEFORM);
         task.getStack().setWindowingMode(WINDOWING_MODE_FULLSCREEN);
         final DisplayContent oldDisplay = task.getDisplayContent();
@@ -899,7 +900,7 @@
         persister.getLaunchParams(task, null, params);
         assertEquals(WINDOWING_MODE_UNDEFINED, params.mWindowingMode);
 
-        task.hasBeenVisible = true;
+        task.setHasBeenVisible(true);
         task.removeImmediately();
 
         verify(persister).saveTask(task, oldDisplay);
@@ -914,10 +915,10 @@
         spyOn(persister);
 
         final Task task = getTestTask();
-        task.hasBeenVisible = false;
+        task.setHasBeenVisible(false);
         task.getStack().setWindowingMode(WINDOWING_MODE_FULLSCREEN);
 
-        task.hasBeenVisible = true;
+        task.setHasBeenVisible(true);
         task.onConfigurationChanged(task.getParent().getConfiguration());
 
         verify(persister, never()).saveTask(same(task), any());
@@ -929,16 +930,30 @@
         spyOn(persister);
 
         final Task task = getTestTask();
-        task.hasBeenVisible = false;
+        task.setHasBeenVisible(false);
         task.getDisplayContent().setDisplayWindowingMode(WINDOWING_MODE_FREEFORM);
         task.getStack().setWindowingMode(WINDOWING_MODE_PINNED);
 
-        task.hasBeenVisible = true;
+        task.setHasBeenVisible(true);
         task.onConfigurationChanged(task.getParent().getConfiguration());
 
         verify(persister, never()).saveTask(same(task), any());
     }
 
+    @Test
+    public void testNotSpecifyOrientationByFloatingTask() {
+        final Task task = getTestTask();
+        final ActivityRecord activity = task.getTopMostActivity();
+        final WindowContainer<?> taskContainer = task.getParent();
+        activity.setRequestedOrientation(SCREEN_ORIENTATION_LANDSCAPE);
+
+        assertEquals(SCREEN_ORIENTATION_LANDSCAPE, taskContainer.getOrientation());
+
+        task.setWindowingMode(WINDOWING_MODE_PINNED);
+
+        assertEquals(SCREEN_ORIENTATION_UNSET, taskContainer.getOrientation());
+    }
+
     private Task getTestTask() {
         final ActivityStack stack = new StackBuilder(mRootWindowContainer).build();
         return stack.getBottomMostTask();
@@ -1000,7 +1015,7 @@
 
         @Override
         Task create(ActivityTaskManagerService service, int taskId, int activityType,
-                ActivityInfo info, Intent intent) {
+                ActivityInfo info, Intent intent, boolean createdByOrganizer) {
             mCreated = true;
             return null;
         }
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java
index 85e4a16..e95ccab 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java
@@ -251,11 +251,9 @@
 
         // b/145812508: special legacy use-case for transparent/translucent windows.
         appWindow.mAttrs.format = PixelFormat.TRANSPARENT;
-        appWindow.mAttrs.alpha = 0;
         assertTrue(appWindow.canBeImeTarget());
 
         appWindow.mAttrs.format = PixelFormat.OPAQUE;
-        appWindow.mAttrs.alpha = 1;
         appWindow.mAttrs.flags &= ~FLAG_ALT_FOCUSABLE_IM;
         assertFalse(appWindow.canBeImeTarget());
         appWindow.mAttrs.flags &= ~FLAG_NOT_FOCUSABLE;
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java
index 38f643d..7a347cb 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowTokenTests.java
@@ -18,6 +18,7 @@
 
 import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW;
 import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
 import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
 
 import static org.junit.Assert.assertEquals;
@@ -155,4 +156,27 @@
         assertTrue(token.mRoundedCornerOverlay);
         assertTrue(token.mFromClientToken);
     }
+
+    /**
+     * Test that {@link android.view.SurfaceControl} should not be created for the
+     * {@link WindowToken} which was created for {@link android.app.WindowContext} initially, the
+     * surface should be create after addWindow for this token.
+     */
+    @Test
+    public void testSurfaceCreatedForWindowToken() {
+        final WindowToken fromClientToken = new WindowToken(mDisplayContent.mWmService,
+                mock(IBinder.class), TYPE_APPLICATION_OVERLAY, true /* persistOnEmpty */,
+                mDisplayContent, true /* ownerCanManageAppTokens */,
+                true /* roundedCornerOverlay */, true /* fromClientToken */);
+        assertNull(fromClientToken.mSurfaceControl);
+
+        createWindow(null, TYPE_APPLICATION_OVERLAY, fromClientToken, "window");
+        assertNotNull(fromClientToken.mSurfaceControl);
+
+        final WindowToken nonClientToken = new WindowToken(mDisplayContent.mWmService,
+                mock(IBinder.class), TYPE_TOAST, true /* persistOnEmpty */, mDisplayContent,
+                true /* ownerCanManageAppTokens */, true /* roundedCornerOverlay */,
+                false /* fromClientToken */);
+        assertNotNull(nonClientToken.mSurfaceControl);
+    }
 }
diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerDbHelper.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerDbHelper.java
index 9906585..71da8dd 100644
--- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerDbHelper.java
+++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerDbHelper.java
@@ -86,10 +86,11 @@
         synchronized(this) {
             SQLiteDatabase db = getWritableDatabase();
             ContentValues values = new ContentValues();
-            values.put(GenericSoundModelContract.KEY_MODEL_UUID, soundModel.uuid.toString());
-            values.put(GenericSoundModelContract.KEY_VENDOR_UUID, soundModel.vendorUuid.toString());
-            values.put(GenericSoundModelContract.KEY_DATA, soundModel.data);
-            values.put(GenericSoundModelContract.KEY_MODEL_VERSION, soundModel.version);
+            values.put(GenericSoundModelContract.KEY_MODEL_UUID, soundModel.getUuid().toString());
+            values.put(GenericSoundModelContract.KEY_VENDOR_UUID,
+                    soundModel.getVendorUuid().toString());
+            values.put(GenericSoundModelContract.KEY_DATA, soundModel.getData());
+            values.put(GenericSoundModelContract.KEY_MODEL_VERSION, soundModel.getVersion());
 
             try {
                 return db.insertWithOnConflict(GenericSoundModelContract.TABLE, null, values,
@@ -140,7 +141,7 @@
             // Delete all sound models for the given keyphrase and specified user.
             SQLiteDatabase db = getWritableDatabase();
             String soundModelClause = GenericSoundModelContract.KEY_MODEL_UUID
-                    + "='" + soundModel.uuid.toString() + "'";
+                    + "='" + soundModel.getUuid().toString() + "'";
             try {
                 return db.delete(GenericSoundModelContract.TABLE, soundModelClause, null) != 0;
             } finally {
diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java
index 7099c09..6c0f2b0 100644
--- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java
+++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java
@@ -195,7 +195,7 @@
             }
 
             // Process existing model first.
-            if (model != null && !model.getModelId().equals(soundModel.uuid)) {
+            if (model != null && !model.getModelId().equals(soundModel.getUuid())) {
                 // The existing model has a different UUID, should be replaced.
                 int status = cleanUpExistingKeyphraseModelLocked(model);
                 if (status != STATUS_OK) {
@@ -208,7 +208,7 @@
             // We need to create a new one: either no previous models existed for given keyphrase id
             // or the existing model had a different UUID and was cleaned up.
             if (model == null) {
-                model = createKeyphraseModelDataLocked(soundModel.uuid, keyphraseId);
+                model = createKeyphraseModelDataLocked(soundModel.getUuid(), keyphraseId);
             }
 
             return startRecognition(soundModel, model, callback, recognitionConfig,
@@ -249,7 +249,7 @@
                 return STATUS_ERROR;
             }
             if (mModule == null) {
-                mModule = SoundTrigger.attachModule(mModuleProperties.id, this, null);
+                mModule = SoundTrigger.attachModule(mModuleProperties.getId(), this, null);
                 if (mModule == null) {
                     Slog.w(TAG, "startRecognition cannot attach to sound trigger module");
                     return STATUS_ERROR;
diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java
index 3196758..170bee8 100644
--- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java
+++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java
@@ -207,7 +207,13 @@
 
     @Override
     public void onBootPhase(int phase) {
-        if (PHASE_SYSTEM_SERVICES_READY == phase) {
+        Slog.d(TAG, "onBootPhase: " + phase + " : " + isSafeMode());
+        if (PHASE_DEVICE_SPECIFIC_SERVICES_READY == phase) {
+            if (isSafeMode()) {
+                Slog.w(TAG, "not enabling SoundTriggerService in safe mode");
+                return;
+            }
+
             initSoundTriggerHelper();
             mLocalSoundTriggerService.setSoundTriggerHelper(mSoundTriggerHelper);
         } else if (PHASE_THIRD_PARTY_APPS_CAN_START == phase) {
@@ -352,7 +358,7 @@
         public int loadGenericSoundModel(GenericSoundModel soundModel) {
             enforceCallingPermission(Manifest.permission.MANAGE_SOUND_TRIGGER);
             if (!isInitialized()) return STATUS_ERROR;
-            if (soundModel == null || soundModel.uuid == null) {
+            if (soundModel == null || soundModel.getUuid() == null) {
                 Slog.e(TAG, "Invalid sound model");
 
                 sEventLogger.log(new SoundTriggerLogger.StringEvent(
@@ -361,24 +367,24 @@
                 return STATUS_ERROR;
             }
             if (DEBUG) {
-                Slog.i(TAG, "loadGenericSoundModel(): id = " + soundModel.uuid);
+                Slog.i(TAG, "loadGenericSoundModel(): id = " + soundModel.getUuid());
             }
 
             sEventLogger.log(new SoundTriggerLogger.StringEvent("loadGenericSoundModel(): id = "
-                    + soundModel.uuid));
+                    + soundModel.getUuid()));
 
             synchronized (mLock) {
-                SoundModel oldModel = mLoadedModels.get(soundModel.uuid);
+                SoundModel oldModel = mLoadedModels.get(soundModel.getUuid());
                 // If the model we're loading is actually different than what we had loaded, we
                 // should unload that other model now. We don't care about return codes since we
                 // don't know if the other model is loaded.
                 if (oldModel != null && !oldModel.equals(soundModel)) {
-                    mSoundTriggerHelper.unloadGenericSoundModel(soundModel.uuid);
+                    mSoundTriggerHelper.unloadGenericSoundModel(soundModel.getUuid());
                     synchronized (mCallbacksLock) {
-                        mCallbacks.remove(soundModel.uuid);
+                        mCallbacks.remove(soundModel.getUuid());
                     }
                 }
-                mLoadedModels.put(soundModel.uuid, soundModel);
+                mLoadedModels.put(soundModel.getUuid(), soundModel);
             }
             return STATUS_OK;
         }
@@ -387,7 +393,7 @@
         public int loadKeyphraseSoundModel(KeyphraseSoundModel soundModel) {
             enforceCallingPermission(Manifest.permission.MANAGE_SOUND_TRIGGER);
             if (!isInitialized()) return STATUS_ERROR;
-            if (soundModel == null || soundModel.uuid == null) {
+            if (soundModel == null || soundModel.getUuid() == null) {
                 Slog.e(TAG, "Invalid sound model");
 
                 sEventLogger.log(new SoundTriggerLogger.StringEvent(
@@ -395,7 +401,7 @@
 
                 return STATUS_ERROR;
             }
-            if (soundModel.keyphrases == null || soundModel.keyphrases.length != 1) {
+            if (soundModel.getKeyphrases() == null || soundModel.getKeyphrases().length != 1) {
                 Slog.e(TAG, "Only one keyphrase per model is currently supported.");
 
                 sEventLogger.log(new SoundTriggerLogger.StringEvent(
@@ -405,24 +411,25 @@
                 return STATUS_ERROR;
             }
             if (DEBUG) {
-                Slog.i(TAG, "loadKeyphraseSoundModel(): id = " + soundModel.uuid);
+                Slog.i(TAG, "loadKeyphraseSoundModel(): id = " + soundModel.getUuid());
             }
 
             sEventLogger.log(new SoundTriggerLogger.StringEvent("loadKeyphraseSoundModel(): id = "
-                    + soundModel.uuid));
+                    + soundModel.getUuid()));
 
             synchronized (mLock) {
-                SoundModel oldModel = mLoadedModels.get(soundModel.uuid);
+                SoundModel oldModel = mLoadedModels.get(soundModel.getUuid());
                 // If the model we're loading is actually different than what we had loaded, we
                 // should unload that other model now. We don't care about return codes since we
                 // don't know if the other model is loaded.
                 if (oldModel != null && !oldModel.equals(soundModel)) {
-                    mSoundTriggerHelper.unloadKeyphraseSoundModel(soundModel.keyphrases[0].id);
+                    mSoundTriggerHelper.unloadKeyphraseSoundModel(
+                            soundModel.getKeyphrases()[0].getId());
                     synchronized (mCallbacksLock) {
-                        mCallbacks.remove(soundModel.uuid);
+                        mCallbacks.remove(soundModel.getUuid());
                     }
                 }
-                mLoadedModels.put(soundModel.uuid, soundModel);
+                mLoadedModels.put(soundModel.getUuid(), soundModel);
             }
             return STATUS_OK;
         }
@@ -472,9 +479,9 @@
                     return STATUS_ERROR;
                 }
                 int ret;
-                switch (soundModel.type) {
+                switch (soundModel.getType()) {
                     case SoundModel.TYPE_GENERIC_SOUND:
-                        ret = mSoundTriggerHelper.startGenericRecognition(soundModel.uuid,
+                        ret = mSoundTriggerHelper.startGenericRecognition(soundModel.getUuid(),
                             (GenericSoundModel) soundModel, callback, config);
                         break;
                     default:
@@ -539,9 +546,10 @@
                     return STATUS_ERROR;
                 }
                 int ret;
-                switch (soundModel.type) {
+                switch (soundModel.getType()) {
                     case SoundModel.TYPE_GENERIC_SOUND:
-                        ret = mSoundTriggerHelper.stopGenericRecognition(soundModel.uuid, callback);
+                        ret = mSoundTriggerHelper.stopGenericRecognition(
+                                soundModel.getUuid(), callback);
                         break;
                     default:
                         Slog.e(TAG, "Unknown model type");
@@ -591,13 +599,13 @@
                     return STATUS_ERROR;
                 }
                 int ret;
-                switch (soundModel.type) {
+                switch (soundModel.getType()) {
                     case SoundModel.TYPE_KEYPHRASE:
                         ret = mSoundTriggerHelper.unloadKeyphraseSoundModel(
-                                ((KeyphraseSoundModel)soundModel).keyphrases[0].id);
+                                ((KeyphraseSoundModel) soundModel).getKeyphrases()[0].getId());
                         break;
                     case SoundModel.TYPE_GENERIC_SOUND:
-                        ret = mSoundTriggerHelper.unloadGenericSoundModel(soundModel.uuid);
+                        ret = mSoundTriggerHelper.unloadGenericSoundModel(soundModel.getUuid());
                         break;
                     default:
                         Slog.e(TAG, "Unknown model type");
@@ -655,16 +663,16 @@
 
                     return ret;
                 }
-                switch (soundModel.type) {
+                switch (soundModel.getType()) {
                     case SoundModel.TYPE_GENERIC_SOUND:
-                        ret = mSoundTriggerHelper.getGenericModelState(soundModel.uuid);
+                        ret = mSoundTriggerHelper.getGenericModelState(soundModel.getUuid());
                         break;
                     default:
                         // SoundModel.TYPE_KEYPHRASE is not supported to increase privacy.
-                        Slog.e(TAG, "Unsupported model type, " + soundModel.type);
+                        Slog.e(TAG, "Unsupported model type, " + soundModel.getType());
                         sEventLogger.log(new SoundTriggerLogger.StringEvent(
                                 "getModelState(): Unsupported model type, "
-                                + soundModel.type));
+                                + soundModel.getType()));
                         break;
                 }
 
@@ -717,7 +725,7 @@
                     return STATUS_BAD_VALUE;
                 }
 
-                return mSoundTriggerHelper.setParameter(soundModel.uuid, modelParam, value);
+                return mSoundTriggerHelper.setParameter(soundModel.getUuid(), modelParam, value);
             }
         }
 
@@ -749,7 +757,7 @@
                     throw new IllegalArgumentException("sound model is not loaded");
                 }
 
-                return mSoundTriggerHelper.getParameter(soundModel.uuid, modelParam);
+                return mSoundTriggerHelper.getParameter(soundModel.getUuid(), modelParam);
             }
         }
 
@@ -780,7 +788,7 @@
                     return null;
                 }
 
-                return mSoundTriggerHelper.queryParameter(soundModel.uuid, modelParam);
+                return mSoundTriggerHelper.queryParameter(soundModel.getUuid(), modelParam);
             }
         }
     }
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/DatabaseHelper.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/DatabaseHelper.java
index be0987d..aaf7a9e 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/DatabaseHelper.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/DatabaseHelper.java
@@ -162,23 +162,26 @@
         synchronized(this) {
             SQLiteDatabase db = getWritableDatabase();
             ContentValues values = new ContentValues();
-            values.put(SoundModelContract.KEY_MODEL_UUID, soundModel.uuid.toString());
-            if (soundModel.vendorUuid != null) {
-                values.put(SoundModelContract.KEY_VENDOR_UUID, soundModel.vendorUuid.toString());
+            values.put(SoundModelContract.KEY_MODEL_UUID, soundModel.getUuid().toString());
+            if (soundModel.getVendorUuid() != null) {
+                values.put(SoundModelContract.KEY_VENDOR_UUID,
+                        soundModel.getVendorUuid().toString());
             }
             values.put(SoundModelContract.KEY_TYPE, SoundTrigger.SoundModel.TYPE_KEYPHRASE);
-            values.put(SoundModelContract.KEY_DATA, soundModel.data);
-            values.put(SoundModelContract.KEY_MODEL_VERSION, soundModel.version);
+            values.put(SoundModelContract.KEY_DATA, soundModel.getData());
+            values.put(SoundModelContract.KEY_MODEL_VERSION, soundModel.getVersion());
 
-            if (soundModel.keyphrases != null && soundModel.keyphrases.length == 1) {
-                values.put(SoundModelContract.KEY_KEYPHRASE_ID, soundModel.keyphrases[0].id);
+            if (soundModel.getKeyphrases() != null && soundModel.getKeyphrases().length == 1) {
+                values.put(SoundModelContract.KEY_KEYPHRASE_ID,
+                        soundModel.getKeyphrases()[0].getId());
                 values.put(SoundModelContract.KEY_RECOGNITION_MODES,
-                        soundModel.keyphrases[0].recognitionModes);
+                        soundModel.getKeyphrases()[0].getRecognitionModes());
                 values.put(SoundModelContract.KEY_USERS,
-                        getCommaSeparatedString(soundModel.keyphrases[0].users));
+                        getCommaSeparatedString(soundModel.getKeyphrases()[0].getUsers()));
                 values.put(SoundModelContract.KEY_LOCALE,
-                        soundModel.keyphrases[0].locale.toLanguageTag());
-                values.put(SoundModelContract.KEY_HINT_TEXT, soundModel.keyphrases[0].text);
+                        soundModel.getKeyphrases()[0].getLocale().toLanguageTag());
+                values.put(SoundModelContract.KEY_HINT_TEXT,
+                        soundModel.getKeyphrases()[0].getText());
                 try {
                     return db.insertWithOnConflict(SoundModelContract.TABLE, null, values,
                             SQLiteDatabase.CONFLICT_REPLACE) != -1;
@@ -206,7 +209,7 @@
             // Delete all sound models for the given keyphrase and specified user.
             SQLiteDatabase db = getWritableDatabase();
             String soundModelClause = SoundModelContract.KEY_MODEL_UUID
-                    + "='" + soundModel.uuid.toString() + "'";
+                    + "='" + soundModel.getUuid().toString() + "'";
             try {
                 return db.delete(SoundModelContract.TABLE, soundModelClause, null) != 0;
             } finally {
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
index 0eba07b..ef282ba 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
@@ -41,7 +41,6 @@
 import android.content.res.Resources;
 import android.database.ContentObserver;
 import android.hardware.soundtrigger.IRecognitionStatusCallback;
-import android.hardware.soundtrigger.KeyphraseEnrollmentInfo;
 import android.hardware.soundtrigger.KeyphraseMetadata;
 import android.hardware.soundtrigger.ModelParams;
 import android.hardware.soundtrigger.SoundTrigger;
@@ -100,7 +99,7 @@
  * SystemService that publishes an IVoiceInteractionManagerService.
  */
 public class VoiceInteractionManagerService extends SystemService {
-    static final String TAG = "VoiceInteractionManagerService";
+    static final String TAG = "VoiceInteractionManager";
     static final boolean DEBUG = false;
 
     final Context mContext;
@@ -172,17 +171,17 @@
     }
 
     @Override
-    public void onStartUser(@NonNull UserInfo userInfo) {
-        if (DEBUG_USER) Slog.d(TAG, "onStartUser(" + userInfo + ")");
+    public void onUserStarting(@NonNull TargetUser user) {
+        if (DEBUG_USER) Slog.d(TAG, "onUserStarting(" + user + ")");
 
-        mServiceStub.initForUser(userInfo.id);
+        mServiceStub.initForUser(user.getUserIdentifier());
     }
 
     @Override
-    public void onUnlockUser(@NonNull UserInfo userInfo) {
-        if (DEBUG_USER) Slog.d(TAG, "onUnlockUser(" + userInfo + ")");
+    public void onUserUnlocking(@NonNull TargetUser user) {
+        if (DEBUG_USER) Slog.d(TAG, "onUserUnlocking(" + user + ")");
 
-        mServiceStub.initForUser(userInfo.id);
+        mServiceStub.initForUser(user.getUserIdentifier());
         mServiceStub.switchImplementationIfNeeded(false);
     }
 
@@ -224,7 +223,6 @@
     class VoiceInteractionManagerServiceStub extends IVoiceInteractionManagerService.Stub {
 
         VoiceInteractionManagerServiceImpl mImpl;
-        KeyphraseEnrollmentInfo mEnrollmentApplicationInfo;
 
         private boolean mSafeMode;
         private int mCurUser;
@@ -449,15 +447,6 @@
             }
         }
 
-        private void getOrCreateEnrollmentApplicationInfo() {
-            synchronized (this) {
-                if (mEnrollmentApplicationInfo == null) {
-                    mEnrollmentApplicationInfo = new KeyphraseEnrollmentInfo(
-                            mContext.getPackageManager());
-                }
-            }
-        }
-
         private void setCurrentUserLocked(@UserIdInt int userHandle) {
             mCurUser = userHandle;
             final UserInfo userInfo = mUserManagerInternal.getUserInfo(mCurUser);
@@ -1056,12 +1045,12 @@
                     return null;
                 }
 
-                for (SoundTrigger.Keyphrase phrase : model.keyphrases) {
-                    if (keyphrase.equals(phrase.text)) {
+                for (SoundTrigger.Keyphrase phrase : model.getKeyphrases()) {
+                    if (keyphrase.equals(phrase.getText())) {
                         ArraySet<Locale> locales = new ArraySet<>();
-                        locales.add(phrase.locale);
-                        return new KeyphraseMetadata(phrase.id, phrase.text, locales,
-                                phrase.recognitionModes);
+                        locales.add(phrase.getLocale());
+                        return new KeyphraseMetadata(phrase.getId(), phrase.getText(), locales,
+                                phrase.getRecognitionModes());
                     }
                 }
             } finally {
@@ -1104,8 +1093,8 @@
                 KeyphraseSoundModel soundModel =
                         mDbHelper.getKeyphraseSoundModel(keyphraseId, callingUid, bcp47Locale);
                 if (soundModel == null
-                        || soundModel.uuid == null
-                        || soundModel.keyphrases == null) {
+                        || soundModel.getUuid() == null
+                        || soundModel.getKeyphrases() == null) {
                     Slog.w(TAG, "No matching sound model found in startRecognition");
                     return SoundTriggerInternal.STATUS_ERROR;
                 } else {
@@ -1391,11 +1380,6 @@
                 pw.println("  mCurUserUnlocked: " + mCurUserUnlocked);
                 pw.println("  mCurUserSupported: " + mCurUserSupported);
                 dumpSupportedUsers(pw, "  ");
-                if (mEnrollmentApplicationInfo == null) {
-                    pw.println("  (No enrollment application info)");
-                } else {
-                    pw.println("  " + mEnrollmentApplicationInfo.toString());
-                }
                 mDbHelper.dump(pw);
                 if (mImpl == null) {
                     pw.println("  (No active implementation)");
@@ -1425,9 +1409,13 @@
             }
         }
 
+        private boolean isCallerHoldingPermission(String permission) {
+            return mContext.checkCallingOrSelfPermission(permission)
+                    == PackageManager.PERMISSION_GRANTED;
+        }
+
         private void enforceCallingPermission(String permission) {
-            if (mContext.checkCallingOrSelfPermission(permission)
-                    != PackageManager.PERMISSION_GRANTED) {
+            if (!isCallerHoldingPermission(permission)) {
                 throw new SecurityException("Caller does not hold the permission " + permission);
             }
         }
@@ -1440,12 +1428,12 @@
         }
 
         private void enforceCallerAllowedToEnrollVoiceModel() {
-            enforceCallingPermission(Manifest.permission.MANAGE_VOICE_KEYPHRASES);
-            if (!isCallerCurrentVoiceInteractionService()
-                    && !isCallerTrustedEnrollmentApplication()) {
-                throw new SecurityException("Caller is required to be the current voice interaction"
-                        + " service or a system enrollment application to enroll voice models");
+            if (isCallerHoldingPermission(Manifest.permission.KEYPHRASE_ENROLLMENT_APPLICATION)) {
+                return;
             }
+
+            enforceCallingPermission(Manifest.permission.MANAGE_VOICE_KEYPHRASES);
+            enforceIsCurrentVoiceInteractionService();
         }
 
         private boolean isCallerCurrentVoiceInteractionService() {
@@ -1453,12 +1441,6 @@
                     && mImpl.mInfo.getServiceInfo().applicationInfo.uid == Binder.getCallingUid();
         }
 
-        private boolean isCallerTrustedEnrollmentApplication() {
-            getOrCreateEnrollmentApplicationInfo();
-            return mEnrollmentApplicationInfo.isUidSupportedEnrollmentApplication(
-                            Binder.getCallingUid());
-        }
-
         private void setImplLocked(VoiceInteractionManagerServiceImpl impl) {
             mImpl = impl;
             mAtmInternal.notifyActiveVoiceInteractionServiceChanged(
diff --git a/startop/iorap/src/com/google/android/startop/iorap/EventSequenceValidator.java b/startop/iorap/src/com/google/android/startop/iorap/EventSequenceValidator.java
index 488ee78..47bf148 100644
--- a/startop/iorap/src/com/google/android/startop/iorap/EventSequenceValidator.java
+++ b/startop/iorap/src/com/google/android/startop/iorap/EventSequenceValidator.java
@@ -23,6 +23,9 @@
 
 import com.android.server.wm.ActivityMetricsLaunchObserver;
 
+import java.io.StringWriter;
+import java.io.PrintWriter;
+
 /**
  * A validator to check the correctness of event sequence during app startup.
  *
@@ -100,7 +103,8 @@
   @Override
   public void onIntentStarted(@NonNull Intent intent, long timestampNs) {
     if (state == State.UNKNOWN) {
-      Log.wtf(TAG, "IntentStarted during UNKNOWN." + intent);
+      logWarningWithStackTrace(
+          String.format("IntentStarted during UNKNOWN. " + intent));
       incAccIntentStartedEvents();
       return;
     }
@@ -110,7 +114,7 @@
         state != State.ACTIVITY_CANCELLED &&
         state != State.ACTIVITY_FINISHED &&
         state != State.REPORT_FULLY_DRAWN) {
-      Log.wtf(TAG,
+      logWarningWithStackTrace(
           String.format("Cannot transition from %s to %s", state, State.INTENT_STARTED));
       incAccIntentStartedEvents();
       incAccIntentStartedEvents();
@@ -124,12 +128,12 @@
   @Override
   public void onIntentFailed() {
     if (state == State.UNKNOWN) {
-      Log.wtf(TAG, "IntentFailed during UNKNOWN.");
+      logWarningWithStackTrace(String.format("onIntentFailed during UNKNOWN."));
       decAccIntentStartedEvents();
       return;
     }
     if (state != State.INTENT_STARTED) {
-      Log.wtf(TAG,
+      logWarningWithStackTrace(
           String.format("Cannot transition from %s to %s", state, State.INTENT_FAILED));
       incAccIntentStartedEvents();
       return;
@@ -143,11 +147,12 @@
   public void onActivityLaunched(@NonNull @ActivityRecordProto byte[] activity,
       @Temperature int temperature) {
     if (state == State.UNKNOWN) {
-      Log.wtf(TAG, "onActivityLaunched during UNKNOWN.");
+      logWarningWithStackTrace(
+          String.format("onActivityLaunched during UNKNOWN."));
       return;
     }
     if (state != State.INTENT_STARTED) {
-      Log.wtf(TAG,
+      logWarningWithStackTrace(
           String.format("Cannot transition from %s to %s", state, State.ACTIVITY_LAUNCHED));
       incAccIntentStartedEvents();
       return;
@@ -160,12 +165,13 @@
   @Override
   public void onActivityLaunchCancelled(@Nullable @ActivityRecordProto byte[] activity) {
     if (state == State.UNKNOWN) {
-      Log.wtf(TAG, "onActivityLaunchCancelled during UNKNOWN.");
+      logWarningWithStackTrace(
+          String.format("onActivityLaunchCancelled during UNKNOWN."));
       decAccIntentStartedEvents();
       return;
     }
     if (state != State.ACTIVITY_LAUNCHED) {
-      Log.wtf(TAG,
+      logWarningWithStackTrace(
           String.format("Cannot transition from %s to %s", state, State.ACTIVITY_CANCELLED));
       incAccIntentStartedEvents();
       return;
@@ -179,13 +185,14 @@
   public void onActivityLaunchFinished(@NonNull @ActivityRecordProto byte[] activity,
       long timestampNs) {
     if (state == State.UNKNOWN) {
-      Log.wtf(TAG, "onActivityLaunchFinished during UNKNOWN.");
+      logWarningWithStackTrace(
+          String.format("onActivityLaunchFinished during UNKNOWN."));
       decAccIntentStartedEvents();
       return;
     }
 
     if (state != State.ACTIVITY_LAUNCHED) {
-      Log.wtf(TAG,
+      logWarningWithStackTrace(
           String.format("Cannot transition from %s to %s", state, State.ACTIVITY_FINISHED));
       incAccIntentStartedEvents();
       return;
@@ -199,7 +206,8 @@
   public void onReportFullyDrawn(@NonNull @ActivityRecordProto byte[] activity,
       long timestampNs) {
     if (state == State.UNKNOWN) {
-      Log.wtf(TAG, "onReportFullyDrawn during UNKNOWN.");
+      logWarningWithStackTrace(
+          String.format("onReportFullyDrawn during UNKNOWN."));
       return;
     }
     if (state == State.INIT) {
@@ -207,7 +215,7 @@
     }
 
     if (state != State.ACTIVITY_FINISHED) {
-      Log.wtf(TAG,
+      logWarningWithStackTrace(
           String.format("Cannot transition from %s to %s", state, State.REPORT_FULLY_DRAWN));
       return;
     }
@@ -252,4 +260,11 @@
     Log.i(TAG,
         String.format("dec AccIntentStartedEvents to %d", accIntentStartedEvents));
   }
+
+  private void logWarningWithStackTrace(String log) {
+    StringWriter sw = new StringWriter();
+    PrintWriter pw = new PrintWriter(sw);
+    new Throwable("EventSequenceValidator#getStackTrace").printStackTrace(pw);
+    Log.w(TAG, String.format("%s\n%s", log, sw));
+  }
 }
diff --git a/startop/iorap/src/com/google/android/startop/iorap/IorapForwardingService.java b/startop/iorap/src/com/google/android/startop/iorap/IorapForwardingService.java
index badff7b..d5851d8 100644
--- a/startop/iorap/src/com/google/android/startop/iorap/IorapForwardingService.java
+++ b/startop/iorap/src/com/google/android/startop/iorap/IorapForwardingService.java
@@ -279,6 +279,8 @@
             (IIorap remote) -> remote.setTaskListener(new RemoteTaskListener()) );
         registerInProcessListenersLocked();
 
+        Log.i(TAG, "Connected to iorapd native service.");
+
         return true;
     }
 
diff --git a/startop/view_compiler/apk_layout_compiler.cc b/startop/view_compiler/apk_layout_compiler.cc
index 09cdbd5..eaa3e04 100644
--- a/startop/view_compiler/apk_layout_compiler.cc
+++ b/startop/view_compiler/apk_layout_compiler.cc
@@ -100,10 +100,12 @@
       dex_file.MakeClass(StringPrintf("%s.CompiledView", package_name.c_str()))};
   std::vector<dex::MethodBuilder> methods;
 
-  assets->ForEachFile("res/", [&](const android::StringPiece& s, android::FileType) {
+  assets->GetAssetsProvider()->ForEachFile("res/", [&](const android::StringPiece& s,
+                                                       android::FileType) {
     if (s == "layout") {
       auto path = StringPrintf("res/%s/", s.to_string().c_str());
-      assets->ForEachFile(path, [&](const android::StringPiece& layout_file, android::FileType) {
+      assets->GetAssetsProvider()->ForEachFile(path, [&](const android::StringPiece& layout_file,
+                                                         android::FileType) {
         auto layout_path = StringPrintf("%s%s", path.c_str(), layout_file.to_string().c_str());
         android::ApkAssetsCookie cookie = android::kInvalidCookie;
         auto asset = resources.OpenNonAsset(layout_path, android::Asset::ACCESS_RANDOM, &cookie);
@@ -166,8 +168,7 @@
 void CompileApkLayoutsFd(android::base::unique_fd fd, CompilationTarget target,
                          std::ostream& target_out) {
   constexpr const char* friendly_name{"viewcompiler assets"};
-  auto assets = android::ApkAssets::LoadFromFd(
-      std::move(fd), friendly_name, /*system=*/false, /*force_shared_lib=*/false);
+  auto assets = android::ApkAssets::LoadFromFd(std::move(fd), friendly_name);
   CompileApkAssetsLayouts(assets, target, target_out);
 }
 
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java
index 0dca006..ffd25c0 100755
--- a/telecomm/java/android/telecom/ConnectionService.java
+++ b/telecomm/java/android/telecom/ConnectionService.java
@@ -2633,6 +2633,7 @@
      * @param request Details about the incoming call.
      * @return The {@code Connection} object to satisfy this call, or {@code null} to
      *         not handle the call.
+     * @hide
      */
     public @Nullable Conference onCreateIncomingConference(
             @Nullable PhoneAccountHandle connectionManagerPhoneAccount,
@@ -2717,6 +2718,7 @@
      * @param connectionManagerPhoneAccount See description at
      *         {@link #onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)}.
      * @param request The incoming connection request.
+     * @hide
      */
     public void onCreateIncomingConferenceFailed(
             @Nullable PhoneAccountHandle connectionManagerPhoneAccount,
@@ -2737,6 +2739,7 @@
      * @param connectionManagerPhoneAccount See description at
      *         {@link #onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)}.
      * @param request The outgoing connection request.
+     * @hide
      */
     public void onCreateOutgoingConferenceFailed(
             @Nullable PhoneAccountHandle connectionManagerPhoneAccount,
@@ -2805,6 +2808,7 @@
      * @param request Details about the outgoing call.
      * @return The {@code Conference} object to satisfy this call, or the result of an invocation
      *         of {@link Connection#createFailedConnection(DisconnectCause)} to not handle the call.
+     * @hide
      */
     public @Nullable Conference onCreateOutgoingConference(
             @Nullable PhoneAccountHandle connectionManagerPhoneAccount,
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index 1792256..c993cfa 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -193,13 +193,13 @@
 
     /**
      * Broadcast intent action indicating that the current default call screening app has changed.
-     *
-     * The string extra {@link #EXTRA_DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME} will contain the
-     * name of the Component of the previous or the new call screening app.
-     *
-     * The boolean extra {@link #EXTRA_IS_DEFAULT_CALL_SCREENING_APP} will indicate the component
-     * name in the String extra {@link #EXTRA_DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME} is default
-     * call screening app or not.
+     * <p>
+     * Note: This intent is NEVER actually broadcast and will be deprecated in the future.
+     * <p>
+     * An app that want to know if it holds the
+     * {@link android.app.role.RoleManager#ROLE_CALL_SCREENING} role can use
+     * {@link android.app.role.RoleManager#isRoleHeld(String)} to confirm if it holds the role or
+     * not.
      */
     public static final String ACTION_DEFAULT_CALL_SCREENING_APP_CHANGED =
         "android.telecom.action.DEFAULT_CALL_SCREENING_APP_CHANGED";
@@ -207,6 +207,8 @@
     /**
      * Extra value used with {@link #ACTION_DEFAULT_CALL_SCREENING_APP_CHANGED} broadcast to
      * indicate the ComponentName of the call screening app which has changed.
+     * <p>
+     * Note: This extra is NOT used and will be deprecated in the future.
      */
     public static final String EXTRA_DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME =
             "android.telecom.extra.DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME";
@@ -214,6 +216,8 @@
     /**
      * Extra value used with {@link #ACTION_DEFAULT_CALL_SCREENING_APP_CHANGED} broadcast to
      * indicate whether an app is the default call screening app.
+     * <p>
+     * Note: This extra is NOT used and will be deprecated in the future.
      */
     public static final String EXTRA_IS_DEFAULT_CALL_SCREENING_APP =
             "android.telecom.extra.IS_DEFAULT_CALL_SCREENING_APP";
@@ -848,7 +852,6 @@
      *
      * @hide
      */
-    @SystemApi
     public static final int CALL_SOURCE_EMERGENCY_SHORTCUT = 2;
 
     /**
@@ -856,7 +859,6 @@
      *
      * @hide
      */
-    @SystemApi
     public static final int CALL_SOURCE_EMERGENCY_DIALPAD = 1;
 
     /**
@@ -864,7 +866,6 @@
      *
      * @hide
      */
-    @SystemApi
     public static final int CALL_SOURCE_UNSPECIFIED = 0;
 
     /**
diff --git a/telephony/api/system-current.txt b/telephony/api/system-current.txt
index a49d3d53..6273b48 100644
--- a/telephony/api/system-current.txt
+++ b/telephony/api/system-current.txt
@@ -42,8 +42,8 @@
     method public int getNumRtpPacketsTransmitted();
     method public int getNumRtpPacketsTransmittedLost();
     method public int getUplinkCallQualityLevel();
-    method public boolean isIncomingSilenceDetected();
-    method public boolean isOutgoingSilenceDetected();
+    method public boolean isIncomingSilenceDetectedAtCallSetup();
+    method public boolean isOutgoingSilenceDetectedAtCallSetup();
     method public boolean isRtpInactivityDetected();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int CALL_QUALITY_BAD = 4; // 0x4
@@ -290,30 +290,6 @@
     field public static final String MBMS_STREAMING_SERVICE_ACTION = "android.telephony.action.EmbmsStreaming";
   }
 
-  public final class ModemActivityInfo implements android.os.Parcelable {
-    ctor public ModemActivityInfo(long, int, int, @NonNull int[], int);
-    method public int describeContents();
-    method public int getIdleTimeMillis();
-    method public int getReceiveTimeMillis();
-    method public int getSleepTimeMillis();
-    method public long getTimestamp();
-    method @NonNull public java.util.List<android.telephony.ModemActivityInfo.TransmitPower> getTransmitPowerInfo();
-    method public boolean isValid();
-    method public void writeToParcel(android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ModemActivityInfo> CREATOR;
-    field public static final int TX_POWER_LEVELS = 5; // 0x5
-    field public static final int TX_POWER_LEVEL_0 = 0; // 0x0
-    field public static final int TX_POWER_LEVEL_1 = 1; // 0x1
-    field public static final int TX_POWER_LEVEL_2 = 2; // 0x2
-    field public static final int TX_POWER_LEVEL_3 = 3; // 0x3
-    field public static final int TX_POWER_LEVEL_4 = 4; // 0x4
-  }
-
-  public class ModemActivityInfo.TransmitPower {
-    method @NonNull public android.util.Range<java.lang.Integer> getPowerRangeInDbm();
-    method public int getTimeInMillis();
-  }
-
   public final class NetworkRegistrationInfo implements android.os.Parcelable {
     method @Nullable public android.telephony.DataSpecificRegistrationInfo getDataSpecificInfo();
     method public int getRegistrationState();
@@ -521,21 +497,15 @@
   }
 
   public class ServiceState implements android.os.Parcelable {
-    method public void fillInNotifierBundle(@NonNull android.os.Bundle);
     method @Nullable public android.telephony.NetworkRegistrationInfo getNetworkRegistrationInfo(int, int);
     method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoListForDomain(int);
     method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoListForTransportType(int);
-    method @NonNull public static android.telephony.ServiceState newFromBundle(@NonNull android.os.Bundle);
     field public static final int ROAMING_TYPE_DOMESTIC = 2; // 0x2
     field public static final int ROAMING_TYPE_INTERNATIONAL = 3; // 0x3
     field public static final int ROAMING_TYPE_NOT_ROAMING = 0; // 0x0
     field public static final int ROAMING_TYPE_UNKNOWN = 1; // 0x1
   }
 
-  public class SignalStrength implements android.os.Parcelable {
-    ctor public SignalStrength(@NonNull android.telephony.SignalStrength);
-  }
-
   public final class SmsCbCmasInfo implements android.os.Parcelable {
     ctor public SmsCbCmasInfo(int, int, int, int, int, int);
     method public int describeContents();
@@ -660,11 +630,8 @@
   }
 
   public final class SmsManager {
-    method @RequiresPermission(android.Manifest.permission.ACCESS_MESSAGES_ON_ICC) public boolean copyMessageToIcc(@Nullable byte[], @NonNull byte[], int);
-    method @RequiresPermission(android.Manifest.permission.ACCESS_MESSAGES_ON_ICC) public boolean deleteMessageFromIcc(int);
     method public boolean disableCellBroadcastRange(int, int, int);
     method public boolean enableCellBroadcastRange(int, int, int);
-    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_MESSAGES_ON_ICC) public java.util.List<android.telephony.SmsMessage> getMessagesFromIcc();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getPremiumSmsConsent(@NonNull String);
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getSmsCapacityOnIcc();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void sendMultipartTextMessageWithoutPersisting(String, String, java.util.List<java.lang.String>, java.util.List<android.app.PendingIntent>, java.util.List<android.app.PendingIntent>);
@@ -691,10 +658,10 @@
   public class SubscriptionManager {
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean canDisablePhysicalSubscription();
     method public boolean canManageSubscription(@NonNull android.telephony.SubscriptionInfo, @NonNull String);
-    method @NonNull public int[] getActiveAndHiddenSubscriptionIdList();
-    method @NonNull public int[] getActiveSubscriptionIdList();
+    method @NonNull @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int[] getActiveSubscriptionIdList();
     method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.SubscriptionInfo getActiveSubscriptionInfoForIcc(@NonNull String);
     method public java.util.List<android.telephony.SubscriptionInfo> getAvailableSubscriptionInfoList();
+    method @NonNull @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int[] getCompleteActiveSubscriptionIdList();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getEnabledSubscriptionId(int);
     method @NonNull public static android.content.res.Resources getResourcesForSubId(@NonNull android.content.Context, int);
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isSubscriptionEnabled(int);
@@ -703,18 +670,16 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultDataSubId(int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultSmsSubId(int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultVoiceSubscriptionId(int);
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setDisplayName(@Nullable String, int, int);
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setIconTint(int, int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPreferredDataSubscriptionId(int, boolean, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Integer>);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setSubscriptionEnabled(int, boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUiccApplicationsEnabled(int, boolean);
     field @RequiresPermission(android.Manifest.permission.MANAGE_SUBSCRIPTION_PLANS) public static final String ACTION_SUBSCRIPTION_PLANS_CHANGED = "android.telephony.action.SUBSCRIPTION_PLANS_CHANGED";
     field @NonNull public static final android.net.Uri ADVANCED_CALLING_ENABLED_CONTENT_URI;
-    field public static final int PROFILE_CLASS_DEFAULT = -1; // 0xffffffff
-    field public static final int PROFILE_CLASS_OPERATIONAL = 2; // 0x2
-    field public static final int PROFILE_CLASS_PROVISIONING = 1; // 0x1
-    field public static final int PROFILE_CLASS_TESTING = 0; // 0x0
-    field public static final int PROFILE_CLASS_UNSET = -1; // 0xffffffff
+    field @Deprecated public static final int PROFILE_CLASS_DEFAULT;
+    field public static final int PROFILE_CLASS_OPERATIONAL;
+    field public static final int PROFILE_CLASS_PROVISIONING;
+    field public static final int PROFILE_CLASS_TESTING;
+    field public static final int PROFILE_CLASS_UNSET;
     field @NonNull public static final android.net.Uri VT_ENABLED_CONTENT_URI;
     field @NonNull public static final android.net.Uri WFC_ENABLED_CONTENT_URI;
     field @NonNull public static final android.net.Uri WFC_MODE_CONTENT_URI;
@@ -722,11 +687,6 @@
     field @NonNull public static final android.net.Uri WFC_ROAMING_MODE_CONTENT_URI;
   }
 
-  public class TelephonyFrameworkInitializer {
-    method public static void registerServiceWrappers();
-    method public static void setTelephonyServiceManager(@NonNull android.os.TelephonyServiceManager);
-  }
-
   public final class TelephonyHistogram implements android.os.Parcelable {
     ctor public TelephonyHistogram(int, int, int);
     ctor public TelephonyHistogram(android.telephony.TelephonyHistogram);
@@ -811,8 +771,8 @@
     method public boolean isDataConnectivityPossible();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataEnabledForApn(int);
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isEmergencyAssistanceEnabled();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public boolean isIccLockEnabled();
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle();
-    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isInEmergencySmsMode();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isLteCdmaEvdoGsmWcdmaEnabled();
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isOpportunisticNetworkEnabled();
@@ -825,11 +785,9 @@
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean matchesCurrentSimOperator(@NonNull String, int, @Nullable String);
     method public boolean needsOtaServiceProvisioning();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyOtaEmergencyNumberDbInstalled();
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyUserActivity();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean rebootRadio();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void reportDefaultNetworkStatus(boolean);
     method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.MODIFY_PHONE_STATE}) public void requestCellInfoUpdate(@NonNull android.os.WorkSource, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CellInfoCallback);
-    method public void requestModemActivityInfo(@NonNull android.os.ResultReceiver);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void requestNumberVerification(@NonNull android.telephony.PhoneNumberRange, long, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.NumberVerificationCallback);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void resetAllCarrierActions();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void resetCarrierKeysForImsiEncryption();
@@ -839,7 +797,6 @@
     method @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL) public void resetSettings();
     method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setAllowedCarriers(int, java.util.List<android.service.carrier.CarrierIdentifier>);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setAllowedNetworkTypes(long);
-    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setAlwaysAllowMmsData(boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setCarrierDataEnabled(boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setCarrierRestrictionRules(@NonNull android.telephony.CarrierRestrictionRules);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataActivationState(int);
@@ -859,72 +816,38 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoiceActivationState(int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void shutdownAllRadios();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean supplyPin(String);
-    method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int[] supplyPinReportResult(String);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int[] supplyPinReportResult(String);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean supplyPuk(String, String);
-    method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int[] supplyPukReportResult(String, String);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int[] supplyPukReportResult(String, String);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean switchSlots(int[]);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void toggleRadioOnOff();
     method @RequiresPermission(android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION) public void updateOtaEmergencyNumberDbFilePath(@NonNull android.os.ParcelFileDescriptor);
     method public void updateServiceLocation();
     field @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public static final String ACTION_ANOMALY_REPORTED = "android.telephony.action.ANOMALY_REPORTED";
-    field public static final String ACTION_CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE = "com.android.internal.telephony.CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE";
-    field public static final String ACTION_CARRIER_SIGNAL_PCO_VALUE = "com.android.internal.telephony.CARRIER_SIGNAL_PCO_VALUE";
-    field public static final String ACTION_CARRIER_SIGNAL_REDIRECTED = "com.android.internal.telephony.CARRIER_SIGNAL_REDIRECTED";
-    field public static final String ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED = "com.android.internal.telephony.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED";
-    field public static final String ACTION_CARRIER_SIGNAL_RESET = "com.android.internal.telephony.CARRIER_SIGNAL_RESET";
     field public static final String ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED = "android.intent.action.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED";
     field public static final String ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED = "android.intent.action.ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED";
     field public static final String ACTION_EMERGENCY_ASSISTANCE = "android.telephony.action.EMERGENCY_ASSISTANCE";
     field public static final String ACTION_EMERGENCY_CALLBACK_MODE_CHANGED = "android.intent.action.EMERGENCY_CALLBACK_MODE_CHANGED";
     field public static final String ACTION_EMERGENCY_CALL_STATE_CHANGED = "android.intent.action.EMERGENCY_CALL_STATE_CHANGED";
     field public static final String ACTION_REQUEST_OMADM_CONFIGURATION_UPDATE = "com.android.omadm.service.CONFIGURATION_UPDATE";
-    field public static final String ACTION_SERVICE_PROVIDERS_UPDATED = "android.telephony.action.SERVICE_PROVIDERS_UPDATED";
     field public static final String ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS = "android.telephony.action.SHOW_NOTICE_ECM_BLOCK_OTHERS";
     field public static final String ACTION_SIM_APPLICATION_STATE_CHANGED = "android.telephony.action.SIM_APPLICATION_STATE_CHANGED";
     field public static final String ACTION_SIM_CARD_STATE_CHANGED = "android.telephony.action.SIM_CARD_STATE_CHANGED";
     field public static final String ACTION_SIM_SLOT_STATUS_CHANGED = "android.telephony.action.SIM_SLOT_STATUS_CHANGED";
-    field public static final int CARD_POWER_DOWN = 0; // 0x0
-    field public static final int CARD_POWER_UP = 1; // 0x1
-    field public static final int CARD_POWER_UP_PASS_THROUGH = 2; // 0x2
     field public static final int CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES = -2; // 0xfffffffe
     field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
     field public static final int CARRIER_PRIVILEGE_STATUS_NO_ACCESS = 0; // 0x0
     field public static final int CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED = -1; // 0xffffffff
     field public static final String EXTRA_ANOMALY_DESCRIPTION = "android.telephony.extra.ANOMALY_DESCRIPTION";
     field public static final String EXTRA_ANOMALY_ID = "android.telephony.extra.ANOMALY_ID";
-    field @Deprecated public static final String EXTRA_APN_PROTOCOL = "apnProto";
-    field public static final String EXTRA_APN_PROTOCOL_INT = "apnProtoInt";
-    field @Deprecated public static final String EXTRA_APN_TYPE = "apnType";
-    field public static final String EXTRA_APN_TYPE_INT = "apnTypeInt";
-    field public static final String EXTRA_DATA_SPN = "android.telephony.extra.DATA_SPN";
-    field public static final String EXTRA_DEFAULT_NETWORK_AVAILABLE = "defaultNetworkAvailable";
-    field public static final String EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE = "android.telephony.extra.DEFAULT_SUBSCRIPTION_SELECT_TYPE";
-    field public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_ALL = 4; // 0x4
-    field public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA = 1; // 0x1
-    field public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_NONE = 0; // 0x0
-    field public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_SMS = 3; // 0x3
-    field public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_VOICE = 2; // 0x2
-    field public static final String EXTRA_ERROR_CODE = "errorCode";
-    field public static final String EXTRA_PCO_ID = "pcoId";
-    field public static final String EXTRA_PCO_VALUE = "pcoValue";
     field public static final String EXTRA_PHONE_IN_ECM_STATE = "android.telephony.extra.PHONE_IN_ECM_STATE";
     field public static final String EXTRA_PHONE_IN_EMERGENCY_CALL = "android.telephony.extra.PHONE_IN_EMERGENCY_CALL";
-    field public static final String EXTRA_PLMN = "android.telephony.extra.PLMN";
-    field public static final String EXTRA_REDIRECTION_URL = "redirectionUrl";
-    field public static final String EXTRA_SHOW_PLMN = "android.telephony.extra.SHOW_PLMN";
-    field public static final String EXTRA_SHOW_SPN = "android.telephony.extra.SHOW_SPN";
-    field public static final String EXTRA_SIM_COMBINATION_NAMES = "android.telephony.extra.SIM_COMBINATION_NAMES";
-    field public static final String EXTRA_SIM_COMBINATION_WARNING_TYPE = "android.telephony.extra.SIM_COMBINATION_WARNING_TYPE";
-    field public static final int EXTRA_SIM_COMBINATION_WARNING_TYPE_DUAL_CDMA = 1; // 0x1
-    field public static final int EXTRA_SIM_COMBINATION_WARNING_TYPE_NONE = 0; // 0x0
     field public static final String EXTRA_SIM_STATE = "android.telephony.extra.SIM_STATE";
-    field public static final String EXTRA_SPN = "android.telephony.extra.SPN";
     field public static final String EXTRA_VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL = "android.telephony.extra.VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL";
     field public static final String EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING = "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING";
     field public static final int INVALID_EMERGENCY_NUMBER_DB_VERSION = -1; // 0xffffffff
     field public static final int KEY_TYPE_EPDG = 1; // 0x1
     field public static final int KEY_TYPE_WLAN = 2; // 0x2
-    field public static final String MODEM_ACTIVITY_RESULT_KEY = "controller_activity";
     field public static final long NETWORK_TYPE_BITMASK_1xRTT = 64L; // 0x40L
     field public static final long NETWORK_TYPE_BITMASK_CDMA = 8L; // 0x8L
     field public static final long NETWORK_TYPE_BITMASK_EDGE = 2L; // 0x2L
diff --git a/telephony/common/com/android/internal/telephony/TelephonyPermissions.java b/telephony/common/com/android/internal/telephony/TelephonyPermissions.java
index f0f9721..1a38a42 100644
--- a/telephony/common/com/android/internal/telephony/TelephonyPermissions.java
+++ b/telephony/common/com/android/internal/telephony/TelephonyPermissions.java
@@ -20,7 +20,6 @@
 import android.Manifest;
 import android.annotation.Nullable;
 import android.app.AppOpsManager;
-import android.app.admin.DevicePolicyManager;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
@@ -28,6 +27,7 @@
 import android.os.Build;
 import android.os.Process;
 import android.os.UserHandle;
+import android.permission.PermissionManager;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.util.Log;
@@ -303,14 +303,10 @@
             String message, boolean allowCarrierPrivilegeOnAnySub) {
         int uid = Binder.getCallingUid();
         int pid = Binder.getCallingPid();
-        // Allow system and root access to the device identifiers.
-        final int appId = UserHandle.getAppId(uid);
-        if (appId == Process.SYSTEM_UID || appId == Process.ROOT_UID) {
-            return true;
-        }
-        // Allow access to packages that have the READ_PRIVILEGED_PHONE_STATE permission.
-        if (context.checkPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, pid,
-                uid) == PackageManager.PERMISSION_GRANTED) {
+        PermissionManager permissionManager = (PermissionManager) context.getSystemService(
+                Context.PERMISSION_SERVICE);
+        if (permissionManager.checkDeviceIdentifierAccess(callingPackage, message, callingFeatureId,
+                pid, uid) == PackageManager.PERMISSION_GRANTED) {
             return true;
         }
 
@@ -323,30 +319,6 @@
             return true;
         }
 
-        // if the calling package is not null then perform the DevicePolicyManager device /
-        // profile owner and Appop checks.
-        if (callingPackage != null) {
-            // Allow access to an app that has been granted the READ_DEVICE_IDENTIFIERS app op.
-            long token = Binder.clearCallingIdentity();
-            AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(
-                    Context.APP_OPS_SERVICE);
-            try {
-                if (appOpsManager.noteOpNoThrow(AppOpsManager.OPSTR_READ_DEVICE_IDENTIFIERS, uid,
-                        callingPackage, callingFeatureId, null) == AppOpsManager.MODE_ALLOWED) {
-                    return true;
-                }
-            } finally {
-                Binder.restoreCallingIdentity(token);
-            }
-            // Allow access to a device / profile owner app.
-            DevicePolicyManager devicePolicyManager =
-                    (DevicePolicyManager) context.getSystemService(
-                            Context.DEVICE_POLICY_SERVICE);
-            if (devicePolicyManager != null && devicePolicyManager.hasDeviceIdentifierAccess(
-                    callingPackage, pid, uid)) {
-                return true;
-            }
-        }
         return reportAccessDeniedToReadIdentifiers(context, subId, pid, uid, callingPackage,
                 message);
     }
@@ -389,7 +361,8 @@
             TelephonyCommonStatsLog.write(TelephonyCommonStatsLog.DEVICE_IDENTIFIER_ACCESS_DENIED,
                     callingPackage, message, /* isPreinstalled= */ false, false);
         }
-        Log.w(LOG_TAG, "reportAccessDeniedToReadIdentifiers:" + callingPackage + ":" + message);
+        Log.w(LOG_TAG, "reportAccessDeniedToReadIdentifiers:" + callingPackage + ":" + message + ":"
+                + subId);
         // if the target SDK is pre-Q then check if the calling package would have previously
         // had access to device identifiers.
         if (callingPackageInfo != null && (
@@ -470,16 +443,40 @@
         // NOTE(b/73308711): If an app has one of the following AppOps bits explicitly revoked, they
         // will be denied access, even if they have another permission and AppOps bit if needed.
 
-        // First, check if we can read the phone state and the SDK version is below R.
+        // First, check if the SDK version is below R
+        boolean preR = false;
         try {
             ApplicationInfo info = context.getPackageManager().getApplicationInfoAsUser(
                     callingPackage, 0, UserHandle.getUserHandleForUid(Binder.getCallingUid()));
-            if (info.targetSdkVersion <= Build.VERSION_CODES.Q) {
+            preR = info.targetSdkVersion <= Build.VERSION_CODES.Q;
+        } catch (PackageManager.NameNotFoundException nameNotFoundException) {
+        }
+        if (preR) {
+            // SDK < R allows READ_PHONE_STATE, READ_PRIVILEGED_PHONE_STATE, or carrier privilege
+            try {
                 return checkReadPhoneState(
                         context, subId, pid, uid, callingPackage, callingFeatureId, message);
+            } catch (SecurityException readPhoneStateException) {
             }
-        } catch (SecurityException | PackageManager.NameNotFoundException e) {
+        } else {
+            // SDK >= R allows READ_PRIVILEGED_PHONE_STATE or carrier privilege
+            try {
+                context.enforcePermission(
+                        android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, pid, uid, message);
+                // Skip checking for runtime permission since caller has privileged permission
+                return true;
+            } catch (SecurityException readPrivilegedPhoneStateException) {
+                if (SubscriptionManager.isValidSubscriptionId(subId)) {
+                    try {
+                        enforceCarrierPrivilege(context, subId, uid, message);
+                        // Skip checking for runtime permission since caller has carrier privilege
+                        return true;
+                    } catch (SecurityException carrierPrivilegeException) {
+                    }
+                }
+            }
         }
+
         // Can be read with READ_SMS too.
         try {
             context.enforcePermission(android.Manifest.permission.READ_SMS, pid, uid, message);
@@ -616,7 +613,7 @@
     private static boolean checkCarrierPrivilegeForAnySubId(Context context, int uid) {
         SubscriptionManager sm = (SubscriptionManager) context.getSystemService(
                 Context.TELEPHONY_SUBSCRIPTION_SERVICE);
-        int[] activeSubIds = sm.getActiveAndHiddenSubscriptionIdList();
+        int[] activeSubIds = sm.getCompleteActiveSubscriptionIdList();
         for (int activeSubId : activeSubIds) {
             if (getCarrierPrivilegeStatus(context, activeSubId, uid)
                     == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
diff --git a/telephony/java/android/telephony/AccessNetworkConstants.java b/telephony/java/android/telephony/AccessNetworkConstants.java
index 558f4cd..39a7543 100644
--- a/telephony/java/android/telephony/AccessNetworkConstants.java
+++ b/telephony/java/android/telephony/AccessNetworkConstants.java
@@ -19,9 +19,9 @@
 import android.annotation.IntDef;
 import android.annotation.SystemApi;
 import android.annotation.TestApi;
-import android.hardware.radio.V1_1.EutranBands;
 import android.hardware.radio.V1_1.GeranBands;
 import android.hardware.radio.V1_5.AccessNetwork;
+import android.hardware.radio.V1_5.EutranBands;
 import android.hardware.radio.V1_5.UtranBands;
 
 import java.lang.annotation.Retention;
@@ -212,7 +212,8 @@
 
     /**
      * Frequency bands for EUTRAN.
-     * http://www.etsi.org/deliver/etsi_ts/136100_136199/136101/14.03.00_60/ts_136101v140p.pdf
+     * 3GPP TS 36.101, Version 16.4.0, Table 5.5: Operating bands
+     * https://www.etsi.org/deliver/etsi_ts/136100_136199/136101/15.09.00_60/ts_136101v150900p.pdf
      */
     public static final class EutranBand {
         public static final int BAND_1 = EutranBands.BAND_1;
@@ -259,10 +260,22 @@
         public static final int BAND_46 = EutranBands.BAND_46;
         public static final int BAND_47 = EutranBands.BAND_47;
         public static final int BAND_48 = EutranBands.BAND_48;
+        public static final int BAND_49 = EutranBands.BAND_49;
+        public static final int BAND_50 = EutranBands.BAND_50;
+        public static final int BAND_51 = EutranBands.BAND_51;
+        public static final int BAND_52 = EutranBands.BAND_52;
+        public static final int BAND_53 = EutranBands.BAND_53;
         public static final int BAND_65 = EutranBands.BAND_65;
         public static final int BAND_66 = EutranBands.BAND_66;
         public static final int BAND_68 = EutranBands.BAND_68;
         public static final int BAND_70 = EutranBands.BAND_70;
+        public static final int BAND_71 = EutranBands.BAND_71;
+        public static final int BAND_72 = EutranBands.BAND_72;
+        public static final int BAND_73 = EutranBands.BAND_73;
+        public static final int BAND_74 = EutranBands.BAND_74;
+        public static final int BAND_85 = EutranBands.BAND_85;
+        public static final int BAND_87 = EutranBands.BAND_87;
+        public static final int BAND_88 = EutranBands.BAND_88;
 
         /** @hide */
         private EutranBand() {};
@@ -305,9 +318,11 @@
 
     /**
      * Frequency bands for NGRAN
+     * https://www.etsi.org/deliver/etsi_ts/138100_138199/13810101/15.08.02_60/ts_13810101v150802p.pdf
+     * https://www.etsi.org/deliver/etsi_ts/138100_138199/13810102/15.08.00_60/ts_13810102v150800p.pdf
      */
     public static final class NgranBands {
-        /** FR1 bands */
+        /** 3GPP TS 38.101-1, Version 16.2.0, Table 5.2-1: FR1 bands */
         public static final int BAND_1 = android.hardware.radio.V1_5.NgranBands.BAND_1;
         public static final int BAND_2 = android.hardware.radio.V1_5.NgranBands.BAND_2;
         public static final int BAND_3 = android.hardware.radio.V1_5.NgranBands.BAND_3;
@@ -346,9 +361,15 @@
         public static final int BAND_83 = android.hardware.radio.V1_5.NgranBands.BAND_83;
         public static final int BAND_84 = android.hardware.radio.V1_5.NgranBands.BAND_84;
         public static final int BAND_86 = android.hardware.radio.V1_5.NgranBands.BAND_86;
+        public static final int BAND_89 = android.hardware.radio.V1_5.NgranBands.BAND_89;
         public static final int BAND_90 = android.hardware.radio.V1_5.NgranBands.BAND_90;
+        public static final int BAND_91 = android.hardware.radio.V1_5.NgranBands.BAND_91;
+        public static final int BAND_92 = android.hardware.radio.V1_5.NgranBands.BAND_92;
+        public static final int BAND_93 = android.hardware.radio.V1_5.NgranBands.BAND_93;
+        public static final int BAND_94 = android.hardware.radio.V1_5.NgranBands.BAND_94;
+        public static final int BAND_95 = android.hardware.radio.V1_5.NgranBands.BAND_95;
 
-        /** FR2 bands */
+        /** 3GPP TS 38.101-2, Version 16.2.0, Table 5.2-1: FR2 bands */
         public static final int BAND_257 = android.hardware.radio.V1_5.NgranBands.BAND_257;
         public static final int BAND_258 = android.hardware.radio.V1_5.NgranBands.BAND_258;
         public static final int BAND_260 = android.hardware.radio.V1_5.NgranBands.BAND_260;
@@ -398,7 +419,13 @@
                         BAND_83,
                         BAND_84,
                         BAND_86,
+                        BAND_89,
                         BAND_90,
+                        BAND_91,
+                        BAND_92,
+                        BAND_93,
+                        BAND_94,
+                        BAND_95,
                         BAND_257,
                         BAND_258,
                         BAND_260,
@@ -495,7 +522,13 @@
                 case BAND_83:
                 case BAND_84:
                 case BAND_86:
+                case BAND_89:
                 case BAND_90:
+                case BAND_91:
+                case BAND_92:
+                case BAND_93:
+                case BAND_94:
+                case BAND_95:
                     return FREQUENCY_RANGE_GROUP_1;
                 case BAND_257:
                 case BAND_258:
diff --git a/telephony/java/android/telephony/AccessNetworkUtils.java b/telephony/java/android/telephony/AccessNetworkUtils.java
index 5d2c225..981ed450 100644
--- a/telephony/java/android/telephony/AccessNetworkUtils.java
+++ b/telephony/java/android/telephony/AccessNetworkUtils.java
@@ -34,12 +34,10 @@
             return DUPLEX_MODE_UNKNOWN;
         }
 
-        if (band >= EutranBand.BAND_68) {
+        if (band > EutranBand.BAND_88) {
             return DUPLEX_MODE_UNKNOWN;
         } else if (band >= EutranBand.BAND_65) {
             return DUPLEX_MODE_FDD;
-        } else if (band >= EutranBand.BAND_47) {
-            return DUPLEX_MODE_UNKNOWN;
         } else if (band >= EutranBand.BAND_33) {
             return DUPLEX_MODE_TDD;
         } else if (band >= EutranBand.BAND_1) {
@@ -58,17 +56,53 @@
      * @return Operating band number, or {@link #INVALID_BAND} if no corresponding band exists
      */
     public static int getOperatingBandForEarfcn(int earfcn) {
-        if (earfcn > 67535) {
+        if (earfcn > 70645) {
             return INVALID_BAND;
+        } else if (earfcn >= 70596) {
+            return EutranBand.BAND_88;
+        } else if (earfcn >= 70546) {
+            return EutranBand.BAND_87;
+        } else if (earfcn >= 70366) {
+            return EutranBand.BAND_85;
+        } else if (earfcn > 69465) {
+            return INVALID_BAND;
+        } else if (earfcn >= 69036) {
+            return EutranBand.BAND_74;
+        } else if (earfcn >= 68986) {
+            return EutranBand.BAND_73;
+        } else if (earfcn >= 68936) {
+            return EutranBand.BAND_72;
+        } else if (earfcn >= 68586) {
+            return EutranBand.BAND_71;
+        } else if (earfcn >= 68336) {
+            return EutranBand.BAND_70;
+        } else if (earfcn > 67835) {
+            return INVALID_BAND;
+        } else if (earfcn >= 67536) {
+            return EutranBand.BAND_68;
         } else if (earfcn >= 67366) {
             return INVALID_BAND; // band 67 only for CarrierAgg
         } else if (earfcn >= 66436) {
             return EutranBand.BAND_66;
         } else if (earfcn >= 65536) {
             return EutranBand.BAND_65;
-        } else if (earfcn > 54339) {
+        } else if (earfcn > 60254) {
             return INVALID_BAND;
-        } else if (earfcn >= 46790 /* inferred from the end range of BAND_45 */) {
+        } else if (earfcn >= 60140) {
+            return EutranBand.BAND_53;
+        } else if (earfcn >= 59140) {
+            return EutranBand.BAND_52;
+        } else if (earfcn >= 59090) {
+            return EutranBand.BAND_51;
+        } else if (earfcn >= 58240) {
+            return EutranBand.BAND_50;
+        } else if (earfcn >= 56740) {
+            return EutranBand.BAND_49;
+        } else if (earfcn >= 55240) {
+            return EutranBand.BAND_48;
+        } else if (earfcn >= 54540) {
+            return EutranBand.BAND_47;
+        } else if (earfcn >= 46790) {
             return EutranBand.BAND_46;
         } else if (earfcn >= 46590) {
             return EutranBand.BAND_45;
diff --git a/telephony/java/android/telephony/Annotation.java b/telephony/java/android/telephony/Annotation.java
index b8a74d2..031c337 100644
--- a/telephony/java/android/telephony/Annotation.java
+++ b/telephony/java/android/telephony/Annotation.java
@@ -628,10 +628,10 @@
      */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef(prefix = "OVERRIDE_NETWORK_TYPE_", value = {
-            DisplayInfo.OVERRIDE_NETWORK_TYPE_NONE,
-            DisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA,
-            DisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO,
-            DisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA,
-            DisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE})
+            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE,
+            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA,
+            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO,
+            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA,
+            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE})
     public @interface OverrideNetworkType {}
 }
diff --git a/telephony/java/android/telephony/CallQuality.java b/telephony/java/android/telephony/CallQuality.java
index 428a515..1c82e96 100644
--- a/telephony/java/android/telephony/CallQuality.java
+++ b/telephony/java/android/telephony/CallQuality.java
@@ -287,7 +287,7 @@
      * Returns true if only silence rtp packets are received for a duration of 20 seconds starting
      * at call setup
      */
-    public boolean isIncomingSilenceDetected() {
+    public boolean isIncomingSilenceDetectedAtCallSetup() {
         return mRxSilenceDetected;
     }
 
@@ -295,7 +295,7 @@
       * Returns true if only silence rtp packets are sent for a duration of 20 seconds starting at
       * call setup
       */
-    public boolean isOutgoingSilenceDetected() {
+    public boolean isOutgoingSilenceDetectedAtCallSetup() {
         return mTxSilenceDetected;
     }
 
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index e2112a5..78e5f2d 100755
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -3007,7 +3007,7 @@
      * Controls time in milliseconds until DcTracker reevaluates 5G connection state.
      * @hide
      */
-    public static final String KEY_5G_WATCHDOG_TIME_MS_LONG = "5g_watchdog_time_long";
+    public static final String KEY_5G_WATCHDOG_TIME_MS_LONG = "5g_watchdog_time_ms_long";
 
     /**
      * Whether NR (non-standalone) should be unmetered for all frequencies.
diff --git a/telephony/java/android/telephony/CellInfo.java b/telephony/java/android/telephony/CellInfo.java
index bfa209b..b381cce 100644
--- a/telephony/java/android/telephony/CellInfo.java
+++ b/telephony/java/android/telephony/CellInfo.java
@@ -21,6 +21,7 @@
 import android.annotation.NonNull;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.hardware.radio.V1_4.CellInfo.Info;
+import android.hardware.radio.V1_5.CellInfo.CellInfoRatSpecificInfo;
 import android.os.Parcel;
 import android.os.Parcelable;
 
@@ -28,6 +29,7 @@
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.Objects;
 
 /**
  * Immutable cell information from a point in time.
@@ -152,7 +154,7 @@
     protected CellInfo() {
         this.mRegistered = false;
         this.mTimeStamp = Long.MAX_VALUE;
-        mCellConnectionStatus = CONNECTION_NONE;
+        this.mCellConnectionStatus = CONNECTION_NONE;
     }
 
     /** @hide */
@@ -240,27 +242,17 @@
 
     @Override
     public int hashCode() {
-        int primeNum = 31;
-        return ((mRegistered ? 0 : 1) * primeNum) + ((int)(mTimeStamp / 1000) * primeNum)
-                + (mCellConnectionStatus * primeNum);
+        return Objects.hash(mCellConnectionStatus, mRegistered, mTimeStamp);
     }
 
     @Override
-    public boolean equals(Object other) {
-        if (other == null) {
-            return false;
-        }
-        if (this == other) {
-            return true;
-        }
-        try {
-            CellInfo o = (CellInfo) other;
-            return mRegistered == o.mRegistered
-                    && mTimeStamp == o.mTimeStamp
-                    && mCellConnectionStatus == o.mCellConnectionStatus;
-        } catch (ClassCastException e) {
-            return false;
-        }
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (!(o instanceof CellInfo)) return false;
+        CellInfo cellInfo = (CellInfo) o;
+        return mCellConnectionStatus == cellInfo.mCellConnectionStatus
+                && mRegistered == cellInfo.mRegistered
+                && mTimeStamp == cellInfo.mTimeStamp;
     }
 
     @Override
@@ -353,6 +345,13 @@
     }
 
     /** @hide */
+    protected CellInfo(android.hardware.radio.V1_5.CellInfo ci, long timeStamp) {
+        this.mRegistered = ci.registered;
+        this.mTimeStamp = timeStamp;
+        this.mCellConnectionStatus = ci.connectionStatus;
+    }
+
+    /** @hide */
     public static CellInfo create(android.hardware.radio.V1_0.CellInfo ci) {
         if (ci == null) return null;
         switch(ci.cellInfoType) {
@@ -391,4 +390,24 @@
             default: return null;
         }
     }
+
+    /** @hide */
+    public static CellInfo create(android.hardware.radio.V1_5.CellInfo ci, long timeStamp) {
+        if (ci == null) return null;
+        switch (ci.ratSpecificInfo.getDiscriminator()) {
+            case CellInfoRatSpecificInfo.hidl_discriminator.gsm:
+                return new CellInfoGsm(ci, timeStamp);
+            case CellInfoRatSpecificInfo.hidl_discriminator.cdma:
+                return new CellInfoCdma(ci, timeStamp);
+            case CellInfoRatSpecificInfo.hidl_discriminator.lte:
+                return new CellInfoLte(ci, timeStamp);
+            case CellInfoRatSpecificInfo.hidl_discriminator.wcdma:
+                return new CellInfoWcdma(ci, timeStamp);
+            case CellInfoRatSpecificInfo.hidl_discriminator.tdscdma:
+                return new CellInfoTdscdma(ci, timeStamp);
+            case CellInfoRatSpecificInfo.hidl_discriminator.nr:
+                return new CellInfoNr(ci, timeStamp);
+            default: return null;
+        }
+    }
 }
diff --git a/telephony/java/android/telephony/CellInfoCdma.java b/telephony/java/android/telephony/CellInfoCdma.java
index 0edb4a4..1bef681 100644
--- a/telephony/java/android/telephony/CellInfoCdma.java
+++ b/telephony/java/android/telephony/CellInfoCdma.java
@@ -78,6 +78,15 @@
                 new CellSignalStrengthCdma(cic.signalStrengthCdma, cic.signalStrengthEvdo);
     }
 
+    /** @hide */
+    public CellInfoCdma(android.hardware.radio.V1_5.CellInfo ci, long timeStamp) {
+        super(ci, timeStamp);
+        final android.hardware.radio.V1_2.CellInfoCdma cic = ci.ratSpecificInfo.cdma();
+        mCellIdentityCdma = new CellIdentityCdma(cic.cellIdentityCdma);
+        mCellSignalStrengthCdma =
+                new CellSignalStrengthCdma(cic.signalStrengthCdma, cic.signalStrengthEvdo);
+    }
+
     /**
      * @return a {@link CellIdentityCdma} instance.
      */
diff --git a/telephony/java/android/telephony/CellInfoGsm.java b/telephony/java/android/telephony/CellInfoGsm.java
index 2dddd3f..c19521f 100644
--- a/telephony/java/android/telephony/CellInfoGsm.java
+++ b/telephony/java/android/telephony/CellInfoGsm.java
@@ -73,6 +73,14 @@
         mCellSignalStrengthGsm = new CellSignalStrengthGsm(cig.signalStrengthGsm);
     }
 
+    /** @hide */
+    public CellInfoGsm(android.hardware.radio.V1_5.CellInfo ci, long timeStamp) {
+        super(ci, timeStamp);
+        final android.hardware.radio.V1_5.CellInfoGsm cig = ci.ratSpecificInfo.gsm();
+        mCellIdentityGsm = new CellIdentityGsm(cig.cellIdentityGsm);
+        mCellSignalStrengthGsm = new CellSignalStrengthGsm(cig.signalStrengthGsm);
+    }
+
     /**
      * @return a {@link CellIdentityGsm} instance.
      */
diff --git a/telephony/java/android/telephony/CellInfoLte.java b/telephony/java/android/telephony/CellInfoLte.java
index a57c7cd..320925e 100644
--- a/telephony/java/android/telephony/CellInfoLte.java
+++ b/telephony/java/android/telephony/CellInfoLte.java
@@ -82,6 +82,15 @@
         mCellConfig = new CellConfigLte(cil.cellConfig);
     }
 
+    /** @hide */
+    public CellInfoLte(android.hardware.radio.V1_5.CellInfo ci, long timeStamp) {
+        super(ci, timeStamp);
+        final android.hardware.radio.V1_5.CellInfoLte cil = ci.ratSpecificInfo.lte();
+        mCellIdentityLte = new CellIdentityLte(cil.cellIdentityLte);
+        mCellSignalStrengthLte = new CellSignalStrengthLte(cil.signalStrengthLte);
+        mCellConfig = new CellConfigLte();
+    }
+
     /**
      * @return a {@link CellIdentityLte} instance.
      */
diff --git a/telephony/java/android/telephony/CellInfoNr.java b/telephony/java/android/telephony/CellInfoNr.java
index 8b41b8b..a7e79f9 100644
--- a/telephony/java/android/telephony/CellInfoNr.java
+++ b/telephony/java/android/telephony/CellInfoNr.java
@@ -53,6 +53,14 @@
         mCellSignalStrength = new CellSignalStrengthNr(cil.signalStrength);
     }
 
+    /** @hide */
+    public CellInfoNr(android.hardware.radio.V1_5.CellInfo ci, long timeStamp) {
+        super(ci, timeStamp);
+        final android.hardware.radio.V1_5.CellInfoNr cil = ci.ratSpecificInfo.nr();
+        mCellIdentity = new CellIdentityNr(cil.cellIdentityNr);
+        mCellSignalStrength = new CellSignalStrengthNr(cil.signalStrengthNr);
+    }
+
     /**
      * @return a {@link CellIdentityNr} instance.
      */
diff --git a/telephony/java/android/telephony/CellInfoTdscdma.java b/telephony/java/android/telephony/CellInfoTdscdma.java
index d2cc9c6c..038c49a 100644
--- a/telephony/java/android/telephony/CellInfoTdscdma.java
+++ b/telephony/java/android/telephony/CellInfoTdscdma.java
@@ -77,6 +77,14 @@
         mCellSignalStrengthTdscdma = new CellSignalStrengthTdscdma(cit.signalStrengthTdscdma);
     }
 
+    /** @hide */
+    public CellInfoTdscdma(android.hardware.radio.V1_5.CellInfo ci, long timeStamp) {
+        super(ci, timeStamp);
+        final android.hardware.radio.V1_5.CellInfoTdscdma cit = ci.ratSpecificInfo.tdscdma();
+        mCellIdentityTdscdma = new CellIdentityTdscdma(cit.cellIdentityTdscdma);
+        mCellSignalStrengthTdscdma = new CellSignalStrengthTdscdma(cit.signalStrengthTdscdma);
+    }
+
     /**
      * @return a {@link CellIdentityTdscdma} instance.
      */
diff --git a/telephony/java/android/telephony/CellInfoWcdma.java b/telephony/java/android/telephony/CellInfoWcdma.java
index 3f792d1..c74955f 100644
--- a/telephony/java/android/telephony/CellInfoWcdma.java
+++ b/telephony/java/android/telephony/CellInfoWcdma.java
@@ -72,6 +72,14 @@
         mCellSignalStrengthWcdma = new CellSignalStrengthWcdma(ciw.signalStrengthWcdma);
     }
 
+    /** @hide */
+    public CellInfoWcdma(android.hardware.radio.V1_5.CellInfo ci, long timeStamp) {
+        super(ci, timeStamp);
+        final android.hardware.radio.V1_5.CellInfoWcdma ciw = ci.ratSpecificInfo.wcdma();
+        mCellIdentityWcdma = new CellIdentityWcdma(ciw.cellIdentityWcdma);
+        mCellSignalStrengthWcdma = new CellSignalStrengthWcdma(ciw.signalStrengthWcdma);
+    }
+
     /**
      * @return a {@link CellIdentityWcdma} instance.
      */
diff --git a/telephony/java/android/telephony/CellSignalStrength.java b/telephony/java/android/telephony/CellSignalStrength.java
index cb8fdf0..2e7bde3 100644
--- a/telephony/java/android/telephony/CellSignalStrength.java
+++ b/telephony/java/android/telephony/CellSignalStrength.java
@@ -156,6 +156,8 @@
     /**
      * Returns the number of signal strength levels.
      * @return Number of signal strength levels, enforced to be 5
+     *
+     * @hide
      */
     public static final int getNumSignalStrengthLevels() {
         return NUM_SIGNAL_STRENGTH_BINS;
diff --git a/telephony/java/android/telephony/CellSignalStrengthCdma.java b/telephony/java/android/telephony/CellSignalStrengthCdma.java
index 1c92705b..d00049c 100644
--- a/telephony/java/android/telephony/CellSignalStrengthCdma.java
+++ b/telephony/java/android/telephony/CellSignalStrengthCdma.java
@@ -314,6 +314,8 @@
 
     /**
      * Get the signal strength as dBm
+     *
+     * @return min(CDMA RSSI, EVDO RSSI) of the measured cell.
      */
     @Override
     public int getDbm() {
diff --git a/telephony/java/android/telephony/CellSignalStrengthGsm.java b/telephony/java/android/telephony/CellSignalStrengthGsm.java
index 76d2df9..9d55f10 100644
--- a/telephony/java/android/telephony/CellSignalStrengthGsm.java
+++ b/telephony/java/android/telephony/CellSignalStrengthGsm.java
@@ -145,6 +145,8 @@
 
     /**
      * Get the signal strength as dBm.
+     *
+     * @return the RSSI of the measured cell.
      */
     @Override
     public int getDbm() {
diff --git a/telephony/java/android/telephony/ClosedSubscriberGroupInfo.java b/telephony/java/android/telephony/ClosedSubscriberGroupInfo.java
index e7dfe634..e926272 100644
--- a/telephony/java/android/telephony/ClosedSubscriberGroupInfo.java
+++ b/telephony/java/android/telephony/ClosedSubscriberGroupInfo.java
@@ -102,7 +102,7 @@
         }
 
         ClosedSubscriberGroupInfo o = (ClosedSubscriberGroupInfo) other;
-        return mCsgIndicator == o.mCsgIndicator && mHomeNodebName == o.mHomeNodebName
+        return mCsgIndicator == o.mCsgIndicator && o.mHomeNodebName.equals(mHomeNodebName)
                 && mCsgIdentity == o.mCsgIdentity;
     }
 
diff --git a/telephony/java/android/telephony/ModemActivityInfo.java b/telephony/java/android/telephony/ModemActivityInfo.java
index e815aec..2b72ab7 100644
--- a/telephony/java/android/telephony/ModemActivityInfo.java
+++ b/telephony/java/android/telephony/ModemActivityInfo.java
@@ -18,7 +18,6 @@
 
 import android.annotation.IntDef;
 import android.annotation.NonNull;
-import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.SystemClock;
@@ -33,7 +32,6 @@
  * Reports modem activity information.
  * @hide
  */
-@SystemApi
 public final class ModemActivityInfo implements Parcelable {
     /**
      * Tx(transmit) power level. see power index below
diff --git a/telephony/java/android/telephony/NetworkRegistrationInfo.java b/telephony/java/android/telephony/NetworkRegistrationInfo.java
index 4940cb2..93fbb00 100644
--- a/telephony/java/android/telephony/NetworkRegistrationInfo.java
+++ b/telephony/java/android/telephony/NetworkRegistrationInfo.java
@@ -690,7 +690,7 @@
      */
     public void updateNrState() {
         mNrState = NR_STATE_NONE;
-        if (mDataSpecificInfo.isEnDcAvailable) {
+        if (mDataSpecificInfo != null && mDataSpecificInfo.isEnDcAvailable) {
             if (!mDataSpecificInfo.isDcNrRestricted && mDataSpecificInfo.isNrAvailable) {
                 mNrState = NR_STATE_NOT_RESTRICTED;
             } else {
diff --git a/telephony/java/android/telephony/PhoneCapability.java b/telephony/java/android/telephony/PhoneCapability.java
index 6571858..b785037 100644
--- a/telephony/java/android/telephony/PhoneCapability.java
+++ b/telephony/java/android/telephony/PhoneCapability.java
@@ -28,6 +28,8 @@
 /**
  * Define capability of a modem group. That is, the capabilities
  * are shared between those modems defined by list of modem IDs.
+ *
+ * @hide
  */
 public final class PhoneCapability implements Parcelable {
     // Hardcoded default DSDS capability.
diff --git a/telephony/java/android/telephony/PreciseDataConnectionState.java b/telephony/java/android/telephony/PreciseDataConnectionState.java
index c2cfbef..5625642 100644
--- a/telephony/java/android/telephony/PreciseDataConnectionState.java
+++ b/telephony/java/android/telephony/PreciseDataConnectionState.java
@@ -265,7 +265,6 @@
      *
      * @return the ApnSetting that was used to configure this data connection.
      */
-    // FIXME: This shouldn't be nullable; update once the ApnSetting is supplied correctly
     public @Nullable ApnSetting getApnSetting() {
         return mApnSetting;
     }
diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java
index deba551..0e61efa 100644
--- a/telephony/java/android/telephony/ServiceState.java
+++ b/telephony/java/android/telephony/ServiceState.java
@@ -397,7 +397,6 @@
      * @return newly created ServiceState
      * @hide
      */
-    @SystemApi
     @NonNull
     public static ServiceState newFromBundle(@NonNull Bundle m) {
         ServiceState ret;
@@ -1316,7 +1315,6 @@
      * @hide
      *
      */
-    @SystemApi
     public void fillInNotifierBundle(@NonNull Bundle m) {
         m.putParcelable(EXTRA_SERVICE_STATE, this);
         // serviceState already consists of below entries.
diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java
index ad58c54..2bb4eb1 100644
--- a/telephony/java/android/telephony/SignalStrength.java
+++ b/telephony/java/android/telephony/SignalStrength.java
@@ -18,7 +18,6 @@
 
 import android.annotation.ElapsedRealtimeLong;
 import android.annotation.NonNull;
-import android.annotation.SystemApi;
 import android.compat.annotation.UnsupportedAppUsage;
 import android.os.Build;
 import android.os.Bundle;
@@ -189,12 +188,12 @@
     private CellSignalStrength getPrimary() {
         // This behavior is intended to replicate the legacy behavior of getLevel() by prioritizing
         // newer faster RATs for default/for display purposes.
+        if (mNr.isValid()) return mNr;
         if (mLte.isValid()) return mLte;
         if (mCdma.isValid()) return mCdma;
         if (mTdscdma.isValid()) return mTdscdma;
         if (mWcdma.isValid()) return mWcdma;
         if (mGsm.isValid()) return mGsm;
-        if (mNr.isValid()) return mNr;
         return mLte;
     }
 
@@ -284,7 +283,6 @@
      *
      * @hide
      */
-    @SystemApi
     public SignalStrength(@NonNull SignalStrength s) {
         copyFrom(s);
     }
diff --git a/telephony/java/android/telephony/SmsManager.java b/telephony/java/android/telephony/SmsManager.java
index 6aea5ee..991375c 100644
--- a/telephony/java/android/telephony/SmsManager.java
+++ b/telephony/java/android/telephony/SmsManager.java
@@ -424,7 +424,7 @@
             String destinationAddress, String scAddress, String text,
             PendingIntent sentIntent, PendingIntent deliveryIntent) {
         sendTextMessageInternal(destinationAddress, scAddress, text, sentIntent, deliveryIntent,
-                true /* persistMessage*/, null, 0L /* messageId */);
+                true /* persistMessage*/, null, null, 0L /* messageId */);
     }
 
 
@@ -443,7 +443,7 @@
             @Nullable PendingIntent sentIntent, @Nullable PendingIntent deliveryIntent,
             long messageId) {
         sendTextMessageInternal(destinationAddress, scAddress, text, sentIntent, deliveryIntent,
-                true /* persistMessage*/, null, messageId);
+                true /* persistMessage*/, null, null, messageId);
     }
 
     /**
@@ -561,7 +561,7 @@
 
     private void sendTextMessageInternal(String destinationAddress, String scAddress,
             String text, PendingIntent sentIntent, PendingIntent deliveryIntent,
-            boolean persistMessage, String packageName, long messageId) {
+            boolean persistMessage, String packageName, String attributionTag, long messageId) {
         if (TextUtils.isEmpty(destinationAddress)) {
             throw new IllegalArgumentException("Invalid destinationAddress");
         }
@@ -586,7 +586,7 @@
                 public void onSuccess(int subId) {
                     ISms iSms = getISmsServiceOrThrow();
                     try {
-                        iSms.sendTextForSubscriber(subId, packageName,
+                        iSms.sendTextForSubscriber(subId, packageName, attributionTag,
                                 destinationAddress, scAddress, text, sentIntent, deliveryIntent,
                                 persistMessage, messageId);
                     } catch (RemoteException e) {
@@ -606,7 +606,7 @@
             // visible to the user.
             ISms iSms = getISmsServiceOrThrow();
             try {
-                iSms.sendTextForSubscriber(getSubscriptionId(), packageName,
+                iSms.sendTextForSubscriber(getSubscriptionId(), packageName, attributionTag,
                         destinationAddress, scAddress, text, sentIntent, deliveryIntent,
                         persistMessage, messageId);
             } catch (RemoteException e) {
@@ -653,7 +653,7 @@
             String destinationAddress, String scAddress, String text,
             PendingIntent sentIntent, PendingIntent deliveryIntent) {
         sendTextMessageInternal(destinationAddress, scAddress, text, sentIntent, deliveryIntent,
-                false /* persistMessage */, null,
+                false /* persistMessage */, null, null,
                 0L /* messageId */);
     }
 
@@ -697,7 +697,7 @@
                         ISms iSms = getISmsServiceOrThrow();
                         if (iSms != null) {
                             iSms.sendTextForSubscriberWithOptions(subId,
-                                    null, destinationAddress,
+                                    null, null, destinationAddress,
                                     scAddress,
                                     text, sentIntent, deliveryIntent, persistMessage, finalPriority,
                                     expectMore, finalValidity);
@@ -719,7 +719,7 @@
                 ISms iSms = getISmsServiceOrThrow();
                 if (iSms != null) {
                     iSms.sendTextForSubscriberWithOptions(getSubscriptionId(),
-                            null, destinationAddress,
+                            null, null, destinationAddress,
                             scAddress,
                             text, sentIntent, deliveryIntent, persistMessage, finalPriority,
                             expectMore, finalValidity);
@@ -937,7 +937,7 @@
             String destinationAddress, String scAddress, ArrayList<String> parts,
             ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents) {
         sendMultipartTextMessageInternal(destinationAddress, scAddress, parts, sentIntents,
-                deliveryIntents, true /* persistMessage*/, null,
+                deliveryIntents, true /* persistMessage*/, null, null,
                 0L /* messageId */);
     }
 
@@ -955,7 +955,7 @@
             @NonNull List<String> parts, @Nullable List<PendingIntent> sentIntents,
             @Nullable List<PendingIntent> deliveryIntents, long messageId) {
         sendMultipartTextMessageInternal(destinationAddress, scAddress, parts, sentIntents,
-                deliveryIntents, true /* persistMessage*/, null,
+                deliveryIntents, true /* persistMessage*/, null, null,
                 messageId);
     }
 
@@ -979,15 +979,18 @@
     public void sendMultipartTextMessage(
             @NonNull String destinationAddress, @Nullable String scAddress,
             @NonNull List<String> parts, @Nullable List<PendingIntent> sentIntents,
-            @Nullable List<PendingIntent> deliveryIntents, @NonNull String packageName) {
+            @Nullable List<PendingIntent> deliveryIntents, @NonNull String packageName,
+            @Nullable String attributionTag) {
         sendMultipartTextMessageInternal(destinationAddress, scAddress, parts, sentIntents,
-                deliveryIntents, true /* persistMessage*/, packageName, 0L /* messageId */);
+                deliveryIntents, true /* persistMessage*/, packageName, attributionTag,
+                0L /* messageId */);
     }
 
     private void sendMultipartTextMessageInternal(
             String destinationAddress, String scAddress, List<String> parts,
             List<PendingIntent> sentIntents, List<PendingIntent> deliveryIntents,
-            boolean persistMessage, String packageName, long messageId) {
+            boolean persistMessage, String packageName, @Nullable String attributionTag,
+            long messageId) {
         if (TextUtils.isEmpty(destinationAddress)) {
             throw new IllegalArgumentException("Invalid destinationAddress");
         }
@@ -1012,7 +1015,7 @@
                     public void onSuccess(int subId) {
                         try {
                             ISms iSms = getISmsServiceOrThrow();
-                            iSms.sendMultipartTextForSubscriber(subId, packageName,
+                            iSms.sendMultipartTextForSubscriber(subId, packageName, attributionTag,
                                     destinationAddress, scAddress, parts, sentIntents,
                                     deliveryIntents, persistMessage, messageId);
                         } catch (RemoteException e) {
@@ -1034,8 +1037,8 @@
                     ISms iSms = getISmsServiceOrThrow();
                     if (iSms != null) {
                         iSms.sendMultipartTextForSubscriber(getSubscriptionId(), packageName,
-                                destinationAddress, scAddress, parts, sentIntents, deliveryIntents,
-                                persistMessage, messageId);
+                                attributionTag, destinationAddress, scAddress, parts, sentIntents,
+                                deliveryIntents, persistMessage, messageId);
                     }
                 } catch (RemoteException e) {
                     Log.e(TAG, "sendMultipartTextMessageInternal: Couldn't send SMS - "
@@ -1053,7 +1056,7 @@
                 deliveryIntent = deliveryIntents.get(0);
             }
             sendTextMessageInternal(destinationAddress, scAddress, parts.get(0),
-                    sentIntent, deliveryIntent, true, packageName, messageId);
+                    sentIntent, deliveryIntent, true, packageName, attributionTag, messageId);
         }
     }
 
@@ -1083,7 +1086,7 @@
             String destinationAddress, String scAddress, List<String> parts,
             List<PendingIntent> sentIntents, List<PendingIntent> deliveryIntents) {
         sendMultipartTextMessageInternal(destinationAddress, scAddress, parts, sentIntents,
-                deliveryIntents, false /* persistMessage*/, null,
+                deliveryIntents, false /* persistMessage*/, null, null,
                 0L /* messageId */);
     }
 
@@ -1246,7 +1249,7 @@
                             ISms iSms = getISmsServiceOrThrow();
                             if (iSms != null) {
                                 iSms.sendMultipartTextForSubscriberWithOptions(subId,
-                                        null, destinationAddress,
+                                        null, null, destinationAddress,
                                         scAddress, parts, sentIntents, deliveryIntents,
                                         persistMessage, finalPriority, expectMore, finalValidity);
                             }
@@ -1268,7 +1271,7 @@
                     ISms iSms = getISmsServiceOrThrow();
                     if (iSms != null) {
                         iSms.sendMultipartTextForSubscriberWithOptions(getSubscriptionId(),
-                                null, destinationAddress,
+                                null, null, destinationAddress,
                                 scAddress, parts, sentIntents, deliveryIntents,
                                 persistMessage, finalPriority, expectMore, finalValidity);
                     }
@@ -1399,9 +1402,8 @@
             public void onSuccess(int subId) {
                 try {
                     ISms iSms = getISmsServiceOrThrow();
-                    iSms.sendDataForSubscriber(subId, null,
-                            destinationAddress, scAddress, destinationPort & 0xFFFF, data,
-                            sentIntent, deliveryIntent);
+                    iSms.sendDataForSubscriber(subId, null, null, destinationAddress, scAddress,
+                            destinationPort & 0xFFFF, data, sentIntent, deliveryIntent);
                 } catch (RemoteException e) {
                     Log.e(TAG, "sendDataMessage: Couldn't send SMS - Exception: " + e.getMessage());
                     notifySmsError(sentIntent, RESULT_REMOTE_EXCEPTION);
@@ -1553,7 +1555,7 @@
             // it here because we do not have access to the activity context that is performing this
             // operation.
             // Requires that the calling process has the SEND_SMS permission.
-            getITelephony().enqueueSmsPickResult(null,
+            getITelephony().enqueueSmsPickResult(null, null,
                     new IIntegerConsumer.Stub() {
                         @Override
                         public void accept(int subId) {
@@ -1672,7 +1674,6 @@
      * @throws IllegalArgumentException if pdu is null.
      * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.ACCESS_MESSAGES_ON_ICC)
     public boolean copyMessageToIcc(
             @Nullable byte[] smsc, @NonNull byte[] pdu, @StatusOnIcc int status) {
@@ -1717,7 +1718,6 @@
      *
      * {@hide}
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.ACCESS_MESSAGES_ON_ICC)
     public boolean deleteMessageFromIcc(int messageIndex) {
         boolean success = false;
@@ -1798,7 +1798,6 @@
      *
      * {@hide}
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.ACCESS_MESSAGES_ON_ICC)
     public @NonNull List<SmsMessage> getMessagesFromIcc() {
         return getAllMessagesFromIcc();
@@ -2521,7 +2520,6 @@
      * @param sentIntent if not NULL this <code>PendingIntent</code> is
      *  broadcast when the message is successfully sent, or failed
      * @throws IllegalArgumentException if contentUri is empty
-     * @deprecated use {@link MmsManager#sendMultimediaMessage} instead.
      */
     public void sendMultimediaMessage(Context context, Uri contentUri, String locationUrl,
             Bundle configOverrides, PendingIntent sentIntent) {
@@ -2556,7 +2554,6 @@
      * @param downloadedIntent if not NULL this <code>PendingIntent</code> is
      *  broadcast when the message is downloaded, or the download is failed
      * @throws IllegalArgumentException if locationUrl or contentUri is empty
-     * @deprecated use {@link MmsManager#downloadMultimediaMessage} instead.
      */
     public void downloadMultimediaMessage(Context context, String locationUrl, Uri contentUri,
             Bundle configOverrides, PendingIntent downloadedIntent) {
diff --git a/telephony/java/android/telephony/SmsMessage.java b/telephony/java/android/telephony/SmsMessage.java
index bc5cc96..e537f66 100644
--- a/telephony/java/android/telephony/SmsMessage.java
+++ b/telephony/java/android/telephony/SmsMessage.java
@@ -1198,6 +1198,7 @@
     /**
      * Returns the recipient address(receiver) of this SMS message in String form or null if
      * unavailable.
+     * {@hide}
      */
     @Nullable
     public String getRecipientAddress() {
diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java
index 0ec3d55..3546434 100644
--- a/telephony/java/android/telephony/SubscriptionInfo.java
+++ b/telephony/java/android/telephony/SubscriptionInfo.java
@@ -240,7 +240,7 @@
         this(id, iccId, simSlotIndex, displayName, carrierName, nameSource, iconTint, number,
                 roaming, icon, mcc, mnc, countryIso, isEmbedded, nativeAccessRules, cardString, -1,
                 false, null, false, TelephonyManager.UNKNOWN_CARRIER_ID,
-                SubscriptionManager.PROFILE_CLASS_DEFAULT,
+                SubscriptionManager.PROFILE_CLASS_UNSET,
                 SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, null, null, true);
     }
 
@@ -449,13 +449,21 @@
     }
 
     /**
-     * @return the number of this subscription.
+     * @return the number of this subscription if the calling app has been granted the
+     * READ_PHONE_NUMBERS permission, or an empty string otherwise
      */
     public String getNumber() {
         return mNumber;
     }
 
     /**
+     * @hide
+     */
+    public void clearNumber() {
+        mNumber = "";
+    }
+
+    /**
      * @return the data roaming state for this subscription, either
      * {@link SubscriptionManager#DATA_ROAMING_ENABLE} or {@link SubscriptionManager#DATA_ROAMING_DISABLE}.
      */
@@ -662,8 +670,16 @@
     }
 
     /**
-     * @return the card string of the SIM card which contains the subscription. The card string is
-     * the ICCID for UICCs or the EID for eUICCs.
+     * Returns the card string if the calling app has been granted the READ_PRIVILEGED_PHONE_STATE
+     * permission, has carrier privileges (see {@link TelephonyManager#hasCarrierPrivileges}), or
+     * is a device owner or profile owner on an organization owned device that has been granted the
+     * READ_PHONE_STATE permission. The profile owner is an app that owns a managed profile on the
+     * device; for more details see <a href="https://developer.android.com/work/managed-profiles">
+     * Work profiles</a>.
+     *
+     * @return the card string of the SIM card which contains the subscription or an empty string
+     * if these requirements are not met. The card string is the ICCID for UICCs or the EID for
+     * eUICCs.
      * @hide
      * //TODO rename usages in LPA: UiccSlotUtil.java, UiccSlotsManager.java, UiccSlotInfoTest.java
      */
@@ -672,6 +688,13 @@
     }
 
     /**
+     * @hide
+     */
+    public void clearCardString() {
+        this.mCardString = "";
+    }
+
+    /**
      * Returns the card ID of the SIM card which contains the subscription (see
      * {@link UiccCardInfo#getCardId()}.
      * @return the cardId
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index 01a40f5..2facd5a 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -262,7 +262,8 @@
      * <P>Type: TEXT (String)</P>
      */
     /** @hide */
-    public static final String UNIQUE_KEY_SUBSCRIPTION_ID = SimInfo.UNIQUE_KEY_SUBSCRIPTION_ID;
+    public static final String UNIQUE_KEY_SUBSCRIPTION_ID =
+            SimInfo.COLUMN_UNIQUE_KEY_SUBSCRIPTION_ID;
 
     /**
      * TelephonyProvider column name for a unique identifier for the subscription within the
@@ -271,14 +272,14 @@
      * <P>Type: TEXT (String)</P>
      */
     /** @hide */
-    public static final String ICC_ID = SimInfo.ICC_ID;
+    public static final String ICC_ID = SimInfo.COLUMN_ICC_ID;
 
     /**
      * TelephonyProvider column name for user SIM_SlOT_INDEX
      * <P>Type: INTEGER (int)</P>
      */
     /** @hide */
-    public static final String SIM_SLOT_INDEX = SimInfo.SIM_SLOT_INDEX;
+    public static final String SIM_SLOT_INDEX = SimInfo.COLUMN_SIM_SLOT_INDEX;
 
     /** SIM is not inserted */
     /** @hide */
@@ -297,7 +298,7 @@
      * Default value is 0.
      */
     /** @hide */
-    public static final String SUBSCRIPTION_TYPE = SimInfo.SUBSCRIPTION_TYPE;
+    public static final String SUBSCRIPTION_TYPE = SimInfo.COLUMN_SUBSCRIPTION_TYPE;
 
     /**
      * TelephonyProvider column name data_enabled_override_rules.
@@ -310,7 +311,8 @@
      *
      * @hide
      */
-    public static final String DATA_ENABLED_OVERRIDE_RULES = SimInfo.DATA_ENABLED_OVERRIDE_RULES;
+    public static final String DATA_ENABLED_OVERRIDE_RULES =
+            SimInfo.COLUMN_DATA_ENABLED_OVERRIDE_RULES;
 
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
@@ -359,14 +361,14 @@
      * <P>Type: TEXT (String)</P>
      */
     /** @hide */
-    public static final String DISPLAY_NAME = SimInfo.DISPLAY_NAME;
+    public static final String DISPLAY_NAME = SimInfo.COLUMN_DISPLAY_NAME;
 
     /**
      * TelephonyProvider column name for the service provider name for the SIM.
      * <P>Type: TEXT (String)</P>
      */
     /** @hide */
-    public static final String CARRIER_NAME = SimInfo.CARRIER_NAME;
+    public static final String CARRIER_NAME = SimInfo.COLUMN_CARRIER_NAME;
 
     /**
      * Default name resource
@@ -380,13 +382,13 @@
      *
      * @hide
      */
-    public static final String NAME_SOURCE = SimInfo.NAME_SOURCE;
+    public static final String NAME_SOURCE = SimInfo.COLUMN_NAME_SOURCE;
 
     /**
-     * The name_source is the default, which is from the carrier id.
+     * The name_source is from the carrier id.
      * @hide
      */
-    public static final int NAME_SOURCE_DEFAULT = SimInfo.NAME_SOURCE_DEFAULT;
+    public static final int NAME_SOURCE_CARRIER_ID = SimInfo.NAME_SOURCE_CARRIER_ID;
 
     /**
      * The name_source is from SIM EF_SPN.
@@ -417,7 +419,7 @@
     @Retention(RetentionPolicy.SOURCE)
     @IntDef(prefix = {"NAME_SOURCE_"},
             value = {
-                    NAME_SOURCE_DEFAULT,
+                    NAME_SOURCE_CARRIER_ID,
                     NAME_SOURCE_SIM_SPN,
                     NAME_SOURCE_USER_INPUT,
                     NAME_SOURCE_CARRIER,
@@ -430,21 +432,21 @@
      * <P>Type: INTEGER (int)</P>
      */
     /** @hide */
-    public static final String COLOR = SimInfo.COLOR;
+    public static final String HUE = SimInfo.COLUMN_COLOR;
 
     /**
      * TelephonyProvider column name for the phone number of a SIM.
      * <P>Type: TEXT (String)</P>
      */
     /** @hide */
-    public static final String NUMBER = SimInfo.NUMBER;
+    public static final String NUMBER = SimInfo.COLUMN_NUMBER;
 
     /**
      * TelephonyProvider column name for whether data roaming is enabled.
      * <P>Type: INTEGER (int)</P>
      */
     /** @hide */
-    public static final String DATA_ROAMING = SimInfo.DATA_ROAMING;
+    public static final String DATA_ROAMING = SimInfo.COLUMN_DATA_ROAMING;
 
     /** Indicates that data roaming is enabled for a subscription */
     public static final int DATA_ROAMING_ENABLE = SimInfo.DATA_ROAMING_ENABLE;
@@ -452,63 +454,60 @@
     /** Indicates that data roaming is disabled for a subscription */
     public static final int DATA_ROAMING_DISABLE = SimInfo.DATA_ROAMING_DISABLE;
 
-    /** @hide */
-    public static final int DATA_ROAMING_DEFAULT = SimInfo.DATA_ROAMING_DEFAULT;
-
     /**
      * TelephonyProvider column name for subscription carrier id.
      * @see TelephonyManager#getSimCarrierId()
      * <p>Type: INTEGER (int) </p>
      * @hide
      */
-    public static final String CARRIER_ID = SimInfo.CARRIER_ID;
+    public static final String CARRIER_ID = SimInfo.COLUMN_CARRIER_ID;
 
     /**
      * @hide A comma-separated list of EHPLMNs associated with the subscription
      * <P>Type: TEXT (String)</P>
      */
-    public static final String EHPLMNS = SimInfo.EHPLMNS;
+    public static final String EHPLMNS = SimInfo.COLUMN_EHPLMNS;
 
     /**
      * @hide A comma-separated list of HPLMNs associated with the subscription
      * <P>Type: TEXT (String)</P>
      */
-    public static final String HPLMNS = SimInfo.HPLMNS;
+    public static final String HPLMNS = SimInfo.COLUMN_HPLMNS;
 
     /**
      * TelephonyProvider column name for the MCC associated with a SIM, stored as a string.
      * <P>Type: TEXT (String)</P>
      * @hide
      */
-    public static final String MCC_STRING = SimInfo.MCC_STRING;
+    public static final String MCC_STRING = SimInfo.COLUMN_MCC_STRING;
 
     /**
      * TelephonyProvider column name for the MNC associated with a SIM, stored as a string.
      * <P>Type: TEXT (String)</P>
      * @hide
      */
-    public static final String MNC_STRING = SimInfo.MNC_STRING;
+    public static final String MNC_STRING = SimInfo.COLUMN_MNC_STRING;
 
     /**
      * TelephonyProvider column name for the MCC associated with a SIM.
      * <P>Type: INTEGER (int)</P>
      * @hide
      */
-    public static final String MCC = SimInfo.MCC;
+    public static final String MCC = SimInfo.COLUMN_MCC;
 
     /**
      * TelephonyProvider column name for the MNC associated with a SIM.
      * <P>Type: INTEGER (int)</P>
      * @hide
      */
-    public static final String MNC = SimInfo.MNC;
+    public static final String MNC = SimInfo.COLUMN_MNC;
 
     /**
      * TelephonyProvider column name for the iso country code associated with a SIM.
      * <P>Type: TEXT (String)</P>
      * @hide
      */
-    public static final String ISO_COUNTRY_CODE = SimInfo.ISO_COUNTRY_CODE;
+    public static final String ISO_COUNTRY_CODE = SimInfo.COLUMN_ISO_COUNTRY_CODE;
 
     /**
      * TelephonyProvider column name for whether a subscription is embedded (that is, present on an
@@ -516,7 +515,7 @@
      * <p>Type: INTEGER (int), 1 for embedded or 0 for non-embedded.
      * @hide
      */
-    public static final String IS_EMBEDDED = SimInfo.IS_EMBEDDED;
+    public static final String IS_EMBEDDED = SimInfo.COLUMN_IS_EMBEDDED;
 
     /**
      * TelephonyProvider column name for SIM card identifier. For UICC card it is the ICCID of the
@@ -524,7 +523,7 @@
      * <P>Type: TEXT (String)</P>
      * @hide
      */
-    public static final String CARD_ID = SimInfo.CARD_ID;
+    public static final String CARD_ID = SimInfo.COLUMN_CARD_ID;
 
     /**
      * TelephonyProvider column name for the encoded {@link UiccAccessRule}s from
@@ -532,7 +531,7 @@
      * <p>TYPE: BLOB
      * @hide
      */
-    public static final String ACCESS_RULES = SimInfo.ACCESS_RULES;
+    public static final String ACCESS_RULES = SimInfo.COLUMN_ACCESS_RULES;
 
     /**
      * TelephonyProvider column name for the encoded {@link UiccAccessRule}s from
@@ -542,7 +541,7 @@
      * @hide
      */
     public static final String ACCESS_RULES_FROM_CARRIER_CONFIGS =
-            SimInfo.ACCESS_RULES_FROM_CARRIER_CONFIGS;
+            SimInfo.COLUMN_ACCESS_RULES_FROM_CARRIER_CONFIGS;
 
     /**
      * TelephonyProvider column name identifying whether an embedded subscription is on a removable
@@ -552,79 +551,82 @@
      * <p>TYPE: INTEGER (int), 1 for removable or 0 for non-removable.
      * @hide
      */
-    public static final String IS_REMOVABLE = SimInfo.IS_REMOVABLE;
+    public static final String IS_REMOVABLE = SimInfo.COLUMN_IS_REMOVABLE;
 
     /**
      *  TelephonyProvider column name for extreme threat in CB settings
      * @hide
      */
-    public static final String CB_EXTREME_THREAT_ALERT = SimInfo.CB_EXTREME_THREAT_ALERT;
+    public static final String CB_EXTREME_THREAT_ALERT =
+            SimInfo.COLUMN_CB_EXTREME_THREAT_ALERT;
 
     /**
      * TelephonyProvider column name for severe threat in CB settings
      *@hide
      */
-    public static final String CB_SEVERE_THREAT_ALERT = SimInfo.CB_SEVERE_THREAT_ALERT;
+    public static final String CB_SEVERE_THREAT_ALERT = SimInfo.COLUMN_CB_SEVERE_THREAT_ALERT;
 
     /**
      * TelephonyProvider column name for amber alert in CB settings
      *@hide
      */
-    public static final String CB_AMBER_ALERT = SimInfo.CB_AMBER_ALERT;
+    public static final String CB_AMBER_ALERT = SimInfo.COLUMN_CB_AMBER_ALERT;
 
     /**
      * TelephonyProvider column name for emergency alert in CB settings
      *@hide
      */
-    public static final String CB_EMERGENCY_ALERT = SimInfo.CB_EMERGENCY_ALERT;
+    public static final String CB_EMERGENCY_ALERT = SimInfo.COLUMN_CB_EMERGENCY_ALERT;
 
     /**
      * TelephonyProvider column name for alert sound duration in CB settings
      *@hide
      */
-    public static final String CB_ALERT_SOUND_DURATION = SimInfo.CB_ALERT_SOUND_DURATION;
+    public static final String CB_ALERT_SOUND_DURATION =
+            SimInfo.COLUMN_CB_ALERT_SOUND_DURATION;
 
     /**
      * TelephonyProvider column name for alert reminder interval in CB settings
      *@hide
      */
-    public static final String CB_ALERT_REMINDER_INTERVAL = SimInfo.CB_ALERT_REMINDER_INTERVAL;
+    public static final String CB_ALERT_REMINDER_INTERVAL =
+            SimInfo.COLUMN_CB_ALERT_REMINDER_INTERVAL;
 
     /**
      * TelephonyProvider column name for enabling vibrate in CB settings
      *@hide
      */
-    public static final String CB_ALERT_VIBRATE = SimInfo.CB_ALERT_VIBRATE;
+    public static final String CB_ALERT_VIBRATE = SimInfo.COLUMN_CB_ALERT_VIBRATE;
 
     /**
      * TelephonyProvider column name for enabling alert speech in CB settings
      *@hide
      */
-    public static final String CB_ALERT_SPEECH = SimInfo.CB_ALERT_SPEECH;
+    public static final String CB_ALERT_SPEECH = SimInfo.COLUMN_CB_ALERT_SPEECH;
 
     /**
      * TelephonyProvider column name for ETWS test alert in CB settings
      *@hide
      */
-    public static final String CB_ETWS_TEST_ALERT = SimInfo.CB_ETWS_TEST_ALERT;
+    public static final String CB_ETWS_TEST_ALERT = SimInfo.COLUMN_CB_ETWS_TEST_ALERT;
 
     /**
      * TelephonyProvider column name for enable channel50 alert in CB settings
      *@hide
      */
-    public static final String CB_CHANNEL_50_ALERT = SimInfo.CB_CHANNEL_50_ALERT;
+    public static final String CB_CHANNEL_50_ALERT = SimInfo.COLUMN_CB_CHANNEL_50_ALERT;
 
     /**
      * TelephonyProvider column name for CMAS test alert in CB settings
      *@hide
      */
-    public static final String CB_CMAS_TEST_ALERT = SimInfo.CB_CMAS_TEST_ALERT;
+    public static final String CB_CMAS_TEST_ALERT = SimInfo.COLUMN_CB_CMAS_TEST_ALERT;
 
     /**
      * TelephonyProvider column name for Opt out dialog in CB settings
      *@hide
      */
-    public static final String CB_OPT_OUT_DIALOG = SimInfo.CB_OPT_OUT_DIALOG;
+    public static final String CB_OPT_OUT_DIALOG = SimInfo.COLUMN_CB_OPT_OUT_DIALOG;
 
     /**
      * TelephonyProvider column name for enable Volte.
@@ -633,44 +635,45 @@
      * {@link CarrierConfigManager#KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL}.
      *@hide
      */
-    public static final String ENHANCED_4G_MODE_ENABLED = SimInfo.ENHANCED_4G_MODE_ENABLED;
+    public static final String ENHANCED_4G_MODE_ENABLED =
+            SimInfo.COLUMN_ENHANCED_4G_MODE_ENABLED;
 
     /**
      * TelephonyProvider column name for enable VT (Video Telephony over IMS)
      *@hide
      */
-    public static final String VT_IMS_ENABLED = SimInfo.VT_IMS_ENABLED;
+    public static final String VT_IMS_ENABLED = SimInfo.COLUMN_VT_IMS_ENABLED;
 
     /**
      * TelephonyProvider column name for enable Wifi calling
      *@hide
      */
-    public static final String WFC_IMS_ENABLED = SimInfo.WFC_IMS_ENABLED;
+    public static final String WFC_IMS_ENABLED = SimInfo.COLUMN_WFC_IMS_ENABLED;
 
     /**
      * TelephonyProvider column name for Wifi calling mode
      *@hide
      */
-    public static final String WFC_IMS_MODE = SimInfo.WFC_IMS_MODE;
+    public static final String WFC_IMS_MODE = SimInfo.COLUMN_WFC_IMS_MODE;
 
     /**
      * TelephonyProvider column name for Wifi calling mode in roaming
      *@hide
      */
-    public static final String WFC_IMS_ROAMING_MODE = SimInfo.WFC_IMS_ROAMING_MODE;
+    public static final String WFC_IMS_ROAMING_MODE = SimInfo.COLUMN_WFC_IMS_ROAMING_MODE;
 
     /**
      * TelephonyProvider column name for enable Wifi calling in roaming
      *@hide
      */
-    public static final String WFC_IMS_ROAMING_ENABLED = SimInfo.WFC_IMS_ROAMING_ENABLED;
+    public static final String WFC_IMS_ROAMING_ENABLED = SimInfo.COLUMN_WFC_IMS_ROAMING_ENABLED;
 
     /**
      * Determines if the user has enabled IMS RCS User Capability Exchange (UCE) for this
      * subscription.
      * @hide
      */
-    public static final String IMS_RCS_UCE_ENABLED = SimInfo.IMS_RCS_UCE_ENABLED;
+    public static final String IMS_RCS_UCE_ENABLED = SimInfo.COLUMN_IMS_RCS_UCE_ENABLED;
 
     /**
      * TelephonyProvider column name for whether a subscription is opportunistic, that is,
@@ -679,7 +682,7 @@
      * <p>Type: INTEGER (int), 1 for opportunistic or 0 for non-opportunistic.
      * @hide
      */
-    public static final String IS_OPPORTUNISTIC = SimInfo.IS_OPPORTUNISTIC;
+    public static final String IS_OPPORTUNISTIC = SimInfo.COLUMN_IS_OPPORTUNISTIC;
 
     /**
      * TelephonyProvider column name for group ID. Subscriptions with same group ID
@@ -688,7 +691,7 @@
      *
      * @hide
      */
-    public static final String GROUP_UUID = SimInfo.GROUP_UUID;
+    public static final String GROUP_UUID = SimInfo.COLUMN_GROUP_UUID;
 
     /**
      * TelephonyProvider column name for group owner. It's the package name who created
@@ -696,7 +699,7 @@
      *
      * @hide
      */
-    public static final String GROUP_OWNER = SimInfo.GROUP_OWNER;
+    public static final String GROUP_OWNER = SimInfo.COLUMN_GROUP_OWNER;
 
     /**
      * TelephonyProvider column name for the profile class of a subscription
@@ -704,7 +707,7 @@
      * <P>Type: INTEGER (int)</P>
      * @hide
      */
-    public static final String PROFILE_CLASS = SimInfo.PROFILE_CLASS;
+    public static final String PROFILE_CLASS = SimInfo.COLUMN_PROFILE_CLASS;
 
     /**
      * Profile class of the subscription
@@ -716,7 +719,6 @@
             SimInfo.PROFILE_CLASS_PROVISIONING,
             SimInfo.PROFILE_CLASS_OPERATIONAL,
             SimInfo.PROFILE_CLASS_UNSET,
-            SimInfo.PROFILE_CLASS_DEFAULT
     })
     public @interface ProfileClass {}
 
@@ -762,7 +764,8 @@
      * @hide
      */
     @SystemApi
-    public static final int PROFILE_CLASS_DEFAULT = SimInfo.PROFILE_CLASS_DEFAULT;
+    @Deprecated
+    public static final int PROFILE_CLASS_DEFAULT = SimInfo.PROFILE_CLASS_UNSET;
 
     /**
      * IMSI (International Mobile Subscriber Identity).
@@ -770,19 +773,19 @@
      * @hide
      */
     //TODO: add @SystemApi
-    public static final String IMSI = SimInfo.IMSI;
+    public static final String IMSI = SimInfo.COLUMN_IMSI;
 
     /**
      * Whether uicc applications is set to be enabled or disabled. By default it's enabled.
      * @hide
      */
-    public static final String UICC_APPLICATIONS_ENABLED = SimInfo.UICC_APPLICATIONS_ENABLED;
+    public static final String UICC_APPLICATIONS_ENABLED = SimInfo.COLUMN_UICC_APPLICATIONS_ENABLED;
 
     /**
      * Indicate which network type is allowed. By default it's enabled.
      * @hide
      */
-    public static final String ALLOWED_NETWORK_TYPES = SimInfo.ALLOWED_NETWORK_TYPES;
+    public static final String ALLOWED_NETWORK_TYPES = SimInfo.COLUMN_ALLOWED_NETWORK_TYPES;
 
     /**
      * Broadcast Action: The user has changed one of the default subs related to
@@ -941,6 +944,18 @@
             if (DBG) log("onSubscriptionsChanged: NOT OVERRIDDEN");
         }
 
+        /**
+         * Callback invoked when {@link SubscriptionManager#addOnSubscriptionsChangedListener(
+         * Executor, OnSubscriptionsChangedListener)} or
+         * {@link SubscriptionManager#addOnSubscriptionsChangedListener(
+         * OnSubscriptionsChangedListener)} fails to complete due to the
+         * {@link Context#TELEPHONY_REGISTRY_SERVICE} being unavailable.
+         * @hide
+         */
+        public void onAddListenerFailed() {
+            Rlog.w(LOG_TAG, "onAddListenerFailed not overridden");
+        }
+
         private void log(String s) {
             Rlog.d(LOG_TAG, s);
         }
@@ -1009,6 +1024,12 @@
         if (telephonyRegistryManager != null) {
             telephonyRegistryManager.addOnSubscriptionsChangedListener(listener,
                     executor);
+        } else {
+            // If the telephony registry isn't available, we will inform the caller on their
+            // listener that it failed so they can try to re-register.
+            loge("addOnSubscriptionsChangedListener: pkgname=" + pkgName + " failed to be added "
+                    + " due to TELEPHONY_REGISTRY_SERVICE being unavailable.");
+            executor.execute(() -> listener.onAddListenerFailed());
         }
     }
 
@@ -1652,7 +1673,6 @@
      * @return the number of records updated
      * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
     public int setIconTint(@ColorInt int tint, int subId) {
         if (VDBG) logd("[setIconTint]+ tint:" + tint + " subId:" + subId);
@@ -1669,7 +1689,6 @@
      * @return the number of records updated or < 0 if invalid subId
      * @hide
      */
-    @SystemApi
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
     public int setDisplayName(@Nullable String displayName, int subId,
             @SimDisplayNameSource int nameSource) {
@@ -2154,6 +2173,7 @@
      * @hide
      */
     @SystemApi
+    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public @NonNull int[] getActiveSubscriptionIdList() {
         return getActiveSubscriptionIdList(/* visibleOnly */ true);
     }
@@ -2171,7 +2191,8 @@
      * @hide
      */
     @SystemApi
-    public @NonNull int[] getActiveAndHiddenSubscriptionIdList() {
+    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+    public @NonNull int[] getCompleteActiveSubscriptionIdList() {
         return getActiveSubscriptionIdList(/* visibleOnly */false);
     }
 
diff --git a/telephony/java/android/telephony/DisplayInfo.aidl b/telephony/java/android/telephony/TelephonyDisplayInfo.aidl
similarity index 95%
rename from telephony/java/android/telephony/DisplayInfo.aidl
rename to telephony/java/android/telephony/TelephonyDisplayInfo.aidl
index 861b0fe..ab41f93 100644
--- a/telephony/java/android/telephony/DisplayInfo.aidl
+++ b/telephony/java/android/telephony/TelephonyDisplayInfo.aidl
@@ -15,4 +15,4 @@
  */
 package android.telephony;
 
-parcelable DisplayInfo;
+parcelable TelephonyDisplayInfo;
diff --git a/telephony/java/android/telephony/DisplayInfo.java b/telephony/java/android/telephony/TelephonyDisplayInfo.java
similarity index 85%
rename from telephony/java/android/telephony/DisplayInfo.java
rename to telephony/java/android/telephony/TelephonyDisplayInfo.java
index d54bcf9..2c4d5ae 100644
--- a/telephony/java/android/telephony/DisplayInfo.java
+++ b/telephony/java/android/telephony/TelephonyDisplayInfo.java
@@ -25,12 +25,12 @@
 import java.util.Objects;
 
 /**
- * DisplayInfo contains telephony-related information used for display purposes only. This
+ * TelephonyDisplayInfo contains telephony-related information used for display purposes only. This
  * information is provided in accordance with carrier policy and branding preferences; it is not
  * necessarily a precise or accurate representation of the current state and should be treated
  * accordingly.
  */
-public final class DisplayInfo implements Parcelable {
+public final class TelephonyDisplayInfo implements Parcelable {
     /**
      * No override. {@link #getNetworkType()} should be used for display network
      * type.
@@ -81,13 +81,14 @@
      *
      * @hide
      */
-    public DisplayInfo(@NetworkType int networkType, @OverrideNetworkType int overrideNetworkType) {
+    public TelephonyDisplayInfo(@NetworkType int networkType,
+            @OverrideNetworkType int overrideNetworkType) {
         mNetworkType = networkType;
         mOverrideNetworkType = overrideNetworkType;
     }
 
     /** @hide */
-    public DisplayInfo(Parcel p) {
+    public TelephonyDisplayInfo(Parcel p) {
         mNetworkType = p.readInt();
         mOverrideNetworkType = p.readInt();
     }
@@ -121,16 +122,16 @@
         dest.writeInt(mOverrideNetworkType);
     }
 
-    public static final @NonNull Parcelable.Creator<DisplayInfo> CREATOR =
-            new Parcelable.Creator<DisplayInfo>() {
+    public static final @NonNull Parcelable.Creator<TelephonyDisplayInfo> CREATOR =
+            new Parcelable.Creator<TelephonyDisplayInfo>() {
                 @Override
-                public DisplayInfo createFromParcel(Parcel source) {
-                    return new DisplayInfo(source);
+                public TelephonyDisplayInfo createFromParcel(Parcel source) {
+                    return new TelephonyDisplayInfo(source);
                 }
 
                 @Override
-                public DisplayInfo[] newArray(int size) {
-                    return new DisplayInfo[size];
+                public TelephonyDisplayInfo[] newArray(int size) {
+                    return new TelephonyDisplayInfo[size];
                 }
             };
 
@@ -143,7 +144,7 @@
     public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
-        DisplayInfo that = (DisplayInfo) o;
+        TelephonyDisplayInfo that = (TelephonyDisplayInfo) o;
         return mNetworkType == that.mNetworkType
                 && mOverrideNetworkType == that.mOverrideNetworkType;
     }
@@ -166,7 +167,7 @@
 
     @Override
     public String toString() {
-        return "DisplayInfo {network=" + TelephonyManager.getNetworkTypeName(mNetworkType)
+        return "TelephonyDisplayInfo {network=" + TelephonyManager.getNetworkTypeName(mNetworkType)
                 + ", override=" + overrideNetworkTypeToString(mOverrideNetworkType);
     }
 }
diff --git a/telephony/java/android/telephony/TelephonyFrameworkInitializer.java b/telephony/java/android/telephony/TelephonyFrameworkInitializer.java
index 0d2a8bc..c9540fb 100644
--- a/telephony/java/android/telephony/TelephonyFrameworkInitializer.java
+++ b/telephony/java/android/telephony/TelephonyFrameworkInitializer.java
@@ -17,7 +17,6 @@
 package android.telephony;
 
 import android.annotation.NonNull;
-import android.annotation.SystemApi;
 import android.app.SystemServiceRegistry;
 import android.content.Context;
 import android.os.TelephonyServiceManager;
@@ -33,7 +32,6 @@
  *
  * @hide
  */
-@SystemApi
 public class TelephonyFrameworkInitializer {
 
     private TelephonyFrameworkInitializer() {
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index fbd69da8..8d9615b 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -165,7 +165,6 @@
      * into the ResultReceiver Bundle.
      * @hide
      */
-    @SystemApi
     public static final String MODEM_ACTIVITY_RESULT_KEY = "controller_activity";
 
     /**
@@ -1036,7 +1035,9 @@
             "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING";
 
     /**
-     * Broadcast intent that indicates multi-SIM configuration is changed. For example, it changed
+     * Broadcast action to be received by Broadcast receivers.
+     *
+     * Indicates multi-SIM configuration is changed. For example, it changed
      * from single SIM capable to dual-SIM capable (DSDS or DSDA) or triple-SIM mode.
      *
      * It doesn't indicate how many subscriptions are actually active, or which states SIMs are,
@@ -1279,7 +1280,6 @@
      * <p>Note: this is a protected intent that can only be sent by the system.
      * @hide
      */
-    @SystemApi
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
     public static final String ACTION_SERVICE_PROVIDERS_UPDATED =
             "android.telephony.action.SERVICE_PROVIDERS_UPDATED";
@@ -1289,7 +1289,6 @@
      * whether the PLMN should be shown.
      * @hide
      */
-    @SystemApi
     public static final String EXTRA_SHOW_PLMN = "android.telephony.extra.SHOW_PLMN";
 
     /**
@@ -1297,7 +1296,6 @@
      * the operator name of the registered network.
      * @hide
      */
-    @SystemApi
     public static final String EXTRA_PLMN = "android.telephony.extra.PLMN";
 
     /**
@@ -1305,7 +1303,6 @@
      * whether the PLMN should be shown.
      * @hide
      */
-    @SystemApi
     public static final String EXTRA_SHOW_SPN = "android.telephony.extra.SHOW_SPN";
 
     /**
@@ -1313,7 +1310,6 @@
      * the service provider name.
      * @hide
      */
-    @SystemApi
     public static final String EXTRA_SPN = "android.telephony.extra.SPN";
 
     /**
@@ -1321,7 +1317,6 @@
      * the service provider name for data service.
      * @hide
      */
-    @SystemApi
     public static final String EXTRA_DATA_SPN = "android.telephony.extra.DATA_SPN";
 
     /**
@@ -1442,7 +1437,6 @@
      *
      * @hide
      */
-    @SystemApi
     public static final String EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE =
             "android.telephony.extra.DEFAULT_SUBSCRIPTION_SELECT_TYPE";
 
@@ -1462,7 +1456,6 @@
      * to indicate there's no need to re-select any default subscription.
      * @hide
      */
-    @SystemApi
     public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_NONE = 0;
 
     /**
@@ -1470,7 +1463,6 @@
      * to indicate there's a need to select default data subscription.
      * @hide
      */
-    @SystemApi
     public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA = 1;
 
     /**
@@ -1478,7 +1470,6 @@
      * to indicate there's a need to select default voice call subscription.
      * @hide
      */
-    @SystemApi
     public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_VOICE = 2;
 
     /**
@@ -1486,7 +1477,6 @@
      * to indicate there's a need to select default sms subscription.
      * @hide
      */
-    @SystemApi
     public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_SMS = 3;
 
     /**
@@ -1496,7 +1486,6 @@
      * which subscription should be the default subscription.
      * @hide
      */
-    @SystemApi
     public static final int EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_ALL = 4;
 
     /**
@@ -1506,7 +1495,6 @@
      *
      * @hide
      */
-    @SystemApi
     public static final String EXTRA_SIM_COMBINATION_WARNING_TYPE =
             "android.telephony.extra.SIM_COMBINATION_WARNING_TYPE";
 
@@ -1523,7 +1511,6 @@
      * to indicate there's no SIM combination warning.
      * @hide
      */
-    @SystemApi
     public static final int EXTRA_SIM_COMBINATION_WARNING_TYPE_NONE = 0;
 
     /**
@@ -1531,7 +1518,6 @@
      * to indicate two active SIMs are both CDMA hence there might be functional limitation.
      * @hide
      */
-    @SystemApi
     public static final int EXTRA_SIM_COMBINATION_WARNING_TYPE_DUAL_CDMA = 1;
 
     /**
@@ -1542,7 +1528,6 @@
      *
      * @hide
      */
-    @SystemApi
     public static final String EXTRA_SIM_COMBINATION_NAMES =
             "android.telephony.extra.SIM_COMBINATION_NAMES";
 
@@ -1594,7 +1579,6 @@
      * <p class="note">This is a protected intent that can only be sent by the system.</p>
      * @hide
      */
-    @SystemApi
     @SuppressLint("ActionValue")
     public static final String ACTION_CARRIER_SIGNAL_REDIRECTED =
             "com.android.internal.telephony.CARRIER_SIGNAL_REDIRECTED";
@@ -1612,7 +1596,6 @@
      * <p class="note">This is a protected intent that can only be sent by the system. </p>
      * @hide
      */
-    @SystemApi
     @SuppressLint("ActionValue")
     public static final String ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED =
             "com.android.internal.telephony.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED";
@@ -1635,7 +1618,6 @@
      * <p class="note">This is a protected intent that can only be sent by the system. </p>
      * @hide
      */
-    @SystemApi
     @SuppressLint("ActionValue")
     public static final String ACTION_CARRIER_SIGNAL_PCO_VALUE =
             "com.android.internal.telephony.CARRIER_SIGNAL_PCO_VALUE";
@@ -1653,7 +1635,6 @@
      * <p class="note">This is a protected intent that can only be sent by the system. </p>
      * @hide
      */
-    @SystemApi
     @SuppressLint("ActionValue")
     public static final String ACTION_CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE =
             "com.android.internal.telephony.CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE";
@@ -1668,7 +1649,6 @@
      * <p class="note">This is a protected intent that can only be sent by the system.</p>
      * @hide
      */
-    @SystemApi
     @SuppressLint("ActionValue")
     public static final String ACTION_CARRIER_SIGNAL_RESET =
             "com.android.internal.telephony.CARRIER_SIGNAL_RESET";
@@ -1678,7 +1658,6 @@
      *  An string extra of redirected url upon {@link #ACTION_CARRIER_SIGNAL_REDIRECTED}.
      *  @hide
      */
-    @SystemApi
     @SuppressLint("ActionValue")
     public static final String EXTRA_REDIRECTION_URL = "redirectionUrl";
 
@@ -1687,7 +1666,6 @@
      *  Check {@link DataFailCause} for all possible values.
      *  @hide
      */
-    @SystemApi
     @SuppressLint("ActionValue")
     public static final String EXTRA_ERROR_CODE = "errorCode";
 
@@ -1701,7 +1679,6 @@
      *
      *  @hide
      */
-    @SystemApi
     @Deprecated
     @SuppressLint("ActionValue")
     public static final String EXTRA_APN_TYPE = "apnType";
@@ -1714,7 +1691,6 @@
      *  Check {@link ApnSetting} TYPE_* for its values.
      *  @hide
      */
-    @SystemApi
     @SuppressLint("ActionValue")
     public static final String EXTRA_APN_TYPE_INT = "apnTypeInt";
 
@@ -1726,7 +1702,6 @@
      *
      *  @hide
      */
-    @SystemApi
     @Deprecated
     @SuppressLint("ActionValue")
     public static final String EXTRA_APN_PROTOCOL = "apnProto";
@@ -1737,7 +1712,6 @@
      *  Check {@link ApnSetting} PROTOCOL_* for its values.
      *  @hide
      */
-    @SystemApi
     @SuppressLint("ActionValue")
     public static final String EXTRA_APN_PROTOCOL_INT = "apnProtoInt";
 
@@ -1746,7 +1720,6 @@
      *  {@link #ACTION_CARRIER_SIGNAL_PCO_VALUE} broadcasts.
      *  @hide
      */
-    @SystemApi
     @SuppressLint("ActionValue")
     public static final String EXTRA_PCO_ID = "pcoId";
 
@@ -1755,7 +1728,6 @@
      *  {@link #ACTION_CARRIER_SIGNAL_PCO_VALUE} broadcasts.
      *  @hide
      */
-    @SystemApi
     @SuppressLint("ActionValue")
     public static final String EXTRA_PCO_VALUE = "pcoValue";
 
@@ -1764,7 +1736,6 @@
      *  {@link #ACTION_CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE} broadcasts.
      *  @hide
      */
-    @SystemApi
     @SuppressLint("ActionValue")
     public static final String EXTRA_DEFAULT_NETWORK_AVAILABLE = "defaultNetworkAvailable";
 
@@ -2781,21 +2752,22 @@
     }
 
     /**
-     * Returns the ISO-3166 country code equivalent of the MCC (Mobile Country Code) of the current
-     * registered operator or the cell nearby, if available.
+     * Returns the ISO-3166-1 alpha-2 country code equivalent of the MCC (Mobile Country Code) of
+     * the current registered operator or the cell nearby, if available.
      *
      * Note: Result may be unreliable on CDMA networks (use {@link #getPhoneType()} to determine
      * if on a CDMA network).
      * <p>
-     * @return the lowercase 2 character ISO-3166 country code, or empty string if not available.
+     * @return the lowercase 2 character ISO-3166-1 alpha-2 country code, or empty string if not
+     * available.
      */
     public String getNetworkCountryIso() {
         return getNetworkCountryIso(getSlotIndex());
     }
 
     /**
-     * Returns the ISO-3166 country code equivalent of the MCC (Mobile Country Code) of the current
-     * registered operator or the cell nearby, if available. This is same as
+     * Returns the ISO-3166-1 alpha-2 country code equivalent of the MCC (Mobile Country Code) of
+     * the current registered operator or the cell nearby, if available. This is same as
      * {@link #getNetworkCountryIso()} but allowing specifying the SIM slot index. This is used for
      * accessing network country info from the SIM slot that does not have SIM inserted.
      *
@@ -2805,7 +2777,8 @@
      *
      * @param slotIndex the SIM slot index to get network country ISO.
      *
-     * @return the lowercase 2 character ISO-3166 country code, or empty string if not available.
+     * @return the lowercase 2 character ISO-3166-1 alpha-2 country code, or empty string if not
+     * available.
      *
      * @throws IllegalArgumentException when the slotIndex is invalid.
      *
@@ -2913,6 +2886,8 @@
     /**
      * Return a collection of all network types
      * @return network types
+     *
+     * @hide
      */
     public static @NonNull @NetworkType int[] getAllNetworkTypes() {
         return NETWORK_TYPES;
@@ -3760,10 +3735,11 @@
     }
 
     /**
-     * Returns the ISO-3166 country code equivalent for the SIM provider's country code.
+     * Returns the ISO-3166-1 alpha-2 country code equivalent for the SIM provider's country code.
      * <p>
-     * The ISO-3166 country code is provided in lowercase 2 character format.
-     * @return the lowercase 2 character ISO-3166 country code, or empty string is not available.
+     * The ISO-3166-1 alpha-2 country code is provided in lowercase 2 character format.
+     * @return the lowercase 2 character ISO-3166-1 alpha-2 country code, or empty string is not
+     * available.
      */
     public String getSimCountryIso() {
         return getSimCountryIsoForPhone(getPhoneId());
@@ -4927,7 +4903,8 @@
             ITelephony telephony = getITelephony();
             if (telephony != null) {
                 telephony.sendVisualVoicemailSmsForSubscriber(
-                        mContext.getOpPackageName(), subId, number, port, text, sentIntent);
+                        mContext.getOpPackageName(), mContext.getAttributionTag(), subId, number,
+                        port, text, sentIntent);
             }
         } catch (RemoteException ex) {
         }
@@ -8087,7 +8064,6 @@
      *
      * @hide
      */
-    @SystemApi
     @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public boolean isInEmergencySmsMode() {
         try {
@@ -8703,13 +8679,9 @@
         return false;
     }
 
-    /**
-     * @deprecated use {@link #supplyPinReportPinResult(String pin)} instead.
-     *
-     * @hide */
+    /** @hide */
     @SystemApi
     @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
-    @Deprecated
     public int[] supplyPinReportResult(String pin) {
         try {
             ITelephony telephony = getITelephony();
@@ -8721,13 +8693,9 @@
         return new int[0];
     }
 
-    /**
-     * @deprecated use {@link #supplyPukReportPinResult(String puk, String pin)} instead.
-     *
-     * @hide */
+    /** @hide */
     @SystemApi
     @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
-    @Deprecated
     public int[] supplyPukReportResult(String puk, String pin) {
         try {
             ITelephony telephony = getITelephony();
@@ -9747,14 +9715,12 @@
      * Powers down the SIM. SIM must be up prior.
      * @hide
      */
-    @SystemApi
     public static final int CARD_POWER_DOWN = 0;
 
     /**
      * Powers up the SIM normally. SIM must be down prior.
      * @hide
      */
-    @SystemApi
     public static final int CARD_POWER_UP = 1;
 
     /**
@@ -9772,7 +9738,6 @@
      * is NOT persistent across boots. On reboot, SIM will power up normally.
      * @hide
      */
-    @SystemApi
     public static final int CARD_POWER_UP_PASS_THROUGH = 2;
 
     /**
@@ -9866,32 +9831,12 @@
     }
 
     /**
-     * Get baseband version for the default phone using the legacy approach.
-     * This change was added in P, to ensure backward compatiblity.
-     *
-     * @return baseband version.
-     * @hide
-     */
-    private String getBasebandVersionLegacy(int phoneId) {
-        if (SubscriptionManager.isValidPhoneId(phoneId)) {
-            String prop = "gsm.version.baseband"
-                    + ((phoneId == 0) ? "" : Integer.toString(phoneId));
-            return SystemProperties.get(prop);
-        }
-        return null;
-    }
-
-    /**
      * Get baseband version by phone id.
      *
      * @return baseband version.
      * @hide
      */
     public String getBasebandVersionForPhone(int phoneId) {
-        String version = getBasebandVersionLegacy(phoneId);
-        if (version != null && !version.isEmpty()) {
-            setBasebandVersionForPhone(phoneId, version);
-        }
         return getTelephonyProperty(phoneId, TelephonyProperties.baseband_version(), "");
     }
 
@@ -10301,7 +10246,6 @@
      * {@link #MODEM_ACTIVITY_RESULT_KEY}.
      * @hide
      */
-    @SystemApi
     public void requestModemActivityInfo(@NonNull ResultReceiver result) {
         try {
             ITelephony service = getITelephony();
@@ -12308,7 +12252,7 @@
 
     /**
      * The extra used with an {@link #ACTION_NETWORK_COUNTRY_CHANGED} to specify the
-     * the country code in ISO 3166 format.
+     * the country code in ISO-3166-1 alpha-2 format.
      * <p class="note">
      * Retrieve with {@link android.content.Intent#getStringExtra(String)}.
      */
@@ -12316,6 +12260,17 @@
             "android.telephony.extra.NETWORK_COUNTRY";
 
     /**
+     * The extra used with an {@link #ACTION_NETWORK_COUNTRY_CHANGED} to specify the
+     * last known the country code in ISO-3166-1 alpha-2 format.
+     * <p class="note">
+     * Retrieve with {@link android.content.Intent#getStringExtra(String)}.
+     *
+     * @hide
+     */
+    public static final String EXTRA_LAST_KNOWN_NETWORK_COUNTRY =
+            "android.telephony.extra.LAST_KNOWN_NETWORK_COUNTRY";
+
+    /**
      * Indicate if the user is allowed to use multiple SIM cards at the same time to register
      * on the network (e.g. Dual Standby or Dual Active) when the device supports it, or if the
      * usage is restricted. This API is used to prevent usage of multiple SIM card, based on
@@ -12993,7 +12948,6 @@
      *
      * @hide
      */
-    @SystemApi
     @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
     public boolean setAlwaysAllowMmsData(boolean alwaysAllow) {
         try {
@@ -13027,6 +12981,7 @@
      */
     @WorkerThread
     @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+    @SystemApi
     public boolean isIccLockEnabled() {
         try {
             ITelephony telephony = getITelephony();
@@ -13114,7 +13069,6 @@
      * This should only be called from system Uid.
      * @hide
      */
-    @SystemApi
     @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
     public void notifyUserActivity() {
         try {
diff --git a/telephony/java/android/telephony/ims/ImsCallProfile.java b/telephony/java/android/telephony/ims/ImsCallProfile.java
index 1597cd5..57497a2 100644
--- a/telephony/java/android/telephony/ims/ImsCallProfile.java
+++ b/telephony/java/android/telephony/ims/ImsCallProfile.java
@@ -181,6 +181,25 @@
      *      {@link ImsCallProfile#DIALSTRING_USSD}
      */
     public static final String EXTRA_DIALSTRING = "dialstring";
+    /**
+     * This extra holds call fail cause because of which redial is attempted.
+     * see {@link android.telephony.ims.ImsReasonInfo} {@code CODE_*}
+     * for possible values this extra can hold.
+     *
+     * @hide
+     */
+    public static final String EXTRA_RETRY_CALL_FAIL_REASON =
+            "android.telephony.ims.extra.RETRY_CALL_FAIL_REASON";
+    /**
+     * This extra holds call network type on which lower layers
+     * may try attempting redial.
+     * See {@link TelephonyManager} {@code NETWORK_TYPE_*}
+     * for possible values this extra can hold.
+     *
+     * @hide
+     */
+    public static final String EXTRA_RETRY_CALL_FAIL_NETWORKTYPE =
+            "android.telephony.ims.extra.RETRY_CALL_FAIL_NETWORKTYPE";
 
     /**
      * Values for EXTRA_OIR / EXTRA_CNAP
diff --git a/telephony/java/com/android/internal/telephony/DctConstants.java b/telephony/java/com/android/internal/telephony/DctConstants.java
index f61d4e1..2b1d9e5 100644
--- a/telephony/java/com/android/internal/telephony/DctConstants.java
+++ b/telephony/java/com/android/internal/telephony/DctConstants.java
@@ -74,7 +74,6 @@
     public static final int BASE = Protocol.BASE_DATA_CONNECTION_TRACKER;
     public static final int EVENT_DATA_SETUP_COMPLETE = BASE + 0;
     public static final int EVENT_RADIO_AVAILABLE = BASE + 1;
-    public static final int EVENT_RECORDS_LOADED = BASE + 2;
     public static final int EVENT_TRY_SETUP_DATA = BASE + 3;
     public static final int EVENT_RADIO_OFF_OR_NOT_AVAILABLE = BASE + 6;
     public static final int EVENT_VOICE_CALL_STARTED = BASE + 7;
@@ -94,7 +93,6 @@
     public static final int EVENT_CLEAN_UP_CONNECTION = BASE + 24;
     public static final int EVENT_RESTART_RADIO = BASE + 26;
     public static final int EVENT_CLEAN_UP_ALL_CONNECTIONS = BASE + 29;
-    public static final int EVENT_ICC_CHANGED = BASE + 33;
     public static final int EVENT_DATA_SETUP_COMPLETE_ERROR = BASE + 35;
     public static final int CMD_SET_ENABLE_FAIL_FAST_MOBILE_DATA = BASE + 36;
     public static final int CMD_ENABLE_MOBILE_PROVISIONING = BASE + 37;
@@ -114,7 +112,7 @@
     public static final int EVENT_SERVICE_STATE_CHANGED = BASE + 52;
     public static final int EVENT_5G_TIMER_HYSTERESIS = BASE + 53;
     public static final int EVENT_5G_TIMER_WATCHDOG = BASE + 54;
-    public static final int EVENT_UPDATE_CARRIER_CONFIGS = BASE + 55;
+    public static final int EVENT_CARRIER_CONFIG_CHANGED = BASE + 55;
 
     /***** Constants *****/
 
@@ -126,4 +124,7 @@
     public static final String PROVISIONING_URL_KEY = "provisioningUrl";
     public static final String BANDWIDTH_SOURCE_MODEM_KEY = "modem";
     public static final String BANDWIDTH_SOURCE_CARRIER_CONFIG_KEY = "carrier_config";
+    public static final String RAT_NAME_LTE = "LTE";
+    public static final String RAT_NAME_NR_NSA = "NR_NSA";
+    public static final String RAT_NAME_NR_NSA_MMWAVE = "NR_NSA_MMWAVE";
 }
diff --git a/telephony/java/com/android/internal/telephony/ISms.aidl b/telephony/java/com/android/internal/telephony/ISms.aidl
index 79cdce8..89f811e 100644
--- a/telephony/java/com/android/internal/telephony/ISms.aidl
+++ b/telephony/java/com/android/internal/telephony/ISms.aidl
@@ -86,37 +86,9 @@
      *  raw pdu of the status report is in the extended data ("pdu").
      * @param subId the subId id.
      */
-    void sendDataForSubscriber(int subId, String callingPkg, in String destAddr,
-            in String scAddr, in int destPort, in byte[] data, in PendingIntent sentIntent,
-            in PendingIntent deliveryIntent);
-
-    /**
-     * Send a data SMS. Only for use internally.
-     *
-     * @param smsc the SMSC to send the message through, or NULL for the
-     *  default SMSC
-     * @param data the body of the message to send
-     * @param sentIntent if not NULL this <code>PendingIntent</code> is
-     *  broadcast when the message is sucessfully sent, or failed.
-     *  The result code will be <code>Activity.RESULT_OK<code> for success,
-     *  or one of these errors:<br>
-     *  <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
-     *  <code>RESULT_ERROR_RADIO_OFF</code><br>
-     *  <code>RESULT_ERROR_NULL_PDU</code><br>
-     *  For <code>RESULT_ERROR_GENERIC_FAILURE</code> the sentIntent may include
-     *  the extra "errorCode" containing a radio technology specific value,
-     *  generally only useful for troubleshooting.<br>
-     *  The per-application based SMS control checks sentIntent. If sentIntent
-     *  is NULL the caller will be checked against all unknown applicaitons,
-     *  which cause smaller number of SMS to be sent in checking period.
-     * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
-     *  broadcast when the message is delivered to the recipient.  The
-     *  raw pdu of the status report is in the extended data ("pdu").
-     * @param subId the subId id.
-     */
-    void sendDataForSubscriberWithSelfPermissions(int subId, String callingPkg, in String destAddr,
-            in String scAddr, in int destPort, in byte[] data, in PendingIntent sentIntent,
-            in PendingIntent deliveryIntent);
+    void sendDataForSubscriber(int subId, String callingPkg, String callingattributionTag,
+            in String destAddr, in String scAddr, in int destPort,in byte[] data,
+            in PendingIntent sentIntent, in PendingIntent deliveryIntent);
 
     /**
      * Send an SMS.
@@ -148,40 +120,12 @@
      * @param messageId An id that uniquely identifies the message requested to be sent.
      *   Used for logging and diagnostics purposes. The id may be 0.
      */
-    void sendTextForSubscriber(in int subId, String callingPkg, in String destAddr,
-            in String scAddr, in String text, in PendingIntent sentIntent,
+    void sendTextForSubscriber(in int subId, String callingPkg, String callingAttributionTag,
+            in String destAddr, in String scAddr, in String text, in PendingIntent sentIntent,
             in PendingIntent deliveryIntent, in boolean persistMessageForNonDefaultSmsApp,
             in long messageId);
 
     /**
-     * Send an SMS. Internal use only.
-     *
-     * @param smsc the SMSC to send the message through, or NULL for the
-     *  default SMSC
-     * @param text the body of the message to send
-     * @param sentIntent if not NULL this <code>PendingIntent</code> is
-     *  broadcast when the message is sucessfully sent, or failed.
-     *  The result code will be <code>Activity.RESULT_OK<code> for success,
-     *  or one of these errors:<br>
-     *  <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
-     *  <code>RESULT_ERROR_RADIO_OFF</code><br>
-     *  <code>RESULT_ERROR_NULL_PDU</code><br>
-     *  For <code>RESULT_ERROR_GENERIC_FAILURE</code> the sentIntent may include
-     *  the extra "errorCode" containing a radio technology specific value,
-     *  generally only useful for troubleshooting.<br>
-     *  The per-application based SMS control checks sentIntent. If sentIntent
-     *  is NULL the caller will be checked against all unknown applications,
-     *  which cause smaller number of SMS to be sent in checking period.
-     * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
-     *  broadcast when the message is delivered to the recipient.  The
-     *  raw pdu of the status report is in the extended data ("pdu").
-     * @param subId the subId on which the SMS has to be sent.
-     */
-    void sendTextForSubscriberWithSelfPermissions(in int subId, String callingPkg,
-            in String destAddr, in String scAddr, in String text, in PendingIntent sentIntent,
-            in PendingIntent deliveryIntent, in boolean persistMessage);
-
-    /**
      * Send an SMS with options using Subscription Id.
      *
      * @param subId the subId on which the SMS has to be sent.
@@ -227,10 +171,11 @@
      *  Validity Period(Maximum) -> 635040 mins(i.e.63 weeks).
      *  Any Other values included Negative considered as Invalid Validity Period of the message.
      */
-    void sendTextForSubscriberWithOptions(in int subId, String callingPkg, in String destAddr,
-            in String scAddr, in String text, in PendingIntent sentIntent,
-            in PendingIntent deliveryIntent, in boolean persistMessageForNonDefaultSmsApp,
-            in int priority, in boolean expectMore, in int validityPeriod);
+    void sendTextForSubscriberWithOptions(in int subId, String callingPkg,
+            String callingAttributionTag, in String destAddr, in String scAddr, in String text,
+            in PendingIntent sentIntent, in PendingIntent deliveryIntent,
+            in boolean persistMessageForNonDefaultSmsApp, in int priority, in boolean expectMore,
+            in int validityPeriod);
 
     /**
      * Inject an SMS PDU into the android platform.
@@ -277,7 +222,7 @@
      *   Used for logging and diagnostics purposes. The id may be 0.
      */
     void sendMultipartTextForSubscriber(in int subId, String callingPkg,
-            in String destinationAddress, in String scAddress,
+            String callingAttributionTag, in String destinationAddress, in String scAddress,
             in List<String> parts, in List<PendingIntent> sentIntents,
             in List<PendingIntent> deliveryIntents, in boolean persistMessageForNonDefaultSmsApp,
             in long messageId);
@@ -327,10 +272,10 @@
      *  Any Other values included Negative considered as Invalid Validity Period of the message.
      */
     void sendMultipartTextForSubscriberWithOptions(in int subId, String callingPkg,
-            in String destinationAddress, in String scAddress, in List<String> parts,
-            in List<PendingIntent> sentIntents, in List<PendingIntent> deliveryIntents,
-            in boolean persistMessageForNonDefaultSmsApp, in int priority, in boolean expectMore,
-            in int validityPeriod);
+            String callingAttributionTag, in String destinationAddress, in String scAddress,
+            in List<String> parts, in List<PendingIntent> sentIntents,
+            in List<PendingIntent> deliveryIntents, in boolean persistMessageForNonDefaultSmsApp,
+            in int priority, in boolean expectMore, in int validityPeriod);
 
     /**
      * Enable reception of cell broadcast (SMS-CB) messages with the given
@@ -488,6 +433,7 @@
      *
      * @param subId the SIM id.
      * @param callingPkg the package name of the calling app
+     * @param callingAttributionTag the attribution tag of calling context
      * @param messageUri the URI of the stored message
      * @param scAddress is the service center address or null to use the current default SMSC
      * @param sentIntent if not NULL this <code>PendingIntent</code> is
@@ -507,8 +453,9 @@
      *  broadcast when the message is delivered to the recipient.  The
      *  raw pdu of the status report is in the extended data ("pdu").
      */
-    void sendStoredText(int subId, String callingPkg, in Uri messageUri, String scAddress,
-            in PendingIntent sentIntent, in PendingIntent deliveryIntent);
+    void sendStoredText(int subId, String callingPkg, String callingAttributionTag,
+            in Uri messageUri, String scAddress, in PendingIntent sentIntent,
+            in PendingIntent deliveryIntent);
 
     /**
      * Send a system stored multi-part text message.
@@ -520,6 +467,7 @@
      *
      * @param subId the SIM id.
      * @param callingPkg the package name of the calling app
+     * @param callingAttributeTag the attribute tag of the calling context
      * @param messageUri the URI of the stored message
      * @param scAddress is the service center address or null to use
      *   the current default SMSC
@@ -543,8 +491,8 @@
      *   to the recipient.  The raw pdu of the status report is in the
      *   extended data ("pdu").
      */
-    void sendStoredMultipartText(int subId, String callingPkg, in Uri messageUri,
-                String scAddress, in List<PendingIntent> sentIntents,
+    void sendStoredMultipartText(int subId, String callingPkg, String callingAttributeTag,
+                in Uri messageUri, String scAddress, in List<PendingIntent> sentIntents,
                 in List<PendingIntent> deliveryIntents);
 
     /**
diff --git a/telephony/java/com/android/internal/telephony/ISmsImplBase.java b/telephony/java/com/android/internal/telephony/ISmsImplBase.java
index db0b8e5..f1182f7 100644
--- a/telephony/java/com/android/internal/telephony/ISmsImplBase.java
+++ b/telephony/java/com/android/internal/telephony/ISmsImplBase.java
@@ -45,39 +45,26 @@
     }
 
     @Override
-    public void sendDataForSubscriber(int subId, String callingPkg, String destAddr,
-            String scAddr, int destPort, byte[] data, PendingIntent sentIntent,
-            PendingIntent deliveryIntent) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void sendDataForSubscriberWithSelfPermissions(int subId, String callingPkg,
+    public void sendDataForSubscriber(int subId, String callingPkg, String callingAttributionTag,
             String destAddr, String scAddr, int destPort, byte[] data, PendingIntent sentIntent,
             PendingIntent deliveryIntent) {
         throw new UnsupportedOperationException();
     }
 
     @Override
-    public void sendTextForSubscriber(int subId, String callingPkg, String destAddr,
-            String scAddr, String text, PendingIntent sentIntent,
+    public void sendTextForSubscriber(int subId, String callingPkg, String callingAttributionTag,
+            String destAddr, String scAddr, String text, PendingIntent sentIntent,
             PendingIntent deliveryIntent, boolean persistMessageForNonDefaultSmsApp,
             long messageId) {
         throw new UnsupportedOperationException();
     }
 
     @Override
-    public void sendTextForSubscriberWithSelfPermissions(int subId, String callingPkg,
-            String destAddr, String scAddr, String text, PendingIntent sentIntent,
-            PendingIntent deliveryIntent, boolean persistMessage) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void sendTextForSubscriberWithOptions(int subId, String callingPkg, String destAddr,
-            String scAddr, String text, PendingIntent sentIntent,
-            PendingIntent deliveryIntent, boolean persistMessageForNonDefaultSmsApp,
-            int priority, boolean expectMore, int validityPeriod) {
+    public void sendTextForSubscriberWithOptions(int subId, String callingPkg,
+            String callingAttributionTag, String destAddr, String scAddr, String text,
+            PendingIntent sentIntent, PendingIntent deliveryIntent,
+            boolean persistMessageForNonDefaultSmsApp, int priority, boolean expectMore,
+            int validityPeriod) {
         throw new UnsupportedOperationException();
     }
 
@@ -89,7 +76,7 @@
 
     @Override
     public void sendMultipartTextForSubscriber(int subId, String callingPkg,
-            String destinationAddress, String scAddress,
+            String callingAttributionTag, String destinationAddress, String scAddress,
             List<String> parts, List<PendingIntent> sentIntents,
             List<PendingIntent> deliveryIntents, boolean persistMessageForNonDefaultSmsApp,
             long messageId) {
@@ -98,7 +85,7 @@
 
     @Override
     public void sendMultipartTextForSubscriberWithOptions(int subId, String callingPkg,
-            String destinationAddress, String scAddress,
+            String callingAttributionTag, String destinationAddress, String scAddress,
             List<String> parts, List<PendingIntent> sentIntents,
             List<PendingIntent> deliveryIntents, boolean persistMessageForNonDefaultSmsApp,
             int priority, boolean expectMore, int validityPeriod) {
@@ -175,14 +162,15 @@
     }
 
     @Override
-    public void sendStoredText(int subId, String callingPkg, Uri messageUri, String scAddress,
-            PendingIntent sentIntent, PendingIntent deliveryIntent) {
+    public void sendStoredText(int subId, String callingPkg, String callingAttributionTag,
+            Uri messageUri, String scAddress, PendingIntent sentIntent,
+            PendingIntent deliveryIntent) {
         throw new UnsupportedOperationException();
     }
 
     @Override
-    public void sendStoredMultipartText(int subId, String callingPkg, Uri messageUri,
-            String scAddress, List<PendingIntent> sentIntents,
+    public void sendStoredMultipartText(int subId, String callingPkg, String callingAttributionTag,
+            Uri messageUri, String scAddress, List<PendingIntent> sentIntents,
             List<PendingIntent> deliveryIntents) {
         throw new UnsupportedOperationException();
     }
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index dcf339c..43aeb19 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -473,8 +473,8 @@
      * Send a visual voicemail SMS. Internal use only.
      * Requires caller to be the default dialer and have SEND_SMS permission
      */
-    void sendVisualVoicemailSmsForSubscriber(in String callingPackage, in int subId,
-            in String number, in int port, in String text, in PendingIntent sentIntent);
+    void sendVisualVoicemailSmsForSubscriber(in String callingPackage, String callingAttributeTag,
+            in int subId, in String number, in int port, in String text, in PendingIntent sentIntent);
 
     // Send the special dialer code. The IPC caller must be the current default dialer.
     void sendDialerSpecialCode(String callingPackageName, String inputCode);
@@ -2204,7 +2204,8 @@
      * Enqueue a pending sms Consumer, which will answer with the user specified selection for an
      * outgoing SmsManager operation.
      */
-    oneway void enqueueSmsPickResult(String callingPackage, IIntegerConsumer subIdResult);
+    oneway void enqueueSmsPickResult(String callingPackage, String callingAttributeTag,
+        IIntegerConsumer subIdResult);
 
     /**
      * Returns the MMS user agent.
diff --git a/test-mock/src/android/test/mock/MockContext.java b/test-mock/src/android/test/mock/MockContext.java
index 784ee85..cf3b03c 100644
--- a/test-mock/src/android/test/mock/MockContext.java
+++ b/test-mock/src/android/test/mock/MockContext.java
@@ -928,4 +928,10 @@
     public Handler getMainThreadHandler() {
         throw new UnsupportedOperationException();
     }
+
+    /** {@hide} */
+    @Override
+    public boolean isUiContext() {
+        throw new UnsupportedOperationException();
+    }
 }
diff --git a/test-runner/src/android/test/TouchUtils.java b/test-runner/src/android/test/TouchUtils.java
index bb4e00b..f2f0be7 100644
--- a/test-runner/src/android/test/TouchUtils.java
+++ b/test-runner/src/android/test/TouchUtils.java
@@ -223,7 +223,7 @@
     public static void dragViewToBottom(InstrumentationTestCase test, Activity activity, View v,
             int stepCount) {
         int screenHeight =
-                activity.getWindowManager().getCurrentWindowMetrics().getSize().getHeight();
+                activity.getWindowManager().getCurrentWindowMetrics().getBounds().height();
 
         int[] xy = new int[2];
         v.getLocationOnScreen(xy);
diff --git a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
index 2f9a1c8..42cee7c 100644
--- a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
+++ b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
@@ -41,11 +41,16 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
+import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
+import java.time.format.DateTimeFormatter;
+import java.time.ZonedDateTime;
+import java.time.ZoneOffset;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
@@ -72,6 +77,7 @@
     private static final String KEY_REQUIRED_ACCOUNTS = "required_accounts";
     private static final String KEY_APPS = "apps";
     private static final String KEY_IORAP_TRIAL_LAUNCH = "iorap_trial_launch";
+    private static final String KEY_IORAP_COMPILER_FILTERS = "iorap_compiler_filters";
     private static final String KEY_TRIAL_LAUNCH = "trial_launch";
     private static final String KEY_LAUNCH_ITERATIONS = "launch_iterations";
     private static final String KEY_LAUNCH_ORDER = "launch_order";
@@ -153,6 +159,7 @@
     private BufferedWriter mBufferedWriter = null;
     private boolean mSimplePerfAppOnly = false;
     private String[] mCompilerFilters = null;
+    private List<String> mIorapCompilerFilters = null;
     private String mLastAppName = "";
     private boolean mCycleCleanUp = false;
     private boolean mTraceAll = false;
@@ -509,16 +516,68 @@
         for (int i = 0; i < IORAP_COMPILE_CMD_TIMEOUT; ++i) {
             IorapCompilationStatus status = waitForIorapCompiled(appPkgName);
             if (status == IorapCompilationStatus.COMPLETE) {
+                Log.v(TAG, "compileAppForIorap: success");
+                logDumpsysIorapd(appPkgName);
                 return true;
             } else if (status == IorapCompilationStatus.INSUFFICIENT_TRACES) {
+                Log.e(TAG, "compileAppForIorap: failed due to insufficient traces");
+                logDumpsysIorapd(appPkgName);
                 return false;
             } // else INCOMPLETE. keep asking iorapd if it's done yet.
             sleep(1000);
         }
 
+        Log.e(TAG, "compileAppForIorap: failed due to timeout");
+        logDumpsysIorapd(appPkgName);
         return false;
     }
 
+    /** Save the contents of $(adb shell dumpsys iorapd) to the launch_logs directory. */
+    private void logDumpsysIorapd(String packageName) throws IOException {
+        InstrumentationTestRunner instrumentation =
+                (InstrumentationTestRunner)getInstrumentation();
+        Bundle args = instrumentation.getArguments();
+
+        String launchDirectory = args.getString(KEY_LAUNCH_DIRECTORY);
+
+        // Root directory for applaunch file to log the app launch output
+        // Will be useful in case of simpleperf command is used
+        File launchRootDir = null;
+        if (null != launchDirectory && !launchDirectory.isEmpty()) {
+            launchRootDir = new File(launchDirectory);
+            if (!launchRootDir.exists() && !launchRootDir.mkdirs()) {
+                throw new IOException("Unable to create the destination directory "
+                    + launchRootDir + ". Try disabling selinux.");
+            }
+        } else {
+            Log.w(TAG, "logDumpsysIorapd: Missing launch-directory arg");
+            return;
+        }
+
+        File launchSubDir = new File(launchRootDir, LAUNCH_SUB_DIRECTORY);
+
+        if (!launchSubDir.exists() && !launchSubDir.mkdirs()) {
+            throw new IOException("Unable to create the lauch file sub directory "
+                + launchSubDir + ". Try disabling selinux.");
+        }
+        String path = "iorapd_dumpsys_" + packageName + "_" + System.nanoTime() + ".txt";
+        File file = new File(launchSubDir, path);
+        try (FileOutputStream outputStream = new FileOutputStream(file);
+                BufferedWriter writer = new BufferedWriter(
+                        new OutputStreamWriter(outputStream));
+                ParcelFileDescriptor result = getInstrumentation().getUiAutomation().
+                        executeShellCommand(IORAP_DUMPSYS_CMD);
+                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
+                        new FileInputStream(result.getFileDescriptor())))) {
+            String line;
+            while ((line = bufferedReader.readLine()) != null) {
+                writer.write(line + "\n");
+            }
+        }
+
+        Log.v(TAG, "logDumpsysIorapd: Saved to file: " + path);
+    }
+
     enum IorapCompilationStatus {
         INCOMPLETE,
         COMPLETE,
@@ -566,6 +625,24 @@
         return reason;
     }
 
+    private boolean shouldIncludeIorap(String compilerFilter) {
+        if (!mIorapTrialLaunch) {
+            return false;
+        }
+
+        // No iorap compiler filters specified: treat all compiler filters as ok.
+        if (mIorapCompilerFilters == null) {
+            return true;
+        }
+
+        // iorap compiler filters specified: the compilerFilter must be in the whitelist.
+        if (mIorapCompilerFilters.indexOf(compilerFilter) != -1) {
+            return true;
+        }
+
+        return false;
+    }
+
     /**
      * If launch order is "cyclic" then apps will be launched one after the
      * other for each iteration count.
@@ -580,7 +657,7 @@
                         mLaunchOrderList.add(new LaunchOrder(app, compilerFilter, TRIAL_LAUNCH, /*iorapEnabled*/false));
                     }
                 }
-                if (mIorapTrialLaunch) {
+                if (shouldIncludeIorap(compilerFilter)) {
                     for (int launchCount = 0; launchCount < IORAP_TRIAL_LAUNCH_ITERATIONS; ++launchCount) {
                         for (String app : mNameToResultKey.keySet()) {
                             String reason = makeReasonForIorapTrialLaunch(launchCount);
@@ -594,14 +671,16 @@
                 for (int launchCount = 0; launchCount < mLaunchIterations; launchCount++) {
                     for (String app : mNameToResultKey.keySet()) {
                         mLaunchOrderList.add(new LaunchOrder(app, compilerFilter,
-                                  String.format(LAUNCH_ITERATION, launchCount), mIorapTrialLaunch));
+                                  String.format(LAUNCH_ITERATION, launchCount),
+                                        shouldIncludeIorap(compilerFilter)));
                     }
                 }
                 if (mTraceDirectoryStr != null && !mTraceDirectoryStr.isEmpty()) {
                     for (int traceCount = 0; traceCount < mTraceLaunchCount; traceCount++) {
                         for (String app : mNameToResultKey.keySet()) {
                             mLaunchOrderList.add(new LaunchOrder(app, compilerFilter,
-                                      String.format(TRACE_ITERATION, traceCount), mIorapTrialLaunch));
+                                      String.format(TRACE_ITERATION, traceCount),
+                                            shouldIncludeIorap(compilerFilter)));
                         }
                     }
                 }
@@ -612,7 +691,7 @@
                     if (mTrialLaunch) {
                         mLaunchOrderList.add(new LaunchOrder(app, compilerFilter, TRIAL_LAUNCH, /*iorapEnabled*/false));
                     }
-                    if (mIorapTrialLaunch) {
+                    if (shouldIncludeIorap(compilerFilter)) {
                         for (int launchCount = 0; launchCount < IORAP_TRIAL_LAUNCH_ITERATIONS; ++launchCount) {
                             String reason = makeReasonForIorapTrialLaunch(launchCount);
                             mLaunchOrderList.add(
@@ -623,12 +702,14 @@
                     }
                     for (int launchCount = 0; launchCount < mLaunchIterations; launchCount++) {
                         mLaunchOrderList.add(new LaunchOrder(app, compilerFilter,
-                                String.format(LAUNCH_ITERATION, launchCount), mIorapTrialLaunch));
+                                String.format(LAUNCH_ITERATION, launchCount),
+                                        shouldIncludeIorap(compilerFilter)));
                     }
                     if (mTraceDirectoryStr != null && !mTraceDirectoryStr.isEmpty()) {
                         for (int traceCount = 0; traceCount < mTraceLaunchCount; traceCount++) {
                             mLaunchOrderList.add(new LaunchOrder(app, compilerFilter,
-                                    String.format(TRACE_ITERATION, traceCount), mIorapTrialLaunch));
+                                    String.format(TRACE_ITERATION, traceCount),
+                                            shouldIncludeIorap(compilerFilter)));
                         }
                     }
                 }
@@ -661,6 +742,41 @@
         return total.contains("root");
     }
 
+    private void stopIorapd() {
+        getInstrumentation().getUiAutomation()
+                .executeShellCommand("stop iorapd");
+        sleep(100);  // give it extra time to fully stop.
+    }
+
+    private void startIorapd() {
+        String logcatTimeNow = getTimeNowForLogcat();
+        Log.v(TAG, "startIorapd, logcat time: " + logcatTimeNow);
+
+        getInstrumentation().getUiAutomation()
+                .executeShellCommand("start iorapd");
+
+        int maxAttempts = 100;
+        int attempt = 0;
+        do {
+            // Ensure that IorapForwardingService fully reconnects to iorapd before proceeding.
+            String needle = "Connected to iorapd native service";
+            String logcatLines = getLogcatSinceTime(logcatTimeNow);
+
+            if (logcatLines.contains(needle)) {
+                break;
+            }
+
+            sleep(1000);
+            attempt++;
+        } while (attempt < maxAttempts);
+
+        if (attempt == maxAttempts) {
+            Log.e(TAG, "Timed out after waiting for iorapd to start");
+        }
+        // Wait a little bit longer for iorapd to settle.
+        sleep(1000);
+    }
+
     // Delete all db rows and files associated with a package in iorapd.
     // Effectively deletes any raw or compiled trace files, unoptimizing the package in iorap.
     private void purgeIorapPackage(String packageName) {
@@ -672,15 +788,65 @@
             throw new AssertionError(e);
         }
 
-        getInstrumentation().getUiAutomation()
-                .executeShellCommand("stop iorapd");
-        sleep(100);  // give iorapd enough time to stop.
+        Log.v(TAG, "Purge iorap package: " + packageName);
+        stopIorapd();
         getInstrumentation().getUiAutomation()
                 .executeShellCommand(String.format(IORAP_MAINTENANCE_CMD, packageName));
         Log.v(TAG, "Executed: " + String.format(IORAP_MAINTENANCE_CMD, packageName));
-        getInstrumentation().getUiAutomation()
-                .executeShellCommand("start iorapd");
-        sleep(2000);  // give iorapd enough time to start up.
+        startIorapd();
+    }
+
+    String executeShellCommandWithTempFile(String cmd) {
+        Log.v(TAG, "executeShellCommandWithTempFile, cmd: " + cmd);
+        try {
+            //File outputDir =
+            //       InstrumentationRegistry.getInstrumentation().getContext().getCacheDir();
+            File outputFile = File.createTempFile("exec_shell_command", ".sh");
+
+            try {
+                outputFile.setWritable(true);
+                outputFile.setExecutable(true, /*ownersOnly*/false);
+
+                String scriptPath = outputFile.toString();
+
+                // If this works correctly, the next log-line will print 'Success'.
+                try (BufferedWriter writer = new BufferedWriter(new FileWriter(scriptPath))) {
+                    writer.write(cmd);
+                }
+
+                String resultString = "";
+                try (ParcelFileDescriptor result = getInstrumentation().getUiAutomation().
+                        executeShellCommand(scriptPath);
+                        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
+                                new FileInputStream(result.getFileDescriptor())))) {
+                    String line;
+                    while ((line = bufferedReader.readLine()) != null) {
+                        resultString += line + "\n";
+                    }
+                }
+
+                return resultString;
+            } finally {
+                outputFile.delete();
+            }
+        } catch (IOException e) {
+            throw new AssertionError("Failed to execute shell command: " + cmd, e);
+        }
+    }
+
+    // Get the 'now' timestamp usable with $(adb logcat -v utc -T "time string")
+    String getTimeNowForLogcat() {
+        ZonedDateTime utc = ZonedDateTime.now(ZoneOffset.UTC);
+
+        // YYYY-MM-DD hh:mm:ss.mmm
+        return utc.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
+    }
+
+    String getLogcatSinceTime(String logcatTime) {
+        // The time has spaces in it but must be passed as a single arg.
+        // Therefore use a temp script file.
+        return executeShellCommandWithTempFile(
+                String.format("logcat -d -v threadtime -v utc -T '%s'", logcatTime));
     }
 
     /**
@@ -707,15 +873,12 @@
             throw new AssertionError(e);
         }
 
-        getInstrumentation().getUiAutomation()
-                .executeShellCommand("stop iorapd");
+        stopIorapd();
         getInstrumentation().getUiAutomation()
                 .executeShellCommand(String.format("setprop iorapd.perfetto.enable %b", enable));
         getInstrumentation().getUiAutomation()
                 .executeShellCommand(String.format("setprop iorapd.readahead.enable %b", enable));
-        getInstrumentation().getUiAutomation()
-                .executeShellCommand("start iorapd");
-        sleep(2000);  // give enough time for iorapd to start back up.
+        startIorapd();
 
         if (enable) {
             mIorapStatus = IorapStatus.ENABLED;
@@ -770,6 +933,13 @@
             mCompilerFilters = new String[1];
         }
 
+        String iorapCompilerFilterList = args.getString(KEY_IORAP_COMPILER_FILTERS);
+        if (iorapCompilerFilterList != null) {
+            // Passing in iorap compiler filters implies an iorap trial launch.
+            mIorapTrialLaunch = true;
+            mIorapCompilerFilters = Arrays.asList(iorapCompilerFilterList.split("\\|"));
+        }
+
         // Pre-populate the results map to avoid null checks.
         for (String app : mNameToLaunchTime.keySet()) {
             HashMap<String, List<AppLaunchResult>> map = new HashMap<>();
diff --git a/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java b/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java
index b805744..35a6c26 100644
--- a/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java
+++ b/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java
@@ -46,7 +46,7 @@
     byte[] mFileDigest;
     long mExpiryTimeMs;
 
-    public DummyBlobData(Builder builder) {
+    private DummyBlobData(Builder builder) {
         mRandom = new Random(builder.getRandomSeed());
         mFile = new File(builder.getContext().getFilesDir(), builder.getFileName());
         mFileSize = builder.getFileSize();
@@ -167,7 +167,7 @@
 
         final byte[] actualBytes = new byte[lengthBytes];
         try (FileInputStream in = new ParcelFileDescriptor.AutoCloseInputStream(
-                session.openWrite(0L, 0L))) {
+                session.openRead())) {
             read(in, actualBytes, offsetBytes, lengthBytes);
         }
 
@@ -190,7 +190,7 @@
             long offsetBytes, long lengthBytes) throws Exception {
         final byte[] actualDigest;
         try (FileInputStream in = new ParcelFileDescriptor.AutoCloseInputStream(
-                session.openWrite(0L, 0L))) {
+                session.openRead())) {
             actualDigest = createSha256Digest(in, offsetBytes, lengthBytes);
         }
 
diff --git a/tests/BlobStoreTestUtils/src/com/android/utils/blob/Utils.java b/tests/BlobStoreTestUtils/src/com/android/utils/blob/Utils.java
index 654c1e2..482b23f 100644
--- a/tests/BlobStoreTestUtils/src/com/android/utils/blob/Utils.java
+++ b/tests/BlobStoreTestUtils/src/com/android/utils/blob/Utils.java
@@ -124,7 +124,11 @@
         final BlobStoreManager blobStoreManager = (BlobStoreManager) context.getSystemService(
                 Context.BLOB_STORE_SERVICE);
         blobStoreManager.releaseLease(blobHandle);
-        assertThat(blobStoreManager.getLeaseInfo(blobHandle)).isNull();
+        try {
+            assertThat(blobStoreManager.getLeaseInfo(blobHandle)).isNull();
+        } catch (SecurityException e) {
+            // Expected, ignore
+        }
     }
 
     private static void assertLeaseInfo(LeaseInfo leaseInfo, String packageName,
diff --git a/tests/BootImageProfileTest/AndroidTest.xml b/tests/BootImageProfileTest/AndroidTest.xml
index d7f8204..7e97fa3 100644
--- a/tests/BootImageProfileTest/AndroidTest.xml
+++ b/tests/BootImageProfileTest/AndroidTest.xml
@@ -23,6 +23,10 @@
         <option name="force-skip-system-props" value="true" />
     </target_preparer>
 
+    <target_preparer class="com.android.tradefed.targetprep.DeviceCleaner">
+        <option name="cleanup-action" value="REBOOT" />
+    </target_preparer>
+
     <test class="com.android.tradefed.testtype.HostTest" >
         <option name="class" value="com.android.bootimageprofile.BootImageProfileTest" />
     </test>
diff --git a/tests/Internal/src/android/app/WallpaperColorsTest.java b/tests/Internal/src/android/app/WallpaperColorsTest.java
index 65ff6eb..e9bac71 100644
--- a/tests/Internal/src/android/app/WallpaperColorsTest.java
+++ b/tests/Internal/src/android/app/WallpaperColorsTest.java
@@ -87,6 +87,14 @@
                 + "HINT_FROM_BITMAP.", fromBitmap);
     }
 
+    @Test
+    public void darkMainColorSupportsDarkTheme() {
+        final Color color = Color.valueOf(Color.BLACK);
+        WallpaperColors colors = new WallpaperColors(color, null, null);
+        Assert.assertTrue("Dark theme should be supported by dark main colors.",
+                (colors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_THEME) != 0);
+    }
+
     /**
      * WallpaperColors should not recycle bitmaps that it didn't create.
      */
diff --git a/tests/MirrorSurfaceTest/src/com/google/android/test/mirrorsurface/MirrorSurfaceActivity.java b/tests/MirrorSurfaceTest/src/com/google/android/test/mirrorsurface/MirrorSurfaceActivity.java
index e255ce2..31532a2 100644
--- a/tests/MirrorSurfaceTest/src/com/google/android/test/mirrorsurface/MirrorSurfaceActivity.java
+++ b/tests/MirrorSurfaceTest/src/com/google/android/test/mirrorsurface/MirrorSurfaceActivity.java
@@ -27,7 +27,6 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.RemoteException;
-import android.util.Size;
 import android.view.Gravity;
 import android.view.IWindowManager;
 import android.view.MotionEvent;
@@ -90,8 +89,8 @@
                 .getSystemService(WindowManager.class);
         mIWm = WindowManagerGlobal.getWindowManagerService();
 
-        Size windowSize = mWm.getCurrentWindowMetrics().getSize();
-        mWindowBounds.set(0, 0, windowSize.getWidth(), windowSize.getHeight());
+        Rect windowBounds = mWm.getCurrentWindowMetrics().getBounds();
+        mWindowBounds.set(0, 0, windowBounds.width(), windowBounds.height());
 
         mScaleText = findViewById(R.id.scale);
         mDisplayFrameText = findViewById(R.id.displayFrame);
diff --git a/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java b/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java
index 2957192..d011dbb 100644
--- a/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java
+++ b/tests/PackageWatchdog/src/com/android/server/PackageWatchdogTest.java
@@ -1123,6 +1123,28 @@
         assertThat(testController.getSyncRequests()).isEqualTo(expectedSyncRequests);
     }
 
+    /**
+     * Ensure that the failure history of a package is preserved when making duplicate calls to
+     * observe the package.
+     */
+    @Test
+    public void testFailureHistoryIsPreserved() {
+        PackageWatchdog watchdog = createWatchdog();
+        TestObserver observer = new TestObserver(OBSERVER_NAME_1);
+        watchdog.startObservingHealth(observer, List.of(APP_A), SHORT_DURATION);
+        for (int i = 0; i < PackageWatchdog.DEFAULT_TRIGGER_FAILURE_COUNT - 1; i++) {
+            watchdog.onPackageFailure(List.of(new VersionedPackage(APP_A, VERSION_CODE)),
+                    PackageWatchdog.FAILURE_REASON_UNKNOWN);
+        }
+        mTestLooper.dispatchAll();
+        assertThat(observer.mMitigatedPackages).isEmpty();
+        watchdog.startObservingHealth(observer, List.of(APP_A), LONG_DURATION);
+        watchdog.onPackageFailure(List.of(new VersionedPackage(APP_A, VERSION_CODE)),
+                PackageWatchdog.FAILURE_REASON_UNKNOWN);
+        mTestLooper.dispatchAll();
+        assertThat(observer.mMitigatedPackages).isEqualTo(List.of(APP_A));
+    }
+
     private void adoptShellPermissions(String... permissions) {
         InstrumentationRegistry
                 .getInstrumentation()
diff --git a/tests/RollbackTest/RollbackTest.xml b/tests/RollbackTest/RollbackTest.xml
index f2c0f86..7b85cc8 100644
--- a/tests/RollbackTest/RollbackTest.xml
+++ b/tests/RollbackTest/RollbackTest.xml
@@ -18,6 +18,16 @@
     <target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
         <option name="test-file-name" value="RollbackTest.apk" />
     </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
+        <option name="run-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es package &quot;com.google.android.gms.platformconfigurator&quot; --es user '\\*' --esa flags &quot;ModuleConfig__immediate_commit_packages&quot; --esa types &quot;bytes&quot; --esa values &quot;CgA=&quot; com.google.android.gms" />
+        <option name="run-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es package &quot;com.google.android.gms.platformconfigurator&quot; --es user '\\*' --esa flags &quot;ModuleConfig__versioned_immediate_commit_packages&quot; --esa types &quot;bytes&quot; --esa values &quot;Cm5vdGFwYWNrYWdlOgA=&quot; com.google.android.gms" />
+        <option name="teardown-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es action delete --es package &quot;com.google.android.gms.platformconfigurator&quot; --es user '\*' --esa flag &quot;ModuleConfig__immediate_commit_packages&quot; com.google.android.gms" />
+        <option name="teardown-command" value="am broadcast -a 'com.google.android.gms.phenotype.FLAG_OVERRIDE' --es action delete --es package &quot;com.google.android.gms.platformconfigurator&quot; --es user '\*' --esa flag &quot;ModuleConfig__versioned_immediate_commit_packages&quot; com.google.android.gms" />
+        <option name="run-command" value="pm uninstall com.android.cts.install.lib.testapp.A" />
+        <option name="run-command" value="pm uninstall com.android.cts.install.lib.testapp.B" />
+        <option name="teardown-command" value="pm uninstall com.android.cts.install.lib.testapp.A" />
+        <option name="teardown-command" value="pm uninstall com.android.cts.install.lib.testapp.B" />
+    </target_preparer>
     <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
         <option name="package" value="com.android.tests.rollback" />
         <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
diff --git a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java
index 5a92d68..cab8b42 100644
--- a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java
+++ b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java
@@ -75,6 +75,12 @@
     private static final String PROPERTY_ENABLE_ROLLBACK_TIMEOUT_MILLIS =
             "enable_rollback_timeout";
 
+    private static boolean hasRollbackInclude(List<RollbackInfo> rollbacks, String packageName) {
+        return rollbacks.stream().anyMatch(
+                ri -> ri.getPackages().stream().anyMatch(
+                        pri -> packageName.equals(pri.getPackageName())));
+    }
+
     /**
      * Test basic rollbacks.
      */
@@ -113,18 +119,14 @@
             // Uninstall TestApp.A
             Uninstall.packages(TestApp.A);
             assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1);
-            // TODO: There is currently a race condition between when the app is
-            // uninstalled and when rollback manager deletes the rollback. Fix it
-            // so that's not the case!
             for (int i = 0; i < 5; ++i) {
-                RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                        rm.getRecentlyCommittedRollbacks(), TestApp.A);
-                if (rollback != null) {
+                if (hasRollbackInclude(rm.getRecentlyCommittedRollbacks(), TestApp.A)) {
                     Log.i(TAG, "Sleeping 1 second to wait for uninstall to take effect.");
                     Thread.sleep(1000);
                 }
             }
 
+            assertThat(hasRollbackInclude(rm.getRecentlyCommittedRollbacks(), TestApp.A)).isFalse();
             // The app should not be available for rollback.
             waitForUnavailableRollback(TestApp.A);
 
diff --git a/tests/SoundTriggerTestApp/src/com/android/test/soundtrigger/SoundTriggerTestService.java b/tests/SoundTriggerTestApp/src/com/android/test/soundtrigger/SoundTriggerTestService.java
index b185a26..9324ba0 100644
--- a/tests/SoundTriggerTestApp/src/com/android/test/soundtrigger/SoundTriggerTestService.java
+++ b/tests/SoundTriggerTestApp/src/com/android/test/soundtrigger/SoundTriggerTestService.java
@@ -250,10 +250,12 @@
 
         boolean status = mSoundTriggerUtil.addOrUpdateSoundModel(soundModel);
         if (status) {
-            postToast("Successfully loaded " + modelInfo.name + ", UUID=" + soundModel.uuid);
+            postToast("Successfully loaded " + modelInfo.name + ", UUID="
+                    + soundModel.getUuid());
             setModelState(modelInfo, "Loaded");
         } else {
-            postErrorToast("Failed to load " + modelInfo.name + ", UUID=" + soundModel.uuid + "!");
+            postErrorToast("Failed to load " + modelInfo.name + ", UUID="
+                    + soundModel.getUuid() + "!");
             setModelState(modelInfo, "Failed to load");
         }
     }
@@ -275,11 +277,12 @@
         modelInfo.detector = null;
         boolean status = mSoundTriggerUtil.deleteSoundModel(modelUuid);
         if (status) {
-            postToast("Successfully unloaded " + modelInfo.name + ", UUID=" + soundModel.uuid);
+            postToast("Successfully unloaded " + modelInfo.name + ", UUID="
+                    + soundModel.getUuid());
             setModelState(modelInfo, "Unloaded");
         } else {
             postErrorToast("Failed to unload " +
-                    modelInfo.name + ", UUID=" + soundModel.uuid + "!");
+                    modelInfo.name + ", UUID=" + soundModel.getUuid() + "!");
             setModelState(modelInfo, "Failed to unload");
         }
     }
@@ -299,7 +302,8 @@
         GenericSoundModel updated = createNewSoundModel(modelInfo);
         boolean status = mSoundTriggerUtil.addOrUpdateSoundModel(updated);
         if (status) {
-            postToast("Successfully reloaded " + modelInfo.name + ", UUID=" + modelInfo.modelUuid);
+            postToast("Successfully reloaded " + modelInfo.name + ", UUID="
+                    + modelInfo.modelUuid);
             setModelState(modelInfo, "Reloaded");
         } else {
             postErrorToast("Failed to reload "
@@ -321,7 +325,8 @@
                     modelUuid, new DetectorCallback(modelInfo));
         }
 
-        postMessage("Starting recognition for " + modelInfo.name + ", UUID=" + modelInfo.modelUuid);
+        postMessage("Starting recognition for " + modelInfo.name + ", UUID="
+                + modelInfo.modelUuid);
         if (modelInfo.detector.startRecognition(modelInfo.captureAudio ?
                 SoundTriggerDetector.RECOGNITION_FLAG_CAPTURE_TRIGGER_AUDIO :
                 SoundTriggerDetector.RECOGNITION_FLAG_ALLOW_MULTIPLE_TRIGGERS)) {
@@ -495,7 +500,8 @@
 
             if (properties.containsKey("dataFile")) {
                 File modelDataFile = new File(
-                        getFilesDir().getPath() + "/" + properties.getProperty("dataFile"));
+                        getFilesDir().getPath() + "/"
+                                + properties.getProperty("dataFile"));
                 modelInfo.modelData = new byte[(int) modelDataFile.length()];
                 FileInputStream input = new FileInputStream(modelDataFile);
                 input.read(modelInfo.modelData, 0, modelInfo.modelData.length);
@@ -602,12 +608,14 @@
                 FileOutputStream fos  = null;
                 try {
                     fos = new FileOutputStream( new File(
-                            getFilesDir() + File.separator + mModelInfo.name.replace(' ', '_') +
-                                    "_capture_" + format.getChannelCount() + "ch_" +
-                                    format.getSampleRate() + "hz_" + encoding + ".pcm"));
+                            getFilesDir() + File.separator
+                                    + mModelInfo.name.replace(' ', '_')
+                                    + "_capture_" + format.getChannelCount() + "ch_"
+                                    + format.getSampleRate() + "hz_" + encoding + ".pcm"));
                 } catch (IOException e) {
                     Log.e(TAG, "Failed to open output for saving PCM data", e);
-                    postErrorToast("Failed to open output for saving PCM data: " + e.getMessage());
+                    postErrorToast("Failed to open output for saving PCM data: "
+                            + e.getMessage());
                 }
 
                 // Inform the user we're recording.
@@ -690,7 +698,8 @@
         AudioFormat format =  event.getCaptureAudioFormat();
         result = result + "AudioFormat: " + ((format == null) ? "null" : format.toString());
         byte[] triggerAudio = event.getTriggerAudio();
-        result = result + ", TriggerAudio: " + (triggerAudio == null ? "null" : triggerAudio.length);
+        result = result + ", TriggerAudio: "
+                + (triggerAudio == null ? "null" : triggerAudio.length);
         byte[] data = event.getData();
         result = result + ", Data: " + (data == null ? "null" : data.length);
         if (data != null) {
diff --git a/tests/SoundTriggerTests/src/android/hardware/soundtrigger/SoundTriggerTest.java b/tests/SoundTriggerTests/src/android/hardware/soundtrigger/SoundTriggerTest.java
index c900eae..e36f398 100644
--- a/tests/SoundTriggerTests/src/android/hardware/soundtrigger/SoundTriggerTest.java
+++ b/tests/SoundTriggerTests/src/android/hardware/soundtrigger/SoundTriggerTest.java
@@ -16,7 +16,6 @@
 
 package android.hardware.soundtrigger;
 
-import android.hardware.soundtrigger.SoundTrigger;
 import android.hardware.soundtrigger.SoundTrigger.ConfidenceLevel;
 import android.hardware.soundtrigger.SoundTrigger.Keyphrase;
 import android.hardware.soundtrigger.SoundTrigger.KeyphraseRecognitionEvent;
@@ -51,10 +50,10 @@
         Keyphrase unparceled = Keyphrase.CREATOR.createFromParcel(parcel);
 
         // Verify that they are the same
-        assertEquals(keyphrase.id, unparceled.id);
-        assertNull(unparceled.users);
-        assertEquals(keyphrase.locale, unparceled.locale);
-        assertEquals(keyphrase.text, unparceled.text);
+        assertEquals(keyphrase.getId(), unparceled.getId());
+        assertNull(unparceled.getUsers());
+        assertEquals(keyphrase.getLocale(), unparceled.getLocale());
+        assertEquals(keyphrase.getText(), unparceled.getText());
     }
 
     @SmallTest
@@ -71,10 +70,10 @@
         Keyphrase unparceled = Keyphrase.CREATOR.createFromParcel(parcel);
 
         // Verify that they are the same
-        assertEquals(keyphrase.id, unparceled.id);
-        assertTrue(Arrays.equals(keyphrase.users, unparceled.users));
-        assertEquals(keyphrase.locale, unparceled.locale);
-        assertEquals(keyphrase.text, unparceled.text);
+        assertEquals(keyphrase.getId(), unparceled.getId());
+        assertTrue(Arrays.equals(keyphrase.getUsers(), unparceled.getUsers()));
+        assertEquals(keyphrase.getLocale(), unparceled.getLocale());
+        assertEquals(keyphrase.getText(), unparceled.getText());
     }
 
     @SmallTest
@@ -91,10 +90,10 @@
         Keyphrase unparceled = Keyphrase.CREATOR.createFromParcel(parcel);
 
         // Verify that they are the same
-        assertEquals(keyphrase.id, unparceled.id);
-        assertTrue(Arrays.equals(keyphrase.users, unparceled.users));
-        assertEquals(keyphrase.locale, unparceled.locale);
-        assertEquals(keyphrase.text, unparceled.text);
+        assertEquals(keyphrase.getId(), unparceled.getId());
+        assertTrue(Arrays.equals(keyphrase.getUsers(), unparceled.getUsers()));
+        assertEquals(keyphrase.getLocale(), unparceled.getLocale());
+        assertEquals(keyphrase.getText(), unparceled.getText());
     }
 
     @SmallTest
@@ -116,10 +115,10 @@
         KeyphraseSoundModel unparceled = KeyphraseSoundModel.CREATOR.createFromParcel(parcel);
 
         // Verify that they are the same
-        assertEquals(ksm.uuid, unparceled.uuid);
-        assertNull(unparceled.data);
-        assertEquals(ksm.type, unparceled.type);
-        assertTrue(Arrays.equals(keyphrases, unparceled.keyphrases));
+        assertEquals(ksm.getUuid(), unparceled.getUuid());
+        assertNull(unparceled.getData());
+        assertEquals(ksm.getType(), unparceled.getType());
+        assertTrue(Arrays.equals(keyphrases, unparceled.getKeyphrases()));
     }
 
     @SmallTest
@@ -141,10 +140,10 @@
         KeyphraseSoundModel unparceled = KeyphraseSoundModel.CREATOR.createFromParcel(parcel);
 
         // Verify that they are the same
-        assertEquals(ksm.uuid, unparceled.uuid);
-        assertEquals(ksm.type, unparceled.type);
-        assertTrue(Arrays.equals(ksm.keyphrases, unparceled.keyphrases));
-        assertTrue(Arrays.equals(ksm.data, unparceled.data));
+        assertEquals(ksm.getUuid(), unparceled.getUuid());
+        assertEquals(ksm.getType(), unparceled.getType());
+        assertTrue(Arrays.equals(ksm.getKeyphrases(), unparceled.getKeyphrases()));
+        assertTrue(Arrays.equals(ksm.getData(), unparceled.getData()));
     }
 
     @SmallTest
@@ -163,10 +162,10 @@
         KeyphraseSoundModel unparceled = KeyphraseSoundModel.CREATOR.createFromParcel(parcel);
 
         // Verify that they are the same
-        assertEquals(ksm.uuid, unparceled.uuid);
-        assertEquals(ksm.type, unparceled.type);
-        assertNull(unparceled.keyphrases);
-        assertTrue(Arrays.equals(ksm.data, unparceled.data));
+        assertEquals(ksm.getUuid(), unparceled.getUuid());
+        assertEquals(ksm.getType(), unparceled.getType());
+        assertNull(unparceled.getKeyphrases());
+        assertTrue(Arrays.equals(ksm.getData(), unparceled.getData()));
     }
 
     @SmallTest
@@ -185,10 +184,10 @@
         KeyphraseSoundModel unparceled = KeyphraseSoundModel.CREATOR.createFromParcel(parcel);
 
         // Verify that they are the same
-        assertEquals(ksm.uuid, unparceled.uuid);
-        assertEquals(ksm.type, unparceled.type);
-        assertTrue(Arrays.equals(ksm.keyphrases, unparceled.keyphrases));
-        assertTrue(Arrays.equals(ksm.data, unparceled.data));
+        assertEquals(ksm.getUuid(), unparceled.getUuid());
+        assertEquals(ksm.getType(), unparceled.getType());
+        assertTrue(Arrays.equals(ksm.getKeyphrases(), unparceled.getKeyphrases()));
+        assertTrue(Arrays.equals(ksm.getData(), unparceled.getData()));
     }
 
     @LargeTest
@@ -212,10 +211,10 @@
         KeyphraseSoundModel unparceled = KeyphraseSoundModel.CREATOR.createFromParcel(parcel);
 
         // Verify that they are the same
-        assertEquals(ksm.uuid, unparceled.uuid);
-        assertEquals(ksm.type, unparceled.type);
-        assertTrue(Arrays.equals(ksm.data, unparceled.data));
-        assertTrue(Arrays.equals(ksm.keyphrases, unparceled.keyphrases));
+        assertEquals(ksm.getUuid(), unparceled.getUuid());
+        assertEquals(ksm.getType(), unparceled.getType());
+        assertTrue(Arrays.equals(ksm.getData(), unparceled.getData()));
+        assertTrue(Arrays.equals(ksm.getKeyphrases(), unparceled.getKeyphrases()));
     }
 
     @SmallTest
diff --git a/tests/SoundTriggerTests/src/android/hardware/soundtrigger/stubhal/GenericSoundModelTest.java b/tests/SoundTriggerTests/src/android/hardware/soundtrigger/stubhal/GenericSoundModelTest.java
index c0583ce..2c3592c 100644
--- a/tests/SoundTriggerTests/src/android/hardware/soundtrigger/stubhal/GenericSoundModelTest.java
+++ b/tests/SoundTriggerTests/src/android/hardware/soundtrigger/stubhal/GenericSoundModelTest.java
@@ -17,7 +17,6 @@
 package android.hardware.soundtrigger;
 
 import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.timeout;
@@ -37,6 +36,8 @@
 
 import com.android.internal.app.ISoundTriggerService;
 
+import org.mockito.MockitoAnnotations;
+
 import java.io.DataOutputStream;
 import java.net.InetAddress;
 import java.net.Socket;
@@ -45,8 +46,6 @@
 import java.util.Random;
 import java.util.UUID;
 
-import org.mockito.MockitoAnnotations;
-
 public class GenericSoundModelTest extends AndroidTestCase {
     static final int MSG_DETECTION_ERROR = -1;
     static final int MSG_DETECTION_RESUME = 0;
@@ -96,11 +95,11 @@
 
         // Update sound model
         soundTriggerService.updateSoundModel(model);
-        loadedModelUuids.add(model.uuid);
+        loadedModelUuids.add(model.getUuid());
 
         // Confirm it was updated
         GenericSoundModel returnedModel =
-                soundTriggerService.getSoundModel(new ParcelUuid(model.uuid));
+                soundTriggerService.getSoundModel(new ParcelUuid(model.getUuid()));
         assertEquals(model, returnedModel);
     }
 
@@ -110,15 +109,15 @@
 
         // Update sound model
         soundTriggerService.updateSoundModel(model);
-        loadedModelUuids.add(model.uuid);
+        loadedModelUuids.add(model.getUuid());
 
         // Delete sound model
-        soundTriggerService.deleteSoundModel(new ParcelUuid(model.uuid));
-        loadedModelUuids.remove(model.uuid);
+        soundTriggerService.deleteSoundModel(new ParcelUuid(model.getUuid()));
+        loadedModelUuids.remove(model.getUuid());
 
         // Confirm it was deleted
         GenericSoundModel returnedModel =
-                soundTriggerService.getSoundModel(new ParcelUuid(model.uuid));
+                soundTriggerService.getSoundModel(new ParcelUuid(model.getUuid()));
         assertEquals(null, returnedModel);
     }
 
@@ -134,14 +133,14 @@
 
         // Update and start sound model recognition
         soundTriggerService.updateSoundModel(model);
-        loadedModelUuids.add(model.uuid);
-        int r = soundTriggerService.startRecognition(new ParcelUuid(model.uuid), spyCallback,
+        loadedModelUuids.add(model.getUuid());
+        int r = soundTriggerService.startRecognition(new ParcelUuid(model.getUuid()), spyCallback,
                 config);
         assertEquals("Could Not Start Recognition with code: " + r,
                 android.hardware.soundtrigger.SoundTrigger.STATUS_OK, r);
 
         // Stop recognition
-        r = soundTriggerService.stopRecognition(new ParcelUuid(model.uuid), spyCallback);
+        r = soundTriggerService.stopRecognition(new ParcelUuid(model.getUuid()), spyCallback);
         assertEquals("Could Not Stop Recognition with code: " + r,
                 android.hardware.soundtrigger.SoundTrigger.STATUS_OK, r);
     }
@@ -158,13 +157,13 @@
 
         // Update and start sound model
         soundTriggerService.updateSoundModel(model);
-        loadedModelUuids.add(model.uuid);
-        soundTriggerService.startRecognition(new ParcelUuid(model.uuid), spyCallback, config);
+        loadedModelUuids.add(model.getUuid());
+        soundTriggerService.startRecognition(new ParcelUuid(model.getUuid()), spyCallback, config);
 
         // Send trigger to stub HAL
         Socket socket = new Socket(InetAddress.getLocalHost(), 14035);
         DataOutputStream out = new DataOutputStream(socket.getOutputStream());
-        out.writeBytes("trig " + model.uuid.toString() + "\r\n");
+        out.writeBytes("trig " + model.getUuid().toString() + "\r\n");
         out.flush();
         socket.close();
 
@@ -227,11 +226,12 @@
             if (operation == 0 && modelInfo.status == STATUS_UNLOADED) {
                 // Update and start sound model
                 soundTriggerService.updateSoundModel(modelInfo.model);
-                loadedModelUuids.add(modelInfo.model.uuid);
+                loadedModelUuids.add(modelInfo.model.getUuid());
                 modelInfo.status = STATUS_LOADED;
             } else if (operation == 1 && modelInfo.status == STATUS_LOADED) {
                 // Start the sound model
-                int r = soundTriggerService.startRecognition(new ParcelUuid(modelInfo.model.uuid),
+                int r = soundTriggerService.startRecognition(new ParcelUuid(
+                                modelInfo.model.getUuid()),
                         spyCallback, config);
                 assertEquals("Could Not Start Recognition with code: " + r,
                         android.hardware.soundtrigger.SoundTrigger.STATUS_OK, r);
@@ -240,7 +240,7 @@
                 // Send trigger to stub HAL
                 Socket socket = new Socket(InetAddress.getLocalHost(), 14035);
                 DataOutputStream out = new DataOutputStream(socket.getOutputStream());
-                out.writeBytes("trig " + modelInfo.model.uuid + "\r\n");
+                out.writeBytes("trig " + modelInfo.model.getUuid() + "\r\n");
                 out.flush();
                 socket.close();
 
@@ -249,19 +249,20 @@
                 reset(spyCallback);
             } else if (operation == 3 && modelInfo.status == STATUS_STARTED) {
                 // Stop recognition
-                int r = soundTriggerService.stopRecognition(new ParcelUuid(modelInfo.model.uuid),
+                int r = soundTriggerService.stopRecognition(new ParcelUuid(
+                                modelInfo.model.getUuid()),
                         spyCallback);
                 assertEquals("Could Not Stop Recognition with code: " + r,
                         android.hardware.soundtrigger.SoundTrigger.STATUS_OK, r);
                 modelInfo.status = STATUS_LOADED;
             } else if (operation == 4 && modelInfo.status != STATUS_UNLOADED) {
                 // Delete sound model
-                soundTriggerService.deleteSoundModel(new ParcelUuid(modelInfo.model.uuid));
-                loadedModelUuids.remove(modelInfo.model.uuid);
+                soundTriggerService.deleteSoundModel(new ParcelUuid(modelInfo.model.getUuid()));
+                loadedModelUuids.remove(modelInfo.model.getUuid());
 
                 // Confirm it was deleted
-                GenericSoundModel returnedModel =
-                        soundTriggerService.getSoundModel(new ParcelUuid(modelInfo.model.uuid));
+                GenericSoundModel returnedModel = soundTriggerService.getSoundModel(
+                        new ParcelUuid(modelInfo.model.getUuid()));
                 assertEquals(null, returnedModel);
                 modelInfo.status = STATUS_UNLOADED;
             }
diff --git a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java
index 6eb4587..5afd39e 100644
--- a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java
+++ b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java
@@ -17,9 +17,9 @@
 package com.android.test.taskembed;
 
 import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
+import static android.window.WindowOrganizer.TaskOrganizer;
 
 import android.app.ActivityManager;
-import android.app.ActivityTaskManager;
 import android.app.Activity;
 import android.app.ActivityOptions;
 import android.content.Context;
@@ -27,18 +27,19 @@
 import android.graphics.Color;
 import android.graphics.Rect;
 import android.os.Bundle;
+import android.os.IBinder;
 import android.os.RemoteException;
 import android.view.Gravity;
-import android.view.ITaskOrganizer;
-import android.view.IWindowContainer;
 import android.view.MotionEvent;
 import android.view.SurfaceControl;
 import android.view.SurfaceHolder;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.WindowContainerTransaction;
-import android.widget.FrameLayout;
+import android.window.ITaskOrganizer;
+import android.window.IWindowContainerTransactionCallback;
+import android.window.WindowContainerTransaction;
 import android.widget.LinearLayout;
+import android.window.WindowOrganizer;
 
 public class TaskOrganizerMultiWindowTest extends Activity {
     class SplitLayout extends LinearLayout implements View.OnTouchListener {
@@ -115,8 +116,7 @@
             final WindowContainerTransaction wct = new WindowContainerTransaction();
             wct.setBounds(mWc, new Rect(0, 0, width, height));
             try {
-                ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(wct,
-                        mOrganizer);
+                WindowOrganizer.applySyncTransaction(wct, mOrganizer.mTransactionCallback);
             } catch (Exception e) {
                 // Oh well
             }
@@ -130,8 +130,27 @@
     class Organizer extends ITaskOrganizer.Stub {
         private int receivedTransactions = 0;
         SurfaceControl.Transaction mergedTransaction = new SurfaceControl.Transaction();
+        IWindowContainerTransactionCallback mTransactionCallback =
+                new IWindowContainerTransactionCallback() {
+            @Override
+            public void transactionReady(int id, SurfaceControl.Transaction t)
+                    throws RemoteException {
+                mergedTransaction.merge(t);
+                receivedTransactions++;
+                if (receivedTransactions == 2) {
+                    mergedTransaction.apply();
+                    receivedTransactions = 0;
+                }
+            }
+
+            @Override
+            public IBinder asBinder() {
+                return null;
+            }
+        };
+
         @Override
-        public void taskAppeared(ActivityManager.RunningTaskInfo ti) {
+        public void onTaskAppeared(ActivityManager.RunningTaskInfo ti) {
             if (!gotFirstTask) {
                 mTaskView1.reparentTask(ti.token);
                 gotFirstTask = true;
@@ -139,15 +158,7 @@
                 mTaskView2.reparentTask(ti.token);
             }
         }
-        public void taskVanished(ActivityManager.RunningTaskInfo ti) {
-        }
-        public void transactionReady(int id, SurfaceControl.Transaction t) {
-            mergedTransaction.merge(t);
-            receivedTransactions++;
-            if (receivedTransactions == 2) {
-                mergedTransaction.apply();
-                receivedTransactions = 0;
-            }
+        public void onTaskVanished(ActivityManager.RunningTaskInfo ti) {
         }
         @Override
         public void onTaskInfoChanged(ActivityManager.RunningTaskInfo info) {
@@ -161,9 +172,7 @@
         super.onCreate(savedInstanceState);
 
         try {
-            ActivityTaskManager.getTaskOrganizerController().registerTaskOrganizer(mOrganizer,
-                    WINDOWING_MODE_MULTI_WINDOW);
-
+            TaskOrganizer.registerOrganizer(mOrganizer, WINDOWING_MODE_MULTI_WINDOW);
         } catch (Exception e) {
         }
 
diff --git a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java
index ade5c2e..520bc25 100644
--- a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java
+++ b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java
@@ -17,20 +17,19 @@
 package com.android.test.taskembed;
 
 import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
+import static android.window.WindowOrganizer.TaskOrganizer;
 
 import android.app.ActivityManager;
-import android.app.ActivityTaskManager;
 import android.app.Service;
 import android.content.Intent;
 import android.graphics.Rect;
 import android.os.IBinder;
-import android.view.ITaskOrganizer;
-import android.view.IWindowContainer;
-import android.view.SurfaceControl;
 import android.view.ViewGroup;
-import android.view.WindowContainerTransaction;
+import android.window.ITaskOrganizer;
+import android.window.WindowContainerTransaction;
 import android.view.WindowManager;
 import android.widget.FrameLayout;
+import android.window.WindowOrganizer;
 
 public class TaskOrganizerPipTest extends Service {
     static final int PIP_WIDTH  = 640;
@@ -39,19 +38,17 @@
     TaskView mTaskView;
 
     class Organizer extends ITaskOrganizer.Stub {
-        public void taskAppeared(ActivityManager.RunningTaskInfo ti) {
+        public void onTaskAppeared(ActivityManager.RunningTaskInfo ti) {
             mTaskView.reparentTask(ti.token);
 
             final WindowContainerTransaction wct = new WindowContainerTransaction();
             wct.scheduleFinishEnterPip(ti.token, new Rect(0, 0, PIP_WIDTH, PIP_HEIGHT));
             try {
-                ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(wct, null);
+                WindowOrganizer.applyTransaction(wct);
             } catch (Exception e) {
             }
         }
-        public void taskVanished(ActivityManager.RunningTaskInfo ti) {
-        }
-        public void transactionReady(int id, SurfaceControl.Transaction t) {
+        public void onTaskVanished(ActivityManager.RunningTaskInfo ti) {
         }
         public void onTaskInfoChanged(ActivityManager.RunningTaskInfo info) {
         }
@@ -69,9 +66,7 @@
         super.onCreate();
 
         try {
-            ActivityTaskManager.getTaskOrganizerController().registerTaskOrganizer(mOrganizer,
-                    WINDOWING_MODE_PINNED);
-
+            TaskOrganizer.registerOrganizer(mOrganizer, WINDOWING_MODE_PINNED);
         } catch (Exception e) {
         }
 
diff --git a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskView.java b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskView.java
index 0086fb7..438a062 100644
--- a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskView.java
+++ b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskView.java
@@ -18,11 +18,11 @@
 
 import android.app.ActivityTaskManager;
 import android.content.Context;
-import android.view.ITaskOrganizer;
-import android.view.IWindowContainer;
+import android.window.IWindowContainer;
 import android.view.SurfaceControl;
 import android.view.SurfaceHolder;
 import android.view.SurfaceView;
+import android.window.ITaskOrganizer;
 
 /**
  * Simple SurfaceView wrapper which registers a TaskOrganizer
diff --git a/tests/VoiceEnrollment/src/com/android/test/voiceenrollment/EnrollmentUtil.java b/tests/VoiceEnrollment/src/com/android/test/voiceenrollment/EnrollmentUtil.java
index 7927ac4..287364f 100644
--- a/tests/VoiceEnrollment/src/com/android/test/voiceenrollment/EnrollmentUtil.java
+++ b/tests/VoiceEnrollment/src/com/android/test/voiceenrollment/EnrollmentUtil.java
@@ -159,36 +159,36 @@
             Log.e(TAG, "KeyphraseSoundModel must be non-null");
             return false;
         }
-        if (soundModel.uuid == null) {
+        if (soundModel.getUuid() == null) {
             Log.e(TAG, "KeyphraseSoundModel must have a UUID");
             return false;
         }
-        if (soundModel.data == null) {
+        if (soundModel.getData() == null) {
             Log.e(TAG, "KeyphraseSoundModel must have data");
             return false;
         }
-        if (soundModel.keyphrases == null || soundModel.keyphrases.length != 1) {
+        if (soundModel.getKeyphrases() == null || soundModel.getKeyphrases().length != 1) {
             Log.e(TAG, "Keyphrase must be exactly 1");
             return false;
         }
-        Keyphrase keyphrase = soundModel.keyphrases[0];
-        if (keyphrase.id <= 0) {
+        Keyphrase keyphrase = soundModel.getKeyphrases()[0];
+        if (keyphrase.getId() <= 0) {
             Log.e(TAG, "Keyphrase must have a valid ID");
             return false;
         }
-        if (keyphrase.recognitionModes < 0) {
+        if (keyphrase.getRecognitionModes() < 0) {
             Log.e(TAG, "Recognition modes must be valid");
             return false;
         }
-        if (keyphrase.locale == null) {
+        if (keyphrase.getLocale() == null) {
             Log.e(TAG, "Locale must not be null");
             return false;
         }
-        if (keyphrase.text == null) {
+        if (keyphrase.getText() == null) {
             Log.e(TAG, "Text must not be null");
             return false;
         }
-        if (keyphrase.users == null || keyphrase.users.length == 0) {
+        if (keyphrase.getUsers() == null || keyphrase.getUsers().length == 0) {
             Log.e(TAG, "Keyphrase must have valid user(s)");
             return false;
         }
diff --git a/tests/VoiceEnrollment/src/com/android/test/voiceenrollment/TestEnrollmentActivity.java b/tests/VoiceEnrollment/src/com/android/test/voiceenrollment/TestEnrollmentActivity.java
index b357ad0..e4880fd 100644
--- a/tests/VoiceEnrollment/src/com/android/test/voiceenrollment/TestEnrollmentActivity.java
+++ b/tests/VoiceEnrollment/src/com/android/test/voiceenrollment/TestEnrollmentActivity.java
@@ -91,7 +91,7 @@
         }
         boolean status = mEnrollmentUtil.deleteSoundModel(KEYPHRASE_ID, BCP47_LOCALE);
         if (status) {
-            Toast.makeText(this, "Successfully un-enrolled, model UUID=" + soundModel.uuid,
+            Toast.makeText(this, "Successfully un-enrolled, model UUID=" + soundModel.getUuid(),
                     Toast.LENGTH_SHORT)
                     .show();
         } else {
@@ -112,11 +112,11 @@
         // Generate a fake model to push.
         byte[] data = new byte[2048];
         mRandom.nextBytes(data);
-        KeyphraseSoundModel updated = new KeyphraseSoundModel(soundModel.uuid,
-                soundModel.vendorUuid, data, soundModel.keyphrases);
+        KeyphraseSoundModel updated = new KeyphraseSoundModel(soundModel.getUuid(),
+                soundModel.getVendorUuid(), data, soundModel.getKeyphrases());
         boolean status = mEnrollmentUtil.addOrUpdateSoundModel(updated);
         if (status) {
-            Toast.makeText(this, "Successfully re-enrolled, model UUID=" + updated.uuid,
+            Toast.makeText(this, "Successfully re-enrolled, model UUID=" + updated.getUuid(),
                     Toast.LENGTH_SHORT)
                     .show();
         } else {
diff --git a/tests/WindowInsetsTests/src/com/google/android/test/windowinsetstests/WindowInsetsActivity.java b/tests/WindowInsetsTests/src/com/google/android/test/windowinsetstests/WindowInsetsActivity.java
index 548af0c..498cb7c 100644
--- a/tests/WindowInsetsTests/src/com/google/android/test/windowinsetstests/WindowInsetsActivity.java
+++ b/tests/WindowInsetsTests/src/com/google/android/test/windowinsetstests/WindowInsetsActivity.java
@@ -18,7 +18,6 @@
 
 import static android.view.WindowInsets.Type.ime;
 import static android.view.WindowInsetsAnimation.Callback.DISPATCH_MODE_STOP;
-
 import static java.lang.Math.max;
 import static java.lang.Math.min;
 
@@ -31,6 +30,7 @@
 import android.graphics.Insets;
 import android.os.Bundle;
 import android.util.AttributeSet;
+import android.util.Log;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewConfiguration;
@@ -44,11 +44,11 @@
 import android.view.animation.LinearInterpolator;
 import android.widget.LinearLayout;
 
-import androidx.appcompat.app.AppCompatActivity;
-
 import java.util.ArrayList;
 import java.util.List;
 
+import androidx.appcompat.app.AppCompatActivity;
+
 public class WindowInsetsActivity extends AppCompatActivity {
 
     private View mRoot;
@@ -191,6 +191,40 @@
                 mTransitions.forEach(it -> it.onFinish(animation));
             }
         });
+
+        findViewById(R.id.floating_action_button).setOnClickListener(
+                v -> v.getWindowInsetsController().controlWindowInsetsAnimation(ime(), -1,
+                new LinearInterpolator(), null /* cancellationSignal */,
+                new WindowInsetsAnimationControlListener() {
+                    @Override
+                    public void onReady(
+                            WindowInsetsAnimationController controller,
+                            int types) {
+                        ValueAnimator anim = ValueAnimator.ofFloat(0f, 1f);
+                        anim.setDuration(1500);
+                        anim.addUpdateListener(animation
+                                -> controller.setInsetsAndAlpha(
+                                controller.getShownStateInsets(),
+                                (float) animation.getAnimatedValue(),
+                                anim.getAnimatedFraction()));
+                        anim.addListener(new AnimatorListenerAdapter() {
+                            @Override
+                            public void onAnimationEnd(Animator animation) {
+                                super.onAnimationEnd(animation);
+                                controller.finish(true);
+                            }
+                        });
+                        anim.start();
+                    }
+
+                    @Override
+                    public void onCancelled(WindowInsetsAnimationController controller) {
+                    }
+
+                    @Override
+                    public void onFinished(WindowInsetsAnimationController controller) {
+                    }
+                }));
     }
 
     @Override
@@ -200,57 +234,6 @@
         getWindow().getDecorView().post(() -> getWindow().setDecorFitsSystemWindows(false));
     }
 
-    @Override
-    public void onAttachedToWindow() {
-        super.onAttachedToWindow();
-        getWindow().getInsetsController().addOnControllableInsetsChangedListener(
-                new OnControllableInsetsChangedListener() {
-
-                    boolean hasControl = false;
-                    @Override
-                    public void onControllableInsetsChanged(WindowInsetsController controller,
-                            int types) {
-                        if ((types & ime()) != 0 && !hasControl) {
-                            hasControl = true;
-                            controller.controlWindowInsetsAnimation(ime(), -1,
-                                    new LinearInterpolator(), null /* cancellationSignal */,
-                                    new WindowInsetsAnimationControlListener() {
-                                        @Override
-                                        public void onReady(
-                                                WindowInsetsAnimationController controller,
-                                                int types) {
-                                            ValueAnimator anim = ValueAnimator.ofFloat(0f, 1f);
-                                            anim.setDuration(1500);
-                                            anim.addUpdateListener(animation
-                                                    -> controller.setInsetsAndAlpha(
-                                                    controller.getShownStateInsets(),
-                                                    (float) animation.getAnimatedValue(),
-                                                    anim.getAnimatedFraction()));
-                                            anim.addListener(new AnimatorListenerAdapter() {
-                                                @Override
-                                                public void onAnimationEnd(Animator animation) {
-                                                    super.onAnimationEnd(animation);
-                                                    controller.finish(true);
-                                                }
-                                            });
-                                            anim.start();
-                                        }
-
-                                        @Override
-                                        public void onFinished(
-                                                WindowInsetsAnimationController controller) {
-                                        }
-
-                                        @Override
-                                        public void onCancelled(
-                                                WindowInsetsAnimationController controller) {
-                                        }
-                                    });
-                        }
-                    }
-                });
-    }
-
     static class Transition {
         private int mEndBottom;
         private int mStartBottom;
diff --git a/tests/net/common/Android.bp b/tests/net/common/Android.bp
index e44d460..46d680f 100644
--- a/tests/net/common/Android.bp
+++ b/tests/net/common/Android.bp
@@ -20,6 +20,7 @@
     name: "FrameworksNetCommonTests",
     srcs: ["java/**/*.java", "java/**/*.kt"],
     static_libs: [
+        "androidx.core_core",
         "androidx.test.rules",
         "junit",
         "mockito-target-minus-junit4",
diff --git a/tests/net/common/java/android/net/LinkPropertiesTest.java b/tests/net/common/java/android/net/LinkPropertiesTest.java
index 48b65e5..2b5720a 100644
--- a/tests/net/common/java/android/net/LinkPropertiesTest.java
+++ b/tests/net/common/java/android/net/LinkPropertiesTest.java
@@ -29,12 +29,19 @@
 
 import android.net.LinkProperties.ProvisioningChange;
 import android.net.util.LinkPropertiesUtils.CompareResult;
+import android.os.Build;
 import android.system.OsConstants;
 import android.util.ArraySet;
 
+import androidx.core.os.BuildCompat;
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
 
+import com.android.testutils.DevSdkIgnoreRule;
+import com.android.testutils.DevSdkIgnoreRule.IgnoreAfter;
+import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo;
+
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -50,6 +57,9 @@
 @RunWith(AndroidJUnit4.class)
 @SmallTest
 public class LinkPropertiesTest {
+    @Rule
+    public final DevSdkIgnoreRule ignoreRule = new DevSdkIgnoreRule();
+
     private static final InetAddress ADDRV4 = address("75.208.6.1");
     private static final InetAddress ADDRV6 = address("2001:0db8:85a3:0000:0000:8a2e:0370:7334");
     private static final InetAddress DNS1 = address("75.208.7.1");
@@ -76,13 +86,23 @@
     private static final LinkAddress LINKADDRV6 = new LinkAddress(ADDRV6, 128);
     private static final LinkAddress LINKADDRV6LINKLOCAL = new LinkAddress("fe80::1/64");
     private static final Uri CAPPORT_API_URL = Uri.parse("https://test.example.com/capportapi");
-    private static final CaptivePortalData CAPPORT_DATA = new CaptivePortalData.Builder()
-            .setVenueInfoUrl(Uri.parse("https://test.example.com/venue")).build();
+
+    // CaptivePortalData cannot be in a constant as it does not exist on Q.
+    // The test runner also crashes when scanning for tests if it is a return type.
+    private static Object getCaptivePortalData() {
+        return new CaptivePortalData.Builder()
+                .setVenueInfoUrl(Uri.parse("https://test.example.com/venue")).build();
+    }
 
     private static InetAddress address(String addrString) {
         return InetAddresses.parseNumericAddress(addrString);
     }
 
+    private static boolean isAtLeastR() {
+        // BuildCompat.isAtLeastR is documented to return false on release SDKs (including R)
+        return Build.VERSION.SDK_INT > Build.VERSION_CODES.Q || BuildCompat.isAtLeastR();
+    }
+
     private void checkEmpty(final LinkProperties lp) {
         assertEquals(0, lp.getAllInterfaceNames().size());
         assertEquals(0, lp.getAllAddresses().size());
@@ -98,14 +118,17 @@
         assertNull(lp.getHttpProxy());
         assertNull(lp.getTcpBufferSizes());
         assertNull(lp.getNat64Prefix());
-        assertNull(lp.getDhcpServerAddress());
         assertFalse(lp.isProvisioned());
         assertFalse(lp.isIpv4Provisioned());
         assertFalse(lp.isIpv6Provisioned());
         assertFalse(lp.isPrivateDnsActive());
-        assertFalse(lp.isWakeOnLanSupported());
-        assertNull(lp.getCaptivePortalApiUrl());
-        assertNull(lp.getCaptivePortalData());
+
+        if (isAtLeastR()) {
+            assertNull(lp.getDhcpServerAddress());
+            assertFalse(lp.isWakeOnLanSupported());
+            assertNull(lp.getCaptivePortalApiUrl());
+            assertNull(lp.getCaptivePortalData());
+        }
     }
 
     private LinkProperties makeTestObject() {
@@ -127,10 +150,12 @@
         lp.setMtu(MTU);
         lp.setTcpBufferSizes(TCP_BUFFER_SIZES);
         lp.setNat64Prefix(new IpPrefix("2001:db8:0:64::/96"));
-        lp.setDhcpServerAddress(DHCPSERVER);
-        lp.setWakeOnLanSupported(true);
-        lp.setCaptivePortalApiUrl(CAPPORT_API_URL);
-        lp.setCaptivePortalData(CAPPORT_DATA);
+        if (isAtLeastR()) {
+            lp.setDhcpServerAddress(DHCPSERVER);
+            lp.setWakeOnLanSupported(true);
+            lp.setCaptivePortalApiUrl(CAPPORT_API_URL);
+            lp.setCaptivePortalData((CaptivePortalData) getCaptivePortalData());
+        }
         return lp;
     }
 
@@ -169,14 +194,19 @@
         assertTrue(source.isIdenticalTcpBufferSizes(target));
         assertTrue(target.isIdenticalTcpBufferSizes(source));
 
-        assertTrue(source.isIdenticalWakeOnLan(target));
-        assertTrue(target.isIdenticalWakeOnLan(source));
+        if (isAtLeastR()) {
+            assertTrue(source.isIdenticalDhcpServerAddress(target));
+            assertTrue(source.isIdenticalDhcpServerAddress(source));
 
-        assertTrue(source.isIdenticalCaptivePortalApiUrl(target));
-        assertTrue(target.isIdenticalCaptivePortalApiUrl(source));
+            assertTrue(source.isIdenticalWakeOnLan(target));
+            assertTrue(target.isIdenticalWakeOnLan(source));
 
-        assertTrue(source.isIdenticalCaptivePortalData(target));
-        assertTrue(target.isIdenticalCaptivePortalData(source));
+            assertTrue(source.isIdenticalCaptivePortalApiUrl(target));
+            assertTrue(target.isIdenticalCaptivePortalApiUrl(source));
+
+            assertTrue(source.isIdenticalCaptivePortalData(target));
+            assertTrue(target.isIdenticalCaptivePortalData(source));
+        }
 
         // Check result of equals().
         assertTrue(source.equals(target));
@@ -943,8 +973,7 @@
         assertEquals(new ArraySet<>(expectRemoved), (new ArraySet<>(result.removed)));
     }
 
-    @Test
-    public void testLinkPropertiesParcelable() throws Exception {
+    private static LinkProperties makeLinkPropertiesForParceling() {
         LinkProperties source = new LinkProperties();
         source.setInterfaceName(NAME);
 
@@ -978,17 +1007,29 @@
 
         source.setNat64Prefix(new IpPrefix("2001:db8:1:2:64:64::/96"));
 
-        source.setWakeOnLanSupported(true);
-        source.setCaptivePortalApiUrl(CAPPORT_API_URL);
-        source.setCaptivePortalData(CAPPORT_DATA);
-
-        source.setDhcpServerAddress((Inet4Address) GATEWAY1);
-
         final LinkProperties stacked = new LinkProperties();
         stacked.setInterfaceName("test-stacked");
         source.addStackedLink(stacked);
 
-        assertParcelSane(source.makeSensitiveFieldsParcelingCopy(), 18 /* fieldCount */);
+        return source;
+    }
+
+    @Test @IgnoreAfter(Build.VERSION_CODES.Q)
+    public void testLinkPropertiesParcelable_Q() throws Exception {
+        final LinkProperties source = makeLinkPropertiesForParceling();
+        assertParcelSane(source, 14 /* fieldCount */);
+    }
+
+    @Test @IgnoreUpTo(Build.VERSION_CODES.Q)
+    public void testLinkPropertiesParcelable() throws Exception {
+        final LinkProperties source = makeLinkPropertiesForParceling();
+
+        source.setWakeOnLanSupported(true);
+        source.setCaptivePortalApiUrl(CAPPORT_API_URL);
+        source.setCaptivePortalData((CaptivePortalData) getCaptivePortalData());
+        source.setDhcpServerAddress((Inet4Address) GATEWAY1);
+        assertParcelSane(new LinkProperties(source, true /* parcelSensitiveFields */),
+                18 /* fieldCount */);
 
         // Verify that without using a sensitiveFieldsParcelingCopy, sensitive fields are cleared.
         final LinkProperties sanitized = new LinkProperties(source);
@@ -997,7 +1038,8 @@
         assertEquals(sanitized, parcelingRoundTrip(source));
     }
 
-    @Test
+    // Parceling of the scope was broken until Q-QPR2
+    @Test @IgnoreUpTo(Build.VERSION_CODES.Q)
     public void testLinkLocalDnsServerParceling() throws Exception {
         final String strAddress = "fe80::1%lo";
         final LinkProperties lp = new LinkProperties();
@@ -1120,7 +1162,7 @@
         assertFalse(lp.isPrivateDnsActive());
     }
 
-    @Test
+    @Test @IgnoreUpTo(Build.VERSION_CODES.Q)
     public void testDhcpServerAddress() {
         final LinkProperties lp = makeTestObject();
         assertEquals(DHCPSERVER, lp.getDhcpServerAddress());
@@ -1129,7 +1171,7 @@
         assertNull(lp.getDhcpServerAddress());
     }
 
-    @Test
+    @Test @IgnoreUpTo(Build.VERSION_CODES.Q)
     public void testWakeOnLanSupported() {
         final LinkProperties lp = makeTestObject();
         assertTrue(lp.isWakeOnLanSupported());
@@ -1138,7 +1180,7 @@
         assertFalse(lp.isWakeOnLanSupported());
     }
 
-    @Test
+    @Test @IgnoreUpTo(Build.VERSION_CODES.Q)
     public void testCaptivePortalApiUrl() {
         final LinkProperties lp = makeTestObject();
         assertEquals(CAPPORT_API_URL, lp.getCaptivePortalApiUrl());
@@ -1147,10 +1189,10 @@
         assertNull(lp.getCaptivePortalApiUrl());
     }
 
-    @Test
+    @Test @IgnoreUpTo(Build.VERSION_CODES.Q)
     public void testCaptivePortalData() {
         final LinkProperties lp = makeTestObject();
-        assertEquals(CAPPORT_DATA, lp.getCaptivePortalData());
+        assertEquals(getCaptivePortalData(), lp.getCaptivePortalData());
 
         lp.clear();
         assertNull(lp.getCaptivePortalData());
diff --git a/tests/net/common/java/android/net/NetworkCapabilitiesTest.java b/tests/net/common/java/android/net/NetworkCapabilitiesTest.java
index efea91a..916c339 100644
--- a/tests/net/common/java/android/net/NetworkCapabilitiesTest.java
+++ b/tests/net/common/java/android/net/NetworkCapabilitiesTest.java
@@ -48,9 +48,11 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import android.os.Build;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.ArraySet;
 
+import androidx.core.os.BuildCompat;
 import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
@@ -64,6 +66,13 @@
     private static final String TEST_SSID = "TEST_SSID";
     private static final String DIFFERENT_TEST_SSID = "DIFFERENT_TEST_SSID";
 
+    private boolean isAtLeastR() {
+        // BuildCompat.isAtLeastR() is used to check the Android version before releasing Android R.
+        // Build.VERSION.SDK_INT > Build.VERSION_CODES.Q is used to check the Android version after
+        // releasing Android R.
+        return BuildCompat.isAtLeastR() || Build.VERSION.SDK_INT > Build.VERSION_CODES.Q;
+    }
+
     @Test
     public void testMaybeMarkCapabilitiesRestricted() {
         // verify EIMS is restricted
@@ -269,25 +278,36 @@
             .setUids(uids)
             .addCapability(NET_CAPABILITY_EIMS)
             .addCapability(NET_CAPABILITY_NOT_METERED);
-        netCap.setOwnerUid(123);
+        if (isAtLeastR()) {
+            netCap.setOwnerUid(123);
+        }
         assertParcelingIsLossless(netCap);
         netCap.setSSID(TEST_SSID);
-        assertParcelSane(netCap, 15);
+        testParcelSane(netCap);
     }
 
     @Test
     public void testParcelNetworkCapabilitiesWithRequestorUidAndPackageName() {
         final NetworkCapabilities netCap = new NetworkCapabilities()
                 .addCapability(NET_CAPABILITY_INTERNET)
-                .setRequestorUid(9304)
-                .setRequestorPackageName("com.android.test")
                 .addCapability(NET_CAPABILITY_EIMS)
                 .addCapability(NET_CAPABILITY_NOT_METERED);
+        if (isAtLeastR()) {
+            netCap.setRequestorPackageName("com.android.test");
+            netCap.setRequestorUid(9304);
+        }
         assertParcelingIsLossless(netCap);
         netCap.setSSID(TEST_SSID);
-        assertParcelSane(netCap, 15);
+        testParcelSane(netCap);
     }
 
+    private void testParcelSane(NetworkCapabilities cap) {
+        if (isAtLeastR()) {
+            assertParcelSane(cap, 15);
+        } else {
+            assertParcelSane(cap, 11);
+        }
+    }
 
     @Test
     public void testOemPaid() {
@@ -443,7 +463,9 @@
 
         nc1.setSSID(TEST_SSID);
         nc2.combineCapabilities(nc1);
-        assertTrue(TEST_SSID.equals(nc2.getSSID()));
+        if (isAtLeastR()) {
+            assertTrue(TEST_SSID.equals(nc2.getSsid()));
+        }
 
         // Because they now have the same SSID, the following call should not throw
         nc2.combineCapabilities(nc1);
@@ -581,12 +603,16 @@
         // from nc2.
         assertFalse(nc2.hasCapability(NET_CAPABILITY_NOT_ROAMING));
         assertTrue(nc2.hasUnwantedCapability(NET_CAPABILITY_NOT_ROAMING));
-        assertTrue(TEST_SSID.equals(nc2.getSSID()));
+        if (isAtLeastR()) {
+            assertTrue(TEST_SSID.equals(nc2.getSsid()));
+        }
 
         nc1.setSSID(DIFFERENT_TEST_SSID);
         nc2.set(nc1);
         assertEquals(nc1, nc2);
-        assertTrue(DIFFERENT_TEST_SSID.equals(nc2.getSSID()));
+        if (isAtLeastR()) {
+            assertTrue(DIFFERENT_TEST_SSID.equals(nc2.getSsid()));
+        }
 
         nc1.setUids(uidRange(10, 13));
         nc2.set(nc1);  // Overwrites, as opposed to combineCapabilities
diff --git a/tests/net/java/android/net/NetworkTemplateTest.kt b/tests/net/java/android/net/NetworkTemplateTest.kt
new file mode 100644
index 0000000..5dd0fda
--- /dev/null
+++ b/tests/net/java/android/net/NetworkTemplateTest.kt
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.net
+
+import android.content.Context
+import android.net.ConnectivityManager.TYPE_MOBILE
+import android.net.ConnectivityManager.TYPE_WIFI
+import android.net.NetworkIdentity.SUBTYPE_COMBINED
+import android.net.NetworkIdentity.buildNetworkIdentity
+import android.net.NetworkStats.DEFAULT_NETWORK_ALL
+import android.net.NetworkStats.METERED_ALL
+import android.net.NetworkStats.ROAMING_ALL
+import android.net.NetworkTemplate.MATCH_MOBILE
+import android.net.NetworkTemplate.MATCH_WIFI
+import android.net.NetworkTemplate.NETWORK_TYPE_ALL
+import android.net.NetworkTemplate.buildTemplateMobileWithRatType
+import android.telephony.TelephonyManager
+import com.android.testutils.assertParcelSane
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+import org.mockito.Mockito.doReturn
+import org.mockito.Mockito.mock
+import org.mockito.MockitoAnnotations
+import kotlin.test.assertFalse
+import kotlin.test.assertNotEquals
+import kotlin.test.assertTrue
+
+private const val TEST_IMSI1 = "imsi1"
+private const val TEST_IMSI2 = "imsi2"
+private const val TEST_SSID1 = "ssid1"
+
+@RunWith(JUnit4::class)
+class NetworkTemplateTest {
+    private val mockContext = mock(Context::class.java)
+
+    private fun buildMobileNetworkState(subscriberId: String): NetworkState =
+            buildNetworkState(TYPE_MOBILE, subscriberId = subscriberId)
+    private fun buildWifiNetworkState(ssid: String): NetworkState =
+            buildNetworkState(TYPE_WIFI, ssid = ssid)
+
+    private fun buildNetworkState(
+        type: Int,
+        subscriberId: String? = null,
+        ssid: String? = null
+    ): NetworkState {
+        val info = mock(NetworkInfo::class.java)
+        doReturn(type).`when`(info).type
+        doReturn(NetworkInfo.State.CONNECTED).`when`(info).state
+        val lp = LinkProperties()
+        val caps = NetworkCapabilities().apply {
+            setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED, false)
+            setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING, true)
+        }
+        return NetworkState(info, lp, caps, mock(Network::class.java), subscriberId, ssid)
+    }
+
+    private fun NetworkTemplate.assertMatches(ident: NetworkIdentity) =
+            assertTrue(matches(ident), "$this does not match $ident")
+
+    private fun NetworkTemplate.assertDoesNotMatch(ident: NetworkIdentity) =
+            assertFalse(matches(ident), "$this should match $ident")
+
+    @Before
+    fun setup() {
+        MockitoAnnotations.initMocks(this)
+    }
+
+    @Test
+    fun testRatTypeGroupMatches() {
+        val stateMobile = buildMobileNetworkState(TEST_IMSI1)
+        // Build UMTS template that matches mobile identities with RAT in the same
+        // group with any IMSI. See {@link NetworkTemplate#getCollapsedRatType}.
+        val templateUmts = buildTemplateMobileWithRatType(null, TelephonyManager.NETWORK_TYPE_UMTS)
+        // Build normal template that matches mobile identities with any RAT and IMSI.
+        val templateAll = buildTemplateMobileWithRatType(null, NETWORK_TYPE_ALL)
+        // Build template with UNKNOWN RAT that matches mobile identities with RAT that
+        // cannot be determined.
+        val templateUnknown =
+                buildTemplateMobileWithRatType(null, TelephonyManager.NETWORK_TYPE_UNKNOWN)
+
+        val identUmts = buildNetworkIdentity(
+                mockContext, stateMobile, false, TelephonyManager.NETWORK_TYPE_UMTS)
+        val identHsdpa = buildNetworkIdentity(
+                mockContext, stateMobile, false, TelephonyManager.NETWORK_TYPE_HSDPA)
+        val identLte = buildNetworkIdentity(
+                mockContext, stateMobile, false, TelephonyManager.NETWORK_TYPE_LTE)
+        val identCombined = buildNetworkIdentity(
+                mockContext, stateMobile, false, SUBTYPE_COMBINED)
+        val identImsi2 = buildNetworkIdentity(mockContext, buildMobileNetworkState(TEST_IMSI2),
+                false, TelephonyManager.NETWORK_TYPE_UMTS)
+        val identWifi = buildNetworkIdentity(
+                mockContext, buildWifiNetworkState(TEST_SSID1), true, 0)
+
+        // Assert that identity with the same RAT matches.
+        templateUmts.assertMatches(identUmts)
+        templateAll.assertMatches(identUmts)
+        templateUnknown.assertDoesNotMatch(identUmts)
+        // Assert that identity with the RAT within the same group matches.
+        templateUmts.assertMatches(identHsdpa)
+        templateAll.assertMatches(identHsdpa)
+        templateUnknown.assertDoesNotMatch(identHsdpa)
+        // Assert that identity with the RAT out of the same group only matches template with
+        // NETWORK_TYPE_ALL.
+        templateUmts.assertDoesNotMatch(identLte)
+        templateAll.assertMatches(identLte)
+        templateUnknown.assertDoesNotMatch(identLte)
+        // Assert that identity with combined RAT only matches with template with NETWORK_TYPE_ALL
+        // and NETWORK_TYPE_UNKNOWN.
+        templateUmts.assertDoesNotMatch(identCombined)
+        templateAll.assertMatches(identCombined)
+        templateUnknown.assertMatches(identCombined)
+        // Assert that identity with different IMSI matches.
+        templateUmts.assertMatches(identImsi2)
+        templateAll.assertMatches(identImsi2)
+        templateUnknown.assertDoesNotMatch(identImsi2)
+        // Assert that wifi identity does not match.
+        templateUmts.assertDoesNotMatch(identWifi)
+        templateAll.assertDoesNotMatch(identWifi)
+        templateUnknown.assertDoesNotMatch(identWifi)
+    }
+
+    @Test
+    fun testParcelUnparcel() {
+        val templateMobile = NetworkTemplate(MATCH_MOBILE, TEST_IMSI1, null, null, METERED_ALL,
+                ROAMING_ALL, DEFAULT_NETWORK_ALL, TelephonyManager.NETWORK_TYPE_LTE)
+        val templateWifi = NetworkTemplate(MATCH_WIFI, null, null, TEST_SSID1, METERED_ALL,
+                ROAMING_ALL, DEFAULT_NETWORK_ALL, 0)
+        assertParcelSane(templateMobile, 8)
+        assertParcelSane(templateWifi, 8)
+    }
+
+    // Verify NETWORK_TYPE_ALL does not conflict with TelephonyManager#NETWORK_TYPE_* constants.
+    @Test
+    fun testNetworkTypeAll() {
+        for (ratType in TelephonyManager.getAllNetworkTypes()) {
+            assertNotEquals(NETWORK_TYPE_ALL, ratType)
+        }
+    }
+}
diff --git a/tests/net/java/android/net/TcpKeepalivePacketDataTest.java b/tests/net/java/android/net/TcpKeepalivePacketDataTest.java
index e632aaf..cea8c57 100644
--- a/tests/net/java/android/net/TcpKeepalivePacketDataTest.java
+++ b/tests/net/java/android/net/TcpKeepalivePacketDataTest.java
@@ -66,10 +66,10 @@
             fail("InvalidPacketException: " + e);
         }
 
-        assertEquals(InetAddress.getByAddress(testInfo.srcAddress), resultData.srcAddress);
-        assertEquals(InetAddress.getByAddress(testInfo.dstAddress), resultData.dstAddress);
-        assertEquals(testInfo.srcPort, resultData.srcPort);
-        assertEquals(testInfo.dstPort, resultData.dstPort);
+        assertEquals(InetAddress.getByAddress(testInfo.srcAddress), resultData.getSrcAddress());
+        assertEquals(InetAddress.getByAddress(testInfo.dstAddress), resultData.getDstAddress());
+        assertEquals(testInfo.srcPort, resultData.getSrcPort());
+        assertEquals(testInfo.dstPort, resultData.getDstPort());
         assertEquals(testInfo.seq, resultData.tcpSeq);
         assertEquals(testInfo.ack, resultData.tcpAck);
         assertEquals(testInfo.rcvWnd, resultData.tcpWnd);
diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java
index c8f9375..e093c57 100644
--- a/tests/net/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java
@@ -25,7 +25,6 @@
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 import static android.net.ConnectivityManager.ACTION_CAPTIVE_PORTAL_SIGN_IN;
 import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
-import static android.net.ConnectivityManager.CONNECTIVITY_ACTION_SUPL;
 import static android.net.ConnectivityManager.EXTRA_NETWORK_INFO;
 import static android.net.ConnectivityManager.EXTRA_NETWORK_TYPE;
 import static android.net.ConnectivityManager.NETID_UNSET;
@@ -175,6 +174,7 @@
 import android.net.ProxyInfo;
 import android.net.ResolverParamsParcel;
 import android.net.RouteInfo;
+import android.net.RouteInfoParcel;
 import android.net.SocketKeepalive;
 import android.net.UidRange;
 import android.net.Uri;
@@ -307,6 +307,8 @@
 
     private static final long TIMESTAMP = 1234L;
 
+    private static final int NET_ID = 110;
+
     private static final String CLAT_PREFIX = "v4-";
     private static final String MOBILE_IFNAME = "test_rmnet_data0";
     private static final String WIFI_IFNAME = "test_wlan0";
@@ -427,7 +429,6 @@
         public Object getSystemService(String name) {
             if (Context.CONNECTIVITY_SERVICE.equals(name)) return mCm;
             if (Context.NOTIFICATION_SERVICE.equals(name)) return mNotificationManager;
-            if (Context.NETWORK_STACK_SERVICE.equals(name)) return mNetworkStack;
             if (Context.USER_SERVICE.equals(name)) return mUserManager;
             if (Context.ALARM_SERVICE.equals(name)) return mAlarmManager;
             if (Context.LOCATION_SERVICE.equals(name)) return mLocationManager;
@@ -1016,6 +1017,7 @@
         private int mVpnType = VpnManager.TYPE_VPN_SERVICE;
 
         private VpnInfo mVpnInfo;
+        private Network[] mUnderlyingNetworks;
 
         public MockVpn(int userId) {
             super(startHandlerThreadAndReturnLooper(), mServiceContext, mNetworkManagementService,
@@ -1105,9 +1107,21 @@
             return super.getVpnInfo();
         }
 
-        private void setVpnInfo(VpnInfo vpnInfo) {
+        private synchronized void setVpnInfo(VpnInfo vpnInfo) {
             mVpnInfo = vpnInfo;
         }
+
+        @Override
+        public synchronized Network[] getUnderlyingNetworks() {
+            if (mUnderlyingNetworks != null) return mUnderlyingNetworks;
+
+            return super.getUnderlyingNetworks();
+        }
+
+        /** Don't override behavior for {@link Vpn#setUnderlyingNetworks}. */
+        private synchronized void overrideUnderlyingNetworks(Network[] underlyingNetworks) {
+            mUnderlyingNetworks = underlyingNetworks;
+        }
     }
 
     private void mockVpn(int uid) {
@@ -1374,7 +1388,6 @@
             @NonNull final Predicate<Intent> filter) {
         final ConditionVariable cv = new ConditionVariable();
         final IntentFilter intentFilter = new IntentFilter(CONNECTIVITY_ACTION);
-        intentFilter.addAction(CONNECTIVITY_ACTION_SUPL);
         final BroadcastReceiver receiver = new BroadcastReceiver() {
                     private int remaining = count;
                     public void onReceive(Context context, Intent intent) {
@@ -1422,56 +1435,28 @@
         final NetworkRequest legacyRequest = new NetworkRequest(legacyCaps, TYPE_MOBILE_SUPL,
                 ConnectivityManager.REQUEST_ID_UNSET, NetworkRequest.Type.REQUEST);
 
-        // Send request and check that the legacy broadcast for SUPL is sent correctly.
+        // File request, withdraw it and make sure no broadcast is sent
+        final ConditionVariable cv2 = registerConnectivityBroadcast(1);
         final TestNetworkCallback callback = new TestNetworkCallback();
-        final ConditionVariable cv2 = registerConnectivityBroadcastThat(1,
-                intent -> intent.getIntExtra(EXTRA_NETWORK_TYPE, -1) == TYPE_MOBILE_SUPL);
         mCm.requestNetwork(legacyRequest, callback);
         callback.expectCallback(CallbackEntry.AVAILABLE, mCellNetworkAgent);
-        waitFor(cv2);
-
-        // File another request, withdraw it and make sure no broadcast is sent
-        final ConditionVariable cv3 = registerConnectivityBroadcast(1);
-        final TestNetworkCallback callback2 = new TestNetworkCallback();
-        mCm.requestNetwork(legacyRequest, callback2);
-        callback2.expectCallback(CallbackEntry.AVAILABLE, mCellNetworkAgent);
-        mCm.unregisterNetworkCallback(callback2);
-        assertFalse(cv3.block(800)); // 800ms long enough to at least flake if this is sent
+        mCm.unregisterNetworkCallback(callback);
+        assertFalse(cv2.block(800)); // 800ms long enough to at least flake if this is sent
         // As the broadcast did not fire, the receiver was not unregistered. Do this now.
         mServiceContext.clearRegisteredReceivers();
 
-        // Withdraw the request and check that the broadcast for disconnection is sent.
-        final ConditionVariable cv4 = registerConnectivityBroadcastThat(1, intent ->
-                !((NetworkInfo) intent.getExtra(EXTRA_NETWORK_INFO, -1)).isConnected()
-                        && intent.getIntExtra(EXTRA_NETWORK_TYPE, -1) == TYPE_MOBILE_SUPL);
-        mCm.unregisterNetworkCallback(callback);
-        waitFor(cv4);
-
-        // Re-file the request and expect the connected broadcast again
-        final ConditionVariable cv5 = registerConnectivityBroadcastThat(1,
-                intent -> intent.getIntExtra(EXTRA_NETWORK_TYPE, -1) == TYPE_MOBILE_SUPL);
-        final TestNetworkCallback callback3 = new TestNetworkCallback();
-        mCm.requestNetwork(legacyRequest, callback3);
-        callback3.expectCallback(CallbackEntry.AVAILABLE, mCellNetworkAgent);
-        waitFor(cv5);
-
-        // Disconnect the network and expect two disconnected broadcasts, one for SUPL and one
-        // for mobile. Use a small hack to check that both have been sent, but the order is
-        // not contractual.
+        // Disconnect the network and expect mobile disconnected broadcast. Use a small hack to
+        // check that has been sent.
         final AtomicBoolean vanillaAction = new AtomicBoolean(false);
-        final AtomicBoolean suplAction = new AtomicBoolean(false);
-        final ConditionVariable cv6 = registerConnectivityBroadcastThat(2, intent -> {
+        final ConditionVariable cv3 = registerConnectivityBroadcastThat(1, intent -> {
             if (intent.getAction().equals(CONNECTIVITY_ACTION)) {
                 vanillaAction.set(true);
-            } else if (intent.getAction().equals(CONNECTIVITY_ACTION_SUPL)) {
-                suplAction.set(true);
             }
             return !((NetworkInfo) intent.getExtra(EXTRA_NETWORK_INFO, -1)).isConnected();
         });
         mCellNetworkAgent.disconnect();
-        waitFor(cv6);
+        waitFor(cv3);
         assertTrue(vanillaAction.get());
-        assertTrue(suplAction.get());
     }
 
     @Test
@@ -2926,7 +2911,7 @@
         class ConfidentialMatchAllNetworkSpecifier extends NetworkSpecifier implements
                 Parcelable {
             @Override
-            public boolean satisfiedBy(NetworkSpecifier other) {
+            public boolean canBeSatisfiedBy(NetworkSpecifier other) {
                 return true;
             }
 
@@ -2954,7 +2939,7 @@
             }
 
             @Override
-            public boolean satisfiedBy(NetworkSpecifier other) {
+            public boolean canBeSatisfiedBy(NetworkSpecifier other) {
                 if (other instanceof LocalStringNetworkSpecifier) {
                     return TextUtils.equals(mString,
                             ((LocalStringNetworkSpecifier) other).mString);
@@ -3075,7 +3060,10 @@
         });
 
         class NonParcelableSpecifier extends NetworkSpecifier {
-            public boolean satisfiedBy(NetworkSpecifier other) { return false; }
+            @Override
+            public boolean canBeSatisfiedBy(NetworkSpecifier other) {
+                return false;
+            }
         };
         class ParcelableSpecifier extends NonParcelableSpecifier implements Parcelable {
             @Override public int describeContents() { return 0; }
@@ -6064,6 +6052,7 @@
             verify(mBatteryStatsService).noteNetworkInterfaceType(stackedLp.getInterfaceName(),
                     TYPE_MOBILE);
         }
+        reset(mMockNetd);
 
         // Add ipv4 address, expect that clatd and prefix discovery are stopped and stacked
         // linkproperties are cleaned up.
@@ -6115,7 +6104,6 @@
         networkCallback.expectCallback(CallbackEntry.LINK_PROPERTIES_CHANGED, mCellNetworkAgent);
         verify(mMockNetd, times(1)).clatdStart(MOBILE_IFNAME, kNat64Prefix.toString());
 
-
         // Clat iface comes up. Expect stacked link to be added.
         clat.interfaceLinkStateChanged(CLAT_PREFIX + MOBILE_IFNAME, true);
         networkCallback.expectLinkPropertiesThat(mCellNetworkAgent,
@@ -6701,17 +6689,45 @@
         }
     }
 
+    private void assertRouteInfoParcelMatches(RouteInfo route, RouteInfoParcel parcel) {
+        assertEquals(route.getDestination().toString(), parcel.destination);
+        assertEquals(route.getInterface(), parcel.ifName);
+        assertEquals(route.getMtu(), parcel.mtu);
+
+        switch (route.getType()) {
+            case RouteInfo.RTN_UNICAST:
+                if (route.hasGateway()) {
+                    assertEquals(route.getGateway().getHostAddress(), parcel.nextHop);
+                } else {
+                    assertEquals(INetd.NEXTHOP_NONE, parcel.nextHop);
+                }
+                break;
+            case RouteInfo.RTN_UNREACHABLE:
+                assertEquals(INetd.NEXTHOP_UNREACHABLE, parcel.nextHop);
+                break;
+            case RouteInfo.RTN_THROW:
+                assertEquals(INetd.NEXTHOP_THROW, parcel.nextHop);
+                break;
+            default:
+                assertEquals(INetd.NEXTHOP_NONE, parcel.nextHop);
+                break;
+        }
+    }
+
     private void assertRoutesAdded(int netId, RouteInfo... routes) throws Exception {
-        InOrder inOrder = inOrder(mNetworkManagementService);
+        ArgumentCaptor<RouteInfoParcel> captor = ArgumentCaptor.forClass(RouteInfoParcel.class);
+        verify(mMockNetd, times(routes.length)).networkAddRouteParcel(eq(netId), captor.capture());
         for (int i = 0; i < routes.length; i++) {
-            inOrder.verify(mNetworkManagementService).addRoute(eq(netId), eq(routes[i]));
+            assertRouteInfoParcelMatches(routes[i], captor.getAllValues().get(i));
         }
     }
 
     private void assertRoutesRemoved(int netId, RouteInfo... routes) throws Exception {
-        InOrder inOrder = inOrder(mNetworkManagementService);
+        ArgumentCaptor<RouteInfoParcel> captor = ArgumentCaptor.forClass(RouteInfoParcel.class);
+        verify(mMockNetd, times(routes.length)).networkRemoveRouteParcel(eq(netId),
+                captor.capture());
         for (int i = 0; i < routes.length; i++) {
-            inOrder.verify(mNetworkManagementService).removeRoute(eq(netId), eq(routes[i]));
+            assertRouteInfoParcelMatches(routes[i], captor.getAllValues().get(i));
         }
     }
 
@@ -6797,15 +6813,11 @@
 
         mServiceContext.setPermission(android.Manifest.permission.NETWORK_STACK, PERMISSION_DENIED);
 
-        try {
-            assertFalse(
-                    "Mismatched uid/package name should not pass the location permission check",
-                    mService.checkConnectivityDiagnosticsPermissions(
-                            Process.myPid() + 1, Process.myUid() + 1, naiWithoutUid,
-                            mContext.getOpPackageName()));
-        } catch (SecurityException e) {
-            fail("checkConnectivityDiagnosticsPermissions shouldn't surface a SecurityException");
-        }
+        assertFalse(
+                "Mismatched uid/package name should not pass the location permission check",
+                mService.checkConnectivityDiagnosticsPermissions(
+                        Process.myPid() + 1, Process.myUid() + 1, naiWithoutUid,
+                        mContext.getOpPackageName()));
     }
 
     @Test
@@ -6826,9 +6838,10 @@
 
     @Test
     public void testCheckConnectivityDiagnosticsPermissionsActiveVpn() throws Exception {
+        final Network network = new Network(NET_ID);
         final NetworkAgentInfo naiWithoutUid =
                 new NetworkAgentInfo(
-                        null, null, null, null, null, new NetworkCapabilities(), 0,
+                        null, null, network, null, null, new NetworkCapabilities(), 0,
                         mServiceContext, null, null, mService, null, null, null, 0);
 
         setupLocationPermissions(Build.VERSION_CODES.Q, true, AppOpsManager.OPSTR_FINE_LOCATION,
@@ -6841,11 +6854,19 @@
         info.ownerUid = Process.myUid();
         info.vpnIface = "interface";
         mMockVpn.setVpnInfo(info);
+        mMockVpn.overrideUnderlyingNetworks(new Network[] {network});
         assertTrue(
                 "Active VPN permission not applied",
                 mService.checkConnectivityDiagnosticsPermissions(
                         Process.myPid(), Process.myUid(), naiWithoutUid,
                         mContext.getOpPackageName()));
+
+        mMockVpn.overrideUnderlyingNetworks(null);
+        assertFalse(
+                "VPN shouldn't receive callback on non-underlying network",
+                mService.checkConnectivityDiagnosticsPermissions(
+                        Process.myPid(), Process.myUid(), naiWithoutUid,
+                        mContext.getOpPackageName()));
     }
 
     @Test
@@ -6977,4 +6998,60 @@
         verify(mConnectivityDiagnosticsCallback)
                 .onNetworkConnectivityReported(eq(n), eq(noConnectivity));
     }
+
+    @Test
+    public void testRouteAddDeleteUpdate() throws Exception {
+        final NetworkRequest request = new NetworkRequest.Builder().build();
+        final TestNetworkCallback networkCallback = new TestNetworkCallback();
+        mCm.registerNetworkCallback(request, networkCallback);
+        mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
+        reset(mMockNetd);
+        mCellNetworkAgent.connect(false);
+        networkCallback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
+        final int netId = mCellNetworkAgent.getNetwork().netId;
+
+        final String iface = "rmnet_data0";
+        final InetAddress gateway = InetAddress.getByName("fe80::5678");
+        RouteInfo direct = RouteInfo.makeHostRoute(gateway, iface);
+        RouteInfo rio1 = new RouteInfo(new IpPrefix("2001:db8:1::/48"), gateway, iface);
+        RouteInfo rio2 = new RouteInfo(new IpPrefix("2001:db8:2::/48"), gateway, iface);
+        RouteInfo defaultRoute = new RouteInfo((IpPrefix) null, gateway, iface);
+        RouteInfo defaultWithMtu = new RouteInfo(null, gateway, iface, RouteInfo.RTN_UNICAST,
+                                                 1280 /* mtu */);
+
+        // Send LinkProperties and check that we ask netd to add routes.
+        LinkProperties lp = new LinkProperties();
+        lp.setInterfaceName(iface);
+        lp.addRoute(direct);
+        lp.addRoute(rio1);
+        lp.addRoute(defaultRoute);
+        mCellNetworkAgent.sendLinkProperties(lp);
+        networkCallback.expectLinkPropertiesThat(mCellNetworkAgent, x -> x.getRoutes().size() == 3);
+
+        assertRoutesAdded(netId, direct, rio1, defaultRoute);
+        reset(mMockNetd);
+
+        // Send updated LinkProperties and check that we ask netd to add, remove, update routes.
+        assertTrue(lp.getRoutes().contains(defaultRoute));
+        lp.removeRoute(rio1);
+        lp.addRoute(rio2);
+        lp.addRoute(defaultWithMtu);
+        // Ensure adding the same route with a different MTU replaces the previous route.
+        assertFalse(lp.getRoutes().contains(defaultRoute));
+        assertTrue(lp.getRoutes().contains(defaultWithMtu));
+
+        mCellNetworkAgent.sendLinkProperties(lp);
+        networkCallback.expectLinkPropertiesThat(mCellNetworkAgent,
+                x -> x.getRoutes().contains(rio2));
+
+        assertRoutesRemoved(netId, rio1);
+        assertRoutesAdded(netId, rio2);
+
+        ArgumentCaptor<RouteInfoParcel> captor = ArgumentCaptor.forClass(RouteInfoParcel.class);
+        verify(mMockNetd).networkUpdateRouteParcel(eq(netId), captor.capture());
+        assertRouteInfoParcelMatches(defaultWithMtu, captor.getValue());
+
+
+        mCm.unregisterNetworkCallback(networkCallback);
+    }
 }
diff --git a/tests/net/java/com/android/server/net/NetworkStatsCollectionTest.java b/tests/net/java/com/android/server/net/NetworkStatsCollectionTest.java
index 8f90f13..551498f 100644
--- a/tests/net/java/com/android/server/net/NetworkStatsCollectionTest.java
+++ b/tests/net/java/com/android/server/net/NetworkStatsCollectionTest.java
@@ -319,33 +319,33 @@
             assertEntry(18322, 75, 15031, 75, history.getValues(i++, null));
             assertEntry(527798, 761, 78570, 652, history.getValues(i++, null));
             assertEntry(527797, 760, 78570, 651, history.getValues(i++, null));
-            assertEntry(10747, 50, 16838, 55, history.getValues(i++, null));
-            assertEntry(10747, 49, 16838, 54, history.getValues(i++, null));
+            assertEntry(10747, 50, 16839, 55, history.getValues(i++, null));
+            assertEntry(10747, 49, 16837, 54, history.getValues(i++, null));
             assertEntry(89191, 151, 18021, 140, history.getValues(i++, null));
             assertEntry(89190, 150, 18020, 139, history.getValues(i++, null));
-            assertEntry(3821, 22, 4525, 26, history.getValues(i++, null));
-            assertEntry(3820, 22, 4524, 26, history.getValues(i++, null));
-            assertEntry(91686, 159, 18575, 146, history.getValues(i++, null));
-            assertEntry(91685, 159, 18575, 146, history.getValues(i++, null));
-            assertEntry(8289, 35, 6863, 38, history.getValues(i++, null));
-            assertEntry(8289, 35, 6863, 38, history.getValues(i++, null));
+            assertEntry(3821, 23, 4525, 26, history.getValues(i++, null));
+            assertEntry(3820, 21, 4524, 26, history.getValues(i++, null));
+            assertEntry(91686, 159, 18576, 146, history.getValues(i++, null));
+            assertEntry(91685, 159, 18574, 146, history.getValues(i++, null));
+            assertEntry(8289, 36, 6864, 39, history.getValues(i++, null));
+            assertEntry(8289, 34, 6862, 37, history.getValues(i++, null));
             assertEntry(113914, 174, 18364, 157, history.getValues(i++, null));
             assertEntry(113913, 173, 18364, 157, history.getValues(i++, null));
-            assertEntry(11378, 49, 9261, 49, history.getValues(i++, null));
-            assertEntry(11377, 48, 9261, 49, history.getValues(i++, null));
-            assertEntry(201765, 328, 41808, 291, history.getValues(i++, null));
-            assertEntry(201765, 328, 41807, 290, history.getValues(i++, null));
-            assertEntry(106106, 218, 39917, 201, history.getValues(i++, null));
-            assertEntry(106105, 217, 39917, 201, history.getValues(i++, null));
+            assertEntry(11378, 49, 9261, 50, history.getValues(i++, null));
+            assertEntry(11377, 48, 9261, 48, history.getValues(i++, null));
+            assertEntry(201766, 328, 41808, 291, history.getValues(i++, null));
+            assertEntry(201764, 328, 41807, 290, history.getValues(i++, null));
+            assertEntry(106106, 219, 39918, 202, history.getValues(i++, null));
+            assertEntry(106105, 216, 39916, 200, history.getValues(i++, null));
             assertEquals(history.size(), i);
 
             // Slice from middle should be untouched
             history = getHistory(collection, plan, TIME_B - HOUR_IN_MILLIS,
                     TIME_B + HOUR_IN_MILLIS); i = 0;
-            assertEntry(3821, 22, 4525, 26, history.getValues(i++, null));
-            assertEntry(3820, 22, 4524, 26, history.getValues(i++, null));
-            assertEntry(91686, 159, 18575, 146, history.getValues(i++, null));
-            assertEntry(91685, 159, 18575, 146, history.getValues(i++, null));
+            assertEntry(3821, 23, 4525, 26, history.getValues(i++, null));
+            assertEntry(3820, 21, 4524, 26, history.getValues(i++, null));
+            assertEntry(91686, 159, 18576, 146, history.getValues(i++, null));
+            assertEntry(91685, 159, 18574, 146, history.getValues(i++, null));
             assertEquals(history.size(), i);
         }
 
@@ -373,25 +373,25 @@
             assertEntry(527797, 760, 78570, 651, history.getValues(i++, null));
             // Cycle point; start data normalization
             assertEntry(7507, 0, 11763, 0, history.getValues(i++, null));
-            assertEntry(7507, 0, 11763, 0, history.getValues(i++, null));
+            assertEntry(7507, 0, 11762, 0, history.getValues(i++, null));
             assertEntry(62309, 0, 12589, 0, history.getValues(i++, null));
             assertEntry(62309, 0, 12588, 0, history.getValues(i++, null));
             assertEntry(2669, 0, 3161, 0, history.getValues(i++, null));
             assertEntry(2668, 0, 3160, 0, history.getValues(i++, null));
             // Anchor point; end data normalization
-            assertEntry(91686, 159, 18575, 146, history.getValues(i++, null));
-            assertEntry(91685, 159, 18575, 146, history.getValues(i++, null));
-            assertEntry(8289, 35, 6863, 38, history.getValues(i++, null));
-            assertEntry(8289, 35, 6863, 38, history.getValues(i++, null));
+            assertEntry(91686, 159, 18576, 146, history.getValues(i++, null));
+            assertEntry(91685, 159, 18574, 146, history.getValues(i++, null));
+            assertEntry(8289, 36, 6864, 39, history.getValues(i++, null));
+            assertEntry(8289, 34, 6862, 37, history.getValues(i++, null));
             assertEntry(113914, 174, 18364, 157, history.getValues(i++, null));
             assertEntry(113913, 173, 18364, 157, history.getValues(i++, null));
             // Cycle point
-            assertEntry(11378, 49, 9261, 49, history.getValues(i++, null));
-            assertEntry(11377, 48, 9261, 49, history.getValues(i++, null));
-            assertEntry(201765, 328, 41808, 291, history.getValues(i++, null));
-            assertEntry(201765, 328, 41807, 290, history.getValues(i++, null));
-            assertEntry(106106, 218, 39917, 201, history.getValues(i++, null));
-            assertEntry(106105, 217, 39917, 201, history.getValues(i++, null));
+            assertEntry(11378, 49, 9261, 50, history.getValues(i++, null));
+            assertEntry(11377, 48, 9261, 48, history.getValues(i++, null));
+            assertEntry(201766, 328, 41808, 291, history.getValues(i++, null));
+            assertEntry(201764, 328, 41807, 290, history.getValues(i++, null));
+            assertEntry(106106, 219, 39918, 202, history.getValues(i++, null));
+            assertEntry(106105, 216, 39916, 200, history.getValues(i++, null));
             assertEquals(history.size(), i);
 
             // Slice from middle should be augmented
@@ -399,8 +399,8 @@
                     TIME_B + HOUR_IN_MILLIS); i = 0;
             assertEntry(2669, 0, 3161, 0, history.getValues(i++, null));
             assertEntry(2668, 0, 3160, 0, history.getValues(i++, null));
-            assertEntry(91686, 159, 18575, 146, history.getValues(i++, null));
-            assertEntry(91685, 159, 18575, 146, history.getValues(i++, null));
+            assertEntry(91686, 159, 18576, 146, history.getValues(i++, null));
+            assertEntry(91685, 159, 18574, 146, history.getValues(i++, null));
             assertEquals(history.size(), i);
         }
 
@@ -427,34 +427,34 @@
             assertEntry(527798, 761, 78570, 652, history.getValues(i++, null));
             assertEntry(527797, 760, 78570, 651, history.getValues(i++, null));
             // Cycle point; start data normalization
-            assertEntry(15015, 0, 23526, 0, history.getValues(i++, null));
-            assertEntry(15015, 0, 23526, 0, history.getValues(i++, null));
+            assertEntry(15015, 0, 23527, 0, history.getValues(i++, null));
+            assertEntry(15015, 0, 23524, 0, history.getValues(i++, null));
             assertEntry(124619, 0, 25179, 0, history.getValues(i++, null));
             assertEntry(124618, 0, 25177, 0, history.getValues(i++, null));
             assertEntry(5338, 0, 6322, 0, history.getValues(i++, null));
             assertEntry(5337, 0, 6320, 0, history.getValues(i++, null));
             // Anchor point; end data normalization
-            assertEntry(91686, 159, 18575, 146, history.getValues(i++, null));
-            assertEntry(91685, 159, 18575, 146, history.getValues(i++, null));
-            assertEntry(8289, 35, 6863, 38, history.getValues(i++, null));
-            assertEntry(8289, 35, 6863, 38, history.getValues(i++, null));
+            assertEntry(91686, 159, 18576, 146, history.getValues(i++, null));
+            assertEntry(91685, 159, 18574, 146, history.getValues(i++, null));
+            assertEntry(8289, 36, 6864, 39, history.getValues(i++, null));
+            assertEntry(8289, 34, 6862, 37, history.getValues(i++, null));
             assertEntry(113914, 174, 18364, 157, history.getValues(i++, null));
             assertEntry(113913, 173, 18364, 157, history.getValues(i++, null));
             // Cycle point
-            assertEntry(11378, 49, 9261, 49, history.getValues(i++, null));
-            assertEntry(11377, 48, 9261, 49, history.getValues(i++, null));
-            assertEntry(201765, 328, 41808, 291, history.getValues(i++, null));
-            assertEntry(201765, 328, 41807, 290, history.getValues(i++, null));
-            assertEntry(106106, 218, 39917, 201, history.getValues(i++, null));
-            assertEntry(106105, 217, 39917, 201, history.getValues(i++, null));
+            assertEntry(11378, 49, 9261, 50, history.getValues(i++, null));
+            assertEntry(11377, 48, 9261, 48, history.getValues(i++, null));
+            assertEntry(201766, 328, 41808, 291, history.getValues(i++, null));
+            assertEntry(201764, 328, 41807, 290, history.getValues(i++, null));
+            assertEntry(106106, 219, 39918, 202, history.getValues(i++, null));
+            assertEntry(106105, 216, 39916, 200, history.getValues(i++, null));
 
             // Slice from middle should be augmented
             history = getHistory(collection, plan, TIME_B - HOUR_IN_MILLIS,
                     TIME_B + HOUR_IN_MILLIS); i = 0;
             assertEntry(5338, 0, 6322, 0, history.getValues(i++, null));
             assertEntry(5337, 0, 6320, 0, history.getValues(i++, null));
-            assertEntry(91686, 159, 18575, 146, history.getValues(i++, null));
-            assertEntry(91685, 159, 18575, 146, history.getValues(i++, null));
+            assertEntry(91686, 159, 18576, 146, history.getValues(i++, null));
+            assertEntry(91685, 159, 18574, 146, history.getValues(i++, null));
             assertEquals(history.size(), i);
         }
     }
diff --git a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java
index b346c92..6e63313 100644
--- a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java
+++ b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java
@@ -42,6 +42,7 @@
 import static android.net.NetworkStats.UID_ALL;
 import static android.net.NetworkStatsHistory.FIELD_ALL;
 import static android.net.NetworkTemplate.buildTemplateMobileAll;
+import static android.net.NetworkTemplate.buildTemplateMobileWithRatType;
 import static android.net.NetworkTemplate.buildTemplateWifiWildcard;
 import static android.net.TrafficStats.MB_IN_BYTES;
 import static android.net.TrafficStats.UID_REMOVED;
@@ -60,11 +61,13 @@
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.app.AlarmManager;
 import android.app.usage.NetworkStatsManager;
 import android.content.Context;
@@ -92,6 +95,8 @@
 import android.os.Messenger;
 import android.os.PowerManager;
 import android.os.SimpleClock;
+import android.telephony.PhoneStateListener;
+import android.telephony.ServiceState;
 import android.telephony.TelephonyManager;
 
 import androidx.test.InstrumentationRegistry;
@@ -163,11 +168,14 @@
     private @Mock NetworkStatsSettings mSettings;
     private @Mock IBinder mBinder;
     private @Mock AlarmManager mAlarmManager;
+    private @Mock TelephonyManager mTelephonyManager;
     private HandlerThread mHandlerThread;
 
     private NetworkStatsService mService;
     private INetworkStatsSession mSession;
     private INetworkManagementEventObserver mNetworkObserver;
+    @Nullable
+    private PhoneStateListener mPhoneStateListener;
 
     private final Clock mClock = new SimpleClock(ZoneOffset.UTC) {
         @Override
@@ -195,7 +203,7 @@
         mHandlerThread = new HandlerThread("HandlerThread");
         final NetworkStatsService.Dependencies deps = makeDependencies();
         mService = new NetworkStatsService(mServiceContext, mNetManager, mAlarmManager, wakeLock,
-                mClock, mServiceContext.getSystemService(TelephonyManager.class), mSettings,
+                mClock, mTelephonyManager, mSettings,
                 mStatsFactory, new NetworkStatsObservers(), mStatsDir, getBaseDir(mStatsDir), deps);
 
         mElapsedRealtime = 0L;
@@ -216,6 +224,12 @@
                 ArgumentCaptor.forClass(INetworkManagementEventObserver.class);
         verify(mNetManager).registerObserver(networkObserver.capture());
         mNetworkObserver = networkObserver.getValue();
+
+        // Capture the phone state listener that created by service.
+        final ArgumentCaptor<PhoneStateListener> phoneStateListenerCaptor =
+                ArgumentCaptor.forClass(PhoneStateListener.class);
+        verify(mTelephonyManager).listen(phoneStateListenerCaptor.capture(), anyInt());
+        mPhoneStateListener = phoneStateListenerCaptor.getValue();
     }
 
     @NonNull
@@ -534,7 +548,7 @@
     }
 
     @Test
-    public void testUid3g4gCombinedByTemplate() throws Exception {
+    public void testUid3gWimaxCombinedByTemplate() throws Exception {
         // pretend that network comes online
         expectDefaultSettings();
         NetworkState[] states = new NetworkState[] {buildMobile3gState(IMSI_1)};
@@ -558,10 +572,10 @@
         assertUidTotal(sTemplateImsi1, UID_RED, 1024L, 8L, 1024L, 8L, 5);
 
 
-        // now switch over to 4g network
+        // now switch over to wimax network
         incrementCurrentTime(HOUR_IN_MILLIS);
         expectDefaultSettings();
-        states = new NetworkState[] {buildMobile4gState(TEST_IFACE2)};
+        states = new NetworkState[] {buildWimaxState(TEST_IFACE2)};
         expectNetworkStatsSummary(buildEmptyStats());
         expectNetworkStatsUidDetail(new NetworkStats(getElapsedRealtime(), 1)
                 .insertEntry(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE, 1024L, 8L, 1024L, 8L, 0L)
@@ -589,6 +603,89 @@
     }
 
     @Test
+    public void testMobileStatsByRatType() throws Exception {
+        final NetworkTemplate template3g =
+                buildTemplateMobileWithRatType(null, TelephonyManager.NETWORK_TYPE_UMTS);
+        final NetworkTemplate template4g =
+                buildTemplateMobileWithRatType(null, TelephonyManager.NETWORK_TYPE_LTE);
+        final NetworkTemplate template5g =
+                buildTemplateMobileWithRatType(null, TelephonyManager.NETWORK_TYPE_NR);
+        final NetworkState[] states = new NetworkState[]{buildMobile3gState(IMSI_1)};
+
+        // 3G network comes online.
+        expectNetworkStatsSummary(buildEmptyStats());
+        expectNetworkStatsUidDetail(buildEmptyStats());
+
+        setMobileRatTypeAndWaitForIdle(TelephonyManager.NETWORK_TYPE_UMTS);
+        mService.forceUpdateIfaces(NETWORKS_MOBILE, states, getActiveIface(states),
+                new VpnInfo[0]);
+
+        // Create some traffic.
+        incrementCurrentTime(MINUTE_IN_MILLIS);
+        expectNetworkStatsUidDetail(new NetworkStats(getElapsedRealtime(), 1)
+                .addEntry(new NetworkStats.Entry(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE,
+                        12L, 18L, 14L, 1L, 0L)));
+        forcePollAndWaitForIdle();
+
+        // Verify 3g templates gets stats.
+        assertUidTotal(sTemplateImsi1, UID_RED, 12L, 18L, 14L, 1L, 0);
+        assertUidTotal(template3g, UID_RED, 12L, 18L, 14L, 1L, 0);
+        assertUidTotal(template4g, UID_RED, 0L, 0L, 0L, 0L, 0);
+        assertUidTotal(template5g, UID_RED, 0L, 0L, 0L, 0L, 0);
+
+        // 4G network comes online.
+        incrementCurrentTime(MINUTE_IN_MILLIS);
+        setMobileRatTypeAndWaitForIdle(TelephonyManager.NETWORK_TYPE_LTE);
+        expectNetworkStatsUidDetail(new NetworkStats(getElapsedRealtime(), 1)
+                // Append more traffic on existing 3g stats entry.
+                .addEntry(new NetworkStats.Entry(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE,
+                        16L, 22L, 17L, 2L, 0L))
+                // Add entry that is new on 4g.
+                .addEntry(new NetworkStats.Entry(TEST_IFACE, UID_RED, SET_FOREGROUND, TAG_NONE,
+                        33L, 27L, 8L, 10L, 1L)));
+        forcePollAndWaitForIdle();
+
+        // Verify ALL_MOBILE template gets all. 3g template counters do not increase.
+        assertUidTotal(sTemplateImsi1, UID_RED, 49L, 49L, 25L, 12L, 1);
+        assertUidTotal(template3g, UID_RED, 12L, 18L, 14L, 1L, 0);
+        // Verify 4g template counts appended stats on existing entry and newly created entry.
+        assertUidTotal(template4g, UID_RED, 4L + 33L, 4L + 27L, 3L + 8L, 1L + 10L, 1);
+        // Verify 5g template doesn't get anything since no traffic is generated on 5g.
+        assertUidTotal(template5g, UID_RED, 0L, 0L, 0L, 0L, 0);
+
+        // 5g network comes online.
+        incrementCurrentTime(MINUTE_IN_MILLIS);
+        setMobileRatTypeAndWaitForIdle(TelephonyManager.NETWORK_TYPE_NR);
+        expectNetworkStatsUidDetail(new NetworkStats(getElapsedRealtime(), 1)
+                // Existing stats remains.
+                .addEntry(new NetworkStats.Entry(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE,
+                        16L, 22L, 17L, 2L, 0L))
+                .addEntry(new NetworkStats.Entry(TEST_IFACE, UID_RED, SET_FOREGROUND, TAG_NONE,
+                        33L, 27L, 8L, 10L, 1L))
+                // Add some traffic on 5g.
+                .addEntry(new NetworkStats.Entry(TEST_IFACE, UID_RED, SET_DEFAULT, TAG_NONE,
+                5L, 13L, 31L, 9L, 2L)));
+        forcePollAndWaitForIdle();
+
+        // Verify ALL_MOBILE template gets all.
+        assertUidTotal(sTemplateImsi1, UID_RED, 54L, 62L, 56L, 21L, 3);
+        // 3g/4g template counters do not increase.
+        assertUidTotal(template3g, UID_RED, 12L, 18L, 14L, 1L, 0);
+        assertUidTotal(template4g, UID_RED, 4L + 33L, 4L + 27L, 3L + 8L, 1L + 10L, 1);
+        // Verify 5g template gets the 5g count.
+        assertUidTotal(template5g, UID_RED, 5L, 13L, 31L, 9L, 2);
+    }
+
+    // TODO: support per IMSI state
+    private void setMobileRatTypeAndWaitForIdle(int ratType) {
+        final ServiceState mockSs = mock(ServiceState.class);
+        when(mockSs.getDataNetworkType()).thenReturn(ratType);
+        mPhoneStateListener.onServiceStateChanged(mockSs);
+
+        HandlerUtilsKt.waitForIdle(mHandlerThread, WAIT_TIMEOUT);
+    }
+
+    @Test
     public void testSummaryForAllUid() throws Exception {
         // pretend that network comes online
         expectDefaultSettings();
@@ -1197,6 +1294,7 @@
         when(mSettings.getPollInterval()).thenReturn(HOUR_IN_MILLIS);
         when(mSettings.getPollDelay()).thenReturn(0L);
         when(mSettings.getSampleEnabled()).thenReturn(true);
+        when(mSettings.getCombineSubtypeEnabled()).thenReturn(false);
 
         final Config config = new Config(bucketDuration, deleteAge, deleteAge);
         when(mSettings.getDevConfig()).thenReturn(config);
@@ -1242,6 +1340,7 @@
         final NetworkCapabilities capabilities = new NetworkCapabilities();
         capabilities.setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED, !isMetered);
         capabilities.setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING, true);
+        capabilities.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
         return new NetworkState(info, prop, capabilities, WIFI_NETWORK, null, TEST_SSID);
     }
 
@@ -1259,10 +1358,11 @@
         final NetworkCapabilities capabilities = new NetworkCapabilities();
         capabilities.setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED, false);
         capabilities.setCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING, !isRoaming);
+        capabilities.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
         return new NetworkState(info, prop, capabilities, MOBILE_NETWORK, subscriberId, null);
     }
 
-    private static NetworkState buildMobile4gState(String iface) {
+    private static NetworkState buildWimaxState(@NonNull String iface) {
         final NetworkInfo info = new NetworkInfo(TYPE_WIMAX, 0, null, null);
         info.setDetailedState(DetailedState.CONNECTED, null, null);
         final LinkProperties prop = new LinkProperties();
diff --git a/tests/utils/testutils/java/android/os/test/TestLooper.java b/tests/utils/testutils/java/android/os/test/TestLooper.java
index 01bd47b..a826646 100644
--- a/tests/utils/testutils/java/android/os/test/TestLooper.java
+++ b/tests/utils/testutils/java/android/os/test/TestLooper.java
@@ -48,6 +48,8 @@
     private static final Method MESSAGE_MARK_IN_USE_METHOD;
     private static final String TAG = "TestLooper";
 
+    private final Clock mClock;
+
     private AutoDispatchThread mAutoDispatchThread;
 
     static {
@@ -69,8 +71,25 @@
         }
     }
 
-
+    /**
+     * Creates a TestLooper and installs it as the looper for the current thread.
+     */
     public TestLooper() {
+        this(SystemClock::uptimeMillis);
+    }
+
+    /**
+     * Creates a TestLooper with a custom clock and installs it as the looper for the current
+     * thread.
+     *
+     * Messages are dispatched when their {@link Message#when} is before or at {@link
+     * Clock#uptimeMillis()}.
+     * Use a custom clock with care. When using an offsettable clock like {@link
+     * com.android.server.testutils.OffsettableClock} be sure not to double offset messages by
+     * offsetting the clock and calling {@link #moveTimeForward(long)}. Instead, offset the clock
+     * and call {@link #dispatchAll()}.
+     */
+    public TestLooper(Clock clock) {
         try {
             mLooper = LOOPER_CONSTRUCTOR.newInstance(false);
 
@@ -80,6 +99,8 @@
         } catch (IllegalAccessException | InstantiationException | InvocationTargetException e) {
             throw new RuntimeException("Reflection error constructing or accessing looper", e);
         }
+
+        mClock = clock;
     }
 
     public Looper getLooper() {
@@ -116,9 +137,13 @@
         }
     }
 
+    private long currentTime() {
+        return mClock.uptimeMillis();
+    }
+
     private Message messageQueueNext() {
         try {
-            long now = SystemClock.uptimeMillis();
+            long now = currentTime();
 
             Message prevMsg = null;
             Message msg = getMessageLinkedList();
@@ -157,7 +182,7 @@
     public synchronized boolean isIdle() {
         Message messageList = getMessageLinkedList();
 
-        return messageList != null && SystemClock.uptimeMillis() >= messageList.getWhen();
+        return messageList != null && currentTime() >= messageList.getWhen();
     }
 
     /**
@@ -187,6 +212,7 @@
     /**
      * Dispatch all messages currently in the queue
      * Will not fail if there are no messages pending
+     *
      * @return the number of messages dispatched
      */
     public synchronized int dispatchAll() {
@@ -198,6 +224,10 @@
         return count;
     }
 
+    public interface Clock {
+        long uptimeMillis();
+    }
+
     /**
      * Thread used to dispatch messages when the main thread is blocked waiting for a response.
      */
diff --git a/tools/stats_log_api_gen/.clang-format b/tools/stats_log_api_gen/.clang-format
new file mode 100644
index 0000000..cead3a0
--- /dev/null
+++ b/tools/stats_log_api_gen/.clang-format
@@ -0,0 +1,17 @@
+BasedOnStyle: Google
+AllowShortIfStatementsOnASingleLine: true
+AllowShortFunctionsOnASingleLine: false
+AllowShortLoopsOnASingleLine: true
+BinPackArguments: true
+BinPackParameters: true
+ColumnLimit: 100
+CommentPragmas: NOLINT:.*
+ContinuationIndentWidth: 8
+DerivePointerAlignment: false
+IndentWidth: 4
+PointerAlignment: Left
+TabWidth: 4
+AccessModifierOffset: -4
+IncludeCategories:
+  - Regex:    '^"Log\.h"'
+    Priority:    -1
diff --git a/tools/stats_log_api_gen/Collation.cpp b/tools/stats_log_api_gen/Collation.cpp
index 66c4b14..bf39093 100644
--- a/tools/stats_log_api_gen/Collation.cpp
+++ b/tools/stats_log_api_gen/Collation.cpp
@@ -15,11 +15,13 @@
  */
 
 #include "Collation.h"
-#include "frameworks/base/cmds/statsd/src/atoms.pb.h"
 
 #include <stdio.h>
+
 #include <map>
 
+#include "frameworks/base/cmds/statsd/src/atoms.pb.h"
+
 namespace android {
 namespace stats_log_api_gen {
 
@@ -27,58 +29,52 @@
 using google::protobuf::FieldDescriptor;
 using google::protobuf::FileDescriptor;
 using google::protobuf::SourceLocation;
+using std::make_shared;
 using std::map;
 
+const bool dbg = false;
 
 //
 // AtomDecl class
 //
 
-AtomDecl::AtomDecl()
-    :code(0),
-     name()
-{
+AtomDecl::AtomDecl() : code(0), name() {
 }
 
-AtomDecl::AtomDecl(const AtomDecl &that)
-      : code(that.code),
-        name(that.name),
-        message(that.message),
-        fields(that.fields),
-        primaryFields(that.primaryFields),
-        exclusiveField(that.exclusiveField),
-        defaultState(that.defaultState),
-        resetState(that.resetState),
-        nested(that.nested),
-        uidField(that.uidField),
-        whitelisted(that.whitelisted),
-        binaryFields(that.binaryFields),
-        moduleNames(that.moduleNames) {}
-
-AtomDecl::AtomDecl(int c, const string& n, const string& m)
-    :code(c),
-     name(n),
-     message(m)
-{
+AtomDecl::AtomDecl(const AtomDecl& that)
+    : code(that.code),
+      name(that.name),
+      message(that.message),
+      fields(that.fields),
+      fieldNumberToAnnotations(that.fieldNumberToAnnotations),
+      primaryFields(that.primaryFields),
+      exclusiveField(that.exclusiveField),
+      defaultState(that.defaultState),
+      resetState(that.resetState),
+      nested(that.nested),
+      uidField(that.uidField),
+      whitelisted(that.whitelisted),
+      truncateTimestamp(that.truncateTimestamp) {
 }
 
-AtomDecl::~AtomDecl()
-{
+AtomDecl::AtomDecl(int c, const string& n, const string& m) : code(c), name(n), message(m) {
 }
 
+AtomDecl::~AtomDecl() {
+}
 
 /**
- * Print an error message for a FieldDescriptor, including the file name and line number.
+ * Print an error message for a FieldDescriptor, including the file name and
+ * line number.
  */
-static void
-print_error(const FieldDescriptor* field, const char* format, ...)
-{
+static void print_error(const FieldDescriptor* field, const char* format, ...) {
     const Descriptor* message = field->containing_type();
     const FileDescriptor* file = message->file();
 
     SourceLocation loc;
     if (field->GetSourceLocation(&loc)) {
-        // TODO: this will work if we can figure out how to pass --include_source_info to protoc
+        // TODO: this will work if we can figure out how to pass
+        // --include_source_info to protoc
         fprintf(stderr, "%s:%d: ", file->name().c_str(), loc.start_line);
     } else {
         fprintf(stderr, "%s: ", file->name().c_str());
@@ -86,15 +82,13 @@
     va_list args;
     va_start(args, format);
     vfprintf(stderr, format, args);
-    va_end (args);
+    va_end(args);
 }
 
 /**
  * Convert a protobuf type into a java type.
  */
-static java_type_t
-java_type(const FieldDescriptor* field)
-{
+static java_type_t java_type(const FieldDescriptor* field) {
     int protoType = field->type();
     switch (protoType) {
         case FieldDescriptor::TYPE_DOUBLE:
@@ -119,12 +113,10 @@
             return JAVA_TYPE_UNKNOWN;
         case FieldDescriptor::TYPE_MESSAGE:
             // TODO: not the final package name
-            if (field->message_type()->full_name() ==
-                "android.os.statsd.AttributionNode") {
-              return JAVA_TYPE_ATTRIBUTION_CHAIN;
-            } else if (field->message_type()->full_name() ==
-                       "android.os.statsd.KeyValuePair") {
-              return JAVA_TYPE_KEY_VALUE_PAIR;
+            if (field->message_type()->full_name() == "android.os.statsd.AttributionNode") {
+                return JAVA_TYPE_ATTRIBUTION_CHAIN;
+            } else if (field->message_type()->full_name() == "android.os.statsd.KeyValuePair") {
+                return JAVA_TYPE_KEY_VALUE_PAIR;
             } else if (field->options().GetExtension(os::statsd::log_mode) ==
                        os::statsd::LogMode::MODE_BYTES) {
                 return JAVA_TYPE_BYTE_ARRAY;
@@ -153,244 +145,298 @@
 /**
  * Gather the enums info.
  */
-void collate_enums(const EnumDescriptor &enumDescriptor, AtomField *atomField) {
+void collate_enums(const EnumDescriptor& enumDescriptor, AtomField* atomField) {
     for (int i = 0; i < enumDescriptor.value_count(); i++) {
         atomField->enumValues[enumDescriptor.value(i)->number()] =
-            enumDescriptor.value(i)->name().c_str();
+                enumDescriptor.value(i)->name().c_str();
     }
 }
 
+static void addAnnotationToAtomDecl(AtomDecl* atomDecl, const int fieldNumber,
+                                    const int annotationId, const AnnotationType annotationType,
+                                    const AnnotationValue annotationValue) {
+    if (dbg) {
+        printf("   Adding annotation to %s: [%d] = {id: %d, type: %d}\n", atomDecl->name.c_str(),
+               fieldNumber, annotationId, annotationType);
+    }
+    atomDecl->fieldNumberToAnnotations[fieldNumber].insert(
+            make_shared<Annotation>(annotationId, atomDecl->code, annotationType, annotationValue));
+}
+
+static int collate_field_annotations(AtomDecl* atomDecl, const FieldDescriptor* field,
+                                     const int fieldNumber, const java_type_t& javaType) {
+    int errorCount = 0;
+
+    if (field->options().HasExtension(os::statsd::state_field_option)) {
+        const int option = field->options().GetExtension(os::statsd::state_field_option).option();
+        if (option != STATE_OPTION_UNSET) {
+            addAnnotationToAtomDecl(atomDecl, fieldNumber, ANNOTATION_ID_STATE_OPTION,
+                                    ANNOTATION_TYPE_INT, AnnotationValue(option));
+        }
+
+        if (option == STATE_OPTION_PRIMARY) {
+            if (javaType == JAVA_TYPE_UNKNOWN || javaType == JAVA_TYPE_ATTRIBUTION_CHAIN ||
+                javaType == JAVA_TYPE_OBJECT || javaType == JAVA_TYPE_BYTE_ARRAY) {
+                print_error(field, "Invalid primary state field: '%s'\n",
+                            atomDecl->message.c_str());
+                errorCount++;
+            }
+            atomDecl->primaryFields.push_back(fieldNumber);
+        }
+
+        if (option == STATE_OPTION_PRIMARY_FIELD_FIRST_UID) {
+            if (javaType != JAVA_TYPE_ATTRIBUTION_CHAIN) {
+                print_error(field,
+                            "PRIMARY_FIELD_FIRST_UID annotation is only for AttributionChains: "
+                            "'%s'\n",
+                            atomDecl->message.c_str());
+                errorCount++;
+            } else {
+                atomDecl->primaryFields.push_back(FIRST_UID_IN_CHAIN_ID);
+            }
+        }
+
+        if (option == STATE_OPTION_EXCLUSIVE) {
+            if (javaType == JAVA_TYPE_UNKNOWN || javaType == JAVA_TYPE_ATTRIBUTION_CHAIN ||
+                javaType == JAVA_TYPE_OBJECT || javaType == JAVA_TYPE_BYTE_ARRAY) {
+                print_error(field, "Invalid exclusive state field: '%s'\n",
+                            atomDecl->message.c_str());
+                errorCount++;
+            }
+
+            if (atomDecl->exclusiveField == 0) {
+                atomDecl->exclusiveField = fieldNumber;
+            } else {
+                print_error(field,
+                            "Cannot have more than one exclusive state field in an "
+                            "atom: '%s'\n",
+                            atomDecl->message.c_str());
+                errorCount++;
+            }
+
+            if (field->options()
+                        .GetExtension(os::statsd::state_field_option)
+                        .has_default_state_value()) {
+                const int defaultState = field->options()
+                                                 .GetExtension(os::statsd::state_field_option)
+                                                 .default_state_value();
+                atomDecl->defaultState = defaultState;
+
+                addAnnotationToAtomDecl(atomDecl, fieldNumber, ANNOTATION_ID_DEFAULT_STATE,
+                                        ANNOTATION_TYPE_INT, AnnotationValue(defaultState));
+            }
+
+            if (field->options()
+                        .GetExtension(os::statsd::state_field_option)
+                        .has_reset_state_value()) {
+                const int resetState = field->options()
+                                               .GetExtension(os::statsd::state_field_option)
+                                               .reset_state_value();
+
+                atomDecl->resetState = resetState;
+                addAnnotationToAtomDecl(atomDecl, fieldNumber, ANNOTATION_ID_RESET_STATE,
+                                        ANNOTATION_TYPE_INT, AnnotationValue(resetState));
+            }
+
+            if (field->options().GetExtension(os::statsd::state_field_option).has_nested()) {
+                const bool nested =
+                        field->options().GetExtension(os::statsd::state_field_option).nested();
+                atomDecl->nested = nested;
+
+                addAnnotationToAtomDecl(atomDecl, fieldNumber, ANNOTATION_ID_STATE_NESTED,
+                                        ANNOTATION_TYPE_BOOL, AnnotationValue(nested));
+            }
+        }
+    }
+
+    if (field->options().GetExtension(os::statsd::is_uid) == true) {
+        if (javaType != JAVA_TYPE_INT) {
+            print_error(field, "is_uid annotation can only be applied to int32 fields: '%s'\n",
+                        atomDecl->message.c_str());
+            errorCount++;
+        }
+
+        if (atomDecl->uidField == 0) {
+            atomDecl->uidField = fieldNumber;
+
+            addAnnotationToAtomDecl(atomDecl, fieldNumber, ANNOTATION_ID_IS_UID,
+                                    ANNOTATION_TYPE_BOOL, AnnotationValue(true));
+        } else {
+            print_error(field,
+                        "Cannot have more than one field in an atom with is_uid "
+                        "annotation: '%s'\n",
+                        atomDecl->message.c_str());
+            errorCount++;
+        }
+    }
+
+    return errorCount;
+}
+
 /**
  * Gather the info about an atom proto.
  */
-int collate_atom(const Descriptor *atom, AtomDecl *atomDecl,
-                 vector<java_type_t> *signature) {
+int collate_atom(const Descriptor* atom, AtomDecl* atomDecl, vector<java_type_t>* signature) {
+    int errorCount = 0;
 
-  int errorCount = 0;
-
-  // Build a sorted list of the fields. Descriptor has them in source file
-  // order.
-  map<int, const FieldDescriptor *> fields;
-  for (int j = 0; j < atom->field_count(); j++) {
-    const FieldDescriptor *field = atom->field(j);
-    fields[field->number()] = field;
-  }
-
-  // Check that the parameters start at 1 and go up sequentially.
-  int expectedNumber = 1;
-  for (map<int, const FieldDescriptor *>::const_iterator it = fields.begin();
-       it != fields.end(); it++) {
-    const int number = it->first;
-    const FieldDescriptor *field = it->second;
-    if (number != expectedNumber) {
-      print_error(field,
-                  "Fields must be numbered consecutively starting at 1:"
-                  " '%s' is %d but should be %d\n",
-                  field->name().c_str(), number, expectedNumber);
-      errorCount++;
-      expectedNumber = number;
-      continue;
-    }
-    expectedNumber++;
-  }
-
-  // Check that only allowed types are present. Remove any invalid ones.
-  for (map<int, const FieldDescriptor *>::const_iterator it = fields.begin();
-       it != fields.end(); it++) {
-    const FieldDescriptor *field = it->second;
-    bool isBinaryField = field->options().GetExtension(os::statsd::log_mode) ==
-                         os::statsd::LogMode::MODE_BYTES;
-
-    java_type_t javaType = java_type(field);
-
-    if (javaType == JAVA_TYPE_UNKNOWN) {
-      print_error(field, "Unkown type for field: %s\n", field->name().c_str());
-      errorCount++;
-      continue;
-    } else if (javaType == JAVA_TYPE_OBJECT &&
-               atomDecl->code < PULL_ATOM_START_ID) {
-        // Allow attribution chain, but only at position 1.
-        print_error(field,
-                    "Message type not allowed for field in pushed atoms: %s\n",
-                    field->name().c_str());
-        errorCount++;
-        continue;
-    } else if (javaType == JAVA_TYPE_BYTE_ARRAY && !isBinaryField) {
-        print_error(field, "Raw bytes type not allowed for field: %s\n",
-                    field->name().c_str());
-        errorCount++;
-        continue;
-    }
-
-    if (isBinaryField && javaType != JAVA_TYPE_BYTE_ARRAY) {
-        print_error(field, "Cannot mark field %s as bytes.\n",
-                    field->name().c_str());
-        errorCount++;
-        continue;
-    }
-
-    // Doubles are not supported yet.
-    if (javaType == JAVA_TYPE_DOUBLE) {
-        print_error(field, "Doubles are not supported in atoms. Please change field %s to float\n",
-                    field->name().c_str());
-        errorCount++;
-        continue;
-    }
-
-    if (field->is_repeated() &&
-        !(javaType == JAVA_TYPE_ATTRIBUTION_CHAIN || javaType == JAVA_TYPE_KEY_VALUE_PAIR)) {
-        print_error(field,
-                    "Repeated fields are not supported in atoms. Please make field %s not "
-                    "repeated.\n",
-                    field->name().c_str());
-        errorCount++;
-        continue;
-    }
-  }
-
-  // Check that if there's an attribution chain, it's at position 1.
-  for (map<int, const FieldDescriptor *>::const_iterator it = fields.begin();
-       it != fields.end(); it++) {
-    int number = it->first;
-    if (number != 1) {
-      const FieldDescriptor *field = it->second;
-      java_type_t javaType = java_type(field);
-      if (javaType == JAVA_TYPE_ATTRIBUTION_CHAIN) {
-        print_error(
-            field,
-            "AttributionChain fields must have field id 1, in message: '%s'\n",
-            atom->name().c_str());
-        errorCount++;
-      }
-    }
-  }
-
-  // Build the type signature and the atom data.
-  for (map<int, const FieldDescriptor *>::const_iterator it = fields.begin();
-       it != fields.end(); it++) {
-    const FieldDescriptor *field = it->second;
-    java_type_t javaType = java_type(field);
-    bool isBinaryField = field->options().GetExtension(os::statsd::log_mode) ==
-                         os::statsd::LogMode::MODE_BYTES;
-
-    AtomField atField(field->name(), javaType);
-    // Generate signature for pushed atoms
-    if (atomDecl->code < PULL_ATOM_START_ID) {
-      if (javaType == JAVA_TYPE_ENUM) {
-        // All enums are treated as ints when it comes to function signatures.
-        signature->push_back(JAVA_TYPE_INT);
-        collate_enums(*field->enum_type(), &atField);
-      } else if (javaType == JAVA_TYPE_OBJECT && isBinaryField) {
-          signature->push_back(JAVA_TYPE_BYTE_ARRAY);
-      } else {
-          signature->push_back(javaType);
-      }
-    }
-    if (javaType == JAVA_TYPE_ENUM) {
-      // All enums are treated as ints when it comes to function signatures.
-      collate_enums(*field->enum_type(), &atField);
-    }
-    atomDecl->fields.push_back(atField);
-
-    if (field->options().GetExtension(os::statsd::state_field_option).option() ==
-        os::statsd::StateField::PRIMARY_FIELD) {
-        if (javaType == JAVA_TYPE_UNKNOWN ||
-            javaType == JAVA_TYPE_ATTRIBUTION_CHAIN ||
-            javaType == JAVA_TYPE_OBJECT || javaType == JAVA_TYPE_BYTE_ARRAY) {
-            errorCount++;
-        }
-        atomDecl->primaryFields.push_back(it->first);
-    }
-
-    if (field->options().GetExtension(os::statsd::state_field_option).option() ==
-        os::statsd::StateField::PRIMARY_FIELD_FIRST_UID) {
-        if (javaType != JAVA_TYPE_ATTRIBUTION_CHAIN) {
-            errorCount++;
-        } else {
-            atomDecl->primaryFields.push_back(FIRST_UID_IN_CHAIN_ID);
-        }
-    }
-
-    if (field->options().GetExtension(os::statsd::state_field_option).option() ==
-        os::statsd::StateField::EXCLUSIVE_STATE) {
-        if (javaType == JAVA_TYPE_UNKNOWN ||
-            javaType == JAVA_TYPE_ATTRIBUTION_CHAIN ||
-            javaType == JAVA_TYPE_OBJECT || javaType == JAVA_TYPE_BYTE_ARRAY) {
-            errorCount++;
-        }
-
-        if (atomDecl->exclusiveField == 0) {
-            atomDecl->exclusiveField = it->first;
-        } else {
-            errorCount++;
-        }
-
-        if (field->options()
-                    .GetExtension(os::statsd::state_field_option)
-                    .has_default_state_value()) {
-            atomDecl->defaultState = field->options()
-                                             .GetExtension(os::statsd::state_field_option)
-                                             .default_state_value();
-        }
-
-        if (field->options().GetExtension(os::statsd::state_field_option).has_reset_state_value()) {
-            atomDecl->resetState = field->options()
-                                           .GetExtension(os::statsd::state_field_option)
-                                           .reset_state_value();
-        }
-        atomDecl->nested = field->options().GetExtension(os::statsd::state_field_option).nested();
-    }
-
-    if (field->options().GetExtension(os::statsd::is_uid) == true) {
-        if (javaType != JAVA_TYPE_INT) {
-            errorCount++;
-        }
-
-        if (atomDecl->uidField == 0) {
-            atomDecl->uidField = it->first;
-        } else {
-            errorCount++;
-        }
-    }
-    // Binary field validity is already checked above.
-    if (isBinaryField) {
-        atomDecl->binaryFields.push_back(it->first);
-    }
-  }
-
-  return errorCount;
-}
-
-// This function flattens the fields of the AttributionNode proto in an Atom proto and generates
-// the corresponding atom decl and signature.
-bool get_non_chained_node(const Descriptor *atom, AtomDecl *atomDecl,
-                          vector<java_type_t> *signature) {
     // Build a sorted list of the fields. Descriptor has them in source file
     // order.
-    map<int, const FieldDescriptor *> fields;
+    map<int, const FieldDescriptor*> fields;
     for (int j = 0; j < atom->field_count(); j++) {
-        const FieldDescriptor *field = atom->field(j);
+        const FieldDescriptor* field = atom->field(j);
+        fields[field->number()] = field;
+    }
+
+    // Check that the parameters start at 1 and go up sequentially.
+    int expectedNumber = 1;
+    for (map<int, const FieldDescriptor*>::const_iterator it = fields.begin(); it != fields.end();
+         it++) {
+        const int number = it->first;
+        const FieldDescriptor* field = it->second;
+        if (number != expectedNumber) {
+            print_error(field,
+                        "Fields must be numbered consecutively starting at 1:"
+                        " '%s' is %d but should be %d\n",
+                        field->name().c_str(), number, expectedNumber);
+            errorCount++;
+            expectedNumber = number;
+            continue;
+        }
+        expectedNumber++;
+    }
+
+    // Check that only allowed types are present. Remove any invalid ones.
+    for (map<int, const FieldDescriptor*>::const_iterator it = fields.begin(); it != fields.end();
+         it++) {
+        const FieldDescriptor* field = it->second;
+        bool isBinaryField = field->options().GetExtension(os::statsd::log_mode) ==
+                             os::statsd::LogMode::MODE_BYTES;
+
+        java_type_t javaType = java_type(field);
+
+        if (javaType == JAVA_TYPE_UNKNOWN) {
+            print_error(field, "Unknown type for field: %s\n", field->name().c_str());
+            errorCount++;
+            continue;
+        } else if (javaType == JAVA_TYPE_OBJECT && atomDecl->code < PULL_ATOM_START_ID) {
+            // Allow attribution chain, but only at position 1.
+            print_error(field, "Message type not allowed for field in pushed atoms: %s\n",
+                        field->name().c_str());
+            errorCount++;
+            continue;
+        } else if (javaType == JAVA_TYPE_BYTE_ARRAY && !isBinaryField) {
+            print_error(field, "Raw bytes type not allowed for field: %s\n", field->name().c_str());
+            errorCount++;
+            continue;
+        }
+
+        if (isBinaryField && javaType != JAVA_TYPE_BYTE_ARRAY) {
+            print_error(field, "Cannot mark field %s as bytes.\n", field->name().c_str());
+            errorCount++;
+            continue;
+        }
+
+        // Doubles are not supported yet.
+        if (javaType == JAVA_TYPE_DOUBLE) {
+            print_error(field,
+                        "Doubles are not supported in atoms. Please change field %s "
+                        "to float\n",
+                        field->name().c_str());
+            errorCount++;
+            continue;
+        }
+
+        if (field->is_repeated() &&
+            !(javaType == JAVA_TYPE_ATTRIBUTION_CHAIN || javaType == JAVA_TYPE_KEY_VALUE_PAIR)) {
+            print_error(field,
+                        "Repeated fields are not supported in atoms. Please make "
+                        "field %s not "
+                        "repeated.\n",
+                        field->name().c_str());
+            errorCount++;
+            continue;
+        }
+    }
+
+    // Check that if there's an attribution chain, it's at position 1.
+    for (map<int, const FieldDescriptor*>::const_iterator it = fields.begin(); it != fields.end();
+         it++) {
+        int number = it->first;
+        if (number != 1) {
+            const FieldDescriptor* field = it->second;
+            java_type_t javaType = java_type(field);
+            if (javaType == JAVA_TYPE_ATTRIBUTION_CHAIN) {
+                print_error(field,
+                            "AttributionChain fields must have field id 1, in message: '%s'\n",
+                            atom->name().c_str());
+                errorCount++;
+            }
+        }
+    }
+
+    // Build the type signature and the atom data.
+    for (map<int, const FieldDescriptor*>::const_iterator it = fields.begin(); it != fields.end();
+         it++) {
+        const FieldDescriptor* field = it->second;
+        java_type_t javaType = java_type(field);
+        bool isBinaryField = field->options().GetExtension(os::statsd::log_mode) ==
+                             os::statsd::LogMode::MODE_BYTES;
+
+        AtomField atField(field->name(), javaType);
+
+        if (javaType == JAVA_TYPE_ENUM) {
+            // All enums are treated as ints when it comes to function signatures.
+            collate_enums(*field->enum_type(), &atField);
+        }
+
+        // Generate signature for pushed atoms
+        if (atomDecl->code < PULL_ATOM_START_ID) {
+            if (javaType == JAVA_TYPE_ENUM) {
+                // All enums are treated as ints when it comes to function signatures.
+                signature->push_back(JAVA_TYPE_INT);
+            } else if (javaType == JAVA_TYPE_OBJECT && isBinaryField) {
+                signature->push_back(JAVA_TYPE_BYTE_ARRAY);
+            } else {
+                signature->push_back(javaType);
+            }
+        }
+
+        atomDecl->fields.push_back(atField);
+
+        errorCount += collate_field_annotations(atomDecl, field, it->first, javaType);
+    }
+
+    return errorCount;
+}
+
+// This function flattens the fields of the AttributionNode proto in an Atom
+// proto and generates the corresponding atom decl and signature.
+bool get_non_chained_node(const Descriptor* atom, AtomDecl* atomDecl,
+                          vector<java_type_t>* signature) {
+    // Build a sorted list of the fields. Descriptor has them in source file
+    // order.
+    map<int, const FieldDescriptor*> fields;
+    for (int j = 0; j < atom->field_count(); j++) {
+        const FieldDescriptor* field = atom->field(j);
         fields[field->number()] = field;
     }
 
     AtomDecl attributionDecl;
     vector<java_type_t> attributionSignature;
-    collate_atom(android::os::statsd::AttributionNode::descriptor(),
-                 &attributionDecl, &attributionSignature);
+    collate_atom(android::os::statsd::AttributionNode::descriptor(), &attributionDecl,
+                 &attributionSignature);
 
     // Build the type signature and the atom data.
     bool has_attribution_node = false;
-    for (map<int, const FieldDescriptor *>::const_iterator it = fields.begin();
-        it != fields.end(); it++) {
-        const FieldDescriptor *field = it->second;
+    for (map<int, const FieldDescriptor*>::const_iterator it = fields.begin(); it != fields.end();
+         it++) {
+        const FieldDescriptor* field = it->second;
         java_type_t javaType = java_type(field);
         if (javaType == JAVA_TYPE_ATTRIBUTION_CHAIN) {
-            atomDecl->fields.insert(
-                atomDecl->fields.end(),
-                attributionDecl.fields.begin(), attributionDecl.fields.end());
-            signature->insert(
-                signature->end(),
-                attributionSignature.begin(), attributionSignature.end());
+            atomDecl->fields.insert(atomDecl->fields.end(), attributionDecl.fields.begin(),
+                                    attributionDecl.fields.end());
+            signature->insert(signature->end(), attributionSignature.begin(),
+                              attributionSignature.end());
             has_attribution_node = true;
 
         } else {
@@ -408,85 +454,129 @@
     return has_attribution_node;
 }
 
+static void populateFieldNumberToAnnotations(const AtomDecl& atomDecl,
+                                             FieldNumberToAnnotations* fieldNumberToAnnotations) {
+    for (FieldNumberToAnnotations::const_iterator it = atomDecl.fieldNumberToAnnotations.begin();
+         it != atomDecl.fieldNumberToAnnotations.end(); it++) {
+        const int fieldNumber = it->first;
+        const set<shared_ptr<Annotation>>& insertAnnotationsSource = it->second;
+        set<shared_ptr<Annotation>>& insertAnnotationsTarget =
+                (*fieldNumberToAnnotations)[fieldNumber];
+        insertAnnotationsTarget.insert(insertAnnotationsSource.begin(),
+                                       insertAnnotationsSource.end());
+    }
+}
+
 /**
  * Gather the info about the atoms.
  */
-int collate_atoms(const Descriptor *descriptor, Atoms *atoms) {
-  int errorCount = 0;
-  const bool dbg = false;
+int collate_atoms(const Descriptor* descriptor, const string& moduleName, Atoms* atoms) {
+    int errorCount = 0;
 
-  int maxPushedAtomId = 2;
-  for (int i = 0; i < descriptor->field_count(); i++) {
-    const FieldDescriptor *atomField = descriptor->field(i);
+    int maxPushedAtomId = 2;
+    for (int i = 0; i < descriptor->field_count(); i++) {
+        const FieldDescriptor* atomField = descriptor->field(i);
+
+        if (moduleName != DEFAULT_MODULE_NAME) {
+            const int moduleCount = atomField->options().ExtensionSize(os::statsd::module);
+            int j;
+            for (j = 0; j < moduleCount; ++j) {
+                const string atomModuleName =
+                        atomField->options().GetExtension(os::statsd::module, j);
+                if (atomModuleName == moduleName) {
+                    break;
+                }
+            }
+
+            // This atom is not in the module we're interested in; skip it.
+            if (moduleCount == j) {
+                if (dbg) {
+                    printf("   Skipping %s (%d)\n", atomField->name().c_str(), atomField->number());
+                }
+                continue;
+            }
+        }
+
+        if (dbg) {
+            printf("   %s (%d)\n", atomField->name().c_str(), atomField->number());
+        }
+
+        // StatsEvent only has one oneof, which contains only messages. Don't allow
+        // other types.
+        if (atomField->type() != FieldDescriptor::TYPE_MESSAGE) {
+            print_error(atomField,
+                        "Bad type for atom. StatsEvent can only have message type "
+                        "fields: %s\n",
+                        atomField->name().c_str());
+            errorCount++;
+            continue;
+        }
+
+        const Descriptor* atom = atomField->message_type();
+        AtomDecl atomDecl(atomField->number(), atomField->name(), atom->name());
+
+        if (atomField->options().GetExtension(os::statsd::allow_from_any_uid) == true) {
+            atomDecl.whitelisted = true;
+            if (dbg) {
+                printf("%s is whitelisted\n", atomField->name().c_str());
+            }
+        }
+
+        if (atomDecl.code < PULL_ATOM_START_ID &&
+            atomField->options().GetExtension(os::statsd::truncate_timestamp)) {
+            addAnnotationToAtomDecl(&atomDecl, ATOM_ID_FIELD_NUMBER,
+                                    ANNOTATION_ID_TRUNCATE_TIMESTAMP, ANNOTATION_TYPE_BOOL,
+                                    AnnotationValue(true));
+            if (dbg) {
+                printf("%s can have timestamp truncated\n", atomField->name().c_str());
+            }
+        }
+
+        vector<java_type_t> signature;
+        errorCount += collate_atom(atom, &atomDecl, &signature);
+        if (atomDecl.primaryFields.size() != 0 && atomDecl.exclusiveField == 0) {
+            print_error(atomField, "Cannot have a primary field without an exclusive field: %s\n",
+                        atomField->name().c_str());
+            errorCount++;
+            continue;
+        }
+
+        atoms->decls.insert(atomDecl);
+        FieldNumberToAnnotations& fieldNumberToAnnotations = atoms->signatureInfoMap[signature];
+        populateFieldNumberToAnnotations(atomDecl, &fieldNumberToAnnotations);
+
+        AtomDecl nonChainedAtomDecl(atomField->number(), atomField->name(), atom->name());
+        vector<java_type_t> nonChainedSignature;
+        if (get_non_chained_node(atom, &nonChainedAtomDecl, &nonChainedSignature)) {
+            atoms->non_chained_decls.insert(nonChainedAtomDecl);
+            FieldNumberToAnnotations& fieldNumberToAnnotations =
+                    atoms->nonChainedSignatureInfoMap[nonChainedSignature];
+            populateFieldNumberToAnnotations(atomDecl, &fieldNumberToAnnotations);
+        }
+
+        if (atomDecl.code < PULL_ATOM_START_ID && atomDecl.code > maxPushedAtomId) {
+            maxPushedAtomId = atomDecl.code;
+        }
+    }
+
+    atoms->maxPushedAtomId = maxPushedAtomId;
 
     if (dbg) {
-      printf("   %s (%d)\n", atomField->name().c_str(), atomField->number());
+        printf("signatures = [\n");
+        for (map<vector<java_type_t>, FieldNumberToAnnotations>::const_iterator it =
+                     atoms->signatureInfoMap.begin();
+             it != atoms->signatureInfoMap.end(); it++) {
+            printf("   ");
+            for (vector<java_type_t>::const_iterator jt = it->first.begin(); jt != it->first.end();
+                 jt++) {
+                printf(" %d", (int)*jt);
+            }
+            printf("\n");
+        }
+        printf("]\n");
     }
 
-    // StatsEvent only has one oneof, which contains only messages. Don't allow
-    // other types.
-    if (atomField->type() != FieldDescriptor::TYPE_MESSAGE) {
-      print_error(atomField,
-                  "Bad type for atom. StatsEvent can only have message type "
-                  "fields: %s\n",
-                  atomField->name().c_str());
-      errorCount++;
-      continue;
-    }
-
-    const Descriptor *atom = atomField->message_type();
-    AtomDecl atomDecl(atomField->number(), atomField->name(), atom->name());
-
-    if (atomField->options().GetExtension(os::statsd::allow_from_any_uid) == true) {
-        atomDecl.whitelisted = true;
-    }
-
-    for (int j = 0; j < atomField->options().ExtensionSize(os::statsd::module); ++j) {
-        const string moduleName = atomField->options().GetExtension(os::statsd::module, j);
-        atomDecl.moduleNames.insert(moduleName);
-    }
-
-    vector<java_type_t> signature;
-    errorCount += collate_atom(atom, &atomDecl, &signature);
-    if (atomDecl.primaryFields.size() != 0 && atomDecl.exclusiveField == 0) {
-        errorCount++;
-    }
-
-    atoms->signatures_to_modules[signature].insert(
-            atomDecl.moduleNames.begin(), atomDecl.moduleNames.end());
-    atoms->decls.insert(atomDecl);
-
-    AtomDecl nonChainedAtomDecl(atomField->number(), atomField->name(), atom->name());
-    vector<java_type_t> nonChainedSignature;
-    if (get_non_chained_node(atom, &nonChainedAtomDecl, &nonChainedSignature)) {
-        atoms->non_chained_signatures_to_modules[nonChainedSignature].insert(
-            atomDecl.moduleNames.begin(), atomDecl.moduleNames.end());
-        atoms->non_chained_decls.insert(nonChainedAtomDecl);
-    }
-
-    if (atomDecl.code < PULL_ATOM_START_ID && atomDecl.code > maxPushedAtomId) {
-        maxPushedAtomId = atomDecl.code;
-    }
-  }
-
-  atoms->maxPushedAtomId = maxPushedAtomId;
-
-  if (dbg) {
-    printf("signatures = [\n");
-    for (map<vector<java_type_t>, set<string>>::const_iterator it =
-             atoms->signatures_to_modules.begin();
-         it != atoms->signatures_to_modules.end(); it++) {
-      printf("   ");
-      for (vector<java_type_t>::const_iterator jt = it->first.begin();
-           jt != it->first.end(); jt++) {
-        printf(" %d", (int)*jt);
-      }
-      printf("\n");
-    }
-    printf("]\n");
-  }
-
-  return errorCount;
+    return errorCount;
 }
 
 }  // namespace stats_log_api_gen
diff --git a/tools/stats_log_api_gen/Collation.h b/tools/stats_log_api_gen/Collation.h
index ace85e0..2aedb21 100644
--- a/tools/stats_log_api_gen/Collation.h
+++ b/tools/stats_log_api_gen/Collation.h
@@ -17,47 +17,101 @@
 #ifndef ANDROID_STATS_LOG_API_GEN_COLLATION_H
 #define ANDROID_STATS_LOG_API_GEN_COLLATION_H
 
-
 #include <google/protobuf/descriptor.h>
 
+#include <map>
 #include <set>
 #include <vector>
-#include <map>
+
+#include "frameworks/base/cmds/statsd/src/atom_field_options.pb.h"
 
 namespace android {
 namespace stats_log_api_gen {
 
-using std::map;
-using std::set;
-using std::string;
-using std::vector;
 using google::protobuf::Descriptor;
 using google::protobuf::FieldDescriptor;
+using std::map;
+using std::set;
+using std::shared_ptr;
+using std::string;
+using std::vector;
 
 const int PULL_ATOM_START_ID = 10000;
 
 const int FIRST_UID_IN_CHAIN_ID = 0;
 
+const unsigned char ANNOTATION_ID_IS_UID = 1;
+const unsigned char ANNOTATION_ID_TRUNCATE_TIMESTAMP = 2;
+const unsigned char ANNOTATION_ID_STATE_OPTION = 3;
+const unsigned char ANNOTATION_ID_DEFAULT_STATE = 4;
+const unsigned char ANNOTATION_ID_RESET_STATE = 5;
+const unsigned char ANNOTATION_ID_STATE_NESTED = 6;
+
+const int STATE_OPTION_UNSET = os::statsd::StateField::STATE_FIELD_UNSET;
+const int STATE_OPTION_EXCLUSIVE = os::statsd::StateField::EXCLUSIVE_STATE;
+const int STATE_OPTION_PRIMARY_FIELD_FIRST_UID = os::statsd::StateField::PRIMARY_FIELD_FIRST_UID;
+const int STATE_OPTION_PRIMARY = os::statsd::StateField::PRIMARY_FIELD;
+
+const int ATOM_ID_FIELD_NUMBER = -1;
+
+const string DEFAULT_MODULE_NAME = "DEFAULT";
+
 /**
  * The types for atom parameters.
  */
 typedef enum {
-  JAVA_TYPE_UNKNOWN = 0,
+    JAVA_TYPE_UNKNOWN = 0,
 
-  JAVA_TYPE_ATTRIBUTION_CHAIN = 1,
-  JAVA_TYPE_BOOLEAN = 2,
-  JAVA_TYPE_INT = 3,
-  JAVA_TYPE_LONG = 4,
-  JAVA_TYPE_FLOAT = 5,
-  JAVA_TYPE_DOUBLE = 6,
-  JAVA_TYPE_STRING = 7,
-  JAVA_TYPE_ENUM = 8,
-  JAVA_TYPE_KEY_VALUE_PAIR = 9,
+    JAVA_TYPE_ATTRIBUTION_CHAIN = 1,
+    JAVA_TYPE_BOOLEAN = 2,
+    JAVA_TYPE_INT = 3,
+    JAVA_TYPE_LONG = 4,
+    JAVA_TYPE_FLOAT = 5,
+    JAVA_TYPE_DOUBLE = 6,
+    JAVA_TYPE_STRING = 7,
+    JAVA_TYPE_ENUM = 8,
+    JAVA_TYPE_KEY_VALUE_PAIR = 9,
 
-  JAVA_TYPE_OBJECT = -1,
-  JAVA_TYPE_BYTE_ARRAY = -2,
+    JAVA_TYPE_OBJECT = -1,
+    JAVA_TYPE_BYTE_ARRAY = -2,
 } java_type_t;
 
+enum AnnotationType {
+    ANNOTATION_TYPE_UNKNOWN = 0,
+    ANNOTATION_TYPE_INT = 1,
+    ANNOTATION_TYPE_BOOL = 2,
+};
+
+union AnnotationValue {
+    int intValue;
+    bool boolValue;
+
+    AnnotationValue(const int value) : intValue(value) {
+    }
+    AnnotationValue(const bool value) : boolValue(value) {
+    }
+};
+
+struct Annotation {
+    const unsigned char annotationId;
+    const int atomId;
+    AnnotationType type;
+    AnnotationValue value;
+
+    inline Annotation(unsigned char annotationId, int atomId, AnnotationType type,
+                      AnnotationValue value)
+        : annotationId(annotationId), atomId(atomId), type(type), value(value) {
+    }
+    inline ~Annotation() {
+    }
+
+    inline bool operator<(const Annotation& that) const {
+        return atomId == that.atomId ? annotationId < that.annotationId : atomId < that.atomId;
+    }
+};
+
+using FieldNumberToAnnotations = map<int, set<shared_ptr<Annotation>>>;
+
 /**
  * The name and type for an atom field.
  */
@@ -65,15 +119,20 @@
     string name;
     java_type_t javaType;
 
-    // If the field is of type enum, the following map contains the list of enum values.
+    // If the field is of type enum, the following map contains the list of enum
+    // values.
     map<int /* numeric value */, string /* value name */> enumValues;
 
-    inline AtomField() :name(), javaType(JAVA_TYPE_UNKNOWN) {}
-    inline AtomField(const AtomField& that) :name(that.name),
-                                             javaType(that.javaType),
-                                             enumValues(that.enumValues) {}
-    inline AtomField(string n, java_type_t jt) :name(n), javaType(jt) {}
-    inline ~AtomField() {}
+    inline AtomField() : name(), javaType(JAVA_TYPE_UNKNOWN) {
+    }
+    inline AtomField(const AtomField& that)
+        : name(that.name), javaType(that.javaType), enumValues(that.enumValues) {
+    }
+
+    inline AtomField(string n, java_type_t jt) : name(n), javaType(jt) {
+    }
+    inline ~AtomField() {
+    }
 };
 
 /**
@@ -86,6 +145,8 @@
     string message;
     vector<AtomField> fields;
 
+    FieldNumberToAnnotations fieldNumberToAnnotations;
+
     vector<int> primaryFields;
     int exclusiveField = 0;
     int defaultState = INT_MAX;
@@ -96,9 +157,7 @@
 
     bool whitelisted = false;
 
-    vector<int> binaryFields;
-
-    set<string> moduleNames;
+    bool truncateTimestamp = false;
 
     AtomDecl();
     AtomDecl(const AtomDecl& that);
@@ -111,21 +170,20 @@
 };
 
 struct Atoms {
-    map<vector<java_type_t>, set<string>> signatures_to_modules;
+    map<vector<java_type_t>, FieldNumberToAnnotations> signatureInfoMap;
     set<AtomDecl> decls;
     set<AtomDecl> non_chained_decls;
-    map<vector<java_type_t>, set<string>> non_chained_signatures_to_modules;
+    map<vector<java_type_t>, FieldNumberToAnnotations> nonChainedSignatureInfoMap;
     int maxPushedAtomId;
 };
 
 /**
  * Gather the information about the atoms.  Returns the number of errors.
  */
-int collate_atoms(const Descriptor* descriptor, Atoms* atoms);
-int collate_atom(const Descriptor *atom, AtomDecl *atomDecl, vector<java_type_t> *signature);
+int collate_atoms(const Descriptor* descriptor, const string& moduleName, Atoms* atoms);
+int collate_atom(const Descriptor* atom, AtomDecl* atomDecl, vector<java_type_t>* signature);
 
 }  // namespace stats_log_api_gen
 }  // namespace android
 
-
-#endif // ANDROID_STATS_LOG_API_GEN_COLLATION_H
+#endif  // ANDROID_STATS_LOG_API_GEN_COLLATION_H
diff --git a/tools/stats_log_api_gen/atoms_info_writer.cpp b/tools/stats_log_api_gen/atoms_info_writer.cpp
index 58f13a4..6944752 100644
--- a/tools/stats_log_api_gen/atoms_info_writer.cpp
+++ b/tools/stats_log_api_gen/atoms_info_writer.cpp
@@ -15,12 +15,13 @@
  */
 
 #include "atoms_info_writer.h"
-#include "utils.h"
 
 #include <map>
 #include <set>
 #include <vector>
 
+#include "utils.h"
+
 namespace android {
 namespace stats_log_api_gen {
 
@@ -42,35 +43,27 @@
             "  const static std::set<int> "
             "kTruncatingTimestampAtomBlackList;\n");
     fprintf(out, "  const static std::map<int, int> kAtomsWithUidField;\n");
-    fprintf(out,
-            "  const static std::set<int> kAtomsWithAttributionChain;\n");
+    fprintf(out, "  const static std::set<int> kAtomsWithAttributionChain;\n");
     fprintf(out,
             "  const static std::map<int, StateAtomFieldOptions> "
             "kStateAtomsFieldOptions;\n");
-    fprintf(out,
-            "  const static std::map<int, std::vector<int>> "
-            "kBytesFieldAtoms;\n");
-    fprintf(out,
-            "  const static std::set<int> kWhitelistedAtoms;\n");
+    fprintf(out, "  const static std::set<int> kWhitelistedAtoms;\n");
     fprintf(out, "};\n");
     fprintf(out, "const static int kMaxPushedAtomId = %d;\n\n", atoms.maxPushedAtomId);
-
 }
 
 static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) {
-    std::set<string> kTruncatingAtomNames = {
-            "mobile_radio_power_state_changed",
-            "audio_state_changed",
-            "call_state_changed",
-            "phone_signal_strength_changed",
-            "mobile_bytes_transfer_by_fg_bg",
-            "mobile_bytes_transfer"
-    };
+    std::set<string> kTruncatingAtomNames = {"mobile_radio_power_state_changed",
+                                             "audio_state_changed",
+                                             "call_state_changed",
+                                             "phone_signal_strength_changed",
+                                             "mobile_bytes_transfer_by_fg_bg",
+                                             "mobile_bytes_transfer"};
     fprintf(out,
             "const std::set<int> "
             "AtomsInfo::kTruncatingTimestampAtomBlackList = {\n");
-    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
-         atom != atoms.decls.end(); atom++) {
+    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin(); atom != atoms.decls.end();
+         atom++) {
         if (kTruncatingAtomNames.find(atom->name) != kTruncatingAtomNames.end()) {
             const string constant = make_constant_name(atom->name);
             fprintf(out, "    %d, // %s\n", atom->code, constant.c_str());
@@ -80,10 +73,9 @@
     fprintf(out, "};\n");
     fprintf(out, "\n");
 
-    fprintf(out,
-            "const std::set<int> AtomsInfo::kAtomsWithAttributionChain = {\n");
-    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
-         atom != atoms.decls.end(); atom++) {
+    fprintf(out, "const std::set<int> AtomsInfo::kAtomsWithAttributionChain = {\n");
+    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin(); atom != atoms.decls.end();
+         atom++) {
         for (vector<AtomField>::const_iterator field = atom->fields.begin();
              field != atom->fields.end(); field++) {
             if (field->javaType == JAVA_TYPE_ATTRIBUTION_CHAIN) {
@@ -97,10 +89,9 @@
     fprintf(out, "};\n");
     fprintf(out, "\n");
 
-    fprintf(out,
-            "const std::set<int> AtomsInfo::kWhitelistedAtoms = {\n");
-    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
-         atom != atoms.decls.end(); atom++) {
+    fprintf(out, "const std::set<int> AtomsInfo::kWhitelistedAtoms = {\n");
+    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin(); atom != atoms.decls.end();
+         atom++) {
         if (atom->whitelisted) {
             const string constant = make_constant_name(atom->name);
             fprintf(out, "    %d, // %s\n", atom->code, constant.c_str());
@@ -112,8 +103,8 @@
 
     fprintf(out, "static std::map<int, int> getAtomUidField() {\n");
     fprintf(out, "    std::map<int, int> uidField;\n");
-    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
-         atom != atoms.decls.end(); atom++) {
+    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin(); atom != atoms.decls.end();
+         atom++) {
         if (atom->uidField == 0) {
             continue;
         }
@@ -121,8 +112,8 @@
                 "\n    // Adding uid field for atom "
                 "(%d)%s\n",
                 atom->code, atom->name.c_str());
-        fprintf(out, "    uidField[%d /* %s */] = %d;\n",
-                atom->code, make_constant_name(atom->name).c_str(), atom->uidField);
+        fprintf(out, "    uidField[%d /* %s */] = %d;\n", atom->code,
+                make_constant_name(atom->name).c_str(), atom->uidField);
     }
 
     fprintf(out, "    return uidField;\n");
@@ -137,8 +128,8 @@
             "getStateAtomFieldOptions() {\n");
     fprintf(out, "    std::map<int, StateAtomFieldOptions> options;\n");
     fprintf(out, "    StateAtomFieldOptions* opt;\n");
-    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
-         atom != atoms.decls.end(); atom++) {
+    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin(); atom != atoms.decls.end();
+         atom++) {
         if (atom->primaryFields.size() == 0 && atom->exclusiveField == 0) {
             continue;
         }
@@ -146,8 +137,8 @@
                 "\n    // Adding primary and exclusive fields for atom "
                 "(%d)%s\n",
                 atom->code, atom->name.c_str());
-        fprintf(out, "    opt = &(options[%d /* %s */]);\n",
-                atom->code, make_constant_name(atom->name).c_str());
+        fprintf(out, "    opt = &(options[%d /* %s */]);\n", atom->code,
+                make_constant_name(atom->name).c_str());
         fprintf(out, "    opt->primaryFields.reserve(%lu);\n", atom->primaryFields.size());
         for (const auto& field : atom->primaryFields) {
             fprintf(out, "    opt->primaryFields.push_back(%d);\n", field);
@@ -175,38 +166,9 @@
             "const std::map<int, StateAtomFieldOptions> "
             "AtomsInfo::kStateAtomsFieldOptions = "
             "getStateAtomFieldOptions();\n");
-
-    fprintf(out,
-            "static std::map<int, std::vector<int>> "
-            "getBinaryFieldAtoms() {\n");
-    fprintf(out, "    std::map<int, std::vector<int>> options;\n");
-    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
-         atom != atoms.decls.end(); atom++) {
-        if (atom->binaryFields.size() == 0) {
-            continue;
-        }
-        fprintf(out,
-                "\n    // Adding binary fields for atom "
-                "(%d)%s\n",
-                atom->code, atom->name.c_str());
-
-        for (const auto& field : atom->binaryFields) {
-            fprintf(out, "    options[%d /* %s */].push_back(%d);\n",
-                    atom->code, make_constant_name(atom->name).c_str(), field);
-        }
-    }
-
-    fprintf(out, "    return options;\n");
-    fprintf(out, "}\n");
-
-    fprintf(out,
-            "const std::map<int, std::vector<int>> "
-            "AtomsInfo::kBytesFieldAtoms = "
-            "getBinaryFieldAtoms();\n");
-
 }
 
-int write_atoms_info_header(FILE* out, const Atoms &atoms, const string& namespaceStr) {
+int write_atoms_info_header(FILE* out, const Atoms& atoms, const string& namespaceStr) {
     // Print prelude
     fprintf(out, "// This file is autogenerated\n");
     fprintf(out, "\n");
@@ -227,8 +189,8 @@
     return 0;
 }
 
-int write_atoms_info_cpp(FILE *out, const Atoms &atoms, const string& namespaceStr,
-        const string& importHeader) {
+int write_atoms_info_cpp(FILE* out, const Atoms& atoms, const string& namespaceStr,
+                         const string& importHeader) {
     // Print prelude
     fprintf(out, "// This file is autogenerated\n");
     fprintf(out, "\n");
diff --git a/tools/stats_log_api_gen/atoms_info_writer.h b/tools/stats_log_api_gen/atoms_info_writer.h
index d04e65a..ffe9e43 100644
--- a/tools/stats_log_api_gen/atoms_info_writer.h
+++ b/tools/stats_log_api_gen/atoms_info_writer.h
@@ -16,18 +16,18 @@
 
 #pragma once
 
-#include "Collation.h"
-
 #include <stdio.h>
 #include <string.h>
 
+#include "Collation.h"
+
 namespace android {
 namespace stats_log_api_gen {
 
 using namespace std;
 
 int write_atoms_info_cpp(FILE* out, const Atoms& atoms, const string& namespaceStr,
-        const string& importHeader);
+                         const string& importHeader);
 
 int write_atoms_info_header(FILE* out, const Atoms& atoms, const string& namespaceStr);
 
diff --git a/tools/stats_log_api_gen/java_writer.cpp b/tools/stats_log_api_gen/java_writer.cpp
index 209d511..5a22b5c 100644
--- a/tools/stats_log_api_gen/java_writer.cpp
+++ b/tools/stats_log_api_gen/java_writer.cpp
@@ -15,6 +15,7 @@
  */
 
 #include "java_writer.h"
+
 #include "java_writer_q.h"
 #include "utils.h"
 
@@ -22,11 +23,8 @@
 namespace stats_log_api_gen {
 
 static int write_java_q_logger_class(
-        FILE* out,
-        const map<vector<java_type_t>, set<string>>& signatures_to_modules,
-        const AtomDecl &attributionDecl,
-        const string& moduleName
-        ) {
+        FILE* out, const map<vector<java_type_t>, FieldNumberToAnnotations>& signatureInfoMap,
+        const AtomDecl& attributionDecl) {
     fprintf(out, "\n");
     fprintf(out, "    // Write logging helper methods for statsd in Q and earlier.\n");
     fprintf(out, "    private static class QLogger {\n");
@@ -36,38 +34,61 @@
     // Print Q write methods.
     fprintf(out, "\n");
     fprintf(out, "        // Write methods.\n");
-    write_java_methods_q_schema(
-            out, signatures_to_modules, attributionDecl, moduleName, "        ");
+    write_java_methods_q_schema(out, signatureInfoMap, attributionDecl, "        ");
 
     fprintf(out, "    }\n");
     return 0;
 }
 
+static void write_annotations(FILE* out, int argIndex,
+                              const FieldNumberToAnnotations& fieldNumberToAnnotations) {
+    auto it = fieldNumberToAnnotations.find(argIndex);
+    if (it == fieldNumberToAnnotations.end()) {
+        return;
+    }
+    const set<shared_ptr<Annotation>>& annotations = it->second;
+    for (auto& annotation : annotations) {
+        // TODO(b/151744250): Group annotations for same atoms.
+        // TODO(b/151786433): Write atom constant name instead of atom id literal.
+        fprintf(out, "        if (code == %d) {\n", annotation->atomId);
+        switch (annotation->type) {
+            case ANNOTATION_TYPE_INT:
+                // TODO(b/151776731): Check for reset state annotation and only include
+                // reset state when field value == default state annotation value.
+                // TODO(b/151786433): Write annotation constant name instead of
+                // annotation id literal.
+                fprintf(out, "            builder.addIntAnnotation((byte) %d, %d);\n",
+                        annotation->annotationId, annotation->value.intValue);
+                break;
+            case ANNOTATION_TYPE_BOOL:
+                // TODO(b/151786433): Write annotation constant name instead of
+                // annotation id literal.
+                fprintf(out, "            builder.addBooleanAnnotation((byte) %d, %s);\n",
+                        annotation->annotationId, annotation->value.boolValue ? "true" : "false");
+                break;
+            default:
+                break;
+        }
+        fprintf(out, "        }\n");
+    }
+}
 
 static int write_java_methods(
-        FILE* out,
-        const map<vector<java_type_t>, set<string>>& signatures_to_modules,
-        const AtomDecl &attributionDecl,
-        const string& moduleName,
-        const bool supportQ
-        ) {
-    for (auto signature_to_modules_it = signatures_to_modules.begin();
-            signature_to_modules_it != signatures_to_modules.end(); signature_to_modules_it++) {
-        // Skip if this signature is not needed for the module.
-        if (!signature_needed_for_module(signature_to_modules_it->second, moduleName)) {
-            continue;
-        }
-
+        FILE* out, const map<vector<java_type_t>, FieldNumberToAnnotations>& signatureInfoMap,
+        const AtomDecl& attributionDecl, const bool supportQ) {
+    for (auto signatureInfoMapIt = signatureInfoMap.begin();
+         signatureInfoMapIt != signatureInfoMap.end(); signatureInfoMapIt++) {
         // Print method signature.
         fprintf(out, "    public static void write(int code");
-        vector<java_type_t> signature = signature_to_modules_it->first;
+        const vector<java_type_t>& signature = signatureInfoMapIt->first;
+        const FieldNumberToAnnotations& fieldNumberToAnnotations = signatureInfoMapIt->second;
         int argIndex = 1;
-        for (vector<java_type_t>::const_iterator arg = signature.begin();
-                arg != signature.end(); arg++) {
+        for (vector<java_type_t>::const_iterator arg = signature.begin(); arg != signature.end();
+             arg++) {
             if (*arg == JAVA_TYPE_ATTRIBUTION_CHAIN) {
                 for (auto chainField : attributionDecl.fields) {
-                    fprintf(out, ", %s[] %s",
-                        java_type_name(chainField.javaType), chainField.name.c_str());
+                    fprintf(out, ", %s[] %s", java_type_name(chainField.javaType),
+                            chainField.name.c_str());
                 }
             } else if (*arg == JAVA_TYPE_KEY_VALUE_PAIR) {
                 fprintf(out, ", android.util.SparseArray<Object> valueMap");
@@ -81,135 +102,136 @@
         // Print method body.
         string indent("");
         if (supportQ) {
-            // TODO(b/146235828): Use just SDK_INT check once it is incremented from Q.
+            // TODO(b/146235828): Use just SDK_INT check once it is incremented from
+            // Q.
             fprintf(out, "        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.Q\n");
-            fprintf(out, "                || (Build.VERSION.SDK_INT == Build.VERSION_CODES.Q\n");
+            fprintf(out,
+                    "                || (Build.VERSION.SDK_INT == "
+                    "Build.VERSION_CODES.Q\n");
             fprintf(out, "                    && Build.VERSION.PREVIEW_SDK_INT > 0)) {\n");
             indent = "    ";
         }
 
         // Start StatsEvent.Builder.
-        fprintf(out, "%s        final StatsEvent.Builder builder = StatsEvent.newBuilder();\n",
+        fprintf(out,
+                "%s        final StatsEvent.Builder builder = "
+                "StatsEvent.newBuilder();\n",
                 indent.c_str());
 
         // Write atom code.
         fprintf(out, "%s        builder.setAtomId(code);\n", indent.c_str());
+        write_annotations(out, ATOM_ID_FIELD_NUMBER, fieldNumberToAnnotations);
 
         // Write the args.
         argIndex = 1;
-        for (vector<java_type_t>::const_iterator arg = signature.begin();
-                arg != signature.end(); arg++) {
+        for (vector<java_type_t>::const_iterator arg = signature.begin(); arg != signature.end();
+             arg++) {
             switch (*arg) {
-            case JAVA_TYPE_BOOLEAN:
-                fprintf(out, "%s        builder.writeBoolean(arg%d);\n", indent.c_str(), argIndex);
-                break;
-            case JAVA_TYPE_INT:
-            case JAVA_TYPE_ENUM:
-                fprintf(out, "%s        builder.writeInt(arg%d);\n", indent.c_str(), argIndex);
-                break;
-            case JAVA_TYPE_FLOAT:
-                fprintf(out, "%s        builder.writeFloat(arg%d);\n", indent.c_str(), argIndex);
-                break;
-            case JAVA_TYPE_LONG:
-                fprintf(out, "%s        builder.writeLong(arg%d);\n", indent.c_str(), argIndex);
-                break;
-            case JAVA_TYPE_STRING:
-                fprintf(out, "%s        builder.writeString(arg%d);\n", indent.c_str(), argIndex);
-                break;
-            case JAVA_TYPE_BYTE_ARRAY:
-                fprintf(out, "%s        builder.writeByteArray(null == arg%d ? new byte[0] : arg%d);\n",
-                        indent.c_str(), argIndex, argIndex);
-                break;
-            case JAVA_TYPE_ATTRIBUTION_CHAIN:
-            {
-                const char* uidName = attributionDecl.fields.front().name.c_str();
-                const char* tagName = attributionDecl.fields.back().name.c_str();
+                case JAVA_TYPE_BOOLEAN:
+                    fprintf(out, "%s        builder.writeBoolean(arg%d);\n", indent.c_str(),
+                            argIndex);
+                    break;
+                case JAVA_TYPE_INT:
+                case JAVA_TYPE_ENUM:
+                    fprintf(out, "%s        builder.writeInt(arg%d);\n", indent.c_str(), argIndex);
+                    break;
+                case JAVA_TYPE_FLOAT:
+                    fprintf(out, "%s        builder.writeFloat(arg%d);\n", indent.c_str(),
+                            argIndex);
+                    break;
+                case JAVA_TYPE_LONG:
+                    fprintf(out, "%s        builder.writeLong(arg%d);\n", indent.c_str(), argIndex);
+                    break;
+                case JAVA_TYPE_STRING:
+                    fprintf(out, "%s        builder.writeString(arg%d);\n", indent.c_str(),
+                            argIndex);
+                    break;
+                case JAVA_TYPE_BYTE_ARRAY:
+                    fprintf(out,
+                            "%s        builder.writeByteArray(null == arg%d ? new byte[0] : "
+                            "arg%d);\n",
+                            indent.c_str(), argIndex, argIndex);
+                    break;
+                case JAVA_TYPE_ATTRIBUTION_CHAIN: {
+                    const char* uidName = attributionDecl.fields.front().name.c_str();
+                    const char* tagName = attributionDecl.fields.back().name.c_str();
 
-                fprintf(out, "%s        builder.writeAttributionChain(\n", indent.c_str());
-                fprintf(out, "%s                null == %s ? new int[0] : %s,\n",
-                        indent.c_str(), uidName, uidName);
-                fprintf(out, "%s                null == %s ? new String[0] : %s);\n",
-                        indent.c_str(), tagName, tagName);
-                break;
+                    fprintf(out, "%s        builder.writeAttributionChain(\n", indent.c_str());
+                    fprintf(out, "%s                null == %s ? new int[0] : %s,\n",
+                            indent.c_str(), uidName, uidName);
+                    fprintf(out, "%s                null == %s ? new String[0] : %s);\n",
+                            indent.c_str(), tagName, tagName);
+                    break;
+                }
+                case JAVA_TYPE_KEY_VALUE_PAIR:
+                    fprintf(out, "\n");
+                    fprintf(out, "%s        // Write KeyValuePairs.\n", indent.c_str());
+                    fprintf(out, "%s        final int count = valueMap.size();\n", indent.c_str());
+                    fprintf(out, "%s        android.util.SparseIntArray intMap = null;\n",
+                            indent.c_str());
+                    fprintf(out, "%s        android.util.SparseLongArray longMap = null;\n",
+                            indent.c_str());
+                    fprintf(out, "%s        android.util.SparseArray<String> stringMap = null;\n",
+                            indent.c_str());
+                    fprintf(out, "%s        android.util.SparseArray<Float> floatMap = null;\n",
+                            indent.c_str());
+                    fprintf(out, "%s        for (int i = 0; i < count; i++) {\n", indent.c_str());
+                    fprintf(out, "%s            final int key = valueMap.keyAt(i);\n",
+                            indent.c_str());
+                    fprintf(out, "%s            final Object value = valueMap.valueAt(i);\n",
+                            indent.c_str());
+                    fprintf(out, "%s            if (value instanceof Integer) {\n", indent.c_str());
+                    fprintf(out, "%s                if (null == intMap) {\n", indent.c_str());
+                    fprintf(out,
+                            "%s                    intMap = new "
+                            "android.util.SparseIntArray();\n",
+                            indent.c_str());
+                    fprintf(out, "%s                }\n", indent.c_str());
+                    fprintf(out, "%s                intMap.put(key, (Integer) value);\n",
+                            indent.c_str());
+                    fprintf(out, "%s            } else if (value instanceof Long) {\n",
+                            indent.c_str());
+                    fprintf(out, "%s                if (null == longMap) {\n", indent.c_str());
+                    fprintf(out,
+                            "%s                    longMap = new "
+                            "android.util.SparseLongArray();\n",
+                            indent.c_str());
+                    fprintf(out, "%s                }\n", indent.c_str());
+                    fprintf(out, "%s                longMap.put(key, (Long) value);\n",
+                            indent.c_str());
+                    fprintf(out, "%s            } else if (value instanceof String) {\n",
+                            indent.c_str());
+                    fprintf(out, "%s                if (null == stringMap) {\n", indent.c_str());
+                    fprintf(out,
+                            "%s                    stringMap = new "
+                            "android.util.SparseArray<>();\n",
+                            indent.c_str());
+                    fprintf(out, "%s                }\n", indent.c_str());
+                    fprintf(out, "%s                stringMap.put(key, (String) value);\n",
+                            indent.c_str());
+                    fprintf(out, "%s            } else if (value instanceof Float) {\n",
+                            indent.c_str());
+                    fprintf(out, "%s                if (null == floatMap) {\n", indent.c_str());
+                    fprintf(out,
+                            "%s                    floatMap = new "
+                            "android.util.SparseArray<>();\n",
+                            indent.c_str());
+                    fprintf(out, "%s                }\n", indent.c_str());
+                    fprintf(out, "%s                floatMap.put(key, (Float) value);\n",
+                            indent.c_str());
+                    fprintf(out, "%s            }\n", indent.c_str());
+                    fprintf(out, "%s        }\n", indent.c_str());
+                    fprintf(out,
+                            "%s        builder.writeKeyValuePairs("
+                            "intMap, longMap, stringMap, floatMap);\n",
+                            indent.c_str());
+                    break;
+                default:
+                    // Unsupported types: OBJECT, DOUBLE.
+                    fprintf(stderr, "Encountered unsupported type.");
+                    return 1;
             }
-            case JAVA_TYPE_KEY_VALUE_PAIR:
-                fprintf(out, "\n");
-                fprintf(out,
-                        "%s        // Write KeyValuePairs.\n", indent.c_str());
-                fprintf(out,
-                        "%s        final int count = valueMap.size();\n", indent.c_str());
-                fprintf(out,
-                        "%s        android.util.SparseIntArray intMap = null;\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s        android.util.SparseLongArray longMap = null;\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s        android.util.SparseArray<String> stringMap = null;\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s        android.util.SparseArray<Float> floatMap = null;\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s        for (int i = 0; i < count; i++) {\n", indent.c_str());
-                fprintf(out,
-                        "%s            final int key = valueMap.keyAt(i);\n", indent.c_str());
-                fprintf(out,
-                        "%s            final Object value = valueMap.valueAt(i);\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s            if (value instanceof Integer) {\n", indent.c_str());
-                fprintf(out,
-                        "%s                if (null == intMap) {\n", indent.c_str());
-                fprintf(out,
-                        "%s                    intMap = new android.util.SparseIntArray();\n", indent.c_str());
-                fprintf(out,
-                        "%s                }\n", indent.c_str());
-                fprintf(out,
-                        "%s                intMap.put(key, (Integer) value);\n", indent.c_str());
-                fprintf(out,
-                        "%s            } else if (value instanceof Long) {\n", indent.c_str());
-                fprintf(out,
-                        "%s                if (null == longMap) {\n", indent.c_str());
-                fprintf(out,
-                        "%s                    longMap = new android.util.SparseLongArray();\n", indent.c_str());
-                fprintf(out,
-                        "%s                }\n", indent.c_str());
-                fprintf(out,
-                        "%s                longMap.put(key, (Long) value);\n", indent.c_str());
-                fprintf(out,
-                        "%s            } else if (value instanceof String) {\n", indent.c_str());
-                fprintf(out,
-                        "%s                if (null == stringMap) {\n", indent.c_str());
-                fprintf(out,
-                        "%s                    stringMap = new android.util.SparseArray<>();\n", indent.c_str());
-                fprintf(out,
-                        "%s                }\n", indent.c_str());
-                fprintf(out,
-                        "%s                stringMap.put(key, (String) value);\n", indent.c_str());
-                fprintf(out,
-                        "%s            } else if (value instanceof Float) {\n", indent.c_str());
-                fprintf(out,
-                        "%s                if (null == floatMap) {\n", indent.c_str());
-                fprintf(out,
-                        "%s                    floatMap = new android.util.SparseArray<>();\n", indent.c_str());
-                fprintf(out,
-                        "%s                }\n", indent.c_str());
-                fprintf(out,
-                        "%s                floatMap.put(key, (Float) value);\n", indent.c_str());
-                fprintf(out,
-                        "%s            }\n", indent.c_str());
-                fprintf(out,
-                        "%s        }\n", indent.c_str());
-                fprintf(out,
-                        "%s        builder.writeKeyValuePairs("
-                        "intMap, longMap, stringMap, floatMap);\n", indent.c_str());
-                break;
-            default:
-                // Unsupported types: OBJECT, DOUBLE.
-                fprintf(stderr, "Encountered unsupported type.");
-                return 1;
-            }
+            write_annotations(out, argIndex, fieldNumberToAnnotations);
             argIndex++;
         }
 
@@ -223,7 +245,7 @@
             fprintf(out, "            QLogger.write(code");
             argIndex = 1;
             for (vector<java_type_t>::const_iterator arg = signature.begin();
-                arg != signature.end(); arg++) {
+                 arg != signature.end(); arg++) {
                 if (*arg == JAVA_TYPE_ATTRIBUTION_CHAIN) {
                     const char* uidName = attributionDecl.fields.front().name.c_str();
                     const char* tagName = attributionDecl.fields.back().name.c_str();
@@ -238,20 +260,18 @@
                 argIndex++;
             }
             fprintf(out, ");\n");
-            fprintf(out, "        }\n"); // if
+            fprintf(out, "        }\n");  // if
         }
 
-        fprintf(out, "    }\n"); // method
+        fprintf(out, "    }\n");  // method
         fprintf(out, "\n");
     }
     return 0;
-
 }
 
-int write_stats_log_java(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl,
-                                    const string& moduleName, const string& javaClass,
-                                    const string& javaPackage, const bool supportQ,
-                                    const bool supportWorkSource) {
+int write_stats_log_java(FILE* out, const Atoms& atoms, const AtomDecl& attributionDecl,
+                         const string& javaClass, const string& javaPackage, const bool supportQ,
+                         const bool supportWorkSource) {
     // Print prelude
     fprintf(out, "// This file is autogenerated\n");
     fprintf(out, "\n");
@@ -273,24 +293,21 @@
     fprintf(out, " */\n");
     fprintf(out, "public class %s {\n", javaClass.c_str());
 
-    write_java_atom_codes(out, atoms, moduleName);
-    write_java_enum_values(out, atoms, moduleName);
+    write_java_atom_codes(out, atoms);
+    write_java_enum_values(out, atoms);
 
     int errors = 0;
 
     // Print write methods.
     fprintf(out, "    // Write methods\n");
-    errors += write_java_methods(
-            out, atoms.signatures_to_modules, attributionDecl, moduleName, supportQ);
-    errors += write_java_non_chained_methods(
-            out, atoms.non_chained_signatures_to_modules, moduleName);
+    errors += write_java_methods(out, atoms.signatureInfoMap, attributionDecl, supportQ);
+    errors += write_java_non_chained_methods(out, atoms.nonChainedSignatureInfoMap);
     if (supportWorkSource) {
-        errors += write_java_work_source_methods(out, atoms.signatures_to_modules, moduleName);
+        errors += write_java_work_source_methods(out, atoms.signatureInfoMap);
     }
 
     if (supportQ) {
-        errors += write_java_q_logger_class(
-                out, atoms.signatures_to_modules, attributionDecl, moduleName);
+        errors += write_java_q_logger_class(out, atoms.signatureInfoMap, attributionDecl);
     }
 
     fprintf(out, "}\n");
diff --git a/tools/stats_log_api_gen/java_writer.h b/tools/stats_log_api_gen/java_writer.h
index 5b78f05..8b3b505 100644
--- a/tools/stats_log_api_gen/java_writer.h
+++ b/tools/stats_log_api_gen/java_writer.h
@@ -16,25 +16,23 @@
 
 #pragma once
 
-#include "Collation.h"
+#include <stdio.h>
+#include <string.h>
 
 #include <map>
 #include <set>
 #include <vector>
 
-#include <stdio.h>
-#include <string.h>
+#include "Collation.h"
 
 namespace android {
 namespace stats_log_api_gen {
 
 using namespace std;
 
-int write_stats_log_java(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl,
-                         const string& moduleName, const string& javaClass,
-                         const string& javaPackage, const bool supportQ,
+int write_stats_log_java(FILE* out, const Atoms& atoms, const AtomDecl& attributionDecl,
+                         const string& javaClass, const string& javaPackage, const bool supportQ,
                          const bool supportWorkSource);
 
 }  // namespace stats_log_api_gen
 }  // namespace android
-
diff --git a/tools/stats_log_api_gen/java_writer_q.cpp b/tools/stats_log_api_gen/java_writer_q.cpp
index 8f2112a..7d22583 100644
--- a/tools/stats_log_api_gen/java_writer_q.cpp
+++ b/tools/stats_log_api_gen/java_writer_q.cpp
@@ -15,6 +15,7 @@
  */
 
 #include "java_writer_q.h"
+
 #include "utils.h"
 
 namespace android {
@@ -24,7 +25,8 @@
     fprintf(out, "%s// Payload limits.\n", indent.c_str());
     fprintf(out, "%sprivate static final int LOGGER_ENTRY_MAX_PAYLOAD = 4068;\n", indent.c_str());
     fprintf(out,
-            "%sprivate static final int MAX_EVENT_PAYLOAD = LOGGER_ENTRY_MAX_PAYLOAD - 4;\n",
+            "%sprivate static final int MAX_EVENT_PAYLOAD = "
+            "LOGGER_ENTRY_MAX_PAYLOAD - 4;\n",
             indent.c_str());
 
     // Value types. Must match with EventLog.java and log.h.
@@ -37,42 +39,36 @@
     fprintf(out, "%sprivate static final byte FLOAT_TYPE = 4;\n", indent.c_str());
 
     // Size of each value type.
-    // Booleans, ints, floats, and enums take 5 bytes, 1 for the type and 4 for the value.
+    // Booleans, ints, floats, and enums take 5 bytes, 1 for the type and 4 for
+    // the value.
     fprintf(out, "\n");
     fprintf(out, "%s// Size of each value type.\n", indent.c_str());
     fprintf(out, "%sprivate static final int INT_TYPE_SIZE = 5;\n", indent.c_str());
     fprintf(out, "%sprivate static final int FLOAT_TYPE_SIZE = 5;\n", indent.c_str());
     // Longs take 9 bytes, 1 for the type and 8 for the value.
     fprintf(out, "%sprivate static final int LONG_TYPE_SIZE = 9;\n", indent.c_str());
-    // Strings take 5 metadata bytes: 1 byte is for the type, 4 are for the length.
+    // Strings take 5 metadata bytes: 1 byte is for the type, 4 are for the
+    // length.
     fprintf(out, "%sprivate static final int STRING_TYPE_OVERHEAD = 5;\n", indent.c_str());
     fprintf(out, "%sprivate static final int LIST_TYPE_OVERHEAD = 2;\n", indent.c_str());
 }
 
 int write_java_methods_q_schema(
-        FILE* out,
-        const map<vector<java_type_t>, set<string>>& signatures_to_modules,
-        const AtomDecl &attributionDecl,
-        const string& moduleName,
-        const string& indent) {
+        FILE* out, const map<vector<java_type_t>, FieldNumberToAnnotations>& signatureInfoMap,
+        const AtomDecl& attributionDecl, const string& indent) {
     int requiredHelpers = 0;
-    for (auto signature_to_modules_it = signatures_to_modules.begin();
-            signature_to_modules_it != signatures_to_modules.end(); signature_to_modules_it++) {
-        // Skip if this signature is not needed for the module.
-        if (!signature_needed_for_module(signature_to_modules_it->second, moduleName)) {
-            continue;
-        }
-
+    for (auto signatureInfoMapIt = signatureInfoMap.begin();
+         signatureInfoMapIt != signatureInfoMap.end(); signatureInfoMapIt++) {
         // Print method signature.
-        vector<java_type_t> signature = signature_to_modules_it->first;
+        vector<java_type_t> signature = signatureInfoMapIt->first;
         fprintf(out, "%spublic static void write(int code", indent.c_str());
         int argIndex = 1;
-        for (vector<java_type_t>::const_iterator arg = signature.begin();
-                arg != signature.end(); arg++) {
+        for (vector<java_type_t>::const_iterator arg = signature.begin(); arg != signature.end();
+             arg++) {
             if (*arg == JAVA_TYPE_ATTRIBUTION_CHAIN) {
                 for (auto chainField : attributionDecl.fields) {
-                    fprintf(out, ", %s[] %s",
-                        java_type_name(chainField.javaType), chainField.name.c_str());
+                    fprintf(out, ", %s[] %s", java_type_name(chainField.javaType),
+                            chainField.name.c_str());
                 }
             } else if (*arg == JAVA_TYPE_KEY_VALUE_PAIR) {
                 fprintf(out, ", android.util.SparseArray<Object> valueMap");
@@ -87,190 +83,174 @@
         fprintf(out, "%s    // Initial overhead of the list, timestamp, and atom tag.\n",
                 indent.c_str());
         fprintf(out,
-                "%s    int needed = LIST_TYPE_OVERHEAD + LONG_TYPE_SIZE + INT_TYPE_SIZE;\n",
+                "%s    int needed = LIST_TYPE_OVERHEAD + LONG_TYPE_SIZE + "
+                "INT_TYPE_SIZE;\n",
                 indent.c_str());
         argIndex = 1;
-        for (vector<java_type_t>::const_iterator arg = signature.begin();
-                arg != signature.end(); arg++) {
+        for (vector<java_type_t>::const_iterator arg = signature.begin(); arg != signature.end();
+             arg++) {
             switch (*arg) {
-            case JAVA_TYPE_BOOLEAN:
-            case JAVA_TYPE_INT:
-            case JAVA_TYPE_FLOAT:
-            case JAVA_TYPE_ENUM:
-                fprintf(out, "%s    needed += INT_TYPE_SIZE;\n", indent.c_str());
-                break;
-            case JAVA_TYPE_LONG:
-                // Longs take 9 bytes, 1 for the type and 8 for the value.
-                fprintf(out, "%s    needed += LONG_TYPE_SIZE;\n", indent.c_str());
-                break;
-            case JAVA_TYPE_STRING:
-                // Strings take 5 metadata bytes + length of byte encoded string.
-                fprintf(out, "%s    if (arg%d == null) {\n", indent.c_str(), argIndex);
-                fprintf(out, "%s        arg%d = \"\";\n", indent.c_str(), argIndex);
-                fprintf(out, "%s    }\n", indent.c_str());
-                fprintf(out,
-                        "%s    byte[] arg%dBytes = "
-                        "arg%d.getBytes(java.nio.charset.StandardCharsets.UTF_8);\n",
-                        indent.c_str(), argIndex, argIndex);
-                fprintf(out, "%s    needed += STRING_TYPE_OVERHEAD + arg%dBytes.length;\n",
-                        indent.c_str(), argIndex);
-                break;
-            case JAVA_TYPE_BYTE_ARRAY:
-                // Byte arrays take 5 metadata bytes + length of byte array.
-                fprintf(out, "%s    if (arg%d == null) {\n", indent.c_str(), argIndex);
-                fprintf(out, "%s        arg%d = new byte[0];\n", indent.c_str(), argIndex);
-                fprintf(out, "%s    }\n", indent.c_str());
-                fprintf(out, "%s    needed += STRING_TYPE_OVERHEAD + arg%d.length;\n",
-                        indent.c_str(), argIndex);
-                break;
-            case JAVA_TYPE_ATTRIBUTION_CHAIN:
-            {
-                const char* uidName = attributionDecl.fields.front().name.c_str();
-                const char* tagName = attributionDecl.fields.back().name.c_str();
-                // Null checks on the params.
-                fprintf(out, "%s    if (%s == null) {\n", indent.c_str(), uidName);
-                fprintf(out, "%s        %s = new %s[0];\n", indent.c_str(), uidName,
-                        java_type_name(attributionDecl.fields.front().javaType));
-                fprintf(out, "%s    }\n", indent.c_str());
-                fprintf(out, "%s    if (%s == null) {\n", indent.c_str(), tagName);
-                fprintf(out, "%s        %s = new %s[0];\n", indent.c_str(), tagName,
-                        java_type_name(attributionDecl.fields.back().javaType));
-                fprintf(out, "%s    }\n", indent.c_str());
+                case JAVA_TYPE_BOOLEAN:
+                case JAVA_TYPE_INT:
+                case JAVA_TYPE_FLOAT:
+                case JAVA_TYPE_ENUM:
+                    fprintf(out, "%s    needed += INT_TYPE_SIZE;\n", indent.c_str());
+                    break;
+                case JAVA_TYPE_LONG:
+                    // Longs take 9 bytes, 1 for the type and 8 for the value.
+                    fprintf(out, "%s    needed += LONG_TYPE_SIZE;\n", indent.c_str());
+                    break;
+                case JAVA_TYPE_STRING:
+                    // Strings take 5 metadata bytes + length of byte encoded string.
+                    fprintf(out, "%s    if (arg%d == null) {\n", indent.c_str(), argIndex);
+                    fprintf(out, "%s        arg%d = \"\";\n", indent.c_str(), argIndex);
+                    fprintf(out, "%s    }\n", indent.c_str());
+                    fprintf(out,
+                            "%s    byte[] arg%dBytes = "
+                            "arg%d.getBytes(java.nio.charset.StandardCharsets.UTF_8);\n",
+                            indent.c_str(), argIndex, argIndex);
+                    fprintf(out, "%s    needed += STRING_TYPE_OVERHEAD + arg%dBytes.length;\n",
+                            indent.c_str(), argIndex);
+                    break;
+                case JAVA_TYPE_BYTE_ARRAY:
+                    // Byte arrays take 5 metadata bytes + length of byte array.
+                    fprintf(out, "%s    if (arg%d == null) {\n", indent.c_str(), argIndex);
+                    fprintf(out, "%s        arg%d = new byte[0];\n", indent.c_str(), argIndex);
+                    fprintf(out, "%s    }\n", indent.c_str());
+                    fprintf(out, "%s    needed += STRING_TYPE_OVERHEAD + arg%d.length;\n",
+                            indent.c_str(), argIndex);
+                    break;
+                case JAVA_TYPE_ATTRIBUTION_CHAIN: {
+                    const char* uidName = attributionDecl.fields.front().name.c_str();
+                    const char* tagName = attributionDecl.fields.back().name.c_str();
+                    // Null checks on the params.
+                    fprintf(out, "%s    if (%s == null) {\n", indent.c_str(), uidName);
+                    fprintf(out, "%s        %s = new %s[0];\n", indent.c_str(), uidName,
+                            java_type_name(attributionDecl.fields.front().javaType));
+                    fprintf(out, "%s    }\n", indent.c_str());
+                    fprintf(out, "%s    if (%s == null) {\n", indent.c_str(), tagName);
+                    fprintf(out, "%s        %s = new %s[0];\n", indent.c_str(), tagName,
+                            java_type_name(attributionDecl.fields.back().javaType));
+                    fprintf(out, "%s    }\n", indent.c_str());
 
-                // First check that the lengths of the uid and tag arrays are the same.
-                fprintf(out, "%s    if (%s.length != %s.length) {\n",
-                        indent.c_str(), uidName, tagName);
-                fprintf(out, "%s        return;\n", indent.c_str());
-                fprintf(out, "%s    }\n", indent.c_str());
-                fprintf(out, "%s    int attrSize = LIST_TYPE_OVERHEAD;\n", indent.c_str());
-                fprintf(out, "%s    for (int i = 0; i < %s.length; i++) {\n",
-                        indent.c_str(), tagName);
-                fprintf(out, "%s        String str%d = (%s[i] == null) ? \"\" : %s[i];\n",
-                        indent.c_str(), argIndex, tagName, tagName);
-                fprintf(out,
-                        "%s        int str%dlen = "
-                        "str%d.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;\n",
-                        indent.c_str(), argIndex, argIndex);
-                fprintf(out,
-                        "%s        attrSize += "
-                        "LIST_TYPE_OVERHEAD + INT_TYPE_SIZE + STRING_TYPE_OVERHEAD + str%dlen;\n",
-                        indent.c_str(), argIndex);
-                fprintf(out, "%s    }\n", indent.c_str());
-                fprintf(out, "%s    needed += attrSize;\n", indent.c_str());
-                break;
-            }
-            case JAVA_TYPE_KEY_VALUE_PAIR:
-            {
-                fprintf(out,
-                        "%s    // Calculate bytes needed by Key Value Pairs.\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s    final int count = valueMap.size();\n", indent.c_str());
-                fprintf(out,
-                        "%s    android.util.SparseIntArray intMap = null;\n", indent.c_str());
-                fprintf(out,
-                        "%s    android.util.SparseLongArray longMap = null;\n", indent.c_str());
-                fprintf(out,
-                        "%s    android.util.SparseArray<String> stringMap = null;\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s    android.util.SparseArray<Float> floatMap = null;\n", indent.c_str());
-                fprintf(out, "%s    int keyValuePairSize = LIST_TYPE_OVERHEAD;\n", indent.c_str());
-                fprintf(out,
-                        "%s    for (int i = 0; i < count; i++) {\n", indent.c_str());
-                fprintf(out,
-                        "%s        final int key = valueMap.keyAt(i);\n", indent.c_str());
-                fprintf(out,
-                        "%s        final Object value = valueMap.valueAt(i);\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s        if (value instanceof Integer) {\n", indent.c_str());
-                fprintf(out,
-                        "%s            keyValuePairSize += LIST_TYPE_OVERHEAD\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s                    + INT_TYPE_SIZE + INT_TYPE_SIZE;\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s            if (null == intMap) {\n", indent.c_str());
-                fprintf(out,
-                        "%s                intMap = new android.util.SparseIntArray();\n", indent.c_str());
-                fprintf(out,
-                        "%s            }\n", indent.c_str());
-                fprintf(out,
-                        "%s            intMap.put(key, (Integer) value);\n", indent.c_str());
-                fprintf(out,
-                        "%s        } else if (value instanceof Long) {\n", indent.c_str());
-                fprintf(out,
-                        "%s            keyValuePairSize += LIST_TYPE_OVERHEAD\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s                    + INT_TYPE_SIZE + LONG_TYPE_SIZE;\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s            if (null == longMap) {\n", indent.c_str());
-                fprintf(out,
-                        "%s                longMap = new android.util.SparseLongArray();\n", indent.c_str());
-                fprintf(out,
-                        "%s            }\n", indent.c_str());
-                fprintf(out,
-                        "%s            longMap.put(key, (Long) value);\n", indent.c_str());
-                fprintf(out,
-                        "%s        } else if (value instanceof String) {\n", indent.c_str());
-                fprintf(out,
-                        "%s            final String str = (value == null) ? \"\" : "
-                        "(String) value;\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s            final int len = "
-                        "str.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s            keyValuePairSize += LIST_TYPE_OVERHEAD + INT_TYPE_SIZE\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s                    + STRING_TYPE_OVERHEAD + len;\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s            if (null == stringMap) {\n", indent.c_str());
-                fprintf(out,
-                        "%s                stringMap = new android.util.SparseArray<>();\n", indent.c_str());
-                fprintf(out,
-                        "%s            }\n", indent.c_str());
-                fprintf(out,
-                        "%s            stringMap.put(key, str);\n", indent.c_str());
-                fprintf(out,
-                        "%s        } else if (value instanceof Float) {\n", indent.c_str());
-                fprintf(out,
-                        "%s            keyValuePairSize += LIST_TYPE_OVERHEAD\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s                    + INT_TYPE_SIZE + FLOAT_TYPE_SIZE;\n",
-                        indent.c_str());
-                fprintf(out,
-                        "%s            if (null == floatMap) {\n", indent.c_str());
-                fprintf(out,
-                        "%s                floatMap = new android.util.SparseArray<>();\n", indent.c_str());
-                fprintf(out,
-                        "%s            }\n", indent.c_str());
-                fprintf(out,
-                        "%s            floatMap.put(key, (Float) value);\n", indent.c_str());
-                fprintf(out,
-                        "%s        }\n", indent.c_str());
-                fprintf(out,
-                        "%s    }\n", indent.c_str());
-                fprintf(out, "%s    needed += keyValuePairSize;\n", indent.c_str());
-                break;
-            }
-            default:
-                // Unsupported types: OBJECT, DOUBLE.
-                fprintf(stderr, "Module logging does not yet support Object and Double.\n");
-                return 1;
+                    // First check that the lengths of the uid and tag arrays are the
+                    // same.
+                    fprintf(out, "%s    if (%s.length != %s.length) {\n", indent.c_str(), uidName,
+                            tagName);
+                    fprintf(out, "%s        return;\n", indent.c_str());
+                    fprintf(out, "%s    }\n", indent.c_str());
+                    fprintf(out, "%s    int attrSize = LIST_TYPE_OVERHEAD;\n", indent.c_str());
+                    fprintf(out, "%s    for (int i = 0; i < %s.length; i++) {\n", indent.c_str(),
+                            tagName);
+                    fprintf(out, "%s        String str%d = (%s[i] == null) ? \"\" : %s[i];\n",
+                            indent.c_str(), argIndex, tagName, tagName);
+                    fprintf(out,
+                            "%s        int str%dlen = "
+                            "str%d.getBytes(java.nio.charset.StandardCharsets.UTF_8)."
+                            "length;\n",
+                            indent.c_str(), argIndex, argIndex);
+                    fprintf(out,
+                            "%s        attrSize += "
+                            "LIST_TYPE_OVERHEAD + INT_TYPE_SIZE + STRING_TYPE_OVERHEAD + "
+                            "str%dlen;\n",
+                            indent.c_str(), argIndex);
+                    fprintf(out, "%s    }\n", indent.c_str());
+                    fprintf(out, "%s    needed += attrSize;\n", indent.c_str());
+                    break;
+                }
+                case JAVA_TYPE_KEY_VALUE_PAIR: {
+                    fprintf(out, "%s    // Calculate bytes needed by Key Value Pairs.\n",
+                            indent.c_str());
+                    fprintf(out, "%s    final int count = valueMap.size();\n", indent.c_str());
+                    fprintf(out, "%s    android.util.SparseIntArray intMap = null;\n",
+                            indent.c_str());
+                    fprintf(out, "%s    android.util.SparseLongArray longMap = null;\n",
+                            indent.c_str());
+                    fprintf(out, "%s    android.util.SparseArray<String> stringMap = null;\n",
+                            indent.c_str());
+                    fprintf(out, "%s    android.util.SparseArray<Float> floatMap = null;\n",
+                            indent.c_str());
+                    fprintf(out, "%s    int keyValuePairSize = LIST_TYPE_OVERHEAD;\n",
+                            indent.c_str());
+                    fprintf(out, "%s    for (int i = 0; i < count; i++) {\n", indent.c_str());
+                    fprintf(out, "%s        final int key = valueMap.keyAt(i);\n", indent.c_str());
+                    fprintf(out, "%s        final Object value = valueMap.valueAt(i);\n",
+                            indent.c_str());
+                    fprintf(out, "%s        if (value instanceof Integer) {\n", indent.c_str());
+                    fprintf(out, "%s            keyValuePairSize += LIST_TYPE_OVERHEAD\n",
+                            indent.c_str());
+                    fprintf(out, "%s                    + INT_TYPE_SIZE + INT_TYPE_SIZE;\n",
+                            indent.c_str());
+                    fprintf(out, "%s            if (null == intMap) {\n", indent.c_str());
+                    fprintf(out, "%s                intMap = new android.util.SparseIntArray();\n",
+                            indent.c_str());
+                    fprintf(out, "%s            }\n", indent.c_str());
+                    fprintf(out, "%s            intMap.put(key, (Integer) value);\n",
+                            indent.c_str());
+                    fprintf(out, "%s        } else if (value instanceof Long) {\n", indent.c_str());
+                    fprintf(out, "%s            keyValuePairSize += LIST_TYPE_OVERHEAD\n",
+                            indent.c_str());
+                    fprintf(out, "%s                    + INT_TYPE_SIZE + LONG_TYPE_SIZE;\n",
+                            indent.c_str());
+                    fprintf(out, "%s            if (null == longMap) {\n", indent.c_str());
+                    fprintf(out,
+                            "%s                longMap = new "
+                            "android.util.SparseLongArray();\n",
+                            indent.c_str());
+                    fprintf(out, "%s            }\n", indent.c_str());
+                    fprintf(out, "%s            longMap.put(key, (Long) value);\n", indent.c_str());
+                    fprintf(out, "%s        } else if (value instanceof String) {\n",
+                            indent.c_str());
+                    fprintf(out,
+                            "%s            final String str = (value == null) ? \"\" : "
+                            "(String) value;\n",
+                            indent.c_str());
+                    fprintf(out,
+                            "%s            final int len = "
+                            "str.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;\n",
+                            indent.c_str());
+                    fprintf(out,
+                            "%s            keyValuePairSize += LIST_TYPE_OVERHEAD + "
+                            "INT_TYPE_SIZE\n",
+                            indent.c_str());
+                    fprintf(out, "%s                    + STRING_TYPE_OVERHEAD + len;\n",
+                            indent.c_str());
+                    fprintf(out, "%s            if (null == stringMap) {\n", indent.c_str());
+                    fprintf(out,
+                            "%s                stringMap = new "
+                            "android.util.SparseArray<>();\n",
+                            indent.c_str());
+                    fprintf(out, "%s            }\n", indent.c_str());
+                    fprintf(out, "%s            stringMap.put(key, str);\n", indent.c_str());
+                    fprintf(out, "%s        } else if (value instanceof Float) {\n",
+                            indent.c_str());
+                    fprintf(out, "%s            keyValuePairSize += LIST_TYPE_OVERHEAD\n",
+                            indent.c_str());
+                    fprintf(out, "%s                    + INT_TYPE_SIZE + FLOAT_TYPE_SIZE;\n",
+                            indent.c_str());
+                    fprintf(out, "%s            if (null == floatMap) {\n", indent.c_str());
+                    fprintf(out,
+                            "%s                floatMap = new "
+                            "android.util.SparseArray<>();\n",
+                            indent.c_str());
+                    fprintf(out, "%s            }\n", indent.c_str());
+                    fprintf(out, "%s            floatMap.put(key, (Float) value);\n",
+                            indent.c_str());
+                    fprintf(out, "%s        }\n", indent.c_str());
+                    fprintf(out, "%s    }\n", indent.c_str());
+                    fprintf(out, "%s    needed += keyValuePairSize;\n", indent.c_str());
+                    break;
+                }
+                default:
+                    // Unsupported types: OBJECT, DOUBLE.
+                    fprintf(stderr, "Module logging does not yet support Object and Double.\n");
+                    return 1;
             }
             argIndex++;
         }
 
-        // Now we have the size that is needed. Check for overflow and return if needed.
+        // Now we have the size that is needed. Check for overflow and return if
+        // needed.
         fprintf(out, "%s    if (needed > MAX_EVENT_PAYLOAD) {\n", indent.c_str());
         fprintf(out, "%s        return;\n", indent.c_str());
         fprintf(out, "%s    }\n", indent.c_str());
@@ -285,7 +265,8 @@
         fprintf(out, "%s    pos += LIST_TYPE_OVERHEAD;\n", indent.c_str());
 
         // Write timestamp.
-        fprintf(out, "%s    long elapsedRealtime = SystemClock.elapsedRealtimeNanos();\n", indent.c_str());
+        fprintf(out, "%s    long elapsedRealtime = SystemClock.elapsedRealtimeNanos();\n",
+                indent.c_str());
         fprintf(out, "%s    buff[pos] = LONG_TYPE;\n", indent.c_str());
         fprintf(out, "%s    copyLong(buff, pos + 1, elapsedRealtime);\n", indent.c_str());
         fprintf(out, "%s    pos += LONG_TYPE_SIZE;\n", indent.c_str());
@@ -297,77 +278,82 @@
 
         // Write the args.
         argIndex = 1;
-        for (vector<java_type_t>::const_iterator arg = signature.begin();
-                arg != signature.end(); arg++) {
+        for (vector<java_type_t>::const_iterator arg = signature.begin(); arg != signature.end();
+             arg++) {
             switch (*arg) {
-            case JAVA_TYPE_BOOLEAN:
-                fprintf(out, "%s    buff[pos] = INT_TYPE;\n", indent.c_str());
-                fprintf(out, "%s    copyInt(buff, pos + 1, arg%d? 1 : 0);\n",
-                        indent.c_str(), argIndex);
-                fprintf(out, "%s    pos += INT_TYPE_SIZE;\n", indent.c_str());
-                break;
-            case JAVA_TYPE_INT:
-            case JAVA_TYPE_ENUM:
-                fprintf(out, "%s    buff[pos] = INT_TYPE;\n", indent.c_str());
-                fprintf(out, "%s    copyInt(buff, pos + 1, arg%d);\n", indent.c_str(), argIndex);
-                fprintf(out, "%s    pos += INT_TYPE_SIZE;\n", indent.c_str());
-                break;
-            case JAVA_TYPE_FLOAT:
-                requiredHelpers |= JAVA_MODULE_REQUIRES_FLOAT;
-                fprintf(out, "%s    buff[pos] = FLOAT_TYPE;\n", indent.c_str());
-                fprintf(out, "%s    copyFloat(buff, pos + 1, arg%d);\n", indent.c_str(), argIndex);
-                fprintf(out, "%s    pos += FLOAT_TYPE_SIZE;\n", indent.c_str());
-                break;
-            case JAVA_TYPE_LONG:
-                fprintf(out, "%s    buff[pos] = LONG_TYPE;\n", indent.c_str());
-                fprintf(out, "%s    copyLong(buff, pos + 1, arg%d);\n", indent.c_str(), argIndex);
-                fprintf(out, "%s    pos += LONG_TYPE_SIZE;\n", indent.c_str());
-                break;
-            case JAVA_TYPE_STRING:
-                fprintf(out, "%s    buff[pos] = STRING_TYPE;\n", indent.c_str());
-                fprintf(out, "%s    copyInt(buff, pos + 1, arg%dBytes.length);\n",
-                        indent.c_str(), argIndex);
-                fprintf(out, "%s    System.arraycopy("
-                        "arg%dBytes, 0, buff, pos + STRING_TYPE_OVERHEAD, arg%dBytes.length);\n",
-                        indent.c_str(), argIndex, argIndex);
-                fprintf(out, "%s    pos += STRING_TYPE_OVERHEAD + arg%dBytes.length;\n",
-                        indent.c_str(), argIndex);
-                break;
-            case JAVA_TYPE_BYTE_ARRAY:
-                fprintf(out, "%s    buff[pos] = STRING_TYPE;\n", indent.c_str());
-                fprintf(out, "%s    copyInt(buff, pos + 1, arg%d.length);\n",
-                        indent.c_str(), argIndex);
-                fprintf(out, "%s    System.arraycopy("
-                        "arg%d, 0, buff, pos + STRING_TYPE_OVERHEAD, arg%d.length);\n",
-                        indent.c_str(), argIndex, argIndex);
-                fprintf(out, "%s    pos += STRING_TYPE_OVERHEAD + arg%d.length;\n",
-                        indent.c_str(), argIndex);
-                break;
-            case JAVA_TYPE_ATTRIBUTION_CHAIN:
-            {
-                requiredHelpers |= JAVA_MODULE_REQUIRES_ATTRIBUTION;
-                const char* uidName = attributionDecl.fields.front().name.c_str();
-                const char* tagName = attributionDecl.fields.back().name.c_str();
+                case JAVA_TYPE_BOOLEAN:
+                    fprintf(out, "%s    buff[pos] = INT_TYPE;\n", indent.c_str());
+                    fprintf(out, "%s    copyInt(buff, pos + 1, arg%d? 1 : 0);\n", indent.c_str(),
+                            argIndex);
+                    fprintf(out, "%s    pos += INT_TYPE_SIZE;\n", indent.c_str());
+                    break;
+                case JAVA_TYPE_INT:
+                case JAVA_TYPE_ENUM:
+                    fprintf(out, "%s    buff[pos] = INT_TYPE;\n", indent.c_str());
+                    fprintf(out, "%s    copyInt(buff, pos + 1, arg%d);\n", indent.c_str(),
+                            argIndex);
+                    fprintf(out, "%s    pos += INT_TYPE_SIZE;\n", indent.c_str());
+                    break;
+                case JAVA_TYPE_FLOAT:
+                    requiredHelpers |= JAVA_MODULE_REQUIRES_FLOAT;
+                    fprintf(out, "%s    buff[pos] = FLOAT_TYPE;\n", indent.c_str());
+                    fprintf(out, "%s    copyFloat(buff, pos + 1, arg%d);\n", indent.c_str(),
+                            argIndex);
+                    fprintf(out, "%s    pos += FLOAT_TYPE_SIZE;\n", indent.c_str());
+                    break;
+                case JAVA_TYPE_LONG:
+                    fprintf(out, "%s    buff[pos] = LONG_TYPE;\n", indent.c_str());
+                    fprintf(out, "%s    copyLong(buff, pos + 1, arg%d);\n", indent.c_str(),
+                            argIndex);
+                    fprintf(out, "%s    pos += LONG_TYPE_SIZE;\n", indent.c_str());
+                    break;
+                case JAVA_TYPE_STRING:
+                    fprintf(out, "%s    buff[pos] = STRING_TYPE;\n", indent.c_str());
+                    fprintf(out, "%s    copyInt(buff, pos + 1, arg%dBytes.length);\n",
+                            indent.c_str(), argIndex);
+                    fprintf(out,
+                            "%s    System.arraycopy("
+                            "arg%dBytes, 0, buff, pos + STRING_TYPE_OVERHEAD, "
+                            "arg%dBytes.length);\n",
+                            indent.c_str(), argIndex, argIndex);
+                    fprintf(out, "%s    pos += STRING_TYPE_OVERHEAD + arg%dBytes.length;\n",
+                            indent.c_str(), argIndex);
+                    break;
+                case JAVA_TYPE_BYTE_ARRAY:
+                    fprintf(out, "%s    buff[pos] = STRING_TYPE;\n", indent.c_str());
+                    fprintf(out, "%s    copyInt(buff, pos + 1, arg%d.length);\n", indent.c_str(),
+                            argIndex);
+                    fprintf(out,
+                            "%s    System.arraycopy("
+                            "arg%d, 0, buff, pos + STRING_TYPE_OVERHEAD, arg%d.length);\n",
+                            indent.c_str(), argIndex, argIndex);
+                    fprintf(out, "%s    pos += STRING_TYPE_OVERHEAD + arg%d.length;\n",
+                            indent.c_str(), argIndex);
+                    break;
+                case JAVA_TYPE_ATTRIBUTION_CHAIN: {
+                    requiredHelpers |= JAVA_MODULE_REQUIRES_ATTRIBUTION;
+                    const char* uidName = attributionDecl.fields.front().name.c_str();
+                    const char* tagName = attributionDecl.fields.back().name.c_str();
 
-                fprintf(out, "%s    writeAttributionChain(buff, pos, %s, %s);\n", indent.c_str(),
-                        uidName, tagName);
-                fprintf(out, "%s    pos += attrSize;\n", indent.c_str());
-                break;
-            }
-            case JAVA_TYPE_KEY_VALUE_PAIR:
-                requiredHelpers |= JAVA_MODULE_REQUIRES_FLOAT;
-                requiredHelpers |= JAVA_MODULE_REQUIRES_KEY_VALUE_PAIRS;
-                fprintf(out,
-                        "%s    writeKeyValuePairs(buff, pos, (byte) count, intMap, longMap, "
-                        "stringMap, floatMap);\n",
-                        indent.c_str());
-                fprintf(out, "%s    pos += keyValuePairSize;\n", indent.c_str());
-                break;
-            default:
-                // Unsupported types: OBJECT, DOUBLE.
-                fprintf(stderr,
-                        "Object and Double are not supported in module logging");
-                return 1;
+                    fprintf(out, "%s    writeAttributionChain(buff, pos, %s, %s);\n",
+                            indent.c_str(), uidName, tagName);
+                    fprintf(out, "%s    pos += attrSize;\n", indent.c_str());
+                    break;
+                }
+                case JAVA_TYPE_KEY_VALUE_PAIR:
+                    requiredHelpers |= JAVA_MODULE_REQUIRES_FLOAT;
+                    requiredHelpers |= JAVA_MODULE_REQUIRES_KEY_VALUE_PAIRS;
+                    fprintf(out,
+                            "%s    writeKeyValuePairs(buff, pos, (byte) count, intMap, "
+                            "longMap, "
+                            "stringMap, floatMap);\n",
+                            indent.c_str());
+                    fprintf(out, "%s    pos += keyValuePairSize;\n", indent.c_str());
+                    break;
+                default:
+                    // Unsupported types: OBJECT, DOUBLE.
+                    fprintf(stderr, "Object and Double are not supported in module logging");
+                    return 1;
             }
             argIndex++;
         }
@@ -382,11 +368,8 @@
     return 0;
 }
 
-void write_java_helpers_for_q_schema_methods(
-        FILE* out,
-        const AtomDecl &attributionDecl,
-        const int requiredHelpers,
-        const string& indent) {
+void write_java_helpers_for_q_schema_methods(FILE* out, const AtomDecl& attributionDecl,
+                                             const int requiredHelpers, const string& indent) {
     fprintf(out, "\n");
     fprintf(out, "%s// Helper methods for copying primitives\n", indent.c_str());
     fprintf(out, "%sprivate static void copyInt(byte[] buff, int pos, int val) {\n",
@@ -426,8 +409,7 @@
         fprintf(out, "%sprivate static void writeAttributionChain(byte[] buff, int pos",
                 indent.c_str());
         for (auto chainField : attributionDecl.fields) {
-            fprintf(out, ", %s[] %s",
-                java_type_name(chainField.javaType), chainField.name.c_str());
+            fprintf(out, ", %s[] %s", java_type_name(chainField.javaType), chainField.name.c_str());
         }
         fprintf(out, ") {\n");
 
@@ -443,8 +425,8 @@
         fprintf(out, "%s    for (int i = 0; i < %s.length; i++) {\n", indent.c_str(), tagName);
         // Write the list begin.
         fprintf(out, "%s        buff[pos] = LIST_TYPE;\n", indent.c_str());
-        fprintf(out, "%s        buff[pos + 1] = %lu;\n",
-                indent.c_str(), attributionDecl.fields.size());
+        fprintf(out, "%s        buff[pos + 1] = %lu;\n", indent.c_str(),
+                attributionDecl.fields.size());
         fprintf(out, "%s        pos += LIST_TYPE_OVERHEAD;\n", indent.c_str());
 
         // Write the uid.
@@ -453,18 +435,20 @@
         fprintf(out, "%s        pos += INT_TYPE_SIZE;\n", indent.c_str());
 
         // Write the tag.
-        fprintf(out, "%s        String %sStr = (%s[i] == null) ? \"\" : %s[i];\n",
-                indent.c_str(), tagName, tagName, tagName);
-        fprintf(out, "%s        byte[] %sByte = "
+        fprintf(out, "%s        String %sStr = (%s[i] == null) ? \"\" : %s[i];\n", indent.c_str(),
+                tagName, tagName, tagName);
+        fprintf(out,
+                "%s        byte[] %sByte = "
                 "%sStr.getBytes(java.nio.charset.StandardCharsets.UTF_8);\n",
                 indent.c_str(), tagName, tagName);
         fprintf(out, "%s        buff[pos] = STRING_TYPE;\n", indent.c_str());
         fprintf(out, "%s        copyInt(buff, pos + 1, %sByte.length);\n", indent.c_str(), tagName);
-        fprintf(out, "%s        System.arraycopy("
+        fprintf(out,
+                "%s        System.arraycopy("
                 "%sByte, 0, buff, pos + STRING_TYPE_OVERHEAD, %sByte.length);\n",
                 indent.c_str(), tagName, tagName);
-        fprintf(out, "%s        pos += STRING_TYPE_OVERHEAD + %sByte.length;\n",
-                indent.c_str(), tagName);
+        fprintf(out, "%s        pos += STRING_TYPE_OVERHEAD + %sByte.length;\n", indent.c_str(),
+                tagName);
         fprintf(out, "%s    }\n", indent.c_str());
         fprintf(out, "%s}\n", indent.c_str());
         fprintf(out, "\n");
@@ -472,7 +456,8 @@
 
     if (requiredHelpers & JAVA_MODULE_REQUIRES_KEY_VALUE_PAIRS) {
         fprintf(out,
-                "%sprivate static void writeKeyValuePairs(byte[] buff, int pos, byte numPairs,\n",
+                "%sprivate static void writeKeyValuePairs(byte[] buff, int pos, "
+                "byte numPairs,\n",
                 indent.c_str());
         fprintf(out, "%s        final android.util.SparseIntArray intMap,\n", indent.c_str());
         fprintf(out, "%s        final android.util.SparseLongArray longMap,\n", indent.c_str());
@@ -521,7 +506,9 @@
         fprintf(out, "%s    }\n", indent.c_str());
 
         // Write Strings.
-        fprintf(out, "%s    final int stringMapSize = null == stringMap ? 0 : stringMap.size();\n",
+        fprintf(out,
+                "%s    final int stringMapSize = null == stringMap ? 0 : "
+                "stringMap.size();\n",
                 indent.c_str());
         fprintf(out, "%s    for (int i = 0; i < stringMapSize; i++) {\n", indent.c_str());
         fprintf(out, "%s        buff[pos] = LIST_TYPE;\n", indent.c_str());
@@ -529,7 +516,8 @@
         fprintf(out, "%s        pos += LIST_TYPE_OVERHEAD;\n", indent.c_str());
         fprintf(out, "%s        final int key = stringMap.keyAt(i);\n", indent.c_str());
         fprintf(out, "%s        final String value = stringMap.valueAt(i);\n", indent.c_str());
-        fprintf(out, "%s        final byte[] valueBytes = "
+        fprintf(out,
+                "%s        final byte[] valueBytes = "
                 "value.getBytes(java.nio.charset.StandardCharsets.UTF_8);\n",
                 indent.c_str());
         fprintf(out, "%s        buff[pos] = INT_TYPE;\n", indent.c_str());
@@ -537,15 +525,19 @@
         fprintf(out, "%s        pos += INT_TYPE_SIZE;\n", indent.c_str());
         fprintf(out, "%s        buff[pos] = STRING_TYPE;\n", indent.c_str());
         fprintf(out, "%s        copyInt(buff, pos + 1, valueBytes.length);\n", indent.c_str());
-        fprintf(out, "%s        System.arraycopy("
-                "valueBytes, 0, buff, pos + STRING_TYPE_OVERHEAD, valueBytes.length);\n",
+        fprintf(out,
+                "%s        System.arraycopy("
+                "valueBytes, 0, buff, pos + STRING_TYPE_OVERHEAD, "
+                "valueBytes.length);\n",
                 indent.c_str());
         fprintf(out, "%s        pos += STRING_TYPE_OVERHEAD + valueBytes.length;\n",
                 indent.c_str());
         fprintf(out, "%s    }\n", indent.c_str());
 
         // Write floats.
-        fprintf(out, "%s    final int floatMapSize = null == floatMap ? 0 : floatMap.size();\n",
+        fprintf(out,
+                "%s    final int floatMapSize = null == floatMap ? 0 : "
+                "floatMap.size();\n",
                 indent.c_str());
         fprintf(out, "%s    for (int i = 0; i < floatMapSize; i++) {\n", indent.c_str());
         fprintf(out, "%s        buff[pos] = LIST_TYPE;\n", indent.c_str());
@@ -565,12 +557,11 @@
     }
 }
 
-// This method is called in main.cpp to generate StatsLog for modules that's compatible with
-// Q at compile-time.
+// This method is called in main.cpp to generate StatsLog for modules that's
+// compatible with Q at compile-time.
 int write_stats_log_java_q_for_module(FILE* out, const Atoms& atoms,
-                                      const AtomDecl &attributionDecl, const string& moduleName,
-                                      const string& javaClass, const string& javaPackage,
-                                      const bool supportWorkSource) {
+                                      const AtomDecl& attributionDecl, const string& javaClass,
+                                      const string& javaPackage, const bool supportWorkSource) {
     // Print prelude
     fprintf(out, "// This file is autogenerated\n");
     fprintf(out, "\n");
@@ -589,19 +580,17 @@
 
     write_java_q_logging_constants(out, "    ");
 
-    write_java_atom_codes(out, atoms, moduleName);
+    write_java_atom_codes(out, atoms);
 
-    write_java_enum_values(out, atoms, moduleName);
+    write_java_enum_values(out, atoms);
 
     int errors = 0;
     // Print write methods
     fprintf(out, "    // Write methods\n");
-    errors += write_java_methods_q_schema(out, atoms.signatures_to_modules, attributionDecl,
-            moduleName, "    ");
-    errors += write_java_non_chained_methods(out, atoms.non_chained_signatures_to_modules,
-            moduleName);
+    errors += write_java_methods_q_schema(out, atoms.signatureInfoMap, attributionDecl, "    ");
+    errors += write_java_non_chained_methods(out, atoms.nonChainedSignatureInfoMap);
     if (supportWorkSource) {
-        errors += write_java_work_source_methods(out, atoms.signatures_to_modules, moduleName);
+        errors += write_java_work_source_methods(out, atoms.signatureInfoMap);
     }
 
     fprintf(out, "}\n");
diff --git a/tools/stats_log_api_gen/java_writer_q.h b/tools/stats_log_api_gen/java_writer_q.h
index 6ccb225..f1cfc44 100644
--- a/tools/stats_log_api_gen/java_writer_q.h
+++ b/tools/stats_log_api_gen/java_writer_q.h
@@ -16,14 +16,14 @@
 
 #pragma once
 
-#include "Collation.h"
+#include <stdio.h>
+#include <string.h>
 
 #include <map>
 #include <set>
 #include <vector>
 
-#include <stdio.h>
-#include <string.h>
+#include "Collation.h"
 
 namespace android {
 namespace stats_log_api_gen {
@@ -33,21 +33,15 @@
 void write_java_q_logging_constants(FILE* out, const string& indent);
 
 int write_java_methods_q_schema(
-        FILE* out,
-        const map<vector<java_type_t>, set<string>>& signatures_to_modules,
-        const AtomDecl &attributionDecl,
-        const string& moduleName,
-        const string& indent);
+        FILE* out, const map<vector<java_type_t>, FieldNumberToAnnotations>& signatureInfoMap,
+        const AtomDecl& attributionDecl, const string& indent);
 
-void write_java_helpers_for_q_schema_methods(
-        FILE * out,
-        const AtomDecl &attributionDecl,
-        const int requiredHelpers,
-        const string& indent);
+void write_java_helpers_for_q_schema_methods(FILE* out, const AtomDecl& attributionDecl,
+                                             const int requiredHelpers, const string& indent);
 
 int write_stats_log_java_q_for_module(FILE* out, const Atoms& atoms,
-        const AtomDecl &attributionDecl, const string& moduleName, const string& javaClass,
-        const string& javaPackage, const bool supportWorkSource);
+                                      const AtomDecl& attributionDecl, const string& javaClass,
+                                      const string& javaPackage, const bool supportWorkSource);
 
 }  // namespace stats_log_api_gen
 }  // namespace android
diff --git a/tools/stats_log_api_gen/main.cpp b/tools/stats_log_api_gen/main.cpp
index e9723a1..fda5736 100644
--- a/tools/stats_log_api_gen/main.cpp
+++ b/tools/stats_log_api_gen/main.cpp
@@ -1,21 +1,20 @@
 
-#include "Collation.h"
-#include "atoms_info_writer.h"
-#include "java_writer.h"
-#include "java_writer_q.h"
-#include "native_writer.h"
-#include "utils.h"
-
-#include "frameworks/base/cmds/statsd/src/atoms.pb.h"
+#include <getopt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 
 #include <map>
 #include <set>
 #include <vector>
 
-#include <getopt.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
+#include "Collation.h"
+#include "atoms_info_writer.h"
+#include "frameworks/base/cmds/statsd/src/atoms.pb.h"
+#include "java_writer.h"
+#include "java_writer_q.h"
+#include "native_writer.h"
+#include "utils.h"
 
 using namespace google::protobuf;
 using namespace std;
@@ -25,25 +24,34 @@
 
 using android::os::statsd::Atom;
 
-static void
-print_usage()
-{
+static void print_usage() {
     fprintf(stderr, "usage: stats-log-api-gen OPTIONS\n");
     fprintf(stderr, "\n");
     fprintf(stderr, "OPTIONS\n");
     fprintf(stderr, "  --cpp FILENAME       the header file to output for write helpers\n");
     fprintf(stderr, "  --header FILENAME    the cpp file to output for write helpers\n");
     fprintf(stderr,
-            "  --atomsInfoCpp FILENAME       the header file to output for statsd metadata\n");
-    fprintf(stderr, "  --atomsInfoHeader FILENAME    the cpp file to output for statsd metadata\n");
+            "  --atomsInfoCpp FILENAME       the header file to output for "
+            "statsd metadata\n");
+    fprintf(stderr,
+            "  --atomsInfoHeader FILENAME    the cpp file to output for statsd "
+            "metadata\n");
     fprintf(stderr, "  --help               this message\n");
     fprintf(stderr, "  --java FILENAME      the java file to output\n");
     fprintf(stderr, "  --module NAME        optional, module name to generate outputs for\n");
-    fprintf(stderr, "  --namespace COMMA,SEP,NAMESPACE   required for cpp/header with module\n");
-    fprintf(stderr, "                                    comma separated namespace of the files\n");
-    fprintf(stderr,"  --importHeader NAME  required for cpp/jni to say which header to import "
+    fprintf(stderr,
+            "  --namespace COMMA,SEP,NAMESPACE   required for cpp/header with "
+            "module\n");
+    fprintf(stderr,
+            "                                    comma separated namespace of "
+            "the files\n");
+    fprintf(stderr,
+            "  --importHeader NAME  required for cpp/jni to say which header to "
+            "import "
             "for write helpers\n");
-    fprintf(stderr,"  --atomsInfoImportHeader NAME  required for cpp to say which header to import "
+    fprintf(stderr,
+            "  --atomsInfoImportHeader NAME  required for cpp to say which "
+            "header to import "
             "for statsd metadata\n");
     fprintf(stderr, "  --javaPackage PACKAGE             the package for the java file.\n");
     fprintf(stderr, "                                    required for java with module\n");
@@ -51,17 +59,18 @@
     fprintf(stderr, "                       Optional for Java with module.\n");
     fprintf(stderr, "                       Default is \"StatsLogInternal\"\n");
     fprintf(stderr, "  --supportQ           Include runtime support for Android Q.\n");
-    fprintf(stderr, "  --worksource         Include support for logging WorkSource objects.\n");
-    fprintf(stderr, "  --compileQ           Include compile-time support for Android Q "
+    fprintf(stderr,
+            "  --worksource         Include support for logging WorkSource "
+            "objects.\n");
+    fprintf(stderr,
+            "  --compileQ           Include compile-time support for Android Q "
             "(Java only).\n");
 }
 
 /**
  * Do the argument parsing and execute the tasks.
  */
-static int
-run(int argc, char const*const* argv)
-{
+static int run(int argc, char const* const* argv) {
     string cppFilename;
     string headerFilename;
     string javaFilename;
@@ -171,11 +180,8 @@
         index++;
     }
 
-    if (cppFilename.size() == 0
-            && headerFilename.size() == 0
-            && javaFilename.size() == 0
-            && atomsInfoHeaderFilename.size() == 0
-            && atomsInfoCppFilename.size() == 0) {
+    if (cppFilename.size() == 0 && headerFilename.size() == 0 && javaFilename.size() == 0 &&
+        atomsInfoHeaderFilename.size() == 0 && atomsInfoCppFilename.size() == 0) {
         print_usage();
         return 1;
     }
@@ -194,15 +200,15 @@
 
     // Collate the parameters
     Atoms atoms;
-    int errorCount = collate_atoms(Atom::descriptor(), &atoms);
+    int errorCount = collate_atoms(Atom::descriptor(), moduleName, &atoms);
     if (errorCount != 0) {
         return 1;
     }
 
     AtomDecl attributionDecl;
     vector<java_type_t> attributionSignature;
-    collate_atom(android::os::statsd::AttributionNode::descriptor(),
-                 &attributionDecl, &attributionSignature);
+    collate_atom(android::os::statsd::AttributionNode::descriptor(), &attributionDecl,
+                 &attributionSignature);
 
     // Write the atoms info .cpp file
     if (atomsInfoCppFilename.size() != 0) {
@@ -211,8 +217,8 @@
             fprintf(stderr, "Unable to open file for write: %s\n", atomsInfoCppFilename.c_str());
             return 1;
         }
-        errorCount = android::stats_log_api_gen::write_atoms_info_cpp(
-            out, atoms, cppNamespace, atomsInfoCppHeaderImport);
+        errorCount = android::stats_log_api_gen::write_atoms_info_cpp(out, atoms, cppNamespace,
+                                                                      atomsInfoCppHeaderImport);
         fclose(out);
     }
 
@@ -227,7 +233,6 @@
         fclose(out);
     }
 
-
     // Write the .cpp file
     if (cppFilename.size() != 0) {
         FILE* out = fopen(cppFilename.c_str(), "w");
@@ -240,13 +245,14 @@
             fprintf(stderr, "Must supply --namespace if supplying a specific module\n");
             return 1;
         }
-        // If this is for a specific module, the header file to import must also be provided.
+        // If this is for a specific module, the header file to import must also be
+        // provided.
         if (moduleName != DEFAULT_MODULE_NAME && cppHeaderImport == DEFAULT_CPP_HEADER_IMPORT) {
             fprintf(stderr, "Must supply --headerImport if supplying a specific module\n");
             return 1;
         }
         errorCount = android::stats_log_api_gen::write_stats_log_cpp(
-            out, atoms, attributionDecl, moduleName, cppNamespace, cppHeaderImport, supportQ);
+                out, atoms, attributionDecl, cppNamespace, cppHeaderImport, supportQ);
         fclose(out);
     }
 
@@ -261,8 +267,8 @@
         if (moduleName != DEFAULT_MODULE_NAME && cppNamespace == DEFAULT_CPP_NAMESPACE) {
             fprintf(stderr, "Must supply --namespace if supplying a specific module\n");
         }
-        errorCount = android::stats_log_api_gen::write_stats_log_header(
-            out, atoms, attributionDecl, moduleName, cppNamespace);
+        errorCount = android::stats_log_api_gen::write_stats_log_header(out, atoms, attributionDecl,
+                                                                        cppNamespace);
         fclose(out);
     }
 
@@ -291,11 +297,10 @@
 
         if (compileQ) {
             errorCount = android::stats_log_api_gen::write_stats_log_java_q_for_module(
-                    out, atoms, attributionDecl, moduleName, javaClass, javaPackage,
-                    supportWorkSource);
+                    out, atoms, attributionDecl, javaClass, javaPackage, supportWorkSource);
         } else {
             errorCount = android::stats_log_api_gen::write_stats_log_java(
-                    out, atoms, attributionDecl, moduleName, javaClass, javaPackage, supportQ,
+                    out, atoms, attributionDecl, javaClass, javaPackage, supportQ,
                     supportWorkSource);
         }
 
@@ -311,9 +316,7 @@
 /**
  * Main.
  */
-int
-main(int argc, char const*const* argv)
-{
+int main(int argc, char const* const* argv) {
     GOOGLE_PROTOBUF_VERIFY_VERSION;
 
     return android::stats_log_api_gen::run(argc, argv);
diff --git a/tools/stats_log_api_gen/native_writer.cpp b/tools/stats_log_api_gen/native_writer.cpp
index da207d6..0cf3225 100644
--- a/tools/stats_log_api_gen/native_writer.cpp
+++ b/tools/stats_log_api_gen/native_writer.cpp
@@ -15,33 +15,67 @@
  */
 
 #include "native_writer.h"
+
 #include "utils.h"
 
 namespace android {
 namespace stats_log_api_gen {
 
-static int write_native_stats_write_methods(FILE* out, const Atoms& atoms,
-        const AtomDecl& attributionDecl, const string& moduleName, const bool supportQ) {
-    fprintf(out, "\n");
-    for (auto signature_to_modules_it = atoms.signatures_to_modules.begin();
-        signature_to_modules_it != atoms.signatures_to_modules.end(); signature_to_modules_it++) {
-        if (!signature_needed_for_module(signature_to_modules_it->second, moduleName)) {
-            continue;
+static void write_annotations(FILE* out, int argIndex,
+                              const FieldNumberToAnnotations& fieldNumberToAnnotations,
+                              const string& methodPrefix, const string& methodSuffix) {
+    auto fieldNumberToAnnotationsIt = fieldNumberToAnnotations.find(argIndex);
+    if (fieldNumberToAnnotationsIt == fieldNumberToAnnotations.end()) {
+        return;
+    }
+    const set<shared_ptr<Annotation>>& annotations = fieldNumberToAnnotationsIt->second;
+    for (const shared_ptr<Annotation>& annotation : annotations) {
+        // TODO(b/151744250): Group annotations for same atoms.
+        // TODO(b/151786433): Write atom constant name instead of atom id literal.
+        fprintf(out, "    if (code == %d) {\n", annotation->atomId);
+        switch (annotation->type) {
+            // TODO(b/151776731): Check for reset state annotation and only include
+            // reset state when field value == default state annotation value.
+            case ANNOTATION_TYPE_INT:
+                // TODO(b/151786433): Write annotation constant name instead of
+                // annotation id literal.
+                fprintf(out, "        %saddInt32Annotation(%s%d, %d);\n", methodPrefix.c_str(),
+                        methodSuffix.c_str(), annotation->annotationId, annotation->value.intValue);
+                break;
+            case ANNOTATION_TYPE_BOOL:
+                // TODO(b/151786433): Write annotation constant name instead of
+                // annotation id literal.
+                fprintf(out, "        %saddBoolAnnotation(%s%d, %s);\n", methodPrefix.c_str(),
+                        methodSuffix.c_str(), annotation->annotationId,
+                        annotation->value.boolValue ? "true" : "false");
+                break;
+            default:
+                break;
         }
-        vector<java_type_t> signature = signature_to_modules_it->first;
+        fprintf(out, "    }\n");
+    }
+}
+
+static int write_native_stats_write_methods(FILE* out, const Atoms& atoms,
+                                            const AtomDecl& attributionDecl, const bool supportQ) {
+    fprintf(out, "\n");
+    for (auto signatureInfoMapIt = atoms.signatureInfoMap.begin();
+         signatureInfoMapIt != atoms.signatureInfoMap.end(); signatureInfoMapIt++) {
+        vector<java_type_t> signature = signatureInfoMapIt->first;
+        const FieldNumberToAnnotations& fieldNumberToAnnotations = signatureInfoMapIt->second;
         // Key value pairs not supported in native.
         if (find(signature.begin(), signature.end(), JAVA_TYPE_KEY_VALUE_PAIR) != signature.end()) {
             continue;
         }
-        write_native_method_signature(out, "int stats_write", signature,
-                attributionDecl, " {");
+        write_native_method_signature(out, "int stats_write", signature, attributionDecl, " {");
 
         int argIndex = 1;
         if (supportQ) {
             fprintf(out, "    StatsEventCompat event;\n");
             fprintf(out, "    event.setAtomId(code);\n");
+            write_annotations(out, ATOM_ID_FIELD_NUMBER, fieldNumberToAnnotations, "event.", "");
             for (vector<java_type_t>::const_iterator arg = signature.begin();
-                    arg != signature.end(); arg++) {
+                 arg != signature.end(); arg++) {
                 switch (*arg) {
                     case JAVA_TYPE_ATTRIBUTION_CHAIN: {
                         const char* uidName = attributionDecl.fields.front().name.c_str();
@@ -57,7 +91,7 @@
                     case JAVA_TYPE_BOOLEAN:
                         fprintf(out, "    event.writeBool(arg%d);\n", argIndex);
                         break;
-                    case JAVA_TYPE_INT: // Fall through.
+                    case JAVA_TYPE_INT:  // Fall through.
                     case JAVA_TYPE_ENUM:
                         fprintf(out, "    event.writeInt32(arg%d);\n", argIndex);
                         break;
@@ -75,14 +109,17 @@
                         fprintf(stderr, "Encountered unsupported type.");
                         return 1;
                 }
+                write_annotations(out, argIndex, fieldNumberToAnnotations, "event.", "");
                 argIndex++;
             }
             fprintf(out, "    return event.writeToSocket();\n");
         } else {
             fprintf(out, "    AStatsEvent* event = AStatsEvent_obtain();\n");
             fprintf(out, "    AStatsEvent_setAtomId(event, code);\n");
+            write_annotations(out, ATOM_ID_FIELD_NUMBER, fieldNumberToAnnotations, "AStatsEvent_",
+                              "event, ");
             for (vector<java_type_t>::const_iterator arg = signature.begin();
-                    arg != signature.end(); arg++) {
+                 arg != signature.end(); arg++) {
                 switch (*arg) {
                     case JAVA_TYPE_ATTRIBUTION_CHAIN: {
                         const char* uidName = attributionDecl.fields.front().name.c_str();
@@ -97,13 +134,14 @@
                     case JAVA_TYPE_BYTE_ARRAY:
                         fprintf(out,
                                 "    AStatsEvent_writeByteArray(event, "
-                                "reinterpret_cast<const uint8_t*>(arg%d.arg), arg%d.arg_length);\n",
+                                "reinterpret_cast<const uint8_t*>(arg%d.arg), "
+                                "arg%d.arg_length);\n",
                                 argIndex, argIndex);
                         break;
                     case JAVA_TYPE_BOOLEAN:
                         fprintf(out, "    AStatsEvent_writeBool(event, arg%d);\n", argIndex);
                         break;
-                    case JAVA_TYPE_INT: // Fall through.
+                    case JAVA_TYPE_INT:  // Fall through.
                     case JAVA_TYPE_ENUM:
                         fprintf(out, "    AStatsEvent_writeInt32(event, arg%d);\n", argIndex);
                         break;
@@ -121,6 +159,8 @@
                         fprintf(stderr, "Encountered unsupported type.");
                         return 1;
                 }
+                write_annotations(out, argIndex, fieldNumberToAnnotations, "AStatsEvent_",
+                                  "event, ");
                 argIndex++;
             }
             fprintf(out, "    const int ret = AStatsEvent_write(event);\n");
@@ -133,13 +173,10 @@
 }
 
 static void write_native_stats_write_non_chained_methods(FILE* out, const Atoms& atoms,
-        const AtomDecl& attributionDecl, const string& moduleName) {
+                                                         const AtomDecl& attributionDecl) {
     fprintf(out, "\n");
-    for (auto signature_it = atoms.non_chained_signatures_to_modules.begin();
-            signature_it != atoms.non_chained_signatures_to_modules.end(); signature_it++) {
-        if (!signature_needed_for_module(signature_it->second, moduleName)) {
-            continue;
-        }
+    for (auto signature_it = atoms.nonChainedSignatureInfoMap.begin();
+         signature_it != atoms.nonChainedSignatureInfoMap.end(); signature_it++) {
         vector<java_type_t> signature = signature_it->first;
         // Key value pairs not supported in native.
         if (find(signature.begin(), signature.end(), JAVA_TYPE_KEY_VALUE_PAIR) != signature.end()) {
@@ -147,7 +184,7 @@
         }
 
         write_native_method_signature(out, "int stats_write_non_chained", signature,
-                attributionDecl, " {");
+                                      attributionDecl, " {");
 
         vector<java_type_t> newSignature;
 
@@ -170,22 +207,15 @@
 
         fprintf(out, "}\n\n");
     }
-
 }
 
 static void write_native_method_header(
-        FILE* out,
-        const string& methodName,
-        const map<vector<java_type_t>, set<string>>& signatures_to_modules,
-        const AtomDecl &attributionDecl, const string& moduleName) {
-
-    for (auto signature_to_modules_it = signatures_to_modules.begin();
-            signature_to_modules_it != signatures_to_modules.end(); signature_to_modules_it++) {
-        // Skip if this signature is not needed for the module.
-        if (!signature_needed_for_module(signature_to_modules_it->second, moduleName)) {
-            continue;
-        }
-        vector<java_type_t> signature = signature_to_modules_it->first;
+        FILE* out, const string& methodName,
+        const map<vector<java_type_t>, FieldNumberToAnnotations>& signatureInfoMap,
+        const AtomDecl& attributionDecl) {
+    for (auto signatureInfoMapIt = signatureInfoMap.begin();
+         signatureInfoMapIt != signatureInfoMap.end(); signatureInfoMapIt++) {
+        vector<java_type_t> signature = signatureInfoMapIt->first;
 
         // Key value pairs not supported in native.
         if (find(signature.begin(), signature.end(), JAVA_TYPE_KEY_VALUE_PAIR) != signature.end()) {
@@ -195,9 +225,9 @@
     }
 }
 
-int write_stats_log_cpp(FILE *out, const Atoms &atoms, const AtomDecl &attributionDecl,
-                        const string& moduleName, const string& cppNamespace,
-                        const string& importHeader, const bool supportQ) {
+int write_stats_log_cpp(FILE* out, const Atoms& atoms, const AtomDecl& attributionDecl,
+                        const string& cppNamespace, const string& importHeader,
+                        const bool supportQ) {
     // Print prelude
     fprintf(out, "// This file is autogenerated\n");
     fprintf(out, "\n");
@@ -212,8 +242,8 @@
     fprintf(out, "\n");
     write_namespace(out, cppNamespace);
 
-    write_native_stats_write_methods(out, atoms, attributionDecl, moduleName, supportQ);
-    write_native_stats_write_non_chained_methods(out, atoms, attributionDecl, moduleName);
+    write_native_stats_write_methods(out, atoms, attributionDecl, supportQ);
+    write_native_stats_write_non_chained_methods(out, atoms, attributionDecl);
 
     // Print footer
     fprintf(out, "\n");
@@ -222,8 +252,8 @@
     return 0;
 }
 
-int write_stats_log_header(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl,
-        const string& moduleName, const string& cppNamespace) {
+int write_stats_log_header(FILE* out, const Atoms& atoms, const AtomDecl& attributionDecl,
+                           const string& cppNamespace) {
     // Print prelude
     fprintf(out, "// This file is autogenerated\n");
     fprintf(out, "\n");
@@ -242,31 +272,24 @@
     fprintf(out, " */\n");
     fprintf(out, "\n");
 
-    write_native_atom_constants(out, atoms, attributionDecl, moduleName);
+    write_native_atom_constants(out, atoms, attributionDecl);
 
     // Print constants for the enum values.
     fprintf(out, "//\n");
     fprintf(out, "// Constants for enum values\n");
     fprintf(out, "//\n\n");
-    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
-        atom != atoms.decls.end(); atom++) {
-        // Skip if the atom is not needed for the module.
-        if (!atom_needed_for_module(*atom, moduleName)) {
-            continue;
-        }
-
+    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin(); atom != atoms.decls.end();
+         atom++) {
         for (vector<AtomField>::const_iterator field = atom->fields.begin();
-            field != atom->fields.end(); field++) {
+             field != atom->fields.end(); field++) {
             if (field->javaType == JAVA_TYPE_ENUM) {
-                fprintf(out, "// Values for %s.%s\n", atom->message.c_str(),
-                    field->name.c_str());
+                fprintf(out, "// Values for %s.%s\n", atom->message.c_str(), field->name.c_str());
                 for (map<int, string>::const_iterator value = field->enumValues.begin();
-                    value != field->enumValues.end(); value++) {
+                     value != field->enumValues.end(); value++) {
                     fprintf(out, "const int32_t %s__%s__%s = %d;\n",
-                        make_constant_name(atom->message).c_str(),
-                        make_constant_name(field->name).c_str(),
-                        make_constant_name(value->second).c_str(),
-                        value->first);
+                            make_constant_name(atom->message).c_str(),
+                            make_constant_name(field->name).c_str(),
+                            make_constant_name(value->second).c_str(), value->first);
                 }
                 fprintf(out, "\n");
             }
@@ -286,14 +309,13 @@
     fprintf(out, "//\n");
     fprintf(out, "// Write methods\n");
     fprintf(out, "//\n");
-    write_native_method_header(out, "int stats_write", atoms.signatures_to_modules, attributionDecl,
-            moduleName);
+    write_native_method_header(out, "int stats_write", atoms.signatureInfoMap, attributionDecl);
 
     fprintf(out, "//\n");
     fprintf(out, "// Write flattened methods\n");
     fprintf(out, "//\n");
-    write_native_method_header(out, "int stats_write_non_chained",
-            atoms.non_chained_signatures_to_modules, attributionDecl, moduleName);
+    write_native_method_header(out, "int stats_write_non_chained", atoms.nonChainedSignatureInfoMap,
+                               attributionDecl);
 
     fprintf(out, "\n");
     write_closing_namespace(out, cppNamespace);
diff --git a/tools/stats_log_api_gen/native_writer.h b/tools/stats_log_api_gen/native_writer.h
index aafa96e..264d4db 100644
--- a/tools/stats_log_api_gen/native_writer.h
+++ b/tools/stats_log_api_gen/native_writer.h
@@ -16,22 +16,22 @@
 
 #pragma once
 
-#include "Collation.h"
-
 #include <stdio.h>
 #include <string.h>
 
+#include "Collation.h"
+
 namespace android {
 namespace stats_log_api_gen {
 
 using namespace std;
 
-int write_stats_log_cpp(FILE *out, const Atoms &atoms, const AtomDecl &attributionDecl,
-        const string& moduleName, const string& cppNamespace, const string& importHeader,
-        const bool supportQ);
+int write_stats_log_cpp(FILE* out, const Atoms& atoms, const AtomDecl& attributionDecl,
+                        const string& cppNamespace, const string& importHeader,
+                        const bool supportQ);
 
-int write_stats_log_header(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl,
-        const string& moduleName, const string& cppNamespace);
+int write_stats_log_header(FILE* out, const Atoms& atoms, const AtomDecl& attributionDecl,
+                           const string& cppNamespace);
 
 }  // namespace stats_log_api_gen
 }  // namespace android
diff --git a/tools/stats_log_api_gen/test.proto b/tools/stats_log_api_gen/test.proto
index f6c89c2..480442f 100644
--- a/tools/stats_log_api_gen/test.proto
+++ b/tools/stats_log_api_gen/test.proto
@@ -206,7 +206,7 @@
 }
 
 message ModuleOneAtom {
-    optional int32 field = 1;
+    optional int32 field = 1 [(android.os.statsd.is_uid) = true];
 }
 
 message ModuleTwoAtom {
@@ -214,7 +214,7 @@
 }
 
 message ModuleOneAndTwoAtom {
-    optional int32 field = 1;
+    optional int32 field = 1 [(android.os.statsd.state_field_option).option = EXCLUSIVE_STATE];
 }
 
 message NoModuleAtom {
diff --git a/tools/stats_log_api_gen/test_collation.cpp b/tools/stats_log_api_gen/test_collation.cpp
index 73abaef..9878926 100644
--- a/tools/stats_log_api_gen/test_collation.cpp
+++ b/tools/stats_log_api_gen/test_collation.cpp
@@ -15,12 +15,11 @@
  */
 
 #include <gtest/gtest.h>
-
-#include "frameworks/base/tools/stats_log_api_gen/test.pb.h"
-#include "Collation.h"
-
 #include <stdio.h>
 
+#include "Collation.h"
+#include "frameworks/base/tools/stats_log_api_gen/test.pb.h"
+
 namespace android {
 namespace stats_log_api_gen {
 
@@ -29,16 +28,15 @@
 using std::vector;
 
 /**
- * Return whether the set contains a vector of the elements provided.
+ * Return whether the map contains a vector of the elements provided.
  */
-static bool
-set_contains_vector(const map<vector<java_type_t>, set<string>>& s, int count, ...)
-{
+static bool map_contains_vector(const map<vector<java_type_t>, FieldNumberToAnnotations>& s,
+                                int count, ...) {
     va_list args;
     vector<java_type_t> v;
 
     va_start(args, count);
-    for (int i=0; i<count; i++) {
+    for (int i = 0; i < count; i++) {
         v.push_back((java_type_t)va_arg(args, int));
     }
     va_end(args);
@@ -47,71 +45,69 @@
 }
 
 /**
- * Expect that the provided set contains the elements provided.
+ * Expect that the provided map contains the elements provided.
  */
-#define EXPECT_SET_CONTAINS_SIGNATURE(s, ...) \
-    do { \
-        int count = sizeof((int[]){__VA_ARGS__})/sizeof(int); \
-        EXPECT_TRUE(set_contains_vector(s, count, __VA_ARGS__)); \
-    } while(0)
+#define EXPECT_MAP_CONTAINS_SIGNATURE(s, ...)                    \
+    do {                                                         \
+        int count = sizeof((int[]){__VA_ARGS__}) / sizeof(int);  \
+        EXPECT_TRUE(map_contains_vector(s, count, __VA_ARGS__)); \
+    } while (0)
 
 /** Expects that the provided atom has no enum values for any field. */
-#define EXPECT_NO_ENUM_FIELD(atom) \
-    do { \
+#define EXPECT_NO_ENUM_FIELD(atom)                                           \
+    do {                                                                     \
         for (vector<AtomField>::const_iterator field = atom->fields.begin(); \
-             field != atom->fields.end(); field++) { \
-            EXPECT_TRUE(field->enumValues.empty()); \
-        } \
-    } while(0)
+             field != atom->fields.end(); field++) {                         \
+            EXPECT_TRUE(field->enumValues.empty());                          \
+        }                                                                    \
+    } while (0)
 
 /** Expects that exactly one specific field has expected enum values. */
-#define EXPECT_HAS_ENUM_FIELD(atom, field_name, values)        \
-    do { \
+#define EXPECT_HAS_ENUM_FIELD(atom, field_name, values)                      \
+    do {                                                                     \
         for (vector<AtomField>::const_iterator field = atom->fields.begin(); \
-             field != atom->fields.end(); field++) { \
-            if (field->name == field_name) { \
-                EXPECT_EQ(field->enumValues, values); \
-            } else { \
-                EXPECT_TRUE(field->enumValues.empty()); \
-            } \
-        } \
-    } while(0)
-
+             field != atom->fields.end(); field++) {                         \
+            if (field->name == field_name) {                                 \
+                EXPECT_EQ(field->enumValues, values);                        \
+            } else {                                                         \
+                EXPECT_TRUE(field->enumValues.empty());                      \
+            }                                                                \
+        }                                                                    \
+    } while (0)
 
 /**
  * Test a correct collation, with all the types.
  */
 TEST(CollationTest, CollateStats) {
     Atoms atoms;
-    int errorCount = collate_atoms(Event::descriptor(), &atoms);
+    int errorCount = collate_atoms(Event::descriptor(), DEFAULT_MODULE_NAME, &atoms);
 
     EXPECT_EQ(0, errorCount);
-    EXPECT_EQ(3ul, atoms.signatures_to_modules.size());
+    EXPECT_EQ(3ul, atoms.signatureInfoMap.size());
 
     // IntAtom, AnotherIntAtom
-    EXPECT_SET_CONTAINS_SIGNATURE(atoms.signatures_to_modules, JAVA_TYPE_INT);
+    EXPECT_MAP_CONTAINS_SIGNATURE(atoms.signatureInfoMap, JAVA_TYPE_INT);
 
     // OutOfOrderAtom
-    EXPECT_SET_CONTAINS_SIGNATURE(atoms.signatures_to_modules, JAVA_TYPE_INT, JAVA_TYPE_INT);
+    EXPECT_MAP_CONTAINS_SIGNATURE(atoms.signatureInfoMap, JAVA_TYPE_INT, JAVA_TYPE_INT);
 
     // AllTypesAtom
-    EXPECT_SET_CONTAINS_SIGNATURE(
-        atoms.signatures_to_modules,
-        JAVA_TYPE_ATTRIBUTION_CHAIN, // AttributionChain
-        JAVA_TYPE_FLOAT,             // float
-        JAVA_TYPE_LONG,              // int64
-        JAVA_TYPE_LONG,              // uint64
-        JAVA_TYPE_INT,               // int32
-        JAVA_TYPE_LONG,              // fixed64
-        JAVA_TYPE_INT,               // fixed32
-        JAVA_TYPE_BOOLEAN,           // bool
-        JAVA_TYPE_STRING,            // string
-        JAVA_TYPE_INT,               // uint32
-        JAVA_TYPE_INT,               // AnEnum
-        JAVA_TYPE_INT,               // sfixed32
-        JAVA_TYPE_LONG,              // sfixed64
-        JAVA_TYPE_INT,               // sint32
-        JAVA_TYPE_LONG               // sint64
+    EXPECT_MAP_CONTAINS_SIGNATURE(atoms.signatureInfoMap,
+                                  JAVA_TYPE_ATTRIBUTION_CHAIN,  // AttributionChain
+                                  JAVA_TYPE_FLOAT,              // float
+                                  JAVA_TYPE_LONG,               // int64
+                                  JAVA_TYPE_LONG,               // uint64
+                                  JAVA_TYPE_INT,                // int32
+                                  JAVA_TYPE_LONG,               // fixed64
+                                  JAVA_TYPE_INT,                // fixed32
+                                  JAVA_TYPE_BOOLEAN,            // bool
+                                  JAVA_TYPE_STRING,             // string
+                                  JAVA_TYPE_INT,                // uint32
+                                  JAVA_TYPE_INT,                // AnEnum
+                                  JAVA_TYPE_INT,                // sfixed32
+                                  JAVA_TYPE_LONG,               // sfixed64
+                                  JAVA_TYPE_INT,                // sint32
+                                  JAVA_TYPE_LONG                // sint64
     );
 
     set<AtomDecl>::const_iterator atom = atoms.decls.begin();
@@ -150,17 +146,18 @@
  */
 TEST(CollationTest, NonMessageTypeFails) {
     Atoms atoms;
-    int errorCount = collate_atoms(IntAtom::descriptor(), &atoms);
+    int errorCount = collate_atoms(IntAtom::descriptor(), DEFAULT_MODULE_NAME, &atoms);
 
     EXPECT_EQ(1, errorCount);
 }
 
 /**
- * Test that atoms that have non-primitive types or repeated fields are rejected.
+ * Test that atoms that have non-primitive types or repeated fields are
+ * rejected.
  */
 TEST(CollationTest, FailOnBadTypes) {
     Atoms atoms;
-    int errorCount = collate_atoms(BadTypesEvent::descriptor(), &atoms);
+    int errorCount = collate_atoms(BadTypesEvent::descriptor(), DEFAULT_MODULE_NAME, &atoms);
 
     EXPECT_EQ(4, errorCount);
 }
@@ -170,18 +167,20 @@
  */
 TEST(CollationTest, FailOnSkippedFieldsSingle) {
     Atoms atoms;
-    int errorCount = collate_atoms(BadSkippedFieldSingle::descriptor(), &atoms);
+    int errorCount =
+            collate_atoms(BadSkippedFieldSingle::descriptor(), DEFAULT_MODULE_NAME, &atoms);
 
     EXPECT_EQ(1, errorCount);
 }
 
 /**
- * Test that atoms that skip field numbers (not in the first position, and multiple
- * times) are rejected.
+ * Test that atoms that skip field numbers (not in the first position, and
+ * multiple times) are rejected.
  */
 TEST(CollationTest, FailOnSkippedFieldsMultiple) {
     Atoms atoms;
-    int errorCount = collate_atoms(BadSkippedFieldMultiple::descriptor(), &atoms);
+    int errorCount =
+            collate_atoms(BadSkippedFieldMultiple::descriptor(), DEFAULT_MODULE_NAME, &atoms);
 
     EXPECT_EQ(2, errorCount);
 }
@@ -191,50 +190,50 @@
  * rejected.
  */
 TEST(CollationTest, FailBadAttributionNodePosition) {
-  Atoms atoms;
-  int errorCount =
-      collate_atoms(BadAttributionNodePosition::descriptor(), &atoms);
+    Atoms atoms;
+    int errorCount =
+            collate_atoms(BadAttributionNodePosition::descriptor(), DEFAULT_MODULE_NAME, &atoms);
 
-  EXPECT_EQ(1, errorCount);
+    EXPECT_EQ(1, errorCount);
 }
 
 TEST(CollationTest, FailOnBadStateAtomOptions) {
     Atoms atoms;
-    int errorCount = collate_atoms(BadStateAtoms::descriptor(), &atoms);
+    int errorCount = collate_atoms(BadStateAtoms::descriptor(), DEFAULT_MODULE_NAME, &atoms);
 
     EXPECT_EQ(3, errorCount);
 }
 
 TEST(CollationTest, PassOnGoodStateAtomOptions) {
     Atoms atoms;
-    int errorCount = collate_atoms(GoodStateAtoms::descriptor(), &atoms);
+    int errorCount = collate_atoms(GoodStateAtoms::descriptor(), DEFAULT_MODULE_NAME, &atoms);
     EXPECT_EQ(0, errorCount);
 }
 
 TEST(CollationTest, PassOnGoodBinaryFieldAtom) {
     Atoms atoms;
     int errorCount =
-            collate_atoms(GoodEventWithBinaryFieldAtom::descriptor(), &atoms);
+            collate_atoms(GoodEventWithBinaryFieldAtom::descriptor(), DEFAULT_MODULE_NAME, &atoms);
     EXPECT_EQ(0, errorCount);
 }
 
 TEST(CollationTest, FailOnBadBinaryFieldAtom) {
     Atoms atoms;
     int errorCount =
-            collate_atoms(BadEventWithBinaryFieldAtom::descriptor(), &atoms);
+            collate_atoms(BadEventWithBinaryFieldAtom::descriptor(), DEFAULT_MODULE_NAME, &atoms);
     EXPECT_TRUE(errorCount > 0);
 }
 
 TEST(CollationTest, PassOnWhitelistedAtom) {
     Atoms atoms;
-    int errorCount = collate_atoms(ListedAtoms::descriptor(), &atoms);
+    int errorCount = collate_atoms(ListedAtoms::descriptor(), DEFAULT_MODULE_NAME, &atoms);
     EXPECT_EQ(errorCount, 0);
     EXPECT_EQ(atoms.decls.size(), 2ul);
 }
 
 TEST(CollationTest, RecogniseWhitelistedAtom) {
     Atoms atoms;
-    collate_atoms(ListedAtoms::descriptor(), &atoms);
+    collate_atoms(ListedAtoms::descriptor(), DEFAULT_MODULE_NAME, &atoms);
     for (const auto& atomDecl : atoms.decls) {
         if (atomDecl.code == 1) {
             EXPECT_TRUE(atomDecl.whitelisted);
@@ -246,45 +245,79 @@
 
 TEST(CollationTest, PassOnLogFromModuleAtom) {
     Atoms atoms;
-    int errorCount = collate_atoms(ModuleAtoms::descriptor(), &atoms);
+    int errorCount = collate_atoms(ModuleAtoms::descriptor(), DEFAULT_MODULE_NAME, &atoms);
     EXPECT_EQ(errorCount, 0);
     EXPECT_EQ(atoms.decls.size(), 4ul);
 }
 
 TEST(CollationTest, RecognizeModuleAtom) {
     Atoms atoms;
-    int errorCount = collate_atoms(ModuleAtoms::descriptor(), &atoms);
+    int errorCount = collate_atoms(ModuleAtoms::descriptor(), DEFAULT_MODULE_NAME, &atoms);
     EXPECT_EQ(errorCount, 0);
     EXPECT_EQ(atoms.decls.size(), 4ul);
-    for (const auto& atomDecl: atoms.decls) {
-        if (atomDecl.code == 1) {
-            EXPECT_EQ(1ul, atomDecl.moduleNames.size());
-            EXPECT_NE(atomDecl.moduleNames.end(), atomDecl.moduleNames.find("module1"));
-        } else if (atomDecl.code == 2) {
-            EXPECT_EQ(1ul, atomDecl.moduleNames.size());
-            EXPECT_NE(atomDecl.moduleNames.end(), atomDecl.moduleNames.find("module2"));
-        } else if (atomDecl.code == 3) {
-            EXPECT_EQ(2ul, atomDecl.moduleNames.size());
-            EXPECT_NE(atomDecl.moduleNames.end(), atomDecl.moduleNames.find("module1"));
-            EXPECT_NE(atomDecl.moduleNames.end(), atomDecl.moduleNames.find("module2"));
-        } else {
-            EXPECT_TRUE(atomDecl.moduleNames.empty());
+    EXPECT_EQ(atoms.signatureInfoMap.size(), 2u);
+    EXPECT_MAP_CONTAINS_SIGNATURE(atoms.signatureInfoMap, JAVA_TYPE_INT);
+    EXPECT_MAP_CONTAINS_SIGNATURE(atoms.signatureInfoMap, JAVA_TYPE_STRING);
+    for (auto signatureInfoMapIt : atoms.signatureInfoMap) {
+        vector<java_type_t> signature = signatureInfoMapIt.first;
+        const FieldNumberToAnnotations& fieldNumberToAnnotations = signatureInfoMapIt.second;
+        if (signature[0] == JAVA_TYPE_STRING) {
+            EXPECT_EQ(0u, fieldNumberToAnnotations.size());
+        } else if (signature[0] == JAVA_TYPE_INT) {
+            EXPECT_EQ(1u, fieldNumberToAnnotations.size());
+            EXPECT_NE(fieldNumberToAnnotations.end(), fieldNumberToAnnotations.find(1));
+            const set<shared_ptr<Annotation>>& annotations = fieldNumberToAnnotations.at(1);
+            EXPECT_EQ(2u, annotations.size());
+            for (const shared_ptr<Annotation> annotation : annotations) {
+                EXPECT_TRUE(annotation->annotationId == ANNOTATION_ID_IS_UID ||
+                            annotation->annotationId == ANNOTATION_ID_STATE_OPTION);
+                if (ANNOTATION_ID_IS_UID == annotation->annotationId) {
+                    EXPECT_EQ(1, annotation->atomId);
+                    EXPECT_EQ(ANNOTATION_TYPE_BOOL, annotation->type);
+                    EXPECT_TRUE(annotation->value.boolValue);
+                }
+
+                if (ANNOTATION_ID_STATE_OPTION == annotation->annotationId) {
+                    EXPECT_EQ(3, annotation->atomId);
+                    EXPECT_EQ(ANNOTATION_TYPE_INT, annotation->type);
+                    EXPECT_EQ(os::statsd::StateField::EXCLUSIVE_STATE, annotation->value.intValue);
+                }
+            }
         }
     }
+}
 
-    EXPECT_EQ(atoms.signatures_to_modules.size(), 2u);
-    EXPECT_SET_CONTAINS_SIGNATURE(atoms.signatures_to_modules, JAVA_TYPE_INT);
-    EXPECT_SET_CONTAINS_SIGNATURE(atoms.signatures_to_modules, JAVA_TYPE_STRING);
-    for (auto signature_to_modules_it : atoms.signatures_to_modules) {
-        vector<java_type_t> signature = signature_to_modules_it.first;
-        if (signature[0] == JAVA_TYPE_STRING) {
-            EXPECT_EQ(signature_to_modules_it.second.size(), 0u);
-        } else if (signature[0] == JAVA_TYPE_INT) {
-            set<string> modules = signature_to_modules_it.second;
-            EXPECT_EQ(modules.size(), 2u);
-            // Assert that the set contains "module1" and "module2".
-            EXPECT_NE(modules.find("module1"), modules.end());
-            EXPECT_NE(modules.find("module2"), modules.end());
+TEST(CollationTest, RecognizeModule1Atom) {
+    Atoms atoms;
+    const string moduleName = "module1";
+    int errorCount = collate_atoms(ModuleAtoms::descriptor(), moduleName, &atoms);
+    EXPECT_EQ(errorCount, 0);
+    EXPECT_EQ(atoms.decls.size(), 2ul);
+    EXPECT_EQ(atoms.signatureInfoMap.size(), 1u);
+    EXPECT_MAP_CONTAINS_SIGNATURE(atoms.signatureInfoMap, JAVA_TYPE_INT);
+    for (auto signatureInfoMapIt : atoms.signatureInfoMap) {
+        vector<java_type_t> signature = signatureInfoMapIt.first;
+        const FieldNumberToAnnotations& fieldNumberToAnnotations = signatureInfoMapIt.second;
+        EXPECT_EQ(JAVA_TYPE_INT, signature[0]);
+        EXPECT_EQ(1u, fieldNumberToAnnotations.size());
+        int fieldNumber = 1;
+        EXPECT_NE(fieldNumberToAnnotations.end(), fieldNumberToAnnotations.find(fieldNumber));
+        const set<shared_ptr<Annotation>>& annotations = fieldNumberToAnnotations.at(fieldNumber);
+        EXPECT_EQ(2u, annotations.size());
+        for (const shared_ptr<Annotation> annotation : annotations) {
+            EXPECT_TRUE(annotation->annotationId == ANNOTATION_ID_IS_UID ||
+                        annotation->annotationId == ANNOTATION_ID_STATE_OPTION);
+            if (ANNOTATION_ID_IS_UID == annotation->annotationId) {
+                EXPECT_EQ(1, annotation->atomId);
+                EXPECT_EQ(ANNOTATION_TYPE_BOOL, annotation->type);
+                EXPECT_TRUE(annotation->value.boolValue);
+            }
+
+            if (ANNOTATION_ID_STATE_OPTION == annotation->annotationId) {
+                EXPECT_EQ(3, annotation->atomId);
+                EXPECT_EQ(ANNOTATION_TYPE_INT, annotation->type);
+                EXPECT_EQ(os::statsd::StateField::EXCLUSIVE_STATE, annotation->value.intValue);
+            }
         }
     }
 }
diff --git a/tools/stats_log_api_gen/utils.cpp b/tools/stats_log_api_gen/utils.cpp
index 9dc4ff8..0262488 100644
--- a/tools/stats_log_api_gen/utils.cpp
+++ b/tools/stats_log_api_gen/utils.cpp
@@ -22,9 +22,9 @@
 namespace stats_log_api_gen {
 
 static void build_non_chained_decl_map(const Atoms& atoms,
-                                std::map<int, set<AtomDecl>::const_iterator>* decl_map) {
+                                       std::map<int, set<AtomDecl>::const_iterator>* decl_map) {
     for (set<AtomDecl>::const_iterator atom = atoms.non_chained_decls.begin();
-        atom != atoms.non_chained_decls.end(); atom++) {
+         atom != atoms.non_chained_decls.end(); atom++) {
         decl_map->insert(std::make_pair(atom->code, atom));
     }
 }
@@ -36,7 +36,7 @@
     string result;
     const int N = str.size();
     bool underscore_next = false;
-    for (int i=0; i<N; i++) {
+    for (int i = 0; i < N; i++) {
         char c = str[i];
         if (c >= 'A' && c <= 'Z') {
             if (underscore_next) {
@@ -98,22 +98,9 @@
     }
 }
 
-bool atom_needed_for_module(const AtomDecl& atomDecl, const string& moduleName) {
-    if (moduleName == DEFAULT_MODULE_NAME) {
-        return true;
-    }
-    return atomDecl.moduleNames.find(moduleName) != atomDecl.moduleNames.end();
-}
-
-bool signature_needed_for_module(const set<string>& modules, const string& moduleName) {
-    if (moduleName == DEFAULT_MODULE_NAME) {
-        return true;
-    }
-    return modules.find(moduleName) != modules.end();
-}
-
 // Native
-// Writes namespaces for the cpp and header files, returning the number of namespaces written.
+// Writes namespaces for the cpp and header files, returning the number of
+// namespaces written.
 void write_namespace(FILE* out, const string& cppNamespaces) {
     vector<string> cppNamespaceVec = android::base::Split(cppNamespaces, ",");
     for (string cppNamespace : cppNamespaceVec) {
@@ -129,35 +116,31 @@
     }
 }
 
-static void write_cpp_usage(
-    FILE* out, const string& method_name, const string& atom_code_name,
-    const AtomDecl& atom, const AtomDecl &attributionDecl) {
-    fprintf(out, "     * Usage: %s(StatsLog.%s", method_name.c_str(),
-            atom_code_name.c_str());
+static void write_cpp_usage(FILE* out, const string& method_name, const string& atom_code_name,
+                            const AtomDecl& atom, const AtomDecl& attributionDecl) {
+    fprintf(out, "     * Usage: %s(StatsLog.%s", method_name.c_str(), atom_code_name.c_str());
 
-    for (vector<AtomField>::const_iterator field = atom.fields.begin();
-            field != atom.fields.end(); field++) {
+    for (vector<AtomField>::const_iterator field = atom.fields.begin(); field != atom.fields.end();
+         field++) {
         if (field->javaType == JAVA_TYPE_ATTRIBUTION_CHAIN) {
             for (auto chainField : attributionDecl.fields) {
                 if (chainField.javaType == JAVA_TYPE_STRING) {
-                    fprintf(out, ", const std::vector<%s>& %s",
-                         cpp_type_name(chainField.javaType),
-                         chainField.name.c_str());
+                    fprintf(out, ", const std::vector<%s>& %s", cpp_type_name(chainField.javaType),
+                            chainField.name.c_str());
                 } else {
                     fprintf(out, ", const %s* %s, size_t %s_length",
-                         cpp_type_name(chainField.javaType),
-                         chainField.name.c_str(), chainField.name.c_str());
+                            cpp_type_name(chainField.javaType), chainField.name.c_str(),
+                            chainField.name.c_str());
                 }
             }
         } else if (field->javaType == JAVA_TYPE_KEY_VALUE_PAIR) {
-            fprintf(out, ", const std::map<int, int32_t>& %s_int"
-                         ", const std::map<int, int64_t>& %s_long"
-                         ", const std::map<int, char const*>& %s_str"
-                         ", const std::map<int, float>& %s_float",
-                         field->name.c_str(),
-                         field->name.c_str(),
-                         field->name.c_str(),
-                         field->name.c_str());
+            fprintf(out,
+                    ", const std::map<int, int32_t>& %s_int"
+                    ", const std::map<int, int64_t>& %s_long"
+                    ", const std::map<int, char const*>& %s_str"
+                    ", const std::map<int, float>& %s_float",
+                    field->name.c_str(), field->name.c_str(), field->name.c_str(),
+                    field->name.c_str());
         } else {
             fprintf(out, ", %s %s", cpp_type_name(field->javaType), field->name.c_str());
         }
@@ -165,8 +148,7 @@
     fprintf(out, ");\n");
 }
 
-void write_native_atom_constants(FILE* out, const Atoms& atoms, const AtomDecl& attributionDecl,
-        const string& moduleName) {
+void write_native_atom_constants(FILE* out, const Atoms& atoms, const AtomDecl& attributionDecl) {
     fprintf(out, "/**\n");
     fprintf(out, " * Constants for atom codes.\n");
     fprintf(out, " */\n");
@@ -177,12 +159,8 @@
 
     size_t i = 0;
     // Print atom constants
-    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
-        atom != atoms.decls.end(); atom++) {
-        // Skip if the atom is not needed for the module.
-        if (!atom_needed_for_module(*atom, moduleName)) {
-            continue;
-        }
+    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin(); atom != atoms.decls.end();
+         atom++) {
         string constant = make_constant_name(atom->name);
         fprintf(out, "\n");
         fprintf(out, "    /**\n");
@@ -192,7 +170,7 @@
         auto non_chained_decl = atom_code_to_non_chained_decl_map.find(atom->code);
         if (non_chained_decl != atom_code_to_non_chained_decl_map.end()) {
             write_cpp_usage(out, "stats_write_non_chained", constant, *non_chained_decl->second,
-                attributionDecl);
+                            attributionDecl);
         }
         fprintf(out, "     */\n");
         char const* const comma = (i == atoms.decls.size() - 1) ? "" : ",";
@@ -205,30 +183,30 @@
 }
 
 void write_native_method_signature(FILE* out, const string& methodName,
-        const vector<java_type_t>& signature, const AtomDecl& attributionDecl,
-        const string& closer) {
+                                   const vector<java_type_t>& signature,
+                                   const AtomDecl& attributionDecl, const string& closer) {
     fprintf(out, "%s(int32_t code", methodName.c_str());
     int argIndex = 1;
-    for (vector<java_type_t>::const_iterator arg = signature.begin();
-        arg != signature.end(); arg++) {
+    for (vector<java_type_t>::const_iterator arg = signature.begin(); arg != signature.end();
+         arg++) {
         if (*arg == JAVA_TYPE_ATTRIBUTION_CHAIN) {
             for (auto chainField : attributionDecl.fields) {
                 if (chainField.javaType == JAVA_TYPE_STRING) {
-                        fprintf(out, ", const std::vector<%s>& %s",
-                             cpp_type_name(chainField.javaType),
-                             chainField.name.c_str());
+                    fprintf(out, ", const std::vector<%s>& %s", cpp_type_name(chainField.javaType),
+                            chainField.name.c_str());
                 } else {
-                        fprintf(out, ", const %s* %s, size_t %s_length",
-                             cpp_type_name(chainField.javaType),
-                             chainField.name.c_str(), chainField.name.c_str());
+                    fprintf(out, ", const %s* %s, size_t %s_length",
+                            cpp_type_name(chainField.javaType), chainField.name.c_str(),
+                            chainField.name.c_str());
                 }
             }
         } else if (*arg == JAVA_TYPE_KEY_VALUE_PAIR) {
-            fprintf(out, ", const std::map<int, int32_t>& arg%d_1, "
-                         "const std::map<int, int64_t>& arg%d_2, "
-                         "const std::map<int, char const*>& arg%d_3, "
-                         "const std::map<int, float>& arg%d_4",
-                         argIndex, argIndex, argIndex, argIndex);
+            fprintf(out,
+                    ", const std::map<int, int32_t>& arg%d_1, "
+                    "const std::map<int, int64_t>& arg%d_2, "
+                    "const std::map<int, char const*>& arg%d_3, "
+                    "const std::map<int, float>& arg%d_4",
+                    argIndex, argIndex, argIndex, argIndex);
         } else {
             fprintf(out, ", %s arg%d", cpp_type_name(*arg), argIndex);
         }
@@ -238,45 +216,41 @@
 }
 
 void write_native_method_call(FILE* out, const string& methodName,
-        const vector<java_type_t>& signature, const AtomDecl& attributionDecl, int argIndex) {
+                              const vector<java_type_t>& signature, const AtomDecl& attributionDecl,
+                              int argIndex) {
     fprintf(out, "%s(code", methodName.c_str());
-    for (vector<java_type_t>::const_iterator arg = signature.begin();
-       arg != signature.end(); arg++) {
-       if (*arg == JAVA_TYPE_ATTRIBUTION_CHAIN) {
-           for (auto chainField : attributionDecl.fields) {
-               if (chainField.javaType == JAVA_TYPE_STRING) {
-                       fprintf(out, ", %s",
+    for (vector<java_type_t>::const_iterator arg = signature.begin(); arg != signature.end();
+         arg++) {
+        if (*arg == JAVA_TYPE_ATTRIBUTION_CHAIN) {
+            for (auto chainField : attributionDecl.fields) {
+                if (chainField.javaType == JAVA_TYPE_STRING) {
+                    fprintf(out, ", %s", chainField.name.c_str());
+                } else {
+                    fprintf(out, ",  %s,  %s_length", chainField.name.c_str(),
                             chainField.name.c_str());
-               } else {
-                       fprintf(out, ",  %s,  %s_length",
-                            chainField.name.c_str(), chainField.name.c_str());
-               }
-           }
-       } else if (*arg == JAVA_TYPE_KEY_VALUE_PAIR) {
-           fprintf(out, ", arg%d_1, arg%d_2, arg%d_3, arg%d_4", argIndex,
-                   argIndex, argIndex, argIndex);
-       } else {
-           fprintf(out, ", arg%d", argIndex);
-       }
-       argIndex++;
+                }
+            }
+        } else if (*arg == JAVA_TYPE_KEY_VALUE_PAIR) {
+            fprintf(out, ", arg%d_1, arg%d_2, arg%d_3, arg%d_4", argIndex, argIndex, argIndex,
+                    argIndex);
+        } else {
+            fprintf(out, ", arg%d", argIndex);
+        }
+        argIndex++;
     }
     fprintf(out, ");\n");
 }
 
 // Java
-void write_java_atom_codes(FILE* out, const Atoms& atoms, const string& moduleName) {
+void write_java_atom_codes(FILE* out, const Atoms& atoms) {
     fprintf(out, "    // Constants for atom codes.\n");
 
     std::map<int, set<AtomDecl>::const_iterator> atom_code_to_non_chained_decl_map;
     build_non_chained_decl_map(atoms, &atom_code_to_non_chained_decl_map);
 
     // Print constants for the atom codes.
-    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
-            atom != atoms.decls.end(); atom++) {
-        // Skip if the atom is not needed for the module.
-        if (!atom_needed_for_module(*atom, moduleName)) {
-            continue;
-        }
+    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin(); atom != atoms.decls.end();
+         atom++) {
         string constant = make_constant_name(atom->name);
         fprintf(out, "\n");
         fprintf(out, "    /**\n");
@@ -292,26 +266,21 @@
     fprintf(out, "\n");
 }
 
-void write_java_enum_values(FILE* out, const Atoms& atoms, const string& moduleName) {
+void write_java_enum_values(FILE* out, const Atoms& atoms) {
     fprintf(out, "    // Constants for enum values.\n\n");
-    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
-        atom != atoms.decls.end(); atom++) {
-        // Skip if the atom is not needed for the module.
-        if (!atom_needed_for_module(*atom, moduleName)) {
-            continue;
-        }
+    for (set<AtomDecl>::const_iterator atom = atoms.decls.begin(); atom != atoms.decls.end();
+         atom++) {
         for (vector<AtomField>::const_iterator field = atom->fields.begin();
-            field != atom->fields.end(); field++) {
+             field != atom->fields.end(); field++) {
             if (field->javaType == JAVA_TYPE_ENUM) {
                 fprintf(out, "    // Values for %s.%s\n", atom->message.c_str(),
-                    field->name.c_str());
+                        field->name.c_str());
                 for (map<int, string>::const_iterator value = field->enumValues.begin();
-                    value != field->enumValues.end(); value++) {
+                     value != field->enumValues.end(); value++) {
                     fprintf(out, "    public static final int %s__%s__%s = %d;\n",
-                        make_constant_name(atom->message).c_str(),
-                        make_constant_name(field->name).c_str(),
-                        make_constant_name(value->second).c_str(),
-                        value->first);
+                            make_constant_name(atom->message).c_str(),
+                            make_constant_name(field->name).c_str(),
+                            make_constant_name(value->second).c_str(), value->first);
                 }
                 fprintf(out, "\n");
             }
@@ -320,11 +289,11 @@
 }
 
 void write_java_usage(FILE* out, const string& method_name, const string& atom_code_name,
-        const AtomDecl& atom) {
-    fprintf(out, "     * Usage: StatsLog.%s(StatsLog.%s",
-        method_name.c_str(), atom_code_name.c_str());
-    for (vector<AtomField>::const_iterator field = atom.fields.begin();
-        field != atom.fields.end(); field++) {
+                      const AtomDecl& atom) {
+    fprintf(out, "     * Usage: StatsLog.%s(StatsLog.%s", method_name.c_str(),
+            atom_code_name.c_str());
+    for (vector<AtomField>::const_iterator field = atom.fields.begin(); field != atom.fields.end();
+         field++) {
         if (field->javaType == JAVA_TYPE_ATTRIBUTION_CHAIN) {
             fprintf(out, ", android.os.WorkSource workSource");
         } else if (field->javaType == JAVA_TYPE_KEY_VALUE_PAIR) {
@@ -339,28 +308,20 @@
 }
 
 int write_java_non_chained_methods(
-        FILE* out,
-        const map<vector<java_type_t>, set<string>>& signatures_to_modules,
-        const string& moduleName
-        ) {
-    for (auto signature_to_modules_it = signatures_to_modules.begin();
-            signature_to_modules_it != signatures_to_modules.end(); signature_to_modules_it++) {
-        // Skip if this signature is not needed for the module.
-        if (!signature_needed_for_module(signature_to_modules_it->second, moduleName)) {
-            continue;
-        }
-
+        FILE* out, const map<vector<java_type_t>, FieldNumberToAnnotations>& signatureInfoMap) {
+    for (auto signatureInfoMapIt = signatureInfoMap.begin();
+         signatureInfoMapIt != signatureInfoMap.end(); signatureInfoMapIt++) {
         // Print method signature.
         fprintf(out, "    public static void write_non_chained(int code");
-        vector<java_type_t> signature = signature_to_modules_it->first;
+        vector<java_type_t> signature = signatureInfoMapIt->first;
         int argIndex = 1;
-        for (vector<java_type_t>::const_iterator arg = signature.begin();
-                arg != signature.end(); arg++) {
+        for (vector<java_type_t>::const_iterator arg = signature.begin(); arg != signature.end();
+             arg++) {
             if (*arg == JAVA_TYPE_ATTRIBUTION_CHAIN) {
-                // Non chained signatures should not have attribution chains.
+                fprintf(stderr, "Non chained signatures should not have attribution chains.\n");
                 return 1;
             } else if (*arg == JAVA_TYPE_KEY_VALUE_PAIR) {
-                // Module logging does not yet support key value pair.
+                fprintf(stderr, "Module logging does not yet support key value pair.\n");
                 return 1;
             } else {
                 fprintf(out, ", %s arg%d", java_type_name(*arg), argIndex);
@@ -371,8 +332,8 @@
 
         fprintf(out, "        write(code");
         argIndex = 1;
-        for (vector<java_type_t>::const_iterator arg = signature.begin();
-                arg != signature.end(); arg++) {
+        for (vector<java_type_t>::const_iterator arg = signature.begin(); arg != signature.end();
+             arg++) {
             // First two args are uid and tag of attribution chain.
             if (argIndex == 1) {
                 fprintf(out, ", new int[] {arg%d}", argIndex);
@@ -391,29 +352,24 @@
 }
 
 int write_java_work_source_methods(
-        FILE* out,
-        const map<vector<java_type_t>, set<string>>& signatures_to_modules,
-        const string& moduleName
-        ) {
+        FILE* out, const map<vector<java_type_t>, FieldNumberToAnnotations>& signatureInfoMap) {
     fprintf(out, "    // WorkSource methods.\n");
-    for (auto signature_to_modules_it = signatures_to_modules.begin();
-            signature_to_modules_it != signatures_to_modules.end(); signature_to_modules_it++) {
-        // Skip if this signature is not needed for the module.
-        if (!signature_needed_for_module(signature_to_modules_it->second, moduleName)) {
-            continue;
-        }
-        vector<java_type_t> signature = signature_to_modules_it->first;
+    for (auto signatureInfoMapIt = signatureInfoMap.begin();
+         signatureInfoMapIt != signatureInfoMap.end(); signatureInfoMapIt++) {
+        vector<java_type_t> signature = signatureInfoMapIt->first;
         // Determine if there is Attribution in this signature.
         int attributionArg = -1;
         int argIndexMax = 0;
-        for (vector<java_type_t>::const_iterator arg = signature.begin();
-                arg != signature.end(); arg++) {
+        for (vector<java_type_t>::const_iterator arg = signature.begin(); arg != signature.end();
+             arg++) {
             argIndexMax++;
             if (*arg == JAVA_TYPE_ATTRIBUTION_CHAIN) {
                 if (attributionArg > -1) {
                     fprintf(stderr, "An atom contains multiple AttributionNode fields.\n");
                     fprintf(stderr, "This is not supported. Aborting WorkSource method writing.\n");
-                    fprintf(out, "\n// Invalid for WorkSource: more than one attribution chain.\n");
+                    fprintf(out,
+                            "\n// Invalid for WorkSource: more than one attribution "
+                            "chain.\n");
                     return 1;
                 }
                 attributionArg = argIndexMax;
@@ -427,8 +383,8 @@
         // Method header (signature)
         fprintf(out, "    public static void write(int code");
         int argIndex = 1;
-        for (vector<java_type_t>::const_iterator arg = signature.begin();
-                arg != signature.end(); arg++) {
+        for (vector<java_type_t>::const_iterator arg = signature.begin(); arg != signature.end();
+             arg++) {
             if (*arg == JAVA_TYPE_ATTRIBUTION_CHAIN) {
                 fprintf(out, ", android.os.WorkSource ws");
             } else {
@@ -438,36 +394,40 @@
         }
         fprintf(out, ") {\n");
 
-        // write_non_chained() component. TODO: Remove when flat uids are no longer needed.
+        // write_non_chained() component. TODO: Remove when flat uids are no longer
+        // needed.
         fprintf(out, "        for (int i = 0; i < ws.size(); ++i) {\n");
         fprintf(out, "            write_non_chained(code");
         for (int argIndex = 1; argIndex <= argIndexMax; argIndex++) {
             if (argIndex == attributionArg) {
                 fprintf(out, ", ws.getUid(i), ws.getPackageName(i)");
             } else {
-               fprintf(out, ", arg%d", argIndex);
+                fprintf(out, ", arg%d", argIndex);
             }
         }
         fprintf(out, ");\n");
-        fprintf(out, "        }\n"); // close for-loop
+        fprintf(out, "        }\n");  // close for-loop
 
         // write() component.
-        fprintf(out, "        java.util.List<android.os.WorkSource.WorkChain> workChains = "
+        fprintf(out,
+                "        java.util.List<android.os.WorkSource.WorkChain> workChains = "
                 "ws.getWorkChains();\n");
         fprintf(out, "        if (workChains != null) {\n");
-        fprintf(out, "            for (android.os.WorkSource.WorkChain wc : workChains) {\n");
+        fprintf(out,
+                "            for (android.os.WorkSource.WorkChain wc : workChains) "
+                "{\n");
         fprintf(out, "                write(code");
         for (int argIndex = 1; argIndex <= argIndexMax; argIndex++) {
             if (argIndex == attributionArg) {
                 fprintf(out, ", wc.getUids(), wc.getTags()");
             } else {
-               fprintf(out, ", arg%d", argIndex);
+                fprintf(out, ", arg%d", argIndex);
             }
         }
         fprintf(out, ");\n");
-        fprintf(out, "            }\n"); // close for-loop
-        fprintf(out, "        }\n"); // close if
-        fprintf(out, "    }\n"); // close method
+        fprintf(out, "            }\n");  // close for-loop
+        fprintf(out, "        }\n");      // close if
+        fprintf(out, "    }\n");          // close method
     }
     return 0;
 }
diff --git a/tools/stats_log_api_gen/utils.h b/tools/stats_log_api_gen/utils.h
index 715d42bc..468f323 100644
--- a/tools/stats_log_api_gen/utils.h
+++ b/tools/stats_log_api_gen/utils.h
@@ -16,21 +16,20 @@
 
 #pragma once
 
-#include "Collation.h"
+#include <stdio.h>
+#include <string.h>
 
 #include <map>
 #include <set>
 #include <vector>
 
-#include <stdio.h>
-#include <string.h>
+#include "Collation.h"
 
 namespace android {
 namespace stats_log_api_gen {
 
 using namespace std;
 
-const string DEFAULT_MODULE_NAME = "DEFAULT";
 const string DEFAULT_CPP_NAMESPACE = "android,util";
 const string DEFAULT_CPP_HEADER_IMPORT = "statslog.h";
 const string DEFAULT_ATOMS_INFO_CPP_HEADER_IMPORT = "atoms_info.h";
@@ -45,41 +44,34 @@
 
 const char* java_type_name(java_type_t type);
 
-bool atom_needed_for_module(const AtomDecl& atomDecl, const string& moduleName);
-
-bool signature_needed_for_module(const set<string>& modules, const string& moduleName);
-
 // Common Native helpers
 void write_namespace(FILE* out, const string& cppNamespaces);
 
 void write_closing_namespace(FILE* out, const string& cppNamespaces);
 
-void write_native_atom_constants(FILE* out, const Atoms& atoms, const AtomDecl& attributionDecl,
-        const string& moduleName);
+void write_native_atom_constants(FILE* out, const Atoms& atoms, const AtomDecl& attributionDecl);
 
 void write_native_method_signature(FILE* out, const string& methodName,
-        const vector<java_type_t>& signature, const AtomDecl& attributionDecl,
-        const string& closer);
+                                   const vector<java_type_t>& signature,
+                                   const AtomDecl& attributionDecl, const string& closer);
 
 void write_native_method_call(FILE* out, const string& methodName,
-        const vector<java_type_t>& signature, const AtomDecl& attributionDecl, int argIndex = 1);
+                              const vector<java_type_t>& signature, const AtomDecl& attributionDecl,
+                              int argIndex = 1);
 
 // Common Java helpers.
-void write_java_atom_codes(FILE* out, const Atoms& atoms, const string& moduleName);
+void write_java_atom_codes(FILE* out, const Atoms& atoms);
 
-void write_java_enum_values(FILE* out, const Atoms& atoms, const string& moduleName);
+void write_java_enum_values(FILE* out, const Atoms& atoms);
 
 void write_java_usage(FILE* out, const string& method_name, const string& atom_code_name,
-        const AtomDecl& atom);
+                      const AtomDecl& atom);
 
-int write_java_non_chained_methods(FILE* out, const map<vector<java_type_t>,
-        set<string>>& signatures_to_modules,
-        const string& moduleName);
+int write_java_non_chained_methods(
+        FILE* out, const map<vector<java_type_t>, FieldNumberToAnnotations>& signatureInfoMap);
 
 int write_java_work_source_methods(
-        FILE* out,
-        const map<vector<java_type_t>, set<string>>& signatures_to_modules,
-        const string& moduleName);
+        FILE* out, const map<vector<java_type_t>, FieldNumberToAnnotations>& signatureInfoMap);
 
 }  // namespace stats_log_api_gen
 }  // namespace android
diff --git a/wifi/Android.bp b/wifi/Android.bp
index 70c2741..6147861 100644
--- a/wifi/Android.bp
+++ b/wifi/Android.bp
@@ -46,6 +46,7 @@
         // TODO(b/146011398) package android.net.wifi is now split amongst 2 jars: framework.jar and
         // framework-wifi.jar. This is not a good idea, should move WifiNetworkScoreCache
         // to a separate package.
+        "java/android/net/wifi/SoftApConfToXmlMigrationUtil.java",
         "java/android/net/wifi/WifiNetworkScoreCache.java",
         "java/android/net/wifi/WifiMigration.java",
         "java/android/net/wifi/nl80211/*.java",
@@ -80,7 +81,6 @@
     libs: [
         "framework-annotations-lib",
         "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage
-        "unsupportedappusage-annotation", // for dalvik.annotation.compat.UnsupportedAppUsage
         "framework-telephony-stubs",
     ],
     srcs: [
@@ -117,6 +117,11 @@
         "com.android.wifi",
         "test_com.android.wifi",
     ],
+    permitted_packages: [
+        "android.hardware.wifi",
+        "android.net.wifi",
+        "android.x.net.wifi",
+    ],
 }
 
 stubs_defaults {
@@ -164,24 +169,23 @@
 java_library {
     name: "framework-wifi-stubs-publicapi",
     srcs: [":framework-wifi-stubs-srcs-publicapi"],
+    defaults: ["framework-module-stubs-lib-defaults-publicapi"],
+    // TODO(b/151134996): remove this
     sdk_version: "current",
-    installable: false,
 }
 
 java_library {
     name: "framework-wifi-stubs-systemapi",
     srcs: [":framework-wifi-stubs-srcs-systemapi"],
-    sdk_version: "system_current",
     libs: ["framework-annotations-lib"],
-    installable: false,
+    defaults: ["framework-module-stubs-lib-defaults-systemapi"],
 }
 
 java_library {
     name: "framework-wifi-stubs-module_libs_api",
     srcs: [":framework-wifi-stubs-srcs-module_libs_api"],
-    sdk_version: "module_current",
     libs: ["framework-annotations-lib"],
-    installable: false,
+    defaults: ["framework-module-stubs-lib-defaults-module_libs_api"],
 }
 
 // defaults for tests that need to build against framework-wifi's @hide APIs
diff --git a/wifi/api/current.txt b/wifi/api/current.txt
index 1b62ec1..53c3b33 100644
--- a/wifi/api/current.txt
+++ b/wifi/api/current.txt
@@ -16,7 +16,7 @@
     field public static final int EASY_CONNECT_EVENT_FAILURE_TIMEOUT = -6; // 0xfffffffa
   }
 
-  public class ScanResult implements android.os.Parcelable {
+  public final class ScanResult implements android.os.Parcelable {
     ctor public ScanResult(@NonNull android.net.wifi.ScanResult);
     ctor public ScanResult();
     method public int describeContents();
diff --git a/wifi/api/system-current.txt b/wifi/api/system-current.txt
index 150a650..e39e148 100644
--- a/wifi/api/system-current.txt
+++ b/wifi/api/system-current.txt
@@ -208,7 +208,7 @@
     field @Deprecated public byte id;
   }
 
-  public class ScanResult implements android.os.Parcelable {
+  public final class ScanResult implements android.os.Parcelable {
     field public static final int CIPHER_CCMP = 3; // 0x3
     field public static final int CIPHER_GCMP_256 = 4; // 0x4
     field public static final int CIPHER_NONE = 0; // 0x0
diff --git a/wifi/api/system-removed.txt b/wifi/api/system-removed.txt
index 35f9726..a2d0dff 100644
--- a/wifi/api/system-removed.txt
+++ b/wifi/api/system-removed.txt
@@ -8,7 +8,7 @@
     field public boolean truncated;
   }
 
-  public class ScanResult implements android.os.Parcelable {
+  public final class ScanResult implements android.os.Parcelable {
     field public boolean untrusted;
   }
 
diff --git a/wifi/java/android/net/wifi/ITxPacketCountListener.aidl b/wifi/java/android/net/wifi/ITxPacketCountListener.aidl
index 8606ab5..9105bd0 100644
--- a/wifi/java/android/net/wifi/ITxPacketCountListener.aidl
+++ b/wifi/java/android/net/wifi/ITxPacketCountListener.aidl
@@ -18,6 +18,7 @@
 
 /**
  * Interface for tx packet counter callback.
+ * @deprecated no longer used, remove once removed from BaseWifiService
  * @hide
  */
 oneway interface ITxPacketCountListener
diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl
index 30a76e4..5063ad6 100644
--- a/wifi/java/android/net/wifi/IWifiManager.aidl
+++ b/wifi/java/android/net/wifi/IWifiManager.aidl
@@ -34,7 +34,6 @@
 import android.net.wifi.ISoftApCallback;
 import android.net.wifi.ISuggestionConnectionStatusListener;
 import android.net.wifi.ITrafficStateCallback;
-import android.net.wifi.ITxPacketCountListener;
 import android.net.wifi.IWifiConnectedNetworkScorer;
 import android.net.wifi.ScanResult;
 import android.net.wifi.SoftApConfiguration;
@@ -246,8 +245,6 @@
 
     oneway void forget(int netId, in IBinder binder, in IActionListener listener, int callbackIdentifier);
 
-    oneway void getTxPacketCount(String packageName, in IBinder binder, in ITxPacketCountListener listener, int callbackIdentifier);
-
     void registerScanResultsCallback(in IScanResultsCallback callback);
 
     void unregisterScanResultsCallback(in IScanResultsCallback callback);
diff --git a/wifi/java/android/net/wifi/ScanResult.java b/wifi/java/android/net/wifi/ScanResult.java
index 727952c..f5b5622 100644
--- a/wifi/java/android/net/wifi/ScanResult.java
+++ b/wifi/java/android/net/wifi/ScanResult.java
@@ -38,7 +38,7 @@
  * {@code quality}, {@code noise}, and {@code maxbitrate} attributes,
  * but does not currently report them to external clients.
  */
-public class ScanResult implements Parcelable {
+public final class ScanResult implements Parcelable {
     /**
      * The network name.
      */
diff --git a/wifi/java/android/net/wifi/SoftApConfToXmlMigrationUtil.java b/wifi/java/android/net/wifi/SoftApConfToXmlMigrationUtil.java
new file mode 100755
index 0000000..c5472ce
--- /dev/null
+++ b/wifi/java/android/net/wifi/SoftApConfToXmlMigrationUtil.java
@@ -0,0 +1,284 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.net.wifi;
+
+import static android.os.Environment.getDataMiscDirectory;
+
+import android.annotation.Nullable;
+import android.net.MacAddress;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.FastXmlSerializer;
+import com.android.internal.util.XmlUtils;
+
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlSerializer;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+
+/**
+ * Utility class to convert the legacy softap.conf file format to the new XML format.
+ * Note:
+ * <li>This should be modified by the OEM if they want to migrate configuration for existing
+ * devices for new softap features supported by AOSP in Android 11.
+ * For ex: client allowlist/blocklist feature was already supported by some OEM's before Android 10
+ * while AOSP only supported it in Android 11. </li>
+ * <li>Most of this class was copied over from WifiApConfigStore class in Android 10 and
+ * SoftApStoreData class in Android 11</li>
+ * @hide
+ */
+public final class SoftApConfToXmlMigrationUtil {
+    private static final String TAG = "SoftApConfToXmlMigrationUtil";
+
+    /**
+     * Directory to read the wifi config store files from under.
+     */
+    private static final String LEGACY_WIFI_STORE_DIRECTORY_NAME = "wifi";
+    /**
+     * The legacy Softap config file which contained key/value pairs.
+     */
+    private static final String LEGACY_AP_CONFIG_FILE = "softap.conf";
+
+    /**
+     * Pre-apex wifi shared folder.
+     */
+    private static File getLegacyWifiSharedDirectory() {
+        return new File(getDataMiscDirectory(), LEGACY_WIFI_STORE_DIRECTORY_NAME);
+    }
+
+    /* @hide constants copied from WifiConfiguration */
+    /**
+     * 2GHz band.
+     */
+    private static final int WIFICONFIG_AP_BAND_2GHZ = 0;
+    /**
+     * 5GHz band.
+     */
+    private static final int WIFICONFIG_AP_BAND_5GHZ = 1;
+    /**
+     * Device is allowed to choose the optimal band (2Ghz or 5Ghz) based on device capability,
+     * operating country code and current radio conditions.
+     */
+    private static final int WIFICONFIG_AP_BAND_ANY = -1;
+    /**
+     * Convert band from WifiConfiguration into SoftApConfiguration
+     *
+     * @param wifiConfigBand band encoded as WIFICONFIG_AP_BAND_xxxx
+     * @return band as encoded as SoftApConfiguration.BAND_xxx
+     */
+    @VisibleForTesting
+    public static int convertWifiConfigBandToSoftApConfigBand(int wifiConfigBand) {
+        switch (wifiConfigBand) {
+            case WIFICONFIG_AP_BAND_2GHZ:
+                return SoftApConfiguration.BAND_2GHZ;
+            case WIFICONFIG_AP_BAND_5GHZ:
+                return SoftApConfiguration.BAND_5GHZ;
+            case WIFICONFIG_AP_BAND_ANY:
+                return SoftApConfiguration.BAND_2GHZ | SoftApConfiguration.BAND_5GHZ;
+            default:
+                return SoftApConfiguration.BAND_2GHZ;
+        }
+    }
+
+    /**
+     * Load AP configuration from legacy persistent storage.
+     * Note: This is deprecated and only used for migrating data once on reboot.
+     */
+    private static SoftApConfiguration loadFromLegacyFile(InputStream fis) {
+        SoftApConfiguration config = null;
+        DataInputStream in = null;
+        try {
+            SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder();
+            in = new DataInputStream(new BufferedInputStream(fis));
+
+            int version = in.readInt();
+            if (version < 1 || version > 3) {
+                Log.e(TAG, "Bad version on hotspot configuration file");
+                return null;
+            }
+            configBuilder.setSsid(in.readUTF());
+
+            if (version >= 2) {
+                int band = in.readInt();
+                int channel = in.readInt();
+                if (channel == 0) {
+                    configBuilder.setBand(
+                            convertWifiConfigBandToSoftApConfigBand(band));
+                } else {
+                    configBuilder.setChannel(channel,
+                            convertWifiConfigBandToSoftApConfigBand(band));
+                }
+            }
+            if (version >= 3) {
+                configBuilder.setHiddenSsid(in.readBoolean());
+            }
+            int authType = in.readInt();
+            if (authType == WifiConfiguration.KeyMgmt.WPA2_PSK) {
+                configBuilder.setPassphrase(in.readUTF(),
+                        SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
+            }
+            config = configBuilder.build();
+        } catch (IOException e) {
+            Log.e(TAG, "Error reading hotspot configuration ",  e);
+            config = null;
+        } catch (IllegalArgumentException ie) {
+            Log.e(TAG, "Invalid hotspot configuration ", ie);
+            config = null;
+        } finally {
+            if (in != null) {
+                try {
+                    in.close();
+                } catch (IOException e) {
+                    Log.e(TAG, "Error closing hotspot configuration during read", e);
+                }
+            }
+        }
+        // NOTE: OEM's should add their customized parsing code here.
+        return config;
+    }
+
+    // This is the version that Android 11 released with.
+    private static final int CONFIG_STORE_DATA_VERSION = 3;
+
+    private static final String XML_TAG_DOCUMENT_HEADER = "WifiConfigStoreData";
+    private static final String XML_TAG_VERSION = "Version";
+    private static final String XML_TAG_SECTION_HEADER_SOFTAP = "SoftAp";
+    private static final String XML_TAG_SSID = "SSID";
+    private static final String XML_TAG_BSSID = "Bssid";
+    private static final String XML_TAG_CHANNEL = "Channel";
+    private static final String XML_TAG_HIDDEN_SSID = "HiddenSSID";
+    private static final String XML_TAG_SECURITY_TYPE = "SecurityType";
+    private static final String XML_TAG_AP_BAND = "ApBand";
+    private static final String XML_TAG_PASSPHRASE = "Passphrase";
+    private static final String XML_TAG_MAX_NUMBER_OF_CLIENTS = "MaxNumberOfClients";
+    private static final String XML_TAG_AUTO_SHUTDOWN_ENABLED = "AutoShutdownEnabled";
+    private static final String XML_TAG_SHUTDOWN_TIMEOUT_MILLIS = "ShutdownTimeoutMillis";
+    private static final String XML_TAG_CLIENT_CONTROL_BY_USER = "ClientControlByUser";
+    private static final String XML_TAG_BLOCKED_CLIENT_LIST = "BlockedClientList";
+    private static final String XML_TAG_ALLOWED_CLIENT_LIST = "AllowedClientList";
+    public static final String XML_TAG_CLIENT_MACADDRESS = "ClientMacAddress";
+
+    private static byte[] convertConfToXml(SoftApConfiguration softApConf) {
+        try {
+            final XmlSerializer out = new FastXmlSerializer();
+            final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+            out.setOutput(outputStream, StandardCharsets.UTF_8.name());
+
+            // Header for the XML file.
+            out.startDocument(null, true);
+            out.startTag(null, XML_TAG_DOCUMENT_HEADER);
+            XmlUtils.writeValueXml(CONFIG_STORE_DATA_VERSION, XML_TAG_VERSION, out);
+            out.startTag(null, XML_TAG_SECTION_HEADER_SOFTAP);
+
+            // SoftAp conf
+            XmlUtils.writeValueXml(softApConf.getSsid(), XML_TAG_SSID, out);
+            if (softApConf.getBssid() != null) {
+                XmlUtils.writeValueXml(softApConf.getBssid().toString(), XML_TAG_BSSID, out);
+            }
+            XmlUtils.writeValueXml(softApConf.getBand(), XML_TAG_AP_BAND, out);
+            XmlUtils.writeValueXml(softApConf.getChannel(), XML_TAG_CHANNEL, out);
+            XmlUtils.writeValueXml(softApConf.isHiddenSsid(), XML_TAG_HIDDEN_SSID, out);
+            XmlUtils.writeValueXml(softApConf.getSecurityType(), XML_TAG_SECURITY_TYPE, out);
+            if (softApConf.getSecurityType() != SoftApConfiguration.SECURITY_TYPE_OPEN) {
+                XmlUtils.writeValueXml(softApConf.getPassphrase(), XML_TAG_PASSPHRASE, out);
+            }
+            XmlUtils.writeValueXml(softApConf.getMaxNumberOfClients(),
+                    XML_TAG_MAX_NUMBER_OF_CLIENTS, out);
+            XmlUtils.writeValueXml(softApConf.isClientControlByUserEnabled(),
+                    XML_TAG_CLIENT_CONTROL_BY_USER, out);
+            XmlUtils.writeValueXml(softApConf.isAutoShutdownEnabled(),
+                    XML_TAG_AUTO_SHUTDOWN_ENABLED, out);
+            XmlUtils.writeValueXml(softApConf.getShutdownTimeoutMillis(),
+                    XML_TAG_SHUTDOWN_TIMEOUT_MILLIS, out);
+            out.startTag(null, XML_TAG_BLOCKED_CLIENT_LIST);
+            for (MacAddress mac: softApConf.getBlockedClientList()) {
+                XmlUtils.writeValueXml(mac.toString(), XML_TAG_CLIENT_MACADDRESS, out);
+            }
+            out.endTag(null, XML_TAG_BLOCKED_CLIENT_LIST);
+            out.startTag(null, XML_TAG_ALLOWED_CLIENT_LIST);
+            for (MacAddress mac: softApConf.getAllowedClientList()) {
+                XmlUtils.writeValueXml(mac.toString(), XML_TAG_CLIENT_MACADDRESS, out);
+            }
+            out.endTag(null, XML_TAG_ALLOWED_CLIENT_LIST);
+
+            // Footer for the XML file.
+            out.endTag(null, XML_TAG_SECTION_HEADER_SOFTAP);
+            out.endTag(null, XML_TAG_DOCUMENT_HEADER);
+            out.endDocument();
+
+            return outputStream.toByteArray();
+        } catch (IOException | XmlPullParserException e) {
+            Log.e(TAG, "Failed to convert softap conf to XML", e);
+            return null;
+        }
+    }
+
+    private SoftApConfToXmlMigrationUtil() { }
+
+    /**
+     * Read the legacy /data/misc/wifi/softap.conf file format and convert to the new XML
+     * format understood by WifiConfigStore.
+     * Note: Used for unit testing.
+     */
+    @VisibleForTesting
+    @Nullable
+    public static InputStream convert(InputStream fis) {
+        SoftApConfiguration softApConf = loadFromLegacyFile(fis);
+        if (softApConf == null) return null;
+
+        byte[] xmlBytes = convertConfToXml(softApConf);
+        if (xmlBytes == null) return null;
+
+        return new ByteArrayInputStream(xmlBytes);
+    }
+
+    /**
+     * Read the legacy /data/misc/wifi/softap.conf file format and convert to the new XML
+     * format understood by WifiConfigStore.
+     */
+    @Nullable
+    public static InputStream convert() {
+        File file = new File(getLegacyWifiSharedDirectory(), LEGACY_AP_CONFIG_FILE);
+        FileInputStream fis = null;
+        try {
+            fis = new FileInputStream(file);
+        } catch (FileNotFoundException e) {
+            return null;
+        }
+        if (fis == null) return null;
+        return convert(fis);
+    }
+
+    /**
+     * Remove the legacy /data/misc/wifi/softap.conf file.
+     */
+    @Nullable
+    public static void remove() {
+        File file = new File(getLegacyWifiSharedDirectory(), LEGACY_AP_CONFIG_FILE);
+        file.delete();
+    }
+}
diff --git a/wifi/java/android/net/wifi/SoftApConfiguration.java b/wifi/java/android/net/wifi/SoftApConfiguration.java
index a269e17..457e0db 100644
--- a/wifi/java/android/net/wifi/SoftApConfiguration.java
+++ b/wifi/java/android/net/wifi/SoftApConfiguration.java
@@ -516,9 +516,6 @@
     public WifiConfiguration toWifiConfiguration() {
         WifiConfiguration wifiConfig = new WifiConfiguration();
         wifiConfig.SSID = mSsid;
-        if (mBssid != null) {
-            wifiConfig.BSSID = mBssid.toString();
-        }
         wifiConfig.preSharedKey = mPassphrase;
         wifiConfig.hiddenSSID = mHiddenSsid;
         wifiConfig.apChannel = mChannel;
@@ -662,8 +659,6 @@
         /**
          * Specifies a BSSID for the AP.
          * <p>
-         * Only supported when configuring a local-only hotspot.
-         * <p>
          * <li>If not set, defaults to null.</li>
          * @param bssid BSSID, or null to have the BSSID chosen by the framework. The caller is
          *              responsible for avoiding collisions.
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index ba68d17..b110a61 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -2356,6 +2356,8 @@
         sbuf.append(" lcuid=" + lastConnectUid);
         sbuf.append(" allowAutojoin=" + allowAutojoin);
         sbuf.append(" noInternetAccessExpected=" + noInternetAccessExpected);
+        sbuf.append(" mostRecentlyConnected=" + isMostRecentlyConnected);
+
         sbuf.append(" ");
 
         if (this.lastConnected != 0) {
@@ -2964,4 +2966,11 @@
         return mPasspointUniqueId;
     }
 
+    /**
+     * If network is one of the most recently connected.
+     * For framework internal use only. Do not parcel.
+     * @hide
+     */
+    public boolean isMostRecentlyConnected = false;
+
 }
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index e1acaf8..dfeea9f 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -2909,28 +2909,6 @@
     }
 
     /**
-     * Return TX packet counter, for CTS test of WiFi watchdog.
-     * @param listener is the interface to receive result
-     *
-     * @hide for CTS test only
-     */
-    // TODO(b/144036594): add @TestApi
-    public void getTxPacketCount(@NonNull TxPacketCountListener listener) {
-        if (listener == null) throw new IllegalArgumentException("listener cannot be null");
-        Binder binder = new Binder();
-        TxPacketCountListenerProxy listenerProxy =
-                new TxPacketCountListenerProxy(mLooper, listener);
-        try {
-            mService.getTxPacketCount(mContext.getOpPackageName(), binder, listenerProxy,
-                    listener.hashCode());
-        } catch (RemoteException e) {
-            listenerProxy.onFailure(ERROR);
-        } catch (SecurityException e) {
-            listenerProxy.onFailure(NOT_AUTHORIZED);
-        }
-    }
-
-    /**
      * Calculates the level of the signal. This should be used any time a signal
      * is being shown.
      *
@@ -3582,56 +3560,6 @@
         public abstract void onFailed(int reason);
     }
 
-    /** Interface for callback invocation on a TX packet count poll action {@hide} */
-    public interface TxPacketCountListener {
-        /**
-         * The operation succeeded
-         * @param count TX packet counter
-         */
-        public void onSuccess(int count);
-        /**
-         * The operation failed
-         * @param reason The reason for failure could be one of
-         * {@link #ERROR}, {@link #IN_PROGRESS} or {@link #BUSY}
-         */
-        public void onFailure(int reason);
-    }
-
-    /**
-     * Callback proxy for TxPacketCountListener objects.
-     *
-     * @hide
-     */
-    private class TxPacketCountListenerProxy extends ITxPacketCountListener.Stub {
-        private final Handler mHandler;
-        private final TxPacketCountListener mCallback;
-
-        TxPacketCountListenerProxy(Looper looper, TxPacketCountListener callback) {
-            mHandler = new Handler(looper);
-            mCallback = callback;
-        }
-
-        @Override
-        public void onSuccess(int count) {
-            if (mVerboseLoggingEnabled) {
-                Log.v(TAG, "TxPacketCounterProxy: onSuccess: count=" + count);
-            }
-            mHandler.post(() -> {
-                mCallback.onSuccess(count);
-            });
-        }
-
-        @Override
-        public void onFailure(int reason) {
-            if (mVerboseLoggingEnabled) {
-                Log.v(TAG, "TxPacketCounterProxy: onFailure: reason=" + reason);
-            }
-            mHandler.post(() -> {
-                mCallback.onFailure(reason);
-            });
-        }
-    }
-
     /**
      * Base class for soft AP callback. Should be extended by applications and set when calling
      * {@link WifiManager#registerSoftApCallback(Executor, SoftApCallback)}.
diff --git a/wifi/java/android/net/wifi/WifiMigration.java b/wifi/java/android/net/wifi/WifiMigration.java
index f2a1aec..5792d27 100755
--- a/wifi/java/android/net/wifi/WifiMigration.java
+++ b/wifi/java/android/net/wifi/WifiMigration.java
@@ -95,7 +95,7 @@
     private static final SparseArray<String> STORE_ID_TO_FILE_NAME =
             new SparseArray<String>() {{
                 put(STORE_FILE_SHARED_GENERAL, "WifiConfigStore.xml");
-                put(STORE_FILE_SHARED_SOFTAP, "softap.conf");
+                put(STORE_FILE_SHARED_SOFTAP, "WifiConfigStoreSoftAp.xml");
                 put(STORE_FILE_USER_GENERAL, "WifiConfigStore.xml");
                 put(STORE_FILE_USER_NETWORK_SUGGESTIONS, "WifiConfigStoreNetworkSuggestions.xml");
             }};
@@ -138,7 +138,10 @@
 
     /**
      * Load data from legacy shared wifi config store file.
-     * TODO(b/149418926): Add XSD for the AOSP file format for each file from R.
+     * <p>
+     * Expected AOSP format is available in the sample files under {@code /frameworks/base/wifi/
+     * java/android/net/wifi/migration_samples}.
+     * </p>
      * <p>
      * Note:
      * <li>OEMs need to change the implementation of
@@ -176,6 +179,13 @@
             // OEMs should do conversions necessary here before returning the stream.
             return getSharedAtomicFile(storeFileId).openRead();
         } catch (FileNotFoundException e) {
+            // Special handling for softap.conf.
+            // Note: OEM devices upgrading from Q -> R will only have the softap.conf file.
+            // Test devices running previous R builds however may have already migrated to the
+            // XML format. So, check for that above before falling back to check for legacy file.
+            if (storeFileId == STORE_FILE_SHARED_SOFTAP) {
+                return SoftApConfToXmlMigrationUtil.convert();
+            }
             return null;
         }
     }
@@ -191,12 +201,26 @@
         if (storeFileId != STORE_FILE_SHARED_GENERAL && storeFileId !=  STORE_FILE_SHARED_SOFTAP) {
             throw new IllegalArgumentException("Invalid shared store file id");
         }
-        getSharedAtomicFile(storeFileId).delete();
+        AtomicFile file = getSharedAtomicFile(storeFileId);
+        if (file.exists()) {
+            file.delete();
+            return;
+        }
+        // Special handling for softap.conf.
+        // Note: OEM devices upgrading from Q -> R will only have the softap.conf file.
+        // Test devices running previous R builds however may have already migrated to the
+        // XML format. So, check for that above before falling back to check for legacy file.
+        if (storeFileId == STORE_FILE_SHARED_SOFTAP) {
+            SoftApConfToXmlMigrationUtil.remove();
+        }
     }
 
     /**
      * Load data from legacy user wifi config store file.
-     * TODO(b/149418926): Add XSD for the AOSP file format for each file from R.
+     * <p>
+     * Expected AOSP format is available in the sample files under {@code /frameworks/base/wifi/
+     * java/android/net/wifi/migration_samples}.
+     * </p>
      * <p>
      * Note:
      * <li>OEMs need to change the implementation of
@@ -258,7 +282,10 @@
             throw new IllegalArgumentException("Invalid user store file id");
         }
         Objects.requireNonNull(userHandle);
-        getUserAtomicFile(storeFileId, userHandle.getIdentifier()).delete();
+        AtomicFile file = getUserAtomicFile(storeFileId, userHandle.getIdentifier());
+        if (file.exists()) {
+            file.delete();
+        }
     }
 
     /**
@@ -495,7 +522,12 @@
      */
     @NonNull
     public static SettingsMigrationData loadFromSettings(@NonNull Context context) {
-        return new SettingsMigrationData.Builder()
+        if (Settings.Global.getInt(
+                context.getContentResolver(), Settings.Global.WIFI_MIGRATION_COMPLETED, 0) == 1) {
+            // migration already complete, ignore.
+            return null;
+        }
+        SettingsMigrationData data = new SettingsMigrationData.Builder()
                 .setScanAlwaysAvailable(
                         Settings.Global.getInt(context.getContentResolver(),
                                 Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1)
@@ -518,5 +550,9 @@
                         Settings.Global.getInt(context.getContentResolver(),
                                 Settings.Global.WIFI_VERBOSE_LOGGING_ENABLED, 0) == 1)
                 .build();
+        Settings.Global.putInt(
+                context.getContentResolver(), Settings.Global.WIFI_MIGRATION_COMPLETED, 1);
+        return data;
+
     }
 }
diff --git a/wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java b/wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java
index 6632c16..0d13805 100644
--- a/wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java
+++ b/wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java
@@ -74,7 +74,7 @@
     }
 
     @Override
-    public boolean satisfiedBy(@Nullable NetworkSpecifier other) {
+    public boolean canBeSatisfiedBy(@Nullable NetworkSpecifier other) {
         if (this == other) {
             return true;
         }
diff --git a/wifi/java/android/net/wifi/WifiNetworkSpecifier.java b/wifi/java/android/net/wifi/WifiNetworkSpecifier.java
index 3d946c9..ed54ad1 100644
--- a/wifi/java/android/net/wifi/WifiNetworkSpecifier.java
+++ b/wifi/java/android/net/wifi/WifiNetworkSpecifier.java
@@ -552,7 +552,7 @@
 
     /** @hide */
     @Override
-    public boolean satisfiedBy(NetworkSpecifier other) {
+    public boolean canBeSatisfiedBy(NetworkSpecifier other) {
         if (this == other) {
             return true;
         }
diff --git a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
index 72ca900..4c524f4 100644
--- a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
+++ b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
@@ -577,6 +577,7 @@
                             : WifiConfiguration.METERED_OVERRIDE_NONE;
             wifiConfiguration.trusted = !mIsNetworkUntrusted;
             mPasspointConfiguration.setCarrierId(mCarrierId);
+            mPasspointConfiguration.setMeteredOverride(wifiConfiguration.meteredOverride);
             return wifiConfiguration;
         }
 
diff --git a/wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java b/wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java
index a4b3e86..9ae3bd0 100644
--- a/wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java
+++ b/wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java
@@ -120,7 +120,7 @@
     }
 
     @Override
-    public boolean satisfiedBy(NetworkSpecifier other) {
+    public boolean canBeSatisfiedBy(NetworkSpecifier other) {
         if (!(other instanceof WifiAwareAgentNetworkSpecifier)) {
             return false;
         }
diff --git a/wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java b/wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java
index 65ac1ab..3547750 100644
--- a/wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java
+++ b/wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java
@@ -212,7 +212,7 @@
 
     /** @hide */
     @Override
-    public boolean satisfiedBy(NetworkSpecifier other) {
+    public boolean canBeSatisfiedBy(NetworkSpecifier other) {
         // MatchAllNetworkSpecifier is taken care in NetworkCapabilities#satisfiedBySpecifier.
         if (other instanceof WifiAwareAgentNetworkSpecifier) {
             return ((WifiAwareAgentNetworkSpecifier) other).satisfiesAwareNetworkSpecifier(this);
diff --git a/wifi/java/android/net/wifi/migration_samples/README.txt b/wifi/java/android/net/wifi/migration_samples/README.txt
new file mode 100644
index 0000000..264deba
--- /dev/null
+++ b/wifi/java/android/net/wifi/migration_samples/README.txt
@@ -0,0 +1,35 @@
+This folder contains sample files for each of the 4 XML Wi-Fi config store files in Android 11 AOSP.
+OEMs can use these files as reference for converting their previous customized
+formats into the AOSP format. The conversion logic needs to be written in
+WifiMigration.java class, i.e each OEM needs to modify
+WifiMigration.convertAndRetrieveSharedConfigStoreFile() and the
+WifiMigration.convertAndRetrieveUserConfigStoreFile() methods.
+
+The 4 files are:
+
+Shared files
+============
+1) WifiConfigStore.xml - General storage for shared configurations. Includes
+user's saved Wi-Fi networks.
+AOSP Path in Android 10: /data/misc/wifi/WifiConfigStore.xml
+AOSP Path in Android 11: /data/misc/apexdata/com.android/wifi/WifiConfigStore.xml
+Sample File (in this folder): Shared_WifiConfigStore.xml
+
+2) WifiConfigStoreSoftAp.xml - Storage for user's softap/tethering configuration.
+AOSP Path in Android 10: /data/misc/wifi/softap.conf.
+Note: Was key/value format in Android 10. Conversion to XML done in SoftApConfToXmlMigrationUtil.java.
+AOSP Path in Android 11: /data/misc/apexdata/com.android/wifi/WifiConfigStore.xml
+Sample File (in this folder): Shared_WifiConfigStoreSoftAp.xml
+
+User specific files
+==================
+3) WifiConfigStore.xml - General storage for user specific configurations. Includes
+user's saved passpoint networks, Wi-Fi network request approvals, etc.
+AOSP Path in Android 10: /data/misc_ce/<userId>/wifi/WifiConfigStore.xml
+AOSP Path in Android 11: /data/misc_ce/<userId>/apexdata/com.android/wifi/WifiConfigStore.xml
+Sample File (in this folder): User_WifiConfigStore.xml
+
+4) WifiConfigStoreNetworkSuggestions.xml - Storage for app installed network suggestions.
+AOSP Path in Android 10: /data/misc_ce/<userId>/wifi/WifiConfigStoreNetworkSuggestions.xml
+AOSP Path in Android 11: /data/misc_ce/<userId>/apexdata/com.android/wifi/WifiConfigStoreNetworkSuggestions.xml
+Sample File (in this folder): User_WifiConfigStoreNetworkSuggestions.xml
diff --git a/wifi/java/android/net/wifi/migration_samples/Shared_WifiConfigStore.xml b/wifi/java/android/net/wifi/migration_samples/Shared_WifiConfigStore.xml
new file mode 100644
index 0000000..3063276
--- /dev/null
+++ b/wifi/java/android/net/wifi/migration_samples/Shared_WifiConfigStore.xml
@@ -0,0 +1,200 @@
+<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+<WifiConfigStoreData>
+<int name="Version" value="3" />
+<NetworkList>
+<Network>
+<WifiConfiguration>
+<string name="ConfigKey">&quot;OPEN_SSID&quot;NONE</string>
+<string name="SSID">&quot;OPEN_SSID&quot;</string>
+<null name="PreSharedKey" />
+<null name="WEPKeys" />
+<int name="WEPTxKeyIndex" value="0" />
+<boolean name="HiddenSSID" value="false" />
+<boolean name="RequirePMF" value="false" />
+<byte-array name="AllowedKeyMgmt" num="1">01</byte-array>
+<byte-array name="AllowedProtocols" num="1">03</byte-array>
+<byte-array name="AllowedAuthAlgos" num="0"></byte-array>
+<byte-array name="AllowedGroupCiphers" num="1">2f</byte-array>
+<byte-array name="AllowedPairwiseCiphers" num="1">0e</byte-array>
+<byte-array name="AllowedGroupMgmtCiphers" num="1">04</byte-array>
+<byte-array name="AllowedSuiteBCiphers" num="0"></byte-array>
+<boolean name="Shared" value="true" />
+<boolean name="AutoJoinEnabled" value="true" />
+<boolean name="Trusted" value="true" />
+<null name="BSSID" />
+<int name="Status" value="2" />
+<null name="FQDN" />
+<null name="ProviderFriendlyName" />
+<null name="LinkedNetworksList" />
+<null name="DefaultGwMacAddress" />
+<boolean name="ValidatedInternetAccess" value="true" />
+<boolean name="NoInternetAccessExpected" value="false" />
+<boolean name="MeteredHint" value="false" />
+<int name="MeteredOverride" value="0" />
+<boolean name="UseExternalScores" value="false" />
+<int name="NumAssociation" value="3" />
+<int name="CreatorUid" value="1000" />
+<string name="CreatorName">android.uid.system:1000</string>
+<int name="LastUpdateUid" value="1000" />
+<string name="LastUpdateName">android.uid.system:1000</string>
+<int name="LastConnectUid" value="1000" />
+<boolean name="IsLegacyPasspointConfig" value="false" />
+<long-array name="RoamingConsortiumOIs" num="0" />
+<string name="RandomizedMacAddress">ce:b1:36:bb:71:ac</string>
+<int name="MacRandomizationSetting" value="1" />
+<int name="CarrierId" value="-1" />
+</WifiConfiguration>
+<NetworkStatus>
+<string name="SelectionStatus">NETWORK_SELECTION_ENABLED</string>
+<string name="DisableReason">NETWORK_SELECTION_ENABLE</string>
+<string name="ConnectChoice">&quot;ENTERPRISE_SSID&quot;WPA_EAP</string>
+<boolean name="HasEverConnected" value="true" />
+</NetworkStatus>
+<IpConfiguration>
+<string name="IpAssignment">DHCP</string>
+<string name="ProxySettings">NONE</string>
+</IpConfiguration>
+</Network>
+<Network>
+<WifiConfiguration>
+<string name="ConfigKey">&quot;ENTERPRISE_SSID&quot;WPA_EAP</string>
+<string name="SSID">&quot;ENTERPRISE_SSID&quot;</string>
+<null name="PreSharedKey" />
+<null name="WEPKeys" />
+<int name="WEPTxKeyIndex" value="0" />
+<boolean name="HiddenSSID" value="false" />
+<boolean name="RequirePMF" value="false" />
+<byte-array name="AllowedKeyMgmt" num="1">0c</byte-array>
+<byte-array name="AllowedProtocols" num="1">03</byte-array>
+<byte-array name="AllowedAuthAlgos" num="0"></byte-array>
+<byte-array name="AllowedGroupCiphers" num="1">2f</byte-array>
+<byte-array name="AllowedPairwiseCiphers" num="1">0e</byte-array>
+<byte-array name="AllowedGroupMgmtCiphers" num="1">04</byte-array>
+<byte-array name="AllowedSuiteBCiphers" num="0"></byte-array>
+<boolean name="Shared" value="true" />
+<boolean name="AutoJoinEnabled" value="true" />
+<boolean name="Trusted" value="true" />
+<null name="BSSID" />
+<int name="Status" value="2" />
+<null name="FQDN" />
+<null name="ProviderFriendlyName" />
+<null name="LinkedNetworksList" />
+<null name="DefaultGwMacAddress" />
+<boolean name="ValidatedInternetAccess" value="false" />
+<boolean name="NoInternetAccessExpected" value="false" />
+<boolean name="MeteredHint" value="false" />
+<int name="MeteredOverride" value="0" />
+<boolean name="UseExternalScores" value="false" />
+<int name="NumAssociation" value="0" />
+<int name="CreatorUid" value="1000" />
+<string name="CreatorName">android.uid.system:1000</string>
+<int name="LastUpdateUid" value="1000" />
+<string name="LastUpdateName">android.uid.system:1000</string>
+<int name="LastConnectUid" value="1000" />
+<boolean name="IsLegacyPasspointConfig" value="false" />
+<long-array name="RoamingConsortiumOIs" num="0" />
+<string name="RandomizedMacAddress">f6:b3:94:44:40:87</string>
+<int name="MacRandomizationSetting" value="1" />
+<int name="CarrierId" value="-1" />
+</WifiConfiguration>
+<NetworkStatus>
+<string name="SelectionStatus">NETWORK_SELECTION_TEMPORARY_DISABLED</string>
+<string name="DisableReason">NETWORK_SELECTION_DISABLED_AUTHENTICATION_FAILURE</string>
+<null name="ConnectChoice" />
+<boolean name="HasEverConnected" value="false" />
+</NetworkStatus>
+<IpConfiguration>
+<string name="IpAssignment">DHCP</string>
+<string name="ProxySettings">NONE</string>
+</IpConfiguration>
+<WifiEnterpriseConfiguration>
+<string name="Identity">adadadasdaddsa</string>
+<string name="AnonIdentity">asdadaddadasd</string>
+<string name="Password">adasdadadad</string>
+<string name="ClientCert"></string>
+<string name="CaCert"></string>
+<string name="SubjectMatch"></string>
+<string name="Engine">0</string>
+<string name="EngineId"></string>
+<string name="PrivateKeyId"></string>
+<string name="AltSubjectMatch"></string>
+<string name="DomSuffixMatch">adsad</string>
+<string name="CaPath">/system/etc/security/cacerts</string>
+<int name="EapMethod" value="0" />
+<int name="Phase2Method" value="3" />
+<string name="PLMN"></string>
+<string name="Realm"></string>
+<int name="Ocsp" value="0" />
+<string name="WapiCertSuite"></string>
+</WifiEnterpriseConfiguration>
+</Network>
+<Network>
+<WifiConfiguration>
+<string name="ConfigKey">&quot;WPA3_SSID&quot;SAE</string>
+<string name="SSID">&quot;WPA3_SSID&quot;</string>
+<string name="PreSharedKey">&quot;sfsdfsfdsfsdf&quot;</string>
+<null name="WEPKeys" />
+<int name="WEPTxKeyIndex" value="0" />
+<boolean name="HiddenSSID" value="false" />
+<boolean name="RequirePMF" value="true" />
+<byte-array name="AllowedKeyMgmt" num="2">0001</byte-array>
+<byte-array name="AllowedProtocols" num="1">02</byte-array>
+<byte-array name="AllowedAuthAlgos" num="0"></byte-array>
+<byte-array name="AllowedGroupCiphers" num="1">28</byte-array>
+<byte-array name="AllowedPairwiseCiphers" num="1">0c</byte-array>
+<byte-array name="AllowedGroupMgmtCiphers" num="1">04</byte-array>
+<byte-array name="AllowedSuiteBCiphers" num="0"></byte-array>
+<boolean name="Shared" value="true" />
+<boolean name="AutoJoinEnabled" value="true" />
+<boolean name="Trusted" value="true" />
+<null name="BSSID" />
+<int name="Status" value="1" />
+<null name="FQDN" />
+<null name="ProviderFriendlyName" />
+<null name="LinkedNetworksList" />
+<null name="DefaultGwMacAddress" />
+<boolean name="ValidatedInternetAccess" value="false" />
+<boolean name="NoInternetAccessExpected" value="false" />
+<boolean name="MeteredHint" value="false" />
+<int name="MeteredOverride" value="0" />
+<boolean name="UseExternalScores" value="false" />
+<int name="NumAssociation" value="0" />
+<int name="CreatorUid" value="1000" />
+<string name="CreatorName">android.uid.system:1000</string>
+<int name="LastUpdateUid" value="1000" />
+<string name="LastUpdateName">android.uid.system:1000</string>
+<int name="LastConnectUid" value="1000" />
+<boolean name="IsLegacyPasspointConfig" value="false" />
+<long-array name="RoamingConsortiumOIs" num="0" />
+<string name="RandomizedMacAddress">a6:3d:b0:13:ed:41</string>
+<int name="MacRandomizationSetting" value="1" />
+<int name="CarrierId" value="-1" />
+</WifiConfiguration>
+<NetworkStatus>
+<string name="SelectionStatus">NETWORK_SELECTION_PERMANENTLY_DISABLED</string>
+<string name="DisableReason">NETWORK_SELECTION_DISABLED_BY_WRONG_PASSWORD</string>
+<null name="ConnectChoice" />
+<boolean name="HasEverConnected" value="false" />
+</NetworkStatus>
+<IpConfiguration>
+<string name="IpAssignment">DHCP</string>
+<string name="ProxySettings">NONE</string>
+</IpConfiguration>
+</Network>
+</NetworkList>
+<MacAddressMap>
+<map name="MacMapEntry" />
+</MacAddressMap>
+<Settings>
+<map name="Values">
+<boolean name="wifi_p2p_pending_factory_reset" value="false" />
+<boolean name="wifi_scan_throttle_enabled" value="true" />
+<null name="wifi_p2p_device_name" />
+<boolean name="wifi_scan_always_enabled" value="false" />
+<boolean name="wifi_verbose_logging_enabled" value="true" />
+</map>
+</Settings>
+<PasspointConfigData>
+<long name="ProviderIndex" value="0" />
+</PasspointConfigData>
+</WifiConfigStoreData>
diff --git a/wifi/java/android/net/wifi/migration_samples/Shared_WifiConfigStoreSoftAp.xml b/wifi/java/android/net/wifi/migration_samples/Shared_WifiConfigStoreSoftAp.xml
new file mode 100644
index 0000000..fd99dd3
--- /dev/null
+++ b/wifi/java/android/net/wifi/migration_samples/Shared_WifiConfigStoreSoftAp.xml
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+<WifiConfigStoreData>
+<int name="Version" value="3" />
+<SoftAp>
+<string name="SSID">HOTSPOT_SSID</string>
+<int name="ApBand" value="1" />
+<int name="Channel" value="0" />
+<boolean name="HiddenSSID" value="false" />
+<int name="SecurityType" value="1" />
+<string name="Passphrase">blahblahblah</string>
+<int name="MaxNumberOfClients" value="0" />
+<boolean name="ClientControlByUser" value="false" />
+<boolean name="AutoShutdownEnabled" value="true" />
+<long name="ShutdownTimeoutMillis" value="0" />
+<BlockedClientList>
+<string name="ClientMacAddress">00:11:22:33:44:55</string>
+</BlockedClientList>
+<AllowedClientList>
+<string name="ClientMacAddress">aa:bb:cc:dd:ee:ff</string>
+</AllowedClientList>
+</SoftAp>
+</WifiConfigStoreData>
diff --git a/wifi/java/android/net/wifi/migration_samples/User_WifiConfigStore.xml b/wifi/java/android/net/wifi/migration_samples/User_WifiConfigStore.xml
new file mode 100644
index 0000000..67d5aab
--- /dev/null
+++ b/wifi/java/android/net/wifi/migration_samples/User_WifiConfigStore.xml
@@ -0,0 +1,81 @@
+<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+<WifiConfigStoreData>
+<int name="Version" value="3" />
+<NetworkList />
+<PasspointConfigData>
+<ProviderList>
+<Provider>
+<long name="ProviderID" value="0" />
+<int name="CreatorUID" value="10085" />
+<string name="PackageName">com.android.certinstaller</string>
+<list name="CaCertificateAliases">
+<string>HS2_0_0</string>
+</list>
+<null name="ClientPrivateKeyAlias" />
+<boolean name="HasEverConnected" value="false" />
+<boolean name="IsFromSuggestion" value="false" />
+<boolean name="IsTrusted" value="true" />
+<Configuration>
+<int name="UpdateIdentifier" value="-2147483648" />
+<int name="CredentialPriority" value="-2147483648" />
+<null name="TrustRootCertList" />
+<long name="SubscriptionCreationTime" value="-9223372036854775808" />
+<long name="SubscriptionExpirationTime" value="-9223372036854775808" />
+<null name="SubscriptionType" />
+<long name="UsageLimitTimePeriod" value="-9223372036854775808" />
+<long name="UsageLimitStartTime" value="-9223372036854775808" />
+<long name="UsageLimitDataLimit" value="-9223372036854775808" />
+<long name="UsageLimitTimeLimit" value="-9223372036854775808" />
+<HomeSP>
+<string name="FQDN">Passpoint.net</string>
+<string name="FriendlyName">Passpoint Friendly Name</string>
+<null name="IconURL" />
+<null name="HomeNetworkIDs" />
+<null name="MatchAllOIs" />
+<null name="MatchAnyOIs" />
+<null name="OtherHomePartners" />
+<null name="RoamingConsortiumOIs" />
+</HomeSP>
+<Credential>
+<long name="CreationTime" value="-9223372036854775808" />
+<long name="ExpirationTime" value="-9223372036854775808" />
+<string name="Realm">passpoint.com</string>
+<boolean name="CheckAAAServerCertStatus" value="false" />
+<UserCredential>
+<string name="Username">blahblahblah</string>
+<string name="Password">doubleblahlah</string>
+<boolean name="MachineManaged" value="true" />
+<null name="SoftTokenApp" />
+<boolean name="AbleToShare" value="false" />
+<int name="EAPType" value="21" />
+<string name="NonEAPInnerMethod">PAP</string>
+</UserCredential>
+</Credential>
+<int name="CarrierId" value="-1" />
+<boolean name="AutoJoinEnabled" value="true" />
+<boolean name="IsMacRandomizationEnabled" value="true" />
+<int name="MeteredOverride" value="0" />
+</Configuration>
+<null name="RemediationCaCertificateAlias" />
+</Provider>
+</ProviderList>
+</PasspointConfigData>
+<OpenNetworkNotifierBlacklistConfigData />
+<NetworkRequestMap>
+<ApprovedAccessPointsPerApp>
+<string name="RequestorPackageName">com.android.cts.verifier</string>
+<AccessPoint>
+<string name="SSID">OPEN_SSID</string>
+<string name="BSSID">00:11:22:33:44:55</string>
+<int name="NetworkType" value="0" />
+</AccessPoint>
+</ApprovedAccessPointsPerApp>
+</NetworkRequestMap>
+<WakeupConfigStoreData>
+<FeatureState>
+<boolean name="IsActive" value="false" />
+<boolean name="IsOnboarded" value="false" />
+<int name="NotificationsShown" value="1" />
+</FeatureState>
+</WakeupConfigStoreData>
+</WifiConfigStoreData>
diff --git a/wifi/java/android/net/wifi/migration_samples/User_WifiConfigStoreNetworkSuggestions.xml b/wifi/java/android/net/wifi/migration_samples/User_WifiConfigStoreNetworkSuggestions.xml
new file mode 100644
index 0000000..4ecdd29
--- /dev/null
+++ b/wifi/java/android/net/wifi/migration_samples/User_WifiConfigStoreNetworkSuggestions.xml
@@ -0,0 +1,155 @@
+<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+<WifiConfigStoreData>
+<int name="Version" value="3" />
+<NetworkSuggestionMap>
+<NetworkSuggestionPerApp>
+<string name="SuggestorPackageName">com.android.cts.verifier</string>
+<null name="SuggestorFeatureId" />
+<boolean name="SuggestorHasUserApproved" value="true" />
+<int name="SuggestorMaxSize" value="1" />
+<int name="SuggestorUid" value="10228" />
+<int name="SuggestorCarrierId" value="-1" />
+<NetworkSuggestion>
+<WifiConfiguration>
+<string name="ConfigKey">&quot;OPEN_SSID&quot;NONE</string>
+<string name="SSID">&quot;OPEN_SSID&quot;</string>
+<null name="PreSharedKey" />
+<null name="WEPKeys" />
+<int name="WEPTxKeyIndex" value="0" />
+<boolean name="HiddenSSID" value="false" />
+<boolean name="RequirePMF" value="false" />
+<byte-array name="AllowedKeyMgmt" num="1">01</byte-array>
+<byte-array name="AllowedProtocols" num="0"></byte-array>
+<byte-array name="AllowedAuthAlgos" num="0"></byte-array>
+<byte-array name="AllowedGroupCiphers" num="0"></byte-array>
+<byte-array name="AllowedPairwiseCiphers" num="0"></byte-array>
+<byte-array name="AllowedGroupMgmtCiphers" num="0"></byte-array>
+<byte-array name="AllowedSuiteBCiphers" num="0"></byte-array>
+<boolean name="Shared" value="true" />
+<boolean name="AutoJoinEnabled" value="true" />
+<boolean name="Trusted" value="true" />
+<null name="BSSID" />
+<int name="Status" value="0" />
+<null name="FQDN" />
+<null name="ProviderFriendlyName" />
+<null name="LinkedNetworksList" />
+<null name="DefaultGwMacAddress" />
+<boolean name="ValidatedInternetAccess" value="false" />
+<boolean name="NoInternetAccessExpected" value="false" />
+<boolean name="MeteredHint" value="false" />
+<int name="MeteredOverride" value="1" />
+<boolean name="UseExternalScores" value="false" />
+<int name="NumAssociation" value="0" />
+<int name="CreatorUid" value="10228" />
+<string name="CreatorName">com.android.cts.verifier</string>
+<int name="LastUpdateUid" value="-1" />
+<null name="LastUpdateName" />
+<int name="LastConnectUid" value="0" />
+<boolean name="IsLegacyPasspointConfig" value="false" />
+<long-array name="RoamingConsortiumOIs" num="0" />
+<string name="RandomizedMacAddress">02:00:00:00:00:00</string>
+<int name="MacRandomizationSetting" value="1" />
+<int name="CarrierId" value="-1" />
+</WifiConfiguration>
+<boolean name="IsAppInteractionRequired" value="false" />
+<boolean name="IsUserInteractionRequired" value="false" />
+<boolean name="IsUserAllowedToManuallyConnect" value="false" />
+<boolean name="InitializedAutoJoinEnabled" value="true" />
+<boolean name="AutoJoinEnabled" value="true" />
+</NetworkSuggestion>
+<NetworkSuggestion>
+<WifiConfiguration>
+<string name="ConfigKey">passpoint.net</string>
+<null name="SSID" />
+<null name="PreSharedKey" />
+<null name="WEPKeys" />
+<int name="WEPTxKeyIndex" value="0" />
+<boolean name="HiddenSSID" value="false" />
+<boolean name="RequirePMF" value="false" />
+<byte-array name="AllowedKeyMgmt" num="0"></byte-array>
+<byte-array name="AllowedProtocols" num="0"></byte-array>
+<byte-array name="AllowedAuthAlgos" num="0"></byte-array>
+<byte-array name="AllowedGroupCiphers" num="0"></byte-array>
+<byte-array name="AllowedPairwiseCiphers" num="0"></byte-array>
+<byte-array name="AllowedGroupMgmtCiphers" num="0"></byte-array>
+<byte-array name="AllowedSuiteBCiphers" num="0"></byte-array>
+<boolean name="Shared" value="true" />
+<boolean name="AutoJoinEnabled" value="true" />
+<boolean name="Trusted" value="true" />
+<null name="BSSID" />
+<int name="Status" value="0" />
+<string name="FQDN">passpoint.net</string>
+<null name="ProviderFriendlyName" />
+<null name="LinkedNetworksList" />
+<null name="DefaultGwMacAddress" />
+<boolean name="ValidatedInternetAccess" value="false" />
+<boolean name="NoInternetAccessExpected" value="false" />
+<boolean name="MeteredHint" value="false" />
+<int name="MeteredOverride" value="0" />
+<boolean name="UseExternalScores" value="false" />
+<int name="NumAssociation" value="0" />
+<int name="CreatorUid" value="1000" />
+<string name="CreatorName">com.android.cts.verifier</string>
+<int name="LastUpdateUid" value="-1" />
+<null name="LastUpdateName" />
+<int name="LastConnectUid" value="0" />
+<boolean name="IsLegacyPasspointConfig" value="false" />
+<long-array name="RoamingConsortiumOIs" num="0" />
+<string name="RandomizedMacAddress">02:00:00:00:00:00</string>
+<int name="MacRandomizationSetting" value="1" />
+<int name="CarrierId" value="-1" />
+<boolean name="IsMostRecentlyConnected" value="false" />
+</WifiConfiguration>
+<PasspointConfiguration>
+<int name="UpdateIdentifier" value="-2147483648" />
+<int name="CredentialPriority" value="-2147483648" />
+<null name="TrustRootCertList" />
+<long name="SubscriptionCreationTime" value="-9223372036854775808" />
+<long name="SubscriptionExpirationTime" value="-9223372036854775808" />
+<null name="SubscriptionType" />
+<long name="UsageLimitTimePeriod" value="-9223372036854775808" />
+<long name="UsageLimitStartTime" value="-9223372036854775808" />
+<long name="UsageLimitDataLimit" value="-9223372036854775808" />
+<long name="UsageLimitTimeLimit" value="-9223372036854775808" />
+<HomeSP>
+<string name="FQDN">passpoint.net</string>
+<string name="FriendlyName">Passpoint Friendly Name</string>
+<null name="IconURL" />
+<null name="HomeNetworkIDs" />
+<null name="MatchAllOIs" />
+<null name="MatchAnyOIs" />
+<null name="OtherHomePartners" />
+<null name="RoamingConsortiumOIs" />
+</HomeSP>
+<Credential>
+<long name="CreationTime" value="-9223372036854775808" />
+<long name="ExpirationTime" value="-9223372036854775808" />
+<string name="Realm">passpoint.com</string>
+<boolean name="CheckAAAServerCertStatus" value="false" />
+<UserCredential>
+<string name="Username">blahblahblah</string>
+<string name="Password">doubleblahblah</string>
+<boolean name="MachineManaged" value="false" />
+<null name="SoftTokenApp" />
+<boolean name="AbleToShare" value="false" />
+<int name="EAPType" value="21" />
+<string name="NonEAPInnerMethod">PAP</string>
+</UserCredential>
+</Credential>
+<int name="CarrierId" value="-1" />
+<boolean name="AutoJoinEnabled" value="true" />
+<boolean name="IsMacRandomizationEnabled" value="true" />
+<int name="MeteredOverride" value="0" />
+</PasspointConfiguration>
+<boolean name="IsAppInteractionRequired" value="false" />
+<boolean name="IsUserInteractionRequired" value="false" />
+<boolean name="IsUserAllowedToManuallyConnect" value="true" />
+<boolean name="InitializedAutoJoinEnabled" value="true" />
+<boolean name="AutoJoinEnabled" value="true" />
+</NetworkSuggestion>
+</NetworkSuggestionPerApp>
+</NetworkSuggestionMap>
+<ImsiPrivacyProtectionExemptionMap>
+<map name="CarrierExemptionMap" />
+</ImsiPrivacyProtectionExemptionMap>
+</WifiConfigStoreData>
diff --git a/wifi/tests/AndroidTest.xml b/wifi/tests/AndroidTest.xml
index 34e2e3a..ea5043a 100644
--- a/wifi/tests/AndroidTest.xml
+++ b/wifi/tests/AndroidTest.xml
@@ -30,5 +30,9 @@
     <object type="module_controller"
             class="com.android.tradefed.testtype.suite.module.MainlineTestModuleController">
         <option name="mainline-module-package-name" value="com.google.android.wifi" />
+        <!-- TODO(b/151836001): com.android.wifi doesn't guarantee it is a Mainline module since
+              it could still be OEM customized. Workaround so that this test will still run on
+              AOSP builds. -->
+        <option name="mainline-module-package-name" value="com.android.wifi" />
     </object>
 </configuration>
diff --git a/wifi/tests/src/android/net/wifi/SoftApConfToXmlMigrationUtilTest.java b/wifi/tests/src/android/net/wifi/SoftApConfToXmlMigrationUtilTest.java
new file mode 100644
index 0000000..f49f387
--- /dev/null
+++ b/wifi/tests/src/android/net/wifi/SoftApConfToXmlMigrationUtilTest.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.net.wifi;
+
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.Test;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Unit tests for {@link android.net.wifi.SoftApConfToXmlMigrationUtilTest}.
+ */
+@SmallTest
+public class SoftApConfToXmlMigrationUtilTest {
+    private static final String TEST_SSID = "SSID";
+    private static final String TEST_PASSPHRASE = "TestPassphrase";
+    private static final int TEST_CHANNEL = 0;
+    private static final boolean TEST_HIDDEN = false;
+    private static final int TEST_BAND = SoftApConfiguration.BAND_5GHZ;
+    private static final int TEST_SECURITY = SoftApConfiguration.SECURITY_TYPE_WPA2_PSK;
+
+    private static final String TEST_EXPECTED_XML_STRING =
+            "<?xml version='1.0' encoding='utf-8' standalone='yes' ?>\n"
+                    + "<WifiConfigStoreData>\n"
+                    + "<int name=\"Version\" value=\"3\" />\n"
+                    + "<SoftAp>\n"
+                    + "<string name=\"SSID\">" + TEST_SSID + "</string>\n"
+                    + "<int name=\"ApBand\" value=\"" + TEST_BAND + "\" />\n"
+                    + "<int name=\"Channel\" value=\"" + TEST_CHANNEL + "\" />\n"
+                    + "<boolean name=\"HiddenSSID\" value=\"" + TEST_HIDDEN + "\" />\n"
+                    + "<int name=\"SecurityType\" value=\"" + TEST_SECURITY + "\" />\n"
+                    + "<string name=\"Passphrase\">" + TEST_PASSPHRASE + "</string>\n"
+                    + "<int name=\"MaxNumberOfClients\" value=\"0\" />\n"
+                    + "<boolean name=\"ClientControlByUser\" value=\"false\" />\n"
+                    + "<boolean name=\"AutoShutdownEnabled\" value=\"true\" />\n"
+                    + "<long name=\"ShutdownTimeoutMillis\" value=\"0\" />\n"
+                    + "<BlockedClientList />\n"
+                    + "<AllowedClientList />\n"
+                    + "</SoftAp>\n"
+                    + "</WifiConfigStoreData>\n";
+
+    private byte[] createLegacyApConfFile(WifiConfiguration config) throws Exception {
+        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+        DataOutputStream out = new DataOutputStream(outputStream);
+        out.writeInt(3);
+        out.writeUTF(config.SSID);
+        out.writeInt(config.apBand);
+        out.writeInt(config.apChannel);
+        out.writeBoolean(config.hiddenSSID);
+        int authType = config.getAuthType();
+        out.writeInt(authType);
+        if (authType != WifiConfiguration.KeyMgmt.NONE) {
+            out.writeUTF(config.preSharedKey);
+        }
+        out.close();
+        return outputStream.toByteArray();
+    }
+
+    /**
+     * Generate a SoftApConfiguration based on the specified parameters.
+     */
+    private SoftApConfiguration setupApConfig(
+            String ssid, String preSharedKey, int keyManagement, int band, int channel,
+            boolean hiddenSSID) {
+        SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder();
+        configBuilder.setSsid(ssid);
+        configBuilder.setPassphrase(preSharedKey, SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
+        if (channel == 0) {
+            configBuilder.setBand(band);
+        } else {
+            configBuilder.setChannel(channel, band);
+        }
+        configBuilder.setHiddenSsid(hiddenSSID);
+        return configBuilder.build();
+    }
+
+    /**
+     * Generate a WifiConfiguration based on the specified parameters.
+     */
+    private WifiConfiguration setupWifiConfigurationApConfig(
+            String ssid, String preSharedKey, int keyManagement, int band, int channel,
+            boolean hiddenSSID) {
+        WifiConfiguration config = new WifiConfiguration();
+        config.SSID = ssid;
+        config.preSharedKey = preSharedKey;
+        config.allowedKeyManagement.set(keyManagement);
+        config.apBand = band;
+        config.apChannel = channel;
+        config.hiddenSSID = hiddenSSID;
+        return config;
+    }
+
+    /**
+     * Asserts that the WifiConfigurations equal to SoftApConfiguration.
+     * This only compares the elements saved
+     * for softAp used.
+     */
+    public static void assertWifiConfigurationEqualSoftApConfiguration(
+            WifiConfiguration backup, SoftApConfiguration restore) {
+        assertEquals(backup.SSID, restore.getSsid());
+        assertEquals(backup.BSSID, restore.getBssid());
+        assertEquals(SoftApConfToXmlMigrationUtil.convertWifiConfigBandToSoftApConfigBand(
+                backup.apBand),
+                restore.getBand());
+        assertEquals(backup.apChannel, restore.getChannel());
+        assertEquals(backup.preSharedKey, restore.getPassphrase());
+        if (backup.getAuthType() == WifiConfiguration.KeyMgmt.WPA2_PSK) {
+            assertEquals(SoftApConfiguration.SECURITY_TYPE_WPA2_PSK, restore.getSecurityType());
+        } else {
+            assertEquals(SoftApConfiguration.SECURITY_TYPE_OPEN, restore.getSecurityType());
+        }
+        assertEquals(backup.hiddenSSID, restore.isHiddenSsid());
+    }
+
+    /**
+     * Note: This is a copy of {@link AtomicFile#readFully()} modified to use the passed in
+     * {@link InputStream} which was returned using {@link AtomicFile#openRead()}.
+     */
+    private static byte[] readFully(InputStream stream) throws IOException {
+        try {
+            int pos = 0;
+            int avail = stream.available();
+            byte[] data = new byte[avail];
+            while (true) {
+                int amt = stream.read(data, pos, data.length - pos);
+                if (amt <= 0) {
+                    return data;
+                }
+                pos += amt;
+                avail = stream.available();
+                if (avail > data.length - pos) {
+                    byte[] newData = new byte[pos + avail];
+                    System.arraycopy(data, 0, newData, 0, pos);
+                    data = newData;
+                }
+            }
+        } finally {
+            stream.close();
+        }
+    }
+
+    /**
+     * Tests conversion from legacy .conf file to XML file format.
+     */
+    @Test
+    public void testConversion() throws Exception {
+        WifiConfiguration backupConfig = setupWifiConfigurationApConfig(
+                TEST_SSID,    /* SSID */
+                TEST_PASSPHRASE,       /* preshared key */
+                WifiConfiguration.KeyMgmt.WPA2_PSK,   /* key management */
+                1,                 /* AP band (5GHz) */
+                TEST_CHANNEL,                /* AP channel */
+                TEST_HIDDEN            /* Hidden SSID */);
+        SoftApConfiguration expectedConfig = setupApConfig(
+                TEST_SSID,           /* SSID */
+                TEST_PASSPHRASE,              /* preshared key */
+                SoftApConfiguration.SECURITY_TYPE_WPA2_PSK,   /* security type */
+                SoftApConfiguration.BAND_5GHZ, /* AP band (5GHz) */
+                TEST_CHANNEL,                       /* AP channel */
+                TEST_HIDDEN            /* Hidden SSID */);
+
+        assertWifiConfigurationEqualSoftApConfiguration(backupConfig, expectedConfig);
+
+        byte[] confBytes = createLegacyApConfFile(backupConfig);
+        assertNotNull(confBytes);
+
+        InputStream xmlStream = SoftApConfToXmlMigrationUtil.convert(
+                new ByteArrayInputStream(confBytes));
+
+        byte[] xmlBytes = readFully(xmlStream);
+        assertNotNull(xmlBytes);
+
+        assertEquals(TEST_EXPECTED_XML_STRING, new String(xmlBytes));
+    }
+
+}
diff --git a/wifi/tests/src/android/net/wifi/WifiManagerTest.java b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
index 90d6241..1398bfe 100644
--- a/wifi/tests/src/android/net/wifi/WifiManagerTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
@@ -30,7 +30,6 @@
 import static android.net.wifi.WifiManager.SAP_START_FAILURE_GENERAL;
 import static android.net.wifi.WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS;
 import static android.net.wifi.WifiManager.STATUS_SUGGESTION_CONNECTION_FAILURE_AUTHENTICATION;
-import static android.net.wifi.WifiManager.TxPacketCountListener;
 import static android.net.wifi.WifiManager.WIFI_AP_STATE_ENABLED;
 import static android.net.wifi.WifiManager.WIFI_AP_STATE_ENABLING;
 import static android.net.wifi.WifiManager.WIFI_AP_STATE_FAILED;
@@ -2051,32 +2050,6 @@
     }
 
     /**
-     * Test behavior of {@link WifiManager#getTxPacketCount(TxPacketCountListener)}
-     */
-    @Test
-    public void testGetTxPacketCount() throws Exception {
-        TxPacketCountListener externalListener =
-                mock(TxPacketCountListener.class);
-        mWifiManager.getTxPacketCount(externalListener);
-
-        ArgumentCaptor<ITxPacketCountListener> binderListenerCaptor =
-                ArgumentCaptor.forClass(ITxPacketCountListener.class);
-        verify(mWifiService).getTxPacketCount(anyString(), any(Binder.class),
-                binderListenerCaptor.capture(), anyInt());
-        assertNotNull(binderListenerCaptor.getValue());
-
-        // Trigger on success.
-        binderListenerCaptor.getValue().onSuccess(6);
-        mLooper.dispatchAll();
-        verify(externalListener).onSuccess(6);
-
-        // Trigger on failure.
-        binderListenerCaptor.getValue().onFailure(BUSY);
-        mLooper.dispatchAll();
-        verify(externalListener).onFailure(BUSY);
-    }
-
-    /**
      * Verify an IllegalArgumentException is thrown if callback is not provided.
      */
     @Test(expected = IllegalArgumentException.class)
diff --git a/wifi/tests/src/android/net/wifi/WifiNetworkAgentSpecifierTest.java b/wifi/tests/src/android/net/wifi/WifiNetworkAgentSpecifierTest.java
index 0233ee2..d479aac 100644
--- a/wifi/tests/src/android/net/wifi/WifiNetworkAgentSpecifierTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiNetworkAgentSpecifierTest.java
@@ -155,8 +155,8 @@
     public void testWifiNetworkAgentSpecifierSatisifiesNullAndAllMatch() {
         WifiNetworkAgentSpecifier specifier = createDefaultNetworkAgentSpecifier();
 
-        assertTrue(specifier.satisfiedBy(null));
-        assertTrue(specifier.satisfiedBy(new MatchAllNetworkSpecifier()));
+        assertTrue(specifier.canBeSatisfiedBy(null));
+        assertTrue(specifier.canBeSatisfiedBy(new MatchAllNetworkSpecifier()));
     }
 
     /**
@@ -170,7 +170,7 @@
         WifiNetworkAgentSpecifier specifier1 = createDefaultNetworkAgentSpecifier();
         WifiNetworkAgentSpecifier specifier2 = createDefaultNetworkAgentSpecifier();
 
-        assertTrue(specifier2.satisfiedBy(specifier1));
+        assertTrue(specifier2.canBeSatisfiedBy(specifier1));
     }
 
     /**
@@ -196,8 +196,8 @@
                 bssidPattern,
                 wificonfigurationNetworkSpecifier);
 
-        assertTrue(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
-        assertTrue(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
+        assertTrue(wifiNetworkSpecifier.canBeSatisfiedBy(wifiNetworkAgentSpecifier));
+        assertTrue(wifiNetworkAgentSpecifier.canBeSatisfiedBy(wifiNetworkSpecifier));
     }
 
     /**
@@ -224,8 +224,8 @@
                 bssidPattern,
                 wificonfigurationNetworkSpecifier);
 
-        assertTrue(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
-        assertTrue(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
+        assertTrue(wifiNetworkSpecifier.canBeSatisfiedBy(wifiNetworkAgentSpecifier));
+        assertTrue(wifiNetworkAgentSpecifier.canBeSatisfiedBy(wifiNetworkSpecifier));
     }
 
     /**
@@ -252,8 +252,8 @@
                 bssidPattern,
                 wificonfigurationNetworkSpecifier);
 
-        assertTrue(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
-        assertTrue(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
+        assertTrue(wifiNetworkSpecifier.canBeSatisfiedBy(wifiNetworkAgentSpecifier));
+        assertTrue(wifiNetworkAgentSpecifier.canBeSatisfiedBy(wifiNetworkSpecifier));
     }
 
     /**
@@ -283,8 +283,8 @@
                 bssidPattern,
                 wificonfigurationNetworkSpecifier);
 
-        assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
-        assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
+        assertFalse(wifiNetworkSpecifier.canBeSatisfiedBy(wifiNetworkAgentSpecifier));
+        assertFalse(wifiNetworkAgentSpecifier.canBeSatisfiedBy(wifiNetworkSpecifier));
     }
 
     /**
@@ -315,8 +315,8 @@
                 bssidPattern,
                 wificonfigurationNetworkSpecifier);
 
-        assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
-        assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
+        assertFalse(wifiNetworkSpecifier.canBeSatisfiedBy(wifiNetworkAgentSpecifier));
+        assertFalse(wifiNetworkAgentSpecifier.canBeSatisfiedBy(wifiNetworkSpecifier));
     }
 
     /**
@@ -347,8 +347,8 @@
                 bssidPattern,
                 wificonfigurationNetworkSpecifier);
 
-        assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
-        assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
+        assertFalse(wifiNetworkSpecifier.canBeSatisfiedBy(wifiNetworkAgentSpecifier));
+        assertFalse(wifiNetworkAgentSpecifier.canBeSatisfiedBy(wifiNetworkSpecifier));
     }
 
     /**
@@ -374,8 +374,8 @@
                 bssidPattern,
                 wificonfigurationNetworkSpecifier);
 
-        assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
-        assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
+        assertFalse(wifiNetworkSpecifier.canBeSatisfiedBy(wifiNetworkAgentSpecifier));
+        assertFalse(wifiNetworkAgentSpecifier.canBeSatisfiedBy(wifiNetworkSpecifier));
     }
 
 
diff --git a/wifi/tests/src/android/net/wifi/WifiNetworkSpecifierTest.java b/wifi/tests/src/android/net/wifi/WifiNetworkSpecifierTest.java
index 3b67236..53a7d03 100644
--- a/wifi/tests/src/android/net/wifi/WifiNetworkSpecifierTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiNetworkSpecifierTest.java
@@ -396,8 +396,8 @@
                                 MacAddress.fromString(TEST_BSSID_OUI_MASK)),
                         wifiConfiguration);
 
-        assertTrue(specifier.satisfiedBy(null));
-        assertTrue(specifier.satisfiedBy(new MatchAllNetworkSpecifier()));
+        assertTrue(specifier.canBeSatisfiedBy(null));
+        assertTrue(specifier.canBeSatisfiedBy(new MatchAllNetworkSpecifier()));
     }
 
     /**
@@ -424,7 +424,7 @@
                                 MacAddress.fromString(TEST_BSSID_OUI_MASK)),
                         wifiConfiguration);
 
-        assertTrue(specifier2.satisfiedBy(specifier1));
+        assertTrue(specifier2.canBeSatisfiedBy(specifier1));
     }
 
     /**
@@ -453,7 +453,7 @@
                                 MacAddress.fromString(TEST_BSSID_OUI_MASK)),
                         wifiConfiguration2);
 
-        assertFalse(specifier2.satisfiedBy(specifier1));
+        assertFalse(specifier2.canBeSatisfiedBy(specifier1));
     }
 
     /**
@@ -480,7 +480,7 @@
                                 MacAddress.fromString(TEST_BSSID_OUI_MASK)),
                         wifiConfiguration);
 
-        assertFalse(specifier2.satisfiedBy(specifier1));
+        assertFalse(specifier2.canBeSatisfiedBy(specifier1));
     }
 
     /**
@@ -507,6 +507,6 @@
                                 WifiManager.ALL_ZEROS_MAC_ADDRESS),
                         wifiConfiguration);
 
-        assertFalse(specifier2.satisfiedBy(specifier1));
+        assertFalse(specifier2.canBeSatisfiedBy(specifier1));
     }
 }
diff --git a/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java b/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java
index 01b2a8d..ac2f6b2 100644
--- a/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java
@@ -297,6 +297,8 @@
         assertTrue(suggestion.isAppInteractionRequired);
         assertEquals(suggestion.wifiConfiguration.meteredOverride,
                 WifiConfiguration.METERED_OVERRIDE_METERED);
+        assertEquals(suggestion.getPasspointConfig().getMeteredOverride(),
+                WifiConfiguration.METERED_OVERRIDE_METERED);
         assertTrue(suggestion.isUserAllowedToManuallyConnect);
     }
 
diff --git a/wifi/tests/src/android/net/wifi/aware/WifiAwareAgentNetworkSpecifierTest.java b/wifi/tests/src/android/net/wifi/aware/WifiAwareAgentNetworkSpecifierTest.java
index 81b02fa..f2961db 100644
--- a/wifi/tests/src/android/net/wifi/aware/WifiAwareAgentNetworkSpecifierTest.java
+++ b/wifi/tests/src/android/net/wifi/aware/WifiAwareAgentNetworkSpecifierTest.java
@@ -79,7 +79,7 @@
     public void testEmptyDoesntMatchAnything() {
         WifiAwareAgentNetworkSpecifier dut = new WifiAwareAgentNetworkSpecifier();
         WifiAwareNetworkSpecifier ns = getDummyNetworkSpecifier(6);
-        collector.checkThat("No match expected", ns.satisfiedBy(dut), equalTo(false));
+        collector.checkThat("No match expected", ns.canBeSatisfiedBy(dut), equalTo(false));
     }
 
     /**
@@ -91,8 +91,8 @@
         WifiAwareNetworkSpecifier nsThis = getDummyNetworkSpecifier(6);
         WifiAwareAgentNetworkSpecifier dut = new WifiAwareAgentNetworkSpecifier(nsThis);
         WifiAwareNetworkSpecifier nsOther = getDummyNetworkSpecifier(8);
-        collector.checkThat("Match expected", nsThis.satisfiedBy(dut), equalTo(true));
-        collector.checkThat("No match expected", nsOther.satisfiedBy(dut), equalTo(false));
+        collector.checkThat("Match expected", nsThis.canBeSatisfiedBy(dut), equalTo(true));
+        collector.checkThat("No match expected", nsOther.canBeSatisfiedBy(dut), equalTo(false));
     }
 
     /**
@@ -113,9 +113,9 @@
         WifiAwareNetworkSpecifier nsOther = getDummyNetworkSpecifier(10000);
 
         for (WifiAwareNetworkSpecifier nsThis: nsSet) {
-            collector.checkThat("Match expected", nsThis.satisfiedBy(dut), equalTo(true));
+            collector.checkThat("Match expected", nsThis.canBeSatisfiedBy(dut), equalTo(true));
         }
-        collector.checkThat("No match expected", nsOther.satisfiedBy(dut), equalTo(false));
+        collector.checkThat("No match expected", nsOther.canBeSatisfiedBy(dut), equalTo(false));
     }
 
     /**
@@ -137,7 +137,7 @@
         WifiAwareAgentNetworkSpecifier newNs = new WifiAwareAgentNetworkSpecifier(
                 nsSet.toArray(new WifiAwareNetworkSpecifier[nsSet.size()]));
 
-        collector.checkThat("Match expected", oldNs.satisfiedBy(newNs), equalTo(true));
+        collector.checkThat("Match expected", oldNs.canBeSatisfiedBy(newNs), equalTo(true));
     }
 
     /**
@@ -159,7 +159,7 @@
         WifiAwareAgentNetworkSpecifier oldNs = new WifiAwareAgentNetworkSpecifier(
                 nsSet.toArray(new WifiAwareNetworkSpecifier[nsSet.size()]));
 
-        collector.checkThat("Match unexpected", oldNs.satisfiedBy(newNs), equalTo(false));
+        collector.checkThat("Match unexpected", oldNs.canBeSatisfiedBy(newNs), equalTo(false));
     }
 
     // utilities